Error connecting to database.
Error executing database query:
SQLSTATE[HY000] [1226] User 'o4585610' has exceeded the 'max_user_connections' resource (current value: 20)

Warning: Cannot modify header information - headers already sent by (output started at /homepages/5/d451478433/htdocs/online/db.php:51) in /homepages/5/d451478433/htdocs/online/download.php on line 26

Warning: Cannot modify header information - headers already sent by (output started at /homepages/5/d451478433/htdocs/online/db.php:51) in /homepages/5/d451478433/htdocs/online/download.php on line 27

Warning: Cannot modify header information - headers already sent by (output started at /homepages/5/d451478433/htdocs/online/db.php:51) in /homepages/5/d451478433/htdocs/online/download.php on line 28
"0" 28475.0 -1.5 -1.4 -1.1 -0.9 -0.8 -0.6 -0.6 -0.5 -0.4 -0.4 -0.3 -0.2 -0.2 -0.1 -0.1 0.0 -1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 1.0 2.0 3.0 4.0 5.0 6.0 "PROTEUS_VW_B6" 2500.0 3000.0 7000.0 2500.0 1500.0 5000.0 75.0 100.0 650.0 800.0 1100.0 1400.0 1700.0 2000.0 2300.0 2600.0 2900.0 3200.0 3500.0 3800.0 4100.0 4400.0 4700.0 7000.0 30.0 2.0 1300.0 6.0 8.0 10.0 11.0 12.0 13.0 14.0 15.0 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 "false" "false" "false" "false" "false" "false" "false" "false" "false" "false" "true" "false" "false" "false" "false" "false" "false" "true" "false" "false" "false" "with filter" "false" "Fixed" "false" "false" "false" "false" "Do not print" "No thank you" "false" 890.0 70.0 -10.0 110.0 35.0 400.0 6.0 0.0 0.0 800.0 1686.0 2571.0 3457.0 4343.0 5229.0 6114.0 7000.0 100.0 104.0 109.0 113.0 117.0 121.0 126.0 130.0 800.0 1686.0 2571.0 3457.0 4343.0 5229.0 6114.0 7000.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 0.0 0.0 "Bosch 2.5" "Analog Volt 1" 0.0 50.0 100.0 5896.0 834.0 187.0 2700.0 "Analog Temp 3" 32.0 75.0 120.0 9500.0 2100.0 1000.0 2700.0 "Analog Temp 2" 0.0 0.0 0.0 2.0 4.0 "1-3-4-2" 87.5 "Alpha-N" 5.0 "NONE" "Sequential" "Sequential" 0.0 0.0 0.0 0.0 "Individual Coils" 0.0 0.0 0.0 "dynamic" 50.0 90.0 1.56 9.2 95.0 91.0 500.0 "None" 50.0 "none" 2.0230305E7 20.0 4.0 "Analog Volt 2" "Battery Sense" "NONE" "NONE" 0.0 10.0 "60/2" 0.0 0.0 0.0 "Off" 60.0 0.0 "NONE" 1.0 3.3 0.0 "Digital 2" "NONE" "NONE" "NONE" "Analog Volt 10" "NONE" 0.0 9.996 5.0 19.992 "Analog Volt 9" "NONE" "default" "NONE" 0.0 500.0 "Custom" "NONE" 200.0 "NONE" "NONE" "NONE" "default" 83.0 0.0 0.0 "Intake First Bank" 0.0 3.73 21.0 "NONE" 1200.0 "Lowside 1" "Lowside 2" "Lowside 3" "Lowside 4" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "Ign 1" "Ign 2" "Ign 3" "Ign 4" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "default" "default" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "Lowside 16" "default" "NONE" "default" "default" "NONE" "NONE" "NONE" "default" "PULLUP" "NONE" "NONE" "NONE" "NONE" "default" "NONE" "NONE" "Off" "NONE" "Off" "NONE" "default" "NONE" "Analog Volt 3" "NONE" "Analog Volt 7" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "14Point7" 0.0 "VR 1" "NONE" 100.0 "default" "NONE" "default" "Lowside 6" "PD2" "PD1" "PD0" "DEFAULT" 0.0 0.0 "NONE" 1.0 0.0 5000.0 0.0 5000.0 38400.0 9.0 "NONE" "NONE" 0.0 "default" "default" "NONE" "NONE" "default" "false" "false" "true" "true" "11 bit" "true" "false" "false" "false" "false" "false" "false" "true" "false" "false" "true" "false" "false" "false" "false" "true" "false" "false" "false" "true" "true" "false" "false" "false" "false" "false" "true" "NONE" "NONE" "NONE" "NONE" "default" "NONE" "NONE" "default" 512.0 65.0 0.0 "NONE" "default" "Off" 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 "None" 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 300.0 0.0 "PB10" "PB11" "NONE" "NONE" "None" "PULLUP" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "default" "Off" 9.0 100.0 50.0 "NONE" "NONE" "NONE" "default" "NONE" "NONE" 1.0 5.0 0.0 102.0 891.0 0.0 3.0 "NONE" "default" "NONE" "default" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "PC12" "PC11" "PC10" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "Off" "none" "v1" "false" "false" "false" "false" "false" "false" "false" "false" "false" "false" "false" "false" "true" "false" "true" "false" "Channel 1" "Channel 1" "Channel 1" "Channel 1" "Channel 1" "Channel 1" "Channel 1" "Channel 1" "Channel 1" "Channel 1" "Channel 1" "Channel 1" "false" "first" "false" "Do not print" "PD10" "NONE" "PD12" "PD11" "PD9" "NONE" "PD13" "PD8" "NONE" "default" "NONE" "NONE" 0.5 0.3 0.0 0.0 0.0 -20.0 20.0 "Open Loop" 33.0 "Launch Button" "Switch Input" 30.0 500.0 0.0 0.0 500.0 0.01 0.0 0.0 1000.0 35.0 85.0 0.5 60.0 12.0 17.0 60.0 5.0 -5.0 30.0 5.0 -5.0 30.0 5.0 -5.0 30.0 5.0 -5.0 30.0 "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" VAG BPY test "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "Throttle 1" "Throttle 2" "Off" "NONE" "default" "NONE" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" 180.0 0.0 0.0 0.0 600.0 1900.0 3200.0 4400.0 5700.0 7000.0 0.6 0.7 0.8 1.0 1.1 1.2 "NONE" 600.0 1900.0 3200.0 4400.0 5700.0 7000.0 0.6 0.7 0.8 1.0 1.1 1.2 "NONE" Rad Fan LPFP GPPWM2 GPPWM3 1000.0 0.0 "1" "false" "false" "5v" "Piggyback Mode" "no" "true" "false" "true" "true" "false" "With Pull Up" "Duty cycle" "false" "false" "false" "yes" "yes" "false" "false" "VR" "With Pull Up" "VR" "With Pull Up" "With Pull Up" "With Pull Up" "With Pull Up" "false" "false" "false" "Four Stroke" "On crankshaft" "NONE" "NONE" "NONE" 0.0 "Open Loop" "true" "true" "true" "Basic (constants)" "false" "true" "true" "false" "true" "false" "false" "false" "false" "false" "false" "false" "Fixed (auto taper)" "false" "false" "false" "false" "false" "true" "no" "no" "advance" "advance" "false" "normal" "false" "false" "false" 300.0 1.0 "NONE" "NONE" "NONE" "NONE" 200.0 10.0 20.0 60.0 0.0 0.0 3.0 0.0 0.5 0.0 30.0 0.0 0.0 0.0 100.0 0.0 90.0 5.12 47.0 0.088 0.0 0.0 -100.0 100.0 "NONE" "NONE" 0.0 "NONE" 0.0 1000.0 "NONE" "DEFAULT" "NONE" 1.0 5.0 410.0 1.0 2.0 0.05 0.002 0.0 0.0 0.0 0.0 99.0 0.0 "PE4" "PE5" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" 0.36 2.13 4.0 500.0 14.0 120.0 200.0 0.0 "NONE" "PE6" "NONE" "NONE" 0.0 0.0 0.0 0.0 200.0 "Digital 5" "NONE" 0.0 "End of injection" 115200.0 5.0 0.0 0.33333 "INSTANT_RPM" 0.0 0.73 4.3 "500kbps" "None" "500kbps" "None" 5.0 3.0 10.0 10.0 "false" "false" "false" "volumetric flow" "false" "false" "false" "false" 500.0 3.0 5.0 "DEFAULT" "PB13" "PB12" "default" "NONE" "None" "High" "Lowside 15" "default" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 "Lowside 9" "NONE" "NONE" "NONE" "Off" "default" "default" 100.0 0.25 0.25 0.25 0.9 300.0 0.0 0.0 300.0 "Bosch Quick Start" "Inactive" 0.0 0.0 "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "Auto" "default" "Sensed Rail Pressure" "default" 10000.0 1.2 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "NONE" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "NONE" 45.0 800.0 1.0 0.0 0.0 0.0 0.0 -60.0 60.0 "Full-Step (Default)" 0.0 0.0 "SPI3" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "default" "default" "default" "default" "default" "default" "default" "default" "default" "default" "NONE" "NONE" "NONE" "NONE" "NONE" "PULLUP" 2.0 0.005 0.0 33.0 0.0 10.0 90.0 0.0 0.0 0.0 0.0 0.0 10.0 90.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "NONE" 0.5 0.0 4.5 689.476 "Off" "NONE" 95.0 91.0 "NONE" "NONE" "default" "NONE" 0.0 550.0 "NONE" 0.0 0.0 50.0 0.0 1500.0 1300.0 2.0 60.0 0.0 30.0 "Analog Volt 4" 0.5 0.0 4.5 14000.0 "Analog Volt 5" 0.5 0.0 4.5 1378.9514 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 MAFcurve 0.098 0.902 153.6 1.0 12.5 "RPM+TPS (Default)" 1.0 -30.0 30.0 0.1 0.0 5.0E-4 0.0 0.0 -5.0 10.0 50.0 0.0 0.0 "Off" "Off" -20.0 "Off" 14.7 20.0 10.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "BMW_e46" "Lowside 5" 90.0 25.0 60.0 50.0 "CLT" "RPM" 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 400.0 600.0 1000.0 3000.0 4000.0 5000.0 6000.0 7000.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0 70.0 70.0 70.0 70.0 70.0 70.0 70.0 90.0 53.5 53.5 53.5 53.5 53.5 53.5 53.5 90.0 36.5 36.5 36.5 36.5 36.5 36.5 36.5 90.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 "Lowside 7" 50.0 20.0 60.0 50.0 "Fuel Load" "RPM" 0.0 14.0 28.0 42.0 57.0 71.0 85.0 100.0 0.0 1000.0 2000.0 3000.0 4000.0 5000.0 6000.0 7000.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0 "NONE" 0.0 250.0 60.0 50.0 "Zero" "RPM" 0.0 14.0 28.0 42.0 57.0 71.0 85.0 100.0 0.0 1000.0 2000.0 3000.0 4000.0 5000.0 6000.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0 85.0 85.0 85.0 85.0 85.0 85.0 85.0 85.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 "NONE" 0.0 250.0 60.0 50.0 "Zero" "RPM" 0.0 14.0 28.0 42.0 57.0 71.0 85.0 100.0 0.0 1000.0 2000.0 3000.0 4000.0 5000.0 6000.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0 85.0 85.0 85.0 85.0 85.0 85.0 85.0 85.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 13000.0 9400.0 3700.0 400.0 10.0 700.0 10.0 60.0 10000.0 "DEFAULT" "DEFAULT" "DEFAULT" "default" "default" "default" "default" "default" "default" -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 -20.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 3.0 "NONE" 10.0 10.0 0.29 30.0 2.0 0.01 3.0E-4 2000.0 0.0 1.0 4.5 9.5 16.5 25.0 34.5 45.0 55.0 65.5 75.0 83.5 90.5 95.5 99.0 100.0 0.0 7.5 16.5 24.0 32.0 40.0 48.0 56.0 64.0 72.0 80.0 88.0 96.0 103.5 112.5 120.0 8.0 9.0 10.0 11.0 12.0 13.0 15.0 16.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 0.0 20.0 40.0 60.0 80.0 100.0 120.0 140.0 160.0 180.0 0.0 900.0 1800.0 2650.0 3550.0 4450.0 5350.0 6200.0 7100.0 8000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.005 0.018 0.031 0.043 0.056 0.069 0.082 0.094 0.107 0.12 0.0 900.0 1800.0 2650.0 3550.0 4450.0 5350.0 6200.0 7100.0 8000.0 "NONE" "NONE" "NONE" "NONE" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 6000.0 -40.0 -20.0 0.0 20.0 40.0 60.0 80.0 100.0 1.45 1.3 1.17 1.05 0.9 0.82 0.75 0.7 0.73 0.66 0.57 0.46 0.38 0.31 0.24 0.19 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 0.38 0.55 0.69 0.86 0.9 0.95 0.97 1.0 0.21 0.4 0.6 0.79 0.85 0.9 0.95 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "None" "None" "NONE" 0.0 0.0 0.0 0.0 "NONE" 0.0 0.0 0.0 0.0 "NONE" "default" "NONE" "default" 0.0 "NONE" "default" 0.0 "NONE" "default" 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" "NONE" 650.0 800.0 3750.0 7000.0 400.0 3200.0 3.0 0.0 105.0 5.0 30.0 0.0 "None" 0.0 0.0 0.0 0.0 0.0 "DEFAULT" 0.0 0.0 "DEFAULT" "DEFAULT" "DEFAULT" "DEFAULT" "DEFAULT" "DEFAULT" "DEFAULT" "DEFAULT" 0.0 10400.0 "None" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 2.0 4.0 7.0 98.0 99.0 100.0 -20.0 -18.0 -17.0 0.0 20.0 21.0 22.0 25.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1000.0 2000.0 3000.0 4000.0 5000.0 6000.0 7000.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 1360.0 1360.0 1300.0 1200.0 1160.0 1100.0 1060.0 1000.0 1000.0 980.0 980.0 960.0 960.0 960.0 960.0 1100.0 -40.0 -17.0 6.0 29.0 51.0 74.0 97.0 120.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 139.0 152.0 180.0 217.0 280.0 300.0 365.0 3657.0 3658.0 3659.0 3660.0 3661.0 3662.0 3663.0 3664.0 3665.0 3.58 4.5 6.7 11.0 22.0 25.0 40.0 4000.0 4000.0 4000.0 4000.0 4000.0 4000.0 4000.0 4000.0 4000.0 0.0 7.0 13.0 20.0 27.0 33.0 40.0 47.0 53.0 60.0 67.0 73.0 80.0 87.0 93.0 100.0 30.0 39.0 49.0 58.0 67.0 77.0 86.0 95.0 105.0 114.0 123.0 133.0 142.0 151.0 161.0 170.0 0.0 14.0 29.0 43.0 57.0 71.0 86.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.0 29.0 43.0 57.0 71.0 86.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.0 29.0 43.0 57.0 71.0 86.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.0 29.0 43.0 57.0 71.0 86.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 75.0 85.0 95.0 105.0 650.0 800.0 3750.0 7000.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 14.0 29.0 43.0 57.0 71.0 86.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 200.0 400.0 1000.0 0.0 0.0 0.0 0.0 0.0 500.0 1100.0 1600.0 2100.0 2700.0 3200.0 3700.0 4300.0 4800.0 5300.0 5900.0 6400.0 6900.0 7500.0 8000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0 86.0 86.0 86.0 86.0 86.0 86.0 86.0 86.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 0.0 1100.0 2300.0 3400.0 4600.0 5700.0 6900.0 8000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 44.0 44.0 44.0 44.0 44.0 44.0 44.0 44.0 58.0 58.0 58.0 58.0 58.0 58.0 58.0 58.0 72.0 72.0 72.0 72.0 72.0 72.0 72.0 72.0 86.0 86.0 86.0 86.0 86.0 86.0 86.0 86.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 0.0 14.0 29.0 43.0 57.0 71.0 86.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0 86.0 86.0 86.0 86.0 86.0 86.0 86.0 86.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 0.0 14.0 29.0 43.0 57.0 71.0 86.0 100.0 0.0 1100.0 2300.0 3400.0 4600.0 5700.0 6900.0 8000.0 -40.0 -20.0 0.0 20.0 40.0 60.0 80.0 100.0 1.0 1.0 1.0 1.0 1.0 0.7 0.7 0.6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 AIRBAG = 0x050 -- 1088 TCU_1 = 0x440 -- 1344 TCU_2 = 0x540 -- 1440 BRAKE_2 = 0x5A0 VWTP_OUT = 0x200 VWTP_IN = 0x202 VWTP_TESTER = 0x300 -- 640 MOTOR_1 = 0x280 -- 644 MOTOR_BRE = 0x284 -- 648 MOTOR_2 = 0x288 -- 896 MOTOR_3 = 0x380 -- 1152 MOTOR_5 = 0x480 -- 1160 MOTOR_6 = 0x488 -- 1386 ACC_GRA = 0x56A -- 1408 the one with variable payload MOTOR_INFO = 0x580 -- 1416 MOTOR_7 = 0x588 TCU_BUS = 1 fakeTorque = 0 hexstr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F" } function toHexString(num) if num == 0 then return '0' end local result = "" while num > 0 do local n = num % 16 result = hexstr[n + 1] ..result num = math.floor(num / 16) end return result end function arrayToString(arr) local str = "" local index = 1 while arr[index] ~= nil do str = str.." "..toHexString(arr[index]) index = index + 1 end return str end function onTcu1(bus, id, dlc, data) -- print("onTcu1") end function onTcu2(bus, id, dlc, data) -- print("onTcu2") end function setBitRange(data, totalBitIndex, bitWidth, value) local byteIndex = totalBitIndex >> 3 local bitInByteIndex = totalBitIndex - byteIndex * 8 if (bitInByteIndex + bitWidth > 8) then bitsToHandleNow = 8 - bitInByteIndex setBitRange(data, totalBitIndex + bitsToHandleNow, bitWidth - bitsToHandleNow, value >> bitsToHandleNow) bitWidth = bitsToHandleNow end mask = (1 << bitWidth) - 1 data[1 + byteIndex] = data[1 + byteIndex] & (~(mask << bitInByteIndex)) maskedValue = value & mask shiftedValue = maskedValue << bitInByteIndex data[1 + byteIndex] = data[1 + byteIndex] | shiftedValue end function setTwoBytes(data, offset, value) data[offset + 1] = value % 255 data[offset + 2] = (value >> 8) % 255 end shallSleep = Timer.new() -- we want to turn on with hardware switch while ignition key is off hadIgnitionEvent = false function onAirBag(bus, id, dlc, data) -- looks like we have ignition key do not sleep! shallSleep : reset() hadIgnitionEvent = true end function xorChecksum(data, targetIndex) local index = 1 local result = 0 while data[index] ~= nil do if index ~= targetIndex then result = result ~ data[index] end index = index + 1 end data[targetIndex] = result return result end function getBitRange(data, bitIndex, bitWidth) byteIndex = bitIndex >> 3 shift = bitIndex - byteIndex * 8 value = data[1 + byteIndex] if (shift + bitWidth > 8) then value = value + data[2 + byteIndex] * 256 end mask = (1 << bitWidth) - 1 return (value >> shift) & mask end motor1Data = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } motorBreData = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } motor2Data = { 0x8A, 0x8D, 0x10, 0x04, 0x00, 0x4C, 0xDC, 0x87 } motor2mux = {0x8A, 0xE8, 0x2C, 0x64} canMotorInfo = { 0x00, 0x00, 0x00, 0x14, 0x1C, 0x93, 0x48, 0x14 } canMotorInfo1= { 0x99, 0x14, 0x00, 0x7F, 0x00, 0xF0, 0x47, 0x01 } canMotorInfo3= { 0x9B, 0x14, 0x00, 0x11, 0x1F, 0xE0, 0x0C, 0x46 } canMotor3 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } motor5Data = { 0x1C, 0x08, 0xF3, 0x55, 0x19, 0x00, 0x00, 0xAD } motor6Data = { 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xFF, 0xFF, 0x00 } motor7Data = { 0x1A, 0x66, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00 } accGraData = { 0x00, 0x00, 0x08, 0x00, 0x1A, 0x00, 0x02, 0x01 } setTickRate(100) everySecondTimer = Timer.new() mafSensor = Sensor.new("maf") mafCalibrationIndex = findCurveIndex("mafcurve") canMotorInfoTotalCounter = 0 canRxAdd(AIRBAG, onAirBag) canRxAdd(TCU_1, onTcu1) canRxAdd(TCU_2, onTcu2) --canRxAdd(BRAKE_2) rpm = 0 function sendMotor1() engineTorque = fakeTorque * 0.9 innerTorqWithoutExt = fakeTorque torqueLoss = 20 requestedTorque = fakeTorque print("motor1 rpm " .. rpm) motor1Data[2] = engineTorque / 0.39 setTwoBytes(motor1Data, 2, rpm / 0.25) motor1Data[5] = innerTorqWithoutExt / 0.4 motor1Data[6] = tps / 0.4 motor1Data[7] = torqueLoss / 0.39 motor1Data[8] = requestedTorque / 0.39 -- print ('MOTOR_1 fakeTorque ' ..fakeTorque) -- print ('MOTOR_1 engineTorque ' ..engineTorque ..' RPM ' ..rpm) -- print ('MOTOR_1 innerTorqWithoutExt ' ..innerTorqWithoutExt ..' tps ' ..tps) -- print ('MOTOR_1 torqueLoss ' ..torqueLoss ..' requestedTorque ' ..requestedTorque) txCan(TCU_BUS, MOTOR_1, 0, motor1Data) end function onMotor1(bus, id, dlc, data) rpm = math.floor(getSensor("RPM") + 0.5) tps = getSensor("TPS1") or 0 fakeTorque = interpolate(0, 6, 100, 60, tps) engineTorque = fakeTorque * 0.9 innerTorqWithoutExt = fakeTorque torqueLoss = 20 requestedTorque = fakeTorque sendMotor1() end function sendMotor3() iat = getSensor("IAT") or 0 tps = getSensor("TPS1") or 0 desired_wheel_torque = fakeTorque canMotor3[2] = (iat + 48) / 0.75 canMotor3[3] = tps / 0.4 canMotor3[5] = 0x20 setBitRange(canMotor3, 24, 12, math.floor(desired_wheel_torque / 0.39)) canMotor3[8] = tps / 0.4 txCan(TCU_BUS, MOTOR_3, 0, canMotor3) end motorBreCounter = 0 function sendMotorBre() motorBreCounter = (motorBreCounter + 1) % 16 setBitRange(motorBreData, 8, 4, motorBreCounter) xorChecksum(motorBreData, 1) txCan(TCU_BUS, MOTOR_BRE, 0, motorBreData) end motor2counter = 0 function sendMotor2() motor2counter = (motor2counter + 1) % 16 minTorque = fakeTorque / 2 -- todo: add CLT motor2Data[7] = math.floor(minTorque / 0.39) --print ( "brake " .. getBitRange(data, 16, 2) .. " " .. rpm) brakeBit = rpm < 2000 and 1 or 0 setBitRange(motor2Data, 16, 1, brakeBit) index = math.floor(motor2counter / 4) motor2Data[1] = motor2mux[1 + index] txCan(TCU_BUS, MOTOR_2, 0, motor2Data) end motor5FuelCounter = 0 function sendMotor5() setBitRange(motor5Data, 5, 9, motor5FuelCounter) xorChecksum(motor5Data, 8) txCan(TCU_BUS, MOTOR_5, 0, motor5Data) end motor6counter = 0 function sendMotor6() motor6counter = (motor6counter + 1) % 16 engineTorque = fakeTorque * 0.9 actualTorque = fakeTorque feedbackGearbox = 255 motor6Data[2] = math.floor(engineTorque / 0.39) motor6Data[3] = math.floor(actualTorque / 0.39) motor6Data[6] = math.floor(feedbackGearbox / 0.39) setBitRange(motor6Data, 60, 4, motor6counter) xorChecksum(motor6Data, 1) txCan(TCU_BUS, MOTOR_6, 0, motor6Data) end accGraCounter = 0 function sendAccGra() accGraCounter = (accGraCounter + 1) % 16 setBitRange(accGraData, 60, 4, accGraCounter) xorChecksum(accGraData, 1) txCan(TCU_BUS, ACC_GRA, 0, accGraData) end canMotorInfoCounter = 0 function onMotorInfo(bus, id, dlc, data) canMotorInfoTotalCounter = canMotorInfoTotalCounter + 1 canMotorInfoCounter = (canMotorInfoCounter + 1) % 16 baseByte = canMotorInfoTotalCounter < 6 and 0x80 or 0x90 canMotorInfo[1] = baseByte + (canMotorInfoCounter) canMotorInfo1[1] = baseByte + (canMotorInfoCounter) canMotorInfo3[1] = baseByte + (canMotorInfoCounter) mod4 = canMotorInfoCounter % 4 if (mod4 == 0 or mod4 == 2) then txCan(TCU_BUS, MOTOR_INFO, 0, canMotorInfo) elseif (mod4 == 1) then txCan(TCU_BUS, MOTOR_INFO, 0, canMotorInfo1) else txCan(TCU_BUS, MOTOR_INFO, 0, canMotorInfo3) end end function sendMotor7() txCan(TCU_BUS, MOTOR_7, 0, motor7Data) end local tcuId = 0 function onCanHello(bus, id, dlc, data) -- here we handle 201 packets print('Got Hello Response ' ..arrayToString(data)) tcuId = data[6] * 256 + data[5] print('From TCU ' ..tcuId) txCan(1, tcuId, 0, { 0xA0, 0x0F, 0x8A, 0xFF, 0x32, 0xFF }) end local sendCounter = 2 local packetCounter = 1 local payLoadIndex = 0 local groups = { 10 } -- todo: smarter array size calculation? local groupsSize = 1 local groupIndex = 1 function onCanTester(bus, id, dlc, data) -- here we handle 300 packets -- print('Got from tester ' ..arrayToString(data)) if data[1] == 0xA3 then -- print ("Keep-alive") txCan(1, tcuId, 0, { 0xA1, 0x0F, 0x8A, 0xFF, 0x4A, 0xFF }) groupIndex = groupIndex + 1 if groupIndex > groupsSize then groupIndex = 1 end groupId = groups[groupIndex] print (groupIndex .." " ..groupId) reqFirst = 0x10 + sendCounter print("Requesting next group " ..groupId .." with counter " ..sendCounter) txCan(1, tcuId, 0, { reqFirst, 0x00, 0x02, 0x21, groupId }) sendCounter = sendCounter + 1 if sendCounter == 16 then sendCounter = 0 end return end if data[1] == 0xA1 then print ("Happy 300 packet") txCan(1, tcuId, 0, { 0x10, 0x00, 0x02, 0x10, 0x89 }) return end if data[1] == 0xA8 then print ("They said Bye-Bye") return end if data[1] == 0x10 and dlc == 5 then ackPacket = 0xB0 + packetCounter print ("Sending ACK B1 " ..ackPacket) txCan(1, tcuId, 0, { ackPacket }) -- request first group from array txCan(1, tcuId, 0, { 0x11, 0x00, 0x02, 0x21, groups[1] }) return end top4 = math.floor(data[1] / 16) if top4 == 0xB then -- print("Got ACK") return end if top4 == 2 or top4 == 1 then print ("Looks like payload index " ..payLoadIndex ..": " ..arrayToString(data)) if groupId == 2 and payLoadIndex == 0 then L7 = data[7] H9 = data[8] V = 256 * H9 + L7 print("V 0 " ..V) end if groupId == 2 and payLoadIndex == 1 then L3 = data[3] H4 = data[4] V = 256 * H4 + L3 print("V 1 " ..V) end if groupId == 2 and payLoadIndex == 2 then L2 = data[2] H3 = data[3] V = 256 * H3 + L2 print("V 2 " ..V) end payLoadIndex = payLoadIndex + 1 packetCounter = packetCounter + 1 if packetCounter > 15 then packetCounter = 0 end if top4 == 1 then ackPacket = 0xB0 + packetCounter print ("Sending payload ACK " ..ackPacket) txCan(1, tcuId, 0, { ackPacket }) payLoadIndex = 0 end return end print('Got unexpected ' ..arrayToString(data)) end canRxAdd(VWTP_IN, onCanHello) txCan(1, VWTP_OUT, 0, { 0x02, 0xC0, 0x00, 0x10, 0x00, 0x03, 0x01 }) function onTick() freqValue = getSensor("AuxSpeed1") or 0 mafValue = curve(mafCalibrationIndex, 5) -- print(freqValue .. " mafValue=" .. mafValue) mafSensor : set(mafValue) rpm = getSensor("RPM") or 0 vbat = getSensor("BatteryVoltage") or 0 if rpm == 0 then canMotorInfoTotalCounter = 0 end onMotor1(0, 0, 0, nil) sendMotor3() sendMotor2() sendMotor5() sendMotor6() sendMotor7() sendMotorBre() sendAccGra() local timeToTurnOff = shallSleep : getElapsedSeconds() > 2 local connectedToUsb = vbat < 4 if hadIgnitionEvent and timeToTurnOff then -- looks like ignition key was removed -- mcu_standby() end if everySecondTimer : getElapsedSeconds() > 1 then everySecondTimer : reset() motor5FuelCounter = motor5FuelCounter + 20 onMotorInfo(0, 0, 0, nil) end end -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 1.5 1.5 1.42 1.36 1.28 1.19 1.12 1.1 1.06 1.06 1.03 1.01 1.0 1.0 1.0 1.0 -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.8 2.2 1.8 1.55 1.3 1.1 1.0 1.0 -20.0 -10.0 5.0 20.0 35.0 50.0 65.0 90.0 2.0 1.3 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 1.5 1.5 1.3333334 1.0833 1.0833 1.0833 1.0833 1.0833 1.0833 0.8333 0.7667 0.7 0.55 0.55 0.55 0.8 -34.5 -6.0 10.5 105.3 387.5 738.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 3000.0 0.0 0.78125 1.3867188 2.9101562 4.2578125 4.9804688 2016.0 2017.0 2018.0 2019.0 2020.0 2021.0 2022.0 2023.0 2024.0 2025.0 2026.0 2027.0 2028.0 2029.0 2030.0 2031.0 2032.0 2033.0 2034.0 2035.0 2036.0 2037.0 2038.0 2039.0 2040.0 2041.0 2042.0 2043.0 2044.0 2045.0 2046.0 2047.0 2048.0 2049.0 2050.0 2051.0 2052.0 2053.0 2054.0 2055.0 2056.0 2057.0 2058.0 2059.0 2060.0 2061.0 2062.0 2063.0 2064.0 2065.0 2066.0 2067.0 2068.0 2069.0 2070.0 2071.0 2072.0 2073.0 2074.0 2075.0 2076.0 2077.0 2078.0 2079.0 2080.0 2081.0 2082.0 2083.0 2084.0 2085.0 2086.0 2087.0 2088.0 2089.0 2090.0 2091.0 2092.0 2093.0 2094.0 2095.0 2096.0 2097.0 2098.0 2099.0 2100.0 2101.0 2102.0 2103.0 2104.0 2105.0 2106.0 2107.0 2108.0 2109.0 2110.0 2111.0 2112.0 2113.0 2114.0 2115.0 2116.0 2117.0 2118.0 2119.0 2120.0 2121.0 2122.0 2123.0 2124.0 2125.0 2126.0 2127.0 2128.0 2129.0 2130.0 2131.0 2132.0 2133.0 2134.0 2135.0 2136.0 2137.0 2138.0 2139.0 2140.0 2141.0 2142.0 2143.0 2144.0 2145.0 2146.0 2147.0 2148.0 2149.0 2150.0 2151.0 2152.0 2153.0 2154.0 2155.0 2156.0 2157.0 2158.0 2159.0 2160.0 2161.0 2162.0 2163.0 2164.0 2165.0 2166.0 2167.0 2168.0 2169.0 2170.0 2171.0 2172.0 2173.0 2174.0 2175.0 2176.0 2177.0 2178.0 2179.0 2180.0 2181.0 2182.0 2183.0 2184.0 2185.0 2186.0 2187.0 2188.0 2189.0 2190.0 2191.0 2192.0 2193.0 2194.0 2195.0 2196.0 2197.0 2198.0 2199.0 2200.0 2201.0 2202.0 2203.0 2204.0 2205.0 2206.0 2207.0 2208.0 2209.0 2210.0 2211.0 2212.0 2213.0 2214.0 2215.0 2216.0 2217.0 2218.0 2219.0 2220.0 2221.0 2222.0 2223.0 2224.0 2225.0 2226.0 2227.0 2228.0 2229.0 2230.0 2231.0 2232.0 2233.0 2234.0 2235.0 2236.0 2237.0 2238.0 2239.0 2240.0 2241.0 2242.0 2243.0 2244.0 2245.0 2246.0 2247.0 2248.0 2249.0 2250.0 2251.0 2252.0 2253.0 2254.0 2255.0 2256.0 2257.0 2258.0 2259.0 2260.0 2261.0 2262.0 2263.0 2264.0 2265.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0 0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0 0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0 0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0 0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0 -40.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 0.0 20.0 40.0 60.0 80.0 100.0 120.0 140.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 650.0 800.0 1100.0 1400.0 1700.0 2000.0 2300.0 2600.0 2900.0 3200.0 3500.0 3800.0 4100.0 4400.0 4700.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20.0 30.0 50.0 60.0 80.0 90.0 110.0 120.0 650.0 800.0 1700.0 2600.0 3500.0 4400.0 5300.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20.0 30.0 50.0 60.0 80.0 90.0 110.0 120.0 650.0 800.0 1700.0 2600.0 3500.0 4400.0 5300.0 7000.0 12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 12.1 14.1 18.0 16.8 19.6 26.1 31.6 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 12.1 14.0 17.8 16.6 19.3 25.6 31.1 42.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0 11.8 13.7 17.4 16.2 18.6 24.8 30.2 41.0 41.0 41.0 41.0 41.0 41.0 41.0 41.0 41.0 11.4 13.2 16.7 15.2 17.3 23.1 28.2 39.0 39.0 39.0 39.0 39.0 39.0 39.0 39.0 39.0 10.9 12.6 15.9 14.2 16.0 21.5 26.3 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 10.8 12.4 15.6 13.8 15.3 20.6 25.3 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 10.5 12.1 15.2 13.4 14.7 19.9 20.3 20.7 21.1 21.5 22.0 22.4 22.8 23.2 23.6 24.0 0.0 2.0 4.0 6.0 8.0 10.0 13.0 16.0 20.0 25.0 30.0 40.0 60.0 80.0 90.0 100.0 650.0 800.0 1100.0 1400.0 2000.0 2500.0 3000.0 3500.0 4000.0 4500.0 5000.0 5500.0 6000.0 6500.0 7000.0 7500.0 44.0 44.0 44.0 43.0 42.0 41.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 44.0 44.0 44.0 43.0 42.0 41.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 45.0 53.0 53.0 53.0 45.0 42.5 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 45.0 60.0 55.0 55.0 45.0 43.6 42.1 42.3 42.5 42.7 55.0 55.0 55.0 55.0 55.0 55.0 45.0 55.0 55.0 55.0 55.0 54.6 54.2 54.6 55.0 55.4 85.0 85.0 85.0 85.0 85.0 85.0 46.8 56.9 57.0 57.1 57.2 56.8 56.3 56.9 57.5 58.1 85.0 85.0 85.0 85.0 85.0 85.0 49.4 59.7 60.0 60.2 60.5 67.1 59.5 60.4 61.3 62.1 85.0 85.0 85.0 85.0 85.0 85.0 52.1 82.5 83.0 83.4 83.8 88.3 82.7 83.8 85.0 86.2 85.0 85.0 85.0 85.0 85.0 85.0 55.6 86.3 86.9 87.6 88.2 90.0 86.9 88.5 90.0 91.5 85.0 85.0 85.0 85.0 85.0 85.0 60.0 91.0 91.9 92.8 93.7 92.1 92.2 94.2 96.3 98.3 85.0 85.0 85.0 85.0 85.0 85.0 60.0 91.3 92.5 93.6 94.8 95.0 97.5 100.0 102.5 105.0 105.5 106.0 106.5 107.0 104.5 85.0 60.0 91.9 93.6 95.2 96.9 97.9 100.4 102.9 105.4 107.9 108.4 108.9 109.4 109.9 107.4 85.0 60.0 93.1 95.9 98.5 101.3 103.6 106.1 108.6 111.1 113.6 114.1 114.6 115.1 115.6 113.1 85.0 50.0 94.3 98.1 101.8 105.6 109.3 111.8 114.3 116.8 119.3 119.8 120.3 120.8 121.3 118.8 85.0 55.0 97.1 100.9 104.6 108.4 112.1 114.6 117.1 119.6 122.1 122.6 123.1 123.6 124.1 121.6 85.0 55.0 100.0 103.8 107.5 111.3 115.0 117.5 120.0 122.5 125.0 125.5 126.0 126.5 127.0 124.5 109.0 0.0 2.0 4.0 6.0 8.0 10.0 13.0 16.0 20.0 25.0 30.0 40.0 60.0 80.0 90.0 100.0 650.0 800.0 1100.0 1400.0 1700.0 2000.0 2300.0 2600.0 2900.0 3200.0 3500.0 3800.0 4100.0 4400.0 4700.0 7000.0 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 150.0 175.0 200.0 225.0 250.0 650.0 800.0 1100.0 1400.0 1700.0 2000.0 2300.0 2600.0 2900.0 3200.0 3500.0 3800.0 4100.0 4400.0 4700.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 17.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 23.0 17.0 10.0 0.0 0.0 0.0 0.0 0.0 28.0 23.0 17.0 10.0 0.0 0.0 0.0 0.0 32.0 28.0 23.0 17.0 10.0 0.0 0.0 0.0 35.0 32.0 28.0 23.0 17.0 10.0 0.0 0.0 37.0 35.0 32.0 28.0 23.0 17.0 10.0 0.0 0.0 10.0 30.0 40.0 60.0 70.0 90.0 100.0 0.0 10.0 30.0 40.0 60.0 70.0 90.0 100.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20.0 30.0 50.0 60.0 80.0 90.0 110.0 120.0 650.0 800.0 1700.0 2600.0 3500.0 4400.0 5300.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20.0 30.0 50.0 60.0 80.0 90.0 110.0 120.0 650.0 800.0 1700.0 2600.0 3500.0 4400.0 5300.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20.0 30.0 50.0 60.0 80.0 90.0 110.0 120.0 650.0 800.0 1700.0 2600.0 3500.0 4400.0 5300.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20.0 30.0 50.0 60.0 80.0 90.0 110.0 120.0 650.0 800.0 1700.0 2600.0 3500.0 4400.0 5300.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.8 2.2 1.8 1.55 1.3 1.1 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 5.0 7.0 10.0 650.0 800.0 3750.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 5.0 7.0 10.0 650.0 800.0 3750.0 7000.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "Zero" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "Zero" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "Zero" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "Zero" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "Zero" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "Zero" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "Zero" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 "Zero" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0