시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 26 8 6 33.333%

문제

창영제국의 황제 김상근이 세상을 떠났다. 사람들은 그가 가졌던 제국이 어떻게 자식들에게 나누어질 것인지 궁금해하기 시작했다. 제국은 직사각형 모양이고, N개의 도시가 있다.

땅은 K-1개의 선분으로 나누어야 한다. 선분은 지도의 축과 평행이어야 한다.

나누어진 지도에는 정확하게 K개의 직사각형이 있어야 하고, 모두 같은 높이(땅을 수직으로 나누었을 때)나 같은 너비(수평으로 나누었을 때)를 가지고 있어야 한다. 선분은 도시를 지나면 안된다.

모든 상근이의 자식들은 K개의 나누어진 제국 하나를 임의로 받게 되고, 그 땅에 포함된 도시를 가질 수 있다.

모든 자식들에게 공평하게 땅을 나누어주기 위해서 각 자식들에게 N/K의 도시를 주려고 한다. 이 N/K를 기준값이라고 한다. 하지만, 기준값은 정수가 아닐수도 있기 때문에, 각각의 자식들은 최대한 기준값에 가깝게 도시를 얻기를 원한다.

각 자식의 불공평점수는 그 자식이 가진 도시의 수와 기준값과의 차이이다. 모든 자식의 불공평점수의 평균을 최소로 하려고 한다.

위의 예는 땅에 도시가 6개, 상근이의 자식이 3명 있을 때이다. (기준값 = 6/3 = 2.0) 왼쪽 그림은 제국의 지도이다. 가운데 그림처럼 나누었을 때, 가운데 영역에는 도시가 3개 있다. 이 땅을 받는 자식의 불공평점수는 |3-2| = 1이다. 왼쪽 영역은 2개의 도시가 있기 때문에 불공평점수는 0이고, 오른쪽 영역은 1개의 도시가 있기 때문에 불공평점수는 1이다. 따라서, 불공평점수의 평균은 2/3이 된다.

가장 오른쪽 그림은 모두 같은 수의 도시를 받게 되므로 불공평점수의 평균이 0이 된다.

땅과 도시의 위치가 주어졌을 때, 공평하게 땅을 나누어 불공평점수의 평균을 최소로 하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 N+1줄로 이루어져 있다.

테스트 케이스의 첫째 줄에는 도시의 수 N(N ≤ 100,000)과 자식의 수 K(K ≤ 10)가 주어진다. 항상 K ≤ N이다.

다음 N개의 줄에는 도시의 좌표 (x,y)가 주어진다. (0 ≤ x,y ≤ 100,000) x와 y는 정수이다. 원래 지도에 있는 도시의 좌표를 가까운 정수로 반올림해서 나타낸 것이기 때문에, 같은 위치에 하나보다 많은 도시가 있을 수도 있다. 모든 좌표를 포함하는 가상의 직사각형이 지도의 경계라고 생각하면 된다. 

나누는 선은 정수 좌표를 갖지 않아도 된다.

입력의 마지막 줄에는 0이 두 개 주어진다.

출력

각 테스트 케이스에 대해서, 테스트 케이스 번호와 불공평점수의 평균값의 최소값을 출력한다. 불공평점수의 평균값은 A/B와 같은 형식으로 출력하고, 기약분수이어야 한다. 만약 평균이 정수일 경우에는 B=1로 출력해야 한다.

예제 입력 1

6 3
0 4
1 3
2 3
3 1
4 4
5 0
4 3
0 0
0 1
1 1
1 0
0 0

예제 출력 1

1. 0/1
2. 8/9

힌트

W3sicHJvYmxlbV9pZCI6IjQ4OTYiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWI1NDUgXHViMDk4XHViMjA0XHVhZTMwIiwiZGVzY3JpcHRpb24iOiI8cD5cdWNjM2RcdWM2MDFcdWM4MWNcdWFkNmRcdWM3NTggXHVkNjY5XHVjODFjIFx1YWU0MFx1YzBjMVx1YWRmY1x1Yzc3NCBcdWMxMzhcdWMwYzFcdWM3NDQgXHViNWEwXHViMGFjXHViMmU0LiBcdWMwYWNcdWI3OGNcdWI0ZTRcdWM3NDAgXHVhZGY4XHVhYzAwIFx1YWMwMFx1Yzg0Y1x1YjM1OCBcdWM4MWNcdWFkNmRcdWM3NzQgXHVjNWI0XHViNWJiXHVhYzhjIFx1Yzc5MFx1YzJkZFx1YjRlNFx1YzVkMFx1YWM4YyBcdWIwOThcdWIyMDRcdWM1YjRcdWM5YzggXHVhYzgzXHVjNzc4XHVjOWMwIFx1YWQ4MVx1YWUwOFx1ZDU3NFx1ZDU1OFx1YWUzMCBcdWMyZGNcdWM3OTFcdWQ1ODhcdWIyZTQuIFx1YzgxY1x1YWQ2ZFx1Yzc0MCBcdWM5YzFcdWMwYWNcdWFjMDFcdWQ2MTUgXHViYWE4XHVjNTkxXHVjNzc0XHVhY2UwLCBOXHVhYzFjXHVjNzU4IFx1YjNjNFx1YzJkY1x1YWMwMCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjU0NVx1Yzc0MCBLLTFcdWFjMWNcdWM3NTggXHVjMTIwXHViZDg0XHVjNzNjXHViODVjIFx1YjA5OFx1YjIwNFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1YzEyMFx1YmQ4NFx1Yzc0MCBcdWM5YzBcdWIzYzRcdWM3NTggXHVjZDk1XHVhY2ZjIFx1ZDNjOVx1ZDU4OVx1Yzc3NFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjA5OFx1YjIwNFx1YzViNFx1YzljNCBcdWM5YzBcdWIzYzRcdWM1ZDBcdWIyOTQgXHVjODE1XHVkNjU1XHVkNTU4XHVhYzhjIEtcdWFjMWNcdWM3NTggXHVjOWMxXHVjMGFjXHVhYzAxXHVkNjE1XHVjNzc0IFx1Yzc4OFx1YzViNFx1YzU3YyBcdWQ1NThcdWFjZTAsIFx1YmFhOFx1YjQ1MCBcdWFjMTlcdWM3NDAgXHViMTkyXHVjNzc0KFx1YjU0NVx1Yzc0NCBcdWMyMThcdWM5YzFcdWM3M2NcdWI4NWMgXHViMDk4XHViMjA0XHVjNWM4XHVjNzQ0IFx1YjU0YylcdWIwOTggXHVhYzE5XHVjNzQwIFx1YjEwOFx1YmU0NChcdWMyMThcdWQzYzlcdWM3M2NcdWI4NWMgXHViMDk4XHViMjA0XHVjNWM4XHVjNzQ0IFx1YjU0YylcdWI5N2MgXHVhYzAwXHVjOWMwXHVhY2UwIFx1Yzc4OFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1YzEyMFx1YmQ4NFx1Yzc0MCBcdWIzYzRcdWMyZGNcdWI5N2MgXHVjOWMwXHViMDk4XHViYTc0IFx1YzU0OFx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViYWE4XHViNGUwIFx1YzBjMVx1YWRmY1x1Yzc3NFx1Yzc1OCBcdWM3OTBcdWMyZGRcdWI0ZTRcdWM3NDAgS1x1YWMxY1x1Yzc1OCBcdWIwOThcdWIyMDRcdWM1YjRcdWM5YzQgXHVjODFjXHVhZDZkIFx1ZDU1OFx1YjA5OFx1Yjk3YyBcdWM3ODRcdWM3NThcdWI4NWMgXHViYzFiXHVhYzhjIFx1YjQxOFx1YWNlMCwgXHVhZGY4IFx1YjU0NVx1YzVkMCBcdWQzZWNcdWQ1NjhcdWI0MWMgXHViM2M0XHVjMmRjXHViOTdjIFx1YWMwMFx1YzljOCBcdWMyMTggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWJhYThcdWI0ZTAgXHVjNzkwXHVjMmRkXHViNGU0XHVjNWQwXHVhYzhjIFx1YWNmNVx1ZDNjOVx1ZDU1OFx1YWM4YyBcdWI1NDVcdWM3NDQgXHViMDk4XHViMjA0XHVjNWI0XHVjOGZjXHVhZTMwIFx1YzcwNFx1ZDU3NFx1YzExYyBcdWFjMDEgXHVjNzkwXHVjMmRkXHViNGU0XHVjNWQwXHVhYzhjIE5cL0tcdWM3NTggXHViM2M0XHVjMmRjXHViOTdjIFx1YzhmY1x1YjgyNFx1YWNlMCBcdWQ1NWNcdWIyZTQuIFx1Yzc3NCBOXC9LXHViOTdjIFx1YWUzMFx1YzkwMFx1YWMxMlx1Yzc3NFx1Yjc3Y1x1YWNlMCBcdWQ1NWNcdWIyZTQuIFx1ZDU1OFx1YzljMFx1YjljYywgXHVhZTMwXHVjOTAwXHVhYzEyXHVjNzQwIFx1YzgxNVx1YzIxOFx1YWMwMCBcdWM1NDRcdWIyZDBcdWMyMThcdWIzYzQgXHVjNzg4XHVhZTMwIFx1YjU0Y1x1YmIzOFx1YzVkMCwgXHVhYzAxXHVhYzAxXHVjNzU4IFx1Yzc5MFx1YzJkZFx1YjRlNFx1Yzc0MCBcdWNkNWNcdWIzMDBcdWQ1NWMgXHVhZTMwXHVjOTAwXHVhYzEyXHVjNWQwIFx1YWMwMFx1YWU1ZFx1YWM4YyBcdWIzYzRcdWMyZGNcdWI5N2MgXHVjNWJiXHVhZTMwXHViOTdjIFx1YzZkMFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVhYzAxIFx1Yzc5MFx1YzJkZFx1Yzc1OCBcdWJkODhcdWFjZjVcdWQzYzlcdWM4MTBcdWMyMThcdWIyOTQgXHVhZGY4IFx1Yzc5MFx1YzJkZFx1Yzc3NCBcdWFjMDBcdWM5YzQgXHViM2M0XHVjMmRjXHVjNzU4IFx1YzIxOFx1YzY0MCBcdWFlMzBcdWM5MDBcdWFjMTJcdWFjZmNcdWM3NTggXHVjYzI4XHVjNzc0XHVjNzc0XHViMmU0LiBcdWJhYThcdWI0ZTAgXHVjNzkwXHVjMmRkXHVjNzU4IFx1YmQ4OFx1YWNmNVx1ZDNjOVx1YzgxMFx1YzIxOFx1Yzc1OCBcdWQzYzlcdWFkZTBcdWM3NDQgXHVjZDVjXHVjMThjXHViODVjIFx1ZDU1OFx1YjgyNFx1YWNlMCBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvbGFuZC5wbmdcIiBzdHlsZT1cImhlaWdodDoxMjNweDsgd2lkdGg6NjI5cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVjNzA0XHVjNzU4IFx1YzYwOFx1YjI5NCBcdWI1NDVcdWM1ZDAgXHViM2M0XHVjMmRjXHVhYzAwIDZcdWFjMWMsIFx1YzBjMVx1YWRmY1x1Yzc3NFx1Yzc1OCBcdWM3OTBcdWMyZGRcdWM3NzQgM1x1YmE4NSBcdWM3ODhcdWM3NDQgXHViNTRjXHVjNzc0XHViMmU0LiAoXHVhZTMwXHVjOTAwXHVhYzEyID0gNlwvMyA9IDIuMCkgXHVjNjdjXHVjYWJkIFx1YWRmOFx1YjliY1x1Yzc0MCBcdWM4MWNcdWFkNmRcdWM3NTggXHVjOWMwXHViM2M0XHVjNzc0XHViMmU0LiBcdWFjMDBcdWM2YjRcdWIzNzAgXHVhZGY4XHViOWJjXHVjYzk4XHViN2ZjIFx1YjA5OFx1YjIwNFx1YzVjOFx1Yzc0NCBcdWI1NGMsIFx1YWMwMFx1YzZiNFx1YjM3MCBcdWM2MDFcdWM1ZWRcdWM1ZDBcdWIyOTQgXHViM2M0XHVjMmRjXHVhYzAwIDNcdWFjMWMgXHVjNzg4XHViMmU0LiBcdWM3NzQgXHViNTQ1XHVjNzQ0IFx1YmMxYlx1YjI5NCBcdWM3OTBcdWMyZGRcdWM3NTggXHViZDg4XHVhY2Y1XHVkM2M5XHVjODEwXHVjMjE4XHViMjk0IHwzLTJ8ID0gMVx1Yzc3NFx1YjJlNC4gXHVjNjdjXHVjYWJkIFx1YzYwMVx1YzVlZFx1Yzc0MCAyXHVhYzFjXHVjNzU4IFx1YjNjNFx1YzJkY1x1YWMwMCBcdWM3ODhcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwIFx1YmQ4OFx1YWNmNVx1ZDNjOVx1YzgxMFx1YzIxOFx1YjI5NCAwXHVjNzc0XHVhY2UwLCBcdWM2MjRcdWI5NzhcdWNhYmQgXHVjNjAxXHVjNWVkXHVjNzQwIDFcdWFjMWNcdWM3NTggXHViM2M0XHVjMmRjXHVhYzAwIFx1Yzc4OFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAgXHViZDg4XHVhY2Y1XHVkM2M5XHVjODEwXHVjMjE4XHViMjk0IDFcdWM3NzRcdWIyZTQuIFx1YjUzMFx1Yjc3Y1x1YzExYywgXHViZDg4XHVhY2Y1XHVkM2M5XHVjODEwXHVjMjE4XHVjNzU4IFx1ZDNjOVx1YWRlMFx1Yzc0MCAyXC8zXHVjNzc0IFx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVhYzAwXHVjN2E1IFx1YzYyNFx1Yjk3OFx1Y2FiZCBcdWFkZjhcdWI5YmNcdWM3NDAgXHViYWE4XHViNDUwIFx1YWMxOVx1Yzc0MCBcdWMyMThcdWM3NTggXHViM2M0XHVjMmRjXHViOTdjIFx1YmMxYlx1YWM4YyBcdWI0MThcdWJiYzBcdWI4NWMgXHViZDg4XHVhY2Y1XHVkM2M5XHVjODEwXHVjMjE4XHVjNzU4IFx1ZDNjOVx1YWRlMFx1Yzc3NCAwXHVjNzc0IFx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViNTQ1XHVhY2ZjIFx1YjNjNFx1YzJkY1x1Yzc1OCBcdWM3MDRcdWNlNThcdWFjMDAgXHVjOGZjXHVjNWI0XHVjODRjXHVjNzQ0IFx1YjU0YywgXHVhY2Y1XHVkM2M5XHVkNTU4XHVhYzhjIFx1YjU0NVx1Yzc0NCBcdWIwOThcdWIyMDRcdWM1YjQgXHViZDg4XHVhY2Y1XHVkM2M5XHVjODEwXHVjMjE4XHVjNzU4IFx1ZDNjOVx1YWRlMFx1Yzc0NCBcdWNkNWNcdWMxOGNcdWI4NWMgXHVkNTU4XHViMjk0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWMyZGNcdWM2MjQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWM3ODVcdWI4MjVcdWM3NDAgXHVjNWVjXHViN2VjIFx1YWMxY1x1Yzc1OCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWIyZTQuIFx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHViMjk0IE4rMVx1YzkwNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHViM2M0XHVjMmRjXHVjNzU4IFx1YzIxOCBOKE4gJmxlOyAxMDAsMDAwKVx1YWNmYyBcdWM3OTBcdWMyZGRcdWM3NTggXHVjMjE4IEsoSyAmbGU7IDEwKVx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1ZDU2ZFx1YzBjMSBLICZsZTsgTlx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViMmU0XHVjNzRjIE5cdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwXHViMjk0IFx1YjNjNFx1YzJkY1x1Yzc1OCBcdWM4OGNcdWQ0NWMgKHgseSlcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoMCAmbGU7IHgseSAmbGU7IDEwMCwwMDApIHhcdWM2NDAgeVx1YjI5NCBcdWM4MTVcdWMyMThcdWM3NzRcdWIyZTQuIFx1YzZkMFx1Yjc5OCBcdWM5YzBcdWIzYzRcdWM1ZDAgXHVjNzg4XHViMjk0IFx1YjNjNFx1YzJkY1x1Yzc1OCBcdWM4OGNcdWQ0NWNcdWI5N2MgXHVhYzAwXHVhZTRjXHVjNmI0IFx1YzgxNVx1YzIxOFx1Yjg1YyBcdWJjMThcdWM2MmNcdWI5YmNcdWQ1NzRcdWMxMWMgXHViMDk4XHVkMGMwXHViMGI4IFx1YWM4M1x1Yzc3NFx1YWUzMCBcdWI1NGNcdWJiMzhcdWM1ZDAsIFx1YWMxOVx1Yzc0MCBcdWM3MDRcdWNlNThcdWM1ZDAgXHVkNTU4XHViMDk4XHViY2Y0XHViMmU0IFx1YjljZVx1Yzc0MCBcdWIzYzRcdWMyZGNcdWFjMDAgXHVjNzg4XHVjNzQ0IFx1YzIxOFx1YjNjNCBcdWM3ODhcdWIyZTQuIFx1YmFhOFx1YjRlMCBcdWM4OGNcdWQ0NWNcdWI5N2MgXHVkM2VjXHVkNTY4XHVkNTU4XHViMjk0IFx1YWMwMFx1YzBjMVx1Yzc1OCBcdWM5YzFcdWMwYWNcdWFjMDFcdWQ2MTVcdWM3NzQgXHVjOWMwXHViM2M0XHVjNzU4IFx1YWNiZFx1YWNjNFx1Yjc3Y1x1YWNlMCBcdWMwZGRcdWFjMDFcdWQ1NThcdWJhNzQgXHViNDFjXHViMmU0LiZuYnNwOzxcL3A+XHJcblxyXG48cD5cdWIwOThcdWIyMDRcdWIyOTQgXHVjMTIwXHVjNzQwIFx1YzgxNVx1YzIxOCBcdWM4OGNcdWQ0NWNcdWI5N2MgXHVhYzE2XHVjOWMwIFx1YzU0YVx1YzU0NFx1YjNjNCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1Yzc4NVx1YjgyNVx1Yzc1OCBcdWI5YzhcdWM5YzBcdWI5YzkgXHVjOTA0XHVjNWQwXHViMjk0IDBcdWM3NzQgXHViNDUwIFx1YWMxYyBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVhYzAxIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM1ZDAgXHViMzAwXHVkNTc0XHVjMTFjLCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0IFx1YmM4OFx1ZDYzOFx1YzY0MCBcdWJkODhcdWFjZjVcdWQzYzlcdWM4MTBcdWMyMThcdWM3NTggXHVkM2M5XHVhZGUwXHVhYzEyXHVjNzU4IFx1Y2Q1Y1x1YzE4Y1x1YWMxMlx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YmQ4OFx1YWNmNVx1ZDNjOVx1YzgxMFx1YzIxOFx1Yzc1OCBcdWQzYzlcdWFkZTBcdWFjMTJcdWM3NDAgQVwvQlx1YzY0MCBcdWFjMTlcdWM3NDAgXHVkNjE1XHVjMmRkXHVjNzNjXHViODVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YWNlMCwgXHVhZTMwXHVjNTdkXHViZDg0XHVjMjE4XHVjNzc0XHVjNWI0XHVjNTdjIFx1ZDU1Y1x1YjJlNC4gXHViOWNjXHVjNTdkIFx1ZDNjOVx1YWRlMFx1Yzc3NCBcdWM4MTVcdWMyMThcdWM3N2MgXHVhY2JkXHVjNmIwXHVjNWQwXHViMjk0IEI9MVx1Yjg1YyBcdWNkOWNcdWI4MjVcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1ZDU1Y1x1YWQ2ZFx1YzViNCJ9LHsicHJvYmxlbV9pZCI6IjQ4OTYiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJMYW5kIERpdmlzaW9uIiwiZGVzY3JpcHRpb24iOiI8cD5UaGUga2luZyBvZiB0aGUgRmFyLCBGYXIgQXdheSBLaW5nZG9tIGhhcyBwYXNzZWQtYXdheSBhbmQgdGhlIGtpbmdkb20gbXVzdCBiZSBzcGxpdCBhbW9uZ3N0IGhpcyBLIHNvbnMuIFRoZSBraW5nZG9tLCB3aGljaCBjYW4gYmUgZHJhd24gb24gYSByZWN0YW5ndWxhciBtYXAsIGNvbnNpc3RzIG9mIE4gY2l0aWVzLiBUbyBkaXZpZGUgdGhlIGxhbmQsIHRoZXkgd2lsbCBkcmF3IEsgJm1pbnVzOyAxIHN0cmFpZ2h0IHNlZ21lbnRzIG9uIHRoZSBtYXAsIGFsbCBvZiB0aGVtIHBhcmFsbGVsIHRvIGVpdGhlciB0aGUgdmVydGljYWwgb3IgdGhlIGhvcml6b250YWwgYXhpcyBvZiB0aGUgbWFwLiBUaGlzIGRpdmlkZXMgdGhlIG1hcCBpbnRvIGV4YWN0bHkgSyByZWN0YW5nbGVzLCBhbGwgaGF2aW5nIGVxdWFsIGhlaWdodHMgKGlmIHRoZSBkaXZpZGluZyBsaW5lcyB3aGVyZSB2ZXJ0aWNhbCksIG9yIGVxdWFsIHdpZHRocyAoaWYgdGhlIGRpdmlkaW5nIGxpbmVzIHdoZXJlIGhvcml6b250YWwpLiBObyBzZWdtZW50IHNob3VsZCBwYXNzIHRocm91Z2ggYW55IG9mIHRoZSBjaXRpZXMuIEVhY2ggc29uIHdpbGwgdGhlbiBiZSBhc3NpZ25lZCBvbmUgcmFuZG9tIHJlZ2lvbiBvdXQgb2YgdGhlIEsgcmVnaW9ucyBhbmQgdGhlIGNpdGllcyBpbnNpZGUgdGhhdCByZWdpb24gd2lsbCBiZSBoaXMgc2hhcmUuPFwvcD5cclxuXHJcbjxwPk9mIGNvdXJzZSwgdGhleSB3YW50IHRoZSBkaXZpc2lvbiB0byBiZSBhcyBmYWlyIGFzIHBvc3NpYmxlOiB0aGVvcmV0aWNhbGx5LCBpbiB0aGUgZmFpcmVzdCBkaXZpc2lvbiwgZWFjaCBzb24gc2hvdWxkIGdldCBOXC9LIGNpdGllcyAod2UmcnNxdW87bGwgY2FsbCB0aGlzIHZhbHVlIHRoZSBiYXNlbGluZSksIGJ1dCBzaW5jZSB0aGUgYmFzZWxpbmUgaXNuJnJzcXVvO3QgYWx3YXlzIGEgd2hvbGUgbnVtYmVyLCBlYWNoIG9mIHRoZSBzb25zIHdhbnRzIHRvIGJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRoZSBiYXNlbGluZS4gV2Ugd2lsbCBjYWxjdWxhdGUgdGhlIHVuZmFpcm5lc3Mgb2YgZWFjaCBzb24gYXMgdGhlIGFic29sdXRlIGRpXHVmYjAwZXJlbmNlIGJldHdlZW4gdGhlIG51bWJlciBvZiBjaXRpZXMgYXNzaWduZWQgdG8gaGltIGFuZCB0aGUgYmFzZWxpbmUuIFRoZSBmYWlyZXN0IGRpdmlzaW9uIGlzIHRoZSBvbmUgdGhhdCBtaW5pbWl6ZXMgdGhlIGF2ZXJhZ2UgdW5mYWlybmVzcyBvZiBhbGwgdGhlIHNvbnMuPFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvbGFuZCgxKS5wbmdcIiBzdHlsZT1cImhlaWdodDoxNjZweDsgd2lkdGg6NjQxcHhcIiBcLz48XC9wPlxyXG5cclxuPHA+Q29uc2lkZXIgdGhlIGV4YW1wbGUgYWJvdmUgd2l0aCAzIHNvbnMgYW5kIDYgY2l0aWVzIChzbyB0aGUgYmFzZWxpbmUgaXMgNlwvMyA9IDIuMCkgRmlndXJlIChhKSBpcyB0aGUgb3JpZ2luYWwgbWFwLiBGaWd1cmUgKGIpIHNob3dzIGEgbm9uLW9wdGltYWwgZGl2aXNpb24gKHRoZSBkYXNoZWQgbGluZXMgYXJlIHRoZSAyIGRpdmlkaW5nIGxpbmVzLikgSW4gdGhpcyBjYXNlLCB0aGUgbWlkZGxlIHJlZ2lvbiBjb250YWlucyAzIGNpdGllcyAodW5mYWlybmVzcyBvZiB8MyAmbWludXM7IDJ8ID0gMSksIHRoZSBsZWZ0IHJlZ2lvbiBjb250YWlucyAxIGNpdHkgKHVuZmFpcm5lc3Mgb2YgfDEgJm1pbnVzOyAyfCA9IDEpLCB3aGlsZSB0aGUgcmlnaHQgcmVnaW9uIGNvbnRhaW5zIDIgY2l0aWVzIChwZXJmZWN0bHkgZmFpciwgdW5mYWlybmVzcyBvZiAwKSwgc28gdGhlIGF2ZXJhZ2UgdW5mYWlybmVzcyBpcyAyXC8zLjxcL3A+XHJcblxyXG48cD5GaWd1cmUgKGMpIG9uIHRoZSByaWdodCBzaG93cyB0aGUgb3B0aW1hbCBkaXZpc2lvbiBzaW5jZSBhbGwgdGhyZWUgcmVnaW9ucyBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBjaXRpZXMgZm9yIGFuIGF2ZXJhZ2UgdW5mYWlybmVzcyBvZiAwLjxcL3A+XHJcblxyXG48cD5Xcml0ZSBhIHByb2dyYW0gdG8gZGV0ZXJtaW5lIHRoZSBmYWlyZXN0IGxhbmQgZGl2aXNpb24gZm9yIGEgZ2l2ZW4ga2luZ2RvbS48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPllvdXIgcHJvZ3JhbSB3aWxsIGJlIHRlc3RlZCBvbiBvbmUgb3IgbW9yZSB0ZXN0IGNhc2VzLiBFYWNoIHRlc3QgY2FzZSBpcyBkZXNjcmliZWQgb24gTiArIDEgbGluZXMuIFRoZSBcdWZiMDFyc3QgbGluZSBvZiBlYWNoIHRlc3QgY2FzZSBzcGVjaVx1ZmIwMWVzIHR3byBwb3NpdGl2ZSBpbnRlZ2VyczogKE4gJmxlOyAxMDAsIDAwMCkgYW5kIChLICZsZTsgMTApIHdoZXJlIE4gaXMgdGhlIG51bWJlciBvZiBjaXRpZXMgYW5kIEsgaXMgbnVtYmVyIG9mIGNoaWxkcmVuLiBOb3RlIHRoYXQgSyAmbGU7IE4uPFwvcD5cclxuXHJcbjxwPk4gbGluZXMgZm9sbG93cywgZWFjaCBkZXNjcmliaW5nIHRoZSBjb29yZGluYXRlcyBvZiBhIGNpdHkgYnkgc3BlY2lmeWluZyB0d28gaW50ZWdlcnMgKHgsIHkpIHdoZXJlIDAgJmxlOyB4LCB5ICZsZTsgMTAwLCAwMDAuIFNpbmNlIGNvb3JkaW5hdGVzIGFyZSByb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGludGVnZXIsIG1vcmUgdGhhbiBvbmUgY2l0eSBjb3VsZCBoYXZlIHRoZSBleGFjdCBzYW1lIGNvb3JkaW5hdGUgb24gdGhlIG1hcC4gWW91IG1heSBhc3N1bWUgdGhhdCB0aGUgbWFwIG9mIHRoZSBraW5nZG9tIGlzIGFueSByZWN0YW5nbGUgdGhhdCBjb250YWlucyBhbGwgb2YgdGhlIGdpdmVuIHBvaW50cyAoYWx0aG91Z2ggc3VjaCBpbmZvcm1hdGlvbiBpcyBub3QgbmVlZGVkIGJ5IHRoZSBwcm9ncmFtLikgTm90ZSBhbHNvIHRoYXQgd2hpbGUgYWxsIGNpdGllcyBsaWUgb24gaW50ZWdlciBjb29yZGluYXRlcywgdGhlIGRpdmlkaW5nIGxpbmVzIG5lZWQgbm90IGJlLjxcL3A+XHJcblxyXG48cD5UaGUgbGFzdCBsaW5lIG9mIHRoZSBpbnB1dCBcdWZiMDFsZSBjb250YWlucyB0d28gemVyb3MuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+Rm9yIGVhY2ggdGVzdCBjYXNlLCBwcmludCB0aGUgZm9sbG93aW5nIGxpbmU6PFwvcD5cclxuXHJcbjxwcmU+ay4gQVwvQjxcL3ByZT5cclxuXHJcbjxwPldoZXJlIGsgaXMgdGhlIHRlc3QgY2FzZSBudW1iZXIgKHN0YXJ0aW5nIGF0IG9uZSwpIGFuZCBBXC9CIGlzIHRoZSBtaW5pbXVtIGF2ZXJhZ2UgdGhhdCBjb3VsZCBiZSBvYnRhaW5lZC4gQVwvQiBzaG91bGQgYmUgYW4gaXJyZWR1Y2libGUgZnJhY3Rpb24uIExldCBCPTEgd2hlbiB0aGUgcmVzdWx0IGlzIGEgd2hvbGUgbnVtYmVyLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==