From d9fccb438365a157e85984bd8d13ed43515f0f4d Mon Sep 17 00:00:00 2001 From: rusefillc Date: Thu, 14 Apr 2022 20:42:31 -0400 Subject: [PATCH] logging of live data structs was: data points #3614 unification with outputs --- firmware/console/binary/output_channels.txt | 2 +- ...enerated.h => output_channels_generated.h} | 8 +- firmware/console/binary/tunerstudio_outputs.h | 4 +- .../controllers/trigger/trigger_central.txt | 1 + .../trigger/trigger_central_generated.h | 5 +- firmware/gen_output_channels.sh | 5 +- firmware/integration/LiveData.yaml | 3 +- firmware/integration/rusefi_config.txt | 2 - .../java/com/rusefi/enums/live_data_e.java | 1 + .../java/com/rusefi/ldmp/StateDictionary.java | 8 +- .../rusefi/config/generated/AcControl.java | 385 +---- .../rusefi/config/generated/BoostControl.java | 385 +---- .../config/generated/ElectronicThrottle.java | 385 +---- .../rusefi/config/generated/EngineState.java | 385 +---- .../rusefi/config/generated/FanControl.java | 385 +---- .../com/rusefi/config/generated/FuelPump.java | 385 +---- .../generated/HighPressureFuelPump.java | 385 +---- .../rusefi/config/generated/IdleState.java | 385 +---- .../config/generated/IgnitionState.java | 385 +---- .../config/generated/InjectorModel.java | 385 +---- .../config/generated/LaunchControl.java | 385 +---- .../rusefi/config/generated/MainRelay.java | 385 +---- .../config/generated/TpsAccelState.java | 385 +---- .../config/generated/TriggerCentral.java | 384 +---- .../rusefi/config/generated/TriggerState.java | 385 +---- .../rusefi/config/generated/TsOutputs.java | 1255 +++++++++++++++++ .../config/generated/WallFuelState.java | 385 +---- java_tools/ConfigDefinition.jar | Bin 5442418 -> 5714992 bytes .../java/com/rusefi/ConfigDefinition.java | 10 +- .../java/com/rusefi/ldmp/UsagesReader.java | 20 +- 30 files changed, 1317 insertions(+), 6166 deletions(-) rename firmware/console/binary/{ts_outputs_generated.h => output_channels_generated.h} (98%) create mode 100644 java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java diff --git a/firmware/console/binary/output_channels.txt b/firmware/console/binary/output_channels.txt index 3fcc2debb0..4f05b1d5ee 100644 --- a/firmware/console/binary/output_channels.txt +++ b/firmware/console/binary/output_channels.txt @@ -1,6 +1,6 @@ ! units,scale,offset,min,max,digits -struct_no_prefix ts_outputs_s +struct_no_prefix output_channels_s bit sd_present bit isIgnitionEnabledIndicator; diff --git a/firmware/console/binary/ts_outputs_generated.h b/firmware/console/binary/output_channels_generated.h similarity index 98% rename from firmware/console/binary/ts_outputs_generated.h rename to firmware/console/binary/output_channels_generated.h index 8e995b4463..a3cef755ba 100644 --- a/firmware/console/binary/ts_outputs_generated.h +++ b/firmware/console/binary/output_channels_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Thu Apr 07 13:26:35 UTC 2022 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary\output_channels.txt Thu Apr 14 20:51:56 EDT 2022 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -28,8 +28,8 @@ struct pid_status_s { /** total size 12*/ }; -// start of ts_outputs_s -struct ts_outputs_s { +// start of output_channels_s +struct output_channels_s { /** offset 0 bit 0 */ bool sd_present : 1 {}; @@ -1391,4 +1391,4 @@ struct ts_outputs_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Thu Apr 07 13:26:35 UTC 2022 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary\output_channels.txt Thu Apr 14 20:51:56 EDT 2022 diff --git a/firmware/console/binary/tunerstudio_outputs.h b/firmware/console/binary/tunerstudio_outputs.h index b4206d45fa..1735ec5a5e 100644 --- a/firmware/console/binary/tunerstudio_outputs.h +++ b/firmware/console/binary/tunerstudio_outputs.h @@ -12,7 +12,7 @@ #include "rusefi_types.h" #include "scaled_channel.h" -#include "ts_outputs_generated.h" +#include "output_channels_generated.h" #ifndef WITH_TS_STATE // do we ever see a case of compiling without TSOutputChannels? Shall we wipe out all '#if EFI_TUNER_STUDIO' or replace with '#if WITH_TS_STATE' @@ -30,4 +30,4 @@ * see also [OutputChannels] in rusefi.input * see also TS_OUTPUT_SIZE in rusefi_config.txt */ -struct TunerStudioOutputChannels : ts_outputs_s { }; +struct TunerStudioOutputChannels : output_channels_s { }; diff --git a/firmware/controllers/trigger/trigger_central.txt b/firmware/controllers/trigger/trigger_central.txt index 12482f5bff..585ea2eb26 100644 --- a/firmware/controllers/trigger/trigger_central.txt +++ b/firmware/controllers/trigger/trigger_central.txt @@ -1,3 +1,4 @@ +#define HW_EVENT_TYPES 6 struct_no_prefix trigger_central_s diff --git a/firmware/controllers/trigger/trigger_central_generated.h b/firmware/controllers/trigger/trigger_central_generated.h index 52ef8d46e0..59033ae377 100644 --- a/firmware/controllers/trigger/trigger_central_generated.h +++ b/firmware/controllers/trigger/trigger_central_generated.h @@ -1,8 +1,9 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger\trigger_central.txt Thu Apr 14 15:43:13 EDT 2022 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger\trigger_central.txt Thu Apr 14 20:48:21 EDT 2022 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once #include "rusefi_types.h" +#define HW_EVENT_TYPES 6 // start of trigger_central_s struct trigger_central_s { /** @@ -18,4 +19,4 @@ struct trigger_central_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger\trigger_central.txt Thu Apr 14 15:43:13 EDT 2022 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger\trigger_central.txt Thu Apr 14 20:48:21 EDT 2022 diff --git a/firmware/gen_output_channels.sh b/firmware/gen_output_channels.sh index 942410d576..d931124cd8 100755 --- a/firmware/gen_output_channels.sh +++ b/firmware/gen_output_channels.sh @@ -4,7 +4,4 @@ java -DSystemOut.name=logs/gen_output_channels \ -jar ../java_tools/ConfigDefinition.jar \ -prepend integration/rusefi_config.txt \ -definition console/binary/output_channels.txt \ - -output_lookup_file controllers/lua/generated/output_lookup_generated.cpp \ - -ts_outputs_section console/binary/ \ - -with_c_defines false \ - -c_destination console/binary/ts_outputs_generated.h \ No newline at end of file + -output_lookup_file controllers/lua/generated/output_lookup_generated.cpp diff --git a/firmware/integration/LiveData.yaml b/firmware/integration/LiveData.yaml index b752420b4f..db12f47cad 100644 --- a/firmware/integration/LiveData.yaml +++ b/firmware/integration/LiveData.yaml @@ -3,6 +3,7 @@ # see gen_live_documentation.sh # Usages: + output_channels: ["TsOutputs.java", "console/binary", "-prepend=integration/rusefi_config.txt" ] high_pressure_fuel_pump: [ "HighPressureFuelPump.java", "controllers/engine_cycle" ] injector_model: [ "InjectorModel.java", "controllers/algo/fuel" ] launch_control_state: [ "LaunchControl.java", "controllers/algo" ] @@ -15,7 +16,7 @@ Usages: #pid_state: [ "PidState.java", "util/math" ] engine_state: [ "EngineState.java", "controllers/algo" ] tps_accel_state: [ "TpsAccelState.java", "controllers/algo" ] - trigger_central: [ "TriggerCentral.java", "controllers/trigger" ] + trigger_central: [ "TriggerCentral.java", "controllers/trigger", "-with_c_defines=true" ] trigger_state: [ "TriggerState.java", "controllers/trigger" ] wall_fuel_state: [ "WallFuelState.java", "controllers/algo" ] idle_state: [ "IdleState.java", "controllers/actuators" ] diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index ff52ce7c6c..69364c5c74 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -79,8 +79,6 @@ ! #define TS_OUTPUT_SIZE 640 -#define HW_EVENT_TYPES 6 - ! ! this is used to confirm that firmware and TunerStudio are using the same rusefi.ini version ! so not forget to change fileVersion in rusefi.ini diff --git a/java_console/io/src/main/java/com/rusefi/enums/live_data_e.java b/java_console/io/src/main/java/com/rusefi/enums/live_data_e.java index 37b03584a9..e7cb98d42e 100644 --- a/java_console/io/src/main/java/com/rusefi/enums/live_data_e.java +++ b/java_console/io/src/main/java/com/rusefi/enums/live_data_e.java @@ -4,6 +4,7 @@ package com.rusefi.enums; public enum live_data_e { + LDS_output_channels, LDS_high_pressure_fuel_pump, LDS_injector_model, LDS_launch_control_state, diff --git a/java_console/io/src/main/java/com/rusefi/ldmp/StateDictionary.java b/java_console/io/src/main/java/com/rusefi/ldmp/StateDictionary.java index 4e72e43796..0c9bf8f5cd 100644 --- a/java_console/io/src/main/java/com/rusefi/ldmp/StateDictionary.java +++ b/java_console/io/src/main/java/com/rusefi/ldmp/StateDictionary.java @@ -1,5 +1,6 @@ package com.rusefi.ldmp; +import com.rusefi.OutputChannel; import com.rusefi.config.Field; import com.rusefi.config.generated.*; import com.rusefi.enums.live_data_e; @@ -23,10 +24,11 @@ public enum StateDictionary { // LDS_CJ125_PID //register(live_data_e.LDS_IDLE, IdleState.VALUES); // todo: code generate this! - register(live_data_e.LDS_engine_state, EngineState.VALUES, "engine"); // 3 + register(live_data_e.LDS_output_channels, TsOutputs.VALUES, "output_channels"); + register(live_data_e.LDS_engine_state, EngineState.VALUES, "engine"); register(live_data_e.LDS_trigger_central, TriggerCentral.VALUES, "trigger_central"); - register(live_data_e.LDS_trigger_state, TriggerState.VALUES, "trigger_decoder"); // 11 - register(live_data_e.LDS_ac_control, AcControl.VALUES, "ac_control"); // 12 + register(live_data_e.LDS_trigger_state, TriggerState.VALUES, "trigger_decoder"); + register(live_data_e.LDS_ac_control, AcControl.VALUES, "ac_control"); register(live_data_e.LDS_fan_control, FuelPump.VALUES, "fan_control"); register(live_data_e.LDS_injector_model, InjectorModel.VALUES, "injector_model"); register(live_data_e.LDS_idle_state, IdleState.VALUES, "idle_thread"); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java index b09bfed80c..870aa1b4fa 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\ac_control.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\ac_control.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class AcControl { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field ENGINETOOSLOW = Field.create("ENGINETOOSLOW", 0, FieldType.BIT, 0); public static final Field ENGINETOOFAST = Field.create("ENGINETOOFAST", 0, FieldType.BIT, 1); public static final Field NOCLT = Field.create("NOCLT", 0, FieldType.BIT, 2); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java index e14c0bdbc8..fc1484c6f0 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\boost_control.txt Thu Apr 14 15:45:19 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\boost_control.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class BoostControl { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field ISTPSINVALID = Field.create("ISTPSINVALID", 0, FieldType.BIT, 0); public static final Field M_SHOULDRESETPID = Field.create("M_SHOULDRESETPID", 0, FieldType.BIT, 1); public static final Field ISBELOWCLOSEDLOOPTHRESHOLD = Field.create("ISBELOWCLOSEDLOOPTHRESHOLD", 0, FieldType.BIT, 2); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java b/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java index bed7031e86..82db347dfd 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\electronic_throttle.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\electronic_throttle.txt Thu Apr 14 20:48:22 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class ElectronicThrottle { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field IDLEPOSITION = Field.create("IDLEPOSITION", 0, FieldType.FLOAT); public static final Field TRIM = Field.create("TRIM", 4, FieldType.FLOAT); public static final Field LUAADJUSTMENT = Field.create("LUAADJUSTMENT", 8, FieldType.FLOAT); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java b/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java index 8747714672..9e5d8880d9 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\engine_state.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\engine_state.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class EngineState { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field ISTCHARGEAIRMODEL = Field.create("ISTCHARGEAIRMODEL", 0, FieldType.BIT, 0); public static final Field UNUSEDBIT_1_1 = Field.create("UNUSEDBIT_1_1", 0, FieldType.BIT, 1); public static final Field UNUSEDBIT_1_2 = Field.create("UNUSEDBIT_1_2", 0, FieldType.BIT, 2); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/FanControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/FanControl.java index 1b149029b1..a34fc7ef55 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/FanControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/FanControl.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\fan_control.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\fan_control.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class FanControl { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field CRANKING = Field.create("CRANKING", 0, FieldType.BIT, 0); public static final Field NOTRUNNING = Field.create("NOTRUNNING", 0, FieldType.BIT, 1); public static final Field DISABLEDWHILEENGINESTOPPED = Field.create("DISABLEDWHILEENGINESTOPPED", 0, FieldType.BIT, 2); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/FuelPump.java b/java_console/models/src/main/java/com/rusefi/config/generated/FuelPump.java index cb54f399c7..4560a8cfed 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/FuelPump.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/FuelPump.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\fuel_pump_control.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\fuel_pump_control.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class FuelPump { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field ISPRIME = Field.create("ISPRIME", 0, FieldType.BIT, 0); public static final Field ENGINETURNEDRECENTLY = Field.create("ENGINETURNEDRECENTLY", 0, FieldType.BIT, 1); public static final Field ISPUMPON = Field.create("ISPUMPON", 0, FieldType.BIT, 2); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/HighPressureFuelPump.java b/java_console/models/src/main/java/com/rusefi/config/generated/HighPressureFuelPump.java index b533505ab6..e0a6cd6b89 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/HighPressureFuelPump.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/HighPressureFuelPump.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/engine_cycle\high_pressure_fuel_pump.txt Thu Apr 14 15:45:19 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/engine_cycle\high_pressure_fuel_pump.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class HighPressureFuelPump { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field M_REQUESTED_PUMP = Field.create("M_REQUESTED_PUMP", 0, FieldType.FLOAT); public static final Field FUEL_REQUESTED_PERCENT = Field.create("FUEL_REQUESTED_PERCENT", 4, FieldType.FLOAT); public static final Field FUEL_REQUESTED_PERCENT_PI = Field.create("FUEL_REQUESTED_PERCENT_PI", 8, FieldType.FLOAT); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/IdleState.java b/java_console/models/src/main/java/com/rusefi/config/generated/IdleState.java index 722ffcd4fd..e4815aca77 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/IdleState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/IdleState.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\idle_state.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\idle_state.txt Thu Apr 14 20:48:22 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class IdleState { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field IDLESTATE = Field.create("IDLESTATE", 0, FieldType.INT).setScale(1.0); public static final Field CURRENTIDLEPOSITION = Field.create("CURRENTIDLEPOSITION", 4, FieldType.FLOAT); public static final Field BASEIDLEPOSITION = Field.create("BASEIDLEPOSITION", 8, FieldType.FLOAT); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/IgnitionState.java b/java_console/models/src/main/java/com/rusefi/config/generated/IgnitionState.java index ab75b03b34..ecafbc336c 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/IgnitionState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/IgnitionState.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\ignition_state.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\ignition_state.txt Thu Apr 14 20:48:22 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class IgnitionState { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field BASEDWELL = Field.create("BASEDWELL", 0, FieldType.FLOAT); public static final Field DWELLVOLTAGECORRECTION = Field.create("DWELLVOLTAGECORRECTION", 4, FieldType.FLOAT); public static final Field[] VALUES = { diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/InjectorModel.java b/java_console/models/src/main/java/com/rusefi/config/generated/InjectorModel.java index 4b7018a58f..bb642c4685 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/InjectorModel.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/InjectorModel.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/fuel\injector_model.txt Thu Apr 14 15:45:19 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/fuel\injector_model.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class InjectorModel { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field M_DEADTIME = Field.create("M_DEADTIME", 0, FieldType.FLOAT); public static final Field PRESSUREDELTA = Field.create("PRESSUREDELTA", 4, FieldType.FLOAT); public static final Field PRESSURERATIO = Field.create("PRESSURERATIO", 8, FieldType.FLOAT); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/LaunchControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/LaunchControl.java index 7dbc1b2995..13cc02d67b 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/LaunchControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/LaunchControl.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\launch_control_state.txt Thu Apr 14 15:45:19 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\launch_control_state.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class LaunchControl { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field RETARDTHRESHOLDRPM = Field.create("RETARDTHRESHOLDRPM", 0, FieldType.INT).setScale(1.0); public static final Field COMBINEDCONDITIONS = Field.create("COMBINEDCONDITIONS", 4, FieldType.BIT, 0); public static final Field LAUNCHACTIVATEPINSTATE = Field.create("LAUNCHACTIVATEPINSTATE", 4, FieldType.BIT, 1); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/MainRelay.java b/java_console/models/src/main/java/com/rusefi/config/generated/MainRelay.java index 9e376e3c35..8fe5841f45 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/MainRelay.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/MainRelay.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\main_relay.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators\main_relay.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class MainRelay { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field ISBENCHTEST = Field.create("ISBENCHTEST", 0, FieldType.BIT, 0); public static final Field HASIGNITIONVOLTAGE = Field.create("HASIGNITIONVOLTAGE", 0, FieldType.BIT, 1); public static final Field MAINRELAYSTATE = Field.create("MAINRELAYSTATE", 0, FieldType.BIT, 2); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TpsAccelState.java b/java_console/models/src/main/java/com/rusefi/config/generated/TpsAccelState.java index 915374217f..a3c5329a8b 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TpsAccelState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TpsAccelState.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\tps_accel_state.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\tps_accel_state.txt Thu Apr 14 20:46:48 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class TpsAccelState { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field TPSFROM = Field.create("TPSFROM", 0, FieldType.FLOAT); public static final Field TPSTO = Field.create("TPSTO", 4, FieldType.FLOAT); public static final Field DELTATPS = Field.create("DELTATPS", 8, FieldType.FLOAT); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerCentral.java b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerCentral.java index baa2f8cf3a..3a94432e00 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerCentral.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerCentral.java @@ -1,394 +1,12 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger\trigger_central.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger\trigger_central.txt Thu Apr 14 20:48:21 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class TriggerCentral { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field HWEVENTCOUNTERS1 = Field.create("HWEVENTCOUNTERS1", 0, FieldType.INT).setScale(1.0); public static final Field HWEVENTCOUNTERS2 = Field.create("HWEVENTCOUNTERS2", 4, FieldType.INT).setScale(1.0); public static final Field HWEVENTCOUNTERS3 = Field.create("HWEVENTCOUNTERS3", 8, FieldType.INT).setScale(1.0); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java index 5c78527338..e1c81a6cfc 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger\trigger_state.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/trigger\trigger_state.txt Thu Apr 14 20:48:22 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class TriggerState { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field CURRENTGAP = Field.create("CURRENTGAP", 0, FieldType.FLOAT); public static final Field TOTALREVOLUTIONCOUNTER = Field.create("TOTALREVOLUTIONCOUNTER", 4, FieldType.INT).setScale(1.0); public static final Field[] VALUES = { diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java b/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java new file mode 100644 index 0000000000..d30869cc6a --- /dev/null +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java @@ -0,0 +1,1255 @@ +package com.rusefi.config.generated; + +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary\output_channels.txt Thu Apr 14 20:48:21 EDT 2022 + +// by class com.rusefi.output.FileJavaFieldsConsumer +import com.rusefi.config.*; + +public class TsOutputs { + public static final int ADC_CHANNEL_NONE = 0; + public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; + public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; + public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; + public static final int AUX_ANALOG_INPUT_COUNT = 8; + public static final int AUX_DIGITAL_VALVE_COUNT = 2; + public static final int BANKS_COUNT = 2; + public static final int BARO_CORR_SIZE = 4; + public static final int BLOCKING_FACTOR = 256; + public static final int BOOST_LOAD_COUNT = 8; + public static final int BOOST_RPM_COUNT = 8; + public static final int CAM_INPUTS_COUNT = 4; + public static final int CAM_INPUTS_COUNT_padding = 0; + public static final int CAMS_PER_BANK = 2; + public static final int CAMS_PER_BANK_padding = 0; + public static final int CAN_DEFAULT_BASE = 0x200; + public static final int CAN_ECU_SERIAL_RX_ID = 0x100; + public static final int CAN_ECU_SERIAL_TX_ID = 0x102; + public static final String CAN_RX_PREFIX = "CAN_rx"; + public static final int CLT_CRANKING_CURVE_SIZE = 8; + public static final int CLT_CURVE_SIZE = 16; + public static final int CLT_LIMITER_CURVE_SIZE = 4; + public static final int CLT_TIMING_CURVE_SIZE = 8; + public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; + public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; + public static final String CMD_BOOST_PIN = "set_boost_pin"; + public static final String CMD_BURNCONFIG = "burnconfig"; + public static final String CMD_DATE = "date"; + public static final String CMD_DISABLE = "disable"; + public static final String CMD_ENABLE = "enable"; + public static final String CMD_ENGINE_TYPE = "engine_type"; + public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; + public static final String CMD_ETB_DUTY = "set_etb_duty"; + public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; + public static final String CMD_FAN2_BENCH = "fan2bench"; + public static final String CMD_FAN_BENCH = "fanbench"; + public static final String CMD_FUEL_BENCH = "fuelbench"; + public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; + public static final String CMD_GET = "get"; + public static final String CMD_HPFP_BENCH = "hpfpbench"; + public static final String CMD_IDLE_PIN = "set_idle_pin"; + public static final String CMD_IGNITION = "ignition"; + public static final String CMD_IGNITION_PIN = "set_ignition_pin"; + public static final String CMD_INJECTION = "injection"; + public static final String CMD_INJECTION_PIN = "set_injection_pin"; + public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; + public static final String CMD_MIL_BENCH = "milbench"; + public static final String CMD_PINS = "pins"; + public static final String CMD_PWM = "pwm"; + public static final String CMD_REBOOT = "reboot"; + public static final String CMD_REBOOT_DFU = "reboot_dfu"; + public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; + public static final String CMD_RPM = "rpm"; + public static final String CMD_SELF_STIMULATION = "self_stimulation"; + public static final String CMD_SET = "set"; + public static final String CMD_SPARK_BENCH = "sparkbench"; + public static final String CMD_STARTER_BENCH = "starterbench"; + public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; + public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; + public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; + public static final String CMD_TRIGGERINFO = "triggerinfo"; + public static final int CMD_TS_BENCH_CATEGORY = 22; + public static final int CMD_TS_FSIO_CATEGORY = 33; + public static final int CMD_TS_SOLENOID_CATEGORY = 41; + public static final int CMD_TS_X14 = 20; + public static final int CMD_TS_X31 = 49; + public static final String CMD_VSS_PIN = "vss_pin"; + public static final String CMD_WRITECONFIG = "writeconfig"; + public static final int COMPOSITE_DATA_LENGTH = 2500; + public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; + public static final int COMPOSITE_PACKET_COUNT = 500; + public static final int COMPOSITE_PACKET_SIZE = 5; + public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; + public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; + public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; + public static final int CRANKING_CURVE_SIZE = 8; + public static final String CRITICAL_PREFIX = "CRITICAL"; + public static final int DC_PER_STEPPER = 2; + public static final int DIGIPOT_COUNT = 4; + public static final int DWELL_CURVE_SIZE = 8; + public static final int EGT_CHANNEL_COUNT = 8; + public static final String ENGINE_MAKE_BMW = "BMW"; + public static final String ENGINE_MAKE_GM = "GM"; + public static final String ENGINE_MAKE_HONDA = "Honda"; + public static final String ENGINE_MAKE_Hyundai = "Hyundai"; + public static final String ENGINE_MAKE_LADA = "Lada"; + public static final String ENGINE_MAKE_MAZDA = "Mazda"; + public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; + public static final String ENGINE_MAKE_NISSAN = "Nissan"; + public static final String ENGINE_MAKE_SUBARU = "Subaru"; + public static final String ENGINE_MAKE_TOYOTA = "Toyota"; + public static final String ENGINE_MAKE_VAG = "VAG"; + public static final int ENGINE_NOISE_CURVE_SIZE = 8; + public static final int ENGINE_SNIFFER_UNIT_US = 10; + public static final int ENUM_16_BITS = 60000; + public static final int ENUM_32_BITS = 2000000000; + public static final int ERROR_BUFFER_SIZE = 120; + public static final int ETB_BIAS_CURVE_LENGTH = 8; + public static final int ETB_COUNT = 2; + public static final int ETB_HW_MAX_FREQUENCY = 3000; + public static final int FLASH_DATA_VERSION = 10009; + public static final int FUEL_LEVEL_TABLE_COUNT = 8; + public static final int FUEL_LOAD_COUNT = 16; + public static final int FUEL_RPM_COUNT = 16; + public static final int GAP_TRACKING_LENGTH = 18; + public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; + public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; + public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; + public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; + public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; + public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; + public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; + public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; + public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; + public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; + public static final String GAUGE_NAME_AIR_MASS = "air mass"; + public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; + public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; + public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; + public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; + public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; + public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; + public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; + public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; + public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; + public static final String GAUGE_NAME_CLT = "CLT"; + public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; + public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; + public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; + public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; + public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; + public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; + public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; + public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; + public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; + public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; + public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; + public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; + public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; + public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; + public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; + public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; + public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; + public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; + public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; + public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; + public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; + public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; + public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; + public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; + public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; + public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; + public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; + public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; + public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; + public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; + public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; + public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; + public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; + public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; + public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; + public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; + public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; + public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; + public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; + public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; + public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; + public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; + public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; + public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; + public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; + public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; + public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; + public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; + public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; + public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; + public static final String GAUGE_NAME_IAC = "Idle Air Valve"; + public static final String GAUGE_NAME_IAT = "IAT"; + public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; + public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; + public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; + public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; + public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; + public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; + public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; + public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; + public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; + public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; + public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; + public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; + public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; + public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; + public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; + public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; + public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; + public static final String GAUGE_NAME_LAMBDA = "Lambda"; + public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; + public static final String GAUGE_NAME_LAST_ERROR = "Last error"; + public static final String GAUGE_NAME_MAF = "MAF"; + public static final String GAUGE_NAME_MAP = "MAP"; + public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; + public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; + public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; + public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; + public static final String GAUGE_NAME_RPM = "RPM"; + public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; + public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; + public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; + public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; + public static final String GAUGE_NAME_TIME = "Time"; + public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; + public static final String GAUGE_NAME_TPS = "TPS"; + public static final String GAUGE_NAME_TPS2 = "TPS2"; + public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; + public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; + public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; + public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; + public static final String GAUGE_NAME_UPTIME = "Uptime"; + public static final String GAUGE_NAME_VBAT = "VBatt"; + public static final String GAUGE_NAME_VERSION = "firmware"; + public static final String GAUGE_NAME_VVS = "Vehicle Speed"; + public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; + public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; + public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; + public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; + public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; + public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; + public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; + public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; + public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; + public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; + public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; + public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; + public static final int GEARS_COUNT = 8; + public static final int GPPWM_CHANNELS = 4; + public static final int GPPWM_LOAD_COUNT = 8; + public static final int GPPWM_NOTE_SIZE = 16; + public static final int GPPWM_RPM_COUNT = 8; + public static final int HPFP_COMPENSATION_SIZE = 10; + public static final int HPFP_DEADTIME_SIZE = 8; + public static final int HPFP_LOBE_PROFILE_SIZE = 16; + public static final int HPFP_TARGET_SIZE = 10; + public static final int HW_MAX_ADC_INDEX = 17; + public static final int IAC_PID_MULT_SIZE = 8; + public static final int IAT_CURVE_SIZE = 16; + public static final int IDLE_ADVANCE_CURVE_SIZE = 8; + public static final int IDLE_VE_SIZE = 4; + public static final int IGN_LOAD_COUNT = 16; + public static final int IGN_RPM_COUNT = 16; + public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; + public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; + public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; + public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; + public static final int LE_COMMAND_LENGTH = 200; + public static final String LOG_DELIMITER = "`"; + public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; + public static final int LUA_ANALOG_INPUT_COUNT = 8; + public static final int LUA_PWM_COUNT = 8; + public static final int LUA_SCRIPT_SIZE = 8000; + public static final int MAF_DECODING_COUNT = 256; + public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; + public static final int MAP_ANGLE_SIZE = 8; + public static final int MAP_WINDOW_SIZE = 8; + public static final int MAX_CYLINDER_COUNT = 12; + public static final int MLQ_FIELD_HEADER_SIZE = 55; + public static final int MLQ_HEADER_SIZE = 22; + public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; + public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; + public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; + public static final int PACK_ADD_TEMPERATURE = 40; + public static final int PACK_MULT_AFR = 1000; + public static final int PACK_MULT_AFR_CFG = 10; + public static final int PACK_MULT_ANGLE = 50; + public static final int PACK_MULT_FUEL_FLOW = 200; + public static final int PACK_MULT_FUEL_MASS = 100; + public static final int PACK_MULT_HIGH_PRESSURE = 10; + public static final int PACK_MULT_LAMBDA = 10000; + public static final int PACK_MULT_LAMBDA_CFG = 147; + public static final int PACK_MULT_MAP_ESTIMATE = 100; + public static final int PACK_MULT_MASS_FLOW = 10; + public static final int PACK_MULT_MS = 300; + public static final int PACK_MULT_PERCENT = 100; + public static final int PACK_MULT_PRESSURE = 30; + public static final int PACK_MULT_TEMPERATURE = 100; + public static final int PACK_MULT_VOLTAGE = 1000; + public static final int PEDAL_TO_TPS_SIZE = 8; + public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; + public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; + public static final String PROTOCOL_CRANK1 = "t1"; + public static final String PROTOCOL_CRANK2 = "t2"; + public static final String PROTOCOL_CRANK3 = "t3"; + public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; + public static final String PROTOCOL_ES_DOWN = "d"; + public static final String PROTOCOL_ES_UP = "u"; + public static final String PROTOCOL_HELLO_PREFIX = "***"; + public static final String PROTOCOL_HIP_NAME = "HIP"; + public static final String PROTOCOL_HPFP_NAME = "hpfp"; + public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; + public static final String PROTOCOL_MSG = "msg"; + public static final String PROTOCOL_OUTPIN = "outpin"; + public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; + public static final String PROTOCOL_TACH_NAME = "tach"; + public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; + public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; + public static final String PROTOCOL_VVT1_NAME = "VVT1"; + public static final String PROTOCOL_VVT2_NAME = "VVT2"; + public static final String PROTOCOL_VVT3_NAME = "VVT3"; + public static final String PROTOCOL_VVT4_NAME = "VVT4"; + public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; + public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; + public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; + public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; + public static final int RPM_1_BYTE_PACKING_MULT = 50; + public static final int SCRIPT_CURVE_16 = 16; + public static final int SCRIPT_CURVE_8 = 8; + public static final int SCRIPT_CURVE_COUNT = 6; + public static final int SCRIPT_SETTING_COUNT = 8; + public static final int SCRIPT_TABLE_8 = 8; + public static final int SCRIPT_TABLE_COUNT = 4; + public static final int SERVO_COUNT = 8; + public static final int STFT_BANK_COUNT = 2; + public static final int STFT_CELL_COUNT = 4; + public static final int TCU_GEAR_COUNT = 10; + public static final int TCU_SOLENOID_COUNT = 6; + public static final int TOOTH_DATA_LENGTH = 2000; + public static final int TOOTH_PACKET_COUNT = 1000; + public static final int TOOTH_PACKET_SIZE = 2; + public static final String TOP_DEAD_CENTER_MESSAGE = "r"; + public static final int TORQUE_CURVE_SIZE = 6; + public static final int TPS_2_BYTE_PACKING_MULT = 100; + public static final int TPS_TPS_ACCEL_TABLE = 8; + public static final String TRIGGER_COMMENT = "#"; + public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; + public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; + public static final int TRIGGER_INPUT_PIN_COUNT = 3; + public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; + public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; + public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; + public static final String TRIGGERS_FILE_NAME = "triggers.txt"; + public static final int TRIM_SIZE = 4; + public static final char TS_BURN_COMMAND = 'B'; + public static final char TS_CHUNK_WRITE_COMMAND = 'C'; + public static final char TS_COMMAND_F = 'F'; + public static final int TS_COMPOSITE_DISABLE = 2; + public static final int TS_COMPOSITE_ENABLE = 1; + public static final char TS_CRC_CHECK_COMMAND = 'k'; + public static final char TS_EXECUTE = 'E'; + public static final int TS_FILE_VERSION = 20200310; + public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; + public static final char TS_GET_CONFIG_ERROR = 'e'; + public static final char TS_GET_FIRMWARE_VERSION = 'V'; + public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; + public static final char TS_GET_OUTPUTS_SIZE = '4'; + public static final char TS_GET_STRUCT = '9'; + public static final char TS_GET_TEXT = 'G'; + public static final char TS_HELLO_COMMAND = 'S'; + public static final char TS_IO_TEST_COMMAND = 'Z'; + public static final char TS_ONLINE_PROTOCOL = 'z'; + public static final char TS_OUTPUT_COMMAND = 'O'; + public static final int TS_OUTPUT_SIZE = 640; + public static final char TS_PAGE_COMMAND = 'P'; + public static final char TS_PERF_TRACE_BEGIN = '_'; + public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; + public static final String TS_PROTOCOL = "001"; + public static final char TS_QUERY_COMMAND = 'Q'; + public static final char TS_READ_COMMAND = 'R'; + public static final int TS_RESPONSE_BURN_OK = 4; + public static final int TS_RESPONSE_COMMAND_OK = 7; + public static final int TS_RESPONSE_CRC_FAILURE = 0x82; + public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; + public static final int TS_RESPONSE_OK = 0; + public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; + public static final int TS_RESPONSE_UNDERRUN = 0x80; + public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; + public static final char TS_SET_LOGGER_SWITCH = 'l'; + public static final char TS_SINGLE_WRITE_COMMAND = 'W'; + public static final char TS_TEST_COMMAND = 't'; + public static final int VBAT_INJECTOR_CURVE_SIZE = 8; + public static final int VEHICLE_INFO_SIZE = 32; + public static final int VM_VVT_INACTIVE = 0; + public static final int VR_THRESHOLD_COUNT = 2; + public static final int WWAE_TABLE_SIZE = 8; + public static final Field SD_PRESENT = Field.create("SD_PRESENT", 0, FieldType.BIT, 0); + public static final Field ISIGNITIONENABLEDINDICATOR = Field.create("ISIGNITIONENABLEDINDICATOR", 0, FieldType.BIT, 1); + public static final Field ISINJECTIONENABLEDINDICATOR = Field.create("ISINJECTIONENABLEDINDICATOR", 0, FieldType.BIT, 2); + public static final Field SD_LOGGING_INTERNAL = Field.create("SD_LOGGING_INTERNAL", 0, FieldType.BIT, 3); + public static final Field UNUSEDB4 = Field.create("UNUSEDB4", 0, FieldType.BIT, 4); + public static final Field ISFUELPUMPON = Field.create("ISFUELPUMPON", 0, FieldType.BIT, 5); + public static final Field ISFANON = Field.create("ISFANON", 0, FieldType.BIT, 6); + public static final Field ISO2HEATERON = Field.create("ISO2HEATERON", 0, FieldType.BIT, 7); + public static final Field CHECKENGINE = Field.create("CHECKENGINE", 0, FieldType.BIT, 8); + public static final Field NEEDBURN = Field.create("NEEDBURN", 0, FieldType.BIT, 9); + public static final Field SD_MSD = Field.create("SD_MSD", 0, FieldType.BIT, 10); + public static final Field CLUTCHUPSTATE = Field.create("CLUTCHUPSTATE", 0, FieldType.BIT, 11); + public static final Field CLUTCHDOWNSTATE = Field.create("CLUTCHDOWNSTATE", 0, FieldType.BIT, 12); + public static final Field ISFAN2ON = Field.create("ISFAN2ON", 0, FieldType.BIT, 13); + public static final Field ALTERNATORONOFF = Field.create("ALTERNATORONOFF", 0, FieldType.BIT, 14); + public static final Field BRAKEPEDALSTATE = Field.create("BRAKEPEDALSTATE", 0, FieldType.BIT, 15); + public static final Field TOOTHLOGREADY = Field.create("TOOTHLOGREADY", 0, FieldType.BIT, 16); + public static final Field ACSWITCHSTATE = Field.create("ACSWITCHSTATE", 0, FieldType.BIT, 17); + public static final Field ISTPSERROR = Field.create("ISTPSERROR", 0, FieldType.BIT, 18); + public static final Field ISCLTERROR = Field.create("ISCLTERROR", 0, FieldType.BIT, 19); + public static final Field ISMAPERROR = Field.create("ISMAPERROR", 0, FieldType.BIT, 20); + public static final Field ISIATERROR = Field.create("ISIATERROR", 0, FieldType.BIT, 21); + public static final Field ACSTATE = Field.create("ACSTATE", 0, FieldType.BIT, 22); + public static final Field ISTRIGGERERROR = Field.create("ISTRIGGERERROR", 0, FieldType.BIT, 23); + public static final Field HASCRITICALERROR = Field.create("HASCRITICALERROR", 0, FieldType.BIT, 24); + public static final Field ISWARNNOW = Field.create("ISWARNNOW", 0, FieldType.BIT, 25); + public static final Field ISPEDALERROR = Field.create("ISPEDALERROR", 0, FieldType.BIT, 26); + public static final Field ISKNOCKCHIPOK = Field.create("ISKNOCKCHIPOK", 0, FieldType.BIT, 27); + public static final Field LAUNCHTRIGGERED = Field.create("LAUNCHTRIGGERED", 0, FieldType.BIT, 28); + public static final Field ISTPS2ERROR = Field.create("ISTPS2ERROR", 0, FieldType.BIT, 29); + public static final Field ISIDLECLOSEDLOOP = Field.create("ISIDLECLOSEDLOOP", 0, FieldType.BIT, 30); + public static final Field ISIDLECOASTING = Field.create("ISIDLECOASTING", 0, FieldType.BIT, 31); + public static final Field RPMVALUE = Field.create("RPMVALUE", 4, FieldType.INT16).setScale(1.0); + public static final Field RPMACCELERATION = Field.create("RPMACCELERATION", 6, FieldType.INT16).setScale(1.0); + public static final Field SPEEDTORPMRATIO = Field.create("SPEEDTORPMRATIO", 8, FieldType.INT16).setScale(0.01); + public static final Field VEHICLESPEEDKPH = Field.create("VEHICLESPEEDKPH", 10, FieldType.INT8).setScale(1.0); + public static final Field INTERNALMCUTEMPERATURE = Field.create("INTERNALMCUTEMPERATURE", 11, FieldType.INT8).setScale(1.0); + public static final Field COOLANT = Field.create("COOLANT", 12, FieldType.INT16).setScale(0.01); + public static final Field INTAKE = Field.create("INTAKE", 14, FieldType.INT16).setScale(0.01); + public static final Field AUXTEMP1 = Field.create("AUXTEMP1", 16, FieldType.INT16).setScale(0.01); + public static final Field AUXTEMP2 = Field.create("AUXTEMP2", 18, FieldType.INT16).setScale(0.01); + public static final Field TPSVALUE = Field.create("TPSVALUE", 20, FieldType.INT16).setScale(0.01); + public static final Field THROTTLEPEDALPOSITION = Field.create("THROTTLEPEDALPOSITION", 22, FieldType.INT16).setScale(0.01); + public static final Field TPSADC = Field.create("TPSADC", 24, FieldType.INT16).setScale(1.0); + public static final Field RAWMAF = Field.create("RAWMAF", 26, FieldType.INT16).setScale(0.001); + public static final Field MAFMEASURED = Field.create("MAFMEASURED", 28, FieldType.INT16).setScale(0.1); + public static final Field MAPVALUE = Field.create("MAPVALUE", 30, FieldType.INT16).setScale(0.03333333333333333); + public static final Field BAROPRESSURE = Field.create("BAROPRESSURE", 32, FieldType.INT16).setScale(0.03333333333333333); + public static final Field LAMBDAVALUE = Field.create("LAMBDAVALUE", 34, FieldType.INT16).setScale(1.0E-4); + public static final Field KNOCKRETARD = Field.create("KNOCKRETARD", 36, FieldType.INT8).setScale(0.1); + public static final Field IDLECURRENTPOSITION = Field.create("IDLECURRENTPOSITION", 37, FieldType.INT8).setScale(0.5); + public static final Field VBATT = Field.create("VBATT", 38, FieldType.INT16).setScale(0.001); + public static final Field OILPRESSURE = Field.create("OILPRESSURE", 40, FieldType.INT16).setScale(0.03333333333333333); + public static final Field VVTPOSITIONB1I = Field.create("VVTPOSITIONB1I", 42, FieldType.INT16).setScale(0.02); + public static final Field CHARGEAIRMASS = Field.create("CHARGEAIRMASS", 44, FieldType.INT16).setScale(0.001); + public static final Field CRANKINGFUELMS = Field.create("CRANKINGFUELMS", 46, FieldType.INT16).setScale(0.01); + public static final Field CURRENTTARGETAFR = Field.create("CURRENTTARGETAFR", 48, FieldType.INT16).setScale(0.001); + public static final Field BASEFUEL = Field.create("BASEFUEL", 50, FieldType.INT16).setScale(0.01); + public static final Field FUELRUNNING = Field.create("FUELRUNNING", 52, FieldType.INT16).setScale(0.01); + public static final Field ACTUALLASTINJECTION = Field.create("ACTUALLASTINJECTION", 54, FieldType.INT16).setScale(0.0033333333333333335); + public static final Field INJECTORDUTYCYCLE = Field.create("INJECTORDUTYCYCLE", 56, FieldType.INT8).setScale(0.5); + public static final Field VEVALUE = Field.create("VEVALUE", 57, FieldType.INT8).setScale(0.5); + public static final Field INJECTIONOFFSET = Field.create("INJECTIONOFFSET", 58, FieldType.INT16).setScale(1.0); + public static final Field TCHARGE = Field.create("TCHARGE", 60, FieldType.INT16).setScale(0.01); + public static final Field INJECTORLAGMS = Field.create("INJECTORLAGMS", 62, FieldType.INT16).setScale(0.0033333333333333335); + public static final Field IATCORRECTION = Field.create("IATCORRECTION", 64, FieldType.INT16).setScale(0.01); + public static final Field CLTCORRECTION = Field.create("CLTCORRECTION", 66, FieldType.INT16).setScale(0.01); + public static final Field BAROCORRECTION = Field.create("BAROCORRECTION", 68, FieldType.INT16).setScale(0.01); + public static final Field CURRENTENGINEPHASE = Field.create("CURRENTENGINEPHASE", 70, FieldType.INT16).setScale(1.0); + public static final Field WALLFUELAMOUNT = Field.create("WALLFUELAMOUNT", 72, FieldType.INT16).setScale(0.01); + public static final Field WALLFUELCORRECTION = Field.create("WALLFUELCORRECTION", 74, FieldType.INT16).setScale(0.01); + public static final Field REVOLUTIONCOUNTERSINCESTART = Field.create("REVOLUTIONCOUNTERSINCESTART", 76, FieldType.INT16).setScale(1.0); + public static final Field DELTATPS = Field.create("DELTATPS", 78, FieldType.INT16).setScale(0.01); + public static final Field CANREADCOUNTER = Field.create("CANREADCOUNTER", 80, FieldType.INT16).setScale(1.0); + public static final Field TPSACCELFUEL = Field.create("TPSACCELFUEL", 82, FieldType.INT16).setScale(0.0033333333333333335); + public static final Field IGNITIONADVANCE = Field.create("IGNITIONADVANCE", 84, FieldType.INT16).setScale(0.02); + public static final Field SPARKDWELLVALUE = Field.create("SPARKDWELLVALUE", 86, FieldType.INT16).setScale(0.0033333333333333335); + public static final Field COILDUTYCYCLE = Field.create("COILDUTYCYCLE", 88, FieldType.INT16).setScale(0.01); + public static final Field IDLEAIRVALVEPOSITION = Field.create("IDLEAIRVALVEPOSITION", 90, FieldType.INT16).setScale(0.01); + public static final Field ETBTARGET = Field.create("ETBTARGET", 92, FieldType.INT16).setScale(0.01); + public static final Field ETB1DUTYCYCLE = Field.create("ETB1DUTYCYCLE", 94, FieldType.INT16).setScale(0.01); + public static final Field ETB1ERROR = Field.create("ETB1ERROR", 96, FieldType.INT16).setScale(0.01); + public static final Field FUELTANKLEVEL = Field.create("FUELTANKLEVEL", 98, FieldType.INT16).setScale(0.01); + public static final Field TOTALFUELCONSUMPTION = Field.create("TOTALFUELCONSUMPTION", 100, FieldType.INT16).setScale(1.0); + public static final Field FUELFLOWRATE = Field.create("FUELFLOWRATE", 102, FieldType.INT16).setScale(0.005); + public static final Field VETABLEYAXIS = Field.create("VETABLEYAXIS", 104, FieldType.INT16).setScale(0.01); + public static final Field AFRTABLEYAXIS = Field.create("AFRTABLEYAXIS", 106, FieldType.INT16).setScale(0.01); + public static final Field KNOCKLEVEL = Field.create("KNOCKLEVEL", 108, FieldType.FLOAT); + public static final Field SECONDS = Field.create("SECONDS", 112, FieldType.INT).setScale(1.0); + public static final Field ENGINEMODE = Field.create("ENGINEMODE", 116, FieldType.INT).setScale(1.0); + public static final Field FIRMWAREVERSION = Field.create("FIRMWAREVERSION", 120, FieldType.INT).setScale(1.0); + public static final Field TSCONFIGVERSION = Field.create("TSCONFIGVERSION", 124, FieldType.INT).setScale(1.0); + public static final Field CALIBRATIONVALUE = Field.create("CALIBRATIONVALUE", 128, FieldType.FLOAT); + public static final Field CALIBRATIONMODE = Field.create("CALIBRATIONMODE", 132, FieldType.INT8).setScale(1.0); + public static final Field IDLETARGETPOSITION = Field.create("IDLETARGETPOSITION", 133, FieldType.INT8).setScale(1.0); + public static final Field FUELINGLOAD = Field.create("FUELINGLOAD", 134, FieldType.INT16).setScale(0.01); + public static final Field IGNITIONLOAD = Field.create("IGNITIONLOAD", 136, FieldType.INT16).setScale(0.01); + public static final Field ENGINEMAKECODENAMECRC16 = Field.create("ENGINEMAKECODENAMECRC16", 138, FieldType.INT16).setScale(1.0); + public static final Field TOTALTRIGGERERRORCOUNTER = Field.create("TOTALTRIGGERERRORCOUNTER", 140, FieldType.INT).setScale(1.0); + public static final Field ORDERINGERRORCOUNTER = Field.create("ORDERINGERRORCOUNTER", 144, FieldType.INT).setScale(1.0); + public static final Field WARNINGCOUNTER = Field.create("WARNINGCOUNTER", 148, FieldType.INT16).setScale(1.0); + public static final Field LASTERRORCODE = Field.create("LASTERRORCODE", 150, FieldType.INT16).setScale(1.0); + public static final Field RECENTERRORCODE1 = Field.create("RECENTERRORCODE1", 152, FieldType.INT16).setScale(1.0); + public static final Field RECENTERRORCODE2 = Field.create("RECENTERRORCODE2", 154, FieldType.INT16).setScale(1.0); + public static final Field RECENTERRORCODE3 = Field.create("RECENTERRORCODE3", 156, FieldType.INT16).setScale(1.0); + public static final Field RECENTERRORCODE4 = Field.create("RECENTERRORCODE4", 158, FieldType.INT16).setScale(1.0); + public static final Field RECENTERRORCODE5 = Field.create("RECENTERRORCODE5", 160, FieldType.INT16).setScale(1.0); + public static final Field RECENTERRORCODE6 = Field.create("RECENTERRORCODE6", 162, FieldType.INT16).setScale(1.0); + public static final Field RECENTERRORCODE7 = Field.create("RECENTERRORCODE7", 164, FieldType.INT16).setScale(1.0); + public static final Field RECENTERRORCODE8 = Field.create("RECENTERRORCODE8", 166, FieldType.INT16).setScale(1.0); + public static final Field DEBUGFLOATFIELD1 = Field.create("DEBUGFLOATFIELD1", 168, FieldType.FLOAT); + public static final Field DEBUGFLOATFIELD2 = Field.create("DEBUGFLOATFIELD2", 172, FieldType.FLOAT); + public static final Field DEBUGFLOATFIELD3 = Field.create("DEBUGFLOATFIELD3", 176, FieldType.FLOAT); + public static final Field DEBUGFLOATFIELD4 = Field.create("DEBUGFLOATFIELD4", 180, FieldType.FLOAT); + public static final Field DEBUGFLOATFIELD5 = Field.create("DEBUGFLOATFIELD5", 184, FieldType.FLOAT); + public static final Field DEBUGFLOATFIELD6 = Field.create("DEBUGFLOATFIELD6", 188, FieldType.FLOAT); + public static final Field DEBUGFLOATFIELD7 = Field.create("DEBUGFLOATFIELD7", 192, FieldType.FLOAT); + public static final Field DEBUGINTFIELD1 = Field.create("DEBUGINTFIELD1", 196, FieldType.INT).setScale(1.0); + public static final Field DEBUGINTFIELD2 = Field.create("DEBUGINTFIELD2", 200, FieldType.INT).setScale(1.0); + public static final Field DEBUGINTFIELD3 = Field.create("DEBUGINTFIELD3", 204, FieldType.INT).setScale(1.0); + public static final Field DEBUGINTFIELD4 = Field.create("DEBUGINTFIELD4", 208, FieldType.INT16).setScale(1.0); + public static final Field DEBUGINTFIELD5 = Field.create("DEBUGINTFIELD5", 210, FieldType.INT16).setScale(1.0); + public static final Field ACCELERATIONX = Field.create("ACCELERATIONX", 212, FieldType.INT16).setScale(0.01); + public static final Field ACCELERATIONY = Field.create("ACCELERATIONY", 214, FieldType.INT16).setScale(0.01); + public static final Field EGT1 = Field.create("EGT1", 216, FieldType.INT16).setScale(1.0); + public static final Field EGT2 = Field.create("EGT2", 218, FieldType.INT16).setScale(1.0); + public static final Field EGT3 = Field.create("EGT3", 220, FieldType.INT16).setScale(1.0); + public static final Field EGT4 = Field.create("EGT4", 222, FieldType.INT16).setScale(1.0); + public static final Field EGT5 = Field.create("EGT5", 224, FieldType.INT16).setScale(1.0); + public static final Field EGT6 = Field.create("EGT6", 226, FieldType.INT16).setScale(1.0); + public static final Field EGT7 = Field.create("EGT7", 228, FieldType.INT16).setScale(1.0); + public static final Field EGT8 = Field.create("EGT8", 230, FieldType.INT16).setScale(1.0); + public static final Field TPS2VALUE = Field.create("TPS2VALUE", 232, FieldType.INT16).setScale(0.01); + public static final Field RAWTPS1PRIMARY = Field.create("RAWTPS1PRIMARY", 234, FieldType.INT16).setScale(0.001); + public static final Field RAWPPSPRIMARY = Field.create("RAWPPSPRIMARY", 236, FieldType.INT16).setScale(0.001); + public static final Field RAWCLT = Field.create("RAWCLT", 238, FieldType.INT16).setScale(0.001); + public static final Field RAWIAT = Field.create("RAWIAT", 240, FieldType.INT16).setScale(0.001); + public static final Field RAWOILPRESSURE = Field.create("RAWOILPRESSURE", 242, FieldType.INT16).setScale(0.001); + public static final Field TUNECRC16 = Field.create("TUNECRC16", 244, FieldType.INT16).setScale(1.0); + public static final Field FUELCLOSEDLOOPBINIDX = Field.create("FUELCLOSEDLOOPBINIDX", 246, FieldType.INT8).setScale(1.0); + public static final Field TCUCURRENTGEAR = Field.create("TCUCURRENTGEAR", 247, FieldType.INT8).setScale(1.0); + public static final Field RAWPPSSECONDARY = Field.create("RAWPPSSECONDARY", 248, FieldType.INT16).setScale(0.001); + public static final Field KNOCK1 = Field.create("KNOCK1", 250, FieldType.INT8).setScale(1.0); + public static final Field KNOCK2 = Field.create("KNOCK2", 251, FieldType.INT8).setScale(1.0); + public static final Field KNOCK3 = Field.create("KNOCK3", 252, FieldType.INT8).setScale(1.0); + public static final Field KNOCK4 = Field.create("KNOCK4", 253, FieldType.INT8).setScale(1.0); + public static final Field KNOCK5 = Field.create("KNOCK5", 254, FieldType.INT8).setScale(1.0); + public static final Field KNOCK6 = Field.create("KNOCK6", 255, FieldType.INT8).setScale(1.0); + public static final Field KNOCK7 = Field.create("KNOCK7", 256, FieldType.INT8).setScale(1.0); + public static final Field KNOCK8 = Field.create("KNOCK8", 257, FieldType.INT8).setScale(1.0); + public static final Field KNOCK9 = Field.create("KNOCK9", 258, FieldType.INT8).setScale(1.0); + public static final Field KNOCK10 = Field.create("KNOCK10", 259, FieldType.INT8).setScale(1.0); + public static final Field KNOCK11 = Field.create("KNOCK11", 260, FieldType.INT8).setScale(1.0); + public static final Field KNOCK12 = Field.create("KNOCK12", 261, FieldType.INT8).setScale(1.0); + public static final Field TCUDESIREDGEAR = Field.create("TCUDESIREDGEAR", 262, FieldType.INT8).setScale(1.0); + public static final Field FLEXPERCENT = Field.create("FLEXPERCENT", 263, FieldType.INT8).setScale(0.5); + public static final Field RAWIDLEPOSITIONSENSOR = Field.create("RAWIDLEPOSITIONSENSOR", 264, FieldType.INT16).setScale(0.001); + public static final Field RAWWASTEGATEPOSITION = Field.create("RAWWASTEGATEPOSITION", 266, FieldType.INT16).setScale(0.001); + public static final Field WASTEGATEPOSITIONSENSOR = Field.create("WASTEGATEPOSITIONSENSOR", 268, FieldType.INT16).setScale(0.01); + public static final Field IDLEPOSITIONSENSOR = Field.create("IDLEPOSITIONSENSOR", 270, FieldType.INT16).setScale(0.01); + public static final Field RAWLOWFUELPRESSURE = Field.create("RAWLOWFUELPRESSURE", 272, FieldType.INT16).setScale(0.001); + public static final Field RAWHIGHFUELPRESSURE = Field.create("RAWHIGHFUELPRESSURE", 274, FieldType.INT16).setScale(0.001); + public static final Field LOWFUELPRESSURE = Field.create("LOWFUELPRESSURE", 276, FieldType.INT16).setScale(0.03333333333333333); + public static final Field HIGHFUELPRESSURE = Field.create("HIGHFUELPRESSURE", 278, FieldType.INT16).setScale(0.1); + public static final Field TARGETLAMBDA = Field.create("TARGETLAMBDA", 280, FieldType.INT16).setScale(1.0E-4); + public static final Field AFRVALUE = Field.create("AFRVALUE", 282, FieldType.INT16).setScale(0.001); + public static final Field VSSACCELERATION = Field.create("VSSACCELERATION", 284, FieldType.INT16).setScale(0.0033333333333333335); + public static final Field LAMBDAVALUE2 = Field.create("LAMBDAVALUE2", 286, FieldType.INT16).setScale(1.0E-4); + public static final Field AFRVALUE2 = Field.create("AFRVALUE2", 288, FieldType.INT16).setScale(0.001); + public static final Field VVTPOSITIONB1E = Field.create("VVTPOSITIONB1E", 290, FieldType.INT16).setScale(0.02); + public static final Field VVTPOSITIONB2I = Field.create("VVTPOSITIONB2I", 292, FieldType.INT16).setScale(0.02); + public static final Field VVTPOSITIONB2E = Field.create("VVTPOSITIONB2E", 294, FieldType.INT16).setScale(0.02); + public static final Field FUELPIDCORRECTION1 = Field.create("FUELPIDCORRECTION1", 296, FieldType.INT16).setScale(0.01); + public static final Field FUELPIDCORRECTION2 = Field.create("FUELPIDCORRECTION2", 298, FieldType.INT16).setScale(0.01); + public static final Field RAWTPS1SECONDARY = Field.create("RAWTPS1SECONDARY", 300, FieldType.INT16).setScale(0.001); + public static final Field RAWTPS2PRIMARY = Field.create("RAWTPS2PRIMARY", 302, FieldType.INT16).setScale(0.001); + public static final Field RAWTPS2SECONDARY = Field.create("RAWTPS2SECONDARY", 304, FieldType.INT16).setScale(0.001); + public static final Field KNOCKCOUNT = Field.create("KNOCKCOUNT", 306, FieldType.INT16).setScale(1.0); + public static final Field ACCELERATIONZ = Field.create("ACCELERATIONZ", 308, FieldType.INT16).setScale(0.01); + public static final Field ACCELERATIONROLL = Field.create("ACCELERATIONROLL", 310, FieldType.INT16).setScale(0.01); + public static final Field ACCELERATIONYAW = Field.create("ACCELERATIONYAW", 312, FieldType.INT16).setScale(0.01); + public static final Field VVTTARGETS1 = Field.create("VVTTARGETS1", 314, FieldType.INT8).setScale(1.0); + public static final Field VVTTARGETS2 = Field.create("VVTTARGETS2", 315, FieldType.INT8).setScale(1.0); + public static final Field VVTTARGETS3 = Field.create("VVTTARGETS3", 316, FieldType.INT8).setScale(1.0); + public static final Field VVTTARGETS4 = Field.create("VVTTARGETS4", 317, FieldType.INT8).setScale(1.0); + public static final Field TURBOSPEED = Field.create("TURBOSPEED", 318, FieldType.INT16).setScale(1.0); + public static final Field WBTEMPERATURE1 = Field.create("WBTEMPERATURE1", 320, FieldType.INT16).setScale(1.0); + public static final Field WBTEMPERATURE2 = Field.create("WBTEMPERATURE2", 322, FieldType.INT16).setScale(1.0); + public static final Field WBHEATERDUTY1 = Field.create("WBHEATERDUTY1", 324, FieldType.INT8).setScale(1.0); + public static final Field WBHEATERDUTY2 = Field.create("WBHEATERDUTY2", 325, FieldType.INT8).setScale(1.0); + public static final Field TPS1SPLIT = Field.create("TPS1SPLIT", 326, FieldType.INT16).setScale(0.01); + public static final Field TPS2SPLIT = Field.create("TPS2SPLIT", 328, FieldType.INT16).setScale(0.01); + public static final Field TPS12SPLIT = Field.create("TPS12SPLIT", 330, FieldType.INT16).setScale(0.01); + public static final Field ACCPEDALSPLIT = Field.create("ACCPEDALSPLIT", 332, FieldType.INT16).setScale(0.01); + public static final Field M_REQUESTED_PUMP = Field.create("M_REQUESTED_PUMP", 334, FieldType.INT16).setScale(0.02); + public static final Field BOOSTCONTROLTARGET = Field.create("BOOSTCONTROLTARGET", 336, FieldType.INT16).setScale(0.03333333333333333); + public static final Field SPARKCUTREASON = Field.create("SPARKCUTREASON", 338, FieldType.INT8).setScale(1.0); + public static final Field FUELCUTREASON = Field.create("FUELCUTREASON", 339, FieldType.INT8).setScale(1.0); + public static final Field FUEL_REQUESTED_PERCENT = Field.create("FUEL_REQUESTED_PERCENT", 340, FieldType.FLOAT); + public static final Field FUEL_REQUESTED_PERCENT_PI = Field.create("FUEL_REQUESTED_PERCENT_PI", 344, FieldType.FLOAT); + public static final Field M_I_SUM_PERCENT = Field.create("M_I_SUM_PERCENT", 348, FieldType.FLOAT); + public static final Field M_PRESSURETARGET_KPA = Field.create("M_PRESSURETARGET_KPA", 352, FieldType.FLOAT); + public static final Field MAFESTIMATE = Field.create("MAFESTIMATE", 356, FieldType.INT16).setScale(0.1); + public static final Field INSTANTRPM = Field.create("INSTANTRPM", 358, FieldType.INT16).setScale(1.0); + public static final Field DI_NEXTSTART = Field.create("DI_NEXTSTART", 360, FieldType.FLOAT); + public static final Field SYSTEMEVENTREUSE = Field.create("SYSTEMEVENTREUSE", 364, FieldType.INT16).setScale(1.0); + public static final Field RAWMAP = Field.create("RAWMAP", 366, FieldType.INT16).setScale(0.001); + public static final Field RAWAFR = Field.create("RAWAFR", 368, FieldType.INT16).setScale(0.001); + public static final Field TPSACCELFROM = Field.create("TPSACCELFROM", 370, FieldType.INT8).setScale(1.0); + public static final Field TPSACCELTO = Field.create("TPSACCELTO", 371, FieldType.INT8).setScale(1.0); + public static final Field CALIBRATIONVALUE2 = Field.create("CALIBRATIONVALUE2", 372, FieldType.FLOAT); + public static final Field ISMAINRELAYON = Field.create("ISMAINRELAYON", 376, FieldType.BIT, 0); + public static final Field ISUSBCONNECTED = Field.create("ISUSBCONNECTED", 376, FieldType.BIT, 1); + public static final Field UNUSEDBIT_182_2 = Field.create("UNUSEDBIT_182_2", 376, FieldType.BIT, 2); + public static final Field UNUSEDBIT_182_3 = Field.create("UNUSEDBIT_182_3", 376, FieldType.BIT, 3); + public static final Field UNUSEDBIT_182_4 = Field.create("UNUSEDBIT_182_4", 376, FieldType.BIT, 4); + public static final Field UNUSEDBIT_182_5 = Field.create("UNUSEDBIT_182_5", 376, FieldType.BIT, 5); + public static final Field UNUSEDBIT_182_6 = Field.create("UNUSEDBIT_182_6", 376, FieldType.BIT, 6); + public static final Field UNUSEDBIT_182_7 = Field.create("UNUSEDBIT_182_7", 376, FieldType.BIT, 7); + public static final Field UNUSEDBIT_182_8 = Field.create("UNUSEDBIT_182_8", 376, FieldType.BIT, 8); + public static final Field UNUSEDBIT_182_9 = Field.create("UNUSEDBIT_182_9", 376, FieldType.BIT, 9); + public static final Field UNUSEDBIT_182_10 = Field.create("UNUSEDBIT_182_10", 376, FieldType.BIT, 10); + public static final Field UNUSEDBIT_182_11 = Field.create("UNUSEDBIT_182_11", 376, FieldType.BIT, 11); + public static final Field UNUSEDBIT_182_12 = Field.create("UNUSEDBIT_182_12", 376, FieldType.BIT, 12); + public static final Field UNUSEDBIT_182_13 = Field.create("UNUSEDBIT_182_13", 376, FieldType.BIT, 13); + public static final Field UNUSEDBIT_182_14 = Field.create("UNUSEDBIT_182_14", 376, FieldType.BIT, 14); + public static final Field UNUSEDBIT_182_15 = Field.create("UNUSEDBIT_182_15", 376, FieldType.BIT, 15); + public static final Field UNUSEDBIT_182_16 = Field.create("UNUSEDBIT_182_16", 376, FieldType.BIT, 16); + public static final Field UNUSEDBIT_182_17 = Field.create("UNUSEDBIT_182_17", 376, FieldType.BIT, 17); + public static final Field UNUSEDBIT_182_18 = Field.create("UNUSEDBIT_182_18", 376, FieldType.BIT, 18); + public static final Field UNUSEDBIT_182_19 = Field.create("UNUSEDBIT_182_19", 376, FieldType.BIT, 19); + public static final Field UNUSEDBIT_182_20 = Field.create("UNUSEDBIT_182_20", 376, FieldType.BIT, 20); + public static final Field UNUSEDBIT_182_21 = Field.create("UNUSEDBIT_182_21", 376, FieldType.BIT, 21); + public static final Field UNUSEDBIT_182_22 = Field.create("UNUSEDBIT_182_22", 376, FieldType.BIT, 22); + public static final Field UNUSEDBIT_182_23 = Field.create("UNUSEDBIT_182_23", 376, FieldType.BIT, 23); + public static final Field UNUSEDBIT_182_24 = Field.create("UNUSEDBIT_182_24", 376, FieldType.BIT, 24); + public static final Field UNUSEDBIT_182_25 = Field.create("UNUSEDBIT_182_25", 376, FieldType.BIT, 25); + public static final Field UNUSEDBIT_182_26 = Field.create("UNUSEDBIT_182_26", 376, FieldType.BIT, 26); + public static final Field UNUSEDBIT_182_27 = Field.create("UNUSEDBIT_182_27", 376, FieldType.BIT, 27); + public static final Field UNUSEDBIT_182_28 = Field.create("UNUSEDBIT_182_28", 376, FieldType.BIT, 28); + public static final Field UNUSEDBIT_182_29 = Field.create("UNUSEDBIT_182_29", 376, FieldType.BIT, 29); + public static final Field UNUSEDBIT_182_30 = Field.create("UNUSEDBIT_182_30", 376, FieldType.BIT, 30); + public static final Field UNUSEDBIT_182_31 = Field.create("UNUSEDBIT_182_31", 376, FieldType.BIT, 31); + public static final Field LUAINVOCATIONCOUNTER = Field.create("LUAINVOCATIONCOUNTER", 380, FieldType.INT).setScale(1.0); + public static final Field LUALASTCYCLEDURATION = Field.create("LUALASTCYCLEDURATION", 384, FieldType.INT).setScale(1.0); + public static final Field TESTBENCHITER = Field.create("TESTBENCHITER", 388, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE1 = Field.create("UNUSEDINTHEMIDDLE1", 389, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE2 = Field.create("UNUSEDINTHEMIDDLE2", 390, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE3 = Field.create("UNUSEDINTHEMIDDLE3", 391, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE4 = Field.create("UNUSEDINTHEMIDDLE4", 392, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE5 = Field.create("UNUSEDINTHEMIDDLE5", 393, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE6 = Field.create("UNUSEDINTHEMIDDLE6", 394, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE7 = Field.create("UNUSEDINTHEMIDDLE7", 395, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE8 = Field.create("UNUSEDINTHEMIDDLE8", 396, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE9 = Field.create("UNUSEDINTHEMIDDLE9", 397, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE10 = Field.create("UNUSEDINTHEMIDDLE10", 398, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE11 = Field.create("UNUSEDINTHEMIDDLE11", 399, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE12 = Field.create("UNUSEDINTHEMIDDLE12", 400, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE13 = Field.create("UNUSEDINTHEMIDDLE13", 401, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE14 = Field.create("UNUSEDINTHEMIDDLE14", 402, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDINTHEMIDDLE15 = Field.create("UNUSEDINTHEMIDDLE15", 403, FieldType.INT8).setScale(1.0); + public static final Field AUXLINEAR1 = Field.create("AUXLINEAR1", 404, FieldType.INT16).setScale(0.01); + public static final Field AUXLINEAR2 = Field.create("AUXLINEAR2", 406, FieldType.INT16).setScale(0.01); + public static final Field LAUNCHSPEEDCONDITION = Field.create("LAUNCHSPEEDCONDITION", 408, FieldType.BIT, 0); + public static final Field LAUNCHRPMCONDITION = Field.create("LAUNCHRPMCONDITION", 408, FieldType.BIT, 1); + public static final Field LAUNCHTPSCONDITION = Field.create("LAUNCHTPSCONDITION", 408, FieldType.BIT, 2); + public static final Field LAUNCHACTIVATESWITCHCONDITION = Field.create("LAUNCHACTIVATESWITCHCONDITION", 408, FieldType.BIT, 3); + public static final Field LAUNCHISLAUNCHCONDITION = Field.create("LAUNCHISLAUNCHCONDITION", 408, FieldType.BIT, 4); + public static final Field LAUNCHCOMBINEDCONDITIONS = Field.create("LAUNCHCOMBINEDCONDITIONS", 408, FieldType.BIT, 5); + public static final Field LAUNCHACTIVATEPINSTATE = Field.create("LAUNCHACTIVATEPINSTATE", 408, FieldType.BIT, 6); + public static final Field DFCOACTIVE = Field.create("DFCOACTIVE", 408, FieldType.BIT, 7); + public static final Field TPSACCELACTIVE = Field.create("TPSACCELACTIVE", 408, FieldType.BIT, 8); + public static final Field UNUSEDBIT_227_9 = Field.create("UNUSEDBIT_227_9", 408, FieldType.BIT, 9); + public static final Field UNUSEDBIT_227_10 = Field.create("UNUSEDBIT_227_10", 408, FieldType.BIT, 10); + public static final Field UNUSEDBIT_227_11 = Field.create("UNUSEDBIT_227_11", 408, FieldType.BIT, 11); + public static final Field UNUSEDBIT_227_12 = Field.create("UNUSEDBIT_227_12", 408, FieldType.BIT, 12); + public static final Field UNUSEDBIT_227_13 = Field.create("UNUSEDBIT_227_13", 408, FieldType.BIT, 13); + public static final Field UNUSEDBIT_227_14 = Field.create("UNUSEDBIT_227_14", 408, FieldType.BIT, 14); + public static final Field UNUSEDBIT_227_15 = Field.create("UNUSEDBIT_227_15", 408, FieldType.BIT, 15); + public static final Field UNUSEDBIT_227_16 = Field.create("UNUSEDBIT_227_16", 408, FieldType.BIT, 16); + public static final Field UNUSEDBIT_227_17 = Field.create("UNUSEDBIT_227_17", 408, FieldType.BIT, 17); + public static final Field UNUSEDBIT_227_18 = Field.create("UNUSEDBIT_227_18", 408, FieldType.BIT, 18); + public static final Field UNUSEDBIT_227_19 = Field.create("UNUSEDBIT_227_19", 408, FieldType.BIT, 19); + public static final Field UNUSEDBIT_227_20 = Field.create("UNUSEDBIT_227_20", 408, FieldType.BIT, 20); + public static final Field UNUSEDBIT_227_21 = Field.create("UNUSEDBIT_227_21", 408, FieldType.BIT, 21); + public static final Field UNUSEDBIT_227_22 = Field.create("UNUSEDBIT_227_22", 408, FieldType.BIT, 22); + public static final Field UNUSEDBIT_227_23 = Field.create("UNUSEDBIT_227_23", 408, FieldType.BIT, 23); + public static final Field UNUSEDBIT_227_24 = Field.create("UNUSEDBIT_227_24", 408, FieldType.BIT, 24); + public static final Field UNUSEDBIT_227_25 = Field.create("UNUSEDBIT_227_25", 408, FieldType.BIT, 25); + public static final Field UNUSEDBIT_227_26 = Field.create("UNUSEDBIT_227_26", 408, FieldType.BIT, 26); + public static final Field UNUSEDBIT_227_27 = Field.create("UNUSEDBIT_227_27", 408, FieldType.BIT, 27); + public static final Field UNUSEDBIT_227_28 = Field.create("UNUSEDBIT_227_28", 408, FieldType.BIT, 28); + public static final Field UNUSEDBIT_227_29 = Field.create("UNUSEDBIT_227_29", 408, FieldType.BIT, 29); + public static final Field UNUSEDBIT_227_30 = Field.create("UNUSEDBIT_227_30", 408, FieldType.BIT, 30); + public static final Field UNUSEDBIT_227_31 = Field.create("UNUSEDBIT_227_31", 408, FieldType.BIT, 31); + public static final Field TEMPLOG_MAP_AT_CYCLE_COUNT = Field.create("TEMPLOG_MAP_AT_CYCLE_COUNT", 412, FieldType.INT8).setScale(1.0); + public static final Field TEMPLOG_MAP_PEAK = Field.create("TEMPLOG_MAP_PEAK", 413, FieldType.INT8).setScale(1.0); + public static final Field BOOSTCONTROLLEROUTPUT = Field.create("BOOSTCONTROLLEROUTPUT", 414, FieldType.INT8).setScale(0.5); + public static final Field BOOSTCONTROLLEROPENLOOPPART = Field.create("BOOSTCONTROLLEROPENLOOPPART", 415, FieldType.INT8).setScale(0.5); + public static final Field TEMPLOG_MAP_AT_SPECIAL_POINT = Field.create("TEMPLOG_MAP_AT_SPECIAL_POINT", 416, FieldType.FLOAT); + public static final Field TEMPLOG_MAP_AT_DIFF = Field.create("TEMPLOG_MAP_AT_DIFF", 420, FieldType.FLOAT); + public static final Field VVTSYNCGAPRATIO = Field.create("VVTSYNCGAPRATIO", 424, FieldType.FLOAT); + public static final Field VVTCURRENTPOSITION = Field.create("VVTCURRENTPOSITION", 428, FieldType.FLOAT); + public static final Field TRIGGERSYNCGAPRATIO = Field.create("TRIGGERSYNCGAPRATIO", 432, FieldType.FLOAT); + public static final Field TRIGGERSTATEINDEX = Field.create("TRIGGERSTATEINDEX", 436, FieldType.INT8).setScale(1.0); + public static final Field VVTCOUNTER = Field.create("VVTCOUNTER", 437, FieldType.INT8).setScale(1.0); + public static final Field VVTSYNCCOUNTER = Field.create("VVTSYNCCOUNTER", 438, FieldType.INT8).setScale(1.0); + public static final Field VVTSTATEINDEX = Field.create("VVTSTATEINDEX", 439, FieldType.INT8).setScale(1.0); + public static final Field FALLBACKMAP = Field.create("FALLBACKMAP", 440, FieldType.INT16).setScale(0.1); + public static final Field BOOSTCONTROLLERCLOSEDLOOPPART = Field.create("BOOSTCONTROLLERCLOSEDLOOPPART", 442, FieldType.INT8).setScale(0.5); + public static final Field DETECTEDGEAR = Field.create("DETECTEDGEAR", 443, FieldType.INT8).setScale(1.0); + public static final Field TIMINGCLTCORRECTION = Field.create("TIMINGCLTCORRECTION", 444, FieldType.INT16).setScale(0.01); + public static final Field TIMINGIATCORRECTION = Field.create("TIMINGIATCORRECTION", 446, FieldType.INT16).setScale(0.01); + public static final Field TIMINGPIDCORRECTION = Field.create("TIMINGPIDCORRECTION", 448, FieldType.INT16).setScale(0.01); + public static final Field INSTANTMAPVALUE = Field.create("INSTANTMAPVALUE", 450, FieldType.INT16).setScale(0.03333333333333333); + public static final Field MOSTRECENTTIMEBETWEENSPARKEVENTS = Field.create("MOSTRECENTTIMEBETWEENSPARKEVENTS", 452, FieldType.INT16).setScale(1.0); + public static final Field MOSTRECENTTIMEBETWEENIGNITIONEVENTS = Field.create("MOSTRECENTTIMEBETWEENIGNITIONEVENTS", 454, FieldType.INT16).setScale(1.0); + public static final Field MAXLOCKEDDURATION = Field.create("MAXLOCKEDDURATION", 456, FieldType.INT16).setScale(1.0); + public static final Field MAXTRIGGERREENTRANT = Field.create("MAXTRIGGERREENTRANT", 458, FieldType.INT16).setScale(1.0); + public static final Field CANWRITEOK = Field.create("CANWRITEOK", 460, FieldType.INT16).setScale(1.0); + public static final Field CANWRITENOTOK = Field.create("CANWRITENOTOK", 462, FieldType.INT16).setScale(1.0); + public static final Field TRIGGERPRIMARYFALL = Field.create("TRIGGERPRIMARYFALL", 464, FieldType.INT).setScale(1.0); + public static final Field TRIGGERPRIMARYRISE = Field.create("TRIGGERPRIMARYRISE", 468, FieldType.INT).setScale(1.0); + public static final Field TRIGGERSECONDARYFALL = Field.create("TRIGGERSECONDARYFALL", 472, FieldType.INT).setScale(1.0); + public static final Field TRIGGERSECONDARYRISE = Field.create("TRIGGERSECONDARYRISE", 476, FieldType.INT).setScale(1.0); + public static final Field TRIGGERVVTFALL = Field.create("TRIGGERVVTFALL", 480, FieldType.INT).setScale(1.0); + public static final Field TRIGGERVVTRISE = Field.create("TRIGGERVVTRISE", 484, FieldType.INT).setScale(1.0); + public static final Field STARTSTOPSTATETOGGLECOUNTER = Field.create("STARTSTOPSTATETOGGLECOUNTER", 488, FieldType.INT8).setScale(1.0); + public static final Field STARTERSTATE = Field.create("STARTERSTATE", 489, FieldType.INT8).setScale(1.0); + public static final Field STARTERRELAYDISABLE = Field.create("STARTERRELAYDISABLE", 490, FieldType.INT8).setScale(1.0); + public static final Field MULTISPARKCOUNTER = Field.create("MULTISPARKCOUNTER", 491, FieldType.INT8).setScale(1.0); + public static final Field IDLESTATE = Field.create("IDLESTATE", 492, FieldType.INT).setScale(1.0); + public static final Field INJECTORFLOWPRESSURERATIO = Field.create("INJECTORFLOWPRESSURERATIO", 496, FieldType.FLOAT); + public static final Field INJECTORFLOWPRESSUREDELTA = Field.create("INJECTORFLOWPRESSUREDELTA", 500, FieldType.FLOAT); + public static final Field ETBFEEDFORWARD = Field.create("ETBFEEDFORWARD", 504, FieldType.FLOAT); + public static final Field ETBINTEGRALERROR = Field.create("ETBINTEGRALERROR", 508, FieldType.FLOAT); + public static final Field ETBCURRENTTARGET = Field.create("ETBCURRENTTARGET", 512, FieldType.FLOAT); + public static final Field ALTERNATORSTATUS_ITERM = Field.create("ALTERNATORSTATUS_ITERM", 516, FieldType.INT16).setScale(0.01); + public static final Field ALTERNATORSTATUS_DTERM = Field.create("ALTERNATORSTATUS_DTERM", 518, FieldType.INT16).setScale(0.01); + public static final Field ALTERNATORSTATUS_OUTPUT = Field.create("ALTERNATORSTATUS_OUTPUT", 520, FieldType.INT16).setScale(0.01); + public static final Field ALTERNATORSTATUS_ERROR = Field.create("ALTERNATORSTATUS_ERROR", 522, FieldType.INT16).setScale(0.01); + public static final Field ALTERNATORSTATUS_RESETCOUNTER = Field.create("ALTERNATORSTATUS_RESETCOUNTER", 524, FieldType.INT).setScale(1.0); + public static final Field IDLESTATUS_ITERM = Field.create("IDLESTATUS_ITERM", 528, FieldType.INT16).setScale(0.01); + public static final Field IDLESTATUS_DTERM = Field.create("IDLESTATUS_DTERM", 530, FieldType.INT16).setScale(0.01); + public static final Field IDLESTATUS_OUTPUT = Field.create("IDLESTATUS_OUTPUT", 532, FieldType.INT16).setScale(0.01); + public static final Field IDLESTATUS_ERROR = Field.create("IDLESTATUS_ERROR", 534, FieldType.INT16).setScale(0.01); + public static final Field IDLESTATUS_RESETCOUNTER = Field.create("IDLESTATUS_RESETCOUNTER", 536, FieldType.INT).setScale(1.0); + public static final Field ETBSTATUS_ITERM = Field.create("ETBSTATUS_ITERM", 540, FieldType.INT16).setScale(0.01); + public static final Field ETBSTATUS_DTERM = Field.create("ETBSTATUS_DTERM", 542, FieldType.INT16).setScale(0.01); + public static final Field ETBSTATUS_OUTPUT = Field.create("ETBSTATUS_OUTPUT", 544, FieldType.INT16).setScale(0.01); + public static final Field ETBSTATUS_ERROR = Field.create("ETBSTATUS_ERROR", 546, FieldType.INT16).setScale(0.01); + public static final Field ETBSTATUS_RESETCOUNTER = Field.create("ETBSTATUS_RESETCOUNTER", 548, FieldType.INT).setScale(1.0); + public static final Field BOOSTSTATUS_ITERM = Field.create("BOOSTSTATUS_ITERM", 552, FieldType.INT16).setScale(0.01); + public static final Field BOOSTSTATUS_DTERM = Field.create("BOOSTSTATUS_DTERM", 554, FieldType.INT16).setScale(0.01); + public static final Field BOOSTSTATUS_OUTPUT = Field.create("BOOSTSTATUS_OUTPUT", 556, FieldType.INT16).setScale(0.01); + public static final Field BOOSTSTATUS_ERROR = Field.create("BOOSTSTATUS_ERROR", 558, FieldType.INT16).setScale(0.01); + public static final Field BOOSTSTATUS_RESETCOUNTER = Field.create("BOOSTSTATUS_RESETCOUNTER", 560, FieldType.INT).setScale(1.0); + public static final Field AUXSPEED1 = Field.create("AUXSPEED1", 564, FieldType.INT16).setScale(1.0); + public static final Field AUXSPEED2 = Field.create("AUXSPEED2", 566, FieldType.INT16).setScale(1.0); + public static final Field UNUSEDATTHEEND1 = Field.create("UNUSEDATTHEEND1", 568, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND2 = Field.create("UNUSEDATTHEEND2", 569, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND3 = Field.create("UNUSEDATTHEEND3", 570, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND4 = Field.create("UNUSEDATTHEEND4", 571, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND5 = Field.create("UNUSEDATTHEEND5", 572, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND6 = Field.create("UNUSEDATTHEEND6", 573, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND7 = Field.create("UNUSEDATTHEEND7", 574, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND8 = Field.create("UNUSEDATTHEEND8", 575, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND9 = Field.create("UNUSEDATTHEEND9", 576, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND10 = Field.create("UNUSEDATTHEEND10", 577, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND11 = Field.create("UNUSEDATTHEEND11", 578, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND12 = Field.create("UNUSEDATTHEEND12", 579, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND13 = Field.create("UNUSEDATTHEEND13", 580, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND14 = Field.create("UNUSEDATTHEEND14", 581, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND15 = Field.create("UNUSEDATTHEEND15", 582, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND16 = Field.create("UNUSEDATTHEEND16", 583, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND17 = Field.create("UNUSEDATTHEEND17", 584, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND18 = Field.create("UNUSEDATTHEEND18", 585, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND19 = Field.create("UNUSEDATTHEEND19", 586, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND20 = Field.create("UNUSEDATTHEEND20", 587, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND21 = Field.create("UNUSEDATTHEEND21", 588, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND22 = Field.create("UNUSEDATTHEEND22", 589, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND23 = Field.create("UNUSEDATTHEEND23", 590, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND24 = Field.create("UNUSEDATTHEEND24", 591, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND25 = Field.create("UNUSEDATTHEEND25", 592, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND26 = Field.create("UNUSEDATTHEEND26", 593, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND27 = Field.create("UNUSEDATTHEEND27", 594, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND28 = Field.create("UNUSEDATTHEEND28", 595, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND29 = Field.create("UNUSEDATTHEEND29", 596, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND30 = Field.create("UNUSEDATTHEEND30", 597, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND31 = Field.create("UNUSEDATTHEEND31", 598, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND32 = Field.create("UNUSEDATTHEEND32", 599, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND33 = Field.create("UNUSEDATTHEEND33", 600, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND34 = Field.create("UNUSEDATTHEEND34", 601, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND35 = Field.create("UNUSEDATTHEEND35", 602, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND36 = Field.create("UNUSEDATTHEEND36", 603, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND37 = Field.create("UNUSEDATTHEEND37", 604, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND38 = Field.create("UNUSEDATTHEEND38", 605, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND39 = Field.create("UNUSEDATTHEEND39", 606, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND40 = Field.create("UNUSEDATTHEEND40", 607, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND41 = Field.create("UNUSEDATTHEEND41", 608, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND42 = Field.create("UNUSEDATTHEEND42", 609, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND43 = Field.create("UNUSEDATTHEEND43", 610, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND44 = Field.create("UNUSEDATTHEEND44", 611, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND45 = Field.create("UNUSEDATTHEEND45", 612, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND46 = Field.create("UNUSEDATTHEEND46", 613, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND47 = Field.create("UNUSEDATTHEEND47", 614, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND48 = Field.create("UNUSEDATTHEEND48", 615, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND49 = Field.create("UNUSEDATTHEEND49", 616, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND50 = Field.create("UNUSEDATTHEEND50", 617, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND51 = Field.create("UNUSEDATTHEEND51", 618, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND52 = Field.create("UNUSEDATTHEEND52", 619, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND53 = Field.create("UNUSEDATTHEEND53", 620, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND54 = Field.create("UNUSEDATTHEEND54", 621, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND55 = Field.create("UNUSEDATTHEEND55", 622, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND56 = Field.create("UNUSEDATTHEEND56", 623, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND57 = Field.create("UNUSEDATTHEEND57", 624, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND58 = Field.create("UNUSEDATTHEEND58", 625, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND59 = Field.create("UNUSEDATTHEEND59", 626, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND60 = Field.create("UNUSEDATTHEEND60", 627, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND61 = Field.create("UNUSEDATTHEEND61", 628, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND62 = Field.create("UNUSEDATTHEEND62", 629, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND63 = Field.create("UNUSEDATTHEEND63", 630, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND64 = Field.create("UNUSEDATTHEEND64", 631, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND65 = Field.create("UNUSEDATTHEEND65", 632, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND66 = Field.create("UNUSEDATTHEEND66", 633, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND67 = Field.create("UNUSEDATTHEEND67", 634, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND68 = Field.create("UNUSEDATTHEEND68", 635, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND69 = Field.create("UNUSEDATTHEEND69", 636, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND70 = Field.create("UNUSEDATTHEEND70", 637, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND71 = Field.create("UNUSEDATTHEEND71", 638, FieldType.INT8).setScale(1.0); + public static final Field UNUSEDATTHEEND72 = Field.create("UNUSEDATTHEEND72", 639, FieldType.INT8).setScale(1.0); + public static final Field[] VALUES = { + SD_PRESENT, + ISIGNITIONENABLEDINDICATOR, + ISINJECTIONENABLEDINDICATOR, + SD_LOGGING_INTERNAL, + UNUSEDB4, + ISFUELPUMPON, + ISFANON, + ISO2HEATERON, + CHECKENGINE, + NEEDBURN, + SD_MSD, + CLUTCHUPSTATE, + CLUTCHDOWNSTATE, + ISFAN2ON, + ALTERNATORONOFF, + BRAKEPEDALSTATE, + TOOTHLOGREADY, + ACSWITCHSTATE, + ISTPSERROR, + ISCLTERROR, + ISMAPERROR, + ISIATERROR, + ACSTATE, + ISTRIGGERERROR, + HASCRITICALERROR, + ISWARNNOW, + ISPEDALERROR, + ISKNOCKCHIPOK, + LAUNCHTRIGGERED, + ISTPS2ERROR, + ISIDLECLOSEDLOOP, + ISIDLECOASTING, + RPMVALUE, + RPMACCELERATION, + SPEEDTORPMRATIO, + VEHICLESPEEDKPH, + INTERNALMCUTEMPERATURE, + COOLANT, + INTAKE, + AUXTEMP1, + AUXTEMP2, + TPSVALUE, + THROTTLEPEDALPOSITION, + TPSADC, + RAWMAF, + MAFMEASURED, + MAPVALUE, + BAROPRESSURE, + LAMBDAVALUE, + KNOCKRETARD, + IDLECURRENTPOSITION, + VBATT, + OILPRESSURE, + VVTPOSITIONB1I, + CHARGEAIRMASS, + CRANKINGFUELMS, + CURRENTTARGETAFR, + BASEFUEL, + FUELRUNNING, + ACTUALLASTINJECTION, + INJECTORDUTYCYCLE, + VEVALUE, + INJECTIONOFFSET, + TCHARGE, + INJECTORLAGMS, + IATCORRECTION, + CLTCORRECTION, + BAROCORRECTION, + CURRENTENGINEPHASE, + WALLFUELAMOUNT, + WALLFUELCORRECTION, + REVOLUTIONCOUNTERSINCESTART, + DELTATPS, + CANREADCOUNTER, + TPSACCELFUEL, + IGNITIONADVANCE, + SPARKDWELLVALUE, + COILDUTYCYCLE, + IDLEAIRVALVEPOSITION, + ETBTARGET, + ETB1DUTYCYCLE, + ETB1ERROR, + FUELTANKLEVEL, + TOTALFUELCONSUMPTION, + FUELFLOWRATE, + VETABLEYAXIS, + AFRTABLEYAXIS, + KNOCKLEVEL, + SECONDS, + ENGINEMODE, + FIRMWAREVERSION, + TSCONFIGVERSION, + CALIBRATIONVALUE, + CALIBRATIONMODE, + IDLETARGETPOSITION, + FUELINGLOAD, + IGNITIONLOAD, + ENGINEMAKECODENAMECRC16, + TOTALTRIGGERERRORCOUNTER, + ORDERINGERRORCOUNTER, + WARNINGCOUNTER, + LASTERRORCODE, + RECENTERRORCODE1, + RECENTERRORCODE2, + RECENTERRORCODE3, + RECENTERRORCODE4, + RECENTERRORCODE5, + RECENTERRORCODE6, + RECENTERRORCODE7, + RECENTERRORCODE8, + DEBUGFLOATFIELD1, + DEBUGFLOATFIELD2, + DEBUGFLOATFIELD3, + DEBUGFLOATFIELD4, + DEBUGFLOATFIELD5, + DEBUGFLOATFIELD6, + DEBUGFLOATFIELD7, + DEBUGINTFIELD1, + DEBUGINTFIELD2, + DEBUGINTFIELD3, + DEBUGINTFIELD4, + DEBUGINTFIELD5, + ACCELERATIONX, + ACCELERATIONY, + EGT1, + EGT2, + EGT3, + EGT4, + EGT5, + EGT6, + EGT7, + EGT8, + TPS2VALUE, + RAWTPS1PRIMARY, + RAWPPSPRIMARY, + RAWCLT, + RAWIAT, + RAWOILPRESSURE, + TUNECRC16, + FUELCLOSEDLOOPBINIDX, + TCUCURRENTGEAR, + RAWPPSSECONDARY, + KNOCK1, + KNOCK2, + KNOCK3, + KNOCK4, + KNOCK5, + KNOCK6, + KNOCK7, + KNOCK8, + KNOCK9, + KNOCK10, + KNOCK11, + KNOCK12, + TCUDESIREDGEAR, + FLEXPERCENT, + RAWIDLEPOSITIONSENSOR, + RAWWASTEGATEPOSITION, + WASTEGATEPOSITIONSENSOR, + IDLEPOSITIONSENSOR, + RAWLOWFUELPRESSURE, + RAWHIGHFUELPRESSURE, + LOWFUELPRESSURE, + HIGHFUELPRESSURE, + TARGETLAMBDA, + AFRVALUE, + VSSACCELERATION, + LAMBDAVALUE2, + AFRVALUE2, + VVTPOSITIONB1E, + VVTPOSITIONB2I, + VVTPOSITIONB2E, + FUELPIDCORRECTION1, + FUELPIDCORRECTION2, + RAWTPS1SECONDARY, + RAWTPS2PRIMARY, + RAWTPS2SECONDARY, + KNOCKCOUNT, + ACCELERATIONZ, + ACCELERATIONROLL, + ACCELERATIONYAW, + VVTTARGETS1, + VVTTARGETS2, + VVTTARGETS3, + VVTTARGETS4, + TURBOSPEED, + WBTEMPERATURE1, + WBTEMPERATURE2, + WBHEATERDUTY1, + WBHEATERDUTY2, + TPS1SPLIT, + TPS2SPLIT, + TPS12SPLIT, + ACCPEDALSPLIT, + M_REQUESTED_PUMP, + BOOSTCONTROLTARGET, + SPARKCUTREASON, + FUELCUTREASON, + FUEL_REQUESTED_PERCENT, + FUEL_REQUESTED_PERCENT_PI, + M_I_SUM_PERCENT, + M_PRESSURETARGET_KPA, + MAFESTIMATE, + INSTANTRPM, + DI_NEXTSTART, + SYSTEMEVENTREUSE, + RAWMAP, + RAWAFR, + TPSACCELFROM, + TPSACCELTO, + CALIBRATIONVALUE2, + ISMAINRELAYON, + ISUSBCONNECTED, + UNUSEDBIT_182_2, + UNUSEDBIT_182_3, + UNUSEDBIT_182_4, + UNUSEDBIT_182_5, + UNUSEDBIT_182_6, + UNUSEDBIT_182_7, + UNUSEDBIT_182_8, + UNUSEDBIT_182_9, + UNUSEDBIT_182_10, + UNUSEDBIT_182_11, + UNUSEDBIT_182_12, + UNUSEDBIT_182_13, + UNUSEDBIT_182_14, + UNUSEDBIT_182_15, + UNUSEDBIT_182_16, + UNUSEDBIT_182_17, + UNUSEDBIT_182_18, + UNUSEDBIT_182_19, + UNUSEDBIT_182_20, + UNUSEDBIT_182_21, + UNUSEDBIT_182_22, + UNUSEDBIT_182_23, + UNUSEDBIT_182_24, + UNUSEDBIT_182_25, + UNUSEDBIT_182_26, + UNUSEDBIT_182_27, + UNUSEDBIT_182_28, + UNUSEDBIT_182_29, + UNUSEDBIT_182_30, + UNUSEDBIT_182_31, + LUAINVOCATIONCOUNTER, + LUALASTCYCLEDURATION, + TESTBENCHITER, + UNUSEDINTHEMIDDLE1, + UNUSEDINTHEMIDDLE2, + UNUSEDINTHEMIDDLE3, + UNUSEDINTHEMIDDLE4, + UNUSEDINTHEMIDDLE5, + UNUSEDINTHEMIDDLE6, + UNUSEDINTHEMIDDLE7, + UNUSEDINTHEMIDDLE8, + UNUSEDINTHEMIDDLE9, + UNUSEDINTHEMIDDLE10, + UNUSEDINTHEMIDDLE11, + UNUSEDINTHEMIDDLE12, + UNUSEDINTHEMIDDLE13, + UNUSEDINTHEMIDDLE14, + UNUSEDINTHEMIDDLE15, + AUXLINEAR1, + AUXLINEAR2, + LAUNCHSPEEDCONDITION, + LAUNCHRPMCONDITION, + LAUNCHTPSCONDITION, + LAUNCHACTIVATESWITCHCONDITION, + LAUNCHISLAUNCHCONDITION, + LAUNCHCOMBINEDCONDITIONS, + LAUNCHACTIVATEPINSTATE, + DFCOACTIVE, + TPSACCELACTIVE, + UNUSEDBIT_227_9, + UNUSEDBIT_227_10, + UNUSEDBIT_227_11, + UNUSEDBIT_227_12, + UNUSEDBIT_227_13, + UNUSEDBIT_227_14, + UNUSEDBIT_227_15, + UNUSEDBIT_227_16, + UNUSEDBIT_227_17, + UNUSEDBIT_227_18, + UNUSEDBIT_227_19, + UNUSEDBIT_227_20, + UNUSEDBIT_227_21, + UNUSEDBIT_227_22, + UNUSEDBIT_227_23, + UNUSEDBIT_227_24, + UNUSEDBIT_227_25, + UNUSEDBIT_227_26, + UNUSEDBIT_227_27, + UNUSEDBIT_227_28, + UNUSEDBIT_227_29, + UNUSEDBIT_227_30, + UNUSEDBIT_227_31, + TEMPLOG_MAP_AT_CYCLE_COUNT, + TEMPLOG_MAP_PEAK, + BOOSTCONTROLLEROUTPUT, + BOOSTCONTROLLEROPENLOOPPART, + TEMPLOG_MAP_AT_SPECIAL_POINT, + TEMPLOG_MAP_AT_DIFF, + VVTSYNCGAPRATIO, + VVTCURRENTPOSITION, + TRIGGERSYNCGAPRATIO, + TRIGGERSTATEINDEX, + VVTCOUNTER, + VVTSYNCCOUNTER, + VVTSTATEINDEX, + FALLBACKMAP, + BOOSTCONTROLLERCLOSEDLOOPPART, + DETECTEDGEAR, + TIMINGCLTCORRECTION, + TIMINGIATCORRECTION, + TIMINGPIDCORRECTION, + INSTANTMAPVALUE, + MOSTRECENTTIMEBETWEENSPARKEVENTS, + MOSTRECENTTIMEBETWEENIGNITIONEVENTS, + MAXLOCKEDDURATION, + MAXTRIGGERREENTRANT, + CANWRITEOK, + CANWRITENOTOK, + TRIGGERPRIMARYFALL, + TRIGGERPRIMARYRISE, + TRIGGERSECONDARYFALL, + TRIGGERSECONDARYRISE, + TRIGGERVVTFALL, + TRIGGERVVTRISE, + STARTSTOPSTATETOGGLECOUNTER, + STARTERSTATE, + STARTERRELAYDISABLE, + MULTISPARKCOUNTER, + IDLESTATE, + INJECTORFLOWPRESSURERATIO, + INJECTORFLOWPRESSUREDELTA, + ETBFEEDFORWARD, + ETBINTEGRALERROR, + ETBCURRENTTARGET, + ALTERNATORSTATUS_ITERM, + ALTERNATORSTATUS_DTERM, + ALTERNATORSTATUS_OUTPUT, + ALTERNATORSTATUS_ERROR, + ALTERNATORSTATUS_RESETCOUNTER, + IDLESTATUS_ITERM, + IDLESTATUS_DTERM, + IDLESTATUS_OUTPUT, + IDLESTATUS_ERROR, + IDLESTATUS_RESETCOUNTER, + ETBSTATUS_ITERM, + ETBSTATUS_DTERM, + ETBSTATUS_OUTPUT, + ETBSTATUS_ERROR, + ETBSTATUS_RESETCOUNTER, + BOOSTSTATUS_ITERM, + BOOSTSTATUS_DTERM, + BOOSTSTATUS_OUTPUT, + BOOSTSTATUS_ERROR, + BOOSTSTATUS_RESETCOUNTER, + AUXSPEED1, + AUXSPEED2, + UNUSEDATTHEEND1, + UNUSEDATTHEEND2, + UNUSEDATTHEEND3, + UNUSEDATTHEEND4, + UNUSEDATTHEEND5, + UNUSEDATTHEEND6, + UNUSEDATTHEEND7, + UNUSEDATTHEEND8, + UNUSEDATTHEEND9, + UNUSEDATTHEEND10, + UNUSEDATTHEEND11, + UNUSEDATTHEEND12, + UNUSEDATTHEEND13, + UNUSEDATTHEEND14, + UNUSEDATTHEEND15, + UNUSEDATTHEEND16, + UNUSEDATTHEEND17, + UNUSEDATTHEEND18, + UNUSEDATTHEEND19, + UNUSEDATTHEEND20, + UNUSEDATTHEEND21, + UNUSEDATTHEEND22, + UNUSEDATTHEEND23, + UNUSEDATTHEEND24, + UNUSEDATTHEEND25, + UNUSEDATTHEEND26, + UNUSEDATTHEEND27, + UNUSEDATTHEEND28, + UNUSEDATTHEEND29, + UNUSEDATTHEEND30, + UNUSEDATTHEEND31, + UNUSEDATTHEEND32, + UNUSEDATTHEEND33, + UNUSEDATTHEEND34, + UNUSEDATTHEEND35, + UNUSEDATTHEEND36, + UNUSEDATTHEEND37, + UNUSEDATTHEEND38, + UNUSEDATTHEEND39, + UNUSEDATTHEEND40, + UNUSEDATTHEEND41, + UNUSEDATTHEEND42, + UNUSEDATTHEEND43, + UNUSEDATTHEEND44, + UNUSEDATTHEEND45, + UNUSEDATTHEEND46, + UNUSEDATTHEEND47, + UNUSEDATTHEEND48, + UNUSEDATTHEEND49, + UNUSEDATTHEEND50, + UNUSEDATTHEEND51, + UNUSEDATTHEEND52, + UNUSEDATTHEEND53, + UNUSEDATTHEEND54, + UNUSEDATTHEEND55, + UNUSEDATTHEEND56, + UNUSEDATTHEEND57, + UNUSEDATTHEEND58, + UNUSEDATTHEEND59, + UNUSEDATTHEEND60, + UNUSEDATTHEEND61, + UNUSEDATTHEEND62, + UNUSEDATTHEEND63, + UNUSEDATTHEEND64, + UNUSEDATTHEEND65, + UNUSEDATTHEEND66, + UNUSEDATTHEEND67, + UNUSEDATTHEEND68, + UNUSEDATTHEEND69, + UNUSEDATTHEEND70, + UNUSEDATTHEEND71, + UNUSEDATTHEEND72, + }; +} diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/WallFuelState.java b/java_console/models/src/main/java/com/rusefi/config/generated/WallFuelState.java index fbfaa1ddf6..8344c671cf 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/WallFuelState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/WallFuelState.java @@ -1,394 +1,11 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\wall_fuel_state.txt Thu Apr 14 15:45:20 EDT 2022 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo\wall_fuel_state.txt Thu Apr 14 20:48:22 EDT 2022 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; public class WallFuelState { - public static final int ADC_CHANNEL_NONE = 0; - public static final int AFTERSTART_DECAY_CURVE_SIZE = 8; - public static final int AFTERSTART_ENRICH_CURVE_SIZE = 8; - public static final int AFTERSTART_HOLD_CURVE_SIZE = 8; - public static final int AUX_ANALOG_INPUT_COUNT = 8; - public static final int AUX_DIGITAL_VALVE_COUNT = 2; - public static final int BANKS_COUNT = 2; - public static final int BARO_CORR_SIZE = 4; - public static final int BLOCKING_FACTOR = 256; - public static final int BOOST_LOAD_COUNT = 8; - public static final int BOOST_RPM_COUNT = 8; - public static final int CAM_INPUTS_COUNT = 4; - public static final int CAM_INPUTS_COUNT_padding = 0; - public static final int CAMS_PER_BANK = 2; - public static final int CAMS_PER_BANK_padding = 0; - public static final int CAN_DEFAULT_BASE = 0x200; - public static final int CAN_ECU_SERIAL_RX_ID = 0x100; - public static final int CAN_ECU_SERIAL_TX_ID = 0x102; - public static final String CAN_RX_PREFIX = "CAN_rx"; - public static final int CLT_CRANKING_CURVE_SIZE = 8; - public static final int CLT_CURVE_SIZE = 16; - public static final int CLT_LIMITER_CURVE_SIZE = 4; - public static final int CLT_TIMING_CURVE_SIZE = 8; - public static final String CMD_AC_RELAY_BENCH = "acrelaybench"; - public static final String CMD_ALTERNATOR_PIN = "set_alternator_pin"; - public static final String CMD_BOOST_PIN = "set_boost_pin"; - public static final String CMD_BURNCONFIG = "burnconfig"; - public static final String CMD_DATE = "date"; - public static final String CMD_DISABLE = "disable"; - public static final String CMD_ENABLE = "enable"; - public static final String CMD_ENGINE_TYPE = "engine_type"; - public static final String CMD_ENGINESNIFFERRPMTHRESHOLD = "engineSnifferRpmThreshold"; - public static final String CMD_ETB_DUTY = "set_etb_duty"; - public static final String CMD_EXTERNAL_STIMULATION = "ext_stimulation"; - public static final String CMD_FAN2_BENCH = "fan2bench"; - public static final String CMD_FAN_BENCH = "fanbench"; - public static final String CMD_FUEL_BENCH = "fuelbench"; - public static final String CMD_FUNCTIONAL_TEST_MODE = "test_mode"; - public static final String CMD_GET = "get"; - public static final String CMD_HPFP_BENCH = "hpfpbench"; - public static final String CMD_IDLE_PIN = "set_idle_pin"; - public static final String CMD_IGNITION = "ignition"; - public static final String CMD_IGNITION_PIN = "set_ignition_pin"; - public static final String CMD_INJECTION = "injection"; - public static final String CMD_INJECTION_PIN = "set_injection_pin"; - public static final String CMD_LOGIC_PIN = "set_logic_input_pin"; - public static final String CMD_MIL_BENCH = "milbench"; - public static final String CMD_PINS = "pins"; - public static final String CMD_PWM = "pwm"; - public static final String CMD_REBOOT = "reboot"; - public static final String CMD_REBOOT_DFU = "reboot_dfu"; - public static final String CMD_RESET_ENGINE_SNIFFER = "reset_engine_chart"; - public static final String CMD_RPM = "rpm"; - public static final String CMD_SELF_STIMULATION = "self_stimulation"; - public static final String CMD_SET = "set"; - public static final String CMD_SPARK_BENCH = "sparkbench"; - public static final String CMD_STARTER_BENCH = "starterbench"; - public static final String CMD_TRIGGER_HW_INPUT = "trigger_hw_input"; - public static final String CMD_TRIGGER_PIN = "set_trigger_input_pin"; - public static final String CMD_TRIGGER_SIMULATOR_PIN = "set_trigger_simulator_pin"; - public static final String CMD_TRIGGERINFO = "triggerinfo"; - public static final int CMD_TS_BENCH_CATEGORY = 22; - public static final int CMD_TS_FSIO_CATEGORY = 33; - public static final int CMD_TS_SOLENOID_CATEGORY = 41; - public static final int CMD_TS_X14 = 20; - public static final int CMD_TS_X31 = 49; - public static final String CMD_VSS_PIN = "vss_pin"; - public static final String CMD_WRITECONFIG = "writeconfig"; - public static final int COMPOSITE_DATA_LENGTH = 2500; - public static final int COMPOSITE_DATA_LENGTH_HALF = 1250; - public static final int COMPOSITE_PACKET_COUNT = 500; - public static final int COMPOSITE_PACKET_SIZE = 5; - public static final String CONSOLE_DATA_PROTOCOL_TAG = " @"; - public static final int CRANKING_ADVANCE_CURVE_SIZE = 4; - public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; - public static final int CRANKING_CURVE_SIZE = 8; - public static final String CRITICAL_PREFIX = "CRITICAL"; - public static final int DC_PER_STEPPER = 2; - public static final int DIGIPOT_COUNT = 4; - public static final int DWELL_CURVE_SIZE = 8; - public static final int EGT_CHANNEL_COUNT = 8; - public static final String ENGINE_MAKE_BMW = "BMW"; - public static final String ENGINE_MAKE_GM = "GM"; - public static final String ENGINE_MAKE_HONDA = "Honda"; - public static final String ENGINE_MAKE_Hyundai = "Hyundai"; - public static final String ENGINE_MAKE_LADA = "Lada"; - public static final String ENGINE_MAKE_MAZDA = "Mazda"; - public static final String ENGINE_MAKE_MERCEDES = "Mercedes"; - public static final String ENGINE_MAKE_NISSAN = "Nissan"; - public static final String ENGINE_MAKE_SUBARU = "Subaru"; - public static final String ENGINE_MAKE_TOYOTA = "Toyota"; - public static final String ENGINE_MAKE_VAG = "VAG"; - public static final int ENGINE_NOISE_CURVE_SIZE = 8; - public static final int ENGINE_SNIFFER_UNIT_US = 10; - public static final int ENUM_16_BITS = 60000; - public static final int ENUM_32_BITS = 2000000000; - public static final int ERROR_BUFFER_SIZE = 120; - public static final int ETB_BIAS_CURVE_LENGTH = 8; - public static final int ETB_COUNT = 2; - public static final int ETB_HW_MAX_FREQUENCY = 3000; - public static final int FLASH_DATA_VERSION = 10009; - public static final int FUEL_LEVEL_TABLE_COUNT = 8; - public static final int FUEL_LOAD_COUNT = 16; - public static final int FUEL_RPM_COUNT = 16; - public static final int GAP_TRACKING_LENGTH = 18; - public static final String GAUGE_COIL_DWELL_TIME = "dwell: coil charge time"; - public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; - public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; - public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; - public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; - public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; - public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; - public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; - public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "MAF estimate"; - public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF sensor"; - public static final String GAUGE_NAME_AIR_MASS = "air mass"; - public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux Linear 1"; - public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux Linear 2"; - public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; - public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; - public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; - public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost Closed Loop"; - public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost Open Loop"; - public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost Output"; - public static final String GAUGE_NAME_BOOST_TARGET = "Boost Target"; - public static final String GAUGE_NAME_CLT = "CLT"; - public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; - public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; - public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; - public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; - public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; - public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; - public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; - public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; - public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; - public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; - public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; - public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; - public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; - public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; - public static final String GAUGE_NAME_DESIRED_GEAR = "Desired Gear"; - public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; - public static final String GAUGE_NAME_DWELL_DUTY = "dwell: coil duty cycle"; - public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; - public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; - public static final String GAUGE_NAME_ETB_DUTY = "ETB Duty"; - public static final String GAUGE_NAME_ETB_ERROR = "ETB position error"; - public static final String GAUGE_NAME_ETB_TARGET = "ETB position target"; - public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; - public static final String GAUGE_NAME_FUEL_BARO_CORR = "fuel: Barometric pressure correction"; - public static final String GAUGE_NAME_FUEL_BASE = "fuel: base mass"; - public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "fuel: Estimated charge temperature"; - public static final String GAUGE_NAME_FUEL_CLT_CORR = "fuel: CLT correction"; - public static final String GAUGE_NAME_FUEL_CONSUMPTION = "fuel: Total consumed"; - public static final String GAUGE_NAME_FUEL_CRANKING = "fuel: cranking"; - public static final String GAUGE_NAME_FUEL_EL_EXTRA = "fuel: engine load acceleration extra fuel"; - public static final String GAUGE_NAME_FUEL_FLOW = "fuel: Flow rate"; - public static final String GAUGE_NAME_FUEL_IAT_CORR = "fuel: IAT correction"; - public static final String GAUGE_NAME_FUEL_INJ_DUTY = "fuel: injector duty cycle"; - public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "fuel: Last injection"; - public static final String GAUGE_NAME_FUEL_LEVEL = "fuel level"; - public static final String GAUGE_NAME_FUEL_LOAD = "fuel: load"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; - public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; - public static final String GAUGE_NAME_FUEL_RUNNING = "fuel: running"; - public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "fuel: TPS acceleration extra fuel ms"; - public static final String GAUGE_NAME_FUEL_TPS_ROC = "fuel: TPS change"; - public static final String GAUGE_NAME_FUEL_TRIM = "fuel: fuel trim"; - public static final String GAUGE_NAME_FUEL_TRIM_2 = "fuel: fuel trim 2"; - public static final String GAUGE_NAME_FUEL_VE = "fuel: VE"; - public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "fuel: wall amount"; - public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "fuel: wall correction"; - public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; - public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; - public static final String GAUGE_NAME_IAC = "Idle Air Valve"; - public static final String GAUGE_NAME_IAT = "IAT"; - public static final String GAUGE_NAME_IDLE_POSITION = "Idle position sensor"; - public static final String GAUGE_NAME_IGNITION_LOAD = "ign: load"; - public static final String GAUGE_NAME_INJECTOR_LAG = "fuel: injector lag"; - public static final String GAUGE_NAME_KNOCK_1 = "knock 1"; - public static final String GAUGE_NAME_KNOCK_10 = "knock 10"; - public static final String GAUGE_NAME_KNOCK_11 = "knock 11"; - public static final String GAUGE_NAME_KNOCK_12 = "knock 12"; - public static final String GAUGE_NAME_KNOCK_2 = "knock 2"; - public static final String GAUGE_NAME_KNOCK_3 = "knock 3"; - public static final String GAUGE_NAME_KNOCK_4 = "knock 4"; - public static final String GAUGE_NAME_KNOCK_5 = "knock 5"; - public static final String GAUGE_NAME_KNOCK_6 = "knock 6"; - public static final String GAUGE_NAME_KNOCK_7 = "knock 7"; - public static final String GAUGE_NAME_KNOCK_8 = "knock 8"; - public static final String GAUGE_NAME_KNOCK_9 = "knock 9"; - public static final String GAUGE_NAME_KNOCK_COUNTER = "knock: counter"; - public static final String GAUGE_NAME_KNOCK_LEVEL = "knock: current level"; - public static final String GAUGE_NAME_LAMBDA = "Lambda"; - public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; - public static final String GAUGE_NAME_LAST_ERROR = "Last error"; - public static final String GAUGE_NAME_MAF = "MAF"; - public static final String GAUGE_NAME_MAP = "MAP"; - public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; - public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; - public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; - public static final String GAUGE_NAME_RPM = "RPM"; - public static final String GAUGE_NAME_TARGET_AFR = "fuel: target AFR"; - public static final String GAUGE_NAME_TARGET_LAMBDA = "fuel: target lambda"; - public static final String GAUGE_NAME_TCHARGE = "fuel: SD tCharge"; - public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; - public static final String GAUGE_NAME_TIME = "Time"; - public static final String GAUGE_NAME_TIMING_ADVANCE = "timing"; - public static final String GAUGE_NAME_TPS = "TPS"; - public static final String GAUGE_NAME_TPS2 = "TPS2"; - public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; - public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; - public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; - public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; - public static final String GAUGE_NAME_UPTIME = "Uptime"; - public static final String GAUGE_NAME_VBAT = "VBatt"; - public static final String GAUGE_NAME_VERSION = "firmware"; - public static final String GAUGE_NAME_VVS = "Vehicle Speed"; - public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; - public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; - public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; - public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; - public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; - public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; - public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; - public static final String GAUGE_NAME_WARNING_COUNT = "Warning count"; - public static final String GAUGE_NAME_WARNING_COUNTER = "warning: counter"; - public static final String GAUGE_NAME_WARNING_LAST = "warning: last"; - public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; - public static final int GEARS_COUNT = 8; - public static final int GPPWM_CHANNELS = 4; - public static final int GPPWM_LOAD_COUNT = 8; - public static final int GPPWM_NOTE_SIZE = 16; - public static final int GPPWM_RPM_COUNT = 8; - public static final int HPFP_COMPENSATION_SIZE = 10; - public static final int HPFP_DEADTIME_SIZE = 8; - public static final int HPFP_LOBE_PROFILE_SIZE = 16; - public static final int HPFP_TARGET_SIZE = 10; - public static final int HW_EVENT_TYPES = 6; - public static final int HW_MAX_ADC_INDEX = 17; - public static final int IAC_PID_MULT_SIZE = 8; - public static final int IAT_CURVE_SIZE = 16; - public static final int IDLE_ADVANCE_CURVE_SIZE = 8; - public static final int IDLE_VE_SIZE = 4; - public static final int IGN_LOAD_COUNT = 16; - public static final int IGN_RPM_COUNT = 16; - public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; - public static final String INDICATOR_NAME_BRAKE_DOWN = "brake: down"; - public static final String INDICATOR_NAME_CLUTCH_DOWN = "clutch: down"; - public static final String INDICATOR_NAME_CLUTCH_UP = "clutch: up"; - public static final int LE_COMMAND_LENGTH = 200; - public static final String LOG_DELIMITER = "`"; - public static final int LOGIC_ANALYZER_CHANNEL_COUNT = 4; - public static final int LUA_ANALOG_INPUT_COUNT = 8; - public static final int LUA_PWM_COUNT = 8; - public static final int LUA_SCRIPT_SIZE = 8000; - public static final int MAF_DECODING_COUNT = 256; - public static final String MAIN_HELP_URL = "http://www.rusefi.com/"; - public static final int MAP_ANGLE_SIZE = 8; - public static final int MAP_WINDOW_SIZE = 8; - public static final int MAX_CYLINDER_COUNT = 12; - public static final int MLQ_FIELD_HEADER_SIZE = 55; - public static final int MLQ_HEADER_SIZE = 22; - public static final String MOCK_PPS_POSITION_COMMAND = "mock_pps_position"; - public static final String MOCK_PPS_VOLTAGE_COMMAND = "mock_pps_voltage"; - public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; - public static final int PACK_ADD_TEMPERATURE = 40; - public static final int PACK_MULT_AFR = 1000; - public static final int PACK_MULT_AFR_CFG = 10; - public static final int PACK_MULT_ANGLE = 50; - public static final int PACK_MULT_FUEL_FLOW = 200; - public static final int PACK_MULT_FUEL_MASS = 100; - public static final int PACK_MULT_HIGH_PRESSURE = 10; - public static final int PACK_MULT_LAMBDA = 10000; - public static final int PACK_MULT_LAMBDA_CFG = 147; - public static final int PACK_MULT_MAP_ESTIMATE = 100; - public static final int PACK_MULT_MASS_FLOW = 10; - public static final int PACK_MULT_MS = 300; - public static final int PACK_MULT_PERCENT = 100; - public static final int PACK_MULT_PRESSURE = 30; - public static final int PACK_MULT_TEMPERATURE = 100; - public static final int PACK_MULT_VOLTAGE = 1000; - public static final int PEDAL_TO_TPS_SIZE = 8; - public static final String PROTOCOL_ANALOG_CHART = "analog_chart"; - public static final String PROTOCOL_COIL1_SHORT_NAME = "c1"; - public static final String PROTOCOL_CRANK1 = "t1"; - public static final String PROTOCOL_CRANK2 = "t2"; - public static final String PROTOCOL_CRANK3 = "t3"; - public static final String PROTOCOL_ENGINE_SNIFFER = "wave_chart"; - public static final String PROTOCOL_ES_DOWN = "d"; - public static final String PROTOCOL_ES_UP = "u"; - public static final String PROTOCOL_HELLO_PREFIX = "***"; - public static final String PROTOCOL_HIP_NAME = "HIP"; - public static final String PROTOCOL_HPFP_NAME = "hpfp"; - public static final String PROTOCOL_INJ1_SHORT_NAME = "i1"; - public static final String PROTOCOL_MSG = "msg"; - public static final String PROTOCOL_OUTPIN = "outpin"; - public static final String PROTOCOL_SIGNATURE_PREFIX = "rusEFI "; - public static final String PROTOCOL_TACH_NAME = "tach"; - public static final String PROTOCOL_TEST_RESPONSE_TAG = "ts_p_alive"; - public static final String PROTOCOL_VERSION_TAG = "rusEfiVersion"; - public static final String PROTOCOL_VVT1_NAME = "VVT1"; - public static final String PROTOCOL_VVT2_NAME = "VVT2"; - public static final String PROTOCOL_VVT3_NAME = "VVT3"; - public static final String PROTOCOL_VVT4_NAME = "VVT4"; - public static final String PROTOCOL_WA_CHANNEL_1 = "input1"; - public static final String PROTOCOL_WA_CHANNEL_2 = "input2"; - public static final String PROTOCOL_WA_CHANNEL_3 = "input3"; - public static final String PROTOCOL_WA_CHANNEL_4 = "input4"; - public static final int RPM_1_BYTE_PACKING_MULT = 50; - public static final int SCRIPT_CURVE_16 = 16; - public static final int SCRIPT_CURVE_8 = 8; - public static final int SCRIPT_CURVE_COUNT = 6; - public static final int SCRIPT_SETTING_COUNT = 8; - public static final int SCRIPT_TABLE_8 = 8; - public static final int SCRIPT_TABLE_COUNT = 4; - public static final int SERVO_COUNT = 8; - public static final int STFT_BANK_COUNT = 2; - public static final int STFT_CELL_COUNT = 4; - public static final int TCU_GEAR_COUNT = 10; - public static final int TCU_SOLENOID_COUNT = 6; - public static final int TOOTH_DATA_LENGTH = 2000; - public static final int TOOTH_PACKET_COUNT = 1000; - public static final int TOOTH_PACKET_SIZE = 2; - public static final String TOP_DEAD_CENTER_MESSAGE = "r"; - public static final int TORQUE_CURVE_SIZE = 6; - public static final int TPS_2_BYTE_PACKING_MULT = 100; - public static final int TPS_TPS_ACCEL_TABLE = 8; - public static final String TRIGGER_COMMENT = "#"; - public static final String TRIGGER_HARDCODED_OPERATION_MODE = "knownOperationMode"; - public static final String TRIGGER_HAS_SECOND_CHANNEL = "hasSecondChannel"; - public static final int TRIGGER_INPUT_PIN_COUNT = 3; - public static final String TRIGGER_IS_CRANK_KEY = "crankBased"; - public static final String TRIGGER_IS_SECOND_WHEEL_CAM = "isSecondWheelCam"; - public static final int TRIGGER_SIMULATOR_PIN_COUNT = 3; - public static final String TRIGGERS_FILE_NAME = "triggers.txt"; - public static final int TRIM_SIZE = 4; - public static final char TS_BURN_COMMAND = 'B'; - public static final char TS_CHUNK_WRITE_COMMAND = 'C'; - public static final char TS_COMMAND_F = 'F'; - public static final int TS_COMPOSITE_DISABLE = 2; - public static final int TS_COMPOSITE_ENABLE = 1; - public static final char TS_CRC_CHECK_COMMAND = 'k'; - public static final char TS_EXECUTE = 'E'; - public static final int TS_FILE_VERSION = 20200310; - public static final char TS_GET_COMPOSITE_BUFFER_DONE_DIFFERENTLY = '8'; - public static final char TS_GET_CONFIG_ERROR = 'e'; - public static final char TS_GET_FIRMWARE_VERSION = 'V'; - public static final char TS_GET_LOGGER_GET_BUFFER = 'L'; - public static final char TS_GET_OUTPUTS_SIZE = '4'; - public static final char TS_GET_STRUCT = '9'; - public static final char TS_GET_TEXT = 'G'; - public static final char TS_HELLO_COMMAND = 'S'; - public static final char TS_IO_TEST_COMMAND = 'Z'; - public static final char TS_ONLINE_PROTOCOL = 'z'; - public static final char TS_OUTPUT_COMMAND = 'O'; - public static final int TS_OUTPUT_SIZE = 640; - public static final char TS_PAGE_COMMAND = 'P'; - public static final char TS_PERF_TRACE_BEGIN = '_'; - public static final char TS_PERF_TRACE_GET_BUFFER = 'b'; - public static final String TS_PROTOCOL = "001"; - public static final char TS_QUERY_COMMAND = 'Q'; - public static final char TS_READ_COMMAND = 'R'; - public static final int TS_RESPONSE_BURN_OK = 4; - public static final int TS_RESPONSE_COMMAND_OK = 7; - public static final int TS_RESPONSE_CRC_FAILURE = 0x82; - public static final int TS_RESPONSE_FRAMING_ERROR = 0x8D; - public static final int TS_RESPONSE_OK = 0; - public static final int TS_RESPONSE_OUT_OF_RANGE = 0x84; - public static final int TS_RESPONSE_UNDERRUN = 0x80; - public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; - public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final char TS_SINGLE_WRITE_COMMAND = 'W'; - public static final char TS_TEST_COMMAND = 't'; - public static final int VBAT_INJECTOR_CURVE_SIZE = 8; - public static final int VEHICLE_INFO_SIZE = 32; - public static final int VM_VVT_INACTIVE = 0; - public static final int VR_THRESHOLD_COUNT = 2; - public static final int WWAE_TABLE_SIZE = 8; public static final Field WALLFUELCORRECTION = Field.create("WALLFUELCORRECTION", 0, FieldType.FLOAT); public static final Field WALLFUEL = Field.create("WALLFUEL", 4, FieldType.FLOAT); public static final Field[] VALUES = { diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index f42c4577e1a25183524a29df4ae0912917d1d9b2..84ffc5a15d1f2d0f8da6838ed986c80fd568f20e 100644 GIT binary patch delta 389066 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 z zU^N!3K4Rw+l~g(%knAQ|y81(2$GEXhIrYk~P&}H+wh|uS^khcZAd$&gyarj3J%gHZ z!+d^=Cp#(=oBb}kN3%)5y5y~7jc#S|tmD-9j?Xr!U&IN$?D)l}?EZ+_dZV!HUe%da z7hON*xzE{%CL6jM>75r%UjVZ{{F(lp$9{yeAIwxMp|#F4Yde~Lc)^KggNyGBYu#ri zcP#u!A@$DZ#yc{gI5Wif4t^JPd%~GchE&u-pO&2@=KkiVS7d&CK*qwrl5O)5%M4Qj zPrIndhiePC-wlhB)qtlQ;%qiMePOoMe*I56O{-%5d(*Z1#uFDL6e#A9IXO_wo|Ni%u_z%_g3lkgv@unG@ z26=-Qx&2&Y>$M^mYzCULfHh5nXj6h;|LOSN%!KP=r4vc8y7 zi5s!WevABYl(Y}ejRaFX@X}(Se6t)KDnsR7SdIMUqxYrM{Gjytj{=()cSG18jCxw( ziW4C>KMG}Q61k7@TG5LWZf`WyB#qox*{tyRFcQrc!gq0;ou;zh58$*t20f$ew{GKz z&mXep4H48Vu=5nSe%z&G*hkd%#9&;!Hnl27<41zmvqZdCyD*)*)??55imWIK*B`5n zv%Wq`__C;?Q}&U6S4maou2LJBxRs*X-xpfPpArJ@+gWo|yyV^KD}TlPbA{u{GFRCO zr_%~|1_g)rm)FMklUykQ&S17o{yvRCR)>T~F_}razeS|UD-(x)%NRvV42C#l%6;+^ z`P#Yj*lCss+F%Wv$i2p+n0}7mwW}f#Vc234zqmv$@*zubpx1W^kSK?l0vc3`pTFw-0IIe zlIfp9FZkd;7%9#%&mZ~3-6$WR>ijI)kFvmrvU^fKcFJ2=dH>VW<~6DT^boO8AZ(EP z(f(xiVToYR{s~QhW_4dch$Pp>3D2b9a-iaO;s^*`99Uh<4bFjlt}daxOg@0y@vb9G zfq@vsZG(5?;`0504NEZtx6rSa&rl7f@m~gMR(^24f1Lr7k79xJf1+u&n*A=`0zZd~ z&@rt`mfI!*q*<`oVm-H2x;*1;E!|2; zFlXvqW=&63F97V;zjd@wQ8Ml)*t}mpcK$YdFOGct-a+^A8*nmnr1+*IT1uWJx6shi zHR#?{5xHf^g&4^9VM=`D6K-R`TW9sjiWUtNq)3a*V4M$`t zgZE5fbX5^dZfZL|?N-oWa=&(n4a6j@(~Z|@9$JeCAq6fMilmmSo>#Wt^L4vN*7i&4 zFR#>2V;|I<9K1%e8YTI_A{gm0kr^N4&dSh{BK6O8K+>EkKG=SA1Mb;F?lHC>rF)a@ za7eJyaLX}*7F@1SAYQ-n0&g2G%XTxYUmKeqWO@kyfE9i3S<8FcMIMwd&C^E?qc9~L zSalM@n+C!HTbMhBq+!OzmfY;$?8yW?`IG(za9OjCNB65Mq>7MxvmHI)78R_^O8-?l zY;7RIQj;+|Y+M|FGVCbv!dkRpmT0b)>2%d6KtXnedM5%=N2h740L~6SkRSQDEk)w* z`9Q)$qGMQ6Nu)Wd4(vUVZldh(S-wH(#+2fb>0rs$9QU)utl{IFO1YHepB|?C@GQFQ zl`DR9s!N9Zucr0**~NKY+4r*ck%z9cp7WftaqV_X%Wku_^YZOE!Sg&u*S9RG5iEEA z`=_ktB-7DZV7h5?Xh3U2aoM1t1j+~4cAAW9=Wut9k$z7q_^f)ZaSxH-i}%lX?Ke4M zUded+*V#A(|7dcF`H{#s==p*UPxWi^SgM9UZ?Gak0j7y2wv*-!favruSr;J61x$7> zL5Se}fW`F?%n#x?={DrBGm*p9aA}mU@(rk%7b0i~ssiU5jwNdeK!Z{MEytfp$Cu+n z$%x@`#W;`BqGZfsw zbZ)RC?oUK={nCLY6vY(+uWUt)R1mENL1gX$3{JWUMKrxZR#2t~=HeA5T;J<@LZ2oS zP4-HQw(^<$XmOO^OiNWo!Zso`#{K5AN=w4d42cu;hY1pI3Ula~h!|%d(6t_|m6ke% zMDUlayEZ$#74TI{ol~AptDg9=4LKn}>SjCIo$jh}C_-WlSiMOGpWME%wrm;(X8d?} zYV+b%#?Zg|wE9=5lR}TYD1Ff{!zHHjo5spyBf>5Z64^5j`=8|~isLa2_{YqK6@#N? z$XaWfxi3UcKEC8E{{n~+Z@MV!cClglXzH}tIQ%peUSPI$4Ur;%O}{IJ;wnEsm=+EX z6P*oPkwGfm?`Bnt^#AC`nyJZ1Yd1q*OOko@Mz@PsEySGCenulD%Twc=Rzvi)U-0!v ztAw)Y&rQv#mxkTD{^FH%5n&0Ta2CpUA2!;b*HWcI1ut_fJlg=hS30(0nfU5oBy~5o z&uks(9YrGwcohyTSa^$LVA~4E!5JEBBvwr!aHe$bBK5@rt$VMtlDGR<*8I_s^Uvxl$669~LHt8!;BnZ3 zURxn=H){92v``jc*>g3BX}EbYX_bNLx7l##PE&%K%KFM#sBq@+2?21poA0(u6m+fv zM43-~wdLsp4$FNiT)6I`ex$wqopEU2o%#$(dMjAhkWTD68u>l_mLY`OJQOJ+40gtq_i%VUcY9`WR2`-^d3X zJyc5atwSC?GyJ#GI<3{Dt3x^>-;DB5(Pc5In`y79W1g$PZ=!d(Nc4l8^aMHLUR6j} zQ2(Ha?dbmwOggs@v`)Sz0cG}mrmoe|y}^U`k-b9A`o*$^_97gsc{5gS#&a1&y;@%> zImgCQyJf;gR@yzxmuy>l&xJM4C7-PKkeHq;9E&8yrF}}S;=NUZvaenfpOkv(>)u43 zwz8EJv^?o|8r-J)@-{+OsV^c$OednUbcPGRrT9xD;M$p2>ZI-ltpQTSd|#{Yr6G&M zX;TLVq(2Yp1lKg9U!cpFvZF~yQ+87+66X^&K)++Y+dfbY^!JFA&GLP9IuwI5+r-Lh zBDah0-jMpKU&8co>wcC4i(D+*sfR)HweqLPpJQH$m!kFYIkn%9F5Dzt>DQq(434ao z0gnpQfpwqYmo3XYUeqsX9CBLena;xeMjnd);EwcGmKuElON`LZ`M5^nEE+@!dqyX% z(o$G>*GH-VDxyb+Q|iIrC#t9m{Ztl~BUuy2RjMiq9oOS9xJU5K&w1<6?a))>li4&A z&oo@jSE*T2;P(V5_QTM4YH?NHtAaXK4YN-vaNv{CkjDD3@O0icb(4m+i^rUY5pGa^ z_M+13oDeq7!!}ZGvwI4wM1>*JE%9!x;TbX>Z#df;B_ynQnAk1)oVVMY4@QDs8Wp1s zl|SNT29=gF=J!$JRd~BMedTZq@88JZmxLb|pEByS{+#^n_@e!zR#9=_7tJEYJxQ zKQ1hlZSR0ihHGX|YGAG@k{7deJ}*sUe)U=rHeOVGJD0`u(##nz(rt)#*sAvgMLUPR z`WydFlszM;il6DIL8&8zMpzFrQ0ed-f!kZ>b3C4M-$_+jUf0F5=mo4ED2thsQj$%( zQ!vzC*fd;NT-=Unrs-|2D>~!b?#Ki5L0&csXh{+&4EuQ&3S*jSBE~VzG}i~m63mEy zXAvAV@kzMbJQv9;ZT3-rKo!}`Yd}=xb1~$gg}~hH?PXe{KiCUq>D`}-|+7N1E0LDgR*6SlJ zub}?gPx{Xnir&Z6+6pMPaF%550#L&Ac!mrOl=YoKzPARiH8*>DyfR_c12u!xcs&l%}|ZwiBcb)X$50xmfT40Q{jpg0EiZm}(On>PIe zvO~5k3tEkDY?xk}P?hO7c_nM#N)2C@IPv%P91Oj4#KSuq(f2BT`)G&&4(6{8WsNeW zBi4rb^vL3~T1CQ07f+ZLfR7LH=GvQy_SEE+e*V_|O9Km>rT#Z;6<+mnY}Pby;1x5QoLM4k-;FPLZUsMyTl_b%J5Yoe_t}fB z)lyQgO~iGX$^7jnvAK|N9;q?SJY-b(R!pXN6M-g*8Ha$Fg|VJ zYq{3d^)V$#TzQLW>L{@Di*@8aqyTd4$!d#+{>iu?dZ)IUm;{oGwRlFiFlv%b+M2j{ zQr@Sk6L7N%IG@$BljJpUgk|9|bin$3JY%H>so8tok5bdp9pz zU238HH6RpW#m0WL@QF)YI;TLoQ6~49ho40*B748MURmIi>dAw4R_W{~VTsXJmvXya zN`GxWoDocoO&InxeGQrzmJS-&aHvixLK4YHGzwp2CA_%Ri3oVHw@1L=o#5-ULZG6G zIwJEWB&bQr8Sz$hVWB8ffEOx#bQ6hl@eof+a0NC(vffVl^;x+AdC3Aa8+bbnjIvJz zjmRWq`BUSST?~CL$60)G2TK+8=1vZxFc)Bj`u=UIO9zS`6vlpiJn^t&( z405@I%fp{Y&^r}+{2+5=nGF5nWtiygvzHX6`}o?^9*=0>g+u!no(4;MrMLG;RA^&v zwODOR^6P{CiQ?D{xpT1Xo5<-&bc}b8V*~t+vPV4LQHH%%>&XyEt4JR2_AOPa-O?*d z9{7X74{9rSVX~04Jl#cb^I4d0C~w?bFa zm&E>1;i}RzBo9I?w9|$i-xV&S`Ix*0Cqd97yOhHCqq%C<$8ZH6wV_TET)?Ji-;by=F7#M zte5U@k5%X*{3%FHzVnt&e`S1t`O~0dEY!a9EAA54-(CBa0}r`AdPGQ=#FZdBZ~e1{ zJo{mXkxSEnhz$sj*3xxfZL*%v^0EGAMT$zDOHK7-s*#&au(%&-T^qD8SR(;6U20_N zGH10~%hcXcUB^_Od|Z5^ULk3*@epX2r<6Dkje2QnKUL!>;wtI<*>X^f?tYw6-uCT5 zJ*%U@S6{13vz6+!1}DW&OG;}xR*P&y9^X8)Nr*IaPeCi+oA6HsbXt3u)oB{xA0Jx$ z=GF*#6-&l9$*}I4C799FF}Xl#lE3L;e=t8W&-q9+86V`Zm+zk%&Aa2UV&VwMXCBoP zJc3Gi`~Dg0r1svxnI@Y1i1)2kgYvGrU9lPec&s6krYBM{BzjD{{4f264$))E>`zKr zyx&(7K9~z^)yT$k#^V>3N8g<_5~K%Nvc?mR_jlq%9%%T)?wNj3>Y9#cV4r;#UxgU6 z+bAH^6VEss$(;?$@u@3FwuKl2Zsg-@r&o@4>$H@qBN`I_nk49q zQ#QAz29-nFWa`DuDkq9Z5;>m+JWmZ$J~179AIajiGT!mq+pp2wHJ4p&3uRJ60p(!S zrIE4I+fM1}nSWWdnau4(bK#vk@UB(D*v%k1WF_&`rIAyO+piQT)~Ocz-`INVs5ZXv zU$=$gR@|Wlin}`n3KW;%?(S}7aCdi#yL)kWcZUXw6xZN~Z-4i!d#?PkXFc=I&Lk_z z+H2OE`Q!n{PDbY!YaJ_-bxY=tIb(mh-x^QY)i2r7vs2L>mMw`CY|~sXiTxP$O1xtP zk)DD`6-iG(q@b#WV9Z!fTRW|v|89DV zkK^w1rxdD;Bu$UkZ-s(95w=aVHqF{rYUwwQZ8L!Le!0ts&lqy-1eHzOn_)qwI_!va zvK}_{8D&j@E1tA27d3fGIexhtw=W*kroyfryaGBFnpaMf*7dXLHuLrk2l=qHCkSqq zxgDfepp_+8t&^j5k;?Td>KmhmJpn&+>xJULEe)Ve$E!=?=Csxq6OdV2rc{`Gf?{ ztU3UkGEieUo}X$~50Qt;ofiRVkgG?doa*Jg6~9ZjNLR9P7VWAw$H5o| z{5H?g({G~VnTl@L1Nmxq`{E*8eRJe&SOyt(9xdCvz}3v0D^KN&=x9Bg8DCGWtGz$j z_TOyUK^70oTehlZrnItdu8Pix2oxM2Lp1;iE+-G^1`L@SL_OU~c`oKsFD(YW&gF_G zx}HqBFsH+_V-oV$94^hQp5|jLT(Ss|qkCCRV`PL5cdda@i zyTUcaDs|iBecrq|SIQ!9MTIrg&~G-vpyH6d@_-U0BuA<_Or0p(+jYSV&eba*< z#Yj>`bAeKZVz7=?#qX|3bhDc{!e7qN@s(nrV&OYc2hD-{zp^10Sv2$xON z!rsb?#=+>jYb&+aI2WwO3}T)F;#R$D1F(bl=1ZD!{?J|{h=o#R>^+d2omn=+`-RGe zY3B1MQP*R~e|5J_##E+0Hu$xuF2mjtwA~!PkRN4-^XAVaoCsZbR&zA@&!5>rAvaI! zRhp~&&!5>|h?jm0SveX%#&N&>AbYx+it(n;%qIIiDy1mxl&gCe3>-~CPrASn8XBUi zo}FO@bo^yYvftMI=g*Xt`RC7+3irMtyZ!UcqpDV+_~V3eTpAfy1L54s0IN8&rbQF~ zh1BI{*kI=;+R9Nw3F%MlU&O~6I~p!}j@;KUL*(#26z(nWK|!PTo93$qvm~FCa#7wX zP|Q9RgZN@(cmXV&6Mh?{oTd=@;vjjx-r~8wVzyo?A`4Xy`G!vhDTusnj2|H^BX|DU z+8(yOYvTO@xS|4G7fU(e%*W6D=mk^#M~uO>PM~?F^u2*;2ToVTds`#ytDUEaz0B!3 z=i$&$OP}T^e^=TWIZvbnjEfc1{EZ^~QW=9Cm@EIR8Q|i!j)dN13SR|+D;dEl-nfa* z=g=Eb8D^}XI^nmzsh86qpW8rn9-?cOi&+Yr2?Gg-N238T%Su3tyKKqN65fKr^q4UpJqrcG!{%rp} zed3R=oaT8DUD*_`)S;9=qFWmK&KF> zMS$?c52UM$NU|WRU8M6a`7hnD$5JXpHzWUe>kfX%@*ZXXwaLjFIQKP4WK3#SPOVS9 zA+Snup!)NLRR$#JW(#bR5zy18a9+dU{uLj;C^5z_K|hyial%9B@=wQy&bMD&>u5GI zdjZ(sMis zzxQ_F_=MjCnqqGPO&goG=(lDa(um;6m=>xhcT#k`XCZbxg&w6%@Ccy@yT8erf}4XIK85i$e`U4E1pe8>rHbW@gjvs@Z= z4-KvgMPIOWPbEg9c_2Xo)d4wUZw$z;`m0=6($?q^A2$E6JA8Z8h3mORq?@n2nKvv% zW{~gAJ|{@{L_fIin==8?u9qI(j^Mj$5jkP}jIaA9} zYmvnEVHecykr%e-++d_`Tvi`cNNZ#coGZTG2S&E+cmK%^)$rs4{*xP)M>4^l8E8XK zu~Y>RM(+1anXP|l#%q3)9Nzik;-5jEnRz2XV8*v};eF7-xB+^-5T$czd=P(2<^}e4 zO6^1Shpx;EmF;qkdo|x`1K>&OyfIP_rZf7Yyrw^y)xY>7W6ykcmhPU;;GvPvKyA6K}x-;eC$Mz$> z&^w>l3(@Tmd?6?w_QlsBye{G=)WNe4T@e@HZ7Mt=1Rq+}tu~`uZvYK^=f5=sdEQ3r z-+a}l7xbYXBsG0PKbKf}3sk>wgXMjNMj)VVdA1j1NPVOb+zUUL$+v45BE8MT_JRm0 zkL-ed;RW0Ic8x%^w(ZznP$6xRU2rdgU{YUT7$UJv%JzZ)DUJkSUwFWJzQ71XZCj7+ z1qIR^3BbJwfB_-j*I|hKwh-G35~Mov750S>4EVl|K=if&wih%=SL7>|O>!aX*s!fh zP%WZvuRBdk$OUW7pgT`X$_3(^J~L@sC9-yF>^X8L=JFl5aoZ(wDS(T46MnNF??P1Y zP0$B(&pa3s@TOX&;O>D?pU*_b0mDPAf~fy2lK|<|n>*7R>YvI`5Z@aST=}LlMDq{9 zvxBxX^CobI1JCuCF$-e0CtPT3*S|UZyivhs0aGRw0U`KQJv4)`+!Nf;BnFu3Zf?>^vZ#{7j6 zpf7rLXU~ZhLZ1Uz)6qt9!hu5}Vy{=W+RL1in#ebYCcn`x<|VGt%?}#YtrVk&>i)s2 z1@-&tfz&-x)=RXs|IhaRv7+mLJ2ZDmhaRpH)B%71oKySYgZd(N{X}2?^iAA{?3MTS z&3^f$rAm5#<46$II@C4-EUG%9_;`8n4kaiWi|!;=gWMXsFld}-=P(R|0J0! z|4A}4q5s3y{}B1VS@BSWim#yA8TX&YhF3foQSwrpMM6x2ZFzrnMh33$4?N^)`bRTZ z0ER(eRVe2^AEwFZ<)Ht_?2d1g+MQl?>ogUJ8G0DIWP!O)?fpNtj_BoR|IZ35G2PTD zkf>qLVVV<>B#_$)n{A~1CVia>$RVwlNN5aslCh}2eA8ccM8@UNJgR%VsWZRG#5~D( zd^UQ+2mt?0YsqL5`6SaC`JXxy@jq229ex*)H#YcfLDcs~fh0v%!*qpTxNNJ{zjVPq zX%=;ncte8;d$?FS@x75UVzhdiS)Tv5-__{qhH_Ex?L-X!Jzq21n}c&5y+dC0)cB#T z+l{Rg&YKDR*nL<3!v8-jB=Fx78NKm;i8Ak^)qzd?t75me#a7z`YAWN9siS>Mp62Y< zne|x`&!-cuK_&0ii$PM;v$u_cB65EI@uGeR({dE=a?m&nN zh59Hz{-LE|m&M}n>r~yg$I9&8_f>9X>642uF;Zj4Lj`;D#KFgnwNiP&z;D`8w6GUS z3P{~0di8V6%RfVAO0A?EK{HJPx`GqbVqvovECwdxe-Qf-1B~|{5OcxI!2Sp40x-lM z{sS}-m}Kbx;FSxb@*h<3VPO3OYZ;iOe~=}DVe}8mKrqPv9`#WQtP7}oAbjEgY{pf))+(SU!~FoM*Sb? zSz*xqd#*@3jJSUlQYVasf0MHVVEX<+n>$A5Kk)LxnED4YJ{X$+CM(3i5dH(3co>_1 zu$}~y_YZv2UG zf8}LRo8{CX$n7q|l9rPEY!l01)2xnDM`_uN@9*cE+I!s~&}qwX30 z&0u0gz-E(XM+XtAMX|RHd$=XdZj;;~C-P3pJ;$GSeK_Q94Dv2VXgDOpWF12Uo;3d4 z0Kb{myw`^41s$JsFC!+XhO{~4+`-!)4US?RU4%}MW(TD0CqD*>jO61vV3fPnK*&Mb z!SdD}OpSEtq;Q2jO=juY_o5(5ynyL!R~!5Ruu=xJkm@B~e8JaCzQD%UOSZTq|w{#(ySl>7y1QxS}l(?-8`lwn#()4T=du<3zMysfzPHT&uS$}NV;yJT+zK>6=P1hT6C!JmS3gE;SP z$ffjtDL&a)JhIMH5ToOpSTXtHH6c>g&%>X{6(aDaGkLI~vWQYBC^kd#D9>aulUcGG z824TL`T*yqiO}rzWrTOf+_OTxJvC=(K%1>L;x?NIL967YWWBVdw64_o%Tpk2LU@c+ z0HU8T4?tnCr_J{li-KS7QN1Y@kXK*dM@DJ9UmN*St{&rqAYTHZ$u{P0+p3MsOe;Q6 zSVy*^kOj^Mkma94-5am=mF{AZ~E>?bm>M}Oxk@{Bp(ef(4 z0718f{Thyx`-PZB;d__mXmgScT!x(EA^<8ETu)gTVgo|w^4PDvZ1aw$GzQqOelm>z!*My*PO`L5ID=tqw6T|{SEIcaeXZziNt?7Comh6Nq$sZf za~qgA5O1+nT|+rLf!kZ#->N{8qLc@1`}+vdhBTez+)BegpJ*~jD_M-fSLJZNTm32a zH+p}q#@d5)7pyGU7IKH5Bq>uwctFc|)PUR5XlZRmCgEcLRC_vMfv;*AgzeQXqxskI zcEwwagVoUnXe^hVnws&qGWo7Zms7nd9SE=#GTfD!nEtX_2IhS`kYZge443CQA5Tu| z#jTYlmYNpV3hOENwk2&;X!gv$K8{by5%-NJIW`$_{u%m}ziy52P0eCW=GzP7&qxFA zLYtyx4UUToRJCJeMB-AcezQ8V;DLq+UoPeDE_b41Ip7SU!Vb%?FTnWztdj)FaQUlK zEEjDrnc?9_;eBXB%ZneKS_%N}2U(&3`Ie03Fr6Q8=%F#9n$6drb|LW&ABKLe$4q<5 zMm?bBF-~@YQ}Z7O6{>?Q@I?E#8%nxFtuni{{YY+QXS$KcO$n~M@iYgS<>!irDI8kI zcdn@Hi2zad5;!V*{yxFm4|-YMp*mK|Gf4>a+g9WRzmSl|G8@G*ElT<$WlDH>;&MLD zNFp0?w>oQYZpDD|%BsRKxmC`&7Z1y-f2HL&iv4Z8HDB&(&n*>JqpC^WQLR{7C<>;H zFS0UH&to7Km1t13!)nWOx)Ik?Ymm$-7aO!+6$Gd~K@C1a1n@QE(BD76pV{a?qHUq8 zo(7@gHdd*xt6j`wvXF$SDId?sG2vrJJT`u(Cz<|huJ9U64TSF?9&4%FTWb$z|F+P~NnzV2^a0CNiw7-NBdp5Ad+y%|lmm2^Db zG4Psf!930oq8uVFnVtAlQ1{7EsfU(`B+Qt~)zl>G+cpHjYw|;_1RPEz6zm77)Z#9L zCh2A`d(?+6gng~X=Ciw$qwcloJ?VXajRRWkWl z`);iy4(ovH-o0>08@-qJ+r%ypy^*kUt!ZY@A0r;CfwT%}vs&BC2}a;+ zVx=fogaOQ2w39jpU0Q&XMz+0pjrhkJ#ncd45h_lkj%BiIgYug9Yk}NNNPIP--}S$K z-(md>4H`C5SdI#04ll4r2@cF)rau-9=V$%4SR5$2Ov4}0fcI4#x$iSt!HA{=k@(_Y ziz#8MtjT^#>tOM824Nzt>F*C&k(D2S3~5bAE3W)728xQ4W#LVHvjn_P>Y8x+(;AmSqXz_1|b@;Ncv3FtlTd}t*{9I48l^u;?)j%6btk>#`Hp319 z!jfmilH{^9dBVBpHuEO(i8?h#)zw$K^TA6YaNvIKeIceNDD1#;vfy-262S3!!1mi# zwBR{2fhP{QBOJ;2dH*mC!+t%>a>tAhwBo-OqM<+f>N|H`BWBhNk&w8HXNevAjQlfiC4It`~_Q6ac;Q zRpkPJC=BXhds7^|b(+-0n)IgzsSsZnJ6{zpXaq4Ur%aweL4;>x5D~FleXIWWFnZx< zU0B|Q+g3q8Khh)?#>#${{M;sj8e|-V6_klsifBStK$DoSP$lAl*orl(HhfY5MXP+T zQlL;P^My9L_fZZDnEh~ZX*~BWonp=y`|9vx5^7;zCck2-Oh|c20Szm0uHk3dq{Hvn zR5Qvfrs-01r7~ifrZxWTpmtLp^uiT6+F~9=l@j)pXpCwPk*68jJ7RLp`u@Mm*6H#? zVM`aRS)V|K;VSG&OR`9T*Fm&d->FRI$TY{Ba%qFgOf>WIfS}}X4=d%eLK9X7wOTnm zOJa{8O1ge)D!$TaRm4Tl3rmI4I8}rS$s*GrZ(67Z%_0uON)?A9^?4e^#*zaZ^YU<# z+jm*C4Fa-7F7!BObS)yeb3tS_tXa8vIZv#WY9%@YIO$~yAu_*YvRGl1GpGLKG9s2a zQ`#svkOV1b0@53XCI-1K-`YKmc_U)ij&)S^_Ov#X=bGBfJa~F^+={xU^w2Lups^<| z%$bSQzYc3)APoI}vGWL5Id@};c8p%G-_9y0>N`^|NS+sjra>%0C81{ti zsc|WDFxZq=YmNjo)>OGQ9LG7FxP>#4#X_nNQ~E z7OpSwcO7V`4J0E)Up73u_cvUeGaSEP9boSUVHx9%BH2biu5ndd-{C#jcYa>xBcmhx zi*O0s(Y3iX5uY@v|D7x2R*=om(SIj<)13hv1-!W9_OuHAj&V)p=Oh`Xg}J}LsJoWC z{VuP3Hq%FJ_--s>Xi+@CL11)}ISEmmHre?;UuCAGYwOr>qYk_wAnW-FFGAvRD3#h` zz?jQvf5>RFK&~-PAtY9JId|x{G_v$j?dpsemN@x_?8~Qm`n?zZWu}Vp&PM7HSf{kI z8(=UXH=H*+Xx}~tl_)E`XYwbrsccI#ABPwtA@|4W{8~j7!=88Y^Mng?e`I>1RFU?M z=xv-)RVmGkm^TNs`nAKE-@X=yQA=V_J+8eU%54Zh0u_!1{EO3sX2P`%9!R|6ePeZ4 zmE;3`3ClbZ{WmPXGn|E(N;Ix(+#82TqkzK+O1;t~rV2au2U-FNp46>P5*r~;5{W@X zPJ1ahP)RBcKI%e8R+gvo8MBwWvBSgd;hCguZmH2zgS~fVPCpno(x{%AkVPhO*`q_T z?;V-Mt?Sh~6+^5;vqRoDlkf{gT2Q7us)jXhqbaCu(`Z?`NEh`a=p^?WuR;cS2QcHh z(O^BZEGr;kp1)(dp0}fhrypay+`)Qd(GbUJF+b(qfZsg)c8@RV^h%)QRxArVL)7OD z(m81(0Z*@*dLao0dHgnK%!CW|jDZ!{c|lZk+9;SHk^S?x2H)^PhcNov|Flc*JG@Kr z?E4Xi;we!Izpmt$%`^u?pz~d8;4hH3>yHB9J?e4?ZDjJyv;RtE+&QO-ks$jV#aKAz zj;6lYkKi^Q?+)dcnjO_RaP5jYA*)xc&t?n}?V0e@;-76wt8e>Ag=L4?9>!osKrOr* zQ;$OBe>wS+v6$rshij-tVhO_T%lirmiF&L$3bvcWp~cR>9TLs0PNlJpvs+8v+~5 z=zOK*M8{2~J^>-D4WVAaO$q`V+*2O@z86hfclOqL?x({cR-Mur73ap_jB_WE6^Nq9 z0ye)+WsU7PFN6yJKIPEC2@u6wh)R0R47kXkVa>{^>gi+EDW7q<21QjB6S6lDmH zIVXq<4RNN~E*{`m81+~za0LzN2*-!j#wwnD{jO%EFbpD2OmkgTuHSkG?jC1Kz3{8~8 z?-zwqdk6Y71+?csk@S(Q1vAViafhFy#19O5*~enPQK&-3&sG_A(C*Wt>c#RU%&Wy? zW_bt%#EXq3UdG zWgXMi!qyb(6{WC0KzGp3k#cwjHDmsLEpvA;?-H-Jx`yp2ozc2>U2QT~XNpWsb{WjU ziCPRF&iZ{l7(_@uvl~W^Wm}UzK-Pyhy-o_w8t)n5utz%^au02#Of;dd7Q4tYW5y3^ zU^=qHRdMv9#sKE#+?qZomOK1NXyN{DqRY}yLhmGSc7B)Y(Xl?NpKj0->0pFmcIMCW zB`mZ}nWgt#zqUnNE&<*YfpFS7PAK&=mhg;336zFcJ1 zJ&pBbmT*^3*|%Bi9o=~3#^IGb0)46Dh?48Ou}J~7>8IK5T|1&XWSs{~o_{S@2~-~; zw>jBYZtunb&liG-}(LCxRnYz_=%sQ;lA^2oZTUtMq<6 ze6cWCoke@cRI+o~oKZ^KDj+{Cms{46)u_ff4Z1~li^A1<8Bze}NoL=w1__h}aeDem zYHJ4)*Uv@oHmoVjmYE5A@|M>|E2;y~+rBa&Aj$5uSHa?)6((3SxfzKn&2ITIVHC9} zOo7*|Ay|9TE4Aiyd*+FuxicV0Yczrl!l`b)U;^Sl;&Ss5%y}aA&gYWag{>E{9mVR| zy8heUY(c$9_c!DERu{eSsdq<(7TVbs zf#GYa-X|HWk9MlnWG*)utJB32T;cHrEEtGQS49(qA?CV_MS0R9FX}QShu5&ZaV5Id zcE-eP=|^kDJNC4phZk6)j#V%wuXJiprg+@V){bQ_^ zk{E&Uw+7~~C4|OOYu4MP+A}KiHy4DR)Q2xdbf2zDcBW%f=&LO)t1i$f)4_ceNVwp3 zNJ}mzpwS%|a1+*GvAdd9TBu&u6M#3ta67wf>7**vo4OS|XoC5D19q_M$#`w}&F7D*MYNEyX6j`#R6kezisp+o z178>jOczJO`(`le3$FteEJi@{C09gOf+;Gw)jJrM`rywK1c5*BqALuBpH@telRxzh zz6Ksx&_kv6Ewe_4^1ZPSD%YJS5UT8wB zb;%<5Q&+zNxAO#x5!Yo>1Wg1YSNYW%lmDE*zsZ#zZQQ5exzXv(>uDD|17^hGdHSkBb z6wGO1Y^wOuF4a7wqY(>mbWMYpLk)9T>qh(itGo~VnBF~rD|6Ip*be&l?K*7(FSvBQ z$H68KxOPp+^uO(<^hi5hSin=>?T^pGMM6`n9%3kSa9hWiWsepzQGZmO-7 z<&tS2N}lmIIFXpM+`I z=F^R?!c3-~@xoJX@Scow2`HZF^an~sXeaRck`bRBtM&gr2+$lFVdD(}dVi45MgX|F&n_jD^mw+s{_Y}eoH_g^ggavSIk24=U0qE zq_|5Z}E=M2@@$C7W66Jx^i|C91+tTb9_WU( zzP>-r?%DvQa-u*WI3Bu+qt<{35R$|DDJ?#7zXCmPr$h%wP4-PWIvlUpzrc4P&&)s? zLx?3Thx$B0{6b9fX*f_ERRT2(BRrycmY(u23m( z=kY5Qq}?Edn*P2FEV^=J~NewA%Vam zVRit```J`UEP0=>|43k)&FiDpMsehy4fKWvybV!vlUhdk7kZ;xgG|rNH88VIe`Il# zK5+!^207vMr&a#=Qt8}c=G-yk8L0!MMElcElX#E^;@VCA7*oT{>*wsJ4RxW=TRY5n zp-@!$8D{6tfkV#WEU>9#KdH=w7(c$pHJ1dc*s1m+8J*%tmOlC;h_e1oOH=1ctq_GT z#A{89*pJQBtrYm?v6l+ zeUGg+cW9+(i#a@Qy)7f!U#?JT(=&;xov@YO(3Iq}kTIjJ7;Dp-6f|(1j(BOe7}SqY zhIK)|zp+xrMl87S(#)6~+QAEshc%JXuuOMV-6ENhVkM#+s*ZL7$@%Zgr{PJvmhuoP z%?EiagsDL24K?$snK2-n1czTI-y49H(V9(8+><68=Vjj9HGlYJ&uNp09ho&8>zb?p z+cg*XHQTQ-Cvur4ZAdI@(4lL=(`IWCQB6M%nmfWLnz+uP*Ce>tZV@JvurjGkz)+>{ zv6hs^R?r|_N|(fF1Z!dJy{f;BDZsuF;zew0~x z`+R3|+j!S)(?i{LT7l5D0)utNlOf_+5MHcqKT}~!t*9rGoAhhHfGgZ-BcDT#04d)I zX3dxnyzAQ7jG+*L=qB0GQ=2h1>p*nXlOc1KixVJ1QN^5>v?DEb7_&l1_iw>eN8 zjdq>}CiiBPhKNk|q&VWgd{Nt`Yfb-Nl~3=1GUCWZbIIvAx}?zLEnsnZl1Q~B&3G^D z7-1MwrZ~!(5&hU=&0shtJ1A$1U2jvQkJ~Ke-dKN6v5Qmf#Cp2F_yNdd+6aJa*%Mb@ z4T0ks*}bB5VxeHxjR`mS9HSOz{iENZ77i^pmO}uC+`9@VESyDAb26D}h+KS!U!oJs zt2HU8^>V;HQHwM4Q_jS_0jb2HhzFa`L@IH_ZWIKinW!Wg3}I+Co*y>baj>OPXAG&$ z(UPl(cM2ig`M<_U6u!ulDq_*8R;|lOp6=(Wfp#`M>R& zxRZ1RjCHb&`Qe^>>F(uU&)nrUOu$rvuQWEl`EuI+P=4(eEQazk8Rck}~rE#rl?BcPC$H94aBY;%0Salc-PTl+$J_-}-C6WI-xY z%~qDav&8AYLT9tmS49pPWo-(tv1AvhH!4eQ60^%nPZG0>N+W0lbU=L60-_*38UYX} zMZq(<$W^h-%95+_IsI4SY)ug?O_cc&>zkuYN6tbSqy{MP{w$@VA)cRCNgQN%;V3k- zvP3KNVs}9)bdc4Nwh#d=&3vb@pisL0o&X_|)seR-QsJO!)LgJG=cSO|@TAB@LOU8M zK%e>ok`zteO{I4UrrTT5?9?V4P5FaJE3O$|*yuUW%34%tR-xSw|ChYgo|DaZcYL`O z)?~)mf*2Sxq+qK(|1?G}ZI$ZDj2+{iNOyC*nVCHgF7?xtWT*Bu`PT!u^gLVL@e}SspDJy>5-|Pv zqCDE*c#%lruys}^mgd}>wB<4lb4PM(Ex?Zn=^)3+VTjVgUHdVJ?KE&5+STE&6qnWa!~(y zeG06nN^Azp5!^%?N^EnvQbXjEL2uW79aK&fyKLwSMnI;X+PeDob&B3tI?g zp4G;b&~VdT3AK%UqVBTPS<`3dmu97a&$$+A=}3LSa7t_i?8gUICN1RjkQ>n_0F2>-$7oiZ~MiVM_Gh%n27Ke zu@?w=fUOY5nz@DHJ}w$v|49-bN!LNgml7mB zY9d?b=gQ4Uo+i8N>9+e|gfo)Ovz26XQg3p#W*1-5oQ8~}1*j(O5TGvtw}_X^&nz3x zw2chP$*bQ_$HyHXqF}P8@BZZBgEQ$>$r%a;(DG7dT5M5QDY*leKj^}wgFUD1cN)Nh zvBI1yq+CasHgxLKHQ&CgkJng#mG8qpa2;3FQ&RefLNZ+st&BrdYNLK`X8)wNq#`L` zpihVbiYw(NYqOdj7gc5kHmx#7YF%_f7)fcD4C0o!yujMB9q)f^UsCg*M;(-^1^>LK ztl(#iG;y49x8yd9Rm0J`o(LI=nE#@8US!a~iy zkBltZJo!Oqcx{FbWu(5jpzNpU;Rb?ux>lkj3Wy-cel&MOE&VPHR8!39yMF zPdtAG!K8b=b+FQb$DSfY_B&BoZ1dBQ4rqjC{D4+oXpfvFbu!pnh4QNBP`8uSu~k%Z z+;&xw&-@b^aWf1CW_MmzE}16Wn5P3@f6T8firYW1RI4P2aDSJ5ZfT||aF{rHf94-O zhywZ8(oMpMuP*wU%!+ks{TPJalZjLMV!2I>mE3ey97=B?{nzuP%VF+My<87I3{flM=bJtuSJg5$f>vvV(_*?|KJVKn z<<=g}Ta@p%bu%^{c;<03D)>uLot_rbDgT#b)fx-|{M@K*v_z?~iiiJ(YznU=$OPR@ zo8FUGgY9><*l)s$5Zf<|K`?{QLlb4bPgE1T_U%G8lp$Ns8f-l4r&AdtJC8myGSLFR zOHD6z(jUf5FG1`#YMV2Sdt@^CMt`b1aLlZ-U>*qrvt)3WFrTrEUl+CF7zTa$PZ}|I z@QI3nC%$S~itCahL2ycs$;&3+5*8UJS-g;Y#|O35x6nN&^AB-S+at*rYU$jRamvj8 zoc2o0;&UM{K65)d*9r*k*(W|)xBizSVwSN@O7|?gRf_s&!eab zIX4|fTOvGE-(;Udnm5jQ(jVmYcq}mMZ-hDlP7_%3I`$jAkWn~u%a@bC-c7aAuR~U% z%S(?S9yS|=ipR{Q;5v&o+$paN_IY{T-(8z!e^C!$>~eyGr;Blac!X4F1J$`O1*Vs& zII$VSkFk0dloCD*eB%^ulq$-Y?g$*4y3Xz#Dyx?mmhBry97P5K30QC*JCo4qTt6=X z^V&RUn@x`0BMTl&Ki4y56g2jAd;MB^2Fm@-7AcbN#UYrdETm)QYdG#z5jKjfCJSeH z)(CvaRai@I&X|T2vJQ58n<SbIJLMlw z=fsM+LCp%{k0sJ-kG01A%hH#H%-?`x`BrE8c5SW4cXPYUC&j%Hqf4y@5} zs1_!t1pjDH@3)L>W_bAUWhu_gAbRKc&`Oe4sadH#W7=qB{U^HoeqCA%PWLW-53H{z z?9tqYn7@HDCVH9?BYWvi9QTAp(FMYXfL1beAu8M`{0n%*1@hxyV=C+qUoef1F&oAT z(PLT{&!UrY;0>++9_1>p&%#9l!LDia#2NFor6_azk?^ayEXR7G8^j@d%5|BHPx{}{ zeKvC`ZN9w*$)$d7LW8%s(mq1}(>wFNA#23k`rujc8!d{1K$DQNR0`sCFL%YST#TN& zwiSa~cJ^CWv1XwS+pDxpf^UTz@EPU@=JD%oX!1xUj>S5}GEyk<^4HFsfNYAhF}5(J z)2akEiQm1A`Le#JltWRtaf8>NibVL9EHuuWF_ocs3%FoDZB(t2@&oZQE;H03)?{^% zrap}9R~=ciYF&n!%Z~;*IO;B;_T@P0vfxw1A9s&_Bm@t?W}Q`U3FtpC7T&ZcH88yc^#fRNnQ}kc<-r_BK@32G69V|1s&_*X|9=-R)u=?0V$~#Sd zbALGIYNVO>GD`5CQ=&60=B!57%{TQg7%jgyGRGbd`_FTKUr7^S@s{esXb`*p^B|FF z2epec;?J@eeb>O1wMkq96Jw0ayN%wm)K;~`K_9`RacA;)n%r^RI<8|)kd~{w5tgAk zU)MG7NnvpDzMEzV(d-2DlN>(&=SA)y4r8Mdjn(v>WZ{j&CFyy@S0Zh{Ktg2E55~n-ea#C^1EMue8$P{Y!$2<@y!Ar z;8+AOd#X&n9mug6g)scaG|@+rX^le?d<)-;ty?TYb@1vd(bN4QPtu}Os z*~YNs!ECQAu||PT&wmQ9)n-paX=%Vt;kFDaFKf2wB4%0x&|8$!HotLtR@4u@v^har zZ}EFnP}{@KfAM>LoD+1tk#(X1ls>-D>StGF;he4l>YH!F>vqPsW)=kYj7>svbA)wQ z;=wNmy&vIbJW(EvOE>b~;`f=2-)xI(^XN{S5j@sPA5ARC`=NWi*LgFU$m5jb(}lZO z@*OT(?Nfja5%3D`n>N314ge3*gUwBr3`utP;*=^mkUoJ_JX_pG4Ty zlep_o^ARUmnA91t+!X6~@Q92p(|udsZTnpJ%u9%pKsh%)pwv`vobF^JODnnbdNUPV z&>FiKbjTjm6`!Y~rN%9*%-9sdH9%CI0xOv!`k2m!R~HIVBzJfuZ9k5*^qG z_fJ3=`knK&QX6u;f%@%?uk)8SQB#=@eIfMy23`kGs*0lJhj<$;pRT;CiCJNdcDQwN z#6T{Dh0i~zKTqb=7LYUiz`ND6mwu?V#Y9+-G_FHaDYZR8RrWCGH@ItcDdId&0EOfJmi8>ZqE;StWOS7 zZ1`rrg3U&JhH*&RqX^AYH&THRuF;y+nkBfoXH?PtCDW@J0@L9moTFE>z_k1a*ZL00 z6#~Qe?62eF*H!rACHeMVYjxkwBIo~i=hwp4Y-IzcArM0bnwVXbHPdg=r%UkP*RBk) z$uBNPSmoc5HbfwQKefbKFjNogQ^9lgWxQ;!!LU`GPc(TxDr378dS}$#Z!&kl@iPyX zfM$v2{fv^|3rPiQG84*PxtO5@UWqKWnaN=b<(@pwXpm*6D&AH_Oc33kW}}jb&8mgb zm*P&>dVp1pnC@GI@^rjsQNrQWB=3CeuUw9reDWH$nsRb`DSfw)%gjsfkV`$!_OCIx z7YbiIhp!b5a%aiE#)w^;=St8CuzNPl435%#3dA9D1p z_&FryS&=tn>3KbEgd(u`8=ZT>_RxaZZw}hbxdiz8y;j$QB*87U=S(3+!9kn*_Lbdr z8HxaiNg?R?$qcKvAOh5@3A`hXB`wF1x(~v(wJGTQr4PA_Pm3Q zAVHV3l0I>g@3c^-^O@3-XkkR@ue-xy_DZtI%1dpFLUtg-t|gq=R{_qnz2E)ca?{h& znu>t3pp{Z7gds3$*-r(+iKwXs)ZRcuILp=*O$X1a#AQ&H5RUAe~VCpMLVRNjGYuEX?V6ZROplt_niiB8ka z*mu=38JwY?X=zU4Vi}CTY!JS_1FM?-DP{pk7N7=EPb`{&-9f59%+m+_E~_MYwWZ$J zJo8864d#j#y=#C=GVi<~Uqbb1`CUn{8=?wao7KYaUE|#JjPz#0AkmL1+u<6bUM=2> zRRdW^1JQ2{jsL~gT}MS3{%fO`mX_`kk?w8*>F$g0qFrG29WNS4(T4GyA_6# zP+%w-`V7Cl&%5@!&-sI!dF~n3EQVpR7We0SUFDWKSBM|x*|l@M!G}FF%p7?jaPN+n zD03;Vm$Vq?Rb4BN!RWSs=OJ*1Mu5(k%iLG^_CZ#q`7M%*Z|A2|CuLFxhjW&$p=_!N zLtZvcgI&v#NVCH)2|rvH;6Vj?t2C5V#HtLGMI*A$2V|w>>8RLKf6Vhrb;x~H!Sq?* zB{`OS%NKTip?r28wNogKvJkg0p-pbcA}4zzZkI@pn!b@VT~vUqju^FjcJ#S1;>@)q zR^xZv!n9WiY0ls2J-p99n15FlyyGtX;?r+p6%gr#n=fAa5Y)_P-Wvppu(#xB{HQE#bQ=DP70AbRk4eFur>Oj!ykc|?D+8NqoCDuJQINsTRZFX6RfgE25hi)kNgVF zW}9=fR!s!@w8({3Cy$sgK#}=opglV;xI<39N-H9s>*Fg^U)}A0R10k09cxMN<+{DP zGxOd@x18X`i@$7bqIt1W(x!h@y~q8p(9)eie*WFpj2G;E{srHgPd}P&GYc&xC|R`_ z4ZT?=r`_<77_SEbQ z{1UYKXv6GittKeWm}Yb~-~1?7-yH+%>>C-2MM^9kYo&-PWbt4pTpctt#{YJ}P7tNB zQ^grRhWr@|YxQr-!94%VIzeD+WM!lQKKuLAEA&BjnKV)Vd^dQ@eL#2xc}+M%1$^hn zGG(Cj{J1R>U%NB_y9g*54Jv0N4bxRsyE0g}iE}eFsR&T`< zZavp>frS~xUNWqS=x1lIqK?s)jF|t{Ep#egOOLcTXi}}11dkO~O-j(8Nt%(#&5>Uo zD+qyn{TsASzW)fr{G7vesq9GN(gH#bRFur)2FqR_jGBEl697{D?PJHMtJUUzpYQi+ z6^OA9=Gb->fl+DIsP)N z0Ua@F7K`?@2!!xCSxCBUFD>5Gx?NhV{ps{T16wgRUW!;%;^tR5Rb4*X6H`mL4*Eo38=r~Bvh#~c`pZB3b?O55=&RUT2c6fk6LZyDwTKF=!Nce+X`il=GP{pn%yfB3FF&L`=crc z^SR>r_PoEMO|bU&>M3HGUCVnw{YMdtl7;tFWWOEP?d{!iytP?1IZr4QbTS5^LdFUK zA_C$T)!M*(vtLteW?iEGZ{9o_n-bAzb5~yvJVY9Sluu5DiJSe^?}_vCbLKUx+Y#cv z0YSBa#gF{_&sz>5Gv?_>wW-ej4aEsTqKS2L@uXnhYUPsGw80m>l&*PGC$&-k2_w)e zp#|<57Ej z(!gG-kP;>oD}W9({~U?=*Qq7+U@jk#B?mGxREW!;g?WVato{wlx^X#jY0SXbd1~ruRH7% z46P!!!0nDaZHE3Kx4`cXJ&lKEk#FF1N1T3xw(@l2BF3}Ddwuyr*x_!V4FE3$W7{|E z#5zbAZVuYO4f*eBep=Wq1@H_p>WUvGJqRCw-jV~ToxSi7m?8y$bLRoU|3qhdhY6Dd zNn<_`Z%6ed@&w)r!1+Pa*bmg(Q{g?m@Hi+p?*kv4z51>;jLz;(5N5;ixYV~{d8ZEB z2KAsl2yLHy>KOw@Z)xGT-IwPm8#mVliNN4GfP7c%e*d^^xULy=@;E;%ZL@n%eTNOv z4E>*@|9R+-h+qfk2LA&JJQ4JW`oO>4^XYLE?hftY49UjBS+97ka%wnDE(6h zxo>znA6{5G?>oGAeSS=SB-;y6T8K-p3q>tTtwRthTnWMeLx(7aCfWz#z>Of>D0IVq zjDAGh+kMPDQUpPS+bMln6z)h@e8(v6cAdDLIj49q4M<0C8P7Vd6!_E$ItNhXAxR;E z0W5Poq(#O>kcG$<`%pj_eY_Bd@GG8#a3W9&lz3YJP7PT;u}k4yu}M39;g@mx4)%Qe zW8WTcLnDtTT~!3*SG}gTl;80wsiG zo6RrH16N|$Pa2UAfCQ6)0Ayhn6L3N35?=@n{3QgDHZcV!gq46co`o=O3x{ru!}(yl zpxS2^BXBm@0;m?rVhk<@y9BvE+xP*04VwVDBOxLrIH8CL3B2y`(;R3kUkDZa2(*C| z!fZ3RboL9hffgdXef4Q$3?2*(B=4cSLxNm|N&kS$LGk&!@qs%62sR>a0wBKQh0tM0 z_rhghh;#|mhgaL0p@moo#~%+<$D?Bd+aFBcFEvPl&`*V#NdRcHSpo6z%}c<9|SdvqE}MAA#7@ z+P)sEJ5$&kB2FSC^7Nz+u)I@*<&i&9+>t>5w8!|>6)7-MEg*?7@a*DpE!bd3x%oIkKlWR2fNWZ1YadfI7D|f_-1I`Pxb(IAl`NQ zrD3q_czZLqJ=Oym=6KM00kHgkSH;GE zFCVmw?h5E1v=Yvn9g1qZvVwvn*iTSlG3)1z{aZw6r!fsHR}Z9gR}E(`YFSJv7~g5P z1Wxgf;u$<>z_=h~pL}merNQ7RxV&f%?-oF|tF{r8H*_KPeM30J3KH!=Ja83~dVtXz z4zhtZ2A`aqcF{T9po$!fO&z-s4~mb9N(Dofq&I>Stm{ul5h)k=;a7YLoweCxa0%EL zMGx|w3Pcok4LXNvLu{ZP5HuL-wla)(`(?(j9+ul)CdeF=&&GtCACXw{lsEuzWc+Gn z`S_GOF#eP~;Q8Vyoxt$v=9$S;W&sy+<1Oj#<f|Yfn76(kLno9xHy`UG!9{CXYf;X;AX6Vo<5X_{Gx(|I50u-(y%r94xG-S~X}ky0ZTIk=fz?NIgi?LDh0^gnFu)Z-dC#Ores2#$ z^LXwx`=o8|KEk+z&M%3p=uW?$u|p8gvhnn^5=V%ff{@{hsZYQZ93Lvp_do=ns+I(h z9>J#@y@10V$FgrvQQa*~#NtLz(9w14R4(wa9r!4^>wkA#&=XB`fUR*;m@}IPiP7`X z8B*3~#uYhu$?WDaYrwpa-87-Rmg7~Q;v?czmcr#R%f)=;Gh3oT={0Mo(f(7}P~<>` z*?hOSDyL~!c}e8JgxP$r_)pHo^GhXOA-?+q`dr0OA=Qh=y_914VQKo!H)zcP0=WRE zYMU~<77*rw%1PQJ z^j$+MD*v*N5!D+@jE|hK>FsnRR67i4N2Q^WP|#}4w+ZJaLhxLVzWA`PFd?)=vL>}@ z%swJCPBJeYn5_&usvF*Wf+ig;_d3mKHW}0KHPmmUO_JZ`v=Z}k`pm-?pNlblH=Q<- zDMQyJYSNfK=;KHIM&@M?PK{C>W^&!^bVU=oYkV5dZH7Fz5kV-itJ zgW>fmj;y#@NsP4kQb~-gm@$dN_=^zzfytKyh1o88nmF5oFfZz4Xjl{GNCVmd>Z>ub z;*>AdMqh*&joauiUm7>lyU8~I0Wzxz#SSv7F}4$7URcS^*s~Q%i=0YjjK)3mIWarY zXv&J7J7L5MgeG6mlU$9yObVT(Z#ALY)}z-X!BV+X#CFF@1kXrjJ9uLe zXM(e1yDlZzJAaB%&Ms%OcBqOGA0-_-S;eP9pzFo^_oC?ndog zjUjeQLGY*y=*%G{#RW=4i)_;6NL4!(+B6F2tH8{(}nBD6Rp24!y43fVkmYrYoKQK(pEt<6j0&q1+5AOPB3PPl^nhfCGSN^s!3!wXtuln;4br;o;K7Hv)yNBjiwX+Ij{Z! zo*_H`rEH0m8Os!@H%>z#o6ET4;^?w5f69bnb)9G?{vO|e!FocDyEdtu{$c}%0Ur@I zfL||B*^pTgrE?ms*w#OOG?AsupG!GDoP1y=M5nQv?6|F>^VT}NzM5hRKg*+&K|rsp zlnonWe1~>zqSLW=y!hEywIXvQePf9inh{rn$>G=K6qBWVVwV_QbV?{q` zXtZDFd|;Ba;@=b~*B)W(VUac`r{mWD2h9EWiYcDg!sqXtR>^VofuBxA-I}<_o+~$E zv^34xah5OHbkl6T<-e2%T^u#*WO7D8K@3|;DtAtOVSQI6A;>~c#Aw-!OYfh1%O62K zjDc}0>Va~$Y#Dw>dc@%(A?1|qKTBC9%0wpX41UdjyTw0bH`!m4YrH+P7s&(aw|Eke z*eN1Q@H);!VwE$=?}EhA1TF}iMRq3ruxH*Ol!xbkD-T#vrS%sMYx{cY$zd<-*p=UJ zsKdxARG2ZViwDRo(P?NwOy7ch1aLRw^zF=b9hq%r%E5g&4pDq*>OPM9+}dESBqs4M zi8~ENk-23~uSed^9Qy(53W*;*_^DJ2D#%7l6(($Z*5< zC`$Vsg*b6!UXsX|4(pfXG=&>1PRE^H7I+C9bxSdrQpOE(IxPR|Nba*8clz~eg)Bwn zTBRYley7b~dBiWNlH)WwI~&7RgJZ~OnE+hELg3(NX{y+78SyV#?KyI*k}* zyz{a(@fq9q4kv{6tOKoKA+rP6z9-vMd<-~VEflwZ6u?Xd%mA>LiSz|1E?Xx=m z*Td9b%SYRf#w0SqPlNR9#2`8b11+ToX;T4R@_&%WK;`UMM9UodQU>?GZX#8MO%DqN z_K43dx=vC!02Qs8oq|*Fw-0|>&$Y$V&h`^h7*TR^VogW%IJRcozZ7BLuXnq>GKRb| zy;YiJHXN;U6ITyvbKO!x|FdFlUYq|PXP4 zR!bSf`3d7ftI}I8KE@5~2XTN%_TVaV00|C}IQ_MQxJyY=|D;o`av9~Vrl##+?64#n zXFYmjyxZI_(PB*IaY=&^dS2`O^!yK8)Sp>nxu|5_zm(_9E((dgOHGvpMyqV?gM%$(MN%_RKmC6 z7!yC~!Dxzy<~&xknHhYyht z_9yufbD}f&azI?`tLiXN#3!#8j5ho3m)#`w=$_9*c{zMr^(^()7j;5YX4XvEKIjD~ zs-jJ5oVZr>S{<5ml8Bi9no}W=`?&E-C-nFF8e-`#D?y&<0%{R!aIG)>rjQMfq3D;B zb4u00e%eeo$Bh&7j>!g}{vWqp|Ajojyp8>nQqXVuVq+g(|BMRFylQEt$d-aOJL^2h zaN4K45Q-3}F%JIGkzeG2EwwYS9Mz_UT6s(`IxW5RO{vmNfV%r*yhS(-fxhyw zeFFtS_s5pKO`U!W0Ye?$n7?@b!m2oNoCXJP_=%dxsBV_@c9+vA94CMI-?qE2EBv(V zo$lGxpNXAv*oRx~Z(N8SX2h%qk8#Tpbssge@9isC)t5uXrM?9^egtiItQUB>;uZi} z*)MBP{4wk_`AF8~vUab!668i($#3vY*kBNRQ#PLC#O6xmGrH#FfzyZYVCs-7=5IS6 zI;7p0qE2p&*+u_F=d~uE@LgCmCFfb~_go~@Fp^nO((nVj%_55IWPfW3eE7_Ns^MsT zxuk8-4KaRd161O&X$l|%^3CL0Md9K*Y z!HLUmZGHFn`&Vr?&-F>SZ?-9mzpTIo;J1dGXS4r!0ZwV*HGMp5X608(vD*h8rF5i} zbkFH5_C8LS-}Jnr>hG5NGP>pzXZ`EZ-;E{RC*ZWWRe1nqhbi~W;Ma#YnuvcXNr0pz zx5vb@C-5%{pbn-ZHjxiz*#13ssHp~L83bBg18Sb46?*D#0%--;7ZYnrRZymiAZys2 z5CLoZZyjqE>H_e*kPTS*97&VZE! zNPS5pWf?G3*4MVQuq`4!;#O z;fRI>u=Pi0@9kM8feCS&zq+{v`>&Dy{9~J^!HyH>^IslcW8~!sVf+*h)M|=0w1`-_^dh|*~_%fc_HMu7o4K$ z*%zBu7eVd&|JDzyqxZ(s01KveWrn|UCdlxKebfUhb4$s3#a1PL!d8&v zYXThjl%^Y>N+fN%DrEG>CSf8ET>@U=k(z>y+{qQAj#DgE z{e6;7yIwvS#A-nu{5A}@>^ZSl%4fpKa)4$F&}SU zRzW4niMbU4^VuYQRN$*xOCp;D`uW;?UEf9O%d-CO>h%8EFgf zWx|}m?0owd9NaKS6nqxKDm}uy!M4kMyR%k&M=aINXg`2tU9&_dA3?G4ftciX@V2(z z8mPB|2Xpl$aC3%Ibe8q3O}@br)O?XUSvuE>(gIETD~ln4d=;>C*=`^-mR)_@@X>ed z-9NM6TutA`KU8iG9=Qtq397hM>fb{7#34*IDO&c16=6KC3m^nsBc(bk3>(bgf9_iE z3!rqWlx-`*ggAOayQmocp75W>J4PV%i8&d`6 zOziYqA5QfKr1V!e8%EcST)o+Wdkawtsh8#?mQXv42<(Yx>Lu4aQsv<)f8_m!Z7TF1 z`-vHThf@&9E!Y%*~F+jw;FN2nu=hcjf0FW@`z8i}DIf2jzsuo~3F!IhGtyj`Cb zDUyR^!saVpEFt$t*Y5>W+9H`FF-Yy7siPIs`(DzjSr1Cm1jp+Fk-r2u_8i}|H_S1J zzYg1EB;AVU_X?>hFIw;dy?^(`zk3PKRIdI*cFj~_MP$5n?K_F=7kg7ivp5bm0|?~d za279(#e+M?hK;_&iCnpzV&B|_h4fffS=3E%FCUZrg<<>Lpmp3K1FE<8oJUu! zO&c4tA^*P@UR6CMrZcl#H-MH>N|pjW*Tb{195=;j^o~*E4`Edn7ZPa;J_Z#!l|5Se z7nfAfDwNGbza)*q5*1!i@#b2iG17nFxC=6?g?d^4?^^5xs#f_@#+lmSc+Sxci)vz* zhyahE^Eb_6y7-3dmnO|1toTOAXv3&RhnOi9yMn6TB4MsO(fze?IuKG#>x}RE2g?=z z?>^RFoWF;&x%0V*rF5A8!Y_?>YO{d-LhGPlMy^cp6D{`sj6$MM0Qtp!z9O?E>1<0jN*HV{E@Zo0fgQKAE;^e?~QN!4GxvgGqabs)bxb^Q!I#c}0qQ zuHc-6^S&Fz$xk>y<@lig&Ur(Ah}W-L=w_^Il_5jUs@i~q4DW>90P>pGf`2HWTdRi5 z1uWZTGNzf%X7v5lPepmLpKb0f1|Ellwh2WF`c8D*6C#ak2Gt_cq@?V(R`}O9n@(D_ zay}&jyxP@vrDY8%&0FKP%^*2XGJUP;ld;69Mf?F!Y}6re{WZYJxy7tJy|TRCrcmo3 zU0ncX`tUa+gEQ^d#^uXZVWz)Y8y0Wr#9x;&mzEgJYf*BO<;ZKlXN5OPWSfv+= zL6ch;^+T#1?P2V<9K?QQ^o7Mtts;rV`ZR%zSITV!m>pL`DrsG5yu}g(shG9|d^b_# z3SNF2)Z!UbW5k634*IIQFXCq&tP!RoWQdxIJ#A$5Kc>T(!l!$g{b%53TjKMB6yo0r zKO%VClZ-3f68gW(QV`Bsum_?t_`z#FQ{a*~Wey_mzshDcu&)&KYS5~TD8=I6w@nuf zWC7lW)N3KSbqON82p8jY=ZamBe+l3cJ1o>ul<}7A4lf=Vvr_SD) zh#ZR_I&(v@sb0z>uIA)ngBPh3{sRYQEODdd8-;&sV6NW`s^{gx9jR}4-u)Er zkQNAy!&;G3R z5jso1(W+~WCUmaVP>TlBTd=sfJ^Wm}i|J}&*U4sG;CZWI(atDuwms7--#Y}ju=HcCEKE+4&Ba@-F3E-(6eNJg?eSi{+UI$C}PIbn@f)fTV|1v zzYBaNW<3lxaLLt9uN}m$19W}|iYrsIk>Tse=V;J6LTF-0yhgtQOS-7|1YG#M) zl66L4mPTnVPg%TV-kzOgMqd>Fd3oaE&@{0^SJ_wGZSxfiS1&W$KGc4Vboi^LSX@Pg z%`UwulF?l)t4c9b2C@m;+^;YBo2rN|+mHiz%&I4zdk7n!bRRM-u>+j3R*Kktf)SC} zyWvfzR`aJVFN8tU-YPW9yFZa|ZtRQ9dM%si%JqivzA*Fc)N)SbsjY7OSiNg*K6NqO zUit^ArHQu?r|R($4AK6{7BUky_?>uW*{CgBiK8#Cwc)}dH zPFUXc?Q^&rZKEz^&HaGczz2gCE#*c6MLN;PNl(15+G1RRZ|zn%zRo0kKD4UmIZzTc zu3G#fz&PZ=A>sS3j^BRh-C|@32S__AI7z^*$Z)K2^8av-CGc7l`~S;1zUH_ER9gCw zwrqXJ*vaLZHE|zP7pK|}+YFV>kvMo;AtY~r4*a3y(nzbL{ne@JA;Gkv+m~u1qeg1) zaOkCCH>*?fPDJa%_Q?HfGop6PJ5Glxq~YpEKUMnz=b_`JbO;OJ%<9>k`7kts^l%g|%PcFY%z6PHAc~E<2MeYRdW4nbeT|NN&dhBll|vo6IA` zMsvI0#T<%D-N%{_bp#rf8E;9n!QCF)3KCJ)Mnp(hu}N*8mo6$OjLc0*tdNKNjvP}+ z;v@Dy8RV~fFV4_sqpR$gv@45iJHrc~1p_ZWB!@7s9KJGobbGn__aku8A>Gn0{Y7y| ztMVcO2|KtZIWsL+m;o7{JJJtQ-~26Npk4Cvu4g$9y^g5RP?D*F_A3YJm{lxcyX}rx zV?{`GST?8W{^UOvhw^HX2&qhi?vozG099Te$4TEte_sFn@uaYCAa|6W+|whdIQa% z1qzUJD%`tad&dcDHTK^?0+w1sy7x?_H?B_cmv5y}rGJ|~N}qwRY&LGCPfs6Y-X7aKc33UNBl?{wqz6TM5`Kl~l6XYAQ-lD>k6%wMdI7sTVb})6Bg&m7f^ZDM zH=vI^58QA7l!q!k1b2e*cc0~6#_xSpHy|l7)TeN<{B_$+3A<7B4ozHJzCE%mT9Ix> z`8ndp@IB5$*pFa)2mv-!du1T1ePaMQH%6^xCt+u-2e+RfqD`b3v=o|X6~rMj2p55! zf;6Ay{eZuMjesw|v$e%RYmhz62xP&ZI(xG&E-=K2sE2lgJ~ z5H@9fhYZ7}$itP2s>h_Yq()aHH-)ln%fMc2lf%sreGDED%n!*PSlRXf=>FXV&+EW( zzRA!iio{P>e6(nJQ{)eFU7vWj&@Pz}N9NcRWWBfKiJ`+3j1OAOLI(6f}CJ%OuH`43S~uQq_d8|9i$ z*HQy;W7tRa#TRt+N{)P6DC!Q>&$umrqQAd_;Ad{eZ#3cMb>G42L_LC;p3i0LH@55c-r!jaN*v< zj~}9=+`>PywFuNWZT9U-6s|iH3e&vI%@ZWebBxw(Qt!SJzV*Xq$3Kl-oFYGsZJ7wn zooQ)2^Zn$@w~i(?VEFLffOd=QhyxOB(L{Fh`_{Eo8pHJl;*NMHQE+YrZdl*2_O_i3zB&r!GAT%_pT{fP(ND-|!GJ zV^s#>HD>Ta5t}}|2-V@pje)r92>e7h%#rP{0M6Bt|J+7@dhjlE>H6;pR-W|tS>Zgx z>$|xHse3`G?#0&i+Vg|jtK6$5s-SE4i-8b&`LD+DEJjwOn?0LUV99zRrU|`>} zsqT}r=JX*O$}Qgb|FIrDy)^y{Fq&tnnr3p*syJ?MCDeQml2|1RVSZ}j@n-hFbH zkos{b7gQRY@uW5+e~_Pk{r6%l5w3PCGRG)2M{AD&8@I#=u(9eu{&a1HxDHH3fQ}<< zP|x!R!fo#Go_=^0w3hcl3{C~=!F(Wfd2H?5u(~-3>ludsH{#$0gy^J^A2SXBWyrhFhzTipa1NZf}m7{to6{&OF~CQKvpzb_rhrfJOH zT0S?T{>!lMamI;>jwVWxj-HO`>B)s(^J1RC(e48{Uqhy=Zy}5n%Y?{`y;|eZmI>SbJk%*H4O2|=yYjTB zOjfulD)8;aJlS8eCY|X;sE|w*svG|Ci+OfOhY#ub3t^Mbk4c*proZ+zqJAT}2!mpy zeIxSnflYB;EmNil0Py`H=p>(sSkP0qA#f*F?WAz+nQS@qW=c_1bX## z&RQk5Ot51gX?M=MCBD3}4s60GWKyCxjYaL>RRY9*gTYE-oA4x#Y{NzRgG|FkhJ#$g z1o;NXccOSBTmHMKuO!b$m6g)Q*~{oLC)ugKaO4QpDX2;kbb)F%=`tuvym_*HAo1v7DW7w}Gdp=5^y!{)T zaSwcIh;p?cX#sMOs|;(k+85Zt3y1ontcMGuLYI_7dbRq=hu))ThnJ)Bhq$8*mkPU{ zm#=q8FYR~VUy|;ITpH|JT?*~8AN~Ok&#!@p7sOM6D&I<^OD@6kZW-JPcRk?>cbzGn zjq2R0ZuwtT-TFCNCkB5G*XC6hTC0T1PlP}H%Q*}_?3j<551dzA@U7Y~IFYZ?Ao$~X z|MLel<< z#H5slDt)n5BgA>8k~T+L@Jh*AEs0Ip*eA2pDeJg2@I*kpakW@|_4UNx^}rL!S+A2{ z4?q;gCyb2Az4MbYFsv)kZ+pEf@QQXP)AK}Smw(jZwj^X1 z_{d&@w0oZEDSiJCRx0tPr{}xuHR1ik8P+a4dur|IY<{kC$ANa29v{~G5e|xmS9^9& z-t8-nzLoKlM$O&(6^^pWB{mn;HbyN)rU_ZRvp1i!YK&|mUG}ah^xmeF*ccNO+3wC2 zRf9NaCgzLm8HjY>&$0)acNLS3XJ>JP0rrF}A$BIkG@+E2DO0;NUC@LBw9ZYJa&`GM zgZTXtNgpG>iRkxVpN+-dG^?d8CJ>Kb}+2PVFD|3lAZpePu^sB+DZJyIuj1BV3v%DFV-TqRgFLbmt7hv0; zRY;~fh;^Ydpxti%*M2>|X&p5vfHmaa@OF1JEotHeTyhz~UWrk;cDMlfE7UP3`;p9X zbjfm9AXCM3ADtpBD(9jzLA;5gaU{~Q#CXIp&WmMn6o#4|Y1*GYg2+n{ z1Ia;>sbpH}%2B7kJiCioH}VtYxPZS$aox(24BA6%B@;SAd2^}mPhl9KWAe;1H?>wx ze^WZvH!vFGL*`Iz!aMWve5hHs?f1#I6#XY7vmWLJ=A#ackr5O=3Y-J4rRP&m#%4cR z3{rUTlQ_ughP;_mOYREk!LErXFvMz45uRC~LpPr|EZO`}ERCgrYRq!u0T@+>?UMWm zA=JzMmO86PF;R*{L_C3WbE9i)BD0#k={PzSwxl?=;t9W*3eWw`k0zIKL{{+1a5QdR zQte^rRpC$W@P}R1baE$c7=f_~8Bt7f50;8G>+d<)i$8Dl#uZVn)p-P`*D}x6^0#+S z3rp{~GDydIFRbZ%@X=o`PXM;;nP*YGco`@In9Lj*)autZS~R7~x({!$pIK5xxCYTa zP!l(fm;sotH@N;R=GLVHxRLvc2reOe*P5>~Ji6!kA~7Kj?HenA?~Ez<0DELmHEo+F z4St?;opY-V-c@M-i}2OVhO030YeZls{(uTz5; z4ycO}At%!s$*#7^G;*&funa~s+~T+%#P_$pM_f|Z)I4gDO<1oqF%%1yb~tkHfeK^6 zbn?B&6<&&$vZPFD_ZeYt^$M%YuE;frvv#G2+3=gJf{ZoL1yu#4w7pmOX!zZ%dH461 zf%;!>3sj~+2PI7eK%C&P4+=$CQV${#LvBi>RVco1Z_dc$rGfM4BNUN{!78CgVB`#PKZ_si}Cr=klG$a9-~#0!wH&rp^eG zSOv+c1v%F9ntyYujQ!VEn6G9MxU zb^J`~lxtAr!nYHTjBq{3HdGNX8SA&Es(^cc*6?~kt3VL=s&-ALs9(;`iD@MK>x$Bp z5mY|7Hmez=3a}f+H+?bq6|QZM-7d*y_5r62vk*(5%uRmyKHr=Nf^#;K6h@%lq*YgJ z70+!YIuM!tPJw4yev*Kb)k#t;dyZYS5<65+gmmj`K}FR|ePwRSWraDt5@Qy}!)NXO z8P2t(HOEYO)ANGlXPcfhv~4X*RJQ^o9ru)6Qzn`1cmQMkSfn5cibxvvd0G}{#&(U2 z_SY6i?*Rf8V%%RfMhXhL!Z-h7z$}MC*%vHu1eG{q@AdW?qnVvoSJW#s%_3rqoaK$R z>uf1$ML)5OZRLs26Mo6DJg=%QDJF%JR8ovx>Neftm?n5h{&{#nCBv?Wct0`TS7h3d zdewG*8wfzeVa&AD($eMOqKc?XGQ4l{YTHVb)73rAti$3!!F0k)o0%utcDDm1Vd+?A z>=x%@8SU=m#?oX4sAvvps7p4NZBeTSt7#5#sY`w<+cHy^>`H%`c$_<<8+x3(f>@+l z%8-9aRw0&Pv!7p{XZe43vHa1vJ(33!|g&9}DuzBNbWH zC56|u@>^z3&+Fuv1(ykC^q?7g!|JcGrbP#8{d{YelJNCn?W7xZx%V#v>MC3gBP5%E zi;b@5?U^@l+OAUi;tH}$KknM7oB&yFw}a%~eX_CHQ)Nye{3xdRN?KvS7kg$ti8kjc z4r5Lv@0Fm{D^JDqHf{AG0@#is=hjJ8bb*4z`yuR`*FQ#Ql@kqKR9thhbfkeIv)>ag%gCI# z7v~X!Fw>3CCj3R*?XA}#1GaB;$2>^B`7IT0N0q*##Gm)4DQZmS^Xf~u1&g$6oBS1q zzG~VmP!~~TdattSq7;FZ>K{K8-%w^-ipanarNyTX4eBU8KC0-YB9bJjyX^+vslN#^ z<`zXhAqpHJ@Xec7O{lxwdFMGO)tXKnIJn!jv*+a8oPHOio&z#9{BbXUJFMo-cI+Wb z#j)&EoTFwq9mkkz8+aP|nH>FV%xw%EMOeNB)m2Pk?!tUqF%Cl`X`YJ;K?lVM$tg=8 z*m`7iHb%|;U|W)LB*a)n(wP^KR+``LD$@NfMn{*wZ1A>bIhsmTD}vMo!udPeO;(p| zOJct4tkYsR8*qxqdDj)ZJDG6p{8T;TaGJ zPiYy`XoBeRj~8s+?dcM=6`CgubPCrl0VCQEh`(nk5*d0uUmc`kDcz<2{BU-@SXI>C zK5`h&aWZRFd60Sc`FwAXs4^qX;Ns)93(NeR=luNMP?@vDa6jza&WQx=>R8{i#*CIb zayW>iR)!(koD5rg#H&yoKxaUZ2=#|cnqQyEnbvw*u})NjB| zhHKe!@(YsCg0QFL3xcXIPstZR>2Xom)>HDuwGL!i)ie9|q7~pdb`3Hu7T?Q9m%c`j zh>3^a^M4?Ay-QvvpnA&HU(Evi?j3T{VhoW;~XLZll#sVuT{&^yj-2PFGLx`AM9{WKmU|` zZY0AW_|8XgJfq$utl}lbQErXR4W=)w?{&KwuEbX#%g+Pp17t4| zC<4H3`&aHH`hbYeGMq+z>ns+?pdGYpCHuFuR!l8g4Ypu=rIqo0!_Y#mG%?kuuE8QM zqPL_e*JAiKQBap>V9oUMQsAc&m>c6h1Z9PfP1t!qhdq#1S`Maf{cmr=@}2`_Hgiql&)ge5X* zJN=7Cjr3GYqW(@y`=T>08dGd{;^e}jj_cc?@cu*-G%C>82gPY0*y>*reilg@GF}LK zul4?tD;u{E-?|-)h`q4g*O()80^%NHbh>D2esV^T%jKo;Z3?&?(#(V3aJQ&&WFLo= zSVLYma~4K)3};Nw`);#L3CMJ97oocii)qlGSfN>4K-+a0nx1#1ieO^&=%yLmv_9{H zsBCPr88jh6<+4jd;_2(=uI^^AZngm?Y}GG9@%vEVh|Cx*_#wGLfY5>z2w^13D;a^B zaXgU-PgtZpf<(YEX3Ej1$8TubWq4;vhPi3H7U@*rZnEqCNC_-ua@ps|pD4=fUA`>bzxw4KdlB(| zV#|6hfiN*=c^3tIWCVblq%Zeuy3k~Ym;c1ojo{0^+7fGwR8Mj0@Yh9EEnQ(2u#c&E zEP4vPNM4Mf@rvlNo~?{0mLUVXeD)vX7%1qs<7E*EUVQwFvPQYwp|pz?$fN(0HpM!~ zDo@~&i&v~#&n2wYqr!3Z%+S}+HKw#Er_WdSW8#N#CCZ!pHXv%^ z?S3(2!C3W5b36&#jM#8IAS%z-uio`)A4B4ou;>ylNK_QR#k%LauzVWyA|>^x zL5&+mzv0l1`sK~xAwX|#j`L&kb_8aH?O~R|bwDDr<6dCnbrr_(ughnge4-57D>zM% zkxsp!vc3>_7zffXno{VBI0DB#i==U4d_qq>emxh$^P$9=b6Eb)vyi>9XyO{k-|VJ4 z0a0`FF>U$1P{#eG#Ev*{vaY2Nm}}*LD9eMq~D}yu}vv$er~GQ z(=6@1MxfVnxnSq))?M+EXJv|ador6qS>UzqwWu zhqoB>9Seczse#~I^wisfVU*Eezsu+0)LOK9w8G6h_YRN@I`-S&=#)M(N4zgcL zdz}D&V3Wi$-u(d?{_zEld4&~Bz|pF(qRknbX@0T4bED`+E$GfU3w?g$U3tqtMaDxY zO)WqIwJg)m%DFT-{+YZ_tfT5oPu!UBe)p`!ktzF7KeTf(!^v6)ziBNrs6zjb-)1&@ zMce^*W|%aA%#}jyb0HNx7vF2gMqcxws=f`oUh)Vw%rvqp!&&!l`&RL4fpwY|6^ri; zwFC3IM2y|~*n&0AwHm{94l^_?^h?t_1A+lx=St(MvL6bK@38C(a2lU$4T?6MTWE-7VcL=^8*`=x%B0?(US7a_9!>+>7h_-}}Dz^X&cR z=M0BBzR)>v*15hPXh5&UZ{H=jogVceYiDI%XLRGl3o1Nw75449g;fW4x1vpV#;fh% z50%E;E{9(ytR{XU!tKaI={3L`h03;5mkM`2yqT#*d8ec^H{GBFTrXhKMQJFB?TsW6 z0F*D8r(K=N++4}VIyBkznr8gNx;53!1>Eha|H%EWpxMsNN0(C?){cNqX84z>p#ov~ zcl0*ZhCJ^JA!PY8Q!vr01IZ{Twd_xFs{NN#`mv>6h$<51WeXNFDg}d+v~L<*3p|He zZvwTDvd6TQY$_Lkix+NuQlB90NBKFX9k!*qf)11HVEPk2`2 zL~-;6jqHWPR9udpaZWQ2D%v0Wx4n5Eny^lrXGW%-V!{t-^^h0A)`#@6PSDumDo|v)GM0VE8O*Vst_Sh z9x!4Tx3l0j=aW%`7z|t2_?%dsE)Q&Wu+Wtb7)#2KbL90Fox@e1bnLn>;z`QmBjm-+ zZHU5^DGUP=Ew7AA=2k4^4+=iz!YeE`Ma%LL;~WSbgr>VnC~SRHXv!{d$|?ApO-<}N zbEQ!I)({UPZ3+LCf8rZ=5&bMa;T`+;e>$SGT324~DTw1=0Dr!)85p@FQ=$S25UQ@zCQazoW(H+x_u8Q%6LEKXx}4xDS$|_52o^hudt)(ELS@X6gL0 zQi#EHg+T2JPilxu!Ug)?^$(OxM`dT6MMtc`=Lc&LrI@9{Hpcy^5w~)w8}1tYJAuqI ze@W|>^2)bd;~U2Bf1!&{CTUxzH={0dZjSu=N!nFO^zBe(-_l^P;_YTp!~weLy{xvi zbJ1;!CipFGx_C%Vw&djx&hS_rjBaN<9QVE?ivw2Wke7$uQQWQl|8vKGpI@}Xw412EO4y}> z?Ac@PM=xsXvjP?&oV&!2w*{<1B;LW!X5G>78FAZVF#HU(<@oKDi;vgj>MJbnh_JL( zC;X!q8BcdkUqjpim<_ziuTH?YgRtL8k3rfA63++^92dTM2XAlAssK!;9q_`(YZvdO z{5epM+6t|JuO;ALeFbAZ=7F`WBKO|5C$RdyyOM%rpt=(1qnELzzf@pNNAQA}w^u>7 z+BthQzFxAI1#A&;x66U|+!wIe`7J{DSH*h~+hrga{ur#SukTcQHT*Jq?+&bvrwH`n zd=X&g{uw=2+Q(G{!iaaD0rkhf?PKOo7reEu@%+k-?~IOR@Y~+pvGp<|w)y|Mls+zg zy|?u%?EG)?%eMHIN511d(Dy+LyID?jf0RS^WiLKr1PcMJq<37s++V?~$`asQVdZ6O z(h1|L4#5h7FEz}~&)(b{@e1q)z_rGn=&oK;-8}wtnR(=j6ae=ND=4keC-lTqR?Bz`E*#{MSXg(JQ>w5Q4|ocStaOKL8lH;$B^0dmy>G{O`+iSInzz zY!5_NN07(o57aQg?{VZxc=eI(A){I?zLDX5N*qovojU<+V^ye^zMT*jx9Zzl+ztoP z2$*HjLm@Q*X90TP41mVo#QP1{ju=@5;rW(+Np^|5Z_%a@ZxNyN6J)Rff!#q3unG}) zzcOAYJ2l47KoCkhAy{Q6c>nkf+#v8A&qM0`>exwNV6ZPgUmmz32JiLX@*e}c5boSC zly*EeUjeZ1pzut8SQ9atMLvKXg7zie0bO8_2ctFcg!GG_1J-9F8~-5)GrSJO_Gef9 z3sPeN^yMM<7tPTprmNI!zOS!<0f;VGgD75=>Qz~_>?L&%K4EZ=azOKjhuyF8!92bM zIADX35ZYB-7*~ClJC^s?lh;>oVPdQF1j0DpIIsf0ac3v+H2+^aXHW8UgxUS2e4%tiFO* zXpj{oUu+n6z)I&;>FORq8=5y9tS-Rb!J{*rVvjTffDBum25P#=N~E@9oD}$6%H4eG3GhNOq7J-#Hvp z|G5sh8*m36r~taGM`wYIZ^E(T09QK3K!(h=aEALMO4zCXekH_P^nuNI9s5)R``m|7 zX=N7s#-5`0@5sk%d&Y*RArVmv+4UQn%2x8#3UO#XXMk7iKv1TN6!(uC`vzP&jdVKvO zY1%Aq*p^^kDh*)SsbBi>mTRvKu8iW&fk8>QX+`P6pZfLrfy~vVY1l)hx2%Xz{?Gq$ z%2wWdi>75DQ~BSgQ`qVLgJi>tW?{pOMmDk?qE#vw{ILptUHd_xAYX~#y7}O9b<*o3 z$8W5_Df@=>KaX*y-V3XgnL+Mk8-iKEuO>mhXVA{FN%-aqggia>fMj6!K8JyEm2NPX z5<$@R@=h7d!?dNIKR&H=?u*;Oe+h)g)&y)YulAC9tKt&mX2tu z9}eZuw$cNIecqltv<&*Z?uok%SiyMNMy5)7I@EtAX>@gMIL;OJfKg9jd7b1Y^NFHx zAbQn2gLxVn{b%bdO{TZ(bv^U#$FoytwQTmIfMHAaGHv1Ir=i1`c+K)79W0@8&2ls= z@{)b854#y38a6JvEBW(qF1kFO?V56)xVyxvfykC2=3sx0@&r$a7VmpW>a z)=l~tasJUsDL#g!u&IGcT4cd*A4D;-5Rv>oAQ1;*#(b0bbkuSgc(%Owcxh&Sv|KiJ z_xLzQJ=}EURaK?3JlvcV_qXt|^*B45h6u972i-fTm-CtWd{1}3i@u?KpWHAAxZKp_ zw+5~6$@mDwQL0 zkE+5Dsb!;GteCpwM!8cimFSq}rD-pzWy4(`iWQq())=?s8!d_zqh0<_%ci>yF>WcI z{_BGI=@cI2g$19M&37$hE>nOT`525u&){_(IYF6I5tXs;-u=^mDag3aePis|&!6vx zN&cW-mQR+H^T8YFllA$w&M$j!6BC_s!%LCDa_%J6IyF7^{yMiXL*Z06UoSHzJv%0y zO0H{~`Rz5N5Kl_Tdbdfcb#Xf6laTpt7sZP4E@jME$_>)MW%3Qp0G=%116jY7ZIL~_ z&-W!Cz(~9yjbTo{;Tgb4zIi!-k>nY)9wOHwefmCMNa{2v-xq5jLAFKW)Hq*A{M1yX zJoc`>P$BlNoA^GKLYPzX@r?MMz3BDNcWa{cW71Ry?&L|*3q{$zs;0j6+DS!t^yd$M zuAHSpbZCnlLvcptlWazT!Sz>I{5EK~o!7E$y8XSQwX_k1bj4b@{7GR!x0g4 zVQ1d1U;~ASsgi^&Iux%zg~w5vm35dkoeioI1s9p;f`zJF8leS1N$BmJsAQZJ^=G-a zHk7HaIQ1(#%jslsLqdk)ly-UPzcc0@$oduK(a8w@9t=^A-R}7j7rkXLs4T~+YKgpa z@TK)z4LfT!cU3WF1o4m2@5$O(VH#Al`h3Qc#!ae}_-#My>+0>AH3@VRN@tH75Aq+h z&W!QPUzsbS?IJCo11Nz#?1|4&kt|^qA5o1r2U?-1y!hTdFT27%b-co3b0r>~FsAPE z$$#M0Ad_U3LP^vA)EATg;8DbLCJ&(e!uvs$J7^xWrpiXR$9c|N6fV^m8doKEFN1F< zQc>~?JLJz$(WJ;L{+(kD7Ju~1-WXSM?!@5J;vz>2nIyU1Y(R-W0BiKzbf4ims}PV= z;}ehntUw+!hL(IYYndojB{R*h*Pq>UT^|>br})dhzeu9gq;7H2eh^m#6vj5phKxO> zmg-D9CcN2XgC;B%w*5cS`8WDXs%?I&nH^2Kaod3T>{u-L+<8^zgI0uVCtmDjMhM;`6Se^#RZ=V|*Z2f*78(_TK2JJCSl)cyBc>YX_pY%Mc ztK77f!DZHdebszQ-7G|BXl0NpTrDI&E9W7Nfh{2nIKL2G;$D@tPu; znm|Q)Tnox=Ss7ZcRwu_^)2As)b7_EUPxWN1G8~Rz*xb$aKBy>BI#)%D#xhC^zPX%x zHUxOL*%}DnR9Z1^-jmaBco&KrW)@YAvuwDPY+ZF@uCO+_TgF`VLrg`=>Ytv#U|uJ! zECLG7Eq!gurn0H{O{vM;MG0rI4hjM8dsc#a4~In;J45`)=pa^DYR%;IBSK#{`lmf7 zF7pENwXN#eT$Pb~YD|KkFb4&Zi2dcyfYYM08~RQsvUP~=wiIgO&59C_#zkk`qX-7O zu09<>h3tLCk4niFppoq}L&{Ctv9DdI4)lHnL?dSAb008L2XkuK4f&0XT_5m@S?VZ^ z=S$$ruQC)eMvNbaQ-c3YZ7By7rkWBKm8ad~Gr)O`I~E3(o3*^J80N1+@nDbwg1qCs zGvQDY(uS#D>889AtRUX;_3$g!SvlA?<66#Fv}Pxetxa#H>2k^TIcCwW@G??YZ=F6- zR7;Za{$MFSRWh0EBq3DNq151%kXvy_w^Jf~Fl9O3Z65x8+nOrRV-_ z3XpQ6y=3WtlWmeUR_DLZv>cX*#hBKC%V#ZE!ZuGq5Uqp%Og56(`?-3$c#jJWb>6BB zV)_b{BQg!9iez=FS&!cGzOIcMG2aihbPj(2s{)$yC6>b>WDanhKr7GZzQH$*vc?@E zkw0cc^&c&{yoV$lN~$HprK>hi8r}g*B+haS3kn<8i%GpRh-Jx{ z5Ke{HDU#m=V==HmI8Gl@%~`@7`O6lKNES9;8yuPMpsCYEHO13hYFK3%xIkd^<1o1v zLG?29>F9qtemor(_L4^PkPcl_Nm7_gd}yQ~$80s}URu*=HLhW+KqiJ~H!xpO27q_N9ER1z*ORRZtJt;IVB&$5GI zfehL32jQy7#q~)ow`V0>V==t3uTmrwQldVrrm{q`xGuTkYX5n^Tq-knvlik?BuV&_ z<+0@DK~FxGT3pwnSthGnU+FBj9UNfCVnFDlhdpv78XQHIkM);nniZv#f2dpx$JPCQ zkoO6W(8IjcS`tfv5hL4c@U;dj(#U_;m|Udgk10GxUtmyK4iei{V2yOvflHs8pZV%L zR_z6UHt*`m(A?naS<-Y3K5Du@IMcjESlFqM+_x%NF(M2&IMb1X+1MWee4beOYl)Vr zuydY1I_mufB>p5uJ4#PX6QV5-{q-LcwYOoT4!WTo!@BfpYHJY%kuG5b$t>o zg7HqZ$W!=#ncg)B5kGh0066zUgC3Z@F6pUdTgNXUPAHTLq4^bkI`$>J`K*WZ)M-5y za#y?1oxBdV$U(mwJ;LOo@{{WsCc&L^^8G!*LQyVTl@hP-vmvLJ1vs4caW`HTafzp` zjSbI!wb7x1EKuLX_8s0T z2Iz@uw4BDf3C-V}z{@}pS7>uxPZq8?K0lmr+ewn}UDDK}$9u0qaU{;}b~mf>b@K$nER={8c(mr?$npYUfs5Jv|0X5YQ> z+n7O~7fB;F(X-{LMdHJtT>KC0Sl^}GvP94@dM#zyOBLSo$TQ1zyWwWD@{z4NR=geEeM-IR3EC-YzY(MedE)$vFXZ=~bQw@#mguynL31DnyxM1X$C|M*MA< zO+)Z9ttQC2R~_Hq-8GA;b%t5A{zT^PzIaZli^+USgR(|rR2d{I=_57?SL@>V_t7T?<~t~qQWxK zTIRTcFkVwa`^@JS$vgW&A5MbdpmTEe0w2OY9Y;;%_(iqo85xx4sry>v&!F}d5%(Fa&GnlP>?_7}N(208zHtGJd?Dt?0=RatKAy;Ibidyc{JR7Tn_HA4g zfMuOrHEN|aXNZy9o5M569>L(2IhKDg*NME&8sG63zKrut6pjotynIwZo0!^WxX#Ol zipk4*@BD_X!f?WT&vOIAf}?96k7-G7N++jpoRD84-Un{kuWs)0J{D4nZu!1<5|U8~ zajN<2kesf#flY9egQ7$HF~z=pBJaHw6Pv`Wh+T_5$Z)$GmqChw*Ht9-c^} zJI*|;G$t+Lz=r*J?yIg|a%F?85JRvp{bq{l=Dx0Iketx7xT>75g@dd}k;)nDCh z2xR{(Q+WQK8ZS;|t7PnRj6yIWawCLBh8bLa4dYpLPFtb>@<~smZ+iwlY0JyDZ3z#h zZ|8;~+3LmuN&K9;`sCx@~gw`wT_Dmg1Yly|arkcfJ1B4jP;X~b*et1EPPapFm4e|#cAW`BBO zMrMD)y1Dj3!AJgtzVR;HuFa@LzoMgjZd=3Vl%DGrN9XPpAlG!yd2lgXy{JEB_kTY5 zuV>CJZTWjjQ_bY>4%lOVnz4&5Qv8{_{L9yc(zqCCdY{8Wxc@QD_z&;a47AS2wGC%%@yAq=lb$J7ijP%;a#=ntAB~F6mkoM>@&^B}YC=b45ogN?b}oXdrEvqLIq$yxfEsA!#FM zs`vo9^dBe%jg)dsHig`PyfhosgmyqFrXZIr?4(*{N}@pML!&MLMOAj>qTEt+WTMOiQc8COSYvX$*zZHhhZ_ghEu zy%D!=33Ot{$2mZua*HByd4g4(QHwUcY&?D9V(xF8N_$E{8;7pc}4qJ-=zQrOzWBA~m1amjR0 zjF-Q=5w>$;)bhE9Xe;Us{ZeH(mG4l7lVrXO?C{7F`8)-{{3}Mrm=)>NMr`DV$ zAfV@{Z4fWHww}HH_2(z&5~m@YT}neeieV=Hi=JGf@~HR_gQV2>79)A+QX{^i!JnO2 zcI@qFZDgO28)qKjS6%PV7@tQLNbu`&aHyA%hv=oGVsa9aoz&`QWFxr9%HdjjB{LSm zl9c6)GWF+E#KYvS;rdav#sM@8*UVq-@RA;lddp?IyD$`~E;BU(a++!>|RZDw52GBuUt zzKRiA7&XOBUG6yhJXr)%prDe<`xY;XAEm_6R`<;)&fvG02dkAFB=YqgSuwW_K zujrkH%BDryV(%k1v@NoEf+SqEr*1{7_3*5-m_Skkz0=duD8_~{lV~>GsFY8s(;YR4 zYK;L*xaoW_YM6 z-6vt{Vilteq_|Wj&3&aA(*)+wsDz84{Ts~+WfBaM$o>%ZGTSUJV+fz&oAuqQ@qt>P ziAOEw&^a)tB5wtay8yoY?`vx8-g%W|)h(7Tmb9WcaO(Nm$JKROtj5SR`YPeIHAzqv zS5R+p&zj=*k#CssTiUE2lae_hQ5xo=oUB;uI!5uA8}uYKRZy_OpqCKc9dWD-e!KRK zk3(-khI#kPsiN)i*TnD@r6kj+Lv}#wl{oh6 zdu376g!)$vR8q`|B+T;rxQn5G#Y(a|?bq+7Do`UhA`4SG_vN`~M{)Gpe&CoVM^!aP zN`b(t^T>%?zSE~vI6N;^Sfw_=X3X`vD5R%5w>YjsyGE}7ix$oJPXo+9jg|VMaz1ge zlfcEnf@6D(a+Q$RoEkl>24pq(&GL%J4$Dyu2NmaFH)4`@jWx>fPE*G?<{lpo2VRey z&tFTK!=?RNQ7M^{=2I?{`|`8rNnowDf& zFX{A>CEF@j?y52?6)UH-&mIPAa*IV=M;4a`b&nm_a6N=0u6+$G671;g_9-i>k$8oh z^oVbzbGCnTP4&MD$u}Ex32)pyC|i@8>nmc%9~;d&vHYRC|HXk&r_%GeYg&b;kK zU5DRXa&<}J1pIhcG#M@Y;GXNlI*c6PZ)Cy*WA!n51->0aFaCnz=JB z(@Ny22!qwt!_<498X9m3&J2gKmZCI|kcJ=U!4iWb;M^oU(*%Gi262rd$xbPj33Iwa zsfJUkkI%^P>E%sne-rmI6sdOKfU*YZexQX~Cc_Avao(hRVs@ZBL4$nS=M_njQQCsl z`w-%Fq&RHJ*Dch+zfQ*kNZP;{L&rZchP!&W$0YrIHL|E0e$OV!TdfKAaP>Ws$CaK| zP@I9-iOK>WrRKBV9h4SFM-U6NRZ29-H|Qx%W6;sZ&C=T|s%{|MaHkJOu5z>aVqZ~_ zt?a{eyuImRi|uu{SLnU=2rC01L(t^Cv2+0Q@*Z2+D}MB8y<9q~0!e|=RYad7AoQeb zwT?ELCypeY<-Z$o$B!<)Pre0`y$bf(ii9syV(e3TPH=wI3PY30$>6 z^q;jwpWJqUSBKwS1wcTXfCU!)73?NZg588R)CV4z!q@+qO%O(W5P&g%ZR@|1S!HH_ zcy(0_X+wD6gV}#=8@SS0wP$}oziNWCA^tZ`K*s)nd{qEI0E7o#m_~b>!JW);IsPNz z9Z_!^Jm_5fUrmBXgNF-+<2L+9qC2wQNBGC`o}%m$RkdD1P5ZcV!c{GZdBE1sJ1Tc3 z82Yh5Z`$fL1n(`x6@#X6rgqFXOy8AH7{p-9{)8*@OrpvfGp!4!hnylPtgXD$Y z$d%%;Ap`?41i$<_S;y6`j`Ho0Cp(kJa@(7QOEq(l)>g|Aerq4)d#Y;i)E}qWEa9xxa>A0&B()BndA4Z}I!u z%~_Y9N3qL)1!5s8s~q4c1{KD@)5n8xXfE(Y@V95iF1Odf8WfAeRBmX5PqG%DrGD z;b}WCM4DGixf|w*Z$c`JN|9UjYRKyG&gH2fj0_Fr=yOw zmBbs-SX=ne1f(BYB2Jb-#^S$LDEMHffz0F%6O0_#!wGldpM>1dfI0sogFBupewggXY9TR?{K9qI93$O?+D-^p$Jk@?;8;|Nf#C?Ycg?hKD5@j(dV zH7wds-|T62fDgRBqwUQ=0D@1LUO_CmJ34#&<5q-1q?Y9b@kb z0uXZI*0ExI=W~pK|A=|_zE>FGG4SL+UI0A=c>X~7G-COGZCHT+`-r7dSw$Q2)i^Jo zb*3YD7U00Ow+Q8~<^})E7EWNdVSE#eC}fS8gW87iNpP^cm`*njlHRa8vO6uzbaexw z@l}IO4_+wn#OgQ;f&oW1%JWjM>k8@kJ0$uA*~k_CaRnqAuH4jH;0k!zOYN^<I8Wn^#9@UUP!p1)uwZ#)IBdrNNfWxSM&Qr}d;YaGn`ne{-*GmPJA!NB7X{ z;gwn2Yj77++%bEV-UiHE-t8scgStxV-F~ZtSaZ(OYSqfNb;gm9q!;#Hc}hDsdn>#* z{Zp&q0CM!KE$N9{VQEG2=7xE-U$V7gcniZ2+wD#N8L?ml%-=^`Ab}JM*y89-+#G^| zh{RKmLF%c}kp84C3lIgAFe%P~)h^cuG24U>!^P zJY2@u3tlDK3+P{zDv({y3$MWx!1_di_l1JjnAd{2_qFie-`TP2T}YDa>fg|9P$$Z;+D$QFU@_P(!V-`&*g?QT`ap2Cg9%HNc;k*k)N2P1|4Qf0eX$0lfjv_~?u0Fdzr zhMG%TO3lAF)f^0k)r&TJ|&h?2`7-Jml_P8*WPAjSJ`;|J7OIXN`{x* zRD7@q8mp{FVJbIBOS`8mFVmm_WMBzpPG)?0*MeUypY`Y_FP`Lb=k?~?a!onmZ5ksq z-47lItMvAG|CY=)Z}=CjdenAI6hcvA_xhADcTg^J`{KKpzs=f0$c!09y|;2%yuU`LEM~^^emb z17C`g{>~yPv&^6_bHjfIksC>y+`{-vY-XH47h)ZfHl>C2my}E~F#nKFXHke%oXqD> z@Kb&`O#7&2FN$^h5uE(Kpb<_ZL4D_6{FEL%a(_W^_oy7pddP_Ii{Aczx_d=e3%S zAvhPjG9*2MxvfsMj$*ik#xHWK5Dc1GbfZ)=Q^d$%HfnyJ;;i8j^ieySzm);_71#43 zsJ}Y*0fT2n;+W%%!CxI|yMG5)5@*9rFmyKuJ0iUd{;L>zjkfV66duhKt-CYWk>aJq zrA4SX+JhrPfAk8U7BLGv914@D^$pwA+l9&?S!C7n`*+Eup zK$Lh<@f7noNhGueZG$)zMl|SwNzDO$@$&NzBnM?N0)L){Ea=-APN))+yDC9;an`=y zwjB*N<{ptW&I@!`tnS`mHu#FdELkxdI~sP(%tgXMQ_Mx8L2L3=UyTo` zGk{{5KTk{6=U5*J50cU>y3(wo{M4{BKGRmumP%=#7RQns1k(V|0HZ=~I;r!>!G_%w zD9W!CsL$@mV9hS$pzUtyV8E{JpvvySV8kxTp!qa6{fhFDs-DtH_MKXb3@3QgOQvTu zq4JTMg8Gq)g4&VBm@=87TcN$01M&Ra~XWq?E&)6F-O){kn#g($wOrfII5}|xw zE${;kxO0bd?(qi|p8_sPA7!2FRvDcfp*)vj1#9ykXpCh-IcP;=R_}M4YG}`S4;;@0 z7b186F6i!haYAzii(3_Lf8O{WIPD@<+ZQuimH!}{e#rLyG&_y4hw>|WyZBf1t~Kkg zgfqF_zO$bt z!B+o?{R!z!eSDb>7Nc|dKE4HLtAzcRt&#~vGj$e4G_A>F!9U+LXD6oUjiUKz%sOTGR0}(VJ(1NGpnV)s3R#7`H(_}t|Xn~ukuIa8MlVPCXv*BhP-f(r& zFe=XL9h+s^kL=ggIdt?=STd-T#Ozx5tg-H57C+?W)Ns+0cWi4DJSH-ehMqY#m^FzO zRl2hzh1tpEhP-lM-!*ak2UHn0u_^dAoXC1~-&01DAmvIsaZy|?j@BkkF4 zS;#5msFab1lbCNEm3b6jh9gU=RQMAxu9r|ijK`%VL(uMR0EP6Atd`gT`u$Xs!L5;m z=neeKqR`yp>yrQLTHeIKw>fl66h9}K%vl4NFeoS0 zI|znE-J^<#Ctok@d=#+TVCfqDGFmx+jwV<@C-^RcT{Cneja979GFhrpx0+w;=LF1q z()l$3$FJ{lKxE3!^YQ|Z`S<+-6QK!=(IBUiQ@QFcM3VO}r$UD}vU>e{^_%8<@|7DJ3U?6={LO-0=| zPHpOtNF}x+1r|bd2I>J)*8v+YGz~5J)-+D1#b$LqnkJfNbVf0aW*yv}_19uzm>AKG zC=28Cm2VW@Hwx#`6*r8#F0K+d{d$ytM>2-*8L9pX*|u&{^bMB)bRcr#Mtkj-J>DO{ z^&M=gH13I0k<#9geYZJPo&a(x7Y}kzoC?vc)FiXUV5n`ATxz@=@ra?ISMlDj>26uN zlnSs9Vuq`@@{Jt=Ucr13vZSts&lT&ijwC25pPlsHTB1%%eu}#|`u0_V_E;N3=JS!< zLcnff{&VlZM|MqADnj)>*C}T;z|5vwR+2HJoVR|Xe-+Ygw7Q#Td;j|n4PQp6QBOnb zWnQG&3uw|f5vOvB*T5h#wA;m>x_4L3`Z)q@(2wY!!|~FB7_fq=4-Q&tv=kj z+l-`_Xg!I%$YqFAj@*ABaG}63I*YI_Z^i)244#F*;T4TN_uOYxM$)OdXRqjNt3>gr z&lO#!BH9jyRZd>3W<5eX4LZr^jq%(oBjL(y4%bs~c5RtLdbkqtOx+~{LEM+ri^XuE zQh8QXEiYo-(JX$#p5YjPHnd=lX>F}n5L%KmdOvG{P|JDEadu#JQytTd6IT(U;mPw` zMrxYG21ph2PL%n>qeTP;_Mpmy3^Szq?er3lQ04_rtdg?}e>Cm*-WUuIAoM*3=hNBd zGuY%P(XqwK65jM!Z2HpS9}z7MRJiE+GaWH=8-7oy^@4pCYeNNmR!?~Zj#I`}+E6F< zH#9vyC-&p~85p+ccvsF)yUk7ZR&tQ-z0+4ZSBki-GLvz0=&Zx{zt zLEq&AWwMJ)W}hOTI$gwUnPqtg|7_7$5?{JY+Ke?&a=HW z(#xUm1KO5_Z5=CsLE#ubXsO8X|6{4FY-gbH@QAey2wP0p=$&xx;YnMhL=vF`9XVY0Gl3idVrTC2!WUoe7dy$-c5Q=ko z-xOWzr3={Y2K(w0G2T~^$j^=o&*cAF4@C889q~e*vYx&_sNSjC$OJyCp`%$79!Gwi;jeD!J&}7+S+78Pme-az;)U zeStpm4QhfLw*|W6UbjV%QdzOqfL~v+rw)PLi}3T_9bzmFthoZy^5`pl*)4G{e-YlRFfS3O~##kH$m?|#gHCZ$YaL+Z5$ERBjs_F*VFhZ z_(20`T603ZpZLJ5MO1ZO_aVhmj6*Bv>` zBfic!#$X@V$PKqj_a@+6_T6o_DmvRqc&din^>SEkPX2j&)cDu@{&}2&4E+u7BjM>; zH8I+~$D?W_IxF{`KTyO#v9;VNO*&{Msj|#UHdH)@b5$0htHcN6IKuyo%#T`zIqT+( zZIoy0V85}H@Jf7`&DaEI*+UB{Hc2F+?Bk!X+=6ZFSGq%nl6xvhp`6DosQQ0BM%x5`l5XDVjJlvSyt| z*5OCh-`@wi%sNQrc$}{<-l4wDBpIG?5oKTxPjW|AAy$-(^=RJN6&rjAlJOC;4pco; zC7w~CWhXHXvEQ$1IddR48<4SmpG&Uo$jrOb)iu}PJaN$WOY8e^ifx%rxDp?XmS6sc zSB(N}YgVnAd~9bFp5tKF$fKM>-^VBCiTEY=B&p!-ugQ*LSq~z)Oupp!<$STrE!ykb z`TYHKO~#iTtlfNv%Rs-|`*BgioBYXmdZOCq(Eox|DA<<|Y%Q={>I$VzOq=kgG`V`# zIdysSUDQ-SM`dM^l0zk(%M^nkiv>8sS^7;e-ks+?Y;z^RiZ?>V2y@}5@{ZBDalERI zPi?(42(RKf*8bDU|8WH_+0!0$RHXIZT@3na{VDqD{b5i85d=N+WRf|bLg4VN#HMe2{_`!POBhE>)*!dznIv93Pbio5Tq)fW`ckImMDu&c zq2BN^_Z6yXxq<_wI2TL|W3p^=*<;ERqk{DxMkPyaQ59rV@S3_(OhHCvv=L-f`u=59 zKt%=K4OCQwN%?<2c-XRu_SLs^0n#IpCw!w0#iL=rmR@iDE=u7KV3```nq^5*9z$SX z+)k5sd!?g2r~X@(!u0G5axHyX)RwG+kzI0o&EXseyP`|6_X|`lD!q0#lGl`an+so5 zG77$MB;dh0v+`nQFolQ|&faKFnrq z9XMH-4!+r!wXAG5Y*tTWIQosroIrhVp<$L=BhihehT0_j5+u73@Hi8P zY^o-ePG<$n`a*ly0Twp3i4bTY9dyzcegb2@WRCuIi4Vd9?6fgxq% zVtFAF7-^*Bo(!3ih=P1OhU5RrDW9TAJ^6aa-vCPwz2a2lsy@y(!UPzw9{N} z54m*DNIpKIz5ea8XTQb9&%_YfRqi~#GW+Y&NDH@bFHhQGB}&=F8_&!%f12hEeWY@W zw$1cz(2gU{P;?+aU{#Y8Jha4bwx?DnAv^zaS0!#V>=eQuLXuZ>YiwB9h+U;;v7dra z>N-#sPfaaz{`(ACRjijhuU5QDvnYlGCFFmFT@~q**fhB;VVJL!o?QBdXoJvdKbb)t z(F7aqE?&5a%3KEL$So)ELJrw_$}N7puS|C;c1oGvibg>dkha5soXXEZXc`qPC>j^a z9OERUek35(^p*M24$#%4Z8%uun{WKUS1~PTBu6sny*c~+rZ-2gb1qA8=`gypdz}G+ zFs(qoNsOblSW^YbsP!=JQozr1itUR~5D*kX6h;)d`qK5U`1fl=M z*j-0O^(g+{|0>-g-6-(AJ-gfJ2#}Fg!+k|@gBHlU54~9!fbIKY#bHo~r zFX5=;<<(%Cqf+W2aIEP|Um>D6RV$OYxepd;LLw?CHlM8fa^eRccDbmG^oxx&C9ryU zcvfL3R#-DI#;kx#DK(hd;tgJP;8g!Fs`yq1o|@s`Wd5le6#Y_Z72RvscQt8PL%JxSiFLVmAzsa?6ruS;UTbFI4ge?%wIkE zp)r!e{&tdxvBRB6R<{E!EM3mXbM5;)m+ePPrEx+W8K#L~=xbkICezn1v8)+B2o_mz zbUM73K6$}(i9}@IkJrOk(27}FU8-KLLdpG;L@Lw5B7fxHp_JwYXKYjH$#is=S70b5 z-ib>}?;8r@$0D%#8s8}^4C4*r?uexdT+`YO<>yG5gU2XlQP_jTZJs5idIi#I` zE(~*U+ETwoF)eJmMk4(Gvb4w7Tmt*9TtZmiVU! zql(|QC{bu$I5$y~=crhIXGiWVaIa7=ejln-x4_V7M)PX~J0(Xa&2kuL!Y@YAOFY

NE2#mbQhJf$p{+UV#oh-X(pSWKWB~ZfWIk?nuwWYm_ zp#UE zua_YVH5%-BBw?Jn2Ktj7HfpW2X5-=UG*xFUZa~NAUT|v}jEn|;9{Me%`K)+lBHxJ| zF=pGFmzVG+b+ipvDt*;PbVuh$IZG*4ZY5P5C|Y(aF!u6EX5}v1MJs5I9sQrGg)<#% zw6iD~{hT7=ofE1_TftOHF!h>J512|hVi+Ce++!NZ-}#*Py?J|xcbw}`h~qGotAOi% z8#uT}u{oHn1;J?;Ob4EaM3|H2afO|J|ueeTSK2s2<}!w<6?cOGp=IvH$AWsBu3` z#L?=M2FAK(LbmFG?|tpU={^3Lx8;R5c~oeQa@3cYPdQ^M98;6O3g7>;)=Vz0rM)78bI)&?Dc*AUkb$|mIe;LPGH`E@ip8N;n06@p#1WrJ#{o{?YMbz;xywTvh z)(bse2bUjcp*rC`qk^g%X5L=20t)d@i%y}22P8B%Ob#wJBr>bU%_E0)p`{8 zZ2BEr@2~Y+f~PXdpMu5063n_hhxdy+g5E4Ru#6(QKF0Cz92!=3$La$>hM|n>l{I(& zl|~@|5bktTSHXY_`zF^_4_OYC|+5Mo-dinf0j`m zGtbG|qh3EyLFL0AQ6EsYAiiWzWfa5kNAw4TEx`8?$LtY8@JI#~41YvzC>zXjKmdyA@F zf?WXFlXJ_k{Sdzrfour)-vt#{7$|k`{raShh zc(9c6g(%##!vlZJ=Zbw5p)L5_qP^1i4&0_8fII`+DQ|sQ^*!mK?7cS6^+us1>x}q% zNNu6#GwT-kdMIs?=a=h5_z*Zxs;$2O11#;>z(6uUJ$7nz$MUzylLnl7w4WN^37j2= zuVJ+LfiR;Pe+{iI=p3OPJ>G4~Sb)zNdzFY-jJbKuu0$f@U=}0fF$=%w;rb=&(+&xez#!l~tL~XgAuurux2i|BZm8iF ztX8`P5}^q>;3CVk7Om_quKhk7p`8e3$HriX!h1pvOm&DYy-Yq;O7Uid*0w`4M)A+X zox!hRh66Yj?giD&*ps^9?|urXz&)L_vOTav z8N(sS4}@Elevl4m+PV$f0~eI9?0yXnh}wr>JUrVX^98!0ed}3O*HC(>>4!&$Ggf?X zaLM*ln|IFv7-YE*eEN(opyDwH&emuxqF&#VbpQr;re}Kik2rU97GrDeKor{pACxTo z5ea?y)C~L{^rb~=@zo~Ux=l& zZ5Li7nNzA5mkcN;nM)R;{OzO=vLDBqH+;Ywtd%HiW!Ise>R~^Q+kcr7XxyY+IAqkM ztw+%-QXn|kdxXhM)!# z{l%b_{+~9=vsaFg8uDe~7ca*NxDas>_mEw%91+#=Pbl`V$BA_Rq)|?&_8fjOBL%@V z5+ntJX%q(*jLH|&ugr{H6SA#^OS>#!nXw%|LO%)f`vT}lWDH-`#`QOXv&DR812LXd z4CV$E+$9n(gJ*5_E8j?@N-S*LS^>|p>;m6N6f#zj$Y6ESB5Sgki9)G`8DTGj5Max( zYuQ?)#u1<2z$R%NUCkG*gV&gSScMdDSCCLqOj zOwKj~^tK(OEm33Peyf}5?$`F=4m0ZfR_|-687DnVS93pRGt||vjJg!Ag+(%wi4pov zEH&3s^HS=nrG{{z(`|?RDSSfl)HCUdW&*n?lp60UiGA{Iba{{mV%>J|sW;q=`C|)y z4cbX2jxf@aYY0?Y3e_0s?n~6z>n;Qv%>XU-?6EVy22H3fek3Tx5OY?h2X3#s?chkF zr>Kp-x8G|qpyaXC4OzTm#3iU>2*0s6X7<+2xhPR%u$V55H=Hg_kUe-4TC7`|KXVxW zYvwQkWrire^*}3rXoe^u4OAXWGieF8(^~OC(+v!33TuV$%Gz|?l)Zv}=HJM@$>(d6 zK`U)2!MxPpIaK}s&sgyNzY>dBYIB*rZaMRhIz{wRE?*@|B%Gw#F82U*`U=uKdXQL@ z6}}VOw@dvA5{oxG1k!KK2EWByPsi`l@#`vO7G1!~y7^3Ez1b0ymY2W@tMWN{PCFu#jWuNsf2}&LP|*rgfr7S@x6;Gev_`v zyz>?41By|kVYs=X?z~piDEl84qhIk*$gE6gI@K$baRr7YG{%PJ#2f9u;I}5=nVNJ^ zr7(GaIU&NCMZ|?{vZ?J?V^-rxH)N3S5VH4Th)TvH#horL{5l?Byu7RM&76%(=@6mJ z7|{waqsgi_GRL7e2q@uf;qX2QM|sd_4-x??C2>i$|)9J8TLgq4T$$>K5XKU?tmkS&@qRoN4fZdFBF4Fp6+5?|>^&3t+YglQjf3;4U>rr~uW7cuBNhi8{QSzB~ z41^RU2QTKL5GycjIOXqsK)Wa`jO0NZi_GVAT24t!_W}0BBxuqj=e2`-ex+*K_dav@ zq<-Sh6PH&UCkGk}*%evPSP(uLi^6nE8Z@yKNya36 zVt-e&Zr$-zO*?73H@UY{HMM~#vdw4}Y-;zX)RX7og|lV_(c`s@%g$f9#7W+smhZRpp?&#ksjlJY}6+=(wHlhcCD zdzLJQ#<>Jc@FZxZhRx^NKmsYz?36;+t_8XkFFQ9?H5g&hkP&R)3>~G-Rky3JoSxRe zr*RhgIaX+F6w^6sUO8aWa$iKtWk4O*=Ib6IJha5MlF`Ms5#KgNhng?WS?AN)X#1k@ zodhe#!bcjCF6&l2+20{oV=AnY7?+l9hJG}xGAYF-pjnDcuuvXjp9tULCX0tas&1oa_ z{VeUt&0Vpq7}dwC-b<>m=B79^PQ4rw@n6IJg#OK#82@VuEsTKfHA!@by!RjpeJpStq0>&ur}=G2O+32!}V9?7)T3(AHVIjfng``}=Q6 zhC6oplxo4W98_?AEj9DGYo5`>^rCNn@xXW-;~02)@+dYTQMJBw?#4m9jeSkRuO{@) zYeqQ1Y<9+nRMecHm`S&}unzuI8-;a>veHLs(S{6$T|L{tjPzz`koJ}N|iw# z@5m)+Eb>Y2(H;PJzMGa;TqzB;iUvV1mmVS>7QXmRO{d-Y;g0+e6Xd)!0i@L7cwnCG zlY=1`n{x;b2Ryhe!^UJ|RowoyrM%$zZc;;o^19Hk$VB9H+tmd{AF8otO$J-|rn&@5 zpC7BUiatNunhTzfc*)DarQWV4B6D7OJ^1)9eQ4Lt@M!^7Y?#gT&t6`^=Hk`^Gb?<0B41US34wo zOA1C{+iyOo@gr=>38u7?;C5xdLYf)0bw0)#6zkBpK}oClZ*AuDIRWe_9n^{v@OX*;JbdW!>I`<`nB) z@*Vg`u6i-kiDI>#G%()oiR)K?T_<{0?qT*VVk_+-r`8HB=VL5orOh>hu_-Usid5Q8 z18^VN6_Zs~yk-stS=PXx>35(~1t%JSBoIelA(U^QH49q43R=2XVC3;!i_#jXmblAL z00S-$wF!61viB)~qg5l~)L!zn1Egm`)3oE^xjyaGtIO$s;1(bkYDQsf+HZ*mIX3q8s-3CbFb^mc>Ib{<}g{HD5~~?8WLB~KV*U>w|Vt2 z8=?dyyCbP>z~NK%>=x{g93-h0ypb5LX+V;_k6Q~-7v+AgS<4xo9C`lu4S>{iZ9`yJ zt8H@9v2qI^X4b5sU>1n;qugw_%Gd=X`3jTnFZ+!ImwR zD!5QGob;!I%7R!*{ol%>|Btfp{XfdW{7`h#CxGw9Qx#=kub8{6NYS0Q7kzEsw0VC^ zWZ0Iat}fcwY@lsB9|I$AcT%k3QPtF#y|UqsVL}#JpDgm#i?j)C%0nG{fW!{>2mWYg zTcVLcX2Rx5e5NE`V7O6z^w_Jq=+KRB_%H78t^2ytzL-zS!VpZeOiWOZm{(jQ<)dWM zC%h|qA&)zP9LsKsC7$BESQICN*AaQl$A7JMB!pfAL zkjNcE79*{6)bkrb8l0HXP5z?tR)tdC`KioO*t=S>_q(XiN+3?j?<*&9w;Godrxds_ zQwgWsI90(yQvg3e3*}8Kkm0QfeI3VhoQI6jcgOX{^0ik1w-O-6zQ~WFDh|6mia>N~ zKT~bA=)=qmYg*l_G!db!*FikE%~V}j`;kxfOHtuBwJh98^cTM^aw1{;)9OCbMl>^` zE}sVBPK|p=PiZVv?Yz>KK5R^DAhV!Jv9qxemHFD7$q?hT*c#tEi4`|jyOTUSlS%AT z3u$QORI1=IM*j@ty#AN6F!mh&@T4qs;}U;0F_Q=kuz10FYAXE+vuJ=}7P}3S+|y^7 zt2$C5-$I|}Wya|3oP<_S`{!V{(@3rtzj%gG3HnE!2A}W<4PWLUDCqZM@C76P@`eg4 zYt@cpz6QH2H^?w~qi>(thZ%L?Tl9G>rpW@>A3pWl#Af4x^&4)*@W^?T6=ofA^2NlN;IHLpZD_-A?E?5B%Vr) zzyi}k+dNlmyCI6Rn}o4uqo?wR`(kyQ$Z>XOBuuVr(qK!-sCZZY04GXF_%Tz;4{fbD zsi{lI)j~8U-bB;ujKVWD_S(<<0aNdH3_M)FF?Hq)YcwmpzWEOI_p5$WA0)^sXoj>znEGxkbY*~TUh*>4=rDedFiBEhU@j^|EID@{;Mo> z0v9-$Zl9FJ3IzwKEMRaqg8_cWe=7^!CuM<7B>Gob5R8d$NF<>bf!i`Mvw5lp$+<@x z+8wuDFKqDe2`11?x2j|;<&!m_*rA1STXp-gmyHXPMs8EC<-8iJt@OGqDl~Gx+IlHP zB#GEi1JvVc@;7$gsag}tthR!W0F4&?D#Rp`R1aVV0+^qz60Tc46L{6W1QXuV;P0?D zAS|r+ahwd>5*@i77Ea60*Gjm9Uby3THu?PI!zYxUym(TL)oWlSVXxpylCpNn-Z<7v2hcBK=JmM>5lrsT*fxo4bG>l$xd>2(Y3n^xY@ zPGm(p6_-xW9Oqo>!L&`e2 z_3E8+2q`;1w)Os@FklRQW&TAP(wKa4CzbXEs2*!Gm=SbX=Kt?0=( z=!yK7s2BxCd4FEJH!9fgYKNqY0nEF1*O;kqqdUb5Q45XCCq9BpBHg8Ys$BMmV zlEz`pRhCJp5~7vH&#HHHbFL4bTpDhyHXzBHG@1E5N7!G0ei&S!Dm$FSkU$c1uG#o9 zhiy?O^pkqO&ED2l0kQ^fuc-vJTIo1h({(^Idh{pY+X0$n=r4qA5y|@ZtaCljL$@U* z0gWT9_v<;$itg_ebIo6(WXIXoD`%9?Obi$_lBTeX=EmvVEVm(Ew;J$I?n+=!N`dxg zEV=^8k&*Lb*<7Jaa@2W0YPhj;MWm)Xf*FB$Zo;CaIc03w%pS&urG`nNvJ$p&)0dUaO0w_;i@?`eo*v=+I7k0zH()aKX+NLQ@}_Axf<$4rHUpOVpL)nWJHu)&Qe zuywzT2p*&Q+EoQl$+l70dErpV#rRGl-w30FJ*#R1^*YwIpqABuvoLf<^OdjP+QfFF z^Lx!mW(2%J}(u(*-nX}tESnp*whuUc&~M2GD%{i{d% zm126uh{}K%M~Y2hKkCS$kzrdfDQeQeH<4x8Sw7XJUH5`lNJnOv-wXR~t80?D1j2b& zaSg^0b&95abVfGOnmx{!xeHAukXh2jAAd)d0^=beN%T=zM>q`k82czz7 z4s~lR2R&|MwyJd>c}(Jl3R|ulk{sSgO-;1^Q9kz{(h7aTdfns{;i?@1i7477ty0cVBPpGp&wmzA7`D{o zq($G|?EAc#=h0g}42WX~XcWYi3#^yFV~*v(&b|-+GkNmH$sJd9PE|Bnh)tJo(Wn~> zllKcwu}cOTCt{Hgdt;*Yq+BAu9(L}K2j6}}+=#R97d+SlR(4XDC>bo$r1m(U-$y3z;8+kAUG&KxNmX^>-i>@m zu3*c221&Iec{lX^*^{MsH|9#_DhLi^RO;Vpo*m*tNblf#@%+~Mp)b!0!dYP;A?G{m z;JCnZ&sSTe?P?rt@Se0%`PVUCKafL3!%yLW`xVCn zHxw&e5a|K?TLVISmI*jkz!5Hp@<6;5)ShK}2X}_2ajo|pNI6$)*E7EU&*2o{?{Z36 z3s`C)Qx_CO1Wg4zRO0BK%nx{}{wRnRfAy{XRuJQiRox8&3o;J1bv=#;G-yLOfbhV- zCHRF*|4!m83;&Ve4zCx00|#7e*8A`uN$xOuA7LLE#~%QW2f;G{{}Jy_us6yt>(d=I zv{=YZ9-;RaLGPGv7GMaj!34D5vclhO$#^Fg&9)GsgE$19gPsE2lX@$! zU4laZ-jiu-tNrha3OI-HcMYQj$&-Ccz*Z2o&4GyWXsS zfY|e*cJLRE6Dr)B^$bWn-)+ZWdw2&$35Os)D7Jg6w@^^6MneYi&jatAdV}9?+kn#| z6acsqftJ!k#J-7keH#w^^FXmh<^v2vY1gyZ9|)kke}_|oIsk~loyD0A{v+-kUoQmV z(dV3MU6B0&3py75`22x!OQHk(4Z;7<3=sagFSyMUjJN#=ZlsV4c08S9ZxwZny%zT* z7wp47_qlt%h1bFQMk6NwP3Tb+8TmzzO(@}b(A~Lz4PCa)uRc*}51~r9)l@0hn^LJ$-XTLAYn!fND6Oo>GLZ*sDmop#Yci53q>I6 z{2EN7c;kF;hd#HBImZVz1>IjwVf{x_0Dm||!4s#De&Q7I1fZNy_`@kUpE$(=3iy^m zfu}qFaEhHjoTBB4Q^fy&a|-SM|HeB|5Dbh>}p)~3nU|wo6HzF(67SUHzC(IPw zhx~j%;p)6VFfBUM<$q**W$aXn9lMvX)EU}DUVH$fxaV!I@I8W@I-9=?lj-F+<_WbK zRu%WM*f>izUyHvGRu$*6=(yqTAzBdJ0zpzh5=xCj1!5)kG=-UpYhAXSutlc@95b$? zB=n=OjxRb28Ov8K&`<<}cw#mn3cD6i9#`1NgS$lJr2!EII58VAhk}f<_+pg~q!e3S zw1}E4d);SJzN(0e*a8~k(!yRF-omA@R_HcQlw$Ub>xojlTxBsU&sOT1m=4P^FAMlg)=9K zEkK!6kaWk*H;leuk?f;DVwEI{X3~m|l&J9(=EWQcg)_&BO+Zm3i&a6HG@&lV%P*Il zWs)o+*Jvis2;Gi`+vfzRgIFXhh3w~j9cf~_@Tf@!Fi{kzTlCobzZ&aLC&?V1{X#C* zYE#r?)O$rjtH*2=QyJrUtx3dxbDE!evj;Z}$XBE(Dy+`36h|E!@t0xYdk7XRP6TvH} zEr@SbBOr-CnH9>ZEeK<2lDP^zL1SKdOnf|DcFA&F4eQ*U!r0OA8f!cqbr|En5}2ZW zyq(_)&9y{9t!1oVwb+wRTP?D&P@BB@%>}&5JALgKF{y;6Q{-5bgFx439&d;zCHM9M zE=&eX;Rg7<~kx zJ6-`yV4MG>uqcKiA;$&CBrNuZ=vJ)uhUg=RZjhz10^4FI^K&Y5IgR&L;tSEd-T(!= z1UH1z9D!|#ic8~j3aM`{F5`codchQkJ`G^ZkH1xH>Kl*Bb?hF0tKi<2LngZq7uc3E znN)j#r+71|%D+~km(QSMLY>j1q2TwuEKY0>{GPZ%66hi0o?0Ahf7z$uFZsiTn|(&k$}h1-`UI5wq4wQ$!9Xmu48FC8EjqTWgsv^_0^@#q+0>FSO@dc0$=$&OoyN8%Q66x?+!iH&}gU{CxS zL3K9cH4jhV1A_)};lQ}wle5q||LQ`@lCWS&STWZ>&@g3U(y%l*WP}$mmt(vatj8EO zY+?Wd^8y2%4;-^#O)B_KIB`E$Ed3U5QI1I4(7W|215js2j(ULCq^GXUkp87Ve+D@!SW*qJ)9fEoNJVMWi`E}=o+B@G zZ=lY8Yi?SVl>P8(lAcIJ)6j(U63qxf;r$Yp?YwNlwJ-;%SY$iLHuV9|q={=oLiw%9 zrJMYQB5-(<1jm_OOno^<&zm7-th9lR>lYHJ6LMU5QZn2hor0=Gs`ssa zYhE%G!yX=R&SDL=3yk?ZER1TJ=T|u_T1*z-JWSyb)Nk6!3(J)GSb9CRe9SwM92yc% zRW(RbSkC+& z?M6Nw9Nk@y{mGMNnN1QoB>m&%btcL6gLvMiU?U}*_JK@`7;Xc@)7isO_ z^n&GELY8#rWx|?%n%gZ^uUry1Fyw=T6h@GUo@~wyGZn&fAR~>G+W})@{bkUX$_W+a z0X6b*wu!-<2HdmIXJE&X=m%VhQr(h~dp$fjc7Ifg8 z#e`BNYRuINIA?)Bw4HZ8ZM*ts&cY)yno2*#nZ;1QvQ;fSidLetRzLr$Bl7!meLdnr zLzAEUfe(pP3=?GyH}0s$v(owJi%Y2%XQN9S#wp_65w<8?b(7=3>6LR=h+^k?ywyZ~ zvPkv=`uDyr`}|2&#RIZ4F7*Qkjp~7xZz(VN;^%*_?PNUdSpW?#^Ncit;E=#qJa)yrFH8rHHUl&AMRO zGh6n>xW@ji&w}k!;^EJJA@9K$`k7rr_)E#yty6iDo+-|fVhk#eOdreDH z4bqRm0^eN(bN4u8GGC!K1ph|OPT<@^TRxsF9F1K2KDETseS*nAF974dY0k!tBa{Lf z2$T?C8t^Q~X8zPH{MNG*E5-J(W@*5+Phohcqk#9UiXe)boG#fu6{J=(aM9vn!|G|#Vrog) zRLjnw2XI5sC|Sn5ZE)$X8RgR7d)#%RTo5LH_N|t)EI8!+G0FvE-?{yGvubCZvyC({ zu6I^XB+!RQ*9O>6I#*(T^s*X69XBF)c5KUI;6{~w%bQhtI_dLeF0iWds_3WlqDUE$ z`g&cCw&n%p_@>q5N5Pi&*)v*ohhLrtHpq*L?kT0Qo_^$7Tl4c>N*gc~|D=!Q#`@ER zGmZ)Tw=3qijAG_VxVt%Stx1w3K{+yC21c6ww`qAqtm~w`#ii zkG7zy8s<~!f*xQUEcX+ka^b+`&C!P+I_kiQ(!Vl9Ay58u#>B zkzzlQnj8}U#VtZdiWeeeg2p*dKyBd`m>c(`Ek3$1F`e{p>vPy(^i@G4+L7_U$S-B( z9QsRs#^%<7e-qDgO@2u&Z#v~DC83IG z#J(UDmox{Q7pETGwUPU*29?kU*fEqUe-Ad6N^pCGqT5m0v+sEcwPF|Bw-Vd` z_7?m68L~wPJxo6(opWJGeLPwZ-E|n#jOAv%7QmPfD;V>^TU0fnQ*qgJ=1O&Hn|7zx zKYu2an1;5Su9S@pD>V-NxP_Qxq*Q#AeHtfyI7ip;5%d<9%SS{=@C<48zJBi-5diK} zSkLE)-!bRub^Ftkep!z*ns;1r5iJzt=KvWfdTjsfrQWiIEjNo*&zN%)O$!F6q#!yo zGm5yR63|*=X3@bke;SO?K4ZJ!q2HAIhRL0gN_jb&7!oiwU-?3cwY1c#Pixyni%NVQ zm3SvbJdy96*@UwtO?Z0>lix0iwjsbk%&h$s^YO_lV6fW66}B$B;AcrHK6NX}4J_8V zw>`Sx2VMvL4z4t^MxPAaAnBg-rY*@H)02*Or!+cw%f9=K6O9{>kF01PO{Fa+N3f}? zTew!Y%Ui{KY!WRLXVh5CdO>{x=W5Bn>G%Ss#GbetrqgqocRMLYl0j-D8(2%8_zu(ntqs43WLA%5c4sCf-ul8>s51_Y58gHsH zR)R9pYt}ghSmrtxbF`S_0vjKH)K1akdntQ%cFb$eH%lhC^!gRIY*o+ggW!V7wtfoq z7Q={@Tknbv!qr#M?0Sov+Bgt7WRIOuzp*%3y{=1JHFqkk$_cO%8&TI5$4Js|-aIht z#isqygrt2OF3S(2(lAKX9$k>@#x(UzVRI)EZSIl>S%QOyO(-cAfH~h|SMP?A3jbb| zSLrlZMHIM0j3)VZ-?2XujQLara37&&tTB8xdqa{(glCj_S|>XDiHW%A@S9nQbsqL0 z>Z_-g4`G|sT7nG9=z$a;KkMf+J%Aw&5U}W<$~TE1*0jx3 z@lrmAfpjae8^eXWNYAXOhHKa6C>JPHne6m}E%BUklwa%KmlTpc$GZ0mrT!Xj=^p(1 zprhEkLk`luHmM89c-%7|UpCav{r3s*?>GHwsKsD@6ML5G_~r{qgm);!TptV&#X~C9SyWN#Hs=#NCfh$o{Mw3x+B!{YWAip`ZR)7b!C`cmr##&0td z2DR^vo!<@t$oI#ZLEh=!o)+urkzWY*P7(cKV$ezKM1v|OMEj^d@r0TMk&-Vwcds4K zOCW{+BQc@^F7~n|X!&s`4B7ab_Nx6!h25D7`qiu#b<%kuje+#RP3-|)|l8#43H zP8jm@bB$BIkBYe920}^G_Ut(Mxen)V)JXO1c`pnd(>3ZJDh*Lsr=c>C>D92Xyfa_s zi@7f|eu!$wc{7_v8{?}6ZjR5Vc$La_P~z$g>a@SAlw9vC5)7sKdoU)Xq;?&9n3ftB zSr1?1e-6YWWE|lZA6I1J6U4Qm4vc(|H>MpQ4;iFJUnNl% zuC9M8$fd;xYr#lbwqyFapmJ!}Sim7Jo+72@0YQ2kD+I5#dp@eQX+GI$x~G{p$)_rfj7Aq87C&YhZepHm&t zvX@F9MC#a8x;?`K3wL70f8ClB1a`(Hq-?6w=@x&OBBMgl_}rwP7>iDyQjR1Vom_BE z#fTE-;K-eUVyr-LsTIG1nOUy-6vX)_LX@mG)B`ZR3h14v>iKDUTJe!ytE^KzNm^=+ z<@55hQq2Nu7pZ-&Z5h0hfZ{;2+lujI?8buQFa7i*coAXijq$uKuZeJ8|DEeQ{9<=xp;qqjR@8u}`)CjXHd#N;z|FnM*4Gs6> zEdwk8I?83`Xm2?+6aQUAoD2%}1I*d&Xx30UT#Uf7#rHYdDX3Pe33&q!$H;F|3~Q0T zk++T+&@QcZeo#oAQi$x1b$+X=_oOw_L9HQgu9)8Qq&4DAO^QM<=B6WEYc=Uk@c<|9 z7Ajj$C9@hud=#8{WTXy$H57_LWg9@>v4$P5Bs75BA|z#Xu$iQKOPWz-3|zq2gnL@R zIHpFI#l`q2b}UEw8BO z@R-VpjWa;u^s`ZyYtj|Y;lHrPD*>c(gRU5bGv*nGfPsOJ`X%gIGyvX+QDzDyM=j%4 zUE_22*UDw1h<3CZr>ld)bBxTP`VuG|Zvq05;}FcYy1s5%QB)A+9L6tJ4K>2xUySq` zJ@cDrf@l-0$Y=IPL+ZJ_+0AYEEw$MbisIiN zx02E&T_W8blF|**-QC?W0wM@YcS|hY-JyhpG*VI`Aks)I{Tuw;dw=(y??3OI8Q3{{ z4(H5acAnSsRKcXta5vSZEYjNGc9V)g-zSdlvTS3+}&Q_gI(Yld3UtgC+Nw8Q&levlHtDGA; z+C&cFK18oBt;v)T&0^NfghqM!*W77k175^C7mVYLP}88`4~+ zbRZ|ZO5pHmTS;`|Hv{*Xain(B(w;Zes)EMlDhVll?eC-TXe+@;jXIg%@MSXRmM%74 z_+kc0PGCl(W;Ol=p@?2Umi0lEjnPWcY`8W z(iT*LL-?gW2fUBK25wub%5-en?{0?Il*HLZ^YYi(2zx!!QduI0amJUjc_6T%i4JW? zkqHeK)lpGaoXEm{8aOXyHdyTHfnHH+NN{hmuX?wDGF4HXsEMWeJUYoN3Rlqbr=W+z z!3)G!1}z2mys`p{Rs#u^;s8(XOQ7vgZpUmy#>Sj1q5oU+P3z}}!m@?v?!enGh z(h#)uE{JTOMfYixD8*%0&&2#aib)V{-o5$YOvJ&;M1;jaY7jtX z<39zHf6N!%2`9?yS;T8_-6&wJzPrH*&j2^iT(m<@ufWAx4U^G}2WDO};2=ose z0j9T4U^$RAL@;%8`4)Vl9<&a^8Bf5%%}yT{SMal2j!mo(5Sd_reTGoN1Mf~``zS5I ztjQ)s?CCwtrfP`T*Zl*OV;drX;P%yE9x@PelC;jwb&m@ht-J+$44>R4TxhGu@+>{U5DVJ!+?8FbK zw+@3nPajfGj(U4+Zjp~Ei62nFipoweV0}vnR#YBP?@2d%!XElydF#N{(u2$31M)rA z=0m87ZEZQjO8JN`{NC#6>{}n|Ysq>$%wZrqc-x2_&Pwk~pUo^>`#v`%8 z{uB&9AhKI@l68ijC>%2luKbJEFh(|>@P!xX_oaq03}%6##wxn#`;)r$O(IGx(U6l5 z>q-A;F2Lr^pvb!MV9>e~q$SLULlnO=>BMf`2%?Id*9TKN)`LtS<$Yd2xa7tRqlU1$ z0?8*&KnDhTAlv2&2yGw;3=1HtaEoGPn>mIxKs?r|Kz?IR1Tsu9VH5ZiMhnUWdXn8J z0&zfs!;Ae<&p-s~FS1WWj}bO;VdjI8VzcsK_J(T{)i;y#2UgRFFOs2!Fq&wuFJ@r; z3Dq$z!~`=Kar4og0h?P_B<=x_0*N>0L)mTqZNfkVO&B$nAhn?dsX+ouIr_(5kQ(H* zUYN|WGQ+%AfS_i0qos?I*kA7-H7$UxYsAR?#W<( zAU#il6Hf^HOw4bsj&%YrKL5bLKY4%sh;Pi65P>3$9?%8y{+b-z*CcQ$1&>m4+*841 zAprV4%4S|DNEo5RY#;#UJ>sTGC@=tczo+R+wnW^O6p*N@C*Y z5OnR;eP4OGwYF~Ye`FZ{=rI~Mb^pH-gZ^sCqrRrA1m=sz?84kS6!32)M)TF`+TkX7 zrEovjE+;V|gCUgsZ_67*nTd*YK zjr}ONPy`;CjR3^-l@{BYzxE6Dzak9yM-hhmI&3S#Bqb#i=fag5Z?%j+651&f`CtPQ0k+%;?JYELiN#$5%l44 z|35Yipr;S)jqwu$Xtz#-Yfpi+riXy_Bknt_UNOsC>f<=#2ZUPy zTsOJi-qWdk?A^E!fgPG)kRZyqKt2kpzmP3{z=P=xPJ}#+fo_)_JuofwpDUy3+Fk76 zp%0Hf@Nm+!(<2(--*+Q=cL0zE`^@C^d;pynuOFQkFK4tfNVuGm>^dHu7m~#}|8ia= zg3b%1e>*RVnJwGZiz_UbSZC(AjHqXtxQys$&bd}z%)~44kDM`NI4AB-ajme-Se#i5 zq?esthWX|`St^)(n8_<(5!k>%jNmLi$2)Pvk&pz$P$n?JoJ@UiRJ@a$$+wcbC37iSKuK=68{*AZ4h?s-~`QtdT4+{xCu+Q%0{8cKz{jOdI`v9&G{ zk`)Tb3N28%dK?oW3n5aF3Xk_m!^L6cuCJSi&?Bk3*D9_L_i2zBzI0V|tq2nj5$Q8V zPD9;CbM|n}=soBo$7Cb)wRbHEV@Aj&_`bES5K@9X;p&>w%N=I(YJv55fBh9^HGwVC z4Y?sT2N^`5Rr@18M6gw5{k7|4-#MH`p9eYc{e`O!$LidcipR_Jef@2Ta)&=d$!E_X z79k?I={ouc35b6bvP7o2YCM;yIg$r1p0QYd5Sd1tQm2V$m4(|-pmF-6z@K>GXN8d% z{%1sxrqmxkaoo>}I#K%12pvuIPRdug$ykd7mJFR(S=?+L6{&hp<5$EenN5hpr+!dm zU^vPTiZwjqXC;)V^=G6^u6-wECcZLPM@6>Y+V~aT@RHw_BhB76KHl)PA1%c4bEi2K z%2#H1IlggbP8!*-%pD1inL4;~vAH_x7hxlQjg^{pm4|O)`zDx^F~K|v)476G!!;dL zwM&6>t|BGbKgK=ZzpCD(OXXFOagAXLWxJtWcN=j3-!T&m(6w>m7Omv?^2rk{ zowTWIxR+_;dn#CuT!^p1+||R;n{0=_Tu2xLO2|9>eU|@-HfV*4B^jC%BOk#K&irU+ z1vF@Qvm*nm=ghap@yS@ zV)U%}t=xY#3CO=^X^5CM8#Pq0`^1%|=3i!Yq3++ym8Ox|IK}~G95ocTTjJ7D&#W8M zO15V8;Dx5?ZIdW?q_(B1&vV@{d^Ok>R6t8@%bms<{r-Bl)XKT&?4wn##BREka{+MX zJ_>nrEj9XGX*Y?*0}ZO$JXVz~I>4n0ZM4l;X6X9FrCQi%nNgzQ|AnhXL(n-xh#{wT zjGKYgU^^q3qIs-=LBu@6M#JB;PA~s#WMI2)V7sXLe5uZsQ_!(wMx{P|yolUr2Cw}a zUX_*&3Dn-Ai0737A17;ObydrzA3d;%c=h*MnIb1txZyo#b~*=USQYo zrQq1154}DbU7QeD{~$Vxg9Sj4A97tFSV*dAiGbqicL~J zGucEN=6(Hk&&pWPc8BY&VfA8ld^Ibnl63(x?ry&M_tGc`fRoFuAw=oIu>cW2re<&k-U&^I?RsV`USD@5k<7WzV6Pl9*{hg5G z3`S4bYR4EM7SFY$J#3LM5Ga9bsKjR0n6c6``J@k;a30&E-BHi|7~lrp6_)8v#S(a^ z;0|*BDk{`<(fS)bAq_JbqpPj92aOzCzGzcCpphf|A0vluv+5jgv?Zs|k*+oQ3@gLN zQkeWRYtO1^1QmUEcy0zih6L}Zt2&l<4eiZ!w4O5`e7_Hyy$Ak$el=6LNI%$LdL5wL`SL(9hm9VaYDh>=>J_`Mfgy%t%`DSB?{>G?KgT99MWjR^;U$ z5rZc7gzj13!w6(zs%c9!VeHB<1y7L^C#7JAQH^P8|I44bM_A+%Zti%WA$tdHuJI?C z61$*#)$hok<}8@VS1)-n)8Xlll+!cGMmtsTBkbzO2xs7)w5o6&=0&8HI0D&2_MOYf+N4Oj@6LNzUS=8 zRVD_jERqck0lZF)?cPqR^wgEqb7qxmh0#EKbUdLKS2p}d|JHJ3-l)1b&dSpTA+q|s zKmF=7v-~O8zV0|EXJ{~T~v1PDpMMpYbWD#lMESVJa1FvE3gZcoM%cGd1 zk@1E+L|y%2i>4b-W(!ZKtrX9rR`4j4a68lUlb4h3z{=A$gWmfO1AeNnb0;8Hr==Tn zA;GbemMhU+(kNyX)u5N-M#sDENtz~0t0laVtD#DJJk!MyD<&OqN^|oSKi6^oZSvQH zHod~tZFgPAFhsTYHd4o*D!y1?(K+g9F|lgS3(8kpThrbR!l^DIN1tSS=sm4SAec^! zm>Tt+_Ktv}#J=DQ(Fxf;6Xh`!I4I)&5wDC%m$NOU2(luns30q%jlQTS0B`WOeG(3~ zPdYdr+b0UZ=TNb*O+Z;ArC9^Bd5Qr)L;fXA5Nl@JYsAg2njA8N`MY1I5^WgKfkqwt z*zdY2{z;#Zg6R{-Uaqysl%enshMc)$5CZbk5%cKa8F}|2vSrqvWcy7n1e=?q3H3%q zy9TDRh9R}=C^K~)1Hq$#>qQDYdsU#9Bg01>(CfTtz98xRsQL@RIS93(H~_cuSp1AOc2EPssd#iOm! z3Mf;rYI|rZL$kx)dOoAJ$T+&_!S_Hyd-QS~*;RmEj+QF(G^_5KD)Sbr?w%_1IKV3S zW0iT0Rd8*Ud7f2pX%4972yU%{`+6s509rYwnn7;F!U?2BhVDRGB;##cdC2X%HC=Pe zi^)KZ8~KN&lu^)3oOfz~5`N6%qB1^?CUn!-qrLU7{0aAcb93m-#PwfVM1Ond7NkXN zwDT_6fB8;_U|qpo0Do~2pLg|R?AOfd_JkM@xZb}$A_=`LSATzH^$?FEUI+Dn-}^t8Jcc(~ zKJ|UonHc=5MX7B7f7*`oUd-Nt@2YZ7xi@YZq(uzr>@&pdxc|~3ch5VVg+N*)@9L2j z2_e7ljG>BI(gnPuF3d-7!>gU_vp`xTtHlIq+i4aJiRF(@Fi4A-$HszxEC-;cP-WrQ zic2Vni?jrHB+BxmMoT01pxJgwX7R+X-9)G_kx1mzNE-vkSR)~xbpCJoM#ZklBNFo* zG64IEUQ)oh0;ENtMj$QHlmpTt3Eu9o71_uB$-}qD{>kNI|K!1zUTlKvVNoTx+vie78=zi6un%B+a~VymV5rC6nSd1<$Wy;D7y3`!3?;W>J<3J5_o#Y{ z(X~DD)M3ZC`S|zcBFNA6caLViJiBgWiua*0A={Vjs{jiq+P2E1S5HoBoaklmMIShl z43*1E0qd1bkP^90swkVrh$|diCcOg-C_7*Qh5ftVujh|)4s+=UzN`88l9Dak@R#>x zB;@vO8iBc)o)EwS|0O;m;HW2U&baSYsEouMaky1QOOcE7_7^x7h z+#BS~4Tr8=R7hblz6)YdeBoW#Ce`dW+_Z~3#+fY=#5&xcsU78`;r-Hx%sX+>oC;ah zNAMq5#9rl+3l~xV!Xn8aEFv?M$WzkxjUKzTMXT(m)qw9O`N21(`{@3wfYMZv1r|`Q_5ObWr94QJifpy~p8^UmSU_26 zNS}y&YYd7 z))?{m+??f(Fnzyzn4fXl$msJ0^M&VqMDcTiCjj4IW2qa%Og z`Qe?6q;um`pO$^AHLFA1`QaGLOqK6nhyI)@R;l9RQ$EpbyRsF}g-dy%6#6ZKgwZf} z!t(SnfD+v!1+;~S0xWjh)@yPcZ>}Kdm{C6|);l$hQTPVFa)Jev`cSZdBKfy~QvCws zj+s4h;K@ga)gc!5Bg_G9Y?(~T{(VFAj#Rutp|9EK2L1FSZ^(+jk04S?<|Uc0@)+b( z*+)%}vf`nYG?{EXsjn~dhPE(JxDHlMa>Sl06^;PpTFnh_|$ya35nvkNkn05+atU*-Cv-ORw3O76BP#nC49L%zi8Xali|#nkT9NT$Cmd0 z+b6tLXga*%JwW1P{G^nQWd6&>*ZOA>TsBrEre|&^D99FjrbjQe)M6j49Gmg`dGmD4 zp06)3nR)pK_ga;-bMPuUXvc^Dl|FfDm#$o96P5vgHg5hZoR!s)*_l3($=?_AZ~DaX zZ~Eli-7%B6w7p66>3bGDcJmC(54d^sfKzK3`x}8w=E$e*@5v%n(>}kXP_XC^A`hx& z`RqiTDohgZtnU3qInva(Pl7B(lCUufNnd&B*EhtBqkw}*?(9gq-D{RyyCnvduu&QH zAGaBD%Ts~o?+W%44C}5UsJv3KYm({d**;=Tora-XT^2Z9f2Lmcx-Fo{9$#;7V9*E*H{Lahi1e+F*YY|q!tU7~ zSW~jx#R^L;$O*Tsq}AoJ?_m9{f^V4G!Mq{EEr4R-Xr_tS_;jV%c!0YtwE%BOk4NRs zn@mqI=ZTSEz(U>V0A*BuZJ*`KEPUX~|4sU>u#8EMXO#tZ$r1~BW*_o*%O7tG+2VG6 zw?F86RXYybN`A4i^?XsxS3Gs;N#O>s&p2R<@_p7+#`DRHh8(qtBS!)|Ci?T6OV;@8 zme=mVZ@63!;p89ShI`?Ls}U1d&}ae(g)J3rIEh<%77o63(iB~DfZBi)~WB^@CM?KdXO3M7IoGVn-a{Fy{qZ` zVXnJAJ*Q5dSL)?DktrOr0{R(KO*6~MK#?Kqykg90|9F4D<)YI%y?p~4S)S&(S6kEK zweKtA{LoZB?i@*A{+m;-18~8PN!uY=_NHAZ8O5qYGA-PF#X6#`Rp_ULwLZ+sdm8Mi zD9R7Okg$Gz)DATrJe4Ao>* zcM*P(6fu4F39>3>;D_g`GJY~?L=+fg!Q-es)r$F{RLI3Eq-U>bUt0IawM_71rtL<{ z^`f6|v+(YnbMhmPlE0n6b-m!{d41eC9Yw-Kgu4h|;g0a0F6t1UBwT%2uWTB`QQY${ zbbsr_JJx#_abbQvt0cj9DF4w!i||xwEju^slke;(kx(O0qIl1sLY6!5y714e-7Be0 zSw*j(9D6ew1=2|ocX#|YrIJS6Gtlcg>o^kM5<{JZT#LinZAA2kv^_T1{Zy=JE{GJp1NYVkxq9ua;vQXs`Z3S8 za+(zdu4U}^A30PvWwq%p-`O@}4;TKGhX@H8)TC9!e8K)J55f9M@qw&Z`OO_bwm@0- zbJT0$7b@*yQyz)W_pMVWGhccMWvEDUVfCCk@I0e>zSth z+hZxHu&2N-&8>`1V1)R)Fp~~;_!oWOZ~YRA@-BxBOU@SGKwV}B6`ISetRkcE-#Hco zA>eyDb3QWl)-?qCGX9*R+-S>>7Kd1RJ@X|sba=Dz#BBDY8Jj<5(nBFOJF5cb3y3V0NU&=&MObR?h_waNu;mG=J-5{D<(<5)^#?CI?X@ zjxpLrNmf$w)OrpXjqEguvmlb< zgft;HDcCo;S<-Y-)x+GF6bWuLC}7NR_{zK9qVHvy|^>8Yf@3KII% z!-RJ?6oR5E(ZBJki|Y6JpPg3swx$0g4{>Yc5t{k9$(f{G9y486&%XD1xe`p!>@6iP zoh1dKJ=R#7{#|2{Q3Pu&)2$q`9*G%E=RDF$wDx{$42h>W=+0SIma^2`9w|uDMv9no zYIqlQz!KSZLqMQAfjL%(aP~lIrAdgxe$ygee8;%QG5R5j3>0J z*zJtZYRDle23Jqrr%YdBVOKhOP~cn96n5NGe^U(auPL$opXJGuN~z1aCImLog(L8E z@u*Ov652xN$I6Ixjbt&*;0Ao7r|9T&BPXY-0I9A$`;X!R7@A+2&f+gzp0>z=40t>&RN_K=j;5KMw?6Q)**QUG}G1}|Je?s7^7D}NoJ!qH7~+xYq>m*UF< zy7nq}--LM}25b?M2OrF~xf25FBM{dKxw;8%Uk=WPn2f<_|EaJrf)y4}0pb1^9q0)? zVeYFj4@84$54ME3*aRZOR0e%Qj;sT*U~`}%r04yK1Bj=976-w>8UVQ`D*+;eQky#=)%7VB}`_Xw~gh#2BM zPeaSZTd`4?$G>7NkRF74uFXe0W#oYbwg>5XdQUg{zKGk-*RzV#Hd;ZoKJ#=J`4Xgg;c(tP=(FhY)v$ zpJ*SKL0UpoEdm97g}~O%KT433MbId7gpfDdN-5myOX$nLDFTv7mmw1tfuf)d2CbKn zD;N&;5){F(gUAUov1}jbAf~`L;QLH?OyFsE^2t-zL^srb>>(yda8 z_@Kr5D6tsMEe*)1oR@IW1$2hGp@8g?fN!W9abP;Np zEcz+^b577fc?dyZHi)R)F%8m#vYB8K*e)dRX)xWUO$g|xaRiP%h{OnQg$E~)d)}U) z_04ky%mSHVd|=e)$TW~1#y02^ zb_BXg!0d_%d@$?g4XB-w>8$)KC~=UeT9n4JpTVDfKTf{!Y8rCQNV;I5RWDo241gluD z`I~ML{DE+%dpw=Ke3hv_5UslUOdtH-s~XyOa1S!pR!6&K^-99*~U2=*Jsm zgy5(WCA{{_g5PpN`PG7S?P34op&3+-e13gvR{MX}?9ZTTd2On;_z22C&Jj$l!%SPB$w7 z;ePf(4hwLBhFppEp2@p1aRl29M%q9e*Y8HtMUlOUcltmL4|T|;Y{vZyUzSJD2vMXD zgdXus74wYUHP7PtqOZ|YHcn9l3NV_p#=tF#F8T?^(E16caLhTFw9YuFEA|y86q)qkWhixgo3b&8wLod5KTM?R-D3g9l}vz-oj33ockQnO^n|TnP;l%1*Ggf! zMfJZ&R&l^;4FD#Tj!+>Jp9ed#uK$PS3ps&dS74oFoZvhfMou_E>jy-&_V#h*6#2ou z$qmve#CaAF*cj|lF*2A&L=A{?cYgxGk`vxR6J#Llguidi{MPB%hX^3N6&YLu6(da# z5$lwkcVNcK>{jD=f(X1aqVZAoAUs6v0vPugn`@x}VS3G4!!>wr!1D3j+>hrrxw{-5 zq*i)hfVn^({#CIWSo-7gk8+7<^T962dOdguu)Gwa`<7>Sy=?LR_QH}4wR6pkZSY9+ z+Tm4#cX^{CR8e!OYMLU2O>37c<)YlPP2n?>QT}ualM!@!j>)KSx{2vPV^=VxT4xt2 z#aVNgk!hu9I#PkZ!ZTW-rTk1Y#aUz5j!DD_x~$bM3AHIbQ%cE&PB&=z$F^xe@>KvJ zGIHmMZHdf-khrpe=U@j9*|x2M_XZerNo^yYaL(xaZgGfTAGA7}Ppkh7_bV9&>2{~J zXk~b+ND-_5o4sf3#=&Q*xt~xbaeTl9C>YY!iV44{(^;=R zcK$Gmc!+Y8LPXHY9+=yY4>y5zl-8=gj<|tFTa62QcPx#ogVre!_@SQ{?%?<%(BA}C zxRKs38lob==9bf&e_Y#t4u`j)Nb8L4`yxBJRn3$sJJmO;S4n``Eva|(Q`>4&VEKw` zw+}qwbAMH!hmQ-1`?u?m#2@_J_X1sdw~fN0K- zVy05(Ed|gWluNh!ho}FmJIO#D_cbMd@`O=2tu7dW53I%nE`K{2;&dcVwK7Qcp=($Y z7){t0_>fc_A{Q^Agp2+}L0b@8p@3%ad0AqzRSC25Oh&O?RwMC>azlHTCynwW&H^$m zcMq6YPp~+0CVHG`0*@$GTYZjJyO5!Iw?`eT%<|LD=LdJwBwH4lr@i)Dn;?^igNUB6)QZe`W;tP{G)b}239%qF`` z@g!OHtQ~dknD%dV9%d4>Umtv|(CZSwjXe|Ui+q75y@nB;Qr8K$co`biuw@QpG8HcJ zn1+U?h@14VD^|#5aT_XMi639VXE&4KNB5t zD@YV+%AUmPFyaCyWQvK-pIr->y7O$chJEvyd_2*{`A}Oosxf2Eb zQIzWOkqXIYXQH2D%o}cZbhkqIAneS;AGH$(>C4#`QyrkJV4#KkhQ2wAL3205tt*|+ zyl%VI`Gq9MDIvU$%RWH7^R0x_mpcZZ-W*zdix&HVJpM<+CJF8B`@9)rjrxK+8xC%> zpMUD2_=sNdFY$fOp?2K}?VdQ6LBq>DbXgyll&3t&x=MjEdx^v3Iv|zTOIqSk zKPfeuK$~vxRqU|(O>GN;1gsn{?*r>e%0UWFVrRXi=ww{4)$>tA7vDI3`*xa}t(1Jn z`N(+IJf8+J{pCS(Qq~)nB`%$sew<=X`Si=Dh1#LrXgqP6EKp;CR5 zIrUDKJYJJ6s+CgWKI=uK>mUiz$c{BX<>aEP5fNK1)xt+7gAR3guHfsW;exTc2w@oI z30{q?U4O&Q>!lb-^iolNhjr+q(-f24Z|!$O)C#(^g+#wv2876djj}m${k||(*niV_ zP%+eR1OHS7(1?p6Wi?{D*_@o+{K0F6zkq~0O~z7KHZ-(0LR4r~)XOo7B7$E#@<9Z@ zgNJucqs~A>^>>+os)p)e*+OAi$(d$$Odit+JI}!X}ht&Q|lPj_pnjbq#F2P0U z$9t&-o{j1ds)R-!eCBa$5BR%^)vo%S@0x>`!?$G%%A+~b=#X$ZlUvA;~M0w_G05nNyUfdxQ`WOgcrYf z5vi1cmE}zl4J;uqHFl?y`rcoJqthtztbAB$w6nhpe{3H)Q)T+g$EiF9TH*$;Xv$Ei z6ZoyS2YJrb^#r%fqG2~o=A{&I1}CB2C^A;NKO>lNz9q*76fgW387OdhP{L|)Qv@fR zWa50}oeb=hzg}=4;O>MLZ`bZ!OuvbwjCKKxx}C{_Z7*DlP{{XG*(Z%F%hHCYKZu}B zW=H&KX6JOlGvoSLcGViC-Dxv(BB_CP^4jS)kr5}OBw=N%$%jHx=s++$^c|mYBg#&z zu(QI3gIxG&vfrXx;XbqeZcwA1;7Kod4=|_MQUd3a9Kd9Hd19>mT69V=wzs1vjm!=3 zsZS#_yNoh+@9!QuOSFjdb!5Ln%)D+jK1Jg_KXKbbZObd(NH6nui^E$o?R$y8((CEh z#i1bYO}iS8{rQE4o7f4pBzAJirl{IvL#AL-GL@zFriU`4IX`tqj4Vp^b4Be`6?1=s zykErf+m?*ywF9>=I4O_Fb3V=K2fj523~<_hXt_}%mrt4_{~+)f;L9&N_r-P_az*g8 zvm+uVzc7hB(s`-uOtXs9@}>_(O(W|hn0njxw|PNsV%Va;M1iVzES;i;f$WF}5AQ+$ z`sj*LJKiPL{$63~PBQw4SK1FzO|}neWDp;_z~q8{_s(60C*)Cac7bFTg4qm0z@dNP z=Tg{jV|NXWyah?o&{Nglw6a(9Ltm9nP1WzLb5A+!JMU%-E6S!EC?2CM1U|(mD{R-u zemLVbG4z_8tX02ChUVXtmTZ-l%@35=za08>%x!6hfp~eSN4(PzZ?%46(4@pOde=Ba$8hdRkDA6oaG(C%J#(Z}=?|Zda*=RZG=di)x}@NAte-hiqw+3+%1?9)3{UtPd=)=w^ITJaHE1k6ukrVE3~kO*r&V z2h|`;!_qTdxd?bfbX-7vuaT|#Op;%wM#l{bg3aaE@Y^lpZ#<{On&mbN7{gbZILS)r z%Y?RR%v6+UU1E)3cn7OFW_DA1bp8pE zpU)>3ugc+J17*AW;Zi4vvd`+Wx{sexarF@3_}}eya`hrjdO~PI=(Oqmkdd{-UEhCoam_S;_MR z`rR7SJXefREzNjv+1sn1M(t)4XQti#dNquZZKKx#1`w|PX8y7z5!9L(_?6i&W`Q{( zjKm}*J`UkjhyG^=+?50F=}O2grt=z#2iW0du^5=Ow^27P_p3p{<4?Q95?$a!aVfYpC8ixey{!oX*bKE^WtdT=y%>&vp54a zY@hFy%s}_-AdTGv{OdP0S!~f7rZ0$IieE~`U^~0Aj*=?|s_UKmF&!|&h7wD8Ze-vj z+fwB)g;BAdts?d#d1 zzPNr-yiB~WFZ2G8$0?y1md7wR-#kTn6p$^bxTPp{Nc+pNqKQbR3CS~b$atD#N z8wcEUyyqAKBizbwj{4KZm+NBjzL4sLED*LHYCdC?V5e32)VD^XSaE0Y&eQ^WBSA0PMuA|F)9 zfXl*}Ea7_qJ4U~kv1|=W`kdOx`)*p?<}Ux;8r{zo!i{5B!TwikL7(_S*{O*uT}lRc)klqXAHTGkD<{bJzVW3%GqD^|G4VL4YSC)<*xOF4tFl2@Cw)Yq4ub zxy%YXBLQ(87&AfDk{phwTANIIOFtJGlOb+c=#0&ssz7a3NLRFGZY{FLzyT-iAmN3) z#u|%EM2fxYDIXi5^78%f!ziaI&qi*Tv;6^HEU~;KW#h$^P(}Z9@22CbO6TpcecNbT?8%|=V|?aZ?^{$L zPk8wt+WplG%Wu1RvJ#en?-vDP=pO*@kPj#;&-gIaHtpLHFWIln)^9yM%xoOWjB=_D zvYq*?9Xx~@n(TwNUyfy)(0v(i=Z~$Q<*(iuMf!f5J|sN07eqKu(lkz6UzFPoU*RU* z{z?PdAXBBr%EqdsW#DX8ZVc_YvQyFdy_upNBY<7~Yixe0-qSkndZ#?bzG50E8{g;I znS5Qf=qmWSvD8S|2y1EICsVO%*S>kX1)JFy^X|jc+f$0Iu8P?fba0~Oi1f{o&KloG z;g7-sA3GKOu#`n+H&qp@O z>@EB$RvdMNjG?P#%_J!*4O^_hH+GlQ%C}E)3)$G%dnu}z93$?} zqLE#!y;0r|uG>w1lA8IGLZDDuHGtS7d%g&R&GBKB_H^mmkw?nR_6f~tzYWXLc5<#> zI^9l_E{T^`htE&<@)SyI0i>BXG;2_PHVr!BCHdE`VE!Df(k~$yZ%b@XzV~H>IbeIb zG`?*u_=#HI=w7*)Uba5BuF7Ew2@FSIMoX#KZP6|@R~yqb%j-6;TB-hcA!-BO35050 zf8XA)MuyJ1ksB<3%hgMNNshrcWENrt!way2{$f`PfKM!jsfYs!cO6tR^IJ8Sj zs*L_XI+~O%Y6Y_h!;*P@p$6CLWMzqK$%*tA;TmVJ#V3l(d6e(re$hMXkRDj0g;mb# zmxU{khLKICVL}HWD^fBri^c`BoZC-Z#PuHKVLy1J{3!UG~|MiBa|!T5Prd1FP0P!0=?%(@TvRQ-C; zDh;Yxu0<1~IY7vaK3cYD%g(B~D-?yT+QJkAe@{7ohz*C6rG9R0MWN$Gf!WO%7eaF!g{-RdxiFnmd|$@st~(l)xeDa6{9v{B{$Yf-P@;_e zv#X`=x0t>c&y^1c-{BfjuY}#{_(2NzLt_YE$kLgmsa6%-OC7 z<0!qj^^}y5sL;jZ8iBx_yF-mtwFoj5F;J(J2(lR6B}-l{>s6Z~Y|d#f6V}ik<=9i8 z7ETM|3F)KeGx8djQ5MBuX%8)T3%GycV5k~oBP4NU;3Pdqh1C6iUHB^K?aKrL;hg0l z%jtwt+e^Ss=d4l4Uy$8@2~Q-4Qp5;bWW%sw94J6U>Cl{7RL*}9DIY?3w#AI5anJXX z;+E+5jdJb1<~y?o`f)0F0&O40sGQ{=!Bgcdvath?NfWCb z|G6hunaYw$dUDJ}OJ)w{S2-^vH1=%Jh*8~>b`F>^-i()i>XFlT=P3VLz3@RJ*ijiO z`PmU`YkXsnClwtkk}r1Fp|~Q)`;)CtN6Pp0?f_HOdG~3-!fTz_IBmh_@-_}th^Jh> z^S)l)@6U-+S0cx9%~jza112VV_C5@KHq-ir8n52O;FIs_dD1ZXE5+#-3bfsQ8KGX` z6akigo&S(K9caQ!A*k}+00SmgePhetWD5Ml{kwzUddfXGoa3yDN;D3(^dsu4c{NxY zK_NyP)Le9bR4CS8AVnqd8p@kUW5Vo|hE&vq8~Wmo^wqTg@rzB2^?U>u zrQ>1*7wb;MPTsy{B9|c`&Mc4x2DC~A4bj8i_21CbUFRt@`lw3)T$>ubC3H(-F(=f$ zamgxizQ{0$6fkZXNC5kPWW5DgQ}N&TuOK2N9U}##yHik7O1hB_>FzixNDh%sL0Y=I z1xB}$3g|#UKsIu~fd9eYeLwg8{GSW1@6OJ~xwy8oF|OC={d(^y+)S#Ztd0DUqLdyF zxYrqnbVCF}&t6a6N)Y5=!F`kh-Bf6HSo&**36xIlWB}PMpr(N~tkc2;YDZ9l2pL$Q z#~V*#7XjWkd=4(*03D3Cbv%Gpx-URBAPGsnKExl!jq-#t5S~(5;8gSHVrUBG-Zg|w zz1^ak3U`LqU@%ykVe|33z0QVG_Gwyv$7q50_o_h&-=;$tFc|DZL{Kr~Yq|Hr1mUHx z^F~qBh&d`<=>SQvFJ;Q|M3xlI4V$_z8U^CB(sKtbXRsF6E5GXEnjg66;n7~(k2$l*T2HULF#lhYh6Vm^Ot4wQ|LuWwh!~0549mj=a*>q17Pe>>L^=e( zLhHjUFoBOqvEDUX^#2}`_|J^Q|B0!?WHE1YkbJ#8wrDOy4dmuN+7#A3YssCbxRb$yn@_i_P+{mVr z`ukJ>LBMOI2}1I=$mAIep&S^ER6?-AvinS_+_Bt2XvxUXPj&t_gcc6(W8;@0&an<5 zLD|BFWjAyodH2Ka!Ij@?Isj0#yi7PUbG?Bok3c30`2uV``A_MDKPcPii~>t1@Te>v ztd60W5QAX0zdHh1*q1Ii-&Y8oTgSJ-%(2VCOaPlx(gjwrCxv)l$ARh&ur9|kyAIP2 zlHLc0vh`jFCKos`a+;caw+Ez*qYC?9hN9 zVhqxQfmVgpVDw}moqPTH!+8E@{Kovhi(CF@F2VqI_U6C=8uBbm%4P%aPzu6q@qxki z_ImWcx*sU|X&8ge2KFH~6+i^KJQ(f+k8@>*8RECx4~IxD5{8a&&Pj2u*x=_M&}9+8 z^<2!EY%=@J67SeB+s2fTk_;mtpuLt(auO<$f1_$GZK08JWAfJcnvwbD!~eVXOkKpG z<@l@==NeLRu(fV6Ff}DOrfIvuc34AtaKqZyV|T)6kqAstoyVew zP=QLwjo}_b6k~d7KCAa& zbS8mAHu}Fpd63smB?s6wDk%{ zaM$&HXu@5FF_bt03DvxlH!O}N6N4OC*9EBZaAj`a==QD^CFnZCk&tyEh)ox}gOCh1 zI6jc#4Nej$LT={^?8Lws0`}lrEk@hzkU>hqAvi#e`z1?KLy%(gG_)M0C zCIMTOS0K*@i7Lv#xw6AqrL;IumC5HDmVsWif5pjx}vq zA8E|RDH}RiaK<7nfn#`x?0>B(T*jgQzdcI|fuILtJlq-Q(yW*^`q&qN0l(im5;=! zQdo&}GP0p}${tON@P=3rhS9@mdcpU1W)xQC4QRQE-f_oR8%GVUr}KAXg>Ypjtn{`B zU8((NoQ#X)=tOm1=1^$!+wI}}`N6||hxBL~{I$LSB_I6Vl(#cv;0W2tR{Xk{K$sAK z;(@N=zW9E?z89vPe{y!J0IVh=O8r?^fv15)Q!6`sUFbFNpQ}?}uz7?ktedb=x8Np$ zN5v!%CdKj?`t|E2vSEtSX%rjb{gg~g=5xq!dZ>7i1YgyMZCM8bjz6JE7q1(Cg*k3& zt(7AJzm1+fUw*8|^>Kv!Or;{{viO_e*T}t=x)%k&)UT!4J0w@G&k=T;%wd-dSF-;% zw{??WVT}N}?aP1MmN{M0o0t^H!3m+YJ0IG5mF$?+yz`8&db8wpN>Opj+g@9LKOrA~ z2PvU!VMRL85mw{&C4!FZ5=Di3(!|7fv9QR9+sMfDc>7F=`8p5q_y$ao2I!mIw$sd= zw5hcO)}zo||5bQk-WmA)@he*%u;KZPNOX+w?15Sl8~IM6;w)tm-zo6m$!t0WPS_N2wMonIiQ5iM!E|X!(hINW6I)G{$zq3D?9uJ)+$!_V69#4T z)V%szqk>sP3O_AHT%AkoDoXZ?8jB?VJdXQa``hS(H$IlVz~cc|!KTI&@WhG!5>!Gj zSYHbV!^)rVwU~4tG1DRY)bBotH>^Xg>mOkr_UNHWE6zu=lcd) z0Xv_ZsPD|-Up74@OCzw4-|%~q=Q-;%E2^Fe3!fpRjoVF ztF<`1+&Y}eqoJ@LAFajyQ zZRk_2acl=FUWoeA0$x*KW3<#)QWElsklEqV6DU)tAsJaxv7V`J(ScR_%UK>@e!RXj z#r&vyCaZ7;%ll6zw*x2Yl<|nJwa6a2;#GC#zHnx>U!)fli9>58hCRmZaw86&Rw3Wl zR=g0<5K{4LznYY!P%;}YZ+81sA&czDGC0EQdk*|bcu@cJ81T`mjNaTF3;S)D!}~i~ z4>D15pL7FCc5&gYz0K;X)Ih#NdA%$D&WADJDm_f|M9<)8{Iud}(#Wp)K`!HsHA&6) znyc%bbMK}iLxi!m5j}Ar3jj|a(D|C2yWP^wUK)jY{!vzB+BEh!xCj0&F^B1@FONdE z|JeEwaE$${4oFs|B;V2OrsK!XqEpY1m54od=#f-UX1aPuai@2-erH=+dW*7Q*bF#f zTjTuv`}9*fa1^zzL}wD2i#iBPZ7y>VBqEFtz%xm_{<%Q%>if?dU9x%4{LK?akKcge z+RTxoeB!kR*Sm?8@~t z075DT0wX11N#M)DZn3_T_j>5yS9Ht?ZDsY14rRPqU+tqJkrK&Qd^Uvnv5I+0y?;OZ zM1FOlW}%SQc*ex7t(CkYA_blJ<()Vh>Plomk@PHHI)196-IBUFQMi^$&u1^tMa=56 zj&8q`Oc|hPJ;AvDG}3Z|_kOkclE5U7nl&PbgljS`HTGCmoYn7X>{MD6If5qaMX*NS zgR{KuuhD4}N}MLuc6%Nx_yItGnM02Xp3n1|eTv zlb!^JJz5c7ANj4>_2Sb^7AwVyXKL26sZU3+ak^UzMH#*6`_xCGBD-$&z+BbO=Ji$_yg)vvqIMVMPp%Gg{96CW`2ys-YRBJ9q?pK?EZW{qtIX4pCB zD0ph5pT^{rm?-M1aU60k$Rv_Te0!Tre^2%oZc(Ul>w723tJuzq*Q!3w8ZHA`%O=&Y z7v}xu*Xh)eCMBLnN)cFbL1n|ch5d;76x;b);bn^Ww@eIBM5_f(;it{eE5@0Jmlp*Z z+0YQ+6&s5m`|{~#e?h~WJEg->%JFI3WIsIFy_if$4c?S7GEVdg#)c>ySEYy=Dd6Ha z&@O4;t)Ts;U8jq!sBde9`*3pMWYTPH)H0CoXXCRUG`6h4ys2AYF2^A~k!@ezyz6i^V{m1e zDV%)8|Mh8Ojg=Rtdu)&h$M-vB!`X!|88y}oN|h*mBr6yrUHW9k-?<%H@=eZ zUX~kbv5tE0T+3X*u_mCIkTuTrbPK=bm+MD!Wf`q;^6%p>WD4hYuS=?j9sH(&S-_uZ zoAWSE>NxA|2d2DlKcBoLko5IqbGg~1D5??y^4 zFLSbo2S%@dOJ|5Ni@GyE6Z|y%?lTB-ZDx`3iT(YL~A1KsmntiTh))!A63FfVLY=rntJK{YFel3M9ENfsa|Q(VZ{6 z?yaW#Br*T(ZcGMIuHDCt=+GBz5~tBeQX?&#US-K>A4U2&lZE6CN9y;PhXG&V(p5c{ zY#+b~zrh57PSVTwq8l+*A4WdswI=ovj_PXX4VO78=Dr^z66Bg`Dblep;xC9!PoDMH;ZkpcXP}H8cR*n)`*QKmXR#!F34kcw{ZDa)Hq`X6 z40B>GDHo~mtIsI#^Tx|Wi=}5WuMgAxk_yok1@^3MvSn^U>0Pg>-7Uf_MMQ!I@xTm! zMd74yK~~_|ql0%x3ksy=(P;+9&V|nG({o;W8w-l1PLKP)Aa)h41hCFd^}R~8s7A1E zS+0yGQ5)~6LSX+x;DAaRM+(2%ujXKzRbkBZZP~iGxXEpIWN@Iu`n5jdNpA&ez&hVQq+KosN zc$?WuqD!mG)}YwAv%A&`Y<71?rv{NL{h^=tmJrFajyhnQR=#NcFpE}mRSYAoXF2#6 z-Tzw<_jkK$@{f!5K1$yjhr{d!@#M{-YE}?q=Y}LL1de+z_`<}xNRDr?LqdN_O5UV- zolHZay#la$;d18{8|lC3zGcSnaEO1tipG0;#}^Z)Y#+=OO3eJClINRTa8t`U{N%l; z_3yEe_Mb{DZ{iLQVH^-v77x2ey2_u_CN_P8&d-}O;|^`;yErj}Ef4Rmi-iwx+Bz6& z(Mkq0?-*z~2B)OHvd|u;wMs4!)P+7}mkn2m10H;|rN-G7WMy8NzVu;titGO#25`LO zoW@%mT4>aFtEYAGGvaoQZ@JCxTTF+tmOj*WUHHPbESXib{+D?c)9L$xAz!ji)Ic&* zIL|Z-UEm-t>(Qk$0e$4Tt8<0`a}!EeQE>SQ-HHdP+fBGeK--^S!TsI`QSNW}A~@R< zfj|D0jQx#2M2d$OX75EfNd_}&ce=?k`pxa0kus5na4kI{g8e<)Y)RaaFW#)#qp2lo zO_@K6@4PV*GG=b=N?m)=PoN*vcW@>(oR*(aP{P)O(@i&;_*_{zSZG4;(}eMGwfoP) zf@~VPmmzE|neQ^TCKVTp{gKVCV+ZS}blUxQqT9NU?r@HyUSexmtscm{#*KO% zyiNl4JV=EXUW?tujoav}ZDM%RrBMptg)lNL#okr8*LUJZ*t!!iba`J+8OSkgZ6D_q_8gDl0OD5-pGhC*Z$fl>pZ>oyn@+kFuRYV z*5Lk_KgBg*(O4)1CWK#x1wl1W)5b} ze=K+Y%B=O~} znxx-MCX{Jw&ejl>tP zF!Twwz5_?4xrWKjGU~>swL1|270F)=X6EwW?zHCdPudXc_wgKtc7vVqxAG|9=BfiuU%5ifE)-hO`R3>Shsr^l*qc#7 z#mYs>!Nm!)2}4E70)^OACN;;c#{$}mh?~C<3cbskY^cC&ujDbMR(#iknPQ|;o5`}6 z0Z<*USy(gSHO8TDx~WtZft$0WN`n64evbLMz&qq4@=^s~C&*y@9n zQ8L!is`jaGsBK3|eY4B9KbzH(mYO|Dw%;!F>}a!=B-S`b)mgU3FdnSS9PXj<_h#7p z{kAm|&eqk{XZ5M?Ylfey3(LH8`V{d!)#(vY!~1IZVab9j|F^i%z+zG3p`yQzqM_#@g|nR4-n=Z6`8~FW zH^TRR(2O$7r_5)CfXqw^+($;V7#1xoa$o zhD*dUmA9k2W>t}E4YCo{@l2dG00FjSwk9Qs!!=BSMrIM1vqDas9j&3S~6`$mXRNeo4U6r zGHaiz*9tPZoU>YFRi~Y?HqQH$8Pu@8Cw^DR;pM94lVNj=)3C0bXJ=kl2k12Hb<8E^ zDjZ$8F_}?xPE~ZuWo$in?Ouf4Rvj#4c?;PotQF@5bZVFH``yg?g|i{7bqh@RG#;zE zyn9TPOH+K095*NV7^rV^DO@Jnmf+0vKt%VL}8AIkXIkZo~i$o(b45$E$FufoWP7~J6^KR(T-Brw*m- z5BvKAIAYDLNpGy?vAmouTxr!JXLEZQg7(_{icGAg`V2b}uV)+VOm<%m8oOh@6qhz~ z(tiB0QrLcYZ2e{b<__+>jg}wFY)I@A5p@ZQ0UyWer2>~c6)vF3z|mhq$LEvH%$wTn zi-%2-o?bt$Q={5X=$5ySe?3JHvM?9lukxE}<5xbS7jicxi7jXObKXvj=G5$KrAtf9 zQWxIh;u&qHND!GOIjy^p{@vi;DT(d*`pMl%D>aI#p=zNYP7`h`t)5|F*S37VvYGV( z5s?s7yO30zEte1QzFVug)Z8_7I5|kIiDY*2k!cF7jYQM3wK zqW%b5jt55A!yO}1Ja!JHpSb494q1ryYRTDqqsaCdHl8ZBZIo`o%t_-kW6pg}GLy6q ze)S}<0xX}pKUdU8MJat`PK!zPwVbd82qPTXd8ix>m6cH@yEn(a@{{Sdy-C08P$<44)u=3!s zvXIRE5SPlUTQmOZqa30`(2Z|>6-W$E?xV4}l43FF&if{IXLTSz2&D%z?JX5p#g+Mp z6h%OwQ};k_WxU=1$-^{&5WY=@>RQHoQs-C!()Z>ed3dXn;&_t+li>tl{`et`bXS-VB`&fsq=KfFvy}+h)nB10KW8O0EU_Ut%6*dpqjt?PG`0!xpaT){c53H zEQ{gRyKaJRZ?>oo?oJ7<;;jyW;BO3Kfggr-)S}i~V;jPO(ueY4g85=x1W*C#xsNt6 zxY_NkaX{Zkq*kJ7`V0laNKsBO_ghCk&$_d5=)#+tgsQw2*!zaeBH$L1lVXUw` zJG2CX)FmVjTXqD6_g_5>&>oDiSfpW}g$>#lAw~s|qIqCz_kk#+f8Ux7Iut=jbwh+^ zhRNQ)i9l-hX$oCKP+L&o?llYC;!U0v+8F^fKmp8a9{AcDU@F*nHpwN-R4dPsMCOL}(KtF5U;A9v~8- z2^b6$ROe9v+;DjBkkINKnKuH5gviG*K8(Ea0A>^!>}vfk*vya($-`a!f)WOM7)rxi z1Y|HnSmBi6Q`RA(C|VdNShYZsV_o@X4k`pzD@dZuU@LvbFbR*`y1Tsmt9L~qrk2^B z#Q$avl9B8Il<=coJ}UsNg8-d4>qn6EUK`MFPYNAdzinA?1od-3!^F?sO z@%jj08Xj>V>Lr8+BFtfzy_5oB5@0Vw%^iy`sMOoS1>6vbO^(j+4+J!r7!>IjrfBtTq5Fxnf zE$Qb)fMp&8-SNm^kdKA&p&tIvq`(1YPad*s{gMg*{q?Z3aIleq5fKG~T%vy<7fk3M zVj;C*!;}L&Lw>bb<46e&WCd5! zk1o0!KkRh${(zDr3KlP))SXcZh4KZcR7!W$Bz`z}9x8BkxQ!}W41M2N@5<*$j(P;E z=yRrGUQ3@BFej7&GLVex@(_mmGC7_YA@|_SeaZqd)FJqAo4z3d8T#?R7Dc4JY=Sa4 zp#8##Z&nFbdK(58z5{aFS$nXNoVo~E3LY$^+aFfaww>uz<`LlHtZ2U6Z!jfcA> zNO|{NWLEEX$LzS@R*HOF_aFSdYj8_+cSLUwyaE9a{5N`)P0e5M3V6BR0a?QgV}PH9 zAJ|>B5u)$H81Ai2q3(KsG}rn}ilnLs+vX~e{kJCJ&?=x1r1z=yQ2XZ0=K5f$IHAo> z;o_1Xjeh*9@afHv>DyXF1UA;=q^}#Lh=wt8&e>9A!vfc%P^F7Xu1ho2VQcNvPd7PT za!Ci28&MHhgb(lx4SamDr+#py$gsRte3^jrq>#O3n);NQk?UP5`CH9If zOXPZtlh|G2q?Lol>r^>d3OhJ0rg=C2Kfp^{LpA5gc;`-ve)=I$d@z{iN^I<9C&B7d_^x^Hay2zAZT4Mr z36D?yrK+jwS^QtAAL$D^qled9lXN@dMn8iOE-kCWw!XLRwr%AG4-99wE!ttbknm~0*`1ql! zh2{3glw7-QHIC5ye1Gkr=6t@wufoThDG#ZF#EPxt5Aubrx4GDx0Q@J<9luT+>PWuY zu3)DVJpPsf!w)4W-lDoNQ9Yx+kW__7uBthHnO@M%a#_$#DOox3UO9o5A7>#b}|aD5p2jZTrlhSX946>13~tF1W$R?P{W)Nk}| zzvatRpw?f<2OG4OzUmNYm?(O2<&3Quutr|npKjVD4*uc>P4Zcv1y#;xAzaierJQ{z z#dqQFsy5~9yeeMSYB4PU0Jrph%t{6v?-#3+AXQ+3+6` z>kB-m5NI&ExBWxsnZOEdv^;+~=f}sjNe}a)AU*;7X^n?VGr|#D6{Cq7`5&Q*g$DP9 za_B~lM3?gOd!FmJE2Ql`l}Q?VPkj;Rn59y$*(j9@w9LTGzK_FnUj4zUFVhxUIye>P z3%-}h)jmCu)_<5(|CU=kOD(dDKT88o{=;*{>G`Yj*%!;txSY3b4o~uZg!j8;culF} z26!A6W2Jlp&rSy)zvxz3>NYy0<=V5&(MctzPfTuj>}|~f`|^I9i9>aOnoiHVOUX<)4W=MJ%Wwxa|O1aB_xy`HTy?WA&ngnZ4YXD_XhvHzEi4XO($_rp2cZN7Z0 zJGE5-U!@2|GABxYW~C;(mrjhEx1{@cUp(p6qhKtdeKO(cio;j3ikaNW`CS=x8@r)lg@d<)D!>v9YH= zA+V3qQW)A=uQla7lDC(RrF~=ZA^FwD^X#8p2F*XSzX3tG=_U(3-1&DkSjvDGGdt>> zKsIh^EtR_Pp53Awb@eC|KYOHh6DdNI^&WrnIrlAYo}KcInmIS3;+jOJMqYbSfw=i_ z%5Pqk`Q67k^W+yIr+K-<(c}rixF%Kv_B1Oc9p2ALUt|PVp`Th0Ok2G9(&j-_f>sU6 z9EsE!dEj@WHe;KBnl`iR)Dk>4%nt*qqq9@4zIE%6{0@BFjjyyxY?@h1URNv07X@16 zZO5B6j0T-UyriP8NaK#0WCBG+vPKIc7tSvv)RTR&PANDds+LzXjo>er&S}kbWE_$S ze7<-ZkC-v7wFt=)jV0~H;JsWr4O12cmU(bbM3eihX@+A2&6vN`n`+PpKe7jw>ve|Y z^ozqcyzC8T+_@1EZF~$9Mq9sYsT~=4LLYQNVH&~10)18ktO(BOoUd__c%^hLkv#Py zZ(6@)yi)Fa8@Va>#X2%I+@5-}*T?!jEJ^3>E5xTvnxgvk=XC!p@;&wWs#!RAE3YzQ z)dz{cynJWRtJ4=y5kf zu`tV5(FNJYrdu$L#OI;>5iDZPn(n9Gb8otr_YPy{^_+19-N9tHjIzx28O9F zvb)?BE8oz{S>lhGnsD-S`nTww)Hxz1?_aZNpihbLymE4$hg?r_}>jXCd*c*9+w;jI>4hd;!^V)C-mL2;S{i-`^6R zKRW%VkPnU!JSGg}N^+thxZ(GE)pM(mPl`PMG2 zRz`E7YzjK$Lp|Cfuj?po9rD`@?nv`-ADR;nF4sd^iS0bC)Izk03%xPD7BDM?p5Pgn zmi<v`JnlaYl7)~#}y9fkH)4W z+ynMUCEB%(xH(ZJn!EJNv~X0KKRcbNJUc*EI=s8G`fMp%{oUED{W)C?{KKJZnn?3V44+{`=uI(;FswuZ3i&~LfG=xoiL zX0-UDx%7_fEaFaJ%uPUroA{^F&QNN4rM&CiF{zvh!sGn)QqvKe$ZK`HK-ojt71j6X zslcer4KJOttk;Lqe=>-*2y2vz@9qbF4KO{Uo{P>@i4E`c*n0C??9<_^x&llHN>U;=hKdIZkDapPE~sKQe~3A0t{mnL&O2qadg^(sjlAz#7X?9%$Tb| z5Vh^ZQXf5lk18;$@72ji=!ZGnv4+!DfJde;7YP0!`jf!TPq>cS})ZU55TLXuvQRdIlr6)fqTkt=s{OVE?K7Qa7+;LZuYXh}!*J?3pz zCP7DD;j*7I;uDS~=Q#I5jXp-_WhcNY1Ma=cBKDK7kHdYN6eDnov%EPQJ!H1)uRQjE zduUPgYkyh5JZ)pvvYWmH!02eLOOrnZA#UWemgphsP>W*WGFGGv<1cz3d!UspT5u!B zHcqsH9nsiUg?MoEbNkWqq^+>%ahNPqYDp{c3SZi6F-8~v!wR=@h1xwg5JYRlH{62g zgq4v0IOO|Tvm~<~pZ)Eh!zedvu80F2@_#sTCrfsc-d8dK!?yLIdOx)@)=DA?N=nHj zZYA zfS1Hg45Q-J_m}wxVY0PZk=^-?o1^C8|1!l3ho?3Z1G<0rT`lQ+Tk>Oz?K*-TxoNBq zv)+dQPh2_}l^^Zz?-L8_R*PB@QokYSH1zQ%l_yQuu(9voifMZ#yu)tpKOdp#r7BA; zQ^iqw@Fe4x@WaluR>Z@I;SIB{j--g+ROU>lqcX<7>SO|YQW&<9-O~@@p@(!jVHgZ+ z#0@|12rRJCE4_or?(l<=Vp#uYKdLtx{5Z=@z{MeE;bHcjHpO~NXwxzHu*|iPHm@h{ zDPc=vfPVr`+6_dZ#qcM;wVDLZ-opZo?KoxEF$v)=Ip{Z9bfn z4IH^mJ3IEBwNNjm7UcsU@hk-HY-e2x#C`8jtot@1P9rQ6otgQ-kB3XnKMTU0z;(-L`%kD<1f0&+Ne|qWI_IEsAclVC*#grnU0EW%!^;DZZD2b~95cO-j&q#?OTn z+G~*3cZ5|fLH?eiIvs;;sJEp|HL4X*{6NDMnlNTZ9h_VK*~)3*4y{z^6vJr#lV4n! z+2M^=0ocfPt5Ggj>J! zHcm7ZHSig{63zcB4*yi{5)q)4kzg8y79>$&DT5r-2vJk!;rUDLdmhgD%K}?Qs^v@? zsfDpHL7aPI6qmRK`2AL@B7OwazQjdw<Atd>Kii6jMT4ojNElH znoe`b$O{kLpt3+?l_nm6KIxPXKrWqa$y=uhm!y!ceEti3WE`VPD4~ zV2=As{6w#l(NOv{wL@p%WS_F&S*`1QA&65>zC#Ndv4ysC_|f$Uw>Y~$k={I;+XA1HJCB= zTPB%%KNJ@Pa?d@}{=(zhA^9 zMOSabL}lJcq@0s~WU5G4Rbu0F^mhEH%Wsi7_8r_OltM$qg)G?Z%tJ0m)<#7rC!Rnz zxjLan6`oD9UrUTNgg?RVoc93)M6{69~%z1D1RH~v7KaZTVj^`O&gj~ zDP>QXjWkj~nUkpi&sdr!FDu7+8?%3UdAjzUEQ(P1Z6!&p#NrRspLchMtTihpbt@)a zD<X61+d|_N(;QsxdKm7y4p*SBS9{t#nwwu)r^W$D5hlKe#!6hfjSRZ?K#+=irbaX|;qc z#58%(=VP#0eUABQ0?YBMLS@h@6XY{pm`ty>GozSbcWm?`!7b=`8Z^ScJvLHF&_6cP zNDw(TQcLhX-Yy;r+UEc&Yx7Fm~uKnVQGOZIZ^+;r8|~-p2~O^jaZ#eMhu< zYFyJs+DQ>gw>$^zpobGQ$E`li1pa9hQn1l|M-5gBW;)Ik97eROT2j)5jo-zj*xaT(OM^pI1z+sY;v5kX>HxBHKRU(LMLoRQ|$zCXHmH zJ0Bw&21i|hrpOl*s!h{ARumui1h;q}COUI}l?ydjVEh;Xnx*k~vYwu4W4<%-ZI3>u z!kg$dvfpz0Y&Up^r(dhp>?6q{^r)>i&%Qu~la);3g>i%rq0d1oW`!jZ!$*&ZO$phZ2hX{iI)^ z-4a~ngMCjC*kMx!0#`OOb}32AYZQI!{Z`8qsNFSJtOBi{QsO&KW77Jam4rT5gZG?bz}n{ffJ%eUv_yb%_Xx3g zH-}y|1xy~RSx(Mls!1+dP{f3a$8bwtq>jiI;1QTJ4Xk1IGjnYE4e>o!?YzTf*WHpl zkne?jr2lniBY%D!tB#CDzS*-}SfU9htt*e!zgRP-B=PT4>M*-ZT~*g=9paa%N3Wxg zJznB#*nADnTH;?#9kDKiGvTp^{&&K= zm)I%!srIosztv%G#NeMhn;x+xpNiFs0+kwzCH@kp$d%$-gfv+5Irr;O zz&`hPKhJ8OsrY8>!1fSljT*NDb8dHZUp`fU8-g2b7Q8(^De^?0UkcmQ^E;;36dB-H z)v{@yL*O%lc$)tr*QY=)o0Tivmw>WV)hNMjHC22d>7dMVwC+&}u6Kj4fd&Sf}7nw z=H;#Ziuh~F9vkJH5m~k6U{B;C0xc|MlrrL3z_V3(`A+q&RVfXRlZ{cb$xG>roi`$j z5*Ff%57_k83t~U3u5|_q<;n|G#@xXg95(ynd~wWOSzQ&&|Hiu0uW=+6Cg-CBaA_S# z?!F>=fyv^0CsfoUDU5CD?_-d#FfH$S1IHb*%^k8Iln1rSk6+%!3++zI zO3W2w#6abieW}#=`CHsTyO;^xvzT|kmbAd|2}>D$CMU(1RV+!n?S^DWahL#>#7cAi zHSuOHqjsJdKKV>;>;hz4l*n-unV@@2Fvd^lq*JENV1TyKK_gyZERZA|AjHpPOx+^T8*YgI750K zhG4U-P`UoQMp16M*Q?xna3c7|JCJQHgO$kciuOGn)-+)B? z8AATQ8{=gs_x7z2Y*YXVngf=1ABaRc^yS&00}+%)=N9*X7-V{1LM__jE|7{`=uHs3 zmP84_*6skwsb^r2Idpdmkm^1;ddUDJblrd?JY@GKs{1f(BlyOX;U**Xj1-{>xxq(! z!+P%ABq3{hd+gCP2zSWMLv%1q^Yu+HDq&q#;93a92fg{PrtP23H?oi$!hgbdu(2NK z)fBkqLpfRmPN85&U^O>KSNW{%1@jaAqwbnN<~N^#`yrhXU2FH<+)p({dg-82eQFT@ zH|YZA5C7VK$29K~e_%cmKpr3h7g=wDF1!hb)L=981z@6{!<647*wbP#^rMUrp3nsB zyk3+7LIo7UiwUga%VZ)s)^#E7cirte3BC`tGIV}KK14V|{oncvtP+6Z7WDraw|I>N zjMpgzWoTRk>F-2AlzS=Q>;WH;MB*?MEr_o@J>K5pa_E)$lXQWl!in4Y3;O#B{HxgX zcKA2>xl^EC{K6VW`T7XTcaM_l06RfI37t;?(R|GY(R`x@B?dlYQ>FLKLAlmB;Shux z)k1FrXxo;6VfTSQai76D1P4GBLoM!yNx%(XTa2J|5EUR74}rkP`f9AuCWu`si@V)P zNU-u9Vu9J6hV=bcE6|;Y)L74ktYLJgB3;*4AZvHKlaVjiK}L>=iifV<1DRvX>jQhV z0b+#;#D-E}VZebM`UN5sx`y@Ng#lrROR63Q^j!dkxBh<;%(BB^t$;EWIAS3HW55Pa zG}3iV!D}+q98?zbnj1d#Mt16Us^VfVYLJHW7r_ZJEL!Yq4X9hsml>r(MqW_a4A5}K ziRlf{{P~|If&UYdheHAUYaDpqTL6XvQ_K9CYvfTHwIG9$MSIhoA>-k&*8moGa;g?v*YoO!KkF-Nt#eh1F7 zF6xf{)D#RCn?USHbs{6?cjov`VDcvEnmyxZ*IpLae_5TQ*&4|~tNSai(9J5~Ftug5 z)B?UcWnyvdD`St0ibToV{6DKyWD_Ma3igYT02$@?w&n@j#d2^`f>`~b=o_)%sVV9> zP2mBy<+ARx7E}Ni7a=ls9&DwLZT=CQJL6Y-sEK)C+lkk?VtBn%33}a^AyDF;SA2+x zGh=n&Mh>ymjTC|~=gxfTK4VsQe^Us>?vw96v*|vYvbyM6Z{?HisF@);c*T(?v%i~n zAfr51i>$w$+CYGQ_{(J(SmF8+RUTm&F*xVJXPJWy&i33{ow}X>X?>7uDGjoAJ`wj*T1{nlKSO} z+cb6u{_SlGuPt^PdKS*nedOKeowHkc)rUJZr$~|RldvjH;Nw|m>C1yLAbiT){rDR| z3eWCqLG2+8EY3kt-9Z-;RnsXIdK#Ku)5T3cN0i{mO%MF%;&%0KIQ+NkfA*YR95!4s z?8_iJLf}Vk`%eh2f^P?d7*JPG**oTl_#wTiSHA>X7aW!yAj~pzGT>`A^HdRLfdOQK^F%dZI|V1o88jY%eg~U%_uA9j@t~3$ zQIr(42k)95eh?1y{)YcEy~EcTgsyQ=rQPQjkP6Tve~Jfs3>^%ph)ZVsEa)?|W%X3wsH#!>*$k$#Qw zqDXV>7?LT&HMf`#{ySuwfTDlRCZl*LyNq4g- z>Fy4ZkS-M#9n#(GiO=(%-@DJ=XPkeQi|HBz2Qrop=5>F*-(4~lyvE`QJTpCC1A_KEF3knY;c>h+0!0-K zRn9^aL@q-U-(t|%bzfW{toz99fH9gEOmC5pwo#ZUwO<=~R;A}CiYR|X5N-Wr^zp4f zh0(i@oT4%D4vHVkUs12M7*)Qa-nxNe2Jpe#A(7D*tBNvMP-^QQe9GUhsD4SqxUeIqCsLC@3h4Sik73AUSs3LZV;c&k-9@ zbs4Rsk2pka;rCx0VAW}kA3%2kW|0@M1;kYvZFz@QIBth^mi27lrGt z%ArJ%3`ok!hnEZt42Z_#n06lNmHU8GyI>LX94|r1+XWa3m^6=RV5Aw|S6$z$mX1Pr zYZY@L@^6~G30-zDpoUC#E1(8uXcA$A=FNLlIi#T)gbnRC!}tknu`bLs)US7RRJdO2 zROft^FY->6>nNEQMsg%Hm0nRmOy)21`rr9Y>+)BGtT67E!!;=xU1^=!O}PmIHYt?-?U z#aYU&UnS#rbM=Y>=F+0Q=bnjW$e&TbAMb@bxqg;XQcevni=|hoHM54q0O{8%HbnUZ zbEmSXbn&{SIkNOJ_7bNEQ{Uc>FaN3#d)?4E|C;q&4D($fts$3XA9kx5ZH7Q+Q)5$! zTA7j^8?mbf;%Rq5MRZ=N75ZPsu}sO)F|^kk^o1i;<}Hh5#~!_`u_z`D6^UX$idWqi z_BfVkQA$$M*=hFoo>=`rf$IxDigX#b;DD|#E{=Q^o6|oV8&c%?Qz-d&4Q9Vc6EU<#!ub~Gn&jQ zJ$I%B{P_86gOxhwSfQz~MM6Vb`C*^e{FdEA;gFQD#k^AzRk{_|f^7w~v%0S`ng@Q_wFzl_-8tY43W+w7|Ph3rfvtxlb}%A%OYCyDyZh-jz@AS=xL zK!v8Ykm|$!b<3@#Twr-8?})GNh21e(kqmt@0a1X5$F#wCny#aqBWK<%dre&us$we$ zIkfH%-%K7y7S38hzKqw=GfEiuil_b}D6f2He{VryPX(|E{r0jn%VB4irOcG=^SOx{ z+ZOBm3ZTkrvJ7p4)c}5a^FEG!sxdxAl2K#9)~|owP4_9#rL$6i)c|~z0t_=m@`h+P;@wwV)!T5@62A-m4uEdniqvqob^wN1F29znVEgzBNb_{eLKG5 zML2Uxr4r6?TFa-K=GP_a7ry>#YBvjSI-W^wU<1U>#hC0M;s^o}hf5EKt9JiaI4Aa) zC&a-C)0{{+tX;fP@9!5qZq|@4@ zUD#G+?TL0&-It`L7=wZM7Tyo(P$Uy<4_vEggD1q1$szTkW~jShMX|2jNK`!LOI3>T z^_Q$*_VN9cUOhE60yMJ8Q*jMEk`g=ZBg>C>m6saUg62lVQEIWNW@_rpV(gdd-5$&1 za?#~~Ok6yHX7q@*f*E2<+g->u9FRP?;=df0bz>f8!Q2ZX4vC7F$`(?n&z}%S=gu=; zwGjJF=jRuT!~IuRP6aO5QeFsqVe~IA-Wv0HRebWe`3^@nQT7#9Fl3TVO{dMx)fR23 z`ME)owZt!^Mk6(P&U0OWdynRA+DOWCyNJ}XLIcFhCc|ijSsDJDKlf;Ez?rA~2Q~+L zNFVy!hI`_>S{THl67CyB#&rViksSE|SJ?%7j9{al_bru8AY> zDse>4c}&$r(-iU(jMPm3F~U43Mxz($v4~J&J!NZ5o!9RLV4CxM2~YRN5kzW_u1UltR?E-gTV3lZOTNGdRvkW$;{HwJ<4-qh4=WB}0sbZ&FAD4is0)Xm%Brk+ z<@J0tL0X}6E2T7Gi^-zLBeeCMkBG%{)Xt&K_umCvYy*2P3rkBMsc9GvduxCQYb z_no-)Pa?70H0Uh=(DRZU zUV?JN9T=BGZ@lf*bh_#wuLo=JSB~`8Zi@G^^w&daH|meui%yt@6Rf9}ei60xV*&TP zJxYc0yCtF^;#jHthG!~5cJed)=tZ>p17w*>%}ZY$z)b)R$D;7RhT{qV5yv7}gr8;i zRU)_Bk@cgOk4+w-%IG`1dqNz`xBONP^loKWRlpb0C&Y0SlVa|GopvMLiCrDy2w!Jq zO~6XJ_DKEcXC68PptqSWi}6xRDBeeO{yySOyOGJsC<|Y>vCUCzrbuH@^mPHQUn-6+ z!)E^AcHil|wL=1KZ;T3!EYLo?KCU$8`ph2m3*Rde5x!wQW(H=m;BFc_l_@E=rvO+_ z>9QUpVU!04dQUO+$2l>fPj@l(ag>j155`o@>?L_=)COW;4PKxsjm~%X?X<_Obth}o zZgU;ax1R@hgn-D#)Z}Ns+0GDsK}Kms-!b8L`QjsJ!pwlY{7^G@Wn5^@!bF1i$l%Ft zEkeg16TO5n?IqGcMz9S3ZuKVGUM#YX_MrUNty*pvp;u&Ck03LuF&n$pc%qCztP8HM z*vg9pXNL%JMjzZB-fW(E$|@AA@ddW1;iUvcF(OU$;e^X&mIMp!cheHn-P1nB!)X$51MUJws` zpvacDp}_rzaClDrmJd*M!NyEA1qsJQ^_x-aifiNo)GXRWfv+!>35EzzW=!`&*5A+} z$x#i=7g;3_zb11oUnXT_#Oay$+KpA1oD7XDbPH!7O`NSRiJIJsBv`~}-!lyRO&YoZ zXw(ES-5JTS`Yq*B*@-*`E2U60U?2@iGoK=(PF%hGhj2VR0}01`#QtUSU%~$1@-0rG^aO`+ft=EIyi_6PQO=9{KmI` z0I5FfTj#XnEp&~d1_j6AK3f{CRytc~ok|LD33lPJtX7?bEU0|4Qcx>p={-mGscgQ{poE*@axs!Upk(T&)d`R?nJ)E zzE>i;nd>;hh5J;|43O7;YtKhvtRu68I}A+8iZGsIGjSEu#z0F!UC7 zE(1jmbxz(t-VVwf4?%Z~fPN@D6J*Lhy%5le%b%_g<#D^o0)#W9z5BG-xDl=MkI+|b zJ4xS-Z!yy<31YHc5~tqlq&?4w*pHby3)yRn%@=NA=@Xs)Y8=DhstW=RiPNNS`y77( z2ZaN#c_oA0Cl8q?z;SB+CP`MEeVf~YgH{ONzVWB&R?(r~1sH~Zn?|RHtGup;l!OMx z1c>~50hj4{POE9jFHEJceQR`Te5>ue{0H&&PNKipIb9d0+{9Nek>r~1VZHuv;`?&J zFEc7cHr^T!i}0ro+vq|ARea$e;P44>6u27mDXvtSSjhLbT3xb@E*XD}&^WFhOD#zZCim+Gxy8+~IthE3Y} zLUXM4Gepogt7k&r;KjJ)x`{e`1b8&_?Kkg!%7g9B0JJL+Ne^wkYD^Hm(ajh#a8qAf{lK^NGU z0JW*^YZrY|N*0sNk4xYC_A3(#&Aa#k*R3hfsW3FEvYw=#q-PFjM-9)iaiIG!1E2R+ zegP&bI%7<4ikO zAbP{~6YGJRRw+_@%ng8snc;cL{D-ae2Xj>KpSlUd<(W$g0h;JJ+PMQYS05sEHZ2>R z&xukc28>)b=RF^qKi5n5{H|Zr@7){&exII~zNgr7BkAzt=w18Eh>n}xQxBrdJR0cxi1#wH#97Z*tvoG8vwCnG+Pd73#D z(?PRpJ}8H3ufvw*;JQ!A>Vtj4cn6`e&8`Nr?_Nq)W`=8BUdV|A#OzXpUb!1Ek(lrm zTgxfmr_r)b2=Yo*Y5njgIlfFSoi0Y4o&PZMGncyCPpp7vTxDZSBSr$dZ=WoN^&^df z!kFn_iXkYmHr3DPRD8ZbIFa|gp!0E;1f&@D4cg0V=f(c+a;}KCMCT{d8YKoP235qt zYcKv%j5(+4jQ0`zGk`p)C+I$U3l1{Vo!3#%o$}Ymnz48TA3l#=*S_I!U_q4>dK2+RJC4pkrX-2ZI9w@#MaXXF)+ue49p9{frNJOKzrFmo$?h=}&CxDhb~L zbz6IZc`lKst`X`|8%8dCRo=I)YPf6mqFF$u-i#zVs= z53WnTy&;SMt+0+6DE*JmP#+LA}mZ+N=k&8Dbas zjcK%e_YE`9Opb6HL6d*6xL%-*Jchb4I-0GQCR|Mlxb@39Z}5eDJCJuTga2da(e{}b zk2mw%6~fwjt(RjY<`c#cXP5}P`VheP!j=UK+n!EA*wWUy$5}$|;w8f+GV$1#%RYLD zFJ?aL`?6U&OcJD+H$UnrCrzR!s73dlwj=fX^wKFib>=C$? zbMC_fGzpT_%lWv4)$=+X>-*QvOmp}i{nwF-G_YU+ZUK7YI~KG$8APjI1Gjn zj2Bw1ostm~tcZ3l%vQ8o_SJSzXG*tA*)cSMSpgM%N_K+t4hybGch}N&SADZ?_#UNX zgg14cIrXF{TJjBOH0fej73@0Xn9_!P*d;BjW~qo#CC`isG_tW*?Q52P*ZWpz?aCTS zM|5#YN_|djuRAuLK5lsFEw#-DLEm#acoqUzt4eFavUsUsyXO53+j^`LJ6$-{rE7Q* zxT{~dt?$3BpSi6cy>*Sdv~9hN5K}&mzz54r7LQpDOdA{@9BUyuk;xYsi$w==P3s2e8LEh zJQL%|>W?i3wj5Sca@g7)2W>`{b$tf2KnR2(QZ?8&mcuqri=NS&IvQ!2D7*!(b~Z5` zUt_S^jAqYqKX)q4!K<{26GN~1H%Kv(tU!rjxerQ=Z${OkSuQpD*%Y9}h)O6Nev%j) zJSL#TFnN*~5vR^*eAaB%&5JY#wAVH0bt8OG^Y?Rk8b6dPes_LUZma-6zGy&#)G-gX zd8cd|qfnjejM!@%?3FcW)rRMyU(+fYf7D~36eLR3qv596)op2wPOFNU!DGpOzn173 z_I}UBkxZ|~hs-T=N6OS~uuu^d6_tA4_!b$byO(pMYZkS(7O6pCZTr;B+cr@umZ9XU zHsk9(mwZWc5?eLvutDINVAXSe{LkL)AJqold=D#~HjUyM)Kk}XG=Z)_fMJ~&;d3OZ>)xu~d)Do39-=n=; zS~N-}Xyvw@Ue7gS6W!8$<2{xD&mF*^t0eKn74yu0pQJ$K8&ad<8(sbMhO1#cc4Bb&k^vJ#t;{}jv^JP$FL6yNHy_{2Ei z`F9n)Ld4S)1`y&udf@fH$R;j6#D%%1C&cgCLfBPxi zuO7)X4G_RE0ZIjH7DDG|M^b^oCYUVCHvG0O5ArM60sH{N(JM|UxPVT2bsotK+v$JY z50xhXK?dd8aF>IL5APKUc;vRy1dP%X4a@~pnu4nPYV@DO;#A-|`ZDa_W4Fs=SENud zHvra@*WCS=M^k18y$P3}gU4!rc7rF%v3>B@TDuP|?_iD)!PB7R_Oi|0RG2&8|K1g8}Q}%-x+PV0FNO;1TbRf1vZ}KKy@2 z2ZF%p00=pVuMQ(0VIC}V?jKF=9R69479NQ4C%3$VzXFCtJe3g!POS%id;*&YBv;p6 zx6JT&YY~1)5UOD$KQqXJuns~f0W(Y^t39G^B!5?CWO6_&fqS4g!DYZL0W(}EAv5Ar zhraFevCR?DfNl350&;kv{~QF5W&w|dXB=ZfDGA9DKo^tWO-$eb|34N3=<>k6lK7`c z@NcKy2g`#WOknU6WWx$29uIdHu?ms;JU1m3_{M`0&C1o~I3Nx+9zZ@yjjUcCmK~^) z<{jmM8)Fkf%`p8Cz&LP3eu4zv^*>=6F#Q|I5K2C#2Qw9sSK>l3j+kxf$2=YZtg9HF zamP3wX^sG)kIOusP5BG4NQxgLw@B97n+a#B6qFb7V`;@UdRE zgXx{y5kEmE_Fv?4XmV!{hAlereE{OMOMeGTAH;tX^H0kIU?$!N;~&363H1g$7GVBf z=xC4tAh|;x$bLG`t^Oo2i0%jnvJpUu;S2>k60lbhFt^6XA(0;94=A9nIGH1$T>8@4 z4QdOpViCq|hUf4tjC=i%^+D(gF%m#}z+58_1bTq0B4{@21Md}nBsuK=A$KqW|6A^m z!#pM)=R-SLANa4xBOj3;@SncUU`xQ@%Oi*w0`7R8K8}yfh7}$KwZ$ESX&>UrX{6z^ z&UrJ*xLLXyVZTq~_?@&iBIGB7*x%zmb&Qe&7_|E^?RXxYlwUe)hfr3LArY+L1GS2Q zLrz=ACqJDW;T4gG4H%GH1YC(5{~wRMDNo#@XB7kCI1~%H&eAuhJrwZ@NpmR{nt!)t z8Qf2evWjgk4!w_p5ei8R^^oL^W?jYIfPeIqTIl;Oj0u3V3D4SiRUYs($yV{riB0>M zzh89uWRINjcNM`89BK@NStd-u9%hf7S$=XI2!vWe@3o=6fjeu^ToFGv!~9oEs$(y< z-Jjp!H~mmm`_MKCeX+)H#V`6T`NIKxX>4s<9RDSB1fXu?)$9)^0Fy z52QXzCQuG2BAD``Wfvj`;Y0$;Q?UMtUZ`3;weCxvxW(kNr{F#F)9>8=4c@7`7tofJj@KH^>XTmS1e4rulg!MGtFlpA68b_3=f_u(|l$^6yhI~ebFK9xt# z$Vvo5{Hnn}a2r7FE$PPdqbUCqdzAUhQU8k?4+T+y!m9sz{MGYa{Qq?Y@7s?9AOU6P@Q>qk)uQohU)l+{YdcE0ky^V*Py8QKKKMLzEh`=9j7`8KV5(W z$pvk;aU^i1;Q57hm3`y%>4M?^*N}$JZ719V(-eSl=Q|+$?D5NSOqa05=`pCzQXed# z+3XJpSGiq2_i-~ZR|?mhPoKa6G#u)FhhXWR%;HA))8n@*WvDRw1L_s#Y*uFg`G3R^ zK+?3VI)5K6_UBO8|Kg6@Ncj=9?J?z~Ny2d!Tj{1CUI?6~;@@Fcx+#kn+A8?Lzk{lD zlb1P3UKp<7rq(a}jv9@32aDRydD4w~CZn!bmOs;_B;JkJx-tHO$GS59f_I0F8jXL) ziTeFY0sYK769%)JbOC|604~|H$Av=#r3!{724;=; z@8p?sHJLmudo=ppyn@n8`P|!rw<}x$Up`$_NmWURNH@jjD0WSL#0PoB!AA^#svPcL z(&Ls}dU)ulHSA0nl`qY<^a%~#7K@MX9ubLV2F!-cA?wm@=Nxqhw7`>M32CS_0y(`s zn4*FKv!NLH)AZY6N3j7n@T9nYsX68W(dZ5@aq#L`eIj!<0;18#sX=kE)=Q0~OKYWm zCGlh}LJ{H1@#=WnB*%$F^?HB8m*cvqd9>!Z1}LE)zI6GLqux`5!lykx+*^dqCo#UW z!VXVLCxd~3!l$58$9$qg%k>->!g6M)qp43fmB)jiJD1t1>e@utGt2$nOlhDwPc!v> z$tVuH;PmEYg~VhvO}W%$GflZwOOD3cstTrVD^*fZPgi|TMsF?0Ov+SZ0zqfc<1QimF!Zin3B zYeUAJ6HYbV4oyC-4kbRr4ueJNPMsEo4$&6b4%HUL4%rs14jnHQzlbxt>+(tQlb;3B z>y7ft-wwZspYU%~`9zR##yTV_e_4K;P1mUhe!s@F$@^6b&@NMPuU`(~4>u0a4ZDkY z7x~2aB;S4V;nsCd(YA_xgli=EggFV1E((d(m|<`n9)JDp8KL&meEsWWvS3UcaKqk1 zZ|3^(P$h$SQ1*j4Um%UhD`d**Ovz6@^)BWSR=LK547u}iuTA7D7zX{BboppiP!iO* z>LMEyrY6yTdyltY7J46ET>Adt)$%&5?>T)G#`u;0<2K8C(|hSO%NZ^E;m|vKlEcm$ zD$=USk)PD;;m>P?-e8-YQjM?(0X9987G!q}hWGL~>{CVMu#=h-CJW4&^10Q{q|)AO z>1{g6u_rYLOqQ8f6mVFkex(`Jv*3n^CpD){8V~D>?+6X+%kPAlSLC0;4huw2qB1%Q zLhyAg!X_gao#7zK+MCA-cnqiTa?JH3*tCqgn^JO@dYiHd(Yl*M3DG*60F|74QgiAg zTvBuJWMGmf3M7=_R6}k!$&(0@th2e3K-Mr)o)E3K$t6e4P#Ze=+5AFHw|+!Oj+)V# zAM&GdgfwB6!I>JOp41#M*aooteMVUD=rr8rf+@sHUv6MCOvtfI;<@_Ud&J3Y$>p zl1SNm(ZgHyk`LgG)djGx@mB3`U&C@<>DzNoI-L!CT&f6D(~a+GvFzkalz#3WFL&y>MJOJa~B==asf|@F*;8^>02=A$x zq0(m(oDP$K6^R0)P*g%{^tEmGxE0Z1pKAJ;{FH*IZsr10?P2EJ5OJnKy|9Xcq%Snt zvLWh2Rv)_93`=eChF-gkRgWYaw;=S_xB(;qUtP*G;g!^YlVR4tI7AcKqA$d<;#Vl| z_2zIa;;XHuhm1m;0|}|+-KWMgqOY4Aj?X09|K|Jp1CC4a#MJiVd;Z`Uq0w;Au&<&WR0*)Eh4 zUHE&hQXOE7l3a}@X_#w{^EXpyIPj`rri#5bs9eOC&)NzyA0T!qAEu1sbCJ!w#l4EX*OnEFU~xB@*VI*Y}hQ z>xEgE(#F^a5)p3Klr+UF^uH#%x8Q6UKm4SO*j^Xy-(}ewY=0(IBwvu10OIm5Aad;DhV9W77r7C<7`lL-%_EPmltVt#1wx0f}@I0binECt1sBIdC zNC7usWUN#U61=+z8}~I;N2;^B3;Uu&jAJb$d(fsJxbEopwmFBrB_aeFor23>%YSp- zo$=5Koa#9f-nJv;TIM$?~axGTiO8f za^)705&tc1Jnw`X&BzZp?x;;9(VL6kKGAPRi}2C<%Kh@eN=xr+N z{uA3sx}N$Q+ej6*1!Eg-#OJ4)i|d{?<3O(M;C21HfD<5)^8j(bO4kcB7y9{B+tA*u z{P?%Fp+OLd_DcW0z9RD|j|*ezyeKBe`8A9iu2#jJSfDA`T_n^{`SP)Zo?| zx-ApQN%U#OO_`JH=tZfkk2|b`1y1#b+;w2SCi*nuYLCnLh2UCUMpq<6u%Hc&bct2= z%a-d``J)GAD&RL_-y_w)MYQ3{vOYJfo>L04{G!BL)n|*1%x{ChcVAP7yL~do85|ZB z_U7f87ji{{yyhGii|+uL{e~>8yes2b#=7t`9CkMohhSw(jT>#4AD|%3C z(6>`2#s3V#)!uM@-7HE1<6Os)5f*iPcyXZhS^>T6qMgzqcN%#DrR=zYSZENX>^w1k z%%oxVdNF}8XQ&2ta5NEPe7fw?RcLu00!LAaW^8z(A~EHvhi$3gU58G|eGhNFuCw;wbQiJZ>sNXomo4mHp)IDUWp zWUuh;NoycZ?yLm;)fx$~KU}ME-l{hbkOn4H^+Hh`eWkep3MDrBf4K&aThKpTLty3* zj zDLm#~)!L0*HE(^3PZxeNo;`=#0@={=uwiIUm>Q3NS--TtQO1L(N|$l z#I>y#U|>+N?nJBwSjhnADj2 zO>6Nhnp6VQ?40*ZQ63}pe(rT;UG|Z7;$U5EYY(QVL{NN=i^}eUO)t3p5O5($a*bNu z>ZDy7XYR6sDE|5A6rB^9$uf2vnZ54)X0I5rBL9Q!R|A0^}YVz z=?BxQ-9kC|;RB1%{>kZY`=9LrzTcbdyqsZjt(aUB(-Uu+-O01?R5nWAlY&}fQu*A4 zOYuo-h*GKV=c80pGCF`-!%I%}@A3m`a{^M+3}X7gMrn=NqW=o|WfvY1xcsn7Ylf(v znxU<(2~|h~{uVcoaDJpw_St(~kWjqt-kNA?6s> zBPYA%r%L~1>2G7A;gFQJ!USofpJ=?W)(#Fs{hW2-d!KN_P7EeS6<;WlKuwc^e_%UL zSWUjFPPeHT$+3So7x!ROU>2j4Yzcj$hcGc6AJ|OBR+d)&y#i)$zKa4z^LHI2xlPZaXMlajeu@i#ca5*iZ<7(&z3De6DA zAK|}BtMlj&8j*c( zQ>9((u>0V8e17pwC&$Xr$&ThMr%W_m={M;$NN<8n;{?oXU@0bQNSda?2bhQYB22JM zeN7;0eIC__LlIn_s7L9iz@ST4mG%xwI!rk0olDr+ac zO`2JtRwuY5DLDI27sR>TFJFC-Nu#%VZ}v|8ik?=t9xd1=&k;hh#1Zk4##z@5MT#6Z z`y)#O`UR63?mF0-a~HT6erUF?Y0VznP8ie={2h3{x|@08>7(Y8*Xh+O=N1EblgN(j|5Is+{SBi=<)4uopJSIA6 zpw{)3P2Cs~sg`SlWyvlM0<-E%Bq`3t(r%cfVXD3Zb1*7u^y}W|9tNqCa zr`F)TGGt<+&UnJfsHaS^1-Yh7Q3aK92TRU)qR5J-Oz8z1CV>1{6ROby_`WM zuf4oM``sQIS7Qd1U6vm#$z8`}ri*+df>h6)P9IN;drQ-Rpp->G#~KH{CF((?+6{-P zm`9gB3ZHq|ur!jaM?fKQH+a>fUE?dxpBY`_8hz0-k)HdRU5)onw+}nIlA0*&1lX=4 zH-yGDj-T zF^9q=MbDzDpP%%dc~l!z z%?3{33=2}G{F2l?0)Eo)fK0X*wD4g;|W%Bo1c;vUssK&SBb$_mEkvT=U|m>p&IYk1*$bOX^e%W z#N%0#N_L2Bc6N)*2~c9RisVdlJ?i;n0cu9Gk|8xoS-u3b7N!@X#?b>YWeg0_S1T?; zK!UjWw1cXfv`333{kz><7!Gt_0{Z=IAp$-T{)(H0R%(s0M4PG!h}>jjD3N<#$xQLj zOt}`)>&bpy$2{7_YHE%`343dPia1E~yM3E==F1!-2Tb#61Hq3XW$@=>&6U^A-lxcj>BoKqCZn6S;_bqi;*f-2;*Sd z)5!=^e^u{s4w7?1O7aSF8LDOhL1FK z^1M^qbZJZA`F=1!G#t?AnK}~Wd67`q$6Ln2P-J6npok{ed& zfV^~Zo?B|DZXkZ2+J_elh2k55p?E@RIp8Sn?3u^@8-X?paYZ6^^So-XZ;0$zu}siH|(@tz|XnGa3=rFNr3j zQZ_3w{Fx@4TGtp`fBm)c*w%Y(E_$Fc6U=xJb-Ho;QG@^n41N;#BuWfFs^kW<^EX`39+0qsGCQ^Xr3~{#v zdqjae#~Fr1R$}CtUeJ#q->8)9R!&7G3{)Nc^6VZc6PO4#%QqPcsI|F|p78}p+ zD04Nd0?d=9*lT6Ax3PVGD{dTPi?QFlQ&@zuS!hf@DfsHrEPU2W&ri)h=QQLd!u6y8 z@q0aT4V(6y%8m-*pNY{{@PCmfg1Aq^8o8@y8ky)D3c3~35ux%~W$lc$7hE+J_Nq3$ z%5Fax+j8}Oga0ryU)&h#bLf{%*dz}G^QOg)0N`y5aSnrmBzFu-TGBpfgSM0#4+p1u zh5B^;M*xk}nEdOQkr2PsU=f8|_3wV`4?{PQc~|tAKk-i~kJMD&_aO&G>Nps4EHHY^ z3QDi%Z3v_-#oY?{44C8Iy5i7F24&jUSw)&C61g64Ll9?;ZWWGYC^M#6!};>)oQIPD zMi2CXDk@kU97<=x%2aIis+I=29{A74oB4`L9C&&8?_<5@45R};64Aul>PRfYZGl)u&)OhX$%$-mgtZA2;d3~U0p-d zD%)tu=X?*9Zx?|+t>s8%AmMleO7C;t`RN$7n|adU7c}`(uz?MY`q z;-%c*wgR|0pcQC1d_{CrA6W_48GU>Xb`v^ad??q_yTC3xI~Y)KfawfBE{B5c1oV!; z<4kBP0k|&^dfW~`x!L_tuY~?t5_om>luMO>u6UqZtMu<2yCMdl4r~v2S3k?{4nK7cUwK0hYw!M_yQX*lNp)y0F?V&I zm1kRmaStt_2Tt!tZs_vO?Bk)&#{JUe1G&$gwB}NF7hrLRe`HAbh<4{b@c8U8{7Y}SV9 zg9SQ}bOMLx4#qwx;08*Ozp`Z;Zd;TiMpH7lInTdF3eAjk_jhL(f@=#sP6d5YHX68& z?hJHou{CtxNA^OIOc6=U1)hI4b0h?78@*7+0c;uRp9D~q+@lOIKkEd(97l99TY%)GGw%3lh#j;c83+*De zxWfd&67b^AaUlB{5O-YEm2GiHcw|Wkpx=287(Ns3y^4S`vp%q0(MNWoJP@r_26lE| zr9&N9AHe2;(33TZ_7Hy*0Rd)tHrp4mL|s!Mwe)F#z&$8;aL*JhxcOIJX*_MfQbNLQhI$0d&* z?Zc_iw&O3=-9^ISw>5Id9W~d2h=6fMAHi`@^^n$*g`uaO&yBjzJ?~8NBL{iyRjw)}q_XJw<|WfO!cNBS+_8j}Ok+MZ!rku;`# z^aDAU0;YZ1*IWLVY|(+(9VhWmT@R@=)>VA)jpUGFYOBk0`3j9yO2BmQv|YI8?8zJX zU|yLl-zHxzF|*u5pm|SO57w851g1j1LvzB*zR`|fqUI<*rXHI^!E(hRG4|hTjO@`V z;arzGSdFm;2Bf>#BVz)XEqxHK5F!ncz_7P7&R&HcyqZftKN- z&Yy#qSF^Y6Lig$ITY%siW5?a)_1?Lk;XMY6-^)AAY{8CEEuq$BRx()OJ^Dk;Y+vDB zTjq$t7k#GB|Lbw!>C5xKU%BEIBZnA8%a|$7Lq0tjc z@Da?sq#gsFNnmy3_{9`>r33tHPCdp2100dy@QROxPavpG*7QJaLbz;v_x|XT03g4E z8xV$n3_FhL7B;?9Kl-743!pzBOg&=VF@VcHz~~kD##nQGMS69q@Q8RsPWXs?XSwWi z9}H@fkt>i4Sq=yjfS>ANqg|QnVf5?~fO$+leyp=sx2-7&jI!`nz$P&g!1y)bAvEva zXxAl>`YNprgQ6_dDh?@K1%(d}#Q z*d$h{?&u~~sP8z^y|0}7BF9~P=8>3{Gl~7KMHNC_a%PrjueM{6Xs^0MODFga0u+^; zxg^@Z+u=&QD6Z3j_|pBZm?Wk9T{8Ke?sxelyGF~PfO=%L63`X4bt65KI1p6I;tj3m7RCiyNH>ws(F9i%%Vg0G$l@sQfKAIlA2}ec9BKh^E zS{%9w#S4#s&%zRTw`$^FgrJ<w)5#)GaI|zvh~U zf@7fwnMGqZ_^?R=CGXFI+#I(6TJmuwLjUH`;b?e^`s;;Q&)UU+J(-_n4J`byQ+f%c z{-dtu(tH%UpW$mZWM1iqn{}7XMiuyK>IIsulr^9u?>Py^N&YXs-U6tt=w188DGtSg zx41)aDehj}p|}@{6pCac#fm!=EACRHP%KDsifbrVpg07I>zDq&d+wYw=g!Sc-dTIC zJ!>axk~OpU^S;lo5r)AS|4fV8ISLa%z>fZ zc{(A@X*%%jxl)`L@5Ny3$H&%pA(AfC^ZC-F482UEPniGHjD(77m>FT^h19Hxgv6VX zl!L~c@hX-GA27r6qgMKw*Oxxn;5vFny7PjC)pk;($9M}WVw5T)~*6x`Tgp^d_@a?{Cu2MLs9d$Gf-X- z(AV2ID*KhnrOsyQ<3|xjX79 zIuJ}k9&mKLdj619u%dK681Y_eDjx(xl?U1s?!u)I74L-gDFk#?ctq{VunopJ zNO00C%Z>Go^Ie5txvE9{78N}DKD!0wBTn|PX4gSMw*@t06|ZTv^rLr(8Yd-AXY2Bj zz3OOvpuTY!Jg=y)Y4`i9H8&~ITmI2ViN-g7K2h+PvZk5y7;}=F=`U%9>ItRz{LB%4 z`v)GuQvep!Hx_m#!xxp=#49Q_N2@=2U8i5!@J_%`opywb&jP02reIoj^X9Uszi`w4 zdtny#>Kd!jdp0@`j1+qdRuX(q)tqfE1ABYtI6$-^C(E}Z*)E_sz0x&q{jK=9NiZn_ z_P!&#l~_ut2a^rtFutT79k=efwBpG&8GawF(Kvbk5@)v7)^zXCN}poH++5UPNw-em z&!tE%Sw#ETzKgXPAt0B9}AdMqFRCXw(~f$s5-2wf8vF zO>`?V;xa&=0-oJkWKnsjNeQEK%!>9}TmZy(L^I!sIpc|d3A&LfhGspgj6drL zzS#Lq;;e3 z-nKO7l1sSepj*oC*P6pk1S(uUa+*^UVk8lvod)msU`y&4hhMRXCL>mP03tiRcRx!z0uMnKyw+2ttduFO(_YI$MO*kj-OXavh6U~ ztojA+1#?mD_jsaE*D(5SR$QcEFo4(c^UY2ocaAWD@v0-FcQSHP)WLpzBzq5$1;jz7 zQ(9nyEUdK1l1|B=_PM~l{~9n$_@TI13rGmrH!an0LoGAgriPg1|GBsPzBn;N0}&9^E@ihgeF4JSh} z5O9TyR@*P;fYp>SO3Oui6Lr>!O!@6a<$_)&VGqhmHsU_SzSiUYOZIJw(Z_gf8}~uI z{JSjLjzkqXFg;0}d8P_@g_|^(WxTAm^NBc5 z!8q%i<3mSE(~xPY?zfuM0;yjuTEz;h-s{CXeF?2dc9!_HHn7$Df|FMjgw98weu88d zMl#^A$_!pLHnb=j$*zq0V}Ci`mOy`f zrTs5V{R?0~TaMn%exr6eF(FP&ZKRiWKSGC}vYo#Aflr4n&L1lc-t;!zt*tAcsi%Wt~M?PD@GurOLWNmZNl;7n$cXoo)Q_bDX*LXLh?wyV5#` z(x)8ta)V5ZMBr5KF*)s&XbkUhxcK;mKh1@-sO57Y&Ae;jz*ATFT$X_C;e>c_krJu3!o5IcKe)Rn6k1a#{ypzWYB_Lg}(412EJGP;N=t^X0J5$xpQNIVWE z7c7Abrpk&|cKj()6xCy8CYZ7}j$y_hh7L^vb;oSoR7wHZZ?637UUpmV_AC8%JO9ma zA{20%^qw3M?($}15+n-eVu0v^mVi?p!E?>ow$PIdC+{({PyRWHBf%084JpH(_K?(1 zhugc-p?G1`3AfSt6t+5&L>JK=SwiP7zh4!Pu_!HkR{il-;VjiLeO;EQq0&<*W%&;v zKcRl6r?2wLmS0Nc6<1|0fDQP2hgzEwHUDnbW>C|9^VLC~>(3{*-pPCl4fiyf(?Q`~8f!{EX@Jr%*ojQ3-uqYP=1jyzP1QZ6K?cWTm-*t{|tSFNv3Kg}ogSG(bGmW~rW9ra&;$RaG1 z=sP!Awd@q$2?#Bc2BYO>!PlGEnw0u!mA#ec0-bGCJ;@Ml$1XpMBi_WDDS7-4O3xRb z#E9gpZz8kwh6TUMVlS93b8p+p?^A(wpX&1_vcpNl1J^KV_BLflk~3ftkIZ^%zmroWU#Zg; z#2oL|jDIs*I=s=hmcR;pO3ag9RDmt&_znAzY2wK#U!FG?XJU7foc#HT@PnXg^kk}Y zWti!t`11oJ_#NMdr#s^ST50qr^)?(XXHPyQ7iV9o5Zo91+g^tLd(~-b1-ktGZ(n_*oTtv`e`<34cJyRp*p{4wLV@hNfFPy36_EYys3o0Aj@VN-im@IC`e z4Zk6r`+i-S4YK+&%_GtB1Q-nzMx>OKKB{q=eB5K2@wTvf)qvNTfO_(WTfF+n&~r~G z#6nu(TPMd^%=Vi`xq5FV>-NIs{2u9`0haJ`VcP*Wa|$jUk1L|7V2liZJYH_LVhh47 z*J$p&A&v-;*1i&IUi8J0Y9^SWbEt%#_9!pU^c?5yO%HR2Sz4aDI3jg$V|g8?AnI*# zgoH!2V>?8h;&#~ySr(kz`I@!M2A#NlPu!4K8>=hkkd}Az>P|RiPp*K0;cn#_+IWc{ zgkXUVoWc>&(sEL=7g6Y{vi~62U^i4+&31hf=^hzKGCj2f2{vF){6nL+K)2Ocm`&BD z^hDT_6_&G8r%*o41q8Y-$ZJ0DT>F$WzddtB%lQrq(?ZS656Cp*PQ*;wQj_cr_+cT+ z8PLHsK$mpCY;)h43@F7ywa%nQj>N4Zun1j(c2wkzP7`wFKl(gftH_HWAS&E4ra$V1 z#n_-&uT2;UB5Ld|NwUY`$k(zTy|9=GtYxmS5YzZ>!N4qMekmYN=I$X1bk`h;V-hLmXn2ggjeD>ToQc?dm| zipqMA-JYHX6pCw@rgA;9s6NbiY`^6|ApLSuvD23(rQ|A=zc2C;iL5-R4t@%^R&n&S_Z zh0H2-+KdS24=IBP$w$M6FX$>ML->yi5bb})A54G-|LKPwVZKx2&$#1Dzc&Rs3r2)p zZ>Pey>E!!}JWx)2_b~cZ)6JpHdh_|Ja5vc%UyAV(@t*PPW8&DC(AeTn=sIC}UkgQ_ zyf&C*>8A3!?xJnjqAQ#9WK+jsA4vYgZHZ;DQU$-qYiP49zLQIOwQyu?<|=Nr@s*&x z10WHtHP^gV1K56R@R=XfPxLZNJxd=t7^B4JD&4e;p*Q9mCVI(6wtFje@2Z^a!pcou zfen->Yg1tte}Xmlb}$)iyxvUCB*~FH0(wK-xDL%3&pt|IvN|WQfuYhYa!)y#H1u;-mU!CZ%tk?QuA+N0Fp+p#lj5|&ax2OY5J@VD*Qm5v(Rzqqi4$lD5qis%OSGZ1%bo^N>5 zs8Qo78;}!wHbB4~^n@%Q_kLT*EWGlLJ+??x=vs(3wOO)_ubr6gpHw2=b$)e{4@fnl z^Y7UYR*cZLbiyNFZgBI0txP;OpK00_Q-^yrvwdv5+H93D|^3r$cnm0(p@jsU`bkj3U z)AX@VSg!o}Q{QyhxoD*Q6*I?&od{%@%*=Vm`7cwueR%m0>Lh&^df6{{D}j33 zc^ia^cyfUHp9cq+P3=wXm`xK?`2o8Vo##7}w_Z{YAEf1a*C5Hp1djQ@06<#PfMiQ&1uv}QLPUm!mAow?IN!3Qa(sA8bvNqSeaz1QF zlk}GBn)b_tK6tSCZ%kv1&VIt{>(eIvfq8pw{;q9^Nz|A0u^Hfc@0lsm6Wjf9hkVJ|cD!;~iG5Ni!;M0uLj5?fHfB0XijVpmy}WzRYx2k=m%d#Qm;zpru!F;c zaw5;{<$Jm-AG)voxW$!6COFK`y^QlKdjrH@t`5+|Bx_pV{t(!%jw?5RVA?h5Ka&&K zSWC0P9i`DIz84UbPl);XEnoDxzE$W?B73FJfpTpY5_v$q*xxk8#yk-%eOkq=gExhP zlyWT9p<|L%3XK)2?d&Ui)IDE|*M5Gq>hW2nr?kpt=v4U@^Gr@ekm{%;oIU7>_;Aml zTln)P#msgRz(nBWxqk*D9g5{{$wo&FXvAAy{+1rSI#MrL77@e z!PB6#6`|?%tn5o{F+xdmYDx3wk{f!> zJwRdbNAt?p@71~!MOFM|ENdHhx7`_j_e>OYtqonzBt<+xMbPm`h*nB?ee<4Q#2DC# zdgmNT0P@prhdPpG0MR%Wzs63^vnuYnWV~Fx!jyB=lyQ{5HTGq496Gr&>*xoexlc3)al{?JHmUVs+6^qnhv- zu+86%#8{)6OGujRy=Km>X(k&QEyt)EUm#470hWK353^kf)NehDx*5@Fmm9Mbq1+!Y*45jS{GJED06R;(je`pr|DU*5zD3-_{$OGmd~{U&KU$5DI} zkCnJj9lOjBJ7!zhX?E~>uK8_ccv5|WV8+)x)R_yWdelX_ZYI~^ed4bNW4>ZBm{*6! z7Jx<9>)B&+9g2k6dL+v$GIDL#@NqEcEFMu&gZ*Jzx~n!V4)l{zVhS1d&ixTCvK*@M4l7>sK%-g*@2!45}N!je!%A} zePn6Gz%IM6d_w;{>vEbdi66^@uiQw*mojjm*e(S)&>lCRv=1v{0z-l&V#4m)>dOxJ z-edBw&BIabhWXbk-@$W0-n9eA`b>#0@a1ma;x#$=6|Pv}A>OIvh>UN z`T8*@vqYN^5n^J~;@!_nTzlJq(dd+Q8l=>6`h&k83F7K#_-< z>(GkfFW9FfbAZbeEChNR%FTDrI7!y$Hi_S-_GJ)cfgv#t$C`8jLHKrc0T6_JcLoFz z+ik{`LOsvIwZy#TjL65krT*hivbMkxKOflpK9nrSl3H3Dfig^iEQiZpN9`E!Ciu6Pwp`nSC@-- zCs7-|4Uenn{``F>7(oO;-wApUUEc}j15zIy+5=%R;U_xf^gReZjt)(F@tz7AIYt6 zPGi9LOc7ArTT&rtT__}Oqb>{*w&5NMiP>-ugG6qeghCQFPJpn-;0?Oa$EXduu*Z)Z z`Js=o8~I_6p&J0|gKq?YbxVi)gnhn%`^2*A4tnI;JpnyR?9zcA8FuqQkNmp;_8r;Iyf#)aQSB7-*26WfyPuT}oy18>HA}Y-i6B6-9D_3< zQY!)pulXW)Fd-y;2^bLEz65k33R-kcz8sWqAWZ<(0Yr;%^9V$Tzl`we{t$uFtq`Hs zZOG?}DvsOUZ5J^Z!UB@SeKiaxTCV~@sNtIw5S02sIB^IEt`@Qu|0`58J3lhN_>B+i zlzoP%bat)y9o-(Nt;2A7cnat(atp;V5)U{K*Dq^hvzrCfg>gNMD}{btfh&b~y@zXw z1Ki_A4fnsB7KuzrpzvaGYRw+w1Ud9_#D=Zl35Hf+}IXS*m>v z+@jUjmOZ@tco+KrY4#zSX>(NUhz>klDABbBE|lV$3l~ay?S>1bxu(H|5?`C+uHoLl zjaWmyw}@E7yoW?cA>GSFNTC6NIDIWBK;}jQ(%Jz0sN0wKUVB}f;t_=KlzBvhvrs5@ zet~@6m_P#3t!8odSN<*jiPg2m`W;9y=!;}G?>_2oVoX}KE1Dg@NF|vkSKs8Sj`ge6Iee054`hh3D#$HgMa>} z7~SO$@K#Cb&C;>|uee{A)m1K~X8@F!OUkZs|f{v68^X_&E2pSw6SL*q- zY{V6k ze-0dt|Ax|$5zrG8vVS9y|2f9|cTChu@)yccbR*qpbFe4>H|5X3);5SXVW3@zD1|OQ z@2Y9o=#Bvlbg~OQZe~6vU_xZa=sJy_5a5$4BtWbGHaq_2N?qO3Ai=48P~gACrXs{D z+E7*v3j9}ur63mIAz>cl_{U*mF%8c4X!jt6Byu2LpB4s0b&OWaZnHpgCT|>8goub= zDF2bzJnco+r7N>iP^kpsf9U|j!~Hil@o!8qLOUOD;;{xH&UhYSiG9x(;f?|k?W;qA zF!j};Km_~hkRe<%Pd?ps4rjth(4-AvWN6k#3lcP~W^g%pZG7tl3BuBMg3=}W&Emv< z6EX4X=)Z{{{#`>7)TuQu`D3dEX$`TVhWy)5yIc5!j*%W&`+QM=*o_3#!DC-Q;61cR z`#wmlbi%><@qB6V&ezFz^8@CC!C2XqvVUFim5M*Km_YgV!;uV>APo`{0kuSd6-_?b zWENJh2DOJ;r|I4DJzn0Z%iUo=;zwb?44dn2I_e^Mo}`USCZ&W4oNl>3K_VNRH{C|| zP1Cvx1YJagBIfZabEc%4-g*GR{1_4Q1o)l<5e0E!rXn^Tjx+0QIbea-Kg1({RB(Uo zsMoeBfOCfDT38>(ZP&O)g88w~g+x+7K9gD0Xf8wF^_OIc^&YVDia>rH78F06SVDBi zc{N3gL{>yZR>s!#8b9jBRR;A54+%dJ{7*?5JZVgU5le%FuyP1o zobOqha(8l1e{q`(@T4AL!D)k)8-ZPHlw zE^hznn(cj()THrwuJdX&;G}cm$=46bFL*ET@uBH?moI_)uXf*))v#Y$k5{XhOe(OV z)is_P1IYrmt6DwDioi2wi-t&&*=1* zJe7bw?M@?sGm9y9$_B>lh9CS0HU4ak+NFi8Aeua2wBgoL^hU_Z7zrbf~BA(nbefQIPe01Mwp+TRL zKvBxtIR0RpOMDWw~jCw`^?t z_G=d+gR%YX4xBVO3H`|uAdXRZ+HL~uO1#-j;Aj8G=&PDFW%zGl<6=*y<)P1*woXBh z`y(48H zeFM1dMc+0O>6}M=?VP%Ke#iS|HHa6mtra0050Ig2A0~RDMn9|wa(Q3e$rvIW7e%P| z2ttWu$UZ?pWE?gh0Q3erbW(@WegS>OMyGBxbdIpDN27FuL?MUP&u1y?7gIXlNV*

yS@#WF^ zDTmxcD?(PMQr9qOc;d(fwtah=7BNc6QE!5H341Jg^DlJ!$o%b%h@>2Vgd?df2==yEnvPNZIiE)!P zmEKE~GtFN2Jw6*$5_#yifc^+kH6OUN9!=q`3`+R@B> z+SA10M9sC?2I30s?5%ITP!42)H;x1{(XfHrQ*vnj zP}R7h`zJd0I}8e{UgJrXb(Y#H+)cc(|24E@Lt4Y{`L@X|LR@LR7d;5N5l1p0NV*Y- zNB#%Od3Rn|TB|&i%Xc}^Q0k2J-9^KQ+r%gfv;$&RI~rVl{%oU4Gmu%R-|(BE zqVm}Y{teP974N6*P~oNpDzJI-!&&9)ZvjR_>El4Od{MI-=eMK=OQl_TrFAQkuS)7G zSd^r+>}nh;v}0q6{sSmHyOO1aA$d6Z{-_O}iM(W|NKa1DNOn__p`S9z8& zm|Cx@2%dD0@fDfOFo)UBrUbBkm7Dqo)a5*%`Y6KZ+^;>92w3q!x(O6kk zvnp)gIoJErF7D4hxe|GWXzg4gLP8YPbE}z;?HCcSc#b(KPy@=ToO}lsYK?$-2xZ0b zrvR)HxPW^^O?y{9UcV_`s2xm`pyzepX_w+~MVt8XTrnKAxb!&MH(a2=G?&hDa;YN( z)Ig4KI=GE?_WL+Ji}M=~-5HYxN+|BF6GlU%fgb-s`}P+cge!H4!`UK#r(MW}kZri$~|53QU9 z1{bY2?WR$s@#nh;{TTu3xnZopVn`Bp{-Y>JipYbdZHPkX&k>ZTt)x7=*)KTM%B1w7 z>r2gk@%NJ%a+3w!C0u$?wQPMPesk%UG5alTes(kfgc8l4%#f2Id;v_qj+z*3;kFdU zkm5Y|D1JwCpv5z3QC*>6EY|FR{Q0lPYW0tfxX9t)()8c#CZ~BCg9I9#^t9y~G)0Xm zeBM3LcWEMR+9rp>>X1sWnsqHk3;lM8qyFu9#H`0q$psR$d_(LEx!J4(ZchGWL*Yzzz_Y-Eplh)l8k$LjoesM z!=VQOyg_vz_TzW5RGf=W2p6A>1ssM{TfEgV)ZC;~qr5m^07Nw+Z-6!^VejV}5Qp*<6gdZ}V;w<&E(>TySFn-QN(FFsR< z9vsY$N0}u4Z9@rA^=0N|vWovf6c(3Xt8{LamP&q)3PXre)dM^!9MSn z(7EHGX|t+g>VWnihl19(^xX>gE#?QJ@q8k!a%&TlDMSKr!E3EiZQZ&AtvSE=@C}FI zX?E=6m8vbX3IU5}2{%R-VX}nn++>A?+ls!pvc33W+4sPKcpDb@Q#{~Kx|(tODYn32 zh@~}k4?#HaMEq$g{%yZ{o=;m<}O2! z*$}9w~cZA028i%VI~1j^oD5f35J z>%IiSGX&!TG1B%a-phF+>!UFd_g$jHwpE7)WlsodN-B7Q-54%1(|j*-rsld{r;oGm zFU}6^c`0H%jDmh+eGee44^zfdtWuiVaxD#8$`x+!&{z#odM(n@G`Fyfj z9Z>vMaJBb(mQ?Bc!&jX)y)WeT3GT<0_qL+H4(pBDD8C};6BBP1gP6w>GOLbzxioL^d`BSFBXJ50s&OtBvdNPt$ zDY4L*sXm;l=U{{x&L_>{5)*Baa7}vgD0$$Rq|!6C7Fu>tf27{iq}Om zoTNOcbm#fG;`odzs?p6mm>vV1{N5%`aO zsN#!yW1*)a>|=M?h~~@npB`8+`iPFC==E%*aD}rsi(*lE)-x0^9Lp#b?jK0jp>TiU z*tUp+h8I*_oX2mMM!$~!(vP=FFb1>aK+#=o4rc@d=a&`h-YGM+#|FP{@I1 z_$2+g&TmHQdrf1Ly)}9?DvqE8j^(L57B$b$w}PSFnrnZRMt2jQ(l|L~U;>3~maI*+CJd6$pFL-Ihhz1N;ElAc_ts>`HjJj4CMSZL9Z z&f=7wl$Kyzbl{n`@a!0(FW9yVzLi5k2(SSJiY!nz{lEm-Q-p&bRU&} z_}Jq`GS8f?`PH0<($) z%|CraU8Y=YSKh`7;MM;{n_?Ykl`n9?4Hm1`3kYp_7w!nVH1suejVUe4?eW!hfqIN7 zQ{H}Q&R;ctSz2Ee4!GO-@YC56c|t5@~BOsu&T&kNq~NL7&U}_QcXfC=+YBF}5-xe1T)K)a0dV{^{GboyN`qmL{ zf=U$qG3BRyJ3}kr`E`!at=DJCsA%Dv9Z8@Wk8ai;v|n4aln zZ-@9o<+q*BJ~{jt)QEe!1n-XbWkOJ+I&WuO_SrW_rks8K zkdFCGCu<#omgSJZ3WU_$Cu*pZF+~SP2S`JY<46cCQ_W=3(-VZKW=K0I@7XY7lj;)R zd?@h5dzi=8=ZxQDKb$eFZeAvxUESf-G%%@G&0l^6JN%L=Ryq@zx>w@d*~KF`S3Rc- z*cL50W7`+_RB37GA8Z}fPjscOR5Lu*#NiN7Gh}rKGBc)?*r-~SnH4RVh&OuFrfSIE zhD~I?2%kBZmYFE66wr7?*=2Dxq&l+439Ftpskl+43ZtGRPbg+R)-$On5GhQC^lJJ* zLcGnt^xZ0#%;nTsOP1>3Af#sNnBHOF8CRcP+p4Q!neL6fSIFb#bcQj`oZ<_LXN)m4 zYeXpC!;mdIr>Dh4?lfI)%A$97J_N<&rZvt*DI*15pgwOO&v!zCVevJ1w2@aO&TpI1 z=~f7p-=7qX(+HVxQC_}zu@dH4qFTkbMw$!d5u}OggWYNfE+<~Q`<^tmkdjuzrm=3^rgZyjBwGFJN<1+qOYnFaO; zsJ!lDjUbHoSCZZUf$qWHyMm=l2Bk`N_4=30hiJ@}DK&-(#j)dNB~#U9Ve$zMh7XMd@yxCq;gtc)~&Dh9mk`n21w z7*%GHHt_N(!F7TNg(zF+!ro3y--?4V9R91axcv2OpKIs$ROcI);vZ4T@9pN8FeqRF0a=kNidw)#rcgd)69P#lvV9u~o@cj3P zv$mSc*C}`;V6TbqJCAi+gW#S=lNhV!n|?lnb2_3oZRW z*)e$7Q|e^dY@TvuqBF*oZ_sS!43^33m``$DX|al?DT&2RunX7(4JznL;|L4}m%Btf zdwE%FesGghdIVVu?URCRfc^qSuYE!VdM-cMT#)VbM!Dmalka&Gi@%tZKa5JkoKV6X zB(V|LH~cn(319K(j3O2S_mLAIykNU_6uw(L5Gt$0TEH0dU z9Ou2_!rJIheHY?NTNgf|3dyAwh2l zJc#+9%ZjD%&y%FlDt&0{2@$4YoO-T~e z^+u|k+`SdwCDcR}#OA6}5!a2ep5klMC51-x*RA{}p9k{u-SEQ+`ZoHG;mCHjnL3iF znxWxcv-M;^=#VL#_`2u2>T-d%7iCrX6nqm3m5O`A@}nHXCB#3l)}*G4O%3#nZ{hMo zE<@_pAuRk-OKhBCok`LW2ro193IqDto6 zBtb?2{P8d4kmbv<(^0iD71U{GmE?SOx3qa>m%TM$V-mWRG#|3SzlyY)xla7NgRLi< z!X4RN10Ef#h2m}#$akG8A5_LHlIHi+B>$wP)#R%v3ovgsb`z*I0YaNc>t4k)L{ij& zZwsXo-UQP6ITQlz&$lCug8J51Vy}WH5cq~bX7$+j~&A3|J?v)H*qXMXr1l7 zBisfgMRo}8!Zx#dg_VbZN7VA=Ay4q-p)PIs*Cty54jR z{Qs=$29i!Qx-ISRN#TYR0N%aNz#0;ea@x|pW`9ou_oeus7VG!Gf4Kz=K#~3z9sodk zN;>`jcL;#7tC^=KJ&a)6kaonLdV0`plD>&MRrQeC)L%y)sOoV6)u9vc4M2G69B_eD zVLnOZj_6Z+IN89E#TGFI0|Xda1~FJBYFP!ci}YU$!1rP&kn)E?H<9{Zy`Se$iw8yqw1K=eiX!(j6PJ2+?)cn3#DRQ!j<)}cv# zKDFsiusaN?vo=H4;>$zP;;#*L08NDMfEKz9`6bb6`SUP^LBc&av2>Vk!EeLFW666E zbc~P$UP(NJ1~J}nGdH+cOM!O-rC_+ z?0UJ@4Z4ZA4;%mx9prq7j>bSaM1-cEj&=+4bzub}YM8rQ_`2}!JqPNL5Hj=68 z_Pz5!9Wpfi^Z+5z-DAM1D4UCTR^>YR+Dz$p=|#>_XE)6AQ%K(4;r% zz|fGC?f;5fbPbR6Pl?8lFBuSJYM*x}CZ0b$d2MyPe_9c%f10O<@tup!Gx;~gdXO*~)bWL->xmddXk zR;sp39idP_>rDq%M;7=j$c|%^xQ7M2iXoYG%C@dcQP%x`!6cjfJq}<9=-PE)`5(|> z2^k`?>D80)CibH6(6$5TAE&|UAEDv$pFrF|{_hy)AJ<{&pH@7=^iNwh!~WN_``3*9 zcUCeog7(0KGtPAH4hYZ^knn@^GX^(P8l(y)SXv1!PgKDLEx&gpN>W(?ggc!p8cYHu0g>&yZFo7(Uaf-LT1BOWc$B6(!bnx`giQqOP)N+;{@FBuyQx2U!Z|?D=Yav%UB_>Z7^HM9eu4nReE*q$Velj+O_=wAs>j{>-X3lW zf|A|~&FBBuK8e^SHGiG3A~f`Z3t!(tsVm0&z0T;X6aC{9*4kfm_Ymn1lMBP=Ewefj=^W1pL1jDL#?&neJ)q~M<>T$)Pn$ z7-xlL=_^;^wK$poDUFZ@r@1X@+f*_ws|@=*XL)z9SaBqvl7)DEH?_AfMZE2ASNX-0 z9hlbc?g8jYm(tEy@8MwwZ~MWkn~B^jlXQI|ac;6D!$A5YJet#rYfiEywZLQfOCrEh zIlyK;V|o?sI;}|<9l~|Q*6m*0NdY%?%0Pjpyr+N%IAx#$iSNXkoTTRy@E0&n!08J$lIIP9F7^+V0nBK(_*^06Qj*MF#nM8?7s_pn9 zs<4a8F}X{B=w%x?Kn}!pgyBku`L1N;nYwa2)~-rGz&glD7~oh|{B^$uyX_ zcm+F$^++hdex~D=911<-d6rTvF_`yZFzfn+^I4U0K&`}IS;GfRD}ARE04ay_h~_9O zr8Ee>U8&z{I%wf)7;MiCepx$YK1x?jrC%69(EDogq!+$ik_Y*6WJX$0%<(k5+=Sl>>a& zOQ(-9G?Ol$uiH-_Bd4nZ?c_$xMvk*dB=9J0x2`La`LKn#hmpf|)EDA2Es0_T@EkFO;7v5qs*YNjQz7MYJyLcEHDusv#g546u zL0t7(um$A1k|2Z;984G~L*-6!J#YFlWV9rR*dx5j9iuk&lB>J3IEcf;-DwSjF%nAC zTGw=fbj)%j9&)F4$Gwg`-9_d1rRfBjmhmVc1XJx!a{VPR-9_hD-b9B)%Y1|x5~+6g za-C=z0`ej`E!mqT+5;>3Q=m}{e{j#dttN4KuZsr8V zf29R;M*=1?F0;FFiXX_}vQALE4rSO05>NVNd$(Hg11(&~2};nR4x>Zj$+(Q{<|uw3 zf~z_KxE-pne5AVc%d&2l;s*-2i4&rp>Y(@m9q#W0V0FmAERo$)FBhaOVQWb4$(JqN z*(DD&a55)=phF)fh2)-cnb5sl@<0s7cY69iyuEc)96|Kwn-CZhJZKmah+)CqErj6i z9)i0E8|VPR0t9yp?hxD|g9dlE2@_lg0u26U^4oWI_ndvdJ@38q+kb9XeeU<(s_N-# z<_z6csATF39rq4n&nkbmbAp+wz55&`&w+>hLaGXjQ=9u)m`C)pka7H8R!rx8Q6?!oWIAb= z|EPTS@erYWg3_b5J7vNlWjG#eZ~%Nvp-*6HEMv52IHr zdvvYwweEA4Y!&a3E91<4zZX5tKiTqi2$2b-yAL`NKR$r*so6ce*7_Rxc~#cmMbeKg z2pBLDlR*`48L$TMFXBiU`2LKleP4?1_y^yhVHz49q9O1PGNNG;8m^+@-9N~Lf_%m=l;!VGu7*!ll+ef0zzv{bu6q`edoxY&Lo}v@<#bES9!({ydmo7?Htm8ngw>a@s zBQofaTy%zr#E-n}tXMm^eF-_#$n}7LatHgfj;b>qe$)QaoDfWHaeEui=@;HA` z3sGVnchqE%{<<5nV~oDb5JVeqv;m>bd$gfLoBe$8TaQ$<;Z%EmC!~vJdsXtf7g=zun~XrYMObKp*>4PBH+$DE;?-Ht;WbTgFbsxBRRgoWs4 zT+o4JXf@M6^}oFOsJtOKzNqBJX!lJXIuANpKpf@S6i35AG$cUxMc^G8s-Pk2%0xln zpY$!7%AhIg;=A?u_D}jA4Rz2E{ty0BN}%C8G>k(-rGH8(G}J)D$$#*l5`B6$70|E- z4M+YdrP0s;4Nt!09_(Uu0!=FX6dX*MWfeA+sR?#gGShW@+`M_oJrhG<-RZ?iv9WQk zv4!!rGOhp~%o;7(88h|a6uWAHMWc)oxe@zH8*2x}I?D;6ydPm^GbO!r#lahH)6Aw+ z7K)symOL|>A>ck*{f%0Bs#y2Py8Z3ofWDWU*0dcAXx`X zPuJ~Yio>trYKoNBq)Vd;*EZW9u&i8IStO%)Sudd>Vv#+#O z(Aqqsc_uTgcq%|^lu$+}7%$fUGs3N(mTqZi4o~6ZeG&MZt0BK-(YqZiUM@ddxSbiqOA{W< z%tQK=PF2%*IkU{hQE7VoPmuzT#&GNitw7s1g30JSsH3ACA0V@-=9d2VLu-N?r8h=# zep7ZyRW_X=Q^sHlZMG(T4db?fM1y{n8=bDMbZ5fQR|y#&%CT5gTs9~#pb!2y@OHan%G%>FYA z8d`#U+sl?b)7CW4kq*VIbEpA?D8RY)1$nhvE}eNFjJ*wlaR>6zswshI1Q`MFSh z2$SBvGDiR~Sez54xaDE>xK;2`q+5Psqc0hSS7#31Rl|?mMy*8*@^&lsRkFs4=Ll9a z!pYb0k+Y>EaYM*1_taY)Z>D>Q1hMkY@bOs4e2Jo6+=kT6>$*LRSju}rwP;DZYhx8| zLi1eaPlJ`5*07TKNma@XsbHhSa8D8gsJ80R|=IhZ*9T+vSluVnRQ^|-QIhk6I zZgtTGMgzXFZnuhW@=@)?&RzEeuz+hL;oyV2(dibk0 z&R+%Gb!C^4JJPNB-lj-h)C&z*v-4lmPQmNsEE5L9Uk} z>+LMc7uIPP)Qq*y@f0Q`VJ#dN7wR-FY*@I|0|Vsl5lgT2B)IS%w{T_*ZN-7O;&ln! zd@Xxnd;*@nE~q_)Ty3t%kKgl8IN<lshW7|_kx)`%Qq>1?qnU(QHGt0 zE#P-_q`UisS75X5)VsLz;cPcKL&tGiie1^%7)QdoK7t9akP7IOEdxe}yf%1dAn%0Q zE0eJxZP9iIyttqqI`BrS)Y2s-4tYPKCD`&$bdj6^Z}LkjIO5*w z+1bU8Y?4xk*IU`i@ob&3bv~QfXVFbCYkyi2!x=AkWgK(}!s6eCJfp5HDIj-$HgQ1* zd3_wPK}wca$IUr``XOA~y`(xw?gKdSFxc+9>V@C0V3+M{b~DK!H@~OVCM9lu;A+4m z)yX`s*;s7(Z)web-fGJ;7Ezcca~Q0p zEsl|_w(anVu#>zTEkrv-?yB0pOq@~-hkfnq&lT+4lU$Q;G+ zaHJ+DuSux?_s%Ax-e~s_n`|PQG*TtQlJbO&-)|%p^6Fn-7*|s_>GW!u&+JG#eD=v~ zag4(~(ATec5?wXjsd$7uvtSl81ME(nzAMph@5tfs>~w;Edyz3OtB{wHleph$ znU)`^fLtTxvIR?8KiY<1n}3otowk!pta9)4m)uS3pKF%n9i!gGpBIO>->MWo_YKVc z>q5Ec#L)J(mlrIT^~RKnFkgLd(Tu^jIl^8rUR1KT059K>)ifohf_3<#rV`EK88CT{=kW{r)>ZEyu3({qh8Z9+FjkD zyPhCQhgXJ#vtE%u)XZ|6m>s~KmC>ZPzP1cLNq7@yx=6l9A{;cq^o~+K_)3vOy7vw4 zx5@bI7ER5u!VSG8X3A358Cz#tH7tr%&g6XCPS?<5Z*x?+Qw;!(8PMq-H4W5|f)Drt*^nQ^KFCUmZi~Ma8T;W(E zs5p6NRnXROcR0*%eS$7>{qCPiv~y6wy?CB(*@dN9L`J<#e3oq>w4~ar*VRx`KJ&24 zehB;xCW>TesxK}s7i}0SH0pWq;%_5=G#FfSVTtGekr~ui+~?s*9BcEdXj7|cGruHT zFrlos>{oeGg3hcCkka`oCe_Wb;zb4culV+6eQi;`j?}s+wOa{KT_k>BJ}dQpAytXG z>v#3Y-)ep~j&j-!v+$G}(SSF85$l(p3F*P!Yn*TE@I<)^gvr2PV~8RKGsQQRw2Ljx zysPFjt>xoR2Irop-oq+S81_t8S)P0E@sV|TEnuUhnS4RL0XS5FI4!Td&1`;USgcnz zJ4;Vh64`SOpOS7hC{o%ES>UWE(UgZuDz$nhw>+SB3(4AvD7BR(xX}9e8a#D9#&us< zeLCG?KfUZ6!<(kgc_ z@2i3`#nMzs6X4!hI2>3hUX=Gt-?+ioM^R8yTM=7Pi%MCh04_dd^^5!L^p}gGM%20m z;81I3M*&`hxZ0W;^6I96?d&aQ1o36%Z0tQVR26SZm9RRBKF!{j&oaZKMvlKL;hh!Q zA|@k!rJ0r*94{&pG3K&}AGWW_Ln%y&>Hs3yW9WqzKb^RN_1uhBbO_n(^ckV*1|a?5zu?dXN|!=asUk`fRd~ zHzu3hwGQs_mmg>qALWHkoDDQx zX58z1X~7;@_bpRmf>Fx`Yaj*1i%}IjSg3j()e?nzWGZb(QE8Kus9JMrC6rQVRp14~%*4xmhmU-SlQI|v__uR5G$`LAgkQdY(~Y;B_D6koMzd z(~AuSB9;Zq!i|ABzuI^{y}!Mx7%)rI2TG>O3+pzWSS-|CVi{oLY-ZYEjXYX_1RlH;d;VmFF1Hifs|b}E&#P3ebh5Hj zk8c^9qK*g|C#8<^f}Wy!Y>Eximd;!do)zvpgBGVHcn}T@LyJ#RBorrm=b_!eP-&CE z96!}nD2$w-eqyOawqV!o)QKpcsivtwpjd0@g3-y2o%aIYsrk_h|KPH!f{dkFt!Ien z4+NWw`YPXe8;b4=-n;*LYDPiHU{U-Pb@NzYps5*%Uh4<9xW0#zL`v2-Yxi2fv0_61-B@%KtW5hI`_f15(Or;XRUZ4 zR3bE&SOQ*Oz)GJH@T{Z9DUXje4M&uOCOi1n>}=u!w?sQilG<_+zU$Gag#57J>Qq^6JfM)lD8XZV$oUzM+pj@wppSz|_ovZg3|a zzu{tL%}3m-(<+#b)YzkBL1H=GIYB)z=l3x!>-8w#D!8Q2Uv@yO)}k}y?IjCg!6y;w zmaSLVQKDA%GRxgU3_$JV`2EW^%+oJRjkLPjg$G|hF$-UeN!(|1DcR6^Ar(HOaqwxq zA+Jf{McBgMS8_w7ZI*`BN!V+F3NIZ{K=|I-3W#?EdXUy? zDzSSQ<_k!bHj@+GxP=EuY0CNjdMBxpkwZqatQ4VBecz#=;cY(f)`OCS{YlPv)4e>J z-J*+RyUg+x^&N>PVe45O!lq90+nGg&EZB#PqNNWH9_+vEkdHJR(@H&IPZy9!tz9TD zUF$eRcS^Qle5@*+{UKqgY{~l_Y8}kErhWlyJl##r7UalXc_I8`mql;5MKTcu&dtVt@b z9-eRAGx7JMHApnE6W6^tzrW1;xuza-0-5}JkD62!cb!hE7Qn37M{gL-ptI3TL_UBM zbo@3uMi0R(i0`Y_slqN{gVuydpzc|ppVgS@{hZ= zVnQv0Ox)eZKOxp4-(#A*l1ctG#xvZ+KAGD8g(>jyd%b*TC%|Pfk<4PCb4oXnm6WJf zLwaI5&^phJK~*aFLjh%jfpUBGwb|riJmn(h3;y#bi>>j`j`}b`eTB9RWQz2%YtL{` z1)gLnScfJAq1L_E{9qq(Zc}3L*0YRTE^p$kKLJm5IcE_N^IZL+H?}2(+gce8 zj^FbeSYNKCG`XdEpAr-cOb0ByX244epedOHm(itC?FIsm)wmZ!l}mBetW!!V5Pp(3 zWS>jICQ=d=Xz^78FD<^ZzN`E&F@H8eX})hRCFd2Rrkba~qENE`lWRf=Ma+Gbh`b?LR=pD+K2mh;MEV&@r%GHGU2 z6yT`{#_RCL>xjndaK!VwGdM4(to_aIrj!ih7B_N6{gR@_@=T2dWogvPpQz>UejNvM zA?NC+UYj>Quvstb>TRr;`*IRyDr(kM8d}T=6!K)K zO(s8D>s4{L>7=SM|Mx-uXX9r(5P8}4I?uOtLId@%@%|gqKX)!&c6M^Kh;vVi_JYpW zo^%S~`)}JAr$5Iw$*%Wn;*PvMX~O|fkJ=?`WnEEl!|w}!ZJV*PaFEorua*`2D;ur$ zH@SPTt>&Tq&W479!6_N`u+d(o@r#{Y!V01nPxJ{ZWoM=}=}Ik1?L?aZ*d>Sp3rhCw zm+!>W_*J7L6HVwOemS}DgK?XpP7P&Ejd>2FcyV5)H&NLWM4P<%o5jQ&oTvG*Z^VB& z&w^dzu20n467;ju13NYqGzohlQQRVC!;BhSJN~+5Z|1*eK8G`|{(5R{H59OEM854! z(WUvCw@{U2eMNg6_xFcI;HAKvcYNZuALb(E+aEn|O0EaYr~>=S=X)3Qgyn`r+QxyB z0@K98;*!E+$7F-nd3kJi3kPZJaH_W1?xjE`VZ(m1FmDI^`2uSC--LzMvB>YSLLpT#qCJfgv=ETCfGzUr z3&kv26Pu=!FT7KhsUK{9y9&gQXkN1N_z@=l>1Wo&C*Nfq7 zlSxs{!=np@5b`kriT__`&VQRY;XcMjOIOFJNkwtq-r9J+j+$?5|1qafF4d*0uWKvX zr04B9jpt-NZIuiMzEaMIOsJ{&A1*+d<=|#&ZRI~bFdf{~q9p&>f$iYtFG|uksji8s zir}>FyF*mZt(24&+J2z2keXTjo}k-Rg4zapE!$LE*|Mve_C)Zi`q@b{AXF8&k6GfH*UO5)7K8Z?K%Y>x~tbC zsjN?}H2iWE5p1#%M2=w%QhVPYR|T4eM1(#A3)y{X%WfNg=wq6!_<=Vl1*3*ifl+}{ zK|ld(NF&*rebU6@ryW5J7BG~^t`D`tufZQuNVYeLWlvz&WS?edOa>?GCF`&;E;bz&v#UCEbI#AZvf?AnU-C2V4{u*vZdK zJ_XEET2Lf^N;WhR{ICHX3emkciF&%*;_=YOWY*;651&G|gLN?`A4~$cHKZ1V$)d@A z$@i1Z*?l^hLv-)g5L>V%x0#&z&r?{4CEu73d=?;j;EV@adwwlQ-a+ub>jisA=Tnd? z|IlN0>CUHEuG~W$?0ub2v0a6S9!(4SOKjxLhn+X#a|}Cy0-go`(8J^y_S_HeyShybk})H& zxj+`oL;T4Ic9IWtK&L{0E|!I6azA@1w2VL=J2YG&VsmJ!z6$HT~- zdk7j=eJ+UePTGHqf#?}lPOi8cY3MhM|3C0y2*z(f<@r;bcW?b=7>FKWz04MWO&ag@b-m5Y((=yi{VDN zt%n<-+u5lb-ruu2w*4KG8JW-%Z=Wk{4C=IovPydX7i1Q=TW&+dxXqV=a>ECEkNofs z_jKRY8D9My$nT~DF;7m`Ihj}*pG?rs_xNVq0O39@6e{#i0VDoi`?!htWqGkbTzkZQ z?!;$f&6l4&Fl=*sZ)qZ}oN|zpw|ZGvgL*T|4+Z{l&k4w&)>t7JwCxtD^4LD2F*gxLZZ+>@Lmhi*VLkd$iN2x!C9I z+}792cvjrF9x-aVtxR0(lW=OE2h7ZHF$tD7SV~~;m)ynBfFqg-9*$prYx`W? z9%qBV%HS6LB&iJm(uD0(2E3KIj+E`NUBh`HaeXPhxH|4T3g*MTgOwaJKSynkN4-|6 zmXGjpXCC%noCvjWOj|?h8LSWXdsl0|^aw}|7&K>L$@LxQlz;jz^|rdyQ4U|R0*JK; z^}M1Xma`h?$`RF7p9ovbd-@!-usT1vx+qOCKR&HpotK-%>hjKI{wr~rv*4wiTvsjL zVOl7G8>_CKnhkO5T*=i2i0nE`KDaOSB(66 z2O5(niyjFR{-}S<)A03No8GSb&s3s87SAN)w8x(x3;(h=j@E6fx=8BTacXGXbYBC1N)UQ z-CXE_>z0+?NNh-q(COJlJ$(h$tr7=*(1&^ zm<9KWNVwn$MFnp*mCVT$iwdlVbLwtAzXQHJH`^Cc8TMwK`_Q@8f4_?@Y z61JAc9kJ3M&qj6)W5VTfC*sHD7`PK^Ke-)-br-g$Qsw@+em#Um8&YlHaE}DbBex|G zB)PXTDFk@Ddsz(F^CBk!mBHgQg4;KvcO}2>Qd94ESnh1SZ)YQ}D~Gq`rr7vjN6OQ? ze^O8yx9ZeD2?B4JA-un8w{L5WG-T=F}Hs|IGL3?1Rg=h#s|* zX?^67{PMG{i*DY45h?CQ$wt-cl03j`_FhTF?~}_dh4?=2q{*A7934KC{Q}^@ar5}t z`HFaVazZ@j<&OjL>w`&-;Q0NtoPffyA73`SuO{*}?AGa}g@MZb`9+a2{}k?=+`_b~nOpLv`gbr@Y(@fI)|23zWZr|E<(Kl8)-&^M z8g$=#Nu~-l6q_*#^@W_=tM2a*m4ljz^xo&Vn`n!Y<98YFf>g-Gz3w4DX=$eAH_@0k z(X2Po)Z*u6o7n>6uU|+TuS_;-NUwNn{_Lah_-m=+!1|nRXIm9vyk00b@Wo9N!MeOu z-&j-Af}`2_(6H&uQSb+b)QCme_=WZb8*WjVUhKO!h-LVnyR%u72F@7RB!54qX$NO>52qmAA(F1i2^bc;8B*24e)l z)idB2-c&#^s`wnWcE09&np( zdvp?-WjqFS;NsMGjPb8Xb+hpzX}j5YkmlWNd`PnHN^YcPcO@^9r@N8|>E2z*hs5u8 z`|jDFE@s;`b_*vZVSv-K z)uby_y6cu}h~R3JUG-;vRfnW7`PrRG7w$K{oDX*~Sde(<*70sQ$Rms%@8B`&Tvv7X zQ9^_fk3d;6kXWepi}n&IJ&Ex!tdxX}0}1Y)q`3z9R8yi3zAxO=eEWbvAdX#BnPd=BDFxP zsYqT>mMla+kUmTs-1^nC4yxX5i)SPcNrX;zH*g{C*4#mr^eZ2Z-mfWwRx>?opj_QG zAjcOgHb=Z`u6UwJNCMDm3{nZSnu7W%(~-Wt6e<)t%7uii;o_~x0+4Jd#baZ;Bi6MR zN{GkWGRXLCYagtwI|&RST=NAT(u;mLGVea;M!Kvq;kCyijXRnAfBH9f(g%$7Ey}l z$AhrN^J78m;`xansPOz=Ij_R_9(T;c8i+ckVGWNvmSG-59g{GR#~q8XbE1w}*!km* zRTv==Fa{%h49vlzh=3_r)MH=?rc4A(z?6Z2HIftFLbpp{sPa-=M3sx0%pY`dfdf*z4OEs2JUC7*ve*HU%n1e;Wkt zczv4y?V!7jgm%#0W)SXeKzADs1!!;eq1PNcktQ0Bcvq7!4Mza)Y7uq7 zyYh&ZE?x=c3{-D>%(D~8FikaH1hrr5gvBY3z^qoo8W>)-s`e zL^QTX&fR@f5DY{ZDC-@BEU;1zQVrF9)!q!153Mvg;t8uXKdK9>G<7PW$l0Y#-wE0R zfeO7}G{-=TjY1th9w~+a${hUD*yCz}>b^uQe4bc{Vo=t5hIR0iCf^DdmfXm^C3^`4|MObY?y z4{#O;nH$>!HU-85BN2jMkl7%y2;^_nc@p!^gGRmdtA$3r@GFBxz4B{?DnIwjfhxcB ztA;AS@GF5Tzw&E_jy`t~2EsC>uI&P|B(DtuyNpNpkXYT3n=Iqup;V*#IY~r(nGNsQ zUO5Omh8amLd9Dz*eQiXv(t6`N!vQb(zk+MMCy875=m^!Ue-18ZIErhnHINN;EaI*~ zpJAP!j07Ovv?Z>Vv92>QfR2XmH|Y~BF$jF5C_78`fuE*eThcPj&hKx$#g-jj?i zcy|^9|4JOz$yIT{E%;O?ey6HPHATj8iv3;f@;|K@7f`q75CroRLs_;7nS z%eNLU&OAapY>&=EI~0WI_l23G%8$F?v-f{}fR~~W z?Z&WPMINQ`#*|*QNOSNYkCs(>iF0c2HrUc?$pB6cZkTFJK&?dXkn3E~YtKW+qh(Vz zp;OM0U-jO!yjK@I32vC=*Eh}R^^U{`Q}OUxFBzHE^hWfS^^!-HgBQ6+#`(431YnP; z#<<=Lo`ak!LwE&Ph=b+FTh{U!MR)I@^31>V*dnI|O3lL6`(pJK1 za8+>BjAulzDGzla!ZVWIN>~*x3s#=-{MxI|lUaapi?p;7R)_0?fzcVyZ@sQOnS}^Q zB!yM03S0`zHscxAE6-z8fN+V_wrW*_Yl16hJR^H;d5j7X-jRG(t*W_|2)al<+g2%f zIoNU1v!z#vd!-n`8tGx%Dh+P~A5MC9^kQ?179n0l652xE!E?bhlgP$idT!BT1Y@MK zE#y7C2AnmCYz2BLxZ8^mw2^GK5Ggpo-Cly=iLA7RNW#;=s}sojUJvf}QiMq4q3yLe zJOnH@fvoCP=JqQ=a7AX>UcZGWfjcIUb-j+U?~WJ52&eM|NHw(RYT$zMG0xd|qpOj`lAq~QGb(xwVwDd~D@vV3 zB6n?<#B)ckkSzp3f_JzXcR?d}Z#RMLla8?qz?!D&@_vl}ci(eC| zeieY-h=+=h4O2c7M?virqmx2!Hh47iC>q5#)bONeZ^Cb zxcB&LghB*H%-0B|ZizMMCx@5WIzO_Lp5*HMSfA_W?|ItOOHao@u5S17W9-K+GJV>r zl8>)Q)6#Vmt75*EXELbT#ecMYJ)>b)`_YzmMvJ*(PB6@!%#}=^t*ZSa@TiAZ#;z#2 zaPECrBpFri99@_q8CB_Ae7D8dNcA#q)q*+Co&gfFuZk*mHXlR%ULAKi8yW6iQ=ol1e%0dYohzh~(TsQ=8G59|5;lV@`Z1N5OcE86-xT(2 zE$m0F>BmB3@{d~Ak4ebJA5)ogJfhG&59yCa5H*Li3%MNy=7`GFIC92frYe0%U3zUx zY~pM0HCmHmzAEl^3#A1~*_$wbn zO?NAc{id8wl=b-FCM+y&EiEKJj-;@=fj#76s@ob--ia+H;`|*Qz};niki?nAY%r+gB(U zkU4TTGzmH@whAmA+LFxn)ch85^<4}0wDl~dBJqPLAz^&94&M%m5*=ihz^jbR%ZZI5 z?eaR!ubeF*vp?Ll*A9@aKirhpR*)Dqhv&2hQEWr@C!b@f0XgBP#!pxFW4dz@%bgRZ zVSVuB_ESt*K3!$H%&%;x<%K69zH|sX$WPKtd0`r36CAeJMiGamIBc{=pUNM&NJD55 zG_!);c=(lcMy}GTD-KE@BVSTroufjdE7?Oq@ zsbghNI3y8koRKOxHeI8iZSL0aQ@UQ$OG+823|lqW{krtzHWS%ZSJ7W3Mgla=;0v62 ztkKLi3-sNdCa>!?*bXH3HQFv`)Ib;8P;d^&3KeocCLY_7su+_AB9tS*_qB>vNAiYRVfcl zQML$?6Vckx>v+=MH6Wt(TdyN^LL*AiwS2WxI_;o}vf?zPX?cTs5!FrZd=`=V1lt>P zIei~Hs@coMcnfbk{n^XD_*m*vw{k$Sc)%2xX01_RT(1Hraj2J^&M_xBtIPS=2_;D> zSl9RM81N3o?}*I6s*4zTyvzE{>ly72t1ObjR0vEdqs$HIx*kleRcR&lbbd_h+h}Aq z`1PZSdJ$^=TP=8ht182Qoba%{rtg!p?n~x+A3N=&bzHFK{T~ET!>+pRd8((FX@^w+ z7Hb+&iI7fVA9*vg!Q2liYW=-xh;?o?@$T`Q1FJqu>(v4E?k8PY&vRPpU1#0)pQ>Kp zPQ6j@FU=5y`*@a(n(qep_(kD2+T9#|W^ zbJlIFH@Wh*6H7`+VXf-uBXH7fY&O9Ly!W0bDdL7>`|J@V4L=MI@!n%kvNusm=@R+$ zWw4$*|CPw6_`!PA`f?(lA_nVu^G!uQr4QC~_;|GTDLKv87r5p0DY@w8GiK~nsT*k7 zQ}1d-Wo%T(GiDrAaT#cl9NeW)3k{n8_72V1uW~gYuLzxMq81u8cQ-*mq6}fxK=9Fi z>zFA;QyHVM1l!phEvqfBkXvydtE+BrJZc(X@|9VF)!>X}NC>qC2+Xu;0bKT?m96rsjEjcuJ?r9~tr|Bvk{#%bQhKhP=^2@CVdBW9CdQgNA3(ebfYvdWdRi;WMkB z(>X~Z8&!P|DrRc-9z}^zI@RTvD|_v2e=g-=@#!@k1qtiitJxGjYb6g5F*=$H*L(QM ztKXE(R-*jNJQMX*6#3N00PZP{3LuPq$C_gGkpG&y`00np|8aBYT%+Rx_*Q7J6Wa{K&HDFkY=M9#v=r`A$#cB)oUDMt4^ zqHa(rzF43>e1Hwr5ALf)(>qj-y!j6529#nV-7CFis4Up48{TE`=`*90hy$t`)^yb9 zmZD4Q+6U)IdS)TlB_i5s9+Ea86BXq$|G0pA0q&gi%v!FZkAzidAYM2s%6WdgfO`fG zH~1967Q5Z|N>a&o>SWH77HtIZV1t0>2(PU|TUk|;+o`uMev z54X{U+h_+-{h3J&zD`~Fu+fD}bQ(U1LG4MGb%3DMdw4dt1lPBEF=s9x<(QAPo&rE@ zqa1Tl1xP_(!*sy0Lgru3eDZk9<2O;-wh~@+%3iJSaR<1(%KI#>(N!Oa5DUZTpBfRP zLR3)e3LIZgC9|JOWF-%s!zYRl9W?4GT#EMgz{}CzMPX5CRE`USsKf7Qm2}kMKec7l zVGe-SEyG)EP+^BhNMUsH6Ondtben~J6liSx2hpSVP`G9gu7R6js#LlxqLeV!R8ZRu z*TBx8C?WT%>?zXK?vwuJyS$5AN?-9=fB7oXB}#odPX8w&fx6I} zz99hagYsvj4g2lwI+p;h4jlP6B1-NfO~EzbOO)-O zyF`>UM+`Scq`lKi(p$P%-D~@bN1FJUQFo*gw*$iPKA&`(3~WjB2V&!JjeTJ|GfThf zzTyS1sd%MReodjMw25u%LYqxlb-_uv#;&lvoF%#omWta3K$LpMNh_t(=sCZp09)Eb z5OpDVlSjRI4zBUL)m$#gJN-@ixxzMT2tg+?jE39JB`%^|A;&gR>iH*4jE1Q8Kee;x z?}{jqjV2Yi<@Ob?Tnq?bE22ia*|Ox;)C1QzypGRp@Iv)()#WcilzPI6_P3RFM2n%r z`j!ZF2Qa(d)p@=z8nt@pBE&2TLtqQ=nrISVchTu^x!q*>? z#C{{_QHt8ZtYhRPE1}rZ`l#o%Zc+%%;qj*MZR;R?a-kO#&ejZ>KKjJwb#0zhNltEz zKy58`E~wX;Z3w@p^pV;wnHI<{4wc%9kV=Q$$f^Xk;qa87`AFn;Hw3 z`pBAPF4xue>tRx%qIDhx<@)iyf_1HQSnMb-?QHmK10zehObSZ)v9~&SSE{$E6&l~` z6Z44Gkvl)k$Sig+O~INBV5=?}Y~ai9H!|Z%N(-;}wPTdmy}psdR2@vAJGrilx)Fqz z?H`k)ZUo_FyT@AUdZXcGhsV6?3qQl{wvGh~YGWwo=hj^ntx4Fbiw8Z}^BIlIxRMU7 z#+8RgBdFBilkUg{>XapaS;P3#;~tJ|EsbTwG9 zm2++TMZjuoBPZky#AFz>hcNE%Nqur|YPycB^@%YwbYKNuJu@=P9K=?zZl}17ggQ!bxiU(A9a<`K6i8`` ze-dK3fwKxuNs+&BaR)|tofZF)=xDDj{)kQT z$2Z41qOx6md(7R783T*~h!C+IOkapZWx$qx?pK50Lxx#*V!JhcL(KR;i9`yBawCiZ zha1fN_PU7gLk(KQ@mDh|nDHBDw8=aA*u*NqLdhSR9iIVm;{E$h7;;w9#45x>sh^2w z5t#91O0U0Tx^v#A%~yZK@Hj(Bynj;xLyq5)L?u=r=`-=*1!lYgD@x+Rai2C){t<(! z0ZQ^)4nyvtHi-&xW8!CwyHiZkJ;&GI?*SzDu}<|LGDNSw7l&REVBpMoJXVQr5BZF7 z;)_WdK?A(}e((C>eXQlahYVw)vf|KFN(`K$(Z?!8zW$#vHsvu%nT=n3zjyKGK331{ zBL<>&l;qGJ1IP1_SS8vg>odk;2qx)}DBbsaXN>o;%10kDsQ98J+qM`uGONTYM3N$vblk`t!;SP83-7^1IH61XD<&XYTU`0qu;p~_&MpzOXV3ny5nzo zS@zg7akL&gbH4`f=xJ8nz0p%$sw3g7VXVx+31C@V;GuSVWK3c2S3 z%N1=QMkbF|fJ6^!Z2gsyd)}}((U!-^_)!N8(fu0z&!fmaURaH2%L8Qk=mCc4VU5pc zHsqctEL_y*9x`^68l!!$M*4Fla*qQBK+Z6aG_ypoAj6iUsO=o*U4QaH&M=M?v)V8r zgO-)|R?p^3e*zwmGr=RnthPsxQOo~}tgnEJYU|zxhM~K=K}xz?>6!tNkS;+$O6eLJ zl?LG`sWb`#QUa0^3P_2BL5N65H;C|^Gji{H{eS-M-mLwsXRW>VI{WN7Gu&Z$!e$Sr zTRKQX4wSZ3^F#4Y-#W9xln>8cLTkOTQGi~QgCr$f#tSo`60dk1UCP`L7m0@mrfCBwO4CE5;~kPQsf{;}7b zrxGjv=~vWJVFc>v3;b;5F6j|4+=q33a2znFtdx&;I=Qrkayn)@8-6rAf1dCQ6gZUP z&TH+Ut_*|*4`fgC@$=uDKi&fcSqO%hw_ibBG}IMA-9xCW13STuyGP1*LrKn^(MC() zh;ac0^*^BwJ>CSR>^Z1ghPv-yXVC-3(eMoN@)GJK!5ODlq1h-Pi2;%%A+K&wtP@aB zl?#v^6n{e=WD*JyaUdcwL}Y}BQV`Mo8#MptagZs6p5`$~uYiUoKR|`RA;>X40@)=e zPzTwSK#6dIFeymuJ`Xt~J$!*c z0%fdoXMx{%C@{uFkb2t_0)8ElgZ7gUAq;JB$k~5Rx&?K6P`3kh2T->Sb^B1a3w01L z8R8{Fykv-%4Dpg7UNXc>hIq*k4+-&*5D&S-i2{3wh=hnph=_!UNQgKL5r-k-FywF; z;tfN*VTd;j@rEIuFvJsvc)}1*7~%;-JYk3@4Do~^UKPZvf_POBuL|O!svu$&M6BB7 z6cCqIKj@WiCz?I|MEa6(d5L^N%dbfCKJ(4WzN7~JDN&O&W;e;|g^Jv%?FkR?^IN$5 zs9Zv>V{R9sLCC(;OuE{rGI-i$;=`KHPh!8=eR}y1Co#D_u{E_fB6Hv9Of}s$@?-h@ zAa}UIfwo$9?P@~`%BmY@s%MSO4_`jQN~aR2ahqCPL-@gi)2!ajIGWaYPJLXn@gq*I zbvrg+lT%8x8vd|`(?;2ndU!2M=HAzCq?0uG{pQQ3Bz^*@tgpSZHyd|Zr{y!7cYb(3mAxaA_Ad5sA-2Ws@2p?2z>>#9#5T)#&! z-Vpvo<bu<-&Gdp7TiQ>u~-+Sz~W%_c?}7Zxie8XP3*BjQlVo{6z8ds)d99hlVMKIz^MK z`8_;iOEqFA93}{Pls$EwctfgR&%uX{DeX^`EgHcKI3K$$KC}gpeqwD;Ch3kZmpYU9 z*ke-=wJqzzdnU!4gi^EVeZKPiC`^vRv#4s}z0dWOa_g<~D{l)Ou40CAQjL1sVM`J$ ztVE0CA_zRk`0VH<@qaGYRi_W(X|7awMGW2N2o*Tl%YCG|)PurmW>Zq3?Xhp>N-7wz z=L;1^6gqhe{bp-ZH|-{9<~R8uS(Eu9UjJ?C9hEe=)_UhPO#3mF?qWN#q9rz+5A52z zsVOs>*PcZSuB+?FVX8NiNZP6De!q&`i%AW@bF$~EP~%(cey(+?f1Znfj_27tx9j|+ zEHbXUDca_E>F(qx?qH5=!EXI`?6*>x;tTOr0z>}l&7 zo9U1$?lH;tcTp+Az#L7Wm`BFalfqLHxp!`(H)aw)e_vSUuu-3Uc;BPkZ#i!@ilv<6 zluMFA(WrPiBP(X6oO?O_gbZHpzML(W@Y!g|D~{p~lA6|^AH_U^+9zKe~zNxqVltf3Wx{ zzKH-ODLwD$MEv7X-)MdPTDdvj=h8FP1luLX3C9z3g4H|@PmN2Z8wU_K3D>9zf(9VYj zb7y|euI_sA28CL$HFL4iR5$OzUBP=kc5Ifrkx2Rhw$;985b}^EPIATNNJf!0zsS_q zJqR{YOlli?BBA6ElqqZ9ga5_*x8$+{LLM*X>%2qK0!c zLN+WrXg8Md~%SdC%x9 z_tp;XeBC+M(2?+5g)-sN>79_DrgQS`3`@VwEw{40MBjE6cXTa2x!gt?R3OXSP1;Fj ziQoIpRRlhXiVS?k@_InF)4as?5@(q+iIBHo`u6}Hd-f0ad-Rku#YpdR>{4A47k-)Z z_rjqiKdOawuF4lPOWysy}#}*p?-p`lGJ(x4RvTxaPG$!`HvZ{;ztod9<`coHk zK~xTH?)<6XQReL|&-V>WNz*f5_~gUoo#S@gr@g;$%O|!t&CYpD-~6K3k{A4i_r~vY z*34K|%)kH2YTiRyS{tyMCYL@?6Nb$JD5a89LFF_V7mxcqxrTbYDf*`MYRtO`{H}(p z@Hww=#cRoV`@eL!75uj0cKq8kfp^|lY2i9gAC6_}`||~>;ueBMG@(kGXQ<&;|I#HP zf_#+4+ApQy;LU)UrBLv{;l1?p(4E#aE_c(}QGrSWr4qhmVN<0SAqA#m50OGZPzDO= z(x1Nf>%+jq;gQW@AtR+mz2nz{`#;NzvYAE+;hak}gOTjIcT6%(co_FhS}Z-2Gu;TO zsf~4C`jqAQ5e@kH40s!9Tx0c5=XM+ST3>_XP>(vUh=64@&8ENO32^GhiR|BdtgHTz zac|7SRCpPz+~7pmleWO~{#s{habgil>!$b(&EclPAQI0223MohV(K?Rb^tS#wPb|_ zPshuyu*<2%AK%D|Hwjq0edVIK@+ebhp>sJ-|AXI`obuAhLsP<3<3ZfCv!Xm&W&*}( zD%z&q#qx63&{)CJCHKZ#W3?j7aKfYempEoZQn@<`)pfIdx`<*3-$^w*aXDJ`#FH@>bnc`e`ZMtrk`Fxc~Oi< z3j3=S)4;5^jt34`wXz0&)IO@!+TJhndUDTLJY}%dQgOvxgJekbHdPvD)=rN~o~k6A zxz|5_I

z8pzYb>pQIvHfT@?&m2e3Br}z8b)m#U>(hC%?`KvO+~-5+;k6>!R?%M zEC;YPu53+;Mn#HGN6yPFsN=P>>&E#<`>|&u7-^iQ=xd0wPYsOP_;f?9$(^V4GjhE3 zk7@M9wf%yB4>d_?SoW_VCe%#Z*Zn0cX=5W(!}?gs9V3=ouGCOu0>Z!YY`mLM*R`(Q zl*q=>OOZBO{&{%Qh2BLxwvbPG%Z8P&B);>f@?LP3{vwfG11mgDk6j?>&|ycIhkP;Y z+o7<9%&^vjNac)TN%B7Jox0Qz z=?UZPxS`l0zg}-H;%nbt50@3mLD_blz5@$xo_w^+0_$zoVPG_*>S`{{ABKr$5ANfl zcGe3#)(L`+HBtAh$DiKh?MCf9_o=we1KWQ4$ZRBQ$GJUIWr6ry_+{N=Lif?Qj>qQ= zp_eSQva@!i&H1?M)C)Z*lyXEXz0GYHBM;oA-JRdx+u)rQ8<}<*;(auIT@BUV(wx$eezgk?Y-)_G=pM7CzgXVYGdM6-&0hzoVLO{fI9iX0H_esvb=5jBPAK{wPrM`__J{vOwNKWS6UVvW?hV>2YK#a5P2@!-5FNvTJ~L% z)$;(VQJE6H+Ikz07D}RMGJAVvAH2I3T-|td_2?OM?tS9XjP*>iv@dD;N+aq?2 z{k`Jkb9}W92I8@%8`#+`6xMM(>oQ|{q%3z<@p5jlDkN|mc$qZ*)`*GgAG?$GOT0EI zucl-7#6#MhehH{%aAB_uU@Fu@E%^kiy_(~_L#al6E3b*3`7qLNh)(kDrMSBqGNV^J z(_)SDq8EwW#DmB?RcK{3UlkQ$`p6UlV%KT0%Dn`;#Z`@fm}ilB($$GP zFx)afx78hw9dG>@t4U_w$vz2R^+su-k#VJjh=C88B`>rE3G!tL4f+>F^C<>K*mE_SBl_lq8z};LgC1uac z%xTl@_Osb-YbZ$VM#=V$Ml?J-sJxu9;0@Ug9Wm!mIPURIhDOpH3M>X)f(&q*cD_$` zHa2%|r5j578`;MdxZ5al$)OnWyt0CBjo*4_|Bf-PgoUOO|9OX4N{W*$y}qKtiAg`5 z5Ia2fM$+=LaO0%4XHzBR_g_3%&kDM3+T)THd_!k#`YF|1gJ64~^#?cCi&Ign+J?eUsq%ij zulDKNtxYeiJn0m3;l{NqGb#urPB-#(8-K1n57z?AeSV@I!}gG*vl>~+iJ%jU4t+$} zswOFO)n&EemTKE4jlM>QxFok~&H}z!QDl6U9@Ue(v8LNe9#x#Iyo>SHPNjJ>>%J(X z$#L=KTPvs*av#b4L7`Su30qOQe9LR#V-zCyqds`1NS{o<^ii{nfB(h~zy746>{uSG zrJ47k*r@LQt<_p@rTcD?THli##W}NrUI;Sp)~UY^r53%O+*^6;$}skump*$RGVok= zG!%_)dlz5rtVKPG|16^}{|KXSprxo`u&AV@1uUj{*V;&Y%D2UZ7uB7t)+mIOCQu&q z^DYtvi)jvj0E=lZy&FrlA{@!V-E9z%@^rW&_N2V2?19N^x6y4?quo)J+>fHoS1n_O z9vQY%XiDqEx8ghyb@#eOIpiHS{;+E@gNy;)}IX8PL6!rbv>`yL>bqabGtsGTz$grEy$a`^%!#g zde&hdTtIWTTk2_f{Vg(Y4KHk;TP}2b%m?}L8>SrkFZyQ48x79z4UHH_!#IE3S`Del zD@dFU3adbx#PaAGW#jgXOGs8u&FSV^H8bzCul;;e;zmo{?@L>tbe;c!;aZ}fi_fEi zZu`0w5sdZtBo`kl2h=B40r}NeZ=%YM(mZx5O4^>phu|&ROz9`>2tUYr{Qayb=>6*> zm+^pK+_cQU(GO)~9|y>m$dn*{=mdP2wDGlFY-@|o2$IxTWuDj#Y)!F`+e|J@-t%U^c?5jQ zIw5e>{g#%lq>x~vLi=^pBA2)+ZD#*@x6ZYIv-x1Gn%ugVJzHr%wH)1Hcn5p+-Fh+B z5Bzt78s?JdnhGpllC8XmkgdUdlB*~4^|>}mB-W0DbN6cukECo~p=`ZezKWNhP5yB1 zW=XAvP>jw#RSUapE`Ma&eY;-@>vz<@J477fPK=G4b~QW=8XuGm>RrB7l~KGvASYEX zdXkfR_550Fz}1ZnT*3BKU!QqgO`Yvs5?_4W>WsXhyQ;TY$(||q6{$yih$Y_kl1xu^ zM=gium`(U~+j*d#JQSi{hOgBz%JU1~Ad!+6%uLd_ZR+#u1FKK|yK>d*pZB-!CnfRl zz4~=;FP!1<*T=r1arWb)x3=*<+M3p)9gbn=WmlL!PWnp>K1ww|E$5(L&wJqzgx`4H z$@AKBU-7Y@ZS)({PTH%~U$uyv5AM0h&SZ_D#(&s4!v)nu<8PV6SWJ~tDW6@S%g>{&1$`|S4U=HYwC0Ruflqqm+B zo^f}$#zseHbi}D|?Ml7;`T3}9`3FzDP+QXHL5;!P9~^6AKLbA}B|YMDMZxUNH4(GH zB0VT|rU2s2E{jmkCd((JCTXRClvU)xi%)D8vK@BVZO$?ug=7n(-1OSM0<%Nw@+EPY zWOsizM3spw_%o@2W$Jd>_?fUaB6UY-M3+gDf6Zd^3Z~({nF!mX${v~{Il8JADSob^ zMrOH*V>s!>MB^9*^nAS>EPLm1OP5rIA^25`Zw={w-N2`NTq~g%TR(l%xV;JX;4rS` zkTUWv$s`v!&Ke~DfD*D;5q@q)k?Az6Wy{+~^)5np9 zaOLs$FWt0N&+if13}eulZ;8ftwOncXs3^l2&D!lF5MwoJwaCX@SHrzauC)k2NX9}s;}ez?FpED_e~z=`ADCx>7ot;R|f z_R1|MGmo~`$%&3q=G7f&wZKL>6mNQS3w+si)J9xuk0qa42|m-p|GnLo2ItnwR`c0v zJBY7{R6=R{q_R79N{emZ$RZl*`3C;a#jWhWJk9nrX=DA#h%Gw!$|s*PQh{#`UXO)2 zw?4(5<@vtuJiq0o&`m!a8Yy)u%*j`)^7V=H;H{xwmI1NL$-Kzf-`zD2ulvmH8Lw1i zXuiB%UByN*be0_==|}vs87KyKZ_Eeck= zoVUJ=f8k~le~6=WYoowF^FH6&t$7OJT~9fFr`v@^QDq;mEAK(Jn&qtSV=bCqk-SO(bCN{YyVEmD9UH) zxi2<51ww+MvSDuKevFfq1c88lpu1r9vxeyDAb#KN>Vj+e5l_D!oCS_JUGZy`Q?zn1 z-@Q9@yLK$gecY>Vxe$kc9pB&eX)Eil(e$LB#ro=(tCe3~NR52kS-BJXcC#SX`P}DG#(d1h4qfG)x$x05N*_%N7(HO4Qn9$~UG?xx_| zakV|uvA$Q&mm=#JKFj~fQgV5K0&h-s_4FIl+Gs_G-!if)z^k-`*7g=r9?oSw30Vt| zg6K~<`MW{avy+l++(*NMEOr-vSt7&Lnbk6{L(DYqL1(>d)(TIkr2345 z>YFl547xbjeR9^k> zyKSiqwT10k#H5kUBqPTmufE(KG!|h^zaJ>0>-O}%$pp~{F+DD~M3bBRscsUeWqXsi zgU32wfxY9jn1&@hB{@gsotH)a*R*JK@o^JJU$r*>N+W#lR6K)l9Fa}1dnQ&RlK!X! znRm7@GNksgTw=b^E%aSO?s!wHMy>Xnjl<&4hA+%KGMD5EKKSvJgcurpCb_5Pe#NLX zZt;0knT)wQb)|GkX=}z@yTR9qK-8C+Km}q4ZDaF~JbGNcFU5=_4jWWwI+)`l5%zb^ zxq2!-YB9C)Et~ahW!~y)Dbrw#70=NMv~vw-Sz^2_e20s_3)_vetHE=}c*XptP1mjA z%%6$o-(+scWpYdosR6PY`67g2dp9mW(0^z_J)4_EL-FRYrQGYrmQodEjL0x5^;1Yq z6m{(4cv&OO5B@!T^?R4H7f)C=H(eX?BJSzmH!oDk;H{-jQwi|Mq`c0%X4gDnrYF%F zGuN2*u`tn-2CSdS`2OC<-==qNLiICSxe(+0!R1e_(e*Q57t>{}9ZjzeuF(V>VC!#u zdPD)1&&=ca)~{ozd-tjJVJvEO7&hdK%V=*;VzRkO71jDvJi}|w8eKnAUk_bBQ|Cd* zKF7fiwZIoO2Bl>09aA53NY^obSnmQXSZ?CD#Cc&*SP~Td& z-MJd@nKBMRhh4llwTJ~H>2@kKi51OUFPG*yG~gOLEj5x)){{d~(X1=D6XrL>AxmSB z@?E7L-js@WU1D-E2}IVh*#QJ{Eka~RqVEnP^DF~Bx;|@kN71S(wr@}7KM+~_-A!IJ z+`TFkTXWZFTsUj7XT)2|&+yp8fqHlTG=4E>?B?OSk-4L&?Sq#rf;WfhjgM%xaAMs_zCciuFY2Br* zIBVypl;t=%@S_KKq`ZnYPwQulvS=BX$42MxWOJFDiBTtAx#mW9Nt)Fx5LG5$q|5l#n(0CNt2-56 ziarYE5ZbBwI?yT#mPczBvClQiUEoL)}CFx>3h8iZtd0t)kN3v->S!P$YMF~u|v*act zC-)^%cnp#ni9*3o2eETQ`X!oYq~xMMsAOCn&>2IRzA>wdeqq>C#lG#9eH61lyKpl* zs`HJ(R`ulo6?*!ThshD?woip8-Ull0{Ak5)1ApWClJ9Fy7mEMcWb4u9I`YjFzUZ^F zXH_iOmDgRh`zcON2kU)xf?2s`OY5RM@fN8ioP5%)7@`&Z?u72XEmy-wWr+j2?p4@WwO;2i1o%7fMClo(G1dzZrV z-yd044+YTWIObq6CVZG9S|Inz+zyI*N@%?TSz<)11fH4N{5VsiW@#p5XRZGvxE(czKCK>Sn3>h{({{| z*9aClJdC8J--K;Chu|N<2WPGE!pIkBqinj4u5Ibk8!5cX*`}TYYEG)K+jF*!=bqm< zHVv<`L!Ihu)hF1%+mg1QcUIZ$x6*`!-v0fC%tBeZ_lW1?ko|7CTIQp)q{6|HyCaGuo%=&5U*Uo%O(z}V>9>2XXcZp6JKaAgGw#DHf1Vy@V7&+T_^m~r9d*<9$P$`VJm(}T% zd`oj0{6h7a%mOl8`Q4Gx98&y@=%_Y98TU+KK{&kq?UC-Bu=p9l(es3MoHMxv&+ztl zM;3FQ;%6jBEeY+oXG#mK;i$Jqnscn;XZS~@2`HR1*#(<$)Vm|oIUDga;-kg{6z-Yg z0!lgj{Ou8PPFehn@Te-`9Oq1a0Tq7!?#N~iC4NSF)ShsD$vv}}WZ#hL4 zS8>~7)x80-uYhd=uzY65oN+?U?7;7Y`Q#mph59+)gvlsrkr}+1Zn|w%C9psr{8*$n zE($EQ$|ciz#Je?`kcxWSC#FP#t}=;Y9R_P>hG3yf87k3-5G+)Jr3^_U<-is=qrcS2*NY?bUIxZumjefjZPLp0$&iB2 zlAY?kOHr45rKapGv697DV4F?~ByHi_F>^~IVM0fN307O`2?KNZz3Fp&s9x$Vi3R#C z!3F*!``+LV$=r z^BP#WQyAB#^XTTBfWz6F9b)?9*bqsF?~FT=38|iMC!sQ#Hedz9*ug(4#RbOyQ!7&r z)mw$z9Htj-$kCb{3qri%)Y)9<9q*1JPr@Tj^y>Ds1 z`-62k+1lfw4C6!NQo44=QD9`86kDBxmY-r-HSoY8qi2=W+*N^~+NW z6V@H-<3q6a`CC*%p7VF*8q~=-(HY@Fd*nII^YhILrSHN!%JiJ5)N|(S&2y38sLu2F zPsmic3buU1hs(bn^zZ3*=+YmC13fd7_M5`aC)QgJ%mV#v3fX22O?vj87cLmtAIkP; zCAB`p+%oU|+3}N}bJkQ!YzBK~@Q7^dX#y#Xb?69hD>Z>~u8@wESP2!oT{E{prwkk1 zuz9%9X+f8dp_D2*5r0Q)!Kec)iYZGC)yHIq>SZ=WLG?00qQygTNHvWQ70H~2ie%=% zAh8J&i6B-Q7Ng<0(b#Cf6G!`9S&BrYj#P=VaBoY&Ppfx5d&kRxNWSj=Y*EzZUeqV$ z{NqA+gTvW!_p0-ud_Ql1pvmmUBUEzV$-s^%{P~4oBs))@r8L$DQiA)b4=gFIy8*^Z9<61%jnBx%HAy^#a))KrtRg z50X1e47V8V!yTN!rDmd zj0?_#FKe3zb+vGDC5(^%+OF-RbnVC8szrjOGRs2VriaRe$X>dfx~zPOn0K`>?c`P6 zcTtxWmEo6jfzxA$TAyUD>#lEeC+iHX^%X6SGsmvg*XR_WdcN_Oliok$;W~P`Ltgbe z`3zkl6R6QfFf{U|lN;Q{nka4z#-X4jfP@q>iUm4IV3vlD;y}WdBAgi;5=gJYGhvW$ zE=^I17GB6xP@#p}dhkiKkb9NF0WCZ;f)k;w$aE;!(a2|WxB^=6HlX+;R2fmIqLCa& zcsCa0x%mb~4O(!wqDB93Ma4^L%TF?ulFh`ROlHrVK!95M`juyUTzzfhq_+xkvTF6hP z2to^t=@cSpK|hls4K2(+rVvC6q`4GubQoMiNhXSu zu5TLd5$6zKU^r0$9auQLs7h1(5GG^#^Y+JIbEl`ZYadH!m#WBJHXW0?!SJ-Bgi2RO zo83L-vU{WHqcz0K4;w>5Ew%1g1>w}{iiemoxp3-=H;GriL^t*aWJfkGFcYBMXZYr=2(Vrm zcC}Eyef8LLhSM%T;ZP?aKT__?+qlDlBaD3Iw{h7wzffGoV@=z#qi^KD)#c7~Mo!PV zn4KI`&Dt2Z zMy6=zQZN_O!)VMWvkPwuDcY)@&?+pu57e$U{Oj9FWf68wVwo0LvLg^wGL+lcm>_*yzfKB0iOP8`SfoeVEI zR~&h0o9b*yEMjy8#a$L#@P!>dk*MDNJkgf>!$UkxDtBIM@cri@FKK{(^QDG#)=I%8 zXB?c-B|Z7!5g9^RK14Us*;no$rw{&@Q)QfD8(wBKh-EIMWzJK0kJf)kRce`|C?911 zso33NAf?|gRu+6)`eQ9BOV3-dAni_|fU~UjP(PoO&RZpa3C;9;x}~PIUESK|3Ga#! zAN98^803E9(`lmOa+qje4ojc5~#{ z%j0=G8%=^FZKqx192~?W39EEmk1RboyrS2Ox@278a2fx4itXo#$p>&)gSkC0c{gO+fK~bqQVc_!|QD?nL&z`~X36&FE ze{=lCVD5Kv^S6R3%w9jrpX{*|uZcg%W5Ty6J1hHA{;K?CxexbgG=KVoWSuC2h%2%v zF1tlb`JYr=3W#534UbSrvoA|T#P!FY-*G=TOAfNpB-_Yb$>h;f8+hR zh5Dxd1cKr9S7TlR_w_u~PTUqPKFWAo`ZSk9y+?TqNqycWK7PlE&yM>1hvqydbIG?G zd5nWkD5Qy~&pX8}Pwo=kE%9gB$UnbUL-cqB>n7uMh2hq|Aw%y+JWQq^5ao5TYj#!4 z(+c6&zcIg7CFa6OD`qJc>&52(l;m1U;LG*=h=S7i#~Y_rvfK^44Ad=ET+`TlgfG?~ zac4f4ljmfSxU!g{Z;?v$6>H^cQ3_Hm;O7Aer=&TzLM6w?==hXG=KCvpA0t-1oppMO z=O%S$SEn$VoWsrIs~^4;qRM$dEBSdn*K%Dd7Vd6IJ<0niDR?5>P0)k2!Sc>s(fJoT zJiF0P>x3l<4yaB1?n$+w4h}rNnV>QZbprWcW5%o2J+{hxT511-jW3(EQq@N@5Q6#5V8)#W2dN)@&4piXt%!|xCH8di z?rZ2gj@hRXHW;%dM70N?vR4}Pn-Xug+*1zjzMV?=#Qpg9_%_x7i;K<&AKlU~R|2R) zQS88vPDS5_t-%u}LNkE2yoxzhh+6-xSbYN*eIz{IrYO(Z(78f9{hgVp zW@4iC^@m)$t~X4cr=*b)j%s>_ospMCj9KX~^whdM+x-EulCBUldfM>~iHof!5y=*)XX zkRM9la(Oom&hK9GVnV4(l;K|TQh1|ufNhi8anH)_`e+8e;G7#LLo*@aKu*1Sj!Rj0 zf?k=dY-&E)s5X&3^{H63$rh#+oL(6EcZ>XuZ<#v>8ay?)oTf|jQn))*0!LD9|)46 zA;ql|zx9y6S7^!6m-<0v)Q58)DZ#{H6|o#Z{FB zw1%Y%xh#!*;o8igPeyI%goOz?uh_MvRY|m&_tYFJx2qhwEp0De+3T+VxFDm<;7GOb zWaCig1z6E!?wVB~#$~yiv+!S|jKnJhlg{g56})c{m(1>!T}>Z#LR430+IrN*;F&96 zO-HS~PcK@EF|MKgcrU{`Zz{0%-pBhYRn+pHI|$w`_pbFW%sm2>H2$yXcRQzS8S8~z z4qXd%`BW_5g1y^bsaQr^i?YS`EG`~fM%r*$3-;b>x3ugz+zQ-3lPHjoGWhEDC`yAN zdqfXadFyHZm|Sz&(61Vd&t<7p%hJcbxBB+YB4K6^ynW`#yX4f~f0q?>xZ+del+*dc zLDsG3aRtn|#v|vw5K84?rK)ti9sG0BT{8-S$5D50c`s*xslr$QQtwaq`)nl#YURCYN|lMszQ zi&*>FBLc+3*6fO^;|qdd^QEa*45$PIW=!W(OjK$E@K;(NpLjhFV88P!=fty=PCd__ zy&%5g?#g&vn4up!&wxJ}6hEmwrOTPV6*MO@L$q$jOYve?#dE87M|mN7>FIGX zWsuSRW!IsijYVw~P1p%_#GIjv?B-28=BPu)ciB&lPe$Mpdt;)9BGmc=gob*d&-U8h zP{p0M^Pj|%L@$)vl?lo}K$g9Q>OA5iM`nog#Zw~`wjDnLBtamGmkhz9~fnfr{`fX*x<8ZenDjUgY2bBvrU7e2TF5eg>a#_wm0d}#k*=r4pJ9XjBY z7ACyLHCHAMKgbS*LMb2}dhJ^3%#4j4yG+Hl5QGkU(}WqnG2=RO8+yrLI=BH97iPT1 zNC)O7&HpZ$6zFJ15;nR&XLhIgcQTb;X52=+F6M6%&}3@|%P`=Hg2K@vxB-hw} znivHbW+e0t#G!iVhpR(Ta^N;Vq>5xy(j@zAz*KIyAt{9d-hs!*!39G^$fD>5Xc0W6h;@qp?&PO8SS=bXx75FOkGG>v>S zoJ|4{{X0Ha89Jb(LM|g{PXb`9OpWLI+`-b&2-?fQTS6YvxTi7PVB-PXrN*Z*yqo8c z8k#$F3M&q7Vta5;J0< zM?%mDOe7QF;Uz@e$fzI`9}7XyQUFAkFkakXmr&zimvHPQ2>vIn_?g5a_>Cc}!i(w< zj9yESh)7(Jh$z^^z$Okh39w0mO$uz%V3PrxEZF40CJ#0RuqlE~32e$>Qvur*uw4b4 zD%jM(rVcg@uxWx#t1(DKI~IKlV5MsFgEKdRNzPk@LIBr51K@3HlLEVbI_Q+4^KTZQ zL;Bav-3Trr;v;Ag2i{nXsrq_TYmgr|IeixNQG-q`Xhi{tc<5s{Hfrm)nn47=0{xfn z&_w)X2wCU@h?``HB^cI~V!-y-HKs;aDug04G4yVI(Vk!hNri!-0z^zAY+;G1n80up z2{RBfjvxaDN-)U?F)scUMQi~!VhA0~0N|MzLJRW{=$Jz2VAVGPw$lhYfTV(i49HnT z5&7lOAx%0B2$t zBl+)4O91K0(GP=__*VF6F^uy}yBF9?2E4FP&Y3(zPaC;(eg z1U8^6jbMO{v0?$QS+SS_gf@Z*c)|tZ{d}bVjSv8;r4d>%BRMQUQ4Wh8V3Gmdxhh}* z6+)!^fXWOwa=wZM7+%HV0FuEGW+AXHgV4t;2jpcD`mjYqEMV9WiwTfv0w)Nc1v8cl zpb&~(HCL>;kMf#x4zmI%%MieUiIz z1Y+Z5f3UeSEL>pbJLpuh;tyi0jF7{cdI1eMfHq}>2-c_eKZDstgbCJB*PlUx3PJ+& z4Cqt=w?ol57NF8i$_iADV-W$lnFd6_h%$I-ehmDTmRi8;3b-*VR{`%U2zsDu6^j~J zy#h}Ca`O)oeieb8xr`9QI@MUqukHUIFiqcbiF=3G5gc4~;P} z1pdh(__HWt4H#WU$gx4BTt>EVbC7fsBnkaR>SO{&)etN|h$?~wO{LSvjE)7rP;yfr z14H63ssFlHcE9l?XgYJyI8D<|}1Wg!)O^HqsIwaa>zh!s9tOS8s`TOeUwtxof z;HI4Z0te<3u?7B|eRFLHIIyCLpojU+!U4<}au#4~9l?fn_EFG#U<6D9z1ja=-_ve_g*N%$7oYxbup1dT0DCIA$e#tH zZ@?DtBX?LizDmZ-qXkw#3JJ#cZ4pe!0XZ!YjzoyT zM3*l{VIRTEmA?me2o+_0R6opLgQAjMq*r`#sFarYbQY? zEP#k1=s2AQ7jn!6G%13oIQ=m>8Sy{+p(rAY9v6r>MCie^SWgHHj#(<1~E?2HE&z*K_s0ajFS3UnqQm4Xqdq7=mio{~{W0LexO zA_&ce&?9X$$`4fYQ4j+i$A46q*Fn{Q0os=)KxzlxW6%SIli-tA!Y~XBW;_fG-G9Ob ze-=foUdILOP7r30-wnt((hO}Z0;tGPP@_FSDqCYvC2D!0sxn5fLFg!iYT8_&Y$ga! z^lXGb)6B5J*~G!wRR5Zd%>fq>Jw+IxY1iHW)8{Bb$PE&*d6x199?0KO93BcMKPWCU?@C;Om z`CO=S>@HO3Xl~j%Oxj~%U~uAKU}*ds3zQ;%e_UYx3}FO0cew$2Pz<{8aDIb=5*WVm zCy=j@YAfVIC1Q@?Li>%?RhF0o{ocX-zsYDvU2x0I5lm?A62qs$2}}%(1u!crf5m_i zgnYl?)dHlEWw% zfs|ht8=L>A@Vp6}H{k!fY61n|R)hbUx5)C4eGJ$7_fBB815u7@G%5us<08@AEC|i3MWdoXawY{H(2k3whujd` zgQ}5+|EXvI6+9&RMvj0~j?EXUJUpZTWN-$dX{{G1!U23J08tMI5PjTvk)ZPz@c$)f z7E-D9-~yvX6n}1d$bgLiyi%=i(Wn>@T1G+h?;74Zf(G9P(7uF${O1%ne;(Y>&(wl9 z!Lv7)6c3o+q7VSiPT_b!$W8FTG$KbsqW?LjS0U-d)H#R(Alop2)SU&^LvN<9oKdgxJ0%9XZ%E55BFGgO( zNNL!{Kcg*YgbYlT_d=(13n2|_7C?_!fEz;K@w`Gv`QPLD{$;e13Lqk)BnB*Fz%zgA z7I-WVf^XBwUBGt^?UEP1JY5i1V2aWgqjqXaW}uoB3@b?{pVT~bpz&0oV1{RcLe_Zsr;{11w?O|w!IczlU!iA;N zKhy{A;A}qU_A}qY;KS-_@LJl_i?mviC86^qO?*(2q^b<}%+g~g98p8upJ8+l*q&H|7G>#q# z0D^bHJokBnD}OkF2h`9ajbX&o7t9noBmp2ohg5+Lef}RL2lJh|7%|@k7eP3GF;aey zLk=K(L4Uwq(BJECct8X_@*2!_0ThODgn^%S|HP){0}_arE)0q}9I3#~UZt?{^Y_DJ7;e+5sL{HuP{;vySzKLe=0hWH? zwTRtDk2ryjui!@fvvfbu&;Aa$bS7}8Ivk?~b|8BZ2Okh-2CrDd2?#MGS%DY+2yvL! zDSBiEEBFoG6kjN%08|jT;Fti=%l9)hL-2ifulI7=>G7}ApEJp1uhf{&JlkdAE@C(iUI=SRHVS~eDLuzg%imF>o!K? zcChc}7jzO$Tv|Yx3tWDc6+VEeO+^KSbAdZ7%@sXj2d2}&d_Hr){qJ2{;161JBeh`< zLhym7w{Qi4*C;RtL816Sstc|z@C9xJK0AklXVrHUK42G)aEHMo@PW~A#B~_*0osHT zkdFY5L##A>z}t&T5b(SNhH$48%yJBs6hJ2oMvOk+KV|(j^Vkb~;7THu_#cLf82DCc zDw*oPx2b;(xI|tgGf))?K1#FHqDT6${swS8eBhR{c@54{fJ+HvM}g`8+=UMq@PoVQ zBno7=^jwS((coyV4?RM{8V2z*1(58(#w%PhKtKTe6iU95>c9E;JOmMpVGqZkpWq*s z6hLah^>a{LjO`a2YN`MBLKD!sTcuX z_us{S6CeN#38-12cOhiJ1SR!Y1kGEwlgR9N-TV2cxcF>Yq3CIGxd zLC)!aVPO$)2Jk%$Kg?bIUp6IRkN_gsTK^)%Kwbhu3YMz(FMV z+Hv;jLrq%?N@I#+cdXb=ja+Frqss%B-HuA8Vd+X3Vv=1+tyVS+6NTnY$M$e|xPYQ= zM&+n@I?5D|5K3GY_IN`_nNU_QBR@*7jArMKHlg!bxO6#wBL87eX5DOE$SsO>Tb2ne zaY`yrsZr``%DCBDGNl7i>Tu=z924p@*w&S-s=&S7e01eZTy0HUZbI#|j9l0l1uEey zOep7XBPVkI8ym!=Rh-<#`0>s2@tjg~qi{WLKg6hUDR-`sDb*YMbIJXN`-aX!`+gU ztw&7Ax+?nC_lyZu+i4U?d9xA5>nyJ8X5%_k?mA4LJ5|x{!}(lFQp%slR+61mSO3ms zirAE-q8?jqO|uD?{EV&&A^I?eB>&0Jg{cQ6IqC1bCTuyB)Ifj9bph$O(Wt6B(Y0A~ zG5_n%f#bdc9ozIdN%8tiZ|f+#LDAp=TjZ|+;MDpJgogZgx&Z| z$M*UP>P?@ABJpp3$$rB774vTO?w9OA>k2VKuGQ6n`UyX{oSkfJP8rXQJm~d8qKxhwDJBnZ1|5^IT`C=PpUAsSNHX z$z>@THD`dN(8hL7)He~6=Ik&jnRYXlX*n!In3rRup0W%#8Js6bI=>7-&rg?RF#`9e z-0LHZKABR#KkVYjY9$iMUycZAb4_WHhiF&V0idP0K|3CVzmAKxuZk4Y7>~Cb>Y8ASk)=GWtDl7r%8%$};Y&&1tFxS{o zBv*SilG~aq^?K7W8a(NBOh2aSK~Eh@KzQ#Ii*X$>4)cX7#&&aT1jllFTgEnH=6 zPwpD@#JGJ@a#~>LCJH((Dm8I-9pD~5)Myb#f!A%Bj2TjRQ0l6U##qW&M~-5;Y9q)X-Q|-BlDVPIR#L`Iy(z;Yl6f+p5sz9E!t>j$WHMCmB|HM zs!Mt5pG$#dQ$(JA)07ULG!Ccf8?mcjdy7*%nVd#Swwti^g@jV_K`bopaVBNSy_q^z ze@X=%Wpp!jP5qiNLb=mSU0t7IrCDX~PNQ~XE#*sY-{xv3{i5VwMOBp799wajHop{e zDvH6usb(|oh_p&6Ej!Tk7VvJ8T3WWE!RBf^irs=l&vq2HgqBERUsnN(dz%d=Kc z%AQHWJ5axPk&YafY2rX>DX6+a4wtjrVJDWKqOPjHcez%GYpbrPzjfVD!I8cbYI(5( z3BKI)Q*EXHe%sIA4m7Qux{7{b9v28nd9vGef%-#_F~yxWZ85Q>VvC<+yJi=f@a2lI zr5{6Y?{BY;)OWeAqqIMYBDh{*MMk?zb>`{<9k1{M_7A5bFTdq;HJrtbpW z58w{r%V#E56qERKdvUyDue(#&rDslh2a^0qeaGI0%=cp>JF7@3w6i)^xrK{g+(Gr$ z#9Z8u-1W{xH^k<$+@poEvg6NKUDOqoI)6yIa{$NsR~K5)lEr4Yhm{8^TC62ATAPRK zDV3LKB~x-ci1R+X6&7^i5UyZs`V$w+HQlf#(3U{?`Tp*s&*8Yep0`3>Zf>=@E;W@ zc3+a+j?iOCb*z8i!~cB`|Mxw7cAFnJ^?%>P|9uaiJ$Uf@9{%rp_`mPr|GtNhJCDEb z;s3se|N9<3{l16KZu$SdhmRB4-}mtOgCWbu{Jw|(`yT%9d-%Wa;s3seuk)PL?|b;a z@8SQxhtHk?_6 z0h2UAT=Ju^zM%INIhCjMzIY7vVr5C6ESzj<#CkkPbZ3yd3^}skCkwLdkDmB6RO`icBMNEk zWJ&4$@pcuyvXIdqFF@rE=T4qJJpRC&HR^r3 z()2&nRg@1Wbfwgxs5*X$lNnhKLWpf=rLky*6W)uOA#)o!2)Sikk+z*1ovhhId3=~% zmATiLuI{aDEs&XJ4OZ7y-rRDf%|q1TWHbc*7kr0PG!5E`-Z65*(=b^>@PzvDdt4u& z%zwy##8H=_>I#bL38!k*BhSf{9M)ju${#H?a^+r1kJO`1#xyDB=cMa845%l2jwqm6W538%w+zWsN}L{$(ZQ6`~%qktn>_ zR7x-JLmI`THRe)!IucKoFE7t2jC#&c%T3vG2j;;@U+B>)XIhqlGTQ~=+13o?u*#3y zys5z`beC5kr$B0Ns4}B!{hf_z|0tC44%O-|?By{lsxcZ3c8k#JX5_nCt)g6}dsWox z22?y6+eu-Rl!|OrM$~5v+PJl5|C2JOpr4&f8jF>p-(=*rZoBkcGg)0jG2HpHT&B8~(s!?^Pr@#g(?FIor2+4j!J3N6f~^*2}yl&R5s+8jy^iRRHeI+A3Y^KZZB7r zrO!)M7PM&^+_o++<+kOF*3F(Qr^~fu^Hi4oIca-36+L_40w-sBu|~F2>_9q9gRA9L zX^h>ZvSk$oDnG7CDR?s`6(R>J-wL?oL2ajFjXQsfQv|b_;B8>GtK960UFFI`K5Dk) zHdAd9@}IpazJs9s(|$R@>VGe*-_t3lqW)Rx044N}Hk1=>+J{LvdZ)^TinEYT+Qa`C z9oS+TsJ!~{AH6L7I|Fm$!e_0{zeL1$LC3#Ib<-u4kwxijsoxx|D0;YTbff_Gu&IeS&fuXO%DS_~39sAVRhj*_GV580*j&fMhFZ=Nl^wVY z(|jG1<9`buWQ8B;c)0%8!(%o)DjR7N@WFqx72zi`(^MT(AU&Fmwmj95qNsf~Br_9j zfIv#Qrz%f{Oi!_q`j5A&XlhMZU#~l9r3CtNTF%W&?@P_#i_TiFDir=fWk@Y$7xOOL z;_FU&w$7fkWez69Yeqj*m~?Yd>Bs<19<)i%*@n`Ylpi9bY(r;Tnlleu%q|mW-3@C; zq%8B)#2Lp{bMgEzKai?D58Huhj5Jm&CyECuuVW$EI){m1lO0P1n^@hQJm#xADT5kw zuK>!Ok9VzRHT_9}&IaVLKpgS##mlmjyEu-_U8pvsE(?%yol?^J1z3usy6Ac-3-MCv z=kB^vyM=gncx6AW6r)%V))L;#Q9B#)Ljblux%73$>t^Q~%W*rCgG{bwb7K(2XQ0Ci z2gAdC2|Es(`+xMG`*|x`w*(~@E&h*(+|3mXcebLyrP%9UU#9EfG{V`0cY~NU1{tN2 zR90$z9cU^$qoR!U+bBIYF2nKYt1XgTCtw)8mSYD} zvRzl2vK(V(wx3I3G-@dt{B=3T%;KP~)Mo|ypwbat>Glf5ia({5WP2yAEY*++`P?Ix z_OHYcExW{NkaFuP|51}RtU{QV1(I+qR7t6Qhf@?y-C3%6+g77_z3y{k5S6UPVe5n^ zlG4}U9p4HsC8Zs8wiX8r-A|Otrt53&;X{dQkxjONhnQQm7W=h6hMZLNYOUJy*Zi|G z_MnJ$s45XZJnlNHXx2LP>j^VS?;l_`n?Cw^Kx?xeIkvHr#s=%v?0bgdykfe_gZiml z+-co=ida>gOsQAX!qc4ao3npp^D+K!)3cv}8=L6&EL}wh;xNh3M)% zHsH01bsLdK`#7$LQ;waBEtzkE>&OHyMbm&y=;_p&oa)etgP34?xhSKm!=)H%nTsJe zs3+ak9xf&n^8z2GVP`*n{w}&Jp^rv-rTN2)eF}|xHQ$VQn;T2p`pt-Uu$d(HE!dBy zwUm^#1(TqB8%aNyEvBucw104B6w^V{xM-L1^t>0|!B5Y{ve&YDsYIIh@Squ6)iIQ^ z6>rH!_TiMKEbT8#$8JMphd(%lu^yJk`+Wc1ZG;D1*p8Q$-)=)kEfM5HwYDSFsSIxO z$!_6dNYCT2)aP!;`H=A>F0;>S59iL<1ibE)i37~^MZjh0k*C#FH{EL|zRw~GxsRJNjdeM@!5ob3O&m7()}k-iyL zJU%{NyAa>$yw=N@+A`_a@mIBfrHy^clXmPvYlfDR)~v(4;%`Oq^~ZlVO82~^TWH>T z7ZvjeRBB(<>UEW=*R^CzF`G5z#4=cK4?-kA(KSxrqvoHV2QkY( zlaz4C#fswgLb7`yrSW^QV^h77RJa#c7>*Zd3CrAZ4260h$_#s>)eUIDK6P~^`kjuH zy&s3-U*Ah5bwAF_Hh+|KD<2awe?OuO{3@lKi!OF#aq#EyKGc&F4P@i&6keHUkH2Az3XQN$ruzbV(lSp8Nsl}Xjjx#U5o z525OJ7BalsW8Lu855u$2O4>}H!p1LZ5z|Y`N&VbmtOX&CS~8$^Z!k5(kDyEbQb~Qt z5!4gnBI*1QwFleIT0X}i<_lL(8dKupNI^$Y!qbhDD-Ak|MeVo;Cwx8Zi;Fh}ZbANr z$54B^57*HT4$Vg$ zS35geMtc6QXNN%@hWwxFf4M50)KrM{q>IO~rlsJA=?RRRO=V9?I)Poxo+wW`V~M6s zD?-vIP9SN6Xiu`UcJ-$7ryx0=gcKO#Nma|ax>5Q)Nb_t;Px5+%i+0qv~MNv-T}#DCb* z)icyCVr_Ro*%kh<{I_tEh$)2?AET+Rb{J3*g z%|9S(m5-TF)ZCN$RdKbU8u@5|TMJJ1bUxg*EG31xmJ_|SDIXQAZmBg|@@0#+O#d8g zyIX5*#uR@J$KHA=Qp!4q+4?|`3q3i9u}e+$B#-mxs0SV3bY9(5sn&^mLe8xg5@7ON%iaE$*&Z5=-8!O+JB}BrCZ?ggu06--R+G}J*Qtl)5iWJmzu8l zdfNpoQnB5o1DDbhTrFwQIn0UAHA>Bik3F?+Htfp;W~3RQF`$JP)sD)L-qLvPA{LGD zeI#wD?P^a&HxSIWZmD24Y0^V|2|M9w|DuprKV7M5Jy%Ee0v#@aTtdfg8=y5hYj-X8 zW^mb!)?HGYak-BR#@Tfym$B_$LX+G7q(+w!iS3s5GpG1j+$rF{=cWAI_Ag-!C9^At za9)sxVuIOnydSNecLlAkL_9KI?c`o-2rL2Cg#?<;ME($Nx zk;>BUt7`sbXkP#Hg(5j}zorgTZs?E!jlPDDiR{SHI&jI1jIU#hSg}-B?|B_B82>y6 z8or#H?D)s3DepQO_D?CPa0HeEK3Y*X&{NY^YyHh=&<*VR)~we`Ud$C2!#8Us1Bxn8 z2mGIoC_Q7hZ^Z^$ptfgu@on!m6Bc6IJ5zvo7TYA5-NXTM$DNYuWd_*Mfvecc1O6^G zll=Bbj|P8ZuI1lkt=caoi(8o9=|?&F(Z-dSO_Oe+Wdm+=sXXnzg_XYQGfAn3Tph^u zHX;~9`=NHYG4B%GJR>oD`GA13v1GdB||xr=_!j?k4- z?%{;rtfG{1@2Tr3JuB-v%&~C8wF|Z*iMfw}2dd~AUs}1@3*&rdw5uwOr|)BDb*q{r z-v_vexivx3=m%IH4eMwLdv#YgTe|)lGvLz$gqdGg8pD0@$;;4(n4M<$1TmjTkW}o0 zq=CxOWGUTzh*kwR@gluYHy^6`2qX8p8K*FI`W&bXZXsBj5GCH~$is`qE8PhUlkJVp?Z)X?23$&(J z&rs!o=~54UuJ-?R1og*Ev}}W$BV|2@&$^#<P$B?%45=n{akV* zvsc*5Z#=@ulX|_vj(AeOq`fOqZRlqt@c0!P{Q45tL)ph`tfg;M(dT5Uw`JJI+y4N%hHHG*BZ`yZn*HGGY^w(q{KUbF|T#OEZ$G0~p=rK;TZ zNb6cfsik;}4tBqTc{}(G&OASs)k>i>_X8SY@D_E4nQC=>hVU&0e}bo!R=mZ4wDOl^ z^iJ)-hS2f@4t?$hc~kXwSW@hQ`40z*FXLX0a^In?t`SnIYwT`GC)sxkt={8|wWyLe zMZ8yQlxJ0>!-DtNzRo2``uJX~@4SMFiEy6i?m%@uAY_l9bo&Fk@9Jk9{bh!_>uzV0 znoECp#4G-(lB#^fXSu>UNm~68i;#1FZ+i1l-9oV$%zwC2k5A|zuaT1We^OUf291^E z^ch>!*eNo=y3Y9KK0E2;M{jdKqXR$8mbOv1@d>u+yF(1=)@P)Aa-P&Zzo633^S$Z9 z7kp=I@)xXFD;9F1AF(U8P^+^Cx@q{vaqxEp&5o6jdIwI z|FEG?hG^&$2T5jcFao;1-&6Qd01%E_Nz8li`;c9&#T-J?7`K8a!MRntRvap=)Y>tRHB z#+q;?XFQjpDQTES-rV9zoS5fBqs=j!(@l^>@lUce#eQwS32KX2C>bscN(XEoq%|OLFIQimhvKZnDdnBDU)6`XJ?3Yy4TvJ1Nb%;}Q z#q|aMVNb8k(HURL`-&XvTWGx5lFU!pDmeI3#BfhLT490AyZ)r9uRR>HEulPel6LcV z9(L@5Xtr=#Dt)aof(*M!O;= z`jzskqt<$v(=b0zOZJSASUj&-p_>{tkq*YzntDoH8%e#aF_*`tNXoO;)K&(M(2^;w zx74^$opOkEvKobJYUSopQ_quDk|>FI8`CHp=i`@8$`IUoJ&Du zJ`#;}p9tNrJoFhWx$Z~3%45ECc*Mz$@(+3%(zN}acp@SJu4@jKYVoS4S~oKqSrZ-} zwg`6iht!+eYWPC{{F3bFy$Tz{Ulk>#tFTzTkCJpsrHNMDVk9*z=VeY|&IsidCnb%Y7Y?nM^fq2A zSy7mSmnBZsk))vul5AW{8sl9si5e$L8s+Y#VqUoH)KE%ayixGl8WcS45e;&_%q!xF}`-yN>!AzJ+)*&KWcd4JG$(8D?6QR;enuW zeWgQ|2R5qKX_B6MVB7HSCn?8MV@QoWG3;ah&`Q-6&0s!3{l#Ifvlrqu8p6nhCy0*$>>5)F#s|@w%=vAIFTrmO@yb)~O z6lu)!#>`kaP1n`c2k~pJ)=G{v%?I6eZjB#V`)XY2`xtZt9v-uzi4#gyIeruOXr=Vs z>PN|0*!C7oK|A=sFZV^Y2|NAhps%Kx(qxZxsO+bypj6uDM>G7f>b&s76KQF)F(K=n z#1fi13`^*zY%kqg!|(TNePfm0M>u)Vq6J=fxPzVV4)jMwF2}f@qMSJ{9lkI2auN@M>t2?&xFAf;{3}{AqBTL-IW@c{r0if!ybaf-{my1DeAt?u$_D*Y zs&fMhq({m>UihCW!KiS?O({8sV93mFON!s_WlNbMaQL@SN;g6?j^^Cwe_OXbQ7oCgH)KLb#krZ~?%Z6oAS^4%>E4k9k zF!a~8NK`%Qy;irSq;QP`)vf?t|D#s7p~Z(VEs+GCL_JrkMdLnkw@B6>c4S`>C2hWN zsRDJYh&2EH%Bj0zUCe(}qOmbaHhe{BSqa`#N~HJs%cz3y-A%5Rs>0}p^k{h1%a~M^ z(G!3E&!0`B3N*Yjy6T6Xq=$@#E1dkOW)!xRFJ=5`Ml80J>?lonc67p@fUz;;st3J@ zLbT+c6jKFbM@&wDtff)46>gT1>UWt!! zqh=3+nRx7!QLTzHu2M+dH-I7`rdD$~#AdXnIdRZ!8732K3ldhCe71Peq z`9G2|wRtZ>;L>v};@@Dr1DQU`o$IMek%x3R^9{MWS3@_>^U_MVj2(wE zORAwvH6N)LRzr(shDfRwhh3y;*iS0!ZNth0Dnr7h^es-qp8()@m>)!7jA~<4TE@f2 zHBwM^0v5B4@z~ObR{EvHDt}d#&M67l3LnR5$(ZsIuob>(ASJ8nNa^2ZlKO;u8O|RyXKMlq)pL~!o!vS{;rk(bu6Lqk(?Zc1! zW#0Z2Ru}nh&iAL3x|$|R;zj<$gS-Qh%4MstH+fbU2jq9J`;%d!rk&F1rayH{)HGEl zJ@Kdgi72t>g+C?R`Pfk55pOfPz6YIFvmVl$SIl)g>UGE4oboSu<7Qrc7`HK_#s30W zA+6DgEbF5qI_T@_x9el;8DAgs;U50EkJcZ0vQo=PE8(O11_<4&0YcX_le$$yjSY=_ z;O$Ij8=#3-Ewy@0B}FBvcSCeWjB^0ZNWyeH(GVx%gIy&#HUee4OX|sJm#3sXj9h#q znI(bZ{Ux5fmC;8wmaDY4{ zv~P^g3LO(b@vVGfsBdG0&>P1oj7~MiSeQ-Z6K$yy$Eb z6rsO4;Uk^Bd<@BZC8 zUO)CRps*G=M7{Z!k0~XxODR34`{;h^wfhcHPV0KBxu&vy;K9;zCB@e)kPg1~ai>=; za8Nq61&&NUn`@;y%4z&}M6E;HmS|6=wUqWg^(imT?Fw3=3mVx-J>$8L3+-=>DO95>js_4R;Ep!OArd|9{ITlB~Kxy8Oup{}HpJ#zgtoP1bR)4VJqck3ib|#Rm_nu?z=& zgV*zx@EYjF^)S+m#xd>b6a=i}BMTa})l^q({3P{mi-r24zohVXnzCe~=Ua|mjm4dy zmHNJx)Vc)%E(_Fp)KUfnYss8?R`JJIkKf`7MqNW+E1Jv_s2!^H!2e7$^fjmSfk@HV z2p&D#!J}-r^hj-w<@08QmW=Vdzs8$Bv`5xkDoFjlsjm|iW+6mMD)c`qN&R~&GR{dw zBN{|$C0t&PmQ>doZ8$d`1+SDt-32MA`%+9G%?R}Mpu7$^$z2$$B|{4Ah)(4gFu`y^ANK3ll zeEJeTH;ZQZ&~1O;vJ^G}tK?e$pI)mqS|c7#XT!C#E3z2fnCn&9M8khSYRV~qrUqlk z&a*cE*$rN*=3MunMxnlTWHk!zCnTJ(Tksjbu-^uWURv7MxKJ#cJyFjbOOPt4Z|9VP9I@x?zXV3C*fM1*#or9M3t z4dui9o$0EsQg0ZC$;{_X+g{KMx=B5}u5TH#N?>U|L07D*j^e#jF*jE9(Dk@c{pS$- z_D1o(y>yM;dSl$8`shl%Yoj{8F}`5_Kl*Bo_!oR^BR!Rfn!a_>nCho%ZKgE056*I^ zzg8+kXX>-M*+4n>MXc5Xb&b;-{v01w5(4s#&T){gM-tP|JwovUR{Z8*U88dvs+%`d zN~e>3aov&)_M$Ynb{#JDf;4PbJ|iVXr(=kpWJsEyj$zq0TG9_jqsB_gZH-~(lO(er z;?)}`^C5Vx+-mkNqc5vKi;N5<R&VL}l#|%#RC#ioR zg-OSP*bV~kfGqNpHwGX7fl4pm*XrgpEj`qNUK4t&)*u+I9|lo}L7KM8n`iJEr0J%d zc)=BaYBCsW^vYL~3XdTpzQR8ljB?{%OFd)=uBi8ZD{0>eKiws@^%+0iL*AC}rJLDM zY%#$fC3VRcjm4q!P=qf3S?YI&qQy_X1d+!uO$)_2A(#%j`>QC?!QV<8hixAQ_a8O6 z?o36)a5j;f$SIQQHN)KLJ{%5*8w69tNR2;j7>)*2Z6rxG0`q@OlB7RdY5Zu-2)Mgp z731!&MqqiJoy@7D^1U$+>__`XqUY0^N?H}{?;yG*DFcO{Hk10y3`B3zBA6~@XnH6o zTJj&E)N2&vgx0~79O++EY*HnoP;Pe{E>&i`yedjm+hAG}>+etLmHh2Q^y{PHwV|EV zUB{p$KB&77#UvYZ>i82$rNj>*ZtZK#GgGsM0^2)8@Z%9?E`{O|dw%rY_;jcT)gL`V-a4nSY zdd4AGNiVJkQ%o&%8o%Tm{1^1$eWb44#bh)6bziQ>iKB>ai5T{UW3k9}Ntgch$0Ml+ z{Uq%f&o+<&k}Mnf^Swxva&e$mlKYO`6A-?^AgNDG@^@kB;Gb~}{^_bg$Mb`i#S`J0 zG*s%D$=C_<9gFcK=y}61u8sW@gfxgrF(bIEKkb=>US2&?_TQamD9HP@e2Y?@Rc=%; z&1i!@ZP3CW_kh?j!p6ynGk>(yFSYc?|Jh;7ylHFnz=%K51IA;ev2`X^uF-#TswKMg zZ6->WjFa`Qnu35QVzAuu-A<<|Fpe0nH6|*)6D74vWfjfBUORRwPQ_+UlKQBrsKYQ* zQd}p0yXihfp+lmdS{!=lPE$?IUJp zbCE*SUa7~=)l}E3NC$7@>RuZ{0=aV$x7i_S9x*S#Q9M86JP*Z;FG)RoeE@%SEKvEN zBbm_pc^H5OccqtRKALPeA5zABtyEXp^jcExeC&(V@3b~ca$bOLfA>Wz8PnqH_%A%6 z7X!-D=mkhFruaX`@^oi`CSE^HkMtg+vrsE96Cj>#8@3QvnKSXfpLK2J>D=vr^1|U2 zb9iZ5+QEcc&BJBO`io#IE+=dw7ip^M4a|OwuEI}Ky17UbrGEx*pRveX`TjY;Omx@h z;sD*V%8$6Y&AePn0-PvkF-}Rp;UYLw?l0EV(tlS~KthhDu71s$0&;RRiTZsK1#A`9vvl>OBMF?%Gu<(vG{oyzqUPRp_CW_l0tH5Be-HS68l|M;m^prqB9M&8eVDTXw!gPSRB!YP#gj2FLTQ=Ny|E*&iu|KiJEUQU#{2I1xw z2_<)prm_C0x4+EgDQqof%$pB7N^pLlop{V{&sucLsxQB6HsZ+=`*qm#H(7+yjCC4! zy7MSdJ~cX!=^IsCZ=@H-ilhMRAT!#u0SiHXf|QCKf_%tzBP7>a zQflZN5QAuGA|RtH|{&C}=rDS9kpfuABdsQrbV7 zB<0pDtpi?F+l&RSM>=TXA`4_yI{-Td@;cc0$s_tr)lBQ=C-fzbpvGi??B~)887D=+-gHXY5 zIH{=b9%R(@TNwWN56&k~G265Mg$tUp7k4gvucJ)~?7^-p`dS^2j<`yCwiox|rnpJk z`zfeA%_~M1blrz8i1d~E(tW6>4i0m8J>U1C6YWDJwcU>+vNPe5ij9IDDQ!PSr?pwI z?j&wmk$bdK?5gk|9+Yta2MzVB%7Vjef^8`L01AFPfT}a&q`t>4xV+HY=`(6e{aqeX)zk}TD?%it?1DoTuTq&*ZorK$wEiIaYg$82PPEG#2RM9Q z`5!{S2z+h@A)KiFAx(2dKUqsQln@YXNSaM7SLV8^akyAKDjY_OVp>X?bQlA7DofIn z!#Dwno+&Bu2s>f?o0AKzKBB3wY|Q3_@744Twx+M_k)r46r4oNSM|wE*LtpV!V+NM; zsIq{21kvrIxI@u%k)*g|*qpcR;*_fN+#5~@kK-h_&zxWjGC8hER4V34Y20t>aa zYD(H2N%MAMczILKGB20=7{;^MG=H25wxsf>aCf5QnO4I8N|vu*veu4H}zbsV^X43D2i-R(<$8c*YlqeMSKWYXpg=J!SeNjGi< zyHP%S6X5v0Qnej5;T~-jXR`?Ea8{F|EHmdnJn70q)YFdjM3={<%5<`X2b*Kl9tYd; zu4gOh!`6s&<%5ZpaDBUD;jbUF(RXc6XjmSOy3!!B@1%ch@C;~ zzwla!f5*&1{d!W`in5vhPZOyZ28B3?s0G0xx{J&8rqUzy5?1^87Ft5%E}^|wyGrTR zC9HSdx=YGw8B&HQAq4Lo+`_?Yr^~2q#6Vr+;>*~iGY4rU1L|`H%{r45f`3wZ1#Rv$ zsRO>l;L1);}{mwIly5NzU?5U0jf=$ScEA9fX+-?wF2GNCI5P3-6k z^P06*>Um>BEGYgO>Q31xrHSK1u$?tUz@d{%^~~Tc(xdPi4nJQ0Bgt_}2>$sh8=rd9 zO8M8_Emh`jCUU4X<3 zj&eO&*?RJ)dx3_(sKjT`q$?5RQHTdq>VCk7x@>Nu#6d_AdZ8+MxewCN+?_bZLThSAyU%4-J)4k|e zel}6}HuRDQQlEGmlVI*+N%;pbUwBSs3gPwb3D;XICtt{F=N7_!%S%Z`h1el2dL`-9 zu@L@!4SY`S4hl~x(&}ck;SLT89NtUm2cysrl3Je)F{PBd8u30}KWE%H@2y1AnESYc zwBareTGxZnXI^xt0G=oEe%@2PhiWdB;hw>idJhLyBTP6|puBr{7C*W>n+1p}%%6ljd%J~y9H7Z5Y4D(QYuHg}UMhgn15sW59ahosYS%&hPyjE1- zxl{^?wWP-==TO}2e}Y!levInh)RFqc$LNdg8c8qxL*=QR#S?hlZ!C4Epiuma*Jmg_ zjOk^YNj)wk)S5*NR93c>(yj1N{O48X+TbZ%&$O2Mw5QmE%xEX+MCDKy=7k5lQl(@P z9cs&B$z`0s-to3mB;~!p5&J&o>epG4CN|WDf(qr}`aDNH?RrXE>*v@9hYpq0A{pDy zx#uVxH(W~HnxHKqFCaCZBcrA>=5ORPNxeQ}kM-z$l zD|M<>MK&?KS!1-XY&0!bk=~SGGw$>iYxG1xxYqd$!{Ste?d9lKMuQ)t8 z>LBUm>o5!9)$JR++?=Ie^bOs$;v2@sI7lniR9b~-$%HZu!sUKyKru=m2-P)iF2;4_ zyA`!kS+X*RKXM9Gw#G=kT?x|Bt0rk<3A@^yz^RGyqXz%sK<&T7X+mx3wCOue4x81f zNY#I!)fuiLCf*Qs57(XJ6B4;cl2Xu+|4`9}AJ|XMY9uMoC)|uTeYQt3F3oF1^x4gl zD=TLkOIVQ{s~m48>n#ciw@T|k@yNbMzHIfKc41)Q!EZcIboV=TAV z3)j8+x3!;eNG}8LTLT5SHiCCy8B|kth)`k;V6Hk`z=$R=uQPzTM}|<03}K!%MnGQ% z$Hob`WSAVOA2Lx|Qc-YCXfj?#Et~A5-!4(Fy_Q7?`gS zkTeE;T+I}|UpEP*>O_>Tw*m*>Yp0j$ywy9nL$(=;f7vaZyE5?IFW?M=CItliX|GFlWQx-5EEf5fHnOs3HovOD;j-+f$bnekF!tf0S z{XjFk@rzm0>j8rFv_g;;cpZ)@$E{!(sX9M%BE<*WagX|9W6p&ILzFB_=IK-gGPyzn7fVm?C zOk=QYlz{gPa>oj2Z3o!>mw-G5M?W!~lX z2x#em6rb%Eu+IUO$Rh&0906@l2w0SZppIoQ0hT&q1~z&mL zp)q}v!)fuo2)s>x9rJeH!w6glGD$YkpJOg;?yBU9`mWXj+C7D1mI_6G*b628HIy$K zQFOj}q;4zbRuT@4ol*Ws6#+Y)kw>#w0WL1E1hFWUI3GG0!A<}zbK&5S|sqo z3kjH97E1jMP#iiVfo{2_66kVGIBfJr`IZF&%KHEs-WD)rJ90ny8by!oDpmBzUExs3 zyy<~}+P=vZ^?K8r@z~PVA3&vZyJNN-^~G#ScqUv%AA+p%Lw0sAg)-O=5sY68xW&N# zoq(GD3_b~1!(iPv0hR%Pu>VoS4D?IdHG~`$fRI5ZLMaHqRCsMJAR!RGGi?Q|WRUG3 zz$^%`S0$kM9iof~LKJ*LlE=Nq%zL~9#03Mc;>9;s<8lU{Lj{pD zlHvqRv#Vf4bN@hpGz~?6^sFW1oKU2?tF8cpFcf%DUqCMgWs?M4V9+dCKvXy&yQzSM z3|6%ephN)v=`5fJgDTwxoMT|uM?j@WfJeH3`3$lL2+*s5bWRKs(6s_AUo!-pVc;6!LfGvo=$}vrh2oTM50pd74m8Rf0KsrhxFufbFvd zWHb18j(}nY#q$Nk4y<5Iy`m7M-D06E8jQGnr*t<8b>CeoNOo z!d~Ifwko_M4hlG26+Juptbn`~C_2#tMaQi!Rdnom;V>;0MI$c>c+a51RROK50nXo$ zaTq+fCBQchFz~K`DGcgA6fk)osw<8|tGYZDO3Qedr@s(z?g-2$;$ilFFBIMTEGMb6CDJ+WRR!gko_JNx2=ha zQ@n(A!8a&;$MtVbjAuhUmCh=1tA#=@!vusFRWzn)wNMJDblm)mnX6S5ps9`Aug446 z#-O-{fLIj@^57NfAh=r{A&;uV8e31mgF4t3R&OLAu`Vok+Y8vh;9zF~`Gk=Ve7 zwy$VKH-}>vI(UMxEoy+GYbOg(8UhNY3Q%=LoE~ej;EZXA)>_OEa#9b-{1`ZnI&wIjZi+71mvW_F{csom^4o)#mu~Qp@0rafLl2NT!zB;ToQcCEEh_U8s^|t z0Id!)U=2T`Q zA%~=()G3XCnJMVl{>=n@WR^881+-}kxY|ZQ9s{Ml0H1b%Djfw(X3(dLfFcG9y9>CL zfa=?}M?!~s31wG%nBVmk;F=0>?=K*=K76O7!ng4sLV1#k#I_6((69r19}E|;nStdf z0qPbg=++ShtBw`Q@QyHd{Y$_d28$*NxSa~$q)zZXmMN6AonU@FO+a`zm~r40sP8#b zC<8mg++?kLNE5s;T&$%w9*V91+yVT;ptA-A7~5bL@iMBQCNDccpL2JIElo59ip z0xmGPbVxwuZUE(&fcXrWeWSUsJ&5zOZboBfu^V@UotO5YNhT%bAsi&i7~}Wv#F^el$meQ9zQG)Kr3|Zg4@MqAnL=(m7^T`y6R@x= zN}V2zQgder#cv4ACua$m!r%)Dc*DSbzJSyLDA;}|3ThS!C2J6r?&Z+zOG8oJ=p{mS zABIw^mkaod!G%=0g*?PegO3U@`D}rZ&9_3nIT~H26bhxv z7(|Y{Cm>@t%tn=v>Gm-wmG)4`oAyCA9g9+no(Sc39+Y&ZoO>=5%Og1r;R($v@p#3;l0*VD3VbJ7?XYkZ38ua{^#wIca%@f>{$#@E=>DykO?14g!)VBC&U_0=7+r z#U0mn4Ek3Qa0{S^Q<+y-F$--FuE7*k@Nb;3u9||R|4tTQ zIu+#(Hx-c1;AIN|A>k-^dnyV#wh>CqG?*K-6R?=UxDEo!Ob2Z0ETAYB1^JdWb~=Xl zSvMi)Gat`h0xDzyn)ekjhr!r>0!p%w-I}oiI?RCO(q96OF)*1VAZR8adWwK72HmF% z_`qQ9OaZO`1{|I(-~fZqa|C$L0t7D*(0d?K=4tqW!bcIVGosQf)ax@QtfNHbMlS6Y{8Rgy?Wlzyk)eFAKn#0WPy$6R?rNmjVGc za{wWQ0{ZOu*_$)wAa3eCA?NId%&-1@Wb(9!LeAd@xxrlIb>xXqR?S7Q56=ad%|qul zEfSDE50;5<1zcv3_klxpK7#NURKK0a3=E!+x%=g_@LN0|eqqG|(k{W#d;w}}_d_U) zuCk(R{TjOfY0cNCC10>L9*5IN4FZ0lv@8G-K!G07$n>dx6?rWD7_S$yQU`M2SRUIP1Mek(MiBz08dou0=Tc;yi>;4^du<0ZpC`{9QSbUbXzSDJ!Zv0Zs`9KY z;1PqQL;=&>QHq~lP4q&k*i4if-$2-Mm&0*;k^tKkfXCRlSzW^z*fkSS$e?aZ0ku{F z(y(1Kw@nogoF5||T8Tz_tEi&aSb9JX)LQe@t60450%BJK24Lf6 zzDpRa!p6=`M$O}3_p1&Rq8b3`apVlMt zu^9qVHUK`&5^#`#-y8wH8v)Jc3&>n zArY6=LUzqXse0=K{K;U{Mga%LBLv?L*G)oi@e}kln}w~>W;kBlDqsr(v z>@o)GYXYX{B5%G2^Vp7tjxG>#-ao84Y;73Nu%fZZ zZTCUpYs0o3D5ZHK?4I62oum^FW_OMfW3Rs(QcImxbK6dVYGlL)`&N4AKEfHRw#Mpq42q| z!yYx5{DT^{#S5EyKZ+LB5D=z<-We5=)vTALe4mVQhzoSaG$|; zwSdGtz@x?jHZbsPE}+~&>;wO7CE$;PNIySCfJG%#!Z$vXD#(v7P)4c37Iz3Cs&^8w zjKQ$30*np=R`w9khrz|(0xmKrP7@HDh~NoF(5A2fLP=`?h422h9YLEq3=*>5QIyIY zD&TZ7eA14h)UFXyIf{%=j}s7f48Hm}<7R_2i$PVKY%>_%2?cpy59^AyoY}@k6X)K{ z*6uhQSIrP`m_gwz0d9R*Db~%7=_u7`F!q}EI16W`rk;RfqxljB!13D&|wC-#rX0`wCweA;SxSF+K2*9p^)twq5O3Uh3c#q@QlGKMDElMPxS`R})zBdH=#E=3kUr^Ia&}|FXKv zkhL4k-x$m;Dj1ZC0izkzj}`Ec!O(aC^=|;y))26XK|yT+D%TiXl`KFS7WIUZ;C+#q) zFZsmaWMns5aIulF-6}v)!(;(9ZUU+{6)-#)adK}WPTv+n*%$_;l`G=-+``B#X)WY_ zw@~U*TLD)Xd`}e+7mWh^B%{CN0S6r!35J%!S<5axgS2sl@W zVfVpP7p$Wy+<~RZU;%R&j2kAPgu%9v0y^FW+#W5!wH4x@zl-=LHomaH|Un@^K${AIaxr2|4dRe3tz!z~=$7YkXM1qzACfIVRv0gX1R!G*8ORpROx-CIL-&I<>ZNANDXA|PxNyfYsm{iqv4dCbghZV71k81UB}0h<|| zyDz|UFABOnLBZKCgfjdIl8yZzjfp~67CwRRWJN%&r+^EF0@g6F!X0|%rn!eGb7x}6 zt2``~Y-QZ0XAT3N!P^ht?`Lq0fp?gIYR>^PaW|e>mNM{;7EtyDU`}-by%{7X3b^nB zyQZ>D1yp>Ae0R1IFy|%QKBNdJVX&i?R9%#Vo_73TW~ca41W_P6oL- z0$vZPDxb@#{0>v7!8##l{s}qr9fs!eMxi`@hf=C70vf&tOvU|wmc!Yp@ZJ3$zFBw( zgDK~;p}2iurEzPWDZ@XYfU`awtPZ&I0eNmS5K!wQEd9L%tYKh;uRbz2i%$R_ygAHZ z00Xaj0IBx(OZO^ zHyQG-<(Q;(iy?2^F639!ATKCJ3i`W+^0^qnD((}|wgeD$P{1JuQ;rKbvls=#zoX#B zvqE{bA{PIkkzFTS{v9>^?~RaOe@Cg_?**(sgHr8&pj7Ms(ZM8i>+T;g4>RO2+pRGc zC=>B}9DaAT6u+P1_b`N&>9P0L-HWG_tN{Oc`ZRuuiN{ZZPw* zcmeSSfaf&?1gYS=!QlUOb>4AN9bX$qE>fgfP>CY8SWrQ1h=q==zk0X3SR9qb*&5@UeQY0K2MNlf?@fd>e8h}nQ1g9m0#}Q=qLF?)#G*45s zo<5P}WK(TN{oE-8UjyM&W{R5YOebZ48B%yA668vlmqgIi9I$f^!F&nN=M%h=V6m7W z*aFaL8Nne5GglDgN1-wGa<}ksY z<;ee_4)U+T>r75(7_ zt+3X1(4X*<3?HmfZltjY8HXY4qd!5e1M-_SL;gbpNr`F(-}i$FE=jN-MiAo+ z-yY53JA61PqB+bPMiD%4h1p~>-V^S4xZ+1ke_R%BjUijak8re%AqeUP$HE_x$2*Rc zwk=?uF_B<}gacCuKD9ux)20&)Yza#?wo}M)$d`Z*iYnL+M9OxpkkV={DGOV{?1{}3 z()Vu(Q?Z#sg0?kaCpJ?^I1CU?qj9T=jU8kwY?zSpYze)wVM4+)2?^^6{Mw+P6WA*O zOX?J~T2g@?pKXKpp-6?H7N2RN{YV26a_ z{RB-GA+7q6zok9WT4GCuj1F1~Il&%%biuv~sU$9kQY@9Mqonk7K%UQe1X&I!b^q@K z|Ez!+ij|e(D0=_&YSS#V{OM(gsp%nzf zI{j=;Vnz@aZeY&$pn^w$x^gbyGkv%QXD=bGar7~4LXMo8rf&>Yf_)mhg6iYajL(r=m;Nl?y zvt%@{{!Zb%#;xkeJLQstWp{X2KSeM}Lbo#ncO)cUAaLyga4jU5xg7(zs|N-!|1~KU zr_oH!o^nXB0Y;WIwkHB^eI&Rd;oH9iZkOTf<^tc=Wu&CLz^ucxA~4kzf6uHYauy;< z{vEi+y25p@0V!|pLs9>m_{0^%>DGYc_HKwWaw1qG!Lu7di5rIVOizL#?y%^&6S!Nu z{KS2{OfN>bXJPGzg2x7XR zG4*4_7f<)9^YHm6atQLqg{J8^f&<nbV7ce)#kn!Zr%Ka&zu03Y?1gsE5l)5XapQ&H zaI6WldU?7Yg#N7WL2{E|>Ep^i_2H8oj1=2FNqH&FQ+x=5LI6)R1P4P<;-4V|)>>FX z`w=8c*b++cSVF-d0*lVbAFM-uY>-k*+^vK8N+dz8z5w%41Ocw_oz)k<#bZcm;t9oW zI@a08zUV>w7?R!lAP;TBql9LC)M{|VWgMf6A;3*-w=x1F;GvLQBz-&$2|ObK^Gyi0OSo%BU^X0e-f<_08xG4o?3R*w8`^l{BmZ!W zz+-Hgl1ldxm@qtpC>s-&iNE#V`IEt5B)|dtq@-7DYs9ISt*&i7Yl@h0_{84@JEo+q zKsvf$$CQLb2RQZ|g$BH^ZAvO>qhQ`Kn4nz3r*MME(b|sH(nXWKX!_nH#1)Q4Tt+5Y z?@xsizYHthI|@VadK1YjqL88aHiAzQe#|Ba8v|&yo8Y*F=zRpc79f@VPe^{`04a-p zg84Nz4ao}MNO+H}LK1Y*GD|MO5qvn*-+GR~W-KfZFA_A~ij<4TBBl9dQUZ2Bc`Fs? zYoz$aAYkN8g8dTK-ytZim8*KHF;BXAS0psBN9=m*` zl06RQQf%;%U=fGw)DQm>jE_UT31tMwt|9P290F%okkWlT0vA*hv-1#`DdC_2fx!eo zt`Wi4hX{-}z{vkR0V9u7HPwIu>C?)BpwmQvZ)buu3Ddd~luMY|oglxq7dH1#LJiMc zNI5eJB|70ZL|H@I$?zTRO|U}31|Nb4jS*Ne8G&asq=Zd@xmqB>aS84r1W9)AwVw*# zmG}ix=3O)u<}(8b-bgqfMxdJpXgQSNh=h?51dZZR*ggDCC=)asj+Bezk+NPgDbM2Z zI?;-i|HESSn~u1!HDuT?VS^xeFb;9H35Y9RM@o~4P}ED$>I4jCgAF7FPo3hVyVb` zm88;hCIVI+B*>DGewg6ia`;-#f^X4LQW~v>qW&Z|ca|&{zg@}{muDfW$w`7?YvJRH z2RiHPPLr}O31)GI;F|o6UYbh}<3@n{hyS8>IedR^yh8z>pBEIp{_Z6ub?M_XGxSb8~M+drXLo9hGHv;ntfwSq*CvkOIe5})`zhE&<^^`g=pelUzQr#Lke01$vKpz zJtz>Tkf{`@#0=#Q>~(@?;$nDy8^Myhi#LwQkw4PCUyOEoM6vF+1bt12X3F(~*X|_< zJQB;2$x=AH7|#?d$$2spzEoO^S4)v^-ZYk+m%$+~fvG|#Ta{m~+79rhYocN|i;eop zaP9Xq(`ZSn=P_MOM#q*cXL4K)+tpP}DU$3`nMx&1U&|D}0(3Zo>9nNJnM`&oL1mkm zk|pVHWBMS;B%3L86=?NtraVc<_u+??9o`*8^VM2MW%B=+7OX~{8RwWDWMSOZOVpVy z-c@g}{^KHhtcuds7g1|4V(yn!$ywyB!Enc3V~72_km5xoMl5|VMr_73Z4G7ZO*ST_ zptaj~nEsSxT*RbF1vwWp?UOX>36qrooqWdqnI@^4zAwFs?hEv8Ky@aMG*Fr`(>6(` zOqopAN>59sI7z9snQlmWT$ic)I?&J`m@*}$*)SQTgYGqEviX7qqJH?FosL1VZSE^_ z4)t;r;bq>2q>rrDtLjJ&xAPU%GPDs&Trc&H4k9%J-6;)YDwC8yg=yG&Nppx&2lv8x zmg_OvUskZa4L+7CceXMumvrSQ(?>}jCz%Fjf^yF><*QV{RIv?-+iXPQjYVqxT}85_ z{Us`O5U)2PcxVlLS3T6LgV^{O?&?i~QCaBoAWPQQ{{=lS3xRtYvh?-?B=vh&$4zh@ z*O>LBO-MMc8PlJVcDG=9Q;rz*wh|Nl-n7?MF>1rceVgIxWY1)^1@yinQ@kV_CzTvU zk))CkCXcO{wPyX8wn_2}Wm@Xk8#g^>V#!YJga%`dW64e)#KyR7aNRJJ>7f%`i?*SQ z1raP+c88>154GFT#jhh+&)kl{woy!D-Qi`n1A!6IERER#hvl(MmwUsZnaZdJsWW=rmKpx$dr_y$oBrdjf8I@!d`^R!72`^q5PFZHW9fKLr`lj z(-}!U7BD4-BT&6AMnxiUNEiY~EoS56{&*7Oj$No@^)i+|??Uv26-?%15UqZDo3I;R z-&V7JVmG{81k@M^aQ<;Jhmh>(4_7%kp|cb~YEOmFtUJ^M714xgKqhxmA;dLEHv zae*m#Gg6JYj(&FDhX!2>R6SCOy}}Orv*GY&AKFU2&XWIrWH^prSk!#)=i;5~Q`CZoQ<-p780aJn`w?{lFNxvbf`Yqve4q8om#k$u4Ox>+}m3mfr$>9j7 zSxctXk|xih8P zx{n(h|B8PXyVN8v4K}&})6?E}25=(M1V7bFss&Iz%kCaY~R3&FI z&;qTF%)@|P`iZ?Pz2J2;4_>KpELrCx^NEQ}iIQGU;qiSW$z%pouj3f)PP3SHN*eq# zljR9e#yqB?AwI@p#tAfYVIfOq5s=g?PNm zrzP3tG1;8~MV{~z9`259#fCJWT4HBAeu7bteSNB4G`rpMmtIZ9UuV#L`j;c#AyCvaY5y0qOFKROo%;cm0@+Rn7*$@+!78huPm4}v0(;xZP5{89vcwaA2M7;O46$1*jJ(S=EDzy>E3sIL#LzS8f z%gd;_YZIpEFTUm?`~nJ0zKpT#(Tw$RrAUegez#FVTe8&tiq=KB-ImGBKw~P_Ux7oZ z14|A@nmVahp;YgzD$PXDRaDi;MWr7^`c=%2xffH(Rn)jb6DYEpY1)giyD|M!uAzi+ z0jgvxHnh-~$=Yj*OHyAR%zA!nO%0m%lJyM?xb28a$xktls-&9Y$qg(7yXZ>EQixPM)iU%Z((5L%zU-#fOVPwvl8N|u z69bU6I8dyN{NBk?w-A%OOqFa!-bjtDIDQL*_RDgXYTU+h?JEL>$8D{LJXB46TwK8h zHLsO8d|T_FD49%OZ)=-WzQBqgkH4w0vIzF8rf;Rx(9<*4(?bUJTyKkws5<6XdhGi1)4f^@Vn7H^kzg3>q$#7Woe5v zwZ*`Dh<OJOom!o?1C`LXeHJax(tQUh3CGkuGo=yTa(L)Jmu%WAX4Yy5;h7RjK=r*1yK03+izsW1d0pl*anOXWCxMZ)=&_{Do3Gr!%en3r!!%U^07- zRp7mWY5H^6o@O%r{Ty*4vsAJdgI-_^?B8LOUuav3gD>!+?@+E%nDW9jSjw%$m>O0wp$?*SM8?G#gSN~`w?*5J1 zYphZO+la1jFu`wDtJF@k9qV6L9DgI1M+!@(vHs>F=rg9F%Ue{lQK))%I*cVlN)y(q zlAYK+-XF(5OhVxn|3L4b&iaap{(R8a45@cnU#Xjkf`9OG*tdbD_U|w*^EWb`nD#wz z%=G{CYV@W`4+CNP9zlJ!RF&f2V@g_Vt13NtkE?R&c9wd7z+7L=X4>}wbA4bJQ=^Zd zReP8&&hzJWwfiHgAG443%?tdkXnofE1l>D_^_h$O@i0w!#@GU>xBZ3nOP{nj@a9mk zsP$PJr9Ax=>*BMvt7x|z>D6U^{WILJ9#QpJ<;YQvTkf$RKn3bve*@Djx6pJu&h21Zsr7U+`Hi~eA}{st89P>KbR zcZQ{ZGqEOA*X&Zbu0E>L&CtfLP@LqyXut&6<4s7K>QM~2AjMtxCSrZp59WpZIx zk$jXNM^<(4`HDd?jjAeja}TH^Y|1fy7rvssr_oi7)yv^OD2AnBlJ3V=626D~1mJj< zaxFg}RefsklJOz9Y6dhE4JuI1sqggG7Y&{7%^yqWRiLrqli725KtKawzK@^g`IodU ziDz5mZ@7SE&18BT8ek=seZw2tsiaD&!5SSNL%UcN+NBHx;5JlQL}NUdAiyMLFBIcc zQc_BFofN}#HV0J$EzDxtBB|4MrV>eavzY?*LGyMqZPwS-Q7`d_@m4?Oe2A#F6}K(@ z8iJ`;6djJnAgP7urRW@$e=e#HUFCHU=RZq_V}+{JNR%kL-pZOQOyLH)o=Vhp&Ue&6 z*Im)v3=tvKbxp;Ly#Z#TXAn+qcdV|nRZQ-xdYIx;r2f%bK8w^*Y5t7e+ZgIPE3e*$ zhzLVnUnTb)=X`N4pf1%>Vu(6oKeL`*5Ku$(G{Q(3>S?Jv^Ne)P$|8NH`$jrXrNUGz zni}hdDfYG0KWxR|7XgjLabv{g*JbJNzXSNmp^le=3`IK=v}4>rE3!;CKt4%aBxkgKb$6Q1uP=$ClsQsG)OJ+}d$%V+{gpi@~NkV~YUu R0Q2`{270ZXwR(Db{|C1%Uj_gG delta 112971 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 diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java index 4d122bea6e..ff4751acdc 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java @@ -143,8 +143,14 @@ public class ConfigDefinition { romRaiderDestination = args[i + 1]; break; case KEY_PREPEND: - prependFiles.add(args[i + 1]); - state.inputFiles.add(args[i + 1]); + { + String value = args[i + 1]; + // see UsagesReader use-case with dynamic prepend usage + if (!value.trim().isEmpty()) { + prependFiles.add(value); + state.inputFiles.add(value); + } + } break; case KEY_SIGNATURE: signaturePrependFile = args[i + 1]; diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/UsagesReader.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/UsagesReader.java index 82833e37f1..77214dad2f 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/UsagesReader.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/UsagesReader.java @@ -48,6 +48,22 @@ public class UsagesReader { String javaName = (String) elements.get(0); String folder = (String) elements.get(1); + + + String withCDefines = "false"; + String prepend = ""; + for (int i = 2; i < elements.size(); i++) { + String keyValue = (String) elements.get(i); + String[] pair = keyValue.trim().split("="); + String key = pair[0]; + String value = pair[1]; + if (key.equals(ConfigDefinition.KEY_WITH_C_DEFINES)) { + withCDefines = value; + } else if (key.equals(ConfigDefinition.KEY_PREPEND)) { + prepend = value; + } + } + // String macroName = elements.size() > 2 ? ((String)elements.get(2)).trim() : ""; @@ -55,10 +71,10 @@ public class UsagesReader { ConfigDefinition.KEY_DEFINITION, folder + File.separator + name + ".txt", ConfigDefinition.KEY_WITH_C_DEFINES, - "false", + withCDefines, ConfigDefinition.KEY_PREPEND, - "integration/rusefi_config.txt", + prepend, ConfigDefinition.KEY_JAVA_DESTINATION, "../java_console/models/src/main/java/com/rusefi/config/generated/" + javaName,