시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1536 MB46171354.167%

문제

동규는 단면 PCB 회로를 설계하려고 한다. PCB 회로는 부품을 장착하는 곳인 패드와, 패드를 잇는 도선으로 구성된다. 회로를 그릴 PCB는 무한한 2차원 평면, 패드는 평면 위의 점, 도선은 평면 위에서 이어진 선분들로 생각할 수 있다.

동규가 설계하려는 회로에는 $2N$개의 패드가 수평 방향으로 나열되어 있다. 왼쪽에서 $i$번째에 위치한 패드의 좌표는 $(i-1, 0)$이다. 패드마다 $1$번부터 $N$번까지의 번호 중 하나가 붙어 있으며, 같은 번호를 가진 패드는 각각 두 개씩 존재한다.

동규는 번호가 같은 패드 쌍들을 서로 만나지 않는 도선들로 이어야 한다. 각 도선은 $x$축 또는 $y$축에 평행한 하나 이상의 선분이 차례로 이어져 있는 모양이고, 자기 자신과 교차하지 않아야 한다. 또한 도선을 구성하는 각 선분은 길이가 양의 정수여야 한다.

패드의 번호가 순서대로 주어졌을 때, 회로를 설계하는 프로그램을 작성하시오.

입력

첫 번째 줄에 $N$이 주어진다. $(1 ≤ N ≤ 1,000)$

두 번째 줄에 패드의 번호를 나타내는 $2N$개의 정수가 순서대로 주어진다. $i$번째 정수는 왼쪽에서 $i$번째에 위치한 패드의 번호이다.

출력

회로 설계가 불가능하다면 NO를 출력한다.

회로 설계가 가능하다면 첫 줄에 YES를 출력한 다음, 회로를 나타내는 $N$개의 줄을 출력한다. $i$번째 줄에는 $i$번 패드 둘을 잇는 도선을 출력한다. 도선의 시작점은 둘 중 왼쪽에 있는 패드, 끝점은 오른쪽에 있는 패드이며, 도선을 출력하는 형식은 다음과 같다.

  • 도선을 구성하는 선분의 개수를 출력한다.
  • 도선을 구성하는 선분을 순서대로 그리는 과정을 다음과 같이 출력한다. 시작점 또는 이전 선분을 그리고 난 뒤의 위치에서 시작해서, 다음 선분을 어느 방향으로 그릴지와 어느 길이만큼 그릴지를 각각 출력한다. 끝점에 도달할 때까지 반복한다. 방향을 나타내는 문자는 U, D, L, R 중 하나이며, 각각 위, 아래, 왼쪽, 오른쪽을 나타낸다.

또한 구성된 회로는 다음 조건을 만족해야 한다. 회로 설계가 가능하다면 아래 조건을 만족하는 회로가 존재함이 보장된다.

  • 각 도선을 구성하는 선분의 개수는 $10$개 이하여야 한다.
  • 도선을 구성하는 선분의 끝점들은 $x, y$ 좌표의 절댓값이 $10,000$ 이하인 정수여야 한다.

가능한 회로가 여러 가지라면 아무거나 하나만 출력한다.

예제 입력 1

4
1 2 3 4 1 2 3 4

예제 출력 1

YES
3 U 1 R 4 D 1
5 D 1 L 2 U 3 R 6 D 2
5 D 2 R 6 U 3 L 2 D 1
3 D 1 R 4 U 1

본문에 주어진 그림과 같이 회로 설계가 가능하다.

예제 입력 2

4
1 2 3 4 1 3 2 4

예제 출력 2

NO

패드를 어떻게 이어도 도선끼리 만나는 일이 생긴다.

W3sicHJvYmxlbV9pZCI6IjIwNTM0IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiUENCIFx1YzEyNFx1YWNjNCIsImRlc2NyaXB0aW9uIjoiPHA+XHViM2Q5XHVhZGRjXHViMjk0IFx1YjJlOFx1YmE3NCBQQ0IgXHVkNjhjXHViODVjXHViOTdjIFx1YzEyNFx1YWNjNFx1ZDU1OFx1YjgyNFx1YWNlMCBcdWQ1NWNcdWIyZTQuIFBDQiBcdWQ2OGNcdWI4NWNcdWIyOTQgXHViZDgwXHVkNDg4XHVjNzQ0IFx1YzdhNVx1Y2MyOVx1ZDU1OFx1YjI5NCBcdWFjZjNcdWM3NzggXHVkMzI4XHViNGRjXHVjNjQwLCBcdWQzMjhcdWI0ZGNcdWI5N2MgXHVjNzg3XHViMjk0IFx1YjNjNFx1YzEyMFx1YzczY1x1Yjg1YyBcdWFkNmNcdWMxMzFcdWI0MWNcdWIyZTQuIFx1ZDY4Y1x1Yjg1Y1x1Yjk3YyBcdWFkZjhcdWI5YjQgUENCXHViMjk0IFx1YmIzNFx1ZDU1Y1x1ZDU1YyAyXHVjYzI4XHVjNmQwIFx1ZDNjOVx1YmE3NCwgXHVkMzI4XHViNGRjXHViMjk0IFx1ZDNjOVx1YmE3NCBcdWM3MDRcdWM3NTggXHVjODEwLCBcdWIzYzRcdWMxMjBcdWM3NDAgXHVkM2M5XHViYTc0IFx1YzcwNFx1YzVkMFx1YzExYyZuYnNwO1x1Yzc3NFx1YzViNFx1YzljNCBcdWMxMjBcdWJkODRcdWI0ZTRcdWI4NWMmbmJzcDtcdWMwZGRcdWFjMDFcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViM2Q5XHVhZGRjXHVhYzAwIFx1YzEyNFx1YWNjNFx1ZDU1OFx1YjgyNFx1YjI5NCBcdWQ2OGNcdWI4NWNcdWM1ZDBcdWIyOTQgJDJOJFx1YWMxY1x1Yzc1OCBcdWQzMjhcdWI0ZGNcdWFjMDAgXHVjMjE4XHVkM2M5IFx1YmMyOVx1ZDVhNVx1YzczY1x1Yjg1YyBcdWIwOThcdWM1ZjRcdWI0MThcdWM1YjQgXHVjNzg4XHViMmU0LiBcdWM2N2NcdWNhYmRcdWM1ZDBcdWMxMWMgJGkkXHViYzg4XHVjOWY4XHVjNWQwIFx1YzcwNFx1Y2U1OFx1ZDU1YyBcdWQzMjhcdWI0ZGNcdWM3NTggXHVjODhjXHVkNDVjXHViMjk0ICQoaS0xLCAwKSRcdWM3NzRcdWIyZTQuIFx1ZDMyOFx1YjRkY1x1YjljOFx1YjJlNCAkMSRcdWJjODhcdWJkODBcdWQxMzAgJE4kXHViYzg4XHVhZTRjXHVjOWMwXHVjNzU4IFx1YmM4OFx1ZDYzOCBcdWM5MTEgXHVkNTU4XHViMDk4XHVhYzAwIFx1YmQ5OVx1YzViNCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1YWMxOVx1Yzc0MCBcdWJjODhcdWQ2MzhcdWI5N2MgXHVhYzAwXHVjOWM0IFx1ZDMyOFx1YjRkY1x1YjI5NCBcdWFjMDFcdWFjMDEgXHViNDUwIFx1YWMxY1x1YzUyOSBcdWM4NzRcdWM3YWNcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjNkOVx1YWRkY1x1YjI5NCA8c3Ryb25nPlx1YmM4OFx1ZDYzOFx1YWMwMCBcdWFjMTlcdWM3NDAgXHVkMzI4XHViNGRjIFx1YzMwZDxcL3N0cm9uZz5cdWI0ZTRcdWM3NDQgPHN0cm9uZz5cdWMxMWNcdWI4NWMgXHViOWNjXHViMDk4XHVjOWMwIFx1YzU0YVx1YjI5NCBcdWIzYzRcdWMxMjA8XC9zdHJvbmc+XHViNGU0XHViODVjIFx1Yzc3NFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuIFx1YWMwMSBcdWIzYzRcdWMxMjBcdWM3NDAgJHgkXHVjZDk1IFx1YjYxMFx1YjI5NCAkeSRcdWNkOTVcdWM1ZDAgXHVkM2M5XHVkNTg5XHVkNTVjIFx1ZDU1OFx1YjA5OCBcdWM3NzRcdWMwYzFcdWM3NTggXHVjMTIwXHViZDg0XHVjNzc0IFx1Y2MyOFx1Yjg0MFx1Yjg1YyBcdWM3NzRcdWM1YjRcdWM4MzggXHVjNzg4XHViMjk0IFx1YmFhOFx1YzU5MVx1Yzc3NFx1YWNlMCwgXHVjNzkwXHVhZTMwIFx1Yzc5MFx1YzJlMFx1YWNmYyBcdWFkNTBcdWNjMjhcdWQ1NThcdWM5YzAgXHVjNTRhXHVjNTQ0XHVjNTdjIFx1ZDU1Y1x1YjJlNC4gXHViNjEwXHVkNTVjIFx1YjNjNFx1YzEyMFx1Yzc0NCBcdWFkNmNcdWMxMzFcdWQ1NThcdWIyOTQgXHVhYzAxIFx1YzEyMFx1YmQ4NFx1Yzc0MCBcdWFlMzhcdWM3NzRcdWFjMDAgXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOFx1YzVlY1x1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDMyOFx1YjRkY1x1Yzc1OCBcdWJjODhcdWQ2MzhcdWFjMDAgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1YzhmY1x1YzViNFx1Yzg0Y1x1Yzc0NCBcdWI1NGMsIFx1ZDY4Y1x1Yjg1Y1x1Yjk3YyBcdWMxMjRcdWFjYzRcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC83OWYzZjgyOS1kNzI0LTQ4MDctOTUwOC04MDNiNGU5ZGI0N2JcL1wiIHN0eWxlPVwibWF4LXdpZHRoOiAxMDAlOyB3aWR0aDogNDgwcHg7XCIgXC8+PFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWIgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMCAkTiRcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAkKDEgJmxlOyBOICZsZTsgMSwwMDApJDxcL3A+XHJcblxyXG48cD5cdWI0NTAgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMCBcdWQzMjhcdWI0ZGNcdWM3NTggXHViYzg4XHVkNjM4XHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCAkMk4kXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOFx1YWMwMCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAkaSRcdWJjODhcdWM5ZjggXHVjODE1XHVjMjE4XHViMjk0IFx1YzY3Y1x1Y2FiZFx1YzVkMFx1YzExYyAkaSRcdWJjODhcdWM5ZjhcdWM1ZDAgXHVjNzA0XHVjZTU4XHVkNTVjIFx1ZDMyOFx1YjRkY1x1Yzc1OCBcdWJjODhcdWQ2MzhcdWM3NzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVkNjhjXHViODVjIFx1YzEyNFx1YWNjNFx1YWMwMCBcdWJkODhcdWFjMDBcdWIyYTVcdWQ1NThcdWIyZTRcdWJhNzQgPHNhbXA+Tk88XC9zYW1wPlx1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1ZDY4Y1x1Yjg1YyBcdWMxMjRcdWFjYzRcdWFjMDAgXHVhYzAwXHViMmE1XHVkNTU4XHViMmU0XHViYTc0IFx1Y2NhYiBcdWM5MDRcdWM1ZDAgPHNhbXA+WUVTPFwvc2FtcD5cdWI5N2MgXHVjZDljXHViODI1XHVkNTVjIFx1YjJlNFx1Yzc0YywgXHVkNjhjXHViODVjXHViOTdjIFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCAkTiRcdWFjMWNcdWM3NTggXHVjOTA0XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gJGkkXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCAkaSRcdWJjODggXHVkMzI4XHViNGRjIFx1YjQ1OFx1Yzc0NCBcdWM3ODdcdWIyOTQgXHViM2M0XHVjMTIwXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHViM2M0XHVjMTIwXHVjNzU4IFx1YzJkY1x1Yzc5MVx1YzgxMFx1Yzc0MCBcdWI0NTggXHVjOTExIFx1YzY3Y1x1Y2FiZFx1YzVkMCBcdWM3ODhcdWIyOTQgXHVkMzI4XHViNGRjLCBcdWIwNWRcdWM4MTBcdWM3NDAgXHVjNjI0XHViOTc4XHVjYWJkXHVjNWQwIFx1Yzc4OFx1YjI5NCBcdWQzMjhcdWI0ZGNcdWM3NzRcdWJhNzAsIFx1YjNjNFx1YzEyMFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NThcdWIyOTQgXHVkNjE1XHVjMmRkXHVjNzQwIFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHViM2M0XHVjMTIwXHVjNzQ0IFx1YWQ2Y1x1YzEzMVx1ZDU1OFx1YjI5NCBcdWMxMjBcdWJkODRcdWM3NTggXHVhYzFjXHVjMjE4XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHViM2M0XHVjMTIwXHVjNzQ0IFx1YWQ2Y1x1YzEzMVx1ZDU1OFx1YjI5NCBcdWMxMjBcdWJkODRcdWM3NDQgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1YWRmOFx1YjlhY1x1YjI5NCBcdWFjZmNcdWM4MTVcdWM3NDQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc3NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YzJkY1x1Yzc5MVx1YzgxMCBcdWI2MTBcdWIyOTQgXHVjNzc0XHVjODA0IFx1YzEyMFx1YmQ4NFx1Yzc0NCBcdWFkZjhcdWI5YWNcdWFjZTAgXHViMDljIFx1YjRhNFx1Yzc1OCBcdWM3MDRcdWNlNThcdWM1ZDBcdWMxMWMgXHVjMmRjXHVjNzkxXHVkNTc0XHVjMTFjLCBcdWIyZTRcdWM3NGMgXHVjMTIwXHViZDg0XHVjNzQ0IFx1YzViNFx1YjI5MCBcdWJjMjlcdWQ1YTVcdWM3M2NcdWI4NWMgXHVhZGY4XHViOWI0XHVjOWMwXHVjNjQwIFx1YzViNFx1YjI5MCBcdWFlMzhcdWM3NzRcdWI5Y2NcdWQwN2MgXHVhZGY4XHViOWI0XHVjOWMwXHViOTdjIFx1YWMwMVx1YWMwMSBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YjA1ZFx1YzgxMFx1YzVkMCBcdWIzYzRcdWIyZWNcdWQ1NjAgXHViNTRjXHVhZTRjXHVjOWMwIFx1YmMxOFx1YmNmNVx1ZDU1Y1x1YjJlNC4gXHViYzI5XHVkNWE1XHVjNzQ0IFx1YjA5OFx1ZDBjMFx1YjBiNFx1YjI5NCBcdWJiMzhcdWM3OTBcdWIyOTQgPHNhbXA+VSwmbmJzcDtELCBMLCBSPFwvc2FtcD4gXHVjOTExIFx1ZDU1OFx1YjA5OFx1Yzc3NFx1YmE3MCwgXHVhYzAxXHVhYzAxIFx1YzcwNCwgXHVjNTQ0XHViNzk4LCBcdWM2N2NcdWNhYmQsIFx1YzYyNFx1Yjk3OFx1Y2FiZFx1Yzc0NCBcdWIwOThcdWQwYzBcdWIwYjhcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHViNjEwXHVkNTVjIFx1YWQ2Y1x1YzEzMVx1YjQxYyBcdWQ2OGNcdWI4NWNcdWIyOTQgXHViMmU0XHVjNzRjIFx1Yzg3MFx1YWM3NFx1Yzc0NCBcdWI5Y2NcdWM4NzFcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LiBcdWQ2OGNcdWI4NWMgXHVjMTI0XHVhY2M0XHVhYzAwIFx1YWMwMFx1YjJhNVx1ZDU1OFx1YjJlNFx1YmE3NCBcdWM1NDRcdWI3OTggXHVjODcwXHVhYzc0XHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YjI5NCBcdWQ2OGNcdWI4NWNcdWFjMDAgXHVjODc0XHVjN2FjXHVkNTY4XHVjNzc0IFx1YmNmNFx1YzdhNVx1YjQxY1x1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWFjMDEgXHViM2M0XHVjMTIwXHVjNzQ0IFx1YWQ2Y1x1YzEzMVx1ZDU1OFx1YjI5NCBcdWMxMjBcdWJkODRcdWM3NTggXHVhYzFjXHVjMjE4XHViMjk0ICQxMCRcdWFjMWMgXHVjNzc0XHVkNTU4XHVjNWVjXHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHViM2M0XHVjMTIwXHVjNzQ0IFx1YWQ2Y1x1YzEzMVx1ZDU1OFx1YjI5NCBcdWMxMjBcdWJkODRcdWM3NTggXHViMDVkXHVjODEwXHViNGU0XHVjNzQwICR4LCB5JCBcdWM4OGNcdWQ0NWNcdWM3NTggXHVjODA4XHViMzEzXHVhYzEyXHVjNzc0ICQxMCwwMDAkIFx1Yzc3NFx1ZDU1OFx1Yzc3OCBcdWM4MTVcdWMyMThcdWM1ZWNcdWM1N2MgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YWMwMFx1YjJhNVx1ZDU1YyBcdWQ2OGNcdWI4NWNcdWFjMDAgXHVjNWVjXHViN2VjIFx1YWMwMFx1YzljMFx1Yjc3Y1x1YmE3NCBcdWM1NDRcdWJiMzRcdWFjNzBcdWIwOTggXHVkNTU4XHViMDk4XHViOWNjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4iLCJzYW1wbGVfZXhwbGFpbl8xIjoiPHA+XHViY2Y4XHViYjM4XHVjNWQwIFx1YzhmY1x1YzViNFx1YzljNCBcdWFkZjhcdWI5YmNcdWFjZmMgXHVhYzE5XHVjNzc0IFx1ZDY4Y1x1Yjg1YyBcdWMxMjRcdWFjYzRcdWFjMDAgXHVhYzAwXHViMmE1XHVkNTU4XHViMmU0LjxcL3A+XHJcbiIsInNhbXBsZV9leHBsYWluXzIiOiI8cD5cdWQzMjhcdWI0ZGNcdWI5N2MgXHVjNWI0XHViNWJiXHVhYzhjIFx1Yzc3NFx1YzViNFx1YjNjNCBcdWIzYzRcdWMxMjBcdWIwN2NcdWI5YWMgXHViOWNjXHViMDk4XHViMjk0IFx1Yzc3Y1x1Yzc3NCBcdWMwZGRcdWFlMzRcdWIyZTQuPFwvcD5cclxuIn0seyJwcm9ibGVtX2lkIjoiMjA1MzQiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJEZXNpZ25pbmcgYSBQQ0IiLCJkZXNjcmlwdGlvbiI6IjxwPkRvbmdreXUgaXMgdHJ5aW5nIHRvIGRlc2lnbiBhIHNpbmdsZS1zaWRlZCBwcmludGVkIGNpcmN1aXQgYm9hcmQgKFBDQiBmb3Igc2hvcnQpLiBBIFBDQiBpcyBjb21wb3NlZCBvZiBwYWRzIG9uIHdoaWNoIGNvbXBvbmVudHMgY2FuIGJlIG1vdW50ZWQsIGFuZCBjb25kdWN0aXZlIHRyYWNrcyBjb25uZWN0aW5nIHRoZSBwYWRzLiBZb3UgY2FuIHRoaW5rIG9mIGEgUENCIGFzIGFuIGluZmluaXRlIHR3by1kaW1lbnNpb25hbCBwbGFuZSwgYSBwYWQgYXMgYSBwb2ludCBvbiB0aGUgcGxhbmUsIGFuZCBhIHRyYWNrIGFzIGEgY29ubmVjdGVkIHBvbHlsaW5lIG9uIHRoZSBwbGFuZS48XC9wPlxyXG5cclxuPHA+SW4gdGhlIGNpcmN1aXQgdGhhdCBEb25na3l1IHdhbnRzIHRvIGRlc2lnbiwgdGhlICQybiQgcGFkcyBhcmUgYXJyYW5nZWQgaG9yaXpvbnRhbGx5LiBUaGUgJGkkLXRoIHBhZCBmcm9tIHRoZSBsZWZ0IGlzIGxvY2F0ZWQgYXQgY29vcmRpbmF0ZSAkKGkgLSAxLCAwKSQuIEVhY2ggcGFkIGlzIGFzc2lnbmVkIGEgbGFiZWw6IGFuIGludGVnZXIgYmV0d2VlbiAkMSQgYW5kICRuJCwgaW5jbHVzaXZlLiBGb3IgZWFjaCAkMSBcXGxlIGkgXFxsZSBuJCwgdGhlcmUgYXJlIGV4YWN0bHkgMiBwYWRzIGxhYmVsZWQgd2l0aCAkaSQuPFwvcD5cclxuXHJcbjxwPkRvbmdreXUgbmVlZHMgdG8gZHJhdyAkbiQgdHJhY2tzIHRvIGNvbm5lY3QgdGhlIHBhaXJzIG9mIHBhZHMgd2l0aCB0aGUgc2FtZSBsYWJlbC4gRWFjaCB0cmFjayBtdXN0IGJlIGEgcG9seWxpbmUgY29uc2lzdGluZyBvZiBzZWdtZW50cyBvZiBwb3NpdGl2ZSBpbnRlZ2VyIGxlbmd0aHMsIHN1Y2ggdGhhdCBlYWNoIHNlZ21lbnQgaXMgcGFyYWxsZWwgdG8gb25lIG9mIHRoZSBjb29yZGluYXRlIGF4ZXMuIFRoZXkgc3RhcnQgYW5kIGVuZCBhdCB0aGUgcG9pbnRzIHJlcHJlc2VudGluZyB0aGUgcGFkcy4gTm8gdHdvIHRyYWNrcyBtYXkgc2hhcmUgYSBjb21tb24gcG9pbnQuPFwvcD5cclxuXHJcbjxwPkdpdmVuIHRoZSBudW1iZXIgb2YgcGFkcyBhbmQgdGhlIGxhYmVsaW5nLCB3cml0ZSBhIHByb2dyYW0gdG8gZGVzaWduIHRoZSBjaXJjdWl0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgaW5wdXQgY29udGFpbnMgYSBzaW5nbGUgaW50ZWdlciAkbiQgKCQxIFxcbGUgbiBcXGxlIDEwMDAkKS48XC9wPlxyXG5cclxuPHA+VGhlIHNlY29uZCBsaW5lIGNvbnRhaW5zICQyIG4kIGludGVnZXJzICRwX2kkICgkMSBcXGxlIHBfaSBcXGxlIG4kKS4gSGVyZSwgJHBfaSQgaXMgdGhlIGxhYmVsIG9uIHRoZSAkaSQtdGggcGFkIGZyb20gdGhlIGxlZnQuIEl0IGlzIGd1YXJhbnRlZWQgdGhhdCBlYWNoIGludGVnZXIgYmV0d2VlbiAkMSQgYW5kICRuJCBhcHBlYXJzIGV4YWN0bHkgdHdpY2UgaW4gdGhlIGxhYmVscy48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5JZiBpdCBpcyBpbXBvc3NpYmxlIHRvIGRlc2lnbiBhIGNpcmN1aXQgY29uZm9ybWluZyB0byB0aGUgbGltaXRhdGlvbnMgZGVzY3JpYmVkIGluIHRoZSBzdGF0ZW1lbnQsIHByaW50ICZxdW90Ozxjb2RlPk5PPFwvY29kZT4mcXVvdDsuPFwvcD5cclxuXHJcbjxwPk90aGVyd2lzZSwgcHJpbnQgJnF1b3Q7PGNvZGU+WUVTPFwvY29kZT4mcXVvdDsgb24gdGhlIGZpcnN0IGxpbmUuIFRoZW4sIG9uIHRoZSBuZXh0ICRuJCBsaW5lcywgb3V0cHV0IHRoZSBkZXNjcmlwdGlvbnMgb2YgJG4kIHRyYWNrcyBpbiBvcmRlciBvZiBpbmNyZWFzaW5nIGxhYmVsIG51bWJlciBvZiB0aGUgcGFkcyB0aGV5IGFyZSBjb25uZWN0aW5nLjxcL3A+XHJcblxyXG48cD5FYWNoIHRyYWNrIG11c3QgYmUgYSBwb2x5bGluZSBzdGFydGluZyBmcm9tIHRoZSA8c3Ryb25nPmxlZnRtb3N0PFwvc3Ryb25nPiBvZiB0aGUgdHdvIGNvbm5lY3RlZCBwYWRzLiBUaGUgZGVzY3JpcHRpb24gb2YgYSB0cmFjayBzdGFydHMgd2l0aCBvbmUgaW50ZWdlciAkTF9pJCAoJDEgXFxsZSBMX2kgXFxsZSAxMCQpIGRlc2NyaWJpbmcgdGhlIG51bWJlciBvZiBzZWdtZW50cyBmb3JtaW5nIHRoZSB0cmFjay4gRWFjaCBzZWdtZW50IGlzIGRlc2NyaWJlZCBieSBvbmUgbGV0dGVyIGZvciB0aGUgZGlyZWN0aW9uLCBmb2xsb3dlZCBieSBhIHBvc2l0aXZlIGludGVnZXIgZm9yIHRoZSBzZWdtZW50IGxlbmd0aC4gVGhlIGRpcmVjdGlvbnMgYXJlOiBgPGNvZGU+RDxcL2NvZGU+JiMzOTsgLS0tIGRvd24gKGRlY3JlYXNpbmcgJHkkKSwgYDxjb2RlPlU8XC9jb2RlPiYjMzk7IC0tLSB1cCAoaW5jcmVhc2luZyAkeSQpLCBgPGNvZGU+UjxcL2NvZGU+JiMzOTsgLS0tIHJpZ2h0IChpbmNyZWFzaW5nICR4JCksIGFuZCBgPGNvZGU+TDxcL2NvZGU+JiMzOTsgLS0tIGxlZnQgKGRlY3JlYXNpbmcgJHgkKS4gVGhlIHNlZ21lbnRzIG11c3QgYmUgbGlzdGVkIGZyb20gdGhlIHN0YXJ0aW5nIHBhZCB0byB0aGUgZW5kaW5nIHBhZCBpbiB0aGUgb3JkZXIgdGhleSBhcmUgY29ubmVjdGVkLjxcL3A+XHJcblxyXG48cD5FYWNoIHBvbHlsaW5lIG11c3QgaGF2ZSBubyBzZWxmLWludGVyc2VjdGlvbnMgYW5kIG5vIHNlbGYtdG91Y2hpbmdzLiBEaWZmZXJlbnQgcG9seWxpbmVzIG11c3QgaGF2ZSBubyBjb21tb24gcG9pbnRzLiBUaGUgcmVzdWx0aW5nIGNvb3JkaW5hdGVzIG9mIHRoZSB2ZXJ0aWNlcyBvZiB0aGUgcG9seWxpbmVzIG11c3QgYmUgbm90IGdyZWF0ZXIgdGhhbiAkMTBeNCQgYnkgYWJzb2x1dGUgdmFsdWUuIFNlcGFyYXRlIGxldHRlcnMgYW5kIGludGVnZXJzIHdpdGggc3BhY2VzLiBDaGVjayB0aGUgc2FtcGxlIG91dHB1dCB0byBjbGFyaWZ5IHRoZSBmb3JtYXQuPFwvcD5cclxuXHJcbjxwPklmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgc29sdXRpb24sIGFueSBvbmUgb2YgdGhlbSB3aWxsIGJlIGFjY2VwdGVkLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJzYW1wbGVfZXhwbGFpbl8xIjoiPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC82OTAzMTliNy1jMzNlLTQ1OWItOGU5Mi0wZDUxNTExM2U4MmZcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDQ0MHB4OyBoZWlnaHQ6IDMyMHB4O1wiIFwvPjxcL3A+XHJcblxyXG48cD5PbmUgb2YgdGhlIHBvc3NpYmxlIGNpcmN1aXRzIGZvciBzYW1wbGUgMSBpcyBzaG93biBhdCB0aGUgcGljdHVyZS4gSW4gc2FtcGxlIDIsIHdlIGNhbm5vdCBjb25uZWN0IHRoZSBwYWRzIHNvIHRoYXQgdGhlIGRpZmZlcmVudCB0cmFja3MgZG8gbm90IGludGVyc2VjdC48XC9wPlxyXG4ifV0=