public class Verifier
{
    public static final String INPUT_SIGNAL_1 = "03036732577212944063491565474664";
    public static final int[] SIGNAL_1_RESULT = {8, 4, 4, 6, 2, 0, 2, 6};

    public static final String INPUT_SIGNAL_2 = "02935109699940807407585447034323";
    public static final int[] SIGNAL_2_RESULT = {7, 8, 7, 2, 5, 2, 7, 0};

    public static final String INPUT_SIGNAL_3 = "03081770884921959731165446850517";
    public static final int[] SIGNAL_3_RESULT = {5, 3, 5, 5, 3, 7, 3, 1};

    public Verifier (boolean debug)
    {
        _debug = debug;
        _fft = new Compute(_debug);
    }

    public final boolean verify ()
    {
        boolean result = true;
        int[] signal = Util.replicate(INPUT_SIGNAL_1, Util.REPEAT_SIZE);
        int[] data = _fft.fastProcess(signal, Util.PHASES);
        long offset = Util.offset(INPUT_SIGNAL_1);

        //if (_debug)
            System.out.println("Offset for "+INPUT_SIGNAL_1+" is "+offset);

        System.out.println();
        Util.printSignal(data, INPUT_SIGNAL_1.length());

        return result;
    }
    
    private boolean _debug;
    Compute _fft;
}
@@ -820,12 +820,11 @@
     
-long
+int
  off
@@ -871,10 +871,8 @@
     
-//
 if (
@@ -952,24 +952,111 @@
 %22+offset);%0A%0A
+        int%5B%5D message = Util.message(data, offset);%0A%0A        if (_debug)%0A        %7B%0A    
         Syst
@@ -1081,16 +1081,20 @@
         
+    
 Util.pri
@@ -1106,39 +1106,213 @@
 nal(
-data, INPUT_SIGNAL_1.length());
+message, Util.MESSAGE_SIZE);%0A        %7D%0A%0A        for (int i = 0; (i %3C Util.MESSAGE_SIZE) && result; i++)%0A        %7B%0A            if (message%5Bi%5D != SIGNAL_1_RESULT%5Bi%5D)%0A                result = false;%0A        %7D
 %0A%0A  

Update Verifier.java