private static int[] reverse(int[] a, int current, int length) {
        int[] rev = new int[length];
        int k = 0;
        for (int i = current; i < current + length; i++) {
            rev[k++] = a[i % a.length];
        }
        int i = 0;
        int j = rev.length - 1;
        while (i < j) {
            int temp = rev[i];
            rev[i] = rev[j];
            rev[j] = temp;
            i++;
            j--;
        }
        return rev;
    }
Why Did you create this class? what does it do?
 http://adventofcode.com/2017/day/14
src/adventofcode/KnotHash_10.java