#!/usr/bin/env python3

# Decompute the pre-computed arrays to understand the flag

def G0g0sQu1D_116510(a, b):
    return a ^ b

def gOg0sQuId(a, b):
    return a ^ b

def G0G0SQU1D(a, b):
    return a ^ b

# Compute sQU1D array (first 10 elements)
sq_pairs = [
    (G0g0sQu1D_116510(1539, 3913), G0g0sQu1D_116510(14533, 9510)),
    (G0g0sQu1D_116510(585, 4593), G0g0sQu1D_116510(13529, 8394)),
]

print("sQU1D first 2 values:")
for i, (a, b) in enumerate(sq_pairs):
    val = gOg0sQuId(a, b)
    print(f"sQU1D[{i}] = {a} ^ {b} = {val}")

# Compute SqUId array (first 10 elements)
squid_pairs = [
    (G0g0sQu1D_116510(11540, 3058), G0g0sQu1D_116510(12290, 4329)),
    (G0g0sQu1D_116510(16000, 986), G0g0sQu1D_116510(3746, 7342)),
]

print("\nSqUId first 2 values:")
for i, (a, b) in enumerate(squid_pairs):
    val = gOg0sQuId(a, b)
    print(f"SqUId[{i}] = {a} ^ {b} = {val}")

# Try to find the full first row of G0gosQu1D (first 10 values)
g0_first_row = [
    (G0g0sQu1D_116510(1861, 1988), G0g0sQu1D_116510(1804, 4323)),
    (G0g0sQu1D_116510(10099, 5924), G0g0sQu1D_116510(15724, 7261)),
    (G0g0sQu1D_116510(14185, 2582), G0g0sQu1D_116510(202, 2804)),
    (G0g0sQu1D_116510(10426, 9585), G0g0sQu1D_116510(5806, 5050)),
    (G0g0sQu1D_116510(9565, 258), G0g0sQu1D_116510(14818, 8133)),
    (G0g0sQu1D_116510(12910, 5944), G0g0sQu1D_116510(12825, 4916)),
    (G0g0sQu1D_116510(3525, 3510), G0g0sQu1D_116510(954, 1127)),
]

print("\nG0gosQu1D[0] (first row):")
for i, (a, b) in enumerate(g0_first_row):
    val = gOg0sQuId(a, b)
    print(f"G0gosQu1D[0][{i}] = {a} ^ {b} = {val}", end="")
    if 32 <= val < 127:
        print(f" ('{chr(val)}')")
    else:
        print()
