시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 191 100 80 53.691%

문제

당신은 세계적인 인간대포 서커스 공연자이다. 즉, 당신은 거대한 가짜 대포 안으로 기어올라가 먼 거리를 발사되며 사람들에게 기쁨을 주는 사람인 것이다. 오늘, 당신은 혼자가 아니다. 당신은 국제 인간대포 회의 겸 전시장에 와 있으며 이 곳에서는 수백명의 인간대포 전문가들이 서로의 경험을 공유하고 기술을 연마한다. 보통 당신의 서커스에서 당신은 한 대포만을 가지고 공연하는데 반해 이곳에서는 사용할 수 있는 수많은 대포가 있다.

여러 대포를 사용하면 회의장을 좀 더 편리하게 돌아다닐 수 있다. 만약 당신이 a장소에서 b장소까지 이동하려 한다면 a 부터 b까지 직선으로 걸어갈 수도 있고, 주변의 대포에 탑승해서 어딘가 다른 곳으로 발사되어 이동할 수도 있다. 발사되고 나면 내린 위치에서 도착점을 향해서 걸어갈 수도 있고, 다시 한 번 또 다른 대포를 이용하여 목적지에 더 빠르게 도착할 수도 있다. 그림 E.1처럼 배치된 지도에서 당신은 a에서 b로 이동하기 위하여 그림 E.2와 같은 경로로 걷거나 대포를 이용하여 움직일 수 있다. 화살표는 당신이 대포에서 발사되어 떨어진 점을 의미하며 직선은 당신이 달린 경로를 나타낸다.

그림 E.1

그림 E.2

당신은 5m/s의 속도로 달린다. 모든 대포는 당신을 당신이 원하는 임의의 방향으로 50m 날려줄 수 있다. 대포에 올라타고 발사되고 착륙하기까지는 정확히 2초가 걸린다. 대포는 장애물이 아니기 때문에 당신이 뛰는 도중에 대포가 있다면 점프해서 넘어가 마치 직선과 같이 움직일 수 있다. 당신의 현재 위치와 목적지의 위치, 그리고 대포들의 위치가 주어질 때 당신은 목적지에 가장 빨리가기 위한 경로를 알고 싶다.

입력

입력은 한 개의 길찾기 문제를 표현한다. 첫 줄에는 두 개의 실수가 입력되며 각각은 당신이 현재 위치한 X, Y좌표이다. 두 번째 줄에는 목적지의 X, Y좌표가 실수로 입력된다. 이어지는 줄에는 대포의 숫자 정수 n이 주어진다. 남은 n줄에는 한 줄에 대포 하나의 위치 정보가 주어지며, 이는 실수로 주어지는 X, Y 좌표이다. 모든 좌표는 미터로 측정되었으며 n의 값은 0 이상 100 이하이다.

출력

한 줄에 걸쳐 목적지에 다다르기 위해 가장 빠른 시간을 출력하라. 실제 답과 0.001초 미만의 차이는 정답으로 인정한다.

예제 입력 1

25.0 100.0
190.0 57.5
4
125.0 67.5
75.0 125.0
45.0 72.5
185.0 102.5

예제 출력 1

19.984901
W3sicHJvYmxlbV9pZCI6IjEwNDczIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHVjNzc4XHVhYzA0IFx1YjMwMFx1ZDNlYyIsImRlc2NyaXB0aW9uIjoiPHA+XHViMmY5XHVjMmUwXHVjNzQwIFx1YzEzOFx1YWNjNFx1YzgwMVx1Yzc3OCBcdWM3NzhcdWFjMDRcdWIzMDBcdWQzZWMgXHVjMTFjXHVjZWU0XHVjMmE0IFx1YWNmNVx1YzVmMFx1Yzc5MFx1Yzc3NFx1YjJlNC4gXHVjOTg5LCBcdWIyZjlcdWMyZTBcdWM3NDAgXHVhYzcwXHViMzAwXHVkNTVjIFx1YWMwMFx1YzlkYyBcdWIzMDBcdWQzZWMgXHVjNTQ4XHVjNzNjXHViODVjIFx1YWUzMFx1YzViNFx1YzYyY1x1Yjc3Y1x1YWMwMCBcdWJhM2MgXHVhYzcwXHViOWFjXHViOTdjIFx1YmMxY1x1YzBhY1x1YjQxOFx1YmE3MCBcdWMwYWNcdWI3OGNcdWI0ZTRcdWM1ZDBcdWFjOGMgXHVhZTMwXHVjMDY4XHVjNzQ0IFx1YzhmY1x1YjI5NCBcdWMwYWNcdWI3OGNcdWM3NzggXHVhYzgzXHVjNzc0XHViMmU0LiBcdWM2MjRcdWIyOTgsIFx1YjJmOVx1YzJlMFx1Yzc0MCBcdWQ2M2NcdWM3OTBcdWFjMDAgXHVjNTQ0XHViMmM4XHViMmU0LiBcdWIyZjlcdWMyZTBcdWM3NDAgXHVhZDZkXHVjODFjIFx1Yzc3OFx1YWMwNFx1YjMwMFx1ZDNlYyBcdWQ2OGNcdWM3NTggXHVhY2I4IFx1YzgwNFx1YzJkY1x1YzdhNVx1YzVkMCBcdWM2NDAgXHVjNzg4XHVjNzNjXHViYTcwIFx1Yzc3NCBcdWFjZjNcdWM1ZDBcdWMxMWNcdWIyOTQgXHVjMjE4XHViYzMxXHViYTg1XHVjNzU4IFx1Yzc3OFx1YWMwNFx1YjMwMFx1ZDNlYyBcdWM4MDRcdWJiMzhcdWFjMDBcdWI0ZTRcdWM3NzQgXHVjMTFjXHViODVjXHVjNzU4IFx1YWNiZFx1ZDVkOFx1Yzc0NCBcdWFjZjVcdWM3MjBcdWQ1NThcdWFjZTAgXHVhZTMwXHVjMjIwXHVjNzQ0IFx1YzVmMFx1YjljOFx1ZDU1Y1x1YjJlNC4gXHViY2Y0XHVkMWI1IFx1YjJmOVx1YzJlMFx1Yzc1OCBcdWMxMWNcdWNlZTRcdWMyYTRcdWM1ZDBcdWMxMWMgXHViMmY5XHVjMmUwXHVjNzQwIFx1ZDU1YyBcdWIzMDBcdWQzZWNcdWI5Y2NcdWM3NDQgXHVhYzAwXHVjOWMwXHVhY2UwIFx1YWNmNVx1YzVmMFx1ZDU1OFx1YjI5NFx1YjM3MCBcdWJjMThcdWQ1NzQgXHVjNzc0XHVhY2YzXHVjNWQwXHVjMTFjXHViMjk0IFx1YzBhY1x1YzZhOVx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMjk0IFx1YzIxOFx1YjljZVx1Yzc0MCBcdWIzMDBcdWQzZWNcdWFjMDAgXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM1ZWNcdWI3ZWMgXHViMzAwXHVkM2VjXHViOTdjIFx1YzBhY1x1YzZhOVx1ZDU1OFx1YmE3NCBcdWQ2OGNcdWM3NThcdWM3YTVcdWM3NDQgXHVjODgwIFx1YjM1NCBcdWQzYjhcdWI5YWNcdWQ1NThcdWFjOGMgXHViM2NjXHVjNTQ0XHViMmU0XHViMmQwIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YjljY1x1YzU3ZCBcdWIyZjlcdWMyZTBcdWM3NzQgYVx1YzdhNVx1YzE4Y1x1YzVkMFx1YzExYyBiXHVjN2E1XHVjMThjXHVhZTRjXHVjOWMwIFx1Yzc3NFx1YjNkOVx1ZDU1OFx1YjgyNCBcdWQ1NWNcdWIyZTRcdWJhNzQgYSBcdWJkODBcdWQxMzAgYlx1YWU0Y1x1YzljMCBcdWM5YzFcdWMxMjBcdWM3M2NcdWI4NWMgXHVhYzc4XHVjNWI0XHVhYzA4IFx1YzIxOFx1YjNjNCBcdWM3ODhcdWFjZTAsIFx1YzhmY1x1YmNjMFx1Yzc1OCBcdWIzMDBcdWQzZWNcdWM1ZDAgXHVkMGQxXHVjMmI5XHVkNTc0XHVjMTFjIFx1YzViNFx1YjUxOFx1YWMwMCBcdWIyZTRcdWI5NzggXHVhY2YzXHVjNzNjXHViODVjIFx1YmMxY1x1YzBhY1x1YjQxOFx1YzViNCBcdWM3NzRcdWIzZDlcdWQ1NjAgXHVjMjE4XHViM2M0IFx1Yzc4OFx1YjJlNC4gXHViYzFjXHVjMGFjXHViNDE4XHVhY2UwIFx1YjA5OFx1YmE3NCBcdWIwYjRcdWI5YjAgXHVjNzA0XHVjZTU4XHVjNWQwXHVjMTFjIFx1YjNjNFx1Y2MyOVx1YzgxMFx1Yzc0NCBcdWQ1YTVcdWQ1NzRcdWMxMWMgXHVhYzc4XHVjNWI0XHVhYzA4IFx1YzIxOFx1YjNjNCBcdWM3ODhcdWFjZTAsIFx1YjJlNFx1YzJkYyBcdWQ1NWMgXHViYzg4IFx1YjYxMCBcdWIyZTRcdWI5NzggXHViMzAwXHVkM2VjXHViOTdjIFx1Yzc3NFx1YzZhOVx1ZDU1OFx1YzVlYyBcdWJhYTlcdWM4MDFcdWM5YzBcdWM1ZDAgXHViMzU0IFx1YmU2MFx1Yjk3NFx1YWM4YyBcdWIzYzRcdWNjMjlcdWQ1NjAgXHVjMjE4XHViM2M0IFx1Yzc4OFx1YjJlNC4gXHVhZGY4XHViOWJjIEUuMVx1Y2M5OFx1YjdmYyBcdWJjMzBcdWNlNThcdWI0MWMgXHVjOWMwXHViM2M0XHVjNWQwXHVjMTFjIFx1YjJmOVx1YzJlMFx1Yzc0MCBhXHVjNWQwXHVjMTFjIGJcdWI4NWMgXHVjNzc0XHViM2Q5XHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU1OFx1YzVlYyBcdWFkZjhcdWI5YmMgRS4yXHVjNjQwIFx1YWMxOVx1Yzc0MCBcdWFjYmRcdWI4NWNcdWI4NWMgXHVhYzc3XHVhYzcwXHViMDk4IFx1YjMwMFx1ZDNlY1x1Yjk3YyBcdWM3NzRcdWM2YTlcdWQ1NThcdWM1ZWMgXHVjNmMwXHVjOWMxXHVjNzdjIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1ZDY1NFx1YzBiNFx1ZDQ1Y1x1YjI5NCBcdWIyZjlcdWMyZTBcdWM3NzQgXHViMzAwXHVkM2VjXHVjNWQwXHVjMTFjIFx1YmMxY1x1YzBhY1x1YjQxOFx1YzViNCBcdWI1YThcdWM1YjRcdWM5YzQgXHVjODEwXHVjNzQ0IFx1Yzc1OFx1YmJmOFx1ZDU1OFx1YmE3MCBcdWM5YzFcdWMxMjBcdWM3NDAgXHViMmY5XHVjMmUwXHVjNzc0IFx1YjJlY1x1YjliMCBcdWFjYmRcdWI4NWNcdWI5N2MgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvb25saW5lanVkZ2VpbWFnZXMuczMtYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbVwvdXBsb2FkXC9pbWFnZXMyXC9odW1hbjEucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MTk5cHg7IHdpZHRoOjMwNXB4XCIgXC8+PFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj5cdWFkZjhcdWI5YmMgRS4xPFwvcD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC9vbmxpbmVqdWRnZWltYWdlcy5zMy1hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tXC91cGxvYWRcL2ltYWdlczJcL2h1bWFuMi5wbmdcIiBzdHlsZT1cImhlaWdodDoyMDBweDsgd2lkdGg6Mjk5cHhcIiBcLz48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPlx1YWRmOFx1YjliYyBFLjI8XC9wPlxyXG5cclxuPHA+XHViMmY5XHVjMmUwXHVjNzQwIDVtXC9zXHVjNzU4IFx1YzE4ZFx1YjNjNFx1Yjg1YyBcdWIyZWNcdWI5YjBcdWIyZTQuIFx1YmFhOFx1YjRlMCBcdWIzMDBcdWQzZWNcdWIyOTQgXHViMmY5XHVjMmUwXHVjNzQ0IFx1YjJmOVx1YzJlMFx1Yzc3NCBcdWM2ZDBcdWQ1NThcdWIyOTQgXHVjNzg0XHVjNzU4XHVjNzU4IFx1YmMyOVx1ZDVhNVx1YzczY1x1Yjg1YyA1MG0gXHViMGEwXHViODI0XHVjOTA0IFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YjMwMFx1ZDNlY1x1YzVkMCBcdWM2MmNcdWI3N2NcdWQwYzBcdWFjZTAgXHViYzFjXHVjMGFjXHViNDE4XHVhY2UwIFx1Y2MyOVx1Yjk1OVx1ZDU1OFx1YWUzMFx1YWU0Y1x1YzljMFx1YjI5NCBcdWM4MTVcdWQ2NTVcdWQ3ODggMlx1Y2QwOFx1YWMwMCBcdWFjNzhcdWI5YjBcdWIyZTQuIFx1YjMwMFx1ZDNlY1x1YjI5NCBcdWM3YTVcdWM1NjBcdWJiM2NcdWM3NzQgXHVjNTQ0XHViMmM4XHVhZTMwIFx1YjU0Y1x1YmIzOFx1YzVkMCBcdWIyZjlcdWMyZTBcdWM3NzQgXHViNmYwXHViMjk0IFx1YjNjNFx1YzkxMVx1YzVkMCBcdWIzMDBcdWQzZWNcdWFjMDAgXHVjNzg4XHViMmU0XHViYTc0IFx1YzgxMFx1ZDUwNFx1ZDU3NFx1YzExYyBcdWIxMThcdWM1YjRcdWFjMDAgXHViOWM4XHVjZTU4IFx1YzljMVx1YzEyMFx1YWNmYyBcdWFjMTlcdWM3NzQgXHVjNmMwXHVjOWMxXHVjNzdjIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YjJmOVx1YzJlMFx1Yzc1OCBcdWQ2MDRcdWM3YWMgXHVjNzA0XHVjZTU4XHVjNjQwIFx1YmFhOVx1YzgwMVx1YzljMFx1Yzc1OCBcdWM3MDRcdWNlNTgsIFx1YWRmOFx1YjlhY1x1YWNlMCBcdWIzMDBcdWQzZWNcdWI0ZTRcdWM3NTggXHVjNzA0XHVjZTU4XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljOCBcdWI1NGMgXHViMmY5XHVjMmUwXHVjNzQwIFx1YmFhOVx1YzgwMVx1YzljMFx1YzVkMCBcdWFjMDBcdWM3YTUgXHViZTY4XHViOWFjXHVhYzAwXHVhZTMwIFx1YzcwNFx1ZDU1YyBcdWFjYmRcdWI4NWNcdWI5N2MgXHVjNTRjXHVhY2UwIFx1YzJmNlx1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Yzc4NVx1YjgyNVx1Yzc0MCBcdWQ1NWMgXHVhYzFjXHVjNzU4IFx1YWUzOFx1Y2MzZVx1YWUzMCBcdWJiMzhcdWM4MWNcdWI5N2MgXHVkNDVjXHVkNjA0XHVkNTVjXHViMmU0LiBcdWNjYWIgXHVjOTA0XHVjNWQwXHViMjk0IFx1YjQ1MCBcdWFjMWNcdWM3NTggXHVjMmU0XHVjMjE4XHVhYzAwIFx1Yzc4NVx1YjgyNVx1YjQxOFx1YmE3MCBcdWFjMDFcdWFjMDFcdWM3NDAgXHViMmY5XHVjMmUwXHVjNzc0IFx1ZDYwNFx1YzdhYyBcdWM3MDRcdWNlNThcdWQ1NWMgWCwgWVx1Yzg4Y1x1ZDQ1Y1x1Yzc3NFx1YjJlNC4gXHViNDUwIFx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHViYWE5XHVjODAxXHVjOWMwXHVjNzU4IFgsIFlcdWM4OGNcdWQ0NWNcdWFjMDAgXHVjMmU0XHVjMjE4XHViODVjIFx1Yzc4NVx1YjgyNVx1YjQxY1x1YjJlNC4gXHVjNzc0XHVjNWI0XHVjOWMwXHViMjk0IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWIzMDBcdWQzZWNcdWM3NTggXHVjMjJiXHVjNzkwIFx1YzgxNVx1YzIxOCBuXHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHViMGE4XHVjNzQwIG5cdWM5MDRcdWM1ZDBcdWIyOTQgXHVkNTVjIFx1YzkwNFx1YzVkMCBcdWIzMDBcdWQzZWMgXHVkNTU4XHViMDk4XHVjNzU4IFx1YzcwNFx1Y2U1OCBcdWM4MTVcdWJjZjRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWMwXHViYTcwLCBcdWM3NzRcdWIyOTQgXHVjMmU0XHVjMjE4XHViODVjIFx1YzhmY1x1YzViNFx1YzljMFx1YjI5NCBYLCBZIFx1Yzg4Y1x1ZDQ1Y1x1Yzc3NFx1YjJlNC4gXHViYWE4XHViNGUwIFx1Yzg4Y1x1ZDQ1Y1x1YjI5NCBcdWJiZjhcdWQxMzBcdWI4NWMgXHVjZTIxXHVjODE1XHViNDE4XHVjNWM4XHVjNzNjXHViYTcwIG5cdWM3NTggXHVhYzEyXHVjNzQwIDAgXHVjNzc0XHVjMGMxIDEwMCBcdWM3NzRcdWQ1NThcdWM3NzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVkNTVjIFx1YzkwNFx1YzVkMCBcdWFjNzhcdWNjZDAgXHViYWE5XHVjODAxXHVjOWMwXHVjNWQwIFx1YjJlNFx1YjJlNFx1Yjk3NFx1YWUzMCBcdWM3MDRcdWQ1NzQgXHVhYzAwXHVjN2E1IFx1YmU2MFx1Yjk3OCBcdWMyZGNcdWFjMDRcdWM3NDQgXHVjZDljXHViODI1XHVkNTU4XHViNzdjLiBcdWMyZTRcdWM4MWMgXHViMmY1XHVhY2ZjIDAuMDAxXHVjZDA4IFx1YmJmOFx1YjljY1x1Yzc1OCBcdWNjMjhcdWM3NzRcdWIyOTQgXHVjODE1XHViMmY1XHVjNzNjXHViODVjIFx1Yzc3OFx1YzgxNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIxMDQ3MyIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6Ikh1bWFuIENhbm5vbmJhbGwgUnVuIiwiZGVzY3JpcHRpb24iOiI8cD5Zb3UgYXJlIGEgd29ybGQtZmFtb3VzIGNpcmN1cyBwZXJmb3JtZXIsIGEgaHVtYW4gY2Fubm9uYmFsbC4gVGhpcyBtZWFucyB0aGF0IHlvdSBjbGltYiBpbnRvIGEgYmlnLCBmYWtlIGNhbm5vbiBhbmQgbGF1bmNoIHlvdXJzZWxmIGdyZWF0IGRpc3RhbmNlcyB0byBkZWxpZ2h0IHlvdW5nIGFuZCBvbGQgYWxpa2UuIFRvZGF5LCB5b3UmcnNxdW87cmUgbm90IGFsb25lLiBZb3UgYXJlIGF0IHRoZSBpbnRlcm5hdGlvbmFsIGh1bWFuIGNhbm5vbmJhbGwgY29uZmVyZW5jZSBhbmQgZXhwb3NpdGlvbiwgd2hlcmUgaHVuZHJlZHMgb2Ygc2ltaWxhciBjaXJjdXMgcGVyZm9ybWVycyBoYXZlIGdhdGhlcmVkIHRvZ2V0aGVyIHRvIHNoYXJlIHRoZWlyIGV4cGVyaWVuY2VzIGFuZCBwcmFjdGljZSB0aGVpciBjcmFmdC4gV2hpbGUgeW91IG5vcm1hbGx5IGhhdmUganVzdCBvbmUgY2Fubm9uIHRvIHdvcmsgd2l0aCwgYXQgdGhlIGNvbmZlcmVuY2UgdGhlcmUgYXJlIHVzdWFsbHkgbG90cyBvZiBjYW5ub25zIHRvIGV4YW1pbmUgYW5kIHRyeSBvdXQuPFwvcD5cclxuXHJcbjxwPlRoZSBhdmFpbGFiaWxpdHkgb2Ygc2V2ZXJhbCBjYW5ub25zIGNyZWF0ZXMgc29tZSBpbnRlcmVzdGluZyBvcHBvcnR1bml0aWVzIGZvciBuYXZpZ2F0aW5nIHRoZSBjb25mZXJlbmNlLiBJZiB5b3Ugd2FudCB0byB0cmF2ZWwgcXVpY2tseSBmcm9tIHBvaW50IGEgdG8gcG9pbnQgYiwgeW91IGNvdWxkIGp1c3QgcnVuIHN0cmFpZ2h0IGZyb20gYSB0byBiLCBvciwgeW91IGNvdWxkIHJ1biB0byBhIG5lYXJieSBjYW5ub24gYW5kIGxhdW5jaCB5b3Vyc2VsZiBzb21ld2hlcmUgZWxzZS4gRnJvbSB0aGVyZSwgeW91IGNhbiBjb250aW51ZSB0byBydW4gdG93YXJkIHlvdXIgZGVzdGluYXRpb24gb3IgeW91IGNhbiBjb250aW51ZSB0byB1c2UgY2Fubm9ucyBpbiBhbiBlZmZvcnQgdG8gZ2V0IHRvIHlvdXIgZGVzdGluYXRpb24gbW9yZSBxdWlja2x5LiBXaXRoIGNhbm5vbnMgcG9zaXRpb25lZCBsaWtlIEZpZ3VyZSBFLjEsIHlvdSBjb3VsZCBmb2xsb3cgYSBwYXRoIGxpa2UgdGhlIG9uZSBpbiBGaWd1cmUgRS4yIHRvIGdldCBmcm9tIGEgdG8gYi4gVGhlIGFycm93cyBzaG93IHBsYWNlcyB3aGVyZSB5b3UgbGF1bmNoZWQgeW91cnNlbGYgb3V0IG9mIGEgY2Fubm9uLCBhbmQgdGhlIGxpbmVzIHNob3cgd2hlcmUgeW91IHJhbiB0byB0aGUgbmV4dCBjYW5ub24gb3IgdG8geW91ciBkZXN0aW5hdGlvbi48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzMlwvaHVtYW4xLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjE5OXB4OyB3aWR0aDozMDVweFwiIFwvPjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5GaWd1cmUgRS4xOiBJbGx1c3RyYXRpb24gb2YgdGhlIHNhbXBsZSBpbnB1dC4mbmJzcDs8XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzMlwvaHVtYW4yLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjIwMHB4OyB3aWR0aDoyOTlweFwiIFwvPjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5GaWd1cmUgRS4yOiBBIHN1Ym9wdGltYWwgc29sdXRpb24uPFwvcD5cclxuXHJcbjxwPllvdSBydW4gYXQgYSByYXRlIG9mIDUgbWV0ZXJzIHBlciBzZWNvbmQuIEFsbCBjYW5ub25zIGxhdW5jaCB5b3UgYSBkaXN0YW5jZSBvZiA1MCBtZXRlcnMsIGluIGFueSBkaXJlY3Rpb24geW91JnJzcXVvO2QgbGlrZS4gQ2xpbWJpbmcgaW50byBhIGNhbm5vbiwgbGF1bmNoaW5nIHlvdXJzZWxmIGFuZCBsYW5kaW5nIHRha2VzIGEgdG90YWwgb2YgMiBzZWNvbmRzLiBDYW5ub25zIGFyZSBub3Qgb2JzdGFjbGVzOyBpZiBhIGNhbm5vbiBpcyBpbiB5b3VyIHdheSwgeW91IGNhbiBqdW1wIG92ZXIgb3IgcnVuIGFyb3VuZCBpdCB3aXRob3V0IGl0IHNsb3dpbmcgeW91IGRvd24uIEdpdmVuIHlvdXIgY3VycmVudCBsb2NhdGlvbiwgYSBkZXNpcmVkIGRlc3RpbmF0aW9uIGFuZCB0aGUgcG9zaXRpb25zIG9mIGF2YWlsYWJsZSBjYW5ub25zLCB5b3Ugd2FudCB0byBwbGFuIGhvdyB0byBnZXQgdG8gdGhlIGRlc3RpbmF0aW9uIGFzIHF1aWNrbHkgYXMgcG9zc2libGUuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgaW5wdXQgZGVzY3JpYmVzIGEgc2luZ2xlIG5hdmlnYXRpb24gcHJvYmxlbS4gVGhlIGZpcnN0IGxpbmUgZ2l2ZXMgYSBwYWlyIG9mIHJlYWwgbnVtYmVycywgdGhlIFggYW5kIFkgY29vcmRpbmF0ZXMgd2hlcmUgeW91JnJzcXVvO3JlIGN1cnJlbnRseSBsb2NhdGVkLiBUaGUgbmV4dCBsaW5lIGdpdmUgdGhlIHJlYWwtdmFsdWVkIFggYW5kIFkgY29vcmRpbmF0ZXMgb2YgdGhlIGxvY2F0aW9uIHlvdSZyc3F1bztkIGxpa2UgdG8gcmVhY2guIFRoaXMgaXMgZm9sbG93ZWQgYnkgYSBsaW5lIHdpdGggYW4gaW50ZWdlciwgbiwgdGhlIG51bWJlciBvZiBjYW5ub25zIGF2YWlsYWJsZS4gVGhlIHJlbWFpbmluZyBuIGlucHV0IGxpbmVzIGVhY2ggY29udGFpbiBhIHBhaXIgb2YgcmVhbCB2YWx1ZXMgZ2l2aW5nIHRoZSBYIGFuZCBZIGNvb3JkaW5hdGVzIGZvciBhIGNhbm5vbi4gQWxsIGNvb3JkaW5hdGVzIGFyZSBtZWFzdXJlZCBpbiBtZXRlcnMsIGFuZCB0aGUgdmFsdWUgb2YgbiB3aWxsIGJlIGJldHdlZW4gMCBhbmQgMTAwLCBpbmNsdXNpdmUuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+UHJpbnQgYSBzaW5nbGUgbGluZSBvZiBvdXRwdXQsIHRoZSB0b3RhbCBudW1iZXIgb2Ygc2Vjb25kcyByZXF1aXJlZCB0byByZWFjaCB5b3VyIGRlc3RpbmF0aW9uIGFzIHF1aWNrbHkgYXMgcG9zc2libGUuIFlvdXIgYW5zd2VyIG11c3QgYmUgYWNjdXJhdGUgdG8gd2l0aGluIDAuMDAxIHNlY29uZHMuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsInByb2JsZW1fbGFuZ19jb2RlIjoiXHVjNjAxXHVjNWI0In1d