import hashlib
def H(val: str) -> str:
"""Weak hash function that returns a 4-byte hash.
:param str val: Hex-encoded input.
:return: Four-byte hash of input encoded in hex.
:rtype: str
"""
return hashlib.sha256(bytes.fromhex(val)).hexdigest()[:8]
a = 3 # Number of levels
node = [[''] * 2**a for i in range(a+1)]
Y_6 = '20149512' # Secret key
print(f"Revealed secret key, Y_6={Y_6}")
authpath = ['8fc53ad8','7890c8b6', '076f83f6']
print(f"AUTHPATH={authpath}")
node[0][6] = H(Y_6)
print(f"node(0,6)=H(Y_6)=H({Y_6})={node[0][6]}")
node[0][7] = authpath[0]
print(f"node(0,7)=authpath[0]={node[0][7]}")
node[1][3] = H(node[0][6] + node[0][7])
print(f"node(1,3)=H({node[0][6]}||{node[0][7]})={node[1][3]}")
node[1][2] = authpath[1]
print(f"node(1,2)=authpath[1]={node[1][2]}")
node[2][1] = H(node[1][2] + node[1][3])
print(f"node(2,1)=H({node[1][2]}||{node[1][3]})={node[2][1]}")
node[2][0] = authpath[2]
print(f"node(2,0)=authpath[2]={node[2][0]}")
node[3][0] = H(node[2][0] + node[2][1])
print(f"root=node(3,0)=H({node[2][0]}||{node[2][1]})={node[3][0]}")