XOR-уравнение A

Задача 877

Будем использовать обозначение $x\oplus y$ для побитового XOR от $x$ и $y$.
Определим XOR-произведение $x$ и $y$, обозначаемое $x \otimes y$, аналогично умножению в столбик в двоичной системе счисления, с единственным отличием в том, что промежуточные результаты подвергаются операции XOR вместо обычного целочисленного сложения.

Например, $7 \otimes 3 = 9$, или же, в двоичной системе счисления, $111_2 \otimes 11_2 = 1001_2$:

$$\begin{align*} \phantom{\otimes 111} 111_2 \\ \otimes \phantom{1111} 11_2 \\ \hline \phantom{\otimes 111} 111_2 \\ \oplus \phantom{11} 111_2 \phantom{9} \\ \hline \phantom{\otimes 11} 1001_2 \\ \end{align*}$$
Рассмотрим следующее уравнение:
$$\begin{align} (a \otimes a) \oplus (2 \otimes a \otimes b) \oplus (b \otimes b) = 5 \end{align}$$
$(a, b) = (3, 6)$ является примером решения этого уравнения.

Пусть $X(N)$ будет результатом XOR от всех значений $b$ для всех решений этого уравнения, удовлетворяющих условию $0 \le a \le b \le N$.
Известно, что $X(10)=5$.

Найдите $X(10^{18})$.