시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 64 MB227594631.507%

문제

준규는 화원을 운영중이다. 준규는 엄청난 가치를 지닌 대마꽃를 M개의 행과 N개의 열을 가진 토지에 경작하는데 진욱이가 자꾸 훔쳐가서 고민에 빠졌다. 준규는 진욱이가 훔쳐가지 못하게 꽃 주변을 울타리로 둘러쌓다. 하지만 시간이 지나면서 울타리 몇개가 부서졌다. 진욱이는 이때를 틈타 다시 꽃을 훔지려고 한다.

아래 보이는 그림은 11행 12열의 화원을 나타낸다. 0은 울타리가 없거나 꽃이 심어져 있는 부분을 나타내고 1은 울타리가 있는 곳을 나타낸다. 화원에 들어 오려면 노란색 부분부터 들어와야 한다.

진욱이가 꽃을 훔치러 화원에 들어왔다. 울타리를 요리조리 피해서 들어가는데 이때 상, 하, 좌, 우로 밖에 이동할 수 없다. 진욱이는 파괴적 성향을 지니고 있기 때문에 울타리로 가로막혀 더이상 안으로 접근할 수 없을 때 울타리를 부순다.  진욱이가 되도록 적은 수의 울타리를 부수면서 안으로 들어갈때, 최대한 많이 울타리를 부순 횟수와 , 그때 얻을 수 있는 꽃의 수를 구하여라.

입력

첫째 줄에 테스트 케이스의 수 T (≤ 10) 가 주어진다. 같은 줄에 주어지는 여러개의 정수는 공백으로 구분된다.

각각의 테스트 케이스의 첫째 줄에는 두개의 정수 R, C가 주어진다 (5 ≤ R, C ≤ 1 000)

R은 화원의 행을 나타내고 C는 열의 수를 나타낸다.

두 번째 줄부터 R+1번째 줄까지 화원의 정보가 주어진다. 화원은 꽃이 심어질 수 있는 부분인 0 과 울타리가 설치된 1로 이루어져 있다.

화원에는 적어도 하나 이상의 꽃이 심어지는 부분이 있다고 가정한다.

출력

각각의 테스트 케이스에 대해서 2개의 정수를 출력한다. 첫 번째 정수는 진욱이가 부수는 최대 울타리의 수이고, 두 번째 정수는 그때 얻을 수 있는 꽃의 최대 개수이다. 두 개의 정수는 공백으로 구분한다.

예제 입력 1

2
11 12
1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0 0 1
1 0 1 1 1 1 1 1 1 1 0 1
1 0 1 0 0 0 0 1 0 1 0 1
0 0 1 0 1 1 0 0 0 1 0 1
1 0 1 0 1 0 1 0 0 1 0 1
1 0 1 0 1 1 1 0 0 1 0 1
0 0 1 0 0 0 0 0 0 1 0 1
1 0 1 1 1 1 1 1 1 1 0 1
1 0 0 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1 1
8 12
0 0 0 1 1 1 1 1 1 0 0 0
0 0 0 1 0 0 0 0 1 0 0 0
0 0 0 1 1 1 1 1 1 0 0 0
1 1 1 1 0 0 0 0 1 1 1 1
1 0 1 0 0 0 0 0 0 1 0 1
1 0 1 0 0 0 0 0 0 1 0 1
1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 1 1 0 0 0

예제 출력 1

2 1
2 16

힌트

진욱이는 되도록이면 울타리를 부수지 않고 안으로 들어간다.울타리를 부수지 않고 절대로 안으로 들어 갈 수 없을때만 울타리를 부순다.

W3sicHJvYmxlbV9pZCI6IjkzNDciLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWM2YjhcdWQwYzBcdWI5YWMiLCJkZXNjcmlwdGlvbiI6IjxwPlx1YzkwMFx1YWRkY1x1YjI5NCBcdWQ2NTRcdWM2ZDBcdWM3NDQgXHVjNmI0XHVjNjAxXHVjOTExXHVjNzc0XHViMmU0LiBcdWM5MDBcdWFkZGNcdWIyOTQgXHVjNWM0XHVjY2FkXHViMDljIFx1YWMwMFx1Y2U1OFx1Yjk3YyBcdWM5YzBcdWIyY2MgXHViMzAwXHViOWM4XHVhZjQzXHViOTdjIE1cdWFjMWNcdWM3NTggXHVkNTg5XHVhY2ZjIE5cdWFjMWNcdWM3NTggXHVjNWY0XHVjNzQ0IFx1YWMwMFx1YzljNCBcdWQxYTBcdWM5YzBcdWM1ZDAgXHVhY2JkXHVjNzkxXHVkNTU4XHViMjk0XHViMzcwIFx1YzljNFx1YzZiMVx1Yzc3NFx1YWMwMCBcdWM3OTBcdWFmYjggXHVkNmQ0XHVjY2QwXHVhYzAwXHVjMTFjIFx1YWNlMFx1YmJmY1x1YzVkMCBcdWJlNjBcdWM4NGNcdWIyZTQuIFx1YzkwMFx1YWRkY1x1YjI5NCBcdWM5YzRcdWM2YjFcdWM3NzRcdWFjMDAgXHVkNmQ0XHVjY2QwXHVhYzAwXHVjOWMwIFx1YmFiYlx1ZDU1OFx1YWM4YyBcdWFmNDMgXHVjOGZjXHViY2MwXHVjNzQ0IFx1YzZiOFx1ZDBjMFx1YjlhY1x1Yjg1YyBcdWI0NThcdWI3ZWNcdWMzMTNcdWIyZTQuIFx1ZDU1OFx1YzljMFx1YjljYyBcdWMyZGNcdWFjMDRcdWM3NzQgXHVjOWMwXHViMDk4XHViYTc0XHVjMTFjIFx1YzZiOFx1ZDBjMFx1YjlhYyBcdWJhODdcdWFjMWNcdWFjMDAgXHViZDgwXHVjMTFjXHVjODRjXHViMmU0LiBcdWM5YzRcdWM2YjFcdWM3NzRcdWIyOTQgXHVjNzc0XHViNTRjXHViOTdjIFx1ZDJjOFx1ZDBjMCBcdWIyZTRcdWMyZGMgXHVhZjQzXHVjNzQ0IFx1ZDZkNFx1YzljMFx1YjgyNFx1YWNlMCBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzU0NFx1Yjc5OCBcdWJjZjRcdWM3NzRcdWIyOTQgXHVhZGY4XHViOWJjXHVjNzQwIDExXHVkNTg5IDEyXHVjNWY0XHVjNzU4IFx1ZDY1NFx1YzZkMFx1Yzc0NCBcdWIwOThcdWQwYzBcdWIwYjhcdWIyZTQuIDBcdWM3NDAgXHVjNmI4XHVkMGMwXHViOWFjXHVhYzAwIFx1YzVjNlx1YWM3MFx1YjA5OCBcdWFmNDNcdWM3NzQgXHVjMmVjXHVjNWI0XHVjODM4IFx1Yzc4OFx1YjI5NCBcdWJkODBcdWJkODRcdWM3NDQgXHViMDk4XHVkMGMwXHViMGI0XHVhY2UwIDFcdWM3NDAgXHVjNmI4XHVkMGMwXHViOWFjXHVhYzAwIFx1Yzc4OFx1YjI5NCBcdWFjZjNcdWM3NDQgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LiBcdWQ2NTRcdWM2ZDBcdWM1ZDAgXHViNGU0XHVjNWI0IFx1YzYyNFx1YjgyNFx1YmE3NCBcdWIxNzhcdWI3ODBcdWMwYzkgXHViZDgwXHViZDg0XHViZDgwXHVkMTMwIFx1YjRlNFx1YzViNFx1YzY0MFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvZmVuY2UlMjgxJTI5LnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjI1NnB4OyB3aWR0aDozMjJweFwiIFwvPjxcL3A+XHJcblxyXG48cD5cdWM5YzRcdWM2YjFcdWM3NzRcdWFjMDAgXHVhZjQzXHVjNzQ0IFx1ZDZkNFx1Y2U1OFx1YjdlYyBcdWQ2NTRcdWM2ZDBcdWM1ZDAgXHViNGU0XHVjNWI0XHVjNjU0XHViMmU0LiBcdWM2YjhcdWQwYzBcdWI5YWNcdWI5N2MgXHVjNjk0XHViOWFjXHVjODcwXHViOWFjIFx1ZDUzY1x1ZDU3NFx1YzExYyBcdWI0ZTRcdWM1YjRcdWFjMDBcdWIyOTRcdWIzNzAgXHVjNzc0XHViNTRjIFx1YzBjMSwgXHVkNTU4LCBcdWM4OGMsIFx1YzZiMFx1Yjg1YyBcdWJjMTZcdWM1ZDAgXHVjNzc0XHViM2Q5XHVkNTYwIFx1YzIxOCBcdWM1YzZcdWIyZTQuIFx1YzljNFx1YzZiMVx1Yzc3NFx1YjI5NCBcdWQzMGNcdWFkMzRcdWM4MDEgXHVjMTMxXHVkNWE1XHVjNzQ0IFx1YzljMFx1YjJjOFx1YWNlMCBcdWM3ODhcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwIFx1YzZiOFx1ZDBjMFx1YjlhY1x1Yjg1YyBcdWFjMDBcdWI4NWNcdWI5YzlcdWQ2MDAgXHViMzU0XHVjNzc0XHVjMGMxIFx1YzU0OFx1YzczY1x1Yjg1YyBcdWM4MTFcdWFkZmNcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1Yzc0NCBcdWI1NGMgXHVjNmI4XHVkMGMwXHViOWFjXHViOTdjIFx1YmQ4MFx1YzIxY1x1YjJlNC4mbmJzcDsgXHVjOWM0XHVjNmIxXHVjNzc0XHVhYzAwIFx1YjQxOFx1YjNjNFx1Yjg1ZCBcdWM4MDFcdWM3NDAgXHVjMjE4XHVjNzU4IFx1YzZiOFx1ZDBjMFx1YjlhY1x1Yjk3YyBcdWJkODBcdWMyMThcdWJhNzRcdWMxMWMgXHVjNTQ4XHVjNzNjXHViODVjIFx1YjRlNFx1YzViNFx1YWMwOFx1YjU0YywgXHVjZDVjXHViMzAwXHVkNTVjIFx1YjljZVx1Yzc3NCBcdWM2YjhcdWQwYzBcdWI5YWNcdWI5N2MgXHViZDgwXHVjMjFjIFx1ZDY5Zlx1YzIxOFx1YzY0MCAsIFx1YWRmOFx1YjU0YyBcdWM1YmJcdWM3NDQgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWFmNDNcdWM3NTggXHVjMjE4XHViOTdjIFx1YWQ2Y1x1ZDU1OFx1YzVlY1x1Yjc3Yy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWMyMTggVCAoJmxlOyAxMCkgXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVhYzE5XHVjNzQwIFx1YzkwNFx1YzVkMCBcdWM4ZmNcdWM1YjRcdWM5YzBcdWIyOTQgXHVjNWVjXHViN2VjXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOFx1YjI5NCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFjMDFcdWFjMDFcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1YjQ1MFx1YWMxY1x1Yzc1OCBcdWM4MTVcdWMyMTggUiwgQ1x1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQgKDUgJmxlOyBSLCBDICZsZTsgMSAwMDApPFwvcD5cclxuXHJcbjxwPlJcdWM3NDAgXHVkNjU0XHVjNmQwXHVjNzU4IFx1ZDU4OVx1Yzc0NCBcdWIwOThcdWQwYzBcdWIwYjRcdWFjZTAgQ1x1YjI5NCBcdWM1ZjRcdWM3NTggXHVjMjE4XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViNDUwIFx1YmM4OFx1YzlmOCBcdWM5MDRcdWJkODBcdWQxMzAgUisxXHViYzg4XHVjOWY4IFx1YzkwNFx1YWU0Y1x1YzljMCBcdWQ2NTRcdWM2ZDBcdWM3NTggXHVjODE1XHViY2Y0XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVkNjU0XHVjNmQwXHVjNzQwIFx1YWY0M1x1Yzc3NCBcdWMyZWNcdWM1YjRcdWM5YzggXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWJkODBcdWJkODRcdWM3NzggMCBcdWFjZmMgXHVjNmI4XHVkMGMwXHViOWFjXHVhYzAwIFx1YzEyNFx1Y2U1OFx1YjQxYyAxXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDY1NFx1YzZkMFx1YzVkMFx1YjI5NCBcdWM4MDFcdWM1YjRcdWIzYzQgXHVkNTU4XHViMDk4IFx1Yzc3NFx1YzBjMVx1Yzc1OCBcdWFmNDNcdWM3NzQgXHVjMmVjXHVjNWI0XHVjOWMwXHViMjk0IFx1YmQ4MFx1YmQ4NFx1Yzc3NCBcdWM3ODhcdWIyZTRcdWFjZTAgXHVhYzAwXHVjODE1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMVx1YWMwMVx1Yzc1OCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExYyAyXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOFx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjODE1XHVjMjE4XHViMjk0IFx1YzljNFx1YzZiMVx1Yzc3NFx1YWMwMCBcdWJkODBcdWMyMThcdWIyOTQgXHVjZDVjXHViMzAwIFx1YzZiOFx1ZDBjMFx1YjlhY1x1Yzc1OCBcdWMyMThcdWM3NzRcdWFjZTAsIFx1YjQ1MCBcdWJjODhcdWM5ZjggXHVjODE1XHVjMjE4XHViMjk0IFx1YWRmOFx1YjU0YyBcdWM1YmJcdWM3NDQgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWFmNDNcdWM3NTggXHVjZDVjXHViMzAwIFx1YWMxY1x1YzIxOFx1Yzc3NFx1YjJlNC4gXHViNDUwIFx1YWMxY1x1Yzc1OCBcdWM4MTVcdWMyMThcdWIyOTQgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiPHA+XHVjOWM0XHVjNmIxXHVjNzc0XHViMjk0IFx1YjQxOFx1YjNjNFx1Yjg1ZFx1Yzc3NFx1YmE3NCBcdWM2YjhcdWQwYzBcdWI5YWNcdWI5N2MgXHViZDgwXHVjMjE4XHVjOWMwIFx1YzU0YVx1YWNlMCBcdWM1NDhcdWM3M2NcdWI4NWMgXHViNGU0XHVjNWI0XHVhYzA0XHViMmU0Llx1YzZiOFx1ZDBjMFx1YjlhY1x1Yjk3YyBcdWJkODBcdWMyMThcdWM5YzAgXHVjNTRhXHVhY2UwIFx1YzgwOFx1YjMwMFx1Yjg1YyBcdWM1NDhcdWM3M2NcdWI4NWMgXHViNGU0XHVjNWI0IFx1YWMwOCBcdWMyMTggXHVjNWM2XHVjNzQ0XHViNTRjXHViOWNjIFx1YzZiOFx1ZDBjMFx1YjlhY1x1Yjk3YyBcdWJkODBcdWMyMWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvZmVuY2UyLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjE3OXB4OyB3aWR0aDo2MTJweFwiIFwvPjxcL3A+XHJcbiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiOTM0NyIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkZlbmNlIiwiZGVzY3JpcHRpb24iOiI8cD5Nci4gRG9rbWFpIGlzIGEgZmxvd2VyIHBsYW50ZXIuIEhlIHBsYW50cyByYXJlIGZsb3dlcnMgb2YgaGlnaCB2YWx1ZXMgaW4gYSByZWN0YW5ndWxhciBsYW5kIHBsb3QgZGl2aWRlZCBpbnRvIHNlY3Rpb25zIG9mIE0gcm93cyBieSBOIGNvbHVtbnMuIEhlIGhhZCBtYW55IHRoZWZ0IHByb2JsZW1zLCBzbyBoZSBidWlsdCBmZW5jZXMgdG8gcHJvdGVjdCBoaXMgZmxvd2VycyBmcm9tIHRoaWV2ZXMuIFNpbmNlIGZsb3dlcnMgaGF2ZSBkaWZmZXJlbnQgdmFsdWVzLCBzb21lIHNlY3Rpb25zIGFyZSBiZXR0ZXIgcHJvdGVjdGVkLjxcL3A+XHJcblxyXG48cD5VbmZvcnR1bmF0ZWx5LCBoaXMgZmVuY2VzIGNhbm5vdCBzdGFuZCB0aGUgdGVzdCBvZiB0aW1lIGFuZCBzb21lIGZlbmNlcyB3ZXJlIGRlc3Ryb3llZCBkdWUgdG8gdGhlaXIgYWdlLiBUbyBldmFsdWF0ZSB0aGUgY3VycmVudCBzaXR1YXRpb24sIE1yLiBEb2ttYWkgZHJhd3MgYSBtYXAgYW5kIGFzc29jaWF0ZXMgYSBudW1iZXIgdG8gZWFjaCBsYW5kIHNlY3Rpb24uIEluIGhpcyBtYXAsIG9uZSBtZWFucyB0aGF0IHRoZSBzZWN0aW9uIGlzIGZlbmNlLCB3aGlsZSB6ZXJvIG1lYW5zIHRoYXQgdGhlIHNlY3Rpb24gaGFzIG5vIGZlbmNlIGFuZCBpcyBzdWl0YWJsZSBmb3IgcGxhbnRpbmcuIEZpZ3VyZSAxIGlsbHVzdHJhdGVzIGFuIGV4YW1wbGUgb2YgYSBtYXAgb2YgMTEgcm93cyBieSAxMiBjb2x1bW5zLiZuYnNwOzxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL2ZlbmNlKDEpLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjI1NnB4OyB3aWR0aDozMjJweFwiIFwvPjxcL3A+XHJcblxyXG48cD5GaWd1cmUgMS4gSWxsdXN0cmF0aW9uIG9mIGxhbmQgcGxvdCBmb3IgZmxvd2VyIHBsYW50aW5nLjxcL3A+XHJcblxyXG48cD5BIHRoaWVmIGNhbiBlbnRlciB0aGUgbGFuZCBwbG90IGF0IGFueSBvdXRlcm1vc3Qgc2VjdGlvbiAoaGlnaGxpZ2h0ZWQgaW4gRmlndXJlIDEpLiBIb3dldmVyLCBpZiB0aGUgc2VjdGlvbiBoYXMgYSBmZW5jZSwgaXQgbWVhbnMgdGhhdCB0aGUgdGhpZWYgbXVzdCBjdXQgdGhyb3VnaCB0aGUgZmVuY2UgdG8gZW50ZXIuIE9uY2UgdGhlIHRoaWVmIGVudGVycyB0aGUgbGFuZCBwbG90LCBoZSBtYXkgbmVlZCB0byBjdXQgdGhyb3VnaCBtb3JlIGZlbmNlcyB0byBnZXQgaW50byBhIGNlcnRhaW4gc2VjdGlvbi4gSXQgY2FuIHRha2UgYSBsb3Qgb2YgdGltZSBhbmQgZWZmb3J0IGlmIHNldmVyYWwgZmVuY2VzIGFyZSB0byBiZSBjdXQuJm5ic3A7PFwvcD5cclxuXHJcbjxwPkFzc3VtZSB0aGF0IHRoZSB0aGllZiBjYW4gbW92ZSBmcm9tIG9uZSBzZWN0aW9uIHRvIGFub3RoZXIgdGhhdCBpcyBhZGphY2VudCB0byBpdCBpbiBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGRpcmVjdGlvbnMsIGJ1dCBub3QgZGlhZ29uYWwgb25lcy4gRm9yIGV4YW1wbGUsIGlmIGhlIGlzIGluIGEgc2VjdGlvbiBhdCBSb3cgNSBDb2x1bW4gNy4gSGUgY2FuIG1vdmUgdG8gc2VjdGlvbnMgYXQgUm93IDQgQ29sdW1uIDcsIG9yIFJvdyA2IENvbHVtbiA3LCBvciBSb3cgNSBDb2x1bW4gNiwgb3IgUm93IDUgQ29sdW1uIDguIEhvd2V2ZXIsIGhlIGNhbm5vdCBtb3ZlIHRvIHNlY3Rpb24gYXQgUm93IDQgQ29sdW1uIDYsIGZvciBleGFtcGxlLjxcL3A+XHJcblxyXG48cD5Bc3N1bWUgZnVydGhlciB0aGF0IHRoZSBzZWN1cml0eSBsZXZlbCBvZiBhIHNlY3Rpb24gaXMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGZlbmNlIGN1dHRpbmcgdGhhdCBhIHRoaWVmIG5lZWRzIHRvIGVudGVyIHRoZSBzZWN0aW9uLiBGb3IgaW5zdGFuY2UsIHRoZSBzZWN1cml0eSBsZXZlbCBvZiBzZWN0aW9uIGF0IFJvdyA2IENvbHVtbiA2IGlzIDIsIHRoYXQgb2Ygc2VjdGlvbiBhdCBSb3cgNCBDb2x1bW4gNSBpcyAxLCB0aGF0IG9mIHNlY3Rpb24gYXQgUm93IDEgQ29sdW1uIDMgaXMgMC4gSXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGUgcm93IGFuZCBjb2x1bW4gaW5kaWNlcyBzdGFydCBhdCAxLjxcL3A+XHJcblxyXG48cD5Nci4gRG9rbWFpIG5vdyBuZWVkcyB0byBwbGFudCB2ZXJ5IGV4cGVuc2l2ZSBmbG93ZXJzLCBzbyBoZSBpcyBsb29raW5nIGZvciB0aGUgbW9zdCBzZWN1cmUgc2VjdGlvbnMuIEhlIGFsc28gd2FudHMgdG8ga25vdyB0aGUgbnVtYmVyIG9mIHNlY3Rpb25zIHdpdGggaGlnaGVzdCBzZWN1cml0eSBsZXZlbC4gTm90ZSB0aGF0IG9ubHkgc2VjdGlvbnMgcmVwcmVzZW50ZWQgYnkgMCBpbiB0aGUgbWFwIGFyZSBzdWl0YWJsZSBmb3IgZmxvd2VyIHBsYW50aW5nLiBNci4gRG9rbWFpIGhhcyBubyBpbnRlbnRpb24gdG8gcmVtb3ZlIGFueSBmZW5jZSB0byBjcmVhdGUgYSBuZXcgc2VjdGlvbiBmb3IgZmxvd2VyIHBsYW50aW5nLjxcL3A+XHJcblxyXG48cD5Zb3VyIHRhc2sgaXMgdG8gd3JpdGUgYSBwcm9ncmFtIHRoYXQgZGV0ZXJtaW5lcyB0aGUgaGlnaGVzdCBzZWN1cml0eSBsZXZlbCBhbmQgdGhlIG51bWJlciBvZiBzZWN0aW9ucyBoYXZpbmcgdGhlIGhpZ2hlc3Qgc2VjdXJpdHkgbGV2ZWwuJm5ic3A7PFwvcD5cclxuIiwiaW5wdXQiOiI8cD5GaXJzdCBsaW5lIG9mIGlucHV0IGlzIGEgbnVtYmVyIG9mIHRlc3QgY2FzZXMgVCAmbGU7IDEwLiBOb3RlIHRoYXQgaW50ZWdlcnMgaW4gdGhlIHNhbWUgbGluZSBhcmUgc2VwYXJhdGVkIGJ5IG9uZSB3aGl0ZSBzcGFjZS4mbmJzcDs8XC9wPlxyXG5cclxuPHA+VGhlIGZpcnN0IGxpbmUgb2YgYSB0ZXN0IGNhc2UgaGFzIHR3byBpbnRlZ2VycyBSIGFuZCBDICg1ICZsZTsgUiwgQyAmbGU7IDEgMDAwKS4gVGhlIGZpcnN0IGludGVnZXIgaXMgdGhlIG51bWJlciBvZiByb3dzIFIgYW5kIHNlY29uZCBpcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgQyBvZiB0aGUgbWFwIHNlY3Rpb25zLiZuYnNwOzxcL3A+XHJcblxyXG48cD5MaW5lcyAyIHRvIFIrMSBjb250YWluIHNlY3Rpb24gZGF0YSBvZiBlYWNoIHJvdywgZnJvbSBSb3cgMSB0byBSb3cgUiwgcmVzcGVjdGl2ZWx5LiBFYWNoIGxpbmUgaGFzIEMgaW50ZWdlcnMgd2hlcmUgMCByZXByZXNlbnRzIGEgc2VjdGlvbiBzdWl0YWJsZSBmb3IgZmxvd2VyIHBsYW50aW5nIGFuZCAxIHJlcHJlc2VudHMgYSBmZW5jZS4mbmJzcDs8XC9wPlxyXG5cclxuPHA+Tm90ZTogdGhlIG1hcCBhbHdheXMgaGFzIGF0IGxlYXN0IG9uZSBzZWN0aW9uIHN1aXRhYmxlIGZvciBmbG93ZXIgcGxhbnRpbmcuIEFsc28sIGlmIHlvdSBhcmUgdXNpbmcgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5b3UgdXNlIEJ1ZmZlcmVkUmVhZGVyIGFuZCBTdHJlYW1Ub2tlbml6ZXIgdG8gcmVhZCBpbnB1dCBkYXRhLiZuYnNwOzxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBlYWNoIHRlc3QgY2FzZSwgZGlzcGxheSAyIGludGVnZXJzLiBUaGUgZmlyc3QgaXMgYSBub24tbmVnYXRpdmUgaW50ZWdlciBzaG93aW5nIHRoZSBoaWdoZXN0IHNlY3VyaXR5IGxldmVsIG9mIGEgbGFuZCBzZWN0aW9uIHN1aXRhYmxlIGZvciBmbG93ZXIgcGxhbnRpbmcuIFRoZSBzZWNvbmQgaXMgdGhlIG51bWJlciBvZiBzZWN0aW9ucyBoYXZpbmcgdGhlIGhpZ2hlc3Qgc2VjdXJpdHkgbGV2ZWwuIFRoZSB0d28gbnVtYmVycyBhcmUgc2VwYXJhdGVkIGJ5IG9uZSB3aGl0ZSBzcGFjZS4mbmJzcDs8XC9wPlxyXG4iLCJoaW50IjoiPHA+Rm9yIGJvdGggZXhhbXBsZXMsIHRoZSBzdGFycyBiZWxvdyByZXByZXNlbnQgdGhlIHNlY3Rpb24gd2l0aCB0aGUgaGlnaGVzdCBzZWN1cml0eSBsZXZlbC4gVGhlIHRoaWNrIHVuZGVybGluZWQgbnVtYmVycyByZXByZXNlbnQgc29tZSBvZiB0aGUgcGF0aHMgdGhhdCBhIHRoaWVmIGNhbiBnbyBpbnRvIHRoZSBoaWdoZXN0IHNlY3VyaXR5IHNlY3Rpb24gcGFzc2luZyBzbWFsbGVzdCBudW1iZXIgb2YgZmVuY2UuJm5ic3A7PFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvZmVuY2UyLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjE3OXB4OyB3aWR0aDo2MTJweFwiIFwvPjxcL3A+XHJcbiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCJ9XQ==