시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 14 13 9 90.000%

문제

여기 암호화해서 전송하고싶은 데이터가 32bit unsigned int 8개 형태로 주어져있다.

N1 N2 N3 ... N8

우선 이 데이터가 올바른 데이터인지 확인해주는 checksum을 구해서 9번째 데이터로 추가해줬다. (checksum은 데이터의 무결성을 확인하는데 자주 사용되는 방식이다.)

N9 = sigma(Ni) mod 2^32

그다음 특정 32bit 키값 K를 이용해서 이 9개의 숫자를 암호화하려고 한다. 암호화는 XOR 연산을 통해 이루어진다고 보자. (XOR은 데이터의 암호화를 위해 자주 사용되는 연산자다.)

M1 = N1 ^K, M2 = N2 ^ K ... M9 = N9 ^ K

이렇게 해서 만들어진 M1 ~ M9 9개의 데이터를 전송하면 K값을 알고있는 사람은 원래 데이터 N1 ~ N8을 알아낼 수 있다. 그리고 K값을 모르는 사람은 원래 데이터 N1 ~ N8을 알아낼 수.....있다!

놀랍게도 위의 방식에는 취약점이 존재한다. 취약점을 발견해서 9개의 정수 M1 ~ M9 가 16진수 형태로 주어졌을 때, 키값 K를 구하는 프로그램을 작성해보자.

입력

입력의 첫째 줄에는 테스트데이터의 개수 T가 주어진다. T는 1000을 넘지 않는다.

그 다음 각 테스트데이터마다 9개의 정수 M1 ~ M9 가 16진수 형태로 주어진다. 16진수는 '0' ~ '9' 그리고 소문자로만 이루어져 있고, 불필요한 0은 들어오지 않는다. 9개의 숫자가 한 줄에 모두 입력되지 않을 수도 있다.

출력

각 테스트데이터마다 한줄에 하나씩 키값 K를 소문자 16진수 형태로 출력한다. 불필요한 0은 출력하지 않는다.

예제 입력 1

8
1 1 1 1 1 1 1 1 8
3 2 3 2 3 2 3 2 6
3 4 4 7 7 b a 2 2e
e1 13 ce 28 ca 6 ab 46 a6d
b08 49e2 6128 f27 8cf2 bc50 7380 7fe1 723b
4eba eb4 a352 fd14 6ac1 eed1 dd06 bb83 392bc
ef593c08 847e522f 74c02b9c 26f3a4e1 e2720a01 6fe66007
7a4e96ad 6ee5cef6 3853cd88
60202fb8 757d6d66 9c3a9525 fbcd7983 82b9571c ddc54bab 853e52da
22047c88 e5524401

예제 출력 1

0
2
6
1c6
4924afc7
ffff95c5
546991d
901c4a16

힌트

원문으로 볼 시 스포일러 주의

W3sicHJvYmxlbV9pZCI6IjM5MjUiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM1NTRcdWQ2MzhcdWQ2NTRcdWM3NTggXHVjZGU4XHVjNTdkXHVjODEwIFx1Y2MzZVx1YWUzMCIsImRlc2NyaXB0aW9uIjoiPHA+XHVjNWVjXHVhZTMwIFx1YzU1NFx1ZDYzOFx1ZDY1NFx1ZDU3NFx1YzExYyBcdWM4MDRcdWMxYTFcdWQ1NThcdWFjZTBcdWMyZjZcdWM3NDAgXHViMzcwXHVjNzc0XHVkMTMwXHVhYzAwIDMyYml0IHVuc2lnbmVkIGludCA4XHVhYzFjIFx1ZDYxNVx1ZDBkY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM4MzhcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPk4xIE4yIE4zIC4uLiBOODxcL3A+XHJcblxyXG48cD5cdWM2YjBcdWMxMjAgXHVjNzc0IFx1YjM3MFx1Yzc3NFx1ZDEzMFx1YWMwMCBcdWM2MmNcdWJjMTRcdWI5NzggXHViMzcwXHVjNzc0XHVkMTMwXHVjNzc4XHVjOWMwIFx1ZDY1NVx1Yzc3OFx1ZDU3NFx1YzhmY1x1YjI5NCBjaGVja3N1bVx1Yzc0NCBcdWFkNmNcdWQ1NzRcdWMxMWMgOVx1YmM4OFx1YzlmOCBcdWIzNzBcdWM3NzRcdWQxMzBcdWI4NWMgXHVjZDk0XHVhYzAwXHVkNTc0XHVjOTJjXHViMmU0LiAoY2hlY2tzdW1cdWM3NDAgXHViMzcwXHVjNzc0XHVkMTMwXHVjNzU4IFx1YmIzNFx1YWNiMFx1YzEzMVx1Yzc0NCBcdWQ2NTVcdWM3NzhcdWQ1NThcdWIyOTRcdWIzNzAgXHVjNzkwXHVjOGZjIFx1YzBhY1x1YzZhOVx1YjQxOFx1YjI5NCBcdWJjMjlcdWMyZGRcdWM3NzRcdWIyZTQuKTxcL3A+XHJcblxyXG48cD5OOSA9IHNpZ21hKE5pKSBtb2QgMl4zMjxcL3A+XHJcblxyXG48cD5cdWFkZjhcdWIyZTRcdWM3NGMgXHVkMmI5XHVjODE1IDMyYml0IFx1ZDBhNFx1YWMxMiBLXHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU3NFx1YzExYyBcdWM3NzQgOVx1YWMxY1x1Yzc1OCBcdWMyMmJcdWM3OTBcdWI5N2MgXHVjNTU0XHVkNjM4XHVkNjU0XHVkNTU4XHViODI0XHVhY2UwIFx1ZDU1Y1x1YjJlNC4gXHVjNTU0XHVkNjM4XHVkNjU0XHViMjk0IFhPUiBcdWM1ZjBcdWMwYjBcdWM3NDQgXHVkMWI1XHVkNTc0IFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNFx1YjJlNFx1YWNlMCBcdWJjZjRcdWM3OTAuIChYT1JcdWM3NDAgXHViMzcwXHVjNzc0XHVkMTMwXHVjNzU4IFx1YzU1NFx1ZDYzOFx1ZDY1NFx1Yjk3YyBcdWM3MDRcdWQ1NzQgXHVjNzkwXHVjOGZjIFx1YzBhY1x1YzZhOVx1YjQxOFx1YjI5NCBcdWM1ZjBcdWMwYjBcdWM3OTBcdWIyZTQuKTxcL3A+XHJcblxyXG48cD5NMSA9IE4xIF5LLCBNMiA9IE4yIF4gSyAuLi4gTTkgPSBOOSBeIEs8XC9wPlxyXG5cclxuPHA+XHVjNzc0XHViODA3XHVhYzhjIFx1ZDU3NFx1YzExYyBcdWI5Y2NcdWI0ZTRcdWM1YjRcdWM5YzQgTTEgfiBNOSA5XHVhYzFjXHVjNzU4IFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yjk3YyBcdWM4MDRcdWMxYTFcdWQ1NThcdWJhNzQgS1x1YWMxMlx1Yzc0NCBcdWM1NGNcdWFjZTBcdWM3ODhcdWIyOTQgXHVjMGFjXHViNzhjXHVjNzQwIFx1YzZkMFx1Yjc5OCBcdWIzNzBcdWM3NzRcdWQxMzAgTjEgfiBOOFx1Yzc0NCBcdWM1NGNcdWM1NDRcdWIwYmMgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVhZGY4XHViOWFjXHVhY2UwIEtcdWFjMTJcdWM3NDQgXHViYWE4XHViOTc0XHViMjk0IFx1YzBhY1x1Yjc4Y1x1Yzc0MCBcdWM2ZDBcdWI3OTggXHViMzcwXHVjNzc0XHVkMTMwIE4xIH4gTjhcdWM3NDQgXHVjNTRjXHVjNTQ0XHViMGJjIFx1YzIxOC4uLi4uXHVjNzg4XHViMmU0ITxcL3A+XHJcblxyXG48cD5cdWIxODBcdWI3OGRcdWFjOGNcdWIzYzQgXHVjNzA0XHVjNzU4IFx1YmMyOVx1YzJkZFx1YzVkMFx1YjI5NCBcdWNkZThcdWM1N2RcdWM4MTBcdWM3NzQgXHVjODc0XHVjN2FjXHVkNTVjXHViMmU0LiBcdWNkZThcdWM1N2RcdWM4MTBcdWM3NDQgXHViYzFjXHVhY2FjXHVkNTc0XHVjMTFjIDlcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4IE0xIH4gTTkgXHVhYzAwIDE2XHVjOWM0XHVjMjE4IFx1ZDYxNVx1ZDBkY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWQwYTRcdWFjMTIgS1x1Yjk3YyBcdWFkNmNcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU3NFx1YmNmNFx1Yzc5MC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Yzc4NVx1YjgyNVx1Yzc1OCBcdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1ZDE0Y1x1YzJhNFx1ZDJiOFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yzc1OCBcdWFjMWNcdWMyMTggVFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFRcdWIyOTQgMTAwMFx1Yzc0NCBcdWIxMThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFkZjggXHViMmU0XHVjNzRjIFx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjhcdWIzNzBcdWM3NzRcdWQxMzBcdWI5YzhcdWIyZTQgOVx1YWMxY1x1Yzc1OCBcdWM4MTVcdWMyMTggTTEgfiBNOSBcdWFjMDAgMTZcdWM5YzRcdWMyMTggXHVkNjE1XHVkMGRjXHViODVjIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gMTZcdWM5YzRcdWMyMThcdWIyOTQgJiMzOTswJiMzOTsgfiAmIzM5OzkmIzM5OyBcdWFkZjhcdWI5YWNcdWFjZTAgXHVjMThjXHViYjM4XHVjNzkwXHViODVjXHViOWNjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWFjZTAsIFx1YmQ4OFx1ZDU0NFx1YzY5NFx1ZDU1YyAwXHVjNzQwIFx1YjRlNFx1YzViNFx1YzYyNFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuIDlcdWFjMWNcdWM3NTggXHVjMjJiXHVjNzkwXHVhYzAwIFx1ZDU1YyBcdWM5MDRcdWM1ZDAgXHViYWE4XHViNDUwIFx1Yzc4NVx1YjgyNVx1YjQxOFx1YzljMCBcdWM1NGFcdWM3NDQgXHVjMjE4XHViM2M0IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4XHViMzcwXHVjNzc0XHVkMTMwXHViOWM4XHViMmU0IFx1ZDU1Y1x1YzkwNFx1YzVkMCBcdWQ1NThcdWIwOThcdWM1MjkgXHVkMGE0XHVhYzEyIEtcdWI5N2MgXHVjMThjXHViYjM4XHVjNzkwIDE2XHVjOWM0XHVjMjE4IFx1ZDYxNVx1ZDBkY1x1Yjg1YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YmQ4OFx1ZDU0NFx1YzY5NFx1ZDU1YyAwXHVjNzQwIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IjxwPlx1YzZkMFx1YmIzOFx1YzczY1x1Yjg1YyBcdWJjZmMgXHVjMmRjIFx1YzJhNFx1ZDNlY1x1Yzc3Y1x1YjdlYyBcdWM4ZmNcdWM3NTg8XC9wPlxyXG4iLCJvcmlnaW5hbCI6IjAiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1ZDU1Y1x1YWQ2ZFx1YzViNCJ9LHsicHJvYmxlbV9pZCI6IjM5MjUiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJMZWFreSBDcnlwdG9ncmFwaHkiLCJkZXNjcmlwdGlvbiI6IjxwPlRoZSBBQ00gSUNQQyBqdWRnZXMgYXJlIHZlcnkgY2FyZWZ1bCBhYm91dCBub3QgbGVha2luZyB0aGVpciBwcm9ibGVtcywgYW5kIGFsbCBjb21tdW5pY2F0aW9ucyBhcmUgZW5jcnlwdGVkLiBIb3dldmVyLCBvbmUgZG9lcyBzb21ldGltZXMgbWFrZSBtaXN0YWtlcywgbGlrZSB1c2luZyB0b28gd2VhayBhbiBlbmNyeXB0aW9uIHNjaGVtZS4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIHRoYXQuPFwvcD5cclxuXHJcbjxwPlRoZSBlbmNyeXB0aW9uIGNob3NlbiB3YXMgdmVyeSBzaW1wbGU6IGVuY3J5cHQgZWFjaCBjaHVuayBvZiB0aGUgaW5wdXQgYnkgZmxpcHBpbmcgc29tZSBiaXRzIGFjY29yZGluZyB0byBhIHNoYXJlZCBrZXkuIFRvIHByb3ZpZGUgcmVhc29uYWJsZSBzZWN1cml0eSwgdGhlIHNpemUgb2YgYm90aCBjaHVuayBhbmQga2V5IGlzIDMyIGJpdHMuPFwvcD5cclxuXHJcbjxwPlRoYXQgaXMsIHN1cHBvc2UgdGhlIGlucHV0IHdhcyBhIHNlcXVlbmNlIG9mIFxcKG1cXCkgMzItYml0IGludGVnZXJzLjxcL3A+XHJcblxyXG48cD5cXFtOXzEgTl8yIE5fMyBcXGRvdHMgTl9tXFxdPFwvcD5cclxuXHJcbjxwPkFmdGVyIGVuY29kaW5nIHdpdGggdGhlIGtleSBcXChLXFwpIGl0IGJlY29tZXMgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZSBvZiBcXChtXFwpIDMyLWJpdCBpbnRlZ2Vycy48XC9wPlxyXG5cclxuPHA+XFxbKE5fMSBcXHdlZGdlICZuYnNwO0spIChOXzIgXFx3ZWRnZSAmbmJzcDtLKSAoTl8zIFxcd2VkZ2UgJm5ic3A7SykgXFxkb3RzIChOX20gXFx3ZWRnZSAmbmJzcDtLKVxcXTxcL3A+XHJcblxyXG48cD53aGVyZSBcXCgoYSBcXHdlZGdlIGIpXFwpIGlzIHRoZSBiaXR3aXNlIGV4Y2x1c2l2ZSBvciBvZiBhIGFuZCBiLjxcL3A+XHJcblxyXG48cD5FeGNsdXNpdmUgb3IgaXMgdGhlIGxvZ2ljYWwgb3BlcmF0b3Igd2hpY2ggaXMgMSB3aGVuIG9ubHkgb25lIG9mIGl0cyBvcGVyYW5kcyBpcyAxLCBhbmQgMCBvdGhlcndpc2UuIEhlcmUgaXMgaXRzIGRlZmluaXRpb24gZm9yIDEtYml0IGludGVnZXJzLjxcL3A+XHJcblxyXG48cD5cXFswIFxcb3BsdXMgJm5ic3A7MCA9IDAgfn5+IDAgXFxvcGx1cyAmbmJzcDsgMSA9IDEgJm5ic3A7IFxcXFwgMSBcXG9wbHVzICZuYnNwOyAwID0gMSB+fn4gMSBcXG9wbHVzICZuYnNwOyAxID0gMFxcXTxcL3A+XHJcblxyXG48cD5BcyB5b3UgY2FuIHNlZSwgaXQgaXMgaWRlbnRpY2FsIHRvIGFkZGl0aW9uIG1vZHVsbyAyLiBGb3IgdHdvIDMyLWJpdCBpbnRlZ2VycyBcXChhXFwpIGFuZCBcXChiXFwpLCB0aGVpciBiaXR3aXNlIGV4Y2x1c2l2ZSBvciBcXChhIFxcd2VkZ2UgYlxcKSBpcyBkZWZpbmVkIGFzIGZvbGxvd3MsIHVzaW5nIHRoZWlyIGJpbmFyeSByZXByZXNlbnRhdGlvbnMsIGNvbXBvc2VkIG9mIDAmcnNxdW87cyBhbmQgMSZyc3F1bztzLjxcL3A+XHJcblxyXG48cD5cXFthIFxcd2VkZ2UgYiA9IGFfezMxfSBcXGRvdHMgYV8xYV8wIFxcd2VkZ2UgYl97MzF9IFxcZG90cyBiXzFiXzAgPSBjX3szMX0gXFxkb3RzIGNfMWNfMFxcXTxcL3A+XHJcblxyXG48cD53aGVyZTxcL3A+XHJcblxyXG48cD5cXFtjX2kgPSBhX2kgXFxvcGx1cyBiX2kgKGk9MCwxLFxcZG90czMxKVxcXTxcL3A+XHJcblxyXG48cD5Gb3IgaW5zdGFuY2UsIHVzaW5nIGJpbmFyeSBub3RhdGlvbiwgMTEwMTAxMTAgJmFuZDsgMDEwMTAxMDEgPSAxMDEwMDAxMSwgb3IgdXNpbmcgaGV4YWRlY2ltYWwsIGQ2ICZhbmQ7IDU1ID0gYTMuPFwvcD5cclxuXHJcbjxwPlNpbmNlIHRoaXMga2luZCBvZiBlbmNyeXB0aW9uIGlzIG5vdG9yaW91c2x5IHdlYWsgdG8gc3RhdGlzdGljYWwgYXR0YWNrcywgdGhlIG1lc3NhZ2UgaGFzIHRvIGJlIGNvbXByZXNzZWQgaW4gYWR2YW5jZSwgc28gdGhhdCBpdCBoYXMgbm8gc3RhdGlzdGljYWwgcmVndWxhcml0eS4gV2Ugc3VwcG9zZSB0aGF0IFxcKE5fMSBOXzIgXFxkb3RzIE5fbVxcKSBpcyBhbHJlYWR5IGluIGNvbXByZXNzZWQgZm9ybS48XC9wPlxyXG5cclxuPHA+SG93ZXZlciwgdGhlIHRyb3VibGUgaXMgdGhhdCB0aGUgY29tcHJlc3Npb24gYWxnb3JpdGhtIGl0c2VsZiBpbnRyb2R1Y2VzIHNvbWUgZm9ybSBvZiByZWd1bGFyaXR5OiBhZnRlciBldmVyeSA4IGludGVnZXJzIG9mIGNvbXByZXNzZWQgZGF0YSwgaXQgaW5zZXJ0cyBhIGNoZWNrc3VtLCB0aGUgc3VtIG9mIHRoZXNlIGludGVnZXJzLiBUaGF0IGlzLCBpbiB0aGUgYWJvdmUgaW5wdXQsIFxcKE5fOSA9IFxcc3VtX3tpPTF9Xns4fXtOX2l9ID0gTl8xICsgXFxjZG90cyArIE5fOFxcKSAsIHdoZXJlIGFkZGl0aW9ucyBhcmUgbW9kdWxvIDI8c3VwPjMyPFwvc3VwPi48XC9wPlxyXG5cclxuPHA+THVja2lseSwgeW91IGNvdWxkIGludGVyY2VwdCBhIGNvbW11bmljYXRpb24gYmV0d2VlbiB0aGUganVkZ2VzLiBNYXliZSBpdCBjb250YWlucyBhIHByb2JsZW0gZm9yIHRoZSBmaW5hbHMhPFwvcD5cclxuXHJcbjxwPkFzIHlvdSBhcmUgdmVyeSBjbGV2ZXIsIHlvdSBoYXZlIGNlcnRhaW5seSBzZWVuIHRoYXQgeW91IGNhbiBlYXNpbHkgZmluZCB0aGUgbG93ZXN0IGJpdCBvZiB0aGUga2V5LCBkZW5vdGVkIGJ5IFxcKEtfMFxcKS4gT24gdGhlIG9uZSBoYW5kLCBpZiBcXChLXzBcXCkgPSAxLCB0aGVuIGFmdGVyIGVuY29kaW5nLCB0aGUgbG93ZXN0IGJpdCBvZiBcXChcXHN1bV97aT0xfV57OH17IE5faSBcXHdlZGdlIEt9XFwpIGlzIHVuY2hhbmdlZCwgYXMgXFwoS18wXFwpIGlzIGFkZGVkIGFuIGV2ZW4gbnVtYmVyIG9mIHRpbWVzLCBidXQgdGhlIGxvd2VzdCBiaXQgb2YgXFwoTl85IFxcd2VkZ2UgS1xcKSBpcyBjaGFuZ2VkLCBzbyB0aGV5IHNoYWxsIGRpZmZlci4gT24gdGhlIG90aGVyIGhhbmQsIGlmIFxcKEtfMFxcKSA9IDAsIHRoZW4gYWZ0ZXIgZW5jb2RpbmcsIHRoZSBsb3dlc3QgYml0IG9mIFxcKFxcc3VtX3tpPTF9Xns4fXtOX2kgXFx3ZWRnZSBLfSBcXCkgc2hhbGwgc3RpbGwgYmUgaWRlbnRpY2FsIHRvIHRoZSBsb3dlc3QgYml0IG9mIFxcKE5fOSBcXHdlZGdlIEtcXCksIGFzIHRoZXkgZG8gbm90IGNoYW5nZS4gRm9yIGluc3RhbmNlLCBpZiB0aGUgbG93ZXN0IGJpdHMgYWZ0ZXIgZW5jb2RpbmcgYXJlIDEgMSAxIDEgMSAxIDEgMSAxIHRoZW4gXFwoS18wXFwpIG11c3QgYmUgMSwgYnV0IGlmIHRoZXkgYXJlIDEgMSAxIDEgMSAxIDEgMCAxIHRoZW4gXFwoS18wXFwpIG11c3QgYmUgMC48XC9wPlxyXG5cclxuPHA+U28gZmFyLCBzbyBnb29kLiBDYW4geW91IGRvIGJldHRlcj88XC9wPlxyXG5cclxuPHA+WW91IHNob3VsZCBmaW5kIHRoZSBrZXkgdXNlZCBmb3IgZW5jb2RpbmcuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgaW5wdXQgc3RhcnRzIHdpdGggYSBsaW5lIGNvbnRhaW5pbmcgb25seSBhIHBvc2l0aXZlIGludGVnZXIgUywgaW5kaWNhdGluZyB0aGUgbnVtYmVyIG9mIGRhdGFzZXRzIGluIHRoZSBpbnB1dC4gUyBpcyBubyBtb3JlIHRoYW4gMTAwMC48XC9wPlxyXG5cclxuPHA+SXQgaXMgZm9sbG93ZWQgYnkgUyBkYXRhc2V0cy4gRWFjaCBkYXRhc2V0IGlzIGNvbXBvc2VkIG9mIG5pbmUgMzItYml0IGludGVnZXJzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IG5pbmUgY2h1bmtzIG9mIGEgY29tbXVuaWNhdGlvbi4gVGhleSBhcmUgd3JpdHRlbiBpbiBoZXhhZGVjaW1hbCBub3RhdGlvbiwgdXNpbmcgZGlnaXRzICZsc3F1bzswJnJzcXVvOyB0byAmbHNxdW87OSZyc3F1bzsgYW5kIGxvd2VyY2FzZSBsZXR0ZXJzICZsc3F1bzthJnJzcXVvOyB0byAmbHNxdW87ZiZyc3F1bzssIGFuZCB3aXRoIG5vIGxlYWRpbmcgemVyb3MuIFRoZXkgYXJlIHNlcGFyYXRlZCBieSBhIHNwYWNlIG9yIGEgbmV3bGluZS4gRWFjaCBkYXRhc2V0IGlzIGVuZGVkIGJ5IGEgbmV3bGluZS48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5Gb3IgZWFjaCBkYXRhc2V0IHlvdSBzaG91bGQgb3V0cHV0IHRoZSBrZXkgdXNlZCBmb3IgZW5jb2RpbmcuIEVhY2gga2V5IHNoYWxsIGFwcGVhciBhbG9uZSBvbiBpdHMgbGluZSwgYW5kIGJlIHdyaXR0ZW4gaW4gaGV4YWRlY2ltYWwgbm90YXRpb24sIHVzaW5nIGRpZ2l0cyAmbHNxdW87MCZyc3F1bzsgdG8gJmxzcXVvOzkmcnNxdW87IGFuZCBsb3dlcmNhc2UgbGV0dGVycyAmbHNxdW87YSZyc3F1bzsgdG8gJmxzcXVvO2YmcnNxdW87LCBhbmQgd2l0aCBubyBsZWFkaW5nIHplcm9zLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==