From 9be7b3d9304a0968e238b5ef2ab8e2292aa5e351 Mon Sep 17 00:00:00 2001 From: Sonny Jeon Date: Wed, 14 Jan 2015 22:14:52 -0700 Subject: [PATCH] Lot of refactoring for the future. CoreXY support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rudimentary CoreXY kinematics support. Didn’t test, but homing and feed holds should work. See config.h. Please report successes and issues as we find bugs. - G40 (disable cutter comp) is now “supported”. Meaning that Grbl will no longer issue an error when typically sent in g-code program header. - Refactored coolant and spindle state setting into separate functions for future features. - Configuration option for fixing homing behavior when there are two limit switches on the same axis sharing an input pin. - Created a new “grbl.h” that will eventually be used as the main include file for Grbl. Also will help simply uploading through the Arduino IDE - Separated out the alarms execution flags from the realtime (used be called runtime) execution flag variable. Now reports exactly what caused the alarm. Expandable for new alarms later on. - Refactored the homing cycle to support CoreXY. - Applied @EliteEng updates to Mega2560 support. Some pins were reconfigured. - Created a central step to position and vice versa function. Needed for non-traditional cartesian machines. Should make it easier later. - Removed the new CPU map for the Uno. No longer going to used. There will be only one configuration to keep things uniform. --- config.h | 27 +- coolant_control.c | 16 +- coolant_control.h | 3 +- cpu_map.h | 174 +- defaults.h | 2 +- gcode.c | 34 +- gcode.h | 43 +- grbl.h | 49 + limits.c | 139 +- limits.h | 2 +- main.c | 5 +- motion_control.c | 66 +- motion_control.h | 2 +- nuts_bolts.c | 2 +- nuts_bolts.h | 14 +- planner.c | 53 +- planner.h | 2 +- print.c | 2 +- print.h | 2 +- probe.c | 4 +- probe.h | 2 +- protocol.c | 93 +- protocol.h | 6 +- report.c | 19 +- report.h | 9 +- serial.c | 14 +- serial.h | 2 +- settings.c | 4 +- settings.h | 6 +- spindle_control.c | 41 +- spindle_control.h | 4 +- stepper.c | 8 +- stepper.h | 8 +- system.c | 67 +- system.h | 36 +- test/gcode/8x_gear_test.nc | 4919 ------------------------------ test/gcode/HSM_test.nc | 1758 ----------- test/gcode/SO2_helloworld.nc | 773 ----- test/gcode/braid_cut2d.nc | 2517 --------------- test/matlab/grbl_sim.m | 437 --- test/matlab/matlab.gcode | 2362 -------------- test/matlab/matlab_convert.py | 270 -- test/matlab/test.gcode | 2363 -------------- test/settings/kikigey89.settings | 31 - test/test.py | 25 - 45 files changed, 529 insertions(+), 15886 deletions(-) create mode 100644 grbl.h delete mode 100644 test/gcode/8x_gear_test.nc delete mode 100644 test/gcode/HSM_test.nc delete mode 100644 test/gcode/SO2_helloworld.nc delete mode 100644 test/gcode/braid_cut2d.nc delete mode 100644 test/matlab/grbl_sim.m delete mode 100644 test/matlab/matlab.gcode delete mode 100755 test/matlab/matlab_convert.py delete mode 100644 test/matlab/test.gcode delete mode 100644 test/settings/kikigey89.settings delete mode 100644 test/test.py diff --git a/config.h b/config.h index 378ad6a..60d240b 100644 --- a/config.h +++ b/config.h @@ -2,7 +2,7 @@ config.h - compile time configuration Part of Grbl v0.9 - Copyright (c) 2013-2014 Sungeun K. Jeon + Copyright (c) 2013-2015 Sungeun K. Jeon Grbl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -43,9 +43,9 @@ // Default cpu mappings. Grbl officially supports the Arduino Uno only. Other processor types // may exist from user-supplied templates or directly user-defined in cpu_map.h -#define CPU_MAP_ATMEGA328P_TRADITIONAL // Arduino Uno CPU +#define CPU_MAP_ATMEGA328P // Arduino Uno CPU -// Define runtime command special characters. These characters are 'picked-off' directly from the +// Define realtime command special characters. These characters are 'picked-off' directly from the // serial read data stream and are not passed to the grbl line execution parser. Select characters // that do not and must not exist in the streamed g-code program. ASCII control characters may be // used, if they are available per user setup. Also, extended ASCII codes (>127), which are never in @@ -107,6 +107,14 @@ #define N_DECIMAL_RATEVALUE_MM 0 // Rate or velocity value in mm/min #define N_DECIMAL_SETTINGVALUE 3 // Decimals for floating point setting values +// If your machine has two limits switches wired in parallel to one axis, you will need to enable +// this feature. Since the two switches are sharing a single pin, there is no way for Grbl to tell +// which one is enabled. This option only effects homing, where if a limit is engaged, Grbl will +// alarm out and force the user to manually disengage the limit switch. Otherwise, if you have one +// limit switch for each axis, don't enable this option. By keeping it disabled, you can homing while +// on the limit switch and not have to move the machine off of it. +// #define LIMITS_TWO_SWITCHES_ON_AXES + // Allows GRBL to track and report gcode line numbers. Enabling this means that the planning buffer // goes from 18 or 16 to make room for the additional line number data in the plan_block_t struct // #define USE_LINE_NUMBERS // Disabled by default. Uncomment to enable. @@ -126,6 +134,15 @@ // NOTE: The M8 flood coolant control pin on analog pin 4 will still be functional regardless. // #define ENABLE_M7 // Disabled by default. Uncomment to enable. +// Enable CoreXY kinematics. Use ONLY with CoreXY machines. +// IMPORTANT: If homing is enabled, you must reconfigure the homing cycle #defines above to +// #define HOMING_CYCLE_0 (1< 255) -// #error Parameters ACCELERATION_TICKS / ISR_TICKS must be < 256 to prevent integer overflow. -// #endif + // --------------------------------------------------------------------------------------- diff --git a/coolant_control.c b/coolant_control.c index 9f629ce..d8336d5 100644 --- a/coolant_control.c +++ b/coolant_control.c @@ -2,7 +2,7 @@ coolant_control.c - coolant control methods Part of Grbl v0.9 - Copyright (c) 2012-2014 Sungeun K. Jeon + Copyright (c) 2012-2015 Sungeun K. Jeon Grbl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -43,12 +43,8 @@ void coolant_stop() } -void coolant_run(uint8_t mode) +void coolant_set_state(uint8_t mode) { - if (sys.state == STATE_CHECK_MODE) { return; } - - protocol_auto_cycle_start(); //temp fix for M8 lockup - protocol_buffer_synchronize(); // Ensure coolant turns on when specified in program. if (mode == COOLANT_FLOOD_ENABLE) { COOLANT_FLOOD_PORT |= (1 << COOLANT_FLOOD_BIT); @@ -61,3 +57,11 @@ void coolant_run(uint8_t mode) coolant_stop(); } } + + +void coolant_run(uint8_t mode) +{ + if (sys.state == STATE_CHECK_MODE) { return; } + protocol_buffer_synchronize(); // Ensure coolant turns on when specified in program. + coolant_set_state(mode); +} diff --git a/coolant_control.h b/coolant_control.h index db3c71c..f093cee 100644 --- a/coolant_control.h +++ b/coolant_control.h @@ -2,7 +2,7 @@ coolant_control.h - spindle control methods Part of Grbl v0.9 - Copyright (c) 2012-2014 Sungeun K. Jeon + Copyright (c) 2012-2015 Sungeun K. Jeon Grbl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,6 +24,7 @@ void coolant_init(); void coolant_stop(); +void coolant_set_state(uint8_t mode); void coolant_run(uint8_t mode); #endif \ No newline at end of file diff --git a/cpu_map.h b/cpu_map.h index 7295513..3e46c30 100644 --- a/cpu_map.h +++ b/cpu_map.h @@ -2,7 +2,7 @@ cpu_map.h - CPU and pin mapping configuration file Part of Grbl v0.9 - Copyright (c) 2012-2014 Sungeun K. Jeon + Copyright (c) 2012-2015 Sungeun K. Jeon Grbl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -31,7 +31,7 @@ //---------------------------------------------------------------------------------------- -#ifdef CPU_MAP_ATMEGA328P_TRADITIONAL // (Arduino Uno) Officially supported by Grbl. +#ifdef CPU_MAP_ATMEGA328P // (Arduino Uno) Officially supported by Grbl. // Define serial port pins and interrupt vectors. #define SERIAL_RX USART_RX_vect @@ -123,6 +123,7 @@ #ifdef VARIABLE_SPINDLE // Advanced Configuration Below You should not need to touch these variables + #define PWM_MAX_VALUE 255.0 #define TCCRA_REGISTER TCCR2A #define TCCRB_REGISTER TCCR2B #define OCR_REGISTER OCR2A @@ -142,118 +143,6 @@ #endif -//---------------------------------------------------------------------------------------- - -#ifdef CPU_MAP_ATMEGA328P_NEW // (Arduino Uno) New test pinout configuration. Still subject to change. Not finalized! - - // Define serial port pins and interrupt vectors. - #define SERIAL_RX USART_RX_vect - #define SERIAL_UDRE USART_UDRE_vect - - // Define step pulse output pins. NOTE: All step bit pins must be on the same port. - #define STEP_DDR DDRD - #define STEP_PORT PORTD - #define X_STEP_BIT 2 // Uno Digital Pin 2 - #define Y_STEP_BIT 3 // Uno Digital Pin 3 - #define Z_STEP_BIT 4 // Uno Digital Pin 4 - #define STEP_MASK ((1<. +*/ + +// NOTE: This is not used by the 'make' compiling method. This is currently only used for +// simplifying compiling through the Arduino IDE at the moment. However, it may eventually +// turn into a central include file for the overall system. + +#ifndef grbl_h +#define grbl_h + +// All of the Grbl system include files. +#include "config.h" +#include "coolant_control.h" +#include "cpu_map.h" +#include "defaults.h" +#include "eeprom.h" +#include "gcode.h" +#include "limits.h" +#include "motion_control.h" +#include "nuts_bolts.h" +#include "planner.h" +#include "print.h" +#include "probe.h" +#include "protocol.h" +#include "report.h" +#include "serial.h" +#include "settings.h" +#include "spindle_control.h" +#include "stepper.h" +#include "system.h" + +#endif diff --git a/limits.c b/limits.c index 4538dcb..9cb43c4 100644 --- a/limits.c +++ b/limits.c @@ -2,7 +2,7 @@ limits.c - code pertaining to limit-switches and performing the homing cycle Part of Grbl v0.9 - Copyright (c) 2012-2014 Sungeun K. Jeon + Copyright (c) 2012-2015 Sungeun K. Jeon Grbl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -89,9 +89,9 @@ void limits_disable() // locked out until a homing cycle or a kill lock command. Allows the user to disable the hard // limit setting if their limits are constantly triggering after a reset and move their axes. if (sys.state != STATE_ALARM) { - if (bit_isfalse(sys.execute,EXEC_ALARM)) { + if (!(sys.rt_exec_alarm)) { mc_reset(); // Initiate system kill. - bit_true_atomic(sys.execute, (EXEC_ALARM | EXEC_CRIT_EVENT)); // Indicate hard limit critical event + bit_true_atomic(sys.rt_exec_alarm, (EXEC_ALARM_HARD_LIMIT|EXEC_CRITICAL_EVENT)); // Indicate hard limit critical event } } } @@ -102,13 +102,13 @@ void limits_disable() { WDTCSR &= ~(1< settings.max_travel[idx]) { max_travel = settings.max_travel[idx]; } @@ -148,6 +151,7 @@ void limits_go_home(uint8_t cycle_mask) max_travel *= -HOMING_AXIS_SEARCH_SCALAR; // Ensure homing switches engaged by over-estimating max travel. plan_reset(); // Reset planner buffer to zero planner current position and to clear previous motions. + plan_sync_position(); // Sync planner position to current machine position. do { // Initialize invert_pin boolean based on approach and invert pin user setting. @@ -157,20 +161,23 @@ void limits_go_home(uint8_t cycle_mask) // Initialize and declare variables needed for homing routine. uint8_t n_active_axis = 0; uint8_t axislock = 0; - + + system_convert_array_steps_to_mpos(target,sys.position); for (idx=0; idx 0.0) { + for (idx=0; idx 0) { - // NOTE: Check and execute runtime commands during dwell every <= DWELL_TIME_STEP milliseconds. - protocol_execute_runtime(); + // NOTE: Check and execute realtime commands during dwell every <= DWELL_TIME_STEP milliseconds. + protocol_execute_realtime(); if (sys.abort) { return; } _delay_ms(DWELL_TIME_STEP); // Delay DWELL_TIME_STEP increment } @@ -243,15 +244,16 @@ void mc_homing_cycle() // Check and abort homing cycle, if hard limits are already enabled. Helps prevent problems // with machines with limits wired on both ends of travel to one limit pin. // TODO: Move the pin-specific LIMIT_PIN call to limits.c as a function. - uint8_t limit_state = (LIMIT_PIN & LIMIT_MASK); - if (bit_isfalse(settings.flags,BITFLAG_INVERT_LIMIT_PINS)) { limit_state ^= LIMIT_MASK; } - if (limit_state) { - mc_reset(); // Issue system reset and ensure spindle and coolant are shutdown. - bit_true_atomic(sys.execute, (EXEC_ALARM | EXEC_CRIT_EVENT)); // Indicate homing limit critical event - return; - } - - sys.state = STATE_HOMING; // Set system state variable + #ifdef LIMITS_TWO_SWITCHES_ON_AXES + uint8_t limit_state = (LIMIT_PIN & LIMIT_MASK); + if (bit_isfalse(settings.flags,BITFLAG_INVERT_LIMIT_PINS)) { limit_state ^= LIMIT_MASK; } + if (limit_state) { + mc_reset(); // Issue system reset and ensure spindle and coolant are shutdown. + bit_true_atomic(sys.rt_exec_alarm, (EXEC_ALARM_HARD_LIMIT|EXEC_CRITICAL_EVENT)); + return; + } + #endif + limits_disable(); // Disable hard limits pin change register for cycle duration // ------------------------------------------------------------------------------------- @@ -266,7 +268,7 @@ void mc_homing_cycle() limits_go_home(HOMING_CYCLE_2); // Homing cycle 2 #endif - protocol_execute_runtime(); // Check for reset and set system abort. + protocol_execute_realtime(); // Check for reset and set system abort. if (sys.abort) { return; } // Did not complete. Alarm state set by mc_alarm. // Homing cycle complete! Setup system for normal operation. @@ -275,10 +277,6 @@ void mc_homing_cycle() // Gcode parser position was circumvented by the limits_go_home() routine, so sync position now. gc_sync_position(); - // Set idle state after homing completes and before returning to main program. - sys.state = STATE_IDLE; - st_go_idle(); // Set idle state after homing completes - // If hard limits feature enabled, re-enable hard limits pin change register after homing cycle. limits_init(); } @@ -308,8 +306,8 @@ void mc_homing_cycle() // After syncing, check if probe is already triggered. If so, halt and issue alarm. // NOTE: This probe initialization error applies to all probing cycles. if ( probe_get_state() ) { // Check probe pin state. - bit_true_atomic(sys.execute, EXEC_CRIT_EVENT); - protocol_execute_runtime(); + bit_true_atomic(sys.rt_exec_alarm, EXEC_ALARM_PROBE_FAIL); + protocol_execute_realtime(); } if (sys.abort) { return; } // Return if system reset has been issued. @@ -324,9 +322,9 @@ void mc_homing_cycle() sys.probe_state = PROBE_ACTIVE; // Perform probing cycle. Wait here until probe is triggered or motion completes. - bit_true_atomic(sys.execute, EXEC_CYCLE_START); + bit_true_atomic(sys.rt_exec_state, EXEC_CYCLE_START); do { - protocol_execute_runtime(); + protocol_execute_realtime(); if (sys.abort) { return; } // Check for system abort } while ((sys.state != STATE_IDLE) && (sys.state != STATE_QUEUED)); @@ -335,12 +333,12 @@ void mc_homing_cycle() // Set state variables and error out, if the probe failed and cycle with error is enabled. if (sys.probe_state == PROBE_ACTIVE) { if (is_no_error) { memcpy(sys.probe_position, sys.position, sizeof(float)*N_AXIS); } - else { bit_true_atomic(sys.execute, EXEC_CRIT_EVENT); } + else { bit_true_atomic(sys.rt_exec_alarm, EXEC_ALARM_PROBE_FAIL); } } else { sys.probe_succeeded = true; // Indicate to system the probing cycle completed successfully. } sys.probe_state = PROBE_OFF; // Ensure probe state monitor is disabled. - protocol_execute_runtime(); // Check and execute run-time commands + protocol_execute_realtime(); // Check and execute run-time commands if (sys.abort) { return; } // Check for system abort // Reset the stepper and planner buffers to remove the remainder of the probe motion. @@ -349,13 +347,11 @@ void mc_homing_cycle() plan_sync_position(); // Sync planner position to current machine position. // TODO: Update the g-code parser code to not require this target calculation but uses a gc_sync_position() call. - uint8_t idx; - for(idx=0; idxsteps[A_MOTOR] = labs((target_steps[X_AXIS]-pl.position[X_AXIS]) - (target_steps[Y_AXIS]-pl.position[Y_AXIS])); + block->steps[B_MOTOR] = labs((target_steps[X_AXIS]-pl.position[X_AXIS]) + (target_steps[Y_AXIS]-pl.position[Y_AXIS])); + #endif + for (idx=0; idxsteps[idx] = labs(target_steps[idx]-pl.position[idx]); - block->step_event_count = max(block->step_event_count, block->steps[idx]); - - // Compute individual axes distance for move and prep unit vector calculations. + // Calculate target position in absolute steps, number of steps for each axis, and determine max step events. + // Also, compute individual axes distance for move and prep unit vector calculations. // NOTE: Computes true distance from converted step values. - delta_mm = (target_steps[idx] - pl.position[idx])/settings.steps_per_mm[idx]; + #ifdef COREXY + if ( !(idx == A_MOTOR) && !(idx == B_MOTOR) ) { + target_steps[idx] = lround(target[idx]*settings.steps_per_mm[idx]); + block->steps[idx] = labs(target_steps[idx]-pl.position[idx]); + } + block->step_event_count = max(block->step_event_count, block->steps[idx]); + if (idx == A_MOTOR) { + delta_mm = ((target_steps[X_AXIS]-pl.position[X_AXIS]) - (target_steps[Y_AXIS]-pl.position[Y_AXIS]))/settings.steps_per_mm[idx]; + } else if (idx == B_MOTOR) { + delta_mm = ((target_steps[X_AXIS]-pl.position[X_AXIS]) + (target_steps[Y_AXIS]-pl.position[Y_AXIS]))/settings.steps_per_mm[idx]; + } else { + delta_mm = (target_steps[idx] - pl.position[idx])/settings.steps_per_mm[idx]; + } + #else + target_steps[idx] = lround(target[idx]*settings.steps_per_mm[idx]); + block->steps[idx] = labs(target_steps[idx]-pl.position[idx]); + block->step_event_count = max(block->step_event_count, block->steps[idx]); + delta_mm = (target_steps[idx] - pl.position[idx])/settings.steps_per_mm[idx]; + #endif unit_vec[idx] = delta_mm; // Store unit vector numerator. Denominator computed later. // Set direction bits. Bit enabled always means direction is negative. @@ -403,9 +422,21 @@ uint8_t plan_check_full_buffer() // Reset the planner position vectors. Called by the system abort/initialization routine. void plan_sync_position() { + // TODO: For motor configurations not in the same coordinate frame as the machine position, + // this function needs to be updated to accomodate the difference. uint8_t idx; for (idx=0; idx SPINDLE_RPM_RANGE ) { rpm = SPINDLE_RPM_RANGE; } // Prevent uint8 overflow + if ( rpm > SPINDLE_RPM_RANGE ) { rpm = SPINDLE_RPM_RANGE; } // Prevent integer overflow } - uint8_t current_pwm = floor( rpm*(255.0/SPINDLE_RPM_RANGE) + 0.5); + current_pwm = floor( rpm*(PWM_MAX_VALUE/SPINDLE_RPM_RANGE) + 0.5); #ifdef MINIMUM_SPINDLE_PWM if (current_pwm < MINIMUM_SPINDLE_PWM) { current_pwm = MINIMUM_SPINDLE_PWM; } #endif OCR_REGISTER = current_pwm; // Set PWM pin output - #ifndef CPU_MAP_ATMEGA328P // On the Uno, spindle enable and PWM are shared. + #ifdef CPU_MAP_ATMEGA2560 // On the Uno, spindle enable and PWM are shared. SPINDLE_ENABLE_PORT |= (1<, this feeds the simulator planner one line motion -% block. The left side is the first block in the buffer and the one that will be executed -% by the stepper module first. The right side is the end of the planner buffer, where the -% most recent streamed block is appended onto the planner buffer. Grbl's planner -% optimizes the velocity profiles between the beginning and end of the buffer based on -% the acceleration limits, intended velocity/feedrate, and line motion junction angles -% with their corresponding velocity limits (i.e. junctions with acute angles needs to come -% to a complete stop vs straight junctions can continue through at full speed.) - -% ---------------------------------------------------------------------------------------- - - -% Main function -% NOTE: This is just a way to keep all functions in one place, but all non-global variables -% are cleared as soon as this script completes. -function main() - -% Load pre-parsed gcode moves. -close all; -warning off; -clearvars -global -fid = fopen('matlab.gcode','r'); -gcode = textscan(fid,'%d8%f32%f32%f32%f32'); -nblock = length(gcode{1}); - -% Plot all g-code moves. -figure -line(gcode{3},gcode{4},gcode{5}); -axis equal; -% axis([min(gcode{3}) max(gcode{3}) min(gcode{4}) max(gcode{4}) min(gcode{5}) max(gcode{5})]); -title('G-code programming line motions'); -view(3); - -% Set up figure for planner queue -figure - -% Print help. -disp(''); -disp(' BLUE line indicates completed planner blocks that require no recalculation.'); -disp(' RED line indicates planner blocks that have been recalculated.'); -disp(' GREEN line indicates the location of the BPLANNED pointer. Always a recalculated block.'); -disp(' BLACK dotted-line and ''x'' indicates block nominal speed and max junction velocity, respectively.'); -disp(' CYAN ''.'' indicates block initial entry speed.'); - -% Define Grbl settings. -BUFFER_SIZE = 18; % Number of planner blocks in its ring buffer. -steps_per_mm = 200; -seekrate = 2500; % mm/min -acceleration = [100 100 100]; % mm/sec^2 [ X Y Z ] axes -junction_deviation = 0.1; % mm. See Grbl documentation on this parameter. -inch_2_mm = 25.4; -ACCELERATION_TICKS_PER_SECOND = 100; - -gcode{2} = gcode{2}; -gcode{2} = inch_2_mm*gcode{2}; -gcode{3} = inch_2_mm*gcode{3}; -gcode{4} = inch_2_mm*gcode{4}; -gcode{5} = inch_2_mm*gcode{5}; - -% Initialize blocks -block.steps = []; -block.step_event_count = []; -block.delta_mm = []; -block.millimeters = []; -block.acceleration = []; -block.speed = []; -block.nominal_speed = []; -block.max_entry_speed = []; -block.entry_speed = []; -block.recalculate_flag = false; -for i = 2:BUFFER_SIZE - block(i) = block(1); -end - -% Initialize planner -position = [0 0 0]; -prev_unit_vec = [0 0 0]; -previous_nominal_speed = 0; -pos = 0; - -% BHEAD and BTAIL act as pointers to the block head and tail. -% BPLANNED acts as a pointer of the location of the end of a completed/optimized plan. -bhead = 1; -btail = 1; -bplanned = 1; - -global block bhead btail bplanned nind acceleration BUFFER_SIZE pos ACCELERATION_TICKS_PER_SECOND - -% Main loop. Simulates plan_buffer_line(). All of the precalculations for the newest incoming -% block occurs here. Anything independent of the planner changes. -for i = 1:nblock - - target = round([gcode{3}(i) gcode{4}(i) gcode{5}(i)].*steps_per_mm); - if gcode{1}(i) == 1 - feedrate = gcode{2}(i); - else - feedrate = seekrate; - end - - nind = next_block_index(bhead); - if nind == btail - % Simulate a constantly full buffer. Move buffer tail. - bind = next_block_index(btail); - % Push planned pointer if encountered. Prevents it from looping back around the ring buffer. - if btail == bplanned; bplanned = bind; end - btail = bind; - end - - block(bhead).steps = abs(target-position); - block(bhead).step_event_count = max(block(bhead).steps); - - % Bail if this is a zero-length block - if block(bhead).step_event_count == 0 - disp(['Zero-length block in line ',int2str(i)]); - else - - % Compute path vector in terms of absolute step target and current positions - delta_mm = single((target-position)./steps_per_mm); - block(bhead).millimeters = single(norm(delta_mm)); - inverse_millimeters = single(1/block(bhead).millimeters); - - % Compute path unit vector - unit_vec = delta_mm/block(bhead).millimeters; - - % Calculate speed in mm/minute for each axis - inverse_minute = single(feedrate * inverse_millimeters); - block(bhead).speed = delta_mm*inverse_minute; - block(bhead).nominal_speed = block(bhead).millimeters*inverse_minute; - - % Calculate block acceleration. Operates on absolute value of unit vector. - [max_acc,ind] = max(abs(unit_vec)./acceleration); % Determine limiting acceleration - block(bhead).acceleration = acceleration(ind)/abs(unit_vec(ind)); - - % Compute maximum junction speed - block(bhead).max_entry_speed = 0.0; - if previous_nominal_speed > 0.0 - cos_theta = dot(-previous_unit_vec,unit_vec); - if (cos_theta < 0.95) - block(bhead).max_entry_speed = min([block(bhead).nominal_speed,previous_nominal_speed]); - if (cos_theta > -0.95) - sin_theta_d2 = sqrt(0.5*(1.0-cos_theta)); - block(bhead).max_entry_speed = min([block(bhead).max_entry_speed,sqrt(block(bhead).acceleration*3600*junction_deviation*sin_theta_d2/(1.0-sin_theta_d2))]); - end - end - end - - block(bhead).entry_speed = 0; % Just initialize. Set accurately in the replanning function. - block(bhead).recalculate_flag = true; % Plotting flag to indicate this block has been updated. - - previous_unit_vec = unit_vec; - previous_nominal_speed = block(bhead).nominal_speed; - position = target; - - bhead = nind; % Block complete. Push buffer pointer. - planner_recalculate(); - - plot_buffer_velocities(); - end -end -return - -% Computes the next block index in the planner ring buffer -function block_index = next_block_index(block_index) -global BUFFER_SIZE - block_index = block_index + 1; - if block_index > BUFFER_SIZE - block_index = 1; - end -return - -% Computes the previous block index in the planner ring buffer -function block_index = prev_block_index(block_index) -global BUFFER_SIZE - block_index = block_index-1; - if block_index < 1 - block_index = BUFFER_SIZE; - end -return - - -% Planner recalculate function. The magic happens here. -function planner_recalculate(block) - - global block bhead btail bplanned acceleration - - bind = prev_block_index(bhead); - if bind == bplanned; return; end % Bail, if only one block in buffer. Can't be operated on. - - % Reverse Pass: Coarsely maximize all possible deceleration curves back-planning from the last - % block in buffer. Cease planning when the last optimal planned or tail pointer is reached. - % NOTE: Forward pass will later refine and correct the reverse pass to create an optimal plan. - next = []; - curr = bind; % Last block in buffer. - - % Calculate maximum entry speed for last block in buffer, where the exit speed is always zero. - block(curr).entry_speed = min([block(curr).max_entry_speed,sqrt(2*block(curr).acceleration*60*60*block(curr).millimeters)]); - - bind = prev_block_index(bind); % Btail or second to last block - if (bind == bplanned) - % Only two plannable blocks in buffer. Reverse pass complete. - % Check if the first block is the tail. If so, notify stepper module to update its current parameters. - % if bind == btail; update_tail_block; end - else - % Three or more plannable blocks in buffer. Loop it. - while bind ~= bplanned % Loop until bplanned point hits. Replans to last plan point. - next = curr; - curr = bind; - bind = prev_block_index( bind ); % Previous block pointer. - - % Check if the first block is the tail. If so, notify stepper module to update its current parameters. - % if bind == btail; update_tail_block; end - - % Compute maximum entry speed decelerating over the current block from its exit speed. - if block(curr).entry_speed ~= block(curr).max_entry_speed - block(curr).recalculate_flag = true; % Plotting flag to indicate this block has been updated. - block(curr).entry_speed = min([ block(curr).max_entry_speed,... - sqrt(block(next).entry_speed^2 + 2*block(curr).acceleration*60*60*block(curr).millimeters)]); - end - - end - end - - % For two blocks, reverse pass is skipped, but forward pass plans second block entry speed - % onward. This prevents the first, or the potentially executing block, from being over-written. - % NOTE: Can never be bhead, since bsafe is always in active buffer. - next = bplanned; - bind = next_block_index(bplanned); % Start at bplanned - while bind ~= bhead - curr = next; - next = bind; - - % An acceleration block is always an optimally planned block since it starts from the first - % block's current speed or a maximum junction speed. Compute accelerations from this block - % and update the next block's entry speed. - if (block(curr).entry_speed < block(next).entry_speed) - % Once speed is set by forward planner, the plan for this block is finished and optimal. - % Increment the planner pointer forward one block. - - entry_speed = sqrt(block(curr).entry_speed^2 + 2*block(curr).acceleration*60*60*block(curr).millimeters); - if (block(next).entry_speed > entry_speed) - block(next).entry_speed = entry_speed; - bplanned = bind; - end - - end - - % Check if the next block entry speed is at max_entry_speed. If so, move the planned pointer, since - % this entry speed cannot be improved anymore and all prior blocks have been completed and optimally planned. - if block(next).entry_speed == block(next).max_entry_speed - bplanned = bind; - end - - % Recalculate trapezoid can be installed here, since it scans through all of the plannable blocks. - % NOTE: Eventually this will only be computed when being executed. - - bind = next_block_index( bind ); - - end - -return - -% ---------------------------------------------------------------------------------------- -% PLOTTING FUNCTIONS - -% Plots the entire buffer plan into a MATLAB figure to visual the plan. -% BLUE line indicates completed planner blocks that require no recalculation. -% RED line indicates planner blocks that have been recalculated. -% GREEN line indicates the location of the BPLANNED pointer. Always a recalculated block. -% BLACK dotted-line and 'x' indicates block nominal speed and max junction velocity, respectively. -% CYAN '.' indicates block initial entry speed. -function plot_buffer_velocities() - global block bhead btail bplanned acceleration pos ACCELERATION_TICKS_PER_SECOND - bind = btail; - curr = []; - next = []; - - pos_initial = 0; - pos = 0; - while bind ~= bhead - curr = next; - next = bind; - hold on; - if ~isempty(curr) - accel_d = estimate_acceleration_distance(block(curr).entry_speed, block(curr).nominal_speed, block(curr).acceleration*60*60); - decel_d = estimate_acceleration_distance(block(curr).nominal_speed, block(next).entry_speed,-block(curr).acceleration*60*60); - plateau_d = block(curr).millimeters-accel_d-decel_d; - if plateau_d < 0 - accel_d = intersection_distance(block(curr).entry_speed, block(next).entry_speed, block(curr).acceleration*60*60, block(curr).millimeters); - if accel_d < 0 - accel_d = 0; - elseif accel_d > block(curr).millimeters - accel_d = block(curr).millimeters; - end - plateau_d = 0; - end - color = 'b'; - if (block(curr).recalculate_flag || block(next).recalculate_flag) - block(curr).recalculate_flag = false; - color = 'r'; - end - if bplanned == curr - color = 'g'; - end - - plot_trap(pos,block(curr).entry_speed,block(next).entry_speed,block(curr).nominal_speed,block(curr).acceleration,accel_d,plateau_d,block(curr).millimeters,color) - plot([pos pos+block(curr).millimeters],block(curr).nominal_speed*[1 1],'k:') % BLACK dotted indicates - plot(pos,block(curr).max_entry_speed,'kx') - - pos = pos + block(curr).millimeters; - plot(pos,block(next).entry_speed,'c.'); - end - bind = next_block_index( bind ); - end - - accel_d = estimate_acceleration_distance(block(next).entry_speed, block(next).nominal_speed, block(next).acceleration*60*60); - decel_d = estimate_acceleration_distance(block(next).nominal_speed, 0, -block(next).acceleration*60*60); - plateau_d = block(next).millimeters-accel_d-decel_d; - if plateau_d < 0 - accel_d = intersection_distance(block(next).entry_speed, 0, block(next).acceleration*60*60, block(next).millimeters); - if accel_d < 0 - accel_d = 0; - elseif accel_d > block(next).millimeters - accel_d = block(next).millimeters; - end - plateau_d = 0; - end - block(next).recalculate_flag = false; - color = 'r'; - if bplanned == next - color= 'g'; - end - - plot_trap(pos,block(next).entry_speed,0,block(next).nominal_speed,block(next).acceleration,accel_d,plateau_d,block(next).millimeters,color) - plot([pos pos+block(next).millimeters],block(next).nominal_speed*[1 1],'k:') - plot(pos,block(next).max_entry_speed,'kx') - - plot(pos,block(next).entry_speed,'.'); - pos = pos + block(next).millimeters; - plot(pos,0,'rx'); - xlabel('mm'); - ylabel('mm/sec'); - xlim([pos_initial pos]) - title('Planner buffer optimized velocity profile'); - pause(); - hold off; - - plot(pos,0) -return - - -function d_a = estimate_acceleration_distance(initial_rate, target_rate, acceleration,rate_delta) - d_a = (target_rate*target_rate-initial_rate*initial_rate)/(2*acceleration); -return - -function d_i = intersection_distance(initial_rate, final_rate, acceleration, distance, rate_delta) - d_i = (2*acceleration*distance-initial_rate*initial_rate+final_rate*final_rate)/(4*acceleration); -return - - -% Simply plots the ac/de-celeration curves and plateaus of a trapezoid. -function plot_trap(pos,initial_rate,final_rate,rate,accel,accel_d,plateau_d,millimeters,color) - - dx = 1.0; % Line segment length - linex = [pos]; liney = [initial_rate]; - - % Acceleration - np = floor(accel_d/dx); - if np - v = initial_rate; - for i = 1:np - v = sqrt(v^2+2*accel*60*60*dx); - linex = [linex pos+i*dx]; - liney = [liney v]; - end - end - - % Plateau - v = sqrt(initial_rate^2 + 2*accel*60*60*accel_d); - if v < rate - rate = v; - end - linex = [linex pos+[accel_d accel_d+plateau_d]]; - liney = [liney [rate rate]]; - - % Deceleration - np = floor((millimeters-accel_d-plateau_d)/dx); - if np - v = rate; - for i = 1:np - v = sqrt(v^2-2*accel*60*60*dx); - linex = [linex pos+i*dx+accel_d+plateau_d]; - liney = [liney v]; - end - end - - linex = [linex pos+millimeters]; - liney = [ liney final_rate]; - plot(linex,liney,color); - -return - - - diff --git a/test/matlab/matlab.gcode b/test/matlab/matlab.gcode deleted file mode 100644 index 8ad9cdc..0000000 --- a/test/matlab/matlab.gcode +++ /dev/null @@ -1,2362 +0,0 @@ -0 0.0 0.0 0.0 0.0 -0 0.0 0.0 0.0 0.0 -0 0.0 0.0 0.0 0.0 -0 0.0 0.0 0.0 6.0 -0 0.0 37.56 12.33 6.0 -1 300.0 37.56 12.33 -1.0 -1 300.0 37.56 0.88 -1.0 -1 300.0 49.01 0.88 -1.0 -1 300.0 49.01 12.33 -1.0 -1 300.0 37.56 12.33 -1.0 -0 300.0 37.56 12.33 6.0 -0 300.0 37.56 0.88 6.0 -1 300.0 37.56 0.88 -1.0 -1 300.0 37.56 -10.57 -1.0 -1 300.0 49.01 -10.57 -1.0 -1 300.0 49.01 0.88 -1.0 -1 300.0 37.56 0.88 -1.0 -0 300.0 37.56 0.88 6.0 -0 300.0 49.01 12.33 6.0 -1 300.0 49.01 12.33 -1.0 -1 300.0 52.08 15.01 -1.0 -0 300.0 52.08 15.01 6.0 -0 300.0 49.01 0.88 6.0 -1 300.0 49.01 0.88 -1.0 -1 300.0 52.08 6.21 -1.0 -1 300.0 52.08 15.01 -1.0 -1 300.0 43.29 15.01 -1.0 -1 300.0 37.56 12.33 -1.0 -0 300.0 37.56 12.33 6.0 -0 300.0 49.01 -10.57 6.0 -1 300.0 49.01 -10.57 -1.0 -1 300.0 52.08 -2.58 -1.0 -1 300.0 52.08 6.21 -1.0 -1 300.0 49.01 0.88 -1.0 -0 300.0 49.01 0.88 6.0 -0 300.0 49.01 0.88 20.0 -0 300.0 0.0 0.0 20.0 -1 300.0 -7.1 -39.88 20.0 -1 300.0 -10.3 -38.12 20.0 -1 300.0 -10.7 -37.9 20.0 -1 300.0 -11.1 -37.68 20.0 -1 300.0 -11.89 -37.23 20.0 -1 300.0 -13.45 -36.36 20.0 -1 300.0 -13.82 -36.14 20.0 -1 300.0 -14.2 -35.92 20.0 -1 300.0 -14.92 -35.48 20.0 -1 300.0 -16.29 -34.63 20.0 -1 300.0 -16.64 -34.4 20.0 -1 300.0 -16.97 -34.16 20.0 -1 300.0 -17.61 -33.71 20.0 -1 300.0 -17.91 -33.49 20.0 -1 300.0 -18.2 -33.26 20.0 -1 300.0 -18.74 -32.82 20.0 -1 300.0 -18.99 -32.6 20.0 -1 300.0 -19.23 -32.39 20.0 -1 300.0 -19.45 -32.17 20.0 -1 300.0 -19.65 -31.96 20.0 -1 300.0 -19.84 -31.75 20.0 -1 300.0 -20.02 -31.54 20.0 -1 300.0 -20.18 -31.34 20.0 -1 300.0 -20.32 -31.13 20.0 -1 300.0 -20.45 -30.93 20.0 -1 300.0 -20.56 -30.73 20.0 -1 300.0 -20.65 -30.54 20.0 -1 300.0 -20.73 -30.34 20.0 -1 300.0 -20.79 -30.15 20.0 -1 300.0 -20.84 -29.96 20.0 -1 300.0 -20.87 -29.78 20.0 -1 300.0 -20.88 -29.59 20.0 -1 300.0 -20.88 -29.41 20.0 -1 300.0 -20.85 -29.24 20.0 -1 300.0 -20.82 -29.06 20.0 -1 300.0 -20.76 -28.89 20.0 -1 300.0 -20.7 -28.72 20.0 -1 300.0 -20.61 -28.56 20.0 -1 300.0 -20.51 -28.4 20.0 -1 300.0 -20.39 -28.24 20.0 -1 300.0 -20.26 -28.08 20.0 -1 300.0 -20.12 -27.93 20.0 -1 300.0 -19.96 -27.78 20.0 -1 300.0 -19.78 -27.64 20.0 -1 300.0 -19.59 -27.5 20.0 -1 300.0 -19.39 -27.36 20.0 -1 300.0 -19.18 -27.23 20.0 -1 300.0 -18.95 -27.09 20.0 -1 300.0 -18.71 -26.97 20.0 -1 300.0 -18.46 -26.84 20.0 -1 300.0 -18.2 -26.73 20.0 -1 300.0 -17.92 -26.61 20.0 -1 300.0 -17.64 -26.5 20.0 -1 300.0 -17.35 -26.39 20.0 -1 300.0 -16.74 -26.18 20.0 -1 300.0 -16.42 -26.09 20.0 -1 300.0 -16.09 -25.99 20.0 -1 300.0 -15.76 -25.9 20.0 -1 300.0 -15.43 -25.82 20.0 -1 300.0 -15.08 -25.74 20.0 -1 300.0 -14.74 -25.66 20.0 -1 300.0 -14.03 -25.52 20.0 -1 300.0 -13.67 -25.45 20.0 -1 300.0 -13.31 -25.39 20.0 -1 300.0 -12.95 -25.33 20.0 -1 300.0 -12.59 -25.28 20.0 -1 300.0 -12.23 -25.23 20.0 -1 300.0 -11.87 -25.18 20.0 -1 300.0 -11.51 -25.14 20.0 -1 300.0 -11.15 -25.1 20.0 -1 300.0 -10.82 -25.07 20.0 -1 300.0 -10.5 -25.04 20.0 -1 300.0 -10.17 -25.02 20.0 -1 300.0 -9.85 -25.0 20.0 -1 300.0 -9.54 -24.98 20.0 -1 300.0 -9.23 -24.96 20.0 -1 300.0 -8.92 -24.95 20.0 -1 300.0 -8.63 -24.94 20.0 -1 300.0 -8.33 -24.94 20.0 -1 300.0 -8.05 -24.94 20.0 -1 300.0 -7.77 -24.94 20.0 -1 300.0 -7.5 -24.95 20.0 -1 300.0 -7.24 -24.95 20.0 -1 300.0 -6.99 -24.97 20.0 -1 300.0 -6.75 -24.98 20.0 -1 300.0 -6.52 -25.0 20.0 -1 300.0 -6.29 -25.02 20.0 -1 300.0 -6.08 -25.05 20.0 -1 300.0 -5.88 -25.07 20.0 -1 300.0 -5.69 -25.11 20.0 -1 300.0 -5.52 -25.14 20.0 -1 300.0 -5.35 -25.18 20.0 -1 300.0 -5.2 -25.22 20.0 -1 300.0 -5.06 -25.26 20.0 -1 300.0 -4.93 -25.31 20.0 -1 300.0 -4.81 -25.36 20.0 -1 300.0 -4.71 -25.41 20.0 -1 300.0 -4.62 -25.46 20.0 -1 300.0 -4.55 -25.52 20.0 -1 300.0 -4.49 -25.58 20.0 -1 300.0 -4.44 -25.64 20.0 -1 300.0 -4.41 -25.71 20.0 -1 300.0 -4.39 -25.77 20.0 -1 300.0 -4.38 -25.84 20.0 -1 300.0 -4.39 -25.92 20.0 -1 300.0 -4.42 -25.99 20.0 -1 300.0 -4.45 -26.07 20.0 -1 300.0 -4.51 -26.15 20.0 -1 300.0 -4.57 -26.23 20.0 -1 300.0 -4.65 -26.32 20.0 -1 300.0 -4.75 -26.41 20.0 -1 300.0 -4.86 -26.5 20.0 -1 300.0 -4.98 -26.59 20.0 -1 300.0 -5.12 -26.68 20.0 -1 300.0 -5.27 -26.78 20.0 -1 300.0 -5.43 -26.87 20.0 -1 300.0 -5.8 -27.07 20.0 -1 300.0 -6.0 -27.18 20.0 -1 300.0 -6.22 -27.28 20.0 -1 300.0 -6.68 -27.5 20.0 -1 300.0 -7.75 -27.94 20.0 -1 300.0 -8.05 -28.06 20.0 -1 300.0 -8.35 -28.17 20.0 -1 300.0 -8.99 -28.41 20.0 -1 300.0 -10.36 -28.89 20.0 -1 300.0 -10.75 -29.02 20.0 -1 300.0 -11.15 -29.16 20.0 -1 300.0 -11.97 -29.43 20.0 -1 300.0 -13.66 -29.97 20.0 -1 300.0 -17.11 -31.07 20.0 -1 300.0 -17.54 -31.2 20.0 -1 300.0 -17.96 -31.34 20.0 -1 300.0 -18.79 -31.6 20.0 -1 300.0 -20.37 -32.13 20.0 -1 300.0 -20.75 -32.26 20.0 -1 300.0 -21.11 -32.38 20.0 -1 300.0 -21.82 -32.63 20.0 -1 300.0 -23.09 -33.11 20.0 -1 300.0 -23.38 -33.23 20.0 -1 300.0 -23.66 -33.34 20.0 -1 300.0 -24.16 -33.56 20.0 -1 300.0 -24.4 -33.67 20.0 -1 300.0 -24.61 -33.77 20.0 -1 300.0 -25.0 -33.97 20.0 -1 300.0 -25.18 -34.07 20.0 -1 300.0 -25.33 -34.17 20.0 -1 300.0 -25.47 -34.26 20.0 -1 300.0 -25.59 -34.35 20.0 -1 300.0 -25.7 -34.44 20.0 -1 300.0 -25.79 -34.52 20.0 -1 300.0 -25.86 -34.6 20.0 -1 300.0 -25.92 -34.68 20.0 -1 300.0 -25.96 -34.75 20.0 -1 300.0 -25.98 -34.83 20.0 -1 300.0 -25.99 -34.9 20.0 -1 300.0 -25.98 -34.96 20.0 -1 300.0 -25.95 -35.02 20.0 -1 300.0 -25.9 -35.08 20.0 -1 300.0 -25.84 -35.14 20.0 -1 300.0 -25.76 -35.19 20.0 -1 300.0 -25.67 -35.24 20.0 -1 300.0 -25.56 -35.28 20.0 -1 300.0 -25.43 -35.33 20.0 -1 300.0 -25.29 -35.36 20.0 -1 300.0 -25.13 -35.4 20.0 -1 300.0 -24.96 -35.43 20.0 -1 300.0 -24.78 -35.45 20.0 -1 300.0 -24.58 -35.48 20.0 -1 300.0 -24.37 -35.5 20.0 -1 300.0 -24.14 -35.51 20.0 -1 300.0 -23.91 -35.52 20.0 -1 300.0 -23.66 -35.53 20.0 -1 300.0 -23.4 -35.53 20.0 -1 300.0 -23.13 -35.53 20.0 -1 300.0 -22.85 -35.53 20.0 -1 300.0 -22.56 -35.52 20.0 -1 300.0 -22.26 -35.51 20.0 -1 300.0 -21.95 -35.49 20.0 -1 300.0 -21.64 -35.47 20.0 -1 300.0 -21.31 -35.45 20.0 -1 300.0 -20.98 -35.42 20.0 -1 300.0 -20.64 -35.38 20.0 -1 300.0 -20.3 -35.35 20.0 -1 300.0 -19.95 -35.31 20.0 -1 300.0 -19.59 -35.26 20.0 -1 300.0 -19.24 -35.21 20.0 -1 300.0 -18.88 -35.16 20.0 -1 300.0 -18.51 -35.1 20.0 -1 300.0 -18.14 -35.04 20.0 -1 300.0 -17.78 -34.97 20.0 -1 300.0 -17.04 -34.83 20.0 -1 300.0 -16.67 -34.75 20.0 -1 300.0 -16.31 -34.67 20.0 -1 300.0 -15.58 -34.49 20.0 -1 300.0 -15.22 -34.4 20.0 -1 300.0 -14.87 -34.3 20.0 -1 300.0 -14.17 -34.09 20.0 -1 300.0 -13.83 -33.98 20.0 -1 300.0 -13.5 -33.86 20.0 -1 300.0 -13.18 -33.74 20.0 -1 300.0 -12.86 -33.62 20.0 -1 300.0 -12.55 -33.49 20.0 -1 300.0 -12.25 -33.36 20.0 -1 300.0 -11.68 -33.08 20.0 -1 300.0 -11.4 -32.94 20.0 -1 300.0 -11.14 -32.79 20.0 -1 300.0 -10.9 -32.64 20.0 -1 300.0 -10.66 -32.48 20.0 -1 300.0 -10.44 -32.33 20.0 -1 300.0 -10.22 -32.16 20.0 -1 300.0 -10.03 -32.0 20.0 -1 300.0 -9.84 -31.83 20.0 -1 300.0 -9.67 -31.65 20.0 -1 300.0 -9.51 -31.48 20.0 -1 300.0 -9.37 -31.3 20.0 -1 300.0 -9.24 -31.11 20.0 -1 300.0 -9.13 -30.92 20.0 -1 300.0 -9.03 -30.73 20.0 -1 300.0 -8.95 -30.54 20.0 -1 300.0 -8.88 -30.34 20.0 -1 300.0 -8.84 -30.14 20.0 -1 300.0 -8.8 -29.93 20.0 -1 300.0 -8.78 -29.73 20.0 -1 300.0 -8.78 -29.52 20.0 -1 300.0 -8.79 -29.3 20.0 -1 300.0 -8.82 -29.09 20.0 -1 300.0 -8.87 -28.87 20.0 -1 300.0 -8.93 -28.64 20.0 -1 300.0 -9.01 -28.43 20.0 -1 300.0 -9.09 -28.22 20.0 -1 300.0 -9.19 -28.01 20.0 -1 300.0 -9.31 -27.79 20.0 -1 300.0 -9.44 -27.57 20.0 -1 300.0 -9.58 -27.35 20.0 -1 300.0 -9.9 -26.9 20.0 -1 300.0 -10.08 -26.68 20.0 -1 300.0 -10.27 -26.45 20.0 -1 300.0 -10.69 -25.98 20.0 -1 300.0 -10.92 -25.75 20.0 -1 300.0 -11.16 -25.51 20.0 -1 300.0 -11.68 -25.03 20.0 -1 300.0 -11.95 -24.79 20.0 -1 300.0 -12.23 -24.55 20.0 -1 300.0 -12.82 -24.06 20.0 -1 300.0 -14.11 -23.07 20.0 -1 300.0 -17.0 -21.04 20.0 -1 300.0 -17.38 -20.78 20.0 -1 300.0 -17.76 -20.52 20.0 -1 300.0 -18.53 -20.01 20.0 -1 300.0 -20.08 -18.98 20.0 -1 300.0 -20.46 -18.72 20.0 -1 300.0 -20.84 -18.46 20.0 -1 300.0 -21.6 -17.95 20.0 -1 300.0 -23.07 -16.93 20.0 -1 300.0 -23.43 -16.67 20.0 -1 300.0 -23.78 -16.42 20.0 -1 300.0 -24.45 -15.91 20.0 -1 300.0 -25.72 -14.91 20.0 -1 300.0 -26.01 -14.66 20.0 -1 300.0 -26.3 -14.42 20.0 -1 300.0 -26.83 -13.93 20.0 -1 300.0 -27.09 -13.69 20.0 -1 300.0 -27.33 -13.45 20.0 -1 300.0 -27.78 -12.97 20.0 -1 300.0 -28.0 -12.71 20.0 -1 300.0 -28.21 -12.46 20.0 -1 300.0 -28.4 -12.21 20.0 -1 300.0 -28.58 -11.96 20.0 -1 300.0 -28.75 -11.71 20.0 -1 300.0 -28.89 -11.47 20.0 -1 300.0 -29.03 -11.23 20.0 -1 300.0 -29.14 -10.99 20.0 -1 300.0 -29.24 -10.75 20.0 -1 300.0 -29.32 -10.51 20.0 -1 300.0 -29.39 -10.28 20.0 -1 300.0 -29.44 -10.05 20.0 -1 300.0 -29.48 -9.82 20.0 -1 300.0 -29.49 -9.6 20.0 -1 300.0 -29.49 -9.38 20.0 -1 300.0 -29.48 -9.16 20.0 -1 300.0 -29.44 -8.95 20.0 -1 300.0 -29.39 -8.73 20.0 -1 300.0 -29.32 -8.53 20.0 -1 300.0 -29.24 -8.32 20.0 -1 300.0 -29.14 -8.12 20.0 -1 300.0 -29.03 -7.92 20.0 -1 300.0 -28.9 -7.72 20.0 -1 300.0 -28.75 -7.53 20.0 -1 300.0 -28.59 -7.34 20.0 -1 300.0 -28.42 -7.16 20.0 -1 300.0 -28.23 -6.97 20.0 -1 300.0 -28.02 -6.8 20.0 -1 300.0 -27.8 -6.62 20.0 -1 300.0 -27.57 -6.45 20.0 -1 300.0 -27.07 -6.12 20.0 -1 300.0 -26.8 -5.96 20.0 -1 300.0 -26.52 -5.8 20.0 -1 300.0 -25.93 -5.5 20.0 -1 300.0 -25.62 -5.36 20.0 -1 300.0 -25.3 -5.22 20.0 -1 300.0 -24.63 -4.95 20.0 -1 300.0 -24.28 -4.82 20.0 -1 300.0 -23.93 -4.69 20.0 -1 300.0 -23.21 -4.46 20.0 -1 300.0 -22.84 -4.34 20.0 -1 300.0 -22.46 -4.24 20.0 -1 300.0 -21.71 -4.03 20.0 -1 300.0 -21.32 -3.94 20.0 -1 300.0 -20.94 -3.84 20.0 -1 300.0 -20.17 -3.67 20.0 -1 300.0 -19.79 -3.59 20.0 -1 300.0 -19.4 -3.52 20.0 -1 300.0 -18.64 -3.38 20.0 -1 300.0 -18.27 -3.31 20.0 -1 300.0 -17.89 -3.25 20.0 -1 300.0 -17.53 -3.2 20.0 -1 300.0 -17.16 -3.15 20.0 -1 300.0 -16.81 -3.1 20.0 -1 300.0 -16.46 -3.06 20.0 -1 300.0 -16.12 -3.02 20.0 -1 300.0 -15.78 -2.98 20.0 -1 300.0 -15.48 -2.95 20.0 -1 300.0 -15.18 -2.92 20.0 -1 300.0 -14.89 -2.9 20.0 -1 300.0 -14.61 -2.88 20.0 -1 300.0 -14.34 -2.87 20.0 -1 300.0 -14.08 -2.85 20.0 -1 300.0 -13.83 -2.85 20.0 -1 300.0 -13.59 -2.84 20.0 -1 300.0 -13.36 -2.84 20.0 -1 300.0 -13.14 -2.84 20.0 -1 300.0 -12.93 -2.84 20.0 -1 300.0 -12.73 -2.85 20.0 -1 300.0 -12.55 -2.86 20.0 -1 300.0 -12.38 -2.87 20.0 -1 300.0 -12.22 -2.89 20.0 -1 300.0 -12.07 -2.91 20.0 -1 300.0 -11.94 -2.93 20.0 -1 300.0 -11.82 -2.96 20.0 -1 300.0 -11.72 -2.98 20.0 -1 300.0 -11.63 -3.01 20.0 -1 300.0 -11.55 -3.05 20.0 -1 300.0 -11.48 -3.08 20.0 -1 300.0 -11.44 -3.12 20.0 -1 300.0 -11.4 -3.17 20.0 -1 300.0 -11.38 -3.21 20.0 -1 300.0 -11.37 -3.26 20.0 -1 300.0 -11.38 -3.31 20.0 -1 300.0 -11.4 -3.36 20.0 -1 300.0 -11.44 -3.42 20.0 -1 300.0 -11.49 -3.47 20.0 -1 300.0 -11.56 -3.53 20.0 -1 300.0 -11.64 -3.59 20.0 -1 300.0 -11.73 -3.66 20.0 -1 300.0 -11.84 -3.72 20.0 -1 300.0 -11.96 -3.79 20.0 -1 300.0 -12.09 -3.86 20.0 -1 300.0 -12.24 -3.94 20.0 -1 300.0 -12.4 -4.01 20.0 -1 300.0 -12.77 -4.17 20.0 -1 300.0 -12.97 -4.25 20.0 -1 300.0 -13.18 -4.33 20.0 -1 300.0 -13.64 -4.5 20.0 -1 300.0 -14.69 -4.85 20.0 -1 300.0 -14.98 -4.94 20.0 -1 300.0 -15.28 -5.04 20.0 -1 300.0 -15.9 -5.22 20.0 -1 300.0 -17.23 -5.62 20.0 -1 300.0 -20.15 -6.43 20.0 -1 300.0 -20.52 -6.53 20.0 -1 300.0 -20.89 -6.63 20.0 -1 300.0 -21.63 -6.84 20.0 -1 300.0 -23.11 -7.24 20.0 -1 300.0 -25.89 -8.03 20.0 -1 300.0 -26.22 -8.12 20.0 -1 300.0 -26.54 -8.22 20.0 -1 300.0 -27.14 -8.4 20.0 -1 300.0 -28.26 -8.76 20.0 -1 300.0 -28.51 -8.85 20.0 -1 300.0 -28.76 -8.93 20.0 -1 300.0 -29.21 -9.1 20.0 -1 300.0 -29.43 -9.18 20.0 -1 300.0 -29.62 -9.25 20.0 -1 300.0 -29.99 -9.4 20.0 -1 300.0 -30.15 -9.48 20.0 -1 300.0 -30.3 -9.55 20.0 -1 300.0 -30.43 -9.62 20.0 -1 300.0 -30.56 -9.68 20.0 -1 300.0 -30.67 -9.75 20.0 -1 300.0 -30.77 -9.81 20.0 -1 300.0 -30.85 -9.87 20.0 -1 300.0 -30.92 -9.93 20.0 -1 300.0 -30.97 -9.99 20.0 -1 300.0 -31.02 -10.04 20.0 -1 300.0 -31.04 -10.09 20.0 -1 300.0 -31.06 -10.14 20.0 -1 300.0 -31.06 -10.19 20.0 -1 300.0 -31.04 -10.23 20.0 -1 300.0 -31.02 -10.27 20.0 -1 300.0 -30.97 -10.31 20.0 -1 300.0 -30.92 -10.35 20.0 -1 300.0 -30.85 -10.38 20.0 -1 300.0 -30.76 -10.41 20.0 -1 300.0 -30.67 -10.44 20.0 -1 300.0 -30.56 -10.47 20.0 -1 300.0 -30.43 -10.49 20.0 -1 300.0 -30.3 -10.51 20.0 -1 300.0 -30.15 -10.53 20.0 -1 300.0 -29.98 -10.54 20.0 -1 300.0 -29.81 -10.55 20.0 -1 300.0 -29.62 -10.56 20.0 -1 300.0 -29.42 -10.56 20.0 -1 300.0 -29.21 -10.56 20.0 -1 300.0 -28.99 -10.56 20.0 -1 300.0 -28.76 -10.56 20.0 -1 300.0 -28.52 -10.55 20.0 -1 300.0 -28.24 -10.54 20.0 -1 300.0 -27.95 -10.52 20.0 -1 300.0 -27.66 -10.5 20.0 -1 300.0 -27.35 -10.48 20.0 -1 300.0 -27.03 -10.45 20.0 -1 300.0 -26.7 -10.42 20.0 -1 300.0 -26.37 -10.38 20.0 -1 300.0 -26.02 -10.34 20.0 -1 300.0 -25.67 -10.3 20.0 -1 300.0 -25.31 -10.25 20.0 -1 300.0 -24.57 -10.15 20.0 -1 300.0 -24.19 -10.09 20.0 -1 300.0 -23.81 -10.02 20.0 -1 300.0 -23.03 -9.88 20.0 -1 300.0 -22.64 -9.81 20.0 -1 300.0 -22.25 -9.73 20.0 -1 300.0 -21.45 -9.56 20.0 -1 300.0 -21.06 -9.46 20.0 -1 300.0 -20.66 -9.37 20.0 -1 300.0 -19.88 -9.16 20.0 -1 300.0 -19.49 -9.05 20.0 -1 300.0 -19.1 -8.94 20.0 -1 300.0 -18.34 -8.7 20.0 -1 300.0 -17.97 -8.58 20.0 -1 300.0 -17.61 -8.45 20.0 -1 300.0 -16.9 -8.18 20.0 -1 300.0 -16.55 -8.04 20.0 -1 300.0 -16.22 -7.89 20.0 -1 300.0 -15.57 -7.59 20.0 -1 300.0 -15.27 -7.44 20.0 -1 300.0 -14.97 -7.28 20.0 -1 300.0 -14.41 -6.95 20.0 -1 300.0 -14.15 -6.77 20.0 -1 300.0 -13.9 -6.6 20.0 -1 300.0 -13.67 -6.42 20.0 -1 300.0 -13.45 -6.24 20.0 -1 300.0 -13.24 -6.05 20.0 -1 300.0 -13.04 -5.86 20.0 -1 300.0 -12.86 -5.67 20.0 -1 300.0 -12.7 -5.47 20.0 -1 300.0 -12.55 -5.27 20.0 -1 300.0 -12.41 -5.07 20.0 -1 300.0 -12.29 -4.86 20.0 -1 300.0 -12.19 -4.65 20.0 -1 300.0 -12.1 -4.44 20.0 -1 300.0 -12.03 -4.22 20.0 -1 300.0 -11.97 -4.0 20.0 -1 300.0 -11.94 -3.78 20.0 -1 300.0 -11.91 -3.56 20.0 -1 300.0 -11.9 -3.33 20.0 -1 300.0 -11.91 -3.1 20.0 -1 300.0 -11.94 -2.86 20.0 -1 300.0 -11.98 -2.63 20.0 -1 300.0 -12.04 -2.39 20.0 -1 300.0 -12.11 -2.14 20.0 -1 300.0 -12.2 -1.9 20.0 -1 300.0 -12.3 -1.67 20.0 -1 300.0 -12.41 -1.44 20.0 -1 300.0 -12.54 -1.2 20.0 -1 300.0 -12.68 -0.96 20.0 -1 300.0 -12.83 -0.73 20.0 -1 300.0 -12.99 -0.49 20.0 -1 300.0 -13.36 0.0 20.0 -1 300.0 -13.55 0.25 20.0 -1 300.0 -13.77 0.49 20.0 -1 300.0 -14.23 0.99 20.0 -1 300.0 -15.27 2.01 20.0 -1 300.0 -15.55 2.27 20.0 -1 300.0 -15.84 2.52 20.0 -1 300.0 -16.45 3.04 20.0 -1 300.0 -17.75 4.09 20.0 -1 300.0 -20.57 6.22 20.0 -1 300.0 -20.93 6.49 20.0 -1 300.0 -21.3 6.75 20.0 -1 300.0 -22.02 7.29 20.0 -1 300.0 -23.46 8.35 20.0 -1 300.0 -23.81 8.62 20.0 -1 300.0 -24.15 8.88 20.0 -1 300.0 -24.84 9.41 20.0 -1 300.0 -26.13 10.46 20.0 -1 300.0 -26.43 10.72 20.0 -1 300.0 -26.73 10.97 20.0 -1 300.0 -27.3 11.49 20.0 -1 300.0 -27.57 11.74 20.0 -1 300.0 -27.83 12.0 20.0 -1 300.0 -28.32 12.5 20.0 -1 300.0 -28.55 12.75 20.0 -1 300.0 -28.77 13.0 20.0 -1 300.0 -28.98 13.24 20.0 -1 300.0 -29.17 13.49 20.0 -1 300.0 -29.36 13.73 20.0 -1 300.0 -29.53 13.97 20.0 -1 300.0 -29.69 14.21 20.0 -1 300.0 -29.83 14.45 20.0 -1 300.0 -29.97 14.7 20.0 -1 300.0 -30.1 14.95 20.0 -1 300.0 -30.21 15.2 20.0 -1 300.0 -30.31 15.45 20.0 -1 300.0 -30.39 15.69 20.0 -1 300.0 -30.45 15.94 20.0 -1 300.0 -30.49 16.18 20.0 -1 300.0 -30.52 16.41 20.0 -1 300.0 -30.53 16.64 20.0 -1 300.0 -30.53 16.87 20.0 -1 300.0 -30.5 17.1 20.0 -1 300.0 -30.47 17.33 20.0 -1 300.0 -30.41 17.55 20.0 -1 300.0 -30.34 17.77 20.0 -1 300.0 -30.25 17.98 20.0 -1 300.0 -30.14 18.19 20.0 -1 300.0 -30.02 18.4 20.0 -1 300.0 -29.88 18.6 20.0 -1 300.0 -29.73 18.8 20.0 -1 300.0 -29.56 19.0 20.0 -1 300.0 -29.38 19.2 20.0 -1 300.0 -29.18 19.39 20.0 -1 300.0 -28.96 19.57 20.0 -1 300.0 -28.73 19.76 20.0 -1 300.0 -28.49 19.93 20.0 -1 300.0 -28.23 20.11 20.0 -1 300.0 -27.96 20.28 20.0 -1 300.0 -27.68 20.45 20.0 -1 300.0 -27.39 20.61 20.0 -1 300.0 -27.08 20.77 20.0 -1 300.0 -26.43 21.08 20.0 -1 300.0 -26.1 21.23 20.0 -1 300.0 -25.75 21.37 20.0 -1 300.0 -25.02 21.65 20.0 -1 300.0 -24.65 21.78 20.0 -1 300.0 -24.27 21.91 20.0 -1 300.0 -23.49 22.15 20.0 -1 300.0 -23.09 22.26 20.0 -1 300.0 -22.69 22.38 20.0 -1 300.0 -21.88 22.58 20.0 -1 300.0 -21.47 22.68 20.0 -1 300.0 -21.05 22.77 20.0 -1 300.0 -20.22 22.95 20.0 -1 300.0 -19.81 23.03 20.0 -1 300.0 -19.4 23.11 20.0 -1 300.0 -18.57 23.25 20.0 -1 300.0 -18.17 23.31 20.0 -1 300.0 -17.77 23.37 20.0 -1 300.0 -16.98 23.48 20.0 -1 300.0 -16.59 23.52 20.0 -1 300.0 -16.21 23.57 20.0 -1 300.0 -15.84 23.61 20.0 -1 300.0 -15.47 23.64 20.0 -1 300.0 -15.12 23.67 20.0 -1 300.0 -14.77 23.7 20.0 -1 300.0 -14.43 23.72 20.0 -1 300.0 -14.1 23.74 20.0 -1 300.0 -13.79 23.75 20.0 -1 300.0 -13.49 23.76 20.0 -1 300.0 -13.2 23.77 20.0 -1 300.0 -12.92 23.77 20.0 -1 300.0 -12.66 23.77 20.0 -1 300.0 -12.4 23.77 20.0 -1 300.0 -12.16 23.76 20.0 -1 300.0 -11.94 23.75 20.0 -1 300.0 -11.72 23.73 20.0 -1 300.0 -11.53 23.71 20.0 -1 300.0 -11.34 23.69 20.0 -1 300.0 -11.17 23.66 20.0 -1 300.0 -11.02 23.63 20.0 -1 300.0 -10.88 23.6 20.0 -1 300.0 -10.75 23.56 20.0 -1 300.0 -10.64 23.52 20.0 -1 300.0 -10.55 23.48 20.0 -1 300.0 -10.47 23.43 20.0 -1 300.0 -10.41 23.39 20.0 -1 300.0 -10.37 23.33 20.0 -1 300.0 -10.34 23.28 20.0 -1 300.0 -10.32 23.22 20.0 -1 300.0 -10.33 23.16 20.0 -1 300.0 -10.34 23.1 20.0 -1 300.0 -10.38 23.03 20.0 -1 300.0 -10.43 22.96 20.0 -1 300.0 -10.5 22.89 20.0 -1 300.0 -10.58 22.82 20.0 -1 300.0 -10.68 22.74 20.0 -1 300.0 -10.79 22.66 20.0 -1 300.0 -10.92 22.58 20.0 -1 300.0 -11.06 22.49 20.0 -1 300.0 -11.22 22.41 20.0 -1 300.0 -11.39 22.32 20.0 -1 300.0 -11.77 22.14 20.0 -1 300.0 -11.98 22.04 20.0 -1 300.0 -12.21 21.95 20.0 -1 300.0 -12.7 21.75 20.0 -1 300.0 -12.96 21.64 20.0 -1 300.0 -13.23 21.54 20.0 -1 300.0 -13.81 21.33 20.0 -1 300.0 -15.07 20.89 20.0 -1 300.0 -15.4 20.78 20.0 -1 300.0 -15.74 20.67 20.0 -1 300.0 -16.44 20.44 20.0 -1 300.0 -17.9 19.98 20.0 -1 300.0 -20.87 19.04 20.0 -1 300.0 -21.21 18.93 20.0 -1 300.0 -21.55 18.82 20.0 -1 300.0 -22.21 18.6 20.0 -1 300.0 -23.47 18.17 20.0 -1 300.0 -23.77 18.07 20.0 -1 300.0 -24.07 17.96 20.0 -1 300.0 -24.63 17.76 20.0 -1 300.0 -25.65 17.36 20.0 -1 300.0 -25.88 17.27 20.0 -1 300.0 -26.1 17.17 20.0 -1 300.0 -26.51 16.98 20.0 -1 300.0 -26.7 16.89 20.0 -1 300.0 -26.87 16.8 20.0 -1 300.0 -27.18 16.63 20.0 -1 300.0 -27.32 16.55 20.0 -1 300.0 -27.45 16.46 20.0 -1 300.0 -27.56 16.39 20.0 -1 300.0 -27.66 16.31 20.0 -1 300.0 -27.74 16.23 20.0 -1 300.0 -27.82 16.16 20.0 -1 300.0 -27.87 16.08 20.0 -1 300.0 -27.92 16.01 20.0 -1 300.0 -27.95 15.95 20.0 -1 300.0 -27.96 15.88 20.0 -1 300.0 -27.96 15.82 20.0 -1 300.0 -27.95 15.76 20.0 -1 300.0 -27.93 15.7 20.0 -1 300.0 -27.89 15.64 20.0 -1 300.0 -27.83 15.59 20.0 -1 300.0 -27.76 15.54 20.0 -1 300.0 -27.68 15.49 20.0 -1 300.0 -27.59 15.44 20.0 -1 300.0 -27.48 15.4 20.0 -1 300.0 -27.35 15.36 20.0 -1 300.0 -27.21 15.32 20.0 -1 300.0 -27.06 15.29 20.0 -1 300.0 -26.9 15.25 20.0 -1 300.0 -26.72 15.22 20.0 -1 300.0 -26.53 15.2 20.0 -1 300.0 -26.33 15.17 20.0 -1 300.0 -26.12 15.15 20.0 -1 300.0 -25.89 15.14 20.0 -1 300.0 -25.65 15.12 20.0 -1 300.0 -25.41 15.11 20.0 -1 300.0 -25.14 15.1 20.0 -1 300.0 -24.88 15.1 20.0 -1 300.0 -24.59 15.1 20.0 -1 300.0 -24.3 15.1 20.0 -1 300.0 -24.0 15.1 20.0 -1 300.0 -23.69 15.11 20.0 -1 300.0 -23.38 15.12 20.0 -1 300.0 -23.05 15.13 20.0 -1 300.0 -22.72 15.15 20.0 -1 300.0 -22.38 15.17 20.0 -1 300.0 -22.0 15.2 20.0 -1 300.0 -21.61 15.23 20.0 -1 300.0 -21.22 15.26 20.0 -1 300.0 -20.82 15.3 20.0 -1 300.0 -20.42 15.34 20.0 -1 300.0 -20.01 15.38 20.0 -1 300.0 -19.18 15.49 20.0 -1 300.0 -18.76 15.55 20.0 -1 300.0 -18.34 15.61 20.0 -1 300.0 -17.49 15.74 20.0 -1 300.0 -17.07 15.82 20.0 -1 300.0 -16.64 15.9 20.0 -1 300.0 -15.8 16.06 20.0 -1 300.0 -15.38 16.15 20.0 -1 300.0 -14.97 16.25 20.0 -1 300.0 -14.15 16.45 20.0 -1 300.0 -13.75 16.55 20.0 -1 300.0 -13.35 16.66 20.0 -1 300.0 -12.58 16.89 20.0 -1 300.0 -12.21 17.02 20.0 -1 300.0 -11.84 17.14 20.0 -1 300.0 -11.14 17.41 20.0 -1 300.0 -10.8 17.54 20.0 -1 300.0 -10.48 17.68 20.0 -1 300.0 -9.86 17.98 20.0 -1 300.0 -9.57 18.13 20.0 -1 300.0 -9.29 18.28 20.0 -1 300.0 -9.02 18.44 20.0 -1 300.0 -8.77 18.6 20.0 -1 300.0 -8.53 18.77 20.0 -1 300.0 -8.3 18.94 20.0 -1 300.0 -8.09 19.11 20.0 -1 300.0 -7.9 19.29 20.0 -1 300.0 -7.72 19.47 20.0 -1 300.0 -7.55 19.65 20.0 -1 300.0 -7.4 19.84 20.0 -1 300.0 -7.27 20.03 20.0 -1 300.0 -7.15 20.22 20.0 -1 300.0 -7.05 20.42 20.0 -1 300.0 -6.96 20.62 20.0 -1 300.0 -6.89 20.82 20.0 -1 300.0 -6.84 21.02 20.0 -1 300.0 -6.81 21.23 20.0 -1 300.0 -6.79 21.44 20.0 -1 300.0 -6.78 21.65 20.0 -1 300.0 -6.8 21.87 20.0 -1 300.0 -6.83 22.09 20.0 -1 300.0 -6.87 22.31 20.0 -1 300.0 -6.93 22.53 20.0 -1 300.0 -7.01 22.76 20.0 -1 300.0 -7.1 22.99 20.0 -1 300.0 -7.21 23.22 20.0 -1 300.0 -7.34 23.45 20.0 -1 300.0 -7.48 23.68 20.0 -1 300.0 -7.63 23.92 20.0 -1 300.0 -7.98 24.4 20.0 -1 300.0 -8.16 24.63 20.0 -1 300.0 -8.36 24.86 20.0 -1 300.0 -8.78 25.32 20.0 -1 300.0 -9.75 26.25 20.0 -1 300.0 -10.02 26.49 20.0 -1 300.0 -10.29 26.73 20.0 -1 300.0 -10.86 27.2 20.0 -1 300.0 -12.09 28.17 20.0 -1 300.0 -12.41 28.41 20.0 -1 300.0 -12.73 28.66 20.0 -1 300.0 -13.39 29.14 20.0 -1 300.0 -14.75 30.12 20.0 -1 300.0 -17.46 32.08 20.0 -1 300.0 -17.79 32.32 20.0 -1 300.0 -18.11 32.56 20.0 -1 300.0 -18.74 33.04 20.0 -1 300.0 -19.93 33.99 20.0 -1 300.0 -20.21 34.23 20.0 -1 300.0 -20.48 34.46 20.0 -1 300.0 -21.0 34.93 20.0 -1 300.0 -21.24 35.16 20.0 -1 300.0 -21.47 35.39 20.0 -1 300.0 -21.91 35.84 20.0 -1 300.0 -22.11 36.06 20.0 -1 300.0 -22.3 36.28 20.0 -1 300.0 -22.48 36.51 20.0 -1 300.0 -22.65 36.72 20.0 -1 300.0 -22.8 36.94 20.0 -1 300.0 -22.94 37.16 20.0 -1 300.0 -23.07 37.37 20.0 -1 300.0 -23.18 37.58 20.0 -1 300.0 -23.29 37.79 20.0 -1 300.0 -23.37 37.99 20.0 -1 300.0 -23.45 38.2 20.0 -1 300.0 -23.51 38.4 20.0 -1 300.0 -23.55 38.6 20.0 -1 300.0 -23.59 38.8 20.0 -1 300.0 -23.6 38.99 20.0 -1 300.0 -23.61 39.18 20.0 -1 300.0 -23.59 39.39 20.0 -1 300.0 -23.56 39.59 20.0 -1 300.0 -23.52 39.79 20.0 -1 300.0 -23.45 39.98 20.0 -1 300.0 -23.37 40.17 20.0 -1 300.0 -23.27 40.36 20.0 -1 300.0 -23.16 40.55 20.0 -1 300.0 -23.03 40.73 20.0 -1 300.0 -22.88 40.91 20.0 -1 300.0 -22.72 41.09 20.0 -1 300.0 -22.54 41.26 20.0 -1 300.0 -22.34 41.42 20.0 -1 300.0 -22.13 41.59 20.0 -1 300.0 -21.91 41.75 20.0 -1 300.0 -21.67 41.91 20.0 -1 300.0 -21.41 42.06 20.0 -1 300.0 -21.14 42.21 20.0 -1 300.0 -20.86 42.35 20.0 -1 300.0 -20.57 42.49 20.0 -1 300.0 -20.26 42.63 20.0 -1 300.0 -19.94 42.76 20.0 -1 300.0 -19.6 42.89 20.0 -1 300.0 -18.91 43.14 20.0 -1 300.0 -18.54 43.25 20.0 -1 300.0 -18.17 43.37 20.0 -1 300.0 -17.79 43.47 20.0 -1 300.0 -17.39 43.58 20.0 -1 300.0 -17.0 43.68 20.0 -1 300.0 -16.59 43.77 20.0 -1 300.0 -15.76 43.95 20.0 -1 300.0 -15.34 44.03 20.0 -1 300.0 -14.91 44.11 20.0 -1 300.0 -14.48 44.18 20.0 -1 300.0 -14.04 44.25 20.0 -1 300.0 -13.61 44.32 20.0 -1 300.0 -13.17 44.38 20.0 -1 300.0 -12.29 44.49 20.0 -1 300.0 -11.85 44.53 20.0 -1 300.0 -11.41 44.58 20.0 -1 300.0 -10.98 44.62 20.0 -1 300.0 -10.55 44.65 20.0 -1 300.0 -10.12 44.68 20.0 -1 300.0 -9.69 44.7 20.0 -1 300.0 -9.27 44.73 20.0 -1 300.0 -8.86 44.74 20.0 -1 300.0 -8.45 44.76 20.0 -1 300.0 -8.04 44.76 20.0 -1 300.0 -7.65 44.77 20.0 -1 300.0 -7.26 44.77 20.0 -1 300.0 -6.88 44.76 20.0 -1 300.0 -6.52 44.75 20.0 -1 300.0 -6.16 44.74 20.0 -1 300.0 -5.81 44.72 20.0 -1 300.0 -5.47 44.7 20.0 -1 300.0 -5.14 44.68 20.0 -1 300.0 -4.83 44.65 20.0 -1 300.0 -4.53 44.61 20.0 -1 300.0 -4.24 44.58 20.0 -1 300.0 -3.96 44.53 20.0 -1 300.0 -3.7 44.49 20.0 -1 300.0 -3.46 44.44 20.0 -1 300.0 -3.23 44.39 20.0 -1 300.0 -3.01 44.33 20.0 -1 300.0 -2.81 44.27 20.0 -1 300.0 -2.63 44.21 20.0 -1 300.0 -2.46 44.14 20.0 -1 300.0 -2.31 44.07 20.0 -1 300.0 -2.17 44.0 20.0 -1 300.0 -2.04 43.92 20.0 -1 300.0 -1.94 43.84 20.0 -1 300.0 -1.85 43.76 20.0 -1 300.0 -1.77 43.67 20.0 -1 300.0 -1.72 43.59 20.0 -1 300.0 -1.67 43.49 20.0 -1 300.0 -1.65 43.4 20.0 -1 300.0 -1.64 43.3 20.0 -1 300.0 -1.65 43.2 20.0 -1 300.0 -1.67 43.09 20.0 -1 300.0 -1.71 42.99 20.0 -1 300.0 -1.76 42.88 20.0 -1 300.0 -1.83 42.77 20.0 -1 300.0 -1.92 42.65 20.0 -1 300.0 -2.02 42.53 20.0 -1 300.0 -2.13 42.41 20.0 -1 300.0 -2.27 42.29 20.0 -1 300.0 -2.41 42.17 20.0 -1 300.0 -2.57 42.04 20.0 -1 300.0 -2.93 41.78 20.0 -1 300.0 -3.13 41.65 20.0 -1 300.0 -3.35 41.51 20.0 -1 300.0 -3.81 41.23 20.0 -1 300.0 -4.06 41.09 20.0 -1 300.0 -4.32 40.95 20.0 -1 300.0 -4.87 40.66 20.0 -1 300.0 -6.08 40.07 20.0 -1 300.0 -8.79 38.84 20.0 -1 300.0 -9.14 38.68 20.0 -1 300.0 -9.49 38.53 20.0 -1 300.0 -10.21 38.21 20.0 -1 300.0 -11.61 37.58 20.0 -1 300.0 -14.21 36.34 20.0 -1 300.0 -14.49 36.2 20.0 -1 300.0 -14.76 36.06 20.0 -1 300.0 -15.26 35.78 20.0 -1 300.0 -15.5 35.65 20.0 -1 300.0 -15.73 35.51 20.0 -1 300.0 -16.16 35.24 20.0 -1 300.0 -16.36 35.11 20.0 -1 300.0 -16.55 34.98 20.0 -1 300.0 -16.73 34.84 20.0 -1 300.0 -16.89 34.72 20.0 -1 300.0 -17.05 34.59 20.0 -1 300.0 -17.19 34.47 20.0 -1 300.0 -17.32 34.34 20.0 -1 300.0 -17.43 34.22 20.0 -1 300.0 -17.54 34.1 20.0 -1 300.0 -17.63 33.98 20.0 -1 300.0 -17.7 33.87 20.0 -1 300.0 -17.76 33.75 20.0 -1 300.0 -17.81 33.64 20.0 -1 300.0 -17.85 33.53 20.0 -1 300.0 -17.87 33.42 20.0 -1 300.0 -17.88 33.31 20.0 -1 300.0 -17.87 33.21 20.0 -1 300.0 -17.84 33.11 20.0 -1 300.0 -17.81 33.01 20.0 -1 300.0 -17.76 32.91 20.0 -1 300.0 -17.7 32.82 20.0 -1 300.0 -17.62 32.73 20.0 -1 300.0 -17.52 32.64 20.0 -1 300.0 -17.42 32.55 20.0 -1 300.0 -17.3 32.47 20.0 -1 300.0 -17.16 32.39 20.0 -1 300.0 -17.01 32.31 20.0 -1 300.0 -16.85 32.23 20.0 -1 300.0 -16.68 32.16 20.0 -1 300.0 -16.49 32.09 20.0 -1 300.0 -16.29 32.02 20.0 -1 300.0 -16.07 31.96 20.0 -1 300.0 -15.85 31.89 20.0 -1 300.0 -15.61 31.84 20.0 -1 300.0 -15.36 31.78 20.0 -1 300.0 -15.1 31.73 20.0 -1 300.0 -14.83 31.68 20.0 -1 300.0 -14.54 31.63 20.0 -1 300.0 -14.25 31.59 20.0 -1 300.0 -13.95 31.55 20.0 -1 300.0 -13.63 31.51 20.0 -1 300.0 -13.31 31.48 20.0 -1 300.0 -12.98 31.44 20.0 -1 300.0 -12.64 31.42 20.0 -1 300.0 -12.29 31.39 20.0 -1 300.0 -11.93 31.37 20.0 -1 300.0 -11.57 31.35 20.0 -1 300.0 -11.2 31.34 20.0 -1 300.0 -10.82 31.33 20.0 -1 300.0 -10.44 31.32 20.0 -1 300.0 -10.06 31.31 20.0 -1 300.0 -9.67 31.31 20.0 -1 300.0 -9.27 31.32 20.0 -1 300.0 -8.87 31.32 20.0 -1 300.0 -8.47 31.33 20.0 -1 300.0 -8.07 31.34 20.0 -1 300.0 -7.63 31.36 20.0 -1 300.0 -7.19 31.38 20.0 -1 300.0 -6.75 31.4 20.0 -1 300.0 -6.3 31.43 20.0 -1 300.0 -5.86 31.47 20.0 -1 300.0 -5.42 31.5 20.0 -1 300.0 -4.98 31.54 20.0 -1 300.0 -4.55 31.59 20.0 -1 300.0 -4.11 31.64 20.0 -1 300.0 -3.68 31.69 20.0 -1 300.0 -3.26 31.75 20.0 -1 300.0 -2.84 31.81 20.0 -1 300.0 -2.43 31.87 20.0 -1 300.0 -2.02 31.94 20.0 -1 300.0 -1.23 32.09 20.0 -1 300.0 -0.85 32.17 20.0 -1 300.0 -0.47 32.26 20.0 -1 300.0 -0.11 32.34 20.0 -1 300.0 0.24 32.43 20.0 -1 300.0 0.59 32.53 20.0 -1 300.0 0.92 32.63 20.0 -1 300.0 1.55 32.84 20.0 -1 300.0 1.84 32.95 20.0 -1 300.0 2.12 33.06 20.0 -1 300.0 2.39 33.18 20.0 -1 300.0 2.65 33.3 20.0 -1 300.0 2.89 33.42 20.0 -1 300.0 3.11 33.55 20.0 -1 300.0 3.32 33.68 20.0 -1 300.0 3.52 33.81 20.0 -1 300.0 3.7 33.95 20.0 -1 300.0 3.86 34.09 20.0 -1 300.0 4.01 34.24 20.0 -1 300.0 4.14 34.38 20.0 -1 300.0 4.26 34.53 20.0 -1 300.0 4.36 34.69 20.0 -1 300.0 4.44 34.84 20.0 -1 300.0 4.5 35.0 20.0 -1 300.0 4.55 35.16 20.0 -1 300.0 4.59 35.33 20.0 -1 300.0 4.6 35.49 20.0 -1 300.0 4.6 35.66 20.0 -1 300.0 4.58 35.83 20.0 -1 300.0 4.55 36.01 20.0 -1 300.0 4.5 36.19 20.0 -1 300.0 4.43 36.36 20.0 -1 300.0 4.35 36.55 20.0 -1 300.0 4.25 36.73 20.0 -1 300.0 4.14 36.92 20.0 -1 300.0 4.01 37.1 20.0 -1 300.0 3.87 37.29 20.0 -1 300.0 3.71 37.49 20.0 -1 300.0 3.36 37.88 20.0 -1 300.0 3.16 38.07 20.0 -1 300.0 2.94 38.27 20.0 -1 300.0 2.48 38.67 20.0 -1 300.0 1.43 39.5 20.0 -1 300.0 1.16 39.69 20.0 -1 300.0 0.88 39.88 20.0 -1 300.0 0.3 40.28 20.0 -1 300.0 -0.93 41.07 20.0 -1 300.0 -3.54 42.67 20.0 -1 300.0 -3.87 42.87 20.0 -1 300.0 -4.2 43.07 20.0 -1 300.0 -4.86 43.46 20.0 -1 300.0 -6.14 44.25 20.0 -1 300.0 -6.44 44.45 20.0 -1 300.0 -6.75 44.64 20.0 -1 300.0 -7.34 45.03 20.0 -1 300.0 -8.43 45.79 20.0 -1 300.0 -8.68 45.98 20.0 -1 300.0 -8.93 46.16 20.0 -1 300.0 -9.38 46.53 20.0 -1 300.0 -9.6 46.71 20.0 -1 300.0 -9.8 46.89 20.0 -1 300.0 -10.17 47.24 20.0 -1 300.0 -10.34 47.41 20.0 -1 300.0 -10.49 47.59 20.0 -1 300.0 -10.64 47.76 20.0 -1 300.0 -10.77 47.92 20.0 -1 300.0 -10.88 48.09 20.0 -1 300.0 -10.99 48.26 20.0 -1 300.0 -11.08 48.42 20.0 -1 300.0 -11.15 48.58 20.0 -1 300.0 -11.22 48.73 20.0 -1 300.0 -11.27 48.89 20.0 -1 300.0 -11.3 49.04 20.0 -1 300.0 -11.32 49.19 20.0 -1 300.0 -11.33 49.34 20.0 -1 300.0 -11.32 49.48 20.0 -1 300.0 -11.3 49.62 20.0 -1 300.0 -11.26 49.76 20.0 -1 300.0 -11.21 49.9 20.0 -1 300.0 -11.14 50.03 20.0 -1 300.0 -11.06 50.16 20.0 -1 300.0 -10.96 50.29 20.0 -1 300.0 -10.85 50.42 20.0 -1 300.0 -10.73 50.54 20.0 -1 300.0 -10.59 50.66 20.0 -1 300.0 -10.44 50.77 20.0 -1 300.0 -10.28 50.89 20.0 -1 300.0 -10.1 50.99 20.0 -1 300.0 -9.91 51.1 20.0 -1 300.0 -9.71 51.2 20.0 -1 300.0 -9.5 51.3 20.0 -1 300.0 -9.27 51.39 20.0 -1 300.0 -8.78 51.57 20.0 -1 300.0 -8.52 51.66 20.0 -1 300.0 -8.25 51.74 20.0 -1 300.0 -7.97 51.82 20.0 -1 300.0 -7.67 51.9 20.0 -1 300.0 -7.37 51.97 20.0 -1 300.0 -7.06 52.04 20.0 -1 300.0 -6.41 52.16 20.0 -1 300.0 -6.07 52.22 20.0 -1 300.0 -5.72 52.28 20.0 -1 300.0 -5.37 52.33 20.0 -1 300.0 -5.01 52.38 20.0 -1 300.0 -4.64 52.42 20.0 -1 300.0 -4.26 52.46 20.0 -1 300.0 -3.89 52.5 20.0 -1 300.0 -3.5 52.53 20.0 -1 300.0 -3.11 52.56 20.0 -1 300.0 -2.72 52.59 20.0 -1 300.0 -2.32 52.61 20.0 -1 300.0 -1.92 52.63 20.0 -1 300.0 -1.52 52.65 20.0 -1 300.0 -1.12 52.66 20.0 -1 300.0 -0.71 52.67 20.0 -1 300.0 -0.3 52.67 20.0 -1 300.0 0.1 52.67 20.0 -1 300.0 0.51 52.67 20.0 -1 300.0 0.92 52.66 20.0 -1 300.0 1.32 52.65 20.0 -1 300.0 1.72 52.64 20.0 -1 300.0 2.13 52.62 20.0 -1 300.0 2.52 52.6 20.0 -1 300.0 2.92 52.58 20.0 -1 300.0 3.31 52.55 20.0 -1 300.0 3.7 52.52 20.0 -1 300.0 4.08 52.48 20.0 -1 300.0 4.46 52.44 20.0 -1 300.0 4.83 52.4 20.0 -1 300.0 5.19 52.35 20.0 -1 300.0 5.55 52.3 20.0 -1 300.0 5.9 52.25 20.0 -1 300.0 6.24 52.19 20.0 -1 300.0 6.58 52.13 20.0 -1 300.0 6.9 52.07 20.0 -1 300.0 7.22 52.0 20.0 -1 300.0 7.53 51.93 20.0 -1 300.0 7.82 51.86 20.0 -1 300.0 8.39 51.7 20.0 -1 300.0 8.66 51.62 20.0 -1 300.0 8.91 51.53 20.0 -1 300.0 9.15 51.44 20.0 -1 300.0 9.39 51.35 20.0 -1 300.0 9.61 51.25 20.0 -1 300.0 9.81 51.15 20.0 -1 300.0 10.01 51.05 20.0 -1 300.0 10.19 50.94 20.0 -1 300.0 10.37 50.82 20.0 -1 300.0 10.54 50.7 20.0 -1 300.0 10.69 50.57 20.0 -1 300.0 10.83 50.44 20.0 -1 300.0 10.95 50.31 20.0 -1 300.0 11.05 50.17 20.0 -1 300.0 11.14 50.04 20.0 -1 300.0 11.21 49.89 20.0 -1 300.0 11.26 49.75 20.0 -1 300.0 11.3 49.6 20.0 -1 300.0 11.32 49.45 20.0 -1 300.0 11.33 49.29 20.0 -1 300.0 11.32 49.14 20.0 -1 300.0 11.29 48.98 20.0 -1 300.0 11.24 48.81 20.0 -1 300.0 11.19 48.65 20.0 -1 300.0 11.11 48.48 20.0 -1 300.0 11.02 48.31 20.0 -1 300.0 10.91 48.13 20.0 -1 300.0 10.79 47.96 20.0 -1 300.0 10.65 47.78 20.0 -1 300.0 10.5 47.6 20.0 -1 300.0 10.16 47.23 20.0 -1 300.0 9.97 47.04 20.0 -1 300.0 9.76 46.85 20.0 -1 300.0 9.31 46.47 20.0 -1 300.0 8.28 45.68 20.0 -1 300.0 8.0 45.48 20.0 -1 300.0 7.71 45.28 20.0 -1 300.0 7.1 44.87 20.0 -1 300.0 5.8 44.04 20.0 -1 300.0 3.01 42.35 20.0 -1 300.0 2.66 42.14 20.0 -1 300.0 2.31 41.92 20.0 -1 300.0 1.62 41.5 20.0 -1 300.0 0.27 40.65 20.0 -1 300.0 -0.05 40.44 20.0 -1 300.0 -0.36 40.23 20.0 -1 300.0 -0.97 39.82 20.0 -1 300.0 -2.09 38.99 20.0 -1 300.0 -2.32 38.8 20.0 -1 300.0 -2.55 38.62 20.0 -1 300.0 -2.97 38.24 20.0 -1 300.0 -3.17 38.06 20.0 -1 300.0 -3.35 37.88 20.0 -1 300.0 -3.69 37.52 20.0 -1 300.0 -3.84 37.34 20.0 -1 300.0 -3.97 37.16 20.0 -1 300.0 -4.1 36.99 20.0 -1 300.0 -4.21 36.81 20.0 -1 300.0 -4.3 36.64 20.0 -1 300.0 -4.39 36.47 20.0 -1 300.0 -4.46 36.3 20.0 -1 300.0 -4.51 36.14 20.0 -1 300.0 -4.56 35.98 20.0 -1 300.0 -4.59 35.81 20.0 -1 300.0 -4.6 35.66 20.0 -1 300.0 -4.6 35.5 20.0 -1 300.0 -4.59 35.34 20.0 -1 300.0 -4.56 35.19 20.0 -1 300.0 -4.52 35.04 20.0 -1 300.0 -4.46 34.89 20.0 -1 300.0 -4.39 34.75 20.0 -1 300.0 -4.31 34.6 20.0 -1 300.0 -4.21 34.47 20.0 -1 300.0 -4.09 34.33 20.0 -1 300.0 -3.97 34.19 20.0 -1 300.0 -3.83 34.06 20.0 -1 300.0 -3.67 33.93 20.0 -1 300.0 -3.5 33.8 20.0 -1 300.0 -3.32 33.68 20.0 -1 300.0 -3.13 33.56 20.0 -1 300.0 -2.92 33.44 20.0 -1 300.0 -2.7 33.32 20.0 -1 300.0 -2.47 33.21 20.0 -1 300.0 -2.22 33.1 20.0 -1 300.0 -1.7 32.89 20.0 -1 300.0 -1.42 32.79 20.0 -1 300.0 -1.13 32.7 20.0 -1 300.0 -0.83 32.6 20.0 -1 300.0 -0.52 32.51 20.0 -1 300.0 -0.2 32.42 20.0 -1 300.0 0.13 32.34 20.0 -1 300.0 0.81 32.18 20.0 -1 300.0 1.17 32.1 20.0 -1 300.0 1.53 32.03 20.0 -1 300.0 1.9 31.96 20.0 -1 300.0 2.27 31.9 20.0 -1 300.0 2.65 31.84 20.0 -1 300.0 3.04 31.78 20.0 -1 300.0 3.82 31.67 20.0 -1 300.0 4.22 31.63 20.0 -1 300.0 4.62 31.58 20.0 -1 300.0 5.03 31.54 20.0 -1 300.0 5.43 31.5 20.0 -1 300.0 5.84 31.47 20.0 -1 300.0 6.25 31.44 20.0 -1 300.0 6.66 31.41 20.0 -1 300.0 7.07 31.39 20.0 -1 300.0 7.51 31.36 20.0 -1 300.0 7.96 31.34 20.0 -1 300.0 8.4 31.33 20.0 -1 300.0 8.84 31.32 20.0 -1 300.0 9.27 31.32 20.0 -1 300.0 9.7 31.31 20.0 -1 300.0 10.12 31.32 20.0 -1 300.0 10.54 31.32 20.0 -1 300.0 10.96 31.33 20.0 -1 300.0 11.36 31.34 20.0 -1 300.0 11.76 31.36 20.0 -1 300.0 12.15 31.38 20.0 -1 300.0 12.53 31.41 20.0 -1 300.0 12.91 31.44 20.0 -1 300.0 13.27 31.47 20.0 -1 300.0 13.62 31.51 20.0 -1 300.0 13.96 31.55 20.0 -1 300.0 14.29 31.59 20.0 -1 300.0 14.61 31.64 20.0 -1 300.0 14.92 31.69 20.0 -1 300.0 15.21 31.75 20.0 -1 300.0 15.49 31.81 20.0 -1 300.0 15.75 31.87 20.0 -1 300.0 16.0 31.94 20.0 -1 300.0 16.24 32.01 20.0 -1 300.0 16.46 32.08 20.0 -1 300.0 16.67 32.16 20.0 -1 300.0 16.86 32.23 20.0 -1 300.0 17.03 32.32 20.0 -1 300.0 17.19 32.4 20.0 -1 300.0 17.33 32.49 20.0 -1 300.0 17.46 32.59 20.0 -1 300.0 17.57 32.68 20.0 -1 300.0 17.66 32.78 20.0 -1 300.0 17.74 32.88 20.0 -1 300.0 17.8 32.99 20.0 -1 300.0 17.84 33.09 20.0 -1 300.0 17.87 33.2 20.0 -1 300.0 17.88 33.32 20.0 -1 300.0 17.87 33.43 20.0 -1 300.0 17.84 33.55 20.0 -1 300.0 17.8 33.67 20.0 -1 300.0 17.74 33.79 20.0 -1 300.0 17.67 33.92 20.0 -1 300.0 17.58 34.05 20.0 -1 300.0 17.47 34.17 20.0 -1 300.0 17.35 34.31 20.0 -1 300.0 17.21 34.44 20.0 -1 300.0 17.06 34.58 20.0 -1 300.0 16.9 34.72 20.0 -1 300.0 16.52 35.0 20.0 -1 300.0 16.31 35.14 20.0 -1 300.0 16.09 35.28 20.0 -1 300.0 15.61 35.58 20.0 -1 300.0 15.36 35.73 20.0 -1 300.0 15.09 35.88 20.0 -1 300.0 14.52 36.18 20.0 -1 300.0 13.28 36.81 20.0 -1 300.0 12.96 36.96 20.0 -1 300.0 12.63 37.12 20.0 -1 300.0 11.95 37.43 20.0 -1 300.0 10.56 38.05 20.0 -1 300.0 7.75 39.3 20.0 -1 300.0 7.4 39.46 20.0 -1 300.0 7.07 39.61 20.0 -1 300.0 6.41 39.91 20.0 -1 300.0 5.17 40.51 20.0 -1 300.0 4.88 40.66 20.0 -1 300.0 4.6 40.8 20.0 -1 300.0 4.07 41.09 20.0 -1 300.0 3.83 41.23 20.0 -1 300.0 3.59 41.37 20.0 -1 300.0 3.15 41.64 20.0 -1 300.0 2.95 41.77 20.0 -1 300.0 2.76 41.9 20.0 -1 300.0 2.58 42.03 20.0 -1 300.0 2.42 42.16 20.0 -1 300.0 2.28 42.28 20.0 -1 300.0 2.15 42.4 20.0 -1 300.0 2.03 42.52 20.0 -1 300.0 1.93 42.64 20.0 -1 300.0 1.84 42.75 20.0 -1 300.0 1.77 42.87 20.0 -1 300.0 1.71 42.98 20.0 -1 300.0 1.67 43.08 20.0 -1 300.0 1.65 43.19 20.0 -1 300.0 1.64 43.29 20.0 -1 300.0 1.65 43.39 20.0 -1 300.0 1.67 43.48 20.0 -1 300.0 1.71 43.58 20.0 -1 300.0 1.76 43.66 20.0 -1 300.0 1.84 43.75 20.0 -1 300.0 1.93 43.84 20.0 -1 300.0 2.03 43.91 20.0 -1 300.0 2.15 43.99 20.0 -1 300.0 2.29 44.06 20.0 -1 300.0 2.44 44.13 20.0 -1 300.0 2.6 44.2 20.0 -1 300.0 2.79 44.27 20.0 -1 300.0 2.98 44.32 20.0 -1 300.0 3.19 44.38 20.0 -1 300.0 3.42 44.43 20.0 -1 300.0 3.66 44.48 20.0 -1 300.0 3.92 44.53 20.0 -1 300.0 4.18 44.57 20.0 -1 300.0 4.44 44.6 20.0 -1 300.0 4.71 44.63 20.0 -1 300.0 5.0 44.66 20.0 -1 300.0 5.29 44.69 20.0 -1 300.0 5.59 44.71 20.0 -1 300.0 5.9 44.73 20.0 -1 300.0 6.22 44.74 20.0 -1 300.0 6.55 44.75 20.0 -1 300.0 6.89 44.76 20.0 -1 300.0 7.24 44.77 20.0 -1 300.0 7.59 44.77 20.0 -1 300.0 7.95 44.76 20.0 -1 300.0 8.31 44.76 20.0 -1 300.0 8.68 44.75 20.0 -1 300.0 9.06 44.73 20.0 -1 300.0 9.44 44.72 20.0 -1 300.0 9.83 44.7 20.0 -1 300.0 10.22 44.67 20.0 -1 300.0 10.61 44.64 20.0 -1 300.0 11.0 44.61 20.0 -1 300.0 11.4 44.58 20.0 -1 300.0 11.8 44.54 20.0 -1 300.0 12.6 44.45 20.0 -1 300.0 13.0 44.4 20.0 -1 300.0 13.4 44.35 20.0 -1 300.0 13.8 44.29 20.0 -1 300.0 14.2 44.23 20.0 -1 300.0 14.6 44.16 20.0 -1 300.0 14.99 44.1 20.0 -1 300.0 15.77 43.95 20.0 -1 300.0 16.15 43.87 20.0 -1 300.0 16.52 43.79 20.0 -1 300.0 17.26 43.61 20.0 -1 300.0 17.62 43.52 20.0 -1 300.0 17.98 43.42 20.0 -1 300.0 18.66 43.22 20.0 -1 300.0 18.99 43.11 20.0 -1 300.0 19.31 43.0 20.0 -1 300.0 19.63 42.88 20.0 -1 300.0 19.93 42.77 20.0 -1 300.0 20.22 42.65 20.0 -1 300.0 20.51 42.52 20.0 -1 300.0 21.04 42.26 20.0 -1 300.0 21.29 42.13 20.0 -1 300.0 21.53 41.99 20.0 -1 300.0 21.76 41.85 20.0 -1 300.0 21.97 41.7 20.0 -1 300.0 22.18 41.56 20.0 -1 300.0 22.37 41.41 20.0 -1 300.0 22.54 41.25 20.0 -1 300.0 22.71 41.1 20.0 -1 300.0 22.86 40.94 20.0 -1 300.0 23.0 40.77 20.0 -1 300.0 23.12 40.61 20.0 -1 300.0 23.23 40.44 20.0 -1 300.0 23.32 40.27 20.0 -1 300.0 23.41 40.09 20.0 -1 300.0 23.48 39.92 20.0 -1 300.0 23.53 39.74 20.0 -1 300.0 23.57 39.54 20.0 -1 300.0 23.6 39.34 20.0 -1 300.0 23.61 39.14 20.0 -1 300.0 23.6 38.93 20.0 -1 300.0 23.57 38.72 20.0 -1 300.0 23.53 38.51 20.0 -1 300.0 23.48 38.29 20.0 -1 300.0 23.4 38.08 20.0 -1 300.0 23.32 37.85 20.0 -1 300.0 23.21 37.63 20.0 -1 300.0 23.09 37.41 20.0 -1 300.0 22.95 37.18 20.0 -1 300.0 22.8 36.95 20.0 -1 300.0 22.64 36.72 20.0 -1 300.0 22.27 36.24 20.0 -1 300.0 22.06 36.01 20.0 -1 300.0 21.84 35.77 20.0 -1 300.0 21.36 35.28 20.0 -1 300.0 20.27 34.28 20.0 -1 300.0 19.98 34.03 20.0 -1 300.0 19.67 33.78 20.0 -1 300.0 19.03 33.27 20.0 -1 300.0 17.67 32.23 20.0 -1 300.0 17.32 31.97 20.0 -1 300.0 16.96 31.71 20.0 -1 300.0 16.24 31.19 20.0 -1 300.0 14.77 30.14 20.0 -1 300.0 14.4 29.88 20.0 -1 300.0 14.04 29.61 20.0 -1 300.0 13.32 29.09 20.0 -1 300.0 11.92 28.04 20.0 -1 300.0 11.59 27.78 20.0 -1 300.0 11.26 27.52 20.0 -1 300.0 10.63 27.01 20.0 -1 300.0 10.32 26.75 20.0 -1 300.0 10.03 26.5 20.0 -1 300.0 9.47 25.99 20.0 -1 300.0 9.2 25.74 20.0 -1 300.0 8.95 25.49 20.0 -1 300.0 8.48 24.99 20.0 -1 300.0 8.27 24.75 20.0 -1 300.0 8.06 24.5 20.0 -1 300.0 7.7 24.02 20.0 -1 300.0 7.55 23.8 20.0 -1 300.0 7.41 23.58 20.0 -1 300.0 7.29 23.36 20.0 -1 300.0 7.18 23.14 20.0 -1 300.0 7.08 22.93 20.0 -1 300.0 7.0 22.71 20.0 -1 300.0 6.92 22.5 20.0 -1 300.0 6.87 22.3 20.0 -1 300.0 6.83 22.09 20.0 -1 300.0 6.8 21.88 20.0 -1 300.0 6.78 21.68 20.0 -1 300.0 6.79 21.48 20.0 -1 300.0 6.8 21.29 20.0 -1 300.0 6.83 21.09 20.0 -1 300.0 6.87 20.9 20.0 -1 300.0 6.93 20.71 20.0 -1 300.0 7.0 20.52 20.0 -1 300.0 7.09 20.34 20.0 -1 300.0 7.19 20.15 20.0 -1 300.0 7.31 19.98 20.0 -1 300.0 7.43 19.8 20.0 -1 300.0 7.58 19.63 20.0 -1 300.0 7.73 19.45 20.0 -1 300.0 7.9 19.29 20.0 -1 300.0 8.09 19.12 20.0 -1 300.0 8.28 18.96 20.0 -1 300.0 8.49 18.8 20.0 -1 300.0 8.71 18.64 20.0 -1 300.0 8.94 18.49 20.0 -1 300.0 9.19 18.34 20.0 -1 300.0 9.71 18.05 20.0 -1 300.0 9.99 17.91 20.0 -1 300.0 10.28 17.77 20.0 -1 300.0 10.88 17.51 20.0 -1 300.0 11.2 17.38 20.0 -1 300.0 11.53 17.26 20.0 -1 300.0 12.2 17.02 20.0 -1 300.0 12.55 16.91 20.0 -1 300.0 12.91 16.8 20.0 -1 300.0 13.64 16.58 20.0 -1 300.0 14.01 16.48 20.0 -1 300.0 14.39 16.39 20.0 -1 300.0 15.16 16.2 20.0 -1 300.0 15.55 16.12 20.0 -1 300.0 15.94 16.04 20.0 -1 300.0 16.73 15.88 20.0 -1 300.0 17.13 15.81 20.0 -1 300.0 17.52 15.74 20.0 -1 300.0 18.32 15.61 20.0 -1 300.0 18.71 15.55 20.0 -1 300.0 19.1 15.5 20.0 -1 300.0 19.49 15.45 20.0 -1 300.0 19.88 15.4 20.0 -1 300.0 20.26 15.36 20.0 -1 300.0 20.64 15.32 20.0 -1 300.0 21.02 15.28 20.0 -1 300.0 21.39 15.24 20.0 -1 300.0 21.74 15.21 20.0 -1 300.0 22.09 15.19 20.0 -1 300.0 22.44 15.17 20.0 -1 300.0 22.78 15.15 20.0 -1 300.0 23.11 15.13 20.0 -1 300.0 23.43 15.12 20.0 -1 300.0 23.75 15.11 20.0 -1 300.0 24.05 15.1 20.0 -1 300.0 24.35 15.1 20.0 -1 300.0 24.64 15.1 20.0 -1 300.0 24.91 15.1 20.0 -1 300.0 25.18 15.1 20.0 -1 300.0 25.44 15.11 20.0 -1 300.0 25.68 15.12 20.0 -1 300.0 25.92 15.14 20.0 -1 300.0 26.14 15.16 20.0 -1 300.0 26.35 15.18 20.0 -1 300.0 26.55 15.2 20.0 -1 300.0 26.74 15.23 20.0 -1 300.0 26.91 15.26 20.0 -1 300.0 27.08 15.29 20.0 -1 300.0 27.23 15.32 20.0 -1 300.0 27.36 15.36 20.0 -1 300.0 27.48 15.4 20.0 -1 300.0 27.59 15.45 20.0 -1 300.0 27.69 15.49 20.0 -1 300.0 27.77 15.54 20.0 -1 300.0 27.84 15.59 20.0 -1 300.0 27.89 15.64 20.0 -1 300.0 27.93 15.7 20.0 -1 300.0 27.95 15.76 20.0 -1 300.0 27.96 15.82 20.0 -1 300.0 27.96 15.88 20.0 -1 300.0 27.95 15.95 20.0 -1 300.0 27.92 16.01 20.0 -1 300.0 27.87 16.08 20.0 -1 300.0 27.82 16.16 20.0 -1 300.0 27.74 16.23 20.0 -1 300.0 27.66 16.3 20.0 -1 300.0 27.56 16.38 20.0 -1 300.0 27.45 16.46 20.0 -1 300.0 27.33 16.54 20.0 -1 300.0 27.04 16.71 20.0 -1 300.0 26.88 16.8 20.0 -1 300.0 26.71 16.89 20.0 -1 300.0 26.33 17.07 20.0 -1 300.0 26.12 17.16 20.0 -1 300.0 25.9 17.26 20.0 -1 300.0 25.43 17.45 20.0 -1 300.0 24.39 17.85 20.0 -1 300.0 21.93 18.69 20.0 -1 300.0 21.57 18.81 20.0 -1 300.0 21.21 18.93 20.0 -1 300.0 20.47 19.16 20.0 -1 300.0 18.98 19.64 20.0 -1 300.0 16.04 20.57 20.0 -1 300.0 15.69 20.69 20.0 -1 300.0 15.35 20.8 20.0 -1 300.0 14.68 21.02 20.0 -1 300.0 13.46 21.46 20.0 -1 300.0 13.18 21.56 20.0 -1 300.0 12.9 21.67 20.0 -1 300.0 12.4 21.87 20.0 -1 300.0 12.16 21.97 20.0 -1 300.0 11.94 22.06 20.0 -1 300.0 11.53 22.25 20.0 -1 300.0 11.35 22.34 20.0 -1 300.0 11.18 22.43 20.0 -1 300.0 11.02 22.52 20.0 -1 300.0 10.88 22.6 20.0 -1 300.0 10.76 22.68 20.0 -1 300.0 10.65 22.76 20.0 -1 300.0 10.55 22.84 20.0 -1 300.0 10.48 22.91 20.0 -1 300.0 10.41 22.98 20.0 -1 300.0 10.37 23.05 20.0 -1 300.0 10.34 23.12 20.0 -1 300.0 10.32 23.18 20.0 -1 300.0 10.32 23.24 20.0 -1 300.0 10.34 23.3 20.0 -1 300.0 10.38 23.35 20.0 -1 300.0 10.43 23.4 20.0 -1 300.0 10.5 23.45 20.0 -1 300.0 10.58 23.5 20.0 -1 300.0 10.68 23.54 20.0 -1 300.0 10.79 23.58 20.0 -1 300.0 10.93 23.61 20.0 -1 300.0 11.07 23.64 20.0 -1 300.0 11.23 23.67 20.0 -1 300.0 11.41 23.7 20.0 -1 300.0 11.6 23.72 20.0 -1 300.0 11.81 23.74 20.0 -1 300.0 12.03 23.75 20.0 -1 300.0 12.26 23.76 20.0 -1 300.0 12.51 23.77 20.0 -1 300.0 12.77 23.77 20.0 -1 300.0 13.04 23.77 20.0 -1 300.0 13.32 23.77 20.0 -1 300.0 13.6 23.76 20.0 -1 300.0 13.89 23.75 20.0 -1 300.0 14.18 23.73 20.0 -1 300.0 14.49 23.72 20.0 -1 300.0 14.8 23.7 20.0 -1 300.0 15.12 23.67 20.0 -1 300.0 15.45 23.64 20.0 -1 300.0 15.78 23.61 20.0 -1 300.0 16.13 23.58 20.0 -1 300.0 16.48 23.54 20.0 -1 300.0 16.83 23.5 20.0 -1 300.0 17.19 23.45 20.0 -1 300.0 17.55 23.4 20.0 -1 300.0 17.92 23.35 20.0 -1 300.0 18.67 23.23 20.0 -1 300.0 19.05 23.17 20.0 -1 300.0 19.42 23.1 20.0 -1 300.0 20.19 22.96 20.0 -1 300.0 20.57 22.88 20.0 -1 300.0 20.95 22.8 20.0 -1 300.0 21.71 22.62 20.0 -1 300.0 22.09 22.53 20.0 -1 300.0 22.47 22.43 20.0 -1 300.0 23.21 22.23 20.0 -1 300.0 23.57 22.13 20.0 -1 300.0 23.93 22.02 20.0 -1 300.0 24.64 21.78 20.0 -1 300.0 24.98 21.66 20.0 -1 300.0 25.32 21.54 20.0 -1 300.0 25.98 21.28 20.0 -1 300.0 26.29 21.14 20.0 -1 300.0 26.6 21.01 20.0 -1 300.0 27.19 20.72 20.0 -1 300.0 27.46 20.57 20.0 -1 300.0 27.73 20.42 20.0 -1 300.0 27.99 20.26 20.0 -1 300.0 28.24 20.11 20.0 -1 300.0 28.48 19.94 20.0 -1 300.0 28.7 19.78 20.0 -1 300.0 29.12 19.44 20.0 -1 300.0 29.3 19.27 20.0 -1 300.0 29.48 19.09 20.0 -1 300.0 29.64 18.91 20.0 -1 300.0 29.79 18.72 20.0 -1 300.0 29.93 18.54 20.0 -1 300.0 30.05 18.35 20.0 -1 300.0 30.16 18.16 20.0 -1 300.0 30.26 17.96 20.0 -1 300.0 30.34 17.76 20.0 -1 300.0 30.41 17.56 20.0 -1 300.0 30.46 17.36 20.0 -1 300.0 30.5 17.15 20.0 -1 300.0 30.52 16.94 20.0 -1 300.0 30.53 16.73 20.0 -1 300.0 30.53 16.52 20.0 -1 300.0 30.51 16.3 20.0 -1 300.0 30.47 16.07 20.0 -1 300.0 30.42 15.83 20.0 -1 300.0 30.35 15.58 20.0 -1 300.0 30.27 15.34 20.0 -1 300.0 30.16 15.09 20.0 -1 300.0 30.05 14.84 20.0 -1 300.0 29.91 14.59 20.0 -1 300.0 29.76 14.33 20.0 -1 300.0 29.6 14.07 20.0 -1 300.0 29.42 13.81 20.0 -1 300.0 29.01 13.29 20.0 -1 300.0 28.79 13.02 20.0 -1 300.0 28.55 12.75 20.0 -1 300.0 28.04 12.21 20.0 -1 300.0 27.77 11.94 20.0 -1 300.0 27.48 11.66 20.0 -1 300.0 26.88 11.11 20.0 -1 300.0 25.55 9.98 20.0 -1 300.0 22.57 7.69 20.0 -1 300.0 22.18 7.41 20.0 -1 300.0 21.79 7.12 20.0 -1 300.0 21.0 6.54 20.0 -1 300.0 19.44 5.38 20.0 -1 300.0 19.06 5.09 20.0 -1 300.0 18.68 4.81 20.0 -1 300.0 17.93 4.23 20.0 -1 300.0 16.51 3.1 20.0 -1 300.0 16.18 2.81 20.0 -1 300.0 15.85 2.53 20.0 -1 300.0 15.23 1.97 20.0 -1 300.0 14.93 1.7 20.0 -1 300.0 14.65 1.42 20.0 -1 300.0 14.12 0.88 20.0 -1 300.0 13.87 0.61 20.0 -1 300.0 13.63 0.34 20.0 -1 300.0 13.41 0.07 20.0 -1 300.0 13.2 -0.19 20.0 -1 300.0 13.01 -0.46 20.0 -1 300.0 12.83 -0.72 20.0 -1 300.0 12.67 -0.98 20.0 -1 300.0 12.52 -1.23 20.0 -1 300.0 12.39 -1.47 20.0 -1 300.0 12.28 -1.7 20.0 -1 300.0 12.19 -1.94 20.0 -1 300.0 12.11 -2.17 20.0 -1 300.0 12.04 -2.4 20.0 -1 300.0 11.98 -2.62 20.0 -1 300.0 11.94 -2.84 20.0 -1 300.0 11.92 -3.06 20.0 -1 300.0 11.9 -3.28 20.0 -1 300.0 11.91 -3.5 20.0 -1 300.0 11.93 -3.71 20.0 -1 300.0 11.96 -3.92 20.0 -1 300.0 12.01 -4.13 20.0 -1 300.0 12.07 -4.34 20.0 -1 300.0 12.14 -4.54 20.0 -1 300.0 12.23 -4.74 20.0 -1 300.0 12.34 -4.94 20.0 -1 300.0 12.45 -5.13 20.0 -1 300.0 12.58 -5.32 20.0 -1 300.0 12.73 -5.51 20.0 -1 300.0 12.89 -5.7 20.0 -1 300.0 13.06 -5.88 20.0 -1 300.0 13.24 -6.05 20.0 -1 300.0 13.44 -6.23 20.0 -1 300.0 13.65 -6.4 20.0 -1 300.0 13.87 -6.57 20.0 -1 300.0 14.1 -6.74 20.0 -1 300.0 14.35 -6.9 20.0 -1 300.0 14.6 -7.06 20.0 -1 300.0 14.86 -7.22 20.0 -1 300.0 15.42 -7.52 20.0 -1 300.0 15.72 -7.66 20.0 -1 300.0 16.02 -7.81 20.0 -1 300.0 16.65 -8.08 20.0 -1 300.0 16.98 -8.21 20.0 -1 300.0 17.31 -8.34 20.0 -1 300.0 17.99 -8.59 20.0 -1 300.0 18.34 -8.7 20.0 -1 300.0 18.7 -8.82 20.0 -1 300.0 19.42 -9.04 20.0 -1 300.0 20.9 -9.43 20.0 -1 300.0 21.28 -9.52 20.0 -1 300.0 21.65 -9.6 20.0 -1 300.0 22.4 -9.76 20.0 -1 300.0 22.77 -9.83 20.0 -1 300.0 23.14 -9.9 20.0 -1 300.0 23.87 -10.03 20.0 -1 300.0 24.23 -10.09 20.0 -1 300.0 24.58 -10.15 20.0 -1 300.0 24.94 -10.2 20.0 -1 300.0 25.28 -10.25 20.0 -1 300.0 25.62 -10.29 20.0 -1 300.0 25.96 -10.34 20.0 -1 300.0 26.6 -10.41 20.0 -1 300.0 26.91 -10.44 20.0 -1 300.0 27.21 -10.46 20.0 -1 300.0 27.5 -10.49 20.0 -1 300.0 27.78 -10.51 20.0 -1 300.0 28.05 -10.53 20.0 -1 300.0 28.31 -10.54 20.0 -1 300.0 28.57 -10.55 20.0 -1 300.0 28.81 -10.56 20.0 -1 300.0 29.04 -10.56 20.0 -1 300.0 29.26 -10.56 20.0 -1 300.0 29.47 -10.56 20.0 -1 300.0 29.66 -10.56 20.0 -1 300.0 29.85 -10.55 20.0 -1 300.0 30.02 -10.54 20.0 -1 300.0 30.18 -10.52 20.0 -1 300.0 30.33 -10.5 20.0 -1 300.0 30.46 -10.48 20.0 -1 300.0 30.58 -10.46 20.0 -1 300.0 30.69 -10.44 20.0 -1 300.0 30.78 -10.41 20.0 -1 300.0 30.86 -10.37 20.0 -1 300.0 30.93 -10.34 20.0 -1 300.0 30.98 -10.3 20.0 -1 300.0 31.02 -10.26 20.0 -1 300.0 31.05 -10.22 20.0 -1 300.0 31.06 -10.18 20.0 -1 300.0 31.05 -10.13 20.0 -1 300.0 31.04 -10.08 20.0 -1 300.0 31.01 -10.03 20.0 -1 300.0 30.96 -9.97 20.0 -1 300.0 30.9 -9.91 20.0 -1 300.0 30.83 -9.86 20.0 -1 300.0 30.74 -9.79 20.0 -1 300.0 30.64 -9.73 20.0 -1 300.0 30.52 -9.66 20.0 -1 300.0 30.4 -9.6 20.0 -1 300.0 30.25 -9.53 20.0 -1 300.0 30.1 -9.46 20.0 -1 300.0 29.75 -9.31 20.0 -1 300.0 29.56 -9.23 20.0 -1 300.0 29.36 -9.15 20.0 -1 300.0 28.92 -8.99 20.0 -1 300.0 27.9 -8.64 20.0 -1 300.0 27.62 -8.55 20.0 -1 300.0 27.34 -8.46 20.0 -1 300.0 26.73 -8.28 20.0 -1 300.0 25.44 -7.9 20.0 -1 300.0 22.59 -7.1 20.0 -1 300.0 22.19 -6.99 20.0 -1 300.0 21.79 -6.88 20.0 -1 300.0 20.98 -6.66 20.0 -1 300.0 19.37 -6.22 20.0 -1 300.0 18.98 -6.11 20.0 -1 300.0 18.58 -6.0 20.0 -1 300.0 17.81 -5.78 20.0 -1 300.0 16.35 -5.36 20.0 -1 300.0 16.0 -5.26 20.0 -1 300.0 15.66 -5.16 20.0 -1 300.0 15.02 -4.95 20.0 -1 300.0 14.71 -4.86 20.0 -1 300.0 14.41 -4.76 20.0 -1 300.0 13.85 -4.57 20.0 -1 300.0 13.59 -4.48 20.0 -1 300.0 13.34 -4.39 20.0 -1 300.0 12.88 -4.21 20.0 -1 300.0 12.68 -4.13 20.0 -1 300.0 12.48 -4.04 20.0 -1 300.0 12.14 -3.89 20.0 -1 300.0 11.99 -3.81 20.0 -1 300.0 11.86 -3.74 20.0 -1 300.0 11.74 -3.67 20.0 -1 300.0 11.64 -3.6 20.0 -1 300.0 11.55 -3.53 20.0 -1 300.0 11.49 -3.47 20.0 -1 300.0 11.43 -3.41 20.0 -1 300.0 11.4 -3.35 20.0 -1 300.0 11.38 -3.29 20.0 -1 300.0 11.37 -3.24 20.0 -1 300.0 11.39 -3.19 20.0 -1 300.0 11.41 -3.15 20.0 -1 300.0 11.46 -3.1 20.0 -1 300.0 11.52 -3.06 20.0 -1 300.0 11.6 -3.02 20.0 -1 300.0 11.69 -2.99 20.0 -1 300.0 11.8 -2.96 20.0 -1 300.0 11.93 -2.93 20.0 -1 300.0 12.07 -2.91 20.0 -1 300.0 12.22 -2.89 20.0 -1 300.0 12.39 -2.87 20.0 -1 300.0 12.58 -2.86 20.0 -1 300.0 12.78 -2.85 20.0 -1 300.0 12.99 -2.84 20.0 -1 300.0 13.21 -2.84 20.0 -1 300.0 13.45 -2.84 20.0 -1 300.0 13.7 -2.84 20.0 -1 300.0 13.97 -2.85 20.0 -1 300.0 14.24 -2.86 20.0 -1 300.0 14.53 -2.88 20.0 -1 300.0 14.82 -2.9 20.0 -1 300.0 15.13 -2.92 20.0 -1 300.0 15.43 -2.95 20.0 -1 300.0 15.73 -2.98 20.0 -1 300.0 16.04 -3.01 20.0 -1 300.0 16.35 -3.04 20.0 -1 300.0 16.68 -3.08 20.0 -1 300.0 17.0 -3.12 20.0 -1 300.0 17.68 -3.22 20.0 -1 300.0 18.02 -3.27 20.0 -1 300.0 18.37 -3.33 20.0 -1 300.0 19.07 -3.45 20.0 -1 300.0 19.43 -3.52 20.0 -1 300.0 19.78 -3.59 20.0 -1 300.0 20.5 -3.74 20.0 -1 300.0 20.86 -3.82 20.0 -1 300.0 21.21 -3.91 20.0 -1 300.0 21.93 -4.09 20.0 -1 300.0 22.28 -4.18 20.0 -1 300.0 22.63 -4.28 20.0 -1 300.0 23.31 -4.49 20.0 -1 300.0 23.65 -4.6 20.0 -1 300.0 23.98 -4.71 20.0 -1 300.0 24.63 -4.95 20.0 -1 300.0 24.95 -5.07 20.0 -1 300.0 25.25 -5.2 20.0 -1 300.0 25.85 -5.46 20.0 -1 300.0 26.13 -5.6 20.0 -1 300.0 26.4 -5.74 20.0 -1 300.0 26.67 -5.88 20.0 -1 300.0 26.93 -6.03 20.0 -1 300.0 27.17 -6.18 20.0 -1 300.0 27.41 -6.33 20.0 -1 300.0 27.84 -6.65 20.0 -1 300.0 28.04 -6.81 20.0 -1 300.0 28.23 -6.98 20.0 -1 300.0 28.41 -7.15 20.0 -1 300.0 28.57 -7.32 20.0 -1 300.0 28.73 -7.5 20.0 -1 300.0 28.86 -7.67 20.0 -1 300.0 28.99 -7.86 20.0 -1 300.0 29.1 -8.04 20.0 -1 300.0 29.2 -8.23 20.0 -1 300.0 29.28 -8.42 20.0 -1 300.0 29.35 -8.61 20.0 -1 300.0 29.41 -8.8 20.0 -1 300.0 29.45 -9.0 20.0 -1 300.0 29.48 -9.2 20.0 -1 300.0 29.49 -9.41 20.0 -1 300.0 29.49 -9.61 20.0 -1 300.0 29.48 -9.82 20.0 -1 300.0 29.45 -10.03 20.0 -1 300.0 29.4 -10.24 20.0 -1 300.0 29.34 -10.46 20.0 -1 300.0 29.27 -10.68 20.0 -1 300.0 29.18 -10.9 20.0 -1 300.0 29.08 -11.12 20.0 -1 300.0 28.96 -11.34 20.0 -1 300.0 28.82 -11.59 20.0 -1 300.0 28.67 -11.84 20.0 -1 300.0 28.49 -12.09 20.0 -1 300.0 28.3 -12.34 20.0 -1 300.0 28.1 -12.59 20.0 -1 300.0 27.88 -12.85 20.0 -1 300.0 27.4 -13.37 20.0 -1 300.0 27.14 -13.63 20.0 -1 300.0 26.87 -13.9 20.0 -1 300.0 26.28 -14.43 20.0 -1 300.0 24.97 -15.51 20.0 -1 300.0 24.61 -15.79 20.0 -1 300.0 24.25 -16.06 20.0 -1 300.0 23.5 -16.62 20.0 -1 300.0 21.92 -17.73 20.0 -1 300.0 18.57 -19.98 20.0 -1 300.0 18.15 -20.27 20.0 -1 300.0 17.73 -20.55 20.0 -1 300.0 16.9 -21.11 20.0 -1 300.0 15.29 -22.22 20.0 -1 300.0 14.9 -22.5 20.0 -1 300.0 14.52 -22.77 20.0 -1 300.0 13.78 -23.32 20.0 -1 300.0 12.41 -24.4 20.0 -1 300.0 12.1 -24.67 20.0 -1 300.0 11.79 -24.93 20.0 -1 300.0 11.22 -25.45 20.0 -1 300.0 10.96 -25.71 20.0 -1 300.0 10.71 -25.97 20.0 -1 300.0 10.25 -26.48 20.0 -1 300.0 10.04 -26.73 20.0 -1 300.0 9.85 -26.97 20.0 -1 300.0 9.67 -27.22 20.0 -1 300.0 9.51 -27.46 20.0 -1 300.0 9.36 -27.7 20.0 -1 300.0 9.23 -27.94 20.0 -1 300.0 9.12 -28.18 20.0 -1 300.0 9.02 -28.41 20.0 -1 300.0 8.94 -28.63 20.0 -1 300.0 8.87 -28.86 20.0 -1 300.0 8.83 -29.07 20.0 -1 300.0 8.8 -29.29 20.0 -1 300.0 8.78 -29.5 20.0 -1 300.0 8.78 -29.72 20.0 -1 300.0 8.8 -29.92 20.0 -1 300.0 8.83 -30.13 20.0 -1 300.0 8.88 -30.33 20.0 -1 300.0 8.95 -30.53 20.0 -1 300.0 9.03 -30.72 20.0 -1 300.0 9.13 -30.91 20.0 -1 300.0 9.24 -31.1 20.0 -1 300.0 9.36 -31.29 20.0 -1 300.0 9.51 -31.47 20.0 -1 300.0 9.66 -31.64 20.0 -1 300.0 9.83 -31.82 20.0 -1 300.0 10.02 -31.99 20.0 -1 300.0 10.21 -32.16 20.0 -1 300.0 10.43 -32.32 20.0 -1 300.0 10.65 -32.48 20.0 -1 300.0 10.88 -32.63 20.0 -1 300.0 11.39 -32.93 20.0 -1 300.0 11.66 -33.08 20.0 -1 300.0 11.95 -33.22 20.0 -1 300.0 12.54 -33.48 20.0 -1 300.0 12.85 -33.61 20.0 -1 300.0 13.16 -33.73 20.0 -1 300.0 13.82 -33.97 20.0 -1 300.0 14.16 -34.08 20.0 -1 300.0 14.5 -34.19 20.0 -1 300.0 15.21 -34.39 20.0 -1 300.0 15.57 -34.49 20.0 -1 300.0 15.93 -34.58 20.0 -1 300.0 16.66 -34.75 20.0 -1 300.0 17.03 -34.83 20.0 -1 300.0 17.4 -34.9 20.0 -1 300.0 17.77 -34.97 20.0 -1 300.0 18.13 -35.04 20.0 -1 300.0 18.5 -35.1 20.0 -1 300.0 18.86 -35.16 20.0 -1 300.0 19.59 -35.26 20.0 -1 300.0 19.94 -35.3 20.0 -1 300.0 20.29 -35.35 20.0 -1 300.0 20.63 -35.38 20.0 -1 300.0 20.97 -35.42 20.0 -1 300.0 21.3 -35.44 20.0 -1 300.0 21.63 -35.47 20.0 -1 300.0 21.95 -35.49 20.0 -1 300.0 22.26 -35.51 20.0 -1 300.0 22.56 -35.52 20.0 -1 300.0 22.85 -35.53 20.0 -1 300.0 23.13 -35.53 20.0 -1 300.0 23.4 -35.53 20.0 -1 300.0 23.66 -35.53 20.0 -1 300.0 23.9 -35.52 20.0 -1 300.0 24.14 -35.51 20.0 -1 300.0 24.36 -35.5 20.0 -1 300.0 24.56 -35.48 20.0 -1 300.0 24.75 -35.46 20.0 -1 300.0 24.92 -35.44 20.0 -1 300.0 25.08 -35.41 20.0 -1 300.0 25.23 -35.38 20.0 -1 300.0 25.36 -35.34 20.0 -1 300.0 25.49 -35.31 20.0 -1 300.0 25.6 -35.27 20.0 -1 300.0 25.69 -35.23 20.0 -1 300.0 25.78 -35.18 20.0 -1 300.0 25.85 -35.13 20.0 -1 300.0 25.9 -35.08 20.0 -1 300.0 25.94 -35.03 20.0 -1 300.0 25.97 -34.97 20.0 -1 300.0 25.99 -34.91 20.0 -1 300.0 25.99 -34.85 20.0 -1 300.0 25.97 -34.78 20.0 -1 300.0 25.94 -34.72 20.0 -1 300.0 25.9 -34.65 20.0 -1 300.0 25.84 -34.58 20.0 -1 300.0 25.77 -34.5 20.0 -1 300.0 25.68 -34.42 20.0 -1 300.0 25.59 -34.34 20.0 -1 300.0 25.47 -34.26 20.0 -1 300.0 25.34 -34.17 20.0 -1 300.0 25.2 -34.09 20.0 -1 300.0 24.88 -33.91 20.0 -1 300.0 24.7 -33.81 20.0 -1 300.0 24.51 -33.72 20.0 -1 300.0 24.09 -33.52 20.0 -1 300.0 23.86 -33.42 20.0 -1 300.0 23.61 -33.32 20.0 -1 300.0 23.09 -33.11 20.0 -1 300.0 21.93 -32.67 20.0 -1 300.0 19.2 -31.74 20.0 -1 300.0 12.95 -29.75 20.0 -1 300.0 12.53 -29.61 20.0 -1 300.0 12.12 -29.48 20.0 -1 300.0 11.3 -29.21 20.0 -1 300.0 9.75 -28.68 20.0 -1 300.0 9.38 -28.55 20.0 -1 300.0 9.03 -28.42 20.0 -1 300.0 8.34 -28.17 20.0 -1 300.0 7.1 -27.68 20.0 -1 300.0 6.83 -27.56 20.0 -1 300.0 6.56 -27.44 20.0 -1 300.0 6.07 -27.21 20.0 -1 300.0 5.85 -27.1 20.0 -1 300.0 5.64 -26.99 20.0 -1 300.0 5.27 -26.78 20.0 -1 300.0 5.11 -26.68 20.0 -1 300.0 4.96 -26.58 20.0 -1 300.0 4.83 -26.48 20.0 -1 300.0 4.72 -26.38 20.0 -1 300.0 4.62 -26.29 20.0 -1 300.0 4.54 -26.2 20.0 -1 300.0 4.48 -26.11 20.0 -1 300.0 4.43 -26.03 20.0 -1 300.0 4.4 -25.94 20.0 -1 300.0 4.38 -25.86 20.0 -1 300.0 4.38 -25.79 20.0 -1 300.0 4.4 -25.71 20.0 -1 300.0 4.44 -25.64 20.0 -1 300.0 4.49 -25.58 20.0 -1 300.0 4.56 -25.51 20.0 -1 300.0 4.64 -25.45 20.0 -1 300.0 4.74 -25.39 20.0 -1 300.0 4.85 -25.34 20.0 -1 300.0 4.98 -25.29 20.0 -1 300.0 5.13 -25.24 20.0 -1 300.0 5.29 -25.19 20.0 -1 300.0 5.46 -25.15 20.0 -1 300.0 5.65 -25.11 20.0 -1 300.0 5.85 -25.08 20.0 -1 300.0 6.06 -25.05 20.0 -1 300.0 6.29 -25.02 20.0 -1 300.0 6.53 -25.0 20.0 -1 300.0 6.78 -24.98 20.0 -1 300.0 7.04 -24.96 20.0 -1 300.0 7.31 -24.95 20.0 -1 300.0 7.6 -24.94 20.0 -1 300.0 7.89 -24.94 20.0 -1 300.0 8.19 -24.94 20.0 -1 300.0 8.5 -24.94 20.0 -1 300.0 8.82 -24.95 20.0 -1 300.0 9.15 -24.96 20.0 -1 300.0 9.48 -24.98 20.0 -1 300.0 9.82 -24.99 20.0 -1 300.0 10.16 -25.02 20.0 -1 300.0 10.51 -25.04 20.0 -1 300.0 10.84 -25.07 20.0 -1 300.0 11.17 -25.1 20.0 -1 300.0 11.51 -25.14 20.0 -1 300.0 11.84 -25.18 20.0 -1 300.0 12.18 -25.22 20.0 -1 300.0 12.52 -25.27 20.0 -1 300.0 13.2 -25.37 20.0 -1 300.0 13.53 -25.43 20.0 -1 300.0 13.87 -25.49 20.0 -1 300.0 14.2 -25.55 20.0 -1 300.0 14.54 -25.62 20.0 -1 300.0 14.86 -25.69 20.0 -1 300.0 15.19 -25.76 20.0 -1 300.0 15.82 -25.92 20.0 -1 300.0 16.13 -26.0 20.0 -1 300.0 16.44 -26.09 20.0 -1 300.0 16.74 -26.18 20.0 -1 300.0 17.03 -26.28 20.0 -1 300.0 17.31 -26.38 20.0 -1 300.0 17.59 -26.48 20.0 -1 300.0 18.11 -26.69 20.0 -1 300.0 18.36 -26.8 20.0 -1 300.0 18.6 -26.91 20.0 -1 300.0 18.83 -27.03 20.0 -1 300.0 19.05 -27.15 20.0 -1 300.0 19.26 -27.28 20.0 -1 300.0 19.46 -27.4 20.0 -1 300.0 19.64 -27.53 20.0 -1 300.0 19.82 -27.67 20.0 -1 300.0 19.98 -27.8 20.0 -1 300.0 20.13 -27.94 20.0 -1 300.0 20.26 -28.09 20.0 -1 300.0 20.39 -28.23 20.0 -1 300.0 20.5 -28.38 20.0 -1 300.0 20.59 -28.53 20.0 -1 300.0 20.68 -28.68 20.0 -1 300.0 20.75 -28.84 20.0 -1 300.0 20.8 -29.0 20.0 -1 300.0 20.84 -29.16 20.0 -1 300.0 20.87 -29.33 20.0 -1 300.0 20.88 -29.49 20.0 -1 300.0 20.88 -29.66 20.0 -1 300.0 20.86 -29.84 20.0 -1 300.0 20.83 -30.01 20.0 -1 300.0 20.78 -30.19 20.0 -1 300.0 20.72 -30.37 20.0 -1 300.0 20.64 -30.55 20.0 -1 300.0 20.56 -30.73 20.0 -1 300.0 20.45 -30.92 20.0 -1 300.0 20.33 -31.11 20.0 -1 300.0 20.2 -31.3 20.0 -1 300.0 20.05 -31.49 20.0 -1 300.0 19.89 -31.69 20.0 -1 300.0 19.72 -31.89 20.0 -1 300.0 19.53 -32.08 20.0 -1 300.0 19.12 -32.49 20.0 -1 300.0 18.89 -32.69 20.0 -1 300.0 18.66 -32.9 20.0 -1 300.0 18.14 -33.31 20.0 -1 300.0 17.87 -33.52 20.0 -1 300.0 17.59 -33.72 20.0 -1 300.0 17.01 -34.14 20.0 -1 300.0 15.72 -34.99 20.0 -1 300.0 12.8 -36.73 20.0 -1 300.0 12.41 -36.95 20.0 -1 300.0 12.02 -37.17 20.0 -1 300.0 11.22 -37.61 20.0 -1 300.0 9.62 -38.49 20.0 -1 300.0 6.46 -40.24 20.0 -1 300.0 6.07 -40.45 20.0 -1 300.0 5.7 -40.67 20.0 -1 300.0 4.96 -41.1 20.0 -1 300.0 3.57 -41.94 20.0 -1 300.0 3.24 -42.15 20.0 -1 300.0 2.92 -42.36 20.0 -1 300.0 2.3 -42.77 20.0 -1 300.0 1.19 -43.57 20.0 -1 300.0 0.94 -43.76 20.0 -1 300.0 0.71 -43.96 20.0 -1 300.0 0.26 -44.34 20.0 -1 300.0 0.06 -44.53 20.0 -1 300.0 -0.13 -44.72 20.0 -1 300.0 -0.47 -45.09 20.0 -1 300.0 -0.62 -45.27 20.0 -1 300.0 -0.76 -45.44 20.0 -1 300.0 -0.88 -45.62 20.0 -1 300.0 -0.99 -45.79 20.0 -1 300.0 -1.09 -45.97 20.0 -1 300.0 -1.17 -46.13 20.0 -1 300.0 -1.24 -46.3 20.0 -1 300.0 -1.3 -46.47 20.0 -1 300.0 -1.34 -46.64 20.0 -1 300.0 -1.37 -46.81 20.0 -1 300.0 -1.38 -46.98 20.0 -1 300.0 -1.38 -47.15 20.0 -1 300.0 -1.36 -47.31 20.0 -1 300.0 -1.32 -47.47 20.0 -1 300.0 -1.27 -47.62 20.0 -1 300.0 -1.2 -47.77 20.0 -1 300.0 -1.11 -47.92 20.0 -1 300.0 -1.01 -48.07 20.0 -1 300.0 -0.9 -48.21 20.0 -1 300.0 -0.77 -48.35 20.0 -1 300.0 -0.63 -48.48 20.0 -1 300.0 -0.47 -48.61 20.0 -1 300.0 -0.29 -48.74 20.0 -1 300.0 -0.11 -48.86 20.0 -1 300.0 0.09 -48.98 20.0 -1 300.0 0.3 -49.1 20.0 -1 300.0 0.53 -49.21 20.0 -1 300.0 0.77 -49.31 20.0 -1 300.0 1.01 -49.42 20.0 -1 300.0 1.27 -49.52 20.0 -1 300.0 1.82 -49.7 20.0 -1 300.0 2.11 -49.79 20.0 -1 300.0 2.41 -49.88 20.0 -1 300.0 2.71 -49.95 20.0 -1 300.0 3.03 -50.03 20.0 -1 300.0 3.35 -50.1 20.0 -1 300.0 3.67 -50.17 20.0 -1 300.0 4.0 -50.23 20.0 -1 300.0 4.34 -50.29 20.0 -1 300.0 4.68 -50.34 20.0 -1 300.0 5.03 -50.39 20.0 -1 300.0 5.38 -50.44 20.0 -1 300.0 5.73 -50.48 20.0 -1 300.0 6.08 -50.51 20.0 -1 300.0 6.43 -50.55 20.0 -1 300.0 6.79 -50.57 20.0 -1 300.0 7.14 -50.6 20.0 -1 300.0 7.49 -50.62 20.0 -1 300.0 7.84 -50.63 20.0 -1 300.0 8.19 -50.64 20.0 -1 300.0 8.54 -50.65 20.0 -1 300.0 8.88 -50.65 20.0 -1 300.0 9.22 -50.65 20.0 -1 300.0 9.55 -50.65 20.0 -1 300.0 9.88 -50.63 20.0 -1 300.0 10.2 -50.62 20.0 -1 300.0 10.52 -50.6 20.0 -1 300.0 10.82 -50.58 20.0 -1 300.0 11.12 -50.55 20.0 -1 300.0 11.41 -50.52 20.0 -1 300.0 11.69 -50.49 20.0 -1 300.0 11.96 -50.45 20.0 -1 300.0 12.22 -50.4 20.0 -1 300.0 12.47 -50.36 20.0 -1 300.0 12.71 -50.3 20.0 -1 300.0 12.94 -50.25 20.0 -1 300.0 13.15 -50.19 20.0 -1 300.0 13.36 -50.13 20.0 -1 300.0 13.55 -50.06 20.0 -1 300.0 13.72 -49.99 20.0 -1 300.0 13.88 -49.92 20.0 -1 300.0 14.02 -49.84 20.0 -1 300.0 14.14 -49.77 20.0 -1 300.0 14.26 -49.69 20.0 -1 300.0 14.36 -49.6 20.0 -1 300.0 14.44 -49.52 20.0 -1 300.0 14.51 -49.43 20.0 -1 300.0 14.57 -49.34 20.0 -1 300.0 14.62 -49.24 20.0 -1 300.0 14.64 -49.15 20.0 -1 300.0 14.66 -49.05 20.0 -1 300.0 14.66 -48.94 20.0 -1 300.0 14.65 -48.84 20.0 -1 300.0 14.63 -48.73 20.0 -1 300.0 14.58 -48.62 20.0 -1 300.0 14.53 -48.5 20.0 -1 300.0 14.46 -48.39 20.0 -1 300.0 14.38 -48.27 20.0 -1 300.0 14.28 -48.15 20.0 -1 300.0 14.17 -48.02 20.0 -1 300.0 14.04 -47.9 20.0 -1 300.0 13.9 -47.77 20.0 -1 300.0 13.75 -47.63 20.0 -1 300.0 13.4 -47.37 20.0 -1 300.0 13.21 -47.23 20.0 -1 300.0 13.0 -47.09 20.0 -1 300.0 12.55 -46.8 20.0 -1 300.0 11.5 -46.21 20.0 -1 300.0 11.21 -46.06 20.0 -1 300.0 10.92 -45.9 20.0 -1 300.0 10.29 -45.59 20.0 -1 300.0 8.92 -44.95 20.0 -1 300.0 5.87 -43.61 20.0 -1 300.0 5.47 -43.44 20.0 -1 300.0 5.06 -43.27 20.0 -1 300.0 4.25 -42.93 20.0 -1 300.0 2.6 -42.24 20.0 -1 300.0 -0.6 -40.87 20.0 -1 300.0 -1.02 -40.68 20.0 -1 300.0 -1.44 -40.49 20.0 -1 300.0 -2.26 -40.12 20.0 -1 300.0 -3.76 -39.38 20.0 -1 300.0 -4.11 -39.2 20.0 -1 300.0 -4.45 -39.02 20.0 -1 300.0 -5.08 -38.66 20.0 -1 300.0 -5.38 -38.49 20.0 -1 300.0 -5.66 -38.32 20.0 -1 300.0 -6.18 -37.98 20.0 -1 300.0 -6.42 -37.81 20.0 -1 300.0 -6.64 -37.65 20.0 -1 300.0 -6.84 -37.48 20.0 -1 300.0 -7.03 -37.32 20.0 -1 300.0 -7.2 -37.16 20.0 -1 300.0 -7.35 -37.01 20.0 -1 300.0 -7.49 -36.86 20.0 -1 300.0 -7.61 -36.71 20.0 -1 300.0 -7.71 -36.56 20.0 -1 300.0 -7.79 -36.41 20.0 -1 300.0 -7.86 -36.27 20.0 -1 300.0 -7.9 -36.13 20.0 -1 300.0 -7.93 -36.0 20.0 -1 300.0 -7.95 -35.86 20.0 -1 300.0 -7.94 -35.73 20.0 -1 300.0 -7.92 -35.61 20.0 -1 300.0 -7.88 -35.48 20.0 -1 300.0 -7.82 -35.36 20.0 -1 300.0 -7.74 -35.25 20.0 -1 300.0 -7.65 -35.13 20.0 -1 300.0 -7.54 -35.02 20.0 -1 300.0 -7.42 -34.92 20.0 -1 300.0 -7.28 -34.81 20.0 -1 300.0 -7.12 -34.72 20.0 -1 300.0 -6.95 -34.62 20.0 -1 300.0 -6.76 -34.53 20.0 -1 300.0 -6.56 -34.44 20.0 -1 300.0 -6.34 -34.36 20.0 -1 300.0 -6.12 -34.28 20.0 -1 300.0 -5.87 -34.2 20.0 -1 300.0 -5.62 -34.13 20.0 -1 300.0 -5.35 -34.06 20.0 -1 300.0 -5.08 -33.99 20.0 -1 300.0 -4.79 -33.93 20.0 -1 300.0 -4.49 -33.88 20.0 -1 300.0 -4.18 -33.82 20.0 -1 300.0 -3.86 -33.77 20.0 -1 300.0 -3.54 -33.73 20.0 -1 300.0 -3.21 -33.69 20.0 -1 300.0 -2.87 -33.66 20.0 -1 300.0 -2.52 -33.62 20.0 -1 300.0 -2.17 -33.6 20.0 -1 300.0 -1.82 -33.57 20.0 -1 300.0 -1.46 -33.55 20.0 -1 300.0 -1.1 -33.54 20.0 -1 300.0 -0.73 -33.53 20.0 -1 300.0 -0.37 -33.52 20.0 -1 300.0 0.0 -33.52 20.0 -0 300.0 0.0 -33.52 6.0 -0 300.0 37.56 12.33 6.0 -1 300.0 37.56 12.33 -1.0 -1 300.0 37.56 0.88 -1.0 -1 300.0 49.01 0.88 -1.0 -1 300.0 49.01 12.33 -1.0 -1 300.0 37.56 12.33 -1.0 -0 300.0 37.56 12.33 6.0 -0 300.0 37.56 0.88 6.0 -1 300.0 37.56 0.88 -1.0 -1 300.0 37.56 -10.57 -1.0 -1 300.0 49.01 -10.57 -1.0 -1 300.0 49.01 0.88 -1.0 -1 300.0 37.56 0.88 -1.0 -0 300.0 37.56 0.88 6.0 -0 300.0 49.01 12.33 6.0 -1 300.0 49.01 12.33 -1.0 -1 300.0 52.08 15.01 -1.0 -0 300.0 52.08 15.01 6.0 -0 300.0 49.01 0.88 6.0 -1 300.0 49.01 0.88 -1.0 -1 300.0 52.08 6.21 -1.0 -1 300.0 52.08 15.01 -1.0 -1 300.0 43.29 15.01 -1.0 -1 300.0 37.56 12.33 -1.0 -0 300.0 37.56 12.33 6.0 -0 300.0 49.01 -10.57 6.0 -1 300.0 49.01 -10.57 -1.0 -1 300.0 52.08 -2.58 -1.0 -1 300.0 52.08 6.21 -1.0 -1 300.0 49.01 0.88 -1.0 -0 300.0 49.01 0.88 6.0 -0 300.0 49.01 0.88 20.0 -0 300.0 0.0 0.0 20.0 -0 300.0 0.0 0.0 20.0 diff --git a/test/matlab/matlab_convert.py b/test/matlab/matlab_convert.py deleted file mode 100755 index cf750ac..0000000 --- a/test/matlab/matlab_convert.py +++ /dev/null @@ -1,270 +0,0 @@ -#!/usr/bin/env python -"""\ -The MIT License (MIT) - -Copyright (c) 2014 Sungeun K. Jeon - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. ----------------------------------------------------------------------------------------- -""" -"""\ -G-code preprocessor for the grbl_sim.m MATLAB script. Parses the g-code program to a -specific file format for the MATLAB script to use. Based on PreGrbl by @chamnit. - -How to use: When running this python script, it will process the g-code program under -the filename "test.gcode" (may be changed below) and produces a file called "matlab.gcode" -that the grbl_sim.m MATLAB script will search for and execute. -""" - -import re -from math import * -from copy import * - -# -= SETTINGS =- -filein = 'test.gcode' # Input file name -fileout = 'matlab.gcode' # Output file name -ndigits_in = 4 # inch significant digits after '.' -ndigits_mm = 2 # mm significant digits after '.' -# mm_per_arc_segment = 0.38 # mm per arc segment -arc_tolerance = 0.00005*25.4 -n_arc_correction = 20 -inch2mm = 25.4 # inch to mm conversion scalar -verbose = False # Verbose flag to show all progress -remove_unsupported = True # Removal flag for all unsupported statements - -# Initialize parser state -gc = { 'current_xyz' : [0,0,0], - 'feed_rate' : 0, # F0 - 'motion_mode' : 'SEEK', # G00 - 'plane_axis' : [0,1,2], # G17 - 'inches_mode' : False, # G21 - 'inverse_feedrate_mode' : False, # G94 - 'absolute_mode' : True} # G90 - -def unit_conv(val) : # Converts value to mm - if gc['inches_mode'] : val *= inch2mm - return(val) - -def fout_conv(val) : # Returns converted value as rounded string for output file. - if gc['inches_mode'] : return( str(round(val/inch2mm,ndigits_in)) ) - else : return( str(round(val,ndigits_mm)) ) - -# Open g-code file -fin = open(filein,'r'); -fout = open(fileout,'w'); - -# Iterate through g-code file -l_count = 0 -for line in fin: - l_count += 1 # Iterate line counter - - # Strip comments/spaces/tabs/new line and capitalize. Comment MSG not supported. - block = re.sub('\s|\(.*?\)','',line).upper() - block = re.sub('\\\\','',block) # Strip \ block delete character - block = re.sub('%','',block) # Strip % program start/stop character - - if len(block) == 0 : # Ignore empty blocks - - print "Skipping: " + line.strip() - - else : # Process valid g-code clean block. Assumes no block delete characters or comments - - g_cmd = re.findall(r'[^0-9\.\-]+',block) # Extract block command characters - g_num = re.findall(r'[0-9\.\-]+',block) # Extract block numbers - - # G-code block error checks - # if len(g_cmd) != len(g_num) : print block; raise Exception('Invalid block. Unbalanced word and values.') - if 'N' in g_cmd : - if g_cmd[0]!='N': raise Exception('Line number must be first command in line.') - if g_cmd.count('N') > 1: raise Exception('More than one line number in block.') - g_cmd = g_cmd[1:] # Remove line number word - g_num = g_num[1:] - # Block item repeat checks? (0<=n'M'<5, G/M modal groups) - - # Initialize block state - blk = { 'next_action' : 'DEFAULT', - 'absolute_override' : False, - 'target_xyz' : deepcopy(gc['current_xyz']), - 'offset_ijk' : [0,0,0], - 'radius_mode' : False, - 'unsupported': [] } - - # Pass 1 - for cmd,num in zip(g_cmd,g_num) : - fnum = float(num) - inum = int(fnum) - if cmd is 'G' : - if inum is 0 : gc['motion_mode'] = 'SEEK' - elif inum is 1 : gc['motion_mode'] = 'LINEAR' - elif inum is 2 : gc['motion_mode'] = 'CW_ARC' - elif inum is 3 : gc['motion_mode'] = 'CCW_ARC' - elif inum is 4 : blk['next_action'] = 'DWELL' - elif inum is 17 : gc['plane_axis'] = [0,1,2] # Select XY Plane - elif inum is 18 : gc['plane_axis'] = [0,2,1] # Select XZ Plane - elif inum is 19 : gc['plane_axis'] = [1,2,0] # Select YZ Plane - elif inum is 20 : gc['inches_mode'] = True - elif inum is 21 : gc['inches_mode'] = False - elif inum in [28,30] : blk['next_action'] = 'GO_HOME' - elif inum is 53 : blk['absolute_override'] = True - elif inum is 54 : pass - elif inum is 80 : gc['motion_mode'] = 'MOTION_CANCEL' - elif inum is 90 : gc['absolute_mode'] = True - elif inum is 91 : gc['absolute_mode'] = False - elif inum is 92 : blk['next_action'] = 'SET_OFFSET' - elif inum is 93 : gc['inverse_feedrate_mode'] = True - elif inum is 94 : gc['inverse_feedrate_mode'] = False - else : - print 'Unsupported command ' + cmd + num + ' on line ' + str(l_count) - if remove_unsupported : blk['unsupported'].append(zip(g_cmd,g_num).index((cmd,num))) - elif cmd is 'M' : - if inum in [0,1] : pass # Program Pause - elif inum in [2,30,60] : pass # Program Completed - elif inum is 3 : pass # Spindle Direction 1 - elif inum is 4 : pass # Spindle Direction -1 - elif inum is 5 : pass # Spindle Direction 0 - else : - print 'Unsupported command ' + cmd + num + ' on line ' + str(l_count) - if remove_unsupported : blk['unsupported'].append(zip(g_cmd,g_num).index((cmd,num))) - elif cmd is 'T' : pass # Tool Number - - # Pass 2 - for cmd,num in zip(g_cmd,g_num) : - fnum = float(num) - if cmd is 'F' : gc['feed_rate'] = unit_conv(fnum) # Feed Rate - elif cmd in ['I','J','K'] : blk['offset_ijk'][ord(cmd)-ord('I')] = unit_conv(fnum) # Arc Center Offset - elif cmd is 'N' : pass - elif cmd is 'P' : p = fnum # Misc value parameter - elif cmd is 'R' : r = unit_conv(fnum); blk['radius_mode'] = True # Arc Radius Mode - elif cmd is 'S' : pass # Spindle Speed - elif cmd in ['X','Y','Z'] : # Target Coordinates - if (gc['absolute_mode'] | blk['absolute_override']) : - blk['target_xyz'][ord(cmd)-ord('X')] = unit_conv(fnum) - else : - blk['target_xyz'][ord(cmd)-ord('X')] += unit_conv(fnum) - - # Execute actions - if blk['next_action'] is 'GO_HOME' : - gc['current_xyz'] = deepcopy(blk['target_xyz']) # Update position - elif blk['next_action'] is 'SET_OFFSET' : - pass - elif blk['next_action'] is 'DWELL' : - if p < 0 : raise Exception('Dwell time negative.') - else : # 'DEFAULT' - if gc['motion_mode'] is 'SEEK' : - fout.write('0 '+fout_conv(gc['feed_rate'])) - fout.write(' '+fout_conv(blk['target_xyz'][0])) - fout.write(' '+fout_conv(blk['target_xyz'][1])) - fout.write(' '+fout_conv(blk['target_xyz'][2])) - fout.write('\n') - gc['current_xyz'] = deepcopy(blk['target_xyz']) # Update position - elif gc['motion_mode'] is 'LINEAR' : - fout.write('1 '+fout_conv(gc['feed_rate'])) - fout.write(' '+fout_conv(blk['target_xyz'][0])) - fout.write(' '+fout_conv(blk['target_xyz'][1])) - fout.write(' '+fout_conv(blk['target_xyz'][2])) - fout.write('\n') - gc['current_xyz'] = deepcopy(blk['target_xyz']) # Update position - elif gc['motion_mode'] in ['CW_ARC','CCW_ARC'] : - axis = gc['plane_axis'] - - # Convert radius mode to ijk mode - if blk['radius_mode'] : - x = blk['target_xyz'][axis[0]]-gc['current_xyz'][axis[0]] - y = blk['target_xyz'][axis[1]]-gc['current_xyz'][axis[1]] - if not (x==0 and y==0) : raise Exception('Same target and current XYZ not allowed in arc radius mode.') - h_x2_div_d = -sqrt(4 * r*r - x*x - y*y)/hypot(x,y) - if isnan(h_x2_div_d) : raise Exception('Floating point error in arc conversion') - if gc['motion_mode'] is 'CCW_ARC' : h_x2_div_d = -h_x2_div_d - if r < 0 : h_x2_div_d = -h_x2_div_d - blk['offset_ijk'][axis[0]] = (x-(y*h_x2_div_d))/2; - blk['offset_ijk'][axis[1]] = (y+(x*h_x2_div_d))/2; - else : - radius = sqrt(blk['offset_ijk'][axis[0]]**2+blk['offset_ijk'][axis[1]]**2) - - center_axis0 = gc['current_xyz'][axis[0]]+blk['offset_ijk'][axis[0]] - center_axis1 = gc['current_xyz'][axis[1]]+blk['offset_ijk'][axis[1]] - linear_travel = blk['target_xyz'][axis[2]]-gc['current_xyz'][axis[2]] - r_axis0 = -blk['offset_ijk'][axis[0]] - r_axis1 = -blk['offset_ijk'][axis[1]] - rt_axis0 = blk['target_xyz'][axis[0]] - center_axis0; - rt_axis1 = blk['target_xyz'][axis[1]] - center_axis1; - clockwise_sign = 1 - if gc['motion_mode'] is 'CW_ARC' : clockwise_sign = -1 - - angular_travel = atan2(r_axis0*rt_axis1-r_axis1*rt_axis0, r_axis0*rt_axis0+r_axis1*rt_axis1) - if gc['motion_mode'] is 'CW_ARC' : - if angular_travel >= 0 : - angular_travel -= 2*pi - else : - if angular_travel <= 0 : - angular_travel += 2*pi - - millimeters_of_travel = sqrt((angular_travel*radius)**2 + abs(linear_travel)**2) - - mm_per_arc_segment = sqrt(4*(2*radius*arc_tolerance-arc_tolerance**2)) - segments = int(millimeters_of_travel/mm_per_arc_segment) - print segments - print l_count - theta_per_segment = angular_travel/segments - linear_per_segment = linear_travel/segments - cos_T = 1-0.5*theta_per_segment*theta_per_segment - sin_T = theta_per_segment-theta_per_segment**3/6 - print(fout_conv(mm_per_arc_segment)) - print theta_per_segment*180/pi - - arc_target = [0,0,0] - arc_target[axis[2]] = gc['current_xyz'][axis[2]] - - count = 0 - for i in range(1,segments+1) : - if i < segments : - if count < n_arc_correction : - r_axisi = r_axis0*sin_T + r_axis1*cos_T - r_axis0 = r_axis0*cos_T - r_axis1*sin_T - r_axis1 = deepcopy(r_axisi) - count += 1 - else : - cos_Ti = cos((i-1)*theta_per_segment) - sin_Ti = sin((i-1)*theta_per_segment) - print n_arc_correction*(r_axis0 -( -blk['offset_ijk'][axis[0]]*cos_Ti + blk['offset_ijk'][axis[1]]*sin_Ti)) - print n_arc_correction*(r_axis1 -( -blk['offset_ijk'][axis[0]]*sin_Ti - blk['offset_ijk'][axis[1]]*cos_Ti)) - cos_Ti = cos(i*theta_per_segment) - sin_Ti = sin(i*theta_per_segment) - r_axis0 = -blk['offset_ijk'][axis[0]]*cos_Ti + blk['offset_ijk'][axis[1]]*sin_Ti - r_axis1 = -blk['offset_ijk'][axis[0]]*sin_Ti - blk['offset_ijk'][axis[1]]*cos_Ti - count = 0 - arc_target[axis[0]] = center_axis0 + r_axis0 - arc_target[axis[1]] = center_axis1 + r_axis1 - arc_target[axis[2]] += linear_per_segment - else : - arc_target = deepcopy(blk['target_xyz']) # Last segment at target_xyz - # Write only changed variables. - fout.write('1 '+fout_conv(gc['feed_rate'])) - fout.write(' '+fout_conv(arc_target[0])) - fout.write(' '+fout_conv(arc_target[1])) - fout.write(' '+fout_conv(arc_target[2])) - fout.write('\n') - gc['current_xyz'] = deepcopy(arc_target) # Update position - - -print 'Done!' - -# Close files -fin.close() -fout.close() \ No newline at end of file diff --git a/test/matlab/test.gcode b/test/matlab/test.gcode deleted file mode 100644 index 3d9d56c..0000000 --- a/test/matlab/test.gcode +++ /dev/null @@ -1,2363 +0,0 @@ -(Braid.NC Test Program) -T1M6 -G17G21 -G0X0Y0 -G0Z6.000 -G0X37.560Y12.327Z6.000 -G1Z-1.000 F300 -G1Y0.876 -X49.011 -Y12.327 -X37.560 -G0Z6.000 -G0Y0.876 -G1Z-1.000 -G1Y-10.575 -X49.011 -Y0.876 -X37.560 -G0Z6.000 -G0X49.011Y12.327 -G1Z-1.000 -G1X52.084Y15.011 -G0Z6.000 -G0X49.011Y0.876 -G1Z-1.000 -G1X52.084Y6.213 -Y15.011 -X43.286 -X37.560Y12.327 -G0Z6.000 -G0X49.011Y-10.575 -G1Z-1.000 -G1X52.084Y-2.585 -Y6.213 -X49.011Y0.876 -G0Z6.000 -G0Z20.000 -G0X0.000Y0.000 -G1X-7.098Y-39.876 -X-10.296Y-38.118 -X-10.698Y-37.897 -X-11.099Y-37.676 -X-11.894Y-37.235 -X-13.448Y-36.356 -X-13.825Y-36.137 -X-14.197Y-35.919 -X-14.923Y-35.485 -X-16.288Y-34.625 -X-16.636Y-34.395 -X-16.973Y-34.165 -X-17.613Y-33.711 -X-17.915Y-33.486 -X-18.204Y-33.262 -X-18.743Y-32.821 -X-18.992Y-32.602 -X-19.227Y-32.386 -X-19.447Y-32.171 -X-19.652Y-31.959 -X-19.843Y-31.749 -X-20.017Y-31.540 -X-20.176Y-31.335 -X-20.320Y-31.131 -X-20.447Y-30.930 -X-20.558Y-30.731 -X-20.653Y-30.535 -X-20.731Y-30.341 -X-20.793Y-30.150 -X-20.838Y-29.961 -X-20.867Y-29.776 -X-20.879Y-29.593 -X-20.875Y-29.413 -X-20.854Y-29.236 -X-20.817Y-29.062 -X-20.764Y-28.891 -X-20.695Y-28.723 -X-20.610Y-28.559 -X-20.510Y-28.397 -X-20.394Y-28.239 -X-20.263Y-28.084 -X-20.117Y-27.932 -X-19.957Y-27.784 -X-19.782Y-27.639 -X-19.594Y-27.498 -X-19.392Y-27.360 -X-19.177Y-27.226 -X-18.950Y-27.095 -X-18.710Y-26.968 -X-18.459Y-26.845 -X-18.197Y-26.725 -X-17.924Y-26.609 -X-17.641Y-26.497 -X-17.349Y-26.389 -X-16.737Y-26.183 -X-16.419Y-26.086 -X-16.094Y-25.993 -X-15.763Y-25.904 -X-15.426Y-25.818 -X-15.083Y-25.737 -X-14.736Y-25.660 -X-14.030Y-25.516 -X-13.672Y-25.451 -X-13.313Y-25.389 -X-12.953Y-25.332 -X-12.591Y-25.278 -X-12.230Y-25.228 -X-11.870Y-25.182 -X-11.511Y-25.140 -X-11.155Y-25.103 -X-10.824Y-25.071 -X-10.497Y-25.043 -X-10.173Y-25.018 -X-9.853Y-24.996 -X-9.538Y-24.978 -X-9.228Y-24.964 -X-8.924Y-24.952 -X-8.625Y-24.944 -X-8.334Y-24.940 -X-8.049Y-24.939 -X-7.772Y-24.941 -X-7.504Y-24.946 -X-7.243Y-24.955 -X-6.992Y-24.967 -X-6.750Y-24.982 -X-6.518Y-25.000 -X-6.295Y-25.022 -X-6.084Y-25.047 -X-5.883Y-25.075 -X-5.694Y-25.106 -X-5.517Y-25.140 -X-5.351Y-25.177 -X-5.197Y-25.217 -X-5.057Y-25.260 -X-4.928Y-25.306 -X-4.813Y-25.355 -X-4.711Y-25.407 -X-4.623Y-25.461 -X-4.548Y-25.518 -X-4.487Y-25.578 -X-4.439Y-25.641 -X-4.406Y-25.707 -X-4.387Y-25.775 -X-4.382Y-25.845 -X-4.392Y-25.918 -X-4.416Y-25.994 -X-4.454Y-26.072 -X-4.506Y-26.152 -X-4.572Y-26.235 -X-4.653Y-26.320 -X-4.748Y-26.407 -X-4.857Y-26.496 -X-4.980Y-26.588 -X-5.117Y-26.681 -X-5.267Y-26.777 -X-5.431Y-26.874 -X-5.798Y-27.074 -X-6.001Y-27.177 -X-6.216Y-27.282 -X-6.683Y-27.496 -X-7.755Y-27.942 -X-8.049Y-28.057 -X-8.353Y-28.173 -X-8.990Y-28.409 -X-10.362Y-28.891 -X-10.753Y-29.024 -X-11.151Y-29.158 -X-11.968Y-29.428 -X-13.658Y-29.973 -X-17.113Y-31.067 -X-17.538Y-31.202 -X-17.959Y-31.337 -X-18.788Y-31.604 -X-20.370Y-32.127 -X-20.746Y-32.255 -X-21.113Y-32.382 -X-21.817Y-32.631 -X-23.093Y-33.111 -X-23.381Y-33.226 -X-23.656Y-33.339 -X-24.164Y-33.560 -X-24.397Y-33.667 -X-24.615Y-33.772 -X-25.005Y-33.974 -X-25.177Y-34.072 -X-25.332Y-34.167 -X-25.472Y-34.259 -X-25.595Y-34.349 -X-25.701Y-34.436 -X-25.791Y-34.520 -X-25.864Y-34.601 -X-25.920Y-34.679 -X-25.960Y-34.754 -X-25.982Y-34.826 -X-25.987Y-34.895 -X-25.976Y-34.961 -X-25.948Y-35.023 -X-25.903Y-35.082 -X-25.841Y-35.138 -X-25.763Y-35.190 -X-25.669Y-35.239 -X-25.559Y-35.284 -X-25.433Y-35.325 -X-25.291Y-35.363 -X-25.134Y-35.397 -X-24.963Y-35.428 -X-24.777Y-35.455 -X-24.577Y-35.477 -X-24.367Y-35.496 -X-24.144Y-35.511 -X-23.909Y-35.522 -X-23.661Y-35.529 -X-23.403Y-35.532 -X-23.133Y-35.532 -X-22.853Y-35.527 -X-22.563Y-35.519 -X-22.263Y-35.506 -X-21.955Y-35.490 -X-21.638Y-35.470 -X-21.313Y-35.445 -X-20.981Y-35.416 -X-20.643Y-35.384 -X-20.299Y-35.347 -X-19.949Y-35.306 -X-19.595Y-35.261 -X-19.237Y-35.212 -X-18.875Y-35.158 -X-18.511Y-35.101 -X-18.145Y-35.039 -X-17.777Y-34.973 -X-17.041Y-34.829 -X-16.673Y-34.751 -X-16.306Y-34.668 -X-15.580Y-34.491 -X-15.222Y-34.396 -X-14.867Y-34.297 -X-14.172Y-34.086 -X-13.833Y-33.975 -X-13.501Y-33.859 -X-13.176Y-33.740 -X-12.858Y-33.616 -X-12.548Y-33.488 -X-12.248Y-33.357 -X-11.675Y-33.082 -X-11.404Y-32.938 -X-11.144Y-32.791 -X-10.896Y-32.639 -X-10.659Y-32.484 -X-10.435Y-32.326 -X-10.223Y-32.163 -X-10.025Y-31.997 -X-9.840Y-31.827 -X-9.669Y-31.653 -X-9.512Y-31.476 -X-9.370Y-31.295 -X-9.242Y-31.111 -X-9.130Y-30.923 -X-9.033Y-30.732 -X-8.951Y-30.538 -X-8.885Y-30.340 -X-8.835Y-30.139 -X-8.801Y-29.934 -X-8.782Y-29.727 -X-8.780Y-29.517 -X-8.794Y-29.303 -X-8.825Y-29.087 -X-8.871Y-28.867 -X-8.934Y-28.645 -X-9.006Y-28.435 -X-9.093Y-28.223 -X-9.194Y-28.008 -X-9.308Y-27.792 -X-9.435Y-27.573 -X-9.577Y-27.352 -X-9.898Y-26.903 -X-10.078Y-26.676 -X-10.271Y-26.446 -X-10.693Y-25.982 -X-10.922Y-25.748 -X-11.162Y-25.511 -X-11.675Y-25.034 -X-11.948Y-24.793 -X-12.230Y-24.550 -X-12.824Y-24.061 -X-14.114Y-23.068 -X-17.000Y-21.038 -X-17.380Y-20.782 -X-17.762Y-20.525 -X-18.532Y-20.010 -X-20.077Y-18.979 -X-20.462Y-18.721 -X-20.845Y-18.464 -X-21.602Y-17.949 -X-23.072Y-16.925 -X-23.427Y-16.671 -X-23.776Y-16.417 -X-24.454Y-15.911 -X-25.717Y-14.911 -X-26.011Y-14.664 -X-26.295Y-14.418 -X-26.833Y-13.930 -X-27.086Y-13.688 -X-27.328Y-13.447 -X-27.777Y-12.971 -X-28.000Y-12.715 -X-28.209Y-12.461 -X-28.404Y-12.210 -X-28.583Y-11.961 -X-28.746Y-11.713 -X-28.894Y-11.469 -X-29.026Y-11.226 -X-29.142Y-10.986 -X-29.242Y-10.749 -X-29.325Y-10.514 -X-29.391Y-10.281 -X-29.441Y-10.052 -X-29.475Y-9.825 -X-29.491Y-9.601 -X-29.491Y-9.380 -X-29.475Y-9.162 -X-29.441Y-8.947 -X-29.391Y-8.735 -X-29.325Y-8.526 -X-29.242Y-8.320 -X-29.144Y-8.118 -X-29.029Y-7.919 -X-28.899Y-7.723 -X-28.753Y-7.531 -X-28.592Y-7.342 -X-28.416Y-7.156 -X-28.226Y-6.974 -X-28.022Y-6.796 -X-27.804Y-6.621 -X-27.572Y-6.450 -X-27.071Y-6.119 -X-26.802Y-5.959 -X-26.522Y-5.803 -X-25.929Y-5.502 -X-25.617Y-5.358 -X-25.296Y-5.217 -X-24.628Y-4.948 -X-24.283Y-4.819 -X-23.930Y-4.694 -X-23.207Y-4.457 -X-22.838Y-4.344 -X-22.465Y-4.236 -X-21.707Y-4.031 -X-21.325Y-3.935 -X-20.941Y-3.842 -X-20.170Y-3.670 -X-19.786Y-3.590 -X-19.402Y-3.515 -X-18.642Y-3.375 -X-18.266Y-3.312 -X-17.894Y-3.252 -X-17.527Y-3.197 -X-17.164Y-3.145 -X-16.808Y-3.098 -X-16.459Y-3.055 -X-16.116Y-3.015 -X-15.781Y-2.980 -X-15.477Y-2.951 -X-15.179Y-2.925 -X-14.891Y-2.902 -X-14.611Y-2.883 -X-14.340Y-2.867 -X-14.078Y-2.855 -X-13.827Y-2.845 -X-13.586Y-2.839 -X-13.355Y-2.837 -X-13.136Y-2.837 -X-12.929Y-2.841 -X-12.733Y-2.848 -X-12.549Y-2.858 -X-12.378Y-2.871 -X-12.220Y-2.888 -X-12.074Y-2.907 -X-11.942Y-2.929 -X-11.823Y-2.955 -X-11.717Y-2.983 -X-11.626Y-3.014 -X-11.548Y-3.048 -X-11.484Y-3.084 -X-11.435Y-3.124 -X-11.400Y-3.166 -X-11.379Y-3.210 -X-11.372Y-3.258 -X-11.380Y-3.308 -X-11.403Y-3.360 -X-11.440Y-3.415 -X-11.491Y-3.472 -X-11.556Y-3.532 -X-11.636Y-3.594 -X-11.729Y-3.658 -X-11.837Y-3.724 -X-11.959Y-3.793 -X-12.094Y-3.863 -X-12.242Y-3.936 -X-12.404Y-4.010 -X-12.767Y-4.165 -X-12.967Y-4.245 -X-13.179Y-4.327 -X-13.639Y-4.495 -X-14.691Y-4.850 -X-14.979Y-4.942 -X-15.277Y-5.036 -X-15.897Y-5.225 -X-17.230Y-5.617 -X-20.146Y-6.431 -X-20.516Y-6.532 -X-20.887Y-6.634 -X-21.630Y-6.837 -X-23.106Y-7.241 -X-25.895Y-8.028 -X-26.218Y-8.123 -X-26.535Y-8.218 -X-27.145Y-8.403 -X-28.260Y-8.760 -X-28.514Y-8.846 -X-28.759Y-8.930 -X-29.214Y-9.095 -X-29.425Y-9.175 -X-29.624Y-9.253 -X-29.986Y-9.404 -X-30.149Y-9.477 -X-30.298Y-9.548 -X-30.435Y-9.617 -X-30.559Y-9.684 -X-30.669Y-9.749 -X-30.766Y-9.812 -X-30.849Y-9.872 -X-30.918Y-9.931 -X-30.974Y-9.987 -X-31.016Y-10.041 -X-31.043Y-10.092 -X-31.057Y-10.141 -X-31.057Y-10.188 -X-31.043Y-10.232 -X-31.015Y-10.273 -X-30.972Y-10.312 -X-30.916Y-10.349 -X-30.847Y-10.382 -X-30.763Y-10.413 -X-30.666Y-10.441 -X-30.556Y-10.466 -X-30.432Y-10.489 -X-30.295Y-10.508 -X-30.146Y-10.525 -X-29.984Y-10.539 -X-29.809Y-10.549 -X-29.622Y-10.557 -X-29.424Y-10.562 -X-29.214Y-10.563 -X-28.992Y-10.562 -X-28.760Y-10.557 -X-28.517Y-10.549 -X-28.242Y-10.537 -X-27.955Y-10.521 -X-27.657Y-10.501 -X-27.349Y-10.477 -X-27.031Y-10.450 -X-26.703Y-10.418 -X-26.366Y-10.383 -X-26.021Y-10.343 -X-25.668Y-10.300 -X-25.308Y-10.253 -X-24.568Y-10.146 -X-24.191Y-10.086 -X-23.808Y-10.023 -X-23.032Y-9.883 -X-22.640Y-9.807 -X-22.245Y-9.728 -X-21.453Y-9.556 -X-21.057Y-9.463 -X-20.662Y-9.367 -X-19.876Y-9.162 -X-19.487Y-9.054 -X-19.101Y-8.941 -X-18.343Y-8.704 -X-17.972Y-8.579 -X-17.606Y-8.450 -X-16.896Y-8.180 -X-16.552Y-8.040 -X-16.217Y-7.895 -X-15.574Y-7.594 -X-15.268Y-7.438 -X-14.972Y-7.277 -X-14.414Y-6.946 -X-14.153Y-6.774 -X-13.905Y-6.599 -X-13.669Y-6.420 -X-13.447Y-6.237 -X-13.239Y-6.051 -X-13.044Y-5.862 -X-12.864Y-5.669 -X-12.699Y-5.472 -X-12.549Y-5.272 -X-12.414Y-5.069 -X-12.294Y-4.862 -X-12.190Y-4.652 -X-12.102Y-4.439 -X-12.030Y-4.223 -X-11.975Y-4.003 -X-11.935Y-3.781 -X-11.911Y-3.555 -X-11.904Y-3.327 -X-11.914Y-3.096 -X-11.939Y-2.862 -X-11.981Y-2.625 -X-12.038Y-2.386 -X-12.112Y-2.144 -X-12.202Y-1.899 -X-12.300Y-1.669 -X-12.412Y-1.436 -X-12.537Y-1.201 -X-12.675Y-0.965 -X-12.826Y-0.726 -X-12.990Y-0.486 -X-13.355Y0.001 -X-13.555Y0.246 -X-13.768Y0.494 -X-14.226Y0.993 -X-15.266Y2.009 -X-15.550Y2.266 -X-15.842Y2.524 -X-16.451Y3.043 -X-17.752Y4.093 -X-20.572Y6.219 -X-20.935Y6.486 -X-21.298Y6.753 -X-22.024Y7.287 -X-23.456Y8.353 -X-23.807Y8.618 -X-24.154Y8.883 -X-24.835Y9.411 -X-26.125Y10.458 -X-26.431Y10.717 -X-26.728Y10.975 -X-27.297Y11.489 -X-27.568Y11.744 -X-27.830Y11.997 -X-28.322Y12.500 -X-28.552Y12.749 -X-28.771Y12.997 -X-28.978Y13.243 -X-29.174Y13.487 -X-29.357Y13.729 -X-29.528Y13.970 -X-29.686Y14.209 -X-29.831Y14.446 -X-29.974Y14.700 -X-30.101Y14.953 -X-30.212Y15.202 -X-30.307Y15.449 -X-30.385Y15.694 -X-30.447Y15.936 -X-30.492Y16.175 -X-30.521Y16.411 -X-30.532Y16.644 -X-30.527Y16.874 -X-30.505Y17.102 -X-30.466Y17.326 -X-30.411Y17.547 -X-30.338Y17.765 -X-30.249Y17.980 -X-30.144Y18.191 -X-30.022Y18.399 -X-29.884Y18.603 -X-29.730Y18.805 -X-29.561Y19.002 -X-29.376Y19.196 -X-29.176Y19.386 -X-28.962Y19.573 -X-28.733Y19.756 -X-28.490Y19.935 -X-28.233Y20.111 -X-27.964Y20.282 -X-27.681Y20.450 -X-27.386Y20.614 -X-27.080Y20.774 -X-26.434Y21.081 -X-26.096Y21.229 -X-25.748Y21.373 -X-25.025Y21.648 -X-24.652Y21.780 -X-24.272Y21.907 -X-23.493Y22.149 -X-23.095Y22.264 -X-22.693Y22.375 -X-21.877Y22.583 -X-21.466Y22.681 -X-21.053Y22.775 -X-20.223Y22.949 -X-19.809Y23.030 -X-19.396Y23.107 -X-18.575Y23.247 -X-18.169Y23.311 -X-17.767Y23.371 -X-16.977Y23.478 -X-16.591Y23.525 -X-16.211Y23.568 -X-15.838Y23.606 -X-15.473Y23.641 -X-15.116Y23.671 -X-14.769Y23.698 -X-14.430Y23.720 -X-14.102Y23.739 -X-13.791Y23.753 -X-13.490Y23.763 -X-13.200Y23.769 -X-12.922Y23.772 -X-12.657Y23.771 -X-12.404Y23.766 -X-12.164Y23.758 -X-11.937Y23.746 -X-11.724Y23.730 -X-11.525Y23.711 -X-11.340Y23.688 -X-11.171Y23.662 -X-11.016Y23.633 -X-10.876Y23.600 -X-10.752Y23.564 -X-10.643Y23.524 -X-10.549Y23.481 -X-10.472Y23.435 -X-10.411Y23.386 -X-10.365Y23.334 -X-10.336Y23.279 -X-10.323Y23.221 -X-10.326Y23.161 -X-10.344Y23.097 -X-10.379Y23.030 -X-10.430Y22.961 -X-10.497Y22.889 -X-10.579Y22.815 -X-10.676Y22.738 -X-10.789Y22.659 -X-10.917Y22.577 -X-11.060Y22.493 -X-11.217Y22.407 -X-11.389Y22.318 -X-11.773Y22.135 -X-11.985Y22.041 -X-12.210Y21.945 -X-12.697Y21.747 -X-12.958Y21.645 -X-13.230Y21.542 -X-13.806Y21.331 -X-15.066Y20.894 -X-15.401Y20.782 -X-15.742Y20.670 -X-16.442Y20.441 -X-17.896Y19.977 -X-20.868Y19.035 -X-21.208Y18.926 -X-21.545Y18.817 -X-22.208Y18.600 -X-23.472Y18.173 -X-23.772Y18.068 -X-24.066Y17.964 -X-24.629Y17.759 -X-25.650Y17.361 -X-25.881Y17.265 -X-26.101Y17.170 -X-26.509Y16.984 -X-26.696Y16.893 -X-26.871Y16.804 -X-27.184Y16.631 -X-27.322Y16.547 -X-27.447Y16.465 -X-27.559Y16.385 -X-27.658Y16.306 -X-27.743Y16.230 -X-27.815Y16.156 -X-27.873Y16.084 -X-27.917Y16.014 -X-27.947Y15.946 -X-27.963Y15.880 -X-27.965Y15.817 -X-27.953Y15.756 -X-27.927Y15.697 -X-27.887Y15.641 -X-27.832Y15.588 -X-27.764Y15.537 -X-27.681Y15.488 -X-27.585Y15.442 -X-27.475Y15.399 -X-27.351Y15.358 -X-27.214Y15.321 -X-27.063Y15.286 -X-26.899Y15.253 -X-26.723Y15.224 -X-26.533Y15.198 -X-26.332Y15.174 -X-26.118Y15.154 -X-25.892Y15.136 -X-25.654Y15.122 -X-25.405Y15.110 -X-25.145Y15.102 -X-24.875Y15.097 -X-24.594Y15.095 -X-24.304Y15.096 -X-24.004Y15.100 -X-23.694Y15.107 -X-23.377Y15.118 -X-23.051Y15.132 -X-22.717Y15.149 -X-22.376Y15.170 -X-21.998Y15.196 -X-21.613Y15.226 -X-21.221Y15.260 -X-20.822Y15.298 -X-20.418Y15.340 -X-20.010Y15.385 -X-19.180Y15.489 -X-18.761Y15.547 -X-18.339Y15.609 -X-17.492Y15.744 -X-17.067Y15.818 -X-16.644Y15.896 -X-15.800Y16.064 -X-15.382Y16.154 -X-14.967Y16.248 -X-14.150Y16.448 -X-13.749Y16.554 -X-13.354Y16.664 -X-12.583Y16.895 -X-12.209Y17.017 -X-11.844Y17.142 -X-11.140Y17.405 -X-10.803Y17.542 -X-10.477Y17.683 -X-9.858Y17.975 -X-9.566Y18.127 -X-9.287Y18.283 -X-9.021Y18.442 -X-8.768Y18.604 -X-8.529Y18.771 -X-8.305Y18.940 -X-8.094Y19.113 -X-7.899Y19.290 -X-7.718Y19.470 -X-7.553Y19.653 -X-7.403Y19.839 -X-7.270Y20.029 -X-7.152Y20.221 -X-7.050Y20.417 -X-6.965Y20.616 -X-6.895Y20.818 -X-6.843Y21.023 -X-6.806Y21.230 -X-6.787Y21.441 -X-6.783Y21.654 -X-6.796Y21.870 -X-6.826Y22.088 -X-6.872Y22.309 -X-6.933Y22.532 -X-7.011Y22.758 -X-7.104Y22.986 -X-7.213Y23.217 -X-7.338Y23.449 -X-7.477Y23.684 -X-7.631Y23.921 -X-7.982Y24.401 -X-8.165Y24.627 -X-8.360Y24.855 -X-8.782Y25.315 -X-9.751Y26.251 -X-10.017Y26.488 -X-10.291Y26.726 -X-10.863Y27.204 -X-12.089Y28.170 -X-12.409Y28.413 -X-12.734Y28.657 -X-13.395Y29.145 -X-14.749Y30.124 -X-17.457Y32.077 -X-17.785Y32.320 -X-18.108Y32.561 -X-18.740Y33.042 -X-19.930Y33.994 -X-20.210Y34.229 -X-20.481Y34.463 -X-20.997Y34.927 -X-21.240Y35.157 -X-21.474Y35.386 -X-21.910Y35.838 -X-22.111Y36.062 -X-22.302Y36.284 -X-22.480Y36.505 -X-22.646Y36.723 -X-22.800Y36.940 -X-22.941Y37.155 -X-23.069Y37.367 -X-23.183Y37.578 -X-23.285Y37.786 -X-23.373Y37.993 -X-23.447Y38.197 -X-23.507Y38.398 -X-23.553Y38.598 -X-23.585Y38.795 -X-23.602Y38.989 -X-23.606Y39.181 -X-23.593Y39.386 -X-23.563Y39.588 -X-23.516Y39.787 -X-23.452Y39.983 -X-23.372Y40.175 -X-23.274Y40.364 -X-23.160Y40.550 -X-23.029Y40.732 -X-22.882Y40.910 -X-22.719Y41.086 -X-22.539Y41.257 -X-22.344Y41.425 -X-22.134Y41.589 -X-21.908Y41.749 -X-21.668Y41.906 -X-21.413Y42.059 -X-21.144Y42.208 -X-20.862Y42.353 -X-20.566Y42.494 -X-20.257Y42.631 -X-19.937Y42.763 -X-19.604Y42.892 -X-18.906Y43.138 -X-18.542Y43.254 -X-18.168Y43.366 -X-17.785Y43.474 -X-17.394Y43.578 -X-16.995Y43.678 -X-16.589Y43.773 -X-15.758Y43.950 -X-15.335Y44.033 -X-14.908Y44.111 -X-14.476Y44.184 -X-14.042Y44.253 -X-13.606Y44.318 -X-13.168Y44.379 -X-12.289Y44.486 -X-11.851Y44.534 -X-11.414Y44.576 -X-10.978Y44.615 -X-10.546Y44.649 -X-10.116Y44.679 -X-9.691Y44.704 -X-9.271Y44.726 -X-8.856Y44.742 -X-8.447Y44.755 -X-8.044Y44.763 -X-7.650Y44.767 -X-7.263Y44.766 -X-6.885Y44.762 -X-6.516Y44.753 -X-6.157Y44.740 -X-5.808Y44.723 -X-5.471Y44.702 -X-5.145Y44.676 -X-4.830Y44.647 -X-4.529Y44.613 -X-4.240Y44.576 -X-3.965Y44.535 -X-3.703Y44.489 -X-3.456Y44.440 -X-3.227Y44.388 -X-3.013Y44.332 -X-2.813Y44.273 -X-2.629Y44.210 -X-2.459Y44.144 -X-2.305Y44.074 -X-2.167Y44.001 -X-2.044Y43.925 -X-1.938Y43.845 -X-1.847Y43.762 -X-1.773Y43.675 -X-1.715Y43.586 -X-1.673Y43.494 -X-1.647Y43.398 -X-1.638Y43.299 -X-1.645Y43.198 -X-1.667Y43.094 -X-1.706Y42.987 -X-1.761Y42.877 -X-1.832Y42.765 -X-1.918Y42.650 -X-2.019Y42.532 -X-2.135Y42.412 -X-2.267Y42.290 -X-2.412Y42.166 -X-2.572Y42.039 -X-2.934Y41.779 -X-3.134Y41.646 -X-3.347Y41.511 -X-3.810Y41.235 -X-4.059Y41.095 -X-4.319Y40.953 -X-4.869Y40.664 -X-6.076Y40.071 -X-8.785Y38.840 -X-9.139Y38.683 -X-9.494Y38.526 -X-10.205Y38.212 -X-11.612Y37.583 -X-14.215Y36.343 -X-14.490Y36.201 -X-14.756Y36.061 -X-15.263Y35.782 -X-15.503Y35.645 -X-15.734Y35.508 -X-16.165Y35.239 -X-16.365Y35.106 -X-16.553Y34.975 -X-16.730Y34.845 -X-16.895Y34.717 -X-17.049Y34.590 -X-17.190Y34.465 -X-17.318Y34.341 -X-17.434Y34.219 -X-17.537Y34.099 -X-17.626Y33.981 -X-17.702Y33.865 -X-17.764Y33.751 -X-17.813Y33.639 -X-17.847Y33.528 -X-17.868Y33.420 -X-17.875Y33.315 -X-17.867Y33.211 -X-17.845Y33.110 -X-17.809Y33.011 -X-17.759Y32.914 -X-17.695Y32.820 -X-17.616Y32.728 -X-17.523Y32.639 -X-17.417Y32.552 -X-17.296Y32.468 -X-17.162Y32.387 -X-17.014Y32.308 -X-16.852Y32.232 -X-16.677Y32.159 -X-16.489Y32.089 -X-16.288Y32.021 -X-16.075Y31.956 -X-15.849Y31.895 -X-15.611Y31.836 -X-15.361Y31.780 -X-15.099Y31.727 -X-14.827Y31.677 -X-14.543Y31.631 -X-14.250Y31.587 -X-13.946Y31.547 -X-13.632Y31.509 -X-13.309Y31.475 -X-12.977Y31.444 -X-12.637Y31.417 -X-12.289Y31.392 -X-11.933Y31.371 -X-11.570Y31.353 -X-11.201Y31.338 -X-10.825Y31.327 -X-10.444Y31.319 -X-10.058Y31.314 -X-9.667Y31.313 -X-9.273Y31.315 -X-8.874Y31.320 -X-8.473Y31.329 -X-8.069Y31.341 -X-7.630Y31.358 -X-7.188Y31.379 -X-6.746Y31.404 -X-6.303Y31.433 -X-5.861Y31.466 -X-5.421Y31.503 -X-4.982Y31.544 -X-4.546Y31.589 -X-4.113Y31.638 -X-3.684Y31.691 -X-3.260Y31.748 -X-2.841Y31.809 -X-2.428Y31.873 -X-2.021Y31.942 -X-1.231Y32.091 -X-0.848Y32.171 -X-0.475Y32.255 -X-0.110Y32.343 -X0.243Y32.434 -X0.587Y32.530 -X0.919Y32.629 -X1.547Y32.838 -X1.842Y32.948 -X2.124Y33.061 -X2.392Y33.178 -X2.647Y33.299 -X2.887Y33.423 -X3.112Y33.550 -X3.323Y33.681 -X3.518Y33.815 -X3.698Y33.952 -X3.862Y34.092 -X4.010Y34.236 -X4.142Y34.383 -X4.257Y34.533 -X4.356Y34.685 -X4.439Y34.841 -X4.505Y35.000 -X4.554Y35.161 -X4.586Y35.325 -X4.602Y35.492 -X4.602Y35.662 -X4.584Y35.834 -X4.551Y36.008 -X4.501Y36.185 -X4.435Y36.364 -X4.353Y36.546 -X4.255Y36.730 -X4.142Y36.916 -X4.014Y37.104 -X3.871Y37.294 -X3.713Y37.486 -X3.356Y37.876 -X3.157Y38.073 -X2.944Y38.272 -X2.483Y38.675 -X1.425Y39.496 -X1.155Y39.690 -X0.877Y39.885 -X0.300Y40.277 -X-0.925Y41.070 -X-3.540Y42.667 -X-3.871Y42.867 -X-4.202Y43.066 -X-4.858Y43.463 -X-6.136Y44.252 -X-6.444Y44.447 -X-6.748Y44.642 -X-7.337Y45.028 -X-8.430Y45.788 -X-8.682Y45.975 -X-8.926Y46.161 -X-9.383Y46.527 -X-9.596Y46.708 -X-9.799Y46.887 -X-10.170Y47.241 -X-10.337Y47.415 -X-10.493Y47.587 -X-10.636Y47.757 -X-10.766Y47.925 -X-10.884Y48.091 -X-10.988Y48.255 -X-11.078Y48.416 -X-11.155Y48.576 -X-11.218Y48.733 -X-11.267Y48.888 -X-11.301Y49.040 -X-11.322Y49.190 -X-11.328Y49.337 -X-11.319Y49.482 -X-11.296Y49.624 -X-11.259Y49.763 -X-11.207Y49.900 -X-11.140Y50.033 -X-11.059Y50.164 -X-10.963Y50.293 -X-10.853Y50.418 -X-10.729Y50.540 -X-10.591Y50.659 -X-10.439Y50.775 -X-10.276Y50.886 -X-10.100Y50.994 -X-9.912Y51.098 -X-9.710Y51.200 -X-9.496Y51.298 -X-9.270Y51.394 -X-8.783Y51.574 -X-8.522Y51.660 -X-8.250Y51.742 -X-7.968Y51.821 -X-7.675Y51.897 -X-7.372Y51.969 -X-7.059Y52.038 -X-6.407Y52.165 -X-6.068Y52.223 -X-5.722Y52.278 -X-5.368Y52.330 -X-5.006Y52.378 -X-4.639Y52.422 -X-4.265Y52.463 -X-3.886Y52.500 -X-3.501Y52.533 -X-3.112Y52.563 -X-2.719Y52.590 -X-2.322Y52.613 -X-1.923Y52.632 -X-1.521Y52.647 -X-1.116Y52.659 -X-0.711Y52.667 -X-0.304Y52.672 -X0.103Y52.673 -X0.510Y52.670 -X0.916Y52.664 -X1.321Y52.654 -X1.724Y52.640 -X2.125Y52.623 -X2.524Y52.602 -X2.919Y52.577 -X3.310Y52.549 -X3.696Y52.517 -X4.078Y52.481 -X4.455Y52.442 -X4.826Y52.400 -X5.190Y52.354 -X5.548Y52.304 -X5.898Y52.251 -X6.241Y52.194 -X6.576Y52.134 -X6.902Y52.070 -X7.219Y52.003 -X7.526Y51.933 -X7.824Y51.859 -X8.389Y51.701 -X8.656Y51.617 -X8.911Y51.530 -X9.154Y51.439 -X9.386Y51.346 -X9.606Y51.249 -X9.814Y51.149 -X10.009Y51.046 -X10.191Y50.939 -X10.374Y50.821 -X10.541Y50.698 -X10.693Y50.573 -X10.829Y50.444 -X10.948Y50.311 -X11.052Y50.175 -X11.139Y50.036 -X11.209Y49.894 -X11.263Y49.748 -X11.301Y49.600 -X11.323Y49.448 -X11.327Y49.293 -X11.316Y49.136 -X11.288Y48.975 -X11.245Y48.812 -X11.185Y48.646 -X11.109Y48.478 -X11.018Y48.307 -X10.912Y48.133 -X10.790Y47.957 -X10.654Y47.779 -X10.503Y47.598 -X10.159Y47.230 -X9.967Y47.043 -X9.762Y46.854 -X9.314Y46.470 -X8.282Y45.681 -X7.999Y45.480 -X7.707Y45.278 -X7.098Y44.870 -X5.798Y44.041 -X3.014Y42.350 -X2.662Y42.138 -X2.311Y41.925 -X1.617Y41.500 -X0.273Y40.654 -X-0.049Y40.444 -X-0.365Y40.234 -X-0.975Y39.817 -X-2.088Y38.994 -X-2.324Y38.805 -X-2.551Y38.617 -X-2.974Y38.245 -X-3.170Y38.061 -X-3.354Y37.878 -X-3.687Y37.516 -X-3.836Y37.338 -X-3.972Y37.162 -X-4.096Y36.987 -X-4.206Y36.813 -X-4.304Y36.642 -X-4.388Y36.473 -X-4.459Y36.305 -X-4.515Y36.139 -X-4.558Y35.976 -X-4.587Y35.815 -X-4.602Y35.655 -X-4.603Y35.498 -X-4.589Y35.343 -X-4.561Y35.191 -X-4.519Y35.041 -X-4.462Y34.893 -X-4.391Y34.748 -X-4.306Y34.605 -X-4.207Y34.465 -X-4.094Y34.327 -X-3.967Y34.192 -X-3.826Y34.060 -X-3.671Y33.930 -X-3.503Y33.803 -X-3.321Y33.679 -X-3.126Y33.558 -X-2.919Y33.440 -X-2.698Y33.324 -X-2.466Y33.212 -X-2.221Y33.102 -X-1.697Y32.893 -X-1.418Y32.792 -X-1.128Y32.695 -X-0.828Y32.601 -X-0.518Y32.510 -X-0.198Y32.422 -X0.131Y32.338 -X0.814Y32.178 -X1.168Y32.104 -X1.529Y32.032 -X1.897Y31.964 -X2.271Y31.899 -X2.651Y31.838 -X3.037Y31.780 -X3.822Y31.674 -X4.221Y31.626 -X4.622Y31.581 -X5.027Y31.540 -X5.434Y31.502 -X5.842Y31.468 -X6.252Y31.437 -X6.662Y31.410 -X7.072Y31.386 -X7.515Y31.363 -X7.957Y31.345 -X8.398Y31.331 -X8.835Y31.321 -X9.269Y31.315 -X9.699Y31.313 -X10.123Y31.315 -X10.543Y31.321 -X10.956Y31.330 -X11.362Y31.344 -X11.761Y31.362 -X12.152Y31.383 -X12.534Y31.409 -X12.907Y31.438 -X13.269Y31.471 -X13.622Y31.508 -X13.963Y31.549 -X14.293Y31.593 -X14.611Y31.641 -X14.916Y31.693 -X15.209Y31.749 -X15.487Y31.808 -X15.753Y31.870 -X16.003Y31.936 -X16.240Y32.006 -X16.461Y32.079 -X16.667Y32.155 -X16.858Y32.235 -X17.033Y32.318 -X17.191Y32.404 -X17.334Y32.493 -X17.460Y32.586 -X17.570Y32.681 -X17.662Y32.780 -X17.739Y32.881 -X17.798Y32.986 -X17.840Y33.093 -X17.866Y33.203 -X17.875Y33.316 -X17.867Y33.431 -X17.842Y33.549 -X17.801Y33.670 -X17.743Y33.793 -X17.669Y33.918 -X17.579Y34.045 -X17.473Y34.175 -X17.352Y34.307 -X17.215Y34.441 -X17.063Y34.577 -X16.897Y34.715 -X16.522Y34.997 -X16.314Y35.140 -X16.093Y35.285 -X15.614Y35.580 -X15.357Y35.729 -X15.089Y35.879 -X14.522Y36.184 -X13.280Y36.806 -X12.957Y36.960 -X12.628Y37.115 -X11.954Y37.427 -X10.561Y38.054 -X7.746Y39.303 -X7.404Y39.457 -X7.067Y39.611 -X6.409Y39.915 -X5.172Y40.511 -X4.883Y40.657 -X4.603Y40.802 -X4.074Y41.087 -X3.825Y41.227 -X3.588Y41.365 -X3.148Y41.636 -X2.947Y41.769 -X2.760Y41.900 -X2.585Y42.029 -X2.425Y42.156 -X2.278Y42.280 -X2.146Y42.402 -X2.028Y42.522 -X1.926Y42.639 -X1.839Y42.754 -X1.767Y42.866 -X1.711Y42.976 -X1.671Y43.083 -X1.646Y43.187 -X1.638Y43.289 -X1.645Y43.387 -X1.669Y43.483 -X1.709Y43.576 -X1.765Y43.665 -X1.838Y43.752 -X1.926Y43.835 -X2.030Y43.915 -X2.150Y43.992 -X2.286Y44.065 -X2.438Y44.135 -X2.605Y44.202 -X2.787Y44.265 -X2.984Y44.324 -X3.195Y44.380 -X3.421Y44.433 -X3.661Y44.481 -X3.915Y44.526 -X4.182Y44.568 -X4.443Y44.603 -X4.714Y44.635 -X4.996Y44.663 -X5.289Y44.688 -X5.591Y44.710 -X5.902Y44.728 -X6.223Y44.743 -X6.552Y44.754 -X6.890Y44.762 -X7.235Y44.766 -X7.587Y44.767 -X7.946Y44.764 -X8.311Y44.758 -X8.683Y44.748 -X9.059Y44.735 -X9.440Y44.717 -X9.826Y44.697 -X10.216Y44.672 -X10.608Y44.644 -X11.004Y44.613 -X11.401Y44.578 -X11.800Y44.539 -X12.602Y44.450 -X13.003Y44.400 -X13.403Y44.347 -X13.803Y44.289 -X14.201Y44.229 -X14.596Y44.164 -X14.990Y44.096 -X15.766Y43.949 -X16.148Y43.870 -X16.525Y43.787 -X17.263Y43.611 -X17.623Y43.518 -X17.976Y43.421 -X18.661Y43.217 -X18.991Y43.109 -X19.313Y42.999 -X19.626Y42.884 -X19.929Y42.767 -X20.223Y42.645 -X20.506Y42.521 -X21.041Y42.262 -X21.292Y42.127 -X21.531Y41.990 -X21.758Y41.849 -X21.974Y41.704 -X22.176Y41.557 -X22.366Y41.407 -X22.544Y41.253 -X22.708Y41.097 -X22.859Y40.937 -X22.996Y40.775 -X23.119Y40.609 -X23.229Y40.441 -X23.325Y40.269 -X23.407Y40.095 -X23.475Y39.919 -X23.529Y39.739 -X23.571Y39.541 -X23.597Y39.341 -X23.606Y39.137 -X23.599Y38.930 -X23.575Y38.721 -X23.534Y38.508 -X23.477Y38.293 -X23.404Y38.075 -X23.315Y37.855 -X23.211Y37.632 -X23.091Y37.406 -X22.955Y37.178 -X22.805Y36.948 -X22.640Y36.716 -X22.268Y36.244 -X22.061Y36.005 -X21.841Y35.765 -X21.364Y35.278 -X20.274Y34.284 -X19.975Y34.031 -X19.668Y33.778 -X19.029Y33.267 -X17.670Y32.234 -X17.316Y31.974 -X16.959Y31.713 -X16.236Y31.190 -X14.771Y30.140 -X14.405Y29.877 -X14.040Y29.614 -X13.319Y29.089 -X11.923Y28.043 -X11.588Y27.783 -X11.260Y27.524 -X10.626Y27.008 -X10.322Y26.752 -X10.027Y26.497 -X9.467Y25.990 -X9.203Y25.738 -X8.951Y25.488 -X8.482Y24.992 -X8.266Y24.747 -X8.064Y24.503 -X7.700Y24.021 -X7.550Y23.799 -X7.412Y23.578 -X7.288Y23.359 -X7.177Y23.143 -X7.079Y22.928 -X6.995Y22.715 -X6.925Y22.504 -X6.868Y22.295 -X6.826Y22.089 -X6.798Y21.884 -X6.784Y21.682 -X6.785Y21.483 -X6.800Y21.285 -X6.829Y21.091 -X6.873Y20.898 -X6.931Y20.708 -X7.003Y20.521 -X7.090Y20.336 -X7.191Y20.154 -X7.306Y19.975 -X7.434Y19.799 -X7.577Y19.625 -X7.733Y19.454 -X7.903Y19.286 -X8.085Y19.121 -X8.281Y18.959 -X8.489Y18.800 -X8.710Y18.644 -X8.943Y18.491 -X9.188Y18.341 -X9.711Y18.051 -X9.989Y17.910 -X10.278Y17.773 -X10.884Y17.508 -X11.201Y17.381 -X11.527Y17.257 -X12.203Y17.019 -X12.552Y16.905 -X12.908Y16.795 -X13.639Y16.584 -X14.012Y16.484 -X14.390Y16.387 -X15.159Y16.204 -X15.548Y16.118 -X15.940Y16.035 -X16.729Y15.880 -X17.126Y15.808 -X17.522Y15.739 -X18.315Y15.612 -X18.709Y15.554 -X19.102Y15.499 -X19.492Y15.448 -X19.879Y15.401 -X20.263Y15.357 -X20.642Y15.316 -X21.017Y15.279 -X21.387Y15.245 -X21.744Y15.215 -X22.095Y15.189 -X22.440Y15.166 -X22.778Y15.146 -X23.109Y15.129 -X23.431Y15.116 -X23.746Y15.106 -X24.052Y15.099 -X24.349Y15.095 -X24.636Y15.095 -X24.914Y15.097 -X25.181Y15.103 -X25.438Y15.112 -X25.684Y15.123 -X25.919Y15.138 -X26.142Y15.156 -X26.354Y15.177 -X26.553Y15.200 -X26.740Y15.227 -X26.914Y15.256 -X27.076Y15.288 -X27.225Y15.323 -X27.360Y15.361 -X27.482Y15.402 -X27.591Y15.445 -X27.686Y15.491 -X27.767Y15.539 -X27.835Y15.590 -X27.888Y15.643 -X27.928Y15.699 -X27.954Y15.757 -X27.965Y15.818 -X27.963Y15.881 -X27.947Y15.946 -X27.917Y16.014 -X27.873Y16.083 -X27.816Y16.155 -X27.744Y16.229 -X27.660Y16.305 -X27.562Y16.382 -X27.451Y16.462 -X27.327Y16.544 -X27.042Y16.712 -X26.881Y16.799 -X26.707Y16.887 -X26.326Y17.069 -X26.118Y17.162 -X25.900Y17.256 -X25.433Y17.449 -X24.385Y17.849 -X21.934Y18.690 -X21.575Y18.807 -X21.212Y18.925 -X20.474Y19.161 -X18.977Y19.635 -X16.040Y20.572 -X15.691Y20.686 -X15.348Y20.800 -X14.684Y21.024 -X13.458Y21.457 -X13.176Y21.562 -X12.904Y21.666 -X12.396Y21.868 -X12.159Y21.966 -X11.936Y22.063 -X11.528Y22.250 -X11.345Y22.340 -X11.176Y22.429 -X11.022Y22.515 -X10.882Y22.599 -X10.757Y22.681 -X10.648Y22.760 -X10.554Y22.836 -X10.476Y22.910 -X10.413Y22.982 -X10.367Y23.051 -X10.337Y23.117 -X10.323Y23.180 -X10.325Y23.240 -X10.344Y23.298 -X10.379Y23.352 -X10.430Y23.403 -X10.497Y23.452 -X10.580Y23.497 -X10.680Y23.538 -X10.795Y23.577 -X10.926Y23.612 -X11.072Y23.644 -X11.233Y23.673 -X11.410Y23.698 -X11.601Y23.719 -X11.807Y23.737 -X12.027Y23.751 -X12.260Y23.762 -X12.507Y23.769 -X12.767Y23.772 -X13.040Y23.771 -X13.325Y23.767 -X13.601Y23.760 -X13.887Y23.749 -X14.182Y23.734 -X14.486Y23.717 -X14.799Y23.696 -X15.120Y23.671 -X15.448Y23.643 -X15.784Y23.612 -X16.126Y23.577 -X16.475Y23.538 -X16.829Y23.496 -X17.188Y23.450 -X17.552Y23.401 -X17.921Y23.348 -X18.667Y23.232 -X19.045Y23.169 -X19.424Y23.102 -X20.187Y22.957 -X20.569Y22.879 -X20.951Y22.797 -X21.712Y22.623 -X22.090Y22.531 -X22.466Y22.435 -X23.208Y22.232 -X23.574Y22.125 -X23.935Y22.015 -X24.641Y21.784 -X24.985Y21.663 -X25.323Y21.538 -X25.977Y21.279 -X26.292Y21.144 -X26.599Y21.006 -X27.186Y20.719 -X27.465Y20.571 -X27.734Y20.419 -X27.993Y20.264 -X28.241Y20.106 -X28.477Y19.944 -X28.702Y19.779 -X29.116Y19.440 -X29.305Y19.266 -X29.481Y19.088 -X29.644Y18.908 -X29.794Y18.724 -X29.930Y18.538 -X30.053Y18.349 -X30.162Y18.156 -X30.258Y17.961 -X30.339Y17.763 -X30.406Y17.563 -X30.459Y17.359 -X30.498Y17.153 -X30.522Y16.944 -X30.532Y16.733 -X30.528Y16.519 -X30.510Y16.303 -X30.474Y16.066 -X30.421Y15.826 -X30.352Y15.583 -X30.266Y15.337 -X30.164Y15.089 -X30.046Y14.839 -X29.912Y14.586 -X29.762Y14.330 -X29.597Y14.073 -X29.417Y13.813 -X29.014Y13.287 -X28.791Y13.021 -X28.555Y12.753 -X28.044Y12.211 -X27.769Y11.938 -X27.483Y11.663 -X26.879Y11.109 -X25.553Y9.985 -X22.573Y7.693 -X22.183Y7.405 -X21.791Y7.116 -X21.005Y6.537 -X19.442Y5.382 -X19.058Y5.094 -X18.678Y4.806 -X17.931Y4.232 -X16.513Y3.095 -X16.178Y2.813 -X15.852Y2.532 -X15.229Y1.974 -X14.933Y1.697 -X14.649Y1.422 -X14.115Y0.876 -X13.867Y0.606 -X13.632Y0.337 -X13.411Y0.071 -X13.204Y-0.194 -X13.010Y-0.457 -X12.832Y-0.717 -X12.668Y-0.976 -X12.520Y-1.232 -X12.395Y-1.469 -X12.284Y-1.703 -X12.188Y-1.936 -X12.105Y-2.167 -X12.036Y-2.395 -X11.982Y-2.621 -X11.942Y-2.844 -X11.916Y-3.065 -X11.905Y-3.284 -X11.908Y-3.500 -X11.926Y-3.713 -X11.959Y-3.924 -X12.005Y-4.132 -X12.067Y-4.338 -X12.142Y-4.540 -X12.232Y-4.740 -X12.336Y-4.937 -X12.453Y-5.131 -X12.584Y-5.322 -X12.729Y-5.510 -X12.887Y-5.695 -X13.059Y-5.877 -X13.243Y-6.055 -X13.439Y-6.231 -X13.648Y-6.403 -X13.869Y-6.572 -X14.101Y-6.738 -X14.345Y-6.901 -X14.599Y-7.060 -X14.864Y-7.216 -X15.423Y-7.518 -X15.717Y-7.664 -X16.020Y-7.806 -X16.650Y-8.080 -X16.976Y-8.212 -X17.309Y-8.340 -X17.994Y-8.586 -X18.344Y-8.704 -X18.700Y-8.818 -X19.423Y-9.035 -X20.902Y-9.426 -X21.276Y-9.515 -X21.650Y-9.600 -X22.396Y-9.759 -X22.767Y-9.833 -X23.137Y-9.903 -X23.868Y-10.033 -X24.228Y-10.092 -X24.584Y-10.148 -X24.936Y-10.200 -X25.282Y-10.249 -X25.622Y-10.294 -X25.956Y-10.336 -X26.604Y-10.408 -X26.910Y-10.438 -X27.208Y-10.465 -X27.498Y-10.489 -X27.779Y-10.509 -X28.051Y-10.527 -X28.313Y-10.540 -X28.565Y-10.551 -X28.807Y-10.558 -X29.038Y-10.562 -X29.258Y-10.563 -X29.466Y-10.561 -X29.663Y-10.556 -X29.848Y-10.547 -X30.020Y-10.536 -X30.180Y-10.522 -X30.327Y-10.504 -X30.462Y-10.484 -X30.583Y-10.461 -X30.690Y-10.435 -X30.784Y-10.406 -X30.865Y-10.374 -X30.932Y-10.340 -X30.984Y-10.303 -X31.023Y-10.263 -X31.048Y-10.221 -X31.058Y-10.176 -X31.055Y-10.128 -X31.037Y-10.078 -X31.006Y-10.026 -X30.960Y-9.971 -X30.900Y-9.914 -X30.827Y-9.855 -X30.739Y-9.794 -X30.638Y-9.730 -X30.524Y-9.664 -X30.396Y-9.596 -X30.255Y-9.527 -X30.100Y-9.455 -X29.754Y-9.306 -X29.562Y-9.228 -X29.359Y-9.149 -X28.917Y-8.986 -X27.902Y-8.642 -X27.624Y-8.553 -X27.336Y-8.462 -X26.734Y-8.278 -X25.440Y-7.896 -X22.592Y-7.100 -X22.191Y-6.990 -X21.787Y-6.879 -X20.978Y-6.659 -X19.371Y-6.218 -X18.976Y-6.109 -X18.584Y-6.000 -X17.814Y-5.783 -X16.349Y-5.360 -X16.002Y-5.257 -X15.664Y-5.155 -X15.016Y-4.954 -X14.708Y-4.856 -X14.410Y-4.759 -X13.850Y-4.569 -X13.589Y-4.477 -X13.340Y-4.387 -X12.883Y-4.212 -X12.675Y-4.127 -X12.482Y-4.045 -X12.140Y-3.886 -X11.991Y-3.810 -X11.859Y-3.737 -X11.741Y-3.665 -X11.640Y-3.597 -X11.555Y-3.531 -X11.486Y-3.467 -X11.433Y-3.406 -X11.397Y-3.348 -X11.377Y-3.293 -X11.373Y-3.241 -X11.386Y-3.191 -X11.415Y-3.145 -X11.460Y-3.101 -X11.522Y-3.061 -X11.600Y-3.024 -X11.694Y-2.990 -X11.803Y-2.959 -X11.928Y-2.932 -X12.068Y-2.908 -X12.223Y-2.887 -X12.393Y-2.870 -X12.578Y-2.856 -X12.776Y-2.846 -X12.989Y-2.840 -X13.214Y-2.837 -X13.453Y-2.838 -X13.704Y-2.842 -X13.967Y-2.850 -X14.242Y-2.862 -X14.527Y-2.878 -X14.824Y-2.897 -X15.130Y-2.921 -X15.425Y-2.946 -X15.727Y-2.975 -X16.037Y-3.007 -X16.353Y-3.042 -X16.676Y-3.081 -X17.005Y-3.124 -X17.678Y-3.219 -X18.021Y-3.272 -X18.368Y-3.329 -X19.071Y-3.452 -X19.426Y-3.519 -X19.783Y-3.590 -X20.499Y-3.742 -X20.857Y-3.823 -X21.214Y-3.908 -X21.925Y-4.088 -X22.277Y-4.183 -X22.626Y-4.282 -X23.314Y-4.491 -X23.652Y-4.600 -X23.984Y-4.713 -X24.632Y-4.949 -X24.947Y-5.073 -X25.254Y-5.199 -X25.846Y-5.463 -X26.129Y-5.600 -X26.404Y-5.740 -X26.669Y-5.884 -X26.925Y-6.031 -X27.170Y-6.181 -X27.405Y-6.334 -X27.842Y-6.650 -X28.043Y-6.813 -X28.232Y-6.979 -X28.409Y-7.149 -X28.573Y-7.321 -X28.725Y-7.496 -X28.863Y-7.674 -X28.989Y-7.855 -X29.101Y-8.039 -X29.199Y-8.226 -X29.283Y-8.416 -X29.353Y-8.609 -X29.409Y-8.804 -X29.451Y-9.002 -X29.479Y-9.203 -X29.492Y-9.406 -X29.491Y-9.612 -X29.475Y-9.820 -X29.445Y-10.031 -X29.401Y-10.244 -X29.342Y-10.459 -X29.269Y-10.677 -X29.181Y-10.897 -X29.080Y-11.119 -X28.964Y-11.344 -X28.823Y-11.589 -X28.666Y-11.837 -X28.493Y-12.087 -X28.305Y-12.340 -X28.102Y-12.594 -X27.883Y-12.851 -X27.403Y-13.370 -X27.142Y-13.632 -X26.868Y-13.897 -X26.281Y-14.430 -X24.969Y-15.514 -X24.615Y-15.788 -X24.252Y-16.064 -X23.501Y-16.617 -X21.917Y-17.734 -X18.570Y-19.985 -X18.148Y-20.266 -X17.729Y-20.547 -X16.897Y-21.108 -X15.285Y-22.222 -X14.896Y-22.498 -X14.515Y-22.774 -X13.775Y-23.321 -X12.409Y-24.400 -X12.095Y-24.666 -X11.792Y-24.930 -X11.223Y-25.453 -X10.958Y-25.712 -X10.707Y-25.968 -X10.246Y-26.475 -X10.038Y-26.725 -X9.845Y-26.973 -X9.667Y-27.218 -X9.505Y-27.461 -X9.359Y-27.702 -X9.229Y-27.940 -X9.115Y-28.175 -X9.017Y-28.407 -X8.938Y-28.632 -X8.874Y-28.855 -X8.827Y-29.074 -X8.796Y-29.291 -X8.781Y-29.505 -X8.782Y-29.716 -X8.799Y-29.923 -X8.833Y-30.128 -X8.882Y-30.329 -X8.947Y-30.527 -X9.028Y-30.722 -X9.125Y-30.914 -X9.236Y-31.102 -X9.363Y-31.286 -X9.505Y-31.467 -X9.661Y-31.645 -X9.832Y-31.819 -X10.016Y-31.989 -X10.214Y-32.155 -X10.425Y-32.318 -X10.649Y-32.477 -X10.885Y-32.633 -X11.393Y-32.932 -X11.664Y-33.076 -X11.945Y-33.215 -X12.536Y-33.483 -X12.846Y-33.611 -X13.163Y-33.735 -X13.821Y-33.971 -X14.160Y-34.082 -X14.504Y-34.190 -X15.209Y-34.393 -X15.568Y-34.488 -X15.930Y-34.579 -X16.661Y-34.748 -X17.029Y-34.827 -X17.397Y-34.901 -X17.766Y-34.971 -X18.134Y-35.037 -X18.501Y-35.099 -X18.865Y-35.157 -X19.585Y-35.260 -X19.940Y-35.305 -X20.290Y-35.346 -X20.634Y-35.383 -X20.973Y-35.416 -X21.305Y-35.444 -X21.630Y-35.469 -X21.947Y-35.490 -X22.256Y-35.506 -X22.556Y-35.519 -X22.847Y-35.527 -X23.128Y-35.532 -X23.398Y-35.532 -X23.657Y-35.529 -X23.904Y-35.522 -X24.140Y-35.511 -X24.363Y-35.496 -X24.559Y-35.479 -X24.745Y-35.459 -X24.918Y-35.435 -X25.079Y-35.408 -X25.228Y-35.378 -X25.364Y-35.345 -X25.487Y-35.309 -X25.597Y-35.269 -X25.694Y-35.227 -X25.777Y-35.182 -X25.847Y-35.133 -X25.902Y-35.082 -X25.944Y-35.028 -X25.972Y-34.972 -X25.986Y-34.912 -X25.986Y-34.850 -X25.971Y-34.785 -X25.942Y-34.717 -X25.899Y-34.647 -X25.842Y-34.575 -X25.771Y-34.499 -X25.685Y-34.422 -X25.586Y-34.342 -X25.472Y-34.260 -X25.345Y-34.175 -X25.204Y-34.088 -X24.883Y-33.909 -X24.702Y-33.815 -X24.509Y-33.720 -X24.085Y-33.525 -X23.855Y-33.424 -X23.613Y-33.321 -X23.095Y-33.112 -X21.933Y-32.673 -X19.198Y-31.738 -X12.952Y-29.747 -X12.533Y-29.612 -X12.117Y-29.477 -X11.302Y-29.208 -X9.752Y-28.680 -X9.384Y-28.550 -X9.026Y-28.422 -X8.340Y-28.168 -X7.104Y-27.677 -X6.826Y-27.559 -X6.561Y-27.442 -X6.073Y-27.213 -X5.850Y-27.102 -X5.643Y-26.992 -X5.272Y-26.780 -X5.111Y-26.677 -X4.965Y-26.577 -X4.835Y-26.479 -X4.721Y-26.383 -X4.623Y-26.290 -X4.542Y-26.199 -X4.478Y-26.112 -X4.430Y-26.026 -X4.398Y-25.944 -X4.384Y-25.865 -X4.385Y-25.788 -X4.403Y-25.714 -X4.438Y-25.644 -X4.489Y-25.576 -X4.556Y-25.512 -X4.639Y-25.450 -X4.738Y-25.392 -X4.852Y-25.337 -X4.981Y-25.286 -X5.126Y-25.238 -X5.285Y-25.193 -X5.458Y-25.152 -X5.646Y-25.115 -X5.847Y-25.080 -X6.061Y-25.050 -X6.287Y-25.023 -X6.527Y-25.000 -X6.777Y-24.980 -X7.040Y-24.964 -X7.313Y-24.952 -X7.596Y-24.944 -X7.889Y-24.939 -X8.191Y-24.939 -X8.502Y-24.942 -X8.820Y-24.949 -X9.146Y-24.960 -X9.478Y-24.975 -X9.817Y-24.994 -X10.161Y-25.017 -X10.510Y-25.044 -X10.839Y-25.072 -X11.171Y-25.104 -X11.506Y-25.140 -X11.842Y-25.179 -X12.180Y-25.221 -X12.519Y-25.267 -X13.196Y-25.370 -X13.534Y-25.427 -X13.870Y-25.487 -X14.204Y-25.550 -X14.535Y-25.617 -X14.864Y-25.688 -X15.188Y-25.762 -X15.824Y-25.920 -X16.134Y-26.004 -X16.438Y-26.092 -X16.736Y-26.183 -X17.027Y-26.277 -X17.311Y-26.375 -X17.587Y-26.476 -X18.113Y-26.689 -X18.362Y-26.800 -X18.602Y-26.914 -X18.832Y-27.032 -X19.052Y-27.152 -X19.260Y-27.276 -X19.457Y-27.403 -X19.643Y-27.534 -X19.817Y-27.667 -X19.979Y-27.803 -X20.128Y-27.943 -X20.264Y-28.085 -X20.387Y-28.230 -X20.497Y-28.379 -X20.594Y-28.530 -X20.676Y-28.684 -X20.745Y-28.840 -X20.800Y-29.000 -X20.841Y-29.162 -X20.867Y-29.327 -X20.879Y-29.494 -X20.876Y-29.664 -X20.859Y-29.837 -X20.828Y-30.012 -X20.781Y-30.189 -X20.721Y-30.369 -X20.645Y-30.551 -X20.556Y-30.735 -X20.452Y-30.922 -X20.333Y-31.110 -X20.201Y-31.301 -X20.055Y-31.494 -X19.894Y-31.688 -X19.721Y-31.885 -X19.533Y-32.084 -X19.120Y-32.486 -X18.893Y-32.690 -X18.655Y-32.896 -X18.142Y-33.311 -X17.874Y-33.517 -X17.595Y-33.724 -X17.007Y-34.142 -X15.720Y-34.991 -X12.798Y-36.727 -X12.410Y-36.947 -X12.018Y-37.167 -X11.225Y-37.607 -X9.621Y-38.487 -X6.455Y-40.236 -X6.074Y-40.452 -X5.697Y-40.668 -X4.960Y-41.096 -X3.566Y-41.941 -X3.237Y-42.149 -X2.916Y-42.356 -X2.302Y-42.766 -X1.194Y-43.568 -X0.944Y-43.764 -X0.706Y-43.959 -X0.264Y-44.342 -X0.062Y-44.531 -X-0.128Y-44.718 -X-0.469Y-45.085 -X-0.620Y-45.266 -X-0.758Y-45.444 -X-0.882Y-45.620 -X-0.993Y-45.794 -X-1.090Y-45.965 -X-1.173Y-46.134 -X-1.243Y-46.301 -X-1.298Y-46.465 -X-1.342Y-46.640 -X-1.371Y-46.812 -X-1.382Y-46.980 -X-1.378Y-47.146 -X-1.357Y-47.308 -X-1.320Y-47.467 -X-1.267Y-47.622 -X-1.198Y-47.775 -X-1.114Y-47.923 -X-1.014Y-48.068 -X-0.899Y-48.210 -X-0.769Y-48.348 -X-0.625Y-48.482 -X-0.466Y-48.612 -X-0.293Y-48.739 -X-0.107Y-48.862 -X0.093Y-48.981 -X0.305Y-49.097 -X0.530Y-49.208 -X0.766Y-49.315 -X1.014Y-49.419 -X1.273Y-49.518 -X1.822Y-49.705 -X2.110Y-49.792 -X2.407Y-49.875 -X2.713Y-49.954 -X3.026Y-50.029 -X3.346Y-50.100 -X3.672Y-50.166 -X4.004Y-50.229 -X4.341Y-50.287 -X4.683Y-50.340 -X5.028Y-50.390 -X5.376Y-50.435 -X5.727Y-50.476 -X6.080Y-50.513 -X6.433Y-50.545 -X6.787Y-50.573 -X7.141Y-50.597 -X7.494Y-50.617 -X7.845Y-50.632 -X8.194Y-50.643 -X8.540Y-50.650 -X8.882Y-50.652 -X9.220Y-50.651 -X9.553Y-50.645 -X9.881Y-50.635 -X10.202Y-50.620 -X10.516Y-50.602 -X10.823Y-50.579 -X11.122Y-50.552 -X11.412Y-50.521 -X11.693Y-50.486 -X11.964Y-50.447 -X12.225Y-50.404 -X12.475Y-50.356 -X12.714Y-50.305 -X12.941Y-50.250 -X13.155Y-50.191 -X13.357Y-50.128 -X13.546Y-50.061 -X13.721Y-49.990 -X13.882Y-49.916 -X14.020Y-49.843 -X14.144Y-49.767 -X14.256Y-49.688 -X14.355Y-49.605 -X14.441Y-49.520 -X14.513Y-49.431 -X14.571Y-49.340 -X14.615Y-49.245 -X14.645Y-49.148 -X14.662Y-49.048 -X14.664Y-48.944 -X14.651Y-48.838 -X14.625Y-48.730 -X14.584Y-48.618 -X14.529Y-48.504 -X14.459Y-48.387 -X14.376Y-48.268 -X14.278Y-48.146 -X14.166Y-48.022 -X14.040Y-47.896 -X13.900Y-47.767 -X13.747Y-47.635 -X13.399Y-47.366 -X13.206Y-47.228 -X12.999Y-47.088 -X12.548Y-46.803 -X11.504Y-46.209 -X11.215Y-46.057 -X10.916Y-45.902 -X10.287Y-45.589 -X8.923Y-44.948 -X5.870Y-43.614 -X5.468Y-43.444 -X5.063Y-43.274 -X4.246Y-42.931 -X2.603Y-42.244 -X-0.599Y-40.871 -X-1.025Y-40.682 -X-1.444Y-40.493 -X-2.257Y-40.118 -X-3.764Y-39.380 -X-4.113Y-39.199 -X-4.450Y-39.019 -X-5.084Y-38.665 -X-5.380Y-38.490 -X-5.662Y-38.317 -X-6.181Y-37.977 -X-6.417Y-37.810 -X-6.637Y-37.645 -X-6.841Y-37.483 -X-7.028Y-37.322 -X-7.199Y-37.165 -X-7.352Y-37.009 -X-7.488Y-36.856 -X-7.607Y-36.706 -X-7.708Y-36.559 -X-7.791Y-36.414 -X-7.856Y-36.272 -X-7.904Y-36.133 -X-7.934Y-35.997 -X-7.946Y-35.864 -X-7.941Y-35.734 -X-7.918Y-35.608 -X-7.877Y-35.484 -X-7.819Y-35.364 -X-7.744Y-35.247 -X-7.652Y-35.134 -X-7.543Y-35.024 -X-7.418Y-34.918 -X-7.277Y-34.815 -X-7.121Y-34.716 -X-6.949Y-34.620 -X-6.762Y-34.528 -X-6.560Y-34.440 -X-6.345Y-34.356 -X-6.116Y-34.276 -X-5.874Y-34.199 -X-5.620Y-34.127 -X-5.353Y-34.058 -X-5.076Y-33.993 -X-4.787Y-33.933 -X-4.489Y-33.876 -X-4.181Y-33.824 -X-3.864Y-33.775 -X-3.539Y-33.731 -X-3.207Y-33.691 -X-2.867Y-33.655 -X-2.522Y-33.623 -X-2.172Y-33.596 -X-1.817Y-33.572 -X-1.458Y-33.553 -X-1.096Y-33.538 -X-0.732Y-33.528 -X-0.366Y-33.521 -X0.000Y-33.519 -G0Z6.000 -G0X37.560Y12.327Z6.000 -G1Z-1.000 -G1Y0.876 -X49.011 -Y12.327 -X37.560 -G0Z6.000 -G0Y0.876 -G1Z-1.000 -G1Y-10.575 -X49.011 -Y0.876 -X37.560 -G0Z6.000 -G0X49.011Y12.327 -G1Z-1.000 -G1X52.084Y15.011 -G0Z6.000 -G0X49.011Y0.876 -G1Z-1.000 -G1X52.084Y6.213 -Y15.011 -X43.286 -X37.560Y12.327 -G0Z6.000 -G0X49.011Y-10.575 -G1Z-1.000 -G1X52.084Y-2.585 -Y6.213 -X49.011Y0.876 -G0Z6.000 -G0Z20.000 -G0X0.000Y0.000 -M30 diff --git a/test/settings/kikigey89.settings b/test/settings/kikigey89.settings deleted file mode 100644 index e367d50..0000000 --- a/test/settings/kikigey89.settings +++ /dev/null @@ -1,31 +0,0 @@ -(Machine settings provided by @kikigey89) -$0=87.489 (x, step/mm) -$1=87.489 (y, step/mm) -$2=1280.000 (z, step/mm) -$3=1000.000 (x max rate, mm/min) -$4=1000.000 (y max rate, mm/min) -$5=500.000 (z max rate, mm/min) -$6=10.000 (x accel, mm/sec^2) -$7=10.000 (y accel, mm/sec^2) -$8=10.000 (z accel, mm/sec^2) -$9=211.000 (x max travel, mm) -$10=335.000 (y max travel, mm) -$11=70.000 (z max travel, mm) -$12=20 (step pulse, usec) -$13=160 (step port invert mask:10100000) -$14=160 (dir port invert mask:10100000) -$15=50 (step idle delay, msec) -$16=0.010 (junction deviation, mm) -$17=0.002 (arc tolerance, mm) -$19=0 (report inches, bool) -$20=1 (auto start, bool) -$21=0 (invert step enable, bool) -$22=0 (invert limit pins, bool) -$23=0 (soft limits, bool) -$24=0 (hard limits, bool) -$25=0 (homing cycle, bool) -$26=0 (homing dir invert mask:00000000) -$27=50.000 (homing feed, mm/min) -$28=500.000 (homing seek, mm/min) -$29=10 (homing debounce, msec) -$30=3.000 (homing pull-off, mm) \ No newline at end of file diff --git a/test/test.py b/test/test.py deleted file mode 100644 index 41c845c..0000000 --- a/test/test.py +++ /dev/null @@ -1,25 +0,0 @@ -import random -import serial -import time -ser = serial.Serial('/dev/tty.usbmodem24111', 115200, timeout=0.001) -time.sleep(1) -outstanding = 0 -data = '' -while True: - time.sleep(0.1) - data += ser.read() - pos = data.find('\n') - if pos == -1: - line = '' - else: - line = data[0:pos + 1] - data = data[pos + 1:] - if line == '' and outstanding < 3: - while outstanding < 3: - ser.write("G0 Z%0.3f\n" % (0.01 * (random.random() - 0.5))) - #ser.write("M3\n") - outstanding += 1 - continue - if line == 'ok\r\n': - outstanding -= 1 - print outstanding, repr(line.rstrip()) \ No newline at end of file