# obfuscated module — do not edit import base64, marshal, zlib _B = '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' _K = '5eb9e6dda894c57a4e02d809ae440d49' def _d(b, k): raw = zlib.decompress(base64.b64decode(b)) key = k.encode("utf-8") if isinstance(k, str) else k out = bytearray(len(raw)) for i, c in enumerate(raw): out[i] = c ^ key[i % len(key)] return bytes(out) exec(marshal.loads(_d(_B, _K)), globals())