시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB4394116889027.486%

문제

유명한 피타고라스의 정리와 유사한 형태의 피타고라스 기댓값 (Pythagorean Expectation)이 야구와 같은 스포츠 경기에 자주 사용된다. 피타고라스 기댓값은 빌 제임스(Bill James)에 의해 정의되었으며, 이 값은 특정 야구팀이 한 시즌 동안 얼마나 잘 했는지를 평가하는 지표 중 하나로 사용된다. 한 야구팀의 피타고라스 기댓값 \(W\)는 아래 식과 같이 정의된다.

\(W = \dfrac{S^2}{S^2 + A^2}\),

여기서 \(S\)는 해당 팀의 총 득점 수를, \(A\)는 해당 팀의 총 실점 수를 나타낸다.

이 기댓값을 실제 승률과 비교하여, 해당 팀이 한 시즌을 얼마나 잘 보냈는지 평가할 수 있다. 예를 들어, 한화 이글스는 2014 시즌에 619 득점과 889 실점을 했다. 즉, \(S\) = 619, \(A\) = 889이 되어, 한화 팀의 피타고라스 기댓값은 \(W\) = 6192/(6192 + 8892) = 0.326이 된다. KBO 규정에 따르면, 한 시즌당 한 팀은 128번의 경기를 해야 하므로, 한화는 0.326 ×128 = 41.728 경기에서는 승리했어야 한다. 실제 한화는 49경기에서 승리했기 때문에, 2014 시즌을 그리 나쁘지 않게 보냈음을 알 수 있다. 반면에 롯데 자이언츠는 \(S\) = 715이고, \(A\) = 719이 되어, \(W\) = 0.497이 된다. 따라서 0.497 ×128 = 63.616경기 이상을 이길 것으로 기대되었지만, 실제론 58경기만 승리했다. 결국, 롯데에게 2014년은 기대에 많이 못 미친 시즌이었음을 알 수 있다.

\(n\)개의 팀에 대한 기록이 주어지면, 이 기록으로부터 팀 별 피타고라스 기댓값을 계산한 후, 그 중 최대 기댓값과 최소 기댓값을 출력하는 프로그램을 작성하시오.

입력

입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫 줄에는 두 양의 정수 \(n\) (2 ≤ \(n\) ≤ 1,000)과 \(m\) (2 ≤ \(m\) ≤ 1,000)이 주어진다. 여기서, \(n\)은 팀 개수이며, \(m\)은 전체 경기 수이다. 다음의 \(m\)개의 줄에는 각 경기에 대한 정보가 주어진다. 하나의 경기는 네 개의 정수 \(a\), \(b\), \(p\), \(q\)로 주어지는데, 팀 a와 팀 b가 경기를 했고, 팀 a는 p득점을 팀 b는 q득점을 했다는 의미이다. 여기서, 1 ≤ \(a\) ≠ \(b\) ≤ \(n\)이며, \(p\)와 \(q\)는 모두 음이 아닌 20 이하의 정수이다. 하나의 테스트 데이터에서 팀 당 경기수가 반드시 같을 필요는 없다. 만약, 어떤 팀의 총 득점과 총 실점이 모두 0이라면, 그 팀의 기댓값은 0으로 정의한다.

출력

출력은 표준 출력을 사용한다. 각 테스트 데이터에 대해, 두 정수 값을 한 줄에 하나씩 출력해야 한다. 첫 번째 줄에는 최대 피타고라스 기댓값에 1,000을 곱한 값의 정수부분을 출력하고, 두 번째 줄에는 최소 피타고라스 기댓값에 1,000을 곱한 값의 정수부분을 출력한다.

예제 입력 1

2
3 5
1 2 3 5
1 3 10 1
1 2 0 7
2 3 9 3
3 2 4 5
4 6
1 2 0 11
1 3 17 13
1 4 17 1
2 3 7 12
2 4 19 17
3 4 17 0

예제 출력 1

871
100
753
103
W3sicHJvYmxlbV9pZCI6IjExMDcwIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVkNTNjXHVkMGMwXHVhY2UwXHViNzdjXHVjMmE0IFx1YWUzMFx1YjMxM1x1YWMxMiIsImRlc2NyaXB0aW9uIjoiPHA+XHVjNzIwXHViYTg1XHVkNTVjIFx1ZDUzY1x1ZDBjMFx1YWNlMFx1Yjc3Y1x1YzJhNFx1Yzc1OCBcdWM4MTVcdWI5YWNcdWM2NDAgXHVjNzIwXHVjMGFjXHVkNTVjIFx1ZDYxNVx1ZDBkY1x1Yzc1OCBcdWQ1M2NcdWQwYzBcdWFjZTBcdWI3N2NcdWMyYTQgXHVhZTMwXHViMzEzXHVhYzEyIChQeXRoYWdvcmVhbiBFeHBlY3RhdGlvbilcdWM3NzQgXHVjNTdjXHVhZDZjXHVjNjQwIFx1YWMxOVx1Yzc0MCBcdWMyYTRcdWQzZWNcdWNlMjAgXHVhY2JkXHVhZTMwXHVjNWQwIFx1Yzc5MFx1YzhmYyBcdWMwYWNcdWM2YTlcdWI0MWNcdWIyZTQuIFx1ZDUzY1x1ZDBjMFx1YWNlMFx1Yjc3Y1x1YzJhNCBcdWFlMzBcdWIzMTNcdWFjMTJcdWM3NDAgXHViZTRjIFx1YzgxY1x1Yzc4NFx1YzJhNChCaWxsIEphbWVzKVx1YzVkMCBcdWM3NThcdWQ1NzQgXHVjODE1XHVjNzU4XHViNDE4XHVjNWM4XHVjNzNjXHViYTcwLCBcdWM3NzQgXHVhYzEyXHVjNzQwIFx1ZDJiOVx1YzgxNSBcdWM1N2NcdWFkNmNcdWQzMDBcdWM3NzQgXHVkNTVjIFx1YzJkY1x1Yzk4YyBcdWIzZDlcdWM1NDggXHVjNWJjXHViOWM4XHViMDk4IFx1Yzc5OCBcdWQ1ODhcdWIyOTRcdWM5YzBcdWI5N2MgXHVkM2M5XHVhYzAwXHVkNTU4XHViMjk0IFx1YzljMFx1ZDQ1YyBcdWM5MTEgXHVkNTU4XHViMDk4XHViODVjIFx1YzBhY1x1YzZhOVx1YjQxY1x1YjJlNC4gXHVkNTVjIFx1YzU3Y1x1YWQ2Y1x1ZDMwMFx1Yzc1OCBcdWQ1M2NcdWQwYzBcdWFjZTBcdWI3N2NcdWMyYTQgXHVhZTMwXHViMzEzXHVhYzEyIFxcKFdcXClcdWIyOTQgXHVjNTQ0XHViNzk4IFx1YzJkZFx1YWNmYyBcdWFjMTlcdWM3NzQgXHVjODE1XHVjNzU4XHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+XFwoVyA9IFxcZGZyYWN7U14yfXtTXjIgKyBBXjJ9XFwpLDxcL3A+XHJcblxyXG48cD5cdWM1ZWNcdWFlMzBcdWMxMWMgXFwoU1xcKVx1YjI5NCBcdWQ1NzRcdWIyZjkgXHVkMzAwXHVjNzU4IFx1Y2QxZCBcdWI0ZGRcdWM4MTAgXHVjMjE4XHViOTdjLCBcXChBXFwpXHViMjk0IFx1ZDU3NFx1YjJmOSBcdWQzMDBcdWM3NTggXHVjZDFkIFx1YzJlNFx1YzgxMCBcdWMyMThcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM3NzQgXHVhZTMwXHViMzEzXHVhYzEyXHVjNzQ0IFx1YzJlNFx1YzgxYyBcdWMyYjlcdWI5NjBcdWFjZmMgXHViZTQ0XHVhZDUwXHVkNTU4XHVjNWVjLCBcdWQ1NzRcdWIyZjkgXHVkMzAwXHVjNzc0IFx1ZDU1YyBcdWMyZGNcdWM5OGNcdWM3NDQgXHVjNWJjXHViOWM4XHViMDk4IFx1Yzc5OCBcdWJjZjRcdWIwYzhcdWIyOTRcdWM5YzAgXHVkM2M5XHVhYzAwXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWM1YjQsIFx1ZDU1Y1x1ZDY1NCBcdWM3NzRcdWFlMDBcdWMyYTRcdWIyOTQgMjAxNCBcdWMyZGNcdWM5OGNcdWM1ZDAgNjE5IFx1YjRkZFx1YzgxMFx1YWNmYyA4ODkgXHVjMmU0XHVjODEwXHVjNzQ0IFx1ZDU4OFx1YjJlNC4gXHVjOTg5LCBcXChTXFwpJm5ic3A7PSA2MTksIFxcKEFcXCkgPSA4ODlcdWM3NzQgXHViNDE4XHVjNWI0LCBcdWQ1NWNcdWQ2NTQgXHVkMzAwXHVjNzU4IFx1ZDUzY1x1ZDBjMFx1YWNlMFx1Yjc3Y1x1YzJhNCBcdWFlMzBcdWIzMTNcdWFjMTJcdWM3NDAgXFwoV1xcKSA9IDYxOTxzdXA+MjxcL3N1cD5cLyg2MTk8c3VwPjI8XC9zdXA+ICsgODg5PHN1cD4yPFwvc3VwPikgPSAwLjMyNlx1Yzc3NCBcdWI0MWNcdWIyZTQuIEtCTyBcdWFkZGNcdWM4MTVcdWM1ZDAgXHViNTMwXHViOTc0XHViYTc0LCBcdWQ1NWMgXHVjMmRjXHVjOThjXHViMmY5IFx1ZDU1YyBcdWQzMDBcdWM3NDAgMTI4XHViYzg4XHVjNzU4IFx1YWNiZFx1YWUzMFx1Yjk3YyBcdWQ1NzRcdWM1N2MgXHVkNTU4XHViYmMwXHViODVjLCBcdWQ1NWNcdWQ2NTRcdWIyOTQgMC4zMjYgJnRpbWVzOzEyOCA9IDQxLjcyOCZuYnNwO1x1YWNiZFx1YWUzMFx1YzVkMFx1YzExY1x1YjI5NCBcdWMyYjlcdWI5YWNcdWQ1ODhcdWM1YjRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWMyZTRcdWM4MWMgXHVkNTVjXHVkNjU0XHViMjk0IDQ5XHVhY2JkXHVhZTMwXHVjNWQwXHVjMTFjIFx1YzJiOVx1YjlhY1x1ZDU4OFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAsIDIwMTQgXHVjMmRjXHVjOThjXHVjNzQ0IFx1YWRmOFx1YjlhYyBcdWIwOThcdWMwNThcdWM5YzAgXHVjNTRhXHVhYzhjIFx1YmNmNFx1YjBjOFx1Yzc0Y1x1Yzc0NCBcdWM1NGMgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHViYzE4XHViYTc0XHVjNWQwIFx1Yjg2Zlx1YjM3MCBcdWM3OTBcdWM3NzRcdWM1YjhcdWNlMjBcdWIyOTQgXFwoU1xcKSA9IDcxNVx1Yzc3NFx1YWNlMCwgXFwoQVxcKSA9IDcxOVx1Yzc3NCBcdWI0MThcdWM1YjQsIFxcKFdcXCkmbmJzcDs9IDAuNDk3XHVjNzc0IFx1YjQxY1x1YjJlNC4gXHViNTMwXHViNzdjXHVjMTFjIDAuNDk3ICZ0aW1lczsxMjggPSA2My42MTZcdWFjYmRcdWFlMzAgXHVjNzc0XHVjMGMxXHVjNzQ0IFx1Yzc3NFx1YWUzOCBcdWFjODNcdWM3M2NcdWI4NWMgXHVhZTMwXHViMzAwXHViNDE4XHVjNWM4XHVjOWMwXHViOWNjLCBcdWMyZTRcdWM4MWNcdWI4NjAgNThcdWFjYmRcdWFlMzBcdWI5Y2MgXHVjMmI5XHViOWFjXHVkNTg4XHViMmU0LiBcdWFjYjBcdWFkNmQsIFx1Yjg2Zlx1YjM3MFx1YzVkMFx1YWM4YyAyMDE0XHViMTQ0XHVjNzQwIFx1YWUzMFx1YjMwMFx1YzVkMCBcdWI5Y2VcdWM3NzQgXHViYWJiIFx1YmJmOFx1Y2U1YyBcdWMyZGNcdWM5OGNcdWM3NzRcdWM1YzhcdWM3NGNcdWM3NDQgXHVjNTRjIFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlxcKG5cXClcdWFjMWNcdWM3NTggXHVkMzAwXHVjNWQwIFx1YjMwMFx1ZDU1YyBcdWFlMzBcdWI4NWRcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWMwXHViYTc0LCBcdWM3NzQgXHVhZTMwXHViODVkXHVjNzNjXHViODVjXHViZDgwXHVkMTMwIFx1ZDMwMCBcdWJjYzQgXHVkNTNjXHVkMGMwXHVhY2UwXHViNzdjXHVjMmE0IFx1YWUzMFx1YjMxM1x1YWMxMlx1Yzc0NCBcdWFjYzRcdWMwYjBcdWQ1NWMgXHVkNmM0LCBcdWFkZjggXHVjOTExIFx1Y2Q1Y1x1YjMwMCBcdWFlMzBcdWIzMTNcdWFjMTJcdWFjZmMgXHVjZDVjXHVjMThjIFx1YWUzMFx1YjMxM1x1YWMxMlx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Yzc4NVx1YjgyNSBcdWIzNzBcdWM3NzRcdWQxMzBcdWIyOTQgXHVkNDVjXHVjOTAwXHVjNzg1XHViODI1XHVjNzQ0IFx1YzBhY1x1YzZhOVx1ZDU1Y1x1YjJlNC4gXHVjNzg1XHViODI1XHVjNzQwIFRcdWFjMWNcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MWNcdWIyZTQuIFx1Yzc4NVx1YjgyNVx1Yzc1OCBcdWNjYWIgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM3ODVcdWI4MjUgXHViMzcwXHVjNzc0XHVkMTMwXHVjNzU4IFx1YzIxOFx1Yjk3YyBcdWIwOThcdWQwYzBcdWIwYjRcdWIyOTQgXHVjODE1XHVjMjE4IFRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yzc1OCBcdWNjYWIgXHVjOTA0XHVjNWQwXHViMjk0IFx1YjQ1MCBcdWM1OTFcdWM3NTggXHVjODE1XHVjMjE4IFxcKG5cXCkgKDIgJmxlOyBcXChuXFwpICZsZTsgMSwwMDApXHVhY2ZjIFxcKG1cXCkgKDIgJmxlOyBcXChtXFwpICZsZTsgMSwwMDApXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjNWVjXHVhZTMwXHVjMTFjLCBcXChuXFwpXHVjNzQwIFx1ZDMwMCBcdWFjMWNcdWMyMThcdWM3NzRcdWJhNzAsIFxcKG1cXClcdWM3NDAmbmJzcDtcdWM4MDRcdWNjYjQgXHVhY2JkXHVhZTMwIFx1YzIxOFx1Yzc3NFx1YjJlNC4gXHViMmU0XHVjNzRjXHVjNzU4IFxcKG1cXClcdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwXHViMjk0IFx1YWMwMSBcdWFjYmRcdWFlMzBcdWM1ZDAgXHViMzAwXHVkNTVjIFx1YzgxNVx1YmNmNFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1ZDU1OFx1YjA5OFx1Yzc1OCBcdWFjYmRcdWFlMzBcdWIyOTQgXHViMTI0IFx1YWMxY1x1Yzc1OCBcdWM4MTVcdWMyMTggXFwoYVxcKSwgXFwoYlxcKSwgXFwocFxcKSwgXFwocVxcKVx1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzBcdWIyOTRcdWIzNzAsIFx1ZDMwMCBhXHVjNjQwIFx1ZDMwMCBiXHVhYzAwIFx1YWNiZFx1YWUzMFx1Yjk3YyBcdWQ1ODhcdWFjZTAsIFx1ZDMwMCBhXHViMjk0IHBcdWI0ZGRcdWM4MTBcdWM3NDQgXHVkMzAwIGJcdWIyOTQgcVx1YjRkZFx1YzgxMFx1Yzc0NCBcdWQ1ODhcdWIyZTRcdWIyOTQgXHVjNzU4XHViYmY4XHVjNzc0XHViMmU0LiBcdWM1ZWNcdWFlMzBcdWMxMWMsIDEgJmxlOyBcXChhXFwpICZuZTsgXFwoYlxcKSAmbGU7IFxcKG5cXClcdWM3NzRcdWJhNzAsIFxcKHBcXClcdWM2NDAgXFwocVxcKVx1YjI5NCBcdWJhYThcdWI0NTAgXHVjNzRjXHVjNzc0IFx1YzU0NFx1YjJjYyAyMCBcdWM3NzRcdWQ1NThcdWM3NTggXHVjODE1XHVjMjE4XHVjNzc0XHViMmU0LiBcdWQ1NThcdWIwOThcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1YjM3MFx1Yzc3NFx1ZDEzMFx1YzVkMFx1YzExYyBcdWQzMDAgXHViMmY5IFx1YWNiZFx1YWUzMFx1YzIxOFx1YWMwMCBcdWJjMThcdWI0ZGNcdWMyZGMgXHVhYzE5XHVjNzQ0IFx1ZDU0NFx1YzY5NFx1YjI5NCBcdWM1YzZcdWIyZTQuIFx1YjljY1x1YzU3ZCwgXHVjNWI0XHViNWE0IFx1ZDMwMFx1Yzc1OCBcdWNkMWQgXHViNGRkXHVjODEwXHVhY2ZjIFx1Y2QxZCBcdWMyZTRcdWM4MTBcdWM3NzQgXHViYWE4XHViNDUwIDBcdWM3NzRcdWI3N2NcdWJhNzQsIFx1YWRmOCBcdWQzMDBcdWM3NTggXHVhZTMwXHViMzEzXHVhYzEyXHVjNzQwIDBcdWM3M2NcdWI4NWMgXHVjODE1XHVjNzU4XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1Y2Q5Y1x1YjgyNVx1Yzc0MCBcdWQ0NWNcdWM5MDAgXHVjZDljXHViODI1XHVjNzQ0IFx1YzBhY1x1YzZhOVx1ZDU1Y1x1YjJlNC4gXHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWIzNzBcdWM3NzRcdWQxMzBcdWM1ZDAgXHViMzAwXHVkNTc0LCBcdWI0NTAgXHVjODE1XHVjMjE4IFx1YWMxMlx1Yzc0NCBcdWQ1NWMgXHVjOTA0XHVjNWQwIFx1ZDU1OFx1YjA5OFx1YzUyOSBcdWNkOWNcdWI4MjVcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWNjYWIgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWNkNWNcdWIzMDAgXHVkNTNjXHVkMGMwXHVhY2UwXHViNzdjXHVjMmE0IFx1YWUzMFx1YjMxM1x1YWMxMlx1YzVkMCAxLDAwMFx1Yzc0NCBcdWFjZjFcdWQ1NWMgXHVhYzEyXHVjNzU4IFx1YzgxNVx1YzIxOFx1YmQ4MFx1YmQ4NFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NThcdWFjZTAsIFx1YjQ1MCBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwXHViMjk0IFx1Y2Q1Y1x1YzE4YyBcdWQ1M2NcdWQwYzBcdWFjZTBcdWI3N2NcdWMyYTQgXHVhZTMwXHViMzEzXHVhYzEyXHVjNWQwIDEsMDAwXHVjNzQ0IFx1YWNmMVx1ZDU1YyBcdWFjMTJcdWM3NTggXHVjODE1XHVjMjE4XHViZDgwXHViZDg0XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4ifSx7InByb2JsZW1faWQiOiIxMTA3MCIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlB5dGhhZ29yZWFuIEV4cGVjdGF0aW9uIiwiZGVzY3JpcHRpb24iOiI8cD5BIGZvcm11bGEgc2ltaWxhciB0byB0aGUgZmFtb3VzIFB5dGhhZ29yZWFuIFRoZW9yZW0gaGFzIGJlZW4gdXNlZCBpbiBiYXNlYmFsbC4gVGhpcyBpcyBjYWxsZWQgUHl0aGFnb3JlYW4gRXhwZWN0YXRpb24sIGludmVudGVkIGJ5IEJpbGwgSmFtZXMuIFRoaXMgZXhwZWN0YXRpb24gaXMgdXNlZCB0byBlc3RpbWF0ZSBob3cgbWFueSBnYW1lcyBhIGJhc2ViYWxsIHRlYW0gc2hvdWxkIGhhdmUgd29uIGR1cmluZyBhIHNlYXNvbi4gVGhlIFB5dGhhZ29yZWFuIEV4cGVjdGF0aW9uIFxcKFdcXCkgZm9yIGEgYmFzZWJhbGwgdGVhbSBpcyBkZWZpbmVkIGFzIGZvbGxvd3MuPFwvcD5cclxuXHJcbjxwPlxcKFcgPSBcXGZyYWN7U14yfXtTXjIgKyBBXjJ9XFwpLDxcL3A+XHJcblxyXG48cD53aGVyZSBcXChTXFwpIGlzIHRoZSBudW1iZXIgb2YgcnVucyB0aGUgdGVhbSBzY29yZWQsIGFuZCBcXChBXFwpIGlzIHRoZSBudW1iZXIgb2YgcnVucyB0aGUgdGVhbSBhbGxvd2VkLiBUaGUgZm9ybXVsYSBuYW1lIGNvbWVzIGZyb20gdGhlIHJlc2VtYmxhbmNlIHRvIHRoZSBQeXRoYWdvcmVhbiBUaGVvcmVtLiZuYnNwOzxcL3A+XHJcblxyXG48cD5UaGlzIGV4cGVjdGF0aW9uIGVtcGlyaWNhbGx5IHRlbGxzIGhvdyB0aGUgYmFzZWJhbGwgdGVhbSBhY3R1YWxseSBwZXJmb3JtcyBieSBjb21wYXJpbmcgdGhlIHJlYWwgd2lubmluZyByYXRpby4gRm9yIGV4YW1wbGUsIEhhbndoYSBFYWdsZXMgaGFzIHNjb3JlZCA2MTkgcnVucywgYnV0IGFsbG93ZWQgODg5IHJ1bnMgZHVyaW5nIDIwMTQgc2Vhc29uLCB0aGF0IGlzLCBcXChTXFwpID0gNjE5LCBcXChBXFwpID0gODg5LCBzbyBcXChXXFwpID0gNjE5PHN1cD4yPFwvc3VwPlwvKDYxOTxzdXA+MjxcL3N1cD4gKyA4ODk8c3VwPjI8XC9zdXA+KSA9IDAuMzI2LiBTaW5jZSBlYWNoIHRlYW0gcGxheXMgMTI4IGdhbWVzIGFjY29yZGluZyB0byB0aGUgS0JPIHJ1bGUsIEVhZ2xlcyBzaG91bGQgaGF2ZSB3b24gMC4zMjYgJnRpbWVzOyAxMjggPSA0MS43MjggZ2FtZXMuIEJ1dCBFYWdsZXMgYWN0dWFsbHkgd29uIDQ5IGdhbWVzLCBzaG93aW5nIHRoZXkgd2VyZSBub3QgYmFkIGF0IGFsbC4gRm9yIExvdHRlIEdpYW50cyB3aXRoIFxcKFNcXCkgPSA3MTUgYW5kIFxcKEFcXCkgPSA3MTksIFxcKFdcXCkgPSAwLjQ5Nywgc28gdGhleSBzaG91bGQgaGF2ZSB3b24gMC40OTcgJnRpbWVzOyAxMjggPSA2My42MTYgZ2FtZXMuIFNpbmNlIEdpYW50cyBhY3R1YWxseSB3b24gNTggZ2FtZXMsIG9uZSBtYXkgc2F5IHRoYXQgdGhleSBwZXJmb3JtZWQgYSBiaXQgcG9vciBmb3IgdGhlIHNlYXNvbi4mbmJzcDs8XC9wPlxyXG5cclxuPHA+R2l2ZW4gcmVjb3JkcyBvZiB0aGUgZ2FtZXMgYmV0d2VlbiBiYXNlYmFsbCB0ZWFtcywgeW91IGFyZSB0byB3cml0ZSB0aGUgbGFyZ2VzdCBhbmQgdGhlIHNtYWxsZXN0IFB5dGhhZ29yZWFuIGV4cGVjdGF0aW9ucyBvZiB0aGUgdGVhbXMuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5Zb3VyIHByb2dyYW0gaXMgdG8gcmVhZCBmcm9tIHN0YW5kYXJkIGlucHV0LiBUaGUgaW5wdXQgY29uc2lzdHMgb2YgVCB0ZXN0IGNhc2VzLiBUaGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMgVCBpcyBnaXZlbiBpbiB0aGUgZmlyc3QgbGluZSBvZiB0aGUgaW5wdXQuIEVhY2ggdGVzdCBjYXNlIHN0YXJ0cyB3aXRoIGEgbGluZSBjb250YWluaW5nIHR3byBpbnRlZ2VycywgXFwoblxcKSAoMiAmbGU7IFxcKG5cXCkgJmxlOyAxLDAwMCkgYW5kIFxcKG1cXCkgKDIgJmxlOyBcXChtXFwpICZsZTsgMSwwMDApLCB3aGVyZSBcXChuXFwpIGlzIHRoZSBudW1iZXIgb2YgYmFzZWJhbGwgdGVhbXMsIGFuZCBcXChtXFwpIGlzIHRoZSB0b3RhbCBudW1iZXIgb2YgZ2FtZXMgYmV0d2VlbiBcXChuXFwpIHRlYW1zLiBJbiB0aGUgZm9sbG93aW5nIFxcKG1cXCkgbGluZXMsIGEgcmVjb3JkIGZvciBlYWNoIGdhbWUgaXMgZ2l2ZW4gbGluZSBieSBsaW5lLiBFYWNoIHJlY29yZCBpcyByZXByZXNlbnRlZCBieSBmb3VyIG51bWJlcnMgXFwoYVxcKSwgXFwoYlxcKSwgXFwocFxcKSwgXFwocVxcKSwgc2VwYXJhdGVkIGJ5IGEgc2luZ2xlIHNwYWNlLCB3aGljaCBtZWFucyB0ZWFtIFxcKGFcXCkgaGFzIHBsYXllZCBhZ2FpbnN0IHRlYW0gXFwoYlxcKSwgYW5kIHRlYW0gXFwoYVxcKSBoYXMgc2NvcmVkIFxcKHBcXCkgcnVucyBhbmQgdGVhbSBcXChiXFwpIGhhcyBzY29yZWQgXFwocVxcKSBydW5zLiBOb3RlIHRoYXQgMSAmbGU7IFxcKGFcXCkgJm5lOyBcXChiXFwpICZsZTsgXFwoblxcKSwgYW5kIFxcKHBcXCkgYW5kIFxcKHFcXCkgYXJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VycyBubyBtb3JlIHRoYW4gMjAuIE5vdGUgdGhhdCB0ZWFtcyBpbiBhIHRlc3QgY2FzZSBtYXkgaGF2ZSBkaWZmZXJlbnQgbnVtYmVyIG9mIGdhbWVzLiBJZiBhIHRlYW0gaGFzIG5vIHNjb3JlZCBhbmQgYWxsb3dlZCBydW5zLCB0aGVuIGl0cyBleHBlY3RhdGlvbiB2YWx1ZSBiZWNvbWVzIHplcm8uPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+WW91ciBwcm9ncmFtIGlzIHRvIHdyaXRlIHRvIHN0YW5kYXJkIG91dHB1dC4gUHJpbnQgdHdvIGludGVnZXJzIGZvciBlYWNoIHRlc3QgY2FzZS4gVGhlIGZpcnN0IGxpbmUgc2hvdWxkIGNvbnRhaW4gdGhlIGludGVnZXIgcGFydCBvZiB0aGUgdmFsdWUsIHRoZSBsYXJnZXN0IFB5dGhhZ29yZWFuIEV4cGVjdGF0aW9uIG9mIHRoZSB0ZWFtcyB0aW1lcyAxLDAwMC4gVGhlIHNlY29uZCBsaW5lIHNob3VsZCBjb250YWluIHRoZSBpbnRlZ2VyIHBhcnQgb2YgdGhlIHZhbHVlLCB0aGUgc21hbGxlc3QgUHl0aGFnb3JlYW4gRXhwZWN0YXRpb24gb2YgdGhlIHRlYW1zIHRpbWVzIDEsMDAwLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=