    Record program: mtplot /dev/input/event8 -d :0 -g 2040x1360+0+340
    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m3 seconds[0m to draw a straight line [1;32mfrom left to right[0m [1;32mabove the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.380670
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 145.35 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.left_to_right.slow-link-fw_1.0.AA-manual-20131115_234449.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m1 second[0m to draw a straight line [1;32mfrom left to right[0m [1;32mabove the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.725000
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 148.63 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.left_to_right.normal-link-fw_1.0.AA-manual-20131115_234526.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m3 seconds[0m to draw a straight line [1;32mfrom right to left[0m [1;32mbelow the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.581139
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 145.84 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.right_to_left.slow-link-fw_1.0.AA-manual-20131115_234531.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m1 second[0m to draw a straight line [1;32mfrom right to left[0m [1;32mbelow the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.838252
        criteria_str: <= 1.8, ~ +1.0
    score: 0.996394
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 144.66 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.right_to_left.normal-link-fw_1.0.AA-manual-20131115_234542.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m3 seconds[0m to draw a straight line [1;32mfrom top to bottom[0m [1;32mon the right to the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.256234
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 144.32 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.top_to_bottom.slow-link-fw_1.0.AA-manual-20131115_234547.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m1 second[0m to draw a straight line [1;32mfrom top to bottom[0m [1;32mon the right to the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.744049
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 149.51 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.top_to_bottom.normal-link-fw_1.0.AA-manual-20131115_234602.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m3 seconds[0m to draw a straight line [1;32mfrom bottom to top[0m [1;32mon the left to the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.517197
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 144.67 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.bottom_to_top.slow-link-fw_1.0.AA-manual-20131115_234609.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m1 second[0m to draw a straight line [1;32mfrom bottom to top[0m [1;32mon the left to the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.747800
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 147.42 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.bottom_to_top.normal-link-fw_1.0.AA-manual-20131115_234620.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m3 seconds[0m to draw a straight line [1;32mfrom the bottom left to the top right[0m [1;32mabove the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.675617
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0, 'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 144.21 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 1 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 0.998789
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.bottom_left_to_top_right.slow-link-fw_1.0.AA-manual-20131115_234623.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m1 second[0m to draw a straight line [1;32mfrom the bottom left to the top right[0m [1;32mabove the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 2.904972
        criteria_str: <= 1.8, ~ +1.0
    score: 0.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0, 'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 148.01 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.bottom_left_to_top_right.normal-link-fw_1.0.AA-manual-20131115_234640.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m3 seconds[0m to draw a straight line [1;32mfrom the top right to the bottom left[0m [1;32mbelow the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.605546
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0, 'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 141.67 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.top_right_to_bottom_left.slow-link-fw_1.0.AA-manual-20131115_234657.dat)

    
[1;34m<finger_crossing>[0m:
    Place one stationary finger near the center of the touch surface, then take [1;32m1 second[0m to draw a straight line [1;32mfrom the top right to the bottom left[0m [1;32mbelow the stationary finger[0m with a second finger
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 2.891383
        criteria_str: <= 1.8, ~ +1.0
    score: 0.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': -1, 'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 139.19 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/finger_crossing.top_right_to_bottom_left.normal-link-fw_1.0.AA-manual-20131115_234711.dat)

    
[1;34m<pinch_to_zoom>[0m:
    Using two fingers, preform a "[1;32mzoom in[0m" pinch by bringingyour fingers [1;32mfarther apart[0m.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    PinchValidator
        Relative motions of the two fingers: 977.60 px
        criteria_str: >= 200, ~ -100
    score: 1.000000
    

    ReportRateValidator
        Report rate: 139.52 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/pinch_to_zoom.zoom_in-link-fw_1.0.AA-manual-20131115_234716.dat)

    
[1;34m<pinch_to_zoom>[0m:
    Using two fingers, preform a "[1;32mzoom out[0m" pinch by bringingyour fingers [1;32mcloser together[0m.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    PinchValidator
        Relative motions of the two fingers: 895.19 px
        criteria_str: >= 200, ~ -100
    score: 1.000000
    

    ReportRateValidator
        Report rate: 142.46 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/pinch_to_zoom.zoom_out-link-fw_1.0.AA-manual-20131115_234725.dat)

    
[1;34m<three_fingers_physical_click>[0m:
    Use three fingers to physically click the center of the touch surface.
    

    CountTrackingIDValidator
        count of trackid IDs: 3
        criteria_str: == 3
    score: 1.000000
    

    PhysicalClickValidator
        Count of 3-finger physical clicks: 1
        criteria_str: == 1
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/three_fingers_physical_click-link-fw_1.0.AA-manual-20131115_234733.dat)

    
[1;34m<four_fingers_physical_click>[0m:
    Use four fingers to physically click the center of the touch surface.
    

    CountTrackingIDValidator
        count of trackid IDs: 4
        criteria_str: == 4
    score: 1.000000
    

    PhysicalClickValidator
        Count of 4-finger physical clicks: 1
        criteria_str: == 1
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/four_fingers_physical_click-link-fw_1.0.AA-manual-20131115_234737.dat)

    
[1;34m<five_fingers_physical_click>[0m:
    Use five fingers to physically click the center of the touch surface.
    

    CountTrackingIDValidator
        count of trackid IDs: 5
        criteria_str: == 5
    score: 1.000000
    

    PhysicalClickValidator
        Count of 5-finger physical clicks: 1
        criteria_str: == 1
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/five_fingers_physical_click-link-fw_1.0.AA-manual-20131115_234739.dat)

    
[1;34m<stationary_finger_not_affected_by_2nd_finger_taps>[0m:
    Place your one stationary finger in the middle of the touch surface, and use a second finger to tap all around it
    

    CountTrackingIDValidator
        count of trackid IDs: 17
        criteria_str: >= 2
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 1 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 0.996499
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/stationary_finger_not_affected_by_2nd_finger_taps.around-link-fw_1.0.AA-manual-20131115_234741.dat)

    
[1;34m<fat_finger_move_with_resting_finger>[0m:
    With a stationary finger on the [1;32mcenter[0m of the touch surface, draw a straight line with a FAT finger [1;32mfrom left to right[0m [1;32mbelow[0m it.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[x]: 2.19 mm
        rms_err[x]: 0.98 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.874927
    

    Linearity(BothEnds)Validator
        max_err[x]: 12.73 mm
        rms_err[x]: 5.06 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot1: 2.398899
        criteria_str: <= 1.8, ~ +1.0
    score: 0.347137
    

    NoLevelJumpValidator
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
        Max accu jump: 0 px
        criteria_str: <= 10, ~ +30
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 136.02 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/fat_finger_move_with_resting_finger.left_to_right-link-fw_1.0.AA-manual-20131115_234752.dat)

    
[1;34m<fat_finger_move_with_resting_finger>[0m:
    With a stationary finger on the [1;32mbottom edge[0m of the touch surface, draw a straight line with a FAT finger [1;32mfrom right to left[0m [1;32mabove[0m it.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[x]: 5.49 mm
        rms_err[x]: 1.66 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    Linearity(BothEnds)Validator
        max_err[x]: 8.03 mm
        rms_err[x]: 4.83 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot1: 2.285714
        criteria_str: <= 1.8, ~ +1.0
    score: 0.522432
    

    NoLevelJumpValidator
          accu jump (1 x): 14 px
          accu jump (1 y): 0 px
        Max accu jump: 14 px
        criteria_str: <= 10, ~ +30
    score: 0.956773
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 138.69 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 1 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 0.953465
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/fat_finger_move_with_resting_finger.right_to_left-link-fw_1.0.AA-manual-20131115_234813.dat)

    
[1;34m<fat_finger_move_with_resting_finger>[0m:
    With a stationary finger on the [1;32mcenter[0m of the touch surface, draw a straight line with a FAT finger [1;32mfrom top to bottom[0m [1;32mon the right to[0m it.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[y]: 1.47 mm
        rms_err[y]: 0.50 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 1.000000
    

    Linearity(BothEnds)Validator
        max_err[y]: 11.81 mm
        rms_err[y]: 4.98 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.835115
        criteria_str: <= 1.8, ~ +1.0
    score: 0.996961
    

    NoLevelJumpValidator
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
        Max accu jump: 0 px
        criteria_str: <= 10, ~ +30
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 144.93 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 1 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 0.936052
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/fat_finger_move_with_resting_finger.top_to_bottom-link-fw_1.0.AA-manual-20131115_234840.dat)

    
[1;34m<fat_finger_move_with_resting_finger>[0m:
    With a stationary finger on the [1;32mcenter[0m of the touch surface, draw a straight line with a FAT finger [1;32mfrom bottom to top[0m [1;32mon the left to[0m it.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[y]: 1.26 mm
        rms_err[y]: 0.63 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 1.000000
    

    Linearity(BothEnds)Validator
        max_err[y]: 20.23 mm
        rms_err[y]: 9.00 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot1: 2.549510
        criteria_str: <= 1.8, ~ +1.0
    score: 0.146992
    

    NoLevelJumpValidator
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
        Max accu jump: 0 px
        criteria_str: <= 10, ~ +30
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 141.99 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/fat_finger_move_with_resting_finger.bottom_to_top-link-fw_1.0.AA-manual-20131115_234850.dat)

    
[1;34m<drag_edge_thumb>[0m:
    Drag the edge of your thumb [1;32mhorizontally from left to right[0m in a straight line across the touch surface
    

    CountTrackingIDValidator
        count of trackid IDs: 1
        criteria_str: == 1
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[x]: 1.95 mm
        rms_err[x]: 0.59 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.944629
    

    Linearity(BothEnds)Validator
        max_err[x]: 17.92 mm
        rms_err[x]: 7.17 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot0: 2.106741
        criteria_str: <= 1.8, ~ +1.0
    score: 0.785261
    

    NoLevelJumpValidator
          accu jump (0 x): 11 px
          accu jump (0 y): 0 px
        Max accu jump: 11 px
        criteria_str: <= 10, ~ +30
    score: 0.997261
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 176.29 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/drag_edge_thumb.left_to_right-link-fw_1.0.AA-manual-20131115_234910.dat)

    
[1;34m<drag_edge_thumb>[0m:
    Drag the edge of your thumb [1;32mhorizontally from right to left[0m in a straight line across the touch surface
    

    CountTrackingIDValidator
        count of trackid IDs: 1
        criteria_str: == 1
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[x]: 4.21 mm
        rms_err[x]: 1.44 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.022520
    

    Linearity(BothEnds)Validator
        max_err[x]: 6.20 mm
        rms_err[x]: 3.72 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot0: 3.264313
        criteria_str: <= 1.8, ~ +1.0
    score: 0.000000
    

    NoLevelJumpValidator
          accu jump (0 x): 91 px
          accu jump (0 y): 0 px
        Max accu jump: 91 px
        criteria_str: <= 10, ~ +30
    score: 0.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 176.02 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/drag_edge_thumb.right_to_left-link-fw_1.0.AA-manual-20131115_234922.dat)

    
[1;34m<drag_edge_thumb>[0m:
    Drag the edge of your thumb [1;32mvertically from top to bottom[0m in a straight line across the touch surface
    

    CountTrackingIDValidator
        count of trackid IDs: 1
        criteria_str: == 1
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[y]: 1.68 mm
        rms_err[y]: 0.75 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.990983
    

    Linearity(BothEnds)Validator
        max_err[y]: 14.32 mm
        rms_err[y]: 5.56 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot0: 2.603417
        criteria_str: <= 1.8, ~ +1.0
    score: 0.092360
    

    NoLevelJumpValidator
          accu jump (0 x): 0 px
          accu jump (0 y): 16 px
        Max accu jump: 16 px
        criteria_str: <= 10, ~ +30
    score: 0.904508
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'y': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 168.88 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/drag_edge_thumb.top_to_bottom-link-fw_1.0.AA-manual-20131115_234928.dat)

    
[1;34m<drag_edge_thumb>[0m:
    Drag the edge of your thumb [1;32mvertically from bottom to top[0m in a straight line across the touch surface
    

    CountTrackingIDValidator
        count of trackid IDs: 1
        criteria_str: == 1
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[y]: 0.78 mm
        rms_err[y]: 0.28 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 1.000000
    

    Linearity(BothEnds)Validator
        max_err[y]: 10.80 mm
        rms_err[y]: 4.16 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot0: 1.434086
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoLevelJumpValidator
          accu jump (0 x): 0 px
          accu jump (0 y): 0 px
        Max accu jump: 0 px
        criteria_str: <= 10, ~ +30
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'y': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 172.46 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/drag_edge_thumb.bottom_to_top-link-fw_1.0.AA-manual-20131115_234934.dat)

    
[1;34m<two_close_fingers_tracking>[0m:
    With two fingers close together (lightly touching each other) in a two finger scrolling gesture, draw a [1;32mhorizontal[0m line [1;32mfrom left to right[0m.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[x]: 2.34 mm
        rms_err[x]: 0.91 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.818437
    

    Linearity(BothEnds)Validator
        max_err[x]: 12.30 mm
        rms_err[x]: 5.40 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    Linearity(Middle)Validator
        max_err[x]: 2.79 mm
        rms_err[x]: 0.96 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.610380
    

    Linearity(BothEnds)Validator
        max_err[x]: 12.14 mm
        rms_err[x]: 5.57 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoLevelJumpValidator
          accu jump (0 x): 0 px
          accu jump (0 y): 0 px
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
        Max accu jump: 0 px
        criteria_str: <= 10, ~ +30
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot0: 1.493073
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 136.65 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/two_close_fingers_tracking.left_to_right-link-fw_1.0.AA-manual-20131115_234941.dat)

    
[1;34m<two_close_fingers_tracking>[0m:
    With two fingers close together (lightly touching each other) in a two finger scrolling gesture, draw a [1;32mvertical[0m line [1;32mfrom top to bottom[0m.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[y]: 2.97 mm
        rms_err[y]: 1.03 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.517314
    

    Linearity(BothEnds)Validator
        max_err[y]: 16.49 mm
        rms_err[y]: 8.18 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    Linearity(Middle)Validator
        max_err[y]: 2.80 mm
        rms_err[y]: 0.93 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.605558
    

    Linearity(BothEnds)Validator
        max_err[y]: 17.30 mm
        rms_err[y]: 8.52 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoLevelJumpValidator
          accu jump (0 x): 0 px
          accu jump (0 y): 0 px
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
        Max accu jump: 0 px
        criteria_str: <= 10, ~ +30
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot0: 1.257410
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'y': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 123.18 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/two_close_fingers_tracking.top_to_bottom-link-fw_1.0.AA-manual-20131115_235009.dat)

    
[1;34m<two_close_fingers_tracking>[0m:
    With two fingers close together (lightly touching each other) in a two finger scrolling gesture, draw a [1;32mdiagonal[0m line [1;32mfrom the top left to the bottom right[0m.
    

    CountTrackingIDValidator
        count of trackid IDs: 8
        criteria_str: == 2
    score: 0.000000
    

    Linearity(Middle)Validator
        max_err[y]: 0.68 mm
        rms_err[y]: 0.35 mm
        max_err[x]: 1.11 mm
        rms_err[x]: 0.58 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 1.000000
    

    Linearity(BothEnds)Validator
        max_err[y]: 4.68 mm
        rms_err[y]: 2.05 mm
        max_err[x]: 2.35 mm
        rms_err[x]: 1.24 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    Linearity(Middle)Validator
        max_err[y]: 0.87 mm
        rms_err[y]: 0.45 mm
        max_err[x]: 0.36 mm
        rms_err[x]: 0.20 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 1.000000
    

    Linearity(BothEnds)Validator
        max_err[y]: 2.41 mm
        rms_err[y]: 1.27 mm
        max_err[x]: 3.06 mm
        rms_err[x]: 1.64 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.466266
    

    NoLevelJumpValidator
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
          accu jump (2 x): 18 px
          accu jump (2 y): 40 px
          accu jump (0 x): 0 px
          accu jump (0 y): 49 px
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
          accu jump (0 x): 156 px
          accu jump (0 y): 139 px
          accu jump (2 x): 19 px
          accu jump (2 y): 16 px
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
          accu jump (0 x): 27 px
          accu jump (0 y): 26 px
        Max accu jump: 156 px
        criteria_str: <= 10, ~ +30
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot0: 286.644379
        criteria_str: <= 1.8, ~ +1.0
    score: 0.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'y': -114, 'x': -6} px
        criteria_str: <= 5, ~ +30
    score: 0.000000
    

    ReportRateValidator
        Report rate: 124.32 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/two_close_fingers_tracking.top_left_to_bottom_right-link-fw_1.0.AA-manual-20131115_235024.dat)

    
[1;34m<resting_finger_plus_2nd_finger_move>[0m:
    With a stationary finger in the bottom left corner, take [1;32m3 seconds[0m to draw a straight line [1;32mfrom the top left to the bottom right[0m with a second finger.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[y]: 1.28 mm
        rms_err[y]: 0.62 mm
        max_err[x]: 2.73 mm
        rms_err[x]: 1.45 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.637141
    

    Linearity(BothEnds)Validator
        max_err[y]: 4.67 mm
        rms_err[y]: 1.42 mm
        max_err[x]: 5.30 mm
        rms_err[x]: 1.92 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.607907
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0, 'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 145.15 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 1 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/resting_finger_plus_2nd_finger_move.top_left_to_bottom_right.slow-link-fw_1.0.AA-manual-20131115_235042.dat)

    
[1;34m<resting_finger_plus_2nd_finger_move>[0m:
    With a stationary finger in the bottom left corner, take [1;32m3 seconds[0m to draw a straight line [1;32mfrom the bottom right to the top left[0m with a second finger.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[y]: 6.88 mm
        rms_err[y]: 2.49 mm
        max_err[x]: 5.69 mm
        rms_err[x]: 1.83 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    Linearity(BothEnds)Validator
        max_err[y]: 9.96 mm
        rms_err[y]: 5.81 mm
        max_err[x]: 10.45 mm
        rms_err[x]: 7.72 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot1: 2.265556
        criteria_str: <= 1.8, ~ +1.0
    score: 0.553999
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'y': 0, 'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 144.85 Hz
        criteria_str: >= 60
    score: 1.000000
    

    StationaryFingerValidator
        Max distance slot0: 0 mm
        criteria_str: <= 1.25, ~ +1.25
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/resting_finger_plus_2nd_finger_move.bottom_right_to_top_left.slow-link-fw_1.0.AA-manual-20131115_235108.dat)

    
[1;34m<two_fat_fingers_tracking>[0m:
    Use two FAT fingers separated by about 1cm to draw a straight line [1;32mfrom left to right[0m.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[x]: 2.35 mm
        rms_err[x]: 0.99 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.816379
    

    Linearity(BothEnds)Validator
        max_err[x]: 10.52 mm
        rms_err[x]: 4.20 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    Linearity(Middle)Validator
        max_err[x]: 2.11 mm
        rms_err[x]: 0.82 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.900191
    

    Linearity(BothEnds)Validator
        max_err[x]: 12.10 mm
        rms_err[x]: 4.80 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot0: -inf
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.643990
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoLevelJumpValidator
          accu jump (0 x): 0 px
          accu jump (0 y): 0 px
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
        Max accu jump: 0 px
        criteria_str: <= 10, ~ +30
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 147.33 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/two_fat_fingers_tracking.left_to_right-link-fw_1.0.AA-manual-20131115_235118.dat)

    
[1;34m<two_fat_fingers_tracking>[0m:
    Use two FAT fingers separated by about 1cm to draw a straight line [1;32mfrom right to left[0m.
    

    CountTrackingIDValidator
        count of trackid IDs: 2
        criteria_str: == 2
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[x]: 1.67 mm
        rms_err[x]: 0.69 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.992160
    

    Linearity(BothEnds)Validator
        max_err[x]: 18.40 mm
        rms_err[x]: 7.61 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    Linearity(Middle)Validator
        max_err[x]: 3.20 mm
        rms_err[x]: 0.73 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.394612
    

    Linearity(BothEnds)Validator
        max_err[x]: 20.02 mm
        rms_err[x]: 9.01 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot0: 1.581139
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoGapValidator
        Largest gap ratio slot1: 1.570645
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoLevelJumpValidator
          accu jump (0 x): 0 px
          accu jump (0 y): 0 px
          accu jump (1 x): 0 px
          accu jump (1 y): 0 px
        Max accu jump: 0 px
        criteria_str: <= 10, ~ +30
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot1: {'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 146.92 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/two_fat_fingers_tracking.right_to_left-link-fw_1.0.AA-manual-20131115_235132.dat)

    
[1;34m<first_finger_tracking_and_second_finger_taps>[0m:
    While drawing a straight line [1;32mfrom top left to bottom right[0m slowly (~3 seconds), tap the bottom left corner with a second finger gently 3 times.
    

    CountTrackingIDValidator
        count of trackid IDs: 4
        criteria_str: == 4
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[y]: 3.13 mm
        rms_err[y]: 1.07 mm
        max_err[x]: 3.01 mm
        rms_err[x]: 1.43 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.431877
    

    Linearity(BothEnds)Validator
        max_err[y]: 4.65 mm
        rms_err[y]: 3.22 mm
        max_err[x]: 3.76 mm
        rms_err[x]: 2.39 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot0: -inf
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'y': 0, 'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 174.82 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/first_finger_tracking_and_second_finger_taps.top_left_to_bottom_right-link-fw_1.0.AA-manual-20131115_235140.dat)

    
[1;34m<first_finger_tracking_and_second_finger_taps>[0m:
    While drawing a straight line [1;32mfrom bottom right to top left[0m slowly (~3 seconds), tap the bottom left corner with a second finger gently 3 times.
    

    CountTrackingIDValidator
        count of trackid IDs: 4
        criteria_str: == 4
    score: 1.000000
    

    Linearity(Middle)Validator
        max_err[y]: 4.48 mm
        rms_err[y]: 1.48 mm
        max_err[x]: 9.63 mm
        rms_err[x]: 2.64 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    Linearity(BothEnds)Validator
        max_err[y]: 6.83 mm
        rms_err[y]: 3.78 mm
        max_err[x]: 14.41 mm
        rms_err[x]: 7.66 mm
        criteria_str: <= 1.5, ~ +3.0
    score: 0.000000
    

    NoGapValidator
        Largest gap ratio slot0: 1.173609
        criteria_str: <= 1.8, ~ +1.0
    score: 1.000000
    

    NoReversedMotion(Middle)Validator
        Reversed motions slot0: {'y': 0, 'x': 0} px
        criteria_str: <= 5, ~ +30
    score: 1.000000
    

    ReportRateValidator
        Report rate: 172.33 Hz
        criteria_str: >= 60
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/first_finger_tracking_and_second_finger_taps.bottom_right_to_top_left-link-fw_1.0.AA-manual-20131115_235154.dat)

    
[1;34m<drumroll>[0m:
    Use the index and middle finger of one hand to make a "drum roll" [1;32mas fast as possible[0m by alternately tapping each finger for 5 seconds.
    

    CountTrackingIDValidator
        count of trackid IDs: 52
        criteria_str: >= 5
    score: 1.000000
    

    DrumrollValidator
        Max radius: 0.04 mm
        criteria_str: <= 2.0
    score: 1.000000
    (saved: /var/tmp/touch_firmware_test/20131115_234449-fw_1.0.AA-manual/drumroll.fast-link-fw_1.0.AA-manual-20131115_235207.dat)

    
Final score: 0.806674199204

