[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
gEDA-cvs: gaf.git: branch: master updated (1.5.0-20080706-310-gd5f4b18)
The branch, master has been updated
via d5f4b1882e98bde4f26e93e243fdb8d0ba120e99 (commit)
via f421f5143b44939bfad52d7c51445142b7854c87 (commit)
from 70bf7f8e7470d9962af920553b2e858db0d95938 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
=========
Summary
=========
utils/Makefile.am | 2 +-
utils/configure.ac | 4 +
utils/gxyrs/.gitignore | 1 +
{docs => utils/gxyrs}/COPYING | 27 +-
utils/gxyrs/Makefile.am | 29 +
utils/gxyrs/gxyrs.pl | 619 ++
utils/gxyrs/gxyrs.pm | 658 ++
utils/tests/Makefile.am | 2 +-
utils/tests/{refdes_renum => gxyrs}/Makefile.am | 0
utils/tests/{refdes_renum => gxyrs}/README.txt | 4 +-
utils/tests/gxyrs/inputs/Makefile.am | 12 +
utils/tests/gxyrs/inputs/do_nothing.pl | 3 +
utils/tests/gxyrs/inputs/pcb_example1.xy | 43 +
utils/tests/gxyrs/inputs/pcb_example2.xy | 43 +
utils/tests/gxyrs/inputs/protel_example1_mil.txt | 37 +
utils/tests/gxyrs/inputs/protel_example1_mm.txt | 37 +
utils/tests/gxyrs/inputs/report1.txt | 36 +
utils/tests/gxyrs/inputs/report2.txt | 36 +
utils/tests/gxyrs/outputs/Makefile.am | 248 +
...ange_units_already_done-protel_example1_mil.txt | 37 +
...nits_already_done-protel_example1_mil.txt-error | 4 +
...s_already_done_no_title-protel_example1_mil.txt | 37 +
...ady_done_no_title-protel_example1_mil.txt-error | 0
...change_units_bad_column_number1-pcb_example1.xy | 43 +
..._units_bad_column_number1-pcb_example1.xy-error | 70 +
...change_units_bad_column_number2-pcb_example1.xy | 43 +
..._units_bad_column_number2-pcb_example1.xy-error | 70 +
...ge_units_column_number_too_high-pcb_example1.xy | 43 +
...ts_column_number_too_high-pcb_example1.xy-error | 70 +
...ge_units_negative_column_number-pcb_example1.xy | 43 +
...ts_negative_column_number-pcb_example1.xy-error | 70 +
.../outputs/change_units_no_units-pcb_example1.xy | 43 +
.../change_units_no_units-pcb_example1.xy-error | 140 +
.../change_units_to_mil-protel_example1_mm.txt | 37 +
...hange_units_to_mil-protel_example1_mm.txt-error | 0
...hange_units_to_mil_2cols-protel_example1_mm.txt | 37 +
...units_to_mil_2cols-protel_example1_mm.txt-error | 0
.../change_units_to_mm-protel_example1_mil.txt | 37 +
...hange_units_to_mm-protel_example1_mil.txt-error | 4 +
...hange_units_to_mm_2cols-protel_example1_mil.txt | 37 +
...units_to_mm_2cols-protel_example1_mil.txt-error | 0
...ts_to_mm_6col_tabulated-protel_example1_mil.txt | 37 +
...mm_6col_tabulated-protel_example1_mil.txt-error | 24 +
...6col_tabulated_no_title-protel_example1_mil.txt | 37 +
...abulated_no_title-protel_example1_mil.txt-error | 0
...ge_units_to_mm_no_title-protel_example1_mil.txt | 37 +
...ts_to_mm_no_title-protel_example1_mil.txt-error | 0
...its_units_not_supported-protel_example1_mil.txt | 37 +
...its_not_supported-protel_example1_mil.txt-error | 144 +
.../outputs/del_case_insensitive1-pcb_example1.xy | 32 +
.../del_case_insensitive1-pcb_example1.xy-error | 0
.../outputs/del_case_insensitive2-pcb_example2.xy | 32 +
.../del_case_insensitive2-pcb_example2.xy-error | 0
.../outputs/del_case_sensitive1-pcb_example1.xy | 32 +
.../del_case_sensitive1-pcb_example1.xy-error | 0
.../outputs/del_case_sensitive2-pcb_example2.xy | 43 +
.../del_case_sensitive2-pcb_example2.xy-error | 0
.../outputs/del_case_sensitive3-pcb_example1.xy | 43 +
.../del_case_sensitive3-pcb_example1.xy-error | 0
.../outputs/del_case_sensitive4-pcb_example2.xy | 32 +
.../del_case_sensitive4-pcb_example2.xy-error | 0
.../del_check_columns_no_match-pcb_example1.xy | 43 +
...el_check_columns_no_match-pcb_example1.xy-error | 0
...del_check_columns_return_minus1-pcb_example1.xy | 43 +
...eck_columns_return_minus1-pcb_example1.xy-error | 70 +
.../tests/gxyrs/outputs/do_nothing-pcb_example1.xy | 43 +
.../gxyrs/outputs/do_nothing-pcb_example1.xy-error | 0
.../outputs/do_nothing_tabulated-pcb_example1.xy | 43 +
.../do_nothing_tabulated-pcb_example1.xy-error | 0
.../gxyrs/outputs/footprint_pcb1-pcb_example1.xy | 43 +
.../outputs/footprint_pcb1-pcb_example1.xy-error | 0
.../footprint_protel1-protel_example1_mil.txt | 37 +
...footprint_protel1-protel_example1_mil.txt-error | 0
.../gxyrs/outputs/footprint_report1-report1.txt | 36 +
.../outputs/footprint_report1-report1.txt-error | 0
...nsert_column_bad_column_number1-pcb_example1.xy | 43 +
...column_bad_column_number1-pcb_example1.xy-error | 70 +
...nsert_column_bad_column_number2-pcb_example1.xy | 43 +
...column_bad_column_number2-pcb_example1.xy-error | 70 +
...t_column_column_number_too_high-pcb_example1.xy | 43 +
...mn_column_number_too_high-pcb_example1.xy-error | 70 +
.../insert_column_first_pos-pcb_example1.xy | 43 +
.../insert_column_first_pos-pcb_example1.xy-error | 0
...t_column_negative_column_number-pcb_example1.xy | 43 +
...mn_negative_column_number-pcb_example1.xy-error | 70 +
.../insert_column_second_pos-pcb_example1.xy | 43 +
.../insert_column_second_pos-pcb_example1.xy-error | 0
.../match_column_insensitive1-pcb_example2.xy | 43 +
...match_column_insensitive1-pcb_example2.xy-error | 0
.../match_column_insensitive2-pcb_example2.xy | 43 +
...match_column_insensitive2-pcb_example2.xy-error | 0
.../match_column_insensitive3-pcb_example1.xy | 43 +
...match_column_insensitive3-pcb_example1.xy-error | 0
.../match_column_insensitive4-pcb_example1.xy | 43 +
...match_column_insensitive4-pcb_example1.xy-error | 0
.../match_column_is_negative-pcb_example1.xy | 43 +
.../match_column_is_negative-pcb_example1.xy-error | 70 +
.../match_column_is_not_number-pcb_example1.xy | 43 +
...atch_column_is_not_number-pcb_example1.xy-error | 70 +
.../match_column_is_not_number2-pcb_example1.xy | 43 +
...tch_column_is_not_number2-pcb_example1.xy-error | 70 +
.../outputs/match_column_is_real-pcb_example1.xy | 43 +
.../match_column_is_real-pcb_example1.xy-error | 70 +
.../match_column_is_too_high-pcb_example1.xy | 43 +
.../match_column_is_too_high-pcb_example1.xy-error | 70 +
.../match_column_sensitive1-pcb_example1.xy | 43 +
.../match_column_sensitive1-pcb_example1.xy-error | 0
.../match_column_sensitive2-pcb_example1.xy | 43 +
.../match_column_sensitive2-pcb_example1.xy-error | 0
.../match_column_sensitive3-pcb_example2.xy | 43 +
.../match_column_sensitive3-pcb_example2.xy-error | 0
.../match_column_sensitive4-pcb_example2.xy | 43 +
.../match_column_sensitive4-pcb_example2.xy-error | 0
.../gxyrs/outputs/match_no_args-pcb_example1.xy | 43 +
.../outputs/match_no_args-pcb_example1.xy-error | 0
.../multiply_bad_column_number1-pcb_example1.xy | 43 +
...ltiply_bad_column_number1-pcb_example1.xy-error | 70 +
.../multiply_bad_column_number2-pcb_example1.xy | 43 +
...ltiply_bad_column_number2-pcb_example1.xy-error | 70 +
...multiply_column_number_too_high-pcb_example1.xy | 43 +
...ly_column_number_too_high-pcb_example1.xy-error | 70 +
.../multiply_integer_factor-pcb_example1.xy | 43 +
.../multiply_integer_factor-pcb_example1.xy-error | 0
...multiply_negative_column_number-pcb_example1.xy | 43 +
...ly_negative_column_number-pcb_example1.xy-error | 70 +
...ultiply_negative_integer_factor-pcb_example1.xy | 43 +
...y_negative_integer_factor-pcb_example1.xy-error | 0
.../multiply_negative_real_factor-pcb_example1.xy | 43 +
...iply_negative_real_factor-pcb_example1.xy-error | 0
.../outputs/multiply_real_factor-pcb_example1.xy | 43 +
.../multiply_real_factor-pcb_example1.xy-error | 0
.../multiply_with_checklist-pcb_example1.xy | 43 +
.../multiply_with_checklist-pcb_example1.xy-error | 0
.../offset_bad_column_number1-pcb_example1.xy | 43 +
...offset_bad_column_number1-pcb_example1.xy-error | 70 +
.../offset_bad_column_number2-pcb_example1.xy | 43 +
...offset_bad_column_number2-pcb_example1.xy-error | 70 +
.../offset_check_columns_match-pcb_example1.xy | 43 +
...ffset_check_columns_match-pcb_example1.xy-error | 0
.../offset_check_columns_no_match-pcb_example1.xy | 43 +
...et_check_columns_no_match-pcb_example1.xy-error | 0
...set_check_columns_return_minus1-pcb_example1.xy | 43 +
...eck_columns_return_minus1-pcb_example1.xy-error | 70 +
.../offset_column_number_too_high-pcb_example1.xy | 43 +
...et_column_number_too_high-pcb_example1.xy-error | 70 +
.../offset_match_negative_offset-pcb_example1.xy | 43 +
...set_match_negative_offset-pcb_example1.xy-error | 0
...fset_match_negative_real_offset-pcb_example1.xy | 43 +
...atch_negative_real_offset-pcb_example1.xy-error | 0
...with_units_but_no_units_in_file-pcb_example1.xy | 43 +
...nits_but_no_units_in_file-pcb_example1.xy-error | 22 +
.../offset_match_real_offset-pcb_example1.xy | 43 +
.../offset_match_real_offset-pcb_example1.xy-error | 0
.../offset_negative_column_number-pcb_example1.xy | 43 +
...et_negative_column_number-pcb_example1.xy-error | 70 +
.../gxyrs/outputs/output_delimiter-pcb_example1.xy | 43 +
.../outputs/output_delimiter-pcb_example1.xy-error | 0
...panelize_bad_ref_column_number1-pcb_example1.xy | 43 +
...ze_bad_ref_column_number1-pcb_example1.xy-error | 70 +
...panelize_bad_ref_column_number2-pcb_example1.xy | 43 +
...ze_bad_ref_column_number2-pcb_example1.xy-error | 70 +
.../panelize_bad_x_column_number1-pcb_example1.xy | 43 +
...lize_bad_x_column_number1-pcb_example1.xy-error | 70 +
.../panelize_bad_x_column_number2-pcb_example1.xy | 43 +
...lize_bad_x_column_number2-pcb_example1.xy-error | 70 +
.../panelize_bad_y_column_number1-pcb_example1.xy | 43 +
...lize_bad_y_column_number1-pcb_example1.xy-error | 70 +
.../panelize_bad_y_column_number2-pcb_example1.xy | 43 +
...lize_bad_y_column_number2-pcb_example1.xy-error | 70 +
...lize_negative_ref_column_number-pcb_example1.xy | 43 +
...egative_ref_column_number-pcb_example1.xy-error | 70 +
...nelize_negative_x_column_number-pcb_example1.xy | 43 +
..._negative_x_column_number-pcb_example1.xy-error | 70 +
...nelize_negative_y_column_number-pcb_example1.xy | 43 +
..._negative_y_column_number-pcb_example1.xy-error | 70 +
...lize_ref_column_number_too_high-pcb_example1.xy | 43 +
...ef_column_number_too_high-pcb_example1.xy-error | 70 +
.../outputs/panelize_tabulate-pcb_example1.xy | 7883 ++++++++++++++++++++
.../panelize_tabulate-pcb_example1.xy-error | 0
...nelize_x_column_number_too_high-pcb_example1.xy | 43 +
..._x_column_number_too_high-pcb_example1.xy-error | 70 +
...nelize_y_column_number_too_high-pcb_example1.xy | 43 +
..._y_column_number_too_high-pcb_example1.xy-error | 70 +
.../gxyrs/outputs/process_comment-pcb_example1.xy | 43 +
.../outputs/process_comment-pcb_example1.xy-error | 0
.../rotate_bad_column_number1-pcb_example1.xy | 43 +
...rotate_bad_column_number1-pcb_example1.xy-error | 70 +
.../rotate_bad_column_number2-pcb_example1.xy | 43 +
...rotate_bad_column_number2-pcb_example1.xy-error | 70 +
.../rotate_case_insensitive-pcb_example1.xy | 43 +
.../rotate_case_insensitive-pcb_example1.xy-error | 0
.../outputs/rotate_case_sensitive-pcb_example1.xy | 43 +
.../rotate_case_sensitive-pcb_example1.xy-error | 0
.../rotate_check_columns_no_match-pcb_example1.xy | 43 +
...te_check_columns_no_match-pcb_example1.xy-error | 0
...ate_check_columns_return_minus1-pcb_example1.xy | 43 +
...eck_columns_return_minus1-pcb_example1.xy-error | 70 +
.../rotate_column_number_too_high-pcb_example1.xy | 43 +
...te_column_number_too_high-pcb_example1.xy-error | 70 +
.../outputs/rotate_negative_angle-pcb_example1.xy | 43 +
.../rotate_negative_angle-pcb_example1.xy-error | 0
.../rotate_negative_column_number-pcb_example1.xy | 43 +
...te_negative_column_number-pcb_example1.xy-error | 70 +
.../rotate_negative_real_angle-pcb_example1.xy | 43 +
...otate_negative_real_angle-pcb_example1.xy-error | 0
.../outputs/rotate_real_angle-pcb_example1.xy | 43 +
.../rotate_real_angle-pcb_example1.xy-error | 0
.../subst_bad_column_number1-pcb_example1.xy | 43 +
.../subst_bad_column_number1-pcb_example1.xy-error | 70 +
.../subst_bad_column_number2-pcb_example1.xy | 43 +
.../subst_bad_column_number2-pcb_example1.xy-error | 70 +
.../subst_check_columns_match-pcb_example1.xy | 43 +
...subst_check_columns_match-pcb_example1.xy-error | 0
.../subst_check_columns_no_match-pcb_example1.xy | 43 +
...st_check_columns_no_match-pcb_example1.xy-error | 0
...bst_check_columns_return_minus1-pcb_example1.xy | 43 +
...eck_columns_return_minus1-pcb_example1.xy-error | 70 +
.../subst_column_number_too_high-pcb_example1.xy | 43 +
...st_column_number_too_high-pcb_example1.xy-error | 70 +
.../subst_negative_column_number-pcb_example1.xy | 43 +
...st_negative_column_number-pcb_example1.xy-error | 70 +
...wap_columns_bad_column1_number1-pcb_example1.xy | 43 +
...lumns_bad_column1_number1-pcb_example1.xy-error | 70 +
...wap_columns_bad_column1_number2-pcb_example1.xy | 43 +
...lumns_bad_column1_number2-pcb_example1.xy-error | 70 +
...wap_columns_bad_column2_number1-pcb_example1.xy | 43 +
...lumns_bad_column2_number1-pcb_example1.xy-error | 70 +
...wap_columns_bad_column2_number2-pcb_example1.xy | 43 +
...lumns_bad_column2_number2-pcb_example1.xy-error | 70 +
...columns_column1_number_too_high-pcb_example1.xy | 43 +
...s_column1_number_too_high-pcb_example1.xy-error | 70 +
...columns_column2_number_too_high-pcb_example1.xy | 43 +
...s_column2_number_too_high-pcb_example1.xy-error | 70 +
...columns_negative_column1_number-pcb_example1.xy | 43 +
...s_negative_column1_number-pcb_example1.xy-error | 70 +
...columns_negative_column2_number-pcb_example1.xy | 43 +
...s_negative_column2_number-pcb_example1.xy-error | 70 +
.../outputs/swap_columns_no_match-pcb_example1.xy | 43 +
.../swap_columns_no_match-pcb_example1.xy-error | 0
.../swap_columns_no_matchlist-pcb_example1.xy | 43 +
...swap_columns_no_matchlist-pcb_example1.xy-error | 0
.../swap_columns_with_match-pcb_example1.xy | 43 +
.../swap_columns_with_match-pcb_example1.xy-error | 0
.../translate_bad_column_number1-pcb_example1.xy | 43 +
...nslate_bad_column_number1-pcb_example1.xy-error | 70 +
.../translate_bad_column_number2-pcb_example1.xy | 43 +
...nslate_bad_column_number2-pcb_example1.xy-error | 70 +
...anslate_column_change_R10_value-pcb_example1.xy | 43 +
...e_column_change_R10_value-pcb_example1.xy-error | 0
...ange_R10_value_case_insensitive-pcb_example1.xy | 43 +
...10_value_case_insensitive-pcb_example1.xy-error | 0
..._column_change_all_value_plus_k-pcb_example1.xy | 43 +
...n_change_all_value_plus_k-pcb_example1.xy-error | 0
.../translate_column_no_match1-pcb_example1.xy | 43 +
...ranslate_column_no_match1-pcb_example1.xy-error | 0
.../translate_column_no_match2-pcb_example1.xy | 43 +
...ranslate_column_no_match2-pcb_example1.xy-error | 0
...ranslate_column_number_too_high-pcb_example1.xy | 43 +
...te_column_number_too_high-pcb_example1.xy-error | 70 +
...ranslate_negative_column_number-pcb_example1.xy | 43 +
...te_negative_column_number-pcb_example1.xy-error | 70 +
utils/tests/{refdes_renum => gxyrs}/run_tests.sh | 68 +-
utils/tests/gxyrs/tests.list | 191 +
utils/tests/refdes_renum/run_tests.sh | 19 +
264 files changed, 19340 insertions(+), 33 deletions(-)
create mode 100644 utils/gxyrs/.gitignore
copy {docs => utils/gxyrs}/COPYING (97%)
create mode 100644 utils/gxyrs/Makefile.am
create mode 100644 utils/gxyrs/gxyrs.pl
create mode 100644 utils/gxyrs/gxyrs.pm
copy utils/tests/{refdes_renum => gxyrs}/Makefile.am (100%)
copy utils/tests/{refdes_renum => gxyrs}/README.txt (65%)
create mode 100644 utils/tests/gxyrs/inputs/Makefile.am
create mode 100644 utils/tests/gxyrs/inputs/do_nothing.pl
create mode 100644 utils/tests/gxyrs/inputs/pcb_example1.xy
create mode 100644 utils/tests/gxyrs/inputs/pcb_example2.xy
create mode 100644 utils/tests/gxyrs/inputs/protel_example1_mil.txt
create mode 100644 utils/tests/gxyrs/inputs/protel_example1_mm.txt
create mode 100644 utils/tests/gxyrs/inputs/report1.txt
create mode 100644 utils/tests/gxyrs/inputs/report2.txt
create mode 100644 utils/tests/gxyrs/outputs/Makefile.am
create mode 100644 utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt
create mode 100644 utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error
create mode 100644 utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt
copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt
copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt
copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt
create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error
create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt
copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt
create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error
create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt
copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt
copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt
create mode 100644 utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error
create mode 100644 utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt
copy docs/NEWS => utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/footprint_report1-report1.txt
copy docs/NEWS => utils/tests/gxyrs/outputs/footprint_report1-report1.txt-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy
copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy-error (100%)
create mode 100644 utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error
create mode 100644 utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy
create mode 100644 utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error
copy utils/tests/{refdes_renum => gxyrs}/run_tests.sh (62%)
create mode 100644 utils/tests/gxyrs/tests.list
=================
Commit Messages
=================
commit d5f4b1882e98bde4f26e93e243fdb8d0ba120e99
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date: Tue Nov 18 21:31:13 2008 +0100
Added copyright notice to refdes_renum's run_tests.sh script.
Added GPLv2 copyright notice to refdes_renum's run_tests.sh script,
as required by Dan McMahill, its original author:
http://archives.seul.org/geda/dev/Oct-2008/msg00132.html
:100755 100755 a2e35da... 9bcfab2... M utils/tests/refdes_renum/run_tests.sh
commit f421f5143b44939bfad52d7c51445142b7854c87
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date: Tue Nov 18 21:29:10 2008 +0100
Added new util: gxyrs.
Added gxyrs, a new util to process XYRS files.
:100644 100644 b97f2a3... 23906bb... M utils/Makefile.am
:100644 100644 17587e9... c7c9e57... M utils/configure.ac
:000000 100644 0000000... 87998d7... A utils/gxyrs/.gitignore
:000000 100644 0000000... d511905... A utils/gxyrs/COPYING
:000000 100644 0000000... e977086... A utils/gxyrs/Makefile.am
:000000 100644 0000000... 8af6779... A utils/gxyrs/gxyrs.pl
:000000 100644 0000000... e60b6db... A utils/gxyrs/gxyrs.pm
:100644 100644 24ddc26... fdd3664... M utils/tests/Makefile.am
:000000 100644 0000000... aa78a73... A utils/tests/gxyrs/Makefile.am
:000000 100644 0000000... 1c325bb... A utils/tests/gxyrs/README.txt
:000000 100644 0000000... e84a892... A utils/tests/gxyrs/inputs/Makefile.am
:000000 100644 0000000... 915fd43... A utils/tests/gxyrs/inputs/do_nothing.pl
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/inputs/pcb_example1.xy
:000000 100644 0000000... c1bda42... A utils/tests/gxyrs/inputs/pcb_example2.xy
:000000 100644 0000000... 1621d7c... A utils/tests/gxyrs/inputs/protel_example1_mil.txt
:000000 100644 0000000... 725a003... A utils/tests/gxyrs/inputs/protel_example1_mm.txt
:000000 100644 0000000... ea31f9e... A utils/tests/gxyrs/inputs/report1.txt
:000000 100644 0000000... ad33c97... A utils/tests/gxyrs/inputs/report2.txt
:000000 100644 0000000... 5884d44... A utils/tests/gxyrs/outputs/Makefile.am
:000000 100644 0000000... 54b8075... A utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt
:000000 100644 0000000... 08dd3df... A utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error
:000000 100644 0000000... 54b8075... A utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 5192ce9... A utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... ae540a9... A utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 1de09fb... A utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy
:000000 100644 0000000... f894d41... A utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy
:000000 100644 0000000... f2a1cf3... A utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error
:000000 100644 0000000... b88c61f... A utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt-error
:000000 100644 0000000... fd3c5ad... A utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt-error
:000000 100644 0000000... 4368356... A utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt
:000000 100644 0000000... 08dd3df... A utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error
:000000 100644 0000000... f726e12... A utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt-error
:000000 100644 0000000... 725a003... A utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt
:000000 100644 0000000... cdaacb1... A utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error
:000000 100644 0000000... 725a003... A utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error
:000000 100644 0000000... 4368356... A utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt-error
:000000 100644 0000000... 54b8075... A utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt
:000000 100644 0000000... a8c066f... A utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error
:000000 100644 0000000... 3d383f4... A utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy-error
:000000 100644 0000000... 3d383f4... A utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy-error
:000000 100644 0000000... 3d383f4... A utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy-error
:000000 100644 0000000... c1bda42... A utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy-error
:000000 100644 0000000... 3d383f4... A utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy
:000000 100644 0000000... d62840d... A utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy-error
:000000 100644 0000000... a47d267... A utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy-error
:000000 100644 0000000... 8d7d3c1... A utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy-error
:000000 100644 0000000... 3f33258... A utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt-error
:000000 100644 0000000... bc55f92... A utils/tests/gxyrs/outputs/footprint_report1-report1.txt
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/footprint_report1-report1.txt-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 423755a... A utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... 4bdea7d... A utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 2478a46... A utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... 6ff6762... A utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 29c6356... A utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... 2e4092b... A utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy-error
:000000 100644 0000000... c1bda42... A utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy-error
:000000 100644 0000000... c1bda42... A utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy
:000000 100644 0000000... d62840d... A utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy
:000000 100644 0000000... 9b094f0... A utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy
:000000 100644 0000000... e11f3d4... A utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy
:000000 100644 0000000... 69dfd65... A utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy
:000000 100644 0000000... 33b666e... A utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy-error
:000000 100644 0000000... c1bda42... A utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy-error
:000000 100644 0000000... c1bda42... A utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 6b9b64d... A utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... c03074e... A utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 7b1301c... A utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... 3327e3b... A utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 00d3e27... A utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... 8fc8f45... A utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy-error
:000000 100644 0000000... 848230d... A utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy-error
:000000 100644 0000000... 8f888df... A utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy-error
:000000 100644 0000000... 5effa79... A utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 559f994... A utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... ba3b700... A utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... fe66459... A utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy
:000000 100644 0000000... d62840d... A utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 2671611... A utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... d729afb... A utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy-error
:000000 100644 0000000... 550c389... A utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy
:000000 100644 0000000... 19f4537... A utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error
:000000 100644 0000000... d71e0e9... A utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 91cd836... A utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... 7926249... A utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy
:000000 100644 0000000... b12314c... A utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy
:000000 100644 0000000... 8804054... A utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy
:000000 100644 0000000... b12314c... A utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy
:000000 100644 0000000... 8804054... A utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy
:000000 100644 0000000... b12314c... A utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy
:000000 100644 0000000... 8804054... A utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy
:000000 100644 0000000... 29fddf4... A utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy
:000000 100644 0000000... 29fddf4... A utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy
:000000 100644 0000000... 29fddf4... A utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 8c0e150... A utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... bf2c302... A utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 8c0e150... A utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 8c0e150... A utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... 92a695a... A utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... cf4c991... A utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... b806f02... A utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... 6fe78d2... A utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy-error
:000000 100644 0000000... 6fe78d2... A utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy
:000000 100644 0000000... d62840d... A utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 87e7c6d... A utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... b0436cd... A utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 556a5ef... A utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... b0436cd... A utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy-error
:000000 100644 0000000... 6fe78d2... A utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... e87c6af... A utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... 7dd1b11... A utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... 7abaf4d... A utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy
:000000 100644 0000000... d62840d... A utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 2075c59... A utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy
:000000 100644 0000000... c428ba7... A utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy
:000000 100644 0000000... 24658e1... A utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy
:000000 100644 0000000... 00f6fde... A utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy
:000000 100644 0000000... 24658e1... A utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy
:000000 100644 0000000... 00f6fde... A utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy
:000000 100644 0000000... 5d891bc... A utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy
:000000 100644 0000000... 5d891bc... A utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy
:000000 100644 0000000... 4ed6cf0... A utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy
:000000 100644 0000000... 4ed6cf0... A utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... acd1c59... A utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy-error
:000000 100644 0000000... 4baaba0... A utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 7f984fd... A utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... b7829f3... A utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... 05027e2... A utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy-error
:000000 100644 0000000... 6d4deaa... A utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error
:000000 100644 0000000... 867ce82... A utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy
:000000 100644 0000000... e69de29... A utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... a26d9ad... A utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 5f213ba... A utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error
:000000 100755 0000000... a508c17... A utils/tests/gxyrs/run_tests.sh
:000000 100644 0000000... d22d9a9... A utils/tests/gxyrs/tests.list
=========
Changes
=========
commit d5f4b1882e98bde4f26e93e243fdb8d0ba120e99
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date: Tue Nov 18 21:31:13 2008 +0100
Added copyright notice to refdes_renum's run_tests.sh script.
Added GPLv2 copyright notice to refdes_renum's run_tests.sh script,
as required by Dan McMahill, its original author:
http://archives.seul.org/geda/dev/Oct-2008/msg00132.html
diff --git a/utils/tests/refdes_renum/run_tests.sh b/utils/tests/refdes_renum/run_tests.sh
index a2e35da..9bcfab2 100755
--- a/utils/tests/refdes_renum/run_tests.sh
+++ b/utils/tests/refdes_renum/run_tests.sh
@@ -3,6 +3,25 @@
# $Id$
#
+# Copyright (C) 2007-2008 Dan McMahill
+
+# This file is part of refdes_renum.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation, version 2
+# of the License.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
regen=no
usage() {
commit f421f5143b44939bfad52d7c51445142b7854c87
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date: Tue Nov 18 21:29:10 2008 +0100
Added new util: gxyrs.
Added gxyrs, a new util to process XYRS files.
diff --git a/utils/Makefile.am b/utils/Makefile.am
index b97f2a3..23906bb 100644
--- a/utils/Makefile.am
+++ b/utils/Makefile.am
@@ -1,5 +1,5 @@
-SUBDIRS = src gschlas scripts lib include examples docs man tests
+SUBDIRS = src gschlas scripts lib include examples docs man tests gxyrs
EXTRA_DIST = ChangeLog.tragesym-1.0 ChangeLog.gsch2pcb-1.0 ChangeLog-1.0 \
autogen.sh
diff --git a/utils/configure.ac b/utils/configure.ac
index 17587e9..c7c9e57 100644
--- a/utils/configure.ac
+++ b/utils/configure.ac
@@ -485,6 +485,7 @@ AC_CONFIG_FILES([Makefile
examples/gmk_sym/Makefile
examples/tragesym/Makefile
examples/gsch2pcb/Makefile
+ gxyrs/Makefile
include/Makefile
scripts/Makefile
docs/Makefile
@@ -497,6 +498,9 @@ AC_CONFIG_FILES([Makefile
tests/refdes_renum/Makefile
tests/refdes_renum/inputs/Makefile
tests/refdes_renum/outputs/Makefile
+ tests/gxyrs/Makefile
+ tests/gxyrs/inputs/Makefile
+ tests/gxyrs/outputs/Makefile
])
AC_OUTPUT
diff --git a/utils/gxyrs/.gitignore b/utils/gxyrs/.gitignore
new file mode 100644
index 0000000..87998d7
--- /dev/null
+++ b/utils/gxyrs/.gitignore
@@ -0,0 +1 @@
+gxyrs
diff --git a/utils/gxyrs/COPYING b/utils/gxyrs/COPYING
new file mode 100644
index 0000000..d511905
--- /dev/null
+++ b/utils/gxyrs/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/utils/gxyrs/Makefile.am b/utils/gxyrs/Makefile.am
new file mode 100644
index 0000000..e977086
--- /dev/null
+++ b/utils/gxyrs/Makefile.am
@@ -0,0 +1,29 @@
+## $Id$
+##
+## Process this file with automake to produce Makefile.in
+
+bin_SCRIPTS = gxyrs
+
+rcdatadir = @GEDARCDIR@/gxyrs
+rcdata_DATA = gxyrs.pm
+
+EXTRA_DIST = gxyrs.pm
+
+distclean-local:
+ -rm -rf autom4te.cache
+
+maintainer-clean-local:
+ -rm -rf autom4te.cache
+
+## This hardcodes the path to the
+## system libraries into geda_filter prior to installation.
+gxyrs: $(srcdir)/gxyrs.pl
+ sed -e "s#GEDADATADIR#$(GEDADATADIR)#" $(srcdir)/gxyrs.pl | sed -e "s#GEDARCDIR#$(GEDARCDIR)#" > tmp$@
+ chmod a+x tmp$@
+ mv -f tmp$@ $@
+
+MOSTLYCLEANFILES = *.log *.ps core FILE tmp *~
+CLEANFILES = *.log *.ps core FILE tmp *~
+DISTCLEANFILES = *.log core FILE tmp *~ gxyrs
+MAINTAINERCLEANFILES = *.log *.ps core FILE tmp *~ Makefile.in \
+ configure gxyrs
diff --git a/utils/gxyrs/gxyrs.pl b/utils/gxyrs/gxyrs.pl
new file mode 100644
index 0000000..8af6779
--- /dev/null
+++ b/utils/gxyrs/gxyrs.pl
@@ -0,0 +1,619 @@
+#!/usr/bin/perl -w
+#
+# Copyright (C) 2008 Carlos Nieves Onega
+# Copyright (C) 2008 other contributors
+# (see ChangeLog or SCM history for details)
+
+# This file is part of gxyrs.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+use strict;
+use warnings;
+
+use lib 'GEDARCDIR/gxyrs'; # Where gxyrs package is located
+
+use gxyrs;
+use gxyrs qw($CASE_INSENSITIVE);
+
+# for parsing input options
+use Getopt::Long;
+
+use vars qw {
+ $REF_COL $FOOTPRINT_COL $X_COL $Y_COL $ANGLE_COL
+ $LAYER_COL $VALUE_COL $CASE_INSENSITIVE $LINE_NUMBER
+ $LINE $TITLE_LINE
+};
+
+my $tempfile;
+
+
+# Set these for debugging purposes
+my $DEBUG = 0;
+my $DEBUG_GUESSING = 0;
+my $DEBUG_COL_LENGTH = 0;
+my $DEBUG_RETURN_CODE = 0;
+
+# Initialize global variables
+$REF_COL = -1;
+$FOOTPRINT_COL = -1;
+$X_COL = -1;
+$Y_COL = -1;
+$ANGLE_COL = -1;
+$LAYER_COL = -1;
+$VALUE_COL = -1;
+
+#######################################################################
+#
+# Subroutines
+#
+#######################################################################
+
+
+#---------------------------------
+# guess_file_format()
+#
+# Check current line and try to guess column numbers by
+# testing if it is the title line and there are some title keywords.
+#---------------------------------
+sub guess_file_format () {
+ my $num_elems = scalar(@LINE);
+ my @positions = ();
+ my $position_repeated=0;
+
+ if ($DEBUG_GUESSING == 1) {
+ print "guess_file_format processing line $LINE_NUMBER.\n";
+ print "Line: @LINE\n";
+ print "Number of elements in line: $num_elems.\n";
+ }
+
+ # Remove '#' and spacer characters from the beginning of first element
+ while ($LINE[0] =~ /^#/) {
+ $LINE[0] = substr($LINE[0], 1);
+ }
+ while ($LINE[0] =~ /^\s+/) {
+ $LINE[0] = substr($LINE[0], 1);
+ }
+
+
+ # Now try to guess column numbers from column titles.
+ for (my $i = 0; $i <= $num_elems-1; $i++) {
+ if ($DEBUG_GUESSING == 1) {
+ print "Testing element $i: ".$LINE[$i].".\n";
+ }
+ if ( ($LINE[$i] =~ /^Designator$/) ||
+ ($LINE[$i] =~ /^RefDesignator$/) ||
+ ($LINE[$i] =~ /^RefDes$/)
+ ) {
+ if ($DEBUG_GUESSING) {
+ print "Found reference column: ".($i+1).".\n";
+ }
+ $REF_COL = $i+1;
+ if (grep(/\b$REF_COL\b/, @positions)) {
+ $position_repeated = 1;
+ }
+ push(@positions,$REF_COL);
+ }
+ if ( ($LINE[$i] =~ /^Footprint$/) ||
+ ($LINE[$i] =~ /^TopCell$/) ||
+ ( ($LINE[$i] =~ /^Description$/) &&
+ (! grep(/\bTopCell\b/,@LINE)) )
+ ) {
+ if ($DEBUG_GUESSING) {
+ print "Found footprint column: ".($i+1).".\n";
+ }
+ $FOOTPRINT_COL = $i+1;
+ if (grep(/\b$FOOTPRINT_COL\b/, @positions)) {
+ $position_repeated = 1;
+ }
+ push(@positions,$FOOTPRINT_COL);
+ }
+ if ( ($LINE[$i] =~ /^Mid X$/) ||
+ ($LINE[$i] =~ /^X$/)
+ ) {
+ if ($DEBUG_GUESSING) {
+ print "Found X column: ".($i+1).".\n";
+ }
+ $X_COL = $i+1;
+ }
+ if ( ($LINE[$i] =~ /^Mid Y$/) ||
+ ($LINE[$i] =~ /^Y$/)
+ ) {
+ if ($DEBUG_GUESSING) {
+ print "Found Y column: ".($i+1).".\n";
+ }
+ $Y_COL = $i+1;
+ if (grep(/\b$Y_COL\b/, @positions)) {
+ $position_repeated = 1;
+ }
+ push(@positions,$Y_COL);
+ }
+ if ( ($LINE[$i] =~ /^[Rr]otation$/) ||
+ ($LINE[$i] =~ /^Rot$/)
+
+ ) {
+ if ($DEBUG_GUESSING) {
+ print "Found angle column: ".($i+1).".\n";
+ }
+ $ANGLE_COL = $i+1;
+ if (grep(/\b$ANGLE_COL\b/, @positions)) {
+ $position_repeated = 1;
+ }
+ push(@positions,$ANGLE_COL);
+ }
+ if ( ($LINE[$i] =~ /^TB$/) ||
+ ($LINE[$i] =~ /^Side$/) ||
+ ($LINE[$i] =~ /^top\/bottom$/)
+ ) {
+ if ($DEBUG_GUESSING) {
+ print "Found layer column: ".($i+1).".\n";
+ }
+ $LAYER_COL = $i+1;
+ if (grep(/\b$LAYER_COL\b/, @positions)) {
+ $position_repeated = 1;
+ }
+ push(@positions,$LAYER_COL);
+ }
+ if ( ($LINE[$i] =~ /^Comment$/) ||
+ ($LINE[$i] =~ /^PartNumber$/) ||
+ ($LINE[$i] =~ /^Value$/)
+ ) {
+ if ($DEBUG_GUESSING) {
+ print "Found value column: ".($i+1).".\n";
+ }
+ $VALUE_COL = $i+1;
+ if (grep(/\b$VALUE_COL\b/, @positions)) {
+ $position_repeated = 1;
+ }
+ push(@positions,$VALUE_COL);
+ }
+ }
+
+ # If there is any repeated position, warn the user.
+ if ($position_repeated == 1) {
+ print STDERR "A position was repeated while guessing file format.\n";
+ }
+ # If not all columns were guessed, or a position is repeated then reset all.
+ if ( ($position_repeated == 1) ||
+ ($REF_COL == -1) ||
+ ($FOOTPRINT_COL == -1) ||
+ ($X_COL == -1) ||
+ ($Y_COL == -1) ||
+ ($ANGLE_COL == -1) ||
+ ($LAYER_COL == -1) ||
+ ($VALUE_COL == -1)
+ ) {
+
+ # All columns should be defined in the same line.
+ $REF_COL = -1;
+ $FOOTPRINT_COL = -1;
+ $X_COL = -1;
+ $Y_COL = -1;
+ $ANGLE_COL = -1;
+ $LAYER_COL = -1;
+ $VALUE_COL = -1;
+ }
+
+ if ($DEBUG_GUESSING == 1) {
+ print "guess_file_format ended processing line $LINE_NUMBER.\n";
+ }
+
+}
+
+#---------------------------------
+# stdin()
+#
+# open a temp file, to allow multiple passes to the input file.
+#---------------------------------
+sub stdin () {
+ $tempfile = 'temp_'.time() . '_' . int(rand(1000000));
+ open(TEMP, "+>$tempfile") or print STDERR $!;
+ local $/ = undef;
+ print TEMP <STDIN>;
+ seek(TEMP, 0, 0);
+ \*TEMP;
+}
+
+
+#---------------------------------
+# usage()
+#
+# prints program usage
+#---------------------------------
+sub usage {
+ print "Usage:\n";
+ print " gxyrs [--tabulate] <input_file> --adjust <adjust_file> --output <outputfile> \n";
+ exit(0);
+}
+
+
+#######################################################################
+#
+# Main program
+#
+#######################################################################
+
+
+{
+
+ my @fname=();
+ my ($file_in, $adjust_file, $file_out);
+ my ($this_line, $line_out);
+ my @lengths;
+ my $output_delimiter="";
+
+ # Delimiters to try when guessing file format.
+ my @delimiters = ('\s+', ',\s*');
+ my @delimiters_char = (' ', ','); # Used when writing the output file
+ my $delimiter_index=-1;
+
+ my $pass;
+ my $total_passes = scalar(@delimiters) + 1;
+ my $guessing_file_format;
+ my $is_comment = 0; # Mark the current line as a comment.
+ my $eval_string;
+
+ my $tabulate=0; # Output should be tabulated or not.
+ my $verbose;
+ my $process_comments;
+
+ my $return_code;
+
+ # Comparisons are case insensitive by default.
+ $CASE_INSENSITIVE=0;
+
+ &GetOptions(("help" => \&usage,
+ "verbose" => \$verbose,
+ "process-comments" => \$process_comments,
+ "tabulate!" => \$tabulate,
+ "caseinsensitive!" => \$CASE_INSENSITIVE,
+ "adjust=s" => \$adjust_file,
+ "eval=s" => \$eval_string,
+ "output=s" => \$file_out,
+ "output-delimiter=s" => \$output_delimiter,
+ ));
+
+ if ($Getopt::Long::error) {
+ print STDERR "Wrong arguments.\n";
+ usage();
+ }
+
+ # Print usage string in event user didn't call out any args
+ usage() unless @ARGV;
+
+ # Make sure the input schematic exists and we can read it.
+ # Also count number of files to open.
+ while(@ARGV) {
+ my $i=0;
+ $fname[$i]=shift(@ARGV);
+ print "Checking argument $fname[$i].\n";
+ if (! -r $fname[$i]) {
+ die("Input file $fname[$i] does not exist or can not be read");
+ }
+ $i++;
+ }
+
+ $file_in = $fname[0];
+
+ # Print usage string in event user didn't specify input, adjust
+ # and output files.
+ if (! ($file_in && $file_out && ($adjust_file || $eval_string))) {
+ print STDERR "Nothing to do.\n";
+ if ($eval_string) {
+ print STDERR "Eval string: $eval_string.\n";
+ }
+ if ($adjust_file) {
+ print STDERR "Commands file: $adjust_file.\n";
+ }
+ usage();
+ }
+
+
+ if ($file_in !~ '^-$') {
+ open(FILE_IN, $file_in) || die ("Can't open input file $file_in: $!");
+ }
+ else {
+ *FILE_IN = &stdin();
+ }
+
+ if (length($output_delimiter) > 1) {
+ die ("Output delimiter $output_delimiter must be a character.");
+ }
+
+ # Don't know yet the file format.
+ $guessing_file_format = 1;
+ $TITLE_LINE = 0;
+
+ # Last pass is to process the file. Others are for guessing the
+ # file format with several delimiters (one for each element in @delimiters.
+ for ($pass = 1; $pass <= $total_passes; $pass++) {
+ if (seek(FILE_IN, 0, 0) != 1) {
+ print STDERR "Error when seek input file to 0\n";
+ }
+ if ($pass >= $total_passes) {
+ open(FILE_OUT, "> ".$file_out) || die ("Can't open output file $file_out: $!");
+ }
+
+ # Set the return code to 0
+ $return_code = 0;
+ if ($DEBUG_RETURN_CODE) {
+ print "Setting global return code to 0.\n";
+ }
+
+ # Parse file
+ $LINE_NUMBER = 0;
+ print "Pass number: $pass.\n" if ($DEBUG);
+ while ( <FILE_IN> ) {
+ $this_line=$_;
+ $_ = $this_line;
+
+ # Remove end line characters.
+ chomp($this_line);
+
+ # For the last pass, use the delimiter guessed.
+ # For the others, get the delimiter from @delimiters array.
+ if ($pass < $total_passes) {
+ my $this_delimiter = $delimiters[$pass-1];
+ @LINE = split ($this_delimiter, $this_line);
+ } else {
+ my $this_delimiter = $delimiters[$delimiter_index];
+ @LINE = split ($this_delimiter, $this_line);
+ }
+ $LINE_NUMBER += 1;
+ next if /^@/;
+ next if /^q/;
+
+ # Test if the line is a comment
+ # (which shouldn't be processed).
+ if ( ($this_line =~ /^\s*#/) ||
+ ($this_line =~ /^\s*$/) ) {
+ if ($DEBUG) {
+ print "Line is comment: @LINE\n";
+ }
+ $is_comment = 1;
+ } else {
+ $is_comment = 0;
+ }
+
+ # First, some column titles are separated by spaces, so join them.
+ if ($LINE_NUMBER == 1) {
+ my $num_elems = scalar(@LINE);
+ for (my $i = 0; $i <= $num_elems-1; $i++) {
+ if ($i <= $num_elems-2) {
+ # Join titles like "Pad X", "Pad Y", "Mid X", "Mid Y",
+ # "ref X", "ref Y" (Protel output)
+ if ( ( ($LINE[$i] =~ /^Pad$/) &&
+ ($LINE[$i+1] =~/^[XY]$/) ) ||
+ ( ($LINE[$i] =~ /^Mid$/) &&
+ ($LINE[$i+1] =~/^[XY]$/) ) ||
+ ( ($LINE[$i] =~ /^Ref$/) &&
+ ($LINE[$i+1] =~/^[XY]$/) )
+ ) {
+ $LINE[$i] = $LINE[$i]." ".$LINE[$i+1];
+ for (my $j = $i+1; $j <= $num_elems-2; $j++) {
+ $LINE[$j] = $LINE[$j+1];
+ }
+ delete $LINE[$num_elems-1];
+ $num_elems -= 1;
+ }
+ }
+ }
+
+ }
+
+ if ( ($pass != $total_passes) &&
+ $guessing_file_format ) {
+ my $old_guessing_file_format = $guessing_file_format;
+ # Try to guess the file format
+ guess_file_format();
+ # Check if already guessed the file format.
+ $guessing_file_format = ( ($REF_COL == -1) ||
+ ($FOOTPRINT_COL == -1) ||
+ ($X_COL == -1) ||
+ ($Y_COL == -1) ||
+ ($ANGLE_COL == -1) ||
+ ($LAYER_COL == -1) ||
+ ($VALUE_COL == -1) );
+
+ if (!$guessing_file_format) {
+ if ($old_guessing_file_format == 1) {
+ $TITLE_LINE = $LINE_NUMBER;
+ }
+ if ($verbose) {
+ print "Found file format. ";
+ print "Delimiter is $delimiters[$pass-1].\n";
+ }
+
+ $delimiter_index = $pass-1;
+ }
+ }
+
+ if (!$guessing_file_format) {
+ if (($is_comment == 0) || $process_comments) {
+ my $rc ;
+
+ # If it's parsing the file then keep the number
+ # of columns constant, joining all the fields
+ # in the last one.
+ while ( (@LINE > @lengths) &&
+ (scalar(@lengths) > 0) ) {
+ $LINE[@LINE-2] = $LINE[@LINE-2].
+ $delimiters_char[$delimiter_index].$LINE[@LINE-1];
+ pop @LINE;
+ }
+
+ if ($DEBUG_RETURN_CODE) {
+ print "Global return code before evaluation: $return_code.\n";
+ }
+
+ # Run the adjust file.
+ if (defined $adjust_file) {
+ $rc = do $adjust_file ||
+ die("Can't use adjust file: $!\n");
+ } else {
+ #print "Eval: $eval_string\n";
+ $rc = eval $eval_string;
+ }
+ if ($@) {
+ print STDERR "Error: ".$@."\n";
+ $rc = -10;
+ }
+
+ # Set $return_code based on priorities.
+ # 1 means the command found a match and was succesful
+ # at least one time in the whole file.
+ # 0 means there was no match.
+ # -1 means there was an error.
+ # -2 means there was a warning.
+ if ($DEBUG_RETURN_CODE) {
+ print "Return code $rc after evaluation.\n";
+ }
+ if ($rc == -1) {
+ $return_code = -1;
+ }
+ elsif (($rc == -2) && ($return_code >= 0)) {
+ $return_code = -2;
+ }
+ elsif (($rc == 1) && ($return_code == 0)) {
+ $return_code = 1;
+ }
+ elsif (($rc == 0) && ($return_code == 1)) {
+ $return_code = 1;
+ }
+ elsif (($rc >= 0) && ($return_code < 0)) {
+ # Do nothing
+ }
+ else {
+ $return_code = $rc;
+ }
+ if ($DEBUG_RETURN_CODE) {
+ print "Global return code: $return_code.\n";
+ }
+ }
+ if ( ($pass != $total_passes) &&
+ ( ($is_comment == 0) || $process_comments) ) {
+ if ($DEBUG_COL_LENGTH == 1) {
+ print "Measuring column length of line: ".
+ "'$this_line'\n";
+ }
+ # Calcule max length array
+ if ($tabulate) {
+ my $j=0;
+ for (my $i=0; $i <= scalar(@LINE)-1; $i++) {
+ # Allow adding more lines, and checking
+ # element's length right.
+ if ($LINE[$i] eq "\n") {
+ $j = $i+1;
+ next;
+ }
+ if (! exists $lengths[$i-$j]) {
+ $lengths[$i-$j]= length($LINE[$i]);
+ }
+ elsif ($lengths[$i-$j] < length($LINE[$i]) ) {
+ $lengths[$i-$j]= length($LINE[$i]);
+ }
+ if ($DEBUG_COL_LENGTH == 1) {
+ print "Column ".($i-$j+1).
+ ", length: $lengths[$i].\n";
+ }
+ }
+ }
+ }
+
+ # Print the result after processing
+ if ($pass >= $total_passes) {
+ if (($is_comment == 1) && !$process_comments) {
+ print FILE_OUT "$this_line\n";
+ }
+ elsif (@LINE > 0) {
+ my $delimiter;
+ my $j=0;
+
+ # Set the output delimiter
+ if (length($output_delimiter) != 0) {
+ $delimiter = $output_delimiter;
+ }
+ else {
+ $delimiter = $delimiters_char[$delimiter_index];
+ }
+
+ # Write output
+ for (my $i=0; $i <= scalar(@LINE)-1; $i++) {
+ # Allow adding more lines, and handle
+ # new lines.
+ if ($LINE[$i] eq "\n") {
+ print FILE_OUT "\n";
+ $j = $i+1;
+ next;
+ }
+ if (($i-$j) > scalar(@lengths)-1) {
+ # If column length array has no number
+ # for this column, print it as is.
+ print FILE_OUT $LINE[$i];
+ } else {
+ printf FILE_OUT "%-$lengths[$i-$j]s",$LINE[$i];
+ }
+ # print the last column without delimiter
+ if ( ($i < @LINE-1) &&
+ (!($LINE[$i+1] eq "\n"))) {
+ print FILE_OUT $delimiter;
+ }
+ }
+ print FILE_OUT "\n";
+ }
+ }
+ }
+
+ }
+ # Close output file.
+ if ($pass >= $total_passes) {
+ close(FILE_OUT);
+ }
+
+ # Print all column numbers (DEBUGGING)
+ if ( ($pass != $total_passes) && ($DEBUG_GUESSING==1) ) {
+ print "Reference column: $REF_COL.\n";
+ print "Footprint column: $FOOTPRINT_COL.\n";
+ print "X column: $X_COL.\n";
+ print "Y column: $Y_COL.\n";
+ print "Rotation column: $ANGLE_COL.\n";
+ print "Layer column: $LAYER_COL.\n";
+ print "Value column: $VALUE_COL.\n";
+ }
+
+ # If last guessing pass is complete, but all columns were not guessed,
+ # exit with an error.
+ if ( $guessing_file_format &&
+ ($pass == $total_passes-1) )
+ {
+ die ("Can't guess file format.\n");
+ }
+
+ # If file format was guessed, but next pass is not the last one,
+ # then go to the last one (processing pass).
+ if ( (!$guessing_file_format) &&
+ ($pass < $total_passes-1) ) {
+ $pass = $total_passes-1;
+ }
+ }
+ close(FILE_IN);
+ if ($tempfile) {
+ unlink $tempfile;
+ }
+
+ exit $return_code;
+}
+
diff --git a/utils/gxyrs/gxyrs.pm b/utils/gxyrs/gxyrs.pm
new file mode 100644
index 0000000..e60b6db
--- /dev/null
+++ b/utils/gxyrs/gxyrs.pm
@@ -0,0 +1,658 @@
+#
+# Copyright (C) 2008 Carlos Nieves Onega
+# Copyright (C) 2008 other contributors
+# (see ChangeLog or SCM history for details)
+
+# This file is part of gxyrs.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+use strict;
+use warnings;
+
+package gxyrs;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 2.21 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&check_columns &del_line &rotate_comp &subst_col_val &change_col_units &add_number_to_col &translate_col_val @LINE &panelize_xyrs &mul_col_val &gxyrs_get_xy_transform_matrix &gxyrs_apply_xy_transform &swap_columns &insert_column);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = qw(@LINE $CASE_INSENSITIVE);
+}
+
+use vars qw(
+ $CASE_INSENSITIVE
+);
+
+our @LINE ;# = ( "Package", "Filters" );
+#our $CASE_INSENSITIVE;
+
+# Checks if a column number is a number between the specified range.
+#
+# Returns 1 if success, 0 otherwise
+# If error, prints an error with the function caller (passed as argument)
+# to STDERR
+sub check_column_number {
+ my ($f_name,$number, $min, $max) = @_;
+
+ if ($number !~ /^[0-9]+$/ ) {
+ print STDERR "Error: $f_name: wrong column argument: $number.\n";
+ return 0;
+ }
+ # Column number must be a number within line columns number
+ if (($number > $max) ||
+ ($number < $min)) {
+ print STDERR "Error: $f_name: Element number ($number) is not within ($min..$max).\n";
+ return 0;
+ }
+ return 1;
+}
+
+# This function checks if the data has the pattern specified by the checklist.
+# The data to be checked is in the global variable $LINE;
+# The check list is a list of elements. Each element is a list with two single elements specifying
+# the data number 'n' and the pattern. The element 'nth' of the data list should pass the pattern.
+# The first element of the data has the number 1.
+# The functions returns 1 if the data passes all the checks and 0 otherwise.
+#
+# Returns -1 if error, 0 if not match, 1 if match.
+# if no argument is given, returns 1.
+#
+# Example: check_columns 2, '[0-9]+', 3, 'R[0-9]+';
+# column 2 should be a number, and
+# column 3 is a string beginning with R followed by a number.
+sub check_columns {
+ my(@check_list) = @_; # Check list. Each pair is (column, pattern)
+
+ # Pair list expected. The parameter number should be odd.
+ if ( (@LINE == 0) || (@check_list & 1 != 0) ) { return 0 };
+
+ for (my $i=0; $i <= @check_list-1; $i+=2) {
+ my($number, $pattern) = ($check_list[$i], $check_list[$i+1]);
+ # Column number must be a number
+ if ($number !~ /^[0-9]+$/ ) {
+ print STDERR "Error: check_columns: wrong column argument: $number.\n";
+ return -1;
+ }
+ # Column number must be a number within line columns number
+ if (($number > @LINE) ||
+ ($number <= 0)) {
+ print STDERR "Error: Check pattern: Element number ($number) is not within (1..".(@LINE).").\n";
+ return -1;
+ }
+ $number-=1;
+
+ if (! defined $CASE_INSENSITIVE ) {
+ print STDERR "Error: Check pattern: variable CASE_INSENSITIVE should be defined.\n";
+ print STDERR "Changing it to 0 (default).\n";
+ $CASE_INSENSITIVE=0;
+ }
+ if ($CASE_INSENSITIVE !~ /^[0,1]$/) {
+ print STDERR "Error: Check pattern: variable CASE_INSENSITIVE ($CASE_INSENSITIVE) should be 0 or 1.\n";
+ print STDERR "Changing it to 0 (default).\n";
+ $CASE_INSENSITIVE=0;
+ }
+ # Build the pattern, adding beginning and end marks.
+ $pattern='^'.$pattern.'$';
+
+ # Test the pattern
+ if ($CASE_INSENSITIVE == 1) {
+ if (! ($LINE[$number] =~ /$pattern/i)) {
+ return 0; # Found one non-matching test. Return FALSE.
+ }
+ }
+ else {
+ if (! ($LINE[$number] =~ /$pattern/)) {
+ return 0; # Found one non-matching test. Return FALSE.
+ }
+ }
+ }
+ return 1;
+}
+
+
+# Delete the line (global variable @LINE) if it matches the pattern specified.
+# It uses check_columns for pattern matching, and if it matches,
+# then the line is deleted.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example: del 2, 'R[0-9]+';
+# delete all lines having a R followed by a number in column number 2.
+sub del_line {
+ my (@check_list) = @_;
+ my $rc = check_columns (@check_list);
+ if ($rc == 1) {
+ splice(@LINE);
+ return 1;
+ } else {
+ return $rc;
+ }
+}
+
+# Rotate the component if it matches the pattern specified.
+# It uses check_columns for pattern matching, and if it matches,
+# then the component is rotated.
+#
+# Returns 1 if match and changed, 0 if not match, -1 if error.
+#
+# Example: rotate 5, 90, 2, 'R[0-9]+';
+# rotate all components having a R followed by a number in column number 2,
+# by 90º. Rotation angle is in column 5.
+sub rotate_comp {
+ my ($angle_col, $angle, @check_list) = @_;
+ my $rc;
+
+ if (! (check_column_number("rotate_comp",$angle_col, 0, scalar(@LINE)))) {
+ return -1;
+ }
+
+ if ($angle !~ /^[+-]??[0-9]*(\.[0-9]+)*$/ ) {
+ # Angle doesn't match the expression "number.number", where
+ # ".number" may not exist.
+ print STDERR "Error: rotate_comp: wrong angle: $angle.\n";
+ return -1;
+ }
+ $rc = check_columns (@check_list);
+ if ($rc < 0) {
+ return $rc;
+ }
+ if ($rc) {
+ $LINE[$angle_col-1] += $angle;
+ $LINE[$angle_col-1] -= 360*int($LINE[$angle_col-1] / 360) ;
+ return 1;
+ }
+ return 0;
+}
+
+# Replace a column value if it matches the pattern specified.
+# It uses check_columns for pattern matching, and if it matches,
+# then the column is replaced.
+#
+# Returns 1 if match and changed, 0 if not match, -1 if error.
+#
+# Example: subst 3 , '100nF', 3, '0.1u';
+# if the value in column 3 is "0.1u", then replace it with "100nF".
+#
+# Example: subst 2 , 'D1', 3, '1n4148';
+# if the value in column 3 is "1n4148", then replace column 2 with "D1".
+sub subst_col_val {
+ my ($col, $value, @check_list) = @_;
+ my $rc;
+
+ if (! (check_column_number("subst_col_val",$col, 0, scalar(@LINE)))) {
+ return -1;
+ }
+
+ $rc = check_columns (@check_list);
+ if ($rc < 0) {
+ return $rc;
+ }
+ if ($rc) {
+ $LINE[$col-1] = $value;
+ return 1;
+ }
+ return 0;
+}
+
+# Change units of a given text.
+# Returns:
+# 1 if match and changed,
+# 0 if not match,
+# -1 if units not supported or wrong format.
+# -2 if string to change has no units.
+#
+# Example: change_text_units 'mm', '102.40mil';
+# replaces string '102.40mil' by the its equivalent in mm: '2.60096mm'
+#
+sub change_text_units {
+ my($return_value) = 0;
+ my($desired_units, $string) = @_; # $_[1] MUST be the string to be changed. See below.
+
+ # If the text has no units, warn the user.
+ if ($string =~ /^[+-]??[0-9]*(\.[0-9]*)*$/) {
+ print STDERR "Warning: change_text_units: Text ".$string." has no units. Leaving it as is.\n";
+ return -2;
+ }
+
+ # If it's only text, then warn the user.
+ if ($string !~ /^[+-]??[0-9]/) {
+ print STDERR "Warning: change_text_units: Text $string has no numbers!\n";
+ return -2;
+ }
+
+ # If it is already in the desired units, don't change it.
+ if ($string =~ /^[+-]??[0-9]*(\.[0-9]*)*$desired_units$/) {
+ return 0;
+ }
+ if ($desired_units =~ /^mm$/) {
+ # The desired units are mm.
+ if ($string =~ /^[+-]??[0-9]*(\.[0-9]*)*[A-Za-z]*$/) {
+ # The format is N.Nunits, where N is a number.
+ if ($string =~ /(.*)mil$/i) {
+ # The original units are mils (1/1000th inches).
+ $string = ($1*0.0254)."mm";
+ $_[1] = $string;
+ return 1;
+ }
+ elsif ($string =~ /(.*)in$/i) {
+ # The original units are inches.
+ $string = ($1*25.4)."mm";
+ $_[1] = $string;
+ return 1;
+ }
+ else {
+ # Units are not supported.
+ $_=$string;
+ m/([A-Za-z]*)$/;
+ print STDERR "Changing $string to mm: Units $1 not supported.\n";
+ print STDERR "Line: @LINE\n";
+ return -1;
+ }
+ }
+ else {
+ # Wrong format. It is not N.Nunits, where N is a number.
+ print STDERR "Error: change_text_units: Wrong format: $string.\n";
+ return -1;
+ }
+ }
+ elsif ($desired_units =~ /^mil$/) {
+ # The desired units are mils (1/1000th inches).
+ if ($string =~ /^[+-]??[0-9]*(\.[0-9]*)*[A-Za-z]*$/) {
+ # The format is N.Nunits, where N is a number.
+ if ($string =~ /(.*)mm$/i) {
+ # The original units are mils (1/1000th inches).
+ $string = ($1/0.0254)."mil";
+ $_[1] = $string;
+ return 1;
+ }
+ elsif ($string =~ /(.*)in$/i) {
+ # The original units are inches.
+ $string = ($1*1000)."mm";
+ $_[1] = $string;
+ return 1;
+ }
+ else {
+ # Units are not supported.
+ $_=$string;
+ m/([A-Za-z]*)$/;
+ print STDERR "Changing to mils: Units $1 not supported.\n";
+ print STDERR "Line: @LINE\n";
+ return -1;
+ }
+ }
+ else {
+ # Wrong format. It is not N.Nunits, where N is a number.
+ print STDERR "Error: change_units: Wrong format: $string.\n";
+ return -1;
+ }
+ }
+ else {
+ # Desired units are not supported.
+ print STDERR "Error: Desired units '$desired_units' not supported.\n";
+ return -1;
+ }
+}
+
+
+# Change units of a given column number.
+# Returns -1 if error, -2 if warning, and 1 if success.
+#
+# Example: change_units 'mm', 3, 5;
+# convert all numbers in column 3 and 5 to its equivalent in mm.
+#
+sub change_col_units {
+ my($return_value) = 0;
+ my($value);
+ my($changed) = 0;
+ my($desired_units, @columns) = @_;
+
+ $return_value = 0;
+ if (@columns == 0) {return 0};
+ if (@LINE == 0) {return 0};
+
+ foreach $value (@columns) {
+
+ if (! (check_column_number("change_col_units",$value, 0, scalar(@LINE)))) {
+ return -1;
+ }
+
+ # If the column is empty, continue.
+ if ($LINE[$value-1] =~ /^\s*$/) {next};
+
+ # Change the units
+ $changed = change_text_units($desired_units, $LINE[$value-1]);
+ if ($changed == -1) {
+ print STDERR "Error at column $value\n";
+ }
+ elsif ($changed == -2) {
+ print STDERR "Warning at column $value\n";
+ }
+
+ # Update return value
+ if ( ($changed == 1) && ($return_value == 0) ) {
+ $return_value++;
+ }
+ elsif ( ($changed == -2) && ($changed != -1) ) {
+ $return_value = -2;
+ }
+ elsif ($changed == -1) {
+ $return_value = -1;
+ }
+ }
+ return $return_value;
+}
+
+
+# Adds a number to a value in a given column number.
+# Note: offset and the value to be changed can be in different units.
+# Returns -1 if error, -2 if warning, and 1 if success.
+#
+# Example: offset 3, '102.5mm', 4, 'R[0-9]+' ;
+# if the text in column number 4 is R followed by a number, then adds
+# 102.5mm to the value in column 3.
+# Note: Value in column 3 can be in other units. For example: '640mil'.
+#
+sub add_number_to_col {
+ my($return_value) = 0;
+ my($changed) = 0;
+ my($column, $offset, @check_list) = @_;
+ my($offset_value) = 0;
+ my($units);
+ my $rc;
+
+ $return_value = 0;
+
+ if (! (check_column_number("add_number_to_col",$column, 0, scalar(@LINE)))) {
+ return -1;
+ }
+
+ if (@LINE == 0) {return 0};
+
+ $rc = check_columns (@check_list);
+ if ($rc < 0) {
+ return $rc;
+ }
+ if ($rc) {
+ # If the column is empty, continue.
+ if ($LINE[$column-1] =~ /^\s*$/) {next};
+
+ # Guess the line's units.
+ if ($LINE[$column-1] =~ /^[+-]??[0-9]*(\.[0-9]*)*[a-zA-Z]+$/) {
+ if ($LINE[$column-1] =~ /^.*[0-9]+([a-zA-Z]+)$/) {
+ $units = $1;
+ }
+ }
+ elsif ($LINE[$column-1] =~ /^[+-]??[0-9]*(\.[0-9]*)*$/) {
+ # Line number has no units.
+ $units = "";
+
+ if ($offset =~ /^[+-]??[0-9]*(\.[0-9]*)*[a-zA-Z]+$/) {
+ print STDERR "Error: add_number_to_col: Offset has units, but number $LINE[$column-1] has no units.\n";
+ return -1;
+ }
+ }
+ else {
+ print STDERR "Error: add_number_to_col: Wrong value at column $column: $LINE[$column-1]\n";
+ return -1;
+ }
+
+ # Change offset to line's units.
+ if (! $units =~ /^$/) {
+ $changed = change_text_units($units, $offset);
+ }
+ else {
+ $changed = 1;
+ }
+
+ # If there's an error changing the offset units, then return.
+ if ($changed == -1 ) {
+ print STDERR "Error: add_number_to_col: Error with offset parameter: $offset.\n";
+ return -1;
+ }
+ elsif ($changed == -2) {
+ print STDERR "Warning: add_number_to_col: warning in offset parameter: $offset.\n";
+ }
+
+ # Change the units
+ $_=$offset;
+ /(.*)$units$/i;
+ $offset_value = $1;
+
+ $_=$LINE[$column-1];
+ /(.*)$units$/i;
+ $LINE[$column-1] = $1+$offset_value."$units";
+
+ # Update return value
+ if ( ($changed == 1) && ($return_value == 0) ) {
+ $return_value++;
+ }
+ elsif ( ($changed == -2) && ($changed != -1) ) {
+ $return_value = -2;
+ }
+ elsif ($changed == -1) {
+ $return_value = -1;
+ }
+ }
+ return $return_value;
+}
+
+# Translate a string if it matches the pattern specified.
+# It uses check_columns for pattern matching, and if it matches,
+# then the column is replaced.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example:
+# translate 2, '^([0-9]+)n$','sprintf("%dnF",$1)', 3, 'C[0-9]+';
+# if the value in column 3 is C followed by a number, then
+# if the value in column 2 is a number followed by 'n', translate it
+# to the same value followed by 'nF'.
+# If there is 'C10' in column 3 and '10n' in column 2,
+# change '10n' to '10nF'.
+sub translate_col_val {
+ my($column, $string, $substitution, @checklist) = @_;
+ my $rc;
+
+ if (! (check_column_number("translate_col_val",$column, 0, scalar(@LINE)))) {
+ return -1;
+ }
+ if (@LINE == 0) {return 0};
+
+ if ( (! @checklist) || (@checklist)) {
+ $rc = check_columns (@checklist);
+ if ($rc <= 0) {
+ return $rc;
+ }
+ else {
+ if ($CASE_INSENSITIVE == 1) {
+ if ($LINE[$column-1] =~ s/$string/$substitution/ixee) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ else {
+ if ($LINE[$column-1] =~ s/$string/$substitution/xee) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+# Panelize the list.
+#
+# Warning: this should ALWAYS be the last command in your script.
+sub panelize_xyrs {
+ my ($no_x, $no_y, $AX, $AY, $X_COL, $Y_COL, $REF_COL, $REF_PATTERN) = @_;
+ my ($i, $j);
+ my @new_array = ();
+ my $refdes;
+
+ if (! (check_column_number("panelize_xyrs", $X_COL, 0, scalar(@LINE)) &&
+ check_column_number("panelize_xyrs", $Y_COL, 0, scalar(@LINE)) &&
+ check_column_number("panelize_xyrs", $REF_COL, 0, scalar(@LINE)) )) {
+ return -1;
+ }
+
+ $refdes = $LINE[$REF_COL-1];
+
+ for ($i=0; $i<=$no_x-1; $i++) {
+ for ($j=0; $j<=$no_y-1; $j++) {
+ my @new_line = @LINE;
+
+
+ if (length($REF_PATTERN) == 0) {
+ $new_line[$REF_COL-1] = $refdes."-$i-$j";
+ }
+ else {
+ $new_line[$REF_COL-1] = $refdes.$REF_PATTERN;
+ }
+
+ if (($i == 0) && ($j == 0)) {
+ $LINE[$REF_COL-1] = $new_line[$REF_COL-1];
+ next;
+ }
+
+ $new_line[$X_COL-1] = $LINE[$X_COL-1]+$i*$AX;
+ $new_line[$Y_COL-1] = $LINE[$Y_COL-1]+$j*$AY;
+
+ unshift(@new_line, "\n");
+ push (@new_array, @new_line);
+
+ }
+ }
+ push (@LINE, @new_array);
+ return 1;
+}
+
+# Multiply the number in the specified column by the given amount.
+#
+# It uses check_columns for pattern matching, and if it matches,
+# then the column is replaced.
+# The number to be multiplied may have units at the end.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example: multiply 3, 2.5, 4, 'R[0-9]+' ;
+# if the text in column number 4 is R followed by a number, then multiply
+# the value in column 3 by 2.5.
+# Note: Value in column 3 may have units or not. For example: '640mil'.
+
+sub mul_col_val {
+ my($string_format)='^([+-]??[0-9]*(\.[0-9]*)*)([a-zA-Z]*)$';
+ my($column, $factor, @checklist) = @_;
+ my $rc;
+
+
+ if (! (check_column_number("mul_col_val", $column, 0, scalar(@LINE)))) {
+ return -1;
+ }
+
+ if ($factor !~ /^[+-]??[0-9]*(\.[0-9]*)*$/) {
+ print STDERR "Error: mul_col_val: Multiplying factor is not a number.\n";
+ return -1;
+ }
+
+ $rc = check_columns (@checklist);
+
+ if ($rc < 0) {
+ return $rc;
+ }
+ if ($rc) {
+ if ($LINE[$column-1] =~ /$string_format/) {
+ return translate_col_val $column, $string_format,'sprintf("%f%s", $1*'.($factor).',$3)';
+ }
+ else {
+ print STDERR "Error: mul_col_val: bad number parameter ($LINE[$column-1]) passed to multiply function.\n";
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+# Swap two columns
+#
+# Given two column numbers, this function swaps the contents of the columns.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example: swap_columns 3, 4, 4, 'R[0-9]+' ;
+# if the text in column number 4 is R followed by a number, then
+# swap columns 3 and 4.
+sub swap_columns {
+ my($column1, $column2, @checklist) = @_;
+ my $rc;
+
+ if (! (check_column_number("swap_columns", $column1, 0, scalar(@LINE)))) {
+ return -1;
+ }
+ if (! (check_column_number("swap_columns", $column2, 0, scalar(@LINE)))) {
+ return -1;
+ }
+ $rc = check_columns (@checklist);
+
+ if ($rc < 0) {
+ return $rc;
+ }
+ if ($rc) {
+ my $temp;
+
+ $temp = $LINE[$column1-1];
+ $LINE[$column1-1]=$LINE[$column2-1];
+ $LINE[$column2-1]=$temp;
+
+ return 1;
+ }
+
+ return 0;
+}
+
+# Insert a column with the given text in the given position
+#
+# Insert a column in the given position (0 if it's going to be the
+# first column), with the given value.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example: insert_column 0, 'new_column_value';
+# insert a column in the first position. Column value is 'new_column_value'
+sub insert_column {
+ my($column1, $value) = @_;
+
+ if (! (check_column_number("insert_column", $column1, 0, scalar(@LINE)))) {
+ return -1;
+ }
+
+ splice @LINE,$column1,$#LINE-$column1,($value,@LINE[$column1..($#LINE+-1)]);
+
+ return 1;
+}
+
+END { }
+
+1;
diff --git a/utils/tests/Makefile.am b/utils/tests/Makefile.am
index 24ddc26..fdd3664 100644
--- a/utils/tests/Makefile.am
+++ b/utils/tests/Makefile.am
@@ -1,5 +1,5 @@
## $Id$
##
-SUBDIRS = refdes_renum
+SUBDIRS = refdes_renum gxyrs
diff --git a/utils/tests/gxyrs/Makefile.am b/utils/tests/gxyrs/Makefile.am
new file mode 100644
index 0000000..aa78a73
--- /dev/null
+++ b/utils/tests/gxyrs/Makefile.am
@@ -0,0 +1,15 @@
+## $Id$
+##
+
+SUBDIRS= inputs outputs
+
+TESTS_ENVIRONMENT= PERL=${PERL} top_srcdir=${top_srcdir}
+
+RUN_TESTS= run_tests.sh
+
+check_SCRIPTS= ${RUN_TESTS}
+
+TESTS= ${RUN_TESTS}
+
+EXTRA_DIST= ${RUN_TESTS} tests.list README.txt
+
diff --git a/utils/tests/gxyrs/README.txt b/utils/tests/gxyrs/README.txt
new file mode 100644
index 0000000..1c325bb
--- /dev/null
+++ b/utils/tests/gxyrs/README.txt
@@ -0,0 +1,12 @@
+# $Id$
+#
+
+This directory contains the testsuite for the "gxyrs" script.
+No modifications to this script are allowed without adding tests here.
+If a bug report is filed, a test must be added to show the bug before
+it is allowed to be fixed.
+
+If you require additional input files, add them in the inputs/ directory.
+Reference output files go in outputs/. Add the test description to
+tests.list.
+
diff --git a/utils/tests/gxyrs/inputs/Makefile.am b/utils/tests/gxyrs/inputs/Makefile.am
new file mode 100644
index 0000000..e84a892
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/Makefile.am
@@ -0,0 +1,12 @@
+## $Id$
+##
+
+EXTRA_DIST= \
+ do_nothing.pl \
+ pcb_example1.xy \
+ pcb_example2.xy \
+ protel_example1_mil.txt \
+ protel_example1_mm.txt \
+ report1.txt \
+ report2.txt
+
diff --git a/utils/tests/gxyrs/inputs/do_nothing.pl b/utils/tests/gxyrs/inputs/do_nothing.pl
new file mode 100644
index 0000000..915fd43
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/do_nothing.pl
@@ -0,0 +1,3 @@
+
+# Keep the following line at the end of the file
+1;
diff --git a/utils/tests/gxyrs/inputs/pcb_example1.xy b/utils/tests/gxyrs/inputs/pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/inputs/pcb_example2.xy b/utils/tests/gxyrs/inputs/pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/inputs/protel_example1_mil.txt b/utils/tests/gxyrs/inputs/protel_example1_mil.txt
new file mode 100644
index 0000000..1621d7c
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 3225mil 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 3225mil 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 3225mil 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 3225mil 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 950mil 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 1225mil 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 1125mil 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 1615.95mil 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 1438.19mil 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 1342.50mil 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 1775mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 1125mil 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 504.14mil 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 1225mil 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 407.50mil 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 1875mil 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 1550mil 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 1075mil 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 1375mil 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 500mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 925mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 506.90mil 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 425mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 1336.81mil 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 1500mil 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 600mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/inputs/protel_example1_mm.txt b/utils/tests/gxyrs/inputs/protel_example1_mm.txt
new file mode 100644
index 0000000..725a003
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/protel_example1_mm.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 50.8mm 92.71mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R6 ACY1000 81.915mm 108.585mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R5 ACY1000 81.915mm 102.87mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R8 ACY1000 81.915mm 97.155mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R7 ACY1000 81.915mm 91.44mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C1 1206 24.13mm 95.885mm 0mm 0mm 0mm 0mm B 0.00 unknown
+C14 1206 31.115mm 91.44mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D6 1206 28.575mm 98.425mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C13 1206 41.04513mm 94.950026mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN3 CONNECTOR-4-1 56.515mm 91.44mm 0mm 0mm 0mm 0mm T 270.00 unknown
+C12 1206 36.530026mm 97.38487mm 0mm 0mm 0mm 0mm B 270.00 unknown
+U2 TO220 34.0995mm 106.045mm 0mm 0mm 0mm 0mm T 90.00 unknown
+D7 1206 45.085mm 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+D5 1206 28.575mm 95.885mm 0mm 0mm 0mm 0mm B 180.00 unknown
+R4 1206 12.805156mm 89.605104mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C15 1206 31.115mm 85.09mm 0mm 0mm 0mm 0mm B 90.00 unknown
+U1 TO220 10.3505mm 106.172mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R9 1206 47.625mm 85.09mm 0mm 0mm 0mm 0mm B 90.00 1k
+R10 1206 39.37mm 83.82mm 0mm 0mm 0mm 0mm B 0.00 1k
+U3 SO8 27.305mm 89.535mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R11 1206 34.925mm 83.82mm 0mm 0mm 0mm 0mm B 180.00 10k
+D2 CONNECTOR-2-1 12.7mm 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C2 1206 23.495mm 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R2 1206 12.87526mm 95.285052mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN1 CONNECTOR-2-1 6.985mm 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D4 CONNECTOR-2-1 12.7mm 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R1 1206 10.795mm 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
+C11 1206 33.954974mm 97.38487mm 0mm 0mm 0mm 0mm B 90.00 unknown
+CONN2 CONNECTOR-2-1 19.05mm 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+S2 CONNECTOR-2-1 19.05mm 97.79mm 0mm 0mm 0mm 0mm T 180.00 unknown
+S1 CONNECTOR-2-1 6.985mm 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D3 CONNECTOR-2-1 19.05mm 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+U4 SO16 38.1mm 89.535mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D1 CONNECTOR-2-1 6.985mm 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R3 1206 15.24mm 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
diff --git a/utils/tests/gxyrs/inputs/report1.txt b/utils/tests/gxyrs/inputs/report1.txt
new file mode 100644
index 0000000..ea31f9e
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/report1.txt
@@ -0,0 +1,36 @@
+RefDesignator MountTYPE X Y Rot Side Mirror PartNumber TopCell Description
+"CONN4" "THROUGH" 2000,00 3650,00 90 "TOP" "NO" "unknown" "CONNECTOR-3-1" "No_description"
+"R6" "THROUGH" 3225,00 4275,00 180 "TOP" "NO" "unknown" "ACY1000" "No_description"
+"R5" "THROUGH" 3225,00 4050,00 180 "TOP" "NO" "unknown" "ACY1000" "No_description"
+"R8" "THROUGH" 3225,00 3825,00 0 "TOP" "NO" "unknown" "ACY1000" "No_description"
+"R7" "THROUGH" 3225,00 3600,00 0 "TOP" "NO" "unknown" "ACY1000" "No_description"
+"C1" "SMD" 950,00 3775,00 0 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"C14" "SMD" 1225,00 3600,00 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"D6" "SMD" 1125,00 3875,00 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"C13" "SMD" 1615,95 3738,19 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"CONN3" "THROUGH" 2225,00 3600,00 270 "TOP" "NO" "unknown" "CONNECTOR-4-1" "No_description"
+"C12" "SMD" 1438,19 3834,05 270 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"U2" "SMD" 1342,50 4175,00 90 "TOP" "NO" "unknown" "TO220" "No_description"
+"D7" "SMD" 1775,00 3350,00 270 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"D5" "SMD" 1125,00 3775,00 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"R4" "SMD" 504,14 3527,76 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"C15" "SMD" 1225,00 3350,00 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"U1" "SMD" 407,50 4180,00 90 "TOP" "NO" "unknown" "TO220" "No_description"
+"R9" "SMD" 1875,00 3350,00 90 "BOTTOM" "NO" "1k" "1206" "No_description"
+"R10" "SMD" 1550,00 3300,00 0 "BOTTOM" "NO" "1k" "1206" "No_description"
+"U3" "SMD" 1075,00 3525,00 270 "BOTTOM" "NO" "unknown" "SO8" "No_description"
+"R11" "SMD" 1375,00 3300,00 180 "BOTTOM" "NO" "10k" "1206" "No_description"
+"D2" "THROUGH" 500,00 3850,00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"C2" "SMD" 925,00 3350,00 270 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"R2" "SMD" 506,90 3751,38 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"CONN1" "THROUGH" 275,00 3625,00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"D4" "THROUGH" 500,00 3625,00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"R1" "SMD" 425,00 3375,00 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"C11" "SMD" 1336,81 3834,05 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"CONN2" "THROUGH" 750,00 3625,00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"S2" "THROUGH" 750,00 3850,00 180 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"S1" "THROUGH" 275,00 3850,00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"D3" "THROUGH" 750,00 3350,00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"U4" "SMD" 1500,00 3525,00 90 "BOTTOM" "NO" "unknown" "SO16" "No_description"
+"D1" "THROUGH" 275,00 3350,00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"R3" "SMD" 600,00 3375,00 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
diff --git a/utils/tests/gxyrs/inputs/report2.txt b/utils/tests/gxyrs/inputs/report2.txt
new file mode 100644
index 0000000..ad33c97
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/report2.txt
@@ -0,0 +1,36 @@
+RefDesignator MountTYPE X Y Rot Side Mirror PartNumber TopCell Description
+"CONN4" "THROUGH" 2000.00 3650.00 90 "TOP" "NO" "unknown" "CONNECTOR-3-1" "No_description"
+"R6" "THROUGH" 3225.00 4275.00 180 "TOP" "NO" "unknown" "ACY1000" "No_description"
+"R5" "THROUGH" 3225.00 4050.00 180 "TOP" "NO" "unknown" "ACY1000" "No_description"
+"R8" "THROUGH" 3225.00 3825.00 0 "TOP" "NO" "unknown" "ACY1000" "No_description"
+"R7" "THROUGH" 3225.00 3600.00 0 "TOP" "NO" "unknown" "ACY1000" "No_description"
+"C1" "SMD" 950.00 3775.00 0 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"C14" "SMD" 1225.00 3600.00 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"D6" "SMD" 1125.00 3875.00 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"C13" "SMD" 1615.95 3738.19 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"CONN3" "THROUGH" 2225.00 3600.00 270 "TOP" "NO" "unknown" "CONNECTOR-4-1" "No_description"
+"C12" "SMD" 1438.19 3834.05 270 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"U2" "SMD" 1342.50 4175.00 90 "TOP" "NO" "unknown" "TO220" "No_description"
+"D7" "SMD" 1775.00 3350.00 270 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"D5" "SMD" 1125.00 3775.00 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"R4" "SMD" 504.14 3527.76 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"C15" "SMD" 1225.00 3350.00 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"U1" "SMD" 407.50 4180.00 90 "TOP" "NO" "unknown" "TO220" "No_description"
+"R9" "SMD" 1875.00 3350.00 90 "BOTTOM" "NO" "1k" "1206" "No_description"
+"R10" "SMD" 1550.00 3300.00 0 "BOTTOM" "NO" "1k" "1206" "No_description"
+"U3" "SMD" 1075.00 3525.00 270 "BOTTOM" "NO" "unknown" "SO8" "No_description"
+"R11" "SMD" 1375.00 3300.00 180 "BOTTOM" "NO" "10k" "1206" "No_description"
+"D2" "THROUGH" 500.00 3850.00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"C2" "SMD" 925.00 3350.00 270 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"R2" "SMD" 506.90 3751.38 180 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"CONN1" "THROUGH" 275.00 3625.00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"D4" "THROUGH" 500.00 3625.00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"R1" "SMD" 425.00 3375.00 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"C11" "SMD" 1336.81 3834.05 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
+"CONN2" "THROUGH" 750.00 3625.00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"S2" "THROUGH" 750.00 3850.00 180 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"S1" "THROUGH" 275.00 3850.00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"D3" "THROUGH" 750.00 3350.00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"U4" "SMD" 1500.00 3525.00 90 "BOTTOM" "NO" "unknown" "SO16" "No_description"
+"D1" "THROUGH" 275.00 3350.00 0 "TOP" "NO" "unknown" "CONNECTOR-2-1" "No_description"
+"R3" "SMD" 600.00 3375.00 90 "BOTTOM" "NO" "unknown" "1206" "No_description"
diff --git a/utils/tests/gxyrs/outputs/Makefile.am b/utils/tests/gxyrs/outputs/Makefile.am
new file mode 100644
index 0000000..5884d44
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/Makefile.am
@@ -0,0 +1,248 @@
+## $Id$
+##
+
+# dir | sort | awk '{printf("\t%s \\\n", $0)}' |grep -v Makefile >> Makefile.am
+
+EXTRA_DIST= \
+ change_units_already_done_no_title-protel_example1_mil.txt \
+ change_units_already_done_no_title-protel_example1_mil.txt-error \
+ change_units_already_done-protel_example1_mil.txt \
+ change_units_already_done-protel_example1_mil.txt-error \
+ change_units_bad_column_number1-pcb_example1.xy \
+ change_units_bad_column_number1-pcb_example1.xy-error \
+ change_units_bad_column_number2-pcb_example1.xy \
+ change_units_bad_column_number2-pcb_example1.xy-error \
+ change_units_column_number_too_high-pcb_example1.xy \
+ change_units_column_number_too_high-pcb_example1.xy-error \
+ change_units_negative_column_number-pcb_example1.xy \
+ change_units_negative_column_number-pcb_example1.xy-error \
+ change_units_no_units-pcb_example1.xy \
+ change_units_no_units-pcb_example1.xy-error \
+ change_units_to_mil_2cols-protel_example1_mm.txt \
+ change_units_to_mil_2cols-protel_example1_mm.txt-error \
+ change_units_to_mil-protel_example1_mm.txt \
+ change_units_to_mil-protel_example1_mm.txt-error \
+ change_units_to_mm_2cols-protel_example1_mil.txt \
+ change_units_to_mm_2cols-protel_example1_mil.txt-error \
+ change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt \
+ change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error \
+ change_units_to_mm_6col_tabulated-protel_example1_mil.txt \
+ change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error \
+ change_units_to_mm_no_title-protel_example1_mil.txt \
+ change_units_to_mm_no_title-protel_example1_mil.txt-error \
+ change_units_to_mm-protel_example1_mil.txt \
+ change_units_to_mm-protel_example1_mil.txt-error \
+ change_units_units_not_supported-protel_example1_mil.txt \
+ change_units_units_not_supported-protel_example1_mil.txt-error \
+ del_case_insensitive1-pcb_example1.xy \
+ del_case_insensitive1-pcb_example1.xy-error \
+ del_case_insensitive2-pcb_example2.xy \
+ del_case_insensitive2-pcb_example2.xy-error \
+ del_case_sensitive1-pcb_example1.xy \
+ del_case_sensitive1-pcb_example1.xy-error \
+ del_case_sensitive2-pcb_example2.xy \
+ del_case_sensitive2-pcb_example2.xy-error \
+ del_case_sensitive3-pcb_example1.xy \
+ del_case_sensitive3-pcb_example1.xy-error \
+ del_case_sensitive4-pcb_example2.xy \
+ del_case_sensitive4-pcb_example2.xy-error \
+ del_check_columns_no_match-pcb_example1.xy \
+ del_check_columns_no_match-pcb_example1.xy-error \
+ del_check_columns_return_minus1-pcb_example1.xy \
+ del_check_columns_return_minus1-pcb_example1.xy-error \
+ do_nothing-pcb_example1.xy \
+ do_nothing-pcb_example1.xy-error \
+ do_nothing_tabulated-pcb_example1.xy \
+ do_nothing_tabulated-pcb_example1.xy-error \
+ footprint_pcb1-pcb_example1.xy \
+ footprint_pcb1-pcb_example1.xy-error \
+ footprint_protel1-protel_example1_mil.txt \
+ footprint_protel1-protel_example1_mil.txt-error \
+ footprint_report1-report1.txt \
+ footprint_report1-report1.txt-error \
+ insert_column_bad_column_number1-pcb_example1.xy \
+ insert_column_bad_column_number1-pcb_example1.xy-error \
+ insert_column_bad_column_number2-pcb_example1.xy \
+ insert_column_bad_column_number2-pcb_example1.xy-error \
+ insert_column_column_number_too_high-pcb_example1.xy \
+ insert_column_column_number_too_high-pcb_example1.xy-error \
+ insert_column_first_pos-pcb_example1.xy \
+ insert_column_first_pos-pcb_example1.xy-error \
+ insert_column_negative_column_number-pcb_example1.xy \
+ insert_column_negative_column_number-pcb_example1.xy-error \
+ insert_column_second_pos-pcb_example1.xy \
+ insert_column_second_pos-pcb_example1.xy-error \
+ match_column_insensitive1-pcb_example2.xy \
+ match_column_insensitive1-pcb_example2.xy-error \
+ match_column_insensitive2-pcb_example2.xy \
+ match_column_insensitive2-pcb_example2.xy-error \
+ match_column_insensitive3-pcb_example1.xy \
+ match_column_insensitive3-pcb_example1.xy-error \
+ match_column_insensitive4-pcb_example1.xy \
+ match_column_insensitive4-pcb_example1.xy-error \
+ match_column_is_negative-pcb_example1.xy \
+ match_column_is_negative-pcb_example1.xy-error \
+ match_column_is_not_number2-pcb_example1.xy \
+ match_column_is_not_number2-pcb_example1.xy-error \
+ match_column_is_not_number-pcb_example1.xy \
+ match_column_is_not_number-pcb_example1.xy-error \
+ match_column_is_real-pcb_example1.xy \
+ match_column_is_real-pcb_example1.xy-error \
+ match_column_is_too_high-pcb_example1.xy \
+ match_column_is_too_high-pcb_example1.xy-error \
+ match_column_sensitive1-pcb_example1.xy \
+ match_column_sensitive1-pcb_example1.xy-error \
+ match_column_sensitive2-pcb_example1.xy \
+ match_column_sensitive2-pcb_example1.xy-error \
+ match_column_sensitive3-pcb_example2.xy \
+ match_column_sensitive3-pcb_example2.xy-error \
+ match_column_sensitive4-pcb_example2.xy \
+ match_column_sensitive4-pcb_example2.xy-error \
+ match_no_args-pcb_example1.xy \
+ match_no_args-pcb_example1.xy-error \
+ multiply_bad_column_number1-pcb_example1.xy \
+ multiply_bad_column_number1-pcb_example1.xy-error \
+ multiply_bad_column_number2-pcb_example1.xy \
+ multiply_bad_column_number2-pcb_example1.xy-error \
+ multiply_column_number_too_high-pcb_example1.xy \
+ multiply_column_number_too_high-pcb_example1.xy-error \
+ multiply_integer_factor-pcb_example1.xy \
+ multiply_integer_factor-pcb_example1.xy-error \
+ multiply_negative_column_number-pcb_example1.xy \
+ multiply_negative_column_number-pcb_example1.xy-error \
+ multiply_negative_integer_factor-pcb_example1.xy \
+ multiply_negative_integer_factor-pcb_example1.xy-error \
+ multiply_negative_real_factor-pcb_example1.xy \
+ multiply_negative_real_factor-pcb_example1.xy-error \
+ multiply_real_factor-pcb_example1.xy \
+ multiply_real_factor-pcb_example1.xy-error \
+ multiply_with_checklist-pcb_example1.xy \
+ multiply_with_checklist-pcb_example1.xy-error \
+ offset_bad_column_number1-pcb_example1.xy \
+ offset_bad_column_number1-pcb_example1.xy-error \
+ offset_bad_column_number2-pcb_example1.xy \
+ offset_bad_column_number2-pcb_example1.xy-error \
+ offset_check_columns_match-pcb_example1.xy \
+ offset_check_columns_match-pcb_example1.xy-error \
+ offset_check_columns_no_match-pcb_example1.xy \
+ offset_check_columns_no_match-pcb_example1.xy-error \
+ offset_check_columns_return_minus1-pcb_example1.xy \
+ offset_check_columns_return_minus1-pcb_example1.xy-error \
+ offset_column_number_too_high-pcb_example1.xy \
+ offset_column_number_too_high-pcb_example1.xy-error \
+ offset_match_negative_offset-pcb_example1.xy \
+ offset_match_negative_offset-pcb_example1.xy-error \
+ offset_match_negative_real_offset-pcb_example1.xy \
+ offset_match_negative_real_offset-pcb_example1.xy-error \
+ offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy \
+ offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error \
+ offset_match_real_offset-pcb_example1.xy \
+ offset_match_real_offset-pcb_example1.xy-error \
+ offset_negative_column_number-pcb_example1.xy \
+ offset_negative_column_number-pcb_example1.xy-error \
+ output_delimiter-pcb_example1.xy \
+ output_delimiter-pcb_example1.xy-error \
+ panelize_bad_ref_column_number1-pcb_example1.xy \
+ panelize_bad_ref_column_number1-pcb_example1.xy-error \
+ panelize_bad_ref_column_number2-pcb_example1.xy \
+ panelize_bad_ref_column_number2-pcb_example1.xy-error \
+ panelize_bad_x_column_number1-pcb_example1.xy \
+ panelize_bad_x_column_number1-pcb_example1.xy-error \
+ panelize_bad_x_column_number2-pcb_example1.xy \
+ panelize_bad_x_column_number2-pcb_example1.xy-error \
+ panelize_bad_y_column_number1-pcb_example1.xy \
+ panelize_bad_y_column_number1-pcb_example1.xy-error \
+ panelize_bad_y_column_number2-pcb_example1.xy \
+ panelize_bad_y_column_number2-pcb_example1.xy-error \
+ panelize_negative_ref_column_number-pcb_example1.xy \
+ panelize_negative_ref_column_number-pcb_example1.xy-error \
+ panelize_negative_x_column_number-pcb_example1.xy \
+ panelize_negative_x_column_number-pcb_example1.xy-error \
+ panelize_negative_y_column_number-pcb_example1.xy \
+ panelize_negative_y_column_number-pcb_example1.xy-error \
+ panelize_ref_column_number_too_high-pcb_example1.xy \
+ panelize_ref_column_number_too_high-pcb_example1.xy-error \
+ panelize_tabulate-pcb_example1.xy \
+ panelize_tabulate-pcb_example1.xy-error \
+ panelize_x_column_number_too_high-pcb_example1.xy \
+ panelize_x_column_number_too_high-pcb_example1.xy-error \
+ panelize_y_column_number_too_high-pcb_example1.xy \
+ panelize_y_column_number_too_high-pcb_example1.xy-error \
+ process_comment-pcb_example1.xy \
+ process_comment-pcb_example1.xy-error \
+ rotate_bad_column_number1-pcb_example1.xy \
+ rotate_bad_column_number1-pcb_example1.xy-error \
+ rotate_bad_column_number2-pcb_example1.xy \
+ rotate_bad_column_number2-pcb_example1.xy-error \
+ rotate_case_insensitive-pcb_example1.xy \
+ rotate_case_insensitive-pcb_example1.xy-error \
+ rotate_case_sensitive-pcb_example1.xy \
+ rotate_case_sensitive-pcb_example1.xy-error \
+ rotate_check_columns_no_match-pcb_example1.xy \
+ rotate_check_columns_no_match-pcb_example1.xy-error \
+ rotate_check_columns_return_minus1-pcb_example1.xy \
+ rotate_check_columns_return_minus1-pcb_example1.xy-error \
+ rotate_column_number_too_high-pcb_example1.xy \
+ rotate_column_number_too_high-pcb_example1.xy-error \
+ rotate_negative_angle-pcb_example1.xy \
+ rotate_negative_angle-pcb_example1.xy-error \
+ rotate_negative_column_number-pcb_example1.xy \
+ rotate_negative_column_number-pcb_example1.xy-error \
+ rotate_negative_real_angle-pcb_example1.xy \
+ rotate_negative_real_angle-pcb_example1.xy-error \
+ rotate_real_angle-pcb_example1.xy \
+ rotate_real_angle-pcb_example1.xy-error \
+ subst_bad_column_number1-pcb_example1.xy \
+ subst_bad_column_number1-pcb_example1.xy-error \
+ subst_bad_column_number2-pcb_example1.xy \
+ subst_bad_column_number2-pcb_example1.xy-error \
+ subst_check_columns_match-pcb_example1.xy \
+ subst_check_columns_match-pcb_example1.xy-error \
+ subst_check_columns_no_match-pcb_example1.xy \
+ subst_check_columns_no_match-pcb_example1.xy-error \
+ subst_check_columns_return_minus1-pcb_example1.xy \
+ subst_check_columns_return_minus1-pcb_example1.xy-error \
+ subst_column_number_too_high-pcb_example1.xy \
+ subst_column_number_too_high-pcb_example1.xy-error \
+ subst_negative_column_number-pcb_example1.xy \
+ subst_negative_column_number-pcb_example1.xy-error \
+ swap_columns_bad_column1_number1-pcb_example1.xy \
+ swap_columns_bad_column1_number1-pcb_example1.xy-error \
+ swap_columns_bad_column1_number2-pcb_example1.xy \
+ swap_columns_bad_column1_number2-pcb_example1.xy-error \
+ swap_columns_bad_column2_number1-pcb_example1.xy \
+ swap_columns_bad_column2_number1-pcb_example1.xy-error \
+ swap_columns_bad_column2_number2-pcb_example1.xy \
+ swap_columns_bad_column2_number2-pcb_example1.xy-error \
+ swap_columns_column1_number_too_high-pcb_example1.xy \
+ swap_columns_column1_number_too_high-pcb_example1.xy-error \
+ swap_columns_column2_number_too_high-pcb_example1.xy \
+ swap_columns_column2_number_too_high-pcb_example1.xy-error \
+ swap_columns_negative_column1_number-pcb_example1.xy \
+ swap_columns_negative_column1_number-pcb_example1.xy-error \
+ swap_columns_negative_column2_number-pcb_example1.xy \
+ swap_columns_negative_column2_number-pcb_example1.xy-error \
+ swap_columns_no_matchlist-pcb_example1.xy \
+ swap_columns_no_matchlist-pcb_example1.xy-error \
+ swap_columns_no_match-pcb_example1.xy \
+ swap_columns_no_match-pcb_example1.xy-error \
+ swap_columns_with_match-pcb_example1.xy \
+ swap_columns_with_match-pcb_example1.xy-error \
+ translate_bad_column_number1-pcb_example1.xy \
+ translate_bad_column_number1-pcb_example1.xy-error \
+ translate_bad_column_number2-pcb_example1.xy \
+ translate_bad_column_number2-pcb_example1.xy-error \
+ translate_column_change_all_value_plus_k-pcb_example1.xy \
+ translate_column_change_all_value_plus_k-pcb_example1.xy-error \
+ translate_column_change_R10_value_case_insensitive-pcb_example1.xy \
+ translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error \
+ translate_column_change_R10_value-pcb_example1.xy \
+ translate_column_change_R10_value-pcb_example1.xy-error \
+ translate_column_no_match1-pcb_example1.xy \
+ translate_column_no_match1-pcb_example1.xy-error \
+ translate_column_no_match2-pcb_example1.xy \
+ translate_column_no_match2-pcb_example1.xy-error \
+ translate_column_number_too_high-pcb_example1.xy \
+ translate_column_number_too_high-pcb_example1.xy-error \
+ translate_negative_column_number-pcb_example1.xy \
+ translate_negative_column_number-pcb_example1.xy-error
diff --git a/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt
new file mode 100644
index 0000000..54b8075
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 3225mil 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 3225mil 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 3225mil 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 3225mil 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 950mil 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 1225mil 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 1125mil 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 1615.95mil 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 1438.19mil 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 1342.50mil 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 1775mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 1125mil 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 504.14mil 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 1225mil 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 407.50mil 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 1875mil 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 1550mil 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 1075mil 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 1375mil 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 500mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 925mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 506.90mil 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 425mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 1336.81mil 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 1500mil 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 600mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error
new file mode 100644
index 0000000..08dd3df
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error
@@ -0,0 +1,4 @@
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
diff --git a/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt
new file mode 100644
index 0000000..54b8075
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 3225mil 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 3225mil 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 3225mil 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 3225mil 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 950mil 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 1225mil 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 1125mil 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 1615.95mil 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 1438.19mil 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 1342.50mil 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 1775mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 1125mil 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 504.14mil 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 1225mil 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 407.50mil 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 1875mil 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 1550mil 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 1075mil 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 1375mil 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 500mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 925mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 506.90mil 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 425mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 1336.81mil 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 1500mil 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 600mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..5192ce9
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
diff --git a/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..ae540a9
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
diff --git a/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..1de09fb
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..f894d41
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
diff --git a/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error
new file mode 100644
index 0000000..f2a1cf3
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error
@@ -0,0 +1,140 @@
+Warning: change_text_units: Text 2000.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 950.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1125.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1615.95 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 2225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1438.19 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1342.50 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1775.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1125.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 504.14 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 407.50 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1875.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1550.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1075.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1375.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 925.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 506.90 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 425.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1336.81 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 600.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 2000.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 950.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1125.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1615.95 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 2225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1438.19 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1342.50 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1775.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1125.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 504.14 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 407.50 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1875.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1550.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1075.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1375.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 925.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 506.90 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 425.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1336.81 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 600.00 has no units. Leaving it as is.
+Warning at column 4
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt b/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt
new file mode 100644
index 0000000..b88c61f
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 92.71mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R6 ACY1000 3225mil 108.585mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R5 ACY1000 3225mil 102.87mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R8 ACY1000 3225mil 97.155mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R7 ACY1000 3225mil 91.44mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C1 1206 950mil 95.885mm 0mm 0mm 0mm 0mm B 0.00 unknown
+C14 1206 1225mil 91.44mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D6 1206 1125mil 98.425mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C13 1206 1615.95mil 94.950026mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 91.44mm 0mm 0mm 0mm 0mm T 270.00 unknown
+C12 1206 1438.19mil 97.38487mm 0mm 0mm 0mm 0mm B 270.00 unknown
+U2 TO220 1342.5mil 106.045mm 0mm 0mm 0mm 0mm T 90.00 unknown
+D7 1206 1775mil 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+D5 1206 1125mil 95.885mm 0mm 0mm 0mm 0mm B 180.00 unknown
+R4 1206 504.14mil 89.605104mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C15 1206 1225mil 85.09mm 0mm 0mm 0mm 0mm B 90.00 unknown
+U1 TO220 407.5mil 106.172mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R9 1206 1875mil 85.09mm 0mm 0mm 0mm 0mm B 90.00 1k
+R10 1206 1550mil 83.82mm 0mm 0mm 0mm 0mm B 0.00 1k
+U3 SO8 1075mil 89.535mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R11 1206 1375mil 83.82mm 0mm 0mm 0mm 0mm B 180.00 10k
+D2 CONNECTOR-2-1 500mil 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C2 1206 925mil 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R2 1206 506.9mil 95.285052mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R1 1206 425mil 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
+C11 1206 1336.81mil 97.38487mm 0mm 0mm 0mm 0mm B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 97.79mm 0mm 0mm 0mm 0mm T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+U4 SO16 1500mil 89.535mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R3 1206 600mil 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt b/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt
new file mode 100644
index 0000000..fd3c5ad
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 3650mil 0mm 0mm 0mm 0mm T 90.00 unknown
+R6 ACY1000 3225mil 4275mil 0mm 0mm 0mm 0mm T 180.00 unknown
+R5 ACY1000 3225mil 4050mil 0mm 0mm 0mm 0mm T 180.00 unknown
+R8 ACY1000 3225mil 3825mil 0mm 0mm 0mm 0mm T 0.00 unknown
+R7 ACY1000 3225mil 3600mil 0mm 0mm 0mm 0mm T 0.00 unknown
+C1 1206 950mil 3775mil 0mm 0mm 0mm 0mm B 0.00 unknown
+C14 1206 1225mil 3600mil 0mm 0mm 0mm 0mm B 90.00 unknown
+D6 1206 1125mil 3875mil 0mm 0mm 0mm 0mm B 180.00 unknown
+C13 1206 1615.95mil 3738.19mil 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 3600mil 0mm 0mm 0mm 0mm T 270.00 unknown
+C12 1206 1438.19mil 3834.05mil 0mm 0mm 0mm 0mm B 270.00 unknown
+U2 TO220 1342.5mil 4175mil 0mm 0mm 0mm 0mm T 90.00 unknown
+D7 1206 1775mil 3350mil 0mm 0mm 0mm 0mm B 270.00 unknown
+D5 1206 1125mil 3775mil 0mm 0mm 0mm 0mm B 180.00 unknown
+R4 1206 504.14mil 3527.76mil 0mm 0mm 0mm 0mm B 180.00 unknown
+C15 1206 1225mil 3350mil 0mm 0mm 0mm 0mm B 90.00 unknown
+U1 TO220 407.5mil 4180mil 0mm 0mm 0mm 0mm T 90.00 unknown
+R9 1206 1875mil 3350mil 0mm 0mm 0mm 0mm B 90.00 1k
+R10 1206 1550mil 3300mil 0mm 0mm 0mm 0mm B 0.00 1k
+U3 SO8 1075mil 3525mil 0mm 0mm 0mm 0mm B 270.00 unknown
+R11 1206 1375mil 3300mil 0mm 0mm 0mm 0mm B 180.00 10k
+D2 CONNECTOR-2-1 500mil 3850mil 0mm 0mm 0mm 0mm T 0.00 unknown
+C2 1206 925mil 3350mil 0mm 0mm 0mm 0mm B 270.00 unknown
+R2 1206 506.9mil 3751.38mil 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 3625mil 0mm 0mm 0mm 0mm T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 3625mil 0mm 0mm 0mm 0mm T 0.00 unknown
+R1 1206 425mil 3375mil 0mm 0mm 0mm 0mm B 90.00 unknown
+C11 1206 1336.81mil 3834.05mil 0mm 0mm 0mm 0mm B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 3625mil 0mm 0mm 0mm 0mm T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 3850mil 0mm 0mm 0mm 0mm T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 3850mil 0mm 0mm 0mm 0mm T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 3350mil 0mm 0mm 0mm 0mm T 0.00 unknown
+U4 SO16 1500mil 3525mil 0mm 0mm 0mm 0mm B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 3350mil 0mm 0mm 0mm 0mm T 0.00 unknown
+R3 1206 600mil 3375mil 0mm 0mm 0mm 0mm B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt
new file mode 100644
index 0000000..4368356
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 50.8mm 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 81.915mm 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 81.915mm 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 81.915mm 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 81.915mm 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 24.13mm 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 31.115mm 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 28.575mm 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 41.04513mm 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 56.515mm 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 36.530026mm 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 34.0995mm 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 45.085mm 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 28.575mm 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 12.805156mm 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 31.115mm 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 10.3505mm 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 47.625mm 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 39.37mm 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 27.305mm 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 34.925mm 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 12.7mm 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 23.495mm 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 12.87526mm 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 6.985mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 12.7mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 10.795mm 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 33.954974mm 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 19.05mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 19.05mm 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 6.985mm 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 19.05mm 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 38.1mm 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 6.985mm 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 15.24mm 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error
new file mode 100644
index 0000000..08dd3df
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error
@@ -0,0 +1,4 @@
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt
new file mode 100644
index 0000000..f726e12
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 50.8mm 92.71mm 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 81.915mm 108.585mm 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 81.915mm 102.87mm 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 81.915mm 97.155mm 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 81.915mm 91.44mm 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 24.13mm 95.885mm 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 31.115mm 91.44mm 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 28.575mm 98.425mm 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 41.04513mm 94.950026mm 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 56.515mm 91.44mm 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 36.530026mm 97.38487mm 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 34.0995mm 106.045mm 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 45.085mm 85.09mm 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 28.575mm 95.885mm 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 12.805156mm 89.605104mm 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 31.115mm 85.09mm 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 10.3505mm 106.172mm 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 47.625mm 85.09mm 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 39.37mm 83.82mm 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 27.305mm 89.535mm 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 34.925mm 83.82mm 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 12.7mm 97.79mm 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 23.495mm 85.09mm 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 12.87526mm 95.285052mm 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 6.985mm 92.075mm 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 12.7mm 92.075mm 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 10.795mm 85.725mm 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 33.954974mm 97.38487mm 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 19.05mm 92.075mm 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 19.05mm 97.79mm 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 6.985mm 97.79mm 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 19.05mm 85.09mm 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 38.1mm 89.535mm 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 6.985mm 85.09mm 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 15.24mm 85.725mm 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt
new file mode 100644
index 0000000..725a003
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 50.8mm 92.71mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R6 ACY1000 81.915mm 108.585mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R5 ACY1000 81.915mm 102.87mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R8 ACY1000 81.915mm 97.155mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R7 ACY1000 81.915mm 91.44mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C1 1206 24.13mm 95.885mm 0mm 0mm 0mm 0mm B 0.00 unknown
+C14 1206 31.115mm 91.44mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D6 1206 28.575mm 98.425mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C13 1206 41.04513mm 94.950026mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN3 CONNECTOR-4-1 56.515mm 91.44mm 0mm 0mm 0mm 0mm T 270.00 unknown
+C12 1206 36.530026mm 97.38487mm 0mm 0mm 0mm 0mm B 270.00 unknown
+U2 TO220 34.0995mm 106.045mm 0mm 0mm 0mm 0mm T 90.00 unknown
+D7 1206 45.085mm 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+D5 1206 28.575mm 95.885mm 0mm 0mm 0mm 0mm B 180.00 unknown
+R4 1206 12.805156mm 89.605104mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C15 1206 31.115mm 85.09mm 0mm 0mm 0mm 0mm B 90.00 unknown
+U1 TO220 10.3505mm 106.172mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R9 1206 47.625mm 85.09mm 0mm 0mm 0mm 0mm B 90.00 1k
+R10 1206 39.37mm 83.82mm 0mm 0mm 0mm 0mm B 0.00 1k
+U3 SO8 27.305mm 89.535mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R11 1206 34.925mm 83.82mm 0mm 0mm 0mm 0mm B 180.00 10k
+D2 CONNECTOR-2-1 12.7mm 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C2 1206 23.495mm 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R2 1206 12.87526mm 95.285052mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN1 CONNECTOR-2-1 6.985mm 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D4 CONNECTOR-2-1 12.7mm 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R1 1206 10.795mm 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
+C11 1206 33.954974mm 97.38487mm 0mm 0mm 0mm 0mm B 90.00 unknown
+CONN2 CONNECTOR-2-1 19.05mm 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+S2 CONNECTOR-2-1 19.05mm 97.79mm 0mm 0mm 0mm 0mm T 180.00 unknown
+S1 CONNECTOR-2-1 6.985mm 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D3 CONNECTOR-2-1 19.05mm 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+U4 SO16 38.1mm 89.535mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D1 CONNECTOR-2-1 6.985mm 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R3 1206 15.24mm 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error
new file mode 100644
index 0000000..cdaacb1
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error
@@ -0,0 +1,24 @@
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Warning: change_text_units: Text Mid Y has no numbers!
+Warning at column 4
+Warning: change_text_units: Text Ref X has no numbers!
+Warning at column 5
+Warning: change_text_units: Text Ref Y has no numbers!
+Warning at column 6
+Warning: change_text_units: Text Pad X has no numbers!
+Warning at column 7
+Warning: change_text_units: Text Pad Y has no numbers!
+Warning at column 8
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Warning: change_text_units: Text Mid Y has no numbers!
+Warning at column 4
+Warning: change_text_units: Text Ref X has no numbers!
+Warning at column 5
+Warning: change_text_units: Text Ref Y has no numbers!
+Warning at column 6
+Warning: change_text_units: Text Pad X has no numbers!
+Warning at column 7
+Warning: change_text_units: Text Pad Y has no numbers!
+Warning at column 8
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt
new file mode 100644
index 0000000..725a003
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 50.8mm 92.71mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R6 ACY1000 81.915mm 108.585mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R5 ACY1000 81.915mm 102.87mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R8 ACY1000 81.915mm 97.155mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R7 ACY1000 81.915mm 91.44mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C1 1206 24.13mm 95.885mm 0mm 0mm 0mm 0mm B 0.00 unknown
+C14 1206 31.115mm 91.44mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D6 1206 28.575mm 98.425mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C13 1206 41.04513mm 94.950026mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN3 CONNECTOR-4-1 56.515mm 91.44mm 0mm 0mm 0mm 0mm T 270.00 unknown
+C12 1206 36.530026mm 97.38487mm 0mm 0mm 0mm 0mm B 270.00 unknown
+U2 TO220 34.0995mm 106.045mm 0mm 0mm 0mm 0mm T 90.00 unknown
+D7 1206 45.085mm 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+D5 1206 28.575mm 95.885mm 0mm 0mm 0mm 0mm B 180.00 unknown
+R4 1206 12.805156mm 89.605104mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C15 1206 31.115mm 85.09mm 0mm 0mm 0mm 0mm B 90.00 unknown
+U1 TO220 10.3505mm 106.172mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R9 1206 47.625mm 85.09mm 0mm 0mm 0mm 0mm B 90.00 1k
+R10 1206 39.37mm 83.82mm 0mm 0mm 0mm 0mm B 0.00 1k
+U3 SO8 27.305mm 89.535mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R11 1206 34.925mm 83.82mm 0mm 0mm 0mm 0mm B 180.00 10k
+D2 CONNECTOR-2-1 12.7mm 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C2 1206 23.495mm 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R2 1206 12.87526mm 95.285052mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN1 CONNECTOR-2-1 6.985mm 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D4 CONNECTOR-2-1 12.7mm 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R1 1206 10.795mm 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
+C11 1206 33.954974mm 97.38487mm 0mm 0mm 0mm 0mm B 90.00 unknown
+CONN2 CONNECTOR-2-1 19.05mm 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+S2 CONNECTOR-2-1 19.05mm 97.79mm 0mm 0mm 0mm 0mm T 180.00 unknown
+S1 CONNECTOR-2-1 6.985mm 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D3 CONNECTOR-2-1 19.05mm 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+U4 SO16 38.1mm 89.535mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D1 CONNECTOR-2-1 6.985mm 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R3 1206 15.24mm 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt
new file mode 100644
index 0000000..4368356
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 50.8mm 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 81.915mm 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 81.915mm 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 81.915mm 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 81.915mm 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 24.13mm 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 31.115mm 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 28.575mm 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 41.04513mm 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 56.515mm 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 36.530026mm 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 34.0995mm 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 45.085mm 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 28.575mm 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 12.805156mm 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 31.115mm 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 10.3505mm 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 47.625mm 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 39.37mm 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 27.305mm 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 34.925mm 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 12.7mm 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 23.495mm 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 12.87526mm 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 6.985mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 12.7mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 10.795mm 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 33.954974mm 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 19.05mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 19.05mm 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 6.985mm 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 19.05mm 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 38.1mm 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 6.985mm 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 15.24mm 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt
new file mode 100644
index 0000000..54b8075
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 3225mil 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 3225mil 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 3225mil 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 3225mil 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 950mil 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 1225mil 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 1125mil 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 1615.95mil 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 1438.19mil 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 1342.50mil 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 1775mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 1125mil 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 504.14mil 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 1225mil 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 407.50mil 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 1875mil 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 1550mil 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 1075mil 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 1375mil 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 500mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 925mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 506.90mil 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 425mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 1336.81mil 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 1500mil 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 600mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error
new file mode 100644
index 0000000..a8c066f
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error
@@ -0,0 +1,144 @@
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
diff --git a/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy
new file mode 100644
index 0000000..3d383f4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy
@@ -0,0 +1,32 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
diff --git a/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy b/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy
new file mode 100644
index 0000000..3d383f4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy
@@ -0,0 +1,32 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
diff --git a/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy
new file mode 100644
index 0000000..3d383f4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy
@@ -0,0 +1,32 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy b/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy b/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy
new file mode 100644
index 0000000..3d383f4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy
@@ -0,0 +1,32 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy b/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy b/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy
new file mode 100644
index 0000000..a47d267
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90 ,top
+R6 ,"ACY1000" ,"unknown",3225.00,4275.00,180,top
+R5 ,"ACY1000" ,"unknown",3225.00,4050.00,180,top
+R8 ,"ACY1000" ,"unknown",3225.00,3825.00,0 ,top
+R7 ,"ACY1000" ,"unknown",3225.00,3600.00,0 ,top
+C1 ,"1206" ,"unknown",950.00 ,3775.00,0 ,bottom
+C14 ,"1206" ,"unknown",1225.00,3600.00,90 ,bottom
+D6 ,"1206" ,"unknown",1125.00,3875.00,180,bottom
+C13 ,"1206" ,"unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12 ,"1206" ,"unknown",1438.19,3834.05,270,bottom
+U2 ,"TO220" ,"unknown",1342.50,4175.00,90 ,top
+D7 ,"1206" ,"unknown",1775.00,3350.00,270,bottom
+D5 ,"1206" ,"unknown",1125.00,3775.00,180,bottom
+R4 ,"1206" ,"unknown",504.14 ,3527.76,180,bottom
+C15 ,"1206" ,"unknown",1225.00,3350.00,90 ,bottom
+U1 ,"TO220" ,"unknown",407.50 ,4180.00,90 ,top
+R9 ,"1206" ,"1k" ,1875.00,3350.00,90 ,bottom
+R10 ,"1206" ,"1k" ,1550.00,3300.00,0 ,bottom
+U3 ,"SO8" ,"unknown",1075.00,3525.00,270,bottom
+R11 ,"1206" ,"10k" ,1375.00,3300.00,180,bottom
+D2 ,"CONNECTOR-2-1","unknown",500.00 ,3850.00,0 ,top
+C2 ,"1206" ,"unknown",925.00 ,3350.00,270,bottom
+R2 ,"1206" ,"unknown",506.90 ,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00 ,3625.00,0 ,top
+D4 ,"CONNECTOR-2-1","unknown",500.00 ,3625.00,0 ,top
+R1 ,"1206" ,"unknown",425.00 ,3375.00,90 ,bottom
+C11 ,"1206" ,"unknown",1336.81,3834.05,90 ,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00 ,3625.00,0 ,top
+S2 ,"CONNECTOR-2-1","unknown",750.00 ,3850.00,180,top
+S1 ,"CONNECTOR-2-1","unknown",275.00 ,3850.00,0 ,top
+D3 ,"CONNECTOR-2-1","unknown",750.00 ,3350.00,0 ,top
+U4 ,"SO16" ,"unknown",1500.00,3525.00,90 ,bottom
+D1 ,"CONNECTOR-2-1","unknown",275.00 ,3350.00,0 ,top
+R3 ,"1206" ,"unknown",600.00 ,3375.00,90 ,bottom
diff --git a/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy b/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy
new file mode 100644
index 0000000..8d7d3c1
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,footprint,"unknown",2000.00,3650.00,90 ,top
+R6 ,footprint,"unknown",3225.00,4275.00,180,top
+R5 ,footprint,"unknown",3225.00,4050.00,180,top
+R8 ,footprint,"unknown",3225.00,3825.00,0 ,top
+R7 ,footprint,"unknown",3225.00,3600.00,0 ,top
+C1 ,footprint,"unknown",950.00 ,3775.00,0 ,bottom
+C14 ,footprint,"unknown",1225.00,3600.00,90 ,bottom
+D6 ,footprint,"unknown",1125.00,3875.00,180,bottom
+C13 ,footprint,"unknown",1615.95,3738.19,180,bottom
+CONN3,footprint,"unknown",2225.00,3600.00,270,top
+C12 ,footprint,"unknown",1438.19,3834.05,270,bottom
+U2 ,footprint,"unknown",1342.50,4175.00,90 ,top
+D7 ,footprint,"unknown",1775.00,3350.00,270,bottom
+D5 ,footprint,"unknown",1125.00,3775.00,180,bottom
+R4 ,footprint,"unknown",504.14 ,3527.76,180,bottom
+C15 ,footprint,"unknown",1225.00,3350.00,90 ,bottom
+U1 ,footprint,"unknown",407.50 ,4180.00,90 ,top
+R9 ,footprint,"1k" ,1875.00,3350.00,90 ,bottom
+R10 ,footprint,"1k" ,1550.00,3300.00,0 ,bottom
+U3 ,footprint,"unknown",1075.00,3525.00,270,bottom
+R11 ,footprint,"10k" ,1375.00,3300.00,180,bottom
+D2 ,footprint,"unknown",500.00 ,3850.00,0 ,top
+C2 ,footprint,"unknown",925.00 ,3350.00,270,bottom
+R2 ,footprint,"unknown",506.90 ,3751.38,180,bottom
+CONN1,footprint,"unknown",275.00 ,3625.00,0 ,top
+D4 ,footprint,"unknown",500.00 ,3625.00,0 ,top
+R1 ,footprint,"unknown",425.00 ,3375.00,90 ,bottom
+C11 ,footprint,"unknown",1336.81,3834.05,90 ,bottom
+CONN2,footprint,"unknown",750.00 ,3625.00,0 ,top
+S2 ,footprint,"unknown",750.00 ,3850.00,180,top
+S1 ,footprint,"unknown",275.00 ,3850.00,0 ,top
+D3 ,footprint,"unknown",750.00 ,3350.00,0 ,top
+U4 ,footprint,"unknown",1500.00,3525.00,90 ,bottom
+D1 ,footprint,"unknown",275.00 ,3350.00,0 ,top
+R3 ,footprint,"unknown",600.00 ,3375.00,90 ,bottom
diff --git a/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt
new file mode 100644
index 0000000..3f33258
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 footprint 2000mil 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 footprint 3225mil 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 footprint 3225mil 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 footprint 3225mil 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 footprint 3225mil 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 footprint 950mil 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 footprint 1225mil 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 footprint 1125mil 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 footprint 1615.95mil 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 footprint 2225mil 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 footprint 1438.19mil 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 footprint 1342.50mil 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 footprint 1775mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 footprint 1125mil 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 footprint 504.14mil 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 footprint 1225mil 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 footprint 407.50mil 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 footprint 1875mil 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 footprint 1550mil 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 footprint 1075mil 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 footprint 1375mil 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 footprint 500mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 footprint 925mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 footprint 506.90mil 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 footprint 275mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 footprint 500mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 footprint 425mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 footprint 1336.81mil 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 footprint 750mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 footprint 750mil 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 footprint 275mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 footprint 750mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 footprint 1500mil 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 footprint 275mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 footprint 600mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/footprint_report1-report1.txt b/utils/tests/gxyrs/outputs/footprint_report1-report1.txt
new file mode 100644
index 0000000..bc55f92
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/footprint_report1-report1.txt
@@ -0,0 +1,36 @@
+RefDesignator MountTYPE X Y Rot Side Mirror PartNumber "footprint" Description
+"CONN4" "THROUGH" 2000,00 3650,00 90 "TOP" "NO" "unknown" "footprint" "No_description"
+"R6" "THROUGH" 3225,00 4275,00 180 "TOP" "NO" "unknown" "footprint" "No_description"
+"R5" "THROUGH" 3225,00 4050,00 180 "TOP" "NO" "unknown" "footprint" "No_description"
+"R8" "THROUGH" 3225,00 3825,00 0 "TOP" "NO" "unknown" "footprint" "No_description"
+"R7" "THROUGH" 3225,00 3600,00 0 "TOP" "NO" "unknown" "footprint" "No_description"
+"C1" "SMD" 950,00 3775,00 0 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"C14" "SMD" 1225,00 3600,00 90 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"D6" "SMD" 1125,00 3875,00 180 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"C13" "SMD" 1615,95 3738,19 180 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"CONN3" "THROUGH" 2225,00 3600,00 270 "TOP" "NO" "unknown" "footprint" "No_description"
+"C12" "SMD" 1438,19 3834,05 270 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"U2" "SMD" 1342,50 4175,00 90 "TOP" "NO" "unknown" "footprint" "No_description"
+"D7" "SMD" 1775,00 3350,00 270 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"D5" "SMD" 1125,00 3775,00 180 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"R4" "SMD" 504,14 3527,76 180 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"C15" "SMD" 1225,00 3350,00 90 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"U1" "SMD" 407,50 4180,00 90 "TOP" "NO" "unknown" "footprint" "No_description"
+"R9" "SMD" 1875,00 3350,00 90 "BOTTOM" "NO" "1k" "footprint" "No_description"
+"R10" "SMD" 1550,00 3300,00 0 "BOTTOM" "NO" "1k" "footprint" "No_description"
+"U3" "SMD" 1075,00 3525,00 270 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"R11" "SMD" 1375,00 3300,00 180 "BOTTOM" "NO" "10k" "footprint" "No_description"
+"D2" "THROUGH" 500,00 3850,00 0 "TOP" "NO" "unknown" "footprint" "No_description"
+"C2" "SMD" 925,00 3350,00 270 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"R2" "SMD" 506,90 3751,38 180 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"CONN1" "THROUGH" 275,00 3625,00 0 "TOP" "NO" "unknown" "footprint" "No_description"
+"D4" "THROUGH" 500,00 3625,00 0 "TOP" "NO" "unknown" "footprint" "No_description"
+"R1" "SMD" 425,00 3375,00 90 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"C11" "SMD" 1336,81 3834,05 90 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"CONN2" "THROUGH" 750,00 3625,00 0 "TOP" "NO" "unknown" "footprint" "No_description"
+"S2" "THROUGH" 750,00 3850,00 180 "TOP" "NO" "unknown" "footprint" "No_description"
+"S1" "THROUGH" 275,00 3850,00 0 "TOP" "NO" "unknown" "footprint" "No_description"
+"D3" "THROUGH" 750,00 3350,00 0 "TOP" "NO" "unknown" "footprint" "No_description"
+"U4" "SMD" 1500,00 3525,00 90 "BOTTOM" "NO" "unknown" "footprint" "No_description"
+"D1" "THROUGH" 275,00 3350,00 0 "TOP" "NO" "unknown" "footprint" "No_description"
+"R3" "SMD" 600,00 3375,00 90 "BOTTOM" "NO" "unknown" "footprint" "No_description"
diff --git a/utils/tests/gxyrs/outputs/footprint_report1-report1.txt-error b/utils/tests/gxyrs/outputs/footprint_report1-report1.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..423755a
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..4bdea7d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..2478a46
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy
new file mode 100644
index 0000000..6ff6762
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+new_value,CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+new_value,R6,"ACY1000","unknown",3225.00,4275.00,180,top
+new_value,R5,"ACY1000","unknown",3225.00,4050.00,180,top
+new_value,R8,"ACY1000","unknown",3225.00,3825.00,0,top
+new_value,R7,"ACY1000","unknown",3225.00,3600.00,0,top
+new_value,C1,"1206","unknown",950.00,3775.00,0,bottom
+new_value,C14,"1206","unknown",1225.00,3600.00,90,bottom
+new_value,D6,"1206","unknown",1125.00,3875.00,180,bottom
+new_value,C13,"1206","unknown",1615.95,3738.19,180,bottom
+new_value,CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+new_value,C12,"1206","unknown",1438.19,3834.05,270,bottom
+new_value,U2,"TO220","unknown",1342.50,4175.00,90,top
+new_value,D7,"1206","unknown",1775.00,3350.00,270,bottom
+new_value,D5,"1206","unknown",1125.00,3775.00,180,bottom
+new_value,R4,"1206","unknown",504.14,3527.76,180,bottom
+new_value,C15,"1206","unknown",1225.00,3350.00,90,bottom
+new_value,U1,"TO220","unknown",407.50,4180.00,90,top
+new_value,R9,"1206","1k",1875.00,3350.00,90,bottom
+new_value,R10,"1206","1k",1550.00,3300.00,0,bottom
+new_value,U3,"SO8","unknown",1075.00,3525.00,270,bottom
+new_value,R11,"1206","10k",1375.00,3300.00,180,bottom
+new_value,D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+new_value,C2,"1206","unknown",925.00,3350.00,270,bottom
+new_value,R2,"1206","unknown",506.90,3751.38,180,bottom
+new_value,CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+new_value,D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+new_value,R1,"1206","unknown",425.00,3375.00,90,bottom
+new_value,C11,"1206","unknown",1336.81,3834.05,90,bottom
+new_value,CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+new_value,S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+new_value,S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+new_value,D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+new_value,U4,"SO16","unknown",1500.00,3525.00,90,bottom
+new_value,D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+new_value,R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..29c6356
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy
new file mode 100644
index 0000000..2e4092b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,new_value,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,new_value,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,new_value,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,new_value,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,new_value,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,new_value,"1206","unknown",950.00,3775.00,0,bottom
+C14,new_value,"1206","unknown",1225.00,3600.00,90,bottom
+D6,new_value,"1206","unknown",1125.00,3875.00,180,bottom
+C13,new_value,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,new_value,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,new_value,"1206","unknown",1438.19,3834.05,270,bottom
+U2,new_value,"TO220","unknown",1342.50,4175.00,90,top
+D7,new_value,"1206","unknown",1775.00,3350.00,270,bottom
+D5,new_value,"1206","unknown",1125.00,3775.00,180,bottom
+R4,new_value,"1206","unknown",504.14,3527.76,180,bottom
+C15,new_value,"1206","unknown",1225.00,3350.00,90,bottom
+U1,new_value,"TO220","unknown",407.50,4180.00,90,top
+R9,new_value,"1206","1k",1875.00,3350.00,90,bottom
+R10,new_value,"1206","1k",1550.00,3300.00,0,bottom
+U3,new_value,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,new_value,"1206","10k",1375.00,3300.00,180,bottom
+D2,new_value,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,new_value,"1206","unknown",925.00,3350.00,270,bottom
+R2,new_value,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,new_value,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,new_value,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,new_value,"1206","unknown",425.00,3375.00,90,bottom
+C11,new_value,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,new_value,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,new_value,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,new_value,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,new_value,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,new_value,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,new_value,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,new_value,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy b/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy b/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error
new file mode 100644
index 0000000..9b094f0
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
diff --git a/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..e11f3d4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
diff --git a/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error
new file mode 100644
index 0000000..69dfd65
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
diff --git a/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..33b666e
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy b/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy b/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..6b9b64d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..c03074e
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..7b1301c
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy
new file mode 100644
index 0000000..3327e3b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,7300.000000,90,top
+R6,"ACY1000","unknown",3225.00,8550.000000,180,top
+R5,"ACY1000","unknown",3225.00,8100.000000,180,top
+R8,"ACY1000","unknown",3225.00,7650.000000,0,top
+R7,"ACY1000","unknown",3225.00,7200.000000,0,top
+C1,"1206","unknown",950.00,7550.000000,0,bottom
+C14,"1206","unknown",1225.00,7200.000000,90,bottom
+D6,"1206","unknown",1125.00,7750.000000,180,bottom
+C13,"1206","unknown",1615.95,7476.380000,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,7200.000000,270,top
+C12,"1206","unknown",1438.19,7668.100000,270,bottom
+U2,"TO220","unknown",1342.50,8350.000000,90,top
+D7,"1206","unknown",1775.00,6700.000000,270,bottom
+D5,"1206","unknown",1125.00,7550.000000,180,bottom
+R4,"1206","unknown",504.14,7055.520000,180,bottom
+C15,"1206","unknown",1225.00,6700.000000,90,bottom
+U1,"TO220","unknown",407.50,8360.000000,90,top
+R9,"1206","1k",1875.00,6700.000000,90,bottom
+R10,"1206","1k",1550.00,6600.000000,0,bottom
+U3,"SO8","unknown",1075.00,7050.000000,270,bottom
+R11,"1206","10k",1375.00,6600.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,7700.000000,0,top
+C2,"1206","unknown",925.00,6700.000000,270,bottom
+R2,"1206","unknown",506.90,7502.760000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,7250.000000,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,7250.000000,0,top
+R1,"1206","unknown",425.00,6750.000000,90,bottom
+C11,"1206","unknown",1336.81,7668.100000,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,7250.000000,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,7700.000000,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,7700.000000,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,6700.000000,0,top
+U4,"SO16","unknown",1500.00,7050.000000,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,6700.000000,0,top
+R3,"1206","unknown",600.00,6750.000000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..00d3e27
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy
new file mode 100644
index 0000000..8fc8f45
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,-7300.000000,90,top
+R6,"ACY1000","unknown",3225.00,-8550.000000,180,top
+R5,"ACY1000","unknown",3225.00,-8100.000000,180,top
+R8,"ACY1000","unknown",3225.00,-7650.000000,0,top
+R7,"ACY1000","unknown",3225.00,-7200.000000,0,top
+C1,"1206","unknown",950.00,-7550.000000,0,bottom
+C14,"1206","unknown",1225.00,-7200.000000,90,bottom
+D6,"1206","unknown",1125.00,-7750.000000,180,bottom
+C13,"1206","unknown",1615.95,-7476.380000,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,-7200.000000,270,top
+C12,"1206","unknown",1438.19,-7668.100000,270,bottom
+U2,"TO220","unknown",1342.50,-8350.000000,90,top
+D7,"1206","unknown",1775.00,-6700.000000,270,bottom
+D5,"1206","unknown",1125.00,-7550.000000,180,bottom
+R4,"1206","unknown",504.14,-7055.520000,180,bottom
+C15,"1206","unknown",1225.00,-6700.000000,90,bottom
+U1,"TO220","unknown",407.50,-8360.000000,90,top
+R9,"1206","1k",1875.00,-6700.000000,90,bottom
+R10,"1206","1k",1550.00,-6600.000000,0,bottom
+U3,"SO8","unknown",1075.00,-7050.000000,270,bottom
+R11,"1206","10k",1375.00,-6600.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,-7700.000000,0,top
+C2,"1206","unknown",925.00,-6700.000000,270,bottom
+R2,"1206","unknown",506.90,-7502.760000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,-7250.000000,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,-7250.000000,0,top
+R1,"1206","unknown",425.00,-6750.000000,90,bottom
+C11,"1206","unknown",1336.81,-7668.100000,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,-7250.000000,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,-7700.000000,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,-7700.000000,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,-6700.000000,0,top
+U4,"SO16","unknown",1500.00,-7050.000000,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,-6700.000000,0,top
+R3,"1206","unknown",600.00,-6750.000000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy
new file mode 100644
index 0000000..848230d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,-9125.000000,90,top
+R6,"ACY1000","unknown",3225.00,-10687.500000,180,top
+R5,"ACY1000","unknown",3225.00,-10125.000000,180,top
+R8,"ACY1000","unknown",3225.00,-9562.500000,0,top
+R7,"ACY1000","unknown",3225.00,-9000.000000,0,top
+C1,"1206","unknown",950.00,-9437.500000,0,bottom
+C14,"1206","unknown",1225.00,-9000.000000,90,bottom
+D6,"1206","unknown",1125.00,-9687.500000,180,bottom
+C13,"1206","unknown",1615.95,-9345.475000,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,-9000.000000,270,top
+C12,"1206","unknown",1438.19,-9585.125000,270,bottom
+U2,"TO220","unknown",1342.50,-10437.500000,90,top
+D7,"1206","unknown",1775.00,-8375.000000,270,bottom
+D5,"1206","unknown",1125.00,-9437.500000,180,bottom
+R4,"1206","unknown",504.14,-8819.400000,180,bottom
+C15,"1206","unknown",1225.00,-8375.000000,90,bottom
+U1,"TO220","unknown",407.50,-10450.000000,90,top
+R9,"1206","1k",1875.00,-8375.000000,90,bottom
+R10,"1206","1k",1550.00,-8250.000000,0,bottom
+U3,"SO8","unknown",1075.00,-8812.500000,270,bottom
+R11,"1206","10k",1375.00,-8250.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,-9625.000000,0,top
+C2,"1206","unknown",925.00,-8375.000000,270,bottom
+R2,"1206","unknown",506.90,-9378.450000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,-9062.500000,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,-9062.500000,0,top
+R1,"1206","unknown",425.00,-8437.500000,90,bottom
+C11,"1206","unknown",1336.81,-9585.125000,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,-9062.500000,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,-9625.000000,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,-9625.000000,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,-8375.000000,0,top
+U4,"SO16","unknown",1500.00,-8812.500000,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,-8375.000000,0,top
+R3,"1206","unknown",600.00,-8437.500000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy
new file mode 100644
index 0000000..8f888df
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,9125.000000,90,top
+R6,"ACY1000","unknown",3225.00,10687.500000,180,top
+R5,"ACY1000","unknown",3225.00,10125.000000,180,top
+R8,"ACY1000","unknown",3225.00,9562.500000,0,top
+R7,"ACY1000","unknown",3225.00,9000.000000,0,top
+C1,"1206","unknown",950.00,9437.500000,0,bottom
+C14,"1206","unknown",1225.00,9000.000000,90,bottom
+D6,"1206","unknown",1125.00,9687.500000,180,bottom
+C13,"1206","unknown",1615.95,9345.475000,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,9000.000000,270,top
+C12,"1206","unknown",1438.19,9585.125000,270,bottom
+U2,"TO220","unknown",1342.50,10437.500000,90,top
+D7,"1206","unknown",1775.00,8375.000000,270,bottom
+D5,"1206","unknown",1125.00,9437.500000,180,bottom
+R4,"1206","unknown",504.14,8819.400000,180,bottom
+C15,"1206","unknown",1225.00,8375.000000,90,bottom
+U1,"TO220","unknown",407.50,10450.000000,90,top
+R9,"1206","1k",1875.00,8375.000000,90,bottom
+R10,"1206","1k",1550.00,8250.000000,0,bottom
+U3,"SO8","unknown",1075.00,8812.500000,270,bottom
+R11,"1206","10k",1375.00,8250.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,9625.000000,0,top
+C2,"1206","unknown",925.00,8375.000000,270,bottom
+R2,"1206","unknown",506.90,9378.450000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,9062.500000,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,9062.500000,0,top
+R1,"1206","unknown",425.00,8437.500000,90,bottom
+C11,"1206","unknown",1336.81,9585.125000,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,9062.500000,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,9625.000000,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,9625.000000,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,8375.000000,0,top
+U4,"SO16","unknown",1500.00,8812.500000,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,8375.000000,0,top
+R3,"1206","unknown",600.00,8437.500000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy
new file mode 100644
index 0000000..5effa79
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,-8550.000000,180,top
+R5,"ACY1000","unknown",3225.00,-8100.000000,180,top
+R8,"ACY1000","unknown",3225.00,-7650.000000,0,top
+R7,"ACY1000","unknown",3225.00,-7200.000000,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,-7055.520000,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,-6700.000000,90,bottom
+R10,"1206","1k",1550.00,-6600.000000,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,-6600.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,-7502.760000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,-6750.000000,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,-6750.000000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..559f994
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
diff --git a/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..ba3b700
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy
new file mode 100644
index 0000000..fe66459
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3325,4275.00,180,top
+R5,"ACY1000","unknown",3325,4050.00,180,top
+R8,"ACY1000","unknown",3325,3825.00,0,top
+R7,"ACY1000","unknown",3325,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",604.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1975,3350.00,90,bottom
+R10,"1206","1k",1650,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1475,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",606.9,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",525,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",700,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..2671611
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy
new file mode 100644
index 0000000..d729afb
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3125,4275.00,180,top
+R5,"ACY1000","unknown",3125,4050.00,180,top
+R8,"ACY1000","unknown",3125,3825.00,0,top
+R7,"ACY1000","unknown",3125,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",404.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1775,3350.00,90,bottom
+R10,"1206","1k",1450,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1275,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",406.9,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",325,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",500,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy
new file mode 100644
index 0000000..550c389
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3214.7,4275.00,180,top
+R5,"ACY1000","unknown",3214.7,4050.00,180,top
+R8,"ACY1000","unknown",3214.7,3825.00,0,top
+R7,"ACY1000","unknown",3214.7,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",493.84,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1864.7,3350.00,90,bottom
+R10,"1206","1k",1539.7,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1364.7,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",496.6,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",414.7,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",589.7,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error
new file mode 100644
index 0000000..19f4537
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error
@@ -0,0 +1,22 @@
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 504.14 has no units.
+Error: add_number_to_col: Offset has units, but number 1875.00 has no units.
+Error: add_number_to_col: Offset has units, but number 1550.00 has no units.
+Error: add_number_to_col: Offset has units, but number 1375.00 has no units.
+Error: add_number_to_col: Offset has units, but number 506.90 has no units.
+Error: add_number_to_col: Offset has units, but number 425.00 has no units.
+Error: add_number_to_col: Offset has units, but number 600.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 504.14 has no units.
+Error: add_number_to_col: Offset has units, but number 1875.00 has no units.
+Error: add_number_to_col: Offset has units, but number 1550.00 has no units.
+Error: add_number_to_col: Offset has units, but number 1375.00 has no units.
+Error: add_number_to_col: Offset has units, but number 506.90 has no units.
+Error: add_number_to_col: Offset has units, but number 425.00 has no units.
+Error: add_number_to_col: Offset has units, but number 600.00 has no units.
diff --git a/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy
new file mode 100644
index 0000000..d71e0e9
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3235.3,4275.00,180,top
+R5,"ACY1000","unknown",3235.3,4050.00,180,top
+R8,"ACY1000","unknown",3235.3,3825.00,0,top
+R7,"ACY1000","unknown",3235.3,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",514.44,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1885.3,3350.00,90,bottom
+R10,"1206","1k",1560.3,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1385.3,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",517.2,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",435.3,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",610.3,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..91cd836
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
diff --git a/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy b/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy
new file mode 100644
index 0000000..7926249
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4 "CONNECTOR-3-1" "unknown" 2000.00 3650.00 90 top
+R6 "ACY1000" "unknown" 3225.00 4275.00 180 top
+R5 "ACY1000" "unknown" 3225.00 4050.00 180 top
+R8 "ACY1000" "unknown" 3225.00 3825.00 0 top
+R7 "ACY1000" "unknown" 3225.00 3600.00 0 top
+C1 "1206" "unknown" 950.00 3775.00 0 bottom
+C14 "1206" "unknown" 1225.00 3600.00 90 bottom
+D6 "1206" "unknown" 1125.00 3875.00 180 bottom
+C13 "1206" "unknown" 1615.95 3738.19 180 bottom
+CONN3 "CONNECTOR-4-1" "unknown" 2225.00 3600.00 270 top
+C12 "1206" "unknown" 1438.19 3834.05 270 bottom
+U2 "TO220" "unknown" 1342.50 4175.00 90 top
+D7 "1206" "unknown" 1775.00 3350.00 270 bottom
+D5 "1206" "unknown" 1125.00 3775.00 180 bottom
+R4 "1206" "unknown" 504.14 3527.76 180 bottom
+C15 "1206" "unknown" 1225.00 3350.00 90 bottom
+U1 "TO220" "unknown" 407.50 4180.00 90 top
+R9 "1206" "1k" 1875.00 3350.00 90 bottom
+R10 "1206" "1k" 1550.00 3300.00 0 bottom
+U3 "SO8" "unknown" 1075.00 3525.00 270 bottom
+R11 "1206" "10k" 1375.00 3300.00 180 bottom
+D2 "CONNECTOR-2-1" "unknown" 500.00 3850.00 0 top
+C2 "1206" "unknown" 925.00 3350.00 270 bottom
+R2 "1206" "unknown" 506.90 3751.38 180 bottom
+CONN1 "CONNECTOR-2-1" "unknown" 275.00 3625.00 0 top
+D4 "CONNECTOR-2-1" "unknown" 500.00 3625.00 0 top
+R1 "1206" "unknown" 425.00 3375.00 90 bottom
+C11 "1206" "unknown" 1336.81 3834.05 90 bottom
+CONN2 "CONNECTOR-2-1" "unknown" 750.00 3625.00 0 top
+S2 "CONNECTOR-2-1" "unknown" 750.00 3850.00 180 top
+S1 "CONNECTOR-2-1" "unknown" 275.00 3850.00 0 top
+D3 "CONNECTOR-2-1" "unknown" 750.00 3350.00 0 top
+U4 "SO16" "unknown" 1500.00 3525.00 90 bottom
+D1 "CONNECTOR-2-1" "unknown" 275.00 3350.00 0 top
+R3 "1206" "unknown" 600.00 3375.00 90 bottom
diff --git a/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..b12314c
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..8804054
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..b12314c
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..8804054
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..b12314c
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..8804054
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..29fddf4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..29fddf4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..29fddf4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..8c0e150
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy
new file mode 100644
index 0000000..bf2c302
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy
@@ -0,0 +1,7883 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4-0-0 "CONNECTOR-3-1" "unknown" 2000.00 3650.00 90 top
+CONN4-0-1 "CONNECTOR-3-1" "unknown" 2000 5150 90 top
+CONN4-0-2 "CONNECTOR-3-1" "unknown" 2000 6650 90 top
+CONN4-0-3 "CONNECTOR-3-1" "unknown" 2000 8150 90 top
+CONN4-0-4 "CONNECTOR-3-1" "unknown" 2000 9650 90 top
+CONN4-0-5 "CONNECTOR-3-1" "unknown" 2000 11150 90 top
+CONN4-0-6 "CONNECTOR-3-1" "unknown" 2000 12650 90 top
+CONN4-0-7 "CONNECTOR-3-1" "unknown" 2000 14150 90 top
+CONN4-0-8 "CONNECTOR-3-1" "unknown" 2000 15650 90 top
+CONN4-0-9 "CONNECTOR-3-1" "unknown" 2000 17150 90 top
+CONN4-0-10 "CONNECTOR-3-1" "unknown" 2000 18650 90 top
+CONN4-0-11 "CONNECTOR-3-1" "unknown" 2000 20150 90 top
+CONN4-0-12 "CONNECTOR-3-1" "unknown" 2000 21650 90 top
+CONN4-0-13 "CONNECTOR-3-1" "unknown" 2000 23150 90 top
+CONN4-0-14 "CONNECTOR-3-1" "unknown" 2000 24650 90 top
+CONN4-1-0 "CONNECTOR-3-1" "unknown" 2500 3650 90 top
+CONN4-1-1 "CONNECTOR-3-1" "unknown" 2500 5150 90 top
+CONN4-1-2 "CONNECTOR-3-1" "unknown" 2500 6650 90 top
+CONN4-1-3 "CONNECTOR-3-1" "unknown" 2500 8150 90 top
+CONN4-1-4 "CONNECTOR-3-1" "unknown" 2500 9650 90 top
+CONN4-1-5 "CONNECTOR-3-1" "unknown" 2500 11150 90 top
+CONN4-1-6 "CONNECTOR-3-1" "unknown" 2500 12650 90 top
+CONN4-1-7 "CONNECTOR-3-1" "unknown" 2500 14150 90 top
+CONN4-1-8 "CONNECTOR-3-1" "unknown" 2500 15650 90 top
+CONN4-1-9 "CONNECTOR-3-1" "unknown" 2500 17150 90 top
+CONN4-1-10 "CONNECTOR-3-1" "unknown" 2500 18650 90 top
+CONN4-1-11 "CONNECTOR-3-1" "unknown" 2500 20150 90 top
+CONN4-1-12 "CONNECTOR-3-1" "unknown" 2500 21650 90 top
+CONN4-1-13 "CONNECTOR-3-1" "unknown" 2500 23150 90 top
+CONN4-1-14 "CONNECTOR-3-1" "unknown" 2500 24650 90 top
+CONN4-2-0 "CONNECTOR-3-1" "unknown" 3000 3650 90 top
+CONN4-2-1 "CONNECTOR-3-1" "unknown" 3000 5150 90 top
+CONN4-2-2 "CONNECTOR-3-1" "unknown" 3000 6650 90 top
+CONN4-2-3 "CONNECTOR-3-1" "unknown" 3000 8150 90 top
+CONN4-2-4 "CONNECTOR-3-1" "unknown" 3000 9650 90 top
+CONN4-2-5 "CONNECTOR-3-1" "unknown" 3000 11150 90 top
+CONN4-2-6 "CONNECTOR-3-1" "unknown" 3000 12650 90 top
+CONN4-2-7 "CONNECTOR-3-1" "unknown" 3000 14150 90 top
+CONN4-2-8 "CONNECTOR-3-1" "unknown" 3000 15650 90 top
+CONN4-2-9 "CONNECTOR-3-1" "unknown" 3000 17150 90 top
+CONN4-2-10 "CONNECTOR-3-1" "unknown" 3000 18650 90 top
+CONN4-2-11 "CONNECTOR-3-1" "unknown" 3000 20150 90 top
+CONN4-2-12 "CONNECTOR-3-1" "unknown" 3000 21650 90 top
+CONN4-2-13 "CONNECTOR-3-1" "unknown" 3000 23150 90 top
+CONN4-2-14 "CONNECTOR-3-1" "unknown" 3000 24650 90 top
+CONN4-3-0 "CONNECTOR-3-1" "unknown" 3500 3650 90 top
+CONN4-3-1 "CONNECTOR-3-1" "unknown" 3500 5150 90 top
+CONN4-3-2 "CONNECTOR-3-1" "unknown" 3500 6650 90 top
+CONN4-3-3 "CONNECTOR-3-1" "unknown" 3500 8150 90 top
+CONN4-3-4 "CONNECTOR-3-1" "unknown" 3500 9650 90 top
+CONN4-3-5 "CONNECTOR-3-1" "unknown" 3500 11150 90 top
+CONN4-3-6 "CONNECTOR-3-1" "unknown" 3500 12650 90 top
+CONN4-3-7 "CONNECTOR-3-1" "unknown" 3500 14150 90 top
+CONN4-3-8 "CONNECTOR-3-1" "unknown" 3500 15650 90 top
+CONN4-3-9 "CONNECTOR-3-1" "unknown" 3500 17150 90 top
+CONN4-3-10 "CONNECTOR-3-1" "unknown" 3500 18650 90 top
+CONN4-3-11 "CONNECTOR-3-1" "unknown" 3500 20150 90 top
+CONN4-3-12 "CONNECTOR-3-1" "unknown" 3500 21650 90 top
+CONN4-3-13 "CONNECTOR-3-1" "unknown" 3500 23150 90 top
+CONN4-3-14 "CONNECTOR-3-1" "unknown" 3500 24650 90 top
+CONN4-4-0 "CONNECTOR-3-1" "unknown" 4000 3650 90 top
+CONN4-4-1 "CONNECTOR-3-1" "unknown" 4000 5150 90 top
+CONN4-4-2 "CONNECTOR-3-1" "unknown" 4000 6650 90 top
+CONN4-4-3 "CONNECTOR-3-1" "unknown" 4000 8150 90 top
+CONN4-4-4 "CONNECTOR-3-1" "unknown" 4000 9650 90 top
+CONN4-4-5 "CONNECTOR-3-1" "unknown" 4000 11150 90 top
+CONN4-4-6 "CONNECTOR-3-1" "unknown" 4000 12650 90 top
+CONN4-4-7 "CONNECTOR-3-1" "unknown" 4000 14150 90 top
+CONN4-4-8 "CONNECTOR-3-1" "unknown" 4000 15650 90 top
+CONN4-4-9 "CONNECTOR-3-1" "unknown" 4000 17150 90 top
+CONN4-4-10 "CONNECTOR-3-1" "unknown" 4000 18650 90 top
+CONN4-4-11 "CONNECTOR-3-1" "unknown" 4000 20150 90 top
+CONN4-4-12 "CONNECTOR-3-1" "unknown" 4000 21650 90 top
+CONN4-4-13 "CONNECTOR-3-1" "unknown" 4000 23150 90 top
+CONN4-4-14 "CONNECTOR-3-1" "unknown" 4000 24650 90 top
+CONN4-5-0 "CONNECTOR-3-1" "unknown" 4500 3650 90 top
+CONN4-5-1 "CONNECTOR-3-1" "unknown" 4500 5150 90 top
+CONN4-5-2 "CONNECTOR-3-1" "unknown" 4500 6650 90 top
+CONN4-5-3 "CONNECTOR-3-1" "unknown" 4500 8150 90 top
+CONN4-5-4 "CONNECTOR-3-1" "unknown" 4500 9650 90 top
+CONN4-5-5 "CONNECTOR-3-1" "unknown" 4500 11150 90 top
+CONN4-5-6 "CONNECTOR-3-1" "unknown" 4500 12650 90 top
+CONN4-5-7 "CONNECTOR-3-1" "unknown" 4500 14150 90 top
+CONN4-5-8 "CONNECTOR-3-1" "unknown" 4500 15650 90 top
+CONN4-5-9 "CONNECTOR-3-1" "unknown" 4500 17150 90 top
+CONN4-5-10 "CONNECTOR-3-1" "unknown" 4500 18650 90 top
+CONN4-5-11 "CONNECTOR-3-1" "unknown" 4500 20150 90 top
+CONN4-5-12 "CONNECTOR-3-1" "unknown" 4500 21650 90 top
+CONN4-5-13 "CONNECTOR-3-1" "unknown" 4500 23150 90 top
+CONN4-5-14 "CONNECTOR-3-1" "unknown" 4500 24650 90 top
+CONN4-6-0 "CONNECTOR-3-1" "unknown" 5000 3650 90 top
+CONN4-6-1 "CONNECTOR-3-1" "unknown" 5000 5150 90 top
+CONN4-6-2 "CONNECTOR-3-1" "unknown" 5000 6650 90 top
+CONN4-6-3 "CONNECTOR-3-1" "unknown" 5000 8150 90 top
+CONN4-6-4 "CONNECTOR-3-1" "unknown" 5000 9650 90 top
+CONN4-6-5 "CONNECTOR-3-1" "unknown" 5000 11150 90 top
+CONN4-6-6 "CONNECTOR-3-1" "unknown" 5000 12650 90 top
+CONN4-6-7 "CONNECTOR-3-1" "unknown" 5000 14150 90 top
+CONN4-6-8 "CONNECTOR-3-1" "unknown" 5000 15650 90 top
+CONN4-6-9 "CONNECTOR-3-1" "unknown" 5000 17150 90 top
+CONN4-6-10 "CONNECTOR-3-1" "unknown" 5000 18650 90 top
+CONN4-6-11 "CONNECTOR-3-1" "unknown" 5000 20150 90 top
+CONN4-6-12 "CONNECTOR-3-1" "unknown" 5000 21650 90 top
+CONN4-6-13 "CONNECTOR-3-1" "unknown" 5000 23150 90 top
+CONN4-6-14 "CONNECTOR-3-1" "unknown" 5000 24650 90 top
+CONN4-7-0 "CONNECTOR-3-1" "unknown" 5500 3650 90 top
+CONN4-7-1 "CONNECTOR-3-1" "unknown" 5500 5150 90 top
+CONN4-7-2 "CONNECTOR-3-1" "unknown" 5500 6650 90 top
+CONN4-7-3 "CONNECTOR-3-1" "unknown" 5500 8150 90 top
+CONN4-7-4 "CONNECTOR-3-1" "unknown" 5500 9650 90 top
+CONN4-7-5 "CONNECTOR-3-1" "unknown" 5500 11150 90 top
+CONN4-7-6 "CONNECTOR-3-1" "unknown" 5500 12650 90 top
+CONN4-7-7 "CONNECTOR-3-1" "unknown" 5500 14150 90 top
+CONN4-7-8 "CONNECTOR-3-1" "unknown" 5500 15650 90 top
+CONN4-7-9 "CONNECTOR-3-1" "unknown" 5500 17150 90 top
+CONN4-7-10 "CONNECTOR-3-1" "unknown" 5500 18650 90 top
+CONN4-7-11 "CONNECTOR-3-1" "unknown" 5500 20150 90 top
+CONN4-7-12 "CONNECTOR-3-1" "unknown" 5500 21650 90 top
+CONN4-7-13 "CONNECTOR-3-1" "unknown" 5500 23150 90 top
+CONN4-7-14 "CONNECTOR-3-1" "unknown" 5500 24650 90 top
+CONN4-8-0 "CONNECTOR-3-1" "unknown" 6000 3650 90 top
+CONN4-8-1 "CONNECTOR-3-1" "unknown" 6000 5150 90 top
+CONN4-8-2 "CONNECTOR-3-1" "unknown" 6000 6650 90 top
+CONN4-8-3 "CONNECTOR-3-1" "unknown" 6000 8150 90 top
+CONN4-8-4 "CONNECTOR-3-1" "unknown" 6000 9650 90 top
+CONN4-8-5 "CONNECTOR-3-1" "unknown" 6000 11150 90 top
+CONN4-8-6 "CONNECTOR-3-1" "unknown" 6000 12650 90 top
+CONN4-8-7 "CONNECTOR-3-1" "unknown" 6000 14150 90 top
+CONN4-8-8 "CONNECTOR-3-1" "unknown" 6000 15650 90 top
+CONN4-8-9 "CONNECTOR-3-1" "unknown" 6000 17150 90 top
+CONN4-8-10 "CONNECTOR-3-1" "unknown" 6000 18650 90 top
+CONN4-8-11 "CONNECTOR-3-1" "unknown" 6000 20150 90 top
+CONN4-8-12 "CONNECTOR-3-1" "unknown" 6000 21650 90 top
+CONN4-8-13 "CONNECTOR-3-1" "unknown" 6000 23150 90 top
+CONN4-8-14 "CONNECTOR-3-1" "unknown" 6000 24650 90 top
+CONN4-9-0 "CONNECTOR-3-1" "unknown" 6500 3650 90 top
+CONN4-9-1 "CONNECTOR-3-1" "unknown" 6500 5150 90 top
+CONN4-9-2 "CONNECTOR-3-1" "unknown" 6500 6650 90 top
+CONN4-9-3 "CONNECTOR-3-1" "unknown" 6500 8150 90 top
+CONN4-9-4 "CONNECTOR-3-1" "unknown" 6500 9650 90 top
+CONN4-9-5 "CONNECTOR-3-1" "unknown" 6500 11150 90 top
+CONN4-9-6 "CONNECTOR-3-1" "unknown" 6500 12650 90 top
+CONN4-9-7 "CONNECTOR-3-1" "unknown" 6500 14150 90 top
+CONN4-9-8 "CONNECTOR-3-1" "unknown" 6500 15650 90 top
+CONN4-9-9 "CONNECTOR-3-1" "unknown" 6500 17150 90 top
+CONN4-9-10 "CONNECTOR-3-1" "unknown" 6500 18650 90 top
+CONN4-9-11 "CONNECTOR-3-1" "unknown" 6500 20150 90 top
+CONN4-9-12 "CONNECTOR-3-1" "unknown" 6500 21650 90 top
+CONN4-9-13 "CONNECTOR-3-1" "unknown" 6500 23150 90 top
+CONN4-9-14 "CONNECTOR-3-1" "unknown" 6500 24650 90 top
+CONN4-10-0 "CONNECTOR-3-1" "unknown" 7000 3650 90 top
+CONN4-10-1 "CONNECTOR-3-1" "unknown" 7000 5150 90 top
+CONN4-10-2 "CONNECTOR-3-1" "unknown" 7000 6650 90 top
+CONN4-10-3 "CONNECTOR-3-1" "unknown" 7000 8150 90 top
+CONN4-10-4 "CONNECTOR-3-1" "unknown" 7000 9650 90 top
+CONN4-10-5 "CONNECTOR-3-1" "unknown" 7000 11150 90 top
+CONN4-10-6 "CONNECTOR-3-1" "unknown" 7000 12650 90 top
+CONN4-10-7 "CONNECTOR-3-1" "unknown" 7000 14150 90 top
+CONN4-10-8 "CONNECTOR-3-1" "unknown" 7000 15650 90 top
+CONN4-10-9 "CONNECTOR-3-1" "unknown" 7000 17150 90 top
+CONN4-10-10 "CONNECTOR-3-1" "unknown" 7000 18650 90 top
+CONN4-10-11 "CONNECTOR-3-1" "unknown" 7000 20150 90 top
+CONN4-10-12 "CONNECTOR-3-1" "unknown" 7000 21650 90 top
+CONN4-10-13 "CONNECTOR-3-1" "unknown" 7000 23150 90 top
+CONN4-10-14 "CONNECTOR-3-1" "unknown" 7000 24650 90 top
+CONN4-11-0 "CONNECTOR-3-1" "unknown" 7500 3650 90 top
+CONN4-11-1 "CONNECTOR-3-1" "unknown" 7500 5150 90 top
+CONN4-11-2 "CONNECTOR-3-1" "unknown" 7500 6650 90 top
+CONN4-11-3 "CONNECTOR-3-1" "unknown" 7500 8150 90 top
+CONN4-11-4 "CONNECTOR-3-1" "unknown" 7500 9650 90 top
+CONN4-11-5 "CONNECTOR-3-1" "unknown" 7500 11150 90 top
+CONN4-11-6 "CONNECTOR-3-1" "unknown" 7500 12650 90 top
+CONN4-11-7 "CONNECTOR-3-1" "unknown" 7500 14150 90 top
+CONN4-11-8 "CONNECTOR-3-1" "unknown" 7500 15650 90 top
+CONN4-11-9 "CONNECTOR-3-1" "unknown" 7500 17150 90 top
+CONN4-11-10 "CONNECTOR-3-1" "unknown" 7500 18650 90 top
+CONN4-11-11 "CONNECTOR-3-1" "unknown" 7500 20150 90 top
+CONN4-11-12 "CONNECTOR-3-1" "unknown" 7500 21650 90 top
+CONN4-11-13 "CONNECTOR-3-1" "unknown" 7500 23150 90 top
+CONN4-11-14 "CONNECTOR-3-1" "unknown" 7500 24650 90 top
+CONN4-12-0 "CONNECTOR-3-1" "unknown" 8000 3650 90 top
+CONN4-12-1 "CONNECTOR-3-1" "unknown" 8000 5150 90 top
+CONN4-12-2 "CONNECTOR-3-1" "unknown" 8000 6650 90 top
+CONN4-12-3 "CONNECTOR-3-1" "unknown" 8000 8150 90 top
+CONN4-12-4 "CONNECTOR-3-1" "unknown" 8000 9650 90 top
+CONN4-12-5 "CONNECTOR-3-1" "unknown" 8000 11150 90 top
+CONN4-12-6 "CONNECTOR-3-1" "unknown" 8000 12650 90 top
+CONN4-12-7 "CONNECTOR-3-1" "unknown" 8000 14150 90 top
+CONN4-12-8 "CONNECTOR-3-1" "unknown" 8000 15650 90 top
+CONN4-12-9 "CONNECTOR-3-1" "unknown" 8000 17150 90 top
+CONN4-12-10 "CONNECTOR-3-1" "unknown" 8000 18650 90 top
+CONN4-12-11 "CONNECTOR-3-1" "unknown" 8000 20150 90 top
+CONN4-12-12 "CONNECTOR-3-1" "unknown" 8000 21650 90 top
+CONN4-12-13 "CONNECTOR-3-1" "unknown" 8000 23150 90 top
+CONN4-12-14 "CONNECTOR-3-1" "unknown" 8000 24650 90 top
+CONN4-13-0 "CONNECTOR-3-1" "unknown" 8500 3650 90 top
+CONN4-13-1 "CONNECTOR-3-1" "unknown" 8500 5150 90 top
+CONN4-13-2 "CONNECTOR-3-1" "unknown" 8500 6650 90 top
+CONN4-13-3 "CONNECTOR-3-1" "unknown" 8500 8150 90 top
+CONN4-13-4 "CONNECTOR-3-1" "unknown" 8500 9650 90 top
+CONN4-13-5 "CONNECTOR-3-1" "unknown" 8500 11150 90 top
+CONN4-13-6 "CONNECTOR-3-1" "unknown" 8500 12650 90 top
+CONN4-13-7 "CONNECTOR-3-1" "unknown" 8500 14150 90 top
+CONN4-13-8 "CONNECTOR-3-1" "unknown" 8500 15650 90 top
+CONN4-13-9 "CONNECTOR-3-1" "unknown" 8500 17150 90 top
+CONN4-13-10 "CONNECTOR-3-1" "unknown" 8500 18650 90 top
+CONN4-13-11 "CONNECTOR-3-1" "unknown" 8500 20150 90 top
+CONN4-13-12 "CONNECTOR-3-1" "unknown" 8500 21650 90 top
+CONN4-13-13 "CONNECTOR-3-1" "unknown" 8500 23150 90 top
+CONN4-13-14 "CONNECTOR-3-1" "unknown" 8500 24650 90 top
+CONN4-14-0 "CONNECTOR-3-1" "unknown" 9000 3650 90 top
+CONN4-14-1 "CONNECTOR-3-1" "unknown" 9000 5150 90 top
+CONN4-14-2 "CONNECTOR-3-1" "unknown" 9000 6650 90 top
+CONN4-14-3 "CONNECTOR-3-1" "unknown" 9000 8150 90 top
+CONN4-14-4 "CONNECTOR-3-1" "unknown" 9000 9650 90 top
+CONN4-14-5 "CONNECTOR-3-1" "unknown" 9000 11150 90 top
+CONN4-14-6 "CONNECTOR-3-1" "unknown" 9000 12650 90 top
+CONN4-14-7 "CONNECTOR-3-1" "unknown" 9000 14150 90 top
+CONN4-14-8 "CONNECTOR-3-1" "unknown" 9000 15650 90 top
+CONN4-14-9 "CONNECTOR-3-1" "unknown" 9000 17150 90 top
+CONN4-14-10 "CONNECTOR-3-1" "unknown" 9000 18650 90 top
+CONN4-14-11 "CONNECTOR-3-1" "unknown" 9000 20150 90 top
+CONN4-14-12 "CONNECTOR-3-1" "unknown" 9000 21650 90 top
+CONN4-14-13 "CONNECTOR-3-1" "unknown" 9000 23150 90 top
+CONN4-14-14 "CONNECTOR-3-1" "unknown" 9000 24650 90 top
+R6-0-0 "ACY1000" "unknown" 3225.00 4275.00 180 top
+R6-0-1 "ACY1000" "unknown" 3225 5775 180 top
+R6-0-2 "ACY1000" "unknown" 3225 7275 180 top
+R6-0-3 "ACY1000" "unknown" 3225 8775 180 top
+R6-0-4 "ACY1000" "unknown" 3225 10275 180 top
+R6-0-5 "ACY1000" "unknown" 3225 11775 180 top
+R6-0-6 "ACY1000" "unknown" 3225 13275 180 top
+R6-0-7 "ACY1000" "unknown" 3225 14775 180 top
+R6-0-8 "ACY1000" "unknown" 3225 16275 180 top
+R6-0-9 "ACY1000" "unknown" 3225 17775 180 top
+R6-0-10 "ACY1000" "unknown" 3225 19275 180 top
+R6-0-11 "ACY1000" "unknown" 3225 20775 180 top
+R6-0-12 "ACY1000" "unknown" 3225 22275 180 top
+R6-0-13 "ACY1000" "unknown" 3225 23775 180 top
+R6-0-14 "ACY1000" "unknown" 3225 25275 180 top
+R6-1-0 "ACY1000" "unknown" 3725 4275 180 top
+R6-1-1 "ACY1000" "unknown" 3725 5775 180 top
+R6-1-2 "ACY1000" "unknown" 3725 7275 180 top
+R6-1-3 "ACY1000" "unknown" 3725 8775 180 top
+R6-1-4 "ACY1000" "unknown" 3725 10275 180 top
+R6-1-5 "ACY1000" "unknown" 3725 11775 180 top
+R6-1-6 "ACY1000" "unknown" 3725 13275 180 top
+R6-1-7 "ACY1000" "unknown" 3725 14775 180 top
+R6-1-8 "ACY1000" "unknown" 3725 16275 180 top
+R6-1-9 "ACY1000" "unknown" 3725 17775 180 top
+R6-1-10 "ACY1000" "unknown" 3725 19275 180 top
+R6-1-11 "ACY1000" "unknown" 3725 20775 180 top
+R6-1-12 "ACY1000" "unknown" 3725 22275 180 top
+R6-1-13 "ACY1000" "unknown" 3725 23775 180 top
+R6-1-14 "ACY1000" "unknown" 3725 25275 180 top
+R6-2-0 "ACY1000" "unknown" 4225 4275 180 top
+R6-2-1 "ACY1000" "unknown" 4225 5775 180 top
+R6-2-2 "ACY1000" "unknown" 4225 7275 180 top
+R6-2-3 "ACY1000" "unknown" 4225 8775 180 top
+R6-2-4 "ACY1000" "unknown" 4225 10275 180 top
+R6-2-5 "ACY1000" "unknown" 4225 11775 180 top
+R6-2-6 "ACY1000" "unknown" 4225 13275 180 top
+R6-2-7 "ACY1000" "unknown" 4225 14775 180 top
+R6-2-8 "ACY1000" "unknown" 4225 16275 180 top
+R6-2-9 "ACY1000" "unknown" 4225 17775 180 top
+R6-2-10 "ACY1000" "unknown" 4225 19275 180 top
+R6-2-11 "ACY1000" "unknown" 4225 20775 180 top
+R6-2-12 "ACY1000" "unknown" 4225 22275 180 top
+R6-2-13 "ACY1000" "unknown" 4225 23775 180 top
+R6-2-14 "ACY1000" "unknown" 4225 25275 180 top
+R6-3-0 "ACY1000" "unknown" 4725 4275 180 top
+R6-3-1 "ACY1000" "unknown" 4725 5775 180 top
+R6-3-2 "ACY1000" "unknown" 4725 7275 180 top
+R6-3-3 "ACY1000" "unknown" 4725 8775 180 top
+R6-3-4 "ACY1000" "unknown" 4725 10275 180 top
+R6-3-5 "ACY1000" "unknown" 4725 11775 180 top
+R6-3-6 "ACY1000" "unknown" 4725 13275 180 top
+R6-3-7 "ACY1000" "unknown" 4725 14775 180 top
+R6-3-8 "ACY1000" "unknown" 4725 16275 180 top
+R6-3-9 "ACY1000" "unknown" 4725 17775 180 top
+R6-3-10 "ACY1000" "unknown" 4725 19275 180 top
+R6-3-11 "ACY1000" "unknown" 4725 20775 180 top
+R6-3-12 "ACY1000" "unknown" 4725 22275 180 top
+R6-3-13 "ACY1000" "unknown" 4725 23775 180 top
+R6-3-14 "ACY1000" "unknown" 4725 25275 180 top
+R6-4-0 "ACY1000" "unknown" 5225 4275 180 top
+R6-4-1 "ACY1000" "unknown" 5225 5775 180 top
+R6-4-2 "ACY1000" "unknown" 5225 7275 180 top
+R6-4-3 "ACY1000" "unknown" 5225 8775 180 top
+R6-4-4 "ACY1000" "unknown" 5225 10275 180 top
+R6-4-5 "ACY1000" "unknown" 5225 11775 180 top
+R6-4-6 "ACY1000" "unknown" 5225 13275 180 top
+R6-4-7 "ACY1000" "unknown" 5225 14775 180 top
+R6-4-8 "ACY1000" "unknown" 5225 16275 180 top
+R6-4-9 "ACY1000" "unknown" 5225 17775 180 top
+R6-4-10 "ACY1000" "unknown" 5225 19275 180 top
+R6-4-11 "ACY1000" "unknown" 5225 20775 180 top
+R6-4-12 "ACY1000" "unknown" 5225 22275 180 top
+R6-4-13 "ACY1000" "unknown" 5225 23775 180 top
+R6-4-14 "ACY1000" "unknown" 5225 25275 180 top
+R6-5-0 "ACY1000" "unknown" 5725 4275 180 top
+R6-5-1 "ACY1000" "unknown" 5725 5775 180 top
+R6-5-2 "ACY1000" "unknown" 5725 7275 180 top
+R6-5-3 "ACY1000" "unknown" 5725 8775 180 top
+R6-5-4 "ACY1000" "unknown" 5725 10275 180 top
+R6-5-5 "ACY1000" "unknown" 5725 11775 180 top
+R6-5-6 "ACY1000" "unknown" 5725 13275 180 top
+R6-5-7 "ACY1000" "unknown" 5725 14775 180 top
+R6-5-8 "ACY1000" "unknown" 5725 16275 180 top
+R6-5-9 "ACY1000" "unknown" 5725 17775 180 top
+R6-5-10 "ACY1000" "unknown" 5725 19275 180 top
+R6-5-11 "ACY1000" "unknown" 5725 20775 180 top
+R6-5-12 "ACY1000" "unknown" 5725 22275 180 top
+R6-5-13 "ACY1000" "unknown" 5725 23775 180 top
+R6-5-14 "ACY1000" "unknown" 5725 25275 180 top
+R6-6-0 "ACY1000" "unknown" 6225 4275 180 top
+R6-6-1 "ACY1000" "unknown" 6225 5775 180 top
+R6-6-2 "ACY1000" "unknown" 6225 7275 180 top
+R6-6-3 "ACY1000" "unknown" 6225 8775 180 top
+R6-6-4 "ACY1000" "unknown" 6225 10275 180 top
+R6-6-5 "ACY1000" "unknown" 6225 11775 180 top
+R6-6-6 "ACY1000" "unknown" 6225 13275 180 top
+R6-6-7 "ACY1000" "unknown" 6225 14775 180 top
+R6-6-8 "ACY1000" "unknown" 6225 16275 180 top
+R6-6-9 "ACY1000" "unknown" 6225 17775 180 top
+R6-6-10 "ACY1000" "unknown" 6225 19275 180 top
+R6-6-11 "ACY1000" "unknown" 6225 20775 180 top
+R6-6-12 "ACY1000" "unknown" 6225 22275 180 top
+R6-6-13 "ACY1000" "unknown" 6225 23775 180 top
+R6-6-14 "ACY1000" "unknown" 6225 25275 180 top
+R6-7-0 "ACY1000" "unknown" 6725 4275 180 top
+R6-7-1 "ACY1000" "unknown" 6725 5775 180 top
+R6-7-2 "ACY1000" "unknown" 6725 7275 180 top
+R6-7-3 "ACY1000" "unknown" 6725 8775 180 top
+R6-7-4 "ACY1000" "unknown" 6725 10275 180 top
+R6-7-5 "ACY1000" "unknown" 6725 11775 180 top
+R6-7-6 "ACY1000" "unknown" 6725 13275 180 top
+R6-7-7 "ACY1000" "unknown" 6725 14775 180 top
+R6-7-8 "ACY1000" "unknown" 6725 16275 180 top
+R6-7-9 "ACY1000" "unknown" 6725 17775 180 top
+R6-7-10 "ACY1000" "unknown" 6725 19275 180 top
+R6-7-11 "ACY1000" "unknown" 6725 20775 180 top
+R6-7-12 "ACY1000" "unknown" 6725 22275 180 top
+R6-7-13 "ACY1000" "unknown" 6725 23775 180 top
+R6-7-14 "ACY1000" "unknown" 6725 25275 180 top
+R6-8-0 "ACY1000" "unknown" 7225 4275 180 top
+R6-8-1 "ACY1000" "unknown" 7225 5775 180 top
+R6-8-2 "ACY1000" "unknown" 7225 7275 180 top
+R6-8-3 "ACY1000" "unknown" 7225 8775 180 top
+R6-8-4 "ACY1000" "unknown" 7225 10275 180 top
+R6-8-5 "ACY1000" "unknown" 7225 11775 180 top
+R6-8-6 "ACY1000" "unknown" 7225 13275 180 top
+R6-8-7 "ACY1000" "unknown" 7225 14775 180 top
+R6-8-8 "ACY1000" "unknown" 7225 16275 180 top
+R6-8-9 "ACY1000" "unknown" 7225 17775 180 top
+R6-8-10 "ACY1000" "unknown" 7225 19275 180 top
+R6-8-11 "ACY1000" "unknown" 7225 20775 180 top
+R6-8-12 "ACY1000" "unknown" 7225 22275 180 top
+R6-8-13 "ACY1000" "unknown" 7225 23775 180 top
+R6-8-14 "ACY1000" "unknown" 7225 25275 180 top
+R6-9-0 "ACY1000" "unknown" 7725 4275 180 top
+R6-9-1 "ACY1000" "unknown" 7725 5775 180 top
+R6-9-2 "ACY1000" "unknown" 7725 7275 180 top
+R6-9-3 "ACY1000" "unknown" 7725 8775 180 top
+R6-9-4 "ACY1000" "unknown" 7725 10275 180 top
+R6-9-5 "ACY1000" "unknown" 7725 11775 180 top
+R6-9-6 "ACY1000" "unknown" 7725 13275 180 top
+R6-9-7 "ACY1000" "unknown" 7725 14775 180 top
+R6-9-8 "ACY1000" "unknown" 7725 16275 180 top
+R6-9-9 "ACY1000" "unknown" 7725 17775 180 top
+R6-9-10 "ACY1000" "unknown" 7725 19275 180 top
+R6-9-11 "ACY1000" "unknown" 7725 20775 180 top
+R6-9-12 "ACY1000" "unknown" 7725 22275 180 top
+R6-9-13 "ACY1000" "unknown" 7725 23775 180 top
+R6-9-14 "ACY1000" "unknown" 7725 25275 180 top
+R6-10-0 "ACY1000" "unknown" 8225 4275 180 top
+R6-10-1 "ACY1000" "unknown" 8225 5775 180 top
+R6-10-2 "ACY1000" "unknown" 8225 7275 180 top
+R6-10-3 "ACY1000" "unknown" 8225 8775 180 top
+R6-10-4 "ACY1000" "unknown" 8225 10275 180 top
+R6-10-5 "ACY1000" "unknown" 8225 11775 180 top
+R6-10-6 "ACY1000" "unknown" 8225 13275 180 top
+R6-10-7 "ACY1000" "unknown" 8225 14775 180 top
+R6-10-8 "ACY1000" "unknown" 8225 16275 180 top
+R6-10-9 "ACY1000" "unknown" 8225 17775 180 top
+R6-10-10 "ACY1000" "unknown" 8225 19275 180 top
+R6-10-11 "ACY1000" "unknown" 8225 20775 180 top
+R6-10-12 "ACY1000" "unknown" 8225 22275 180 top
+R6-10-13 "ACY1000" "unknown" 8225 23775 180 top
+R6-10-14 "ACY1000" "unknown" 8225 25275 180 top
+R6-11-0 "ACY1000" "unknown" 8725 4275 180 top
+R6-11-1 "ACY1000" "unknown" 8725 5775 180 top
+R6-11-2 "ACY1000" "unknown" 8725 7275 180 top
+R6-11-3 "ACY1000" "unknown" 8725 8775 180 top
+R6-11-4 "ACY1000" "unknown" 8725 10275 180 top
+R6-11-5 "ACY1000" "unknown" 8725 11775 180 top
+R6-11-6 "ACY1000" "unknown" 8725 13275 180 top
+R6-11-7 "ACY1000" "unknown" 8725 14775 180 top
+R6-11-8 "ACY1000" "unknown" 8725 16275 180 top
+R6-11-9 "ACY1000" "unknown" 8725 17775 180 top
+R6-11-10 "ACY1000" "unknown" 8725 19275 180 top
+R6-11-11 "ACY1000" "unknown" 8725 20775 180 top
+R6-11-12 "ACY1000" "unknown" 8725 22275 180 top
+R6-11-13 "ACY1000" "unknown" 8725 23775 180 top
+R6-11-14 "ACY1000" "unknown" 8725 25275 180 top
+R6-12-0 "ACY1000" "unknown" 9225 4275 180 top
+R6-12-1 "ACY1000" "unknown" 9225 5775 180 top
+R6-12-2 "ACY1000" "unknown" 9225 7275 180 top
+R6-12-3 "ACY1000" "unknown" 9225 8775 180 top
+R6-12-4 "ACY1000" "unknown" 9225 10275 180 top
+R6-12-5 "ACY1000" "unknown" 9225 11775 180 top
+R6-12-6 "ACY1000" "unknown" 9225 13275 180 top
+R6-12-7 "ACY1000" "unknown" 9225 14775 180 top
+R6-12-8 "ACY1000" "unknown" 9225 16275 180 top
+R6-12-9 "ACY1000" "unknown" 9225 17775 180 top
+R6-12-10 "ACY1000" "unknown" 9225 19275 180 top
+R6-12-11 "ACY1000" "unknown" 9225 20775 180 top
+R6-12-12 "ACY1000" "unknown" 9225 22275 180 top
+R6-12-13 "ACY1000" "unknown" 9225 23775 180 top
+R6-12-14 "ACY1000" "unknown" 9225 25275 180 top
+R6-13-0 "ACY1000" "unknown" 9725 4275 180 top
+R6-13-1 "ACY1000" "unknown" 9725 5775 180 top
+R6-13-2 "ACY1000" "unknown" 9725 7275 180 top
+R6-13-3 "ACY1000" "unknown" 9725 8775 180 top
+R6-13-4 "ACY1000" "unknown" 9725 10275 180 top
+R6-13-5 "ACY1000" "unknown" 9725 11775 180 top
+R6-13-6 "ACY1000" "unknown" 9725 13275 180 top
+R6-13-7 "ACY1000" "unknown" 9725 14775 180 top
+R6-13-8 "ACY1000" "unknown" 9725 16275 180 top
+R6-13-9 "ACY1000" "unknown" 9725 17775 180 top
+R6-13-10 "ACY1000" "unknown" 9725 19275 180 top
+R6-13-11 "ACY1000" "unknown" 9725 20775 180 top
+R6-13-12 "ACY1000" "unknown" 9725 22275 180 top
+R6-13-13 "ACY1000" "unknown" 9725 23775 180 top
+R6-13-14 "ACY1000" "unknown" 9725 25275 180 top
+R6-14-0 "ACY1000" "unknown" 10225 4275 180 top
+R6-14-1 "ACY1000" "unknown" 10225 5775 180 top
+R6-14-2 "ACY1000" "unknown" 10225 7275 180 top
+R6-14-3 "ACY1000" "unknown" 10225 8775 180 top
+R6-14-4 "ACY1000" "unknown" 10225 10275 180 top
+R6-14-5 "ACY1000" "unknown" 10225 11775 180 top
+R6-14-6 "ACY1000" "unknown" 10225 13275 180 top
+R6-14-7 "ACY1000" "unknown" 10225 14775 180 top
+R6-14-8 "ACY1000" "unknown" 10225 16275 180 top
+R6-14-9 "ACY1000" "unknown" 10225 17775 180 top
+R6-14-10 "ACY1000" "unknown" 10225 19275 180 top
+R6-14-11 "ACY1000" "unknown" 10225 20775 180 top
+R6-14-12 "ACY1000" "unknown" 10225 22275 180 top
+R6-14-13 "ACY1000" "unknown" 10225 23775 180 top
+R6-14-14 "ACY1000" "unknown" 10225 25275 180 top
+R5-0-0 "ACY1000" "unknown" 3225.00 4050.00 180 top
+R5-0-1 "ACY1000" "unknown" 3225 5550 180 top
+R5-0-2 "ACY1000" "unknown" 3225 7050 180 top
+R5-0-3 "ACY1000" "unknown" 3225 8550 180 top
+R5-0-4 "ACY1000" "unknown" 3225 10050 180 top
+R5-0-5 "ACY1000" "unknown" 3225 11550 180 top
+R5-0-6 "ACY1000" "unknown" 3225 13050 180 top
+R5-0-7 "ACY1000" "unknown" 3225 14550 180 top
+R5-0-8 "ACY1000" "unknown" 3225 16050 180 top
+R5-0-9 "ACY1000" "unknown" 3225 17550 180 top
+R5-0-10 "ACY1000" "unknown" 3225 19050 180 top
+R5-0-11 "ACY1000" "unknown" 3225 20550 180 top
+R5-0-12 "ACY1000" "unknown" 3225 22050 180 top
+R5-0-13 "ACY1000" "unknown" 3225 23550 180 top
+R5-0-14 "ACY1000" "unknown" 3225 25050 180 top
+R5-1-0 "ACY1000" "unknown" 3725 4050 180 top
+R5-1-1 "ACY1000" "unknown" 3725 5550 180 top
+R5-1-2 "ACY1000" "unknown" 3725 7050 180 top
+R5-1-3 "ACY1000" "unknown" 3725 8550 180 top
+R5-1-4 "ACY1000" "unknown" 3725 10050 180 top
+R5-1-5 "ACY1000" "unknown" 3725 11550 180 top
+R5-1-6 "ACY1000" "unknown" 3725 13050 180 top
+R5-1-7 "ACY1000" "unknown" 3725 14550 180 top
+R5-1-8 "ACY1000" "unknown" 3725 16050 180 top
+R5-1-9 "ACY1000" "unknown" 3725 17550 180 top
+R5-1-10 "ACY1000" "unknown" 3725 19050 180 top
+R5-1-11 "ACY1000" "unknown" 3725 20550 180 top
+R5-1-12 "ACY1000" "unknown" 3725 22050 180 top
+R5-1-13 "ACY1000" "unknown" 3725 23550 180 top
+R5-1-14 "ACY1000" "unknown" 3725 25050 180 top
+R5-2-0 "ACY1000" "unknown" 4225 4050 180 top
+R5-2-1 "ACY1000" "unknown" 4225 5550 180 top
+R5-2-2 "ACY1000" "unknown" 4225 7050 180 top
+R5-2-3 "ACY1000" "unknown" 4225 8550 180 top
+R5-2-4 "ACY1000" "unknown" 4225 10050 180 top
+R5-2-5 "ACY1000" "unknown" 4225 11550 180 top
+R5-2-6 "ACY1000" "unknown" 4225 13050 180 top
+R5-2-7 "ACY1000" "unknown" 4225 14550 180 top
+R5-2-8 "ACY1000" "unknown" 4225 16050 180 top
+R5-2-9 "ACY1000" "unknown" 4225 17550 180 top
+R5-2-10 "ACY1000" "unknown" 4225 19050 180 top
+R5-2-11 "ACY1000" "unknown" 4225 20550 180 top
+R5-2-12 "ACY1000" "unknown" 4225 22050 180 top
+R5-2-13 "ACY1000" "unknown" 4225 23550 180 top
+R5-2-14 "ACY1000" "unknown" 4225 25050 180 top
+R5-3-0 "ACY1000" "unknown" 4725 4050 180 top
+R5-3-1 "ACY1000" "unknown" 4725 5550 180 top
+R5-3-2 "ACY1000" "unknown" 4725 7050 180 top
+R5-3-3 "ACY1000" "unknown" 4725 8550 180 top
+R5-3-4 "ACY1000" "unknown" 4725 10050 180 top
+R5-3-5 "ACY1000" "unknown" 4725 11550 180 top
+R5-3-6 "ACY1000" "unknown" 4725 13050 180 top
+R5-3-7 "ACY1000" "unknown" 4725 14550 180 top
+R5-3-8 "ACY1000" "unknown" 4725 16050 180 top
+R5-3-9 "ACY1000" "unknown" 4725 17550 180 top
+R5-3-10 "ACY1000" "unknown" 4725 19050 180 top
+R5-3-11 "ACY1000" "unknown" 4725 20550 180 top
+R5-3-12 "ACY1000" "unknown" 4725 22050 180 top
+R5-3-13 "ACY1000" "unknown" 4725 23550 180 top
+R5-3-14 "ACY1000" "unknown" 4725 25050 180 top
+R5-4-0 "ACY1000" "unknown" 5225 4050 180 top
+R5-4-1 "ACY1000" "unknown" 5225 5550 180 top
+R5-4-2 "ACY1000" "unknown" 5225 7050 180 top
+R5-4-3 "ACY1000" "unknown" 5225 8550 180 top
+R5-4-4 "ACY1000" "unknown" 5225 10050 180 top
+R5-4-5 "ACY1000" "unknown" 5225 11550 180 top
+R5-4-6 "ACY1000" "unknown" 5225 13050 180 top
+R5-4-7 "ACY1000" "unknown" 5225 14550 180 top
+R5-4-8 "ACY1000" "unknown" 5225 16050 180 top
+R5-4-9 "ACY1000" "unknown" 5225 17550 180 top
+R5-4-10 "ACY1000" "unknown" 5225 19050 180 top
+R5-4-11 "ACY1000" "unknown" 5225 20550 180 top
+R5-4-12 "ACY1000" "unknown" 5225 22050 180 top
+R5-4-13 "ACY1000" "unknown" 5225 23550 180 top
+R5-4-14 "ACY1000" "unknown" 5225 25050 180 top
+R5-5-0 "ACY1000" "unknown" 5725 4050 180 top
+R5-5-1 "ACY1000" "unknown" 5725 5550 180 top
+R5-5-2 "ACY1000" "unknown" 5725 7050 180 top
+R5-5-3 "ACY1000" "unknown" 5725 8550 180 top
+R5-5-4 "ACY1000" "unknown" 5725 10050 180 top
+R5-5-5 "ACY1000" "unknown" 5725 11550 180 top
+R5-5-6 "ACY1000" "unknown" 5725 13050 180 top
+R5-5-7 "ACY1000" "unknown" 5725 14550 180 top
+R5-5-8 "ACY1000" "unknown" 5725 16050 180 top
+R5-5-9 "ACY1000" "unknown" 5725 17550 180 top
+R5-5-10 "ACY1000" "unknown" 5725 19050 180 top
+R5-5-11 "ACY1000" "unknown" 5725 20550 180 top
+R5-5-12 "ACY1000" "unknown" 5725 22050 180 top
+R5-5-13 "ACY1000" "unknown" 5725 23550 180 top
+R5-5-14 "ACY1000" "unknown" 5725 25050 180 top
+R5-6-0 "ACY1000" "unknown" 6225 4050 180 top
+R5-6-1 "ACY1000" "unknown" 6225 5550 180 top
+R5-6-2 "ACY1000" "unknown" 6225 7050 180 top
+R5-6-3 "ACY1000" "unknown" 6225 8550 180 top
+R5-6-4 "ACY1000" "unknown" 6225 10050 180 top
+R5-6-5 "ACY1000" "unknown" 6225 11550 180 top
+R5-6-6 "ACY1000" "unknown" 6225 13050 180 top
+R5-6-7 "ACY1000" "unknown" 6225 14550 180 top
+R5-6-8 "ACY1000" "unknown" 6225 16050 180 top
+R5-6-9 "ACY1000" "unknown" 6225 17550 180 top
+R5-6-10 "ACY1000" "unknown" 6225 19050 180 top
+R5-6-11 "ACY1000" "unknown" 6225 20550 180 top
+R5-6-12 "ACY1000" "unknown" 6225 22050 180 top
+R5-6-13 "ACY1000" "unknown" 6225 23550 180 top
+R5-6-14 "ACY1000" "unknown" 6225 25050 180 top
+R5-7-0 "ACY1000" "unknown" 6725 4050 180 top
+R5-7-1 "ACY1000" "unknown" 6725 5550 180 top
+R5-7-2 "ACY1000" "unknown" 6725 7050 180 top
+R5-7-3 "ACY1000" "unknown" 6725 8550 180 top
+R5-7-4 "ACY1000" "unknown" 6725 10050 180 top
+R5-7-5 "ACY1000" "unknown" 6725 11550 180 top
+R5-7-6 "ACY1000" "unknown" 6725 13050 180 top
+R5-7-7 "ACY1000" "unknown" 6725 14550 180 top
+R5-7-8 "ACY1000" "unknown" 6725 16050 180 top
+R5-7-9 "ACY1000" "unknown" 6725 17550 180 top
+R5-7-10 "ACY1000" "unknown" 6725 19050 180 top
+R5-7-11 "ACY1000" "unknown" 6725 20550 180 top
+R5-7-12 "ACY1000" "unknown" 6725 22050 180 top
+R5-7-13 "ACY1000" "unknown" 6725 23550 180 top
+R5-7-14 "ACY1000" "unknown" 6725 25050 180 top
+R5-8-0 "ACY1000" "unknown" 7225 4050 180 top
+R5-8-1 "ACY1000" "unknown" 7225 5550 180 top
+R5-8-2 "ACY1000" "unknown" 7225 7050 180 top
+R5-8-3 "ACY1000" "unknown" 7225 8550 180 top
+R5-8-4 "ACY1000" "unknown" 7225 10050 180 top
+R5-8-5 "ACY1000" "unknown" 7225 11550 180 top
+R5-8-6 "ACY1000" "unknown" 7225 13050 180 top
+R5-8-7 "ACY1000" "unknown" 7225 14550 180 top
+R5-8-8 "ACY1000" "unknown" 7225 16050 180 top
+R5-8-9 "ACY1000" "unknown" 7225 17550 180 top
+R5-8-10 "ACY1000" "unknown" 7225 19050 180 top
+R5-8-11 "ACY1000" "unknown" 7225 20550 180 top
+R5-8-12 "ACY1000" "unknown" 7225 22050 180 top
+R5-8-13 "ACY1000" "unknown" 7225 23550 180 top
+R5-8-14 "ACY1000" "unknown" 7225 25050 180 top
+R5-9-0 "ACY1000" "unknown" 7725 4050 180 top
+R5-9-1 "ACY1000" "unknown" 7725 5550 180 top
+R5-9-2 "ACY1000" "unknown" 7725 7050 180 top
+R5-9-3 "ACY1000" "unknown" 7725 8550 180 top
+R5-9-4 "ACY1000" "unknown" 7725 10050 180 top
+R5-9-5 "ACY1000" "unknown" 7725 11550 180 top
+R5-9-6 "ACY1000" "unknown" 7725 13050 180 top
+R5-9-7 "ACY1000" "unknown" 7725 14550 180 top
+R5-9-8 "ACY1000" "unknown" 7725 16050 180 top
+R5-9-9 "ACY1000" "unknown" 7725 17550 180 top
+R5-9-10 "ACY1000" "unknown" 7725 19050 180 top
+R5-9-11 "ACY1000" "unknown" 7725 20550 180 top
+R5-9-12 "ACY1000" "unknown" 7725 22050 180 top
+R5-9-13 "ACY1000" "unknown" 7725 23550 180 top
+R5-9-14 "ACY1000" "unknown" 7725 25050 180 top
+R5-10-0 "ACY1000" "unknown" 8225 4050 180 top
+R5-10-1 "ACY1000" "unknown" 8225 5550 180 top
+R5-10-2 "ACY1000" "unknown" 8225 7050 180 top
+R5-10-3 "ACY1000" "unknown" 8225 8550 180 top
+R5-10-4 "ACY1000" "unknown" 8225 10050 180 top
+R5-10-5 "ACY1000" "unknown" 8225 11550 180 top
+R5-10-6 "ACY1000" "unknown" 8225 13050 180 top
+R5-10-7 "ACY1000" "unknown" 8225 14550 180 top
+R5-10-8 "ACY1000" "unknown" 8225 16050 180 top
+R5-10-9 "ACY1000" "unknown" 8225 17550 180 top
+R5-10-10 "ACY1000" "unknown" 8225 19050 180 top
+R5-10-11 "ACY1000" "unknown" 8225 20550 180 top
+R5-10-12 "ACY1000" "unknown" 8225 22050 180 top
+R5-10-13 "ACY1000" "unknown" 8225 23550 180 top
+R5-10-14 "ACY1000" "unknown" 8225 25050 180 top
+R5-11-0 "ACY1000" "unknown" 8725 4050 180 top
+R5-11-1 "ACY1000" "unknown" 8725 5550 180 top
+R5-11-2 "ACY1000" "unknown" 8725 7050 180 top
+R5-11-3 "ACY1000" "unknown" 8725 8550 180 top
+R5-11-4 "ACY1000" "unknown" 8725 10050 180 top
+R5-11-5 "ACY1000" "unknown" 8725 11550 180 top
+R5-11-6 "ACY1000" "unknown" 8725 13050 180 top
+R5-11-7 "ACY1000" "unknown" 8725 14550 180 top
+R5-11-8 "ACY1000" "unknown" 8725 16050 180 top
+R5-11-9 "ACY1000" "unknown" 8725 17550 180 top
+R5-11-10 "ACY1000" "unknown" 8725 19050 180 top
+R5-11-11 "ACY1000" "unknown" 8725 20550 180 top
+R5-11-12 "ACY1000" "unknown" 8725 22050 180 top
+R5-11-13 "ACY1000" "unknown" 8725 23550 180 top
+R5-11-14 "ACY1000" "unknown" 8725 25050 180 top
+R5-12-0 "ACY1000" "unknown" 9225 4050 180 top
+R5-12-1 "ACY1000" "unknown" 9225 5550 180 top
+R5-12-2 "ACY1000" "unknown" 9225 7050 180 top
+R5-12-3 "ACY1000" "unknown" 9225 8550 180 top
+R5-12-4 "ACY1000" "unknown" 9225 10050 180 top
+R5-12-5 "ACY1000" "unknown" 9225 11550 180 top
+R5-12-6 "ACY1000" "unknown" 9225 13050 180 top
+R5-12-7 "ACY1000" "unknown" 9225 14550 180 top
+R5-12-8 "ACY1000" "unknown" 9225 16050 180 top
+R5-12-9 "ACY1000" "unknown" 9225 17550 180 top
+R5-12-10 "ACY1000" "unknown" 9225 19050 180 top
+R5-12-11 "ACY1000" "unknown" 9225 20550 180 top
+R5-12-12 "ACY1000" "unknown" 9225 22050 180 top
+R5-12-13 "ACY1000" "unknown" 9225 23550 180 top
+R5-12-14 "ACY1000" "unknown" 9225 25050 180 top
+R5-13-0 "ACY1000" "unknown" 9725 4050 180 top
+R5-13-1 "ACY1000" "unknown" 9725 5550 180 top
+R5-13-2 "ACY1000" "unknown" 9725 7050 180 top
+R5-13-3 "ACY1000" "unknown" 9725 8550 180 top
+R5-13-4 "ACY1000" "unknown" 9725 10050 180 top
+R5-13-5 "ACY1000" "unknown" 9725 11550 180 top
+R5-13-6 "ACY1000" "unknown" 9725 13050 180 top
+R5-13-7 "ACY1000" "unknown" 9725 14550 180 top
+R5-13-8 "ACY1000" "unknown" 9725 16050 180 top
+R5-13-9 "ACY1000" "unknown" 9725 17550 180 top
+R5-13-10 "ACY1000" "unknown" 9725 19050 180 top
+R5-13-11 "ACY1000" "unknown" 9725 20550 180 top
+R5-13-12 "ACY1000" "unknown" 9725 22050 180 top
+R5-13-13 "ACY1000" "unknown" 9725 23550 180 top
+R5-13-14 "ACY1000" "unknown" 9725 25050 180 top
+R5-14-0 "ACY1000" "unknown" 10225 4050 180 top
+R5-14-1 "ACY1000" "unknown" 10225 5550 180 top
+R5-14-2 "ACY1000" "unknown" 10225 7050 180 top
+R5-14-3 "ACY1000" "unknown" 10225 8550 180 top
+R5-14-4 "ACY1000" "unknown" 10225 10050 180 top
+R5-14-5 "ACY1000" "unknown" 10225 11550 180 top
+R5-14-6 "ACY1000" "unknown" 10225 13050 180 top
+R5-14-7 "ACY1000" "unknown" 10225 14550 180 top
+R5-14-8 "ACY1000" "unknown" 10225 16050 180 top
+R5-14-9 "ACY1000" "unknown" 10225 17550 180 top
+R5-14-10 "ACY1000" "unknown" 10225 19050 180 top
+R5-14-11 "ACY1000" "unknown" 10225 20550 180 top
+R5-14-12 "ACY1000" "unknown" 10225 22050 180 top
+R5-14-13 "ACY1000" "unknown" 10225 23550 180 top
+R5-14-14 "ACY1000" "unknown" 10225 25050 180 top
+R8-0-0 "ACY1000" "unknown" 3225.00 3825.00 0 top
+R8-0-1 "ACY1000" "unknown" 3225 5325 0 top
+R8-0-2 "ACY1000" "unknown" 3225 6825 0 top
+R8-0-3 "ACY1000" "unknown" 3225 8325 0 top
+R8-0-4 "ACY1000" "unknown" 3225 9825 0 top
+R8-0-5 "ACY1000" "unknown" 3225 11325 0 top
+R8-0-6 "ACY1000" "unknown" 3225 12825 0 top
+R8-0-7 "ACY1000" "unknown" 3225 14325 0 top
+R8-0-8 "ACY1000" "unknown" 3225 15825 0 top
+R8-0-9 "ACY1000" "unknown" 3225 17325 0 top
+R8-0-10 "ACY1000" "unknown" 3225 18825 0 top
+R8-0-11 "ACY1000" "unknown" 3225 20325 0 top
+R8-0-12 "ACY1000" "unknown" 3225 21825 0 top
+R8-0-13 "ACY1000" "unknown" 3225 23325 0 top
+R8-0-14 "ACY1000" "unknown" 3225 24825 0 top
+R8-1-0 "ACY1000" "unknown" 3725 3825 0 top
+R8-1-1 "ACY1000" "unknown" 3725 5325 0 top
+R8-1-2 "ACY1000" "unknown" 3725 6825 0 top
+R8-1-3 "ACY1000" "unknown" 3725 8325 0 top
+R8-1-4 "ACY1000" "unknown" 3725 9825 0 top
+R8-1-5 "ACY1000" "unknown" 3725 11325 0 top
+R8-1-6 "ACY1000" "unknown" 3725 12825 0 top
+R8-1-7 "ACY1000" "unknown" 3725 14325 0 top
+R8-1-8 "ACY1000" "unknown" 3725 15825 0 top
+R8-1-9 "ACY1000" "unknown" 3725 17325 0 top
+R8-1-10 "ACY1000" "unknown" 3725 18825 0 top
+R8-1-11 "ACY1000" "unknown" 3725 20325 0 top
+R8-1-12 "ACY1000" "unknown" 3725 21825 0 top
+R8-1-13 "ACY1000" "unknown" 3725 23325 0 top
+R8-1-14 "ACY1000" "unknown" 3725 24825 0 top
+R8-2-0 "ACY1000" "unknown" 4225 3825 0 top
+R8-2-1 "ACY1000" "unknown" 4225 5325 0 top
+R8-2-2 "ACY1000" "unknown" 4225 6825 0 top
+R8-2-3 "ACY1000" "unknown" 4225 8325 0 top
+R8-2-4 "ACY1000" "unknown" 4225 9825 0 top
+R8-2-5 "ACY1000" "unknown" 4225 11325 0 top
+R8-2-6 "ACY1000" "unknown" 4225 12825 0 top
+R8-2-7 "ACY1000" "unknown" 4225 14325 0 top
+R8-2-8 "ACY1000" "unknown" 4225 15825 0 top
+R8-2-9 "ACY1000" "unknown" 4225 17325 0 top
+R8-2-10 "ACY1000" "unknown" 4225 18825 0 top
+R8-2-11 "ACY1000" "unknown" 4225 20325 0 top
+R8-2-12 "ACY1000" "unknown" 4225 21825 0 top
+R8-2-13 "ACY1000" "unknown" 4225 23325 0 top
+R8-2-14 "ACY1000" "unknown" 4225 24825 0 top
+R8-3-0 "ACY1000" "unknown" 4725 3825 0 top
+R8-3-1 "ACY1000" "unknown" 4725 5325 0 top
+R8-3-2 "ACY1000" "unknown" 4725 6825 0 top
+R8-3-3 "ACY1000" "unknown" 4725 8325 0 top
+R8-3-4 "ACY1000" "unknown" 4725 9825 0 top
+R8-3-5 "ACY1000" "unknown" 4725 11325 0 top
+R8-3-6 "ACY1000" "unknown" 4725 12825 0 top
+R8-3-7 "ACY1000" "unknown" 4725 14325 0 top
+R8-3-8 "ACY1000" "unknown" 4725 15825 0 top
+R8-3-9 "ACY1000" "unknown" 4725 17325 0 top
+R8-3-10 "ACY1000" "unknown" 4725 18825 0 top
+R8-3-11 "ACY1000" "unknown" 4725 20325 0 top
+R8-3-12 "ACY1000" "unknown" 4725 21825 0 top
+R8-3-13 "ACY1000" "unknown" 4725 23325 0 top
+R8-3-14 "ACY1000" "unknown" 4725 24825 0 top
+R8-4-0 "ACY1000" "unknown" 5225 3825 0 top
+R8-4-1 "ACY1000" "unknown" 5225 5325 0 top
+R8-4-2 "ACY1000" "unknown" 5225 6825 0 top
+R8-4-3 "ACY1000" "unknown" 5225 8325 0 top
+R8-4-4 "ACY1000" "unknown" 5225 9825 0 top
+R8-4-5 "ACY1000" "unknown" 5225 11325 0 top
+R8-4-6 "ACY1000" "unknown" 5225 12825 0 top
+R8-4-7 "ACY1000" "unknown" 5225 14325 0 top
+R8-4-8 "ACY1000" "unknown" 5225 15825 0 top
+R8-4-9 "ACY1000" "unknown" 5225 17325 0 top
+R8-4-10 "ACY1000" "unknown" 5225 18825 0 top
+R8-4-11 "ACY1000" "unknown" 5225 20325 0 top
+R8-4-12 "ACY1000" "unknown" 5225 21825 0 top
+R8-4-13 "ACY1000" "unknown" 5225 23325 0 top
+R8-4-14 "ACY1000" "unknown" 5225 24825 0 top
+R8-5-0 "ACY1000" "unknown" 5725 3825 0 top
+R8-5-1 "ACY1000" "unknown" 5725 5325 0 top
+R8-5-2 "ACY1000" "unknown" 5725 6825 0 top
+R8-5-3 "ACY1000" "unknown" 5725 8325 0 top
+R8-5-4 "ACY1000" "unknown" 5725 9825 0 top
+R8-5-5 "ACY1000" "unknown" 5725 11325 0 top
+R8-5-6 "ACY1000" "unknown" 5725 12825 0 top
+R8-5-7 "ACY1000" "unknown" 5725 14325 0 top
+R8-5-8 "ACY1000" "unknown" 5725 15825 0 top
+R8-5-9 "ACY1000" "unknown" 5725 17325 0 top
+R8-5-10 "ACY1000" "unknown" 5725 18825 0 top
+R8-5-11 "ACY1000" "unknown" 5725 20325 0 top
+R8-5-12 "ACY1000" "unknown" 5725 21825 0 top
+R8-5-13 "ACY1000" "unknown" 5725 23325 0 top
+R8-5-14 "ACY1000" "unknown" 5725 24825 0 top
+R8-6-0 "ACY1000" "unknown" 6225 3825 0 top
+R8-6-1 "ACY1000" "unknown" 6225 5325 0 top
+R8-6-2 "ACY1000" "unknown" 6225 6825 0 top
+R8-6-3 "ACY1000" "unknown" 6225 8325 0 top
+R8-6-4 "ACY1000" "unknown" 6225 9825 0 top
+R8-6-5 "ACY1000" "unknown" 6225 11325 0 top
+R8-6-6 "ACY1000" "unknown" 6225 12825 0 top
+R8-6-7 "ACY1000" "unknown" 6225 14325 0 top
+R8-6-8 "ACY1000" "unknown" 6225 15825 0 top
+R8-6-9 "ACY1000" "unknown" 6225 17325 0 top
+R8-6-10 "ACY1000" "unknown" 6225 18825 0 top
+R8-6-11 "ACY1000" "unknown" 6225 20325 0 top
+R8-6-12 "ACY1000" "unknown" 6225 21825 0 top
+R8-6-13 "ACY1000" "unknown" 6225 23325 0 top
+R8-6-14 "ACY1000" "unknown" 6225 24825 0 top
+R8-7-0 "ACY1000" "unknown" 6725 3825 0 top
+R8-7-1 "ACY1000" "unknown" 6725 5325 0 top
+R8-7-2 "ACY1000" "unknown" 6725 6825 0 top
+R8-7-3 "ACY1000" "unknown" 6725 8325 0 top
+R8-7-4 "ACY1000" "unknown" 6725 9825 0 top
+R8-7-5 "ACY1000" "unknown" 6725 11325 0 top
+R8-7-6 "ACY1000" "unknown" 6725 12825 0 top
+R8-7-7 "ACY1000" "unknown" 6725 14325 0 top
+R8-7-8 "ACY1000" "unknown" 6725 15825 0 top
+R8-7-9 "ACY1000" "unknown" 6725 17325 0 top
+R8-7-10 "ACY1000" "unknown" 6725 18825 0 top
+R8-7-11 "ACY1000" "unknown" 6725 20325 0 top
+R8-7-12 "ACY1000" "unknown" 6725 21825 0 top
+R8-7-13 "ACY1000" "unknown" 6725 23325 0 top
+R8-7-14 "ACY1000" "unknown" 6725 24825 0 top
+R8-8-0 "ACY1000" "unknown" 7225 3825 0 top
+R8-8-1 "ACY1000" "unknown" 7225 5325 0 top
+R8-8-2 "ACY1000" "unknown" 7225 6825 0 top
+R8-8-3 "ACY1000" "unknown" 7225 8325 0 top
+R8-8-4 "ACY1000" "unknown" 7225 9825 0 top
+R8-8-5 "ACY1000" "unknown" 7225 11325 0 top
+R8-8-6 "ACY1000" "unknown" 7225 12825 0 top
+R8-8-7 "ACY1000" "unknown" 7225 14325 0 top
+R8-8-8 "ACY1000" "unknown" 7225 15825 0 top
+R8-8-9 "ACY1000" "unknown" 7225 17325 0 top
+R8-8-10 "ACY1000" "unknown" 7225 18825 0 top
+R8-8-11 "ACY1000" "unknown" 7225 20325 0 top
+R8-8-12 "ACY1000" "unknown" 7225 21825 0 top
+R8-8-13 "ACY1000" "unknown" 7225 23325 0 top
+R8-8-14 "ACY1000" "unknown" 7225 24825 0 top
+R8-9-0 "ACY1000" "unknown" 7725 3825 0 top
+R8-9-1 "ACY1000" "unknown" 7725 5325 0 top
+R8-9-2 "ACY1000" "unknown" 7725 6825 0 top
+R8-9-3 "ACY1000" "unknown" 7725 8325 0 top
+R8-9-4 "ACY1000" "unknown" 7725 9825 0 top
+R8-9-5 "ACY1000" "unknown" 7725 11325 0 top
+R8-9-6 "ACY1000" "unknown" 7725 12825 0 top
+R8-9-7 "ACY1000" "unknown" 7725 14325 0 top
+R8-9-8 "ACY1000" "unknown" 7725 15825 0 top
+R8-9-9 "ACY1000" "unknown" 7725 17325 0 top
+R8-9-10 "ACY1000" "unknown" 7725 18825 0 top
+R8-9-11 "ACY1000" "unknown" 7725 20325 0 top
+R8-9-12 "ACY1000" "unknown" 7725 21825 0 top
+R8-9-13 "ACY1000" "unknown" 7725 23325 0 top
+R8-9-14 "ACY1000" "unknown" 7725 24825 0 top
+R8-10-0 "ACY1000" "unknown" 8225 3825 0 top
+R8-10-1 "ACY1000" "unknown" 8225 5325 0 top
+R8-10-2 "ACY1000" "unknown" 8225 6825 0 top
+R8-10-3 "ACY1000" "unknown" 8225 8325 0 top
+R8-10-4 "ACY1000" "unknown" 8225 9825 0 top
+R8-10-5 "ACY1000" "unknown" 8225 11325 0 top
+R8-10-6 "ACY1000" "unknown" 8225 12825 0 top
+R8-10-7 "ACY1000" "unknown" 8225 14325 0 top
+R8-10-8 "ACY1000" "unknown" 8225 15825 0 top
+R8-10-9 "ACY1000" "unknown" 8225 17325 0 top
+R8-10-10 "ACY1000" "unknown" 8225 18825 0 top
+R8-10-11 "ACY1000" "unknown" 8225 20325 0 top
+R8-10-12 "ACY1000" "unknown" 8225 21825 0 top
+R8-10-13 "ACY1000" "unknown" 8225 23325 0 top
+R8-10-14 "ACY1000" "unknown" 8225 24825 0 top
+R8-11-0 "ACY1000" "unknown" 8725 3825 0 top
+R8-11-1 "ACY1000" "unknown" 8725 5325 0 top
+R8-11-2 "ACY1000" "unknown" 8725 6825 0 top
+R8-11-3 "ACY1000" "unknown" 8725 8325 0 top
+R8-11-4 "ACY1000" "unknown" 8725 9825 0 top
+R8-11-5 "ACY1000" "unknown" 8725 11325 0 top
+R8-11-6 "ACY1000" "unknown" 8725 12825 0 top
+R8-11-7 "ACY1000" "unknown" 8725 14325 0 top
+R8-11-8 "ACY1000" "unknown" 8725 15825 0 top
+R8-11-9 "ACY1000" "unknown" 8725 17325 0 top
+R8-11-10 "ACY1000" "unknown" 8725 18825 0 top
+R8-11-11 "ACY1000" "unknown" 8725 20325 0 top
+R8-11-12 "ACY1000" "unknown" 8725 21825 0 top
+R8-11-13 "ACY1000" "unknown" 8725 23325 0 top
+R8-11-14 "ACY1000" "unknown" 8725 24825 0 top
+R8-12-0 "ACY1000" "unknown" 9225 3825 0 top
+R8-12-1 "ACY1000" "unknown" 9225 5325 0 top
+R8-12-2 "ACY1000" "unknown" 9225 6825 0 top
+R8-12-3 "ACY1000" "unknown" 9225 8325 0 top
+R8-12-4 "ACY1000" "unknown" 9225 9825 0 top
+R8-12-5 "ACY1000" "unknown" 9225 11325 0 top
+R8-12-6 "ACY1000" "unknown" 9225 12825 0 top
+R8-12-7 "ACY1000" "unknown" 9225 14325 0 top
+R8-12-8 "ACY1000" "unknown" 9225 15825 0 top
+R8-12-9 "ACY1000" "unknown" 9225 17325 0 top
+R8-12-10 "ACY1000" "unknown" 9225 18825 0 top
+R8-12-11 "ACY1000" "unknown" 9225 20325 0 top
+R8-12-12 "ACY1000" "unknown" 9225 21825 0 top
+R8-12-13 "ACY1000" "unknown" 9225 23325 0 top
+R8-12-14 "ACY1000" "unknown" 9225 24825 0 top
+R8-13-0 "ACY1000" "unknown" 9725 3825 0 top
+R8-13-1 "ACY1000" "unknown" 9725 5325 0 top
+R8-13-2 "ACY1000" "unknown" 9725 6825 0 top
+R8-13-3 "ACY1000" "unknown" 9725 8325 0 top
+R8-13-4 "ACY1000" "unknown" 9725 9825 0 top
+R8-13-5 "ACY1000" "unknown" 9725 11325 0 top
+R8-13-6 "ACY1000" "unknown" 9725 12825 0 top
+R8-13-7 "ACY1000" "unknown" 9725 14325 0 top
+R8-13-8 "ACY1000" "unknown" 9725 15825 0 top
+R8-13-9 "ACY1000" "unknown" 9725 17325 0 top
+R8-13-10 "ACY1000" "unknown" 9725 18825 0 top
+R8-13-11 "ACY1000" "unknown" 9725 20325 0 top
+R8-13-12 "ACY1000" "unknown" 9725 21825 0 top
+R8-13-13 "ACY1000" "unknown" 9725 23325 0 top
+R8-13-14 "ACY1000" "unknown" 9725 24825 0 top
+R8-14-0 "ACY1000" "unknown" 10225 3825 0 top
+R8-14-1 "ACY1000" "unknown" 10225 5325 0 top
+R8-14-2 "ACY1000" "unknown" 10225 6825 0 top
+R8-14-3 "ACY1000" "unknown" 10225 8325 0 top
+R8-14-4 "ACY1000" "unknown" 10225 9825 0 top
+R8-14-5 "ACY1000" "unknown" 10225 11325 0 top
+R8-14-6 "ACY1000" "unknown" 10225 12825 0 top
+R8-14-7 "ACY1000" "unknown" 10225 14325 0 top
+R8-14-8 "ACY1000" "unknown" 10225 15825 0 top
+R8-14-9 "ACY1000" "unknown" 10225 17325 0 top
+R8-14-10 "ACY1000" "unknown" 10225 18825 0 top
+R8-14-11 "ACY1000" "unknown" 10225 20325 0 top
+R8-14-12 "ACY1000" "unknown" 10225 21825 0 top
+R8-14-13 "ACY1000" "unknown" 10225 23325 0 top
+R8-14-14 "ACY1000" "unknown" 10225 24825 0 top
+R7-0-0 "ACY1000" "unknown" 3225.00 3600.00 0 top
+R7-0-1 "ACY1000" "unknown" 3225 5100 0 top
+R7-0-2 "ACY1000" "unknown" 3225 6600 0 top
+R7-0-3 "ACY1000" "unknown" 3225 8100 0 top
+R7-0-4 "ACY1000" "unknown" 3225 9600 0 top
+R7-0-5 "ACY1000" "unknown" 3225 11100 0 top
+R7-0-6 "ACY1000" "unknown" 3225 12600 0 top
+R7-0-7 "ACY1000" "unknown" 3225 14100 0 top
+R7-0-8 "ACY1000" "unknown" 3225 15600 0 top
+R7-0-9 "ACY1000" "unknown" 3225 17100 0 top
+R7-0-10 "ACY1000" "unknown" 3225 18600 0 top
+R7-0-11 "ACY1000" "unknown" 3225 20100 0 top
+R7-0-12 "ACY1000" "unknown" 3225 21600 0 top
+R7-0-13 "ACY1000" "unknown" 3225 23100 0 top
+R7-0-14 "ACY1000" "unknown" 3225 24600 0 top
+R7-1-0 "ACY1000" "unknown" 3725 3600 0 top
+R7-1-1 "ACY1000" "unknown" 3725 5100 0 top
+R7-1-2 "ACY1000" "unknown" 3725 6600 0 top
+R7-1-3 "ACY1000" "unknown" 3725 8100 0 top
+R7-1-4 "ACY1000" "unknown" 3725 9600 0 top
+R7-1-5 "ACY1000" "unknown" 3725 11100 0 top
+R7-1-6 "ACY1000" "unknown" 3725 12600 0 top
+R7-1-7 "ACY1000" "unknown" 3725 14100 0 top
+R7-1-8 "ACY1000" "unknown" 3725 15600 0 top
+R7-1-9 "ACY1000" "unknown" 3725 17100 0 top
+R7-1-10 "ACY1000" "unknown" 3725 18600 0 top
+R7-1-11 "ACY1000" "unknown" 3725 20100 0 top
+R7-1-12 "ACY1000" "unknown" 3725 21600 0 top
+R7-1-13 "ACY1000" "unknown" 3725 23100 0 top
+R7-1-14 "ACY1000" "unknown" 3725 24600 0 top
+R7-2-0 "ACY1000" "unknown" 4225 3600 0 top
+R7-2-1 "ACY1000" "unknown" 4225 5100 0 top
+R7-2-2 "ACY1000" "unknown" 4225 6600 0 top
+R7-2-3 "ACY1000" "unknown" 4225 8100 0 top
+R7-2-4 "ACY1000" "unknown" 4225 9600 0 top
+R7-2-5 "ACY1000" "unknown" 4225 11100 0 top
+R7-2-6 "ACY1000" "unknown" 4225 12600 0 top
+R7-2-7 "ACY1000" "unknown" 4225 14100 0 top
+R7-2-8 "ACY1000" "unknown" 4225 15600 0 top
+R7-2-9 "ACY1000" "unknown" 4225 17100 0 top
+R7-2-10 "ACY1000" "unknown" 4225 18600 0 top
+R7-2-11 "ACY1000" "unknown" 4225 20100 0 top
+R7-2-12 "ACY1000" "unknown" 4225 21600 0 top
+R7-2-13 "ACY1000" "unknown" 4225 23100 0 top
+R7-2-14 "ACY1000" "unknown" 4225 24600 0 top
+R7-3-0 "ACY1000" "unknown" 4725 3600 0 top
+R7-3-1 "ACY1000" "unknown" 4725 5100 0 top
+R7-3-2 "ACY1000" "unknown" 4725 6600 0 top
+R7-3-3 "ACY1000" "unknown" 4725 8100 0 top
+R7-3-4 "ACY1000" "unknown" 4725 9600 0 top
+R7-3-5 "ACY1000" "unknown" 4725 11100 0 top
+R7-3-6 "ACY1000" "unknown" 4725 12600 0 top
+R7-3-7 "ACY1000" "unknown" 4725 14100 0 top
+R7-3-8 "ACY1000" "unknown" 4725 15600 0 top
+R7-3-9 "ACY1000" "unknown" 4725 17100 0 top
+R7-3-10 "ACY1000" "unknown" 4725 18600 0 top
+R7-3-11 "ACY1000" "unknown" 4725 20100 0 top
+R7-3-12 "ACY1000" "unknown" 4725 21600 0 top
+R7-3-13 "ACY1000" "unknown" 4725 23100 0 top
+R7-3-14 "ACY1000" "unknown" 4725 24600 0 top
+R7-4-0 "ACY1000" "unknown" 5225 3600 0 top
+R7-4-1 "ACY1000" "unknown" 5225 5100 0 top
+R7-4-2 "ACY1000" "unknown" 5225 6600 0 top
+R7-4-3 "ACY1000" "unknown" 5225 8100 0 top
+R7-4-4 "ACY1000" "unknown" 5225 9600 0 top
+R7-4-5 "ACY1000" "unknown" 5225 11100 0 top
+R7-4-6 "ACY1000" "unknown" 5225 12600 0 top
+R7-4-7 "ACY1000" "unknown" 5225 14100 0 top
+R7-4-8 "ACY1000" "unknown" 5225 15600 0 top
+R7-4-9 "ACY1000" "unknown" 5225 17100 0 top
+R7-4-10 "ACY1000" "unknown" 5225 18600 0 top
+R7-4-11 "ACY1000" "unknown" 5225 20100 0 top
+R7-4-12 "ACY1000" "unknown" 5225 21600 0 top
+R7-4-13 "ACY1000" "unknown" 5225 23100 0 top
+R7-4-14 "ACY1000" "unknown" 5225 24600 0 top
+R7-5-0 "ACY1000" "unknown" 5725 3600 0 top
+R7-5-1 "ACY1000" "unknown" 5725 5100 0 top
+R7-5-2 "ACY1000" "unknown" 5725 6600 0 top
+R7-5-3 "ACY1000" "unknown" 5725 8100 0 top
+R7-5-4 "ACY1000" "unknown" 5725 9600 0 top
+R7-5-5 "ACY1000" "unknown" 5725 11100 0 top
+R7-5-6 "ACY1000" "unknown" 5725 12600 0 top
+R7-5-7 "ACY1000" "unknown" 5725 14100 0 top
+R7-5-8 "ACY1000" "unknown" 5725 15600 0 top
+R7-5-9 "ACY1000" "unknown" 5725 17100 0 top
+R7-5-10 "ACY1000" "unknown" 5725 18600 0 top
+R7-5-11 "ACY1000" "unknown" 5725 20100 0 top
+R7-5-12 "ACY1000" "unknown" 5725 21600 0 top
+R7-5-13 "ACY1000" "unknown" 5725 23100 0 top
+R7-5-14 "ACY1000" "unknown" 5725 24600 0 top
+R7-6-0 "ACY1000" "unknown" 6225 3600 0 top
+R7-6-1 "ACY1000" "unknown" 6225 5100 0 top
+R7-6-2 "ACY1000" "unknown" 6225 6600 0 top
+R7-6-3 "ACY1000" "unknown" 6225 8100 0 top
+R7-6-4 "ACY1000" "unknown" 6225 9600 0 top
+R7-6-5 "ACY1000" "unknown" 6225 11100 0 top
+R7-6-6 "ACY1000" "unknown" 6225 12600 0 top
+R7-6-7 "ACY1000" "unknown" 6225 14100 0 top
+R7-6-8 "ACY1000" "unknown" 6225 15600 0 top
+R7-6-9 "ACY1000" "unknown" 6225 17100 0 top
+R7-6-10 "ACY1000" "unknown" 6225 18600 0 top
+R7-6-11 "ACY1000" "unknown" 6225 20100 0 top
+R7-6-12 "ACY1000" "unknown" 6225 21600 0 top
+R7-6-13 "ACY1000" "unknown" 6225 23100 0 top
+R7-6-14 "ACY1000" "unknown" 6225 24600 0 top
+R7-7-0 "ACY1000" "unknown" 6725 3600 0 top
+R7-7-1 "ACY1000" "unknown" 6725 5100 0 top
+R7-7-2 "ACY1000" "unknown" 6725 6600 0 top
+R7-7-3 "ACY1000" "unknown" 6725 8100 0 top
+R7-7-4 "ACY1000" "unknown" 6725 9600 0 top
+R7-7-5 "ACY1000" "unknown" 6725 11100 0 top
+R7-7-6 "ACY1000" "unknown" 6725 12600 0 top
+R7-7-7 "ACY1000" "unknown" 6725 14100 0 top
+R7-7-8 "ACY1000" "unknown" 6725 15600 0 top
+R7-7-9 "ACY1000" "unknown" 6725 17100 0 top
+R7-7-10 "ACY1000" "unknown" 6725 18600 0 top
+R7-7-11 "ACY1000" "unknown" 6725 20100 0 top
+R7-7-12 "ACY1000" "unknown" 6725 21600 0 top
+R7-7-13 "ACY1000" "unknown" 6725 23100 0 top
+R7-7-14 "ACY1000" "unknown" 6725 24600 0 top
+R7-8-0 "ACY1000" "unknown" 7225 3600 0 top
+R7-8-1 "ACY1000" "unknown" 7225 5100 0 top
+R7-8-2 "ACY1000" "unknown" 7225 6600 0 top
+R7-8-3 "ACY1000" "unknown" 7225 8100 0 top
+R7-8-4 "ACY1000" "unknown" 7225 9600 0 top
+R7-8-5 "ACY1000" "unknown" 7225 11100 0 top
+R7-8-6 "ACY1000" "unknown" 7225 12600 0 top
+R7-8-7 "ACY1000" "unknown" 7225 14100 0 top
+R7-8-8 "ACY1000" "unknown" 7225 15600 0 top
+R7-8-9 "ACY1000" "unknown" 7225 17100 0 top
+R7-8-10 "ACY1000" "unknown" 7225 18600 0 top
+R7-8-11 "ACY1000" "unknown" 7225 20100 0 top
+R7-8-12 "ACY1000" "unknown" 7225 21600 0 top
+R7-8-13 "ACY1000" "unknown" 7225 23100 0 top
+R7-8-14 "ACY1000" "unknown" 7225 24600 0 top
+R7-9-0 "ACY1000" "unknown" 7725 3600 0 top
+R7-9-1 "ACY1000" "unknown" 7725 5100 0 top
+R7-9-2 "ACY1000" "unknown" 7725 6600 0 top
+R7-9-3 "ACY1000" "unknown" 7725 8100 0 top
+R7-9-4 "ACY1000" "unknown" 7725 9600 0 top
+R7-9-5 "ACY1000" "unknown" 7725 11100 0 top
+R7-9-6 "ACY1000" "unknown" 7725 12600 0 top
+R7-9-7 "ACY1000" "unknown" 7725 14100 0 top
+R7-9-8 "ACY1000" "unknown" 7725 15600 0 top
+R7-9-9 "ACY1000" "unknown" 7725 17100 0 top
+R7-9-10 "ACY1000" "unknown" 7725 18600 0 top
+R7-9-11 "ACY1000" "unknown" 7725 20100 0 top
+R7-9-12 "ACY1000" "unknown" 7725 21600 0 top
+R7-9-13 "ACY1000" "unknown" 7725 23100 0 top
+R7-9-14 "ACY1000" "unknown" 7725 24600 0 top
+R7-10-0 "ACY1000" "unknown" 8225 3600 0 top
+R7-10-1 "ACY1000" "unknown" 8225 5100 0 top
+R7-10-2 "ACY1000" "unknown" 8225 6600 0 top
+R7-10-3 "ACY1000" "unknown" 8225 8100 0 top
+R7-10-4 "ACY1000" "unknown" 8225 9600 0 top
+R7-10-5 "ACY1000" "unknown" 8225 11100 0 top
+R7-10-6 "ACY1000" "unknown" 8225 12600 0 top
+R7-10-7 "ACY1000" "unknown" 8225 14100 0 top
+R7-10-8 "ACY1000" "unknown" 8225 15600 0 top
+R7-10-9 "ACY1000" "unknown" 8225 17100 0 top
+R7-10-10 "ACY1000" "unknown" 8225 18600 0 top
+R7-10-11 "ACY1000" "unknown" 8225 20100 0 top
+R7-10-12 "ACY1000" "unknown" 8225 21600 0 top
+R7-10-13 "ACY1000" "unknown" 8225 23100 0 top
+R7-10-14 "ACY1000" "unknown" 8225 24600 0 top
+R7-11-0 "ACY1000" "unknown" 8725 3600 0 top
+R7-11-1 "ACY1000" "unknown" 8725 5100 0 top
+R7-11-2 "ACY1000" "unknown" 8725 6600 0 top
+R7-11-3 "ACY1000" "unknown" 8725 8100 0 top
+R7-11-4 "ACY1000" "unknown" 8725 9600 0 top
+R7-11-5 "ACY1000" "unknown" 8725 11100 0 top
+R7-11-6 "ACY1000" "unknown" 8725 12600 0 top
+R7-11-7 "ACY1000" "unknown" 8725 14100 0 top
+R7-11-8 "ACY1000" "unknown" 8725 15600 0 top
+R7-11-9 "ACY1000" "unknown" 8725 17100 0 top
+R7-11-10 "ACY1000" "unknown" 8725 18600 0 top
+R7-11-11 "ACY1000" "unknown" 8725 20100 0 top
+R7-11-12 "ACY1000" "unknown" 8725 21600 0 top
+R7-11-13 "ACY1000" "unknown" 8725 23100 0 top
+R7-11-14 "ACY1000" "unknown" 8725 24600 0 top
+R7-12-0 "ACY1000" "unknown" 9225 3600 0 top
+R7-12-1 "ACY1000" "unknown" 9225 5100 0 top
+R7-12-2 "ACY1000" "unknown" 9225 6600 0 top
+R7-12-3 "ACY1000" "unknown" 9225 8100 0 top
+R7-12-4 "ACY1000" "unknown" 9225 9600 0 top
+R7-12-5 "ACY1000" "unknown" 9225 11100 0 top
+R7-12-6 "ACY1000" "unknown" 9225 12600 0 top
+R7-12-7 "ACY1000" "unknown" 9225 14100 0 top
+R7-12-8 "ACY1000" "unknown" 9225 15600 0 top
+R7-12-9 "ACY1000" "unknown" 9225 17100 0 top
+R7-12-10 "ACY1000" "unknown" 9225 18600 0 top
+R7-12-11 "ACY1000" "unknown" 9225 20100 0 top
+R7-12-12 "ACY1000" "unknown" 9225 21600 0 top
+R7-12-13 "ACY1000" "unknown" 9225 23100 0 top
+R7-12-14 "ACY1000" "unknown" 9225 24600 0 top
+R7-13-0 "ACY1000" "unknown" 9725 3600 0 top
+R7-13-1 "ACY1000" "unknown" 9725 5100 0 top
+R7-13-2 "ACY1000" "unknown" 9725 6600 0 top
+R7-13-3 "ACY1000" "unknown" 9725 8100 0 top
+R7-13-4 "ACY1000" "unknown" 9725 9600 0 top
+R7-13-5 "ACY1000" "unknown" 9725 11100 0 top
+R7-13-6 "ACY1000" "unknown" 9725 12600 0 top
+R7-13-7 "ACY1000" "unknown" 9725 14100 0 top
+R7-13-8 "ACY1000" "unknown" 9725 15600 0 top
+R7-13-9 "ACY1000" "unknown" 9725 17100 0 top
+R7-13-10 "ACY1000" "unknown" 9725 18600 0 top
+R7-13-11 "ACY1000" "unknown" 9725 20100 0 top
+R7-13-12 "ACY1000" "unknown" 9725 21600 0 top
+R7-13-13 "ACY1000" "unknown" 9725 23100 0 top
+R7-13-14 "ACY1000" "unknown" 9725 24600 0 top
+R7-14-0 "ACY1000" "unknown" 10225 3600 0 top
+R7-14-1 "ACY1000" "unknown" 10225 5100 0 top
+R7-14-2 "ACY1000" "unknown" 10225 6600 0 top
+R7-14-3 "ACY1000" "unknown" 10225 8100 0 top
+R7-14-4 "ACY1000" "unknown" 10225 9600 0 top
+R7-14-5 "ACY1000" "unknown" 10225 11100 0 top
+R7-14-6 "ACY1000" "unknown" 10225 12600 0 top
+R7-14-7 "ACY1000" "unknown" 10225 14100 0 top
+R7-14-8 "ACY1000" "unknown" 10225 15600 0 top
+R7-14-9 "ACY1000" "unknown" 10225 17100 0 top
+R7-14-10 "ACY1000" "unknown" 10225 18600 0 top
+R7-14-11 "ACY1000" "unknown" 10225 20100 0 top
+R7-14-12 "ACY1000" "unknown" 10225 21600 0 top
+R7-14-13 "ACY1000" "unknown" 10225 23100 0 top
+R7-14-14 "ACY1000" "unknown" 10225 24600 0 top
+C1-0-0 "1206" "unknown" 950.00 3775.00 0 bottom
+C1-0-1 "1206" "unknown" 950 5275 0 bottom
+C1-0-2 "1206" "unknown" 950 6775 0 bottom
+C1-0-3 "1206" "unknown" 950 8275 0 bottom
+C1-0-4 "1206" "unknown" 950 9775 0 bottom
+C1-0-5 "1206" "unknown" 950 11275 0 bottom
+C1-0-6 "1206" "unknown" 950 12775 0 bottom
+C1-0-7 "1206" "unknown" 950 14275 0 bottom
+C1-0-8 "1206" "unknown" 950 15775 0 bottom
+C1-0-9 "1206" "unknown" 950 17275 0 bottom
+C1-0-10 "1206" "unknown" 950 18775 0 bottom
+C1-0-11 "1206" "unknown" 950 20275 0 bottom
+C1-0-12 "1206" "unknown" 950 21775 0 bottom
+C1-0-13 "1206" "unknown" 950 23275 0 bottom
+C1-0-14 "1206" "unknown" 950 24775 0 bottom
+C1-1-0 "1206" "unknown" 1450 3775 0 bottom
+C1-1-1 "1206" "unknown" 1450 5275 0 bottom
+C1-1-2 "1206" "unknown" 1450 6775 0 bottom
+C1-1-3 "1206" "unknown" 1450 8275 0 bottom
+C1-1-4 "1206" "unknown" 1450 9775 0 bottom
+C1-1-5 "1206" "unknown" 1450 11275 0 bottom
+C1-1-6 "1206" "unknown" 1450 12775 0 bottom
+C1-1-7 "1206" "unknown" 1450 14275 0 bottom
+C1-1-8 "1206" "unknown" 1450 15775 0 bottom
+C1-1-9 "1206" "unknown" 1450 17275 0 bottom
+C1-1-10 "1206" "unknown" 1450 18775 0 bottom
+C1-1-11 "1206" "unknown" 1450 20275 0 bottom
+C1-1-12 "1206" "unknown" 1450 21775 0 bottom
+C1-1-13 "1206" "unknown" 1450 23275 0 bottom
+C1-1-14 "1206" "unknown" 1450 24775 0 bottom
+C1-2-0 "1206" "unknown" 1950 3775 0 bottom
+C1-2-1 "1206" "unknown" 1950 5275 0 bottom
+C1-2-2 "1206" "unknown" 1950 6775 0 bottom
+C1-2-3 "1206" "unknown" 1950 8275 0 bottom
+C1-2-4 "1206" "unknown" 1950 9775 0 bottom
+C1-2-5 "1206" "unknown" 1950 11275 0 bottom
+C1-2-6 "1206" "unknown" 1950 12775 0 bottom
+C1-2-7 "1206" "unknown" 1950 14275 0 bottom
+C1-2-8 "1206" "unknown" 1950 15775 0 bottom
+C1-2-9 "1206" "unknown" 1950 17275 0 bottom
+C1-2-10 "1206" "unknown" 1950 18775 0 bottom
+C1-2-11 "1206" "unknown" 1950 20275 0 bottom
+C1-2-12 "1206" "unknown" 1950 21775 0 bottom
+C1-2-13 "1206" "unknown" 1950 23275 0 bottom
+C1-2-14 "1206" "unknown" 1950 24775 0 bottom
+C1-3-0 "1206" "unknown" 2450 3775 0 bottom
+C1-3-1 "1206" "unknown" 2450 5275 0 bottom
+C1-3-2 "1206" "unknown" 2450 6775 0 bottom
+C1-3-3 "1206" "unknown" 2450 8275 0 bottom
+C1-3-4 "1206" "unknown" 2450 9775 0 bottom
+C1-3-5 "1206" "unknown" 2450 11275 0 bottom
+C1-3-6 "1206" "unknown" 2450 12775 0 bottom
+C1-3-7 "1206" "unknown" 2450 14275 0 bottom
+C1-3-8 "1206" "unknown" 2450 15775 0 bottom
+C1-3-9 "1206" "unknown" 2450 17275 0 bottom
+C1-3-10 "1206" "unknown" 2450 18775 0 bottom
+C1-3-11 "1206" "unknown" 2450 20275 0 bottom
+C1-3-12 "1206" "unknown" 2450 21775 0 bottom
+C1-3-13 "1206" "unknown" 2450 23275 0 bottom
+C1-3-14 "1206" "unknown" 2450 24775 0 bottom
+C1-4-0 "1206" "unknown" 2950 3775 0 bottom
+C1-4-1 "1206" "unknown" 2950 5275 0 bottom
+C1-4-2 "1206" "unknown" 2950 6775 0 bottom
+C1-4-3 "1206" "unknown" 2950 8275 0 bottom
+C1-4-4 "1206" "unknown" 2950 9775 0 bottom
+C1-4-5 "1206" "unknown" 2950 11275 0 bottom
+C1-4-6 "1206" "unknown" 2950 12775 0 bottom
+C1-4-7 "1206" "unknown" 2950 14275 0 bottom
+C1-4-8 "1206" "unknown" 2950 15775 0 bottom
+C1-4-9 "1206" "unknown" 2950 17275 0 bottom
+C1-4-10 "1206" "unknown" 2950 18775 0 bottom
+C1-4-11 "1206" "unknown" 2950 20275 0 bottom
+C1-4-12 "1206" "unknown" 2950 21775 0 bottom
+C1-4-13 "1206" "unknown" 2950 23275 0 bottom
+C1-4-14 "1206" "unknown" 2950 24775 0 bottom
+C1-5-0 "1206" "unknown" 3450 3775 0 bottom
+C1-5-1 "1206" "unknown" 3450 5275 0 bottom
+C1-5-2 "1206" "unknown" 3450 6775 0 bottom
+C1-5-3 "1206" "unknown" 3450 8275 0 bottom
+C1-5-4 "1206" "unknown" 3450 9775 0 bottom
+C1-5-5 "1206" "unknown" 3450 11275 0 bottom
+C1-5-6 "1206" "unknown" 3450 12775 0 bottom
+C1-5-7 "1206" "unknown" 3450 14275 0 bottom
+C1-5-8 "1206" "unknown" 3450 15775 0 bottom
+C1-5-9 "1206" "unknown" 3450 17275 0 bottom
+C1-5-10 "1206" "unknown" 3450 18775 0 bottom
+C1-5-11 "1206" "unknown" 3450 20275 0 bottom
+C1-5-12 "1206" "unknown" 3450 21775 0 bottom
+C1-5-13 "1206" "unknown" 3450 23275 0 bottom
+C1-5-14 "1206" "unknown" 3450 24775 0 bottom
+C1-6-0 "1206" "unknown" 3950 3775 0 bottom
+C1-6-1 "1206" "unknown" 3950 5275 0 bottom
+C1-6-2 "1206" "unknown" 3950 6775 0 bottom
+C1-6-3 "1206" "unknown" 3950 8275 0 bottom
+C1-6-4 "1206" "unknown" 3950 9775 0 bottom
+C1-6-5 "1206" "unknown" 3950 11275 0 bottom
+C1-6-6 "1206" "unknown" 3950 12775 0 bottom
+C1-6-7 "1206" "unknown" 3950 14275 0 bottom
+C1-6-8 "1206" "unknown" 3950 15775 0 bottom
+C1-6-9 "1206" "unknown" 3950 17275 0 bottom
+C1-6-10 "1206" "unknown" 3950 18775 0 bottom
+C1-6-11 "1206" "unknown" 3950 20275 0 bottom
+C1-6-12 "1206" "unknown" 3950 21775 0 bottom
+C1-6-13 "1206" "unknown" 3950 23275 0 bottom
+C1-6-14 "1206" "unknown" 3950 24775 0 bottom
+C1-7-0 "1206" "unknown" 4450 3775 0 bottom
+C1-7-1 "1206" "unknown" 4450 5275 0 bottom
+C1-7-2 "1206" "unknown" 4450 6775 0 bottom
+C1-7-3 "1206" "unknown" 4450 8275 0 bottom
+C1-7-4 "1206" "unknown" 4450 9775 0 bottom
+C1-7-5 "1206" "unknown" 4450 11275 0 bottom
+C1-7-6 "1206" "unknown" 4450 12775 0 bottom
+C1-7-7 "1206" "unknown" 4450 14275 0 bottom
+C1-7-8 "1206" "unknown" 4450 15775 0 bottom
+C1-7-9 "1206" "unknown" 4450 17275 0 bottom
+C1-7-10 "1206" "unknown" 4450 18775 0 bottom
+C1-7-11 "1206" "unknown" 4450 20275 0 bottom
+C1-7-12 "1206" "unknown" 4450 21775 0 bottom
+C1-7-13 "1206" "unknown" 4450 23275 0 bottom
+C1-7-14 "1206" "unknown" 4450 24775 0 bottom
+C1-8-0 "1206" "unknown" 4950 3775 0 bottom
+C1-8-1 "1206" "unknown" 4950 5275 0 bottom
+C1-8-2 "1206" "unknown" 4950 6775 0 bottom
+C1-8-3 "1206" "unknown" 4950 8275 0 bottom
+C1-8-4 "1206" "unknown" 4950 9775 0 bottom
+C1-8-5 "1206" "unknown" 4950 11275 0 bottom
+C1-8-6 "1206" "unknown" 4950 12775 0 bottom
+C1-8-7 "1206" "unknown" 4950 14275 0 bottom
+C1-8-8 "1206" "unknown" 4950 15775 0 bottom
+C1-8-9 "1206" "unknown" 4950 17275 0 bottom
+C1-8-10 "1206" "unknown" 4950 18775 0 bottom
+C1-8-11 "1206" "unknown" 4950 20275 0 bottom
+C1-8-12 "1206" "unknown" 4950 21775 0 bottom
+C1-8-13 "1206" "unknown" 4950 23275 0 bottom
+C1-8-14 "1206" "unknown" 4950 24775 0 bottom
+C1-9-0 "1206" "unknown" 5450 3775 0 bottom
+C1-9-1 "1206" "unknown" 5450 5275 0 bottom
+C1-9-2 "1206" "unknown" 5450 6775 0 bottom
+C1-9-3 "1206" "unknown" 5450 8275 0 bottom
+C1-9-4 "1206" "unknown" 5450 9775 0 bottom
+C1-9-5 "1206" "unknown" 5450 11275 0 bottom
+C1-9-6 "1206" "unknown" 5450 12775 0 bottom
+C1-9-7 "1206" "unknown" 5450 14275 0 bottom
+C1-9-8 "1206" "unknown" 5450 15775 0 bottom
+C1-9-9 "1206" "unknown" 5450 17275 0 bottom
+C1-9-10 "1206" "unknown" 5450 18775 0 bottom
+C1-9-11 "1206" "unknown" 5450 20275 0 bottom
+C1-9-12 "1206" "unknown" 5450 21775 0 bottom
+C1-9-13 "1206" "unknown" 5450 23275 0 bottom
+C1-9-14 "1206" "unknown" 5450 24775 0 bottom
+C1-10-0 "1206" "unknown" 5950 3775 0 bottom
+C1-10-1 "1206" "unknown" 5950 5275 0 bottom
+C1-10-2 "1206" "unknown" 5950 6775 0 bottom
+C1-10-3 "1206" "unknown" 5950 8275 0 bottom
+C1-10-4 "1206" "unknown" 5950 9775 0 bottom
+C1-10-5 "1206" "unknown" 5950 11275 0 bottom
+C1-10-6 "1206" "unknown" 5950 12775 0 bottom
+C1-10-7 "1206" "unknown" 5950 14275 0 bottom
+C1-10-8 "1206" "unknown" 5950 15775 0 bottom
+C1-10-9 "1206" "unknown" 5950 17275 0 bottom
+C1-10-10 "1206" "unknown" 5950 18775 0 bottom
+C1-10-11 "1206" "unknown" 5950 20275 0 bottom
+C1-10-12 "1206" "unknown" 5950 21775 0 bottom
+C1-10-13 "1206" "unknown" 5950 23275 0 bottom
+C1-10-14 "1206" "unknown" 5950 24775 0 bottom
+C1-11-0 "1206" "unknown" 6450 3775 0 bottom
+C1-11-1 "1206" "unknown" 6450 5275 0 bottom
+C1-11-2 "1206" "unknown" 6450 6775 0 bottom
+C1-11-3 "1206" "unknown" 6450 8275 0 bottom
+C1-11-4 "1206" "unknown" 6450 9775 0 bottom
+C1-11-5 "1206" "unknown" 6450 11275 0 bottom
+C1-11-6 "1206" "unknown" 6450 12775 0 bottom
+C1-11-7 "1206" "unknown" 6450 14275 0 bottom
+C1-11-8 "1206" "unknown" 6450 15775 0 bottom
+C1-11-9 "1206" "unknown" 6450 17275 0 bottom
+C1-11-10 "1206" "unknown" 6450 18775 0 bottom
+C1-11-11 "1206" "unknown" 6450 20275 0 bottom
+C1-11-12 "1206" "unknown" 6450 21775 0 bottom
+C1-11-13 "1206" "unknown" 6450 23275 0 bottom
+C1-11-14 "1206" "unknown" 6450 24775 0 bottom
+C1-12-0 "1206" "unknown" 6950 3775 0 bottom
+C1-12-1 "1206" "unknown" 6950 5275 0 bottom
+C1-12-2 "1206" "unknown" 6950 6775 0 bottom
+C1-12-3 "1206" "unknown" 6950 8275 0 bottom
+C1-12-4 "1206" "unknown" 6950 9775 0 bottom
+C1-12-5 "1206" "unknown" 6950 11275 0 bottom
+C1-12-6 "1206" "unknown" 6950 12775 0 bottom
+C1-12-7 "1206" "unknown" 6950 14275 0 bottom
+C1-12-8 "1206" "unknown" 6950 15775 0 bottom
+C1-12-9 "1206" "unknown" 6950 17275 0 bottom
+C1-12-10 "1206" "unknown" 6950 18775 0 bottom
+C1-12-11 "1206" "unknown" 6950 20275 0 bottom
+C1-12-12 "1206" "unknown" 6950 21775 0 bottom
+C1-12-13 "1206" "unknown" 6950 23275 0 bottom
+C1-12-14 "1206" "unknown" 6950 24775 0 bottom
+C1-13-0 "1206" "unknown" 7450 3775 0 bottom
+C1-13-1 "1206" "unknown" 7450 5275 0 bottom
+C1-13-2 "1206" "unknown" 7450 6775 0 bottom
+C1-13-3 "1206" "unknown" 7450 8275 0 bottom
+C1-13-4 "1206" "unknown" 7450 9775 0 bottom
+C1-13-5 "1206" "unknown" 7450 11275 0 bottom
+C1-13-6 "1206" "unknown" 7450 12775 0 bottom
+C1-13-7 "1206" "unknown" 7450 14275 0 bottom
+C1-13-8 "1206" "unknown" 7450 15775 0 bottom
+C1-13-9 "1206" "unknown" 7450 17275 0 bottom
+C1-13-10 "1206" "unknown" 7450 18775 0 bottom
+C1-13-11 "1206" "unknown" 7450 20275 0 bottom
+C1-13-12 "1206" "unknown" 7450 21775 0 bottom
+C1-13-13 "1206" "unknown" 7450 23275 0 bottom
+C1-13-14 "1206" "unknown" 7450 24775 0 bottom
+C1-14-0 "1206" "unknown" 7950 3775 0 bottom
+C1-14-1 "1206" "unknown" 7950 5275 0 bottom
+C1-14-2 "1206" "unknown" 7950 6775 0 bottom
+C1-14-3 "1206" "unknown" 7950 8275 0 bottom
+C1-14-4 "1206" "unknown" 7950 9775 0 bottom
+C1-14-5 "1206" "unknown" 7950 11275 0 bottom
+C1-14-6 "1206" "unknown" 7950 12775 0 bottom
+C1-14-7 "1206" "unknown" 7950 14275 0 bottom
+C1-14-8 "1206" "unknown" 7950 15775 0 bottom
+C1-14-9 "1206" "unknown" 7950 17275 0 bottom
+C1-14-10 "1206" "unknown" 7950 18775 0 bottom
+C1-14-11 "1206" "unknown" 7950 20275 0 bottom
+C1-14-12 "1206" "unknown" 7950 21775 0 bottom
+C1-14-13 "1206" "unknown" 7950 23275 0 bottom
+C1-14-14 "1206" "unknown" 7950 24775 0 bottom
+C14-0-0 "1206" "unknown" 1225.00 3600.00 90 bottom
+C14-0-1 "1206" "unknown" 1225 5100 90 bottom
+C14-0-2 "1206" "unknown" 1225 6600 90 bottom
+C14-0-3 "1206" "unknown" 1225 8100 90 bottom
+C14-0-4 "1206" "unknown" 1225 9600 90 bottom
+C14-0-5 "1206" "unknown" 1225 11100 90 bottom
+C14-0-6 "1206" "unknown" 1225 12600 90 bottom
+C14-0-7 "1206" "unknown" 1225 14100 90 bottom
+C14-0-8 "1206" "unknown" 1225 15600 90 bottom
+C14-0-9 "1206" "unknown" 1225 17100 90 bottom
+C14-0-10 "1206" "unknown" 1225 18600 90 bottom
+C14-0-11 "1206" "unknown" 1225 20100 90 bottom
+C14-0-12 "1206" "unknown" 1225 21600 90 bottom
+C14-0-13 "1206" "unknown" 1225 23100 90 bottom
+C14-0-14 "1206" "unknown" 1225 24600 90 bottom
+C14-1-0 "1206" "unknown" 1725 3600 90 bottom
+C14-1-1 "1206" "unknown" 1725 5100 90 bottom
+C14-1-2 "1206" "unknown" 1725 6600 90 bottom
+C14-1-3 "1206" "unknown" 1725 8100 90 bottom
+C14-1-4 "1206" "unknown" 1725 9600 90 bottom
+C14-1-5 "1206" "unknown" 1725 11100 90 bottom
+C14-1-6 "1206" "unknown" 1725 12600 90 bottom
+C14-1-7 "1206" "unknown" 1725 14100 90 bottom
+C14-1-8 "1206" "unknown" 1725 15600 90 bottom
+C14-1-9 "1206" "unknown" 1725 17100 90 bottom
+C14-1-10 "1206" "unknown" 1725 18600 90 bottom
+C14-1-11 "1206" "unknown" 1725 20100 90 bottom
+C14-1-12 "1206" "unknown" 1725 21600 90 bottom
+C14-1-13 "1206" "unknown" 1725 23100 90 bottom
+C14-1-14 "1206" "unknown" 1725 24600 90 bottom
+C14-2-0 "1206" "unknown" 2225 3600 90 bottom
+C14-2-1 "1206" "unknown" 2225 5100 90 bottom
+C14-2-2 "1206" "unknown" 2225 6600 90 bottom
+C14-2-3 "1206" "unknown" 2225 8100 90 bottom
+C14-2-4 "1206" "unknown" 2225 9600 90 bottom
+C14-2-5 "1206" "unknown" 2225 11100 90 bottom
+C14-2-6 "1206" "unknown" 2225 12600 90 bottom
+C14-2-7 "1206" "unknown" 2225 14100 90 bottom
+C14-2-8 "1206" "unknown" 2225 15600 90 bottom
+C14-2-9 "1206" "unknown" 2225 17100 90 bottom
+C14-2-10 "1206" "unknown" 2225 18600 90 bottom
+C14-2-11 "1206" "unknown" 2225 20100 90 bottom
+C14-2-12 "1206" "unknown" 2225 21600 90 bottom
+C14-2-13 "1206" "unknown" 2225 23100 90 bottom
+C14-2-14 "1206" "unknown" 2225 24600 90 bottom
+C14-3-0 "1206" "unknown" 2725 3600 90 bottom
+C14-3-1 "1206" "unknown" 2725 5100 90 bottom
+C14-3-2 "1206" "unknown" 2725 6600 90 bottom
+C14-3-3 "1206" "unknown" 2725 8100 90 bottom
+C14-3-4 "1206" "unknown" 2725 9600 90 bottom
+C14-3-5 "1206" "unknown" 2725 11100 90 bottom
+C14-3-6 "1206" "unknown" 2725 12600 90 bottom
+C14-3-7 "1206" "unknown" 2725 14100 90 bottom
+C14-3-8 "1206" "unknown" 2725 15600 90 bottom
+C14-3-9 "1206" "unknown" 2725 17100 90 bottom
+C14-3-10 "1206" "unknown" 2725 18600 90 bottom
+C14-3-11 "1206" "unknown" 2725 20100 90 bottom
+C14-3-12 "1206" "unknown" 2725 21600 90 bottom
+C14-3-13 "1206" "unknown" 2725 23100 90 bottom
+C14-3-14 "1206" "unknown" 2725 24600 90 bottom
+C14-4-0 "1206" "unknown" 3225 3600 90 bottom
+C14-4-1 "1206" "unknown" 3225 5100 90 bottom
+C14-4-2 "1206" "unknown" 3225 6600 90 bottom
+C14-4-3 "1206" "unknown" 3225 8100 90 bottom
+C14-4-4 "1206" "unknown" 3225 9600 90 bottom
+C14-4-5 "1206" "unknown" 3225 11100 90 bottom
+C14-4-6 "1206" "unknown" 3225 12600 90 bottom
+C14-4-7 "1206" "unknown" 3225 14100 90 bottom
+C14-4-8 "1206" "unknown" 3225 15600 90 bottom
+C14-4-9 "1206" "unknown" 3225 17100 90 bottom
+C14-4-10 "1206" "unknown" 3225 18600 90 bottom
+C14-4-11 "1206" "unknown" 3225 20100 90 bottom
+C14-4-12 "1206" "unknown" 3225 21600 90 bottom
+C14-4-13 "1206" "unknown" 3225 23100 90 bottom
+C14-4-14 "1206" "unknown" 3225 24600 90 bottom
+C14-5-0 "1206" "unknown" 3725 3600 90 bottom
+C14-5-1 "1206" "unknown" 3725 5100 90 bottom
+C14-5-2 "1206" "unknown" 3725 6600 90 bottom
+C14-5-3 "1206" "unknown" 3725 8100 90 bottom
+C14-5-4 "1206" "unknown" 3725 9600 90 bottom
+C14-5-5 "1206" "unknown" 3725 11100 90 bottom
+C14-5-6 "1206" "unknown" 3725 12600 90 bottom
+C14-5-7 "1206" "unknown" 3725 14100 90 bottom
+C14-5-8 "1206" "unknown" 3725 15600 90 bottom
+C14-5-9 "1206" "unknown" 3725 17100 90 bottom
+C14-5-10 "1206" "unknown" 3725 18600 90 bottom
+C14-5-11 "1206" "unknown" 3725 20100 90 bottom
+C14-5-12 "1206" "unknown" 3725 21600 90 bottom
+C14-5-13 "1206" "unknown" 3725 23100 90 bottom
+C14-5-14 "1206" "unknown" 3725 24600 90 bottom
+C14-6-0 "1206" "unknown" 4225 3600 90 bottom
+C14-6-1 "1206" "unknown" 4225 5100 90 bottom
+C14-6-2 "1206" "unknown" 4225 6600 90 bottom
+C14-6-3 "1206" "unknown" 4225 8100 90 bottom
+C14-6-4 "1206" "unknown" 4225 9600 90 bottom
+C14-6-5 "1206" "unknown" 4225 11100 90 bottom
+C14-6-6 "1206" "unknown" 4225 12600 90 bottom
+C14-6-7 "1206" "unknown" 4225 14100 90 bottom
+C14-6-8 "1206" "unknown" 4225 15600 90 bottom
+C14-6-9 "1206" "unknown" 4225 17100 90 bottom
+C14-6-10 "1206" "unknown" 4225 18600 90 bottom
+C14-6-11 "1206" "unknown" 4225 20100 90 bottom
+C14-6-12 "1206" "unknown" 4225 21600 90 bottom
+C14-6-13 "1206" "unknown" 4225 23100 90 bottom
+C14-6-14 "1206" "unknown" 4225 24600 90 bottom
+C14-7-0 "1206" "unknown" 4725 3600 90 bottom
+C14-7-1 "1206" "unknown" 4725 5100 90 bottom
+C14-7-2 "1206" "unknown" 4725 6600 90 bottom
+C14-7-3 "1206" "unknown" 4725 8100 90 bottom
+C14-7-4 "1206" "unknown" 4725 9600 90 bottom
+C14-7-5 "1206" "unknown" 4725 11100 90 bottom
+C14-7-6 "1206" "unknown" 4725 12600 90 bottom
+C14-7-7 "1206" "unknown" 4725 14100 90 bottom
+C14-7-8 "1206" "unknown" 4725 15600 90 bottom
+C14-7-9 "1206" "unknown" 4725 17100 90 bottom
+C14-7-10 "1206" "unknown" 4725 18600 90 bottom
+C14-7-11 "1206" "unknown" 4725 20100 90 bottom
+C14-7-12 "1206" "unknown" 4725 21600 90 bottom
+C14-7-13 "1206" "unknown" 4725 23100 90 bottom
+C14-7-14 "1206" "unknown" 4725 24600 90 bottom
+C14-8-0 "1206" "unknown" 5225 3600 90 bottom
+C14-8-1 "1206" "unknown" 5225 5100 90 bottom
+C14-8-2 "1206" "unknown" 5225 6600 90 bottom
+C14-8-3 "1206" "unknown" 5225 8100 90 bottom
+C14-8-4 "1206" "unknown" 5225 9600 90 bottom
+C14-8-5 "1206" "unknown" 5225 11100 90 bottom
+C14-8-6 "1206" "unknown" 5225 12600 90 bottom
+C14-8-7 "1206" "unknown" 5225 14100 90 bottom
+C14-8-8 "1206" "unknown" 5225 15600 90 bottom
+C14-8-9 "1206" "unknown" 5225 17100 90 bottom
+C14-8-10 "1206" "unknown" 5225 18600 90 bottom
+C14-8-11 "1206" "unknown" 5225 20100 90 bottom
+C14-8-12 "1206" "unknown" 5225 21600 90 bottom
+C14-8-13 "1206" "unknown" 5225 23100 90 bottom
+C14-8-14 "1206" "unknown" 5225 24600 90 bottom
+C14-9-0 "1206" "unknown" 5725 3600 90 bottom
+C14-9-1 "1206" "unknown" 5725 5100 90 bottom
+C14-9-2 "1206" "unknown" 5725 6600 90 bottom
+C14-9-3 "1206" "unknown" 5725 8100 90 bottom
+C14-9-4 "1206" "unknown" 5725 9600 90 bottom
+C14-9-5 "1206" "unknown" 5725 11100 90 bottom
+C14-9-6 "1206" "unknown" 5725 12600 90 bottom
+C14-9-7 "1206" "unknown" 5725 14100 90 bottom
+C14-9-8 "1206" "unknown" 5725 15600 90 bottom
+C14-9-9 "1206" "unknown" 5725 17100 90 bottom
+C14-9-10 "1206" "unknown" 5725 18600 90 bottom
+C14-9-11 "1206" "unknown" 5725 20100 90 bottom
+C14-9-12 "1206" "unknown" 5725 21600 90 bottom
+C14-9-13 "1206" "unknown" 5725 23100 90 bottom
+C14-9-14 "1206" "unknown" 5725 24600 90 bottom
+C14-10-0 "1206" "unknown" 6225 3600 90 bottom
+C14-10-1 "1206" "unknown" 6225 5100 90 bottom
+C14-10-2 "1206" "unknown" 6225 6600 90 bottom
+C14-10-3 "1206" "unknown" 6225 8100 90 bottom
+C14-10-4 "1206" "unknown" 6225 9600 90 bottom
+C14-10-5 "1206" "unknown" 6225 11100 90 bottom
+C14-10-6 "1206" "unknown" 6225 12600 90 bottom
+C14-10-7 "1206" "unknown" 6225 14100 90 bottom
+C14-10-8 "1206" "unknown" 6225 15600 90 bottom
+C14-10-9 "1206" "unknown" 6225 17100 90 bottom
+C14-10-10 "1206" "unknown" 6225 18600 90 bottom
+C14-10-11 "1206" "unknown" 6225 20100 90 bottom
+C14-10-12 "1206" "unknown" 6225 21600 90 bottom
+C14-10-13 "1206" "unknown" 6225 23100 90 bottom
+C14-10-14 "1206" "unknown" 6225 24600 90 bottom
+C14-11-0 "1206" "unknown" 6725 3600 90 bottom
+C14-11-1 "1206" "unknown" 6725 5100 90 bottom
+C14-11-2 "1206" "unknown" 6725 6600 90 bottom
+C14-11-3 "1206" "unknown" 6725 8100 90 bottom
+C14-11-4 "1206" "unknown" 6725 9600 90 bottom
+C14-11-5 "1206" "unknown" 6725 11100 90 bottom
+C14-11-6 "1206" "unknown" 6725 12600 90 bottom
+C14-11-7 "1206" "unknown" 6725 14100 90 bottom
+C14-11-8 "1206" "unknown" 6725 15600 90 bottom
+C14-11-9 "1206" "unknown" 6725 17100 90 bottom
+C14-11-10 "1206" "unknown" 6725 18600 90 bottom
+C14-11-11 "1206" "unknown" 6725 20100 90 bottom
+C14-11-12 "1206" "unknown" 6725 21600 90 bottom
+C14-11-13 "1206" "unknown" 6725 23100 90 bottom
+C14-11-14 "1206" "unknown" 6725 24600 90 bottom
+C14-12-0 "1206" "unknown" 7225 3600 90 bottom
+C14-12-1 "1206" "unknown" 7225 5100 90 bottom
+C14-12-2 "1206" "unknown" 7225 6600 90 bottom
+C14-12-3 "1206" "unknown" 7225 8100 90 bottom
+C14-12-4 "1206" "unknown" 7225 9600 90 bottom
+C14-12-5 "1206" "unknown" 7225 11100 90 bottom
+C14-12-6 "1206" "unknown" 7225 12600 90 bottom
+C14-12-7 "1206" "unknown" 7225 14100 90 bottom
+C14-12-8 "1206" "unknown" 7225 15600 90 bottom
+C14-12-9 "1206" "unknown" 7225 17100 90 bottom
+C14-12-10 "1206" "unknown" 7225 18600 90 bottom
+C14-12-11 "1206" "unknown" 7225 20100 90 bottom
+C14-12-12 "1206" "unknown" 7225 21600 90 bottom
+C14-12-13 "1206" "unknown" 7225 23100 90 bottom
+C14-12-14 "1206" "unknown" 7225 24600 90 bottom
+C14-13-0 "1206" "unknown" 7725 3600 90 bottom
+C14-13-1 "1206" "unknown" 7725 5100 90 bottom
+C14-13-2 "1206" "unknown" 7725 6600 90 bottom
+C14-13-3 "1206" "unknown" 7725 8100 90 bottom
+C14-13-4 "1206" "unknown" 7725 9600 90 bottom
+C14-13-5 "1206" "unknown" 7725 11100 90 bottom
+C14-13-6 "1206" "unknown" 7725 12600 90 bottom
+C14-13-7 "1206" "unknown" 7725 14100 90 bottom
+C14-13-8 "1206" "unknown" 7725 15600 90 bottom
+C14-13-9 "1206" "unknown" 7725 17100 90 bottom
+C14-13-10 "1206" "unknown" 7725 18600 90 bottom
+C14-13-11 "1206" "unknown" 7725 20100 90 bottom
+C14-13-12 "1206" "unknown" 7725 21600 90 bottom
+C14-13-13 "1206" "unknown" 7725 23100 90 bottom
+C14-13-14 "1206" "unknown" 7725 24600 90 bottom
+C14-14-0 "1206" "unknown" 8225 3600 90 bottom
+C14-14-1 "1206" "unknown" 8225 5100 90 bottom
+C14-14-2 "1206" "unknown" 8225 6600 90 bottom
+C14-14-3 "1206" "unknown" 8225 8100 90 bottom
+C14-14-4 "1206" "unknown" 8225 9600 90 bottom
+C14-14-5 "1206" "unknown" 8225 11100 90 bottom
+C14-14-6 "1206" "unknown" 8225 12600 90 bottom
+C14-14-7 "1206" "unknown" 8225 14100 90 bottom
+C14-14-8 "1206" "unknown" 8225 15600 90 bottom
+C14-14-9 "1206" "unknown" 8225 17100 90 bottom
+C14-14-10 "1206" "unknown" 8225 18600 90 bottom
+C14-14-11 "1206" "unknown" 8225 20100 90 bottom
+C14-14-12 "1206" "unknown" 8225 21600 90 bottom
+C14-14-13 "1206" "unknown" 8225 23100 90 bottom
+C14-14-14 "1206" "unknown" 8225 24600 90 bottom
+D6-0-0 "1206" "unknown" 1125.00 3875.00 180 bottom
+D6-0-1 "1206" "unknown" 1125 5375 180 bottom
+D6-0-2 "1206" "unknown" 1125 6875 180 bottom
+D6-0-3 "1206" "unknown" 1125 8375 180 bottom
+D6-0-4 "1206" "unknown" 1125 9875 180 bottom
+D6-0-5 "1206" "unknown" 1125 11375 180 bottom
+D6-0-6 "1206" "unknown" 1125 12875 180 bottom
+D6-0-7 "1206" "unknown" 1125 14375 180 bottom
+D6-0-8 "1206" "unknown" 1125 15875 180 bottom
+D6-0-9 "1206" "unknown" 1125 17375 180 bottom
+D6-0-10 "1206" "unknown" 1125 18875 180 bottom
+D6-0-11 "1206" "unknown" 1125 20375 180 bottom
+D6-0-12 "1206" "unknown" 1125 21875 180 bottom
+D6-0-13 "1206" "unknown" 1125 23375 180 bottom
+D6-0-14 "1206" "unknown" 1125 24875 180 bottom
+D6-1-0 "1206" "unknown" 1625 3875 180 bottom
+D6-1-1 "1206" "unknown" 1625 5375 180 bottom
+D6-1-2 "1206" "unknown" 1625 6875 180 bottom
+D6-1-3 "1206" "unknown" 1625 8375 180 bottom
+D6-1-4 "1206" "unknown" 1625 9875 180 bottom
+D6-1-5 "1206" "unknown" 1625 11375 180 bottom
+D6-1-6 "1206" "unknown" 1625 12875 180 bottom
+D6-1-7 "1206" "unknown" 1625 14375 180 bottom
+D6-1-8 "1206" "unknown" 1625 15875 180 bottom
+D6-1-9 "1206" "unknown" 1625 17375 180 bottom
+D6-1-10 "1206" "unknown" 1625 18875 180 bottom
+D6-1-11 "1206" "unknown" 1625 20375 180 bottom
+D6-1-12 "1206" "unknown" 1625 21875 180 bottom
+D6-1-13 "1206" "unknown" 1625 23375 180 bottom
+D6-1-14 "1206" "unknown" 1625 24875 180 bottom
+D6-2-0 "1206" "unknown" 2125 3875 180 bottom
+D6-2-1 "1206" "unknown" 2125 5375 180 bottom
+D6-2-2 "1206" "unknown" 2125 6875 180 bottom
+D6-2-3 "1206" "unknown" 2125 8375 180 bottom
+D6-2-4 "1206" "unknown" 2125 9875 180 bottom
+D6-2-5 "1206" "unknown" 2125 11375 180 bottom
+D6-2-6 "1206" "unknown" 2125 12875 180 bottom
+D6-2-7 "1206" "unknown" 2125 14375 180 bottom
+D6-2-8 "1206" "unknown" 2125 15875 180 bottom
+D6-2-9 "1206" "unknown" 2125 17375 180 bottom
+D6-2-10 "1206" "unknown" 2125 18875 180 bottom
+D6-2-11 "1206" "unknown" 2125 20375 180 bottom
+D6-2-12 "1206" "unknown" 2125 21875 180 bottom
+D6-2-13 "1206" "unknown" 2125 23375 180 bottom
+D6-2-14 "1206" "unknown" 2125 24875 180 bottom
+D6-3-0 "1206" "unknown" 2625 3875 180 bottom
+D6-3-1 "1206" "unknown" 2625 5375 180 bottom
+D6-3-2 "1206" "unknown" 2625 6875 180 bottom
+D6-3-3 "1206" "unknown" 2625 8375 180 bottom
+D6-3-4 "1206" "unknown" 2625 9875 180 bottom
+D6-3-5 "1206" "unknown" 2625 11375 180 bottom
+D6-3-6 "1206" "unknown" 2625 12875 180 bottom
+D6-3-7 "1206" "unknown" 2625 14375 180 bottom
+D6-3-8 "1206" "unknown" 2625 15875 180 bottom
+D6-3-9 "1206" "unknown" 2625 17375 180 bottom
+D6-3-10 "1206" "unknown" 2625 18875 180 bottom
+D6-3-11 "1206" "unknown" 2625 20375 180 bottom
+D6-3-12 "1206" "unknown" 2625 21875 180 bottom
+D6-3-13 "1206" "unknown" 2625 23375 180 bottom
+D6-3-14 "1206" "unknown" 2625 24875 180 bottom
+D6-4-0 "1206" "unknown" 3125 3875 180 bottom
+D6-4-1 "1206" "unknown" 3125 5375 180 bottom
+D6-4-2 "1206" "unknown" 3125 6875 180 bottom
+D6-4-3 "1206" "unknown" 3125 8375 180 bottom
+D6-4-4 "1206" "unknown" 3125 9875 180 bottom
+D6-4-5 "1206" "unknown" 3125 11375 180 bottom
+D6-4-6 "1206" "unknown" 3125 12875 180 bottom
+D6-4-7 "1206" "unknown" 3125 14375 180 bottom
+D6-4-8 "1206" "unknown" 3125 15875 180 bottom
+D6-4-9 "1206" "unknown" 3125 17375 180 bottom
+D6-4-10 "1206" "unknown" 3125 18875 180 bottom
+D6-4-11 "1206" "unknown" 3125 20375 180 bottom
+D6-4-12 "1206" "unknown" 3125 21875 180 bottom
+D6-4-13 "1206" "unknown" 3125 23375 180 bottom
+D6-4-14 "1206" "unknown" 3125 24875 180 bottom
+D6-5-0 "1206" "unknown" 3625 3875 180 bottom
+D6-5-1 "1206" "unknown" 3625 5375 180 bottom
+D6-5-2 "1206" "unknown" 3625 6875 180 bottom
+D6-5-3 "1206" "unknown" 3625 8375 180 bottom
+D6-5-4 "1206" "unknown" 3625 9875 180 bottom
+D6-5-5 "1206" "unknown" 3625 11375 180 bottom
+D6-5-6 "1206" "unknown" 3625 12875 180 bottom
+D6-5-7 "1206" "unknown" 3625 14375 180 bottom
+D6-5-8 "1206" "unknown" 3625 15875 180 bottom
+D6-5-9 "1206" "unknown" 3625 17375 180 bottom
+D6-5-10 "1206" "unknown" 3625 18875 180 bottom
+D6-5-11 "1206" "unknown" 3625 20375 180 bottom
+D6-5-12 "1206" "unknown" 3625 21875 180 bottom
+D6-5-13 "1206" "unknown" 3625 23375 180 bottom
+D6-5-14 "1206" "unknown" 3625 24875 180 bottom
+D6-6-0 "1206" "unknown" 4125 3875 180 bottom
+D6-6-1 "1206" "unknown" 4125 5375 180 bottom
+D6-6-2 "1206" "unknown" 4125 6875 180 bottom
+D6-6-3 "1206" "unknown" 4125 8375 180 bottom
+D6-6-4 "1206" "unknown" 4125 9875 180 bottom
+D6-6-5 "1206" "unknown" 4125 11375 180 bottom
+D6-6-6 "1206" "unknown" 4125 12875 180 bottom
+D6-6-7 "1206" "unknown" 4125 14375 180 bottom
+D6-6-8 "1206" "unknown" 4125 15875 180 bottom
+D6-6-9 "1206" "unknown" 4125 17375 180 bottom
+D6-6-10 "1206" "unknown" 4125 18875 180 bottom
+D6-6-11 "1206" "unknown" 4125 20375 180 bottom
+D6-6-12 "1206" "unknown" 4125 21875 180 bottom
+D6-6-13 "1206" "unknown" 4125 23375 180 bottom
+D6-6-14 "1206" "unknown" 4125 24875 180 bottom
+D6-7-0 "1206" "unknown" 4625 3875 180 bottom
+D6-7-1 "1206" "unknown" 4625 5375 180 bottom
+D6-7-2 "1206" "unknown" 4625 6875 180 bottom
+D6-7-3 "1206" "unknown" 4625 8375 180 bottom
+D6-7-4 "1206" "unknown" 4625 9875 180 bottom
+D6-7-5 "1206" "unknown" 4625 11375 180 bottom
+D6-7-6 "1206" "unknown" 4625 12875 180 bottom
+D6-7-7 "1206" "unknown" 4625 14375 180 bottom
+D6-7-8 "1206" "unknown" 4625 15875 180 bottom
+D6-7-9 "1206" "unknown" 4625 17375 180 bottom
+D6-7-10 "1206" "unknown" 4625 18875 180 bottom
+D6-7-11 "1206" "unknown" 4625 20375 180 bottom
+D6-7-12 "1206" "unknown" 4625 21875 180 bottom
+D6-7-13 "1206" "unknown" 4625 23375 180 bottom
+D6-7-14 "1206" "unknown" 4625 24875 180 bottom
+D6-8-0 "1206" "unknown" 5125 3875 180 bottom
+D6-8-1 "1206" "unknown" 5125 5375 180 bottom
+D6-8-2 "1206" "unknown" 5125 6875 180 bottom
+D6-8-3 "1206" "unknown" 5125 8375 180 bottom
+D6-8-4 "1206" "unknown" 5125 9875 180 bottom
+D6-8-5 "1206" "unknown" 5125 11375 180 bottom
+D6-8-6 "1206" "unknown" 5125 12875 180 bottom
+D6-8-7 "1206" "unknown" 5125 14375 180 bottom
+D6-8-8 "1206" "unknown" 5125 15875 180 bottom
+D6-8-9 "1206" "unknown" 5125 17375 180 bottom
+D6-8-10 "1206" "unknown" 5125 18875 180 bottom
+D6-8-11 "1206" "unknown" 5125 20375 180 bottom
+D6-8-12 "1206" "unknown" 5125 21875 180 bottom
+D6-8-13 "1206" "unknown" 5125 23375 180 bottom
+D6-8-14 "1206" "unknown" 5125 24875 180 bottom
+D6-9-0 "1206" "unknown" 5625 3875 180 bottom
+D6-9-1 "1206" "unknown" 5625 5375 180 bottom
+D6-9-2 "1206" "unknown" 5625 6875 180 bottom
+D6-9-3 "1206" "unknown" 5625 8375 180 bottom
+D6-9-4 "1206" "unknown" 5625 9875 180 bottom
+D6-9-5 "1206" "unknown" 5625 11375 180 bottom
+D6-9-6 "1206" "unknown" 5625 12875 180 bottom
+D6-9-7 "1206" "unknown" 5625 14375 180 bottom
+D6-9-8 "1206" "unknown" 5625 15875 180 bottom
+D6-9-9 "1206" "unknown" 5625 17375 180 bottom
+D6-9-10 "1206" "unknown" 5625 18875 180 bottom
+D6-9-11 "1206" "unknown" 5625 20375 180 bottom
+D6-9-12 "1206" "unknown" 5625 21875 180 bottom
+D6-9-13 "1206" "unknown" 5625 23375 180 bottom
+D6-9-14 "1206" "unknown" 5625 24875 180 bottom
+D6-10-0 "1206" "unknown" 6125 3875 180 bottom
+D6-10-1 "1206" "unknown" 6125 5375 180 bottom
+D6-10-2 "1206" "unknown" 6125 6875 180 bottom
+D6-10-3 "1206" "unknown" 6125 8375 180 bottom
+D6-10-4 "1206" "unknown" 6125 9875 180 bottom
+D6-10-5 "1206" "unknown" 6125 11375 180 bottom
+D6-10-6 "1206" "unknown" 6125 12875 180 bottom
+D6-10-7 "1206" "unknown" 6125 14375 180 bottom
+D6-10-8 "1206" "unknown" 6125 15875 180 bottom
+D6-10-9 "1206" "unknown" 6125 17375 180 bottom
+D6-10-10 "1206" "unknown" 6125 18875 180 bottom
+D6-10-11 "1206" "unknown" 6125 20375 180 bottom
+D6-10-12 "1206" "unknown" 6125 21875 180 bottom
+D6-10-13 "1206" "unknown" 6125 23375 180 bottom
+D6-10-14 "1206" "unknown" 6125 24875 180 bottom
+D6-11-0 "1206" "unknown" 6625 3875 180 bottom
+D6-11-1 "1206" "unknown" 6625 5375 180 bottom
+D6-11-2 "1206" "unknown" 6625 6875 180 bottom
+D6-11-3 "1206" "unknown" 6625 8375 180 bottom
+D6-11-4 "1206" "unknown" 6625 9875 180 bottom
+D6-11-5 "1206" "unknown" 6625 11375 180 bottom
+D6-11-6 "1206" "unknown" 6625 12875 180 bottom
+D6-11-7 "1206" "unknown" 6625 14375 180 bottom
+D6-11-8 "1206" "unknown" 6625 15875 180 bottom
+D6-11-9 "1206" "unknown" 6625 17375 180 bottom
+D6-11-10 "1206" "unknown" 6625 18875 180 bottom
+D6-11-11 "1206" "unknown" 6625 20375 180 bottom
+D6-11-12 "1206" "unknown" 6625 21875 180 bottom
+D6-11-13 "1206" "unknown" 6625 23375 180 bottom
+D6-11-14 "1206" "unknown" 6625 24875 180 bottom
+D6-12-0 "1206" "unknown" 7125 3875 180 bottom
+D6-12-1 "1206" "unknown" 7125 5375 180 bottom
+D6-12-2 "1206" "unknown" 7125 6875 180 bottom
+D6-12-3 "1206" "unknown" 7125 8375 180 bottom
+D6-12-4 "1206" "unknown" 7125 9875 180 bottom
+D6-12-5 "1206" "unknown" 7125 11375 180 bottom
+D6-12-6 "1206" "unknown" 7125 12875 180 bottom
+D6-12-7 "1206" "unknown" 7125 14375 180 bottom
+D6-12-8 "1206" "unknown" 7125 15875 180 bottom
+D6-12-9 "1206" "unknown" 7125 17375 180 bottom
+D6-12-10 "1206" "unknown" 7125 18875 180 bottom
+D6-12-11 "1206" "unknown" 7125 20375 180 bottom
+D6-12-12 "1206" "unknown" 7125 21875 180 bottom
+D6-12-13 "1206" "unknown" 7125 23375 180 bottom
+D6-12-14 "1206" "unknown" 7125 24875 180 bottom
+D6-13-0 "1206" "unknown" 7625 3875 180 bottom
+D6-13-1 "1206" "unknown" 7625 5375 180 bottom
+D6-13-2 "1206" "unknown" 7625 6875 180 bottom
+D6-13-3 "1206" "unknown" 7625 8375 180 bottom
+D6-13-4 "1206" "unknown" 7625 9875 180 bottom
+D6-13-5 "1206" "unknown" 7625 11375 180 bottom
+D6-13-6 "1206" "unknown" 7625 12875 180 bottom
+D6-13-7 "1206" "unknown" 7625 14375 180 bottom
+D6-13-8 "1206" "unknown" 7625 15875 180 bottom
+D6-13-9 "1206" "unknown" 7625 17375 180 bottom
+D6-13-10 "1206" "unknown" 7625 18875 180 bottom
+D6-13-11 "1206" "unknown" 7625 20375 180 bottom
+D6-13-12 "1206" "unknown" 7625 21875 180 bottom
+D6-13-13 "1206" "unknown" 7625 23375 180 bottom
+D6-13-14 "1206" "unknown" 7625 24875 180 bottom
+D6-14-0 "1206" "unknown" 8125 3875 180 bottom
+D6-14-1 "1206" "unknown" 8125 5375 180 bottom
+D6-14-2 "1206" "unknown" 8125 6875 180 bottom
+D6-14-3 "1206" "unknown" 8125 8375 180 bottom
+D6-14-4 "1206" "unknown" 8125 9875 180 bottom
+D6-14-5 "1206" "unknown" 8125 11375 180 bottom
+D6-14-6 "1206" "unknown" 8125 12875 180 bottom
+D6-14-7 "1206" "unknown" 8125 14375 180 bottom
+D6-14-8 "1206" "unknown" 8125 15875 180 bottom
+D6-14-9 "1206" "unknown" 8125 17375 180 bottom
+D6-14-10 "1206" "unknown" 8125 18875 180 bottom
+D6-14-11 "1206" "unknown" 8125 20375 180 bottom
+D6-14-12 "1206" "unknown" 8125 21875 180 bottom
+D6-14-13 "1206" "unknown" 8125 23375 180 bottom
+D6-14-14 "1206" "unknown" 8125 24875 180 bottom
+C13-0-0 "1206" "unknown" 1615.95 3738.19 180 bottom
+C13-0-1 "1206" "unknown" 1615.95 5238.19 180 bottom
+C13-0-2 "1206" "unknown" 1615.95 6738.19 180 bottom
+C13-0-3 "1206" "unknown" 1615.95 8238.19 180 bottom
+C13-0-4 "1206" "unknown" 1615.95 9738.19 180 bottom
+C13-0-5 "1206" "unknown" 1615.95 11238.19 180 bottom
+C13-0-6 "1206" "unknown" 1615.95 12738.19 180 bottom
+C13-0-7 "1206" "unknown" 1615.95 14238.19 180 bottom
+C13-0-8 "1206" "unknown" 1615.95 15738.19 180 bottom
+C13-0-9 "1206" "unknown" 1615.95 17238.19 180 bottom
+C13-0-10 "1206" "unknown" 1615.95 18738.19 180 bottom
+C13-0-11 "1206" "unknown" 1615.95 20238.19 180 bottom
+C13-0-12 "1206" "unknown" 1615.95 21738.19 180 bottom
+C13-0-13 "1206" "unknown" 1615.95 23238.19 180 bottom
+C13-0-14 "1206" "unknown" 1615.95 24738.19 180 bottom
+C13-1-0 "1206" "unknown" 2115.95 3738.19 180 bottom
+C13-1-1 "1206" "unknown" 2115.95 5238.19 180 bottom
+C13-1-2 "1206" "unknown" 2115.95 6738.19 180 bottom
+C13-1-3 "1206" "unknown" 2115.95 8238.19 180 bottom
+C13-1-4 "1206" "unknown" 2115.95 9738.19 180 bottom
+C13-1-5 "1206" "unknown" 2115.95 11238.19 180 bottom
+C13-1-6 "1206" "unknown" 2115.95 12738.19 180 bottom
+C13-1-7 "1206" "unknown" 2115.95 14238.19 180 bottom
+C13-1-8 "1206" "unknown" 2115.95 15738.19 180 bottom
+C13-1-9 "1206" "unknown" 2115.95 17238.19 180 bottom
+C13-1-10 "1206" "unknown" 2115.95 18738.19 180 bottom
+C13-1-11 "1206" "unknown" 2115.95 20238.19 180 bottom
+C13-1-12 "1206" "unknown" 2115.95 21738.19 180 bottom
+C13-1-13 "1206" "unknown" 2115.95 23238.19 180 bottom
+C13-1-14 "1206" "unknown" 2115.95 24738.19 180 bottom
+C13-2-0 "1206" "unknown" 2615.95 3738.19 180 bottom
+C13-2-1 "1206" "unknown" 2615.95 5238.19 180 bottom
+C13-2-2 "1206" "unknown" 2615.95 6738.19 180 bottom
+C13-2-3 "1206" "unknown" 2615.95 8238.19 180 bottom
+C13-2-4 "1206" "unknown" 2615.95 9738.19 180 bottom
+C13-2-5 "1206" "unknown" 2615.95 11238.19 180 bottom
+C13-2-6 "1206" "unknown" 2615.95 12738.19 180 bottom
+C13-2-7 "1206" "unknown" 2615.95 14238.19 180 bottom
+C13-2-8 "1206" "unknown" 2615.95 15738.19 180 bottom
+C13-2-9 "1206" "unknown" 2615.95 17238.19 180 bottom
+C13-2-10 "1206" "unknown" 2615.95 18738.19 180 bottom
+C13-2-11 "1206" "unknown" 2615.95 20238.19 180 bottom
+C13-2-12 "1206" "unknown" 2615.95 21738.19 180 bottom
+C13-2-13 "1206" "unknown" 2615.95 23238.19 180 bottom
+C13-2-14 "1206" "unknown" 2615.95 24738.19 180 bottom
+C13-3-0 "1206" "unknown" 3115.95 3738.19 180 bottom
+C13-3-1 "1206" "unknown" 3115.95 5238.19 180 bottom
+C13-3-2 "1206" "unknown" 3115.95 6738.19 180 bottom
+C13-3-3 "1206" "unknown" 3115.95 8238.19 180 bottom
+C13-3-4 "1206" "unknown" 3115.95 9738.19 180 bottom
+C13-3-5 "1206" "unknown" 3115.95 11238.19 180 bottom
+C13-3-6 "1206" "unknown" 3115.95 12738.19 180 bottom
+C13-3-7 "1206" "unknown" 3115.95 14238.19 180 bottom
+C13-3-8 "1206" "unknown" 3115.95 15738.19 180 bottom
+C13-3-9 "1206" "unknown" 3115.95 17238.19 180 bottom
+C13-3-10 "1206" "unknown" 3115.95 18738.19 180 bottom
+C13-3-11 "1206" "unknown" 3115.95 20238.19 180 bottom
+C13-3-12 "1206" "unknown" 3115.95 21738.19 180 bottom
+C13-3-13 "1206" "unknown" 3115.95 23238.19 180 bottom
+C13-3-14 "1206" "unknown" 3115.95 24738.19 180 bottom
+C13-4-0 "1206" "unknown" 3615.95 3738.19 180 bottom
+C13-4-1 "1206" "unknown" 3615.95 5238.19 180 bottom
+C13-4-2 "1206" "unknown" 3615.95 6738.19 180 bottom
+C13-4-3 "1206" "unknown" 3615.95 8238.19 180 bottom
+C13-4-4 "1206" "unknown" 3615.95 9738.19 180 bottom
+C13-4-5 "1206" "unknown" 3615.95 11238.19 180 bottom
+C13-4-6 "1206" "unknown" 3615.95 12738.19 180 bottom
+C13-4-7 "1206" "unknown" 3615.95 14238.19 180 bottom
+C13-4-8 "1206" "unknown" 3615.95 15738.19 180 bottom
+C13-4-9 "1206" "unknown" 3615.95 17238.19 180 bottom
+C13-4-10 "1206" "unknown" 3615.95 18738.19 180 bottom
+C13-4-11 "1206" "unknown" 3615.95 20238.19 180 bottom
+C13-4-12 "1206" "unknown" 3615.95 21738.19 180 bottom
+C13-4-13 "1206" "unknown" 3615.95 23238.19 180 bottom
+C13-4-14 "1206" "unknown" 3615.95 24738.19 180 bottom
+C13-5-0 "1206" "unknown" 4115.95 3738.19 180 bottom
+C13-5-1 "1206" "unknown" 4115.95 5238.19 180 bottom
+C13-5-2 "1206" "unknown" 4115.95 6738.19 180 bottom
+C13-5-3 "1206" "unknown" 4115.95 8238.19 180 bottom
+C13-5-4 "1206" "unknown" 4115.95 9738.19 180 bottom
+C13-5-5 "1206" "unknown" 4115.95 11238.19 180 bottom
+C13-5-6 "1206" "unknown" 4115.95 12738.19 180 bottom
+C13-5-7 "1206" "unknown" 4115.95 14238.19 180 bottom
+C13-5-8 "1206" "unknown" 4115.95 15738.19 180 bottom
+C13-5-9 "1206" "unknown" 4115.95 17238.19 180 bottom
+C13-5-10 "1206" "unknown" 4115.95 18738.19 180 bottom
+C13-5-11 "1206" "unknown" 4115.95 20238.19 180 bottom
+C13-5-12 "1206" "unknown" 4115.95 21738.19 180 bottom
+C13-5-13 "1206" "unknown" 4115.95 23238.19 180 bottom
+C13-5-14 "1206" "unknown" 4115.95 24738.19 180 bottom
+C13-6-0 "1206" "unknown" 4615.95 3738.19 180 bottom
+C13-6-1 "1206" "unknown" 4615.95 5238.19 180 bottom
+C13-6-2 "1206" "unknown" 4615.95 6738.19 180 bottom
+C13-6-3 "1206" "unknown" 4615.95 8238.19 180 bottom
+C13-6-4 "1206" "unknown" 4615.95 9738.19 180 bottom
+C13-6-5 "1206" "unknown" 4615.95 11238.19 180 bottom
+C13-6-6 "1206" "unknown" 4615.95 12738.19 180 bottom
+C13-6-7 "1206" "unknown" 4615.95 14238.19 180 bottom
+C13-6-8 "1206" "unknown" 4615.95 15738.19 180 bottom
+C13-6-9 "1206" "unknown" 4615.95 17238.19 180 bottom
+C13-6-10 "1206" "unknown" 4615.95 18738.19 180 bottom
+C13-6-11 "1206" "unknown" 4615.95 20238.19 180 bottom
+C13-6-12 "1206" "unknown" 4615.95 21738.19 180 bottom
+C13-6-13 "1206" "unknown" 4615.95 23238.19 180 bottom
+C13-6-14 "1206" "unknown" 4615.95 24738.19 180 bottom
+C13-7-0 "1206" "unknown" 5115.95 3738.19 180 bottom
+C13-7-1 "1206" "unknown" 5115.95 5238.19 180 bottom
+C13-7-2 "1206" "unknown" 5115.95 6738.19 180 bottom
+C13-7-3 "1206" "unknown" 5115.95 8238.19 180 bottom
+C13-7-4 "1206" "unknown" 5115.95 9738.19 180 bottom
+C13-7-5 "1206" "unknown" 5115.95 11238.19 180 bottom
+C13-7-6 "1206" "unknown" 5115.95 12738.19 180 bottom
+C13-7-7 "1206" "unknown" 5115.95 14238.19 180 bottom
+C13-7-8 "1206" "unknown" 5115.95 15738.19 180 bottom
+C13-7-9 "1206" "unknown" 5115.95 17238.19 180 bottom
+C13-7-10 "1206" "unknown" 5115.95 18738.19 180 bottom
+C13-7-11 "1206" "unknown" 5115.95 20238.19 180 bottom
+C13-7-12 "1206" "unknown" 5115.95 21738.19 180 bottom
+C13-7-13 "1206" "unknown" 5115.95 23238.19 180 bottom
+C13-7-14 "1206" "unknown" 5115.95 24738.19 180 bottom
+C13-8-0 "1206" "unknown" 5615.95 3738.19 180 bottom
+C13-8-1 "1206" "unknown" 5615.95 5238.19 180 bottom
+C13-8-2 "1206" "unknown" 5615.95 6738.19 180 bottom
+C13-8-3 "1206" "unknown" 5615.95 8238.19 180 bottom
+C13-8-4 "1206" "unknown" 5615.95 9738.19 180 bottom
+C13-8-5 "1206" "unknown" 5615.95 11238.19 180 bottom
+C13-8-6 "1206" "unknown" 5615.95 12738.19 180 bottom
+C13-8-7 "1206" "unknown" 5615.95 14238.19 180 bottom
+C13-8-8 "1206" "unknown" 5615.95 15738.19 180 bottom
+C13-8-9 "1206" "unknown" 5615.95 17238.19 180 bottom
+C13-8-10 "1206" "unknown" 5615.95 18738.19 180 bottom
+C13-8-11 "1206" "unknown" 5615.95 20238.19 180 bottom
+C13-8-12 "1206" "unknown" 5615.95 21738.19 180 bottom
+C13-8-13 "1206" "unknown" 5615.95 23238.19 180 bottom
+C13-8-14 "1206" "unknown" 5615.95 24738.19 180 bottom
+C13-9-0 "1206" "unknown" 6115.95 3738.19 180 bottom
+C13-9-1 "1206" "unknown" 6115.95 5238.19 180 bottom
+C13-9-2 "1206" "unknown" 6115.95 6738.19 180 bottom
+C13-9-3 "1206" "unknown" 6115.95 8238.19 180 bottom
+C13-9-4 "1206" "unknown" 6115.95 9738.19 180 bottom
+C13-9-5 "1206" "unknown" 6115.95 11238.19 180 bottom
+C13-9-6 "1206" "unknown" 6115.95 12738.19 180 bottom
+C13-9-7 "1206" "unknown" 6115.95 14238.19 180 bottom
+C13-9-8 "1206" "unknown" 6115.95 15738.19 180 bottom
+C13-9-9 "1206" "unknown" 6115.95 17238.19 180 bottom
+C13-9-10 "1206" "unknown" 6115.95 18738.19 180 bottom
+C13-9-11 "1206" "unknown" 6115.95 20238.19 180 bottom
+C13-9-12 "1206" "unknown" 6115.95 21738.19 180 bottom
+C13-9-13 "1206" "unknown" 6115.95 23238.19 180 bottom
+C13-9-14 "1206" "unknown" 6115.95 24738.19 180 bottom
+C13-10-0 "1206" "unknown" 6615.95 3738.19 180 bottom
+C13-10-1 "1206" "unknown" 6615.95 5238.19 180 bottom
+C13-10-2 "1206" "unknown" 6615.95 6738.19 180 bottom
+C13-10-3 "1206" "unknown" 6615.95 8238.19 180 bottom
+C13-10-4 "1206" "unknown" 6615.95 9738.19 180 bottom
+C13-10-5 "1206" "unknown" 6615.95 11238.19 180 bottom
+C13-10-6 "1206" "unknown" 6615.95 12738.19 180 bottom
+C13-10-7 "1206" "unknown" 6615.95 14238.19 180 bottom
+C13-10-8 "1206" "unknown" 6615.95 15738.19 180 bottom
+C13-10-9 "1206" "unknown" 6615.95 17238.19 180 bottom
+C13-10-10 "1206" "unknown" 6615.95 18738.19 180 bottom
+C13-10-11 "1206" "unknown" 6615.95 20238.19 180 bottom
+C13-10-12 "1206" "unknown" 6615.95 21738.19 180 bottom
+C13-10-13 "1206" "unknown" 6615.95 23238.19 180 bottom
+C13-10-14 "1206" "unknown" 6615.95 24738.19 180 bottom
+C13-11-0 "1206" "unknown" 7115.95 3738.19 180 bottom
+C13-11-1 "1206" "unknown" 7115.95 5238.19 180 bottom
+C13-11-2 "1206" "unknown" 7115.95 6738.19 180 bottom
+C13-11-3 "1206" "unknown" 7115.95 8238.19 180 bottom
+C13-11-4 "1206" "unknown" 7115.95 9738.19 180 bottom
+C13-11-5 "1206" "unknown" 7115.95 11238.19 180 bottom
+C13-11-6 "1206" "unknown" 7115.95 12738.19 180 bottom
+C13-11-7 "1206" "unknown" 7115.95 14238.19 180 bottom
+C13-11-8 "1206" "unknown" 7115.95 15738.19 180 bottom
+C13-11-9 "1206" "unknown" 7115.95 17238.19 180 bottom
+C13-11-10 "1206" "unknown" 7115.95 18738.19 180 bottom
+C13-11-11 "1206" "unknown" 7115.95 20238.19 180 bottom
+C13-11-12 "1206" "unknown" 7115.95 21738.19 180 bottom
+C13-11-13 "1206" "unknown" 7115.95 23238.19 180 bottom
+C13-11-14 "1206" "unknown" 7115.95 24738.19 180 bottom
+C13-12-0 "1206" "unknown" 7615.95 3738.19 180 bottom
+C13-12-1 "1206" "unknown" 7615.95 5238.19 180 bottom
+C13-12-2 "1206" "unknown" 7615.95 6738.19 180 bottom
+C13-12-3 "1206" "unknown" 7615.95 8238.19 180 bottom
+C13-12-4 "1206" "unknown" 7615.95 9738.19 180 bottom
+C13-12-5 "1206" "unknown" 7615.95 11238.19 180 bottom
+C13-12-6 "1206" "unknown" 7615.95 12738.19 180 bottom
+C13-12-7 "1206" "unknown" 7615.95 14238.19 180 bottom
+C13-12-8 "1206" "unknown" 7615.95 15738.19 180 bottom
+C13-12-9 "1206" "unknown" 7615.95 17238.19 180 bottom
+C13-12-10 "1206" "unknown" 7615.95 18738.19 180 bottom
+C13-12-11 "1206" "unknown" 7615.95 20238.19 180 bottom
+C13-12-12 "1206" "unknown" 7615.95 21738.19 180 bottom
+C13-12-13 "1206" "unknown" 7615.95 23238.19 180 bottom
+C13-12-14 "1206" "unknown" 7615.95 24738.19 180 bottom
+C13-13-0 "1206" "unknown" 8115.95 3738.19 180 bottom
+C13-13-1 "1206" "unknown" 8115.95 5238.19 180 bottom
+C13-13-2 "1206" "unknown" 8115.95 6738.19 180 bottom
+C13-13-3 "1206" "unknown" 8115.95 8238.19 180 bottom
+C13-13-4 "1206" "unknown" 8115.95 9738.19 180 bottom
+C13-13-5 "1206" "unknown" 8115.95 11238.19 180 bottom
+C13-13-6 "1206" "unknown" 8115.95 12738.19 180 bottom
+C13-13-7 "1206" "unknown" 8115.95 14238.19 180 bottom
+C13-13-8 "1206" "unknown" 8115.95 15738.19 180 bottom
+C13-13-9 "1206" "unknown" 8115.95 17238.19 180 bottom
+C13-13-10 "1206" "unknown" 8115.95 18738.19 180 bottom
+C13-13-11 "1206" "unknown" 8115.95 20238.19 180 bottom
+C13-13-12 "1206" "unknown" 8115.95 21738.19 180 bottom
+C13-13-13 "1206" "unknown" 8115.95 23238.19 180 bottom
+C13-13-14 "1206" "unknown" 8115.95 24738.19 180 bottom
+C13-14-0 "1206" "unknown" 8615.95 3738.19 180 bottom
+C13-14-1 "1206" "unknown" 8615.95 5238.19 180 bottom
+C13-14-2 "1206" "unknown" 8615.95 6738.19 180 bottom
+C13-14-3 "1206" "unknown" 8615.95 8238.19 180 bottom
+C13-14-4 "1206" "unknown" 8615.95 9738.19 180 bottom
+C13-14-5 "1206" "unknown" 8615.95 11238.19 180 bottom
+C13-14-6 "1206" "unknown" 8615.95 12738.19 180 bottom
+C13-14-7 "1206" "unknown" 8615.95 14238.19 180 bottom
+C13-14-8 "1206" "unknown" 8615.95 15738.19 180 bottom
+C13-14-9 "1206" "unknown" 8615.95 17238.19 180 bottom
+C13-14-10 "1206" "unknown" 8615.95 18738.19 180 bottom
+C13-14-11 "1206" "unknown" 8615.95 20238.19 180 bottom
+C13-14-12 "1206" "unknown" 8615.95 21738.19 180 bottom
+C13-14-13 "1206" "unknown" 8615.95 23238.19 180 bottom
+C13-14-14 "1206" "unknown" 8615.95 24738.19 180 bottom
+CONN3-0-0 "CONNECTOR-4-1" "unknown" 2225.00 3600.00 270 top
+CONN3-0-1 "CONNECTOR-4-1" "unknown" 2225 5100 270 top
+CONN3-0-2 "CONNECTOR-4-1" "unknown" 2225 6600 270 top
+CONN3-0-3 "CONNECTOR-4-1" "unknown" 2225 8100 270 top
+CONN3-0-4 "CONNECTOR-4-1" "unknown" 2225 9600 270 top
+CONN3-0-5 "CONNECTOR-4-1" "unknown" 2225 11100 270 top
+CONN3-0-6 "CONNECTOR-4-1" "unknown" 2225 12600 270 top
+CONN3-0-7 "CONNECTOR-4-1" "unknown" 2225 14100 270 top
+CONN3-0-8 "CONNECTOR-4-1" "unknown" 2225 15600 270 top
+CONN3-0-9 "CONNECTOR-4-1" "unknown" 2225 17100 270 top
+CONN3-0-10 "CONNECTOR-4-1" "unknown" 2225 18600 270 top
+CONN3-0-11 "CONNECTOR-4-1" "unknown" 2225 20100 270 top
+CONN3-0-12 "CONNECTOR-4-1" "unknown" 2225 21600 270 top
+CONN3-0-13 "CONNECTOR-4-1" "unknown" 2225 23100 270 top
+CONN3-0-14 "CONNECTOR-4-1" "unknown" 2225 24600 270 top
+CONN3-1-0 "CONNECTOR-4-1" "unknown" 2725 3600 270 top
+CONN3-1-1 "CONNECTOR-4-1" "unknown" 2725 5100 270 top
+CONN3-1-2 "CONNECTOR-4-1" "unknown" 2725 6600 270 top
+CONN3-1-3 "CONNECTOR-4-1" "unknown" 2725 8100 270 top
+CONN3-1-4 "CONNECTOR-4-1" "unknown" 2725 9600 270 top
+CONN3-1-5 "CONNECTOR-4-1" "unknown" 2725 11100 270 top
+CONN3-1-6 "CONNECTOR-4-1" "unknown" 2725 12600 270 top
+CONN3-1-7 "CONNECTOR-4-1" "unknown" 2725 14100 270 top
+CONN3-1-8 "CONNECTOR-4-1" "unknown" 2725 15600 270 top
+CONN3-1-9 "CONNECTOR-4-1" "unknown" 2725 17100 270 top
+CONN3-1-10 "CONNECTOR-4-1" "unknown" 2725 18600 270 top
+CONN3-1-11 "CONNECTOR-4-1" "unknown" 2725 20100 270 top
+CONN3-1-12 "CONNECTOR-4-1" "unknown" 2725 21600 270 top
+CONN3-1-13 "CONNECTOR-4-1" "unknown" 2725 23100 270 top
+CONN3-1-14 "CONNECTOR-4-1" "unknown" 2725 24600 270 top
+CONN3-2-0 "CONNECTOR-4-1" "unknown" 3225 3600 270 top
+CONN3-2-1 "CONNECTOR-4-1" "unknown" 3225 5100 270 top
+CONN3-2-2 "CONNECTOR-4-1" "unknown" 3225 6600 270 top
+CONN3-2-3 "CONNECTOR-4-1" "unknown" 3225 8100 270 top
+CONN3-2-4 "CONNECTOR-4-1" "unknown" 3225 9600 270 top
+CONN3-2-5 "CONNECTOR-4-1" "unknown" 3225 11100 270 top
+CONN3-2-6 "CONNECTOR-4-1" "unknown" 3225 12600 270 top
+CONN3-2-7 "CONNECTOR-4-1" "unknown" 3225 14100 270 top
+CONN3-2-8 "CONNECTOR-4-1" "unknown" 3225 15600 270 top
+CONN3-2-9 "CONNECTOR-4-1" "unknown" 3225 17100 270 top
+CONN3-2-10 "CONNECTOR-4-1" "unknown" 3225 18600 270 top
+CONN3-2-11 "CONNECTOR-4-1" "unknown" 3225 20100 270 top
+CONN3-2-12 "CONNECTOR-4-1" "unknown" 3225 21600 270 top
+CONN3-2-13 "CONNECTOR-4-1" "unknown" 3225 23100 270 top
+CONN3-2-14 "CONNECTOR-4-1" "unknown" 3225 24600 270 top
+CONN3-3-0 "CONNECTOR-4-1" "unknown" 3725 3600 270 top
+CONN3-3-1 "CONNECTOR-4-1" "unknown" 3725 5100 270 top
+CONN3-3-2 "CONNECTOR-4-1" "unknown" 3725 6600 270 top
+CONN3-3-3 "CONNECTOR-4-1" "unknown" 3725 8100 270 top
+CONN3-3-4 "CONNECTOR-4-1" "unknown" 3725 9600 270 top
+CONN3-3-5 "CONNECTOR-4-1" "unknown" 3725 11100 270 top
+CONN3-3-6 "CONNECTOR-4-1" "unknown" 3725 12600 270 top
+CONN3-3-7 "CONNECTOR-4-1" "unknown" 3725 14100 270 top
+CONN3-3-8 "CONNECTOR-4-1" "unknown" 3725 15600 270 top
+CONN3-3-9 "CONNECTOR-4-1" "unknown" 3725 17100 270 top
+CONN3-3-10 "CONNECTOR-4-1" "unknown" 3725 18600 270 top
+CONN3-3-11 "CONNECTOR-4-1" "unknown" 3725 20100 270 top
+CONN3-3-12 "CONNECTOR-4-1" "unknown" 3725 21600 270 top
+CONN3-3-13 "CONNECTOR-4-1" "unknown" 3725 23100 270 top
+CONN3-3-14 "CONNECTOR-4-1" "unknown" 3725 24600 270 top
+CONN3-4-0 "CONNECTOR-4-1" "unknown" 4225 3600 270 top
+CONN3-4-1 "CONNECTOR-4-1" "unknown" 4225 5100 270 top
+CONN3-4-2 "CONNECTOR-4-1" "unknown" 4225 6600 270 top
+CONN3-4-3 "CONNECTOR-4-1" "unknown" 4225 8100 270 top
+CONN3-4-4 "CONNECTOR-4-1" "unknown" 4225 9600 270 top
+CONN3-4-5 "CONNECTOR-4-1" "unknown" 4225 11100 270 top
+CONN3-4-6 "CONNECTOR-4-1" "unknown" 4225 12600 270 top
+CONN3-4-7 "CONNECTOR-4-1" "unknown" 4225 14100 270 top
+CONN3-4-8 "CONNECTOR-4-1" "unknown" 4225 15600 270 top
+CONN3-4-9 "CONNECTOR-4-1" "unknown" 4225 17100 270 top
+CONN3-4-10 "CONNECTOR-4-1" "unknown" 4225 18600 270 top
+CONN3-4-11 "CONNECTOR-4-1" "unknown" 4225 20100 270 top
+CONN3-4-12 "CONNECTOR-4-1" "unknown" 4225 21600 270 top
+CONN3-4-13 "CONNECTOR-4-1" "unknown" 4225 23100 270 top
+CONN3-4-14 "CONNECTOR-4-1" "unknown" 4225 24600 270 top
+CONN3-5-0 "CONNECTOR-4-1" "unknown" 4725 3600 270 top
+CONN3-5-1 "CONNECTOR-4-1" "unknown" 4725 5100 270 top
+CONN3-5-2 "CONNECTOR-4-1" "unknown" 4725 6600 270 top
+CONN3-5-3 "CONNECTOR-4-1" "unknown" 4725 8100 270 top
+CONN3-5-4 "CONNECTOR-4-1" "unknown" 4725 9600 270 top
+CONN3-5-5 "CONNECTOR-4-1" "unknown" 4725 11100 270 top
+CONN3-5-6 "CONNECTOR-4-1" "unknown" 4725 12600 270 top
+CONN3-5-7 "CONNECTOR-4-1" "unknown" 4725 14100 270 top
+CONN3-5-8 "CONNECTOR-4-1" "unknown" 4725 15600 270 top
+CONN3-5-9 "CONNECTOR-4-1" "unknown" 4725 17100 270 top
+CONN3-5-10 "CONNECTOR-4-1" "unknown" 4725 18600 270 top
+CONN3-5-11 "CONNECTOR-4-1" "unknown" 4725 20100 270 top
+CONN3-5-12 "CONNECTOR-4-1" "unknown" 4725 21600 270 top
+CONN3-5-13 "CONNECTOR-4-1" "unknown" 4725 23100 270 top
+CONN3-5-14 "CONNECTOR-4-1" "unknown" 4725 24600 270 top
+CONN3-6-0 "CONNECTOR-4-1" "unknown" 5225 3600 270 top
+CONN3-6-1 "CONNECTOR-4-1" "unknown" 5225 5100 270 top
+CONN3-6-2 "CONNECTOR-4-1" "unknown" 5225 6600 270 top
+CONN3-6-3 "CONNECTOR-4-1" "unknown" 5225 8100 270 top
+CONN3-6-4 "CONNECTOR-4-1" "unknown" 5225 9600 270 top
+CONN3-6-5 "CONNECTOR-4-1" "unknown" 5225 11100 270 top
+CONN3-6-6 "CONNECTOR-4-1" "unknown" 5225 12600 270 top
+CONN3-6-7 "CONNECTOR-4-1" "unknown" 5225 14100 270 top
+CONN3-6-8 "CONNECTOR-4-1" "unknown" 5225 15600 270 top
+CONN3-6-9 "CONNECTOR-4-1" "unknown" 5225 17100 270 top
+CONN3-6-10 "CONNECTOR-4-1" "unknown" 5225 18600 270 top
+CONN3-6-11 "CONNECTOR-4-1" "unknown" 5225 20100 270 top
+CONN3-6-12 "CONNECTOR-4-1" "unknown" 5225 21600 270 top
+CONN3-6-13 "CONNECTOR-4-1" "unknown" 5225 23100 270 top
+CONN3-6-14 "CONNECTOR-4-1" "unknown" 5225 24600 270 top
+CONN3-7-0 "CONNECTOR-4-1" "unknown" 5725 3600 270 top
+CONN3-7-1 "CONNECTOR-4-1" "unknown" 5725 5100 270 top
+CONN3-7-2 "CONNECTOR-4-1" "unknown" 5725 6600 270 top
+CONN3-7-3 "CONNECTOR-4-1" "unknown" 5725 8100 270 top
+CONN3-7-4 "CONNECTOR-4-1" "unknown" 5725 9600 270 top
+CONN3-7-5 "CONNECTOR-4-1" "unknown" 5725 11100 270 top
+CONN3-7-6 "CONNECTOR-4-1" "unknown" 5725 12600 270 top
+CONN3-7-7 "CONNECTOR-4-1" "unknown" 5725 14100 270 top
+CONN3-7-8 "CONNECTOR-4-1" "unknown" 5725 15600 270 top
+CONN3-7-9 "CONNECTOR-4-1" "unknown" 5725 17100 270 top
+CONN3-7-10 "CONNECTOR-4-1" "unknown" 5725 18600 270 top
+CONN3-7-11 "CONNECTOR-4-1" "unknown" 5725 20100 270 top
+CONN3-7-12 "CONNECTOR-4-1" "unknown" 5725 21600 270 top
+CONN3-7-13 "CONNECTOR-4-1" "unknown" 5725 23100 270 top
+CONN3-7-14 "CONNECTOR-4-1" "unknown" 5725 24600 270 top
+CONN3-8-0 "CONNECTOR-4-1" "unknown" 6225 3600 270 top
+CONN3-8-1 "CONNECTOR-4-1" "unknown" 6225 5100 270 top
+CONN3-8-2 "CONNECTOR-4-1" "unknown" 6225 6600 270 top
+CONN3-8-3 "CONNECTOR-4-1" "unknown" 6225 8100 270 top
+CONN3-8-4 "CONNECTOR-4-1" "unknown" 6225 9600 270 top
+CONN3-8-5 "CONNECTOR-4-1" "unknown" 6225 11100 270 top
+CONN3-8-6 "CONNECTOR-4-1" "unknown" 6225 12600 270 top
+CONN3-8-7 "CONNECTOR-4-1" "unknown" 6225 14100 270 top
+CONN3-8-8 "CONNECTOR-4-1" "unknown" 6225 15600 270 top
+CONN3-8-9 "CONNECTOR-4-1" "unknown" 6225 17100 270 top
+CONN3-8-10 "CONNECTOR-4-1" "unknown" 6225 18600 270 top
+CONN3-8-11 "CONNECTOR-4-1" "unknown" 6225 20100 270 top
+CONN3-8-12 "CONNECTOR-4-1" "unknown" 6225 21600 270 top
+CONN3-8-13 "CONNECTOR-4-1" "unknown" 6225 23100 270 top
+CONN3-8-14 "CONNECTOR-4-1" "unknown" 6225 24600 270 top
+CONN3-9-0 "CONNECTOR-4-1" "unknown" 6725 3600 270 top
+CONN3-9-1 "CONNECTOR-4-1" "unknown" 6725 5100 270 top
+CONN3-9-2 "CONNECTOR-4-1" "unknown" 6725 6600 270 top
+CONN3-9-3 "CONNECTOR-4-1" "unknown" 6725 8100 270 top
+CONN3-9-4 "CONNECTOR-4-1" "unknown" 6725 9600 270 top
+CONN3-9-5 "CONNECTOR-4-1" "unknown" 6725 11100 270 top
+CONN3-9-6 "CONNECTOR-4-1" "unknown" 6725 12600 270 top
+CONN3-9-7 "CONNECTOR-4-1" "unknown" 6725 14100 270 top
+CONN3-9-8 "CONNECTOR-4-1" "unknown" 6725 15600 270 top
+CONN3-9-9 "CONNECTOR-4-1" "unknown" 6725 17100 270 top
+CONN3-9-10 "CONNECTOR-4-1" "unknown" 6725 18600 270 top
+CONN3-9-11 "CONNECTOR-4-1" "unknown" 6725 20100 270 top
+CONN3-9-12 "CONNECTOR-4-1" "unknown" 6725 21600 270 top
+CONN3-9-13 "CONNECTOR-4-1" "unknown" 6725 23100 270 top
+CONN3-9-14 "CONNECTOR-4-1" "unknown" 6725 24600 270 top
+CONN3-10-0 "CONNECTOR-4-1" "unknown" 7225 3600 270 top
+CONN3-10-1 "CONNECTOR-4-1" "unknown" 7225 5100 270 top
+CONN3-10-2 "CONNECTOR-4-1" "unknown" 7225 6600 270 top
+CONN3-10-3 "CONNECTOR-4-1" "unknown" 7225 8100 270 top
+CONN3-10-4 "CONNECTOR-4-1" "unknown" 7225 9600 270 top
+CONN3-10-5 "CONNECTOR-4-1" "unknown" 7225 11100 270 top
+CONN3-10-6 "CONNECTOR-4-1" "unknown" 7225 12600 270 top
+CONN3-10-7 "CONNECTOR-4-1" "unknown" 7225 14100 270 top
+CONN3-10-8 "CONNECTOR-4-1" "unknown" 7225 15600 270 top
+CONN3-10-9 "CONNECTOR-4-1" "unknown" 7225 17100 270 top
+CONN3-10-10 "CONNECTOR-4-1" "unknown" 7225 18600 270 top
+CONN3-10-11 "CONNECTOR-4-1" "unknown" 7225 20100 270 top
+CONN3-10-12 "CONNECTOR-4-1" "unknown" 7225 21600 270 top
+CONN3-10-13 "CONNECTOR-4-1" "unknown" 7225 23100 270 top
+CONN3-10-14 "CONNECTOR-4-1" "unknown" 7225 24600 270 top
+CONN3-11-0 "CONNECTOR-4-1" "unknown" 7725 3600 270 top
+CONN3-11-1 "CONNECTOR-4-1" "unknown" 7725 5100 270 top
+CONN3-11-2 "CONNECTOR-4-1" "unknown" 7725 6600 270 top
+CONN3-11-3 "CONNECTOR-4-1" "unknown" 7725 8100 270 top
+CONN3-11-4 "CONNECTOR-4-1" "unknown" 7725 9600 270 top
+CONN3-11-5 "CONNECTOR-4-1" "unknown" 7725 11100 270 top
+CONN3-11-6 "CONNECTOR-4-1" "unknown" 7725 12600 270 top
+CONN3-11-7 "CONNECTOR-4-1" "unknown" 7725 14100 270 top
+CONN3-11-8 "CONNECTOR-4-1" "unknown" 7725 15600 270 top
+CONN3-11-9 "CONNECTOR-4-1" "unknown" 7725 17100 270 top
+CONN3-11-10 "CONNECTOR-4-1" "unknown" 7725 18600 270 top
+CONN3-11-11 "CONNECTOR-4-1" "unknown" 7725 20100 270 top
+CONN3-11-12 "CONNECTOR-4-1" "unknown" 7725 21600 270 top
+CONN3-11-13 "CONNECTOR-4-1" "unknown" 7725 23100 270 top
+CONN3-11-14 "CONNECTOR-4-1" "unknown" 7725 24600 270 top
+CONN3-12-0 "CONNECTOR-4-1" "unknown" 8225 3600 270 top
+CONN3-12-1 "CONNECTOR-4-1" "unknown" 8225 5100 270 top
+CONN3-12-2 "CONNECTOR-4-1" "unknown" 8225 6600 270 top
+CONN3-12-3 "CONNECTOR-4-1" "unknown" 8225 8100 270 top
+CONN3-12-4 "CONNECTOR-4-1" "unknown" 8225 9600 270 top
+CONN3-12-5 "CONNECTOR-4-1" "unknown" 8225 11100 270 top
+CONN3-12-6 "CONNECTOR-4-1" "unknown" 8225 12600 270 top
+CONN3-12-7 "CONNECTOR-4-1" "unknown" 8225 14100 270 top
+CONN3-12-8 "CONNECTOR-4-1" "unknown" 8225 15600 270 top
+CONN3-12-9 "CONNECTOR-4-1" "unknown" 8225 17100 270 top
+CONN3-12-10 "CONNECTOR-4-1" "unknown" 8225 18600 270 top
+CONN3-12-11 "CONNECTOR-4-1" "unknown" 8225 20100 270 top
+CONN3-12-12 "CONNECTOR-4-1" "unknown" 8225 21600 270 top
+CONN3-12-13 "CONNECTOR-4-1" "unknown" 8225 23100 270 top
+CONN3-12-14 "CONNECTOR-4-1" "unknown" 8225 24600 270 top
+CONN3-13-0 "CONNECTOR-4-1" "unknown" 8725 3600 270 top
+CONN3-13-1 "CONNECTOR-4-1" "unknown" 8725 5100 270 top
+CONN3-13-2 "CONNECTOR-4-1" "unknown" 8725 6600 270 top
+CONN3-13-3 "CONNECTOR-4-1" "unknown" 8725 8100 270 top
+CONN3-13-4 "CONNECTOR-4-1" "unknown" 8725 9600 270 top
+CONN3-13-5 "CONNECTOR-4-1" "unknown" 8725 11100 270 top
+CONN3-13-6 "CONNECTOR-4-1" "unknown" 8725 12600 270 top
+CONN3-13-7 "CONNECTOR-4-1" "unknown" 8725 14100 270 top
+CONN3-13-8 "CONNECTOR-4-1" "unknown" 8725 15600 270 top
+CONN3-13-9 "CONNECTOR-4-1" "unknown" 8725 17100 270 top
+CONN3-13-10 "CONNECTOR-4-1" "unknown" 8725 18600 270 top
+CONN3-13-11 "CONNECTOR-4-1" "unknown" 8725 20100 270 top
+CONN3-13-12 "CONNECTOR-4-1" "unknown" 8725 21600 270 top
+CONN3-13-13 "CONNECTOR-4-1" "unknown" 8725 23100 270 top
+CONN3-13-14 "CONNECTOR-4-1" "unknown" 8725 24600 270 top
+CONN3-14-0 "CONNECTOR-4-1" "unknown" 9225 3600 270 top
+CONN3-14-1 "CONNECTOR-4-1" "unknown" 9225 5100 270 top
+CONN3-14-2 "CONNECTOR-4-1" "unknown" 9225 6600 270 top
+CONN3-14-3 "CONNECTOR-4-1" "unknown" 9225 8100 270 top
+CONN3-14-4 "CONNECTOR-4-1" "unknown" 9225 9600 270 top
+CONN3-14-5 "CONNECTOR-4-1" "unknown" 9225 11100 270 top
+CONN3-14-6 "CONNECTOR-4-1" "unknown" 9225 12600 270 top
+CONN3-14-7 "CONNECTOR-4-1" "unknown" 9225 14100 270 top
+CONN3-14-8 "CONNECTOR-4-1" "unknown" 9225 15600 270 top
+CONN3-14-9 "CONNECTOR-4-1" "unknown" 9225 17100 270 top
+CONN3-14-10 "CONNECTOR-4-1" "unknown" 9225 18600 270 top
+CONN3-14-11 "CONNECTOR-4-1" "unknown" 9225 20100 270 top
+CONN3-14-12 "CONNECTOR-4-1" "unknown" 9225 21600 270 top
+CONN3-14-13 "CONNECTOR-4-1" "unknown" 9225 23100 270 top
+CONN3-14-14 "CONNECTOR-4-1" "unknown" 9225 24600 270 top
+C12-0-0 "1206" "unknown" 1438.19 3834.05 270 bottom
+C12-0-1 "1206" "unknown" 1438.19 5334.05 270 bottom
+C12-0-2 "1206" "unknown" 1438.19 6834.05 270 bottom
+C12-0-3 "1206" "unknown" 1438.19 8334.05 270 bottom
+C12-0-4 "1206" "unknown" 1438.19 9834.05 270 bottom
+C12-0-5 "1206" "unknown" 1438.19 11334.05 270 bottom
+C12-0-6 "1206" "unknown" 1438.19 12834.05 270 bottom
+C12-0-7 "1206" "unknown" 1438.19 14334.05 270 bottom
+C12-0-8 "1206" "unknown" 1438.19 15834.05 270 bottom
+C12-0-9 "1206" "unknown" 1438.19 17334.05 270 bottom
+C12-0-10 "1206" "unknown" 1438.19 18834.05 270 bottom
+C12-0-11 "1206" "unknown" 1438.19 20334.05 270 bottom
+C12-0-12 "1206" "unknown" 1438.19 21834.05 270 bottom
+C12-0-13 "1206" "unknown" 1438.19 23334.05 270 bottom
+C12-0-14 "1206" "unknown" 1438.19 24834.05 270 bottom
+C12-1-0 "1206" "unknown" 1938.19 3834.05 270 bottom
+C12-1-1 "1206" "unknown" 1938.19 5334.05 270 bottom
+C12-1-2 "1206" "unknown" 1938.19 6834.05 270 bottom
+C12-1-3 "1206" "unknown" 1938.19 8334.05 270 bottom
+C12-1-4 "1206" "unknown" 1938.19 9834.05 270 bottom
+C12-1-5 "1206" "unknown" 1938.19 11334.05 270 bottom
+C12-1-6 "1206" "unknown" 1938.19 12834.05 270 bottom
+C12-1-7 "1206" "unknown" 1938.19 14334.05 270 bottom
+C12-1-8 "1206" "unknown" 1938.19 15834.05 270 bottom
+C12-1-9 "1206" "unknown" 1938.19 17334.05 270 bottom
+C12-1-10 "1206" "unknown" 1938.19 18834.05 270 bottom
+C12-1-11 "1206" "unknown" 1938.19 20334.05 270 bottom
+C12-1-12 "1206" "unknown" 1938.19 21834.05 270 bottom
+C12-1-13 "1206" "unknown" 1938.19 23334.05 270 bottom
+C12-1-14 "1206" "unknown" 1938.19 24834.05 270 bottom
+C12-2-0 "1206" "unknown" 2438.19 3834.05 270 bottom
+C12-2-1 "1206" "unknown" 2438.19 5334.05 270 bottom
+C12-2-2 "1206" "unknown" 2438.19 6834.05 270 bottom
+C12-2-3 "1206" "unknown" 2438.19 8334.05 270 bottom
+C12-2-4 "1206" "unknown" 2438.19 9834.05 270 bottom
+C12-2-5 "1206" "unknown" 2438.19 11334.05 270 bottom
+C12-2-6 "1206" "unknown" 2438.19 12834.05 270 bottom
+C12-2-7 "1206" "unknown" 2438.19 14334.05 270 bottom
+C12-2-8 "1206" "unknown" 2438.19 15834.05 270 bottom
+C12-2-9 "1206" "unknown" 2438.19 17334.05 270 bottom
+C12-2-10 "1206" "unknown" 2438.19 18834.05 270 bottom
+C12-2-11 "1206" "unknown" 2438.19 20334.05 270 bottom
+C12-2-12 "1206" "unknown" 2438.19 21834.05 270 bottom
+C12-2-13 "1206" "unknown" 2438.19 23334.05 270 bottom
+C12-2-14 "1206" "unknown" 2438.19 24834.05 270 bottom
+C12-3-0 "1206" "unknown" 2938.19 3834.05 270 bottom
+C12-3-1 "1206" "unknown" 2938.19 5334.05 270 bottom
+C12-3-2 "1206" "unknown" 2938.19 6834.05 270 bottom
+C12-3-3 "1206" "unknown" 2938.19 8334.05 270 bottom
+C12-3-4 "1206" "unknown" 2938.19 9834.05 270 bottom
+C12-3-5 "1206" "unknown" 2938.19 11334.05 270 bottom
+C12-3-6 "1206" "unknown" 2938.19 12834.05 270 bottom
+C12-3-7 "1206" "unknown" 2938.19 14334.05 270 bottom
+C12-3-8 "1206" "unknown" 2938.19 15834.05 270 bottom
+C12-3-9 "1206" "unknown" 2938.19 17334.05 270 bottom
+C12-3-10 "1206" "unknown" 2938.19 18834.05 270 bottom
+C12-3-11 "1206" "unknown" 2938.19 20334.05 270 bottom
+C12-3-12 "1206" "unknown" 2938.19 21834.05 270 bottom
+C12-3-13 "1206" "unknown" 2938.19 23334.05 270 bottom
+C12-3-14 "1206" "unknown" 2938.19 24834.05 270 bottom
+C12-4-0 "1206" "unknown" 3438.19 3834.05 270 bottom
+C12-4-1 "1206" "unknown" 3438.19 5334.05 270 bottom
+C12-4-2 "1206" "unknown" 3438.19 6834.05 270 bottom
+C12-4-3 "1206" "unknown" 3438.19 8334.05 270 bottom
+C12-4-4 "1206" "unknown" 3438.19 9834.05 270 bottom
+C12-4-5 "1206" "unknown" 3438.19 11334.05 270 bottom
+C12-4-6 "1206" "unknown" 3438.19 12834.05 270 bottom
+C12-4-7 "1206" "unknown" 3438.19 14334.05 270 bottom
+C12-4-8 "1206" "unknown" 3438.19 15834.05 270 bottom
+C12-4-9 "1206" "unknown" 3438.19 17334.05 270 bottom
+C12-4-10 "1206" "unknown" 3438.19 18834.05 270 bottom
+C12-4-11 "1206" "unknown" 3438.19 20334.05 270 bottom
+C12-4-12 "1206" "unknown" 3438.19 21834.05 270 bottom
+C12-4-13 "1206" "unknown" 3438.19 23334.05 270 bottom
+C12-4-14 "1206" "unknown" 3438.19 24834.05 270 bottom
+C12-5-0 "1206" "unknown" 3938.19 3834.05 270 bottom
+C12-5-1 "1206" "unknown" 3938.19 5334.05 270 bottom
+C12-5-2 "1206" "unknown" 3938.19 6834.05 270 bottom
+C12-5-3 "1206" "unknown" 3938.19 8334.05 270 bottom
+C12-5-4 "1206" "unknown" 3938.19 9834.05 270 bottom
+C12-5-5 "1206" "unknown" 3938.19 11334.05 270 bottom
+C12-5-6 "1206" "unknown" 3938.19 12834.05 270 bottom
+C12-5-7 "1206" "unknown" 3938.19 14334.05 270 bottom
+C12-5-8 "1206" "unknown" 3938.19 15834.05 270 bottom
+C12-5-9 "1206" "unknown" 3938.19 17334.05 270 bottom
+C12-5-10 "1206" "unknown" 3938.19 18834.05 270 bottom
+C12-5-11 "1206" "unknown" 3938.19 20334.05 270 bottom
+C12-5-12 "1206" "unknown" 3938.19 21834.05 270 bottom
+C12-5-13 "1206" "unknown" 3938.19 23334.05 270 bottom
+C12-5-14 "1206" "unknown" 3938.19 24834.05 270 bottom
+C12-6-0 "1206" "unknown" 4438.19 3834.05 270 bottom
+C12-6-1 "1206" "unknown" 4438.19 5334.05 270 bottom
+C12-6-2 "1206" "unknown" 4438.19 6834.05 270 bottom
+C12-6-3 "1206" "unknown" 4438.19 8334.05 270 bottom
+C12-6-4 "1206" "unknown" 4438.19 9834.05 270 bottom
+C12-6-5 "1206" "unknown" 4438.19 11334.05 270 bottom
+C12-6-6 "1206" "unknown" 4438.19 12834.05 270 bottom
+C12-6-7 "1206" "unknown" 4438.19 14334.05 270 bottom
+C12-6-8 "1206" "unknown" 4438.19 15834.05 270 bottom
+C12-6-9 "1206" "unknown" 4438.19 17334.05 270 bottom
+C12-6-10 "1206" "unknown" 4438.19 18834.05 270 bottom
+C12-6-11 "1206" "unknown" 4438.19 20334.05 270 bottom
+C12-6-12 "1206" "unknown" 4438.19 21834.05 270 bottom
+C12-6-13 "1206" "unknown" 4438.19 23334.05 270 bottom
+C12-6-14 "1206" "unknown" 4438.19 24834.05 270 bottom
+C12-7-0 "1206" "unknown" 4938.19 3834.05 270 bottom
+C12-7-1 "1206" "unknown" 4938.19 5334.05 270 bottom
+C12-7-2 "1206" "unknown" 4938.19 6834.05 270 bottom
+C12-7-3 "1206" "unknown" 4938.19 8334.05 270 bottom
+C12-7-4 "1206" "unknown" 4938.19 9834.05 270 bottom
+C12-7-5 "1206" "unknown" 4938.19 11334.05 270 bottom
+C12-7-6 "1206" "unknown" 4938.19 12834.05 270 bottom
+C12-7-7 "1206" "unknown" 4938.19 14334.05 270 bottom
+C12-7-8 "1206" "unknown" 4938.19 15834.05 270 bottom
+C12-7-9 "1206" "unknown" 4938.19 17334.05 270 bottom
+C12-7-10 "1206" "unknown" 4938.19 18834.05 270 bottom
+C12-7-11 "1206" "unknown" 4938.19 20334.05 270 bottom
+C12-7-12 "1206" "unknown" 4938.19 21834.05 270 bottom
+C12-7-13 "1206" "unknown" 4938.19 23334.05 270 bottom
+C12-7-14 "1206" "unknown" 4938.19 24834.05 270 bottom
+C12-8-0 "1206" "unknown" 5438.19 3834.05 270 bottom
+C12-8-1 "1206" "unknown" 5438.19 5334.05 270 bottom
+C12-8-2 "1206" "unknown" 5438.19 6834.05 270 bottom
+C12-8-3 "1206" "unknown" 5438.19 8334.05 270 bottom
+C12-8-4 "1206" "unknown" 5438.19 9834.05 270 bottom
+C12-8-5 "1206" "unknown" 5438.19 11334.05 270 bottom
+C12-8-6 "1206" "unknown" 5438.19 12834.05 270 bottom
+C12-8-7 "1206" "unknown" 5438.19 14334.05 270 bottom
+C12-8-8 "1206" "unknown" 5438.19 15834.05 270 bottom
+C12-8-9 "1206" "unknown" 5438.19 17334.05 270 bottom
+C12-8-10 "1206" "unknown" 5438.19 18834.05 270 bottom
+C12-8-11 "1206" "unknown" 5438.19 20334.05 270 bottom
+C12-8-12 "1206" "unknown" 5438.19 21834.05 270 bottom
+C12-8-13 "1206" "unknown" 5438.19 23334.05 270 bottom
+C12-8-14 "1206" "unknown" 5438.19 24834.05 270 bottom
+C12-9-0 "1206" "unknown" 5938.19 3834.05 270 bottom
+C12-9-1 "1206" "unknown" 5938.19 5334.05 270 bottom
+C12-9-2 "1206" "unknown" 5938.19 6834.05 270 bottom
+C12-9-3 "1206" "unknown" 5938.19 8334.05 270 bottom
+C12-9-4 "1206" "unknown" 5938.19 9834.05 270 bottom
+C12-9-5 "1206" "unknown" 5938.19 11334.05 270 bottom
+C12-9-6 "1206" "unknown" 5938.19 12834.05 270 bottom
+C12-9-7 "1206" "unknown" 5938.19 14334.05 270 bottom
+C12-9-8 "1206" "unknown" 5938.19 15834.05 270 bottom
+C12-9-9 "1206" "unknown" 5938.19 17334.05 270 bottom
+C12-9-10 "1206" "unknown" 5938.19 18834.05 270 bottom
+C12-9-11 "1206" "unknown" 5938.19 20334.05 270 bottom
+C12-9-12 "1206" "unknown" 5938.19 21834.05 270 bottom
+C12-9-13 "1206" "unknown" 5938.19 23334.05 270 bottom
+C12-9-14 "1206" "unknown" 5938.19 24834.05 270 bottom
+C12-10-0 "1206" "unknown" 6438.19 3834.05 270 bottom
+C12-10-1 "1206" "unknown" 6438.19 5334.05 270 bottom
+C12-10-2 "1206" "unknown" 6438.19 6834.05 270 bottom
+C12-10-3 "1206" "unknown" 6438.19 8334.05 270 bottom
+C12-10-4 "1206" "unknown" 6438.19 9834.05 270 bottom
+C12-10-5 "1206" "unknown" 6438.19 11334.05 270 bottom
+C12-10-6 "1206" "unknown" 6438.19 12834.05 270 bottom
+C12-10-7 "1206" "unknown" 6438.19 14334.05 270 bottom
+C12-10-8 "1206" "unknown" 6438.19 15834.05 270 bottom
+C12-10-9 "1206" "unknown" 6438.19 17334.05 270 bottom
+C12-10-10 "1206" "unknown" 6438.19 18834.05 270 bottom
+C12-10-11 "1206" "unknown" 6438.19 20334.05 270 bottom
+C12-10-12 "1206" "unknown" 6438.19 21834.05 270 bottom
+C12-10-13 "1206" "unknown" 6438.19 23334.05 270 bottom
+C12-10-14 "1206" "unknown" 6438.19 24834.05 270 bottom
+C12-11-0 "1206" "unknown" 6938.19 3834.05 270 bottom
+C12-11-1 "1206" "unknown" 6938.19 5334.05 270 bottom
+C12-11-2 "1206" "unknown" 6938.19 6834.05 270 bottom
+C12-11-3 "1206" "unknown" 6938.19 8334.05 270 bottom
+C12-11-4 "1206" "unknown" 6938.19 9834.05 270 bottom
+C12-11-5 "1206" "unknown" 6938.19 11334.05 270 bottom
+C12-11-6 "1206" "unknown" 6938.19 12834.05 270 bottom
+C12-11-7 "1206" "unknown" 6938.19 14334.05 270 bottom
+C12-11-8 "1206" "unknown" 6938.19 15834.05 270 bottom
+C12-11-9 "1206" "unknown" 6938.19 17334.05 270 bottom
+C12-11-10 "1206" "unknown" 6938.19 18834.05 270 bottom
+C12-11-11 "1206" "unknown" 6938.19 20334.05 270 bottom
+C12-11-12 "1206" "unknown" 6938.19 21834.05 270 bottom
+C12-11-13 "1206" "unknown" 6938.19 23334.05 270 bottom
+C12-11-14 "1206" "unknown" 6938.19 24834.05 270 bottom
+C12-12-0 "1206" "unknown" 7438.19 3834.05 270 bottom
+C12-12-1 "1206" "unknown" 7438.19 5334.05 270 bottom
+C12-12-2 "1206" "unknown" 7438.19 6834.05 270 bottom
+C12-12-3 "1206" "unknown" 7438.19 8334.05 270 bottom
+C12-12-4 "1206" "unknown" 7438.19 9834.05 270 bottom
+C12-12-5 "1206" "unknown" 7438.19 11334.05 270 bottom
+C12-12-6 "1206" "unknown" 7438.19 12834.05 270 bottom
+C12-12-7 "1206" "unknown" 7438.19 14334.05 270 bottom
+C12-12-8 "1206" "unknown" 7438.19 15834.05 270 bottom
+C12-12-9 "1206" "unknown" 7438.19 17334.05 270 bottom
+C12-12-10 "1206" "unknown" 7438.19 18834.05 270 bottom
+C12-12-11 "1206" "unknown" 7438.19 20334.05 270 bottom
+C12-12-12 "1206" "unknown" 7438.19 21834.05 270 bottom
+C12-12-13 "1206" "unknown" 7438.19 23334.05 270 bottom
+C12-12-14 "1206" "unknown" 7438.19 24834.05 270 bottom
+C12-13-0 "1206" "unknown" 7938.19 3834.05 270 bottom
+C12-13-1 "1206" "unknown" 7938.19 5334.05 270 bottom
+C12-13-2 "1206" "unknown" 7938.19 6834.05 270 bottom
+C12-13-3 "1206" "unknown" 7938.19 8334.05 270 bottom
+C12-13-4 "1206" "unknown" 7938.19 9834.05 270 bottom
+C12-13-5 "1206" "unknown" 7938.19 11334.05 270 bottom
+C12-13-6 "1206" "unknown" 7938.19 12834.05 270 bottom
+C12-13-7 "1206" "unknown" 7938.19 14334.05 270 bottom
+C12-13-8 "1206" "unknown" 7938.19 15834.05 270 bottom
+C12-13-9 "1206" "unknown" 7938.19 17334.05 270 bottom
+C12-13-10 "1206" "unknown" 7938.19 18834.05 270 bottom
+C12-13-11 "1206" "unknown" 7938.19 20334.05 270 bottom
+C12-13-12 "1206" "unknown" 7938.19 21834.05 270 bottom
+C12-13-13 "1206" "unknown" 7938.19 23334.05 270 bottom
+C12-13-14 "1206" "unknown" 7938.19 24834.05 270 bottom
+C12-14-0 "1206" "unknown" 8438.19 3834.05 270 bottom
+C12-14-1 "1206" "unknown" 8438.19 5334.05 270 bottom
+C12-14-2 "1206" "unknown" 8438.19 6834.05 270 bottom
+C12-14-3 "1206" "unknown" 8438.19 8334.05 270 bottom
+C12-14-4 "1206" "unknown" 8438.19 9834.05 270 bottom
+C12-14-5 "1206" "unknown" 8438.19 11334.05 270 bottom
+C12-14-6 "1206" "unknown" 8438.19 12834.05 270 bottom
+C12-14-7 "1206" "unknown" 8438.19 14334.05 270 bottom
+C12-14-8 "1206" "unknown" 8438.19 15834.05 270 bottom
+C12-14-9 "1206" "unknown" 8438.19 17334.05 270 bottom
+C12-14-10 "1206" "unknown" 8438.19 18834.05 270 bottom
+C12-14-11 "1206" "unknown" 8438.19 20334.05 270 bottom
+C12-14-12 "1206" "unknown" 8438.19 21834.05 270 bottom
+C12-14-13 "1206" "unknown" 8438.19 23334.05 270 bottom
+C12-14-14 "1206" "unknown" 8438.19 24834.05 270 bottom
+U2-0-0 "TO220" "unknown" 1342.50 4175.00 90 top
+U2-0-1 "TO220" "unknown" 1342.5 5675 90 top
+U2-0-2 "TO220" "unknown" 1342.5 7175 90 top
+U2-0-3 "TO220" "unknown" 1342.5 8675 90 top
+U2-0-4 "TO220" "unknown" 1342.5 10175 90 top
+U2-0-5 "TO220" "unknown" 1342.5 11675 90 top
+U2-0-6 "TO220" "unknown" 1342.5 13175 90 top
+U2-0-7 "TO220" "unknown" 1342.5 14675 90 top
+U2-0-8 "TO220" "unknown" 1342.5 16175 90 top
+U2-0-9 "TO220" "unknown" 1342.5 17675 90 top
+U2-0-10 "TO220" "unknown" 1342.5 19175 90 top
+U2-0-11 "TO220" "unknown" 1342.5 20675 90 top
+U2-0-12 "TO220" "unknown" 1342.5 22175 90 top
+U2-0-13 "TO220" "unknown" 1342.5 23675 90 top
+U2-0-14 "TO220" "unknown" 1342.5 25175 90 top
+U2-1-0 "TO220" "unknown" 1842.5 4175 90 top
+U2-1-1 "TO220" "unknown" 1842.5 5675 90 top
+U2-1-2 "TO220" "unknown" 1842.5 7175 90 top
+U2-1-3 "TO220" "unknown" 1842.5 8675 90 top
+U2-1-4 "TO220" "unknown" 1842.5 10175 90 top
+U2-1-5 "TO220" "unknown" 1842.5 11675 90 top
+U2-1-6 "TO220" "unknown" 1842.5 13175 90 top
+U2-1-7 "TO220" "unknown" 1842.5 14675 90 top
+U2-1-8 "TO220" "unknown" 1842.5 16175 90 top
+U2-1-9 "TO220" "unknown" 1842.5 17675 90 top
+U2-1-10 "TO220" "unknown" 1842.5 19175 90 top
+U2-1-11 "TO220" "unknown" 1842.5 20675 90 top
+U2-1-12 "TO220" "unknown" 1842.5 22175 90 top
+U2-1-13 "TO220" "unknown" 1842.5 23675 90 top
+U2-1-14 "TO220" "unknown" 1842.5 25175 90 top
+U2-2-0 "TO220" "unknown" 2342.5 4175 90 top
+U2-2-1 "TO220" "unknown" 2342.5 5675 90 top
+U2-2-2 "TO220" "unknown" 2342.5 7175 90 top
+U2-2-3 "TO220" "unknown" 2342.5 8675 90 top
+U2-2-4 "TO220" "unknown" 2342.5 10175 90 top
+U2-2-5 "TO220" "unknown" 2342.5 11675 90 top
+U2-2-6 "TO220" "unknown" 2342.5 13175 90 top
+U2-2-7 "TO220" "unknown" 2342.5 14675 90 top
+U2-2-8 "TO220" "unknown" 2342.5 16175 90 top
+U2-2-9 "TO220" "unknown" 2342.5 17675 90 top
+U2-2-10 "TO220" "unknown" 2342.5 19175 90 top
+U2-2-11 "TO220" "unknown" 2342.5 20675 90 top
+U2-2-12 "TO220" "unknown" 2342.5 22175 90 top
+U2-2-13 "TO220" "unknown" 2342.5 23675 90 top
+U2-2-14 "TO220" "unknown" 2342.5 25175 90 top
+U2-3-0 "TO220" "unknown" 2842.5 4175 90 top
+U2-3-1 "TO220" "unknown" 2842.5 5675 90 top
+U2-3-2 "TO220" "unknown" 2842.5 7175 90 top
+U2-3-3 "TO220" "unknown" 2842.5 8675 90 top
+U2-3-4 "TO220" "unknown" 2842.5 10175 90 top
+U2-3-5 "TO220" "unknown" 2842.5 11675 90 top
+U2-3-6 "TO220" "unknown" 2842.5 13175 90 top
+U2-3-7 "TO220" "unknown" 2842.5 14675 90 top
+U2-3-8 "TO220" "unknown" 2842.5 16175 90 top
+U2-3-9 "TO220" "unknown" 2842.5 17675 90 top
+U2-3-10 "TO220" "unknown" 2842.5 19175 90 top
+U2-3-11 "TO220" "unknown" 2842.5 20675 90 top
+U2-3-12 "TO220" "unknown" 2842.5 22175 90 top
+U2-3-13 "TO220" "unknown" 2842.5 23675 90 top
+U2-3-14 "TO220" "unknown" 2842.5 25175 90 top
+U2-4-0 "TO220" "unknown" 3342.5 4175 90 top
+U2-4-1 "TO220" "unknown" 3342.5 5675 90 top
+U2-4-2 "TO220" "unknown" 3342.5 7175 90 top
+U2-4-3 "TO220" "unknown" 3342.5 8675 90 top
+U2-4-4 "TO220" "unknown" 3342.5 10175 90 top
+U2-4-5 "TO220" "unknown" 3342.5 11675 90 top
+U2-4-6 "TO220" "unknown" 3342.5 13175 90 top
+U2-4-7 "TO220" "unknown" 3342.5 14675 90 top
+U2-4-8 "TO220" "unknown" 3342.5 16175 90 top
+U2-4-9 "TO220" "unknown" 3342.5 17675 90 top
+U2-4-10 "TO220" "unknown" 3342.5 19175 90 top
+U2-4-11 "TO220" "unknown" 3342.5 20675 90 top
+U2-4-12 "TO220" "unknown" 3342.5 22175 90 top
+U2-4-13 "TO220" "unknown" 3342.5 23675 90 top
+U2-4-14 "TO220" "unknown" 3342.5 25175 90 top
+U2-5-0 "TO220" "unknown" 3842.5 4175 90 top
+U2-5-1 "TO220" "unknown" 3842.5 5675 90 top
+U2-5-2 "TO220" "unknown" 3842.5 7175 90 top
+U2-5-3 "TO220" "unknown" 3842.5 8675 90 top
+U2-5-4 "TO220" "unknown" 3842.5 10175 90 top
+U2-5-5 "TO220" "unknown" 3842.5 11675 90 top
+U2-5-6 "TO220" "unknown" 3842.5 13175 90 top
+U2-5-7 "TO220" "unknown" 3842.5 14675 90 top
+U2-5-8 "TO220" "unknown" 3842.5 16175 90 top
+U2-5-9 "TO220" "unknown" 3842.5 17675 90 top
+U2-5-10 "TO220" "unknown" 3842.5 19175 90 top
+U2-5-11 "TO220" "unknown" 3842.5 20675 90 top
+U2-5-12 "TO220" "unknown" 3842.5 22175 90 top
+U2-5-13 "TO220" "unknown" 3842.5 23675 90 top
+U2-5-14 "TO220" "unknown" 3842.5 25175 90 top
+U2-6-0 "TO220" "unknown" 4342.5 4175 90 top
+U2-6-1 "TO220" "unknown" 4342.5 5675 90 top
+U2-6-2 "TO220" "unknown" 4342.5 7175 90 top
+U2-6-3 "TO220" "unknown" 4342.5 8675 90 top
+U2-6-4 "TO220" "unknown" 4342.5 10175 90 top
+U2-6-5 "TO220" "unknown" 4342.5 11675 90 top
+U2-6-6 "TO220" "unknown" 4342.5 13175 90 top
+U2-6-7 "TO220" "unknown" 4342.5 14675 90 top
+U2-6-8 "TO220" "unknown" 4342.5 16175 90 top
+U2-6-9 "TO220" "unknown" 4342.5 17675 90 top
+U2-6-10 "TO220" "unknown" 4342.5 19175 90 top
+U2-6-11 "TO220" "unknown" 4342.5 20675 90 top
+U2-6-12 "TO220" "unknown" 4342.5 22175 90 top
+U2-6-13 "TO220" "unknown" 4342.5 23675 90 top
+U2-6-14 "TO220" "unknown" 4342.5 25175 90 top
+U2-7-0 "TO220" "unknown" 4842.5 4175 90 top
+U2-7-1 "TO220" "unknown" 4842.5 5675 90 top
+U2-7-2 "TO220" "unknown" 4842.5 7175 90 top
+U2-7-3 "TO220" "unknown" 4842.5 8675 90 top
+U2-7-4 "TO220" "unknown" 4842.5 10175 90 top
+U2-7-5 "TO220" "unknown" 4842.5 11675 90 top
+U2-7-6 "TO220" "unknown" 4842.5 13175 90 top
+U2-7-7 "TO220" "unknown" 4842.5 14675 90 top
+U2-7-8 "TO220" "unknown" 4842.5 16175 90 top
+U2-7-9 "TO220" "unknown" 4842.5 17675 90 top
+U2-7-10 "TO220" "unknown" 4842.5 19175 90 top
+U2-7-11 "TO220" "unknown" 4842.5 20675 90 top
+U2-7-12 "TO220" "unknown" 4842.5 22175 90 top
+U2-7-13 "TO220" "unknown" 4842.5 23675 90 top
+U2-7-14 "TO220" "unknown" 4842.5 25175 90 top
+U2-8-0 "TO220" "unknown" 5342.5 4175 90 top
+U2-8-1 "TO220" "unknown" 5342.5 5675 90 top
+U2-8-2 "TO220" "unknown" 5342.5 7175 90 top
+U2-8-3 "TO220" "unknown" 5342.5 8675 90 top
+U2-8-4 "TO220" "unknown" 5342.5 10175 90 top
+U2-8-5 "TO220" "unknown" 5342.5 11675 90 top
+U2-8-6 "TO220" "unknown" 5342.5 13175 90 top
+U2-8-7 "TO220" "unknown" 5342.5 14675 90 top
+U2-8-8 "TO220" "unknown" 5342.5 16175 90 top
+U2-8-9 "TO220" "unknown" 5342.5 17675 90 top
+U2-8-10 "TO220" "unknown" 5342.5 19175 90 top
+U2-8-11 "TO220" "unknown" 5342.5 20675 90 top
+U2-8-12 "TO220" "unknown" 5342.5 22175 90 top
+U2-8-13 "TO220" "unknown" 5342.5 23675 90 top
+U2-8-14 "TO220" "unknown" 5342.5 25175 90 top
+U2-9-0 "TO220" "unknown" 5842.5 4175 90 top
+U2-9-1 "TO220" "unknown" 5842.5 5675 90 top
+U2-9-2 "TO220" "unknown" 5842.5 7175 90 top
+U2-9-3 "TO220" "unknown" 5842.5 8675 90 top
+U2-9-4 "TO220" "unknown" 5842.5 10175 90 top
+U2-9-5 "TO220" "unknown" 5842.5 11675 90 top
+U2-9-6 "TO220" "unknown" 5842.5 13175 90 top
+U2-9-7 "TO220" "unknown" 5842.5 14675 90 top
+U2-9-8 "TO220" "unknown" 5842.5 16175 90 top
+U2-9-9 "TO220" "unknown" 5842.5 17675 90 top
+U2-9-10 "TO220" "unknown" 5842.5 19175 90 top
+U2-9-11 "TO220" "unknown" 5842.5 20675 90 top
+U2-9-12 "TO220" "unknown" 5842.5 22175 90 top
+U2-9-13 "TO220" "unknown" 5842.5 23675 90 top
+U2-9-14 "TO220" "unknown" 5842.5 25175 90 top
+U2-10-0 "TO220" "unknown" 6342.5 4175 90 top
+U2-10-1 "TO220" "unknown" 6342.5 5675 90 top
+U2-10-2 "TO220" "unknown" 6342.5 7175 90 top
+U2-10-3 "TO220" "unknown" 6342.5 8675 90 top
+U2-10-4 "TO220" "unknown" 6342.5 10175 90 top
+U2-10-5 "TO220" "unknown" 6342.5 11675 90 top
+U2-10-6 "TO220" "unknown" 6342.5 13175 90 top
+U2-10-7 "TO220" "unknown" 6342.5 14675 90 top
+U2-10-8 "TO220" "unknown" 6342.5 16175 90 top
+U2-10-9 "TO220" "unknown" 6342.5 17675 90 top
+U2-10-10 "TO220" "unknown" 6342.5 19175 90 top
+U2-10-11 "TO220" "unknown" 6342.5 20675 90 top
+U2-10-12 "TO220" "unknown" 6342.5 22175 90 top
+U2-10-13 "TO220" "unknown" 6342.5 23675 90 top
+U2-10-14 "TO220" "unknown" 6342.5 25175 90 top
+U2-11-0 "TO220" "unknown" 6842.5 4175 90 top
+U2-11-1 "TO220" "unknown" 6842.5 5675 90 top
+U2-11-2 "TO220" "unknown" 6842.5 7175 90 top
+U2-11-3 "TO220" "unknown" 6842.5 8675 90 top
+U2-11-4 "TO220" "unknown" 6842.5 10175 90 top
+U2-11-5 "TO220" "unknown" 6842.5 11675 90 top
+U2-11-6 "TO220" "unknown" 6842.5 13175 90 top
+U2-11-7 "TO220" "unknown" 6842.5 14675 90 top
+U2-11-8 "TO220" "unknown" 6842.5 16175 90 top
+U2-11-9 "TO220" "unknown" 6842.5 17675 90 top
+U2-11-10 "TO220" "unknown" 6842.5 19175 90 top
+U2-11-11 "TO220" "unknown" 6842.5 20675 90 top
+U2-11-12 "TO220" "unknown" 6842.5 22175 90 top
+U2-11-13 "TO220" "unknown" 6842.5 23675 90 top
+U2-11-14 "TO220" "unknown" 6842.5 25175 90 top
+U2-12-0 "TO220" "unknown" 7342.5 4175 90 top
+U2-12-1 "TO220" "unknown" 7342.5 5675 90 top
+U2-12-2 "TO220" "unknown" 7342.5 7175 90 top
+U2-12-3 "TO220" "unknown" 7342.5 8675 90 top
+U2-12-4 "TO220" "unknown" 7342.5 10175 90 top
+U2-12-5 "TO220" "unknown" 7342.5 11675 90 top
+U2-12-6 "TO220" "unknown" 7342.5 13175 90 top
+U2-12-7 "TO220" "unknown" 7342.5 14675 90 top
+U2-12-8 "TO220" "unknown" 7342.5 16175 90 top
+U2-12-9 "TO220" "unknown" 7342.5 17675 90 top
+U2-12-10 "TO220" "unknown" 7342.5 19175 90 top
+U2-12-11 "TO220" "unknown" 7342.5 20675 90 top
+U2-12-12 "TO220" "unknown" 7342.5 22175 90 top
+U2-12-13 "TO220" "unknown" 7342.5 23675 90 top
+U2-12-14 "TO220" "unknown" 7342.5 25175 90 top
+U2-13-0 "TO220" "unknown" 7842.5 4175 90 top
+U2-13-1 "TO220" "unknown" 7842.5 5675 90 top
+U2-13-2 "TO220" "unknown" 7842.5 7175 90 top
+U2-13-3 "TO220" "unknown" 7842.5 8675 90 top
+U2-13-4 "TO220" "unknown" 7842.5 10175 90 top
+U2-13-5 "TO220" "unknown" 7842.5 11675 90 top
+U2-13-6 "TO220" "unknown" 7842.5 13175 90 top
+U2-13-7 "TO220" "unknown" 7842.5 14675 90 top
+U2-13-8 "TO220" "unknown" 7842.5 16175 90 top
+U2-13-9 "TO220" "unknown" 7842.5 17675 90 top
+U2-13-10 "TO220" "unknown" 7842.5 19175 90 top
+U2-13-11 "TO220" "unknown" 7842.5 20675 90 top
+U2-13-12 "TO220" "unknown" 7842.5 22175 90 top
+U2-13-13 "TO220" "unknown" 7842.5 23675 90 top
+U2-13-14 "TO220" "unknown" 7842.5 25175 90 top
+U2-14-0 "TO220" "unknown" 8342.5 4175 90 top
+U2-14-1 "TO220" "unknown" 8342.5 5675 90 top
+U2-14-2 "TO220" "unknown" 8342.5 7175 90 top
+U2-14-3 "TO220" "unknown" 8342.5 8675 90 top
+U2-14-4 "TO220" "unknown" 8342.5 10175 90 top
+U2-14-5 "TO220" "unknown" 8342.5 11675 90 top
+U2-14-6 "TO220" "unknown" 8342.5 13175 90 top
+U2-14-7 "TO220" "unknown" 8342.5 14675 90 top
+U2-14-8 "TO220" "unknown" 8342.5 16175 90 top
+U2-14-9 "TO220" "unknown" 8342.5 17675 90 top
+U2-14-10 "TO220" "unknown" 8342.5 19175 90 top
+U2-14-11 "TO220" "unknown" 8342.5 20675 90 top
+U2-14-12 "TO220" "unknown" 8342.5 22175 90 top
+U2-14-13 "TO220" "unknown" 8342.5 23675 90 top
+U2-14-14 "TO220" "unknown" 8342.5 25175 90 top
+D7-0-0 "1206" "unknown" 1775.00 3350.00 270 bottom
+D7-0-1 "1206" "unknown" 1775 4850 270 bottom
+D7-0-2 "1206" "unknown" 1775 6350 270 bottom
+D7-0-3 "1206" "unknown" 1775 7850 270 bottom
+D7-0-4 "1206" "unknown" 1775 9350 270 bottom
+D7-0-5 "1206" "unknown" 1775 10850 270 bottom
+D7-0-6 "1206" "unknown" 1775 12350 270 bottom
+D7-0-7 "1206" "unknown" 1775 13850 270 bottom
+D7-0-8 "1206" "unknown" 1775 15350 270 bottom
+D7-0-9 "1206" "unknown" 1775 16850 270 bottom
+D7-0-10 "1206" "unknown" 1775 18350 270 bottom
+D7-0-11 "1206" "unknown" 1775 19850 270 bottom
+D7-0-12 "1206" "unknown" 1775 21350 270 bottom
+D7-0-13 "1206" "unknown" 1775 22850 270 bottom
+D7-0-14 "1206" "unknown" 1775 24350 270 bottom
+D7-1-0 "1206" "unknown" 2275 3350 270 bottom
+D7-1-1 "1206" "unknown" 2275 4850 270 bottom
+D7-1-2 "1206" "unknown" 2275 6350 270 bottom
+D7-1-3 "1206" "unknown" 2275 7850 270 bottom
+D7-1-4 "1206" "unknown" 2275 9350 270 bottom
+D7-1-5 "1206" "unknown" 2275 10850 270 bottom
+D7-1-6 "1206" "unknown" 2275 12350 270 bottom
+D7-1-7 "1206" "unknown" 2275 13850 270 bottom
+D7-1-8 "1206" "unknown" 2275 15350 270 bottom
+D7-1-9 "1206" "unknown" 2275 16850 270 bottom
+D7-1-10 "1206" "unknown" 2275 18350 270 bottom
+D7-1-11 "1206" "unknown" 2275 19850 270 bottom
+D7-1-12 "1206" "unknown" 2275 21350 270 bottom
+D7-1-13 "1206" "unknown" 2275 22850 270 bottom
+D7-1-14 "1206" "unknown" 2275 24350 270 bottom
+D7-2-0 "1206" "unknown" 2775 3350 270 bottom
+D7-2-1 "1206" "unknown" 2775 4850 270 bottom
+D7-2-2 "1206" "unknown" 2775 6350 270 bottom
+D7-2-3 "1206" "unknown" 2775 7850 270 bottom
+D7-2-4 "1206" "unknown" 2775 9350 270 bottom
+D7-2-5 "1206" "unknown" 2775 10850 270 bottom
+D7-2-6 "1206" "unknown" 2775 12350 270 bottom
+D7-2-7 "1206" "unknown" 2775 13850 270 bottom
+D7-2-8 "1206" "unknown" 2775 15350 270 bottom
+D7-2-9 "1206" "unknown" 2775 16850 270 bottom
+D7-2-10 "1206" "unknown" 2775 18350 270 bottom
+D7-2-11 "1206" "unknown" 2775 19850 270 bottom
+D7-2-12 "1206" "unknown" 2775 21350 270 bottom
+D7-2-13 "1206" "unknown" 2775 22850 270 bottom
+D7-2-14 "1206" "unknown" 2775 24350 270 bottom
+D7-3-0 "1206" "unknown" 3275 3350 270 bottom
+D7-3-1 "1206" "unknown" 3275 4850 270 bottom
+D7-3-2 "1206" "unknown" 3275 6350 270 bottom
+D7-3-3 "1206" "unknown" 3275 7850 270 bottom
+D7-3-4 "1206" "unknown" 3275 9350 270 bottom
+D7-3-5 "1206" "unknown" 3275 10850 270 bottom
+D7-3-6 "1206" "unknown" 3275 12350 270 bottom
+D7-3-7 "1206" "unknown" 3275 13850 270 bottom
+D7-3-8 "1206" "unknown" 3275 15350 270 bottom
+D7-3-9 "1206" "unknown" 3275 16850 270 bottom
+D7-3-10 "1206" "unknown" 3275 18350 270 bottom
+D7-3-11 "1206" "unknown" 3275 19850 270 bottom
+D7-3-12 "1206" "unknown" 3275 21350 270 bottom
+D7-3-13 "1206" "unknown" 3275 22850 270 bottom
+D7-3-14 "1206" "unknown" 3275 24350 270 bottom
+D7-4-0 "1206" "unknown" 3775 3350 270 bottom
+D7-4-1 "1206" "unknown" 3775 4850 270 bottom
+D7-4-2 "1206" "unknown" 3775 6350 270 bottom
+D7-4-3 "1206" "unknown" 3775 7850 270 bottom
+D7-4-4 "1206" "unknown" 3775 9350 270 bottom
+D7-4-5 "1206" "unknown" 3775 10850 270 bottom
+D7-4-6 "1206" "unknown" 3775 12350 270 bottom
+D7-4-7 "1206" "unknown" 3775 13850 270 bottom
+D7-4-8 "1206" "unknown" 3775 15350 270 bottom
+D7-4-9 "1206" "unknown" 3775 16850 270 bottom
+D7-4-10 "1206" "unknown" 3775 18350 270 bottom
+D7-4-11 "1206" "unknown" 3775 19850 270 bottom
+D7-4-12 "1206" "unknown" 3775 21350 270 bottom
+D7-4-13 "1206" "unknown" 3775 22850 270 bottom
+D7-4-14 "1206" "unknown" 3775 24350 270 bottom
+D7-5-0 "1206" "unknown" 4275 3350 270 bottom
+D7-5-1 "1206" "unknown" 4275 4850 270 bottom
+D7-5-2 "1206" "unknown" 4275 6350 270 bottom
+D7-5-3 "1206" "unknown" 4275 7850 270 bottom
+D7-5-4 "1206" "unknown" 4275 9350 270 bottom
+D7-5-5 "1206" "unknown" 4275 10850 270 bottom
+D7-5-6 "1206" "unknown" 4275 12350 270 bottom
+D7-5-7 "1206" "unknown" 4275 13850 270 bottom
+D7-5-8 "1206" "unknown" 4275 15350 270 bottom
+D7-5-9 "1206" "unknown" 4275 16850 270 bottom
+D7-5-10 "1206" "unknown" 4275 18350 270 bottom
+D7-5-11 "1206" "unknown" 4275 19850 270 bottom
+D7-5-12 "1206" "unknown" 4275 21350 270 bottom
+D7-5-13 "1206" "unknown" 4275 22850 270 bottom
+D7-5-14 "1206" "unknown" 4275 24350 270 bottom
+D7-6-0 "1206" "unknown" 4775 3350 270 bottom
+D7-6-1 "1206" "unknown" 4775 4850 270 bottom
+D7-6-2 "1206" "unknown" 4775 6350 270 bottom
+D7-6-3 "1206" "unknown" 4775 7850 270 bottom
+D7-6-4 "1206" "unknown" 4775 9350 270 bottom
+D7-6-5 "1206" "unknown" 4775 10850 270 bottom
+D7-6-6 "1206" "unknown" 4775 12350 270 bottom
+D7-6-7 "1206" "unknown" 4775 13850 270 bottom
+D7-6-8 "1206" "unknown" 4775 15350 270 bottom
+D7-6-9 "1206" "unknown" 4775 16850 270 bottom
+D7-6-10 "1206" "unknown" 4775 18350 270 bottom
+D7-6-11 "1206" "unknown" 4775 19850 270 bottom
+D7-6-12 "1206" "unknown" 4775 21350 270 bottom
+D7-6-13 "1206" "unknown" 4775 22850 270 bottom
+D7-6-14 "1206" "unknown" 4775 24350 270 bottom
+D7-7-0 "1206" "unknown" 5275 3350 270 bottom
+D7-7-1 "1206" "unknown" 5275 4850 270 bottom
+D7-7-2 "1206" "unknown" 5275 6350 270 bottom
+D7-7-3 "1206" "unknown" 5275 7850 270 bottom
+D7-7-4 "1206" "unknown" 5275 9350 270 bottom
+D7-7-5 "1206" "unknown" 5275 10850 270 bottom
+D7-7-6 "1206" "unknown" 5275 12350 270 bottom
+D7-7-7 "1206" "unknown" 5275 13850 270 bottom
+D7-7-8 "1206" "unknown" 5275 15350 270 bottom
+D7-7-9 "1206" "unknown" 5275 16850 270 bottom
+D7-7-10 "1206" "unknown" 5275 18350 270 bottom
+D7-7-11 "1206" "unknown" 5275 19850 270 bottom
+D7-7-12 "1206" "unknown" 5275 21350 270 bottom
+D7-7-13 "1206" "unknown" 5275 22850 270 bottom
+D7-7-14 "1206" "unknown" 5275 24350 270 bottom
+D7-8-0 "1206" "unknown" 5775 3350 270 bottom
+D7-8-1 "1206" "unknown" 5775 4850 270 bottom
+D7-8-2 "1206" "unknown" 5775 6350 270 bottom
+D7-8-3 "1206" "unknown" 5775 7850 270 bottom
+D7-8-4 "1206" "unknown" 5775 9350 270 bottom
+D7-8-5 "1206" "unknown" 5775 10850 270 bottom
+D7-8-6 "1206" "unknown" 5775 12350 270 bottom
+D7-8-7 "1206" "unknown" 5775 13850 270 bottom
+D7-8-8 "1206" "unknown" 5775 15350 270 bottom
+D7-8-9 "1206" "unknown" 5775 16850 270 bottom
+D7-8-10 "1206" "unknown" 5775 18350 270 bottom
+D7-8-11 "1206" "unknown" 5775 19850 270 bottom
+D7-8-12 "1206" "unknown" 5775 21350 270 bottom
+D7-8-13 "1206" "unknown" 5775 22850 270 bottom
+D7-8-14 "1206" "unknown" 5775 24350 270 bottom
+D7-9-0 "1206" "unknown" 6275 3350 270 bottom
+D7-9-1 "1206" "unknown" 6275 4850 270 bottom
+D7-9-2 "1206" "unknown" 6275 6350 270 bottom
+D7-9-3 "1206" "unknown" 6275 7850 270 bottom
+D7-9-4 "1206" "unknown" 6275 9350 270 bottom
+D7-9-5 "1206" "unknown" 6275 10850 270 bottom
+D7-9-6 "1206" "unknown" 6275 12350 270 bottom
+D7-9-7 "1206" "unknown" 6275 13850 270 bottom
+D7-9-8 "1206" "unknown" 6275 15350 270 bottom
+D7-9-9 "1206" "unknown" 6275 16850 270 bottom
+D7-9-10 "1206" "unknown" 6275 18350 270 bottom
+D7-9-11 "1206" "unknown" 6275 19850 270 bottom
+D7-9-12 "1206" "unknown" 6275 21350 270 bottom
+D7-9-13 "1206" "unknown" 6275 22850 270 bottom
+D7-9-14 "1206" "unknown" 6275 24350 270 bottom
+D7-10-0 "1206" "unknown" 6775 3350 270 bottom
+D7-10-1 "1206" "unknown" 6775 4850 270 bottom
+D7-10-2 "1206" "unknown" 6775 6350 270 bottom
+D7-10-3 "1206" "unknown" 6775 7850 270 bottom
+D7-10-4 "1206" "unknown" 6775 9350 270 bottom
+D7-10-5 "1206" "unknown" 6775 10850 270 bottom
+D7-10-6 "1206" "unknown" 6775 12350 270 bottom
+D7-10-7 "1206" "unknown" 6775 13850 270 bottom
+D7-10-8 "1206" "unknown" 6775 15350 270 bottom
+D7-10-9 "1206" "unknown" 6775 16850 270 bottom
+D7-10-10 "1206" "unknown" 6775 18350 270 bottom
+D7-10-11 "1206" "unknown" 6775 19850 270 bottom
+D7-10-12 "1206" "unknown" 6775 21350 270 bottom
+D7-10-13 "1206" "unknown" 6775 22850 270 bottom
+D7-10-14 "1206" "unknown" 6775 24350 270 bottom
+D7-11-0 "1206" "unknown" 7275 3350 270 bottom
+D7-11-1 "1206" "unknown" 7275 4850 270 bottom
+D7-11-2 "1206" "unknown" 7275 6350 270 bottom
+D7-11-3 "1206" "unknown" 7275 7850 270 bottom
+D7-11-4 "1206" "unknown" 7275 9350 270 bottom
+D7-11-5 "1206" "unknown" 7275 10850 270 bottom
+D7-11-6 "1206" "unknown" 7275 12350 270 bottom
+D7-11-7 "1206" "unknown" 7275 13850 270 bottom
+D7-11-8 "1206" "unknown" 7275 15350 270 bottom
+D7-11-9 "1206" "unknown" 7275 16850 270 bottom
+D7-11-10 "1206" "unknown" 7275 18350 270 bottom
+D7-11-11 "1206" "unknown" 7275 19850 270 bottom
+D7-11-12 "1206" "unknown" 7275 21350 270 bottom
+D7-11-13 "1206" "unknown" 7275 22850 270 bottom
+D7-11-14 "1206" "unknown" 7275 24350 270 bottom
+D7-12-0 "1206" "unknown" 7775 3350 270 bottom
+D7-12-1 "1206" "unknown" 7775 4850 270 bottom
+D7-12-2 "1206" "unknown" 7775 6350 270 bottom
+D7-12-3 "1206" "unknown" 7775 7850 270 bottom
+D7-12-4 "1206" "unknown" 7775 9350 270 bottom
+D7-12-5 "1206" "unknown" 7775 10850 270 bottom
+D7-12-6 "1206" "unknown" 7775 12350 270 bottom
+D7-12-7 "1206" "unknown" 7775 13850 270 bottom
+D7-12-8 "1206" "unknown" 7775 15350 270 bottom
+D7-12-9 "1206" "unknown" 7775 16850 270 bottom
+D7-12-10 "1206" "unknown" 7775 18350 270 bottom
+D7-12-11 "1206" "unknown" 7775 19850 270 bottom
+D7-12-12 "1206" "unknown" 7775 21350 270 bottom
+D7-12-13 "1206" "unknown" 7775 22850 270 bottom
+D7-12-14 "1206" "unknown" 7775 24350 270 bottom
+D7-13-0 "1206" "unknown" 8275 3350 270 bottom
+D7-13-1 "1206" "unknown" 8275 4850 270 bottom
+D7-13-2 "1206" "unknown" 8275 6350 270 bottom
+D7-13-3 "1206" "unknown" 8275 7850 270 bottom
+D7-13-4 "1206" "unknown" 8275 9350 270 bottom
+D7-13-5 "1206" "unknown" 8275 10850 270 bottom
+D7-13-6 "1206" "unknown" 8275 12350 270 bottom
+D7-13-7 "1206" "unknown" 8275 13850 270 bottom
+D7-13-8 "1206" "unknown" 8275 15350 270 bottom
+D7-13-9 "1206" "unknown" 8275 16850 270 bottom
+D7-13-10 "1206" "unknown" 8275 18350 270 bottom
+D7-13-11 "1206" "unknown" 8275 19850 270 bottom
+D7-13-12 "1206" "unknown" 8275 21350 270 bottom
+D7-13-13 "1206" "unknown" 8275 22850 270 bottom
+D7-13-14 "1206" "unknown" 8275 24350 270 bottom
+D7-14-0 "1206" "unknown" 8775 3350 270 bottom
+D7-14-1 "1206" "unknown" 8775 4850 270 bottom
+D7-14-2 "1206" "unknown" 8775 6350 270 bottom
+D7-14-3 "1206" "unknown" 8775 7850 270 bottom
+D7-14-4 "1206" "unknown" 8775 9350 270 bottom
+D7-14-5 "1206" "unknown" 8775 10850 270 bottom
+D7-14-6 "1206" "unknown" 8775 12350 270 bottom
+D7-14-7 "1206" "unknown" 8775 13850 270 bottom
+D7-14-8 "1206" "unknown" 8775 15350 270 bottom
+D7-14-9 "1206" "unknown" 8775 16850 270 bottom
+D7-14-10 "1206" "unknown" 8775 18350 270 bottom
+D7-14-11 "1206" "unknown" 8775 19850 270 bottom
+D7-14-12 "1206" "unknown" 8775 21350 270 bottom
+D7-14-13 "1206" "unknown" 8775 22850 270 bottom
+D7-14-14 "1206" "unknown" 8775 24350 270 bottom
+D5-0-0 "1206" "unknown" 1125.00 3775.00 180 bottom
+D5-0-1 "1206" "unknown" 1125 5275 180 bottom
+D5-0-2 "1206" "unknown" 1125 6775 180 bottom
+D5-0-3 "1206" "unknown" 1125 8275 180 bottom
+D5-0-4 "1206" "unknown" 1125 9775 180 bottom
+D5-0-5 "1206" "unknown" 1125 11275 180 bottom
+D5-0-6 "1206" "unknown" 1125 12775 180 bottom
+D5-0-7 "1206" "unknown" 1125 14275 180 bottom
+D5-0-8 "1206" "unknown" 1125 15775 180 bottom
+D5-0-9 "1206" "unknown" 1125 17275 180 bottom
+D5-0-10 "1206" "unknown" 1125 18775 180 bottom
+D5-0-11 "1206" "unknown" 1125 20275 180 bottom
+D5-0-12 "1206" "unknown" 1125 21775 180 bottom
+D5-0-13 "1206" "unknown" 1125 23275 180 bottom
+D5-0-14 "1206" "unknown" 1125 24775 180 bottom
+D5-1-0 "1206" "unknown" 1625 3775 180 bottom
+D5-1-1 "1206" "unknown" 1625 5275 180 bottom
+D5-1-2 "1206" "unknown" 1625 6775 180 bottom
+D5-1-3 "1206" "unknown" 1625 8275 180 bottom
+D5-1-4 "1206" "unknown" 1625 9775 180 bottom
+D5-1-5 "1206" "unknown" 1625 11275 180 bottom
+D5-1-6 "1206" "unknown" 1625 12775 180 bottom
+D5-1-7 "1206" "unknown" 1625 14275 180 bottom
+D5-1-8 "1206" "unknown" 1625 15775 180 bottom
+D5-1-9 "1206" "unknown" 1625 17275 180 bottom
+D5-1-10 "1206" "unknown" 1625 18775 180 bottom
+D5-1-11 "1206" "unknown" 1625 20275 180 bottom
+D5-1-12 "1206" "unknown" 1625 21775 180 bottom
+D5-1-13 "1206" "unknown" 1625 23275 180 bottom
+D5-1-14 "1206" "unknown" 1625 24775 180 bottom
+D5-2-0 "1206" "unknown" 2125 3775 180 bottom
+D5-2-1 "1206" "unknown" 2125 5275 180 bottom
+D5-2-2 "1206" "unknown" 2125 6775 180 bottom
+D5-2-3 "1206" "unknown" 2125 8275 180 bottom
+D5-2-4 "1206" "unknown" 2125 9775 180 bottom
+D5-2-5 "1206" "unknown" 2125 11275 180 bottom
+D5-2-6 "1206" "unknown" 2125 12775 180 bottom
+D5-2-7 "1206" "unknown" 2125 14275 180 bottom
+D5-2-8 "1206" "unknown" 2125 15775 180 bottom
+D5-2-9 "1206" "unknown" 2125 17275 180 bottom
+D5-2-10 "1206" "unknown" 2125 18775 180 bottom
+D5-2-11 "1206" "unknown" 2125 20275 180 bottom
+D5-2-12 "1206" "unknown" 2125 21775 180 bottom
+D5-2-13 "1206" "unknown" 2125 23275 180 bottom
+D5-2-14 "1206" "unknown" 2125 24775 180 bottom
+D5-3-0 "1206" "unknown" 2625 3775 180 bottom
+D5-3-1 "1206" "unknown" 2625 5275 180 bottom
+D5-3-2 "1206" "unknown" 2625 6775 180 bottom
+D5-3-3 "1206" "unknown" 2625 8275 180 bottom
+D5-3-4 "1206" "unknown" 2625 9775 180 bottom
+D5-3-5 "1206" "unknown" 2625 11275 180 bottom
+D5-3-6 "1206" "unknown" 2625 12775 180 bottom
+D5-3-7 "1206" "unknown" 2625 14275 180 bottom
+D5-3-8 "1206" "unknown" 2625 15775 180 bottom
+D5-3-9 "1206" "unknown" 2625 17275 180 bottom
+D5-3-10 "1206" "unknown" 2625 18775 180 bottom
+D5-3-11 "1206" "unknown" 2625 20275 180 bottom
+D5-3-12 "1206" "unknown" 2625 21775 180 bottom
+D5-3-13 "1206" "unknown" 2625 23275 180 bottom
+D5-3-14 "1206" "unknown" 2625 24775 180 bottom
+D5-4-0 "1206" "unknown" 3125 3775 180 bottom
+D5-4-1 "1206" "unknown" 3125 5275 180 bottom
+D5-4-2 "1206" "unknown" 3125 6775 180 bottom
+D5-4-3 "1206" "unknown" 3125 8275 180 bottom
+D5-4-4 "1206" "unknown" 3125 9775 180 bottom
+D5-4-5 "1206" "unknown" 3125 11275 180 bottom
+D5-4-6 "1206" "unknown" 3125 12775 180 bottom
+D5-4-7 "1206" "unknown" 3125 14275 180 bottom
+D5-4-8 "1206" "unknown" 3125 15775 180 bottom
+D5-4-9 "1206" "unknown" 3125 17275 180 bottom
+D5-4-10 "1206" "unknown" 3125 18775 180 bottom
+D5-4-11 "1206" "unknown" 3125 20275 180 bottom
+D5-4-12 "1206" "unknown" 3125 21775 180 bottom
+D5-4-13 "1206" "unknown" 3125 23275 180 bottom
+D5-4-14 "1206" "unknown" 3125 24775 180 bottom
+D5-5-0 "1206" "unknown" 3625 3775 180 bottom
+D5-5-1 "1206" "unknown" 3625 5275 180 bottom
+D5-5-2 "1206" "unknown" 3625 6775 180 bottom
+D5-5-3 "1206" "unknown" 3625 8275 180 bottom
+D5-5-4 "1206" "unknown" 3625 9775 180 bottom
+D5-5-5 "1206" "unknown" 3625 11275 180 bottom
+D5-5-6 "1206" "unknown" 3625 12775 180 bottom
+D5-5-7 "1206" "unknown" 3625 14275 180 bottom
+D5-5-8 "1206" "unknown" 3625 15775 180 bottom
+D5-5-9 "1206" "unknown" 3625 17275 180 bottom
+D5-5-10 "1206" "unknown" 3625 18775 180 bottom
+D5-5-11 "1206" "unknown" 3625 20275 180 bottom
+D5-5-12 "1206" "unknown" 3625 21775 180 bottom
+D5-5-13 "1206" "unknown" 3625 23275 180 bottom
+D5-5-14 "1206" "unknown" 3625 24775 180 bottom
+D5-6-0 "1206" "unknown" 4125 3775 180 bottom
+D5-6-1 "1206" "unknown" 4125 5275 180 bottom
+D5-6-2 "1206" "unknown" 4125 6775 180 bottom
+D5-6-3 "1206" "unknown" 4125 8275 180 bottom
+D5-6-4 "1206" "unknown" 4125 9775 180 bottom
+D5-6-5 "1206" "unknown" 4125 11275 180 bottom
+D5-6-6 "1206" "unknown" 4125 12775 180 bottom
+D5-6-7 "1206" "unknown" 4125 14275 180 bottom
+D5-6-8 "1206" "unknown" 4125 15775 180 bottom
+D5-6-9 "1206" "unknown" 4125 17275 180 bottom
+D5-6-10 "1206" "unknown" 4125 18775 180 bottom
+D5-6-11 "1206" "unknown" 4125 20275 180 bottom
+D5-6-12 "1206" "unknown" 4125 21775 180 bottom
+D5-6-13 "1206" "unknown" 4125 23275 180 bottom
+D5-6-14 "1206" "unknown" 4125 24775 180 bottom
+D5-7-0 "1206" "unknown" 4625 3775 180 bottom
+D5-7-1 "1206" "unknown" 4625 5275 180 bottom
+D5-7-2 "1206" "unknown" 4625 6775 180 bottom
+D5-7-3 "1206" "unknown" 4625 8275 180 bottom
+D5-7-4 "1206" "unknown" 4625 9775 180 bottom
+D5-7-5 "1206" "unknown" 4625 11275 180 bottom
+D5-7-6 "1206" "unknown" 4625 12775 180 bottom
+D5-7-7 "1206" "unknown" 4625 14275 180 bottom
+D5-7-8 "1206" "unknown" 4625 15775 180 bottom
+D5-7-9 "1206" "unknown" 4625 17275 180 bottom
+D5-7-10 "1206" "unknown" 4625 18775 180 bottom
+D5-7-11 "1206" "unknown" 4625 20275 180 bottom
+D5-7-12 "1206" "unknown" 4625 21775 180 bottom
+D5-7-13 "1206" "unknown" 4625 23275 180 bottom
+D5-7-14 "1206" "unknown" 4625 24775 180 bottom
+D5-8-0 "1206" "unknown" 5125 3775 180 bottom
+D5-8-1 "1206" "unknown" 5125 5275 180 bottom
+D5-8-2 "1206" "unknown" 5125 6775 180 bottom
+D5-8-3 "1206" "unknown" 5125 8275 180 bottom
+D5-8-4 "1206" "unknown" 5125 9775 180 bottom
+D5-8-5 "1206" "unknown" 5125 11275 180 bottom
+D5-8-6 "1206" "unknown" 5125 12775 180 bottom
+D5-8-7 "1206" "unknown" 5125 14275 180 bottom
+D5-8-8 "1206" "unknown" 5125 15775 180 bottom
+D5-8-9 "1206" "unknown" 5125 17275 180 bottom
+D5-8-10 "1206" "unknown" 5125 18775 180 bottom
+D5-8-11 "1206" "unknown" 5125 20275 180 bottom
+D5-8-12 "1206" "unknown" 5125 21775 180 bottom
+D5-8-13 "1206" "unknown" 5125 23275 180 bottom
+D5-8-14 "1206" "unknown" 5125 24775 180 bottom
+D5-9-0 "1206" "unknown" 5625 3775 180 bottom
+D5-9-1 "1206" "unknown" 5625 5275 180 bottom
+D5-9-2 "1206" "unknown" 5625 6775 180 bottom
+D5-9-3 "1206" "unknown" 5625 8275 180 bottom
+D5-9-4 "1206" "unknown" 5625 9775 180 bottom
+D5-9-5 "1206" "unknown" 5625 11275 180 bottom
+D5-9-6 "1206" "unknown" 5625 12775 180 bottom
+D5-9-7 "1206" "unknown" 5625 14275 180 bottom
+D5-9-8 "1206" "unknown" 5625 15775 180 bottom
+D5-9-9 "1206" "unknown" 5625 17275 180 bottom
+D5-9-10 "1206" "unknown" 5625 18775 180 bottom
+D5-9-11 "1206" "unknown" 5625 20275 180 bottom
+D5-9-12 "1206" "unknown" 5625 21775 180 bottom
+D5-9-13 "1206" "unknown" 5625 23275 180 bottom
+D5-9-14 "1206" "unknown" 5625 24775 180 bottom
+D5-10-0 "1206" "unknown" 6125 3775 180 bottom
+D5-10-1 "1206" "unknown" 6125 5275 180 bottom
+D5-10-2 "1206" "unknown" 6125 6775 180 bottom
+D5-10-3 "1206" "unknown" 6125 8275 180 bottom
+D5-10-4 "1206" "unknown" 6125 9775 180 bottom
+D5-10-5 "1206" "unknown" 6125 11275 180 bottom
+D5-10-6 "1206" "unknown" 6125 12775 180 bottom
+D5-10-7 "1206" "unknown" 6125 14275 180 bottom
+D5-10-8 "1206" "unknown" 6125 15775 180 bottom
+D5-10-9 "1206" "unknown" 6125 17275 180 bottom
+D5-10-10 "1206" "unknown" 6125 18775 180 bottom
+D5-10-11 "1206" "unknown" 6125 20275 180 bottom
+D5-10-12 "1206" "unknown" 6125 21775 180 bottom
+D5-10-13 "1206" "unknown" 6125 23275 180 bottom
+D5-10-14 "1206" "unknown" 6125 24775 180 bottom
+D5-11-0 "1206" "unknown" 6625 3775 180 bottom
+D5-11-1 "1206" "unknown" 6625 5275 180 bottom
+D5-11-2 "1206" "unknown" 6625 6775 180 bottom
+D5-11-3 "1206" "unknown" 6625 8275 180 bottom
+D5-11-4 "1206" "unknown" 6625 9775 180 bottom
+D5-11-5 "1206" "unknown" 6625 11275 180 bottom
+D5-11-6 "1206" "unknown" 6625 12775 180 bottom
+D5-11-7 "1206" "unknown" 6625 14275 180 bottom
+D5-11-8 "1206" "unknown" 6625 15775 180 bottom
+D5-11-9 "1206" "unknown" 6625 17275 180 bottom
+D5-11-10 "1206" "unknown" 6625 18775 180 bottom
+D5-11-11 "1206" "unknown" 6625 20275 180 bottom
+D5-11-12 "1206" "unknown" 6625 21775 180 bottom
+D5-11-13 "1206" "unknown" 6625 23275 180 bottom
+D5-11-14 "1206" "unknown" 6625 24775 180 bottom
+D5-12-0 "1206" "unknown" 7125 3775 180 bottom
+D5-12-1 "1206" "unknown" 7125 5275 180 bottom
+D5-12-2 "1206" "unknown" 7125 6775 180 bottom
+D5-12-3 "1206" "unknown" 7125 8275 180 bottom
+D5-12-4 "1206" "unknown" 7125 9775 180 bottom
+D5-12-5 "1206" "unknown" 7125 11275 180 bottom
+D5-12-6 "1206" "unknown" 7125 12775 180 bottom
+D5-12-7 "1206" "unknown" 7125 14275 180 bottom
+D5-12-8 "1206" "unknown" 7125 15775 180 bottom
+D5-12-9 "1206" "unknown" 7125 17275 180 bottom
+D5-12-10 "1206" "unknown" 7125 18775 180 bottom
+D5-12-11 "1206" "unknown" 7125 20275 180 bottom
+D5-12-12 "1206" "unknown" 7125 21775 180 bottom
+D5-12-13 "1206" "unknown" 7125 23275 180 bottom
+D5-12-14 "1206" "unknown" 7125 24775 180 bottom
+D5-13-0 "1206" "unknown" 7625 3775 180 bottom
+D5-13-1 "1206" "unknown" 7625 5275 180 bottom
+D5-13-2 "1206" "unknown" 7625 6775 180 bottom
+D5-13-3 "1206" "unknown" 7625 8275 180 bottom
+D5-13-4 "1206" "unknown" 7625 9775 180 bottom
+D5-13-5 "1206" "unknown" 7625 11275 180 bottom
+D5-13-6 "1206" "unknown" 7625 12775 180 bottom
+D5-13-7 "1206" "unknown" 7625 14275 180 bottom
+D5-13-8 "1206" "unknown" 7625 15775 180 bottom
+D5-13-9 "1206" "unknown" 7625 17275 180 bottom
+D5-13-10 "1206" "unknown" 7625 18775 180 bottom
+D5-13-11 "1206" "unknown" 7625 20275 180 bottom
+D5-13-12 "1206" "unknown" 7625 21775 180 bottom
+D5-13-13 "1206" "unknown" 7625 23275 180 bottom
+D5-13-14 "1206" "unknown" 7625 24775 180 bottom
+D5-14-0 "1206" "unknown" 8125 3775 180 bottom
+D5-14-1 "1206" "unknown" 8125 5275 180 bottom
+D5-14-2 "1206" "unknown" 8125 6775 180 bottom
+D5-14-3 "1206" "unknown" 8125 8275 180 bottom
+D5-14-4 "1206" "unknown" 8125 9775 180 bottom
+D5-14-5 "1206" "unknown" 8125 11275 180 bottom
+D5-14-6 "1206" "unknown" 8125 12775 180 bottom
+D5-14-7 "1206" "unknown" 8125 14275 180 bottom
+D5-14-8 "1206" "unknown" 8125 15775 180 bottom
+D5-14-9 "1206" "unknown" 8125 17275 180 bottom
+D5-14-10 "1206" "unknown" 8125 18775 180 bottom
+D5-14-11 "1206" "unknown" 8125 20275 180 bottom
+D5-14-12 "1206" "unknown" 8125 21775 180 bottom
+D5-14-13 "1206" "unknown" 8125 23275 180 bottom
+D5-14-14 "1206" "unknown" 8125 24775 180 bottom
+R4-0-0 "1206" "unknown" 504.14 3527.76 180 bottom
+R4-0-1 "1206" "unknown" 504.14 5027.76 180 bottom
+R4-0-2 "1206" "unknown" 504.14 6527.76 180 bottom
+R4-0-3 "1206" "unknown" 504.14 8027.76 180 bottom
+R4-0-4 "1206" "unknown" 504.14 9527.76 180 bottom
+R4-0-5 "1206" "unknown" 504.14 11027.76 180 bottom
+R4-0-6 "1206" "unknown" 504.14 12527.76 180 bottom
+R4-0-7 "1206" "unknown" 504.14 14027.76 180 bottom
+R4-0-8 "1206" "unknown" 504.14 15527.76 180 bottom
+R4-0-9 "1206" "unknown" 504.14 17027.76 180 bottom
+R4-0-10 "1206" "unknown" 504.14 18527.76 180 bottom
+R4-0-11 "1206" "unknown" 504.14 20027.76 180 bottom
+R4-0-12 "1206" "unknown" 504.14 21527.76 180 bottom
+R4-0-13 "1206" "unknown" 504.14 23027.76 180 bottom
+R4-0-14 "1206" "unknown" 504.14 24527.76 180 bottom
+R4-1-0 "1206" "unknown" 1004.14 3527.76 180 bottom
+R4-1-1 "1206" "unknown" 1004.14 5027.76 180 bottom
+R4-1-2 "1206" "unknown" 1004.14 6527.76 180 bottom
+R4-1-3 "1206" "unknown" 1004.14 8027.76 180 bottom
+R4-1-4 "1206" "unknown" 1004.14 9527.76 180 bottom
+R4-1-5 "1206" "unknown" 1004.14 11027.76 180 bottom
+R4-1-6 "1206" "unknown" 1004.14 12527.76 180 bottom
+R4-1-7 "1206" "unknown" 1004.14 14027.76 180 bottom
+R4-1-8 "1206" "unknown" 1004.14 15527.76 180 bottom
+R4-1-9 "1206" "unknown" 1004.14 17027.76 180 bottom
+R4-1-10 "1206" "unknown" 1004.14 18527.76 180 bottom
+R4-1-11 "1206" "unknown" 1004.14 20027.76 180 bottom
+R4-1-12 "1206" "unknown" 1004.14 21527.76 180 bottom
+R4-1-13 "1206" "unknown" 1004.14 23027.76 180 bottom
+R4-1-14 "1206" "unknown" 1004.14 24527.76 180 bottom
+R4-2-0 "1206" "unknown" 1504.14 3527.76 180 bottom
+R4-2-1 "1206" "unknown" 1504.14 5027.76 180 bottom
+R4-2-2 "1206" "unknown" 1504.14 6527.76 180 bottom
+R4-2-3 "1206" "unknown" 1504.14 8027.76 180 bottom
+R4-2-4 "1206" "unknown" 1504.14 9527.76 180 bottom
+R4-2-5 "1206" "unknown" 1504.14 11027.76 180 bottom
+R4-2-6 "1206" "unknown" 1504.14 12527.76 180 bottom
+R4-2-7 "1206" "unknown" 1504.14 14027.76 180 bottom
+R4-2-8 "1206" "unknown" 1504.14 15527.76 180 bottom
+R4-2-9 "1206" "unknown" 1504.14 17027.76 180 bottom
+R4-2-10 "1206" "unknown" 1504.14 18527.76 180 bottom
+R4-2-11 "1206" "unknown" 1504.14 20027.76 180 bottom
+R4-2-12 "1206" "unknown" 1504.14 21527.76 180 bottom
+R4-2-13 "1206" "unknown" 1504.14 23027.76 180 bottom
+R4-2-14 "1206" "unknown" 1504.14 24527.76 180 bottom
+R4-3-0 "1206" "unknown" 2004.14 3527.76 180 bottom
+R4-3-1 "1206" "unknown" 2004.14 5027.76 180 bottom
+R4-3-2 "1206" "unknown" 2004.14 6527.76 180 bottom
+R4-3-3 "1206" "unknown" 2004.14 8027.76 180 bottom
+R4-3-4 "1206" "unknown" 2004.14 9527.76 180 bottom
+R4-3-5 "1206" "unknown" 2004.14 11027.76 180 bottom
+R4-3-6 "1206" "unknown" 2004.14 12527.76 180 bottom
+R4-3-7 "1206" "unknown" 2004.14 14027.76 180 bottom
+R4-3-8 "1206" "unknown" 2004.14 15527.76 180 bottom
+R4-3-9 "1206" "unknown" 2004.14 17027.76 180 bottom
+R4-3-10 "1206" "unknown" 2004.14 18527.76 180 bottom
+R4-3-11 "1206" "unknown" 2004.14 20027.76 180 bottom
+R4-3-12 "1206" "unknown" 2004.14 21527.76 180 bottom
+R4-3-13 "1206" "unknown" 2004.14 23027.76 180 bottom
+R4-3-14 "1206" "unknown" 2004.14 24527.76 180 bottom
+R4-4-0 "1206" "unknown" 2504.14 3527.76 180 bottom
+R4-4-1 "1206" "unknown" 2504.14 5027.76 180 bottom
+R4-4-2 "1206" "unknown" 2504.14 6527.76 180 bottom
+R4-4-3 "1206" "unknown" 2504.14 8027.76 180 bottom
+R4-4-4 "1206" "unknown" 2504.14 9527.76 180 bottom
+R4-4-5 "1206" "unknown" 2504.14 11027.76 180 bottom
+R4-4-6 "1206" "unknown" 2504.14 12527.76 180 bottom
+R4-4-7 "1206" "unknown" 2504.14 14027.76 180 bottom
+R4-4-8 "1206" "unknown" 2504.14 15527.76 180 bottom
+R4-4-9 "1206" "unknown" 2504.14 17027.76 180 bottom
+R4-4-10 "1206" "unknown" 2504.14 18527.76 180 bottom
+R4-4-11 "1206" "unknown" 2504.14 20027.76 180 bottom
+R4-4-12 "1206" "unknown" 2504.14 21527.76 180 bottom
+R4-4-13 "1206" "unknown" 2504.14 23027.76 180 bottom
+R4-4-14 "1206" "unknown" 2504.14 24527.76 180 bottom
+R4-5-0 "1206" "unknown" 3004.14 3527.76 180 bottom
+R4-5-1 "1206" "unknown" 3004.14 5027.76 180 bottom
+R4-5-2 "1206" "unknown" 3004.14 6527.76 180 bottom
+R4-5-3 "1206" "unknown" 3004.14 8027.76 180 bottom
+R4-5-4 "1206" "unknown" 3004.14 9527.76 180 bottom
+R4-5-5 "1206" "unknown" 3004.14 11027.76 180 bottom
+R4-5-6 "1206" "unknown" 3004.14 12527.76 180 bottom
+R4-5-7 "1206" "unknown" 3004.14 14027.76 180 bottom
+R4-5-8 "1206" "unknown" 3004.14 15527.76 180 bottom
+R4-5-9 "1206" "unknown" 3004.14 17027.76 180 bottom
+R4-5-10 "1206" "unknown" 3004.14 18527.76 180 bottom
+R4-5-11 "1206" "unknown" 3004.14 20027.76 180 bottom
+R4-5-12 "1206" "unknown" 3004.14 21527.76 180 bottom
+R4-5-13 "1206" "unknown" 3004.14 23027.76 180 bottom
+R4-5-14 "1206" "unknown" 3004.14 24527.76 180 bottom
+R4-6-0 "1206" "unknown" 3504.14 3527.76 180 bottom
+R4-6-1 "1206" "unknown" 3504.14 5027.76 180 bottom
+R4-6-2 "1206" "unknown" 3504.14 6527.76 180 bottom
+R4-6-3 "1206" "unknown" 3504.14 8027.76 180 bottom
+R4-6-4 "1206" "unknown" 3504.14 9527.76 180 bottom
+R4-6-5 "1206" "unknown" 3504.14 11027.76 180 bottom
+R4-6-6 "1206" "unknown" 3504.14 12527.76 180 bottom
+R4-6-7 "1206" "unknown" 3504.14 14027.76 180 bottom
+R4-6-8 "1206" "unknown" 3504.14 15527.76 180 bottom
+R4-6-9 "1206" "unknown" 3504.14 17027.76 180 bottom
+R4-6-10 "1206" "unknown" 3504.14 18527.76 180 bottom
+R4-6-11 "1206" "unknown" 3504.14 20027.76 180 bottom
+R4-6-12 "1206" "unknown" 3504.14 21527.76 180 bottom
+R4-6-13 "1206" "unknown" 3504.14 23027.76 180 bottom
+R4-6-14 "1206" "unknown" 3504.14 24527.76 180 bottom
+R4-7-0 "1206" "unknown" 4004.14 3527.76 180 bottom
+R4-7-1 "1206" "unknown" 4004.14 5027.76 180 bottom
+R4-7-2 "1206" "unknown" 4004.14 6527.76 180 bottom
+R4-7-3 "1206" "unknown" 4004.14 8027.76 180 bottom
+R4-7-4 "1206" "unknown" 4004.14 9527.76 180 bottom
+R4-7-5 "1206" "unknown" 4004.14 11027.76 180 bottom
+R4-7-6 "1206" "unknown" 4004.14 12527.76 180 bottom
+R4-7-7 "1206" "unknown" 4004.14 14027.76 180 bottom
+R4-7-8 "1206" "unknown" 4004.14 15527.76 180 bottom
+R4-7-9 "1206" "unknown" 4004.14 17027.76 180 bottom
+R4-7-10 "1206" "unknown" 4004.14 18527.76 180 bottom
+R4-7-11 "1206" "unknown" 4004.14 20027.76 180 bottom
+R4-7-12 "1206" "unknown" 4004.14 21527.76 180 bottom
+R4-7-13 "1206" "unknown" 4004.14 23027.76 180 bottom
+R4-7-14 "1206" "unknown" 4004.14 24527.76 180 bottom
+R4-8-0 "1206" "unknown" 4504.14 3527.76 180 bottom
+R4-8-1 "1206" "unknown" 4504.14 5027.76 180 bottom
+R4-8-2 "1206" "unknown" 4504.14 6527.76 180 bottom
+R4-8-3 "1206" "unknown" 4504.14 8027.76 180 bottom
+R4-8-4 "1206" "unknown" 4504.14 9527.76 180 bottom
+R4-8-5 "1206" "unknown" 4504.14 11027.76 180 bottom
+R4-8-6 "1206" "unknown" 4504.14 12527.76 180 bottom
+R4-8-7 "1206" "unknown" 4504.14 14027.76 180 bottom
+R4-8-8 "1206" "unknown" 4504.14 15527.76 180 bottom
+R4-8-9 "1206" "unknown" 4504.14 17027.76 180 bottom
+R4-8-10 "1206" "unknown" 4504.14 18527.76 180 bottom
+R4-8-11 "1206" "unknown" 4504.14 20027.76 180 bottom
+R4-8-12 "1206" "unknown" 4504.14 21527.76 180 bottom
+R4-8-13 "1206" "unknown" 4504.14 23027.76 180 bottom
+R4-8-14 "1206" "unknown" 4504.14 24527.76 180 bottom
+R4-9-0 "1206" "unknown" 5004.14 3527.76 180 bottom
+R4-9-1 "1206" "unknown" 5004.14 5027.76 180 bottom
+R4-9-2 "1206" "unknown" 5004.14 6527.76 180 bottom
+R4-9-3 "1206" "unknown" 5004.14 8027.76 180 bottom
+R4-9-4 "1206" "unknown" 5004.14 9527.76 180 bottom
+R4-9-5 "1206" "unknown" 5004.14 11027.76 180 bottom
+R4-9-6 "1206" "unknown" 5004.14 12527.76 180 bottom
+R4-9-7 "1206" "unknown" 5004.14 14027.76 180 bottom
+R4-9-8 "1206" "unknown" 5004.14 15527.76 180 bottom
+R4-9-9 "1206" "unknown" 5004.14 17027.76 180 bottom
+R4-9-10 "1206" "unknown" 5004.14 18527.76 180 bottom
+R4-9-11 "1206" "unknown" 5004.14 20027.76 180 bottom
+R4-9-12 "1206" "unknown" 5004.14 21527.76 180 bottom
+R4-9-13 "1206" "unknown" 5004.14 23027.76 180 bottom
+R4-9-14 "1206" "unknown" 5004.14 24527.76 180 bottom
+R4-10-0 "1206" "unknown" 5504.14 3527.76 180 bottom
+R4-10-1 "1206" "unknown" 5504.14 5027.76 180 bottom
+R4-10-2 "1206" "unknown" 5504.14 6527.76 180 bottom
+R4-10-3 "1206" "unknown" 5504.14 8027.76 180 bottom
+R4-10-4 "1206" "unknown" 5504.14 9527.76 180 bottom
+R4-10-5 "1206" "unknown" 5504.14 11027.76 180 bottom
+R4-10-6 "1206" "unknown" 5504.14 12527.76 180 bottom
+R4-10-7 "1206" "unknown" 5504.14 14027.76 180 bottom
+R4-10-8 "1206" "unknown" 5504.14 15527.76 180 bottom
+R4-10-9 "1206" "unknown" 5504.14 17027.76 180 bottom
+R4-10-10 "1206" "unknown" 5504.14 18527.76 180 bottom
+R4-10-11 "1206" "unknown" 5504.14 20027.76 180 bottom
+R4-10-12 "1206" "unknown" 5504.14 21527.76 180 bottom
+R4-10-13 "1206" "unknown" 5504.14 23027.76 180 bottom
+R4-10-14 "1206" "unknown" 5504.14 24527.76 180 bottom
+R4-11-0 "1206" "unknown" 6004.14 3527.76 180 bottom
+R4-11-1 "1206" "unknown" 6004.14 5027.76 180 bottom
+R4-11-2 "1206" "unknown" 6004.14 6527.76 180 bottom
+R4-11-3 "1206" "unknown" 6004.14 8027.76 180 bottom
+R4-11-4 "1206" "unknown" 6004.14 9527.76 180 bottom
+R4-11-5 "1206" "unknown" 6004.14 11027.76 180 bottom
+R4-11-6 "1206" "unknown" 6004.14 12527.76 180 bottom
+R4-11-7 "1206" "unknown" 6004.14 14027.76 180 bottom
+R4-11-8 "1206" "unknown" 6004.14 15527.76 180 bottom
+R4-11-9 "1206" "unknown" 6004.14 17027.76 180 bottom
+R4-11-10 "1206" "unknown" 6004.14 18527.76 180 bottom
+R4-11-11 "1206" "unknown" 6004.14 20027.76 180 bottom
+R4-11-12 "1206" "unknown" 6004.14 21527.76 180 bottom
+R4-11-13 "1206" "unknown" 6004.14 23027.76 180 bottom
+R4-11-14 "1206" "unknown" 6004.14 24527.76 180 bottom
+R4-12-0 "1206" "unknown" 6504.14 3527.76 180 bottom
+R4-12-1 "1206" "unknown" 6504.14 5027.76 180 bottom
+R4-12-2 "1206" "unknown" 6504.14 6527.76 180 bottom
+R4-12-3 "1206" "unknown" 6504.14 8027.76 180 bottom
+R4-12-4 "1206" "unknown" 6504.14 9527.76 180 bottom
+R4-12-5 "1206" "unknown" 6504.14 11027.76 180 bottom
+R4-12-6 "1206" "unknown" 6504.14 12527.76 180 bottom
+R4-12-7 "1206" "unknown" 6504.14 14027.76 180 bottom
+R4-12-8 "1206" "unknown" 6504.14 15527.76 180 bottom
+R4-12-9 "1206" "unknown" 6504.14 17027.76 180 bottom
+R4-12-10 "1206" "unknown" 6504.14 18527.76 180 bottom
+R4-12-11 "1206" "unknown" 6504.14 20027.76 180 bottom
+R4-12-12 "1206" "unknown" 6504.14 21527.76 180 bottom
+R4-12-13 "1206" "unknown" 6504.14 23027.76 180 bottom
+R4-12-14 "1206" "unknown" 6504.14 24527.76 180 bottom
+R4-13-0 "1206" "unknown" 7004.14 3527.76 180 bottom
+R4-13-1 "1206" "unknown" 7004.14 5027.76 180 bottom
+R4-13-2 "1206" "unknown" 7004.14 6527.76 180 bottom
+R4-13-3 "1206" "unknown" 7004.14 8027.76 180 bottom
+R4-13-4 "1206" "unknown" 7004.14 9527.76 180 bottom
+R4-13-5 "1206" "unknown" 7004.14 11027.76 180 bottom
+R4-13-6 "1206" "unknown" 7004.14 12527.76 180 bottom
+R4-13-7 "1206" "unknown" 7004.14 14027.76 180 bottom
+R4-13-8 "1206" "unknown" 7004.14 15527.76 180 bottom
+R4-13-9 "1206" "unknown" 7004.14 17027.76 180 bottom
+R4-13-10 "1206" "unknown" 7004.14 18527.76 180 bottom
+R4-13-11 "1206" "unknown" 7004.14 20027.76 180 bottom
+R4-13-12 "1206" "unknown" 7004.14 21527.76 180 bottom
+R4-13-13 "1206" "unknown" 7004.14 23027.76 180 bottom
+R4-13-14 "1206" "unknown" 7004.14 24527.76 180 bottom
+R4-14-0 "1206" "unknown" 7504.14 3527.76 180 bottom
+R4-14-1 "1206" "unknown" 7504.14 5027.76 180 bottom
+R4-14-2 "1206" "unknown" 7504.14 6527.76 180 bottom
+R4-14-3 "1206" "unknown" 7504.14 8027.76 180 bottom
+R4-14-4 "1206" "unknown" 7504.14 9527.76 180 bottom
+R4-14-5 "1206" "unknown" 7504.14 11027.76 180 bottom
+R4-14-6 "1206" "unknown" 7504.14 12527.76 180 bottom
+R4-14-7 "1206" "unknown" 7504.14 14027.76 180 bottom
+R4-14-8 "1206" "unknown" 7504.14 15527.76 180 bottom
+R4-14-9 "1206" "unknown" 7504.14 17027.76 180 bottom
+R4-14-10 "1206" "unknown" 7504.14 18527.76 180 bottom
+R4-14-11 "1206" "unknown" 7504.14 20027.76 180 bottom
+R4-14-12 "1206" "unknown" 7504.14 21527.76 180 bottom
+R4-14-13 "1206" "unknown" 7504.14 23027.76 180 bottom
+R4-14-14 "1206" "unknown" 7504.14 24527.76 180 bottom
+C15-0-0 "1206" "unknown" 1225.00 3350.00 90 bottom
+C15-0-1 "1206" "unknown" 1225 4850 90 bottom
+C15-0-2 "1206" "unknown" 1225 6350 90 bottom
+C15-0-3 "1206" "unknown" 1225 7850 90 bottom
+C15-0-4 "1206" "unknown" 1225 9350 90 bottom
+C15-0-5 "1206" "unknown" 1225 10850 90 bottom
+C15-0-6 "1206" "unknown" 1225 12350 90 bottom
+C15-0-7 "1206" "unknown" 1225 13850 90 bottom
+C15-0-8 "1206" "unknown" 1225 15350 90 bottom
+C15-0-9 "1206" "unknown" 1225 16850 90 bottom
+C15-0-10 "1206" "unknown" 1225 18350 90 bottom
+C15-0-11 "1206" "unknown" 1225 19850 90 bottom
+C15-0-12 "1206" "unknown" 1225 21350 90 bottom
+C15-0-13 "1206" "unknown" 1225 22850 90 bottom
+C15-0-14 "1206" "unknown" 1225 24350 90 bottom
+C15-1-0 "1206" "unknown" 1725 3350 90 bottom
+C15-1-1 "1206" "unknown" 1725 4850 90 bottom
+C15-1-2 "1206" "unknown" 1725 6350 90 bottom
+C15-1-3 "1206" "unknown" 1725 7850 90 bottom
+C15-1-4 "1206" "unknown" 1725 9350 90 bottom
+C15-1-5 "1206" "unknown" 1725 10850 90 bottom
+C15-1-6 "1206" "unknown" 1725 12350 90 bottom
+C15-1-7 "1206" "unknown" 1725 13850 90 bottom
+C15-1-8 "1206" "unknown" 1725 15350 90 bottom
+C15-1-9 "1206" "unknown" 1725 16850 90 bottom
+C15-1-10 "1206" "unknown" 1725 18350 90 bottom
+C15-1-11 "1206" "unknown" 1725 19850 90 bottom
+C15-1-12 "1206" "unknown" 1725 21350 90 bottom
+C15-1-13 "1206" "unknown" 1725 22850 90 bottom
+C15-1-14 "1206" "unknown" 1725 24350 90 bottom
+C15-2-0 "1206" "unknown" 2225 3350 90 bottom
+C15-2-1 "1206" "unknown" 2225 4850 90 bottom
+C15-2-2 "1206" "unknown" 2225 6350 90 bottom
+C15-2-3 "1206" "unknown" 2225 7850 90 bottom
+C15-2-4 "1206" "unknown" 2225 9350 90 bottom
+C15-2-5 "1206" "unknown" 2225 10850 90 bottom
+C15-2-6 "1206" "unknown" 2225 12350 90 bottom
+C15-2-7 "1206" "unknown" 2225 13850 90 bottom
+C15-2-8 "1206" "unknown" 2225 15350 90 bottom
+C15-2-9 "1206" "unknown" 2225 16850 90 bottom
+C15-2-10 "1206" "unknown" 2225 18350 90 bottom
+C15-2-11 "1206" "unknown" 2225 19850 90 bottom
+C15-2-12 "1206" "unknown" 2225 21350 90 bottom
+C15-2-13 "1206" "unknown" 2225 22850 90 bottom
+C15-2-14 "1206" "unknown" 2225 24350 90 bottom
+C15-3-0 "1206" "unknown" 2725 3350 90 bottom
+C15-3-1 "1206" "unknown" 2725 4850 90 bottom
+C15-3-2 "1206" "unknown" 2725 6350 90 bottom
+C15-3-3 "1206" "unknown" 2725 7850 90 bottom
+C15-3-4 "1206" "unknown" 2725 9350 90 bottom
+C15-3-5 "1206" "unknown" 2725 10850 90 bottom
+C15-3-6 "1206" "unknown" 2725 12350 90 bottom
+C15-3-7 "1206" "unknown" 2725 13850 90 bottom
+C15-3-8 "1206" "unknown" 2725 15350 90 bottom
+C15-3-9 "1206" "unknown" 2725 16850 90 bottom
+C15-3-10 "1206" "unknown" 2725 18350 90 bottom
+C15-3-11 "1206" "unknown" 2725 19850 90 bottom
+C15-3-12 "1206" "unknown" 2725 21350 90 bottom
+C15-3-13 "1206" "unknown" 2725 22850 90 bottom
+C15-3-14 "1206" "unknown" 2725 24350 90 bottom
+C15-4-0 "1206" "unknown" 3225 3350 90 bottom
+C15-4-1 "1206" "unknown" 3225 4850 90 bottom
+C15-4-2 "1206" "unknown" 3225 6350 90 bottom
+C15-4-3 "1206" "unknown" 3225 7850 90 bottom
+C15-4-4 "1206" "unknown" 3225 9350 90 bottom
+C15-4-5 "1206" "unknown" 3225 10850 90 bottom
+C15-4-6 "1206" "unknown" 3225 12350 90 bottom
+C15-4-7 "1206" "unknown" 3225 13850 90 bottom
+C15-4-8 "1206" "unknown" 3225 15350 90 bottom
+C15-4-9 "1206" "unknown" 3225 16850 90 bottom
+C15-4-10 "1206" "unknown" 3225 18350 90 bottom
+C15-4-11 "1206" "unknown" 3225 19850 90 bottom
+C15-4-12 "1206" "unknown" 3225 21350 90 bottom
+C15-4-13 "1206" "unknown" 3225 22850 90 bottom
+C15-4-14 "1206" "unknown" 3225 24350 90 bottom
+C15-5-0 "1206" "unknown" 3725 3350 90 bottom
+C15-5-1 "1206" "unknown" 3725 4850 90 bottom
+C15-5-2 "1206" "unknown" 3725 6350 90 bottom
+C15-5-3 "1206" "unknown" 3725 7850 90 bottom
+C15-5-4 "1206" "unknown" 3725 9350 90 bottom
+C15-5-5 "1206" "unknown" 3725 10850 90 bottom
+C15-5-6 "1206" "unknown" 3725 12350 90 bottom
+C15-5-7 "1206" "unknown" 3725 13850 90 bottom
+C15-5-8 "1206" "unknown" 3725 15350 90 bottom
+C15-5-9 "1206" "unknown" 3725 16850 90 bottom
+C15-5-10 "1206" "unknown" 3725 18350 90 bottom
+C15-5-11 "1206" "unknown" 3725 19850 90 bottom
+C15-5-12 "1206" "unknown" 3725 21350 90 bottom
+C15-5-13 "1206" "unknown" 3725 22850 90 bottom
+C15-5-14 "1206" "unknown" 3725 24350 90 bottom
+C15-6-0 "1206" "unknown" 4225 3350 90 bottom
+C15-6-1 "1206" "unknown" 4225 4850 90 bottom
+C15-6-2 "1206" "unknown" 4225 6350 90 bottom
+C15-6-3 "1206" "unknown" 4225 7850 90 bottom
+C15-6-4 "1206" "unknown" 4225 9350 90 bottom
+C15-6-5 "1206" "unknown" 4225 10850 90 bottom
+C15-6-6 "1206" "unknown" 4225 12350 90 bottom
+C15-6-7 "1206" "unknown" 4225 13850 90 bottom
+C15-6-8 "1206" "unknown" 4225 15350 90 bottom
+C15-6-9 "1206" "unknown" 4225 16850 90 bottom
+C15-6-10 "1206" "unknown" 4225 18350 90 bottom
+C15-6-11 "1206" "unknown" 4225 19850 90 bottom
+C15-6-12 "1206" "unknown" 4225 21350 90 bottom
+C15-6-13 "1206" "unknown" 4225 22850 90 bottom
+C15-6-14 "1206" "unknown" 4225 24350 90 bottom
+C15-7-0 "1206" "unknown" 4725 3350 90 bottom
+C15-7-1 "1206" "unknown" 4725 4850 90 bottom
+C15-7-2 "1206" "unknown" 4725 6350 90 bottom
+C15-7-3 "1206" "unknown" 4725 7850 90 bottom
+C15-7-4 "1206" "unknown" 4725 9350 90 bottom
+C15-7-5 "1206" "unknown" 4725 10850 90 bottom
+C15-7-6 "1206" "unknown" 4725 12350 90 bottom
+C15-7-7 "1206" "unknown" 4725 13850 90 bottom
+C15-7-8 "1206" "unknown" 4725 15350 90 bottom
+C15-7-9 "1206" "unknown" 4725 16850 90 bottom
+C15-7-10 "1206" "unknown" 4725 18350 90 bottom
+C15-7-11 "1206" "unknown" 4725 19850 90 bottom
+C15-7-12 "1206" "unknown" 4725 21350 90 bottom
+C15-7-13 "1206" "unknown" 4725 22850 90 bottom
+C15-7-14 "1206" "unknown" 4725 24350 90 bottom
+C15-8-0 "1206" "unknown" 5225 3350 90 bottom
+C15-8-1 "1206" "unknown" 5225 4850 90 bottom
+C15-8-2 "1206" "unknown" 5225 6350 90 bottom
+C15-8-3 "1206" "unknown" 5225 7850 90 bottom
+C15-8-4 "1206" "unknown" 5225 9350 90 bottom
+C15-8-5 "1206" "unknown" 5225 10850 90 bottom
+C15-8-6 "1206" "unknown" 5225 12350 90 bottom
+C15-8-7 "1206" "unknown" 5225 13850 90 bottom
+C15-8-8 "1206" "unknown" 5225 15350 90 bottom
+C15-8-9 "1206" "unknown" 5225 16850 90 bottom
+C15-8-10 "1206" "unknown" 5225 18350 90 bottom
+C15-8-11 "1206" "unknown" 5225 19850 90 bottom
+C15-8-12 "1206" "unknown" 5225 21350 90 bottom
+C15-8-13 "1206" "unknown" 5225 22850 90 bottom
+C15-8-14 "1206" "unknown" 5225 24350 90 bottom
+C15-9-0 "1206" "unknown" 5725 3350 90 bottom
+C15-9-1 "1206" "unknown" 5725 4850 90 bottom
+C15-9-2 "1206" "unknown" 5725 6350 90 bottom
+C15-9-3 "1206" "unknown" 5725 7850 90 bottom
+C15-9-4 "1206" "unknown" 5725 9350 90 bottom
+C15-9-5 "1206" "unknown" 5725 10850 90 bottom
+C15-9-6 "1206" "unknown" 5725 12350 90 bottom
+C15-9-7 "1206" "unknown" 5725 13850 90 bottom
+C15-9-8 "1206" "unknown" 5725 15350 90 bottom
+C15-9-9 "1206" "unknown" 5725 16850 90 bottom
+C15-9-10 "1206" "unknown" 5725 18350 90 bottom
+C15-9-11 "1206" "unknown" 5725 19850 90 bottom
+C15-9-12 "1206" "unknown" 5725 21350 90 bottom
+C15-9-13 "1206" "unknown" 5725 22850 90 bottom
+C15-9-14 "1206" "unknown" 5725 24350 90 bottom
+C15-10-0 "1206" "unknown" 6225 3350 90 bottom
+C15-10-1 "1206" "unknown" 6225 4850 90 bottom
+C15-10-2 "1206" "unknown" 6225 6350 90 bottom
+C15-10-3 "1206" "unknown" 6225 7850 90 bottom
+C15-10-4 "1206" "unknown" 6225 9350 90 bottom
+C15-10-5 "1206" "unknown" 6225 10850 90 bottom
+C15-10-6 "1206" "unknown" 6225 12350 90 bottom
+C15-10-7 "1206" "unknown" 6225 13850 90 bottom
+C15-10-8 "1206" "unknown" 6225 15350 90 bottom
+C15-10-9 "1206" "unknown" 6225 16850 90 bottom
+C15-10-10 "1206" "unknown" 6225 18350 90 bottom
+C15-10-11 "1206" "unknown" 6225 19850 90 bottom
+C15-10-12 "1206" "unknown" 6225 21350 90 bottom
+C15-10-13 "1206" "unknown" 6225 22850 90 bottom
+C15-10-14 "1206" "unknown" 6225 24350 90 bottom
+C15-11-0 "1206" "unknown" 6725 3350 90 bottom
+C15-11-1 "1206" "unknown" 6725 4850 90 bottom
+C15-11-2 "1206" "unknown" 6725 6350 90 bottom
+C15-11-3 "1206" "unknown" 6725 7850 90 bottom
+C15-11-4 "1206" "unknown" 6725 9350 90 bottom
+C15-11-5 "1206" "unknown" 6725 10850 90 bottom
+C15-11-6 "1206" "unknown" 6725 12350 90 bottom
+C15-11-7 "1206" "unknown" 6725 13850 90 bottom
+C15-11-8 "1206" "unknown" 6725 15350 90 bottom
+C15-11-9 "1206" "unknown" 6725 16850 90 bottom
+C15-11-10 "1206" "unknown" 6725 18350 90 bottom
+C15-11-11 "1206" "unknown" 6725 19850 90 bottom
+C15-11-12 "1206" "unknown" 6725 21350 90 bottom
+C15-11-13 "1206" "unknown" 6725 22850 90 bottom
+C15-11-14 "1206" "unknown" 6725 24350 90 bottom
+C15-12-0 "1206" "unknown" 7225 3350 90 bottom
+C15-12-1 "1206" "unknown" 7225 4850 90 bottom
+C15-12-2 "1206" "unknown" 7225 6350 90 bottom
+C15-12-3 "1206" "unknown" 7225 7850 90 bottom
+C15-12-4 "1206" "unknown" 7225 9350 90 bottom
+C15-12-5 "1206" "unknown" 7225 10850 90 bottom
+C15-12-6 "1206" "unknown" 7225 12350 90 bottom
+C15-12-7 "1206" "unknown" 7225 13850 90 bottom
+C15-12-8 "1206" "unknown" 7225 15350 90 bottom
+C15-12-9 "1206" "unknown" 7225 16850 90 bottom
+C15-12-10 "1206" "unknown" 7225 18350 90 bottom
+C15-12-11 "1206" "unknown" 7225 19850 90 bottom
+C15-12-12 "1206" "unknown" 7225 21350 90 bottom
+C15-12-13 "1206" "unknown" 7225 22850 90 bottom
+C15-12-14 "1206" "unknown" 7225 24350 90 bottom
+C15-13-0 "1206" "unknown" 7725 3350 90 bottom
+C15-13-1 "1206" "unknown" 7725 4850 90 bottom
+C15-13-2 "1206" "unknown" 7725 6350 90 bottom
+C15-13-3 "1206" "unknown" 7725 7850 90 bottom
+C15-13-4 "1206" "unknown" 7725 9350 90 bottom
+C15-13-5 "1206" "unknown" 7725 10850 90 bottom
+C15-13-6 "1206" "unknown" 7725 12350 90 bottom
+C15-13-7 "1206" "unknown" 7725 13850 90 bottom
+C15-13-8 "1206" "unknown" 7725 15350 90 bottom
+C15-13-9 "1206" "unknown" 7725 16850 90 bottom
+C15-13-10 "1206" "unknown" 7725 18350 90 bottom
+C15-13-11 "1206" "unknown" 7725 19850 90 bottom
+C15-13-12 "1206" "unknown" 7725 21350 90 bottom
+C15-13-13 "1206" "unknown" 7725 22850 90 bottom
+C15-13-14 "1206" "unknown" 7725 24350 90 bottom
+C15-14-0 "1206" "unknown" 8225 3350 90 bottom
+C15-14-1 "1206" "unknown" 8225 4850 90 bottom
+C15-14-2 "1206" "unknown" 8225 6350 90 bottom
+C15-14-3 "1206" "unknown" 8225 7850 90 bottom
+C15-14-4 "1206" "unknown" 8225 9350 90 bottom
+C15-14-5 "1206" "unknown" 8225 10850 90 bottom
+C15-14-6 "1206" "unknown" 8225 12350 90 bottom
+C15-14-7 "1206" "unknown" 8225 13850 90 bottom
+C15-14-8 "1206" "unknown" 8225 15350 90 bottom
+C15-14-9 "1206" "unknown" 8225 16850 90 bottom
+C15-14-10 "1206" "unknown" 8225 18350 90 bottom
+C15-14-11 "1206" "unknown" 8225 19850 90 bottom
+C15-14-12 "1206" "unknown" 8225 21350 90 bottom
+C15-14-13 "1206" "unknown" 8225 22850 90 bottom
+C15-14-14 "1206" "unknown" 8225 24350 90 bottom
+U1-0-0 "TO220" "unknown" 407.50 4180.00 90 top
+U1-0-1 "TO220" "unknown" 407.5 5680 90 top
+U1-0-2 "TO220" "unknown" 407.5 7180 90 top
+U1-0-3 "TO220" "unknown" 407.5 8680 90 top
+U1-0-4 "TO220" "unknown" 407.5 10180 90 top
+U1-0-5 "TO220" "unknown" 407.5 11680 90 top
+U1-0-6 "TO220" "unknown" 407.5 13180 90 top
+U1-0-7 "TO220" "unknown" 407.5 14680 90 top
+U1-0-8 "TO220" "unknown" 407.5 16180 90 top
+U1-0-9 "TO220" "unknown" 407.5 17680 90 top
+U1-0-10 "TO220" "unknown" 407.5 19180 90 top
+U1-0-11 "TO220" "unknown" 407.5 20680 90 top
+U1-0-12 "TO220" "unknown" 407.5 22180 90 top
+U1-0-13 "TO220" "unknown" 407.5 23680 90 top
+U1-0-14 "TO220" "unknown" 407.5 25180 90 top
+U1-1-0 "TO220" "unknown" 907.5 4180 90 top
+U1-1-1 "TO220" "unknown" 907.5 5680 90 top
+U1-1-2 "TO220" "unknown" 907.5 7180 90 top
+U1-1-3 "TO220" "unknown" 907.5 8680 90 top
+U1-1-4 "TO220" "unknown" 907.5 10180 90 top
+U1-1-5 "TO220" "unknown" 907.5 11680 90 top
+U1-1-6 "TO220" "unknown" 907.5 13180 90 top
+U1-1-7 "TO220" "unknown" 907.5 14680 90 top
+U1-1-8 "TO220" "unknown" 907.5 16180 90 top
+U1-1-9 "TO220" "unknown" 907.5 17680 90 top
+U1-1-10 "TO220" "unknown" 907.5 19180 90 top
+U1-1-11 "TO220" "unknown" 907.5 20680 90 top
+U1-1-12 "TO220" "unknown" 907.5 22180 90 top
+U1-1-13 "TO220" "unknown" 907.5 23680 90 top
+U1-1-14 "TO220" "unknown" 907.5 25180 90 top
+U1-2-0 "TO220" "unknown" 1407.5 4180 90 top
+U1-2-1 "TO220" "unknown" 1407.5 5680 90 top
+U1-2-2 "TO220" "unknown" 1407.5 7180 90 top
+U1-2-3 "TO220" "unknown" 1407.5 8680 90 top
+U1-2-4 "TO220" "unknown" 1407.5 10180 90 top
+U1-2-5 "TO220" "unknown" 1407.5 11680 90 top
+U1-2-6 "TO220" "unknown" 1407.5 13180 90 top
+U1-2-7 "TO220" "unknown" 1407.5 14680 90 top
+U1-2-8 "TO220" "unknown" 1407.5 16180 90 top
+U1-2-9 "TO220" "unknown" 1407.5 17680 90 top
+U1-2-10 "TO220" "unknown" 1407.5 19180 90 top
+U1-2-11 "TO220" "unknown" 1407.5 20680 90 top
+U1-2-12 "TO220" "unknown" 1407.5 22180 90 top
+U1-2-13 "TO220" "unknown" 1407.5 23680 90 top
+U1-2-14 "TO220" "unknown" 1407.5 25180 90 top
+U1-3-0 "TO220" "unknown" 1907.5 4180 90 top
+U1-3-1 "TO220" "unknown" 1907.5 5680 90 top
+U1-3-2 "TO220" "unknown" 1907.5 7180 90 top
+U1-3-3 "TO220" "unknown" 1907.5 8680 90 top
+U1-3-4 "TO220" "unknown" 1907.5 10180 90 top
+U1-3-5 "TO220" "unknown" 1907.5 11680 90 top
+U1-3-6 "TO220" "unknown" 1907.5 13180 90 top
+U1-3-7 "TO220" "unknown" 1907.5 14680 90 top
+U1-3-8 "TO220" "unknown" 1907.5 16180 90 top
+U1-3-9 "TO220" "unknown" 1907.5 17680 90 top
+U1-3-10 "TO220" "unknown" 1907.5 19180 90 top
+U1-3-11 "TO220" "unknown" 1907.5 20680 90 top
+U1-3-12 "TO220" "unknown" 1907.5 22180 90 top
+U1-3-13 "TO220" "unknown" 1907.5 23680 90 top
+U1-3-14 "TO220" "unknown" 1907.5 25180 90 top
+U1-4-0 "TO220" "unknown" 2407.5 4180 90 top
+U1-4-1 "TO220" "unknown" 2407.5 5680 90 top
+U1-4-2 "TO220" "unknown" 2407.5 7180 90 top
+U1-4-3 "TO220" "unknown" 2407.5 8680 90 top
+U1-4-4 "TO220" "unknown" 2407.5 10180 90 top
+U1-4-5 "TO220" "unknown" 2407.5 11680 90 top
+U1-4-6 "TO220" "unknown" 2407.5 13180 90 top
+U1-4-7 "TO220" "unknown" 2407.5 14680 90 top
+U1-4-8 "TO220" "unknown" 2407.5 16180 90 top
+U1-4-9 "TO220" "unknown" 2407.5 17680 90 top
+U1-4-10 "TO220" "unknown" 2407.5 19180 90 top
+U1-4-11 "TO220" "unknown" 2407.5 20680 90 top
+U1-4-12 "TO220" "unknown" 2407.5 22180 90 top
+U1-4-13 "TO220" "unknown" 2407.5 23680 90 top
+U1-4-14 "TO220" "unknown" 2407.5 25180 90 top
+U1-5-0 "TO220" "unknown" 2907.5 4180 90 top
+U1-5-1 "TO220" "unknown" 2907.5 5680 90 top
+U1-5-2 "TO220" "unknown" 2907.5 7180 90 top
+U1-5-3 "TO220" "unknown" 2907.5 8680 90 top
+U1-5-4 "TO220" "unknown" 2907.5 10180 90 top
+U1-5-5 "TO220" "unknown" 2907.5 11680 90 top
+U1-5-6 "TO220" "unknown" 2907.5 13180 90 top
+U1-5-7 "TO220" "unknown" 2907.5 14680 90 top
+U1-5-8 "TO220" "unknown" 2907.5 16180 90 top
+U1-5-9 "TO220" "unknown" 2907.5 17680 90 top
+U1-5-10 "TO220" "unknown" 2907.5 19180 90 top
+U1-5-11 "TO220" "unknown" 2907.5 20680 90 top
+U1-5-12 "TO220" "unknown" 2907.5 22180 90 top
+U1-5-13 "TO220" "unknown" 2907.5 23680 90 top
+U1-5-14 "TO220" "unknown" 2907.5 25180 90 top
+U1-6-0 "TO220" "unknown" 3407.5 4180 90 top
+U1-6-1 "TO220" "unknown" 3407.5 5680 90 top
+U1-6-2 "TO220" "unknown" 3407.5 7180 90 top
+U1-6-3 "TO220" "unknown" 3407.5 8680 90 top
+U1-6-4 "TO220" "unknown" 3407.5 10180 90 top
+U1-6-5 "TO220" "unknown" 3407.5 11680 90 top
+U1-6-6 "TO220" "unknown" 3407.5 13180 90 top
+U1-6-7 "TO220" "unknown" 3407.5 14680 90 top
+U1-6-8 "TO220" "unknown" 3407.5 16180 90 top
+U1-6-9 "TO220" "unknown" 3407.5 17680 90 top
+U1-6-10 "TO220" "unknown" 3407.5 19180 90 top
+U1-6-11 "TO220" "unknown" 3407.5 20680 90 top
+U1-6-12 "TO220" "unknown" 3407.5 22180 90 top
+U1-6-13 "TO220" "unknown" 3407.5 23680 90 top
+U1-6-14 "TO220" "unknown" 3407.5 25180 90 top
+U1-7-0 "TO220" "unknown" 3907.5 4180 90 top
+U1-7-1 "TO220" "unknown" 3907.5 5680 90 top
+U1-7-2 "TO220" "unknown" 3907.5 7180 90 top
+U1-7-3 "TO220" "unknown" 3907.5 8680 90 top
+U1-7-4 "TO220" "unknown" 3907.5 10180 90 top
+U1-7-5 "TO220" "unknown" 3907.5 11680 90 top
+U1-7-6 "TO220" "unknown" 3907.5 13180 90 top
+U1-7-7 "TO220" "unknown" 3907.5 14680 90 top
+U1-7-8 "TO220" "unknown" 3907.5 16180 90 top
+U1-7-9 "TO220" "unknown" 3907.5 17680 90 top
+U1-7-10 "TO220" "unknown" 3907.5 19180 90 top
+U1-7-11 "TO220" "unknown" 3907.5 20680 90 top
+U1-7-12 "TO220" "unknown" 3907.5 22180 90 top
+U1-7-13 "TO220" "unknown" 3907.5 23680 90 top
+U1-7-14 "TO220" "unknown" 3907.5 25180 90 top
+U1-8-0 "TO220" "unknown" 4407.5 4180 90 top
+U1-8-1 "TO220" "unknown" 4407.5 5680 90 top
+U1-8-2 "TO220" "unknown" 4407.5 7180 90 top
+U1-8-3 "TO220" "unknown" 4407.5 8680 90 top
+U1-8-4 "TO220" "unknown" 4407.5 10180 90 top
+U1-8-5 "TO220" "unknown" 4407.5 11680 90 top
+U1-8-6 "TO220" "unknown" 4407.5 13180 90 top
+U1-8-7 "TO220" "unknown" 4407.5 14680 90 top
+U1-8-8 "TO220" "unknown" 4407.5 16180 90 top
+U1-8-9 "TO220" "unknown" 4407.5 17680 90 top
+U1-8-10 "TO220" "unknown" 4407.5 19180 90 top
+U1-8-11 "TO220" "unknown" 4407.5 20680 90 top
+U1-8-12 "TO220" "unknown" 4407.5 22180 90 top
+U1-8-13 "TO220" "unknown" 4407.5 23680 90 top
+U1-8-14 "TO220" "unknown" 4407.5 25180 90 top
+U1-9-0 "TO220" "unknown" 4907.5 4180 90 top
+U1-9-1 "TO220" "unknown" 4907.5 5680 90 top
+U1-9-2 "TO220" "unknown" 4907.5 7180 90 top
+U1-9-3 "TO220" "unknown" 4907.5 8680 90 top
+U1-9-4 "TO220" "unknown" 4907.5 10180 90 top
+U1-9-5 "TO220" "unknown" 4907.5 11680 90 top
+U1-9-6 "TO220" "unknown" 4907.5 13180 90 top
+U1-9-7 "TO220" "unknown" 4907.5 14680 90 top
+U1-9-8 "TO220" "unknown" 4907.5 16180 90 top
+U1-9-9 "TO220" "unknown" 4907.5 17680 90 top
+U1-9-10 "TO220" "unknown" 4907.5 19180 90 top
+U1-9-11 "TO220" "unknown" 4907.5 20680 90 top
+U1-9-12 "TO220" "unknown" 4907.5 22180 90 top
+U1-9-13 "TO220" "unknown" 4907.5 23680 90 top
+U1-9-14 "TO220" "unknown" 4907.5 25180 90 top
+U1-10-0 "TO220" "unknown" 5407.5 4180 90 top
+U1-10-1 "TO220" "unknown" 5407.5 5680 90 top
+U1-10-2 "TO220" "unknown" 5407.5 7180 90 top
+U1-10-3 "TO220" "unknown" 5407.5 8680 90 top
+U1-10-4 "TO220" "unknown" 5407.5 10180 90 top
+U1-10-5 "TO220" "unknown" 5407.5 11680 90 top
+U1-10-6 "TO220" "unknown" 5407.5 13180 90 top
+U1-10-7 "TO220" "unknown" 5407.5 14680 90 top
+U1-10-8 "TO220" "unknown" 5407.5 16180 90 top
+U1-10-9 "TO220" "unknown" 5407.5 17680 90 top
+U1-10-10 "TO220" "unknown" 5407.5 19180 90 top
+U1-10-11 "TO220" "unknown" 5407.5 20680 90 top
+U1-10-12 "TO220" "unknown" 5407.5 22180 90 top
+U1-10-13 "TO220" "unknown" 5407.5 23680 90 top
+U1-10-14 "TO220" "unknown" 5407.5 25180 90 top
+U1-11-0 "TO220" "unknown" 5907.5 4180 90 top
+U1-11-1 "TO220" "unknown" 5907.5 5680 90 top
+U1-11-2 "TO220" "unknown" 5907.5 7180 90 top
+U1-11-3 "TO220" "unknown" 5907.5 8680 90 top
+U1-11-4 "TO220" "unknown" 5907.5 10180 90 top
+U1-11-5 "TO220" "unknown" 5907.5 11680 90 top
+U1-11-6 "TO220" "unknown" 5907.5 13180 90 top
+U1-11-7 "TO220" "unknown" 5907.5 14680 90 top
+U1-11-8 "TO220" "unknown" 5907.5 16180 90 top
+U1-11-9 "TO220" "unknown" 5907.5 17680 90 top
+U1-11-10 "TO220" "unknown" 5907.5 19180 90 top
+U1-11-11 "TO220" "unknown" 5907.5 20680 90 top
+U1-11-12 "TO220" "unknown" 5907.5 22180 90 top
+U1-11-13 "TO220" "unknown" 5907.5 23680 90 top
+U1-11-14 "TO220" "unknown" 5907.5 25180 90 top
+U1-12-0 "TO220" "unknown" 6407.5 4180 90 top
+U1-12-1 "TO220" "unknown" 6407.5 5680 90 top
+U1-12-2 "TO220" "unknown" 6407.5 7180 90 top
+U1-12-3 "TO220" "unknown" 6407.5 8680 90 top
+U1-12-4 "TO220" "unknown" 6407.5 10180 90 top
+U1-12-5 "TO220" "unknown" 6407.5 11680 90 top
+U1-12-6 "TO220" "unknown" 6407.5 13180 90 top
+U1-12-7 "TO220" "unknown" 6407.5 14680 90 top
+U1-12-8 "TO220" "unknown" 6407.5 16180 90 top
+U1-12-9 "TO220" "unknown" 6407.5 17680 90 top
+U1-12-10 "TO220" "unknown" 6407.5 19180 90 top
+U1-12-11 "TO220" "unknown" 6407.5 20680 90 top
+U1-12-12 "TO220" "unknown" 6407.5 22180 90 top
+U1-12-13 "TO220" "unknown" 6407.5 23680 90 top
+U1-12-14 "TO220" "unknown" 6407.5 25180 90 top
+U1-13-0 "TO220" "unknown" 6907.5 4180 90 top
+U1-13-1 "TO220" "unknown" 6907.5 5680 90 top
+U1-13-2 "TO220" "unknown" 6907.5 7180 90 top
+U1-13-3 "TO220" "unknown" 6907.5 8680 90 top
+U1-13-4 "TO220" "unknown" 6907.5 10180 90 top
+U1-13-5 "TO220" "unknown" 6907.5 11680 90 top
+U1-13-6 "TO220" "unknown" 6907.5 13180 90 top
+U1-13-7 "TO220" "unknown" 6907.5 14680 90 top
+U1-13-8 "TO220" "unknown" 6907.5 16180 90 top
+U1-13-9 "TO220" "unknown" 6907.5 17680 90 top
+U1-13-10 "TO220" "unknown" 6907.5 19180 90 top
+U1-13-11 "TO220" "unknown" 6907.5 20680 90 top
+U1-13-12 "TO220" "unknown" 6907.5 22180 90 top
+U1-13-13 "TO220" "unknown" 6907.5 23680 90 top
+U1-13-14 "TO220" "unknown" 6907.5 25180 90 top
+U1-14-0 "TO220" "unknown" 7407.5 4180 90 top
+U1-14-1 "TO220" "unknown" 7407.5 5680 90 top
+U1-14-2 "TO220" "unknown" 7407.5 7180 90 top
+U1-14-3 "TO220" "unknown" 7407.5 8680 90 top
+U1-14-4 "TO220" "unknown" 7407.5 10180 90 top
+U1-14-5 "TO220" "unknown" 7407.5 11680 90 top
+U1-14-6 "TO220" "unknown" 7407.5 13180 90 top
+U1-14-7 "TO220" "unknown" 7407.5 14680 90 top
+U1-14-8 "TO220" "unknown" 7407.5 16180 90 top
+U1-14-9 "TO220" "unknown" 7407.5 17680 90 top
+U1-14-10 "TO220" "unknown" 7407.5 19180 90 top
+U1-14-11 "TO220" "unknown" 7407.5 20680 90 top
+U1-14-12 "TO220" "unknown" 7407.5 22180 90 top
+U1-14-13 "TO220" "unknown" 7407.5 23680 90 top
+U1-14-14 "TO220" "unknown" 7407.5 25180 90 top
+R9-0-0 "1206" "1k" 1875.00 3350.00 90 bottom
+R9-0-1 "1206" "1k" 1875 4850 90 bottom
+R9-0-2 "1206" "1k" 1875 6350 90 bottom
+R9-0-3 "1206" "1k" 1875 7850 90 bottom
+R9-0-4 "1206" "1k" 1875 9350 90 bottom
+R9-0-5 "1206" "1k" 1875 10850 90 bottom
+R9-0-6 "1206" "1k" 1875 12350 90 bottom
+R9-0-7 "1206" "1k" 1875 13850 90 bottom
+R9-0-8 "1206" "1k" 1875 15350 90 bottom
+R9-0-9 "1206" "1k" 1875 16850 90 bottom
+R9-0-10 "1206" "1k" 1875 18350 90 bottom
+R9-0-11 "1206" "1k" 1875 19850 90 bottom
+R9-0-12 "1206" "1k" 1875 21350 90 bottom
+R9-0-13 "1206" "1k" 1875 22850 90 bottom
+R9-0-14 "1206" "1k" 1875 24350 90 bottom
+R9-1-0 "1206" "1k" 2375 3350 90 bottom
+R9-1-1 "1206" "1k" 2375 4850 90 bottom
+R9-1-2 "1206" "1k" 2375 6350 90 bottom
+R9-1-3 "1206" "1k" 2375 7850 90 bottom
+R9-1-4 "1206" "1k" 2375 9350 90 bottom
+R9-1-5 "1206" "1k" 2375 10850 90 bottom
+R9-1-6 "1206" "1k" 2375 12350 90 bottom
+R9-1-7 "1206" "1k" 2375 13850 90 bottom
+R9-1-8 "1206" "1k" 2375 15350 90 bottom
+R9-1-9 "1206" "1k" 2375 16850 90 bottom
+R9-1-10 "1206" "1k" 2375 18350 90 bottom
+R9-1-11 "1206" "1k" 2375 19850 90 bottom
+R9-1-12 "1206" "1k" 2375 21350 90 bottom
+R9-1-13 "1206" "1k" 2375 22850 90 bottom
+R9-1-14 "1206" "1k" 2375 24350 90 bottom
+R9-2-0 "1206" "1k" 2875 3350 90 bottom
+R9-2-1 "1206" "1k" 2875 4850 90 bottom
+R9-2-2 "1206" "1k" 2875 6350 90 bottom
+R9-2-3 "1206" "1k" 2875 7850 90 bottom
+R9-2-4 "1206" "1k" 2875 9350 90 bottom
+R9-2-5 "1206" "1k" 2875 10850 90 bottom
+R9-2-6 "1206" "1k" 2875 12350 90 bottom
+R9-2-7 "1206" "1k" 2875 13850 90 bottom
+R9-2-8 "1206" "1k" 2875 15350 90 bottom
+R9-2-9 "1206" "1k" 2875 16850 90 bottom
+R9-2-10 "1206" "1k" 2875 18350 90 bottom
+R9-2-11 "1206" "1k" 2875 19850 90 bottom
+R9-2-12 "1206" "1k" 2875 21350 90 bottom
+R9-2-13 "1206" "1k" 2875 22850 90 bottom
+R9-2-14 "1206" "1k" 2875 24350 90 bottom
+R9-3-0 "1206" "1k" 3375 3350 90 bottom
+R9-3-1 "1206" "1k" 3375 4850 90 bottom
+R9-3-2 "1206" "1k" 3375 6350 90 bottom
+R9-3-3 "1206" "1k" 3375 7850 90 bottom
+R9-3-4 "1206" "1k" 3375 9350 90 bottom
+R9-3-5 "1206" "1k" 3375 10850 90 bottom
+R9-3-6 "1206" "1k" 3375 12350 90 bottom
+R9-3-7 "1206" "1k" 3375 13850 90 bottom
+R9-3-8 "1206" "1k" 3375 15350 90 bottom
+R9-3-9 "1206" "1k" 3375 16850 90 bottom
+R9-3-10 "1206" "1k" 3375 18350 90 bottom
+R9-3-11 "1206" "1k" 3375 19850 90 bottom
+R9-3-12 "1206" "1k" 3375 21350 90 bottom
+R9-3-13 "1206" "1k" 3375 22850 90 bottom
+R9-3-14 "1206" "1k" 3375 24350 90 bottom
+R9-4-0 "1206" "1k" 3875 3350 90 bottom
+R9-4-1 "1206" "1k" 3875 4850 90 bottom
+R9-4-2 "1206" "1k" 3875 6350 90 bottom
+R9-4-3 "1206" "1k" 3875 7850 90 bottom
+R9-4-4 "1206" "1k" 3875 9350 90 bottom
+R9-4-5 "1206" "1k" 3875 10850 90 bottom
+R9-4-6 "1206" "1k" 3875 12350 90 bottom
+R9-4-7 "1206" "1k" 3875 13850 90 bottom
+R9-4-8 "1206" "1k" 3875 15350 90 bottom
+R9-4-9 "1206" "1k" 3875 16850 90 bottom
+R9-4-10 "1206" "1k" 3875 18350 90 bottom
+R9-4-11 "1206" "1k" 3875 19850 90 bottom
+R9-4-12 "1206" "1k" 3875 21350 90 bottom
+R9-4-13 "1206" "1k" 3875 22850 90 bottom
+R9-4-14 "1206" "1k" 3875 24350 90 bottom
+R9-5-0 "1206" "1k" 4375 3350 90 bottom
+R9-5-1 "1206" "1k" 4375 4850 90 bottom
+R9-5-2 "1206" "1k" 4375 6350 90 bottom
+R9-5-3 "1206" "1k" 4375 7850 90 bottom
+R9-5-4 "1206" "1k" 4375 9350 90 bottom
+R9-5-5 "1206" "1k" 4375 10850 90 bottom
+R9-5-6 "1206" "1k" 4375 12350 90 bottom
+R9-5-7 "1206" "1k" 4375 13850 90 bottom
+R9-5-8 "1206" "1k" 4375 15350 90 bottom
+R9-5-9 "1206" "1k" 4375 16850 90 bottom
+R9-5-10 "1206" "1k" 4375 18350 90 bottom
+R9-5-11 "1206" "1k" 4375 19850 90 bottom
+R9-5-12 "1206" "1k" 4375 21350 90 bottom
+R9-5-13 "1206" "1k" 4375 22850 90 bottom
+R9-5-14 "1206" "1k" 4375 24350 90 bottom
+R9-6-0 "1206" "1k" 4875 3350 90 bottom
+R9-6-1 "1206" "1k" 4875 4850 90 bottom
+R9-6-2 "1206" "1k" 4875 6350 90 bottom
+R9-6-3 "1206" "1k" 4875 7850 90 bottom
+R9-6-4 "1206" "1k" 4875 9350 90 bottom
+R9-6-5 "1206" "1k" 4875 10850 90 bottom
+R9-6-6 "1206" "1k" 4875 12350 90 bottom
+R9-6-7 "1206" "1k" 4875 13850 90 bottom
+R9-6-8 "1206" "1k" 4875 15350 90 bottom
+R9-6-9 "1206" "1k" 4875 16850 90 bottom
+R9-6-10 "1206" "1k" 4875 18350 90 bottom
+R9-6-11 "1206" "1k" 4875 19850 90 bottom
+R9-6-12 "1206" "1k" 4875 21350 90 bottom
+R9-6-13 "1206" "1k" 4875 22850 90 bottom
+R9-6-14 "1206" "1k" 4875 24350 90 bottom
+R9-7-0 "1206" "1k" 5375 3350 90 bottom
+R9-7-1 "1206" "1k" 5375 4850 90 bottom
+R9-7-2 "1206" "1k" 5375 6350 90 bottom
+R9-7-3 "1206" "1k" 5375 7850 90 bottom
+R9-7-4 "1206" "1k" 5375 9350 90 bottom
+R9-7-5 "1206" "1k" 5375 10850 90 bottom
+R9-7-6 "1206" "1k" 5375 12350 90 bottom
+R9-7-7 "1206" "1k" 5375 13850 90 bottom
+R9-7-8 "1206" "1k" 5375 15350 90 bottom
+R9-7-9 "1206" "1k" 5375 16850 90 bottom
+R9-7-10 "1206" "1k" 5375 18350 90 bottom
+R9-7-11 "1206" "1k" 5375 19850 90 bottom
+R9-7-12 "1206" "1k" 5375 21350 90 bottom
+R9-7-13 "1206" "1k" 5375 22850 90 bottom
+R9-7-14 "1206" "1k" 5375 24350 90 bottom
+R9-8-0 "1206" "1k" 5875 3350 90 bottom
+R9-8-1 "1206" "1k" 5875 4850 90 bottom
+R9-8-2 "1206" "1k" 5875 6350 90 bottom
+R9-8-3 "1206" "1k" 5875 7850 90 bottom
+R9-8-4 "1206" "1k" 5875 9350 90 bottom
+R9-8-5 "1206" "1k" 5875 10850 90 bottom
+R9-8-6 "1206" "1k" 5875 12350 90 bottom
+R9-8-7 "1206" "1k" 5875 13850 90 bottom
+R9-8-8 "1206" "1k" 5875 15350 90 bottom
+R9-8-9 "1206" "1k" 5875 16850 90 bottom
+R9-8-10 "1206" "1k" 5875 18350 90 bottom
+R9-8-11 "1206" "1k" 5875 19850 90 bottom
+R9-8-12 "1206" "1k" 5875 21350 90 bottom
+R9-8-13 "1206" "1k" 5875 22850 90 bottom
+R9-8-14 "1206" "1k" 5875 24350 90 bottom
+R9-9-0 "1206" "1k" 6375 3350 90 bottom
+R9-9-1 "1206" "1k" 6375 4850 90 bottom
+R9-9-2 "1206" "1k" 6375 6350 90 bottom
+R9-9-3 "1206" "1k" 6375 7850 90 bottom
+R9-9-4 "1206" "1k" 6375 9350 90 bottom
+R9-9-5 "1206" "1k" 6375 10850 90 bottom
+R9-9-6 "1206" "1k" 6375 12350 90 bottom
+R9-9-7 "1206" "1k" 6375 13850 90 bottom
+R9-9-8 "1206" "1k" 6375 15350 90 bottom
+R9-9-9 "1206" "1k" 6375 16850 90 bottom
+R9-9-10 "1206" "1k" 6375 18350 90 bottom
+R9-9-11 "1206" "1k" 6375 19850 90 bottom
+R9-9-12 "1206" "1k" 6375 21350 90 bottom
+R9-9-13 "1206" "1k" 6375 22850 90 bottom
+R9-9-14 "1206" "1k" 6375 24350 90 bottom
+R9-10-0 "1206" "1k" 6875 3350 90 bottom
+R9-10-1 "1206" "1k" 6875 4850 90 bottom
+R9-10-2 "1206" "1k" 6875 6350 90 bottom
+R9-10-3 "1206" "1k" 6875 7850 90 bottom
+R9-10-4 "1206" "1k" 6875 9350 90 bottom
+R9-10-5 "1206" "1k" 6875 10850 90 bottom
+R9-10-6 "1206" "1k" 6875 12350 90 bottom
+R9-10-7 "1206" "1k" 6875 13850 90 bottom
+R9-10-8 "1206" "1k" 6875 15350 90 bottom
+R9-10-9 "1206" "1k" 6875 16850 90 bottom
+R9-10-10 "1206" "1k" 6875 18350 90 bottom
+R9-10-11 "1206" "1k" 6875 19850 90 bottom
+R9-10-12 "1206" "1k" 6875 21350 90 bottom
+R9-10-13 "1206" "1k" 6875 22850 90 bottom
+R9-10-14 "1206" "1k" 6875 24350 90 bottom
+R9-11-0 "1206" "1k" 7375 3350 90 bottom
+R9-11-1 "1206" "1k" 7375 4850 90 bottom
+R9-11-2 "1206" "1k" 7375 6350 90 bottom
+R9-11-3 "1206" "1k" 7375 7850 90 bottom
+R9-11-4 "1206" "1k" 7375 9350 90 bottom
+R9-11-5 "1206" "1k" 7375 10850 90 bottom
+R9-11-6 "1206" "1k" 7375 12350 90 bottom
+R9-11-7 "1206" "1k" 7375 13850 90 bottom
+R9-11-8 "1206" "1k" 7375 15350 90 bottom
+R9-11-9 "1206" "1k" 7375 16850 90 bottom
+R9-11-10 "1206" "1k" 7375 18350 90 bottom
+R9-11-11 "1206" "1k" 7375 19850 90 bottom
+R9-11-12 "1206" "1k" 7375 21350 90 bottom
+R9-11-13 "1206" "1k" 7375 22850 90 bottom
+R9-11-14 "1206" "1k" 7375 24350 90 bottom
+R9-12-0 "1206" "1k" 7875 3350 90 bottom
+R9-12-1 "1206" "1k" 7875 4850 90 bottom
+R9-12-2 "1206" "1k" 7875 6350 90 bottom
+R9-12-3 "1206" "1k" 7875 7850 90 bottom
+R9-12-4 "1206" "1k" 7875 9350 90 bottom
+R9-12-5 "1206" "1k" 7875 10850 90 bottom
+R9-12-6 "1206" "1k" 7875 12350 90 bottom
+R9-12-7 "1206" "1k" 7875 13850 90 bottom
+R9-12-8 "1206" "1k" 7875 15350 90 bottom
+R9-12-9 "1206" "1k" 7875 16850 90 bottom
+R9-12-10 "1206" "1k" 7875 18350 90 bottom
+R9-12-11 "1206" "1k" 7875 19850 90 bottom
+R9-12-12 "1206" "1k" 7875 21350 90 bottom
+R9-12-13 "1206" "1k" 7875 22850 90 bottom
+R9-12-14 "1206" "1k" 7875 24350 90 bottom
+R9-13-0 "1206" "1k" 8375 3350 90 bottom
+R9-13-1 "1206" "1k" 8375 4850 90 bottom
+R9-13-2 "1206" "1k" 8375 6350 90 bottom
+R9-13-3 "1206" "1k" 8375 7850 90 bottom
+R9-13-4 "1206" "1k" 8375 9350 90 bottom
+R9-13-5 "1206" "1k" 8375 10850 90 bottom
+R9-13-6 "1206" "1k" 8375 12350 90 bottom
+R9-13-7 "1206" "1k" 8375 13850 90 bottom
+R9-13-8 "1206" "1k" 8375 15350 90 bottom
+R9-13-9 "1206" "1k" 8375 16850 90 bottom
+R9-13-10 "1206" "1k" 8375 18350 90 bottom
+R9-13-11 "1206" "1k" 8375 19850 90 bottom
+R9-13-12 "1206" "1k" 8375 21350 90 bottom
+R9-13-13 "1206" "1k" 8375 22850 90 bottom
+R9-13-14 "1206" "1k" 8375 24350 90 bottom
+R9-14-0 "1206" "1k" 8875 3350 90 bottom
+R9-14-1 "1206" "1k" 8875 4850 90 bottom
+R9-14-2 "1206" "1k" 8875 6350 90 bottom
+R9-14-3 "1206" "1k" 8875 7850 90 bottom
+R9-14-4 "1206" "1k" 8875 9350 90 bottom
+R9-14-5 "1206" "1k" 8875 10850 90 bottom
+R9-14-6 "1206" "1k" 8875 12350 90 bottom
+R9-14-7 "1206" "1k" 8875 13850 90 bottom
+R9-14-8 "1206" "1k" 8875 15350 90 bottom
+R9-14-9 "1206" "1k" 8875 16850 90 bottom
+R9-14-10 "1206" "1k" 8875 18350 90 bottom
+R9-14-11 "1206" "1k" 8875 19850 90 bottom
+R9-14-12 "1206" "1k" 8875 21350 90 bottom
+R9-14-13 "1206" "1k" 8875 22850 90 bottom
+R9-14-14 "1206" "1k" 8875 24350 90 bottom
+R10-0-0 "1206" "1k" 1550.00 3300.00 0 bottom
+R10-0-1 "1206" "1k" 1550 4800 0 bottom
+R10-0-2 "1206" "1k" 1550 6300 0 bottom
+R10-0-3 "1206" "1k" 1550 7800 0 bottom
+R10-0-4 "1206" "1k" 1550 9300 0 bottom
+R10-0-5 "1206" "1k" 1550 10800 0 bottom
+R10-0-6 "1206" "1k" 1550 12300 0 bottom
+R10-0-7 "1206" "1k" 1550 13800 0 bottom
+R10-0-8 "1206" "1k" 1550 15300 0 bottom
+R10-0-9 "1206" "1k" 1550 16800 0 bottom
+R10-0-10 "1206" "1k" 1550 18300 0 bottom
+R10-0-11 "1206" "1k" 1550 19800 0 bottom
+R10-0-12 "1206" "1k" 1550 21300 0 bottom
+R10-0-13 "1206" "1k" 1550 22800 0 bottom
+R10-0-14 "1206" "1k" 1550 24300 0 bottom
+R10-1-0 "1206" "1k" 2050 3300 0 bottom
+R10-1-1 "1206" "1k" 2050 4800 0 bottom
+R10-1-2 "1206" "1k" 2050 6300 0 bottom
+R10-1-3 "1206" "1k" 2050 7800 0 bottom
+R10-1-4 "1206" "1k" 2050 9300 0 bottom
+R10-1-5 "1206" "1k" 2050 10800 0 bottom
+R10-1-6 "1206" "1k" 2050 12300 0 bottom
+R10-1-7 "1206" "1k" 2050 13800 0 bottom
+R10-1-8 "1206" "1k" 2050 15300 0 bottom
+R10-1-9 "1206" "1k" 2050 16800 0 bottom
+R10-1-10 "1206" "1k" 2050 18300 0 bottom
+R10-1-11 "1206" "1k" 2050 19800 0 bottom
+R10-1-12 "1206" "1k" 2050 21300 0 bottom
+R10-1-13 "1206" "1k" 2050 22800 0 bottom
+R10-1-14 "1206" "1k" 2050 24300 0 bottom
+R10-2-0 "1206" "1k" 2550 3300 0 bottom
+R10-2-1 "1206" "1k" 2550 4800 0 bottom
+R10-2-2 "1206" "1k" 2550 6300 0 bottom
+R10-2-3 "1206" "1k" 2550 7800 0 bottom
+R10-2-4 "1206" "1k" 2550 9300 0 bottom
+R10-2-5 "1206" "1k" 2550 10800 0 bottom
+R10-2-6 "1206" "1k" 2550 12300 0 bottom
+R10-2-7 "1206" "1k" 2550 13800 0 bottom
+R10-2-8 "1206" "1k" 2550 15300 0 bottom
+R10-2-9 "1206" "1k" 2550 16800 0 bottom
+R10-2-10 "1206" "1k" 2550 18300 0 bottom
+R10-2-11 "1206" "1k" 2550 19800 0 bottom
+R10-2-12 "1206" "1k" 2550 21300 0 bottom
+R10-2-13 "1206" "1k" 2550 22800 0 bottom
+R10-2-14 "1206" "1k" 2550 24300 0 bottom
+R10-3-0 "1206" "1k" 3050 3300 0 bottom
+R10-3-1 "1206" "1k" 3050 4800 0 bottom
+R10-3-2 "1206" "1k" 3050 6300 0 bottom
+R10-3-3 "1206" "1k" 3050 7800 0 bottom
+R10-3-4 "1206" "1k" 3050 9300 0 bottom
+R10-3-5 "1206" "1k" 3050 10800 0 bottom
+R10-3-6 "1206" "1k" 3050 12300 0 bottom
+R10-3-7 "1206" "1k" 3050 13800 0 bottom
+R10-3-8 "1206" "1k" 3050 15300 0 bottom
+R10-3-9 "1206" "1k" 3050 16800 0 bottom
+R10-3-10 "1206" "1k" 3050 18300 0 bottom
+R10-3-11 "1206" "1k" 3050 19800 0 bottom
+R10-3-12 "1206" "1k" 3050 21300 0 bottom
+R10-3-13 "1206" "1k" 3050 22800 0 bottom
+R10-3-14 "1206" "1k" 3050 24300 0 bottom
+R10-4-0 "1206" "1k" 3550 3300 0 bottom
+R10-4-1 "1206" "1k" 3550 4800 0 bottom
+R10-4-2 "1206" "1k" 3550 6300 0 bottom
+R10-4-3 "1206" "1k" 3550 7800 0 bottom
+R10-4-4 "1206" "1k" 3550 9300 0 bottom
+R10-4-5 "1206" "1k" 3550 10800 0 bottom
+R10-4-6 "1206" "1k" 3550 12300 0 bottom
+R10-4-7 "1206" "1k" 3550 13800 0 bottom
+R10-4-8 "1206" "1k" 3550 15300 0 bottom
+R10-4-9 "1206" "1k" 3550 16800 0 bottom
+R10-4-10 "1206" "1k" 3550 18300 0 bottom
+R10-4-11 "1206" "1k" 3550 19800 0 bottom
+R10-4-12 "1206" "1k" 3550 21300 0 bottom
+R10-4-13 "1206" "1k" 3550 22800 0 bottom
+R10-4-14 "1206" "1k" 3550 24300 0 bottom
+R10-5-0 "1206" "1k" 4050 3300 0 bottom
+R10-5-1 "1206" "1k" 4050 4800 0 bottom
+R10-5-2 "1206" "1k" 4050 6300 0 bottom
+R10-5-3 "1206" "1k" 4050 7800 0 bottom
+R10-5-4 "1206" "1k" 4050 9300 0 bottom
+R10-5-5 "1206" "1k" 4050 10800 0 bottom
+R10-5-6 "1206" "1k" 4050 12300 0 bottom
+R10-5-7 "1206" "1k" 4050 13800 0 bottom
+R10-5-8 "1206" "1k" 4050 15300 0 bottom
+R10-5-9 "1206" "1k" 4050 16800 0 bottom
+R10-5-10 "1206" "1k" 4050 18300 0 bottom
+R10-5-11 "1206" "1k" 4050 19800 0 bottom
+R10-5-12 "1206" "1k" 4050 21300 0 bottom
+R10-5-13 "1206" "1k" 4050 22800 0 bottom
+R10-5-14 "1206" "1k" 4050 24300 0 bottom
+R10-6-0 "1206" "1k" 4550 3300 0 bottom
+R10-6-1 "1206" "1k" 4550 4800 0 bottom
+R10-6-2 "1206" "1k" 4550 6300 0 bottom
+R10-6-3 "1206" "1k" 4550 7800 0 bottom
+R10-6-4 "1206" "1k" 4550 9300 0 bottom
+R10-6-5 "1206" "1k" 4550 10800 0 bottom
+R10-6-6 "1206" "1k" 4550 12300 0 bottom
+R10-6-7 "1206" "1k" 4550 13800 0 bottom
+R10-6-8 "1206" "1k" 4550 15300 0 bottom
+R10-6-9 "1206" "1k" 4550 16800 0 bottom
+R10-6-10 "1206" "1k" 4550 18300 0 bottom
+R10-6-11 "1206" "1k" 4550 19800 0 bottom
+R10-6-12 "1206" "1k" 4550 21300 0 bottom
+R10-6-13 "1206" "1k" 4550 22800 0 bottom
+R10-6-14 "1206" "1k" 4550 24300 0 bottom
+R10-7-0 "1206" "1k" 5050 3300 0 bottom
+R10-7-1 "1206" "1k" 5050 4800 0 bottom
+R10-7-2 "1206" "1k" 5050 6300 0 bottom
+R10-7-3 "1206" "1k" 5050 7800 0 bottom
+R10-7-4 "1206" "1k" 5050 9300 0 bottom
+R10-7-5 "1206" "1k" 5050 10800 0 bottom
+R10-7-6 "1206" "1k" 5050 12300 0 bottom
+R10-7-7 "1206" "1k" 5050 13800 0 bottom
+R10-7-8 "1206" "1k" 5050 15300 0 bottom
+R10-7-9 "1206" "1k" 5050 16800 0 bottom
+R10-7-10 "1206" "1k" 5050 18300 0 bottom
+R10-7-11 "1206" "1k" 5050 19800 0 bottom
+R10-7-12 "1206" "1k" 5050 21300 0 bottom
+R10-7-13 "1206" "1k" 5050 22800 0 bottom
+R10-7-14 "1206" "1k" 5050 24300 0 bottom
+R10-8-0 "1206" "1k" 5550 3300 0 bottom
+R10-8-1 "1206" "1k" 5550 4800 0 bottom
+R10-8-2 "1206" "1k" 5550 6300 0 bottom
+R10-8-3 "1206" "1k" 5550 7800 0 bottom
+R10-8-4 "1206" "1k" 5550 9300 0 bottom
+R10-8-5 "1206" "1k" 5550 10800 0 bottom
+R10-8-6 "1206" "1k" 5550 12300 0 bottom
+R10-8-7 "1206" "1k" 5550 13800 0 bottom
+R10-8-8 "1206" "1k" 5550 15300 0 bottom
+R10-8-9 "1206" "1k" 5550 16800 0 bottom
+R10-8-10 "1206" "1k" 5550 18300 0 bottom
+R10-8-11 "1206" "1k" 5550 19800 0 bottom
+R10-8-12 "1206" "1k" 5550 21300 0 bottom
+R10-8-13 "1206" "1k" 5550 22800 0 bottom
+R10-8-14 "1206" "1k" 5550 24300 0 bottom
+R10-9-0 "1206" "1k" 6050 3300 0 bottom
+R10-9-1 "1206" "1k" 6050 4800 0 bottom
+R10-9-2 "1206" "1k" 6050 6300 0 bottom
+R10-9-3 "1206" "1k" 6050 7800 0 bottom
+R10-9-4 "1206" "1k" 6050 9300 0 bottom
+R10-9-5 "1206" "1k" 6050 10800 0 bottom
+R10-9-6 "1206" "1k" 6050 12300 0 bottom
+R10-9-7 "1206" "1k" 6050 13800 0 bottom
+R10-9-8 "1206" "1k" 6050 15300 0 bottom
+R10-9-9 "1206" "1k" 6050 16800 0 bottom
+R10-9-10 "1206" "1k" 6050 18300 0 bottom
+R10-9-11 "1206" "1k" 6050 19800 0 bottom
+R10-9-12 "1206" "1k" 6050 21300 0 bottom
+R10-9-13 "1206" "1k" 6050 22800 0 bottom
+R10-9-14 "1206" "1k" 6050 24300 0 bottom
+R10-10-0 "1206" "1k" 6550 3300 0 bottom
+R10-10-1 "1206" "1k" 6550 4800 0 bottom
+R10-10-2 "1206" "1k" 6550 6300 0 bottom
+R10-10-3 "1206" "1k" 6550 7800 0 bottom
+R10-10-4 "1206" "1k" 6550 9300 0 bottom
+R10-10-5 "1206" "1k" 6550 10800 0 bottom
+R10-10-6 "1206" "1k" 6550 12300 0 bottom
+R10-10-7 "1206" "1k" 6550 13800 0 bottom
+R10-10-8 "1206" "1k" 6550 15300 0 bottom
+R10-10-9 "1206" "1k" 6550 16800 0 bottom
+R10-10-10 "1206" "1k" 6550 18300 0 bottom
+R10-10-11 "1206" "1k" 6550 19800 0 bottom
+R10-10-12 "1206" "1k" 6550 21300 0 bottom
+R10-10-13 "1206" "1k" 6550 22800 0 bottom
+R10-10-14 "1206" "1k" 6550 24300 0 bottom
+R10-11-0 "1206" "1k" 7050 3300 0 bottom
+R10-11-1 "1206" "1k" 7050 4800 0 bottom
+R10-11-2 "1206" "1k" 7050 6300 0 bottom
+R10-11-3 "1206" "1k" 7050 7800 0 bottom
+R10-11-4 "1206" "1k" 7050 9300 0 bottom
+R10-11-5 "1206" "1k" 7050 10800 0 bottom
+R10-11-6 "1206" "1k" 7050 12300 0 bottom
+R10-11-7 "1206" "1k" 7050 13800 0 bottom
+R10-11-8 "1206" "1k" 7050 15300 0 bottom
+R10-11-9 "1206" "1k" 7050 16800 0 bottom
+R10-11-10 "1206" "1k" 7050 18300 0 bottom
+R10-11-11 "1206" "1k" 7050 19800 0 bottom
+R10-11-12 "1206" "1k" 7050 21300 0 bottom
+R10-11-13 "1206" "1k" 7050 22800 0 bottom
+R10-11-14 "1206" "1k" 7050 24300 0 bottom
+R10-12-0 "1206" "1k" 7550 3300 0 bottom
+R10-12-1 "1206" "1k" 7550 4800 0 bottom
+R10-12-2 "1206" "1k" 7550 6300 0 bottom
+R10-12-3 "1206" "1k" 7550 7800 0 bottom
+R10-12-4 "1206" "1k" 7550 9300 0 bottom
+R10-12-5 "1206" "1k" 7550 10800 0 bottom
+R10-12-6 "1206" "1k" 7550 12300 0 bottom
+R10-12-7 "1206" "1k" 7550 13800 0 bottom
+R10-12-8 "1206" "1k" 7550 15300 0 bottom
+R10-12-9 "1206" "1k" 7550 16800 0 bottom
+R10-12-10 "1206" "1k" 7550 18300 0 bottom
+R10-12-11 "1206" "1k" 7550 19800 0 bottom
+R10-12-12 "1206" "1k" 7550 21300 0 bottom
+R10-12-13 "1206" "1k" 7550 22800 0 bottom
+R10-12-14 "1206" "1k" 7550 24300 0 bottom
+R10-13-0 "1206" "1k" 8050 3300 0 bottom
+R10-13-1 "1206" "1k" 8050 4800 0 bottom
+R10-13-2 "1206" "1k" 8050 6300 0 bottom
+R10-13-3 "1206" "1k" 8050 7800 0 bottom
+R10-13-4 "1206" "1k" 8050 9300 0 bottom
+R10-13-5 "1206" "1k" 8050 10800 0 bottom
+R10-13-6 "1206" "1k" 8050 12300 0 bottom
+R10-13-7 "1206" "1k" 8050 13800 0 bottom
+R10-13-8 "1206" "1k" 8050 15300 0 bottom
+R10-13-9 "1206" "1k" 8050 16800 0 bottom
+R10-13-10 "1206" "1k" 8050 18300 0 bottom
+R10-13-11 "1206" "1k" 8050 19800 0 bottom
+R10-13-12 "1206" "1k" 8050 21300 0 bottom
+R10-13-13 "1206" "1k" 8050 22800 0 bottom
+R10-13-14 "1206" "1k" 8050 24300 0 bottom
+R10-14-0 "1206" "1k" 8550 3300 0 bottom
+R10-14-1 "1206" "1k" 8550 4800 0 bottom
+R10-14-2 "1206" "1k" 8550 6300 0 bottom
+R10-14-3 "1206" "1k" 8550 7800 0 bottom
+R10-14-4 "1206" "1k" 8550 9300 0 bottom
+R10-14-5 "1206" "1k" 8550 10800 0 bottom
+R10-14-6 "1206" "1k" 8550 12300 0 bottom
+R10-14-7 "1206" "1k" 8550 13800 0 bottom
+R10-14-8 "1206" "1k" 8550 15300 0 bottom
+R10-14-9 "1206" "1k" 8550 16800 0 bottom
+R10-14-10 "1206" "1k" 8550 18300 0 bottom
+R10-14-11 "1206" "1k" 8550 19800 0 bottom
+R10-14-12 "1206" "1k" 8550 21300 0 bottom
+R10-14-13 "1206" "1k" 8550 22800 0 bottom
+R10-14-14 "1206" "1k" 8550 24300 0 bottom
+U3-0-0 "SO8" "unknown" 1075.00 3525.00 270 bottom
+U3-0-1 "SO8" "unknown" 1075 5025 270 bottom
+U3-0-2 "SO8" "unknown" 1075 6525 270 bottom
+U3-0-3 "SO8" "unknown" 1075 8025 270 bottom
+U3-0-4 "SO8" "unknown" 1075 9525 270 bottom
+U3-0-5 "SO8" "unknown" 1075 11025 270 bottom
+U3-0-6 "SO8" "unknown" 1075 12525 270 bottom
+U3-0-7 "SO8" "unknown" 1075 14025 270 bottom
+U3-0-8 "SO8" "unknown" 1075 15525 270 bottom
+U3-0-9 "SO8" "unknown" 1075 17025 270 bottom
+U3-0-10 "SO8" "unknown" 1075 18525 270 bottom
+U3-0-11 "SO8" "unknown" 1075 20025 270 bottom
+U3-0-12 "SO8" "unknown" 1075 21525 270 bottom
+U3-0-13 "SO8" "unknown" 1075 23025 270 bottom
+U3-0-14 "SO8" "unknown" 1075 24525 270 bottom
+U3-1-0 "SO8" "unknown" 1575 3525 270 bottom
+U3-1-1 "SO8" "unknown" 1575 5025 270 bottom
+U3-1-2 "SO8" "unknown" 1575 6525 270 bottom
+U3-1-3 "SO8" "unknown" 1575 8025 270 bottom
+U3-1-4 "SO8" "unknown" 1575 9525 270 bottom
+U3-1-5 "SO8" "unknown" 1575 11025 270 bottom
+U3-1-6 "SO8" "unknown" 1575 12525 270 bottom
+U3-1-7 "SO8" "unknown" 1575 14025 270 bottom
+U3-1-8 "SO8" "unknown" 1575 15525 270 bottom
+U3-1-9 "SO8" "unknown" 1575 17025 270 bottom
+U3-1-10 "SO8" "unknown" 1575 18525 270 bottom
+U3-1-11 "SO8" "unknown" 1575 20025 270 bottom
+U3-1-12 "SO8" "unknown" 1575 21525 270 bottom
+U3-1-13 "SO8" "unknown" 1575 23025 270 bottom
+U3-1-14 "SO8" "unknown" 1575 24525 270 bottom
+U3-2-0 "SO8" "unknown" 2075 3525 270 bottom
+U3-2-1 "SO8" "unknown" 2075 5025 270 bottom
+U3-2-2 "SO8" "unknown" 2075 6525 270 bottom
+U3-2-3 "SO8" "unknown" 2075 8025 270 bottom
+U3-2-4 "SO8" "unknown" 2075 9525 270 bottom
+U3-2-5 "SO8" "unknown" 2075 11025 270 bottom
+U3-2-6 "SO8" "unknown" 2075 12525 270 bottom
+U3-2-7 "SO8" "unknown" 2075 14025 270 bottom
+U3-2-8 "SO8" "unknown" 2075 15525 270 bottom
+U3-2-9 "SO8" "unknown" 2075 17025 270 bottom
+U3-2-10 "SO8" "unknown" 2075 18525 270 bottom
+U3-2-11 "SO8" "unknown" 2075 20025 270 bottom
+U3-2-12 "SO8" "unknown" 2075 21525 270 bottom
+U3-2-13 "SO8" "unknown" 2075 23025 270 bottom
+U3-2-14 "SO8" "unknown" 2075 24525 270 bottom
+U3-3-0 "SO8" "unknown" 2575 3525 270 bottom
+U3-3-1 "SO8" "unknown" 2575 5025 270 bottom
+U3-3-2 "SO8" "unknown" 2575 6525 270 bottom
+U3-3-3 "SO8" "unknown" 2575 8025 270 bottom
+U3-3-4 "SO8" "unknown" 2575 9525 270 bottom
+U3-3-5 "SO8" "unknown" 2575 11025 270 bottom
+U3-3-6 "SO8" "unknown" 2575 12525 270 bottom
+U3-3-7 "SO8" "unknown" 2575 14025 270 bottom
+U3-3-8 "SO8" "unknown" 2575 15525 270 bottom
+U3-3-9 "SO8" "unknown" 2575 17025 270 bottom
+U3-3-10 "SO8" "unknown" 2575 18525 270 bottom
+U3-3-11 "SO8" "unknown" 2575 20025 270 bottom
+U3-3-12 "SO8" "unknown" 2575 21525 270 bottom
+U3-3-13 "SO8" "unknown" 2575 23025 270 bottom
+U3-3-14 "SO8" "unknown" 2575 24525 270 bottom
+U3-4-0 "SO8" "unknown" 3075 3525 270 bottom
+U3-4-1 "SO8" "unknown" 3075 5025 270 bottom
+U3-4-2 "SO8" "unknown" 3075 6525 270 bottom
+U3-4-3 "SO8" "unknown" 3075 8025 270 bottom
+U3-4-4 "SO8" "unknown" 3075 9525 270 bottom
+U3-4-5 "SO8" "unknown" 3075 11025 270 bottom
+U3-4-6 "SO8" "unknown" 3075 12525 270 bottom
+U3-4-7 "SO8" "unknown" 3075 14025 270 bottom
+U3-4-8 "SO8" "unknown" 3075 15525 270 bottom
+U3-4-9 "SO8" "unknown" 3075 17025 270 bottom
+U3-4-10 "SO8" "unknown" 3075 18525 270 bottom
+U3-4-11 "SO8" "unknown" 3075 20025 270 bottom
+U3-4-12 "SO8" "unknown" 3075 21525 270 bottom
+U3-4-13 "SO8" "unknown" 3075 23025 270 bottom
+U3-4-14 "SO8" "unknown" 3075 24525 270 bottom
+U3-5-0 "SO8" "unknown" 3575 3525 270 bottom
+U3-5-1 "SO8" "unknown" 3575 5025 270 bottom
+U3-5-2 "SO8" "unknown" 3575 6525 270 bottom
+U3-5-3 "SO8" "unknown" 3575 8025 270 bottom
+U3-5-4 "SO8" "unknown" 3575 9525 270 bottom
+U3-5-5 "SO8" "unknown" 3575 11025 270 bottom
+U3-5-6 "SO8" "unknown" 3575 12525 270 bottom
+U3-5-7 "SO8" "unknown" 3575 14025 270 bottom
+U3-5-8 "SO8" "unknown" 3575 15525 270 bottom
+U3-5-9 "SO8" "unknown" 3575 17025 270 bottom
+U3-5-10 "SO8" "unknown" 3575 18525 270 bottom
+U3-5-11 "SO8" "unknown" 3575 20025 270 bottom
+U3-5-12 "SO8" "unknown" 3575 21525 270 bottom
+U3-5-13 "SO8" "unknown" 3575 23025 270 bottom
+U3-5-14 "SO8" "unknown" 3575 24525 270 bottom
+U3-6-0 "SO8" "unknown" 4075 3525 270 bottom
+U3-6-1 "SO8" "unknown" 4075 5025 270 bottom
+U3-6-2 "SO8" "unknown" 4075 6525 270 bottom
+U3-6-3 "SO8" "unknown" 4075 8025 270 bottom
+U3-6-4 "SO8" "unknown" 4075 9525 270 bottom
+U3-6-5 "SO8" "unknown" 4075 11025 270 bottom
+U3-6-6 "SO8" "unknown" 4075 12525 270 bottom
+U3-6-7 "SO8" "unknown" 4075 14025 270 bottom
+U3-6-8 "SO8" "unknown" 4075 15525 270 bottom
+U3-6-9 "SO8" "unknown" 4075 17025 270 bottom
+U3-6-10 "SO8" "unknown" 4075 18525 270 bottom
+U3-6-11 "SO8" "unknown" 4075 20025 270 bottom
+U3-6-12 "SO8" "unknown" 4075 21525 270 bottom
+U3-6-13 "SO8" "unknown" 4075 23025 270 bottom
+U3-6-14 "SO8" "unknown" 4075 24525 270 bottom
+U3-7-0 "SO8" "unknown" 4575 3525 270 bottom
+U3-7-1 "SO8" "unknown" 4575 5025 270 bottom
+U3-7-2 "SO8" "unknown" 4575 6525 270 bottom
+U3-7-3 "SO8" "unknown" 4575 8025 270 bottom
+U3-7-4 "SO8" "unknown" 4575 9525 270 bottom
+U3-7-5 "SO8" "unknown" 4575 11025 270 bottom
+U3-7-6 "SO8" "unknown" 4575 12525 270 bottom
+U3-7-7 "SO8" "unknown" 4575 14025 270 bottom
+U3-7-8 "SO8" "unknown" 4575 15525 270 bottom
+U3-7-9 "SO8" "unknown" 4575 17025 270 bottom
+U3-7-10 "SO8" "unknown" 4575 18525 270 bottom
+U3-7-11 "SO8" "unknown" 4575 20025 270 bottom
+U3-7-12 "SO8" "unknown" 4575 21525 270 bottom
+U3-7-13 "SO8" "unknown" 4575 23025 270 bottom
+U3-7-14 "SO8" "unknown" 4575 24525 270 bottom
+U3-8-0 "SO8" "unknown" 5075 3525 270 bottom
+U3-8-1 "SO8" "unknown" 5075 5025 270 bottom
+U3-8-2 "SO8" "unknown" 5075 6525 270 bottom
+U3-8-3 "SO8" "unknown" 5075 8025 270 bottom
+U3-8-4 "SO8" "unknown" 5075 9525 270 bottom
+U3-8-5 "SO8" "unknown" 5075 11025 270 bottom
+U3-8-6 "SO8" "unknown" 5075 12525 270 bottom
+U3-8-7 "SO8" "unknown" 5075 14025 270 bottom
+U3-8-8 "SO8" "unknown" 5075 15525 270 bottom
+U3-8-9 "SO8" "unknown" 5075 17025 270 bottom
+U3-8-10 "SO8" "unknown" 5075 18525 270 bottom
+U3-8-11 "SO8" "unknown" 5075 20025 270 bottom
+U3-8-12 "SO8" "unknown" 5075 21525 270 bottom
+U3-8-13 "SO8" "unknown" 5075 23025 270 bottom
+U3-8-14 "SO8" "unknown" 5075 24525 270 bottom
+U3-9-0 "SO8" "unknown" 5575 3525 270 bottom
+U3-9-1 "SO8" "unknown" 5575 5025 270 bottom
+U3-9-2 "SO8" "unknown" 5575 6525 270 bottom
+U3-9-3 "SO8" "unknown" 5575 8025 270 bottom
+U3-9-4 "SO8" "unknown" 5575 9525 270 bottom
+U3-9-5 "SO8" "unknown" 5575 11025 270 bottom
+U3-9-6 "SO8" "unknown" 5575 12525 270 bottom
+U3-9-7 "SO8" "unknown" 5575 14025 270 bottom
+U3-9-8 "SO8" "unknown" 5575 15525 270 bottom
+U3-9-9 "SO8" "unknown" 5575 17025 270 bottom
+U3-9-10 "SO8" "unknown" 5575 18525 270 bottom
+U3-9-11 "SO8" "unknown" 5575 20025 270 bottom
+U3-9-12 "SO8" "unknown" 5575 21525 270 bottom
+U3-9-13 "SO8" "unknown" 5575 23025 270 bottom
+U3-9-14 "SO8" "unknown" 5575 24525 270 bottom
+U3-10-0 "SO8" "unknown" 6075 3525 270 bottom
+U3-10-1 "SO8" "unknown" 6075 5025 270 bottom
+U3-10-2 "SO8" "unknown" 6075 6525 270 bottom
+U3-10-3 "SO8" "unknown" 6075 8025 270 bottom
+U3-10-4 "SO8" "unknown" 6075 9525 270 bottom
+U3-10-5 "SO8" "unknown" 6075 11025 270 bottom
+U3-10-6 "SO8" "unknown" 6075 12525 270 bottom
+U3-10-7 "SO8" "unknown" 6075 14025 270 bottom
+U3-10-8 "SO8" "unknown" 6075 15525 270 bottom
+U3-10-9 "SO8" "unknown" 6075 17025 270 bottom
+U3-10-10 "SO8" "unknown" 6075 18525 270 bottom
+U3-10-11 "SO8" "unknown" 6075 20025 270 bottom
+U3-10-12 "SO8" "unknown" 6075 21525 270 bottom
+U3-10-13 "SO8" "unknown" 6075 23025 270 bottom
+U3-10-14 "SO8" "unknown" 6075 24525 270 bottom
+U3-11-0 "SO8" "unknown" 6575 3525 270 bottom
+U3-11-1 "SO8" "unknown" 6575 5025 270 bottom
+U3-11-2 "SO8" "unknown" 6575 6525 270 bottom
+U3-11-3 "SO8" "unknown" 6575 8025 270 bottom
+U3-11-4 "SO8" "unknown" 6575 9525 270 bottom
+U3-11-5 "SO8" "unknown" 6575 11025 270 bottom
+U3-11-6 "SO8" "unknown" 6575 12525 270 bottom
+U3-11-7 "SO8" "unknown" 6575 14025 270 bottom
+U3-11-8 "SO8" "unknown" 6575 15525 270 bottom
+U3-11-9 "SO8" "unknown" 6575 17025 270 bottom
+U3-11-10 "SO8" "unknown" 6575 18525 270 bottom
+U3-11-11 "SO8" "unknown" 6575 20025 270 bottom
+U3-11-12 "SO8" "unknown" 6575 21525 270 bottom
+U3-11-13 "SO8" "unknown" 6575 23025 270 bottom
+U3-11-14 "SO8" "unknown" 6575 24525 270 bottom
+U3-12-0 "SO8" "unknown" 7075 3525 270 bottom
+U3-12-1 "SO8" "unknown" 7075 5025 270 bottom
+U3-12-2 "SO8" "unknown" 7075 6525 270 bottom
+U3-12-3 "SO8" "unknown" 7075 8025 270 bottom
+U3-12-4 "SO8" "unknown" 7075 9525 270 bottom
+U3-12-5 "SO8" "unknown" 7075 11025 270 bottom
+U3-12-6 "SO8" "unknown" 7075 12525 270 bottom
+U3-12-7 "SO8" "unknown" 7075 14025 270 bottom
+U3-12-8 "SO8" "unknown" 7075 15525 270 bottom
+U3-12-9 "SO8" "unknown" 7075 17025 270 bottom
+U3-12-10 "SO8" "unknown" 7075 18525 270 bottom
+U3-12-11 "SO8" "unknown" 7075 20025 270 bottom
+U3-12-12 "SO8" "unknown" 7075 21525 270 bottom
+U3-12-13 "SO8" "unknown" 7075 23025 270 bottom
+U3-12-14 "SO8" "unknown" 7075 24525 270 bottom
+U3-13-0 "SO8" "unknown" 7575 3525 270 bottom
+U3-13-1 "SO8" "unknown" 7575 5025 270 bottom
+U3-13-2 "SO8" "unknown" 7575 6525 270 bottom
+U3-13-3 "SO8" "unknown" 7575 8025 270 bottom
+U3-13-4 "SO8" "unknown" 7575 9525 270 bottom
+U3-13-5 "SO8" "unknown" 7575 11025 270 bottom
+U3-13-6 "SO8" "unknown" 7575 12525 270 bottom
+U3-13-7 "SO8" "unknown" 7575 14025 270 bottom
+U3-13-8 "SO8" "unknown" 7575 15525 270 bottom
+U3-13-9 "SO8" "unknown" 7575 17025 270 bottom
+U3-13-10 "SO8" "unknown" 7575 18525 270 bottom
+U3-13-11 "SO8" "unknown" 7575 20025 270 bottom
+U3-13-12 "SO8" "unknown" 7575 21525 270 bottom
+U3-13-13 "SO8" "unknown" 7575 23025 270 bottom
+U3-13-14 "SO8" "unknown" 7575 24525 270 bottom
+U3-14-0 "SO8" "unknown" 8075 3525 270 bottom
+U3-14-1 "SO8" "unknown" 8075 5025 270 bottom
+U3-14-2 "SO8" "unknown" 8075 6525 270 bottom
+U3-14-3 "SO8" "unknown" 8075 8025 270 bottom
+U3-14-4 "SO8" "unknown" 8075 9525 270 bottom
+U3-14-5 "SO8" "unknown" 8075 11025 270 bottom
+U3-14-6 "SO8" "unknown" 8075 12525 270 bottom
+U3-14-7 "SO8" "unknown" 8075 14025 270 bottom
+U3-14-8 "SO8" "unknown" 8075 15525 270 bottom
+U3-14-9 "SO8" "unknown" 8075 17025 270 bottom
+U3-14-10 "SO8" "unknown" 8075 18525 270 bottom
+U3-14-11 "SO8" "unknown" 8075 20025 270 bottom
+U3-14-12 "SO8" "unknown" 8075 21525 270 bottom
+U3-14-13 "SO8" "unknown" 8075 23025 270 bottom
+U3-14-14 "SO8" "unknown" 8075 24525 270 bottom
+R11-0-0 "1206" "10k" 1375.00 3300.00 180 bottom
+R11-0-1 "1206" "10k" 1375 4800 180 bottom
+R11-0-2 "1206" "10k" 1375 6300 180 bottom
+R11-0-3 "1206" "10k" 1375 7800 180 bottom
+R11-0-4 "1206" "10k" 1375 9300 180 bottom
+R11-0-5 "1206" "10k" 1375 10800 180 bottom
+R11-0-6 "1206" "10k" 1375 12300 180 bottom
+R11-0-7 "1206" "10k" 1375 13800 180 bottom
+R11-0-8 "1206" "10k" 1375 15300 180 bottom
+R11-0-9 "1206" "10k" 1375 16800 180 bottom
+R11-0-10 "1206" "10k" 1375 18300 180 bottom
+R11-0-11 "1206" "10k" 1375 19800 180 bottom
+R11-0-12 "1206" "10k" 1375 21300 180 bottom
+R11-0-13 "1206" "10k" 1375 22800 180 bottom
+R11-0-14 "1206" "10k" 1375 24300 180 bottom
+R11-1-0 "1206" "10k" 1875 3300 180 bottom
+R11-1-1 "1206" "10k" 1875 4800 180 bottom
+R11-1-2 "1206" "10k" 1875 6300 180 bottom
+R11-1-3 "1206" "10k" 1875 7800 180 bottom
+R11-1-4 "1206" "10k" 1875 9300 180 bottom
+R11-1-5 "1206" "10k" 1875 10800 180 bottom
+R11-1-6 "1206" "10k" 1875 12300 180 bottom
+R11-1-7 "1206" "10k" 1875 13800 180 bottom
+R11-1-8 "1206" "10k" 1875 15300 180 bottom
+R11-1-9 "1206" "10k" 1875 16800 180 bottom
+R11-1-10 "1206" "10k" 1875 18300 180 bottom
+R11-1-11 "1206" "10k" 1875 19800 180 bottom
+R11-1-12 "1206" "10k" 1875 21300 180 bottom
+R11-1-13 "1206" "10k" 1875 22800 180 bottom
+R11-1-14 "1206" "10k" 1875 24300 180 bottom
+R11-2-0 "1206" "10k" 2375 3300 180 bottom
+R11-2-1 "1206" "10k" 2375 4800 180 bottom
+R11-2-2 "1206" "10k" 2375 6300 180 bottom
+R11-2-3 "1206" "10k" 2375 7800 180 bottom
+R11-2-4 "1206" "10k" 2375 9300 180 bottom
+R11-2-5 "1206" "10k" 2375 10800 180 bottom
+R11-2-6 "1206" "10k" 2375 12300 180 bottom
+R11-2-7 "1206" "10k" 2375 13800 180 bottom
+R11-2-8 "1206" "10k" 2375 15300 180 bottom
+R11-2-9 "1206" "10k" 2375 16800 180 bottom
+R11-2-10 "1206" "10k" 2375 18300 180 bottom
+R11-2-11 "1206" "10k" 2375 19800 180 bottom
+R11-2-12 "1206" "10k" 2375 21300 180 bottom
+R11-2-13 "1206" "10k" 2375 22800 180 bottom
+R11-2-14 "1206" "10k" 2375 24300 180 bottom
+R11-3-0 "1206" "10k" 2875 3300 180 bottom
+R11-3-1 "1206" "10k" 2875 4800 180 bottom
+R11-3-2 "1206" "10k" 2875 6300 180 bottom
+R11-3-3 "1206" "10k" 2875 7800 180 bottom
+R11-3-4 "1206" "10k" 2875 9300 180 bottom
+R11-3-5 "1206" "10k" 2875 10800 180 bottom
+R11-3-6 "1206" "10k" 2875 12300 180 bottom
+R11-3-7 "1206" "10k" 2875 13800 180 bottom
+R11-3-8 "1206" "10k" 2875 15300 180 bottom
+R11-3-9 "1206" "10k" 2875 16800 180 bottom
+R11-3-10 "1206" "10k" 2875 18300 180 bottom
+R11-3-11 "1206" "10k" 2875 19800 180 bottom
+R11-3-12 "1206" "10k" 2875 21300 180 bottom
+R11-3-13 "1206" "10k" 2875 22800 180 bottom
+R11-3-14 "1206" "10k" 2875 24300 180 bottom
+R11-4-0 "1206" "10k" 3375 3300 180 bottom
+R11-4-1 "1206" "10k" 3375 4800 180 bottom
+R11-4-2 "1206" "10k" 3375 6300 180 bottom
+R11-4-3 "1206" "10k" 3375 7800 180 bottom
+R11-4-4 "1206" "10k" 3375 9300 180 bottom
+R11-4-5 "1206" "10k" 3375 10800 180 bottom
+R11-4-6 "1206" "10k" 3375 12300 180 bottom
+R11-4-7 "1206" "10k" 3375 13800 180 bottom
+R11-4-8 "1206" "10k" 3375 15300 180 bottom
+R11-4-9 "1206" "10k" 3375 16800 180 bottom
+R11-4-10 "1206" "10k" 3375 18300 180 bottom
+R11-4-11 "1206" "10k" 3375 19800 180 bottom
+R11-4-12 "1206" "10k" 3375 21300 180 bottom
+R11-4-13 "1206" "10k" 3375 22800 180 bottom
+R11-4-14 "1206" "10k" 3375 24300 180 bottom
+R11-5-0 "1206" "10k" 3875 3300 180 bottom
+R11-5-1 "1206" "10k" 3875 4800 180 bottom
+R11-5-2 "1206" "10k" 3875 6300 180 bottom
+R11-5-3 "1206" "10k" 3875 7800 180 bottom
+R11-5-4 "1206" "10k" 3875 9300 180 bottom
+R11-5-5 "1206" "10k" 3875 10800 180 bottom
+R11-5-6 "1206" "10k" 3875 12300 180 bottom
+R11-5-7 "1206" "10k" 3875 13800 180 bottom
+R11-5-8 "1206" "10k" 3875 15300 180 bottom
+R11-5-9 "1206" "10k" 3875 16800 180 bottom
+R11-5-10 "1206" "10k" 3875 18300 180 bottom
+R11-5-11 "1206" "10k" 3875 19800 180 bottom
+R11-5-12 "1206" "10k" 3875 21300 180 bottom
+R11-5-13 "1206" "10k" 3875 22800 180 bottom
+R11-5-14 "1206" "10k" 3875 24300 180 bottom
+R11-6-0 "1206" "10k" 4375 3300 180 bottom
+R11-6-1 "1206" "10k" 4375 4800 180 bottom
+R11-6-2 "1206" "10k" 4375 6300 180 bottom
+R11-6-3 "1206" "10k" 4375 7800 180 bottom
+R11-6-4 "1206" "10k" 4375 9300 180 bottom
+R11-6-5 "1206" "10k" 4375 10800 180 bottom
+R11-6-6 "1206" "10k" 4375 12300 180 bottom
+R11-6-7 "1206" "10k" 4375 13800 180 bottom
+R11-6-8 "1206" "10k" 4375 15300 180 bottom
+R11-6-9 "1206" "10k" 4375 16800 180 bottom
+R11-6-10 "1206" "10k" 4375 18300 180 bottom
+R11-6-11 "1206" "10k" 4375 19800 180 bottom
+R11-6-12 "1206" "10k" 4375 21300 180 bottom
+R11-6-13 "1206" "10k" 4375 22800 180 bottom
+R11-6-14 "1206" "10k" 4375 24300 180 bottom
+R11-7-0 "1206" "10k" 4875 3300 180 bottom
+R11-7-1 "1206" "10k" 4875 4800 180 bottom
+R11-7-2 "1206" "10k" 4875 6300 180 bottom
+R11-7-3 "1206" "10k" 4875 7800 180 bottom
+R11-7-4 "1206" "10k" 4875 9300 180 bottom
+R11-7-5 "1206" "10k" 4875 10800 180 bottom
+R11-7-6 "1206" "10k" 4875 12300 180 bottom
+R11-7-7 "1206" "10k" 4875 13800 180 bottom
+R11-7-8 "1206" "10k" 4875 15300 180 bottom
+R11-7-9 "1206" "10k" 4875 16800 180 bottom
+R11-7-10 "1206" "10k" 4875 18300 180 bottom
+R11-7-11 "1206" "10k" 4875 19800 180 bottom
+R11-7-12 "1206" "10k" 4875 21300 180 bottom
+R11-7-13 "1206" "10k" 4875 22800 180 bottom
+R11-7-14 "1206" "10k" 4875 24300 180 bottom
+R11-8-0 "1206" "10k" 5375 3300 180 bottom
+R11-8-1 "1206" "10k" 5375 4800 180 bottom
+R11-8-2 "1206" "10k" 5375 6300 180 bottom
+R11-8-3 "1206" "10k" 5375 7800 180 bottom
+R11-8-4 "1206" "10k" 5375 9300 180 bottom
+R11-8-5 "1206" "10k" 5375 10800 180 bottom
+R11-8-6 "1206" "10k" 5375 12300 180 bottom
+R11-8-7 "1206" "10k" 5375 13800 180 bottom
+R11-8-8 "1206" "10k" 5375 15300 180 bottom
+R11-8-9 "1206" "10k" 5375 16800 180 bottom
+R11-8-10 "1206" "10k" 5375 18300 180 bottom
+R11-8-11 "1206" "10k" 5375 19800 180 bottom
+R11-8-12 "1206" "10k" 5375 21300 180 bottom
+R11-8-13 "1206" "10k" 5375 22800 180 bottom
+R11-8-14 "1206" "10k" 5375 24300 180 bottom
+R11-9-0 "1206" "10k" 5875 3300 180 bottom
+R11-9-1 "1206" "10k" 5875 4800 180 bottom
+R11-9-2 "1206" "10k" 5875 6300 180 bottom
+R11-9-3 "1206" "10k" 5875 7800 180 bottom
+R11-9-4 "1206" "10k" 5875 9300 180 bottom
+R11-9-5 "1206" "10k" 5875 10800 180 bottom
+R11-9-6 "1206" "10k" 5875 12300 180 bottom
+R11-9-7 "1206" "10k" 5875 13800 180 bottom
+R11-9-8 "1206" "10k" 5875 15300 180 bottom
+R11-9-9 "1206" "10k" 5875 16800 180 bottom
+R11-9-10 "1206" "10k" 5875 18300 180 bottom
+R11-9-11 "1206" "10k" 5875 19800 180 bottom
+R11-9-12 "1206" "10k" 5875 21300 180 bottom
+R11-9-13 "1206" "10k" 5875 22800 180 bottom
+R11-9-14 "1206" "10k" 5875 24300 180 bottom
+R11-10-0 "1206" "10k" 6375 3300 180 bottom
+R11-10-1 "1206" "10k" 6375 4800 180 bottom
+R11-10-2 "1206" "10k" 6375 6300 180 bottom
+R11-10-3 "1206" "10k" 6375 7800 180 bottom
+R11-10-4 "1206" "10k" 6375 9300 180 bottom
+R11-10-5 "1206" "10k" 6375 10800 180 bottom
+R11-10-6 "1206" "10k" 6375 12300 180 bottom
+R11-10-7 "1206" "10k" 6375 13800 180 bottom
+R11-10-8 "1206" "10k" 6375 15300 180 bottom
+R11-10-9 "1206" "10k" 6375 16800 180 bottom
+R11-10-10 "1206" "10k" 6375 18300 180 bottom
+R11-10-11 "1206" "10k" 6375 19800 180 bottom
+R11-10-12 "1206" "10k" 6375 21300 180 bottom
+R11-10-13 "1206" "10k" 6375 22800 180 bottom
+R11-10-14 "1206" "10k" 6375 24300 180 bottom
+R11-11-0 "1206" "10k" 6875 3300 180 bottom
+R11-11-1 "1206" "10k" 6875 4800 180 bottom
+R11-11-2 "1206" "10k" 6875 6300 180 bottom
+R11-11-3 "1206" "10k" 6875 7800 180 bottom
+R11-11-4 "1206" "10k" 6875 9300 180 bottom
+R11-11-5 "1206" "10k" 6875 10800 180 bottom
+R11-11-6 "1206" "10k" 6875 12300 180 bottom
+R11-11-7 "1206" "10k" 6875 13800 180 bottom
+R11-11-8 "1206" "10k" 6875 15300 180 bottom
+R11-11-9 "1206" "10k" 6875 16800 180 bottom
+R11-11-10 "1206" "10k" 6875 18300 180 bottom
+R11-11-11 "1206" "10k" 6875 19800 180 bottom
+R11-11-12 "1206" "10k" 6875 21300 180 bottom
+R11-11-13 "1206" "10k" 6875 22800 180 bottom
+R11-11-14 "1206" "10k" 6875 24300 180 bottom
+R11-12-0 "1206" "10k" 7375 3300 180 bottom
+R11-12-1 "1206" "10k" 7375 4800 180 bottom
+R11-12-2 "1206" "10k" 7375 6300 180 bottom
+R11-12-3 "1206" "10k" 7375 7800 180 bottom
+R11-12-4 "1206" "10k" 7375 9300 180 bottom
+R11-12-5 "1206" "10k" 7375 10800 180 bottom
+R11-12-6 "1206" "10k" 7375 12300 180 bottom
+R11-12-7 "1206" "10k" 7375 13800 180 bottom
+R11-12-8 "1206" "10k" 7375 15300 180 bottom
+R11-12-9 "1206" "10k" 7375 16800 180 bottom
+R11-12-10 "1206" "10k" 7375 18300 180 bottom
+R11-12-11 "1206" "10k" 7375 19800 180 bottom
+R11-12-12 "1206" "10k" 7375 21300 180 bottom
+R11-12-13 "1206" "10k" 7375 22800 180 bottom
+R11-12-14 "1206" "10k" 7375 24300 180 bottom
+R11-13-0 "1206" "10k" 7875 3300 180 bottom
+R11-13-1 "1206" "10k" 7875 4800 180 bottom
+R11-13-2 "1206" "10k" 7875 6300 180 bottom
+R11-13-3 "1206" "10k" 7875 7800 180 bottom
+R11-13-4 "1206" "10k" 7875 9300 180 bottom
+R11-13-5 "1206" "10k" 7875 10800 180 bottom
+R11-13-6 "1206" "10k" 7875 12300 180 bottom
+R11-13-7 "1206" "10k" 7875 13800 180 bottom
+R11-13-8 "1206" "10k" 7875 15300 180 bottom
+R11-13-9 "1206" "10k" 7875 16800 180 bottom
+R11-13-10 "1206" "10k" 7875 18300 180 bottom
+R11-13-11 "1206" "10k" 7875 19800 180 bottom
+R11-13-12 "1206" "10k" 7875 21300 180 bottom
+R11-13-13 "1206" "10k" 7875 22800 180 bottom
+R11-13-14 "1206" "10k" 7875 24300 180 bottom
+R11-14-0 "1206" "10k" 8375 3300 180 bottom
+R11-14-1 "1206" "10k" 8375 4800 180 bottom
+R11-14-2 "1206" "10k" 8375 6300 180 bottom
+R11-14-3 "1206" "10k" 8375 7800 180 bottom
+R11-14-4 "1206" "10k" 8375 9300 180 bottom
+R11-14-5 "1206" "10k" 8375 10800 180 bottom
+R11-14-6 "1206" "10k" 8375 12300 180 bottom
+R11-14-7 "1206" "10k" 8375 13800 180 bottom
+R11-14-8 "1206" "10k" 8375 15300 180 bottom
+R11-14-9 "1206" "10k" 8375 16800 180 bottom
+R11-14-10 "1206" "10k" 8375 18300 180 bottom
+R11-14-11 "1206" "10k" 8375 19800 180 bottom
+R11-14-12 "1206" "10k" 8375 21300 180 bottom
+R11-14-13 "1206" "10k" 8375 22800 180 bottom
+R11-14-14 "1206" "10k" 8375 24300 180 bottom
+D2-0-0 "CONNECTOR-2-1" "unknown" 500.00 3850.00 0 top
+D2-0-1 "CONNECTOR-2-1" "unknown" 500 5350 0 top
+D2-0-2 "CONNECTOR-2-1" "unknown" 500 6850 0 top
+D2-0-3 "CONNECTOR-2-1" "unknown" 500 8350 0 top
+D2-0-4 "CONNECTOR-2-1" "unknown" 500 9850 0 top
+D2-0-5 "CONNECTOR-2-1" "unknown" 500 11350 0 top
+D2-0-6 "CONNECTOR-2-1" "unknown" 500 12850 0 top
+D2-0-7 "CONNECTOR-2-1" "unknown" 500 14350 0 top
+D2-0-8 "CONNECTOR-2-1" "unknown" 500 15850 0 top
+D2-0-9 "CONNECTOR-2-1" "unknown" 500 17350 0 top
+D2-0-10 "CONNECTOR-2-1" "unknown" 500 18850 0 top
+D2-0-11 "CONNECTOR-2-1" "unknown" 500 20350 0 top
+D2-0-12 "CONNECTOR-2-1" "unknown" 500 21850 0 top
+D2-0-13 "CONNECTOR-2-1" "unknown" 500 23350 0 top
+D2-0-14 "CONNECTOR-2-1" "unknown" 500 24850 0 top
+D2-1-0 "CONNECTOR-2-1" "unknown" 1000 3850 0 top
+D2-1-1 "CONNECTOR-2-1" "unknown" 1000 5350 0 top
+D2-1-2 "CONNECTOR-2-1" "unknown" 1000 6850 0 top
+D2-1-3 "CONNECTOR-2-1" "unknown" 1000 8350 0 top
+D2-1-4 "CONNECTOR-2-1" "unknown" 1000 9850 0 top
+D2-1-5 "CONNECTOR-2-1" "unknown" 1000 11350 0 top
+D2-1-6 "CONNECTOR-2-1" "unknown" 1000 12850 0 top
+D2-1-7 "CONNECTOR-2-1" "unknown" 1000 14350 0 top
+D2-1-8 "CONNECTOR-2-1" "unknown" 1000 15850 0 top
+D2-1-9 "CONNECTOR-2-1" "unknown" 1000 17350 0 top
+D2-1-10 "CONNECTOR-2-1" "unknown" 1000 18850 0 top
+D2-1-11 "CONNECTOR-2-1" "unknown" 1000 20350 0 top
+D2-1-12 "CONNECTOR-2-1" "unknown" 1000 21850 0 top
+D2-1-13 "CONNECTOR-2-1" "unknown" 1000 23350 0 top
+D2-1-14 "CONNECTOR-2-1" "unknown" 1000 24850 0 top
+D2-2-0 "CONNECTOR-2-1" "unknown" 1500 3850 0 top
+D2-2-1 "CONNECTOR-2-1" "unknown" 1500 5350 0 top
+D2-2-2 "CONNECTOR-2-1" "unknown" 1500 6850 0 top
+D2-2-3 "CONNECTOR-2-1" "unknown" 1500 8350 0 top
+D2-2-4 "CONNECTOR-2-1" "unknown" 1500 9850 0 top
+D2-2-5 "CONNECTOR-2-1" "unknown" 1500 11350 0 top
+D2-2-6 "CONNECTOR-2-1" "unknown" 1500 12850 0 top
+D2-2-7 "CONNECTOR-2-1" "unknown" 1500 14350 0 top
+D2-2-8 "CONNECTOR-2-1" "unknown" 1500 15850 0 top
+D2-2-9 "CONNECTOR-2-1" "unknown" 1500 17350 0 top
+D2-2-10 "CONNECTOR-2-1" "unknown" 1500 18850 0 top
+D2-2-11 "CONNECTOR-2-1" "unknown" 1500 20350 0 top
+D2-2-12 "CONNECTOR-2-1" "unknown" 1500 21850 0 top
+D2-2-13 "CONNECTOR-2-1" "unknown" 1500 23350 0 top
+D2-2-14 "CONNECTOR-2-1" "unknown" 1500 24850 0 top
+D2-3-0 "CONNECTOR-2-1" "unknown" 2000 3850 0 top
+D2-3-1 "CONNECTOR-2-1" "unknown" 2000 5350 0 top
+D2-3-2 "CONNECTOR-2-1" "unknown" 2000 6850 0 top
+D2-3-3 "CONNECTOR-2-1" "unknown" 2000 8350 0 top
+D2-3-4 "CONNECTOR-2-1" "unknown" 2000 9850 0 top
+D2-3-5 "CONNECTOR-2-1" "unknown" 2000 11350 0 top
+D2-3-6 "CONNECTOR-2-1" "unknown" 2000 12850 0 top
+D2-3-7 "CONNECTOR-2-1" "unknown" 2000 14350 0 top
+D2-3-8 "CONNECTOR-2-1" "unknown" 2000 15850 0 top
+D2-3-9 "CONNECTOR-2-1" "unknown" 2000 17350 0 top
+D2-3-10 "CONNECTOR-2-1" "unknown" 2000 18850 0 top
+D2-3-11 "CONNECTOR-2-1" "unknown" 2000 20350 0 top
+D2-3-12 "CONNECTOR-2-1" "unknown" 2000 21850 0 top
+D2-3-13 "CONNECTOR-2-1" "unknown" 2000 23350 0 top
+D2-3-14 "CONNECTOR-2-1" "unknown" 2000 24850 0 top
+D2-4-0 "CONNECTOR-2-1" "unknown" 2500 3850 0 top
+D2-4-1 "CONNECTOR-2-1" "unknown" 2500 5350 0 top
+D2-4-2 "CONNECTOR-2-1" "unknown" 2500 6850 0 top
+D2-4-3 "CONNECTOR-2-1" "unknown" 2500 8350 0 top
+D2-4-4 "CONNECTOR-2-1" "unknown" 2500 9850 0 top
+D2-4-5 "CONNECTOR-2-1" "unknown" 2500 11350 0 top
+D2-4-6 "CONNECTOR-2-1" "unknown" 2500 12850 0 top
+D2-4-7 "CONNECTOR-2-1" "unknown" 2500 14350 0 top
+D2-4-8 "CONNECTOR-2-1" "unknown" 2500 15850 0 top
+D2-4-9 "CONNECTOR-2-1" "unknown" 2500 17350 0 top
+D2-4-10 "CONNECTOR-2-1" "unknown" 2500 18850 0 top
+D2-4-11 "CONNECTOR-2-1" "unknown" 2500 20350 0 top
+D2-4-12 "CONNECTOR-2-1" "unknown" 2500 21850 0 top
+D2-4-13 "CONNECTOR-2-1" "unknown" 2500 23350 0 top
+D2-4-14 "CONNECTOR-2-1" "unknown" 2500 24850 0 top
+D2-5-0 "CONNECTOR-2-1" "unknown" 3000 3850 0 top
+D2-5-1 "CONNECTOR-2-1" "unknown" 3000 5350 0 top
+D2-5-2 "CONNECTOR-2-1" "unknown" 3000 6850 0 top
+D2-5-3 "CONNECTOR-2-1" "unknown" 3000 8350 0 top
+D2-5-4 "CONNECTOR-2-1" "unknown" 3000 9850 0 top
+D2-5-5 "CONNECTOR-2-1" "unknown" 3000 11350 0 top
+D2-5-6 "CONNECTOR-2-1" "unknown" 3000 12850 0 top
+D2-5-7 "CONNECTOR-2-1" "unknown" 3000 14350 0 top
+D2-5-8 "CONNECTOR-2-1" "unknown" 3000 15850 0 top
+D2-5-9 "CONNECTOR-2-1" "unknown" 3000 17350 0 top
+D2-5-10 "CONNECTOR-2-1" "unknown" 3000 18850 0 top
+D2-5-11 "CONNECTOR-2-1" "unknown" 3000 20350 0 top
+D2-5-12 "CONNECTOR-2-1" "unknown" 3000 21850 0 top
+D2-5-13 "CONNECTOR-2-1" "unknown" 3000 23350 0 top
+D2-5-14 "CONNECTOR-2-1" "unknown" 3000 24850 0 top
+D2-6-0 "CONNECTOR-2-1" "unknown" 3500 3850 0 top
+D2-6-1 "CONNECTOR-2-1" "unknown" 3500 5350 0 top
+D2-6-2 "CONNECTOR-2-1" "unknown" 3500 6850 0 top
+D2-6-3 "CONNECTOR-2-1" "unknown" 3500 8350 0 top
+D2-6-4 "CONNECTOR-2-1" "unknown" 3500 9850 0 top
+D2-6-5 "CONNECTOR-2-1" "unknown" 3500 11350 0 top
+D2-6-6 "CONNECTOR-2-1" "unknown" 3500 12850 0 top
+D2-6-7 "CONNECTOR-2-1" "unknown" 3500 14350 0 top
+D2-6-8 "CONNECTOR-2-1" "unknown" 3500 15850 0 top
+D2-6-9 "CONNECTOR-2-1" "unknown" 3500 17350 0 top
+D2-6-10 "CONNECTOR-2-1" "unknown" 3500 18850 0 top
+D2-6-11 "CONNECTOR-2-1" "unknown" 3500 20350 0 top
+D2-6-12 "CONNECTOR-2-1" "unknown" 3500 21850 0 top
+D2-6-13 "CONNECTOR-2-1" "unknown" 3500 23350 0 top
+D2-6-14 "CONNECTOR-2-1" "unknown" 3500 24850 0 top
+D2-7-0 "CONNECTOR-2-1" "unknown" 4000 3850 0 top
+D2-7-1 "CONNECTOR-2-1" "unknown" 4000 5350 0 top
+D2-7-2 "CONNECTOR-2-1" "unknown" 4000 6850 0 top
+D2-7-3 "CONNECTOR-2-1" "unknown" 4000 8350 0 top
+D2-7-4 "CONNECTOR-2-1" "unknown" 4000 9850 0 top
+D2-7-5 "CONNECTOR-2-1" "unknown" 4000 11350 0 top
+D2-7-6 "CONNECTOR-2-1" "unknown" 4000 12850 0 top
+D2-7-7 "CONNECTOR-2-1" "unknown" 4000 14350 0 top
+D2-7-8 "CONNECTOR-2-1" "unknown" 4000 15850 0 top
+D2-7-9 "CONNECTOR-2-1" "unknown" 4000 17350 0 top
+D2-7-10 "CONNECTOR-2-1" "unknown" 4000 18850 0 top
+D2-7-11 "CONNECTOR-2-1" "unknown" 4000 20350 0 top
+D2-7-12 "CONNECTOR-2-1" "unknown" 4000 21850 0 top
+D2-7-13 "CONNECTOR-2-1" "unknown" 4000 23350 0 top
+D2-7-14 "CONNECTOR-2-1" "unknown" 4000 24850 0 top
+D2-8-0 "CONNECTOR-2-1" "unknown" 4500 3850 0 top
+D2-8-1 "CONNECTOR-2-1" "unknown" 4500 5350 0 top
+D2-8-2 "CONNECTOR-2-1" "unknown" 4500 6850 0 top
+D2-8-3 "CONNECTOR-2-1" "unknown" 4500 8350 0 top
+D2-8-4 "CONNECTOR-2-1" "unknown" 4500 9850 0 top
+D2-8-5 "CONNECTOR-2-1" "unknown" 4500 11350 0 top
+D2-8-6 "CONNECTOR-2-1" "unknown" 4500 12850 0 top
+D2-8-7 "CONNECTOR-2-1" "unknown" 4500 14350 0 top
+D2-8-8 "CONNECTOR-2-1" "unknown" 4500 15850 0 top
+D2-8-9 "CONNECTOR-2-1" "unknown" 4500 17350 0 top
+D2-8-10 "CONNECTOR-2-1" "unknown" 4500 18850 0 top
+D2-8-11 "CONNECTOR-2-1" "unknown" 4500 20350 0 top
+D2-8-12 "CONNECTOR-2-1" "unknown" 4500 21850 0 top
+D2-8-13 "CONNECTOR-2-1" "unknown" 4500 23350 0 top
+D2-8-14 "CONNECTOR-2-1" "unknown" 4500 24850 0 top
+D2-9-0 "CONNECTOR-2-1" "unknown" 5000 3850 0 top
+D2-9-1 "CONNECTOR-2-1" "unknown" 5000 5350 0 top
+D2-9-2 "CONNECTOR-2-1" "unknown" 5000 6850 0 top
+D2-9-3 "CONNECTOR-2-1" "unknown" 5000 8350 0 top
+D2-9-4 "CONNECTOR-2-1" "unknown" 5000 9850 0 top
+D2-9-5 "CONNECTOR-2-1" "unknown" 5000 11350 0 top
+D2-9-6 "CONNECTOR-2-1" "unknown" 5000 12850 0 top
+D2-9-7 "CONNECTOR-2-1" "unknown" 5000 14350 0 top
+D2-9-8 "CONNECTOR-2-1" "unknown" 5000 15850 0 top
+D2-9-9 "CONNECTOR-2-1" "unknown" 5000 17350 0 top
+D2-9-10 "CONNECTOR-2-1" "unknown" 5000 18850 0 top
+D2-9-11 "CONNECTOR-2-1" "unknown" 5000 20350 0 top
+D2-9-12 "CONNECTOR-2-1" "unknown" 5000 21850 0 top
+D2-9-13 "CONNECTOR-2-1" "unknown" 5000 23350 0 top
+D2-9-14 "CONNECTOR-2-1" "unknown" 5000 24850 0 top
+D2-10-0 "CONNECTOR-2-1" "unknown" 5500 3850 0 top
+D2-10-1 "CONNECTOR-2-1" "unknown" 5500 5350 0 top
+D2-10-2 "CONNECTOR-2-1" "unknown" 5500 6850 0 top
+D2-10-3 "CONNECTOR-2-1" "unknown" 5500 8350 0 top
+D2-10-4 "CONNECTOR-2-1" "unknown" 5500 9850 0 top
+D2-10-5 "CONNECTOR-2-1" "unknown" 5500 11350 0 top
+D2-10-6 "CONNECTOR-2-1" "unknown" 5500 12850 0 top
+D2-10-7 "CONNECTOR-2-1" "unknown" 5500 14350 0 top
+D2-10-8 "CONNECTOR-2-1" "unknown" 5500 15850 0 top
+D2-10-9 "CONNECTOR-2-1" "unknown" 5500 17350 0 top
+D2-10-10 "CONNECTOR-2-1" "unknown" 5500 18850 0 top
+D2-10-11 "CONNECTOR-2-1" "unknown" 5500 20350 0 top
+D2-10-12 "CONNECTOR-2-1" "unknown" 5500 21850 0 top
+D2-10-13 "CONNECTOR-2-1" "unknown" 5500 23350 0 top
+D2-10-14 "CONNECTOR-2-1" "unknown" 5500 24850 0 top
+D2-11-0 "CONNECTOR-2-1" "unknown" 6000 3850 0 top
+D2-11-1 "CONNECTOR-2-1" "unknown" 6000 5350 0 top
+D2-11-2 "CONNECTOR-2-1" "unknown" 6000 6850 0 top
+D2-11-3 "CONNECTOR-2-1" "unknown" 6000 8350 0 top
+D2-11-4 "CONNECTOR-2-1" "unknown" 6000 9850 0 top
+D2-11-5 "CONNECTOR-2-1" "unknown" 6000 11350 0 top
+D2-11-6 "CONNECTOR-2-1" "unknown" 6000 12850 0 top
+D2-11-7 "CONNECTOR-2-1" "unknown" 6000 14350 0 top
+D2-11-8 "CONNECTOR-2-1" "unknown" 6000 15850 0 top
+D2-11-9 "CONNECTOR-2-1" "unknown" 6000 17350 0 top
+D2-11-10 "CONNECTOR-2-1" "unknown" 6000 18850 0 top
+D2-11-11 "CONNECTOR-2-1" "unknown" 6000 20350 0 top
+D2-11-12 "CONNECTOR-2-1" "unknown" 6000 21850 0 top
+D2-11-13 "CONNECTOR-2-1" "unknown" 6000 23350 0 top
+D2-11-14 "CONNECTOR-2-1" "unknown" 6000 24850 0 top
+D2-12-0 "CONNECTOR-2-1" "unknown" 6500 3850 0 top
+D2-12-1 "CONNECTOR-2-1" "unknown" 6500 5350 0 top
+D2-12-2 "CONNECTOR-2-1" "unknown" 6500 6850 0 top
+D2-12-3 "CONNECTOR-2-1" "unknown" 6500 8350 0 top
+D2-12-4 "CONNECTOR-2-1" "unknown" 6500 9850 0 top
+D2-12-5 "CONNECTOR-2-1" "unknown" 6500 11350 0 top
+D2-12-6 "CONNECTOR-2-1" "unknown" 6500 12850 0 top
+D2-12-7 "CONNECTOR-2-1" "unknown" 6500 14350 0 top
+D2-12-8 "CONNECTOR-2-1" "unknown" 6500 15850 0 top
+D2-12-9 "CONNECTOR-2-1" "unknown" 6500 17350 0 top
+D2-12-10 "CONNECTOR-2-1" "unknown" 6500 18850 0 top
+D2-12-11 "CONNECTOR-2-1" "unknown" 6500 20350 0 top
+D2-12-12 "CONNECTOR-2-1" "unknown" 6500 21850 0 top
+D2-12-13 "CONNECTOR-2-1" "unknown" 6500 23350 0 top
+D2-12-14 "CONNECTOR-2-1" "unknown" 6500 24850 0 top
+D2-13-0 "CONNECTOR-2-1" "unknown" 7000 3850 0 top
+D2-13-1 "CONNECTOR-2-1" "unknown" 7000 5350 0 top
+D2-13-2 "CONNECTOR-2-1" "unknown" 7000 6850 0 top
+D2-13-3 "CONNECTOR-2-1" "unknown" 7000 8350 0 top
+D2-13-4 "CONNECTOR-2-1" "unknown" 7000 9850 0 top
+D2-13-5 "CONNECTOR-2-1" "unknown" 7000 11350 0 top
+D2-13-6 "CONNECTOR-2-1" "unknown" 7000 12850 0 top
+D2-13-7 "CONNECTOR-2-1" "unknown" 7000 14350 0 top
+D2-13-8 "CONNECTOR-2-1" "unknown" 7000 15850 0 top
+D2-13-9 "CONNECTOR-2-1" "unknown" 7000 17350 0 top
+D2-13-10 "CONNECTOR-2-1" "unknown" 7000 18850 0 top
+D2-13-11 "CONNECTOR-2-1" "unknown" 7000 20350 0 top
+D2-13-12 "CONNECTOR-2-1" "unknown" 7000 21850 0 top
+D2-13-13 "CONNECTOR-2-1" "unknown" 7000 23350 0 top
+D2-13-14 "CONNECTOR-2-1" "unknown" 7000 24850 0 top
+D2-14-0 "CONNECTOR-2-1" "unknown" 7500 3850 0 top
+D2-14-1 "CONNECTOR-2-1" "unknown" 7500 5350 0 top
+D2-14-2 "CONNECTOR-2-1" "unknown" 7500 6850 0 top
+D2-14-3 "CONNECTOR-2-1" "unknown" 7500 8350 0 top
+D2-14-4 "CONNECTOR-2-1" "unknown" 7500 9850 0 top
+D2-14-5 "CONNECTOR-2-1" "unknown" 7500 11350 0 top
+D2-14-6 "CONNECTOR-2-1" "unknown" 7500 12850 0 top
+D2-14-7 "CONNECTOR-2-1" "unknown" 7500 14350 0 top
+D2-14-8 "CONNECTOR-2-1" "unknown" 7500 15850 0 top
+D2-14-9 "CONNECTOR-2-1" "unknown" 7500 17350 0 top
+D2-14-10 "CONNECTOR-2-1" "unknown" 7500 18850 0 top
+D2-14-11 "CONNECTOR-2-1" "unknown" 7500 20350 0 top
+D2-14-12 "CONNECTOR-2-1" "unknown" 7500 21850 0 top
+D2-14-13 "CONNECTOR-2-1" "unknown" 7500 23350 0 top
+D2-14-14 "CONNECTOR-2-1" "unknown" 7500 24850 0 top
+C2-0-0 "1206" "unknown" 925.00 3350.00 270 bottom
+C2-0-1 "1206" "unknown" 925 4850 270 bottom
+C2-0-2 "1206" "unknown" 925 6350 270 bottom
+C2-0-3 "1206" "unknown" 925 7850 270 bottom
+C2-0-4 "1206" "unknown" 925 9350 270 bottom
+C2-0-5 "1206" "unknown" 925 10850 270 bottom
+C2-0-6 "1206" "unknown" 925 12350 270 bottom
+C2-0-7 "1206" "unknown" 925 13850 270 bottom
+C2-0-8 "1206" "unknown" 925 15350 270 bottom
+C2-0-9 "1206" "unknown" 925 16850 270 bottom
+C2-0-10 "1206" "unknown" 925 18350 270 bottom
+C2-0-11 "1206" "unknown" 925 19850 270 bottom
+C2-0-12 "1206" "unknown" 925 21350 270 bottom
+C2-0-13 "1206" "unknown" 925 22850 270 bottom
+C2-0-14 "1206" "unknown" 925 24350 270 bottom
+C2-1-0 "1206" "unknown" 1425 3350 270 bottom
+C2-1-1 "1206" "unknown" 1425 4850 270 bottom
+C2-1-2 "1206" "unknown" 1425 6350 270 bottom
+C2-1-3 "1206" "unknown" 1425 7850 270 bottom
+C2-1-4 "1206" "unknown" 1425 9350 270 bottom
+C2-1-5 "1206" "unknown" 1425 10850 270 bottom
+C2-1-6 "1206" "unknown" 1425 12350 270 bottom
+C2-1-7 "1206" "unknown" 1425 13850 270 bottom
+C2-1-8 "1206" "unknown" 1425 15350 270 bottom
+C2-1-9 "1206" "unknown" 1425 16850 270 bottom
+C2-1-10 "1206" "unknown" 1425 18350 270 bottom
+C2-1-11 "1206" "unknown" 1425 19850 270 bottom
+C2-1-12 "1206" "unknown" 1425 21350 270 bottom
+C2-1-13 "1206" "unknown" 1425 22850 270 bottom
+C2-1-14 "1206" "unknown" 1425 24350 270 bottom
+C2-2-0 "1206" "unknown" 1925 3350 270 bottom
+C2-2-1 "1206" "unknown" 1925 4850 270 bottom
+C2-2-2 "1206" "unknown" 1925 6350 270 bottom
+C2-2-3 "1206" "unknown" 1925 7850 270 bottom
+C2-2-4 "1206" "unknown" 1925 9350 270 bottom
+C2-2-5 "1206" "unknown" 1925 10850 270 bottom
+C2-2-6 "1206" "unknown" 1925 12350 270 bottom
+C2-2-7 "1206" "unknown" 1925 13850 270 bottom
+C2-2-8 "1206" "unknown" 1925 15350 270 bottom
+C2-2-9 "1206" "unknown" 1925 16850 270 bottom
+C2-2-10 "1206" "unknown" 1925 18350 270 bottom
+C2-2-11 "1206" "unknown" 1925 19850 270 bottom
+C2-2-12 "1206" "unknown" 1925 21350 270 bottom
+C2-2-13 "1206" "unknown" 1925 22850 270 bottom
+C2-2-14 "1206" "unknown" 1925 24350 270 bottom
+C2-3-0 "1206" "unknown" 2425 3350 270 bottom
+C2-3-1 "1206" "unknown" 2425 4850 270 bottom
+C2-3-2 "1206" "unknown" 2425 6350 270 bottom
+C2-3-3 "1206" "unknown" 2425 7850 270 bottom
+C2-3-4 "1206" "unknown" 2425 9350 270 bottom
+C2-3-5 "1206" "unknown" 2425 10850 270 bottom
+C2-3-6 "1206" "unknown" 2425 12350 270 bottom
+C2-3-7 "1206" "unknown" 2425 13850 270 bottom
+C2-3-8 "1206" "unknown" 2425 15350 270 bottom
+C2-3-9 "1206" "unknown" 2425 16850 270 bottom
+C2-3-10 "1206" "unknown" 2425 18350 270 bottom
+C2-3-11 "1206" "unknown" 2425 19850 270 bottom
+C2-3-12 "1206" "unknown" 2425 21350 270 bottom
+C2-3-13 "1206" "unknown" 2425 22850 270 bottom
+C2-3-14 "1206" "unknown" 2425 24350 270 bottom
+C2-4-0 "1206" "unknown" 2925 3350 270 bottom
+C2-4-1 "1206" "unknown" 2925 4850 270 bottom
+C2-4-2 "1206" "unknown" 2925 6350 270 bottom
+C2-4-3 "1206" "unknown" 2925 7850 270 bottom
+C2-4-4 "1206" "unknown" 2925 9350 270 bottom
+C2-4-5 "1206" "unknown" 2925 10850 270 bottom
+C2-4-6 "1206" "unknown" 2925 12350 270 bottom
+C2-4-7 "1206" "unknown" 2925 13850 270 bottom
+C2-4-8 "1206" "unknown" 2925 15350 270 bottom
+C2-4-9 "1206" "unknown" 2925 16850 270 bottom
+C2-4-10 "1206" "unknown" 2925 18350 270 bottom
+C2-4-11 "1206" "unknown" 2925 19850 270 bottom
+C2-4-12 "1206" "unknown" 2925 21350 270 bottom
+C2-4-13 "1206" "unknown" 2925 22850 270 bottom
+C2-4-14 "1206" "unknown" 2925 24350 270 bottom
+C2-5-0 "1206" "unknown" 3425 3350 270 bottom
+C2-5-1 "1206" "unknown" 3425 4850 270 bottom
+C2-5-2 "1206" "unknown" 3425 6350 270 bottom
+C2-5-3 "1206" "unknown" 3425 7850 270 bottom
+C2-5-4 "1206" "unknown" 3425 9350 270 bottom
+C2-5-5 "1206" "unknown" 3425 10850 270 bottom
+C2-5-6 "1206" "unknown" 3425 12350 270 bottom
+C2-5-7 "1206" "unknown" 3425 13850 270 bottom
+C2-5-8 "1206" "unknown" 3425 15350 270 bottom
+C2-5-9 "1206" "unknown" 3425 16850 270 bottom
+C2-5-10 "1206" "unknown" 3425 18350 270 bottom
+C2-5-11 "1206" "unknown" 3425 19850 270 bottom
+C2-5-12 "1206" "unknown" 3425 21350 270 bottom
+C2-5-13 "1206" "unknown" 3425 22850 270 bottom
+C2-5-14 "1206" "unknown" 3425 24350 270 bottom
+C2-6-0 "1206" "unknown" 3925 3350 270 bottom
+C2-6-1 "1206" "unknown" 3925 4850 270 bottom
+C2-6-2 "1206" "unknown" 3925 6350 270 bottom
+C2-6-3 "1206" "unknown" 3925 7850 270 bottom
+C2-6-4 "1206" "unknown" 3925 9350 270 bottom
+C2-6-5 "1206" "unknown" 3925 10850 270 bottom
+C2-6-6 "1206" "unknown" 3925 12350 270 bottom
+C2-6-7 "1206" "unknown" 3925 13850 270 bottom
+C2-6-8 "1206" "unknown" 3925 15350 270 bottom
+C2-6-9 "1206" "unknown" 3925 16850 270 bottom
+C2-6-10 "1206" "unknown" 3925 18350 270 bottom
+C2-6-11 "1206" "unknown" 3925 19850 270 bottom
+C2-6-12 "1206" "unknown" 3925 21350 270 bottom
+C2-6-13 "1206" "unknown" 3925 22850 270 bottom
+C2-6-14 "1206" "unknown" 3925 24350 270 bottom
+C2-7-0 "1206" "unknown" 4425 3350 270 bottom
+C2-7-1 "1206" "unknown" 4425 4850 270 bottom
+C2-7-2 "1206" "unknown" 4425 6350 270 bottom
+C2-7-3 "1206" "unknown" 4425 7850 270 bottom
+C2-7-4 "1206" "unknown" 4425 9350 270 bottom
+C2-7-5 "1206" "unknown" 4425 10850 270 bottom
+C2-7-6 "1206" "unknown" 4425 12350 270 bottom
+C2-7-7 "1206" "unknown" 4425 13850 270 bottom
+C2-7-8 "1206" "unknown" 4425 15350 270 bottom
+C2-7-9 "1206" "unknown" 4425 16850 270 bottom
+C2-7-10 "1206" "unknown" 4425 18350 270 bottom
+C2-7-11 "1206" "unknown" 4425 19850 270 bottom
+C2-7-12 "1206" "unknown" 4425 21350 270 bottom
+C2-7-13 "1206" "unknown" 4425 22850 270 bottom
+C2-7-14 "1206" "unknown" 4425 24350 270 bottom
+C2-8-0 "1206" "unknown" 4925 3350 270 bottom
+C2-8-1 "1206" "unknown" 4925 4850 270 bottom
+C2-8-2 "1206" "unknown" 4925 6350 270 bottom
+C2-8-3 "1206" "unknown" 4925 7850 270 bottom
+C2-8-4 "1206" "unknown" 4925 9350 270 bottom
+C2-8-5 "1206" "unknown" 4925 10850 270 bottom
+C2-8-6 "1206" "unknown" 4925 12350 270 bottom
+C2-8-7 "1206" "unknown" 4925 13850 270 bottom
+C2-8-8 "1206" "unknown" 4925 15350 270 bottom
+C2-8-9 "1206" "unknown" 4925 16850 270 bottom
+C2-8-10 "1206" "unknown" 4925 18350 270 bottom
+C2-8-11 "1206" "unknown" 4925 19850 270 bottom
+C2-8-12 "1206" "unknown" 4925 21350 270 bottom
+C2-8-13 "1206" "unknown" 4925 22850 270 bottom
+C2-8-14 "1206" "unknown" 4925 24350 270 bottom
+C2-9-0 "1206" "unknown" 5425 3350 270 bottom
+C2-9-1 "1206" "unknown" 5425 4850 270 bottom
+C2-9-2 "1206" "unknown" 5425 6350 270 bottom
+C2-9-3 "1206" "unknown" 5425 7850 270 bottom
+C2-9-4 "1206" "unknown" 5425 9350 270 bottom
+C2-9-5 "1206" "unknown" 5425 10850 270 bottom
+C2-9-6 "1206" "unknown" 5425 12350 270 bottom
+C2-9-7 "1206" "unknown" 5425 13850 270 bottom
+C2-9-8 "1206" "unknown" 5425 15350 270 bottom
+C2-9-9 "1206" "unknown" 5425 16850 270 bottom
+C2-9-10 "1206" "unknown" 5425 18350 270 bottom
+C2-9-11 "1206" "unknown" 5425 19850 270 bottom
+C2-9-12 "1206" "unknown" 5425 21350 270 bottom
+C2-9-13 "1206" "unknown" 5425 22850 270 bottom
+C2-9-14 "1206" "unknown" 5425 24350 270 bottom
+C2-10-0 "1206" "unknown" 5925 3350 270 bottom
+C2-10-1 "1206" "unknown" 5925 4850 270 bottom
+C2-10-2 "1206" "unknown" 5925 6350 270 bottom
+C2-10-3 "1206" "unknown" 5925 7850 270 bottom
+C2-10-4 "1206" "unknown" 5925 9350 270 bottom
+C2-10-5 "1206" "unknown" 5925 10850 270 bottom
+C2-10-6 "1206" "unknown" 5925 12350 270 bottom
+C2-10-7 "1206" "unknown" 5925 13850 270 bottom
+C2-10-8 "1206" "unknown" 5925 15350 270 bottom
+C2-10-9 "1206" "unknown" 5925 16850 270 bottom
+C2-10-10 "1206" "unknown" 5925 18350 270 bottom
+C2-10-11 "1206" "unknown" 5925 19850 270 bottom
+C2-10-12 "1206" "unknown" 5925 21350 270 bottom
+C2-10-13 "1206" "unknown" 5925 22850 270 bottom
+C2-10-14 "1206" "unknown" 5925 24350 270 bottom
+C2-11-0 "1206" "unknown" 6425 3350 270 bottom
+C2-11-1 "1206" "unknown" 6425 4850 270 bottom
+C2-11-2 "1206" "unknown" 6425 6350 270 bottom
+C2-11-3 "1206" "unknown" 6425 7850 270 bottom
+C2-11-4 "1206" "unknown" 6425 9350 270 bottom
+C2-11-5 "1206" "unknown" 6425 10850 270 bottom
+C2-11-6 "1206" "unknown" 6425 12350 270 bottom
+C2-11-7 "1206" "unknown" 6425 13850 270 bottom
+C2-11-8 "1206" "unknown" 6425 15350 270 bottom
+C2-11-9 "1206" "unknown" 6425 16850 270 bottom
+C2-11-10 "1206" "unknown" 6425 18350 270 bottom
+C2-11-11 "1206" "unknown" 6425 19850 270 bottom
+C2-11-12 "1206" "unknown" 6425 21350 270 bottom
+C2-11-13 "1206" "unknown" 6425 22850 270 bottom
+C2-11-14 "1206" "unknown" 6425 24350 270 bottom
+C2-12-0 "1206" "unknown" 6925 3350 270 bottom
+C2-12-1 "1206" "unknown" 6925 4850 270 bottom
+C2-12-2 "1206" "unknown" 6925 6350 270 bottom
+C2-12-3 "1206" "unknown" 6925 7850 270 bottom
+C2-12-4 "1206" "unknown" 6925 9350 270 bottom
+C2-12-5 "1206" "unknown" 6925 10850 270 bottom
+C2-12-6 "1206" "unknown" 6925 12350 270 bottom
+C2-12-7 "1206" "unknown" 6925 13850 270 bottom
+C2-12-8 "1206" "unknown" 6925 15350 270 bottom
+C2-12-9 "1206" "unknown" 6925 16850 270 bottom
+C2-12-10 "1206" "unknown" 6925 18350 270 bottom
+C2-12-11 "1206" "unknown" 6925 19850 270 bottom
+C2-12-12 "1206" "unknown" 6925 21350 270 bottom
+C2-12-13 "1206" "unknown" 6925 22850 270 bottom
+C2-12-14 "1206" "unknown" 6925 24350 270 bottom
+C2-13-0 "1206" "unknown" 7425 3350 270 bottom
+C2-13-1 "1206" "unknown" 7425 4850 270 bottom
+C2-13-2 "1206" "unknown" 7425 6350 270 bottom
+C2-13-3 "1206" "unknown" 7425 7850 270 bottom
+C2-13-4 "1206" "unknown" 7425 9350 270 bottom
+C2-13-5 "1206" "unknown" 7425 10850 270 bottom
+C2-13-6 "1206" "unknown" 7425 12350 270 bottom
+C2-13-7 "1206" "unknown" 7425 13850 270 bottom
+C2-13-8 "1206" "unknown" 7425 15350 270 bottom
+C2-13-9 "1206" "unknown" 7425 16850 270 bottom
+C2-13-10 "1206" "unknown" 7425 18350 270 bottom
+C2-13-11 "1206" "unknown" 7425 19850 270 bottom
+C2-13-12 "1206" "unknown" 7425 21350 270 bottom
+C2-13-13 "1206" "unknown" 7425 22850 270 bottom
+C2-13-14 "1206" "unknown" 7425 24350 270 bottom
+C2-14-0 "1206" "unknown" 7925 3350 270 bottom
+C2-14-1 "1206" "unknown" 7925 4850 270 bottom
+C2-14-2 "1206" "unknown" 7925 6350 270 bottom
+C2-14-3 "1206" "unknown" 7925 7850 270 bottom
+C2-14-4 "1206" "unknown" 7925 9350 270 bottom
+C2-14-5 "1206" "unknown" 7925 10850 270 bottom
+C2-14-6 "1206" "unknown" 7925 12350 270 bottom
+C2-14-7 "1206" "unknown" 7925 13850 270 bottom
+C2-14-8 "1206" "unknown" 7925 15350 270 bottom
+C2-14-9 "1206" "unknown" 7925 16850 270 bottom
+C2-14-10 "1206" "unknown" 7925 18350 270 bottom
+C2-14-11 "1206" "unknown" 7925 19850 270 bottom
+C2-14-12 "1206" "unknown" 7925 21350 270 bottom
+C2-14-13 "1206" "unknown" 7925 22850 270 bottom
+C2-14-14 "1206" "unknown" 7925 24350 270 bottom
+R2-0-0 "1206" "unknown" 506.90 3751.38 180 bottom
+R2-0-1 "1206" "unknown" 506.9 5251.38 180 bottom
+R2-0-2 "1206" "unknown" 506.9 6751.38 180 bottom
+R2-0-3 "1206" "unknown" 506.9 8251.38 180 bottom
+R2-0-4 "1206" "unknown" 506.9 9751.38 180 bottom
+R2-0-5 "1206" "unknown" 506.9 11251.38 180 bottom
+R2-0-6 "1206" "unknown" 506.9 12751.38 180 bottom
+R2-0-7 "1206" "unknown" 506.9 14251.38 180 bottom
+R2-0-8 "1206" "unknown" 506.9 15751.38 180 bottom
+R2-0-9 "1206" "unknown" 506.9 17251.38 180 bottom
+R2-0-10 "1206" "unknown" 506.9 18751.38 180 bottom
+R2-0-11 "1206" "unknown" 506.9 20251.38 180 bottom
+R2-0-12 "1206" "unknown" 506.9 21751.38 180 bottom
+R2-0-13 "1206" "unknown" 506.9 23251.38 180 bottom
+R2-0-14 "1206" "unknown" 506.9 24751.38 180 bottom
+R2-1-0 "1206" "unknown" 1006.9 3751.38 180 bottom
+R2-1-1 "1206" "unknown" 1006.9 5251.38 180 bottom
+R2-1-2 "1206" "unknown" 1006.9 6751.38 180 bottom
+R2-1-3 "1206" "unknown" 1006.9 8251.38 180 bottom
+R2-1-4 "1206" "unknown" 1006.9 9751.38 180 bottom
+R2-1-5 "1206" "unknown" 1006.9 11251.38 180 bottom
+R2-1-6 "1206" "unknown" 1006.9 12751.38 180 bottom
+R2-1-7 "1206" "unknown" 1006.9 14251.38 180 bottom
+R2-1-8 "1206" "unknown" 1006.9 15751.38 180 bottom
+R2-1-9 "1206" "unknown" 1006.9 17251.38 180 bottom
+R2-1-10 "1206" "unknown" 1006.9 18751.38 180 bottom
+R2-1-11 "1206" "unknown" 1006.9 20251.38 180 bottom
+R2-1-12 "1206" "unknown" 1006.9 21751.38 180 bottom
+R2-1-13 "1206" "unknown" 1006.9 23251.38 180 bottom
+R2-1-14 "1206" "unknown" 1006.9 24751.38 180 bottom
+R2-2-0 "1206" "unknown" 1506.9 3751.38 180 bottom
+R2-2-1 "1206" "unknown" 1506.9 5251.38 180 bottom
+R2-2-2 "1206" "unknown" 1506.9 6751.38 180 bottom
+R2-2-3 "1206" "unknown" 1506.9 8251.38 180 bottom
+R2-2-4 "1206" "unknown" 1506.9 9751.38 180 bottom
+R2-2-5 "1206" "unknown" 1506.9 11251.38 180 bottom
+R2-2-6 "1206" "unknown" 1506.9 12751.38 180 bottom
+R2-2-7 "1206" "unknown" 1506.9 14251.38 180 bottom
+R2-2-8 "1206" "unknown" 1506.9 15751.38 180 bottom
+R2-2-9 "1206" "unknown" 1506.9 17251.38 180 bottom
+R2-2-10 "1206" "unknown" 1506.9 18751.38 180 bottom
+R2-2-11 "1206" "unknown" 1506.9 20251.38 180 bottom
+R2-2-12 "1206" "unknown" 1506.9 21751.38 180 bottom
+R2-2-13 "1206" "unknown" 1506.9 23251.38 180 bottom
+R2-2-14 "1206" "unknown" 1506.9 24751.38 180 bottom
+R2-3-0 "1206" "unknown" 2006.9 3751.38 180 bottom
+R2-3-1 "1206" "unknown" 2006.9 5251.38 180 bottom
+R2-3-2 "1206" "unknown" 2006.9 6751.38 180 bottom
+R2-3-3 "1206" "unknown" 2006.9 8251.38 180 bottom
+R2-3-4 "1206" "unknown" 2006.9 9751.38 180 bottom
+R2-3-5 "1206" "unknown" 2006.9 11251.38 180 bottom
+R2-3-6 "1206" "unknown" 2006.9 12751.38 180 bottom
+R2-3-7 "1206" "unknown" 2006.9 14251.38 180 bottom
+R2-3-8 "1206" "unknown" 2006.9 15751.38 180 bottom
+R2-3-9 "1206" "unknown" 2006.9 17251.38 180 bottom
+R2-3-10 "1206" "unknown" 2006.9 18751.38 180 bottom
+R2-3-11 "1206" "unknown" 2006.9 20251.38 180 bottom
+R2-3-12 "1206" "unknown" 2006.9 21751.38 180 bottom
+R2-3-13 "1206" "unknown" 2006.9 23251.38 180 bottom
+R2-3-14 "1206" "unknown" 2006.9 24751.38 180 bottom
+R2-4-0 "1206" "unknown" 2506.9 3751.38 180 bottom
+R2-4-1 "1206" "unknown" 2506.9 5251.38 180 bottom
+R2-4-2 "1206" "unknown" 2506.9 6751.38 180 bottom
+R2-4-3 "1206" "unknown" 2506.9 8251.38 180 bottom
+R2-4-4 "1206" "unknown" 2506.9 9751.38 180 bottom
+R2-4-5 "1206" "unknown" 2506.9 11251.38 180 bottom
+R2-4-6 "1206" "unknown" 2506.9 12751.38 180 bottom
+R2-4-7 "1206" "unknown" 2506.9 14251.38 180 bottom
+R2-4-8 "1206" "unknown" 2506.9 15751.38 180 bottom
+R2-4-9 "1206" "unknown" 2506.9 17251.38 180 bottom
+R2-4-10 "1206" "unknown" 2506.9 18751.38 180 bottom
+R2-4-11 "1206" "unknown" 2506.9 20251.38 180 bottom
+R2-4-12 "1206" "unknown" 2506.9 21751.38 180 bottom
+R2-4-13 "1206" "unknown" 2506.9 23251.38 180 bottom
+R2-4-14 "1206" "unknown" 2506.9 24751.38 180 bottom
+R2-5-0 "1206" "unknown" 3006.9 3751.38 180 bottom
+R2-5-1 "1206" "unknown" 3006.9 5251.38 180 bottom
+R2-5-2 "1206" "unknown" 3006.9 6751.38 180 bottom
+R2-5-3 "1206" "unknown" 3006.9 8251.38 180 bottom
+R2-5-4 "1206" "unknown" 3006.9 9751.38 180 bottom
+R2-5-5 "1206" "unknown" 3006.9 11251.38 180 bottom
+R2-5-6 "1206" "unknown" 3006.9 12751.38 180 bottom
+R2-5-7 "1206" "unknown" 3006.9 14251.38 180 bottom
+R2-5-8 "1206" "unknown" 3006.9 15751.38 180 bottom
+R2-5-9 "1206" "unknown" 3006.9 17251.38 180 bottom
+R2-5-10 "1206" "unknown" 3006.9 18751.38 180 bottom
+R2-5-11 "1206" "unknown" 3006.9 20251.38 180 bottom
+R2-5-12 "1206" "unknown" 3006.9 21751.38 180 bottom
+R2-5-13 "1206" "unknown" 3006.9 23251.38 180 bottom
+R2-5-14 "1206" "unknown" 3006.9 24751.38 180 bottom
+R2-6-0 "1206" "unknown" 3506.9 3751.38 180 bottom
+R2-6-1 "1206" "unknown" 3506.9 5251.38 180 bottom
+R2-6-2 "1206" "unknown" 3506.9 6751.38 180 bottom
+R2-6-3 "1206" "unknown" 3506.9 8251.38 180 bottom
+R2-6-4 "1206" "unknown" 3506.9 9751.38 180 bottom
+R2-6-5 "1206" "unknown" 3506.9 11251.38 180 bottom
+R2-6-6 "1206" "unknown" 3506.9 12751.38 180 bottom
+R2-6-7 "1206" "unknown" 3506.9 14251.38 180 bottom
+R2-6-8 "1206" "unknown" 3506.9 15751.38 180 bottom
+R2-6-9 "1206" "unknown" 3506.9 17251.38 180 bottom
+R2-6-10 "1206" "unknown" 3506.9 18751.38 180 bottom
+R2-6-11 "1206" "unknown" 3506.9 20251.38 180 bottom
+R2-6-12 "1206" "unknown" 3506.9 21751.38 180 bottom
+R2-6-13 "1206" "unknown" 3506.9 23251.38 180 bottom
+R2-6-14 "1206" "unknown" 3506.9 24751.38 180 bottom
+R2-7-0 "1206" "unknown" 4006.9 3751.38 180 bottom
+R2-7-1 "1206" "unknown" 4006.9 5251.38 180 bottom
+R2-7-2 "1206" "unknown" 4006.9 6751.38 180 bottom
+R2-7-3 "1206" "unknown" 4006.9 8251.38 180 bottom
+R2-7-4 "1206" "unknown" 4006.9 9751.38 180 bottom
+R2-7-5 "1206" "unknown" 4006.9 11251.38 180 bottom
+R2-7-6 "1206" "unknown" 4006.9 12751.38 180 bottom
+R2-7-7 "1206" "unknown" 4006.9 14251.38 180 bottom
+R2-7-8 "1206" "unknown" 4006.9 15751.38 180 bottom
+R2-7-9 "1206" "unknown" 4006.9 17251.38 180 bottom
+R2-7-10 "1206" "unknown" 4006.9 18751.38 180 bottom
+R2-7-11 "1206" "unknown" 4006.9 20251.38 180 bottom
+R2-7-12 "1206" "unknown" 4006.9 21751.38 180 bottom
+R2-7-13 "1206" "unknown" 4006.9 23251.38 180 bottom
+R2-7-14 "1206" "unknown" 4006.9 24751.38 180 bottom
+R2-8-0 "1206" "unknown" 4506.9 3751.38 180 bottom
+R2-8-1 "1206" "unknown" 4506.9 5251.38 180 bottom
+R2-8-2 "1206" "unknown" 4506.9 6751.38 180 bottom
+R2-8-3 "1206" "unknown" 4506.9 8251.38 180 bottom
+R2-8-4 "1206" "unknown" 4506.9 9751.38 180 bottom
+R2-8-5 "1206" "unknown" 4506.9 11251.38 180 bottom
+R2-8-6 "1206" "unknown" 4506.9 12751.38 180 bottom
+R2-8-7 "1206" "unknown" 4506.9 14251.38 180 bottom
+R2-8-8 "1206" "unknown" 4506.9 15751.38 180 bottom
+R2-8-9 "1206" "unknown" 4506.9 17251.38 180 bottom
+R2-8-10 "1206" "unknown" 4506.9 18751.38 180 bottom
+R2-8-11 "1206" "unknown" 4506.9 20251.38 180 bottom
+R2-8-12 "1206" "unknown" 4506.9 21751.38 180 bottom
+R2-8-13 "1206" "unknown" 4506.9 23251.38 180 bottom
+R2-8-14 "1206" "unknown" 4506.9 24751.38 180 bottom
+R2-9-0 "1206" "unknown" 5006.9 3751.38 180 bottom
+R2-9-1 "1206" "unknown" 5006.9 5251.38 180 bottom
+R2-9-2 "1206" "unknown" 5006.9 6751.38 180 bottom
+R2-9-3 "1206" "unknown" 5006.9 8251.38 180 bottom
+R2-9-4 "1206" "unknown" 5006.9 9751.38 180 bottom
+R2-9-5 "1206" "unknown" 5006.9 11251.38 180 bottom
+R2-9-6 "1206" "unknown" 5006.9 12751.38 180 bottom
+R2-9-7 "1206" "unknown" 5006.9 14251.38 180 bottom
+R2-9-8 "1206" "unknown" 5006.9 15751.38 180 bottom
+R2-9-9 "1206" "unknown" 5006.9 17251.38 180 bottom
+R2-9-10 "1206" "unknown" 5006.9 18751.38 180 bottom
+R2-9-11 "1206" "unknown" 5006.9 20251.38 180 bottom
+R2-9-12 "1206" "unknown" 5006.9 21751.38 180 bottom
+R2-9-13 "1206" "unknown" 5006.9 23251.38 180 bottom
+R2-9-14 "1206" "unknown" 5006.9 24751.38 180 bottom
+R2-10-0 "1206" "unknown" 5506.9 3751.38 180 bottom
+R2-10-1 "1206" "unknown" 5506.9 5251.38 180 bottom
+R2-10-2 "1206" "unknown" 5506.9 6751.38 180 bottom
+R2-10-3 "1206" "unknown" 5506.9 8251.38 180 bottom
+R2-10-4 "1206" "unknown" 5506.9 9751.38 180 bottom
+R2-10-5 "1206" "unknown" 5506.9 11251.38 180 bottom
+R2-10-6 "1206" "unknown" 5506.9 12751.38 180 bottom
+R2-10-7 "1206" "unknown" 5506.9 14251.38 180 bottom
+R2-10-8 "1206" "unknown" 5506.9 15751.38 180 bottom
+R2-10-9 "1206" "unknown" 5506.9 17251.38 180 bottom
+R2-10-10 "1206" "unknown" 5506.9 18751.38 180 bottom
+R2-10-11 "1206" "unknown" 5506.9 20251.38 180 bottom
+R2-10-12 "1206" "unknown" 5506.9 21751.38 180 bottom
+R2-10-13 "1206" "unknown" 5506.9 23251.38 180 bottom
+R2-10-14 "1206" "unknown" 5506.9 24751.38 180 bottom
+R2-11-0 "1206" "unknown" 6006.9 3751.38 180 bottom
+R2-11-1 "1206" "unknown" 6006.9 5251.38 180 bottom
+R2-11-2 "1206" "unknown" 6006.9 6751.38 180 bottom
+R2-11-3 "1206" "unknown" 6006.9 8251.38 180 bottom
+R2-11-4 "1206" "unknown" 6006.9 9751.38 180 bottom
+R2-11-5 "1206" "unknown" 6006.9 11251.38 180 bottom
+R2-11-6 "1206" "unknown" 6006.9 12751.38 180 bottom
+R2-11-7 "1206" "unknown" 6006.9 14251.38 180 bottom
+R2-11-8 "1206" "unknown" 6006.9 15751.38 180 bottom
+R2-11-9 "1206" "unknown" 6006.9 17251.38 180 bottom
+R2-11-10 "1206" "unknown" 6006.9 18751.38 180 bottom
+R2-11-11 "1206" "unknown" 6006.9 20251.38 180 bottom
+R2-11-12 "1206" "unknown" 6006.9 21751.38 180 bottom
+R2-11-13 "1206" "unknown" 6006.9 23251.38 180 bottom
+R2-11-14 "1206" "unknown" 6006.9 24751.38 180 bottom
+R2-12-0 "1206" "unknown" 6506.9 3751.38 180 bottom
+R2-12-1 "1206" "unknown" 6506.9 5251.38 180 bottom
+R2-12-2 "1206" "unknown" 6506.9 6751.38 180 bottom
+R2-12-3 "1206" "unknown" 6506.9 8251.38 180 bottom
+R2-12-4 "1206" "unknown" 6506.9 9751.38 180 bottom
+R2-12-5 "1206" "unknown" 6506.9 11251.38 180 bottom
+R2-12-6 "1206" "unknown" 6506.9 12751.38 180 bottom
+R2-12-7 "1206" "unknown" 6506.9 14251.38 180 bottom
+R2-12-8 "1206" "unknown" 6506.9 15751.38 180 bottom
+R2-12-9 "1206" "unknown" 6506.9 17251.38 180 bottom
+R2-12-10 "1206" "unknown" 6506.9 18751.38 180 bottom
+R2-12-11 "1206" "unknown" 6506.9 20251.38 180 bottom
+R2-12-12 "1206" "unknown" 6506.9 21751.38 180 bottom
+R2-12-13 "1206" "unknown" 6506.9 23251.38 180 bottom
+R2-12-14 "1206" "unknown" 6506.9 24751.38 180 bottom
+R2-13-0 "1206" "unknown" 7006.9 3751.38 180 bottom
+R2-13-1 "1206" "unknown" 7006.9 5251.38 180 bottom
+R2-13-2 "1206" "unknown" 7006.9 6751.38 180 bottom
+R2-13-3 "1206" "unknown" 7006.9 8251.38 180 bottom
+R2-13-4 "1206" "unknown" 7006.9 9751.38 180 bottom
+R2-13-5 "1206" "unknown" 7006.9 11251.38 180 bottom
+R2-13-6 "1206" "unknown" 7006.9 12751.38 180 bottom
+R2-13-7 "1206" "unknown" 7006.9 14251.38 180 bottom
+R2-13-8 "1206" "unknown" 7006.9 15751.38 180 bottom
+R2-13-9 "1206" "unknown" 7006.9 17251.38 180 bottom
+R2-13-10 "1206" "unknown" 7006.9 18751.38 180 bottom
+R2-13-11 "1206" "unknown" 7006.9 20251.38 180 bottom
+R2-13-12 "1206" "unknown" 7006.9 21751.38 180 bottom
+R2-13-13 "1206" "unknown" 7006.9 23251.38 180 bottom
+R2-13-14 "1206" "unknown" 7006.9 24751.38 180 bottom
+R2-14-0 "1206" "unknown" 7506.9 3751.38 180 bottom
+R2-14-1 "1206" "unknown" 7506.9 5251.38 180 bottom
+R2-14-2 "1206" "unknown" 7506.9 6751.38 180 bottom
+R2-14-3 "1206" "unknown" 7506.9 8251.38 180 bottom
+R2-14-4 "1206" "unknown" 7506.9 9751.38 180 bottom
+R2-14-5 "1206" "unknown" 7506.9 11251.38 180 bottom
+R2-14-6 "1206" "unknown" 7506.9 12751.38 180 bottom
+R2-14-7 "1206" "unknown" 7506.9 14251.38 180 bottom
+R2-14-8 "1206" "unknown" 7506.9 15751.38 180 bottom
+R2-14-9 "1206" "unknown" 7506.9 17251.38 180 bottom
+R2-14-10 "1206" "unknown" 7506.9 18751.38 180 bottom
+R2-14-11 "1206" "unknown" 7506.9 20251.38 180 bottom
+R2-14-12 "1206" "unknown" 7506.9 21751.38 180 bottom
+R2-14-13 "1206" "unknown" 7506.9 23251.38 180 bottom
+R2-14-14 "1206" "unknown" 7506.9 24751.38 180 bottom
+CONN1-0-0 "CONNECTOR-2-1" "unknown" 275.00 3625.00 0 top
+CONN1-0-1 "CONNECTOR-2-1" "unknown" 275 5125 0 top
+CONN1-0-2 "CONNECTOR-2-1" "unknown" 275 6625 0 top
+CONN1-0-3 "CONNECTOR-2-1" "unknown" 275 8125 0 top
+CONN1-0-4 "CONNECTOR-2-1" "unknown" 275 9625 0 top
+CONN1-0-5 "CONNECTOR-2-1" "unknown" 275 11125 0 top
+CONN1-0-6 "CONNECTOR-2-1" "unknown" 275 12625 0 top
+CONN1-0-7 "CONNECTOR-2-1" "unknown" 275 14125 0 top
+CONN1-0-8 "CONNECTOR-2-1" "unknown" 275 15625 0 top
+CONN1-0-9 "CONNECTOR-2-1" "unknown" 275 17125 0 top
+CONN1-0-10 "CONNECTOR-2-1" "unknown" 275 18625 0 top
+CONN1-0-11 "CONNECTOR-2-1" "unknown" 275 20125 0 top
+CONN1-0-12 "CONNECTOR-2-1" "unknown" 275 21625 0 top
+CONN1-0-13 "CONNECTOR-2-1" "unknown" 275 23125 0 top
+CONN1-0-14 "CONNECTOR-2-1" "unknown" 275 24625 0 top
+CONN1-1-0 "CONNECTOR-2-1" "unknown" 775 3625 0 top
+CONN1-1-1 "CONNECTOR-2-1" "unknown" 775 5125 0 top
+CONN1-1-2 "CONNECTOR-2-1" "unknown" 775 6625 0 top
+CONN1-1-3 "CONNECTOR-2-1" "unknown" 775 8125 0 top
+CONN1-1-4 "CONNECTOR-2-1" "unknown" 775 9625 0 top
+CONN1-1-5 "CONNECTOR-2-1" "unknown" 775 11125 0 top
+CONN1-1-6 "CONNECTOR-2-1" "unknown" 775 12625 0 top
+CONN1-1-7 "CONNECTOR-2-1" "unknown" 775 14125 0 top
+CONN1-1-8 "CONNECTOR-2-1" "unknown" 775 15625 0 top
+CONN1-1-9 "CONNECTOR-2-1" "unknown" 775 17125 0 top
+CONN1-1-10 "CONNECTOR-2-1" "unknown" 775 18625 0 top
+CONN1-1-11 "CONNECTOR-2-1" "unknown" 775 20125 0 top
+CONN1-1-12 "CONNECTOR-2-1" "unknown" 775 21625 0 top
+CONN1-1-13 "CONNECTOR-2-1" "unknown" 775 23125 0 top
+CONN1-1-14 "CONNECTOR-2-1" "unknown" 775 24625 0 top
+CONN1-2-0 "CONNECTOR-2-1" "unknown" 1275 3625 0 top
+CONN1-2-1 "CONNECTOR-2-1" "unknown" 1275 5125 0 top
+CONN1-2-2 "CONNECTOR-2-1" "unknown" 1275 6625 0 top
+CONN1-2-3 "CONNECTOR-2-1" "unknown" 1275 8125 0 top
+CONN1-2-4 "CONNECTOR-2-1" "unknown" 1275 9625 0 top
+CONN1-2-5 "CONNECTOR-2-1" "unknown" 1275 11125 0 top
+CONN1-2-6 "CONNECTOR-2-1" "unknown" 1275 12625 0 top
+CONN1-2-7 "CONNECTOR-2-1" "unknown" 1275 14125 0 top
+CONN1-2-8 "CONNECTOR-2-1" "unknown" 1275 15625 0 top
+CONN1-2-9 "CONNECTOR-2-1" "unknown" 1275 17125 0 top
+CONN1-2-10 "CONNECTOR-2-1" "unknown" 1275 18625 0 top
+CONN1-2-11 "CONNECTOR-2-1" "unknown" 1275 20125 0 top
+CONN1-2-12 "CONNECTOR-2-1" "unknown" 1275 21625 0 top
+CONN1-2-13 "CONNECTOR-2-1" "unknown" 1275 23125 0 top
+CONN1-2-14 "CONNECTOR-2-1" "unknown" 1275 24625 0 top
+CONN1-3-0 "CONNECTOR-2-1" "unknown" 1775 3625 0 top
+CONN1-3-1 "CONNECTOR-2-1" "unknown" 1775 5125 0 top
+CONN1-3-2 "CONNECTOR-2-1" "unknown" 1775 6625 0 top
+CONN1-3-3 "CONNECTOR-2-1" "unknown" 1775 8125 0 top
+CONN1-3-4 "CONNECTOR-2-1" "unknown" 1775 9625 0 top
+CONN1-3-5 "CONNECTOR-2-1" "unknown" 1775 11125 0 top
+CONN1-3-6 "CONNECTOR-2-1" "unknown" 1775 12625 0 top
+CONN1-3-7 "CONNECTOR-2-1" "unknown" 1775 14125 0 top
+CONN1-3-8 "CONNECTOR-2-1" "unknown" 1775 15625 0 top
+CONN1-3-9 "CONNECTOR-2-1" "unknown" 1775 17125 0 top
+CONN1-3-10 "CONNECTOR-2-1" "unknown" 1775 18625 0 top
+CONN1-3-11 "CONNECTOR-2-1" "unknown" 1775 20125 0 top
+CONN1-3-12 "CONNECTOR-2-1" "unknown" 1775 21625 0 top
+CONN1-3-13 "CONNECTOR-2-1" "unknown" 1775 23125 0 top
+CONN1-3-14 "CONNECTOR-2-1" "unknown" 1775 24625 0 top
+CONN1-4-0 "CONNECTOR-2-1" "unknown" 2275 3625 0 top
+CONN1-4-1 "CONNECTOR-2-1" "unknown" 2275 5125 0 top
+CONN1-4-2 "CONNECTOR-2-1" "unknown" 2275 6625 0 top
+CONN1-4-3 "CONNECTOR-2-1" "unknown" 2275 8125 0 top
+CONN1-4-4 "CONNECTOR-2-1" "unknown" 2275 9625 0 top
+CONN1-4-5 "CONNECTOR-2-1" "unknown" 2275 11125 0 top
+CONN1-4-6 "CONNECTOR-2-1" "unknown" 2275 12625 0 top
+CONN1-4-7 "CONNECTOR-2-1" "unknown" 2275 14125 0 top
+CONN1-4-8 "CONNECTOR-2-1" "unknown" 2275 15625 0 top
+CONN1-4-9 "CONNECTOR-2-1" "unknown" 2275 17125 0 top
+CONN1-4-10 "CONNECTOR-2-1" "unknown" 2275 18625 0 top
+CONN1-4-11 "CONNECTOR-2-1" "unknown" 2275 20125 0 top
+CONN1-4-12 "CONNECTOR-2-1" "unknown" 2275 21625 0 top
+CONN1-4-13 "CONNECTOR-2-1" "unknown" 2275 23125 0 top
+CONN1-4-14 "CONNECTOR-2-1" "unknown" 2275 24625 0 top
+CONN1-5-0 "CONNECTOR-2-1" "unknown" 2775 3625 0 top
+CONN1-5-1 "CONNECTOR-2-1" "unknown" 2775 5125 0 top
+CONN1-5-2 "CONNECTOR-2-1" "unknown" 2775 6625 0 top
+CONN1-5-3 "CONNECTOR-2-1" "unknown" 2775 8125 0 top
+CONN1-5-4 "CONNECTOR-2-1" "unknown" 2775 9625 0 top
+CONN1-5-5 "CONNECTOR-2-1" "unknown" 2775 11125 0 top
+CONN1-5-6 "CONNECTOR-2-1" "unknown" 2775 12625 0 top
+CONN1-5-7 "CONNECTOR-2-1" "unknown" 2775 14125 0 top
+CONN1-5-8 "CONNECTOR-2-1" "unknown" 2775 15625 0 top
+CONN1-5-9 "CONNECTOR-2-1" "unknown" 2775 17125 0 top
+CONN1-5-10 "CONNECTOR-2-1" "unknown" 2775 18625 0 top
+CONN1-5-11 "CONNECTOR-2-1" "unknown" 2775 20125 0 top
+CONN1-5-12 "CONNECTOR-2-1" "unknown" 2775 21625 0 top
+CONN1-5-13 "CONNECTOR-2-1" "unknown" 2775 23125 0 top
+CONN1-5-14 "CONNECTOR-2-1" "unknown" 2775 24625 0 top
+CONN1-6-0 "CONNECTOR-2-1" "unknown" 3275 3625 0 top
+CONN1-6-1 "CONNECTOR-2-1" "unknown" 3275 5125 0 top
+CONN1-6-2 "CONNECTOR-2-1" "unknown" 3275 6625 0 top
+CONN1-6-3 "CONNECTOR-2-1" "unknown" 3275 8125 0 top
+CONN1-6-4 "CONNECTOR-2-1" "unknown" 3275 9625 0 top
+CONN1-6-5 "CONNECTOR-2-1" "unknown" 3275 11125 0 top
+CONN1-6-6 "CONNECTOR-2-1" "unknown" 3275 12625 0 top
+CONN1-6-7 "CONNECTOR-2-1" "unknown" 3275 14125 0 top
+CONN1-6-8 "CONNECTOR-2-1" "unknown" 3275 15625 0 top
+CONN1-6-9 "CONNECTOR-2-1" "unknown" 3275 17125 0 top
+CONN1-6-10 "CONNECTOR-2-1" "unknown" 3275 18625 0 top
+CONN1-6-11 "CONNECTOR-2-1" "unknown" 3275 20125 0 top
+CONN1-6-12 "CONNECTOR-2-1" "unknown" 3275 21625 0 top
+CONN1-6-13 "CONNECTOR-2-1" "unknown" 3275 23125 0 top
+CONN1-6-14 "CONNECTOR-2-1" "unknown" 3275 24625 0 top
+CONN1-7-0 "CONNECTOR-2-1" "unknown" 3775 3625 0 top
+CONN1-7-1 "CONNECTOR-2-1" "unknown" 3775 5125 0 top
+CONN1-7-2 "CONNECTOR-2-1" "unknown" 3775 6625 0 top
+CONN1-7-3 "CONNECTOR-2-1" "unknown" 3775 8125 0 top
+CONN1-7-4 "CONNECTOR-2-1" "unknown" 3775 9625 0 top
+CONN1-7-5 "CONNECTOR-2-1" "unknown" 3775 11125 0 top
+CONN1-7-6 "CONNECTOR-2-1" "unknown" 3775 12625 0 top
+CONN1-7-7 "CONNECTOR-2-1" "unknown" 3775 14125 0 top
+CONN1-7-8 "CONNECTOR-2-1" "unknown" 3775 15625 0 top
+CONN1-7-9 "CONNECTOR-2-1" "unknown" 3775 17125 0 top
+CONN1-7-10 "CONNECTOR-2-1" "unknown" 3775 18625 0 top
+CONN1-7-11 "CONNECTOR-2-1" "unknown" 3775 20125 0 top
+CONN1-7-12 "CONNECTOR-2-1" "unknown" 3775 21625 0 top
+CONN1-7-13 "CONNECTOR-2-1" "unknown" 3775 23125 0 top
+CONN1-7-14 "CONNECTOR-2-1" "unknown" 3775 24625 0 top
+CONN1-8-0 "CONNECTOR-2-1" "unknown" 4275 3625 0 top
+CONN1-8-1 "CONNECTOR-2-1" "unknown" 4275 5125 0 top
+CONN1-8-2 "CONNECTOR-2-1" "unknown" 4275 6625 0 top
+CONN1-8-3 "CONNECTOR-2-1" "unknown" 4275 8125 0 top
+CONN1-8-4 "CONNECTOR-2-1" "unknown" 4275 9625 0 top
+CONN1-8-5 "CONNECTOR-2-1" "unknown" 4275 11125 0 top
+CONN1-8-6 "CONNECTOR-2-1" "unknown" 4275 12625 0 top
+CONN1-8-7 "CONNECTOR-2-1" "unknown" 4275 14125 0 top
+CONN1-8-8 "CONNECTOR-2-1" "unknown" 4275 15625 0 top
+CONN1-8-9 "CONNECTOR-2-1" "unknown" 4275 17125 0 top
+CONN1-8-10 "CONNECTOR-2-1" "unknown" 4275 18625 0 top
+CONN1-8-11 "CONNECTOR-2-1" "unknown" 4275 20125 0 top
+CONN1-8-12 "CONNECTOR-2-1" "unknown" 4275 21625 0 top
+CONN1-8-13 "CONNECTOR-2-1" "unknown" 4275 23125 0 top
+CONN1-8-14 "CONNECTOR-2-1" "unknown" 4275 24625 0 top
+CONN1-9-0 "CONNECTOR-2-1" "unknown" 4775 3625 0 top
+CONN1-9-1 "CONNECTOR-2-1" "unknown" 4775 5125 0 top
+CONN1-9-2 "CONNECTOR-2-1" "unknown" 4775 6625 0 top
+CONN1-9-3 "CONNECTOR-2-1" "unknown" 4775 8125 0 top
+CONN1-9-4 "CONNECTOR-2-1" "unknown" 4775 9625 0 top
+CONN1-9-5 "CONNECTOR-2-1" "unknown" 4775 11125 0 top
+CONN1-9-6 "CONNECTOR-2-1" "unknown" 4775 12625 0 top
+CONN1-9-7 "CONNECTOR-2-1" "unknown" 4775 14125 0 top
+CONN1-9-8 "CONNECTOR-2-1" "unknown" 4775 15625 0 top
+CONN1-9-9 "CONNECTOR-2-1" "unknown" 4775 17125 0 top
+CONN1-9-10 "CONNECTOR-2-1" "unknown" 4775 18625 0 top
+CONN1-9-11 "CONNECTOR-2-1" "unknown" 4775 20125 0 top
+CONN1-9-12 "CONNECTOR-2-1" "unknown" 4775 21625 0 top
+CONN1-9-13 "CONNECTOR-2-1" "unknown" 4775 23125 0 top
+CONN1-9-14 "CONNECTOR-2-1" "unknown" 4775 24625 0 top
+CONN1-10-0 "CONNECTOR-2-1" "unknown" 5275 3625 0 top
+CONN1-10-1 "CONNECTOR-2-1" "unknown" 5275 5125 0 top
+CONN1-10-2 "CONNECTOR-2-1" "unknown" 5275 6625 0 top
+CONN1-10-3 "CONNECTOR-2-1" "unknown" 5275 8125 0 top
+CONN1-10-4 "CONNECTOR-2-1" "unknown" 5275 9625 0 top
+CONN1-10-5 "CONNECTOR-2-1" "unknown" 5275 11125 0 top
+CONN1-10-6 "CONNECTOR-2-1" "unknown" 5275 12625 0 top
+CONN1-10-7 "CONNECTOR-2-1" "unknown" 5275 14125 0 top
+CONN1-10-8 "CONNECTOR-2-1" "unknown" 5275 15625 0 top
+CONN1-10-9 "CONNECTOR-2-1" "unknown" 5275 17125 0 top
+CONN1-10-10 "CONNECTOR-2-1" "unknown" 5275 18625 0 top
+CONN1-10-11 "CONNECTOR-2-1" "unknown" 5275 20125 0 top
+CONN1-10-12 "CONNECTOR-2-1" "unknown" 5275 21625 0 top
+CONN1-10-13 "CONNECTOR-2-1" "unknown" 5275 23125 0 top
+CONN1-10-14 "CONNECTOR-2-1" "unknown" 5275 24625 0 top
+CONN1-11-0 "CONNECTOR-2-1" "unknown" 5775 3625 0 top
+CONN1-11-1 "CONNECTOR-2-1" "unknown" 5775 5125 0 top
+CONN1-11-2 "CONNECTOR-2-1" "unknown" 5775 6625 0 top
+CONN1-11-3 "CONNECTOR-2-1" "unknown" 5775 8125 0 top
+CONN1-11-4 "CONNECTOR-2-1" "unknown" 5775 9625 0 top
+CONN1-11-5 "CONNECTOR-2-1" "unknown" 5775 11125 0 top
+CONN1-11-6 "CONNECTOR-2-1" "unknown" 5775 12625 0 top
+CONN1-11-7 "CONNECTOR-2-1" "unknown" 5775 14125 0 top
+CONN1-11-8 "CONNECTOR-2-1" "unknown" 5775 15625 0 top
+CONN1-11-9 "CONNECTOR-2-1" "unknown" 5775 17125 0 top
+CONN1-11-10 "CONNECTOR-2-1" "unknown" 5775 18625 0 top
+CONN1-11-11 "CONNECTOR-2-1" "unknown" 5775 20125 0 top
+CONN1-11-12 "CONNECTOR-2-1" "unknown" 5775 21625 0 top
+CONN1-11-13 "CONNECTOR-2-1" "unknown" 5775 23125 0 top
+CONN1-11-14 "CONNECTOR-2-1" "unknown" 5775 24625 0 top
+CONN1-12-0 "CONNECTOR-2-1" "unknown" 6275 3625 0 top
+CONN1-12-1 "CONNECTOR-2-1" "unknown" 6275 5125 0 top
+CONN1-12-2 "CONNECTOR-2-1" "unknown" 6275 6625 0 top
+CONN1-12-3 "CONNECTOR-2-1" "unknown" 6275 8125 0 top
+CONN1-12-4 "CONNECTOR-2-1" "unknown" 6275 9625 0 top
+CONN1-12-5 "CONNECTOR-2-1" "unknown" 6275 11125 0 top
+CONN1-12-6 "CONNECTOR-2-1" "unknown" 6275 12625 0 top
+CONN1-12-7 "CONNECTOR-2-1" "unknown" 6275 14125 0 top
+CONN1-12-8 "CONNECTOR-2-1" "unknown" 6275 15625 0 top
+CONN1-12-9 "CONNECTOR-2-1" "unknown" 6275 17125 0 top
+CONN1-12-10 "CONNECTOR-2-1" "unknown" 6275 18625 0 top
+CONN1-12-11 "CONNECTOR-2-1" "unknown" 6275 20125 0 top
+CONN1-12-12 "CONNECTOR-2-1" "unknown" 6275 21625 0 top
+CONN1-12-13 "CONNECTOR-2-1" "unknown" 6275 23125 0 top
+CONN1-12-14 "CONNECTOR-2-1" "unknown" 6275 24625 0 top
+CONN1-13-0 "CONNECTOR-2-1" "unknown" 6775 3625 0 top
+CONN1-13-1 "CONNECTOR-2-1" "unknown" 6775 5125 0 top
+CONN1-13-2 "CONNECTOR-2-1" "unknown" 6775 6625 0 top
+CONN1-13-3 "CONNECTOR-2-1" "unknown" 6775 8125 0 top
+CONN1-13-4 "CONNECTOR-2-1" "unknown" 6775 9625 0 top
+CONN1-13-5 "CONNECTOR-2-1" "unknown" 6775 11125 0 top
+CONN1-13-6 "CONNECTOR-2-1" "unknown" 6775 12625 0 top
+CONN1-13-7 "CONNECTOR-2-1" "unknown" 6775 14125 0 top
+CONN1-13-8 "CONNECTOR-2-1" "unknown" 6775 15625 0 top
+CONN1-13-9 "CONNECTOR-2-1" "unknown" 6775 17125 0 top
+CONN1-13-10 "CONNECTOR-2-1" "unknown" 6775 18625 0 top
+CONN1-13-11 "CONNECTOR-2-1" "unknown" 6775 20125 0 top
+CONN1-13-12 "CONNECTOR-2-1" "unknown" 6775 21625 0 top
+CONN1-13-13 "CONNECTOR-2-1" "unknown" 6775 23125 0 top
+CONN1-13-14 "CONNECTOR-2-1" "unknown" 6775 24625 0 top
+CONN1-14-0 "CONNECTOR-2-1" "unknown" 7275 3625 0 top
+CONN1-14-1 "CONNECTOR-2-1" "unknown" 7275 5125 0 top
+CONN1-14-2 "CONNECTOR-2-1" "unknown" 7275 6625 0 top
+CONN1-14-3 "CONNECTOR-2-1" "unknown" 7275 8125 0 top
+CONN1-14-4 "CONNECTOR-2-1" "unknown" 7275 9625 0 top
+CONN1-14-5 "CONNECTOR-2-1" "unknown" 7275 11125 0 top
+CONN1-14-6 "CONNECTOR-2-1" "unknown" 7275 12625 0 top
+CONN1-14-7 "CONNECTOR-2-1" "unknown" 7275 14125 0 top
+CONN1-14-8 "CONNECTOR-2-1" "unknown" 7275 15625 0 top
+CONN1-14-9 "CONNECTOR-2-1" "unknown" 7275 17125 0 top
+CONN1-14-10 "CONNECTOR-2-1" "unknown" 7275 18625 0 top
+CONN1-14-11 "CONNECTOR-2-1" "unknown" 7275 20125 0 top
+CONN1-14-12 "CONNECTOR-2-1" "unknown" 7275 21625 0 top
+CONN1-14-13 "CONNECTOR-2-1" "unknown" 7275 23125 0 top
+CONN1-14-14 "CONNECTOR-2-1" "unknown" 7275 24625 0 top
+D4-0-0 "CONNECTOR-2-1" "unknown" 500.00 3625.00 0 top
+D4-0-1 "CONNECTOR-2-1" "unknown" 500 5125 0 top
+D4-0-2 "CONNECTOR-2-1" "unknown" 500 6625 0 top
+D4-0-3 "CONNECTOR-2-1" "unknown" 500 8125 0 top
+D4-0-4 "CONNECTOR-2-1" "unknown" 500 9625 0 top
+D4-0-5 "CONNECTOR-2-1" "unknown" 500 11125 0 top
+D4-0-6 "CONNECTOR-2-1" "unknown" 500 12625 0 top
+D4-0-7 "CONNECTOR-2-1" "unknown" 500 14125 0 top
+D4-0-8 "CONNECTOR-2-1" "unknown" 500 15625 0 top
+D4-0-9 "CONNECTOR-2-1" "unknown" 500 17125 0 top
+D4-0-10 "CONNECTOR-2-1" "unknown" 500 18625 0 top
+D4-0-11 "CONNECTOR-2-1" "unknown" 500 20125 0 top
+D4-0-12 "CONNECTOR-2-1" "unknown" 500 21625 0 top
+D4-0-13 "CONNECTOR-2-1" "unknown" 500 23125 0 top
+D4-0-14 "CONNECTOR-2-1" "unknown" 500 24625 0 top
+D4-1-0 "CONNECTOR-2-1" "unknown" 1000 3625 0 top
+D4-1-1 "CONNECTOR-2-1" "unknown" 1000 5125 0 top
+D4-1-2 "CONNECTOR-2-1" "unknown" 1000 6625 0 top
+D4-1-3 "CONNECTOR-2-1" "unknown" 1000 8125 0 top
+D4-1-4 "CONNECTOR-2-1" "unknown" 1000 9625 0 top
+D4-1-5 "CONNECTOR-2-1" "unknown" 1000 11125 0 top
+D4-1-6 "CONNECTOR-2-1" "unknown" 1000 12625 0 top
+D4-1-7 "CONNECTOR-2-1" "unknown" 1000 14125 0 top
+D4-1-8 "CONNECTOR-2-1" "unknown" 1000 15625 0 top
+D4-1-9 "CONNECTOR-2-1" "unknown" 1000 17125 0 top
+D4-1-10 "CONNECTOR-2-1" "unknown" 1000 18625 0 top
+D4-1-11 "CONNECTOR-2-1" "unknown" 1000 20125 0 top
+D4-1-12 "CONNECTOR-2-1" "unknown" 1000 21625 0 top
+D4-1-13 "CONNECTOR-2-1" "unknown" 1000 23125 0 top
+D4-1-14 "CONNECTOR-2-1" "unknown" 1000 24625 0 top
+D4-2-0 "CONNECTOR-2-1" "unknown" 1500 3625 0 top
+D4-2-1 "CONNECTOR-2-1" "unknown" 1500 5125 0 top
+D4-2-2 "CONNECTOR-2-1" "unknown" 1500 6625 0 top
+D4-2-3 "CONNECTOR-2-1" "unknown" 1500 8125 0 top
+D4-2-4 "CONNECTOR-2-1" "unknown" 1500 9625 0 top
+D4-2-5 "CONNECTOR-2-1" "unknown" 1500 11125 0 top
+D4-2-6 "CONNECTOR-2-1" "unknown" 1500 12625 0 top
+D4-2-7 "CONNECTOR-2-1" "unknown" 1500 14125 0 top
+D4-2-8 "CONNECTOR-2-1" "unknown" 1500 15625 0 top
+D4-2-9 "CONNECTOR-2-1" "unknown" 1500 17125 0 top
+D4-2-10 "CONNECTOR-2-1" "unknown" 1500 18625 0 top
+D4-2-11 "CONNECTOR-2-1" "unknown" 1500 20125 0 top
+D4-2-12 "CONNECTOR-2-1" "unknown" 1500 21625 0 top
+D4-2-13 "CONNECTOR-2-1" "unknown" 1500 23125 0 top
+D4-2-14 "CONNECTOR-2-1" "unknown" 1500 24625 0 top
+D4-3-0 "CONNECTOR-2-1" "unknown" 2000 3625 0 top
+D4-3-1 "CONNECTOR-2-1" "unknown" 2000 5125 0 top
+D4-3-2 "CONNECTOR-2-1" "unknown" 2000 6625 0 top
+D4-3-3 "CONNECTOR-2-1" "unknown" 2000 8125 0 top
+D4-3-4 "CONNECTOR-2-1" "unknown" 2000 9625 0 top
+D4-3-5 "CONNECTOR-2-1" "unknown" 2000 11125 0 top
+D4-3-6 "CONNECTOR-2-1" "unknown" 2000 12625 0 top
+D4-3-7 "CONNECTOR-2-1" "unknown" 2000 14125 0 top
+D4-3-8 "CONNECTOR-2-1" "unknown" 2000 15625 0 top
+D4-3-9 "CONNECTOR-2-1" "unknown" 2000 17125 0 top
+D4-3-10 "CONNECTOR-2-1" "unknown" 2000 18625 0 top
+D4-3-11 "CONNECTOR-2-1" "unknown" 2000 20125 0 top
+D4-3-12 "CONNECTOR-2-1" "unknown" 2000 21625 0 top
+D4-3-13 "CONNECTOR-2-1" "unknown" 2000 23125 0 top
+D4-3-14 "CONNECTOR-2-1" "unknown" 2000 24625 0 top
+D4-4-0 "CONNECTOR-2-1" "unknown" 2500 3625 0 top
+D4-4-1 "CONNECTOR-2-1" "unknown" 2500 5125 0 top
+D4-4-2 "CONNECTOR-2-1" "unknown" 2500 6625 0 top
+D4-4-3 "CONNECTOR-2-1" "unknown" 2500 8125 0 top
+D4-4-4 "CONNECTOR-2-1" "unknown" 2500 9625 0 top
+D4-4-5 "CONNECTOR-2-1" "unknown" 2500 11125 0 top
+D4-4-6 "CONNECTOR-2-1" "unknown" 2500 12625 0 top
+D4-4-7 "CONNECTOR-2-1" "unknown" 2500 14125 0 top
+D4-4-8 "CONNECTOR-2-1" "unknown" 2500 15625 0 top
+D4-4-9 "CONNECTOR-2-1" "unknown" 2500 17125 0 top
+D4-4-10 "CONNECTOR-2-1" "unknown" 2500 18625 0 top
+D4-4-11 "CONNECTOR-2-1" "unknown" 2500 20125 0 top
+D4-4-12 "CONNECTOR-2-1" "unknown" 2500 21625 0 top
+D4-4-13 "CONNECTOR-2-1" "unknown" 2500 23125 0 top
+D4-4-14 "CONNECTOR-2-1" "unknown" 2500 24625 0 top
+D4-5-0 "CONNECTOR-2-1" "unknown" 3000 3625 0 top
+D4-5-1 "CONNECTOR-2-1" "unknown" 3000 5125 0 top
+D4-5-2 "CONNECTOR-2-1" "unknown" 3000 6625 0 top
+D4-5-3 "CONNECTOR-2-1" "unknown" 3000 8125 0 top
+D4-5-4 "CONNECTOR-2-1" "unknown" 3000 9625 0 top
+D4-5-5 "CONNECTOR-2-1" "unknown" 3000 11125 0 top
+D4-5-6 "CONNECTOR-2-1" "unknown" 3000 12625 0 top
+D4-5-7 "CONNECTOR-2-1" "unknown" 3000 14125 0 top
+D4-5-8 "CONNECTOR-2-1" "unknown" 3000 15625 0 top
+D4-5-9 "CONNECTOR-2-1" "unknown" 3000 17125 0 top
+D4-5-10 "CONNECTOR-2-1" "unknown" 3000 18625 0 top
+D4-5-11 "CONNECTOR-2-1" "unknown" 3000 20125 0 top
+D4-5-12 "CONNECTOR-2-1" "unknown" 3000 21625 0 top
+D4-5-13 "CONNECTOR-2-1" "unknown" 3000 23125 0 top
+D4-5-14 "CONNECTOR-2-1" "unknown" 3000 24625 0 top
+D4-6-0 "CONNECTOR-2-1" "unknown" 3500 3625 0 top
+D4-6-1 "CONNECTOR-2-1" "unknown" 3500 5125 0 top
+D4-6-2 "CONNECTOR-2-1" "unknown" 3500 6625 0 top
+D4-6-3 "CONNECTOR-2-1" "unknown" 3500 8125 0 top
+D4-6-4 "CONNECTOR-2-1" "unknown" 3500 9625 0 top
+D4-6-5 "CONNECTOR-2-1" "unknown" 3500 11125 0 top
+D4-6-6 "CONNECTOR-2-1" "unknown" 3500 12625 0 top
+D4-6-7 "CONNECTOR-2-1" "unknown" 3500 14125 0 top
+D4-6-8 "CONNECTOR-2-1" "unknown" 3500 15625 0 top
+D4-6-9 "CONNECTOR-2-1" "unknown" 3500 17125 0 top
+D4-6-10 "CONNECTOR-2-1" "unknown" 3500 18625 0 top
+D4-6-11 "CONNECTOR-2-1" "unknown" 3500 20125 0 top
+D4-6-12 "CONNECTOR-2-1" "unknown" 3500 21625 0 top
+D4-6-13 "CONNECTOR-2-1" "unknown" 3500 23125 0 top
+D4-6-14 "CONNECTOR-2-1" "unknown" 3500 24625 0 top
+D4-7-0 "CONNECTOR-2-1" "unknown" 4000 3625 0 top
+D4-7-1 "CONNECTOR-2-1" "unknown" 4000 5125 0 top
+D4-7-2 "CONNECTOR-2-1" "unknown" 4000 6625 0 top
+D4-7-3 "CONNECTOR-2-1" "unknown" 4000 8125 0 top
+D4-7-4 "CONNECTOR-2-1" "unknown" 4000 9625 0 top
+D4-7-5 "CONNECTOR-2-1" "unknown" 4000 11125 0 top
+D4-7-6 "CONNECTOR-2-1" "unknown" 4000 12625 0 top
+D4-7-7 "CONNECTOR-2-1" "unknown" 4000 14125 0 top
+D4-7-8 "CONNECTOR-2-1" "unknown" 4000 15625 0 top
+D4-7-9 "CONNECTOR-2-1" "unknown" 4000 17125 0 top
+D4-7-10 "CONNECTOR-2-1" "unknown" 4000 18625 0 top
+D4-7-11 "CONNECTOR-2-1" "unknown" 4000 20125 0 top
+D4-7-12 "CONNECTOR-2-1" "unknown" 4000 21625 0 top
+D4-7-13 "CONNECTOR-2-1" "unknown" 4000 23125 0 top
+D4-7-14 "CONNECTOR-2-1" "unknown" 4000 24625 0 top
+D4-8-0 "CONNECTOR-2-1" "unknown" 4500 3625 0 top
+D4-8-1 "CONNECTOR-2-1" "unknown" 4500 5125 0 top
+D4-8-2 "CONNECTOR-2-1" "unknown" 4500 6625 0 top
+D4-8-3 "CONNECTOR-2-1" "unknown" 4500 8125 0 top
+D4-8-4 "CONNECTOR-2-1" "unknown" 4500 9625 0 top
+D4-8-5 "CONNECTOR-2-1" "unknown" 4500 11125 0 top
+D4-8-6 "CONNECTOR-2-1" "unknown" 4500 12625 0 top
+D4-8-7 "CONNECTOR-2-1" "unknown" 4500 14125 0 top
+D4-8-8 "CONNECTOR-2-1" "unknown" 4500 15625 0 top
+D4-8-9 "CONNECTOR-2-1" "unknown" 4500 17125 0 top
+D4-8-10 "CONNECTOR-2-1" "unknown" 4500 18625 0 top
+D4-8-11 "CONNECTOR-2-1" "unknown" 4500 20125 0 top
+D4-8-12 "CONNECTOR-2-1" "unknown" 4500 21625 0 top
+D4-8-13 "CONNECTOR-2-1" "unknown" 4500 23125 0 top
+D4-8-14 "CONNECTOR-2-1" "unknown" 4500 24625 0 top
+D4-9-0 "CONNECTOR-2-1" "unknown" 5000 3625 0 top
+D4-9-1 "CONNECTOR-2-1" "unknown" 5000 5125 0 top
+D4-9-2 "CONNECTOR-2-1" "unknown" 5000 6625 0 top
+D4-9-3 "CONNECTOR-2-1" "unknown" 5000 8125 0 top
+D4-9-4 "CONNECTOR-2-1" "unknown" 5000 9625 0 top
+D4-9-5 "CONNECTOR-2-1" "unknown" 5000 11125 0 top
+D4-9-6 "CONNECTOR-2-1" "unknown" 5000 12625 0 top
+D4-9-7 "CONNECTOR-2-1" "unknown" 5000 14125 0 top
+D4-9-8 "CONNECTOR-2-1" "unknown" 5000 15625 0 top
+D4-9-9 "CONNECTOR-2-1" "unknown" 5000 17125 0 top
+D4-9-10 "CONNECTOR-2-1" "unknown" 5000 18625 0 top
+D4-9-11 "CONNECTOR-2-1" "unknown" 5000 20125 0 top
+D4-9-12 "CONNECTOR-2-1" "unknown" 5000 21625 0 top
+D4-9-13 "CONNECTOR-2-1" "unknown" 5000 23125 0 top
+D4-9-14 "CONNECTOR-2-1" "unknown" 5000 24625 0 top
+D4-10-0 "CONNECTOR-2-1" "unknown" 5500 3625 0 top
+D4-10-1 "CONNECTOR-2-1" "unknown" 5500 5125 0 top
+D4-10-2 "CONNECTOR-2-1" "unknown" 5500 6625 0 top
+D4-10-3 "CONNECTOR-2-1" "unknown" 5500 8125 0 top
+D4-10-4 "CONNECTOR-2-1" "unknown" 5500 9625 0 top
+D4-10-5 "CONNECTOR-2-1" "unknown" 5500 11125 0 top
+D4-10-6 "CONNECTOR-2-1" "unknown" 5500 12625 0 top
+D4-10-7 "CONNECTOR-2-1" "unknown" 5500 14125 0 top
+D4-10-8 "CONNECTOR-2-1" "unknown" 5500 15625 0 top
+D4-10-9 "CONNECTOR-2-1" "unknown" 5500 17125 0 top
+D4-10-10 "CONNECTOR-2-1" "unknown" 5500 18625 0 top
+D4-10-11 "CONNECTOR-2-1" "unknown" 5500 20125 0 top
+D4-10-12 "CONNECTOR-2-1" "unknown" 5500 21625 0 top
+D4-10-13 "CONNECTOR-2-1" "unknown" 5500 23125 0 top
+D4-10-14 "CONNECTOR-2-1" "unknown" 5500 24625 0 top
+D4-11-0 "CONNECTOR-2-1" "unknown" 6000 3625 0 top
+D4-11-1 "CONNECTOR-2-1" "unknown" 6000 5125 0 top
+D4-11-2 "CONNECTOR-2-1" "unknown" 6000 6625 0 top
+D4-11-3 "CONNECTOR-2-1" "unknown" 6000 8125 0 top
+D4-11-4 "CONNECTOR-2-1" "unknown" 6000 9625 0 top
+D4-11-5 "CONNECTOR-2-1" "unknown" 6000 11125 0 top
+D4-11-6 "CONNECTOR-2-1" "unknown" 6000 12625 0 top
+D4-11-7 "CONNECTOR-2-1" "unknown" 6000 14125 0 top
+D4-11-8 "CONNECTOR-2-1" "unknown" 6000 15625 0 top
+D4-11-9 "CONNECTOR-2-1" "unknown" 6000 17125 0 top
+D4-11-10 "CONNECTOR-2-1" "unknown" 6000 18625 0 top
+D4-11-11 "CONNECTOR-2-1" "unknown" 6000 20125 0 top
+D4-11-12 "CONNECTOR-2-1" "unknown" 6000 21625 0 top
+D4-11-13 "CONNECTOR-2-1" "unknown" 6000 23125 0 top
+D4-11-14 "CONNECTOR-2-1" "unknown" 6000 24625 0 top
+D4-12-0 "CONNECTOR-2-1" "unknown" 6500 3625 0 top
+D4-12-1 "CONNECTOR-2-1" "unknown" 6500 5125 0 top
+D4-12-2 "CONNECTOR-2-1" "unknown" 6500 6625 0 top
+D4-12-3 "CONNECTOR-2-1" "unknown" 6500 8125 0 top
+D4-12-4 "CONNECTOR-2-1" "unknown" 6500 9625 0 top
+D4-12-5 "CONNECTOR-2-1" "unknown" 6500 11125 0 top
+D4-12-6 "CONNECTOR-2-1" "unknown" 6500 12625 0 top
+D4-12-7 "CONNECTOR-2-1" "unknown" 6500 14125 0 top
+D4-12-8 "CONNECTOR-2-1" "unknown" 6500 15625 0 top
+D4-12-9 "CONNECTOR-2-1" "unknown" 6500 17125 0 top
+D4-12-10 "CONNECTOR-2-1" "unknown" 6500 18625 0 top
+D4-12-11 "CONNECTOR-2-1" "unknown" 6500 20125 0 top
+D4-12-12 "CONNECTOR-2-1" "unknown" 6500 21625 0 top
+D4-12-13 "CONNECTOR-2-1" "unknown" 6500 23125 0 top
+D4-12-14 "CONNECTOR-2-1" "unknown" 6500 24625 0 top
+D4-13-0 "CONNECTOR-2-1" "unknown" 7000 3625 0 top
+D4-13-1 "CONNECTOR-2-1" "unknown" 7000 5125 0 top
+D4-13-2 "CONNECTOR-2-1" "unknown" 7000 6625 0 top
+D4-13-3 "CONNECTOR-2-1" "unknown" 7000 8125 0 top
+D4-13-4 "CONNECTOR-2-1" "unknown" 7000 9625 0 top
+D4-13-5 "CONNECTOR-2-1" "unknown" 7000 11125 0 top
+D4-13-6 "CONNECTOR-2-1" "unknown" 7000 12625 0 top
+D4-13-7 "CONNECTOR-2-1" "unknown" 7000 14125 0 top
+D4-13-8 "CONNECTOR-2-1" "unknown" 7000 15625 0 top
+D4-13-9 "CONNECTOR-2-1" "unknown" 7000 17125 0 top
+D4-13-10 "CONNECTOR-2-1" "unknown" 7000 18625 0 top
+D4-13-11 "CONNECTOR-2-1" "unknown" 7000 20125 0 top
+D4-13-12 "CONNECTOR-2-1" "unknown" 7000 21625 0 top
+D4-13-13 "CONNECTOR-2-1" "unknown" 7000 23125 0 top
+D4-13-14 "CONNECTOR-2-1" "unknown" 7000 24625 0 top
+D4-14-0 "CONNECTOR-2-1" "unknown" 7500 3625 0 top
+D4-14-1 "CONNECTOR-2-1" "unknown" 7500 5125 0 top
+D4-14-2 "CONNECTOR-2-1" "unknown" 7500 6625 0 top
+D4-14-3 "CONNECTOR-2-1" "unknown" 7500 8125 0 top
+D4-14-4 "CONNECTOR-2-1" "unknown" 7500 9625 0 top
+D4-14-5 "CONNECTOR-2-1" "unknown" 7500 11125 0 top
+D4-14-6 "CONNECTOR-2-1" "unknown" 7500 12625 0 top
+D4-14-7 "CONNECTOR-2-1" "unknown" 7500 14125 0 top
+D4-14-8 "CONNECTOR-2-1" "unknown" 7500 15625 0 top
+D4-14-9 "CONNECTOR-2-1" "unknown" 7500 17125 0 top
+D4-14-10 "CONNECTOR-2-1" "unknown" 7500 18625 0 top
+D4-14-11 "CONNECTOR-2-1" "unknown" 7500 20125 0 top
+D4-14-12 "CONNECTOR-2-1" "unknown" 7500 21625 0 top
+D4-14-13 "CONNECTOR-2-1" "unknown" 7500 23125 0 top
+D4-14-14 "CONNECTOR-2-1" "unknown" 7500 24625 0 top
+R1-0-0 "1206" "unknown" 425.00 3375.00 90 bottom
+R1-0-1 "1206" "unknown" 425 4875 90 bottom
+R1-0-2 "1206" "unknown" 425 6375 90 bottom
+R1-0-3 "1206" "unknown" 425 7875 90 bottom
+R1-0-4 "1206" "unknown" 425 9375 90 bottom
+R1-0-5 "1206" "unknown" 425 10875 90 bottom
+R1-0-6 "1206" "unknown" 425 12375 90 bottom
+R1-0-7 "1206" "unknown" 425 13875 90 bottom
+R1-0-8 "1206" "unknown" 425 15375 90 bottom
+R1-0-9 "1206" "unknown" 425 16875 90 bottom
+R1-0-10 "1206" "unknown" 425 18375 90 bottom
+R1-0-11 "1206" "unknown" 425 19875 90 bottom
+R1-0-12 "1206" "unknown" 425 21375 90 bottom
+R1-0-13 "1206" "unknown" 425 22875 90 bottom
+R1-0-14 "1206" "unknown" 425 24375 90 bottom
+R1-1-0 "1206" "unknown" 925 3375 90 bottom
+R1-1-1 "1206" "unknown" 925 4875 90 bottom
+R1-1-2 "1206" "unknown" 925 6375 90 bottom
+R1-1-3 "1206" "unknown" 925 7875 90 bottom
+R1-1-4 "1206" "unknown" 925 9375 90 bottom
+R1-1-5 "1206" "unknown" 925 10875 90 bottom
+R1-1-6 "1206" "unknown" 925 12375 90 bottom
+R1-1-7 "1206" "unknown" 925 13875 90 bottom
+R1-1-8 "1206" "unknown" 925 15375 90 bottom
+R1-1-9 "1206" "unknown" 925 16875 90 bottom
+R1-1-10 "1206" "unknown" 925 18375 90 bottom
+R1-1-11 "1206" "unknown" 925 19875 90 bottom
+R1-1-12 "1206" "unknown" 925 21375 90 bottom
+R1-1-13 "1206" "unknown" 925 22875 90 bottom
+R1-1-14 "1206" "unknown" 925 24375 90 bottom
+R1-2-0 "1206" "unknown" 1425 3375 90 bottom
+R1-2-1 "1206" "unknown" 1425 4875 90 bottom
+R1-2-2 "1206" "unknown" 1425 6375 90 bottom
+R1-2-3 "1206" "unknown" 1425 7875 90 bottom
+R1-2-4 "1206" "unknown" 1425 9375 90 bottom
+R1-2-5 "1206" "unknown" 1425 10875 90 bottom
+R1-2-6 "1206" "unknown" 1425 12375 90 bottom
+R1-2-7 "1206" "unknown" 1425 13875 90 bottom
+R1-2-8 "1206" "unknown" 1425 15375 90 bottom
+R1-2-9 "1206" "unknown" 1425 16875 90 bottom
+R1-2-10 "1206" "unknown" 1425 18375 90 bottom
+R1-2-11 "1206" "unknown" 1425 19875 90 bottom
+R1-2-12 "1206" "unknown" 1425 21375 90 bottom
+R1-2-13 "1206" "unknown" 1425 22875 90 bottom
+R1-2-14 "1206" "unknown" 1425 24375 90 bottom
+R1-3-0 "1206" "unknown" 1925 3375 90 bottom
+R1-3-1 "1206" "unknown" 1925 4875 90 bottom
+R1-3-2 "1206" "unknown" 1925 6375 90 bottom
+R1-3-3 "1206" "unknown" 1925 7875 90 bottom
+R1-3-4 "1206" "unknown" 1925 9375 90 bottom
+R1-3-5 "1206" "unknown" 1925 10875 90 bottom
+R1-3-6 "1206" "unknown" 1925 12375 90 bottom
+R1-3-7 "1206" "unknown" 1925 13875 90 bottom
+R1-3-8 "1206" "unknown" 1925 15375 90 bottom
+R1-3-9 "1206" "unknown" 1925 16875 90 bottom
+R1-3-10 "1206" "unknown" 1925 18375 90 bottom
+R1-3-11 "1206" "unknown" 1925 19875 90 bottom
+R1-3-12 "1206" "unknown" 1925 21375 90 bottom
+R1-3-13 "1206" "unknown" 1925 22875 90 bottom
+R1-3-14 "1206" "unknown" 1925 24375 90 bottom
+R1-4-0 "1206" "unknown" 2425 3375 90 bottom
+R1-4-1 "1206" "unknown" 2425 4875 90 bottom
+R1-4-2 "1206" "unknown" 2425 6375 90 bottom
+R1-4-3 "1206" "unknown" 2425 7875 90 bottom
+R1-4-4 "1206" "unknown" 2425 9375 90 bottom
+R1-4-5 "1206" "unknown" 2425 10875 90 bottom
+R1-4-6 "1206" "unknown" 2425 12375 90 bottom
+R1-4-7 "1206" "unknown" 2425 13875 90 bottom
+R1-4-8 "1206" "unknown" 2425 15375 90 bottom
+R1-4-9 "1206" "unknown" 2425 16875 90 bottom
+R1-4-10 "1206" "unknown" 2425 18375 90 bottom
+R1-4-11 "1206" "unknown" 2425 19875 90 bottom
+R1-4-12 "1206" "unknown" 2425 21375 90 bottom
+R1-4-13 "1206" "unknown" 2425 22875 90 bottom
+R1-4-14 "1206" "unknown" 2425 24375 90 bottom
+R1-5-0 "1206" "unknown" 2925 3375 90 bottom
+R1-5-1 "1206" "unknown" 2925 4875 90 bottom
+R1-5-2 "1206" "unknown" 2925 6375 90 bottom
+R1-5-3 "1206" "unknown" 2925 7875 90 bottom
+R1-5-4 "1206" "unknown" 2925 9375 90 bottom
+R1-5-5 "1206" "unknown" 2925 10875 90 bottom
+R1-5-6 "1206" "unknown" 2925 12375 90 bottom
+R1-5-7 "1206" "unknown" 2925 13875 90 bottom
+R1-5-8 "1206" "unknown" 2925 15375 90 bottom
+R1-5-9 "1206" "unknown" 2925 16875 90 bottom
+R1-5-10 "1206" "unknown" 2925 18375 90 bottom
+R1-5-11 "1206" "unknown" 2925 19875 90 bottom
+R1-5-12 "1206" "unknown" 2925 21375 90 bottom
+R1-5-13 "1206" "unknown" 2925 22875 90 bottom
+R1-5-14 "1206" "unknown" 2925 24375 90 bottom
+R1-6-0 "1206" "unknown" 3425 3375 90 bottom
+R1-6-1 "1206" "unknown" 3425 4875 90 bottom
+R1-6-2 "1206" "unknown" 3425 6375 90 bottom
+R1-6-3 "1206" "unknown" 3425 7875 90 bottom
+R1-6-4 "1206" "unknown" 3425 9375 90 bottom
+R1-6-5 "1206" "unknown" 3425 10875 90 bottom
+R1-6-6 "1206" "unknown" 3425 12375 90 bottom
+R1-6-7 "1206" "unknown" 3425 13875 90 bottom
+R1-6-8 "1206" "unknown" 3425 15375 90 bottom
+R1-6-9 "1206" "unknown" 3425 16875 90 bottom
+R1-6-10 "1206" "unknown" 3425 18375 90 bottom
+R1-6-11 "1206" "unknown" 3425 19875 90 bottom
+R1-6-12 "1206" "unknown" 3425 21375 90 bottom
+R1-6-13 "1206" "unknown" 3425 22875 90 bottom
+R1-6-14 "1206" "unknown" 3425 24375 90 bottom
+R1-7-0 "1206" "unknown" 3925 3375 90 bottom
+R1-7-1 "1206" "unknown" 3925 4875 90 bottom
+R1-7-2 "1206" "unknown" 3925 6375 90 bottom
+R1-7-3 "1206" "unknown" 3925 7875 90 bottom
+R1-7-4 "1206" "unknown" 3925 9375 90 bottom
+R1-7-5 "1206" "unknown" 3925 10875 90 bottom
+R1-7-6 "1206" "unknown" 3925 12375 90 bottom
+R1-7-7 "1206" "unknown" 3925 13875 90 bottom
+R1-7-8 "1206" "unknown" 3925 15375 90 bottom
+R1-7-9 "1206" "unknown" 3925 16875 90 bottom
+R1-7-10 "1206" "unknown" 3925 18375 90 bottom
+R1-7-11 "1206" "unknown" 3925 19875 90 bottom
+R1-7-12 "1206" "unknown" 3925 21375 90 bottom
+R1-7-13 "1206" "unknown" 3925 22875 90 bottom
+R1-7-14 "1206" "unknown" 3925 24375 90 bottom
+R1-8-0 "1206" "unknown" 4425 3375 90 bottom
+R1-8-1 "1206" "unknown" 4425 4875 90 bottom
+R1-8-2 "1206" "unknown" 4425 6375 90 bottom
+R1-8-3 "1206" "unknown" 4425 7875 90 bottom
+R1-8-4 "1206" "unknown" 4425 9375 90 bottom
+R1-8-5 "1206" "unknown" 4425 10875 90 bottom
+R1-8-6 "1206" "unknown" 4425 12375 90 bottom
+R1-8-7 "1206" "unknown" 4425 13875 90 bottom
+R1-8-8 "1206" "unknown" 4425 15375 90 bottom
+R1-8-9 "1206" "unknown" 4425 16875 90 bottom
+R1-8-10 "1206" "unknown" 4425 18375 90 bottom
+R1-8-11 "1206" "unknown" 4425 19875 90 bottom
+R1-8-12 "1206" "unknown" 4425 21375 90 bottom
+R1-8-13 "1206" "unknown" 4425 22875 90 bottom
+R1-8-14 "1206" "unknown" 4425 24375 90 bottom
+R1-9-0 "1206" "unknown" 4925 3375 90 bottom
+R1-9-1 "1206" "unknown" 4925 4875 90 bottom
+R1-9-2 "1206" "unknown" 4925 6375 90 bottom
+R1-9-3 "1206" "unknown" 4925 7875 90 bottom
+R1-9-4 "1206" "unknown" 4925 9375 90 bottom
+R1-9-5 "1206" "unknown" 4925 10875 90 bottom
+R1-9-6 "1206" "unknown" 4925 12375 90 bottom
+R1-9-7 "1206" "unknown" 4925 13875 90 bottom
+R1-9-8 "1206" "unknown" 4925 15375 90 bottom
+R1-9-9 "1206" "unknown" 4925 16875 90 bottom
+R1-9-10 "1206" "unknown" 4925 18375 90 bottom
+R1-9-11 "1206" "unknown" 4925 19875 90 bottom
+R1-9-12 "1206" "unknown" 4925 21375 90 bottom
+R1-9-13 "1206" "unknown" 4925 22875 90 bottom
+R1-9-14 "1206" "unknown" 4925 24375 90 bottom
+R1-10-0 "1206" "unknown" 5425 3375 90 bottom
+R1-10-1 "1206" "unknown" 5425 4875 90 bottom
+R1-10-2 "1206" "unknown" 5425 6375 90 bottom
+R1-10-3 "1206" "unknown" 5425 7875 90 bottom
+R1-10-4 "1206" "unknown" 5425 9375 90 bottom
+R1-10-5 "1206" "unknown" 5425 10875 90 bottom
+R1-10-6 "1206" "unknown" 5425 12375 90 bottom
+R1-10-7 "1206" "unknown" 5425 13875 90 bottom
+R1-10-8 "1206" "unknown" 5425 15375 90 bottom
+R1-10-9 "1206" "unknown" 5425 16875 90 bottom
+R1-10-10 "1206" "unknown" 5425 18375 90 bottom
+R1-10-11 "1206" "unknown" 5425 19875 90 bottom
+R1-10-12 "1206" "unknown" 5425 21375 90 bottom
+R1-10-13 "1206" "unknown" 5425 22875 90 bottom
+R1-10-14 "1206" "unknown" 5425 24375 90 bottom
+R1-11-0 "1206" "unknown" 5925 3375 90 bottom
+R1-11-1 "1206" "unknown" 5925 4875 90 bottom
+R1-11-2 "1206" "unknown" 5925 6375 90 bottom
+R1-11-3 "1206" "unknown" 5925 7875 90 bottom
+R1-11-4 "1206" "unknown" 5925 9375 90 bottom
+R1-11-5 "1206" "unknown" 5925 10875 90 bottom
+R1-11-6 "1206" "unknown" 5925 12375 90 bottom
+R1-11-7 "1206" "unknown" 5925 13875 90 bottom
+R1-11-8 "1206" "unknown" 5925 15375 90 bottom
+R1-11-9 "1206" "unknown" 5925 16875 90 bottom
+R1-11-10 "1206" "unknown" 5925 18375 90 bottom
+R1-11-11 "1206" "unknown" 5925 19875 90 bottom
+R1-11-12 "1206" "unknown" 5925 21375 90 bottom
+R1-11-13 "1206" "unknown" 5925 22875 90 bottom
+R1-11-14 "1206" "unknown" 5925 24375 90 bottom
+R1-12-0 "1206" "unknown" 6425 3375 90 bottom
+R1-12-1 "1206" "unknown" 6425 4875 90 bottom
+R1-12-2 "1206" "unknown" 6425 6375 90 bottom
+R1-12-3 "1206" "unknown" 6425 7875 90 bottom
+R1-12-4 "1206" "unknown" 6425 9375 90 bottom
+R1-12-5 "1206" "unknown" 6425 10875 90 bottom
+R1-12-6 "1206" "unknown" 6425 12375 90 bottom
+R1-12-7 "1206" "unknown" 6425 13875 90 bottom
+R1-12-8 "1206" "unknown" 6425 15375 90 bottom
+R1-12-9 "1206" "unknown" 6425 16875 90 bottom
+R1-12-10 "1206" "unknown" 6425 18375 90 bottom
+R1-12-11 "1206" "unknown" 6425 19875 90 bottom
+R1-12-12 "1206" "unknown" 6425 21375 90 bottom
+R1-12-13 "1206" "unknown" 6425 22875 90 bottom
+R1-12-14 "1206" "unknown" 6425 24375 90 bottom
+R1-13-0 "1206" "unknown" 6925 3375 90 bottom
+R1-13-1 "1206" "unknown" 6925 4875 90 bottom
+R1-13-2 "1206" "unknown" 6925 6375 90 bottom
+R1-13-3 "1206" "unknown" 6925 7875 90 bottom
+R1-13-4 "1206" "unknown" 6925 9375 90 bottom
+R1-13-5 "1206" "unknown" 6925 10875 90 bottom
+R1-13-6 "1206" "unknown" 6925 12375 90 bottom
+R1-13-7 "1206" "unknown" 6925 13875 90 bottom
+R1-13-8 "1206" "unknown" 6925 15375 90 bottom
+R1-13-9 "1206" "unknown" 6925 16875 90 bottom
+R1-13-10 "1206" "unknown" 6925 18375 90 bottom
+R1-13-11 "1206" "unknown" 6925 19875 90 bottom
+R1-13-12 "1206" "unknown" 6925 21375 90 bottom
+R1-13-13 "1206" "unknown" 6925 22875 90 bottom
+R1-13-14 "1206" "unknown" 6925 24375 90 bottom
+R1-14-0 "1206" "unknown" 7425 3375 90 bottom
+R1-14-1 "1206" "unknown" 7425 4875 90 bottom
+R1-14-2 "1206" "unknown" 7425 6375 90 bottom
+R1-14-3 "1206" "unknown" 7425 7875 90 bottom
+R1-14-4 "1206" "unknown" 7425 9375 90 bottom
+R1-14-5 "1206" "unknown" 7425 10875 90 bottom
+R1-14-6 "1206" "unknown" 7425 12375 90 bottom
+R1-14-7 "1206" "unknown" 7425 13875 90 bottom
+R1-14-8 "1206" "unknown" 7425 15375 90 bottom
+R1-14-9 "1206" "unknown" 7425 16875 90 bottom
+R1-14-10 "1206" "unknown" 7425 18375 90 bottom
+R1-14-11 "1206" "unknown" 7425 19875 90 bottom
+R1-14-12 "1206" "unknown" 7425 21375 90 bottom
+R1-14-13 "1206" "unknown" 7425 22875 90 bottom
+R1-14-14 "1206" "unknown" 7425 24375 90 bottom
+C11-0-0 "1206" "unknown" 1336.81 3834.05 90 bottom
+C11-0-1 "1206" "unknown" 1336.81 5334.05 90 bottom
+C11-0-2 "1206" "unknown" 1336.81 6834.05 90 bottom
+C11-0-3 "1206" "unknown" 1336.81 8334.05 90 bottom
+C11-0-4 "1206" "unknown" 1336.81 9834.05 90 bottom
+C11-0-5 "1206" "unknown" 1336.81 11334.05 90 bottom
+C11-0-6 "1206" "unknown" 1336.81 12834.05 90 bottom
+C11-0-7 "1206" "unknown" 1336.81 14334.05 90 bottom
+C11-0-8 "1206" "unknown" 1336.81 15834.05 90 bottom
+C11-0-9 "1206" "unknown" 1336.81 17334.05 90 bottom
+C11-0-10 "1206" "unknown" 1336.81 18834.05 90 bottom
+C11-0-11 "1206" "unknown" 1336.81 20334.05 90 bottom
+C11-0-12 "1206" "unknown" 1336.81 21834.05 90 bottom
+C11-0-13 "1206" "unknown" 1336.81 23334.05 90 bottom
+C11-0-14 "1206" "unknown" 1336.81 24834.05 90 bottom
+C11-1-0 "1206" "unknown" 1836.81 3834.05 90 bottom
+C11-1-1 "1206" "unknown" 1836.81 5334.05 90 bottom
+C11-1-2 "1206" "unknown" 1836.81 6834.05 90 bottom
+C11-1-3 "1206" "unknown" 1836.81 8334.05 90 bottom
+C11-1-4 "1206" "unknown" 1836.81 9834.05 90 bottom
+C11-1-5 "1206" "unknown" 1836.81 11334.05 90 bottom
+C11-1-6 "1206" "unknown" 1836.81 12834.05 90 bottom
+C11-1-7 "1206" "unknown" 1836.81 14334.05 90 bottom
+C11-1-8 "1206" "unknown" 1836.81 15834.05 90 bottom
+C11-1-9 "1206" "unknown" 1836.81 17334.05 90 bottom
+C11-1-10 "1206" "unknown" 1836.81 18834.05 90 bottom
+C11-1-11 "1206" "unknown" 1836.81 20334.05 90 bottom
+C11-1-12 "1206" "unknown" 1836.81 21834.05 90 bottom
+C11-1-13 "1206" "unknown" 1836.81 23334.05 90 bottom
+C11-1-14 "1206" "unknown" 1836.81 24834.05 90 bottom
+C11-2-0 "1206" "unknown" 2336.81 3834.05 90 bottom
+C11-2-1 "1206" "unknown" 2336.81 5334.05 90 bottom
+C11-2-2 "1206" "unknown" 2336.81 6834.05 90 bottom
+C11-2-3 "1206" "unknown" 2336.81 8334.05 90 bottom
+C11-2-4 "1206" "unknown" 2336.81 9834.05 90 bottom
+C11-2-5 "1206" "unknown" 2336.81 11334.05 90 bottom
+C11-2-6 "1206" "unknown" 2336.81 12834.05 90 bottom
+C11-2-7 "1206" "unknown" 2336.81 14334.05 90 bottom
+C11-2-8 "1206" "unknown" 2336.81 15834.05 90 bottom
+C11-2-9 "1206" "unknown" 2336.81 17334.05 90 bottom
+C11-2-10 "1206" "unknown" 2336.81 18834.05 90 bottom
+C11-2-11 "1206" "unknown" 2336.81 20334.05 90 bottom
+C11-2-12 "1206" "unknown" 2336.81 21834.05 90 bottom
+C11-2-13 "1206" "unknown" 2336.81 23334.05 90 bottom
+C11-2-14 "1206" "unknown" 2336.81 24834.05 90 bottom
+C11-3-0 "1206" "unknown" 2836.81 3834.05 90 bottom
+C11-3-1 "1206" "unknown" 2836.81 5334.05 90 bottom
+C11-3-2 "1206" "unknown" 2836.81 6834.05 90 bottom
+C11-3-3 "1206" "unknown" 2836.81 8334.05 90 bottom
+C11-3-4 "1206" "unknown" 2836.81 9834.05 90 bottom
+C11-3-5 "1206" "unknown" 2836.81 11334.05 90 bottom
+C11-3-6 "1206" "unknown" 2836.81 12834.05 90 bottom
+C11-3-7 "1206" "unknown" 2836.81 14334.05 90 bottom
+C11-3-8 "1206" "unknown" 2836.81 15834.05 90 bottom
+C11-3-9 "1206" "unknown" 2836.81 17334.05 90 bottom
+C11-3-10 "1206" "unknown" 2836.81 18834.05 90 bottom
+C11-3-11 "1206" "unknown" 2836.81 20334.05 90 bottom
+C11-3-12 "1206" "unknown" 2836.81 21834.05 90 bottom
+C11-3-13 "1206" "unknown" 2836.81 23334.05 90 bottom
+C11-3-14 "1206" "unknown" 2836.81 24834.05 90 bottom
+C11-4-0 "1206" "unknown" 3336.81 3834.05 90 bottom
+C11-4-1 "1206" "unknown" 3336.81 5334.05 90 bottom
+C11-4-2 "1206" "unknown" 3336.81 6834.05 90 bottom
+C11-4-3 "1206" "unknown" 3336.81 8334.05 90 bottom
+C11-4-4 "1206" "unknown" 3336.81 9834.05 90 bottom
+C11-4-5 "1206" "unknown" 3336.81 11334.05 90 bottom
+C11-4-6 "1206" "unknown" 3336.81 12834.05 90 bottom
+C11-4-7 "1206" "unknown" 3336.81 14334.05 90 bottom
+C11-4-8 "1206" "unknown" 3336.81 15834.05 90 bottom
+C11-4-9 "1206" "unknown" 3336.81 17334.05 90 bottom
+C11-4-10 "1206" "unknown" 3336.81 18834.05 90 bottom
+C11-4-11 "1206" "unknown" 3336.81 20334.05 90 bottom
+C11-4-12 "1206" "unknown" 3336.81 21834.05 90 bottom
+C11-4-13 "1206" "unknown" 3336.81 23334.05 90 bottom
+C11-4-14 "1206" "unknown" 3336.81 24834.05 90 bottom
+C11-5-0 "1206" "unknown" 3836.81 3834.05 90 bottom
+C11-5-1 "1206" "unknown" 3836.81 5334.05 90 bottom
+C11-5-2 "1206" "unknown" 3836.81 6834.05 90 bottom
+C11-5-3 "1206" "unknown" 3836.81 8334.05 90 bottom
+C11-5-4 "1206" "unknown" 3836.81 9834.05 90 bottom
+C11-5-5 "1206" "unknown" 3836.81 11334.05 90 bottom
+C11-5-6 "1206" "unknown" 3836.81 12834.05 90 bottom
+C11-5-7 "1206" "unknown" 3836.81 14334.05 90 bottom
+C11-5-8 "1206" "unknown" 3836.81 15834.05 90 bottom
+C11-5-9 "1206" "unknown" 3836.81 17334.05 90 bottom
+C11-5-10 "1206" "unknown" 3836.81 18834.05 90 bottom
+C11-5-11 "1206" "unknown" 3836.81 20334.05 90 bottom
+C11-5-12 "1206" "unknown" 3836.81 21834.05 90 bottom
+C11-5-13 "1206" "unknown" 3836.81 23334.05 90 bottom
+C11-5-14 "1206" "unknown" 3836.81 24834.05 90 bottom
+C11-6-0 "1206" "unknown" 4336.81 3834.05 90 bottom
+C11-6-1 "1206" "unknown" 4336.81 5334.05 90 bottom
+C11-6-2 "1206" "unknown" 4336.81 6834.05 90 bottom
+C11-6-3 "1206" "unknown" 4336.81 8334.05 90 bottom
+C11-6-4 "1206" "unknown" 4336.81 9834.05 90 bottom
+C11-6-5 "1206" "unknown" 4336.81 11334.05 90 bottom
+C11-6-6 "1206" "unknown" 4336.81 12834.05 90 bottom
+C11-6-7 "1206" "unknown" 4336.81 14334.05 90 bottom
+C11-6-8 "1206" "unknown" 4336.81 15834.05 90 bottom
+C11-6-9 "1206" "unknown" 4336.81 17334.05 90 bottom
+C11-6-10 "1206" "unknown" 4336.81 18834.05 90 bottom
+C11-6-11 "1206" "unknown" 4336.81 20334.05 90 bottom
+C11-6-12 "1206" "unknown" 4336.81 21834.05 90 bottom
+C11-6-13 "1206" "unknown" 4336.81 23334.05 90 bottom
+C11-6-14 "1206" "unknown" 4336.81 24834.05 90 bottom
+C11-7-0 "1206" "unknown" 4836.81 3834.05 90 bottom
+C11-7-1 "1206" "unknown" 4836.81 5334.05 90 bottom
+C11-7-2 "1206" "unknown" 4836.81 6834.05 90 bottom
+C11-7-3 "1206" "unknown" 4836.81 8334.05 90 bottom
+C11-7-4 "1206" "unknown" 4836.81 9834.05 90 bottom
+C11-7-5 "1206" "unknown" 4836.81 11334.05 90 bottom
+C11-7-6 "1206" "unknown" 4836.81 12834.05 90 bottom
+C11-7-7 "1206" "unknown" 4836.81 14334.05 90 bottom
+C11-7-8 "1206" "unknown" 4836.81 15834.05 90 bottom
+C11-7-9 "1206" "unknown" 4836.81 17334.05 90 bottom
+C11-7-10 "1206" "unknown" 4836.81 18834.05 90 bottom
+C11-7-11 "1206" "unknown" 4836.81 20334.05 90 bottom
+C11-7-12 "1206" "unknown" 4836.81 21834.05 90 bottom
+C11-7-13 "1206" "unknown" 4836.81 23334.05 90 bottom
+C11-7-14 "1206" "unknown" 4836.81 24834.05 90 bottom
+C11-8-0 "1206" "unknown" 5336.81 3834.05 90 bottom
+C11-8-1 "1206" "unknown" 5336.81 5334.05 90 bottom
+C11-8-2 "1206" "unknown" 5336.81 6834.05 90 bottom
+C11-8-3 "1206" "unknown" 5336.81 8334.05 90 bottom
+C11-8-4 "1206" "unknown" 5336.81 9834.05 90 bottom
+C11-8-5 "1206" "unknown" 5336.81 11334.05 90 bottom
+C11-8-6 "1206" "unknown" 5336.81 12834.05 90 bottom
+C11-8-7 "1206" "unknown" 5336.81 14334.05 90 bottom
+C11-8-8 "1206" "unknown" 5336.81 15834.05 90 bottom
+C11-8-9 "1206" "unknown" 5336.81 17334.05 90 bottom
+C11-8-10 "1206" "unknown" 5336.81 18834.05 90 bottom
+C11-8-11 "1206" "unknown" 5336.81 20334.05 90 bottom
+C11-8-12 "1206" "unknown" 5336.81 21834.05 90 bottom
+C11-8-13 "1206" "unknown" 5336.81 23334.05 90 bottom
+C11-8-14 "1206" "unknown" 5336.81 24834.05 90 bottom
+C11-9-0 "1206" "unknown" 5836.81 3834.05 90 bottom
+C11-9-1 "1206" "unknown" 5836.81 5334.05 90 bottom
+C11-9-2 "1206" "unknown" 5836.81 6834.05 90 bottom
+C11-9-3 "1206" "unknown" 5836.81 8334.05 90 bottom
+C11-9-4 "1206" "unknown" 5836.81 9834.05 90 bottom
+C11-9-5 "1206" "unknown" 5836.81 11334.05 90 bottom
+C11-9-6 "1206" "unknown" 5836.81 12834.05 90 bottom
+C11-9-7 "1206" "unknown" 5836.81 14334.05 90 bottom
+C11-9-8 "1206" "unknown" 5836.81 15834.05 90 bottom
+C11-9-9 "1206" "unknown" 5836.81 17334.05 90 bottom
+C11-9-10 "1206" "unknown" 5836.81 18834.05 90 bottom
+C11-9-11 "1206" "unknown" 5836.81 20334.05 90 bottom
+C11-9-12 "1206" "unknown" 5836.81 21834.05 90 bottom
+C11-9-13 "1206" "unknown" 5836.81 23334.05 90 bottom
+C11-9-14 "1206" "unknown" 5836.81 24834.05 90 bottom
+C11-10-0 "1206" "unknown" 6336.81 3834.05 90 bottom
+C11-10-1 "1206" "unknown" 6336.81 5334.05 90 bottom
+C11-10-2 "1206" "unknown" 6336.81 6834.05 90 bottom
+C11-10-3 "1206" "unknown" 6336.81 8334.05 90 bottom
+C11-10-4 "1206" "unknown" 6336.81 9834.05 90 bottom
+C11-10-5 "1206" "unknown" 6336.81 11334.05 90 bottom
+C11-10-6 "1206" "unknown" 6336.81 12834.05 90 bottom
+C11-10-7 "1206" "unknown" 6336.81 14334.05 90 bottom
+C11-10-8 "1206" "unknown" 6336.81 15834.05 90 bottom
+C11-10-9 "1206" "unknown" 6336.81 17334.05 90 bottom
+C11-10-10 "1206" "unknown" 6336.81 18834.05 90 bottom
+C11-10-11 "1206" "unknown" 6336.81 20334.05 90 bottom
+C11-10-12 "1206" "unknown" 6336.81 21834.05 90 bottom
+C11-10-13 "1206" "unknown" 6336.81 23334.05 90 bottom
+C11-10-14 "1206" "unknown" 6336.81 24834.05 90 bottom
+C11-11-0 "1206" "unknown" 6836.81 3834.05 90 bottom
+C11-11-1 "1206" "unknown" 6836.81 5334.05 90 bottom
+C11-11-2 "1206" "unknown" 6836.81 6834.05 90 bottom
+C11-11-3 "1206" "unknown" 6836.81 8334.05 90 bottom
+C11-11-4 "1206" "unknown" 6836.81 9834.05 90 bottom
+C11-11-5 "1206" "unknown" 6836.81 11334.05 90 bottom
+C11-11-6 "1206" "unknown" 6836.81 12834.05 90 bottom
+C11-11-7 "1206" "unknown" 6836.81 14334.05 90 bottom
+C11-11-8 "1206" "unknown" 6836.81 15834.05 90 bottom
+C11-11-9 "1206" "unknown" 6836.81 17334.05 90 bottom
+C11-11-10 "1206" "unknown" 6836.81 18834.05 90 bottom
+C11-11-11 "1206" "unknown" 6836.81 20334.05 90 bottom
+C11-11-12 "1206" "unknown" 6836.81 21834.05 90 bottom
+C11-11-13 "1206" "unknown" 6836.81 23334.05 90 bottom
+C11-11-14 "1206" "unknown" 6836.81 24834.05 90 bottom
+C11-12-0 "1206" "unknown" 7336.81 3834.05 90 bottom
+C11-12-1 "1206" "unknown" 7336.81 5334.05 90 bottom
+C11-12-2 "1206" "unknown" 7336.81 6834.05 90 bottom
+C11-12-3 "1206" "unknown" 7336.81 8334.05 90 bottom
+C11-12-4 "1206" "unknown" 7336.81 9834.05 90 bottom
+C11-12-5 "1206" "unknown" 7336.81 11334.05 90 bottom
+C11-12-6 "1206" "unknown" 7336.81 12834.05 90 bottom
+C11-12-7 "1206" "unknown" 7336.81 14334.05 90 bottom
+C11-12-8 "1206" "unknown" 7336.81 15834.05 90 bottom
+C11-12-9 "1206" "unknown" 7336.81 17334.05 90 bottom
+C11-12-10 "1206" "unknown" 7336.81 18834.05 90 bottom
+C11-12-11 "1206" "unknown" 7336.81 20334.05 90 bottom
+C11-12-12 "1206" "unknown" 7336.81 21834.05 90 bottom
+C11-12-13 "1206" "unknown" 7336.81 23334.05 90 bottom
+C11-12-14 "1206" "unknown" 7336.81 24834.05 90 bottom
+C11-13-0 "1206" "unknown" 7836.81 3834.05 90 bottom
+C11-13-1 "1206" "unknown" 7836.81 5334.05 90 bottom
+C11-13-2 "1206" "unknown" 7836.81 6834.05 90 bottom
+C11-13-3 "1206" "unknown" 7836.81 8334.05 90 bottom
+C11-13-4 "1206" "unknown" 7836.81 9834.05 90 bottom
+C11-13-5 "1206" "unknown" 7836.81 11334.05 90 bottom
+C11-13-6 "1206" "unknown" 7836.81 12834.05 90 bottom
+C11-13-7 "1206" "unknown" 7836.81 14334.05 90 bottom
+C11-13-8 "1206" "unknown" 7836.81 15834.05 90 bottom
+C11-13-9 "1206" "unknown" 7836.81 17334.05 90 bottom
+C11-13-10 "1206" "unknown" 7836.81 18834.05 90 bottom
+C11-13-11 "1206" "unknown" 7836.81 20334.05 90 bottom
+C11-13-12 "1206" "unknown" 7836.81 21834.05 90 bottom
+C11-13-13 "1206" "unknown" 7836.81 23334.05 90 bottom
+C11-13-14 "1206" "unknown" 7836.81 24834.05 90 bottom
+C11-14-0 "1206" "unknown" 8336.81 3834.05 90 bottom
+C11-14-1 "1206" "unknown" 8336.81 5334.05 90 bottom
+C11-14-2 "1206" "unknown" 8336.81 6834.05 90 bottom
+C11-14-3 "1206" "unknown" 8336.81 8334.05 90 bottom
+C11-14-4 "1206" "unknown" 8336.81 9834.05 90 bottom
+C11-14-5 "1206" "unknown" 8336.81 11334.05 90 bottom
+C11-14-6 "1206" "unknown" 8336.81 12834.05 90 bottom
+C11-14-7 "1206" "unknown" 8336.81 14334.05 90 bottom
+C11-14-8 "1206" "unknown" 8336.81 15834.05 90 bottom
+C11-14-9 "1206" "unknown" 8336.81 17334.05 90 bottom
+C11-14-10 "1206" "unknown" 8336.81 18834.05 90 bottom
+C11-14-11 "1206" "unknown" 8336.81 20334.05 90 bottom
+C11-14-12 "1206" "unknown" 8336.81 21834.05 90 bottom
+C11-14-13 "1206" "unknown" 8336.81 23334.05 90 bottom
+C11-14-14 "1206" "unknown" 8336.81 24834.05 90 bottom
+CONN2-0-0 "CONNECTOR-2-1" "unknown" 750.00 3625.00 0 top
+CONN2-0-1 "CONNECTOR-2-1" "unknown" 750 5125 0 top
+CONN2-0-2 "CONNECTOR-2-1" "unknown" 750 6625 0 top
+CONN2-0-3 "CONNECTOR-2-1" "unknown" 750 8125 0 top
+CONN2-0-4 "CONNECTOR-2-1" "unknown" 750 9625 0 top
+CONN2-0-5 "CONNECTOR-2-1" "unknown" 750 11125 0 top
+CONN2-0-6 "CONNECTOR-2-1" "unknown" 750 12625 0 top
+CONN2-0-7 "CONNECTOR-2-1" "unknown" 750 14125 0 top
+CONN2-0-8 "CONNECTOR-2-1" "unknown" 750 15625 0 top
+CONN2-0-9 "CONNECTOR-2-1" "unknown" 750 17125 0 top
+CONN2-0-10 "CONNECTOR-2-1" "unknown" 750 18625 0 top
+CONN2-0-11 "CONNECTOR-2-1" "unknown" 750 20125 0 top
+CONN2-0-12 "CONNECTOR-2-1" "unknown" 750 21625 0 top
+CONN2-0-13 "CONNECTOR-2-1" "unknown" 750 23125 0 top
+CONN2-0-14 "CONNECTOR-2-1" "unknown" 750 24625 0 top
+CONN2-1-0 "CONNECTOR-2-1" "unknown" 1250 3625 0 top
+CONN2-1-1 "CONNECTOR-2-1" "unknown" 1250 5125 0 top
+CONN2-1-2 "CONNECTOR-2-1" "unknown" 1250 6625 0 top
+CONN2-1-3 "CONNECTOR-2-1" "unknown" 1250 8125 0 top
+CONN2-1-4 "CONNECTOR-2-1" "unknown" 1250 9625 0 top
+CONN2-1-5 "CONNECTOR-2-1" "unknown" 1250 11125 0 top
+CONN2-1-6 "CONNECTOR-2-1" "unknown" 1250 12625 0 top
+CONN2-1-7 "CONNECTOR-2-1" "unknown" 1250 14125 0 top
+CONN2-1-8 "CONNECTOR-2-1" "unknown" 1250 15625 0 top
+CONN2-1-9 "CONNECTOR-2-1" "unknown" 1250 17125 0 top
+CONN2-1-10 "CONNECTOR-2-1" "unknown" 1250 18625 0 top
+CONN2-1-11 "CONNECTOR-2-1" "unknown" 1250 20125 0 top
+CONN2-1-12 "CONNECTOR-2-1" "unknown" 1250 21625 0 top
+CONN2-1-13 "CONNECTOR-2-1" "unknown" 1250 23125 0 top
+CONN2-1-14 "CONNECTOR-2-1" "unknown" 1250 24625 0 top
+CONN2-2-0 "CONNECTOR-2-1" "unknown" 1750 3625 0 top
+CONN2-2-1 "CONNECTOR-2-1" "unknown" 1750 5125 0 top
+CONN2-2-2 "CONNECTOR-2-1" "unknown" 1750 6625 0 top
+CONN2-2-3 "CONNECTOR-2-1" "unknown" 1750 8125 0 top
+CONN2-2-4 "CONNECTOR-2-1" "unknown" 1750 9625 0 top
+CONN2-2-5 "CONNECTOR-2-1" "unknown" 1750 11125 0 top
+CONN2-2-6 "CONNECTOR-2-1" "unknown" 1750 12625 0 top
+CONN2-2-7 "CONNECTOR-2-1" "unknown" 1750 14125 0 top
+CONN2-2-8 "CONNECTOR-2-1" "unknown" 1750 15625 0 top
+CONN2-2-9 "CONNECTOR-2-1" "unknown" 1750 17125 0 top
+CONN2-2-10 "CONNECTOR-2-1" "unknown" 1750 18625 0 top
+CONN2-2-11 "CONNECTOR-2-1" "unknown" 1750 20125 0 top
+CONN2-2-12 "CONNECTOR-2-1" "unknown" 1750 21625 0 top
+CONN2-2-13 "CONNECTOR-2-1" "unknown" 1750 23125 0 top
+CONN2-2-14 "CONNECTOR-2-1" "unknown" 1750 24625 0 top
+CONN2-3-0 "CONNECTOR-2-1" "unknown" 2250 3625 0 top
+CONN2-3-1 "CONNECTOR-2-1" "unknown" 2250 5125 0 top
+CONN2-3-2 "CONNECTOR-2-1" "unknown" 2250 6625 0 top
+CONN2-3-3 "CONNECTOR-2-1" "unknown" 2250 8125 0 top
+CONN2-3-4 "CONNECTOR-2-1" "unknown" 2250 9625 0 top
+CONN2-3-5 "CONNECTOR-2-1" "unknown" 2250 11125 0 top
+CONN2-3-6 "CONNECTOR-2-1" "unknown" 2250 12625 0 top
+CONN2-3-7 "CONNECTOR-2-1" "unknown" 2250 14125 0 top
+CONN2-3-8 "CONNECTOR-2-1" "unknown" 2250 15625 0 top
+CONN2-3-9 "CONNECTOR-2-1" "unknown" 2250 17125 0 top
+CONN2-3-10 "CONNECTOR-2-1" "unknown" 2250 18625 0 top
+CONN2-3-11 "CONNECTOR-2-1" "unknown" 2250 20125 0 top
+CONN2-3-12 "CONNECTOR-2-1" "unknown" 2250 21625 0 top
+CONN2-3-13 "CONNECTOR-2-1" "unknown" 2250 23125 0 top
+CONN2-3-14 "CONNECTOR-2-1" "unknown" 2250 24625 0 top
+CONN2-4-0 "CONNECTOR-2-1" "unknown" 2750 3625 0 top
+CONN2-4-1 "CONNECTOR-2-1" "unknown" 2750 5125 0 top
+CONN2-4-2 "CONNECTOR-2-1" "unknown" 2750 6625 0 top
+CONN2-4-3 "CONNECTOR-2-1" "unknown" 2750 8125 0 top
+CONN2-4-4 "CONNECTOR-2-1" "unknown" 2750 9625 0 top
+CONN2-4-5 "CONNECTOR-2-1" "unknown" 2750 11125 0 top
+CONN2-4-6 "CONNECTOR-2-1" "unknown" 2750 12625 0 top
+CONN2-4-7 "CONNECTOR-2-1" "unknown" 2750 14125 0 top
+CONN2-4-8 "CONNECTOR-2-1" "unknown" 2750 15625 0 top
+CONN2-4-9 "CONNECTOR-2-1" "unknown" 2750 17125 0 top
+CONN2-4-10 "CONNECTOR-2-1" "unknown" 2750 18625 0 top
+CONN2-4-11 "CONNECTOR-2-1" "unknown" 2750 20125 0 top
+CONN2-4-12 "CONNECTOR-2-1" "unknown" 2750 21625 0 top
+CONN2-4-13 "CONNECTOR-2-1" "unknown" 2750 23125 0 top
+CONN2-4-14 "CONNECTOR-2-1" "unknown" 2750 24625 0 top
+CONN2-5-0 "CONNECTOR-2-1" "unknown" 3250 3625 0 top
+CONN2-5-1 "CONNECTOR-2-1" "unknown" 3250 5125 0 top
+CONN2-5-2 "CONNECTOR-2-1" "unknown" 3250 6625 0 top
+CONN2-5-3 "CONNECTOR-2-1" "unknown" 3250 8125 0 top
+CONN2-5-4 "CONNECTOR-2-1" "unknown" 3250 9625 0 top
+CONN2-5-5 "CONNECTOR-2-1" "unknown" 3250 11125 0 top
+CONN2-5-6 "CONNECTOR-2-1" "unknown" 3250 12625 0 top
+CONN2-5-7 "CONNECTOR-2-1" "unknown" 3250 14125 0 top
+CONN2-5-8 "CONNECTOR-2-1" "unknown" 3250 15625 0 top
+CONN2-5-9 "CONNECTOR-2-1" "unknown" 3250 17125 0 top
+CONN2-5-10 "CONNECTOR-2-1" "unknown" 3250 18625 0 top
+CONN2-5-11 "CONNECTOR-2-1" "unknown" 3250 20125 0 top
+CONN2-5-12 "CONNECTOR-2-1" "unknown" 3250 21625 0 top
+CONN2-5-13 "CONNECTOR-2-1" "unknown" 3250 23125 0 top
+CONN2-5-14 "CONNECTOR-2-1" "unknown" 3250 24625 0 top
+CONN2-6-0 "CONNECTOR-2-1" "unknown" 3750 3625 0 top
+CONN2-6-1 "CONNECTOR-2-1" "unknown" 3750 5125 0 top
+CONN2-6-2 "CONNECTOR-2-1" "unknown" 3750 6625 0 top
+CONN2-6-3 "CONNECTOR-2-1" "unknown" 3750 8125 0 top
+CONN2-6-4 "CONNECTOR-2-1" "unknown" 3750 9625 0 top
+CONN2-6-5 "CONNECTOR-2-1" "unknown" 3750 11125 0 top
+CONN2-6-6 "CONNECTOR-2-1" "unknown" 3750 12625 0 top
+CONN2-6-7 "CONNECTOR-2-1" "unknown" 3750 14125 0 top
+CONN2-6-8 "CONNECTOR-2-1" "unknown" 3750 15625 0 top
+CONN2-6-9 "CONNECTOR-2-1" "unknown" 3750 17125 0 top
+CONN2-6-10 "CONNECTOR-2-1" "unknown" 3750 18625 0 top
+CONN2-6-11 "CONNECTOR-2-1" "unknown" 3750 20125 0 top
+CONN2-6-12 "CONNECTOR-2-1" "unknown" 3750 21625 0 top
+CONN2-6-13 "CONNECTOR-2-1" "unknown" 3750 23125 0 top
+CONN2-6-14 "CONNECTOR-2-1" "unknown" 3750 24625 0 top
+CONN2-7-0 "CONNECTOR-2-1" "unknown" 4250 3625 0 top
+CONN2-7-1 "CONNECTOR-2-1" "unknown" 4250 5125 0 top
+CONN2-7-2 "CONNECTOR-2-1" "unknown" 4250 6625 0 top
+CONN2-7-3 "CONNECTOR-2-1" "unknown" 4250 8125 0 top
+CONN2-7-4 "CONNECTOR-2-1" "unknown" 4250 9625 0 top
+CONN2-7-5 "CONNECTOR-2-1" "unknown" 4250 11125 0 top
+CONN2-7-6 "CONNECTOR-2-1" "unknown" 4250 12625 0 top
+CONN2-7-7 "CONNECTOR-2-1" "unknown" 4250 14125 0 top
+CONN2-7-8 "CONNECTOR-2-1" "unknown" 4250 15625 0 top
+CONN2-7-9 "CONNECTOR-2-1" "unknown" 4250 17125 0 top
+CONN2-7-10 "CONNECTOR-2-1" "unknown" 4250 18625 0 top
+CONN2-7-11 "CONNECTOR-2-1" "unknown" 4250 20125 0 top
+CONN2-7-12 "CONNECTOR-2-1" "unknown" 4250 21625 0 top
+CONN2-7-13 "CONNECTOR-2-1" "unknown" 4250 23125 0 top
+CONN2-7-14 "CONNECTOR-2-1" "unknown" 4250 24625 0 top
+CONN2-8-0 "CONNECTOR-2-1" "unknown" 4750 3625 0 top
+CONN2-8-1 "CONNECTOR-2-1" "unknown" 4750 5125 0 top
+CONN2-8-2 "CONNECTOR-2-1" "unknown" 4750 6625 0 top
+CONN2-8-3 "CONNECTOR-2-1" "unknown" 4750 8125 0 top
+CONN2-8-4 "CONNECTOR-2-1" "unknown" 4750 9625 0 top
+CONN2-8-5 "CONNECTOR-2-1" "unknown" 4750 11125 0 top
+CONN2-8-6 "CONNECTOR-2-1" "unknown" 4750 12625 0 top
+CONN2-8-7 "CONNECTOR-2-1" "unknown" 4750 14125 0 top
+CONN2-8-8 "CONNECTOR-2-1" "unknown" 4750 15625 0 top
+CONN2-8-9 "CONNECTOR-2-1" "unknown" 4750 17125 0 top
+CONN2-8-10 "CONNECTOR-2-1" "unknown" 4750 18625 0 top
+CONN2-8-11 "CONNECTOR-2-1" "unknown" 4750 20125 0 top
+CONN2-8-12 "CONNECTOR-2-1" "unknown" 4750 21625 0 top
+CONN2-8-13 "CONNECTOR-2-1" "unknown" 4750 23125 0 top
+CONN2-8-14 "CONNECTOR-2-1" "unknown" 4750 24625 0 top
+CONN2-9-0 "CONNECTOR-2-1" "unknown" 5250 3625 0 top
+CONN2-9-1 "CONNECTOR-2-1" "unknown" 5250 5125 0 top
+CONN2-9-2 "CONNECTOR-2-1" "unknown" 5250 6625 0 top
+CONN2-9-3 "CONNECTOR-2-1" "unknown" 5250 8125 0 top
+CONN2-9-4 "CONNECTOR-2-1" "unknown" 5250 9625 0 top
+CONN2-9-5 "CONNECTOR-2-1" "unknown" 5250 11125 0 top
+CONN2-9-6 "CONNECTOR-2-1" "unknown" 5250 12625 0 top
+CONN2-9-7 "CONNECTOR-2-1" "unknown" 5250 14125 0 top
+CONN2-9-8 "CONNECTOR-2-1" "unknown" 5250 15625 0 top
+CONN2-9-9 "CONNECTOR-2-1" "unknown" 5250 17125 0 top
+CONN2-9-10 "CONNECTOR-2-1" "unknown" 5250 18625 0 top
+CONN2-9-11 "CONNECTOR-2-1" "unknown" 5250 20125 0 top
+CONN2-9-12 "CONNECTOR-2-1" "unknown" 5250 21625 0 top
+CONN2-9-13 "CONNECTOR-2-1" "unknown" 5250 23125 0 top
+CONN2-9-14 "CONNECTOR-2-1" "unknown" 5250 24625 0 top
+CONN2-10-0 "CONNECTOR-2-1" "unknown" 5750 3625 0 top
+CONN2-10-1 "CONNECTOR-2-1" "unknown" 5750 5125 0 top
+CONN2-10-2 "CONNECTOR-2-1" "unknown" 5750 6625 0 top
+CONN2-10-3 "CONNECTOR-2-1" "unknown" 5750 8125 0 top
+CONN2-10-4 "CONNECTOR-2-1" "unknown" 5750 9625 0 top
+CONN2-10-5 "CONNECTOR-2-1" "unknown" 5750 11125 0 top
+CONN2-10-6 "CONNECTOR-2-1" "unknown" 5750 12625 0 top
+CONN2-10-7 "CONNECTOR-2-1" "unknown" 5750 14125 0 top
+CONN2-10-8 "CONNECTOR-2-1" "unknown" 5750 15625 0 top
+CONN2-10-9 "CONNECTOR-2-1" "unknown" 5750 17125 0 top
+CONN2-10-10 "CONNECTOR-2-1" "unknown" 5750 18625 0 top
+CONN2-10-11 "CONNECTOR-2-1" "unknown" 5750 20125 0 top
+CONN2-10-12 "CONNECTOR-2-1" "unknown" 5750 21625 0 top
+CONN2-10-13 "CONNECTOR-2-1" "unknown" 5750 23125 0 top
+CONN2-10-14 "CONNECTOR-2-1" "unknown" 5750 24625 0 top
+CONN2-11-0 "CONNECTOR-2-1" "unknown" 6250 3625 0 top
+CONN2-11-1 "CONNECTOR-2-1" "unknown" 6250 5125 0 top
+CONN2-11-2 "CONNECTOR-2-1" "unknown" 6250 6625 0 top
+CONN2-11-3 "CONNECTOR-2-1" "unknown" 6250 8125 0 top
+CONN2-11-4 "CONNECTOR-2-1" "unknown" 6250 9625 0 top
+CONN2-11-5 "CONNECTOR-2-1" "unknown" 6250 11125 0 top
+CONN2-11-6 "CONNECTOR-2-1" "unknown" 6250 12625 0 top
+CONN2-11-7 "CONNECTOR-2-1" "unknown" 6250 14125 0 top
+CONN2-11-8 "CONNECTOR-2-1" "unknown" 6250 15625 0 top
+CONN2-11-9 "CONNECTOR-2-1" "unknown" 6250 17125 0 top
+CONN2-11-10 "CONNECTOR-2-1" "unknown" 6250 18625 0 top
+CONN2-11-11 "CONNECTOR-2-1" "unknown" 6250 20125 0 top
+CONN2-11-12 "CONNECTOR-2-1" "unknown" 6250 21625 0 top
+CONN2-11-13 "CONNECTOR-2-1" "unknown" 6250 23125 0 top
+CONN2-11-14 "CONNECTOR-2-1" "unknown" 6250 24625 0 top
+CONN2-12-0 "CONNECTOR-2-1" "unknown" 6750 3625 0 top
+CONN2-12-1 "CONNECTOR-2-1" "unknown" 6750 5125 0 top
+CONN2-12-2 "CONNECTOR-2-1" "unknown" 6750 6625 0 top
+CONN2-12-3 "CONNECTOR-2-1" "unknown" 6750 8125 0 top
+CONN2-12-4 "CONNECTOR-2-1" "unknown" 6750 9625 0 top
+CONN2-12-5 "CONNECTOR-2-1" "unknown" 6750 11125 0 top
+CONN2-12-6 "CONNECTOR-2-1" "unknown" 6750 12625 0 top
+CONN2-12-7 "CONNECTOR-2-1" "unknown" 6750 14125 0 top
+CONN2-12-8 "CONNECTOR-2-1" "unknown" 6750 15625 0 top
+CONN2-12-9 "CONNECTOR-2-1" "unknown" 6750 17125 0 top
+CONN2-12-10 "CONNECTOR-2-1" "unknown" 6750 18625 0 top
+CONN2-12-11 "CONNECTOR-2-1" "unknown" 6750 20125 0 top
+CONN2-12-12 "CONNECTOR-2-1" "unknown" 6750 21625 0 top
+CONN2-12-13 "CONNECTOR-2-1" "unknown" 6750 23125 0 top
+CONN2-12-14 "CONNECTOR-2-1" "unknown" 6750 24625 0 top
+CONN2-13-0 "CONNECTOR-2-1" "unknown" 7250 3625 0 top
+CONN2-13-1 "CONNECTOR-2-1" "unknown" 7250 5125 0 top
+CONN2-13-2 "CONNECTOR-2-1" "unknown" 7250 6625 0 top
+CONN2-13-3 "CONNECTOR-2-1" "unknown" 7250 8125 0 top
+CONN2-13-4 "CONNECTOR-2-1" "unknown" 7250 9625 0 top
+CONN2-13-5 "CONNECTOR-2-1" "unknown" 7250 11125 0 top
+CONN2-13-6 "CONNECTOR-2-1" "unknown" 7250 12625 0 top
+CONN2-13-7 "CONNECTOR-2-1" "unknown" 7250 14125 0 top
+CONN2-13-8 "CONNECTOR-2-1" "unknown" 7250 15625 0 top
+CONN2-13-9 "CONNECTOR-2-1" "unknown" 7250 17125 0 top
+CONN2-13-10 "CONNECTOR-2-1" "unknown" 7250 18625 0 top
+CONN2-13-11 "CONNECTOR-2-1" "unknown" 7250 20125 0 top
+CONN2-13-12 "CONNECTOR-2-1" "unknown" 7250 21625 0 top
+CONN2-13-13 "CONNECTOR-2-1" "unknown" 7250 23125 0 top
+CONN2-13-14 "CONNECTOR-2-1" "unknown" 7250 24625 0 top
+CONN2-14-0 "CONNECTOR-2-1" "unknown" 7750 3625 0 top
+CONN2-14-1 "CONNECTOR-2-1" "unknown" 7750 5125 0 top
+CONN2-14-2 "CONNECTOR-2-1" "unknown" 7750 6625 0 top
+CONN2-14-3 "CONNECTOR-2-1" "unknown" 7750 8125 0 top
+CONN2-14-4 "CONNECTOR-2-1" "unknown" 7750 9625 0 top
+CONN2-14-5 "CONNECTOR-2-1" "unknown" 7750 11125 0 top
+CONN2-14-6 "CONNECTOR-2-1" "unknown" 7750 12625 0 top
+CONN2-14-7 "CONNECTOR-2-1" "unknown" 7750 14125 0 top
+CONN2-14-8 "CONNECTOR-2-1" "unknown" 7750 15625 0 top
+CONN2-14-9 "CONNECTOR-2-1" "unknown" 7750 17125 0 top
+CONN2-14-10 "CONNECTOR-2-1" "unknown" 7750 18625 0 top
+CONN2-14-11 "CONNECTOR-2-1" "unknown" 7750 20125 0 top
+CONN2-14-12 "CONNECTOR-2-1" "unknown" 7750 21625 0 top
+CONN2-14-13 "CONNECTOR-2-1" "unknown" 7750 23125 0 top
+CONN2-14-14 "CONNECTOR-2-1" "unknown" 7750 24625 0 top
+S2-0-0 "CONNECTOR-2-1" "unknown" 750.00 3850.00 180 top
+S2-0-1 "CONNECTOR-2-1" "unknown" 750 5350 180 top
+S2-0-2 "CONNECTOR-2-1" "unknown" 750 6850 180 top
+S2-0-3 "CONNECTOR-2-1" "unknown" 750 8350 180 top
+S2-0-4 "CONNECTOR-2-1" "unknown" 750 9850 180 top
+S2-0-5 "CONNECTOR-2-1" "unknown" 750 11350 180 top
+S2-0-6 "CONNECTOR-2-1" "unknown" 750 12850 180 top
+S2-0-7 "CONNECTOR-2-1" "unknown" 750 14350 180 top
+S2-0-8 "CONNECTOR-2-1" "unknown" 750 15850 180 top
+S2-0-9 "CONNECTOR-2-1" "unknown" 750 17350 180 top
+S2-0-10 "CONNECTOR-2-1" "unknown" 750 18850 180 top
+S2-0-11 "CONNECTOR-2-1" "unknown" 750 20350 180 top
+S2-0-12 "CONNECTOR-2-1" "unknown" 750 21850 180 top
+S2-0-13 "CONNECTOR-2-1" "unknown" 750 23350 180 top
+S2-0-14 "CONNECTOR-2-1" "unknown" 750 24850 180 top
+S2-1-0 "CONNECTOR-2-1" "unknown" 1250 3850 180 top
+S2-1-1 "CONNECTOR-2-1" "unknown" 1250 5350 180 top
+S2-1-2 "CONNECTOR-2-1" "unknown" 1250 6850 180 top
+S2-1-3 "CONNECTOR-2-1" "unknown" 1250 8350 180 top
+S2-1-4 "CONNECTOR-2-1" "unknown" 1250 9850 180 top
+S2-1-5 "CONNECTOR-2-1" "unknown" 1250 11350 180 top
+S2-1-6 "CONNECTOR-2-1" "unknown" 1250 12850 180 top
+S2-1-7 "CONNECTOR-2-1" "unknown" 1250 14350 180 top
+S2-1-8 "CONNECTOR-2-1" "unknown" 1250 15850 180 top
+S2-1-9 "CONNECTOR-2-1" "unknown" 1250 17350 180 top
+S2-1-10 "CONNECTOR-2-1" "unknown" 1250 18850 180 top
+S2-1-11 "CONNECTOR-2-1" "unknown" 1250 20350 180 top
+S2-1-12 "CONNECTOR-2-1" "unknown" 1250 21850 180 top
+S2-1-13 "CONNECTOR-2-1" "unknown" 1250 23350 180 top
+S2-1-14 "CONNECTOR-2-1" "unknown" 1250 24850 180 top
+S2-2-0 "CONNECTOR-2-1" "unknown" 1750 3850 180 top
+S2-2-1 "CONNECTOR-2-1" "unknown" 1750 5350 180 top
+S2-2-2 "CONNECTOR-2-1" "unknown" 1750 6850 180 top
+S2-2-3 "CONNECTOR-2-1" "unknown" 1750 8350 180 top
+S2-2-4 "CONNECTOR-2-1" "unknown" 1750 9850 180 top
+S2-2-5 "CONNECTOR-2-1" "unknown" 1750 11350 180 top
+S2-2-6 "CONNECTOR-2-1" "unknown" 1750 12850 180 top
+S2-2-7 "CONNECTOR-2-1" "unknown" 1750 14350 180 top
+S2-2-8 "CONNECTOR-2-1" "unknown" 1750 15850 180 top
+S2-2-9 "CONNECTOR-2-1" "unknown" 1750 17350 180 top
+S2-2-10 "CONNECTOR-2-1" "unknown" 1750 18850 180 top
+S2-2-11 "CONNECTOR-2-1" "unknown" 1750 20350 180 top
+S2-2-12 "CONNECTOR-2-1" "unknown" 1750 21850 180 top
+S2-2-13 "CONNECTOR-2-1" "unknown" 1750 23350 180 top
+S2-2-14 "CONNECTOR-2-1" "unknown" 1750 24850 180 top
+S2-3-0 "CONNECTOR-2-1" "unknown" 2250 3850 180 top
+S2-3-1 "CONNECTOR-2-1" "unknown" 2250 5350 180 top
+S2-3-2 "CONNECTOR-2-1" "unknown" 2250 6850 180 top
+S2-3-3 "CONNECTOR-2-1" "unknown" 2250 8350 180 top
+S2-3-4 "CONNECTOR-2-1" "unknown" 2250 9850 180 top
+S2-3-5 "CONNECTOR-2-1" "unknown" 2250 11350 180 top
+S2-3-6 "CONNECTOR-2-1" "unknown" 2250 12850 180 top
+S2-3-7 "CONNECTOR-2-1" "unknown" 2250 14350 180 top
+S2-3-8 "CONNECTOR-2-1" "unknown" 2250 15850 180 top
+S2-3-9 "CONNECTOR-2-1" "unknown" 2250 17350 180 top
+S2-3-10 "CONNECTOR-2-1" "unknown" 2250 18850 180 top
+S2-3-11 "CONNECTOR-2-1" "unknown" 2250 20350 180 top
+S2-3-12 "CONNECTOR-2-1" "unknown" 2250 21850 180 top
+S2-3-13 "CONNECTOR-2-1" "unknown" 2250 23350 180 top
+S2-3-14 "CONNECTOR-2-1" "unknown" 2250 24850 180 top
+S2-4-0 "CONNECTOR-2-1" "unknown" 2750 3850 180 top
+S2-4-1 "CONNECTOR-2-1" "unknown" 2750 5350 180 top
+S2-4-2 "CONNECTOR-2-1" "unknown" 2750 6850 180 top
+S2-4-3 "CONNECTOR-2-1" "unknown" 2750 8350 180 top
+S2-4-4 "CONNECTOR-2-1" "unknown" 2750 9850 180 top
+S2-4-5 "CONNECTOR-2-1" "unknown" 2750 11350 180 top
+S2-4-6 "CONNECTOR-2-1" "unknown" 2750 12850 180 top
+S2-4-7 "CONNECTOR-2-1" "unknown" 2750 14350 180 top
+S2-4-8 "CONNECTOR-2-1" "unknown" 2750 15850 180 top
+S2-4-9 "CONNECTOR-2-1" "unknown" 2750 17350 180 top
+S2-4-10 "CONNECTOR-2-1" "unknown" 2750 18850 180 top
+S2-4-11 "CONNECTOR-2-1" "unknown" 2750 20350 180 top
+S2-4-12 "CONNECTOR-2-1" "unknown" 2750 21850 180 top
+S2-4-13 "CONNECTOR-2-1" "unknown" 2750 23350 180 top
+S2-4-14 "CONNECTOR-2-1" "unknown" 2750 24850 180 top
+S2-5-0 "CONNECTOR-2-1" "unknown" 3250 3850 180 top
+S2-5-1 "CONNECTOR-2-1" "unknown" 3250 5350 180 top
+S2-5-2 "CONNECTOR-2-1" "unknown" 3250 6850 180 top
+S2-5-3 "CONNECTOR-2-1" "unknown" 3250 8350 180 top
+S2-5-4 "CONNECTOR-2-1" "unknown" 3250 9850 180 top
+S2-5-5 "CONNECTOR-2-1" "unknown" 3250 11350 180 top
+S2-5-6 "CONNECTOR-2-1" "unknown" 3250 12850 180 top
+S2-5-7 "CONNECTOR-2-1" "unknown" 3250 14350 180 top
+S2-5-8 "CONNECTOR-2-1" "unknown" 3250 15850 180 top
+S2-5-9 "CONNECTOR-2-1" "unknown" 3250 17350 180 top
+S2-5-10 "CONNECTOR-2-1" "unknown" 3250 18850 180 top
+S2-5-11 "CONNECTOR-2-1" "unknown" 3250 20350 180 top
+S2-5-12 "CONNECTOR-2-1" "unknown" 3250 21850 180 top
+S2-5-13 "CONNECTOR-2-1" "unknown" 3250 23350 180 top
+S2-5-14 "CONNECTOR-2-1" "unknown" 3250 24850 180 top
+S2-6-0 "CONNECTOR-2-1" "unknown" 3750 3850 180 top
+S2-6-1 "CONNECTOR-2-1" "unknown" 3750 5350 180 top
+S2-6-2 "CONNECTOR-2-1" "unknown" 3750 6850 180 top
+S2-6-3 "CONNECTOR-2-1" "unknown" 3750 8350 180 top
+S2-6-4 "CONNECTOR-2-1" "unknown" 3750 9850 180 top
+S2-6-5 "CONNECTOR-2-1" "unknown" 3750 11350 180 top
+S2-6-6 "CONNECTOR-2-1" "unknown" 3750 12850 180 top
+S2-6-7 "CONNECTOR-2-1" "unknown" 3750 14350 180 top
+S2-6-8 "CONNECTOR-2-1" "unknown" 3750 15850 180 top
+S2-6-9 "CONNECTOR-2-1" "unknown" 3750 17350 180 top
+S2-6-10 "CONNECTOR-2-1" "unknown" 3750 18850 180 top
+S2-6-11 "CONNECTOR-2-1" "unknown" 3750 20350 180 top
+S2-6-12 "CONNECTOR-2-1" "unknown" 3750 21850 180 top
+S2-6-13 "CONNECTOR-2-1" "unknown" 3750 23350 180 top
+S2-6-14 "CONNECTOR-2-1" "unknown" 3750 24850 180 top
+S2-7-0 "CONNECTOR-2-1" "unknown" 4250 3850 180 top
+S2-7-1 "CONNECTOR-2-1" "unknown" 4250 5350 180 top
+S2-7-2 "CONNECTOR-2-1" "unknown" 4250 6850 180 top
+S2-7-3 "CONNECTOR-2-1" "unknown" 4250 8350 180 top
+S2-7-4 "CONNECTOR-2-1" "unknown" 4250 9850 180 top
+S2-7-5 "CONNECTOR-2-1" "unknown" 4250 11350 180 top
+S2-7-6 "CONNECTOR-2-1" "unknown" 4250 12850 180 top
+S2-7-7 "CONNECTOR-2-1" "unknown" 4250 14350 180 top
+S2-7-8 "CONNECTOR-2-1" "unknown" 4250 15850 180 top
+S2-7-9 "CONNECTOR-2-1" "unknown" 4250 17350 180 top
+S2-7-10 "CONNECTOR-2-1" "unknown" 4250 18850 180 top
+S2-7-11 "CONNECTOR-2-1" "unknown" 4250 20350 180 top
+S2-7-12 "CONNECTOR-2-1" "unknown" 4250 21850 180 top
+S2-7-13 "CONNECTOR-2-1" "unknown" 4250 23350 180 top
+S2-7-14 "CONNECTOR-2-1" "unknown" 4250 24850 180 top
+S2-8-0 "CONNECTOR-2-1" "unknown" 4750 3850 180 top
+S2-8-1 "CONNECTOR-2-1" "unknown" 4750 5350 180 top
+S2-8-2 "CONNECTOR-2-1" "unknown" 4750 6850 180 top
+S2-8-3 "CONNECTOR-2-1" "unknown" 4750 8350 180 top
+S2-8-4 "CONNECTOR-2-1" "unknown" 4750 9850 180 top
+S2-8-5 "CONNECTOR-2-1" "unknown" 4750 11350 180 top
+S2-8-6 "CONNECTOR-2-1" "unknown" 4750 12850 180 top
+S2-8-7 "CONNECTOR-2-1" "unknown" 4750 14350 180 top
+S2-8-8 "CONNECTOR-2-1" "unknown" 4750 15850 180 top
+S2-8-9 "CONNECTOR-2-1" "unknown" 4750 17350 180 top
+S2-8-10 "CONNECTOR-2-1" "unknown" 4750 18850 180 top
+S2-8-11 "CONNECTOR-2-1" "unknown" 4750 20350 180 top
+S2-8-12 "CONNECTOR-2-1" "unknown" 4750 21850 180 top
+S2-8-13 "CONNECTOR-2-1" "unknown" 4750 23350 180 top
+S2-8-14 "CONNECTOR-2-1" "unknown" 4750 24850 180 top
+S2-9-0 "CONNECTOR-2-1" "unknown" 5250 3850 180 top
+S2-9-1 "CONNECTOR-2-1" "unknown" 5250 5350 180 top
+S2-9-2 "CONNECTOR-2-1" "unknown" 5250 6850 180 top
+S2-9-3 "CONNECTOR-2-1" "unknown" 5250 8350 180 top
+S2-9-4 "CONNECTOR-2-1" "unknown" 5250 9850 180 top
+S2-9-5 "CONNECTOR-2-1" "unknown" 5250 11350 180 top
+S2-9-6 "CONNECTOR-2-1" "unknown" 5250 12850 180 top
+S2-9-7 "CONNECTOR-2-1" "unknown" 5250 14350 180 top
+S2-9-8 "CONNECTOR-2-1" "unknown" 5250 15850 180 top
+S2-9-9 "CONNECTOR-2-1" "unknown" 5250 17350 180 top
+S2-9-10 "CONNECTOR-2-1" "unknown" 5250 18850 180 top
+S2-9-11 "CONNECTOR-2-1" "unknown" 5250 20350 180 top
+S2-9-12 "CONNECTOR-2-1" "unknown" 5250 21850 180 top
+S2-9-13 "CONNECTOR-2-1" "unknown" 5250 23350 180 top
+S2-9-14 "CONNECTOR-2-1" "unknown" 5250 24850 180 top
+S2-10-0 "CONNECTOR-2-1" "unknown" 5750 3850 180 top
+S2-10-1 "CONNECTOR-2-1" "unknown" 5750 5350 180 top
+S2-10-2 "CONNECTOR-2-1" "unknown" 5750 6850 180 top
+S2-10-3 "CONNECTOR-2-1" "unknown" 5750 8350 180 top
+S2-10-4 "CONNECTOR-2-1" "unknown" 5750 9850 180 top
+S2-10-5 "CONNECTOR-2-1" "unknown" 5750 11350 180 top
+S2-10-6 "CONNECTOR-2-1" "unknown" 5750 12850 180 top
+S2-10-7 "CONNECTOR-2-1" "unknown" 5750 14350 180 top
+S2-10-8 "CONNECTOR-2-1" "unknown" 5750 15850 180 top
+S2-10-9 "CONNECTOR-2-1" "unknown" 5750 17350 180 top
+S2-10-10 "CONNECTOR-2-1" "unknown" 5750 18850 180 top
+S2-10-11 "CONNECTOR-2-1" "unknown" 5750 20350 180 top
+S2-10-12 "CONNECTOR-2-1" "unknown" 5750 21850 180 top
+S2-10-13 "CONNECTOR-2-1" "unknown" 5750 23350 180 top
+S2-10-14 "CONNECTOR-2-1" "unknown" 5750 24850 180 top
+S2-11-0 "CONNECTOR-2-1" "unknown" 6250 3850 180 top
+S2-11-1 "CONNECTOR-2-1" "unknown" 6250 5350 180 top
+S2-11-2 "CONNECTOR-2-1" "unknown" 6250 6850 180 top
+S2-11-3 "CONNECTOR-2-1" "unknown" 6250 8350 180 top
+S2-11-4 "CONNECTOR-2-1" "unknown" 6250 9850 180 top
+S2-11-5 "CONNECTOR-2-1" "unknown" 6250 11350 180 top
+S2-11-6 "CONNECTOR-2-1" "unknown" 6250 12850 180 top
+S2-11-7 "CONNECTOR-2-1" "unknown" 6250 14350 180 top
+S2-11-8 "CONNECTOR-2-1" "unknown" 6250 15850 180 top
+S2-11-9 "CONNECTOR-2-1" "unknown" 6250 17350 180 top
+S2-11-10 "CONNECTOR-2-1" "unknown" 6250 18850 180 top
+S2-11-11 "CONNECTOR-2-1" "unknown" 6250 20350 180 top
+S2-11-12 "CONNECTOR-2-1" "unknown" 6250 21850 180 top
+S2-11-13 "CONNECTOR-2-1" "unknown" 6250 23350 180 top
+S2-11-14 "CONNECTOR-2-1" "unknown" 6250 24850 180 top
+S2-12-0 "CONNECTOR-2-1" "unknown" 6750 3850 180 top
+S2-12-1 "CONNECTOR-2-1" "unknown" 6750 5350 180 top
+S2-12-2 "CONNECTOR-2-1" "unknown" 6750 6850 180 top
+S2-12-3 "CONNECTOR-2-1" "unknown" 6750 8350 180 top
+S2-12-4 "CONNECTOR-2-1" "unknown" 6750 9850 180 top
+S2-12-5 "CONNECTOR-2-1" "unknown" 6750 11350 180 top
+S2-12-6 "CONNECTOR-2-1" "unknown" 6750 12850 180 top
+S2-12-7 "CONNECTOR-2-1" "unknown" 6750 14350 180 top
+S2-12-8 "CONNECTOR-2-1" "unknown" 6750 15850 180 top
+S2-12-9 "CONNECTOR-2-1" "unknown" 6750 17350 180 top
+S2-12-10 "CONNECTOR-2-1" "unknown" 6750 18850 180 top
+S2-12-11 "CONNECTOR-2-1" "unknown" 6750 20350 180 top
+S2-12-12 "CONNECTOR-2-1" "unknown" 6750 21850 180 top
+S2-12-13 "CONNECTOR-2-1" "unknown" 6750 23350 180 top
+S2-12-14 "CONNECTOR-2-1" "unknown" 6750 24850 180 top
+S2-13-0 "CONNECTOR-2-1" "unknown" 7250 3850 180 top
+S2-13-1 "CONNECTOR-2-1" "unknown" 7250 5350 180 top
+S2-13-2 "CONNECTOR-2-1" "unknown" 7250 6850 180 top
+S2-13-3 "CONNECTOR-2-1" "unknown" 7250 8350 180 top
+S2-13-4 "CONNECTOR-2-1" "unknown" 7250 9850 180 top
+S2-13-5 "CONNECTOR-2-1" "unknown" 7250 11350 180 top
+S2-13-6 "CONNECTOR-2-1" "unknown" 7250 12850 180 top
+S2-13-7 "CONNECTOR-2-1" "unknown" 7250 14350 180 top
+S2-13-8 "CONNECTOR-2-1" "unknown" 7250 15850 180 top
+S2-13-9 "CONNECTOR-2-1" "unknown" 7250 17350 180 top
+S2-13-10 "CONNECTOR-2-1" "unknown" 7250 18850 180 top
+S2-13-11 "CONNECTOR-2-1" "unknown" 7250 20350 180 top
+S2-13-12 "CONNECTOR-2-1" "unknown" 7250 21850 180 top
+S2-13-13 "CONNECTOR-2-1" "unknown" 7250 23350 180 top
+S2-13-14 "CONNECTOR-2-1" "unknown" 7250 24850 180 top
+S2-14-0 "CONNECTOR-2-1" "unknown" 7750 3850 180 top
+S2-14-1 "CONNECTOR-2-1" "unknown" 7750 5350 180 top
+S2-14-2 "CONNECTOR-2-1" "unknown" 7750 6850 180 top
+S2-14-3 "CONNECTOR-2-1" "unknown" 7750 8350 180 top
+S2-14-4 "CONNECTOR-2-1" "unknown" 7750 9850 180 top
+S2-14-5 "CONNECTOR-2-1" "unknown" 7750 11350 180 top
+S2-14-6 "CONNECTOR-2-1" "unknown" 7750 12850 180 top
+S2-14-7 "CONNECTOR-2-1" "unknown" 7750 14350 180 top
+S2-14-8 "CONNECTOR-2-1" "unknown" 7750 15850 180 top
+S2-14-9 "CONNECTOR-2-1" "unknown" 7750 17350 180 top
+S2-14-10 "CONNECTOR-2-1" "unknown" 7750 18850 180 top
+S2-14-11 "CONNECTOR-2-1" "unknown" 7750 20350 180 top
+S2-14-12 "CONNECTOR-2-1" "unknown" 7750 21850 180 top
+S2-14-13 "CONNECTOR-2-1" "unknown" 7750 23350 180 top
+S2-14-14 "CONNECTOR-2-1" "unknown" 7750 24850 180 top
+S1-0-0 "CONNECTOR-2-1" "unknown" 275.00 3850.00 0 top
+S1-0-1 "CONNECTOR-2-1" "unknown" 275 5350 0 top
+S1-0-2 "CONNECTOR-2-1" "unknown" 275 6850 0 top
+S1-0-3 "CONNECTOR-2-1" "unknown" 275 8350 0 top
+S1-0-4 "CONNECTOR-2-1" "unknown" 275 9850 0 top
+S1-0-5 "CONNECTOR-2-1" "unknown" 275 11350 0 top
+S1-0-6 "CONNECTOR-2-1" "unknown" 275 12850 0 top
+S1-0-7 "CONNECTOR-2-1" "unknown" 275 14350 0 top
+S1-0-8 "CONNECTOR-2-1" "unknown" 275 15850 0 top
+S1-0-9 "CONNECTOR-2-1" "unknown" 275 17350 0 top
+S1-0-10 "CONNECTOR-2-1" "unknown" 275 18850 0 top
+S1-0-11 "CONNECTOR-2-1" "unknown" 275 20350 0 top
+S1-0-12 "CONNECTOR-2-1" "unknown" 275 21850 0 top
+S1-0-13 "CONNECTOR-2-1" "unknown" 275 23350 0 top
+S1-0-14 "CONNECTOR-2-1" "unknown" 275 24850 0 top
+S1-1-0 "CONNECTOR-2-1" "unknown" 775 3850 0 top
+S1-1-1 "CONNECTOR-2-1" "unknown" 775 5350 0 top
+S1-1-2 "CONNECTOR-2-1" "unknown" 775 6850 0 top
+S1-1-3 "CONNECTOR-2-1" "unknown" 775 8350 0 top
+S1-1-4 "CONNECTOR-2-1" "unknown" 775 9850 0 top
+S1-1-5 "CONNECTOR-2-1" "unknown" 775 11350 0 top
+S1-1-6 "CONNECTOR-2-1" "unknown" 775 12850 0 top
+S1-1-7 "CONNECTOR-2-1" "unknown" 775 14350 0 top
+S1-1-8 "CONNECTOR-2-1" "unknown" 775 15850 0 top
+S1-1-9 "CONNECTOR-2-1" "unknown" 775 17350 0 top
+S1-1-10 "CONNECTOR-2-1" "unknown" 775 18850 0 top
+S1-1-11 "CONNECTOR-2-1" "unknown" 775 20350 0 top
+S1-1-12 "CONNECTOR-2-1" "unknown" 775 21850 0 top
+S1-1-13 "CONNECTOR-2-1" "unknown" 775 23350 0 top
+S1-1-14 "CONNECTOR-2-1" "unknown" 775 24850 0 top
+S1-2-0 "CONNECTOR-2-1" "unknown" 1275 3850 0 top
+S1-2-1 "CONNECTOR-2-1" "unknown" 1275 5350 0 top
+S1-2-2 "CONNECTOR-2-1" "unknown" 1275 6850 0 top
+S1-2-3 "CONNECTOR-2-1" "unknown" 1275 8350 0 top
+S1-2-4 "CONNECTOR-2-1" "unknown" 1275 9850 0 top
+S1-2-5 "CONNECTOR-2-1" "unknown" 1275 11350 0 top
+S1-2-6 "CONNECTOR-2-1" "unknown" 1275 12850 0 top
+S1-2-7 "CONNECTOR-2-1" "unknown" 1275 14350 0 top
+S1-2-8 "CONNECTOR-2-1" "unknown" 1275 15850 0 top
+S1-2-9 "CONNECTOR-2-1" "unknown" 1275 17350 0 top
+S1-2-10 "CONNECTOR-2-1" "unknown" 1275 18850 0 top
+S1-2-11 "CONNECTOR-2-1" "unknown" 1275 20350 0 top
+S1-2-12 "CONNECTOR-2-1" "unknown" 1275 21850 0 top
+S1-2-13 "CONNECTOR-2-1" "unknown" 1275 23350 0 top
+S1-2-14 "CONNECTOR-2-1" "unknown" 1275 24850 0 top
+S1-3-0 "CONNECTOR-2-1" "unknown" 1775 3850 0 top
+S1-3-1 "CONNECTOR-2-1" "unknown" 1775 5350 0 top
+S1-3-2 "CONNECTOR-2-1" "unknown" 1775 6850 0 top
+S1-3-3 "CONNECTOR-2-1" "unknown" 1775 8350 0 top
+S1-3-4 "CONNECTOR-2-1" "unknown" 1775 9850 0 top
+S1-3-5 "CONNECTOR-2-1" "unknown" 1775 11350 0 top
+S1-3-6 "CONNECTOR-2-1" "unknown" 1775 12850 0 top
+S1-3-7 "CONNECTOR-2-1" "unknown" 1775 14350 0 top
+S1-3-8 "CONNECTOR-2-1" "unknown" 1775 15850 0 top
+S1-3-9 "CONNECTOR-2-1" "unknown" 1775 17350 0 top
+S1-3-10 "CONNECTOR-2-1" "unknown" 1775 18850 0 top
+S1-3-11 "CONNECTOR-2-1" "unknown" 1775 20350 0 top
+S1-3-12 "CONNECTOR-2-1" "unknown" 1775 21850 0 top
+S1-3-13 "CONNECTOR-2-1" "unknown" 1775 23350 0 top
+S1-3-14 "CONNECTOR-2-1" "unknown" 1775 24850 0 top
+S1-4-0 "CONNECTOR-2-1" "unknown" 2275 3850 0 top
+S1-4-1 "CONNECTOR-2-1" "unknown" 2275 5350 0 top
+S1-4-2 "CONNECTOR-2-1" "unknown" 2275 6850 0 top
+S1-4-3 "CONNECTOR-2-1" "unknown" 2275 8350 0 top
+S1-4-4 "CONNECTOR-2-1" "unknown" 2275 9850 0 top
+S1-4-5 "CONNECTOR-2-1" "unknown" 2275 11350 0 top
+S1-4-6 "CONNECTOR-2-1" "unknown" 2275 12850 0 top
+S1-4-7 "CONNECTOR-2-1" "unknown" 2275 14350 0 top
+S1-4-8 "CONNECTOR-2-1" "unknown" 2275 15850 0 top
+S1-4-9 "CONNECTOR-2-1" "unknown" 2275 17350 0 top
+S1-4-10 "CONNECTOR-2-1" "unknown" 2275 18850 0 top
+S1-4-11 "CONNECTOR-2-1" "unknown" 2275 20350 0 top
+S1-4-12 "CONNECTOR-2-1" "unknown" 2275 21850 0 top
+S1-4-13 "CONNECTOR-2-1" "unknown" 2275 23350 0 top
+S1-4-14 "CONNECTOR-2-1" "unknown" 2275 24850 0 top
+S1-5-0 "CONNECTOR-2-1" "unknown" 2775 3850 0 top
+S1-5-1 "CONNECTOR-2-1" "unknown" 2775 5350 0 top
+S1-5-2 "CONNECTOR-2-1" "unknown" 2775 6850 0 top
+S1-5-3 "CONNECTOR-2-1" "unknown" 2775 8350 0 top
+S1-5-4 "CONNECTOR-2-1" "unknown" 2775 9850 0 top
+S1-5-5 "CONNECTOR-2-1" "unknown" 2775 11350 0 top
+S1-5-6 "CONNECTOR-2-1" "unknown" 2775 12850 0 top
+S1-5-7 "CONNECTOR-2-1" "unknown" 2775 14350 0 top
+S1-5-8 "CONNECTOR-2-1" "unknown" 2775 15850 0 top
+S1-5-9 "CONNECTOR-2-1" "unknown" 2775 17350 0 top
+S1-5-10 "CONNECTOR-2-1" "unknown" 2775 18850 0 top
+S1-5-11 "CONNECTOR-2-1" "unknown" 2775 20350 0 top
+S1-5-12 "CONNECTOR-2-1" "unknown" 2775 21850 0 top
+S1-5-13 "CONNECTOR-2-1" "unknown" 2775 23350 0 top
+S1-5-14 "CONNECTOR-2-1" "unknown" 2775 24850 0 top
+S1-6-0 "CONNECTOR-2-1" "unknown" 3275 3850 0 top
+S1-6-1 "CONNECTOR-2-1" "unknown" 3275 5350 0 top
+S1-6-2 "CONNECTOR-2-1" "unknown" 3275 6850 0 top
+S1-6-3 "CONNECTOR-2-1" "unknown" 3275 8350 0 top
+S1-6-4 "CONNECTOR-2-1" "unknown" 3275 9850 0 top
+S1-6-5 "CONNECTOR-2-1" "unknown" 3275 11350 0 top
+S1-6-6 "CONNECTOR-2-1" "unknown" 3275 12850 0 top
+S1-6-7 "CONNECTOR-2-1" "unknown" 3275 14350 0 top
+S1-6-8 "CONNECTOR-2-1" "unknown" 3275 15850 0 top
+S1-6-9 "CONNECTOR-2-1" "unknown" 3275 17350 0 top
+S1-6-10 "CONNECTOR-2-1" "unknown" 3275 18850 0 top
+S1-6-11 "CONNECTOR-2-1" "unknown" 3275 20350 0 top
+S1-6-12 "CONNECTOR-2-1" "unknown" 3275 21850 0 top
+S1-6-13 "CONNECTOR-2-1" "unknown" 3275 23350 0 top
+S1-6-14 "CONNECTOR-2-1" "unknown" 3275 24850 0 top
+S1-7-0 "CONNECTOR-2-1" "unknown" 3775 3850 0 top
+S1-7-1 "CONNECTOR-2-1" "unknown" 3775 5350 0 top
+S1-7-2 "CONNECTOR-2-1" "unknown" 3775 6850 0 top
+S1-7-3 "CONNECTOR-2-1" "unknown" 3775 8350 0 top
+S1-7-4 "CONNECTOR-2-1" "unknown" 3775 9850 0 top
+S1-7-5 "CONNECTOR-2-1" "unknown" 3775 11350 0 top
+S1-7-6 "CONNECTOR-2-1" "unknown" 3775 12850 0 top
+S1-7-7 "CONNECTOR-2-1" "unknown" 3775 14350 0 top
+S1-7-8 "CONNECTOR-2-1" "unknown" 3775 15850 0 top
+S1-7-9 "CONNECTOR-2-1" "unknown" 3775 17350 0 top
+S1-7-10 "CONNECTOR-2-1" "unknown" 3775 18850 0 top
+S1-7-11 "CONNECTOR-2-1" "unknown" 3775 20350 0 top
+S1-7-12 "CONNECTOR-2-1" "unknown" 3775 21850 0 top
+S1-7-13 "CONNECTOR-2-1" "unknown" 3775 23350 0 top
+S1-7-14 "CONNECTOR-2-1" "unknown" 3775 24850 0 top
+S1-8-0 "CONNECTOR-2-1" "unknown" 4275 3850 0 top
+S1-8-1 "CONNECTOR-2-1" "unknown" 4275 5350 0 top
+S1-8-2 "CONNECTOR-2-1" "unknown" 4275 6850 0 top
+S1-8-3 "CONNECTOR-2-1" "unknown" 4275 8350 0 top
+S1-8-4 "CONNECTOR-2-1" "unknown" 4275 9850 0 top
+S1-8-5 "CONNECTOR-2-1" "unknown" 4275 11350 0 top
+S1-8-6 "CONNECTOR-2-1" "unknown" 4275 12850 0 top
+S1-8-7 "CONNECTOR-2-1" "unknown" 4275 14350 0 top
+S1-8-8 "CONNECTOR-2-1" "unknown" 4275 15850 0 top
+S1-8-9 "CONNECTOR-2-1" "unknown" 4275 17350 0 top
+S1-8-10 "CONNECTOR-2-1" "unknown" 4275 18850 0 top
+S1-8-11 "CONNECTOR-2-1" "unknown" 4275 20350 0 top
+S1-8-12 "CONNECTOR-2-1" "unknown" 4275 21850 0 top
+S1-8-13 "CONNECTOR-2-1" "unknown" 4275 23350 0 top
+S1-8-14 "CONNECTOR-2-1" "unknown" 4275 24850 0 top
+S1-9-0 "CONNECTOR-2-1" "unknown" 4775 3850 0 top
+S1-9-1 "CONNECTOR-2-1" "unknown" 4775 5350 0 top
+S1-9-2 "CONNECTOR-2-1" "unknown" 4775 6850 0 top
+S1-9-3 "CONNECTOR-2-1" "unknown" 4775 8350 0 top
+S1-9-4 "CONNECTOR-2-1" "unknown" 4775 9850 0 top
+S1-9-5 "CONNECTOR-2-1" "unknown" 4775 11350 0 top
+S1-9-6 "CONNECTOR-2-1" "unknown" 4775 12850 0 top
+S1-9-7 "CONNECTOR-2-1" "unknown" 4775 14350 0 top
+S1-9-8 "CONNECTOR-2-1" "unknown" 4775 15850 0 top
+S1-9-9 "CONNECTOR-2-1" "unknown" 4775 17350 0 top
+S1-9-10 "CONNECTOR-2-1" "unknown" 4775 18850 0 top
+S1-9-11 "CONNECTOR-2-1" "unknown" 4775 20350 0 top
+S1-9-12 "CONNECTOR-2-1" "unknown" 4775 21850 0 top
+S1-9-13 "CONNECTOR-2-1" "unknown" 4775 23350 0 top
+S1-9-14 "CONNECTOR-2-1" "unknown" 4775 24850 0 top
+S1-10-0 "CONNECTOR-2-1" "unknown" 5275 3850 0 top
+S1-10-1 "CONNECTOR-2-1" "unknown" 5275 5350 0 top
+S1-10-2 "CONNECTOR-2-1" "unknown" 5275 6850 0 top
+S1-10-3 "CONNECTOR-2-1" "unknown" 5275 8350 0 top
+S1-10-4 "CONNECTOR-2-1" "unknown" 5275 9850 0 top
+S1-10-5 "CONNECTOR-2-1" "unknown" 5275 11350 0 top
+S1-10-6 "CONNECTOR-2-1" "unknown" 5275 12850 0 top
+S1-10-7 "CONNECTOR-2-1" "unknown" 5275 14350 0 top
+S1-10-8 "CONNECTOR-2-1" "unknown" 5275 15850 0 top
+S1-10-9 "CONNECTOR-2-1" "unknown" 5275 17350 0 top
+S1-10-10 "CONNECTOR-2-1" "unknown" 5275 18850 0 top
+S1-10-11 "CONNECTOR-2-1" "unknown" 5275 20350 0 top
+S1-10-12 "CONNECTOR-2-1" "unknown" 5275 21850 0 top
+S1-10-13 "CONNECTOR-2-1" "unknown" 5275 23350 0 top
+S1-10-14 "CONNECTOR-2-1" "unknown" 5275 24850 0 top
+S1-11-0 "CONNECTOR-2-1" "unknown" 5775 3850 0 top
+S1-11-1 "CONNECTOR-2-1" "unknown" 5775 5350 0 top
+S1-11-2 "CONNECTOR-2-1" "unknown" 5775 6850 0 top
+S1-11-3 "CONNECTOR-2-1" "unknown" 5775 8350 0 top
+S1-11-4 "CONNECTOR-2-1" "unknown" 5775 9850 0 top
+S1-11-5 "CONNECTOR-2-1" "unknown" 5775 11350 0 top
+S1-11-6 "CONNECTOR-2-1" "unknown" 5775 12850 0 top
+S1-11-7 "CONNECTOR-2-1" "unknown" 5775 14350 0 top
+S1-11-8 "CONNECTOR-2-1" "unknown" 5775 15850 0 top
+S1-11-9 "CONNECTOR-2-1" "unknown" 5775 17350 0 top
+S1-11-10 "CONNECTOR-2-1" "unknown" 5775 18850 0 top
+S1-11-11 "CONNECTOR-2-1" "unknown" 5775 20350 0 top
+S1-11-12 "CONNECTOR-2-1" "unknown" 5775 21850 0 top
+S1-11-13 "CONNECTOR-2-1" "unknown" 5775 23350 0 top
+S1-11-14 "CONNECTOR-2-1" "unknown" 5775 24850 0 top
+S1-12-0 "CONNECTOR-2-1" "unknown" 6275 3850 0 top
+S1-12-1 "CONNECTOR-2-1" "unknown" 6275 5350 0 top
+S1-12-2 "CONNECTOR-2-1" "unknown" 6275 6850 0 top
+S1-12-3 "CONNECTOR-2-1" "unknown" 6275 8350 0 top
+S1-12-4 "CONNECTOR-2-1" "unknown" 6275 9850 0 top
+S1-12-5 "CONNECTOR-2-1" "unknown" 6275 11350 0 top
+S1-12-6 "CONNECTOR-2-1" "unknown" 6275 12850 0 top
+S1-12-7 "CONNECTOR-2-1" "unknown" 6275 14350 0 top
+S1-12-8 "CONNECTOR-2-1" "unknown" 6275 15850 0 top
+S1-12-9 "CONNECTOR-2-1" "unknown" 6275 17350 0 top
+S1-12-10 "CONNECTOR-2-1" "unknown" 6275 18850 0 top
+S1-12-11 "CONNECTOR-2-1" "unknown" 6275 20350 0 top
+S1-12-12 "CONNECTOR-2-1" "unknown" 6275 21850 0 top
+S1-12-13 "CONNECTOR-2-1" "unknown" 6275 23350 0 top
+S1-12-14 "CONNECTOR-2-1" "unknown" 6275 24850 0 top
+S1-13-0 "CONNECTOR-2-1" "unknown" 6775 3850 0 top
+S1-13-1 "CONNECTOR-2-1" "unknown" 6775 5350 0 top
+S1-13-2 "CONNECTOR-2-1" "unknown" 6775 6850 0 top
+S1-13-3 "CONNECTOR-2-1" "unknown" 6775 8350 0 top
+S1-13-4 "CONNECTOR-2-1" "unknown" 6775 9850 0 top
+S1-13-5 "CONNECTOR-2-1" "unknown" 6775 11350 0 top
+S1-13-6 "CONNECTOR-2-1" "unknown" 6775 12850 0 top
+S1-13-7 "CONNECTOR-2-1" "unknown" 6775 14350 0 top
+S1-13-8 "CONNECTOR-2-1" "unknown" 6775 15850 0 top
+S1-13-9 "CONNECTOR-2-1" "unknown" 6775 17350 0 top
+S1-13-10 "CONNECTOR-2-1" "unknown" 6775 18850 0 top
+S1-13-11 "CONNECTOR-2-1" "unknown" 6775 20350 0 top
+S1-13-12 "CONNECTOR-2-1" "unknown" 6775 21850 0 top
+S1-13-13 "CONNECTOR-2-1" "unknown" 6775 23350 0 top
+S1-13-14 "CONNECTOR-2-1" "unknown" 6775 24850 0 top
+S1-14-0 "CONNECTOR-2-1" "unknown" 7275 3850 0 top
+S1-14-1 "CONNECTOR-2-1" "unknown" 7275 5350 0 top
+S1-14-2 "CONNECTOR-2-1" "unknown" 7275 6850 0 top
+S1-14-3 "CONNECTOR-2-1" "unknown" 7275 8350 0 top
+S1-14-4 "CONNECTOR-2-1" "unknown" 7275 9850 0 top
+S1-14-5 "CONNECTOR-2-1" "unknown" 7275 11350 0 top
+S1-14-6 "CONNECTOR-2-1" "unknown" 7275 12850 0 top
+S1-14-7 "CONNECTOR-2-1" "unknown" 7275 14350 0 top
+S1-14-8 "CONNECTOR-2-1" "unknown" 7275 15850 0 top
+S1-14-9 "CONNECTOR-2-1" "unknown" 7275 17350 0 top
+S1-14-10 "CONNECTOR-2-1" "unknown" 7275 18850 0 top
+S1-14-11 "CONNECTOR-2-1" "unknown" 7275 20350 0 top
+S1-14-12 "CONNECTOR-2-1" "unknown" 7275 21850 0 top
+S1-14-13 "CONNECTOR-2-1" "unknown" 7275 23350 0 top
+S1-14-14 "CONNECTOR-2-1" "unknown" 7275 24850 0 top
+D3-0-0 "CONNECTOR-2-1" "unknown" 750.00 3350.00 0 top
+D3-0-1 "CONNECTOR-2-1" "unknown" 750 4850 0 top
+D3-0-2 "CONNECTOR-2-1" "unknown" 750 6350 0 top
+D3-0-3 "CONNECTOR-2-1" "unknown" 750 7850 0 top
+D3-0-4 "CONNECTOR-2-1" "unknown" 750 9350 0 top
+D3-0-5 "CONNECTOR-2-1" "unknown" 750 10850 0 top
+D3-0-6 "CONNECTOR-2-1" "unknown" 750 12350 0 top
+D3-0-7 "CONNECTOR-2-1" "unknown" 750 13850 0 top
+D3-0-8 "CONNECTOR-2-1" "unknown" 750 15350 0 top
+D3-0-9 "CONNECTOR-2-1" "unknown" 750 16850 0 top
+D3-0-10 "CONNECTOR-2-1" "unknown" 750 18350 0 top
+D3-0-11 "CONNECTOR-2-1" "unknown" 750 19850 0 top
+D3-0-12 "CONNECTOR-2-1" "unknown" 750 21350 0 top
+D3-0-13 "CONNECTOR-2-1" "unknown" 750 22850 0 top
+D3-0-14 "CONNECTOR-2-1" "unknown" 750 24350 0 top
+D3-1-0 "CONNECTOR-2-1" "unknown" 1250 3350 0 top
+D3-1-1 "CONNECTOR-2-1" "unknown" 1250 4850 0 top
+D3-1-2 "CONNECTOR-2-1" "unknown" 1250 6350 0 top
+D3-1-3 "CONNECTOR-2-1" "unknown" 1250 7850 0 top
+D3-1-4 "CONNECTOR-2-1" "unknown" 1250 9350 0 top
+D3-1-5 "CONNECTOR-2-1" "unknown" 1250 10850 0 top
+D3-1-6 "CONNECTOR-2-1" "unknown" 1250 12350 0 top
+D3-1-7 "CONNECTOR-2-1" "unknown" 1250 13850 0 top
+D3-1-8 "CONNECTOR-2-1" "unknown" 1250 15350 0 top
+D3-1-9 "CONNECTOR-2-1" "unknown" 1250 16850 0 top
+D3-1-10 "CONNECTOR-2-1" "unknown" 1250 18350 0 top
+D3-1-11 "CONNECTOR-2-1" "unknown" 1250 19850 0 top
+D3-1-12 "CONNECTOR-2-1" "unknown" 1250 21350 0 top
+D3-1-13 "CONNECTOR-2-1" "unknown" 1250 22850 0 top
+D3-1-14 "CONNECTOR-2-1" "unknown" 1250 24350 0 top
+D3-2-0 "CONNECTOR-2-1" "unknown" 1750 3350 0 top
+D3-2-1 "CONNECTOR-2-1" "unknown" 1750 4850 0 top
+D3-2-2 "CONNECTOR-2-1" "unknown" 1750 6350 0 top
+D3-2-3 "CONNECTOR-2-1" "unknown" 1750 7850 0 top
+D3-2-4 "CONNECTOR-2-1" "unknown" 1750 9350 0 top
+D3-2-5 "CONNECTOR-2-1" "unknown" 1750 10850 0 top
+D3-2-6 "CONNECTOR-2-1" "unknown" 1750 12350 0 top
+D3-2-7 "CONNECTOR-2-1" "unknown" 1750 13850 0 top
+D3-2-8 "CONNECTOR-2-1" "unknown" 1750 15350 0 top
+D3-2-9 "CONNECTOR-2-1" "unknown" 1750 16850 0 top
+D3-2-10 "CONNECTOR-2-1" "unknown" 1750 18350 0 top
+D3-2-11 "CONNECTOR-2-1" "unknown" 1750 19850 0 top
+D3-2-12 "CONNECTOR-2-1" "unknown" 1750 21350 0 top
+D3-2-13 "CONNECTOR-2-1" "unknown" 1750 22850 0 top
+D3-2-14 "CONNECTOR-2-1" "unknown" 1750 24350 0 top
+D3-3-0 "CONNECTOR-2-1" "unknown" 2250 3350 0 top
+D3-3-1 "CONNECTOR-2-1" "unknown" 2250 4850 0 top
+D3-3-2 "CONNECTOR-2-1" "unknown" 2250 6350 0 top
+D3-3-3 "CONNECTOR-2-1" "unknown" 2250 7850 0 top
+D3-3-4 "CONNECTOR-2-1" "unknown" 2250 9350 0 top
+D3-3-5 "CONNECTOR-2-1" "unknown" 2250 10850 0 top
+D3-3-6 "CONNECTOR-2-1" "unknown" 2250 12350 0 top
+D3-3-7 "CONNECTOR-2-1" "unknown" 2250 13850 0 top
+D3-3-8 "CONNECTOR-2-1" "unknown" 2250 15350 0 top
+D3-3-9 "CONNECTOR-2-1" "unknown" 2250 16850 0 top
+D3-3-10 "CONNECTOR-2-1" "unknown" 2250 18350 0 top
+D3-3-11 "CONNECTOR-2-1" "unknown" 2250 19850 0 top
+D3-3-12 "CONNECTOR-2-1" "unknown" 2250 21350 0 top
+D3-3-13 "CONNECTOR-2-1" "unknown" 2250 22850 0 top
+D3-3-14 "CONNECTOR-2-1" "unknown" 2250 24350 0 top
+D3-4-0 "CONNECTOR-2-1" "unknown" 2750 3350 0 top
+D3-4-1 "CONNECTOR-2-1" "unknown" 2750 4850 0 top
+D3-4-2 "CONNECTOR-2-1" "unknown" 2750 6350 0 top
+D3-4-3 "CONNECTOR-2-1" "unknown" 2750 7850 0 top
+D3-4-4 "CONNECTOR-2-1" "unknown" 2750 9350 0 top
+D3-4-5 "CONNECTOR-2-1" "unknown" 2750 10850 0 top
+D3-4-6 "CONNECTOR-2-1" "unknown" 2750 12350 0 top
+D3-4-7 "CONNECTOR-2-1" "unknown" 2750 13850 0 top
+D3-4-8 "CONNECTOR-2-1" "unknown" 2750 15350 0 top
+D3-4-9 "CONNECTOR-2-1" "unknown" 2750 16850 0 top
+D3-4-10 "CONNECTOR-2-1" "unknown" 2750 18350 0 top
+D3-4-11 "CONNECTOR-2-1" "unknown" 2750 19850 0 top
+D3-4-12 "CONNECTOR-2-1" "unknown" 2750 21350 0 top
+D3-4-13 "CONNECTOR-2-1" "unknown" 2750 22850 0 top
+D3-4-14 "CONNECTOR-2-1" "unknown" 2750 24350 0 top
+D3-5-0 "CONNECTOR-2-1" "unknown" 3250 3350 0 top
+D3-5-1 "CONNECTOR-2-1" "unknown" 3250 4850 0 top
+D3-5-2 "CONNECTOR-2-1" "unknown" 3250 6350 0 top
+D3-5-3 "CONNECTOR-2-1" "unknown" 3250 7850 0 top
+D3-5-4 "CONNECTOR-2-1" "unknown" 3250 9350 0 top
+D3-5-5 "CONNECTOR-2-1" "unknown" 3250 10850 0 top
+D3-5-6 "CONNECTOR-2-1" "unknown" 3250 12350 0 top
+D3-5-7 "CONNECTOR-2-1" "unknown" 3250 13850 0 top
+D3-5-8 "CONNECTOR-2-1" "unknown" 3250 15350 0 top
+D3-5-9 "CONNECTOR-2-1" "unknown" 3250 16850 0 top
+D3-5-10 "CONNECTOR-2-1" "unknown" 3250 18350 0 top
+D3-5-11 "CONNECTOR-2-1" "unknown" 3250 19850 0 top
+D3-5-12 "CONNECTOR-2-1" "unknown" 3250 21350 0 top
+D3-5-13 "CONNECTOR-2-1" "unknown" 3250 22850 0 top
+D3-5-14 "CONNECTOR-2-1" "unknown" 3250 24350 0 top
+D3-6-0 "CONNECTOR-2-1" "unknown" 3750 3350 0 top
+D3-6-1 "CONNECTOR-2-1" "unknown" 3750 4850 0 top
+D3-6-2 "CONNECTOR-2-1" "unknown" 3750 6350 0 top
+D3-6-3 "CONNECTOR-2-1" "unknown" 3750 7850 0 top
+D3-6-4 "CONNECTOR-2-1" "unknown" 3750 9350 0 top
+D3-6-5 "CONNECTOR-2-1" "unknown" 3750 10850 0 top
+D3-6-6 "CONNECTOR-2-1" "unknown" 3750 12350 0 top
+D3-6-7 "CONNECTOR-2-1" "unknown" 3750 13850 0 top
+D3-6-8 "CONNECTOR-2-1" "unknown" 3750 15350 0 top
+D3-6-9 "CONNECTOR-2-1" "unknown" 3750 16850 0 top
+D3-6-10 "CONNECTOR-2-1" "unknown" 3750 18350 0 top
+D3-6-11 "CONNECTOR-2-1" "unknown" 3750 19850 0 top
+D3-6-12 "CONNECTOR-2-1" "unknown" 3750 21350 0 top
+D3-6-13 "CONNECTOR-2-1" "unknown" 3750 22850 0 top
+D3-6-14 "CONNECTOR-2-1" "unknown" 3750 24350 0 top
+D3-7-0 "CONNECTOR-2-1" "unknown" 4250 3350 0 top
+D3-7-1 "CONNECTOR-2-1" "unknown" 4250 4850 0 top
+D3-7-2 "CONNECTOR-2-1" "unknown" 4250 6350 0 top
+D3-7-3 "CONNECTOR-2-1" "unknown" 4250 7850 0 top
+D3-7-4 "CONNECTOR-2-1" "unknown" 4250 9350 0 top
+D3-7-5 "CONNECTOR-2-1" "unknown" 4250 10850 0 top
+D3-7-6 "CONNECTOR-2-1" "unknown" 4250 12350 0 top
+D3-7-7 "CONNECTOR-2-1" "unknown" 4250 13850 0 top
+D3-7-8 "CONNECTOR-2-1" "unknown" 4250 15350 0 top
+D3-7-9 "CONNECTOR-2-1" "unknown" 4250 16850 0 top
+D3-7-10 "CONNECTOR-2-1" "unknown" 4250 18350 0 top
+D3-7-11 "CONNECTOR-2-1" "unknown" 4250 19850 0 top
+D3-7-12 "CONNECTOR-2-1" "unknown" 4250 21350 0 top
+D3-7-13 "CONNECTOR-2-1" "unknown" 4250 22850 0 top
+D3-7-14 "CONNECTOR-2-1" "unknown" 4250 24350 0 top
+D3-8-0 "CONNECTOR-2-1" "unknown" 4750 3350 0 top
+D3-8-1 "CONNECTOR-2-1" "unknown" 4750 4850 0 top
+D3-8-2 "CONNECTOR-2-1" "unknown" 4750 6350 0 top
+D3-8-3 "CONNECTOR-2-1" "unknown" 4750 7850 0 top
+D3-8-4 "CONNECTOR-2-1" "unknown" 4750 9350 0 top
+D3-8-5 "CONNECTOR-2-1" "unknown" 4750 10850 0 top
+D3-8-6 "CONNECTOR-2-1" "unknown" 4750 12350 0 top
+D3-8-7 "CONNECTOR-2-1" "unknown" 4750 13850 0 top
+D3-8-8 "CONNECTOR-2-1" "unknown" 4750 15350 0 top
+D3-8-9 "CONNECTOR-2-1" "unknown" 4750 16850 0 top
+D3-8-10 "CONNECTOR-2-1" "unknown" 4750 18350 0 top
+D3-8-11 "CONNECTOR-2-1" "unknown" 4750 19850 0 top
+D3-8-12 "CONNECTOR-2-1" "unknown" 4750 21350 0 top
+D3-8-13 "CONNECTOR-2-1" "unknown" 4750 22850 0 top
+D3-8-14 "CONNECTOR-2-1" "unknown" 4750 24350 0 top
+D3-9-0 "CONNECTOR-2-1" "unknown" 5250 3350 0 top
+D3-9-1 "CONNECTOR-2-1" "unknown" 5250 4850 0 top
+D3-9-2 "CONNECTOR-2-1" "unknown" 5250 6350 0 top
+D3-9-3 "CONNECTOR-2-1" "unknown" 5250 7850 0 top
+D3-9-4 "CONNECTOR-2-1" "unknown" 5250 9350 0 top
+D3-9-5 "CONNECTOR-2-1" "unknown" 5250 10850 0 top
+D3-9-6 "CONNECTOR-2-1" "unknown" 5250 12350 0 top
+D3-9-7 "CONNECTOR-2-1" "unknown" 5250 13850 0 top
+D3-9-8 "CONNECTOR-2-1" "unknown" 5250 15350 0 top
+D3-9-9 "CONNECTOR-2-1" "unknown" 5250 16850 0 top
+D3-9-10 "CONNECTOR-2-1" "unknown" 5250 18350 0 top
+D3-9-11 "CONNECTOR-2-1" "unknown" 5250 19850 0 top
+D3-9-12 "CONNECTOR-2-1" "unknown" 5250 21350 0 top
+D3-9-13 "CONNECTOR-2-1" "unknown" 5250 22850 0 top
+D3-9-14 "CONNECTOR-2-1" "unknown" 5250 24350 0 top
+D3-10-0 "CONNECTOR-2-1" "unknown" 5750 3350 0 top
+D3-10-1 "CONNECTOR-2-1" "unknown" 5750 4850 0 top
+D3-10-2 "CONNECTOR-2-1" "unknown" 5750 6350 0 top
+D3-10-3 "CONNECTOR-2-1" "unknown" 5750 7850 0 top
+D3-10-4 "CONNECTOR-2-1" "unknown" 5750 9350 0 top
+D3-10-5 "CONNECTOR-2-1" "unknown" 5750 10850 0 top
+D3-10-6 "CONNECTOR-2-1" "unknown" 5750 12350 0 top
+D3-10-7 "CONNECTOR-2-1" "unknown" 5750 13850 0 top
+D3-10-8 "CONNECTOR-2-1" "unknown" 5750 15350 0 top
+D3-10-9 "CONNECTOR-2-1" "unknown" 5750 16850 0 top
+D3-10-10 "CONNECTOR-2-1" "unknown" 5750 18350 0 top
+D3-10-11 "CONNECTOR-2-1" "unknown" 5750 19850 0 top
+D3-10-12 "CONNECTOR-2-1" "unknown" 5750 21350 0 top
+D3-10-13 "CONNECTOR-2-1" "unknown" 5750 22850 0 top
+D3-10-14 "CONNECTOR-2-1" "unknown" 5750 24350 0 top
+D3-11-0 "CONNECTOR-2-1" "unknown" 6250 3350 0 top
+D3-11-1 "CONNECTOR-2-1" "unknown" 6250 4850 0 top
+D3-11-2 "CONNECTOR-2-1" "unknown" 6250 6350 0 top
+D3-11-3 "CONNECTOR-2-1" "unknown" 6250 7850 0 top
+D3-11-4 "CONNECTOR-2-1" "unknown" 6250 9350 0 top
+D3-11-5 "CONNECTOR-2-1" "unknown" 6250 10850 0 top
+D3-11-6 "CONNECTOR-2-1" "unknown" 6250 12350 0 top
+D3-11-7 "CONNECTOR-2-1" "unknown" 6250 13850 0 top
+D3-11-8 "CONNECTOR-2-1" "unknown" 6250 15350 0 top
+D3-11-9 "CONNECTOR-2-1" "unknown" 6250 16850 0 top
+D3-11-10 "CONNECTOR-2-1" "unknown" 6250 18350 0 top
+D3-11-11 "CONNECTOR-2-1" "unknown" 6250 19850 0 top
+D3-11-12 "CONNECTOR-2-1" "unknown" 6250 21350 0 top
+D3-11-13 "CONNECTOR-2-1" "unknown" 6250 22850 0 top
+D3-11-14 "CONNECTOR-2-1" "unknown" 6250 24350 0 top
+D3-12-0 "CONNECTOR-2-1" "unknown" 6750 3350 0 top
+D3-12-1 "CONNECTOR-2-1" "unknown" 6750 4850 0 top
+D3-12-2 "CONNECTOR-2-1" "unknown" 6750 6350 0 top
+D3-12-3 "CONNECTOR-2-1" "unknown" 6750 7850 0 top
+D3-12-4 "CONNECTOR-2-1" "unknown" 6750 9350 0 top
+D3-12-5 "CONNECTOR-2-1" "unknown" 6750 10850 0 top
+D3-12-6 "CONNECTOR-2-1" "unknown" 6750 12350 0 top
+D3-12-7 "CONNECTOR-2-1" "unknown" 6750 13850 0 top
+D3-12-8 "CONNECTOR-2-1" "unknown" 6750 15350 0 top
+D3-12-9 "CONNECTOR-2-1" "unknown" 6750 16850 0 top
+D3-12-10 "CONNECTOR-2-1" "unknown" 6750 18350 0 top
+D3-12-11 "CONNECTOR-2-1" "unknown" 6750 19850 0 top
+D3-12-12 "CONNECTOR-2-1" "unknown" 6750 21350 0 top
+D3-12-13 "CONNECTOR-2-1" "unknown" 6750 22850 0 top
+D3-12-14 "CONNECTOR-2-1" "unknown" 6750 24350 0 top
+D3-13-0 "CONNECTOR-2-1" "unknown" 7250 3350 0 top
+D3-13-1 "CONNECTOR-2-1" "unknown" 7250 4850 0 top
+D3-13-2 "CONNECTOR-2-1" "unknown" 7250 6350 0 top
+D3-13-3 "CONNECTOR-2-1" "unknown" 7250 7850 0 top
+D3-13-4 "CONNECTOR-2-1" "unknown" 7250 9350 0 top
+D3-13-5 "CONNECTOR-2-1" "unknown" 7250 10850 0 top
+D3-13-6 "CONNECTOR-2-1" "unknown" 7250 12350 0 top
+D3-13-7 "CONNECTOR-2-1" "unknown" 7250 13850 0 top
+D3-13-8 "CONNECTOR-2-1" "unknown" 7250 15350 0 top
+D3-13-9 "CONNECTOR-2-1" "unknown" 7250 16850 0 top
+D3-13-10 "CONNECTOR-2-1" "unknown" 7250 18350 0 top
+D3-13-11 "CONNECTOR-2-1" "unknown" 7250 19850 0 top
+D3-13-12 "CONNECTOR-2-1" "unknown" 7250 21350 0 top
+D3-13-13 "CONNECTOR-2-1" "unknown" 7250 22850 0 top
+D3-13-14 "CONNECTOR-2-1" "unknown" 7250 24350 0 top
+D3-14-0 "CONNECTOR-2-1" "unknown" 7750 3350 0 top
+D3-14-1 "CONNECTOR-2-1" "unknown" 7750 4850 0 top
+D3-14-2 "CONNECTOR-2-1" "unknown" 7750 6350 0 top
+D3-14-3 "CONNECTOR-2-1" "unknown" 7750 7850 0 top
+D3-14-4 "CONNECTOR-2-1" "unknown" 7750 9350 0 top
+D3-14-5 "CONNECTOR-2-1" "unknown" 7750 10850 0 top
+D3-14-6 "CONNECTOR-2-1" "unknown" 7750 12350 0 top
+D3-14-7 "CONNECTOR-2-1" "unknown" 7750 13850 0 top
+D3-14-8 "CONNECTOR-2-1" "unknown" 7750 15350 0 top
+D3-14-9 "CONNECTOR-2-1" "unknown" 7750 16850 0 top
+D3-14-10 "CONNECTOR-2-1" "unknown" 7750 18350 0 top
+D3-14-11 "CONNECTOR-2-1" "unknown" 7750 19850 0 top
+D3-14-12 "CONNECTOR-2-1" "unknown" 7750 21350 0 top
+D3-14-13 "CONNECTOR-2-1" "unknown" 7750 22850 0 top
+D3-14-14 "CONNECTOR-2-1" "unknown" 7750 24350 0 top
+U4-0-0 "SO16" "unknown" 1500.00 3525.00 90 bottom
+U4-0-1 "SO16" "unknown" 1500 5025 90 bottom
+U4-0-2 "SO16" "unknown" 1500 6525 90 bottom
+U4-0-3 "SO16" "unknown" 1500 8025 90 bottom
+U4-0-4 "SO16" "unknown" 1500 9525 90 bottom
+U4-0-5 "SO16" "unknown" 1500 11025 90 bottom
+U4-0-6 "SO16" "unknown" 1500 12525 90 bottom
+U4-0-7 "SO16" "unknown" 1500 14025 90 bottom
+U4-0-8 "SO16" "unknown" 1500 15525 90 bottom
+U4-0-9 "SO16" "unknown" 1500 17025 90 bottom
+U4-0-10 "SO16" "unknown" 1500 18525 90 bottom
+U4-0-11 "SO16" "unknown" 1500 20025 90 bottom
+U4-0-12 "SO16" "unknown" 1500 21525 90 bottom
+U4-0-13 "SO16" "unknown" 1500 23025 90 bottom
+U4-0-14 "SO16" "unknown" 1500 24525 90 bottom
+U4-1-0 "SO16" "unknown" 2000 3525 90 bottom
+U4-1-1 "SO16" "unknown" 2000 5025 90 bottom
+U4-1-2 "SO16" "unknown" 2000 6525 90 bottom
+U4-1-3 "SO16" "unknown" 2000 8025 90 bottom
+U4-1-4 "SO16" "unknown" 2000 9525 90 bottom
+U4-1-5 "SO16" "unknown" 2000 11025 90 bottom
+U4-1-6 "SO16" "unknown" 2000 12525 90 bottom
+U4-1-7 "SO16" "unknown" 2000 14025 90 bottom
+U4-1-8 "SO16" "unknown" 2000 15525 90 bottom
+U4-1-9 "SO16" "unknown" 2000 17025 90 bottom
+U4-1-10 "SO16" "unknown" 2000 18525 90 bottom
+U4-1-11 "SO16" "unknown" 2000 20025 90 bottom
+U4-1-12 "SO16" "unknown" 2000 21525 90 bottom
+U4-1-13 "SO16" "unknown" 2000 23025 90 bottom
+U4-1-14 "SO16" "unknown" 2000 24525 90 bottom
+U4-2-0 "SO16" "unknown" 2500 3525 90 bottom
+U4-2-1 "SO16" "unknown" 2500 5025 90 bottom
+U4-2-2 "SO16" "unknown" 2500 6525 90 bottom
+U4-2-3 "SO16" "unknown" 2500 8025 90 bottom
+U4-2-4 "SO16" "unknown" 2500 9525 90 bottom
+U4-2-5 "SO16" "unknown" 2500 11025 90 bottom
+U4-2-6 "SO16" "unknown" 2500 12525 90 bottom
+U4-2-7 "SO16" "unknown" 2500 14025 90 bottom
+U4-2-8 "SO16" "unknown" 2500 15525 90 bottom
+U4-2-9 "SO16" "unknown" 2500 17025 90 bottom
+U4-2-10 "SO16" "unknown" 2500 18525 90 bottom
+U4-2-11 "SO16" "unknown" 2500 20025 90 bottom
+U4-2-12 "SO16" "unknown" 2500 21525 90 bottom
+U4-2-13 "SO16" "unknown" 2500 23025 90 bottom
+U4-2-14 "SO16" "unknown" 2500 24525 90 bottom
+U4-3-0 "SO16" "unknown" 3000 3525 90 bottom
+U4-3-1 "SO16" "unknown" 3000 5025 90 bottom
+U4-3-2 "SO16" "unknown" 3000 6525 90 bottom
+U4-3-3 "SO16" "unknown" 3000 8025 90 bottom
+U4-3-4 "SO16" "unknown" 3000 9525 90 bottom
+U4-3-5 "SO16" "unknown" 3000 11025 90 bottom
+U4-3-6 "SO16" "unknown" 3000 12525 90 bottom
+U4-3-7 "SO16" "unknown" 3000 14025 90 bottom
+U4-3-8 "SO16" "unknown" 3000 15525 90 bottom
+U4-3-9 "SO16" "unknown" 3000 17025 90 bottom
+U4-3-10 "SO16" "unknown" 3000 18525 90 bottom
+U4-3-11 "SO16" "unknown" 3000 20025 90 bottom
+U4-3-12 "SO16" "unknown" 3000 21525 90 bottom
+U4-3-13 "SO16" "unknown" 3000 23025 90 bottom
+U4-3-14 "SO16" "unknown" 3000 24525 90 bottom
+U4-4-0 "SO16" "unknown" 3500 3525 90 bottom
+U4-4-1 "SO16" "unknown" 3500 5025 90 bottom
+U4-4-2 "SO16" "unknown" 3500 6525 90 bottom
+U4-4-3 "SO16" "unknown" 3500 8025 90 bottom
+U4-4-4 "SO16" "unknown" 3500 9525 90 bottom
+U4-4-5 "SO16" "unknown" 3500 11025 90 bottom
+U4-4-6 "SO16" "unknown" 3500 12525 90 bottom
+U4-4-7 "SO16" "unknown" 3500 14025 90 bottom
+U4-4-8 "SO16" "unknown" 3500 15525 90 bottom
+U4-4-9 "SO16" "unknown" 3500 17025 90 bottom
+U4-4-10 "SO16" "unknown" 3500 18525 90 bottom
+U4-4-11 "SO16" "unknown" 3500 20025 90 bottom
+U4-4-12 "SO16" "unknown" 3500 21525 90 bottom
+U4-4-13 "SO16" "unknown" 3500 23025 90 bottom
+U4-4-14 "SO16" "unknown" 3500 24525 90 bottom
+U4-5-0 "SO16" "unknown" 4000 3525 90 bottom
+U4-5-1 "SO16" "unknown" 4000 5025 90 bottom
+U4-5-2 "SO16" "unknown" 4000 6525 90 bottom
+U4-5-3 "SO16" "unknown" 4000 8025 90 bottom
+U4-5-4 "SO16" "unknown" 4000 9525 90 bottom
+U4-5-5 "SO16" "unknown" 4000 11025 90 bottom
+U4-5-6 "SO16" "unknown" 4000 12525 90 bottom
+U4-5-7 "SO16" "unknown" 4000 14025 90 bottom
+U4-5-8 "SO16" "unknown" 4000 15525 90 bottom
+U4-5-9 "SO16" "unknown" 4000 17025 90 bottom
+U4-5-10 "SO16" "unknown" 4000 18525 90 bottom
+U4-5-11 "SO16" "unknown" 4000 20025 90 bottom
+U4-5-12 "SO16" "unknown" 4000 21525 90 bottom
+U4-5-13 "SO16" "unknown" 4000 23025 90 bottom
+U4-5-14 "SO16" "unknown" 4000 24525 90 bottom
+U4-6-0 "SO16" "unknown" 4500 3525 90 bottom
+U4-6-1 "SO16" "unknown" 4500 5025 90 bottom
+U4-6-2 "SO16" "unknown" 4500 6525 90 bottom
+U4-6-3 "SO16" "unknown" 4500 8025 90 bottom
+U4-6-4 "SO16" "unknown" 4500 9525 90 bottom
+U4-6-5 "SO16" "unknown" 4500 11025 90 bottom
+U4-6-6 "SO16" "unknown" 4500 12525 90 bottom
+U4-6-7 "SO16" "unknown" 4500 14025 90 bottom
+U4-6-8 "SO16" "unknown" 4500 15525 90 bottom
+U4-6-9 "SO16" "unknown" 4500 17025 90 bottom
+U4-6-10 "SO16" "unknown" 4500 18525 90 bottom
+U4-6-11 "SO16" "unknown" 4500 20025 90 bottom
+U4-6-12 "SO16" "unknown" 4500 21525 90 bottom
+U4-6-13 "SO16" "unknown" 4500 23025 90 bottom
+U4-6-14 "SO16" "unknown" 4500 24525 90 bottom
+U4-7-0 "SO16" "unknown" 5000 3525 90 bottom
+U4-7-1 "SO16" "unknown" 5000 5025 90 bottom
+U4-7-2 "SO16" "unknown" 5000 6525 90 bottom
+U4-7-3 "SO16" "unknown" 5000 8025 90 bottom
+U4-7-4 "SO16" "unknown" 5000 9525 90 bottom
+U4-7-5 "SO16" "unknown" 5000 11025 90 bottom
+U4-7-6 "SO16" "unknown" 5000 12525 90 bottom
+U4-7-7 "SO16" "unknown" 5000 14025 90 bottom
+U4-7-8 "SO16" "unknown" 5000 15525 90 bottom
+U4-7-9 "SO16" "unknown" 5000 17025 90 bottom
+U4-7-10 "SO16" "unknown" 5000 18525 90 bottom
+U4-7-11 "SO16" "unknown" 5000 20025 90 bottom
+U4-7-12 "SO16" "unknown" 5000 21525 90 bottom
+U4-7-13 "SO16" "unknown" 5000 23025 90 bottom
+U4-7-14 "SO16" "unknown" 5000 24525 90 bottom
+U4-8-0 "SO16" "unknown" 5500 3525 90 bottom
+U4-8-1 "SO16" "unknown" 5500 5025 90 bottom
+U4-8-2 "SO16" "unknown" 5500 6525 90 bottom
+U4-8-3 "SO16" "unknown" 5500 8025 90 bottom
+U4-8-4 "SO16" "unknown" 5500 9525 90 bottom
+U4-8-5 "SO16" "unknown" 5500 11025 90 bottom
+U4-8-6 "SO16" "unknown" 5500 12525 90 bottom
+U4-8-7 "SO16" "unknown" 5500 14025 90 bottom
+U4-8-8 "SO16" "unknown" 5500 15525 90 bottom
+U4-8-9 "SO16" "unknown" 5500 17025 90 bottom
+U4-8-10 "SO16" "unknown" 5500 18525 90 bottom
+U4-8-11 "SO16" "unknown" 5500 20025 90 bottom
+U4-8-12 "SO16" "unknown" 5500 21525 90 bottom
+U4-8-13 "SO16" "unknown" 5500 23025 90 bottom
+U4-8-14 "SO16" "unknown" 5500 24525 90 bottom
+U4-9-0 "SO16" "unknown" 6000 3525 90 bottom
+U4-9-1 "SO16" "unknown" 6000 5025 90 bottom
+U4-9-2 "SO16" "unknown" 6000 6525 90 bottom
+U4-9-3 "SO16" "unknown" 6000 8025 90 bottom
+U4-9-4 "SO16" "unknown" 6000 9525 90 bottom
+U4-9-5 "SO16" "unknown" 6000 11025 90 bottom
+U4-9-6 "SO16" "unknown" 6000 12525 90 bottom
+U4-9-7 "SO16" "unknown" 6000 14025 90 bottom
+U4-9-8 "SO16" "unknown" 6000 15525 90 bottom
+U4-9-9 "SO16" "unknown" 6000 17025 90 bottom
+U4-9-10 "SO16" "unknown" 6000 18525 90 bottom
+U4-9-11 "SO16" "unknown" 6000 20025 90 bottom
+U4-9-12 "SO16" "unknown" 6000 21525 90 bottom
+U4-9-13 "SO16" "unknown" 6000 23025 90 bottom
+U4-9-14 "SO16" "unknown" 6000 24525 90 bottom
+U4-10-0 "SO16" "unknown" 6500 3525 90 bottom
+U4-10-1 "SO16" "unknown" 6500 5025 90 bottom
+U4-10-2 "SO16" "unknown" 6500 6525 90 bottom
+U4-10-3 "SO16" "unknown" 6500 8025 90 bottom
+U4-10-4 "SO16" "unknown" 6500 9525 90 bottom
+U4-10-5 "SO16" "unknown" 6500 11025 90 bottom
+U4-10-6 "SO16" "unknown" 6500 12525 90 bottom
+U4-10-7 "SO16" "unknown" 6500 14025 90 bottom
+U4-10-8 "SO16" "unknown" 6500 15525 90 bottom
+U4-10-9 "SO16" "unknown" 6500 17025 90 bottom
+U4-10-10 "SO16" "unknown" 6500 18525 90 bottom
+U4-10-11 "SO16" "unknown" 6500 20025 90 bottom
+U4-10-12 "SO16" "unknown" 6500 21525 90 bottom
+U4-10-13 "SO16" "unknown" 6500 23025 90 bottom
+U4-10-14 "SO16" "unknown" 6500 24525 90 bottom
+U4-11-0 "SO16" "unknown" 7000 3525 90 bottom
+U4-11-1 "SO16" "unknown" 7000 5025 90 bottom
+U4-11-2 "SO16" "unknown" 7000 6525 90 bottom
+U4-11-3 "SO16" "unknown" 7000 8025 90 bottom
+U4-11-4 "SO16" "unknown" 7000 9525 90 bottom
+U4-11-5 "SO16" "unknown" 7000 11025 90 bottom
+U4-11-6 "SO16" "unknown" 7000 12525 90 bottom
+U4-11-7 "SO16" "unknown" 7000 14025 90 bottom
+U4-11-8 "SO16" "unknown" 7000 15525 90 bottom
+U4-11-9 "SO16" "unknown" 7000 17025 90 bottom
+U4-11-10 "SO16" "unknown" 7000 18525 90 bottom
+U4-11-11 "SO16" "unknown" 7000 20025 90 bottom
+U4-11-12 "SO16" "unknown" 7000 21525 90 bottom
+U4-11-13 "SO16" "unknown" 7000 23025 90 bottom
+U4-11-14 "SO16" "unknown" 7000 24525 90 bottom
+U4-12-0 "SO16" "unknown" 7500 3525 90 bottom
+U4-12-1 "SO16" "unknown" 7500 5025 90 bottom
+U4-12-2 "SO16" "unknown" 7500 6525 90 bottom
+U4-12-3 "SO16" "unknown" 7500 8025 90 bottom
+U4-12-4 "SO16" "unknown" 7500 9525 90 bottom
+U4-12-5 "SO16" "unknown" 7500 11025 90 bottom
+U4-12-6 "SO16" "unknown" 7500 12525 90 bottom
+U4-12-7 "SO16" "unknown" 7500 14025 90 bottom
+U4-12-8 "SO16" "unknown" 7500 15525 90 bottom
+U4-12-9 "SO16" "unknown" 7500 17025 90 bottom
+U4-12-10 "SO16" "unknown" 7500 18525 90 bottom
+U4-12-11 "SO16" "unknown" 7500 20025 90 bottom
+U4-12-12 "SO16" "unknown" 7500 21525 90 bottom
+U4-12-13 "SO16" "unknown" 7500 23025 90 bottom
+U4-12-14 "SO16" "unknown" 7500 24525 90 bottom
+U4-13-0 "SO16" "unknown" 8000 3525 90 bottom
+U4-13-1 "SO16" "unknown" 8000 5025 90 bottom
+U4-13-2 "SO16" "unknown" 8000 6525 90 bottom
+U4-13-3 "SO16" "unknown" 8000 8025 90 bottom
+U4-13-4 "SO16" "unknown" 8000 9525 90 bottom
+U4-13-5 "SO16" "unknown" 8000 11025 90 bottom
+U4-13-6 "SO16" "unknown" 8000 12525 90 bottom
+U4-13-7 "SO16" "unknown" 8000 14025 90 bottom
+U4-13-8 "SO16" "unknown" 8000 15525 90 bottom
+U4-13-9 "SO16" "unknown" 8000 17025 90 bottom
+U4-13-10 "SO16" "unknown" 8000 18525 90 bottom
+U4-13-11 "SO16" "unknown" 8000 20025 90 bottom
+U4-13-12 "SO16" "unknown" 8000 21525 90 bottom
+U4-13-13 "SO16" "unknown" 8000 23025 90 bottom
+U4-13-14 "SO16" "unknown" 8000 24525 90 bottom
+U4-14-0 "SO16" "unknown" 8500 3525 90 bottom
+U4-14-1 "SO16" "unknown" 8500 5025 90 bottom
+U4-14-2 "SO16" "unknown" 8500 6525 90 bottom
+U4-14-3 "SO16" "unknown" 8500 8025 90 bottom
+U4-14-4 "SO16" "unknown" 8500 9525 90 bottom
+U4-14-5 "SO16" "unknown" 8500 11025 90 bottom
+U4-14-6 "SO16" "unknown" 8500 12525 90 bottom
+U4-14-7 "SO16" "unknown" 8500 14025 90 bottom
+U4-14-8 "SO16" "unknown" 8500 15525 90 bottom
+U4-14-9 "SO16" "unknown" 8500 17025 90 bottom
+U4-14-10 "SO16" "unknown" 8500 18525 90 bottom
+U4-14-11 "SO16" "unknown" 8500 20025 90 bottom
+U4-14-12 "SO16" "unknown" 8500 21525 90 bottom
+U4-14-13 "SO16" "unknown" 8500 23025 90 bottom
+U4-14-14 "SO16" "unknown" 8500 24525 90 bottom
+D1-0-0 "CONNECTOR-2-1" "unknown" 275.00 3350.00 0 top
+D1-0-1 "CONNECTOR-2-1" "unknown" 275 4850 0 top
+D1-0-2 "CONNECTOR-2-1" "unknown" 275 6350 0 top
+D1-0-3 "CONNECTOR-2-1" "unknown" 275 7850 0 top
+D1-0-4 "CONNECTOR-2-1" "unknown" 275 9350 0 top
+D1-0-5 "CONNECTOR-2-1" "unknown" 275 10850 0 top
+D1-0-6 "CONNECTOR-2-1" "unknown" 275 12350 0 top
+D1-0-7 "CONNECTOR-2-1" "unknown" 275 13850 0 top
+D1-0-8 "CONNECTOR-2-1" "unknown" 275 15350 0 top
+D1-0-9 "CONNECTOR-2-1" "unknown" 275 16850 0 top
+D1-0-10 "CONNECTOR-2-1" "unknown" 275 18350 0 top
+D1-0-11 "CONNECTOR-2-1" "unknown" 275 19850 0 top
+D1-0-12 "CONNECTOR-2-1" "unknown" 275 21350 0 top
+D1-0-13 "CONNECTOR-2-1" "unknown" 275 22850 0 top
+D1-0-14 "CONNECTOR-2-1" "unknown" 275 24350 0 top
+D1-1-0 "CONNECTOR-2-1" "unknown" 775 3350 0 top
+D1-1-1 "CONNECTOR-2-1" "unknown" 775 4850 0 top
+D1-1-2 "CONNECTOR-2-1" "unknown" 775 6350 0 top
+D1-1-3 "CONNECTOR-2-1" "unknown" 775 7850 0 top
+D1-1-4 "CONNECTOR-2-1" "unknown" 775 9350 0 top
+D1-1-5 "CONNECTOR-2-1" "unknown" 775 10850 0 top
+D1-1-6 "CONNECTOR-2-1" "unknown" 775 12350 0 top
+D1-1-7 "CONNECTOR-2-1" "unknown" 775 13850 0 top
+D1-1-8 "CONNECTOR-2-1" "unknown" 775 15350 0 top
+D1-1-9 "CONNECTOR-2-1" "unknown" 775 16850 0 top
+D1-1-10 "CONNECTOR-2-1" "unknown" 775 18350 0 top
+D1-1-11 "CONNECTOR-2-1" "unknown" 775 19850 0 top
+D1-1-12 "CONNECTOR-2-1" "unknown" 775 21350 0 top
+D1-1-13 "CONNECTOR-2-1" "unknown" 775 22850 0 top
+D1-1-14 "CONNECTOR-2-1" "unknown" 775 24350 0 top
+D1-2-0 "CONNECTOR-2-1" "unknown" 1275 3350 0 top
+D1-2-1 "CONNECTOR-2-1" "unknown" 1275 4850 0 top
+D1-2-2 "CONNECTOR-2-1" "unknown" 1275 6350 0 top
+D1-2-3 "CONNECTOR-2-1" "unknown" 1275 7850 0 top
+D1-2-4 "CONNECTOR-2-1" "unknown" 1275 9350 0 top
+D1-2-5 "CONNECTOR-2-1" "unknown" 1275 10850 0 top
+D1-2-6 "CONNECTOR-2-1" "unknown" 1275 12350 0 top
+D1-2-7 "CONNECTOR-2-1" "unknown" 1275 13850 0 top
+D1-2-8 "CONNECTOR-2-1" "unknown" 1275 15350 0 top
+D1-2-9 "CONNECTOR-2-1" "unknown" 1275 16850 0 top
+D1-2-10 "CONNECTOR-2-1" "unknown" 1275 18350 0 top
+D1-2-11 "CONNECTOR-2-1" "unknown" 1275 19850 0 top
+D1-2-12 "CONNECTOR-2-1" "unknown" 1275 21350 0 top
+D1-2-13 "CONNECTOR-2-1" "unknown" 1275 22850 0 top
+D1-2-14 "CONNECTOR-2-1" "unknown" 1275 24350 0 top
+D1-3-0 "CONNECTOR-2-1" "unknown" 1775 3350 0 top
+D1-3-1 "CONNECTOR-2-1" "unknown" 1775 4850 0 top
+D1-3-2 "CONNECTOR-2-1" "unknown" 1775 6350 0 top
+D1-3-3 "CONNECTOR-2-1" "unknown" 1775 7850 0 top
+D1-3-4 "CONNECTOR-2-1" "unknown" 1775 9350 0 top
+D1-3-5 "CONNECTOR-2-1" "unknown" 1775 10850 0 top
+D1-3-6 "CONNECTOR-2-1" "unknown" 1775 12350 0 top
+D1-3-7 "CONNECTOR-2-1" "unknown" 1775 13850 0 top
+D1-3-8 "CONNECTOR-2-1" "unknown" 1775 15350 0 top
+D1-3-9 "CONNECTOR-2-1" "unknown" 1775 16850 0 top
+D1-3-10 "CONNECTOR-2-1" "unknown" 1775 18350 0 top
+D1-3-11 "CONNECTOR-2-1" "unknown" 1775 19850 0 top
+D1-3-12 "CONNECTOR-2-1" "unknown" 1775 21350 0 top
+D1-3-13 "CONNECTOR-2-1" "unknown" 1775 22850 0 top
+D1-3-14 "CONNECTOR-2-1" "unknown" 1775 24350 0 top
+D1-4-0 "CONNECTOR-2-1" "unknown" 2275 3350 0 top
+D1-4-1 "CONNECTOR-2-1" "unknown" 2275 4850 0 top
+D1-4-2 "CONNECTOR-2-1" "unknown" 2275 6350 0 top
+D1-4-3 "CONNECTOR-2-1" "unknown" 2275 7850 0 top
+D1-4-4 "CONNECTOR-2-1" "unknown" 2275 9350 0 top
+D1-4-5 "CONNECTOR-2-1" "unknown" 2275 10850 0 top
+D1-4-6 "CONNECTOR-2-1" "unknown" 2275 12350 0 top
+D1-4-7 "CONNECTOR-2-1" "unknown" 2275 13850 0 top
+D1-4-8 "CONNECTOR-2-1" "unknown" 2275 15350 0 top
+D1-4-9 "CONNECTOR-2-1" "unknown" 2275 16850 0 top
+D1-4-10 "CONNECTOR-2-1" "unknown" 2275 18350 0 top
+D1-4-11 "CONNECTOR-2-1" "unknown" 2275 19850 0 top
+D1-4-12 "CONNECTOR-2-1" "unknown" 2275 21350 0 top
+D1-4-13 "CONNECTOR-2-1" "unknown" 2275 22850 0 top
+D1-4-14 "CONNECTOR-2-1" "unknown" 2275 24350 0 top
+D1-5-0 "CONNECTOR-2-1" "unknown" 2775 3350 0 top
+D1-5-1 "CONNECTOR-2-1" "unknown" 2775 4850 0 top
+D1-5-2 "CONNECTOR-2-1" "unknown" 2775 6350 0 top
+D1-5-3 "CONNECTOR-2-1" "unknown" 2775 7850 0 top
+D1-5-4 "CONNECTOR-2-1" "unknown" 2775 9350 0 top
+D1-5-5 "CONNECTOR-2-1" "unknown" 2775 10850 0 top
+D1-5-6 "CONNECTOR-2-1" "unknown" 2775 12350 0 top
+D1-5-7 "CONNECTOR-2-1" "unknown" 2775 13850 0 top
+D1-5-8 "CONNECTOR-2-1" "unknown" 2775 15350 0 top
+D1-5-9 "CONNECTOR-2-1" "unknown" 2775 16850 0 top
+D1-5-10 "CONNECTOR-2-1" "unknown" 2775 18350 0 top
+D1-5-11 "CONNECTOR-2-1" "unknown" 2775 19850 0 top
+D1-5-12 "CONNECTOR-2-1" "unknown" 2775 21350 0 top
+D1-5-13 "CONNECTOR-2-1" "unknown" 2775 22850 0 top
+D1-5-14 "CONNECTOR-2-1" "unknown" 2775 24350 0 top
+D1-6-0 "CONNECTOR-2-1" "unknown" 3275 3350 0 top
+D1-6-1 "CONNECTOR-2-1" "unknown" 3275 4850 0 top
+D1-6-2 "CONNECTOR-2-1" "unknown" 3275 6350 0 top
+D1-6-3 "CONNECTOR-2-1" "unknown" 3275 7850 0 top
+D1-6-4 "CONNECTOR-2-1" "unknown" 3275 9350 0 top
+D1-6-5 "CONNECTOR-2-1" "unknown" 3275 10850 0 top
+D1-6-6 "CONNECTOR-2-1" "unknown" 3275 12350 0 top
+D1-6-7 "CONNECTOR-2-1" "unknown" 3275 13850 0 top
+D1-6-8 "CONNECTOR-2-1" "unknown" 3275 15350 0 top
+D1-6-9 "CONNECTOR-2-1" "unknown" 3275 16850 0 top
+D1-6-10 "CONNECTOR-2-1" "unknown" 3275 18350 0 top
+D1-6-11 "CONNECTOR-2-1" "unknown" 3275 19850 0 top
+D1-6-12 "CONNECTOR-2-1" "unknown" 3275 21350 0 top
+D1-6-13 "CONNECTOR-2-1" "unknown" 3275 22850 0 top
+D1-6-14 "CONNECTOR-2-1" "unknown" 3275 24350 0 top
+D1-7-0 "CONNECTOR-2-1" "unknown" 3775 3350 0 top
+D1-7-1 "CONNECTOR-2-1" "unknown" 3775 4850 0 top
+D1-7-2 "CONNECTOR-2-1" "unknown" 3775 6350 0 top
+D1-7-3 "CONNECTOR-2-1" "unknown" 3775 7850 0 top
+D1-7-4 "CONNECTOR-2-1" "unknown" 3775 9350 0 top
+D1-7-5 "CONNECTOR-2-1" "unknown" 3775 10850 0 top
+D1-7-6 "CONNECTOR-2-1" "unknown" 3775 12350 0 top
+D1-7-7 "CONNECTOR-2-1" "unknown" 3775 13850 0 top
+D1-7-8 "CONNECTOR-2-1" "unknown" 3775 15350 0 top
+D1-7-9 "CONNECTOR-2-1" "unknown" 3775 16850 0 top
+D1-7-10 "CONNECTOR-2-1" "unknown" 3775 18350 0 top
+D1-7-11 "CONNECTOR-2-1" "unknown" 3775 19850 0 top
+D1-7-12 "CONNECTOR-2-1" "unknown" 3775 21350 0 top
+D1-7-13 "CONNECTOR-2-1" "unknown" 3775 22850 0 top
+D1-7-14 "CONNECTOR-2-1" "unknown" 3775 24350 0 top
+D1-8-0 "CONNECTOR-2-1" "unknown" 4275 3350 0 top
+D1-8-1 "CONNECTOR-2-1" "unknown" 4275 4850 0 top
+D1-8-2 "CONNECTOR-2-1" "unknown" 4275 6350 0 top
+D1-8-3 "CONNECTOR-2-1" "unknown" 4275 7850 0 top
+D1-8-4 "CONNECTOR-2-1" "unknown" 4275 9350 0 top
+D1-8-5 "CONNECTOR-2-1" "unknown" 4275 10850 0 top
+D1-8-6 "CONNECTOR-2-1" "unknown" 4275 12350 0 top
+D1-8-7 "CONNECTOR-2-1" "unknown" 4275 13850 0 top
+D1-8-8 "CONNECTOR-2-1" "unknown" 4275 15350 0 top
+D1-8-9 "CONNECTOR-2-1" "unknown" 4275 16850 0 top
+D1-8-10 "CONNECTOR-2-1" "unknown" 4275 18350 0 top
+D1-8-11 "CONNECTOR-2-1" "unknown" 4275 19850 0 top
+D1-8-12 "CONNECTOR-2-1" "unknown" 4275 21350 0 top
+D1-8-13 "CONNECTOR-2-1" "unknown" 4275 22850 0 top
+D1-8-14 "CONNECTOR-2-1" "unknown" 4275 24350 0 top
+D1-9-0 "CONNECTOR-2-1" "unknown" 4775 3350 0 top
+D1-9-1 "CONNECTOR-2-1" "unknown" 4775 4850 0 top
+D1-9-2 "CONNECTOR-2-1" "unknown" 4775 6350 0 top
+D1-9-3 "CONNECTOR-2-1" "unknown" 4775 7850 0 top
+D1-9-4 "CONNECTOR-2-1" "unknown" 4775 9350 0 top
+D1-9-5 "CONNECTOR-2-1" "unknown" 4775 10850 0 top
+D1-9-6 "CONNECTOR-2-1" "unknown" 4775 12350 0 top
+D1-9-7 "CONNECTOR-2-1" "unknown" 4775 13850 0 top
+D1-9-8 "CONNECTOR-2-1" "unknown" 4775 15350 0 top
+D1-9-9 "CONNECTOR-2-1" "unknown" 4775 16850 0 top
+D1-9-10 "CONNECTOR-2-1" "unknown" 4775 18350 0 top
+D1-9-11 "CONNECTOR-2-1" "unknown" 4775 19850 0 top
+D1-9-12 "CONNECTOR-2-1" "unknown" 4775 21350 0 top
+D1-9-13 "CONNECTOR-2-1" "unknown" 4775 22850 0 top
+D1-9-14 "CONNECTOR-2-1" "unknown" 4775 24350 0 top
+D1-10-0 "CONNECTOR-2-1" "unknown" 5275 3350 0 top
+D1-10-1 "CONNECTOR-2-1" "unknown" 5275 4850 0 top
+D1-10-2 "CONNECTOR-2-1" "unknown" 5275 6350 0 top
+D1-10-3 "CONNECTOR-2-1" "unknown" 5275 7850 0 top
+D1-10-4 "CONNECTOR-2-1" "unknown" 5275 9350 0 top
+D1-10-5 "CONNECTOR-2-1" "unknown" 5275 10850 0 top
+D1-10-6 "CONNECTOR-2-1" "unknown" 5275 12350 0 top
+D1-10-7 "CONNECTOR-2-1" "unknown" 5275 13850 0 top
+D1-10-8 "CONNECTOR-2-1" "unknown" 5275 15350 0 top
+D1-10-9 "CONNECTOR-2-1" "unknown" 5275 16850 0 top
+D1-10-10 "CONNECTOR-2-1" "unknown" 5275 18350 0 top
+D1-10-11 "CONNECTOR-2-1" "unknown" 5275 19850 0 top
+D1-10-12 "CONNECTOR-2-1" "unknown" 5275 21350 0 top
+D1-10-13 "CONNECTOR-2-1" "unknown" 5275 22850 0 top
+D1-10-14 "CONNECTOR-2-1" "unknown" 5275 24350 0 top
+D1-11-0 "CONNECTOR-2-1" "unknown" 5775 3350 0 top
+D1-11-1 "CONNECTOR-2-1" "unknown" 5775 4850 0 top
+D1-11-2 "CONNECTOR-2-1" "unknown" 5775 6350 0 top
+D1-11-3 "CONNECTOR-2-1" "unknown" 5775 7850 0 top
+D1-11-4 "CONNECTOR-2-1" "unknown" 5775 9350 0 top
+D1-11-5 "CONNECTOR-2-1" "unknown" 5775 10850 0 top
+D1-11-6 "CONNECTOR-2-1" "unknown" 5775 12350 0 top
+D1-11-7 "CONNECTOR-2-1" "unknown" 5775 13850 0 top
+D1-11-8 "CONNECTOR-2-1" "unknown" 5775 15350 0 top
+D1-11-9 "CONNECTOR-2-1" "unknown" 5775 16850 0 top
+D1-11-10 "CONNECTOR-2-1" "unknown" 5775 18350 0 top
+D1-11-11 "CONNECTOR-2-1" "unknown" 5775 19850 0 top
+D1-11-12 "CONNECTOR-2-1" "unknown" 5775 21350 0 top
+D1-11-13 "CONNECTOR-2-1" "unknown" 5775 22850 0 top
+D1-11-14 "CONNECTOR-2-1" "unknown" 5775 24350 0 top
+D1-12-0 "CONNECTOR-2-1" "unknown" 6275 3350 0 top
+D1-12-1 "CONNECTOR-2-1" "unknown" 6275 4850 0 top
+D1-12-2 "CONNECTOR-2-1" "unknown" 6275 6350 0 top
+D1-12-3 "CONNECTOR-2-1" "unknown" 6275 7850 0 top
+D1-12-4 "CONNECTOR-2-1" "unknown" 6275 9350 0 top
+D1-12-5 "CONNECTOR-2-1" "unknown" 6275 10850 0 top
+D1-12-6 "CONNECTOR-2-1" "unknown" 6275 12350 0 top
+D1-12-7 "CONNECTOR-2-1" "unknown" 6275 13850 0 top
+D1-12-8 "CONNECTOR-2-1" "unknown" 6275 15350 0 top
+D1-12-9 "CONNECTOR-2-1" "unknown" 6275 16850 0 top
+D1-12-10 "CONNECTOR-2-1" "unknown" 6275 18350 0 top
+D1-12-11 "CONNECTOR-2-1" "unknown" 6275 19850 0 top
+D1-12-12 "CONNECTOR-2-1" "unknown" 6275 21350 0 top
+D1-12-13 "CONNECTOR-2-1" "unknown" 6275 22850 0 top
+D1-12-14 "CONNECTOR-2-1" "unknown" 6275 24350 0 top
+D1-13-0 "CONNECTOR-2-1" "unknown" 6775 3350 0 top
+D1-13-1 "CONNECTOR-2-1" "unknown" 6775 4850 0 top
+D1-13-2 "CONNECTOR-2-1" "unknown" 6775 6350 0 top
+D1-13-3 "CONNECTOR-2-1" "unknown" 6775 7850 0 top
+D1-13-4 "CONNECTOR-2-1" "unknown" 6775 9350 0 top
+D1-13-5 "CONNECTOR-2-1" "unknown" 6775 10850 0 top
+D1-13-6 "CONNECTOR-2-1" "unknown" 6775 12350 0 top
+D1-13-7 "CONNECTOR-2-1" "unknown" 6775 13850 0 top
+D1-13-8 "CONNECTOR-2-1" "unknown" 6775 15350 0 top
+D1-13-9 "CONNECTOR-2-1" "unknown" 6775 16850 0 top
+D1-13-10 "CONNECTOR-2-1" "unknown" 6775 18350 0 top
+D1-13-11 "CONNECTOR-2-1" "unknown" 6775 19850 0 top
+D1-13-12 "CONNECTOR-2-1" "unknown" 6775 21350 0 top
+D1-13-13 "CONNECTOR-2-1" "unknown" 6775 22850 0 top
+D1-13-14 "CONNECTOR-2-1" "unknown" 6775 24350 0 top
+D1-14-0 "CONNECTOR-2-1" "unknown" 7275 3350 0 top
+D1-14-1 "CONNECTOR-2-1" "unknown" 7275 4850 0 top
+D1-14-2 "CONNECTOR-2-1" "unknown" 7275 6350 0 top
+D1-14-3 "CONNECTOR-2-1" "unknown" 7275 7850 0 top
+D1-14-4 "CONNECTOR-2-1" "unknown" 7275 9350 0 top
+D1-14-5 "CONNECTOR-2-1" "unknown" 7275 10850 0 top
+D1-14-6 "CONNECTOR-2-1" "unknown" 7275 12350 0 top
+D1-14-7 "CONNECTOR-2-1" "unknown" 7275 13850 0 top
+D1-14-8 "CONNECTOR-2-1" "unknown" 7275 15350 0 top
+D1-14-9 "CONNECTOR-2-1" "unknown" 7275 16850 0 top
+D1-14-10 "CONNECTOR-2-1" "unknown" 7275 18350 0 top
+D1-14-11 "CONNECTOR-2-1" "unknown" 7275 19850 0 top
+D1-14-12 "CONNECTOR-2-1" "unknown" 7275 21350 0 top
+D1-14-13 "CONNECTOR-2-1" "unknown" 7275 22850 0 top
+D1-14-14 "CONNECTOR-2-1" "unknown" 7275 24350 0 top
+R3-0-0 "1206" "unknown" 600.00 3375.00 90 bottom
+R3-0-1 "1206" "unknown" 600 4875 90 bottom
+R3-0-2 "1206" "unknown" 600 6375 90 bottom
+R3-0-3 "1206" "unknown" 600 7875 90 bottom
+R3-0-4 "1206" "unknown" 600 9375 90 bottom
+R3-0-5 "1206" "unknown" 600 10875 90 bottom
+R3-0-6 "1206" "unknown" 600 12375 90 bottom
+R3-0-7 "1206" "unknown" 600 13875 90 bottom
+R3-0-8 "1206" "unknown" 600 15375 90 bottom
+R3-0-9 "1206" "unknown" 600 16875 90 bottom
+R3-0-10 "1206" "unknown" 600 18375 90 bottom
+R3-0-11 "1206" "unknown" 600 19875 90 bottom
+R3-0-12 "1206" "unknown" 600 21375 90 bottom
+R3-0-13 "1206" "unknown" 600 22875 90 bottom
+R3-0-14 "1206" "unknown" 600 24375 90 bottom
+R3-1-0 "1206" "unknown" 1100 3375 90 bottom
+R3-1-1 "1206" "unknown" 1100 4875 90 bottom
+R3-1-2 "1206" "unknown" 1100 6375 90 bottom
+R3-1-3 "1206" "unknown" 1100 7875 90 bottom
+R3-1-4 "1206" "unknown" 1100 9375 90 bottom
+R3-1-5 "1206" "unknown" 1100 10875 90 bottom
+R3-1-6 "1206" "unknown" 1100 12375 90 bottom
+R3-1-7 "1206" "unknown" 1100 13875 90 bottom
+R3-1-8 "1206" "unknown" 1100 15375 90 bottom
+R3-1-9 "1206" "unknown" 1100 16875 90 bottom
+R3-1-10 "1206" "unknown" 1100 18375 90 bottom
+R3-1-11 "1206" "unknown" 1100 19875 90 bottom
+R3-1-12 "1206" "unknown" 1100 21375 90 bottom
+R3-1-13 "1206" "unknown" 1100 22875 90 bottom
+R3-1-14 "1206" "unknown" 1100 24375 90 bottom
+R3-2-0 "1206" "unknown" 1600 3375 90 bottom
+R3-2-1 "1206" "unknown" 1600 4875 90 bottom
+R3-2-2 "1206" "unknown" 1600 6375 90 bottom
+R3-2-3 "1206" "unknown" 1600 7875 90 bottom
+R3-2-4 "1206" "unknown" 1600 9375 90 bottom
+R3-2-5 "1206" "unknown" 1600 10875 90 bottom
+R3-2-6 "1206" "unknown" 1600 12375 90 bottom
+R3-2-7 "1206" "unknown" 1600 13875 90 bottom
+R3-2-8 "1206" "unknown" 1600 15375 90 bottom
+R3-2-9 "1206" "unknown" 1600 16875 90 bottom
+R3-2-10 "1206" "unknown" 1600 18375 90 bottom
+R3-2-11 "1206" "unknown" 1600 19875 90 bottom
+R3-2-12 "1206" "unknown" 1600 21375 90 bottom
+R3-2-13 "1206" "unknown" 1600 22875 90 bottom
+R3-2-14 "1206" "unknown" 1600 24375 90 bottom
+R3-3-0 "1206" "unknown" 2100 3375 90 bottom
+R3-3-1 "1206" "unknown" 2100 4875 90 bottom
+R3-3-2 "1206" "unknown" 2100 6375 90 bottom
+R3-3-3 "1206" "unknown" 2100 7875 90 bottom
+R3-3-4 "1206" "unknown" 2100 9375 90 bottom
+R3-3-5 "1206" "unknown" 2100 10875 90 bottom
+R3-3-6 "1206" "unknown" 2100 12375 90 bottom
+R3-3-7 "1206" "unknown" 2100 13875 90 bottom
+R3-3-8 "1206" "unknown" 2100 15375 90 bottom
+R3-3-9 "1206" "unknown" 2100 16875 90 bottom
+R3-3-10 "1206" "unknown" 2100 18375 90 bottom
+R3-3-11 "1206" "unknown" 2100 19875 90 bottom
+R3-3-12 "1206" "unknown" 2100 21375 90 bottom
+R3-3-13 "1206" "unknown" 2100 22875 90 bottom
+R3-3-14 "1206" "unknown" 2100 24375 90 bottom
+R3-4-0 "1206" "unknown" 2600 3375 90 bottom
+R3-4-1 "1206" "unknown" 2600 4875 90 bottom
+R3-4-2 "1206" "unknown" 2600 6375 90 bottom
+R3-4-3 "1206" "unknown" 2600 7875 90 bottom
+R3-4-4 "1206" "unknown" 2600 9375 90 bottom
+R3-4-5 "1206" "unknown" 2600 10875 90 bottom
+R3-4-6 "1206" "unknown" 2600 12375 90 bottom
+R3-4-7 "1206" "unknown" 2600 13875 90 bottom
+R3-4-8 "1206" "unknown" 2600 15375 90 bottom
+R3-4-9 "1206" "unknown" 2600 16875 90 bottom
+R3-4-10 "1206" "unknown" 2600 18375 90 bottom
+R3-4-11 "1206" "unknown" 2600 19875 90 bottom
+R3-4-12 "1206" "unknown" 2600 21375 90 bottom
+R3-4-13 "1206" "unknown" 2600 22875 90 bottom
+R3-4-14 "1206" "unknown" 2600 24375 90 bottom
+R3-5-0 "1206" "unknown" 3100 3375 90 bottom
+R3-5-1 "1206" "unknown" 3100 4875 90 bottom
+R3-5-2 "1206" "unknown" 3100 6375 90 bottom
+R3-5-3 "1206" "unknown" 3100 7875 90 bottom
+R3-5-4 "1206" "unknown" 3100 9375 90 bottom
+R3-5-5 "1206" "unknown" 3100 10875 90 bottom
+R3-5-6 "1206" "unknown" 3100 12375 90 bottom
+R3-5-7 "1206" "unknown" 3100 13875 90 bottom
+R3-5-8 "1206" "unknown" 3100 15375 90 bottom
+R3-5-9 "1206" "unknown" 3100 16875 90 bottom
+R3-5-10 "1206" "unknown" 3100 18375 90 bottom
+R3-5-11 "1206" "unknown" 3100 19875 90 bottom
+R3-5-12 "1206" "unknown" 3100 21375 90 bottom
+R3-5-13 "1206" "unknown" 3100 22875 90 bottom
+R3-5-14 "1206" "unknown" 3100 24375 90 bottom
+R3-6-0 "1206" "unknown" 3600 3375 90 bottom
+R3-6-1 "1206" "unknown" 3600 4875 90 bottom
+R3-6-2 "1206" "unknown" 3600 6375 90 bottom
+R3-6-3 "1206" "unknown" 3600 7875 90 bottom
+R3-6-4 "1206" "unknown" 3600 9375 90 bottom
+R3-6-5 "1206" "unknown" 3600 10875 90 bottom
+R3-6-6 "1206" "unknown" 3600 12375 90 bottom
+R3-6-7 "1206" "unknown" 3600 13875 90 bottom
+R3-6-8 "1206" "unknown" 3600 15375 90 bottom
+R3-6-9 "1206" "unknown" 3600 16875 90 bottom
+R3-6-10 "1206" "unknown" 3600 18375 90 bottom
+R3-6-11 "1206" "unknown" 3600 19875 90 bottom
+R3-6-12 "1206" "unknown" 3600 21375 90 bottom
+R3-6-13 "1206" "unknown" 3600 22875 90 bottom
+R3-6-14 "1206" "unknown" 3600 24375 90 bottom
+R3-7-0 "1206" "unknown" 4100 3375 90 bottom
+R3-7-1 "1206" "unknown" 4100 4875 90 bottom
+R3-7-2 "1206" "unknown" 4100 6375 90 bottom
+R3-7-3 "1206" "unknown" 4100 7875 90 bottom
+R3-7-4 "1206" "unknown" 4100 9375 90 bottom
+R3-7-5 "1206" "unknown" 4100 10875 90 bottom
+R3-7-6 "1206" "unknown" 4100 12375 90 bottom
+R3-7-7 "1206" "unknown" 4100 13875 90 bottom
+R3-7-8 "1206" "unknown" 4100 15375 90 bottom
+R3-7-9 "1206" "unknown" 4100 16875 90 bottom
+R3-7-10 "1206" "unknown" 4100 18375 90 bottom
+R3-7-11 "1206" "unknown" 4100 19875 90 bottom
+R3-7-12 "1206" "unknown" 4100 21375 90 bottom
+R3-7-13 "1206" "unknown" 4100 22875 90 bottom
+R3-7-14 "1206" "unknown" 4100 24375 90 bottom
+R3-8-0 "1206" "unknown" 4600 3375 90 bottom
+R3-8-1 "1206" "unknown" 4600 4875 90 bottom
+R3-8-2 "1206" "unknown" 4600 6375 90 bottom
+R3-8-3 "1206" "unknown" 4600 7875 90 bottom
+R3-8-4 "1206" "unknown" 4600 9375 90 bottom
+R3-8-5 "1206" "unknown" 4600 10875 90 bottom
+R3-8-6 "1206" "unknown" 4600 12375 90 bottom
+R3-8-7 "1206" "unknown" 4600 13875 90 bottom
+R3-8-8 "1206" "unknown" 4600 15375 90 bottom
+R3-8-9 "1206" "unknown" 4600 16875 90 bottom
+R3-8-10 "1206" "unknown" 4600 18375 90 bottom
+R3-8-11 "1206" "unknown" 4600 19875 90 bottom
+R3-8-12 "1206" "unknown" 4600 21375 90 bottom
+R3-8-13 "1206" "unknown" 4600 22875 90 bottom
+R3-8-14 "1206" "unknown" 4600 24375 90 bottom
+R3-9-0 "1206" "unknown" 5100 3375 90 bottom
+R3-9-1 "1206" "unknown" 5100 4875 90 bottom
+R3-9-2 "1206" "unknown" 5100 6375 90 bottom
+R3-9-3 "1206" "unknown" 5100 7875 90 bottom
+R3-9-4 "1206" "unknown" 5100 9375 90 bottom
+R3-9-5 "1206" "unknown" 5100 10875 90 bottom
+R3-9-6 "1206" "unknown" 5100 12375 90 bottom
+R3-9-7 "1206" "unknown" 5100 13875 90 bottom
+R3-9-8 "1206" "unknown" 5100 15375 90 bottom
+R3-9-9 "1206" "unknown" 5100 16875 90 bottom
+R3-9-10 "1206" "unknown" 5100 18375 90 bottom
+R3-9-11 "1206" "unknown" 5100 19875 90 bottom
+R3-9-12 "1206" "unknown" 5100 21375 90 bottom
+R3-9-13 "1206" "unknown" 5100 22875 90 bottom
+R3-9-14 "1206" "unknown" 5100 24375 90 bottom
+R3-10-0 "1206" "unknown" 5600 3375 90 bottom
+R3-10-1 "1206" "unknown" 5600 4875 90 bottom
+R3-10-2 "1206" "unknown" 5600 6375 90 bottom
+R3-10-3 "1206" "unknown" 5600 7875 90 bottom
+R3-10-4 "1206" "unknown" 5600 9375 90 bottom
+R3-10-5 "1206" "unknown" 5600 10875 90 bottom
+R3-10-6 "1206" "unknown" 5600 12375 90 bottom
+R3-10-7 "1206" "unknown" 5600 13875 90 bottom
+R3-10-8 "1206" "unknown" 5600 15375 90 bottom
+R3-10-9 "1206" "unknown" 5600 16875 90 bottom
+R3-10-10 "1206" "unknown" 5600 18375 90 bottom
+R3-10-11 "1206" "unknown" 5600 19875 90 bottom
+R3-10-12 "1206" "unknown" 5600 21375 90 bottom
+R3-10-13 "1206" "unknown" 5600 22875 90 bottom
+R3-10-14 "1206" "unknown" 5600 24375 90 bottom
+R3-11-0 "1206" "unknown" 6100 3375 90 bottom
+R3-11-1 "1206" "unknown" 6100 4875 90 bottom
+R3-11-2 "1206" "unknown" 6100 6375 90 bottom
+R3-11-3 "1206" "unknown" 6100 7875 90 bottom
+R3-11-4 "1206" "unknown" 6100 9375 90 bottom
+R3-11-5 "1206" "unknown" 6100 10875 90 bottom
+R3-11-6 "1206" "unknown" 6100 12375 90 bottom
+R3-11-7 "1206" "unknown" 6100 13875 90 bottom
+R3-11-8 "1206" "unknown" 6100 15375 90 bottom
+R3-11-9 "1206" "unknown" 6100 16875 90 bottom
+R3-11-10 "1206" "unknown" 6100 18375 90 bottom
+R3-11-11 "1206" "unknown" 6100 19875 90 bottom
+R3-11-12 "1206" "unknown" 6100 21375 90 bottom
+R3-11-13 "1206" "unknown" 6100 22875 90 bottom
+R3-11-14 "1206" "unknown" 6100 24375 90 bottom
+R3-12-0 "1206" "unknown" 6600 3375 90 bottom
+R3-12-1 "1206" "unknown" 6600 4875 90 bottom
+R3-12-2 "1206" "unknown" 6600 6375 90 bottom
+R3-12-3 "1206" "unknown" 6600 7875 90 bottom
+R3-12-4 "1206" "unknown" 6600 9375 90 bottom
+R3-12-5 "1206" "unknown" 6600 10875 90 bottom
+R3-12-6 "1206" "unknown" 6600 12375 90 bottom
+R3-12-7 "1206" "unknown" 6600 13875 90 bottom
+R3-12-8 "1206" "unknown" 6600 15375 90 bottom
+R3-12-9 "1206" "unknown" 6600 16875 90 bottom
+R3-12-10 "1206" "unknown" 6600 18375 90 bottom
+R3-12-11 "1206" "unknown" 6600 19875 90 bottom
+R3-12-12 "1206" "unknown" 6600 21375 90 bottom
+R3-12-13 "1206" "unknown" 6600 22875 90 bottom
+R3-12-14 "1206" "unknown" 6600 24375 90 bottom
+R3-13-0 "1206" "unknown" 7100 3375 90 bottom
+R3-13-1 "1206" "unknown" 7100 4875 90 bottom
+R3-13-2 "1206" "unknown" 7100 6375 90 bottom
+R3-13-3 "1206" "unknown" 7100 7875 90 bottom
+R3-13-4 "1206" "unknown" 7100 9375 90 bottom
+R3-13-5 "1206" "unknown" 7100 10875 90 bottom
+R3-13-6 "1206" "unknown" 7100 12375 90 bottom
+R3-13-7 "1206" "unknown" 7100 13875 90 bottom
+R3-13-8 "1206" "unknown" 7100 15375 90 bottom
+R3-13-9 "1206" "unknown" 7100 16875 90 bottom
+R3-13-10 "1206" "unknown" 7100 18375 90 bottom
+R3-13-11 "1206" "unknown" 7100 19875 90 bottom
+R3-13-12 "1206" "unknown" 7100 21375 90 bottom
+R3-13-13 "1206" "unknown" 7100 22875 90 bottom
+R3-13-14 "1206" "unknown" 7100 24375 90 bottom
+R3-14-0 "1206" "unknown" 7600 3375 90 bottom
+R3-14-1 "1206" "unknown" 7600 4875 90 bottom
+R3-14-2 "1206" "unknown" 7600 6375 90 bottom
+R3-14-3 "1206" "unknown" 7600 7875 90 bottom
+R3-14-4 "1206" "unknown" 7600 9375 90 bottom
+R3-14-5 "1206" "unknown" 7600 10875 90 bottom
+R3-14-6 "1206" "unknown" 7600 12375 90 bottom
+R3-14-7 "1206" "unknown" 7600 13875 90 bottom
+R3-14-8 "1206" "unknown" 7600 15375 90 bottom
+R3-14-9 "1206" "unknown" 7600 16875 90 bottom
+R3-14-10 "1206" "unknown" 7600 18375 90 bottom
+R3-14-11 "1206" "unknown" 7600 19875 90 bottom
+R3-14-12 "1206" "unknown" 7600 21375 90 bottom
+R3-14-13 "1206" "unknown" 7600 22875 90 bottom
+R3-14-14 "1206" "unknown" 7600 24375 90 bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..8c0e150
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..8c0e150
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy b/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy
new file mode 100644
index 0000000..92a695a
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy
@@ -0,0 +1,43 @@
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..cf4c991
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
diff --git a/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..b806f02
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
diff --git a/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy
new file mode 100644
index 0000000..6fe78d2
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,270,top
+R5,"ACY1000","unknown",3225.00,4050.00,270,top
+R8,"ACY1000","unknown",3225.00,3825.00,90,top
+R7,"ACY1000","unknown",3225.00,3600.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,270,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,180,bottom
+R10,"1206","1k",1550.00,3300.00,90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,180,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,180,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy
new file mode 100644
index 0000000..6fe78d2
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,270,top
+R5,"ACY1000","unknown",3225.00,4050.00,270,top
+R8,"ACY1000","unknown",3225.00,3825.00,90,top
+R7,"ACY1000","unknown",3225.00,3600.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,270,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,180,bottom
+R10,"1206","1k",1550.00,3300.00,90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,180,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,180,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..87e7c6d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy
new file mode 100644
index 0000000..b0436cd
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,90,top
+R5,"ACY1000","unknown",3225.00,4050.00,90,top
+R8,"ACY1000","unknown",3225.00,3825.00,-90,top
+R7,"ACY1000","unknown",3225.00,3600.00,-90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,90,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,0,bottom
+R10,"1206","1k",1550.00,3300.00,-90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,90,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,90,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,0,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,0,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..556a5ef
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy
new file mode 100644
index 0000000..b0436cd
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,90,top
+R5,"ACY1000","unknown",3225.00,4050.00,90,top
+R8,"ACY1000","unknown",3225.00,3825.00,-90,top
+R7,"ACY1000","unknown",3225.00,3600.00,-90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,90,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,0,bottom
+R10,"1206","1k",1550.00,3300.00,-90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,90,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,90,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,0,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,0,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy
new file mode 100644
index 0000000..6fe78d2
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,270,top
+R5,"ACY1000","unknown",3225.00,4050.00,270,top
+R8,"ACY1000","unknown",3225.00,3825.00,90,top
+R7,"ACY1000","unknown",3225.00,3600.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,270,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,180,bottom
+R10,"1206","1k",1550.00,3300.00,90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,180,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,180,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..e87c6af
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
diff --git a/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..7dd1b11
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy
new file mode 100644
index 0000000..7abaf4d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","100K",3225.00,4275.00,180,top
+R5,"ACY1000","100K",3225.00,4050.00,180,top
+R8,"ACY1000","100K",3225.00,3825.00,0,top
+R7,"ACY1000","100K",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","100K",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","100K",1875.00,3350.00,90,bottom
+R10,"1206","100K",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","100K",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","100K",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","100K",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","100K",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..2075c59
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..c428ba7
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..24658e1
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..00f6fde
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..24658e1
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..00f6fde
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..5d891bc
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..5d891bc
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error
new file mode 100644
index 0000000..4ed6cf0
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error
new file mode 100644
index 0000000..4ed6cf0
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy
new file mode 100644
index 0000000..acd1c59
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+"CONNECTOR-3-1",CONN4,"unknown",2000.00,3650.00,90,top
+"ACY1000",R6,"unknown",3225.00,4275.00,180,top
+"ACY1000",R5,"unknown",3225.00,4050.00,180,top
+"ACY1000",R8,"unknown",3225.00,3825.00,0,top
+"ACY1000",R7,"unknown",3225.00,3600.00,0,top
+"1206",C1,"unknown",950.00,3775.00,0,bottom
+"1206",C14,"unknown",1225.00,3600.00,90,bottom
+"1206",D6,"unknown",1125.00,3875.00,180,bottom
+"1206",C13,"unknown",1615.95,3738.19,180,bottom
+"CONNECTOR-4-1",CONN3,"unknown",2225.00,3600.00,270,top
+"1206",C12,"unknown",1438.19,3834.05,270,bottom
+"TO220",U2,"unknown",1342.50,4175.00,90,top
+"1206",D7,"unknown",1775.00,3350.00,270,bottom
+"1206",D5,"unknown",1125.00,3775.00,180,bottom
+"1206",R4,"unknown",504.14,3527.76,180,bottom
+"1206",C15,"unknown",1225.00,3350.00,90,bottom
+"TO220",U1,"unknown",407.50,4180.00,90,top
+"1206",R9,"1k",1875.00,3350.00,90,bottom
+"1206",R10,"1k",1550.00,3300.00,0,bottom
+"SO8",U3,"unknown",1075.00,3525.00,270,bottom
+"1206",R11,"10k",1375.00,3300.00,180,bottom
+"CONNECTOR-2-1",D2,"unknown",500.00,3850.00,0,top
+"1206",C2,"unknown",925.00,3350.00,270,bottom
+"1206",R2,"unknown",506.90,3751.38,180,bottom
+"CONNECTOR-2-1",CONN1,"unknown",275.00,3625.00,0,top
+"CONNECTOR-2-1",D4,"unknown",500.00,3625.00,0,top
+"1206",R1,"unknown",425.00,3375.00,90,bottom
+"1206",C11,"unknown",1336.81,3834.05,90,bottom
+"CONNECTOR-2-1",CONN2,"unknown",750.00,3625.00,0,top
+"CONNECTOR-2-1",S2,"unknown",750.00,3850.00,180,top
+"CONNECTOR-2-1",S1,"unknown",275.00,3850.00,0,top
+"CONNECTOR-2-1",D3,"unknown",750.00,3350.00,0,top
+"SO16",U4,"unknown",1500.00,3525.00,90,bottom
+"CONNECTOR-2-1",D1,"unknown",275.00,3350.00,0,top
+"1206",R3,"unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy
new file mode 100644
index 0000000..4baaba0
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+"ACY1000",R6,"unknown",3225.00,4275.00,180,top
+"ACY1000",R5,"unknown",3225.00,4050.00,180,top
+"ACY1000",R8,"unknown",3225.00,3825.00,0,top
+"ACY1000",R7,"unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+"1206",R4,"unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+"1206",R9,"1k",1875.00,3350.00,90,bottom
+"1206",R10,"1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+"1206",R11,"10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+"1206",R2,"unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+"1206",R1,"unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+"1206",R3,"unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..7f984fd
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
diff --git a/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..b7829f3
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy
new file mode 100644
index 0000000..05027e2
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206",1K,1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy
new file mode 100644
index 0000000..6d4deaa
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206",1kilohms,1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy
new file mode 100644
index 0000000..867ce82
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206",1K,1875.00,3350.00,90,bottom
+R10,"1206",1K,1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206",10K,1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..a26d9ad
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep 6 14:29:26 2008 UTC
+# Author:
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils. rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..5f213ba
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
diff --git a/utils/tests/gxyrs/run_tests.sh b/utils/tests/gxyrs/run_tests.sh
new file mode 100755
index 0000000..a508c17
--- /dev/null
+++ b/utils/tests/gxyrs/run_tests.sh
@@ -0,0 +1,249 @@
+#!/bin/sh
+
+# Copyright (C) 2008 Carlos Nieves Onega
+# adapted from refdes_renum test suite by Dan McMahill.
+# Copyright (C) 2008 other contributors
+# (see ChangeLog or SCM history for details)
+
+# This file is part of gxyrs.
+
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation, version 2
+# of the License.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+regen=no
+
+usage() {
+cat << EOF
+
+$0 -- Testsuite program for refdes_renum
+
+Usage
+
+ $0 [-h | --help]
+ $0 [-r | --regen] [test1 [test2 [....]]]
+
+Options
+
+ -h | --help Prints this help message and exits.
+
+ -r | --regen Regenerates the reference files. If you use
+ this option, YOU MUST HAND VERIFY THE RESULTS
+ BEFORE COMMITTING to the repository.
+
+Description
+
+$0 reads a file, tests.list, describing tests to run on geda_filter.
+If no specific test is specified on the $0 command line, then all
+tests are run.
+
+Examples
+
+$0
+$0 --regen new_test
+
+EOF
+}
+while test -n "$1"
+do
+ case "$1"
+ in
+
+ -h|--help)
+ usage
+ exit 0
+ ;;
+
+ -r|--regen)
+ # regenerate the 'golden' output files. Use this with caution.
+ # In particular, all differences should be noted and understood.
+ regen=yes
+ shift
+ ;;
+
+ -*)
+ echo "unknown option: $1"
+ usage
+ exit 1
+ ;;
+
+ *)
+ break
+ ;;
+
+ esac
+done
+
+
+# make sure we have the right paths when running this from inside the
+# source tree and also from outside the source tree.
+here=`pwd`
+srcdir=${srcdir:-$here}
+srcdir=`cd $srcdir && pwd`
+
+top_srcdir=${top_srcdir:-$here/../../..}
+top_srcdir=`cd $top_srcdir && pwd`
+
+# the perl program
+PERL=${PERL:-perl}
+
+rundir=${here}/run
+
+GOLDEN_DIR=${srcdir}/outputs
+INPUT_DIR=${srcdir}/inputs
+
+
+TESTLIST=${srcdir}/tests.list
+
+if test ! -f $TESTLIST ; then
+ echo "ERROR: ($0) Test list $TESTLIST does not exist"
+ exit 1
+fi
+
+# fail/pass/total counts
+fail=0
+pass=0
+skip=0
+tot=0
+
+if test -z "$1" ; then
+ all_tests=`awk 'BEGIN{FS="|"} /^#/{next} /^[ \t]*$/{next} {print $1}' $TESTLIST | sed 's; ;;g'`
+else
+ all_tests=$*
+fi
+
+cat << EOF
+
+Starting tests in $here
+srcdir: $srcdir
+top_srcdir: $top_srcdir
+INPUT_DIR: ${INPUT_DIR}
+GOLDEN_DIR: ${GOLDEN_DIR}
+all_tests:
+
+${all_tests}
+
+EOF
+
+for t in $all_tests ; do
+
+ # strip any leading garbage
+ t=`echo $t | sed 's;^\*;;g'`
+
+ # figure out what files we need to copy for this test and what
+ # arguments to feed refdes_renum
+ files=`grep "^[ \t]*${t}[ \t]*|" $TESTLIST | awk 'BEGIN{FS="|"} {print $2}'`
+ adjust_file=`grep "^[ \t]*${t}[ \t]*|" $TESTLIST | awk 'BEGIN{FS="|"} {print $3}'`
+ args=`grep "^[ \t]*${t}[ \t]*|" $TESTLIST | awk 'BEGIN{FS="|"} {print $4}'`
+ code=`grep "^[ \t]*${t}[ \t]*|" $TESTLIST | awk 'BEGIN{FS="|"} {print $5}'`
+ out_file='out.txt'
+ error_file='error.txt'
+ if test "X$code" = "X" ; then
+ code=0
+ fi
+
+
+ tot=`expr $tot + 1`
+
+ # create temporary run directory
+ if test ! -d $rundir ; then
+ mkdir -p $rundir
+ fi
+
+ # Create the files needed
+ if test ! -z "$files" ; then
+ for f in $files $adjust_file; do
+ cp ${INPUT_DIR}/${f} ${rundir}
+ chmod 644 ${rundir}/${f}
+ done
+ fi
+
+ # run gxyrs
+ #
+
+ if test "X$adjust_file" = "X" -o "X$adjust_file" = "X " ; then
+ command="cd ${rundir} && ${PERL} -w ${top_srcdir}/utils/gxyrs/gxyrs $args $files --output $out_file 2> $error_file"
+ else
+ command="cd ${rundir} && ${PERL} -w ${top_srcdir}/utils/gxyrs/gxyrs $args $files --adjust $adjust_file --output $out_file 2> $error_file"
+ fi
+ echo "Running test ${t}"
+ echo $command
+ eval $command
+ rc=$?
+ if test $rc -ne $code ; then
+ echo "FAILED: gxyrs returned $rc which did not match the expected $code"
+ fail=`expr $fail + 1`
+ continue
+ fi
+
+ good=1
+ bad=0
+ soso=0
+ for f in ${files} ; do
+ ref=${GOLDEN_DIR}/${t}-${f}
+ out=${rundir}/$out_file
+ ref_error=${GOLDEN_DIR}/${t}-${f}-error
+ error=${rundir}/$error_file
+
+ if test "X$regen" = "Xyes" ; then
+ cp ${out} ${ref}
+ echo "Regenerated ${ref}"
+ cp ${error} ${ref_error}
+ echo "Regenerated ${ref_error}"
+ elif test -f ${ref} ; then
+ if diff -w ${ref} ${out} >/dev/null ; then
+ if diff -w ${ref_error} ${error} >/dev/null ; then
+ echo "PASS"
+ else
+ echo "FAILED: See diff -w ${ref_error} ${error}"
+ fail=`expr $fail + 1`
+ bad=1
+ good=0
+ fi
+ else
+ echo "FAILED: See diff -w ${ref} ${out}"
+ fail=`expr $fail + 1`
+ bad=1
+ good=0
+ fi
+ else
+ echo "No reference file. Skipping"
+ good=0
+ soso=1
+ fi
+ done
+ if test $soso -ne 0 ; then
+ good=0
+ bad=0
+ fi
+ pass=`expr $pass + $good`
+ fail=`expr $fail + $bad`
+ skip=`expr $skip + $soso`
+
+ cd $here
+
+ # clean up the rundirectory
+ rm -fr ${rundir}
+
+done
+
+echo "Passed $pass, failed $fail, skipped $skip out of $tot tests."
+
+rc=0
+if test $pass -ne $tot ; then
+ rc=`expr $tot - $pass`
+
+fi
+
+exit $rc
diff --git a/utils/tests/gxyrs/tests.list b/utils/tests/gxyrs/tests.list
new file mode 100644
index 0000000..d22d9a9
--- /dev/null
+++ b/utils/tests/gxyrs/tests.list
@@ -0,0 +1,191 @@
+# $Id$
+#
+#
+# Format:
+#
+# test_name | input file | adjust file| extra flags to pass to gxyrs | return code if non-zero expected
+#
+
+
+# -----------------------------------------
+# Do nothing
+# -----------------------------------------
+
+do_nothing_tabulated | pcb_example1.xy | do_nothing.pl | --tabulate |1
+do_nothing | pcb_example1.xy | do_nothing.pl | | 1
+
+# -----------------------------------------
+# Tests for match subroutine in gxyrs package.
+# -----------------------------------------
+match_column_is_not_number| pcb_example1.xy | | --eval "return check_columns 'd1', 'R[0-9]+'" | 255
+match_column_is_not_number2| pcb_example1.xy | | --eval "return check_columns '1d', 'R[0-9]+'" | 255
+match_column_is_real| pcb_example1.xy | | --eval "return check_columns '1.1', 'R[0-9]+'" | 255
+match_column_is_negative| pcb_example1.xy | | --eval "return check_columns '-1', 'R[0-9]+'" | 255
+match_column_is_too_high| pcb_example1.xy | | --eval "return check_columns '100', 'R[0-9]+'" | 255
+match_column_insensitive1| pcb_example2.xy | | --caseinsensitive --eval "return check_columns 1, 'R[0-9]+'" | 1
+match_column_insensitive2| pcb_example2.xy | | --caseinsensitive --eval "return check_columns 1, 'r[0-9]+'" | 1
+match_column_insensitive3| pcb_example1.xy | | --caseinsensitive --eval "return check_columns 1, 'R[0-9]+'" | 1
+match_column_insensitive4| pcb_example1.xy | | --caseinsensitive --eval "return check_columns 1, 'r[0-9]+'" | 1
+match_column_sensitive1| pcb_example1.xy | | --eval "return check_columns 1, 'r[0-9]+'" | 0
+match_column_sensitive2| pcb_example1.xy | | --eval "return check_columns 1, 'R[0-9]+'" | 1
+match_column_sensitive3| pcb_example2.xy | | --eval "return check_columns 1, 'R[0-9]+'" | 0
+match_column_sensitive4| pcb_example2.xy | | --eval "return check_columns 1, 'r[0-9]+'" | 1
+match_no_args| pcb_example1.xy | | --caseinsensitive --eval "return check_columns " | 1
+
+# -----------------------------------------
+# Tests for del_line subroutine in gxyrs package.
+# -----------------------------------------
+del_case_sensitive1 | pcb_example1.xy | | --eval "return del_line 1, 'R[0-9]+'"| 1
+del_case_sensitive2 | pcb_example2.xy | | --eval "return del_line 1, 'R[0-9]+'"| 0
+del_case_sensitive3 | pcb_example1.xy | | --eval "return del_line 1, 'r[0-9]+'"| 0
+del_case_sensitive4 | pcb_example2.xy | | --eval "return del_line 1, 'r[0-9]+'"| 1
+del_case_insensitive1 | pcb_example1.xy | | --caseinsensitive --eval "return del_line 1, 'r[0-9]+'"| 1
+del_case_insensitive2 | pcb_example2.xy | | --caseinsensitive --eval "return del_line 1, 'R[0-9]+'"| 1
+del_check_columns_return_minus1 | pcb_example1.xy | | --eval "return del_line -1, 'r[0-9]+'" | 255
+del_check_columns_no_match | pcb_example1.xy | | --eval "return del_line 1, 'component[0-9]+'" | 0
+
+# -----------------------------------------
+# Tests for rotate subroutine in gxyrs package.
+# -----------------------------------------
+rotate_case_sensitive | pcb_example1.xy | | --eval "return rotate_comp 6, 90, 1, 'R[0-9]+'"| 1
+rotate_case_insensitive | pcb_example1.xy | | --caseinsensitive --eval "return rotate_comp 6, 90, 1, 'r[0-9]+'"| 1
+rotate_check_columns_return_minus1 | pcb_example1.xy | | --eval "return rotate_comp 6, 90, -1, 'r[0-9]+'" | 255
+rotate_check_columns_no_match | pcb_example1.xy | | --eval "return rotate_comp 6, 90, 1, 'component[0-9]+'" | 0
+rotate_real_angle | pcb_example1.xy | | --eval "return rotate_comp 6, 90.0, 1, 'R[0-9]+'"| 1
+rotate_negative_real_angle | pcb_example1.xy | | --eval "return rotate_comp 6, -90.0, 1, 'R[0-9]+'"| 1
+rotate_negative_angle | pcb_example1.xy | | --eval "return rotate_comp 6, -90, 1, 'R[0-9]+'"| 1
+rotate_bad_column_number1 | pcb_example1.xy | | --eval "return rotate_comp '6d', -90, 1, 'R[0-9]+'"| 255
+rotate_bad_column_number2 | pcb_example1.xy | | --eval "return rotate_comp 'd6', -90, 1, 'R[0-9]+'"| 255
+rotate_negative_column_number | pcb_example1.xy | | --eval "return rotate_comp -6, -90, 1, 'R[0-9]+'"| 255
+rotate_column_number_too_high | pcb_example1.xy | | --eval "return rotate_comp 100, -90, 1, 'R[0-9]+'"| 255
+
+# -----------------------------------------
+# Tests for subst_col_val subroutine in gxyrs package.
+# -----------------------------------------
+subst_bad_column_number1 | pcb_example1.xy | | --eval "return subst_col_val '6d', -90, 1, 'R[0-9]+'"| 255
+subst_bad_column_number2 | pcb_example1.xy | | --eval "return subst_col_val 'd6', -90, 1, 'R[0-9]+'"| 255
+subst_negative_column_number | pcb_example1.xy | | --eval "return subst_col_val -6, -90, 1, 'R[0-9]+'"| 255
+subst_column_number_too_high | pcb_example1.xy | | --eval "return subst_col_val 100, -90, 1, 'R[0-9]+'"| 255
+subst_check_columns_return_minus1 | pcb_example1.xy | | --eval "return subst_col_val 3, '\"100K\"', '-1', 'r[0-9]+'" | 255
+subst_check_columns_no_match | pcb_example1.xy | | --eval "return subst_col_val 3, '\"100K\"', 1, 'component[0-9]+'" | 0
+subst_check_columns_match | pcb_example1.xy | | --eval "return subst_col_val 3, '\"100K\"', 1, 'R[0-9]+'" | 1
+
+# -----------------------------------------
+# Tests for change_col_units subroutine in gxyrs package.
+# -----------------------------------------
+change_units_bad_column_number1 | pcb_example1.xy | | --eval "return change_col_units 'mm', '4d'"| 255
+change_units_bad_column_number2 | pcb_example1.xy | | --eval "return change_col_units 'mm', 'd4'"| 255
+change_units_negative_column_number | pcb_example1.xy | | --eval "return change_col_units 'mm', -4"| 255
+change_units_column_number_too_high | pcb_example1.xy | | --eval "return change_col_units 'mm', 100"| 255
+change_units_no_units | pcb_example1.xy | | --eval "return change_col_units 'mm', 4"| 254
+change_units_to_mm_6col_tabulated | protel_example1_mil.txt | | --tabulate --eval "return change_col_units 'mm', 3, 4, 5, 6, 7, 8"| 254
+change_units_to_mm_6col_tabulated_no_title | protel_example1_mil.txt | | --tabulate --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mm', 3, 4, 5, 6, 7, 8}"| 1
+change_units_already_done | protel_example1_mil.txt | | --eval "return change_col_units 'mil', 3"| 254
+change_units_already_done_no_title | protel_example1_mil.txt | | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mil', 3}"| 0
+change_units_units_not_supported | protel_example1_mil.txt | | --eval "return change_col_units 'gallons', 3"| 255
+change_units_to_mm | protel_example1_mil.txt | | --eval "return change_col_units 'mm', 3"| 254
+change_units_to_mm_no_title | protel_example1_mil.txt | | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mm', 3}"| 1
+change_units_to_mil | protel_example1_mm.txt| | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mil', 3}"| 1
+change_units_to_mm_2cols | protel_example1_mil.txt | | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mm', 3, 4}"| 1
+change_units_to_mil_2cols | protel_example1_mm.txt | | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mil', 3, 4}"| 1
+
+# -----------------------------------------
+# Tests for add_number_to_col subroutine in gxyrs package.
+# -----------------------------------------
+offset_bad_column_number1 | pcb_example1.xy | | --eval "return add_number_to_col '4d', -90, 1, 'R[0-9]+'"| 255
+offset_bad_column_number2 | pcb_example1.xy | | --eval "return add_number_to_col 'd4', -90, 1, 'R[0-9]+'"| 255
+offset_negative_column_number | pcb_example1.xy | | --eval "return add_number_to_col -4, -90, 1, 'R[0-9]+'"| 255
+offset_column_number_too_high | pcb_example1.xy | | --eval "return add_number_to_col 100, -90, 1, 'R[0-9]+'"| 255
+offset_check_columns_return_minus1 | pcb_example1.xy | | --eval "return add_number_to_col 4, 100, -1, 'r[0-9]+'" | 255
+offset_check_columns_no_match | pcb_example1.xy | | --eval "return add_number_to_col 4, 100, 1, 'component[0-9]+'" | 0
+offset_check_columns_match | pcb_example1.xy | | --eval "return add_number_to_col 4, 100, 1, 'R[0-9]+'" | 1
+offset_match_negative_offset | pcb_example1.xy | | --eval "return add_number_to_col 4, -100, 1, 'R[0-9]+'" | 1
+offset_match_real_offset | pcb_example1.xy | | --eval "return add_number_to_col 4, 10.3, 1, 'R[0-9]+'" | 1
+offset_match_negative_real_offset | pcb_example1.xy | | --eval "return add_number_to_col 4, -10.3, 1, 'R[0-9]+'" | 1
+offset_match_offset_with_units_but_no_units_in_file | pcb_example1.xy | | --eval "return add_number_to_col 4, '-10.3mm', 1, 'R[0-9]+'" | 255
+
+# -----------------------------------------
+# Tests for translate_col_val subroutine in gxyrs package.
+# -----------------------------------------
+translate_bad_column_number1 | pcb_example1.xy | | --eval "return translate_col_val '4d', '^.([0-9]+)k.$','sprintf(\"%dK\",$1)', 1, 'R[0-9]+'"| 255
+translate_bad_column_number2 | pcb_example1.xy | | --eval "return translate_col_val 'd4', '^.([0-9]+)k.$','sprintf(\"%dK\",$1)', 1, 'R[0-9]+'"| 255
+translate_negative_column_number | pcb_example1.xy | | --eval "return translate_col_val -4, '^.([0-9]+)k.$','sprintf(\"%dK\",$1)', 1, 'R[0-9]+'"| 255
+translate_column_number_too_high | pcb_example1.xy | | --eval "return translate_col_val 100, '^.([0-9]+)k.$','sprintf(\"%dK\",$1)', 1, 'R[0-9]+'"| 255
+translate_column_change_all_value_plus_k | pcb_example1.xy | | --eval "return translate_col_val 3, '^.([0-9]+)k.$','sprintf(\"%dK\",\$1)'"| 1
+translate_column_change_R10_value | pcb_example1.xy | | --eval "return translate_col_val 3, '^.([0-9]+)k.$','sprintf(\"%dK\",\$1)', 1, 'R10'"| 1
+translate_column_change_R10_value_case_insensitive | pcb_example1.xy | | --caseinsensitive --eval "return translate_col_val 3, '^.([0-9]+)K.$','sprintf(\"%dkilohms\",\$1)', 1, 'R10'"| 1
+translate_column_no_match1 | pcb_example1.xy | | --eval "return translate_col_val 3, '^.([0-9]+)k.$','sprintf(\"%dK\",\$1)', 1, 'R90'"| 0
+translate_column_no_match2 | pcb_example1.xy | | --eval "return translate_col_val 3, '^.([0-9]+)n.$','sprintf(\"%dnF\",\$1)', 1, 'R10'"| 0
+
+# -----------------------------------------
+# Tests for output delimiter option in gxyrs.
+# -----------------------------------------
+output_delimiter | pcb_example1.xy | | --tabulate --output-delimiter " " --eval "return 1"| 1
+
+# -----------------------------------------
+# Tests for panelize_xyrs subroutine in gxyrs package.
+# -----------------------------------------
+panelize_bad_x_column_number1 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,'d2',\$Y_COL, \$REF_COL, ''"| 255
+panelize_bad_y_column_number1 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL, 'd2', \$REF_COL, ''"| 255
+panelize_bad_ref_column_number1 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500, \$X_COL,\$Y_COL, 'd2', ''"| 255
+panelize_bad_x_column_number2 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,'2d',\$Y_COL, \$REF_COL, ''"| 255
+panelize_bad_y_column_number2 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,'2d', \$REF_COL, ''"| 255
+panelize_bad_ref_column_number2 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$REF_COL,\$Y_COL, '2d', ''"| 255
+panelize_negative_x_column_number | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,-1,\$Y_COL, \$REF_COL, ''"| 255
+panelize_negative_y_column_number | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,-1, \$REF_COL, ''"| 255
+panelize_negative_ref_column_number | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,\$Y_COL, -1, ''"| 255
+panelize_x_column_number_too_high | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,100,\$Y_COL, \$REF_COL, ''"| 255
+panelize_y_column_number_too_high | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,100, \$REF_COL, ''"| 255
+panelize_ref_column_number_too_high | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,\$Y_COL, 100, ''"| 255
+panelize_tabulate | pcb_example1.xy | | --tabulate --output-delimiter " " --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,\$Y_COL, \$REF_COL, ''"| 1
+
+# -----------------------------------------
+# Tests for multiply subroutine in gxyrs package.
+# -----------------------------------------
+multiply_bad_column_number1 | pcb_example1.xy | | --eval "return mul_col_val 'd2', 2"| 255
+multiply_bad_column_number2 | pcb_example1.xy | | --eval "return mul_col_val '2d', 2"| 255
+multiply_negative_column_number | pcb_example1.xy | | --eval "return mul_col_val -1, 2"| 255
+multiply_column_number_too_high | pcb_example1.xy | | --eval "return mul_col_val 100, 100"| 255
+multiply_real_factor | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, 2.5"| 1
+multiply_negative_real_factor | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, -2.5"| 1
+multiply_integer_factor | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, 2"| 1
+multiply_negative_integer_factor | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, -2"| 1
+multiply_with_checklist | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, -2, \$REF_COL, 'R[0-9]+'" | 1
+
+# -----------------------------------------
+# Tests for swap_columns subroutine in gxyrs package.
+# -----------------------------------------
+swap_columns_bad_column1_number1 | pcb_example1.xy | | --eval "return swap_columns 'd2', 2"| 255
+swap_columns_bad_column1_number2 | pcb_example1.xy | | --eval "return swap_columns '2d', 2"| 255
+swap_columns_negative_column1_number | pcb_example1.xy | | --eval "return swap_columns -1, 2"| 255
+swap_columns_column1_number_too_high | pcb_example1.xy | | --eval "return swap_columns 100, 1"| 255
+swap_columns_bad_column2_number1 | pcb_example1.xy | | --eval "return swap_columns 2, 'd2'"| 255
+swap_columns_bad_column2_number2 | pcb_example1.xy | | --eval "return swap_columns 2, '2d'"| 255
+swap_columns_negative_column2_number | pcb_example1.xy | | --eval "return swap_columns 2, -1"| 255
+swap_columns_column2_number_too_high | pcb_example1.xy | | --eval "return swap_columns 1, 100"| 255
+swap_columns_with_match | pcb_example1.xy | | --eval "return swap_columns 1, 2, \$REF_COL, 'R[0-9]+'"| 1
+swap_columns_no_match | pcb_example1.xy | | --eval "return swap_columns 1, 2, \$REF_COL, 'Rb[0-9]+'"| 0
+swap_columns_no_matchlist | pcb_example1.xy | | --eval "return swap_columns 1, 2"| 1
+
+# -----------------------------------------
+# Tests for insert_column subroutine in gxyrs package.
+# -----------------------------------------
+insert_column_bad_column_number1 | pcb_example1.xy | | --eval "return insert_column 'd2', 2"| 255
+insert_column_bad_column_number2 | pcb_example1.xy | | --eval "return insert_column '2d', 2"| 255
+insert_column_negative_column_number | pcb_example1.xy | | --eval "return insert_column -1, 2"| 255
+insert_column_column_number_too_high | pcb_example1.xy | | --eval "return insert_column 100, 100"| 255
+insert_column_first_pos | pcb_example1.xy | | --eval "return insert_column 0, 'new_value'"| 1
+insert_column_second_pos | pcb_example1.xy | | --eval "return insert_column 1, 'new_value'"| 1
+
+# -----------------------------------------
+# Tests if footprint field is guessed in several file formats.
+# -----------------------------------------
+footprint_report1| report1.txt | | --tabulate --eval "return subst_col_val \$FOOTPRINT_COL, '\"footprint\"'"| 1
+footprint_pcb1| pcb_example1.xy | | --tabulate --eval "return subst_col_val \$FOOTPRINT_COL, 'footprint'"| 1
+footprint_protel1| protel_example1_mil.txt | | --tabulate --eval "return subst_col_val \$FOOTPRINT_COL, 'footprint'"| 1
+
+# -----------------------------------------
+# Tests for process comment option in gxyrs.
+# -----------------------------------------
+process_comment | pcb_example1.xy | | --process-comments --eval "if (\$is_comment==1) {@LINE='#This line is a comment';return 1}"| 1
+
_______________________________________________
geda-cvs mailing list
geda-cvs@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-cvs