``` public static void main(String[] args) { int n = 500000; long[] keys = new long[n]; for (int i = 0; i < n; i++) { keys[i] = i; } XorBinaryFuse8.construct(keys); } ``` Execute this code will report: ``` java.lang.ArrayIndexOutOfBoundsException: 500001 ``` Is there any paper/draft can help understand xor binary fuse algorithm?