시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 106 14 10 12.346%

문제

흰색과 검은색으로 이루어진 이미지는 쿼드트리를 이용하여 표현할 수 있다. 쿼드트리의 루트는 이미지의 전체를 나타낸다. 만약 전체 이미지가 한 색깔로 이루어져 있으면, 그 색깔에 해당하는 정점을 루트로 한다. 그 외의 경우에는 그림을 넷으로 나누고, 각각의 나눠진 그림을 루트의 네 자식 정점으로 표현하면 된다. 이 때 첫 번째 자식이 왼쪽 위의 그림을, 두 번째 자식이 오른쪽 위의 그림을, 세 번째 자식이 왼쪽 아래의 그림을, 네 번째 자식이 오른쪽 아래의 그림을 표현하게 된다. 각각의 작은 이미지를 표현할 때도 같은 방법을 재귀적으로 적용한다.

위의 예는 4×4 크기의 이미지와 그에 해당하는 쿼드트리이다. 위의 예에서는 이미지의 크기(사각형의 변의 길이)가 2의 k승이라서 상관이 없었지만, 그 외의 경우에는 문제가 된다. 만약에 이미지의 크기가 2의 k승이 아닐 경우에는, 이미지의 크기를 오른쪽과 아래쪽으로 가장 가까운 2의 k승으로 늘린 뒤, 흰색으로 나머지 공간을 채우면 된다. 이 때 이미지가 정사각형 모양이 되도록 한다. 예를 들어 5×13의 이미지는 16×16 크기의 이미지가 되고, 원래의 이미지가 왼쪽 위에 들어가고 나머지 공간은 흰색으로 채우면 된다.

쿼드트리 자체가 이미지를 압축적으로 표현하는 방법이지만, 우리는 압축된 쿼드트리를 이용하여 좀 더 효율적으로 표현하려 한다. 만약 쿼드트리에서 같은 모양의 부분 트리가 여러 개 나올 경우, 이를 한 번만 저장한 뒤 나머지는 포인터로 연결할 수 있다. 위의 예는 다음과 같은 압축된 쿼드트리로 표현할 수 있다.

원래의 쿼드트리는 17개의 정점을 갖지만, 압축된 쿼드트리는 12개의 정점을 갖는다. 12개의 정점을 갖는 압축된 쿼드트리가 몇 개 더 있기는 하지만, 11개 이하의 정점을 갖는 압축된 쿼드트리는 존재하지 않는다. 따라서 위의 경우가 가장 효율적(정점 개수가 최소)이다.

주의할 것은, B나 W로 표현되는 정점은 포인터가 아니가 값 자체이므로 이를 연결할 경우는 압축하는 것이 아니다. 즉, 정점이 하나인 경우(높이가 1인 경우)에는 포인터를 이용하여 연결할 필요가 없다. 또, 실제 이미지의 크기가 다르더라도 트리의 모양이 같다면, 같은 쿼드트리로 표현될 수 있는데, 이런 경우에도 포인터로 연결할 수 있다.

이미지가 주어졌을 때, 쿼드트리의 정점의 개수와 가장 효율적인 압축된 쿼드트리의 정점의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 이미지의 크기를 나타내는 두 정수 n(1≤n≤128), m(1≤m≤128)이 주어진다. 이는 이미지의 크기가 n×m이라는 의미이다. 다음 n개의 줄에는 m개의 숫자로 이미지가 주어진다. 흰색은 0으로, 검은색은 1로 표현된다.

출력

첫째 줄에 쿼드트리의 정점의 개수와 가장 효율적인 압축된 쿼드트리의 정점의 개수를 출력한다.

예제 입력 1

4 4
1011
0111
1010
0111

예제 출력 1

17 12
W3sicHJvYmxlbV9pZCI6IjE5OTgiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM3NzRcdWJiZjhcdWM5YzAgXHVjNTU1XHVjZDk1IiwiZGVzY3JpcHRpb24iOiI8cD5cdWQ3NzBcdWMwYzlcdWFjZmMgXHVhYzgwXHVjNzQwXHVjMGM5XHVjNzNjXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWM3NzRcdWJiZjhcdWM5YzBcdWIyOTQgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU1OFx1YzVlYyBcdWQ0NWNcdWQ2MDRcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVjNzU4IFx1YjhlOFx1ZDJiOFx1YjI5NCBcdWM3NzRcdWJiZjhcdWM5YzBcdWM3NTggXHVjODA0XHVjY2I0XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiOFx1YjJlNC4gXHViOWNjXHVjNTdkIFx1YzgwNFx1Y2NiNCBcdWM3NzRcdWJiZjhcdWM5YzBcdWFjMDAgXHVkNTVjIFx1YzBjOVx1YWU1NFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHVjNzNjXHViYTc0LCBcdWFkZjggXHVjMGM5XHVhZTU0XHVjNWQwIFx1ZDU3NFx1YjJmOVx1ZDU1OFx1YjI5NCBcdWM4MTVcdWM4MTBcdWM3NDQgXHViOGU4XHVkMmI4XHViODVjIFx1ZDU1Y1x1YjJlNC4gXHVhZGY4IFx1YzY3OFx1Yzc1OCBcdWFjYmRcdWM2YjBcdWM1ZDBcdWIyOTQgXHVhZGY4XHViOWJjXHVjNzQ0IFx1YjEzN1x1YzczY1x1Yjg1YyBcdWIwOThcdWIyMDRcdWFjZTAsIFx1YWMwMVx1YWMwMVx1Yzc1OCBcdWIwOThcdWIyMjBcdWM5YzQgXHVhZGY4XHViOWJjXHVjNzQ0IFx1YjhlOFx1ZDJiOFx1Yzc1OCBcdWIxMjQgXHVjNzkwXHVjMmRkIFx1YzgxNVx1YzgxMFx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NThcdWJhNzQgXHViNDFjXHViMmU0LiBcdWM3NzQgXHViNTRjIFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjNzkwXHVjMmRkXHVjNzc0IFx1YzY3Y1x1Y2FiZCBcdWM3MDRcdWM3NTggXHVhZGY4XHViOWJjXHVjNzQ0LCBcdWI0NTAgXHViYzg4XHVjOWY4IFx1Yzc5MFx1YzJkZFx1Yzc3NCBcdWM2MjRcdWI5NzhcdWNhYmQgXHVjNzA0XHVjNzU4IFx1YWRmOFx1YjliY1x1Yzc0NCwgXHVjMTM4IFx1YmM4OFx1YzlmOCBcdWM3OTBcdWMyZGRcdWM3NzQgXHVjNjdjXHVjYWJkIFx1YzU0NFx1Yjc5OFx1Yzc1OCBcdWFkZjhcdWI5YmNcdWM3NDQsIFx1YjEyNCBcdWJjODhcdWM5ZjggXHVjNzkwXHVjMmRkXHVjNzc0IFx1YzYyNFx1Yjk3OFx1Y2FiZCBcdWM1NDRcdWI3OThcdWM3NTggXHVhZGY4XHViOWJjXHVjNzQ0IFx1ZDQ1Y1x1ZDYwNFx1ZDU1OFx1YWM4YyBcdWI0MWNcdWIyZTQuIFx1YWMwMVx1YWMwMVx1Yzc1OCBcdWM3OTFcdWM3NDAgXHVjNzc0XHViYmY4XHVjOWMwXHViOTdjIFx1ZDQ1Y1x1ZDYwNFx1ZDU2MCBcdWI1NGNcdWIzYzQgXHVhYzE5XHVjNzQwIFx1YmMyOVx1YmM5NVx1Yzc0NCBcdWM3YWNcdWFkYzBcdWM4MDFcdWM3M2NcdWI4NWMgXHVjODAxXHVjNmE5XHVkNTVjXHViMmU0LjxcL3A+XHJcbjxwPjxpbWcgd2lkdGg9XCI0MzJcIiBoZWlnaHQ9XCIxMTdcIiBhbHQ9XCJcIiBzcmM9XCJcL0p1ZGdlT25saW5lXC91cGxvYWRcLzIwMTAwN1wvcXFxLnBuZ1wiIFwvPjxcL3A+XHJcbjxwPlx1YzcwNFx1Yzc1OCBcdWM2MDhcdWIyOTQgNCZ0aW1lczs0IFx1ZDA2Y1x1YWUzMFx1Yzc1OCBcdWM3NzRcdWJiZjhcdWM5YzBcdWM2NDAgXHVhZGY4XHVjNWQwIFx1ZDU3NFx1YjJmOVx1ZDU1OFx1YjI5NCBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWM3NzRcdWIyZTQuIFx1YzcwNFx1Yzc1OCBcdWM2MDhcdWM1ZDBcdWMxMWNcdWIyOTQgXHVjNzc0XHViYmY4XHVjOWMwXHVjNzU4IFx1ZDA2Y1x1YWUzMChcdWMwYWNcdWFjMDFcdWQ2MTVcdWM3NTggXHViY2MwXHVjNzU4IFx1YWUzOFx1Yzc3NClcdWFjMDAgMlx1Yzc1OCBrXHVjMmI5XHVjNzc0XHViNzdjXHVjMTFjIFx1YzBjMVx1YWQwMFx1Yzc3NCBcdWM1YzZcdWM1YzhcdWM5YzBcdWI5Y2MsIFx1YWRmOCBcdWM2NzhcdWM3NTggXHVhY2JkXHVjNmIwXHVjNWQwXHViMjk0IFx1YmIzOFx1YzgxY1x1YWMwMCBcdWI0MWNcdWIyZTQuIFx1YjljY1x1YzU3ZFx1YzVkMCBcdWM3NzRcdWJiZjhcdWM5YzBcdWM3NTggXHVkMDZjXHVhZTMwXHVhYzAwIDJcdWM3NTgga1x1YzJiOVx1Yzc3NCBcdWM1NDRcdWIyZDAgXHVhY2JkXHVjNmIwXHVjNWQwXHViMjk0LCBcdWM3NzRcdWJiZjhcdWM5YzBcdWM3NTggXHVkMDZjXHVhZTMwXHViOTdjIFx1YzYyNFx1Yjk3OFx1Y2FiZFx1YWNmYyBcdWM1NDRcdWI3OThcdWNhYmRcdWM3M2NcdWI4NWMgXHVhYzAwXHVjN2E1IFx1YWMwMFx1YWU0Y1x1YzZiNCAyXHVjNzU4IGtcdWMyYjlcdWM3M2NcdWI4NWMgXHViMjk4XHViOWIwIFx1YjRhNCwgXHVkNzcwXHVjMGM5XHVjNzNjXHViODVjIFx1YjA5OFx1YmEzOFx1YzljMCBcdWFjZjVcdWFjMDRcdWM3NDQgXHVjYzQ0XHVjNmIwXHViYTc0IFx1YjQxY1x1YjJlNC4gXHVjNzc0IFx1YjU0YyBcdWM3NzRcdWJiZjhcdWM5YzBcdWFjMDAgXHVjODE1XHVjMGFjXHVhYzAxXHVkNjE1IFx1YmFhOFx1YzU5MVx1Yzc3NCBcdWI0MThcdWIzYzRcdWI4NWQgXHVkNTVjXHViMmU0LiBcdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0IDUmdGltZXM7MTNcdWM3NTggXHVjNzc0XHViYmY4XHVjOWMwXHViMjk0IDE2JnRpbWVzOzE2IFx1ZDA2Y1x1YWUzMFx1Yzc1OCBcdWM3NzRcdWJiZjhcdWM5YzBcdWFjMDAgXHViNDE4XHVhY2UwLCBcdWM2ZDBcdWI3OThcdWM3NTggXHVjNzc0XHViYmY4XHVjOWMwXHVhYzAwIFx1YzY3Y1x1Y2FiZCBcdWM3MDRcdWM1ZDAgXHViNGU0XHVjNWI0XHVhYzAwXHVhY2UwIFx1YjA5OFx1YmEzOFx1YzljMCBcdWFjZjVcdWFjMDRcdWM3NDAgXHVkNzcwXHVjMGM5XHVjNzNjXHViODVjIFx1Y2M0NFx1YzZiMFx1YmE3NCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuPHA+XHVjZmZjXHViNGRjXHVkMmI4XHViOWFjIFx1Yzc5MFx1Y2NiNFx1YWMwMCBcdWM3NzRcdWJiZjhcdWM5YzBcdWI5N2MgXHVjNTU1XHVjZDk1XHVjODAxXHVjNzNjXHViODVjIFx1ZDQ1Y1x1ZDYwNFx1ZDU1OFx1YjI5NCBcdWJjMjlcdWJjOTVcdWM3NzRcdWM5YzBcdWI5Y2MsIFx1YzZiMFx1YjlhY1x1YjI5NCBcdWM1NTVcdWNkOTVcdWI0MWMgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU1OFx1YzVlYyBcdWM4ODAgXHViMzU0IFx1ZDZhOFx1YzcyOFx1YzgwMVx1YzczY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWQ1NThcdWI4MjQgXHVkNTVjXHViMmU0LiBcdWI5Y2NcdWM1N2QgXHVjZmZjXHViNGRjXHVkMmI4XHViOWFjXHVjNWQwXHVjMTFjIFx1YWMxOVx1Yzc0MCBcdWJhYThcdWM1OTFcdWM3NTggXHViZDgwXHViZDg0IFx1ZDJiOFx1YjlhY1x1YWMwMCBcdWM1ZWNcdWI3ZWMgXHVhYzFjIFx1YjA5OFx1YzYyYyBcdWFjYmRcdWM2YjAsIFx1Yzc3NFx1Yjk3YyBcdWQ1NWMgXHViYzg4XHViOWNjIFx1YzgwMFx1YzdhNVx1ZDU1YyBcdWI0YTQgXHViMDk4XHViYTM4XHVjOWMwXHViMjk0IFx1ZDNlY1x1Yzc3OFx1ZDEzMFx1Yjg1YyBcdWM1ZjBcdWFjYjBcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVjNzA0XHVjNzU4IFx1YzYwOFx1YjI5NCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzQwIFx1YzU1NVx1Y2Q5NVx1YjQxYyBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWI4NWMgXHVkNDVjXHVkNjA0XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuPHA+PGltZyB3aWR0aD1cIjMwNVwiIGhlaWdodD1cIjExMVwiIGFsdD1cIlwiIHNyYz1cIlwvSnVkZ2VPbmxpbmVcL3VwbG9hZFwvMjAxMDA3XC9xcXFxcXFxLnBuZ1wiIFwvPjxcL3A+XHJcbjxwPlx1YzZkMFx1Yjc5OFx1Yzc1OCBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWIyOTQgMTdcdWFjMWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzQ0IFx1YWMxNlx1YzljMFx1YjljYywgXHVjNTU1XHVjZDk1XHViNDFjIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1YjI5NCAxMlx1YWMxY1x1Yzc1OCBcdWM4MTVcdWM4MTBcdWM3NDQgXHVhYzE2XHViMjk0XHViMmU0LiAxMlx1YWMxY1x1Yzc1OCBcdWM4MTVcdWM4MTBcdWM3NDQgXHVhYzE2XHViMjk0IFx1YzU1NVx1Y2Q5NVx1YjQxYyBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWFjMDAgXHViYTg3IFx1YWMxYyBcdWIzNTQgXHVjNzg4XHVhZTMwXHViMjk0IFx1ZDU1OFx1YzljMFx1YjljYywgMTFcdWFjMWMgXHVjNzc0XHVkNTU4XHVjNzU4IFx1YzgxNVx1YzgxMFx1Yzc0NCBcdWFjMTZcdWIyOTQgXHVjNTU1XHVjZDk1XHViNDFjIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1YjI5NCBcdWM4NzRcdWM3YWNcdWQ1NThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LiBcdWI1MzBcdWI3N2NcdWMxMWMgXHVjNzA0XHVjNzU4IFx1YWNiZFx1YzZiMFx1YWMwMCBcdWFjMDBcdWM3YTUgXHVkNmE4XHVjNzI4XHVjODAxKFx1YzgxNVx1YzgxMCBcdWFjMWNcdWMyMThcdWFjMDAgXHVjZDVjXHVjMThjKVx1Yzc3NFx1YjJlNC48XC9wPlxyXG48cD5cdWM4ZmNcdWM3NThcdWQ1NjAgXHVhYzgzXHVjNzQwLCBCXHViMDk4IFdcdWI4NWMgXHVkNDVjXHVkNjA0XHViNDE4XHViMjk0IFx1YzgxNVx1YzgxMFx1Yzc0MCBcdWQzZWNcdWM3NzhcdWQxMzBcdWFjMDAgXHVjNTQ0XHViMmM4XHVhYzAwIFx1YWMxMiBcdWM3OTBcdWNjYjRcdWM3NzRcdWJiYzBcdWI4NWMgXHVjNzc0XHViOTdjIFx1YzVmMFx1YWNiMFx1ZDU2MCBcdWFjYmRcdWM2YjBcdWIyOTQgXHVjNTU1XHVjZDk1XHVkNTU4XHViMjk0IFx1YWM4M1x1Yzc3NCBcdWM1NDRcdWIyYzhcdWIyZTQuIFx1Yzk4OSwgXHVjODE1XHVjODEwXHVjNzc0IFx1ZDU1OFx1YjA5OFx1Yzc3OCBcdWFjYmRcdWM2YjAoXHViMTkyXHVjNzc0XHVhYzAwIDFcdWM3NzggXHVhY2JkXHVjNmIwKVx1YzVkMFx1YjI5NCBcdWQzZWNcdWM3NzhcdWQxMzBcdWI5N2MgXHVjNzc0XHVjNmE5XHVkNTU4XHVjNWVjIFx1YzVmMFx1YWNiMFx1ZDU2MCBcdWQ1NDRcdWM2OTRcdWFjMDAgXHVjNWM2XHViMmU0LiBcdWI2MTAsIFx1YzJlNFx1YzgxYyBcdWM3NzRcdWJiZjhcdWM5YzBcdWM3NTggXHVkMDZjXHVhZTMwXHVhYzAwIFx1YjJlNFx1Yjk3NFx1YjM1NFx1Yjc3Y1x1YjNjNCBcdWQyYjhcdWI5YWNcdWM3NTggXHViYWE4XHVjNTkxXHVjNzc0IFx1YWMxOVx1YjJlNFx1YmE3NCwgXHVhYzE5XHVjNzQwIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1Yjg1YyBcdWQ0NWNcdWQ2MDRcdWI0MjAgXHVjMjE4IFx1Yzc4OFx1YjI5NFx1YjM3MCwgXHVjNzc0XHViN2YwIFx1YWNiZFx1YzZiMFx1YzVkMFx1YjNjNCBcdWQzZWNcdWM3NzhcdWQxMzBcdWI4NWMgXHVjNWYwXHVhY2IwXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuPHA+XHVjNzc0XHViYmY4XHVjOWMwXHVhYzAwIFx1YzhmY1x1YzViNFx1Yzg0Y1x1Yzc0NCBcdWI1NGMsIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1Yzc1OCBcdWM4MTVcdWM4MTBcdWM3NTggXHVhYzFjXHVjMjE4XHVjNjQwIFx1YWMwMFx1YzdhNSBcdWQ2YThcdWM3MjhcdWM4MDFcdWM3NzggXHVjNTU1XHVjZDk1XHViNDFjIFx1Y2ZmY1x1YjRkY1x1ZDJiOFx1YjlhY1x1Yzc1OCBcdWM4MTVcdWM4MTBcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1YWQ2Y1x1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+IiwiaW5wdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1Yzc3NFx1YmJmOFx1YzljMFx1Yzc1OCBcdWQwNmNcdWFlMzBcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI0XHViMjk0IFx1YjQ1MCBcdWM4MTVcdWMyMTggbigxJmxlO24mbGU7MTI4KSwgbSgxJmxlO20mbGU7MTI4KVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Yzc3NFx1YjI5NCBcdWM3NzRcdWJiZjhcdWM5YzBcdWM3NTggXHVkMDZjXHVhZTMwXHVhYzAwIG4mdGltZXM7bVx1Yzc3NFx1Yjc3Y1x1YjI5NCBcdWM3NThcdWJiZjhcdWM3NzRcdWIyZTQuIFx1YjJlNFx1Yzc0YyBuXHVhYzFjXHVjNzU4IFx1YzkwNFx1YzVkMFx1YjI5NCBtXHVhYzFjXHVjNzU4IFx1YzIyYlx1Yzc5MFx1Yjg1YyBcdWM3NzRcdWJiZjhcdWM5YzBcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWQ3NzBcdWMwYzlcdWM3NDAgMFx1YzczY1x1Yjg1YywgXHVhYzgwXHVjNzQwXHVjMGM5XHVjNzQwIDFcdWI4NWMgXHVkNDVjXHVkNjA0XHViNDFjXHViMmU0LjxcL3A+Iiwib3V0cHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzU4IFx1YWMxY1x1YzIxOFx1YzY0MCBcdWFjMDBcdWM3YTUgXHVkNmE4XHVjNzI4XHVjODAxXHVjNzc4IFx1YzU1NVx1Y2Q5NVx1YjQxYyBcdWNmZmNcdWI0ZGNcdWQyYjhcdWI5YWNcdWM3NTggXHVjODE1XHVjODEwXHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIxOTk4IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiU3F1YWR0cmVlcyIsImRlc2NyaXB0aW9uIjoiPHA+UXVhZHRyZWVzIGFyZSBkYXRhIHN0cnVjdHVyZXMgdXNlZCB0byBzdG9yZSBkaWdpdGFsIGltYWdlcy4gRm9yIG91ciBwdXJwb3NlcywgdGhlIGltYWdlcyB3aWxsIGJlIHNpbXBsZSBiaXRtYXBzLCB3aGVyZSBldmVyeSBwaXhlbCBpcyBlaXRoZXIgYSAxIChibGFjaykgb3IgYSAwICh3aGl0ZSkuIEEgcXVhZHRyZWUgcmVwcmVzZW50YXRpb24gb2YgYSBiaXRtYXAgaXMgb2J0YWluZWQgYXMgZm9sbG93czogZmlyc3QsIGFzc29jaWF0ZSB0aGUgcm9vdCBub2RlIHdpdGggdGhlIGVudGlyZSBpbWFnZS4gSWYgdGhlIGVudGlyZSBpbWFnZSBpcyBlaXRoZXIgYWxsIDEmIzM5O3Mgb3IgYWxsIDAmIzM5O3MsIHRoZW4gc3RvcmUgdGhhdCB2YWx1ZSBpbiB0aGUgbm9kZSBhbmQgeW91JiMzOTtyZSBkb25lLiBPdGhlcndpc2UgZGl2aWRlIHRoZSByZWdpb24gaW50byBmb3VyIGVxdWFsIHNpemUgcXVhZHJhbnRzLCBhZGQgZm91ciBjaGlsZHJlbiB0byB0aGUgcm9vdCwgYW5kIGFzc2lnbiBlYWNoIGNoaWxkIG9uZSBvZiB0aGUgZm91ciByZWdpb25zIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6IHRoZSBmaXJzdCBjaGlsZCBnZXRzIHRoZSB1cHBlciBsZWZ0IHF1YWRyYW50LCB0aGUgc2Vjb25kIHRoZSB1cHBlciByaWdodCwgdGhlIHRoaXJkIHRoZSBsb3dlciBsZWZ0IGFuZCB0aGUgZm91cnRoIHRoZSBsb3dlciByaWdodC4gVGhlbiByZWN1cnNpdmVseSBhcHBseSB0aGUgYWJvdmUgcnVsZXMgdG8gZWFjaCBvZiB0aGUgY2hpbGRyZW4uIEZvciBleGFtcGxlLCB0aGUgNHg0IGltYWdlIG9uIHRoZSBsZWZ0IHdvdWxkIGJlIHJlcHJlc2VudGVkIGJ5IHRoZSBxdWFkdHJlZSBvbiB0aGUgcmlnaHQ6PFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvcWR0MS5wbmdcIiBzdHlsZT1cImhlaWdodDoxMTVweDsgd2lkdGg6Mzc1cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+Tm90ZSB0aGF0IHRoaXMgcHJvY2VkdXJlIG9ubHkgd29ya3MgYXMgc3RhdGVkIGlmIHRoZSBpbWFnZSBpcyBhIHNxdWFyZSBhbmQgaGFzIGEgc2lkZSBsZW5ndGggZXF1YWwgdG8gYSBwb3dlciBvZiAyLiBGb3IgdGhvc2UgaW1hZ2VzIHdoaWNoIGRvIG5vdCBtZWV0IHRob3NlIHJlcXVpcmVtZW50cywgd2UgcGFkIHRoZSByb3dzIGFuZCBjb2x1bW5zIHdpdGggMCYjMzk7cyAob24gdGhlIHJpZ2h0IGFuZCBvbiB0aGUgYm90dG9tLCByZXNwZWN0aXZlbHkpIHVudGlsIHdlIGhhdmUgYSBiaXRtYXAgb2YgdGhlIGFwcHJvcHJpYXRlIHNpemUuIEZvciBleGFtcGxlLCBhIDV4MTMgaW1hZ2Ugd291bGQgYmUgY29udmVydGVkIHRvIGEgMTZ4MTYgYml0bWFwICh3aXRoIHRoZSBvcmlnaW5hbCBpbWFnZSByZXNpZGluZyBpbiB0aGUgdXBwZXIgbGVmdCBwb3J0aW9uLCBhbmQgdGhlIHJlbWFpbmRlciBvZiB0aGUgaW1hZ2UgZmlsbGVkIHdpdGggMCYjMzk7cykuJm5ic3A7PFwvcD5cclxuXHJcbjxwPldoaWxlIHF1YWR0cmVlcyBjYW4gcmVzdWx0IGluIGEgc2lnbmlmaWNhbnQgc2F2aW5ncyBpbiBzcGFjZSBvdmVyIHRoZSBvcmlnaW5hbCBpbWFnZSwgZXZlbiBtb3JlIHNhdmluZ3MgY2FuIGJlIGFjaGlldmVkIGlmIHdlIGlkZW50aWZ5IHJlcGVhdGVkIHN1YnRyZWVzLiBGb3IgZXhhbXBsZSwgaW4gdGhlIHRyZWUgYWJvdmUsIHRoZSBmaXJzdCBhbmQgdGhpcmQgc3VidHJlZXMgb2YgdGhlIHJvb3QgYXJlIGlkZW50aWNhbCwgc28gd2UgY291bGQgcmVwbGFjZSB0aGUgcm9vdCBvZiB0aGUgdGhpcmQgc3VidHJlZSB3aXRoIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBzdWJ0cmVlLCBvYnRhaW5pbmcgc29tZXRoaW5nIHRoYXQgc3ltYm9saWNhbGx5IGxvb2tzIGxpa2UgdGhlIGZvbGxvd2luZzo8XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9xZHQyLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjEwNHB4OyB3aWR0aDoyODJweFwiIFwvPjxcL3A+XHJcblxyXG48cD5XZSB3aWxsIGNhbGwgdGhlc2UgY29tcHJlc3NlZCBxdWFkdHJlZXMgc3VwZXIgcXVhZHRyZWVzLCBvciBzcXVhZHRyZWVzLiBGb3Igb3VyIHB1cnBvc2VzIHRoZSB1c2Ugb2YgYSByZWZlcmVuY2Ugc2F2ZXMgc3BhY2Ugb25seSB3aGVuIHRoZSB0cmVlIGl0IHJlcGxhY2VzIGhhcyBoZWlnaHQgb2YgYXQgbGVhc3QgMS4gVGh1cywgd2hpbGUgd2UgY291bGQgcmVwbGFjZSA1IG9mIHRoZSBub2RlcyB3aGljaCBjb250YWluIGEgQiB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIGZpcnN0IG5vZGUgd2l0aCBhIEIsIHRoaXMgd291bGQgbm90IGluIHByYWN0aWNlIHNhdmUgYW55IHNwYWNlIGluIHRoZSBjb21wcmVzc2lvbi4gVXNpbmcgdGhpcyBydWxlLCBvdXIgc3F1YWR0cmVlIGNvbnRhaW5zIG9ubHkgMTIgbm9kZXMsIGFzIG9wcG9zZWQgdG8gMTcgaW4gdGhlIG9yaWdpbmFsIHF1YWR0cmVlLiBZb3VyIGpvYiBmb3IgdGhpcyBwcm9ibGVtIGlzIHRvIHRha2UgYSBzZXQgb2YgaW1hZ2VzIGFuZCBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBub2RlcyBpbiBib3RoIHRoZSByZXN1bHRpbmcgcXVhZHRyZWVzIGFuZCBzcXVhZHRyZWVzLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+SW5wdXQgd2lsbCBjb25zaXN0IG9mIG11bHRpcGxlIHByb2JsZW0gaW5zdGFuY2VzLiBFYWNoIGluc3RhbmNlIHdpbGwgc3RhcnQgd2l0aCBhIHNpbmdsZSBsaW5lIGNvbnRhaW5pbmcgdHdvIGludGVnZXJzIG4gYW5kIG0sIGluZGljYXRpbmcgdGhlIG51bWJlciBvZiByb3dzIGFuZCBjb2x1bW5zIGluIHRoZSBpbWFnZS4gVGhlIG1heGltdW0gdmFsdWVzIGZvciB0aGVzZSBpbnRlZ2VycyBpcyAxMjguIFRoZSBuZXh0IG4gbGluZXMgd2lsbCBlYWNoIGNvbnRhaW4gbSBjaGFyYWN0ZXJzIHJlcHJlc2VudGluZyB0aGUgaW1hZ2UgdG8gcHJvY2Vzcy4gQSBibGFjayBwaXhlbCB3aWxsIGJlIHJlcHJlc2VudGVkIGJ5IGEgYDEmIzM5OywgYW5kIGEgd2hpdGUgcGl4ZWwgd2lsbCBiZSByZXByZXNlbnRlZCBieSBhIGAwJiMzOTsuIFRoZSBpbnB1dCBsaW5lIDAgMCB3aWxsIHRlcm1pbmF0ZSBpbnB1dCBhbmQgc2hvdWxkIG5vdCBiZSBwcm9jZXNzZWQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+Rm9yIGVhY2ggcHJvYmxlbSBpbnN0YW5jZSwgb3V0cHV0IHR3byBpbnRlZ2VycyBzZXBhcmF0ZWQgYnkgYSBzaW5nbGUgc3BhY2UuIFRoZSBmaXJzdCB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIHRoZSBxdWFkdHJlZSBmb3IgdGhlIHByb2JsZW0gaW5zdGFuY2UsIGFuZCB0aGUgc2Vjb25kIGlzIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gdGhlIHNxdWFkdHJlZS48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=