시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 9 3 2 66.667%

문제

지금은 쓰이지 않는 Gould의 부동소수점 방식을 차용하여 만든 어떤 소수를 IEEE 부동소수점 방식으로 가능한 한 정확히 변환하려 한다.

Gould의 부동소수점 방식은 아래와 같다.

1개의 Sign 비트와 7개의 지수부 비트, 24개의 가수부 비트로 이루어져 있으며, 이 비트들을 16진수로 나타낸다. 가수의 첫 세 비트까지 0이 될 수 있다.

위 방식으로 표현한 소수는 아래와 같은 값이 된다.

value = ((-1)S)((16)(EXP-64))(MANTISSA / (224))

EXP는 지수부, MANTISSA는 가수부를 의미한다.

이 때, 0은 32개의 비트 0으로 이루어진다.

IEEE 부동소수점 방식은 아래와 같다.

1개의 Sign 비트, 8개의 지수부 비트, 24개의 가수부 비트로 이루어지며, 정규화된 수에서 가수부의 첫 비트는 항상 1이다. 이 항상 1인 하나의 비트는 가수부에 포함되지 않는다. 따라서 가수부는 23비트로 표현된다.

만일 지수 부분이 255가 아니고 0이 아닐 때 수는 정규화된 수이며, 아래와 같은 값을 가진다.

value = ((-1)S)((2)(EXP-127))(1 + (MANTISSA / (223)))

만일 지수 부분이 255이며 가수 부분이 0이라면, 이는 양의 무한대 또는 음의 무한대를 의미한다. 양과 음은 Sign 비트에 따라 결정된다.

만일 지수 부분이 255이며 가수 부분이 0이 아니라면, 이는 비정상적인 수이며 이 문제에서는 다루지 않을 것이다.

만일 지수 부분이 0이며 가수 부분이 0이라면, 이는 +0 또는 -0이다. (Sign 비트로 구분한다.)

만일 지수 부분이 0이며 가수 부분이 0이 아니라면, 이는 비정규 값이며 아래의 식에 따라 다르게 계산한다.

value = ((-1)S)((2)(-126))(MANTISSA / (223))

Gould의 방식으로 표현한 수가 주어진다. 이를 다음의 규칙에 따라 변환하여 출력한다.

  • 만일 그 값이 0이라면 출력은 +0
  • 만일 그 값이 정상적인 IEEE 부동소수점 방식으로 표현할 수 없을 만큼 클 경우, 양의 무한대 또는 음의 무한대. (Sign 비트로 구분)
  • 만일 그 값이 정상적인 IEEE 부동소수점 방식으로 표현할 수 없을 만큼 작을 경우 :
    • 만일 비정규 값일 경우, 비정규 식으로 계산한 결과값
    • 비정규 값이 아닐 경우, +0 또는 -0. (Sign 비트로 구분)
  • 다른 모든 경우에 대해서는 정규화된 IEEE 부동소수점 값 출력.

만일 IEEE 방식으로 표현했을 때 비트 수가 부족하다면 부족한 부분을 0으로 채운다.

만일 IEEE 방식으로 표현했을 때 비트 수가 남는다면 남는 부분을 제외한다.

입력

첫 줄에 테스트 케이스의 수 P가 주어진다. (1 ≤ P ≤ 1000)

각 테스트 케이스는 테스트 케이스의 번호와 Gould 방식의 부동소수점으로 표현한 수 하나가 16진수로 주어진다. 이 수는 0-9, A-F의 문자 8개로만 이루어져 있다.

출력

각 테스트 케이스마다, 테스트 케이스의 번호와 문제에서 설명한 방식대로 IEEE 방식으로 변환한 수를 16진수 8자리로 출력한다.

예제 입력 1

4
1 41200000
2 E0FFFFFE
3 E11FFFFF
4 88888888

예제 출력 1

1 40000000
2 FF7FFFFE
3 FF800000
4 80000000
W3sicHJvYmxlbV9pZCI6IjEwNDMzIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViZDgwXHViM2Q5XHVjMThjXHVjMjE4XHVjODEwIFx1ZDYxNVx1YzJkZCBcdWJjYzBcdWQ2NTgiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YzljMFx1YWUwOFx1Yzc0MCBcdWM0ZjBcdWM3NzRcdWM5YzAgXHVjNTRhXHViMjk0IEdvdWxkXHVjNzU4IFx1YmQ4MFx1YjNkOVx1YzE4Y1x1YzIxOFx1YzgxMCBcdWJjMjlcdWMyZGRcdWM3NDQgXHVjYzI4XHVjNmE5XHVkNTU4XHVjNWVjIFx1YjljY1x1YjRlMCBcdWM1YjRcdWI1YTQgXHVjMThjXHVjMjE4XHViOTdjIElFRUUgXHViZDgwXHViM2Q5XHVjMThjXHVjMjE4XHVjODEwIFx1YmMyOVx1YzJkZFx1YzczY1x1Yjg1YyBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVkNTVjIFx1YzgxNVx1ZDY1NVx1ZDc4OCBcdWJjYzBcdWQ2NThcdWQ1NThcdWI4MjQgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5Hb3VsZFx1Yzc1OCBcdWJkODBcdWIzZDlcdWMxOGNcdWMyMThcdWM4MTAgXHViYzI5XHVjMmRkXHVjNzQwIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjxpbWcgc3JjPVwiaHR0cHM6XC9cL3d3dy5hY21pY3BjLm5ldFwvdXBsb2FkXC9pbWFnZXMyXC9mbG9hdDEucG5nXCIgXC8+PFwvcD5cclxuXHJcbjxwPjFcdWFjMWNcdWM3NTggU2lnbiBcdWJlNDRcdWQyYjhcdWM2NDAgN1x1YWMxY1x1Yzc1OCBcdWM5YzBcdWMyMThcdWJkODAgXHViZTQ0XHVkMmI4LCAyNFx1YWMxY1x1Yzc1OCBcdWFjMDBcdWMyMThcdWJkODAgXHViZTQ0XHVkMmI4XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1Yzc3NCBcdWJlNDRcdWQyYjhcdWI0ZTRcdWM3NDQgMTZcdWM5YzRcdWMyMThcdWI4NWMgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LiBcdWFjMDBcdWMyMThcdWM3NTggXHVjY2FiIFx1YzEzOCBcdWJlNDRcdWQyYjhcdWFlNGNcdWM5YzAgMFx1Yzc3NCBcdWI0MjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzA0IFx1YmMyOVx1YzJkZFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NWMgXHVjMThjXHVjMjE4XHViMjk0IFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NDAgXHVhYzEyXHVjNzc0IFx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+PHN0cm9uZz52YWx1ZSA9ICgoLTEpPHN1cD5TPFwvc3VwPikoKDE2KTxzdXA+KEVYUC02NCk8XC9zdXA+KShNQU5USVNTQSBcLyAoMjxzdXA+MjQ8XC9zdXA+KSk8XC9zdHJvbmc+PFwvcD5cclxuXHJcbjxwPkVYUFx1YjI5NCBcdWM5YzBcdWMyMThcdWJkODAsIE1BTlRJU1NBXHViMjk0IFx1YWMwMFx1YzIxOFx1YmQ4MFx1Yjk3YyBcdWM3NThcdWJiZjhcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Yzc3NCBcdWI1NGMsIDBcdWM3NDAgMzJcdWFjMWNcdWM3NTggXHViZTQ0XHVkMmI4IDBcdWM3M2NcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5JRUVFIFx1YmQ4MFx1YjNkOVx1YzE4Y1x1YzIxOFx1YzgxMCBcdWJjMjlcdWMyZGRcdWM3NDAgXHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1YjJlNC48XC9wPlxyXG5cclxuPHA+PGltZyBzcmM9XCJodHRwczpcL1wvd3d3LmFjbWljcGMubmV0XC91cGxvYWRcL2ltYWdlczJcL2Zsb2F0Mi5wbmdcIiBcLz48XC9wPlxyXG5cclxuPHA+MVx1YWMxY1x1Yzc1OCBTaWduIFx1YmU0NFx1ZDJiOCwgOFx1YWMxY1x1Yzc1OCBcdWM5YzBcdWMyMThcdWJkODAgXHViZTQ0XHVkMmI4LCAyNFx1YWMxY1x1Yzc1OCBcdWFjMDBcdWMyMThcdWJkODAgXHViZTQ0XHVkMmI4XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljMFx1YmE3MCwgXHVjODE1XHVhZGRjXHVkNjU0XHViNDFjIFx1YzIxOFx1YzVkMFx1YzExYyBcdWFjMDBcdWMyMThcdWJkODBcdWM3NTggXHVjY2FiIFx1YmU0NFx1ZDJiOFx1YjI5NCBcdWQ1NmRcdWMwYzEgMVx1Yzc3NFx1YjJlNC4gXHVjNzc0IFx1ZDU2ZFx1YzBjMSAxXHVjNzc4IFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWJlNDRcdWQyYjhcdWIyOTQgXHVhYzAwXHVjMjE4XHViZDgwXHVjNWQwIFx1ZDNlY1x1ZDU2OFx1YjQxOFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuIFx1YjUzMFx1Yjc3Y1x1YzExYyBcdWFjMDBcdWMyMThcdWJkODBcdWIyOTQgMjNcdWJlNDRcdWQyYjhcdWI4NWMgXHVkNDVjXHVkNjA0XHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI5Y2NcdWM3N2MgXHVjOWMwXHVjMjE4IFx1YmQ4MFx1YmQ4NFx1Yzc3NCAyNTVcdWFjMDAgXHVjNTQ0XHViMmM4XHVhY2UwIDBcdWM3NzQgXHVjNTQ0XHViMmQwIFx1YjU0YyBcdWMyMThcdWIyOTQgXHVjODE1XHVhZGRjXHVkNjU0XHViNDFjIFx1YzIxOFx1Yzc3NFx1YmE3MCwgXHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1Yzc0MCBcdWFjMTJcdWM3NDQgXHVhYzAwXHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD48c3Ryb25nPnZhbHVlID0gKCgtMSk8c3VwPlM8XC9zdXA+KSgoMik8c3VwPihFWFAtMTI3KTxcL3N1cD4pKDEgKyAoTUFOVElTU0EgXC8gKDI8c3VwPjIzPFwvc3VwPikpKTxcL3N0cm9uZz48XC9wPlxyXG5cclxuPHA+XHViOWNjXHVjNzdjIFx1YzljMFx1YzIxOCBcdWJkODBcdWJkODRcdWM3NzQgMjU1XHVjNzc0XHViYTcwIFx1YWMwMFx1YzIxOCBcdWJkODBcdWJkODRcdWM3NzQgMFx1Yzc3NFx1Yjc3Y1x1YmE3NCwgXHVjNzc0XHViMjk0IFx1YzU5MVx1Yzc1OCBcdWJiMzRcdWQ1NWNcdWIzMDAgXHViNjEwXHViMjk0IFx1Yzc0Y1x1Yzc1OCBcdWJiMzRcdWQ1NWNcdWIzMDBcdWI5N2MgXHVjNzU4XHViYmY4XHVkNTVjXHViMmU0LiBcdWM1OTFcdWFjZmMgXHVjNzRjXHVjNzQwIFNpZ24gXHViZTQ0XHVkMmI4XHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWFjYjBcdWM4MTVcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjljY1x1Yzc3YyBcdWM5YzBcdWMyMTggXHViZDgwXHViZDg0XHVjNzc0IDI1NVx1Yzc3NFx1YmE3MCBcdWFjMDBcdWMyMTggXHViZDgwXHViZDg0XHVjNzc0IDBcdWM3NzQgXHVjNTQ0XHViMmM4XHViNzdjXHViYTc0LCBcdWM3NzRcdWIyOTQgXHViZTQ0XHVjODE1XHVjMGMxXHVjODAxXHVjNzc4IFx1YzIxOFx1Yzc3NFx1YmE3MCBcdWM3NzQgXHViYjM4XHVjODFjXHVjNWQwXHVjMTFjXHViMjk0IFx1YjJlNFx1YjhlOFx1YzljMCBcdWM1NGFcdWM3NDQgXHVhYzgzXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI5Y2NcdWM3N2MgXHVjOWMwXHVjMjE4IFx1YmQ4MFx1YmQ4NFx1Yzc3NCAwXHVjNzc0XHViYTcwIFx1YWMwMFx1YzIxOCBcdWJkODBcdWJkODRcdWM3NzQgMFx1Yzc3NFx1Yjc3Y1x1YmE3NCwgXHVjNzc0XHViMjk0ICswIFx1YjYxMFx1YjI5NCAtMFx1Yzc3NFx1YjJlNC4gKFNpZ24gXHViZTQ0XHVkMmI4XHViODVjIFx1YWQ2Y1x1YmQ4NFx1ZDU1Y1x1YjJlNC4pPFwvcD5cclxuXHJcbjxwPlx1YjljY1x1Yzc3YyBcdWM5YzBcdWMyMTggXHViZDgwXHViZDg0XHVjNzc0IDBcdWM3NzRcdWJhNzAgXHVhYzAwXHVjMjE4IFx1YmQ4MFx1YmQ4NFx1Yzc3NCAwXHVjNzc0IFx1YzU0NFx1YjJjOFx1Yjc3Y1x1YmE3NCwgXHVjNzc0XHViMjk0IFx1YmU0NFx1YzgxNVx1YWRkYyBcdWFjMTJcdWM3NzRcdWJhNzAgXHVjNTQ0XHViNzk4XHVjNzU4IFx1YzJkZFx1YzVkMCBcdWI1MzBcdWI3N2MgXHViMmU0XHViOTc0XHVhYzhjIFx1YWNjNFx1YzBiMFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+PHN0cm9uZz52YWx1ZSA9ICgoLTEpPHN1cD5TPFwvc3VwPikoKDIpPHN1cD4oLTEyNik8XC9zdXA+KShNQU5USVNTQSBcLyAoMjxzdXA+MjM8XC9zdXA+KSk8XC9zdHJvbmc+PFwvcD5cclxuXHJcbjxwPkdvdWxkXHVjNzU4IFx1YmMyOVx1YzJkZFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NWMgXHVjMjE4XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjNzc0XHViOTdjIFx1YjJlNFx1Yzc0Y1x1Yzc1OCBcdWFkZGNcdWNlNTlcdWM1ZDAgXHViNTMwXHViNzdjIFx1YmNjMFx1ZDY1OFx1ZDU1OFx1YzVlYyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHViOWNjXHVjNzdjIFx1YWRmOCBcdWFjMTJcdWM3NzQgMFx1Yzc3NFx1Yjc3Y1x1YmE3NCBcdWNkOWNcdWI4MjVcdWM3NDAgKzA8XC9saT5cclxuXHQ8bGk+XHViOWNjXHVjNzdjIFx1YWRmOCBcdWFjMTJcdWM3NzQgXHVjODE1XHVjMGMxXHVjODAxXHVjNzc4IElFRUUgXHViZDgwXHViM2Q5XHVjMThjXHVjMjE4XHVjODEwIFx1YmMyOVx1YzJkZFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1Yzc0NCBcdWI5Y2NcdWQwN2MgXHVkMDc0IFx1YWNiZFx1YzZiMCwgXHVjNTkxXHVjNzU4IFx1YmIzNFx1ZDU1Y1x1YjMwMCBcdWI2MTBcdWIyOTQgXHVjNzRjXHVjNzU4IFx1YmIzNFx1ZDU1Y1x1YjMwMC4gKFNpZ24gXHViZTQ0XHVkMmI4XHViODVjIFx1YWQ2Y1x1YmQ4NCk8XC9saT5cclxuXHQ8bGk+XHViOWNjXHVjNzdjIFx1YWRmOCBcdWFjMTJcdWM3NzQgXHVjODE1XHVjMGMxXHVjODAxXHVjNzc4IElFRUUgXHViZDgwXHViM2Q5XHVjMThjXHVjMjE4XHVjODEwIFx1YmMyOVx1YzJkZFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1Yzc0NCBcdWI5Y2NcdWQwN2MgXHVjNzkxXHVjNzQ0IFx1YWNiZFx1YzZiMCA6XHJcblx0PHVsPlxyXG5cdFx0PGxpPlx1YjljY1x1Yzc3YyBcdWJlNDRcdWM4MTVcdWFkZGMgXHVhYzEyXHVjNzdjIFx1YWNiZFx1YzZiMCwgXHViZTQ0XHVjODE1XHVhZGRjIFx1YzJkZFx1YzczY1x1Yjg1YyBcdWFjYzRcdWMwYjBcdWQ1NWMgXHVhY2IwXHVhY2ZjXHVhYzEyPFwvbGk+XHJcblx0XHQ8bGk+XHViZTQ0XHVjODE1XHVhZGRjIFx1YWMxMlx1Yzc3NCBcdWM1NDRcdWIyZDAgXHVhY2JkXHVjNmIwLCArMCBcdWI2MTBcdWIyOTQgLTAuIChTaWduIFx1YmU0NFx1ZDJiOFx1Yjg1YyBcdWFkNmNcdWJkODQpPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcblx0PGxpPlx1YjJlNFx1Yjk3OCBcdWJhYThcdWI0ZTAgXHVhY2JkXHVjNmIwXHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExY1x1YjI5NCBcdWM4MTVcdWFkZGNcdWQ2NTRcdWI0MWMgSUVFRSBcdWJkODBcdWIzZDlcdWMxOGNcdWMyMThcdWM4MTAgXHVhYzEyIFx1Y2Q5Y1x1YjgyNS48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWI5Y2NcdWM3N2MgSUVFRSBcdWJjMjlcdWMyZGRcdWM3M2NcdWI4NWMgXHVkNDVjXHVkNjA0XHVkNTg4XHVjNzQ0IFx1YjU0YyBcdWJlNDRcdWQyYjggXHVjMjE4XHVhYzAwIFx1YmQ4MFx1Yzg3MVx1ZDU1OFx1YjJlNFx1YmE3NCBcdWJkODBcdWM4NzFcdWQ1NWMgXHViZDgwXHViZDg0XHVjNzQ0IDBcdWM3M2NcdWI4NWMgXHVjYzQ0XHVjNmI0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI5Y2NcdWM3N2MgSUVFRSBcdWJjMjlcdWMyZGRcdWM3M2NcdWI4NWMgXHVkNDVjXHVkNjA0XHVkNTg4XHVjNzQ0IFx1YjU0YyBcdWJlNDRcdWQyYjggXHVjMjE4XHVhYzAwIFx1YjBhOFx1YjI5NFx1YjJlNFx1YmE3NCBcdWIwYThcdWIyOTQgXHViZDgwXHViZDg0XHVjNzQ0IFx1YzgxY1x1YzY3OFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYiBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWMyMTggUFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuICgxICZsZTsgUCAmbGU7IDEwMDApPFwvcD5cclxuXHJcbjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHViMjk0IFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHViYzg4XHVkNjM4XHVjNjQwIEdvdWxkIFx1YmMyOVx1YzJkZFx1Yzc1OCBcdWJkODBcdWIzZDlcdWMxOGNcdWMyMThcdWM4MTBcdWM3M2NcdWI4NWMgXHVkNDVjXHVkNjA0XHVkNTVjIFx1YzIxOCBcdWQ1NThcdWIwOThcdWFjMDAgMTZcdWM5YzRcdWMyMThcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWM3NzQgXHVjMjE4XHViMjk0IDAtOSwgQS1GXHVjNzU4IFx1YmIzOFx1Yzc5MCA4XHVhYzFjXHViODVjXHViOWNjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWI5YzhcdWIyZTQsIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHViYzg4XHVkNjM4XHVjNjQwIFx1YmIzOFx1YzgxY1x1YzVkMFx1YzExYyBcdWMxMjRcdWJhODVcdWQ1NWMgXHViYzI5XHVjMmRkXHViMzAwXHViODVjIElFRUUgXHViYzI5XHVjMmRkXHVjNzNjXHViODVjIFx1YmNjMFx1ZDY1OFx1ZDU1YyBcdWMyMThcdWI5N2MgMTZcdWM5YzRcdWMyMTggOFx1Yzc5MFx1YjlhY1x1Yjg1YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVkNTVjXHVhZDZkXHVjNWI0In0seyJwcm9ibGVtX2lkIjoiMTA0MzMiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJGbG9hdGluZy1Qb2ludCBGb3JtYXQgQ29udmVyc2lvbiIsImRlc2NyaXB0aW9uIjoiPHA+VG8gaGVscCBzdXBwb3J0IGEgcGF0ZW50IGRlZmVuc2UsIHdlIG5lZWQgdG8gcmVjb3ZlciBzb21lIGV4cGVyaW1lbnRhbCBkYXRhIHRoYXQgd2FzIHN0b3JlZCBhcyBzaW5nbGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IG9uIGEgbm93LWRlZnVuY3QgR291bGQgUG93ZXItTm9kZSBtaW5pLWNvbXB1dGVyLiBUaGUgR291bGQgdXNlZCBhIGJhc2UgMTYgZmxvYXRpbmctcG9pbnQgZm9ybWF0LiBXZSB3YW50IHRvIGNvbnZlcnQgR291bGQgZmxvYXRpbmcgcG9pbnQgdmFsdWVzLCBhcyBtdWNoIGFzIHBvc3NpYmxlLCB0byBzaW5nbGUgcHJlY2lzaW9uIElFRUUgZmxvYXRpbmctcG9pbnQgdmFsdWVzLjxcL3A+XHJcblxyXG48cD5UaGUgR291bGQgaW50ZXJuYWwgZmxvYXRpbmctcG9pbnQgZm9ybWF0IGhhcyAxIHNpZ24gYml0LCBTLCBhIDctYml0IG9mZnNldCAoYmFzZSAxNikgZXhwb25lbnQgZmllbGQsIEUsIGFuZCBhIDI0LWJpdCAoNiBoZXggZGlnaXRzKSBoZXhhZGVjaW1hbCBtYW50aXNzYS4gKE5vdGUgdGhhdCB0aGlzIG1lYW5zIHRoYXQgdXAgdG8gMyBoaWdoIGJpdHMgb2YgdGhlIG1hbnRpc3NhIG1heSBiZSB6ZXJvLik8XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlczJcL2Zsb2F0MS5wbmdcIiBzdHlsZT1cImhlaWdodDo2NnB4OyB3aWR0aDo3NTJweFwiIFwvPjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+dmFsdWUgPSAoKC0xKTxzdXA+UzxcL3N1cD4pKCgxNik8c3VwPihFWFAtNjQpPFwvc3VwPikoTUFOVElTU0EgXC8gKDI8c3VwPjI0PFwvc3VwPikpPFwvcD5cclxuXHJcbjxwPkZsb2F0aW5nLXBvaW50IHplcm8gaXMgcmVwcmVzZW50ZWQgYnkgMzIgYml0cyBvZiAwLjxcL3A+XHJcblxyXG48cD5UaGUgSUVFRSBmb3JtYXQgaGFzIDEgc2lnbiBiaXQsIFMsIGFuIDgtYml0IG9mZnNldCAoYmFzZSAyKSBleHBvbmVudCBmaWVsZCwgRSwgYW5kIGEgMjQtYml0IG1hbnRpc3NhLCBmb3Igd2hpY2ggdGhlIGhpZ2ggYml0IGlzIChpbiBub3JtYWxpemVkIG51bWJlcnMpIGFsd2F5cyAxIGFuZCBub3QgcGFydCBvZiB0aGUgMjMgYml0cyBpbiB0aGUgZm9ybWF0LjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzMlwvZmxvYXQyLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjY3cHg7IHdpZHRoOjc0N3B4XCIgXC8+PFwvcD5cclxuXHJcbjxwPklmIHRoZSBleHBvbmVudCBpcyBub3QgMjU1IGFuZCBub3QgMCwgdGhlIHZhbHVlIGlzIGEgbm9ybWFsaXplZCBmbG9hdGluZyBwb2ludCBudW1iZXIsPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj52YWx1ZSA9ICgoLTEpPHN1cD5TPFwvc3VwPikoKDIpPHN1cD4oRVhQLTEyNyk8XC9zdXA+KSgxICsgKE1BTlRJU1NBIFwvICgyPHN1cD4yMzxcL3N1cD4pKSk8XC9wPlxyXG5cclxuPHA+SWYgdGhlIGV4cG9uZW50IGlzIDI1NSBhbmQgdGhlIG1hbnRpc3NhIGlzIDAsIHRoZSB2YWx1ZSBpcyBwbHVzIG9yIG1pbnVzIGluZmluaXR5IChkZXBlbmRpbmcgb24gdGhlIHNpZ24gYml0KS4gSWYgdGhlIGV4cG9uZW50IGlzIDI1NSBhbmQgdGhlIG1hbnRpc3NhIGlzIG5vdCAwLCBpdCBpbmRpY2F0ZXMgc3BlY2lhbCB2YWx1ZXMgdGhhdCB3aWxsIG5vdCBiZSB1c2VkIGluIHRoaXMgcHJvYmxlbS48XC9wPlxyXG5cclxuPHA+SWYgdGhlIGV4cG9uZW50IGlzIDAgYW5kIHRoZSBtYW50aXNzYSBpcyB6ZXJvLCB0aGUgdmFsdWUgaXMgcGx1cyBvciBtaW51cyB6ZXJvIChkZXBlbmRpbmcgb24gdGhlIHNpZ24gYml0KS48XC9wPlxyXG5cclxuPHA+SWYgdGhlIGV4cG9uZW50IGlzIDAgYW5kIHRoZSBtYW50aXNzYSBpcyBub3QgemVybywgdGhlIHZhbHVlIGlzIGEgZGUtbm9ybWFsaXplZCBmbG9hdGluZy1wb2ludCBudW1iZXIgd2l0aDo8XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPnZhbHVlID0gKCgtMSk8c3VwPlM8XC9zdXA+KSgoMik8c3VwPigtMTI2KTxcL3N1cD4pKE1BTlRJU1NBIFwvICgyPHN1cD4yMzxcL3N1cD4pKTxcL3A+XHJcblxyXG48cD5Xcml0ZSBhIHByb2dyYW0gdGhhdCB0YWtlcyBhcyBpbnB1dCBhIGZsb2F0aW5nLXBvaW50IHZhbHVlIGluIEdvdWxkIGZvcm1hdCBhbmQgb3V0cHV0cyB0aGUgdmFsdWUgaW4gSUVFRSBmb3JtYXQgYXMgZm9sbG93czo8XC9wPlxyXG5cclxuPHA+SWYgdGhlIHZhbHVlIGlzIHplcm8gcmV0dXJuIChwbHVzKSB6ZXJvLjxcL3A+XHJcblxyXG48cD5JZiB0aGUgdmFsdWUgaXMgdG9vIGxhcmdlIHRvIGJlIHJlcHJlc2VudGVkIGFzIGEgbm9ybWFsaXplZCBmbG9hdGluZy1wb2ludCB2YWx1ZSwgcmV0dXJuIHBsdXMgb3IgbWludXMgaW5maW5pdHkgZGVwZW5kaW5nIG9uIHRoZSBzaWduLjxcL3A+XHJcblxyXG48cD5JZiB0aGUgdmFsdWUgaXMgdG9vIHNtYWxsIHRvIGJlIHJlcHJlc2VudGVkIGFzIGEgbm9ybWFsaXplZCBmbG9hdGluZy1wb2ludCB2YWx1ZTo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5JZiBpdCBtYXkgYmUgcmVwcmVzZW50ZWQgYXMgYSBkZS1ub3JtYWxpemVkIHZhbHVlLCByZXR1cm4gdGhlIGRlLW5vcm1hbGl6ZWQgdmFsdWUuPFwvbGk+XHJcblx0PGxpPk90aGVyd2lzZSwgcmV0dXJuIHBsdXMgb3IgbWludXMgemVybywgZGVwZW5kaW5nIG9uIHRoZSBzaWduLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkluIGFsbCBvdGhlciBjYXNlcywgcmV0dXJuIHRoZSBub3JtYWxpemVkIHZhbHVlLjxcL3A+XHJcblxyXG48cD5JZiB0aGVyZSBhcmUgbGVzcyBzaWduaWZpY2FudCBiaXRzIHRoYW4gcmVxdWlyZWQgZm9yIElFRUUgZmxvYXRpbmctcG9pbnQsIGV4dGVuZCB3aXRoIDAgYml0cy48XC9wPlxyXG5cclxuPHA+SWYgdGhlcmUgYXJlIG1vcmUgc2lnbmlmaWNhbnQgYml0cyB0aGFuIHJlcXVpcmVkIGZvciBJRUVFIGZsb2F0aW5nLXBvaW50LCB0cnVuY2F0ZSB0aGUgZXh0cmEgYml0cy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIG9mIGlucHV0IGNvbnRhaW5zIGEgc2luZ2xlIGludGVnZXIgUCwgKDEgJmxlOyBQICZsZTsgMTAwMCksIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgZGF0YSBzZXRzIHRoYXQgZm9sbG93LiBFYWNoIGRhdGEgc2V0IHNob3VsZCBiZSBwcm9jZXNzZWQgaWRlbnRpY2FsbHkgYW5kIGluZGVwZW5kZW50bHkuPFwvcD5cclxuXHJcbjxwPkVhY2ggZGF0YSBzZXQgY29uc2lzdHMgb2YgYSBzaW5nbGUgbGluZSBvZiBpbnB1dC4gSXQgY29udGFpbnMgdGhlIGRhdGEgc2V0IG51bWJlciwgSywgZm9sbG93ZWQgYnkgOCBoZXggZGlnaXRzICgwLTksIEEtZikgb2YgdGhlIEdvdWxkIGZsb2F0aW5nLXBvaW50IHZhbHVlLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBlYWNoIGRhdGEgc2V0IHRoZXJlIGlzIG9uZSBsaW5lIG9mIG91dHB1dC4gVGhlIHNpbmdsZSBvdXRwdXQgbGluZSBjb25zaXN0cyBvZiB0aGUgZGF0YSBzZXQgbnVtYmVyLCBLLCBmb2xsb3dlZCBieSBhIHNpbmdsZSBzcGFjZSBmb2xsb3dlZCBieSB0aGUgOCBoZXggZGlnaXRzICgwLTksIEEtZikgb2YgdGhlIGNvcnJlc3BvbmRpbmcgKGFzIGRlc2NyaWJlZCBhYm92ZSkgSUVFRSBmbG9hdGluZyBwb2ludCB2YWx1ZS48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=