If you split the code we get from the challenge into 5 parts and then reversing the order of this parts:
```cipher = "ÄÑÓ¿ÂÒêáøz§è§ñy÷¦"key    = "r34l_g4m3rs_eXclus1v3"
flag = [0] * 21
flag[0] = ord('h')flag[1] = ord('0')flag[7] = ord('u')
# First cipher = cipher[9:] + cipher[:9]
# Secondcipher = list(cipher)for i in range(9):	cipher[i] = chr(ord(cipher[i]) - 20)
cipher = "".join(cipher)
# Thirdfor i in range(15, 21):	flag[i] = ord(cipher[i - 3]) - ord(key[i - 3])
# Fourthfor i in range(10, 15):	flag[i - 8] = ord(cipher[i - 3]) - ord(key[i])
# Fifthfor i in range(0, 7):	flag[i + 8] = ord(cipher[i]) - ord(key[i])
print("rtcp{" + "".join([chr(num) for num in flag]) + "}")
```
then, you get the flag :)`rtcp{h0p3_y0ur3_h4v1ng_fun}`