commit 214829afec20f5567068741c0c3d2989e597c4a4 Author: Anand S Date: Wed Jul 3 23:59:30 2024 +0530 fogos: Initial import of device specific blobs * From U1UG34M.23-82-2 Change-Id: Ic40b3887ac3c1613090d54400fbe94ca327c3549 diff --git a/Android.bp b/Android.bp new file mode 100644 index 0000000..7b4f13d --- /dev/null +++ b/Android.bp @@ -0,0 +1,38 @@ +// Automatically generated file. DO NOT MODIFY +// +// This file is generated by device/motorola/fogos/setup-makefiles.sh + +soong_namespace { +} + +android_app_import { + name: "HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND", + owner: "motorola", + apk: "proprietary/product/priv-app/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND.apk", + certificate: "platform", + dex_preopt: { + enabled: false, + }, + privileged: true, + product_specific: true, +} + +android_app_import { + name: "HotwordEnrollmentXGoogleHEXAGON_WIDEBAND", + owner: "motorola", + apk: "proprietary/product/priv-app/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND.apk", + certificate: "platform", + dex_preopt: { + enabled: false, + }, + privileged: true, + product_specific: true, +} + +dex_import { + name: "com.android.hotwordenrollment.common.util", + owner: "motorola", + jars: ["proprietary/system_ext/framework/com.android.hotwordenrollment.common.util.jar"], + system_ext_specific: true, +} + diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..817c925 --- /dev/null +++ b/Android.mk @@ -0,0 +1,9 @@ +# Automatically generated file. DO NOT MODIFY +# +# This file is generated by device/motorola/fogos/setup-makefiles.sh + +LOCAL_PATH := $(call my-dir) + +ifeq ($(TARGET_DEVICE),fogos) + +endif diff --git a/BoardConfigVendor.mk b/BoardConfigVendor.mk new file mode 100644 index 0000000..54f2e3d --- /dev/null +++ b/BoardConfigVendor.mk @@ -0,0 +1,4 @@ +# Automatically generated file. DO NOT MODIFY +# +# This file is generated by device/motorola/fogos/setup-makefiles.sh + diff --git a/fogos-vendor.mk b/fogos-vendor.mk new file mode 100644 index 0000000..3ed7434 --- /dev/null +++ b/fogos-vendor.mk @@ -0,0 +1,392 @@ +# Automatically generated file. DO NOT MODIFY +# +# This file is generated by device/motorola/fogos/setup-makefiles.sh + +PRODUCT_SOONG_NAMESPACES += \ + vendor/motorola/fogos + +PRODUCT_COPY_FILES += \ + vendor/motorola/fogos/proprietary/system_ext/etc/permissions/com.android.hotwordenrollment.common.util.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/com.android.hotwordenrollment.common.util.xml \ + vendor/motorola/fogos/proprietary/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-goodixservice:$(TARGET_COPY_OUT_VENDOR)/bin/hw/android.hardware.biometrics.fingerprint@2.1-goodixservice \ + vendor/motorola/fogos/proprietary/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-fpc:$(TARGET_COPY_OUT_VENDOR)/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-fpc \ + vendor/motorola/fogos/proprietary/vendor/bin/fpc_ident:$(TARGET_COPY_OUT_VENDOR)/bin/fpc_ident \ + vendor/motorola/fogos/proprietary/vendor/bin/goodix_ident:$(TARGET_COPY_OUT_VENDOR)/bin/goodix_ident \ + vendor/motorola/fogos/proprietary/vendor/etc/SVIConfig.xml:$(TARGET_COPY_OUT_VENDOR)/etc/SVIConfig.xml \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/Bluetooth_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Bluetooth_cal.acdb \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/General_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/General_cal.acdb \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/Global_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Global_cal.acdb \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/Handset_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Handset_cal.acdb \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/Hdmi_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Hdmi_cal.acdb \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/Headset_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Headset_cal.acdb \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/Speaker_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Speaker_cal.acdb \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/adsp_avs_config.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/adsp_avs_config.acdb \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/nn_ns_models/candidate__2.7.1.31__3.0.0__eai_1.10_enpu1.pmd:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/nn_ns_models/candidate__2.7.1.31__3.0.0__eai_1.10_enpu1.pmd \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.2.0_0.1__3.0.0_0.0__eai_1.00.pmd:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/nn_ns_models/fai__2.2.0_0.1__3.0.0_0.0__eai_1.00.pmd \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.1_0.0__eai_v1.10.pmd:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/nn_ns_models/fai__2.6.1_0.0__eai_v1.10.pmd \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10.pmd:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10.pmd \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.36_enpu2.pmd:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.36_enpu2.pmd \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.7.4_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/nn_ns_models/fai__2.7.4_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd \ + vendor/motorola/fogos/proprietary/vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd \ + vendor/motorola/fogos/proprietary/vendor/etc/bst_3ddns_1.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/bst_3ddns_1.cfg \ + vendor/motorola/fogos/proprietary/vendor/etc/bst_3ddns_2.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/bst_3ddns_2.cfg \ + vendor/motorola/fogos/proprietary/vendor/etc/bst_3ddns_3.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/bst_3ddns_3.cfg \ + vendor/motorola/fogos/proprietary/vendor/etc/bstconfig/hdrcfg.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/bstconfig/hdrcfg.cfg \ + vendor/motorola/fogos/proprietary/vendor/etc/camera/anc_detect_model:$(TARGET_COPY_OUT_VENDOR)/etc/camera/anc_detect_model \ + vendor/motorola/fogos/proprietary/vendor/etc/camera/anc_track_model:$(TARGET_COPY_OUT_VENDOR)/etc/camera/anc_track_model \ + vendor/motorola/fogos/proprietary/vendor/etc/camera/mot_engine_config.bin:$(TARGET_COPY_OUT_VENDOR)/etc/camera/mot_engine_config.bin \ + vendor/motorola/fogos/proprietary/vendor/etc/camera/vidhance.lic:$(TARGET_COPY_OUT_VENDOR)/etc/camera/vidhance.lic \ + vendor/motorola/fogos/proprietary/vendor/etc/camera/vidhance_calibration:$(TARGET_COPY_OUT_VENDOR)/etc/camera/vidhance_calibration \ + vendor/motorola/fogos/proprietary/vendor/etc/camera/vidhance_calibration_2rd:$(TARGET_COPY_OUT_VENDOR)/etc/camera/vidhance_calibration_2rd \ + vendor/motorola/fogos/proprietary/vendor/etc/init/android.hardware.biometrics.fingerprint@2.1-goodixservice.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.biometrics.fingerprint@2.1-goodixservice.rc \ + vendor/motorola/fogos/proprietary/vendor/etc/init/android.hardware.biometrics.fingerprint@2.1-service-fpc2.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.biometrics.fingerprint@2.1-service-fpc2.rc \ + vendor/motorola/fogos/proprietary/vendor/etc/init/motorola.hardware.camera.imgtuner@2.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/motorola.hardware.camera.imgtuner@2.0-service.rc \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-PN557.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-PN557.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-SN220-UICC.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-SN220-UICC.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-SN220.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-SN220.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-mtp-SN100-UICC.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-mtp-SN100-UICC.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-mtp-SN100.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-mtp-SN100.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-mtp-SN100_38_4MHZ.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-mtp-SN100_38_4MHZ.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-nxp-pnscr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nxp-pnscr.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-qrd-SN100.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-qrd-SN100.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-qrd-SN100_38_4MHZ.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-qrd-SN100_38_4MHZ.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-sec-nci.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-sec-nci.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/libnfc-sec-vendor.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-sec-vendor.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/motorola/12m/chipone-icnl9916c_120hz_hd_plus_vid-primary-fogos.ini:$(TARGET_COPY_OUT_VENDOR)/etc/motorola/12m/chipone-icnl9916c_120hz_hd_plus_vid-primary-fogos.ini \ + vendor/motorola/fogos/proprietary/vendor/etc/nfc_calibration.txt:$(TARGET_COPY_OUT_VENDOR)/etc/nfc_calibration.txt \ + vendor/motorola/fogos/proprietary/vendor/etc/pwr/PowerFeatureConfig.xml:$(TARGET_COPY_OUT_VENDOR)/etc/pwr/PowerFeatureConfig.xml \ + vendor/motorola/fogos/proprietary/vendor/etc/pwr/VideoPowerOptFeature.xml:$(TARGET_COPY_OUT_VENDOR)/etc/pwr/VideoPowerOptFeature.xml \ + vendor/motorola/fogos/proprietary/vendor/etc/qdcm_calib_data_mipi_mot_vid_tm_icnl9916c_hdp_652_120.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_mipi_mot_vid_tm_icnl9916c_hdp_652_120.xml \ + vendor/motorola/fogos/proprietary/vendor/etc/qdcm_calib_data_mipi_mot_vid_txd_ili9883c_hdp_652_120.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_mipi_mot_vid_txd_ili9883c_hdp_652_120.xml \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/icm4x6xa.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/icm4x6xa.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/mot_camgest.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/mot_camgest.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/mot_tap.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/mot_tap.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_amd.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_amd.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_amd_sw_disabled.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_amd_sw_disabled.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_amd_sw_enabled.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_amd_sw_enabled.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_cm.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_cm.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_diag_filter.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_diag_filter.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_fmv.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_fmv.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_fmv_legacy.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_fmv_legacy.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_geomag_rv.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_geomag_rv.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_gyro_cal.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_gyro_cal.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_mag_cal.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_mag_cal.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_rmd.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_rmd.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_rotv.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_rotv.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_smd.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_smd.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_tilt_sw_enabled.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_tilt_sw_enabled.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_tilt_to_wake.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_tilt_to_wake.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/sns_wrist_pedo.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/sns_wrist_pedo.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_bmi3x0_0.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_bmi3x0_0.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_default_sensors.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_default_sensors.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_dynamic_sensors.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_dynamic_sensors.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_ltr569_0.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_ltr569_0.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_mmc56x3x_0_with_nfc.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_mmc56x3x_0_with_nfc.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_mmc56x3x_0_without_nfc.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_mmc56x3x_0_without_nfc.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_power_0.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_power_0.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_qmc6308_0_with_nfc.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_qmc6308_0_with_nfc.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_qmc6308_0_without_nfc.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_qmc6308_0_without_nfc.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/config/strait_qmi8658_0.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/strait_qmi8658_0.json \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/descriptor.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/descriptor.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_barocal.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_barocal.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_camgest.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_camgest.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_chopchop.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_chopchop.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_devorient.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_devorient.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_dsp_usound.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_dsp_usound.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_flip.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_flip.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_ftm.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_ftm.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_glance.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_glance.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_log.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_log.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_lts.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_lts.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_ltv.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_ltv.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_movement.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_movement.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_offbody.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_offbody.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_probe.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_probe.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_proxcal.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_proxcal.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_stowed.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_stowed.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_tap.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_tap.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/mot_vsync.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/mot_vsync.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/nanopb.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/nanopb.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_accel.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_accel.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_accel_cal.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_accel_cal.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_activity_recognition.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_activity_recognition.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_ambient_light.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_ambient_light.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_ambient_temperature.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_ambient_temperature.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_amd.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_amd.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_aont.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_aont.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_basic_gestures.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_basic_gestures.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_bring_to_ear.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_bring_to_ear.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_cal.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_cal.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_client.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_client.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_cmc.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_cmc.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_da_test.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_da_test.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_device_mode.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_device_mode.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_device_orient.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_device_orient.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_diag.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_diag.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_diag_sensor.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_diag_sensor.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_direct_channel.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_direct_channel.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_dpc.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_dpc.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_ext_svc.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_ext_svc.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_facing.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_facing.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_fmv.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_fmv.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_formatter.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_formatter.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_formatter_notify.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_formatter_notify.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_fw.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_fw.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_game_rv.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_game_rv.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_geomag_rv.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_geomag_rv.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_gravity.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_gravity.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_gyro.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_gyro.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_gyro_cal.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_gyro_cal.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_gyro_rot_matrix.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_gyro_rot_matrix.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_hall.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_hall.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_heart_beat.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_heart_beat.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_heart_rate.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_heart_rate.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_hinge_angle.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_hinge_angle.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_humidity.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_humidity.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_mag.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_mag.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_mag_cal.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_mag_cal.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_mot_factory_cal.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_mot_factory_cal.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_oem1.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_oem1.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_offbody_detect.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_offbody_detect.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_pedometer.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_pedometer.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_pedometer_wrist.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_pedometer_wrist.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_physical_sensor_test.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_physical_sensor_test.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_pose_6dof.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_pose_6dof.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_ppg.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_ppg.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_pressure.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_pressure.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_proximity.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_proximity.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_psmd.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_psmd.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_registry.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_registry.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_resampler.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_resampler.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_rgb.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_rgb.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_rmd.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_rmd.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_rotv.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_rotv.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_sar.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_sar.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_sensor_temperature.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_sensor_temperature.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_sig_motion.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_sig_motion.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_std.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_std.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_std_event_gated_sensor.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_std_event_gated_sensor.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_std_sensor.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_std_sensor.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_std_type.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_std_type.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_step_detect.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_step_detect.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_suid.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_suid.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_thermopile.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_thermopile.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_threshold.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_threshold.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_tilt.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_tilt.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_tilt_to_wake.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_tilt_to_wake.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_ultra_violet.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_ultra_violet.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/sns_wrist_tilt_gesture.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/sns_wrist_tilt_gesture.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/proto/tcs3708.proto:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/proto/tcs3708.proto \ + vendor/motorola/fogos/proprietary/vendor/etc/sensors/sns_reg_config:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/sns_reg_config \ + vendor/motorola/fogos/proprietary/vendor/etc/thermal-engine-fogos-camera.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-fogos-camera.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/thermal-engine-fogos-game-normal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-fogos-game-normal.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/thermal-engine-fogos-game-perf.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-fogos-game-perf.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/thermal-engine-fogos.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-fogos.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/thermal-engine.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine.conf \ + vendor/motorola/fogos/proprietary/vendor/etc/vhw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/vhw.xml \ + vendor/motorola/fogos/proprietary/vendor/firmware/ILITEK_FW:$(TARGET_COPY_OUT_VENDOR)/firmware/ILITEK_FW \ + vendor/motorola/fogos/proprietary/vendor/firmware/aw963xx_reg_0.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/aw963xx_reg_0.bin \ + vendor/motorola/fogos/proprietary/vendor/firmware/chipone_firmware.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/chipone_firmware.bin \ + vendor/motorola/fogos/proprietary/vendor/firmware/csot_focal_test_limits.ini:$(TARGET_COPY_OUT_VENDOR)/firmware/csot_focal_test_limits.ini \ + vendor/motorola/fogos/proprietary/vendor/firmware/focaltech-csot-ft3681-22-0000-fogos.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/focaltech-csot-ft3681-22-0000-fogos.bin \ + vendor/motorola/fogos/proprietary/vendor/firmware/fs1815.fsm:$(TARGET_COPY_OUT_VENDOR)/firmware/fs1815.fsm \ + vendor/motorola/fogos/proprietary/vendor/firmware/goodix-tm-gt9916S-23051702-646483c4-fogos.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/goodix-tm-gt9916S-23051702-646483c4-fogos.bin \ + vendor/motorola/fogos/proprietary/vendor/firmware/sec_s3nrn4v_firmware.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/sec_s3nrn4v_firmware.bin \ + vendor/motorola/fogos/proprietary/vendor/firmware/tm_goodix_cfg_group.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/tm_goodix_cfg_group.bin \ + vendor/motorola/fogos/proprietary/vendor/lib/libacdbloader.so:$(TARGET_COPY_OUT_VENDOR)/lib/libacdbloader.so \ + vendor/motorola/fogos/proprietary/vendor/lib/libbitmlengine.so:$(TARGET_COPY_OUT_VENDOR)/lib/libbitmlengine.so \ + vendor/motorola/fogos/proprietary/vendor/lib/libbitmlenginev2.so:$(TARGET_COPY_OUT_VENDOR)/lib/libbitmlenginev2.so \ + vendor/motorola/fogos/proprietary/vendor/lib/libcamxexternalformatutils.so:$(TARGET_COPY_OUT_VENDOR)/lib/libcamxexternalformatutils.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p256c_s5kjns_eeprom.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.mot.eeprom.mot_gt24p256c_s5kjns_eeprom.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_ov16a1q_eeprom.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.mot.eeprom.mot_gt24p64b_ov16a1q_eeprom.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_s5k3p9_eeprom.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.mot.eeprom.mot_gt24p64b_s5k3p9_eeprom.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_sc202acs_otp.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.mot.eeprom.mot_sc202acs_otp.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.flash.aw36514.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.flash.aw36514.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.flash.ocp81375.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.flash.ocp81375.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.sensor.mot_ov16a1q.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.sensor.mot_ov16a1q.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.sensor.mot_s5k3p9.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.sensor.mot_s5k3p9.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.sensor.mot_s5kjns.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.sensor.mot_s5kjns.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.sensor.mot_sc202acs.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.sensor.mot_sc202acs.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogor_s5kjns_qtech.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.sensormodule.mot_fogor_s5kjns_qtech.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogor_sc202acs_sunny.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.sensormodule.mot_fogor_sc202acs_sunny.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogos_ov16a1q_ofilm.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.sensormodule.mot_fogos_ov16a1q_ofilm.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogos_s5k3p9_qtech.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.sensormodule.mot_fogos_s5k3p9_qtech.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.tuned.default.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.tuned.default.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogo_sc202acs.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.tuned.mot_fogo_sc202acs.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogor_s5kjns.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.tuned.mot_fogor_s5kjns.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogos_ov16a1q.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.tuned.mot_fogos_ov16a1q.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogos_s5k3p9.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/com.qti.tuned.mot_fogos_s5k3p9.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.arcsoft.node.supernightraw.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.arcsoft.node.supernightraw.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.bst.node.hdrdetect.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.bst.node.hdrdetect.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.bst.node.mfnr.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.bst.node.mfnr.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.bst.node.yuvhdr.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.bst.node.yuvhdr.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.mot.node.c2d.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.mot.node.c2d.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.camx.chiiqutils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.camx.chiiqutils.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.eisv2.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.eisv2.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.eisv3.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.eisv3.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.hvx.addconstant.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.hvx.addconstant.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.hvx.binning.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.hvx.binning.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.customhwnode.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.customhwnode.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.depth.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.depth.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.dewarp.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.dewarp.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.dummyrtb.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.dummyrtb.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.dummysat.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.dummysat.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.eisv2.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.eisv2.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.eisv3.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.eisv3.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.fcv.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.fcv.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.formatconversion.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.formatconversion.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.gpu.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.gpu.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.memcpy.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.memcpy.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.ml.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.ml.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.remosaic.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.remosaic.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.stich.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.stich.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.swaidenoiser.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.swaidenoiser.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.swbestats.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.swbestats.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.swcac.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.swcac.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.swlsc.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.swlsc.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.swmctf.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.swmctf.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.swmfnr.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.swmfnr.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.swpdpc.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.swpdpc.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.swpreprocess.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.swpreprocess.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.node.swregistration.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.node.swregistration.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.aec.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.aec.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.aecwrapper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.aecwrapper.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.aecxcore.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.aecxcore.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.af.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.af.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.afd.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.afd.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.afwrapper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.afwrapper.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.asd.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.asd.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.awb.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.awb.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.awbwrapper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.awbwrapper.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.cnndriver.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.cnndriver.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.haf.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.haf.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.hafoverride.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.hafoverride.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlib.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.pdlib.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlibsony.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.pdlibsony.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qti.stats.pdlibwrapper.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.aec.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qtistatic.stats.aec.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.af.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qtistatic.stats.af.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.awb.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qtistatic.stats.awb.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.pdlib.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.qtistatic.stats.pdlib.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.vidhance.node.ica.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.vidhance.node.ica.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/com.vidhance.node.processing.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/com.vidhance.node.processing.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/components/libdepthmapwrapper_secure.so:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/components/libdepthmapwrapper_secure.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/fdconfigpreview.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/fdconfigpreview.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/fdconfigpreviewlite.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/fdconfigpreviewlite.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/fdconfigvideo.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/fdconfigvideo.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/camera/fdconfigvideolite.bin:$(TARGET_COPY_OUT_VENDOR)/lib64/camera/fdconfigvideolite.bin \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.fingerprints.extension@1.0.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.fingerprints.extension@1.0.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.chiusecaseselector.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.chiusecaseselector.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.anchorsync.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.anchorsync.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.arcrawpro.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.arcrawpro.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.demux.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.demux.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.frameselect.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.frameselect.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.fusion.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.fusion.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.generic.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.generic.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.gs.mannar.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.gs.mannar.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.hdr.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.hdr.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.mcreprocrt.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.mcreprocrt.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.memcpy.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.memcpy.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.mfsr.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.mfsr.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.mux.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.mux.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.rawhdr.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.rawhdr.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.realtimeserializer.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.realtimeserializer.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.rt.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.rt.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.rtmcx.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.rtmcx.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.serializer.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.serializer.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.feature2.swmf.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.feature2.swmf.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.settings.mannar.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.settings.mannar.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qti.stats.common.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qti.stats.common.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qualcomm.mcx.distortionmapper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qualcomm.mcx.distortionmapper.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qualcomm.mcx.linearmapper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qualcomm.mcx.linearmapper.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qualcomm.mcx.policy.mfl.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qualcomm.mcx.policy.mfl.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/com.qualcomm.qti.mcx.usecase.extension.so:$(TARGET_COPY_OUT_VENDOR)/lib64/com.qualcomm.qti.mcx.usecase.extension.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/hw/camera.qcom.so:$(TARGET_COPY_OUT_VENDOR)/lib64/hw/camera.qcom.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/hw/com.qti.chi.override.so:$(TARGET_COPY_OUT_VENDOR)/lib64/hw/com.qti.chi.override.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/hw/fingerprint.goodix.default.so:$(TARGET_COPY_OUT_VENDOR)/lib64/hw/fingerprint.goodix.default.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/hw/motorola.hardware.camera.imgtuner@2.0-impl.so:$(TARGET_COPY_OUT_VENDOR)/lib64/hw/motorola.hardware.camera.imgtuner@2.0-impl.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libBST3DDNS.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libBST3DDNS.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libBSTHDRDETECT.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libBSTHDRDETECT.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libBSTMultiExpoGainHDR.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libBSTMultiExpoGainHDR.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libBSTNodeUtils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libBSTNodeUtils.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libC2D2.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libC2D2.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libacdbloader.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libacdbloader.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libaidenoiser.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libaidenoiser.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libaidenoiserv2.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libaidenoiserv2.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libarcsoft_chi_utils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libarcsoft_chi_utils.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libarcsoft_portrait_super_night_se_raw.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libarcsoft_portrait_super_night_se_raw.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libarcsoft_super_night_raw.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libarcsoft_super_night_raw.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libarcsoft_super_night_se_raw.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libarcsoft_super_night_se_raw.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libbitmlengine.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libbitmlengine.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libbitmlenginev2.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libbitmlenginev2.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libc2d_helper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libc2d_helper.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamera_nn_stub.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamera_nn_stub.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamerapostproc.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamerapostproc.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxexternalformatutils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxexternalformatutils.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxfacialfeatures.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxfacialfeatures.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxfdalgo.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxfdalgo.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxfdengine.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxfdengine.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxifestriping.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxifestriping.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamximageformatutils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamximageformatutils.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxqsatalgo.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxqsatalgo.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxstatscore.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxstatscore.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxswispiqmodule.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxswispiqmodule.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxswprocessalgo.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxswprocessalgo.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcamxtintlessalgo.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcamxtintlessalgo.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libchilog.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libchilog.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libcom.qti.chinodeutils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libcom.qti.chinodeutils.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libgf_ca.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libgf_ca.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libgf_hal.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libgf_hal.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libgoodixhwfingerprint.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libgoodixhwfingerprint.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libhdr_impl.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libhdr_impl.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libipebpsstriping.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libipebpsstriping.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libipebpsstriping170.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libipebpsstriping170.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libjpege.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libjpege.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/liblowlight_ai_portrait.arcsoft.so:$(TARGET_COPY_OUT_VENDOR)/lib64/liblowlight_ai_portrait.arcsoft.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmctfengine_stub.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmctfengine_stub.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmfec.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmfec.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmmcamera_bestats.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmmcamera_bestats.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmmcamera_cac3.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmmcamera_cac3.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmmcamera_faceproc.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmmcamera_faceproc.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmmcamera_faceproc2.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmmcamera_faceproc2.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmmcamera_lscv35.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmmcamera_lscv35.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmmcamera_mfnr.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmmcamera_mfnr.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmmcamera_mfnr_t4.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmmcamera_mfnr_t4.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmmcamera_pdpc.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmmcamera_pdpc.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmot_afd.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmot_afd.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmot_chi_desktop_helper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmot_chi_desktop_helper.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmot_engine_settings.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmot_engine_settings.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmotohid.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmotohid.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libmpbase.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libmpbase.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libofflinedump.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libofflinedump.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libofflinelog.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libofflinelog.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libopencv.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libopencv.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libopestriping.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libopestriping.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libos.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libos.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libportrait_repair_ppl3_ocl.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libportrait_repair_ppl3_ocl.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libpowercore.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libpowercore.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libqll10.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqll10.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libqllengine.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqllengine.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libremosaic_wrapper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libremosaic_wrapper.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libswregistrationalgo.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libswregistrationalgo.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libsynx.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libsynx.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libtfestriping.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libtfestriping.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libthreadutils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libthreadutils.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/libvidhance.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libvidhance.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/motorola.hardware.camera.desktop@1.0.so:$(TARGET_COPY_OUT_VENDOR)/lib64/motorola.hardware.camera.desktop@1.0.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/motorola.hardware.camera.desktop@2.0.so:$(TARGET_COPY_OUT_VENDOR)/lib64/motorola.hardware.camera.desktop@2.0.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/motorola.hardware.camera.imgtuner@1.0.so:$(TARGET_COPY_OUT_VENDOR)/lib64/motorola.hardware.camera.imgtuner@1.0.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/motorola.hardware.camera.imgtuner@2.0.so:$(TARGET_COPY_OUT_VENDOR)/lib64/motorola.hardware.camera.imgtuner@2.0.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/sensors.moto.so:$(TARGET_COPY_OUT_VENDOR)/lib64/sensors.moto.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/sensors.ssc.so:$(TARGET_COPY_OUT_VENDOR)/lib64/sensors.ssc.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/vendor.goodix.hardware.biometrics.fingerprint@3.0.so:$(TARGET_COPY_OUT_VENDOR)/lib64/vendor.goodix.hardware.biometrics.fingerprint@3.0.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so:$(TARGET_COPY_OUT_VENDOR)/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/vendor.qti.hardware.fingerprint@1.0.so:$(TARGET_COPY_OUT_VENDOR)/lib64/vendor.qti.hardware.fingerprint@1.0.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/vendor.qti.hardware.scve.objecttracker@1.0.so:$(TARGET_COPY_OUT_VENDOR)/lib64/vendor.qti.hardware.scve.objecttracker@1.0.so \ + vendor/motorola/fogos/proprietary/vendor/lib64/vendor.qti.hardware.scve.panorama@1.0.so:$(TARGET_COPY_OUT_VENDOR)/lib64/vendor.qti.hardware.scve.panorama@1.0.so + +PRODUCT_PACKAGES += \ + HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND \ + HotwordEnrollmentXGoogleHEXAGON_WIDEBAND \ + com.android.hotwordenrollment.common.util diff --git a/proprietary/product/priv-app/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND.apk b/proprietary/product/priv-app/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND.apk new file mode 100644 index 0000000..1f7ddf5 Binary files /dev/null and b/proprietary/product/priv-app/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND.apk differ diff --git a/proprietary/product/priv-app/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND.apk b/proprietary/product/priv-app/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND.apk new file mode 100644 index 0000000..e5c1f58 Binary files /dev/null and b/proprietary/product/priv-app/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND.apk differ diff --git a/proprietary/system_ext/etc/permissions/com.android.hotwordenrollment.common.util.xml b/proprietary/system_ext/etc/permissions/com.android.hotwordenrollment.common.util.xml new file mode 100644 index 0000000..6f7d728 --- /dev/null +++ b/proprietary/system_ext/etc/permissions/com.android.hotwordenrollment.common.util.xml @@ -0,0 +1,22 @@ + + + + + + diff --git a/proprietary/system_ext/framework/com.android.hotwordenrollment.common.util.jar b/proprietary/system_ext/framework/com.android.hotwordenrollment.common.util.jar new file mode 100644 index 0000000..afc0a4e Binary files /dev/null and b/proprietary/system_ext/framework/com.android.hotwordenrollment.common.util.jar differ diff --git a/proprietary/vendor/bin/fpc_ident b/proprietary/vendor/bin/fpc_ident new file mode 100755 index 0000000..58ba63d Binary files /dev/null and b/proprietary/vendor/bin/fpc_ident differ diff --git a/proprietary/vendor/bin/goodix_ident b/proprietary/vendor/bin/goodix_ident new file mode 100755 index 0000000..0893068 Binary files /dev/null and b/proprietary/vendor/bin/goodix_ident differ diff --git a/proprietary/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-goodixservice b/proprietary/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-goodixservice new file mode 100644 index 0000000..6ac1bf3 Binary files /dev/null and b/proprietary/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-goodixservice differ diff --git a/proprietary/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-fpc b/proprietary/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-fpc new file mode 100644 index 0000000..ff8b51e Binary files /dev/null and b/proprietary/vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-fpc differ diff --git a/proprietary/vendor/etc/SVIConfig.xml b/proprietary/vendor/etc/SVIConfig.xml new file mode 100644 index 0000000..e317357 --- /dev/null +++ b/proprietary/vendor/etc/SVIConfig.xml @@ -0,0 +1,42 @@ + + + + 128 + + 128 + + 12 + 8 + + 297 1495 2900 4226 4750 5551 10500 + 297 1495 2900 4226 4750 5551 10500 + 7 + + 0, 100, 2047 + 0, 100, 2047 + 2047 + 3 + + 8 + 400 + + 820 + 0 + 0 + + 3 + 17 + + 2500 + 120 + + 15000 + 255 + + 2600 + + 4 + 30 50 128 160 + 2 48 48 48 + + diff --git a/proprietary/vendor/etc/acdbdata/Bluetooth_cal.acdb b/proprietary/vendor/etc/acdbdata/Bluetooth_cal.acdb new file mode 100644 index 0000000..0f02c96 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/Bluetooth_cal.acdb differ diff --git a/proprietary/vendor/etc/acdbdata/General_cal.acdb b/proprietary/vendor/etc/acdbdata/General_cal.acdb new file mode 100644 index 0000000..ce9cf76 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/General_cal.acdb differ diff --git a/proprietary/vendor/etc/acdbdata/Global_cal.acdb b/proprietary/vendor/etc/acdbdata/Global_cal.acdb new file mode 100644 index 0000000..c2e7f53 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/Global_cal.acdb differ diff --git a/proprietary/vendor/etc/acdbdata/Handset_cal.acdb b/proprietary/vendor/etc/acdbdata/Handset_cal.acdb new file mode 100644 index 0000000..6257bfd Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/Handset_cal.acdb differ diff --git a/proprietary/vendor/etc/acdbdata/Hdmi_cal.acdb b/proprietary/vendor/etc/acdbdata/Hdmi_cal.acdb new file mode 100644 index 0000000..d92938c Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/Hdmi_cal.acdb differ diff --git a/proprietary/vendor/etc/acdbdata/Headset_cal.acdb b/proprietary/vendor/etc/acdbdata/Headset_cal.acdb new file mode 100644 index 0000000..f9c979f Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/Headset_cal.acdb differ diff --git a/proprietary/vendor/etc/acdbdata/Speaker_cal.acdb b/proprietary/vendor/etc/acdbdata/Speaker_cal.acdb new file mode 100644 index 0000000..d9e780a Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/Speaker_cal.acdb differ diff --git a/proprietary/vendor/etc/acdbdata/adsp_avs_config.acdb b/proprietary/vendor/etc/acdbdata/adsp_avs_config.acdb new file mode 100644 index 0000000..a16693d Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/adsp_avs_config.acdb differ diff --git a/proprietary/vendor/etc/acdbdata/nn_ns_models/candidate__2.7.1.31__3.0.0__eai_1.10_enpu1.pmd b/proprietary/vendor/etc/acdbdata/nn_ns_models/candidate__2.7.1.31__3.0.0__eai_1.10_enpu1.pmd new file mode 100644 index 0000000..c3e84ef Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/nn_ns_models/candidate__2.7.1.31__3.0.0__eai_1.10_enpu1.pmd differ diff --git a/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd new file mode 100644 index 0000000..072fe17 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd differ diff --git a/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.2.0_0.1__3.0.0_0.0__eai_1.00.pmd b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.2.0_0.1__3.0.0_0.0__eai_1.00.pmd new file mode 100644 index 0000000..4093c83 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.2.0_0.1__3.0.0_0.0__eai_1.00.pmd differ diff --git a/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.1_0.0__eai_v1.10.pmd b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.1_0.0__eai_v1.10.pmd new file mode 100644 index 0000000..e9ec254 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.1_0.0__eai_v1.10.pmd differ diff --git a/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10.pmd b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10.pmd new file mode 100644 index 0000000..ec97498 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10.pmd differ diff --git a/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd new file mode 100644 index 0000000..ec97498 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd differ diff --git a/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.36_enpu2.pmd b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.36_enpu2.pmd new file mode 100644 index 0000000..1779a1a Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.36_enpu2.pmd differ diff --git a/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.7.4_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.7.4_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd new file mode 100644 index 0000000..db42d99 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/nn_ns_models/fai__2.7.4_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd differ diff --git a/proprietary/vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd b/proprietary/vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd new file mode 100644 index 0000000..67323d9 Binary files /dev/null and b/proprietary/vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd differ diff --git a/proprietary/vendor/etc/bst_3ddns_1.cfg b/proprietary/vendor/etc/bst_3ddns_1.cfg new file mode 100644 index 0000000..39efb1b Binary files /dev/null and b/proprietary/vendor/etc/bst_3ddns_1.cfg differ diff --git a/proprietary/vendor/etc/bst_3ddns_2.cfg b/proprietary/vendor/etc/bst_3ddns_2.cfg new file mode 100644 index 0000000..c75bce2 Binary files /dev/null and b/proprietary/vendor/etc/bst_3ddns_2.cfg differ diff --git a/proprietary/vendor/etc/bst_3ddns_3.cfg b/proprietary/vendor/etc/bst_3ddns_3.cfg new file mode 100644 index 0000000..c75bce2 Binary files /dev/null and b/proprietary/vendor/etc/bst_3ddns_3.cfg differ diff --git a/proprietary/vendor/etc/bstconfig/hdrcfg.cfg b/proprietary/vendor/etc/bstconfig/hdrcfg.cfg new file mode 100644 index 0000000..fb418d1 Binary files /dev/null and b/proprietary/vendor/etc/bstconfig/hdrcfg.cfg differ diff --git a/proprietary/vendor/etc/camera/anc_detect_model b/proprietary/vendor/etc/camera/anc_detect_model new file mode 100644 index 0000000..c01e620 Binary files /dev/null and b/proprietary/vendor/etc/camera/anc_detect_model differ diff --git a/proprietary/vendor/etc/camera/anc_track_model b/proprietary/vendor/etc/camera/anc_track_model new file mode 100644 index 0000000..a4cb46e Binary files /dev/null and b/proprietary/vendor/etc/camera/anc_track_model differ diff --git a/proprietary/vendor/etc/camera/mot_engine_config.bin b/proprietary/vendor/etc/camera/mot_engine_config.bin new file mode 100644 index 0000000..ca2e72b --- /dev/null +++ b/proprietary/vendor/etc/camera/mot_engine_config.bin @@ -0,0 +1,9 @@ +± + +mot_s5kjns¢8B/N d€€€€ € €2‚‚‚‚B0 œ d€€€€ € €2‚‚‚‚B0°ê d€€€€ € €2‚‚‚‚B0À¸ d€€€€ € €2‚‚‚‚B0І d€€€€ € €2‚‚‚‚B   d€€€€ È ¬€€ €€€€ ô€€€€ Ø€€€€ ¼€€   „ è Ì °  ” + ø + Ü  À  €‚‚ À%‚‚‚‚ €2ƒƒƒƒ„ + +mot_s5k3p9õ8B/N d€€€€  ‚ À ƒ‚ƒ‚B0 œ d€€€€   À ‚‚‚B0°ê d€€€€  ‚‚ À ƒ‚‚‚B0À¸ d€€€€  ‚‚ À ƒ‚ƒ‚B0І d€€€€  ‚‚ À ƒ‚ƒ‚Bó  d€€€€ È ¬‚‚‚ ‚‚‚ ô‚‚‚ Ø‚ ¼‚‚  ‚‚‚ „‚‚‚‚ 胂ƒ ̃‚ƒ‚ ° ƒ‚ƒ‚ ” +‚‚‚‚ ø +‚‚‚‚ Ü ƒ‚‚‚ À ƒ‚ƒ‚ \ No newline at end of file diff --git a/proprietary/vendor/etc/camera/vidhance.lic b/proprietary/vendor/etc/camera/vidhance.lic new file mode 100644 index 0000000..df0a74c --- /dev/null +++ b/proprietary/vendor/etc/camera/vidhance.lic @@ -0,0 +1 @@ +{"id":"VKaPkTrnd2ZhjEEF8YbQocyh2bmn4wCG","version":"4.5","expires":"never","features":["NjcgISgvKDkkMQ"],"signature":"0B1F2EA8EB825159DA058C8320172EDB1FA568BD140FC6A9C8C34AF8AEAFC68603E643AFBC6C011E5FBE20946C59322995AFB0D09187EA6E767CBAB6A78083F6F1E590F4604436C7AEB57C762B44272C89386F2BCC32257717CF24EBC6B659370883C768DB97184534C82D1576E3A0FD1F95E21167B47FC5FFAD7E62C1D8EDFB42A9C507A0A4C50FBE814BB5772EDEB73AA40CCAE9D713D1E70E7AB31AE89AAB678A9D71FD448C134457FC8367799369FF07161C1407C5017BEF742347B358BF96655BD8058C972C9BDCE0AC27D3D72AEFFB0E0F4E957B8428388892D653466E92A68731328D205E5BC4931838A122EA902240B251E56C13E117A60480DF9F22"} \ No newline at end of file diff --git a/proprietary/vendor/etc/camera/vidhance_calibration b/proprietary/vendor/etc/camera/vidhance_calibration new file mode 100644 index 0000000..410b5ba --- /dev/null +++ b/proprietary/vendor/etc/camera/vidhance_calibration @@ -0,0 +1,7 @@ +Version: 1 +Date: 2023-09-22 +Device: Fogo5Grow +Description: Calibration for Fogo5Grow device +>Icccca34!/(&-%2ayc>Icccccccca5$16(2-aycpoIcccccccca' 7$aycaqsqvlsxlqqaoIcccccccca'$5(&$ayca2*2t +12:aoIcccccccca'$6&1(37(2-ayca /(!1 7(2-c%21c2*2t +12:c'$5(&$aIccccIccccccccasayc>Icccccccccccca34!/(&$6&1(37(2-ayca &.c& ,$1 occsaoIcccccccccccca/'& 1 ,$7$16ayc>Icccccccccccccccca,2'$/ayca63/(-$aoIcccccccccccccccca%21: 1'2(-76aycsocsmsssvqqzpxxwxocsmsssuwqpwtqqzocsmsssuzxstpptwocsmsspustpusszocsmssuuvtwp{puoIcccccccccccccccca%21: 1'7$3(9$aycsmptszq{xquoIcccccccccccccccca%(6+$8$ &721aycsoIcccccccccccccccca1$ 33/8ayc714$IccccccccccccIccccccccccccccccapayc>Icccccccccccccccccccca%2& /$-*7+ 21, /(9$'aycsm{qxvsvoIcccccccccccccccccccca12//(-*+477$1(,$aycqqm{{{zoIcccccccccccccccccccca*812(,$67 ,3%%6$7aycvmqz{woIcccccccccccccccccccca34!/(&$6&1(37(2-ayca vs%36aIccccccccccccccccIcccccccccccca34!/(&$6&1(37(2-ayca12-7c& ,$1 occpaoIcccccccccccca/'& 1 ,$7$16ayc>Icccccccccccccccca,2'$/ayca63/(-$aoIcccccccccccccccca%21: 1'2(-76aycsocsmsspxqpqzxpqocsmsssvsqqvwwvqoclsmssptzpqvxzxocsmsssvp{pp{{vzocsmssqtp{sxzwoIcccccccccccccccca%21: 1'7$3(9$aycsmpzt{wvwwzoIcccccccccccccccca%(6+$8$ &721aycsoIcccccccccccccccca1$ 33/8ayc714$IccccccccccccIccccccccccccccccapayc>Icccccccccccccccccccca%2& /$-*7+ 21, /(9$'aycsmzps{usoIcccccccccccccccccccca12//(-*+477$1(,$aycvtmxtx{oIcccccccccccccccccccca*812(,$67 ,3%%6$7aycsmtqssoIcccccccccccccccccccca34!/(&$6&1(37(2-ayca vs%36aIccccccccccccccccIcccccccccccca34!/(&$6&1(37(2-ayca &12c& ,$1 occqaoIcccccccccccca/'& 1 ,$7$16ayc>Icccccccccccccccca,2'$/ayca63/(-$aoIcccccccccccccccca%21: 1'2(-76aycsocsmsssuvtzq{t{xoclsmsssvwwppxtoclsmsssuqps{pqpvocsmssuwuuzstvtocsmsqpuvptttuoIcccccccccccccccca%21: 1'7$3(9$aycsmp{sxwuwwoIcccccccccccccccca%(6+$8$ &721aycsoIcccccccccccccccca1$ 33/8ayc714$IccccccccccccIccccccccccccccccapayc>Icccccccccccccccccccca%2& /$-*7+ 21, /(9$'aycsmuxs{pqoIcccccccccccccccccccca12//(-*+477$1(,$aycvpmxuupoIcccccccccccccccccccca*812(,$67 ,3%%6$7aycpm{vqzoIcccccccccccccccccccca34!/(&$6&1(37(2-ayca vs%36aIccccccccccccccccIcccca34!/(&-%2ayc>Icccccccca5$16(2-aycpoIcccccccca' 7$aycaqsqvlpslpvaoIcccccccca'$5(&$ayca2*2t +12:aoIcccccccca'$6&1(37(2-ayca /(!1 7(2-c%21c2*2t +12:c'$5(&$ck0,({ut{haIccccIccccccccasayc>Icccccccccccca34!/(&$6&1(37(2-ayca &.c& ,$1 occsaoIcccccccccccca/'& 1 ,$7$16ayc>Icccccccccccccccca,2'$/ayca63/(-$aoIcccccccccccccccca%21: 1'2(-76aycsoclsmssqtpzsttqtoclsmssuwzxvw{suoclsmspvquwwu{xoclsmsqppwtp{xqoclsmsqtsqwpsuzoIcccccccccccccccca%21: 1'7$3(9$aycsmpttvv{uxoIcccccccccccccccca%(6+$8$ &721aycsoIcccccccccccccccca1$ 33/8ayc714$IccccccccccccIccccccccccccccccapayc>Icccccccccccccccccccca%2& /$-*7+ 21, /(9$'aycsm{swttqoIcccccccccccccccccccca12//(-*+477$1(,$aycqqmutxsoIcccccccccccccccccccca*812(,$67 ,3%%6$7aycqmxs{uoIcccccccccccccccccccca34!/(&$6&1(37(2-ayca vs%36aIccccccccccccccccIcccccccccccca34!/(&$6&1(37(2-ayca12-7c& ,$1 occpaoIcccccccccccca/'& 1 ,$7$16ayc>Icccccccccccccccca,2'$/ayca63/(-$aoIcccccccccccccccca%21: 1'2(-76aycsocsmsspxqpqzxpqocsmsssvsqqvwwvqoclsmssptzpqvxzxocsmsssvp{pp{{vzocsmssqtp{sxzwoIcccccccccccccccca%21: 1'7$3(9$aycsmpzt{wvwwzoIcccccccccccccccca%(6+$8$ &721aycsoIcccccccccccccccca1$ 33/8ayc714$IccccccccccccIccccccccccccccccapayc>Icccccccccccccccccccca%2& /$-*7+ 21, /(9$'aycsmzps{usoIcccccccccccccccccccca12//(-*+477$1(,$aycvtmxtx{oIcccccccccccccccccccca*812(,$67 ,3%%6$7aycsmtqssoIcccccccccccccccccccca34!/(&$6&1(37(2-ayca vs%36aIccccccccccccccccIcccccccccccca34!/(&$6&1(37(2-ayca &12c& ,$1 occqaoIcccccccccccca/'& 1 ,$7$16ayc>Icccccccccccccccca,2'$/ayca63/(-$aoIcccccccccccccccca%21: 1'2(-76aycsocsmsssxzxqqztxuocsmssspvvzswwuzoclsmssstx{vuvxq{ocsmsst{vuw{t{xocsmsqqtv{vzpwoIcccccccccccccccca%21: 1'7$3(9$aycsmp{wvwxzvpoIcccccccccccccccca%(6+$8$ &721aycsoIcccccccccccccccca1$ 33/8ayc714$IccccccccccccIccccccccccccccccapayc>Icccccccccccccccccccca%2& /$-*7+ 21, /(9$'aycsmuz{stxoIcccccccccccccccccccca12//(-*+477$1(,$aycvpmxvvxoIcccccccccccccccccccca*812(,$67 ,3%%6$7aycpmwvqvoIcccccccccccccccccccca34!/(&$6&1(37(2-ayca vs%36aIcccccccccccccccc Modulation detected, L1, L2 CE +NXP_CORE_PROP_SYSTEM_DEBUG=0x0000 + +############################################################################### +#Enable NXP NCI runtime parser library +#Enable 0x01 +#Disable 0x00 +NXP_NCI_PARSER_LIBRARY=0x00 + +############################################################################### +# Timeout value in milliseconds for JCOP OS download to complete +OS_DOWNLOAD_TIMEOUT_VALUE=60000 + +############################################################################### +# Forcing HOST to listen for a selected protocol +# 0x00 : Disable Host Listen +# 0x01 : Enable Host to Listen (A) for ISO-DEP tech A +# 0x02 : Enable Host to Listen (B) for ISO-DEP tech B +# 0x04 : Enable Host to Listen (F) for T3T Tag Type Protocol tech F +# 0x07 : Enable Host to Listen (ABF)for ISO-DEP tech AB & T3T Tag Type Protocol tech F +HOST_LISTEN_TECH_MASK=0x07 + +############################################################################### +# Enable forward functionality +# Disable 0x00 +# Enable 0x01 //Any positive value as per below bit configuration +# HOST power states when type A/B only UICC present +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +FORWARD_FUNCTIONALITY_ENABLE=0x01 + +############################################################################### +# Configure the NFC Extras to open and use a static pipe. If the value is +# not set or set to 0, then the default is use a dynamic pipe based on a +# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value +# for each EE (ESE/SIM1/SIM2) +OFF_HOST_ESE_PIPE_ID=0x16 +OFF_HOST_SIM_PIPE_ID=0x0A +OFF_HOST_SIM2_PIPE_ID=0x23 + +############################################################################### +#Set the Felica T3T System Code Power state : +#This settings will be used when application does not set this parameter +#Update Power state as per NCI2.0 +DEFAULT_SYS_CODE_PWR_STATE=0x00 +############################################################################### +#Default Secure Element route id +DEFAULT_OFFHOST_ROUTE=0x02 + +############################################################################### +#Maximum SMB transceive wait for response +NXP_SMB_TRANSCEIVE_TIMEOUT=2000 +############################################################################### +# Firmware file type +#.so file 0x01 +#.bin file 0x02 +NXP_FW_TYPE=0x01 +############################################################################ +# Extended APDU length for ISO_DEP +ISO_DEP_MAX_TRANSCEIVE=0xFEFF +######################################################################### +# Support for Amendment I SEMS specification +# Support SEMS Amendment I 0x01 +# Support NXP LS client 0x00 +NXP_GP_AMD_I_SEMS_SUPPORTED=0x01 +############################################################################### +#All eSE terminals shall be match with the /vendor/etc/vintf/manifest.xml file +#under android.hardware.secure_element. +# The terminal name shall start from 1 +# Assign terminal number to each interface based on system config +NXP_SPI_SE_TERMINAL_NUM="eSE1" +############################################################################### +# Assign terminal number to each interface based on system config +#NXP_VISO_SE_TERMINAL_NUM="eSE3" +############################################################################### +# Assign terminal number to each interface based on system config +NXP_NFC_SE_TERMINAL_NUM="eSE2" +############################################################################### +#For static or dynamic dual UICC feature support +#Enable static dual uicc feature by setting value 0x00 +#Enable dynamic dual uicc feature by setting value 0x01 +NXP_DUAL_UICC_ENABLE=0x01 +############################################################################### +# Time to wait by DH when NFCC will report eSE Cold Temp Error. +# The value is as per the UM and in seconds +NXP_SE_COLD_TEMP_ERROR_DELAY=0x05 + +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_SET_CONFIG_ALWAYS=0x01 + +############################################################################### +#OffHost ESE route location for MultiSE +#ESE = 01 +OFFHOST_ROUTE_ESE={01} + +############################################################################### +#OffHost UICC route location for MultiSE +#UICC1 = 02 +#UICC2 = 03 +OFFHOST_ROUTE_UICC={02:03} + +############################################################################### +#T4T NFCEE ENABLE +#bit pos 0 = T4T NFCEE Enable +#bit pos 6 = T4T NFCEE Contactless write enable +#bit pos 7 = Proprietary file enable +NXP_T4T_NFCEE_ENABLE=0x01 + +############################################################################### +#WLC mode +#0x00 = if WLC Application running in MW (non-autonomous mode) +#0x01 = if WLC Application running in FW (autonomous mode) +NXP_WLC_MODE=0x01 + +############################################################################### +#CORE_SET_CONF_CMD to reset Prop Emvco Flag +NXP_PROP_RESET_EMVCO_CMD={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +#Guard time in ms for the mPOS/SCR module to process the reader start/stop req +NXP_RDR_REQ_GUARD_TIME=0 + +############################################################################### +#MW workaround to enable LPCD when EMVCO polling mode starts and disable +#while switching back to NFC Forum mode +# 0 --> Disable MW workaround +# 1 --> Enable MW workaround +# 2 --> Use this option only for FW versions below 1.10.52 +NXP_RDR_DISABLE_ENABLE_LPCD=1 + +############################################################################### +# Firmware patch format, Only 1 and 5 should be set +# 0 -> NFC Default +# 1 -> EMVCO Default +# 3 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = Removal process +# 5 -> EMVCO Cert Polling, DISC_IDLE = Removal process , DISC DEACTIVATE = POWER_OFF +# 7 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = POWER_OFF +NFA_CONFIG_FORMAT=1 + +################################################################################ +# Enable disconnect tag in screen off +# Disable 0x00 +# Enable 0x01 +NXP_DISCONNECT_TAG_IN_SCRN_OFF=0x01 + +################################################################################# +# Core configuration extensions +# It includes +# Wired mode settings A0ED, A0EE +# Tag Detector A040, A041, A043 +# Low Power mode A007 +# Clock settings A002, A003 +# PbF settings A008 +# Clock timeout settings A004 +# eSE (SVDD) PWR REQ settings A0F2 +# Window size A0D8 +# DWP Speed A0D5 +# How eSE connected to PN553 A012 +# UICC2 bit rate A0D1 +# UICC1 interface A0EC +# UICC2 interface A0D4 +# eSE interface A0ED +# DWP intf behavior config, SVDD Load activated by default if set to 0x31 A037 +# Low power tag detection LPTD for power reduction A068 +NXP_CORE_CONF_EXTN={20, 02, 11, 04, + A0, EC, 01, 01, + A0, ED, 01, 01, + A0, D4, 01, 00, + A0, 0A, 01, 0A +} +# A0, F2, 01, 01, +# A0, 40, 01, 01, +# A0, 41, 01, 02, +# A0, 43, 01, 04, +# A0, 02, 01, 01, +# A0, 03, 01, 11, +# A0, 07, 01, 03, +# A0, 08, 01, 01 +# } + +############################################################################### +# Core configuration settings +# Below params are not recommended to add in CONF block. +# LA_BIT_FRAME_SDD(0x30) +# LA_PLATFORM_CONFIG(0x31) +# LA_SEL_INFO(0x32) +# LB_SENSB_INFO(0x38) +# LF_PROTOCOL(0x50) +# NFCC_CONFIG_CONTROL(0x85) + +NXP_CORE_CONF={ 20, 02, 37, 11, + 28, 01, 00, + 21, 01, 00, + 30, 01, 08, + 31, 01, 03, + 32, 01, 60, + 38, 01, 01, + 33, 04, 01, 02, 03, 04, + 54, 01, 06, + 50, 01, 02, + 5B, 01, 00, + 3E, 01, 00, + 80, 01, 01, + 81, 01, 01, + 82, 01, 0E, + 18, 01, 01, + 68, 01, 01, + 85, 01, 01 + } +############################################################################### +# Enable(0x01) or disable(0x00) non-standard tag reading +# Disable Non-standard card read 0x00 +# Enable Non-standard card read 0x01 +NXP_SUPPORT_NON_STD_CARD=0x00 +################################################################################# +# Enable(0x01) or disable(0x00 ) for getting HW Info log over SMB wired +# Disable getting HW info log 0x00 +# Enable getting HW info log 0x01 +NXP_GET_HW_INFO_LOG=0x00 +################################################################################# +# Enable(0x01) or disable(0x00) iso dep sak merge +# Disable SAK merging 0x00 +# Enable SAK merging 0x01 +NXP_ISO_DEP_MERGE_SAK=0x01 +################################################################################# +# Valid time difference range within for non-standard tag detection from first +# Activation fail to next discovery +# Note :- 1. This will take effect only when NXP_SUPPORT_NON_STD_CARD is enabled +# 2. The number will be multiplied by 100ms by MW. +# Default: +# Set to 00 if not supported +# byte[0] MIFARE_CLASSIC 100ms +# byte[1] ISO_DEP 300ms +NXP_NON_STD_CARD_TIMEDIFF={01, 03} +################################################################################# +# Enable or Disable UICC ETSI support +# Disable UICC ETSI support 0 +# Enable UICC ETSI support 1 +NXP_UICC_ETSI_SUPPORT=0 +################################################################################# +# Enable Stop/Start of RF discovery for NFCEE recovery +# Disable RF Restart for NFCEE recovery 0 +# Enable RF Restart for NFCEE recovery 1 +NXP_RESTART_RF_FOR_NFCEE_RECOVERY=0 +################################################################################# +#Tag Presence check timeout in millisecond. +NXP_PRESENCE_CHECK_TIMEOUT = 375 + + diff --git a/proprietary/vendor/etc/libnfc-SN220.conf b/proprietary/vendor/etc/libnfc-SN220.conf new file mode 100644 index 0000000..2285381 --- /dev/null +++ b/proprietary/vendor/etc/libnfc-SN220.conf @@ -0,0 +1,819 @@ +#################### This file is used by NXP NFC NCI HAL ##################### +############################################################################### +# Application options +# Logging Levels +# NXPLOG_DEFAULT_LOGLEVEL 0x01 +# ANDROID_LOG_DEBUG 0x04 +# ANDROID_LOG_INFO 0x03 +# ANDROID_LOG_WARN 0x02 +# ANDROID_LOG_ERROR 0x01 +# ANDROID_LOG_SILENT 0x00 +NXPLOG_EXTNS_LOGLEVEL=0x04 +NXPLOG_NCIHAL_LOGLEVEL=0x04 +NXPLOG_NCIX_LOGLEVEL=0x04 +NXPLOG_NCIR_LOGLEVEL=0x04 +NXPLOG_FWDNLD_LOGLEVEL=0x04 +NXPLOG_TML_LOGLEVEL=0x04 +NFC_DEBUG_ENABLED=1 + +############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/nq-nci" + +################################################################################# +#VEN Toggle Config +#Disable = 0x00 +#Enable = 0x01 +ENABLE_VEN_TOGGLE=0x00 + +############################################################################### +# Extension for Mifare reader enable +MIFARE_READER_ENABLE=0x01 + +############################################################################### +# Mifare Reader implementation +# 0: General implementation +# 1: Legacy implementation +LEGACY_MIFARE_READER=0 + +############################################################################### +# System clock source selection configuration +#define CLK_SRC_XTAL 1 +#define CLK_SRC_PLL 2 +NXP_SYS_CLK_SRC_SEL=0x02 + +############################################################################### +# System clock frequency selection configuration +#define CLK_FREQ_13MHZ 1 +#define CLK_FREQ_19_2MHZ 2 +#define CLK_FREQ_24MHZ 3 +#define CLK_FREQ_26MHZ 4 +#define CLK_FREQ_38_4MHZ 5 +#define CLK_FREQ_52MHZ 6 +#define CLK_FREQ_32MHZ 7 +#define CLK_FREQ_48MHZ 8 +NXP_SYS_CLK_FREQ_SEL=0x02 + +############################################################################### +# The timeout value to be used for clock request acknowledgment +# min value = 0x01 to max = 0x06 +#NXP_SYS_CLOCK_TO_CFG=0x06 + +############################################################################### +# The delay to try to start PLL/XTAL when using sys clock 256/fc units = ~18.8 us +# min value = 0x01 to max = 0x1F +#NXP_CLOCK_REQ_DELAY=0x16 + +############################################################################### +# NXP proprietary settings +NXP_ACT_PROP_EXTN={2F, 02, 00} + +############################################################################### +# NXP TVDD configurations settings +# Allow NFCC to configure External TVDD, two configurations (1 and 2) supported, +# out of them only one can be configured at a time. +#NXP_EXT_TVDD_CFG=0x02 + +############################################################################### +#config1:SLALM, 3.3V for both RM and CM +#NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 31, 01, 01, 31, 00, 00, 00, 01, 00, D0, 0C} + +############################################################################### +#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM, +#monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms +#NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, B2, 00, B2, 1E, 1F, 00, D0, 0C} +#NXP_EXT_TVDD_CFG_2={20, 02, 24, 01, A0, 0E, 20, F0, 00, 1E, 15, 01, 01, 01, 00, 00, 00, 00, 00, A7, BE, FF, FF, 05, 00, 00, 00, 20, 20, 20, 20, 0A, 00, 00, 00, 0D, 0D, 0D, 08} + +################################################################################# +# *** EVB_40x20 FW VERSION = 01.01.2A *** +NXP_RF_CONF_BLK_1={ + 20, 02, D9, 05, + A0, 11, 07, 01, 0A, 32, 01, C8, 00, 00, + A0, 0E, 20, F0, 00, 1E, 15, 01, 01, 01, 00, 00, 00, 00, 00, A7, BE, FF, FF, 05, 00, 00, 00, 24, 24, 24, 24, 0A, 00, 00, 00, 0D, 0D, 0D, 08, + A0, A4, 85, 14, 00, 01, 00, 00, 00, 00, 00, 00, 01, 00, 03, 00, 05, 00, 07, 00, 08, 00, 0A, 00, 0C, 00, 0E, 00, 10, 00, 11, 00, 13, 00, 14, 00, 16, 00, 18, 00, 19, 00, 1A, 00, 1C, 00, 1D, 00, 1F, 00, 20, 00, 21, 00, 24, 00, 25, 00, 27, 00, 29, 00, 2A, 00, 2C, 00, 2D, 00, 2F, 00, 31, 00, 32, 00, 34, 00, 35, 00, 37, 00, 39, 00, 3A, 00, 3C, 00, 3D, 00, 3F, 00, 41, 00, 42, 00, 44, 00, 46, 00, 47, 00, 49, 00, 4A, 00, 4C, 00, 4E, 00, 4F, 00, 51, 00, 52, 00, 54, 00, 56, 00, 57, 00, 59, 00, 5A, 00, 5C, 00, 5E, 00, 5F, 00, 61, 00, 62, 00, 64, 00, + A0, A5, 0D, 00, 00, 00, 00, 00, 00, FF, 03, 1F, 00, 00, 00, 00, + A0, 6A, 10, B4, 00, B4, 00, B4, 00, B4, 00, 54, 01, 54, 01, 54, 01, 54, 01 +} + +NXP_RF_CONF_BLK_2={ + 20, 02, CC, 01, + A0, 34, C8, 23, 04, 3D, 01, 07, 0E, 80, 02, 00, 00, 80, 02, 00, 00, 80, 02, 00, 00, 80, 02, 00, 00, 80, 02, 00, 00, B6, 03, 00, 00, 14, 05, 00, 00, 27, 06, 00, 00, B8, 06, 00, 00, D0, 07, 00, 00, C4, 09, 00, 00, 80, 0C, 00, 00, AC, 0D, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, 07, 0E, 80, 02, 00, 00, 80, 02, 00, 00, 80, 02, 00, 00, 80, 02, 00, 00, 80, 02, 00, 00, B6, 03, 00, 00, 14, 05, 00, 00, 27, 06, 00, 00, B8, 06, 00, 00, D0, 07, 00, 00, C4, 09, 00, 00, 80, 0C, 00, 00, AC, 0D, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00 +} + +NXP_RF_CONF_BLK_3={ + 20, 02, 66, 01, + A1, 0A, 62, 07, 0E, 80, 02, 00, 00, 80, 02, 00, 00, 80, 02, 00, 00, 80, 02, 00, 00, 80, 02, 00, 00, B6, 03, 00, 00, 14, 05, 00, 00, 27, 06, 00, 00, B8, 06, 00, 00, D0, 07, 00, 00, C4, 09, 00, 00, 80, 0C, 00, 00, AC, 0D, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, D8, 0E, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00, A0, 0F, 00, 00 +} + +NXP_RF_CONF_BLK_4={ + 20, 02, F1, 01, + A0, A9, ED, 40, 24, FF, 41, 1E, FF, 42, 18, FF, 43, 13, FF, 44, 0E, FF, 45, 0A, FF, 46, 06, FF, 47, 03, FF, 07, 24, FF, 48, 00, FF, 09, 18, FF, 0A, 13, FF, 0B, 0E, FF, 0C, 0A, FF, 0D, 06, FF, 0E, 02, FF, 0F, 00, F5, 10, 00, DC, 11, 00, C6, 12, 00, B2, 13, 00, A0, 14, 00, 90, 15, 00, 81, 16, 00, 74, 17, 00, 68, 18, 00, 5D, 19, 00, 53, 1A, 00, 4A, 1B, 00, 42, 1C, 00, 3B, 1D, 00, 35, 1E, 00, 2F, 1F, 00, 2A, 20, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28, A1, 00, 28 +} + +NXP_RF_CONF_BLK_5={ + 20, 02, 9E, 01, + A0, 0B, 9A, 00, 00, 00, 14, 6A, 2A, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_6={ + 20, 02, F1, 05, + A0, AB, 82, 27, 1B, 5C, 06, 6F, 06, 86, 06, AF, 06, E4, 06, 1B, 07, 53, 07, 96, 07, DA, 07, 1F, 08, 74, 08, CA, 08, 22, 09, 91, 09, 01, 0A, 73, 0A, E6, 0A, 5B, 0B, F7, 0B, 95, 0C, 34, 0D, D4, 0D, 76, 0E, 38, 0F, FC, 0F, C0, 10, B6, 11, AE, 12, A6, 13, 9F, 14, 99, 15, E7, 16, 35, 18, 85, 19, D5, 1A, 25, 1C, 76, 1D, 70, 1F, 6A, 21, 66, 23, 62, 25, 5E, 27, 5A, 29, 01, 2C, A8, 2E, 4F, 31, F7, 33, 49, 37, 9C, 3A, EF, 3D, EC, 41, E9, 45, E7, 49, E5, 4D, 38, 53, 8C, 58, DF, 5D, 33, 63, 87, 68, 95, 6E, A4, 74, B2, 7A, B0, 82, B0, 8A, + A0, AD, 0C, 00, 20, 00, 00, 00, 00, 00, 20, 00, 00, 00, 00, + A0, A7, 0B, 00, 02, 77, 17, 14, 14, 1F, 0A, FF, 19, 05, + A0, A8, 40, 00, 33, 33, 10, 00, 33, 23, 10, 00, 33, 24, 10, 4B, 11, 45, 10, CF, 22, 43, 10, CF, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, 00, 33, 22, 10, C0, 22, 23, 10, 00, 33, 22, 10, C0, 22, 23, 10, 00, 33, 54, 10, 00, 33, 32, 10, + A0, 98, 08, 3A, 30, 13, 80, 24, 3A, 35, 3A +} + +NXP_RF_CONF_BLK_7={ + 20, 02, FC, 0B, + A0, 9E, 0C, 07, 30, 13, 96, 00, 2C, 01, 2B, C2, 01, 00, 00, + A1, 2C, 5B, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 01, 01, 01, 20, 01, 03, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, + A1, 04, 05, 80, 24, 00, 00, 00, + A1, 26, 08, 03, 03, 03, 03, 01, 01, 01, 01, + A1, 27, 3B, 00, 00, 00, 68, 01, 00, 00, 00, 02, 00, 08, 9A, 00, F1, FF, 00, 00, 00, 00, 00, 00, B4, 00, 00, 00, 00, 00, 00, 00, E1, 00, 36, 00, A0, 00, 2C, 1A, 4D, 00, E0, 00, E0, 2E, 00, 00, 00, 00, 98, 3A, 00, FA, 00, FA, D0, 84, 42, 00, 23, 01, + A1, 2E, 03, 82, 82, 22, + A1, 4D, 10, 00, 40, 1F, 00, 00, 00, 00, 00, 94, 52, 4A, 01, 94, 52, 4A, 01, + A0, 0D, 06, 10, C7, 00, 00, 00, 00, + A0, 0D, 06, 11, C9, 30, 00, 00, 00, + A0, 0D, 06, 12, 4C, 20, 0A, 00, 00, + A0, 0D, 06, 12, 50, 94, 52, 4A, 29 +} + +NXP_RF_CONF_BLK_8={ + 20, 02, FD, 1E, + A0, 0D, 03, 24, 29, 08, + A0, 0D, 03, 24, 30, 08, + A0, 0D, 03, 25, 29, 03, + A0, 0D, 03, 25, 30, 03, + A0, 0D, 06, 40, 78, 00, 00, 00, 00, + A0, 0D, 06, 42, 8B, 00, 04, 08, 00, + A0, 0D, 06, 42, 87, 51, 02, 00, E0, + A0, 0D, 06, 42, 89, 7F, 07, 1D, 01, + A0, 0D, 06, 42, 88, AF, E0, 8B, 48, + A0, 0D, 06, 42, 44, 00, 34, 26, 00, + A0, 0D, 06, 42, 40, 08, 77, 7F, 3A, + A0, 0D, 06, 42, 79, 55, 21, 08, 4C, + A0, 0D, 06, 42, 4A, 8E, 61, B0, 01, + A0, 0D, 06, 42, 49, 7D, 26, 0B, 00, + A0, 0D, 06, 51, 40, 8A, 88, 33, 3A, + A0, 0D, 03, 43, 7C, 40, + A0, 0D, 06, 43, 8B, 4C, 04, F8, 10, + A0, 0D, 06, 43, 88, 54, E1, 86, 88, + A0, 0D, 06, 43, 44, 00, 34, 12, 00, + A0, 0D, 06, 43, 40, 88, 88, B3, 3C, + A0, 0D, 06, 43, 79, 55, 21, 08, 4C, + A0, 0D, 06, 43, 4A, 8E, 61, B0, 01, + A0, 0D, 06, 43, 49, 7D, 26, 0B, 00, + A0, 0D, 03, 44, 7C, 40, + A0, 0D, 06, 44, 8B, 28, 04, F8, 14, + A0, 0D, 06, 44, 88, 4C, E5, 04, 88, + A0, 0D, 06, 44, 44, 00, 34, 12, 00, + A0, 0D, 06, 44, 40, 8C, 88, B3, 3C, + A0, 0D, 06, 44, 79, 55, 21, 08, 4C, + A0, 0D, 06, 44, 4A, 8E, 61, B0, 01 +} + +NXP_RF_CONF_BLK_9={ + 20, 02, F7, 1C, + A0, 0D, 06, 44, 49, 7D, 26, 0B, 00, + A0, 0D, 03, 45, 7C, 40, + A0, 0D, 06, 45, 8B, 09, 04, F8, 28, + A0, 0D, 06, 45, 88, 0C, E5, 02, 40, + A0, 0D, 06, 45, 44, 00, 34, 12, 00, + A0, 0D, 06, 45, 40, 90, 88, B3, 3C, + A0, 0D, 06, 45, 79, 55, 21, 08, 4C, + A0, 0D, 06, 45, 4A, 8E, 61, B0, 01, + A0, 0D, 06, 45, 49, 7D, 26, 0B, 00, + A0, 0D, 06, 45, 45, 38, B2, 88, A6, + A0, 0D, 06, 46, 45, 38, 92, 88, A6, + A0, 0D, 03, 46, 7C, 40, + A0, 0D, 06, 47, 8B, 48, 04, 38, 3E, + A0, 0D, 06, 47, 87, 01, 03, 00, E0, + A0, 0D, 06, 47, 88, 54, E2, 08, 95, + A0, 0D, 06, 47, 40, 86, 88, B3, 3C, + A0, 0D, 06, 47, 44, 00, 34, 12, 00, + A0, 0D, 06, 47, 4A, B3, CD, 66, 06, + A0, 0D, 06, 47, 49, 00, 00, 00, 00, + A0, 0D, 06, 47, 79, 55, 21, 08, 4C, + A0, 0D, 06, 48, 8B, 48, 04, 38, 10, + A0, 0D, 06, 48, 88, 4C, E2, 86, 94, + A0, 0D, 06, 48, 40, 88, 88, B3, 3C, + A0, 0D, 06, 48, 44, 00, 34, 12, 00, + A0, 0D, 06, 48, 4A, B3, CD, 66, 06, + A0, 0D, 06, 48, 49, 00, 00, 00, 00, + A0, 0D, 06, 48, 79, 55, 21, 08, 4C, + A0, 0D, 06, 49, 8B, 48, 04, 38, 20 +} + +NXP_RF_CONF_BLK_10={ + 20, 02, F7, 1C, + A0, 0D, 06, 49, 88, 54, E6, 04, 94, + A0, 0D, 06, 49, 40, 8C, 88, B3, 3C, + A0, 0D, 06, 49, 44, 00, 34, 12, 00, + A0, 0D, 06, 49, 4A, B3, CD, 66, 06, + A0, 0D, 06, 49, 49, 00, 00, 00, 00, + A0, 0D, 06, 49, 79, 55, 21, 08, 4C, + A0, 0D, 06, 4A, 8B, 09, 04, 38, 0A, + A0, 0D, 06, 4A, 88, 0C, E6, 02, 5C, + A0, 0D, 06, 4A, 40, 90, 88, B3, 3C, + A0, 0D, 06, 4A, 44, 00, 34, 12, 00, + A0, 0D, 06, 4A, 4A, B3, CD, 66, 06, + A0, 0D, 06, 4A, 49, 00, 00, 00, 00, + A0, 0D, 06, 4A, 79, 55, 21, 08, 4C, + A0, 0D, 03, 4C, 7C, 50, + A0, 0D, 06, 4C, 8B, 28, 04, 78, 14, + A0, 0D, 06, 4C, 88, 04, E1, 80, 01, + A0, 0D, 06, 4C, 44, 00, 34, 12, 00, + A0, 0D, 06, 4C, 4A, 8E, 61, B0, 01, + A0, 0D, 06, 4C, 49, 00, 00, 00, 00, + A0, 0D, 06, 4C, 79, 55, 21, 08, 4C, + A0, 0D, 06, 4C, 40, 87, 88, B3, 3C, + A0, 0D, 03, 4D, 7C, 40, + A0, 0D, 06, 4D, 87, 03, 03, 00, C0, + A0, 0D, 06, 4D, 88, 4C, E5, 82, 48, + A0, 0D, 06, 4D, 44, 00, 34, 12, 00, + A0, 0D, 06, 4D, 4A, 8E, 61, B0, 01, + A0, 0D, 06, 4D, 49, 00, 00, 00, 00, + A0, 0D, 06, 4D, 79, 55, 21, 08, 4C +} + +NXP_RF_CONF_BLK_11={ + 20, 02, FD, 1C, + A0, 0D, 06, 4D, 40, 8A, 88, B3, 3C, + A0, 0D, 06, 4E, 4A, BA, E6, F1, 06, + A0, 0D, 06, 4E, 49, DD, 95, 0A, 00, + A0, 0D, 06, 4E, 5C, EF, 7F, 00, 00, + A0, 0D, 06, 4E, 78, 00, 00, C0, 00, + A0, 0D, 06, 4F, 88, F7, E0, 16, 89, + A0, 0D, 06, 4F, 8B, 00, 14, 08, 00, + A0, 0D, 06, 4F, 89, 7F, 07, 15, 02, + A0, 0D, 06, 4F, 44, 00, 34, E6, 00, + A0, 0D, 06, 4F, 40, 84, 88, B3, 3C, + A0, 0D, 06, 4F, 79, 55, 21, 88, 4C, + A0, 0D, 06, 50, 88, 9F, E0, 2B, 41, + A0, 0D, 06, 50, 8B, 00, 14, 08, 00, + A0, 0D, 06, 50, 89, 7F, 07, 15, 02, + A0, 0D, 06, 50, 44, 00, 34, E6, 00, + A0, 0D, 06, 50, 40, 84, 88, B3, 3C, + A0, 0D, 06, 50, 79, 55, 21, 88, 4C, + A0, 0D, 06, 52, 88, 9F, E8, A2, 40, + A0, 0D, 06, 52, 8B, 00, 14, 08, 00, + A0, 0D, 06, 52, 89, 7F, 07, 15, 02, + A0, 0D, 06, 52, 44, 00, 34, E6, 00, + A0, 0D, 06, 52, 40, 84, 88, B3, 3C, + A0, 0D, 06, 52, 79, 55, 21, 88, 4C, + A0, 0D, 06, 53, 88, 9F, E8, 2C, 40, + A0, 0D, 06, 53, 89, 7F, 07, 15, 02, + A0, 0D, 06, 53, 44, 00, 34, E6, 00, + A0, 0D, 06, 53, 40, 84, 88, B3, 3C, + A0, 0D, 06, 53, 79, 55, 21, 88, 4C +} + +NXP_RF_CONF_BLK_12={ + 20, 02, FD, 1C, + A0, 0D, 06, 60, 50, 94, 52, 4A, 29, + A0, 0D, 06, 80, 83, 1F, 06, 00, 00, + A0, 0D, 06, 80, 82, 25, 0A, 00, 20, + A0, 0D, 06, 80, 80, 10, 42, 24, 00, + A0, 0D, 06, 80, 7E, 28, 02, 00, 00, + A0, 0D, 06, 80, 8F, 80, 42, D6, 0A, + A0, 0D, 06, 80, 90, 00, A2, 52, 2A, + A0, 0D, 06, 80, 49, ED, 16, 0B, 00, + A0, 0D, 06, 82, 82, 25, 0A, 00, 20, + A0, 0D, 06, 82, 49, ED, 16, 0B, 00, + A0, 0D, 06, 83, 80, 3A, 01, 20, 00, + A0, 0D, 06, 83, 49, ED, 16, 0B, 00, + A0, 0D, 06, 84, 7F, 1E, 01, 20, 00, + A0, 0D, 06, 85, 7F, 0E, 01, 20, 00, + A0, 0D, 06, 85, 7D, B3, 22, F6, BF, + A0, 0D, 06, 87, 83, 1F, 06, 00, 00, + A0, 0D, 06, 87, 49, ED, 16, 0B, 00, + A0, 0D, 06, 88, 83, 3C, 0E, 00, 00, + A0, 0D, 06, 88, 49, ED, 16, 0B, 00, + A0, 0D, 06, 89, 80, 1E, 01, 20, 00, + A0, 0D, 06, 89, 49, ED, 16, 0B, 00, + A0, 0D, 06, 8A, 7F, 0C, 01, 20, 00, + A0, 0D, 06, 8C, 80, 10, 42, 24, 00, + A0, 0D, 06, 8C, 49, ED, 16, 0B, 00, + A0, 0D, 06, 8D, 49, ED, 16, 0B, 00, + A0, 0D, 06, 90, 38, D9, 39, A9, 80, + A0, 0D, 06, 91, AC, 94, 52, 4A, 29, + A0, 0D, 06, 91, AE, 94, 52, 4A, 29 +} + +NXP_RF_CONF_BLK_13={ + 20, 02, 65, 03, + A0, AF, 09, 10, 46, 00, 24, 10, 46, 00, 24, 12, + A0, 92, 28, 48, 00, 24, 00, FC, 81, 0F, 00, 22, 80, 0F, 00, 14, 00, 20, 60, EA, 01, 43, 18, 32, 16, 78, 30, 0D, 00, 03, 45, EA, 05, 01, 04, 68, 02, 3F, 92, 04, 00, 0C, 13, + A0, 68, 2A, 06, 40, 60, 03, 19, 14, 00, 00, 00, 82, 24, 00, 00, 0A, 00, 0A, 00, 01, 00, 01, A0, 00, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 0A, 7F, 00, 00, 01, 00, 03 +} + +NXP_RF_CONF_MAX_NUM=13 + +############################################################################### +# Core configuration rf field filter settings to enable set to 01 to disable set +# to 00 last bit +#NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 00 } + +############################################################################### +# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set +# to 0x00 +#NXP_I2C_FRAGMENTATION_ENABLED=0x00 + +############################################################################### +#set autonomous mode +# disable autonomous 0x00 +# enable autonomous 0x01 +NXP_AUTONOMOUS_ENABLE=0x00 +############################################################################### +#set Guard Timer +# Gurad Timer range to 0x0F-0xFF(i.e.15-255 seconds) +NXP_GUARD_TIMER_VALUE=0x0F +############################################################################### +#Enable SWP full power mode when phone is power off +#NXP_SWP_FULL_PWR_ON=0x00 + +################################################################################ +#This is used to configure UICC2 at boot time. +# UICC2 0x03 +NXP_DEFAULT_UICC2_SELECT=0x03 +############################################################################### +# CE when Screen state is locked +# This setting is for DEFAULT_AID_ROUTE, +# DEFAULT_DESFIRE_ROUTE and DEFAULT_MIFARE_CLT_ROUTE +# Disable 0x00 +# Enable 0x01 +NXP_CE_ROUTE_STRICT_DISABLE=0x01 + +############################################################################### +#SCR Read Tag Operation Timeout in secs +NXP_SWP_RD_TAG_OP_TIMEOUT=20 + +############################################################################### +#Set the default AID route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_AID_ROUTE=0x01 + +############################################################################### +#Set the ISODEP (Mifare Desfire) route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_ISODEP_ROUTE=0x01 + +############################################################################### +#Set the Mifare CLT route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_MIFARE_CLT_ROUTE=0x01 + +############################################################################### +#Set the Felica CLT route Location : +#This settings will be used when application does not set this parameter +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_FELICA_CLT_ROUTE=0x01 + +############################################################################### +#Set the default AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_AID_PWR_STATE=0x39 +############################################################################### +#Set the Mifare Desfire Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_DESFIRE_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_MIFARE_CLT_PWR_STATE=0x3B + +############################################################################### +#Set the Felica CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_FELICA_CLT_PWR_STATE=0x3B + +############################################################################### +#Set the T4TNfcee AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_T4TNFCEE_AID_POWER_STATE=0x3B + +############################################################################### +#Set the default Felica T3T System Code OffHost route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_SYS_CODE_ROUTE=0x00 +############################################################################### +# AID Matching platform options +# AID_MATCHING_L 0x01 +# AID_MATCHING_K 0x02 +#AID_MATCHING_PLATFORM=0x01 + +############################################################################### +# P61 interface options +# SPI 0x02 +NXP_P61_LS_DEFAULT_INTERFACE=0x00 + +############################################################################### +#CHINA_TIANJIN_RF_SETTING +#Enable 0x01 +#Disable 0x00 +#NXP_CHINA_TIANJIN_RF_ENABLED=0x01 + +############################################################################### +#SWP_SWITCH_TIMEOUT_SETTING +# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60]. +# Timeout in milliseconds, for example +# No Timeout 0x00 +# 10 millisecond timeout 0x0A +#NXP_SWP_SWITCH_TIMEOUT=0x0A + +############################################################################### +# Flashing Options Configurations +# FLASH_UPPER_VERSION 0x01 +# FLASH_DIFFERENT_VERSION 0x02 +# FLASH_ALWAYS 0x03 +NXP_FLASH_CONFIG=0x02 + +############################################################################### +# P61 interface options for JCOP Download +# SPI 0x02 +NXP_P61_JCOP_DEFAULT_INTERFACE=0x00 + +############################################################################### +# Option to perform LS update every boot +# Enable 0x01 +# Disable 0x00 +NXP_LS_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Option to perform JCOP update every boot +# Enable 0x01 +# Disable 0x00 +NXP_JCOP_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Bail out mode +# If set to 1, NFCC is using bail out mode for either Type A or Type B poll. +# Set this parameter value to 1 if Android Beam is enabled, else set to 0. +NFA_POLL_BAIL_OUT_MODE=0x00 + +############################################################################### +# White list of Hosts +# This values will be the Hosts(NFCEEs) in the HCI Network. +DEVICE_HOST_WHITE_LIST={C0, 80} + +############################################################################### +# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1. +# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm +# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block +# 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check +# command is sent waiting for rsp and ntf. +PRESENCE_CHECK_ALGORITHM=2 +############################################################################### +# Options to Fallback to alternative route +# DH 0x01 +# ESE 0x02 +NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01 +############################################################################### +# Vendor Specific Proprietary Protocol & Discovery Configuration +# Set to 0xFF if unsupported +# byte[0] NCI_PROTOCOL_18092_ACTIVE +# byte[1] NCI_PROTOCOL_B_PRIME +# byte[2] NCI_PROTOCOL_DUAL +# byte[3] NCI_PROTOCOL_15693 +# byte[4] NCI_PROTOCOL_KOVIO +# byte[5] NCI_PROTOCOL_MIFARE +# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO +# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME +# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME +NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, FF, FF, FF} + +############################################################################### +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE +#Enable/Disable block number checks for china transit use case +#Enable 0x01 +#Disable 0x00 +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE=0x01 + +################################################################################ +#This flags will enable different modes of Lx Debug based on bits of the Byte0 +#Byte 0: +# |_________Bit Mask_______| Debug Mode +# b7|b6|b5|b4|b3|b2|b1|b0| +# | |x | | | | | | Modulation Detected Notification +# | | |X | | | | | Enable L1 Events (ISO14443-4, ISO18092) +# | | | |X | | | | Enable L2 Reader Events(ROW specific) +# | | | | |X | | | Enable Felica SystemCode +# | | | | | |X | | Enable Felica RF (all Felica CM events) +# | | | | | | |X | Enable L2 Events CE (ISO14443-3, RF Field ON/OFF) +#Byte 1: +# |_________Bit Mask_______| Debug Mode +# b7|b6|b5|b4|b3|b2|b1|b0| +# | |x | | | | | | Enable L2 events during RF activation ISO 14443-3 +# | | | | | | | | +# | | | | | | | | +# | | | | | | | | +# | | | | | | | | +# | | | | | | | | +# Byte1 Byte0 +# \__ __/ +# e.g. NXP_CORE_PROP_SYSTEM_DEBUG=0x0031 ==> Modulation detected, L1, L2 CE +NXP_CORE_PROP_SYSTEM_DEBUG=0x0000 + +############################################################################### +#Enable NXP NCI runtime parser library +#Enable 0x01 +#Disable 0x00 +NXP_NCI_PARSER_LIBRARY=0x00 + +############################################################################### +# Timeout value in milliseconds for JCOP OS download to complete +OS_DOWNLOAD_TIMEOUT_VALUE=60000 + +############################################################################### +# Forcing HOST to listen for a selected protocol +# 0x00 : Disable Host Listen +# 0x01 : Enable Host to Listen (A) for ISO-DEP tech A +# 0x02 : Enable Host to Listen (B) for ISO-DEP tech B +# 0x04 : Enable Host to Listen (F) for T3T Tag Type Protocol tech F +# 0x07 : Enable Host to Listen (ABF)for ISO-DEP tech AB & T3T Tag Type Protocol tech F +HOST_LISTEN_TECH_MASK=0x07 + +############################################################################### +# Enable forward functionality +# Disable 0x00 +# Enable 0x01 //Any positive value as per below bit configuration +# HOST power states when type A/B only UICC present +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +FORWARD_FUNCTIONALITY_ENABLE=0x01 + +############################################################################### +# Configure the NFC Extras to open and use a static pipe. If the value is +# not set or set to 0, then the default is use a dynamic pipe based on a +# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value +# for each EE (ESE/SIM1/SIM2) +OFF_HOST_ESE_PIPE_ID=0x16 +OFF_HOST_SIM_PIPE_ID=0x0A +OFF_HOST_SIM2_PIPE_ID=0x23 + +############################################################################### +#Set the Felica T3T System Code Power state : +#This settings will be used when application does not set this parameter +#Update Power state as per NCI2.0 +DEFAULT_SYS_CODE_PWR_STATE=0x00 +############################################################################### +#Default Secure Element route id +DEFAULT_OFFHOST_ROUTE=0x01 + +############################################################################### +#Maximum SMB transceive wait for response +NXP_SMB_TRANSCEIVE_TIMEOUT=2000 +############################################################################### +# Firmware file type +#.so file 0x01 +#.bin file 0x02 +NXP_FW_TYPE=0x01 +############################################################################ +# Extended APDU length for ISO_DEP +ISO_DEP_MAX_TRANSCEIVE=0xFEFF +######################################################################### +# Support for Amendment I SEMS specification +# Support SEMS Amendment I 0x01 +# Support NXP LS client 0x00 +NXP_GP_AMD_I_SEMS_SUPPORTED=0x01 +############################################################################### +#All eSE terminals shall be match with the /vendor/etc/vintf/manifest.xml file +#under android.hardware.secure_element. +# The terminal name shall start from 1 +# Assign terminal number to each interface based on system config +NXP_SPI_SE_TERMINAL_NUM="eSE1" +############################################################################### +# Assign terminal number to each interface based on system config +#NXP_VISO_SE_TERMINAL_NUM="eSE3" +############################################################################### +# Assign terminal number to each interface based on system config +NXP_NFC_SE_TERMINAL_NUM="eSE2" +############################################################################### +#For static or dynamic dual UICC feature support +#Enable static dual uicc feature by setting value 0x00 +#Enable dynamic dual uicc feature by setting value 0x01 +NXP_DUAL_UICC_ENABLE=0x01 +############################################################################### +# Time to wait by DH when NFCC will report eSE Cold Temp Error. +# The value is as per the UM and in seconds +NXP_SE_COLD_TEMP_ERROR_DELAY=0x05 + +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_SET_CONFIG_ALWAYS=0x01 + +############################################################################### +#OffHost ESE route location for MultiSE +#ESE = 01 +OFFHOST_ROUTE_ESE={01} + +############################################################################### +#OffHost UICC route location for MultiSE +#UICC1 = 02 +#UICC2 = 03 +OFFHOST_ROUTE_UICC={02:03} + +############################################################################### +#T4T NFCEE ENABLE +#bit pos 0 = T4T NFCEE Enable +#bit pos 6 = T4T NFCEE Contactless write enable +#bit pos 7 = Proprietary file enable +NXP_T4T_NFCEE_ENABLE=0x01 + +############################################################################### +#WLC mode +#0x00 = if WLC Application running in MW (non-autonomous mode) +#0x01 = if WLC Application running in FW (autonomous mode) +NXP_WLC_MODE=0x01 + +############################################################################### +#CORE_SET_CONF_CMD to reset Prop Emvco Flag +NXP_PROP_RESET_EMVCO_CMD={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +#Guard time in ms for the mPOS/SCR module to process the reader start/stop req +NXP_RDR_REQ_GUARD_TIME=0 + +############################################################################### +#MW workaround to enable LPCD when EMVCO polling mode starts and disable +#while switching back to NFC Forum mode +# 0 --> Disable MW workaround +# 1 --> Enable MW workaround +# 2 --> Use this option only for FW versions below 1.10.52 +NXP_RDR_DISABLE_ENABLE_LPCD=1 + +############################################################################### +# Firmware patch format, Only 1 and 5 should be set +# 0 -> NFC Default +# 1 -> EMVCO Default +# 3 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = Removal process +# 5 -> EMVCO Cert Polling, DISC_IDLE = Removal process , DISC DEACTIVATE = POWER_OFF +# 7 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = POWER_OFF +NFA_CONFIG_FORMAT=1 + +################################################################################ +# Enable disconnect tag in screen off +# Disable 0x00 +# Enable 0x01 +NXP_DISCONNECT_TAG_IN_SCRN_OFF=0x01 + +################################################################################# +# Core configuration extensions +# It includes +# Wired mode settings A0ED, A0EE +# Tag Detector A040, A041, A043 +# Low Power mode A007 +# Clock settings A002, A003 +# PbF settings A008 +# Clock timeout settings A004 +# eSE (SVDD) PWR REQ settings A0F2 +# Window size A0D8 +# DWP Speed A0D5 +# How eSE connected to PN553 A012 +# UICC2 bit rate A0D1 +# UICC1 interface A0EC +# UICC2 interface A0D4 +# eSE interface A0ED +# DWP intf behavior config, SVDD Load activated by default if set to 0x31 A037 +# Low power tag detection LPTD for power reduction A068 +NXP_CORE_CONF_EXTN={20, 02, 11, 04, + A0, EC, 01, 01, + A0, ED, 01, 01, + A0, D4, 01, 00, + A0, 0A, 01, 0A +} +# A0, F2, 01, 01, +# A0, 40, 01, 01, +# A0, 41, 01, 02, +# A0, 43, 01, 04, +# A0, 02, 01, 01, +# A0, 03, 01, 11, +# A0, 07, 01, 03, +# A0, 08, 01, 01 +# } + +############################################################################### +# Core configuration settings +# Below params are not recommended to add in CONF block. +# LA_BIT_FRAME_SDD(0x30) +# LA_PLATFORM_CONFIG(0x31) +# LA_SEL_INFO(0x32) +# LB_SENSB_INFO(0x38) +# LF_PROTOCOL(0x50) +# NFCC_CONFIG_CONTROL(0x85) + +NXP_CORE_CONF={ 20, 02, 37, 11, + 28, 01, 00, + 21, 01, 00, + 30, 01, 08, + 31, 01, 03, + 32, 01, 60, + 38, 01, 01, + 33, 04, 01, 02, 03, 04, + 54, 01, 06, + 50, 01, 02, + 5B, 01, 00, + 3E, 01, 00, + 80, 01, 01, + 81, 01, 01, + 82, 01, 0E, + 18, 01, 01, + 68, 01, 01, + 85, 01, 01 + } +############################################################################### +# Enable(0x01) or disable(0x00) non-standard tag reading +# Disable Non-standard card read 0x00 +# Enable Non-standard card read 0x01 +NXP_SUPPORT_NON_STD_CARD=0x00 +################################################################################# +# Enable(0x01) or disable(0x00 ) for getting HW Info log over SMB wired +# Disable getting HW info log 0x00 +# Enable getting HW info log 0x01 +NXP_GET_HW_INFO_LOG=0x00 +################################################################################# +# Enable(0x01) or disable(0x00) iso dep sak merge +# Disable SAK merging 0x00 +# Enable SAK merging 0x01 +NXP_ISO_DEP_MERGE_SAK=0x01 +################################################################################# +# Valid time difference range within for non-standard tag detection from first +# Activation fail to next discovery +# Note :- 1. This will take effect only when NXP_SUPPORT_NON_STD_CARD is enabled +# 2. The number will be multiplied by 100ms by MW. +# Default: +# Set to 00 if not supported +# byte[0] MIFARE_CLASSIC 100ms +# byte[1] ISO_DEP 300ms +NXP_NON_STD_CARD_TIMEDIFF={01, 03} +################################################################################# +# Enable or Disable UICC ETSI support +# Disable UICC ETSI support 0 +# Enable UICC ETSI support 1 +NXP_UICC_ETSI_SUPPORT=0 +################################################################################# +# Enable Stop/Start of RF discovery for NFCEE recovery +# Disable RF Restart for NFCEE recovery 0 +# Enable RF Restart for NFCEE recovery 1 +NXP_RESTART_RF_FOR_NFCEE_RECOVERY=0 +################################################################################# +#Tag Presence check timeout in millisecond. +NXP_PRESENCE_CHECK_TIMEOUT = 375 + + diff --git a/proprietary/vendor/etc/libnfc-mtp-SN100-UICC.conf b/proprietary/vendor/etc/libnfc-mtp-SN100-UICC.conf new file mode 100644 index 0000000..fb651b5 --- /dev/null +++ b/proprietary/vendor/etc/libnfc-mtp-SN100-UICC.conf @@ -0,0 +1,780 @@ +#################### This file is used by NXP NFC NCI HAL ##################### +## Modified by Motorola Mobility LLC +## Version : Cypfr.4 (2021/06/09) +############################################################################### +# Application options +# Logging Levels +# NXPLOG_DEFAULT_LOGLEVEL 0x01 +# ANDROID_LOG_DEBUG 0x03 +# ANDROID_LOG_WARN 0x02 +# ANDROID_LOG_ERROR 0x01 +# ANDROID_LOG_SILENT 0x00 +NXPLOG_EXTNS_LOGLEVEL=0x03 +NXPLOG_NCIHAL_LOGLEVEL=0x03 +NXPLOG_NCIX_LOGLEVEL=0x03 +NXPLOG_NCIR_LOGLEVEL=0x03 +NXPLOG_FWDNLD_LOGLEVEL=0x03 +NXPLOG_TML_LOGLEVEL=0x03 +NFC_DEBUG_ENABLED=1 + +############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/nq-nci" + +################################################################################# +#VEN Toggle Config +#Disable = 0x00 +#Enable = 0x01 +ENABLE_VEN_TOGGLE=0x00 + +############################################################################### +# Extension for Mifare reader enable +MIFARE_READER_ENABLE=0x01 + +############################################################################### +# Mifare Reader implementation +# 0: General implementation +# 1: Legacy implementation +LEGACY_MIFARE_READER=0 + +############################################################################### +# File name for Firmware +NXP_FW_NAME="libsn100u_fw.so" + +############################################################################### +# System clock source selection configuration +#define CLK_SRC_XTAL 1 +#define CLK_SRC_PLL 2 +NXP_SYS_CLK_SRC_SEL=0x02 + +############################################################################### +# System clock frequency selection configuration +#define CLK_FREQ_13MHZ 1 +#define CLK_FREQ_19_2MHZ 2 +#define CLK_FREQ_24MHZ 3 +#define CLK_FREQ_26MHZ 4 +#define CLK_FREQ_38_4MHZ 5 +#define CLK_FREQ_52MHZ 6 +NXP_SYS_CLK_FREQ_SEL=0x02 + +############################################################################### +# The timeout value to be used for clock request acknowledgment +# min value = 0x01 to max = 0x06 +#NXP_SYS_CLOCK_TO_CFG=0x06 + +############################################################################### +# The delay to try to start PLL/XTAL when using sys clock 256/fc units = ~18.8 us +# min value = 0x01 to max = 0x1F +#NXP_CLOCK_REQ_DELAY=0x16 + +############################################################################### +# NXP proprietary settings +NXP_ACT_PROP_EXTN={2F, 02, 00} + +############################################################################### +# NFC forum profile settings +NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +# NXP TVDD configurations settings +# Allow NFCC to configure External TVDD, two configurations (1 and 2) supported, +# out of them only one can be configured at a time. +#NXP_EXT_TVDD_CFG=0x02 + +############################################################################### +#config1:SLALM, 3.3V for both RM and CM +#NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 31, 01, 01, 31, 00, 00, 00, 01, 00, D0, 0C} + +############################################################################### +#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM, +#monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms +#NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, B2, 00, B2, 1E, 1F, 00, D0, 0C} + +# *** RFBOARD30x20FN FW VERSION = 01.10.5B *** +NXP_RF_CONF_BLK_1={ + 20, 02, DB, 04, + A0, 0E, 2C, F0, 00, 3E, 11, E4, E4, E4, 00, 00, 00, 00, 00, A7, 8E, FF, FF, 18, 18, 18, 18, 0A, 00, 00, 00, 00, 02, 00, 00, 01, 00, 10, 00, 04, 00, 00, 00, 17, 40, FF, 07, 13, 07, 05, 13, + A0, A4, 85, 14, 00, 01, 00, 00, 00, 00, 03, 00, 06, 00, 0A, 00, 0D, 00, 10, 00, 14, 00, 17, 00, 1B, 00, 1E, 00, 21, 00, 25, 00, 28, 00, 2C, 00, 2F, 00, 32, 00, 36, 00, 39, 00, 3D, 00, 40, 00, 43, 00, 47, 00, 4A, 00, 4E, 00, 51, 00, 54, 00, 58, 00, 5B, 00, 5E, 00, 62, 00, 65, 00, 69, 00, 6C, 00, 6F, 00, 73, 00, 76, 00, 7A, 00, 7D, 00, 80, 00, 84, 00, 87, 00, 8B, 00, 8E, 00, 91, 00, 95, 00, 98, 00, 9C, 00, 9F, 00, A2, 00, A6, 00, A9, 00, AC, 00, B0, 00, B3, 00, B7, 00, BA, 00, BD, 00, C1, 00, C4, 00, C8, 00, CB, 00, CE, 00, D2, 00, D5, 00, + A0, A5, 0D, 3B, 3B, 3B, 3B, 3B, 3B, FF, 03, 1F, 00, 3B, 00, 00, + A0, 6A, 10, 28, 00, 28, 00, 28, 00, 28, 00, 80, 02, 80, 02, 80, 02, 80, 02 +} + +NXP_RF_CONF_BLK_2={ + 20, 02, CC, 01, + A0, 34, C8, 23, 04, 3D, 01, 0D, 0C, FA, 00, 00, 00, 90, 01, 00, 00, 26, 02, 00, 00, BC, 02, 00, 00, 52, 03, 00, 00, E8, 03, 00, 00, B0, 04, 00, 00, 40, 06, 00, 00, 98, 08, 00, 00, B8, 0B, 00, 00, 94, 11, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 0D, 0C, FA, 00, 00, 00, 90, 01, 00, 00, 26, 02, 00, 00, BC, 02, 00, 00, 52, 03, 00, 00, E8, 03, 00, 00, B0, 04, 00, 00, 40, 06, 00, 00, 98, 08, 00, 00, B8, 0B, 00, 00, 94, 11, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00 +} + +NXP_RF_CONF_BLK_3={ + 20, 02, 66, 01, + A1, 0A, 62, 14, 08, F4, 33, 00, 00, F4, 33, 00, 00, F4, 33, 00, 00, F4, 33, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00 +} + +NXP_RF_CONF_BLK_4={ + 20, 02, F1, 01, + A0, A9, ED, 40, 2A, FF, 41, 24, FF, 42, 1F, FF, 43, 1A, FF, 44, 16, FF, 45, 12, FF, 46, 0F, FF, 47, 0C, FF, 07, 2A, F1, 48, 09, FF, 08, 23, F7, 49, 07, FF, 09, 1E, F7, 4A, 05, FF, 0A, 19, FA, 4B, 03, FF, 0B, 15, FA, 4C, 01, FF, 0C, 12, F5, 0D, 0F, F2, 0E, 0C, F2, 0F, 09, F5, 10, 06, FC, 11, 06, E2, 12, 02, FB, 13, 01, F0, 14, 00, E6, 15, 00, CF, 16, 00, BA, 17, 00, A7, 18, 00, 96, 19, 00, 87, 1A, 00, 79, 1B, 00, 6C, 1C, 00, 61, 1D, 00, 57, 1E, 00, 4E, 1F, 00, 46, 20, 00, 3F, 21, 00, 38, 22, 00, 32, 23, 00, 2D, 24, 00, 28, A5, 00, 48, A6, 00, 40, A7, 00, 39, A8, 00, 33, A9, 00, 2D, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28 +} + +NXP_RF_CONF_BLK_5={ + 20, 02, C5, 02, + A0, 0B, BB, 00, 1D, 01, 14, 6A, 2A, E8, 03, E8, 03, 06, 10, 0E, 2C, 01, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 3C, 00, 00, 00, 3C, 00, 00, 00, 3C, 00, 00, 00, 00, 00, 00, 00, + A0, A6, 03, C0, 08, 08 +} + +NXP_RF_CONF_BLK_6={ + 20, 02, E9, 05, + A0, AB, 82, 27, 1B, 33, 04, 42, 04, 55, 04, 75, 04, 9E, 04, C7, 04, F0, 04, 20, 05, 4F, 05, 7F, 05, B8, 05, F2, 05, 2B, 06, 72, 06, BA, 06, 02, 07, 49, 07, 91, 07, F0, 07, 50, 08, AF, 08, 0F, 09, 6E, 09, E1, 09, 54, 0A, C6, 0A, 56, 0B, E5, 0B, 74, 0C, 04, 0D, 93, 0D, 52, 0E, 11, 0F, D0, 0F, 8F, 10, 4F, 11, 0E, 12, 2C, 13, 4B, 14, 6A, 15, 88, 16, A7, 17, C6, 18, 44, 1A, C2, 1B, 41, 1D, BF, 1E, 9D, 20, 7B, 22, 58, 24, 96, 26, D3, 28, 11, 2B, 4E, 2D, 4B, 30, 47, 33, 44, 36, 40, 39, 3D, 3C, A2, 3F, 07, 43, 6C, 46, E6, 4A, 61, 4F, + A0, A7, 0B, 00, 02, 77, 17, 1F, 1F, 1F, 0A, FF, 19, 05, + A0, A8, 38, 00, 33, 33, 10, 00, 33, 23, 10, 00, 33, 24, 10, 4B, 23, 44, 10, CF, 22, 43, 10, CF, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, 00, 33, 22, 10, C0, 22, 23, 10, 00, 33, 22, 10, C0, 22, 23, 10, + A0, 98, 08, 6E, D3, 16, 80, 2A, 6E, 6E, 6E, + A0, 9E, 0C, 0F, D3, 16, 96, 00, 2C, 01, 2B, 25, 02, 00, 00 +} + +NXP_RF_CONF_BLK_7={ + 20, 02, FB, 14, + A0, C6, 5B, 00, 00, 04, 00, 00, 00, 3C, 00, 00, 00, 20, 80, FF, 01, 00, 00, 64, 00, 00, C0, 00, 00, 00, C0, 00, 00, 00, 01, 01, 01, 20, 01, 03, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, + A0, 0D, 06, 10, C9, 30, 00, 40, 00, + A0, 0D, 03, 24, 29, 07, + A0, 0D, 03, 24, 30, 07, + A0, 0D, 03, 25, 29, 01, + A0, 0D, 03, 25, 30, 01, + A0, 0D, 06, 40, 42, F0, C1, 37, CC, + A0, 0D, 06, 41, 45, 31, 12, 00, 00, + A0, 0D, 03, 42, 7C, 54, + A0, 0D, 06, 42, 8D, 00, A0, A4, 64, + A0, 0D, 06, 42, 8B, 00, A2, 23, 00, + A0, 0D, 06, 42, 89, 7F, 12, BD, 01, + A0, 0D, 06, 42, 44, 00, B0, 66, 01, + A0, 0D, 06, 42, 43, 24, 24, 4D, ED, + A0, 0D, 06, 42, 41, FD, FF, 5F, F0, + A0, 0D, 06, 42, 40, 08, 77, 33, 3A, + A0, 0D, 06, 42, 4A, 00, 00, 00, 00, + A0, 0D, 06, 42, 49, 00, 00, 00, 00, + A0, 0D, 06, 51, 40, 12, 77, 33, 3A, + A0, 0D, 06, 43, 44, 00, 34, 52, 01 +} + +NXP_RF_CONF_BLK_8={ + 20, 02, FD, 1C, + A0, 0D, 06, 43, 43, A5, 64, 4C, AD, + A0, 0D, 06, 43, 40, 05, 77, 33, 3D, + A0, 0D, 06, 43, 4A, 00, 00, 00, 00, + A0, 0D, 06, 43, 49, 00, 00, 00, 00, + A0, 0D, 06, 44, 44, 00, 34, 52, 01, + A0, 0D, 06, 44, 43, A5, 64, 4C, AD, + A0, 0D, 06, 44, 40, 05, 77, 33, 3D, + A0, 0D, 06, 44, 4A, 00, 00, 00, 00, + A0, 0D, 06, 44, 49, 00, 00, 00, 00, + A0, 0D, 06, 45, 44, 00, 34, 52, 01, + A0, 0D, 06, 45, 43, A5, 64, 4C, AD, + A0, 0D, 06, 45, 40, 05, 77, 33, 3D, + A0, 0D, 06, 45, 4A, 00, 00, 00, 00, + A0, 0D, 06, 45, 49, 00, 00, 00, 00, + A0, 0D, 06, 46, 45, 39, 12, 00, 00, + A0, 0D, 06, 46, 44, 00, 34, 52, 01, + A0, 0D, 06, 47, 43, A5, 64, 4C, ED, + A0, 0D, 06, 47, 40, 05, 77, 33, 3D, + A0, 0D, 06, 47, 4A, 20, AA, 0B, 81, + A0, 0D, 06, 47, 49, B5, 44, 22, 00, + A0, 0D, 06, 48, 43, A5, 64, 4C, AD, + A0, 0D, 06, 48, 40, 05, 77, 33, 3D, + A0, 0D, 06, 48, 4A, 00, 00, 00, 00, + A0, 0D, 06, 48, 49, 00, 00, 00, 00, + A0, 0D, 06, 49, 43, A5, 64, 4C, AD, + A0, 0D, 06, 49, 40, 05, 77, 33, 3D, + A0, 0D, 06, 49, 4A, 00, 00, 00, 00, + A0, 0D, 06, 49, 49, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_9={ + 20, 02, FA, 1C, + A0, 0D, 06, 4A, 8B, 48, 02, F0, 80, + A0, 0D, 06, 4A, 43, A5, 64, 4C, AD, + A0, 0D, 06, 4A, 40, 05, 77, 33, 3D, + A0, 0D, 06, 4A, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4A, 49, 00, 00, 00, 00, + A0, 0D, 06, 4B, 43, A5, 64, 4C, 6D, + A0, 0D, 06, 4C, 44, 00, 34, 52, 01, + A0, 0D, 06, 4C, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4C, 49, 00, 00, 00, 00, + A0, 0D, 06, 4C, 40, 85, 51, 33, 3D, + A0, 0D, 06, 4D, 44, 00, 34, 52, 01, + A0, 0D, 06, 4D, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4D, 49, 00, 00, 00, 00, + A0, 0D, 06, 4D, 40, 85, 51, 33, 3D, + A0, 0D, 06, 4E, 45, 31, 12, 00, 00, + A0, 0D, 03, 4E, 7C, 50, + A0, 0D, 06, 4E, 8D, 00, 00, 00, 06, + A0, 0D, 06, 4E, 8B, 00, A2, 24, 00, + A0, 0D, 06, 4E, 89, 7D, 84, 05, 08, + A0, 0D, 06, 4E, 44, 00, B0, 66, 01, + A0, 0D, 06, 4E, 43, A5, 64, 5C, AD, + A0, 0D, 06, 4E, 41, FD, FF, 5F, F0, + A0, 0D, 06, 4E, 40, 07, 77, 33, 3D, + A0, 0D, 06, 4F, 4A, 2A, 8E, 8D, 2A, + A0, 0D, 06, 4F, 49, 5D, 27, 27, 00, + A0, 0D, 06, 50, 4A, 00, 00, 00, 00, + A0, 0D, 06, 50, 49, 00, 00, 00, 00, + A0, 0D, 06, 52, 4A, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_10={ + 20, 02, FD, 1C, + A0, 0D, 06, 52, 49, 00, 00, 00, 00, + A0, 0D, 06, 53, 4A, 00, 00, 00, 00, + A0, 0D, 06, 53, 49, 00, 00, 00, 00, + A0, 0D, 06, 60, 4E, FF, FF, FF, 01, + A0, 0D, 06, 60, 4F, FF, FF, FF, 01, + A0, 0D, 06, 60, 50, FF, FF, FF, 3F, + A0, 0D, 06, 80, 7D, A0, 00, 9E, BB, + A0, 0D, 06, 80, 80, B8, 5A, 0D, 00, + A0, 0D, 06, 80, C9, 30, 00, 00, 00, + A0, 0D, 06, 8C, 80, B8, 5A, 0D, 00, + A0, 0D, 06, 90, 4F, FF, FF, FF, 01, + A0, 0D, 06, 90, 4E, FF, FF, FF, 01, + A0, 0D, 06, 90, 39, 3F, 00, 00, 7F, + A0, 0D, 06, 9B, A9, 84, 00, 00, 00, + A0, 0D, 06, 9B, A1, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 99, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 95, FF, 00, 0F, 00, + A0, 0D, 06, 9B, A5, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 9D, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9B, 4F, FF, FF, FF, 01, + A0, 0D, 06, 9B, 4E, FF, FF, FF, 01, + A0, 0D, 06, 91, D4, F8, 84, EF, 03, + A0, 0D, 06, 91, D2, 4A, 4A, 4B, 38, + A0, 0D, 06, 9C, A9, 84, 00, 00, 00, + A0, 0D, 06, 9C, A1, 7F, 22, 5F, 00, + A0, 0D, 06, 9C, 99, 7F, 22, 7F, 7F, + A0, 0D, 06, 9C, 95, FF, 00, 0F, 00 +} + +NXP_RF_CONF_BLK_11={ + 20, 02, F5, 17, + A0, 0D, 06, 9C, A5, 7F, 22, 5F, 00, + A0, 0D, 06, 9C, 9D, 7F, 22, 7F, 7F, + A0, 0D, 06, 9C, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9C, 4F, 9F, 88, FF, 01, + A0, 0D, 06, 9C, 4E, 9F, 88, FF, 01, + A0, 0D, 06, 95, D4, F8, 84, 75, 00, + A0, 0D, 06, 95, D2, 4A, 4B, 4B, 58, + A0, 0D, 06, 9D, A9, 84, 00, 00, 00, + A0, 0D, 06, 9D, A1, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 99, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 95, FF, 00, 0F, 00, + A0, 0D, 06, 9D, A5, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 9D, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9D, 4F, FF, FF, FF, 01, + A0, 0D, 06, 9D, 4E, FF, FF, FF, 01, + A0, 0D, 06, 99, D4, F8, 04, E4, 01, + A0, 0D, 06, 99, D2, 4A, 4B, 4B, 48, + A0, AF, 09, 10, 5F, 00, 18, 10, 5F, 00, 18, 00, + A0, 92, 28, 37, 00, 1B, 00, FC, 81, 0F, 00, 22, 80, 0F, 00, 14, 00, 20, 70, EA, 01, 43, 18, 32, 16, 78, 30, 0D, 00, 03, 55, EA, 05, 01, 04, 68, 02, 3F, 92, 04, 00, 0C, 13, + A0, 1F, 06, 63, 00, 42, 00, 14, 00, + A0, 9A, 02, 95, 01, + A0, 99, 0A, 03, 00, 80, 00, 00, 80, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_12={ + 20, 02, 3B, 03, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, D0, 07, 00, 0F, FF, 7F, 00, 0F, FF, 7F, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A0, 0D, 03, 61, 09, 7E, + A0, 85, 04, 58, 08, A8, AC +} + +## DLMA Enable | VDDPA 3.9 +## LMA (CLK) A+B - (CLK-LESS) A/B/F 32 - 57.7/28.2/55.3 | RSSI 0x134F | H 8A/m +## LPDET 150 | NFCLD 300 | Ratio 43 | GreenCar 600 +## Tx first entry 3/6 +NXP_RF_CONF_BLK_13={ + 20, 02, F2, 04, + A0, AF, 09, 11, 20, 00, 18, 11, 20, 00, 18, 00, + A0, 98, 08, 20, 4F, 13, 80, 18, 39, 1C, 37, + A0, 34, C8, 23, 04, 3D, 01, 04, 19, CB, 05, 00, 00, 3E, 07, 00, 00, B0, 08, 00, 00, B0, 08, 00, 00, E5, 09, 00, 00, E5, 09, 00, 00, 58, 0B, 00, 00, 58, 0B, 00, 00, E1, 0D, 00, 00, 4B, 10, 00, 00, 4B, 10, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 06, 19, B9, 00, 00, 00, 35, 01, 00, 00, CF, 01, 00, 00, 2C, 02, 00, 00, C7, 02, 00, 00, 23, 03, 00, 00, DD, 03, 00, 00, 30, 05, 00, 00, 00, 07, 00, 00, A8, 09, 00, 00, 7B, 0E, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, + A0, 9E, 0C, 07, 4F, 13, 96, 00, 2C, 01, 2B, 58, 02, 00, 00 +} +NXP_RF_CONF_BLK_14={ + 20, 02, F1, 01, + A0, A9, ED, 00, 2A, FF, 01, 24, FF, 02, 1F, FF, 03, 1A, FF, 04, 16, FF, 05, 12, FF, 06, 0F, FF, 07, 0C, FF, 08, 09, FF, 09, 07, FF, 0A, 05, FF, 0B, 03, FF, 0C, 01, FF, 0D, 00, F5, 0E, 00, DC, 0F, 00, C6, 10, 00, B3, 11, 00, A2, 12, 00, 92, 13, 00, 84, 14, 00, 77, 15, 00, 6B, 16, 00, 60, 17, 00, 57, 18, 00, 4E, 19, 00, 46, 1A, 00, 3F, 1B, 00, 39, 1C, 00, 33, 1D, 00, 2E, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A +} + + +NXP_RF_CONF_MAX_NUM=14 + +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_SET_CONFIG_ALWAYS=0x01 + +############################################################################### +# Core configuration rf field filter settings to enable set to 01 to disable set to 00 last bit +#NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 00} + +############################################################################### +# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set +# to 0x00 +#NXP_I2C_FRAGMENTATION_ENABLED=0x00 + +############################################################################### +# Core configuration extensions +# It includes +# Wired mode settings A0ED, A0EE +# Tag Detector A040, A041, A043 +# Low Power mode A007 +# Clock settings A002, A003 +# PbF settings A008 +# Clock timeout settings A004 +# eSE (SVDD) PWR REQ settings A0F2 +# Window size A0D8 +# DWP Speed A0D5 +# How eSE connected to PN553 A012 +# UICC2 bit rate A0D1 +# SWP1A interface A0D4 +# DWP intf behavior config, SVDD Load activated by default if set to 0x31 A037 +# Low power tag detection LPTD for power reduction A068 +NXP_CORE_CONF_EXTN={20, 02, 3F, 05, + A0, EC, 01, 01, + A0, ED, 01, 01, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, 00, 02, 00, 0F, 00, 02, 00, 0F, A0, 00, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A1, 13, 01, 32, + A0, 80, 02, FA, 00 +} +# A0, F2, 01, 01, +# A0, 40, 01, 01, +# A0, 41, 01, 02, +# A0, 43, 01, 04, +# A0, 02, 01, 01, +# A0, 03, 01, 11, +# A0, 07, 01, 03, +# A0, 08, 01, 01 +# } + +############################################################################### +# Core configuration settings +NXP_CORE_CONF={ 20, 02, 37, 11, + 28, 01, 00, + 21, 01, 00, + 30, 01, 08, + 31, 01, 03, + 32, 01, 60, + 38, 01, 01, + 33, 04, 01, 02, 03, 04, + 54, 01, 06, + 50, 01, 02, + 5B, 01, 00, + 3E, 01, 00, + 80, 01, 01, + 81, 01, 01, + 82, 01, 0E, + 18, 01, 01, + 68, 01, 01, + 85, 01, 01 + } + +############################################################################### +#set autonomous mode +# disable autonomous 0x00 +# enable autonomous 0x01 +NXP_AUTONOMOUS_ENABLE=0x00 +############################################################################### +#set Guard Timer +# Gurad Timer range to 0x0F-0xFF(i.e.15-255 seconds) +NXP_GUARD_TIMER_VALUE=0x0F +############################################################################### +#Enable SWP full power mode when phone is power off +#NXP_SWP_FULL_PWR_ON=0x00 + +################################################################################ +#This is used to configure UICC2 at boot time. +# UICC2 0x03 +NXP_DEFAULT_UICC2_SELECT=0x03 +############################################################################### +# CE when Screen state is locked +# This setting is for DEFAULT_AID_ROUTE, +# DEFAULT_DESFIRE_ROUTE and DEFAULT_MIFARE_CLT_ROUTE +# Disable 0x00 +# Enable 0x01 +NXP_CE_ROUTE_STRICT_DISABLE=0x01 + +############################################################################### +#Timeout in secs +NXP_SWP_RD_TAG_OP_TIMEOUT=20 + +############################################################################### +#Set the default AID route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_AID_ROUTE=0x01 + +############################################################################### +#Set the ISODEP (Mifare Desfire) route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_ISODEP_ROUTE=0x01 + +############################################################################### +#Set the Mifare CLT route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_MIFARE_CLT_ROUTE=0x01 + +############################################################################### +#Set the Felica CLT route Location : +#This settings will be used when application does not set this parameter +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_FELICA_CLT_ROUTE=0x01 + +############################################################################### +#Set the default AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_AID_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare Desfire Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_DESFIRE_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_MIFARE_CLT_PWR_STATE=0x3B + +############################################################################### +#Set the Felica CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_FELICA_CLT_PWR_STATE=0x3B +############################################################################### +#Set the T4TNfcee AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_T4TNFCEE_AID_POWER_STATE=0x3B + +############################################################################### +#Set the default Felica T3T System Code OffHost route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_SYS_CODE_ROUTE=0x01 +############################################################################### +# AID Matching platform options +# AID_MATCHING_L 0x01 +# AID_MATCHING_K 0x02 +#AID_MATCHING_PLATFORM=0x01 +############################################################################### +# P61 interface options +# SPI 0x02 +NXP_P61_LS_DEFAULT_INTERFACE=0x02 + +############################################################################### +#CHINA_TIANJIN_RF_SETTING +#Enable 0x01 +#Disable 0x00 +#NXP_CHINA_TIANJIN_RF_ENABLED=0x01 +############################################################################### +#SWP_SWITCH_TIMEOUT_SETTING +# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60]. +# Timeout in milliseconds, for example +# No Timeout 0x00 +# 10 millisecond timeout 0x0A +#NXP_SWP_SWITCH_TIMEOUT=0x0A +############################################################################### +# Flashing Options Configurations +# FLASH_UPPER_VERSION 0x01 +# FLASH_DIFFERENT_VERSION 0x02 +# FLASH_ALWAYS 0x03 +NXP_FLASH_CONFIG=0x02 + +############################################################################### +# P61 interface options for JCOP Download +# SPI 0x02 +NXP_P61_JCOP_DEFAULT_INTERFACE=0x02 + +############################################################################### +# Option to perform LS update every boot +# Enable 0x01 +# Disable 0x00 +NXP_LS_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Option to perform JCOP update every boot +# Enable 0x01 +# Disable 0x00 +NXP_JCOP_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Bail out mode +# If set to 1, NFCC is using bail out mode for either Type A or Type B poll. +# Set this parameter value to 1 if Android Beam is enabled, else set to 0. +NFA_POLL_BAIL_OUT_MODE=0x00 + +############################################################################### +# White list of Hosts +# This values will be the Hosts(NFCEEs) in the HCI Network. +DEVICE_HOST_WHITE_LIST={C0, 80} + +############################################################################### +# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1. +# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm +# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block +# 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check +# command is sent waiting for rsp and ntf. +PRESENCE_CHECK_ALGORITHM=2 +############################################################################### +# Options to Fallback to alternative route +# Disable 0x00 +# DH 0x01 +# ESE 0x02 +NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01 +############################################################################### +# Vendor Specific Proprietary Protocol & Discovery Configuration +# Set to 0xFF if unsupported +# byte[0] NCI_PROTOCOL_18092_ACTIVE +# byte[1] NCI_PROTOCOL_B_PRIME +# byte[2] NCI_PROTOCOL_DUAL +# byte[3] NCI_PROTOCOL_15693 +# byte[4] NCI_PROTOCOL_KOVIO +# byte[5] NCI_PROTOCOL_MIFARE +# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO +# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME +# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME +NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, FF, FF, FF} + +############################################################################### +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE +#Enable/Disable block number checks for china transit use case +#Enable 0x01 +#Disable 0x00 +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE=0x01 + +################################################################################################### +#This flags will enable different modes of Lx Debug based on bits of the Byte0 & Byte1 +#Byte 0: +# |_________Bit Mask_______| Debug Mode +# b7|b6|b5|b4|b3|b2|b1|b0| +# | | |X | | | | | Enable L1 Events (ISO14443-4, ISO18092) +# | | | |X | | | | Enable L2 Reader Events(ROW specific) +# | | | | |X | | | Enable Felica SystemCode +# | | | | | |X | | Enable Felica RF (all Felica CM events) +# | | | | | | |X | Enable L2 Events Card Emulation (ISO14443-3, Modulation detected, RF Field ON/OFF) +#Byte 1: +# Enable RSSI 0x01 Byte1 Byte0 +# Disable RSSI 0x00 \__ __/ +# e.g. NXP_CORE_PROP_SYSTEM_DEBUG=0x0110 ==> L1 with RSSI +NXP_CORE_PROP_SYSTEM_DEBUG=0x0000 + +############################################################################### +#Enable NXP NCI runtime parser library +#Enable 0x01 +#Disable 0x00 +NXP_NCI_PARSER_LIBRARY=0x00 + +############################################################################### +# Timeout value in milliseconds for JCOP OS download to complete +OS_DOWNLOAD_TIMEOUT_VALUE=60000 + +############################################################################### +# Forcing HOST to listen for a selected protocol +# 0x00 : Disable Host Listen +# 0x01 : Enable Host to Listen (A) for ISO-DEP tech A +# 0x02 : Enable Host to Listen (B) for ISO-DEP tech B +# 0x04 : Enable Host to Listen (F) for T3T Tag Type Protocol tech F +# 0x07 : Enable Host to Listen (ABF)for ISO-DEP tech AB & T3T Tag Type Protocol tech F +HOST_LISTEN_TECH_MASK=0x07 + +############################################################################### +# Enable forward functionality +# Disable 0x00 +# Enable 0x01 +FORWARD_FUNCTIONALITY_ENABLE=0x01 + +############################################################################### +# Configure the NFC Extras to open and use a static pipe. If the value is +# not set or set to 0, then the default is use a dynamic pipe based on a +# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value +# for each EE (ESE/SIM1/SIM2) +OFF_HOST_ESE_PIPE_ID=0x16 +OFF_HOST_SIM_PIPE_ID=0x0A +OFF_HOST_SIM2_PIPE_ID=0x23 + +############################################################################### +#Set the Felica T3T System Code Power state : +#This settings will be used when application does not set this parameter +#Update Power state as per NCI2.0 +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen On lock +# bit pos 4 = Screen off unlock +# bit pos 5 = Screen Off lock +DEFAULT_SYS_CODE_PWR_STATE=0x3B +############################################################################### +#Default Secure Element route id +DEFAULT_OFFHOST_ROUTE=0x01 + +############################################################################### +#Maximum SMB transceive wait for response +NXP_SMB_TRANSCEIVE_TIMEOUT=2000 +############################################################################### +# Firmware file type +#.so file 0x01 +#.bin file 0x02 +NXP_FW_TYPE=0x01 +############################################################################ +# Extended APDU length for ISO_DEP +ISO_DEP_MAX_TRANSCEIVE=0xFEFF +######################################################################### +# Support for Amendment I SEMS specification +# Support SEMS Amendment I 0x01 +# Support NXP LS client 0x00 +NXP_GP_AMD_I_SEMS_SUPPORTED=0x01 + +############################################################################### +#All eSE terminals shall be match with the /vendor/etc/vintf/manifest.xml file +#under android.hardware.secure_element +# The terminal name shall start from 1 +# Assign terminal number to each interface based on system config +NXP_SPI_SE_TERMINAL_NUM="eSE1" +############################################################################### +# Assign terminal number to each interface based on system config +#NXP_VISO_SE_TERMINAL_NUM="eSE3" +############################################################################### +# Assign terminal number to each interface based on system config +NXP_NFC_SE_TERMINAL_NUM="eSE2" +############################################################################### +#For static or dynamic dual UICC feature support +#Enable static dual uicc feature by setting value 0x00 +#Enable dynamic dual uicc feature by setting value 0x01 +NXP_DUAL_UICC_ENABLE=0x01 +############################################################################### +# Time to wait by DH when NFCC will report eSE Cold Temp Error. +# The value is as per the UM and in seconds +NXP_SE_COLD_TEMP_ERROR_DELAY=0x05 +############################################################################### +#OffHost ESE route location for MultiSE +#ESE = 01 +OFFHOST_ROUTE_ESE={01} +############################################################################### +#OffHost UICC route location for MultiSE +#UICC1 = 02 +#UICC2 = 03 +OFFHOST_ROUTE_UICC={02:03} + +############################################################################### +#T4T NFCEE ENABLE +#bit pos 0 = T4T NFCEE Enable +#bit pos 6 = T4T NFCEE Contactless write enable +NXP_T4T_NFCEE_ENABLE=0x01 + +############################################################################### +#CORE_SET_CONF_CMD to reset Prop Emvco Flag +NXP_PROP_RESET_EMVCO_CMD={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +#Guard time in ms for the mPOS/SCR module to process the reader start/stop req +NXP_RDR_REQ_GUARD_TIME=0 + +############################################################################### +#MW workaround to enable LPCD when EMVCO polling mode starts and disable +#while switching back to NFC Forum mode +# 0 --> Disable MW workaround +# 1 --> Enable MW workaround +NXP_RDR_DISABLE_ENABLE_LPCD=0 + +############################################################################### +# Firmware patch format, Only 1 and 5 should be set +# 0 -> NFC Default +# 1 -> EMVCO Default +# 3 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = Removal process +# 5 -> EMVCO Cert Polling, DISC_IDLE = Removal process , DISC DEACTIVATE = POWER_OFF +# 7 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = POWER_OFF +NFA_CONFIG_FORMAT=1 + +################################################################################ +# This will enable power state required for GSMA testing. +# When this is enabled , then default AID route power state is added with this power state +# If any aid with power state 0 is added, then this power state is used. +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +#DEFUALT_GSMA_PWR_STATE=0x3B + +################################################################################# +# Enable disconnect tag in screen off +# Disable 0x00 +# Enable 0x01 +NXP_DISCONNECT_TAG_IN_SCRN_OFF=0x01 +################################################################################# +############################################################################### +# Enable(0x01) or disable(0x00) non-standard tag reading +# Disable Non-standard card read 0x00 +# Enable Non-standard card read 0x01 +NXP_SUPPORT_NON_STD_CARD=0x00 +################################################################################# +# Enable(0x01) or disable(0x00) iso dep sak merge +# Disable SAK merging 0x00 +# Enable SAK merging 0x01 +NXP_ISO_DEP_MERGE_SAK=0x01 +################################################################################# +# Enable(0x01) or disable(0x00 ) for getting HW Info log over SMB wired +# Disable getting HW info log 0x00 +# Enable getting HW info log 0x01 +NXP_GET_HW_INFO_LOG=0x00 +################################################################################# +# Valid time difference range within for non-standard tag detection from first +# Activation fail to next discovery +# Note :- 1. This will take effect only when NXP_SUPPORT_NON_STD_CARD is enabled +# 2. The number will be multiplied by 100ms by MW. +# Default: +# Set to 00 if not supported +# byte[0] MIFARE_CLASSIC 100ms +# byte[1] ISO_DEP 300ms +NXP_NON_STD_CARD_TIMEDIFF={01, 03} +################################################################################# + diff --git a/proprietary/vendor/etc/libnfc-mtp-SN100.conf b/proprietary/vendor/etc/libnfc-mtp-SN100.conf new file mode 100644 index 0000000..fb651b5 --- /dev/null +++ b/proprietary/vendor/etc/libnfc-mtp-SN100.conf @@ -0,0 +1,780 @@ +#################### This file is used by NXP NFC NCI HAL ##################### +## Modified by Motorola Mobility LLC +## Version : Cypfr.4 (2021/06/09) +############################################################################### +# Application options +# Logging Levels +# NXPLOG_DEFAULT_LOGLEVEL 0x01 +# ANDROID_LOG_DEBUG 0x03 +# ANDROID_LOG_WARN 0x02 +# ANDROID_LOG_ERROR 0x01 +# ANDROID_LOG_SILENT 0x00 +NXPLOG_EXTNS_LOGLEVEL=0x03 +NXPLOG_NCIHAL_LOGLEVEL=0x03 +NXPLOG_NCIX_LOGLEVEL=0x03 +NXPLOG_NCIR_LOGLEVEL=0x03 +NXPLOG_FWDNLD_LOGLEVEL=0x03 +NXPLOG_TML_LOGLEVEL=0x03 +NFC_DEBUG_ENABLED=1 + +############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/nq-nci" + +################################################################################# +#VEN Toggle Config +#Disable = 0x00 +#Enable = 0x01 +ENABLE_VEN_TOGGLE=0x00 + +############################################################################### +# Extension for Mifare reader enable +MIFARE_READER_ENABLE=0x01 + +############################################################################### +# Mifare Reader implementation +# 0: General implementation +# 1: Legacy implementation +LEGACY_MIFARE_READER=0 + +############################################################################### +# File name for Firmware +NXP_FW_NAME="libsn100u_fw.so" + +############################################################################### +# System clock source selection configuration +#define CLK_SRC_XTAL 1 +#define CLK_SRC_PLL 2 +NXP_SYS_CLK_SRC_SEL=0x02 + +############################################################################### +# System clock frequency selection configuration +#define CLK_FREQ_13MHZ 1 +#define CLK_FREQ_19_2MHZ 2 +#define CLK_FREQ_24MHZ 3 +#define CLK_FREQ_26MHZ 4 +#define CLK_FREQ_38_4MHZ 5 +#define CLK_FREQ_52MHZ 6 +NXP_SYS_CLK_FREQ_SEL=0x02 + +############################################################################### +# The timeout value to be used for clock request acknowledgment +# min value = 0x01 to max = 0x06 +#NXP_SYS_CLOCK_TO_CFG=0x06 + +############################################################################### +# The delay to try to start PLL/XTAL when using sys clock 256/fc units = ~18.8 us +# min value = 0x01 to max = 0x1F +#NXP_CLOCK_REQ_DELAY=0x16 + +############################################################################### +# NXP proprietary settings +NXP_ACT_PROP_EXTN={2F, 02, 00} + +############################################################################### +# NFC forum profile settings +NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +# NXP TVDD configurations settings +# Allow NFCC to configure External TVDD, two configurations (1 and 2) supported, +# out of them only one can be configured at a time. +#NXP_EXT_TVDD_CFG=0x02 + +############################################################################### +#config1:SLALM, 3.3V for both RM and CM +#NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 31, 01, 01, 31, 00, 00, 00, 01, 00, D0, 0C} + +############################################################################### +#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM, +#monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms +#NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, B2, 00, B2, 1E, 1F, 00, D0, 0C} + +# *** RFBOARD30x20FN FW VERSION = 01.10.5B *** +NXP_RF_CONF_BLK_1={ + 20, 02, DB, 04, + A0, 0E, 2C, F0, 00, 3E, 11, E4, E4, E4, 00, 00, 00, 00, 00, A7, 8E, FF, FF, 18, 18, 18, 18, 0A, 00, 00, 00, 00, 02, 00, 00, 01, 00, 10, 00, 04, 00, 00, 00, 17, 40, FF, 07, 13, 07, 05, 13, + A0, A4, 85, 14, 00, 01, 00, 00, 00, 00, 03, 00, 06, 00, 0A, 00, 0D, 00, 10, 00, 14, 00, 17, 00, 1B, 00, 1E, 00, 21, 00, 25, 00, 28, 00, 2C, 00, 2F, 00, 32, 00, 36, 00, 39, 00, 3D, 00, 40, 00, 43, 00, 47, 00, 4A, 00, 4E, 00, 51, 00, 54, 00, 58, 00, 5B, 00, 5E, 00, 62, 00, 65, 00, 69, 00, 6C, 00, 6F, 00, 73, 00, 76, 00, 7A, 00, 7D, 00, 80, 00, 84, 00, 87, 00, 8B, 00, 8E, 00, 91, 00, 95, 00, 98, 00, 9C, 00, 9F, 00, A2, 00, A6, 00, A9, 00, AC, 00, B0, 00, B3, 00, B7, 00, BA, 00, BD, 00, C1, 00, C4, 00, C8, 00, CB, 00, CE, 00, D2, 00, D5, 00, + A0, A5, 0D, 3B, 3B, 3B, 3B, 3B, 3B, FF, 03, 1F, 00, 3B, 00, 00, + A0, 6A, 10, 28, 00, 28, 00, 28, 00, 28, 00, 80, 02, 80, 02, 80, 02, 80, 02 +} + +NXP_RF_CONF_BLK_2={ + 20, 02, CC, 01, + A0, 34, C8, 23, 04, 3D, 01, 0D, 0C, FA, 00, 00, 00, 90, 01, 00, 00, 26, 02, 00, 00, BC, 02, 00, 00, 52, 03, 00, 00, E8, 03, 00, 00, B0, 04, 00, 00, 40, 06, 00, 00, 98, 08, 00, 00, B8, 0B, 00, 00, 94, 11, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 0D, 0C, FA, 00, 00, 00, 90, 01, 00, 00, 26, 02, 00, 00, BC, 02, 00, 00, 52, 03, 00, 00, E8, 03, 00, 00, B0, 04, 00, 00, 40, 06, 00, 00, 98, 08, 00, 00, B8, 0B, 00, 00, 94, 11, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00 +} + +NXP_RF_CONF_BLK_3={ + 20, 02, 66, 01, + A1, 0A, 62, 14, 08, F4, 33, 00, 00, F4, 33, 00, 00, F4, 33, 00, 00, F4, 33, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00 +} + +NXP_RF_CONF_BLK_4={ + 20, 02, F1, 01, + A0, A9, ED, 40, 2A, FF, 41, 24, FF, 42, 1F, FF, 43, 1A, FF, 44, 16, FF, 45, 12, FF, 46, 0F, FF, 47, 0C, FF, 07, 2A, F1, 48, 09, FF, 08, 23, F7, 49, 07, FF, 09, 1E, F7, 4A, 05, FF, 0A, 19, FA, 4B, 03, FF, 0B, 15, FA, 4C, 01, FF, 0C, 12, F5, 0D, 0F, F2, 0E, 0C, F2, 0F, 09, F5, 10, 06, FC, 11, 06, E2, 12, 02, FB, 13, 01, F0, 14, 00, E6, 15, 00, CF, 16, 00, BA, 17, 00, A7, 18, 00, 96, 19, 00, 87, 1A, 00, 79, 1B, 00, 6C, 1C, 00, 61, 1D, 00, 57, 1E, 00, 4E, 1F, 00, 46, 20, 00, 3F, 21, 00, 38, 22, 00, 32, 23, 00, 2D, 24, 00, 28, A5, 00, 48, A6, 00, 40, A7, 00, 39, A8, 00, 33, A9, 00, 2D, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28 +} + +NXP_RF_CONF_BLK_5={ + 20, 02, C5, 02, + A0, 0B, BB, 00, 1D, 01, 14, 6A, 2A, E8, 03, E8, 03, 06, 10, 0E, 2C, 01, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 3C, 00, 00, 00, 3C, 00, 00, 00, 3C, 00, 00, 00, 00, 00, 00, 00, + A0, A6, 03, C0, 08, 08 +} + +NXP_RF_CONF_BLK_6={ + 20, 02, E9, 05, + A0, AB, 82, 27, 1B, 33, 04, 42, 04, 55, 04, 75, 04, 9E, 04, C7, 04, F0, 04, 20, 05, 4F, 05, 7F, 05, B8, 05, F2, 05, 2B, 06, 72, 06, BA, 06, 02, 07, 49, 07, 91, 07, F0, 07, 50, 08, AF, 08, 0F, 09, 6E, 09, E1, 09, 54, 0A, C6, 0A, 56, 0B, E5, 0B, 74, 0C, 04, 0D, 93, 0D, 52, 0E, 11, 0F, D0, 0F, 8F, 10, 4F, 11, 0E, 12, 2C, 13, 4B, 14, 6A, 15, 88, 16, A7, 17, C6, 18, 44, 1A, C2, 1B, 41, 1D, BF, 1E, 9D, 20, 7B, 22, 58, 24, 96, 26, D3, 28, 11, 2B, 4E, 2D, 4B, 30, 47, 33, 44, 36, 40, 39, 3D, 3C, A2, 3F, 07, 43, 6C, 46, E6, 4A, 61, 4F, + A0, A7, 0B, 00, 02, 77, 17, 1F, 1F, 1F, 0A, FF, 19, 05, + A0, A8, 38, 00, 33, 33, 10, 00, 33, 23, 10, 00, 33, 24, 10, 4B, 23, 44, 10, CF, 22, 43, 10, CF, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, 00, 33, 22, 10, C0, 22, 23, 10, 00, 33, 22, 10, C0, 22, 23, 10, + A0, 98, 08, 6E, D3, 16, 80, 2A, 6E, 6E, 6E, + A0, 9E, 0C, 0F, D3, 16, 96, 00, 2C, 01, 2B, 25, 02, 00, 00 +} + +NXP_RF_CONF_BLK_7={ + 20, 02, FB, 14, + A0, C6, 5B, 00, 00, 04, 00, 00, 00, 3C, 00, 00, 00, 20, 80, FF, 01, 00, 00, 64, 00, 00, C0, 00, 00, 00, C0, 00, 00, 00, 01, 01, 01, 20, 01, 03, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, + A0, 0D, 06, 10, C9, 30, 00, 40, 00, + A0, 0D, 03, 24, 29, 07, + A0, 0D, 03, 24, 30, 07, + A0, 0D, 03, 25, 29, 01, + A0, 0D, 03, 25, 30, 01, + A0, 0D, 06, 40, 42, F0, C1, 37, CC, + A0, 0D, 06, 41, 45, 31, 12, 00, 00, + A0, 0D, 03, 42, 7C, 54, + A0, 0D, 06, 42, 8D, 00, A0, A4, 64, + A0, 0D, 06, 42, 8B, 00, A2, 23, 00, + A0, 0D, 06, 42, 89, 7F, 12, BD, 01, + A0, 0D, 06, 42, 44, 00, B0, 66, 01, + A0, 0D, 06, 42, 43, 24, 24, 4D, ED, + A0, 0D, 06, 42, 41, FD, FF, 5F, F0, + A0, 0D, 06, 42, 40, 08, 77, 33, 3A, + A0, 0D, 06, 42, 4A, 00, 00, 00, 00, + A0, 0D, 06, 42, 49, 00, 00, 00, 00, + A0, 0D, 06, 51, 40, 12, 77, 33, 3A, + A0, 0D, 06, 43, 44, 00, 34, 52, 01 +} + +NXP_RF_CONF_BLK_8={ + 20, 02, FD, 1C, + A0, 0D, 06, 43, 43, A5, 64, 4C, AD, + A0, 0D, 06, 43, 40, 05, 77, 33, 3D, + A0, 0D, 06, 43, 4A, 00, 00, 00, 00, + A0, 0D, 06, 43, 49, 00, 00, 00, 00, + A0, 0D, 06, 44, 44, 00, 34, 52, 01, + A0, 0D, 06, 44, 43, A5, 64, 4C, AD, + A0, 0D, 06, 44, 40, 05, 77, 33, 3D, + A0, 0D, 06, 44, 4A, 00, 00, 00, 00, + A0, 0D, 06, 44, 49, 00, 00, 00, 00, + A0, 0D, 06, 45, 44, 00, 34, 52, 01, + A0, 0D, 06, 45, 43, A5, 64, 4C, AD, + A0, 0D, 06, 45, 40, 05, 77, 33, 3D, + A0, 0D, 06, 45, 4A, 00, 00, 00, 00, + A0, 0D, 06, 45, 49, 00, 00, 00, 00, + A0, 0D, 06, 46, 45, 39, 12, 00, 00, + A0, 0D, 06, 46, 44, 00, 34, 52, 01, + A0, 0D, 06, 47, 43, A5, 64, 4C, ED, + A0, 0D, 06, 47, 40, 05, 77, 33, 3D, + A0, 0D, 06, 47, 4A, 20, AA, 0B, 81, + A0, 0D, 06, 47, 49, B5, 44, 22, 00, + A0, 0D, 06, 48, 43, A5, 64, 4C, AD, + A0, 0D, 06, 48, 40, 05, 77, 33, 3D, + A0, 0D, 06, 48, 4A, 00, 00, 00, 00, + A0, 0D, 06, 48, 49, 00, 00, 00, 00, + A0, 0D, 06, 49, 43, A5, 64, 4C, AD, + A0, 0D, 06, 49, 40, 05, 77, 33, 3D, + A0, 0D, 06, 49, 4A, 00, 00, 00, 00, + A0, 0D, 06, 49, 49, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_9={ + 20, 02, FA, 1C, + A0, 0D, 06, 4A, 8B, 48, 02, F0, 80, + A0, 0D, 06, 4A, 43, A5, 64, 4C, AD, + A0, 0D, 06, 4A, 40, 05, 77, 33, 3D, + A0, 0D, 06, 4A, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4A, 49, 00, 00, 00, 00, + A0, 0D, 06, 4B, 43, A5, 64, 4C, 6D, + A0, 0D, 06, 4C, 44, 00, 34, 52, 01, + A0, 0D, 06, 4C, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4C, 49, 00, 00, 00, 00, + A0, 0D, 06, 4C, 40, 85, 51, 33, 3D, + A0, 0D, 06, 4D, 44, 00, 34, 52, 01, + A0, 0D, 06, 4D, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4D, 49, 00, 00, 00, 00, + A0, 0D, 06, 4D, 40, 85, 51, 33, 3D, + A0, 0D, 06, 4E, 45, 31, 12, 00, 00, + A0, 0D, 03, 4E, 7C, 50, + A0, 0D, 06, 4E, 8D, 00, 00, 00, 06, + A0, 0D, 06, 4E, 8B, 00, A2, 24, 00, + A0, 0D, 06, 4E, 89, 7D, 84, 05, 08, + A0, 0D, 06, 4E, 44, 00, B0, 66, 01, + A0, 0D, 06, 4E, 43, A5, 64, 5C, AD, + A0, 0D, 06, 4E, 41, FD, FF, 5F, F0, + A0, 0D, 06, 4E, 40, 07, 77, 33, 3D, + A0, 0D, 06, 4F, 4A, 2A, 8E, 8D, 2A, + A0, 0D, 06, 4F, 49, 5D, 27, 27, 00, + A0, 0D, 06, 50, 4A, 00, 00, 00, 00, + A0, 0D, 06, 50, 49, 00, 00, 00, 00, + A0, 0D, 06, 52, 4A, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_10={ + 20, 02, FD, 1C, + A0, 0D, 06, 52, 49, 00, 00, 00, 00, + A0, 0D, 06, 53, 4A, 00, 00, 00, 00, + A0, 0D, 06, 53, 49, 00, 00, 00, 00, + A0, 0D, 06, 60, 4E, FF, FF, FF, 01, + A0, 0D, 06, 60, 4F, FF, FF, FF, 01, + A0, 0D, 06, 60, 50, FF, FF, FF, 3F, + A0, 0D, 06, 80, 7D, A0, 00, 9E, BB, + A0, 0D, 06, 80, 80, B8, 5A, 0D, 00, + A0, 0D, 06, 80, C9, 30, 00, 00, 00, + A0, 0D, 06, 8C, 80, B8, 5A, 0D, 00, + A0, 0D, 06, 90, 4F, FF, FF, FF, 01, + A0, 0D, 06, 90, 4E, FF, FF, FF, 01, + A0, 0D, 06, 90, 39, 3F, 00, 00, 7F, + A0, 0D, 06, 9B, A9, 84, 00, 00, 00, + A0, 0D, 06, 9B, A1, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 99, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 95, FF, 00, 0F, 00, + A0, 0D, 06, 9B, A5, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 9D, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9B, 4F, FF, FF, FF, 01, + A0, 0D, 06, 9B, 4E, FF, FF, FF, 01, + A0, 0D, 06, 91, D4, F8, 84, EF, 03, + A0, 0D, 06, 91, D2, 4A, 4A, 4B, 38, + A0, 0D, 06, 9C, A9, 84, 00, 00, 00, + A0, 0D, 06, 9C, A1, 7F, 22, 5F, 00, + A0, 0D, 06, 9C, 99, 7F, 22, 7F, 7F, + A0, 0D, 06, 9C, 95, FF, 00, 0F, 00 +} + +NXP_RF_CONF_BLK_11={ + 20, 02, F5, 17, + A0, 0D, 06, 9C, A5, 7F, 22, 5F, 00, + A0, 0D, 06, 9C, 9D, 7F, 22, 7F, 7F, + A0, 0D, 06, 9C, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9C, 4F, 9F, 88, FF, 01, + A0, 0D, 06, 9C, 4E, 9F, 88, FF, 01, + A0, 0D, 06, 95, D4, F8, 84, 75, 00, + A0, 0D, 06, 95, D2, 4A, 4B, 4B, 58, + A0, 0D, 06, 9D, A9, 84, 00, 00, 00, + A0, 0D, 06, 9D, A1, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 99, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 95, FF, 00, 0F, 00, + A0, 0D, 06, 9D, A5, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 9D, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9D, 4F, FF, FF, FF, 01, + A0, 0D, 06, 9D, 4E, FF, FF, FF, 01, + A0, 0D, 06, 99, D4, F8, 04, E4, 01, + A0, 0D, 06, 99, D2, 4A, 4B, 4B, 48, + A0, AF, 09, 10, 5F, 00, 18, 10, 5F, 00, 18, 00, + A0, 92, 28, 37, 00, 1B, 00, FC, 81, 0F, 00, 22, 80, 0F, 00, 14, 00, 20, 70, EA, 01, 43, 18, 32, 16, 78, 30, 0D, 00, 03, 55, EA, 05, 01, 04, 68, 02, 3F, 92, 04, 00, 0C, 13, + A0, 1F, 06, 63, 00, 42, 00, 14, 00, + A0, 9A, 02, 95, 01, + A0, 99, 0A, 03, 00, 80, 00, 00, 80, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_12={ + 20, 02, 3B, 03, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, D0, 07, 00, 0F, FF, 7F, 00, 0F, FF, 7F, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A0, 0D, 03, 61, 09, 7E, + A0, 85, 04, 58, 08, A8, AC +} + +## DLMA Enable | VDDPA 3.9 +## LMA (CLK) A+B - (CLK-LESS) A/B/F 32 - 57.7/28.2/55.3 | RSSI 0x134F | H 8A/m +## LPDET 150 | NFCLD 300 | Ratio 43 | GreenCar 600 +## Tx first entry 3/6 +NXP_RF_CONF_BLK_13={ + 20, 02, F2, 04, + A0, AF, 09, 11, 20, 00, 18, 11, 20, 00, 18, 00, + A0, 98, 08, 20, 4F, 13, 80, 18, 39, 1C, 37, + A0, 34, C8, 23, 04, 3D, 01, 04, 19, CB, 05, 00, 00, 3E, 07, 00, 00, B0, 08, 00, 00, B0, 08, 00, 00, E5, 09, 00, 00, E5, 09, 00, 00, 58, 0B, 00, 00, 58, 0B, 00, 00, E1, 0D, 00, 00, 4B, 10, 00, 00, 4B, 10, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 06, 19, B9, 00, 00, 00, 35, 01, 00, 00, CF, 01, 00, 00, 2C, 02, 00, 00, C7, 02, 00, 00, 23, 03, 00, 00, DD, 03, 00, 00, 30, 05, 00, 00, 00, 07, 00, 00, A8, 09, 00, 00, 7B, 0E, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, + A0, 9E, 0C, 07, 4F, 13, 96, 00, 2C, 01, 2B, 58, 02, 00, 00 +} +NXP_RF_CONF_BLK_14={ + 20, 02, F1, 01, + A0, A9, ED, 00, 2A, FF, 01, 24, FF, 02, 1F, FF, 03, 1A, FF, 04, 16, FF, 05, 12, FF, 06, 0F, FF, 07, 0C, FF, 08, 09, FF, 09, 07, FF, 0A, 05, FF, 0B, 03, FF, 0C, 01, FF, 0D, 00, F5, 0E, 00, DC, 0F, 00, C6, 10, 00, B3, 11, 00, A2, 12, 00, 92, 13, 00, 84, 14, 00, 77, 15, 00, 6B, 16, 00, 60, 17, 00, 57, 18, 00, 4E, 19, 00, 46, 1A, 00, 3F, 1B, 00, 39, 1C, 00, 33, 1D, 00, 2E, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A +} + + +NXP_RF_CONF_MAX_NUM=14 + +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_SET_CONFIG_ALWAYS=0x01 + +############################################################################### +# Core configuration rf field filter settings to enable set to 01 to disable set to 00 last bit +#NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 00} + +############################################################################### +# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set +# to 0x00 +#NXP_I2C_FRAGMENTATION_ENABLED=0x00 + +############################################################################### +# Core configuration extensions +# It includes +# Wired mode settings A0ED, A0EE +# Tag Detector A040, A041, A043 +# Low Power mode A007 +# Clock settings A002, A003 +# PbF settings A008 +# Clock timeout settings A004 +# eSE (SVDD) PWR REQ settings A0F2 +# Window size A0D8 +# DWP Speed A0D5 +# How eSE connected to PN553 A012 +# UICC2 bit rate A0D1 +# SWP1A interface A0D4 +# DWP intf behavior config, SVDD Load activated by default if set to 0x31 A037 +# Low power tag detection LPTD for power reduction A068 +NXP_CORE_CONF_EXTN={20, 02, 3F, 05, + A0, EC, 01, 01, + A0, ED, 01, 01, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, 00, 02, 00, 0F, 00, 02, 00, 0F, A0, 00, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A1, 13, 01, 32, + A0, 80, 02, FA, 00 +} +# A0, F2, 01, 01, +# A0, 40, 01, 01, +# A0, 41, 01, 02, +# A0, 43, 01, 04, +# A0, 02, 01, 01, +# A0, 03, 01, 11, +# A0, 07, 01, 03, +# A0, 08, 01, 01 +# } + +############################################################################### +# Core configuration settings +NXP_CORE_CONF={ 20, 02, 37, 11, + 28, 01, 00, + 21, 01, 00, + 30, 01, 08, + 31, 01, 03, + 32, 01, 60, + 38, 01, 01, + 33, 04, 01, 02, 03, 04, + 54, 01, 06, + 50, 01, 02, + 5B, 01, 00, + 3E, 01, 00, + 80, 01, 01, + 81, 01, 01, + 82, 01, 0E, + 18, 01, 01, + 68, 01, 01, + 85, 01, 01 + } + +############################################################################### +#set autonomous mode +# disable autonomous 0x00 +# enable autonomous 0x01 +NXP_AUTONOMOUS_ENABLE=0x00 +############################################################################### +#set Guard Timer +# Gurad Timer range to 0x0F-0xFF(i.e.15-255 seconds) +NXP_GUARD_TIMER_VALUE=0x0F +############################################################################### +#Enable SWP full power mode when phone is power off +#NXP_SWP_FULL_PWR_ON=0x00 + +################################################################################ +#This is used to configure UICC2 at boot time. +# UICC2 0x03 +NXP_DEFAULT_UICC2_SELECT=0x03 +############################################################################### +# CE when Screen state is locked +# This setting is for DEFAULT_AID_ROUTE, +# DEFAULT_DESFIRE_ROUTE and DEFAULT_MIFARE_CLT_ROUTE +# Disable 0x00 +# Enable 0x01 +NXP_CE_ROUTE_STRICT_DISABLE=0x01 + +############################################################################### +#Timeout in secs +NXP_SWP_RD_TAG_OP_TIMEOUT=20 + +############################################################################### +#Set the default AID route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_AID_ROUTE=0x01 + +############################################################################### +#Set the ISODEP (Mifare Desfire) route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_ISODEP_ROUTE=0x01 + +############################################################################### +#Set the Mifare CLT route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_MIFARE_CLT_ROUTE=0x01 + +############################################################################### +#Set the Felica CLT route Location : +#This settings will be used when application does not set this parameter +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_FELICA_CLT_ROUTE=0x01 + +############################################################################### +#Set the default AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_AID_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare Desfire Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_DESFIRE_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_MIFARE_CLT_PWR_STATE=0x3B + +############################################################################### +#Set the Felica CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_FELICA_CLT_PWR_STATE=0x3B +############################################################################### +#Set the T4TNfcee AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_T4TNFCEE_AID_POWER_STATE=0x3B + +############################################################################### +#Set the default Felica T3T System Code OffHost route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_SYS_CODE_ROUTE=0x01 +############################################################################### +# AID Matching platform options +# AID_MATCHING_L 0x01 +# AID_MATCHING_K 0x02 +#AID_MATCHING_PLATFORM=0x01 +############################################################################### +# P61 interface options +# SPI 0x02 +NXP_P61_LS_DEFAULT_INTERFACE=0x02 + +############################################################################### +#CHINA_TIANJIN_RF_SETTING +#Enable 0x01 +#Disable 0x00 +#NXP_CHINA_TIANJIN_RF_ENABLED=0x01 +############################################################################### +#SWP_SWITCH_TIMEOUT_SETTING +# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60]. +# Timeout in milliseconds, for example +# No Timeout 0x00 +# 10 millisecond timeout 0x0A +#NXP_SWP_SWITCH_TIMEOUT=0x0A +############################################################################### +# Flashing Options Configurations +# FLASH_UPPER_VERSION 0x01 +# FLASH_DIFFERENT_VERSION 0x02 +# FLASH_ALWAYS 0x03 +NXP_FLASH_CONFIG=0x02 + +############################################################################### +# P61 interface options for JCOP Download +# SPI 0x02 +NXP_P61_JCOP_DEFAULT_INTERFACE=0x02 + +############################################################################### +# Option to perform LS update every boot +# Enable 0x01 +# Disable 0x00 +NXP_LS_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Option to perform JCOP update every boot +# Enable 0x01 +# Disable 0x00 +NXP_JCOP_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Bail out mode +# If set to 1, NFCC is using bail out mode for either Type A or Type B poll. +# Set this parameter value to 1 if Android Beam is enabled, else set to 0. +NFA_POLL_BAIL_OUT_MODE=0x00 + +############################################################################### +# White list of Hosts +# This values will be the Hosts(NFCEEs) in the HCI Network. +DEVICE_HOST_WHITE_LIST={C0, 80} + +############################################################################### +# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1. +# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm +# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block +# 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check +# command is sent waiting for rsp and ntf. +PRESENCE_CHECK_ALGORITHM=2 +############################################################################### +# Options to Fallback to alternative route +# Disable 0x00 +# DH 0x01 +# ESE 0x02 +NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01 +############################################################################### +# Vendor Specific Proprietary Protocol & Discovery Configuration +# Set to 0xFF if unsupported +# byte[0] NCI_PROTOCOL_18092_ACTIVE +# byte[1] NCI_PROTOCOL_B_PRIME +# byte[2] NCI_PROTOCOL_DUAL +# byte[3] NCI_PROTOCOL_15693 +# byte[4] NCI_PROTOCOL_KOVIO +# byte[5] NCI_PROTOCOL_MIFARE +# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO +# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME +# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME +NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, FF, FF, FF} + +############################################################################### +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE +#Enable/Disable block number checks for china transit use case +#Enable 0x01 +#Disable 0x00 +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE=0x01 + +################################################################################################### +#This flags will enable different modes of Lx Debug based on bits of the Byte0 & Byte1 +#Byte 0: +# |_________Bit Mask_______| Debug Mode +# b7|b6|b5|b4|b3|b2|b1|b0| +# | | |X | | | | | Enable L1 Events (ISO14443-4, ISO18092) +# | | | |X | | | | Enable L2 Reader Events(ROW specific) +# | | | | |X | | | Enable Felica SystemCode +# | | | | | |X | | Enable Felica RF (all Felica CM events) +# | | | | | | |X | Enable L2 Events Card Emulation (ISO14443-3, Modulation detected, RF Field ON/OFF) +#Byte 1: +# Enable RSSI 0x01 Byte1 Byte0 +# Disable RSSI 0x00 \__ __/ +# e.g. NXP_CORE_PROP_SYSTEM_DEBUG=0x0110 ==> L1 with RSSI +NXP_CORE_PROP_SYSTEM_DEBUG=0x0000 + +############################################################################### +#Enable NXP NCI runtime parser library +#Enable 0x01 +#Disable 0x00 +NXP_NCI_PARSER_LIBRARY=0x00 + +############################################################################### +# Timeout value in milliseconds for JCOP OS download to complete +OS_DOWNLOAD_TIMEOUT_VALUE=60000 + +############################################################################### +# Forcing HOST to listen for a selected protocol +# 0x00 : Disable Host Listen +# 0x01 : Enable Host to Listen (A) for ISO-DEP tech A +# 0x02 : Enable Host to Listen (B) for ISO-DEP tech B +# 0x04 : Enable Host to Listen (F) for T3T Tag Type Protocol tech F +# 0x07 : Enable Host to Listen (ABF)for ISO-DEP tech AB & T3T Tag Type Protocol tech F +HOST_LISTEN_TECH_MASK=0x07 + +############################################################################### +# Enable forward functionality +# Disable 0x00 +# Enable 0x01 +FORWARD_FUNCTIONALITY_ENABLE=0x01 + +############################################################################### +# Configure the NFC Extras to open and use a static pipe. If the value is +# not set or set to 0, then the default is use a dynamic pipe based on a +# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value +# for each EE (ESE/SIM1/SIM2) +OFF_HOST_ESE_PIPE_ID=0x16 +OFF_HOST_SIM_PIPE_ID=0x0A +OFF_HOST_SIM2_PIPE_ID=0x23 + +############################################################################### +#Set the Felica T3T System Code Power state : +#This settings will be used when application does not set this parameter +#Update Power state as per NCI2.0 +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen On lock +# bit pos 4 = Screen off unlock +# bit pos 5 = Screen Off lock +DEFAULT_SYS_CODE_PWR_STATE=0x3B +############################################################################### +#Default Secure Element route id +DEFAULT_OFFHOST_ROUTE=0x01 + +############################################################################### +#Maximum SMB transceive wait for response +NXP_SMB_TRANSCEIVE_TIMEOUT=2000 +############################################################################### +# Firmware file type +#.so file 0x01 +#.bin file 0x02 +NXP_FW_TYPE=0x01 +############################################################################ +# Extended APDU length for ISO_DEP +ISO_DEP_MAX_TRANSCEIVE=0xFEFF +######################################################################### +# Support for Amendment I SEMS specification +# Support SEMS Amendment I 0x01 +# Support NXP LS client 0x00 +NXP_GP_AMD_I_SEMS_SUPPORTED=0x01 + +############################################################################### +#All eSE terminals shall be match with the /vendor/etc/vintf/manifest.xml file +#under android.hardware.secure_element +# The terminal name shall start from 1 +# Assign terminal number to each interface based on system config +NXP_SPI_SE_TERMINAL_NUM="eSE1" +############################################################################### +# Assign terminal number to each interface based on system config +#NXP_VISO_SE_TERMINAL_NUM="eSE3" +############################################################################### +# Assign terminal number to each interface based on system config +NXP_NFC_SE_TERMINAL_NUM="eSE2" +############################################################################### +#For static or dynamic dual UICC feature support +#Enable static dual uicc feature by setting value 0x00 +#Enable dynamic dual uicc feature by setting value 0x01 +NXP_DUAL_UICC_ENABLE=0x01 +############################################################################### +# Time to wait by DH when NFCC will report eSE Cold Temp Error. +# The value is as per the UM and in seconds +NXP_SE_COLD_TEMP_ERROR_DELAY=0x05 +############################################################################### +#OffHost ESE route location for MultiSE +#ESE = 01 +OFFHOST_ROUTE_ESE={01} +############################################################################### +#OffHost UICC route location for MultiSE +#UICC1 = 02 +#UICC2 = 03 +OFFHOST_ROUTE_UICC={02:03} + +############################################################################### +#T4T NFCEE ENABLE +#bit pos 0 = T4T NFCEE Enable +#bit pos 6 = T4T NFCEE Contactless write enable +NXP_T4T_NFCEE_ENABLE=0x01 + +############################################################################### +#CORE_SET_CONF_CMD to reset Prop Emvco Flag +NXP_PROP_RESET_EMVCO_CMD={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +#Guard time in ms for the mPOS/SCR module to process the reader start/stop req +NXP_RDR_REQ_GUARD_TIME=0 + +############################################################################### +#MW workaround to enable LPCD when EMVCO polling mode starts and disable +#while switching back to NFC Forum mode +# 0 --> Disable MW workaround +# 1 --> Enable MW workaround +NXP_RDR_DISABLE_ENABLE_LPCD=0 + +############################################################################### +# Firmware patch format, Only 1 and 5 should be set +# 0 -> NFC Default +# 1 -> EMVCO Default +# 3 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = Removal process +# 5 -> EMVCO Cert Polling, DISC_IDLE = Removal process , DISC DEACTIVATE = POWER_OFF +# 7 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = POWER_OFF +NFA_CONFIG_FORMAT=1 + +################################################################################ +# This will enable power state required for GSMA testing. +# When this is enabled , then default AID route power state is added with this power state +# If any aid with power state 0 is added, then this power state is used. +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +#DEFUALT_GSMA_PWR_STATE=0x3B + +################################################################################# +# Enable disconnect tag in screen off +# Disable 0x00 +# Enable 0x01 +NXP_DISCONNECT_TAG_IN_SCRN_OFF=0x01 +################################################################################# +############################################################################### +# Enable(0x01) or disable(0x00) non-standard tag reading +# Disable Non-standard card read 0x00 +# Enable Non-standard card read 0x01 +NXP_SUPPORT_NON_STD_CARD=0x00 +################################################################################# +# Enable(0x01) or disable(0x00) iso dep sak merge +# Disable SAK merging 0x00 +# Enable SAK merging 0x01 +NXP_ISO_DEP_MERGE_SAK=0x01 +################################################################################# +# Enable(0x01) or disable(0x00 ) for getting HW Info log over SMB wired +# Disable getting HW info log 0x00 +# Enable getting HW info log 0x01 +NXP_GET_HW_INFO_LOG=0x00 +################################################################################# +# Valid time difference range within for non-standard tag detection from first +# Activation fail to next discovery +# Note :- 1. This will take effect only when NXP_SUPPORT_NON_STD_CARD is enabled +# 2. The number will be multiplied by 100ms by MW. +# Default: +# Set to 00 if not supported +# byte[0] MIFARE_CLASSIC 100ms +# byte[1] ISO_DEP 300ms +NXP_NON_STD_CARD_TIMEDIFF={01, 03} +################################################################################# + diff --git a/proprietary/vendor/etc/libnfc-mtp-SN100_38_4MHZ.conf b/proprietary/vendor/etc/libnfc-mtp-SN100_38_4MHZ.conf new file mode 100644 index 0000000..fb651b5 --- /dev/null +++ b/proprietary/vendor/etc/libnfc-mtp-SN100_38_4MHZ.conf @@ -0,0 +1,780 @@ +#################### This file is used by NXP NFC NCI HAL ##################### +## Modified by Motorola Mobility LLC +## Version : Cypfr.4 (2021/06/09) +############################################################################### +# Application options +# Logging Levels +# NXPLOG_DEFAULT_LOGLEVEL 0x01 +# ANDROID_LOG_DEBUG 0x03 +# ANDROID_LOG_WARN 0x02 +# ANDROID_LOG_ERROR 0x01 +# ANDROID_LOG_SILENT 0x00 +NXPLOG_EXTNS_LOGLEVEL=0x03 +NXPLOG_NCIHAL_LOGLEVEL=0x03 +NXPLOG_NCIX_LOGLEVEL=0x03 +NXPLOG_NCIR_LOGLEVEL=0x03 +NXPLOG_FWDNLD_LOGLEVEL=0x03 +NXPLOG_TML_LOGLEVEL=0x03 +NFC_DEBUG_ENABLED=1 + +############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/nq-nci" + +################################################################################# +#VEN Toggle Config +#Disable = 0x00 +#Enable = 0x01 +ENABLE_VEN_TOGGLE=0x00 + +############################################################################### +# Extension for Mifare reader enable +MIFARE_READER_ENABLE=0x01 + +############################################################################### +# Mifare Reader implementation +# 0: General implementation +# 1: Legacy implementation +LEGACY_MIFARE_READER=0 + +############################################################################### +# File name for Firmware +NXP_FW_NAME="libsn100u_fw.so" + +############################################################################### +# System clock source selection configuration +#define CLK_SRC_XTAL 1 +#define CLK_SRC_PLL 2 +NXP_SYS_CLK_SRC_SEL=0x02 + +############################################################################### +# System clock frequency selection configuration +#define CLK_FREQ_13MHZ 1 +#define CLK_FREQ_19_2MHZ 2 +#define CLK_FREQ_24MHZ 3 +#define CLK_FREQ_26MHZ 4 +#define CLK_FREQ_38_4MHZ 5 +#define CLK_FREQ_52MHZ 6 +NXP_SYS_CLK_FREQ_SEL=0x02 + +############################################################################### +# The timeout value to be used for clock request acknowledgment +# min value = 0x01 to max = 0x06 +#NXP_SYS_CLOCK_TO_CFG=0x06 + +############################################################################### +# The delay to try to start PLL/XTAL when using sys clock 256/fc units = ~18.8 us +# min value = 0x01 to max = 0x1F +#NXP_CLOCK_REQ_DELAY=0x16 + +############################################################################### +# NXP proprietary settings +NXP_ACT_PROP_EXTN={2F, 02, 00} + +############################################################################### +# NFC forum profile settings +NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +# NXP TVDD configurations settings +# Allow NFCC to configure External TVDD, two configurations (1 and 2) supported, +# out of them only one can be configured at a time. +#NXP_EXT_TVDD_CFG=0x02 + +############################################################################### +#config1:SLALM, 3.3V for both RM and CM +#NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 31, 01, 01, 31, 00, 00, 00, 01, 00, D0, 0C} + +############################################################################### +#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM, +#monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms +#NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, B2, 00, B2, 1E, 1F, 00, D0, 0C} + +# *** RFBOARD30x20FN FW VERSION = 01.10.5B *** +NXP_RF_CONF_BLK_1={ + 20, 02, DB, 04, + A0, 0E, 2C, F0, 00, 3E, 11, E4, E4, E4, 00, 00, 00, 00, 00, A7, 8E, FF, FF, 18, 18, 18, 18, 0A, 00, 00, 00, 00, 02, 00, 00, 01, 00, 10, 00, 04, 00, 00, 00, 17, 40, FF, 07, 13, 07, 05, 13, + A0, A4, 85, 14, 00, 01, 00, 00, 00, 00, 03, 00, 06, 00, 0A, 00, 0D, 00, 10, 00, 14, 00, 17, 00, 1B, 00, 1E, 00, 21, 00, 25, 00, 28, 00, 2C, 00, 2F, 00, 32, 00, 36, 00, 39, 00, 3D, 00, 40, 00, 43, 00, 47, 00, 4A, 00, 4E, 00, 51, 00, 54, 00, 58, 00, 5B, 00, 5E, 00, 62, 00, 65, 00, 69, 00, 6C, 00, 6F, 00, 73, 00, 76, 00, 7A, 00, 7D, 00, 80, 00, 84, 00, 87, 00, 8B, 00, 8E, 00, 91, 00, 95, 00, 98, 00, 9C, 00, 9F, 00, A2, 00, A6, 00, A9, 00, AC, 00, B0, 00, B3, 00, B7, 00, BA, 00, BD, 00, C1, 00, C4, 00, C8, 00, CB, 00, CE, 00, D2, 00, D5, 00, + A0, A5, 0D, 3B, 3B, 3B, 3B, 3B, 3B, FF, 03, 1F, 00, 3B, 00, 00, + A0, 6A, 10, 28, 00, 28, 00, 28, 00, 28, 00, 80, 02, 80, 02, 80, 02, 80, 02 +} + +NXP_RF_CONF_BLK_2={ + 20, 02, CC, 01, + A0, 34, C8, 23, 04, 3D, 01, 0D, 0C, FA, 00, 00, 00, 90, 01, 00, 00, 26, 02, 00, 00, BC, 02, 00, 00, 52, 03, 00, 00, E8, 03, 00, 00, B0, 04, 00, 00, 40, 06, 00, 00, 98, 08, 00, 00, B8, 0B, 00, 00, 94, 11, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 0D, 0C, FA, 00, 00, 00, 90, 01, 00, 00, 26, 02, 00, 00, BC, 02, 00, 00, 52, 03, 00, 00, E8, 03, 00, 00, B0, 04, 00, 00, 40, 06, 00, 00, 98, 08, 00, 00, B8, 0B, 00, 00, 94, 11, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00 +} + +NXP_RF_CONF_BLK_3={ + 20, 02, 66, 01, + A1, 0A, 62, 14, 08, F4, 33, 00, 00, F4, 33, 00, 00, F4, 33, 00, 00, F4, 33, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00 +} + +NXP_RF_CONF_BLK_4={ + 20, 02, F1, 01, + A0, A9, ED, 40, 2A, FF, 41, 24, FF, 42, 1F, FF, 43, 1A, FF, 44, 16, FF, 45, 12, FF, 46, 0F, FF, 47, 0C, FF, 07, 2A, F1, 48, 09, FF, 08, 23, F7, 49, 07, FF, 09, 1E, F7, 4A, 05, FF, 0A, 19, FA, 4B, 03, FF, 0B, 15, FA, 4C, 01, FF, 0C, 12, F5, 0D, 0F, F2, 0E, 0C, F2, 0F, 09, F5, 10, 06, FC, 11, 06, E2, 12, 02, FB, 13, 01, F0, 14, 00, E6, 15, 00, CF, 16, 00, BA, 17, 00, A7, 18, 00, 96, 19, 00, 87, 1A, 00, 79, 1B, 00, 6C, 1C, 00, 61, 1D, 00, 57, 1E, 00, 4E, 1F, 00, 46, 20, 00, 3F, 21, 00, 38, 22, 00, 32, 23, 00, 2D, 24, 00, 28, A5, 00, 48, A6, 00, 40, A7, 00, 39, A8, 00, 33, A9, 00, 2D, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28 +} + +NXP_RF_CONF_BLK_5={ + 20, 02, C5, 02, + A0, 0B, BB, 00, 1D, 01, 14, 6A, 2A, E8, 03, E8, 03, 06, 10, 0E, 2C, 01, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 3C, 00, 00, 00, 3C, 00, 00, 00, 3C, 00, 00, 00, 00, 00, 00, 00, + A0, A6, 03, C0, 08, 08 +} + +NXP_RF_CONF_BLK_6={ + 20, 02, E9, 05, + A0, AB, 82, 27, 1B, 33, 04, 42, 04, 55, 04, 75, 04, 9E, 04, C7, 04, F0, 04, 20, 05, 4F, 05, 7F, 05, B8, 05, F2, 05, 2B, 06, 72, 06, BA, 06, 02, 07, 49, 07, 91, 07, F0, 07, 50, 08, AF, 08, 0F, 09, 6E, 09, E1, 09, 54, 0A, C6, 0A, 56, 0B, E5, 0B, 74, 0C, 04, 0D, 93, 0D, 52, 0E, 11, 0F, D0, 0F, 8F, 10, 4F, 11, 0E, 12, 2C, 13, 4B, 14, 6A, 15, 88, 16, A7, 17, C6, 18, 44, 1A, C2, 1B, 41, 1D, BF, 1E, 9D, 20, 7B, 22, 58, 24, 96, 26, D3, 28, 11, 2B, 4E, 2D, 4B, 30, 47, 33, 44, 36, 40, 39, 3D, 3C, A2, 3F, 07, 43, 6C, 46, E6, 4A, 61, 4F, + A0, A7, 0B, 00, 02, 77, 17, 1F, 1F, 1F, 0A, FF, 19, 05, + A0, A8, 38, 00, 33, 33, 10, 00, 33, 23, 10, 00, 33, 24, 10, 4B, 23, 44, 10, CF, 22, 43, 10, CF, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, 00, 33, 22, 10, C0, 22, 23, 10, 00, 33, 22, 10, C0, 22, 23, 10, + A0, 98, 08, 6E, D3, 16, 80, 2A, 6E, 6E, 6E, + A0, 9E, 0C, 0F, D3, 16, 96, 00, 2C, 01, 2B, 25, 02, 00, 00 +} + +NXP_RF_CONF_BLK_7={ + 20, 02, FB, 14, + A0, C6, 5B, 00, 00, 04, 00, 00, 00, 3C, 00, 00, 00, 20, 80, FF, 01, 00, 00, 64, 00, 00, C0, 00, 00, 00, C0, 00, 00, 00, 01, 01, 01, 20, 01, 03, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, + A0, 0D, 06, 10, C9, 30, 00, 40, 00, + A0, 0D, 03, 24, 29, 07, + A0, 0D, 03, 24, 30, 07, + A0, 0D, 03, 25, 29, 01, + A0, 0D, 03, 25, 30, 01, + A0, 0D, 06, 40, 42, F0, C1, 37, CC, + A0, 0D, 06, 41, 45, 31, 12, 00, 00, + A0, 0D, 03, 42, 7C, 54, + A0, 0D, 06, 42, 8D, 00, A0, A4, 64, + A0, 0D, 06, 42, 8B, 00, A2, 23, 00, + A0, 0D, 06, 42, 89, 7F, 12, BD, 01, + A0, 0D, 06, 42, 44, 00, B0, 66, 01, + A0, 0D, 06, 42, 43, 24, 24, 4D, ED, + A0, 0D, 06, 42, 41, FD, FF, 5F, F0, + A0, 0D, 06, 42, 40, 08, 77, 33, 3A, + A0, 0D, 06, 42, 4A, 00, 00, 00, 00, + A0, 0D, 06, 42, 49, 00, 00, 00, 00, + A0, 0D, 06, 51, 40, 12, 77, 33, 3A, + A0, 0D, 06, 43, 44, 00, 34, 52, 01 +} + +NXP_RF_CONF_BLK_8={ + 20, 02, FD, 1C, + A0, 0D, 06, 43, 43, A5, 64, 4C, AD, + A0, 0D, 06, 43, 40, 05, 77, 33, 3D, + A0, 0D, 06, 43, 4A, 00, 00, 00, 00, + A0, 0D, 06, 43, 49, 00, 00, 00, 00, + A0, 0D, 06, 44, 44, 00, 34, 52, 01, + A0, 0D, 06, 44, 43, A5, 64, 4C, AD, + A0, 0D, 06, 44, 40, 05, 77, 33, 3D, + A0, 0D, 06, 44, 4A, 00, 00, 00, 00, + A0, 0D, 06, 44, 49, 00, 00, 00, 00, + A0, 0D, 06, 45, 44, 00, 34, 52, 01, + A0, 0D, 06, 45, 43, A5, 64, 4C, AD, + A0, 0D, 06, 45, 40, 05, 77, 33, 3D, + A0, 0D, 06, 45, 4A, 00, 00, 00, 00, + A0, 0D, 06, 45, 49, 00, 00, 00, 00, + A0, 0D, 06, 46, 45, 39, 12, 00, 00, + A0, 0D, 06, 46, 44, 00, 34, 52, 01, + A0, 0D, 06, 47, 43, A5, 64, 4C, ED, + A0, 0D, 06, 47, 40, 05, 77, 33, 3D, + A0, 0D, 06, 47, 4A, 20, AA, 0B, 81, + A0, 0D, 06, 47, 49, B5, 44, 22, 00, + A0, 0D, 06, 48, 43, A5, 64, 4C, AD, + A0, 0D, 06, 48, 40, 05, 77, 33, 3D, + A0, 0D, 06, 48, 4A, 00, 00, 00, 00, + A0, 0D, 06, 48, 49, 00, 00, 00, 00, + A0, 0D, 06, 49, 43, A5, 64, 4C, AD, + A0, 0D, 06, 49, 40, 05, 77, 33, 3D, + A0, 0D, 06, 49, 4A, 00, 00, 00, 00, + A0, 0D, 06, 49, 49, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_9={ + 20, 02, FA, 1C, + A0, 0D, 06, 4A, 8B, 48, 02, F0, 80, + A0, 0D, 06, 4A, 43, A5, 64, 4C, AD, + A0, 0D, 06, 4A, 40, 05, 77, 33, 3D, + A0, 0D, 06, 4A, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4A, 49, 00, 00, 00, 00, + A0, 0D, 06, 4B, 43, A5, 64, 4C, 6D, + A0, 0D, 06, 4C, 44, 00, 34, 52, 01, + A0, 0D, 06, 4C, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4C, 49, 00, 00, 00, 00, + A0, 0D, 06, 4C, 40, 85, 51, 33, 3D, + A0, 0D, 06, 4D, 44, 00, 34, 52, 01, + A0, 0D, 06, 4D, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4D, 49, 00, 00, 00, 00, + A0, 0D, 06, 4D, 40, 85, 51, 33, 3D, + A0, 0D, 06, 4E, 45, 31, 12, 00, 00, + A0, 0D, 03, 4E, 7C, 50, + A0, 0D, 06, 4E, 8D, 00, 00, 00, 06, + A0, 0D, 06, 4E, 8B, 00, A2, 24, 00, + A0, 0D, 06, 4E, 89, 7D, 84, 05, 08, + A0, 0D, 06, 4E, 44, 00, B0, 66, 01, + A0, 0D, 06, 4E, 43, A5, 64, 5C, AD, + A0, 0D, 06, 4E, 41, FD, FF, 5F, F0, + A0, 0D, 06, 4E, 40, 07, 77, 33, 3D, + A0, 0D, 06, 4F, 4A, 2A, 8E, 8D, 2A, + A0, 0D, 06, 4F, 49, 5D, 27, 27, 00, + A0, 0D, 06, 50, 4A, 00, 00, 00, 00, + A0, 0D, 06, 50, 49, 00, 00, 00, 00, + A0, 0D, 06, 52, 4A, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_10={ + 20, 02, FD, 1C, + A0, 0D, 06, 52, 49, 00, 00, 00, 00, + A0, 0D, 06, 53, 4A, 00, 00, 00, 00, + A0, 0D, 06, 53, 49, 00, 00, 00, 00, + A0, 0D, 06, 60, 4E, FF, FF, FF, 01, + A0, 0D, 06, 60, 4F, FF, FF, FF, 01, + A0, 0D, 06, 60, 50, FF, FF, FF, 3F, + A0, 0D, 06, 80, 7D, A0, 00, 9E, BB, + A0, 0D, 06, 80, 80, B8, 5A, 0D, 00, + A0, 0D, 06, 80, C9, 30, 00, 00, 00, + A0, 0D, 06, 8C, 80, B8, 5A, 0D, 00, + A0, 0D, 06, 90, 4F, FF, FF, FF, 01, + A0, 0D, 06, 90, 4E, FF, FF, FF, 01, + A0, 0D, 06, 90, 39, 3F, 00, 00, 7F, + A0, 0D, 06, 9B, A9, 84, 00, 00, 00, + A0, 0D, 06, 9B, A1, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 99, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 95, FF, 00, 0F, 00, + A0, 0D, 06, 9B, A5, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 9D, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9B, 4F, FF, FF, FF, 01, + A0, 0D, 06, 9B, 4E, FF, FF, FF, 01, + A0, 0D, 06, 91, D4, F8, 84, EF, 03, + A0, 0D, 06, 91, D2, 4A, 4A, 4B, 38, + A0, 0D, 06, 9C, A9, 84, 00, 00, 00, + A0, 0D, 06, 9C, A1, 7F, 22, 5F, 00, + A0, 0D, 06, 9C, 99, 7F, 22, 7F, 7F, + A0, 0D, 06, 9C, 95, FF, 00, 0F, 00 +} + +NXP_RF_CONF_BLK_11={ + 20, 02, F5, 17, + A0, 0D, 06, 9C, A5, 7F, 22, 5F, 00, + A0, 0D, 06, 9C, 9D, 7F, 22, 7F, 7F, + A0, 0D, 06, 9C, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9C, 4F, 9F, 88, FF, 01, + A0, 0D, 06, 9C, 4E, 9F, 88, FF, 01, + A0, 0D, 06, 95, D4, F8, 84, 75, 00, + A0, 0D, 06, 95, D2, 4A, 4B, 4B, 58, + A0, 0D, 06, 9D, A9, 84, 00, 00, 00, + A0, 0D, 06, 9D, A1, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 99, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 95, FF, 00, 0F, 00, + A0, 0D, 06, 9D, A5, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 9D, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9D, 4F, FF, FF, FF, 01, + A0, 0D, 06, 9D, 4E, FF, FF, FF, 01, + A0, 0D, 06, 99, D4, F8, 04, E4, 01, + A0, 0D, 06, 99, D2, 4A, 4B, 4B, 48, + A0, AF, 09, 10, 5F, 00, 18, 10, 5F, 00, 18, 00, + A0, 92, 28, 37, 00, 1B, 00, FC, 81, 0F, 00, 22, 80, 0F, 00, 14, 00, 20, 70, EA, 01, 43, 18, 32, 16, 78, 30, 0D, 00, 03, 55, EA, 05, 01, 04, 68, 02, 3F, 92, 04, 00, 0C, 13, + A0, 1F, 06, 63, 00, 42, 00, 14, 00, + A0, 9A, 02, 95, 01, + A0, 99, 0A, 03, 00, 80, 00, 00, 80, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_12={ + 20, 02, 3B, 03, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, D0, 07, 00, 0F, FF, 7F, 00, 0F, FF, 7F, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A0, 0D, 03, 61, 09, 7E, + A0, 85, 04, 58, 08, A8, AC +} + +## DLMA Enable | VDDPA 3.9 +## LMA (CLK) A+B - (CLK-LESS) A/B/F 32 - 57.7/28.2/55.3 | RSSI 0x134F | H 8A/m +## LPDET 150 | NFCLD 300 | Ratio 43 | GreenCar 600 +## Tx first entry 3/6 +NXP_RF_CONF_BLK_13={ + 20, 02, F2, 04, + A0, AF, 09, 11, 20, 00, 18, 11, 20, 00, 18, 00, + A0, 98, 08, 20, 4F, 13, 80, 18, 39, 1C, 37, + A0, 34, C8, 23, 04, 3D, 01, 04, 19, CB, 05, 00, 00, 3E, 07, 00, 00, B0, 08, 00, 00, B0, 08, 00, 00, E5, 09, 00, 00, E5, 09, 00, 00, 58, 0B, 00, 00, 58, 0B, 00, 00, E1, 0D, 00, 00, 4B, 10, 00, 00, 4B, 10, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 06, 19, B9, 00, 00, 00, 35, 01, 00, 00, CF, 01, 00, 00, 2C, 02, 00, 00, C7, 02, 00, 00, 23, 03, 00, 00, DD, 03, 00, 00, 30, 05, 00, 00, 00, 07, 00, 00, A8, 09, 00, 00, 7B, 0E, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, + A0, 9E, 0C, 07, 4F, 13, 96, 00, 2C, 01, 2B, 58, 02, 00, 00 +} +NXP_RF_CONF_BLK_14={ + 20, 02, F1, 01, + A0, A9, ED, 00, 2A, FF, 01, 24, FF, 02, 1F, FF, 03, 1A, FF, 04, 16, FF, 05, 12, FF, 06, 0F, FF, 07, 0C, FF, 08, 09, FF, 09, 07, FF, 0A, 05, FF, 0B, 03, FF, 0C, 01, FF, 0D, 00, F5, 0E, 00, DC, 0F, 00, C6, 10, 00, B3, 11, 00, A2, 12, 00, 92, 13, 00, 84, 14, 00, 77, 15, 00, 6B, 16, 00, 60, 17, 00, 57, 18, 00, 4E, 19, 00, 46, 1A, 00, 3F, 1B, 00, 39, 1C, 00, 33, 1D, 00, 2E, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A +} + + +NXP_RF_CONF_MAX_NUM=14 + +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_SET_CONFIG_ALWAYS=0x01 + +############################################################################### +# Core configuration rf field filter settings to enable set to 01 to disable set to 00 last bit +#NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 00} + +############################################################################### +# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set +# to 0x00 +#NXP_I2C_FRAGMENTATION_ENABLED=0x00 + +############################################################################### +# Core configuration extensions +# It includes +# Wired mode settings A0ED, A0EE +# Tag Detector A040, A041, A043 +# Low Power mode A007 +# Clock settings A002, A003 +# PbF settings A008 +# Clock timeout settings A004 +# eSE (SVDD) PWR REQ settings A0F2 +# Window size A0D8 +# DWP Speed A0D5 +# How eSE connected to PN553 A012 +# UICC2 bit rate A0D1 +# SWP1A interface A0D4 +# DWP intf behavior config, SVDD Load activated by default if set to 0x31 A037 +# Low power tag detection LPTD for power reduction A068 +NXP_CORE_CONF_EXTN={20, 02, 3F, 05, + A0, EC, 01, 01, + A0, ED, 01, 01, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, 00, 02, 00, 0F, 00, 02, 00, 0F, A0, 00, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A1, 13, 01, 32, + A0, 80, 02, FA, 00 +} +# A0, F2, 01, 01, +# A0, 40, 01, 01, +# A0, 41, 01, 02, +# A0, 43, 01, 04, +# A0, 02, 01, 01, +# A0, 03, 01, 11, +# A0, 07, 01, 03, +# A0, 08, 01, 01 +# } + +############################################################################### +# Core configuration settings +NXP_CORE_CONF={ 20, 02, 37, 11, + 28, 01, 00, + 21, 01, 00, + 30, 01, 08, + 31, 01, 03, + 32, 01, 60, + 38, 01, 01, + 33, 04, 01, 02, 03, 04, + 54, 01, 06, + 50, 01, 02, + 5B, 01, 00, + 3E, 01, 00, + 80, 01, 01, + 81, 01, 01, + 82, 01, 0E, + 18, 01, 01, + 68, 01, 01, + 85, 01, 01 + } + +############################################################################### +#set autonomous mode +# disable autonomous 0x00 +# enable autonomous 0x01 +NXP_AUTONOMOUS_ENABLE=0x00 +############################################################################### +#set Guard Timer +# Gurad Timer range to 0x0F-0xFF(i.e.15-255 seconds) +NXP_GUARD_TIMER_VALUE=0x0F +############################################################################### +#Enable SWP full power mode when phone is power off +#NXP_SWP_FULL_PWR_ON=0x00 + +################################################################################ +#This is used to configure UICC2 at boot time. +# UICC2 0x03 +NXP_DEFAULT_UICC2_SELECT=0x03 +############################################################################### +# CE when Screen state is locked +# This setting is for DEFAULT_AID_ROUTE, +# DEFAULT_DESFIRE_ROUTE and DEFAULT_MIFARE_CLT_ROUTE +# Disable 0x00 +# Enable 0x01 +NXP_CE_ROUTE_STRICT_DISABLE=0x01 + +############################################################################### +#Timeout in secs +NXP_SWP_RD_TAG_OP_TIMEOUT=20 + +############################################################################### +#Set the default AID route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_AID_ROUTE=0x01 + +############################################################################### +#Set the ISODEP (Mifare Desfire) route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_ISODEP_ROUTE=0x01 + +############################################################################### +#Set the Mifare CLT route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_MIFARE_CLT_ROUTE=0x01 + +############################################################################### +#Set the Felica CLT route Location : +#This settings will be used when application does not set this parameter +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_FELICA_CLT_ROUTE=0x01 + +############################################################################### +#Set the default AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_AID_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare Desfire Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_DESFIRE_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_MIFARE_CLT_PWR_STATE=0x3B + +############################################################################### +#Set the Felica CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_FELICA_CLT_PWR_STATE=0x3B +############################################################################### +#Set the T4TNfcee AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_T4TNFCEE_AID_POWER_STATE=0x3B + +############################################################################### +#Set the default Felica T3T System Code OffHost route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_SYS_CODE_ROUTE=0x01 +############################################################################### +# AID Matching platform options +# AID_MATCHING_L 0x01 +# AID_MATCHING_K 0x02 +#AID_MATCHING_PLATFORM=0x01 +############################################################################### +# P61 interface options +# SPI 0x02 +NXP_P61_LS_DEFAULT_INTERFACE=0x02 + +############################################################################### +#CHINA_TIANJIN_RF_SETTING +#Enable 0x01 +#Disable 0x00 +#NXP_CHINA_TIANJIN_RF_ENABLED=0x01 +############################################################################### +#SWP_SWITCH_TIMEOUT_SETTING +# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60]. +# Timeout in milliseconds, for example +# No Timeout 0x00 +# 10 millisecond timeout 0x0A +#NXP_SWP_SWITCH_TIMEOUT=0x0A +############################################################################### +# Flashing Options Configurations +# FLASH_UPPER_VERSION 0x01 +# FLASH_DIFFERENT_VERSION 0x02 +# FLASH_ALWAYS 0x03 +NXP_FLASH_CONFIG=0x02 + +############################################################################### +# P61 interface options for JCOP Download +# SPI 0x02 +NXP_P61_JCOP_DEFAULT_INTERFACE=0x02 + +############################################################################### +# Option to perform LS update every boot +# Enable 0x01 +# Disable 0x00 +NXP_LS_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Option to perform JCOP update every boot +# Enable 0x01 +# Disable 0x00 +NXP_JCOP_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Bail out mode +# If set to 1, NFCC is using bail out mode for either Type A or Type B poll. +# Set this parameter value to 1 if Android Beam is enabled, else set to 0. +NFA_POLL_BAIL_OUT_MODE=0x00 + +############################################################################### +# White list of Hosts +# This values will be the Hosts(NFCEEs) in the HCI Network. +DEVICE_HOST_WHITE_LIST={C0, 80} + +############################################################################### +# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1. +# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm +# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block +# 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check +# command is sent waiting for rsp and ntf. +PRESENCE_CHECK_ALGORITHM=2 +############################################################################### +# Options to Fallback to alternative route +# Disable 0x00 +# DH 0x01 +# ESE 0x02 +NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01 +############################################################################### +# Vendor Specific Proprietary Protocol & Discovery Configuration +# Set to 0xFF if unsupported +# byte[0] NCI_PROTOCOL_18092_ACTIVE +# byte[1] NCI_PROTOCOL_B_PRIME +# byte[2] NCI_PROTOCOL_DUAL +# byte[3] NCI_PROTOCOL_15693 +# byte[4] NCI_PROTOCOL_KOVIO +# byte[5] NCI_PROTOCOL_MIFARE +# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO +# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME +# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME +NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, FF, FF, FF} + +############################################################################### +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE +#Enable/Disable block number checks for china transit use case +#Enable 0x01 +#Disable 0x00 +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE=0x01 + +################################################################################################### +#This flags will enable different modes of Lx Debug based on bits of the Byte0 & Byte1 +#Byte 0: +# |_________Bit Mask_______| Debug Mode +# b7|b6|b5|b4|b3|b2|b1|b0| +# | | |X | | | | | Enable L1 Events (ISO14443-4, ISO18092) +# | | | |X | | | | Enable L2 Reader Events(ROW specific) +# | | | | |X | | | Enable Felica SystemCode +# | | | | | |X | | Enable Felica RF (all Felica CM events) +# | | | | | | |X | Enable L2 Events Card Emulation (ISO14443-3, Modulation detected, RF Field ON/OFF) +#Byte 1: +# Enable RSSI 0x01 Byte1 Byte0 +# Disable RSSI 0x00 \__ __/ +# e.g. NXP_CORE_PROP_SYSTEM_DEBUG=0x0110 ==> L1 with RSSI +NXP_CORE_PROP_SYSTEM_DEBUG=0x0000 + +############################################################################### +#Enable NXP NCI runtime parser library +#Enable 0x01 +#Disable 0x00 +NXP_NCI_PARSER_LIBRARY=0x00 + +############################################################################### +# Timeout value in milliseconds for JCOP OS download to complete +OS_DOWNLOAD_TIMEOUT_VALUE=60000 + +############################################################################### +# Forcing HOST to listen for a selected protocol +# 0x00 : Disable Host Listen +# 0x01 : Enable Host to Listen (A) for ISO-DEP tech A +# 0x02 : Enable Host to Listen (B) for ISO-DEP tech B +# 0x04 : Enable Host to Listen (F) for T3T Tag Type Protocol tech F +# 0x07 : Enable Host to Listen (ABF)for ISO-DEP tech AB & T3T Tag Type Protocol tech F +HOST_LISTEN_TECH_MASK=0x07 + +############################################################################### +# Enable forward functionality +# Disable 0x00 +# Enable 0x01 +FORWARD_FUNCTIONALITY_ENABLE=0x01 + +############################################################################### +# Configure the NFC Extras to open and use a static pipe. If the value is +# not set or set to 0, then the default is use a dynamic pipe based on a +# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value +# for each EE (ESE/SIM1/SIM2) +OFF_HOST_ESE_PIPE_ID=0x16 +OFF_HOST_SIM_PIPE_ID=0x0A +OFF_HOST_SIM2_PIPE_ID=0x23 + +############################################################################### +#Set the Felica T3T System Code Power state : +#This settings will be used when application does not set this parameter +#Update Power state as per NCI2.0 +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen On lock +# bit pos 4 = Screen off unlock +# bit pos 5 = Screen Off lock +DEFAULT_SYS_CODE_PWR_STATE=0x3B +############################################################################### +#Default Secure Element route id +DEFAULT_OFFHOST_ROUTE=0x01 + +############################################################################### +#Maximum SMB transceive wait for response +NXP_SMB_TRANSCEIVE_TIMEOUT=2000 +############################################################################### +# Firmware file type +#.so file 0x01 +#.bin file 0x02 +NXP_FW_TYPE=0x01 +############################################################################ +# Extended APDU length for ISO_DEP +ISO_DEP_MAX_TRANSCEIVE=0xFEFF +######################################################################### +# Support for Amendment I SEMS specification +# Support SEMS Amendment I 0x01 +# Support NXP LS client 0x00 +NXP_GP_AMD_I_SEMS_SUPPORTED=0x01 + +############################################################################### +#All eSE terminals shall be match with the /vendor/etc/vintf/manifest.xml file +#under android.hardware.secure_element +# The terminal name shall start from 1 +# Assign terminal number to each interface based on system config +NXP_SPI_SE_TERMINAL_NUM="eSE1" +############################################################################### +# Assign terminal number to each interface based on system config +#NXP_VISO_SE_TERMINAL_NUM="eSE3" +############################################################################### +# Assign terminal number to each interface based on system config +NXP_NFC_SE_TERMINAL_NUM="eSE2" +############################################################################### +#For static or dynamic dual UICC feature support +#Enable static dual uicc feature by setting value 0x00 +#Enable dynamic dual uicc feature by setting value 0x01 +NXP_DUAL_UICC_ENABLE=0x01 +############################################################################### +# Time to wait by DH when NFCC will report eSE Cold Temp Error. +# The value is as per the UM and in seconds +NXP_SE_COLD_TEMP_ERROR_DELAY=0x05 +############################################################################### +#OffHost ESE route location for MultiSE +#ESE = 01 +OFFHOST_ROUTE_ESE={01} +############################################################################### +#OffHost UICC route location for MultiSE +#UICC1 = 02 +#UICC2 = 03 +OFFHOST_ROUTE_UICC={02:03} + +############################################################################### +#T4T NFCEE ENABLE +#bit pos 0 = T4T NFCEE Enable +#bit pos 6 = T4T NFCEE Contactless write enable +NXP_T4T_NFCEE_ENABLE=0x01 + +############################################################################### +#CORE_SET_CONF_CMD to reset Prop Emvco Flag +NXP_PROP_RESET_EMVCO_CMD={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +#Guard time in ms for the mPOS/SCR module to process the reader start/stop req +NXP_RDR_REQ_GUARD_TIME=0 + +############################################################################### +#MW workaround to enable LPCD when EMVCO polling mode starts and disable +#while switching back to NFC Forum mode +# 0 --> Disable MW workaround +# 1 --> Enable MW workaround +NXP_RDR_DISABLE_ENABLE_LPCD=0 + +############################################################################### +# Firmware patch format, Only 1 and 5 should be set +# 0 -> NFC Default +# 1 -> EMVCO Default +# 3 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = Removal process +# 5 -> EMVCO Cert Polling, DISC_IDLE = Removal process , DISC DEACTIVATE = POWER_OFF +# 7 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = POWER_OFF +NFA_CONFIG_FORMAT=1 + +################################################################################ +# This will enable power state required for GSMA testing. +# When this is enabled , then default AID route power state is added with this power state +# If any aid with power state 0 is added, then this power state is used. +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +#DEFUALT_GSMA_PWR_STATE=0x3B + +################################################################################# +# Enable disconnect tag in screen off +# Disable 0x00 +# Enable 0x01 +NXP_DISCONNECT_TAG_IN_SCRN_OFF=0x01 +################################################################################# +############################################################################### +# Enable(0x01) or disable(0x00) non-standard tag reading +# Disable Non-standard card read 0x00 +# Enable Non-standard card read 0x01 +NXP_SUPPORT_NON_STD_CARD=0x00 +################################################################################# +# Enable(0x01) or disable(0x00) iso dep sak merge +# Disable SAK merging 0x00 +# Enable SAK merging 0x01 +NXP_ISO_DEP_MERGE_SAK=0x01 +################################################################################# +# Enable(0x01) or disable(0x00 ) for getting HW Info log over SMB wired +# Disable getting HW info log 0x00 +# Enable getting HW info log 0x01 +NXP_GET_HW_INFO_LOG=0x00 +################################################################################# +# Valid time difference range within for non-standard tag detection from first +# Activation fail to next discovery +# Note :- 1. This will take effect only when NXP_SUPPORT_NON_STD_CARD is enabled +# 2. The number will be multiplied by 100ms by MW. +# Default: +# Set to 00 if not supported +# byte[0] MIFARE_CLASSIC 100ms +# byte[1] ISO_DEP 300ms +NXP_NON_STD_CARD_TIMEDIFF={01, 03} +################################################################################# + diff --git a/proprietary/vendor/etc/libnfc-nxp-pnscr.conf b/proprietary/vendor/etc/libnfc-nxp-pnscr.conf new file mode 100644 index 0000000..fb651b5 --- /dev/null +++ b/proprietary/vendor/etc/libnfc-nxp-pnscr.conf @@ -0,0 +1,780 @@ +#################### This file is used by NXP NFC NCI HAL ##################### +## Modified by Motorola Mobility LLC +## Version : Cypfr.4 (2021/06/09) +############################################################################### +# Application options +# Logging Levels +# NXPLOG_DEFAULT_LOGLEVEL 0x01 +# ANDROID_LOG_DEBUG 0x03 +# ANDROID_LOG_WARN 0x02 +# ANDROID_LOG_ERROR 0x01 +# ANDROID_LOG_SILENT 0x00 +NXPLOG_EXTNS_LOGLEVEL=0x03 +NXPLOG_NCIHAL_LOGLEVEL=0x03 +NXPLOG_NCIX_LOGLEVEL=0x03 +NXPLOG_NCIR_LOGLEVEL=0x03 +NXPLOG_FWDNLD_LOGLEVEL=0x03 +NXPLOG_TML_LOGLEVEL=0x03 +NFC_DEBUG_ENABLED=1 + +############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/nq-nci" + +################################################################################# +#VEN Toggle Config +#Disable = 0x00 +#Enable = 0x01 +ENABLE_VEN_TOGGLE=0x00 + +############################################################################### +# Extension for Mifare reader enable +MIFARE_READER_ENABLE=0x01 + +############################################################################### +# Mifare Reader implementation +# 0: General implementation +# 1: Legacy implementation +LEGACY_MIFARE_READER=0 + +############################################################################### +# File name for Firmware +NXP_FW_NAME="libsn100u_fw.so" + +############################################################################### +# System clock source selection configuration +#define CLK_SRC_XTAL 1 +#define CLK_SRC_PLL 2 +NXP_SYS_CLK_SRC_SEL=0x02 + +############################################################################### +# System clock frequency selection configuration +#define CLK_FREQ_13MHZ 1 +#define CLK_FREQ_19_2MHZ 2 +#define CLK_FREQ_24MHZ 3 +#define CLK_FREQ_26MHZ 4 +#define CLK_FREQ_38_4MHZ 5 +#define CLK_FREQ_52MHZ 6 +NXP_SYS_CLK_FREQ_SEL=0x02 + +############################################################################### +# The timeout value to be used for clock request acknowledgment +# min value = 0x01 to max = 0x06 +#NXP_SYS_CLOCK_TO_CFG=0x06 + +############################################################################### +# The delay to try to start PLL/XTAL when using sys clock 256/fc units = ~18.8 us +# min value = 0x01 to max = 0x1F +#NXP_CLOCK_REQ_DELAY=0x16 + +############################################################################### +# NXP proprietary settings +NXP_ACT_PROP_EXTN={2F, 02, 00} + +############################################################################### +# NFC forum profile settings +NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +# NXP TVDD configurations settings +# Allow NFCC to configure External TVDD, two configurations (1 and 2) supported, +# out of them only one can be configured at a time. +#NXP_EXT_TVDD_CFG=0x02 + +############################################################################### +#config1:SLALM, 3.3V for both RM and CM +#NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 31, 01, 01, 31, 00, 00, 00, 01, 00, D0, 0C} + +############################################################################### +#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM, +#monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms +#NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, B2, 00, B2, 1E, 1F, 00, D0, 0C} + +# *** RFBOARD30x20FN FW VERSION = 01.10.5B *** +NXP_RF_CONF_BLK_1={ + 20, 02, DB, 04, + A0, 0E, 2C, F0, 00, 3E, 11, E4, E4, E4, 00, 00, 00, 00, 00, A7, 8E, FF, FF, 18, 18, 18, 18, 0A, 00, 00, 00, 00, 02, 00, 00, 01, 00, 10, 00, 04, 00, 00, 00, 17, 40, FF, 07, 13, 07, 05, 13, + A0, A4, 85, 14, 00, 01, 00, 00, 00, 00, 03, 00, 06, 00, 0A, 00, 0D, 00, 10, 00, 14, 00, 17, 00, 1B, 00, 1E, 00, 21, 00, 25, 00, 28, 00, 2C, 00, 2F, 00, 32, 00, 36, 00, 39, 00, 3D, 00, 40, 00, 43, 00, 47, 00, 4A, 00, 4E, 00, 51, 00, 54, 00, 58, 00, 5B, 00, 5E, 00, 62, 00, 65, 00, 69, 00, 6C, 00, 6F, 00, 73, 00, 76, 00, 7A, 00, 7D, 00, 80, 00, 84, 00, 87, 00, 8B, 00, 8E, 00, 91, 00, 95, 00, 98, 00, 9C, 00, 9F, 00, A2, 00, A6, 00, A9, 00, AC, 00, B0, 00, B3, 00, B7, 00, BA, 00, BD, 00, C1, 00, C4, 00, C8, 00, CB, 00, CE, 00, D2, 00, D5, 00, + A0, A5, 0D, 3B, 3B, 3B, 3B, 3B, 3B, FF, 03, 1F, 00, 3B, 00, 00, + A0, 6A, 10, 28, 00, 28, 00, 28, 00, 28, 00, 80, 02, 80, 02, 80, 02, 80, 02 +} + +NXP_RF_CONF_BLK_2={ + 20, 02, CC, 01, + A0, 34, C8, 23, 04, 3D, 01, 0D, 0C, FA, 00, 00, 00, 90, 01, 00, 00, 26, 02, 00, 00, BC, 02, 00, 00, 52, 03, 00, 00, E8, 03, 00, 00, B0, 04, 00, 00, 40, 06, 00, 00, 98, 08, 00, 00, B8, 0B, 00, 00, 94, 11, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 0D, 0C, FA, 00, 00, 00, 90, 01, 00, 00, 26, 02, 00, 00, BC, 02, 00, 00, 52, 03, 00, 00, E8, 03, 00, 00, B0, 04, 00, 00, 40, 06, 00, 00, 98, 08, 00, 00, B8, 0B, 00, 00, 94, 11, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00, 7C, 15, 00, 00 +} + +NXP_RF_CONF_BLK_3={ + 20, 02, 66, 01, + A1, 0A, 62, 14, 08, F4, 33, 00, 00, F4, 33, 00, 00, F4, 33, 00, 00, F4, 33, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 20, 35, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00, 40, 1F, 00, 00 +} + +NXP_RF_CONF_BLK_4={ + 20, 02, F1, 01, + A0, A9, ED, 40, 2A, FF, 41, 24, FF, 42, 1F, FF, 43, 1A, FF, 44, 16, FF, 45, 12, FF, 46, 0F, FF, 47, 0C, FF, 07, 2A, F1, 48, 09, FF, 08, 23, F7, 49, 07, FF, 09, 1E, F7, 4A, 05, FF, 0A, 19, FA, 4B, 03, FF, 0B, 15, FA, 4C, 01, FF, 0C, 12, F5, 0D, 0F, F2, 0E, 0C, F2, 0F, 09, F5, 10, 06, FC, 11, 06, E2, 12, 02, FB, 13, 01, F0, 14, 00, E6, 15, 00, CF, 16, 00, BA, 17, 00, A7, 18, 00, 96, 19, 00, 87, 1A, 00, 79, 1B, 00, 6C, 1C, 00, 61, 1D, 00, 57, 1E, 00, 4E, 1F, 00, 46, 20, 00, 3F, 21, 00, 38, 22, 00, 32, 23, 00, 2D, 24, 00, 28, A5, 00, 48, A6, 00, 40, A7, 00, 39, A8, 00, 33, A9, 00, 2D, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28, AA, 00, 28 +} + +NXP_RF_CONF_BLK_5={ + 20, 02, C5, 02, + A0, 0B, BB, 00, 1D, 01, 14, 6A, 2A, E8, 03, E8, 03, 06, 10, 0E, 2C, 01, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 13, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 0A, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 78, 00, 00, 00, 3C, 00, 00, 00, 3C, 00, 00, 00, 3C, 00, 00, 00, 00, 00, 00, 00, + A0, A6, 03, C0, 08, 08 +} + +NXP_RF_CONF_BLK_6={ + 20, 02, E9, 05, + A0, AB, 82, 27, 1B, 33, 04, 42, 04, 55, 04, 75, 04, 9E, 04, C7, 04, F0, 04, 20, 05, 4F, 05, 7F, 05, B8, 05, F2, 05, 2B, 06, 72, 06, BA, 06, 02, 07, 49, 07, 91, 07, F0, 07, 50, 08, AF, 08, 0F, 09, 6E, 09, E1, 09, 54, 0A, C6, 0A, 56, 0B, E5, 0B, 74, 0C, 04, 0D, 93, 0D, 52, 0E, 11, 0F, D0, 0F, 8F, 10, 4F, 11, 0E, 12, 2C, 13, 4B, 14, 6A, 15, 88, 16, A7, 17, C6, 18, 44, 1A, C2, 1B, 41, 1D, BF, 1E, 9D, 20, 7B, 22, 58, 24, 96, 26, D3, 28, 11, 2B, 4E, 2D, 4B, 30, 47, 33, 44, 36, 40, 39, 3D, 3C, A2, 3F, 07, 43, 6C, 46, E6, 4A, 61, 4F, + A0, A7, 0B, 00, 02, 77, 17, 1F, 1F, 1F, 0A, FF, 19, 05, + A0, A8, 38, 00, 33, 33, 10, 00, 33, 23, 10, 00, 33, 24, 10, 4B, 23, 44, 10, CF, 22, 43, 10, CF, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, CF, 22, 43, 10, CE, 22, 43, 10, 00, 33, 22, 10, C0, 22, 23, 10, 00, 33, 22, 10, C0, 22, 23, 10, + A0, 98, 08, 6E, D3, 16, 80, 2A, 6E, 6E, 6E, + A0, 9E, 0C, 0F, D3, 16, 96, 00, 2C, 01, 2B, 25, 02, 00, 00 +} + +NXP_RF_CONF_BLK_7={ + 20, 02, FB, 14, + A0, C6, 5B, 00, 00, 04, 00, 00, 00, 3C, 00, 00, 00, 20, 80, FF, 01, 00, 00, 64, 00, 00, C0, 00, 00, 00, C0, 00, 00, 00, 01, 01, 01, 20, 01, 03, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, + A0, 0D, 06, 10, C9, 30, 00, 40, 00, + A0, 0D, 03, 24, 29, 07, + A0, 0D, 03, 24, 30, 07, + A0, 0D, 03, 25, 29, 01, + A0, 0D, 03, 25, 30, 01, + A0, 0D, 06, 40, 42, F0, C1, 37, CC, + A0, 0D, 06, 41, 45, 31, 12, 00, 00, + A0, 0D, 03, 42, 7C, 54, + A0, 0D, 06, 42, 8D, 00, A0, A4, 64, + A0, 0D, 06, 42, 8B, 00, A2, 23, 00, + A0, 0D, 06, 42, 89, 7F, 12, BD, 01, + A0, 0D, 06, 42, 44, 00, B0, 66, 01, + A0, 0D, 06, 42, 43, 24, 24, 4D, ED, + A0, 0D, 06, 42, 41, FD, FF, 5F, F0, + A0, 0D, 06, 42, 40, 08, 77, 33, 3A, + A0, 0D, 06, 42, 4A, 00, 00, 00, 00, + A0, 0D, 06, 42, 49, 00, 00, 00, 00, + A0, 0D, 06, 51, 40, 12, 77, 33, 3A, + A0, 0D, 06, 43, 44, 00, 34, 52, 01 +} + +NXP_RF_CONF_BLK_8={ + 20, 02, FD, 1C, + A0, 0D, 06, 43, 43, A5, 64, 4C, AD, + A0, 0D, 06, 43, 40, 05, 77, 33, 3D, + A0, 0D, 06, 43, 4A, 00, 00, 00, 00, + A0, 0D, 06, 43, 49, 00, 00, 00, 00, + A0, 0D, 06, 44, 44, 00, 34, 52, 01, + A0, 0D, 06, 44, 43, A5, 64, 4C, AD, + A0, 0D, 06, 44, 40, 05, 77, 33, 3D, + A0, 0D, 06, 44, 4A, 00, 00, 00, 00, + A0, 0D, 06, 44, 49, 00, 00, 00, 00, + A0, 0D, 06, 45, 44, 00, 34, 52, 01, + A0, 0D, 06, 45, 43, A5, 64, 4C, AD, + A0, 0D, 06, 45, 40, 05, 77, 33, 3D, + A0, 0D, 06, 45, 4A, 00, 00, 00, 00, + A0, 0D, 06, 45, 49, 00, 00, 00, 00, + A0, 0D, 06, 46, 45, 39, 12, 00, 00, + A0, 0D, 06, 46, 44, 00, 34, 52, 01, + A0, 0D, 06, 47, 43, A5, 64, 4C, ED, + A0, 0D, 06, 47, 40, 05, 77, 33, 3D, + A0, 0D, 06, 47, 4A, 20, AA, 0B, 81, + A0, 0D, 06, 47, 49, B5, 44, 22, 00, + A0, 0D, 06, 48, 43, A5, 64, 4C, AD, + A0, 0D, 06, 48, 40, 05, 77, 33, 3D, + A0, 0D, 06, 48, 4A, 00, 00, 00, 00, + A0, 0D, 06, 48, 49, 00, 00, 00, 00, + A0, 0D, 06, 49, 43, A5, 64, 4C, AD, + A0, 0D, 06, 49, 40, 05, 77, 33, 3D, + A0, 0D, 06, 49, 4A, 00, 00, 00, 00, + A0, 0D, 06, 49, 49, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_9={ + 20, 02, FA, 1C, + A0, 0D, 06, 4A, 8B, 48, 02, F0, 80, + A0, 0D, 06, 4A, 43, A5, 64, 4C, AD, + A0, 0D, 06, 4A, 40, 05, 77, 33, 3D, + A0, 0D, 06, 4A, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4A, 49, 00, 00, 00, 00, + A0, 0D, 06, 4B, 43, A5, 64, 4C, 6D, + A0, 0D, 06, 4C, 44, 00, 34, 52, 01, + A0, 0D, 06, 4C, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4C, 49, 00, 00, 00, 00, + A0, 0D, 06, 4C, 40, 85, 51, 33, 3D, + A0, 0D, 06, 4D, 44, 00, 34, 52, 01, + A0, 0D, 06, 4D, 4A, 00, 00, 00, 00, + A0, 0D, 06, 4D, 49, 00, 00, 00, 00, + A0, 0D, 06, 4D, 40, 85, 51, 33, 3D, + A0, 0D, 06, 4E, 45, 31, 12, 00, 00, + A0, 0D, 03, 4E, 7C, 50, + A0, 0D, 06, 4E, 8D, 00, 00, 00, 06, + A0, 0D, 06, 4E, 8B, 00, A2, 24, 00, + A0, 0D, 06, 4E, 89, 7D, 84, 05, 08, + A0, 0D, 06, 4E, 44, 00, B0, 66, 01, + A0, 0D, 06, 4E, 43, A5, 64, 5C, AD, + A0, 0D, 06, 4E, 41, FD, FF, 5F, F0, + A0, 0D, 06, 4E, 40, 07, 77, 33, 3D, + A0, 0D, 06, 4F, 4A, 2A, 8E, 8D, 2A, + A0, 0D, 06, 4F, 49, 5D, 27, 27, 00, + A0, 0D, 06, 50, 4A, 00, 00, 00, 00, + A0, 0D, 06, 50, 49, 00, 00, 00, 00, + A0, 0D, 06, 52, 4A, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_10={ + 20, 02, FD, 1C, + A0, 0D, 06, 52, 49, 00, 00, 00, 00, + A0, 0D, 06, 53, 4A, 00, 00, 00, 00, + A0, 0D, 06, 53, 49, 00, 00, 00, 00, + A0, 0D, 06, 60, 4E, FF, FF, FF, 01, + A0, 0D, 06, 60, 4F, FF, FF, FF, 01, + A0, 0D, 06, 60, 50, FF, FF, FF, 3F, + A0, 0D, 06, 80, 7D, A0, 00, 9E, BB, + A0, 0D, 06, 80, 80, B8, 5A, 0D, 00, + A0, 0D, 06, 80, C9, 30, 00, 00, 00, + A0, 0D, 06, 8C, 80, B8, 5A, 0D, 00, + A0, 0D, 06, 90, 4F, FF, FF, FF, 01, + A0, 0D, 06, 90, 4E, FF, FF, FF, 01, + A0, 0D, 06, 90, 39, 3F, 00, 00, 7F, + A0, 0D, 06, 9B, A9, 84, 00, 00, 00, + A0, 0D, 06, 9B, A1, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 99, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 95, FF, 00, 0F, 00, + A0, 0D, 06, 9B, A5, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 9D, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9B, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9B, 4F, FF, FF, FF, 01, + A0, 0D, 06, 9B, 4E, FF, FF, FF, 01, + A0, 0D, 06, 91, D4, F8, 84, EF, 03, + A0, 0D, 06, 91, D2, 4A, 4A, 4B, 38, + A0, 0D, 06, 9C, A9, 84, 00, 00, 00, + A0, 0D, 06, 9C, A1, 7F, 22, 5F, 00, + A0, 0D, 06, 9C, 99, 7F, 22, 7F, 7F, + A0, 0D, 06, 9C, 95, FF, 00, 0F, 00 +} + +NXP_RF_CONF_BLK_11={ + 20, 02, F5, 17, + A0, 0D, 06, 9C, A5, 7F, 22, 5F, 00, + A0, 0D, 06, 9C, 9D, 7F, 22, 7F, 7F, + A0, 0D, 06, 9C, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9C, 4F, 9F, 88, FF, 01, + A0, 0D, 06, 9C, 4E, 9F, 88, FF, 01, + A0, 0D, 06, 95, D4, F8, 84, 75, 00, + A0, 0D, 06, 95, D2, 4A, 4B, 4B, 58, + A0, 0D, 06, 9D, A9, 84, 00, 00, 00, + A0, 0D, 06, 9D, A1, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 99, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 95, FF, 00, 0F, 00, + A0, 0D, 06, 9D, A5, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 9D, 7F, 7F, 7F, 7F, + A0, 0D, 06, 9D, 97, FF, 00, 0F, 00, + A0, 0D, 06, 9D, 4F, FF, FF, FF, 01, + A0, 0D, 06, 9D, 4E, FF, FF, FF, 01, + A0, 0D, 06, 99, D4, F8, 04, E4, 01, + A0, 0D, 06, 99, D2, 4A, 4B, 4B, 48, + A0, AF, 09, 10, 5F, 00, 18, 10, 5F, 00, 18, 00, + A0, 92, 28, 37, 00, 1B, 00, FC, 81, 0F, 00, 22, 80, 0F, 00, 14, 00, 20, 70, EA, 01, 43, 18, 32, 16, 78, 30, 0D, 00, 03, 55, EA, 05, 01, 04, 68, 02, 3F, 92, 04, 00, 0C, 13, + A0, 1F, 06, 63, 00, 42, 00, 14, 00, + A0, 9A, 02, 95, 01, + A0, 99, 0A, 03, 00, 80, 00, 00, 80, 00, 00, 00, 00 +} + +NXP_RF_CONF_BLK_12={ + 20, 02, 3B, 03, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, D0, 07, 00, 0F, FF, 7F, 00, 0F, FF, 7F, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A0, 0D, 03, 61, 09, 7E, + A0, 85, 04, 58, 08, A8, AC +} + +## DLMA Enable | VDDPA 3.9 +## LMA (CLK) A+B - (CLK-LESS) A/B/F 32 - 57.7/28.2/55.3 | RSSI 0x134F | H 8A/m +## LPDET 150 | NFCLD 300 | Ratio 43 | GreenCar 600 +## Tx first entry 3/6 +NXP_RF_CONF_BLK_13={ + 20, 02, F2, 04, + A0, AF, 09, 11, 20, 00, 18, 11, 20, 00, 18, 00, + A0, 98, 08, 20, 4F, 13, 80, 18, 39, 1C, 37, + A0, 34, C8, 23, 04, 3D, 01, 04, 19, CB, 05, 00, 00, 3E, 07, 00, 00, B0, 08, 00, 00, B0, 08, 00, 00, E5, 09, 00, 00, E5, 09, 00, 00, 58, 0B, 00, 00, 58, 0B, 00, 00, E1, 0D, 00, 00, 4B, 10, 00, 00, 4B, 10, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 4F, 13, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 06, 19, B9, 00, 00, 00, 35, 01, 00, 00, CF, 01, 00, 00, 2C, 02, 00, 00, C7, 02, 00, 00, 23, 03, 00, 00, DD, 03, 00, 00, 30, 05, 00, 00, 00, 07, 00, 00, A8, 09, 00, 00, 7B, 0E, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, 46, 30, 00, 00, + A0, 9E, 0C, 07, 4F, 13, 96, 00, 2C, 01, 2B, 58, 02, 00, 00 +} +NXP_RF_CONF_BLK_14={ + 20, 02, F1, 01, + A0, A9, ED, 00, 2A, FF, 01, 24, FF, 02, 1F, FF, 03, 1A, FF, 04, 16, FF, 05, 12, FF, 06, 0F, FF, 07, 0C, FF, 08, 09, FF, 09, 07, FF, 0A, 05, FF, 0B, 03, FF, 0C, 01, FF, 0D, 00, F5, 0E, 00, DC, 0F, 00, C6, 10, 00, B3, 11, 00, A2, 12, 00, 92, 13, 00, 84, 14, 00, 77, 15, 00, 6B, 16, 00, 60, 17, 00, 57, 18, 00, 4E, 19, 00, 46, 1A, 00, 3F, 1B, 00, 39, 1C, 00, 33, 1D, 00, 2E, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A, 1E, 00, 2A +} + + +NXP_RF_CONF_MAX_NUM=14 + +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_SET_CONFIG_ALWAYS=0x01 + +############################################################################### +# Core configuration rf field filter settings to enable set to 01 to disable set to 00 last bit +#NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 00} + +############################################################################### +# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set +# to 0x00 +#NXP_I2C_FRAGMENTATION_ENABLED=0x00 + +############################################################################### +# Core configuration extensions +# It includes +# Wired mode settings A0ED, A0EE +# Tag Detector A040, A041, A043 +# Low Power mode A007 +# Clock settings A002, A003 +# PbF settings A008 +# Clock timeout settings A004 +# eSE (SVDD) PWR REQ settings A0F2 +# Window size A0D8 +# DWP Speed A0D5 +# How eSE connected to PN553 A012 +# UICC2 bit rate A0D1 +# SWP1A interface A0D4 +# DWP intf behavior config, SVDD Load activated by default if set to 0x31 A037 +# Low power tag detection LPTD for power reduction A068 +NXP_CORE_CONF_EXTN={20, 02, 3F, 05, + A0, EC, 01, 01, + A0, ED, 01, 01, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, 00, 02, 00, 0F, 00, 02, 00, 0F, A0, 00, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A1, 13, 01, 32, + A0, 80, 02, FA, 00 +} +# A0, F2, 01, 01, +# A0, 40, 01, 01, +# A0, 41, 01, 02, +# A0, 43, 01, 04, +# A0, 02, 01, 01, +# A0, 03, 01, 11, +# A0, 07, 01, 03, +# A0, 08, 01, 01 +# } + +############################################################################### +# Core configuration settings +NXP_CORE_CONF={ 20, 02, 37, 11, + 28, 01, 00, + 21, 01, 00, + 30, 01, 08, + 31, 01, 03, + 32, 01, 60, + 38, 01, 01, + 33, 04, 01, 02, 03, 04, + 54, 01, 06, + 50, 01, 02, + 5B, 01, 00, + 3E, 01, 00, + 80, 01, 01, + 81, 01, 01, + 82, 01, 0E, + 18, 01, 01, + 68, 01, 01, + 85, 01, 01 + } + +############################################################################### +#set autonomous mode +# disable autonomous 0x00 +# enable autonomous 0x01 +NXP_AUTONOMOUS_ENABLE=0x00 +############################################################################### +#set Guard Timer +# Gurad Timer range to 0x0F-0xFF(i.e.15-255 seconds) +NXP_GUARD_TIMER_VALUE=0x0F +############################################################################### +#Enable SWP full power mode when phone is power off +#NXP_SWP_FULL_PWR_ON=0x00 + +################################################################################ +#This is used to configure UICC2 at boot time. +# UICC2 0x03 +NXP_DEFAULT_UICC2_SELECT=0x03 +############################################################################### +# CE when Screen state is locked +# This setting is for DEFAULT_AID_ROUTE, +# DEFAULT_DESFIRE_ROUTE and DEFAULT_MIFARE_CLT_ROUTE +# Disable 0x00 +# Enable 0x01 +NXP_CE_ROUTE_STRICT_DISABLE=0x01 + +############################################################################### +#Timeout in secs +NXP_SWP_RD_TAG_OP_TIMEOUT=20 + +############################################################################### +#Set the default AID route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_AID_ROUTE=0x01 + +############################################################################### +#Set the ISODEP (Mifare Desfire) route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_ISODEP_ROUTE=0x01 + +############################################################################### +#Set the Mifare CLT route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_MIFARE_CLT_ROUTE=0x01 + +############################################################################### +#Set the Felica CLT route Location : +#This settings will be used when application does not set this parameter +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_FELICA_CLT_ROUTE=0x01 + +############################################################################### +#Set the default AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_AID_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare Desfire Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_DESFIRE_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_MIFARE_CLT_PWR_STATE=0x3B + +############################################################################### +#Set the Felica CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_FELICA_CLT_PWR_STATE=0x3B +############################################################################### +#Set the T4TNfcee AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_T4TNFCEE_AID_POWER_STATE=0x3B + +############################################################################### +#Set the default Felica T3T System Code OffHost route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_SYS_CODE_ROUTE=0x01 +############################################################################### +# AID Matching platform options +# AID_MATCHING_L 0x01 +# AID_MATCHING_K 0x02 +#AID_MATCHING_PLATFORM=0x01 +############################################################################### +# P61 interface options +# SPI 0x02 +NXP_P61_LS_DEFAULT_INTERFACE=0x02 + +############################################################################### +#CHINA_TIANJIN_RF_SETTING +#Enable 0x01 +#Disable 0x00 +#NXP_CHINA_TIANJIN_RF_ENABLED=0x01 +############################################################################### +#SWP_SWITCH_TIMEOUT_SETTING +# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60]. +# Timeout in milliseconds, for example +# No Timeout 0x00 +# 10 millisecond timeout 0x0A +#NXP_SWP_SWITCH_TIMEOUT=0x0A +############################################################################### +# Flashing Options Configurations +# FLASH_UPPER_VERSION 0x01 +# FLASH_DIFFERENT_VERSION 0x02 +# FLASH_ALWAYS 0x03 +NXP_FLASH_CONFIG=0x02 + +############################################################################### +# P61 interface options for JCOP Download +# SPI 0x02 +NXP_P61_JCOP_DEFAULT_INTERFACE=0x02 + +############################################################################### +# Option to perform LS update every boot +# Enable 0x01 +# Disable 0x00 +NXP_LS_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Option to perform JCOP update every boot +# Enable 0x01 +# Disable 0x00 +NXP_JCOP_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Bail out mode +# If set to 1, NFCC is using bail out mode for either Type A or Type B poll. +# Set this parameter value to 1 if Android Beam is enabled, else set to 0. +NFA_POLL_BAIL_OUT_MODE=0x00 + +############################################################################### +# White list of Hosts +# This values will be the Hosts(NFCEEs) in the HCI Network. +DEVICE_HOST_WHITE_LIST={C0, 80} + +############################################################################### +# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1. +# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm +# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block +# 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check +# command is sent waiting for rsp and ntf. +PRESENCE_CHECK_ALGORITHM=2 +############################################################################### +# Options to Fallback to alternative route +# Disable 0x00 +# DH 0x01 +# ESE 0x02 +NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01 +############################################################################### +# Vendor Specific Proprietary Protocol & Discovery Configuration +# Set to 0xFF if unsupported +# byte[0] NCI_PROTOCOL_18092_ACTIVE +# byte[1] NCI_PROTOCOL_B_PRIME +# byte[2] NCI_PROTOCOL_DUAL +# byte[3] NCI_PROTOCOL_15693 +# byte[4] NCI_PROTOCOL_KOVIO +# byte[5] NCI_PROTOCOL_MIFARE +# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO +# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME +# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME +NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, FF, FF, FF} + +############################################################################### +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE +#Enable/Disable block number checks for china transit use case +#Enable 0x01 +#Disable 0x00 +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE=0x01 + +################################################################################################### +#This flags will enable different modes of Lx Debug based on bits of the Byte0 & Byte1 +#Byte 0: +# |_________Bit Mask_______| Debug Mode +# b7|b6|b5|b4|b3|b2|b1|b0| +# | | |X | | | | | Enable L1 Events (ISO14443-4, ISO18092) +# | | | |X | | | | Enable L2 Reader Events(ROW specific) +# | | | | |X | | | Enable Felica SystemCode +# | | | | | |X | | Enable Felica RF (all Felica CM events) +# | | | | | | |X | Enable L2 Events Card Emulation (ISO14443-3, Modulation detected, RF Field ON/OFF) +#Byte 1: +# Enable RSSI 0x01 Byte1 Byte0 +# Disable RSSI 0x00 \__ __/ +# e.g. NXP_CORE_PROP_SYSTEM_DEBUG=0x0110 ==> L1 with RSSI +NXP_CORE_PROP_SYSTEM_DEBUG=0x0000 + +############################################################################### +#Enable NXP NCI runtime parser library +#Enable 0x01 +#Disable 0x00 +NXP_NCI_PARSER_LIBRARY=0x00 + +############################################################################### +# Timeout value in milliseconds for JCOP OS download to complete +OS_DOWNLOAD_TIMEOUT_VALUE=60000 + +############################################################################### +# Forcing HOST to listen for a selected protocol +# 0x00 : Disable Host Listen +# 0x01 : Enable Host to Listen (A) for ISO-DEP tech A +# 0x02 : Enable Host to Listen (B) for ISO-DEP tech B +# 0x04 : Enable Host to Listen (F) for T3T Tag Type Protocol tech F +# 0x07 : Enable Host to Listen (ABF)for ISO-DEP tech AB & T3T Tag Type Protocol tech F +HOST_LISTEN_TECH_MASK=0x07 + +############################################################################### +# Enable forward functionality +# Disable 0x00 +# Enable 0x01 +FORWARD_FUNCTIONALITY_ENABLE=0x01 + +############################################################################### +# Configure the NFC Extras to open and use a static pipe. If the value is +# not set or set to 0, then the default is use a dynamic pipe based on a +# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value +# for each EE (ESE/SIM1/SIM2) +OFF_HOST_ESE_PIPE_ID=0x16 +OFF_HOST_SIM_PIPE_ID=0x0A +OFF_HOST_SIM2_PIPE_ID=0x23 + +############################################################################### +#Set the Felica T3T System Code Power state : +#This settings will be used when application does not set this parameter +#Update Power state as per NCI2.0 +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen On lock +# bit pos 4 = Screen off unlock +# bit pos 5 = Screen Off lock +DEFAULT_SYS_CODE_PWR_STATE=0x3B +############################################################################### +#Default Secure Element route id +DEFAULT_OFFHOST_ROUTE=0x01 + +############################################################################### +#Maximum SMB transceive wait for response +NXP_SMB_TRANSCEIVE_TIMEOUT=2000 +############################################################################### +# Firmware file type +#.so file 0x01 +#.bin file 0x02 +NXP_FW_TYPE=0x01 +############################################################################ +# Extended APDU length for ISO_DEP +ISO_DEP_MAX_TRANSCEIVE=0xFEFF +######################################################################### +# Support for Amendment I SEMS specification +# Support SEMS Amendment I 0x01 +# Support NXP LS client 0x00 +NXP_GP_AMD_I_SEMS_SUPPORTED=0x01 + +############################################################################### +#All eSE terminals shall be match with the /vendor/etc/vintf/manifest.xml file +#under android.hardware.secure_element +# The terminal name shall start from 1 +# Assign terminal number to each interface based on system config +NXP_SPI_SE_TERMINAL_NUM="eSE1" +############################################################################### +# Assign terminal number to each interface based on system config +#NXP_VISO_SE_TERMINAL_NUM="eSE3" +############################################################################### +# Assign terminal number to each interface based on system config +NXP_NFC_SE_TERMINAL_NUM="eSE2" +############################################################################### +#For static or dynamic dual UICC feature support +#Enable static dual uicc feature by setting value 0x00 +#Enable dynamic dual uicc feature by setting value 0x01 +NXP_DUAL_UICC_ENABLE=0x01 +############################################################################### +# Time to wait by DH when NFCC will report eSE Cold Temp Error. +# The value is as per the UM and in seconds +NXP_SE_COLD_TEMP_ERROR_DELAY=0x05 +############################################################################### +#OffHost ESE route location for MultiSE +#ESE = 01 +OFFHOST_ROUTE_ESE={01} +############################################################################### +#OffHost UICC route location for MultiSE +#UICC1 = 02 +#UICC2 = 03 +OFFHOST_ROUTE_UICC={02:03} + +############################################################################### +#T4T NFCEE ENABLE +#bit pos 0 = T4T NFCEE Enable +#bit pos 6 = T4T NFCEE Contactless write enable +NXP_T4T_NFCEE_ENABLE=0x01 + +############################################################################### +#CORE_SET_CONF_CMD to reset Prop Emvco Flag +NXP_PROP_RESET_EMVCO_CMD={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +#Guard time in ms for the mPOS/SCR module to process the reader start/stop req +NXP_RDR_REQ_GUARD_TIME=0 + +############################################################################### +#MW workaround to enable LPCD when EMVCO polling mode starts and disable +#while switching back to NFC Forum mode +# 0 --> Disable MW workaround +# 1 --> Enable MW workaround +NXP_RDR_DISABLE_ENABLE_LPCD=0 + +############################################################################### +# Firmware patch format, Only 1 and 5 should be set +# 0 -> NFC Default +# 1 -> EMVCO Default +# 3 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = Removal process +# 5 -> EMVCO Cert Polling, DISC_IDLE = Removal process , DISC DEACTIVATE = POWER_OFF +# 7 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = POWER_OFF +NFA_CONFIG_FORMAT=1 + +################################################################################ +# This will enable power state required for GSMA testing. +# When this is enabled , then default AID route power state is added with this power state +# If any aid with power state 0 is added, then this power state is used. +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +#DEFUALT_GSMA_PWR_STATE=0x3B + +################################################################################# +# Enable disconnect tag in screen off +# Disable 0x00 +# Enable 0x01 +NXP_DISCONNECT_TAG_IN_SCRN_OFF=0x01 +################################################################################# +############################################################################### +# Enable(0x01) or disable(0x00) non-standard tag reading +# Disable Non-standard card read 0x00 +# Enable Non-standard card read 0x01 +NXP_SUPPORT_NON_STD_CARD=0x00 +################################################################################# +# Enable(0x01) or disable(0x00) iso dep sak merge +# Disable SAK merging 0x00 +# Enable SAK merging 0x01 +NXP_ISO_DEP_MERGE_SAK=0x01 +################################################################################# +# Enable(0x01) or disable(0x00 ) for getting HW Info log over SMB wired +# Disable getting HW info log 0x00 +# Enable getting HW info log 0x01 +NXP_GET_HW_INFO_LOG=0x00 +################################################################################# +# Valid time difference range within for non-standard tag detection from first +# Activation fail to next discovery +# Note :- 1. This will take effect only when NXP_SUPPORT_NON_STD_CARD is enabled +# 2. The number will be multiplied by 100ms by MW. +# Default: +# Set to 00 if not supported +# byte[0] MIFARE_CLASSIC 100ms +# byte[1] ISO_DEP 300ms +NXP_NON_STD_CARD_TIMEDIFF={01, 03} +################################################################################# + diff --git a/proprietary/vendor/etc/libnfc-qrd-SN100.conf b/proprietary/vendor/etc/libnfc-qrd-SN100.conf new file mode 100644 index 0000000..6054e76 --- /dev/null +++ b/proprietary/vendor/etc/libnfc-qrd-SN100.conf @@ -0,0 +1,592 @@ +#################### This file is used by NXP NFC NCI HAL ##################### +############################################################################### +# Application options +# Logging Levels +# NXPLOG_DEFAULT_LOGLEVEL 0x01 +# ANDROID_LOG_DEBUG 0x03 +# ANDROID_LOG_WARN 0x02 +# ANDROID_LOG_ERROR 0x01 +# ANDROID_LOG_SILENT 0x00 +NXPLOG_EXTNS_LOGLEVEL=0x03 +NXPLOG_NCIHAL_LOGLEVEL=0x03 +NXPLOG_NCIX_LOGLEVEL=0x03 +NXPLOG_NCIR_LOGLEVEL=0x03 +NXPLOG_FWDNLD_LOGLEVEL=0x03 +NXPLOG_TML_LOGLEVEL=0x03 +NFC_DEBUG_ENABLED=1 + +############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/nq-nci" + +################################################################################# +#VEN Toggle Config +#Disable = 0x00 +#Enable = 0x01 +ENABLE_VEN_TOGGLE=0x00 + +############################################################################### +# Extension for Mifare reader enable +MIFARE_READER_ENABLE=0x01 + +############################################################################### +# Mifare Reader implementation +# 0: General implementation +# 1: Legacy implementation +LEGACY_MIFARE_READER=0 + +############################################################################### +# File name for Firmware +NXP_FW_NAME="libsn100u_fw.so" + +############################################################################### +# System clock source selection configuration +#define CLK_SRC_XTAL 1 +#define CLK_SRC_PLL 2 +NXP_SYS_CLK_SRC_SEL=0x02 + +############################################################################### +# System clock frequency selection configuration +#define CLK_FREQ_13MHZ 1 +#define CLK_FREQ_19_2MHZ 2 +#define CLK_FREQ_24MHZ 3 +#define CLK_FREQ_26MHZ 4 +#define CLK_FREQ_38_4MHZ 5 +#define CLK_FREQ_52MHZ 6 +NXP_SYS_CLK_FREQ_SEL=0x02 + +############################################################################### +# The timeout value to be used for clock request acknowledgment +# min value = 0x01 to max = 0x06 +#NXP_SYS_CLOCK_TO_CFG=0x06 + +############################################################################### +# The delay to try to start PLL/XTAL when using sys clock 256/fc units = ~18.8 us +# min value = 0x01 to max = 0x1F +#NXP_CLOCK_REQ_DELAY=0x16 + +############################################################################### +# NXP proprietary settings +NXP_ACT_PROP_EXTN={2F, 02, 00} + +############################################################################### +# NFC forum profile settings +NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +# NXP TVDD configurations settings +# Allow NFCC to configure External TVDD, two configurations (1 and 2) supported, +# out of them only one can be configured at a time. +NXP_EXT_TVDD_CFG=0x02 + +############################################################################### +#config1:SLALM, 3.3V for both RM and CM +#NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 31, 01, 01, 31, 00, 00, 00, 01, 00, D0, 0C} + +############################################################################### +#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM, +#monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms +#NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, B2, 00, B2, 1E, 1F, 00, D0, 0C} +NXP_EXT_TVDD_CFG_2={20, 02, 30, 01, A0, 0E, 2C, F0, 00, 3E, 11, E4, E4, E4, 00, 00, 00, 00, 00, A7, 8E, FF, FF, 0F, 0F, 0F, 0F, 0A, 00, 00, 00, 00, 02, 00, 00, 01, 00, 10, 00, 04, 00, 00, 00, 17, 40, 20, 07, 13, 07, 05, 13} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_1={ +#} + +############################################################################### +# By default, the LPCD shall be enabled. +# Please check the platform specific configuration and enable it. +# NXP_RF_CONF_BLK_1={ +# 20, 02, 2E, 01, +# A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, +# 83, 04, +# 00, +# C0, 00, C0, 00, +# 00, 01, 00, 01, +# A0, 00, A0, 00, +# 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, +# 05, +# 7F, 00, +# 00, 01,00, 03 +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_2={ +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_3={ +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_4={ +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_5={ +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_6={ +#} + +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_SET_CONFIG_ALWAYS=0x01 + +############################################################################### +# Core configuration rf field filter settings to enable set to 01 to disable set to 00 last bit +#NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 00} + +############################################################################### +# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set +# to 0x00 +#NXP_I2C_FRAGMENTATION_ENABLED=0x00 + +############################################################################### +# Core configuration extensions +# It includes +# Wired mode settings A0ED, A0EE +# Tag Detector A040, A041, A043 +# Low Power mode A007 +# Clock settings A002, A003 +# PbF settings A008 +# Clock timeout settings A004 +# eSE (SVDD) PWR REQ settings A0F2 +# Window size A0D8 +# DWP Speed A0D5 +# How eSE connected to PN553 A012 +# UICC2 bit rate A0D1 +# SWP1A interface A0D4 +# DWP intf behavior config, SVDD Load activated by default if set to 0x31 A037 +# Low power tag detection LPTD for power reduction A068 +NXP_CORE_CONF_EXTN={20, 02, 3A, 04, + A0, EC, 01, 01, + A0, ED, 01, 01, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, 00, 02, 00, 0F, 00, 02, 00, 0F, A0, 00, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A0, 0A, 01, 20 +} +# A0, F2, 01, 01, +# A0, 40, 01, 01, +# A0, 41, 01, 02, +# A0, 43, 01, 04, +# A0, 02, 01, 01, +# A0, 03, 01, 11, +# A0, 07, 01, 03, +# A0, 08, 01, 01 +# } + +############################################################################### +# Core configuration settings +NXP_CORE_CONF={ 20, 02, 37, 11, + 28, 01, 00, + 21, 01, 00, + 30, 01, 08, + 31, 01, 03, + 32, 01, 60, + 38, 01, 01, + 33, 04, 01, 02, 03, 04, + 54, 01, 06, + 50, 01, 02, + 5B, 01, 00, + 3E, 01, 00, + 80, 01, 01, + 81, 01, 01, + 82, 01, 0E, + 18, 01, 01, + 68, 01, 01, + 85, 01, 01 + } + +############################################################################### +#set autonomous mode +# disable autonomous 0x00 +# enable autonomous 0x01 +NXP_AUTONOMOUS_ENABLE=0x00 +############################################################################### +#set Guard Timer +# Gurad Timer range to 0x0F-0xFF(i.e.15-255 seconds) +NXP_GUARD_TIMER_VALUE=0x0F +############################################################################### +#Enable SWP full power mode when phone is power off +#NXP_SWP_FULL_PWR_ON=0x00 + +################################################################################ +#This is used to configure UICC2 at boot time. +# UICC2 0x03 +NXP_DEFAULT_UICC2_SELECT=0x03 +############################################################################### +# CE when Screen state is locked +# This setting is for DEFAULT_AID_ROUTE, +# DEFAULT_DESFIRE_ROUTE and DEFAULT_MIFARE_CLT_ROUTE +# Disable 0x00 +# Enable 0x01 +NXP_CE_ROUTE_STRICT_DISABLE=0x01 + +############################################################################### +#Timeout in secs +NXP_SWP_RD_TAG_OP_TIMEOUT=20 + +############################################################################### +#Set the default AID route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_AID_ROUTE=0x01 + +############################################################################### +#Set the ISODEP (Mifare Desfire) route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_ISODEP_ROUTE=0x01 + +############################################################################### +#Set the Mifare CLT route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_MIFARE_CLT_ROUTE=0x01 + +############################################################################### +#Set the Felica CLT route Location : +#This settings will be used when application does not set this parameter +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_FELICA_CLT_ROUTE=0x01 + +############################################################################### +#Set the default AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_AID_PWR_STATE=0x39 + +############################################################################### +#Set the Mifare Desfire Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_DESFIRE_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_MIFARE_CLT_PWR_STATE=0x3B + +############################################################################### +#Set the Felica CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_FELICA_CLT_PWR_STATE=0x3B +############################################################################### +#Set the T4TNfcee AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_T4TNFCEE_AID_POWER_STATE=0x3B + +############################################################################### +#Set the default Felica T3T System Code OffHost route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_SYS_CODE_ROUTE=0x00 +############################################################################### +# AID Matching platform options +# AID_MATCHING_L 0x01 +# AID_MATCHING_K 0x02 +#AID_MATCHING_PLATFORM=0x01 +############################################################################### +# P61 interface options +# SPI 0x02 +NXP_P61_LS_DEFAULT_INTERFACE=0x02 + +############################################################################### +#CHINA_TIANJIN_RF_SETTING +#Enable 0x01 +#Disable 0x00 +#NXP_CHINA_TIANJIN_RF_ENABLED=0x01 +############################################################################### +#SWP_SWITCH_TIMEOUT_SETTING +# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60]. +# Timeout in milliseconds, for example +# No Timeout 0x00 +# 10 millisecond timeout 0x0A +#NXP_SWP_SWITCH_TIMEOUT=0x0A +############################################################################### +# Flashing Options Configurations +# FLASH_UPPER_VERSION 0x01 +# FLASH_DIFFERENT_VERSION 0x02 +# FLASH_ALWAYS 0x03 +NXP_FLASH_CONFIG=0x02 + +############################################################################### +# P61 interface options for JCOP Download +# SPI 0x02 +NXP_P61_JCOP_DEFAULT_INTERFACE=0x02 + +############################################################################### +# Option to perform LS update every boot +# Enable 0x01 +# Disable 0x00 +NXP_LS_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Option to perform JCOP update every boot +# Enable 0x01 +# Disable 0x00 +NXP_JCOP_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Bail out mode +# If set to 1, NFCC is using bail out mode for either Type A or Type B poll. +# Set this parameter value to 1 if Android Beam is enabled, else set to 0. +NFA_POLL_BAIL_OUT_MODE=0x00 + +############################################################################### +# White list of Hosts +# This values will be the Hosts(NFCEEs) in the HCI Network. +DEVICE_HOST_WHITE_LIST={C0, 80} + +############################################################################### +# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1. +# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm +# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block +# 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check +# command is sent waiting for rsp and ntf. +PRESENCE_CHECK_ALGORITHM=2 +############################################################################### +# Options to Fallback to alternative route +# Disable 0x00 +# DH 0x01 +# ESE 0x02 +NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01 +############################################################################### +# Vendor Specific Proprietary Protocol & Discovery Configuration +# Set to 0xFF if unsupported +# byte[0] NCI_PROTOCOL_18092_ACTIVE +# byte[1] NCI_PROTOCOL_B_PRIME +# byte[2] NCI_PROTOCOL_DUAL +# byte[3] NCI_PROTOCOL_15693 +# byte[4] NCI_PROTOCOL_KOVIO +# byte[5] NCI_PROTOCOL_MIFARE +# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO +# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME +# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME +NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, FF, FF, FF} + +############################################################################### +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE +#Enable/Disable block number checks for china transit use case +#Enable 0x01 +#Disable 0x00 +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE=0x01 + +################################################################################################### +#This flags will enable different modes of Lx Debug based on bits of the Byte0 & Byte1 +#Byte 0: +# |_________Bit Mask_______| Debug Mode +# b7|b6|b5|b4|b3|b2|b1|b0| +# | | |X | | | | | Enable L1 Events (ISO14443-4, ISO18092) +# | | | |X | | | | Enable L2 Reader Events(ROW specific) +# | | | | |X | | | Enable Felica SystemCode +# | | | | | |X | | Enable Felica RF (all Felica CM events) +# | | | | | | |X | Enable L2 Events Card Emulation (ISO14443-3, Modulation detected, RF Field ON/OFF) +#Byte 1: +# Enable RSSI 0x01 Byte1 Byte0 +# Disable RSSI 0x00 \__ __/ +# e.g. NXP_CORE_PROP_SYSTEM_DEBUG=0x0110 ==> L1 with RSSI +NXP_CORE_PROP_SYSTEM_DEBUG=0x0000 + +############################################################################### +#Enable NXP NCI runtime parser library +#Enable 0x01 +#Disable 0x00 +NXP_NCI_PARSER_LIBRARY=0x00 + +############################################################################### +# Timeout value in milliseconds for JCOP OS download to complete +OS_DOWNLOAD_TIMEOUT_VALUE=60000 + +############################################################################### +# Forcing HOST to listen for a selected protocol +# 0x00 : Disable Host Listen +# 0x01 : Enable Host to Listen (A) for ISO-DEP tech A +# 0x02 : Enable Host to Listen (B) for ISO-DEP tech B +# 0x04 : Enable Host to Listen (F) for T3T Tag Type Protocol tech F +# 0x07 : Enable Host to Listen (ABF)for ISO-DEP tech AB & T3T Tag Type Protocol tech F +HOST_LISTEN_TECH_MASK=0x07 + +############################################################################### +# Enable forward functionality +# Disable 0x00 +# Enable 0x01 +FORWARD_FUNCTIONALITY_ENABLE=0x01 + +############################################################################### +# Configure the NFC Extras to open and use a static pipe. If the value is +# not set or set to 0, then the default is use a dynamic pipe based on a +# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value +# for each EE (ESE/SIM1/SIM2) +OFF_HOST_ESE_PIPE_ID=0x16 +OFF_HOST_SIM_PIPE_ID=0x0A +OFF_HOST_SIM2_PIPE_ID=0x23 + +############################################################################### +#Set the Felica T3T System Code Power state : +#This settings will be used when application does not set this parameter +#Update Power state as per NCI2.0 +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen On lock +# bit pos 4 = Screen off unlock +# bit pos 5 = Screen Off lock +DEFAULT_SYS_CODE_PWR_STATE=0x00 +############################################################################### +#Default Secure Element route id +DEFAULT_OFFHOST_ROUTE=0x01 + +############################################################################### +#Maximum SMB transceive wait for response +NXP_SMB_TRANSCEIVE_TIMEOUT=2000 +############################################################################### +# Firmware file type +#.so file 0x01 +#.bin file 0x02 +NXP_FW_TYPE=0x01 +############################################################################ +# Extended APDU length for ISO_DEP +ISO_DEP_MAX_TRANSCEIVE=0xFEFF +######################################################################### +# Support for Amendment I SEMS specification +# Support SEMS Amendment I 0x01 +# Support NXP LS client 0x00 +NXP_GP_AMD_I_SEMS_SUPPORTED=0x01 + +############################################################################### +#All eSE terminals shall be match with the /vendor/etc/vintf/manifest.xml file +#under android.hardware.secure_element +# The terminal name shall start from 1 +# Assign terminal number to each interface based on system config +NXP_SPI_SE_TERMINAL_NUM="eSE1" +############################################################################### +# Assign terminal number to each interface based on system config +#NXP_VISO_SE_TERMINAL_NUM="eSE3" +############################################################################### +# Assign terminal number to each interface based on system config +NXP_NFC_SE_TERMINAL_NUM="eSE2" +############################################################################### +#For static or dynamic dual UICC feature support +#Enable static dual uicc feature by setting value 0x00 +#Enable dynamic dual uicc feature by setting value 0x01 +NXP_DUAL_UICC_ENABLE=0x01 +############################################################################### +# Time to wait by DH when NFCC will report eSE Cold Temp Error. +# The value is as per the UM and in seconds +NXP_SE_COLD_TEMP_ERROR_DELAY=0x05 +############################################################################### +#OffHost ESE route location for MultiSE +#ESE = 01 +OFFHOST_ROUTE_ESE={01} +############################################################################### +#OffHost UICC route location for MultiSE +#UICC1 = 02 +#UICC2 = 03 +OFFHOST_ROUTE_UICC={02:03} + +############################################################################### +#T4T NFCEE ENABLE +#bit pos 0 = T4T NFCEE Enable +#bit pos 6 = T4T NFCEE Contactless write enable +NXP_T4T_NFCEE_ENABLE=0x01 + +############################################################################### +#CORE_SET_CONF_CMD to reset Prop Emvco Flag +NXP_PROP_RESET_EMVCO_CMD={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +#Guard time in ms for the mPOS/SCR module to process the reader start/stop req +NXP_RDR_REQ_GUARD_TIME=0 + +############################################################################### +#MW workaround to enable LPCD when EMVCO polling mode starts and disable +#while switching back to NFC Forum mode +# 0 --> Disable MW workaround +# 1 --> Enable MW workaround +NXP_RDR_DISABLE_ENABLE_LPCD=0 + +############################################################################### +# Firmware patch format, Only 1 and 5 should be set +# 0 -> NFC Default +# 1 -> EMVCO Default +# 3 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = Removal process +# 5 -> EMVCO Cert Polling, DISC_IDLE = Removal process , DISC DEACTIVATE = POWER_OFF +# 7 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = POWER_OFF +NFA_CONFIG_FORMAT=1 + +################################################################################ +# This will enable power state required for GSMA testing. +# When this is enabled , then default AID route power state is added with this power state +# If any aid with power state 0 is added, then this power state is used. +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +#DEFUALT_GSMA_PWR_STATE=0x3B + +################################################################################# +# Enable disconnect tag in screen off +# Disable 0x00 +# Enable 0x01 +NXP_DISCONNECT_TAG_IN_SCRN_OFF=0x01 +################################################################################# diff --git a/proprietary/vendor/etc/libnfc-qrd-SN100_38_4MHZ.conf b/proprietary/vendor/etc/libnfc-qrd-SN100_38_4MHZ.conf new file mode 100644 index 0000000..6054e76 --- /dev/null +++ b/proprietary/vendor/etc/libnfc-qrd-SN100_38_4MHZ.conf @@ -0,0 +1,592 @@ +#################### This file is used by NXP NFC NCI HAL ##################### +############################################################################### +# Application options +# Logging Levels +# NXPLOG_DEFAULT_LOGLEVEL 0x01 +# ANDROID_LOG_DEBUG 0x03 +# ANDROID_LOG_WARN 0x02 +# ANDROID_LOG_ERROR 0x01 +# ANDROID_LOG_SILENT 0x00 +NXPLOG_EXTNS_LOGLEVEL=0x03 +NXPLOG_NCIHAL_LOGLEVEL=0x03 +NXPLOG_NCIX_LOGLEVEL=0x03 +NXPLOG_NCIR_LOGLEVEL=0x03 +NXPLOG_FWDNLD_LOGLEVEL=0x03 +NXPLOG_TML_LOGLEVEL=0x03 +NFC_DEBUG_ENABLED=1 + +############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/nq-nci" + +################################################################################# +#VEN Toggle Config +#Disable = 0x00 +#Enable = 0x01 +ENABLE_VEN_TOGGLE=0x00 + +############################################################################### +# Extension for Mifare reader enable +MIFARE_READER_ENABLE=0x01 + +############################################################################### +# Mifare Reader implementation +# 0: General implementation +# 1: Legacy implementation +LEGACY_MIFARE_READER=0 + +############################################################################### +# File name for Firmware +NXP_FW_NAME="libsn100u_fw.so" + +############################################################################### +# System clock source selection configuration +#define CLK_SRC_XTAL 1 +#define CLK_SRC_PLL 2 +NXP_SYS_CLK_SRC_SEL=0x02 + +############################################################################### +# System clock frequency selection configuration +#define CLK_FREQ_13MHZ 1 +#define CLK_FREQ_19_2MHZ 2 +#define CLK_FREQ_24MHZ 3 +#define CLK_FREQ_26MHZ 4 +#define CLK_FREQ_38_4MHZ 5 +#define CLK_FREQ_52MHZ 6 +NXP_SYS_CLK_FREQ_SEL=0x02 + +############################################################################### +# The timeout value to be used for clock request acknowledgment +# min value = 0x01 to max = 0x06 +#NXP_SYS_CLOCK_TO_CFG=0x06 + +############################################################################### +# The delay to try to start PLL/XTAL when using sys clock 256/fc units = ~18.8 us +# min value = 0x01 to max = 0x1F +#NXP_CLOCK_REQ_DELAY=0x16 + +############################################################################### +# NXP proprietary settings +NXP_ACT_PROP_EXTN={2F, 02, 00} + +############################################################################### +# NFC forum profile settings +NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +# NXP TVDD configurations settings +# Allow NFCC to configure External TVDD, two configurations (1 and 2) supported, +# out of them only one can be configured at a time. +NXP_EXT_TVDD_CFG=0x02 + +############################################################################### +#config1:SLALM, 3.3V for both RM and CM +#NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 31, 01, 01, 31, 00, 00, 00, 01, 00, D0, 0C} + +############################################################################### +#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM, +#monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms +#NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, B2, 00, B2, 1E, 1F, 00, D0, 0C} +NXP_EXT_TVDD_CFG_2={20, 02, 30, 01, A0, 0E, 2C, F0, 00, 3E, 11, E4, E4, E4, 00, 00, 00, 00, 00, A7, 8E, FF, FF, 0F, 0F, 0F, 0F, 0A, 00, 00, 00, 00, 02, 00, 00, 01, 00, 10, 00, 04, 00, 00, 00, 17, 40, 20, 07, 13, 07, 05, 13} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_1={ +#} + +############################################################################### +# By default, the LPCD shall be enabled. +# Please check the platform specific configuration and enable it. +# NXP_RF_CONF_BLK_1={ +# 20, 02, 2E, 01, +# A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, +# 83, 04, +# 00, +# C0, 00, C0, 00, +# 00, 01, 00, 01, +# A0, 00, A0, 00, +# 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, +# 05, +# 7F, 00, +# 00, 01,00, 03 +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_2={ +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_3={ +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_4={ +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_5={ +#} + +############################################################################### +# NXP RF configuration ALM/PLM settings +# This section needs to be updated with the correct values based on the platform +#NXP_RF_CONF_BLK_6={ +#} + +############################################################################### +# Set configuration optimization decision setting +# Enable = 0x01 +# Disable = 0x00 +NXP_SET_CONFIG_ALWAYS=0x01 + +############################################################################### +# Core configuration rf field filter settings to enable set to 01 to disable set to 00 last bit +#NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 00} + +############################################################################### +# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set +# to 0x00 +#NXP_I2C_FRAGMENTATION_ENABLED=0x00 + +############################################################################### +# Core configuration extensions +# It includes +# Wired mode settings A0ED, A0EE +# Tag Detector A040, A041, A043 +# Low Power mode A007 +# Clock settings A002, A003 +# PbF settings A008 +# Clock timeout settings A004 +# eSE (SVDD) PWR REQ settings A0F2 +# Window size A0D8 +# DWP Speed A0D5 +# How eSE connected to PN553 A012 +# UICC2 bit rate A0D1 +# SWP1A interface A0D4 +# DWP intf behavior config, SVDD Load activated by default if set to 0x31 A037 +# Low power tag detection LPTD for power reduction A068 +NXP_CORE_CONF_EXTN={20, 02, 3A, 04, + A0, EC, 01, 01, + A0, ED, 01, 01, + A0, 68, 2A, 06, 40, 60, 03, 19, 00, 00, 00, 00, 82, 04, 00, 00, 02, 00, 0F, 00, 02, 00, 0F, A0, 00, A0, 00, 03, FA, 00, 00, 00, 4C, 00, 14, 00, 7D, 00, 05, 7F, 00, 00, 01, 00, 03, + A0, 0A, 01, 20 +} +# A0, F2, 01, 01, +# A0, 40, 01, 01, +# A0, 41, 01, 02, +# A0, 43, 01, 04, +# A0, 02, 01, 01, +# A0, 03, 01, 11, +# A0, 07, 01, 03, +# A0, 08, 01, 01 +# } + +############################################################################### +# Core configuration settings +NXP_CORE_CONF={ 20, 02, 37, 11, + 28, 01, 00, + 21, 01, 00, + 30, 01, 08, + 31, 01, 03, + 32, 01, 60, + 38, 01, 01, + 33, 04, 01, 02, 03, 04, + 54, 01, 06, + 50, 01, 02, + 5B, 01, 00, + 3E, 01, 00, + 80, 01, 01, + 81, 01, 01, + 82, 01, 0E, + 18, 01, 01, + 68, 01, 01, + 85, 01, 01 + } + +############################################################################### +#set autonomous mode +# disable autonomous 0x00 +# enable autonomous 0x01 +NXP_AUTONOMOUS_ENABLE=0x00 +############################################################################### +#set Guard Timer +# Gurad Timer range to 0x0F-0xFF(i.e.15-255 seconds) +NXP_GUARD_TIMER_VALUE=0x0F +############################################################################### +#Enable SWP full power mode when phone is power off +#NXP_SWP_FULL_PWR_ON=0x00 + +################################################################################ +#This is used to configure UICC2 at boot time. +# UICC2 0x03 +NXP_DEFAULT_UICC2_SELECT=0x03 +############################################################################### +# CE when Screen state is locked +# This setting is for DEFAULT_AID_ROUTE, +# DEFAULT_DESFIRE_ROUTE and DEFAULT_MIFARE_CLT_ROUTE +# Disable 0x00 +# Enable 0x01 +NXP_CE_ROUTE_STRICT_DISABLE=0x01 + +############################################################################### +#Timeout in secs +NXP_SWP_RD_TAG_OP_TIMEOUT=20 + +############################################################################### +#Set the default AID route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_AID_ROUTE=0x01 + +############################################################################### +#Set the ISODEP (Mifare Desfire) route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_ISODEP_ROUTE=0x01 + +############################################################################### +#Set the Mifare CLT route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_MIFARE_CLT_ROUTE=0x01 + +############################################################################### +#Set the Felica CLT route Location : +#This settings will be used when application does not set this parameter +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_FELICA_CLT_ROUTE=0x01 + +############################################################################### +#Set the default AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_AID_PWR_STATE=0x39 + +############################################################################### +#Set the Mifare Desfire Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_DESFIRE_PWR_STATE=0x3B + +############################################################################### +#Set the Mifare CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_MIFARE_CLT_PWR_STATE=0x3B + +############################################################################### +#Set the Felica CLT Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_FELICA_CLT_PWR_STATE=0x3B +############################################################################### +#Set the T4TNfcee AID Power state : +#This settings will be used when application does not set this parameter +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +DEFAULT_T4TNFCEE_AID_POWER_STATE=0x3B + +############################################################################### +#Set the default Felica T3T System Code OffHost route Location : +#This settings will be used when application does not set this parameter +# host 0x00 +# eSE 0x01 +# UICC 0x02 +# UICC2 0x03 +DEFAULT_SYS_CODE_ROUTE=0x00 +############################################################################### +# AID Matching platform options +# AID_MATCHING_L 0x01 +# AID_MATCHING_K 0x02 +#AID_MATCHING_PLATFORM=0x01 +############################################################################### +# P61 interface options +# SPI 0x02 +NXP_P61_LS_DEFAULT_INTERFACE=0x02 + +############################################################################### +#CHINA_TIANJIN_RF_SETTING +#Enable 0x01 +#Disable 0x00 +#NXP_CHINA_TIANJIN_RF_ENABLED=0x01 +############################################################################### +#SWP_SWITCH_TIMEOUT_SETTING +# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60]. +# Timeout in milliseconds, for example +# No Timeout 0x00 +# 10 millisecond timeout 0x0A +#NXP_SWP_SWITCH_TIMEOUT=0x0A +############################################################################### +# Flashing Options Configurations +# FLASH_UPPER_VERSION 0x01 +# FLASH_DIFFERENT_VERSION 0x02 +# FLASH_ALWAYS 0x03 +NXP_FLASH_CONFIG=0x02 + +############################################################################### +# P61 interface options for JCOP Download +# SPI 0x02 +NXP_P61_JCOP_DEFAULT_INTERFACE=0x02 + +############################################################################### +# Option to perform LS update every boot +# Enable 0x01 +# Disable 0x00 +NXP_LS_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Option to perform JCOP update every boot +# Enable 0x01 +# Disable 0x00 +NXP_JCOP_FORCE_UPDATE_REQUIRED=0x00 + +############################################################################### +# Bail out mode +# If set to 1, NFCC is using bail out mode for either Type A or Type B poll. +# Set this parameter value to 1 if Android Beam is enabled, else set to 0. +NFA_POLL_BAIL_OUT_MODE=0x00 + +############################################################################### +# White list of Hosts +# This values will be the Hosts(NFCEEs) in the HCI Network. +DEVICE_HOST_WHITE_LIST={C0, 80} + +############################################################################### +# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1. +# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm +# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block +# 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check +# command is sent waiting for rsp and ntf. +PRESENCE_CHECK_ALGORITHM=2 +############################################################################### +# Options to Fallback to alternative route +# Disable 0x00 +# DH 0x01 +# ESE 0x02 +NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01 +############################################################################### +# Vendor Specific Proprietary Protocol & Discovery Configuration +# Set to 0xFF if unsupported +# byte[0] NCI_PROTOCOL_18092_ACTIVE +# byte[1] NCI_PROTOCOL_B_PRIME +# byte[2] NCI_PROTOCOL_DUAL +# byte[3] NCI_PROTOCOL_15693 +# byte[4] NCI_PROTOCOL_KOVIO +# byte[5] NCI_PROTOCOL_MIFARE +# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO +# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME +# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME +NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, FF, FF, FF} + +############################################################################### +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE +#Enable/Disable block number checks for china transit use case +#Enable 0x01 +#Disable 0x00 +#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE=0x01 + +################################################################################################### +#This flags will enable different modes of Lx Debug based on bits of the Byte0 & Byte1 +#Byte 0: +# |_________Bit Mask_______| Debug Mode +# b7|b6|b5|b4|b3|b2|b1|b0| +# | | |X | | | | | Enable L1 Events (ISO14443-4, ISO18092) +# | | | |X | | | | Enable L2 Reader Events(ROW specific) +# | | | | |X | | | Enable Felica SystemCode +# | | | | | |X | | Enable Felica RF (all Felica CM events) +# | | | | | | |X | Enable L2 Events Card Emulation (ISO14443-3, Modulation detected, RF Field ON/OFF) +#Byte 1: +# Enable RSSI 0x01 Byte1 Byte0 +# Disable RSSI 0x00 \__ __/ +# e.g. NXP_CORE_PROP_SYSTEM_DEBUG=0x0110 ==> L1 with RSSI +NXP_CORE_PROP_SYSTEM_DEBUG=0x0000 + +############################################################################### +#Enable NXP NCI runtime parser library +#Enable 0x01 +#Disable 0x00 +NXP_NCI_PARSER_LIBRARY=0x00 + +############################################################################### +# Timeout value in milliseconds for JCOP OS download to complete +OS_DOWNLOAD_TIMEOUT_VALUE=60000 + +############################################################################### +# Forcing HOST to listen for a selected protocol +# 0x00 : Disable Host Listen +# 0x01 : Enable Host to Listen (A) for ISO-DEP tech A +# 0x02 : Enable Host to Listen (B) for ISO-DEP tech B +# 0x04 : Enable Host to Listen (F) for T3T Tag Type Protocol tech F +# 0x07 : Enable Host to Listen (ABF)for ISO-DEP tech AB & T3T Tag Type Protocol tech F +HOST_LISTEN_TECH_MASK=0x07 + +############################################################################### +# Enable forward functionality +# Disable 0x00 +# Enable 0x01 +FORWARD_FUNCTIONALITY_ENABLE=0x01 + +############################################################################### +# Configure the NFC Extras to open and use a static pipe. If the value is +# not set or set to 0, then the default is use a dynamic pipe based on a +# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value +# for each EE (ESE/SIM1/SIM2) +OFF_HOST_ESE_PIPE_ID=0x16 +OFF_HOST_SIM_PIPE_ID=0x0A +OFF_HOST_SIM2_PIPE_ID=0x23 + +############################################################################### +#Set the Felica T3T System Code Power state : +#This settings will be used when application does not set this parameter +#Update Power state as per NCI2.0 +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen On lock +# bit pos 4 = Screen off unlock +# bit pos 5 = Screen Off lock +DEFAULT_SYS_CODE_PWR_STATE=0x00 +############################################################################### +#Default Secure Element route id +DEFAULT_OFFHOST_ROUTE=0x01 + +############################################################################### +#Maximum SMB transceive wait for response +NXP_SMB_TRANSCEIVE_TIMEOUT=2000 +############################################################################### +# Firmware file type +#.so file 0x01 +#.bin file 0x02 +NXP_FW_TYPE=0x01 +############################################################################ +# Extended APDU length for ISO_DEP +ISO_DEP_MAX_TRANSCEIVE=0xFEFF +######################################################################### +# Support for Amendment I SEMS specification +# Support SEMS Amendment I 0x01 +# Support NXP LS client 0x00 +NXP_GP_AMD_I_SEMS_SUPPORTED=0x01 + +############################################################################### +#All eSE terminals shall be match with the /vendor/etc/vintf/manifest.xml file +#under android.hardware.secure_element +# The terminal name shall start from 1 +# Assign terminal number to each interface based on system config +NXP_SPI_SE_TERMINAL_NUM="eSE1" +############################################################################### +# Assign terminal number to each interface based on system config +#NXP_VISO_SE_TERMINAL_NUM="eSE3" +############################################################################### +# Assign terminal number to each interface based on system config +NXP_NFC_SE_TERMINAL_NUM="eSE2" +############################################################################### +#For static or dynamic dual UICC feature support +#Enable static dual uicc feature by setting value 0x00 +#Enable dynamic dual uicc feature by setting value 0x01 +NXP_DUAL_UICC_ENABLE=0x01 +############################################################################### +# Time to wait by DH when NFCC will report eSE Cold Temp Error. +# The value is as per the UM and in seconds +NXP_SE_COLD_TEMP_ERROR_DELAY=0x05 +############################################################################### +#OffHost ESE route location for MultiSE +#ESE = 01 +OFFHOST_ROUTE_ESE={01} +############################################################################### +#OffHost UICC route location for MultiSE +#UICC1 = 02 +#UICC2 = 03 +OFFHOST_ROUTE_UICC={02:03} + +############################################################################### +#T4T NFCEE ENABLE +#bit pos 0 = T4T NFCEE Enable +#bit pos 6 = T4T NFCEE Contactless write enable +NXP_T4T_NFCEE_ENABLE=0x01 + +############################################################################### +#CORE_SET_CONF_CMD to reset Prop Emvco Flag +NXP_PROP_RESET_EMVCO_CMD={20, 02, 05, 01, A0, 44, 01, 00} + +############################################################################### +#Guard time in ms for the mPOS/SCR module to process the reader start/stop req +NXP_RDR_REQ_GUARD_TIME=0 + +############################################################################### +#MW workaround to enable LPCD when EMVCO polling mode starts and disable +#while switching back to NFC Forum mode +# 0 --> Disable MW workaround +# 1 --> Enable MW workaround +NXP_RDR_DISABLE_ENABLE_LPCD=0 + +############################################################################### +# Firmware patch format, Only 1 and 5 should be set +# 0 -> NFC Default +# 1 -> EMVCO Default +# 3 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = Removal process +# 5 -> EMVCO Cert Polling, DISC_IDLE = Removal process , DISC DEACTIVATE = POWER_OFF +# 7 -> EMVCO Polling, DISC_IDLE = POWER_OFF, DISC DEACTIVATE = POWER_OFF +NFA_CONFIG_FORMAT=1 + +################################################################################ +# This will enable power state required for GSMA testing. +# When this is enabled , then default AID route power state is added with this power state +# If any aid with power state 0 is added, then this power state is used. +# bit pos 0 = Switch On +# bit pos 1 = Switch Off +# bit pos 2 = Battery Off +# bit pos 3 = Screen off unlock +# bit pos 4 = Screen On lock +# bit pos 5 = Screen Off lock +#DEFUALT_GSMA_PWR_STATE=0x3B + +################################################################################# +# Enable disconnect tag in screen off +# Disable 0x00 +# Enable 0x01 +NXP_DISCONNECT_TAG_IN_SCRN_OFF=0x01 +################################################################################# diff --git a/proprietary/vendor/etc/libnfc-sec-nci.conf b/proprietary/vendor/etc/libnfc-sec-nci.conf new file mode 100644 index 0000000..c7dd079 --- /dev/null +++ b/proprietary/vendor/etc/libnfc-sec-nci.conf @@ -0,0 +1,93 @@ +########################## Start of libnfc-nci.conf ########################### +############################################################################### +# Application options +NFC_DEBUG_ENABLED=0 + +############################################################################### +# File used for NFA storage +NFA_STORAGE="/data/nfc" +PRESERVE_STORAGE=0x01 + +# Force tag polling for the following technology(s). +# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h. +# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B | +# NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ISO15693 | +# NFA_TECHNOLOGY_MASK_B_PRIME | NFA_TECHNOLOGY_MASK_KOVIO | +# NFA_TECHNOLOGY_MASK_ACTIVE +# +# Notable bits: +# NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */ +# NFA_TECHNOLOGY_MASK_B 0x02 /* NFC Technology B */ +# NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */ +# NFA_TECHNOLOGY_MASK_ISO15693 0x08 /* Proprietary Technology */ +# NFA_TECHNOLOGY_MASK_KOVIO 0x20 /* Proprietary Technology */ +# NFA_TECHNOLOGY_MASK_ACTIVE 0x40 /* NFC Technology Active */ +POLLING_TECH_MASK=0x6F + +############################################################################### +# Force P2P to only listen for the following technology(s). +# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h. +# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_F | +# NFA_TECHNOLOGY_MASK_ACTIVE +# +# Notable bits: +# NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */ +# NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */ +# NFA_TECHNOLOGY_MASK_ACTIVE 0x40 /* NFC Technology Active */ +P2P_LISTEN_TECH_MASK=0x44 + +UICC_LISTEN_TECH_MASK=0x07 + +HOST_LISTEN_TECH_MASK=0x07 + + +#NFA_DM_CFG + +############################################################################### +# When screen is turned off, specify the desired power state of the controller. +# 0: power-off-sleep state; DEFAULT +# 1: full-power state +# 2: screen-off card-emulation (CE4/CE3/CE1 modes are used) +SCREEN_OFF_POWER_STATE=1 +############################################################################### + +############################################################################### +# Override the stack default for NFA_EE_MAX_EE_SUPPORTED set in nfc_target.h. +# The value is set assumeing discovery of 0x00(Host), 0xC0(Ese) and 0x80(UICC). +# If a platform will exclude and SE, this value can be reduced so that the stack +# will not wait any longer than necessary. +# Maximum EE supported number +NFA_MAX_EE_SUPPORTED=3 + +############################################################################### +# Default poll duration (in ms) +# The defualt is 500ms if not set (see nfc_target.h) +#NFA_DM_DISC_DURATION_POLL=800 + +#POLL_FREQUENCY + +NFA_AID_BLOCK_ROUTE=1 + +#AID_FOR_EMPTY_SELECT + +############################################################################### +# Enable/Disable Block Route feature. +# Block Route will restrict routing to first matched rule +# Block Route enable 0x01 +# Block Route disable 0x00 +#NFA_BLOCK_ROUTE=0x00 + +############################################################################### +# AID_MATCHING constants +# AID_MATCHING_EXACT_ONLY 0x00 +# AID_MATCHING_EXACT_OR_PREFIX 0x01 +# AID_MATCHING_PREFIX_ONLY 0x02 +# AID_MATCHING_EXACT_OR_SUBSET_OR_PREFIX 0x03 +AID_MATCHING_MODE=0 + +############################################################################### +# AID Route power state for OffHost +OFFHOST_AID_ROUTE_PWR_STATE=0x3B +############################################################################### + +LEGACY_MIFARE_READER=1 diff --git a/proprietary/vendor/etc/libnfc-sec-vendor.conf b/proprietary/vendor/etc/libnfc-sec-vendor.conf new file mode 100644 index 0000000..740089c --- /dev/null +++ b/proprietary/vendor/etc/libnfc-sec-vendor.conf @@ -0,0 +1,44 @@ +#Target: SN4V +#MOTO: fogor V1 20230613 + +#Vendor common +NFA_POLL_BAIL_OUT_MODE=0 +PRESENCE_CHECK_ALGORITHM=5 +NFA_PROPRIETARY_CFG={00, 81, 82, 80, 8A, 80, 70, 74, F4} + +DEFAULT_OFFHOST_ROUTE=0x83 +OFFHOST_ROUTE_ESE={82} +OFFHOST_ROUTE_UICC={83} +DEFAULT_NFCF_ROUTE=0x83 + +DEFAULT_SYS_CODE={FE:FF} +DEFAULT_ROUTE=0x83 +OFF_HOST_SIM_PIPE_ID=0x06 +ISO_DEP_MAX_TRANSCEIVE=0xFEFF +DEFAULT_ISODEP_ROUTE=0x83 + +#LSI +DEFAULT_SIMSLOT=1 +FW_CFG_CLK_SPEED=0x11 +FW_BASE_ADDRESS=0x2000 +WAKEUP_DELAY=20 +FW_DIR_PATH="/vendor/firmware/" +FW_FILE_NAME="sec_s3nrn4v_firmware.bin" +RF_HW_DIR_PATH="/vendor/etc/" +RF_HW_FILE_NAME="sec_s3nrn4v_hwreg.bin" +RF_SW_DIR_PATH="/vendor/etc/" +RF_SW_FILE_NAME="sec_s3nrn4v_swreg.bin" +POWER_DRIVER="/dev/sec-nfc" +TRANS_DRIVER="/dev/sec-nfc" +TRACE_LEVEL=0 +DATA_TRACE=0 +SLEEP_TIMEOUT=1000 +FW_UPDATE_MODE=0 + +# Cold reset +ESE_DELAY=0x7D0 +CP_TRIGGER_TYPE=1 +CP_DEFAULT_TYPE=1 +COLDRESET_SUPPORT=1 +AP_COLDRESET_ENABLE=1 +CP_COLDRESET_ENABLE=1 diff --git a/proprietary/vendor/etc/motorola/12m/chipone-icnl9916c_120hz_hd_plus_vid-primary-fogos.ini b/proprietary/vendor/etc/motorola/12m/chipone-icnl9916c_120hz_hd_plus_vid-primary-fogos.ini new file mode 100644 index 0000000..d7cf339 --- /dev/null +++ b/proprietary/vendor/etc/motorola/12m/chipone-icnl9916c_120hz_hd_plus_vid-primary-fogos.ini @@ -0,0 +1,35 @@ +; +; Chipone touchscreen test config file +; + +[TEST-ITEM] +TEST-INT-PIN=1 +TEST-RESET-PIN=1 +TEST-DEVICE-TYPE=0 +TEST-FW-VERSION=0 +TEST-RAWDATA=1 +TEST-NOISE=1 +TEST-OPEN=1 +TEST-SHORT=1 +TEST-COMPENSATE-CAP=1 + +[TEST-PARAM] +DEVICE-TYPE=ICNL9916C +FW-VERSION=0x010B +RAWDATA-MIN=1202 +RAWDATA-MAX=2903 +RAWDATA-FRAMES=1 +NOISE-MAX=99 +NOISE-FRAMES=50 +OPEN-MIN=1700 +OPEN-MAX=65535 +SHORT-MIN=1700 +SHORT-MAX=65535 +SHORT-DISPLAY-ON=1 +SHORT-DISABLE-GAS=0 +COMPENSATE-CAP-MIN=1 +COMPENSATE-CAP-MAX=126 + + +[INVALID_NODE] + diff --git a/proprietary/vendor/etc/nfc_calibration.txt b/proprietary/vendor/etc/nfc_calibration.txt new file mode 100644 index 0000000..599dfc3 --- /dev/null +++ b/proprietary/vendor/etc/nfc_calibration.txt @@ -0,0 +1,80 @@ +# ---------------------------------------------- +# Test name: SN1X0_SPC +# Description: runs SPC +# Revision: 2.00 +# Date: 27/07/2020 +# Tool rev: 1.12 or later +# ---------------------------------------------- + +version +interval 200 +reset 1 + +#// NCI CORE RESET CMD +send 20000100 +receive + +#// NCI CORE INIT CMD +send 2001020000 + +#// NCI CORE SETCONFIG CMD: +send 20020401850101 + +#// NCI SYSTEM ENABLE PROPRIETARY CMD +send 2F0200 + +#// READ OFFSET BEFORE SPC +send 20030301A017 + +#//SET Normal Polling +send 20022E01A0682A064060031900000000030400C009C00900010001A000A00003FA0000004C0014007D00057F0000010003 + +#// SET SPC 1RST STEP (SPC CALIBRATION) +#//send 2F3D0F3000E02E3251000000001D0000121F +#// COPY SPC CMD (2F3D0F3XXXXX) HERE +#//send 2F3D0F3000E02E3251760A28A27D0000121F +send 2F3D0F3000E02E3251A40C2EAA7D0000121F +#// send 2F3D0XXXXXXXXXXX + +#// SPC CMD [PLL sweep] input clock 19.2MHz +send 2F3D7E3001C08C0466C08C0366C08C0266C08C0166C08C0066008D0466008D0366008D0266008D0166008D0066408D0466408D0366408D0266408D0166408D0066808D0466808D0366808D0266808D0166808D0066C08D0466C08D0366C08D0266C08D0166C08D0066008E0466008E0366008E0266008E0166008E0066408E0466 +sleep 100 +send 2F3D7E3002408E0366408E0266408E0166408E0066808E0466808E0366808E0266808E0166808E0066C08E0466C08E0366C08E0266C08E0166C08E0066008F0466008F0366008F0266008F0166008F0066408F0466408F0366408F0266408F0166408F0066808F0466808F0366808F0266808F0166808F0066C08F0466C08F0366 +sleep 100 +send 2F3D4E3003C08F0266C08F0166C08F0066009004660090036600900266009001660090006640900466409003664090026640900166409000668090046680900366809002668090016680900066C0900466 +sleep 100 + +#// SPC CMD [PLL sweep] input clock 26MHz +#//send 2F3D7E300142A5046642A5016682A5036682A50066C2A5026602A6046602A6016642A6036642A6006682A60266C2A60466C2A6016602A7036602A7006642A7026682A7046682A70166C2A70366C2A7006602A8026642A8046642A8016682A8036682A80066C2A8026602A9046602A9016642A9036642A9006682A90266C2A90466 +#//sleep 100 +#//send 2F3D7E3002C2A9016602AA036602AA006642AA026682AA046682AA0166C2AA0366C2AA006602AB026642AB046642AB016682AB036682AB0066C2AB026602AC046602AC016642AC036642AC006682AC0266C2AC0466C2AC016602AD036602AD006642AD026682AD046682AD0166C2AD0366C2AD006602AE026642AE046642AE0166 +#//sleep 100 +#//send 2F3D4E300382AE036682AE0066C2AE026602AF046602AF016642AF036642AF006682AF0266C2AF0466C2AF016602B0036602B0006642B0026682B0046682B00166C2B00366C2B0006602B1026642B10466 +#//sleep 100 + +#// SPC CMD [PLL sweep] input clock 27.12MHz +#//send 2F3D7E300142A3006682A30266C2A30466C2A3016602A4036602A4006642A4026682A4046682A40166C2A40366C2A4006602A5026642A5046642A5016682A5036682A50066C2A5026602A6046602A6016642A6036642A6006682A60266C2A60466C2A6016602A7036602A7006642A7026682A7046682A70166C2A70366C2A70066 +#//sleep 100 +#//send 2F3D7E300202A8026642A8046642A8016682A8036682A80066C2A8026602A9046602A9016642A9036642A9006682A90266C2A90466C2A9016602AA036602AA006642AA026682AA046682AA0166C2AA0366C2AA006602AB026642AB046642AB016682AB036682AB0066C2AB026602AC046602AC016642AC036642AC006682AC0266 +#//sleep 100 +#//send 2F3D4E3003C2AC0466C2AC016602AD036602AD006642AD026682AD046682AD0166C2AD0366C2AD006602AE026642AE046642AE016682AE036682AE0066C2AE026602AF046602AF016642AF036642AF0066 +#//sleep 100 + +#// SPC CMD [PLL sweep] input clock 38.4MHz +#//send 2F3D7E3001C18C0466C18C0366C18C0266C18C0166C18C0066018D0466018D0366018D0266018D0166018D0066418D0466418D0366418D0266418D0166418D0066818D0466818D0366818D0266818D0166818D0066C18D0466C18D0366C18D0266C18D0166C18D0066018E0466018E0366018E0266018E0166018E0066418E0466 +#//sleep 100 +#//send 2F3D7E3002418E0366418E0266418E0166418E0066818E0466818E0366818E0266818E0166818E0066C18E0466C18E0366C18E0266C18E0166C18E0066018F0466018F0366018F0266018F0166018F0066418F0466418F0366418F0266418F0166418F0066818F0466818F0366818F0266818F0166818F0066C18F0466C18F0366 +#//sleep 100 +#//send 2F3D4E3003C18F0266C18F0166C18F0066019004660190036601900266019001660190006641900466419003664190026641900166419000668190046681900366819002668190016681900066C1900466 +#//sleep 100 + +#// SPC START +send 2F3D0131 + +trigger 6F3D07 + +#//SET LPCD +send 20022E01A0682A064060031900000000820400C005C00900010001A000A00003FA0000004C0014007D00057F0000010003 + +#// READ OFFSET AFTER SPC +send 20030301A017 diff --git a/proprietary/vendor/etc/pwr/PowerFeatureConfig.xml b/proprietary/vendor/etc/pwr/PowerFeatureConfig.xml new file mode 100644 index 0000000..d9c526d --- /dev/null +++ b/proprietary/vendor/etc/pwr/PowerFeatureConfig.xml @@ -0,0 +1,21 @@ + + + + VideoPowerOptFeature + 1 + + diff --git a/proprietary/vendor/etc/pwr/VideoPowerOptFeature.xml b/proprietary/vendor/etc/pwr/VideoPowerOptFeature.xml new file mode 100644 index 0000000..ebb885a --- /dev/null +++ b/proprietary/vendor/etc/pwr/VideoPowerOptFeature.xml @@ -0,0 +1,34 @@ + + + VideoPowerOptFeature + libvideooptfeature.so + + 30 + 120 + + + + + 0x40C54000, 999999, 0x40C58000, 999990 + + + + com.google.android.gms + com.android.vending + com.google.android.projection.gearhead + + diff --git a/proprietary/vendor/etc/qdcm_calib_data_mipi_mot_vid_tm_icnl9916c_hdp_652_120.xml b/proprietary/vendor/etc/qdcm_calib_data_mipi_mot_vid_tm_icnl9916c_hdp_652_120.xml new file mode 100644 index 0000000..3065a69 --- /dev/null +++ b/proprietary/vendor/etc/qdcm_calib_data_mipi_mot_vid_tm_icnl9916c_hdp_652_120.xml @@ -0,0 +1,26 @@ + + + + + + 00000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 00000400000100000600000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000001010000110100002101000031010000410100005101000061010000710100008101000091010000A1010000B1010000C1010000D1010000E1010000F101000002020000120200002202000032020000420200005202000062020000720200008202000092020000A2020000B2020000C2020000D2020000E2020000F202000003030000130300002303000033030000430300005303000063030000730300008303000093030000A3030000B3030000C3030000D3030000E3030000F303000004040000140400002404000034040000440400005404000064040000740400008404000094040000A4040000B4040000C4040000D4040000E4040000F404000005050000150500002505000035050000450500005505000065050000750500008505000095050000A5050000B5050000C5050000D5050000E5050000F505000006060000160600002606000036060000460600005606000066060000760600008606000096060000A6060000B6060000C6060000D6060000E6060000F606000007070000170700002707000037070000470700005707000067070000770700008707000097070000A7070000B7070000C7070000D7070000E7070000F707000008080000180800002808000038080000480800005808000068080000780800008808000098080000A8080000B8080000C8080000D8080000E8080000F808000009090000190900002909000039090000490900005909000069090000790900008909000099090000A9090000B9090000C9090000D9090000E9090000F90900000A0A00001A0A00002A0A00003A0A00004A0A00005A0A00006A0A00007A0A00008A0A00009A0A0000AA0A0000BA0A0000CA0A0000DA0A0000EA0A0000FA0A00000B0B00001B0B00002B0B00003B0B00004B0B00005B0B00006B0B00007B0B00008B0B00009B0B0000AB0B0000BB0B0000CB0B0000DB0B0000EB0B0000FB0B00000C0C00001C0C00002C0C00003C0C00004C0C00005C0C00006C0C00007C0C00008C0C00009C0C0000AC0C0000BC0C0000CC0C0000DC0C0000EC0C0000FC0C00000D0D00001D0D00002D0D00003D0D00004D0D00005D0D00006D0D00007D0D00008D0D00009D0D0000AD0D0000BD0D0000CD0D0000DD0D0000ED0D0000FD0D00000E0E00001E0E00002E0E00003E0E00004E0E00005E0E00006E0E00007E0E00008E0E00009E0E0000AE0E0000BE0E0000CE0E0000DE0E0000EE0E0000FE0E00000F0F00001F0F00002F0F00003F0F00004F0F00005F0F00006F0F00007F0F00008F0F00009F0F0000AF0F0000BF0F0000CF0F0000DF0F0000EF0F0000FF0F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000001010000110100002101000031010000410100005101000061010000710100008101000091010000A1010000B1010000C1010000D1010000E1010000F101000002020000120200002202000032020000420200005202000062020000720200008202000092020000A2020000B2020000C2020000D2020000E2020000F202000003030000130300002303000033030000430300005303000063030000730300008303000093030000A3030000B3030000C3030000D3030000E3030000F303000004040000140400002404000034040000440400005404000064040000740400008404000094040000A4040000B4040000C4040000D4040000E4040000F404000005050000150500002505000035050000450500005505000065050000750500008505000095050000A5050000B5050000C5050000D5050000E5050000F505000006060000160600002606000036060000460600005606000066060000760600008606000096060000A6060000B6060000C6060000D6060000E6060000F606000007070000170700002707000037070000470700005707000067070000770700008707000097070000A7070000B7070000C7070000D7070000E7070000F707000008080000180800002808000038080000480800005808000068080000780800008808000098080000A8080000B8080000C8080000D8080000E8080000F808000009090000190900002909000039090000490900005909000069090000790900008909000099090000A9090000B9090000C9090000D9090000E9090000F90900000A0A00001A0A00002A0A00003A0A00004A0A00005A0A00006A0A00007A0A00008A0A00009A0A0000AA0A0000BA0A0000CA0A0000DA0A0000EA0A0000FA0A00000B0B00001B0B00002B0B00003B0B00004B0B00005B0B00006B0B00007B0B00008B0B00009B0B0000AB0B0000BB0B0000CB0B0000DB0B0000EB0B0000FB0B00000C0C00001C0C00002C0C00003C0C00004C0C00005C0C00006C0C00007C0C00008C0C00009C0C0000AC0C0000BC0C0000CC0C0000DC0C0000EC0C0000FC0C00000D0D00001D0D00002D0D00003D0D00004D0D00005D0D00006D0D00007D0D00008D0D00009D0D0000AD0D0000BD0D0000CD0D0000DD0D0000ED0D0000FD0D00000E0E00001E0E00002E0E00003E0E00004E0E00005E0E00006E0E00007E0E00008E0E00009E0E0000AE0E0000BE0E0000CE0E0000DE0E0000EE0E0000FE0E00000F0F00001F0F00002F0F00003F0F00004F0F00005F0F00006F0F00007F0F00008F0F00009F0F0000AF0F0000BF0F0000CF0F0000DF0F0000EF0F0000FF0F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000001010000110100002101000031010000410100005101000061010000710100008101000091010000A1010000B1010000C1010000D1010000E1010000F101000002020000120200002202000032020000420200005202000062020000720200008202000092020000A2020000B2020000C2020000D2020000E2020000F202000003030000130300002303000033030000430300005303000063030000730300008303000093030000A3030000B3030000C3030000D3030000E3030000F303000004040000140400002404000034040000440400005404000064040000740400008404000094040000A4040000B4040000C4040000D4040000E4040000F404000005050000150500002505000035050000450500005505000065050000750500008505000095050000A5050000B5050000C5050000D5050000E5050000F505000006060000160600002606000036060000460600005606000066060000760600008606000096060000A6060000B6060000C6060000D6060000E6060000F606000007070000170700002707000037070000470700005707000067070000770700008707000097070000A7070000B7070000C7070000D7070000E7070000F707000008080000180800002808000038080000480800005808000068080000780800008808000098080000A8080000B8080000C8080000D8080000E8080000F808000009090000190900002909000039090000490900005909000069090000790900008909000099090000A9090000B9090000C9090000D9090000E9090000F90900000A0A00001A0A00002A0A00003A0A00004A0A00005A0A00006A0A00007A0A00008A0A00009A0A0000AA0A0000BA0A0000CA0A0000DA0A0000EA0A0000FA0A00000B0B00001B0B00002B0B00003B0B00004B0B00005B0B00006B0B00007B0B00008B0B00009B0B0000AB0B0000BB0B0000CB0B0000DB0B0000EB0B0000FB0B00000C0C00001C0C00002C0C00003C0C00004C0C00005C0C00006C0C00007C0C00008C0C00009C0C0000AC0C0000BC0C0000CC0C0000DC0C0000EC0C0000FC0C00000D0D00001D0D00002D0D00003D0D00004D0D00005D0D00006D0D00007D0D00008D0D00009D0D0000AD0D0000BD0D0000CD0D0000DD0D0000ED0D0000FD0D00000E0E00001E0E00002E0E00003E0E00004E0E00005E0E00006E0E00007E0E00008E0E00009E0E0000AE0E0000BE0E0000CE0E0000DE0E0000EE0E0000FE0E00000F0F00001F0F00002F0F00003F0F00004F0F00005F0F00006F0F00007F0F00008F0F00009F0F0000AF0F0000BF0F0000CF0F0000DF0F0000EF0F0000FF0F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 000000000004000006000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000800000008100000082000000830000008400000085000000860000008700000088000000890000008A0000008B0000008C0000008D0000008E0000008F000000900000009100000092000000930000009400000095000000960000009700000098000000990000009A0000009B0000009C0000009D0000009E0000009F000000A0000000A1000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000000AA000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000BA000000BB000000BC000000BD000000BE000000BF000000C0000000C1000000C2000000C3000000C4000000C5000000C6000000C7000000C8000000C9000000CA000000CB000000CC000000CD000000CE000000CF000000D0000000D1000000D2000000D3000000D4000000D5000000D6000000D7000000D8000000D9000000DA000000DB000000DC000000DD000000DE000000DF000000E0000000E1000000E2000000E3000000E4000000E5000000E6000000E7000000E8000000E9000000EA000000EB000000EC000000ED000000EE000000EF000000F0000000F1000000F2000000F3000000F4000000F5000000F6000000F7000000F8000000F9000000FA000000FB000000FC000000FD000000FE000000FF000000000100000101000002010000030100000401000005010000060100000701000008010000090100000A0100000B0100000C0100000D0100000E0100000F010000100100001101000012010000130100001401000015010000160100001701000018010000190100001A0100001B0100001C0100001D0100001E0100001F010000200100002101000022010000230100002401000025010000260100002701000028010000290100002A0100002B0100002C0100002D0100002E0100002F010000300100003101000032010000330100003401000035010000360100003701000038010000390100003A0100003B0100003C0100003D0100003E0100003F010000400100004101000042010000430100004401000045010000460100004701000048010000490100004A0100004B0100004C0100004D0100004E0100004F010000500100005101000052010000530100005401000055010000560100005701000058010000590100005A0100005B0100005C0100005D0100005E0100005F010000600100006101000062010000630100006401000065010000660100006701000068010000690100006A0100006B0100006C0100006D0100006E0100006F010000700100007101000072010000730100007401000075010000760100007701000078010000790100007A0100007B0100007C0100007D0100007E0100007F010000800100008101000082010000830100008401000085010000860100008701000088010000890100008A0100008B0100008C0100008D0100008E0100008F010000900100009101000092010000930100009401000095010000960100009701000098010000990100009A0100009B0100009C0100009D0100009E0100009F010000A0010000A1010000A2010000A3010000A4010000A5010000A6010000A7010000A8010000A9010000AA010000AB010000AC010000AD010000AE010000AF010000B0010000B1010000B2010000B3010000B4010000B5010000B6010000B7010000B8010000B9010000BA010000BB010000BC010000BD010000BE010000BF010000C0010000C1010000C2010000C3010000C4010000C5010000C6010000C7010000C8010000C9010000CA010000CB010000CC010000CD010000CE010000CF010000D0010000D1010000D2010000D3010000D4010000D5010000D6010000D7010000D8010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E1010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EB010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F8010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003B0200003C0200003D0200003E0200003F020000400200004102000042020000430200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004D0200004E0200004F020000500200005102000052020000530200005402000055020000560200005702000058020000590200005A0200005B0200005C0200005D0200005E0200005F020000600200006102000062020000630200006402000065020000660200006702000068020000690200006A0200006B0200006C0200006D0200006E0200006F020000700200007102000072020000730200007402000075020000760200007702000078020000790200007A0200007B0200007C0200007D0200007E0200007F020000800200008102000082020000830200008402000085020000860200008702000088020000890200008A0200008B0200008C0200008D0200008E0200008F020000900200009102000092020000930200009402000095020000960200009702000098020000990200009A0200009B0200009C0200009D0200009E0200009F020000A0020000A1020000A2020000A3020000A4020000A5020000A6020000A7020000A8020000A9020000AA020000AB020000AC020000AD020000AE020000AF020000B0020000B1020000B2020000B3020000B4020000B5020000B6020000B7020000B8020000B9020000BA020000BB020000BC020000BD020000BE020000BF020000C0020000C1020000C2020000C3020000C4020000C5020000C6020000C7020000C8020000C9020000CA020000CB020000CC020000CD020000CE020000CF020000D0020000D1020000D2020000D3020000D4020000D5020000D6020000D7020000D8020000D9020000DA020000DB020000DC020000DD020000DE020000DF020000E0020000E1020000E2020000E3020000E4020000E5020000E6020000E7020000E8020000E9020000EA020000EB020000EC020000ED020000EE020000EF020000F0020000F1020000F2020000F3020000F4020000F5020000F6020000F7020000F8020000F9020000FA020000FB020000FC020000FD020000FE020000FF020000000300000103000002030000030300000403000005030000060300000703000008030000090300000A0300000B0300000C0300000D0300000E0300000F030000100300001103000012030000130300001403000015030000160300001703000018030000190300001A0300001B0300001C0300001D0300001E0300001F030000200300002103000022030000230300002403000025030000260300002703000028030000290300002A0300002B0300002C0300002D0300002E0300002F030000300300003103000032030000330300003403000035030000360300003703000038030000390300003A0300003B0300003C0300003D0300003E0300003F030000400300004103000042030000430300004403000045030000460300004703000048030000490300004A0300004B0300004C0300004D0300004E0300004F030000500300005103000052030000530300005403000055030000560300005703000058030000590300005A0300005B0300005C0300005D0300005E0300005F030000600300006103000062030000630300006403000065030000660300006703000068030000690300006A0300006B0300006C0300006D0300006E0300006F030000700300007103000072030000730300007403000075030000760300007703000078030000790300007A0300007B0300007C0300007D0300007E0300007F030000800300008103000082030000830300008403000085030000860300008703000088030000890300008A0300008B0300008C0300008D0300008E0300008F030000900300009103000092030000930300009403000095030000960300009703000098030000990300009A0300009B0300009C0300009D0300009E0300009F030000A0030000A1030000A2030000A3030000A4030000A5030000A6030000A7030000A8030000A9030000AA030000AB030000AC030000AD030000AE030000AF030000B0030000B1030000B2030000B3030000B4030000B5030000B6030000B7030000B8030000B9030000BA030000BB030000BC030000BD030000BE030000BF030000C0030000C1030000C2030000C3030000C4030000C5030000C6030000C7030000C8030000C9030000CA030000CB030000CC030000CD030000CE030000CF030000D0030000D1030000D2030000D3030000D4030000D5030000D6030000D7030000D8030000D9030000DA030000DB030000DC030000DD030000DE030000DF030000E0030000E1030000E2030000E3030000E4030000E5030000E6030000E7030000E8030000E9030000EA030000EB030000EC030000ED030000EE030000EF030000F0030000F1030000F2030000F3030000F4030000F5030000F6030000F7030000F8030000F9030000FA030000FB030000FC030000FD030000FE030000FF030000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000800000008100000082000000830000008400000085000000860000008700000088000000890000008A0000008B0000008C0000008D0000008E0000008F000000900000009100000092000000930000009400000095000000960000009700000098000000990000009A0000009B0000009C0000009D0000009E0000009F000000A0000000A1000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000000AA000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000BA000000BB000000BC000000BD000000BE000000BF000000C0000000C1000000C2000000C3000000C4000000C5000000C6000000C7000000C8000000C9000000CA000000CB000000CC000000CD000000CE000000CF000000D0000000D1000000D2000000D3000000D4000000D5000000D6000000D7000000D8000000D9000000DA000000DB000000DC000000DD000000DE000000DF000000E0000000E1000000E2000000E3000000E4000000E5000000E6000000E7000000E8000000E9000000EA000000EB000000EC000000ED000000EE000000EF000000F0000000F1000000F2000000F3000000F4000000F5000000F6000000F7000000F8000000F9000000FA000000FB000000FC000000FD000000FE000000FF000000000100000101000002010000030100000401000005010000060100000701000008010000090100000A0100000B0100000C0100000D0100000E0100000F010000100100001101000012010000130100001401000015010000160100001701000018010000190100001A0100001B0100001C0100001D0100001E0100001F010000200100002101000022010000230100002401000025010000260100002701000028010000290100002A0100002B0100002C0100002D0100002E0100002F010000300100003101000032010000330100003401000035010000360100003701000038010000390100003A0100003B0100003C0100003D0100003E0100003F010000400100004101000042010000430100004401000045010000460100004701000048010000490100004A0100004B0100004C0100004D0100004E0100004F010000500100005101000052010000530100005401000055010000560100005701000058010000590100005A0100005B0100005C0100005D0100005E0100005F010000600100006101000062010000630100006401000065010000660100006701000068010000690100006A0100006B0100006C0100006D0100006E0100006F010000700100007101000072010000730100007401000075010000760100007701000078010000790100007A0100007B0100007C0100007D0100007E0100007F010000800100008101000082010000830100008401000085010000860100008701000088010000890100008A0100008B0100008C0100008D0100008E0100008F010000900100009101000092010000930100009401000095010000960100009701000098010000990100009A0100009B0100009C0100009D0100009E0100009F010000A0010000A1010000A2010000A3010000A4010000A5010000A6010000A7010000A8010000A9010000AA010000AB010000AC010000AD010000AE010000AF010000B0010000B1010000B2010000B3010000B4010000B5010000B6010000B7010000B8010000B9010000BA010000BB010000BC010000BD010000BE010000BF010000C0010000C1010000C2010000C3010000C4010000C5010000C6010000C7010000C8010000C9010000CA010000CB010000CC010000CD010000CE010000CF010000D0010000D1010000D2010000D3010000D4010000D5010000D6010000D7010000D8010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E1010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EB010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F8010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003B0200003C0200003D0200003E0200003F020000400200004102000042020000430200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004D0200004E0200004F020000500200005102000052020000530200005402000055020000560200005702000058020000590200005A0200005B0200005C0200005D0200005E0200005F020000600200006102000062020000630200006402000065020000660200006702000068020000690200006A0200006B0200006C0200006D0200006E0200006F020000700200007102000072020000730200007402000075020000760200007702000078020000790200007A0200007B0200007C0200007D0200007E0200007F020000800200008102000082020000830200008402000085020000860200008702000088020000890200008A0200008B0200008C0200008D0200008E0200008F020000900200009102000092020000930200009402000095020000960200009702000098020000990200009A0200009B0200009C0200009D0200009E0200009F020000A0020000A1020000A2020000A3020000A4020000A5020000A6020000A7020000A8020000A9020000AA020000AB020000AC020000AD020000AE020000AF020000B0020000B1020000B2020000B3020000B4020000B5020000B6020000B7020000B8020000B9020000BA020000BB020000BC020000BD020000BE020000BF020000C0020000C1020000C2020000C3020000C4020000C5020000C6020000C7020000C8020000C9020000CA020000CB020000CC020000CD020000CE020000CF020000D0020000D1020000D2020000D3020000D4020000D5020000D6020000D7020000D8020000D9020000DA020000DB020000DC020000DD020000DE020000DF020000E0020000E1020000E2020000E3020000E4020000E5020000E6020000E7020000E8020000E9020000EA020000EB020000EC020000ED020000EE020000EF020000F0020000F1020000F2020000F3020000F4020000F5020000F6020000F7020000F8020000F9020000FA020000FB020000FC020000FD020000FE020000FF020000000300000103000002030000030300000403000005030000060300000703000008030000090300000A0300000B0300000C0300000D0300000E0300000F030000100300001103000012030000130300001403000015030000160300001703000018030000190300001A0300001B0300001C0300001D0300001E0300001F030000200300002103000022030000230300002403000025030000260300002703000028030000290300002A0300002B0300002C0300002D0300002E0300002F030000300300003103000032030000330300003403000035030000360300003703000038030000390300003A0300003B0300003C0300003D0300003E0300003F030000400300004103000042030000430300004403000045030000460300004703000048030000490300004A0300004B0300004C0300004D0300004E0300004F030000500300005103000052030000530300005403000055030000560300005703000058030000590300005A0300005B0300005C0300005D0300005E0300005F030000600300006103000062030000630300006403000065030000660300006703000068030000690300006A0300006B0300006C0300006D0300006E0300006F030000700300007103000072030000730300007403000075030000760300007703000078030000790300007A0300007B0300007C0300007D0300007E0300007F030000800300008103000082030000830300008403000085030000860300008703000088030000890300008A0300008B0300008C0300008D0300008E0300008F030000900300009103000092030000930300009403000095030000960300009703000098030000990300009A0300009B0300009C0300009D0300009E0300009F030000A0030000A1030000A2030000A3030000A4030000A5030000A6030000A7030000A8030000A9030000AA030000AB030000AC030000AD030000AE030000AF030000B0030000B1030000B2030000B3030000B4030000B5030000B6030000B7030000B8030000B9030000BA030000BB030000BC030000BD030000BE030000BF030000C0030000C1030000C2030000C3030000C4030000C5030000C6030000C7030000C8030000C9030000CA030000CB030000CC030000CD030000CE030000CF030000D0030000D1030000D2030000D3030000D4030000D5030000D6030000D7030000D8030000D9030000DA030000DB030000DC030000DD030000DE030000DF030000E0030000E1030000E2030000E3030000E4030000E5030000E6030000E7030000E8030000E9030000EA030000EB030000EC030000ED030000EE030000EF030000F0030000F1030000F2030000F3030000F4030000F5030000F6030000F7030000F8030000F9030000FA030000FB030000FC030000FD030000FE030000FF030000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000800000008100000082000000830000008400000085000000860000008700000088000000890000008A0000008B0000008C0000008D0000008E0000008F000000900000009100000092000000930000009400000095000000960000009700000098000000990000009A0000009B0000009C0000009D0000009E0000009F000000A0000000A1000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000000AA000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000BA000000BB000000BC000000BD000000BE000000BF000000C0000000C1000000C2000000C3000000C4000000C5000000C6000000C7000000C8000000C9000000CA000000CB000000CC000000CD000000CE000000CF000000D0000000D1000000D2000000D3000000D4000000D5000000D6000000D7000000D8000000D9000000DA000000DB000000DC000000DD000000DE000000DF000000E0000000E1000000E2000000E3000000E4000000E5000000E6000000E7000000E8000000E9000000EA000000EB000000EC000000ED000000EE000000EF000000F0000000F1000000F2000000F3000000F4000000F5000000F6000000F7000000F8000000F9000000FA000000FB000000FC000000FD000000FE000000FF000000000100000101000002010000030100000401000005010000060100000701000008010000090100000A0100000B0100000C0100000D0100000E0100000F010000100100001101000012010000130100001401000015010000160100001701000018010000190100001A0100001B0100001C0100001D0100001E0100001F010000200100002101000022010000230100002401000025010000260100002701000028010000290100002A0100002B0100002C0100002D0100002E0100002F010000300100003101000032010000330100003401000035010000360100003701000038010000390100003A0100003B0100003C0100003D0100003E0100003F010000400100004101000042010000430100004401000045010000460100004701000048010000490100004A0100004B0100004C0100004D0100004E0100004F010000500100005101000052010000530100005401000055010000560100005701000058010000590100005A0100005B0100005C0100005D0100005E0100005F010000600100006101000062010000630100006401000065010000660100006701000068010000690100006A0100006B0100006C0100006D0100006E0100006F010000700100007101000072010000730100007401000075010000760100007701000078010000790100007A0100007B0100007C0100007D0100007E0100007F010000800100008101000082010000830100008401000085010000860100008701000088010000890100008A0100008B0100008C0100008D0100008E0100008F010000900100009101000092010000930100009401000095010000960100009701000098010000990100009A0100009B0100009C0100009D0100009E0100009F010000A0010000A1010000A2010000A3010000A4010000A5010000A6010000A7010000A8010000A9010000AA010000AB010000AC010000AD010000AE010000AF010000B0010000B1010000B2010000B3010000B4010000B5010000B6010000B7010000B8010000B9010000BA010000BB010000BC010000BD010000BE010000BF010000C0010000C1010000C2010000C3010000C4010000C5010000C6010000C7010000C8010000C9010000CA010000CB010000CC010000CD010000CE010000CF010000D0010000D1010000D2010000D3010000D4010000D5010000D6010000D7010000D8010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E1010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EB010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F8010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003B0200003C0200003D0200003E0200003F020000400200004102000042020000430200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004D0200004E0200004F020000500200005102000052020000530200005402000055020000560200005702000058020000590200005A0200005B0200005C0200005D0200005E0200005F020000600200006102000062020000630200006402000065020000660200006702000068020000690200006A0200006B0200006C0200006D0200006E0200006F020000700200007102000072020000730200007402000075020000760200007702000078020000790200007A0200007B0200007C0200007D0200007E0200007F020000800200008102000082020000830200008402000085020000860200008702000088020000890200008A0200008B0200008C0200008D0200008E0200008F020000900200009102000092020000930200009402000095020000960200009702000098020000990200009A0200009B0200009C0200009D0200009E0200009F020000A0020000A1020000A2020000A3020000A4020000A5020000A6020000A7020000A8020000A9020000AA020000AB020000AC020000AD020000AE020000AF020000B0020000B1020000B2020000B3020000B4020000B5020000B6020000B7020000B8020000B9020000BA020000BB020000BC020000BD020000BE020000BF020000C0020000C1020000C2020000C3020000C4020000C5020000C6020000C7020000C8020000C9020000CA020000CB020000CC020000CD020000CE020000CF020000D0020000D1020000D2020000D3020000D4020000D5020000D6020000D7020000D8020000D9020000DA020000DB020000DC020000DD020000DE020000DF020000E0020000E1020000E2020000E3020000E4020000E5020000E6020000E7020000E8020000E9020000EA020000EB020000EC020000ED020000EE020000EF020000F0020000F1020000F2020000F3020000F4020000F5020000F6020000F7020000F8020000F9020000FA020000FB020000FC020000FD020000FE020000FF020000000300000103000002030000030300000403000005030000060300000703000008030000090300000A0300000B0300000C0300000D0300000E0300000F030000100300001103000012030000130300001403000015030000160300001703000018030000190300001A0300001B0300001C0300001D0300001E0300001F030000200300002103000022030000230300002403000025030000260300002703000028030000290300002A0300002B0300002C0300002D0300002E0300002F030000300300003103000032030000330300003403000035030000360300003703000038030000390300003A0300003B0300003C0300003D0300003E0300003F030000400300004103000042030000430300004403000045030000460300004703000048030000490300004A0300004B0300004C0300004D0300004E0300004F030000500300005103000052030000530300005403000055030000560300005703000058030000590300005A0300005B0300005C0300005D0300005E0300005F030000600300006103000062030000630300006403000065030000660300006703000068030000690300006A0300006B0300006C0300006D0300006E0300006F030000700300007103000072030000730300007403000075030000760300007703000078030000790300007A0300007B0300007C0300007D0300007E0300007F030000800300008103000082030000830300008403000085030000860300008703000088030000890300008A0300008B0300008C0300008D0300008E0300008F030000900300009103000092030000930300009403000095030000960300009703000098030000990300009A0300009B0300009C0300009D0300009E0300009F030000A0030000A1030000A2030000A3030000A4030000A5030000A6030000A7030000A8030000A9030000AA030000AB030000AC030000AD030000AE030000AF030000B0030000B1030000B2030000B3030000B4030000B5030000B6030000B7030000B8030000B9030000BA030000BB030000BC030000BD030000BE030000BF030000C0030000C1030000C2030000C3030000C4030000C5030000C6030000C7030000C8030000C9030000CA030000CB030000CC030000CD030000CE030000CF030000D0030000D1030000D2030000D3030000D4030000D5030000D6030000D7030000D8030000D9030000DA030000DB030000DC030000DD030000DE030000DF030000E0030000E1030000E2030000E3030000E4030000E5030000E6030000E7030000E8030000E9030000EA030000EB030000EC030000ED030000EE030000EF030000F0030000F1030000F2030000F3030000F4030000F5030000F6030000F7030000F8030000F9030000FA030000FB030000FC030000FD030000FE030000FF030000 + 3B0600000000000000000000000000009899193E000000000000000000000000000000000000000000000000000040C000000000000000000F00000021000000210000000300000003000000000000002D00000000000000010000000000C842000000000000803F0000C842000000000000803F0100000000000000000000000000000000000000000000000F0000002100000021000000030000000300000000000000FF000000C3000000010000000000C842000000000000803F0000C842000000000000803F0200000000000000000000000000000000000000000000000F0000002100000021000000030000000300000000000000870000004B000000010000000000C842000000000000803F0000C842000000000000803F00000000000000005A0000000A000000010000005A0000000A000000010000001E0000001E0000000300000003000000000000000000000080010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 0000000008000000080000000800000000000000100000000F000000070000000D00000005000000030000000B00000001000000090000000C000000040000000E000000060000000000000008000000020000000A000000 + + + + 00000000000000000000000000000000C4815396A77AF13FB8110FA46FEEC0BFF9893A007D9AAB3F6FB0C45B6D65333F648D1D689F2C373FC92D143C5E4730BF628832D3BF6333BF495CED1A27530FBFCAC60AA7539122BF74CADAC6B225903E0000000000000000A55B85B7895033BF991C00037513EF3FCFF1B8330548943F783C9F1A7A2FE0BE9F29D1E013BF3C3F9097C2B4571716BF0DFA2FCA79AA26BF1B6DD5D4CA9732BF8CB841BA2A2005BF80E04E6DA38CA13E0000000000000000EA1486F7B695923F21EF2F6EE40EA03F2FC4FCBB93BEEF3FE8EEED6DCFF2EEBE4B67083A34C8BEBEA4F31CEF2E402BBF51555788A066EEBE2823EC59EED6E6BE405EBBA1615AD33E57DC0586E82678BE + 00000400000100000600000000000000000000000000000001000000010000000200000002000000020000000300000003000000030000000400000005000000060000000700000008000000090000000B0000000C0000000D0000000F00000011000000130000001400000016000000190000001B0000001D000000200000002200000025000000270000002A0000002D0000003000000034000000370000003A0000003E0000004100000045000000490000004D00000051000000550000005A0000005E00000063000000670000006C00000071000000760000007B00000080000000860000008B00000091000000970000009D000000A3000000A9000000AF000000B5000000BC000000C2000000C9000000D0000000D7000000DE000000E5000000ED000000F4000000FC000000040100000B010000140100001C010000240100002C010000350100003E010000460100004F01000058010000620100006B010000740100007E01000088010000910100009B010000A6010000B0010000BA010000C5010000CF010000DA010000E5010000F0010000FB01000007020000120200001E0200002A02000036020000420200004E0200005A0200006702000073020000800200008D0200009A020000A7020000B4020000C2020000CF020000DD020000EB020000F90200000703000016030000240300003203000042030000500300005F0300006E0300007D0300008C0300009C030000AC030000BC030000CC030000DC030000EC030000FC0300000D0400001E0400002F040000400400005104000062040000740400008504000097040000A9040000BB040000CD040000DF040000F204000005050000170500002A0500003D0500005105000064050000780500008B0500009F050000B3050000C7050000DB050000F005000004060000190600002E06000043060000580600006E0600008306000099060000AF060000C5060000DB060000F1060000070700001E070000350700004C070000630700007A07000091070000A9070000C0070000D8070000F0070000080800002008000039080000510800006A080000830800009C080000B5080000CF080000E8080000020900001C09000036090000500900006A090000850900009F090000BA090000D5090000F00900000B0A0000270A0000420A00005E0A00007A0A0000960A0000B20A0000CE0A0000EB0A0000080B0000240B0000410B00005F0B00007C0B0000990B0000B70B0000D50B0000F30B0000110C00002F0C00004E0C00006C0C00008B0C0000AA0C0000C90C0000E80C0000080D0000270D0000470D0000670D0000870D0000A70D0000C80D0000E80D0000090E00002A0E00004B0E00006C0E00008D0E0000AF0E0000D10E0000F20E0000140F0000370F0000590F00007B0F00009E0F0000C10F0000F80F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000200000002000000020000000300000003000000030000000400000005000000060000000700000008000000090000000B0000000C0000000D0000000F00000011000000130000001400000016000000190000001B0000001D000000200000002200000025000000270000002A0000002D0000003000000034000000370000003A0000003E0000004100000045000000490000004D00000051000000550000005A0000005E00000063000000670000006C00000071000000760000007B00000080000000860000008B00000091000000970000009D000000A3000000A9000000AF000000B5000000BC000000C2000000C9000000D0000000D7000000DE000000E5000000ED000000F4000000FC000000040100000B010000140100001C010000240100002C010000350100003E010000460100004F01000058010000620100006B010000740100007E01000088010000910100009B010000A6010000B0010000BA010000C5010000CF010000DA010000E5010000F0010000FB01000007020000120200001E0200002A02000036020000420200004E0200005A0200006702000073020000800200008D0200009A020000A7020000B4020000C2020000CF020000DD020000EB020000F90200000703000016030000240300003203000042030000500300005F0300006E0300007D0300008C0300009C030000AC030000BC030000CC030000DC030000EC030000FC0300000D0400001E0400002F040000400400005104000062040000740400008504000097040000A9040000BB040000CD040000DF040000F204000005050000170500002A0500003D0500005105000064050000780500008B0500009F050000B3050000C7050000DB050000F005000004060000190600002E06000043060000580600006E0600008306000099060000AF060000C5060000DB060000F1060000070700001E070000350700004C070000630700007A07000091070000A9070000C0070000D8070000F0070000080800002008000039080000510800006A080000830800009C080000B5080000CF080000E8080000020900001C09000036090000500900006A090000850900009F090000BA090000D5090000F00900000B0A0000270A0000420A00005E0A00007A0A0000960A0000B20A0000CE0A0000EB0A0000080B0000240B0000410B00005F0B00007C0B0000990B0000B70B0000D50B0000F30B0000110C00002F0C00004E0C00006C0C00008B0C0000AA0C0000C90C0000E80C0000080D0000270D0000470D0000670D0000870D0000A70D0000C80D0000E80D0000090E00002A0E00004B0E00006C0E00008D0E0000AF0E0000D10E0000F20E0000140F0000370F0000590F00007B0F00009E0F0000C10F0000F80F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000010000000200000002000000020000000300000003000000030000000400000005000000060000000700000008000000090000000B0000000C0000000D0000000F00000011000000130000001400000016000000190000001B0000001D000000200000002200000025000000270000002A0000002D0000003000000034000000370000003A0000003E0000004100000045000000490000004D00000051000000550000005A0000005E00000063000000670000006C00000071000000760000007B00000080000000860000008B00000091000000970000009D000000A3000000A9000000AF000000B5000000BC000000C2000000C9000000D0000000D7000000DE000000E5000000ED000000F4000000FC000000040100000B010000140100001C010000240100002C010000350100003E010000460100004F01000058010000620100006B010000740100007E01000088010000910100009B010000A6010000B0010000BA010000C5010000CF010000DA010000E5010000F0010000FB01000007020000120200001E0200002A02000036020000420200004E0200005A0200006702000073020000800200008D0200009A020000A7020000B4020000C2020000CF020000DD020000EB020000F90200000703000016030000240300003203000042030000500300005F0300006E0300007D0300008C0300009C030000AC030000BC030000CC030000DC030000EC030000FC0300000D0400001E0400002F040000400400005104000062040000740400008504000097040000A9040000BB040000CD040000DF040000F204000005050000170500002A0500003D0500005105000064050000780500008B0500009F050000B3050000C7050000DB050000F005000004060000190600002E06000043060000580600006E0600008306000099060000AF060000C5060000DB060000F1060000070700001E070000350700004C070000630700007A07000091070000A9070000C0070000D8070000F0070000080800002008000039080000510800006A080000830800009C080000B5080000CF080000E8080000020900001C09000036090000500900006A090000850900009F090000BA090000D5090000F00900000B0A0000270A0000420A00005E0A00007A0A0000960A0000B20A0000CE0A0000EB0A0000080B0000240B0000410B00005F0B00007C0B0000990B0000B70B0000D50B0000F30B0000110C00002F0C00004E0C00006C0C00008B0C0000AA0C0000C90C0000E80C0000080D0000270D0000470D0000670D0000870D0000A70D0000C80D0000E80D0000090E00002A0E00004B0E00006C0E00008D0E0000AF0E0000D10E0000F20E0000140F0000370F0000590F00007B0F00009E0F0000C10F0000F80F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 000000000004000006000000000000002C0000003C00000048000000520000005B000000630000006A00000071000000770000007D00000082000000880000008D00000091000000960000009B0000009F000000A3000000A7000000AB000000AF000000B3000000B6000000BA000000BD000000C1000000C4000000C7000000CB000000CE000000D1000000D4000000D7000000DA000000DD000000DF000000E2000000E5000000E8000000EA000000ED000000F0000000F2000000F5000000F7000000FA000000FC000000FF000000010100000301000006010000080100000A0100000D0100000F010000110100001301000016010000180100001A0100001C0100001E01000020010000220100002401000026010000280100002A0100002C0100002E01000030010000320100003401000036010000380100003A0100003C0100003E0100003F01000041010000430100004501000047010000480100004A0100004C0100004E0100004F01000051010000530100005501000056010000580100005A0100005B0100005D0100005F0100006001000062010000640100006501000067010000680100006A0100006B0100006D0100006F010000700100007201000073010000750100007601000078010000790100007B0100007C0100007E0100007F010000810100008201000084010000850100008701000088010000890100008B0100008C0100008E0100008F010000910100009201000093010000950100009601000097010000990100009A0100009C0100009D0100009E010000A0010000A1010000A2010000A4010000A5010000A6010000A8010000A9010000AA010000AB010000AD010000AE010000AF010000B1010000B2010000B3010000B4010000B6010000B7010000B8010000B9010000BB010000BC010000BD010000BE010000C0010000C1010000C2010000C3010000C4010000C6010000C7010000C8010000C9010000CA010000CC010000CD010000CE010000CF010000D0010000D2010000D3010000D4010000D5010000D6010000D7010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003A0200003B0200003C0200003D0200003E0200003F02000040020000410200004202000043020000440200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004C0200004D0200004E0200004F0200005002000051020000520200005302000053020000540200005502000056020000570200005802000059020000590200005A0200005B0200005C0200005D0200005E0200005F0200005F02000060020000610200006202000063020000640200006502000065020000660200006702000068020000690200006A0200006A0200006B0200006C0200006D0200006E0200006F0200006F0200007002000071020000720200007302000073020000740200007502000076020000770200007802000078020000790200007A0200007B0200007C0200007C0200007D0200007E0200007F020000800200008002000081020000820200008302000084020000840200008502000086020000870200008702000088020000890200008A0200008B0200008B0200008C0200008D0200008E0200008F0200008F020000900200009102000092020000920200009302000094020000950200009502000096020000970200009802000099020000990200009A0200009B0200009C0200009C0200009D0200009E0200009F0200009F020000A0020000A1020000A2020000A2020000A3020000A4020000A5020000A5020000A6020000A7020000A8020000A8020000A9020000AA020000AB020000AB020000AC020000AD020000AE020000AE020000AF020000B0020000B0020000B1020000B2020000B3020000B3020000B4020000B5020000B6020000B6020000B7020000B8020000B8020000B9020000BA020000BB020000BB020000BC020000BD020000BD020000BE020000BF020000C0020000C0020000C1020000C2020000C2020000C3020000C4020000C5020000C5020000C6020000C7020000C7020000C8020000C9020000C9020000CA020000CB020000CC020000CC020000CD020000CE020000CE020000CF020000D0020000D0020000D1020000D2020000D3020000D3020000D4020000D5020000D5020000D6020000D7020000D7020000D8020000D9020000D9020000DA020000DB020000DB020000DC020000DD020000DD020000DE020000DF020000DF020000E0020000E1020000E2020000E2020000E3020000E4020000E4020000E5020000E6020000E6020000E7020000E8020000E8020000E9020000EA020000EA020000EB020000EC020000EC020000ED020000EE020000EE020000EF020000EF020000F0020000F1020000F1020000F2020000F3020000F3020000F4020000F5020000F5020000F6020000F7020000F7020000F8020000F9020000F9020000FA020000FB020000FB020000FC020000FD020000FD020000FE020000FE020000FF020000000300000003000001030000020300000203000003030000040300000403000005030000050300000603000007030000070300000803000009030000090300000A0300000B0300000B0300000C0300000C0300000D0300000E0300000E0300000F030000100300001003000011030000110300001203000013030000130300001403000015030000150300001603000016030000170300001803000018030000190300001A0300001A0300001B0300001B0300001C0300001D0300001D0300001E0300001E0300001F03000020030000200300002103000021030000220300002303000023030000240300002503000025030000260300002603000027030000280300002803000029030000290300002A0300002B0300002B0300002C0300002C0300002D0300002E0300002E0300002F0300002F03000030030000310300003103000032030000320300003303000034030000340300003503000035030000360300003603000037030000380300003803000039030000390300003A0300003B0300003B0300003C0300003C0300003D0300003E0300003E0300003F0300003F03000040030000400300004103000042030000420300004303000043030000440300004403000045030000460300004603000047030000470300004803000049030000490300004A0300004A0300004B0300004B0300004C0300004D0300004D0300004E0300004E0300004F0300004F03000050030000510300005103000052030000520300005303000053030000540300005503000055030000560300005603000057030000570300005803000058030000590300005A0300005A0300005B0300005B0300005C0300005C0300005D0300005E0300005E0300005F0300005F0300006003000060030000610300006103000062030000630300006303000064030000640300006503000065030000660300006603000067030000670300006803000069030000690300006A0300006A0300006B0300006B0300006C0300006C0300006D0300006E0300006E0300006F0300006F030000700300007003000071030000710300007203000072030000730300007403000074030000750300007503000076030000760300007703000077030000780300007803000079030000790300007A0300007B0300007B0300007C0300007C0300007D0300007D0300007E0300007E0300007F0300007F030000800300008003000081030000810300008203000083030000830300008403000084030000850300008503000086030000860300008703000087030000880300008803000089030000890300008A0300008A0300008B0300008C0300008C0300008D0300008D0300008E0300008E0300008F0300008F030000900300009003000091030000910300009203000092030000930300009303000094030000940300009503000095030000960300009603000097030000970300009803000099030000990300009A0300009A0300009B0300009B0300009C0300009C0300009D0300009D0300009E0300009E0300009F0300009F030000A0030000A0030000A1030000A1030000A2030000A2030000A3030000A3030000A4030000A4030000A5030000A5030000A6030000A6030000A7030000A7030000A8030000A8030000A9030000A9030000AA030000AA030000AB030000AB030000AC030000AC030000AD030000AD030000AE030000AE030000AF030000AF030000B0030000B0030000B1030000B1030000B2030000B2030000B3030000B3030000B4030000B4030000B5030000B5030000B6030000B6030000B7030000B7030000B8030000B8030000B9030000B9030000BA030000BA030000BB030000BB030000BC030000BC030000BD030000BD030000BE030000BE030000BF030000BF030000C0030000C0030000C1030000C1030000C2030000C2030000C3030000C3030000C4030000C4030000C5030000C5030000C6030000C6030000C7030000C7030000C8030000C8030000C9030000C9030000CA030000CA030000CA030000CB030000CB030000CC030000CC030000CD030000CD030000CE030000CE030000CF030000CF030000D0030000D0030000D1030000D1030000D2030000D2030000D3030000D3030000D4030000D4030000D5030000D5030000D6030000D6030000D6030000D7030000D7030000D8030000D8030000D9030000D9030000DA030000DA030000DB030000DB030000DC030000DC030000DD030000DD030000DE030000DE030000DF030000DF030000E0030000E0030000E0030000E1030000E1030000E2030000E2030000E3030000E3030000E4030000E4030000E5030000E5030000E6030000E6030000E7030000E7030000E7030000E8030000E8030000E9030000E9030000EA030000EA030000EB030000EB030000EC030000EC030000ED030000ED030000EE030000EE030000EE030000EF030000EF030000F0030000F0030000F1030000F1030000F2030000F2030000F3030000F3030000F4030000F4030000F4030000F5030000F5030000F6030000F6030000F7030000F7030000F8030000F8030000F9030000F9030000FA030000FA030000FA030000FB030000FB030000FC030000FC030000FD030000FD030000FE030000FE030000FF030000FF030000000000002C0000003C00000048000000520000005B000000630000006A00000071000000770000007D00000082000000880000008D00000091000000960000009B0000009F000000A3000000A7000000AB000000AF000000B3000000B6000000BA000000BD000000C1000000C4000000C7000000CB000000CE000000D1000000D4000000D7000000DA000000DD000000DF000000E2000000E5000000E8000000EA000000ED000000F0000000F2000000F5000000F7000000FA000000FC000000FF000000010100000301000006010000080100000A0100000D0100000F010000110100001301000016010000180100001A0100001C0100001E01000020010000220100002401000026010000280100002A0100002C0100002E01000030010000320100003401000036010000380100003A0100003C0100003E0100003F01000041010000430100004501000047010000480100004A0100004C0100004E0100004F01000051010000530100005501000056010000580100005A0100005B0100005D0100005F0100006001000062010000640100006501000067010000680100006A0100006B0100006D0100006F010000700100007201000073010000750100007601000078010000790100007B0100007C0100007E0100007F010000810100008201000084010000850100008701000088010000890100008B0100008C0100008E0100008F010000910100009201000093010000950100009601000097010000990100009A0100009C0100009D0100009E010000A0010000A1010000A2010000A4010000A5010000A6010000A8010000A9010000AA010000AB010000AD010000AE010000AF010000B1010000B2010000B3010000B4010000B6010000B7010000B8010000B9010000BB010000BC010000BD010000BE010000C0010000C1010000C2010000C3010000C4010000C6010000C7010000C8010000C9010000CA010000CC010000CD010000CE010000CF010000D0010000D2010000D3010000D4010000D5010000D6010000D7010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003A0200003B0200003C0200003D0200003E0200003F02000040020000410200004202000043020000440200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004C0200004D0200004E0200004F0200005002000051020000520200005302000053020000540200005502000056020000570200005802000059020000590200005A0200005B0200005C0200005D0200005E0200005F0200005F02000060020000610200006202000063020000640200006502000065020000660200006702000068020000690200006A0200006A0200006B0200006C0200006D0200006E0200006F0200006F0200007002000071020000720200007302000073020000740200007502000076020000770200007802000078020000790200007A0200007B0200007C0200007C0200007D0200007E0200007F020000800200008002000081020000820200008302000084020000840200008502000086020000870200008702000088020000890200008A0200008B0200008B0200008C0200008D0200008E0200008F0200008F020000900200009102000092020000920200009302000094020000950200009502000096020000970200009802000099020000990200009A0200009B0200009C0200009C0200009D0200009E0200009F0200009F020000A0020000A1020000A2020000A2020000A3020000A4020000A5020000A5020000A6020000A7020000A8020000A8020000A9020000AA020000AB020000AB020000AC020000AD020000AE020000AE020000AF020000B0020000B0020000B1020000B2020000B3020000B3020000B4020000B5020000B6020000B6020000B7020000B8020000B8020000B9020000BA020000BB020000BB020000BC020000BD020000BD020000BE020000BF020000C0020000C0020000C1020000C2020000C2020000C3020000C4020000C5020000C5020000C6020000C7020000C7020000C8020000C9020000C9020000CA020000CB020000CC020000CC020000CD020000CE020000CE020000CF020000D0020000D0020000D1020000D2020000D3020000D3020000D4020000D5020000D5020000D6020000D7020000D7020000D8020000D9020000D9020000DA020000DB020000DB020000DC020000DD020000DD020000DE020000DF020000DF020000E0020000E1020000E2020000E2020000E3020000E4020000E4020000E5020000E6020000E6020000E7020000E8020000E8020000E9020000EA020000EA020000EB020000EC020000EC020000ED020000EE020000EE020000EF020000EF020000F0020000F1020000F1020000F2020000F3020000F3020000F4020000F5020000F5020000F6020000F7020000F7020000F8020000F9020000F9020000FA020000FB020000FB020000FC020000FD020000FD020000FE020000FE020000FF020000000300000003000001030000020300000203000003030000040300000403000005030000050300000603000007030000070300000803000009030000090300000A0300000B0300000B0300000C0300000C0300000D0300000E0300000E0300000F030000100300001003000011030000110300001203000013030000130300001403000015030000150300001603000016030000170300001803000018030000190300001A0300001A0300001B0300001B0300001C0300001D0300001D0300001E0300001E0300001F03000020030000200300002103000021030000220300002303000023030000240300002503000025030000260300002603000027030000280300002803000029030000290300002A0300002B0300002B0300002C0300002C0300002D0300002E0300002E0300002F0300002F03000030030000310300003103000032030000320300003303000034030000340300003503000035030000360300003603000037030000380300003803000039030000390300003A0300003B0300003B0300003C0300003C0300003D0300003E0300003E0300003F0300003F03000040030000400300004103000042030000420300004303000043030000440300004403000045030000460300004603000047030000470300004803000049030000490300004A0300004A0300004B0300004B0300004C0300004D0300004D0300004E0300004E0300004F0300004F03000050030000510300005103000052030000520300005303000053030000540300005503000055030000560300005603000057030000570300005803000058030000590300005A0300005A0300005B0300005B0300005C0300005C0300005D0300005E0300005E0300005F0300005F0300006003000060030000610300006103000062030000630300006303000064030000640300006503000065030000660300006603000067030000670300006803000069030000690300006A0300006A0300006B0300006B0300006C0300006C0300006D0300006E0300006E0300006F0300006F030000700300007003000071030000710300007203000072030000730300007403000074030000750300007503000076030000760300007703000077030000780300007803000079030000790300007A0300007B0300007B0300007C0300007C0300007D0300007D0300007E0300007E0300007F0300007F030000800300008003000081030000810300008203000083030000830300008403000084030000850300008503000086030000860300008703000087030000880300008803000089030000890300008A0300008A0300008B0300008C0300008C0300008D0300008D0300008E0300008E0300008F0300008F030000900300009003000091030000910300009203000092030000930300009303000094030000940300009503000095030000960300009603000097030000970300009803000099030000990300009A0300009A0300009B0300009B0300009C0300009C0300009D0300009D0300009E0300009E0300009F0300009F030000A0030000A0030000A1030000A1030000A2030000A2030000A3030000A3030000A4030000A4030000A5030000A5030000A6030000A6030000A7030000A7030000A8030000A8030000A9030000A9030000AA030000AA030000AB030000AB030000AC030000AC030000AD030000AD030000AE030000AE030000AF030000AF030000B0030000B0030000B1030000B1030000B2030000B2030000B3030000B3030000B4030000B4030000B5030000B5030000B6030000B6030000B7030000B7030000B8030000B8030000B9030000B9030000BA030000BA030000BB030000BB030000BC030000BC030000BD030000BD030000BE030000BE030000BF030000BF030000C0030000C0030000C1030000C1030000C2030000C2030000C3030000C3030000C4030000C4030000C5030000C5030000C6030000C6030000C7030000C7030000C8030000C8030000C9030000C9030000CA030000CA030000CA030000CB030000CB030000CC030000CC030000CD030000CD030000CE030000CE030000CF030000CF030000D0030000D0030000D1030000D1030000D2030000D2030000D3030000D3030000D4030000D4030000D5030000D5030000D6030000D6030000D6030000D7030000D7030000D8030000D8030000D9030000D9030000DA030000DA030000DB030000DB030000DC030000DC030000DD030000DD030000DE030000DE030000DF030000DF030000E0030000E0030000E0030000E1030000E1030000E2030000E2030000E3030000E3030000E4030000E4030000E5030000E5030000E6030000E6030000E7030000E7030000E7030000E8030000E8030000E9030000E9030000EA030000EA030000EB030000EB030000EC030000EC030000ED030000ED030000EE030000EE030000EE030000EF030000EF030000F0030000F0030000F1030000F1030000F2030000F2030000F3030000F3030000F4030000F4030000F4030000F5030000F5030000F6030000F6030000F7030000F7030000F8030000F8030000F9030000F9030000FA030000FA030000FA030000FB030000FB030000FC030000FC030000FD030000FD030000FE030000FE030000FF030000FF030000000000002800000037000000430000004C000000540000005B00000062000000680000006E00000073000000780000007D00000082000000860000008A0000008E00000092000000960000009A0000009E000000A1000000A5000000A8000000AB000000AE000000B2000000B5000000B8000000BB000000BE000000C0000000C3000000C6000000C9000000CB000000CE000000D0000000D3000000D6000000D8000000DA000000DD000000DF000000E2000000E4000000E6000000E8000000EB000000ED000000EF000000F1000000F3000000F5000000F8000000FA000000FC000000FE00000000010000020100000401000006010000080100000A0100000B0100000D0100000F01000011010000130100001501000017010000180100001A0100001C0100001E0100001F01000021010000230100002501000026010000280100002A0100002B0100002D0100002F0100003001000032010000340100003501000037010000380100003A0100003B0100003D0100003F010000400100004201000043010000450100004601000048010000490100004B0100004C0100004E0100004F010000500100005201000053010000550100005601000058010000590100005A0100005C0100005D0100005E01000060010000610100006301000064010000650100006701000068010000690100006B0100006C0100006D0100006F01000070010000710100007201000074010000750100007601000078010000790100007A0100007B0100007D0100007E0100007F01000080010000810100008301000084010000850100008601000088010000890100008A0100008B0100008C0100008D0100008F0100009001000091010000920100009301000094010000960100009701000098010000990100009A0100009B0100009C0100009E0100009F010000A0010000A1010000A2010000A3010000A4010000A5010000A7010000A8010000A9010000AA010000AB010000AC010000AD010000AE010000AF010000B0010000B1010000B2010000B3010000B5010000B6010000B7010000B8010000B9010000BA010000BB010000BC010000BD010000BE010000BF010000C0010000C1010000C2010000C3010000C4010000C5010000C6010000C7010000C8010000C9010000CA010000CB010000CC010000CD010000CE010000CF010000D0010000D1010000D2010000D3010000D4010000D5010000D6010000D7010000D8010000D9010000DA010000DB010000DC010000DD010000DD010000DE010000DF010000E0010000E1010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EB010000EB010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F4010000F5010000F6010000F7010000F8010000F9010000FA010000FB010000FC010000FC010000FD010000FE010000FF0100000002000001020000020200000302000003020000040200000502000006020000070200000802000009020000090200000A0200000B0200000C0200000D0200000E0200000F0200000F0200001002000011020000120200001302000014020000140200001502000016020000170200001802000019020000190200001A0200001B0200001C0200001D0200001D0200001E0200001F0200002002000021020000220200002202000023020000240200002502000026020000260200002702000028020000290200002A0200002A0200002B0200002C0200002D0200002D0200002E0200002F020000300200003102000031020000320200003302000034020000340200003502000036020000370200003802000038020000390200003A0200003B0200003B0200003C0200003D0200003E0200003E0200003F020000400200004102000041020000420200004302000044020000440200004502000046020000470200004702000048020000490200004A0200004A0200004B0200004C0200004D0200004D0200004E0200004F02000050020000500200005102000052020000530200005302000054020000550200005502000056020000570200005802000058020000590200005A0200005A0200005B0200005C0200005D0200005D0200005E0200005F0200005F02000060020000610200006202000062020000630200006402000064020000650200006602000067020000670200006802000069020000690200006A0200006B0200006B0200006C0200006D0200006D0200006E0200006F0200007002000070020000710200007202000072020000730200007402000074020000750200007602000076020000770200007802000078020000790200007A0200007A0200007B0200007C0200007C0200007D0200007E0200007E0200007F0200008002000080020000810200008202000082020000830200008402000084020000850200008602000086020000870200008802000088020000890200008A0200008A0200008B0200008C0200008C0200008D0200008E0200008E0200008F020000900200009002000091020000920200009202000093020000930200009402000095020000950200009602000097020000970200009802000099020000990200009A0200009A0200009B0200009C0200009C0200009D0200009E0200009E0200009F020000A0020000A0020000A1020000A1020000A2020000A3020000A3020000A4020000A5020000A5020000A6020000A6020000A7020000A8020000A8020000A9020000AA020000AA020000AB020000AB020000AC020000AD020000AD020000AE020000AE020000AF020000B0020000B0020000B1020000B1020000B2020000B3020000B3020000B4020000B5020000B5020000B6020000B6020000B7020000B8020000B8020000B9020000B9020000BA020000BB020000BB020000BC020000BC020000BD020000BE020000BE020000BF020000BF020000C0020000C1020000C1020000C2020000C2020000C3020000C4020000C4020000C5020000C5020000C6020000C6020000C7020000C8020000C8020000C9020000C9020000CA020000CB020000CB020000CC020000CC020000CD020000CD020000CE020000CF020000CF020000D0020000D0020000D1020000D2020000D2020000D3020000D3020000D4020000D4020000D5020000D6020000D6020000D7020000D7020000D8020000D8020000D9020000DA020000DA020000DB020000DB020000DC020000DC020000DD020000DE020000DE020000DF020000DF020000E0020000E0020000E1020000E1020000E2020000E3020000E3020000E4020000E4020000E5020000E5020000E6020000E7020000E7020000E8020000E8020000E9020000E9020000EA020000EA020000EB020000EC020000EC020000ED020000ED020000EE020000EE020000EF020000EF020000F0020000F0020000F1020000F2020000F2020000F3020000F3020000F4020000F4020000F5020000F5020000F6020000F6020000F7020000F8020000F8020000F9020000F9020000FA020000FA020000FB020000FB020000FC020000FC020000FD020000FE020000FE020000FF020000FF020000000300000003000001030000010300000203000002030000030300000303000004030000040300000503000006030000060300000703000007030000080300000803000009030000090300000A0300000A0300000B0300000B0300000C0300000C0300000D0300000D0300000E0300000F0300000F03000010030000100300001103000011030000120300001203000013030000130300001403000014030000150300001503000016030000160300001703000017030000180300001803000019030000190300001A0300001A0300001B0300001B0300001C0300001D0300001D0300001E0300001E0300001F0300001F03000020030000200300002103000021030000220300002203000023030000230300002403000024030000250300002503000026030000260300002703000027030000280300002803000029030000290300002A0300002A0300002B0300002B0300002C0300002C0300002D0300002D0300002E0300002E0300002F0300002F03000030030000300300003103000031030000320300003203000033030000330300003403000034030000350300003503000036030000360300003703000037030000380300003803000039030000390300003A0300003A0300003B0300003B0300003C0300003C0300003D0300003D0300003E0300003E0300003F0300003F0300003F03000040030000400300004103000041030000420300004203000043030000430300004403000044030000450300004503000046030000460300004703000047030000480300004803000049030000490300004A0300004A0300004B0300004B0300004C0300004C0300004D0300004D0300004D0300004E0300004E0300004F0300004F0300005003000050030000510300005103000052030000520300005303000053030000540300005403000055030000550300005603000056030000560300005703000057030000580300005803000059030000590300005A0300005A0300005B0300005B0300005C0300005C0300005D0300005D0300005E0300005E0300005E0300005F0300005F0300006003000060030000610300006103000062030000620300006303000063030000640300006403000064030000650300006503000066030000660300006703000067030000680300006803000069030000690300006A0300006A0300006A0300006B0300006B0300006C0300006C0300006D0300006D0300006E0300006E0300006F0300006F0300006F030000700300007003000071030000710300007203000072030000730300007303000074030000740300007403000075030000750300007603000076030000770300007703000078030000780300007903000079030000790300007A0300007A0300007B0300007B0300007C0300007C0300007D0300007D0300007D0300007E0300007E0300007F0300007F03000080030000800300008103000081030000810300008203000082030000830300008303000084030000840300008503000085030000850300008603000086030000870300008703000088030000880300008903000089030000890300008A0300008A0300008B0300008B0300008C0300008C0300008D0300008D0300008D0300008E0300008E0300008F0300008F03000090030000900300009003000091030000910300009203000092030000930300009303000093030000940300009403000095030000950300009603000096030000970300009703000097030000980300009803000099030000990300009A0300009A0300009A0300009B0300009B0300009C0300009C0300009D0300009D0300009D0300009E0300009E0300009F0300009F030000A0030000A0030000A0030000A1030000A1030000A2030000A2030000A3030000A3030000A3030000A4030000A4030000A5030000A5030000A5030000A6030000A6030000A7030000A7030000A8030000A8030000A8030000A9030000A9030000AA030000AA030000AB030000AB030000AB030000AC030000AC030000AD030000AD030000AE030000AE030000AE030000AF030000 + 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F00000021000000210000000300000003000000000000002D00000000000000010000000000C842000000000000803F0000C842000000000000803F0100000000000000000000000000000000000000000000000F0000002100000021000000030000000300000000000000FF000000C3000000010000000000C842000000000000803F0000C842000000000000803F0200000000000000000000000000000000000000000000000F0000002100000021000000030000000300000000000000870000004B000000010000000000C842000000000000803F0000C842000000000000803F0000000000000000640000000A0000000100000064000000000000000100000021000000210000000300000003000000000000000000000080010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 0000000008000000080000000800000000000000100000000F000000070000000D00000005000000030000000B00000001000000090000000C000000040000000E000000060000000000000008000000020000000A000000 + + + + + ECFFFFFF0000803F936F163FDA1AB13DEDFFFFFF0000803F87501D3FB9530A3EEEFFFFFF0000803FAAEE213FD1912C3EEFFFFFFF0000803F8CBC283F8C82603EF0FFFFFF0000803F473C2D3FD1E9813EF1FFFFFF0000803F5C02343FFE0E9D3EF2FFFFFF0000803F6E6E383FE04DAF3EF3FFFFFF0000803F31093F3F3C16CB3EF4FFFFFF0000803F3960433F73BDDD3EF5FFFFFF0000803F91D5493F6519FA3EF6FFFFFF0000803F840E4E3F957E063FF7FFFFFF0000803F1B62543FCEDF143FF8FFFFFF0000803F828C583F90871E3FF9FFFFFF0000803FF2B65E3F1A182D3FFAFFFFFF0000803FE7C4623FABCE363FFBFFFFFF0000803FD7BE683F8E5A453FFCFFFFFF0000803F41B66C3FD6194F3FFDFFFFFF0000803F1E8A723F8AAC5D3FFEFFFFFF0000803F516B763F6475673FFFFFFFFF0000803F8A227C3FB41E763F000000000000803F0000803F0000803F01000000836B723F6189773F0000803F02000000BF0C6A3F484E723F0000803F03000000CD945E3F191E6B3F0000803F04000000B988573FEFAB663F0000803F0500000084D44D3F5E81603F0000803F0600000045D9473FEBAA5C3F0000803F07000000CA883F3F2651573F0000803F080000005C593A3FADFB533F0000803F09000000802D333F05514F3F0000803F0A00000083C02E3FC3624C3F0000803F0B0000005986283FE04C483F0000803F0C0000008C9D243F18B3453F0000803F0D000000431C1F3F8909423F0000803F0E000000ABB21B3FE4C03F3F0000803F0F0000003DD4163FC07A3C3F0000803F1000000009C0133FE4683A3F0000803F110000008A740F3FF27B373F0000803F1200000039B80C3FCB9D353F0000803F130000005DDE083FBAF9323F0000803F140000009467063F3448313F0000803F + + diff --git a/proprietary/vendor/etc/qdcm_calib_data_mipi_mot_vid_txd_ili9883c_hdp_652_120.xml b/proprietary/vendor/etc/qdcm_calib_data_mipi_mot_vid_txd_ili9883c_hdp_652_120.xml new file mode 100644 index 0000000..bb0ee60 --- /dev/null +++ b/proprietary/vendor/etc/qdcm_calib_data_mipi_mot_vid_txd_ili9883c_hdp_652_120.xml @@ -0,0 +1,26 @@ + + + + + + 00000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 00000400000100000600000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000001010000110100002101000031010000410100005101000061010000710100008101000091010000A1010000B1010000C1010000D1010000E1010000F101000002020000120200002202000032020000420200005202000062020000720200008202000092020000A2020000B2020000C2020000D2020000E2020000F202000003030000130300002303000033030000430300005303000063030000730300008303000093030000A3030000B3030000C3030000D3030000E3030000F303000004040000140400002404000034040000440400005404000064040000740400008404000094040000A4040000B4040000C4040000D4040000E4040000F404000005050000150500002505000035050000450500005505000065050000750500008505000095050000A5050000B5050000C5050000D5050000E5050000F505000006060000160600002606000036060000460600005606000066060000760600008606000096060000A6060000B6060000C6060000D6060000E6060000F606000007070000170700002707000037070000470700005707000067070000770700008707000097070000A7070000B7070000C7070000D7070000E7070000F707000008080000180800002808000038080000480800005808000068080000780800008808000098080000A8080000B8080000C8080000D8080000E8080000F808000009090000190900002909000039090000490900005909000069090000790900008909000099090000A9090000B9090000C9090000D9090000E9090000F90900000A0A00001A0A00002A0A00003A0A00004A0A00005A0A00006A0A00007A0A00008A0A00009A0A0000AA0A0000BA0A0000CA0A0000DA0A0000EA0A0000FA0A00000B0B00001B0B00002B0B00003B0B00004B0B00005B0B00006B0B00007B0B00008B0B00009B0B0000AB0B0000BB0B0000CB0B0000DB0B0000EB0B0000FB0B00000C0C00001C0C00002C0C00003C0C00004C0C00005C0C00006C0C00007C0C00008C0C00009C0C0000AC0C0000BC0C0000CC0C0000DC0C0000EC0C0000FC0C00000D0D00001D0D00002D0D00003D0D00004D0D00005D0D00006D0D00007D0D00008D0D00009D0D0000AD0D0000BD0D0000CD0D0000DD0D0000ED0D0000FD0D00000E0E00001E0E00002E0E00003E0E00004E0E00005E0E00006E0E00007E0E00008E0E00009E0E0000AE0E0000BE0E0000CE0E0000DE0E0000EE0E0000FE0E00000F0F00001F0F00002F0F00003F0F00004F0F00005F0F00006F0F00007F0F00008F0F00009F0F0000AF0F0000BF0F0000CF0F0000DF0F0000EF0F0000FF0F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000001010000110100002101000031010000410100005101000061010000710100008101000091010000A1010000B1010000C1010000D1010000E1010000F101000002020000120200002202000032020000420200005202000062020000720200008202000092020000A2020000B2020000C2020000D2020000E2020000F202000003030000130300002303000033030000430300005303000063030000730300008303000093030000A3030000B3030000C3030000D3030000E3030000F303000004040000140400002404000034040000440400005404000064040000740400008404000094040000A4040000B4040000C4040000D4040000E4040000F404000005050000150500002505000035050000450500005505000065050000750500008505000095050000A5050000B5050000C5050000D5050000E5050000F505000006060000160600002606000036060000460600005606000066060000760600008606000096060000A6060000B6060000C6060000D6060000E6060000F606000007070000170700002707000037070000470700005707000067070000770700008707000097070000A7070000B7070000C7070000D7070000E7070000F707000008080000180800002808000038080000480800005808000068080000780800008808000098080000A8080000B8080000C8080000D8080000E8080000F808000009090000190900002909000039090000490900005909000069090000790900008909000099090000A9090000B9090000C9090000D9090000E9090000F90900000A0A00001A0A00002A0A00003A0A00004A0A00005A0A00006A0A00007A0A00008A0A00009A0A0000AA0A0000BA0A0000CA0A0000DA0A0000EA0A0000FA0A00000B0B00001B0B00002B0B00003B0B00004B0B00005B0B00006B0B00007B0B00008B0B00009B0B0000AB0B0000BB0B0000CB0B0000DB0B0000EB0B0000FB0B00000C0C00001C0C00002C0C00003C0C00004C0C00005C0C00006C0C00007C0C00008C0C00009C0C0000AC0C0000BC0C0000CC0C0000DC0C0000EC0C0000FC0C00000D0D00001D0D00002D0D00003D0D00004D0D00005D0D00006D0D00007D0D00008D0D00009D0D0000AD0D0000BD0D0000CD0D0000DD0D0000ED0D0000FD0D00000E0E00001E0E00002E0E00003E0E00004E0E00005E0E00006E0E00007E0E00008E0E00009E0E0000AE0E0000BE0E0000CE0E0000DE0E0000EE0E0000FE0E00000F0F00001F0F00002F0F00003F0F00004F0F00005F0F00006F0F00007F0F00008F0F00009F0F0000AF0F0000BF0F0000CF0F0000DF0F0000EF0F0000FF0F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000001010000110100002101000031010000410100005101000061010000710100008101000091010000A1010000B1010000C1010000D1010000E1010000F101000002020000120200002202000032020000420200005202000062020000720200008202000092020000A2020000B2020000C2020000D2020000E2020000F202000003030000130300002303000033030000430300005303000063030000730300008303000093030000A3030000B3030000C3030000D3030000E3030000F303000004040000140400002404000034040000440400005404000064040000740400008404000094040000A4040000B4040000C4040000D4040000E4040000F404000005050000150500002505000035050000450500005505000065050000750500008505000095050000A5050000B5050000C5050000D5050000E5050000F505000006060000160600002606000036060000460600005606000066060000760600008606000096060000A6060000B6060000C6060000D6060000E6060000F606000007070000170700002707000037070000470700005707000067070000770700008707000097070000A7070000B7070000C7070000D7070000E7070000F707000008080000180800002808000038080000480800005808000068080000780800008808000098080000A8080000B8080000C8080000D8080000E8080000F808000009090000190900002909000039090000490900005909000069090000790900008909000099090000A9090000B9090000C9090000D9090000E9090000F90900000A0A00001A0A00002A0A00003A0A00004A0A00005A0A00006A0A00007A0A00008A0A00009A0A0000AA0A0000BA0A0000CA0A0000DA0A0000EA0A0000FA0A00000B0B00001B0B00002B0B00003B0B00004B0B00005B0B00006B0B00007B0B00008B0B00009B0B0000AB0B0000BB0B0000CB0B0000DB0B0000EB0B0000FB0B00000C0C00001C0C00002C0C00003C0C00004C0C00005C0C00006C0C00007C0C00008C0C00009C0C0000AC0C0000BC0C0000CC0C0000DC0C0000EC0C0000FC0C00000D0D00001D0D00002D0D00003D0D00004D0D00005D0D00006D0D00007D0D00008D0D00009D0D0000AD0D0000BD0D0000CD0D0000DD0D0000ED0D0000FD0D00000E0E00001E0E00002E0E00003E0E00004E0E00005E0E00006E0E00007E0E00008E0E00009E0E0000AE0E0000BE0E0000CE0E0000DE0E0000EE0E0000FE0E00000F0F00001F0F00002F0F00003F0F00004F0F00005F0F00006F0F00007F0F00008F0F00009F0F0000AF0F0000BF0F0000CF0F0000DF0F0000EF0F0000FF0F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 000000000004000006000000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000800000008100000082000000830000008400000085000000860000008700000088000000890000008A0000008B0000008C0000008D0000008E0000008F000000900000009100000092000000930000009400000095000000960000009700000098000000990000009A0000009B0000009C0000009D0000009E0000009F000000A0000000A1000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000000AA000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000BA000000BB000000BC000000BD000000BE000000BF000000C0000000C1000000C2000000C3000000C4000000C5000000C6000000C7000000C8000000C9000000CA000000CB000000CC000000CD000000CE000000CF000000D0000000D1000000D2000000D3000000D4000000D5000000D6000000D7000000D8000000D9000000DA000000DB000000DC000000DD000000DE000000DF000000E0000000E1000000E2000000E3000000E4000000E5000000E6000000E7000000E8000000E9000000EA000000EB000000EC000000ED000000EE000000EF000000F0000000F1000000F2000000F3000000F4000000F5000000F6000000F7000000F8000000F9000000FA000000FB000000FC000000FD000000FE000000FF000000000100000101000002010000030100000401000005010000060100000701000008010000090100000A0100000B0100000C0100000D0100000E0100000F010000100100001101000012010000130100001401000015010000160100001701000018010000190100001A0100001B0100001C0100001D0100001E0100001F010000200100002101000022010000230100002401000025010000260100002701000028010000290100002A0100002B0100002C0100002D0100002E0100002F010000300100003101000032010000330100003401000035010000360100003701000038010000390100003A0100003B0100003C0100003D0100003E0100003F010000400100004101000042010000430100004401000045010000460100004701000048010000490100004A0100004B0100004C0100004D0100004E0100004F010000500100005101000052010000530100005401000055010000560100005701000058010000590100005A0100005B0100005C0100005D0100005E0100005F010000600100006101000062010000630100006401000065010000660100006701000068010000690100006A0100006B0100006C0100006D0100006E0100006F010000700100007101000072010000730100007401000075010000760100007701000078010000790100007A0100007B0100007C0100007D0100007E0100007F010000800100008101000082010000830100008401000085010000860100008701000088010000890100008A0100008B0100008C0100008D0100008E0100008F010000900100009101000092010000930100009401000095010000960100009701000098010000990100009A0100009B0100009C0100009D0100009E0100009F010000A0010000A1010000A2010000A3010000A4010000A5010000A6010000A7010000A8010000A9010000AA010000AB010000AC010000AD010000AE010000AF010000B0010000B1010000B2010000B3010000B4010000B5010000B6010000B7010000B8010000B9010000BA010000BB010000BC010000BD010000BE010000BF010000C0010000C1010000C2010000C3010000C4010000C5010000C6010000C7010000C8010000C9010000CA010000CB010000CC010000CD010000CE010000CF010000D0010000D1010000D2010000D3010000D4010000D5010000D6010000D7010000D8010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E1010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EB010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F8010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003B0200003C0200003D0200003E0200003F020000400200004102000042020000430200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004D0200004E0200004F020000500200005102000052020000530200005402000055020000560200005702000058020000590200005A0200005B0200005C0200005D0200005E0200005F020000600200006102000062020000630200006402000065020000660200006702000068020000690200006A0200006B0200006C0200006D0200006E0200006F020000700200007102000072020000730200007402000075020000760200007702000078020000790200007A0200007B0200007C0200007D0200007E0200007F020000800200008102000082020000830200008402000085020000860200008702000088020000890200008A0200008B0200008C0200008D0200008E0200008F020000900200009102000092020000930200009402000095020000960200009702000098020000990200009A0200009B0200009C0200009D0200009E0200009F020000A0020000A1020000A2020000A3020000A4020000A5020000A6020000A7020000A8020000A9020000AA020000AB020000AC020000AD020000AE020000AF020000B0020000B1020000B2020000B3020000B4020000B5020000B6020000B7020000B8020000B9020000BA020000BB020000BC020000BD020000BE020000BF020000C0020000C1020000C2020000C3020000C4020000C5020000C6020000C7020000C8020000C9020000CA020000CB020000CC020000CD020000CE020000CF020000D0020000D1020000D2020000D3020000D4020000D5020000D6020000D7020000D8020000D9020000DA020000DB020000DC020000DD020000DE020000DF020000E0020000E1020000E2020000E3020000E4020000E5020000E6020000E7020000E8020000E9020000EA020000EB020000EC020000ED020000EE020000EF020000F0020000F1020000F2020000F3020000F4020000F5020000F6020000F7020000F8020000F9020000FA020000FB020000FC020000FD020000FE020000FF020000000300000103000002030000030300000403000005030000060300000703000008030000090300000A0300000B0300000C0300000D0300000E0300000F030000100300001103000012030000130300001403000015030000160300001703000018030000190300001A0300001B0300001C0300001D0300001E0300001F030000200300002103000022030000230300002403000025030000260300002703000028030000290300002A0300002B0300002C0300002D0300002E0300002F030000300300003103000032030000330300003403000035030000360300003703000038030000390300003A0300003B0300003C0300003D0300003E0300003F030000400300004103000042030000430300004403000045030000460300004703000048030000490300004A0300004B0300004C0300004D0300004E0300004F030000500300005103000052030000530300005403000055030000560300005703000058030000590300005A0300005B0300005C0300005D0300005E0300005F030000600300006103000062030000630300006403000065030000660300006703000068030000690300006A0300006B0300006C0300006D0300006E0300006F030000700300007103000072030000730300007403000075030000760300007703000078030000790300007A0300007B0300007C0300007D0300007E0300007F030000800300008103000082030000830300008403000085030000860300008703000088030000890300008A0300008B0300008C0300008D0300008E0300008F030000900300009103000092030000930300009403000095030000960300009703000098030000990300009A0300009B0300009C0300009D0300009E0300009F030000A0030000A1030000A2030000A3030000A4030000A5030000A6030000A7030000A8030000A9030000AA030000AB030000AC030000AD030000AE030000AF030000B0030000B1030000B2030000B3030000B4030000B5030000B6030000B7030000B8030000B9030000BA030000BB030000BC030000BD030000BE030000BF030000C0030000C1030000C2030000C3030000C4030000C5030000C6030000C7030000C8030000C9030000CA030000CB030000CC030000CD030000CE030000CF030000D0030000D1030000D2030000D3030000D4030000D5030000D6030000D7030000D8030000D9030000DA030000DB030000DC030000DD030000DE030000DF030000E0030000E1030000E2030000E3030000E4030000E5030000E6030000E7030000E8030000E9030000EA030000EB030000EC030000ED030000EE030000EF030000F0030000F1030000F2030000F3030000F4030000F5030000F6030000F7030000F8030000F9030000FA030000FB030000FC030000FD030000FE030000FF030000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000800000008100000082000000830000008400000085000000860000008700000088000000890000008A0000008B0000008C0000008D0000008E0000008F000000900000009100000092000000930000009400000095000000960000009700000098000000990000009A0000009B0000009C0000009D0000009E0000009F000000A0000000A1000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000000AA000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000BA000000BB000000BC000000BD000000BE000000BF000000C0000000C1000000C2000000C3000000C4000000C5000000C6000000C7000000C8000000C9000000CA000000CB000000CC000000CD000000CE000000CF000000D0000000D1000000D2000000D3000000D4000000D5000000D6000000D7000000D8000000D9000000DA000000DB000000DC000000DD000000DE000000DF000000E0000000E1000000E2000000E3000000E4000000E5000000E6000000E7000000E8000000E9000000EA000000EB000000EC000000ED000000EE000000EF000000F0000000F1000000F2000000F3000000F4000000F5000000F6000000F7000000F8000000F9000000FA000000FB000000FC000000FD000000FE000000FF000000000100000101000002010000030100000401000005010000060100000701000008010000090100000A0100000B0100000C0100000D0100000E0100000F010000100100001101000012010000130100001401000015010000160100001701000018010000190100001A0100001B0100001C0100001D0100001E0100001F010000200100002101000022010000230100002401000025010000260100002701000028010000290100002A0100002B0100002C0100002D0100002E0100002F010000300100003101000032010000330100003401000035010000360100003701000038010000390100003A0100003B0100003C0100003D0100003E0100003F010000400100004101000042010000430100004401000045010000460100004701000048010000490100004A0100004B0100004C0100004D0100004E0100004F010000500100005101000052010000530100005401000055010000560100005701000058010000590100005A0100005B0100005C0100005D0100005E0100005F010000600100006101000062010000630100006401000065010000660100006701000068010000690100006A0100006B0100006C0100006D0100006E0100006F010000700100007101000072010000730100007401000075010000760100007701000078010000790100007A0100007B0100007C0100007D0100007E0100007F010000800100008101000082010000830100008401000085010000860100008701000088010000890100008A0100008B0100008C0100008D0100008E0100008F010000900100009101000092010000930100009401000095010000960100009701000098010000990100009A0100009B0100009C0100009D0100009E0100009F010000A0010000A1010000A2010000A3010000A4010000A5010000A6010000A7010000A8010000A9010000AA010000AB010000AC010000AD010000AE010000AF010000B0010000B1010000B2010000B3010000B4010000B5010000B6010000B7010000B8010000B9010000BA010000BB010000BC010000BD010000BE010000BF010000C0010000C1010000C2010000C3010000C4010000C5010000C6010000C7010000C8010000C9010000CA010000CB010000CC010000CD010000CE010000CF010000D0010000D1010000D2010000D3010000D4010000D5010000D6010000D7010000D8010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E1010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EB010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F8010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003B0200003C0200003D0200003E0200003F020000400200004102000042020000430200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004D0200004E0200004F020000500200005102000052020000530200005402000055020000560200005702000058020000590200005A0200005B0200005C0200005D0200005E0200005F020000600200006102000062020000630200006402000065020000660200006702000068020000690200006A0200006B0200006C0200006D0200006E0200006F020000700200007102000072020000730200007402000075020000760200007702000078020000790200007A0200007B0200007C0200007D0200007E0200007F020000800200008102000082020000830200008402000085020000860200008702000088020000890200008A0200008B0200008C0200008D0200008E0200008F020000900200009102000092020000930200009402000095020000960200009702000098020000990200009A0200009B0200009C0200009D0200009E0200009F020000A0020000A1020000A2020000A3020000A4020000A5020000A6020000A7020000A8020000A9020000AA020000AB020000AC020000AD020000AE020000AF020000B0020000B1020000B2020000B3020000B4020000B5020000B6020000B7020000B8020000B9020000BA020000BB020000BC020000BD020000BE020000BF020000C0020000C1020000C2020000C3020000C4020000C5020000C6020000C7020000C8020000C9020000CA020000CB020000CC020000CD020000CE020000CF020000D0020000D1020000D2020000D3020000D4020000D5020000D6020000D7020000D8020000D9020000DA020000DB020000DC020000DD020000DE020000DF020000E0020000E1020000E2020000E3020000E4020000E5020000E6020000E7020000E8020000E9020000EA020000EB020000EC020000ED020000EE020000EF020000F0020000F1020000F2020000F3020000F4020000F5020000F6020000F7020000F8020000F9020000FA020000FB020000FC020000FD020000FE020000FF020000000300000103000002030000030300000403000005030000060300000703000008030000090300000A0300000B0300000C0300000D0300000E0300000F030000100300001103000012030000130300001403000015030000160300001703000018030000190300001A0300001B0300001C0300001D0300001E0300001F030000200300002103000022030000230300002403000025030000260300002703000028030000290300002A0300002B0300002C0300002D0300002E0300002F030000300300003103000032030000330300003403000035030000360300003703000038030000390300003A0300003B0300003C0300003D0300003E0300003F030000400300004103000042030000430300004403000045030000460300004703000048030000490300004A0300004B0300004C0300004D0300004E0300004F030000500300005103000052030000530300005403000055030000560300005703000058030000590300005A0300005B0300005C0300005D0300005E0300005F030000600300006103000062030000630300006403000065030000660300006703000068030000690300006A0300006B0300006C0300006D0300006E0300006F030000700300007103000072030000730300007403000075030000760300007703000078030000790300007A0300007B0300007C0300007D0300007E0300007F030000800300008103000082030000830300008403000085030000860300008703000088030000890300008A0300008B0300008C0300008D0300008E0300008F030000900300009103000092030000930300009403000095030000960300009703000098030000990300009A0300009B0300009C0300009D0300009E0300009F030000A0030000A1030000A2030000A3030000A4030000A5030000A6030000A7030000A8030000A9030000AA030000AB030000AC030000AD030000AE030000AF030000B0030000B1030000B2030000B3030000B4030000B5030000B6030000B7030000B8030000B9030000BA030000BB030000BC030000BD030000BE030000BF030000C0030000C1030000C2030000C3030000C4030000C5030000C6030000C7030000C8030000C9030000CA030000CB030000CC030000CD030000CE030000CF030000D0030000D1030000D2030000D3030000D4030000D5030000D6030000D7030000D8030000D9030000DA030000DB030000DC030000DD030000DE030000DF030000E0030000E1030000E2030000E3030000E4030000E5030000E6030000E7030000E8030000E9030000EA030000EB030000EC030000ED030000EE030000EF030000F0030000F1030000F2030000F3030000F4030000F5030000F6030000F7030000F8030000F9030000FA030000FB030000FC030000FD030000FE030000FF030000000000000100000002000000030000000400000005000000060000000700000008000000090000000A0000000B0000000C0000000D0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001B0000001C0000001D0000001E0000001F000000200000002100000022000000230000002400000025000000260000002700000028000000290000002A0000002B0000002C0000002D0000002E0000002F000000300000003100000032000000330000003400000035000000360000003700000038000000390000003A0000003B0000003C0000003D0000003E0000003F000000400000004100000042000000430000004400000045000000460000004700000048000000490000004A0000004B0000004C0000004D0000004E0000004F000000500000005100000052000000530000005400000055000000560000005700000058000000590000005A0000005B0000005C0000005D0000005E0000005F000000600000006100000062000000630000006400000065000000660000006700000068000000690000006A0000006B0000006C0000006D0000006E0000006F000000700000007100000072000000730000007400000075000000760000007700000078000000790000007A0000007B0000007C0000007D0000007E0000007F000000800000008100000082000000830000008400000085000000860000008700000088000000890000008A0000008B0000008C0000008D0000008E0000008F000000900000009100000092000000930000009400000095000000960000009700000098000000990000009A0000009B0000009C0000009D0000009E0000009F000000A0000000A1000000A2000000A3000000A4000000A5000000A6000000A7000000A8000000A9000000AA000000AB000000AC000000AD000000AE000000AF000000B0000000B1000000B2000000B3000000B4000000B5000000B6000000B7000000B8000000B9000000BA000000BB000000BC000000BD000000BE000000BF000000C0000000C1000000C2000000C3000000C4000000C5000000C6000000C7000000C8000000C9000000CA000000CB000000CC000000CD000000CE000000CF000000D0000000D1000000D2000000D3000000D4000000D5000000D6000000D7000000D8000000D9000000DA000000DB000000DC000000DD000000DE000000DF000000E0000000E1000000E2000000E3000000E4000000E5000000E6000000E7000000E8000000E9000000EA000000EB000000EC000000ED000000EE000000EF000000F0000000F1000000F2000000F3000000F4000000F5000000F6000000F7000000F8000000F9000000FA000000FB000000FC000000FD000000FE000000FF000000000100000101000002010000030100000401000005010000060100000701000008010000090100000A0100000B0100000C0100000D0100000E0100000F010000100100001101000012010000130100001401000015010000160100001701000018010000190100001A0100001B0100001C0100001D0100001E0100001F010000200100002101000022010000230100002401000025010000260100002701000028010000290100002A0100002B0100002C0100002D0100002E0100002F010000300100003101000032010000330100003401000035010000360100003701000038010000390100003A0100003B0100003C0100003D0100003E0100003F010000400100004101000042010000430100004401000045010000460100004701000048010000490100004A0100004B0100004C0100004D0100004E0100004F010000500100005101000052010000530100005401000055010000560100005701000058010000590100005A0100005B0100005C0100005D0100005E0100005F010000600100006101000062010000630100006401000065010000660100006701000068010000690100006A0100006B0100006C0100006D0100006E0100006F010000700100007101000072010000730100007401000075010000760100007701000078010000790100007A0100007B0100007C0100007D0100007E0100007F010000800100008101000082010000830100008401000085010000860100008701000088010000890100008A0100008B0100008C0100008D0100008E0100008F010000900100009101000092010000930100009401000095010000960100009701000098010000990100009A0100009B0100009C0100009D0100009E0100009F010000A0010000A1010000A2010000A3010000A4010000A5010000A6010000A7010000A8010000A9010000AA010000AB010000AC010000AD010000AE010000AF010000B0010000B1010000B2010000B3010000B4010000B5010000B6010000B7010000B8010000B9010000BA010000BB010000BC010000BD010000BE010000BF010000C0010000C1010000C2010000C3010000C4010000C5010000C6010000C7010000C8010000C9010000CA010000CB010000CC010000CD010000CE010000CF010000D0010000D1010000D2010000D3010000D4010000D5010000D6010000D7010000D8010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E1010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EB010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F8010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003B0200003C0200003D0200003E0200003F020000400200004102000042020000430200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004D0200004E0200004F020000500200005102000052020000530200005402000055020000560200005702000058020000590200005A0200005B0200005C0200005D0200005E0200005F020000600200006102000062020000630200006402000065020000660200006702000068020000690200006A0200006B0200006C0200006D0200006E0200006F020000700200007102000072020000730200007402000075020000760200007702000078020000790200007A0200007B0200007C0200007D0200007E0200007F020000800200008102000082020000830200008402000085020000860200008702000088020000890200008A0200008B0200008C0200008D0200008E0200008F020000900200009102000092020000930200009402000095020000960200009702000098020000990200009A0200009B0200009C0200009D0200009E0200009F020000A0020000A1020000A2020000A3020000A4020000A5020000A6020000A7020000A8020000A9020000AA020000AB020000AC020000AD020000AE020000AF020000B0020000B1020000B2020000B3020000B4020000B5020000B6020000B7020000B8020000B9020000BA020000BB020000BC020000BD020000BE020000BF020000C0020000C1020000C2020000C3020000C4020000C5020000C6020000C7020000C8020000C9020000CA020000CB020000CC020000CD020000CE020000CF020000D0020000D1020000D2020000D3020000D4020000D5020000D6020000D7020000D8020000D9020000DA020000DB020000DC020000DD020000DE020000DF020000E0020000E1020000E2020000E3020000E4020000E5020000E6020000E7020000E8020000E9020000EA020000EB020000EC020000ED020000EE020000EF020000F0020000F1020000F2020000F3020000F4020000F5020000F6020000F7020000F8020000F9020000FA020000FB020000FC020000FD020000FE020000FF020000000300000103000002030000030300000403000005030000060300000703000008030000090300000A0300000B0300000C0300000D0300000E0300000F030000100300001103000012030000130300001403000015030000160300001703000018030000190300001A0300001B0300001C0300001D0300001E0300001F030000200300002103000022030000230300002403000025030000260300002703000028030000290300002A0300002B0300002C0300002D0300002E0300002F030000300300003103000032030000330300003403000035030000360300003703000038030000390300003A0300003B0300003C0300003D0300003E0300003F030000400300004103000042030000430300004403000045030000460300004703000048030000490300004A0300004B0300004C0300004D0300004E0300004F030000500300005103000052030000530300005403000055030000560300005703000058030000590300005A0300005B0300005C0300005D0300005E0300005F030000600300006103000062030000630300006403000065030000660300006703000068030000690300006A0300006B0300006C0300006D0300006E0300006F030000700300007103000072030000730300007403000075030000760300007703000078030000790300007A0300007B0300007C0300007D0300007E0300007F030000800300008103000082030000830300008403000085030000860300008703000088030000890300008A0300008B0300008C0300008D0300008E0300008F030000900300009103000092030000930300009403000095030000960300009703000098030000990300009A0300009B0300009C0300009D0300009E0300009F030000A0030000A1030000A2030000A3030000A4030000A5030000A6030000A7030000A8030000A9030000AA030000AB030000AC030000AD030000AE030000AF030000B0030000B1030000B2030000B3030000B4030000B5030000B6030000B7030000B8030000B9030000BA030000BB030000BC030000BD030000BE030000BF030000C0030000C1030000C2030000C3030000C4030000C5030000C6030000C7030000C8030000C9030000CA030000CB030000CC030000CD030000CE030000CF030000D0030000D1030000D2030000D3030000D4030000D5030000D6030000D7030000D8030000D9030000DA030000DB030000DC030000DD030000DE030000DF030000E0030000E1030000E2030000E3030000E4030000E5030000E6030000E7030000E8030000E9030000EA030000EB030000EC030000ED030000EE030000EF030000F0030000F1030000F2030000F3030000F4030000F5030000F6030000F7030000F8030000F9030000FA030000FB030000FC030000FD030000FE030000FF030000 + 3B060000000000000000000000000000B81E053E0000000000000000000000000000000000000000000000000000E0C000000000000000000F00000021000000210000000300000003000000000000002D00000000000000010000000000C842000000000000803F0000C842000000000000803F0100000000000000000000000000000000000000000000000F0000002100000021000000030000000300000000000000FF000000C3000000010000000000C842000000000000803F0000C842000000000000803F0200000000000000000000000000000000000000000000000F0000002100000021000000030000000300000000000000870000004B000000010000000000C842000000000000803F0000C842000000000000803F00000000000000005A0000000A000000010000005A0000000A000000010000001E0000001E0000000300000003000000000000000000000080010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 0000000008000000080000000800000000000000100000000F000000070000000D00000005000000030000000B00000001000000090000000C000000040000000E000000060000000000000008000000020000000A000000 + + + + 00000000000000000000000000000000000000000000F03F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060CAC0012D5DEF3F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069E4F38AA71EEB3F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 00000400000100000600000000000000010000000200000004000000050000000600000007000000090000000A0000000B0000000C0000000E0000000F0000001000000012000000130000001500000017000000190000001A0000001C0000001F000000210000002300000025000000280000002A0000002D0000002F0000003200000035000000380000003B0000003E0000004100000044000000480000004B0000004F00000053000000560000005A0000005E00000062000000660000006B0000006F00000074000000780000007D00000082000000870000008C00000091000000960000009B000000A1000000A6000000AC000000B2000000B8000000BE000000C4000000CA000000D1000000D7000000DE000000E4000000EB000000F2000000F900000000010000080100000F010000170100001E010000260100002E010000360100003E010000460100004F010000570100006001000069010000720100007B010000840100008D01000096010000A0010000AA010000B3010000BD010000C7010000D2010000DC010000E6010000F1010000FC01000006020000110200001D02000028020000330200003F0200004A02000056020000620200006E0200007A0200008702000093020000A0020000AD020000BB020000C6020000D3020000E3020000EE020000FC0200000A03000018030000260300003403000042030000530300005F0300006E0300007D0300008C0300009B030000AB030000BA030000CA030000DA030000EA030000FA0300000A0400001A0400002B0400003C0400004C0400005D0400006F0400008004000091040000A3040000B5040000C7040000D9040000EB040000FD040000100500002305000035050000480500005C0500006F0500008205000096050000AA050000BE050000D2050000E6050000FB0500000F06000024060000390600004E06000063060000790600008E060000A4060000BA060000D0060000E6060000FD060000130700002A07000041070000580700006F070000860700009E070000B6070000CD070000E6070000FE070000160800002F08000047080000600800007908000093080000AC080000C6080000DF080000F9080000130900002E09000048090000630900007D09000098090000B4090000CF090000EA090000060A0000220A00003E0A00005A0A0000760A0000930A0000B00A0000CC0A0000E90A0000070B0000240B0000420B00005F0B00007D0B00009C0B0000BA0B0000D80B0000F70B0000160C0000350C0000540C0000730C0000930C0000B30C0000D30C0000F30C0000130D0000340D0000540D0000750D0000960D0000B70D0000D90D0000FA0D00001C0E00003E0E0000600E0000830E0000A50E0000C80E0000EB0E00000E0F0000310F0000540F0000780F00009C0F0000C00F0000F80F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000200000004000000050000000600000007000000090000000A0000000B0000000C0000000E0000000F0000001000000012000000130000001500000017000000190000001A0000001C0000001F000000210000002300000025000000280000002A0000002D0000002F0000003200000035000000380000003B0000003E0000004100000044000000480000004B0000004F00000053000000560000005A0000005E00000062000000660000006B0000006F00000074000000780000007D00000082000000870000008C00000091000000960000009B000000A1000000A6000000AC000000B2000000B8000000BE000000C4000000CA000000D1000000D7000000DE000000E4000000EB000000F2000000F900000000010000080100000F010000170100001E010000260100002E010000360100003E010000460100004F010000570100006001000069010000720100007B010000840100008D01000096010000A0010000AA010000B3010000BD010000C7010000D2010000DC010000E6010000F1010000FC01000006020000110200001D02000028020000330200003F0200004A02000056020000620200006E0200007A0200008702000093020000A0020000AD020000BB020000C6020000D3020000E3020000EE020000FC0200000A03000018030000260300003403000042030000530300005F0300006E0300007D0300008C0300009B030000AB030000BA030000CA030000DA030000EA030000FA0300000A0400001A0400002B0400003C0400004C0400005D0400006F0400008004000091040000A3040000B5040000C7040000D9040000EB040000FD040000100500002305000035050000480500005C0500006F0500008205000096050000AA050000BE050000D2050000E6050000FB0500000F06000024060000390600004E06000063060000790600008E060000A4060000BA060000D0060000E6060000FD060000130700002A07000041070000580700006F070000860700009E070000B6070000CD070000E6070000FE070000160800002F08000047080000600800007908000093080000AC080000C6080000DF080000F9080000130900002E09000048090000630900007D09000098090000B4090000CF090000EA090000060A0000220A00003E0A00005A0A0000760A0000930A0000B00A0000CC0A0000E90A0000070B0000240B0000420B00005F0B00007D0B00009C0B0000BA0B0000D80B0000F70B0000160C0000350C0000540C0000730C0000930C0000B30C0000D30C0000F30C0000130D0000340D0000540D0000750D0000960D0000B70D0000D90D0000FA0D00001C0E00003E0E0000600E0000830E0000A50E0000C80E0000EB0E00000E0F0000310F0000540F0000780F00009C0F0000C00F0000F80F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000200000004000000050000000600000007000000090000000A0000000B0000000C0000000E0000000F0000001000000012000000130000001500000017000000190000001A0000001C0000001F000000210000002300000025000000280000002A0000002D0000002F0000003200000035000000380000003B0000003E0000004100000044000000480000004B0000004F00000053000000560000005A0000005E00000062000000660000006B0000006F00000074000000780000007D00000082000000870000008C00000091000000960000009B000000A1000000A6000000AC000000B2000000B8000000BE000000C4000000CA000000D1000000D7000000DE000000E4000000EB000000F2000000F900000000010000080100000F010000170100001E010000260100002E010000360100003E010000460100004F010000570100006001000069010000720100007B010000840100008D01000096010000A0010000AA010000B3010000BD010000C7010000D2010000DC010000E6010000F1010000FC01000006020000110200001D02000028020000330200003F0200004A02000056020000620200006E0200007A0200008702000093020000A0020000AD020000BB020000C6020000D3020000E3020000EE020000FC0200000A03000018030000260300003403000042030000530300005F0300006E0300007D0300008C0300009B030000AB030000BA030000CA030000DA030000EA030000FA0300000A0400001A0400002B0400003C0400004C0400005D0400006F0400008004000091040000A3040000B5040000C7040000D9040000EB040000FD040000100500002305000035050000480500005C0500006F0500008205000096050000AA050000BE050000D2050000E6050000FB0500000F06000024060000390600004E06000063060000790600008E060000A4060000BA060000D0060000E6060000FD060000130700002A07000041070000580700006F070000860700009E070000B6070000CD070000E6070000FE070000160800002F08000047080000600800007908000093080000AC080000C6080000DF080000F9080000130900002E09000048090000630900007D09000098090000B4090000CF090000EA090000060A0000220A00003E0A00005A0A0000760A0000930A0000B00A0000CC0A0000E90A0000070B0000240B0000420B00005F0B00007D0B00009C0B0000BA0B0000D80B0000F70B0000160C0000350C0000540C0000730C0000930C0000B30C0000D30C0000F30C0000130D0000340D0000540D0000750D0000960D0000B70D0000D90D0000FA0D00001C0E00003E0E0000600E0000830E0000A50E0000C80E0000EB0E00000E0F0000310F0000540F0000780F00009C0F0000C00F0000F80F0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + 000000000004000006000000020000002E0000003E00000048000000520000005B000000630000006A00000071000000770000007D00000082000000880000008D00000091000000960000009B0000009F000000A3000000A7000000AB000000AF000000B3000000B6000000BA000000BD000000C1000000C4000000C7000000CB000000CE000000D1000000D4000000D7000000DA000000DD000000DF000000E2000000E5000000E8000000EA000000ED000000F0000000F2000000F5000000F7000000FA000000FC000000FF000000010100000301000006010000080100000A0100000D0100000F010000110100001301000016010000180100001A0100001C0100001E01000020010000220100002401000026010000280100002A0100002C0100002E01000030010000320100003401000036010000380100003A0100003C0100003E0100003F01000041010000430100004501000047010000480100004A0100004C0100004E0100004F01000051010000530100005501000056010000580100005A0100005B0100005D0100005F0100006001000062010000640100006501000067010000680100006A0100006B0100006D0100006F010000700100007201000073010000750100007601000078010000790100007B0100007C0100007E0100007F010000810100008201000084010000850100008701000088010000890100008B0100008C0100008E0100008F010000910100009201000093010000950100009601000097010000990100009A0100009C0100009D0100009E010000A0010000A1010000A2010000A4010000A5010000A6010000A8010000A9010000AA010000AB010000AD010000AE010000AF010000B1010000B2010000B3010000B4010000B6010000B7010000B8010000B9010000BB010000BC010000BD010000BE010000C0010000C1010000C2010000C3010000C4010000C6010000C7010000C8010000C9010000CA010000CC010000CD010000CE010000CF010000D0010000D2010000D3010000D4010000D5010000D6010000D7010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003A0200003B0200003C0200003D0200003E0200003F02000040020000410200004202000043020000440200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004C0200004D0200004E0200004F0200005002000051020000520200005302000053020000540200005502000056020000570200005802000059020000590200005A0200005B0200005C0200005D0200005E0200005F0200005F02000060020000610200006202000063020000640200006502000065020000660200006702000068020000690200006A0200006A0200006B0200006C0200006D0200006E0200006F0200006F0200007002000071020000720200007302000073020000740200007502000076020000770200007802000078020000790200007A0200007B0200007C0200007C0200007D0200007E0200007F020000800200008002000081020000820200008302000084020000840200008502000086020000870200008702000088020000890200008A0200008B0200008B0200008C0200008D0200008E0200008F0200008F020000900200009102000092020000920200009302000094020000950200009502000096020000970200009802000099020000990200009A0200009B0200009C0200009C0200009D0200009E0200009F0200009F020000A0020000A1020000A2020000A2020000A3020000A4020000A5020000A5020000A6020000A7020000A8020000A8020000A9020000AA020000AB020000AB020000AC020000AD020000AE020000AE020000AF020000B0020000B0020000B1020000B2020000B3020000B3020000B4020000B5020000B6020000B6020000B7020000B8020000B8020000B9020000BA020000BB020000BB020000BC020000BD020000BD020000BE020000BF020000C0020000C0020000C1020000C2020000C2020000C3020000C4020000C5020000C5020000C6020000C7020000C7020000C8020000C9020000C9020000CA020000CB020000CC020000CC020000CD020000CE020000CE020000CF020000D0020000D0020000D1020000D2020000D3020000D3020000D4020000D5020000D5020000D6020000D7020000D7020000D8020000D9020000D9020000DA020000DB020000DB020000DC020000DD020000DD020000DE020000DF020000DF020000E0020000E1020000E2020000E2020000E3020000E4020000E4020000E5020000E6020000E6020000E7020000E8020000E8020000E9020000EA020000EA020000EB020000EC020000EC020000ED020000EE020000EE020000EF020000EF020000F0020000F1020000F1020000F2020000F3020000F3020000F4020000F5020000F5020000F6020000F7020000F7020000F8020000F9020000F9020000FA020000FB020000FB020000FC020000FD020000FD020000FE020000FE020000FF020000000300000003000001030000020300000203000003030000040300000403000005030000050300000603000007030000070300000803000009030000090300000A0300000B0300000B0300000C0300000C0300000D0300000E0300000E0300000F030000100300001003000011030000110300001203000013030000130300001403000015030000150300001603000016030000170300001803000018030000190300001A0300001A0300001B0300001B0300001C0300001D0300001D0300001E0300001E0300001F03000020030000200300002103000021030000220300002303000023030000240300002503000025030000260300002603000027030000280300002803000029030000290300002A0300002B0300002B0300002C0300002C0300002D0300002E0300002E0300002F0300002F03000030030000310300003103000032030000320300003303000034030000340300003503000035030000360300003603000037030000380300003803000039030000390300003A0300003B0300003B0300003C0300003C0300003D0300003E0300003E0300003F0300003F03000040030000400300004103000042030000420300004303000043030000440300004403000045030000460300004603000047030000470300004803000049030000490300004A0300004A0300004B0300004B0300004C0300004D0300004D0300004E0300004E0300004F0300004F03000050030000510300005103000052030000520300005303000053030000540300005503000055030000560300005603000057030000570300005803000058030000590300005A0300005A0300005B0300005B0300005C0300005C0300005D0300005E0300005E0300005F0300005F0300006003000060030000610300006103000062030000630300006303000064030000640300006503000065030000660300006603000067030000670300006803000069030000690300006A0300006A0300006B0300006B0300006C0300006C0300006D0300006E0300006E0300006F0300006F030000700300007003000071030000710300007203000072030000730300007403000074030000750300007503000076030000760300007703000077030000780300007803000079030000790300007A0300007B0300007B0300007C0300007C0300007D0300007D0300007E0300007E0300007F0300007F030000800300008003000081030000810300008203000083030000830300008403000084030000850300008503000086030000860300008703000087030000880300008803000089030000890300008A0300008A0300008B0300008C0300008C0300008D0300008D0300008E0300008E0300008F0300008F030000900300009003000091030000910300009203000092030000930300009303000094030000940300009503000095030000960300009603000097030000970300009803000099030000990300009A0300009A0300009B0300009B0300009C0300009C0300009D0300009D0300009E0300009E0300009F0300009F030000A0030000A0030000A1030000A1030000A2030000A2030000A3030000A3030000A4030000A4030000A5030000A5030000A6030000A6030000A7030000A7030000A8030000A8030000A9030000A9030000AA030000AA030000AB030000AB030000AC030000AC030000AD030000AD030000AE030000AE030000AF030000AF030000B0030000B0030000B1030000B1030000B2030000B2030000B3030000B3030000B4030000B4030000B5030000B5030000B6030000B6030000B7030000B7030000B8030000B8030000B9030000B9030000BA030000BA030000BB030000BB030000BC030000BC030000BD030000BD030000BE030000BE030000BF030000BF030000C0030000C0030000C1030000C1030000C2030000C2030000C3030000C3030000C4030000C4030000C5030000C5030000C6030000C6030000C7030000C7030000C8030000C8030000C9030000C9030000CA030000CA030000CA030000CB030000CB030000CC030000CC030000CD030000CD030000CE030000CE030000CF030000CF030000D0030000D0030000D1030000D1030000D2030000D2030000D3030000D3030000D4030000D4030000D5030000D5030000D6030000D6030000D6030000D7030000D7030000D8030000D8030000D9030000D9030000DA030000DA030000DB030000DB030000DC030000DC030000DD030000DD030000DE030000DE030000DF030000DF030000E0030000E0030000E0030000E1030000E1030000E2030000E2030000E3030000E3030000E4030000E4030000E5030000E5030000E6030000E6030000E7030000E7030000E7030000E8030000E8030000E9030000E9030000EA030000EA030000EB030000EB030000EC030000EC030000ED030000ED030000EE030000EE030000EE030000EF030000EF030000F0030000F0030000F1030000F1030000F2030000F2030000F3030000F3030000F4030000F4030000F4030000F5030000F5030000F6030000F6030000F7030000F7030000F8030000F8030000F9030000F9030000FA030000FA030000FA030000FB030000FB030000FC030000FC030000FD030000FD030000FE030000FE030000FF030000FF030000020000002E0000003E00000048000000520000005B000000630000006A00000071000000770000007D00000082000000880000008D00000091000000960000009B0000009F000000A3000000A7000000AB000000AF000000B3000000B6000000BA000000BD000000C1000000C4000000C7000000CB000000CE000000D1000000D4000000D7000000DA000000DD000000DF000000E2000000E5000000E8000000EA000000ED000000F0000000F2000000F5000000F7000000FA000000FC000000FF000000010100000301000006010000080100000A0100000D0100000F010000110100001301000016010000180100001A0100001C0100001E01000020010000220100002401000026010000280100002A0100002C0100002E01000030010000320100003401000036010000380100003A0100003C0100003E0100003F01000041010000430100004501000047010000480100004A0100004C0100004E0100004F01000051010000530100005501000056010000580100005A0100005B0100005D0100005F0100006001000062010000640100006501000067010000680100006A0100006B0100006D0100006F010000700100007201000073010000750100007601000078010000790100007B0100007C0100007E0100007F010000810100008201000084010000850100008701000088010000890100008B0100008C0100008E0100008F010000910100009201000093010000950100009601000097010000990100009A0100009C0100009D0100009E010000A0010000A1010000A2010000A4010000A5010000A6010000A8010000A9010000AA010000AB010000AD010000AE010000AF010000B1010000B2010000B3010000B4010000B6010000B7010000B8010000B9010000BB010000BC010000BD010000BE010000C0010000C1010000C2010000C3010000C4010000C6010000C7010000C8010000C9010000CA010000CC010000CD010000CE010000CF010000D0010000D2010000D3010000D4010000D5010000D6010000D7010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003A0200003B0200003C0200003D0200003E0200003F02000040020000410200004202000043020000440200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004C0200004D0200004E0200004F0200005002000051020000520200005302000053020000540200005502000056020000570200005802000059020000590200005A0200005B0200005C0200005D0200005E0200005F0200005F02000060020000610200006202000063020000640200006502000065020000660200006702000068020000690200006A0200006A0200006B0200006C0200006D0200006E0200006F0200006F0200007002000071020000720200007302000073020000740200007502000076020000770200007802000078020000790200007A0200007B0200007C0200007C0200007D0200007E0200007F020000800200008002000081020000820200008302000084020000840200008502000086020000870200008702000088020000890200008A0200008B0200008B0200008C0200008D0200008E0200008F0200008F020000900200009102000092020000920200009302000094020000950200009502000096020000970200009802000099020000990200009A0200009B0200009C0200009C0200009D0200009E0200009F0200009F020000A0020000A1020000A2020000A2020000A3020000A4020000A5020000A5020000A6020000A7020000A8020000A8020000A9020000AA020000AB020000AB020000AC020000AD020000AE020000AE020000AF020000B0020000B0020000B1020000B2020000B3020000B3020000B4020000B5020000B6020000B6020000B7020000B8020000B8020000B9020000BA020000BB020000BB020000BC020000BD020000BD020000BE020000BF020000C0020000C0020000C1020000C2020000C2020000C3020000C4020000C5020000C5020000C6020000C7020000C7020000C8020000C9020000C9020000CA020000CB020000CC020000CC020000CD020000CE020000CE020000CF020000D0020000D0020000D1020000D2020000D3020000D3020000D4020000D5020000D5020000D6020000D7020000D7020000D8020000D9020000D9020000DA020000DB020000DB020000DC020000DD020000DD020000DE020000DF020000DF020000E0020000E1020000E2020000E2020000E3020000E4020000E4020000E5020000E6020000E6020000E7020000E8020000E8020000E9020000EA020000EA020000EB020000EC020000EC020000ED020000EE020000EE020000EF020000EF020000F0020000F1020000F1020000F2020000F3020000F3020000F4020000F5020000F5020000F6020000F7020000F7020000F8020000F9020000F9020000FA020000FB020000FB020000FC020000FD020000FD020000FE020000FE020000FF020000000300000003000001030000020300000203000003030000040300000403000005030000050300000603000007030000070300000803000009030000090300000A0300000B0300000B0300000C0300000C0300000D0300000E0300000E0300000F030000100300001003000011030000110300001203000013030000130300001403000015030000150300001603000016030000170300001803000018030000190300001A0300001A0300001B0300001B0300001C0300001D0300001D0300001E0300001E0300001F03000020030000200300002103000021030000220300002303000023030000240300002503000025030000260300002603000027030000280300002803000029030000290300002A0300002B0300002B0300002C0300002C0300002D0300002E0300002E0300002F0300002F03000030030000310300003103000032030000320300003303000034030000340300003503000035030000360300003603000037030000380300003803000039030000390300003A0300003B0300003B0300003C0300003C0300003D0300003E0300003E0300003F0300003F03000040030000400300004103000042030000420300004303000043030000440300004403000045030000460300004603000047030000470300004803000049030000490300004A0300004A0300004B0300004B0300004C0300004D0300004D0300004E0300004E0300004F0300004F03000050030000510300005103000052030000520300005303000053030000540300005503000055030000560300005603000057030000570300005803000058030000590300005A0300005A0300005B0300005B0300005C0300005C0300005D0300005E0300005E0300005F0300005F0300006003000060030000610300006103000062030000630300006303000064030000640300006503000065030000660300006603000067030000670300006803000069030000690300006A0300006A0300006B0300006B0300006C0300006C0300006D0300006E0300006E0300006F0300006F030000700300007003000071030000710300007203000072030000730300007403000074030000750300007503000076030000760300007703000077030000780300007803000079030000790300007A0300007B0300007B0300007C0300007C0300007D0300007D0300007E0300007E0300007F0300007F030000800300008003000081030000810300008203000083030000830300008403000084030000850300008503000086030000860300008703000087030000880300008803000089030000890300008A0300008A0300008B0300008C0300008C0300008D0300008D0300008E0300008E0300008F0300008F030000900300009003000091030000910300009203000092030000930300009303000094030000940300009503000095030000960300009603000097030000970300009803000099030000990300009A0300009A0300009B0300009B0300009C0300009C0300009D0300009D0300009E0300009E0300009F0300009F030000A0030000A0030000A1030000A1030000A2030000A2030000A3030000A3030000A4030000A4030000A5030000A5030000A6030000A6030000A7030000A7030000A8030000A8030000A9030000A9030000AA030000AA030000AB030000AB030000AC030000AC030000AD030000AD030000AE030000AE030000AF030000AF030000B0030000B0030000B1030000B1030000B2030000B2030000B3030000B3030000B4030000B4030000B5030000B5030000B6030000B6030000B7030000B7030000B8030000B8030000B9030000B9030000BA030000BA030000BB030000BB030000BC030000BC030000BD030000BD030000BE030000BE030000BF030000BF030000C0030000C0030000C1030000C1030000C2030000C2030000C3030000C3030000C4030000C4030000C5030000C5030000C6030000C6030000C7030000C7030000C8030000C8030000C9030000C9030000CA030000CA030000CA030000CB030000CB030000CC030000CC030000CD030000CD030000CE030000CE030000CF030000CF030000D0030000D0030000D1030000D1030000D2030000D2030000D3030000D3030000D4030000D4030000D5030000D5030000D6030000D6030000D6030000D7030000D7030000D8030000D8030000D9030000D9030000DA030000DA030000DB030000DB030000DC030000DC030000DD030000DD030000DE030000DE030000DF030000DF030000E0030000E0030000E0030000E1030000E1030000E2030000E2030000E3030000E3030000E4030000E4030000E5030000E5030000E6030000E6030000E7030000E7030000E7030000E8030000E8030000E9030000E9030000EA030000EA030000EB030000EB030000EC030000EC030000ED030000ED030000EE030000EE030000EE030000EF030000EF030000F0030000F0030000F1030000F1030000F2030000F2030000F3030000F3030000F4030000F4030000F4030000F5030000F5030000F6030000F6030000F7030000F7030000F8030000F8030000F9030000F9030000FA030000FA030000FA030000FB030000FB030000FC030000FC030000FD030000FD030000FE030000FE030000FF030000FF030000020000002E0000003E00000048000000520000005B000000630000006A00000071000000770000007D00000082000000880000008D00000091000000960000009B0000009F000000A3000000A7000000AB000000AF000000B3000000B6000000BA000000BD000000C1000000C4000000C7000000CB000000CE000000D1000000D4000000D7000000DA000000DD000000DF000000E2000000E5000000E8000000EA000000ED000000F0000000F2000000F5000000F7000000FA000000FC000000FF000000010100000301000006010000080100000A0100000D0100000F010000110100001301000016010000180100001A0100001C0100001E01000020010000220100002401000026010000280100002A0100002C0100002E01000030010000320100003401000036010000380100003A0100003C0100003E0100003F01000041010000430100004501000047010000480100004A0100004C0100004E0100004F01000051010000530100005501000056010000580100005A0100005B0100005D0100005F0100006001000062010000640100006501000067010000680100006A0100006B0100006D0100006F010000700100007201000073010000750100007601000078010000790100007B0100007C0100007E0100007F010000810100008201000084010000850100008701000088010000890100008B0100008C0100008E0100008F010000910100009201000093010000950100009601000097010000990100009A0100009C0100009D0100009E010000A0010000A1010000A2010000A4010000A5010000A6010000A8010000A9010000AA010000AB010000AD010000AE010000AF010000B1010000B2010000B3010000B4010000B6010000B7010000B8010000B9010000BB010000BC010000BD010000BE010000C0010000C1010000C2010000C3010000C4010000C6010000C7010000C8010000C9010000CA010000CC010000CD010000CE010000CF010000D0010000D2010000D3010000D4010000D5010000D6010000D7010000D9010000DA010000DB010000DC010000DD010000DE010000DF010000E0010000E2010000E3010000E4010000E5010000E6010000E7010000E8010000E9010000EA010000EC010000ED010000EE010000EF010000F0010000F1010000F2010000F3010000F4010000F5010000F6010000F7010000F9010000FA010000FB010000FC010000FD010000FE010000FF010000000200000102000002020000030200000402000005020000060200000702000008020000090200000A0200000B0200000C0200000D0200000E0200000F020000100200001102000012020000130200001402000015020000160200001702000018020000190200001A0200001B0200001C0200001D0200001E0200001F020000200200002102000022020000230200002402000025020000260200002702000028020000290200002A0200002B0200002C0200002C0200002D0200002E0200002F020000300200003102000032020000330200003402000035020000360200003702000038020000390200003A0200003A0200003B0200003C0200003D0200003E0200003F02000040020000410200004202000043020000440200004402000045020000460200004702000048020000490200004A0200004B0200004C0200004C0200004D0200004E0200004F0200005002000051020000520200005302000053020000540200005502000056020000570200005802000059020000590200005A0200005B0200005C0200005D0200005E0200005F0200005F02000060020000610200006202000063020000640200006502000065020000660200006702000068020000690200006A0200006A0200006B0200006C0200006D0200006E0200006F0200006F0200007002000071020000720200007302000073020000740200007502000076020000770200007802000078020000790200007A0200007B0200007C0200007C0200007D0200007E0200007F020000800200008002000081020000820200008302000084020000840200008502000086020000870200008702000088020000890200008A0200008B0200008B0200008C0200008D0200008E0200008F0200008F020000900200009102000092020000920200009302000094020000950200009502000096020000970200009802000099020000990200009A0200009B0200009C0200009C0200009D0200009E0200009F0200009F020000A0020000A1020000A2020000A2020000A3020000A4020000A5020000A5020000A6020000A7020000A8020000A8020000A9020000AA020000AB020000AB020000AC020000AD020000AE020000AE020000AF020000B0020000B0020000B1020000B2020000B3020000B3020000B4020000B5020000B6020000B6020000B7020000B8020000B8020000B9020000BA020000BB020000BB020000BC020000BD020000BD020000BE020000BF020000C0020000C0020000C1020000C2020000C2020000C3020000C4020000C5020000C5020000C6020000C7020000C7020000C8020000C9020000C9020000CA020000CB020000CC020000CC020000CD020000CE020000CE020000CF020000D0020000D0020000D1020000D2020000D3020000D3020000D4020000D5020000D5020000D6020000D7020000D7020000D8020000D9020000D9020000DA020000DB020000DB020000DC020000DD020000DD020000DE020000DF020000DF020000E0020000E1020000E2020000E2020000E3020000E4020000E4020000E5020000E6020000E6020000E7020000E8020000E8020000E9020000EA020000EA020000EB020000EC020000EC020000ED020000EE020000EE020000EF020000EF020000F0020000F1020000F1020000F2020000F3020000F3020000F4020000F5020000F5020000F6020000F7020000F7020000F8020000F9020000F9020000FA020000FB020000FB020000FC020000FD020000FD020000FE020000FE020000FF020000000300000003000001030000020300000203000003030000040300000403000005030000050300000603000007030000070300000803000009030000090300000A0300000B0300000B0300000C0300000C0300000D0300000E0300000E0300000F030000100300001003000011030000110300001203000013030000130300001403000015030000150300001603000016030000170300001803000018030000190300001A0300001A0300001B0300001B0300001C0300001D0300001D0300001E0300001E0300001F03000020030000200300002103000021030000220300002303000023030000240300002503000025030000260300002603000027030000280300002803000029030000290300002A0300002B0300002B0300002C0300002C0300002D0300002E0300002E0300002F0300002F03000030030000310300003103000032030000320300003303000034030000340300003503000035030000360300003603000037030000380300003803000039030000390300003A0300003B0300003B0300003C0300003C0300003D0300003E0300003E0300003F0300003F03000040030000400300004103000042030000420300004303000043030000440300004403000045030000460300004603000047030000470300004803000049030000490300004A0300004A0300004B0300004B0300004C0300004D0300004D0300004E0300004E0300004F0300004F03000050030000510300005103000052030000520300005303000053030000540300005503000055030000560300005603000057030000570300005803000058030000590300005A0300005A0300005B0300005B0300005C0300005C0300005D0300005E0300005E0300005F0300005F0300006003000060030000610300006103000062030000630300006303000064030000640300006503000065030000660300006603000067030000670300006803000069030000690300006A0300006A0300006B0300006B0300006C0300006C0300006D0300006E0300006E0300006F0300006F030000700300007003000071030000710300007203000072030000730300007403000074030000750300007503000076030000760300007703000077030000780300007803000079030000790300007A0300007B0300007B0300007C0300007C0300007D0300007D0300007E0300007E0300007F0300007F030000800300008003000081030000810300008203000083030000830300008403000084030000850300008503000086030000860300008703000087030000880300008803000089030000890300008A0300008A0300008B0300008C0300008C0300008D0300008D0300008E0300008E0300008F0300008F030000900300009003000091030000910300009203000092030000930300009303000094030000940300009503000095030000960300009603000097030000970300009803000099030000990300009A0300009A0300009B0300009B0300009C0300009C0300009D0300009D0300009E0300009E0300009F0300009F030000A0030000A0030000A1030000A1030000A2030000A2030000A3030000A3030000A4030000A4030000A5030000A5030000A6030000A6030000A7030000A7030000A8030000A8030000A9030000A9030000AA030000AA030000AB030000AB030000AC030000AC030000AD030000AD030000AE030000AE030000AF030000AF030000B0030000B0030000B1030000B1030000B2030000B2030000B3030000B3030000B4030000B4030000B5030000B5030000B6030000B6030000B7030000B7030000B8030000B8030000B9030000B9030000BA030000BA030000BB030000BB030000BC030000BC030000BD030000BD030000BE030000BE030000BF030000BF030000C0030000C0030000C1030000C1030000C2030000C2030000C3030000C3030000C4030000C4030000C5030000C5030000C6030000C6030000C7030000C7030000C8030000C8030000C9030000C9030000CA030000CA030000CA030000CB030000CB030000CC030000CC030000CD030000CD030000CE030000CE030000CF030000CF030000D0030000D0030000D1030000D1030000D2030000D2030000D3030000D3030000D4030000D4030000D5030000D5030000D6030000D6030000D6030000D7030000D7030000D8030000D8030000D9030000D9030000DA030000DA030000DB030000DB030000DC030000DC030000DD030000DD030000DE030000DE030000DF030000DF030000E0030000E0030000E0030000E1030000E1030000E2030000E2030000E3030000E3030000E4030000E4030000E5030000E5030000E6030000E6030000E7030000E7030000E7030000E8030000E8030000E9030000E9030000EA030000EA030000EB030000EB030000EC030000EC030000ED030000ED030000EE030000EE030000EE030000EF030000EF030000F0030000F0030000F1030000F1030000F2030000F2030000F3030000F3030000F4030000F4030000F4030000F5030000F5030000F6030000F6030000F7030000F7030000F8030000F8030000F9030000F9030000FA030000FA030000FA030000FB030000FB030000FC030000FC030000FD030000FD030000FE030000FE030000FF030000FF030000 + 1E070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F00000021000000210000000300000003000000000000002D00000000000000010000000000C842000000000000803F0000C842000000000000803F0100000000000000000000000000000000000000000000000F0000002100000021000000030000000300000000000000FF000000C3000000010000000000C842000000000000803F0000C842000000000000803F0200000000000000000000000000000000000000000000000F0000002100000021000000030000000300000000000000870000004B000000010000000000C842000000000000803F0000C842000000000000803F00000000000000005A0000000A000000010000005A0000000A000000010000001E0000001E000000030000000300000000000000000000008001000000000000000000000000000000405440000000000000000000000000000000000000000000004F40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E4000000000000000000000000000000000000000000080484000000000000000000000000000000000000000000000444000000000000000000000000000000000000000000000444000000000000000000000000000000000000000000000444000000000000000000000000000000000000000000000444000000000000000000000000000000000000000000000444000000000000000000000000000000000000000000080424000000000000000000000000000000000000000000000344000000000000000000000000000000000000000000000344000000000000000000000000000000000000000000000344000000000000000000000000000000000000000000000344000000000000000000000000000000000000000000000344000000000000000000000000000000000000000000000344000000000000000000000000000FAAF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000F8AF40000000000000344000000000000000000000000000FAAF400000000000003440000000000000000000000000000000000000000000003940000000000000000000000000000000000000000000804240000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000002040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002840000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003540000000000000000000000000000000000000000000004440000000000000000000000000000000000000000000003540000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000003440000000000000000000000000000000000000000000001C40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000010400000000000002C40000000000000000000000000000010400000000000003440000000000000000000000000000010400000000000003440000000000000000000000000000010400000000000003440000000000000000000000000000010400000000000003440000000000000000000000000000010400000000000003440000000000000000000000000000010400000000000003440000000000000000000000000000010400000000000003440000000000000000000000000000010400000000000003440000000000000000000000000000010400000000000003440000000000000000000000000000010400000000000003540000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004440000000000000000000000000000010400000000000004840000000000000000000000000000010400000000000804E40000000000000000000000000000008400000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E40000000000000000000000000000000000000000000804E400000000000000000 + 0000000008000000080000000800000000000000100000000F000000070000000D00000005000000030000000B00000001000000090000000C000000040000000E000000060000000000000008000000020000000A000000 + + + + + ECFFFFFF0000803F4FCB3F3F97C4B93EEDFFFFFF0000803F59F8463F9ACDCB3EEEFFFFFF0000803F84A04B3F82FDD73EEFFFFFFF0000803F8463523F8B6DEA3EF0FFFFFF0000803FB4C8563F8DD5F63EF1FFFFFF0000803FC1375D3F21C9043FF2FFFFFF0000803FAB5B613F53090B3FF3FFFFFF0000803F766D673FA774143FF4FFFFFF0000803F645A6B3F94C01A3FF5FFFFFF0000803F0116713F1631243FF6FFFFFF0000803F61C6743F427A2A3FF7FFFFFF0000803F512D7A3FACE4333FF8FFFFFF0000803FC5AE7D3F42253A3FF9FFFFFFF4377D3F0000803F9A5F413FFAFFFFFF34117A3F0000803F3BFD443FFBFFFFFFCB86753F0000803FEE3F4A3FFCFFFFFF33A8723F0000803FBCB04D3FFDFFFFFF33A46E3F0000803FBFBA523FFEFFFFFFAD166C3F0000803F6901563FFFFFFFFFEA78683F0000803FA7CF5A3F00000000E432663F0000803F0FEF5D3F01000000ADF8623F0000803FBE88623F02000000DEE3603F0000803F0589653F0300000094FB5D3F0000803F2CF0693F04000000CB135C3F0000803FDAC96C3F050000004D69593F0000803F8200713F060000004EB8573F0000803FA9C2733F07000000904A553F0000803FC5CB773F08000000ECC2533F0000803FB96E7A3F09000000CA8A513F0000803F56477E3F0A0000003D824F3F7F317F3F0000803F0B00000092924A3FBC937B3F0000803F0C0000008E73473F2444793F0000803F0D000000FF04433FD0F1753F0000803F0E0000002236403FD8D2733F0000803F0F00000069353C3FABCC703F0000803F1000000037A8393F51DB6E3F0000803F110000006C08363FAA0B6C3F0000803F12000000D4B8333F0B456A3F0000803F13000000386B303F9BAE673F0000803F140000009B562E3F960A663F0000803F + + diff --git a/proprietary/vendor/etc/sensors/config/icm4x6xa.json b/proprietary/vendor/etc/sensors/config/icm4x6xa.json new file mode 100644 index 0000000..5cba974 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/icm4x6xa.json @@ -0,0 +1,334 @@ +{ + "config":{ + "hw_platform": ["MTP"], + "soc_id": ["507", "578"] + }, + "icm4x6xa_0":{ + "owner": "icm4x6xa", + ".accel":{ + "owner": "icm4x6xa", + ".config":{ + "owner": "icm4x6xa", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "4" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".gyro":{ + "owner": "icm4x6xa", + ".config":{ + "owner": "icm4x6xa", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "7" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".md":{ + "owner": "icm4x6xa", + ".config":{ + "owner": "icm4x6xa", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".freefall":{ + "owner": "icm4x6xa", + ".config":{ + "owner": "icm4x6xa", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".temp":{ + "owner": "icm4x6xa", + ".config":{ + "owner": "icm4x6xa", + "is_dri":{ "type": "int", "ver": "0", + "data": "0" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "2" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + } + }, + "icm4x6xa_0_platform":{ + "owner": "icm4x6xa", + ".config":{ + "owner": "icm4x6xa", + "bus_type":{ "type": "int", "ver": "0", + "data": "3" + }, + "bus_instance":{ "type": "int", "ver": "0", + "data": "1" + }, + "slave_config":{ "type": "int", "ver": "0", + "data": "105" + }, + "i3c_address":{ "type": "int", "ver": "0", + "data": "10" + }, + "min_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "max_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "12500" + }, + "reg_addr_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "dri_irq_num":{ "type": "int", "ver": "0", + "data": "95" + }, + "irq_pull_type":{ "type": "int", "ver": "0", + "data": "2" + }, + "irq_is_chip_pin":{ "type": "int", "ver": "0", + "data": "1" + }, + "irq_drive_strength":{ "type": "int", "ver": "0", + "data": "0" + }, + "irq_trigger_type":{ "type": "int", "ver": "0", + "data": "3" + }, + "num_rail":{ "type": "int", "ver": "0", + "data": "1" + }, + "rail_on_state":{ "type": "int", "ver": "0", + "data": "2" + }, + "vddio_rail":{ "type": "str", "ver": "0", + "data": "/pmic/client/sensor_vddio" + }, + "rigid_body_type":{ "type": "int", "ver": "0", + "data": "0" + } + }, + ".orient":{ + "owner": "icm4x6xa", + "x":{ "type": "str", "ver": "0", + "data": "+x" + }, + "y":{ "type": "str", "ver": "0", + "data": "+y" + }, + "z":{ "type": "str", "ver": "0", + "data": "+z" + } + }, + ".gyro":{ + "owner": "icm4x6xa", + ".fac_cal":{ + "owner": "icm4x6xa", + ".corr_mat":{ + "owner": "icm4x6xa", + "0_0":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "0_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "0_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_1":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "1_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_2":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "icm4x6xa", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".accel":{ + "owner": "icm4x6xa", + ".fac_cal":{ + "owner": "icm4x6xa", + ".corr_mat":{ + "owner": "icm4x6xa", + "0_0":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "0_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "0_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_1":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "1_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_2":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "icm4x6xa", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".temp":{ + "owner": "icm4x6xa", + ".fac_cal": + { + "owner": "icm4x6xa", + ".scale":{ + "owner": "icm4x6xa", + "x":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "icm4x6xa", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".md":{ + "owner": "icm4x6xa", + ".config":{ + "owner": "icm4x6xa", + "thresh":{ "type": "flt", "ver": "0", + "data": "0.6132" + }, + "disable":{ "type": "int", "ver": "0", + "data": "0" + }, + "win":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + }, + ".placement":{ + "owner": "icm4x6xa", + "0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "3":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "4":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "5":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "6":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "7":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "8":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "9":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "10":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "11":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/mot_camgest.json b/proprietary/vendor/etc/sensors/config/mot_camgest.json new file mode 100644 index 0000000..c7cbc54 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/mot_camgest.json @@ -0,0 +1,19 @@ +{ + "config": + { + "hw_platform": ["HDK", "MTP", "Dragon", "Surf", "IDP"], + "soc_id": ["361", "339", "365", "454", "507", "578"] + }, + "mot_camgest":{ + "owner": "mot_camgest", + ".params":{ + "owner": "mot_camgest", + "y_orient_down_thres":{ "type": "flt", "ver": "0", + "data": "-4.25" + }, + "y_orient_up_thres":{ "type": "flt", "ver": "0", + "data": "4.5" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/mot_tap.json b/proprietary/vendor/etc/sensors/config/mot_tap.json new file mode 100644 index 0000000..da48e23 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/mot_tap.json @@ -0,0 +1,52 @@ +{ + "config": + { + "hw_platform": ["QRD", "MTP", "Dragon", "Surf", "HDK","IDP"], + "soc_id": ["444","454", "507", "578"] + }, + "mot_tap":{ + "owner": "mot_tap", + ".params":{ + "owner": "mot_tap", + "prod_idx":{ "type": "int", "ver": "0", + "data": "2" + }, + "double_only":{ "type": "int", "ver": "0", + "data": "0" + }, + "use_stowed":{ "type": "int", "ver": "0", + "data": "1" + }, + "idle_timeout_s":{ "type": "int", "ver": "0", + "data": "30" + }, + "tap_window_ms":{ "type": "int", "ver": "0", + "data": "320" + }, + "cor_thr":{ "type": "flt", "ver": "0", + "data": "70.0" + }, + "cor_spike_thr":{ "type": "flt", "ver": "0", + "data": "15.0" + }, + "flat_up_deg":{ "type": "flt", "ver": "0", + "data": "10.0" + }, + "flat_up_ang_limit_deg":{ "type": "flt", "ver": "0", + "data": "2.5" + }, + "facing_down_deg":{ "type": "flt", "ver": "0", + "data": "35.0" + }, + "sigz_mag_low_thr":{ "type": "flt", "ver": "0", + "data": "3.0" + }, + "sigz_mag_high_thr":{ "type": "flt", "ver": "0", + "data": "50.0" + }, + "sigz_min_peak_thr":{ "type": "flt", "ver": "0", + "data": "3.0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_amd.json b/proprietary/vendor/etc/sensors/config/sns_amd.json new file mode 100644 index 0000000..5a95969 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_amd.json @@ -0,0 +1,18 @@ +{ + "config": { + "hw_platform": [ "MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["291", "246", "305", "321", "336", "339", "340", "347", "341", "355", "356", "360", "361", "365", "366", "393", "394", "400", + "407", "417", "440", "415", "439", "416", "437", "444", "445", "420", "424", "443", "434", "435", "459", "441", "471", "455", "456", "454", + "450", "476", "467", "468", "469", "470", "473", "474", "501", "502", "475", "496", "497", "498", "515", "507", "518", "523", "524", "575", + "576", "561", "562", "548", "578", "565", "585", "586"] + }, + "sns_amd": { + "owner": "sns_amd", + "param1": {"ver": "0","type": "flt","data": "0.06" + }, + "param2": {"ver": "0","type": "flt","data": "0.5" + }, + "sample_rate": {"ver": "0","type": "flt", "data": "10.0" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_amd_sw_disabled.json b/proprietary/vendor/etc/sensors/config/sns_amd_sw_disabled.json new file mode 100644 index 0000000..2b529ea --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_amd_sw_disabled.json @@ -0,0 +1,11 @@ +{ + "config": { + "hw_platform": [ "MTP", "Dragon", "Surf", "QRD", "HDK"], + "soc_id": ["339", "340", "361", "415", "439", "456", "501", "502"] + }, + "sns_amd": { + "owner": "sns_amd", + "enabled": {"ver": "0","type": "int", "data": "0" + } + } +} \ No newline at end of file diff --git a/proprietary/vendor/etc/sensors/config/sns_amd_sw_enabled.json b/proprietary/vendor/etc/sensors/config/sns_amd_sw_enabled.json new file mode 100644 index 0000000..66c4f07 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_amd_sw_enabled.json @@ -0,0 +1,13 @@ +{ + "config": { + "hw_platform": [ "MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["291", "246", "305", "321", "336", "347", "341", "355", "360", "365", "366", "393", "394", "400", "407", "417", "440", + "416", "437", "444", "445", "420", "424", "443", "434", "435", "459", "441", "471", "454", "450", "476", "467", "468", "469", "470", + "473", "474", "475", "497", "498", "515", "507", "518", "523", "524", "575", "576", "561", "562", "578", "565", "585", "586"] + }, + "sns_amd": { + "owner": "sns_amd", + "enabled": {"ver": "0","type": "int", "data": "1" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_cm.json b/proprietary/vendor/etc/sensors/config/sns_cm.json new file mode 100644 index 0000000..c191c8a --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_cm.json @@ -0,0 +1,21 @@ +{ + "config":{ + "hw_platform": ["MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["291", "246", "300", "301", "305", "321", "336", "339", "341", "347", "355", "356", "360", "361", "365", "366", "393", "394", "400", + "407", "416", "417", "437", "440", "415", "439", "444", "445", "420", "424", "443", "459", "441", "471", "455", "456", "454", "450", "476", "467", + "468", "469", "470", "473", "474", "501", "502", "475", "496", "497", "498", "515", "507", "518", "523", "524", "575", "576", "561", "562", "548", + "578", "565", "585", "586"] + }, +"sns_cm":{ + "owner": "sns_cm", + "heap_size":{ "type": "int", "ver": "0", + "data": "1572864" + }, + "max_batch_disabled":{ "type": "int", "ver": "0", + "data": "0" + }, + "min_batch_period_thrshld_ms":{ "type": "int", "ver": "0", + "data": "10" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_diag_filter.json b/proprietary/vendor/etc/sensors/config/sns_diag_filter.json new file mode 100644 index 0000000..c2ed744 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_diag_filter.json @@ -0,0 +1,381 @@ +{ + "config": + { + "hw_platform": ["MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["291", "246", "300", "301", "305", "321", "336", "339", "341", "347", "355", "356", "360", "361", "352", "365", "366", "393", "394", "400", + "407", "417", "440", "415", "439", "416", "437", "444", "445", "420", "424", "443", "434", "435", "459", "441", "471", "455", "456", "454", "450", "476", + "467", "468", "469", "470", "473", "474", "501", "502", "475", "496", "497", "498", "515", "507", "518", "523", "524", "575", "576", "561", "562", "548", + "578", "565", "585", "586"] + }, + + "sns_diag_config": + { + "owner":"diag_filter_sensor", + "qdss": + { + "type" : "int", + "ver" : "0", + "data" : "0" + } + }, + + "sns_diag_sensor_datatype": + { + "owner":"diag_filter_sensor", + + "geomag_rv": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "game_rv": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "gravity": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "cm": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "accel": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "humidity": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "ambient_temperature": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "sensor_temperature": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "motion_detect": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "gyro": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "ultra_violet": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "pressure": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "mag": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "offbody_detect": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "thermopile": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "ambient_light": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "hall": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "proximity": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "rgb": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "test": + { + "type" : "int", + "ver" : "0", + "data" : "0" + }, + "flush_test": + { + "type" : "int", + "ver" : "0", + "data" : "0" + }, + "md_test": + { + "type" : "int", + "ver" : "0", + "data" : "0" + }, + "da_test": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "amd": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "rmd": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "facing": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "gyro_cal": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "oem1": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "mag_cal": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "resampler": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "smd": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "basic_gestures": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "multishake": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "bring_to_ear": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "cmc": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "dpc": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "distance_bound": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "gyro_rot_matrix": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "fmv": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "rotv": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "pedometer": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "device_orient": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "tilt": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "tilt_to_wake": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "heart_rate": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "ppg": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "wrist_tilt_gesture": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "pedometer_wrist": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "data_acquisition_engine": + { + "type" : "int", + "ver" : "0", + "data" : "0" + }, + "ccd_walk": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "ccd_ttw": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "ccd_hw": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "threshold": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "sar": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "radar": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "activity_recognition": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "dae_datalog": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "location": + { + "type" : "int", + "ver" : "0", + "data" : "1" + }, + "step_detect": + { + "type" : "int", + "ver" : "0", + "data" : "1" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_fmv.json b/proprietary/vendor/etc/sensors/config/sns_fmv.json new file mode 100644 index 0000000..b4dcf17 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_fmv.json @@ -0,0 +1,52 @@ +{ + "config": + { + "hw_platform": ["MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["415", "439", "456", "454","450", "469", "470", "501", "502", "475", "497", "498", "515", "507", "518", "575", "576", "561", "562", "578", "565", "585", "586"] + }, + "sns_fmv_platform": { + "owner": "sns_fmv", + ".config":{ + "owner": "sns_fmv", + "accuracy_unknown": { "type": "int", "ver": "0", + "data": "30000" + }, + "accuracy_abs_rest": { "type": "int", "ver": "0", + "data": "30000" + }, + "accuracy_rel_rest": { "type": "int", "ver": "0", + "data": "30000" + }, + "accuracy_motion": { "type": "int", "ver": "0", + "data": "30000" + }, + "accuracy_fast_motion": { "type": "int", "ver": "0", + "data": "10000" + }, + "gyro_gap_thresh": { "type": "int", "ver": "0", + "data": "500" + }, + "mag_innov": { "type": "flt", "ver": "0", + "data": "9.0" + }, + "mag_sample_gap_fac": { "type": "flt", "ver": "0", + "data": "1.0" + }, + "tyro_thresh_for_zupt": { "type": "flt", "ver": "0", + "data": "0.001" + }, + "amd_int_cfg_param1": { "type": "flt", "ver": "0", + "data": "0.000061" + }, + "amd_int_cfg_param2": { "type": "flt", "ver": "0", + "data": "0.6" + }, + "amd_int_cfg_param3": { "type": "flt", "ver": "0", + "data": "0.4" + }, + "debug_mode": { "type": "int", "ver": "0", + "data": "0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_fmv_legacy.json b/proprietary/vendor/etc/sensors/config/sns_fmv_legacy.json new file mode 100644 index 0000000..808ce77 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_fmv_legacy.json @@ -0,0 +1,53 @@ +{ + "config": + { + "hw_platform": ["MTP", "Dragon", "Surf", "QRD", "HDK", "IDP"], + "soc_id": ["291", "246", "300", "301", "305", "321", "336", "339", "341", "355", "356", "360", "361", "365", "366", "393", "394", "400", "407", "417", + "440", "444", "445", "420", "424", "443", "434", "435", "459", "441", "467", "468", "471", "476", "473", "474", "515"] + }, + "sns_fmv_platform": { + "owner": "sns_fmv", + ".config":{ + "owner": "sns_fmv", + "accuracy_unknown": { "type": "int", "ver": "0", + "data": "3000" + }, + "accuracy_abs_rest": { "type": "int", "ver": "0", + "data": "250" + }, + "accuracy_rel_rest": { "type": "int", "ver": "0", + "data": "1500" + }, + "accuracy_motion": { "type": "int", "ver": "0", + "data": "3000" + }, + "gyro_gap_thresh": { "type": "int", "ver": "0", + "data": "501" + }, + "mag_innov": { "type": "flt", "ver": "0", + "data": "9.0" + }, + "mag_sample_gap_fac": { "type": "flt", "ver": "0", + "data": "1.0" + }, + "tyro_thresh_for_zupt": { "type": "flt", "ver": "0", + "data": "0.001" + }, + "sensor_rpt_rate": { "type": "flt", "ver": "0", + "data": "1.0" + }, + "def_sample_rate": { "type": "flt", "ver": "0", + "data": "5.0" + }, + "amd_int_cfg_param1": { "type": "flt", "ver": "0", + "data": "0.06" + }, + "amd_int_cfg_param2": { "type": "flt", "ver": "0", + "data": "0.5" + }, + "amd_int_cfg_param5": { "type": "flt", "ver": "0", + "data": "0.16" + } + } + } +} \ No newline at end of file diff --git a/proprietary/vendor/etc/sensors/config/sns_geomag_rv.json b/proprietary/vendor/etc/sensors/config/sns_geomag_rv.json new file mode 100644 index 0000000..2ebcef8 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_geomag_rv.json @@ -0,0 +1,30 @@ +{ + "config": { + "hw_platform": ["MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["291", "246", "300", "301", "305", "321", "336", "339", "341", "355", "356", "360", "361", "365", "366", "393", "394", "400", "407", "417", + "440", "415", "439", "416", "437", "444", "445", "420", "424", "443", "434", "435", "459", "441", "471", "456", "454", "450", "476", "467", "468", "469", + "470", "473", "474", "501", "502", "475", "497", "498", "515", "507", "518", "575", "576", "561", "562", "578", "565", "585", "586"] + }, + "sns_geomag_rv": { + "owner": "sns_geomag_rv", + ".config": { + "owner": "sns_geomag_rv", + "gamerv_cfg_param1": {"type": "int","ver": "0","data": "300" + }, + "gamerv_cfg_param2": {"type": "int","ver": "0","data": "300" + }, + "fusion_min_samp_rate": {"type": "flt","ver": "0","data": "1.0" + }, + "gamerv_def_rpt_rate": {"type": "flt","ver": "0","data": "1.0" + }, + "gamerv_def_sample_rate": {"type": "flt","ver": "0","data": "5.0" + }, + "amd_int_cfg_param1": {"type": "flt","ver": "0","data": "0.06" + }, + "amd_int_cfg_param2": {"type": "flt","ver": "0","data": "0.5" + }, + "game_rv_c_sys": {"type": "int","ver": "0","data": "0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_gyro_cal.json b/proprietary/vendor/etc/sensors/config/sns_gyro_cal.json new file mode 100644 index 0000000..b90dc49 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_gyro_cal.json @@ -0,0 +1,27 @@ +{ + "config": { + "hw_platform": ["MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["291", "246", "300", "301", "305", "321", "336", "347", "339", "341", "355", "356", "360", "361", "365", "366", "393", "394", "400", + "407", "417", "440", "415", "439", "444", "445", "420", "424", "443", "434", "435", "459", "441", "471", "455", "456", "454", "450", "476", "467", + "468", "469", "470", "473", "474", "501", "502", "475", "496", "497", "498", "515", "507", "518", "523", "524", "575", "576", "561", "562", "548", + "578", "565", "585", "586"] + }, + "sns_gyro_cal_config": { + "owner": "sns_gyro_cal", + "calibration_period": {"type": "int","ver": "0", + "data": "60" + }, + "num_samples": {"type": "int","ver": "0", + "data": "64" + }, + "variance_threshold": {"type": "flt","ver": "0", + "data": "0.00000085" + }, + "sample_rate": {"type": "flt","ver": "0", + "data": "10.0" + }, + "bias_threshold": {"type": "flt","ver": "0", + "data": "0.20" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_mag_cal.json b/proprietary/vendor/etc/sensors/config/sns_mag_cal.json new file mode 100644 index 0000000..b0de3be --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_mag_cal.json @@ -0,0 +1,17 @@ +{ + "config": { + "hw_platform": ["MTP", "Dragon", "Surf", "HDK", "IDP", "QRD", "IOT"], + "soc_id": ["339", "355", "356", "361", "365", "366", "394", "400", "407", "417", "440", "415", "439", "416", "437", "444", "445", "420", + "424", "443", "434", "435", "459", "441", "471", "456", "454", "455", "450", "476", "467", "468", "469", "470", "473", "474", "496", "501", "502", "475", + "497", "498", "515", "507", "518", "523", "524", "548", "575", "576", "561", "562", "578", "565", "585", "586"] + }, + "sns_mag_cal_config": { + "owner": "sns_mag_cal", + "anomaly_threshold": {"type": "flt","ver": "0", + "data": "200.0" + }, + "sample_rate": { "type": "flt", "ver": "0", + "data": "25.0" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_rmd.json b/proprietary/vendor/etc/sensors/config/sns_rmd.json new file mode 100644 index 0000000..a45127a --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_rmd.json @@ -0,0 +1,27 @@ +{ + "config": { + "hw_platform": ["MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["291", "246", "300", "301", "305", "321", "336", "339", "341", "355", "356", "360", "361", "365", "366", "393", "394", + "400", "407", "417", "440", "415", "439", "416", "437", "444", "445", "420", "424", "443", "434", "435", "459", "441", "471", "456", + "454", "450", "476", "467", "468", "469", "470", "473", "474", "501", "502", "475", "497", "498", "515", "507", "518", "575", "576", + "561", "562", "578", "565", "585", "586"] + }, + "sns_rmd": { + "owner": "sns_rmd", + "param4": { + "ver": "0", "type": "flt", "data": "0.2" + }, + "param3": { + "ver": "0", "type": "flt", "data": "5" + }, + "param2": { + "ver": "0", "type": "flt", "data": "0.2" + }, + "param1": { + "ver": "0", "type": "flt", "data": "173" + }, + "sample_rate": { + "ver": "0", "type": "flt", "data": "30.0" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_rotv.json b/proprietary/vendor/etc/sensors/config/sns_rotv.json new file mode 100644 index 0000000..7cc71e9 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_rotv.json @@ -0,0 +1,25 @@ +{ + "config": + { + "hw_platform": ["MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["291", "246", "300", "301", "305", "321", "336", "339", "341", "355", "356", "360", "361", "365", "366", "393", "394", "400", + "407", "417", "440", "415", "439", "416", "437", "444", "445", "420", "424", "443", "434", "435", "459", "441", "471", "456", "454","450", + "476", "467", "468", "469", "470", "473", "474", "501", "502", "475", "497", "498", "515", "507", "518", "575", "576", "561", "562", "578", + "565", "585", "586"] + }, + "sns_rotv_platform": { + "owner": "sns_rotv", + ".config":{ + "owner": "sns_rotv", + "min_report_rate": { + "type": "flt", "ver": "0", "data": "1.0" + }, + "debug_mode": { + "type": "int", "ver": "0", "data": "0" + }, + "sample_rate": { + "type": "flt", "ver": "0", "data": "5.0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_smd.json b/proprietary/vendor/etc/sensors/config/sns_smd.json new file mode 100644 index 0000000..576039a --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_smd.json @@ -0,0 +1,41 @@ +{ + "config": { + "hw_platform": ["MTP", "Dragon", "Surf", "QRD", "HDK", "IDP", "IOT"], + "soc_id": ["291", "246", "300", "301", "305", "321", "336", "339", "341", "355", "356", "360", "361", "365", "366", "393", "347", "394", "400", + "407", "416", "417", "437", "440", "415", "439", "444", "445", "420", "424", "443", "434", "435", "459", "441", "471", "456", "454","450", "476", + "467", "468", "469", "470", "473", "474", "501", "502", "475", "497", "498", "515", "507", "518", "575", "576", "561", "562", "578", "565", "585", "586"] + }, + "sns_smd": { + "owner": "sns_smd", + "sample_rate": { + "ver": "0", "type": "flt", "data": "10.0" + }, + "accel_window_time": { + "ver": "0", "type": "int", "data": "5" + }, + "detect_threshold": { + "ver": "0", "type": "flt", "data": "0.158113883" + }, + "self_transition_prob_sm": { + "ver": "0", "type": "flt", "data": "0.9" + }, + "variable_decision_latency": { + "ver": "0", "type": "int", "data": "1" + }, + "max_latency": { + "ver": "0", "type": "int", "data": "10" + }, + "step_count_thresh": { + "ver": "0", "type": "int", "data": "5" + }, + "step_window_time": { + "ver": "0", "type": "int", "data": "3" + }, + "eigen_thresh": { + "ver": "0", "type": "flt", "data": "6.0" + }, + "accel_norm_std_thresh": { + "ver": "0", "type": "flt", "data": "2.0" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_tilt_sw_enabled.json b/proprietary/vendor/etc/sensors/config/sns_tilt_sw_enabled.json new file mode 100644 index 0000000..9821579 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_tilt_sw_enabled.json @@ -0,0 +1,13 @@ +{ + "config": { + "hw_platform": [ "MTP", "Dragon", "Surf", "HDK", "IDP", "QRD", "IOT"], + "soc_id": ["291", "246", "305", "321", "336", "341", "355", "360", "365", "366", "393", "394", "400", "407", "417", "440", "444", "445", "420", "424", "443", + "434", "435", "459", "441", "471", "454","450", "476", "467", "468", "469", "470", "473", "474", "475", "497", "498", "515", "507", "518", "575", "576", "561", + "562", "578", "565", "585", "586"] + }, + "sns_tilt": { + "owner": "sns_tilt", + "enabled": {"ver": "0","type": "int", "data": "1" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_tilt_to_wake.json b/proprietary/vendor/etc/sensors/config/sns_tilt_to_wake.json new file mode 100644 index 0000000..c156029 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_tilt_to_wake.json @@ -0,0 +1,48 @@ +{ + "config": { + "hw_platform": [ "MTP", "Dragon", "Surf", "IDP", "QRD", "IOT" + ], + "soc_id": ["291", "246", "305", "321", "336", "339", "355", "356", "360", "361", "365", "366", "393", "394", "400", "407", "417", "440", + "415", "439", "444", "445", "420", "424", "443", "434", "435", "459", "441", "471", "456", "454","450", "476", "467", "468", "469", "470", "473", "474" + , "501", "502", "475", "497", "498", "515", "507", "518", "575", "576", "561", "562", "578", "565", "585", "586"] + }, + "sns_tilt_to_wake": { + "owner": "sns_tilt_to_wake", + "accel_sampling_rate":{"ver": "0","type": "flt", + "data": "25.0" + }, + "filter_window_seconds":{"ver": "0","type": "flt", + "data": "0.16" + }, + "accel_window_seconds":{"ver": "0","type": "flt", + "data": "1.1" + }, + "accel_sub_window_seconds":{"ver": "0","type": "flt", + "data": "0.55" + }, + "window_for_accel_stability_check_seconds":{"ver": "0","type": "flt", + "data": "0.16" + }, + "min_delta_pitch_threshold_deg":{"ver": "0","type": "flt", + "data": "45.0" + }, + "min_pitch_threshold_deg":{"ver": "0","type": "flt", + "data": "40.0" + }, + "min_abs_delta_z_threshold_deg":{"ver": "0","type": "flt", + "data": "10.0" + }, + "max_roll_threshold_deg":{"ver": "0","type": "flt", + "data": "25.0" + }, + "max_accel_spread_threshold":{"ver": "0","type": "flt", + "data": "4.8" + }, + "max_accel_norm_deviation_from_G_threshold":{"ver": "0","type": "flt", + "data": "2.7" + }, + "max_pitch_threshold_deg":{"ver": "0","type": "flt", + "data": "200.0" + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/sns_wrist_pedo.json b/proprietary/vendor/etc/sensors/config/sns_wrist_pedo.json new file mode 100644 index 0000000..0892740 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/sns_wrist_pedo.json @@ -0,0 +1,28 @@ +{ + "config": { + "hw_platform": [ + "MTP", "Dragon", "Surf", "QRD" ], + "soc_id": ["300", "301"] + }, + "sns_wrist_pedo": { + "owner": "sns_wrist_pedo", + "default_disable": { + "ver": "0", "type": "int", "data": "0" + }, + "sample_rate": { + "ver": "0", "type": "flt", "data": "20.0" + }, + "step_count_threshold": { + "ver": "0", "type": "int", "data": "0" + }, + "step_threshold": { + "ver": "0", "type": "flt", "data": "10.1" + }, + "swing_threshold": { + "ver": "0", "type": "flt", "data": "10.5" + }, + "step_prob_threshold": { + "ver": "0", "type": "flt", "data": "0.49" + } + } +} \ No newline at end of file diff --git a/proprietary/vendor/etc/sensors/config/strait_bmi3x0_0.json b/proprietary/vendor/etc/sensors/config/strait_bmi3x0_0.json new file mode 100644 index 0000000..f2b035b --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_bmi3x0_0.json @@ -0,0 +1,367 @@ +{ + "config":{ + "hw_platform": ["MTP"], + "soc_id": ["507", "578"] + }, + "bmi3x0_0":{ + "owner": "bmi3x0", + ".accel":{ + "owner": "bmi3x0", + ".config":{ + "owner": "bmi3x0", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "3" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".gyro":{ + "owner": "bmi3x0", + ".config":{ + "owner": "bmi3x0", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "4" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".md":{ + "owner": "bmi3x0", + ".config":{ + "owner": "bmi3x0", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".temp":{ + "owner": "bmi3x0", + ".config":{ + "owner": "bmi3x0", + "is_dri":{ "type": "int", "ver": "0", + "data": "0" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "2" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + } + }, + "bmi3x0_0_platform":{ + "owner": "bmi3x0", + ".config":{ + "owner": "bmi3x0", + "bus_type":{ "type": "int", "ver": "0", + "data": "3" + }, + "bus_instance":{ "type": "int", "ver": "0", + "data": "1" + }, + "slave_config":{ "type": "int", "ver": "0", + "data": "105" + }, + "i3c_address":{ "type": "int", "ver": "0", + "data": "10" + }, + "min_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "max_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "12500" + }, + "reg_addr_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "dri_irq_num":{ "type": "int", "ver": "0", + "data": "95" + }, + "irq_pull_type":{ "type": "int", "ver": "0", + "data": "2" + }, + "irq_is_chip_pin":{ "type": "int", "ver": "0", + "data": "1" + }, + "irq_drive_strength":{ "type": "int", "ver": "0", + "data": "0" + }, + "irq_trigger_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "num_rail":{ "type": "int", "ver": "0", + "data": "1" + }, + "rail_on_state":{ "type": "int", "ver": "0", + "data": "2" + }, + "vddio_rail":{ "type": "str", "ver": "0", + "data": "/pmic/client/sensor_vddio" + }, + "rigid_body_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "min_odr":{ "type": "int", "ver": "0", + "data": "20" + }, + "max_odr":{ "type": "int", "ver": "0", + "data": "500" + } + }, + ".orient":{ + "owner": "bmi3x0", + "x":{ "type": "str", "ver": "0", + "data": "+y" + }, + "y":{ "type": "str", "ver": "0", + "data": "-x" + }, + "z":{ "type": "str", "ver": "0", + "data": "+z" + } + }, + ".gyro":{ + "owner": "bmi3x0", + ".fac_cal":{ + "owner": "bmi3x0", + ".corr_mat":{ + "owner": "bmi3x0", + "0_0":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "0_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "0_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_1":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "1_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_2":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "bmi3x0", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".accel":{ + "owner": "bmi3x0", + ".fac_cal":{ + "owner": "bmi3x0", + ".corr_mat":{ + "owner": "bmi3x0", + "0_0":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "0_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "0_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_1":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "1_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_2":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "bmi3x0", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".temp":{ + "owner": "bmi3x0", + ".fac_cal": + { + "owner": "bmi3x0", + ".scale":{ + "owner": "bmi3x0", + "x":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "bmi3x0", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".md":{ + "owner": "bmi3x0", + ".config":{ + "owner": "bmi3x0", + "thresh":{ "type": "flt", "ver": "0", + "data": "0.6132" + }, + "disable":{ "type": "int", "ver": "0", + "data": "0" + }, + "win":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + }, + ".placement":{ + "owner": "bmi3x0", + "0":{ "type": "flt", "ver": "0", + "data": "0.1" + }, + "1":{ "type": "flt", "ver": "0", + "data": "0.1" + }, + "2":{ "type": "flt", "ver": "0", + "data": "0.1" + }, + "3":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "4":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "5":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "6":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "7":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "8":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "9":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "10":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "11":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + }, + "bmi3x0_crt_state":{ + "owner": "bmi3x0", + ".crt_gain":{ + "owner": "bmi3x0", + "gain_x":{ "type": "int", "ver": "0", + "data": "0" + }, + "gain_y":{ "type": "int", "ver": "0", + "data": "1" + }, + "gain_z":{ "type": "int", "ver": "0", + "data": "2" + } + } + }, + "bmi3x0_crt_config":{ + "owner": "bmi3x0", + ".crt_cfg":{ + "owner": "bmi3x0", + "crt_itvl":{ "type": "int", "ver": "0", + "data": "5" + }, + "repeate_on_error":{ "type": "int", "ver": "0", + "data": "1" + }, + "reserved":{ "type": "int", "ver": "0", + "data": "2" + } + } + }, + "bmi3x0_tap_config":{ + "owner": "bmi3x0", + ".config":{ + "owner": "bmi3x0", + "enable":{ "type": "int", "ver": "0", + "data": "1" + }, + "axis_sel":{ "type": "int", "ver": "0", + "data": "1" + }, + "sensitivity":{ "type": "int", "ver": "0", + "data": "1" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/strait_default_sensors.json b/proprietary/vendor/etc/sensors/config/strait_default_sensors.json new file mode 100644 index 0000000..f1a3787 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_default_sensors.json @@ -0,0 +1,185 @@ +{ + "config":{ + "hw_platform": ["QRD","MTP", "RCM", "Surf"], + "soc_id": ["507", "565", "578"] + }, + + "default_sensors": { + "owner": "suid", + ".accel": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".gyro": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".mag": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".motion_detect": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".sensor_temperature": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + }, + ".attr_1": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "0" }, + "val": { "type": "str", "ver": "0", "data": "lsm6dst" } + } + }, + + ".proximity": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "16" }, + "val": { "type": "int", "ver": "0", "data": "1" } + } + }, + + ".ambient_light": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "16" }, + "val": { "type": "int", "ver": "0", "data": "1" } + } + }, + + ".sar": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "16" }, + "val": { "type": "int", "ver": "0", "data": "1" } + } + }, + + ".accel_cal": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".gyro_cal": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".mag_cal": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".amd": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".tilt": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".gyro_rot_matrix": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".gravity": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".game_rv": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".geomag_rv": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".fmv": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + }, + + ".rotv": { + "owner": "suid", + ".attr_0": { + "owner": "suid", + "id": { "type": "int", "ver": "0", "data": "19" }, + "val": { "type": "int", "ver": "0", "data": "0" } + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/strait_dynamic_sensors.json b/proprietary/vendor/etc/sensors/config/strait_dynamic_sensors.json new file mode 100644 index 0000000..b0e5b0f --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_dynamic_sensors.json @@ -0,0 +1,30 @@ +{ + "config":{ + "hw_platform": ["QRD","MTP", "RCM", "Surf"], + "soc_id": ["507", "565", "578"] + }, + + "sns_dynamic_libraries": + { + "owner": "dynamic_sensor", + "detect_on_every_boot":{ "type": "int", "ver": "0", + "data": "0" + }, + ".lib0": + { + "owner": "dynamic_sensor", + "name":{ "type": "str", "ver": "0", + "data": "lsm6dst_normal.so" + }, + "reg_fun":{ "type": "str", "ver": "0", + "data": "sns_register_lsm6dst" + }, + "reg_cnt":{ "type": "int", "ver": "0", + "data": "1" + }, + "detected":{ "type": "int", "ver": "0", + "data": "0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/strait_ltr569_0.json b/proprietary/vendor/etc/sensors/config/strait_ltr569_0.json new file mode 100644 index 0000000..e112ac2 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_ltr569_0.json @@ -0,0 +1,337 @@ +{ + "config": + { + "hw_platform": ["MTP"], + "soc_id": ["507", "578"] + }, + "ltr569_0":{ + "owner": "sns_ltr569", + ".ambient":{ + "owner": "sns_ltr569", + ".config":{ + "owner": "sns_ltr569", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".proximity":{ + "owner": "sns_ltr569", + ".config":{ + "owner": "sns_ltr569", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + } + }, + "ltr569_0_platform":{ + "owner": "sns_ltr569", + ".config":{ + "owner": "sns_ltr569", + "bus_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "bus_instance":{ "type": "int", "ver": "0", + "data": "2" + }, + "slave_config":{ "type": "int", "ver": "0", + "data": "35" + }, + "min_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "max_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "reg_addr_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "dri_irq_num":{ "type": "int", "ver": "0", + "data": "98" + }, + "irq_pull_type":{ "type": "int", "ver": "0", + "data": "3" + }, + "irq_is_chip_pin":{ "type": "int", "ver": "0", + "data": "1" + }, + "irq_drive_strength":{ "type": "int", "ver": "0", + "data": "0" + }, + "irq_trigger_type":{ "type": "int", "ver": "0", + "data": "1" + }, + "num_rail":{ "type": "int", "ver": "0", + "data": "2" + }, + "rail_on_state":{ "type": "int", "ver": "0", + "data": "2" + }, + "vdd_rail":{ "type": "str", "ver": "0", + "data": "/see/rail/eLDO" + }, + "vddio_rail":{ "type": "str", "ver": "0", + "data": "/pmic/client/sensor_vddio" + }, + "rigid_body_type":{ "type": "int", "ver": "0", + "data": "0" + } + }, + ".ambient":{ + "owner": "sns_ltr569", + ".fac_cal":{ + "owner": "sns_ltr569", + "scale":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "bias":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "lcm_vendor":{ "type": "flt", "ver": "0", + "data": "0" + }, + "target_lux":{ "type": "flt", "ver": "0", + "data": "500.0" + }, + "default_scale":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".def_config":{ + "owner": "sns_ltr569", + "als_ir_gain":{ "type": "flt", "ver": "1", + "data": "156" + }, + "als_time_scale":{ "type": "flt", "ver": "0", + "data": "167" + }, + "als_int_time":{ "type": "flt", "ver": "0", + "data": "127" + }, + "als_meas_rate":{ "type": "flt", "ver": "0", + "data": "32" + }, + "als_config_4":{ "type": "flt", "ver": "0", + "data": "83" + }, + "als_cal_lux":{ "type": "flt", "ver": "0", + "data": "300.0" + }, + "als_sample_rate":{ "type": "flt", "ver": "0", + "data": "20.0" + } + } + }, + ".proximity":{ + "owner": "sns_ltr569", + ".fac_cal":{ + "owner": "sns_ltr569", + "near_threshold":{ "type": "flt", "ver": "0", + "data": "6800.0" + }, + "far_threshold":{ "type": "flt", "ver": "0", + "data": "6000.0" + }, + "cross_talk":{ "type": "flt", "ver": "0", + "data": "290.0" + }, + "nt_n_ct":{ "type": "flt", "ver": "0", + "data": "305.0" + }, + "ft_n_ct":{ "type": "flt", "ver": "0", + "data": "128.0" + }, + "cover":{ "type": "flt", "ver": "0", + "data": "667.0" + }, + "uncover":{ "type": "flt", "ver": "0", + "data": "290.0" + }, + "default_near_threshold":{ "type": "flt", "ver": "0", + "data": "6800.0" + }, + "default_far_threshold":{ "type": "flt", "ver": "0", + "data": "6000.0" + }, + "default_factor":{ "type": "flt", "ver": "0", + "data": "1000.0" + }, + "delta2":{ "type": "flt", "ver": "0", + "data": "550.0" + }, + "delta3":{ "type": "flt", "ver": "0", + "data": "750.0" + }, + "factor":{ "type": "flt", "ver": "0", + "data": "1000.0" + }, + "high_coeff":{ "type": "flt", "ver": "1", + "data": "0.81" + }, + "low_coeff":{ "type": "flt", "ver": "1", + "data": "0.34" + }, + "default_cover":{ "type": "flt", "ver": "0", + "data": "2000" + }, + "default_uncover":{ "type": "flt", "ver": "0", + "data": "250" + } + }, + ".variable":{ + "owner": "sns_ltr569", + "pLowTh":{ "type": "flt", "ver": "0", + "data": "6000.0" + }, + "pHighTh":{ "type": "flt", "ver": "0", + "data": "6800.0" + }, + "meas_rate":{ "type": "int", "ver": "0", + "data": "237" + }, + "high_coeff":{ "type": "flt", "ver": "0", + "data": "0.85" + }, + "low_coeff":{ "type": "flt", "ver": "0", + "data": "0.46" + }, + "pUseOilAlgo":{ "type": "int", "ver": "0", + "data": "0" + } + }, + ".algo":{ + "owner": "sns_ltr569", + "SMUDGE_NT":{ "type": "int", "ver": "0", + "data": "3000" + }, + "SMUDGE_FT":{ "type": "int", "ver": "0", + "data": "2500" + }, + "SMUDGE_DIFF":{ "type": "int", "ver": "0", + "data": "300" + } + }, + ".def_config":{ + "owner": "sns_ltr569", + "ps_led_dt_pw":{ "type": "flt", "ver": "0", + "data": "12" + }, + "ps_led_current":{ "type": "flt", "ver": "0", + "data": "18" + }, + "ps_led_pulse":{ "type": "flt", "ver": "1", + "data": "29" + }, + "ps_gain":{ "type": "flt", "ver": "0", + "data": "18" + }, + "ps_meas_rate":{ "type": "flt", "ver": "1", + "data": "231" + }, + "ps_diode_sw":{ "type": "flt", "ver": "0", + "data": "15" + }, + "ps_config_2":{ "type": "flt", "ver": "0", + "data": "20" + }, + "ps_config_3":{ "type": "flt", "ver": "0", + "data": "87" + }, + "ps_config_4":{ "type": "flt", "ver": "0", + "data": "133" + }, + "ps_target_xt":{ "type": "flt", "ver": "0", + "data": "2000.0" + }, + "ps_thres_low_offset":{ "type": "flt", "ver": "0", + "data": "10000.0" + }, + "ps_thres_high_offset":{ "type": "flt", "ver": "0", + "data": "20000.0" + }, + "ps_oil_offset":{ "type": "flt", "ver": "1", + "data": "800.0" + }, + "ps_oil_trigger":{ "type": "flt", "ver": "1", + "data": "8000.0" + }, + "ps_sample_rate":{ "type": "flt", "ver": "0", + "data": "5.0" + }, + "pUseOilAlgo":{ "type": "flt", "ver": "0", + "data": "0" + } + } + }, + ".parameter":{ + "owner": "sns_ltr569", + ".als_para":{ + "owner": "sns_ltr569", + "lcd_0":{ "type": "str", "ver": "2", + "data": "1.0,20.0,85.0,0.0,42.839,55.831,54.300" + }, + "lcd_1":{ "type": "str", "ver": "1", + "data": "2.0,20.0,85.0,0.0,42.839,37.221,36.200" + } + } + }, + ".placement":{ + "owner": "sns_ltr569", + "0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "3":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "4":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "5":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "6":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "7":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "8":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "9":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "10":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "11":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/strait_mmc56x3x_0_with_nfc.json b/proprietary/vendor/etc/sensors/config/strait_mmc56x3x_0_with_nfc.json new file mode 100644 index 0000000..62862e3 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_mmc56x3x_0_with_nfc.json @@ -0,0 +1,163 @@ +{ + "config":{ + "hw_platform": ["MTP"], + "soc_id": ["507", "578"], + "ro.vendor.hw.nfc": ["samsung"] + }, + "mmc56x3x_0":{ + "owner": "sns_mmc56x3x", + ".mag":{ + "owner": "sns_mmc56x3x", + ".config":{ + "owner": "sns_mmc56x3x", + "is_dri":{ "type": "int", "ver": "0", + "data": "0" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + } + }, + "mmc56x3x_0_platform":{ + "owner": "sns_mmc56x3x", + ".config":{ + "owner": "sns_mmc56x3x", + "bus_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "bus_instance":{ "type": "int", "ver": "0", + "data": "2" + }, + "slave_config":{ "type": "int", "ver": "0", + "data": "48" + }, + "min_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "max_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "reg_addr_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "num_rail":{ "type": "int", "ver": "0", + "data": "1" + }, + "rail_on_state":{ "type": "int", "ver": "0", + "data": "2" + }, + "vddio_rail":{ "type": "str", "ver": "0", + "data": "/pmic/client/sensor_vddio" + }, + "rigid_body_type":{ "type": "int", "ver": "0", + "data": "0" + } + }, + ".orient":{ + "owner": "sns_mmc56x3x", + "x":{ "type": "str", "ver": "1", + "data": "+y" + }, + "y":{ "type": "str", "ver": "1", + "data": "-x" + }, + "z":{ "type": "str", "ver": "1", + "data": "+z" + } + }, + ".mag":{ + "owner": "sns_mmc56x3x", + ".fac_cal":{ + "owner": "sns_mmc56x3x", + ".corr_mat":{ + "owner": "sns_mmc56x3x", + "0_0":{ "type": "flt", "ver": "1", + "data": "0.996747" + }, + "0_1":{ "type": "flt", "ver": "1", + "data": "0.071449" + }, + "0_2":{ "type": "flt", "ver": "1", + "data": "-0.036076" + }, + "1_0":{ "type": "flt", "ver": "1", + "data": "0.153318" + }, + "1_1":{ "type": "flt", "ver": "1", + "data": "0.901535" + }, + "1_2":{ "type": "flt", "ver": "1", + "data": "-0.005801" + }, + "2_0":{ "type": "flt", "ver": "1", + "data": "0.048143" + }, + "2_1":{ "type": "flt", "ver": "1", + "data": "-0.055439" + }, + "2_2":{ "type": "flt", "ver": "1", + "data": "1.110377" + } + }, + ".bias":{ + "owner": "sns_mmc56x3x", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".placement":{ + "owner": "sns_mmc56x3x", + "0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "3":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "4":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "5":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "6":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "7":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "8":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "9":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "10":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "11":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/strait_mmc56x3x_0_without_nfc.json b/proprietary/vendor/etc/sensors/config/strait_mmc56x3x_0_without_nfc.json new file mode 100644 index 0000000..cac63b8 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_mmc56x3x_0_without_nfc.json @@ -0,0 +1,163 @@ +{ + "config":{ + "hw_platform": ["MTP"], + "soc_id": ["507", "578"], + "ro.vendor.hw.nfc": ["false"] + }, + "mmc56x3x_0":{ + "owner": "sns_mmc56x3x", + ".mag":{ + "owner": "sns_mmc56x3x", + ".config":{ + "owner": "sns_mmc56x3x", + "is_dri":{ "type": "int", "ver": "0", + "data": "0" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + } + }, + "mmc56x3x_0_platform":{ + "owner": "sns_mmc56x3x", + ".config":{ + "owner": "sns_mmc56x3x", + "bus_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "bus_instance":{ "type": "int", "ver": "0", + "data": "2" + }, + "slave_config":{ "type": "int", "ver": "0", + "data": "48" + }, + "min_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "max_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "reg_addr_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "num_rail":{ "type": "int", "ver": "0", + "data": "1" + }, + "rail_on_state":{ "type": "int", "ver": "0", + "data": "2" + }, + "vddio_rail":{ "type": "str", "ver": "0", + "data": "/pmic/client/sensor_vddio" + }, + "rigid_body_type":{ "type": "int", "ver": "0", + "data": "0" + } + }, + ".orient":{ + "owner": "sns_mmc56x3x", + "x":{ "type": "str", "ver": "1", + "data": "+y" + }, + "y":{ "type": "str", "ver": "1", + "data": "-x" + }, + "z":{ "type": "str", "ver": "1", + "data": "+z" + } + }, + ".mag":{ + "owner": "sns_mmc56x3x", + ".fac_cal":{ + "owner": "sns_mmc56x3x", + ".corr_mat":{ + "owner": "sns_mmc56x3x", + "0_0":{ "type": "flt", "ver": "1", + "data": "0.999158" + }, + "0_1":{ "type": "flt", "ver": "1", + "data": "-0.00596" + }, + "0_2":{ "type": "flt", "ver": "1", + "data": "-0.03923" + }, + "1_0":{ "type": "flt", "ver": "1", + "data": "0.030523" + }, + "1_1":{ "type": "flt", "ver": "1", + "data": "1.113391" + }, + "1_2":{ "type": "flt", "ver": "1", + "data": "0.000977" + }, + "2_0":{ "type": "flt", "ver": "1", + "data": "0.000695" + }, + "2_1":{ "type": "flt", "ver": "1", + "data": "0.029734" + }, + "2_2":{ "type": "flt", "ver": "1", + "data": "1.149234" + } + }, + ".bias":{ + "owner": "sns_mmc56x3x", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".placement":{ + "owner": "sns_mmc56x3x", + "0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "3":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "4":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "5":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "6":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "7":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "8":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "9":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "10":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "11":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/strait_power_0.json b/proprietary/vendor/etc/sensors/config/strait_power_0.json new file mode 100644 index 0000000..38d0fb1 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_power_0.json @@ -0,0 +1,15 @@ +{ + "config":{ + "hw_platform": ["MTP", "RCM", "Surf", "QRD"], + "soc_id": ["507", "565", "578"] + }, + "power":{ + "owner": "power_manager", + ".island":{ + "owner": "power_manager", + "enable_island":{ "type": "int", "ver": "0", + "data": "1" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/strait_qmc6308_0_with_nfc.json b/proprietary/vendor/etc/sensors/config/strait_qmc6308_0_with_nfc.json new file mode 100644 index 0000000..9cf07ef --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_qmc6308_0_with_nfc.json @@ -0,0 +1,239 @@ +{ + "config": + { + "hw_platform": ["MTP"], + "soc_id": ["507", "578"], + "ro.vendor.hw.nfc": ["samsung"] + }, + "qmc6308_0":{ + "owner": "qmc6308", + ".mag":{ + "owner": "qmc6308", + ".config":{ + "owner": "qmc6308", + "is_dri":{ "type": "int", "ver": "0", + "data": "0" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + }, + ".config_2":{ + "owner": "qmc6308", + "use_fifo":{ "type": "int", "ver": "0", + "data": "0" + }, + "nsf":{ "type": "int", "ver": "0", + "data": "0" + }, + "sdr":{ "type": "int", "ver": "0", + "data": "0" + } + } + } + }, + "qmc6308_0_platform":{ + "owner": "qmc6308", + ".config":{ + "owner": "qmc6308", + "bus_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "bus_instance":{ "type": "int", "ver": "0", + "data": "2" + }, + "slave_config":{ "type": "int", "ver": "0", + "data": "44" + }, + "i3c_address":{ "type": "int", "ver": "0", + "data": "50" + }, + "min_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "max_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "reg_addr_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "dri_irq_num":{ "type": "int", "ver": "0", + "data": "113" + }, + "irq_pull_type":{ "type": "int", "ver": "0", + "data": "2" + }, + "irq_is_chip_pin":{ "type": "int", "ver": "0", + "data": "1" + }, + "irq_drive_strength":{ "type": "int", "ver": "0", + "data": "0" + }, + "irq_trigger_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "num_rail":{ "type": "int", "ver": "0", + "data": "1" + }, + "rail_on_state":{ "type": "int", "ver": "0", + "data": "2" + }, + "vddio_rail":{ "type": "str", "ver": "0", + "data": "/pmic/client/sensor_vddio" + }, + "rigid_body_type":{ "type": "int", "ver": "0", + "data": "0" + } + }, + ".orient":{ + "owner": "qmc6308", + "x":{ "type": "str", "ver": "1", + "data": "+y" + }, + "y":{ "type": "str", "ver": "1", + "data": "-x" + }, + "z":{ "type": "str", "ver": "1", + "data": "+z" + } + }, + ".mag":{ + "owner": "qmc6308", + ".fac_cal":{ + "owner": "qmc6308", + ".corr_mat":{ + "owner": "qmc6308", + "0_0":{ "type": "flt", "ver": "3", + "data": "0.995913333" + }, + "0_1":{ "type": "flt", "ver": "3", + "data": "0.089406667" + }, + "0_2":{ "type": "flt", "ver": "3", + "data": "-0.002133333" + }, + "1_0":{ "type": "flt", "ver": "3", + "data": "0.097296667" + }, + "1_1":{ "type": "flt", "ver": "3", + "data": "1.026386667" + }, + "1_2":{ "type": "flt", "ver": "3", + "data": "-0.005836667" + }, + "2_0":{ "type": "flt", "ver": "3", + "data": "0.021843333" + }, + "2_1":{ "type": "flt", "ver": "3", + "data": "-0.050963333" + }, + "2_2":{ "type": "flt", "ver": "3", + "data": "1.1253" + } + }, + ".bias":{ + "owner": "qmc6308", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + }, + ".fac_cal_2":{ + "owner": "qmc6308", + ".corr_mat":{ + "owner": "qmc6308", + "0_0":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "0_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "0_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_1":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "1_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_2":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "qmc6308", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".placement":{ + "owner": "qmc6308", + "0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "3":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "4":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "5":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "6":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "7":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "8":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "9":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "10":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "11":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/strait_qmc6308_0_without_nfc.json b/proprietary/vendor/etc/sensors/config/strait_qmc6308_0_without_nfc.json new file mode 100644 index 0000000..41dc665 --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_qmc6308_0_without_nfc.json @@ -0,0 +1,239 @@ +{ + "config": + { + "hw_platform": ["MTP"], + "soc_id": ["507", "578"], + "ro.vendor.hw.nfc": ["false"] + }, + "qmc6308_0":{ + "owner": "qmc6308", + ".mag":{ + "owner": "qmc6308", + ".config":{ + "owner": "qmc6308", + "is_dri":{ "type": "int", "ver": "0", + "data": "0" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + }, + ".config_2":{ + "owner": "qmc6308", + "use_fifo":{ "type": "int", "ver": "0", + "data": "0" + }, + "nsf":{ "type": "int", "ver": "0", + "data": "0" + }, + "sdr":{ "type": "int", "ver": "0", + "data": "0" + } + } + } + }, + "qmc6308_0_platform":{ + "owner": "qmc6308", + ".config":{ + "owner": "qmc6308", + "bus_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "bus_instance":{ "type": "int", "ver": "0", + "data": "2" + }, + "slave_config":{ "type": "int", "ver": "0", + "data": "44" + }, + "i3c_address":{ "type": "int", "ver": "0", + "data": "50" + }, + "min_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "max_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "reg_addr_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "dri_irq_num":{ "type": "int", "ver": "0", + "data": "113" + }, + "irq_pull_type":{ "type": "int", "ver": "0", + "data": "2" + }, + "irq_is_chip_pin":{ "type": "int", "ver": "0", + "data": "1" + }, + "irq_drive_strength":{ "type": "int", "ver": "0", + "data": "0" + }, + "irq_trigger_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "num_rail":{ "type": "int", "ver": "0", + "data": "1" + }, + "rail_on_state":{ "type": "int", "ver": "0", + "data": "2" + }, + "vddio_rail":{ "type": "str", "ver": "0", + "data": "/pmic/client/sensor_vddio" + }, + "rigid_body_type":{ "type": "int", "ver": "0", + "data": "0" + } + }, + ".orient":{ + "owner": "qmc6308", + "x":{ "type": "str", "ver": "1", + "data": "+y" + }, + "y":{ "type": "str", "ver": "1", + "data": "-x" + }, + "z":{ "type": "str", "ver": "1", + "data": "+z" + } + }, + ".mag":{ + "owner": "qmc6308", + ".fac_cal":{ + "owner": "qmc6308", + ".corr_mat":{ + "owner": "qmc6308", + "0_0":{ "type": "flt", "ver": "3", + "data": "0.9989" + }, + "0_1":{ "type": "flt", "ver": "3", + "data": "-0.043173333" + }, + "0_2":{ "type": "flt", "ver": "3", + "data": "-0.01275" + }, + "1_0":{ "type": "flt", "ver": "3", + "data": "0.041126667" + }, + "1_1":{ "type": "flt", "ver": "3", + "data": "1.12849" + }, + "1_2":{ "type": "flt", "ver": "3", + "data": "0.00789" + }, + "2_0":{ "type": "flt", "ver": "3", + "data": "-0.014233333" + }, + "2_1":{ "type": "flt", "ver": "3", + "data": "0.008736667" + }, + "2_2":{ "type": "flt", "ver": "3", + "data": "1.129953333" + } + }, + ".bias":{ + "owner": "qmc6308", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + }, + ".fac_cal_2":{ + "owner": "qmc6308", + ".corr_mat":{ + "owner": "qmc6308", + "0_0":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "0_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "0_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_1":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "1_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_2":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "qmc6308", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".placement":{ + "owner": "qmc6308", + "0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "3":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "4":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "5":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "6":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "7":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "8":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "9":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "10":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "11":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/config/strait_qmi8658_0.json b/proprietary/vendor/etc/sensors/config/strait_qmi8658_0.json new file mode 100644 index 0000000..85b615c --- /dev/null +++ b/proprietary/vendor/etc/sensors/config/strait_qmi8658_0.json @@ -0,0 +1,322 @@ +{ + "config":{ + "hw_platform": ["MTP"], + "soc_id": ["507", "578"] + }, + "qmi8658_0":{ + "owner": "qmi8658", + ".accel":{ + "owner": "qmi8658", + ".config":{ + "owner": "qmi8658", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "2" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".gyro":{ + "owner": "qmi8658", + ".config":{ + "owner": "qmi8658", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "3" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".md":{ + "owner": "qmi8658", + ".config":{ + "owner": "qmi8658", + "is_dri":{ "type": "int", "ver": "0", + "data": "1" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "0" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + }, + ".temp":{ + "owner": "qmi8658", + ".config":{ + "owner": "qmi8658", + "is_dri":{ "type": "int", "ver": "0", + "data": "0" + }, + "hw_id":{ "type": "int", "ver": "0", + "data": "0" + }, + "res_idx":{ "type": "int", "ver": "0", + "data": "2" + }, + "sync_stream":{ "type": "int", "ver": "0", + "data": "0" + } + } + } + }, + "qmi8658_0_platform":{ + "owner": "qmi8658", + ".config":{ + "owner": "qmi8658", + "bus_type":{ "type": "int", "ver": "0", + "data": "3" + }, + "bus_instance":{ "type": "int", "ver": "0", + "data": "1" + }, + "slave_config":{ "type": "int", "ver": "0", + "data": "106" + }, + "i3c_address":{ "type": "int", "ver": "0", + "data": "10" + }, + "min_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "400" + }, + "max_bus_speed_khz":{ "type": "int", "ver": "0", + "data": "12500" + }, + "reg_addr_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "dri_irq_num":{ "type": "int", "ver": "0", + "data": "95" + }, + "irq_pull_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "irq_is_chip_pin":{ "type": "int", "ver": "0", + "data": "1" + }, + "irq_drive_strength":{ "type": "int", "ver": "0", + "data": "0" + }, + "irq_trigger_type":{ "type": "int", "ver": "0", + "data": "3" + }, + "num_rail":{ "type": "int", "ver": "0", + "data": "1" + }, + "rail_on_state":{ "type": "int", "ver": "0", + "data": "2" + }, + "vddio_rail":{ "type": "str", "ver": "0", + "data": "/pmic/client/sensor_vddio" + }, + "rigid_body_type":{ "type": "int", "ver": "0", + "data": "0" + }, + "min_odr":{ "type": "int", "ver": "0", + "data": "5" + }, + "max_odr":{ "type": "int", "ver": "0", + "data": "400" + } + }, + ".orient":{ + "owner": "qmi8658", + "x":{ "type": "str", "ver": "0", + "data": "+x" + }, + "y":{ "type": "str", "ver": "0", + "data": "+y" + }, + "z":{ "type": "str", "ver": "0", + "data": "+z" + } + }, + ".gyro":{ + "owner": "qmi8658", + ".fac_cal":{ + "owner": "qmi8658", + ".corr_mat":{ + "owner": "qmi8658", + "0_0":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "0_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "0_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_1":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "1_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_2":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "qmi8658", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".accel":{ + "owner": "qmi8658", + ".fac_cal":{ + "owner": "qmi8658", + ".corr_mat":{ + "owner": "qmi8658", + "0_0":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "0_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "0_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "1_1":{ "type": "flt", "ver": "0", + "data": "1.0" + }, + "1_2":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_0":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_1":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "2_2":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "qmi8658", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "y":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "z":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".temp":{ + "owner": "qmi8658", + ".fac_cal": + { + "owner": "qmi8658", + ".scale":{ + "owner": "qmi8658", + "x":{ "type": "flt", "ver": "0", + "data": "1.0" + } + }, + ".bias":{ + "owner": "qmi8658", + "x":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } + }, + ".md":{ + "owner": "qmi8658", + ".config":{ + "owner": "qmi8658", + "thresh":{ "type": "flt", "ver": "0", + "data": "0.6132" + }, + "disable":{ "type": "int", "ver": "0", + "data": "0" + }, + "win":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + }, + ".placement":{ + "owner": "qmi8658", + "0":{ "type": "flt", "ver": "0", + "data": "0.1" + }, + "1":{ "type": "flt", "ver": "0", + "data": "0.1" + }, + "2":{ "type": "flt", "ver": "0", + "data": "0.1" + }, + "3":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "4":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "5":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "6":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "7":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "8":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "9":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "10":{ "type": "flt", "ver": "0", + "data": "0.0" + }, + "11":{ "type": "flt", "ver": "0", + "data": "0.0" + } + } + } +} diff --git a/proprietary/vendor/etc/sensors/proto/descriptor.proto b/proprietary/vendor/etc/sensors/proto/descriptor.proto new file mode 100644 index 0000000..a2102d7 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/descriptor.proto @@ -0,0 +1,885 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// Based on original Protocol Buffers design by +// Sanjay Ghemawat, Jeff Dean, and others. +// +// The messages in this file describe the definitions found in .proto files. +// A valid .proto file can be translated directly to a FileDescriptorProto +// without any other information (e.g. without reading its imports). + + +syntax = "proto2"; + +package google.protobuf; + +option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DescriptorProtos"; +option csharp_namespace = "Google.Protobuf.Reflection"; +option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; + +// descriptor.proto must be optimized for speed because reflection-based +// algorithms don't work during bootstrapping. +option optimize_for = SPEED; + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +message FileDescriptorSet { + repeated FileDescriptorProto file = 1; +} + +// Describes a complete .proto file. +message FileDescriptorProto { + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. + + // Names of files imported by this file. + repeated string dependency = 3; + // Indexes of the public imported files in the dependency list above. + repeated int32 public_dependency = 10; + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + repeated int32 weak_dependency = 11; + + // All top-level definitions in this file. + repeated DescriptorProto message_type = 4; + repeated EnumDescriptorProto enum_type = 5; + repeated ServiceDescriptorProto service = 6; + repeated FieldDescriptorProto extension = 7; + + optional FileOptions options = 8; + + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + optional SourceCodeInfo source_code_info = 9; + + // The syntax of the proto file. + // The supported values are "proto2" and "proto3". + optional string syntax = 12; +} + +// Describes a message type. +message DescriptorProto { + optional string name = 1; + + repeated FieldDescriptorProto field = 2; + repeated FieldDescriptorProto extension = 6; + + repeated DescriptorProto nested_type = 3; + repeated EnumDescriptorProto enum_type = 4; + + message ExtensionRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + + optional ExtensionRangeOptions options = 3; + } + repeated ExtensionRange extension_range = 5; + + repeated OneofDescriptorProto oneof_decl = 8; + + optional MessageOptions options = 7; + + // Range of reserved tag numbers. Reserved tag numbers may not be used by + // fields or extension ranges in the same message. Reserved ranges may + // not overlap. + message ReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + } + repeated ReservedRange reserved_range = 9; + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + repeated string reserved_name = 10; +} + +message ExtensionRangeOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +// Describes a field within a message. +message FieldDescriptorProto { + enum Type { + // 0 is reserved for errors. + // Order is weird for historical reasons. + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + TYPE_INT64 = 3; + TYPE_UINT64 = 4; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. + + // New in version 2. + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + } + + enum Label { + // 0 is reserved for errors + LABEL_OPTIONAL = 1; + LABEL_REQUIRED = 2; + LABEL_REPEATED = 3; + } + + optional string name = 1; + optional int32 number = 3; + optional Label label = 4; + + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + optional Type type = 5; + + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + optional string type_name = 6; + + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + optional string extendee = 2; + + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + // TODO(kenton): Base-64 encode? + optional string default_value = 7; + + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + optional int32 oneof_index = 9; + + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + optional string json_name = 10; + + optional FieldOptions options = 8; +} + +// Describes a oneof. +message OneofDescriptorProto { + optional string name = 1; + optional OneofOptions options = 2; +} + +// Describes an enum type. +message EnumDescriptorProto { + optional string name = 1; + + repeated EnumValueDescriptorProto value = 2; + + optional EnumOptions options = 3; + + // Range of reserved numeric values. Reserved values may not be used by + // entries in the same enum. Reserved ranges may not overlap. + // + // Note that this is distinct from DescriptorProto.ReservedRange in that it + // is inclusive such that it can appropriately represent the entire int32 + // domain. + message EnumReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Inclusive. + } + + // Range of reserved numeric values. Reserved numeric values may not be used + // by enum values in the same enum declaration. Reserved ranges may not + // overlap. + repeated EnumReservedRange reserved_range = 4; + + // Reserved enum value names, which may not be reused. A given name may only + // be reserved once. + repeated string reserved_name = 5; +} + +// Describes a value within an enum. +message EnumValueDescriptorProto { + optional string name = 1; + optional int32 number = 2; + + optional EnumValueOptions options = 3; +} + +// Describes a service. +message ServiceDescriptorProto { + optional string name = 1; + repeated MethodDescriptorProto method = 2; + + optional ServiceOptions options = 3; +} + +// Describes a method of a service. +message MethodDescriptorProto { + optional string name = 1; + + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + optional string input_type = 2; + optional string output_type = 3; + + optional MethodOptions options = 4; + + // Identifies if client streams multiple client messages + optional bool client_streaming = 5 [default = false]; + // Identifies if server streams multiple server messages + optional bool server_streaming = 6 [default = false]; +} + + +// =================================================================== +// Options + +// Each of the definitions above may have "options" attached. These are +// just annotations which may cause code to be generated slightly differently +// or may contain hints for code that manipulates protocol messages. +// +// Clients may define custom options as extensions of the *Options messages. +// These extensions may not yet be known at parsing time, so the parser cannot +// store the values in them. Instead it stores them in a field in the *Options +// message called uninterpreted_option. This field must have the same name +// across all *Options messages. We then use this field to populate the +// extensions when we build a descriptor, at which point all protos have been +// parsed and so all extensions are known. +// +// Extension numbers for custom options may be chosen as follows: +// * For options which will only be used within a single application or +// organization, or for experimental options, use field numbers 50000 +// through 99999. It is up to you to ensure that you do not use the +// same number for multiple options. +// * For options which will be published and used publicly by multiple +// independent entities, e-mail protobuf-global-extension-registry@google.com +// to reserve extension numbers. Simply provide your project name (e.g. +// Objective-C plugin) and your project website (if available) -- there's no +// need to explain how you intend to use them. Usually you only need one +// extension number. You can declare multiple options with only one extension +// number by putting them in a sub-message. See the Custom Options section of +// the docs for examples: +// https://developers.google.com/protocol-buffers/docs/proto#options +// If this turns out to be popular, a web service will be set up +// to automatically assign option numbers. + +message FileOptions { + + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + optional string java_package = 1; + + + // If set, all the classes from the .proto file are wrapped in a single + // outer class with the given name. This applies to both Proto1 + // (equivalent to the old "--one_java_file" option) and Proto2 (where + // a .proto always translates to a single class, but you may want to + // explicitly choose the class name). + optional string java_outer_classname = 8; + + // If set true, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the outer class + // named by java_outer_classname. However, the outer class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + optional bool java_multiple_files = 10 [default = false]; + + // This option does nothing. + optional bool java_generate_equals_and_hash = 20 [deprecated=true]; + + // If set true, then the Java2 code generator will generate code that + // throws an exception whenever an attempt is made to assign a non-UTF-8 + // byte sequence to a string field. + // Message reflection will do the same. + // However, an extension field still accepts non-UTF-8 byte sequences. + // This option has no effect on when used with the lite runtime. + optional bool java_string_check_utf8 = 27 [default = false]; + + + // Generated classes can be optimized for speed or code size. + enum OptimizeMode { + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + } + optional OptimizeMode optimize_for = 9 [default = SPEED]; + + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + optional string go_package = 11; + + + + + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + optional bool cc_generic_services = 16 [default = false]; + optional bool java_generic_services = 17 [default = false]; + optional bool py_generic_services = 18 [default = false]; + optional bool php_generic_services = 42 [default = false]; + + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + optional bool deprecated = 23 [default = false]; + + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + optional bool cc_enable_arenas = 31 [default = false]; + + + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + optional string objc_class_prefix = 36; + + // Namespace for generated classes; defaults to the package. + optional string csharp_namespace = 37; + + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + optional string swift_prefix = 39; + + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + optional string php_class_prefix = 40; + + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + optional string php_namespace = 41; + + // Use this option to change the namespace of php generated metadata classes. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. + optional string php_metadata_namespace = 44; + + // Use this option to change the package of ruby generated classes. Default + // is empty. When this option is not set, the package name will be used for + // determining the ruby package. + optional string ruby_package = 45; + + + // The parser stores options it doesn't recognize here. + // See the documentation for the "Options" section above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. + // See the documentation for the "Options" section above. + extensions 1000 to max; + + reserved 38; +} + +message MessageOptions { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + optional bool message_set_wire_format = 1 [default = false]; + + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + optional bool no_standard_descriptor_accessor = 2 [default = false]; + + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + optional bool deprecated = 3 [default = false]; + + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementations still need to work as + // if the field is a repeated message field. + // + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + optional bool map_entry = 7; + + reserved 8; // javalite_serializable + reserved 9; // javanano_as_lite + + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message FieldOptions { + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is not yet implemented in the open source + // release -- sorry, we'll try to include it in a future version! + optional CType ctype = 1 [default = STRING]; + enum CType { + // Default mode. + STRING = 0; + + CORD = 1; + + STRING_PIECE = 2; + } + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. + optional bool packed = 2; + + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. + optional JSType jstype = 6 [default = JS_NORMAL]; + enum JSType { + // Use the default type. + JS_NORMAL = 0; + + // Use JavaScript strings. + JS_STRING = 1; + + // Use JavaScript numbers. + JS_NUMBER = 2; + } + + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // + // Note that implementations may choose not to check required fields within + // a lazy sub-message. That is, calling IsInitialized() on the outer message + // may return true even if the inner message has missing required fields. + // This is necessary because otherwise the inner message would have to be + // parsed in order to perform the check, defeating the purpose of lazy + // parsing. An implementation which chooses not to check required fields + // must be consistent about it. That is, for any particular sub-message, the + // implementation must either *always* check its required fields, or *never* + // check its required fields, regardless of whether or not the message has + // been parsed. + optional bool lazy = 5 [default = false]; + + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + optional bool deprecated = 3 [default = false]; + + // For Google-internal migration only. Do not use. + optional bool weak = 10 [default = false]; + + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + reserved 4; // removed jtype +} + +message OneofOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumOptions { + + // Set this option to true to allow mapping different tag names to the same + // value. + optional bool allow_alias = 2; + + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + optional bool deprecated = 3 [default = false]; + + reserved 5; // javanano_as_lite + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumValueOptions { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + optional bool deprecated = 1 [default = false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message ServiceOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + optional bool deprecated = 33 [default = false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message MethodOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + optional bool deprecated = 33 [default = false]; + + // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + // or neither? HTTP based RPC implementation may choose GET verb for safe + // methods, and PUT verb for idempotent methods instead of the default POST. + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0; + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects + } + optional IdempotencyLevel idempotency_level = 34 + [default = IDEMPOTENCY_UNKNOWN]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +message UninterpretedOption { + // The name of the uninterpreted option. Each string represents a segment in + // a dot-separated name. is_extension is true iff a segment represents an + // extension (denoted with parentheses in options specs in .proto files). + // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents + // "foo.(bar.baz).qux". + message NamePart { + required string name_part = 1; + required bool is_extension = 2; + } + repeated NamePart name = 2; + + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + optional string identifier_value = 3; + optional uint64 positive_int_value = 4; + optional int64 negative_int_value = 5; + optional double double_value = 6; + optional bytes string_value = 7; + optional string aggregate_value = 8; +} + +// =================================================================== +// Optional source code info + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +message SourceCodeInfo { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendant. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + repeated Location location = 1; + message Location { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition. For + // example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + repeated int32 path = 1 [packed = true]; + + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + repeated int32 span = 2 [packed = true]; + + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to qux. + // // + // // Another line attached to qux. + // optional double qux = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to qux or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + optional string leading_comments = 3; + optional string trailing_comments = 4; + repeated string leading_detached_comments = 6; + } +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +message GeneratedCodeInfo { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + repeated Annotation annotation = 1; + message Annotation { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + repeated int32 path = 1 [packed = true]; + + // Identifies the filesystem path to the original source .proto. + optional string source_file = 2; + + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + optional int32 begin = 3; + + // Identifies the ending offset in bytes in the generated code that + // relates to the identified offset. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + optional int32 end = 4; + } +} diff --git a/proprietary/vendor/etc/sensors/proto/mot_barocal.proto b/proprietary/vendor/etc/sensors/proto/mot_barocal.proto new file mode 100644 index 0000000..8aca37c --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_barocal.proto @@ -0,0 +1,37 @@ +// @file mot_barocal.proto +// +// Defines message types for Motorola's barometer calibration +// +// Copyright (c) 2020 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_barocal" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - MOT_BAROCAL_MSGID_MOT_BAROCAL_REQ is used to enable the sensor + +// Message IDs for Mot Barocal +enum mot_barocal_msgid { + option (nanopb_enumopt).long_names = false; + + MOT_BAROCAL_MSGID_MOT_BAROCAL_REQ = 998; +} + +message mot_barocal_req +{ + // Reference pressure + required float reference = 1; +} + +// Stream events: +// +// Emits one sns_cal_event on completion +// +// This sensor does not publish configuration events. diff --git a/proprietary/vendor/etc/sensors/proto/mot_camgest.proto b/proprietary/vendor/etc/sensors/proto/mot_camgest.proto new file mode 100644 index 0000000..8055f48 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_camgest.proto @@ -0,0 +1,50 @@ +// @file mot_camgest.proto +// +// Defines message types for the Motorola Camera Gesture Sensor. +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot_camgest detects the twist gesture to trigger the camera +// This is actually a special trigger sensor, but it is treated as +// on-change in SEE. + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_camgest" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs +enum mot_camgest_msgid { + option (nanopb_enumopt).long_names = false; + + MOT_CAMGEST_MSGID_MOT_CAMGEST_EVENT = 772; +} + +enum mot_camgest_y_orient { + option (nanopb_enumopt).long_names = false; + MOT_CAMGEST_Y_ORIENT_UNKNOWN = 0; + MOT_CAMGEST_Y_ORIENT_DOWN = 1; + MOT_CAMGEST_Y_ORIENT_FLAT = 2; + MOT_CAMGEST_Y_ORIENT_UP = 3; +} + +message mot_camgest_event +{ + // Event output + required uint32 duration_ms = 1; + optional mot_camgest_y_orient y_orient = 2; +} + +// Stream events: +// +// The mot_camgest_event message is used to publish updated state +// +// This sensor does not publish configuration events. diff --git a/proprietary/vendor/etc/sensors/proto/mot_chopchop.proto b/proprietary/vendor/etc/sensors/proto/mot_chopchop.proto new file mode 100644 index 0000000..7aba87a --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_chopchop.proto @@ -0,0 +1,44 @@ +// @file mot_chopchop.proto +// +// Defines message types for the Motorola ChopChop Gesture Sensor. +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot_chopchop detects the double chop gesture to trigger the torch +// This is actually a special trigger sensor, but it is treated as +// on-change in SEE. + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_chopchop" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs +enum mot_chopchop_msgid { + option (nanopb_enumopt).long_names = false; + + MOT_CHOPCHOP_MSGID_MOT_CHOPCHOP_EVENT = 772; +} + +message mot_chopchop_event +{ + // Event output + required uint32 abort_count = 1; + required float peak1 = 2; + required float peak2 = 3; +} + +// Stream events: +// +// The mot_chopchop_event message is used to publish updated state +// +// This sensor does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/mot_devorient.proto b/proprietary/vendor/etc/sensors/proto/mot_devorient.proto new file mode 100644 index 0000000..0f4b1f5 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_devorient.proto @@ -0,0 +1,106 @@ +// @file mot_devorient.proto +// +// Defines the API for Motorola DevOrient algorithm. +// +// Copyright (c) 2017, Motorola. +// All rights reserved. +// Confidential and Proprietary - Motorola, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Attribute requirements: +// The DevOrient algorithm publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value is "mot_devorient_core", +// "mot_disprot", "mot_flatup", or "mot_flatdown". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS is 1.0 +// 3. SNS_STD_SENSOR_ATTRID_RANGES are 0 to 16 or 0 to 2. These are enum +// values that correspond to mot_devorient_flat_state and +// mot_devorient_disp_state. +// 4. SNS_STD_SENSOR_ATTRID_RATES is 1.0 +// 5. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The DevOrient algorithm supports on-change mode +// 2. The DevOrient algorithm handles the +// SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG request for +// all stream enable/update requests. +// 3. The Sensor reports an initial sample for each request, +// followed by samples for each transition. + +// Message IDs for Motorola DevOrient Sensor +enum mot_devorient_msgid { + option (nanopb_enumopt).long_names = false; + + // Uses message: mot_devorient_core_event + MOT_DEVORIENT_MSGID_MOT_DEVORIENT_CORE_EVENT = 456; + + // Uses message: mot_devorient_disprot_event + MOT_DEVORIENT_MSGID_MOT_DEVORIENT_DISPROT_EVENT = 457; + + // Uses message: mot_devorient_flatup_event + MOT_DEVORIENT_MSGID_MOT_DEVORIENT_FLATUP_EVENT = 458; + + // Uses message: mot_devorient_flatdown_event + MOT_DEVORIENT_MSGID_MOT_DEVORIENT_FLATDOWN_EVENT = 459; +} + +enum mot_devorient_flat_state { + option (nanopb_enumopt).long_names = false; + + // These values selected to match values used in DSP register + MOT_DEVORIENT_FLAT_UNKNOWN = 0; + MOT_DEVORIENT_FLAT_UP = 1; + MOT_DEVORIENT_FLAT_DOWN = 2; +} + +enum mot_devorient_disp_state { + option (nanopb_enumopt).long_names = false; + + MOT_DEVORIENT_DISP_PORTRAIT = 0; + MOT_DEVORIENT_DISP_CCW_LANDSCAPE = 1; + MOT_DEVORIENT_DISP_PORTRAIT_INV = 2; + MOT_DEVORIENT_DISP_CW_LANDSCAPE = 3; + MOT_DEVORIENT_DISP_UNKNOWN = 16; +} + +// Events types for DevOrient Sensor +message mot_devorient_core_event +{ + required mot_devorient_disp_state disp_state = 1 [default = MOT_DEVORIENT_DISP_UNKNOWN]; + required mot_devorient_flat_state flat_state = 2 [default = MOT_DEVORIENT_FLAT_UNKNOWN]; + required sns_std_sensor_sample_status status = 3 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +message mot_devorient_disprot_event +{ + required mot_devorient_disp_state disp_state = 1 [default = MOT_DEVORIENT_DISP_UNKNOWN]; + required sns_std_sensor_sample_status status = 2 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +message mot_devorient_flatup_event +{ + required bool flatup = 1 [default = false]; + required sns_std_sensor_sample_status status = 2 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +message mot_devorient_flatdown_event +{ + required bool flatdown = 1 [default = false]; + required sns_std_sensor_sample_status status = 2 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +// Handling stream events: +// 1. The DevOrient algorithm publishes events +// using mot_devorient_core_event, mot_devorient_disprot_event, +// mot_devorient_flatup_event, and mot_devorient_flatdown_event messages. +// 2. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 3. DevOrient algorithm does not publish configuration events. + +// Handling self-test requests: +// Not supported + +// Handling test events: +// Not Supported diff --git a/proprietary/vendor/etc/sensors/proto/mot_dsp_usound.proto b/proprietary/vendor/etc/sensors/proto/mot_dsp_usound.proto new file mode 100644 index 0000000..1df4e33 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_dsp_usound.proto @@ -0,0 +1,37 @@ +// @file mot_dsp_usound.proto +// +// Defines message types for the Motorola DSP Ultrasound (approach) Sensor. +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot_dsp_usound detects the approach of the user via ultrasound. +// This is actually a special trigger sensor, but it is treated as +// on-change in SEE. + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_dsp_usound" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs +enum mot_dsp_usound_msgid { + option (nanopb_enumopt).long_names = false; + + // This message has no payload + MOT_DSP_USOUND_MSGID_MOT_DSP_USOUND_APPROACH_EVENT = 772; +} + +// Stream events: +// +// The mot_dsp_usound_event message indicates a detected event +// +// This sensor does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/mot_flip.proto b/proprietary/vendor/etc/sensors/proto/mot_flip.proto new file mode 100644 index 0000000..4631f18 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_flip.proto @@ -0,0 +1,54 @@ +// @file mot_flip.proto +// +// Defines message types for the Motorola Flip State Sensor. +// +// Copyright (c) 2018 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot_flip detects the current state of the devices flip from an inductive sensor. +// This is an on-change sensor. + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_flip" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs +enum mot_flip_msgid { + option (nanopb_enumopt).long_names = false; + + MOT_FLIP_MSGID_MOT_FLIP_EVENT = 772; +} + +enum mot_flip_state { + option (nanopb_enumopt).long_names = false; + + MOT_FLIP_STATE_UNKNOWN = 0; + MOT_FLIP_STATE_OPEN = 1; + MOT_FLIP_STATE_CLOSED = 2; +} + +message mot_flip_event +{ + // Event output + required mot_flip_state flip_state = 1 [default = MOT_FLIP_STATE_UNKNOWN]; + + // Running count of open/closed events since registration at boot + optional uint32 event_count = 2 [default = 0]; + + // Integer representing the cause of the new event (see the driver for the enum) + optional int32 cause = 3 [default = 0]; +} + +// Stream events: +// +// The mot_flip_event message is used to publish updated state +// +// This sensor does not publish configuration events. diff --git a/proprietary/vendor/etc/sensors/proto/mot_ftm.proto b/proprietary/vendor/etc/sensors/proto/mot_ftm.proto new file mode 100644 index 0000000..6d7a917 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_ftm.proto @@ -0,0 +1,51 @@ +// @file mot_ftm.proto +// +// Defines message types for the Motorola Flip-To-Mute Algorithm. +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot Flip-To-Mute +// Mutes notifications when the phone is motionless, flat down & stowed + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_ftm" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Mot FTM Algorithm +enum mot_ftm_msgid { + option (nanopb_enumopt).long_names = false; + + // Uses message: mot_ftm_event + MOT_FTM_MSGID_MOT_FTM_EVENT = 927; +} + +enum mot_ftm_mute_state +{ + option (nanopb_enumopt).long_names = false; + + MOT_FTM_STATE_UNMUTED = 0; + MOT_FTM_STATE_MUTED = 1; + MOT_FTM_STATE_UNKNOWN = 2; +} + +message mot_ftm_event +{ + // Mot FTM state + required mot_ftm_mute_state state = 1 [default = MOT_FTM_STATE_UNKNOWN]; +} + +// Stream events: +// +// The mot_ftm_event message is used to publish the updated state +// +// This sensor does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/mot_glance.proto b/proprietary/vendor/etc/sensors/proto/mot_glance.proto new file mode 100644 index 0000000..40acc38 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_glance.proto @@ -0,0 +1,61 @@ +// @file mot_glance.proto +// +// Defines standard message types for the Mot_Glance +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std.proto"; +import "sns_std_sensor.proto"; + +// Mot_Glance Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_glance" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Sensor output event: +// Mot_Glance use mot_glance_event for it's output event + +enum mot_glance_msgid +{ + option (nanopb_enumopt).long_names = false; + + // From client, name is string matched to "mot_glance_config" msg below + MOT_GLANCE_MSGID_MOT_GLANCE_CONFIG = 512; + + // From Algo, name is string matched to "mot_glance_event" msg below + MOT_GLANCE_MSGID_MOT_GLANCE_EVENT = 772; +} + +enum mot_glance_event_type +{ + option (nanopb_enumopt).long_names = false; + + MOT_GLANCE_EVENT_TYPE_UNKNOWN = 0x00; + MOT_GLANCE_EVENT_TYPE_EXIT_STOWED = 0x01; + MOT_GLANCE_EVENT_TYPE_EXIT_FLATUP = 0x02; + MOT_GLANCE_EVENT_TYPE_EXIT_FLATDOWN = 0x04; + MOT_GLANCE_EVENT_TYPE_IR_GESTURE = 0x08; + MOT_GLANCE_EVENT_TYPE_MOVEMENT_GESTURE = 0x10; + MOT_GLANCE_EVENT_TYPE_USOUND_GESTURE = 0x20; + MOT_GLANCE_EVENT_TYPE_USOUND_ON_REQ = 0x40; + MOT_GLANCE_EVENT_TYPE_USOUND_OFF_REQ = 0x80; +} + +message mot_glance_event +{ + // The state which generated the glance event + required mot_glance_event_type state = 1 [default = MOT_GLANCE_EVENT_TYPE_UNKNOWN]; +} + +// Configuration Message +// Used to either request for a new configuration of the Mot_Glance Sensor or +// alter an already existing configuration +message mot_glance_config +{ + // Bitmask of mot_glance_event_type(s) indicating which gestures are monitored for this request + required uint32 gestures_enabled = 1 [default = 0]; + +} diff --git a/proprietary/vendor/etc/sensors/proto/mot_log.proto b/proprietary/vendor/etc/sensors/proto/mot_log.proto new file mode 100644 index 0000000..55ac8a3 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_log.proto @@ -0,0 +1,46 @@ +// @file mot_log.proto +// +// Defines message types for the Motorola Logging Sensor. +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; + +// Mot mechanism for slpi code to send log messages through a logging sensor +// and QMI up to the standard Android logging mechanism + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_log" + +// Message IDs for Mot Log Sensor +enum mot_log_msgid { + option (nanopb_enumopt).long_names = false; + + // MSGID for sensors to send events to the mot_log sensor + MOT_LOG_MSGID_MOT_LOG_EVENT = 470; +} + +// Verb levels (same as sensors_log.h) +enum mot_log_verb { + option (nanopb_enumopt).long_names = false; + + MOT_LOG_VERB_E = 1; + MOT_LOG_VERB_I = 2; + MOT_LOG_VERB_D = 3; + MOT_LOG_VERB_V = 4; +} + +message mot_log_event +{ + // Verbosity + required mot_log_verb verb = 1 [default = MOT_LOG_VERB_V]; + + // Message + required string msg = 2; + + // Optional log tag (truncated to 15 chars) + optional string tag = 3; +} diff --git a/proprietary/vendor/etc/sensors/proto/mot_lts.proto b/proprietary/vendor/etc/sensors/proto/mot_lts.proto new file mode 100644 index 0000000..d73ef49 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_lts.proto @@ -0,0 +1,40 @@ +// @file mot_lts.proto +// +// Defines message types for the Motorola Flip-To-Mute Algorithm. +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot Lift-To-Silence +// Mute the ringer when device exits flat & unstowed while device is ringing + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_lts" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Mot LTS Algorithm +enum mot_lts_msgid { + option (nanopb_enumopt).long_names = false; + + // Uses message: mot_lts_event + MOT_LTS_MSGID_MOT_LTS_EVENT = 666; +} + +message mot_lts_event +{ + // Message is empty; we just need to notify that an LTS happened. +} + +// Stream events: +// +// The mot_lts_event message is used to publish the updated state +// +// This sensor does not publish configuration events. diff --git a/proprietary/vendor/etc/sensors/proto/mot_ltv.proto b/proprietary/vendor/etc/sensors/proto/mot_ltv.proto new file mode 100644 index 0000000..32db33f --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_ltv.proto @@ -0,0 +1,52 @@ +// @file mot_ltv.proto +// +// Defines message types for the Motorola Lift to View Gesture Sensor. +// +// Copyright (c) 2017-2018 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot_ltv detects the that the device was lifted into a viewing position +// This is actually a special trigger sensor, but it is treated as +// on-change in SEE. + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_ltv" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs +enum mot_ltv_msgid { + option (nanopb_enumopt).long_names = false; + + MOT_LTV_MSGID_MOT_LTV_EVENT = 772; +} + +enum mot_ltv_trig_type +{ + option (nanopb_enumopt).long_names = false; + MOT_LTV_TRIG_TYPE_NONE = 0; + MOT_LTV_TRIG_TYPE_LIFTED = 1; + MOT_LTV_TRIG_TYPE_RECALL = 2; +} + +message mot_ltv_event +{ + // Event output + required mot_ltv_trig_type trig_type = 1; // trigger type + required uint32 confidence = 2; // 0-100 percentage confidence of trigger + required uint32 landing_delta_ms = 3; // time diff of events in landing window +} + +// Stream events: +// +// The mot_ltv_event message is used to publish updated state +// +// This sensor does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/mot_movement.proto b/proprietary/vendor/etc/sensors/proto/mot_movement.proto new file mode 100644 index 0000000..7ec17f8 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_movement.proto @@ -0,0 +1,82 @@ +// @file mot_movement.proto +// +// Defines standard message types for the Mot_Movement +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std.proto"; +import "sns_std_sensor.proto"; + +// Mot_Movement Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_movement" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Sensor output event: +// Mot_Movement use mot_movement_event for it's output event + +enum mot_movement_msgid +{ + option (nanopb_enumopt).long_names = false; + + // From client, name is string matched to "mot_movement_config" msg below + MOT_MOVEMENT_MSGID_MOT_MOVEMENT_CONFIG = 512; + + // From Algo, name is string matched to "mot_movement_event" msg below + MOT_MOVEMENT_MSGID_MOT_MOVEMENT_EVENT = 772; +} + +enum mot_movement_event_type +{ + option (nanopb_enumopt).long_names = false; + + // These values selected to match values used in DSP register + MOT_MOVEMENT_EVENT_TYPE_UNKNOWN = 0; + MOT_MOVEMENT_EVENT_TYPE_MOTION = 1; + MOT_MOVEMENT_EVENT_TYPE_STATIONARY = 2; +} + +message mot_movement_event +{ + // motion state + required mot_movement_event_type state = 1 [default = MOT_MOVEMENT_EVENT_TYPE_UNKNOWN]; +} + +// Configuration Message +// Used to either request for a new configuration of the Mot_Movement Sensor or +// alter an already existing configuration +message mot_movement_config +{ + /**< standard deviation threshold for motion, 9.8 m/s2 (1G) = 1024 */ + required float threshold = 1; + + /**< Continuous motion duration before event triggers. In s. */ + required uint32 startTime = 2; + + /**< Continuous non-motion duration before event triggers. In s. */ + required uint32 stopTime = 3; + + /**< A ratio (alpha coefficient) to apply when calculating the + * standard deviation running average. Must be a positive value in + * the (0, 1) interval. + * + * When motion is increasing, the average is adjusted as: + * runAvg = ratio * current + (1 - ratio) * runAvg + * When motion is decreasing, the average is adjusted as: + * runAvg = ratio * runAvg + (1 - ratio) * current + * + * When this optional field is not provided, the algorithm will not + * compute any running average. + */ + optional float runAvgRatio = 4; + + /**< The running average is capped at this value so that when there + * is extensive motion it doesn't take a long time to settle back + * down. This value is ignored if the runAvgRatio is not set. + */ + optional float runAvgCap = 5; + +} diff --git a/proprietary/vendor/etc/sensors/proto/mot_offbody.proto b/proprietary/vendor/etc/sensors/proto/mot_offbody.proto new file mode 100644 index 0000000..89a8b6b --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_offbody.proto @@ -0,0 +1,55 @@ +// @file mot_offbody.proto +// +// Defines message types for the Motorola Off Body Sensor. +// +// Copyright (c) 2018 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot_offbody monitors accelerometer variance. + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_offbody" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs +enum mot_offbody_msgid { + option (nanopb_enumopt).long_names = false; + + MOT_OFFBODY_MSGID_MOT_OFFBODY_EVENT = 783; +} + +enum mot_offbody_trig_type +{ + option (nanopb_enumopt).long_names = false; + MOT_OFFBODY_TRIG_TYPE_UNKNOWN = 0; + MOT_OFFBODY_TRIG_TYPE_ON_BODY = 1; + MOT_OFFBODY_TRIG_TYPE_OFF_BODY = 2; +} + +message mot_offbody_event +{ + // Event output + + // Trigger type + required mot_offbody_trig_type trig_type = 1; + + // Device angle at time of trigger (state change) + // The range is 0 degrees to 180 degrees + // 0 = Flat up, 180 = flat down + required float theta = 2; +} + +// Stream events: +// +// The mot_offbody_event message is used to publish updated state +// +// This sensor does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/mot_probe.proto b/proprietary/vendor/etc/sensors/proto/mot_probe.proto new file mode 100644 index 0000000..1b0ef40 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_probe.proto @@ -0,0 +1,62 @@ +// @file mot_probe.proto +// +// Defines message types for the Motorola's HW probing utilities +// +// Copyright (c) 2019 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; + +// mot_probe defines request and response types to be used by drivers so that +// users can probe sensor registers from the command line using sns_mot_client + +// Message IDs +enum mot_probe_msgid { + option (nanopb_enumopt).long_names = false; + + MOT_PROBE_MSGID_MOT_PROBE_REQ = 778; + MOT_PROBE_MSGID_MOT_PROBE_RESP = 779; +} + +enum mot_probe_constants { + option (nanopb_enumopt).long_names = false; + + MOT_PROBE_MAX_RD_SIZE = 64; +} + +message mot_probe_req +{ + // Are we requesting a register read or write? + required bool is_read = 1 [default = true]; + + // What's the address of the register we want to read? + required uint32 reg_addr = 2; + + // What's the SUID of the sensor we're probing? + required uint64 suid_high = 3; + required uint64 suid_low = 4; + + // If this is a write: What value should we write? + optional uint32 wr_value = 5; + + // If the driver controls multiple physical sensors, we need to disambiguate + // which sensor we want. + // i2c: give the device's i2c address + // spi: give the device's chip select value + optional uint32 devaddr = 6; + + // How many registers should I read (starting at reg_addr)? + // Default is 1 + optional uint32 rd_size = 7; +} + +message mot_probe_resp +{ + // Did it work? + required bool success = 1; + + // If we're responding to a read, what did we get? + optional uint32 rd_value = 2; +} diff --git a/proprietary/vendor/etc/sensors/proto/mot_proxcal.proto b/proprietary/vendor/etc/sensors/proto/mot_proxcal.proto new file mode 100644 index 0000000..35152a2 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_proxcal.proto @@ -0,0 +1,47 @@ +// @file mot_proxcal.proto +// +// Defines message types for the Motorola Proximity Sensor Recalibration Algorithm. +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot Proximity Sensor Recalibration +// Sends a recalibrate request to the Proximity Sensor driver when it is +// requested by the AP or favorable conditions are detected + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_proxcal" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor +// - MOT_PROXCAL_MSGID_MOT_PROXCAL_CONFIG is used by the AP to trigger a +// recalibration (for In-Call Forced Proximity Recalibration AKA "Double Pump") +// - MOT_PROXCAL_MSGID_MOT_PROXCAL_UNLOCK_CONFIG is used by the AP to trigger a +// recalibration, but only if the device is in portrait mode (for Screen +// Unlock Proximity Recalibration) + +// Message IDs for Mot ProxCal Algorithm +enum mot_proxcal_msgid { + option (nanopb_enumopt).long_names = false; + + // From AP, no payload + MOT_PROXCAL_MSGID_MOT_PROXCAL_CONFIG = 693; + + // From AP, no payload + MOT_PROXCAL_MSGID_MOT_PROXCAL_UNLOCK_CONFIG = 694; +} + +// Stream events: +// +// Sends SNS_PROXIMITY_MSGID_SNS_PROXIMITY_RECAL_CONFIG messages to the prox +// driver (as defined in sns_proximity.proto) +// +// This sensor does not publish configuration events. +// +// This sensor does not support test events \ No newline at end of file diff --git a/proprietary/vendor/etc/sensors/proto/mot_stowed.proto b/proprietary/vendor/etc/sensors/proto/mot_stowed.proto new file mode 100644 index 0000000..e14a07f --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_stowed.proto @@ -0,0 +1,55 @@ +// @file mot_stowed.proto +// +// Defines message types for the Motorola Stowed Sensor. +// +// Copyright (c) 2017 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot Stowed monitors light and proximity events among possible other inputs +// and estimates if the device is in-pocket, purse etc, aka stowed. + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_stowed" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Mot Stowed Sensor +enum mot_stowed_msgid { + option (nanopb_enumopt).long_names = false; + + MOT_STOWED_MSGID_MOT_STOWED_FORCE_PROX_ON_REQ = 767; + + MOT_STOWED_MSGID_MOT_STOWED_EVENT = 772; + + // sent after being stowed for a period of time + MOT_STOWED_MSGID_MOT_DEL_STOWED_EVENT = 773; +} + +enum mot_stowed_event_type +{ + option (nanopb_enumopt).long_names = false; + + // These values selected to match values used in DSP register + MOT_STOWED_EVENT_TYPE_NOT_STOWED = 0; + MOT_STOWED_EVENT_TYPE_STOWED = 1; + MOT_STOWED_EVENT_TYPE_UNKNOWN = 3; +} + +message mot_stowed_event +{ + // Mot Stowed state + required mot_stowed_event_type state = 1 [default = MOT_STOWED_EVENT_TYPE_NOT_STOWED]; +} + +// Stream events: +// +// The mot_stowed_event message is used to publish the updated state +// +// This sensor does not publish configuration events. diff --git a/proprietary/vendor/etc/sensors/proto/mot_tap.proto b/proprietary/vendor/etc/sensors/proto/mot_tap.proto new file mode 100644 index 0000000..9dc2f92 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_tap.proto @@ -0,0 +1,45 @@ +// @file mot_tap.proto +// +// Defines standard message types for the Mot_Tap +// +// Copyright (c) 2019 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std.proto"; +import "sns_std_sensor.proto"; + +// Mot_Tap Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_tap" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_SINGLE_OUTPUT + +// Sensor output event: +// Mot_Tap use mot_tap_event for its output event + +enum mot_tap_msgid +{ + option (nanopb_enumopt).long_names = false; + + // From Algo, name is string matched to "mot_tap_event" msg below + MOT_TAP_MSGID_MOT_TAP_EVENT = 1056; +} + +enum mot_tap_event_type +{ + option (nanopb_enumopt).long_names = false; + + MOT_TAP_EVENT_TYPE_UNKNOWN = 0; + MOT_TAP_EVENT_TYPE_TAP_DETECTED = 1; +} + +message mot_tap_event +{ + required mot_tap_event_type state = 1 [default = MOT_TAP_EVENT_TYPE_UNKNOWN]; + required int32 taps = 2; + required float period = 3; + required float conf = 4; + optional float angle = 5; + optional float magnitude = 6; +} diff --git a/proprietary/vendor/etc/sensors/proto/mot_vsync.proto b/proprietary/vendor/etc/sensors/proto/mot_vsync.proto new file mode 100644 index 0000000..847d304 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/mot_vsync.proto @@ -0,0 +1,52 @@ +// @file mot_vsync.proto +// +// Defines message types for the Motorola Vsync State Sensor. +// +// Copyright (c) 2019 Motorola Mobility +// All Rights Reserved. +// Confidential and Proprietary - Motorola Mobility + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Mot_vsync detects the panel vsync and generates a delayed gpio output along with panel status. +// This is an on-change sensor. + +// Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "mot_vsync" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs +enum mot_vsync_msgid { + option (nanopb_enumopt).long_names = false; + + MOT_VSYNC_MSGID_MOT_VSYNC_EVENT = 772; +} + +enum mot_vsync_state { + option (nanopb_enumopt).long_names = false; + + MOT_VSYNC_STATE_PANEL_UNKNOWN = 0; + MOT_VSYNC_STATE_PANEL_ON = 1; + MOT_VSYNC_STATE_PANEL_OFF = 2; +} + +message mot_vsync_event +{ + // Event output + required mot_vsync_state vsync_state = 1 [default = MOT_VSYNC_STATE_PANEL_UNKNOWN]; + + // Panel frequency detected by driver + required uint32 det_freq_hz = 2 [default = 0]; +} + +// Stream events: +// +// The mot_vsync_event message is used to publish updated state +// +// This sensor does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/nanopb.proto b/proprietary/vendor/etc/sensors/proto/nanopb.proto new file mode 100644 index 0000000..9b2f0fb --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/nanopb.proto @@ -0,0 +1,97 @@ +// Custom options for defining: +// - Maximum size of string/bytes +// - Maximum number of elements in array +// +// These are used by nanopb to generate statically allocable structures +// for memory-limited environments. + +syntax = "proto2"; +import "google/protobuf/descriptor.proto"; + +option java_package = "fi.kapsi.koti.jpa.nanopb"; + +enum FieldType { + FT_DEFAULT = 0; // Automatically decide field type, generate static field if possible. + FT_CALLBACK = 1; // Always generate a callback field. + FT_POINTER = 4; // Always generate a dynamically allocated field. + FT_STATIC = 2; // Generate a static field or raise an exception if not possible. + FT_IGNORE = 3; // Ignore the field completely. +} + +enum IntSize { + IS_DEFAULT = 0; // Default, 32/64bit based on type in .proto + IS_8 = 8; + IS_16 = 16; + IS_32 = 32; + IS_64 = 64; +} + +// This is the inner options message, which basically defines options for +// a field. When it is used in message or file scope, it applies to all +// fields. +message NanoPBOptions { + // Allocated size for 'bytes' and 'string' fields. + optional int32 max_size = 1; + + // Allocated number of entries in arrays ('repeated' fields) + optional int32 max_count = 2; + + // Size of integer fields. Can save some memory if you don't need + // full 32 bits for the value. + optional IntSize int_size = 7 [default = IS_DEFAULT]; + + // Force type of field (callback or static allocation) + optional FieldType type = 3 [default = FT_DEFAULT]; + + // Use long names for enums, i.e. EnumName_EnumValue. + optional bool long_names = 4 [default = true]; + + // Add 'packed' attribute to generated structs. + // Note: this cannot be used on CPUs that break on unaligned + // accesses to variables. + optional bool packed_struct = 5 [default = false]; + + // Add 'packed' attribute to generated enums. + optional bool packed_enum = 10 [default = false]; + + // Skip this message + optional bool skip_message = 6 [default = false]; + + // Generate oneof fields as normal optional fields instead of union. + optional bool no_unions = 8 [default = false]; + + // integer type tag for a message + optional uint32 msgid = 9; + + // decode oneof as anonymous union + optional bool anonymous_oneof = 11 [default = false]; +} + +// Extensions to protoc 'Descriptor' type in order to define options +// inside a .proto file. +// +// Protocol Buffers extension number registry +// -------------------------------- +// Project: Nanopb +// Contact: Petteri Aimonen +// Web site: http://kapsi.fi/~jpa/nanopb +// Extensions: 1010 (all types) +// -------------------------------- + +extend google.protobuf.FileOptions { + optional NanoPBOptions nanopb_fileopt = 1010; +} + +extend google.protobuf.MessageOptions { + optional NanoPBOptions nanopb_msgopt = 1010; +} + +extend google.protobuf.EnumOptions { + optional NanoPBOptions nanopb_enumopt = 1010; +} + +extend google.protobuf.FieldOptions { + optional NanoPBOptions nanopb = 1010; +} + + diff --git a/proprietary/vendor/etc/sensors/proto/sns_accel.proto b/proprietary/vendor/etc/sensors/proto/sns_accel.proto new file mode 100644 index 0000000..5255029 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_accel.proto @@ -0,0 +1,103 @@ +// @file sns_accel.proto +// +// Defines the API for Accelerometer Sensors. +// All Accelerometer Sensor drivers are required to comply with this API. +// Any new functionality for Accelerometer Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018, 2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_std_event_gated_sensor.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Accelerometer Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "accel". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute values in (m/s2)/LSB unit. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in +/-m/s2 unit. +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Accelerometer Sensor handles the sns_std_sensor_config +// message request with msgid SNS_STD_SENSOR_MSGID_SNS_STD_SENSOR_CONFIG +// for all non-gated stream enable/update requests. +// 2. The Accelerometer Sensor handles the sns_std_sensor_config +// message request with msgid SNS_STD_EVENT_GATED_SENSOR_MSGID_SNS_STD_SENSOR_CONFIG +// for all gated stream enable/update requests. +// a. Accelerometer stream is gated on the motion detection feature +// available on most accel hardware. This feature is published via the +// "motion_detect" Sensor by the same driver library as "accel" Sensor. +// b. If "motion_detect" is not supported then the Sensor does not support +// stream gating. Any gated client request is rejected in this case. +// 3. The Accelerometer Sensor uses batching_period item in +// sns_std_request as the requested batching rate to determine +// hardware FIFO watermark. + +// Handling stream events: +// 1. The Accelerometer Sensor publishes acceleration data stream events +// using the sns_std_sensor_event message. +// 2. Each stream event contains three output data fields where data is +// in m/s2 units and is factory calibrated. +// 3. Data in the stream is adjusted to Android coordinate system relative to a +// mobile device held with screen facing the user in it's natural orientation: +// X-axis: parallel to the screen pointing to the right +// Y-axis: parallel to the screen pointing to the top +// Z-axis: perpendicular to the screen pointing towards the user +// This conforms to the mobile device axes orientation as specified by the +// Android Sensor API. +// 4. Data in the stream event is ordered as: +// data[0] = X-axis +// data[1] = Y-axis +// data[2] = Z-axis +// 5. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 6. The Accelerometer Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 7. The Accelerometer Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and comp_matrix fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. +// 8. When all outstanding requests to the Sensor are gated requests and if the +// "motion_detect" Sensor is enabled then the accel Sensor stops generating +// output events. +// a. When motion detect interrupt fires: +// - All existing accel gated stream requests are converted to non-gated +// stream requests. +// The accel Sensor publishes an event with message ID +// SNS_STD_EVENT_GATED_SENSOR_MSGID_GATED_REQ_CONVERTED_TO_NON_GATED to +// to indicate this change to it's gated clients. +// - The accel Sensor resumes generating output to all clients. +// So in effect motion_detect Sensor and accel gated Sensor stream have +// a one shot behavior. +// b. The Sensor resumes generating output events if motion detect interrupt +// is disabled potentially due to a new non-gated accel stream request or +// the request to motion_detect Sensor is disabled. +// 9. When all outstanding requests to the Sensor are gated requests but if +// "motion_detect" Sensor is not enabled then the Sensor continues to generate +// output events. + +// Handling self-test requests: +// 1. The Accelerometer Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Accelerometer Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. +// 3. The Accelerometer Sensor could implement other test types. + +// Handling test events: +// 1. The Accelerometer Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_accel_cal.proto b/proprietary/vendor/etc/sensors/proto/sns_accel_cal.proto new file mode 100644 index 0000000..4f7b806 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_accel_cal.proto @@ -0,0 +1,32 @@ +// @file sns_accel_cal.proto +// +// Defines message types for the Accel Calibration Sensor. +// +// Copyright (c) 2017, 2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_cal.proto"; + +// The Accel Calibration Sensor determines the calibration parameters +// for accel sensor + +// Accel Calibration Sensor Attributes: +// - SNS_STD_SENSOR_ATTRID_TYPE: "accel_cal" +// - SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG message ID is used to +// enable the sensor +// - SNS_CAL_MSGID_SNS_CAL_RESET message ID is used to reset the algorithm +// and any previously determined calibration parameters. + +// Stream Events: +// - SNS_CAL_MSGID_SNS_CAL_EVENT message ID is used to report calibration +// parameters to the client of the sensor. The sns_cal_event message as +// defined in sns_cal.proto is used to report this data event where the +// units for the bias field in the message are in m / s ^2 + + diff --git a/proprietary/vendor/etc/sensors/proto/sns_activity_recognition.proto b/proprietary/vendor/etc/sensors/proto/sns_activity_recognition.proto new file mode 100644 index 0000000..63e1a02 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_activity_recognition.proto @@ -0,0 +1,69 @@ +// @file sns_activity_recognition.proto +// +// Defines message types for the Activity Recognition (AR) Sensor. +// +// Copyright (c) 2019-2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Acitivity Recognition Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "activity_recognition" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Acitivity Recognition Sensor +enum sns_activity_recognition_msgid { + option (nanopb_enumopt).long_names = false; + + // The sns_ar_event message is used to publish updated state. A new event + // will be generated upon any state change. + SNS_ACTIVITY_RECOGNITION_MSGID_SNS_AR_EVENT = 800; + // Configuration event generated at least once in response to enable request + SNS_ACTIVITY_RECOGNITION_MSGID_SNS_AR_CONFIG_EVENT = 801; +} + +// User activity states +enum sns_ar_motion_state +{ + option (nanopb_enumopt).long_names = false; + + // UNKNOWN is reported when the algorithm is unable to detect the current + // activity state. + SNS_AR_UNKNOWN = 0; + // User is relatively stationary. + SNS_AR_STATIONARY = 1; + // User is classified as a pedestrian + SNS_AR_PED = 2; + // User is in a non-motorized vehicle + SNS_AR_NMV = 3; + // User is in a motorized vehicle. + SNS_AR_MV = 4; + // User is walking + SNS_AR_WALK = 5; + // User is running + SNS_AR_RUN = 6; + // User is on a bicycle + SNS_AR_BICYCLE = 7; + // User is in a car + SNS_AR_CAR = 8; +} + +message sns_ar_config_event +{ + // List of supported motion states + repeated sns_ar_motion_state states = 1; +} + +message sns_ar_event +{ + // List of active states for this user + // Multiple states may be reported concurrently + // Any states not listed here are presumed to be inactive + repeated sns_ar_motion_state states = 1 [(nanopb).max_count = 4]; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_ambient_light.proto b/proprietary/vendor/etc/sensors/proto/sns_ambient_light.proto new file mode 100644 index 0000000..09cceff --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_ambient_light.proto @@ -0,0 +1,73 @@ +// @file sns_ambient_light.proto +// +// Defines the API for Ambient Light Sensors. +// All Ambient Light Sensor drivers are required to comply with this API. +// Any new functionality for Ambient Light Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Ambient Light Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "ambient_light". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute value in Lux/LSB. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in Lux unit. +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Ambient Light Sensor supports both streaming and on-change +// modes and the operating mode is configured in the Registry. +// 2. The streaming Ambient Light Sensor handles the sns_std_sensor_config +// request for all stream enable/update requests. +// 3. The on-change Ambient Light Sensor handles the +// SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG request for +// all stream enable/update requests. +// 4. In on-change mode the Sensor uses interrupt operation and reports +// samples for only significant change in ambient light. +// Example: +/- 10% change. + +// Handling stream events: +// 1. The Ambient Light Sensor publishes current illumination data stream +// events using the sns_std_sensor_event message. +// 2. Each stream event contains two output data fields where data is +// factory calibrated and ordered as: +// data[0] = ambient light in Lux +// data[1] = raw ADC value associated with data[0] +// 3. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 4. The Ambient Light Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 5. The Ambient Light Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and scale_factor fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new request. + +// Handling self-test requests: +// 1. The Ambient Light Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Ambient Light Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. The factory test for Ambient Light Sensor calibrates +// the sensor such that it's output Lux value is comparable to a standard +// Luxmeter output in any lighting condition. +// 3. The Ambient Light Sensor could implement other test types. + +// Handling test events: +// 1. The Ambient Light Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_ambient_temperature.proto b/proprietary/vendor/etc/sensors/proto/sns_ambient_temperature.proto new file mode 100644 index 0000000..69726b9 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_ambient_temperature.proto @@ -0,0 +1,68 @@ +// @file sns_ambient_temperature.proto +// +// Defines the API for Ambient Temperature Sensors. +// All Ambient Temperature Sensor drivers are required to comply with this API. +// Any new functionality for Ambient Temperature Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Ambient Temperature Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "ambient_temperature". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute value in degrees Celsius/LSB. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in degrees Celsius unit. +// 4. The ambient_temperature sensor is an on-change sensor. +// 5. The SNS_STD_SENSOR_ATTRID_RATES attribute is not applicable +// since this is an on-change sensor. +// 6. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Ambient Temperature Sensor handles the SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG +// message ID for all stream enable/update requests. +// 2. If the physical sensor supports hardware FIFO then the Ambient Temperature +// Sensor uses batching_period item in sns_std_request as the requested +// batching rate to determine hardware FIFO watermark. + +// Handling stream events: +// 1. The Ambient Temperature Sensor publishes data stream events using the +// sns_std_sensor_event message. +// 2. Each stream event contains one output data field where data is +// factory calibrated and ordered as: +// data[0] = Ambient Temperature data in degrees Celsius +// 3. Each stream event publishs an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 4. The Ambient Temperature Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 5. The Ambient Temperature Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and scale_factor fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. + +// Handling self-test requests: +// 1. The Ambient Temperature Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Ambient Temperature Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. +// 3. The Ambient Temperature Sensor could implement other test types. + +// Handling test events: +// 1. The Ambient Temperature Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_amd.proto b/proprietary/vendor/etc/sensors/proto/sns_amd.proto new file mode 100644 index 0000000..8583b82 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_amd.proto @@ -0,0 +1,51 @@ + +// @file sns_amd.proto +// +// Defines message types for the Absolute Motion Detector (AMD) Sensor. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// AMD calculates motion and stationary states. AMD will initially start in an +// unknown state, and later transition to motion or stationary. + +// AMD Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "amd" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for AMD Sensor +enum sns_amd_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_AMD_MSGID_SNS_AMD_EVENT = 772; +} + +enum sns_amd_event_type +{ + option (nanopb_enumopt).long_names = false; + + SNS_AMD_EVENT_TYPE_UNKNOWN = 0; + SNS_AMD_EVENT_TYPE_STATIONARY = 1; + SNS_AMD_EVENT_TYPE_MOTION = 2; +} + +message sns_amd_event +{ + // AMD motion state + required sns_amd_event_type state = 1 [default = SNS_AMD_EVENT_TYPE_UNKNOWN]; +} + +// Stream events: +// +// The sns_amd_event message is used to publish updated state +// +// AMD does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_aont.proto b/proprietary/vendor/etc/sensors/proto/sns_aont.proto new file mode 100644 index 0000000..de4b136 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_aont.proto @@ -0,0 +1,37 @@ +// @file sns_aont.proto +// +// Defines message types for the AONT(Always On Test) Sensor. +// +// Copyright (c) 2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// The Always On Test Sensor runs an Always On sensors usecase for stability test coverage + +// Always On Test Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "always_on_test" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Stream Events: +enum sns_aont_msgid +{ + option (nanopb_enumopt).long_names = false; + + SNS_AONT_MSGID_SNS_AONT_DATA = 1024; +} + +// Data Message +// Output data event generated by the aont sensor. +message sns_aont_data +{ + // AONT output - Accel data along axis x,y,z in m/s2 + repeated float aont = 1 [(nanopb).max_count = 3]; +} + diff --git a/proprietary/vendor/etc/sensors/proto/sns_basic_gestures.proto b/proprietary/vendor/etc/sensors/proto/sns_basic_gestures.proto new file mode 100644 index 0000000..dfec6ba --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_basic_gestures.proto @@ -0,0 +1,101 @@ +// @file sns_basic_gestures.proto +// +// Defines message types for the the basic_gestures sensor +// +// Copyright (c) 2017 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; + +// Basic Gestures algorithm provides the ability to detect a Push, Pull, +// or Shake gesture. +// Basic Gestures reports "Axis Unknown", when the direction of a shake cannot +// be reliably determined. + +// Basic gestures Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "basic_gestures" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_BASIC_GESTURES_MSGID_SNS_BASIC_GESTURES_CONFIG is used to enable the sensor + +// Message IDs for Basic gestures Sensor +enum sns_basic_gestures_msgid +{ + option (nanopb_enumopt).long_names = false; + SNS_BASIC_GESTURES_MSGID_SNS_BASIC_GESTURES_CONFIG = 512; + SNS_BASIC_GESTURES_MSGID_SNS_BASIC_GESTURES_EVENT = 1024; +} +//To mask Basic gesture algorithm output states +enum sns_basic_gestures_event_mask +{ + option (nanopb_enumopt).long_names = false; + // For masking push and pull states + SNS_BASIC_GESTURES_EVENT_MASK_PUSH_AND_PULL = 1; + // For masking shake left and right states + SNS_BASIC_GESTURES_EVENT_MASK_SHAKE_LEFT_AND_RIGHT = 2; + // For masking shake top and bottom states + SNS_BASIC_GESTURES_EVENT_MASK_SHAKE_TOP_AND_BOTTOM = 4; + //For masking shake other state + SNS_BASIC_GESTURES_EVENT_MASK_SHAKE_OTHER = 8; +} +// Device Basic gesture detected by Basic gestures sensor +enum sns_basic_gestures_event_type +{ + option (nanopb_enumopt).long_names = false; + //Phone is pulled away from the user in a direction perpendicular to the screen + SNS_BASIC_GESTURES_EVENT_TYPE_PUSH = 1; + //Phone is pulled toward the user in a direction perpendicular to the screen + SNS_BASIC_GESTURES_EVENT_TYPE_PULL = 2; + //Phone is shaken toward the left + SNS_BASIC_GESTURES_EVENT_TYPE_SHAKE_LEFT = 3; + //Phone is shaken toward the right + SNS_BASIC_GESTURES_EVENT_TYPE_SHAKE_RIGHT = 4; + //Phone is shaken toward the top + SNS_BASIC_GESTURES_EVENT_TYPE_SHAKE_TOP = 5; + //Phone is shaken toward the bottom + SNS_BASIC_GESTURES_EVENT_TYPE_SHAKE_BOTTOM = 6; + //Phone is shaken, but phone shake direction cannot be clearly determined + SNS_BASIC_GESTURES_EVENT_TYPE_SHAKE_OTHER = 7; +} +// Event Message +// Output data event generated by the basic_gestures sensor. +// Default values of optional fields added in registry +message sns_basic_gestures_config +{ + //Sleep time in seconds + optional float sleep = 1; + //Push threshold m/s/s(default = 1.5G),where G=9.81188 + //min_push_threshold:1G, max_push_threshold:5G + optional float push_threshold = 2; + //Pull threshold m/s/s (default = 1.5G) + //min_pull_threshold:1G, max_pull_threshold:5G + optional float pull_threshold = 3; + //Shake threshold m/s/s(default = 1.5G) + //min_shake_threshold:1G, max_shake_threshold:5G + optional float shake_threshold = 4; + //For masking output events. + //By default, All states reported. + //Client should use sns_basic_gestures_event_mask fields for masking, + //specific events + //Example: If client doesn't want push and pull events,then, + //client updates event_mask with SNS_BASIC_GESTURES_EVENT_MASK_PUSH_AND_PULL + //event_mask |= SNS_BASIC_GESTURES_EVENT_MASK_PUSH_AND_PULL; + optional bytes event_mask = 5; +} + +// Event Message +// Output data event generated by the basic_gestures sensor. +message sns_basic_gestures_event +{ + // basic_gestures sensor state info + required sns_basic_gestures_event_type state=1; +} + +// Stream events: +// +// The sns_basic_gestures_event message is used to publish updated state +// +// Basic_gestures sensor does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_bring_to_ear.proto b/proprietary/vendor/etc/sensors/proto/sns_bring_to_ear.proto new file mode 100644 index 0000000..c610a2b --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_bring_to_ear.proto @@ -0,0 +1,40 @@ +// @file sns_bring_to_ear.proto +// +// Defines message types for the the Bring_To_Ear sensor +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Bring_to_ear sensor detects bring to ear event, +// When a device has been held in a face-up position, +// afterwhich the device is brought to the user's ear, with the top of the device facing upwards. + +// Bring to ear Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "bring_to_ear" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE +// +// ## Request Message: SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG +// No configuration is available for this sensor. + +// ## Event Message: SNS_BRING_TO_EAR_MSGID_SNS_BRING_TO_EAR_EVENT +// Reported upon new detection of bring_to_ear event + + +// Message IDs for Bring to ear Sensor +enum sns_bring_to_ear_msgid +{ + option (nanopb_enumopt).long_names = false; + // Empty Message + SNS_BRING_TO_EAR_MSGID_SNS_BRING_TO_EAR_EVENT = 1024; +} + +// Stream events: +// +// The sns_bring_to_ear_event message is used to publish updated state +// +// Bring_to_ear sensor does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_cal.proto b/proprietary/vendor/etc/sensors/proto/sns_cal.proto new file mode 100644 index 0000000..fe878b0 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_cal.proto @@ -0,0 +1,118 @@ +// @file sns_cal.proto +// +// Defines standard message types pertaining to calibration +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// For dynamic calibration supported by Calibration Sensors: +// Client will use the standard on change config message id to enable +// Calibration Sensor. Calibration algorithms are inherently on change in +// behavior. + +// For both dynamic calibration supported by Calibration Sensors & +// factory calibration supported by Physical Sensors: +// Client can send an empty request with the msg id for reset +// to reset the calibration parameters. +enum sns_cal_msgid +{ + option (nanopb_enumopt).long_names = false; + SNS_CAL_MSGID_SNS_CAL_RESET = 512; + SNS_CAL_MSGID_SNS_CAL_EVENT = 1022; +} + +// Calibration Event +// Used as an output data event by Calibration Sensors to convey +// dynamic calibration estimates and +// as a config event by Physical Sensors to convey factory calibration +// being applied +// +// A) The data field of the sns_cal_event message +// +// 1) float bias[] (Nx1 vector) +// The zero bias (B) correction subtracted to get calibrated sample.(Nx1 vector) +// +// 2) float scale_factor (Nx1 vector) +// The scaling (SF) to be done before doing any bias correction. +// +// 3) float comp_matrix (NxN matrix) +// The compensation matrix (CM). The matrix elements are in row major order ie: +// CM = CM0 CM1 CM2 +// CM3 CM4 CM5 +// CM6 CM7 CM8 +// +// The calibrated sample (Sc) is computed as following. +// +// if SF, B and CM are available, +// +// Sc = CM * ((S .* SF) - B) +// +// if only B and CM are available, +// +// Sc = CM * (S - B) +// +// if only SF and B are available, +// +// Sc = ((S .* SF) - B) +// +// if only SF is available, +// +// Sc = S .* SF +// +// if only B is available, +// +// Sc = (S - B) +// +// if only CM is available +// +// Sc = CM * S +// +// where: +// Sc = Calibrated sensor sample +// S = Sensor sample (Nx1 vector) +// SF = Scaling factor to be applied to S +// CM = compensation_matrix +// B = bias +// "*" represents matrix multiplication +// ".*" represents element-by-element multiplication +// +// +// B) The status field of the sns_std_sensor_event message contains +// the quality of calibration defined by sns_std_sensor_sample_status as +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE = 0; // Sample is unreliable. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_LOW = 1; // Sample is low accuracy. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_MEDIUM = 2;// Sample is medium accuracy. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH = 3; // Sample is high accuracy. + +message sns_cal_event +{ + //Optional bias value + //If no bias is being published this will be of size 0. + //Generic for different axes biases. + //Size is defined by axes value inherently. + repeated float bias = 1; + + //Optional scaling factor + //If no scaling factor is published this will be of size 0. + //Size if published is has to be equal to the axes of the data + repeated float scale_factor = 2; + + //If no CM is being published this will be of size 0. + //Optional CM values . + //Size if published should be equal to matrix of size [axes*axes] + repeated float comp_matrix = 3; + + // Event sample status. + required sns_std_sensor_sample_status status = 4 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; + + // Calibration ID, a unique identifier for the calibration set being used + // As an example, could be set when there are distinct calibration sets for different + // device modes being maintained + optional fixed32 cal_id = 5; +} + + diff --git a/proprietary/vendor/etc/sensors/proto/sns_client.proto b/proprietary/vendor/etc/sensors/proto/sns_client.proto new file mode 100644 index 0000000..22497eb --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_client.proto @@ -0,0 +1,116 @@ +// @file sns_client.proto +// +// Defines the interface between external clients and the Sensors QMI Client +// Manager. The Client Manager is the primary path for external clients +// to communicate with the SSC. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std.proto"; +import "sns_std_type.proto"; + +// Message IDs +// +// Message IDs uniquely identify a particular message amongst all message +// supported by a Sensor, both requests and events; they need not be unique +// between different Sensors. IDs are subdivided into several reserved pools. +// These reservations are made so that Framework components can appropriately +// optimize their processing. +// +// Reserved for Framework use only: +// 0-127 - Request Messages +// 128-255 - Non-recurrent events (configuration updates, one-time events, etc) +// 256-511 - Recurrent and/or periodic events (e.g. sensor samples) +// +// Sensor use: +// 512-767 - Request messages +// 768-1023 - Non-recurrent events +// 1024-1536 - Recurrent events +// +// Note that messages serving as request messages can also be sent as +// configuration events back to the client (with the same ID). While batching +// data for a non-wakeup client, if the AP is in suspend and all batching space +// exhausted, the oldest recurrent events may be dropped. + +// Framework-defined message IDs: +enum sns_client_msgid { + option (nanopb_enumopt).long_names = false; + + // Disable request explicitly handled only on the client interface. + SNS_CLIENT_MSGID_SNS_CLIENT_DISABLE_REQ = 10; + + // NOTE: 120-127 Are reserved +} + +enum sns_client_delivery { + option (nanopb_enumopt).long_names = false; + + // Send events whenever available (at sample rate or batch period) + // - If a batch_period larger than system capacity is requested, all data + // will be sent upon capacity exhaustion. + // - The flush_period will be effectively ignored, as unsent batched + // data will not accrue in the buffer. + SNS_CLIENT_DELIVERY_WAKEUP = 0; + // Send events only when client processor is awake; batch otherwise. Once + // the target processor exits suspend, any/all pending events will be sent. + SNS_CLIENT_DELIVERY_NO_WAKEUP = 1; +} + + +// Request Message +message sns_client_request_msg { + // SUID associated with this request; intended destination + required sns_std_suid suid = 1; + + // See comment above + required fixed32 msg_id = 2; + + // Whether to wakeup the client processor (if it is in suspend), when an + // event is generated and ready to send. The Qualcomm Client Manager will + // enforce these criteria for all clients; this information is made available + // to sensors for optimization purposes only. + message suspend_config { + // Processor on which the client resides; If a flush occurs for one client + // on an external processor, all clients will receive a flush of data. + required sns_std_client_processor client_proc_type = 1 [default = SNS_STD_CLIENT_PROCESSOR_APSS]; + + // Whether to send events while the specified processor is in suspend. + required sns_client_delivery delivery_type = 2 [default = SNS_CLIENT_DELIVERY_WAKEUP]; + + //The client expects that, when the message with an id specified in this list + //is generated, the message should only be delivered to the client if data is already being delivered + //to the processor mentioned above. + repeated fixed32 nowakeup_msg_ids = 3; + } + required suspend_config susp_config = 3; + + // Base message payload; contents will be partially specified by Sensor developer + required sns_std_request request = 4; +} + +message sns_client_event_msg { + // SUID associated with this Event; source of data + required sns_std_suid suid = 1; + + // An event generated by a Sensor; used within sns_client_event_msg and SensorBatchMessage + message sns_client_event { + // See comment above + required fixed32 msg_id = 1; + + // Timestamp associated with this event + // For most events, this timestamp is specified by the Sensor. + // For events generated by the Framework (such as configuration updates or + // error events), this timestamp refers to the time at which the event was + // created. + required fixed64 timestamp = 2; + + // Dynamic length payload, containing the actual data/event + // This payload will need to be decoded separately, using the Sensor-specific + // header file + required bytes payload = 3; + } + repeated sns_client_event events = 2; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_cmc.proto b/proprietary/vendor/etc/sensors/proto/sns_cmc.proto new file mode 100644 index 0000000..122da06 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_cmc.proto @@ -0,0 +1,81 @@ + +// @file sns_cmc.proto +// +// Defines message types for the Coarse Motion Classifier (CMC) Sensor. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + + +// CMC Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "coarse_motion_classifier" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for CMC Sensor +enum sns_cmc_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_CMC_MSGID_SNS_CMC_EVENT = 772; +} + +// Gives the state which the algorithm is capable +// of detecting +enum sns_cmc_motion_state +{ + option (nanopb_enumopt).long_names = false; + + // stated with 1 to match with algo where 0 + // is for UNKNOWN + SNS_CMC_STATIONARY = 1; + SNS_CMC_MOVE = 2; + SNS_CMC_FIDDLE = 3; + SNS_CMC_PEDESTRIAN = 4; + SNS_CMC_VEHICLE = 5; + SNS_CMC_WALK = 6; + SNS_CMC_RUN = 7; + SNS_CMC_BIKE = 8; +} + +// Gives the information about the states represented +// by sns_cmc_motion_state +enum sns_cmc_motion_state_event +{ + option (nanopb_enumopt).long_names = false; + // when any state of any of the motion state cannot + // be determined. The first event of first client will + // typically have all states as SNS_MS_UNKNOWN + SNS_MS_UNKNOWN = 0; + // A given motion state is ACTIVE + SNS_MS_ACTIVE = 1; + // A given motion state is INACTIVE + SNS_MS_INACTIVE = 2; +} + +message sns_cmc_event +{ + message data + { + // motion state by CMC + required sns_cmc_motion_state ms_state = 1; + + // gives UNKNOWN/ACTIVE/INACTIVE information for the motion state + required sns_cmc_motion_state_event ms_state_event = 2 [default = SNS_MS_UNKNOWN]; + } + + repeated data events = 1; +} + +// Stream events: +// +// The sns_cmc_event message is used to publish updated state +// +// CMC does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_da_test.proto b/proprietary/vendor/etc/sensors/proto/sns_da_test.proto new file mode 100644 index 0000000..b72a610 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_da_test.proto @@ -0,0 +1,65 @@ +// @file sns_da_test.proto +// +// Defines the API for communicating with the Driver acceptance +// test sensor. +// This is to used by the linux command line partner application +// to send string messages to the sns_da_test_sensor +// +// Copyright (c) 2017, 2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; + +enum sns_da_test_msgid { + option (nanopb_enumopt).long_names = false; + SNS_DA_TEST_MSGID_SNS_DA_TEST_REQ = 512; + SNS_DA_TEST_MSGID_SNS_DA_TEST_LOG = 768; + SNS_DA_TEST_MSGID_SNS_DA_TEST_EVENT = 1024; +} + +//This message contains the test parameters as a single string in the format below +//-testcase= -sample_rate=< any +tive value > -sensor= +//-duration=< any +tive value in seconds> -batch_period=<+tive value in seconds> +message sns_da_test_req { + optional string test_args = 1; +} + +//This message contains any return data from the test driver including PASS/FAIL +//msg. and explainations if applicable +message sns_da_test_event { + optional string test_event = 1; +} + +// Sensor State log message +// This definition is used by da_test sensor to log test +// information when publishing sensor api event +message sns_da_test_log { + //Time elapsed between streaming start request time and first sample received + required uint64 time_to_first_event = 1; + + //Time elapsed between streaming stop request time and last sample received + required sfixed32 time_to_last_event = 2; + + //Time when last sample was received + required uint64 sample_ts = 3; + + //Total number of samples received + required uint32 total_samples = 4; + + //time delta between samples avegraged over number of samples + required uint32 avg_delta = 5; + + //configures sample rate received in the SNS_STD_SENSOR_PHYSICAL_CONFIG_EVENT + required sfixed32 recvd_phy_config_sample_rate = 6; + + //random seed used by the da_test instance + optional uint64 random_seed_used = 7; + + //The number of std_req sent out by this instance of da_test + optional uint32 num_request_sent = 8; + + //timestamp of first sample received on da_test + optional uint64 first_sample_timestamp = 9; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_device_mode.proto b/proprietary/vendor/etc/sensors/proto/sns_device_mode.proto new file mode 100644 index 0000000..66b5efd --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_device_mode.proto @@ -0,0 +1,61 @@ +// @file sns_device_mode.proto +// +// Defines message types for the Device Mode Sensor. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// DEVICE_MODE determine the current mode of the device + +// DEVICE_MODE Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "device_mode" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor +// - Client must remove stream to disable the sensor + +// Message IDs for DEVICE_MODE Sensor +enum sns_device_mode_msgid +{ + option (nanopb_enumopt).long_names = false; + + SNS_DEVICE_MODE_MSGID_SNS_DEVICE_MODE_EVENT = 772; +} + +enum sns_device_mode +{ + option (nanopb_enumopt).long_names = false; + SNS_DEVICE_MODE_UNKNOWN = 0; + SNS_DEVICE_MODE_FLIP_OPEN = 1; +} + +enum sns_device_state +{ + option (nanopb_enumopt).long_names = false; + SNS_DEVICE_STATE_INACTIVE = 0; + SNS_DEVICE_STATE_ACTIVE = 1; +} + +message sns_device_mode_event +{ + message mode_spec { + required sns_device_mode mode = 1; + + required sns_device_state state = 2; + } + // Device Mode + repeated mode_spec device_mode = 1; +} + +// Stream events: +// +// The sns_device_mode_event message is used to publish updated mode +// +// DEVICE_MODE does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_device_orient.proto b/proprietary/vendor/etc/sensors/proto/sns_device_orient.proto new file mode 100644 index 0000000..d57f922 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_device_orient.proto @@ -0,0 +1,57 @@ +// @file sns_device_orient.proto +// +// Defines the API for the Device Orientation sensors +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// A device orientation sensor reports the current orientation of the device. +// +// Minor or transient rotations should not cause a new event to be reported, +// and this sensor should only be implemented with the help of an accelerometer. +// Moving the device to an orientation where the Z axis is vertical (either up +// or down) should not cause a new event to be reported. + +// ## Device Orientation sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "device_orient" +// +// ## Request Message: SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG +// No configuration is available for this sensor. +// +// ## Event Message: SNS_DEVICE_ORIENT_MSGID_SNS_DEVICE_ORIENT_EVENT + +// Message IDs for Device Orientation Sensor +enum sns_device_orient_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_DEVICE_ORIENT_MSGID_SNS_DEVICE_ORIENT_EVENT = 776; +} + +enum sns_device_orient_event_type +{ + option (nanopb_enumopt).long_names = false; + + SNS_DEVICE_ORIENT_EVENT_TYPE_UNKNOWN = -1; + // Device is in default orientation (Y axis is vertical and points up) + SNS_DEVICE_ORIENT_EVENT_TYPE_DEFAULT = 0; + // Device is rotated 90 degrees counter-clockwise from default orientation + // (X axis is vertical and points up) + SNS_DEVICE_ORIENT_EVENT_TYPE_POS_1 = 1; + // Device is rotated 180 degrees from default orientation (Y axis is + // vertical and points down) + SNS_DEVICE_ORIENT_EVENT_TYPE_POS_2 = 2; + // Device is rotated 90 degrees clockwise from default orientation (X axis + // is vertical and points down) + SNS_DEVICE_ORIENT_EVENT_TYPE_POS_3 = 3; +} + +message sns_device_orient_event +{ + // Detected state + required sns_device_orient_event_type state = 1; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_diag.proto b/proprietary/vendor/etc/sensors/proto/sns_diag.proto new file mode 100644 index 0000000..0b02cbb --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_diag.proto @@ -0,0 +1,433 @@ +// @file sns_diag.proto +// +// Defines log messages used by the sensors diag service +// +// Copyright (c) 2016-2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std.proto"; +import "sns_std_sensor.proto"; +import "sns_client.proto"; + +// Batch Sample Type +enum sns_diag_batch_sample_type +{ + option (nanopb_enumopt).long_names = false; + + // This is the only sample in the batch + SNS_DIAG_BATCH_SAMPLE_TYPE_ONLY = 0; + + // This is the first sample of the batch + SNS_DIAG_BATCH_SAMPLE_TYPE_FIRST = 1; + + // This is an intermediate sample of the batch + SNS_DIAG_BATCH_SAMPLE_TYPE_INTERMEDIATE = 2; + + // This is the last sample of the batch + SNS_DIAG_BATCH_SAMPLE_TYPE_LAST = 3; +} + +// Sensor Interrupts +enum sns_diag_interrupt +{ + option (nanopb_enumopt).long_names = false; + + // Interrupt caused by detection of a threshold being + // exceeded + SNS_DIAG_INTERRUPT_THRESHOLD = 0; + + // Interrupt caused by detection of movement of the device + SNS_DIAG_INTERRUPT_MOTION = 1; + + // Interrupt caused by detection of tilting of the device + SNS_DIAG_INTERRUPT_TILT = 2; + + // Interrupt caused by detection of free fall + SNS_DIAG_INTERRUPT_FREE_FALL = 3; + + // Interrupt caused by detection of double-tap + SNS_DIAG_INTERRUPT_DOUBLE_TAP= 4; + + // Interrupt caused by detection of acceleration shock + SNS_DIAG_INTERRUPT_SHOCK = 5; + + // Interrupt caused by CCD AMD + SNS_DIAG_INTERRUPT_CCD_AMD = 6; + + // Interrupt caused by CCD WALK + SNS_DIAG_INTERRUPT_CCD_WALK = 7; + + // Interrupt caused by CCD TILT + SNS_DIAG_INTERRUPT_CCD_TILT = 8; + + // Interrupt caused by CCD TE0 + SNS_DIAG_INTERRUPT_CCD_TE0 = 9; + + // Interrupt caused by CCD TE1 + SNS_DIAG_INTERRUPT_CCD_TE1 = 10; + + // Interrupt caused by CCD TE2 + SNS_DIAG_INTERRUPT_CCD_TE2 = 11; +} + +// Opaque Payload +// This message defines the fields used to log an undefined payload +message sns_diag_opaque_payload +{ + required bytes payload = 1; +} + +// Batch Sample +// This message defines the fields used to log batched data. +message sns_diag_batch_sample +{ + // Indicates if the sample is the first, intermediate, last or only + // sample of a batch + required sns_diag_batch_sample_type sample_type = 1 [default = SNS_DIAG_BATCH_SAMPLE_TYPE_ONLY]; + + // Timestamp of the sensor state data sample + required fixed64 timestamp = 2; + + // Sensor state data sample + repeated float sample = 3; + + // Data status. + required sns_std_sensor_sample_status status = 4 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +// Sensor State Hardware Interrupt Log Packet +// This message defines the fields used to log sensor state information +// pertaining to hardware interrupts +// This message is used as the payload field of sns_diag_sensor_log +message sns_diag_sensor_state_interrupt +{ + // Type of sensor hardware interrupt + required sns_diag_interrupt interrupt = 1; + + // Timestamp when the interrupt occurred + required fixed64 timestamp = 2; +} + +// Sensor State Raw +// This message defines the fields used to log sensor state information +// pertaining to raw uncalibrated physical sensor data. +// This message is used as the payload field of sns_diag_sensor_log +message sns_diag_sensor_state_raw +{ + repeated sns_diag_batch_sample sample = 1; +} + +// Client API Response Message +message sns_diag_client_resp_msg +{ + // The error response sent to the client + required sns_std_error error = 1; +} + +// Client API log packet +// This message defines the fields to log all +// Request, Response and Event messages at the Client API +// This message is used as the payload field of sns_diag_sensor_log +message sns_diag_client_api_log +{ + // The client id that identifies the client connection + required fixed64 client_id = 1; + + // Data type of the source sensor + required string src_sensor_type = 2; + + // The Client API log packet payload + oneof client_api_log_payload + { + // Client API Request message as defined in sns_client.proto + sns_client_request_msg request_payload = 100; + + // Client API Event message as defined in sns_client.proto + sns_client_event_msg event_payload = 101; + + // Client API Response message as defined in sns_diag.proto + sns_diag_client_resp_msg resp_payload = 102; + } +} + +// Sensor API log packet +// This message defines the fields to log all Request and +// Event messages at the Sensor API +// This message is used as the payload field of sns_diag_sensor_log +message sns_diag_sensor_api_log +{ + // The message id of the message being logged + required fixed32 message_id = 1; + + // Timestamp associated with this message + required fixed64 timestamp = 2; + + // Data stream associated with this message + optional fixed64 stream_id = 3; + + // The Sensor API log packet payload + oneof sensor_api_log_payload + { + // Sensor API Event message containing sensor specific event message + // as defined in the sensor's proto api file + sns_diag_opaque_payload opaque_payload = 100; + + // Sensor API Request message as defined in sns_std.proto + sns_std_request request_payload = 101; + } +} + +// Sensor log packet +// This message defines the fields to log all sensor specific +// messages. This includes Sensor API messages, Client API messages, +// HW Interrupt messages, Sensor State messages +message sns_diag_sensor_log +{ + // Log ID for the log packet + required fixed32 log_id = 1; + + // Timestamp when log packet.was generated + required fixed64 timestamp = 2; + + // Sensor UID for the log packet + required sns_std_suid suid = 3; + + // Data type provided by the Sensor UID + required string sensor_type = 4; + + // The instance id of the sensor to which this + // message was passed to or obtained from + required fixed64 instance_id = 5; + + // The log packet payload + oneof sensor_log_payload + { + // Sensor specific Sensor State Algo message + sns_diag_opaque_payload opaque_payload = 100; + + // Sensor API message + sns_diag_sensor_api_log sensor_api_payload = 101; + + // Client API message + sns_diag_client_api_log client_api_payload = 102; + + // Sensor State Raw message + sns_diag_sensor_state_raw sensor_state_raw_payload = 103; + + // Sensor State Hardware Interrupt message + sns_diag_sensor_state_interrupt sensor_state_interrupt_payload = 104; + } +} + +// Sensor Instance Mapping Log Packet +// This message defines the fields used to log sensor instance mapping +// information. This message is used as the payload field of sns_diag_fw_log +message sns_diag_instance_map_log +{ + // The instance id of the source sensor instance + required fixed64 src_instance_id = 1; + + // Array of destination Sensor Instance IDs or Sensor IDs that the + // source sensor instance is feeding to. + // If no destination instance ids are specified it signifies + // deletion of the source instance + repeated fixed64 dest_instance_id = 2; + + // Array of data stream ids that the + // source sensor instance is feeding to + repeated fixed64 stream_id = 3; +} + +// Island mode states +enum sns_diag_island_state +{ + option (nanopb_enumopt).long_names = false; + + // In Island mode + SNS_DIAG_ISLAND_STATE_IN_ISLAND_MODE = 0; + + // Not in Island Mode + SNS_DIAG_ISLAND_STATE_NOT_IN_ISLAND_MODE = 1; + + // Island mode disabled + SNS_DIAG_ISLAND_STATE_ISLAND_DISABLED = 2; +} + +// Island mode transition Log Packet +// This message defines the fields used to log +// transitions into and out of island mode +// +// This log packet is generated each time the system transitions into or out +// of island mode or when island mode is disabled or when triggered by +// a request to the diag sensor +// +// This message is used as the payload field of sns_diag_fw_log +message sns_diag_island_transition_log +{ + // Timestamp of the transition + // + // When logpacket is triggered, this timestamp will retain + // the timestamp when the current state became effective. + required fixed64 timestamp = 1; + + // Island state after transition is completed + required sns_diag_island_state island_state = 2; + + // User defined cookie + // Used by test scripts to identify logs triggered + // by messages sent to the SSC + optional fixed64 cookie = 3; + + // Total time system spent in island since device boot(micro seconds) + optional fixed64 total_island_time = 4; +} + +// Island exit vote Log Packet +// This message defines the fields used to log vote for island mode exits. +// +// This log packet is generated at each call to island_exit() +message sns_diag_island_exit_vote_log +{ + // Timestamp + required fixed64 timestamp = 1; + + // SUID of the Sensor responsible for the vote + optional sns_std_suid sensor = 2; +} + +// Heap IDs +enum sns_diag_heap_id +{ + option (nanopb_enumopt).long_names = false; + + // Primary Heap + SNS_DIAG_HEAP_ID_HEAP_MAIN = 0; + + // Island Heap + SNS_DIAG_HEAP_ID_HEAP_ISLAND = 1; + + // PRAM Heap + SNS_DIAG_HEAP_ID_HEAP_PRAM = 2; + + // EVENT Heap + SNS_DIAG_HEAP_ID_HEAP_EVENT = 3; + + // BATCH Heap + SNS_DIAG_HEAP_ID_HEAP_BATCH = 4; + + // Event buffer + SNS_DIAG_HEAP_ID_EVENT_BUFFER = 100; +} + +// Memory status Log Packet +// This message defines the fields used to log the memory utilization +// This log packet is generated when a request is sent to the diag sensor +message sns_diag_mem_utilization_log +{ + // Timestamp + required fixed64 timestamp = 1; + + // Heap ID + required sns_diag_heap_id heap_id = 2; + + // Total Memory + required fixed32 total_memory = 3; + + // Used Memory + required fixed32 used_memory = 4; + + // User defined cookie + // Used by test scripts to identify logs triggered + // by messages sent to the SSC + optional fixed64 cookie = 5; +} + +// Event Service status Log Packet +// This message defines the fields used to log the memory utilization and +// other statistics from the Event Service. +// Used only for SW debug; *not guaranteed to be backward compatible* +// This log packet is generated when a request is sent to the diag sensor +message sns_diag_event_service_log +{ + // Timestamp + required fixed64 timestamp = 1; + + // User defined cookie + // Used by test scripts to identify logs triggered + // by messages sent to the SSC + optional fixed64 cookie = 2; + + message heap_stats + { + enum sns_event_service_heap_id + { + SNS_EVENT_SERVICE_HEAP_ID_ISLAND = 0; + SNS_EVENT_SERVICE_HEAP_ID_MAIN = 1; + } + // Heap ID + required sns_event_service_heap_id heap_id = 1; + + // Total memory available in heap (in blocks) + required fixed32 total_memory = 2; + + // Current memory consumption (in blocks) + required fixed32 used_memory = 3; + + // Maximum memory consumption since last log packet (in blocks) + required fixed32 max_memory = 4; + + // Total clusters available + required fixed32 total_clusters = 5; + + // Current number of clusters in use + required fixed32 used_clusters = 6; + + // Maximum in-use clusters since last log packet + required fixed32 max_clusters = 7; + + // Number of allocation failues since the last DIAG log packet + // If Island will result in island exit; else causes dropped samples + required fixed32 alloc_failures = 8; + + // Largest event allocation since the last DIAG log packet (in bytes) + required fixed32 max_size = 9; + } + repeated heap_stats stats = 3; +} + +// Framework log packet +// This message defines the fields to log all framework messages. This +// includes memory, island, instance mapping messages. +message sns_diag_fw_log +{ + // Log ID for the log packet + required fixed32 log_id = 1; + + // Timestamp when log packet.was generated + required fixed64 timestamp = 2; + + // The log packet payload + oneof fw_log_payload + { + // Sensor Instance Map message + sns_diag_instance_map_log instance_map_payload = 100; + + // Sensor Island Mode + sns_diag_island_transition_log island_mode_payload = 101; + + // Sensors Island Exit vote + // NOT SUPPORTED YET. + sns_diag_island_exit_vote_log island_exit_vote_payload = 102; + + // Sensors Memory Utilization + sns_diag_mem_utilization_log memory_utilization_payload = 103; + + // Event Service status log + sns_diag_event_service_log event_service_payload = 104; + } +} + diff --git a/proprietary/vendor/etc/sensors/proto/sns_diag_sensor.proto b/proprietary/vendor/etc/sensors/proto/sns_diag_sensor.proto new file mode 100644 index 0000000..804e7e6 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_diag_sensor.proto @@ -0,0 +1,51 @@ +// @file sns_diag_sensor.proto +// +// Defines standard message types to communicate with the +// diag service +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_type.proto"; + +enum sns_diag_sensor_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_DIAG_SENSOR_MSGID_SNS_DIAG_LOG_TRIGGER_REQ = 520; +} + +// Log packets that can be triggered by the diag sensor +enum sns_diag_triggered_log_type { + option (nanopb_enumopt).long_names = false; + + // Triggers generation of sns_diag_island_transition_log + // Only one log is generated per request + SNS_DIAG_TRIGGERED_LOG_TYPE_ISLAND_LOG = 1; + + // Triggers generation of sns_diag_mem_utilization_log + // A single request will generate a log for each separate memory + // pool in the system + SNS_DIAG_TRIGGERED_LOG_TYPE_MEMORY_USAGE_LOG = 2; +} + +// Trigger generation of log packets. Depending upon +// the type of log packet that is being triggered, +// multiple log packets can be triggered for each +// request. +// +// If the log packet that is triggered has been disabled +// no log will be generated. +message sns_diag_log_trigger_req { + + // User defined cookie + // Used by test scripts to identify logs triggered + // by messages sent to the SSC + optional fixed64 cookie = 1; + + // The type of log packets that the diag sensor must + // generate. + required sns_diag_triggered_log_type log_type = 2; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_direct_channel.proto b/proprietary/vendor/etc/sensors/proto/sns_direct_channel.proto new file mode 100644 index 0000000..5601bb3 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_direct_channel.proto @@ -0,0 +1,124 @@ +// @file sns_direct_channel.proto +// +// Defines the Sensors Direct Channel interface that can be used by clients to get sensor data via direct channel +// +// Copyright (c) 2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_type.proto"; +import "sns_std.proto"; + +// To activate a stream on a channel +// " get Channel first by sending sns_direct_channel_create_msg -> then send sns_direct_channel_set_ts_offset -> send sns_direct_channel_set_client_req for sns_direct_channel_stream_id" + +// To activate another stream on existing channel +// "Send sns_direct_channel_set_client_req on existing Channel for new sns_direct_channel_stream_id" + +// To update the existing request on the channel +// "Send updated sns_direct_channel_set_client_req on existing Channel with already added sns_direct_channel_stream_id" + +// To remove existing request on the channel +// "Send sns_direct_channel_remove_client_req on existing Channel for any added sns_direct_channel_stream_id" + +// To update time stamp offset on channel. +// "Send sns_direct_channel_set_ts_offset on existing Channel with ts_offset" + + +enum direct_channel_type { + option (nanopb_enumopt).long_names = false; + + // Sensor data from multiple streams can be multiplexed in one channel + // Samples are compatible to sensors_event_t format defined by Android Spec + // ref: SensorsEventFormatOffset( a.k.a sensors_event_t) at hardware/interfaces/sensors/1.0/types.hal + DIRECT_CHANNEL_TYPE_STRUCTURED_MUX_CHANNEL = 0; + + // Sensors Data format expected in Raw bytes only. + // Sensors data format is not mandated in the API. + // This channel type can be used by clients who know how to interpret the sensor data from respective sensor source. + DIRECT_CHANNEL_TYPE_GENERIC_CHANNEL = 1; +} + +// stream id for different direct channel streams +message sns_direct_channel_stream_id { + // sensor responsible for data + required sns_std_suid suid = 1; + // if set to true, auto calibrated data is generated + // if set to false, factory calibrated data is generated + optional bool calibrated = 2 [default = true]; + // if set to true, resampled data is generated at rate which is at most twice the requested rate + // if set to false, data is generated at native rate supported by driver, advertised with attributes - SNS_STD_SENSOR_ATTRID_RATES and SNS_STD_SENSOR_ATTRID_ADDITIONAL_LOW_LATENCY_RATES + optional bool resampled = 3 [ default = true]; +} + + +// Direct channel Creation Request Message +message sns_direct_channel_create_msg { + // ION fd, size to get Virtual address that can be used by Q6 + message shared_buffer_config { + required fixed32 fd = 1; + required fixed32 size = 2; + } + + required shared_buffer_config buffer_config = 1; + + // Each channel can be either DIRECT_CHANNEL_TYPE_STRUCTURED_MUX_CHANNEL or DIRECT_CHANNEL_TYPE_GENERIC_CHANNEL + // e.g Android Direct Report Channel for DIRECT_CHANNEL_TYPE_STRUCTURED_MUX_CHANNEL + required direct_channel_type channel_type = 2 ; + + // Processor hosting the sensor data client + // Default processor is Application Processor + optional sns_std_client_processor client_proc = 3 [ default = SNS_STD_CLIENT_PROCESSOR_APSS]; +} + + +// Client request on Direct Channel +message sns_direct_channel_set_client_req { + // msg id for sns_std_request, see sns_std.proto for more information. + required fixed32 msg_id = 1; + + // unique id for each stream on the channel + required sns_direct_channel_stream_id stream_id = 2; + + // generic sns_std_request + required sns_std_request request = 3; + + // required attributes for DIRECT_CHANNEL_TYPE_STRUCTURED_MUX_CHANNEL + message structured_mux_channel_stream_attributes { + // Unique handle per sensor, client has to supply for mapping in sensor hub to "sensor_event_t::sensor" variable + required fixed32 sensor_handle = 1; + // Corresponds to android sensor type, client has to supply for mapping in sensor hub to "sensor_event_t::type" variable + required fixed32 sensor_type = 2; + } + + optional structured_mux_channel_stream_attributes attributes = 4; +} + + +// Direct Channel remove client request message +message sns_direct_channel_remove_client_req { + required sns_direct_channel_stream_id stream_id = 1; +} + + +// Clients interested in Client Time Domain Time Stamp has to supply offset value +// direct channel in sensor hub adds this value to its own time domain time stamp to generate Client Time Domain Time Stamp +message sns_direct_channel_set_ts_offset { + required fixed64 ts_offset = 1; +} + + +// Direct Channel Configuration Message +message sns_direct_channel_config_msg { + + oneof channel_config_msg_payload + { + sns_direct_channel_set_client_req set_client_req = 100; + + sns_direct_channel_remove_client_req remove_client_req = 101; + + sns_direct_channel_set_ts_offset set_ts_offset = 102; + } +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_dpc.proto b/proprietary/vendor/etc/sensors/proto/sns_dpc.proto new file mode 100644 index 0000000..bbc27d7 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_dpc.proto @@ -0,0 +1,64 @@ +// @file sns_dpc.proto +// +// Defines message types for the DPC(Device Position Classifier) Sensor. +// +// Copyright (c) 2017-2018, 2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// The DPC Sensor provides device position information + +// DPC Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "device_position_classifier" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for DPC Sensor +enum sns_dpc_msgid { + option (nanopb_enumopt).long_names = false; + + //send to new client immediatly to inform current device position + SNS_DPC_MSGID_SNS_DPC_EVENT_CONFIG = 777; + + //send when detect device position change + SNS_DPC_MSGID_SNS_DPC_EVENT = 1030; +} + +// Stream events: +// +// The sns_dpc_event message is used to publish updated device position +// The sns_dpc_event_config message is sent immediately to new client to inform the current device position + +enum sns_dpc_state +{ + option (nanopb_enumopt).long_names = false; + + // when algo cannot identify other states + SNS_DPC_UNKNOWN = 1; + // User keeps the device steady with display at an angle within +/-15 deg with respect to the horizontal plane + SNS_DPC_FLAT_STATIC = 2; + // Device is not in FLAT_STATIC state and proximity sensor detects NEAR + SNS_DPC_HIDDEN = 3; + // User picks up the device + SNS_DPC_IN_HAND = 4; + // User keeps the device steady with display at an angle greater than +/-15 deg with respect to the horizontal plane + SNS_DPC_FACING = 5; +} + +// Events types from DPC Sensor +message sns_dpc_event +{ + required sns_dpc_state dpc_state = 1; +} + +message sns_dpc_event_config +{ + //current dpc state + required sns_dpc_state dpc_state = 1; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_ext_svc.proto b/proprietary/vendor/etc/sensors/proto/sns_ext_svc.proto new file mode 100644 index 0000000..7e8370a --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_ext_svc.proto @@ -0,0 +1,72 @@ +// @file sns_ext_svc.proto +// +// Sensor provides access to external QMI services. +// +// This Sensor will create a connection to the external service upon +// receipt of the first request. Subsequent requests will be sent upon the +// same connection. The connection will be closed after the client closes +// the data stream. +// +// An error event will be sent upon any received error, including upon +// the error callback. It is then the responsibility of the client to close +// the data stream, and re-open a new one if desired. +// +// Copyright (c) 2017, 2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; + +enum sns_ext_svc_msgid +{ + option (nanopb_enumopt).long_names = false; + + // Send a request message + SNS_EXT_SVC_MSGID_SNS_EXT_SVC_REQ = 512; + + // Asynchronously received response message + SNS_EXT_SVC_MSGID_SNS_EXT_SVC_RESP = 768; + + // Asynchronously received indication message + SNS_EXT_SVC_MSGID_SNS_EXT_SVC_IND = 1024; +} + +message sns_ext_svc_req +{ + required uint32 svc_id = 1; + + // QMI/IDL Message ID + required int32 msg_id = 2; + + // Client-specified transaction ID, to be returned in sns_ext_svc_resp + optional int32 transaction_id = 3; + + // Contains the QMI-decoded request message. + required bytes payload = 4; +} + +message sns_ext_svc_resp +{ + // QMI/IDL Message ID + required int32 msg_id = 1; + + // Transport error, as defined in qmi_client.h; Defaults to QMI_NO_ERR + required int32 transp_err = 2; + + // Client-specified transaction ID, as provided in sns_ext_svc_req + optional int32 transaction_id = 3; + + // Contains the QMI-decoded response message + // May be empty if transport_err != QMI_NO_ERR + required bytes payload = 4; +} + +message sns_ext_svc_ind +{ + // QMI/IDL Message ID + required int32 msg_id = 1; + + // Contains the QMI-decoded indication message. + required bytes payload = 2; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_facing.proto b/proprietary/vendor/etc/sensors/proto/sns_facing.proto new file mode 100644 index 0000000..8decd9f --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_facing.proto @@ -0,0 +1,60 @@ +// @file sns_facing.proto +// +// Defines message types for the the facing sensor +// +// Copyright (c) 2017 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Facing calculates face up, down and neutral states. Facing will initially start in an +// unknown state, and later transition to face up, down and neutral. +// Neutral state reported to client on demand + +// Facing Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "facing" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Facing Sensor +enum sns_facing_msgid +{ + option (nanopb_enumopt).long_names = false; + + SNS_FACING_MSGID_SNS_FACING_EVENT = 1024; +} + +// Device Facing state detected by Facing sensor +enum sns_facing_event_state +{ + option (nanopb_enumopt).long_names = false; + SNS_FACING_EVENT_STATE_UNKNOWN = 0; + //Phone has just moved to a facing-up phone posture + //which is defined as screen up. + SNS_FACING_EVENT_STATE_UP = 1; + //Phone has just moved to a facing-down phone posture, + //which is defined as screen down. + SNS_FACING_EVENT_STATE_DOWN = 2; + //Phone has just left either the facing-up + //or the facing-down phone posture + SNS_FACING_EVENT_STATE_NEUTRAL = 3; +} + +// Event Message +// Output data event generated by the facing sensor. +message sns_facing_event +{ + // Facing sensor state info + required sns_facing_event_state state = 1[default = SNS_FACING_EVENT_STATE_UNKNOWN]; +} + +// Stream events: +// +// The sns_facing_event message is used to publish updated state +// +// Facing sensor does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_fmv.proto b/proprietary/vendor/etc/sensors/proto/sns_fmv.proto new file mode 100644 index 0000000..a6bdfb0 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_fmv.proto @@ -0,0 +1,40 @@ +// @file sns_fmv.proto +// +// Defines the API for Filtered Magnetic Vector. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "sns_std_sensor.proto"; + +// A FMV sensor reports the filtered magnetic vector +// +// ## FMV sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "fmv" +// +// ## Request Message: sns_std_sensor_config +// sns_std_sensor_config::sample_rate is used to specify the sampling rate (Hz) +// of the FMV sensor. Sensor will generate data events at this rate. +// +// ## Event Message: sns_std_sensor_event +// 1. Output of the FMV sensor will be populated in sns_std_sensor_event +// 2. Each stream event contains three output data fields in µT (micro Tesla) +// 3. Data in the stream is adjusted to Android coordinate system relative to a +// mobile device held with screen facing the user in it's natural orientation: +// X-axis: parallel to the screen pointing to the right +// Y-axis: parallel to the screen pointing to the top +// Z-axis: perpendicular to the screen pointing towards the user +// 4. Data in the stream event is ordered as: +// data[0] = X-axis +// data[1] = Y-axis +// data[2] = Z-axis +// 5. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// +// sns_std_sensor_event::status specifies the reliability of the sample value +// value is of type sns_std_sensor_sample_status. see sns_std_sensor.proto for +// details. diff --git a/proprietary/vendor/etc/sensors/proto/sns_formatter.proto b/proprietary/vendor/etc/sensors/proto/sns_formatter.proto new file mode 100644 index 0000000..5188558 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_formatter.proto @@ -0,0 +1,165 @@ +// @file sns_formatter.proto +// +// Defines standard message types for the Offset/Formatter sensor +// +// Copyright (c) 2018, 2020, 2022 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_type.proto"; +import "sns_std_sensor.proto"; + +enum sns_formatter_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_FORMATTER_MSGID_SNS_FORMATTER_REQUEST = 512; + SNS_FORMATTER_MSGID_SNS_FORMATTER_METRIC_DATA_REQUEST = 513; + SNS_FORMATTER_MSGID_SNS_FORMATTER_BROADCAST_DATA_REQUEST = 514; + + SNS_FORMATTER_MSGID_SNS_FORMATTER_OUTPUT_EVENT = 1024; + SNS_FORMATTER_MSGID_SNS_FORMATTER_ACK_EVENT = 1025; + SNS_FORMATTER_MSGID_SNS_FORMATTER_OUTPUT_GOAL_EVENT = 1026; + SNS_FORMATTER_MSGID_SNS_FORMATTER_OUTPUT_THRESHOLD_EVENT = 1027; + } + +enum sns_formatter_request_values { + option (nanopb_enumopt).long_names = false; + + SNS_FORMATTER_REQUEST_INVALID = 0; + // Creates a new instance of a metric with given id. + SNS_FORMATTER_REQUEST_CREATE = 1; + // Starts or resumes the update of the metric instances. + SNS_FORMATTER_REQUEST_START = 2; + // Stops the update of the metric instances. + SNS_FORMATTER_REQUEST_STOP = 3; + // Resets metric instance state. + SNS_FORMATTER_REQUEST_RESET = 4; + // Destroys the metric instance. Release the resources for that instance. + SNS_FORMATTER_REQUEST_DESTROY = 5; + // Set the config data based on the group name. + SNS_FORMATTER_REQUEST_CONFIG_SET = 6; + // fetch the config data based on the group name. + SNS_FORMATTER_REQUEST_CONFIG_GET = 7; + // Updates the batch period at the client manager. + SNS_FORMATTER_REQUEST_BATCH = 8; + // Pauses the update of the metric instances + SNS_FORMATTER_REQUEST_PAUSE = 9; +} + +enum sns_formatter_status_values { + option (nanopb_enumopt).long_names = false; + + SNS_FORMATTER_STATUS_FAILURE = 0; + SNS_FORMATTER_STATUS_INVALID_PARAM = 1; + SNS_FORMATTER_STATUS_SUCCESS = 2; +} + +enum sns_formatter_client_id { + option (nanopb_enumopt).long_names = false; + + SNS_FORMATTER_CLIENT_BG = 0; + SNS_FORMATTER_CLIENT_APPS = 1; +} + +enum sns_formatter_event_type { + option (nanopb_enumopt).long_names = false; + + SNS_FORMATTER_OUTPUT_DATA_EVENT = 0; + SNS_FORMATTER_OUTPUT_BUFFER_EVENT = 1; + SNS_FORMATTER_CONFIG_DATA_EVENT = 2; +} + +// "UNUSED" is filled by clients for strings which are +// not applicable for a given sns_formatter-request_values id. +message sns_formatter_config_payload { + optional sns_std_suid metric_sensor_suid = 1; + required sns_std_suid formatter_suid = 2; + required float sample_rate = 3; + required string format_input_str = 4; + required string metric_name = 5; + required string group_name = 7; + required string sensor_config_data = 8; +} + +message sns_formatter_output_event_payload +{ + required bytes data = 1; + required sns_std_sensor_sample_status status = 2; + required sns_formatter_event_type event_type = 3; +} + +// Formatter config message +// Used by clients to configure the formatter for various metrics +message sns_formatter_request +{ + required sns_formatter_request_values msg_id = 1; + required fixed32 metric_id = 2; + required sns_formatter_client_id client_id = 3; + optional sns_formatter_config_payload payload = 4; + optional sns_formatter_output_event_payload event_payload = 5; +} + +message sns_formatter_metric_data_request +{ + required fixed32 metric_id = 1; + required bytes metric_data = 2; +} + +message sns_formatter_broadcast_data_request +{ + required bytes broadcast_data = 1; +} + +// Formatter output event +// This event contains the formatted string output corresponding to the +// metric requested by the client. +message sns_formatter_output_event +{ + required fixed32 metric_id = 1; + required string formatted_output = 2; + required sns_formatter_output_event_payload event_payload = 3; +} + +enum sns_formatter_goal_type +{ + option (nanopb_enumopt).long_names = false; + + SNS_FORMATTER_GOAL_VALUE = 1; + SNS_FORMATTER_GOAL_DURATION = 2; +} + + +message sns_formatter_output_goal_event +{ + required fixed32 metric_id = 1; + required sns_formatter_goal_type goal_type = 2; + oneof goal_data + { + fixed32 int_data =3; // Data can be goal value or duration. Goal_type is used to identify type of data. + float float_data =4; // This is for goal value of float type. Ex: Algos like distance may set float values + } +} + +enum sns_formatter_threshold_type +{ + option (nanopb_enumopt).long_names = false; + + SNS_FORMATTER_HIGH_THRESHOLD_ACHIEVED =1; + SNS_FORMATTER_LOW_THRESHOLD_ACHIEVED=2; +} + +message sns_formatter_output_threshold_event +{ + required fixed32 metric_id = 1; + required sns_formatter_threshold_type th_type = 2; +} + +// Formatter acknowledge event +// This event contains the status for the request sent from the client. +// Status indicates if the requested format string was valid or not. +message sns_formatter_ack_event +{ + required fixed32 metric_id = 1; + required sns_formatter_status_values status = 2; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_formatter_notify.proto b/proprietary/vendor/etc/sensors/proto/sns_formatter_notify.proto new file mode 100644 index 0000000..81b781b --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_formatter_notify.proto @@ -0,0 +1,37 @@ +// @file sns_formatter_notify.proto +// +// Defines standard message types for the formatter_notify sensor +// +// Copyright (c) 2022 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +//Formatter notify sensor sends formatter notification event, +//And sports offload HAL is expected to trigger an action + +// Formatter_Notify Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "formatter_notify" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_type.proto"; +import "sns_std_sensor.proto"; + +enum sns_formatter_notify_msgid +{ + option (nanopb_enumopt).long_names = false; + SNS_FORMATTER_NOTIFY_MSGID_SNS_FORMATTER_NOTIFY_EVENT = 1028; +} + +enum sns_formatter_notify_event_type +{ + option (nanopb_enumopt).long_names = false; + SNS_FORMATTER_NOTIFY_EVENT_FLUSH = 1; +} + +message sns_formatter_notify_event +{ + // formatter_notify state + required sns_formatter_notify_event_type state = 1 [default = SNS_FORMATTER_NOTIFY_EVENT_FLUSH]; +} \ No newline at end of file diff --git a/proprietary/vendor/etc/sensors/proto/sns_fw.proto b/proprietary/vendor/etc/sensors/proto/sns_fw.proto new file mode 100644 index 0000000..c29a1af --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_fw.proto @@ -0,0 +1,23 @@ +// @file sns_fw.proto +// +// Defines Framework internal values. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; + +// Internal Framework message IDs +// Note: These message IDs must not conflict with those in sns_std_msgid +enum sns_fw_msgid { + option (nanopb_enumopt).long_names = false; + + // Special message only sent by the Framework; not processed by Sensors + // Empty Message + SNS_FW_MSGID_SNS_DESTROY_REQ = 120; + + // Special message only sent by the Framework; not processed by Sensors + // Empty Message + SNS_FW_MSGID_SNS_DESTROY_COMPLETE_EVENT = 250; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_game_rv.proto b/proprietary/vendor/etc/sensors/proto/sns_game_rv.proto new file mode 100644 index 0000000..6f0f3df --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_game_rv.proto @@ -0,0 +1,48 @@ +// @file sns_game_rv.proto +// +// Defines the API for Game Rotation Vector sensors +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "sns_std_sensor.proto"; + +// A GameRV sensor reports the orientation of the device relative to an +// unspecified coordinates frame. It is obtained by integration of +// accelerometer and gyroscope readings. Therefore the Y axis doesn't point +// north but instead to an arbitrary reference. +// +// ## GameRV sensor attributes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE is "game_rv" +// +// ## Request Message: sns_std_sensor_config +// sns_std_sensor_config::sample_rate is used to specify the sampling rate (Hz) +// of the GameRV sensor. Sensor will generate data events at this rate. +// +// ## Event Message: sns_std_sensor_event +// Output of the GameRV sensor will be populated in sns_std_sensor_event +// +// The orientation is represented by the rotation necessary to align +// the coordinate frame with the device's coordinates. That is, +// applying the rotation to the world frame (X,Y,Z) would align them with +// the device coordinates (x,y,z). +// +// The rotation can be seen as rotating the device by an angle theta around an +// axis rot_axis to go from the reference device orientation to the current +// device orientation. The rotation is encoded as the four unitless x, y, z, w +// components of a unit quaternion: +// sns_std_sensor_event::data[0] = rot_axis.x*sin(theta/2) +// sns_std_sensor_event::data[1] = rot_axis.y*sin(theta/2) +// sns_std_sensor_event::data[2] = rot_axis.z*sin(theta/2) +// sns_std_sensor_event::data[3] = cos(theta/2) +// +// Where: +// - the x, y and z fields of rot_axis are the East-North-Up coordinates +// of a unit length vector representing the rotation axis +// - theta is the rotation angle +// +// sns_std_sensor_event::status specifies the reliability of the sample value +// value is of type sns_std_sensor_sample_status. see sns_std_sensor.proto for +// details. diff --git a/proprietary/vendor/etc/sensors/proto/sns_geomag_rv.proto b/proprietary/vendor/etc/sensors/proto/sns_geomag_rv.proto new file mode 100644 index 0000000..98b2b18 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_geomag_rv.proto @@ -0,0 +1,50 @@ +// @file sns_geomag_rv.proto +// +// Defines the API for Geomagnetic Rotation Vector sensors. +// This Sensor is similar to Rotation Vector, but uses a magnetometer instead +// of a gyroscope. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "sns_std_sensor.proto"; + +// A GeoMagRV sensor reports the orientation of the device relative to the +// East-North-Up coordinates frame. It is obtained by integration of +// accelerometer and magnetometer readings. +// +// ## GeoMagRV sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "geomag_rv" +// +// ## Request Message: sns_std_sensor_config +// sns_std_sensor_config::sample_rate is used to specify the sampling rate (Hz) +// of the GeoMagRV sensor. Sensor will generate data events at this rate. +// +// ## Event Message: sns_std_sensor_event +// Output of the GeoMagRV sensor will be populated in sns_std_sensor_event +// +// The East-North-Up coordinate system is defined as a direct orthonormal +// basis where: +// - X points east and is tangential to the ground. +// - Y points north and is tangential to the ground. +// - Z points towards the sky and is perpendicular to the ground. +// +// The rotation can be seen as rotating the device by an angle theta around an +// axis rot_axis to go from the reference device orientation to the current +// device orientation. The rotation is encoded as the four unitless x, y, z, w +// components of a unit quaternion: +// sns_std_sensor_event::data[0] = rot_axis.x*sin(theta/2) +// sns_std_sensor_event::data[1] = rot_axis.y*sin(theta/2) +// sns_std_sensor_event::data[2] = rot_axis.z*sin(theta/2) +// sns_std_sensor_event::data[3] = cos(theta/2) +// +// Where: +// - the x, y and z fields of rot_axis are the East-North-Up coordinates +// of a unit length vector representing the rotation axis +// - theta is the rotation angle +// +// sns_std_sensor_event::status specifies the reliability of the sample value +// value is of type sns_std_sensor_sample_status. see sns_std_sensor.proto for +// details. diff --git a/proprietary/vendor/etc/sensors/proto/sns_gravity.proto b/proprietary/vendor/etc/sensors/proto/sns_gravity.proto new file mode 100644 index 0000000..6a04f14 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_gravity.proto @@ -0,0 +1,30 @@ +// @file sns_gravity.proto +// +// Defines standard message types for the Gravity Sensor +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// Configuration Message +// Used to either request for a certain configuration of the gravity sensor or +// alter an already existing configuration of the gravity sensor +// Uses sns_std_sensor_config defined in sns_std_sensor.proto +// The message field definitions are as follows: +// 1) float sample_rate +// containing the required sample rate of the gravity sensor in hertz + +// Data Message +// Data event generated by the gravity. +// Uses sns_std_sensor_event message defined in sns_std_sensor.proto +// The data field of the sns_std_sensor_event message +// contains a float array of length 6 with the following definition +// 1) float data[0] to data[2] +// Representing the gravity values along x,y,z axes in m/s2. +// 2) float data[3] to data[5] +// Representing the linear acceleration values along x,y,z axes in m/s2. +// Determined as the delta between the accel and the gravity values +// along that axis. diff --git a/proprietary/vendor/etc/sensors/proto/sns_gyro.proto b/proprietary/vendor/etc/sensors/proto/sns_gyro.proto new file mode 100644 index 0000000..03f1bc5 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_gyro.proto @@ -0,0 +1,74 @@ +// @file sns_gyro.proto +// +// Defines the API for Gyroscope Sensors. +// All Gyroscope Sensor drivers are required to comply with this API. +// Any new functionality for Gyroscope Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018, 2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Gyroscope Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "gyro". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute value in (radians/sec)/LSB. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in radians/sec unit. +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Gyroscope Sensor handles the sns_std_sensor_config +// message request for all stream enable/update requests. +// 2. The Gyroscope Sensor uses batching_period item in +// sns_std_request as the requested batching rate to determine +// hardware FIFO watermark. + +// Handling stream events: +// 1. The Gyroscope Sensor publishes device rotation data stream events +// using the sns_std_sensor_event message. +// 2. Each stream event contains three output data fields where data is +// in radians/sec units and is factory calibrated. +// 3. Data in the stream is adjusted to Android coordinate system relative to a +// mobile device held with screen facing the user in it's natural orientation: +// X-axis: parallel to the screen pointing to the right +// Y-axis: parallel to the screen pointing to the top +// Z-axis: perpendicular to the screen pointing towards the user +// This conforms to the mobile device axes orientation as specified by the +// Android Sensor API. +// 4. Data in the stream event is ordered as: +// data[0] = X-axis +// data[1] = Y-axis +// data[2] = Z-axis +// 5. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 6. The Gyroscope Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 7. The Gyroscope Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and comp_matrix fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. +// Handling self-test requests: +// 1. The Gyroscope Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Gyroscope Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. +// 3. The Gyroscope Sensor could implement other test types. + +// Handling test events: +// 1. The Gyroscope Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_gyro_cal.proto b/proprietary/vendor/etc/sensors/proto/sns_gyro_cal.proto new file mode 100644 index 0000000..279c070 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_gyro_cal.proto @@ -0,0 +1,32 @@ +// @file sns_gyro_cal.proto +// +// Defines message types for the Gyro Calibration Sensor. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_cal.proto"; + +// The Gyro Calibration Sensor determines the calibration parameters +// for gyro sensor + +// Gyro Calibration Sensor Attributes: +// - SNS_STD_SENSOR_ATTRID_TYPE: "gyro_cal" +// - SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG message ID is used to +// enable the sensor +// - SNS_CAL_MSGID_SNS_CAL_RESET message ID is used to reset the algorithm +// and any previously determined calibration parameters. + +// Stream Events: +// - SNS_CAL_MSGID_SNS_CAL_EVENT message ID is used to report calibration +// parameters to the client of the sensor. The sns_cal_event message as +// defined in sns_cal.proto is used to report this data event where the +// units for the bias field in the message are in rad / s + + diff --git a/proprietary/vendor/etc/sensors/proto/sns_gyro_rot_matrix.proto b/proprietary/vendor/etc/sensors/proto/sns_gyro_rot_matrix.proto new file mode 100644 index 0000000..06a1c54 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_gyro_rot_matrix.proto @@ -0,0 +1,50 @@ +// @file sns_gyro_rot_matrix.proto +// +// Defines standard message types for the Gyro Rotation Matrix +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +enum sns_gyro_rot_matrix_msgid +{ + option (nanopb_enumopt).long_names = false; + + SNS_GYRO_ROT_MATRIX_MSGID_SNS_STD_SENSOR_EVENT = 1024; +} + +// Data Message +// Data event generated by the gyro rotation matrix. +// Uses sns_std_sensor_event message defined in sns_std_sensor.proto +// The data field of the sns_std_sensor_event message +// contains a float array of length 10 with the following definition +// 1) float data[0] to data[8] +// 3 by 3 Gyro Rotation Matrix output +// Representing the rotation from previously sampled gyro values +// to the current one. +// The matrix definition is as follows: +// curr_gyro_XYZ[3X1] = gyro_rot_matrix[3X3] * prev_gyro_XYZ[3X1] +// data[0] = gyro_rot_matrix[0,0] +// data[1] = gyro_rot_matrix[0,1] +// data[2] = gyro_rot_matrix[0,2] +// data[3] = gyro_rot_matrix[1,0] +// data[4] = gyro_rot_matrix[1,1] +// data[5] = gyro_rot_matrix[1,2] +// data[6] = gyro_rot_matrix[2,0] +// data[7] = gyro_rot_matrix[2,1] +// data[8] = gyro_rot_matrix[2,2] +// 2) float data[9] +// Gyro Norm of the currently sampled gyro data +// determined as the sum of squares of gyro on each of the axes +// i.e. curr_gyro_X^2 + curr_gyro_Y^2 + curr_gyro_Z^2 + +// Configuration Message +// Used to either request for a certain configuration of the Gyro Rotation Matrix Sensor or +// alter an already existing configuration of the Simulation Sensor +// Uses sns_std_sensor_config defined in sns_std_sensor.proto +// The message field definitions are as follows: +// 1) float sample_rate +// containing the required sample rate of the Gyro Rotation Matrix sensor in hertz diff --git a/proprietary/vendor/etc/sensors/proto/sns_hall.proto b/proprietary/vendor/etc/sensors/proto/sns_hall.proto new file mode 100644 index 0000000..a779844 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_hall.proto @@ -0,0 +1,82 @@ +// @file sns_hall.proto +// +// Defines the API for Hall Sensors. +// All Hall Sensor drivers are required to comply with this API. +// Any new functionality for Hall Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018, 2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Hall Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "hall". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute is not applicable since this is an event +// sensor. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values as 0 and 1. +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Hall Sensor handles the SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG +// message ID for all stream enable/update requests. +// 2. The Hall Sensor operates in on-change mode and report +// samples only for magnet NEAR/FAR transitions. + +// Message IDs for hall Sensor +enum sns_hall_msgid { + option (nanopb_enumopt).long_names = false; + + // Uses message: sns_hall_event + // Purpose: An output data event from the hall sensor to it's client. + SNS_HALL_MSGID_SNS_HALL_EVENT = 770; +} + +enum sns_hall_event_type { + option (nanopb_enumopt).long_names = false; + + SNS_HALL_EVENT_TYPE_FAR = 0; + SNS_HALL_EVENT_TYPE_NEAR = 1; +} + +// Events types from hall Sensor +message sns_hall_event +{ + // Hall NEAR/FAR output event + required sns_hall_event_type hall_event_type = 1 [default = SNS_HALL_EVENT_TYPE_FAR]; + + // Hall sensor sample status + required sns_std_sensor_sample_status status = 2 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +// Handling stream events: +// 1. The Hall Sensor publishes magnetic field proximity data stream +// events using the sns_hall_event message. +// 2. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 3. The Hall Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. + +// Handling self-test requests: +// 1. The Hall Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Hall Sensor could implement other test types. + +// Handling test events: +// 1. The Hall Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_heart_beat.proto b/proprietary/vendor/etc/sensors/proto/sns_heart_beat.proto new file mode 100644 index 0000000..3b0b2d1 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_heart_beat.proto @@ -0,0 +1,31 @@ +// @file sns_heart_beat.proto +// +// Defines the API for Heart Beat sensors +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "sns_std_sensor.proto"; + +// A heart beat sensor reports everytime a heart beat peak is detected. +// +// Peak ideally corresponds to the positive peak in the QRS complex of +// an ECG signal, and the event timestamp should correspond to the time this +// peak occured. +// +// The sensor is not expected to be optimized for latency. As a guide, a +// receipt latency of up to 10 seconds is acceptable. +// +// ## Heart Beat sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "heart_beat" +// +// ## Request Message: SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG +// No configuration is available for this sensor. +// +// ## Event Message: sns_std_sensor_event +// Output of the Heart Beat sensor will be populated in sns_std_sensor_event. +// +// sns_std_sensor_event::data[0] = confidence in the detection of the peak +// where 0.0 represent no information at all, and 1.0 represents certainty. diff --git a/proprietary/vendor/etc/sensors/proto/sns_heart_rate.proto b/proprietary/vendor/etc/sensors/proto/sns_heart_rate.proto new file mode 100644 index 0000000..c6f90f5 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_heart_rate.proto @@ -0,0 +1,55 @@ +// @file sns_heart_rate.proto +// +// Defines the API for Heart Rate Detection Sensors. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// A sensor of this type returns the current heart rate in beats per minute +// (BPM). Because this sensor is on-change, events must be generated when and +// only when BPM or status have changed since the last event. +// +// Upon the first activation, unless the device is known to not be on the +// body, the status field of the first event must be set to UNRELIABLE. +// +// ## Heart Rate sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "heart_rate" +// +// ## Request Message: SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG +// No configuration is available for this sensor. +// +// ## Event Message: sns_std_sensor_event +// Output of the Heart Rate sensor will be populated in sns_std_sensor_event. +// +// SNS_HEART_RATE_MSGID_SNS_HEART_RATE_EVENT::data[0] = current heart rate in beats per minute (BPM) +// +// SNS_HEART_RATE_MSGID_SNS_HEART_RATE_EVENT::status specifies the reliability of the sample value +// value is of type sns_heart_rate_event_type. + +enum sns_heart_rate_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_HEART_RATE_MSGID_SNS_HEART_RATE_EVENT = 779; +} + +enum sns_heart_rate_event_type { + option (nanopb_enumopt).long_names = false; + + SNS_HR_STATUS_NO_CONTACT = -1; + SNS_HR_STATUS_UNRELIABLE = 0; + SNS_HR_STATUS_ACCURACY_LOW = 1; + SNS_HR_STATUS_ACCURACY_MEDIUM = 2; + SNS_HR_STATUS_ACCURACY_HIGH = 3; +} + +// Events types from heart_rate Sensor +message sns_heart_rate_event +{ + required float heart_rate = 1; + required sns_heart_rate_event_type heart_rate_event_type = 2 [default = SNS_HR_STATUS_NO_CONTACT]; +} \ No newline at end of file diff --git a/proprietary/vendor/etc/sensors/proto/sns_hinge_angle.proto b/proprietary/vendor/etc/sensors/proto/sns_hinge_angle.proto new file mode 100644 index 0000000..0e8e8eb --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_hinge_angle.proto @@ -0,0 +1,83 @@ + +// @file sns_hinge_angle.proto +// +// Defines message types for the Hinge Angle Sensor. +// +// Copyright (c) 2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// The Hinge Angle Sensor detects the angle between two rigid bodies connected by a hinge +// around which rotation can occur. +// +// The reference position for Hinge Angle measurement constitues the two rigid bodies being +// parallel to the ground, with surfaces in contact with each other and hinge connecting +// the left edges of the two rigid bodies. +// The rigid body that is located below is defined to be the primary rigid body. +// The rigid body which is located above is defined to be the secondary rigid body. +// +// The Hinge Angle Sensor detects the angle going from the primary rigid body to the +// secondary rigid body, measured counter clockwise around the hinge. The maximum range of +// reported angles will be from 0 degrees to 360 degrees. +// +// A Hinge Angle of 0 degrees is reported when the two rigid bodies have the same surfaces, +// as described in the reference position, in contact with each other. +// +// A Hinge Angle of 360 degrees is reported when the two rigid bodies have the opposite +// surfaces, to those described in the reference position, in contact with each other. +// +// A Hinge Angle of 180 degrees is reported when the two rigid bodies are coplanar. + +// Attribute Requirements: +// Hingle Angle Sensor must support the following attributes +// SNS_STD_SENSOR_ATTRID_TYPE: "hinge_angle" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE +// SNS_STD_SENSOR_ATTRID_RESOLUTIONS: the smallest hinge angle in degrees that +// can be detected by the sensor +// SNS_STD_SENSOR_ATTRID_RANGES: the range of angles detected by the sensor, for +// example [0,360] + +// Request: +// A request message with message id SNS_HINGE_ANGLE_MSGID_SNS_HINGE_ANGLE_CONFIG +// and payload sns_hinge_angle_config is used to enable the Hinge Angle Sensor + +// Event: +// Hinge Angle sensor generates an event with message id +// SNS_STD_SENSOR_MSGID_SNS_STD_SENSOR_EVENT and payload sns_std_sensor_event +// when hinge angle change is detected + +// Message IDs for HINGE_ANGLE Sensor +enum sns_hinge_angle_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_HINGE_ANGLE_MSGID_SNS_HINGE_ANGLE_CONFIG = 512; +} + + +// Request Message +// Used to either request for a new configuration of the Hinge Angle Sensor or +// alter an already existing configuration +message sns_hinge_angle_config +{ + // Ids of the primary and secondary rigid bodies between which hinge angle + // is to be measured. Ids must match the SNS_STD_SENSOR_ATTRID_RIGID_BODY + // attributes of the sensors on these rigid bodies that are to be used. + repeated int32 rigid_body = 1 [(nanopb).max_count = 2]; +} + + +// Event Message +// Uses sns_std_sensor_event message defined in sns_std_sensor.proto +// The data field of the sns_std_sensor_event message contains a +// single floating point value representing the detected hinge angle +// in degrees +// The status field of the sns_std_sensor_event message contains the +// accuracy of the detected hinge angle + + + + diff --git a/proprietary/vendor/etc/sensors/proto/sns_humidity.proto b/proprietary/vendor/etc/sensors/proto/sns_humidity.proto new file mode 100644 index 0000000..7ae47bc --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_humidity.proto @@ -0,0 +1,69 @@ +// @file sns_humidity.proto +// +// Defines the API for Humidity Sensors. +// All Humidity Sensor drivers are required to comply with this API. +// Any new functionality for Humidity Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Humidity Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "humidity". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute value in %RH/LSB. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in %RH unit. +// 4. The Humidity Sensor is an on-change sensor. +// 5. See sns_std_sensor.proto for other attributes. + + +// Handling stream requests: +// 1. The Humidity Sensor handles the SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG +// message ID for all stream enable/update requests. +// 2. The Humidity Sensor supports on-change mode of operation. +// 3. In on-change mode the Sensor could use interrupt operation and +// reports samples for only significant change in humidity. +// Example: +/- 5% change. + +// Handling stream events: +// 1. The Humidity Sensor publishes ambient relative humidity data stream +// events using the sns_std_sensor_event message. +// 2. Each stream event contains one output data field where data is +// factory calibrated and ordered as: +// data[0] = Humidity data in %RH (% Relative Humidity) +// 3. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 4. The Humidity Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 5. The Humidity Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and scale_factor fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. + +// Handling self-test requests: +// 1. The Humidity Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Humidity Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. +// 3. The Humidity Sensor could implement other test types. + +// Handling test events: +// 1. The Humidity Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_mag.proto b/proprietary/vendor/etc/sensors/proto/sns_mag.proto new file mode 100644 index 0000000..174bfa5 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_mag.proto @@ -0,0 +1,75 @@ +// @file sns_mag.proto +// +// Defines the API for Magnetometer Sensors. +// All Magnetometer Sensor drivers are required to comply with this API. +// Any new functionality for Magnetometer Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Magnetometer Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "mag". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute value in µT/LSB. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in µT unit. +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Magnetometer Sensor handles the sns_std_sensor_config +// message request for all stream enable/update requests. +// 2. If the physical sensor supports hardware FIFO then the Magnetometer +// Sensor uses batching_period item in sns_std_request as the requested +// batching rate to determine hardware FIFO watermark. + +// Handling stream events: +// 1. The Magnetometer Sensor publishes ambient magnetic field data events +// using the sns_std_sensor_event message. +// 2. Each stream event contains three output data fields where data is +// in µT (micro Tesla) units and is factory calibrated. +// 3. Data in the stream is adjusted to Android coordinate system relative to a +// mobile device held with screen facing the user in it's natural orientation: +// X-axis: parallel to the screen pointing to the right +// Y-axis: parallel to the screen pointing to the top +// Z-axis: perpendicular to the screen pointing towards the user +// This conforms to the mobile device axes orientation as specified by the +// Android Sensor API. +// 4. Data in the stream event is ordered as: +// data[0] = X-axis +// data[1] = Y-axis +// data[2] = Z-axis +// 5. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 6. The Magnetometer Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 7. The Magnetometer Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and comp_matrix fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. + +// Handling self-test requests: +// 1. The Magnetometer Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Magnetometer Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. +// 3. The Magnetometer Sensor could implement other test types. + +// Handling test events: +// 1. The Magnetometer Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_mag_cal.proto b/proprietary/vendor/etc/sensors/proto/sns_mag_cal.proto new file mode 100644 index 0000000..d6fc026 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_mag_cal.proto @@ -0,0 +1,32 @@ +// @file sns_mag_cal.proto +// +// Defines message types for the Mag Calibration Sensor. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_cal.proto"; + +// The Mag Calibration Sensor determines the calibration parameters +// for magnetometer sensor + +// Mag Calibration Sensor Attributes: +// - SNS_STD_SENSOR_ATTRID_TYPE: "mag_cal" +// - SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG message ID is used to +// enable the sensor +// - SNS_CAL_MSGID_SNS_CAL_RESET message ID is used to reset the algorithm +// and any previously determined calibration parameters. + +// Stream Events: +// - SNS_CAL_MSGID_SNS_CAL_EVENT message ID is used to report calibration +// parameters to the client of the sensor. The sns_cal_event message as +// defined in sns_cal.proto is used to report this data event where the +// units for the bias field in the message are in micro Tesla. + + diff --git a/proprietary/vendor/etc/sensors/proto/sns_mot_factory_cal.proto b/proprietary/vendor/etc/sensors/proto/sns_mot_factory_cal.proto new file mode 100644 index 0000000..0476704 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_mot_factory_cal.proto @@ -0,0 +1,63 @@ +// @file sns_mot_factory_cal.proto +// +// Defines test API message types for more test command. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; + +enum sns_mot_factory_cal_msgid +{ + option (nanopb_enumopt).long_names = false; + + // Test config request to a physical Sensor + SNS_MOT_FACTORY_CAL_MSGID_SNS_PHYSICAL_SENSOR_TEST_CONFIG = 575; + + // Test event message from a physical Sensor + SNS_MOT_FACTORY_CAL_MSGID_SNS_PHYSICAL_SENSOR_TEST_EVENT = 1055; +} + +// Supported mot_factory_cal types for physical sensors +enum sns_mot_factory_cal_type +{ + option (nanopb_enumopt).long_names = false; + + // read. + SNS_MOT_FACTORY_CAL_TYPE_RD= 0; + + // Set. + SNS_MOT_FACTORY_CAL_TYPE_SET = 1; + + // Read bias. + SNS_MOT_FACTORY_CAL_TYPE_RD_BIAS = 2; + + // Proximity sensor threshold calibration + SNS_MOT_FACTORY_CAL_TYPE_PROX_CAL = 3; + + // Restore calibration's golden value + SNS_MOT_FACTORY_CAL_TYPE_UNDO_CAL = 4; + + //Interrupt line test + SNS_MOT_FACTORY_IRQ_LINE_TEST = 5; +} + +message sns_mot_factory_cal_config +{ + // Requested test type. + required sns_mot_factory_cal_type test_type = 1; + repeated float target_val = 2 [(nanopb).max_count = 5]; +} + +message sns_mot_factory_cal_event +{ + // Result if the test execution was successful: + // true for success + // false for failure + required bool test_passed = 1 [default = true]; + required sns_mot_factory_cal_type test_type = 2 [default = SNS_MOT_FACTORY_CAL_TYPE_RD_BIAS]; + repeated float data_val = 3; +} + diff --git a/proprietary/vendor/etc/sensors/proto/sns_oem1.proto b/proprietary/vendor/etc/sensors/proto/sns_oem1.proto new file mode 100644 index 0000000..a331eb2 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_oem1.proto @@ -0,0 +1,39 @@ +// @file sns_oem1.proto +// +// Defines standard message types for the OEM1 +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +enum sns_oem1_msgid +{ + option (nanopb_enumopt).long_names = false; + + SNS_OEM1_MSGID_SNS_OEM1_DATA = 1024; +} + + +// Configuration Message +// Used to either request for a certain configuration of the Sim Sensor or +// alter an already existing configuration of the Simulation Sensor +// Uses sns_std_sensor_config defined in sns_std_sensor.proto +// The message field definitions are as follows: +// 1) float sample_rate +// containing the required sample rate of the Sim sensor in hertz + +// Data Message +// Output data event generated by the oem1 sensor. +message sns_oem1_data +{ + // oem1 Vector along axis x,y,z in m/s2 + repeated float oem1 = 1 [(nanopb).max_count = 3]; + + // Accuracy of the data + required sns_std_sensor_sample_status accuracy = 2; +} + + diff --git a/proprietary/vendor/etc/sensors/proto/sns_offbody_detect.proto b/proprietary/vendor/etc/sensors/proto/sns_offbody_detect.proto new file mode 100644 index 0000000..b198b6d --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_offbody_detect.proto @@ -0,0 +1,56 @@ +// @file sns_offbody_detect.proto +// +// Defines the API for Offbody Detection Sensors. +// +// Copyright (c) 2017-2018,2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; + +// An offbody detect sensor reports every time the device transitions from +// off-body to on-body and from on-body to off-body (e.g. a wearable device +// being removed from the wrist would trigger an event indicating an off-body +// transition). +// +// This sensor must be able to detect and report an on-body to off-body +// transition within 1 second of the device being removed from the body, +// and must be able to detect and report an off-body to on-body transition +// within 5 seconds of the device being put back onto the body. +// +// ## Offbody Detection sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "offbody_detect" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE +// +// ## Request Message: SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG +// No configuration is available for this sensor. +// +// ## Event Message: SNS_OFFBODY_DETECT_MSGID_SNS_OFFBODY_DETECT_EVENT + +// Message IDs for Offbody Detection Sensor +enum sns_offbody_detect_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_OFFBODY_DETECT_MSGID_SNS_OFFBODY_DETECT_EVENT = 772; +} + +enum sns_offbody_detect_event_type +{ + option (nanopb_enumopt).long_names = false; + + // Current state is unknown: not yet detected + SNS_OFFBODY_DETECT_EVENT_TYPE_UNKNOWN = 0; + // Device has been detected to be on-body + SNS_OFFBODY_DETECT_EVENT_TYPE_ON = 1; + // Device has been detected to be off-body + SNS_OFFBODY_DETECT_EVENT_TYPE_OFF = 2; +} + +message sns_offbody_detect_event +{ + // Detected state + required sns_offbody_detect_event_type state = 1 [default = SNS_OFFBODY_DETECT_EVENT_TYPE_UNKNOWN]; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_pedometer.proto b/proprietary/vendor/etc/sensors/proto/sns_pedometer.proto new file mode 100644 index 0000000..4b1e1b1 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_pedometer.proto @@ -0,0 +1,56 @@ +// @file sns_pedometer.proto +// +// Defines message types for the Pedometer Sensor. +// +// Copyright (c) 2017-2019 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// The Pedometer Sensor detects steps taken by the user +// +// The Pedometer step event includes the latest step count accumulated since +// activation. +// All clients to Pedometer get the same step event. +// The timestamp of the event indicates the time of the latest detected step. + +// Pedometer Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "pedometer" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Pedometer Sensor +enum sns_pedometer_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_PEDOMETER_MSGID_SNS_STEP_EVENT = 1028; + + SNS_PEDOMETER_MSGID_SNS_STEP_EVENT_CONFIG = 775; +} + +// Events types from Pedometer Sensor +message sns_step_event +{ + //an incrementing step count + required uint32 step_count = 1; +} + +message sns_step_event_config +{ + //current step count + required uint32 step_count = 1; +} + + +// Stream events: +// +// The sns_step_event message is used to publish updated step count +// +// The sns_step_event_config message is used to publish current step count +// to the client + diff --git a/proprietary/vendor/etc/sensors/proto/sns_pedometer_wrist.proto b/proprietary/vendor/etc/sensors/proto/sns_pedometer_wrist.proto new file mode 100644 index 0000000..65a6348 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_pedometer_wrist.proto @@ -0,0 +1,56 @@ +// @file sns_pedometer_wrist.proto +// +// Defines message types for the Pedometer_wrist Sensor. +// +// Copyright (c) 2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// The Pedometer_wrist Sensor detects steps taken by the user +// +// The Pedometer_wrist Step event is generated when the user takes a step. +// The event includes the latest step count accumulated since activation. +// All clients to Pedometer_wrist get the same step event. +// The timestamp of the event indicates the time of the latest detected step. + +// Pedometer_wrist Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "pedometer_wrist" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Pedometer_wrist Sensor +enum sns_pedometer_wrist_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_PEDOMETER_WRIST_MSGID_SNS_PEDOMETER_STEP_EVENT = 1028; + //send to client immediatly to inform current step count + //msg body same as sns_step_event + SNS_PEDOMETER_WRIST_MSGID_SNS_PEDOMETER_STEP_EVENT_CONFIG = 775; +} + +// Events types from Pedometer_wrist Sensor +message sns_pedometer_step_event +{ + //an incrementing step count + required uint32 step_count = 1; +} + +message sns_pedometer_step_event_config +{ + //current step count + required uint32 step_count = 1; +} + + +// Stream events: +// +// The sns_step_event message is used to publish updated step count +// +// Pedometer_wrist does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_physical_sensor_test.proto b/proprietary/vendor/etc/sensors/proto/sns_physical_sensor_test.proto new file mode 100644 index 0000000..70e7638 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_physical_sensor_test.proto @@ -0,0 +1,80 @@ +// @file sns_physical_sensor_test.proto +// +// Defines test API message types for physical sensors. +// +// All physical Sensor drivers are required to use this API to support +// self-test. SNS_PHYSICAL_SENSOR_TEST_TYPE_COM is a mandatory test type and must be +// implemented in all physical Sensor drivers. Any new or device-specific +// test type may be defined in the Sensor-specific API. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; + +enum sns_physical_sensor_test_msgid +{ + option (nanopb_enumopt).long_names = false; + + // Test config request to a physical Sensor + SNS_PHYSICAL_SENSOR_TEST_MSGID_SNS_PHYSICAL_SENSOR_TEST_CONFIG = 515; + + // Test event message from a physical Sensor + SNS_PHYSICAL_SENSOR_TEST_MSGID_SNS_PHYSICAL_SENSOR_TEST_EVENT = 1026; +} + +// Supported test types for physical sensors +enum sns_physical_sensor_test_type +{ + option (nanopb_enumopt).long_names = false; + + // Software test. + SNS_PHYSICAL_SENSOR_TEST_TYPE_SW = 0; + + // Sensor Hardware test. + SNS_PHYSICAL_SENSOR_TEST_TYPE_HW = 1; + + // Factory test used for Sensor calibration. + SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY = 2; + + // Communication bus test. + SNS_PHYSICAL_SENSOR_TEST_TYPE_COM = 3; +} + +// Physical Sensor test configuration request +message sns_physical_sensor_test_config +{ + // Requested test type. + required sns_physical_sensor_test_type test_type = 1; +} + +// Physical Sensor test event +message sns_physical_sensor_test_event +{ + // Result if the test execution was successful: + // true for success + // false for failure + required bool test_passed = 1 [default = true]; + + // test_type from sns_physical_sensor_test_config that + // this event corresponds to + required sns_physical_sensor_test_type test_type = 2 [default = SNS_PHYSICAL_SENSOR_TEST_TYPE_COM]; + + // Driver specific test data. This field can be used + // to pass additional information like failure codes, debug data, etc. + optional bytes test_data = 3; +} + +// Self-test and streaming concurrency requirements: +// 1. If the sensor is streaming and there is a client request to run +// self-test (any test type) then the driver: +// a. Pauses the stream +// b. Executes the self-test request to completion +// c. Resumes stream +// 2. If the self-test is running and there is a client request to start +// a sensor stream then the driver: +// a. Rejects the stream request +// b. Continues executing the self-test request to completion + diff --git a/proprietary/vendor/etc/sensors/proto/sns_pose_6dof.proto b/proprietary/vendor/etc/sensors/proto/sns_pose_6dof.proto new file mode 100644 index 0000000..3cb43e9 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_pose_6dof.proto @@ -0,0 +1,70 @@ +// @file sns_pose_6dof.proto +// +// Defines the API for Pose Six Degrees of Freedom sensors. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "sns_std_sensor.proto"; + +// A pose 6dof sensor events consists of a rotation expressed as a quaternion +// and a translation expressed in SI units. Pose of the device is defined as +// the orientation of the device from a Earth Centered Earth Fixed frame and +// the translation from an arbitrary point at subscription. +// +// ## Pose 6DOF sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "pose_6dof" +// +// ## Request Message: sns_std_sensor_config +// sns_std_sensor_config::sample_rate is used to specify the sampling rate (Hz) +// of the Pose 6DOF sensor. Sensor will generate data events at this rate. +// +// ## Event Message: sns_std_sensor_event +// Output of the Pose 6DOF sensor will be populated in sns_std_sensor_event +// +// A Pose 6DOF sensor reports the orientation of the device relative +// to the East-North-Up coordinates frame. It is obtained by +// integration of accelerometer and gyroscope readings. +// The East-North-Up coordinate system is defined as a direct +// orthonormal basis where: +// +// - X points east and is tangential to the ground. +// - Y points north and is tangential to the ground. +// - Z points towards the sky and is perpendicular to the ground. +// +// The orientation is represented by the rotation necessary to align +// the East-North-Up coordinates with the device's coordinates. That is, +// applying the rotation to the world frame (X,Y,Z) would align them with +// the device coordinates (x,y,z). +// +// The rotation can be seen as rotating the device by an angle theta around an +// axis rot_axis to go from the reference (East-North-Up aligned) device +// orientation to the current device orientation. The rotation is encoded +// as the four unitless x, y, z, w components of a unit quaternion: +// +// sns_std_sensor_event::data[0] = x*sin(theta/2) +// sns_std_sensor_event::data[1] = y*sin(theta/2) +// sns_std_sensor_event::data[2] = z*sin(theta/2) +// sns_std_sensor_event::data[3] = cos(theta/2) +// sns_std_sensor_event::data[4] = Translation along x axis from an arbitrary origin. +// sns_std_sensor_event::data[5] = Translation along y axis from an arbitrary origin. +// sns_std_sensor_event::data[6] = Translation along z axis from an arbitrary origin. +// sns_std_sensor_event::data[7] = Delta quaternion rotation x*sin(theta/2) +// sns_std_sensor_event::data[8] = Delta quaternion rotation y*sin(theta/2) +// sns_std_sensor_event::data[9] = Delta quaternion rotation z*sin(theta/2) +// sns_std_sensor_event::data[10] = Delta quaternion rotation cos(theta/2) +// sns_std_sensor_event::data[11] = Delta translation along x axis. +// sns_std_sensor_event::data[12] = Delta translation along y axis. +// sns_std_sensor_event::data[13] = Delta translation along z axis. +// sns_std_sensor_event::data[14] = Sequence number; ascending sequentially from 0 + +// Where: +// - the x, y and z fields of rot_axis are the East-North-Up coordinates +// of a unit length vector representing the rotation axis +// - theta is the rotation angle +// +// sns_std_sensor_event::status specifies the reliability of the sample value +// value is of type sns_std_sensor_sample_status. see sns_std_sensor.proto for +// details. diff --git a/proprietary/vendor/etc/sensors/proto/sns_ppg.proto b/proprietary/vendor/etc/sensors/proto/sns_ppg.proto new file mode 100644 index 0000000..d34368a --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_ppg.proto @@ -0,0 +1,46 @@ +// @file sns_ppg.proto +// +// Defines the API for PPG Sensors. +// +// Copyright (c) 2017-2018,2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; + +// Attribute requirements: +// The PPG Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "ppg". +// 2. SNS_STD_SENSOR_ATTRID_RATES attribute values in Hz. + +// Handling stream requests: +// 1. The PPG Sensor handles the sns_std_sensor_config +// message request with msgid SNS_STD_SENSOR_MSGID_SNS_STD_SENSOR_CONFIG +// for all stream enable/update requests. +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_STREAMING +// 2. The PPG Sensor uses batching_period item in +// sns_std_request as the requested batching rate to determine +// hardware FIFO watermark. + +// Handling stream events: +// 1. The PPG Sensor publishes PPG data stream events +// using the sns_std_sensor_event message. +// 2. Each stream event contains three output data fields +// data[0] => PPG ch1 +// data[1] => PPG ch2 +// data[2] => PPG ch3 +// data[3] => PPG ch4 +// data[4] => TOUCH_FLAG. 128 if onbody detect, 0 otherwise +// data[5] => WEAR_INDEX. 1 if wear loose, 0 otherwise +// 3. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 4. The PPG Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_pressure.proto b/proprietary/vendor/etc/sensors/proto/sns_pressure.proto new file mode 100644 index 0000000..97262cd --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_pressure.proto @@ -0,0 +1,65 @@ +// @file sns_pressure.proto +// +// Defines the API for Pressure Sensors. +// All Pressure Sensor drivers are required to comply with this API. +// Any new functionality for Pressure Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Pressure Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "pressure". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute values in hectoPascal/LSB unit. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in hectoPascal unit. +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Pressure Sensor handles the sns_std_sensor_config +// message request for all stream enable/update requests. +// 2. If the physical sensor supports hardware FIFO then the Pressure +// Sensor uses batching_period item in sns_std_request as the requested +// batching rate to determine hardware FIFO watermark. + +// Handling stream events: +// 1. The Pressure Sensor publishes atmospheric pressure data stream events +// using the sns_std_sensor_event message. +// 2. Each stream event contains one output data field where data is +// factory calibrated and ordered as: +// data[0] = Pressure data in hPa (hectoPascal) +// 3. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 4. The Pressure Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 5. The Pressure Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and scale_factor fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. + +// Handling self-test requests: +// 1. The Pressure Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Pressure Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. +// 3. The Pressure Sensor could implement other test types. + +// Handling test events: +// 1. The Pressure Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_proximity.proto b/proprietary/vendor/etc/sensors/proto/sns_proximity.proto new file mode 100644 index 0000000..04088da --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_proximity.proto @@ -0,0 +1,152 @@ +// @file sns_proximity.proto +// +// Defines the API for Proximity Sensors. +// All Proximity Sensor drivers are required to comply with this API. +// Any new functionality for Proximity Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2019 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Proximity Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "proximity". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute is not applicable since this +// is an event sensor. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in cm unit (proximity distance). +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Proximity Sensor supports both streaming and on-change +// modes and the operating mode is configured in the Registry. +// 2. The streaming Proximity Sensor handles the sns_std_sensor_config request +// for all stream enable/update requests. +// 3. The on-change Proximity Sensor handles the +// SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG request for +// all on-change enable/update requests. +// 4. In on-change mode the Sensor uses interrupt operation and reports +// samples only for NEAR/FAR transitions. + +// Message IDs for proximity Sensor +enum sns_proximity_msgid { + option (nanopb_enumopt).long_names = false; + + // Uses message: sns_proximity_event + // Purpose: A non-recurring output data event from the proximity sensor to its client. + SNS_PROXIMITY_MSGID_SNS_PROXIMITY_EVENT = 769; + + // No payload + // Purpose: Send this message to force a recalibration + MOT_PROXIMITY_MSGID_SNS_PROXIMITY_RECAL_CONFIG = 870; + + // Uses message: mot_proximity_recal_event + // Purpose: This message is sent whenever a recalibration is complete + MOT_PROXIMITY_MSGID_SNS_PROXIMITY_RECAL_EVENT = 871; + + // Force a log dump of registers to debug a prox/als lockup + MOT_PROXIMITY_MSGID_SNS_PROXIMITY_REG_DUMP = 872; + + // To notify adsp that a new client comes from AP side + MOT_PROXIMITY_MSGID_AP_ENABLE_PROX_REQ = 873; + + // Uses message: sns_proximity_event_recurrent + // Purpose: A recurring output data event from the proximity sensor to its client. + SNS_PROXIMITY_MSGID_SNS_PROXIMITY_EVENT_RECURRENT = 1031; +} + +enum sns_proximity_event_type { + option (nanopb_enumopt).long_names = false; + + SNS_PROXIMITY_EVENT_TYPE_FAR = 0; + SNS_PROXIMITY_EVENT_TYPE_NEAR = 1; +} + +// Events types from proximity Sensor +message sns_proximity_event +{ + // Proximity NEAR/FAR output event + required sns_proximity_event_type proximity_event_type = 1 [default = SNS_PROXIMITY_EVENT_TYPE_FAR]; + + // Proimity sensor raw data + required uint32 raw_adc = 2; + + // Proximity sensor sample status + required sns_std_sensor_sample_status status = 3 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +message sns_proximity_event_recurrent +{ + // Proximity NEAR/FAR output event + required sns_proximity_event_type proximity_event_type = 1 [default = SNS_PROXIMITY_EVENT_TYPE_FAR]; + + // Proimity sensor raw data + required uint32 raw_adc = 2; + + // Proximity sensor sample status + required sns_std_sensor_sample_status status = 3 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +enum mot_proximity_recal_cause { + option (nanopb_enumopt).long_names = false; + + MOT_PROXIMITY_RECAL_CAUSE_COMMANDED = 0; + MOT_PROXIMITY_RECAL_CAUSE_STARTUP = 1; + MOT_PROXIMITY_RECAL_CAUSE_PDATA0 = 2; +} + +//Event for proximity sensor recalibration +message mot_proximity_recal_event +{ + //The reason the prox sensor was recalibrated + required mot_proximity_recal_cause proximity_recal_cause = 1 [default = MOT_PROXIMITY_RECAL_CAUSE_PDATA0]; + + //The new value for PDATA + required uint32 pdata = 2; + + //The new value for offset + required int32 offset = 3; + + //The new value for low threshold + required uint32 threshold_low = 4; + + //The new value for high threshold + required uint32 threshold_high = 5; +} + +// Handling stream events: +// 1. The Proximity Sensor publishes object proximity data stream events +// using sns_proximity_event message. +// 2. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 3. The Proximity Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is a change in hardware config of the sensor +// and contains current physical sensor config of the sensor. + +// Handling self-test requests: +// 1. The Proximity Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Proximity Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. The factory test for Proximity Sensor calibrates +// the sensor to detect an object (including light and dark colored) +// at 5 cm distance from the physical sensor. +// 3. The Proximity Sensor could implement other test types. + +// Handling test events: +// 1. The Proximity Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_psmd.proto b/proprietary/vendor/etc/sensors/proto/sns_psmd.proto new file mode 100644 index 0000000..b926657 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_psmd.proto @@ -0,0 +1,59 @@ +// @file sns_psmd.proto +// +// Defines the API for Persistent Stationary/Motion Detection Sensors. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// A persistent stationary/motion sensor reports once +// - The device is moving/not still +// - The device is detected to be still/stationary +// The period of time to monitor for motion and stationarity should be greater +// than 5 seconds, and less than 10 seconds. After reporting, conceptually +// the algorithm's state is reset, and detection begins again. +// +// Motion here refers to any mechanism in which the device is causes to be +// moved in its inertial frame. eg: Picking up the device and walking with it +// to a nearby room may trigger motion whereas keeping the device on a table +// on a smooth train moving at constant velocity may not trigger motion. +// +// Stationarity here refers to absolute stationarity. eg: device on desk. +// +// ## Persistent Stationary/Motion Detect sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "psmd" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Message IDs for Persistent Stationary/Motion Sensor +enum sns_psmd_msgid +{ + option (nanopb_enumopt).long_names = false; + + // Configuration Request + SNS_PSMD_MSGID_SNS_PSMD_CONFIG = 512; + + // Empty Event + // Indicates that the requested state has been detected + SNS_PSMD_MSGID_SNS_PSMD_EVENT = 768; +} + +// Detected states supported by the PSM Detector +enum sns_psmd_type +{ + option (nanopb_enumopt).long_names = false; + + SNS_PSMD_TYPE_STATIONARY = 0; + SNS_PSMD_TYPE_MOTION = 1; +} + +// Configuration Message +// Used to specify the PSMD configuration +message sns_psmd_config +{ + // Which detector type to enable + required sns_psmd_type type = 1; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_registry.proto b/proprietary/vendor/etc/sensors/proto/sns_registry.proto new file mode 100644 index 0000000..79acf7d --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_registry.proto @@ -0,0 +1,86 @@ +// @file sns_registry.proto +// +// Sensors Registry message definitions for internal and external clients +// +// Copyright (c) 2017,2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; + +// Registry Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "registry" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_SINGLE_OUTPUT + +// Registry Sensor message IDs: +enum sns_registry_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_REGISTRY_MSGID_SNS_REGISTRY_READ_REQ = 512; + SNS_REGISTRY_MSGID_SNS_REGISTRY_WRITE_REQ = 513; + // The following event was mistakenly given an invalid message ID + SNS_REGISTRY_MSGID_SNS_REGISTRY_READ_EVENT = 514; + SNS_REGISTRY_MSGID_SNS_REGISTRY_WRITE_EVENT = 768; +} + +message sns_registry_data +{ + message item + { + option (nanopb_msgopt).no_unions = true; + + // Item name (i.e. Only item-specific name, sans group name) + required string name = 1; + optional fixed32 version = 2; + + oneof data + { + sns_registry_data subgroup = 10; + string str = 11; + float flt = 12; + sfixed64 sint = 13; + } + } + repeated item items = 3; +} + +// All read requests will be replied with a read event +message sns_registry_read_req +{ + // Full name of the item or group to be read + required string name = 1; +} + +message sns_registry_read_event +{ + // Full name of the group which was read + required string name = 1; + + // If the requested registry group was not found, data is empty + required sns_registry_data data = 2; +} + +// All write requests will be replied with a write event +message sns_registry_write_req +{ + // Full name of the group to be written + required string name = 1; + + required sns_registry_data data = 2; +} + +// Registry write status +enum sns_registry_write_status +{ + option (nanopb_enumopt).long_names = false; + + // The registry write was successful, and the data was stored on the FS + SNS_REGISTRY_WRITE_STATUS_SUCCESS = 0; + // An unspecified error has occurred; data may be lost + SNS_REGISTRY_WRITE_STATUS_ERROR_OTHER = 1; +} + +message sns_registry_write_event +{ + required sns_registry_write_status status = 1; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_resampler.proto b/proprietary/vendor/etc/sensors/proto/sns_resampler.proto new file mode 100644 index 0000000..cd69bd9 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_resampler.proto @@ -0,0 +1,90 @@ +// @file sns_resampler.proto +// +// Defines standard message types for the Resampler +// +// Copyright (c) 2016-2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std.proto"; +import "sns_std_sensor.proto"; +import "sns_std_event_gated_sensor.proto"; + +// Resampler Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "resampler" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_STREAMING + +// Sensor output event: +// Resampler use sns_std_sensor_event for it's output event + +enum sns_resampler_msgid +{ + option (nanopb_enumopt).long_names = false; + + SNS_RESAMPLER_MSGID_SNS_RESAMPLER_CONFIG = 512; + SNS_RESAMPLER_MSGID_SNS_RESAMPLER_CONFIG_EVENT = 776; +} + +// Type of requested resampled rate +enum sns_resampler_rate +{ + option (nanopb_enumopt).long_names = false; + + // Requested resampled rate is fixed + SNS_RESAMPLER_RATE_FIXED = 0; + + // Requested resampled rate is the minimum required + SNS_RESAMPLER_RATE_MINIMUM = 1; +} + +// Resampler output quality +enum sns_resampler_quality +{ + option (nanopb_enumopt).long_names = false; + + // Resampler output is the same as input sensor data + SNS_RESAMPLER_QUALITY_CURRENT_SAMPLE = 0; + + // Resampler output is filtered down from input sensor data + SNS_RESAMPLER_QUALITY_FILTERED = 1; + + // Resampler output is interpolated and filtered down from input sensor data + SNS_RESAMPLER_QUALITY_INTERPOLATED_FILTERED = 2; + + // Resampler output is interpolated down from input sensor data + SNS_RESAMPLER_QUALITY_INTERPOLATED = 3; +} + +// Configuration Message +// Used to either request for a new configuration of the Resampler Sensor or +// alter an already existing configuration +message sns_resampler_config +{ + // UID of the Sensor to be resampled + required sns_std_suid sensor_uid = 1; + + // The requested resampled rate in Hz + required float resampled_rate = 2; + + // The requested rate type as defined in sns_resampler_rate + required sns_resampler_rate rate_type = 3; + + // Set to true to enable filtering, else false + required bool filter = 4; + + // Set to true if sensor to be resampled is event gated + optional bool event_gated = 5; + + // Number of axes of the sensor data + optional uint32 axis_cnt = 6; +} + +// Config event to inform client sample quality +// of all subsequent sns_std_sensor_event from resampler +message sns_resampler_config_event +{ + // Quality of the resampled sensor data as defined in + // sns_resampler_quality + required sns_resampler_quality quality = 1; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_rgb.proto b/proprietary/vendor/etc/sensors/proto/sns_rgb.proto new file mode 100644 index 0000000..63a63ab --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_rgb.proto @@ -0,0 +1,78 @@ +// @file sns_rgb.proto +// +// Defines the API for RGB Sensors. +// All RGB Sensor drivers are required to comply with this API. +// Any new functionality for RGB Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The RGB Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "rgb". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute values in µW/cm2/LSB unit. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in µW/cm2 unit. +// 4. See sns_std_sensor.proto for other attributes. + + +// Handling stream requests: +// 1. The RGB Sensor supports both streaming and on-change +// modes and the operating mode is configured in the Registry. +// 2. The streaming RGB Sensor handles the sns_std_sensor_config +// request for all stream enable/update requests. +// 3. The on-change RGB Sensor handles the +// SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG request for +// all stream enable/update requests. +// 4. In on-change mode the Sensor uses interrupt operation and reports +// samples for only significant change in R/G/B/clear channel irradiance. +// Example: +/- 10% change. + +// Handling stream events: +// 1. The RGB Sensor publishes color data in ambient light using the +// sns_std_sensor_event message. +// 2. Each stream event contains six output data fields where data is +// factory calibrated and ordered as: +// data[0] = Red channel irradiance in µW/cm2 +// data[1] = Green channel irradiance in µW/cm2 +// data[2] = Blue channel irradiance in µW/cm2 +// data[3] = Clear channel irradiance in µW/cm2 +// data[4] = Color Temperature in Kelvin +// data[5] = raw clear channel ADC value +// 3. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 4. The RGB Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 5. The RGB Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and scale_factor fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. + +// Handling self-test requests: +// 1. The RGB Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The RGB Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. The factory test for RGB Sensor calibrates +// the sensor such that it's output is comparable to a standard Chromemeter +// output in any lighting condition. +// 3. The RGB Sensor could implement other test types. + +// Handling test events: +// 1. The RGB Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_rmd.proto b/proprietary/vendor/etc/sensors/proto/sns_rmd.proto new file mode 100644 index 0000000..052aeee --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_rmd.proto @@ -0,0 +1,51 @@ + +// @file sns_rmd.proto +// +// Defines message types for the Absolute Motion Detector (RMD) Sensor. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// RMD calculates motion and stationary states. RMD will initially start in an +// unknown state, and later transition to motion or stationary. + +// RMD Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "rmd" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for RMD Sensor +enum sns_rmd_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_RMD_MSGID_SNS_RMD_EVENT = 772; +} + +enum sns_rmd_event_type +{ + option (nanopb_enumopt).long_names = false; + + SNS_RMD_EVENT_TYPE_UNKNOWN = 0; + SNS_RMD_EVENT_TYPE_STATIONARY = 1; + SNS_RMD_EVENT_TYPE_MOTION = 2; +} + +message sns_rmd_event +{ + // RMD motion state + required sns_rmd_event_type state = 1 [default = SNS_RMD_EVENT_TYPE_UNKNOWN]; +} + +// Stream events: +// +// The sns_rmd_event message is used to publish updated state +// +// RMD does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_rotv.proto b/proprietary/vendor/etc/sensors/proto/sns_rotv.proto new file mode 100644 index 0000000..abe0ff8 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_rotv.proto @@ -0,0 +1,53 @@ +// @file sns_rotv.proto +// +// Defines the API for Rotation Vector sensors. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "sns_std_sensor.proto"; + +// A ROTV sensor reports the orientation of the device relative to the +// East-North-Up coordinates frame. It is obtained by integration of +// accelerometer, gyroscope, and magnetometer readings. +// +// ## ROTV sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "rotv" +// +// ## Request Message: sns_std_sensor_config +// sns_std_sensor_config::sample_rate is used to specify the sampling rate (Hz) +// of the ROTV sensor. Sensor will generate data events at this rate. +// +// ## Event Message: sns_std_sensor_event +// Output of the ROTV sensor will be populated in sns_std_sensor_event +// +// The East-North-Up coordinate system is defined as a direct orthonormal +// basis where: +// - X points east and is tangential to the ground. +// - Y points north and is tangential to the ground. +// - Z points towards the sky and is perpendicular to the ground. +// +// The orientation is represented by the rotation necessary to align +// the East-North-Up coordinates with the device's coordinates. That is, +// applying the rotation to the world frame (X,Y,Z) would align them with +// the device coordinates (x,y,z). +// +// The rotation can be seen as rotating the device by an angle theta around an +// axis rot_axis to go from the reference device orientation to the current +// device orientation. The rotation is encoded as the four unitless x, y, z, w +// components of a unit quaternion: +// sns_std_sensor_event::data[0] = rot_axis.x*sin(theta/2) +// sns_std_sensor_event::data[1] = rot_axis.y*sin(theta/2) +// sns_std_sensor_event::data[2] = rot_axis.z*sin(theta/2) +// sns_std_sensor_event::data[3] = cos(theta/2) +// +// Where: +// - the x, y and z fields of rot_axis are the East-North-Up coordinates +// of a unit length vector representing the rotation axis +// - theta is the rotation angle +// +// sns_std_sensor_event::status specifies the reliability of the sample value +// value is of type sns_std_sensor_sample_status. see sns_std_sensor.proto for +// details. diff --git a/proprietary/vendor/etc/sensors/proto/sns_sar.proto b/proprietary/vendor/etc/sensors/proto/sns_sar.proto new file mode 100644 index 0000000..c832b4c --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_sar.proto @@ -0,0 +1,117 @@ +// @file sns_sar.proto +// +// Defines the API for Specific Absorption Rate (SAR) Sensors. +// SAR sensors typically detect human object proximity using change in capacitance +// levels of copper touch pads/buttons. +// All SAR Sensor drivers are required to comply with this API. +// Any new functionality for SAR Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2018,2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The SAR Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "sar". +// Each SAR sensor (example individual capacitive button) shall be published +// as an independent sensor with a unique Sensor UID. +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute is not applicable since this +// is an event sensor. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in cm unit (proximity distance). +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream and on-change requests: +// 1. The SAR sensor can support both streaming and on-change +// modes, and the operating mode is configured in the Registry. +// 2. In streaming mode, the SAR sensor handles the sns_std_sensor_config +// client requests, for all stream enable/update request types. +// 3. In on-change mode, the SAR sensor handles the +// SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG client requests, +// for all on-change enable/update request types. +// In on-change mode, the SAR sensor reports samples only for +// NEAR/FAR transitions triggered by the detection of an object +// (typically human) in proximity to the SAR sensor. +// Also for this mode, the SAR sensor publishes an +// initial data event for each new, on-change client request. + +// Message IDs for SAR Sensor +enum sns_sar_msgid { + option (nanopb_enumopt).long_names = false; + + // Uses message: sns_sar_event + // Purpose: A non-recurrent output data event from the SAR sensor to its client. + SNS_SAR_MSGID_SNS_SAR_EVENT = 769; + + // Uses message: sns_sar_event_recurrent + // Purpose: A recurring output data event from the SAR sensor to its client. + SNS_SAR_MSGID_SNS_SAR_EVENT_RECURRENT = 1031; +} + +enum sns_sar_event_type { + option (nanopb_enumopt).long_names = false; + + SNS_SAR_EVENT_TYPE_FAR = 0; + SNS_SAR_EVENT_TYPE_NEAR = 1; +} + +// Events types from SAR Sensor +message sns_sar_event +{ + // SAR NEAR/FAR output event + required sns_sar_event_type sar_event_type = 1 [default = SNS_SAR_EVENT_TYPE_FAR]; + + // SAR sensor raw data. + // Format of this data is driver specific. + optional bytes additional_sar_data = 2; + + // SAR sensor sample status + required sns_std_sensor_sample_status status = 3 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +message sns_sar_event_recurrent +{ + // SAR NEAR/FAR output event + required sns_sar_event_type sar_event_type = 1 [default = SNS_SAR_EVENT_TYPE_FAR]; + + // SAR sensor raw data. + // Format of this data is driver specific. + optional bytes additional_sar_data = 2; + + // SAR sensor sample status + required sns_std_sensor_sample_status status = 3 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +// Handling stream events: +// 1. The SAR Sensor publishes human object proximity data events using sns_sar_event message. +// 2. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 3. The SAR Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. + +// Handling self-test requests: +// 1. The SAR Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The SAR Sensor may implement SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. +// 3. The SAR Sensor could implement other test types. + +// Handling test events: +// 1. The SAR Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_sensor_temperature.proto b/proprietary/vendor/etc/sensors/proto/sns_sensor_temperature.proto new file mode 100644 index 0000000..e614211 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_sensor_temperature.proto @@ -0,0 +1,66 @@ +// @file sns_sensor_temperature.proto +// +// Defines the API for physical Sensor Temperature Sensors. +// All Sensor Temperature Sensor drivers are required to comply with this API. +// Any new functionality for Sensor Temperature Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Sensor Temperature Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "sensor_temperature". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute value in degrees Celsius/LSB. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in degrees Celsius unit. +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Sensor Temperature Sensor handles the sns_std_sensor_config +// message request for all stream enable/update requests. +// 2. If the physical sensor supports hardware FIFO then the Sensor Temperature +// Sensor uses batching_period item in sns_std_request as the requested +// batching rate to determine hardware FIFO watermark. + +// Handling stream events: +// 1. The Sensor Temperature Sensor publishes physical sensor temperature data +// stream events using the sns_std_sensor_event message. +// 2. Each stream event contains one output data field where data is +// factory calibrated and ordered as: +// data[0] = physical Sensor Temperature data in degrees Celsius +// 3. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 4. The Sensor Temperature Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 5. The Sensor Temperature Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and scale_factor fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. + + +// Handling self-test requests: +// 1. The Sensor Temperature Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Sensor Temperature Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. +// 3. The Sensor Temperature Sensor could implement other test types. + +// Handling test events: +// 1. The Sensor Temperature Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_sig_motion.proto b/proprietary/vendor/etc/sensors/proto/sns_sig_motion.proto new file mode 100644 index 0000000..d055d99 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_sig_motion.proto @@ -0,0 +1,32 @@ +// @file sns_sig_motion.proto +// +// Defines the API for Significant Motion Detection Sensors. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// A significant motion sensor reports once if "significant motion" +// is detected. +// +// ## Significant Motion sensor attributes: +// SNS_STD_SENSOR_ATTRID_TYPE is "sig_motion" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_SINGLE_OUTPUT +// +// ## Request Message: SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG +// No configuration is available for this sensor. +// +// ## Event Message: SNS_SIG_MOTION_MSGID_SNS_SIG_MOTION_EVENT +// Reported upon new detection of significant motion. + +// Message IDs for Significant Motion Detect Sensor +enum sns_sig_motion_msgid { + option (nanopb_enumopt).long_names = false; + + // Empty Message + SNS_SIG_MOTION_MSGID_SNS_SIG_MOTION_EVENT = 772; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_std.proto b/proprietary/vendor/etc/sensors/proto/sns_std.proto new file mode 100644 index 0000000..b7a0630 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_std.proto @@ -0,0 +1,145 @@ +// @file sns_std.proto +// +// Defines standard messages used across multiple Sensor API definitions +// +// Copyright (c) 2016-2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import public "sns_std_type.proto"; + +// Framework-defined message IDs: +enum sns_std_msgid { + option (nanopb_enumopt).long_names = false; + + // Query a Sensor for all attributes + // @event sns_std_error_event + SNS_STD_MSGID_SNS_STD_ATTR_REQ = 1; + + // Flush a Sensor. + // When a sensor receives a flush request it publishes any unpublished + // samples. The sensor always publishes a SNS_STD_MSGID_SNS_STD_FLUSH_EVENT + // event to indicate completion of a flush request. + // All Sensors handle this flush request message. See special case handling below + // Empty Message + // @event sns_pb_flush_event + SNS_STD_MSGID_SNS_STD_FLUSH_REQ = 2; + + // NOTE: 10 - 20 Are reserved for Client Manager + // NOTE: 120-127 Are reserved + + // All published attributes for a Sensor + SNS_STD_MSGID_SNS_STD_ATTR_EVENT = 128; + + // Indicates no further events will be generated in response to a flush req. + // Empty Message + SNS_STD_MSGID_SNS_STD_FLUSH_EVENT = 129; + + // Indicates an error has occurred + SNS_STD_MSGID_SNS_STD_ERROR_EVENT = 130; + + // NOTE: 250-255 Are reserved +} +// Special case handling for flush request +// 1. No prior instance has been created, and a flush request is received, i.e. flush request is sent before an enable req +// Unexpected sequence, driver can ignore the flush request, and set_client_request returns NULL +// 2. When enable request is sent and while that is still ongoing ( phy cfg event not published yet) and a flush request is received, expected sequence below: +// a) sensor driver gets sns_std_sensor_config +// b) sensor driver gets sns_std_flush_req +// c) sensor driver sends sns_std_sensor_physical_config_event +// d) sensor driver sends sns_std_flush_event +// 3. When a previous flush request is still ongoing and another flush request comes +// a) sensor driver receives sns_std_flush_req +// b) sensor driver receives another sns_std_flush_req while first flush request is being handled, but no flush event is sent yet +// c) sensor driver can ignore the 2nd flush request +// d) sensor driver finishes processing the first flush request and sends sns_std_flush_event +// #1 and # 3 applies to algorithm as well. + + +// Base message payload, from which all other Request payloads must extend +// The message will be delivered decoded within the Sensor API +message sns_std_request { + message batch_spec { + // Logically a timer will be registered for this many microseconds. + // All events generated since the last timer expiration will be saved + // until the next timer has fired. This period is interpreted as a maximum + // period specified by the client; events may be delivered to client at a + // faster rate (smaller batch period). + // A batch period of 0 indicates that no batching shall occur. + required uint32 batch_period = 1; + + // Sensor supporting Data Acquisition Engine shall support flush_period. + // Sensor shall not drop data that is more recent than flush_period. + // Sensor may drop data that is older than the flush_period. + // Effective flush period may be smaller due to system constraints, + // or larger in the case of a concurrent client with a larger value. + // flush_period, if set, should be greater than or equal to batch_period. + // flush_period value defaults to UINT32_MAX; units in microseconds. + // If batch_period > 0 and flush period not specified, + // then flush_period = batch_period. + optional uint32 flush_period = 2; + + // If flush_only = true, the sensor should only send data to the client + // on receiving a flush request or if the sensor cannot accumulate flush + // period worth of data. + optional bool flush_only = 3 [default = false]; + + // If max_batch = true for all requests, the sensor should operate at + // maximum batching capacity. If a request has both max_batch = true + // and flush_only = true, flush_only takes precedence. + optional bool max_batch = 4 [default = false]; + } + // Batching is disabled by default + optional batch_spec batching = 1; + + // Dynamic length payload, containing the actual data/configuration request + // This payload will need to be decoded separately, using the Sensor-specific + // header file. If the request does not contain any message body then this + // field is not present. + optional bytes payload = 2; + + // Set to true if a client intends to be a passive client. Else it is an + // active client request. Absence of this field shall be treated as an active + // request. + // If all requests to the sensor are passive then it shall be in off + // state and stop streaming. + // If the sensor has at least one active request then it shall be enabled + // and configured according to all active and passive requests. + // When all active clients are flush_only then passive clients are also treated + // as flush_only. + // When all active clients are event gated then passive clients are also treated + // as event gated. + // delivery_type field in passive requests shall be configured as + // SNS_CLIENT_DELIVERY_NO_WAKEUP. + // Actively enabling one sensor shall not lead to enabling of another + // sensor having only passive requests. For example: enabling gyro shall not + // lead to enabling of sensor_temperature, and vice versa. + optional bool is_passive = 3 [default = false]; + +} + +// Query a Sensor for its list of attributes +message sns_std_attr_req { + // Register for updates when the attributes of a Sensor change + // This option is not presently supported + optional bool register_updates = 2; +} + +// Contains all Sensor attributes; sent in response to an sns_std_attr_req, +// or upon an attribute change to a registered Sensor +message sns_std_attr_event { + repeated sns_std_attr attributes = 1; +} + +// An Error Event generated by a Sensor/Instance or the Framework +message sns_std_error_event { + // SNS_STD_ERROR_NOT_AVAILABLE - Transitory error in the Sensor; some data + // may have been lost or dropped, but streaming should resume. + // SNS_STD_ERROR_INVALID_STATE - Catastrophic error in the Sensor; do not + // expect any further data. Client may try sending enable-request again. + // SNS_STD_ERROR_NOT_SUPPORTED - Sensor received an unsupported request; or a + // supported request at an unexpected time. Client may not expect any + // further data and may try sending valid request. + required sns_std_error error = 1; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_std_event_gated_sensor.proto b/proprietary/vendor/etc/sensors/proto/sns_std_event_gated_sensor.proto new file mode 100644 index 0000000..7e49cb9 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_std_event_gated_sensor.proto @@ -0,0 +1,45 @@ +// @file sns_std_event_gated_sensor.proto +// +// Defines standard message types for Sensors with output streams that can be +// gated on an event from another Sensor. +// Example: "accel" Sensor can be gated by motion detect event published by +// the "motion_detect" Sensor. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +enum sns_std_event_gated_sensor_msgid +{ + option (nanopb_enumopt).long_names = false; + + // Message ID to send a gated request to a Sensor. + // Note that the client is responsible to send separate + // requests to the Sensor that provides the gating event. + SNS_STD_EVENT_GATED_SENSOR_MSGID_SNS_STD_SENSOR_CONFIG = 518; + + // An event gated Sensors uses this event message ID to indicate to it's + // clients that the gated stream is converted to a non-gated stream. + // This typically happens when the gating event occurs. + // Example: When "accel" is gated on "motion_detect" and if the + // motion detect interrupt fires then the "accel" Sensor publishes + // this event to it's clients before the accel data stream starts. + SNS_STD_EVENT_GATED_SENSOR_MSGID_GATED_REQ_CONVERTED_TO_NON_GATED = 772; +} + +// Request and Event messages: +// 1. An enable request to an event gated sensor uses message +// sns_std_sensor_config with message ID +// SNS_STD_EVENT_GATED_SENSOR_MSGID_SNS_STD_SENSOR_CONFIG. +// 2. An event gated sensor publishes an output event to it's clients when +// the gated request is converted to a non-gated request. It uses event +// message ID SNS_STD_EVENT_GATED_SENSOR_MSGID_GATED_REQ_CONVERTED_TO_NON_GATED +// with no message payload. +// 3. An output data event from an event gated sensor uses message +// sns_std_sensor_event. See sns_std_sensor.proto and sensor-specific +// proto file for details. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_std_sensor.proto b/proprietary/vendor/etc/sensors/proto/sns_std_sensor.proto new file mode 100644 index 0000000..771354e --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_std_sensor.proto @@ -0,0 +1,412 @@ +// @file sns_std_sensor.proto +// +// Defines standard message types for all Sensors. All physical Sensors are +// required to implement this API as is or derive from it. For all other +// Sensors, these messages are highly recommended. That being said, Sensor +// developers may choose to define Sensor-specific message API for any +// new/Sensor-specific functionality. +// +// Copyright (c) 2016-2021 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; + +enum sns_std_sensor_msgid +{ + option (nanopb_enumopt).long_names = false; + + // Uses message: sns_std_sensor_config + // Purpose: + // 1. A stream request from a client to a sensor. + // 2. A config/ack event from a sensor to the client. + SNS_STD_SENSOR_MSGID_SNS_STD_SENSOR_CONFIG = 513; + + // Does not use any message body. + // Purpose: + // 1. An enable request from a client to an on-change sensor. + // Subsequent request from same client will be treated as NOP + // 2. A config/ack event from an on-change sensor to the client. + // Requirements for on-change sensors are listed in a section below. + SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG = 514; + + // Uses message: sns_std_sensor_physical_config_event + // Purpose: A configuration event from a Physical Sensor (streaming and event) + // to the client. + // Requirements for physical configuration events are listed in a section + // below. + SNS_STD_SENSOR_MSGID_SNS_STD_SENSOR_PHYSICAL_CONFIG_EVENT = 768; + + // Uses message: sns_std_sensor_event + // Purpose: A data event from a Sensor. + SNS_STD_SENSOR_MSGID_SNS_STD_SENSOR_EVENT = 1025; +} + +// Status for each sensor sample +enum sns_std_sensor_sample_status +{ + option (nanopb_enumopt).long_names = false; + + // Sample is unreliable. + SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE = 0; + + // Sample is low accuracy. + SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_LOW = 1; + + // Sample is medium accuracy. + SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_MEDIUM = 2; + + // Sample is high accuracy. + SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH = 3; +} + +// Attribute IDs available for use by Sensors +// Some are marked as REQUIRED, and must be published by every Sensor. Others +// are OPTIONAL, and may be only necessary for physical Sensors. +// +// Each Sensor may define their own custom attributes, using the form: +// _attr_id. Attribute IDs have the following reserved ranges: +// 0-511 : Held for sns_std_sensor_attr_id +// 512-1023 : Reserved for internal QTI use +// 1024-1535 : Available for use by Sensor developers +enum sns_std_sensor_attr_id +{ + option (nanopb_enumopt).long_names = false; + + // REQUIRED + // String + // Human-readable sensor name + SNS_STD_SENSOR_ATTRID_NAME = 0; + + // REQUIRED + // String + // Human-readable vendor name + SNS_STD_SENSOR_ATTRID_VENDOR = 1; + + // REQUIRED + // String + // Data Type used by this Sensor + SNS_STD_SENSOR_ATTRID_TYPE = 2; + + // REQUIRED + // Boolean + // Whether this Sensor is available for clients + SNS_STD_SENSOR_ATTRID_AVAILABLE = 3; + + // REQUIRED + // Integer 64-bit version number represented as major[31:16].minor[15:8].revision[7:0], [63:32] be 0 + // Example in hexadecimal: major:0x0002 minor:0x00 revision:0x36 #define DRIVER_VERSION 0x00020036 + // Sensor version + SNS_STD_SENSOR_ATTRID_VERSION = 4; + + // REQUIRED + // [String] + // .proto files specifying the incoming request and outgoing event messages + SNS_STD_SENSOR_ATTRID_API = 5; + + // OPTIONAL + // [Float] + // Supported sample rates in Hz + SNS_STD_SENSOR_ATTRID_RATES = 6; + + // OPTIONAL + // [Float] + // Supported resolutions + SNS_STD_SENSOR_ATTRID_RESOLUTIONS = 7; + + // OPTIONAL + // Integer + // Supported FIFO depth in number of samples + SNS_STD_SENSOR_ATTRID_FIFO_SIZE = 8; + + // OPTIONAL + // [Integer] + // Active currents in uA for all sns_attr_op_modes. Length of the array + // of active currents must match the length of the array of operation modes. + SNS_STD_SENSOR_ATTRID_ACTIVE_CURRENT = 9; + + // OPTIONAL + // Integer + // Inactive current in uA + SNS_STD_SENSOR_ATTRID_SLEEP_CURRENT = 10; + + // OPTIONAL + // [{float,float}] + // Supported operating ranges + SNS_STD_SENSOR_ATTRID_RANGES = 11; + + // OPTIONAL + // String + // Operating Modes ("LPM", "HIGH_PERF", "NORMAL", "OFF") + SNS_STD_SENSOR_ATTRID_OP_MODES = 12; + + // OPTIONAL + // Boolean + // Whether the Sensor supports Data Ready Interrupt (DRI) or IBI + // (In Band Interrupt). + SNS_STD_SENSOR_ATTRID_DRI = 13; + + // OPTIONAL + // Boolean + // Whether a Sensor support synchronized streaming. + SNS_STD_SENSOR_ATTRID_STREAM_SYNC = 14; + + // OPTIONAL + // Integer + // Encoded message size of the data event generated most often by the Sensor + SNS_STD_SENSOR_ATTRID_EVENT_SIZE = 15; + + // REQUIRED + // Integer: sns_std_sensor_stream_type + // Streaming Type + SNS_STD_SENSOR_ATTRID_STREAM_TYPE = 16; + + // OPTIONAL + // Boolean + // Whether this Sensor is dynamic (connected/disconnected at runtime) + SNS_STD_SENSOR_ATTRID_DYNAMIC = 17; + + // OPTIONAL + // Integer + // When multiple Sensors of the same hardware exist, this attribute differentiates. + SNS_STD_SENSOR_ATTRID_HW_ID = 18; + + // OPTIONAL + // Integer: sns_std_sensor_rigid_body_type + // The rigid body on which the Sensor is placed. + SNS_STD_SENSOR_ATTRID_RIGID_BODY = 19; + + // OPTIONAL + // float[12] + // Location and orientation of sensor element in the device frame. + SNS_STD_SENSOR_ATTRID_PLACEMENT = 20; + + // OPTIONAL + // Boolean + // Boolean: True for a physical sensor + SNS_STD_SENSOR_ATTRID_PHYSICAL_SENSOR = 21; + + // OPTIONAL + // [Integer] + // List of supported self-test types from sns_physical_sensor_test_type. + SNS_STD_SENSOR_ATTRID_PHYSICAL_SENSOR_TESTS = 22; + + // OPTIONAL + // Float + // Sensors chosen resolution in it's engineering units. + SNS_STD_SENSOR_ATTRID_SELECTED_RESOLUTION = 23; + + // OPTIONAL + // float[2] + // Sensors chosen {min, max} range in it's engineering units. + SNS_STD_SENSOR_ATTRID_SELECTED_RANGE = 24; + + // OPTIONAL + // [float] + // List of additional sample rates for low latency clients in Hz. + // These are additional rates for low latency clients extended from list + // of rates published in attribute SNS_STD_SENSOR_ATTRID_RATES. + // This is supported for internal clients only. External clients shall not use this API. + SNS_STD_SENSOR_ATTRID_ADDITIONAL_LOW_LATENCY_RATES = 25; + + // OPTIONAL + // Boolean + // Boolean: True if the sensor supports passive request, False otherwise. + // If this attribute is not supported, then the sensor does not support passive requests. + // Sensors that do not support passive requests, will service all requests as active requests. + SNS_STD_SENSOR_ATTRID_PASSIVE_REQUEST = 26; + + // OPTIONAL + // float + // direct channel supported max sample rate in Hz + SNS_STD_SENSOR_ATTRID_DIRECT_CHANNEL_MAX_SAMPLE_RATE = 27; + + // OPTIONAL + // float + // direct channel supported max report rate in Hz + SNS_STD_SENSOR_ATTRID_DIRECT_CHANNEL_MAX_REPORT_RATE = 28; +} + +// Sensor stream configuration request +// or configuration change message +message sns_std_sensor_config +{ + // Sample rate in Hz. + required float sample_rate = 1; +} + +// Sensor data event +message sns_std_sensor_event +{ + // Output data field for all Sensor. + repeated float data = 1; + + // Event sample status. + required sns_std_sensor_sample_status status = 2 [default = SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE]; +} + +// Stream types +enum sns_std_sensor_stream_type +{ + option (nanopb_enumopt).long_names = false; + + // Used for Sensors that report data periodically. + // Example: accel, gyro, mag + SNS_STD_SENSOR_STREAM_TYPE_STREAMING = 0; + + // Used for Sensors that report data only on change in value. + // Example: proximity, hall + SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE = 1; + + // Used for Sensors that have a single data event in reponse to a request. + // Example: SUID, motion detect + SNS_STD_SENSOR_STREAM_TYPE_SINGLE_OUTPUT = 2; +} + +// Rigid body types +enum sns_std_sensor_rigid_body_type +{ + option (nanopb_enumopt).long_names = false; + + // Used for a Sensor mounted on the same rigid body as the display. + SNS_STD_SENSOR_RIGID_BODY_TYPE_DISPLAY = 0; + + // Used for a Sensor mounted on the same rigid body as a keyboard. + SNS_STD_SENSOR_RIGID_BODY_TYPE_KEYBOARD = 1; + + // Used for a Sensor that is mounted on an external device. + SNS_STD_SENSOR_RIGID_BODY_TYPE_EXTERNAL = 2; +} + +// Sensor stream configuration event +message sns_std_sensor_config_event +{ + // Current sample rate in Hz + required float sample_rate = 1; +} + +// Physical sensor stream configuration. This message reflects the current +// configuration of the physical sensor. +message sns_std_sensor_physical_config_event +{ + // Current sample rate in Hz for streaming sensors only, 0 if sensor is disabled + // ( ex: when event gated or in passive mode and not streaming ) + // Note: if stream will be synchronized via S4S or I3C, this is the sample + // rate after synchronization is complete. + optional float sample_rate = 1; + + // Current hardware water mark setting. 1 if FIFO not in use. + optional uint32 water_mark = 2; + + // Sensor sample value min and max range + repeated float range = 3 [(nanopb).max_count = 2]; + + // Sensor sample value Resolution + optional float resolution = 4; + + // Sensor operation mode + // If all requests to the sensor are passive then it shall use + // operating_mode = "OFF" + optional string operation_mode = 5; + + // Sensor active current in uA + optional uint32 active_current = 6; + + // Sensor streaming is synchronized via methods like S4S and/or I3C. + // Note: if the stream is not yet synchronized, this field should be + // false, and an additional config event sent with stream_is_synchronous + // set to true once the clocks have been synchronized. + optional bool stream_is_synchronous = 7; + + // Sensor has enabled Data Ready Interrupt (DRI) or In Band Interrupt (IBI) + optional bool dri_enabled = 8; + + // Current DAE water mark setting. 0 if non-DAE sensor. + optional uint32 DAE_watermark = 9; + + // The sync anchor is only valid for synchronized sensors. + // If used, "stream_is_synchronous" should eventually be set to true when the clocks are synchronized. + // It is a timestamp of a future (or past) sns_std_sensor_event. + // This may be used by clients to determine the synchronized timeline before it is synchronized. + optional uint64 sync_ts_anchor = 10; +} + +// Attribute requirements: +// The Physical Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_AVAILABLE attribute value (bool) as true when it's dependencies +// are met and the hardware is present and responsive. +// 2. SNS_STD_SENSOR_ATTRID_NAME attribute value (string) as the name of the sensor model. +// 3. SNS_STD_SENSOR_ATTRID_VENDOR attribute value (string) as the name of the sensor vendor. +// 4. SNS_STD_SENSOR_ATTRID_VERSION attribute value (decimal) as the version of the driver. +// 5. SNS_STD_SENSOR_ATTRID_RATES attribute as a float array of supported sample rates in Hz +// for streaming sensors. On-change sensors publish the highest rate of value change. +// 6. SNS_STD_SENSOR_ATTRID_FIFO_SIZE attribute value (decimal) as the maximum FIFO depth in +// number of sensor samples available to it when enabled standalone. +// The value can be zero if FIFO is not supported. +// 7. SNS_STD_SENSOR_ATTRID_ACTIVE_CURRENT attribute as an integer array representing active +// currents in uA corresponding to the sns_attr_op_modes attribute. +// 8. SNS_STD_SENSOR_ATTRID_SLEEP_CURRENT attribute value (float) as the current in uA when +// the sensor is in power down mode. +// 9. SNS_STD_SENSOR_ATTRID_OP_MODES attribute value as an array of string values +// representing different hardware operating modes. +// 10. SNS_STD_SENSOR_ATTRID_DRI attribute value (bool) as true when it supports +// interrupt based streaming else false when polling. +// The source of data ready interrupt (DRI) could be completion of measurement +// cycle, FIFO water mark (if sns_attr_fifo_size value is greater than 0), +// threshold, etc. +// If the sensor is capable of streaming in both polling and DRI modes then +// it publishes separate Sensors for each mode such that the one with DRI +// publishes SNS_STD_SENSOR_ATTRID_DRI value as true and the one with polling +// publishes SNS_STD_SENSOR_ATTRID_DRI as false. +// 11. SNS_STD_SENSOR_ATTRID_STREAM_SYNC attribute value (bool) as true when it +// it supports a synchronous streaming mechanism like S4S and/or I3C. +// 12. SNS_STD_SENSOR_ATTRID_EVENT_SIZE attribute value (decimal) as number of bytes in the +// output data event for the Sensor. +// 13. SNS_STD_SENSOR_ATTRID_STREAM_TYPE attribute value (sns_std_sensor_stream_type) as the +// supported stream type. +// 14. SNS_STD_SENSOR_ATTRID_DYNAMIC attribute value (bool) to indicate whether the sensor +// can be added at runtime. +// 15. SNS_STD_SENSOR_ATTRID_HW_ID attribute value (string) to uniquely identify multiple +// sensor hardware of the same model on a platform. +// 16. SNS_STD_SENSOR_ATTRID_RIGID_BODY attribute value (sns_std_sensor_rigid_body_type) as the rigid +// body on which the sensor is mounted. +// 17. SNS_STD_SENSOR_ATTRID_PLACEMENT attribute value as the location and orientation of +// the sensor hardware. +// 18. SNS_STD_SENSOR_ATTRID_PHYSICAL_SENSOR attribute value (bool) to indicate if the sensor is +// a physical sensor +// 19. SNS_STD_SENSOR_ATTRID_PHYSICAL_SENSOR_TESTS attribute value as array of supported +// sns_physical_sensor_test_type test types. +// 20. SNS_STD_SENSOR_ATTRID_SELECTED_RESOLUTION attribute value chosen from the +// SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute array. +// 21. SNS_STD_SENSOR_ATTRID_SELECTED_RANGE attribute value chosen from the +// SNS_STD_SENSOR_ATTRID_RANGES array. +// 22. SNS_STD_SENSOR_ATTRID_ADDITIONAL_LOW_LATENCY_RATES attribute as a float array of supported +// sample rates in Hz additional to rates in SNS_STD_SENSOR_ATTRID_RATES, this is only for low +// latency clients like direct report mode. +// See sensor specific .proto files for sensor specific attribute information. + +// Recommendation for device drivers to select configuration: +// 1. Choose fastest sample_rate among all client requests. +// 2. Choose fastest batch rate (using batch_period) among all client requests. For streaming clients, +// treat batch rate equal to requested sample rate for that request. +// 3. If HW FIFO is supported then: +// a. If all requests are max_batch then the driver configures highest FIFO watermark. +// If DAE is supported, the DAE watermark should be INT_MAX. +// b. Else FIFO watermark is determined based on sample_rate from #1 and batch rate from #2. + +// Requirements for on-change sensors: +// 1. Timestamp in data events. When a second (or subsequent) client request +// is processed, by a given sensor, an initial data event must be generated. +// The timestamp in this event must be equal to the timestamp of the most +// recent state transition. The timestamp of the last occurring state +// transition can be latched (e.g. in a state structure), per on-change +// sensor SUID. + +// Requirements for physical configuration events: +// 1. Timestamp in physical configuration events. When a second (or subsequent) +// client request is processed, by a given sensor, a physical configuration +// event must be generated. The timestamp, in the physical configuration +// event, must be equal to the timestamp of the most recent physical +// configuration change. The timestamp of the last occurring physical +// configuration change can be latched (e.g. in a state structure). diff --git a/proprietary/vendor/etc/sensors/proto/sns_std_type.proto b/proprietary/vendor/etc/sensors/proto/sns_std_type.proto new file mode 100644 index 0000000..0438235 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_std_type.proto @@ -0,0 +1,79 @@ +// @file sns_std_type.proto +// +// Defines standard data types used across multiple Sensor API definitions +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; + +// Represents an unique Sensor +message sns_std_suid { + required fixed64 suid_low = 1; + required fixed64 suid_high = 2; +} + +// Represents an attribute value +// Attribute values may be a single value, array of simple values, or +// an array of complex tuples +message sns_std_attr_value { + // "data" submessage required to support recursion + message data { + option (nanopb_msgopt).no_unions = true; + oneof value { + sns_std_attr_value subtype = 1; + string str = 2; + float flt = 3; + sfixed64 sint = 4; + bool boolean = 5; + } + } + repeated data values = 1; +} + +// An individual attribute from a Sensor +message sns_std_attr { + // A standard list of attributes is available within sns_std_sensor_attr_id + // Additional attributes may be defined by sensors, using the format: + // _ATTRID_ (e.g. SNS_ACCEL_ATTRID_ODR) + // Additional IDs must fall within the range of 1024-2047 + required int32 attr_id = 1; + // Attribute value + required sns_std_attr_value value = 2; +} + +// Error codes +enum sns_std_error { + option (nanopb_enumopt).long_names = false; + + /* No error occurred; success. */ + SNS_STD_ERROR_NO_ERROR = 0; + /* Unfixable or internal error occurred. */ + SNS_STD_ERROR_FAILED = 1; + /* This API is not supported or is not implemented. */ + SNS_STD_ERROR_NOT_SUPPORTED = 2; + /* Message contains invalid data type, + * e.g., unknown message ID, unknown registry group, or unexpected + * Sensor UID. */ + SNS_STD_ERROR_INVALID_TYPE = 3; + /* Catastrophic error; expect no further data */ + SNS_STD_ERROR_INVALID_STATE = 4; + /* One or more argument values were outside of the valid range */ + SNS_STD_ERROR_INVALID_VALUE = 5; + /* This operation is not available at this time */ + SNS_STD_ERROR_NOT_AVAILABLE = 6; + /* This action was rejected due to the current policy settings */ + SNS_STD_ERROR_POLICY = 7; +} + +//The enum contains all the processor types supported. +enum sns_std_client_processor { + option (nanopb_enumopt).long_names = false; + + SNS_STD_CLIENT_PROCESSOR_SSC = 0; + SNS_STD_CLIENT_PROCESSOR_APSS = 1; + SNS_STD_CLIENT_PROCESSOR_ADSP = 2; + SNS_STD_CLIENT_PROCESSOR_MDSP = 3; + SNS_STD_CLIENT_PROCESSOR_CDSP = 4; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_step_detect.proto b/proprietary/vendor/etc/sensors/proto/sns_step_detect.proto new file mode 100644 index 0000000..e5fa164 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_step_detect.proto @@ -0,0 +1,38 @@ +// @file sns_step_detect.proto +// +// Defines message types for the Step Detect Sensor. +// +// Copyright (c) 2019 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// The Step Detect Sensor detects steps taken by the user +// +// The Step Detect event is generated when the user takes a step. +// All clients to Step Detect get the same step detect event. +// The timestamp of the event indicates the time of the latest detected step. + +// Step Detect Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "step_detect" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Step Detect Sensor +enum sns_step_detect_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_STEP_DETECT_MSGID_SNS_STEP_DETECT_EVENT = 1029; +} + +// Stream events: +// +// An event with SNS_STEP_DETECT_MSGID_SNS_STEP_DETECT_EVENT as the message id +// is used to publish a step detect event +// +// Step detect sensor does not publish configuration events. \ No newline at end of file diff --git a/proprietary/vendor/etc/sensors/proto/sns_suid.proto b/proprietary/vendor/etc/sensors/proto/sns_suid.proto new file mode 100644 index 0000000..b83f431 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_suid.proto @@ -0,0 +1,54 @@ +// @file sns_suid.proto +// +// Defines standard message types to request and receive SUIDs. +// +// Copyright (c) 2016-2017,2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_type.proto"; + +enum sns_suid_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_SUID_MSGID_SNS_SUID_REQ = 512; + SNS_SUID_MSGID_SNS_SUID_EVENT = 768; +} + +// Well-known SUID for use by all clients. +// All other Sensor UIDs must be discovered dynamically +message sns_suid_sensor { + required fixed64 suid_low = 1 [default = 0xabababababababab]; + required fixed64 suid_high = 2 [default = 0xabababababababab]; +} + +// Request sent by internal or external client for the list of SUIDs that +// advertise the specified Data Type +// Note: Additional requests arriving on the same connection, will not result +// in a replaced request, but instead the new request will be appended to any +// active registrations. +message sns_suid_req { + required string data_type = 1; + // Register for updates to the list of SUIDs advertising data_type + optional bool register_updates = 2; + + // Each data type may or may not have one sensor configured to be "default" through registry. + // If following field is set to true and : + // * A default for the data type is explicitly configured, + // only the SUID of the default sensor will be sent via the suid event when available. + // * A default for the data type is not explicitly configured, + // the SUID of the first sensor with matching data type will be sent via the suid event. + // If following field is set to false, all sensors with matching data type will be sent, + // as and when they become available. + optional bool default_only = 3 [default = true]; +} + +// Event specifying the list of SUIDs associated with the given Data Type +// Receipt of this event indicates that a change to this list has occurred +// since the previous event. +message sns_suid_event { + // Direct copy of sns_suid_req:data_type + required string data_type = 1; + repeated sns_std_suid suid = 2; +} diff --git a/proprietary/vendor/etc/sensors/proto/sns_thermopile.proto b/proprietary/vendor/etc/sensors/proto/sns_thermopile.proto new file mode 100644 index 0000000..6e57b2a --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_thermopile.proto @@ -0,0 +1,62 @@ +// @file sns_thermopile.proto +// +// Defines the API for Thermopile Sensors. +// All Thermopile Sensor drivers are required to comply with this API. +// Any new functionality for Thermopile Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The Thermopile Temperature Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "thermopile". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute value in degrees Celsius/LSB. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in degrees Celsius unit. +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The Thermopile Sensor handles the sns_std_sensor_config +// message request for all stream enable/update requests. + +// Handling stream events: +// 1. The Thermopile Sensor publishes data stream events using the +// sns_std_sensor_event message. +// 2. Each stream event contains one output data field where data is +// factory calibrated and ordered as: +// data[0] = Object temperature in degrees Celsius +// 3. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 4. The Thermopile Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 5. The Thermopile Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and scale_factor fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. + +// Handling self-test requests: +// 1. The Thermopile Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The Thermopile Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. +// 3. The Thermopile Sensor could implement other test types. + +// Handling test events: +// 1. The Thermopile Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_threshold.proto b/proprietary/vendor/etc/sensors/proto/sns_threshold.proto new file mode 100644 index 0000000..3cf67b9 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_threshold.proto @@ -0,0 +1,91 @@ +// @file sns_threshold.proto +// +// Defines standard message types for the Threshold Algorithm +// +// Copyright (c) 2018-2020 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std.proto"; +import "sns_std_sensor.proto"; +import "sns_resampler.proto"; + +// Threshold Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "threshold" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_STREAMING + +// Sensor output event: +// Threshold uses sns_std_sensor_event for it's output event. +// An event is generated by the threshold algorithm only if the threshold is met +// on any of the axis for the sensor. +// Thresholding can be done as value based delta between current value and +// the last generated output. Or thresholding can be done as the delta between +// current value and the last output, as a percentage of the last output. +// Thresholding can also be done based on the current value going beyond a particular +// absolute threshold value. +// When thresholding criteria is met , an event is generated by the algorithm. + +enum sns_threshold_msgid +{ + option (nanopb_enumopt).long_names = false; + + SNS_THRESHOLD_MSGID_SNS_THRESHOLD_CONFIG = 512; +} + +//Thresholding types +enum sns_threshold_type +{ + option (nanopb_enumopt).long_names = false; + + // Provide thresholding as a delta between current value + // and last reported value, exceeding above the configured threshold. + SNS_THRESHOLD_TYPE_RELATIVE_VALUE = 0; + + // Provide thresholding as a delta between current value + // and last reported value, compared as a percentage of the last reported value, + // where the percentage is the configured threshold. + SNS_THRESHOLD_TYPE_RELATIVE_PERCENT = 1; + + // Provides thresholding of the current value against a fixed configured + // threshold value. + SNS_THRESHOLD_TYPE_ABSOLUTE = 2; + + // Provides thresholding of angle between current and last reported quaternion + // for quaternion sensors, in radians + SNS_THRESHOLD_TYPE_ANGLE = 3; +} + +// Configuration Message +// Used to either request for a new configuration of the threshold Sensor or +// alter an already existing configuration or query the current configuration. +message sns_threshold_config +{ + // UID of the sensor from which data is being requested from. + required sns_std_suid sensor_uid = 1; + + // The threshold value per axis. + // The number of threshold values need to be less than or equal to the number of + // sensor data axes. + // For SNS_THRESHOLD_TYPE_ANGLE, a single threshold_val value representing the + // angle between current and last reported quaternions + repeated float threshold_val = 2; + + // Tells us how to use the thresholding value provided. + required sns_threshold_type threshold_type = 3; + + // The message id to be used to configure the underlying sensor. + // This is used together with the below payload field. + required uint32 payload_cfg_msg_id = 4; + + // Dynamic length payload, containing the actual data/configuration request + // This payload will need to be decoded separately, using the Sensor-specific + // header file. + required bytes payload = 5; +} + +// Config is used to inform the client of the configuration that was set, +// after a configuration is done . +// The config message is sent back to the client +// in the threshold config message. +// All data events are generated as sns_std_sensor_event. diff --git a/proprietary/vendor/etc/sensors/proto/sns_tilt.proto b/proprietary/vendor/etc/sensors/proto/sns_tilt.proto new file mode 100644 index 0000000..faf095a --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_tilt.proto @@ -0,0 +1,49 @@ +// @file sns_tilt.proto +// +// Defines message types for the Tilt Sensor. +// +// Copyright (c) 2017-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// The Tilt Sensor looks for a change in angle of a gravity vector from an +// anchor vector. +// +// The initial anchor vector is based on an average of one second of +// accel data after initial activation. +// +// The gravity vector is calculated based on an average of two seconds of +// accel data. +// +// The anchor vector is reset to the current gravity vector each time the +// Tilt event is generated. +// There is only one anchor vector shared amongst all clients. +// +// The Tilt event is generated when the current gravity vector is 35 degrees +// or more from the anchor vector. + +// Tilt Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "tilt" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Tilt Sensor +enum sns_tilt_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_TILT_MSGID_SNS_TILT_EVENT = 774; +} + +// Stream events: +// +// A NULL message with message ID SNS_TILT_MSGID_SNS_TILT_EVENT is used to +// publish tilt event +// +// Tilt does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/sns_tilt_to_wake.proto b/proprietary/vendor/etc/sensors/proto/sns_tilt_to_wake.proto new file mode 100644 index 0000000..ceabc92 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_tilt_to_wake.proto @@ -0,0 +1,36 @@ +// @file sns_tilt_to_wake.proto +// +// Defines message types for the tilt_to_wake Sensor. +// +// Copyright (c) 2017 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// The tilt_to_wake detects substantial phone rotation (gesture) within +// limited period ending in a specific range of the pitch and roll angles. +// It uses proximity sensor to block the tilt event reporting in pocket or purse + +// tilt_to_wake Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "tilt_to_wake" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for tilt_to_wake Sensor +enum sns_tilt_to_wake_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_TILT_TO_WAKE_MSGID_SNS_TILT_TO_WAKE_EVENT = 775; +} + +// Stream events: +// +// A NULL message with message ID SNS_TILT_TO_WAKE_MSGID_SNS_TILT_TO_WAKE_EVENT is used to +// publish tilt_to_wake event +// +// tilt_to_wake does not publish configuration events. diff --git a/proprietary/vendor/etc/sensors/proto/sns_ultra_violet.proto b/proprietary/vendor/etc/sensors/proto/sns_ultra_violet.proto new file mode 100644 index 0000000..3244cc9 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_ultra_violet.proto @@ -0,0 +1,72 @@ +// @file sns_ultra_violet.proto +// +// Defines the API for Ultra Violet (UV) Sensors. +// All UV Sensor drivers are required to comply with this API. +// Any new functionality for UV Sensor can be defined in a +// device specific API file. +// +// Copyright (c) 2016-2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; +import "sns_physical_sensor_test.proto"; +import "sns_cal.proto"; + +// Attribute requirements: +// The UV Sensor publishes: +// 1. SNS_STD_SENSOR_ATTRID_TYPE attribute value as "ultra_violet". +// 2. SNS_STD_SENSOR_ATTRID_RESOLUTIONS attribute value in degrees mW/cm2/LSB. +// 3. SNS_STD_SENSOR_ATTRID_RANGES attribute values in degrees mW/cm2 unit. +// 4. See sns_std_sensor.proto for other attributes. + +// Handling stream requests: +// 1. The UV Sensor handles the sns_std_sensor_config +// message request for all stream enable/update requests. + +// Handling stream events: +// 1. The UV Sensor publishes UV data in ambient light using the +// sns_std_sensor_event message. +// 2. Each stream event contains following factory calibrated data fields: +// data[0] = Bit mask to determine which outputs are supported: +// bit[0]: 1 if UV-A is supported else 0 +// bit[1]: 1 if UV-B is supported else 0 +// bit[2]: 1 if Total UV is supported else 0 +// bit[3]: 1 if UV index is supported else 0 +// all other bits are 0 +// data[1] = UV-A radiation in mW/cm2 +// data[2] = UV-B radiation in mW/cm2 +// data[3] = Total UV radiation in mW/cm2 +// data[4] = Unitless UV index number +// 3. Each stream event publishes an accuracy field: +// SNS_STD_SENSOR_SAMPLE_STATUS_UNRELIABLE to mark invalid samples when hardware is +// yet to stabilize after the sensor is configured. +// SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH to mark samples when they are valid. +// 4. The UV Sensor publishes a configuration event using the +// sns_std_sensor_physical_config_event message. +// It publishes this event each time there is change in hardware config of the sensor +// and contains current physical sensor config of the sensor. +// 5. The UV Sensor publishes a factory calibration event using the +// sns_cal_event message. It uses bias and scale_factor fields in this event. +// It publishes this event each time there is change in it's factory calibration +// data or when a client sends a new streaming request. + +// Handling self-test requests: +// 1. The UV Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_COM test +// type using the physical sensor test API. +// 2. The UV Sensor implements SNS_PHYSICAL_SENSOR_TEST_TYPE_FACTORY test +// type to determine factory calibration parameters using the physical +// sensor test API. The factory test for UV Sensor calibrates +// the sensor such that it's output is comparable to a standard +// UV Meter output in any lighting condition. +// 3. The UV Sensor could implement other test types. + +// Handling test events: +// 1. The UV Sensor uses sns_physical_sensor_test_event message to publish +// a test completion event. +// 2. The test_passed field in sns_physical_sensor_test_event is used to output the +// pass/fail result of self-test execution. +// 3. The test_data field in sns_physical_sensor_test_event could be used to output any +// driver-specific error data. diff --git a/proprietary/vendor/etc/sensors/proto/sns_wrist_tilt_gesture.proto b/proprietary/vendor/etc/sensors/proto/sns_wrist_tilt_gesture.proto new file mode 100644 index 0000000..37482d9 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/sns_wrist_tilt_gesture.proto @@ -0,0 +1,49 @@ +// @file sns_wrist_tilt_gesture.proto +// +// Defines message types for the wrist_tilt_gesture Sensor. +// +// Copyright (c) 2018 Qualcomm Technologies, Inc. +// All Rights Reserved. +// Confidential and Proprietary - Qualcomm Technologies, Inc. + +syntax = "proto2"; +import "nanopb.proto"; +import "sns_std_sensor.proto"; + +// The Tilt Sensor looks for a change in angle of a gravity vector from an +// anchor vector. +// +// The initial anchor vector is based on an average of one second of +// accel data after initial activation. +// +// The gravity vector is calculated based on an average of two seconds of +// accel data. +// +// The anchor vector is reset to the current gravity vector each time the +// Tilt event is generated. +// There is only one anchor vector shared amongst all clients. +// +// The Tilt event is generated when the current gravity vector is 35 degrees +// or more from the anchor vector. + +// Tilt Sensor Attribute Requirements: +// SNS_STD_SENSOR_ATTRID_TYPE: "wrist_tilt_gesture" +// SNS_STD_SENSOR_ATTRID_STREAM_TYPE: SNS_STD_SENSOR_STREAM_TYPE_ON_CHANGE + +// Stream Requests: +// - SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG is used to enable the sensor + +// Message IDs for Wrist Tilt Gesture Sensor +enum sns_wrist_tilt_gesture_msgid { + option (nanopb_enumopt).long_names = false; + + SNS_WRIST_TILT_GESTURE_MSGID_SNS_TILT_EVENT = 774; +} + +// Stream events: +// +// A NULL message with message ID SNS_TILT_MSGID_SNS_TILT_EVENT is used to +// publish tilt event +// +// Tilt does not publish configuration events. + diff --git a/proprietary/vendor/etc/sensors/proto/tcs3708.proto b/proprietary/vendor/etc/sensors/proto/tcs3708.proto new file mode 100644 index 0000000..a574156 --- /dev/null +++ b/proprietary/vendor/etc/sensors/proto/tcs3708.proto @@ -0,0 +1,23 @@ +// @file tcs3708.proto +// +// Defines additional pb APIs needed for the tcs3708 under OLED solution +// + +syntax = "proto2"; +import "nanopb.proto"; + +// Message IDs +enum tcs3708_msgid { + option (nanopb_enumopt).long_names = false; + + TCS3708_MSGID_TCS3708_ALS_MASTERCAL_REQUEST = 360; + TCS3708_MSGID_TCS3708_ALS_MASTERCAL_EVENT = 361; +} + +// Message to sensor +message tcs3708_als_mastercal_event +{ + required uint32 chunk_id = 1; + required uint32 again = 2; + repeated float raw_data = 3; +} diff --git a/proprietary/vendor/etc/sensors/sns_reg_config b/proprietary/vendor/etc/sensors/sns_reg_config new file mode 100644 index 0000000..af3d66e --- /dev/null +++ b/proprietary/vendor/etc/sensors/sns_reg_config @@ -0,0 +1,10 @@ +version=6 +file=hw_platform=/sys/devices/soc0/hw_platform +file=platform_subtype=/sys/devices/soc0/platform_subtype +file=platform_subtype_id=/sys/devices/soc0/platform_subtype_id +file=platform_version=/sys/devices/soc0/platform_version +file=soc_id=/sys/devices/soc0/soc_id +file=revision=/sys/devices/soc0/revision +file=output=/mnt/vendor/persist/sensors/registry/registry +property=persist.vendor.sensors.enable.property=/mnt/vendor/persist/sensors/registry/file1 +property=persist.vendor.sensors.enable.property1=/mnt/vendor/persist/sensors/registry/file2 diff --git a/proprietary/vendor/etc/thermal-engine-fogos-camera.conf b/proprietary/vendor/etc/thermal-engine-fogos-camera.conf new file mode 100644 index 0000000..c9f6a6e --- /dev/null +++ b/proprietary/vendor/etc/thermal-engine-fogos-camera.conf @@ -0,0 +1,188 @@ +#current 4 3.5 3 2.5 2 1.5 1.2 0.9 0.6 +# 9 8 7 6 5 4 3 2 1 + +#CPU0 frequency 300000 576000 691200 940800 1113600 1324800 1516800 1651200 1708800 1804800 +#CPU6 frequency 691200 940800 1228800 1401600 1516800 1651200 1804800 1900800 2054400 2208000 + + +[FRONT_TEMP] +algo_type virtual +trip_sensor xo_therm +thresholds -18000 +thresholds_clr -20000 +sensors msm_therm quiet_therm battery +weights 26 25 49 +offsets 0 +sampling 1000 +math 0 +sys_temp + +[REPORT-FRONT-TEMP] +algo_type monitor +sampling 300000 +sensor FRONT_TEMP +thresholds 45000 +thresholds_clr 43000 +actions report +action_info 1 + +[BACK_TEMP] +algo_type virtual +trip_sensor xo_therm +thresholds -18000 +thresholds_clr -20000 +sensors msm_therm quiet_therm battery +weights 40 23 37 +offsets 0 +sampling 1000 +math 0 +sys_temp + +[REPORT-BACK-TEMP] +algo_type monitor +sampling 300000 +sensor BACK_TEMP +thresholds 45000 +thresholds_clr 43000 +actions report +action_info 1 + +[DETECT-STANDBY] +algo_type virtual +trip_sensor quiet_therm +thresholds -18000 +thersholds_clr -20000 +sensors cpu_utilization lcd_brightness_value +weights 15 50 +sampling 1000 +less_than +math 7 + +[OVERRIDE-CHG] +algo_type monitor +sampling 1000 +sensor DETECT-STANDBY +thresholds 1 +thresholds_clr 0 +actions internal_override +action_info 1 + +[FREEZE-CHG] +algo_type monitor +sampling 1000 +descending +sensor DETECT-STANDBY +thresholds 0 +thresholds_clr 1 +actions freeze_rule +action_info 1 + +[Virt-MSM] +algo_type virtual +sensors msm_therm +weights 100 +trip_sensor chg_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[Virt-CHG] +algo_type virtual +sensors chg_therm +weights 100 +trip_sensor msm_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[Virt-QUT] +algo_type virtual +sensors quiet_therm +weights 100 +trip_sensor xo_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[MON-MSM-STB] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 36000 38000 39500 41000 42000 45000 +thresholds_clr 35000 37000 39000 39500 41500 43000 +actions battery battery battery battery battery battery +action_info 8 7 6 5 4 3 +freezing + +[SS-CHG-BATT1] +algo_type ss +sampling 1000 +sensor Virt-QUT +device battery +set_point 38000 +set_point_clr 36000 +time_constant 0 +device_max_limit 1 +override_c 10000 + +[MON-MSM-CPU0] +algo_type monitor +sampling 1000 +sensor BACK_TEMP +thresholds 37000 39000 41000 43000 45000 +thresholds_clr 35000 37000 39000 41000 43000 +actions cpu0 cpu0 cpu0 cpu0 cpu0 +action_info 1708800 1516800 1113600 940800 576000 +override_b 4000 + +[MON-MSM-CPU6] +algo_type monitor +sampling 1000 +sensor BACK_TEMP +thresholds 37000 39000 41000 43000 45000 +thresholds_clr 35000 37000 39000 41000 43000 +actions cpu6 cpu6 cpu6 cpu6 cpu6 +action_info 1651200 1401600 1228800 940800 691200 +override_b 4000 + +[MONITOR-CAMERA-MSM] +algo_type monitor +sampling 1000 +sensor BACK_TEMP +thresholds 46000 50000 +thresholds_clr 44000 48000 +actions camera camera +action_info 1 2 + +[MON-MODEM] +algo_type monitor +sampling 1000 +sensor Virt-MSM +thresholds 49000 51000 +thresholds_clr 47000 49000 +actions modem_skin modem_skin +action_info 1 2 + +[MODEM-PA-FR] +algo_type monitor +sampling 5000 +sensor pa_therm2 +thresholds 49000 51000 +thresholds_clr 47000 49000 +actions modem_pa_fr1 modem_pa_fr1 +action_info 1 2 + +[LCD-MONITOR] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 44000 45000 47000 +thresholds_clr 42000 44000 45000 +actions panel0-backlight panel0-backlight panel0-backlight +action_info 1 500 1000 diff --git a/proprietary/vendor/etc/thermal-engine-fogos-game-normal.conf b/proprietary/vendor/etc/thermal-engine-fogos-game-normal.conf new file mode 100644 index 0000000..f41ced3 --- /dev/null +++ b/proprietary/vendor/etc/thermal-engine-fogos-game-normal.conf @@ -0,0 +1,186 @@ +#current 4 3.5 3 2.5 2 1.5 1.2 0.9 0.6 +# 9 8 7 6 5 4 3 2 1 + +#CPU0 frequency 300000 576000 691200 940800 1113600 1324800 1516800 1651200 1708800 1804800 +#CPU6 frequency 691200 940800 1228800 1401600 1516800 1651200 1804800 1900800 2054400 2208000 + +[FRONT_TEMP] +algo_type virtual +trip_sensor xo_therm +thresholds -18000 +thresholds_clr -20000 +sensors msm_therm quiet_therm battery +weights 26 25 49 +offsets 0 +sampling 1000 +math 0 +sys_temp + +[REPORT-FRONT-TEMP] +algo_type monitor +sampling 300000 +sensor FRONT_TEMP +thresholds 45000 +thresholds_clr 43000 +actions report +action_info 1 + +[BACK_TEMP] +algo_type virtual +trip_sensor xo_therm +thresholds -18000 +thresholds_clr -20000 +sensors msm_therm quiet_therm battery +weights 40 23 37 +offsets 0 +sampling 1000 +math 0 +sys_temp + +[REPORT-BACK-TEMP] +algo_type monitor +sampling 300000 +sensor BACK_TEMP +thresholds 45000 +thresholds_clr 43000 +actions report +action_info 1 + +[DETECT-STANDBY] +algo_type virtual +trip_sensor quiet_therm +thresholds -18000 +thersholds_clr -20000 +sensors lcd_brightness_value +weights 50 +sampling 1000 +less_than +math 7 + +[OVERRIDE-CHG] +algo_type monitor +sampling 1000 +sensor DETECT-STANDBY +thresholds 1 +thresholds_clr 0 +actions internal_override +action_info 1 + +[FREEZE-CHG] +algo_type monitor +sampling 1000 +descending +sensor DETECT-STANDBY +thresholds 0 +thresholds_clr 1 +actions freeze_rule +action_info 1 + +[Virt-MSM] +algo_type virtual +sensors msm_therm +weights 100 +trip_sensor chg_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[Virt-CHG] +algo_type virtual +sensors chg_therm +weights 100 +trip_sensor msm_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[Virt-QUT] +algo_type virtual +sensors quiet_therm +weights 100 +trip_sensor xo_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[MON-MSM-STB] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 36000 38000 39500 41000 42000 45000 +thresholds_clr 35000 37000 39000 39500 41500 43000 +actions battery battery battery battery battery battery +action_info 8 7 6 5 4 3 +freezing + +[MON-CHG-NORMAL] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 35000 37000 39000 +thresholds_clr 33000 35000 37000 +actions battery battery battery +action_info 5 3 1 +override_c 10000 + +[MON-MSM-CPU0] +algo_type monitor +sampling 1000 +sensor BACK_TEMP +thresholds 40000 42000 44000 45000 47000 +thresholds_clr 39900 40000 42000 44000 45000 +actions cpu0 cpu0 cpu0 cpu0 cpu0 +action_info 1708800 1113600 940800 691200 576000 +override_b 4000 + +[MON-MSM-CPU6] +algo_type monitor +sampling 1000 +sensor BACK_TEMP +thresholds 40000 42000 44000 45000 +thresholds_clr 39900 40000 42000 44000 +actions cpu6 cpu6 cpu6 cpu6 cpu6 +action_info 1900800 1401600 940800 691200 +override_b 4000 + +[MONITOR-CAMERA-MSM] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 55000 60000 +thresholds_clr 53000 55000 +actions camera camera +action_info 1 2 + +[MON-MODEM] +algo_type monitor +sampling 1000 +sensor Virt-MSM +thresholds 80000 85000 +thresholds_clr 78000 80000 +actions modem_skin modem_skin +action_info 1 2 + +[MODEM-PA-FR] +algo_type monitor +sampling 5000 +sensor xo_therm +thresholds 65000 70000 +thresholds_clr 60000 65000 +actions modem_pa_fr1 modem_pa_fr1 +action_info 1 2 + +[LCD-MONITOR] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 45000 46000 48000 +thresholds_clr 43000 45000 46000 +actions panel0-backlight panel0-backlight panel0-backlight +action_info 1 500 1000 diff --git a/proprietary/vendor/etc/thermal-engine-fogos-game-perf.conf b/proprietary/vendor/etc/thermal-engine-fogos-game-perf.conf new file mode 100644 index 0000000..62da455 --- /dev/null +++ b/proprietary/vendor/etc/thermal-engine-fogos-game-perf.conf @@ -0,0 +1,186 @@ +#current 4 3.5 3 2.5 2 1.5 1.2 0.9 0.6 +# 9 8 7 6 5 4 3 2 1 + +#CPU0 frequency 300000 576000 691200 940800 1113600 1324800 1516800 1651200 1708800 1804800 +#CPU6 frequency 691200 940800 1228800 1401600 1516800 1651200 1804800 1900800 2054400 2208000 + +[FRONT_TEMP] +algo_type virtual +trip_sensor xo_therm +thresholds -18000 +thresholds_clr -20000 +sensors msm_therm quiet_therm battery +weights 26 25 49 +offsets 0 +sampling 1000 +math 0 +sys_temp + +[REPORT-FRONT-TEMP] +algo_type monitor +sampling 300000 +sensor FRONT_TEMP +thresholds 45000 +thresholds_clr 43000 +actions report +action_info 1 + +[BACK_TEMP] +algo_type virtual +trip_sensor xo_therm +thresholds -18000 +thresholds_clr -20000 +sensors msm_therm quiet_therm battery +weights 40 23 37 +offsets 0 +sampling 1000 +math 0 +sys_temp + +[REPORT-BACK-TEMP] +algo_type monitor +sampling 300000 +sensor BACK_TEMP +thresholds 45000 +thresholds_clr 43000 +actions report +action_info 1 + +[DETECT-STANDBY] +algo_type virtual +trip_sensor quiet_therm +thresholds -18000 +thersholds_clr -20000 +sensors lcd_brightness_value +weights 50 +sampling 1000 +less_than +math 7 + +[OVERRIDE-CHG] +algo_type monitor +sampling 1000 +sensor DETECT-STANDBY +thresholds 1 +thresholds_clr 0 +actions internal_override +action_info 1 + +[FREEZE-CHG] +algo_type monitor +sampling 1000 +descending +sensor DETECT-STANDBY +thresholds 0 +thresholds_clr 1 +actions freeze_rule +action_info 1 + +[Virt-MSM] +algo_type virtual +sensors msm_therm +weights 100 +trip_sensor chg_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[Virt-CHG] +algo_type virtual +sensors chg_therm +weights 100 +trip_sensor msm_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[Virt-QUT] +algo_type virtual +sensors quiet_therm +weights 100 +trip_sensor xo_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[MON-MSM-STB] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 36000 38000 39500 41000 42000 45000 +thresholds_clr 35000 37000 39000 39500 41500 43000 +actions battery battery battery battery battery battery +action_info 8 7 6 5 4 3 +freezing + +[MON-CHG-NORMAL] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 35000 37000 39000 +thresholds_clr 33000 35000 37000 +actions battery battery battery +action_info 5 3 1 +override_c 10000 + +[MON-MSM-CPU0] +algo_type monitor +sampling 1000 +sensor BACK_TEMP +thresholds 44000 46000 48000 49500 +thresholds_clr 43000 45000 46000 48000 +actions cpu0 cpu0 cpu0 cpu0 +action_info 1708800 1651200 1516800 1113600 +override_b 4000 + +[MON-MSM-CPU6] +algo_type monitor +sampling 1000 +sensor BACK_TEMP +thresholds 44000 46000 48000 49500 +thresholds_clr 43000 44000 46000 48000 +actions cpu6 cpu6 cpu6 cpu6 +action_info 2054400 1900800 1804800 1401600 +override_b 4000 + +[MONITOR-CAMERA-MSM] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 55000 60000 +thresholds_clr 53000 55000 +actions camera camera +action_info 1 2 + +[MON-MODEM] +algo_type monitor +sampling 1000 +sensor Virt-MSM +thresholds 80000 85000 +thresholds_clr 78000 80000 +actions modem_skin modem_skin +action_info 1 2 + +[MODEM-PA-FR] +algo_type monitor +sampling 5000 +sensor xo_therm +thresholds 65000 70000 +thresholds_clr 60000 65000 +actions modem_pa_fr1 modem_pa_fr1 +action_info 1 2 + +[LCD-MONITOR] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 45000 46000 48000 +thresholds_clr 43000 45000 46000 +actions panel0-backlight panel0-backlight panel0-backlight +action_info 1 300 500 diff --git a/proprietary/vendor/etc/thermal-engine-fogos.conf b/proprietary/vendor/etc/thermal-engine-fogos.conf new file mode 100644 index 0000000..abe006a --- /dev/null +++ b/proprietary/vendor/etc/thermal-engine-fogos.conf @@ -0,0 +1,187 @@ +#current 4 3.5 3 2.5 2 1.5 1.2 0.9 0.6 +# 9 8 7 6 5 4 3 2 1 + +#CPU0 frequency 300000 576000 691200 940800 1113600 1324800 1516800 1651200 1708800 1804800 +#CPU6 frequency 691200 940800 1228800 1401600 1516800 1651200 1804800 1900800 2054400 2208000 + + +[FRONT_TEMP] +algo_type virtual +trip_sensor xo_therm +thresholds -18000 +thresholds_clr -20000 +sensors msm_therm quiet_therm battery +weights 26 25 49 +offsets 0 +sampling 1000 +math 0 +sys_temp + +[REPORT-FRONT-TEMP] +algo_type monitor +sampling 300000 +sensor FRONT_TEMP +thresholds 45000 +thresholds_clr 43000 +actions report +action_info 1 + +[BACK_TEMP] +algo_type virtual +trip_sensor xo_therm +thresholds -18000 +thresholds_clr -20000 +sensors msm_therm quiet_therm battery +weights 40 23 37 +offsets 0 +sampling 1000 +math 0 +sys_temp + +[REPORT-BACK-TEMP] +algo_type monitor +sampling 300000 +sensor BACK_TEMP +thresholds 45000 +thresholds_clr 43000 +actions report +action_info 1 + +[DETECT-STANDBY] +algo_type virtual +trip_sensor quiet_therm +thresholds -18000 +thersholds_clr -20000 +sensors cpu_utilization lcd_brightness_value +weights 15 50 +sampling 1000 +less_than +math 7 + +[OVERRIDE-CHG] +algo_type monitor +sampling 1000 +sensor DETECT-STANDBY +thresholds 1 +thresholds_clr 0 +actions internal_override +action_info 1 + +[FREEZE-CHG] +algo_type monitor +sampling 1000 +descending +sensor DETECT-STANDBY +thresholds 0 +thresholds_clr 1 +actions freeze_rule +action_info 1 + +[Virt-MSM] +algo_type virtual +sensors msm_therm +weights 100 +trip_sensor chg_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[Virt-CHG] +algo_type virtual +sensors chg_therm +weights 100 +trip_sensor msm_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[Virt-QUT] +algo_type virtual +sensors quiet_therm +weights 100 +trip_sensor xo_therm +thresholds 18000 +thresholds_clr 16000 +offsets 0 +sampling 1000 +math 0 + +[MON-MSM-STB] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 36000 38000 39500 41000 42000 45000 +thresholds_clr 35000 37000 39000 39500 41500 43000 +actions battery battery battery battery battery battery +action_info 8 7 6 5 4 3 +freezing + +[MON-MSM-NORMAL] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 37000 39000 41000 +thresholds_clr 35000 37000 39000 +actions battery battery battery +action_info 6 4 1 +override_c 14000 + +[MON-MSM-CPU0] +algo_type monitor +sampling 1000 +sensor BACK_TEMP +thresholds 42000 44000 45000 47000 48000 +thresholds_clr 41000 43000 44000 46000 47000 +actions cpu0 cpu0 cpu0 cpu0 cpu0 +action_info 1708800 1651200 1516800 1324800 691200 +override_b 4000 + +[MON-MSM-CPU6] +algo_type monitor +sampling 1000 +sensor BACK_TEMP +thresholds 42000 44000 46000 48000 48500 +thresholds_clr 41000 42000 44000 47000 48000 +actions cpu6 cpu6 cpu6 cpu6 cpu6 +action_info 2054400 1900800 1651200 1228800 691200 +override_b 4000 + +[MONITOR-CAMERA-MSM] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 55000 60000 +thresholds_clr 53000 55000 +actions camera camera +action_info 1 2 + +[MON-MODEM] +algo_type monitor +sampling 1000 +sensor Virt-MSM +thresholds 80000 85000 +thresholds_clr 78000 80000 +actions modem_skin modem_skin +action_info 1 2 + +[MODEM-PA-FR] +algo_type monitor +sampling 5000 +sensor xo_therm +thresholds 65000 70000 +thresholds_clr 60000 65000 +actions modem_pa_fr1 modem_pa_fr1 +action_info 1 2 + +[LCD-MONITOR] +algo_type monitor +sampling 1000 +sensor Virt-QUT +thresholds 45000 46000 48000 +thresholds_clr 43000 45000 46000 +actions panel0-backlight panel0-backlight panel0-backlight +action_info 1 300 500 \ No newline at end of file diff --git a/proprietary/vendor/etc/thermal-engine.conf b/proprietary/vendor/etc/thermal-engine.conf new file mode 100644 index 0000000..33fc821 --- /dev/null +++ b/proprietary/vendor/etc/thermal-engine.conf @@ -0,0 +1,2 @@ +# File empty by default. +# Replace contents of this file with custom configuration. diff --git a/proprietary/vendor/etc/vhw.xml b/proprietary/vendor/etc/vhw.xml new file mode 100644 index 0000000..a235813 --- /dev/null +++ b/proprietary/vendor/etc/vhw.xml @@ -0,0 +1,2966 @@ + + + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:NA + androidboot. + ro.vendor.hw. + + NA + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=false + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + emerald + other + + + default=true + mmi, + ro.vendor.hw. + + true + false + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:false + mmi, + ro.vendor.hw. + + true + false + + + + + + + + + + false + false + + + true + false + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + cam_variant + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:WELA,2:WELA,3:PRC + androidboot. + ro.vendor.hw. + + WELA + PRC + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + gray + red + other + + + default=true + mmi, + ro.vendor.hw. + + true + false + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:nxp,2:nxp,3:false + mmi, + ro.vendor.hw. + + nxp + false + + + key=hwid;index=2;map=1:1,2:2,3:1 + mmi, + ro.vendor.hw. + + 1 + 2 + + + androidboot. + + q + + + + + + + + + + + + + + + + PRC + + + + + + + 2 + + + + + + + + false + nxp + + + true + nxp + + + false + false + + + true + false + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + cam_variant + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:Japan,2:PRC,3:ROW,4:India + androidboot. + ro.vendor.hw. + + Japan + ROW + PRC + India + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + green + iris + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:false,2:true,3:false,4:false + mmi, + ro.vendor.hw. + + true + false + + + key=hwid;index=2;map=1:st,2:false,3:st,4:false + mmi, + ro.vendor.hw. + + st + false + + + key=hwid;index=2;map=1:1,2:2,3:1,4:1 + mmi, + ro.vendor.hw. + + 1 + 2 + + + androidboot. + + q + + + + + + + + + + + + + + + + PRC + + + + + + + 2 + + + + + + + + + false + st + false + + + true + st + false + + + false + false + false + + + true + false + false + + + + false + st + true + + + true + st + true + + + false + false + true + + + true + false + true + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:ALL,2:LATAM,3:APEM,4:PRC,5:PRC + androidboot. + ro.vendor.hw. + + ALL + LATAM + APEM + PRC + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + Horizon Blue + Winter Dawn + Moss Lake + Horizon Blue WD + Horizon Blue PW + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:st,2:st,3:st,4:false,5:false + mmi, + ro.vendor.hw. + + st + false + + + androidboot. + + n + + + + + + + + + + + + + + + + st + + + + + + + + false + st + + + true + st + + + false + false + + + true + false + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:ALL,2:LATAM,3:APEM,4:PRC,5:PRC,6:KSA + androidboot. + ro.vendor.hw. + + ALL + LATAM + APEM + PRC + KSA + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + Horizon Blue + Winter Dawn + Moss Lake + Horizon Blue WD + Horizon Blue PW + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:st,2:st,3:st,4:false,5:false,6:st + mmi, + ro.vendor.hw. + + st + false + + + androidboot. + + n + + + + + + + + + + + + + + + + st + + + + + + + + false + st + + + true + st + + + false + false + + + true + false + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + cam_variant + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:Japan,2:PRC,3:ROW,4:India + androidboot. + ro.vendor.hw. + + Japan + ROW + PRC + India + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + green + iris + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:false,2:true,3:false,4:false + mmi, + ro.vendor.hw. + + true + false + + + key=hwid;index=2;map=1:st,2:false,3:st,4:false + mmi, + ro.vendor.hw. + + st + false + + + key=hwid;index=2;map=1:1,2:2,3:1,4:1 + mmi, + ro.vendor.hw. + + 1 + 2 + + + androidboot. + + q + + + + + + + + + + + + + + + + PRC + + + + + + + 2 + + + + + + + + + false + st + false + + + true + st + false + + + false + false + false + + + true + false + false + + + + false + st + true + + + true + st + true + + + false + false + true + + + true + false + true + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + cam_variant + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:Japan,2:PRC,3:ROW,4:India + androidboot. + ro.vendor.hw. + + Japan + ROW + PRC + India + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + green + iris + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:false,2:true,3:false,4:false + mmi, + ro.vendor.hw. + + true + false + + + key=hwid;index=2;map=1:st,2:false,3:st,4:false + mmi, + ro.vendor.hw. + + st + false + + + key=hwid;index=2;map=1:1,2:2,3:1,4:1 + mmi, + ro.vendor.hw. + + 1 + 2 + + + androidboot. + + q + + + + + + + + + + + + + + + + PRC + + + + + + + 2 + + + + + + + + + false + st + false + + + true + st + false + + + false + false + false + + + true + false + false + + + + false + st + true + + + true + st + true + + + false + false + true + + + true + false + true + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:NA,2:VZW + androidboot. + ro.vendor.hw. + + NA + VZW + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=false + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + green + iris + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:nxp,2:nxp + mmi, + ro.vendor.hw. + + nxp + false + + + + + + + + + + false + + + true + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:JAPAN,2:LATAM,3:APEM + androidboot. + ro.vendor.hw. + + JAPAN + LATAM + APEM + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + Sumi + Shironeri + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:ese_nq,2:ese_nq,3:ese_nq + mmi, + ro.vendor.hw. + + ese_nq + false + + + androidboot. + + n + + + + + + + + + + + + + + + + ese_nq + + + + + + + + + true + ese_nq + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:ROW,2:PRC + androidboot. + ro.vendor.hw. + + ROW + PRC + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + green + iris + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:samsung,2:false + mmi, + ro.vendor.hw. + + false + samsung + + + androidboot. + + n + + + + + + + + + samsung + + + + + + false + samsung + + + true + samsung + + + false + false + + + true + false + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:LATAM,2:APEM + androidboot. + ro.vendor.hw. + + LATAM + APEM + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + green + iris + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=nxp + mmi, + ro.vendor.hw. + + false + nxp + + + + + + + + + + false + nxp + + + true + nxp + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:INDIA + androidboot. + ro.vendor.hw. + + INDIA + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + green + iris + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=false + mmi, + ro.vendor.hw. + + false + + + + + + + + + + true + false + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:ROW + androidboot. + ro.vendor.hw. + + ROW + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 128GB + 256GB + + + default=true + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + veriperi + icepalace + blackonyx + aquafoam + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=nxp + mmi, + ro.vendor.hw. + + nxp + + + + + + + + + + true + nxp + + + false + nxp + + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + felica + + nfc + + ecompass + + esim + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:ALL,2:BRLA,3:APEU,4:PRC,5:INDIA,6:JAPAN,7:JPSB + androidboot. + ro.vendor.hw. + + ALL + BRLA + APEU + PRC + INDIA + JAPAN + JPSB + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + 12GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + 256GB + + + default=true + ro.vendor.hw. + + true + false + + + default=false + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + veriperi + icepalace + blackonyx + aquafoam + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:nxp,2:nxp,3:nxp,4:false,5:nxp,6:ese_nq,7:ese_nq + mmi, + ro.vendor.hw. + + nxp + ese_nq + false + + + key=hwid;index=2;map=1:false,2:false,3:false,4:false,5:false,6:true,7:true + mmi, + ro.vendor.hw. + + true + false + + + + + + + + + + + + + + false + nxp + + + true + nxp + + + false + false + + + true + false + + + true + ese_nq + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + esim + + esimid + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:SUPER + androidboot. + ro.vendor.hw. + + SUPER + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + + + default=true + ro.vendor.hw. + + true + false + + + default=false + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + veriperi + icepalace + blackonyx + aquafoam + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=false + mmi, + ro.vendor.hw. + + false + + + uspace=config;name=esimid + ro.vendor. + + + + + + + + false + false + + + true + false + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + esim + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:LATAM,2:EUAPEM + androidboot. + ro.vendor.hw. + + LATAM + EUAPEM + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 6GB + 8GB + 12GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 128GB + 256GB + + + default=true + ro.vendor.hw. + + true + false + + + default=false + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + vivamagenta + balladblue + outerspace + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=samsung + mmi, + ro.vendor.hw. + + samsung + + + + + + + + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + esim + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:ALL,2:BR,3:LATAM,4:APEM,5:APEM,6:PRC + androidboot. + ro.vendor.hw. + + ALL + BR + LATAM + APEM + PRC + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + 256GB + + + default=true + ro.vendor.hw. + + true + false + + + default=false + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + Horizon Blue + Winter Dawn + Moss Lake + Horizon Blue WD + Horizon Blue PW + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:samsung,2:samsung,3:samsung,4:samsung,5:false,6:false + mmi, + ro.vendor.hw. + + samsung + false + + + androidboot. + + n + + + + + + + + + + + + + + + + samsung + + + + + + + + false + samsung + + + true + samsung + + + false + false + + + true + false + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + esim + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:ALL,2:NA,3:EU + androidboot. + ro.vendor.hw. + + ALL + NA + EU + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + + + default=true + ro.vendor.hw. + + true + false + + + default=false + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + sedonasage + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:nq,2:nq,3:nq + mmi, + ro.vendor.hw. + + nq + false + + + + + + + + + + + + + + + + + false + nq + + + true + nq + + + + + + + + + + + + radio + + ram + + storage + + dualsim + + frontcolor + + fps + + nfc + + ecompass + + esim + + sku_variant + + + + + + + + .range + + .cmdline + + .chosen + + .system + + + + .auto + + + + + + + key=hwid;index=2;map=1:ALL,2:BR,3:LATAM,4:APEM,5:INDIA,6:PRC,7:INDIA + androidboot. + ro.vendor.hw. + + ALL + BR + LATAM + APEM + PRC + INDIA + + + + key=hwprobe;index=__ram + ro.vendor.hw. + + 4GB + 6GB + 8GB + + + + key=hwprobe;index=__storage + ro.vendor.hw. + + 64GB + 128GB + 256GB + + + default=true + ro.vendor.hw. + + true + false + + + default=false + ro.vendor.hw. + + true + false + + + + ro.vendor.hw. + + black + blue + hydro + pumpkin + tofu + other + + + default=true + mmi, + ro.vendor.hw. + + true + + + default=true + mmi, + ro.vendor.hw. + + true + + + key=hwid;index=2;map=1:samsung,2:samsung,3:samsung,4:samsung,5:false,6:false,7:false + mmi, + ro.vendor.hw. + + samsung + false + + + androidboot. + + n + + + + + + + + + + + + + samsung + + + + + + + + false + samsung + + + true + samsung + + + false + false + + + true + false + + + + + diff --git a/proprietary/vendor/firmware/ILITEK_FW b/proprietary/vendor/firmware/ILITEK_FW new file mode 100644 index 0000000..a276c1a --- /dev/null +++ b/proprietary/vendor/firmware/ILITEK_FW @@ -0,0 +1,11531 @@ +:070000AF000000013FFF010A +:070000AF028000029FFF0226 +:070000AF02A00002A1FF0303 +:070000AF014000027FFF0584 +:070000AF02B00002CFFF04C4 +:040000B00202000246 +:040000B00200000347 +:10000000480079E8480077D6480077FC4800782215 +:10001000480078484800786E48007894480078BADC +:10002000480078E04800794E4800795048007952FD +:100030004800795448007956480079584800795A60 +:100040004800795C4800795E480079604800796230 +:100050004800796448007966480079684800796A00 +:100060004800796C4800796E4800797048007972D0 +:100070004800797448007976480079784800797AA0 +:100080004800797C4800797E48007980480079836F +:1000900048007986480079894800798C4800798F32 +:1000A0004800799294F4000096F40000ACF400004B +:1000B000C8F40000D6F40000D8F400003AF50000BF +:1000C0006EF5000076F500008AF50000DCF5000012 +:1000D00058F600005AF6000062F600006AF60000CA +:1000E00072F60000C0F600009CF70000AAF80000BD +:1000F000BEF80000C0F80000C2F80000C4F800001C +:10010000C6F80000DAF8000014F9000030F9000029 +:1001100044F9000066F9000064FA000084FA000067 +:10012000A6FA0000FC004420010C2E36E430EA4D13 +:100130008420FE9CDD424900342FFC80FC008401B9 +:100140003E07F298EA9C84C1FE378026EB05FA064A +:10015000DD41FA06802649007670FC80FC004900EB +:10016000326CEA4D49002F9FEA4DEBF549003056BD +:10017000DD40C004EBA15A08010DEBF5EA4D50201B +:10018000FFE05030FFEC2E400E98490097F6FC80BF +:10019000EBF5EA4D5020FFE05030FFEC49009A1C8F +:1001A000FC80FC46EA2FF08584202EA6E41E4095B4 +:1001B00004092FC6E41F40250408404E0409E0222C +:1001C000E824F00538F005115EF7FF9CE81B844138 +:1001D0003C17F05C84A04000A808F0872E07F54E7D +:1001E00080C5F089EA7CF08450057FFFF08A500ECC +:1001F0007FFF80E5F583F582F58145E23AFCF08BDF +:10020000D5188C219648D5DC8440D5E3383F1501BC +:100210009469CB048461383F1509381F0401F00745 +:100220008460EA50FE4A964BF188E26AE9098CA1A3 +:10023000548280FFE31C44123AFCE9E9D562F005E0 +:1002400038101D114E2200E04E8200CC8048422121 +:10025000F073969344022C6438F008004E27000691 +:10026000884000017FFFF0835AF0FF36F0035A0008 +:10027000FF3340203C0396AFCA2EF0054023A8016F +:10028000382009114E1700054E240026D504C1233D +:100290004E270022F1864E140004FE0AF086F00676 +:1002A0005EF00065E9184E240003FE925EF10065E1 +:1002B000E907F00150F0000140078013F081F006DB +:1002C0005EF000C9E9085EF100C9E905F2028C415F +:1002D0009611F082F00A845F4C304084F00B4C5051 +:1002E0004081F0015CF0004B4EF3008EF0025CF0B8 +:1002F00000274EF300893E27E15A3E27E159D56693 +:10030000380091018046C8048401380091093C07F7 +:10031000F05D38109101EA8ADD54FE02F104960383 +:10032000E0203C13F05EE8222E07E15AE209E804DF +:1003300040048001D5028A09E402540780FFC011FD +:100340002E07E159E204E8039A20D5028A04E40268 +:10035000540780FFC0069C89E0C240233C1A969156 +:100360003E97E15A3E47E159D506841F3E07E15AC0 +:100370003E07E159E222E80884013E07F1F92E0721 +:10038000F1F88C01D50484003E07F1F93E07F1F83D +:100390003C03F8FE2E17F1F82E27E0BE9606E24148 +:1003A000C01AE81A8407DD525A0801112E07F1FA23 +:1003B0005A0801072E07E1588E013E07E1582E0723 +:1003C000E158C80D84033E07E15884003E07F1F868 +:1003D0008401FCC6E9FB84033E07E1588400FCC6A7 +:1003E0008441F008E020E809F0048CC1E02097B1D6 +:1003F000E80480888123F1848C618CE196D897F998 +:1004000048FFFF155EF0812DE804F0095A08010647 +:1004100084003E07F1F8D5E38440D5E4FC0049FFB1 +:10042000FEC22E1FE3DA4E1400038400FC80FC4061 +:10043000B4800290800422608002E089225080050E +:1004400022308003E82F96B1E082810240A4880127 +:1004500040823C1A80EA4EA40004527500002260DB +:1004600080004034080140549801FEEC4031A876E9 +:100470008866E066E905E12380C94061BC1ACF03C4 +:10048000B6C0D50E8A484E240003FE929A7AFF1415 +:10049000FE7440421C9640209C568844B64084011D +:1004A000FCC041C2801340917001E124E83640A1B4 +:1004B000801340312801E06480A3407E280140522F +:1004C0003C1A4E740003FFFA8A654E34000540352D +:1004D00008018865228080019B558AAA406E200110 +:1004E000FF7440157001401284368A288822E02962 +:1004F000E9068A48E0414020BC1A8122CF03B72098 +:10050000D5CF9A7BFF1C4224842440421C96403164 +:100510001C768864B660D5C48400FCC03C03F90135 +:100520009606C057FC41EA7E85408127EA87E34072 +:10053000E84FDD588027EB8A8001001080C85A18E8 +:10054000014422000009441200E0B61F3C83720CF3 +:10055000801F804849FFFF6D80C0B43F3C07F01CFE +:10056000E020E90A3C07F01D40040001E001E80337 +:100570009603D502960BEA2C80494225047312019A +:1005800000092201000A441200ECF0813C83720D44 +:10059000B001804849FFFF4DF3013C17F022E061B4 +:1005A000E90A3C17F02340140401E023E803964BCA +:1005B000D502965BEA77806942350873FF8712118E +:1005C000800A1061810CEAC654A000FFD5B0FCC1BE +:1005D000DD9EFC2080C05000005050707FEC8027D2 +:1005E000FA44EA3980074C63FFFAFCA0FC418440DE +:1005F0002E16E41F2E87F216B63F2EA7F215EBC972 +:100600002E77F214F1818062808280C245C22ED49E +:10061000B43F549180FFE321E81D955988BC381EF2 +:100620000D0001E28001E23EE811994A38501511AF +:10063000E0C5E8048149810180C5E0A48C214074B3 +:10064000BC1B4042BC1B9648D5EFF1018C61884130 +:10065000D5E03E87F2163EA7F2153E77F2143C6BCA +:10066000FAA33C4BFAA1FCC184003C0BF9083C0BFB +:10067000F9073C0BF9063C0BF9053C0BF9043E0766 +:10068000F2073E07F206DD9EFC4851CF8060505EC7 +:100690007FA4A82BA86F2EA6E41FA8AA50050007C8 +:1006A000EBB9EA2880FFEADAEA28804A8007A8E95D +:1006B000B685DD42801F8420804ADD423C17FAA3C4 +:1006C0003C07EFBE80DFE020E9075EF085DD8001BA +:1006D000E902EA9496032E17E2FEFE0CDD5CDD547F +:1006E0009603811C140E7FEF84003C0BF909842FC4 +:1006F000EBF0B2104224A824DD428480EA31802746 +:10070000140E7FF3B21380468E01140E7FF2B27284 +:100710005004FFFF140E7FED44722ED4144E7FF769 +:1007200083C48144144E7FF580C4144E7FF6143E7A +:100730007FE8003E7FDC8003143E7FF4043E7FF3BD +:10074000E2034EF200BFA778A6F9D30A008080002A +:10075000E2A8EBFEAF48A750E2A3EA92AED0EB725C +:10076000C30F0053FFFE0033FFFFD30A0080800059 +:10077000E2A8EBFEAF48A750E2A3EA92AED0811CFC +:10078000B212B277E060E80DA77AA6FBD30A008028 +:100790008000E2A8EBFEAF48A750E2A3EA92AED0F9 +:1007A000A748A6D0E2A3E809C5038EA1AF48E26935 +:1007B000E8058C61AED0D502AEC808010001085032 +:1007C0008001140E7FEE040E7FEEE2A0E871040EAD +:1007D0007FEC98EC143E7FF138800D113C37F180AE +:1007E000E068E80D503F000141E18013043E7FEFD7 +:1007F000E068E8055035000140A180132E37F24D26 +:10080000CB042E37F244C317EAC7E674E9142E303E +:100810000295CB11EA9A2E37E2FE42378C245EF124 +:10082000BA98E90C440042CBE003E90BDD594031B2 +:100830008076D509043E7FEBD50644300096D5037B +:10084000443000AAE068E828040E7FE8043E7FF701 +:100850004C30400C043E7FF5500E7FD48C618CC12F +:1008600096D897B0B660D509C506EB72C304043EAE +:100870007FEDDB038CC197B0040E7FF0043E7FF167 +:1008800044F0004F38F00C08043E7FF6500E7FD83D +:100890008C6196D9B6603C37EFBEE068E8063C3321 +:1008A000F9098C613C3BF9098CA19768D58D040E40 +:1008B0007FF788898C01140E7FF78CE248FFFF3B9D +:1008C000DD45540002A0C8052E07F2465A0801056E +:1008D0008400EBD5D51F2E17E303EB7A400F2801D8 +:1008E00042F51C24FE0CE00FE9153C03F182427F27 +:1008F0001C24E007E8052E07E302EBD5D50B2E07F5 +:10090000F2162E17F215EA2AC0053C03F183E00720 +:10091000E9F3811CB20A001E7FD4AF80B209AE4059 +:10092000B216EB0AFCC0FC402E46E41E2E76E41FF5 +:10093000C43B50827FFF548400FF8D014084040833 +:1009400044A22C64890040920408C72981E080CA2F +:1009500084A00843000155C2003F5A40FF1A2247B5 +:10096000800039E0F11141E278074FE2000438409D +:10097000F1093DE7F1EE41EF10074FE200053C4B76 +:10098000F1EEAD5839E17202889E3841720A8CA1AD +:10099000972840421C0640F7A400CCDC8C02894713 +:1009A0004C047FD5FCC0FCC0FC4951CF8068811C41 +:1009B000140E7FEB220E000015FE7FE8140E7FE67A +:1009C000142E7FEAEA52143E7FEF140E7FF5145E78 +:1009D0007FE9EA31140E7FF2B215B23240A0080866 +:1009E0005005000A540007F8EA2815FE7FEEEA28B1 +:1009F000B21595899401140E7FEC8C08540003F80D +:100A00005013000815FE7FED541083F8EA2815FEF8 +:100A10007FF441FF8401813FEA28B21580FF8C07F3 +:100A2000EBB9EA2815FE7FF3EA288400120E7FEF67 +:100A3000EABA15FE7FF096064E0201C9811CB20D7E +:100A40008420804ADD42B20E8420804ADD42B21307 +:100A50008420B255DD42801F8420B255DD42440F10 +:100A600080003C0BF1EE2E07F06080A79401880710 +:100A7000EB56D0041A128001D5FD811CB20B8027E1 +:100A8000B24E503E7FDE49FFFF502E07F0608420BB +:100A9000445228F49708E280E822388285015424E1 +:100AA0000080C21B38338511844054A100FFE3400D +:100AB000E81238F2890140F43C0340F7A009E90943 +:100AC0004CA2000838A38911E06A40A1BC1B806ACF +:100AD0008C41D5EC383385098C21D5DD4014980044 +:100AE00045E22C64141E7FE78420815E141E7FF192 +:100AF00084A0041E7FF54C508082041E7FEB94A9D5 +:100B0000884180698420044E7FE74C3200163841CA +:100B100004111A4180014E440003FF225EF201914C +:100B2000E907044E7FF18C819721144E7FF1044E2A +:100B30007FEC8824D5E9443000FF84C0042E7FF286 +:100B40009670E222E856382518005A20FF4F54418B +:100B50000040C4068C21548080FF8023D50D97125D +:100B60004E4400089D098C22548200FF9648D5040B +:100B70009E5996488103384499113884A1114082C6 +:100B800020014E8400045284000004FE7FE9E10F3E +:100B9000E82C381485119A614E140003FE4A048E25 +:100BA0007FE9E028E82296AF048E7FE638138911AA +:100BB0009A61E101E80A811CB230B29038108800D5 +:100BC0008C2138120808D511041E7FF3048E7FF3A0 +:100BD000381088008C2138140808041E7FED949288 +:100BE0008841B4228881B6828C618CC196D8D5A701 +:100BF0008CA19768894248FFFF7E046E7FF42E46E1 +:100C0000E421804692818420445228F496C8E26010 +:100C1000E821043E7FF338318400CB12383285015D +:100C200096EFE083E90538338501ACD0D510049EFA +:100C30007FEE3894860240348C76ACD0D508049E82 +:100C40007FED3894860240348C76ACD08C218C4277 +:100C5000D5DE40100409141E7FED94C1041E7FF4FC +:100C60008E62844088613C97F0663CA3F0678022E6 +:100C7000045E7FED9710E285E843811CB294B2AA2E +:100C800038420911E0A4E80722F18000045E7FEAFF +:100C9000E0AFE931E124E93122F18000E12FE92DD3 +:100CA000811CB29338520800B2903842080040F2DA +:100CB0001400E823044E7FF3048E7FF09BC28887E4 +:100CC00088E800427FFF0073FFFF144E7FEE88E448 +:100CD000C71444400064FF644052BCB69769E345C2 +:100CE000E80C80A4044E7FEEFF2C40721CF697F9AE +:100CF000E347E8038C2196488C418E62D5BA2E27B3 +:100D0000E0D0E222E90EEA23966E9649C90A042E43 +:100D10007FF15CF100C1E90C84213E17F54ED50A44 +:100D200084203E17F54E8420141E7FEFD503141E39 +:100D30007FEF023E7FEF44123AFC3C27F1EE381081 +:100D40008D119401FE5444200400EA5E042E7FF4C9 +:100D50003C1BF1EE88023C13F1EA4C6000122223A6 +:100D60000000043E7FEFE043E906E0224020BC1B88 +:100D70009693D503042E7FEF1A230001D5EF84202C +:100D8000042E7FF59608E202E821042E7FEB9409F9 +:100D90008802807E4021F801044E7FF29690E24462 +:100DA000E811082180015A20FF0A045E7FF496AF03 +:100DB000A500382289019AA2AC80042E7FEC88021B +:100DC000D5EA8C2141EF1000D5DC05FE7FE8EB0A67 +:100DD000FCC0FC0084003E07F2263E07F22484207B +:100DE0008409DD41840B8420DD41FC80FC4122909C +:100DF000800022000000441104C0B61F149F80012F +:100E000080E280C3A488A4C9A50F025080083A0FCD +:100E10008400490031A23A0F8420B41FAC38F0019D +:100E2000AC30FCC1FC5644710504B18C81E6B65F60 +:100E3000F38183848105EA62EAA4814FEA62209FFC +:100E400080D03A251424EA623A2514243A239400E7 +:100E50003A2514204471054450AF807083CAEA6279 +:100E6000EB9F81FEEA62EAA4EA62EAA43A239400D4 +:100E70003A2794204471058450FF800C83CFEA62A6 +:100E8000EB9FEA62EB9FB467B67E3C23F9004E937A +:100E9000000554310001CB0B2E36E41F8E614C91BE +:100EA000C00A54310001C306806FD50644320918C8 +:100EB000D5034432097C54510004544400FFC52634 +:100EC0004E920025968EC21A445228E0EA582E709F +:100ED00008388E41385288005A7887075A50870C54 +:100EE000E682E916D50F5A5887074C81000E4E82CC +:100EF0000010D50C4E82000DD5054E82000AEA582E +:100F00008E414C81400480CAD5034462093C38318B +:100F10009101A08A422E0C73A88A542480FF9491D8 +:100F200088C2A08BA530422E1073A88BC806B41FB0 +:100F3000F101ACC0A430AC08FCD6FC44444105A887 +:100F4000B1C4810283833A2214003A2394202E569E +:100F5000E41E8048422E147338600911E026E835FB +:100F60008540148F8001B61F810AF101A638A6B909 +:100F70008801885C9690EA8380228009F583F2825A +:100F8000EBAAF202F503C0124004801096924201CF +:100F900014738120B41F8D41381025018001964BB8 +:100FA0004E140003840096038B008CE2B0084C7052 +:100FB0007FDE40042816880690015EF00100E903F8 +:100FC000EAF6D5044E04000384009600FCC4FC48F5 +:100FD0008003B67F003F806C8101F2828022F38122 +:100FE000222F8030F2892E36E430002F8064F48581 +:100FF000F287F586222F8034F388C02280612E7616 +:10100000E41EA64AA61B808842409C73380200005A +:101010008023962E8C2784C0C80DD51400307FFF06 +:101020008088A60042419C73380200008C24962ED2 +:10103000C0098CC1B47F97B080014C61FFF1F0050D +:10104000FCC8B41FE2C0E8FCF007878F50907FFF18 +:10105000549480FF8D21B00C409484088920F009BD +:10106000122F8015E04014FF800BD5135BC80F04CE +:101070004800009400350003004500028008420249 +:101080001C7339C00C088CC1B41F97B04C603FD999 +:10109000F1029432F08340A08000F001C0E84401E6 +:1010A00005B83A201400B00C2EF6E41FEADEF00773 +:1010B000C073F0010035000300450002B04C5A0037 +:1010C000014A8400878F84A0F084A6082020800134 +:1010D000880396024E05002141E01C074FE2001DE7 +:1010E000884496924E25001941E13C074FE20015D5 +:1010F00083C843E11C73380F000054200020C20C49 +:101100005420002F5A202F735420000F5A200F050F +:10111000C5724C0E40748C224C14FFD9E6A2E938FB +:10112000F00645C0002FA740E6B9E8A9F106942AC9 +:1011300088018C02802A8444F583EA39F503F1069C +:101140008CA1AF480035000300450002D5984C142F +:101150008024A60820208001880396028C2240501B +:101160001C074E05FFF688449692C5F240513C0795 +:101170004E25FFEF838843C11C73C5EA39CE0000BA +:10118000540E00204E03FF744C14FFE5D5054E535A +:10119000FF6FF004C8C6878FF005F108E2014EF238 +:1011A000FF74F002F103F20B023F801538100411B6 +:1011B000020F80124001881A9603E0204EF3FF656B +:1011C00000050002806842301C73F0050025000312 +:1011D000584000209C41F00196488C01960038410F +:1011E0008808F185F08148FFFF50F0048C019600DB +:1011F000F084D592838084A1D58F8CA19768D58FF8 +:10120000FC20443200002E67DFD42E77DFC4441266 +:101210002898844080A3992A5A08020A004200783C +:10122000AD0802418038AD098086D50800420068CB +:10123000AD0802418030AD0980878C418C248C62DE +:101240005A2804EB3E47F05DFCA0FC40EA233C97A3 +:10125000F955966E97C93C6403F944822898CF10DB +:101260008140DD405A00010D2E07F05DE340E904A6 +:101270003C0403FFFCC03C0403F8E009E9043C041F +:1012800003F9FCC03C0403FEE009E8043C0403FF4E +:10129000D52684618027814838040611950AE00923 +:1012A00044722898E81738250E11955AE049E9123A +:1012B000888788A7221200018A492252800140347F +:1012C000800142010424420194738020981AEB9B10 +:1012D000D5068C218C615A1803E180069603FCC068 +:1012E000441226EC5A0802054402003CD50344028D +:1012F0000020EA5DEA66EBB03A209020DD9EFC40DB +:1013000051FFF9F88400F186F297100F8085842050 +:10131000EB20442000F0F387F595DD42500F833831 +:101320008420442002D0DD42B0368420442000B026 +:10133000DD423C07F91FC805020F802A3C0BF91F4C +:1013400044022830842044200066DD4284003E07A9 +:10135000F2463E07F05C841F3E07F05A84003C0BC7 +:10136000F83D2E07F23DC80CEAEB2E10065C3E0756 +:10137000F23D9A8188013E27F23C3E07F23BF0069F +:10138000441229CCF217503F8086504F80873C672B +:10139000FAA33C74033049FFF979F08E84003E07CC +:1013A000F05B3E07F05E84003C0BF927F00E4E0226 +:1013B000059C84A02E26E430EA32D219001000C722 +:1013C0005A180212221000384E140003FE4A5EF032 +:1013D00083E9E810221000394E140003FE4A5EF043 +:1013E00083E9E8088CA19768EB12D5E88400F093B4 +:1013F000D5038401F0938402EBED8400F08BF09030 +:10140000F0858380F088E0C7EA524063BC1BF08A15 +:101410008E01F098000F8060F69CF09E4603FFFF5F +:10142000DD43F09FF108EA31E2204EF20565F10854 +:1014300044022ED438100500F18CF108944988013B +:10144000F09DF01DF10CA601E2204EF20545F008DA +:10145000F20AF10CEA6A444229CC380204009636BA +:101460004E020532F00638000511F107E0014EF397 +:10147000052B500F8085F08184E18408506F8248ED +:10148000F082F10844200040B6DFF783F00CF3054A +:10149000F5064900292B2E07F05C009F8085880700 +:1014A0003E07F05C8420440213008444DD424E93E6 +:1014B0000005EB38C862D57184008F213E07F258D1 +:1014C0003E97F25980274442130080464E15FFF3A1 +:1014D00040908013387204005004FFFF9603957A01 +:1014E00038820000982AF08923E0000050047FFF32 +:1014F000960340340011E067E817959A88C222A34A +:101500000000E15EE90E8C01960340A008088942C4 +:10151000B4A604F50000B6AA14FF806214F300001C +:101520008C6196DBD5E95EF0003BE80CF3099D8108 +:1015300095B2B46388C2B546B666F30914AF80624B +:10154000B7438C01960196C39F59E105E9055014F4 +:10155000FFFE964BD5049F41385204088C61E0672A +:10156000E8B696499CC98C2296DB964B8C013802D2 +:101570000C0838720408D5AB021F81248001964BF9 +:101580005EF085DDE902EA942E17E2FE9603FE0C7A +:10159000DD5CDD543C0BF9272E07F05B007F808576 +:1015A0002E57F23DE2074003BC1B3E07F05BEAEB1F +:1015B000D004DD45962EC0042E07F23BEB2E2FE023 +:1015C0000E985CFF0006E830DD45962EC00D021F28 +:1015D00081248001964B5EF085DDE902EA94964312 +:1015E000EAEB8E05D5172E000654E207E90D001F21 +:1015F000824BF0184C100009005F824AEA318E01DC +:10160000D003C102CD05EAEBEBCF8E05D503EBCFBE +:10161000EAEBFE0CDD5CDD549603E6E7F08984C05E +:10162000E80D48000B6AEBCFDD55FE0CDD5CDD54A8 +:101630009603F0898548480001843C03F840222F36 +:1016400081245CF0012DE905840740210056D50472 +:10165000840540210056501F86082E46E41FF01FC7 +:101660008E81880794028801509F824822007E2044 +:10167000F31EE04040203C1B8400972080C980205E +:1016800080A022F30000E04FE81C00A300038CA11F +:10169000E26A810A4081BC1BE34140A0BC1B802A56 +:1016A00000A300028068E28A810A40823C1BE3407A +:1016B00040A03C1B97688088800A8CC4DFE384A02C +:1016C0009C898A439D818AC4969097B05A280207C4 +:1016D00096DA964AF18FF38DD51D88619061965800 +:1016E00054F100015080FFFFE90F40A4001014AF37 +:1016F000800D50A0800240A500108C2114AF800FF7 +:1017000096DA964AD5078C2140340010964AF18F1C +:10171000F38D5A68020797229602F092F491D51D34 +:1017200088809081962054F3000150807FFFE90F5C +:1017300040A4001014AF801150A0000240A500107A +:101740008C0114AF801297229602D5078C01404479 +:1017500000109602F092F4915BE80260850044A0CC +:101760007FFF148F801420848003E103E90FE028B9 +:10177000E90D20848002E104E909E008E9072284F8 +:101780008000E14840853C1B8148048F80148D24F3 +:101790008D01548400FF148F80144C83FFE6EA7C93 +:1017A0004CA0003C220F812440A028015EF5005B84 +:1017B000E934E6B9E832EB22EAAC840080640250F6 +:1017C0008061C5215A38FF07003080E5004080E67F +:1017D000D51AEAACEA7780A142500873002280E56E +:1017E0009AD34E340003FEDA8C619698EA5C42107C +:1017F0000C73006080E68AC44E640003FFB28CC1A3 +:1018000097B0D5068C015010810C5A080BDAE645CA +:10181000E8045C630005D50284C02EA0065B2E1090 +:10182000065A50057FFFF0995000FFEE96005BE8E6 +:10183000020380019600F0968460F019E0604EF299 +:101840000A5CEB20951A8880F10DA7E3963AE00137 +:10185000E961F10FE020E95E00920002F11140041D +:101860008010E001E957F112E020E954F00A9C9958 +:10187000969043E02424E24AE84DEB20955288A05C +:10188000A62BF094201F8050F00DE020E940048F3B +:10189000800FE101E93CA66AF01140808010E10070 +:1018A000E936F012E008E933F0149A389602810024 +:1018B0004E040004528000005A88012A401484011A +:1018C000964A81014E140004528080005A880120FB +:1018D000048F80069A38881E04FF800A380401119C +:1018E0004014840181074280BC738028048F8006E5 +:1018F00038F40511DD5C880FFE0C22F28000221204 +:101900000000882FEA50F016E020E9078C419690FD +:10191000D5B38C6196D8D592F0134E0309EE001F13 +:10192000824AE6224EF309E9000F824BEA2A4E036F +:1019300009E4DD4085444E0309E04E6309D1222FBE +:1019400081243C07F91FE040E805F1108C219648FE +:10195000F190507F8248003F8085802784A04442D8 +:1019600029CC446FFF8040210007D31A2200800059 +:10197000049F8009E009E802C20F00908002048FF2 +:10198000800AA60B4204A0738804009000004094D3 +:101990009804109000008CA197688C24D5E7811CD6 +:1019A00084C0509F8248000F8085E2C0E82A94726C +:1019B0008829EB79A60BF30AA64A884042208C734B +:1019C000202100004E240019502F8085583400201B +:1019D000F2818440F283B73F14AF8002442000803C +:1019E00096D8444229CCF50649002680EAB6EA6F2B +:1019F000EA87E300E8048CC197B0D5D68401F08B68 +:101A0000400470015A08011EEBE9E626E91A002F8E +:101A10008085E64BE816EB2084A0443229CC584E52 +:101A200000208C04D22400107FFF00607FFE049F02 +:101A3000800A8823421324738CA1AF089768D5F2DB +:101A4000F1079600B63F3C17F91FF083F1828088BA +:101A5000003F808514AF8001F006441229CC502F3E +:101A600082484452283049FFFAB48100000F808533 +:101A7000441105C8F094B023EB08EADE221F81244C +:101A8000EA313C23F927F0993C07F921FE0CDD5C93 +:101A9000DD543C17F090E020EA6D80229693E454E8 +:101AA000E802FA24964BE001EAE7F196EA80842006 +:101AB000442000C0DD42B0278420EB00DD42F0145A +:101AC000501F824894028801F09A8400F092F01A24 +:101AD0004C700146EB79EA52A67AF08FA63B880259 +:101AE000F20FEAB2A600F091962E4E020136F011E6 +:101AF0005A082F04480000CC961FE60BF0894EF2DE +:101B0000012CF109DD55506F833842608073940CCD +:101B1000501F818838108000C10CF0145CF0002D3B +:101B2000E804EABCE603E908EBE24E020079D504DA +:101B3000800AF192D50284048E01501F808D960098 +:101B4000F18D9401EB85880150007A87F09BF009B4 +:101B500094048120EA808920F00DA67A00507FFF4E +:101B6000A63B88A0F00D976A200000004E55005358 +:101B7000F20FE0A2E84F880196024E05004CF119E1 +:101B8000E001E8482E17F2445A1801158025EA6A48 +:101B9000EB79F311382104004C21800DF206381145 +:101BA0000511A0B58822A8750213000C8C21121310 +:101BB000000C00148000C90EF20F8025EA6AF206BC +:101BC00038110511A0B48822A874F1128C2196480E +:101BD000F192EBE9E624E81EF20F8025EA6AEB7940 +:101BE0008841A6D05A380F17FA6FAED0F2063841A6 +:101BF0000511F1168A814E47000E8069A059B0A2E6 +:101C00008824A859503F808AB61F8029840149FF43 +:101C1000F90BF50DF11B8CA2F58DD99FF00994C439 +:101C2000EA808860A618C81E22038000F112A13441 +:101C300042500424EB999A6CFE54EAD1A6BB1213CD +:101C4000001C1203000DA67A8804A8348401AEB0EB +:101C5000AEB1AE72AE731023001E1013001FAE188B +:101C6000D519A63AA673E220E803AE33D505A672CD +:101C7000E201E802AE32A63BA671E220E803AE31F3 +:101C8000D509A670E201E806AE30D504840BB1A7F1 +:101C9000F08922938000F01CE009E8060003002090 +:101CA0008C01100300204E97001AF117F006A6BB16 +:101CB000A6FA49FFF9440213001B88201213001BE7 +:101CC00000130031E201EAE7E61410130031E906DF +:101CD000000300328C0110030032F0145CF0002D80 +:101CE000E90F22F3000D840342048024E00FE8088A +:101CF000EAEC85205A00FF058C01EB1E8520A033FD +:101D00002213000D8809A833DD55EA90FE0CEB96EE +:101D1000E009E8060403000A88091403000AF01623 +:101D2000404480014E470019F00920538003944439 +:101D3000EA808820B0A2A009503F808A8804A809C0 +:101D400020038002B61F840049FFF86EEAEC5A00B7 +:101D5000FF048C01EB1E8CE448FFFEBBDD55EB85D8 +:101D6000421E00730400FF4C80DCF0A7E2C8E84884 +:101D700094B4EA808840A1514E570026DD55503F6B +:101D8000833842330073A052400284099603A113A2 +:101D90008820EAD1A8599860507F823CB407EAD1E4 +:101DA0008805A85AB607A079A0128801A839A03AD8 +:101DB000001180328880A93AC1060201801BDD54DF +:101DC00010018033DD55501F8338EA4FF22AA00BF3 +:101DD0008CC18802F0AA00208021000F80BD97B03E +:101DE0008802100F80BD00208020000F80BC880278 +:101DF000100F80BCB027804049001DE8D5B8041FF3 +:101E0000808F4E17000A040F8090DD54F0A8040F55 +:101E10008091DD54F0A9F005B076940488018040EB +:101E2000F1274440003CAA5240147001AE52021FF8 +:101E3000805BAC44F12AA841001F8085801CAE5312 +:101E40002E27F05EE208E80D503F833842301073D1 +:101E5000003180318C01E2434021BC1B9600D5F358 +:101E600040FE20063E27F05EE82F96093C13F83D21 +:101E7000E220E8073C0BF83D000F80143E07F05AC3 +:101E8000EBB8500F8338420E0473002F80141020DB +:101E9000002E022F800E1220001D500E000155C092 +:101EA00000FF4DC47FF0F105EA87E2204EF20728DB +:101EB0008C219648E220F1854EF20722E300E904E6 +:101EC0004800071E811CF00C83888C019600F08C62 +:101ED00048FFFAB9F00B5A00010FF0088C01960088 +:101EE000F08848FFFAA12E07F23BEB2EF00EF0909F +:101EF000F085838084003FC7F25480204430003C4A +:101F00009688E25CE80C502F833842208C730021C5 +:101F100000208C21E20240013C1BD5F33C0BFAC6A9 +:101F20005BC801462E10066EE220E8413C37FAA35A +:101F3000840394D940318076001F8338000F8339A1 +:101F4000002F833B8820000F833A90218840EA7C51 +:101F500090413C0BF40E84009F913E07F0619E0976 +:101F600096DB9600EBF084A08C2197B08C41E020AA +:101F7000E91B8086E044E91580E004AF80064272E8 +:101F8000247338751D11E067E8038CA197683CF74E +:101F9000F40EE0EFE8033C7BF40E8C819720D5EB48 +:101FA0008C019600D5E53E57F061D50784003E07C9 +:101FB000F061EA7C3C0BF40E020F801C3C0BF83EF7 +:101FC000490014D73E07F246EA975A08010758100D +:101FD00080803C1BF902D506440FFF7FFE463C1B68 +:101FE000F902000F80868420F08B000F8087844BDD +:101FF000F08DB023DD47EA808420844BDD47EA7909 +:10200000960E4E0204EF4FC3000AEB294E02067BE8 +:102010008E013E07F23A480006765BC8010448008C +:10202000067284E0EA94509F83388047F086F789EF +:102030008107F088814744422F400004801E00142D +:10204000801FF48CF28AEA2AF20AF40CC80E2204E9 +:10205000800DE00A802040153C1B8141F108E02002 +:10206000EA6DF088EAB6EA6F2204800DF109F309FF +:10207000E00180204011BC1BF1893C63F436F1067D +:10208000978EE020EA6D97B1F086CE5DEABCE2C0A3 +:10209000E85ADD588024EA4F8001001080C7C11340 +:1020A00022F00009222000382250000A2230003994 +:1020B000884F04048001041480028865F48AEB26AA +:1020C0008040F40ADD588024EA4F503080C08001FF +:1020D000A65F5A180217A45A5CF087D0E9080400DA +:1020E000002FE002E904B0238421EAB4DD58EAAC11 +:1020F000EA4F02008061C0245EF12711E821D51D5E +:102100005A18011F2E17F244C91B5EF12711E81857 +:1021100002000060E602E914EA53C8072E17F238FD +:10212000C9042E17F23AC109EA2C806442330473C1 +:10213000001180C9C905C804EA808421EAB48CC1B1 +:1021400097B0D5A58CE19638E21C5094803C4EF3B4 +:10215000FF7684E080C814AF800A2E100E9DEA320C +:1021600080A7D110002000C75A28020922F0006A77 +:102170005EF7815EE9038CE197F88CA19768EB121A +:10218000D5F1E702E91F448000644085211652849E +:10219000000DE505E907E50A8008E9028409EA6F10 +:1021A000D50285055EF5015F8408E80284054205D5 +:1021B0000024854A40A02956F008E14014FF800819 +:1021C000D5048400F088850584A02E16E41F8E2196 +:1021D000EA58B0368E41F305D31FA6C34C30C00673 +:1021E000EB9558318001EBB1A6C14C314006EB951F +:1021F00058318002EBB1A6C2CB05EB955831800473 +:10220000EBB1A6C0CB05EB9558318008EBB18CA1A2 +:1022100097688C10D5E12E17F54E8520C926DD452F +:10222000EA349601C81FEA23964EC91E800349FF6F +:10223000F80E8120EBC69E449689E646E80C5220B3 +:10224000000944000078FE84440000A0EAC9840527 +:1022500040910136F0058E059600E606E806FB384B +:10226000D5048121D5028120EABCE603E823F005EC +:102270005A0802215BC8021F3C17F9553CF403F8C9 +:10228000E02FE818020F81A9021F81C796C3968B21 +:10229000E062EBFF96035EF000C9E90CEA9AEBCE30 +:1022A000E809000F80E4C806000F80F4C8034490DA +:1022B000006484003E07F245DD45960EC821DD45E9 +:1022C000EA34C81EEB1FC01C3CF407B65EF783E976 +:1022D000E9052E100F5F5A1002283CF4083C5EF707 +:1022E00083E9E9052E10106B5A10021F3CF408C256 +:1022F0005EF783E9E9052E1011775A100216DD45C5 +:10230000960EC820DD45EA34C81D5CFE0003E91ABC +:102310002E07F05DE21CE916F0065EF002BDE91240 +:10232000DD40C810EB1FE603E90584023E07F237E3 +:10233000D545EB27E402E8048C019600D5378402EA +:10234000D535EB27C830DD45960EC82DDD45EA347E +:10235000C82AEB1F5A08031D3CF407B65EF7814BF1 +:10236000E9172E000F5F5A0802143CF4083C5EF790 +:10237000814BE90E2E00106B5A08020B3CF408C288 +:102380005EF7814BE9052E0011775A000207E6E25D +:10239000E90AEBC6E40CE907DD40C80584023E0704 +:1023A000F236D50CEB27C00584003E07F237D50680 +:1023B0002E17F236C1033E07F236EB275A08020702 +:1023C000440000323E07F239D5092E07F2365A088A +:1023D0000206440000323E07F238EA53C0125A00A7 +:1023E00001058E019600D50284005CFE00033E07C5 +:1023F000F239E803DD59D503440000FA8920D50AF3 +:102400002E17F238C1075A1001049E0996003E07A4 +:10241000F238F00A42140024840AEB9BF08E840008 +:10242000F085500E7FFE9600508F8338F08C000FA1 +:102430008014E21C4EF202CCEABCE603E8142E0043 +:102440000EB68E01E605E80F2E000FC28E01E605DE +:10245000E80ADD45960EC804EBA7F087D5044400D2 +:1024600000DCF087DD455A00020A5BC80408EA5325 +:10247000C005DD40C80344900104DD455A00021147 +:10248000F00CE602E80DEB28C0085A000F07000F19 +:102490008392C0035A080F054400006EF087F007CE +:1024A0000034002E40A02400DD45EA344E03027FB4 +:1024B0000004001E0014001FF38FEA2AF00DF30F32 +:1024C000E60AE908941CEB85880100007ADC960690 +:1024D000C80EF00BE60DE90D941CEB858801000099 +:1024E0007ADCC0078423EB309221D504EB94D5022B +:1024F000802A5CFE0004E8153C03F9558E065CF06A +:102500000032E850EA99E606E94D2254000DEBC787 +:10251000D01A940285EA40F03DF6E0AFE914D542C6 +:102520002E07F05DE21CE93EF00BE609E93B500F97 +:10253000860894DC88600001FADCC834EA99E60772 +:10254000E81FD5305BC80106EA53C82CEAC4D52A77 +:102550005BC80217EA9AEBCEE803EA53C820EBC641 +:10256000E40CE91FF0065EF000E7E91BEA53C81926 +:10257000EB7CC817EB29C815441000C8D5135BC8FD +:102580000312EBC75EF001F4E806EA53C80AEB7CDD +:10259000C808D5085EF00321E804D504EB87D5020E +:1025A000EA8CF008C80EE6C2E90C2204000DF20E17 +:1025B000E040E807F20AFE15F208E24014FF800846 +:1025C00022F4000D5EF7812CE862F00CE608E85F6B +:1025D000F008C85D00340021E666E95904040003F0 +:1025E00040F00DF6EBCEE8538008F18F49001A0356 +:1025F000E603F10FE94C8008490019FDE60DF10FE3 +:10260000E846800849001A01E603F10FE940800816 +:10261000490019FBE60DF10FE83AEA99E611E911D4 +:1026200022F4000D5EF780C9E90C0434000ADD597C +:10263000FE1C0434000340F00DF65EF78041E827ED +:1026400000040002C02400340003EA318E01E0607F +:10265000E81E00040000C01B00340001EA528E0195 +:10266000E060E815EBC6842AEA50DD59FE445EF0CE +:1026700080B4E9065EF0814BE905EB87D503441091 +:1026800000B4882A5CF081F5E902EB94EA53C805AE +:10269000EAB0CB03EAFEC31384613E37F245EAB0E9 +:1026A000C30EE6C3E90CC80BC70A2E300E9DE2E349 +:1026B000E8065CF080FBE903441000FA503E7FFD21 +:1026C00096D8E663E84FEA8496CE4E3300D0C8052C +:1026D000EAB0CB03EAFEC307F205503F8188EB8BDB +:1026E0005A38010FF2065EF1008D4EF300C05CF027 +:1026F000808D4EF300BC4410008C480000B8C00A26 +:102700005CF0814AE9055CF0815FE969D566EB8799 +:10271000D5662E47F238EAFEC4125CF080DCE9068A +:102720005CF08105E904EB90D502EB684E33009F25 +:102730002E300E9DE2E34EF2009AD53A4E320097CB +:102740005CF080DCE9065CF08119E904EAC4D5029A +:10275000EB68F2095EF102594EF20089EB6848001D +:1027600000865CFE00034EF20082EA8496CE4E3371 +:10277000007EC805EAB0CB03EAFEC307F205503F6E +:102780008188EB8B5A3801205BC801065CF081041C +:10279000E96AD5143C37F955E46BE907F205503F77 +:1027A0008188EB8B5A3801085CF080C9E95F4410DE +:1027B00000C8D55C5CF080F0E9585CF0812DE956EA +:1027C000EA8CD554C0105CF0815EE9075CF0817D35 +:1027D000E9064410017CD5034410015EEAC7E674A3 +:1027E000E945D529EAB0C31AEAC75BC8010E5CF017 +:1027F0008118E9065CF0812DE904EA8CD502EAC46F +:10280000E674E934D5185CF08104E9065CF08119BE +:10281000E922EAC4D520EB90D51EEAFEC3275BC8A7 +:1028200001115CF0812CE9065CF0814BE904EB8737 +:10283000D502EA8C2E37F244C3194410017CD51618 +:102840005CF08104E9065CF08119E904EAC4D50270 +:10285000EB90EAC7E679E90A2E37F244C307441041 +:10286000015ED504EB90D502EA2DEA8496CECB1E0C +:102870005BC8011DC81BEAB0CB192E300E9F5A3819 +:1028800001162E300F61CB123C3007ACE67EE90E0C +:102890003C3007AE5CF18BB8E9095CF0808DE90350 +:1028A0004410008C84603E37F23AF205B0E3814177 +:1028B000EB8B5A3801075CF0808DE90344A0008C53 +:1028C0005BC8013FEA23964EC92B001F8359E625BA +:1028D000E827C826EB7CC824223F81A9EB28001FEB +:1028E0008357F38FEA2AF30FC80444F0015ED5033F +:1028F00044F0012CE06FE814043F80D8EB28001F5F +:102900008357F38FEA2AF30FC80444F001C2D503BA +:1029100044F00190E06FE8048400100F8359DD4516 +:10292000960EC006000F8359E6054EF301F6DD450D +:10293000960EC006000F8359E6074EF3020A840084 +:102940003E07F2352204000DE00AE8235EF000B5F0 +:10295000E90CEA998E06E604E80884023E07F2359F +:10296000840110040025D5155BC801113C03F955FD +:102970008E06E60BE80BEA99E606E90884023E07B4 +:10298000F235840010040021D504840010040021D5 +:102990002E07F2355A080213EB29E614E80F5BC83C +:1029A000010E8C013E07F23AD5092204000DF10711 +:1029B000E001E804840010040021F00512A4001DC9 +:1029C0008C01F0855084003C48FFFD335CFE000222 +:1029D000E908EB29C006E6C2E9048E013E07F23A97 +:1029E0002E57F244C512441000FFEA873C7C019147 +:1029F000F085F205440228D4DD425BC8024C95FA0A +:102A00008405407380F6D5544430003C80E54C5E2C +:102A10003FEC9D29501F833842128C7397205090B1 +:102A2000802850A080188004501080204C0E003167 +:102A3000502F8338EAA7006480060051002E4C62B4 +:102A4000C025226500012251000D9AB54E240003D5 +:102A5000FE925EF1012DE919508F833842800C738C +:102A6000A68900F400218A4F4E240003FE92E44B15 +:102A7000E90CE0A6E807502F8338EAA7107100217F +:102A8000D504E0C5E802AFC98C019600D5D080A47A +:102A9000D5BF500E7FFD9600E603E80695F9840346 +:102AA000407380F6D5055CFE0006E90290E1400324 +:102AB000840AF08784239439DD54F0888540EA3114 +:102AC000506F83388E01810A812AF089540500FFF6 +:102AD000E21C4EF200C50003001E0013001FC005DB +:102AE000EA588E414C014006C10AF2094C11000817 +:102AF000EA2AF1084013801A8001D502F007A07479 +:102B0000E020E806DD4592099606F086D5038401AB +:102B1000F086EBE2C0220203000CC8048401120319 +:102B2000000C2203000D3CF7F08EA075E00F02238D +:102B3000000CE813EA5E8A019643EAEC3CF7F08F5A +:102B400094012E200E9D40378000841C423100737A +:102B5000E023E8038400EB1E000300313C10034235 +:102B6000E201E84C2223000D3C100343E041E8461B +:102B70002E10068800330021E220004300324EF27E +:102B800001052E100689E220E90B2E20068CFEA4FA +:102B9000E062E9062E20068EE2624EF200F72E2059 +:102BA000068BC211E220E90F2EF7F05B2E50068A49 +:102BB00040F79406E9082E57F05E405288B7E2A02D +:102BC0004EF200E42E57F05E8C4140228856E040E1 +:102BD000E9082E57F05B2E20068AE2A24EF200D6BC +:102BE0008E21E001E80B2E00068DFF04E064E9066B +:102BF0002E00068FE2604EF200C9EAECC02BF00610 +:102C00005A080129DD55EA454214807351E08004D9 +:102C1000800681FEEA5DEAA4EA5DEAA483CFEA5D6C +:102C2000EB9FEBB03A2F1020000F801810A08020EF +:102C300050108020AE0F841FAE0E440228D438906E +:102C40002808F005E120E804EAEDEA83D503049FB3 +:102C500080058D415063003C48FFFF3A5A880108C7 +:102C600084003E87F2443E07F234D510EBE25A0866 +:102C7000010E2E07F2348C019600E6153E07F23461 +:102C8000E9058400EB243E07F234EABC3E97F2A843 +:102C90005A08020E5BC8010E001F80852E000654E4 +:102CA000E220E8072E07F23CEB2ED5065A0001057C +:102CB0002E07F23BEB2EF010C00D2E000658F1153A +:102CC00050000064FE448001DD5CDD543C0BF91FC4 +:102CD000D561020F802A3C0BF91FD55CDD45962E8D +:102CE0004E03F62FF109220F8126E02040103C1BF5 +:102CF000F18948FFF626854848FFF621838848FF7A +:102D0000F8FB84C0EA9480E6F086F689F68AF688B5 +:102D1000850548FFFA5BEA534E03FE0BEB7C4E033E +:102D2000FE08DD404E03FE05F08F0014001F000476 +:102D3000001EEA2AF30F4E02FDFC22FF81A95EF776 +:102D400081904EF2FDF6103F835948FFFDF2EB28CB +:102D50009E41E6304EF2FDF58E02E60D041F80D254 +:102D6000E80444F0060ED50344F005DCE02F4EF2F3 +:102D7000FDE822FF81A95EF781C24EF2FDE28400E8 +:102D8000100F835948FFFDDD8400EB1E850148FFCD +:102D9000FF3651FF8608FCC0FC003C300348FA0FA8 +:102DA0003C400349FEC4441FFFE1440079184061E0 +:102DB000A80842020473844044523AFCC007401001 +:102DC0000409882640108037D502802338128909EB +:102DD0008C4188045A2820F4FC80FC40EE982E1781 +:102DE000F54CE622E8088540EA7E80C7804A812AC1 +:102DF0008502D5453C0DF8079449FE04EAE14020E0 +:102E000008569648EA32846B004000C7C40B044061 +:102E1000002FE044E807FF0C8380BCAFBC2EFF0C02 +:102E2000BCAE8E6196D8EB12CBF0D5DEEA23EB84F4 +:102E3000966EC92B5A08012A9455B00288202203A5 +:102E4000000922330038A8092203000A8C41A80A8D +:102E500050008008A8C1800122330039189000106A +:102E6000A8CC8386BB2F9690A8C1B82EA80EA033FD +:102E7000A80FEAEDEA83EB495A900B1A02030060AF +:102E8000108300C8C00FD5D35A0002D85A0004D608 +:102E90005A0803098009F281EA40EAE0F201E220DF +:102EA000E8CCEB845A0801E78140D5E4EA82C03AD5 +:102EB000EA88B042806A490016D4DD45962EC032B9 +:102EC0008440802202038060C022000380C75A0829 +:102ED000011F9415B0C28803223380092243803831 +:102EE000A8C12233800A8C41A8C250300008A91919 +:102EF00080602243803918118010A9048387BC2F79 +:102F00009690A919BB2EA8C6A0FBA8C78C219648ED +:102F10005073810C5A180BD8EA88B042846049007B +:102F200016A0ED68FCC0FC424470010CFFCCEBE73E +:102F30008140983781228C0CF18149FFEB4CF101E3 +:102F40005A98016CDD55EB65422500738002408381 +:102F50001C0050210020A10450340008A919A71515 +:102F6000505000081044001EA10251C400E0124459 +:102F70000009A129003000221244000A5040001824 +:102F8000225200030040002312540008104E000695 +:102F9000504400D0AD6200500032507400AC105468 +:102FA00000D80250001FA001AE56103E0005AD63D0 +:102FB0001404002B8007F183F2824900151C1004D1 +:102FC00000E9800749001521100400EA02040060AE +:102FD000F202E60AEA88F0818380F103E90A00013F +:102FE0000009C807000400C95A080104109400CA67 +:102FF000DD588046EAC98002EB0043C50873002E05 +:10300000002922300068102000C9222E000F500035 +:1030100000C8E062E802AC84DD588046EAC902518B +:103020000060CD0C4430003CEA8842050C73A0C21D +:10303000A0031231006D1201006EDD5842608073F2 +:10304000EAC3109300C8D0048CA112530060FCC2E4 +:10305000FC403C23F9002E77E3C0968E9691440203 +:103060002EA48420853FFB5044520910109000008C +:1030700010A00001CA078C2196488C025A1812F839 +:10308000FCC0848096E0E267E8F73862910094E142 +:103090004C60C0158865A6D9E670E809206000007C +:1030A0005A67FF04E0C3E80AAEC0D50820F000016B +:1030B0005AF02004E06FE802AEC18C81D5E4FC4BED +:1030C00084003E07F0608420440228F44420004835 +:1030D000DD42B1CD44022C64842044200240DD4214 +:1030E0008007FA548420DD4284A0EA528085F08A69 +:1030F0008105EA3180C5F0842E07F060F789F08100 +:1031000044022C64F083841FF082442228F4F00AE5 +:10311000549280FFE3204EF2009CF00244322EA431 +:103120008C019602F0824002A0089603F087942951 +:10313000F08884E0880345C000FFF08B04AF800373 +:10314000806783DCF1049638E201E86AF108440202 +:103150002EA438000410E007F085E807F00B2000EB +:103160000001E0E0F086E903841FD5565BE8FF0C20 +:10317000008F8008F60783C938012101FE37380126 +:103180002109D5234DE480185BC8FF20E666E806D8 +:1031900038012101EB8038012109F402F3078C8109 +:1031A00097209622F082380111018389FE1F380191 +:1031B0001109D50A5BC0FF0AE666E806380111016D +:1031C000EB803801110984608C6196D84C9F000611 +:1031D0004C9E400680C4D50480C8D50280C9F10940 +:1031E0000005000038F09800FE3750F7800138F0F5 +:1031F0009808F105960050F08001EB394C77C00635 +:10320000441FFF80FE0FD508F10650F0FFFF4C77FA +:10321000800558000040EB398CE18D41D594E6667D +:10322000E80638011901EB8038011909F1015BE06A +:10323000FF065BC0FF048C22D5028C219608F0812A +:10324000F104F0038CA18801F08348FFFF62000FB6 +:1032500080043E07F060443228F48400B10DF1018F +:103260009680E241E80A3821810138501000FEAF13 +:10327000382181098C01D5F4FCCBFC4381002E0060 +:1032800006598540FE029603F284F08244200040F5 +:1032900044022ED48381EADA2E900E9D3CABF920B5 +:1032A000DD422E27E8692E07E868FA22EA6B38A487 +:1032B00001092E27E86B2E07E86AEA6B38A401099A +:1032C000440F800084A03C0BF1EE5C048008444273 +:1032D0002ED480C5802580E5F085812A44023AFC01 +:1032E000814838001501F083FA1442A280738401EA +:1032F00055E000FF502F7FFF969022350000F281AD +:10330000F203FED4906AF20596DB1A350001C20B77 +:1033100081E34E34000452F180005EF7801FE90320 +:103320008CC197B33CF7F1EE40F78C07E8033C3BC8 +:10333000F1EE5EF18032E805F202E043E80ED526B8 +:10334000E07CE90F8CE15EF1806E97F9E90AEAC74B +:103350008C613C3BF920D505E07CE8F58C21964951 +:10336000A6E05A38FF08002F800411E20001AEA049 +:10337000D50DF201E262002F80044021BC1BAEA0FB +:10338000A6A1E00240203C1AAEA18C015A0813B25B +:10339000A6205A08FF0610920000109200018CA18E +:1033A0008C825A58209DF181EA2F9D42443228E0B8 +:1033B00050000022854A85028487F101082180019E +:1033C00000F18000009180015AF8012C40F12400A6 +:1033D0005AF00212CA052222FFFFFEA4D502844041 +:1033E0004E93000623C28001422E1073E90740214C +:1033F0002056D50485E98440D50285E323C2801296 +:10340000422E3C73402128564E2500075EF105DD13 +:10341000E8059693D5058440D503442005DCACA887 +:103420008CA2D8CD84002E200E9DEB2484174261FF +:10343000007397B33C33F08C444000324223102495 +:1034400040210C56969384004E25000A80025EF1BE +:10345000003340023C1A540000F09603E0663C0B37 +:10346000F921E8053C03F08D3C0BF9253C03F925D7 +:10347000C0068E013C0BF9258401EB24DD45EA34BE +:10348000C8042E07F54EC00584003C0BF921EB243F +:10349000F004AC403C7BF955FCC3FC4084203C1B51 +:1034A000F9283C1BF9293C1BF8403C37FAA33C1097 +:1034B0000333844AE061E80B945AEA5E964B5EF06F +:1034C0008028E8092E27F255CA08FCC08427FE5C34 +:1034D000EA5E964B8520D5028521844F402188568F +:1034E0005EF10028E9095EF1004780E2E9034470DB +:1034F000004697FBD502FAF88443FED48444403159 +:10350000887696DB80A05080048084C084808144CB +:1035100038229111E0E2E80A3C03F929E0628C01CB +:103520003C0BF929E8039C319781E02251C200014C +:10353000E8095A4811163C03F9288C013C0BF9287C +:10354000D5155AA801109A8A4E240003FE92E44B26 +:10355000E90A3C03F9288C013C0BF928D503854185 +:10356000D5028540809C5BC812D5505280244C54B3 +:103570007FCF4E92000684003C0BF928FCC03C2310 +:10358000F929C207EB0242030424EA693C0BF84024 +:10359000FCC0FC0144620000EA2F22130012222327 +:1035A00000B4223300B6224300B5225300B8226390 +:1035B00000B9B6DF49FFE9FA8401FC81FC0284000E +:1035C000120F8007EA2F3C17EFBE502F800EF081BC +:1035D00049FFFE55F00149FFE80BF00149FFFF5F8D +:1035E0003C23F9022E100659EA9A841EFE16E02F9B +:1035F000EB05E805EA9CDD50EB05D50BEACB5A0854 +:1036000001092E0006593C17FAA1FE02E020E9F359 +:10361000DD40C806F001490074753E07F54DEB38F2 +:103620002E17E302E220E9083C17F955C1052E17D1 +:10363000F54D5A1801048400D503C0038E01EBD563 +:10364000FC82441200D8440226E4EAB7EB35DD9E42 +:10365000FC40440213408420FA40DD42840184206F +:1036600044200B9084C284E0EB42EA323C7BF902B6 +:103670003E67F540DD424900198F49FFE7F73C03FB +:10368000EFB83C0803493C03EFB93C08034849FF45 +:10369000FB8584013C7BF94A49FFEE24840149FF04 +:1036A000EDB149000953840149000956DD593E0036 +:1036B00006824400017A3C08033F440001D83C08DC +:1036C0000340440000323C0803424400015E3C08D1 +:1036D0000343FA093E0006888424FA133E00068953 +:1036E0003E10068DDD55842A3E60068B3E60068CBA +:1036F0003E00068A3E10068E3E00068F84C049FFBB +:10370000FFA244720910449228E09837A601C8101D +:10371000380398009E41E6308421E9088421EA2A92 +:10372000C00738039800441FFF87381480088CC2F4 +:103730005A6804EDDD5FEA2158010020EA8D84C15A +:103740008407EAC13C0BF9003C6BF90149FFFC829C +:1037500049FFFCB784003C0BF8FFEBD3444FFBFF61 +:10376000EBC43E07F1E4EBD33C6BF8FEEA683E079E +:10377000F1E4DD5FEA2140011002EA8DEAC1DD409B +:103780005A080106440288003C0FFC73FCC0840008 +:103790003C0BF94ADD9EFC00DD45960EC009840213 +:1037A00049FFEDA0840249FFED2D8402D508840174 +:1037B00049FFED98840149FFED258401490008CCBB +:1037C000FC80FC00EA238401EB42964E84023E0713 +:1037D000F540C1102E17F611C105EB4284033E07D8 +:1037E000F540DD45962EC804DD45EA34C003840467 +:1037F000EB4249FFFF283C13EFB83C5003493C0320 +:10380000EFB9D9043C500348D0073C1803493C08A1 +:10381000034849FFFAC3FC80FC403C63FAA33C84A4 +:103820000324808697B35EF305DD3C5403253C9466 +:103830000326E903444005DC3C6403279723AD9845 +:103840002E37F54E12800000AD48129100005A3814 +:1038500001293C63F063846FEB7AFEE44264182430 +:1038600040631CD6EBF7E06640333C1BACC03C33F6 +:10387000F06384C4FEECEBF7406218D6E066403398 +:103880003C1BACC83C33F063FAD8FFA442348C2410 +:1038900040631CD640719CF6E0C74063BC1BAD90F2 +:1038A000EA8496EEC337846FEB7AFEE440A19D561E +:1038B0003C33F0762260000042340C24EBF7E14305 +:1038C00040353C1AE06640333C1BACC03C33F076DC +:1038D000FF5C40629CD684A4405214B62230800023 +:1038E000E0C540533C1AE0A34051BC1BAD48FAB8B8 +:1038F00022310000FF6440529CB6E0A3EA923C53A0 +:10390000F0764254942440729CF6E0674033BC1B2E +:10391000ACD0EA8496FEC32EEA84A54096CEC313AB +:103920003C33EFCC97EB979BE0E6EA92ACC03C03CC +:10393000EFCDA4C89743979BE0C5EA96AC083C033B +:10394000EFCED5123C33EFBE97EB979BE0E6EA92C1 +:10395000ACC03C03EFBFA4C89743979BE0C5EA9671 +:10396000AC083C03EFC0A4D09743979BE0C5EA9610 +:10397000AC1022008000846440320C76E0034001E9 +:10398000BC1BAC08EBA722110000EA90FF044042E8 +:103990003C96E0244040BC1AAD10FCC0FC00840002 +:1039A000EA6CDD4558004000EA6C8409DD52C00431 +:1039B000DD45EB80EA6C8407DD525A0001052E07D5 +:1039C000F611C005DD4558000200EA6CEACB5A004A +:1039D00001052E07F611C005DD4558000020EA6CF0 +:1039E000DD53DD51960EC004DD45EA68EA6C2E0712 +:1039F000F62DC005DD4558000A20EA6CDD45C804F7 +:103A0000DD45DD50EA6CFC80FC0049FFFFC9DD4567 +:103A10003C53F94AD008DD453C0BF94A49FFFEBD4D +:103A200049FFFED1FC80FC4180C081412200006939 +:103A3000EBF980E28A01B61F221300062203006A16 +:103A400081238A01F081801FDD56E20AE817842075 +:103A5000844C443229488003EAB20040000ACC0B6F +:103A6000EBF9B620221300061090000AA841ADC45D +:103A70008401FCC18C215A180BF08400FCC1FC406D +:103A800080E080C1EA2F4450010C44322F40FF7C7B +:103A9000985D00208114C244001080C95A10014072 +:103AA00084208081988D88438C340221000840F165 +:103AB0000011E08F40413C1B97235A1864F5EA2C13 +:103AC000804342238473502100E000910006FAA253 +:103AD000A655421494730051000938100511E6A24E +:103AE000E9090001000A8E02E606E804E6A884411E +:103AF000E90DDD5842338073020180608440E603A3 +:103B0000E9053C23F43692499686E086E9083CF7BD +:103B1000FAA23C07EFDD880FE020E9028440800232 +:103B2000FCC0FC028400120F8004120F8005120FEB +:103B30008006120F8007EA2FF081840049FFFF669C +:103B4000B002501F800AB083503F800E49FFFE66CE +:103B5000223F80058400F101222F8004224F80063D +:103B6000225F80073C3BFAA249FFEBCBFC82FC487A +:103B70008400EA973E07F2A8440FFFBFFE0EEB0554 +:103B80008408DD525A000105EBAC5A08010DEA4CDD +:103B90008420DD493C03F8FFDD503C0BF8FF840036 +:103BA0003C0BF9243C13F8FF54008001C00D3C038A +:103BB000F9248C019601E6033C0BF924E905841EE7 +:103BC000FE0E3C0BF8FF2E100659EBC7E001E80C87 +:103BD0003C07FAA14E040003FE02E001E8054400A0 +:103BE00002008420DD49EA2F80C049FFFF9C2E0798 +:103BF000F2465A08010549FFE297FCC849FFF8EF71 +:103C0000DD40C818EA4DF08144022830F0823C0CB7 +:103C10000197F683B61F3C1C01923C0C01913C2C91 +:103C200001933C3C01943C4C01953C5C019649005D +:103C300073D6DD40C80DEA82E606E80AEB38C8080C +:103C4000EA2354108220C90480064900792D4401DA +:103C500005D851CF8030EAC0DD453A2E1420EA3431 +:103C60009601F0852E00065884C050800064EA3228 +:103C7000F08480E0812002038060C008000380E4BB +:103C80008026002380C849FFF9508CC197B050733B +:103C9000810C5A680BF28540EB374470003CEA8295 +:103CA000E340E81D804642251C7350010020A646D3 +:103CB0005A18FF43A6075A080140F005C00B22110D +:103CC000000FDD59FE442201001F42040024E020C1 +:103CD000E93349001665E60B8060E90784E0490096 +:103CE0000E9EEBE7F784D53DDD58802942118073A5 +:103CF000F00584811040810A50208110501080C846 +:103D0000C0068400AE142E27E390D504AF142E27EE +:103D1000E06C840AFE14AC0D84418023800AF38495 +:103D200049FFF90349005885F304EA2C80494221F0 +:103D3000847312010078EAC654A000FFD5B1E603EF +:103D4000E815C01D5A00014CF0054E030159F0045E +:103D5000EB498C019600F0845A080B04480001835B +:103D6000EB845A0802EE480000DE5A0803044800BB +:103D700000F25A0804044800012BD5E7001300C8DC +:103D80005A1801292223006ADD59FE842203006BA0 +:103D90008CE142040024E04097F8E903F004EABE15 +:103DA000F004EA40EAB8E220E903EBACC00FEB0311 +:103DB0005A0001CCEBD04E0200A6F004EA40EAB86B +:103DC0008C25E0204EF3009FD5C0F00484214800EC +:103DD000009CEB035A0801BA48000105001300C813 +:103DE0005A18022D2213006BDD5942140424EABB39 +:103DF000964BF00449FFFE455A080109EB038CE19C +:103E000097F85A08010B48000089F004EA40EAB824 +:103E1000E220E9F5480000E7EBD0C808F00484226E +:103E20004900158B840148000093F004EA40EAB889 +:103E30008C25E020E9F4480000715A100103EA6083 +:103E40002223006ADD59FE842203006B8CE14204C8 +:103E50000024E04097F8E903F004EABEF004EA40E9 +:103E6000EAB8E2204EF2FF722E07F62E2213006D02 +:103E70009600F0862203000985418A01F08A221308 +:103E8000006E2203000A8A01F08BEABCE602E80910 +:103E9000001300E6000300E5EA2A842040A0800623 +:103EA000B00ADD565CF0015F4EF3017C84215AA814 +:103EB000010448000168F206DD5902330060FE8407 +:103EC00040A12809E26A4EF2015A5A18010448003A +:103ED000015AE6624EF3FF3AA0B34410004BFE5481 +:103EE00004230008FE14E0204EF2FF300003010C12 +:103EF0005A08010448000151EB035A00010FEBD0AE +:103F0000C806F004842249001518EA60F004EA406B +:103F1000EAB88C25E020E9F6EB035A000103EA60D9 +:103F2000D56AEBF35A08020F8421F004EABEF004CC +:103F3000EA40EAE0E220E9568CE197F8F0048423B5 +:103F4000D5E38CE1840097F81003011310030112EC +:103F5000EA60EBF35A08010800030111C8068CE17E +:103F600097F8D5D05A000207000301115A00010347 +:103F7000EA60F004842150A3000CEABEEA8C4420DD +:103F800002EE8463800A49FFFD50F004EA40EAE053 +:103F9000E220E804840110030111DD40C82300037E +:103FA00001115A000107000301125A080120D50728 +:103FB000800A490018985A0801F8D51402030061D4 +:103FC000E603E8140003010BC00DD510EBF35A080B +:103FD00002118421F004EABEF004EA40EAE0E220A3 +:103FE000E805F004490014F3EA608CE197F8EA6010 +:103FF0008CE197F8F0048420EABEEA60EA2F0033EF +:10400000011481404E33FEA52E46E41E382E0C00CE +:10401000000300E5F4898840400E0C009690A7410B +:10402000000300E6F38888A0976880028025F28765 +:10403000F586EBAAF506F207F308F409C00B969291 +:10404000976A4222907338F509115EF7FFEC4EF340 +:10405000FE808C625A3810DC84011003011448FF82 +:10406000FE78EA97841DFE0EC702EA6884A0EB057D +:1040700044122948800544300B844022A4000021CA +:1040800000C7E642E9055A2004048C01960000208E +:10409000800AC2048E411020800A5052810C8C2C60 +:1040A000DBED44522F440012FFFF1812FFFFA66DF4 +:1040B000AE6EEAACD9F93E700E983E000E9DEA3025 +:1040C000EA975A080109540080013E07F2A43E070E +:1040D000F2A5D505540080013E07F2A4964E840255 +:1040E000C920EAE35A000115C0065A00021E5A0010 +:1040F0000310D5232E67F2A45A680120FA06441053 +:1041000007D03E67F298DD4FFA068026D5152E07B8 +:10411000F2A45A0001132E07F2A55A00010F8400E1 +:104120003E07F298D50A84033E07F298EA8CFA0714 +:10413000DD4FFA078421DD41EAE35A000105FA0662 +:104140008420DD41EAE35A000305FA078420DD41BB +:1041500049FFE1E649FFE00484003E07F58BEA826F +:10416000E609E807440201204412020449000565FB +:10417000DD40C81E4900700BFCC85A10010448FFFE +:10418000FEB702030060E6044EF2FEB20003001E1A +:10419000E61B4EF2FEAD84011003010948FFFEAE9E +:1041A00084205AA0010448FFFE8848FFFEA1FCC8F5 +:1041B00084A0800544322F4044200B84986B00106B +:1041C00080C78E22E622E8038C0196005052810CB3 +:1041D000DAF6C00584013E07F24C8401DD9EFC4006 +:1041E0004677FFFF50738FFF80C08027440228A8C6 +:1041F000FA5CDD4244023D4C8027FA5CDD422E47EA +:10420000E3C380062E77E85195228440446228A8B3 +:104210009650E227E8149552842096C8E267E80C8D +:1042200038300602389314028C21E1234034BC1B41 +:104230003833140AD5F38C418804D5EBFCC02E2703 +:10424000E85146180000840044423D7844523D2025 +:10425000E002E80B38320000CB0638328202E0235D +:104260004011BC1B8C01D5F584004452293C4442CA +:1042700028A8E002E80B38328000C3063832020278 +:104280008A613832020A8C01D5F5840044523D78A7 +:1042900044423D4CE002E80B38328000C30638321D +:1042A000020288613832020A8C01D5F5840044523A +:1042B0003D7844423D20E002E80B38328000CB06D6 +:1042C000383202028A613832020A8C01D5F5DD9E4D +:1042D000FC404432293C84813841800844323AD041 +:1042E0002E57E8513811820A2E17E3C3446228A8DA +:1042F000FE44944A884144723D4C842044423D200F +:1043000044922C3896C8E265E81338A30202383389 +:104310008602886A38A106028A6A38A20602E14348 +:10432000E8053832060A3804860A8C21D5ECFCC030 +:10433000FC4244823B3C81202E57E8512E07F0621C +:104340004C5000E04402293C8420844BDD4244026E +:104350003D788420844BDD4244023AD0843FFA5CAD +:10436000DD4244022C0C8420FA5CDD4284E02E679E +:10437000E851E0E6E81638041E025A0FFF11440225 +:104380003AD0843E38101E0A4402293C8421381059 +:104390001C083C7E02D980678421D5058CE1D5EAD2 +:1043A000842080612E07E3C384A0FE1C9402880948 +:1043B00044423D2044A228A844F23D4C45C22C383A +:1043C000D60F39E50E0238279602885E39E01602CC +:1043D000383E160A8A5E3822160A8CA1D5F284600D +:1043E00044A23D78E061E83944022C0C84C0387066 +:1043F0000E02F08145C228A844523D4CEB71E0C04A +:104400004EF2007D2E07E3C381E642F38073384EFF +:104410001E0238029A0294B288043844BE024C400C +:10442000401B38051800C817EB9AF58338000802BE +:10443000F3825A07FF138441382518089C89B65F18 +:10444000F2013801060A8027804949FFFF43B43F43 +:10445000F503F3028CC1D5D3EB71E0C0E93649FF17 +:10446000FEF0842080C145C23D20EB71E0C0E82A07 +:1044700038051800C825380E1A0294B2C821EB9AE4 +:1044800038001A025A0FFF0744022C3838701A02FB +:10449000D51C8481384518084442293C3842000024 +:1044A000CC0F44422C0C9CC93802060A44122C380A +:1044B000B67F38108802804949FFFF0CB43F8CC199 +:1044C000D5D5846048FFFF90EB71E0C0E81A2E0755 +:1044D000F06244123AD08C013E07F062EB9A5A7FA8 +:1044E000FE0448FFFF2B38241E0238701A0A386475 +:1044F0001E0A38709E0280C2D5F38C6148FFFF749B +:10450000FCC2FC01F081840080C13E07F062843F60 +:1045100044023B3CFA5CDD42843FFA5CEB9ADD42AC +:10452000F0013E67E85149FFFE5CF00149FFFF02E0 +:10453000FC814E050022E402E9204050080A842252 +:10454000CD058E22964A8440D507D0FC8C22964A0F +:104550004050040ED5F64E15000E94919CD140505B +:10456000040E42F18C24E0AF8E224021BC1A964A00 +:10457000D5F38002DD9E8400DD9EFC0049FFFFDB59 +:10458000FC809ACB8A02FEDC42300073DD59400188 +:104590008016DD9EFE5CEA6A8001DD9EB4208461A7 +:1045A0004E140003847F4E140003FE4A84404040B2 +:1045B000880EC4048C419690D5FB5221001F969022 +:1045C0004010880CFE5CB6208002DD9E8420C0096D +:1045D000E602E9058C219201964AD5FB8001DD9E19 +:1045E000841FDD9EEA58E202E804EA31EBAFDD9E6B +:1045F0008400DD9EC00BEA588E414C010008C106C4 +:10460000EA318E01FE0DEA95DD9E8401DD9EFC20DF +:10461000B4A0A101B461A00980C54E540003FFAA53 +:10462000EB56E026E90880C44E440003FFA2E026D2 +:104630008420E8078422405284B6404204968421B4 +:1046400080E34E340003FFDA44607FFFE0C7E907F0 +:1046500080E04E040003FFC2E0C7E80884C28C215A +:104660004031987640001816964AFE2C42020C758E +:10467000C11484814E040003849F4E040003FE0293 +:104680004633FFFF50318FFFE060E906C1058E2100 +:104690009401964AD5FAFE24AE50FCA0FC00646357 +:1046A00004024430800064330403DD476463040380 +:1046B000FC80FC4480E0440105E8B18380828123D2 +:1046C0003A200C003A230C20220380082233800772 +:1046D0008A048A61F082FF1CFE0242400473F08566 +:1046E000F381F386F487B0054E370005441208ECD9 +:1046F000D503441208E08046EB815A08020A80067E +:10470000EBA93C23720D49000EFB5A000118F00280 +:104710004E070006B005441208D4D504B005441273 +:1047200008C88046EB815A08021D8006EBA93C238D +:10473000720D49000EE55A080110EA2CEA4D4204B8 +:104740008473F203221000692200006A8A22F18138 +:10475000A0718A01F082B001DD565CF003E8E90D3A +:10476000EA2CEA4D42048473021000690200006AD8 +:10477000AC7F12038008FCC4EA89C83FDD584412AC +:104780002F4C42148073000080DAC0085A001F07C3 +:10479000F503C50444001A94D80C04008038EA29B3 +:1047A000C80B0400803CEA29C00700008104C8044B +:1047B00002008069D502F003AC3F000080D9C00838 +:1047C0005A001107A171C50444003B11D80C040024 +:1047D0008038EA29C80B0400803CEA29C0070000A1 +:1047E0008104C8040200806AD5C52210806AA03105 +:1047F00088018422DD54D5BEFCC4808044122F4C35 +:10480000DD5842120073002080FC8402542100F025 +:10481000102080FC2E27F541100080BA100080BBCC +:10482000846084018C411200805B1230805C122015 +:10483000805AEA81FA38420204738C08AEC4DD9EC5 +:10484000FC2044423B68FA588064423088735061CF +:1048500080082E57E0938043A6F4E2659D59E90352 +:10486000AF74FCA0FAC4423098738C6494D9886405 +:10487000A582AD9B4460010C44322F4C42309873AA +:104880000231805AE663E91DA5932230000797F3B1 +:10489000E0E34061BC1BAD93A5928C4497F3E067C5 +:1048A00040333C1AACD0A4D322000008979BE0C050 +:1048B00040303C1BACD3A4D2979BE006EA96AC12E6 +:1048C000FA18424080731052000CFCA0FC43844054 +:1048D000814080E181229412880738338A11B42AFA +:1048E00004450001225000019D918A618AA496B07E +:1048F000F382F5835A280403844094928847220166 +:1049000000009A4122010001F1849A84F2854C3022 +:10491000C005DA038400FCC38400EBBDB044B002E0 +:10492000502F800749FFFE754E0500048401D50213 +:10493000841F4E9200044C907FEF80465A6004041E +:104940008120D5CA8401FCC384003E07F58F3E0751 +:10495000F299DD9E441227085A080205440200908D +:10496000D50344020080EAC03A209420DD9EFC403A +:10497000EA792E70066F961696004E0201372E07C2 +:10498000F5843C93F909E6032E30066B2E80066E03 +:104990003C4003323C27FAC13C17FAA33C53F6BC17 +:1049A000E91584C240A10401406118D6E0CAE904B7 +:1049B0005EF5012DE90B3C63FAC0E6D5E9075CF230 +:1049C00080C8E804EBE33E67F2559591E0C1E80545 +:1049D000C20484403E27F2553CA00333E141E80580 +:1049E0005A00FF048C01D50284003E07F5843C2365 +:1049F000F929EAC33C2BFAC03C1BFAC13C63F840DE +:104A0000D8043C6BF6BCD50588A690A13C5BF6BCEF +:104A10002FC7F58E4FC30007E02AE8049C1D9600BF +:104A2000D50280032E57F299CD6D2EF7F0615AF81A +:104A300009373DC0033485EAEB2B40F79807E82F90 +:104A400087C441E0FBD65EFF0028E90A5EFF012D26 +:104A5000839EE90345C0012C41CE0011D50345C01A +:104A600000283CF7F40E40F784014EF4000452F79E +:104A7000800040F7F007E8133DC7EFBE85E6EB2B5B +:104A8000E02F4EF200A6C2193DC3FAC6EA90EB2B06 +:104A900040F789F65EF780294EF2009BC019E2824A +:104AA000E80D3DC0033444F0001EEB2B40F7880AAC +:104AB000E0CFE8049C1ED50BC00B85EA95A24063AD +:104AC0003CD6E0C2E805E02AE9039C1A960084601F +:104AD000E2893E37F58EE9053C33FAC6E268E925FE +:104AE0003C33F928E203E821E289E80484023E0726 +:104AF000F58E3C03FAC6E208E9182E07F58EEAEEB9 +:104B0000D5125A5002E6540E0002C8652E07F58EE3 +:104B100054300004C30A3C33FAC63C400331E283FC +:104B2000E904EB6B3E07F58E2E07F255C0048E01AB +:104B30003E07F2552E300659E023E8123C07FAA151 +:104B40004E040003FE02E003E80B2E10066D840302 +:104B5000FE0C9002E040E80484003E07F2552E0768 +:104B6000F58E3E07F2565A50011CC50B5A50021ED4 +:104B70005A58032A49FFDAE449FFDAD68400D521DE +:104B8000C00C2E07F5852E10066AE201E9058400A7 +:104B90003E07F585D5158C013E07F585D514C8135C +:104BA0003E07F58F8402D50DC80B2E07F58F8C01BB +:104BB0009600E2E03E07F58F8403E903D504840103 +:104BC0003E07F2992E17F2998400EBCCFCC08400CA +:104BD00048FFFF7F3C0003319403E009E998540E3D +:104BE00000FD3E07F58ED593FCC0FC2080802E365C +:104BF000E430EA77424088732E67E2F6500000BB4B +:104C000084A09649E2A3E814A6805A28040ED10C89 +:104C10009FC70222005AA5F88A474E240003FE923D +:104C20009691E246E9078CA19769EB12D5EC8400D6 +:104C3000FCA08401FCA02E27F589C2048E413E27EA +:104C4000F5892E27E3D9969E4E2206ABFC4D812195 +:104C5000F087EA2FF08D84003E000EA23E000EA3E6 +:104C600084C0EB1081469201F08280E63C03720C16 +:104C70009201F083EA87E2E04EF2011EDD58442201 +:104C80002F4C42238073000100BB83824E0201102F +:104C90005A0803044800010C000101065A080104E7 +:104CA000480001062211000822010007F197EBAD30 +:104CB000F096C905F103E00156A780018400EA5F80 +:104CC000FA04420500248500F0814044A800A62192 +:104CD000E300E83AEA89C803E702D502E706FA18D2 +:104CE000E81EF4014244007350120008B0168829EF +:104CF000F48449FFFDEDF4045A080122888900027A +:104D00000018DD50EA5FEA89C8044E820005D51715 +:104D1000E703E815EABF58000010D510F10142146E +:104D200000738C28B016882949FFFDD25A08010863 +:104D3000001E00E0440FFF80FE0FEA5F50340001C8 +:104D4000548180FFD5C350350001FAA496CF850069 +:104D50004255142494DDA623E300E81DFA18F581DA +:104D60004254007350128170B0168829F385F48480 +:104D700049FFFDAEF501F404F3055A08010A001ECF +:104D800000E080C05410809FFE5F101E00E0EAB675 +:104D9000EA6FD5E2B83854100001C90AEA29C00800 +:104DA0005A082004FA1ED5034400004EEA5F000EA4 +:104DB00000BA5A08013AB93CBB3854408002C417C3 +:104DC00054018002C014FB18EA814203A073500012 +:104DD0000020225E000222800001E105E808AD41CA +:104DE000025E0007AD42025E0008AD435401801030 +:104DF000C808C40754018002C804EABFEA68EA5F31 +:104E0000B83896569616C105C808EABFEAEED5042A +:104E1000C004EABFEB6BEA5FB8389606C805EABF84 +:104E200058000008EA5F048E003A54040F00C017CF +:104E3000EA4D802749FFFEDB5A080112EABF001E37 +:104E400000E9540000F9EA5F400420098C0F961F26 +:104E5000548080F040840004108E00E9B83854106B +:104E60000060C913B93C54108060C10F003E00EAD5 +:104E70005A38010C001E00BC5A100208B93A5410EE +:104E80008F00C903103E00E754000061C810000EF7 +:104E900000BB8E01E603E80BF017F102E00184018C +:104EA000E8043E000EA2D5033E000EA38CE197F865 +:104EB00048FFFEE25A68010FEB64C821FA18EA596C +:104EC000C82FEB5EC82DFA188026DD41FA18EB9446 +:104ED000D514CE26EB345A000105EB935A08012174 +:104EE000FA19EA59C81D2E07F587C81AFA1984213C +:104EF000DD41FA1944100096DD4FD512EB345A000B +:104F00000105EB935A08010D2E000E9CC809FA19F1 +:104F1000EA59C8062E07F587C803EB5ED5E7FA18ED +:104F2000DD4A5A0801182E100EA23E07F5865A10C7 +:104F300001062E100EA35A18010684013E07ED7AD1 +:104F4000D51B3C100751EA24C91A3E07F588FA1808 +:104F5000D515FA18EA595A080113FA18DD4AC80F8C +:104F6000EB345A000105EB935A08010A84013E070D +:104F7000ED7A3E07F586FA188420DD41FA19DD4AFC +:104F80005A0801103E07F5875A68012DFA19842046 +:104F90003E67F5883E67F586DD41FA188420D51016 +:104FA000FA19EA595A08010FFA19DD4A8020C80A8D +:104FB0005A6801093E67ED7A3E67F587FA19DD41C7 +:104FC000D511CE10EB345A000105EB935A08010BB2 +:104FD0002E07F5875A08010784203E17ED7A3E0711 +:104FE000F5882E600E98CE10FA188026DD41FA1949 +:104FF0008026DD4184013E67F5863E67F5873E07E2 +:10500000ED7A3E67F58846000FF050000F00F094EF +:1050100084E0EA52F0819201F09544622F4CEA87D5 +:10502000E2E0F0844EF20428DD5842638073EA2700 +:105030004E02041E5A080303EAAE000301065A0892 +:105040000103EAAE221300642E07E08FFE0CDD5C44 +:10505000DD543C140324E020F185E8039603F08539 +:10506000EB915A000104480001059479440216109E +:10507000880184428420F086DD42FA38EA31844493 +:10508000F08384003E07F58AEA81EB8C8420DD42C0 +:10509000000300A18420F08FEA89005300A0F0886B +:1050A000F00380618E01F08AF003F1828E02F08BB2 +:1050B000F00381018E03F092F00383C18E04F0931C +:1050C000F00183818E0181218081F08CF00FE20557 +:1050D0004EF30085002300A3000300A2F28EF2012C +:1050E0008E42F289F2018E43F290F2018E44F291E7 +:1050F000F20EE240E96FF201814542A00873F20D21 +:1051000038A12911F205E04AE862C503F20CDA0A77 +:10511000F20851CE00018C8A55CE00FF9723C2249D +:10512000D535C004F20A4C01400851CE000155CEDD +:1051300000FF8D2AD5165A500104F209DA0851EF02 +:1051400000018C8155EF00FF9723D51E5A00010501 +:10515000F20B4C01401A51EF000155EF00FF8D2179 +:1051600040948011D511C516F20CD2145A50011C6E +:10517000F209D2195A500222F210D21F5A500326B5 +:10518000F211DA25D522F208C2F0C004F20A4C016D +:105190004006894840850011D51A5A000105F20BD6 +:1051A0004C014007F202884A9693F282D5105A00C9 +:1051B0000205F2124C014005886A96DBD5085A00B8 +:1051C0000305F2134C014004882A964B8C0196008B +:1051D000D5908CA1976848FFFF7BF002E100E908B9 +:1051E000E003E906E061E90484013E07F58A000373 +:1051F00000D94E4600054E960016D519E124E81256 +:10520000F115FA58E20144123B6842138873A688EC +:10521000542100FCE80458210001D5035821000264 +:10522000AE88F10611C0800011E08001001300DAA1 +:10523000EA2AC008FA38EA81EB8CA64058108010A0 +:10524000AE40000300D9E602E905F1018E22E0013B +:10525000E910000300DAE602E905F1038E22E0011D +:10526000E908FA38EA81EB8CA64058108020AE405D +:10527000EA5154100060C11C001300E7C91904531F +:10528000003C54128060C114001300BB5A1001117D +:1052900092A59205974F960FD80B2EA7ED7A5AA894 +:1052A00001085A100406008300E64E82032AEA86AB +:1052B0005A080104480000E1C0065A0802044800E8 +:1052C0000291EAAE005301045A58010AB4065EF096 +:1052D0001388E805EA51EA294E0202CA00A300BB7E +:1052E0005AA00203EAAEEB0CE6024EF202C14402FF +:1052F00016109539043300388880541180613C03BE +:10530000F17CA6A0C12D008200013CF3F17D42108A +:1053100008244217A0753C83F17E85218A281093CA +:1053200000BA4E17001C54118060C114EBADC912B5 +:105330002E17F2A85A18010F2E97F58A5A980105D0 +:1053400010A300EAD50D101300EA84253E17F58955 +:10535000D5078422101300EAD503109300EAA66152 +:105360003C43F17DFE14420204753C43F17E8A0405 +:105370004E07000496FECB1DE644E9258E43E0224D +:10538000E82200030100C01FCD1E000300FE5A08E2 +:10539000011B001300DAE622E916EA318E02E02052 +:1053A000E812001300D9C105EA528E01E020E90B92 +:1053B0008401EAD78402100300EAEBFD58000010D4 +:1053C000100300E02E07ED7A5A080112041300388A +:1053D00054108060C10C001300E0EAD7541080F92B +:1053E000101300F0100300EA100300E8EA865A00E8 +:1053F0000103EAAE44923B68EBFDFA58814942A3AF +:105400008873100300F08420800ADD42EA7C1205D4 +:105410000002120500042E17E862EB418500E2014C +:10542000EBFF54A000FF45C00014540400FFE20A43 +:10543000E80D4005200180264210707380018E1413 +:10544000802749FFF9FF8D01D5F1FA184293807347 +:1054500050948020A43212048001A43712048002E8 +:1054600002030008120480038404100300BB8400BC +:105470001203005BEAAE947944021610409080005B +:10548000EA2F000300EA00248000003480010413A6 +:1054900000385A08011F3C03F17C3C43F17DFE14A7 +:1054A00042020C753C33F17E8A034E070013E64638 +:1054B000E9102E07F589C80D54008060C007EA89FD +:1054C000C8052E07F58A5A0801058402100300EA70 +:1054D00054008060C8050403003CEA29C012F0149F +:1054E0000453003AFF46EAA0D80C000300E75A082C +:1054F000010954008010C8058402EAD78007EB1C1C +:10550000020300755A000104480000E1001300E89E +:10551000C10EEA51EA294E0200DA5A180104EB647E +:10552000C006EB5F5A000104480000D1EB915A0815 +:105530000105FD0349FFF986042300385401006486 +:105540005A00040C540100604E020078540100041B +:10555000C074EB5F5A08017244823B68FA188028D5 +:10556000421380732E07E0930030800C4C01C0661C +:10557000A4CBA54A8C249B5D50A07FFFFA04229007 +:10558000800323E0800297698463EB568480148F44 +:10559000800243C38024E06AE819E66A8003E902D6 +:1055A00084099600881C048F80028C04940188086A +:1055B0008C612200000396D8E004810040823C1BED +:1055C000E020EA6D80888020D5E7FA78EA814203FE +:1055D0008C739A612230000B964B2200000CC40899 +:1055E00044A000644210A82440109036964B2E47E9 +:1055F000F58BCC23F407A5279521E0A4E81EF50739 +:105600004044F801972102528008E285E816880399 +:10561000846240F00DF63C4403252E37E096FEE40C +:10562000E06FE80BF00702000009E0204EF301866E +:10563000540100014E02018254010060C008EB6475 +:10564000C803EB5EC004EB5F5A080141968EC23E70 +:10565000000300F4C83B0403003A54000F00C836AE +:1056600049004BE7021300723C23F0468A01FA2EF0 +:105670009601FE54E020E80CEA51EA29C027EB64C9 +:10568000C825EB5EC823EB415CF0003DE81FEB91C1 +:105690005A08021D44822FEC8540509300A0F0046C +:1056A0004CA0015C0004001B5A08040A4CA38008AB +:1056B00080098028490001765A00010950550001EF +:1056C00054A280FF5084010CD5EBEA51541000081D +:1056D000C16B001300E8C103EA29C866EBF8222376 +:1056E0000067EB318A22F198221300688A01EBAD42 +:1056F000F099C9048422DD54F099B018DD560013E6 +:1057000000BC5A180208101300BA80074900095F4C +:10571000D542001300EA5A1801073C1DF81EE2208A +:10572000E90DD5395A1802383C2DF81E502103E8EE +:10573000E240E831101300BAD521EA89C80BF0190C +:105740004E040003FE0294015EF00588E815F0188F +:10575000D50AF0184E040003FE0294015EF0046EB8 +:10576000E80BF0194E040003FE02E201E805040311 +:10577000003C9606C8108402EAD780062213001166 +:1057800022230012806749FFF7968007EB1C8401F3 +:10579000100300F4EA51EA29C807EA865A0802050C +:1057A0008401100300E7000300EA5A080115EA51DA +:1057B000EA29C0110403003C9626C80DEA865A085F +:1057C000010BEB5F5A080108100300E68402EAD7D8 +:1057D0008007EB1C440215F8842038101D09D547BA +:1057E000EAACDD588041422380730001010E5A006B +:1057F000013F443215F83C27F43238019D11E04056 +:10580000E9048C0138019D0938019D11E040E91B34 +:10581000EA5C42138C73001081005A180115C21300 +:10582000EBF9224300119AD0FE4442120C73EA5E57 +:1058300022430006AC7722130012FE2442008C7330 +:10584000EA69EA5BEBF884004E1500073C03720C32 +:10585000E020EA6D960322130008AC3784004E1551 +:105860000006EB10E020EA6D9603EA5B8CE197F806 +:1058700048FFFBD580E684A045C0010CF004D03F72 +:10588000000380BB509280015A0804350203805AFD +:10589000E609E93054A480FFF0044CA0002C8106F6 +:1058A00042857073000400BB5A0804200204005AA9 +:1058B000E609E91B2213800822038007222400073F +:1058C00022340008EB263C13F17AFE4CE220E90D6D +:1058D000000380E95800000F100380E9000400E98C +:1058E0005800000F100400E95055000154A280FF39 +:1058F000D5D4545480FF5073810CD5C1FCCDFA58D7 +:1059000044923B684293887380098028DD42EA7C98 +:1059100012048002120480048404100300BBEBFD17 +:1059200010A300E810A300BA10A300EA1283005BE2 +:10593000100300F048FFFCBD8007EB1C2E17F58814 +:105940005A10010448FFFF48EA51EA294E02FF4479 +:10595000101300E648FFFF408007EB1CFA38EA818D +:10596000EB8C50000020A442A403AC77EA5B8403D4 +:10597000100300BB2E07F5408C015410000F0003EC +:1059800000FC540000F0FE0F100300FCEA51EA296D +:105990004E02FF228401100300E648FFFF1DDD9E3A +:1059A000A6C9A680E262E90FA688A6C1E262E90B59 +:1059B000A6CBA682E262E907A603A64AE201560741 +:1059C0008001DD9E8400DD9EA708A6C0E264EB8610 +:1059D000AED0A701A6C9E283EB86AED1A70AA6C2C4 +:1059E000A64BA603E264EB86E201EAE7AED2AE5331 +:1059F000DD9EA641A600E220E9058C219A089600CA +:105A0000DD9E8400DD9EA643A602E220E9058C21EE +:105A10009A089600DD9E8400DD9EFC453C13F8FF4D +:105A20003C2DF80A96463C0DF8063C3DF8073C5DD7 +:105A3000F8083C6DF8092E47E02DC1039521972009 +:105A40002E900E982E16E430FE04F1834213182493 +:105A5000F1842E17E861FF6CF1852E17F2A8FE2461 +:105A6000F18650148002F187DD5C405284B6FE94CA +:105A7000FF14E725F5824050080A406004D64050E4 +:105A80003C1B4002080A40023C1BFEDC84408100B3 +:105A900040A18556F68883C5EA4DB65F8381001F15 +:105AA0008000F203E2224EF200A70260005A4E622A +:105AB000009D2220000322100004E6C5AC871210CE +:105AC00000088484E8039F319721F481004001019C +:105AD000CC1D024000678A440240006896938A24E5 +:105AE000964BFE4C4211087381E1F104E02FE80E61 +:105AF000005000D6001000D9D906005000D7001081 +:105B000000DAD104842110100101B4BF44400043E5 +:105B10008420FF2C8041F489F401E244E831FA84C6 +:105B20004251102440F0140088A488A0024780034A +:105B3000A5EB02F780048A87A56CF705405794010E +:105B4000E2479723976BE81300F000BC5AF8011066 +:105B5000F70940F3880050F7801A40F78808EA7E7A +:105B600040F3BC001247800412578005FF6C42527C +:105B70001073E0258C414012BC1B9690D5CEE6C335 +:105B8000E8145A68020DE725E805F207F406E04438 +:105B9000E806E02AE80414A0002CD504F10814104B +:105BA000002C0410002CD51F00200101CA05F102B1 +:105BB0001410002CD5189899E043E90840FF080715 +:105BC000402F3C1B40217056D502804A944AE02366 +:105BD0001420002CE907E10140143C1B4010F03672 +:105BE000D502802A1410002BB43FEB128C21B63F53 +:105BF00048FFFF57FCC5FC4384C080E0F18181422F +:105C0000810345C229482E07E850E2C0E825840CEC +:105C1000813C429300730004800AC01BB449F10127 +:105C20009A3AF08204048001402508019AC8400491 +:105C30000001F085B002F284F383DD560224800473 +:105C4000E202E807B004DD5602148004E220E9060F +:105C50008CC197B0D5D98400FCC38401FCC3FC403F +:105C600051FFFDE0F084A600F188F38A4E0201C8DE +:105C70004E2201C6E60C8020E902842B9608E64CF1 +:105C8000F0878002E902840B9600F0833C3DFA170E +:105C90008400B08F842088403831060A8C215A183D +:105CA0000BFD5000002C5A09E4F63C03F8FE960662 +:105CB000C0083C03F8FF9606C807F0818401D507A9 +:105CC0008401F081D5048401F0818400F086B00F56 +:105CD000F085F008F1089DC4F00385408E01960020 +:105CE0009405500000248801F089F0048C08F08CA1 +:105CF0004607FFFFDD43F08D8400048F800CF082A7 +:105D00008400F08EEA2F81200004001E5A00FF0458 +:105D10004800011EB4C7A0BAA179A0FB88460414AC +:105D200000018865B408EB2680C0A07E0404000250 +:105D30008041E00140203C1AE020EAE7949541C10F +:105D40000796B40804140001B447A0F949FFFF55B1 +:105D50005A080104480000FCF0015A08012FF00421 +:105D6000A6005A08012B0013FFFCDD58EB75EAC9A9 +:105D7000001100C75A180222EBE95A18011F5001FE +:105D800000E000247FFCA645A606E222E9160024D6 +:105D90007FFDE241E91200147FFEE201E90E0014EA +:105DA0007FFFE220E90A4FC2000940037017A07D7F +:105DB0009405E0014EF300CE3CADFA17F006E34641 +:105DC00040A33C1A3C6DFA1595B5C00A40FE180771 +:105DD000E9073C6DFA1695B5E0DC406E3C1AA03C34 +:105DE000E00AE955F00AC03344922F4005CF800DF8 +:105DF000000480C75A08010DB408041400012224CD +:105E000080092234800AEB26E01C41C03C1B5094E0 +:105E1000810C44023AC44C907FED40FE28074EF2BC +:105E2000008E3C1DF8064000840A90228801FE0482 +:105E3000DD5CDD54E00A4EF200823C0DF807FE0402 +:105E400040F005F640FE3C07480000780013FFFCD8 +:105E5000DD58EB75EAC902010060E603E86F3C1DFE +:105E6000F806EA904000840A90228801FE04EB962E +:105E7000E00AE864502100E0A615EBC9A696EA6B9B +:105E80003C14032438F48111E02FD557A07DE001A4 +:105E9000E85EB468B447045400019A9AA07BA0F964 +:105EA000A03A9AEB425084244250007342918C24D1 +:105EB00083854291087349FFF36F4E040009FE0287 +:105EC000D50640FE24069001E8069322EB56E0201A +:105ED000E9F9D50441CE0809D5FA4E9200224FC205 +:105EE0000022FE04F08EB00E49FFF35AF08BF00E44 +:105EF00040902537B00E149F800E49FFF351F10BEF +:105F000088019640F00E405070B78402E63FE906E3 +:105F10008E21405280B69648D5FAF58ED504802958 +:105F2000D502803C84014000040C9007F10E9406D9 +:105F3000E001E80DA03DE00AE90A426328243CADF7 +:105F4000FA1792C5E34640A33C1AD5033CADFA17B5 +:105F5000F102F0055084003C38A0060A80018C0153 +:105F6000F082000F8008F107E2014EF3FECBF0054E +:105F7000507380205000002CF085F0094C707EBEDC +:105F8000F003F107F207E201F103B18F800640113F +:105F90003C1B49FFF2B84470003C3C4DFA1784208A +:105FA00044023B3C84AB44922F4044A0010C850149 +:105FB00087DF3820060280624230947338330E0245 +:105FC0004C32400539E0060AD5154E25001404FF71 +:105FD000800894CD38378C0004FF800442F11C7394 +:105FE0001037802681E942F1A873108780C81027F6 +:105FF00080E48C21F3039688E243E9DC51FF8220A0 +:10600000FCC0FC4084814042040CE4024020040CAB +:1060100095A19DE550927FFBE923846090018C61FE +:106020005A0801FE40210C0E4001840C8500E04915 +:10603000E903E0E2E8168068E046E806FE944021C5 +:10604000040E8C61D5FA8103814484A0D30491416C +:106050008CA1D5FDE4AA880A9041E9EAD502840022 +:10606000FCC0FC00B4204E140003FE4AA0814E2464 +:106070000003FE9284C05003000F4030800DC30324 +:106080008CC1D5FA4001000DC8FC4010980D40218C +:10609000180D4200842442010873EBDE4000180C06 +:1060A000FC80FC4184E0812044A0010C2E07E860C4 +:1060B000E2E0E83280C94263A873EA27C02A2213CB +:1060C000000322030069222300048A01AC75AC7727 +:1060D0002213006AB61FEB418A22ACB612230008D5 +:1060E000F1815A080111A43312030069A434120388 +:1060F000006A000300D9100300D6000300DA100381 +:1061000000D7D5075A080206801FDD56EBABE9EC35 +:106110008CE197F8D5CCFCC1B440A0C1E043E807BE +:10612000B660A881B401A089A809B641DD9EFC43F0 +:1061300051CF803894E2507E7FD0A8395001800A38 +:10614000540007F8EA28813FEA28502E7FD4815F67 +:10615000EA28811FB627EA28B4228008804380C439 +:10616000A8F9EA39A0F9B4278043801FEA398420CE +:1061700080FF8041800196C8E266E8093834060253 +:106180008803383386028C218843D5F640001816E0 +:106190004031187684209688E246E80D38240602BD +:1061A0008A403824860A382386028A433825060A1C +:1061B0008C21D5F284408EC1E046E82684609B3273 +:1061C000E064E81F955A4004940040141400144EF3 +:1061D0007FF2142E7FF3143E7FF4145E7FF549FFA7 +:1061E000FF9D045E7FF540051400987D49FFFF96F2 +:1061F000EB72042E7FF38C6196D8044E7FF2D5E1CA +:106200008C419690D5DA8482406310D638041A0205 +:1062100038139A02EB0AFCC0FC46FA440080801650 +:1062200081408420B002509F801CDD47800984207B +:10623000FA44DD47EA7996264E0200842E600E9DD0 +:106240005A680114DD53DD51960EC80FEACB5A008F +:10625000010D0205005C5CF03B11E907000500BB85 +:106260005A0802043E67F591EB1F5A0001058400AD +:106270003E07F5912E07F5915A00016484E02E0740 +:10628000E860E2E0E85EDD5880CA42638073EA2796 +:106290005A0802559C768400B0C222208000382122 +:1062A000820A222080013824820A8C018C345A0808 +:1062B00005F5DD45EA34C8065A8001085A88023BD4 +:1062C000D514DD40C012D5F9EB0CE602E933F0033A +:1062D000F10284428820EA5EAC75B409041480019E +:1062E0008801EA69AC36D5260223005BE443E90D58 +:1062F000B0028029804A8067848349FFFF1AB61F55 +:10630000F181AC35AC76D515846080238003E20240 +:10631000E80BB102384202028824384482028C0120 +:1063200088649600D5F5EA5E40318876AC75ACF6A7 +:106330008502A435AC37A436EA5B8CE197F8D5A08A +:10634000FCC6FC40B4E0A142A109B4C10490000124 +:10635000A00A423390244212902442102475423302 +:106360002475FE3C42031475CB04C90BEA95FCC0AE +:1063700040000C1640108C36A811B6228402FCC0D6 +:106380008003FCC0FC448142B1833C83720C80E3F7 +:106390003DC3720D442106143A210C003A230C200F +:1063A0004E17000AE028E8074EA70006E15CE80364 +:1063B0008400FCC45A08011222F20008223280082C +:1063C00022920007222280078A6F40248801F286E9 +:1063D000F38542213C24D50BA0F9B4A72222000664 +:1063E000FEDAF385F58622920005FEAC4221A47305 +:1063F000F2878124F0814E160006B005441208ECA5 +:10640000D507E0288400E906B005441208E080467C +:10641000EB81F1034E15000AE101E907A0B14E2519 +:10642000000540FE0807E82F4EA60006B0054412FE +:1064300008D4D506E15CE906B005441208C88046D8 +:10644000EB815A0802B7F1034E150006E1014080C6 +:10645000BC1AD5028500A031B7074E050006E01C26 +:10646000400E3C1AD5028400F101A8395A18010ADD +:106470002214800722F480088B018A0FB707A839FD +:106480008401FCC45A080296D5E28841A10140313A +:10649000040A80A34250907340428896B4A0A90198 +:1064A0004230947340318876B660DD9E846AFE5C2B +:1064B0002E37F063C3202E27F064E642E90396935B +:1064C000D5028441E220E8119509E0049A41E905EA +:1064D000CB0490219A41D504E022EBC09A41960961 +:1064E0008020C8078421D50588409691E222EBC020 +:1064F0009649D503E220E9E98001DD9EB4604E357E +:10650000000BE023E908A0014E050006E040560715 +:106510008001DD9E8400DD9EFC4080C12E17F62E9A +:106520008102C904EBB83E17F62EEA2C420404732C +:10653000814022000005221500192E77F62E8A01CF +:1065400055C380FF4E040003FE02221500062225DB +:10655000001A8A224E140003FE4A427084244270BC +:10656000007344023D9038102202C106944988E12C +:106570008423407384F73870220A84003E07F06356 +:106580000205005B2E17F62EE603549080FFE952B9 +:10659000DD40C850EB38C84EDD53DD519626C80D9E +:1065A0002E07F590C0038E01D505EA82E602E905C3 +:1065B00084053E07F590D53E02150063840AFE343B +:1065C000E001E93844057E40400070164273A4247F +:1065D000E20744123D84E80FDD5FEA2154610010B8 +:1065E000CE072E27F5915A20010584C2D50284C01A +:1065F0008441D50640F00409E2EFE80584403820E4 +:10660000A008D5103810A000C10DDD5FEA2154614B +:106610000010CE072E17F5915A10010584C2D5023D +:1066200084C092E2407380F784013E77F0643E07B5 +:10663000F0638006FCC0FC21EBE784EBEB845A0896 +:1066400002232213001322030009025300618A016E +:10665000B61F221300142203000A8A01F081EAC344 +:10666000D0048CA1125300610003010AC80C801FE2 +:10667000DD560213006288014410FFFEE020E903AA +:10668000120300628EE197F8EB49CFD9FCA1A76015 +:106690005CF2803CE80F956A88A3AE2BA62094029A +:1066A0008803AE42A62038218209A6208C01AE20A4 +:1066B000DD9EFC4084C044707FFF808638919A1133 +:1066C00054A300FFE0E98CC14074BC1A549300FF4E +:1066D00040453C1AE325E9F3E0E2E80695228864A8 +:1066E000AE1BAE5AAC98FCC0FC598122002F80F042 +:1066F000120F8014F287002F80F4F384F283F003EA +:10670000EA588384F281F5852E26E41F121F801536 +:10671000F2865A080105F13B8400AE088400850129 +:10672000B61F4E82010850047FFFB04AB08A38601D +:10673000821194428822EA6F22708001F001425354 +:106740008024400E140038001800401024024C141D +:10675000FFEA4014A4058146F188401024024C143D +:10676000800F50257FFF8EC1961097B3F082400EA8 +:1067700018004014A405EBD1F188D54EF101E14198 +:10678000E8F1F108F204FE0E8430FE0E401514000C +:10679000FE17380E0408F0035A080114F005F33A06 +:1067A000F43B380005118027F082F202800AF58957 +:1067B00049FFFF6FB43FF002F509E001EA6DB61F33 +:1067C000EAC640A00011400E2800EBD1D5C74E65A7 +:1067D0000028F108F204FE0E8430FE0E9875FE17B4 +:1067E000380E0408F0035A080113F005F33AF43B9D +:1067F00038A005118006804A8027F58949FFFF49A6 +:10680000B41FF509E14040A03C1BB75F8EC197B3B0 +:10681000400E1800EBD1401024024C14BFDAF007F0 +:106820008CC197B05A00080584408002D509F00158 +:106830009E81F00240200807840040001806F106FF +:106840008E21E0E1E83D97F98AC09CF9F00196DBE2 +:1068500042518024F002802640A0080041EE14003E +:10686000E141E92A80018480401E00003810940034 +:10687000401484024C14800F8020C417B10A8E018A +:1068800038022209400408088804ACC1EAB6EA6F5D +:10689000D50CF101E001E8F18C0196038481D5E586 +:1068A000E141E9DF8C21964B380F0400400480025F +:1068B0004C04FFF8D5D6E462E80748FFFF34E4E271 +:1068C0004EF3FF318AC0F0018EE197FB4233802402 +:1068D000F002404E0C0088028040E0464EF3FF2359 +:1068E00080068420405E000038528C0040549402A0 +:1068F0004C54800F80C0C117B04A8E013800A209E5 +:10690000400408088801ADC1EAB6EA6FD50CF5016C +:10691000E005E8F18C0196038421D5E5E046E9DE47 +:106920008CC197B338521800405494024C54FFF86D +:10693000D5D5B41FFCD95A18020CEA5C4422304069 +:10694000EAA700310008543180F010310008EA5CF9 +:10695000EB75EAA7101100C7DD9E44223040EA5CC7 +:10696000EAA78002C10AA0528C215420800F001097 +:106970000008EB97FE57D50400110008EB971010A4 +:106980000008DD9E4420010C44123040EA6AA00A4F +:10699000961FDD9E84003C0BFAC9DD9E2E57E3C294 +:1069A0003C13FAC984409610E205E80E808240301C +:1069B000880E96C68C41CBF884414021100CFE57BE +:1069C0003C1BFAC9DD9EEAF6DD9EFC0084213C23D7 +:1069D000FAC94010800CFE4BFE563C1BFAC9EA7700 +:1069E00044122F48EA6A80018C048420DD42FC8036 +:1069F000FC00490029F4EA7A5A08013BEAE944120A +:106A000017603C23FB5B382081099C8196905A20BB +:106A100001053E27F59CD5048C023E07F59C2E27E8 +:106A2000F59CE64AE922840044307FFF97005A40F3 +:106A3000010838508101E0A3E80396EB80448C0103 +:106A40005A080AF63E27F59CEAD52E57F59CD00742 +:106A5000EB4A8420FA58DD4249002C00EAE949005B +:106A6000274D84013E07ED8CEB3C49002C48FC800F +:106A7000FC00EA30C80684213E17ED8C4900394EEF +:106A8000EAFFEAB1FC80FC02EAD52E27E38B84C042 +:106A9000E002E8038C0197802E07F779E202E938DB +:106AA000EAC3842044421760E041E90C3832050112 +:106AB000C306E2604001BC1B4060BC1B8C219648B1 +:106AC000D5F4EB4A8421380019013C0BFB4F8400BC +:106AD0003E07F778FA00DD493C03FBBD5EF0025942 +:106AE000E805500000C89601D50344000320EBDC04 +:106AF0002E07F596E403E8048C019600D502840382 +:106B00003E07F5968420EB4AFA58DD42D5038C0106 +:106B1000EB558006490026F2EA30490027B9EA30F1 +:106B2000F081EB01F082EAD0F083F102F001F20390 +:106B3000EA7FEADF8421DD49FC82FC2084003E07F5 +:106B4000F60BEA7A3C63F902500000653C0BFB4708 +:106B50002E07F7793C0BFB4EEB3C92C197865A000F +:106B6000010A5A0006044800007D49FFFF4348001F +:106B7000007949002A9280E05A08010F49FFFF85F9 +:106B80008007490038D784003C0BFACA3C0BFACF87 +:106B90003E77F60BD566EA7A5A0801645A68011105 +:106BA0008404DD52C00DEB5BEB179201EBABE80206 +:106BB000DD59E001E9052E07F7788C01D502840044 +:106BC0003E07F7782E07F7785CF0003FE90BFA00F4 +:106BD0008420DD4984003E07F7783E07F596EB5B9D +:106BE000EBDCEACB3C13F06F5A08011D3C53FBBDB4 +:106BF000D91984005A6801053C03FACA8C013C0B80 +:106C0000FACA3C13FACA3C03F073E220E92A840072 +:106C100049003890EB2D8420DD4984003C0BFACAF2 +:106C2000D5202E07E38A3C23FB5B8801E002E819AC +:106C3000EAD55A0001173C03FACF8C0196015CF0AB +:106C400000203C0BFACFE90D84003E07F59C840040 +:106C50003C0BFACF84063E07ED8C840649002B4F8F +:106C6000EA7A3E07F6B48401DD52C00AEA7A5A088D +:106C700001048400D50284013E07F6B3D5048402E2 +:106C80008421DD498403DD52C005EAFF84088420A5 +:106C9000DD498402DD52C00649002AC484048420F0 +:106CA000DD49EACB3C0BFB4A3C03FACA3C0BFB4BED +:106CB0002E07EEFE2E27EEFCDD5C50002710EA6B5F +:106CC0002E27EEFD842AEA6BEB02420304733C0B91 +:106CD000FB4C840ADD52C00A440004008420DD49D4 +:106CE00044020FA49C438443EA39FCA0FC013C0D00 +:106CF000B9613C0FFD66FC81EADC5A000112FC0020 +:106D0000EADC5A08020584033E07EDD8EADC5A089B +:106D1000040584013E07EDD849FFE53BFC80DD9E7C +:106D2000441204804420003EA608AE89A68A54007E +:106D3000005F5800005B969FAE08AE8A441217347D +:106D40001200800E4400003E1200800F12208010BE +:106D5000DD9E2E17E3D82E07F5A2964EC90AC81657 +:106D60003C0BEFB8440003E83C0BEFB98401D50CB1 +:106D70005A08010D440001163C0BEFB84400059081 +:106D80003C0BEFB984003E07F5A2EA799606C009EC +:106D9000DD5FEA2158010002EA8DEAC18401D511C4 +:106DA0002E17F5A15A1801103C4DFC7C3C5DFC7D72 +:106DB0008024849D402204023C2FFC7C3C5FFC7DAF +:106DC0003E07F5A1DD9EFC00EA2280C0C80649FF0F +:106DD000E9F140030006FC8049FFE9EC84003E072E +:106DE000F5AB8401FC80FC4F814080018381F282FD +:106DF00049FFEBEEEB75EA2C806242350473802389 +:106E00005BC8020F2241800D227180172231800E53 +:106E100023E080182260802122508022D5128C70BD +:106E20005050802423E08016224180035010803887 +:106E30002230FFF0227280032260800322508004FF +:106E4000EA2C422504738022002100C7E642E806AE +:106E50008400501E7FFF4800013D029080605A90E0 +:106E60000106022080615A28010F8400502E7FFF06 +:106E7000E002E8EFF502944388258C01AD0AACCB23 +:106E80009601D5F7E642E8080010810E5A10010578 +:106E900084A0480000EF96004011F801F081509E58 +:106EA0007FFF9A27F186B61F8420149F8005049FD8 +:106EB0008005E029E81C50908001B00E944B88209A +:106EC000B41F04FF80014284802440843C0E890763 +:106ED00012808002048F80064284A02440843C0EED +:106EE000891E1280800340148013D5E2E643E9D165 +:106EF000EA2C44822F40EB30402404000021010E94 +:106F0000CAC89BA6B41F90C18A06F087F0019B5D9A +:106F10009401F0889639F0892E07F54090A1F58408 +:106F2000F08B84A3F009405314B6F683F60788A0CB +:106F300084094003001688059603F08C50940100E4 +:106F4000E08784A18921127F801514FF800DF00550 +:106F5000E040E839B01640810C0840F02000F00312 +:106F60009C51F601FE0C4000180EF6098806F60743 +:106F7000FF8CFE74F6084010980E882012178002CD +:106F800004048002F10B961F4C00C006020F80180B +:106F900012078002B0168900021F8015F60D220428 +:106FA00000024012181B964BE001E909021F8015F0 +:106FB000E0E440123C1B964BE020E80284A08C41A8 +:106FC0009691D5C6F706F00484238AE02E07F54093 +:106FD000409F0013F083F00444623040EA5084097B +:106FE00088294003801688019603F086DD584265A3 +:106FF0000073E07E8420815E14FF8007F005E020AE +:10700000E838B096950B40811000F2049C0904FF0B +:107010008001FE8440213C0E42F3802442078024FC +:1070200004FF8008884940003C0E880212040003D7 +:10703000A032F203961F4C014006020F800C12048E +:107040000003B0168880804322020003F407402525 +:10705000101A9693E002E90940FF0C07804340258F +:107060003C1A9693E040E80284A08C219649D5C74B +:107070008420503E7FFFE0234EF2FEECF202940BA0 +:107080008840CD03B10ED502B11688048C21A5022B +:107090009649AD12A403AC13D5EFF3029483884351 +:1070A000A512806497235EF21A95E90344301A947E +:1070B000971B4E4400038460A513ACD280649723D1 +:1070C0005EF23B12E90944303B118C01ACD39601CE +:1070D000E001E9E4D506971B4E44FFF98460D5F63C +:1070E000FCCF0010006C5A18010A0400001BEAA92A +:1070F0009208FE0D961FEA95DD9E8401DD9EFC2020 +:107100000460001B80E092CC979F5003000E940314 +:1071100088078448EA398CC18426400304D60403D6 +:10712000801B97709208961FD80C8CA14052843611 +:107130005450800F0013806DEB97FE6F1013806D1D +:107140000003806D95B4961FFF8784011063806DE6 +:107150001003806CFCA0FC223A0F842080E02E07F4 +:10716000DF6980C1C0029BD72E07DF6AC0029B9EE9 +:107170002E07DF6BC00A800780E680C08004808510 +:1071800080A0800280438060C20AC309FFE4FFAC94 +:1071900095F995B1407388F640630CD6842240037C +:1071A000841697C640130436978688078826FCA263 +:1071B000FC21B0C13C0372C42E17F5A8120F800049 +:1071C0002E27F5A92E06E58A100F80023C0372C611 +:1071D000120F80022E06E58EAE1A2E07F62F8A01B8 +:1071E0004412164C380088082E07F5A42E17F5A572 +:1071F00088208405FE449C11960096485A08020394 +:10720000840084403E07F5A94450FFFF808244700B +:1072100027109649380F8800979040038016E201A6 +:10722000E8039A08D5028A019601E2058C41405094 +:107230003C1B40433C1B5A2803EF2E07F62F3E070A +:10724000F5A838119000380F90003E07F62E440044 +:107250002710DD543C0BF1D5FCA1FC4344622F4CBC +:10726000EA22B61F447216548520508300F445C0AC +:10727000010C001300BB540480FFF0819E0AE6025B +:10728000E84A00030105C84780084204F073A002E1 +:107290002E27F540961FE040E8065A1803058401A2 +:1072A00010030105EBF8EB31B44650AF8008F182D2 +:1072B000F083AC7AAC3BB6473A05040044201A94FC +:1072C00044303B1144400B404450190049FFFF45F6 +:1072D000F183F082F0035EF01900E904440018FF26 +:1072E000D5044E0400038400F1025EF08B40E904F3 +:1072F00044100B3FD5044E1400038420AC3BEB0C30 +:10730000AC7AC814EA275A000312B41FC00AFD035E +:1073100049FFFEF78D21EB498CE85A980AACFCC373 +:107320008006B04449FFFEEDD5F3F0018422B0841D +:1073300049FFFD5BB426A03544201A9488018422BD +:10734000DD54F084221F800AEBE8F182F0833A05D5 +:10735000040044303B1144400B404450190049FFA5 +:10736000FEFC3A050420F0035EF01900E904440035 +:1073700018FFD5044E0400038400F1025EF08B4038 +:10738000E90444100B3FD5044E1400038420121F5F +:10739000800A120F800BD5BAFC01840049002EA58B +:1073A000840049002EF1F081840049002F93F00100 +:1073B000FC81FC21EA2280E049002E94F081F10159 +:1073C0008007490030C0CF0849FFFFE880C0C008EF +:1073D0003E77F5ABD5058400EBDB8400FCA184008F +:1073E00049002ABEEAD9CE0684013E67F6183E0758 +:1073F000F5AB8401FCA1FC0080C0840249002E751D +:107400005A680105EA2F80C0D50284C08402490071 +:107410002EBBC604800649002F2B490034054900C5 +:107420002F40840249002F568401FC80FC21B61FA6 +:10743000EA2280C049002E56F081F1018006490001 +:107440003082CE0549FFFFAA80E0D5095A60010DC0 +:1074500049002E48B43F49FFFFD084E1800649002F +:107460002A7FC702EAD9FCA1FC0049006157DD531D +:10747000DD51920B960649002A7BEAD9FC80FC007C +:1074800084268404EA65FC80FC209FC280C097F8B3 +:1074900080068421EA655A080111EA225A00020492 +:1074A0005A60020C2E07F5AA5A0801F4E6E2E8F148 +:1074B00084003E07F5AAFCA0FCA0FC009E42E62248 +:1074C00080C0E80349FFFFE284208006EA659E3120 +:1074D0008421E220E904800649FFFFD8FC80FC00FB +:1074E0008421EA65EA95FC80FC00DD405A0801062B +:1074F00084003C13F079D50484003C13F078DD4F10 +:1075000084008421DD41FC80FC002E07F60A5A0825 +:1075100001048400EA478400DD4A5A000112DD5369 +:10752000DD51920A96063E07F607DD53DD51EAC8A3 +:10753000C8038400FC80DD405A0801FDEBEAFC80B2 +:10754000DD48DD9EFC00EA20EB13540000F7EA481A +:1075500084013E07F6138400EA9884028420DD410A +:10756000EA20961EC803EBA8D5FC84003E07F6135C +:10757000EB138401EA9884028421DD41FC80EA3621 +:10758000960EC00EEA20DD50EA48EA20EAEEEA480C +:1075900084003E07F62CEA36540000FDEAA5EA20F6 +:1075A0009606C022FC00EA369606C00444005B92B0 +:1075B000EAAB49FFFFC94900298B49002970EA203D +:1075C0009616C004EA20EB6BD507EA20960EC00899 +:1075D000EA20540000FDEA4884013E07F62CEA2028 +:1075E000EBC4EA48FC80DD9E84003E07F6323E078D +:1075F000F60EEB4FDD9EFC00EA3BC019DD4896001D +:107600005A0802162E17F62BC1122E67F60ECE0F51 +:10761000EA4780063E67F634DD46490014D8800606 +:107620008026DD4184013E07F60EFC80DD5DC00F43 +:10763000DD485A08020D2E17F60E5A18010984006B +:107640003E17F6323E07F60EEB4FEA54FC80FC0084 +:1076500049003BB349FFFFD149003B312E07F61CDF +:107660005A08010449FFFB77FC80FC008400DD46DA +:10767000490014AD84003E07F606DD4080C0C8070F +:10768000490036AE49FFFFB23E67F60FFC80FC00B2 +:107690008401DD468401490036A349FFFFA7FC8031 +:1076A000FC004900265E80C05A0801094900065CBA +:1076B000C8053E67F60849FFFFEC4900265B5A08FB +:1076C0000108490006515A08010449FFFFD0FC8017 +:1076D0002E57F6202E07F624D8052E57F621EBE478 +:1076E000D00484013E07F628DD9EC8063E17F62426 +:1076F0003E27F625DD9E3E17F6203E27F621DD9E2D +:10770000FC0049FFFFF449FFFFE5FC802E07F78BE3 +:10771000C80484013E07F608DD9EFC002E07F6042F +:10772000C82284013E07F6042E07F6203E07F60025 +:107730002E57F6212E17F6002E07F62497683E578F +:10774000F6014C104004EBE4D007EA46C80349FFB9 +:10775000FF8E8400EB882E07F6242E57F600D00308 +:107760008401EBBB2E17F6242E07F609C92D2E1720 +:10777000F6013E17F7905A08014D2E07F608C80388 +:1077800049FFFFC6EBA1C80CEACF5A08020A49FF1D +:10779000FEF82E07F62CC05B84013E07F5FD49007C +:1077A000261E49001E4E2E07F789C051840084C151 +:1077B000EBD83E67F78AEBBB490027295A0002380D +:1077C0003E67FDA5D5385A08012784003E07F78A91 +:1077D0002E67F05F97B0CE0C2E07F5FD5A08010911 +:1077E00049FFFECF2E07F62CC0323E67F5FD840020 +:1077F0003E07F05F49001E362E07F608C8048401D4 +:107800003E07F608490025BF8400EBBB3E07F79012 +:107810008402D5122E07F6013E07F790EB40C00315 +:10782000490025DD2E07F6015A0802048403D50419 +:107830008401EB8884043E07F6282E17F6008400A6 +:107840002E27F601EACC84003E07F604FC80FC00FB +:1078500049000AF2C003840AD50849000AF3C8FCAB +:107860002E07F5FCC0048E013E07F5FC2E07F5FC43 +:10787000C004E60BE80484013E07F62DFC80FC0002 +:107880003C53FB46EA7CD0048CA19769D50284A0C6 +:107890003C5BFB4649FFFFDD490021ED49FFF94F05 +:1078A00084003E07F1FAEA7A5A080108EB175CF007 +:1078B0008065E8033E07F1FAFC80FC0084003E0787 +:1078C000F60ADD40C004EBA15A08011A49000AB4C7 +:1078D000C005840A3E07F611D50449000AB3C8FA68 +:1078E00049FFE1472E07F611C0048E013E07F6114D +:1078F000EA82C01384013E07F60AD50F49FFE13939 +:1079000049005ECB49005EDEEA9A5EF7815EE905DA +:10791000DD53DD51EAC8C0EF84003E0002953E070A +:10792000F54CFC802E07F60A5A00010BDD5F2E078E +:10793000F607924A9686FE858400EA21EBB3DD9E27 +:10794000FC00DD40C007EA225A08020AEABA962E75 +:10795000D5088409DD52C0F88400FC808404EB540F +:10796000C0FCDD485A0001FADD45EA34C005DD40BF +:107970008420EBAFFC808401FC80FC4049FFFFE2E7 +:1079800080C0C80849FFFDB284003E07F62A840083 +:10799000FCC02E77F62AC7045A700111D52249FF80 +:1079A000FDB581205A0801F5490033A349001C7236 +:1079B0003E97F62A3E700420D51449FFFFB55A00C1 +:1079C00001E349001C6C5A08010D84E03E77F01079 +:1079D000490037E95A08010649FFFD883E77F62A33 +:1079E0008006FCC0FC0049001F8CDD40C80649FF32 +:1079F000F9EC5A080123D510DD405A000106EABA15 +:107A00009636C020D505EA225A0802FBD5F1EA22B3 +:107A10005A080219D5ED3E07F60C49FFFC208400F8 +:107A20003E07F60CEA22C8062E07F618C80B840398 +:107A3000D5028402EADBFC802E07F618C00349FF5A +:107A4000FC0EFC802E17F60B2E07F54D5A10010583 +:107A50005A08010BD502C00484003E07F54D84028C +:107A6000EA548401DD9E8400DD9E2E07F6305A081C +:107A70000104480000E2FC222E67F63297B0C626C9 +:107A8000DD4080C0C81EDD5D4E0200D44900260CDA +:107A90004E0200D28006EA4784E180068421DD415F +:107AA0004900261A3E77EDD94900082884013E672F +:107AB000F606DD463E67F6323E77F62B480000BA02 +:107AC00084003E07F632480000B5EA7B3E67F610B8 +:107AD0005A08010CDD5DC009DD485A0802073E67FF +:107AE000F6333E67F60FD506EA7B5A0801044800D4 +:107AF00000A3EA7BC839DD40C80484014900347022 +:107B0000DD40C80FDD5D4E020097840A4900404504 +:107B1000490025CA4E020090490033F4490025DC93 +:107B200049FFF8E649001CBD4900314584013E0784 +:107B3000EDDA8401EBBA490007B584014900304B06 +:107B4000EA30C8042E07E372D5032E07E389490003 +:107B50001ED5EA30EB16EA30F081EAD0F0828420BC +:107B6000F001F202EA7FDD40C8094900320FEA7BEA +:107B70005A0801348400DD46FCA2EA369616C02479 +:107B80003C13F1D984038441FE0C80629601842069 +:107B9000EA4B490031FB846180A38406FA2FEAE1B5 +:107BA000444000B1EA43846180A38406FA2F442054 +:107BB000007EEB22EA4384618406FA2F4420007F92 +:107BC000EB2280A3EA43EA368441EB6BEAA58420EA +:107BD0003C03F1D98062EA4BDD40C8038401EAFA34 +:107BE00084C049FFF747490008BB3E67EDDA3E67AE +:107BF000F77F490032EDEA7B5A0001BE3E67F60F7F +:107C000049FFDD2849FFFC72EA30F081EB01F08288 +:107C1000EAD0F083F102F203F001EA7FEA30EB16DA +:107C200084013E07F610EA548401DD46490001F55F +:107C30008401EB04FCA2DD9EFC00840149000B36AC +:107C400049002C51FC80FC004900303D4900304384 +:107C5000C0038402EA54FC80FC012E07F6295A0076 +:107C6000011CC0045A00021DFC81DD4080C0C81206 +:107C7000DD46EA30C00D8006EB16EB01B61FEAD0F8 +:107C8000F081B43F8006F201EA7F8006EBBA8401FE +:107C9000DD468401D51B490030168402D517490002 +:107CA0003033C0168400DD4649001B395A080109EB +:107CB000DD40C802EAA8EAFFEAB18401EA5484017F +:107CC000DD46EB185A0801E784003E07F629FC81DF +:107CD000EB18DD9E2E07EDDBDD9E3E07EDDBDD9E26 +:107CE0002E07F54DC00F2E07F54EC00C3C03FB5B75 +:107CF0005CF000C8E807DD45962E9601C8033E07F4 +:107D0000F54DDD9EFC0049002FFFC06449FFF7F6EA +:107D1000EADC5A0803048401D55C3C03FB58EA57AB +:107D20003C0BFB48490019F63C0BFB0D49002F6743 +:107D30003C03FAA48C013C0BFAA42E07F54C8C01F1 +:107D40003E07F54C49FFC36C5A000106DD53DD5177 +:107D50009616C0213C03FAA53C4DFC7C8C013C0BE3 +:107D6000FAA5840A80643E07F066849B84063C5D25 +:107D7000FC7D3E07F06540020C02EA8D84038440DE +:107D8000EA5484013C5FFC7D3E27F1FB3E27F62947 +:107D9000EB6FFC8049FFDBFF49FFDC1249FFFFA2CC +:107DA00049FFFD6F49FFFE505A080103EB6F49FF81 +:107DB000FD8649FFFDE4C80349FFFE162E07EDD9F5 +:107DC0005A0801058400EB6FEBF684013E07F606C6 +:107DD000EA54FC80FC20DD485A000208DD485A00C5 +:107DE0000305DD485A08040EEAE65A08010BFA02B8 +:107DF000DD4A5A0801078400EA9E8420FA02DD4128 +:107E0000EB188E01E602E8092E07F60DC006840085 +:107E10003E07F60DEA75EA73EA22C82D2E17F62BF7 +:107E20005A18012A2E17F6065A18012680E180C03A +:107E300049002F4AC81BEA64C819EA3BC005DD485F +:107E40005A080209D513DD5DC0FBEA465A0801074E +:107E5000D50DDD485A0801FBD509DD485A00010758 +:107E6000EA3BC03DDD485A08023B84003E07F60568 +:107E70003E07F606EA225A08010A8404EA548400FE +:107E8000DD468400490000CAD508EB185A080406EC +:107E90008401EA548401DD46EB185A00021BE60314 +:107EA000E805C0095A000113FCA05A0003165A0045 +:107EB000040BFCA049FFFDDBEA7BC83884013E07C8 +:107EC000F61CFCA049FFFEBAFCA049FFFEBEFCA0C8 +:107ED00049FFFF1AFCA049FFFEC1FCA0EA225A009C +:107EE00001C684003E77F6054900233E8400490020 +:107EF000234A840149002338DD485A000209DD483D +:107F00005A000306DD485A000403EB9DEAE65A00D6 +:107F10000103EB9DFA02DD4A5A000103EB9DFA02D0 +:107F200084203E67F641DD41EB9DFCA0FC20EA3653 +:107F30009606C026846180A38406FA2FEAE14440B5 +:107F40000031EA43846180A38406FA2F4420007E36 +:107F50008480EA438461848080A38406FA2F4420CD +:107F6000007FEA43EA368442EA68EAA58401802079 +:107F7000EACC84023C13F1E7DD4F8400EBD849FFE3 +:107F8000F6D184C14470004049FFFB6349FFFB8A7E +:107F9000DD4896005A00021FE603E811C0155A0892 +:107FA00001F584203E17F62B3E17F62AEB6F3E773D +:107FB000EDDB49FFFA6649FFFBB2D5E75A00030B38 +:107FC0005A00040CD5E2EBBB3E07F6083E67F628E4 +:107FD000D5DC49FFFF01D5D9EBA15A0801044900BE +:107FE000082684008020EA6384008020EA3384002D +:107FF0008421EA6384218400EA3349000827490088 +:108000000840490008C08401490022BD490008D346 +:1080100049000873D5BADD9E46100081E6010420B0 +:108020008033440FFDFF40F7A408FE1640003C04D7 +:1080300014008033DD9E5A10010DC1045A10021342 +:10804000DD9EDD5A9606DD5E04310029EA3AD5133D +:10805000DD5A96064010480804310029440BFFFF02 +:10806000D50A9606DD5A40104C08460FFF7F0431B2 +:108070000029DD43FE1EFE0F14010029DD9EFC00D9 +:1080800080C044042C145A680506B420581090008F +:10809000D505B440441FEFFFFE568441B6208062F0 +:1080A0004404281444142414DD4444142C1484106F +:1080B000B441979FFE16FF87B6C1FC8044242C1460 +:1080C000961FB462EA25440FF0FFFE1EFE0FB602B3 +:1080D000DD9EFC40EA748142838180E4810081233B +:1080E000EB4B04030391548407FF920B40002C08D0 +:1080F0004080200414830391EB440423002CEB1BE9 +:10810000401E400850000F00FE1641C0F004401E03 +:1081100000041413002C4034C0080413002D403117 +:10812000A8044623F3F040A56008460C0C0F50212C +:10813000003F4031A80450000FC0FED6FE0E402183 +:1081400080041423002D0443002F97EF9286952678 +:10815000FFE71473002FFCC044242C149606401033 +:108160004C08B462460FFF7FDD43FE1EFE0FB602D1 +:10817000DD9E442480909606B462EA25EA4AFE1EFB +:10818000FE0FB602DD9E462000829606A0D5DD5E7B +:10819000EA3AFE1EFE0FA815DD9E46000082A005ED +:1081A00092109606DD9E4630008244410000B4A342 +:1081B000EB0DFF2FB683B4839492928A4042280835 +:1081C000FF0FB68388404C010005A059AA41D5FC99 +:1081D000B423EA3AFE0EB603DD9E463000824441E7 +:1081E0000000B4A3EB0DFF2FB683B4839492928A60 +:1081F00040422808FF0FB683884080234C010005C9 +:10820000A301A909D5FCB423EA3AFE0EB603DD9E0C +:10821000465000808C019CEEA64000207FFF944CCD +:10822000FE579648AE68A64000207FFF944CFE574C +:108230009648101280088CA18C02DBEFDD9EFC00BA +:10824000EAAF462FFEFF5050800850610FF15041B9 +:108250000FF05030800E94A9884038111800382152 +:108260001000944CFE57964818128001DBF5FC80F4 +:1082700046300080EA7804418071FE0F442FF8FEFA +:1082800054100701FEA64000880414018071DD9E91 +:1082900046200080843E043100A49606FE5EFE0F58 +:1082A000140100A4DD9E46200081DD4E0411001162 +:1082B0009649FE0F14010011DD9E46200081041135 +:1082C000000D9230EA24FE0F1401000DDD9E4620C1 +:1082D0000081DD4E0411000D9649FE0F1401000DC2 +:1082E000DD9E462000810411000E9230EA24FE0F2C +:1082F0001401000EDD9E46200081DD4E0411000EAB +:108300009649FE0F1401000EDD9E462000810411E7 +:1083100000119230EA24FE0F14010011DD9E462068 +:1083200000818430EB09961FFE5EFE0FEACADD9ED7 +:10833000462000808470504101BCA061961FFE5E03 +:10834000FE47A861B424FECEFE1FB604DD9E462083 +:108350000081843E043100139606FE5EFE0F140178 +:108360000013DD9E46000081040000139606DD9E8A +:10837000462000819606EB09EA25EA4AFE1EFE0F1A +:10838000EACADD9E46200081960F40104808EB099E +:10839000460FFF3FDD43FE1EFE0FEACADD9E46206C +:1083A0000081960640105808EB09460FFBFFDD439D +:1083B000FE1EFE0FEACADD9E460000810400001288 +:1083C0009212960FDD9E440480108421B40092081E +:1083D0009606C007EB8FAE403E17F6353E17F634D3 +:1083E000DD9EDD9EDD9E46300081461CFF3F042160 +:1083F0008039DD5BFE5646220000FE8F40004808B3 +:10840000461300C0FE0EFE1714018039DD9E462083 +:108410000081960F4010580804310039460FF3FFD1 +:10842000DD43FE1EFE0F14010039DD9E4630008143 +:10843000441CFF3F042180399406FE56442300006B +:10844000FE57540000C0FE0F14018039DD9E462007 +:108450000081960F04310039EB2A440FF3FFFE1E12 +:10846000FE0F14010039DD9E4610008146288F88DA +:10847000504080E8B464502108F8FE9E4631501008 +:1084800050318400FE9FB644A0E18458FE9EA8A10E +:10849000C81C04208038460FFCF3500000CCFE16A8 +:1084A0004620030850210320FE17140080380420C2 +:1084B0008070460F3FFF50000FF0FE164620C000B0 +:1084C0008C48FE1714008070DD9EFC0080C0EB4BD2 +:1084D000DD5A9786943204610393843BFF8EFF87B5 +:1084E00014610393EB44FC804404502CB4009201CB +:1084F0009606DD9E4404502CB40092149606DD9E30 +:1085000044048008B400920A9606DD9E462000814D +:10851000960604310015DD5EEA3AFE1EFE0F1401D8 +:108520000015DD9E2E07EDDDDD9E3E07EDDDDD9EB7 +:108530005A08010F4407210046102000B440FE579E +:10854000B6208020B40192199606C8FDDD9E5A0817 +:10855000020E4407214046102000B440FE57B620CA +:108560008020B40192199606C8FDDD9EFC004414DB +:1085700080048441B40192109606C005EAC5AE801D +:108580003E27EDDEB40192119606C00AEAC58422A8 +:10859000AE4084013E07EDDD8400EA9EEBECEBD2B9 +:1085A000B40092129606C007EAC58424AE40840146 +:1085B0003E07EDDCFC80FC00EBD2EA9DB6204414C3 +:1085C000808444020000B441FE17B6014416003016 +:1085D000B401EAEAB6018401EAFBFC80FC40812098 +:1085E00080E181028143006F8044EAFB4E92000AE1 +:1085F0005A90010B84805A98020A44472140D506BC +:10860000444720C0D50344472100A02140843008BE +:108610009214EA72930C40802004461FCFFFA022E0 +:1086200050108F00002F803440300402220F80143D +:1086300040216008FE1746203000502100FFFE1642 +:10864000FE1FA822A02340A530089214A0E4EA72DD +:10865000934C40A02804000F803840518402223FF0 +:108660008016EB19FEC7A025FED6FEEF9214A8E4F3 +:1086700040305008F0084073C008EA4E920CFE1FCC +:10868000A825A026223F8018FE46000F803C1482B9 +:108690000001EB19FE1FFE86FE8FA067460F0FE05C +:1086A000FE46A8A64600F01FF210DD43FE16FE0FA0 +:1086B000A827840014020008462F8F0FB40450210D +:1086C0000FFEFE86460000F0FFC6FFD714A200038F +:1086D000B6E45A9801154417211C979FB4414003F2 +:1086E0006008466F0FFF50630FFFFF96FF87B6C10C +:1086F0004414808444020000B441D5155A980216EF +:108700004417215C979FB44140036008466F0FFFF8 +:1087100050630FFFFF96FF87B6C144148084440462 +:108720000000B441FE17B601FCC046200083843C23 +:1087300004310010960FFE5EFE0F14010010DD9E46 +:1087400046200083960604310010EA25EA4AFE1E00 +:10875000FE0F14010010DD9EFC4046300083445F94 +:10876000FEFF8383BC18FF2EBC98BC189288404241 +:108770002008FF17BC980491803946400F03BF3A88 +:1087800004A1803B50420C0F40949002FFE640450C +:10879000100204A08002BE3CB5018944A10B979F42 +:1087A0008928048080019874BC1888E85842010028 +:1087B000BC98BE1892C840632008FEB7BA981491BE +:1087C0008039BFBA14A1803B9689B93C9230EA2423 +:1087D000FE57B9BCB420B9B9A041B9BAA042B9BBDF +:1087E000A446B83C9210DD4EFE0FB8BCB818FF4648 +:1087F000BD98FCC0FC2046300083444FFEFF8383BD +:10880000BD188C42FF2EBC989710BA18944A924813 +:1088100040212008FEA7BA98BA18505180E4582188 +:108820000100BA98506180E8507180EC8820503186 +:1088300080F0462000834C008011A281B6458380E1 +:10884000BA3F0240017EB646BA7FB647B443925063 +:10885000EA93FEA7B643D5EE8382B918EA4AFE0E24 +:10886000B898FCA0FC2046200083443FFEFF838292 +:10887000BC18FEE6BB98BB184640F03C9268EBDAA9 +:10888000FE5FB998BE39503200F0B480BD3AFF9E09 +:1088900088C4A101BF3BFF5E88A4A102B93CFEFED3 +:1088A0008883A0C3EB97BEB9980BBDBABCBB9641F9 +:1088B000B83C9210DD4EFE0FB8BCFCA0FC00444456 +:1088C00080909484EB2AB464FE57FE47442FFBEE5D +:1088D000FE9E54108411FE57B624EAAF845851C04E +:1088E000826CB47C46500081FE9E58210006B65C26 +:1088F000B47C442FF0FFFE9E58210A00B65CB45CA5 +:1089000084619248969F4021880C54210FFF046295 +:10891000806E40314008462F000FEBBFFEB6FE9F31 +:108920001422806EB47C4428FFFFFE9EB65CB47CAB +:10893000462F0FFFEBBFFE9E4630B000FE9FB65C99 +:108940009606B44440102C08440FF7FFFE16FE0FA5 +:10895000B604FC803E07EDE0DD9E2E07EDE0DD9ED7 +:108960004437200054100001B4834020A408441F61 +:10897000FDFFFE66FE57B6233E07EDE0DD9E461086 +:108980000082042080085A080106841CFE16EA684A +:10899000D503841DFE1614008008DD9E462000834A +:1089A0008062044100EEEA258440C80344200200AE +:1089B000FE8F441FFCFF5421030040020402FE17F7 +:1089C000140180EEDD9E462000838062044100EEAB +:1089D000EB2A8440C80344200800FE8F441FF3FFA5 +:1089E00054210C0040020402FE17140180EEDD9EAB +:1089F000442720689601B4229230EA24FE47B6222A +:108A000044272070B4229230EA24FE0FB602DD9E85 +:108A100044272000961740105008B462460FF8FF14 +:108A2000DD43FE1EFE0FB602DD9E44072000B400AB +:108A300092149617DD9E44272000843EB462960669 +:108A4000FE5EFE0FB602DD9E442720049606B46249 +:108A500040102408440FFDFFFE1EFE0FB602DD9EEF +:108A600044272004843EB4629606FE5EFE0FB602E2 +:108A7000DD9E442720009606B462DD5EEA3AFE1EC3 +:108A8000FE0FB602DD9E44272000960640105C08CB +:108A9000B462460FF7FFDD43FE1EFE0FB602DD9EF9 +:108AA0004417200044020000B441FE17B6018407B9 +:108AB0003E07EDDFDD9E2E07EDDFDD9E440720AC97 +:108AC000B40096173E07EDDFDD9E44272000960692 +:108AD00040107008B462EBA6DD43FE1EFE0FB60226 +:108AE000DD9E84013E07EDE2DD9E2E07EDE2DD9E78 +:108AF00084003E07EDE2DD9E84013E07EDE1DD9E50 +:108B00002E07EDE1DD9E84003E07EDE1DD9E46008F +:108B10000083040000EE92089606DD9E44248090B7 +:108B20009606B4629444EAA6FE1EFE0FB602DD9ECF +:108B3000C90644271000B422FE0FD5085A180108B0 +:108B400044271000FE03B422FE0EB602DD9E5A1822 +:108B5000010744271004B422FE0FD507C907442794 +:108B60001004FE03B422FE0EB602DD9E5A18010761 +:108B700044271008B422FE0FD507C9074427100860 +:108B8000FE03B422FE0EB602DD9E44071008B400B8 +:108B900054000100EA95DD9EC80744171018841E92 +:108BA000B441FE16D5075A08010D44171018B40138 +:108BB000DD50B6014417100CB401EAEAB601DD9E9F +:108BC0005A08020C44171018B401DD50B6014407CE +:108BD000100CB4208420B620DD9E44271018960681 +:108BE000B462EA25EA4AFE1EFE0FB602DD9E440785 +:108BF0001014B400DD9E44260000843EB462960644 +:108C0000FE5EFE0FB602DD9EFC00EAD9FC80FC0091 +:108C10002E17F7994427211C5A180107B4229231C4 +:108C20004010C408D5098E0140003C0840103C09A2 +:108C3000B4029211EB11FE0FB6028400EB7D8400AA +:108C400049FFFC75FC80FC0049FFFC71EBECFC80EB +:108C5000FC0049FFFC69FC8044363814EA2E4020B1 +:108C60002009B403966F9218EB19FE1744263808B2 +:108C7000B603B4624000E008461C0FFFDD5BFE5EF9 +:108C8000FE47B62244163804EAA0B441FE17B601E6 +:108C90004414800CB40192039606C0FD4404800C79 +:108CA0008428AE40DD9E44363414EA2E402020094C +:108CB000B403966F9218EB19FE1744263408B603D6 +:108CC000B4624000E008461C0FFFDD5BFE5EFE471D +:108CD000B62244163404EAA0B441FE17B601441487 +:108CE000800CB40192139606C0FD4404800E8428C3 +:108CF000AE40DD9EFC01B63F8022F38149FFFFAE0E +:108D0000B41FF10149FFFFD1FC8144163C04B401BA +:108D1000DD50B601DD9E44263804B42244063804F2 +:108D200092289646C9FBB440843EFE56B620802069 +:108D3000B40192089606C8FD44263404B4224406C1 +:108D4000340492289646C9FBB440843EFE56B620B1 +:108D50008020B40192089606C8FDDD9E4404808CF4 +:108D60008420B620DD9E4426385046040000B422FC +:108D7000FE47B62244163450B441FE174426384C00 +:108D8000B601B4024617800094069206FE0FB602A2 +:108D90004426344CB40294069206FE0FB602DD9EC1 +:108DA00044363800461FEFFFB443DD5B9606EB19EF +:108DB000FE8EFE87B64344263400B462FE5EFE0F8C +:108DC000B602DD9EFC40467000834052AC08FE2F88 +:108DD00040424408838704938014FE274010E00833 +:108DE0004650F7FF466F0800FE0F5052880150634F +:108DF00007FEFE2E4064980240101804B994BC157A +:108E00004031C008461007F0460FF80FFE9F501083 +:108E100083FF50000C0040310402FE2640218004F4 +:108E2000BA95FCC044100FFFFE0C461000831400DE +:108E300080BBDD9E46000083040000169601DD9E87 +:108E400046000083040000169211EB59DD9EB440E9 +:108E5000EAAF14208048A0011400804ADD9E46201D +:108E60000083960FEB09DD5E440CFFFFFE1EFE0F34 +:108E7000EACADD9EFC4080C4812280E38400842312 +:108E800049FFF9F8381499018401EA42380398003F +:108E90008422EA3DFCC0462000819606A0D5EA2542 +:108EA000EA4AFE1EFE0FA815DD9E4620009196069A +:108EB000043100149441841DFE1EFE0F14010014A1 +:108EC000DD9EC90846200091843EB4629606FE5E8F +:108ED000D50A5A18010B462000919606B4629441B7 +:108EE000841DFE1EFE0FB602DD9E461000818450DA +:108EF00050508068B485A0E9FE9EA8A9C80A042045 +:108F0000801944308F3A925240214808FE9FD50A7A +:108F10005A08010B04208019925240214808582118 +:108F20006FFA14208019460E0E0E500000E0FE2647 +:108F3000EB23580000031400801ADD9EFC0084001F +:108F40003C1DF8E649FFFFD3FC805A00011EC00615 +:108F50005A00022B5A00033BDD9EEAE8EB1AB402EA +:108F60004430987896013C0FFD8FB4013E07F638E7 +:108F7000B4029210DD4EFE1FB602B4019208EA2E32 +:108F800058000098D521EAE8EB1AB40244309878EA +:108F900096013C0FFD8FB4013E07F638B4029210E3 +:108FA000DD4EFE1FD50DEAE8EB1AB40296013C0F28 +:108FB000FD8FB4013E07F638B4029210DD4EB602C2 +:108FC000B4019208EA2EB601DD9E442450102E17FB +:108FD000F638B4029208EA2EFE0FB602EAE83C1315 +:108FE000FB1EB4029210DD4EFE0FB602DD9EFC00A9 +:108FF00044142C1CEAA6B441FE168441B6018062DA +:10900000EB15EAE5DD44FC80FC0044142C18460B0B +:10901000FFFFB441DD43FE168441B6018062440483 +:10902000281844142418DD44FC8044148088460029 +:109030005000B441FE17B60144140018EBA6B44129 +:10904000DD43FE16B601DD9EFC002E17F05F4404E2 +:109050007000B4405A180106441EFFFFFE56D503A7 +:10906000EA9DFE57B62044042C1C441FFFEFB44079 +:10907000FE568441B62080628020DD44FC80FC00E6 +:1090800044242C18460B67FFB422DD43FE0E461025 +:109090001000FE0FB6028441806244042818441474 +:1090A0002418DD4444142C20440FFFB3B441FE16B1 +:1090B000580000488441B601806244042820EBFB3C +:1090C000DD4444242C1C460FFB3FB422DD43FE0E3E +:1090D00046100480FE0FB60284418062EB15EAE57B +:1090E000DD444414500C841EB441FE16B601840FB6 +:1090F00049003553FC80FC0044642C1CEAA6B426CD +:109100008441FE0E8062B606EAE5EB15DD444414A8 +:109110002C18460B6FFFB441DD43FE168441B601A7 +:1091200080624404281844142418DD4444142C207C +:10913000440FFFB7B441FE168441B6018062440477 +:109140002820EBFBDD44B426460FFB7FDD43FE0EFB +:109150008441B606EAE5EB158062DD444414500C08 +:10916000B401DD50B601FC80442470189442B4620E +:109170009401FE0F843954000006FE5EFE0FB60215 +:10918000DD9E4424501044109898B4029210DD4E95 +:10919000FE0F44147004B602B401EAE89210DD4EEA +:1091A000B601B402441098789210DD4EFE0FB6025C +:1091B000DD9E44145010B4019210DD4EB6014414EB +:1091C0000010B4019210DD4EB601EB6CEA3AB441E6 +:1091D000FE16B601DD9E4424700444108912B402C8 +:1091E0009210DD4EFE0FB602DD9E44240010960163 +:1091F000B4229230EA24FE47B622DD9E4414008C4D +:109200004620A030B4019208EA2E5800008AB60128 +:1092100044040020B640B4014628A0009208EA2E7B +:10922000B60146000080A0479228EA7858108007CF +:10923000A84750400020A067EA789228FE57A86708 +:10924000A06744240108EAD8A867A067EA789228B2 +:10925000A867B462EA9DFE5FB62244272000441F3F +:10926000FFEFB462FE5E443720C0B622B443441F11 +:10927000FDFFFE8EB64344372100B443FE8EB64355 +:1092800044272140B462FE5EB622A087441F07FF38 +:10929000FE565810D800A847B424EAD8B624B424FF +:1092A00058108002B624DD9E442720009606B46242 +:1092B0009444EAA6FE1EFE0FB602DD9EFC004404A6 +:1092C0002C10441FFBFFB440FE56B620B4205810AB +:1092D0008800B620B440441F7FFFFE56B620B4403D +:1092E000EA9DFE578441B62080624404281044144D +:1092F0002410DD44FC8046100080505080805010C7 +:1093000080B0B4408CA41422FFFFA281142280629A +:10931000D9F9DD9E46100080505080B0501080C4B6 +:10932000A281AAA9D9FEDD9EB440EAAF14208047ED +:10933000A00114008048DD9E4630008050518040DE +:1093400050318046A641A680944CFE579648AE68A0 +:10935000A641A680944CFE57964810128018001023 +:10936000000D0020000C944CFE5796481012800C03 +:109370000010000D0020000C944CFE57964810126F +:1093800080248CA18C02DBDFDD9EFC00A681A64040 +:109390009494FE8FEAAF969010208048A68180605A +:1093A000949408418005FEA7969010208060A699AD +:1093B000A7059494FEA7969010208054A699A7051F +:1093C0009494FEA796901020806CA683A702949494 +:1093D000FEA7969010208049A683A7029494FEA72A +:1093E000969010208061A69BA71A9494FEA7969051 +:1093F00010208055A69BA71A9494FEA79690102043 +:10940000806DA744844FFF564062C008464FFF0F4F +:109410008381BD1250420FFFFF66FF77BD92A75CAC +:10942000FF564062C008BD15FF66FF77BD95A604D4 +:10943000FE1640504008B818FE26FE2FB898A61C0D +:10944000FE8640014008BA1BFEA6FE87BA9BFC8040 +:109450005A000110C0095A080312EA2B0400002127 +:109460009210EB36DD9EEA2B04000020EB36DD9EE9 +:10947000EA2B04000021EB36DD9E8400DD9E5A00BD +:109480000149C0065A08030448000087DD9EEA2B04 +:109490000410002054F087FF041003914050CC09C1 +:1094A000041003960430002892365440800F0410B4 +:1094B0000394926F92335420801F5412807E8C212B +:1094C0008824543180FE88238822E02F042000283D +:1094D000E91146100800FE57EBA4EA38441EFFFFCE +:1094E000FE56EA3CEA38461FFEFFDD5BFE56EA3CCC +:1094F000DD9E461FF7FFDD5BFE56EBA4EA38EA9DD2 +:10950000FE57EA3CEA3846100100FE57EA3CDD9E71 +:10951000EA2B0410002154F087FF041003914050FF +:10952000CC09041003960430002992365440800F71 +:109530000410039496F792335420801F5412807EB7 +:109540008C21882494D988238822E02FE9130410E1 +:1095500000295810808014100029EA38441BFFFFAE +:10956000FE56EA3CEA38461FFBFFDD5BFE56EA3C4E +:10957000DD9E04200029441FFF7FFE5614100029A1 +:10958000EA3844140000FE57EA3CEA38461004006A +:10959000FE57EA3CDD9EEA2B04100021923054F085 +:1095A00087FF041003914050CC0904100396043047 +:1095B000002892365440800F04100394927792331F +:1095C0005420801F5412807E8C218824543180FEC8 +:1095D00088238822E02FE913042000284618000081 +:1095E000FE57EBA4EA38441DFFFFFE56EA3CEA387A +:1095F000461FFDFFDD5BFE56EA3CDD9E04100028A1 +:1096000094499221EBA4EA3844120000FE57EA3C48 +:10961000EA3846100200FE57EA3CDD9EFC0080C19D +:109620005A000114C0065A00022B5A00031AFC808B +:10963000EA2BEBD48380B920922B4010AC08FF8F2B +:10964000BEA08400EBEBFC80DD5AEBD48382B92111 +:10965000922B4010AC08FF8FBEA1EBEBFC80DD5AD3 +:10966000EBD4401340088382BB21466F800F5063C8 +:109670000FFFFF9EFF8FBEA1EBEBFC80EB4BDD5A93 +:10968000546307FF947604610398440E003FFF86FD +:10969000FF8F14610398EB44FC80462000839606FC +:1096A000EA9B043100C0EAA1DD43FE1EFE0F140157 +:1096B00000C0DD9E462000839606401064080431F9 +:1096C00000C0EB8EDD43FE1EFE0F140100C0DD9EC8 +:1096D00046200083960FEBDFEA25440FFCFFFE1EB9 +:1096E000FE0FEBE6DD9E46200083843EEBDF960610 +:1096F000FE5EFE0FEBE6DD9E462000839606EBDF66 +:10970000EB2A440FFBFFFE1EFE0FEBE6DD9E46102C +:109710000083EAA00420800EFE171400800EDD9E58 +:1097200046100083462E7FFF0430800EEBBFFE9E66 +:109730001420800E5A080108841F1400800B1400A6 +:10974000800CDD9E84001400800B1400800CDD9ED4 +:1097500046200083EA250431000E40002408FE0F55 +:10976000441FFCFF54000300FE5EFE0F1401000EB8 +:10977000DD9E460000815000009004107FFF965F40 +:109780008801A6008C019600DD9E46200081505184 +:1097900000905031009A08200001884196901822CC +:1097A0008001DBFADD9E46200081843E04310022E8 +:1097B0009606FE5EFE0F14010022DD9E5A10020F77 +:1097C0005A100319C923DD5A961F0431002384302F +:1097D000FE5EFE0F14010023DD9EDD5A961FEA2572 +:1097E00004310023440FF0FFFE1EFE0F140100237E +:1097F000DD9EDD5A961F4010300804310023440FCF +:109800000FFFFE1EFE0F14010023DD9E5A00020A08 +:109810005A00030EC812EA2B04000023961FDD9E97 +:10982000EA2B040000239208961FDD9EEA2B040019 +:109830000023920C961FDD9EEAF6DD9E8400DD9EDD +:1098400046200081EB59DD5E04310049460FC00F10 +:10985000DD43FE1EFE0F14010049DD9E4620008000 +:10986000EB5904110075922AEB73FE471411007531 +:10987000DD9E5A000120C0065A0002275A00030D3F +:10988000DD9EDD5AEB0D04010030920AEA8AFE47A4 +:1098900014110030DD9EDD5AEB0D4000C00804318C +:1098A0000031461FC00FDD5BFE5EFE471411003124 +:1098B000DD9EDD5AEB0D04010031920AEA8AFE4773 +:1098C00014110031DD9EFC0080C1EB4BEA2B5413D8 +:1098D00003FF4060C40804200398461F801FDD5B1F +:1098E000FE56FE7714100398EB44FC80461000806F +:1098F000462FC00F505081FCB46550210C00FED69D +:10990000464012C0FEE7B665A0E9FE9E46300960FB +:109910005031804BFE9FA8A95A080109040080819C +:109920005800000714008081DD9E040080819210A1 +:10993000DD4E14008081DD9E5A000114C0045A00DF +:10994000021FDD9EDD5A965F4000C00804310032E0 +:10995000461FFF0FDD5BFE5EFE4714110032DD9EE9 +:10996000DD5A965F4000E00804310032461F0FFFC9 +:10997000DD5BFE5EFE4714110032DD9EDD5A4010B5 +:10998000F0080401003294049204FE4714110032DE +:10999000DD9E542080035410800C90225A00011642 +:1099A000C0045A000228DD9EEA2B847C5050009CA3 +:1099B000B485EA93FEE6FE5FB625B465441CFFFF5E +:1099C000FE5EFE8FB645DD9E46300081440FFFCF20 +:1099D0005051809CB485944CFE26FE47B625B405B4 +:1099E000461FFCFFDD5B40215008FE0EFE17B6054A +:1099F000DD9E46300081440FFF3F5051809CB4856E +:109A0000944EFE26FE47B625B425460FF3FFDD43F0 +:109A100040215808FE0EFE87B645DD9E46000081B7 +:109A2000040000F5920B9627DD9E40100C0946209D +:109A30000080944A88229402B4214000800D961739 +:109A4000EB238E0104208023960094024001000D38 +:109A5000961F501080908820A608962F8C01DD9EBE +:109A600040200C0946300080949288439442B442CE +:109A7000503190804011040D96578E219648400039 +:109A80008409940288609646B403944C4000040D07 +:109A9000EB36DD9EFC41850046A0008180C88388AE +:109AA00050950E60541400FF40008C09940246301B +:109AB0000080880340740808B40040701C0D97F8BB +:109AC00054038005C02C8001F18197D749FFFFAF77 +:109AD000B61FF1015A7803070465003292D8979FA8 +:109AE000D50D5A7801070465003292D0979FD506AC +:109AF0005A7804050465003292DCB4E9800192E6EC +:109B000049FFFFB0547387FFB45F42131C24421116 +:109B10000073E03C401E3C1B41C080138D015A88FD +:109B20000CC3801CFCC1FC4046900081041480F5ED +:109B3000922B9667C9470464839249FFFFAD940155 +:109B400097C1DD40C80E5043846B503380A750232B +:109B500080D550138499972196D996919649D5240A +:109B60000404801240236409921896AF92D296069C +:109B70005463007E50110477C01197B1502100B397 +:109B80008846882650438475503380B38847882799 +:109B9000972196D996919649D50788C1987E96497E +:109BA000804180618081504201DF507181DF5061CE +:109BB00001DF501081DF4092001397F997B1964969 +:109BC000D52280C0DD40C814CE0A3C13F1A03C93DE +:109BD000F1A13C73F1A23C63F1A3D5123C13F1A4B3 +:109BE0003C93F1A53C73F1A63C63F1A7D5093C1366 +:109BF000F1A83C93F1A93C73F1AA3C63F1AB840159 +:109C00003E07F60D800149FFF35A800949FFF361D1 +:109C1000800749FFF368800649FFF36FFCC04436B4 +:109C20002004461FF00FB443DD5BFE5646200A3089 +:109C3000FE57B623441480808468B4418E015821B5 +:109C40000800B641442480019600AED0B481443F60 +:109C5000EFFFFEE6B661FA60AED0B461E6035831BC +:109C60008200B6618462AED0B46158318100B661C1 +:109C70008461AED0B481443FFBFFFEE6B66184242C +:109C8000AE5044162000B44146180000E8064431A6 +:109C9000063838018202D50280018C23FE0E8E2701 +:109CA000FE56FE47440620004426200CB620B4226F +:109CB000EB1B50000EFFFE0E46100400FE0FB60216 +:109CC000DD9EFC002E07F640C00AFA024410032075 +:109CD000DD4FFA028421DD418401EA9E44148000B4 +:109CE000B401920B9606C004EAAA8448AE80B4017F +:109CF000920C9606C004EAAAFA20AE404404800002 +:109D0000B40092099606C02CEB5CC0034900164DC6 +:109D10002E07F640C81344162008B4019208960096 +:109D20005A08A307B401921096005A00A3084406EB +:109D30002008B40096005A08A30BFA02441003202E +:109D4000DD4FFA028421DD418401EA9EEAAA8422E1 +:109D5000AE408401EAFB8402EAFB4900163C44144D +:109D60008000B40192089606C004EAAA8441AE803D +:109D7000B401920A9606C004EAAA8424AE40FC808C +:109D8000442620049606EA9BB462EAA1DD43FE1E47 +:109D9000FE0FB602DD9E44062010B4009201960626 +:109DA000DD9E44062010B4009606DD9E4404400C5F +:109DB000B40092019606DD9EC80444072014D50322 +:109DC00044072018B400EA4E920CDD9EC8044407F4 +:109DD000200CD5125A08010544072010D50D5A0849 +:109DE0000205440720A0D5085A080305440720A40B +:109DF000D503440720A8B400EA4E920CDD9EFC0077 +:109E000080C1EA6E84408022E246E80538100909E4 +:109E10008C41D5FBFC80FC0080C1EA6E8440500080 +:109E200004808022E246E8051A1000018C41D5FB2F +:109E3000FC8044272014EA4EEAA9B4029214EA7284 +:109E4000FE0FB602DD9E44272018EA4EEAA9B402AE +:109E50009214EA72FE0FB602DD9E4427201CEA57D8 +:109E6000B422922CEB50FE47B622DD9E44272020E0 +:109E7000EA57B422922CEB50FE47B622DD9E4427CF +:109E80002034EA57B422922CEB50FE47B622DD9ED6 +:109E90004427200CEA4EEAA9B4029214EA72FE0F9B +:109EA000B602DD9E44272010EA4EEAA9B4029214BD +:109EB000EA72FE0FB602DD9E442720A8EA4EEAA908 +:109EC000B4029214EA72FE0FB602DD9E4427201CF3 +:109ED000EA57DD5EB462460F000FDD43FE1EFE0F43 +:109EE000B602DD9E44272020EA57DD5EB462460FAD +:109EF000000FDD43FE1EFE0FB602DD9E4427203418 +:109F0000EA57DD5EB462460F000FDD43FE1EFE0F12 +:109F1000B602DD9E442720548430B462961FFE5E54 +:109F2000FE0FB602DD9E44272054961FB462EA2538 +:109F3000440FF0FFFE1EFE0FB602DD9E44272058A0 +:109F4000961FDD5EB462460FFF0FDD43FE1EFE0F5F +:109F5000B602DD9EFC404464004044740C40460060 +:109F600080808520B606DD59B726EA37B40746A0BB +:109F700000808441400028048062B60744140440F5 +:109F800044040840DD44B427460FFF7FDD43FE0E46 +:109F90008441B60744140440440408408062DD4410 +:109FA000440720C0B746B726B44046102000FE57ED +:109FB000B6208020B40192199606C8FD840149FF9D +:109FC000F4CB840149FFF6EEFCC0FC0049FFFFC45E +:109FD000FC804424005044119878B4029211EB1193 +:109FE000FE0FB602DD9E440400A0B4009600DD9E84 +:109FF000443480909606B483843D9481FE66FE5777 +:10A00000DD5AB62304310015843EFE5EFE0F1401B6 +:10A0100000158400EB4FEAD48422AE40DD9E442438 +:10A020000018C80CB422440BFFFFFE0EEB1AB60258 +:10A03000B4019208EA2EB601D515B46244040000BA +:10A04000FE1FB60244245010B4029208EA2EC10941 +:10A0500058000098EB6CB602B441EAA0FE17D50692 +:10A06000B602EB6CEA3AB441FE16B601DD9EDD9E07 +:10A0700044048010FA20AE40DD9E4404800984240C +:10A08000AE40DD9E440480108421AE40DD9E440439 +:10A0900080118424AE40DD9E462000809606043167 +:10A0A00000739445440FFFDFFE1EFE0F1401007382 +:10A0B000DD9EFC0044648088EAA1B426DD43FE0EE8 +:10A0C00044140040B606B44146002000FE17B60115 +:10A0D000B441EB8EDD43FE16B6018405EB9EEACE5D +:10A0E0008421AE40B42646001000FE0FB606FC8068 +:10A0F000DD9EFC004404588C462FF00FB420EBBFCB +:10A1000044310000FE56FE5FB6204414550CB48165 +:10A11000FEA6FE9FB64184418062DD44FC80FC00C7 +:10A120004404080C46200F00B420EA74FE57B62001 +:10A130004414040CB461FE9FB64184418062DD4446 +:10A1400044140108B40158000200B60144142C3034 +:10A15000460FFEFFB441DD43FE168441B601806226 +:10A160004404283044142430DD440403039984411A +:10A1700058000040EB6004030399806258004000DF +:10A18000EB6004130399EBA6DD43FE0EEB600413B2 +:10A190000399460BFFFFDD43FE0EEB605013066490 +:10A1A00050030A64DD4404130296440FE0FFFE46A8 +:10A1B00058108F0014130296041301968441FE0E6A +:10A1C00058000F00140301965013065850030A5804 +:10A1D0008062DD44FC80FC40442480108421B46211 +:10A1E000B5029279B54240F18402B4A240346009CC +:10A1F0002E700294B522B402B482B442408184022B +:10A200004035440940A1840292834034D4099242EB +:10A2100092B492164091840240620402FF4EFE0EF8 +:10A22000FE56DD5A944D043100F540242C08926B03 +:10A230005441801F4037B008FED7FEE7402528086C +:10A24000FED74024A008FED79487400188049536A5 +:10A25000FE2740239404FE47402124084000880440 +:10A260009601FCC044051010B400EA2E9208DD9E51 +:10A2700044348088EA9B40206408B483FE8F461FE4 +:10A28000CFFF46003000DD5BFE86FE664001040421 +:10A29000B603DD9EDD9E46100081040080349210DE +:10A2A000DD4E5800333314008034DD9E46100081AB +:10A2B000040080369210DD4E58003333140080368F +:10A2C000DD9E4414500CB401DD50B601DD9E4424E3 +:10A2D0000090EA57B422922CEB50FE47B622DD9E46 +:10A2E000FC0044042C04441BFFFFB440FE56B6207F +:10A2F000B440EAAFFE57B620B440461FFBFFDD5B1B +:10A30000FE56B620B44046100800FE578441B620E1 +:10A3100080624404280444142404DD4444142C0CB6 +:10A32000460FFEFFB441DD43FE168441B601806254 +:10A330004404280C4414240CDD4444142C00440F21 +:10A34000F3FFB441FE1658000400B601B401844185 +:10A3500058001000B6018062440428004414240010 +:10A36000DD44FC80FC4044142C1C84C1B441463FB5 +:10A37000FEFF4070180250318FFF4003D008FE9E50 +:10A38000FE87B64180668046EB15EAE5DD4444244D +:10A390002C20EAA6B462947CFE1EFE0FB6028066F4 +:10A3A000804644042820EBFBDD4444142C0C467EFC +:10A3B0000FFFB40150738FFFFE3E46911000400026 +:10A3C0002404B601804680664404280C4414240CFE +:10A3D000DD4444042C2C8046B4208066FFCE40939C +:10A3E000A404B7204414242C4404282CDD44FCC0CD +:10A3F000FC0044045508441FE7FFB440FE56B62055 +:10A40000B440441F9FFFFE56B620842149FFF44DFF +:10A41000FC80FC004404588CEA74B420542080FE74 +:10A42000B4209228EA78FE57B6204414550CB44163 +:10A43000543100FEB441924840212008FE9FB641AD +:10A4400084418062DD4451C30E48B913EB8EDD4375 +:10A45000FE0EB893B91346004000FE0F8441B89336 +:10A460005013069450030A948062DD44B43C440FB8 +:10A47000FFDFFE0EB61CB43C440FFFBFFE0E84414E +:10A48000B61C5013064850030A488062DD44FC8025 +:10A49000FC2044642C3480E0B4069210DD4E5A78DF +:10A4A000014544108000FE0FB606EAF7EAEF804748 +:10A4B0008067DD44B426B4069230966F581080C091 +:10A4C0004040C008461FF00FDD5BFE46FE67B62623 +:10A4D000EAEFEAF780478067DD44EB23440FC0FFD3 +:10A4E000EB14FE1658000200EB1DEB14460C0FFF98 +:10A4F000DD43FE1646202000FE17EB1D0420829649 +:10A50000440F9FFFFE8658212000142082960420CD +:10A510008196FE1658004000140081968047500036 +:10A520008A5850108658D53B84418062B606EAF7B7 +:10A53000EAEFDD44B426460003F0B446FE46EB1BCA +:10A54000DD43FE16FE0F8441B606EAF7EAEF8062AD +:10A55000DD44EB23440FC0FFEB14FE16EAEAEB1DCB +:10A56000EB14460C0FFFDD43FE1646201000FE17CD +:10A57000EB1D04208296440F9FFFFE865821200089 +:10A580001420829604208196FE16580020001400A4 +:10A590008196844150008A58501086588062DD446C +:10A5A000FCA0FC004404501C8422B6204414503CFF +:10A5B000844FB4019211EB11B60144145020B40140 +:10A5C00092124000480858000780B60144145034E5 +:10A5D000B4019211EB11B60144145038B401921138 +:10A5E000EB11B601440458E444145564B640B64136 +:10A5F00084418062DD44FC80C843FC004633FFFF99 +:10A6000080404404590050318FF8B6604404590426 +:10A610004443FFFFB68044045908441458ECB64044 +:10A6200044045580B66044045584B680440455887B +:10A63000B640440458F4B660440458F8B680440464 +:10A6400058FCB64044045574B66044045578B6804E +:10A650004404557CB640440458E8B660B6814414BE +:10A6600058F0B64144145568B6614434556CB6830D +:10A6700044345570B64384498062DD44FC805A08F6 +:10A68000026A4404589C4612DB6D50108768B6205D +:10A69000440458A04422DB6D443458A4B6408400DE +:10A6A000B6034434551CB62344345520B6434434D1 +:10A6B0005524B60344345890B62344345894B643D2 +:10A6C00044345898B60344345510B62344145514F2 +:10A6D000443458D0B64144145518442458CCB601DB +:10A6E0004611B6DB501086D8B6224421B6DBB643FD +:10A6F000443458D4B6034434554CB62344345550EE +:10A70000B64344345554B603443458C0B623443495 +:10A7100058C4B643443458C8B60344345540B623ED +:10A7200044345544B64344345548B603443458D8A9 +:10A73000B623443458DCB643443458E0B6034434BA +:10A740005558B6234414555CB64144145560B601BF +:10A75000DD9E5A08031C4414589C4603FFFF50001A +:10A760000FF8B601441458A04423FFFF443458A402 +:10A77000B6418420B6234434551CB6034404552006 +:10A78000B64044045524B620DD9EDD9EFC004444C2 +:10A79000590C8441B424FE1694C5440FFFDFFE46D5 +:10A7A000FE5FB6244414558CB4A1FE2EFEC7B661DC +:10A7B000B464440FFFBFFEC6B664B461FE1EB601AA +:10A7C00080628004DD44FC80FC00EA7446020000E4 +:10A7D000EBF2B43C8441FE0FB61C501306B4EBD729 +:10A7E0008062DD44B43C460DFFFFDD43FE0EB61C27 +:10A7F000FC80FC00EA7446010000EBF2B43C8441AA +:10A80000FE0FB61C501306B4EBD78062DD44B43C97 +:10A81000EBA6DD43FE0EB61CFC80FC00EA74EAFAEF +:10A82000EBA7EA37EBF2B43C460080008441FE0F10 +:10A83000B61C501306B4EBD78062DD44EBA7EA37B1 +:10A84000B43C460F7FFFDD43FE0EB61C49FFFFBE42 +:10A85000FC8046200080960F043100A49445440FEC +:10A86000FF9FFE1EFE0F140100A4DD9E4424008401 +:10A870009606B462DD5EEA3AFE1EFE0FB602DD9E6B +:10A88000442400849606B46240104408440DFFFF3F +:10A89000FE1EFE0FB602DD9E442400849606EA9B4F +:10A8A000B462EAA1DD43FE1EFE0FB602DD9EFC008F +:10A8B00044242C34B402B4629210540000CF5800E7 +:10A8C0000020DD5EEB1BDD43FE1EFE0FB602844161 +:10A8D000EAEFEAF78062DD44FC80443480889481AA +:10A8E000B483FE17843C54200003FE664001040438 +:10A8F000B603DD9EFC00440400184618048FB440E3 +:10A9000050108CFEFE564626E86050210301FE578B +:10A9100044340010B620B423442098789230EA24BE +:10A92000FE57B623B440461FFEFFDD5BFE56B62041 +:10A93000B440EA9DFE57B62084008020EAFCFC80EB +:10A9400044472044FE0CB4A4EB59463FC00FDD5EE3 +:10A9500050018FFFFE2EFE0F4417204CB604B401A9 +:10A96000EA93FEC646003FF0FE8658318240FED78D +:10A9700044272004B661B422EB1BDD43FE0E4610D3 +:10A980000390FE0FB60246200080460FFF0F041111 +:10A990000070500000FFFE0E44120800FE0F14016C +:10A9A00000704600009150300044B42358108010CD +:10A9B000B623A09A44140000FE57A85ADD9E4437DF +:10A9C000204C460FC00FB423DD4344210000FE4657 +:10A9D000FE57B62344172044B461FE1EFE17B6018D +:10A9E00046100091A00B92069406DD50A80BA00C17 +:10A9F00092059405DD50A80C04208011EAA6FE16ED +:10AA000014008011DD9E46000091A0029601DD9E9B +:10AA100046400091EA24FE0F4031C0080452001C59 +:10AA2000FE9F1402001C0402001D1422001D222F90 +:10AA3000800A221F8008EA93FE8F46103FF05010D4 +:10AA400083FF04020020FE8E461FC00F50108C00B2 +:10AA5000FE0EFE1714020020DD9E46300091848316 +:10AA600014418022A819440001F4A81A0401800AA4 +:10AA7000EA78920AEA8ADD501401800A0401800B08 +:10AA8000EA93920AEA8A5800021C1401800B0451CE +:10AA9000800E464003F3460FFC0CFE8F50420F0021 +:10AAA000500000FFFE2EFEA6401100041411800E7F +:10AAB0000401801258003020140180120411801308 +:10AAC000440EE787FE0E44110848FE0F1401801360 +:10AAD000B423EAA0FE0FB603DD9E4600009150307D +:10AAE0000044B423EAD8B623B443843EFE56B623CA +:10AAF000DD9E44240018C820B4029606AE08B402B5 +:10AB000092089606AE09B40292129606AE0AB402F4 +:10AB1000921C9606AE0B44045010B4009208AE0D81 +:10AB2000B402921B9606AE0E44047000B40092105C +:10AB30009606AE0FDD9E5A080135A709A6CA404207 +:10AB400020084031C808FF1FA6C8B402FF1FA6CBCB +:10AB50004031F008FF1FA6CE4031EC08FF1F463100 +:10AB6000804050318101FF1E463E7FBF50318EFE36 +:10AB7000FE1EFE2744445010B602B404A6CD442F56 +:10AB800000FFEBDAFE16FE1FB604A60F4424700089 +:10AB90009606B462DD5EEA3AFE1EFE0FB602DD9E48 +:10ABA000B422460E7FBF50000EFEFE0EEB1AB60218 +:10ABB000B441440F00FFFE16B601EB6CEA3AB44113 +:10ABC000FE16B601DD9E46200091962FA0539226D8 +:10ABD000944EFE47A853DD9EFC0049FFF8E95A0059 +:10ABE000010849FFF006920E560000019606FC800F +:10ABF000462000919627A0549225944DFE47A854D4 +:10AC0000DD9E44173010B4019606C0FE4417301084 +:10AC1000B401920396065A0001FDDD9E84A0D00483 +:10AC2000EBA88CA1D5FDDD9E44273010B4229221E3 +:10AC300096465A1001FDFC0044173000B60184020C +:10AC4000EB9E49FFFFE0FC80FC004611FFFF501027 +:10AC50008F00FE0FEB89FC80FC004611FFFFFE0F0A +:10AC6000EB89FC80FC004601FFFF500002BBEB8932 +:10AC7000FC8044273010B422922196465A1001FDE0 +:10AC8000FC0044173000B6018402EB9EFC80FC00FF +:10AC90004661FFF950030527EB7750030487EB77F4 +:10ACA00049FFFFB1FC80FC004661FFF9500305003D +:10ACB000EB7750030400EB7749FFFFA5FC80FC41D4 +:10ACC00080E180C2838381048145F0816493040222 +:10ACD000441180006413040349FFFFDBF0015A00B4 +:10ACE000FF03EBA041CE2008408E200440634008C3 +:10ACF000406418044003E008FE37EB895AA80104B9 +:10AD0000840FEBA049FFFFD164930403FCC14427E7 +:10AD10003010B422922196465A1001FDFC204417AF +:10AD2000300044601000B60144748008B4079211EA +:10AD30009606C00CEB7F8422AE402E07F64CC00E68 +:10AD400084003E07F64CEAF6FCA02E07F64CC8F34A +:10AD500084018EC1EB9ECEEBD5EE44073014B400D7 +:10AD600092109600FCA0FC21F0816473040244015F +:10AD7000800064030403406120084602F000EA24D6 +:10AD8000FF87FF8F49FFFF85F001EBA0800649FF99 +:10AD9000FFC0F081840FEBA049FFFF8764730403B9 +:10ADA000F001FCA144173008B40192059405DD5070 +:10ADB000B601EB7F8424AE408422AE4044148088E8 +:10ADC00044040000B441FE17B601DD9E4407300480 +:10ADD000843EB440FE56B620B420EAD8B620DD9EAC +:10ADE000C907EB51843EB4629606FE5ED5095A1837 +:10ADF000010AEB519606B4629441841DFE1EFE0FBB +:10AE0000B602DD9EC80444050000D50344050010C9 +:10AE1000B4009210961FDD9EC90444250000D5059C +:10AE20005A18010D44250010961FDD5EB462460FCE +:10AE3000FF0FDD43FE1EFE0FB602DD9EC90844244F +:10AE400080809606EA9BB462EAA1D50A5A18010DE1 +:10AE500044248080960640106408B462EB8EDD4383 +:10AE6000FE1EFE0FB602DD9EC90444250008D5056E +:10AE70005A18010C442500189606EA9BB462EAA110 +:10AE8000DD43FE1EFE0FB602DD9EC804440500042D +:10AE9000D50344050014B4009601DD9EFC00EBE3ED +:10AEA000CA064420FA0042500824D5114420FFFF6E +:10AEB000DA0D445003E84042149742501024406396 +:10AEC000040C406298D79631D507FF444003040C28 +:10AED000400280169601C0038E019601CB044425E2 +:10AEE0000004D5055A38010944250014B4229230D3 +:10AEF000EA24FE0FB602FC80C807EA568421AE4061 +:10AF000044150008D5085A08010AEA568422AE40C2 +:10AF100044150018B401EAEAB601DD9EC80C4405E8 +:10AF20000008B42058108004B620B42096465A1069 +:10AF300001FEDD9E5A08010C44050018B42058108B +:10AF40008004B620B42096465A1001FEDD9EC80E3D +:10AF5000EA568421AE4044050008B420581080020F +:10AF6000B620B4209646C1FEDD9E5A08010EEA5670 +:10AF70008422AE4044050018B42058108002B62048 +:10AF8000B4209646C1FEDD9EC90444250000D505C7 +:10AF90005A18010A44250010B462843E9606FE5EEB +:10AFA000FE0FB602DD9E8421C0045A0801058422EA +:10AFB000EA56AE40DD9E44048000B4009218960626 +:10AFC000C011FC00EA568421AE40DD405A0801045D +:10AFD000490012162E07F62F8C0196003E07F62F19 +:10AFE000FC80DD9E44048000B40092199606C02DBA +:10AFF000FC00EA568422AE40DD40C803490012003E +:10B00000DD485A08020D3C03FB0B8E019603EB0E44 +:10B010003C03FB0BC819EBF19603EB0EDD405A081D +:10B0200001044900008D2E07F6185A08010EEA2285 +:10B03000C809DD40C8078403EB54C0068403EADB7B +:10B04000FC808400EBDBFC80DD9E4424005CB422A9 +:10B050009230EA24FE0FB602DD9E4404005CB40088 +:10B060009601DD9E465000928481A0E9EA93401249 +:10B07000040CFE574010B8089272922E4031C80856 +:10B08000FECFEB51A8E9FE26B462DD5EEA3AFE1E71 +:10B09000FE0FB602DD9E442480949606B462EA2533 +:10B0A000EA4AFE1EFE0FB602DD9E442480949606F8 +:10B0B000B46240102408440FFDFFFE1EFE0FB602CE +:10B0C000DD9E46200092843EB4629606FE5EFE0F30 +:10B0D000B602DD9EFC028420B001844CDD474600B0 +:10B0E00000928C14B420EB73922AF181B420EB739C +:10B0F000922AF182B420EB73922AF183F203F102D7 +:10B10000E241E9F1F202F101E241E9EDF002FC82F3 +:10B11000FC004404000CB400921096065A08010684 +:10B1200049FFFFDA8423D50749FFFFD6842AFE0CA6 +:10B130004410FA00400004179601FC80FC00EA74F9 +:10B140000403001396065A08011049FFE9D5C80CFC +:10B150008386B917841EFE46B997B917EAD8B997FE +:10B16000B917FE0EB897FC8046200081843E04315A +:10B1700000149606FE5EFE0F14010014DD9E4620AC +:10B180000081843EA0D59606FE5EFE0FA815DD9ECA +:10B1900046000081A0059606DD9E441470085A08FA +:10B1A0000108B4019210DD4E58007823D504B40193 +:10B1B0009210DD4EB601DD9E44245014843EB462EC +:10B1C0009606FE5EFE0FB602DD9E4424000C960637 +:10B1D000B462EA25EA4AFE1EFE0FB602DD9E440571 +:10B1E0001000B40092089617DD9E442510009617B3 +:10B1F000B462EA25440FF8FFFE1EFE0FB602DD9E84 +:10B20000442480849606B462EA25EA4AFE1EFE0FB4 +:10B21000B602DD9E44251000843EB4629606FE5EB2 +:10B22000FE0FB602DD9E44251004B4229230EA24BB +:10B23000FE0FB602DD9E4415100CB401EAEAB60119 +:10B24000DD9E4415100CB401DD50B60144151018F4 +:10B25000B40196005A005AFEDD9EFC404400012CC9 +:10B26000EA374475100C449FFF988400AE38FA18F2 +:10B2700010938000EA37440510184465100CB400A0 +:10B2800096005A00A5F4B426841EFE0EB606FCC035 +:10B290008402EBB53E07EDE6DD9E3CF7F1EE2E10A5 +:10B2A0000659E02FE809DD53DD51EAC8C805EBB5C2 +:10B2B00084083E07EDE62E07F6532E17EDE68C01C7 +:10B2C0009600E201EBB5E9088400EBB584023E0785 +:10B2D000EDE68401DD9E8400DD9EFC22FD30EB0165 +:10B2E0002E27E3D8F08396A6C218C70384E3D502BD +:10B2F00084E5CE08F003EA6E80C0EAE4EA8FF083CA +:10B30000D50384C0F6838460B67FEB0B8026F203FE +:10B31000808780A3490002A8FCA2FC4085212E66FC +:10B32000E41E2E76E41FDD40C802FB202E17F652E5 +:10B330002E0FF651C91BC00B49FFEBBF8421400003 +:10B34000800C2E17F650FE0F3E07F6502E57F65083 +:10B3500084024C54C00984013E07F65284003E0723 +:10B36000F650840049001437D52D2E17F066E020E2 +:10B37000E9292EFFF64F2E17F065E02FE92349004B +:10B38000143EEA2F2E3006598423FECC8440E04739 +:10B39000E815424118248420E026E80D994C38F045 +:10B3A0001511E06FE80584003E07F64FD5078C21A4 +:10B3B000964BD5F38C419693D5EB8400842149FFBD +:10B3C000FF8E2E1FF6512E07F066E001E9072E0FC3 +:10B3D000F64F2E27F065E040E80A84003E07F6525B +:10B3E0003E07F6513E07F64F8401FCC08C218C01CC +:10B3F0003E07F64F3E17F6518400FCC0FC0049FFA3 +:10B40000FE2E80A04460C9AED61A4400F38AD80844 +:10B4100044004E1DEAABEA36DD50EAA5FC8044004C +:10B42000A67CD80649FFF720C80A8006D507440045 +:10B430008411D80549FFF718C802EAABFC80FC006C +:10B4400044008411EAABEA369606C00A4400A67CA2 +:10B45000EAABEA36EAEEEAA5EA36EBC4EAA5FC80F6 +:10B46000FC008400EAABFC804E0700198E014010FE +:10B470000409FE0F40100809FE0F40101009FE0FCE +:10B4800040102009FE0F40104009FE478C21840027 +:10B490009221C1038C01D5FDDD9E8400DD9EFC4D13 +:10B4A0004401064450FF801880C0802F3A231404C2 +:10B4B000EA66814683813A2514044491066C3A2E4B +:10B4C000142480893A250C0080BF3A2E0C203A22A1 +:10B4D0000C043A228C2445E2170CA5E03A27940488 +:10B4E00081FE811FEAA4EA44802FEA663A2E0C000E +:10B4F0003A208C20441217003A240C043A208C2461 +:10B50000ADC8B050EA5D8001EA7681003A231404A8 +:10B510003A241424B1833A250C0080863A240C2066 +:10B520003A248C0444920E9C3A220C24EA4480294A +:10B53000EA66EA5D8001EA763A240C00EB354402C3 +:10B540000E903A230C043A200C24ADC0FCCDFC49EB +:10B550004401067850AF801C8101802AFD313A20D9 +:10B560000C043A208C24A400FA40AC08509F803888 +:10B570008420B00ADD4780098420FA40DD475A68FC +:10B58000010385005A78020558130001D502802670 +:10B590002E07F77F84445A000103844084E09C31E5 +:10B5A000838744320E749D09F08184A19638B61FBA +:10B5B00038051C00F585F38438618000F0018AC2EB +:10B5C00097B18CC1FFA497B1EBED8006F283F482B2 +:10B5D00049FFFF4C8C08F402F203F304F505C6059D +:10B5E00041C2800C41CE1B97B43F84C3406098D7C2 +:10B5F00038149A028A0840F0A8089404880F380486 +:10B600009A0AB00AB04A38001A028CE1EA8A881C09 +:10B6100038009A0A5A780ACC8001442000448029D4 +:10B6200049FFE89CFCC9808084409AE096D8E2619A +:10B63000E80808320001E26240313C1B8043D5F645 +:10B640009C119600DD9EFC4051FFFBE0442004006D +:10B65000812080E1B0088420DD47B1814411067863 +:10B6600080063A208C043A200C24A448FA40AC40CE +:10B670008420B004DD4784204E930008842A4402CD +:10B680000E7449FFFFD280208460852344A2170CEA +:10B690004402170039E30C009718402F0808404275 +:10B6A000249741C1280040822008B0888902844044 +:10B6B0009750E2A1E80FB4BC3852890154F283FFDD +:10B6C00038540A024052A80888AF38540A0A8C41FC +:10B6D000D5F0382078008C618A47545103FFB0843C +:10B6E00038211202402128088845B1443822920AA4 +:10B6F0005A380AD2B0084420004449FFE87DB0041B +:10B700004410004449FFE8B051FF8420FCC0FC40D5 +:10B71000442720FC460000FFB422DD43FE47B6224A +:10B720004417213CB441FE17B60144200C004402EA +:10B730007600EADADD42442276004410023F4402F9 +:10B740007A801A1100014C207FFE8420447209A0E7 +:10B75000FAD0FB228460990B972144A2760038032B +:10B7600091018E01400018B64202A473960184A094 +:10B77000D803124500008CA197698D425A5A40FAAD +:10B780008C615A3812EA8C3296495A1A40E5840084 +:10B79000581030008C0196011A1100015A08C0FAA5 +:10B7A00044172080442720B0B401920CEA4E580080 +:10B7B0000240B601B402441276009214EA72FE0FFF +:10B7C0004417207CB602B401920CEA4EB601FCC0CC +:10B7D000460000808420141000DDDD9E46000080BD +:10B7E00044100FFF141000DDDD9EFC4284C080E099 +:10B7F00080038121F481F683EA8FF083F001EA6E01 +:10B80000F1038046F183848098D496D9C706F1036A +:10B8100038108D1138138D094E92000AF503381037 +:10B820000D0138528D019B4D38548D098C815A4839 +:10B8300012ED8C5296915A2A40E8FCC2FC4184C019 +:10B840008120800280E1F681EA6EF0818046965187 +:10B85000E227E808F00138000911380489098C4111 +:10B86000D5F7FCC1FC4044910000007F802040627D +:10B870000409C03622510000CF084052C40840528B +:10B880008C0C88A6FF6AD50922A080008AAA4052A3 +:10B89000C40840528C0C88A64052900E81E54E544C +:10B8A000000452F2800040F7C00AE90D02808000D7 +:10B8B0004E56000740579406FF6A9769D50284A147 +:10B8C00088A8D50822A0800040A5440888AA88A995 +:10B8D00090B18E01AD488C428C229601D5CBFCC034 +:10B8E0002E17E36E8801960154100001C1038C01EC +:10B8F0009601DD9EEAF9DD9E3E07F77EDD9EFC00A7 +:10B900004900119280C0EA224E02009EEB3C441294 +:10B910000E3850000384AC30EAF9AC3138008101B4 +:10B92000AC3249FFEF288C01AC333C03FB5BAC34F9 +:10B930003C03FB58EA57AC353C03FBBDAC3649FF32 +:10B94000EA7BAC3749FFEA7EEA5BEA9C9606C804CC +:10B9500044000190D503440001911203000F3C0004 +:10B960000325120300123C03FAA31203001049FF3F +:10B97000F43412030011440022B8120300093C03FE +:10B98000FB0D1203000ADD451203000B3C03FB46CE +:10B99000120300133C03FB47120300143C03FB4853 +:10B9A000120300153C03FB49120300163C03FB4A3B +:10B9B000120300173C03FB4B120300183C03FB4C23 +:10B9C000120300193C03FB4D1203001A3C03FB4E0B +:10B9D0001203001B3C03FB4F1203001C3C03FB50F3 +:10B9E0001203001D3C03FB511203001E3C03FB52DB +:10B9F0001203001F3C03FB53120300203C03FB54C3 +:10BA00001203000C3C03FB551203000D3C03FB56D4 +:10BA10001203000EDD53DD51920196061203002B36 +:10BA2000DD53DD51920496061203002E44002537A3 +:10BA30001203002F2E000F5F120300302E00106B38 +:10BA400012030031FC80FC009442541080FC44023C +:10BA50000E7449FFEE9CFC80FC0080C09401EBC496 +:10BA600049FFEE388006842049FFEE5C800649FFDE +:10BA7000EE71FC80FC0180C0F1813E07F77F49FF39 +:10BA8000FFED8006F10149FFFFE0FC81FC402E47FD +:10BA9000F77E44920E3844720E6080C08400804964 +:10BAA000806780A4802049FFE9E72E17F77E840095 +:10BAB00038148501EA422E17F77E84033814850175 +:10BAC000EA42EAF9842038038000EA3DEAF9842357 +:10BAD00038038000EA3D84023C13F6C8EA42840041 +:10BAE000842149FFEF2B8401802049FFEF27840246 +:10BAF000842149FFEF23E6C28400E8062E27F77E63 +:10BB00008E415C0100018026EAD6800649000FE1E3 +:10BB1000FCC0FC0980C0EBA5F086EB4DF087EBA3E1 +:10BB2000F088EB46F089EB4EF08AEBC1F08BEB3AF4 +:10BB3000F08CEB83F08DEBBEF08EEB67F08FEBC5F6 +:10BB4000F090EADFF091B006EABD801F44120FC00A +:10BB5000FA48CE07EA39801FEAD38006EA49D506BB +:10BB6000EA39801FEAD38401EA49800649FFFF9041 +:10BB7000EB0B49FFF186840349FFF1E2800649009F +:10BB80001350FC89FC0044023DBC84204420018009 +:10BB9000DD428400EB8DFC803C23FB58C105FE8711 +:10BBA0003C2BFB58DD9EFE03FE863C2BFB58DD9EA6 +:10BBB000FC422E36E4202E06E421B61F3C03F47C22 +:10BBC0005CF00121E907440020008421F381DD4974 +:10BBD000F3018520951980C94C61804285409431DC +:10BBE000F081838A810A80EAB41F4C7000132E57BB +:10BBF000E868DE082E57E869DF058CE197F889448C +:10BC0000D5F42E57E86ADE152E57E86BDF12D5F60D +:10BC1000E323E80C40048C0844121790880115C0F7 +:10BC2000000014800001EAEDEA838CC197B0D5D5FD +:10BC3000F101440209A0880AF48338200401FA10B3 +:10BC40008E414001005684208401F382EA5541CEA2 +:10BC5000000440840404F302F403D5D0FCC23C2366 +:10BC6000FB5884214010800CFE564000800E960642 +:10BC7000DD9EFC402E67F2162E76E41E2E07F2158E +:10BC80003C43720C40421C962E96E41FC4323C5337 +:10BC9000720D4052A4B6C52D5024FFFF54A100FFE1 +:10BCA0009EB9EAAC846A8780548100FF002080C777 +:10BCB000C21BA08B4E240003FE9240FE0806E8142F +:10BCC0002260800D2200800E406310D797B04000A4 +:10BCD0001417E2C7960040643C1A8382E2094005CB +:10BCE0003C1A41C13C1B8E6196D85010810CCBDFB1 +:10BCF000E6C93E07F6B2E9045263001197B0C60EDA +:10BD0000E4C8E810E6C28520E9039E32EA835A605F +:10BD1000070E9DF297F88146D50B84E28541812676 +:10BD2000D50784E885478526D503814684E88404C1 +:10BD30008420DD492E87F6B34E8300168008DD523D +:10BD40008020C8243C23F9029686C2202E57EEF8A4 +:10BD5000D61D8402DD49440004058421DD493E6787 +:10BD6000EEF8D5145A880113EA9780089646DD4903 +:10BD70002E57EEF8DE0584028420DD49D507440005 +:10BD800004048028DD493E67EEF88402DD52C01CC1 +:10BD90008401521480114020240C4010040CFE57E2 +:10BDA0003C1FFBC3521500114010040C4020280C0E +:10BDB000FE573C1FFBC2521380114010040CEB0FC6 +:10BDC000FE0F3C0FFBC1840ADD52C0073E97EEFF19 +:10BDD0003EA7EF003E77EF01FCC0FC45EAE4EA8FA6 +:10BDE000500004802E17F6B3F0888400F18984C0D7 +:10BDF000F0878506FE32F085F008F683F086840031 +:10BE0000F0848006F205E40040203C1A802244229F +:10BE10000FA4840D38710400DD52F1048A204E1500 +:10BE200000C0FA01FE0C8AE04E7500CFF0034E050B +:10BE300000DA804044020FA438200800FA01FE44D2 +:10BE400096089A10960044121790940388013A00BD +:10BE500004003A0F8420F00980A15A000151F10436 +:10BE6000848304FF80068400844094E942A09024E7 +:10BE7000409000053A4F94004012000D4091A40CF0 +:10BE80004052800D547000204014840440129C1BCA +:10BE900080AA4251207396465091000188A68C01D9 +:10BEA000C10C542480FF44423DBC227780005C11C9 +:10BEB000002038721509C10550F7800C5A0820DAA5 +:10BEC000F0038E02F083F0068C06F086F0058C02FB +:10BED000F085F0045A0001068401F084F003D59344 +:10BEE000F0088CC18C02F0885A60030448FFFF847C +:10BEF000F0095A0801044800007FFCC5F1018443A1 +:10BF000094C9F104F5068400848043E08824D5199F +:10BF1000F70742AE282441C50013E2FC40A3BC1A37 +:10BF200040750013F787C10A004F800844723DBC7A +:10BF30005CF2002038938909E8C48CAC5A0020C216 +:10BF4000805E42222073884644723DBCB43F40F07C +:10BF5000000538738911F2014010800D40F1BC0CCE +:10BF60004021000D40F784049C6154A000202292DF +:10BF70008000F18280224017A81A805E422220733E +:10BF8000964640F49C0188468C0141C7801340A02E +:10BF900080134EF4FFBF8AE941C38013D5BAF10480 +:10BFA0008A01FA21FE448AE14E750024F1034E1500 +:10BFB0000056804144120FA438208800FA21FE0C5C +:10BFC000960048FFFF409600F203F305E44040313D +:10BFD0003C1A44220FA438110C008A01960048FF35 +:10BFE000FF34F20544020FA43820080048FFFF2860 +:10BFF0009608D5EBF4073C33FB4DEA97E283840ABD +:10C00000FE24EB86FA4140200857540080023C3B56 +:10C01000FB4D3C4BFB513C2BFB52C0312E17F6B273 +:10C0200044023AFC3810050142010424920A9601A8 +:10C030002E17ED8C3C0BFB535A100620EB17E22019 +:10C04000E917844DFE148447FA64FE5440000C1630 +:10C0500040108C368801EB8DFCC5F20544120FA40C +:10C0600038208800FA21FE0C960048FFFEEC3C23A5 +:10C07000FBBEE24040013C1BEB8DFCC53C0003488D +:10C08000EB02FE14DD549601D5D484003E07F6B4CD +:10C090003E07F6B3DD9EEA7954100040C107540014 +:10C0A00000BF3E07E3D98401DD9EFC0049FFFE97F7 +:10C0B000EA7A5A0001048400FC808403DD52C8FC43 +:10C0C0002E27F77EEB4AEB1738300901E223E9020D +:10C0D000CB03381009093C23FBBDE241E8122E07CF +:10C0E000F6E384C08C013E07F6E384043E67F6E283 +:10C0F000DD52C030FA008420DD493E67F778D52A4A +:10C1000084003E07F6E3EA9C44421640960E2E3722 +:10C11000F596C00F2E07F779C00C2E07F6E23812FD +:10C120000C00E001E8038C0196403E17F6E2D504CE +:10C1300084003E07F6E22E17F6E238020C00E220F9 +:10C14000E9038400EB553C53F06FD204FA008421DC +:10C15000DD492E67F6E384073C6BFB50DD52C819BE +:10C160003C13F06F3C23FB5B9221E241E9122E1756 +:10C17000F6E18C219648E623E8043E17F6E1D50C5B +:10C180003E07F6E13E07F6E08421EB2DDD49D504BC +:10C1900084003E07F6E18407DD52C016EA9C960E45 +:10C1A000C013EB5BEB179201E220E80E2E07F6E0DE +:10C1B0008C0196005CF0003F3E07F6E0E908EB2DAD +:10C1C0008420DD49D50484003E07F6E08407DD5273 +:10C1D0002E17F6E0EB99EA6A3C03FBBD3C1BFB49DA +:10C1E0005CF003203C03F070E9048423FE0CD507C7 +:10C1F0002E57F6B42E17F6B3D9028C01E0C04EF3D9 +:10C20000FF5C84003E07F6E23E07F6E3842144002B +:10C210000088DD4984028420DD49EAB18401FC8084 +:10C22000FC06EBA5B61FEB4DF081EBA3F082EB46CD +:10C23000F083EB4EF084EBC1F085EB3AF086EB83B4 +:10C24000F087EBBEF088EB67F089EBC5F08AEADF98 +:10C25000F08B801FEABDFC868400EB55DD9EFA243E +:10C260003C0BFBBD8C02FE0C842DDD543C0BFBBE55 +:10C270008400EB55DD9EFC004462039C44020FB831 +:10C2800049FFE5E70013007F0023008300330082AD +:10C290000043008000530081840149FFE59584013B +:10C2A00049FFE5C249FFEA35840049FFEA2749FF13 +:10C2B000EF210003007E3E07F77EEB5BEBDCEAFF3D +:10C2C000EAB149FFFC77FC80FC02EAF92E17E38B08 +:10C2D000E001E8048C019600D50284003E07F77E59 +:10C2E000EA30EB16EA30F081EB01F082EAD0F0831D +:10C2F000F102F001F203EA7FFC82FC402E17F59C6C +:10C3000044720E388120381385018401EA42EAE93B +:10C3100044620E60842238030000EA3D5A900618F9 +:10C320002E17F59C840038138501EA422E17F59CE0 +:10C33000840338138501EA42EAE9842038030000C7 +:10C34000EA3DEAE9842338030000EA3D8400EB8DEE +:10C35000EAB184208402DD49EA75EA73FCC02E0745 +:10C36000F78F9600C00584003E07F78F8401DD9E9D +:10C370002E07F78E9600C00584003E07F78E8401D5 +:10C38000DD9EFC00840049FFF6F18400EBC88400C8 +:10C3900049FFF7053C03F1D4842784408461EA4BCC +:10C3A000EACFE602E80484018420DD4B840080208B +:10C3B000EA3384008421DD4B84008421EA33840144 +:10C3C0008020EA7D840049000BBD8400EAA8840037 +:10C3D0003E07F7918401EBEAFC80FC002E17F790F2 +:10C3E000E623E8502E07F78BC803EB40C0208401FA +:10C3F0003E07F789EB40C00F2E67F62597B0CE0BAE +:10C400008402EB618401EAFA49FFF1E084018026AD +:10C41000DD4BD538EB40C036EBE496005A080233CA +:10C42000EB618400EAFA49FFF1E6D52C2E07F614F9 +:10C43000C8038401EBD849FFF6124410F38A4C007C +:10C44000800BDD5DC00584003E07F789FC80840118 +:10C450003E07F789840049FFDFEB840249FFDFF9DB +:10C4600084022E17F790EB61EA369606C005840128 +:10C47000EAFA49FFF1ABEACFE602E804840049FF9B +:10C48000F1CE2E67F78D97B0CE06840149000B5A86 +:10C490008006EAA82E67F790CE0D800649FFF67F4A +:10C4A00080068026DD4B80068421DD4B3E67F61832 +:10C4B000D54E5A68012B2E07F78D9600C8038020B1 +:10C4C000DD4B2E07F78BC01C49FFE5C049FFE5D9BE +:10C4D00049FFE6F6840049FFE64949FFE654840037 +:10C4E0003E07F78B49FFEC595A0001FEEB635A00F7 +:10C4F00001FF8401EBB7EB2C8400EBB7D50049FFBB +:10C50000E5C049FFE66AD52384013C1DF8E649FFF2 +:10C51000E4EE844180623C03F1D98420EA4B84211B +:10C520008400EA7D840149FFF54084018020DD4BD1 +:10C5300084018420DD4B84018020DD4B8400EBC826 +:10C5400084018420EA3384018020EA3384C13E6779 +:10C55000F79149FFED94EACF5A080203EBAE3E672C +:10C56000F010FC80FC00C8074412182849FFF2C3F1 +:10C570008407D5035A0801064412182849FFF2BB64 +:10C58000FC80FC0080C0EB63C83D5A680104800653 +:10C59000EBB749FFEC025A0001FEEB63C82FDD4800 +:10C5A0005A0802072E07F78EC803EB2CD527DD4863 +:10C5B0005A080316EAE6C822DD485A00012084041E +:10C5C000EB545A08011C2E17F63196485A180103ED +:10C5D000EBFAEB2C84003E07F640D510DD485A08F4 +:10C5E000040E2E17F6419648C909DD485A00010786 +:10C5F00084013E07F640EB2CEBFA5A6801048400F4 +:10C60000EBB7FC802E07F791DD9EEACFDD9EFC4064 +:10C610002E07F791C81949FFF1F83C1DFBBDFAC47C +:10C62000FF8CFF84EA8B81203C7DFBBDEA8BEBB85D +:10C630004010A40C844AFE544003800D9DC1406309 +:10C6400004D7987ED51F49FFF1E080C0840149FFDF +:10C65000F41E42930024840149FFF3D68140EA8B03 +:10C6600080E03C6DFBBDEA8B4014A80CFA644220CC +:10C670008C24842A4003000D40109C0C9D81EADD2F +:10C6800088263C0DFBBD9649C009446186A0FE7416 +:10C69000406080D7EA8B4003000CFCC0FC0049FFDF +:10C6A000E5AFFC80FC20441000AB8441840BEA35EC +:10C6B00080E04410003F84028441EA355460000168 +:10C6C000CE0897EEC70649FFDF1D40030006FCA019 +:10C6D0008401FCA0FC0049FFE433FC80FC0049FF1E +:10C6E000EC7AFC808440EB7696D1E261E807383042 +:10C6F0000800383208088C41D5F8DD9E44321844D1 +:10C70000E222E80838400400384184088C21964829 +:10C71000D5F8DD9E84203C23F8F496094021040ED0 +:10C720009686CA058C215A1805F884049600DD9E69 +:10C73000FC005A00020B5A00030D5A08010F2E0785 +:10C74000F1EC49FFD693FC80840049FFD671FC8050 +:10C750008400802049FFD62FFC80FC0049FFE27A4C +:10C760005A080115EAC23C23F8F4FE4BFE563C1B66 +:10C77000F8F4EAC23C23F8F5FE4BFE563C1BF8F5F4 +:10C780008420DD4184038420DD41FC80FC2080E0A6 +:10C790005A1803044800006FE624E8065A100165A1 +:10C7A000E622E91DD55A5A1805044800006FE6250F +:10C7B0004EF300675A1006044800006F842184007D +:10C7C000DD4B8400EB7E3C0BF8F5840149FFE23D34 +:10C7D0008401EAA384018020DD4BD55EDD40C806DC +:10C7E0002E17F618C9038421DD4B8401EAC2EB0F32 +:10C7F000FE83FE563C1BF8F5EB74FE0F9601EB7EB4 +:10C80000CF0E3C7BF8F52E07F5ABC8093C03F8F4D6 +:10C81000EB7492029402FE03FE0EEB7EDD40C83CF8 +:10C820002E67F61897B0CE388421DD4B8421800620 +:10C83000EA7D840149FFF3628401EAA38401802038 +:10C84000DD4B5A78032AEBF19603EB0E84013E0789 +:10C85000F615EBDB8006FCA08401EB74EB0FFE0306 +:10C86000FE0EEB7ED519EB745A08040C8400EBCC59 +:10C87000FCA0EAC28401EB0FFE0F9601D50BEAC2C1 +:10C8800040009C0E9606FCA08401EAC2EB0FFE035A +:10C89000FE0E3C0BF8F58400FCA0FC0544021DBC18 +:10C8A00084608481B61F44000090F088F481F38294 +:10C8B000F383F484F385F386F387F3898402842574 +:10C8C0004426200880A349FFDE8BFC85FC0549FF38 +:10C8D000DE7444062004846044621845B61F441088 +:10C8E00005778401F081F082F18880468080F383AF +:10C8F000F384F385F386F387F389842480A349FFC7 +:10C90000DE6F80464400007918017FFF440FFF84EA +:10C91000AE128419AE13FC85443620042E27F79CF2 +:10C92000B423EB769228EA78FE578440B62380221F +:10C9300096D1E260E806383208008C418823D5F9A8 +:10C94000FC0044221844FE4A9648381100088C0125 +:10C95000960149FFE15E8401EAFBFC80FC003C009B +:10C960000F548E01960149FFFFD9FC80FC00440062 +:10C9700000DC49FFFFD3FC80FC002E67F788EA4CFF +:10C9800097B08420CE0F8026EA8E3C6FFDE5EB6EDB +:10C99000EBABE806EB6E8C013C0FFDE5D5F9EA4CFC +:10C9A0008421EA8EFC80FC002E67F788EA4C97B061 +:10C9B0008421CE0EEA8E3C6FFDE5EB6EEBABE80614 +:10C9C000EB6E8C013C0FFDE5D5F9EA4C8420EA8E34 +:10C9D000FC802E07FD1496004E020380FC4084214B +:10C9E0003E1002975A082009440210A88420844E61 +:10C9F000EA5A84CEEA415A0821293C1DC7CE3E1787 +:10CA0000EFF54000A0093E07EFF64000C0093E07E1 +:10CA1000EFF74000E0093C1DFC083E07EFF840003E +:10CA2000A0093E07EFFA4000C0093E07EFFB4000B7 +:10CA3000E0093E17EFF93E07EFFC84204402109C0A +:10CA40008449EA5A84C9EA415A08220544021098E6 +:10CA5000D5055A0823094402109484208444EA5AD4 +:10CA600084C4EA415A0824054402108CD5135A089C +:10CA7000280544021078D5175A0829094402107075 +:10CA800084208446EA5A84C6EA415A082B094402A3 +:10CA9000106884208445EA5A84C5EA415A082C0962 +:10CAA000440210548420FA41EA5AFAC1EA415A0871 +:10CAB0002E0944020FDC8420FA44EA5AFAC4EA41FF +:10CAC0005A082F0B44020FF4842044200060EA5AD5 +:10CAD00044600060EA415A08370944020FF084209C +:10CAE0008442EA5A4800022A5A086215DD4C960030 +:10CAF000C00EEB4797B05A680106800649FFE04E2A +:10CB0000EA85DD4C96005A000203EA3F49FFE04601 +:10CB1000EA265A08D10B8461DD4CFA2F2E27FD1628 +:10CB200080A3EBD6EA43EA265A08D20C440FFFD280 +:10CB3000EACDDD4C84412E17FD16EA35480001FD93 +:10CB40005A08F30649FFD8C8480002655A00010494 +:10CB50004800015FDD4C5A080113DD4D5A080108F9 +:10CB60008400EB8884013E07F78FEA26DD4D4E03F3 +:10CB700002998401EB883E07F78EEA26DD4C5A08BD +:10CB800002272E27FD1696904E220076DD4D5A087C +:10CB9000010784208401804148000070DD4D5A0067 +:10CBA000030BDD4D5A000408DD4D5A0805098401C8 +:10CBB0003E07F78C840180208040D55FDD4D5A0010 +:10CBC0000603EA3F84013E07F78BD5F5DD4C5A0892 +:10CBD000090549FFFD85EA262E17FD1596485A10CE +:10CBE0000A0448000078DD4D5A080607EA2058007C +:10CBF0000008EA48EA26DD4D5A08050F2E67F613AD +:10CC000097B05A680106440FFF91EACDEA41440FFC +:10CC1000FF9048000200DD4D5A08071784C04431D8 +:10CC20003FC44422184496719222FE33960F381165 +:10CC3000860294034000800D9600380118088CC1CC +:10CC40005A6814F3EA41DD4D96005A08240D8441D8 +:10CC50003E27F79C3E17F79D3E07F79E3E27F79F1E +:10CC600048FFFF00DD4D4E02FF962E27FD169690E1 +:10CC70005A28020684018020EACCEA26DD4D5A08B3 +:10CC80000308EA20DD50EA48EA20EAEED509DD4D46 +:10CC90005A080410EA20DD50EA48EA20EA68EA4827 +:10CCA000EA20540000F7EA4884003E07F62CEA2602 +:10CCB000DD4D5A000803EA3F2E27FD172E07FD1809 +:10CCC0002E17FD19EA2EEA24FE0FFE173C0FF8F886 +:10CCD000EA26DD4C5A081112DD4DC806DD5FEA2157 +:10CCE00058010002D513EBA297B05A600103EA3F46 +:10CCF000DD5F849DEA21D516DD4C5A081319DD4D00 +:10CD0000C808DD5FEA2158010010EA8DEAC1EA2671 +:10CD1000EBA297B05A600103EA3FDD5F444FFFEF9B +:10CD2000EA2140011002EA8DEAC1EA85DD4C5A0889 +:10CD30001B10DD4D9600C8043E07F788EA26EBA2DB +:10CD400097B05A600103EA3F3E67F788EA85DD4CF9 +:10CD500096005A002203EA3F2E17FD16C9118421BE +:10CD60003E17F79CEB45EABA3E07F79EEA793E0785 +:10CD7000F79F2E07E3DA3E07F7A048FFFE8FDD4D51 +:10CD80005A000103EA3F2E17FD179648E623E815DF +:10CD90002E07FD1844220480960038010408C906B5 +:10CDA0005400007B3E07E3D8D50F5A10010E540003 +:10CDB00000F038010408D50884003E07E3D83E0798 +:10CDC000E3D93E07E3DA4900072F2E37E3D8EA58C4 +:10CDD0002E16E41F88224627FFFF50210FF88822D5 +:10CDE0009489383005092E17E3D98802AC432E17F1 +:10CDF000E3DAAC46EABA3C0BFB54EA793C0BFB5550 +:10CE00002E07E3DA3C0BFB5649FFB4C3EA265A0867 +:10CE100030462E57FD15EBD6DD4D404220082E370B +:10CE2000FD192E17FD18FF078446976896D8964877 +:10CE3000840099A244721DBCE0C2E90A8C41409171 +:10CE40001C0096910094800088099600D5F64E0348 +:10CE500000FA5A500203EA26EBDAFE5F4452000061 +:10CE6000443200005C6081FC44721DBC886188A172 +:10CE70009681E2444EF200E7C60F9C87884740F057 +:10CE80000400009100005CF781FC38918008E904FF +:10CE9000A690382280088C01D5EC5A0831358401DF +:10CEA000EB7DEBA2DD4C40632008FF872E07FD18C9 +:10CEB000EBD6EA2EFF072E07FD1444120000960061 +:10CEC00044220000EACD5C7201FC84004452184404 +:10CED0008824884496C1E266E8109CC1C70C40F0E3 +:10CEE00010005CF781FCE80438010000D502EA91EB +:10CEF00038028C088003D5EF8CC197B14E6200A335 +:10CF0000480000E45A08351CEB4797B05A680112F4 +:10CF1000DD4D96005A0001095A000203EA85840497 +:10CF20003E07EDD8EA8584223E17EDD880C0EA8519 +:10CF3000EACDEADC9600EB4584C2EA415A08611268 +:10CF40002E17FD159648C904EA4CEA8EEA26EB47EF +:10CF500097B05A600103EA3FEA4C8026EA8EEA85E0 +:10CF60005A08A30CFA0244100320DD4FFA02842170 +:10CF7000DD418401EA9EEA3F5A08F01DDD4C842120 +:10CF800096003E17EF30C01EDD4C5A08010984019F +:10CF9000EB2F4400004049FFD6A2D554DD4C96004B +:10CFA0005A080204EB2FD524DD4C5A00FA03EA3F5D +:10CFB000D5265A08F233DD4C842196003E17EF3017 +:10CFC000C806EB2F3E17EDD98401D513DD4C5A006E +:10CFD00001E0DD4C96005A080210EB2FDD4D5A009F +:10CFE0000308DD4D5A08080584023E07EF3084002F +:10CFF000EB13EA98D527DD4C5A08FA053E17F79847 +:10D00000D521DD4C5A08054E2E07FD1D5A080A4A47 +:10D010008400EACD84C1D53C5A08F608EB4750633A +:10D020007F0E5C630001D53E5A08FA0FDD4C5A08AA +:10D0300003048401D505DD4C5A08083484023E07F8 +:10D04000EF3084C1D52F5A08FE2D8401843EEB7D3C +:10D050003E17F79CEB45440000403E07F79E441FF7 +:10D06000FF9084003E07F79F84CD3E07F7A03E1750 +:10D07000F7A13E07F7A23E07F7A33E07F7A43E0736 +:10D08000F7A53E07F7A63E07F7A73E07F7A88006D5 +:10D0900049FFFC4449FFDDBA8400EADBC610D51124 +:10D0A00084C08404EB54C80A442620042E17F79C3D +:10D0B000B4029208EA2EFE0FB602C6038400EA9E6E +:10D0C00084003E07FD14FCC05CF30579E9E149FFEB +:10D0D000DD9D8400EADBD5F5DD9E2E07FDA4DD9EF7 +:10D0E0002E07EF30DD9EFC00EADA4420057880C090 +:10D0F00044021844DD423C100F542E301EA640005E +:10D10000A0092E201EAA96483E37F79CEB453E17F5 +:10D11000F79E3E27F79FC604841F3E07F7A08401B1 +:10D12000EB7DFC80FC000430001B80C00000006C24 +:10D130004051A009975F5A080123926C96DF4C3248 +:10D14000C0089D5D846640328CB69768D50F9D29D6 +:10D15000846640420C765441800F0033006D840297 +:10D16000543180F0FEE71033006D8CAEAE108001BC +:10D17000946B88268448EA398401FC808400AE10D0 +:10D180008400FC80FC438420F0818448B004DD47A7 +:10D190003C700F4AB0049DB98420844851C3803349 +:10D1A000DD4244822F4C8126854044721844800819 +:10D1B000B044502F800F49FFFFB7C051001400BB8F +:10D1C0005A180306000F800F5A00010600040107D9 +:10D1D0005A080106840110040107D5418E22E62277 +:10D1E000E83EF104902A4E1700085EF080FFE90542 +:10D1F000441000FED5028421F001C81A220F800AD3 +:10D200009EB14030200A96D89600383388083803FB +:10D210009808EBE89CB14030200A96D8383388084B +:10D220009CB29600EBD99C339648EAB4D517220FEE +:10D23000800A5014FFFFEBEE969096003823840886 +:10D24000EBDDEBE850148001EBEE96903823840878 +:10D250005014800296003803840885418CC55084A0 +:10D26000010C8D244C6E7FA5800AFCC3FC403C1051 +:10D270000F4B50500480409080018C21EB768A2027 +:10D2800080404074800038310405926838321C08B0 +:10D29000A6C08C02383208084C02FFF4FCC0FC40E7 +:10D2A0003C100F4C50500064409080018C21EB7674 +:10D2B0008A208040407480003831040592683832FA +:10D2C0001C08A6C08C02383208084C02FFF4FCC0CF +:10D2D000FC4084003C600F51442218448060984612 +:10D2E0008C0138310408447218445A0810FADD578A +:10D2F000812049FFD4EF961794035414800740907F +:10D300000404EB3C9CB196179443EAE338939808E5 +:10D310009617FE0FEBD92E07F2469CB29606944361 +:10D320002E07F299509300059617FE0FEBD9EA23CA +:10D330009C339228EAB4EA239C349648EAB48400E9 +:10D3400049FFE26644120E74EA918C019627EB6263 +:10D35000840049FFE07F920896019405400500048F +:10D360009600EBDD840049FFE075509300069600BF +:10D37000EBDDEBC79C77EBEE9690382384085013D7 +:10D380000008960038038408EBADDD5F964F974A9E +:10D390002E17F244540100109646944C5043000955 +:10D3A000964AEA21C002FA102E27F54E96869496E8 +:10D3B000FE57DD5FFE6FFE0F968E9602EA21C203D6 +:10D3C000442FFF80FE875003000A96902E17F54ADF +:10D3D00038239008EAB4EBD38CCF96003803980832 +:10D3E000FCC0FC0049FFDC36C008EB5CC00549FF0F +:10D3F000DBCEEA95D50284019600FC80FC202E77D6 +:10D40000FDA449FFF98980C0C80880208401DD415E +:10D4100080068422EA65D53EE604E82449FFFFE35E +:10D420005A08013F5A6001052E07F60CC8398006DC +:10D430008424EA65C835800649FFF97C49FFFFD39B +:10D44000C80D80068423EA6584013E07F5AA5A7850 +:10D45000021C840144100190D51980068422EA65DB +:10D46000D51F49FFFFC080C05A08011BDD40C80618 +:10D470002E17F618C9038026DD4B84018420DD4178 +:10D4800084038420D50C8401FA24DD4F840180209C +:10D49000DD418403EB94DD4F84038421DD4184016D +:10D4A000DD4A5A080114EB5CC00349FFFA7EC7034A +:10D4B0005A7803088401EA47EBF19603EB0ED50591 +:10D4C0005A7802058401EA47EAD98403DD4A5A08FA +:10D4D000010949FFDBBAEBECEB5CC00349FFFA65DD +:10D4E000FCA0FC0049FFD3F85A08400949FFEEB7F9 +:10D4F0004400004149FFD3F3D500FC80FC00E6194D +:10D50000E809441106A03860800044110684EA91BD +:10D51000D504FA04446000FF3C1DF8F84620008062 +:10D52000502107FFFE564010800D9646C1075A60F5 +:10D53000FF08FA178420DD41D503446000FF800610 +:10D54000FC80FC00C0085A08020D44023F3C441114 +:10D5500006BCD50544023F3C441106D4FA48EA39DA +:10D56000FC80FC008401842184C03E07EF308400ED +:10D570003E67FDA449FFFFE73E67F78884C03C6B28 +:10D58000FBCD49FFF9A5840049FFE34B49FFF9872B +:10D590003E67F641FC80FC4051FFFB1050AF8030ED +:10D5A0008420FA50800ADD47842044200480B01C87 +:10D5B000DD47B1D4441106EC8007EA44EA76EB0873 +:10D5C000EADE4401070C509F8020EAC04401071C9A +:10D5D000B1853A249420EBB084003A231020EAF27B +:10D5E0008400381300009689C2085A2003073825A2 +:10D5F0000602CA033815060A8C015A080CF4463094 +:10D600001C704640082084C0503181C750420082BF +:10D61000448001C038151A02C129382499018400B8 +:10D6200041C104099E895C2100029741E2BCE80DDA +:10D630005A180406B15C3842820AD505C204B15CAE +:10D640003832820A8C01D5F238139A01F483F382BE +:10D65000F18149FFD5A4F101421020739649B01C15 +:10D66000805C49FFD5BCF403F3028CC15A6808D42E +:10D670008401EAF251FF84F0FCC0FC0084C03E67E4 +:10D68000F63749FFDA373E67F636FC80FC2944114D +:10D690000728B1868006EA44EA76EA44EA76EB088F +:10D6A0004411075880FFEADEEA443A239424801F9D +:10D6B000EAB73A238C20EAD38006EABDFCA9FC2015 +:10D6C000004F801C5A400405447002E4D5034470A6 +:10D6D000029440638409CA2697B15043270FE08023 +:10D6E000E90652432710E080E948D50F40F3880946 +:10D6F000444040008A8FE004E9048441AE988441AC +:10D70000505058F098EED50B40438809E080E9046A +:10D710008441AE988441505058F09AEE40019C16D6 +:10D72000D52997315022270FE040E90652222710D1 +:10D73000E040E922D51240F38809442040008A4F96 +:10D74000E0028440E9048441AE98844152002710ED +:10D750008A0440001C16D50E40238809E04084400E +:10D76000E9048441AE9884415250271088854002D4 +:10D770001C169602D50384408002543080209667A0 +:10D78000C302FE4A964A5A2801088444402008569B +:10D7900088409811D502880196425EF0FFE1E90BBE +:10D7A0005EF080208001E903FA0FD50A964A4E14F4 +:10D7B0000008D503441FFFE1FE0A58000020960030 +:10D7C000FCA0FC4051FFFAA8F38CF18AF28BF083A5 +:10D7D00049FFD99FF0888420FA50B01EDD4784208D +:10D7E00044200480B036DD47440106ECB066EA5DB3 +:10D7F000EA66EAC0B1AE440107703A209420802660 +:10D80000EA5DEA66EAC03A2094204411070CB01A97 +:10D81000EB0844110790EADEB015EAB7EB35440196 +:10D82000071C50AF805CEBB03A251020852038856E +:10D83000240040040013C0105A00030FB01E38002B +:10D840002202C80A38732202EAE4EA8F95F9B05E30 +:10D8500088073800A20A8D215A980CEBF003842621 +:10D860008C02FE0C8C04F086F2064400003F40203F +:10D87000080CFE93F290F20384C0FE544000040CA6 +:10D88000FE03F187F093B01E38001A02F0844E02B6 +:10D890000089B015509F80D838001800F089B02654 +:10D8A00038701A0149FFD47B441001C042700473E0 +:10D8B000B01A9679382019018009924149FFD47530 +:10D8C000F00984E09401F085020F800AF08EF005E3 +:10D8D000E0E0E856943DF08FF00541C380138A07DD +:10D8E0008E0194059601F09296308540F08DF009F6 +:10D8F000E2E0E81CF00FF206880AEB3BF010381467 +:10D90000A202F30AFE0EF091F0044010880DF20C12 +:10D9100038007111B65FF20D966FF281F40BF208C8 +:10D92000F50349FFFECEF106D51BF012F207880A77 +:10D93000EB3BF0133814A202F30AFE0EF091F00450 +:10D940004010880DF20C38007111B65FF20D966F21 +:10D95000F281F40BF208F50349FFFEB3F107400032 +:10D96000040CF1118D41FE0F3804A20AF00E881C40 +:10D9700041C000135AA820BD8CE197F8D5A9B02664 +:10D9800038701A0149FFD40B441001C0427004736F +:10D99000B01A967938201901B036924149FFD41F48 +:10D9A0008CC15A60080448FFFF7051FF8558FCC0C5 +:10D9B000FC004402940049FFE23E44029A0049FF01 +:10D9C000E2444402820049FFE2654402880049FFC4 +:10D9D000E26B840149FFD87B4402820049FFE26E7A +:10D9E000840049FFE23CEB0B49FFE24BEB0B49FFA4 +:10D9F000E23F840049FFE26CEB0B49FFE2758400D3 +:10DA000049FFE34C840049FFE27BFC80FC054411A4 +:10DA10000758B00480C0EA44EB98EAB73A230C20D8 +:10DA200044110798B18180863A208C043A220C2454 +:10DA3000A448AC60EAD3800649FFDCA9FC85FC263B +:10DA4000441107A480DFEA44EB98EA44EB98EB0822 +:10DA5000801F80E63A231420EABDFCA6FC09EBA552 +:10DA6000B181F086EB4D441107D4F087EBA3EA4473 +:10DA7000F088EB46F089EB4EF08AEBC1F08BEB3A85 +:10DA8000F08CEB83F08DEBBEF08EEB67F08FEBC587 +:10DA9000F090EADFF0918006EA76B421B620B00675 +:10DAA000EABD800649FFDC38FC89FC01441107E827 +:10DAB000801FEAB73A2F8C2049FFDC38FC81FC003C +:10DAC000840949FFE229840349FFE22FFC80FC011D +:10DAD000F081DD40C81749FFD3E8440027AD49FF76 +:10DAE000D3EE4400277F49FFD3F4440023BB49FF12 +:10DAF000D3FA440023E949FFD4004400019049FFD0 +:10DB0000D4062E07EDDAC803F001EA73FC81FC00AD +:10DB1000C803840BD5079E42E623E9FC5A08050496 +:10DB20008402EAF3FC80FC00E606E80544110820C4 +:10DB3000EA91D50284008C01960049FFD3F2FC8063 +:10DB4000FC0080C0C0045A00010AFC8049FFEB368B +:10DB5000EA7049FFFFBE8006D51B49FFEB2FDD5958 +:10DB600049FFD3A33C03F1A849FFD3A93C03F1A982 +:10DB700049FFD3AF3C03F1AA49FFD3B53C03F1AB56 +:10DB800049FFD3BB4400019049FFD3C18400EAE2BE +:10DB9000FC80FC008400EB5A8401EAB38401EAD2E1 +:10DBA000FC80FC008400EB5A8401EAB38400EAD2D2 +:10DBB000FC80FC008401EB5A8400EAB38400EAD2C2 +:10DBC000FC80FC008400EB5A8400EAB38400EAD2B3 +:10DBD000FC80FC005A00010BC0065A00020B5A00E0 +:10DBE000030BFC8049FFFFD7FC8049FFFFDCFC8072 +:10DBF000EBFCFC8049FFFFE7FC80FC00EAE480606E +:10DC00003E000290842044021EB8442002402E4769 +:10DC1000FDA849FFEDECFC8044021EB8DD9EFC002F +:10DC2000EBC3FC8044021E54DD9EFC008400EBB27A +:10DC3000FC80FC008401EBB2FC80FC00C80449FFBE +:10DC4000FFF6D50349FFFFF7840049FFD393FC801B +:10DC5000FC02C00D5A00010C5A0002045A080406C6 +:10DC6000B0014411071CD5125A080606B001441130 +:10DC700007F0D50C5A080506B001441107FCD5067B +:10DC80005A08070BB001441108083A2090003A20C6 +:10DC9000102049FFD2BFFC82FC038420844C80C04A +:10DCA000801FDD4744110814B0033A2090003A2049 +:10DCB0001020CE03801FD5035A68010449FFD2C14A +:10DCC000FC83DD9EFC0049FFD71DC003EBF68401F9 +:10DCD000FC80FC0049FFD70B80C0C810EA3BC005A0 +:10DCE000DD575A080209D50ADD5DC0FBEA465A082D +:10DCF0000109D504DD575A0801FB49FFD6FB84C151 +:10DD00008006FC80EA649600C00584003E07F63673 +:10DD10008401DD9EEA70DD9E3E07FDA9DD9E2E0793 +:10DD2000FDA8DD9E2E07FDA7DD9E2E07FDA6DD9E2C +:10DD30003E07FDA6DD9EFC0080C049FFD2265A6842 +:10DD4000010B80068420EAA280068422EAA28006D3 +:10DD50008026D50D8402842A49FFDE1D840184209B +:10DD6000EAA284018020EAA284008422EAA2FC8044 +:10DD7000FC2184C2F08180E280015A10010384C139 +:10DD800049FFFFDBCF0B8403EB57840349FFD869BE +:10DD9000F001802649FFEC59FCA18402EB57840274 +:10DDA00049FFD85FF00180268440846249FFEBD1AF +:10DDB000FCA1FC00840BEAF3840084203E07FDA84C +:10DDC0003E07FDA78041EA70EA7FFC80FC21F081DC +:10DDD00080E2800180C349FFFFB05A7801125A687F +:10DDE00002088006EB57F00184208047D5068402A4 +:10DDF000EB57F00180278440806649FFEBAAFCA125 +:10DE0000FC00840049FFD68C446061A9EB6649FFA1 +:10DE1000DE07C0068EC1C6048401EA37D5F9EB6679 +:10DE2000840149FFD67DFC80FC01F0814900073563 +:10DE3000F00149FFD28EFC81FC015A080109F081F2 +:10DE400049FFFC1DF00149FFFFF1FC81840049FFFF +:10DE5000FFED8401EA3749FFFFD549FFFC10FC8143 +:10DE6000FC01B61F2E07FDA8EA6EF081B41FEAFD83 +:10DE70002E66E4212E06E420FF848026B41F49FF8D +:10DE8000DFC0EBFC8401DD46EA64C810EA3BC00554 +:10DE9000DD575A080209D50ADD5DC0FBEA465A087B +:10DEA00001F5D504DD575A0801FB8400DD46F00179 +:10DEB0008026B45F49FFECC449FFFE75DD40C00217 +:10DEC0008401EBC3FC81FC008401DD4684003E0735 +:10DED000F636EA64C0048400DD46FC80EA3BC005F7 +:10DEE000DD575A080209D5F8DD5DC0FBEA465A083D +:10DEF00001F2D5F2DD575A0801FBD5EEFC02B61F40 +:10DF00008400100F800F8400F181EAF2840049FF41 +:10DF1000DBD384208061EA70844149FFFF5949FFC7 +:10DF2000FFD4501F800FB45FF301840049FFFC4B06 +:10DF3000840149FFDBC184208041EA70846149FF8C +:10DF4000FF4749FFFFC28401501F800FB45FF301F8 +:10DF500049FFFC398401EAF2EA3BC005DD575A0863 +:10DF6000020CD506DD5DC0FBEA465A08010A8401B1 +:10DF7000EB5D8400FC82DD575A0801F8D5F9840076 +:10DF8000EB5D000F800FFC82FC2949FFEC23EA7057 +:10DF900084208441846249FFFF1BEBA5441107588C +:10DFA000F086EB4DEA44F087EBA380DFF088EB4688 +:10DFB000F089EB4EF08AEBC1F08BEB3AF08CEB83FF +:10DFC000F08DEBBEF08EEB67F08FEBC5F090EADFE3 +:10DFD000F091801F84E0EA76EAB7EB358404EA49E1 +:10DFE000840049FFFB5549FFFAD88007842049FF88 +:10DFF000FF875A0801068CE197F85A7806F8EA7B01 +:10E000005A0001088400EA498006EAD3B006EABD56 +:10E01000FCA9FC412E67FDA98400DD46E6C2E80AA2 +:10E02000EAD580E05A08010784008026EAD63E70CF +:10E0300002968400EB0449FFEBCD8400EAFD8401E5 +:10E04000EBC3441000C0840049FFDEE7EBFC840210 +:10E05000EAF38405EAE28405EA4949FFFCF2840315 +:10E0600049FFDBD6F08184238400EA3DEA75EA7338 +:10E070008401DD4684E285203E97F636EA64C810C6 +:10E08000EA3BC005DD575A080209D50ADD5DC0FB31 +:10E09000EA465A0801F5D504DD575A0801FB5A70C3 +:10E0A000010484E1D5EA8400DD462E0002965A0878 +:10E0B000010880078026EAD684003E000296842369 +:10E0C000F001EA3DEA75EA73840BEAF38400EAE2C0 +:10E0D0008400EA49EB9CEBCBDD40C0028401EBC33A +:10E0E00049FFFD598401EB048401DD46FCC12E0784 +:10E0F000F0105A080106FC0049FFFF8DFC80DD9EF0 +:10E10000FC4049FFFD50DD4080C0C8608401DD4611 +:10E1100080E62E16E42185492E06E42042908024D4 +:10E12000EA64C810EA3BC005DD575A080209D50A5F +:10E13000DD5DC0FBEA465A0801F5D504DD575A08F3 +:10E1400001FB49FFFA9C2E07FDA8EA6E8100EAE474 +:10E15000EA8F8440E049E8253814091138F00911A4 +:10E160008A2F4E140003FE4A964B5EF08047E80467 +:10E170008C419691D5F08CE197F85A78031684017A +:10E180008CC13E07F1FB97B049FFF0A0840049FF26 +:10E19000FE69E6C2E80284E08401DD46E6E3E9C107 +:10E1A0008400DD46FCC08420848AE029E8F894C914 +:10E1B000886838200511225180008C214222A873E2 +:10E1C00040211056AC989649D5F1FCC0FC0049FF9F +:10E1D000EAA0EBCBEA70EB16840BEAF3EA7084203A +:10E1E0002E27FDA7EA7F840049FFFE3CEA3BC005DD +:10E1F000DD575A08020BD506DD5DC0FBEA465A081A +:10E2000001098401EB5DFC80DD575A0801F9D5FA5C +:10E210008400EB5D49FFFF7649FFFCBDFC80FC00FC +:10E2200080C03E07FDA949FFFD0A800649FFFC5159 +:10E23000FC80FC018400EA49840049FFFD2F840131 +:10E2400049FFD028840049FFD401840049FFD3D27C +:10E250008400EAFD49FFFBAE49FFFBDAEB9C49FF76 +:10E26000FC2649FFFC2E840649FFE4C4EA2D840005 +:10E27000EA67EB69EB70F081F1018400EA42EA2D74 +:10E280008401EA67EB69EB70F081F1018401EA42F5 +:10E29000EA2D8403EA67EB69EB70F081F1018403F6 +:10E2A000EA42EA2D8402EA67EB69EB70F081F10142 +:10E2B0008402EA424442039C001200910022009230 +:10E2C00000320093020200350042009449FFCF0360 +:10E2D0004400014049FFDAB6840149FFDAC18400F5 +:10E2E00049FFFF9FEA753E07FDA9840149FFD05908 +:10E2F000FC8146100082EA4AEB14FE16EB1DDD9EFF +:10E30000FC2049FFE55149FFDE70842C84418406DE +:10E31000EA3580C0842D84418406EA3580E04410CB +:10E3200000F484418406EA35402394099686443FEC +:10E33000FFE75413801FFE9C944A50210064FE5452 +:10E34000C11192E697C6442064005233800197A71A +:10E35000FFD4FFBC44201900426188734013043687 +:10E36000964992049600C80B5CF08064E908440565 +:10E37000102444101234B620EBC2D5FFFCA0FC00E0 +:10E38000840049FFD032840249FFD043840049FF12 +:10E39000D04F840249FFD05D840049FFD0678401DB +:10E3A00049FFD095840149FFD0B3FC80FC00840074 +:10E3B000EA2DEA678401EA2DEA678402EA2DEA671A +:10E3C000EA2D8403EA67840149FFCE288402842A67 +:10E3D00049FFDAE184008422EAA2FC80FC0080C0CC +:10E3E00049FFDE085A68010584008020D5038401B6 +:10E3F0008420EAFCFC80FC0049FFE04CFC80FC002F +:10E4000049FFE4D284618405FA2F442000508480BF +:10E4100080A3EA43FC80FC005A100203840349FFF6 +:10E42000E0ED844680624404589044145510DD4465 +:10E430008449440458C0441455408062DD44FC8043 +:10E44000FC00840149FFD3D9840149FFCE94FA220C +:10E45000840149FFD235840049FFFB748400EAA897 +:10E460008401EAF2840149FFD927840149FFD16A76 +:10E47000840149FFD93A840149FFD283840149FFCD +:10E48000D28F840149FFD2A18400802049FFFFB9C7 +:10E4900084228400EB6149FFE086840149FFD9852D +:10E4A000840149FFE1E5840149FFE1EC840049FF73 +:10E4B000E1F5840049FFE1CF49FFE1FBFC80FC234B +:10E4C0004462039C49FFE218441104C00223001572 +:10E4D000A60EA64F49FFE236000300D549FFE375BB +:10E4E0000003002D0013002C0023003449FFE2B785 +:10E4F0002243000F44720000B69F224300102213F3 +:10E5000080CFF48122430011220380D0F482224381 +:10E510000012222380D2F48322430013223380D1BD +:10E52000F4842243001444500050F485444FFFB05B +:10E5300049FFE270840049FFE1D2221380D04400F9 +:10E540000096FE0CDD5CDD543C08014E44001F408B +:10E550003C0E00A6EB02FA17DD4FFCA3FC4084C082 +:10E5600080E08401DD4681264C6380183E97F636B4 +:10E57000EA64C810EA3BC005DD575A080209D50A0B +:10E58000DD5DC0FBEA465A0801F5D504DD575A089F +:10E5900001FB8CC197B0D5E98400DD46FCC0FC00CE +:10E5A0008400EBB2FC80FC22B18180E084208006F4 +:10E5B000844CDD473C43F18F840084669641E2241D +:10E5C000E80D40208C3796493823810138530501E6 +:10E5D0008C01884538230509D5F28420FA50380388 +:10E5E0000511EA69380305098C215A1806FA844096 +:10E5F0003C03F18FE240E80E4001049794D1886714 +:10E600009721A418384311018C418A04AC189691C3 +:10E61000D5F0FCA23C13F18F944988204C0080096E +:10E620002AF000015EF7FFB0E8FA8401DD9E840065 +:10E63000DD9EFC438420844C80C0B1C3801FDD4735 +:10E6400084208007844CDD47842087CC8466844006 +:10E65000940941C300008142800280A2812281E1AD +:10E660004281782442F48C73388E2011EB78971015 +:10E6700040F7A007E90B81E142F28C73EB7840F799 +:10E68000A007E9074C54C007D50480A98124D5020E +:10E6900080A481E142F50C73EB78E10FE90A81E196 +:10E6A00042F00C73EB78E10FE9074C054007D50405 +:10E6B000800A8144D50280048C415A2820D280816E +:10E6C000804142428C7342248C73384311013823B9 +:10E6D00009018844382F85098041EAA78001420555 +:10E6E0000C733823090138030101880238038509B6 +:10E6F0008C215A1806AE3C54014E844084C1400F10 +:10E700008800381F88112230000180834E340003B6 +:10E71000FF1A80014E140003FE0A8804E0A0E90FEE +:10E72000983A224000014E440003FF22380388112A +:10E730004E040003FE028804E0A0E80684003E00C8 +:10E7400002938401FCC388234E140003FE4A5EF04A +:10E750008029E9033E6002938C425A280AD2840041 +:10E76000FCC3FC00844084C83C33F18FE243E80DD5 +:10E7700094D1886038408911A558404218969B2C46 +:10E780008C41AD189691D5F1FC80FC01B63F2E105E +:10E790000293F2819648FA0CC105EA59C804FA0CB2 +:10E7A0008421DD41FA0CDD4AC8082E000293C80915 +:10E7B0002E0002925A080106B41FF10149FFFFD34F +:10E7C000FC81FC41FA0B3C1C00A6DD4FFA0B8421B6 +:10E7D000DD41441007D0FA0CDD4F8400EA8F506011 +:10E7E0000480840149FFD19C84043E07F011840118 +:10E7F000DD46FAE044A2234844048012AFC0490039 +:10E8000002DCEB66DD405A08010749FFE377EA5670 +:10E810008422AE4049FFDAC75A0001FEEB635A007A +:10E8200001052E000297C00684013E0002974800B1 +:10E83000009CDD405A0801043E07F6406400004099 +:10E840008420EBFAEA64878096005A0801053E1797 +:10E85000F63683808400DD462E27F63396904E23CD +:10E8600000834FC20081F28149FFD127EA6E500038 +:10E870000480B61FEAD4F201B4202E000294923430 +:10E880009646FE4780023E100294EB3D49FFE12789 +:10E890002E0002975A000168EAE69600C8643C23FD +:10E8A000F18F802696C1E262E8072A308001383570 +:10E8B00001098C01D5F8EB3F49FFFEAE8380DD53A3 +:10E8C000DD51921F40007C08C80EDD5F81209491CD +:10E8D00040810409EB3FEA213C8FFC7C3C9FFC7D9E +:10E8E00049FFFE638420EB3F3E100293F18149FF14 +:10E8F000FEA2F1013E1002922E100293C90D2E17B6 +:10E90000F0118E21964AC90984243E17F011842102 +:10E910003E100292D50484243E17F0112E17F633D0 +:10E92000C109FA0B44100055DD4FFA0BDD4AC00552 +:10E93000D5125A08011DD5F62E0002918C019600C1 +:10E94000E6033E000291E90A84003E000291840140 +:10E95000EBEAD50684003E0002915BC001F7FA0C99 +:10E960008420DD4184013E07F644D514EB3FB43FDB +:10E97000804649FFFF0CFA0BDD4A5A0801053E07A5 +:10E98000F643D508840149FFCCE48401EB3D48FF00 +:10E99000FF3544048012FA20AE40FA0B8420DD419A +:10E9A000FCC1FC43EA30812084003E0002953E0019 +:10E9B000029749FFCD03F08249FFD039F08349FF28 +:10E9C000E3E9F0848400DD46E722E80AEAD580C066 +:10E9D0005A08010784008029EAD63E600296840026 +:10E9E000EB0449FFE6F78401EBBA8400EAFD8400FA +:10E9F00049FFCFB88400EAB38401EAD249FFDFE1DE +:10EA00008405EAE28405EAA88405EA4949FFF81981 +:10EA1000840349FFD6FDF08184238400EA3DEA7532 +:10EA2000EA73DD405A08010449FFFD9A49FFFDB928 +:10EA30002E76E41E8400802749FFCF428400802088 +:10EA4000DD4B8400EBC8EA3BC006DD575A08020BD9 +:10EA50004800007EDD5DC0FAEA465A080109480018 +:10EA60000077DD575A0801FA4800007249FFE03785 +:10EA7000DD4080405A0801073C03F1878420806212 +:10EA8000EA4B49FFDF398407EA49EB9C8401EB3DFF +:10EA900049FFEDBFF085F1058401EA98DD4080C0B3 +:10EAA0005A08011184008020DD4B84008020EA3365 +:10EAB00084008026DD4B84008026EA338006802691 +:10EAC000D504DD408020C802EAFCEAE6C0048401E7 +:10EAD0003E07F6422E67F62897B05A68011BDD40C4 +:10EAE00080E05A000104480000A68420DD4B800726 +:10EAF0008420EA3380078027DD4B80278007EA33B4 +:10EB0000840049FFD37484008020EAFC8007FCC3A2 +:10EB10002E07F642C00584013E07F644D50349FF9F +:10EB2000FE52DD4080C05A08010D8420DD4B800676 +:10EB30008420EA3380068026DD4B80068026EA3377 +:10EB4000840049FFD35484008020EAFC2E07F64459 +:10EB5000C00784003E07F64484013E00029584C04D +:10EB600084003E67F6423E600297DD462E00029624 +:10EB70005A0801068029EAD63E6002968400EB3DE1 +:10EB800049FFDFAD8400EAA88400EAE28400EA4994 +:10EB9000EB9CF002EBB2F004EBC8F003EAFD840159 +:10EBA000EAB3EBCBDD40C0028401EBBA840049FF3D +:10EBB000F812F0018423EA3D8422F001EA3DEA756F +:10EBC000EA7349FFDA6149FFDA64EB66EAFFEAB10A +:10EBD0008401EB13EA98EBAC5A080108DD53DD51D0 +:10EBE000EAC8C0038402D5072E07F643C003840198 +:10EBF000D50284033E00042084208401DD4B84017F +:10EC0000802749FFCE5DDD4080405A0801073C0364 +:10EC1000F1D984208062EA4B2E07F643C0048400B9 +:10EC20003E07F6438401EB048401DD46EBF6EBACD2 +:10EC3000FCC38006FCC3FC02F0838003F282B67F33 +:10EC4000F18149FFE16DF002B43F49FFE0CBF001F3 +:10EC5000B43F49FFE0E3F0033C53F6F2F101F20266 +:10EC6000B47F3C4DFBBD49FFE11BB41FEAA3FC820E +:10EC7000FC00842F8440840149FFE1F6840049FFB1 +:10EC8000E20C840049FFE213840149FFE21CFC808E +:10EC9000FC00EA63FC80FC0080C05A08010C840080 +:10ECA0003E07F6343C13F1E78402DD4F84028026F0 +:10ECB000D50384028420DD41FC80FC002E07F6345D +:10ECC000C0068402EA4784003E07F6348402DD4A27 +:10ECD0005A08010A4400FFFE49FFE2A749FFE2B3D8 +:10ECE000EBC2D500FC80FC0084013E07F64E842078 +:10ECF000841F806184413C0BF6F2440003E8EA4B38 +:10ED000084008020EA7D84008020EB82844084613E +:10ED1000DD598427EA4B84008421EA7D8400842124 +:10ED2000EB8284218400EA63840049FFE0F98400D7 +:10ED3000EAA3840149FFE0F48401EAA3840180206E +:10ED4000EA632E67F64E97B0CEFD80068026EA6312 +:10ED500080068421EA634900005BFC80FC0049FFD7 +:10ED6000FFC4842080618441DD59EA4B8400802007 +:10ED7000EA7D84008020EB82840049FFE116842034 +:10ED80008401EA638400EAA3844084613C03F1D4F3 +:10ED90008427EA4B84008421EA7D84018020EB8271 +:10EDA0004900007AFC808A01EA8A920ADD9EFC0012 +:10EDB00049FFE192FC80FC00EBC2FC80FC203C534C +:10EDC000F6F280E0EAC380C1D80BEA8BFA4E421318 +:10EDD0000824EBE34003000C40108037D50A3C23A5 +:10EDE000F6F2FF94EA8BDD5C4000800C40130037A4 +:10EDF00096495A78010AFE0B960149FFE21649FF2F +:10EE0000E222EBC2FCA049FFE22AFCA0FC00840144 +:10EE100049FFE1DD840749FFE1EA840049FFE1F2AF +:10EE2000840049FFE1F98401EB13EA98FC80FC00BF +:10EE300049FFFFBFFC80FC213C6C010AF0813C7C57 +:10EE4000010BC90CF201EA71EA61EA55FE03FE4BBF +:10EE50004020180240309C02D509F201EA71EA61B3 +:10EE6000EA554020180440309C043C2E010A3C3EE8 +:10EE7000010BFCA1FC21F0813C6C010CEA713C7C93 +:10EE8000010DEA61F201EA55FE7EFE36FE0F842096 +:10EE9000EBAFFCA184003C0E010C3C0E010DDD9E8D +:10EEA000442224E03811020ADD9EFC40812049FF03 +:10EEB000FF80441225E080493800A60AEA71EA6121 +:10EEC000EA553C6C010A3C7C010BFE03FE4B4020E2 +:10EED000180240309C023C2E010A3C3E010BFCC053 +:10EEE000FC41F08164630402442080006423040335 +:10EEF0005A180110EA473C8C010CF2013C9C010DB0 +:10EF0000EA71EA61EA55402020044030A404D50F9C +:10EF1000F201EA71EA61EA553C8C010C3C9C010D5E +:10EF2000FE03FE4B402020024030A4023C2E010C88 +:10EF30003C3E010D64630403FCC1FC4080C0EA59FF +:10EF400080E05A00010484E0D53149FFFF324412C9 +:10EF500025E038109A0249FFFF28441224E03820A7 +:10EF60009A02FA2EFE54E201E9123C8C010A804614 +:10EF70003C9C010BEA71EA61EA55402020044030D4 +:10EF8000A4043C2E010A3C3E010BD5103C8C010A26 +:10EF9000EA713C9C010BEA618046EA558068FE1EDE +:10EFA0008069FE5EFE47C1D0D5E18007FCC000004D +:10EFB0003A1FA43C3AFFBFBC426E80203A6F983C97 +:10EFC0006462A4029DB4647204023A6F9C3C646261 +:10EFD00000029FB26462000364000008490002540A +:10EFE0003A6F9C046462A403647204033A6F980449 +:10EFF000426E80213AFFBF843A1FA40464000004DB +:10F000003A1FA43C3AFFBFBC426E80203A6F983C46 +:10F010006462A4029DB4647204023A6F9C3C646210 +:10F0200000029FB264620003640000084900022DE0 +:10F030003A6F9C046462A403647204033A6F9804F8 +:10F04000426E80213AFFBF843A1FA404640000048A +:10F050003A1FA43C3AFFBFBC426E80203A6F983CF6 +:10F060006462A4029DB4647204023A6F9C3C6462C0 +:10F0700000029FB2646200036400000849000206B7 +:10F080003A6F9C046462A403647204033A6F9804A8 +:10F09000426E80213AFFBF843A1FA404640000043A +:10F0A0003A1FA43C3AFFBFBC426E80203A6F983CA6 +:10F0B0006462A4029DB4647204023A6F9C3C646270 +:10F0C00000029FB26462000364000008490001DF8F +:10F0D0003A6F9C046462A403647204033A6F980458 +:10F0E000426E80213AFFBF843A1FA40464000004EA +:10F0F0003A1FA43C3AFFBFBC426E80203A6F983C56 +:10F100006462A4029DB4647204023A6F9C3C64621F +:10F1100000029FB26462000364000008490001B865 +:10F120003A6F9C046462A403647204033A6F980407 +:10F13000426E80213AFFBF843A1FA4046400000499 +:10F140003A1FA43C3AFFBFBC426E80203A6F983C05 +:10F150006462A4029DB4647204023A6F9C3C6462CF +:10F1600000029FB26462000364000008490001913C +:10F170003A6F9C046462A403647204033A6F9804B7 +:10F18000426E80213AFFBF843A1FA4046400000449 +:10F190003A1FA43C3AFFBFBC426E80203A6F983CB5 +:10F1A0006462A4029DB4647204023A6F9C3C64627F +:10F1B00000029FB264620003640000084900016A13 +:10F1C0003A6F9C046462A403647204033A6F980467 +:10F1D000426E80213AFFBF843A1FA40464000004F9 +:10F1E0003A1FA43C3AFFBFBC426E80203A6F983C65 +:10F1F0006462A4029DB4647204023A6F9C3C64622F +:10F2000000029FB2646200036400000849000143E9 +:10F210003A6F9C046462A403647204033A6F980416 +:10F22000426E80213AFFBF843A1FA40464000004A8 +:10F230003A1F943C3AFFBFBC422E80203A2F8C3CB0 +:10F240006412A402642204023A1F883C6412000281 +:10F250009E4A64120003441000A438108202DD218B +:10F260003A0F840464020043640000086402A403AB +:10F27000641204033A2F8C04422E80213AFFBF848B +:10F280003A1F94043A0F8004640000043A1F943C2F +:10F290003AFFBFBC422E80203A2F8C3C441000A481 +:10F2A00038108202DD213A2F8C04422E80213AFF51 +:10F2B000BF843A1F94043A0F800464000004D50010 +:10F2C0003A0F803C8400D5E33A0F803C8401D5DFBF +:10F2D0003A0F803C8402D5DB3A0F803C8403D5D7BB +:10F2E0003A0F803C8404D5D33A0F803C8405D5CFB7 +:10F2F0003A0F803C8406D5CB3A0F803C8407D5C7B3 +:10F300003A0F803C8408D5C33A0F803C8409D5BFAE +:10F310003A0F803C840AD5BB3A0F803C840BD5B7AA +:10F320003A0F803C840CD5B33A0F803C840DD5AFA6 +:10F330003A0F803C840ED5AB3A0F803C840FD5A7A2 +:10F340003A0F803CFA00D5A33A0F803CFA01D59FD2 +:10F350003A0F803CFA02D59B3A0F803CFA03D597CE +:10F360003A0F803CFA04D5933A0F803CFA05D58FCA +:10F370003A0F803CFA06D58B3A0F803CFA07D587C6 +:10F380003A0F803CFA08D5833A0F803CFA0948FFCF +:10F39000FF7F3A0F803CFA0A48FFFF7A3A0F803C21 +:10F3A000FA0B48FFFF753A0F803CFA0C48FFFF70DC +:10F3B0003A0F803CFA0D48FFFF6B3A0F803CFA0E83 +:10F3C00048FFFF663A0F803C4400001F48FFFF6083 +:10F3D00084016404C002440200016404E00345D2D5 +:10F3E00020A83FC8000045F275F44400FCC0420E5E +:10F3F000002149000034490003FBD500FC00EA4C21 +:10F40000842149FFCB97EA4C842049FFCBA2842179 +:10F41000EA4CEA8E840049FFCBE2440210E4442225 +:10F420003F5484208A40DD47FC8084006405E40367 +:10F43000841F640304036403240364122402440F3E +:10F440000FFFFE0E64022403641200028418FE0EF5 +:10F450006402000364000008DD9EFC0049FFFFE732 +:10F4600064008002921EC00664008402962EC002D0 +:10F47000D50049FFFFC56412004364000008640022 +:10F480000008FC80DD9EDD9EDD9EDD9EDD9EDD9E16 +:10F49000DD9EDD9EDD9E44048004B4009208960645 +:10F4A000C005440480058421AE40DD9EFC01EAAA2B +:10F4B00044148081A600A648FE0EEBBD000F800715 +:10F4C000C00349FFD400FC81FC0044048000B40068 +:10F4D00049FFDD73FC80DD9EFC0044048000B42005 +:10F4E000B40092199606C0272E07F64E5A0801243A +:10F4F0003C53F6F2EAC344250004D804B402921047 +:10F50000D51484003E07F64EB402EB2592108A0112 +:10F510004E040007EB25B40292109A08D505B402F8 +:10F52000EB2592108A0196013C0BF6F2EA568422F2 +:10F53000AE40FC8049FFDD58FC8044148014B401C7 +:10F540009606C0088401AE0844148094B401DD50CE +:10F55000B60144148014B40192019606C0088402D6 +:10F56000AE0844148094B401EA68B601DD9EFC0044 +:10F5700049FFC7FEFC8044048004B4009213960641 +:10F58000C004EAC58428AE40DD9E44148004B40162 +:10F5900092199606C004EAF88442AE80B40192182B +:10F5A0009606C004EAF88421AE4044148004B401F5 +:10F5B000921A9606C004EAF88444AE80B401921B05 +:10F5C0009606C004EAF88428AE40EBD2B400921C40 +:10F5D0009606C004EAF8FA20AE40DD9EFC00EA3E42 +:10F5E000B42092249646C103FA20AE40B400842190 +:10F5F0009606C005EA3EAE403E17F6444414800825 +:10F60000B40192019606C0088402AE0884013E0748 +:10F61000F64349FFCA55EA3EB42092239646C103F9 +:10F620008428AE40B40092029606C004EA3E8424C8 +:10F63000AE4044148014B40192089606C0054404F8 +:10F6400080158441AE80B40192099606C005440439 +:10F6500080158422AE40FC80DD9EFC0049FFC6B5CB +:10F66000FC80FC0049FFC6BFFC80FC0049FFC6BC13 +:10F67000FC8044148008B40192089606C005440436 +:10F6800080098441AE80B40192099606C005440405 +:10F6900080098422AE4044148008B401402034091B +:10F6A00044048088B400920D9606FE16C0094404F6 +:10F6B0008009FA50AE80B401920D9606C8FDDD9E19 +:10F6C000FC41EA3EB40092129606C04A4474808817 +:10F6D000B40792129606C04444A4800A8404EB390D +:10F6E000B407449DFFFF92119606EBBDB407446733 +:10F6F000300440002402B607B406851E40002002F4 +:10F70000B606840AEA37B406DD50B606840AEA373C +:10F7100049FFDAAA4400008749FFDAA0840AEA37E1 +:10F72000B40640002002B606840AEA37B406DD506B +:10F73000B606840AEA3784013E07F64C001F8007AC +:10F74000B40796464010C40840002402FE0FB607D6 +:10F750008402EB393C0DFD928C013C0FFD92EA3E98 +:10F760008421B40092109606C00B44048088B40033 +:10F7700092109606C005EB7F3E17F64DAE40EA3E6E +:10F78000B40092119606C00A44048088B400921115 +:10F790009606C004EB7F8422AE40FCC1FC00EA3E2A +:10F7A000B40092189606C026EACE8421AE40DD5DF4 +:10F7B000C0182E67F05F97B05A680114842080410A +:10F7C0008006EACC44142C24440FFC03B441806628 +:10F7D000FE16B60180464404282444142424DD4443 +:10F7E000DD405A08010849FFD3B749FFD4648400BB +:10F7F000DD46EA3EB40092199606C039EACE84226C +:10F80000AE40DD5DC834DD4896005A08020449FF69 +:10F81000CB9E84418406EA2DEA3584415A08791248 +:10F8200044142C248062B401580003FCB601440443 +:10F83000282444142424DD44840180208440D513EA +:10F840008406EA2DEA355A087A0684018020804031 +:10F85000D50A8406EA2D8441EA355A087B098401D9 +:10F8600080208442EACC84013E07F05FEA3EB40087 +:10F87000921A9606C0128406EA2D8441EA355A008F +:10F88000790A44147008B4019210DD4E58007823B0 +:10F89000B601EACE8424AE40EA3EB400921B96063E +:10F8A000C004EACE8428AE40FC8044048004B40046 +:10F8B00092149606C004EAC5FA20AE40DD9EDD9E95 +:10F8C000DD9EDD9EDD9E44048010B400920C960601 +:10F8D000C004EB8FFA20AE40DD9E442480108401EA +:10F8E000B4229646C117FC003E07F04CAE103E070E +:10F8F000F637DD4896005A000209DD485A08030829 +:10F9000084003E07F631840249FFCB2149FFC8F24B +:10F91000FC80DD9E44048010B400920A9606C00864 +:10F92000FC00EB8F8424AE4049FFC8DDFC80DD9EE7 +:10F9300044148010B40192079606C004440FFF805F +:10F94000AE08DD9E44048010B42092259646C10383 +:10F95000FA30AE40B40092069606C005EAD44410D0 +:10F960000040AE40DD9E44048010B4009204960630 +:10F970004E020079FC20DD485A08020449FFBC1AF7 +:10F98000DD485A0802132E07F6158C0196003E0733 +:10F99000F6152E07F615C009FA16EB0E84003E0781 +:10F9A000F615840149FFDAAAEAD484C1FA203E6739 +:10F9B000F04DAE4049FFC8843E67F6343E67F636E8 +:10F9C0002E17F628EA2B5A180208040000F5920BAD +:10F9D0009627C80FD50C2E17F6285A18030B0400CB +:10F9E00000F5920B9627C8053E67F63149FFCAAF6E +:10F9F000EA2B040000F09203960649FFC7ADDD40F4 +:10FA000080E0C82F441000E4840A8441EA352E10B7 +:10FA100006384C008027441000E4840A8441EA350B +:10FA20003E0006382E6006388407979E97B0FA2F5E +:10FA30008461C60C80474440004080A3EA4384416F +:10FA40008407FA2F80628484D50A8046808680A34A +:10FA5000EA4384418407FA2F8062808680A2EA43C9 +:10FA6000FCA0DD9E44048010B42092239646C1037E +:10FA70008428AE40B40092029606C004EAD48424DE +:10FA8000AE40DD9E44148010B40192019606C00B76 +:10FA900044048090B400920196065A0801058442FD +:10FAA000AE88EB4FDD9E44048010B400920B9606A6 +:10FAB000C00CEB8F8428AE402E07F6055A080106CD +:10FAC000FC0049FFC81BFC80DD9E842AFE0C8E01D1 +:10FAD0005A07FF04EBA8D5FCDD9E44250008B4427C +:10FAE0009686C25044450004B4449691C24BFC0231 +:10FAF0008460B67FB4449250F28144250000F383C1 +:10FB0000B44292505431000FEB51B482EAE19706AF +:10FB1000CC084610061A40210C0C50108800D50D58 +:10FB20004440FFFF4C12400740210C0C44100BB81E +:10FB3000D504FE5440210C0C40208856B65FB43FDB +:10FB400044350004FE0CB61FB4039210F082F1019C +:10FB5000F002E220E907F101F202F00388018A02D3 +:10FB6000D509F201F402B423F00396498802880112 +:10FB70008A04F083F103B41FE220E80DF002F08163 +:10FB8000D5E4441023A0FE0C8E015A07FF04EBA815 +:10FB9000D5FCDD9EFC82FC00EB2549FFFFA0FC802C +:10FBA000FC0049FFC8E249FFF933840149FFD0EA6C +:10FBB00049FFCA1F49FFCA2A49FFECD5840149FF02 +:10FBC000D25849FFD90549FFD8EF49FFDC19490050 +:10FBD0001ECE49FFDA44441036A74C00C00584010C +:10FBE0003E07F63049FFC1A48400FC80FC0049FFB9 +:10FBF000FFD98400FC80C212523100204E3600072B +:10FC0000FEDA848040100C0CD50840300C0D4010FA +:10FC1000880C4040080CFE5F8004DD9E8060E64456 +:10FC2000E91C5441800354508003DC174E52000CF1 +:10FC3000525280049A9599690840800118418001C8 +:10FC40004C12FFFC40510809C508956A9969968FC6 +:10FC5000A309AB194C12FFFEC208994A0840800163 +:10FC6000184180014C12FFFCDD9E92008060E6444A +:10FC7000E91C54518003C509525280049A95996831 +:10FC8000181180014C32FFFE96484040A008FE67E4 +:10FC90004040C0084010900440510809C506956ACC +:10FCA000996B968FAA59DBFFC206995A18118001E9 +:10FCB0004C32FFFEDD9E92000000000000000000BC +:10FCC00049006302490077704900234E50000FFF3E +:10FCD0004900467A3C03F43649006F1C49007E36E1 +:10FCE0002E07F62849005DCC4900779D49007648EB +:10FCF0002E07FD152E07FD164000400849007750DD +:10FD0000580000013C1DFC7D49005E2F3C0DFC7C31 +:10FD1000400004164400003C4900303149003AA03C +:10FD20004400010C440000644620008150108FFF05 +:10FD30004410006449004274401040083C2DFC7C93 +:10FD40002E07F6123C3DFC7D4900686D3C13F436ED +:10FD50004010C0084010200848006821000300BB84 +:10FD600041FF800154000060490022FA46000081F2 +:10FD70004410010C441000F04000200849006E0CB3 +:10FD800049006E8A2E06E41F44022F404900573472 +:10FD900054000200490056B32E07F65449007D6511 +:10FDA0000420003749007E0E440EFFFF2E07F63375 +:10FDB0001410003749004BDE4404800848006850A6 +:10FDC000490034C24800684749004B0E4900565F5D +:10FDD0003A209404441213502E07FDA5490077558C +:10FDE0003E07F61249006E28440FFEFF4900761BBD +:10FDF0004400010044022F4C4000300842130073BD +:10FE000040100436040300382E06E41E2E07F23993 +:10FE10003E07F62B49007DFB4404800354000FFF8E +:10FE20002E26E41E4900773A4900637E120300083B +:10FE30004430010C3A20140440108836100E00E0C3 +:10FE400048001EA43C1DFC073A2394044900571E99 +:10FE50002E07F636490063C63A20942449004C39EF +:10FE60005800000240000816421008734201047353 +:10FE70003C0BF4364000BC1B49004EE6548000FFAA +:10FE80002E07FDA93C0DFC064000500849004D938B +:10FE90004660008149004C1E3A2014244420010C85 +:10FEA0004010A0082E07E3D92E07F6B32E07F60F51 +:10FEB00044007FFF490057C444722F4049006EB888 +:10FEC000500F818844023B682E07F2A8549000FF2F +:10FED0003C33F43648006851000300BA2E06E43083 +:10FEE000440213502E07F58B40002808490058EFB4 +:10FEF0004410012C3C0FFC7C490045B649004EDC07 +:10FF000044F00064380080004032BC1A40214008B0 +:10FF1000440005DC5C0000014001BC1A3C13F902FE +:10FF2000490076DE000400213CF7FAA34010600887 +:10FF30003C03F902441100003E07F641490006F671 +:10FF400044010000460FEFFF4900401B490057A73E +:10FF50003A2794243E07F654440FFFEF42200C73D7 +:10FF600049006D874010300944048001490058253C +:10FF700044122F405410820048002C364610008056 +:10FF80002E37F23849006045420088734900451B0E +:10FF90003813800848009B43500400013A208C002D +:10FFA0002E17F5413E07F2232E07E3D84010803686 +:10FFB0002E000E984900497B490034AD000E00E048 +:10FFC0003A2014003C3FFC7D3C13F8F54400FFFF51 +:10FFD0004410011844048006500500013C33F92008 +:10FFE00054000400422080731401001249006E95F1 +:10FFF00049003B803E07F79C4404800B2E07F79096 +:020000021000EC +:1000000049006E9240109436490045304900499CA1 +:100010004404801049005C7A49005D3A100300BA3C +:1000200058108001490064BC441000FF49003A5D4B +:100030002E07EDD8401104363A2014204400030066 +:100040002E17F5404420006449006D932E07F29866 +:10005000490044AD4414241C2E07F64140103C1ABC +:10006000442400102E07F59C580001002E00065570 +:100070000003002150048001580000044404283487 +:10008000100E7F5D2E07F22549004B4D4900419827 +:10009000500E7F7802030063440000FF44142434B0 +:1000A000440480072E07F77E490053C64900429852 +:1000B0004900500F490045082E37F23A49005DC209 +:1000C0004420003C49006E8F441003E8000300C93F +:1000D00049004C763C0BF902500E7F6C48009A3474 +:1000E0003A2094000431001251FE7FE044000240A7 +:1000F0000203005B541083FF3C0BFB0B40001C0C05 +:100100003C03720D400044085000010C3C1DF8E710 +:100110000420802A4404281C49005D893C13FB5BB1 +:100120002E07F62B4000600844145010460FF00FC5 +:10013000490023FD1400802A100300212E000E9D8B +:10014000500F824849009435444000FF461000811A +:100150003E07F2443C13F6F2490022C12E07F23763 +:10016000000F83562E07F23A4010280842FE3C2426 +:1001700064000020440000803E0006553E07FDA4B8 +:100180004215042422030008140E7FDC3C14035A99 +:100190002E000EA23A200C20540007FF4462135098 +:1001A0002E07F24D10050000440040084080001367 +:1001B0002E07ED8C4900474B4900933E44022348EB +:1001C0002E07F78A0203005A3E07F541502E7F5D45 +:1001D000490046853E07F79D440200012E67FD1544 +:1001E000140E7FD55063010C440217604900468B02 +:1001F0005EF000213C0DFBC2440100023E07F633D5 +:100200004010B0084424000C490093323C0DFC73AC +:1002100049003A6F3E07F77944107FFF4900439544 +:10022000503E7F5D540003FF490045393C03F06FA9 +:100230002E07F7883E07F60F2E07F5862E07F5885E +:10024000140303994900720B40A00010490055ECBB +:100250003C000751442213504900503844000840E4 +:10026000441000DC440000F02E07F223540000FB91 +:1002700044147000490091B83C0DFDE53E07EDD9EE +:1002800049005C702E07E851043E7FF44010A80836 +:100290003C13F8F444222F40444218444900563994 +:1002A00038F33D11442229CC447000643C24035DA2 +:1002B0002E07F2383E07F7993C0BF8F44404800A05 +:1002C00058000080490031A14900476144002010D6 +:1002D000000300C7501F860840323C1A4410014AF0 +:1002E0003E07FDA5490056144215007338310C0035 +:1002F000420384733C0BFB5B460FDFFF4404801119 +:1003000044100104000300BC042E7FD42E000EA371 +:10031000441001F40030000C40003C16541080F0F2 +:100320003A231424442003E844022F14400080168A +:1003300049006D2E48003F184900560E3A2F1424EC +:10034000490056242E07F05F2E67FD163C0DFBC1B9 +:10035000141000283C0DFBC3460EFFFF440000466E +:10036000400000093C13720C490022F25CF000646A +:100370002E0002952E17F58B490006E940008006F5 +:100380003A2010001030000C490041C2400008061D +:10039000041E7FD33E07F653041E7FD54900475500 +:1003A0004410003C540001F849006E0F3E07F60966 +:1003B000490091E5100F80074400102050210FFFE5 +:1003C00040113C1A440080044900591B4900454330 +:1003D000540000FE440004803C07F9553C07FAA392 +:1003E000490058BF2E16E41E3C07F83649005BEE64 +:1003F0004000040642010C735EF781F4221F812441 +:10040000000300CA38001400440480042E07F1E4FD +:10041000546087FF3E07F24D2E47FD1750030AB484 +:100420003E07F614380388084031A0083E07F61846 +:100430004900612F3803A408490022BD0431000F90 +:10044000040E7FD0504E7F8C2E07F244446000642F +:100450002E07F6253C24035C1401000F44622F4054 +:10046000220F800B2E100E983E07F01049004A3FD5 +:10047000490063AD406300D64020200A502F80130E +:100480002E96E41E3C03F1D551C30EB4000300C800 +:1004900000108026441201004900458340319C76BB +:1004A00022130007221300053E17F64044142420AF +:1004B00049006DD9000300E040543C1A4000BC1ACA +:1004C000941A113B10011220122012002000FF0785 +:1004D000FF07400B0019050A0B0100008059590065 +:1004E000000031009400FA006601D9015702E602CB +:1004F0008A034F04440584064208EB0A980F551AF4 +:10050000834FFFFF620086022805C3064208240AC3 +:10051000120C020EF00FBA118A135D153317001971 +:10052000CE1A9D1C6F1E44201922EF23C1259F2740 +:100530007D295C2B2C2DFA2EC630963242340236A1 +:10054000EC37AF39AE00850262044D0631081E0A51 +:10055000090CF50DCB0FA5117F135B15341700198E +:10056000CE1A9D1C671E3C201022E423BF259E2727 +:100570007E29612B212DEF2EBB3085324234FD3593 +:10058000CE37B239B7003D02C9034705C2063B0862 +:10059000B709330BB00C210E860FF5107012F11352 +:1005A0007115FD168B18EC1900FFFF00010000010A +:1005B0000101FF0101FFFFFF00FF0001FF0001003B +:1005C0000101FF0101FFFFFF00FFFF00010000012B +:1005D000FFFF01FFFF01010100FFFF00010000011B +:1005E0000101FF0101FFFFFF9CFFFFFF9CFFFFFFD9 +:1005F00000FFFF0001000001FFFF01FFFF010101FB +:10060000FFFF00FF01FFFF0000000100FF010001EC +:10061000010100009CFFFFFF9CFFFFFF6400000042 +:100620006400000064000000640000004020100826 +:100630003C5A780078B4F00001000080020000808D +:1006400003000080940F0200840F0200740F020068 +:10065000600F02004C0F0200340F02001C0F02005A +:10066000000F0200E40E0200C40E02000B0C0C0C82 +:100670000C0C0C0D0D0D000001050007020604080E +:10068000030900000001020304050505060607082A +:10069000090A0A0B0C0D0E0F1411111213000000A1 +:1006A0005860616263646464656566676869696A05 +:1006B0006B6C6D6EFF7070715700000005002D00AF +:1006C000AD04110515051505150515052505A80029 +:1006D0002605F9000400000000003600370037004E +:1006E0000000370047005B004800F90000000000F0 +:1006F00000000000000000000000000020010000D9 +:100700002001000000000000000000000000400286 +:1007100040020000C000C00040004000040404018A +:10072000010101010101010107800300387000008F +:10073000C00F000001000200020001000480000060 +:1007400008400000102000002010000040080000B9 +:100750008004000000030000000102000102030405 +:100760000506070800010200010203040506070848 +:100770000000000000000000000000000000000079 +:10078000400200004002000092020000D20200007D +:100790000009090003000000000102030400010237 +:1007A000030400000780030038700000C00F000041 +:1007B0000840000010200000201000004008000049 +:1007C0008004000000030000078003003870000070 +:1007D000C00F00000780030038700000C00F000049 +:1007E0000000000000000000FFFFFFFFFFFFFFFF11 +:1007F00003030301010101010101010104040400DB +:1008000000000000000000000101010000000000E5 +:1008100000000000010101010101000000000000D2 +:100820000B000B0B0B02000000000000000000009A +:10083000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10085000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10087000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10089000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:1008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:1008B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:1008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:10091000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10097000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10099000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:1009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:1009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:1009D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1009F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:100A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:100A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:100A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:100A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:100A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:100A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:100A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:100AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:100AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:100AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:100AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:100AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:100B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:100B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:100BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:100BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:100BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:100C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:100C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:100C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:100C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:100C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:100C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:100C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:100CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:100CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:100CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:100CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:100D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:100D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:100D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:100D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:100D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:100D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:100D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:100D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:100D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:100D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:100DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:100DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:100DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:100DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:100DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:100E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:100E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:100E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:100E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:100E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:100E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:100EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:100EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:100EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:100ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:100EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:100EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:100F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:100F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:100F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:100F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:100F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:100F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:100F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:100F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:100F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:100F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:100FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:100FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:100FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:100FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:10100000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10101000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10102000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10103000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10105000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10107000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:1010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:1010B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:1010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:1010D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1010F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10111000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10112000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10113000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10115000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10116000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10117000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10118000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10119000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:1011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:1011B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:1011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1011D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:1011F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:10120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10121000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10125000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10127000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10129000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:1012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:1012B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:1012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1012D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:1012F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10131000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10133000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10135000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10137000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10139000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:1013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:1013B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:1013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:1013D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:1013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:1013F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10141000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10143000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10145000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10147000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10149000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:1014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:1014B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:1014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:1014D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:1014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:1014F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10151000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10153000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10155000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10157000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10159000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:1015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:1015B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:1015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:1015D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:1015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:1015F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:10160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10161000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10163000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10165000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10167000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10169000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:1016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:1016B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:1016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:1016D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:1016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:1016F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10171000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10173000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10175000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10177000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10179000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:1017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:1017B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:1017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:1017D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:1017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:1017F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:10180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10181000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10183000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10185000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10187000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10189000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:1018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:1018B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:1018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1018D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:1018F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10191000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10193000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10195000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10197000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10198000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10199000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:1019A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:1019B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:1019C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:1019D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1019E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:1019F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:101A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:101A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:101A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:101A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:101A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:101A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:101A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:101A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:101A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:101A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:101AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:101AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:101AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:101AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:101AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:101AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:101B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:101B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:101B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:101B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:101B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:101B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:101B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:101B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:101B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:101B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:101BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:101BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:101BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:101BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:101BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:101BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:101C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:101C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:101C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:101C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:101C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:101C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:101C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:101C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:101C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:101C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:101CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:101CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:101CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:101CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:101CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:101CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:101D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:101D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:101D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:101D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:101D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:101D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:101D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:101D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:101D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:101D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:101DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:101DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:101DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:101DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:101DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:101DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:101E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:101E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:101E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:101E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:101E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:101E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:101E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:101E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:101E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:101E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:101EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:101EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:101EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:101ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:101EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:101EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:101F0000FC4651CF805081002E17F206EBF03CA723 +:101F1000F0542E76E41F3C07F0568047503E7FB8C1 +:101F2000A81E3C07F055A8199C3FEBB9EA282E07DC +:101F3000F2074200A473380401118420B603801F05 +:101F400015FE7FF7DD42EABA961EC80484004800F9 +:101F5000011C3C63F906C6058EC13C6BF90684C1C1 +:101F60003C03F905C009EB2D8421DD493C03F9054B +:101F70008E013C0BF9052E07F2075014FFFF140EDB +:101F80007FF52E07F206141E7FEC140E7FF140053C +:101F90000408140E7FF240048408140E7FED5215DD +:101FA0000000840083C8140E7FF6804080A0141EB9 +:101FB0007FF0D758815E8480548200FFE309E84BAC +:101FC0002A150001E041806140313C1B8043043E02 +:101FD0007FF6E061E807145E7FF1148E7FF5141E32 +:101FE0007FF681E14E14000452F08000043E7FEF42 +:101FF000E06FE809043E7FF738F1900050F7800168 +:1020000038F19008043E7FEC4C4180244E8200223F +:102010002235000022857FFE143E7FF3043E7FF2CE +:102020004080A001E068E809043E7FF340F08C01A5 +:10203000043E7FF2E06FE90B043E7FF0E103E80924 +:10204000811CB2738A23B270E023E8038C019601ED +:102050008C81D5B3041E7FED8CA1976841EF0400FD +:10206000D5A9001E7FD43E17F207001E7FC43E177D +:10207000F206957A8425405284B68420044E7FF778 +:1020800000AE7FDC810187C140F2280154F780FF58 +:1020900040F7A406E80D08F20001E0AFE8068C2145 +:1020A00011E27FFF9648D5F110827FFFD5EE4043C5 +:1020B00084098887E004E90644000E103C0BF90609 +:1020C000D5312E400E98CC02C613044E7FF4FF2269 +:1020D0009521E044E80D3C47F9089B144E44000369 +:1020E000FF22EB7252530004FF5CE0A4E91B5A1874 +:1020F000021640548409041E7FF74040A80197202F +:10210000E285E80C08408001C4F9043E7FF74044B2 +:10211000840138420D00C4F2D505C6058CE3E0E029 +:10212000E81B84C13C03F9083C0BF904020E7FEC68 +:102130003C2BF9083C0BF9074E62FF0A3C03F905FA +:102140008C05802096015CF0012DE902EA8C3C1B95 +:10215000F9058401D5193CF7F9075EF782EFE90626 +:10216000040E7FEE5EF07F92E9DD5EF17A2484C09A +:10217000E8DA3C67F9049B964E640003FFB2EA94E8 +:1021800040601807D5D0EB0AFCC0FC00EAE35A0017 +:102190000111C0045A000310FC808409DD52802024 +:1021A00084005A1001048400802049FFC898FC80F4 +:1021B000FA06D502FA07DD4A5A0001F7FC80FC490D +:1021C00080E1509F801C800981428420FA5C810557 +:1021D000F38580C4DD42A43840502001962BF08165 +:1021E0004E0700A9008380034402097C01C38002DA +:1021F00038002101804AF0824402093CEB22380079 +:10220000710184A0F08346007FFFDD43F08440111C +:102210002801F0059648E220E8460841000183C6FF +:10222000DD5543E20073001F00235A1801F23814F1 +:102230009202C9EEF302041F0001F0039A59043F11 +:1022400000029AC3FEDC42308473001F001E40145B +:1022500004014E140003FE4A00FF001F40FE3C0133 +:102260004EF4000452F78000882F52F080024EF79F +:102270000007401784084031840DD5058E2294490B +:102280004031840C85E1C308F004E20346007FFF7F +:10229000DD43EA9681E0F00440303C773834920A1E +:1022A00088A3D5B6C54784602E86E4305023000C41 +:1022B000802351CF801C54A180FFE348E828380ECA +:1022C0000E02C021F40104F10000FE24F4024000DB +:1022D000141605E17FFEFF04409780004247F87323 +:1022E0004042249614417FFEF40305E17FFFFE2463 +:1022F000420F3C738C2140002416964814017FFF46 +:10230000B722808A8C615021003CD5D65A1801131F +:10231000DD5542620073EAECF11A8C01EB1EA63B1C +:10232000A6BA8801EBC9EA6B0013001C5810802084 +:10233000AE40FCC9FC458140440105F0B1C6F281C4 +:10234000F382EAC03A2394208460812180C345C28D +:1023500029CC448228D438238C0000050003F3855F +:102360008840983B9690A70100050002F28488807F +:10237000972080028024F483EBAAF403F204F3058F +:10238000C028885CEA5242220073A6105A002F220D +:1023900054100020C11EF102961FC90F8029544419 +:1023A00080FF9B4C9768D61108508001D0129A8C00 +:1023B0009690E2C2E8F7D50DE60BE80B3804000072 +:1023C0005A00FF08F101EA91380498088CC197B0CF +:1023D0008C625A3810C28006FCC53A0F943C3A6FA2 +:1023E000AABC51FFFD8C507F8290B6079619A87940 +:1023F000A8BAF0848420844BB00C4061C009A8FBCB +:10240000A93CA97DDD47B00CEADA844BDD42B0245B +:102410008420442001E0DD42B0158420EB00DD4241 +:10242000000F82A184E0F087F004F782E2C04060F0 +:102430003C1BF685449228D480C7040F80ACA600CC +:10244000E2C0E864041F80AC9432408080005004F5 +:102450000002B04AB08C846049FFFF6E854045C2DF +:102460001350148F80034CA0004F5015000154806E +:1024700080FF80A845E0003CD044B04AB08A3810C4 +:10248000A800383114003844840038248C005A40A5 +:10249000FF365A20FF3481FC42F278732247800FC6 +:1024A00081FC42F17873F20322F7800F22210001B0 +:1024B000C40DE80CEB7AFEBC4041109640213C561E +:1024C000E044E80397E0D50297D0F202E654E8161C +:1024D00004FF80028443B115424788738044E2239D +:1024E00080834040BC1BE2614011BC1AAE51F10236 +:1024F000AF108C219648AFD2F1828CA19768D5BDE0 +:102500008148D5B28CC197B0D599EA82461008951A +:10251000F0868780440213545010843F83DC9EC4AD +:102520004440003CF189F206541E00FFE222F18390 +:102530004EF200D9B04C002F800C382E0408F10365 +:102540009D49F10697684C5080C8002000225A200F +:10255000FF1A802342129073006080265A60FF1396 +:10256000EA2CEA7E42710473007380C75A78020B2A +:10257000EA7E42730473001380C75A1802044800AD +:1025800000A95CFF00144EF200A580C34262907364 +:10259000A041A1F29BCF4E740003FFFAEB374490A9 +:1025A000003C4262A473A042A1B39B8E4E64000320 +:1025B000FFB2FFB4F10942639C73E0264EF3008A38 +:1025C000FA28B1E4427F047380278123007F800CC6 +:1025D000429290731070801050748004A9C9A98A27 +:1025E00010508011B601B1D584C08D38F188F10248 +:1025F0004C60801B2080001CA6784C80C012208478 +:102600008008A6794C80C00DF10850808010A67A11 +:1026100000A40003E22A40A0BC1A10A400038CC14D +:1026200097B08CE3D5E58023421290735A20FF299E +:10263000EBF45A10FF244460010CEA7E42711873D7 +:102640008127008380C7EA7E4270987300A380C709 +:10265000FAC8E348E909E30AE90B029480600273CF +:102660008060E327E905B064421F1873D518B0A451 +:10267000422F187310110012D514FA28D506002025 +:102680008026FA285A20FF07B1A4426F04738026DF +:10269000D506B0A4422F04738022845F10208012DC +:1026A000FA28B1E4427F047350238010A6525A10D6 +:1026B000FF0D4460010C049F80AB42909873B429D5 +:1026C000A87B00148012AE54501F000155E080FF1B +:1026D0008CA148FFFF3851CE00015000003C48FF5C +:1026E000FF2451CF8090801C84E04C7F00338CE12C +:1026F00097F881274C9F002CFA48B06442148873E5 +:10270000A0C2A08AE043E81EB18F81E081063A278B +:1027100094043A2414243A278C0081413A240C2052 +:1027200080C03A251404EB983A250C003A278C20F7 +:10273000B08F80C23A231404EA663A240C003A258A +:102740000C2050148001549080FFD5D58C18D5CE24 +:10275000F004B0648C0AFE04F083F004FE04F084FC +:10276000F005FE04F082FA0842138073F185F0054B +:102770004DC0019E3C73F436F104F003547380A005 +:1027800040009C1A80E0000E0011B04C3890800090 +:10279000000E0010386080004C930186000E00127D +:1027A0005A00FF3DEA2C04AF80AB42A004735025D1 +:1027B00000A0B55C8002802AF28649FF98F3F206F9 +:1027C000C02D048E00018002802849FF98EBC026AE +:1027D00004040003041500034430007D8820B8037E +:1027E000EAE1FEC440F189F6E02FE8074430004BEF +:1027F000FE1CEA69E001E911EA9900150021002EAA +:102800000014882044000096EA90FE14EB96E00144 +:10281000F00240703C1AD502F702E3268146DD59EA +:1028200040A4BC1BE2C9FFC44064BC1BDD55EA45A3 +:10283000EA4F002080265A28FF0CDD55EA45EA4F72 +:10284000000080265A00FF1285208109D51BEA5C12 +:10285000EA32EBCD0000010DC8F1000080228C3877 +:102860000010800BEA2AC8EADD55EA45EA4FEBF48E +:1028700085205A10FF07EA77EA32EAB20290006038 +:102880008501DD55EA45EB8A002080265A28FF0B9A +:10289000DD55EA45EB8A0000802684205A08FF1F98 +:1028A000D50EEA5CEA32EBCD0000010DC8F2000063 +:1028B00080228C380010800BEA2AC8EBDD55EA45EF +:1028C000EB8AEBF45A10FF08EA77EA32EAB2021018 +:1028D0000060D5028420EAB6EB3BEB00EA884205B3 +:1028E0000873000000265A08FF0A4432135042338E +:1028F0000873002180265A20FF128B218D24E7299E +:10290000E90D5A88020CB802E007E941000E0013F5 +:102910005CF0005BE83C480000C7EBB8EB65422385 +:102920000473001100265A10FF055A08FF28D5032A +:102930005A00FF25001E00125A10FF21EA77EA32E2 +:10294000EAB2001000C65A18011A000000F65A0830 +:102950000216EA89C813B43CB8010050801E00007A +:10296000001ED80CDD55EA45EB65EA4F42250073A1 +:102970000050803200010032D00AB802E007E907B7 +:10298000000E0013F107E2204EF2008E000E001040 +:10299000B04CB08CEA91001E001138610400EA4589 +:1029A000E20680E640703C1BE2C040603C1BDD5507 +:1029B000EA4F50108020A6CE5A38FF04480000E6A7 +:1029C000EB654223807350210020A61680875A00B1 +:1029D000FF04480000904490003CEA884203A4733E +:1029E00050A00020842010150007EA4542132473EC +:1029F00004F08004A0CA0480000405E0000242370D +:102A00008C2440543C00423478735040800850205D +:102A1000000840319476A8CAA0D1A0A1A94C4227B1 +:102A2000882442240C7350808020402114560034A6 +:102A30000005A8A1002500058C248843102400056A +:102A400000340004002500048C0488431024000492 +:102A5000804149FF97BB000500065A08FF04480063 +:102A6000008810040006EA45EA884213A473420372 +:102A700024738C388C182220800322300003E062FB +:102A8000E80A0030800A0010800B1030000A101095 +:102A9000000BAC83B08C2E37F2A880029A42964885 +:102AA000E223E96C51CE001848FFFE6384C04492D3 +:102AB00029CC040F80ACA600E2C0E86C040F80AC07 +:102AC00095F288E08CE2B04AB08C8461800749FFBF +:102AD000FC33F0823C57F1D3B73F040F80AD802721 +:102AE000B08AF302444213548CC149FFFB6A97B089 +:102AF000D5E144A22F404450010C812A42919473A5 +:102B0000503480C000818007FE2C880A5A88012535 +:102B1000505000C000A280075AA8011602848060AD +:102B200002A00060E348E8038402D50AE30AE90B47 +:102B30002200006A22F4806AE00F8402E805100295 +:102B40008008D512840210018008841F80E6AE0E32 +:102B500080C448FFFF42500000C0A6475A1801A495 +:102B6000842210100008841FAE1648FFFF360004B0 +:102B700000061005000648FFFF78081000014C70A1 +:102B8000FF8F10607FFFD58B800780E680C048FFF5 +:102B9000FF2451FF82743A6FAA84EC18DD9EFC4E2C +:102BA000F08544010600F183B0528102EA5DEA66D5 +:102BB000A400AC084E83000FEBA93C00031EE20109 +:102BC000EBFF96C33C00031FE220EAE7960BEA58AE +:102BD000D5103C300320EB103C100321E260403064 +:102BE0003C1AE20140103C1B960B96DB2E26E41F9C +:102BF0008E419690C2068A03EA699603F082D50256 +:102C0000F282EB37F203DD55802642110073F18426 +:102C1000EA318E02F087F0044C6001450003002782 +:102C20004E02013DA0344E07013A3C03F9009606DE +:102C3000C00A00030023E6024EF30131F107E00170 +:102C40004EF2012D4E83000E000300228421EA2A59 +:102C50004E03012500930022007300238402D54314 +:102C6000840100130023D5F4B012F48B38207000D7 +:102C7000881C4031240000A0000196D840551C005B +:102C8000976880038025F28AF389F588EBAAF50816 +:102C9000F309F20AF40BC83551CE00025BC812E604 +:102CA000B0D78440B04F8400385181114E8300402A +:102CB00038A08A0288AA38508A0A8C015A0803F67A +:102CC0008C418C665A2803F1F0035A080148F00F32 +:102CD000F210E040E932F311E043E92FF0015A002D +:102CE000013E8401F0818420B00F844CDD42B01796 +:102CF0008420FA42DD428780EA52809CF086D5B576 +:102D0000F00642328073F00538100D114E150004A4 +:102D10008881D5028420EAC68C4196C096908403AF +:102D200042310073B01738100D09D5B738A08202B0 +:102D300088AA3850820AD5C2F211E0404E830009B9 +:102D4000E8045004FFFFD502EAEDEA83D5C8E803A2 +:102D50008EE1D5028CE197F8D5C204A300043C278C +:102D6000F1D0DD59FE2442F50824E00F4EF3009720 +:102D7000E08AE8084000281641C0080152A000641B +:102D8000D50385408781B401A089E040E802A80905 +:102D9000B08FA0D2A051E023E802A8D1A1118803EE +:102DA000DD5C3C37F1D2FE0C946142508C24E0A0F3 +:102DB000E9183C57F1D142F09424E00FE914EA50AD +:102DC0009B4D843EFF0C4000101688604211A824E1 +:102DD00042FE1424E02F40A2BC1B41C1BC1BD50302 +:102DE000854187808460B10DB00F38000E024E0619 +:102DF0000006B04F840138008E0A38010E02842884 +:102E0000F488F286F38149FF98FEF301F408F20694 +:102E100038020D098C615A3803E9A42122120002FC +:102E20002222000094018A018A029603C0078A22A6 +:102E3000F2029401FE54EB9B9603402E28004E8331 +:102E400000194412097C3810A5018801A072EB30EA +:102E50004210707340A089564EA500083C23720CA6 +:102E6000E04A40A13C1BD502814814A30002D516BC +:102E70004412093C38109D018801A073EB304210C8 +:102E8000707340A089564EA50007EB10E00A40A0E1 +:102E90003C1BD502854014A300035063003C48FF4F +:102EA000FEBCFCCEFC01EB378440A670F08149FFEC +:102EB000FE78F001A670844149FFFE73FC81FC207E +:102EC00080E00200005C80C15CF001F5E921221382 +:102ED000801B220380118A01B4264E140003FE4A8F +:102EE00080404E040003FE82E022E802B606221370 +:102EF000801C220380128A01A0714E140003FE4A36 +:102F000080404E040003FE82E022E802A831EA225B +:102F10000413803FB446965F5A18012EEAE0A131AF +:102F20005A10011B00138102C90FC80A8425FE8CA8 +:102F30008462FE6440210C5640408C96D511846317 +:102F4000FE9CFF1CD50D84234031047640120436CC +:102F5000B666A871D50594919521B646A93122335C +:102F6000801188438387BAA9222380129814B8AAB3 +:102F70008401FCA0CA03A031C00E221380118387F4 +:102F8000B8298A01B60622138012B82A8A01A8310C +:102F90008400FCA0B606A831FCA03A2F943C3A6FFE +:102FA000AABCEFF4F70FB00B3A301420A7784E52BA +:102FB00000B1B541049080014EA4000380834E957A +:102FC000000505C00003D50305C000024FC2000381 +:102FD000CC038403D50C80A44E440003FF62801C04 +:102FE0004FC40004520E0000D0038402AE38A6384D +:102FF00081015A080326800A4EA4000452050000ED +:10300000E080E9048400B608D50884014EA40003DA +:10301000841F42A20075B74880094E9400045204F0 +:10302000800040FE0007E9038400D57184014E94BE +:103030000003841F429E007514940001D56A5A0053 +:10304000020480C2D532421E28244E140003FE4AD8 +:10305000422224244E240003FE9284C05003000F19 +:103060004030800DC3048CC197B0D5F94001000DEC +:10307000C8FB4010980D4021180D420084244201E5 +:103080000873F481EBDE4060180CC6434204A424AC +:1030900042052873EBDEF40142427024FE244060B6 +:1030A00018D74E640003FFB28008DD56E0C0E90483 +:1030B0008400B608D52C4030040A8043B428422549 +:1030C0001873402100569A8A423498738088A06110 +:1030D000400180169A08A678B648A8215A18011A05 +:1030E00050110009E633E8048420B628D5074E279E +:1030F00000048E4AD5028C4AB64850100009E633C7 +:10310000E9944E0700048E0AD5028C0A14040001CB +:10311000EC0C3A6FAA84EC10DD9EFC20A141B4C0F7 +:10312000224100112201001242729424427318734A +:10313000FE4CAD171201000888868805E0E1972350 +:103140009603E816E083E8034E650013EBA98A2393 +:10315000E081E9034E66000DE003E8034E550009E7 +:103160003C13720D9ACBE003E9064E570005AD17EC +:1031700012010008FCA0FC534451061CB1A281427C +:10318000810380E43A2294003A2314202E47E3D9A5 +:103190003C23720C8520F285972E3C23720D149FE0 +:1031A000801EF286149F801FA4CBA48C4E4203DEA7 +:1031B000F08D22050000F798F08780E102050001FC +:1031C000F105149F800B9A089603F08822040000F2 +:1031D000F106F08902040001F18F9A089603F08A43 +:1031E00042018C24F09342010824F094F0059201EE +:1031F000F09580019201F096F005F08EF0059202B4 +:10320000F09780019202F0902E07E860E3204EF2E2 +:1032100003ADDD58F60D42648073EA274E0203A227 +:10322000000301054E03039E0003800EF09100038E +:10323000800FF092EB0CE6024EF200950223005A4A +:10324000E6424EF30090E6443C33720C004300A289 +:10325000000300A33C13720D4EF2008522530005BB +:10326000222500004C22807F222500019A9AD27AE2 +:1032700022530006222400004C22807522240001E3 +:103280009A8AD2702E27F58BCA048A04E409E86A68 +:1032900022030003402188098A60224300044E343F +:1032A0000003FEDA96DBE043E80E403088098A240A +:1032B0004E140003FE4A964BE061E805E040E80347 +:1032C000E064E95050330014221180032233000ED1 +:1032D00084A38A018A8385E2FE2CFF2C41C03F969D +:1032E00040223C5615CF8020F2A14FC30003C23AC2 +:1032F000B020F29AF399F18CDD565EF000C8F10C23 +:10330000F319F21AE92F8A3C9A9A8400B0E05043EC +:1033100000145053002849FF9837F1203C1FFB61EF +:10332000F1213C1FFB62C01EEA275A00041C000367 +:1033300000BD5A00011884011203005B1003010450 +:103340008422800949FF9AF93C07F6C43C17F6C26B +:10335000EA5BAC368400AC77AC75100300FE480025 +:1033600003010223005B5A28014F000300FE5A08A4 +:103370000132F0185A08012F44020E24F105F2061A +:1033800049FF98BE5A0801273C2DFB602203000626 +:103390003C1DFB5F223300058A028A61FE04420164 +:1033A0008C73F313E003E816F314E003E806AC773C +:1033B00012230008480002D62203000784628820F6 +:1033C000EB3140108C368802AC7740000C16480078 +:1033D00002C8000300FD4E0202C5EA275A08030492 +:1033E000480002B4EA865A080204480002AF2E07D9 +:1033F000F2454E0302AB02030069AC370203006AD8 +:10340000480002AFE6424EF302ADB4A6B407E005B1 +:10341000E8042E07E81ED505000300DBC0048E017A +:10342000100300DBA135842240F205F6E0AFE80C82 +:10343000DD45EA34C0070403000F40F005F6E08FD5 +:10344000E82A8403D526840785E8FE24EB96E00568 +:10345000E91F001300DC8401C11C0433000A44008E +:103460000031FEC445C0004040F1F1F6E0AFE81085 +:10347000EA8454318200C3080433000FFE1C40F07C +:1034800071F6E08FE8088C21101300DCD50484006D +:10349000100300DC000300DB8420003300FEEBAFF0 +:1034A000100300FF3E17F0635A380161003300BB80 +:1034B0005A38025D44323D903811A60A44323D84A8 +:1034C0003811A4085A08011F5A200213000300DC17 +:1034D000E602E90EDD53DD5154100010840AC104E8 +:1034E0003C13F184D502A47AFE0C480000D1EA23F3 +:1034F000840AEAADC1042E17E390D5F700138014B7 +:10350000D5F45A280204480000C52E37F62E0003D1 +:10351000801BDD5CFE8CFE1CE040E806DD53DD51C7 +:1035200096264E0200B7DD5F00130100EAF5EA219E +:1035300096A65A18010FC2042E17E30AEAB5EA2329 +:10354000EAADC1042E17E38DEAB500138011EAB588 +:10355000C2042E17E30BEAB5EA23EAADC1042E1725 +:10356000E38CEAB500138010EAB5E646E9375A085D +:103570000136000300DCE603E804EA275A08032FBB +:10358000220300112213001B22F3001C9A41220384 +:1035900000128A0FFE044200847344109C3FE02016 +:1035A000E91DDD45EA34C80ADD53DD515410001031 +:1035B000840AC10D3C13F184D50B8009EA405A08F6 +:1035C00001F5000300DCE603E8F0D563A47AFE0C05 +:1035D000120300638401F08BD55CEA275A080314B8 +:1035E000DD53DD519626C005EAF52E17E30CD54CC8 +:1035F000EA23EAF5EAADC1042E17E38FD54500139F +:103600008013D54222530011F107D109F108D107E7 +:1036100022530012F009D003F00AD81ADD53DD510D +:103620009626C0082E17E30D8403FE449021EAF588 +:10363000D50DEA23EAF5EAADC1042E27E38ED503C2 +:10364000002380128423FE5490219648D51DDD531B +:10365000DD519626C00703C30063F00D2E17E30D5E +:10366000D50DEA2303C30063EAADC105801C2E1704 +:10367000E38ED50AF00D00138012804949FF974E62 +:10368000F08CF10C801C844A49FF971212030063EE +:103690008401100F8077F00B03C30063C834EA275E +:1036A0005A00033222430011F108F00A9A8CF10704 +:1036B00015CF80229A61E022EBC0222300129749A5 +:1036C0009AC2F00915CF80239A10E003EA96403E93 +:1036D0000808E0A315CF802415CF8025E809F5154B +:1036E0009649E0859222E803F1A2D502F1A3964122 +:1036F000E023E809F1169601E0419202E803F0A404 +:10370000D502F0A522130011040300292253001250 +:103710008A01F09E0403002A8A05F09F000301023B +:10372000C004EA275A08020D840010030102220394 +:1037300000058A01F09E220300068A05F09FEA2711 +:103740005A080208EA865A000205840010030102A2 +:10375000000301024E0300ABEB41E6034EF300848D +:10376000002300BC5A2801044800007EE605E80456 +:103770008E019601D50284040233005C3C23F031B3 +:10378000F08CE262E970222500004C20806D222539 +:103790000001F30E9A9A4C110067222400004C227B +:1037A000806322240001F30F9A9AD25D5023001403 +:1037B00022410003F20E2233000E8A4403EF802ED2 +:1037C0004E240003FE92969340FF0807E80FF20F85 +:1037D0008A434E240003FE92F0109693E002E8061E +:1037E00040FF1007E803E003E93EF21ECA03F21FA0 +:1037F000C23AF00CFA4481E642F0087323E78007EE +:103800008E018A3EEABB22278008C9058AA240525F +:1038100080B6C52922178003222780049A619A9ACC +:10382000EABB4001001694499481F1A0F2A1C902BB +:10383000C21AB020F29BF19AF399F48CDD563C53F6 +:10384000F032F40CE005F319F11AF21BE90C8824AC +:1038500088438401B0DE504300145053002849FFD0 +:103860009593C824502F807700038013F281442061 +:103870000032F283F225B062B65FF6823A309400ED +:10388000805CB05E49FFFB8BEB915A08010C000F86 +:1038900080775A000308B01EF111F21249FF95F724 +:1038A000D50EEA275A08030CD5048401100301023F +:1038B0008006B05E2E27F54049FFFB03B01E0013C3 +:1038C000801880464430006449FFFC292203000729 +:1038D000F107E001E906F108E00140103C1BD502C8 +:1038E000F107EB31F209AC77E002E907F20AE002F6 +:1038F00040203C1B8002D502F009002300FEEA5B59 +:103900005A2801303C0FFB60F01E3C1FFB5FC803D0 +:10391000F01FC0278400100300FE440FFF9C2213F9 +:1039200000693C0FFB5F3C0FFB60220300038A0130 +:10393000F09E2213006A220300048A01F09FB01E49 +:10394000DD561203005CD50DEA275A08030BEA8600 +:103950005A0002080213001102030012AC77EA5B5E +:10396000EAEDEA8348FFFC52FCD3FC0049FFD9F89A +:1039700049FFD9804900001849FFD50349FFD518F0 +:1039800049FFD56049FFC47949FFB545840149FF26 +:10399000D53449FFD59649FFD44E49FFC68149FF2A +:1039A000D4AAFC80FC00840149FFB46449FFB367DA +:1039B00049FFB3A149FFB3B5840149FFB45B49FF97 +:1039C000B46B49FFB46A49FFB47349FFB47C840AFD +:1039D00049FFB47F840049FFA8E1840049FFA3BEEA +:1039E000840049FFA34E49FFB3005A08010484072D +:1039F000D502840049FFA36484414404281444147C +:103A000024148062DD4449FFB46D49FFB4F384019E +:103A100049FFB4AAFC80FFFFFFFFFFFFFFFFFFFF8E +:103A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:103A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:103A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:103A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:103A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:103A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:103A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:103A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:103AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:103AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:103AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:103AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:103AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:103AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:103B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:103B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:103B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:103B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:103B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:103B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:103B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:103B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:103B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:103B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:103BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:103BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:103BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:103BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:103BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:103BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:103C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:103C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:103C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:103C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:103C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:103C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:103C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:103C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:103C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:103C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:103CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:103CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:103CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:103CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:103CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:103CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:103D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:103D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:103D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:103D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:103D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:103D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:103D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:103D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:103D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:103D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:103DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:103DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:103DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:103DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:103DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:103DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:103E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:103E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:103E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:103E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:103E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:103E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:103E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:103E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:103E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:103E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:103EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:103EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:103EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:103ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:103EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:103EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:103F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:103F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:103F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:103F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:103F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:103F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:103F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:103F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:103F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:103F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:103FA000494C01010000FFFFFFFFFFFFFFFFFFFF84 +:103FB000EBF9FFFF00000000FF07FF0712122020AF +:103FC000400B0019001F0100001F0100163A0100FC +:103FD00000B0020072CA02002401000024010000A7 +:103FE000842809000200085A0200085A01000C0047 +:103FF000020008000200000105060000C556400846 +:1040000048003328480031164800313C48003162EE +:1040100048003188480031AE480031D4480031FAB8 +:10402000480032204800328E4800329048003292D8 +:104030004800329448003296480032984800329A3C +:104040004800329C4800329E480032A0480032A20C +:10405000480032A4480032A6480032A8480032AADC +:10406000480032AC480032AE480032B0480032B2AC +:10407000480032B4480032B6480032B8480032BA7C +:10408000480032BC480032BE480032C0480032C34B +:10409000480032C6480032C9480032CC480032CF0E +:1040A000480032D21E67000020670000366700001B +:1040B000546700006067000062670000C06700008E +:1040C000F4670000FC6700001068000062680000F0 +:1040D000D8680000DA680000E2680000EA680000C2 +:1040E000F268000036690000146A00006C6A000083 +:1040F000806A0000826A0000846A0000866A00000C +:10410000886A00009C6A0000B46A0000D06A00005F +:10411000E46A0000066B00009A6B0000BA6B0000B6 +:10412000DE6B0000FC4351CF80382E3664CE2E86E5 +:1041300064CF402404088C48542103F841FF8801CF +:10414000809F5A1801213CA332734EA2001E84E0C6 +:104150003C53327280C75292800045E000C8425200 +:10416000A07396B0E24888E9E80F98AF4021205646 +:10417000522103E842217824402128563822190987 +:104180008CC1D5F085009499142E7FF7812084404E +:10419000447000649610E2084EF2007D5A18010443 +:1041A000387209013C53FC98974E9769C5172FE761 +:1041B000F29284A054A280FFE35EE80C8CA140A29E +:1041C0008408446200E0894600A57FFF4CA07FF48C +:1041D000D55B84A044007FFFD50344007FFF97A8F0 +:1041E000E2C3E809386495118CA1E00640603C1BED +:1041F0008006D5F684A080C58145880754F280FFEB +:1042000040F78C06E80C39E4951140FF0007E805FB +:104210008D4188DE54A500FF8CA1D5F14EA200355A +:10422000141E7FF3144E7FF4143E7FF5142E7FF698 +:10423000EA25042E7FF6043E7FF5044E7FF4041E2B +:104240007FF35A08010B406328D64E650012E0E662 +:104250004063BC1B97B3D50D40A32956FFBAE14676 +:10426000E905E0EA80CA4063BC1B97B3D50284C06D +:10427000800984A0D30902A000008CA18B461AA05B +:1042800000019768D5F8040E7FF78C41892048FF1C +:10429000FF8351FE7FE0FCC0FC00646304024430F5 +:1042A000800064330403DD5B64630403FC80DD9EF3 +:1042B000FC00EA255A0801068400441003E8D504EE +:1042C000840044100BB8EA6B84008421EA8EFC80E1 +:1042D000FC0064120043EA5CEA5C49002EE04900FD +:1042E0002D55EB4449002D9C49002DE349001982CE +:1042F00049001154840049002DB849002269490041 +:104300001A0F490022C7FC802E07F9389600C814FE +:104310002E17F9335A18010EFC003E07F9334900F5 +:1043200019FC5A0802048403D5028404EAE4FC80E0 +:104330008402EAE4DD9EDD9EDD9EDD9EFC028400BB +:104340003E07F936EA3C80C0C00C840AEA224900E4 +:1043500019E84E02009149002CDA490019FAD50BF0 +:1043600084023E07F99E84013E07F99D49001A0127 +:104370003E67F99D49FFFF9D490016C74900213B53 +:104380008401490020A8EA34C8042E07F240D5036E +:104390002E07F2574900192BEA34EAA4EA25C8038C +:1043A000EB49D5362E07F9559616C0263C13F9422F +:1043B00084038441FE0C806296018420EA2DEB493F +:1043C000846180A38406FA2F44200064444000B135 +:1043D000DD4D846180A38406FA2F4420007E444092 +:1043E00000FFDD4D84618406FA2F4420007F4440A5 +:1043F00000FF80A3DD4D2E07F9558441540000FBDA +:104400003E07F95584203C03F9428062EA2DEA25F3 +:10441000C8048401490012784900071884003E0747 +:10442000F98D490020F549FFFF45EA34F081490044 +:1044300020A2F082490020A2F083F102F203F001F1 +:10444000EA7CEA34EAA484013E07F93684043E0794 +:10445000F93E3C03FC98EAB13C0BFC988400DD4536 +:10446000EA25C804840149002CF249000048840070 +:1044700049000A80FC82FC008401490007C449000D +:104480001CD3FC80FC002E07F93EC0045A00040631 +:10449000FC8049FFFF55FC8049FFFFEFFC80FC00DA +:1044A00084018420EA8E840149001C9684003E0722 +:1044B000F934FC80FC204470004084C02E07F93C95 +:1044C00096005A000111C0085A0802FA3E67F93FE7 +:1044D00049FFFFDAD5F484013E67F9333E67F932CC +:1044E000EAE4D5ED3E77F5343E67F93E3E67F93DA7 +:1044F00049FFFFD749FFFF0AD5E2DD9E4610008144 +:10450000E60104208033440FFDFF40F7A408FE16A7 +:1045100040003C0414008033DD9E5A10010CC1049D +:104520005A100210DD9EDD429606DD44EB36EA2A83 +:10453000D510DD42960640104808EB36EB2DD50924 +:104540009606DD4240104C08460FFF7FEB36DD41FA +:10455000FE1EFE0F14010029DD9EFC0080C04404F5 +:104560002C145A680506B42058109000D505B440A4 +:10457000441FEFFFFE568441B6208062EA52EA3EB5 +:10458000DD4044142C148410B441979FFE16FF871D +:10459000B6C1FC8044242C14961FB462DD5CEAF999 +:1045A000FE1EFE0FB602DD9EFC40EA828142838140 +:1045B00080E481008123EAAD04030391548407FF62 +:1045C000920B40002C084080200414830391EAA53C +:1045D0000423002CEA20401E400850000F00FE1665 +:1045E00041C0F004401E00041413002C4034C008E5 +:1045F0000413002D4031A8044623F3F040A56008C1 +:10460000460C0C0F5021003F4031A80450000FC051 +:10461000FED6FE0E402180041423002D0443002FFB +:1046200097EF92869526FFE71473002FFCC0442471 +:104630002C14960640104C08B462460FFF7FDD41F3 +:10464000FE1EFE0FB602DD9E44042814DD9E4404C7 +:104650002414DD9E4404281CDD9E4404241CDD9E9D +:10466000442480909606B462DD5CEA2BFE1EFE0FA9 +:10467000B602DD9E462000829606A0D5DD44EA2AD9 +:10468000FE1EFE0FA815DD9E46000082A0059210BA +:104690009606DD9E4630008240204008A11CFE1791 +:1046A000441EFFFE44210001FE16FE66FE0FA81CFC +:1046B000DD9EFC00406120089551FF774061440871 +:1046C000FF7740216008FEAFFE87954EFEAF405059 +:1046D000B408FEAF4050D80846300082FEAF40100C +:1046E000F408FE57DD4EA11CFE0F462C080C4613A5 +:1046F000F7F350108F7F50210080FE46FEA6FE5734 +:10470000A85CFC804630008244410000B4A3EA2348 +:10471000FF2FB683B4839492928A40422808FF0FF9 +:10472000B68388404C010005A059AA41D5FCB423AA +:10473000EA2AFE0EB603DD9E4630008244410000A8 +:10474000B4A3EA23FF2FB683B4839492928A4042A3 +:104750002808FF0FB683884080234C010005A30181 +:10476000A909D5FCB423EA2AFE0EB603DD9E465005 +:1047700000808C019CEEA64000207FFF944CFE57E9 +:104780009648AE68A64000207FFF944CFE5796489E +:10479000101280088CA18C02DBEFDD9EFC00EA4445 +:1047A000462FFEFF5050800850610FF150410FF02E +:1047B0005030800E94A9884038111800382110001C +:1047C000944CFE57964818128001DBF5FC80462079 +:1047D0000080843E043100A49606FE5EFE0F1401A4 +:1047E00000A4DD9E46200081DD4E04110011964993 +:1047F000FE0FEAE8DD9E462000810411000D923094 +:10480000DD52FE0F1401000DDD9E46200081DD4EBD +:104810000411000D9649FE0F1401000DDD9E462087 +:1048200000810411000E9230DD52FE0FEB33DD9E4D +:1048300046200081DD4E0411000E9649FE0FEB3339 +:10484000DD9E46200081041100119230DD52FE0FE2 +:10485000EAE8DD9E462000818430EA62961FFE5E13 +:10486000FE0FEA64DD9E462000808470504101BC4A +:10487000A061961FFE5EFE47A861B424FECEFE1F17 +:10488000B604DD9E46200081843E04310013960666 +:10489000FE5EFE0F14010013DD9E46200081960689 +:1048A000EA62DD5CEA2BFE1EFE0FEA64DD9E462016 +:1048B0000081960F40104808EA62460FFF3FDD4135 +:1048C000FE1EFE0FEA64DD9E462000819606EADFAA +:1048D000EA62460FFBFFDD41FE1EFE0FEA64DD9E2D +:1048E00046000081040000129212960FDD9E4404DF +:1048F00080108421B40092089606C007EABDAE403D +:104900003E17F9423E17F941DD9EDD9EDD9E4630A1 +:104910000081461CFF3F04218039DD43FE564622BC +:104920000000FE8F40004808461300C0FE0EFE1730 +:1049300014018039DD9E46200081960FEADFEAE609 +:10494000EB1FDD41FE1EFE0F14010039DD9E4630D7 +:104950000081441CFF3F042180399406FE56442305 +:104960000000FE57540000C0FE0F14018039DD9E88 +:1049700046200081960FEAE6EA8A440FF3FFFE1E06 +:10498000FE0F14010039DD9E4610008146288F88F5 +:10499000504080E8B464502108F8FE9E4631501023 +:1049A00050318400FE9FB644A0E18458FE9EA8A129 +:1049B000C81C04208038460FFCF3500000CCFE16C3 +:1049C0004620030850210320FE17140080380420DD +:1049D0008070460F3FFF50000FF0FE164620C000CB +:1049E0008C48FE1714008070DD9EFC0080C0EAAD8C +:1049F000DD429786943204610393843BFF8EFF87E8 +:104A000014610393EAA5FC804404502CB400920185 +:104A10009606DD9E44048008B400920A9606DD9E48 +:104A200046400081462F8FFF0432003A502108FF94 +:104A3000FE9E4630500050318400FE9F1422003A02 +:104A40005A000F0D960F4020580804320039EB1F12 +:104A5000DD41FE1EFE17140200395A100F0DDD4213 +:104A6000964FEAE64000A808441FF3FFFE5EFE47AB +:104A700014110039DD9E4620008196060431001590 +:104A8000DD44EA2AFE1EFE0F14010015DD9E2E07EE +:104A9000F536DD9E3E07F536DD9E5A08010F4407C8 +:104AA000210046102000B440FE57B6208020B401FB +:104AB00092199606C8FDDD9E5A08020E4407214051 +:104AC00046102000B440FE57B6208020B401921951 +:104AD0009606C8FDDD9E441480048441B401921002 +:104AE0009606C005EA68AE803E27F537B4019211FC +:104AF0009606C007EA688422AE4084013E07F53678 +:104B0000EAF6B40092129606C007EA688424AE4022 +:104B100084013E07F535DD9EFC00EAF6EAD0B620BA +:104B2000EB0C44020000B441FE17B60144160030FD +:104B3000B401EA9DB6018401EA6CFC80FC4081204E +:104B400080E181028143006F8044EA6C4E92000A4A +:104B50005A90010B84805A98020A44472140D50696 +:104B6000444720C0D50344472100A0214084300899 +:104B70009214EA28930C40802004461FCFFFA02205 +:104B800050108F00002F803440300402220F801418 +:104B900040216008FE1746203000502100FFFE161D +:104BA000FE1FA822A02340A530089214A0E4EA2802 +:104BB000934C40A02804000F803840518402223FCB +:104BC0008016EAC2FEC7A025FED6FEEF9214A8E426 +:104BD00040305008F0084073C008EA41920CFE1FB4 +:104BE000A825A026223F8018FE46000F803C148294 +:104BF0000001EAC2FE1FFE86FE8FA067460F0FE08F +:104C0000FE46A8A64600F01FF210DD41FE16FE0F7C +:104C1000A827840014020008462F8F0FB4045021E7 +:104C20000FFEFE86460000F0FFC6FFD714A2000369 +:104C3000B6E45A9801134417211C979FB4414003CE +:104C40006008466F0FFFEA9BFF96FF87B6C1EB0C2B +:104C500044020000B441D5125A9802134417215C53 +:104C6000979FB44140036008466F0FFFEA9BFF9691 +:104C7000FF87B6C1EB0CEAF7B441FE17B601FCC0E2 +:104C800046200083843C04310010960FFE5EFE0F28 +:104C900014010010DD9E46200083960604310010AA +:104CA000DD5CEA2BFE1EFE0F14010010DD9EFC40B1 +:104CB00046300083445FFEFF8383BC18FF2EBC9800 +:104CC000BC18928840422008FF17BC980491803994 +:104CD00046400F03BF3A04A1803B50420C0F409462 +:104CE0009002FFE64045100204A08002BE3CB501E0 +:104CF0008944A10B979F8928048080019874BC186F +:104D000088E858420100BC98BE1892C84063200849 +:104D1000FEB7BA9814918039BFBA14A1803B968926 +:104D2000B93C9230DD52FE57B9BCB420B9B9A041AC +:104D3000B9BAA042B9BBA446B83C9210DD4EFE0FF2 +:104D4000B8BCB818FF46BD98FCC0FC2046300083B4 +:104D5000444FFEFF8383BD188C42FF2EBC989710F2 +:104D6000BA18944A924840212008FEA7BA98BA1867 +:104D7000505180E458210100BA98506180E8507188 +:104D800080EC8820503180F0462000834C00801158 +:104D9000A281B6458380BA3F0240017EB646BA7F03 +:104DA000B647B4439250EA66FEA7B643D5EE838277 +:104DB000B918EA2BFE0EB898FCA0FC204620008310 +:104DC000443FFEFF8382BC18FEE6BB98BB184640FA +:104DD000F03C92684031A008FE5FB998BE3950326D +:104DE00000F0B480BD3AFF9E88C4A101BF3BFF5EC6 +:104DF00088A4A102B93CFEFE8883A0C3541080F0B1 +:104E0000BEB9980BBDBABCBB9641B83C9210DD4E02 +:104E1000FE0FB8BCFCA044348090EA8A9484B4832A +:104E2000FE8FFE17441FFBEEFE6654000411FE0FBA +:104E3000B6034600008084385030026CB443FE56FE +:104E400058108006B623B443441FF0FFFE56581096 +:104E50008A00B623B40384219208961F4000800C78 +:104E6000DD42EA3DDD440431006EEAD7DD41FE1E3D +:104E7000FE0F1401006EDD9E3E07F538DD9E2E0705 +:104E8000F538DD9E4437200054100001B4834020E3 +:104E9000A408441FFDFFFE66FE57B6233E07F53803 +:104EA000DD9E46100082042080085A080106841CFA +:104EB000FE16EAB1D503841DFE1614008008DD9E9F +:104EC000462000838062044100EEDD5C8440C8031C +:104ED00044200200FE8F441FFCFF542103004002C7 +:104EE0000402FE17140180EEDD9E462000838062DE +:104EF000044100EEEA8A8440C80344200800FE8F83 +:104F0000441FF3FF54210C0040020402FE17140159 +:104F100080EEDD9E442720689601B4229230DD5257 +:104F2000FE47B62244272070B4229230DD52FE0F95 +:104F3000B602DD9E44272000961740105008B46248 +:104F4000460FF8FFDD41FE1EFE0FB602DD9E442730 +:104F50002000843EB4629606FE5EFE0FB602DD9E21 +:104F6000442720049606B46240102408440FFDFF35 +:104F7000FE1EFE0FB602DD9E44272004843EB4626E +:104F80009606FE5EFE0FB602DD9E442720009606C2 +:104F9000B462DD44EA2AFE1EFE0FB602DD9E4427FF +:104FA0002000960640105C08B462460FF7FFDD4112 +:104FB000FE1EFE0FB602DD9E84013E07F539DD9E22 +:104FC00084003E07F539DD9E46000083040000EEB4 +:104FD00092089606DD9E442480909606B46294441E +:104FE000EA99FE1EFE0FB602DD9EC9064427100098 +:104FF000B422FE0FD5085A18010844271000FE03FA +:10500000B422FE0EB602DD9E5A1801074427100492 +:10501000B422FE0FD507C90744271004FE03B422AB +:10502000FE0EB602DD9E5A18010744271008B4226E +:10503000FE0FD507C90744271008FE03B422FE0E51 +:10504000B602DD9E44071008B400540001005C0065 +:105050000001DD9EC806EB1A841EB441FE16D5067B +:105060005A08010CEB1AB401DD4AB6014417100CC2 +:10507000B401EA9DB601DD9E5A08020BEB1AB40199 +:10508000DD4AB6014407100CB4208420B620DD9E12 +:10509000442710189606B462DD5CEA2BFE1EFE0F54 +:1050A000B602DD9E44260000843EB4629606FE5E93 +:1050B000FE0FB602DD9EFC0049001491FC80FC004E +:1050C0002E17F9994427211C5A180107B42292314E +:1050D0004010C408D5098E0140003C0840103C092E +:1050E000B4029211EA83FE0FB60284003E07F999DA +:1050F000840049FFFCD1FC80FC0049FFFCCDFC8012 +:10510000FC0049FFFCC6FC8044060000B400921C71 +:105110009606DD9E44163820B401DD4AB6014416D9 +:105120003420B401DD4AB601DD9E44263820841EB9 +:10513000B422FE46B62244163420B441FE16B6010F +:10514000DD9E44063818B400DD9E44363814EA4724 +:1051500040202009B403966F9218EAC2FE17442635 +:105160003808B603B462EAD8461C0FFFDD43FE5E82 +:10517000FE47B62244163804EA8FB441FE17B60142 +:105180004414800CB40192039606C0FD4404800CC4 +:105190008428AE40DD9E44363414EA47402020097E +:1051A000B403966F9218EAC2FE1744263408B60379 +:1051B000B462EAD8461C0FFFDD43FE5EFE47B6220E +:1051C00044163404EA8FB441FE17B6014414800C2F +:1051D000B40192139606C0FD4404800E8428AE40AC +:1051E000DD9EFC01B63F8022F38149FFFFB0B41F72 +:1051F000F101EB23FC8144163C04B401DD4AB60105 +:10520000DD9E44263804B42244063804922896468B +:10521000C9FBB440843EFE56B6208020B4019208FB +:105220009606C8FD44263404B42244063404922869 +:105230009646C9FBB440843EFE56B6208020B40199 +:1052400092089606C8FDDD9E4404808C8420B6201A +:10525000DD9E4426385046040000B422FE47B622A4 +:1052600044163450B441FE174426384CB601B402FB +:105270004617800094069206FE0FB6024426344C70 +:10528000B40294069206FE0FB602DD9EFC40467004 +:1052900000834052AC08FE2F4042440883870493A9 +:1052A0008014FE274010E0084650F7FF466F0800C4 +:1052B000FE0F50528801506307FEFE2E4064980294 +:1052C00040101804B994BC154031C008461007F0CE +:1052D000460FF80FFE9F501083FF50000C00403126 +:1052E0000402FE2640218004BA95FCC044100FFF42 +:1052F000FE0C46100083140080BBDD9E4600008338 +:10530000040000169601DD9EB440EA441420804853 +:10531000A0011400804ADD9E46200083960FEA62B9 +:10532000DD44440CFFFFFE1EFE0FEA64DD9E4620B6 +:1053300000819606A0D5DD5CEA2BFE1EFE0FA815A7 +:10534000DD9EC90846200091843EB4629606FE5E4A +:10535000D50A5A18010B462000919606B462944172 +:10536000841DFE1EFE0FB602DD9E46100081845095 +:1053700050508068B485A0E9FE9EA8A9C80A042000 +:10538000801944308F3A925240214808FE9FD50A36 +:105390005A08010B042080199252402148085821D4 +:1053A0006FFA14208019460E0E0E500000E0FE2603 +:1053B000EA2F580000031400801ADD9EFC008400D0 +:1053C000EACEEAF8FC80FC0044142C1CEA99B441B3 +:1053D000FE168441B6018062EA9FEA92DD40FC80BD +:1053E000FC0044142C18460BFFFFB441DD41FE16AF +:1053F0008441B60180624404281844142418DD4016 +:10540000FC80442720009606B4629444EA99FE1E6C +:10541000FE0FB602DD9E4610008050508080501076 +:1054200080B0B4408CA41422FFFFA28114228062B9 +:10543000D9F9DD9E46100080505080B0501080C4D5 +:10544000A281AAA9D9FEDD9EB440EA44EAEBA001FC +:10545000EAF5DD9E46300080505180405031804654 +:10546000A641A680944CFE579648AE68A641A680F9 +:10547000944CFE579648101280180010000D002022 +:10548000000C944CFE5796481012800C0010000D32 +:105490000020000C944CFE579648101280248CA1DA +:1054A0008C02DBDFDD9EFC00A681A6409494FE8F7B +:1054B000EA44969010208048A68180609494084128 +:1054C0008005FEA7969010208060A699A705949469 +:1054D000FEA7969010208054A699A7059494FEA745 +:1054E00096901020806CA683A7029494FEA79690B5 +:1054F00010208049A683A7029494FEA796901020BE +:105500008061A69BA71A9494FEA7969010208055C0 +:10551000A69BA71A9494FEA796901020806DA7448E +:10552000844FFF564062C008464FFF0F8381BD1273 +:1055300050420FFFFF66FF77BD92A75CFF564062A7 +:10554000C008BD15FF66FF77BD95A604FE16405046 +:105550004008B818FE26FE2FB898A61CFE8640010B +:105560004008BA1BFEA6FE87BA9BFC805A00014188 +:10557000C0065A08030448000074DD9EDD4804108C +:105580000020EAF2EB32EAD6EA84043000289236B0 +:10559000EB19EB41926F9233EAFCEAE08C2188240C +:1055A000543180FE88238822E02F04200028E9114E +:1055B00046100800FE57EAAEDD53441EFFFFFE56BC +:1055C000DD50DD53461FFEFFDD43FE56DD50DD9E00 +:1055D000461FF7FFDD43FE56EAAEDD53EAD0FE5725 +:1055E000DD50DD5346100100FE57DD50DD9EDD48E5 +:1055F00004100021EAF2EB32EAD6EA8404300029F2 +:105600009236EB19EB4196F79233EAFCEAE08C21F3 +:10561000882494D988238822E02FE911EB1D5810A3 +:105620008080EB26DD53441BFFFFFE56DD50DD532B +:10563000461FFBFFDD43FE56DD50DD9E04200029A2 +:10564000441FFF7FFE56EB26DD5344140000FE5737 +:10565000DD50DD5346100400FE57DD50DD9EDD4871 +:10566000041000219230EAF2EB32EAD6EA840430E8 +:1056700000289236EB19EB4192779233EAFCEAE08C +:105680008C218824543180FE88238822E02FE9135E +:105690000420002846180000FE57EAAEDD53441DE2 +:1056A000FFFFFE56DD50DD53461FFDFFDD43FE5676 +:1056B000DD50DD9E0410002894499221EAAEDD53AE +:1056C00044120000FE57DD50DD5346100200FE5725 +:1056D000DD50DD9EFC0080C15A000114C0065A0056 +:1056E000022A5A00031AFC80DD48EACB8380B920E5 +:1056F000922B4010AC08FF8FBEA08400EAFAFC8019 +:10570000DD42EACB8382B921922B4010AC08FF8F97 +:10571000BEA1EAFAFC80DD42EACB40134008838256 +:10572000BB21466F800FEA9BFF9EFF8FBEA1EAFA66 +:10573000FC80EAADDD42546307FF94760461039870 +:10574000440E003FFF86FF8F14610398EAA5FC809A +:10575000462000839606EA7A043100C0EA6FDD41F4 +:10576000FE1EFE0F140100C0DD9E4620008396063B +:10577000EAED043100C0EA81DD41FE1EFE0F140196 +:1057800000C0DD9E46200083960FEB18DD5C440FC1 +:10579000FCFFFE1EFE0FEB31DD9E46200083843EA3 +:1057A000EB189606FE5EFE0FEB31DD9E4620008371 +:1057B0009606EB18EA8A440FFBFFFE1EFE0FEB3144 +:1057C000DD9E46100083EA8F0420800EFE17140031 +:1057D000800EDD9E46100083462E7FFF0430800E33 +:1057E000EA60FE9E1420800E5A080108841F1400EF +:1057F000800B1400800CDD9E84001400800B1400CC +:10580000800CDD9E46200083DD5C0431000E4000EC +:105810002408FE0F441FFCFF54000300FE5EFE0F31 +:10582000EB33DD9E46200081505100905031009AAC +:10583000082000018841969018228001DBFADD9E45 +:1058400046200081843E043100229606FE5EFE0F53 +:1058500014010022DD9E5A10020D5A100314C91CB7 +:10586000DD42961FEB128430FE5EFE0FEB2FDD9EB5 +:10587000DD42961FDD5CEB12EAF9FE1EFE0FEB2FF8 +:10588000DD9EDD42961F40103008EB12440F0FFFE3 +:10589000FE1EFE0FEB2FDD9E5A0002095A00030C7C +:1058A000C80FDD48EAC0961FDD9EDD48EAC09208B9 +:1058B000961FDD9EDD48EAC0920C961FDD9EEA56DB +:1058C000DD9E8400DD9E46200081DD47DD440431FD +:1058D0000049460FC00FDD41FE1EFE0F14010049B6 +:1058E000DD9E46200080DD4704110075922AEB29D9 +:1058F000FE4714110075DD9E5A000120C0065A00B3 +:1059000002275A00030DDD9EDD42EA230401003028 +:10591000920AEA4DFE4714110030DD9EDD42EA2373 +:105920004000C00804310031461FC00FDD43FE5E59 +:10593000FE4714110031DD9EDD42EA2304010031EF +:10594000920AEA4DFE4714110031DD9EFC0080C131 +:10595000EAADDD48541303FF4060C40804200398F7 +:10596000461F801FDD43FE56FE77EB3DEAA5FC8017 +:1059700046100080462FC00F505081FCB465502166 +:105980000C00FED6464012C0FEE7B665A0E9FE9EBA +:10599000463009605031804BFE9FA8A95A08010982 +:1059A000040080815800000714008081DD9E0400FF +:1059B00080819210DD4E14008081DD9E5A0001131B +:1059C000C0045A00021CDD9EDD42965F4000C00804 +:1059D00004310032461FFF0FDD43FE5EFE47EAC67C +:1059E000DD9EDD42965FEAD804310032461F0FFF8C +:1059F000DD43FE5EFE47EAC6DD9EDD424010F00854 +:105A00000401003294049204FE47EAC6DD9E54204D +:105A100080035410800C90225A000116C0045A00D2 +:105A20000227DD9EDD48847C5050009CB485EA66E8 +:105A3000FEE6FE5FB625B465441CFFFFFE5EFE8FEA +:105A4000B645DD9EEB3F440FFFCF5051809CB4859F +:105A5000944CFE26FE47B625B405461FFCFFDD43E9 +:105A600040215008FE0EFE17B605DD9EEB3F440FA9 +:105A7000FF3F5051809CB485944EFE26FE47B625CC +:105A8000B425EB1FDD4140215808FE0EFE87B645C8 +:105A9000DD9E5A00010EC0045A000215DD9EDD4253 +:105AA000841CEB30964FFE1EFE47EB45DD9EDD422B +:105AB000964FEB30940C441FFFCFFE5EFE47EB4544 +:105AC000DD9EDD42964FEB30940E441FFF3FFE5E9D +:105AD000FE47EB45DD9E46000081040000F5920B79 +:105AE0009627DD9EFC0080C05A080C0684018420A5 +:105AF000DD4FFC8084008020DD4F44242C005413B3 +:105B0000000CB402978F902295B3FF8F920AEA4D52 +:105B1000586302A4FF87B6C28441EA30EA3F80623C +:105B2000DD40FC80FC00EABAB44158210024B641B3 +:105B30005A0002115A00041A5A08012AB441841C5E +:105B4000FE86B641EA43B42292309648FE0EDD4A04 +:105B5000D517B441841CFE86B641EA43B422923084 +:105B60009648FE0EEAB1D50CB441841CFE8658213D +:105B70000001B641EA43B42292309648FE0EDD445D +:105B8000B462EA20DD41FE1EFE0FB602844180624F +:105B9000DD49DD4CDD40EABA440FFF3FB441FE165B +:105BA00058000080B601B401844158000300B601DA +:105BB0008062EA30EA3FDD40FC804600008104104C +:105BC000002D92305420803F041003999226944E69 +:105BD000FE57141003990410002A92285420803F85 +:105BE000041003989226944EFE57EB3D0410002FAC +:105BF000EB0D966F4020A808441F03FFFE5EFE5782 +:105C0000EB420410002CEB0D96484020C008EAC37C +:105C1000DD43FE5EFE57EB42EB1D04300399966FA9 +:105C20004020D808461F03FFDD43FE5EFE571410D8 +:105C30000399EB1D04200398461F7FFFDD43FE56AA +:105C4000EB3D04100091EB0D9234966F4020E40878 +:105C500046181FFFDD43FE5EFE57EB420410009620 +:105C600004300391922896674020AC08441F07FF38 +:105C7000FE5EFE5714100391041000950430039546 +:105C8000966F4020A008441FC0FFFE5EFE57141010 +:105C900003950410002B9688EA849228EA33FE5775 +:105CA00014100396DD9EFC4044742C1484CFB52759 +:105CB0004094980210900000B4079208FE36AE0897 +:105CC000B4278401922CFE46AE50EA3E44242C1C9C +:105CD000B421FF8EAF98B4229232FE46AE60B42259 +:105CE0009233FE46AE68B4229236FE0EF108AE083C +:105CF000FCC0FC418121F3815A08FF055A18FF447A +:105D0000FCC15A08FE3E5A18FE3C44342C149686B8 +:105D100040013008B443441FEFFFFE8EFE87B643B8 +:105D200084418062EA3EEA5280E480C5DD40F001B1 +:105D3000EAA3440424148421EB2344242C1C97C696 +:105D40004043C808B4E2EB2DFFC6FFE7B6E29786F2 +:105D5000B40240534C08466FFF7FEA9BFF86FFAFBB +:105D6000B6C2000F8028B4629606EADF460FFBFF3A +:105D7000DD41FE1EFE0FB602EA92EA9FD508EAA3B5 +:105D80005A90FF048009EB01EA52EA3E84418062A6 +:105D9000DD40FCC1FC00B460EACDB660B42144042F +:105DA0002C0844342C34B620B403A6509210964FDD +:105DB000540000FCFE0FB443DD44EA20DD41FE1632 +:105DC000FE0F8441B603EA3F8062EA30DD40844141 +:105DD00080624404280844142408DD408441DD49DD +:105DE000DD4C8062DD40FC80FC0080C0EA5FEACDD3 +:105DF000B400EA32B606EA6EFC80FC00EABA8441DE +:105E0000B6018062EA30EA3FDD40FC80FC4080E180 +:105E100080C28120EA5FEA30B400EA32B609440465 +:105E20002808B400EA32B607DD49B400EA3292101D +:105E3000960FAE30EA6EFCC0FC40467000822E9792 +:105E4000F296B4C7A49042102473882292CAEA231F +:105E500040632808FF8FB6C7A039F1089210962F2B +:105E6000AE20A0399216962FAE18A039962FAE0804 +:105E7000A03954000FC09206AE28FCC0443620045E +:105E8000EAC3B443DD43FE5646200A30FE57B6232C +:105E9000441480808468B4418E0158210800B641C2 +:105EA000442480019600AED0B481443FEFFFFEE66B +:105EB000B661FA60AED0B461E60358318200B661D3 +:105EC0008462AED0B46158318100B6618461AED0D5 +:105ED000B481443FFBFFFEE6B6618424AE50441615 +:105EE0002000B44146180000E80644307320380111 +:105EF0008202D50280018C23FE0E8E27FE56FE47BD +:105F0000440620004426200CB620B422EA2050008B +:105F10000EFFFE0E46100400FE0FB602DD9EFC00D2 +:105F200044148000B401920B9606C004EA4B8448E6 +:105F3000AE80B401920C9606C004EA4BFA20AE4043 +:105F4000EAD5B40092099606C00EEB43C00349009F +:105F50000D5DEA4B8422AE408401EA6C8402EA6C57 +:105F600049000D7844148000B40192089606C004DC +:105F7000EA4B8441AE80B401920A9606C004EA4B13 +:105F80008424AE40FC80442620049606EA7AB4625B +:105F9000EA6FDD41FE1EFE0FB602DD9EC804440717 +:105FA0002014D50344072018B400EA41920CDD9E6A +:105FB000C8044407200CD5125A08010544072010D4 +:105FC000D50D5A080205440720A0D5085A08030534 +:105FD000440720A4D503440720A8B400EA41920C4A +:105FE000DD9E44272014EA41EAB7B4029214EA285D +:105FF000FE0FB602DD9E44272018EA41EAB7B4023C +:106000009214EA28FE0FB602DD9E4427201CEA3DCA +:10601000B422922CEA80FE47B622DD9E442720203F +:10602000EA3DB422922CEA80FE47B622DD9E442748 +:106030002034EA3DB422922CEA80FE47B622DD9E4F +:106040004427200CEA41EAB7B4029214EA28FE0F72 +:10605000B602DD9E44272010EA41EAB7B40292144A +:10606000EA28FE0FB602DD9E4427201CEA3DDD44EF +:10607000B462EAD7DD41FE1EFE0FB602DD9E442764 +:106080002020EA3DDD44B462EAD7DD41FE1EFE0F6A +:10609000B602DD9E442720548430B462961FFE5E13 +:1060A000FE0FB602DD9E44272054961FB462DD5CCD +:1060B000EAF9FE1EFE0FB602DD9E44272058961F09 +:1060C000DD44B462EB20DD41FE1EFE0FB602DD9E14 +:1060D000440400A0B4009600DD9E443480909606EF +:1060E000B483843D9481FE66FE57DD42B6230431BD +:1060F0000015843EFE5EFE0F1401001584003E076D +:10610000F93FEB0E8422AE40DD9E44140018B441EA +:10611000C804EB2DFE16D503EAF7FE17B6014414AA +:106120005010B4019208EA47B60144147000EA2AFC +:10613000B441FE16B601DD9EDD9E44048010FA20B7 +:10614000AE40DD9E440480088424AE40DD9E4404BD +:1061500080098424AE40DD9EDD9EFC004404588C02 +:10616000EAC5B420EA6044310000FE56FE5FB62066 +:106170004414550CB481FEA6FE9FB6418441806252 +:10618000DD40FC80FC004404080C46200F00B420D5 +:10619000EA82FE57B6204414040CB461FE9FB64157 +:1061A00084418062DD4044140108B401EA67B6010D +:1061B00044142C30460FFEFFB441DD41FE168441ED +:1061C000B60180624404283044142430DD400403C6 +:1061D0000399844158000040EAB4040303998062A3 +:1061E00058004000EAB404130399460EFFFFDD4156 +:1061F000FE0EEAB404130399460BFFFFDD41FE0EC9 +:10620000EAB45013066450030A64DD400413029696 +:10621000440FE0FFFE4658108F001413029604133B +:1062200001968441FE0E58000F001403019650138E +:10623000065850030A588062DD40FC804434808850 +:10624000EA7A40206408B483FE8F461FCFFF4600E1 +:106250003000DD43FE86FE6640010404B603DD9E89 +:10626000DD9E46100081040080349210DD4E5800FF +:10627000333314008034DD9E4610008104008036E4 +:106280009210DD4E5800333314008036DD9E4414E6 +:10629000500CB401DD4AB601DD9E44240090EA3D75 +:1062A000B422922CEA80FE47B622DD9EFC00440414 +:1062B0002C04441BFFFFB440FE56B620B440EA4411 +:1062C000FE57B620B440461FFBFFDD43FE56B62006 +:1062D000B44046100800FE578441B6208062440452 +:1062E000280444142404DD4044142C0C460FFEFF03 +:1062F000B441DD41FE168441B60180624404280C9D +:106300004414240CDD40EABA440FF3FFB441FE16F6 +:1063100058000400B601B401844158001000B601D1 +:106320008062EA30EA3FDD40FC80FC4044142C1CD3 +:1063300084C1B441463FFEFF4070180250318FFFC8 +:106340004003D008FE9EFE87B64180668046EA9FE5 +:10635000EA92DD4044242C20EA99B462947CFE1E2B +:10636000FE0FB60280668046440428204414242090 +:10637000DD4044142C0C467E0FFFB40150738FFF98 +:10638000FE3E4691100040002404B601804680661F +:106390004404280C4414240CDD4044042C2C804676 +:1063A000B4208066FFCE4093A404B7204414242C6C +:1063B0004404282CDD40FCC046200083960604518E +:1063C00000C0443FFF7F9507FEEEFEE7143100C09A +:1063D000044100E5847BFEE69402FE1F140100E503 +:1063E0004010A408043100E25400FE00441F80FF66 +:1063F000FE5EFE47141100E2DD9EFC0080C08400BA +:1064000080204023000D9686C2038C2196498C0182 +:106410005A0820F9840149FFFFD14600008083809B +:10642000BEC7BEC8BECABECBFC80B440EA44EAEBDD +:10643000A001EAF5DD9E44242C14B442B640440485 +:106440002C1CB400B601DD9EFC2180C1EA2F80E047 +:1064500004008397443FFF7F8441FEC61430839736 +:1064600050008A5C80625010865CDD408401EA3A0C +:1064700046000083462F3FFF041000EEEA60FE8EC8 +:10648000142000EE5A78FF045A60FF0B8441B65F77 +:10649000800780268465848080A2EB3ED50A840430 +:1064A000EAA38400EB018441EA52EA3E8062DD40C7 +:1064B00084018420EB0AFCA1FC01F08149FFFB7FF1 +:1064C000F1018402EA82DD4B844150030A445013F7 +:1064D00006448062DD40844150030A545013065440 +:1064E0008062DD40844150030A5850130658806290 +:1064F000DD40844150030A5C5013065C8062DD403D +:10650000844150030A60501306608062DD4084417C +:1065100050030A64501306648062DD40FC815A18FF +:10652000010DEB3F96060441801740202008EA2B1E +:10653000FE26FE1714018017DD42841EA0D6964663 +:10654000FE1EFE47A856DD9EB440EA44EAEBA001D9 +:10655000EAF5DD9EFC0044242C14B60244042C1CF5 +:106560008441B6208062EA52EA3EDD408441EA9FDF +:10657000EA928062DD40FC80FC0044045508441F20 +:10658000E7FFB440FE56B620B440441F9FFFFE56BE +:10659000B6208421EB23FC80FC004404588CEA8262 +:1065A000B420542080FEB4209228EA33FE57B6204F +:1065B0004414550CB441543100FEB441924840217A +:1065C0002008FE9FB64184418062DD4051C30E48E1 +:1065D000B913EA81DD41FE0EB893B91346004000BD +:1065E000FE0F8441B8935013069450030A948062BE +:1065F000DD40B43C440FFFDFFE0EB61CB43C440F3C +:10660000FFBFFE0E8441B61C5013064850030A48D3 +:106610008062DD40FC80FC2044642C3480E0B406C1 +:106620009210DD4E5A78014044108000FE0FB606ED +:10663000DD4CDD4980478067DD40B426B4069230EA +:10664000966F581080C04040C008EAC3DD43FE4644 +:10665000FE67B626DD49DD4C80478067DD40EA2FC6 +:10666000EA70EA5DFE16EA67EA74EA5DEA6DDD410A +:10667000FE16EAB3FE17EA7404208296440F9FFFC9 +:10668000FE86582120001420829604208196FE1652 +:106690005800400014008196804750008A585010DE +:1066A0008658D53984418062B606DD4CDD49DD402F +:1066B000B426460003F0B446FE46EA20DD41FE164D +:1066C000FE0F8441B606DD4CDD498062DD40EA2FD5 +:1066D000EA70EA5DFE16EA9DEA74EA5DEA6DDD4164 +:1066E000FE1646201000FE17EA7404208296440F1E +:1066F0009FFFFE8658212000142082960420819658 +:10670000FE165800200014008196844150008A58DB +:10671000501086588062DD40FCA0FC004404501CF0 +:106720008422B6204414503C844FB4019211EA8371 +:10673000B60144145020B401921240004808580099 +:106740000780B60144145034B4019211EA83B601B3 +:1067500044145038B4019211EA83B601440458E459 +:1067600044145564B640B64184418062DD40FC80EB +:10677000C843FC004633FFFF8040440459005031B9 +:106780008FF8B660440459044443FFFFB6804404C4 +:106790005908441458ECB64044045580B66044048B +:1067A0005584B68044045588B640440458F4B66015 +:1067B000440458F8B680440458FCB6404404557468 +:1067C000B66044045578B6804404557CB640440411 +:1067D00058E8B660B681441458F0B6414414556880 +:1067E000B6614434556CB68344345570B64384491D +:1067F0008062DD40FC805A08026A4404589C4612BC +:10680000DB6D50108768B620440458A04422DB6D2D +:10681000443458A4B6408400B6034434551CB6230F +:1068200044345520B64344345524B6034434589078 +:10683000B62344345894B64344345898B603443489 +:106840005510B62344145514443458D0B64144145A +:106850005518442458CCB6014611B6DB501086D8E2 +:10686000B6224421B6DBB643443458D4B60344348C +:10687000554CB62344345550B64344345554B603AE +:10688000443458C0B623443458C4B643443458C87A +:10689000B60344345540B62344345544B6434434D7 +:1068A0005548B603443458D8B623443458DCB6436C +:1068B000443458E0B60344345558B6234414555C68 +:1068C000B64144145560B601DD9E5A08031C4414B9 +:1068D000589C4603FFFF50000FF8B601441458A01F +:1068E0004423FFFF443458A4B6418420B6234434E3 +:1068F000551CB60344045520B64044045524B62024 +:10690000DD9EDD9EFC004444590C8441B424FE16F7 +:1069100094C5440FFFDFFE46FE5FB6244414558C39 +:10692000B4A1FE2EFEC7B661B464440FFFBFFEC61D +:10693000B664B461FE1EB60180628004DD40FC8056 +:1069400046200080960F043100A49445440FFF9F19 +:10695000FE1EFE0F140100A4DD9E44240084960652 +:10696000B462DD44EA2AFE1EFE0FB602DD9E442418 +:1069700000849606B46240104408440DFFFFFE1EDA +:10698000FE0FB602DD9E442400849606EA7AB462C5 +:10699000EA6FDD41FE1EFE0FB602DD9EFC00EA43FB +:1069A000B402B4629210540000CF58000020DD44BD +:1069B000EA20DD41FE1EFE0FB6028441DD49DD4CBA +:1069C0008062DD40FC80443480889481B483FE176B +:1069D000843C54200003FE6640010404B603DD9E9F +:1069E000FC00440400184618048FB44050108CFE7C +:1069F000FE564626E86050210301FE57443400103D +:106A0000B620B423442098789230DD52FE57B62346 +:106A1000B440461FFEFFDD43FE56B620B440EAD028 +:106A2000FE57B6208400802049FFFB71FC8044475C +:106A30002044FE0CB4A4DD47463FC00FDD445001A6 +:106A40008FFFFE2EFE0F4417204CB604B401EA66F9 +:106A5000FEC646003FF0FE8658318240FED74427EE +:106A60002004B661B422EA20DD41FE0E46100390F8 +:106A7000FE0FB60246200080EB200411007050008B +:106A800000FFFE0E44120800FE0F140100704600C5 +:106A9000009150300044B42358108010B623A09ABF +:106AA00044140000FE57A85ADD9E46400091DD5276 +:106AB000FE0F4031C0080452001CFE9F1402001C4F +:106AC0000402001D1422001D222F800A221F8008AC +:106AD000EA66FE8F46103FF0501083FF040200204C +:106AE000FE8E461FC00F50108C00FE0EFE171402C3 +:106AF0000020DD9E46300091848314418022A81935 +:106B0000440001F4A81A0401800AEA33920AEA4D0B +:106B1000DD4A1401800A0401800BEA66920AEA4DFC +:106B20005800021C1401800B0451800E464003F3F0 +:106B3000460FFC0CFE8F50420F00500000FFFE2E4F +:106B4000FEA6401100041411800E040180125800AA +:106B500030201401801204118013440EE787FE0ECA +:106B600044110848FE0F14018013B423EA8FFE0F6E +:106B7000B603DD9E4600009150300044B423581007 +:106B80008001B623B443843EFE56B623DD9E4620E4 +:106B90000091962FA0539226944EFE47A853DD9E57 +:106BA000462000919606043100119441841DFE1E7A +:106BB000FE0FEAE8DD9E44048008B40092029606C7 +:106BC000DD9E462000919627A0549225944DFE47C5 +:106BD000A854DD9E44173010B4019606C0FE441739 +:106BE0003010B401920396065A0001FDDD9E84A088 +:106BF000D004EADE8CA1D5FDDD9E44273010B422FE +:106C0000922196465A1001FDFC00EB1EB60184024B +:106C1000EB08EAC4FC80FC004611FFFF50108F0017 +:106C2000FE0FEA8BFC80FC004611FFFFFE0FEA8B93 +:106C3000FC80FC004601FFFF500002BBEA8BFC8099 +:106C400044273010B422922196465A1001FDFC00D0 +:106C5000EB1EB6018402EB08FC80FC004661FFF9E4 +:106C600050030527EAB850030487EAB8EAC4FC8059 +:106C7000FC004661FFF950030500EAB85003040028 +:106C8000EAB8EAC4FC80FC4180E180C283838104CD +:106C90008145F0816493040244118000641304036D +:106CA00049FFFFDDF0015A00FF03EAB541CE20089D +:106CB000408E200440634008406418044003E0080C +:106CC000FE37EA8B5AA80104840FEAB549FFFFD2C8 +:106CD00064930403FCC1FC018461F081FA2F8402F7 +:106CE0004420003FF40180A3DD4DFC814427301097 +:106CF000B422922196465A1001FDFC20EB1E4460FE +:106D00001000B60144748008B40792119606C00CB6 +:106D1000EA958422AE402E07F94CC00E84003E074F +:106D2000F94CEA56FCA02E07F94CC8F384018EC139 +:106D3000EB08CEEBD5EE44073014B4009210960069 +:106D4000FCA0FC21F0816473040244018000640310 +:106D50000403406120084602F000DD52FF87FF8FE8 +:106D600049FFFF7DF001EAB5800649FFFFC1F081D0 +:106D7000840FEAB549FFFF7E64730403F001FCA1B0 +:106D8000FC004410003F84418402DD57FC8044171E +:106D90003008B40192059405DD4AB601EA958424D1 +:106DA000AE408422AE4044148088EAF7B441FE1716 +:106DB000B601DD9EFC00EA5A84618400808080A3D5 +:106DC000FA2FFA41DD4DDD55EA228400846180808E +:106DD000FA2FFA5980A3DD4DFA04EA22FC80FC0068 +:106DE000EA5A84618400808080A3FA2FFA58DD4D2E +:106DF000FA04EA22840084618080FA2FFA4080A39A +:106E0000DD4DDD55EA22FC8044073004843EB44069 +:106E1000FE56B620B42058108001B620DD9EFC003E +:106E200044342C208441FE16B483EAEDEA81DD412E +:106E3000FE26FE0FB603B423EA6FDD41FE0EB60355 +:106E400044142420440428208062DD40FC803C0F50 +:106E5000FE54DD9EC907EB3A843EB4629606FE5EA0 +:106E6000D5095A18010AEB3A9606B4629441841D7A +:106E7000FE1EFE0FB602DD9EC903EAD3D5055A18E1 +:106E8000010C44250010961FDD44B462EB20DD4167 +:106E9000FE1EFE0FB602DD9EC908442480809606C1 +:106EA000EA7AB462EA6FD5095A18010C442480804A +:106EB0009606EAEDB462EA81DD41FE1EFE0FB602DF +:106EC000DD9EFC0044600064CA064420FA00425083 +:106ED0000824D5114420FFFFDA0D445003E8404256 +:106EE0001497425010244063040C406298D79631A6 +:106EF000D507FF444003040C400280169601C003EE +:106F00008E019601CB0444250004D5055A380109A9 +:106F100044250014B4229230DD52FE0FB602FC80EC +:106F2000C80C44050008B42058108004B620B420D2 +:106F300096465A1001FEDD9E5A08010C44050018C1 +:106F4000B42058108004B620B42096465A1001FE92 +:106F5000DD9EC80EEA498421AE4044050008B420F5 +:106F600058108002B620B4209646C1FEDD9E5A0815 +:106F7000010EEA498422AE4044050018B42058109E +:106F80008002B620B4209646C1FEDD9EC903EAD336 +:106F9000D5055A18010A44250010B462843E9606AD +:106FA000FE5EFE0FB602DD9E8421C0045A08010574 +:106FB0008422EA49AE40DD9E44048000B400921869 +:106FC0009606C00DFC00EA498421AE40EA253C0D3E +:106FD000FE54C0043C0DFE54DD20FC80DD9E4404C4 +:106FE0008000B40092199606C007FC00EA4984228A +:106FF000AE40EA25FC80DD9E46200081843E0431BF +:1070000000149606FE5EFE0F14010014DD9E46205D +:107010000081843EA0D59606FE5EFE0FA815DD9E7B +:1070200046000081A0059606DD9E441470085A08AB +:107030000108B4019210DD4E58007823D504B40144 +:107040009210DD4EB601DD9E44245014843EB4629D +:107050009606FE5EFE0FB602DD9E44051000B400EB +:1070600092089617DD9E44251004B4229230DD521A +:10707000FE0FB602DD9E4415100CB401EA9DB60168 +:10708000DD9E4415100CB401DD4AB60144151018FC +:10709000B40196005A005AFEDD9EFC404400012CCB +:1070A000EA244475100C449FFF988400AE38FA1807 +:1070B00010938000EA24440510184465100CB400B5 +:1070C00096005A00A5F4B426841EFE0EB606FCC037 +:1070D0004E0700198E0140100409FE0F40100809E8 +:1070E000FE0F40101009FE0F40102009FE0F401047 +:1070F0004009FE478C2184009221C1038C01D5FDFB +:10710000DD9E8400DD9EFC4D4400732C50FF8018F2 +:1071100080C0802F3A231404EA57814683813A25A0 +:107120001404449073543A2E142480893A250C0098 +:1071300080BF3A2E0C203A220C043A228C2445E2DD +:10714000079CA5E03A27940481FE811FEA4ADD5A94 +:10715000802FEA573A2E0C003A208C2044120790D8 +:107160003A240C04EAE7ADC8B050DD5E8001EA3590 +:1071700081003A2314043A241424B1833A250C00E4 +:1071800080863A240C203A248C04449203803A22CC +:107190000C24DD5A8029EA57DD5E8001EA353A2465 +:1071A0000C00EB3C440203743A230C043A200C24F8 +:1071B000ADC0FCCDFC494400736050AF801C810120 +:1071C000802AFD313A200C04EAE7A400FA40AC081A +:1071D000509F80388420B00ADD5B80098420FA400B +:1071E000DD5B5A68010385005A78020558130001D7 +:1071F000D50280262E07F98D84445A00010384406D +:1072000084E09C318387443203609D09F08184A12E +:107210009638B61F38051C00F585F3843861800068 +:10722000F0018AC297B18CC1FFA497B1406300D628 +:107230008006F283F48249FFFF4D8C08F402F203CA +:10724000F304F505C60541C2800C41CE1B97B43F3F +:1072500084C3406098D738149A028A0840F0A8087E +:107260009404880F38049A0AB00AB04A38001A0207 +:107270008CE1EA4D881C38009A0A5A780ACB8001C2 +:1072800044200044802949FFED14FCC980808440DB +:107290009AE096D8E261E80808320001E2624031E3 +:1072A0003C1B8043D5F69C119600DD9EFC4051FFAF +:1072B000FBE044200400812080E1B0088420DD5BF5 +:1072C000B1814410736080063A208C043A200C246B +:1072D000A448FA40AC408420B004DD5B84204E9387 +:1072E0000008842A4402036049FFFFD280208460A2 +:1072F000852344A2079C4402079039E30C009718A9 +:10730000402F08084042249741C1280040822008AD +:10731000B088890284409750E2A1E80FB4BC38528B +:10732000890154F283FF38540A024052A80888AFFA +:1073300038540A0A8C41D5F0382078008C618A478D +:10734000545103FFB0843821120240212808884597 +:10735000B1443822920A5A380AD2B0084420004474 +:1073600049FFECF5B0044410004449FFED2851FFFB +:107370008420FCC0FC412E6664CE41C304092E86E5 +:1073800064CFEB2C80E0EA599471F181842080A1D4 +:107390004C540028F2018460990A99B940A39000E6 +:1073A000409010008043882054F100FF40F7F00621 +:1073B0008E62E81338F3091139E50C1139E3090934 +:1073C00038F50C0938F0891139E48C1139E0890954 +:1073D00038F48C098C41D5E98CA197688024D5D9E3 +:1073E000FCC1460000808420141000DDDD9EFC42BC +:1073F000852080C0800380E1F481149F8003EAA986 +:10740000F083F00149FFF5D6F1038069F1834492DE +:1074100000E4FB4284A096A9991397215221001100 +:10742000381490004220A8739691C60A048F8003F6 +:1074300038100901388409018A2838131109C70650 +:10744000F10338108911381391098CA15A5812E5AB +:107450008C7296D95A3A40E0FCC2FC4184C081202B +:10746000800280E1F681EAA9F081F0018046F08196 +:107470009651E227E808F00138000911380489091B +:107480008C41D5F7FCC1FC4184C080E18120F681AC +:10749000EB2AEAA9F081F20150210480F2818046B2 +:1074A0009611E207E808F00138000911380489094B +:1074B0008C41D5F7FCC1FC4044A0800040920409F7 +:1074C000C02B2A5100012A8080014074400840529C +:1074D000C0088AA780C942619473405310B680C522 +:1074E0004E540003FFAA90D0CE0F407400134E56A6 +:1074F0000007E2C5525780009769D50284A188A78A +:107500001250FFFFD50688E588EA90F01270FFFF61 +:107510008E019601D5D6FCC02E17F23C880196014B +:1075200054100001C1038C019601DD9EFC403C43D8 +:10753000F9133DE3F9142FC7F23B3CF3F9153C83F3 +:10754000F9163C53F9173C33F9192E07F2362E770A +:10755000F2382E67F2392EA7F2352E27F23A2E97FF +:10756000F234C12D88A88A9E88A388A095268A9C7B +:1075700088A750F7801E879588A650427FCE424745 +:10758000F0735252FF538885892A40550C0088A019 +:10759000886988A7886088A28867505280AD84D6A1 +:1075A0008862424298735231FF5398A3840C402161 +:1075B00000574001041792019600FCC08001FCC0F6 +:1075C000FC04B18380064412034CFA44EA38801F5D +:1075D00044120360844AEA382E07F2403803000060 +:1075E000380F80008C019600FC843E07F98CDD9EEC +:1075F000FC0044620000440204A449FFEE8700132B +:1076000000790023007D0033007C0043007A0053A2 +:10761000007B840149FFEE3C8401EAFE49FFF0D380 +:10762000840049FFF0C549FFF599000300783E0743 +:10763000F98CFC80FC0080C09401EAEE49FFF0A4C4 +:107640008006842049FFF0C8800649FFF0DDFC80F9 +:10765000FC202E17F98C4472032480C03813850156 +:107660008400EA4E2E17F98C840338138501EA4E04 +:107670002E07F98C4472034C842038038000EA53AF +:107680002E07F98C842338038000EA538400802677 +:1076900049FFFFD2CE0644020360802649FFF0C4B2 +:1076A0008006EB13FCA0FC0980C0EB02F086EB1116 +:1076B000F087EB0BF088EADAF089EAE2F08AEB2B4C +:1076C000F08BEB39F08CEAFBF08DEB2EF08EEADBE1 +:1076D000F08FEAFDF090EAC7F091B006EA45801F0E +:1076E000441204ACFA48CE06EA38801FEA48800605 +:1076F000D505EA38801FEA488401EA37800649FF49 +:10770000FFA980064900085BFC892E07F990DD9EE1 +:107710003E07F990DD9E2E07F98FDD9EDD9EFC2051 +:10772000441000AB8441840BDD5780E04410003FDF +:1077300084028441DD5754600001CE0897EEC706ED +:1077400049FFE96A40030006FCA08401FCA0FC009C +:1077500049FFEE36FC80443207ECE222E80838406C +:107760000400384184088C219648D5F8DD9EFC2120 +:107770008400EB07EA3C100F8005440000ECEA901F +:107780002E17F99E5A1801698402EA90000F8005AD +:107790005A0801062E07F99D4E0200BE84014410CE +:1077A00000E68040DD5792049780C60E441000A684 +:1077B000FF8C9C3584CA406018D697B1E6D5E9079E +:1077C0008ED497B1D505446000D4D50284C149FF59 +:1077D000E5B649FFFAD7EB07007F800497C6CF0BC9 +:1077E0002E07F9985A080108EB09DD4A49FFFA7596 +:1077F0003E77F99849FFFAE049FFFFAB840049FF63 +:10780000FBFD8400EAA8840049FFFC1184408461E8 +:107810003C03F93E8427EA2D84008421490013E2C9 +:1078200084018020EA4C840049FFFF748400EA86CA +:107830008400EA508400EACEEAF88006EA2284C096 +:10784000EA3CC8698401EA228CC1020F800397B127 +:10785000E206E8F7D55D2E17F99E5A18025DEA9008 +:10786000000F8005C8042E07F99DC05584014410FF +:1078700000E68040DD57961FC00D441000A68C0521 +:10788000FE0C8C05842A4000041650007FB296013D +:10789000EA9049FFE55349FFF74249FFFA73EB07C6 +:1078A000EB099606C008EB09EAEE49FFFA168401D7 +:1078B0003E07F99849FFFA95840149FFFF2B84029E +:1078C0008020490012E18401EA868400EA508401A4 +:1078D000EACEEAF8844180623C03F9428420EA2D32 +:1078E00084218400EA4C840149FFFB6084018020EC +:1078F000490013788401EAA884C0EA3CC00C8401E2 +:10790000EA228CC1020F800397B1E206E8F78401F6 +:107910003E07FFBEFCA1FC0544020D648460848127 +:10792000B61F44000090F088F481F382F383F4845E +:10793000F385F386F387F38984028425442620089F +:1079400080A349FFE8FDFC85FC0549FFE8E7440604 +:1079500020048460446207EDB61F4410057784015B +:10796000F081F082F18880468080F383F384F38590 +:10797000F386F387F389842480A349FFE8E18046F6 +:107980004400007918017FFF440FFF84AE12841970 +:10799000AE13FC85443620042E27F9B4B4234442A8 +:1079A00007EC9228EA33FE578440B623802296D112 +:1079B000E260E806383208008C418823D5F9FC00E3 +:1079C000442207ECFE4A9648381100088C019601C3 +:1079D00049FFEB778401EA6CFC80FC00EA8DDD4610 +:1079E00097B08420CE108026DD5D3C6FFE65EAB93D +:1079F0005CF00064E806EAB98C013C0FFE65D5F83E +:107A0000DD468421DD5DFC80FC00EA8DDD4697B01B +:107A10008421CE0FDD5D3C6FFE65EAB95CF0006449 +:107A2000E806EAB98C013C0FFE65D5F8DD468420F6 +:107A3000DD5DFC80FC0049FFEB65C009EB43C0063F +:107A400049FFEB025C000001D50284019600FC8036 +:107A5000FC002E67FF2C97B04E6201BD84013E00F2 +:107A600008E15A682009440205B88420844EDD5696 +:107A7000840EEA275A6821293C1DFDE83E17F77558 +:107A80004000A0093E07F7764000C0093E07F7779F +:107A90004000E0093C1DCC6A3E07F7784000A00991 +:107AA0003E07F77A4000C0093E07F77B4000E00937 +:107AB0003E17F7793E07F77C8420440205AC8449E1 +:107AC000DD568409EA275A682205440205A8D5052F +:107AD0005A682309440205A484208444DD568404A2 +:107AE000EA275A6824094402059C84208445DD560F +:107AF0008405EA275A682809440205888420FA4147 +:107B0000DD56FA01EA275A682909440205808420D3 +:107B10008446DD568406EA275A682E09440204C8C2 +:107B20008420FA44DD56FA04EA275A682F0B4402EF +:107B30000520842044200060DD5644000060EA27D0 +:107B40005A6837094402051C84208442DD564800E7 +:107B500001285A686214DD549600C00E2E67FF2D6E +:107B600097B05A6801058006EAF1EB3BDD549600B8 +:107B70005A000203EA77EAF1EA765A68D10C846186 +:107B8000DD54FA2F2E27FF2E80A32E47FF2FDD4D29 +:107B9000EA765A68D20C440FFFD2EB24DD548441BC +:107BA0002E17FF2EDD57480000FB5A68F3082E07FA +:107BB000F68C9600EB248401EA275A680115DD54FF +:107BC0005A001B03EA772E07FF2E9600C8043E07D3 +:107BD000F98EEB3B2E07FF2E5A000103EA773E6732 +:107BE000F98EEB3B5A680F24DD5496005A080108C1 +:107BF0003E67F9B4EB28EA3C480000C9DD545A005E +:107C00000203EA772E07FF2F96003E07F99EDD5507 +:107C1000DD5149FFFDAE2E07FFBE5A080106840064 +:107C20003E07FFBEEA76EAD1DD51EA765A68611F67 +:107C30002E17FF2D9648C903DD46D506DD545A0898 +:107C40000106DD468421DD5DEA76DD545A0002033B +:107C5000EA772E17FF2E8405FE0CC802EAA73C0B1C +:107C6000FCCDDD55DD518408D55E5A689906840146 +:107C70003E07F99CD5595A60F1044800007E840003 +:107C800044320D64442207D89843A64896483811D8 +:107C900000088C015A080FFADD542E57FF2E96006B +:107CA0009668405020085A0010115A001D0F5A00C3 +:107CB000080D5A00010B9E84E642E90750007FCE72 +:107CC000E603E903FF4FD502976944001D00D03653 +:107CD0005CF29D01E81444000400D0225CF28401AF +:107CE000E8075A590022DD55DD518401D51C4400B6 +:107CF0000500D01C44000800D01DD51644003200F9 +:107D0000D0215CF2B201E80544003000D023D50C4C +:107D100044003300D01B44003A00D023D505DD5584 +:107D2000DD518402EA4684C1D548DD55DD51840326 +:107D3000D5FADD55DD518404D5F6DD55DD518405D8 +:107D4000D5F2DD55DD518406D5EEDD55DD518407D4 +:107D5000D5EA440204F48420FA58DD56FA18D521F5 +:107D6000440204DC8420FA48DD5649FFFC2B3E0720 +:107D7000F9C2FA08D5165A68F70EDD5496005A086B +:107D8000021C8437EB38EB2884003E07F9B68403E5 +:107D9000D5085A68FD12841DEB248401EB28840267 +:107DA00049FFFDFA84C149FFE98884003E67F9353F +:107DB0003E07FF2CFC8084C049FFFE3EC8F74426E6 +:107DC00020042E17F9B4B4029208EA47FE0FB60257 +:107DD000D5EDFC80FC0049FFE991FC80FC00EA59EC +:107DE0008432EB382E1008E0442207EC5A180107C1 +:107DF0008434EB3884203E1008E084A044300480B2 +:107E000080802A1000019DA99028964838111808F2 +:107E10008CA2A66038111408DBF44400048149FFE9 +:107E2000FDBBFC80FC002E07F68C5A085204EAD1F8 +:107E3000DD512E07FFBC5A0801078400EA464900BD +:107E400007F3FC805A0802078400EA464900092625 +:107E5000FC809E43E622E8068400EA4649000B19AE +:107E6000FC805A0805078400EA4649000BFBFC80A9 +:107E70009E46E622E8068400EA4649000E02FC809F +:107E80005A0808088400EA463C03FCCD49000F2448 +:107E9000FC80FC00C0085A08020D44021C3044104B +:107EA000736CD50544021C3044107384FA48EA38D8 +:107EB000FC80FC008401842184C03E07F68D840090 +:107EC0003E67FFBD49FFFFE784003E67F98E3C0B2C +:107ED000FCD849FFFD3B840049FFEFD249FFFD1D5F +:107EE000FC80FC4051FFFB1050AF80308420FA50E2 +:107EF000800ADD5B8420EABFB01CDD5BB1D4441096 +:107F0000739C8007DD5AEA35EABEEAD9440073BCA7 +:107F1000509F8020EA5E440073CCB1853A249420BF +:107F2000EB2184003A231020EA3A84003813000041 +:107F30009689C2085A20030738250602CA03381555 +:107F4000060A8C015A080CF446301C704640082082 +:107F500084C0503181C750420082448001C038152E +:107F60001A02C12838249901840041C104099E895C +:107F70005C2100029741E2BCE80D5A180406B15C8E +:107F80003842820AD505C204B15C3832820A8C01BB +:107F9000D5F238139A01F483F382F181EAC9F10131 +:107FA000421020739649B01C805C49FFE3C7F4037C +:107FB000F3028CC15A6808D58401EA3A51FF84F073 +:107FC000FCC0FC0084C03E67F94449FFE7FB3E6704 +:107FD000F943FC80FC29441073D8B1868006DD5A31 +:107FE000EA35DD5AEA35EABEEB2280FFEAD9DD5AEE +:107FF0003A239424801FEA633A238C20EA488006BF +:10800000EA45FCA95EF02172CA18E8055EF01E8FF1 +:10801000E833D50A5EF03F47E9048441AE988441D5 +:1080200050006172D5225EF000BAE8048441AE9837 +:10803000844150005E8ED519E8055EF01E8FE81B66 +:10804000D50B5EF03F478440E9048441AE988441FB +:1080500052001E8ED50A5EF000BA8440E8048441C6 +:10806000AE98844152002172443002E440000C1664 +:108070009602D50384408002543080209667C30264 +:10808000FE4A964A5A2801088444402008568840EF +:108090009811D502880196425EF0FFE1E90B5EF08F +:1080A00080208001E903FA0FD50A964A4E14000891 +:1080B000D503441FFFE1FE0A580000209600DD9E14 +:1080C000FC4051FFFAA8F38CF18AF28BF08349FF50 +:1080D000E77DF0888420FA50B01EDD5B8420EABF83 +:1080E000B036DD5B4400739CB066DD5EEA57EA5E45 +:1080F000B1AE440074203A2094208026DD5EEA5719 +:10810000EA5E3A209420441073BCB01AEABE4410D0 +:108110007440EAD9B015EA63EB3C440073CC50AF2D +:10812000805CEB213A25102085203885240040040E +:108130000013C0105A00030FB01E38002202C80AF4 +:1081400038732202EB2AEAA995F9B05E8807380055 +:10815000A20A8D215A980CEBF00384268C02FE0CA7 +:108160008C04F086F2064400003F4020080CFE9389 +:10817000F28FF20384C0FE544000040CFE03F1872A +:10818000F092B01E38001A02F0844E020086B0153C +:10819000509F80D838001800F089B02638701A0136 +:1081A000EAC9441001C042700473B01A96793820AD +:1081B00019018009924149FFE2A7F00984E0940186 +:1081C000F085020F800AF08DF005E0E0E855943D5F +:1081D000F08EF00541C380138A078E019405960145 +:1081E000F091F0098540E2E014FF8013F013C01B0A +:1081F000F00EF206880A40800013F00F3814A20235 +:10820000F30AFE0EF090F0044010880DF20C3800D6 +:108210007111966FB65FF40BF208F50349FFFEF497 +:10822000F106D51AF011F207880A40800013F01207 +:108230003814A202F30AFE0EF090F0044010880DEC +:10824000F20C38007111966FB65FF40BF208F5036B +:1082500049FFFEDAF1074000040CF1108D41FE0FDA +:108260003804A20AF00D881C41C000135AA820C08F +:108270008CE197F8D5AAB02638701A01EAC94410E3 +:1082800001C042700473B01A967938201901B036D3 +:10829000924149FFE2538CC15A60080448FFFF73C2 +:1082A00051FF8558FCC0FC004402940049FFEE9B3E +:1082B00044029A0049FFEEA14402820049FFEEC247 +:1082C0004402880049FFEEC8840049FFEEA0EAB6E8 +:1082D000EB16EAB649FFEEA4840049FFEEC7EAB602 +:1082E00049FFEECFFC80FC05EB22B00480C0DD5AD4 +:1082F000EB40EA633A230C2044107448B181808635 +:108300003A208C043A220C24A448AC60EA48800647 +:1083100049FFE8CBFC85FC264410745480DFDD5A0D +:10832000EB40DD5AEB40EABE801F80E63A23142082 +:10833000EA45FCA6FC09EB02B181F086EB11441082 +:108340007484F087EB0BDD5AF088EADAF089EAE210 +:10835000F08AEB2BF08BEB39F08CEAFBF08DEB2EF7 +:10836000F08EEADBF08FEAFDF090EAC7F09180062C +:10837000EA35B421B620B006EA45800649FFE85C3C +:10838000FC89FC0144107498801FEA633A2F8C200A +:1083900049FFE85CFC81FC00840949FFEE7D840311 +:1083A00049FFEE83FC80FC00EA25C81749FFE21C68 +:1083B000440027AD49FFE2214400277F49FFE2271F +:1083C000440023BB49FFE22D440023E949FFE23288 +:1083D0004400019049FFE237FC80FC00C803840B95 +:1083E000D5045A0805048402EA85FC80FC00C00517 +:1083F0005A0805068402D504840BD50284008C013A +:1084000049FFE22AFC80FC0080C0C0045A00010938 +:10841000FC8049FFF61BEA2CEB138006D51B49FFB5 +:10842000F615EAA749FFE1E03C03F90F49FFE1E552 +:108430003C03F91049FFE1EB3C03F91149FFE1F17D +:108440003C03F91249FFE1F64400019049FFE1FBCA +:108450008400EAABFC80FC008400EB378401EA7303 +:108460008400EB4AFC80FC008401EB378400EA7353 +:108470008400EB4AFC80FC008400EB378400EA7344 +:108480008400EB4AFC80FC005A0002095A00030AEF +:108490005A08010A49FFFFE1FC8049FFFFE6FC8022 +:1084A00049FFFFEBFC80FC00EB2A80603E0008C423 +:1084B00044120DFC4402127C442002402E47FFC1AE +:1084C00049FFF797FC804402127CDD9E44020DFCBC +:1084D000DD9EFC0049FFE565FC80FC008400EA911C +:1084E000FC80FC008401EA91FC80FC00C80449FF88 +:1084F000FFF6D50349FFFFF7840049FFE1D0FC8078 +:10850000FC02C00B5A0002045A080406B0014410D1 +:1085100073CCD5125A080606B001441074A0D50CCD +:108520005A080506B001441074ACD5065A08070B6A +:10853000B001441074B83A2090003A20102049FF4E +:10854000E118FC82FC038420844C80C0801FDD5B2A +:10855000441074C4B0033A2090003A201020CE0397 +:10856000801FD5035A68010449FFE11AFC83EA2CF5 +:10857000DD9E2E07FFC1DD9E2E07FFC0DD9EFC00A5 +:1085800080C049FFE0795A68010B80068420DD4FE6 +:1085900080068422DD4F80068026D50D8402842A41 +:1085A00049FFEA3784018420DD4F84018020DD4FBC +:1085B00084008422DD4FFC80FC2184C2F08180E2B3 +:1085C00080015A10010384C1EA96CF0B8403EA8824 +:1085D000840349FFE6A3F001802649FFF669FCA168 +:1085E0008402EA88F00180268440846249FFF5E431 +:1085F000FCA1FC00840BEA85840084203E07FFC1B7 +:108600003E07FFC08041EA2CEA7CFC80FC0049FF69 +:10861000F6EAEA2CEAA4840BEA85EA2C84202E27C9 +:10862000FFC0EA7C49FFFF19FC80FC21F08180E259 +:10863000800180C3EA965A7801125A6802088006BF +:10864000EA88F00184208047D5068402EA88F00198 +:1086500080278440806649FFF5AFFCA1FC008400C0 +:1086600049FFE4BB446061A949FFED6949FFEA3570 +:10867000C0068EC1C6048401EA24D5F949FFED5F26 +:10868000840149FFE4AAFC80FC01F08149000CADA3 +:10869000F00149FFE0F9FC81FC015A080107F08173 +:1086A000EAE3F001EA93FC818400EA938401EA247E +:1086B00049FFFFD6EAE3FC81FC008401DD4584002C +:1086C000EA982E07F943C8052E07FFBF5A0801FB99 +:1086D0008400DD45FC80FC02B61F8400100F800F73 +:1086E0008400F181EA3A8400EB1584208061EA2C51 +:1086F0008441EACF49FFFFE2501F800FB45FF301CE +:10870000840049FFFCDF8401EB1584208041EA2CC2 +:108710008461EACF49FFFFD2501F800FB45FF3019D +:10872000840149FFFCCF8401EA3A000F800FFC82EC +:10873000FC2949FFF658EA2C842084418462EACF60 +:10874000EB02EB22F086EB11DD5AF087EB0B80FF9A +:10875000F088EADAF089EAE2F08AEB2BF08BEB3969 +:10876000F08CEAFBF08DEB2EF08EEADBF08FEAFD69 +:10877000F090EAC7F091801F84C0EA35EA63EB3CD1 +:108780008404EA37840049FFFC2749FFFBAC8006DC +:10879000842049FFFFA25A0801078CC197B05A688C +:1087A00006F8D502C6FB8400EA378007EA48B0061F +:1087B000EA45FCA9FC00EA4EFC80FC0080C03E07B4 +:1087C000FFC249FFFE948006EB13FC80FC0184008D +:1087D000EA37840049FFFEB8840149FFDFFA8400CC +:1087E00049FFE3C0840049FFE397840049FFE3A405 +:1087F00049FFFD5B49FFFD79EADC49FFFDC449FF04 +:10880000FDCC840649FFF1DFEA398400DD4BEB0F34 +:10881000EA29F081F1018400EA4EEA398401DD4B56 +:10882000EB0FEA29F081F1018401EA4EEA39840371 +:10883000DD4BEB0FEA29F081F1018403EA4E84005D +:108840008020EA4F84018420EA4F84028420EA4F8A +:10885000444200000012008B0022008C0032008D88 +:10886000020200320042008E49FFDEA044000140B7 +:1088700049FFE82B840149FFE836840049FFFF9F48 +:1088800049FFE8213E07FFC2840149FFE01FFC8148 +:1088900046100082EA2BEA5DFE16EA74DD9EFC407B +:1088A0008480446200E4FAE24490200084A096E9C7 +:1088B00040A1900040A50013523180113883280058 +:1088C00042341C7396D994D940800C00886123C42B +:1088D000000022F1800041CE3C014FC4000453CE81 +:1088E000000040A50408894222F5000040F7F00787 +:1088F000E80313C5000022F400005EF7BFC1E806DC +:1089000022F180005EF7BFC1E903129500008CA13F +:108910005A5812CF8C9297215A4A40CAFCC0FC0088 +:108920002E07F943C8092E07FFBF5A000106490068 +:108930000B6EEA72C0F6FC80FC00EAE3EAE9840010 +:10894000EA98FC80FC0049FFF138C80549000B5F3C +:10895000EA72C0FA49FFEBF8FC80FC00DD48446491 +:108960002C00040000293C0E0234B4063C0E0233F5 +:1089700084208401DD4F84018020DD4F8401842226 +:10898000DD4FB4068441580000C0B606EA3FEA3025 +:108990008062DD40FC80FC003C1C0234DD488441E8 +:1089A000EB263C1C0233EACD8062B620EA30EA3F77 +:1089B000DD40FC80DD5FC805FC0049FFFFD0FC8086 +:1089C000DD9E9606C006FC00800149FFF22AFC806D +:1089D000DD9EFC01F08149FFE266F00149FFE27291 +:1089E000F00149FFE284FC81FC01DD593E000E29C3 +:1089F000EA593C0E03872E07F9A73E000E3EEA7F98 +:108A00009606EB142E07F9A8961F3E000E3F2E0780 +:108A1000F9A85400003090043E000E2D2E07F9A94D +:108A2000961F3E000E2F2E07F9A992043E000E302D +:108A3000EB10EB04EA47FE0FEA9784003E000E318C +:108A40003E000E32841F3E000E363E000E373E00C2 +:108A50000E383E000E393E000E3A3E000E3B3E0000 +:108A60000E3CEB2C3C0E038684003C0E03842E103F +:108A70000E292E07F9AA3E000E342E07F9AB3E0050 +:108A80000E355A101D045A18320D8401EB14EA7F7A +:108A900096003E000E3D5A08FF03FA183C0E038470 +:108AA0005A1804278401EB14EB10EB04EA47FE0F7D +:108AB0002E17F9A52E27F9A6EA33FE57E2203C0827 +:108AC00007114000BC1AEA972E07F9AC3C180712B0 +:108AD000961FEA9E2E07F9AD96063E0008D42E0793 +:108AE000F9AD5400000E90013E07F790D50AEB1047 +:108AF000EB04EA47FE0FEA972E07F9A5961FEA9EB8 +:108B0000EA31C8123C500710EA26D803841FD50A60 +:108B100080052E600E27EA29F081F101800649FFC9 +:108B2000F507EA9ED5035A000FF3EA31E602E8089A +:108B300084013E0008E0841FEA9E841FEA97EA7DD4 +:108B40005A0001045A080806EA7F92073E000E28E0 +:108B5000FC81FC00EA8DDD4697B08420CE0A84219A +:108B6000DD5D8026DD46DD5D8401EA22DD4684216F +:108B7000DD5DEAD1DD51FC802E000E3E5400000682 +:108B8000C809FC003E07F99CEA422E07F99CC0FE8A +:108B9000FC80DD9EFC41B61F80C18125007F8028BE +:108BA0005A380F045A4001068400EA558400EA96B8 +:108BB0005A980F045A700F03EB44EA264C60000BDE +:108BC0008026B41FDD4B8006EA29F081F101B41F35 +:108BD000EA36FCC1FC4280E080C1008F803000AFEB +:108BE0008034009F80385A58010780035A300F04A0 +:108BF00049FFE77A5A800F048008EA585AA00F0507 +:108C0000800A49FFDEA63C1007105A900105EA26AB +:108C10004C10003AEA264C1000178007DD4B3C0050 +:108C20000710EA29F081F1018007EA36CF0C3C10E9 +:108C300007108401DD4B3C000710EA29F081F101A7 +:108C40008401EA365A60FF10E6D5E902FAC344A26D +:108C50000324800738151901EA36CF058401381539 +:108C60001901EA365A980110EA3BEB49EA34F081DF +:108C700049FFFC81F08249FFFC81F083F102F001A1 +:108C8000F203EA7CFCC2FC0180C0F181EA342E17B9 +:108C9000F5319EB1E0222E07F528E8039D89D50421 +:108CA000E006E9039D8197B0842044220360385197 +:108CB000040096088CA1DE04F101EA53FC818C21AA +:108CC0005A180AF7FC81FC008440FAA2446200E4CE +:108CD0009B30424114730042001196D04C408007F3 +:108CE0008C415A2820F7EA56FC808003FC80EA3148 +:108CF0005A080F05EA7D5A08320ADD48041000229E +:108D0000EAC03C0E02363C1E0237DD9EEAC8EA2667 +:108D1000D00EFC0144521C74B6BF9E2E9E6D9EACBC +:108D20009EEB9F2A8EA149FFE7C0FC81DD9EFC03DC +:108D3000F085EA315A00FF098420EA6AEA31842387 +:108D4000EA6AEA31D50BEA7D5A08320B84038420A3 +:108D5000EA6A84038020EA6A84038422EA6AEAC811 +:108D6000EA26D00B84412E000E342E100E35B65F4D +:108D70008465848080A2EB3EEB1CF105B61FEA758A +:108D8000EA65F0818400F082804080802E500E2DB4 +:108D900049FFFF22EB1C8442B61FEA75EA65F081A9 +:108DA0002E000E272E500E2DF082F10584038082B6 +:108DB00049FFFF12FC83FC01EA315A080F05EA7DE6 +:108DC0005A08320A3C1C0236DD483C2C02378380AC +:108DD000BAA2B9A3EAC8EA26D0112E600E3C2E0032 +:108DE0000E362E100E372E200E382E300E392E4015 +:108DF0000E3A2E500E3BB6DFEB3EEA753C13F946B9 +:108E0000B61F84008040EA65EB03EB48EB35EA755A +:108E10003C13F948B61FEA65EB03EB488403844230 +:108E2000EB35FC81FC4484E02E67F9A6F786F787D2 +:108E3000107F8015EA71EAF38421DD58EA21EAB057 +:108E4000EA89EAACDD5F97B05A08020F8007EA585A +:108E5000B006B047502F801549FFE7DA5403007081 +:108E6000920449FFE66144742C34EAA1EA5FB40736 +:108E7000EA329210546000C0EA6E2E000E3F5A088B +:108E80000F22B447B407925096AF582100C040312A +:108E90004008EAC5EA60FE86FE9FB6478441DD4988 +:108EA000DD4C8062DD40EA2FEA708381BA2AFE162B +:108EB000EA67B8AABA2AEA6DDD41FE16EAB3FE17E0 +:108EC000B8AAEA56EAC18400120F800B84E05483EA +:108ED00080FF5204001196008520F08255C480FF67 +:108EE000B005502F8016503F8011504F8012505FB8 +:108EF0008013B61F803C800849FFE7A0803C8008B3 +:108F000049FFFEE3005F8012FA628087001F801134 +:108F100042400C735402802094029767FF4754002C +:108F2000802094825400801F401100043CAC0387D1 +:108F3000EA33FE6F38151109F002803CF38349FFD4 +:108F4000FEC4004F8014F303001F8013FE1C543234 +:108F5000002094DA545080209727FF1F956A5430E0 +:108F6000801F8C1140128C048A07EA33FE67381583 +:108F7000010950048001409000135A9820B18CE1FF +:108F80005A7809A749FFF1F8EAA6EA9CDD5884203F +:108F9000EA21DD5F5A08020A8403EA58B006B047A6 +:108FA000502F801549FFE6F8EA87DD5FC802EAE145 +:108FB000EA78EA42EA43B422B4629230966F400300 +:108FC0000404DD44EA20DD41FE1EFE0FB6028441AA +:108FD000DD49DD4C8062DD40FCC4FC41FD31810592 +:108FE0008144B63FF081EB2C8120B43FF00149FF72 +:108FF000EA06B43F8401DD4B8401DD45EA4084008C +:10900000DD4580098027844049FFF2294E830017FF +:10901000FA2280A8806196A9E247E80F40428416B0 +:10902000C804C2038CC297B142030C733824951153 +:10903000382501098CA1D5F0FCC15A88010F95B1E2 +:10904000894684409611E207E807380489113805FB +:1090500009098C41D5F8FCC15A88021F8440FAA244 +:10906000FA1496D1E267E81840411436C907C306DE +:1090700040810096C4038CC1D50640810096CC0483 +:10908000C3038CC797B14213147338348911383530 +:1090900005098C41D5E7FCC1FC4051FFF62884212D +:1090A000DD58EA21EA59F083B049B00849FFE9C523 +:1090B000440074D050AF8028EB34508F803044008F +:1090C00074D880283A250C203A200C04EAE7A40042 +:1090D000B1CFAC08000F8030B1928C01EAD24400CD +:1090E00074E451CF8078EB2184023A23902049FF29 +:1090F000E3D5F086EA71440074F08026DD5EEA571D +:10910000EB344400750881FC3A208C20DD5EEA4A8D +:10911000DD5EEA4AEA5E440075383A27942050FF43 +:109120008060DD5EEA4AEB34440075503A278C20BB +:1091300050FF80A8DD5EEA4ADD5EEA4AEA5E3A2731 +:109140009420F5038441500284801A228001D8FEC5 +:10915000800749FFDB0E8408EA85840949FFE7AFF1 +:10916000840949FFDB79801CEA458006EA488403CC +:10917000EB46840049FFDE88840049FFE74884000D +:10918000EB16EB1C2E100E3049FFDC4C2E07F7902F +:109190005A000712DD42960F8382B938922E964FFD +:1091A000F185BB3840103808440F3FFFFE1EFE0F0C +:1091B000B8B8D5038400F085EA2F84410400839772 +:1091C0008062580000401400839750008A5C501061 +:1091D000865CDD40800A49FFE92A2E000E342E10FD +:1091E0000E3549FFE933842084018041EAB23C0016 +:1091F00007114410FFFF4C0080113C500712D10DA5 +:10920000E2A080C540603C1BE20540503C1B80064C +:1092100080E5EA298140D50744A001004470004060 +:10922000446000C084018026DD4B802A8401EA3638 +:1092300084008422EA53802A8402EA368426840148 +:10924000EA4F800649FFE93A8401EAFE840184205E +:109250002E27F2452E37F24444400030FAA049FF51 +:10926000E0178400842149FFE95CEA31854DF084F0 +:10927000961F5A000F0404AF80048400DD4584016A +:10928000DD4587864095240140FE2407E807EA4033 +:109290008400DD4549FFE034C8098400DD45E13C38 +:1092A000E91A842040257001D50E500E000155C0EA +:1092B00000FF803C8401EA4F8401DD45D5E68C2126 +:1092C0005A100A0A3854040096098CA1DAF996005B +:1092D0008422EA5346A55555EA3B852050A50555FD +:1092E000F00A4084801341C5240CEAAF80268048F0 +:1092F00044300120B13684A0EA54F00A8027EAAF56 +:10930000804844300120EAEA84A0EA545A900104DB +:109310008521D5E7B036EAE5F203EB278540EA3B45 +:1093200045C000FF44000048429500244004880ADC +:1093300040900013F00A408E280C40040002802662 +:109340008049EABCB13684A1EA54F00A802740047F +:1093500000028049EABCEAEA84A18D48EA545AA88E +:1093600020E3B036EAE5F20346A03030EB27852053 +:10937000EA3B50A50303F00A41C5240C4084801346 +:10938000EAAF80268048EABCB13684A2EA54F00AEB +:109390008027EAAF8048EABCEAEA84A28D22EA5438 +:1093A0005A9808EBF203B036EAE5EB2784208401F3 +:1093B000EA4FB00A49FFE8CA8420840149FFE8B1B6 +:1093C0008401EA3AF109F00849FFE8C649FFD93EAD +:1093D000F08349FFD93EF08784418062F107F003B2 +:1093E000DD4049FFD939F08349FFD939F0878441FD +:1093F0008062F107F003DD408400EA618401EB46FE +:109400008400802049FFE7DAB02AEA45B018EA482C +:109410008400EAFE84208401EB0AEB448400EA37EE +:10942000840049FFF8918400EA868400EA50EAB695 +:10943000EB16840349FFE643EA34EAA48400EAAB6E +:10944000F0045A000F05F0068422EA53EA753C1333 +:10945000F943B61F84018040EA65EB03EB48EB3526 +:10946000EA78EA42DD588420EA212E07F7905A0074 +:10947000070DDD42F0058382BB3840103808440FE9 +:109480003FFFFE1EFE0FB8B851FF89D8FCC0FC425A +:10949000EA7F84C0EAD2F682F683106F8007EA7111 +:1094A000EAACEAA1EAB0EA89EAF3DD588421EA21CC +:1094B0002E77F9ADDD5997F85A08051080468401DA +:1094C0008026EAB280068026EB0A8401EA55DD5F39 +:1094D000C00484018026DD4F8400EABBDD595A08B0 +:1094E0000812DD5F5A08020F8400EA58B002B04348 +:1094F000502F800749FFE48C54048070920449FF88 +:10950000E31344942C34EA5FB409EA3292105460B5 +:1095100000C0EA6EEA56EAC1DD595A080835DD5F37 +:109520008E01E602E921B449B409925096AF582160 +:1095300000C040314008EAC5EA60FE86FE9FB64999 +:109540008441DD49DD4C8062DD40EA2FEA70838191 +:10955000BA2AFE16EA67B8AABA2AEA6DDD41FE16F3 +:10956000EAB3FE17B8AA54038001C80B8401401364 +:1095700098095423803EFE464021000DEAB2D503EF +:109580008400EA61EA3B8401DD45EA408400DD4570 +:10959000EAF08401EABBDD595A0808058400DD457C +:1095A000D50ADD595A0805088400EA618400EA55A5 +:1095B0008400EA96DD595A08080654038001C8025F +:1095C000EA61DD595A08080DDD5F5A08020A840372 +:1095D000EA58B002B043502F800749FFE3DDEAA606 +:1095E000EA9CEA87DD588420EA21DD5FC802EAE1CF +:1095F000EA78EA42EA43B422B4629230966F4003BA +:109600000404DD44EA20DD41FE1EFE0FB602844163 +:10961000DD49DD4C8062DD40FCC2FC408461848019 +:109620008E21E081E81D5A38011C846080A340A08F +:109630009001E0AAE81294A999C28C428840226362 +:10964000800022910000E0C9E80512938000846147 +:10965000AD908CA19768D5EE8C819720D5E3FCC0A6 +:10966000FC4051FFE0602E77F9AC2E67F9ADEA714E +:109670002E07F9AE97F8EAD2DD5897B09606C008E3 +:10968000842084018041EAB2DD588421EA219E31A0 +:1096900096005CF000FEE90284C044A42C34EA5F2A +:1096A000B40AEA329210540000C0F081EA6EB42A83 +:1096B000B40A9230966F581080C04020C008EAC3A8 +:1096C000DD43FE46FE5784418062B62ADD49DD4C0B +:1096D000DD40EA2FEA708381BA2A8CC1FE16EA6760 +:1096E000B8AABA2AEA6DDD41FE16EAB3FE17B8AA97 +:1096F0008400EABBEAACEAB0EA89EAA18007EAC1E1 +:10970000441000968401EA6B840049FFE45383808F +:1097100084E0EA3B8401DD458147E2E6E8063EA7B6 +:10972000F9438CE1EAE9D5FAEAF0801C3C1C038796 +:10973000EABFEA38EA7297C0C7108400DD458400AA +:10974000EA618401EABB3C1C03844E130164EA5BBA +:10975000EABFEA9A4800015F506F8DA0800644106E +:1097600000FF44201200EA9A80074450576E44706C +:10977000011644321BF046402B1C804542201C73CE +:109780004011040A882440108836381181098C0160 +:109790005A0820F5840046AFFF00EA98468C00FF87 +:1097A000500503FF84E0B61F50840FFFEAAAE2E0F1 +:1097B000E8C5EAE98400EA98EAF03C3C03878400C3 +:1097C000382E0101381181018A22B088381101092F +:1097D0008C015A0A40F754048002C8058002842193 +:1097E00049FFD4A284408002FA82B04844521BF060 +:1097F0003830811140101037381285018C01FE5C21 +:10980000902AE02240113C1B968B5A0A40F05414D7 +:109810008001C90C5EF10046E8098461803C3C2C63 +:109820000387848880A349FFEE488540B008504FE5 +:10983000892038302911CF1A500F84A038322909D5 +:1098400038302909EAAA5A000103EB47EA5B4015C0 +:1098500004088820A4089AC396D9961B4E050004D4 +:10986000AC08EB47FEDAACC8EB4740150C0888267D +:1098700038522911A0099214DD479AA8E043E84E16 +:1098800096A99A10F483123F800EF382120F800D76 +:10989000A009920ADD479A10120F800CA0098425B6 +:1098A000DD479A10120F800BB005125F800A49FF46 +:1098B000FEB6220F800A221F800BF4039A41EB258B +:1098C00038022909F302E902EAEF40450C0898B48E +:1098D000EA23A15192AA4052A808FF4FA951221F82 +:1098E000800C9A41EB25E902EAEF98B4EA2340F0B4 +:1098F000A808A151B43FFF4E40179404A851221F5D +:10990000800D8A01EAFFE902EACC8886DD47A06182 +:10991000EA284010A002FE0FA821504F84A0EA7947 +:10992000381229119214DD479948E065E849123F41 +:10993000800E96C98803F482120F800DEA79920A8C +:10994000DD478803120F800CEA79121F800ADD4779 +:1099500088608425B005123F800B49FFFE60223FDE +:10996000800E220F800DF4028A03EAFF38322909A3 +:10997000E902EACC38132B02DD47922AEB29FE0FCD +:1099800038032B0A221F800C8A23EB25E902EAEF19 +:10999000EA79B45FEA23FE16EB29FE4738132B0A57 +:1099A000220F800B8A03EAFFE902EACC38132B026C +:1099B000DD47EA284010A002FE0F38032B0AEAAA6E +:1099C0008E014C704020EA5B4035040888604005F9 +:1099D0000C088806501F8920A0013850A901921454 +:1099E000DD47381229019A289A41EA799214DD4715 +:1099F0009A08960196434E150004AC58D503FE0212 +:109A0000AC188D415AA2400448FFFF128CE148FF78 +:109A1000FECF8420DD58EA21EAA6EA9CEA87EA43E1 +:109A2000F101B402B4629210962FFE47EA20DD41A4 +:109A3000DD52FE1EFE0FB60284418062DD49DD4C20 +:109A4000DD40EA78EA42840144100096EA6B840122 +:109A50008020EA8E84C049FFEFEFC80F84014900DF +:109A600003CC5A080109EB4BEB43C802EA428CC114 +:109A700097B0D5F2E6C3E9F051FF9FA0FCC0FC40CF +:109A800051FFF5702E67F9AD49FFD72CF081EA71CF +:109A9000EAF38421DD58EA21EA593C0E0387840168 +:109AA000EA55EAACEAB0EA89EAA1EA56EAC18400DA +:109AB000EA918403EB46840049FFD9E64900023766 +:109AC000EADC49FFF42ADD5997B05A0832048401D0 +:109AD000D5028400EA7349FFEAA5F0828400EAA86F +:109AE0008407EA378405EAAB8405EA502E07F1F7CC +:109AF0009401EAEE49FFE8678400EB0549FFE83C82 +:109B0000840149FFE84F840149FFDC1349FFDAFE75 +:109B10005A0001FE3C23F8F484639491EA5B8420AC +:109B2000FE9CEA9AEA3B8401DD45DD595A00320485 +:109B300048000099EA729600C0288400DD45840040 +:109B400049FFE830840049FFDBF449FFE815840150 +:109B5000EB058400EA55F002EAA88401EA73F001FB +:109B6000EA918400EA378400EA508400EAABEADC38 +:109B70008420DD58EA21EAA6EA9CEA87DD5F4E03ED +:109B800000A6EAE1480000A39E7196485CF080FEC2 +:109B900040603C1A9C3284E0F083EAAA8C0288067A +:109BA000E2E0E8CCEA40EAA29C31E007E858B004E1 +:109BB000EA7B49FFEC6A3C9C03843CAC038750542D +:109BC000800188A68400878687CC502F8610503F5E +:109BD0008190EA7BE201E84340107036F4034210C2 +:109BE000F8249649548000FF4C72401DB10438425D +:109BF000011138410109384181095A98012E8828FC +:109C00009449882A028080004044100197214082B4 +:109C100000114E85000512808000D51EFF22AD0880 +:109C2000D51BB10438F101113842011140F79007FA +:109C3000E8033841010938F18111E08FE803384128 +:109C400081093841011138F181114C72C006882810 +:109C50008A8F384505098C019601D5BC8CE197F9AE +:109C6000D59DDD595A00330448FFFF698401EA930A +:109C7000EA72C807EA40EAA2EA40EAA2EA40EAA297 +:109C80008400EA93B004EA7B49FFEBFF3C23F8F43D +:109C900084639491FE9CEA5B8420EA9A3C2C0387BF +:109CA00084008466848CEA7BE2014EF2FF48B04473 +:109CB00097803850811140100C36FE6496498826F2 +:109CC0008C01385105099601D5EFEA78EA4251FF37 +:109CD0008A90FCC0FC20EA8D97B0C604DD46842043 +:109CE000D51380E08026DD46DD5D3C6E02323C0C03 +:109CF0000232E207E8073C1C02328C213C1E023291 +:109D0000D5F7DD468421DD5DFCA0FC20EA5A49FF41 +:109D1000E1E1842C84418406DD5780C0842D844198 +:109D20008406DD5780E0441000F484418406DD574A +:109D3000402394099686443FFFE75413801FFE9CFE +:109D4000944A50210064FE54C11192E697C6442003 +:109D500064005233800197A7FFD4FFBC4420190050 +:109D60004261887340130436964992049600C80CE9 +:109D70005CF08064E9094405102444101234B620D4 +:109D800049FFE97BD5FEFCA0FC00840149FFE258B5 +:109D900049FFE1DF49FFE1E349FFE1F6840149FFC3 +:109DA000E24F49FFE25F49FFE25E49FFE26749FF98 +:109DB000E270840A49FFE2738400EAF1840049FFFB +:109DC000D4388400EAA349FFE1855A0801048407D6 +:109DD000D5028400EB018441EA52EA3E8062DD4014 +:109DE00049FFE26649FFE3CA840149FFE2A0FC8023 +:109DF000FC008400EA58840249FFD59F840049FF93 +:109E0000D5A8840249FFD5B6840049FFD5BF840197 +:109E100049FFD5ED840149FFD630FC80FC00840069 +:109E2000EA39DD4B8401EA39DD4B8402EA39DD4B46 +:109E3000EA398403DD4B8401EA558402842A49FF10 +:109E4000DDE884008422DD4FFC80FC0080C049FFF7 +:109E5000E1465A68010584008020D50384018420EE +:109E600049FFE155FC80FC0049FFE3D7FC80FC0082 +:109E7000EA5A84618405FA2F44200050848080A32C +:109E8000DD4DFC80FC005A100203840349FFE4729C +:109E9000844680624404589044145510DD4084493F +:109EA000440458C0441455408062DD40FC80FC00EE +:109EB000840149FFD8F9840149FFD3D4FA228401EF +:109EC00049FFD7AB8400EA868400EA508401EA3A6D +:109ED0008401EB15840149FFD6E0840149FFDC5F72 +:109EE000840149FFD7E0840149FFD7EC840149FF91 +:109EF000D7FE8400802049FFFFBC8422840049FFF4 +:109F0000FFC349FFE40C840149FFDC9C840149FF45 +:109F1000E526840149FFE52D840049FFE5368400EC +:109F200049FFE51049FFE53CFC80FC03446200006A +:109F300049FFE5584410730002230010A60EA64FF7 +:109F400049FFE577000300D349FFE6230003002320 +:109F5000001300220023002A49FFE5CE2243000A15 +:109F60000013002CB69F2243000B0003002BF4814A +:109F70002243000C0023002DF4822243000D003305 +:109F8000002EF4832243000E44500050F4842243F8 +:109F9000000FF485444FFFB049FFE5898400EB05CD +:109FA000FA17441003E8EA6BFC83FC02F083800399 +:109FB000F282B67FF181EAF4F002B43F49FFE74C48 +:109FC000F001B43F49FFE75AF003EAECF101F20275 +:109FD000B47F3C4DFD9749FFE776B41FEAA0FC82B1 +:109FE000FC00EA51FC80FC0080C05A08010C84008F +:109FF0003E07F9413C13F9508402EA6B8402802643 +:10A00000D50384028420EA8EFC80FC002E07F941EF +:10A01000C0068402EB4B84003E07F94184024900EC +:10A0200000EC5A0801043E07F940FC80FC00840162 +:10A030003E07F9548420841F806184413C0BFA9DC3 +:10A04000440003E8EA2D84008020EA4C840080204C +:10A05000EA9484408461EAA78427EA2D840084215D +:10A06000EA4C84008421EA9484218400EA5184002B +:10A07000EAF48400EAA08401EAF48401EAA08401FD +:10A080008020EA512E67F95497B0CEFD80068026D5 +:10A09000EA5180068421EA51FC80FC0049FFFFC898 +:10A0A0004400622449FFE6D5842080618441EAA708 +:10A0B000EA2D84008020EA4C84008020EA94840009 +:10A0C00049FFE77484208401EA518400EAA08440B7 +:10A0D00084613C03F93E8427EA2D84008421EA4C04 +:10A0E00084018020EA9449000047FC80FC20EAECCF +:10A0F00080E0EA2680C1D80D49FFE7B1FA4E42134D +:10A100000824446000644003000C40108037D50CE4 +:10A110003C23FA9DFF9449FFE7A2441000644000ED +:10A12000800C4013003796495A78010BFE0B9601BC +:10A1300049FFE79B49FFE7A749FFE79FFCA049FFCD +:10A14000E7AEFCA03C0C02BC3C1C02BC4C00FFFC7B +:10A15000DD9EFC21F0813C6C023AEB003C7C023B32 +:10A16000EADDF201EB1BFE7EFE36FE0F842040008E +:10A170008006FCA184003C0E023A3C0E023BDD9EB0 +:10A18000442217283811020ADD9EFC0080C049FFD6 +:10A19000FFDB4412182838009A0AFC80FC41F08149 +:10A1A0006463040244208000642304035A180110ED +:10A1B000EB4B3C8C023AF2013C9C023BEB00EADDAB +:10A1C000EB1B402020044030A404D50FF201EB002B +:10A1D000EADDEB1B3C8C023A3C9C023BFE03FE4B4F +:10A1E000402020024030A4023C2E023A3C3E023B7A +:10A1F00064630403FCC1FC0080C049FFFFAC5A0843 +:10A20000011149FFFFA144121828442217283810D1 +:10A210009A0238211A028A01E20256078001FC8064 +:10A220008400FC803C0C02BC8C013C0E02BCDD9E18 +:10A230003A1FA43C3AFFBFBC426E80203A6F983C64 +:10A240006462A4029DB4647204023A6F9C3C64622E +:10A2500000029FB2646200036400000849000259D2 +:10A260003A6F9C046462A403647204033A6F980416 +:10A27000426E80213AFFBF843A1FA40464000004A8 +:10A280003A1FA43C3AFFBFBC426E80203A6F983C14 +:10A290006462A4029DB4647204023A6F9C3C6462DE +:10A2A00000029FB2646200036400000849000232A9 +:10A2B0003A6F9C046462A403647204033A6F9804C6 +:10A2C000426E80213AFFBF843A1FA4046400000458 +:10A2D0003A1FA43C3AFFBFBC426E80203A6F983CC4 +:10A2E0006462A4029DB4647204023A6F9C3C64628E +:10A2F00000029FB264620003640000084900020B80 +:10A300003A6F9C046462A403647204033A6F980475 +:10A31000426E80213AFFBF843A1FA4046400000407 +:10A320003A1FA43C3AFFBFBC426E80203A6F983C73 +:10A330006462A4029DB4647204023A6F9C3C64623D +:10A3400000029FB26462000364000008490001E457 +:10A350003A6F9C046462A403647204033A6F980425 +:10A36000426E80213AFFBF843A1FA40464000004B7 +:10A370003A1FA43C3AFFBFBC426E80203A6F983C23 +:10A380006462A4029DB4647204023A6F9C3C6462ED +:10A3900000029FB26462000364000008490001BD2E +:10A3A0003A6F9C046462A403647204033A6F9804D5 +:10A3B000426E80213AFFBF843A1FA4046400000467 +:10A3C0003A1FA43C3AFFBFBC426E80203A6F983CD3 +:10A3D0006462A4029DB4647204023A6F9C3C64629D +:10A3E00000029FB264620003640000084900019605 +:10A3F0003A6F9C046462A403647204033A6F980485 +:10A40000426E80213AFFBF843A1FA4046400000416 +:10A410003A1FA43C3AFFBFBC426E80203A6F983C82 +:10A420006462A4029DB4647204023A6F9C3C64624C +:10A4300000029FB264620003640000084900016FDB +:10A440003A6F9C046462A403647204033A6F980434 +:10A45000426E80213AFFBF843A1FA40464000004C6 +:10A460003A1FA43C3AFFBFBC426E80203A6F983C32 +:10A470006462A4029DB4647204023A6F9C3C6462FC +:10A4800000029FB2646200036400000849000148B2 +:10A490003A6F9C046462A403647204033A6F9804E4 +:10A4A000426E80213AFFBF843A1FA4046400000476 +:10A4B0003A1F943C3AFFBFBC422E80203A2F8C3C7E +:10A4C0006412A402642204023A1F883C641200024F +:10A4D0009E4A64120003441000A438108202DD2159 +:10A4E0003A0F840464020043640000086402A40379 +:10A4F000641204033A2F8C04422E80213AFFBF8459 +:10A500003A1F94043A0F8004640000043A1F943CFC +:10A510003AFFBFBC422E80203A2F8C3C441000A44E +:10A5200038108202DD213A2F8C04422E80213AFF1E +:10A53000BF843A1F94043A0F800464000004D500DD +:10A540003A0F803C8400D5E33A0F803C8401D5DF8C +:10A550003A0F803C8402D5DB3A0F803C8403D5D788 +:10A560003A0F803C8404D5D33A0F803C8405D5CF84 +:10A570003A0F803C8406D5CB3A0F803C8407D5C780 +:10A580003A0F803C8408D5C33A0F803C8409D5BF7C +:10A590003A0F803C840AD5BB3A0F803C840BD5B778 +:10A5A0003A0F803C840CD5B33A0F803C840DD5AF74 +:10A5B0003A0F803C840ED5AB3A0F803C840FD5A770 +:10A5C0003A0F803CFA00D5A33A0F803CFA01D59FA0 +:10A5D0003A0F803CFA02D59B3A0F803CFA03D5979C +:10A5E0003A0F803CFA04D5933A0F803CFA05D58F98 +:10A5F0003A0F803CFA06D58B3A0F803CFA07D58794 +:10A600003A0F803CFA08D5833A0F803CFA0948FF9C +:10A61000FF7F3A0F803CFA0A48FFFF7A3A0F803CEE +:10A62000FA0B48FFFF753A0F803CFA0C48FFFF70A9 +:10A630003A0F803CFA0D48FFFF6B3A0F803CFA0E50 +:10A6400048FFFF663A0F803C4400001F48FFFF6050 +:10A6500084016404C002440200016404E00345D2A2 +:10A660000E383FC8000045F275F844006DD0420E28 +:10A6700000214900003B49000343D500FC00DD46B2 +:10A68000842149FFD4B4DD46842049FFD4BF84210E +:10A69000DD46DD5D840049FFD4FD44020000442214 +:10A6A00005F4441075808A40EA38440205F44422D7 +:10A6B0001C7884208A40DD5BFC8084006405E40310 +:10A6C000841F640304036403240364122402440FFC +:10A6D0000FFFFE0E64022403641200028418FE0EB3 +:10A6E00064020003EA5CDD9EFC0049FFFFE86400B1 +:10A6F0008002921EC00664008402962EC002D5001D +:10A7000049FFFFBE64120043EA5CEA5CFC80DD9E08 +:10A71000DD9EDD9EDD9EDD9EDD9EDD9EDD9EDD9E61 +:10A7200044048004B40092089606C00544048005E1 +:10A730008421AE40DD9EFC01EA4B44148081A600DA +:10A74000A648FE0E100F8007000F8007C00349FFC8 +:10A75000DBE8FC81FC00EAD5B40049FFE42FFC8073 +:10A76000DD9EFC00EAD5B420B40092199606C026FE +:10A770002E07F9545A080123EAECEA26442500047E +:10A78000D804B4029210D51484003E07F954B402E0 +:10A79000EA7E92108A014E040007EA7EB40292100B +:10A7A0009A08D505B402EA7E92108A0196013C0B04 +:10A7B000FA9DEA498422AE40FC8049FFE412FC8005 +:10A7C00044148014B4019606C0088401AE084414F1 +:10A7D0008094B401DD4AB60144148014B40192019E +:10A7E0009606C0088402AE0844148094B401EAB10D +:10A7F000B601DD9EFC0049FFD170FC80440480045A +:10A80000B40092139606C004EA688428AE40DD9E28 +:10A8100044148004B40192199606C004EA69844283 +:10A82000AE80B40192189606C004EA698421AE4055 +:10A8300044148004B401921A9606C004EA69844460 +:10A84000AE80B401921B9606C004EA698428AE402B +:10A85000EAF6B400921C9606C004EA69FA20AE40FB +:10A86000DD9E44048008B42092249646C103FA2059 +:10A87000AE40B40084219606C005EA2EAE403E17D5 +:10A88000F946EA2EB42092219646C1068422AE40B3 +:10A8900084213E17F945B40092039606C004EA2EBF +:10A8A0008428AE40EAD4B40192029606C003840420 +:10A8B000AE0844148014B40192089606C0054404FE +:10A8C00080158441AE80B40192099606C005440407 +:10A8D00080158422AE40DD9EDD9EFC0049FFD0093C +:10A8E000FC80FC0049FFD013FC80FC0049FFD01025 +:10A8F000FC8044148008B40192089606C004EB065C +:10A900008441AE80B40192099606C004EB0684220D +:10A91000AE40EAD4B40140203409EACAB400920D32 +:10A920009606FE16C008EB06FA50AE80B401920DF2 +:10A930009606C8FDDD9EFC41EA2EB40092129606F2 +:10A94000C04D44748088B40792129606C04744A450 +:10A95000800A840410050000B407449DFFFF921193 +:10A960009606100F8007B4074467300440002402A5 +:10A97000B607B406851E40002002B606840AEA2403 +:10A98000B406DD4AB606840AEA2449FFE1544400CD +:10A99000008749FFE14A840AEA24B4064000200205 +:10A9A000B606840AEA24B406DD4AB606840AEA2416 +:10A9B00084013E07F94C001F8007B40796464010FB +:10A9C000C40840002402FE0FB607840210050000F0 +:10A9D0003C0DFE528C013C0FFE52EA2E8421B40045 +:10A9E00092109606C00AEACAB40092109606C005F4 +:10A9F000EA953E17F94DAE40EA2EB4009211960644 +:10AA0000C009EACAB40092119606C004EA958422ED +:10AA1000AE40FCC1FC00EAD480C1B4019218960695 +:10AA2000C005EA8C8421AE40EA3CB4069219960631 +:10AA3000C005EA8C8422AE40EA3CEA2EB400921AA9 +:10AA40009606C00C44147008B4019210DD4E5800F4 +:10AA50007823B601EA8C8424AE40EA2EB400921B1F +:10AA60009606C004EA8C8428AE40FC80440480042E +:10AA7000B40092149606C004EA68FA20AE40DD9E47 +:10AA8000DD9EDD9EDD9EDD9E44048010B400920CB0 +:10AA90009606C004EABDFA20AE40DD9E4424801034 +:10AAA0008401B4229646C1063E07F7CCAE103E079D +:10AAB000F944DD9E44048010B400920A9606C00852 +:10AAC000FC00EABD8424AE4049FFD278FC80DD9EC4 +:10AAD00044148010B40192079606C004440FFF800E +:10AAE000AE08DD9E44048010B42092259646C10332 +:10AAF000FA30AE40B40092069606C005EB0E441044 +:10AB00000040AE40DD9E442480108421B4029204B3 +:10AB10009606C043FC20FA003E17F7CDAE10DD4884 +:10AB20003E17F9413E17F943040000F092039606E0 +:10AB300049FFD1A4EA2580E0C82F441000E4840A2C +:10AB40008441DD572E100AF44C008027441000E4A5 +:10AB5000840A8441DD573E000AF42E600AF484071B +:10AB6000979E97B0FA2F8461C60C804744400040FE +:10AB700080A3DD4D84418407FA2F80628484D50A46 +:10AB80008046808680A3DD4D84418407FA2F806251 +:10AB9000808680A2DD4DFCA0DD9E44048010B420A0 +:10ABA00092239646C1038428AE40B40092029606D2 +:10ABB000C004EB0E8424AE40DD9E44148010B4012A +:10ABC00092019606C00C44048090B400920196064F +:10ABD0005A0801068442AE883E07F93FDD9E4404D0 +:10ABE0008010B400920B9606C004EABD8428AE40E3 +:10ABF000DD9E842AFE0C8E015A07FF04EADED5FC96 +:10AC0000DD9E44250008B4429686C24D44450004AA +:10AC1000B4449691C248FC028460B67FB44492501A +:10AC2000F281EAD3F383B44292505431000FEB3AED +:10AC3000B482442000649706CC074610061AEB172E +:10AC400050108800D50B4440FFFF4C124006EB1714 +:10AC500044100BB8D503FE54EB1740208856B65F5E +:10AC6000B43F44350004FE0CB61FB4039210F082CA +:10AC7000F101F002E220E907F101F202F00388019C +:10AC80008A02D509F201F402B423F003964988023E +:10AC900088018A04F083F103B41FE220E80DF0027A +:10ACA000F081D5E4441023A0FE0C8E015A07FF0466 +:10ACB000EADED5FCDD9EFC82FC00EA7E49FFFFA3B4 +:10ACC000FC80FC0049FFD2C7441186A0840049FFE4 +:10ACD000FA0F840149FFD95949FFD37749FFD3823D +:10ACE00049FFE8E9840149FFDA2949FFE08FEA5A80 +:10ACF00049FFCAF049FFCBE08400FC80FC0049FF1B +:10AD0000FFE28400FC80C212523100204E36000760 +:10AD1000FEDA848040100C0CD50840300C0D401039 +:10AD2000880C4040080CFE5F8004DD9E8060E64495 +:10AD3000E91C5441800354508003DC174E52000C30 +:10AD4000525280049A959969084080011841800107 +:10AD50004C12FFFC40510809C508956A9969968F05 +:10AD6000A309AB194C12FFFEC208994A08408001A2 +:10AD7000184180014C12FFFCDD9E92008060E64489 +:10AD8000E91C54518003C509525280049A95996870 +:10AD9000181180014C32FFFE96484040A008FE6723 +:10ADA0004040C0084010900440510809C506956A0B +:10ADB000996B968FAA59DBFFC206995A1811800128 +:10ADC0004C32FFFEDD9E92000000000000000000FB +:10ADD000490008F150000FFF4620008150108FFFFE +:10ADE000401040084900234C44000100540003FF78 +:10ADF00046000081440428345800000149000C7CBE +:10AE00004414243449001643400040084900028D90 +:10AE1000141000373E07F68C4010C008042000379D +:10AE20002E07FF2D4400005049001BAB490016A11E +:10AE30002E07F9A22E07F9A13A209404490036BE44 +:10AE400040102008490008133A2014042E000E2D4B +:10AE5000460FF00F490024E14900365C541083FF8F +:10AE6000490035F949001B854400FFFF48001ED00A +:10AE70004000500849001A8C440EFFFF440FFEFFAB +:10AE80002E07FFC249002FD54404800846100081D8 +:10AE9000440428002E000E26490008A14010A008F6 +:10AEA000490022B73A201424490023DA49002280BD +:10AEB00049003696441000F049000BA8490025BC13 +:10AEC0004900050454000FFF4414241444142400C2 +:10AED0004900249C40003008490025A944242C3412 +:10AEE0004610008049000A0B3E07FFBC40002008C6 +:10AEF00049000A2A440480033A2794244404800128 +:10AF0000490017C64000280849000B6A49000CDEBA +:10AF1000490021ED4900174C4404281449000C2B2A +:10AF2000490027ED4900027E440000FF3A209424A6 +:10AF30004900048749002266490016C73C0C038774 +:10AF4000640000080420802A3A2014004900088A7E +:10AF500050210FFF4900034A043100123A208C00AF +:10AF6000140100122E300E3F40214008580002000C +:10AF7000440480064404800749002643490030C049 +:10AF80004900054D460C0FFF49000895460FEFFF9D +:10AF9000440FC0FF490024F42E07F940490007A7D9 +:10AFA0001400802A2E000E3048001E9348001EDB3D +:10AFB00049001EEE38032B02401060083C13F8F4E1 +:10AFC000490022DC2E000E293C13FA9D2E07F9A61B +:10AFD0004010B008460FDFFF466000814000440883 +:10AFE000041003964900043349002203490026DB7C +:10AFF0004900064049000EF440102808490015FD9C +:10B000004404800B2E67F98E490030CE44010000C5 +:10B01000120F8003490004574414241C49002344A0 +:10B02000490009A14404800A490022BF3C080710D6 +:10B030003E07F943440FFFEF4900014C50630FFFF7 +:10B0400049000EFD580001003E000E264404281C55 +:10B05000490017A949002686490024A2490002ADEB +:10B0600049001B53490008FB3C0C03854400006465 +:10B070004900180749000FCE3C0C0384490021F613 +:10B08000490026774900090114100028400E0002EB +:10B0900044021C4C5800000249000359462020007D +:10B0A000140303994900160B440002404010300974 +:10B0B000490016203C0DFE6544142C00490024E98B +:10B0C00044300090440480113A20940044200480CD +:10B0D000040000234900269740006008461FF00F37 +:10B0E000490015EA462FF00F141100324400030006 +:10B0F0003C50071A4900034444048088546087FF89 +:10B10000440003FF44042C003C1DFC9B4900231514 +:10B110004411000044000051549000FF44250000F9 +:10B1200044148008440480004050CC09460F000FAE +:10B130004000E0083A201420440200014400084086 +:10B140004900219A3C1DFDE74000000940105808C5 +:10B150005412807E490024CB4401000249001FE1C3 +:10B160003E07F93C501F8558043100393A208C24A1 +:10B17000140100114900248F504F85581420804736 +:10B180003C53FA9D40106408540000FE441003FF35 +:10B19000490022534900082A54F087FF490024DA65 +:10B1A00049001790140080484404800444040000BF +:10B1B000490009B5440FF0FF49000AB644002010C9 +:10B1C0005420801F44000480490009765EF004008A +:10B1D0003C0DFDE6490002CA3C0DFD9A2E400E2DA5 +:10B1E0002E17F9A4490014E344048009100F8004C9 +:10B1F000490015F7000F800449000D493C0DFD98EA +:10B20000441480840430039744048010440000F008 +:10B210002E07F9A33C0DFD9904310023490021D3E9 +:10B220003E000E2749000BB54900101740210C0CB9 +:10B230000431000F5440800F441710184900368322 +:10B240002E000E2F0410002944173000460FF3FF84 +:10B25000460FFF0F3A20100044107408490008CB35 +:10B260003E07F9B45EF08400141000294900244F11 +:10B270003E07F9B54010A8084900073F4400800484 +:10B2800049002263440BFFFF4400102014010023F7 +:10B29000043100281401000F041003911401000E62 +:10B2A0003A200C00490025CA04310029490007C58D +:10B2B0003E17F9B4440040084424000C48001EDC4A +:10B2C0003A200C201410039849000E794630008172 +:10B2D0003A23142404100394141003972E07F98EB4 +:10B2E00049002EF8141100284900224348002D017E +:10B2F0002E500E2F49002398490007BC490030C545 +:10B30000941A113B10011220122012002000FF0796 +:10B31000FF07400B0019050A0B01000016019005FC +:10B320000100008002000080030000808804020009 +:10B330007804020064040200500402003804020091 +:10B340002004020004040200E8030200C803020013 +:10B35000A80302000B0C0C0C0C0C0D0D0D0D0000C5 +:10B3600001050007020604080309000005002D007E +:10B37000AD04110515051505150515052505A800CC +:10B380002605F900040000000000360037003700F1 +:10B390000000370047005B004800F9000000000093 +:10B3A000000000000000000000000000200100007C +:10B3B000200100000000000000000000000040022A +:10B3C00040020000C000C00040004000040404012E +:10B3D0000101010101010101078003003870000033 +:10B3E000C00F000001000200020001000480000004 +:10B3F000084000001020000020100000400800005D +:10B4000080040000000300000001020001020304A8 +:10B4100005060708000102000102030405060708EB +:10B42000000000000000000000000000000000001C +:10B43000400200004002000092020000D202000020 +:10B4400000090900030000000001020304000102DA +:10B45000030400000780030038700000C00F0000E4 +:10B4600008400000102000002010000040080000EC +:10B470008004000000030000078003003870000013 +:10B48000C00F00000780030038700000C00F0000EC +:10B490000000000000000000FFFFFFFFFFFFFFFFB4 +:10B4A000030303010101010101010101040404007E +:10B4B0000000000000000000010101000000000089 +:10B4C0000000000001010101010100000000000076 +:10B4D000FFFFFFFFFFFFFFFF040708090A0B0C0D2A +:10B4E0000E0F000003030303030303030300000024 +:10B4F000080706050403020100000102000102031F +:10B500000405060708020100000102008000010096 +:10B5100040800000204000001020000008100000C3 +:10B52000040800000204000001020000078003007C +:10B5300038700000C00F0000000102000102030487 +:10B5400005060708000102000102030405060708BA +:10B550000780030038700000C00F000001000200E7 +:10B5600002000100048000000840000010200000DC +:10B5700020100000400800008004000000030000CC +:10B5800000000000000000000000000000000000BB +:10B59000D007840350006400B0FF9CFF0A00010044 +:10B5A000C0000101012001120106014664B09C03A4 +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000AD277F27BB23E923AD2743 +:10B5D0007F27BB23E923A2277627B423DE236C072A +:10B5E0006400900180024001640060002E01005060 +:10B5F0001E0F0A004C01010C00023E010204060667 +:10B60000040202030C0340020100032D0A0A020097 +:10B61000C80914100F191900CEFF5A0003000000CA +:10B620004002000080BB0000A086010055002D00F4 +:10B6300041000A000A00C80090019001D007F00004 +:10B64000C201C201F000F000F00002000B0B20422A +:10B6500002024020030C0900F40100000000000079 +:10B66000080009000505050505050505051A1A1A4E +:10B670001A1A1A1A1A1A0404040404040404041BEF +:10B680001B1B1B1B1B1B1B1B0303030303030303CA +:10B69000031C1C1C1C1C1C1C1C1C0202020202029F +:10B6A0000202021D1D1D1D1D1D1D1D1D010101018B +:10B6B00001010101011E1E1E1E1E1E1E1E1E000077 +:10B6C000000000000000001F1F1F1F1F1F1F1F1F63 +:10B6D0001F1F1F1F1F1F1F1F1F0000000000000053 +:10B6E00000001E1E1E1E1E1E1E1E1E010101010147 +:10B6F000010101011D1D1D1D1D1D1D1D1D0202023B +:10B700000202020202021C1C1C1C1C1C1C1C1C032E +:10B7100003030303030303031B1B1B1B1B1B1B1B39 +:10B720001B0404040404040404041A1A1A1A1A1A3E +:10B730001A1A1A050505050505050505191919192A +:10B740001919191919060606060606060606181816 +:10B750001818181818181807070707070707070702 +:10B7600017171717171717171708080808080808D2 +:10B7700008081616161616161616160909090909C6 +:10B78000090909091515151515151515150A0A0ABA +:10B790000A0A0A0A0A0A1414141414141414140BAE +:10B7A0000B0B0B0B0B0B0B0B1313131313131313A9 +:10B7B000130C0C0C0C0C0C0C0C0C1212121212129E +:10B7C0001212120D0D0D0D0D0D0D0D0D111111118A +:10B7D00011111111110E0E0E0E0E0E0E0E0E101076 +:10B7E000101010101010100F0F0F0F0F0F0F0F0F62 +:10B7F0000F0F0F0F0F0F0F0F0F1010101010101052 +:10B8000010100E0E0E0E0E0E0E0E0E111111111145 +:10B81000111111110D0D0D0D0D0D0D0D0D12121239 +:10B820001212121212120C0C0C0C0C0C0C0C0C132D +:10B8300013131313131313130B0B0B0B0B0B0B0B18 +:10B840000B1414141414141414140A0A0A0A0A0AFD +:10B850000A0A0A15151515151515151509090909E9 +:10B8600009090909091616161616161616160808D5 +:10B8700008080808080808171717171717171717C1 +:10B8800007070707070707070718181818181818D1 +:10B8900018180606060606060606061919191919C5 +:10B8A000191919193C013C0154017C019E016601E2 +:10B8B000B801E6018E01F2013C0154017C019E01B8 +:10B8C0006601B801E6018E01F2013C0106020504A1 +:10B8D0000304020103010605040304020103010637 +:10B8E000040708090A0B0C0D0E0F000041010101AD +:10B8F0000101FFFF0B0C0C0C0C0C0D0D0D0D0000CD +:10B90000880402007804020064040200500402006B +:10B91000380402002004020004040200E8030200CC +:10B92000C8030200A8030200AA005D0074008D0095 +:10B93000A800C300DF00FA0014012D0143015701E4 +:10B94000670174017D018101AE00650080009D00EA +:10B95000BB00DA00FA0018013601510168017C01D0 +:10B960008C0196019C010000B1006F008E00B000B8 +:10B97000D300F7001B013E015E017B019301A6018C +:10B98000B301BA01B6007B009F00C700F1001B01A4 +:10B9900044016B018E01AC01C401D401DC01000043 +:10B9A0005D0044005A0072008A00A400BC00D1006F +:10B9B000E400F300FE00030161004D006800840014 +:10B9C000A200C000DB00F300070114011B0100000E +:10B9D0006500580079009D00C200E40003011D01CC +:10B9E0002F0138016A0067009100BE00EB001401CE +:10B9F00036014F015C01000072007C00B200EB00D8 +:10BA0000240153017601880151008800D4001601F9 +:10BA10003D010000307500004008000010200000CB +:10BA200004800000FFFFFFFFFFFFFFFF0001020097 +:10BA300001020304050607080001020001020304D5 +:10BA400005060708520100002EFFFFFFFFFFFFFF62 +:10BA5000FFFFFFFFFFFFFFFFFFFFFFFFF13A06A61B +:10BA6000006E00460000000000F000FFFFFFFFFF37 +:10BA7000FFFFFFFFF1300176C00C0C006400F0FE08 +:10BA80000000019000000190028001400001002EA2 +:10BA90000060022D0A0114040050000037F9000074 +:10BAA0002F200000FF07FF0712200A0012200021AC +:10BAB00084280900842801002402000001280200D3 +:10BAC000085A0200085A01000C0002000800290B65 +:10BAD000401900012BEBF9FFFFFFFFFFFFFFFFFF06 +:10BAE000FFFFFFFFFFFFFF2CFFFFFFFFFFFFFFFF39 +:10BAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:10BB0000290B401900010000280200085A02000811 +:10BB10005A01000C0002000800000000240200008E +:10BB200001000000230200002205060021842809EC +:10BB30000084280100000000200000FF07FF07121A +:10BB4000200A001220000000070000000000000092 +:10BB50000100000000000000842809000200085ACB +:10BB60000200085A01000C00020008000200000157 +:10BB700005060000FFFFFFFFFFFFFFFFFFFFFFFFC6 +:10BB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:10BB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:10BBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:10BBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:10BBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:10BBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:10BBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:10BBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:10BC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:10BC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:10BC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:10BC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:10BC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:10BC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:10BC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:10BC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:10BC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:10BC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:10BCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:10BCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:10BCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:10BCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:10BCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:10BCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:10BD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:10BD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:10BD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:10BD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:10BD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:10BD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:10BD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:10BD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:10BD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:10BD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:10BDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:10BDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:10BDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:10BDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:10BDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:10BDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:10BE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:10BE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:10BE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:10BE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:10BE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:10BE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:10BE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:10BE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:10BE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:10BE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:10BEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:10BEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:10BEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:10BED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:10BEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:10BEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:10BF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:10BF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:10BF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:10BF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:10BF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:10BF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:10BF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:10BF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10BF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:10BF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:10BFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:10BFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:10BFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:10BFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:10BFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:10BFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:10C00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:10C01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:10C02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:10C03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:10C04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10C05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10C06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10C07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10C08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10C09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10C0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10C0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10C0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10C0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10C0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10C0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10C10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:10C11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:10C12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:10C13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:10C14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:10C15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10C16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10C17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10C18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10C19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10C1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10C1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10C1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10C1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10C1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10C1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10C20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10C21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:10C22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:10C23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10C24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10C25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10C26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10C27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10C28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10C29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10C2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10C2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10C2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10C2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10C2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10C2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10C30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10C31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10C32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:10C33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:10C34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10C35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10C36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10C37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10C38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10C39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10C3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10C3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10C3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10C3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10C3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10C3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10C40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10C41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:10C42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:10C43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:10C44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10C45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10C46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10C47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10C48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10C49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10C4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10C4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10C4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10C4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10C4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10C4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10C50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10C51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10C52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10C53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10C54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:10C55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10C56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10C57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10C58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10C59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10C5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10C5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10C5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10C5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10C5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10C5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10C60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10C61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:10C62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:10C63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:10C64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10C65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10C66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10C67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10C68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10C69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10C6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10C6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10C6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10C6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10C6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10C6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10C70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10C71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:10C72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:10C73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:10C74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:10C75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10C76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10C77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10C78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10C79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10C7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10C7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10C7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10C7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10C7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10C7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10C80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10C81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:10C82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:10C83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10C84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10C85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10C86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10C87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10C88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10C89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10C8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10C8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10C8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10C8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10C8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10C8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10C90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10C91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:10C92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10C93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:10C94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:10C95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10C96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10C97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10C98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10C99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10C9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10C9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10C9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10C9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10C9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10C9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10CA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:10CA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:10CA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:10CA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:10CA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:10CA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:10CA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:10CA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:10CA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:10CA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:10CAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:10CAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:10CAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:10CAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:10CAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:10CAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:10CB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:10CB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:10CB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:10CB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:10CB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:10CB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:10CB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:10CB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:10CB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:10CB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:10CBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:10CBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:10CBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:10CBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:10CBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:10CBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:10CC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:10CC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:10CC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:10CC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:10CC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:10CC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:10CC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:10CC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:10CC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:10CC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:10CCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:10CCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:10CCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:10CCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:10CCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:10CCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:10CD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:10CD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:10CD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:10CD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:10CD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:10CD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:10CD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:10CD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:10CD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:10CD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:10CDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:10CDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:10CDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:10CDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:10CDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:10CDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:10CE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:10CE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:10CE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:10CE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:10CE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:10CE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:10CE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:10CE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:10CE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:10CE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:10CEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:10CEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:10CEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:10CED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:10CEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:10CEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:10CF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:10CF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:10CF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:10CF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:10CF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:10CF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:10CF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10CF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:10CF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:10CF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:10CFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:10CFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:10CFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:10CFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:10CFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:10CFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:10D00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:10D01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:10D02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:10D03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10D04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10D05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10D06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10D07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10D08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10D09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10D0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10D0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10D0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10D0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10D0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10D0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:10D10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:10D11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:10D12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:10D13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:10D14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10D15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10D16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10D17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10D18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10D19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10D1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10D1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10D1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10D1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10D1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10D1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:10D20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:10D21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:10D22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10D23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10D24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10D25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10D26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10D27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10D28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10D29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10D2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10D2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10D2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10D2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10D2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10D2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10D30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10D31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:10D32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:10D33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10D34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10D35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10D36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10D37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10D38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10D39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10D3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10D3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10D3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10D3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10D3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10D3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10D40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:10D41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:10D42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:10D43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10D44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10D45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10D46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10D47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10D48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10D49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10D4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10D4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10D4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10D4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10D4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10D4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10D50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10D51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10D52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10D53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:10D54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10D55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10D56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10D57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10D58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10D59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10D5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10D5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10D5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10D5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10D5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10D5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10D60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:10D61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:10D62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:10D63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10D64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10D65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10D66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10D67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10D68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10D69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10D6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10D6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10D6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10D6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10D6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10D6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10D70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:10D71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:10D72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:10D73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:10D74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10D75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10D76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10D77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10D78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10D79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10D7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10D7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10D7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10D7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10D7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10D7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10D80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:10D81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:10D82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10D83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10D84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10D85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10D86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10D87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10D88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10D89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10D8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10D8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10D8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10D8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10D8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10D8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10D90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:10D91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10D92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:10D93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:10D94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10D95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10D96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10D97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10D98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10D99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10D9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10D9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10D9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10D9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10D9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10D9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10DA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:10DA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:10DA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:10DA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:10DA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:10DA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:10DA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:10DA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:10DA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:10DA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:10DAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:10DAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:10DAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:10DAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:10DAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:10DAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:10DB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:10DB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:10DB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:10DB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:10DB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:10DB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:10DB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:10DB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:10DB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:10DB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:10DBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:10DBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:10DBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:10DBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:10DBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:10DBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:10DC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:10DC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:10DC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:10DC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:10DC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:10DC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:10DC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:10DC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:10DC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:10DC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:10DCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:10DCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:10DCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:10DCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:10DCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:10DCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:10DD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:10DD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:10DD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:10DD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:10DD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:10DD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:10DD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:10DD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:10DD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:10DD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:10DDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:10DDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:10DDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:10DDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:10DDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:10DDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:10DE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:10DE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:10DE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:10DE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:10DE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:10DE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:10DE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:10DE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:10DE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:10DE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:10DEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:10DEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:10DEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:10DED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:10DEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:10DEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:10DF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:10DF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:10DF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:10DF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:10DF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:10DF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10DF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:10DF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:10DF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:10DF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:10DFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:10DFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:10DFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:10DFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:10DFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:10DFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:10E00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:10E01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:10E02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10E03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10E04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10E05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10E06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10E07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10E08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10E09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10E0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10E0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10E0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10E0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10E0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:10E0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:10E10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:10E11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:10E12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:10E13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10E14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10E15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10E16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10E17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10E18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10E19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10E1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10E1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10E1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10E1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10E1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:10E1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:10E20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:10E21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10E22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10E23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10E24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10E25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10E26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10E27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10E28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10E29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10E2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10E2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10E2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10E2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10E2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10E2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:10E30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:10E31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:10E32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10E33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10E34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10E35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10E36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10E37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10E38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10E39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10E3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10E3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10E3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10E3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10E3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10E3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10E40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:10E41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:10E42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10E43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10E44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10E45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10E46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10E47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10E48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10E49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10E4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10E4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10E4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10E4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10E4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10E4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:10E50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10E51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10E52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:10E53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10E54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10E55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10E56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10E57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10E58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10E59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10E5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10E5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10E5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10E5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10E5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10E5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10E60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:10E61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:10E62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10E63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10E64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10E65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10E66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10E67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10E68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10E69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10E6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10E6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10E6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10E6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10E6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10E6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:10E70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:10E71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:10E72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:10E73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10E74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10E75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10E76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10E77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10E78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10E79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10E7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10E7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10E7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10E7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10E7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10E7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:10E80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:10E81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10E82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10E83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10E84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10E85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10E86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10E87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10E88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10E89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10E8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10E8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10E8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10E8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10E8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10E8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:10E90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10E91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:10E92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:10E93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10E94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10E95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10E96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10E97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10E98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10E99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10E9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10E9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10E9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10E9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10E9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10E9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:10EA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:10EA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:10EA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:10EA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:10EA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:10EA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:10EA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:10EA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:10EA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:10EA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:10EAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:10EAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:10EAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:10EAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:10EAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:10EAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:10EB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:10EB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:10EB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:10EB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:10EB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:10EB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:10EB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:10EB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:10EB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:10EB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:10EBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:10EBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:10EBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:10EBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:10EBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:10EBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:10EC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:10EC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:10EC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:10EC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:10EC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:10EC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:10EC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:10EC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:10EC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:10EC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:10ECA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:10ECB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:10ECC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:10ECD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:10ECE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:10ECF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:10ED0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:10ED1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:10ED2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:10ED3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:10ED4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:10ED5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:10ED6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:10ED7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:10ED8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:10ED9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:10EDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:10EDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:10EDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:10EDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:10EDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:10EDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:10EE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:10EE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:10EE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:10EE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:10EE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:10EE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:10EE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:10EE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:10EE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:10EE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:10EEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:10EEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:10EEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:10EED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:10EEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:10EEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:10EF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:10EF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:10EF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:10EF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:10EF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10EF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:10EF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:10EF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:10EF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:10EF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:10EFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:10EFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:10EFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:10EFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:10EFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:10EFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:10F00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:10F01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10F02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10F03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10F04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10F05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10F06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10F07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10F08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10F09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10F0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10F0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10F0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10F0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:10F0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:10F0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:10F10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:10F11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:10F12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10F13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10F14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10F15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10F16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10F17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10F18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10F19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10F1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10F1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10F1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10F1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:10F1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:10F1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:10F20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10F21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10F22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10F23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10F24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10F25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10F26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10F27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10F28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10F29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10F2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10F2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10F2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10F2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10F2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:10F2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:10F30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:10F31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10F32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10F33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10F34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10F35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10F36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10F37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10F38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10F39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10F3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10F3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10F3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10F3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10F3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10F3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:10F40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:10F41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10F42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10F43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10F44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10F45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10F46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10F47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10F48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10F49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10F4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10F4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10F4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10F4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10F4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:10F4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:10F50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10F51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:10F52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10F53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10F54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10F55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10F56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10F57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10F58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10F59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10F5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10F5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10F5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10F5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10F5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10F5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10F60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:10F61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10F62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10F63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10F64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10F65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10F66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10F67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10F68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10F69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10F6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10F6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10F6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10F6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10F6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:10F6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:10F70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:10F71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:10F72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10F73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10F74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10F75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10F76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10F77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10F78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10F79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10F7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10F7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10F7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10F7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10F7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:10F7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:10F80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10F81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10F82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10F83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10F84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10F85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10F86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10F87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10F88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10F89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10F8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10F8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10F8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10F8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10F8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:10F8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:10F90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:10F91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:10F92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10F93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10F94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10F95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10F96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10F97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10F98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10F99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10F9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10F9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10F9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10F9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10F9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:10F9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10FA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:10FA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:10FA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:10FA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:10FA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:10FA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:10FA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:10FA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:10FA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:10FA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:10FAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:10FAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:10FAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:10FAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:10FAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:10FAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:10FB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:10FB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:10FB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:10FB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:10FB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:10FB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:10FB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:10FB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:10FB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:10FB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:10FBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:10FBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:10FBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:10FBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:10FBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:10FBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:10FC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:10FC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:10FC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:10FC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:10FC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:10FC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:10FC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:10FC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:10FC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:10FC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:10FCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:10FCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:10FCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:10FCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:10FCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:10FCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:10FD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:10FD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:10FD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:10FD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:10FD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:10FD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:10FD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:10FD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:10FD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:10FD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:10FDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:10FDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:10FDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:10FDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:10FDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:10FDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:10FE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:10FE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:10FE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:10FE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:10FE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:10FE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:10FE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:10FE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:10FE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:10FE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:10FEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:10FEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:10FEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:10FED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:10FEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:10FEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:10FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:10FF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:10FF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:10FF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10FF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:10FF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:10FF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:10FF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:10FF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:10FF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:10FFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:10FFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:10FFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:10FFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:10FFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:10FFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:020000022000DC +:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:10040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10041000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10043000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10045000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10047000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10049000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:1004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:1004B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:1004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:1004D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:1004E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:1004F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:10050000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:10051000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10052000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10053000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10054000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10055000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10056000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10057000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10059000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:1005A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:1005B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:1005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:1005D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:1005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:1005F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10061000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10063000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10065000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10066000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10067000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10069000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:1006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:1006B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:1006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:1006D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:1006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:1006F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:10070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:10071000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10073000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10075000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10079000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:1007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:1007B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:1007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:1007D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:1007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:1007F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:10080000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10081000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10083000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10085000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10087000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10089000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:1008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:1008B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:1008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:10091000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10097000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10099000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:1009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:1009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:1009D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1009F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:100A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:100A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:100A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:100A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:100A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:100A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:100A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:100AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:100AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:100AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:100AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:100AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:100B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:100B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:100BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:100BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:100BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:100C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:100C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:100C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:100C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:100C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:100C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:100C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:100CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:100CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:100CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:100CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:100D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:100D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:100D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:100D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:100D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:100D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:100D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:100D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:100D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:100D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:100DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:100DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:100DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:100DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:100DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:100E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:100E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:100E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:100E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:100E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:100E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:100EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:100EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:100EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:100ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:100EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:100EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:100F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:100F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:100F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:100F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:100F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:100F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:100F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:100F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:100F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:100F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:100FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:100FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:100FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:100FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:10100000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10101000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10102000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10103000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10105000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10107000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:1010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:1010B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:1010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:1010D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1010F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10111000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10112000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10113000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10115000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10116000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10117000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10118000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10119000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:1011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:1011B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:1011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1011D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:1011F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:10120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10121000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10125000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10127000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10129000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:1012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:1012B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:1012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1012D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:1012F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10131000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10133000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10135000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10137000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10139000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:1013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:1013B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:1013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:1013D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:1013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:1013F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10141000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10143000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10145000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10147000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10149000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:1014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:1014B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:1014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:1014D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:1014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:1014F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10151000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10153000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10155000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10157000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10159000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:1015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:1015B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:1015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:1015D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:1015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:1015F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:10160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10161000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10163000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10165000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10167000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10169000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:1016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:1016B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:1016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:1016D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:1016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:1016F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10171000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10173000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10175000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10177000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10179000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:1017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:1017B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:1017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:1017D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:1017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:1017F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:10180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10181000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10183000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10185000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10187000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10189000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:1018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:1018B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:1018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1018D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:1018F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10191000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10193000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10195000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10197000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10198000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10199000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:1019A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:1019B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:1019C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:1019D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1019E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:1019F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:101A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:101A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:101A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:101A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:101A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:101A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:101A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:101A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:101A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:101A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:101AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:101AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:101AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:101AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:101AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:101AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:101B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:101B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:101B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:101B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:101B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:101B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:101B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:101B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:101B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:101B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:101BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:101BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:101BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:101BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:101BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:101BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:101C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:101C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:101C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:101C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:101C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:101C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:101C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:101C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:101C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:101C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:101CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:101CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:101CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:101CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:101CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:101CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:101D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:101D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:101D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:101D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:101D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:101D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:101D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:101D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:101D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:101D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:101DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:101DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:101DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:101DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:101DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:101DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:101E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:101E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:101E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:101E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:101E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:101E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:101E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:101E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:101E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:101E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:101EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:101EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:101EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:101ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:101EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:101EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:101F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:101F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:101F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:101F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:101F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:101F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:101F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:101F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:101F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:101F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:101FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:101FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:101FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:101FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:101FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:101FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:10200000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10201000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10202000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10203000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10204000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10205000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10206000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10207000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10208000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10209000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:1020A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:1020B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:1020C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1020D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1020E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:1020F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10210000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10211000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10212000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10213000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10214000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10215000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10216000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10217000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10218000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10219000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:1021A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:1021B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1021C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1021D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:1021E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:1021F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10220000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10221000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10222000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10223000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10224000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10225000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10226000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10227000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10228000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10229000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:1022A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:1022B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1022C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1022D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:1022E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:1022F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10230000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10231000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10232000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10233000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10234000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10235000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10236000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10237000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10238000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10239000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:1023A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:1023B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:1023C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:1023D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:1023E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:1023F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10240000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10241000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10242000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10243000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10244000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10245000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10246000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10247000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10248000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10249000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:1024A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:1024B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:1024C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:1024D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:1024E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:1024F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10250000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10251000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10252000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10253000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10254000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10255000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10256000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10257000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10258000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10259000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:1025A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:1025B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:1025C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:1025D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:1025E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:1025F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10260000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10261000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10262000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10263000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10264000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10265000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10266000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10267000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10268000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10269000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:1026A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:1026B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:1026C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:1026D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:1026E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:1026F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10270000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10271000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10272000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10273000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10274000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10275000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10276000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10277000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10278000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10279000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:1027A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:1027B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:1027C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:1027D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:1027E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:1027F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10280000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10281000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10282000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10283000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10284000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10285000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10286000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10287000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10288000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10289000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:1028A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:1028B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1028C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1028D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:1028E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:1028F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10290000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10291000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10292000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10293000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10294000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10295000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10296000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10297000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10298000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10299000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:1029A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:1029B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:1029C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1029D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:1029E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:1029F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:102A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:102A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:102A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:102A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:102A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:102A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:102A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:102A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:102A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:102A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:102AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:102AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:102AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:102AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:102AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:102AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:102B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:102B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:102B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:102B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:102B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:102B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:102B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:102B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:102B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:102B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:102BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:102BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:102BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:102BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:102BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:102BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:102C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:102C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:102C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:102C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:102C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:102C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:102C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:102C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:102C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:102C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:102CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:102CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:102CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:102CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:102CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:102CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:102D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:102D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:102D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:102D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:102D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:102D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:102D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:102D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:102D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:102D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:102DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:102DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:102DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:102DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:102DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:102DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:102E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:102E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:102E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:102E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:102E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:102E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:102E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:102E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:102E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:102E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:102EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:102EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:102EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:102ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:102EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:102EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:102F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:102F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:102F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:102F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:102F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:102F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:102F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:102F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:102F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:102F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:102FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:102FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:102FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:102FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:102FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:102FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:10300000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10301000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10302000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10303000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10304000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10305000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10306000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10307000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10308000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10309000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:1030A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:1030B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1030C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1030D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:1030E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:1030F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10310000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10311000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10312000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10313000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10314000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10315000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10316000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10317000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10318000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10319000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:1031A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1031B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1031C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:1031D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:1031E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:1031F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10320000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10321000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10322000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10323000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10324000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10325000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10326000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10327000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10328000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10329000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:1032A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1032B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1032C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:1032D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:1032E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:1032F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10331000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10332000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10333000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10334000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10335000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10336000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10337000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10338000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10339000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:1033A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:1033B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:1033C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:1033D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:1033E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:1033F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10340000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10341000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10342000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10343000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10344000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10345000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10346000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10347000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10348000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10349000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:1034A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:1034B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:1034C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:1034D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:1034E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:1034F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10350000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10351000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10352000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10353000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10354000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10355000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10356000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10357000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10358000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10359000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:1035A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:1035B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:1035C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:1035D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:1035E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:1035F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10360000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10361000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10362000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10363000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10364000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10365000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10366000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10367000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10368000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10369000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:1036A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:1036B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:1036C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:1036D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:1036E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:1036F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10370000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10371000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10372000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10373000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10374000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10375000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10376000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10377000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10378000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10379000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:1037A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:1037B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:1037C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:1037D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:1037E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:1037F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10380000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10381000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10382000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10383000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10384000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10385000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10386000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10387000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10388000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10389000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:1038A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1038B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1038C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:1038D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:1038E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:1038F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10390000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10391000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10392000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10393000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10394000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10395000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10396000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10397000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10398000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10399000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:1039A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:1039B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1039C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:1039D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:1039E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:1039F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:103A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:103A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:103A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:103A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:103A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:103A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:103A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:103A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:103A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:103A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:103AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:103AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:103AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:103AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:103AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:103AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:103B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:103B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:103B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:103B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:103B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:103B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:103B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:103B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:103B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:103B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:103BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:103BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:103BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:103BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:103BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:103BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:103C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:103C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:103C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:103C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:103C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:103C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:103C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:103C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:103C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:103C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:103CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:103CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:103CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:103CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:103CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:103CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:103D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:103D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:103D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:103D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:103D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:103D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:103D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:103D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:103D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:103D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:103DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:103DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:103DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:103DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:103DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:103DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:103E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:103E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:103E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:103E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:103E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:103E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:103E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:103E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:103E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:103E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:103EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:103EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:103EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:103ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:103EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:103EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:103F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:103F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:103F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:103F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:103F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:103F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:103F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:103F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:103F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:103F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:103FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:103FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:103FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:103FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:103FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:103FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10400000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10401000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10402000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10403000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10404000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10405000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10406000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10407000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10408000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:10409000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:1040A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1040B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1040C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:1040D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:1040E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:1040F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10410000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10411000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10412000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10413000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10414000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10415000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10416000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10417000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10418000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:10419000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1041A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1041B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:1041C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:1041D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:1041E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:1041F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10420000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10421000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10422000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10423000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10424000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10425000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10426000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10427000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10428000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10429000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1042A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1042B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:1042C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:1042D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:1042E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:1042F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10430000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10431000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10432000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10433000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10434000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10435000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10436000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10437000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10438000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10439000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:1043A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:1043B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:1043C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:1043D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:1043E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:1043F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10440000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10441000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10442000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10443000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10444000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10445000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10446000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10447000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10448000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10449000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:1044A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:1044B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:1044C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:1044D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:1044E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:1044F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10450000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10451000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10452000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10453000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10454000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10455000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10456000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10457000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10458000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10459000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:1045A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:1045B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:1045C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:1045D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:1045E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:1045F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10460000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10461000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10462000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10463000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10464000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10465000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10466000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10467000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10468000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10469000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:1046A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:1046B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:1046C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:1046D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:1046E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:1046F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10470000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10471000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10472000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10473000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10474000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10475000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10476000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10477000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10478000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10479000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:1047A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:1047B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:1047C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:1047D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:1047E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:1047F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10480000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10481000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10482000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10483000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10484000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10485000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10486000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10487000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10488000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10489000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1048A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1048B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:1048C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:1048D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:1048E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:1048F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10490000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10491000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10492000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10493000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10494000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10495000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10496000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10497000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10498000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10499000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:1049A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1049B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:1049C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:1049D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:1049E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:1049F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:104A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:104A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:104A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:104A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:104A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:104A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:104A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:104A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:104A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:104A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:104AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:104AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:104AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:104AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:104AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:104AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:104B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:104B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:104B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:104B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:104B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:104B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:104B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:104B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:104B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:104B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:104BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:104BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:104BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:104BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:104BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:104BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:104C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:104C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:104C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:104C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:104C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:104C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:104C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:104C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:104C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:104C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:104CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:104CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:104CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:104CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:104CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:104CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:104D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:104D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:104D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:104D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:104D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:104D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:104D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:104D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:104D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:104D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:104DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:104DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:104DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:104DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:104DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:104DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:104E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:104E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:104E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:104E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:104E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:104E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:104E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:104E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:104E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:104E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:104EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:104EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:104EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:104ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:104EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:104EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:104F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:104F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:104F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:104F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:104F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:104F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:104F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:104F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:104F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:104F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:104FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:104FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:104FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:104FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:104FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:104FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:10500000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10501000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10502000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10503000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10504000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10505000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10506000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10507000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:10508000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:10509000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1050A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1050B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:1050C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:1050D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:1050E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:1050F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10510000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10511000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10512000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10513000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10514000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10515000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10516000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10517000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:10518000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:10519000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1051A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:1051B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:1051C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:1051D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:1051E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:1051F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10520000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10521000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10522000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10523000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10524000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10525000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10526000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10527000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10528000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:10529000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1052A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:1052B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:1052C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:1052D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:1052E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:1052F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10530000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10531000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10532000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10533000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10534000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10535000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10536000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10537000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10538000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10539000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:1053A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:1053B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:1053C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:1053D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:1053E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:1053F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10540000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10541000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10542000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10543000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10544000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10545000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10546000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10547000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10548000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:10549000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:1054A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:1054B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:1054C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:1054D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:1054E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:1054F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10550000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10551000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10552000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10553000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10554000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10555000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10556000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10557000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10558000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10559000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:1055A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:1055B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:1055C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:1055D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:1055E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:1055F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10560000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10561000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10562000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10563000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10564000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10565000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10566000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10567000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10568000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:10569000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:1056A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:1056B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:1056C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:1056D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:1056E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:1056F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10570000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10571000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10572000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10573000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10574000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10575000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10576000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10577000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10578000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:10579000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:1057A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:1057B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:1057C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:1057D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:1057E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:1057F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10580000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10581000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10582000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10583000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10584000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10585000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10586000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10587000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10588000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:10589000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1058A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:1058B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:1058C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:1058D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:1058E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:1058F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10590000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10591000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10592000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10593000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10594000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10595000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10596000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10597000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10598000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:10599000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1059A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:1059B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:1059C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:1059D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:1059E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:1059F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:105A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:105A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:105A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:105A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:105A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:105A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:105A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:105A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:105A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:105A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:105AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:105AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:105AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:105AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:105AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:105AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:105B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:105B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:105B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:105B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:105B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:105B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:105B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:105B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:105B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:105B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:105BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:105BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:105BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:105BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:105BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:105BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:105C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:105C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:105C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:105C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:105C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:105C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:105C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:105C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:105C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:105C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:105CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:105CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:105CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:105CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:105CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:105CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:105D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:105D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:105D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:105D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:105D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:105D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:105D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:105D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:105D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:105D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:105DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:105DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:105DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:105DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:105DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:105DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:105E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:105E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:105E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:105E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:105E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:105E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:105E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:105E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:105E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:105E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:105EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:105EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:105EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:105ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:105EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:105EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:105F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:105F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:105F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:105F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:105F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:105F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:105F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:105F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:105F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:105F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:105FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:105FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:105FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:105FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:105FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:105FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:10600000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10601000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10602000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10603000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10604000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10605000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10606000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:10607000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:10608000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:10609000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1060A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:1060B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:1060C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:1060D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:1060E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:1060F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10610000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10611000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10612000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10613000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10614000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10615000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10616000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:10617000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:10618000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:10619000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:1061A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:1061B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:1061C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:1061D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:1061E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:1061F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10620000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10621000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10622000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10623000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10624000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10625000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10626000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10627000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:10628000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:10629000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:1062A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:1062B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:1062C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:1062D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:1062E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:1062F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10630000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10631000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10632000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10633000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10634000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10635000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10636000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10637000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10638000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:10639000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:1063A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:1063B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:1063C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:1063D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:1063E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:1063F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10640000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10641000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10642000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10643000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10644000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10645000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10646000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10647000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:10648000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:10649000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:1064A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:1064B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:1064C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:1064D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:1064E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:1064F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10650000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10651000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10652000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10653000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10654000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10655000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10656000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10657000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10658000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10659000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:1065A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:1065B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:1065C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:1065D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:1065E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:1065F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10660000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10661000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10662000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10663000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10664000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10665000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10666000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10667000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:10668000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:10669000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:1066A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:1066B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:1066C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:1066D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:1066E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:1066F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10670000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10671000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10672000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10673000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10674000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10675000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10676000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10677000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:10678000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:10679000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:1067A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:1067B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:1067C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:1067D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:1067E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:1067F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10680000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10681000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10682000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10683000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10684000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10685000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10686000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10687000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:10688000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:10689000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:1068A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:1068B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:1068C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:1068D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:1068E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:1068F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10690000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10691000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10692000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10693000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10694000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10695000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10696000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10697000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:10698000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10699000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:1069A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:1069B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:1069C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:1069D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:1069E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:1069F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:106A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:106A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:106A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:106A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:106A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:106A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:106A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:106A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:106A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:106A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:106AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:106AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:106AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:106AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:106AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:106AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:106B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:106B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:106B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:106B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:106B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:106B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:106B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:106B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:106B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:106B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:106BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:106BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:106BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:106BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:106BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:106BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:106C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:106C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:106C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:106C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:106C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:106C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:106C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:106C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:106C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:106C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:106CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:106CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:106CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:106CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:106CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:106CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:106D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:106D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:106D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:106D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:106D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:106D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:106D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:106D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:106D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:106D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:106DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:106DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:106DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:106DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:106DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:106DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:106E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:106E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:106E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:106E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:106E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:106E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:106E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:106E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:106E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:106E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:106EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:106EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:106EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:106ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:106EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:106EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:106F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:106F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:106F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:106F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:106F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:106F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:106F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:106F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:106F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:106F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:106FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:106FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:106FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:106FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:106FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:106FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:10700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10701000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10702000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10703000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10704000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10705000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:10706000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:10707000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:10708000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:10709000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:1070A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:1070B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:1070C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:1070D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:1070E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:1070F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10710000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10711000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10712000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10713000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10714000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10715000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:10716000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:10717000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:10718000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:10719000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:1071A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:1071B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:1071C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:1071D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:1071E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:1071F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10720000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10721000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10722000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10723000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10724000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10725000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10726000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:10727000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:10728000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10729000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:1072A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:1072B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:1072C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:1072D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:1072E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:1072F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10730000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10731000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10732000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10733000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10734000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10735000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10736000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10737000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:10738000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:10739000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:1073A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:1073B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:1073C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:1073D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:1073E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:1073F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10740000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10741000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10742000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10743000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10744000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10745000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10746000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:10747000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:10748000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:10749000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:1074A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:1074B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:1074C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:1074D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:1074E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:1074F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10750000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10751000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10752000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10753000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10754000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10755000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10756000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10757000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10758000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10759000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:1075A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:1075B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:1075C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:1075D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:1075E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:1075F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10760000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10761000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10762000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10763000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10764000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10765000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10766000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:10767000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:10768000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:10769000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:1076A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:1076B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:1076C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:1076D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:1076E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:1076F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10770000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10771000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10772000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10773000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10774000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10775000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10776000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:10777000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:10778000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:10779000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:1077A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:1077B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:1077C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:1077D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:1077E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:1077F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10780000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10781000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10782000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10783000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10784000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10785000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10786000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:10787000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:10788000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10789000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:1078A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:1078B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:1078C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:1078D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:1078E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:1078F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10790000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10791000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10792000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10793000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10794000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10795000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10796000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:10797000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10798000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:10799000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:1079A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:1079B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:1079C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:1079D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:1079E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:1079F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:107A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:107A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:107A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:107A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:107A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:107A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:107A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:107A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:107A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:107A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:107AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:107AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:107AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:107AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:107AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:107AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:107B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:107B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:107B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:107B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:107B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:107B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:107B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:107B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:107B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:107B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:107BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:107BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:107BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:107BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:107BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:107BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:107C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:107C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:107C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:107C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:107C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:107C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:107C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:107C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:107C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:107C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:107CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:107CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:107CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:107CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:107CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:107CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:107D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:107D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:107D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:107D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:107D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:107D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:107D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:107D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:107D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:107D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:107DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:107DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:107DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:107DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:107DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:107DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:107E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:107E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:107E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:107E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:107E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:107E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:107E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:107E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:107E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:107E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:107EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:107EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:107EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:107ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:107EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:107EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:107F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:107F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:107F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:107F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:107F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:107F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:107F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:107F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:107F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:107F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:107FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:107FB000FFFFFFFF464F474F35470000005F424F2E +:107FC000455F5F0000005F474C535F4C4E565F00BB +:107FD0000000000000000000240100002401000057 +:107FE000842801000200085A0200085A01000C000F +:107FF0000200080002000001050600004D207597F0 +:1080000003FFFF0000030301010000000000000067 +:10801000380000003800113B0000113B0800000050 +:108020005C1A0000941A0000941A113B5C1A113B70 +:108030000800000038000000960000009600113B88 +:108040003800113B0A000000FE1900005C1A000015 +:108050005C1A113BFE19113B0A000000960000005B +:10806000370200003702113B9600113B0000000070 +:108070005D180000FE190000FE19113B5D18113B50 +:1080800000000000000000000000000000000000F0 +:1080900000000000000000000000000000000000E0 +:1080A00000000000000000000000000000000000D0 +:1080B00000000000000000000000000000000000C0 +:1080C00000000000000000000000000000000000B0 +:1080D00000000000000000000000000000000000A0 +:1080E0000000000000000000000000000000000090 +:1080F0000000000000000000000000000000000080 +:10810000000000000000000000000000000000006F +:10811000000000000000000000000000000000005F +:10812000000000000000000000000000000000004F +:10813000000000000000000000000000000000003F +:10814000000000000000000000000000000000002F +:10815000000000000000000000000000000000001F +:10816000000000000000000000000000000000000F +:108170000000000096004536CC044536CC04113B87 +:108180009600113B00000000C8154536FE19453623 +:10819000FE19113BC815113B000000002C01140012 +:1081A0003F000F00530119001E0003144014C00FBC +:1081B00023000C081405D007840350006400B0FFAE +:1081C0009CFF0A000100C00001010120011201060C +:1081D0000103F4018813E803E803B80B2C01F4024F +:1081E000E803D007D0073C05AD277F27BB23E92351 +:1081F000AD277F27BB23E923A2277627B423DE23DD +:108200006C076400900180024001640060002E0150 +:1082100000501E0F0A004C01010C00023E01020436 +:108220000606040202030C0340020100032D0A0AA1 +:108230000200C80914100F191900000040020000C4 +:1082400080BB0000A086010055002D0041000A00FF +:108250000A005300D00790019001D007F000C2013E +:10826000C201F000F000F00002000B0B20420202FD +:108270004020030C0900F40102006E00DC05000040 +:108280007BFFF00000800000FFFFFFFFFFFF00000A +:108290001C00000098040200B80802000100000061 +:1082A00000001400ECFF14000000000000005A035E +:1082B000AC0802000200000000001400ECFF1400F3 +:1082C0000000000000005A03A008020003000000A4 +:1082D00000001400ECFF14000000000000005A032E +:1082E000D01202000400000000001400ECFF140093 +:1082F0000000000000005A03940802000A00000079 +:1083000014003C00C4FFECFF32007D00364A3C0FF5 +:10831000880802000B00000028005A00A6FFD8FFC2 +:108320000000000000003C037C0802000800000080 +:1083300032006E000000000000000000263A4109F3 +:1083400068080200090100003C00B40000000000C1 +:1083500000000000263A410954080200090100000B +:108360003C00B4000000000000000000263A410973 +:10837000480802000500000032006E000000000006 +:1083800000000000061A46093C0802000600000032 +:108390006400AA0000000000000000000000460188 +:1083A00028080200070100006400BE000000000071 +:1083B0000000000000004601140802000701000050 +:1083C0006400BE0000000000000000000000460144 +:1083D00000080200070100006400BE000000000069 +:1083E0000000000000004601F40702000F0000003A +:1083F0001E005A00F1FF1E000000000000003C03B8 +:10840000E8070200100000001E004600F6FF0A0008 +:108410000000000000003C03DC0702000C0000002C +:108420000A003C00000000000F00A500263A3C0DA9 +:10843000D0070200110000000A003C00000000000C +:108440000F00A500061A3C0DC40702001200000030 +:108450000A003C00000000000F00A500162A3C0D99 +:10846000B80702000D00000028006000A0FFD8FF40 +:108470004CFF280000004607AC0702000E00000079 +:108480002800600028006000000000000000460393 +:10849000A00702001500000028006400C4FF0000CF +:1084A0000000000010303C0B940702001500000093 +:1084B00028006400C4FF00000000000010303C0BE6 +:1084C000880702001600000032006400000032003D +:1084D0000000000030403C0B740702001701000050 +:1084E0006400BE0000000000000000000000460123 +:1084F00060070200170100006400BE0000000000D9 +:1085000000000000000046014C07020017010000B7 +:108510006E00B400000000000000000000004601F2 +:1085200038070200170100006E00B40000000000D0 +:10853000000000000000460122170F0136380B1022 +:10854000181F252B3135393E050C1114211607391A +:108550003F0E131B242A2F34383C02080E13171A1F +:108560001F150A3A360D04352F2A221C1714100C39 +:10857000063E3936221911023835110939322D26B5 +:108580001F1A16120D063F3A21150E0E1019283328 +:108590003A3D0000003B352F1D14110F0F10000055 +:1085A0003E3A322315100E10162100001E2A3033D9 +:1085B00037010A1013150000191410063D39342B29 +:1085C00024200000040405060B15191A1A1A0000CD +:1085D0003434353535000D0E0D0E00000B0B0A0A34 +:1085E000093936363635000000000A16181811030E +:1085F000003F0000221C150D08090E161D22000068 +:108600003F0C0D122533363C080F0C193435390A4E +:108610000D0E013A363F0E11110C323336040E1096 +:108620000D333337070E0E070B0F110E3333353B67 +:108630000A101110343437020C0F0D0B0E103135A7 +:108640000A0F32370C0E000032343E0C0836360466 +:108650000E0E00000E0F0F0D0236333335080E0ECE +:108660000B0439333233363E3D090F10100A3934CA +:108670003435030D0F0D0637343333360F0C3F35C9 +:108680003C0C083A343400003D3931221A151008E8 +:10869000023D0000231D1916120E08023E3B000089 +:1086A000202020202020202020200000101010104A +:1086B00010101010101000003030303030303030DA +:1086C00030300000FF7F14000000000001000000B7 +:1086D000113B00000000000001000000000000004D +:1086E0000100000000000000941A000001000000DA +:1086F00000000000000000000B0B00000100000063 +:1087000002000000000000050B0205000A00000046 +:108710000800090001000000F600BA0293041906DF +:108720006807F3084A0A880BB70CDD0DFC0E3310FE +:108730008E1123136C14F015D5178A19EC00C4029E +:10874000970465065C08FF09F70BD70DB60F791182 +:108750005A133D151B17E718C51A8D1C781E3820B3 +:108760002122EE23C025A4277929532B292D132F4D +:10877000FD30BC3268344C364A38243ABF004402DB +:10878000BE032D05B40615089609090B960C0C0EB0 +:10879000870FF9107B12E3137215C8168F18D219C0 +:1087A00026020602E601C601A6018601660146010F +:1087B00026011B01FB00DB00BB009B007B005B0074 +:1087C0003B001B0025020502E501C501A50185014D +:1087D0006501450125011C01FC00DC00BC009C007A +:1087E0007C005C003C001C0024020402E401C40183 +:1087F000A40184016401440124011D01FD00DD0088 +:10880000BD009D007D005D003D001D0023020302B0 +:10881000E301C301A30183016301430123011E019D +:10882000FE00DE00BE009E007E005E003E001E00D8 +:1088300022020202E201C201A2018201620142019E +:1088400022011F01FF00DF00BF009F007F005F00CB +:108850003F001F0021020102E101C101A1018101CC +:1088600061014101210120010001E000C000A000E0 +:108870008000600040002000400220020002E00171 +:10888000C001A0018001600140010101E100C100BF +:10889000A100810061004100210001003F021F0290 +:1088A000FF01DF01BF019F017F015F013F01020165 +:1088B000E200C200A2008200620042002200020028 +:1088C0003E021E02FE01DE01BE019E017E015E012E +:1088D0003E010301E300C300A300830063004300E3 +:1088E000230003003D021D02FD01DD01BD019D01CC +:1088F0007D015D013D010401E400C400A400840089 +:1089000064004400240004003C021C02FC01DC0161 +:10891000BC019C017C015C013C010501E500C50036 +:10892000A500850065004500250005003B021B02EF +:10893000FB01DB01BB019B017B015B013B010601EC +:10894000E600C600A6008600660046002600060077 +:108950003A021A02FA01DA01BA019A017A015A01BD +:108960003A010701E700C700A7008700670047003A +:108970002700070039021902F901D901B90199014B +:108980007901590139010801E800C800A8008800F0 +:10899000680048002800080038021802F801D801D1 +:1089A000B80198017801580138010901E900C900AE +:1089B000A90089006900490029000900370217024F +:1089C000F701D701B70197017701570137010A0174 +:1089D000EA00CA00AA008A006A004A002A000A00C7 +:1089E00036021602F601D601B6019601760156014D +:1089F00036010B01EB00CB00AB008B006B004B0092 +:108A00002B000B0035021502F501D501B5019501CA +:108A10007501550135010C01EC00CC00AC008C0057 +:108A20006C004C002C000C0034021402F401D40140 +:108A3000B40194017401540134010D01ED00CD0025 +:108A4000AD008D006D004D002D000D0033021302AE +:108A5000F301D301B30193017301530133010E01FB +:108A6000EE00CE00AE008E006E004E002E000E0016 +:108A700032021202F201D201B201920172015201DC +:108A800032010F01EF00CF00AF008F006F004F00E9 +:108A90002F000F0031021102F101D101B10191014A +:108AA0007101510131011001F000D000B0009000BF +:108AB000700050003000100030021002F001D001B0 +:108AC000B00190017001500130011101F100D1009D +:108AD000B100910071005100310011002F020F020E +:108AE000EF01CF01AF018F016F014F012F01120183 +:108AF000F200D200B2009200720052003200120066 +:108B00002E020E02EE01CE01AE018E016E014E016B +:108B10002E011301F300D300B30093007300530040 +:108B2000330013002D020D02ED01CD01AD018D01C9 +:108B30006D014D012D011401F400D400B400940026 +:108B400074005400340014002C020C02EC01CC011F +:108B5000AC018C016C014C012C011501F500D50014 +:108B6000B500950075005500350015002B020B026D +:108B7000EB01CB01AB018B016B014B012B0116010A +:108B8000F600D600B60096007600560036001600B5 +:108B90002A020A02EA01CA01AA018A016A014A01FB +:108BA0002A011701F700D700B70097007700570098 +:108BB0003700170029020902E901C901A901890149 +:108BC0006901490129011801F800D800B80098008E +:108BD000780058003800180028020802E801C8018F +:108BE000A80188016801480128011901F900D9008C +:108BF000B9009900790059003900190027020702CD +:108C0000E701C701A70187016701470127011A0191 +:108C1000FA00DA00BA009A007A005A003A001A0004 +:108C2000FFFF0100F1D8FFFFF1D8FFFFF1D8FFFFF0 +:108C3000F1D8FFFF010000003C013C0154017C0120 +:108C40009E016601B801E6018E01F2013C0154016A +:108C50007C019E016601B801E6018E01F2013C0132 +:108C600006020504030402010301060504030402CD +:108C70000103010603060708090A0B0C0D0E00008C +:108C8000010101410101010701010100FFFF020093 +:108C90000B0C0C0C0C0C0C0D0D0D0000940F0200B5 +:108CA000840F0200740F0200600F02004C0F0200DC +:108CB000340F02001C0F0200000F0200E40E02003D +:108CC000C40E0200AE00650080009D00BB00DA000B +:108CD000FA0018013601510168017C018C019601EE +:108CE0009C010000B1006F008E00B000D300F700BF +:108CF0001B013E015E017B019301A601B301BA0194 +:108D0000B6007B009F00C700F1001B0144016B010E +:108D10008E01AC01C401D401DC0100005D004400FF +:108D20005A0072008A00A400BC00D100E400F300E5 +:108D3000FE00030161004D0068008400A200C00035 +:108D4000DB00F300070114011B010000650058005F +:108D500079009D00C200E40003011D012F013801CC +:108D60006A0067009100BE00EB00140136014F015C +:108D70005C01000072007C00B200EB002401530192 +:108D8000760188017C009900E2002E017301A601A2 +:108D9000C20100006700CD0041018B013075000069 +:108DA000040000000204060000000000400800006B +:108DB0001020000004800000FFFFFFFFFFFFFFFF07 +:108DC0000001020001020304050607080001020079 +:108DD0000102030405060708010000002EFFFFFF43 +:108DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:108DF00037F900002F200000FF07FF0712200A00AC +:108E00001220002184280900842801002402000087 +:108E100001280200085A0200085A01000C00020052 +:108E20000800290B401900012BEBF9FFFFFFFFFFA2 +:108E3000FFFFFFFFFFFFFFFFFFFFFF2CFFFFFFFF15 +:108E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:108E5000FFFFFFFF2CFFFFFFFFFFFFFFFFFFFFFFF5 +:108E6000FFFFFFFFFF0000002BEBF9FFFF000000FA +:108E7000290B401900010000280200085A020008CE +:108E80005A01000C0002000800000000240200004B +:108E900001000000230200002205060021842809A9 +:108EA0000084280100000000200000FF07FF0712D7 +:108EB000200A001220000000010400000000000051 +:108EC0000100000000000000842801000200085A90 +:108ED0000200085A01000C00020008000200000114 +:108EE00005060000FFFFFFFFFFFFFFFFFFFFFFFF83 +:108EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:108F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:108F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:108F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:108F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:108F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:108F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:108F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:108F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:108F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:108F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:108FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:108FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:108FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:108FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:108FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:108FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:10900000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10901000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:10902000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:10903000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:10904000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:10905000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:10906000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:10907000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10908000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10909000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:1090A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:1090B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:1090C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:1090D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:1090E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:1090F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10910000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:10911000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:10912000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:10913000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:10914000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:10915000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:10916000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:10917000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:10918000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10919000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:1091A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:1091B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:1091C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:1091D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:1091E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:1091F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10920000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10921000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10922000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10923000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10924000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:10925000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:10926000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10927000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10928000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10929000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:1092A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:1092B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:1092C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:1092D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:1092E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:1092F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10930000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10931000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10932000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10933000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10934000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10935000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:10936000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:10937000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10938000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10939000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:1093A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:1093B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:1093C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:1093D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:1093E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:1093F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10940000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10941000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10942000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10943000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10944000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:10945000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:10946000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:10947000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10948000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10949000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:1094A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:1094B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:1094C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:1094D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:1094E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:1094F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10950000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10951000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10952000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10953000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10954000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10955000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10956000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10957000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:10958000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10959000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:1095A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:1095B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:1095C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:1095D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:1095E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:1095F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10960000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10961000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10962000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10963000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10964000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:10965000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:10966000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:10967000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10968000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10969000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:1096A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:1096B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:1096C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:1096D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:1096E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:1096F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10970000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10971000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10972000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10973000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10974000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:10975000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:10976000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:10977000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:10978000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10979000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:1097A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:1097B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:1097C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:1097D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:1097E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:1097F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10980000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10981000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10982000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10983000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10984000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:10985000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:10986000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10987000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10988000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10989000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:1098A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:1098B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:1098C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:1098D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:1098E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:1098F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10990000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10991000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10992000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10993000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10994000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:10995000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10996000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:10997000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:10998000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10999000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:1099A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:1099B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:1099C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:1099D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:1099E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:1099F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:109A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:109A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:109A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:109A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:109A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:109A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:109A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:109A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:109A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:109A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:109AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:109AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:109AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:109AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:109AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:109AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:109B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:109B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:109B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:109B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:109B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:109B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:109B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:109B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:109B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:109B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:109BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:109BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:109BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:109BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:109BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:109BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:109C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:109C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:109C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:109C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:109C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:109C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:109C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:109C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:109C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:109C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:109CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:109CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:109CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:109CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:109CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:109CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:109D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:109D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:109D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:109D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:109D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:109D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:109D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:109D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:109D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:109D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:109DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:109DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:109DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:109DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:109DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:109DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:109E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:109E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:109E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:109E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:109E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:109E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:109E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:109E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:109E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:109E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:109EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:109EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:109EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:109ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:109EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:109EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:109F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:109F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:109F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:109F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:109F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:109F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:109F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:109F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:109F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:109F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:109FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:109FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:109FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:109FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:109FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:109FF000FFFFFFFFFFFFFFFFFFFFFFFF0970BF7CB9 +:10A00000120000000000000000000000000000003E +:10A01000050000000000000016019005000000008F +:10A020005401000050006E002C01AF006400960047 +:10A030002341411E0F4641060A000000BC020000F9 +:10A04000C800DC005802AF006400DC002341460F6A +:10A05000145A41060A00000019006455190064559D +:10A060009600C800320000000B0F234604000000D9 +:10A070009600C80032000000060A324604000000C4 +:10A080005A000A00B40082002000000A0250240591 +:10A090005A000A00B40082002000000A0250240581 +:10A0A000DC05000050007800260201005E0104007B +:10A0B00026020000780020032602040000000000B1 +:10A0C000C4090000DC050000B00400002C01000001 +:10A0D000B80B000001041900BD00D719EC00253AA7 +:10A0E00000000000D300D600F401B8010000000019 +:10A0F00000010101A101F3010000000000000000C7 +:10A10000803E0000C80064005000E80332000200F6 +:10A1100009100719190001030001060A00000000D8 +:10A120001801000064000000D0078C0AD80E570008 +:10A13000FF0014009001140A04020F0A2800020014 +:10A14000000000000000000000000000000000000F +:10A150006E006E006E0000000000000000000000B5 +:10A16000C80090010600010A9600E80318FCC80028 +:10A1700050006E00CEFF5A000300000000000000F7 +:10A180009600B004B004C80001002C0196000A003B +:10A190005407580296000202B80BE803500064000E +:10A1A00046009CFFB0FF00000007001100070110EF +:10A1B000110E181403000000000000000000000051 +:10A1C000B4003C00C2015000B4000000C800F4011B +:10A1D000540146035014000000000000000000007D +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000E48BB7E653 +:10A20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:10A21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:10A22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:10A23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:10A24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:10A25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10A26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10A27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10A28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10A29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10A2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10A2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10A2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10A2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10A2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10A2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:10A30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:10A31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:10A32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:10A33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10A34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:10A35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:10A36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10A37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10A38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10A39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10A3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10A3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10A3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10A3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10A3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10A3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:10A40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10A41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10A42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10A43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:10A44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:10A45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:10A46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10A47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10A48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10A49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10A4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10A4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10A4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10A4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10A4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10A4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:10A50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:10A51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:10A52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:10A53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10A54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10A55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10A56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +:10A57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:10A58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +:10A59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:10A5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +:10A5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:10A5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +:10A5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:10A5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10A5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:10A60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:10A61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:10A62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:10A63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:10A64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:10A65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:10A66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10A67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10A68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10A69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10A6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10A6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10A6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +:10A6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:10A6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +:10A6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:10A70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:10A71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:10A72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:10A73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:10A74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +:10A75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:10A76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:10A77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:10A78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:10A79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:10A7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10A7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10A7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10A7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10A7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:10A7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:10A80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +:10A81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:10A82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +:10A83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:10A84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:10A85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10A86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +:10A87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:10A88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:10A89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:10A8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10A8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10A8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:10A8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:10A8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:10A8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:10A90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:10A91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:10A92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10A93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:10A94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10A95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:10A96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +:10A97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:10A98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10A99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10A9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10A9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:10A9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +:10A9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:10A9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10A9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:10AA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:10AA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:10AA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:10AA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:10AA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:10AA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:10AA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:10AA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:10AA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:10AA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:10AAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:10AAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:10AAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:10AAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:10AAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:10AAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:10AB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:10AB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:10AB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:10AB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:10AB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:10AB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:10AB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:10AB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:10AB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:10AB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:10ABA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:10ABB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:10ABC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:10ABD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:10ABE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:10ABF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:10AC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:10AC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:10AC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:10AC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:10AC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:10AC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:10AC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:10AC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:10AC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:10AC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:10ACA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:10ACB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:10ACC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:10ACD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:10ACE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:10ACF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:10AD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:10AD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:10AD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:10AD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:10AD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:10AD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:10AD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:10AD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:10AD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:10AD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:10ADA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:10ADB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:10ADC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:10ADD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:10ADE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:10ADF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:10AE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:10AE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:10AE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:10AE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:10AE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:10AE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:10AE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:10AE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:10AE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:10AE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:10AEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:10AEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:10AEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:10AED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:10AEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:10AEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:10AF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:10AF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:10AF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:10AF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:10AF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:10AF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:10AF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:10AF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:10AF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10AF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:10AFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:10AFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:10AFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:10AFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:10AFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:10AFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:10B00000FC403C13FAA33C1BF83C2E27F2993C135E +:10B01000FAA13C1BF83584203E17F222CA0D2E37C8 +:10B02000E3E42E66E4302E47E3E580224470010C11 +:10B0300044922F40D50D84013E07F222D545814927 +:10B0400042A11C7300A500C75AA002078C4197506B +:10B05000E2A6E9F6D50D8C2196485A30FF075A48EA +:10B06000FFF7D3F58085D5F380838065D5F03E3733 +:10B07000E3E43E47E3E5AE40C11B2E27E3E4E246AE +:10B08000E808EA5CEA32EBCD000000C75A0802117A +:10B09000E622E81AEA2CEA32EA6B0210000D0200FE +:10B0A000000E3C0BF83B3C1BF8368401FCC08400CE +:10B0B000843F3E17E3E43E17E3E5843F3C1BF8364C +:10B0C0003C1BF83BFCC08402D5F4FC4183803C036C +:10B0D000F19B8101F0818404814281233C73F19CC6 +:10B0E000DD4A84C05A08011084048420DD41EB6AE3 +:10B0F00084C05A0801072E67F2218EC15C630001EB +:10B100008404EAB9FA17DD4A5A080107FA178420BD +:10B11000DD418400D504FA17EA59C8033E07F2213D +:10B12000840ADD4A5A08010C8404EAB98420840A9E +:10B13000DD41FA058420DD4184C0D505FA05DD4AEC +:10B140005A0001F45A980204480000B55AA8016C4C +:10B150002E07F2205A0001043EA7F220EB6A5A00A3 +:10B16000011DC005E6044EF200ADD54684013E0740 +:10B17000F2243C13F197840A3DCBF90F3C8BF90E76 +:10B18000DD4FFA053C13F198DD4F84048420DD4146 +:10B19000840A8421DD41D52A3C77F90F3DCBF90D96 +:10B1A0008AFC3C8BF90C4E740003FFFA3C07F90E45 +:10B1B000408020014E8400045284000084048420D6 +:10B1C000DD41220F800242139C2442142073FE04AE +:10B1D000E0018421E80D840ADD413C03F90D3C0BBC +:10B1E000F90F3C03F90C3C0BF90E8402D55EFA050D +:10B1F000DD418403D55A3C07F90F8A1C4E04000335 +:10B20000FE023C17F90E8A284E140003FE4A97FBF3 +:10B21000FE0442008473FFFCE0E0E85484033E0730 +:10B22000F224D5354EA300442E07F220C00B2E0782 +:10B23000F22184218C013E07F221FA173EA7F22069 +:10B24000DD41EB6A5A08021B3C0DF8F89606C80A65 +:10B250003C1DF8F846000080FE0EC00484048421E2 +:10B26000D50484043C13F195DD4F840A8420DD412C +:10B2700084048421DD418401D5185A08010B84041B +:10B28000DD4A5A08012084048420DD418404D50D60 +:10B290005A080309FA058420DD418404EAB984C20E +:10B2A000D5115A0804108400EAB9D50C8404EAB90F +:10B2B000D5088404EAB984003E07F2213E07F22053 +:10B2C00084C0EB6A5A08040D84203E17F2208420C3 +:10B2D000DD41840A8420DD41FA058420DD418006B9 +:10B2E000FCC1FC41854080E0500F800710AF800713 +:10B2F00049FFFE8881203E07F2253C17F83BEBCA48 +:10B30000002F8007806949FFFEE280C05A080209C9 +:10B31000EAF13E07F21710A380008401FCC15A082D +:10B320000108EAF13E07F217FA08AE38D5F72E17F2 +:10B33000F2265A1802064E930057EBAED5542E67EC +:10B34000F225C9212E77F217CF4A5A680117490012 +:10B35000026F4900027584093C13F199DD4F84099D +:10B360008026DD41EBCA3C17F83B002F80074900DF +:10B3700002853E67F226D5355A68023484023E07BC +:10B38000F226D5315A180130CE1D2E07F2245A0864 +:10B3900003D62E07F2175A08010D8409DD4AC807A3 +:10B3A0008007490004568E015C600001EBAED506B3 +:10B3B0005A00020584098026DD41800749000908FA +:10B3C000D5135A68010AEBCA3C17F83B002F8007D7 +:10B3D00049000254D5085A6002D3D5B080C1D504C3 +:10B3E00080C7D50284C02E17F2252E07F217C10997 +:10B3F000C80B840B3C13F196DD4F840B8421D503DD +:10B40000C003840BDD41840BDD4A5A000106DD5385 +:10B41000DD51EAC8C029EAF1C0072E000659EA9AB0 +:10B420008C1DE00FE903EBAED50A2E0004205A086C +:10B43000020E840BEA4784003E000420DD5F444F87 +:10B44000FBFFEA2140011002D50D840BDD4A5A08AA +:10B45000010CDD5F3C03F83C3C0BF837EA21580156 +:10B460000400EA8DEAC1EAF13E07F2178006FCC14A +:10B47000FC00445104E0846096980A6280015A20DE +:10B480001007E226A528E91A81E4D504E226E91C82 +:10B4900085FFE22FE8135A08010652018040962FDB +:10B4A000FC805A080206500100209600FC805A08D1 +:10B4B000030A520100209600FC808C615A3811DE8C +:10B4C000D5038002FC80EAF6FC80C82D3C34035A88 +:10B4D0003CF4035C3C0003A5E06F3C3003A6E806A7 +:10B4E0003C0803AD3C3803AFD5053C3803AD3C0800 +:10B4F00003AF3C0403B13C1803AE3C1803B08422F4 +:10B50000EA503C3003AF3C0003AD971B9743E0A4E7 +:10B5100040303C1B81E34000BC003C0803723C28E7 +:10B520000373DD9E3C34035B3CF4035D3C0003A7E6 +:10B53000E06F3C3003A8E8063C0803AE3C3803B09B +:10B54000D5053C3803AE3C0803B03C0403B23C18BC +:10B5500003AD3C1803AF8422EA503C3003B03C00FA +:10B5600003AE971B9743E0A440303C1B81E34000AF +:10B57000BC003C0803733C280372DD9E3C2003A6FC +:10B580003C3403B13C1403A53C2803AF8444402160 +:10B59000885696913C1803AD964999113C48037220 +:10B5A00084824031907688613C3803748463421110 +:10B5B0000C733C1803763C2403A73C1403A8C80C66 +:10B5C0003C1803AE3C1803B03C2803733C180375C9 +:10B5D0003C280377DD9E3C2803AE3C2803B03C1892 +:10B5E00003733C2803753C180377DD9EFC4780C03D +:10B5F000F08551CF80343C03721AF28B120F801AFF +:10B60000F1882E06E436F481100E00024E220082EC +:10B610004E62008D9C699648841E83C3FE2C806117 +:10B62000F18680268E21960080418E02F187F08976 +:10B6300084209610F38385E0F1848500F08AF0077A +:10B6400040103C014000BC074017801A9608F106E4 +:10B65000EBCCC061402784015E01000040A784005C +:10B6600084204020801BF005F10A40A50007F0036C +:10B6700096904000A81A8140EBB3446F8000C854F4 +:10B68000F00838403C008400F08240013C0140302A +:10B690007C0A40118003380F08008A239A20962FD5 +:10B6A0005C5000219CD14071200152900040CD039C +:10B6B000540480FFF501381E040038028111FE0C8D +:10B6C0009007960340130007C1064E750005965279 +:10B6D000F18280C0969840050806C0D8048F800289 +:10B6E000F20550F78001F103540780FFEBB3F20439 +:10B6F0008C2188469648F284F183C8A2F10B402140 +:10B7000004564E250007DD5CE022EBC09608FCC71E +:10B710008400FCC7F003F109814098819690EBB357 +:10B72000446F8000C0AE8500D5DC8440D5EDFC4080 +:10B730002E97E3E884A0FB484482049897A8E2C9C6 +:10B74000E81138711400E2E0E90B81E842F2A873D5 +:10B7500000F780044CF0C005AFD8AFA0FCC08CA1AE +:10B76000D5EEFCC0E020E804E040E906DD9EE00103 +:10B77000E805E002E8038401AE18DD9EFC4180E2AA +:10B780003C24035A81008A40B65F3C24035B801F3F +:10B790008A418141F281DD56EBE580C04001200104 +:10B7A000B61F3C04035D40102801801FF181DD5667 +:10B7B000E0C0E804812680C08009441000B4EA900B +:10B7C000FE444010BC36E026E9045EF007D0E803F2 +:10B7D0008401AE38FCC1FC00FE024E1700114E057C +:10B7E0000008EB99FE84EADD8401EB6DFC80442FB8 +:10B7F000FC18FE84EADD8404EB6DFC80C1104E056C +:10B800000009442FFC18FE84EADD8402EB6DFC8005 +:10B81000EB99FE84EADD8403EB6DFC80C0074E06E5 +:10B820000004FA00FC8044000030FC80FC0044026C +:10B83000278C842044200086DD42FC80FC004402EA +:10B84000273C8420EB00DD42440212748420AC4289 +:10B85000442004B0B4008420DD42FC8022F10000CA +:10B86000E00FE804AC10AC60DD9E22218000E040D7 +:10B87000E803AC18AC68DD9EFC2180E03C03F8E8EE +:10B8800080C15CF0012CE8048C013C0BF8E83C33EF +:10B89000F8E83C2DFC73945A9E0C9850ADC8AD89C5 +:10B8A0005A38010F3C78034A3C78034B3C68034C00 +:10B8B0003C68034D3C78035A3C68035BD5443CF438 +:10B8C000034AE0EFE8063C78034A3C68034ED5099A +:10B8D0003C14034BE027E8053C78034B3C68034FDE +:10B8E0003CF4034CE0CFE8063C68034C3C78035042 +:10B8F000D5093C14034DE026E8053C68034D3C782F +:10B9000003518E04880222100000220000019A795F +:10B910009A30B63FF0814E140003FE4A3C2C01AB36 +:10B9200088223C1E01AB4E040003FE023C1C01AC0D +:10B9300088013C0E01AC801FDD563C1C01A988012A +:10B940003C0E01A93C10034A3C00034B3C78035CCD +:10B950008A013C0803543C10034C3C00034D3C68F6 +:10B96000035D8A013C080355FCA1E22080819AC155 +:10B9700040403C1B4E3400059A089602D502961AA8 +:10B98000EB4C8422E908520000409602EA5088817C +:10B990009722D504EA508A819722972FAF10DD9E17 +:10B9A000FC4AF082F18380C28420844AB005DD47DE +:10B9B0008420FA45B008DD47B00E8420FA45DD4703 +:10B9C0005A60050E9E36E602E9108EC8E6C24EF2B7 +:10B9D00000A28540FB2045C00030D50B8540449037 +:10B9E000003045C00010D505449000308541838962 +:10B9F00084C081062E0007788E01E100E83F3C0CF0 +:10BA000001DDEBEF381020108808F1812070000173 +:10BA100084009678EB212E1007788E22E101E80C45 +:10BA2000E403E80A503400013C0C01DD548180FF3E +:10BA30008808207000019678000F8004EBEFEB215E +:10BA4000B0484053940A3800A008B00E001F80137D +:10BA500038102008F0019005D831801C502F80123A +:10BA6000EB21E410E82B4EA20008504E002055C2F6 +:10BA7000003F8540D523E6C3E90BE4C284E0E92317 +:10BA8000B00599C60073FFFF8CE197F8D51CB0058F +:10BA90003C1DFC7338801808400408088801F20235 +:10BAA000A440504E002038111909F103A40155C2D9 +:10BAB000003F380099098CC197B05034000154817F +:10BAC00080FFD5993C03F8E850AF80388E01EA6FCB +:10BAD000E2E8E81EB00838001C10E418E8168009F7 +:10BAE00038151C00EBEFEB21E40EE80FEB5395FA51 +:10BAF00088E0F102A43838009909F103A43938002C +:10BB000099098CC19630FCCA8CE197F8D5E2800681 +:10BB1000FCCA8400FCCA4E02009BFC429D1C9D4C4A +:10BB2000E224404194065667800156420001FF37E7 +:10BB300096904E42007F8484E280E87B405120084A +:10BB400040414008FF57FF2F40A1600847C7F7F763 +:10BB500040A2280451CE0F7F404570029F8497B0C9 +:10BB6000F481464808085042008092C28CC1F48299 +:10BB70004643F3F340F3080850420F3FB6DF54F753 +:10BB800080FF812180E387C0F4830054800100445A +:10BB900080004052A008FF2F00548002F60140525E +:10BBA000C008FF2F0054800351EF00014052E0080D +:10BBB000FF2F4052700288A6F60240422803FF364B +:10BBC000FF2DF503548F00FFFF2E40522009AF795F +:10BBD00040524009AF7AB4BF8D24408414064052CD +:10BBE0006009AF38AF7B8CE44E83FFD14C07802EC9 +:10BBF0003850BC005047800188A29720976F406260 +:10BC000000063851BC08C6213850900050F7800219 +:10BC100088A254F780FF976F40078006385190083C +:10BC2000C0153800BC00884096AF3821BC08FCC263 +:10BC30009F0197208C818881280080018802962F9F +:10BC4000180180014C127FFAFCC2FCC2DD9EFC563A +:10BC500051CF80D03C240355140E7FCE3C03F19A83 +:10BC60003C140354E040E804E0204EF3049B3C0302 +:10BC7000F19B3C1C01A9E0204EF3049444022824CB +:10BC80003C0E01DB440227783C0E01DD843F500E60 +:10BC90007F8C44200054DD428400EB484603FFFFC4 +:10BCA000DD4344A22814140E7FD2EB53844A501E65 +:10BCB0007F40A80C3C03F8E844800064A809A00D6C +:10BCC00084C14021000C3C0C01A9A1CC40200856A5 +:10BCD000A00C8520A98B22000000120E7FC6A00CAC +:10BCE00022000001120E7FC742012024B601040E7B +:10BCF0007FD3041E7FD1E2014EF200822213800026 +:10BD000022038002142E7FCF8A01140E7FDB2213C0 +:10BD10008001220380038A01EB32EB06DD56042EFC +:10BD20007FCF80A08809E002E96140112401421020 +:10BD3000A024503E7F6CB403A119EAD1FE0CFE642E +:10BD4000400020164090A136E6D5A81B149E7FDF48 +:10BD5000E80EA5389472503E7F8C88238804AC0886 +:10BD6000A4398CC189201290800197B0EAF4142E76 +:10BD70007FCD145E7FCFDD56045E7FCF042E7FCD56 +:10BD80009A28C534041E7FDC043E7FDB141E7FCF5F +:10BD9000049E7FDE041E7FDFE002E924041E7FD0C4 +:10BDA000044E7FCFEAD142918424E6D5FE644094CC +:10BDB000A1364010A036E814953250FE7F8C41E742 +:10BDC00090008E84888F8CC102F20000A52140F47F +:10BDD000BC00888112FF0000124F000197B08A0258 +:10BDE000D5DC149E7FDE141E7FDFEBB48CE48C2147 +:10BDF0009649141E7FD3812048FFFF7B507E7F8CA5 +:10BE00004E920015503E7F48B403B4439870A01979 +:10BE1000944A8802A09A94028840800288272221AE +:10BE2000000022000001AC88AC0984001005000469 +:10BE30009E319600940250800006505E7F928907E2 +:10BE4000009500044C540023224280002202FFFE91 +:10BE50002222FFFF2212FFFD9A209A51145E7FD406 +:10BE600049FFFCBBB42A045E7FD43800A408EBB6BB +:10BE700000050004C904E60AE807D503E614E8044F +:10BE80008C01100500048CA4D5DC842084A1808161 +:10BE90009628E209E832B44A38011410884520F1A6 +:10BEA0007FFF8A0F5EF07FE0E80450000040D50677 +:10BEB000EB4CE90450007FC096039681888297235B +:10BEC0004E040003FE02EB3B043E7FD588289649D2 +:10BED000CB12E409E9073C00036689003C8803664D +:10BEE000D50A8C419691E643E8063C0003678C0135 +:10BEF0003C0803678CA1D5CD040E7FD53C48036078 +:10BF000094814402273C88028D4812100017040EC9 +:10BF10007FD55A0001068401EB4848FFFEC88440E3 +:10BF2000800280224093001396D1E269E80B3833F7 +:10BF30008A11882394D288678C412231800188033A +:10BF4000D5F440109836400018163C23F8E83C4DD4 +:10BF5000FC738540964B9603468800003C18035EB0 +:10BF60003C08035F142E7FD551E47FFF806A80AACE +:10BF7000144E7FD4042E7FD5D219222200008C8447 +:10BF800040F0880122227FFF9A82FE944227BC73F0 +:10BF9000E05E4032BC1B41E13C1BE10240A2BC1B05 +:10BFA0008CA140813C1B9769D5E6EB9294DA8843DB +:10BFB0008062222100008A22141E7FDB2211800170 +:10BFC0008A01EB32EB06DD568100400508083CADE6 +:10BFD000FC7389403C04035E221500008A01140EA4 +:10BFE0007FDB221500013C04035F8A01EB32EB0684 +:10BFF000DD56C007DD5C42140424EB9B3E0006CAFC +:10C000003C24035EEB333C34035C8A228A623C842A +:10C01000035FEB7B3C04035B141E7FDB8A084081DB +:10C020002001143E7FDE143E7FD5EB32148E7FDF7D +:10C0300049FFFBD3043E7FD581408023800849FF20 +:10C04000FBCC401028015EF0FFE0E8045010804077 +:10C05000D5065EF08021E9035010FFC08442EA5EFD +:10C060008A0A882A962F966FEB4C3E1006C6E90383 +:10C0700052000040441000B4FE0C40A0140A501EB0 +:10C080007F78EB06502E7F6049FF8B434E040004FF +:10C0900052A500003C0403604E07000452A50000B6 +:10C0A0003CA80364EB5385408420442004B03CAB9F +:10C0B000F8E8DD42501E7F8C94B2EB53EA398420BD +:10C0C000FA44EAF415FE7FCF3C9BF8E8DD472E07E3 +:10C0D000E3E884208C07EBB9EA28841F100E7F5F09 +:10C0E000844C500E7F6015FE7FD410AE7F5EDD471E +:10C0F0008420844CEB06DD473EA7F0598420443071 +:10C100000064442000804200842452000080FE1C11 +:10C11000EA69380385098C215A1821F78400EB4815 +:10C12000448228142E07E3E8EBB6E2204EF2010722 +:10C13000EBB6FA08FE0C3C1DF8FB140E7FD18820EC +:10C140004422273CA7CDA70C5003801494018802F9 +:10C150008461A583943B880884A0A6849618E20293 +:10C16000B521E81938048C1089232094FFFF8A092F +:10C170005EF07FE0E80450000040D506EB4CE90497 +:10C1800050007FC096034E040003FE0288059741CD +:10C190008C61D5E5E2C54EF30212EAF4149E7FD21B +:10C1A000140E7FD3A00D46302000FEC6C30D3C34D4 +:10C1B000036022F08006E06F4EF300BA22F08007A1 +:10C1C000E06F4EF200B546301000FEC6C30B3C30A7 +:10C1D0000362A54CE2654EF300ABA54DE2654EF25D +:10C1E00000A746308000FEC6C3162E5806C6206043 +:10C1F000801450328040E0A696DAE90520F08015E0 +:10C20000E0AFE909E0664EF3009320F08015E06F9F +:10C210004EF2008E46304000FE1EC00D3C0403640A +:10C2200022F08008E00F4EF3008322F08009E00F37 +:10C230004EF2007E9E21E604E81238141F02EAF452 +:10C24000EA39943B8808EBB4A604043E7FD28040D0 +:10C25000EBE180A749FFF9CC80C0D5518E8D8520B8 +:10C26000E68280C9E824943B88088149140E7FD077 +:10C27000EBE0804A38141F02A604503E7F7849FF45 +:10C28000FC4CEBE0EBB4043E7FD2A604EBE1804033 +:10C2900080A749FFF9ADE2C0EAF040603C1B5005C1 +:10C2A000000440953C1BEB625AA840E45004FFFB9D +:10C2B000EB6250048005140E7FD0943B4094000044 +:10C2C000EBE0E00AE91C804A0004800438141F02F5 +:10C2D000503E7F7849FFFC2100048004EBB480408D +:10C2E000043E7FD2EBE180A749FFF982E20640607D +:10C2F0003C1AEAF0EAC697B0EB62D5E33C0DF8FBD6 +:10C30000041E7FD1880100000016E2C0E910000E73 +:10C310007F5EE206E807000E7F54106E7F5E100E0F +:10C320007F5F040E7FD4EBB638600408040E7FD51F +:10C330008C019600EB4848FFFEF7001E7F5F4472B9 +:10C34000278C5A18FF044800011AFA483C0DF8FBE4 +:10C35000EAB2A7845A680B092E0006CAE61FE92133 +:10C360008400842DD5175A680D1D2E0006CAE61EBE +:10C37000E80A8400842BEB92503E7F5E504E7F5F34 +:10C3800049FFF9D72E0006CAE60AE80B2E07E33E5E +:10C39000FA25EB92503E7F5E504E7F5F49FFF9C910 +:10C3A0008EC6E6C2E8113CF4035F3C14035DE02F47 +:10C3B000E80B2E07E33E8429EB92503E7F5E504E01 +:10C3C0007F5F49FFF9B6002E7F5FFA283C0DF8FB2E +:10C3D000EA6BA784509E7F60840050AE7F6CEAF0C9 +:10C3E00080468009802A49FFFADD3E07F0598440E3 +:10C3F0009650E220E80C3814890194D238138A0947 +:10C400008867381509018C41AC59D5F35A600C3A4C +:10C41000E6CDE809E6C54EF300A9E6C8E91EE6CA7E +:10C42000E91CEB075A60113BE6D2E804E6CFE9517C +:10C43000EB075A6012415A601303EB07EB433C04CD +:10C44000034A3C14034EEB3E3C04034E3C14035B96 +:10C45000EB7BEB58EB52EB073C1403553C040354C5 +:10C46000E00180404020BC1B5EF107D0E907E020DE +:10C47000EA6D5EF003E84EF200798401EAF0EB0722 +:10C48000EB433C0403513C14034DEB3E3C0403518D +:10C49000EB33EBE5EB58EB52D568EB433C04035030 +:10C4A0003C14034CEB3E3C040350EB33EBE5EB5800 +:10C4B000EB52D55BEB433C04034B3C14034FEB3E88 +:10C4C0003C04034F3C14035BEB7BEB58EB52D54D24 +:10C4D0003C0003665CF00025E8053C000367E602CB +:10C4E000E80A3C0003615CF0005BE8053C00036780 +:10C4F000E604E9038401EAF03C04035CEB33EB7BE4 +:10C500008A203C04035B3C3403559A823C04035468 +:10C51000E00380804041BC1B5EF207D0E908E06088 +:10C5200080A04051BC1B5EF283E8E80484A1105E49 +:10C530007F5D3C540364FE94FE4C4E5700113C500A +:10C5400003625CF28046E80BE0604001BC1B900196 +:10C550008822FE04E0014EF3FF92D50788224202B2 +:10C560001024E0014EF3FF8B000E7F5D5A08010896 +:10C570008400100E7F5EFAC9D502FAC9000E7F5EF4 +:10C580003E00076805FE7FCF5A680D0684203E10E6 +:10C590000748D50C5A680E0884213E100748D50676 +:10C5A000FAC9840084223E100748C006040E7FCEDC +:10C5B000AF808401D50A8402D508EAF4149E7FD3A3 +:10C5C000140E7FD248FFFDF0EB0AFCC0FC40812036 +:10C5D000FA05442228023C0803B34402275C9C422B +:10C5E0009CD2EA9F44022760442228069C429CD2A7 +:10C5F000EA9F440227504422280A9C429CD2EA9F88 +:10C6000084C04472278C3C1DFC7350230010980E8C +:10C61000503300129C42884788678CC4EA9F5A684E +:10C6200054F44402273C442227F29C449CD4EA9FC1 +:10C630004402273E442227F49C449CD4EA9F0004F1 +:10C6400080009E45E623E805840049FFF799FCC079 +:10C6500050107FF8E622E805840149FFF791FCC0FD +:10C660005A080C0984003C1403A73C2403A8EBBC23 +:10C67000FCC05A08110984003C1403A83C2403A7F9 +:10C68000EBBCFCC05A08120984013C1403A53C24ED +:10C6900003A6EBBCFCC05A08130884013C1403A693 +:10C6A0003C2403A5EBBCFCC0FC2080C180E0DD562F +:10C6B000E0C0E9058400B607A839FCA0B4474211E0 +:10C6C0001824EABB8A41B647A0B9FF94EBED9B96CC +:10C6D000A9B9FCA0FC44F08180A13C03720CA451D8 +:10C6E00023C100008A0140900011A459EB102221BF +:10C6F00080008A0140A0001184E0EA87EA5CF082B1 +:10C70000F002E2E0E848F60142638C73001300BBDC +:10C71000C13FEB0CE602E93C840A5A1803050012FB +:10C720008013D5030012801250830014FE4422F4BB +:10C7300000072203000596498A0FF08622F40008BC +:10C7400022030006F3858A0FF087B006F584F28392 +:10C7500049FFFFAC22F40007F006F203880FE01C4B +:10C76000F504F305E906E0094004BC1A9603D50276 +:10C77000801C22F40008AC37F007880FE002E906BD +:10C78000E00A40053C1A9603D5028002EA5B8CE180 +:10C7900097F8D5B7FCC4FC01FA09EBBD500F800730 +:10C7A00049FFF5A180C05A08010C000F800749FF1E +:10C7B000CF275A00FF063E07F1EC8006EADBFC813A +:10C7C000FC00FA11EA59C807FA11EB02DD4FFA1121 +:10C7D0008421DD41EA9C9606C0042E07F5A0C00E18 +:10C7E000FA11EA472E07F5A0C0048E013E07F5A016 +:10C7F0008400842149FFBDF3FC80EAF1C004FA11F2 +:10C80000EA47FC80FA11DD4A5A080107FA11EA47A3 +:10C8100084053E07F5A0FC80FC40EEF88420F089FA +:10C82000442000DCB00BDD473C1403AD44700B40EA +:10C83000440007FFFE7CEABBF187221F800E4460A4 +:10C840001900F181021F80023C1803AD3C1403AEB5 +:10C850004452278CFE74EABBF188221F801084604A +:10C86000F182021F80043C1803AE3C1403AFFE7C2F +:10C8700041E083D6401F0011F183021F80063C185F +:10C8800003AF3C1403B0FE7441C08396401E0011F8 +:10C89000F184021F80083C1803B0802522408000EC +:10C8A0008C61FF3C40420096AD082240800196D842 +:10C8B000FF3440420096AD0944F00B40442007FF8E +:10C8C000448019008C245A3804EB3C7403A53C6462 +:10C8D00003A74273BC24407388F6963BF0854263FD +:10C8E0002024020F800A406308D63C0803A5963333 +:10C8F000F086020F800C3C1403A63C0803A73C04FE +:10C9000003A84210BC2442002024EA5EEA69970B87 +:10C9100096C33C4803A63C3803A8852022A2800881 +:10C920008D2142A53C2440A5095612A2800822A2CE +:10C930008009549480FF42A5202440A5095612A2E4 +:10C9400080098CA45A9815EC442FFFAA102F802C34 +:10C95000002F802411EF8035102F802D442FFFDD14 +:10C96000102F802FF20111CF80379048102F803088 +:10C97000002F801CB14B102F8031F202852090488F +:10C98000102F8032002F802044A2278C102F80335C +:10C99000F2039048102F8034F2049048102F803614 +:10C9A000382524118CA44081200A102280114024B3 +:10C9B000A80010828010222100018D244081200ACD +:10C9C00010228013108280124422278C5A9810EA79 +:10C9D000F505106F805390A8105F8050F506908881 +:10C9E00090A8105F80522E5007489068105F8058C2 +:10C9F0002E6007683C5003B39648972096D896005F +:10CA0000101F8055101F805C107F8051104F805484 +:10CA1000103F8056100F8057105F8059106F805A5A +:10CA2000104F805B103F805D100F805E8420E225F8 +:10CA3000E81B9CCC940A38410E1194DA8862B18BC1 +:10CA400096008806223180014062200A104000349E +:10CA50008C214041A00A1060003310400035103096 +:10CA600000369648D5E5B00BEB6849FFC6BDED082A +:10CA7000FCC0FFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:10CA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:10CA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:10CAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:10CAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:10CAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:10CAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:10CAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:10CAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:10CB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:10CB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:10CB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:10CB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:10CB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:10CB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:10CB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:10CB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:10CB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:10CB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:10CBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:10CBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:10CBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:10CBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:10CBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:10CBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:10CC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:10CC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:10CC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:10CC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:10CC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:10CC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:10CC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:10CC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:10CC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:10CC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:10CCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:10CCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:10CCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:10CCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:10CCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:10CCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:10CD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:10CD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:10CD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:10CD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:10CD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:10CD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:10CD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:10CD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:10CD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:10CD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:10CDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:10CDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:10CDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:10CDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:10CDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:10CDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:10CE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:10CE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:10CE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:10CE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:10CE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:10CE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:10CE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:10CE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:10CE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:10CE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:10CEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:10CEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:10CEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:10CED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:10CEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:10CEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:10CF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:10CF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:10CF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:10CF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:10CF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:10CF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:10CF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10CF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:10CF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:10CF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:10CFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:10CFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:10CFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:10CFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:10CFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:10CFF000FFFFFFFFFFFFFFFFFFFFFFFFBFE31F9CE0 +:04000003000004B83D +:00000001FF diff --git a/proprietary/vendor/firmware/aw963xx_reg_0.bin b/proprietary/vendor/firmware/aw963xx_reg_0.bin new file mode 100644 index 0000000..24b80f7 Binary files /dev/null and b/proprietary/vendor/firmware/aw963xx_reg_0.bin differ diff --git a/proprietary/vendor/firmware/chipone_firmware.bin b/proprietary/vendor/firmware/chipone_firmware.bin new file mode 100644 index 0000000..63f2a3a Binary files /dev/null and b/proprietary/vendor/firmware/chipone_firmware.bin differ diff --git a/proprietary/vendor/firmware/csot_focal_test_limits.ini b/proprietary/vendor/firmware/csot_focal_test_limits.ini new file mode 100644 index 0000000..8d64acd --- /dev/null +++ b/proprietary/vendor/firmware/csot_focal_test_limits.ini @@ -0,0 +1,362 @@ +[Valid_File] +OnlyMultipleTest=1 +[Interface] +IC_Type=FT3681 +Normalize_Type=0 +CascadingType=0 +Interface_Type=1 +Slave_Addr= +Slave_Addr0= +Slave_Addr1= +Freq_Index=2 +Phase_Pola=0 +TestBoard=3 +Check_I2C_Address=0 +Max_Points=10 +iRotationDegree=0 +isReversed=0 +ixMaxPixel=1080 +iyMaxPixel=2400 +[Android_Terminal] +TP_Test=2 +LCD_Test=1 +I2C_Interface=0 +I2C_Index=0 +RW_Byte=1 +CustomConfPath=0 +AutoSave=1 +ResultPath= +[Config] +Run_Mode=1 +Read_Bytes=256 +Write_Bytes=128 +Test_Way=0 +Handle_SN=0 +SN_Length=25 +SN_AutoTest=1 +SnAndEnter=0 +SN_And_IO_AutoTest=0 +Set_Focus_To_SN1=0 +TP_Connection_AND_SN_AutoTest=0 +CheckSN=0 +SN_AutoSkipBy=0 +SKey_Index=0 +SKeyValue=13 +TP_AutoTest=0 +TP_AutoTest_Time=0 +TP_ReplaceTP=0 +TP_ReplaceTP_Time=0 +TP_Always_Replace=0 +TP_Always_Replace_Time=0 +Store_Result=1 +CommOption=0 +DirecoryPanelType= +Auto_Switch=0 +Continue_Test_After_Fail=0 +Break_Test_After_Fail=0 +Break_Test_If_Failed_Before_Download=0 +CB_Test_Mode=0 +Tip_After_TestNG=0 +Show_Res=0 +Check_Mode=0 +Light_Up=0 +Non_Common_GND=0 +TP_Stop=0 +TP_Stop_Wait=60 +LCDDeepStandbyAndTpStop=0 +LCDDeepStandbyTimeOut=30 +RemoveLPWGLevelSignal=0 +ContinueDownLoad=0 +CheckFwCRCBeforeDownload=0 +bPoll=0 +bCheckBinBeforeDownLoad=1 +bRemoveReloadInitialCode=0 +bSwitchICMode=0 +bICMode=0 +bDelayTime=0 +bDelayTimeBetweenSwitchAndPowerOff=0 +bCancelSiuPowerOff=0 +EnablePC6LPWGLevelSignal=0 +PC6LPWGLevelSignalDelayTime=300 +Output_LevelSignal=0 +Output_NgSignal=0 +Input_LevelSignal=0 +Reverse_Time=0 +Switch_Protocol=0 +CLB_Other_Return=0 +Count_Result=0 +Count_Result_Type=0 +Full_Screen=0 +DisplayMonitorIndexEn=0 +Impulsing=0 +NotifyTest=0 +Use_LockDown=0 +SetCheckFwFileName=0 +SetFwChecksum=0 +DelayTimeSet=0 +CheckFactoryID=0 +SaveState=0 +SetVDDTP_Check=0 +SiuPowOffSaveResult=0 +Checl_Tool_Version=0 +Tool_Version=v7.2.0.0 +Switch_TP_Report_Rate=0 +Rate_Value=0 +Result_Type=0 +Result_Format=0 +Result_Path_Enable=0 +Store_LogName_Enable=0 +Result_OP_Num=0 +Result_Use_IcId=0 +Result_Use_TestTime=1 +Result_ReplaceOldLog=0 +Result_SaveTestMsg=1 +Result_SimpleDirectory=0 +LogFileNameOrder=0 +LPWGDSTB=0 +LightUpAfterTesting=0 +SN_Compare= +UseForVersionB=0 +SleepModeOther=0 +SwitchTPFw=0 +Shift=0 +Shift_Value=1 +GPIO_Input_LevelSignal=0 +[OnLine_Setting] +IPAddress=127.0.0.1 +TCPPort=5555 +NetworkControl=0 +[COM_Setting] +COM_ID=0 +BaudRate=115200 +[TestItem] +FW_VERSION_TEST=0 +FACTORY_ID_TEST=0 +IC_VERSION_TEST=0 +PROJECT_CODE_TEST=0 +PANEL_ID_TEST=0 +RAWDATA_TEST=1 +PANEL_DIFFER_TEST=1 +PANEL_DIFFER_UNIFORMITY_TEST=0 +SCAP_CB_TEST=1 +SCAP_RAWDATA_TEST=1 +CHANNEL_NUM_TEST=0 +INT_PIN_TEST=0 +RESET_PIN_TEST=0 +NOISE_TEST=1 +WEAK_SHORT_CIRCUIT_TEST=1 +UNIFORMITY_TEST=0 +SITO_RAWDATA_UNIFORMITY_TEST=0 +GPIO_TEST=0 +Sync_Test=0 +LCD_NOISE_TEST=0 +SCAP_NOISE_TEST=1 +OSC_CALIBRATION_TEST=0 +LOCKDOWN_INFO_TEST=0 +OTP_WRITE_LOCKDOWN_INFO_TEST=0 +OTP_COMPARE_LOCKDOWN_INFO_TEST=0 +NULL_NOISE_TEST=0 +VIRTUAL_BUTTON_TEST=0 +ONELINE_TEST=0 +MULTILINE_TEST=0 +GRIDLINE_TEST=0 +TOUCHLINE_TEST=0 +DIAGONAL_TEST=0 +FREEPAINT_TEST=0 +SPECIAL_BUTTON_TEST=0 +HOME_KEY_TEST=0 +FORCE_TOUCH_TEST=0 +LINEARITY_TEST=0 +CIRCLE_TEST=0 +SQUARE_TEST=0 +KEY_TEST=0 +PRESS_CHANNEL_TEST=0 +Graph_Set_K1=0 +AUXILIARY_FRE_NOISE_TEST=0 +LOW_FRE_RAWDATA_UNIFORMITY_TEST=0 +RAWDATA_DEVIATION_TEST=0 +MEMBIST_TEST=0 +[Basic_Threshold] +FW_VER_VALUE=255 +Factory_ID_Number=255 +IC_Version=0 +Project_Code=London NA +Ori_ProjectCode=0 +LCM_ID=1 +PANEL_ID=255 +RawDataTest_Low_Min=7000 +RawDataTest_Low_Max=11000 +RawDataTest_High_Min=3000 +RawDataTest_High_Max=25000 +RawDataTest_NonCommonGND=0 +RawDataTest_LowFreq=1 +RawDataTest_HighFreq=1 +SCapCbTest_OFF_Min=-125 +SCapCbTest_OFF_Max=125 +SCapCbTest_ON_Min=-125 +SCapCbTest_ON_Max=125 +ScapCBTest_SetWaterproof_OFF=1 +ScapCBTest_SetWaterproof_ON=1 +ScapCBTest_SetHighSensitivity=0 +SCapCbTest_High_Min=-120 +SCapCbTest_High_Max=120 +SCapCbTest_OFF_Cf_Cb_Min=-61 +SCapCbTest_OFF_Cf_Cb_Max=61 +SCapCbTest_ON_Cf_Cb_Min=-61 +SCapCbTest_ON_Cf_Cb_Max=61 +ScapCBTest_SetWaterproof_OFF_Cf_Cb=1 +ScapCBTest_SetWaterproof_ON_Cf_Cb=1 +ScapCBTest_SetHighSensitivity_Cf_Cb=0 +SCapCbTest_High_Cf_Cb_Min=-60 +SCapCbTest_High_Cf_Cb_Max=60 +SCapCbTest_OFF_Global_Cb_Min=0 +SCapCbTest_OFF_Global_Cb_Max=120 +SCapCbTest_ON_Global_Cb_Min=0 +SCapCbTest_ON_Global_Cb_Max=125 +ScapCBTest_SetWaterproof_OFF_Global_Cb=1 +ScapCBTest_SetWaterproof_ON_Global_Cb=1 +ScapCBTest_SetHighSensitivity_Global_Cb=0 +SCapCbTest_High_Global_Cb_Min=0 +SCapCbTest_High_Global_Cb_Max=120 +SCapRawDataTest_OFF_Min=-6000 +SCapRawDataTest_OFF_Max=6000 +SCapRawDataTest_ON_Min=-6000 +SCapRawDataTest_ON_Max=6000 +SCapRawDataTest_SetWaterproof_OFF=1 +SCapRawDataTest_SetWaterproof_ON=1 +SCapRawDataTest_High_Min=-6000 +SCapRawDataTest_High_Max=6000 +SCapRawDataTest_SetHighSensitivity=1 +ChannelNumTest_TxNum=18 +ChannelNumTest_RxNum=40 +ChannelNumTest_Tx_NP_Num=13 +ChannelNumTest_Rx_NP_Num=24 +ChannelNumTest_Mapping=1 +ChannelNumTest_NoMapping=0 +IntPinTest_RegAddr=8 +IntPinTest_TestNum=1 +ResetPinTest_RegAddr=173 +ResetPinTest_TestNum=1 +NoiseTest_Threshold=50 +NoiseThreshold_Choose=0 +NoiseTest_TPToolProcess=0 +Polling Frequency=0 +NoiseTest_Max=200 +NoiseTest_Frames=200 +NoiseTest_Time=1 +NoiseTest_SampeMode=0 +NoiseTest_NoiseMode=1 +NoiseTest_FwNoiseMode=1 +NoiseTest_ShowTip=0 +NoiseTest_ShowTip_AfterTest=0 +Set_Frequency=0 +NoiseTest_MinNGFrame=0 +WeakShortTest_CG=800 +WeakShortTest_CC=800 +WeakShortTest_CC_Rsen=57 +WeakShortTest_CapShortTest=0 +UniformityTest_Tx_Hole=50 +UniformityTest_Rx_Hole=50 +UniformityTest_MinMax_Hole=70 +UniformityTest_Check_Tx=0 +UniformityTest_Check_Rx=0 +UniformityTest_Check_MinMax=0 +UniformityTest_NonCommonGND=0 +PanelDifferTest_Min=150 +PanelDifferTest_Max=2800 +SCapNoiseTest_SetWaterproof_OFF=1 +SCapNoiseTest_OFF_Threshold=500 +SCapNoiseTest_SetWaterproof_ON=1 +SCapNoiseTest_ON_Threshold=500 +SCapNoiseTest_SetHigh_ON=0 +SCapNoiseTest_High_Threshold=500 +OTP_Write_lockdown_Info_Data=463632014C093200 +OTP_Compare_lockdown_Info_Data=463632014C093200 +NullNoiseTest_FwNoiseMode=1 +NullNoiseTest_Coef=500 +Distance_Diagonal=50 +Type_Diagonal=2 +MaxNG_Diagonal=0 +LimitTime_Diagonal=0 +LinearityCheck_Diagonal=1 +Continue_Diagonal=0 +LimitTime_HomeKey=10 +HomeKey_LeftChannel=0 +HomeKey_RightChannel=0 +HomeKey_TopChannel=0 +HomeKey_BottonChannel=0 +HomeKey_Hole=0 +SET_TOUCH_THRESHOLD_INCELL=0 +Key_Div_Number_Incell=1 +Preserved_key_threshold_Incell=4 +SET_TOUCH_THRESHOLD_INCELL2=0 +Key_Div_Number_Incell2=1 +Preserved_key_threshold_Incell2=4 +Preserved_key_threshold_Dynamic=1 +CIRCLE_TEST_MAX_NG=0 +CIRCLE_TEST_LIMITE_TIME=0 +CIRCLE_TEST_BOARDER=360 +CIRCLE_TEST_EDGE=20 +CIRCLE_TEST_TRACK=10 +CIRCLE_TEST_CENTER1=270 +CIRCLE_TEST_CENTER2=120 +CIRCLE_TEST_LINEARITY=35 +CIRCLE_TEST_SPLITS=10 +CircleWhenCritical=0 +SET_TOUCH_THRESHOLD=0 +Key_Div_Number=1 +Preserved_key_threshold=800 +1_key_threshold=800 +2_key_threshold=800 +3_key_threshold=800 +4_key_threshold=800 +Key_Threshold=800 +KEY_TEST_MAX_NG=0 +KEY_TEST_LIMITE_TIME=0 +KEY_TEST_KEY_NUM=21 +PressChannelTest_Min=5000 +PressChannelTest_Max=65000 +Press_Test_LimitedTime=0 +PressChannelTest_NotifyIOEn=0 +PressChannelTest_NotifyIO=0 +Graph_Set_K1_Step=3 +OSCCalibrationTest_Vsync_Freq=3 +Hsync_Test=1 +Vsync_Test=1 +Polling_Frequency=0 +Auxiliary_Fre_Noise_Test_Frames=100 +Auxiliary_Fre_Noise_Test_Fre0=0 +Auxiliary_Fre_Noise_Test_Fre0_Threshold=80 +Auxiliary_Fre_Noise_Test_Fre1=1 +Auxiliary_Fre_Noise_Test_Fre1_Threshold=80 +Auxiliary_Fre_Noise_Test_Fre2=1 +Auxiliary_Fre_Noise_Test_Fre2_Threshold=80 +Auxiliary_Fre_Noise_Test_Fre3=1 +Auxiliary_Fre_Noise_Test_Fre3_Threshold=80 +Auxiliary_Fre_Noise_Test_Fre4=1 +Auxiliary_Fre_Noise_Test_Fre4_Threshold=80 +Auxiliary_Fre_Noise_Test_Fre5=1 +Auxiliary_Fre_Noise_Test_Fre5_Threshold=80 +NoiseTest_FIFO_Max=50 +SET_TOUCH_THRESHOLD_INCELL3=0 +Preserved_key_threshold_Incell3=100 +[SiuParam] +Check_Siu_Version=0 +Siu_MainVersion=0 +Siu_SubVersion=0 +Update_Siu2_Version=0 +Siu2_MainVersion=0 +Siu2_SubVersion=0 +Siu_AutoUpdateBoardType=0 +Check_VccTest=0 +CheckIovccCurrentTestSiu3=0 +CheckIovccOpenTestSiu3=0 +Check_IOLeakageTest=0 +Check_IOVoltageTest=0 +Check_AddCircuitVoltageTest=0 +IOVoltageTest_I2C_PIN_CheckSIU4=0 +IOVoltageTest_SPI_PIN_CheckSIU4=1 +IOVoltageTest_RESET_PIN_CheckSIU4=1 +[SpecialSet] +[BLUE_MAC_Setting] +BLUE_MAC= diff --git a/proprietary/vendor/firmware/focaltech-csot-ft3681-22-0000-fogos.bin b/proprietary/vendor/firmware/focaltech-csot-ft3681-22-0000-fogos.bin new file mode 100644 index 0000000..07ac037 Binary files /dev/null and b/proprietary/vendor/firmware/focaltech-csot-ft3681-22-0000-fogos.bin differ diff --git a/proprietary/vendor/firmware/fs1815.fsm b/proprietary/vendor/firmware/fs1815.fsm new file mode 100644 index 0000000..5a7a2a5 Binary files /dev/null and b/proprietary/vendor/firmware/fs1815.fsm differ diff --git a/proprietary/vendor/firmware/goodix-tm-gt9916S-23051702-646483c4-fogos.bin b/proprietary/vendor/firmware/goodix-tm-gt9916S-23051702-646483c4-fogos.bin new file mode 100644 index 0000000..f9ad973 Binary files /dev/null and b/proprietary/vendor/firmware/goodix-tm-gt9916S-23051702-646483c4-fogos.bin differ diff --git a/proprietary/vendor/firmware/sec_s3nrn4v_firmware.bin b/proprietary/vendor/firmware/sec_s3nrn4v_firmware.bin new file mode 100644 index 0000000..3596828 Binary files /dev/null and b/proprietary/vendor/firmware/sec_s3nrn4v_firmware.bin differ diff --git a/proprietary/vendor/firmware/tm_goodix_cfg_group.bin b/proprietary/vendor/firmware/tm_goodix_cfg_group.bin new file mode 100644 index 0000000..59c957a Binary files /dev/null and b/proprietary/vendor/firmware/tm_goodix_cfg_group.bin differ diff --git a/proprietary/vendor/lib/libacdbloader.so b/proprietary/vendor/lib/libacdbloader.so new file mode 100644 index 0000000..0ebfb95 Binary files /dev/null and b/proprietary/vendor/lib/libacdbloader.so differ diff --git a/proprietary/vendor/lib/libbitmlengine.so b/proprietary/vendor/lib/libbitmlengine.so new file mode 100644 index 0000000..3b3f408 Binary files /dev/null and b/proprietary/vendor/lib/libbitmlengine.so differ diff --git a/proprietary/vendor/lib/libbitmlenginev2.so b/proprietary/vendor/lib/libbitmlenginev2.so new file mode 100644 index 0000000..3993f64 Binary files /dev/null and b/proprietary/vendor/lib/libbitmlenginev2.so differ diff --git a/proprietary/vendor/lib/libcamxexternalformatutils.so b/proprietary/vendor/lib/libcamxexternalformatutils.so new file mode 100644 index 0000000..213fe40 Binary files /dev/null and b/proprietary/vendor/lib/libcamxexternalformatutils.so differ diff --git a/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p256c_s5kjns_eeprom.so b/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p256c_s5kjns_eeprom.so new file mode 100644 index 0000000..d9f0523 Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p256c_s5kjns_eeprom.so differ diff --git a/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_ov16a1q_eeprom.so b/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_ov16a1q_eeprom.so new file mode 100644 index 0000000..4c8261b Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_ov16a1q_eeprom.so differ diff --git a/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_s5k3p9_eeprom.so b/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_s5k3p9_eeprom.so new file mode 100644 index 0000000..1aac9df Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_s5k3p9_eeprom.so differ diff --git a/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_sc202acs_otp.so b/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_sc202acs_otp.so new file mode 100644 index 0000000..2eb4724 Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.mot.eeprom.mot_sc202acs_otp.so differ diff --git a/proprietary/vendor/lib64/camera/com.qti.flash.aw36514.so b/proprietary/vendor/lib64/camera/com.qti.flash.aw36514.so new file mode 100644 index 0000000..7d8a10b Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.flash.aw36514.so differ diff --git a/proprietary/vendor/lib64/camera/com.qti.flash.ocp81375.so b/proprietary/vendor/lib64/camera/com.qti.flash.ocp81375.so new file mode 100644 index 0000000..dc6935d Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.flash.ocp81375.so differ diff --git a/proprietary/vendor/lib64/camera/com.qti.sensor.mot_ov16a1q.so b/proprietary/vendor/lib64/camera/com.qti.sensor.mot_ov16a1q.so new file mode 100644 index 0000000..7d36e0c Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.sensor.mot_ov16a1q.so differ diff --git a/proprietary/vendor/lib64/camera/com.qti.sensor.mot_s5k3p9.so b/proprietary/vendor/lib64/camera/com.qti.sensor.mot_s5k3p9.so new file mode 100644 index 0000000..252a524 Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.sensor.mot_s5k3p9.so differ diff --git a/proprietary/vendor/lib64/camera/com.qti.sensor.mot_s5kjns.so b/proprietary/vendor/lib64/camera/com.qti.sensor.mot_s5kjns.so new file mode 100644 index 0000000..9169409 Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.sensor.mot_s5kjns.so differ diff --git a/proprietary/vendor/lib64/camera/com.qti.sensor.mot_sc202acs.so b/proprietary/vendor/lib64/camera/com.qti.sensor.mot_sc202acs.so new file mode 100644 index 0000000..9c15efd Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.sensor.mot_sc202acs.so differ diff --git a/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogor_s5kjns_qtech.bin b/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogor_s5kjns_qtech.bin new file mode 100644 index 0000000..2553898 Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogor_s5kjns_qtech.bin differ diff --git a/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogor_sc202acs_sunny.bin b/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogor_sc202acs_sunny.bin new file mode 100644 index 0000000..bb638c8 Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogor_sc202acs_sunny.bin differ diff --git a/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogos_ov16a1q_ofilm.bin b/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogos_ov16a1q_ofilm.bin new file mode 100644 index 0000000..3a953f4 Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogos_ov16a1q_ofilm.bin differ diff --git a/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogos_s5k3p9_qtech.bin b/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogos_s5k3p9_qtech.bin new file mode 100644 index 0000000..c28f6cd Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.sensormodule.mot_fogos_s5k3p9_qtech.bin differ diff --git a/proprietary/vendor/lib64/camera/com.qti.tuned.default.bin b/proprietary/vendor/lib64/camera/com.qti.tuned.default.bin new file mode 100644 index 0000000..7102819 Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.tuned.default.bin differ diff --git a/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogo_sc202acs.bin b/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogo_sc202acs.bin new file mode 100644 index 0000000..e81f954 Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogo_sc202acs.bin differ diff --git a/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogor_s5kjns.bin b/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogor_s5kjns.bin new file mode 100644 index 0000000..fe8cf4b Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogor_s5kjns.bin differ diff --git a/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogos_ov16a1q.bin b/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogos_ov16a1q.bin new file mode 100644 index 0000000..60f292b Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogos_ov16a1q.bin differ diff --git a/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogos_s5k3p9.bin b/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogos_s5k3p9.bin new file mode 100644 index 0000000..87cc3ac Binary files /dev/null and b/proprietary/vendor/lib64/camera/com.qti.tuned.mot_fogos_s5k3p9.bin differ diff --git a/proprietary/vendor/lib64/camera/components/com.arcsoft.node.supernightraw.so b/proprietary/vendor/lib64/camera/components/com.arcsoft.node.supernightraw.so new file mode 100644 index 0000000..8ed6409 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.arcsoft.node.supernightraw.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.bst.node.hdrdetect.so b/proprietary/vendor/lib64/camera/components/com.bst.node.hdrdetect.so new file mode 100644 index 0000000..db96e9d Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.bst.node.hdrdetect.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.bst.node.mfnr.so b/proprietary/vendor/lib64/camera/components/com.bst.node.mfnr.so new file mode 100644 index 0000000..2b0ebd8 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.bst.node.mfnr.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.bst.node.yuvhdr.so b/proprietary/vendor/lib64/camera/components/com.bst.node.yuvhdr.so new file mode 100644 index 0000000..044c8f4 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.bst.node.yuvhdr.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.mot.node.c2d.so b/proprietary/vendor/lib64/camera/components/com.mot.node.c2d.so new file mode 100644 index 0000000..2f71bf5 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.mot.node.c2d.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.camx.chiiqutils.so b/proprietary/vendor/lib64/camera/components/com.qti.camx.chiiqutils.so new file mode 100644 index 0000000..a084e19 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.camx.chiiqutils.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.eisv2.so b/proprietary/vendor/lib64/camera/components/com.qti.eisv2.so new file mode 100644 index 0000000..8933eb7 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.eisv2.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.eisv3.so b/proprietary/vendor/lib64/camera/components/com.qti.eisv3.so new file mode 100644 index 0000000..5a2e311 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.eisv3.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.hvx.addconstant.so b/proprietary/vendor/lib64/camera/components/com.qti.hvx.addconstant.so new file mode 100644 index 0000000..6fbc5f7 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.hvx.addconstant.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.hvx.binning.so b/proprietary/vendor/lib64/camera/components/com.qti.hvx.binning.so new file mode 100644 index 0000000..cb0cbda Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.hvx.binning.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.customhwnode.so b/proprietary/vendor/lib64/camera/components/com.qti.node.customhwnode.so new file mode 100644 index 0000000..ea8d68a Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.customhwnode.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.depth.so b/proprietary/vendor/lib64/camera/components/com.qti.node.depth.so new file mode 100644 index 0000000..ad49526 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.depth.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.dewarp.so b/proprietary/vendor/lib64/camera/components/com.qti.node.dewarp.so new file mode 100644 index 0000000..35954fa Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.dewarp.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.dummyrtb.so b/proprietary/vendor/lib64/camera/components/com.qti.node.dummyrtb.so new file mode 100644 index 0000000..5e3db51 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.dummyrtb.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.dummysat.so b/proprietary/vendor/lib64/camera/components/com.qti.node.dummysat.so new file mode 100644 index 0000000..9744b31 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.dummysat.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.eisv2.so b/proprietary/vendor/lib64/camera/components/com.qti.node.eisv2.so new file mode 100644 index 0000000..26f703c Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.eisv2.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.eisv3.so b/proprietary/vendor/lib64/camera/components/com.qti.node.eisv3.so new file mode 100644 index 0000000..0ae65d4 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.eisv3.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.fcv.so b/proprietary/vendor/lib64/camera/components/com.qti.node.fcv.so new file mode 100644 index 0000000..a403645 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.fcv.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.formatconversion.so b/proprietary/vendor/lib64/camera/components/com.qti.node.formatconversion.so new file mode 100644 index 0000000..12e5da9 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.formatconversion.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.gpu.so b/proprietary/vendor/lib64/camera/components/com.qti.node.gpu.so new file mode 100644 index 0000000..6a5a2cd Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.gpu.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.memcpy.so b/proprietary/vendor/lib64/camera/components/com.qti.node.memcpy.so new file mode 100644 index 0000000..14b2745 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.memcpy.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.ml.so b/proprietary/vendor/lib64/camera/components/com.qti.node.ml.so new file mode 100644 index 0000000..9d01486 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.ml.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.remosaic.so b/proprietary/vendor/lib64/camera/components/com.qti.node.remosaic.so new file mode 100644 index 0000000..5e5bf3b Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.remosaic.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.stich.so b/proprietary/vendor/lib64/camera/components/com.qti.node.stich.so new file mode 100644 index 0000000..23f50d1 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.stich.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.swaidenoiser.so b/proprietary/vendor/lib64/camera/components/com.qti.node.swaidenoiser.so new file mode 100644 index 0000000..5e44af7 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.swaidenoiser.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.swbestats.so b/proprietary/vendor/lib64/camera/components/com.qti.node.swbestats.so new file mode 100644 index 0000000..93aee71 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.swbestats.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.swcac.so b/proprietary/vendor/lib64/camera/components/com.qti.node.swcac.so new file mode 100644 index 0000000..016a86d Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.swcac.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.swlsc.so b/proprietary/vendor/lib64/camera/components/com.qti.node.swlsc.so new file mode 100644 index 0000000..742104b Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.swlsc.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.swmctf.so b/proprietary/vendor/lib64/camera/components/com.qti.node.swmctf.so new file mode 100644 index 0000000..efd3777 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.swmctf.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.swmfnr.so b/proprietary/vendor/lib64/camera/components/com.qti.node.swmfnr.so new file mode 100644 index 0000000..e262f13 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.swmfnr.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.swpdpc.so b/proprietary/vendor/lib64/camera/components/com.qti.node.swpdpc.so new file mode 100644 index 0000000..f3ffb0d Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.swpdpc.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.swpreprocess.so b/proprietary/vendor/lib64/camera/components/com.qti.node.swpreprocess.so new file mode 100644 index 0000000..1497120 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.swpreprocess.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.node.swregistration.so b/proprietary/vendor/lib64/camera/components/com.qti.node.swregistration.so new file mode 100644 index 0000000..03614ba Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.node.swregistration.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.aec.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.aec.so new file mode 100644 index 0000000..52f2096 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.aec.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.aecwrapper.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.aecwrapper.so new file mode 100644 index 0000000..2256c46 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.aecwrapper.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.aecxcore.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.aecxcore.so new file mode 100644 index 0000000..c471ef9 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.aecxcore.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.af.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.af.so new file mode 100644 index 0000000..21446c2 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.af.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.afd.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.afd.so new file mode 100644 index 0000000..6d497c1 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.afd.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.afwrapper.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.afwrapper.so new file mode 100644 index 0000000..3fd0c0c Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.afwrapper.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.asd.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.asd.so new file mode 100644 index 0000000..75c7fe1 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.asd.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.awb.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.awb.so new file mode 100644 index 0000000..175aa22 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.awb.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.awbwrapper.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.awbwrapper.so new file mode 100644 index 0000000..dea9b9b Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.awbwrapper.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.cnndriver.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.cnndriver.so new file mode 100644 index 0000000..b6b3232 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.cnndriver.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.haf.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.haf.so new file mode 100644 index 0000000..637ffc7 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.haf.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.hafoverride.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.hafoverride.so new file mode 100644 index 0000000..a049049 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.hafoverride.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlib.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlib.so new file mode 100644 index 0000000..df1a0a1 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlib.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlibsony.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlibsony.so new file mode 100644 index 0000000..5460e1d Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlibsony.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so b/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so new file mode 100644 index 0000000..3280912 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.aec.so b/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.aec.so new file mode 100644 index 0000000..f4936ef Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.aec.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.af.so b/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.af.so new file mode 100644 index 0000000..22074fe Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.af.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.awb.so b/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.awb.so new file mode 100644 index 0000000..74a3b2f Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.awb.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.pdlib.so b/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.pdlib.so new file mode 100644 index 0000000..1e9317a Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.qtistatic.stats.pdlib.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.vidhance.node.ica.so b/proprietary/vendor/lib64/camera/components/com.vidhance.node.ica.so new file mode 100644 index 0000000..ff13a7e Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.vidhance.node.ica.so differ diff --git a/proprietary/vendor/lib64/camera/components/com.vidhance.node.processing.so b/proprietary/vendor/lib64/camera/components/com.vidhance.node.processing.so new file mode 100644 index 0000000..8a7aad6 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/com.vidhance.node.processing.so differ diff --git a/proprietary/vendor/lib64/camera/components/libdepthmapwrapper_secure.so b/proprietary/vendor/lib64/camera/components/libdepthmapwrapper_secure.so new file mode 100644 index 0000000..09d49e9 Binary files /dev/null and b/proprietary/vendor/lib64/camera/components/libdepthmapwrapper_secure.so differ diff --git a/proprietary/vendor/lib64/camera/fdconfigpreview.bin b/proprietary/vendor/lib64/camera/fdconfigpreview.bin new file mode 100644 index 0000000..ed0e847 Binary files /dev/null and b/proprietary/vendor/lib64/camera/fdconfigpreview.bin differ diff --git a/proprietary/vendor/lib64/camera/fdconfigpreviewlite.bin b/proprietary/vendor/lib64/camera/fdconfigpreviewlite.bin new file mode 100644 index 0000000..cae5c6f Binary files /dev/null and b/proprietary/vendor/lib64/camera/fdconfigpreviewlite.bin differ diff --git a/proprietary/vendor/lib64/camera/fdconfigvideo.bin b/proprietary/vendor/lib64/camera/fdconfigvideo.bin new file mode 100644 index 0000000..4a2a716 Binary files /dev/null and b/proprietary/vendor/lib64/camera/fdconfigvideo.bin differ diff --git a/proprietary/vendor/lib64/camera/fdconfigvideolite.bin b/proprietary/vendor/lib64/camera/fdconfigvideolite.bin new file mode 100644 index 0000000..a2a12de Binary files /dev/null and b/proprietary/vendor/lib64/camera/fdconfigvideolite.bin differ diff --git a/proprietary/vendor/lib64/com.fingerprints.extension@1.0.so b/proprietary/vendor/lib64/com.fingerprints.extension@1.0.so new file mode 100644 index 0000000..00d6c28 Binary files /dev/null and b/proprietary/vendor/lib64/com.fingerprints.extension@1.0.so differ diff --git a/proprietary/vendor/lib64/com.qti.chiusecaseselector.so b/proprietary/vendor/lib64/com.qti.chiusecaseselector.so new file mode 100644 index 0000000..9e982d6 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.chiusecaseselector.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.anchorsync.so b/proprietary/vendor/lib64/com.qti.feature2.anchorsync.so new file mode 100644 index 0000000..454c525 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.anchorsync.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.arcrawpro.so b/proprietary/vendor/lib64/com.qti.feature2.arcrawpro.so new file mode 100644 index 0000000..0ee8e64 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.arcrawpro.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.demux.so b/proprietary/vendor/lib64/com.qti.feature2.demux.so new file mode 100644 index 0000000..7bdd01e Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.demux.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.frameselect.so b/proprietary/vendor/lib64/com.qti.feature2.frameselect.so new file mode 100644 index 0000000..3f8dc5a Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.frameselect.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.fusion.so b/proprietary/vendor/lib64/com.qti.feature2.fusion.so new file mode 100644 index 0000000..5a68716 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.fusion.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.generic.so b/proprietary/vendor/lib64/com.qti.feature2.generic.so new file mode 100644 index 0000000..7cc574e Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.generic.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.gs.mannar.so b/proprietary/vendor/lib64/com.qti.feature2.gs.mannar.so new file mode 100644 index 0000000..3197d80 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.gs.mannar.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.hdr.so b/proprietary/vendor/lib64/com.qti.feature2.hdr.so new file mode 100644 index 0000000..44e1e52 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.hdr.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.mcreprocrt.so b/proprietary/vendor/lib64/com.qti.feature2.mcreprocrt.so new file mode 100644 index 0000000..d839c60 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.mcreprocrt.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.memcpy.so b/proprietary/vendor/lib64/com.qti.feature2.memcpy.so new file mode 100644 index 0000000..a9aed02 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.memcpy.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.mfsr.so b/proprietary/vendor/lib64/com.qti.feature2.mfsr.so new file mode 100644 index 0000000..a50d409 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.mfsr.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.mux.so b/proprietary/vendor/lib64/com.qti.feature2.mux.so new file mode 100644 index 0000000..299b471 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.mux.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.rawhdr.so b/proprietary/vendor/lib64/com.qti.feature2.rawhdr.so new file mode 100644 index 0000000..d106c95 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.rawhdr.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.realtimeserializer.so b/proprietary/vendor/lib64/com.qti.feature2.realtimeserializer.so new file mode 100644 index 0000000..a1a84dd Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.realtimeserializer.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.rt.so b/proprietary/vendor/lib64/com.qti.feature2.rt.so new file mode 100644 index 0000000..fc2688a Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.rt.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.rtmcx.so b/proprietary/vendor/lib64/com.qti.feature2.rtmcx.so new file mode 100644 index 0000000..2bbd8dc Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.rtmcx.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.serializer.so b/proprietary/vendor/lib64/com.qti.feature2.serializer.so new file mode 100644 index 0000000..395865d Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.serializer.so differ diff --git a/proprietary/vendor/lib64/com.qti.feature2.swmf.so b/proprietary/vendor/lib64/com.qti.feature2.swmf.so new file mode 100644 index 0000000..1ff2ea6 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.feature2.swmf.so differ diff --git a/proprietary/vendor/lib64/com.qti.settings.mannar.so b/proprietary/vendor/lib64/com.qti.settings.mannar.so new file mode 100644 index 0000000..09c2e27 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.settings.mannar.so differ diff --git a/proprietary/vendor/lib64/com.qti.stats.common.so b/proprietary/vendor/lib64/com.qti.stats.common.so new file mode 100644 index 0000000..cde8ed3 Binary files /dev/null and b/proprietary/vendor/lib64/com.qti.stats.common.so differ diff --git a/proprietary/vendor/lib64/com.qualcomm.mcx.distortionmapper.so b/proprietary/vendor/lib64/com.qualcomm.mcx.distortionmapper.so new file mode 100644 index 0000000..feae78f Binary files /dev/null and b/proprietary/vendor/lib64/com.qualcomm.mcx.distortionmapper.so differ diff --git a/proprietary/vendor/lib64/com.qualcomm.mcx.linearmapper.so b/proprietary/vendor/lib64/com.qualcomm.mcx.linearmapper.so new file mode 100644 index 0000000..2382603 Binary files /dev/null and b/proprietary/vendor/lib64/com.qualcomm.mcx.linearmapper.so differ diff --git a/proprietary/vendor/lib64/com.qualcomm.mcx.policy.mfl.so b/proprietary/vendor/lib64/com.qualcomm.mcx.policy.mfl.so new file mode 100644 index 0000000..5f30f81 Binary files /dev/null and b/proprietary/vendor/lib64/com.qualcomm.mcx.policy.mfl.so differ diff --git a/proprietary/vendor/lib64/com.qualcomm.qti.mcx.usecase.extension.so b/proprietary/vendor/lib64/com.qualcomm.qti.mcx.usecase.extension.so new file mode 100644 index 0000000..47acda3 Binary files /dev/null and b/proprietary/vendor/lib64/com.qualcomm.qti.mcx.usecase.extension.so differ diff --git a/proprietary/vendor/lib64/hw/camera.qcom.so b/proprietary/vendor/lib64/hw/camera.qcom.so new file mode 100644 index 0000000..21e8963 Binary files /dev/null and b/proprietary/vendor/lib64/hw/camera.qcom.so differ diff --git a/proprietary/vendor/lib64/hw/com.qti.chi.override.so b/proprietary/vendor/lib64/hw/com.qti.chi.override.so new file mode 100644 index 0000000..9be9ea8 Binary files /dev/null and b/proprietary/vendor/lib64/hw/com.qti.chi.override.so differ diff --git a/proprietary/vendor/lib64/hw/fingerprint.goodix.default.so b/proprietary/vendor/lib64/hw/fingerprint.goodix.default.so new file mode 100644 index 0000000..192cfbf Binary files /dev/null and b/proprietary/vendor/lib64/hw/fingerprint.goodix.default.so differ diff --git a/proprietary/vendor/lib64/hw/motorola.hardware.camera.imgtuner@2.0-impl.so b/proprietary/vendor/lib64/hw/motorola.hardware.camera.imgtuner@2.0-impl.so new file mode 100644 index 0000000..8508f77 Binary files /dev/null and b/proprietary/vendor/lib64/hw/motorola.hardware.camera.imgtuner@2.0-impl.so differ diff --git a/proprietary/vendor/lib64/libBST3DDNS.so b/proprietary/vendor/lib64/libBST3DDNS.so new file mode 100644 index 0000000..5ad91a0 Binary files /dev/null and b/proprietary/vendor/lib64/libBST3DDNS.so differ diff --git a/proprietary/vendor/lib64/libBSTHDRDETECT.so b/proprietary/vendor/lib64/libBSTHDRDETECT.so new file mode 100644 index 0000000..b6d14ed Binary files /dev/null and b/proprietary/vendor/lib64/libBSTHDRDETECT.so differ diff --git a/proprietary/vendor/lib64/libBSTMultiExpoGainHDR.so b/proprietary/vendor/lib64/libBSTMultiExpoGainHDR.so new file mode 100644 index 0000000..63ff98f Binary files /dev/null and b/proprietary/vendor/lib64/libBSTMultiExpoGainHDR.so differ diff --git a/proprietary/vendor/lib64/libBSTNodeUtils.so b/proprietary/vendor/lib64/libBSTNodeUtils.so new file mode 100644 index 0000000..65eb1b5 Binary files /dev/null and b/proprietary/vendor/lib64/libBSTNodeUtils.so differ diff --git a/proprietary/vendor/lib64/libC2D2.so b/proprietary/vendor/lib64/libC2D2.so new file mode 100644 index 0000000..900a2ca Binary files /dev/null and b/proprietary/vendor/lib64/libC2D2.so differ diff --git a/proprietary/vendor/lib64/libacdbloader.so b/proprietary/vendor/lib64/libacdbloader.so new file mode 100644 index 0000000..e647abe Binary files /dev/null and b/proprietary/vendor/lib64/libacdbloader.so differ diff --git a/proprietary/vendor/lib64/libaidenoiser.so b/proprietary/vendor/lib64/libaidenoiser.so new file mode 100644 index 0000000..8d2cacc Binary files /dev/null and b/proprietary/vendor/lib64/libaidenoiser.so differ diff --git a/proprietary/vendor/lib64/libaidenoiserv2.so b/proprietary/vendor/lib64/libaidenoiserv2.so new file mode 100644 index 0000000..718a1d9 Binary files /dev/null and b/proprietary/vendor/lib64/libaidenoiserv2.so differ diff --git a/proprietary/vendor/lib64/libarcsoft_chi_utils.so b/proprietary/vendor/lib64/libarcsoft_chi_utils.so new file mode 100644 index 0000000..fd0795c Binary files /dev/null and b/proprietary/vendor/lib64/libarcsoft_chi_utils.so differ diff --git a/proprietary/vendor/lib64/libarcsoft_portrait_super_night_se_raw.so b/proprietary/vendor/lib64/libarcsoft_portrait_super_night_se_raw.so new file mode 100644 index 0000000..a03f77a Binary files /dev/null and b/proprietary/vendor/lib64/libarcsoft_portrait_super_night_se_raw.so differ diff --git a/proprietary/vendor/lib64/libarcsoft_super_night_raw.so b/proprietary/vendor/lib64/libarcsoft_super_night_raw.so new file mode 100644 index 0000000..6b43a4a Binary files /dev/null and b/proprietary/vendor/lib64/libarcsoft_super_night_raw.so differ diff --git a/proprietary/vendor/lib64/libarcsoft_super_night_se_raw.so b/proprietary/vendor/lib64/libarcsoft_super_night_se_raw.so new file mode 100644 index 0000000..e29d0e6 Binary files /dev/null and b/proprietary/vendor/lib64/libarcsoft_super_night_se_raw.so differ diff --git a/proprietary/vendor/lib64/libbitmlengine.so b/proprietary/vendor/lib64/libbitmlengine.so new file mode 100644 index 0000000..f2b179a Binary files /dev/null and b/proprietary/vendor/lib64/libbitmlengine.so differ diff --git a/proprietary/vendor/lib64/libbitmlenginev2.so b/proprietary/vendor/lib64/libbitmlenginev2.so new file mode 100644 index 0000000..711097c Binary files /dev/null and b/proprietary/vendor/lib64/libbitmlenginev2.so differ diff --git a/proprietary/vendor/lib64/libc2d_helper.so b/proprietary/vendor/lib64/libc2d_helper.so new file mode 100644 index 0000000..7e13b17 Binary files /dev/null and b/proprietary/vendor/lib64/libc2d_helper.so differ diff --git a/proprietary/vendor/lib64/libcamera_nn_stub.so b/proprietary/vendor/lib64/libcamera_nn_stub.so new file mode 100644 index 0000000..7829c5a Binary files /dev/null and b/proprietary/vendor/lib64/libcamera_nn_stub.so differ diff --git a/proprietary/vendor/lib64/libcamerapostproc.so b/proprietary/vendor/lib64/libcamerapostproc.so new file mode 100644 index 0000000..4565c5c Binary files /dev/null and b/proprietary/vendor/lib64/libcamerapostproc.so differ diff --git a/proprietary/vendor/lib64/libcamxexternalformatutils.so b/proprietary/vendor/lib64/libcamxexternalformatutils.so new file mode 100644 index 0000000..4babc09 Binary files /dev/null and b/proprietary/vendor/lib64/libcamxexternalformatutils.so differ diff --git a/proprietary/vendor/lib64/libcamxfacialfeatures.so b/proprietary/vendor/lib64/libcamxfacialfeatures.so new file mode 100644 index 0000000..1e43495 Binary files /dev/null and b/proprietary/vendor/lib64/libcamxfacialfeatures.so differ diff --git a/proprietary/vendor/lib64/libcamxfdalgo.so b/proprietary/vendor/lib64/libcamxfdalgo.so new file mode 100644 index 0000000..85c92b2 Binary files /dev/null and b/proprietary/vendor/lib64/libcamxfdalgo.so differ diff --git a/proprietary/vendor/lib64/libcamxfdengine.so b/proprietary/vendor/lib64/libcamxfdengine.so new file mode 100644 index 0000000..cd0638e Binary files /dev/null and b/proprietary/vendor/lib64/libcamxfdengine.so differ diff --git a/proprietary/vendor/lib64/libcamxifestriping.so b/proprietary/vendor/lib64/libcamxifestriping.so new file mode 100644 index 0000000..d8051a7 Binary files /dev/null and b/proprietary/vendor/lib64/libcamxifestriping.so differ diff --git a/proprietary/vendor/lib64/libcamximageformatutils.so b/proprietary/vendor/lib64/libcamximageformatutils.so new file mode 100644 index 0000000..8409dd6 Binary files /dev/null and b/proprietary/vendor/lib64/libcamximageformatutils.so differ diff --git a/proprietary/vendor/lib64/libcamxqsatalgo.so b/proprietary/vendor/lib64/libcamxqsatalgo.so new file mode 100644 index 0000000..e768825 Binary files /dev/null and b/proprietary/vendor/lib64/libcamxqsatalgo.so differ diff --git a/proprietary/vendor/lib64/libcamxstatscore.so b/proprietary/vendor/lib64/libcamxstatscore.so new file mode 100644 index 0000000..e5cc7f3 Binary files /dev/null and b/proprietary/vendor/lib64/libcamxstatscore.so differ diff --git a/proprietary/vendor/lib64/libcamxswispiqmodule.so b/proprietary/vendor/lib64/libcamxswispiqmodule.so new file mode 100644 index 0000000..d873210 Binary files /dev/null and b/proprietary/vendor/lib64/libcamxswispiqmodule.so differ diff --git a/proprietary/vendor/lib64/libcamxswprocessalgo.so b/proprietary/vendor/lib64/libcamxswprocessalgo.so new file mode 100644 index 0000000..86a8ed4 Binary files /dev/null and b/proprietary/vendor/lib64/libcamxswprocessalgo.so differ diff --git a/proprietary/vendor/lib64/libcamxtintlessalgo.so b/proprietary/vendor/lib64/libcamxtintlessalgo.so new file mode 100644 index 0000000..b72519a Binary files /dev/null and b/proprietary/vendor/lib64/libcamxtintlessalgo.so differ diff --git a/proprietary/vendor/lib64/libchilog.so b/proprietary/vendor/lib64/libchilog.so new file mode 100644 index 0000000..e10d09b Binary files /dev/null and b/proprietary/vendor/lib64/libchilog.so differ diff --git a/proprietary/vendor/lib64/libcom.qti.chinodeutils.so b/proprietary/vendor/lib64/libcom.qti.chinodeutils.so new file mode 100644 index 0000000..b81c159 Binary files /dev/null and b/proprietary/vendor/lib64/libcom.qti.chinodeutils.so differ diff --git a/proprietary/vendor/lib64/libgf_ca.so b/proprietary/vendor/lib64/libgf_ca.so new file mode 100644 index 0000000..5ac575c Binary files /dev/null and b/proprietary/vendor/lib64/libgf_ca.so differ diff --git a/proprietary/vendor/lib64/libgf_hal.so b/proprietary/vendor/lib64/libgf_hal.so new file mode 100644 index 0000000..b879fd7 Binary files /dev/null and b/proprietary/vendor/lib64/libgf_hal.so differ diff --git a/proprietary/vendor/lib64/libgoodixhwfingerprint.so b/proprietary/vendor/lib64/libgoodixhwfingerprint.so new file mode 100644 index 0000000..79a4acf Binary files /dev/null and b/proprietary/vendor/lib64/libgoodixhwfingerprint.so differ diff --git a/proprietary/vendor/lib64/libhdr_impl.so b/proprietary/vendor/lib64/libhdr_impl.so new file mode 100644 index 0000000..eb291bd Binary files /dev/null and b/proprietary/vendor/lib64/libhdr_impl.so differ diff --git a/proprietary/vendor/lib64/libipebpsstriping.so b/proprietary/vendor/lib64/libipebpsstriping.so new file mode 100644 index 0000000..5aa42e0 Binary files /dev/null and b/proprietary/vendor/lib64/libipebpsstriping.so differ diff --git a/proprietary/vendor/lib64/libipebpsstriping170.so b/proprietary/vendor/lib64/libipebpsstriping170.so new file mode 100644 index 0000000..49f6c35 Binary files /dev/null and b/proprietary/vendor/lib64/libipebpsstriping170.so differ diff --git a/proprietary/vendor/lib64/libjpege.so b/proprietary/vendor/lib64/libjpege.so new file mode 100644 index 0000000..5647ce7 Binary files /dev/null and b/proprietary/vendor/lib64/libjpege.so differ diff --git a/proprietary/vendor/lib64/liblowlight_ai_portrait.arcsoft.so b/proprietary/vendor/lib64/liblowlight_ai_portrait.arcsoft.so new file mode 100644 index 0000000..539b600 Binary files /dev/null and b/proprietary/vendor/lib64/liblowlight_ai_portrait.arcsoft.so differ diff --git a/proprietary/vendor/lib64/libmctfengine_stub.so b/proprietary/vendor/lib64/libmctfengine_stub.so new file mode 100644 index 0000000..128c926 Binary files /dev/null and b/proprietary/vendor/lib64/libmctfengine_stub.so differ diff --git a/proprietary/vendor/lib64/libmfec.so b/proprietary/vendor/lib64/libmfec.so new file mode 100644 index 0000000..a102784 Binary files /dev/null and b/proprietary/vendor/lib64/libmfec.so differ diff --git a/proprietary/vendor/lib64/libmmcamera_bestats.so b/proprietary/vendor/lib64/libmmcamera_bestats.so new file mode 100644 index 0000000..e5b6c12 Binary files /dev/null and b/proprietary/vendor/lib64/libmmcamera_bestats.so differ diff --git a/proprietary/vendor/lib64/libmmcamera_cac3.so b/proprietary/vendor/lib64/libmmcamera_cac3.so new file mode 100644 index 0000000..1e2cb25 Binary files /dev/null and b/proprietary/vendor/lib64/libmmcamera_cac3.so differ diff --git a/proprietary/vendor/lib64/libmmcamera_faceproc.so b/proprietary/vendor/lib64/libmmcamera_faceproc.so new file mode 100644 index 0000000..e414f31 Binary files /dev/null and b/proprietary/vendor/lib64/libmmcamera_faceproc.so differ diff --git a/proprietary/vendor/lib64/libmmcamera_faceproc2.so b/proprietary/vendor/lib64/libmmcamera_faceproc2.so new file mode 100644 index 0000000..594d47b Binary files /dev/null and b/proprietary/vendor/lib64/libmmcamera_faceproc2.so differ diff --git a/proprietary/vendor/lib64/libmmcamera_lscv35.so b/proprietary/vendor/lib64/libmmcamera_lscv35.so new file mode 100644 index 0000000..05d0c18 Binary files /dev/null and b/proprietary/vendor/lib64/libmmcamera_lscv35.so differ diff --git a/proprietary/vendor/lib64/libmmcamera_mfnr.so b/proprietary/vendor/lib64/libmmcamera_mfnr.so new file mode 100644 index 0000000..1562cc8 Binary files /dev/null and b/proprietary/vendor/lib64/libmmcamera_mfnr.so differ diff --git a/proprietary/vendor/lib64/libmmcamera_mfnr_t4.so b/proprietary/vendor/lib64/libmmcamera_mfnr_t4.so new file mode 100644 index 0000000..26faf57 Binary files /dev/null and b/proprietary/vendor/lib64/libmmcamera_mfnr_t4.so differ diff --git a/proprietary/vendor/lib64/libmmcamera_pdpc.so b/proprietary/vendor/lib64/libmmcamera_pdpc.so new file mode 100644 index 0000000..de6d5c2 Binary files /dev/null and b/proprietary/vendor/lib64/libmmcamera_pdpc.so differ diff --git a/proprietary/vendor/lib64/libmot_afd.so b/proprietary/vendor/lib64/libmot_afd.so new file mode 100644 index 0000000..66dfef8 Binary files /dev/null and b/proprietary/vendor/lib64/libmot_afd.so differ diff --git a/proprietary/vendor/lib64/libmot_chi_desktop_helper.so b/proprietary/vendor/lib64/libmot_chi_desktop_helper.so new file mode 100644 index 0000000..09c66ac Binary files /dev/null and b/proprietary/vendor/lib64/libmot_chi_desktop_helper.so differ diff --git a/proprietary/vendor/lib64/libmot_engine_settings.so b/proprietary/vendor/lib64/libmot_engine_settings.so new file mode 100644 index 0000000..7e71b61 Binary files /dev/null and b/proprietary/vendor/lib64/libmot_engine_settings.so differ diff --git a/proprietary/vendor/lib64/libmotohid.so b/proprietary/vendor/lib64/libmotohid.so new file mode 100644 index 0000000..9bad969 Binary files /dev/null and b/proprietary/vendor/lib64/libmotohid.so differ diff --git a/proprietary/vendor/lib64/libmpbase.so b/proprietary/vendor/lib64/libmpbase.so new file mode 100644 index 0000000..9561793 Binary files /dev/null and b/proprietary/vendor/lib64/libmpbase.so differ diff --git a/proprietary/vendor/lib64/libofflinedump.so b/proprietary/vendor/lib64/libofflinedump.so new file mode 100644 index 0000000..c585e1e Binary files /dev/null and b/proprietary/vendor/lib64/libofflinedump.so differ diff --git a/proprietary/vendor/lib64/libofflinelog.so b/proprietary/vendor/lib64/libofflinelog.so new file mode 100644 index 0000000..e752443 Binary files /dev/null and b/proprietary/vendor/lib64/libofflinelog.so differ diff --git a/proprietary/vendor/lib64/libopencv.so b/proprietary/vendor/lib64/libopencv.so new file mode 100644 index 0000000..31e6dd2 Binary files /dev/null and b/proprietary/vendor/lib64/libopencv.so differ diff --git a/proprietary/vendor/lib64/libopestriping.so b/proprietary/vendor/lib64/libopestriping.so new file mode 100644 index 0000000..f056ed9 Binary files /dev/null and b/proprietary/vendor/lib64/libopestriping.so differ diff --git a/proprietary/vendor/lib64/libos.so b/proprietary/vendor/lib64/libos.so new file mode 100644 index 0000000..bffcea4 Binary files /dev/null and b/proprietary/vendor/lib64/libos.so differ diff --git a/proprietary/vendor/lib64/libportrait_repair_ppl3_ocl.so b/proprietary/vendor/lib64/libportrait_repair_ppl3_ocl.so new file mode 100644 index 0000000..b983f81 Binary files /dev/null and b/proprietary/vendor/lib64/libportrait_repair_ppl3_ocl.so differ diff --git a/proprietary/vendor/lib64/libpowercore.so b/proprietary/vendor/lib64/libpowercore.so new file mode 100644 index 0000000..b4ca3df Binary files /dev/null and b/proprietary/vendor/lib64/libpowercore.so differ diff --git a/proprietary/vendor/lib64/libqll10.so b/proprietary/vendor/lib64/libqll10.so new file mode 100644 index 0000000..8efae87 Binary files /dev/null and b/proprietary/vendor/lib64/libqll10.so differ diff --git a/proprietary/vendor/lib64/libqllengine.so b/proprietary/vendor/lib64/libqllengine.so new file mode 100644 index 0000000..20d6924 Binary files /dev/null and b/proprietary/vendor/lib64/libqllengine.so differ diff --git a/proprietary/vendor/lib64/libremosaic_wrapper.so b/proprietary/vendor/lib64/libremosaic_wrapper.so new file mode 100644 index 0000000..87a65f0 Binary files /dev/null and b/proprietary/vendor/lib64/libremosaic_wrapper.so differ diff --git a/proprietary/vendor/lib64/libswregistrationalgo.so b/proprietary/vendor/lib64/libswregistrationalgo.so new file mode 100644 index 0000000..b37735e Binary files /dev/null and b/proprietary/vendor/lib64/libswregistrationalgo.so differ diff --git a/proprietary/vendor/lib64/libsynx.so b/proprietary/vendor/lib64/libsynx.so new file mode 100644 index 0000000..4c92498 Binary files /dev/null and b/proprietary/vendor/lib64/libsynx.so differ diff --git a/proprietary/vendor/lib64/libtfestriping.so b/proprietary/vendor/lib64/libtfestriping.so new file mode 100644 index 0000000..19c7db8 Binary files /dev/null and b/proprietary/vendor/lib64/libtfestriping.so differ diff --git a/proprietary/vendor/lib64/libthreadutils.so b/proprietary/vendor/lib64/libthreadutils.so new file mode 100644 index 0000000..395a81d Binary files /dev/null and b/proprietary/vendor/lib64/libthreadutils.so differ diff --git a/proprietary/vendor/lib64/libvidhance.so b/proprietary/vendor/lib64/libvidhance.so new file mode 100644 index 0000000..407bf36 Binary files /dev/null and b/proprietary/vendor/lib64/libvidhance.so differ diff --git a/proprietary/vendor/lib64/motorola.hardware.camera.desktop@1.0.so b/proprietary/vendor/lib64/motorola.hardware.camera.desktop@1.0.so new file mode 100644 index 0000000..7df37e1 Binary files /dev/null and b/proprietary/vendor/lib64/motorola.hardware.camera.desktop@1.0.so differ diff --git a/proprietary/vendor/lib64/motorola.hardware.camera.desktop@2.0.so b/proprietary/vendor/lib64/motorola.hardware.camera.desktop@2.0.so new file mode 100644 index 0000000..675b8d9 Binary files /dev/null and b/proprietary/vendor/lib64/motorola.hardware.camera.desktop@2.0.so differ diff --git a/proprietary/vendor/lib64/motorola.hardware.camera.imgtuner@1.0.so b/proprietary/vendor/lib64/motorola.hardware.camera.imgtuner@1.0.so new file mode 100644 index 0000000..95de0f1 Binary files /dev/null and b/proprietary/vendor/lib64/motorola.hardware.camera.imgtuner@1.0.so differ diff --git a/proprietary/vendor/lib64/motorola.hardware.camera.imgtuner@2.0.so b/proprietary/vendor/lib64/motorola.hardware.camera.imgtuner@2.0.so new file mode 100644 index 0000000..8e8502c Binary files /dev/null and b/proprietary/vendor/lib64/motorola.hardware.camera.imgtuner@2.0.so differ diff --git a/proprietary/vendor/lib64/sensors.moto.so b/proprietary/vendor/lib64/sensors.moto.so new file mode 100644 index 0000000..4538dd8 Binary files /dev/null and b/proprietary/vendor/lib64/sensors.moto.so differ diff --git a/proprietary/vendor/lib64/sensors.ssc.so b/proprietary/vendor/lib64/sensors.ssc.so new file mode 100644 index 0000000..33e9a7e Binary files /dev/null and b/proprietary/vendor/lib64/sensors.ssc.so differ diff --git a/proprietary/vendor/lib64/vendor.goodix.hardware.biometrics.fingerprint@3.0.so b/proprietary/vendor/lib64/vendor.goodix.hardware.biometrics.fingerprint@3.0.so new file mode 100644 index 0000000..e7eafa1 Binary files /dev/null and b/proprietary/vendor/lib64/vendor.goodix.hardware.biometrics.fingerprint@3.0.so differ diff --git a/proprietary/vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so b/proprietary/vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so new file mode 100644 index 0000000..a45dcb9 Binary files /dev/null and b/proprietary/vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so differ diff --git a/proprietary/vendor/lib64/vendor.qti.hardware.fingerprint@1.0.so b/proprietary/vendor/lib64/vendor.qti.hardware.fingerprint@1.0.so new file mode 100644 index 0000000..cd74613 Binary files /dev/null and b/proprietary/vendor/lib64/vendor.qti.hardware.fingerprint@1.0.so differ diff --git a/proprietary/vendor/lib64/vendor.qti.hardware.scve.objecttracker@1.0.so b/proprietary/vendor/lib64/vendor.qti.hardware.scve.objecttracker@1.0.so new file mode 100644 index 0000000..67e0141 Binary files /dev/null and b/proprietary/vendor/lib64/vendor.qti.hardware.scve.objecttracker@1.0.so differ diff --git a/proprietary/vendor/lib64/vendor.qti.hardware.scve.panorama@1.0.so b/proprietary/vendor/lib64/vendor.qti.hardware.scve.panorama@1.0.so new file mode 100644 index 0000000..4728cf3 Binary files /dev/null and b/proprietary/vendor/lib64/vendor.qti.hardware.scve.panorama@1.0.so differ