문제
이 버전에서는 시행의 횟수를 최소화해야 한다.
두 순열 $p_{1}, p_{2}, \ldots, p_{n}$과 $q_{1}, q_{2}, \ldots, q_{m}$이 있다. 초기에 $p_{i}=a_{i}$(1ドル \le i \le n$), $q_{j}=b_{j}$(1ドル \le j \le m$)이다. 당신은 아래 시행을 적절하게 하여 $p_{i}=i$(1ドル \le i \le n$), $q_{j} = j$(1ドル \le j \le m$)가 되도록 해야 한다.
한 번의 시행에서, $p$와 $q$는 다음 세 단계에 따라 변한다:
- 당신은 1ドル \le i \le n,ドル 1ドル \le j \le m$을 만족하는 두 정수 $i,ドル $j$를 선택한다.
- $p$에서 $i$번째 원소를 기준으로 왼쪽 부분과 오른쪽 부분을 서로 교환한다. 즉, $p$를 $p_{i+1}, p_{i+2}, \ldots, p_{n}, p_{i}, p_{1}, p_{2}, \ldots, p_{i-1}$로 바꾼다. 왼쪽 부분과 오른쪽 부분은 비어 있을 수도 있다. 새롭게 만들어진 $p$에는 인덱스 번호가 다시 부여된다.
- $q$에서 $j$번째 원소를 기준으로 왼쪽 부분과 오른쪽 부분을 서로 교환한다. 즉, $q$를 $q_{j+1}, q_{j+2}, \ldots, q_{n}, q_{j}, q_{1}, q_{2}, \ldots, q_{j-1}$로 바꾼다. 왼쪽 부분과 오른쪽 부분은 비어 있을 수도 있다. 새롭게 만들어진 $q$에는 인덱스 번호가 다시 부여된다.
목표를 달성하는 것이 가능한지 판별하고, 가능하다면 최소 횟수의 시행으로 목표를 달성하는 방법을 찾아라.
출력
목표를 달성하는 것이 불가능하다면, 첫 줄에 $-1$을 출력한다.
목표를 달성하는 것이 가능하다면, 첫 줄에 시행의 횟수 $k$를 출력한다.
이후 $k$개의 줄에 각 시행을 나타내는 두 정수 $i$와 $j$를 공백으로 구분하여 출력한다 (1ドル \le i \le n,ドル 1ドル \le j \le m$).
목표를 달성하는 방법이 둘 이상이라면 그 중 무엇을 출력해도 상관없다. 시행의 횟수를 최소화해야 함에 유의하라.
노트
첫 번째 예제에서, 다음 방법으로 목표를 달성할 수 있다:
- 첫 번째 시행에서 $i=3,ドル $j=4$를 선택한다. 시행 후 $p=[3, 2, 1],ドル $q=[3, 4, 5, 2, 1]$이 된다.
- 두 번째 시행에서 $i=2,ドル $j=4$를 선택한다. 시행 후 $p=[1, 2, 3],ドル $q=[1, 2, 3, 4, 5]$가 된다.
세 번째 예제에서, 목표를 달성하는 것이 불가능함을 증명할 수 있다.
W3sicHJvYmxlbV9pZCI6IjMwMjQxIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViNDUwIFx1YzIxY1x1YzVmNCAoSGFyZCkiLCJkZXNjcmlwdGlvbiI6IjxwPjxzdHJvbmc+XHVjNzc0IFx1YmM4NFx1YzgwNFx1YzVkMFx1YzExY1x1YjI5NCBcdWMyZGNcdWQ1ODlcdWM3NTggXHVkNjlmXHVjMjE4XHViOTdjIFx1Y2Q1Y1x1YzE4Y1x1ZDY1NFx1ZDU3NFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvc3Ryb25nPjxcL3A+XHJcblxyXG48cD5cdWI0NTAgXHVjMjFjXHVjNWY0ICRwX3sxfSwgcF97Mn0sIFxcbGRvdHMsIHBfe259JFx1YWNmYyAkcV97MX0sIHFfezJ9LCBcXGxkb3RzLCBxX3ttfSRcdWM3NzQgXHVjNzg4XHViMmU0LiBcdWNkMDhcdWFlMzBcdWM1ZDAgJHBfe2l9PWFfe2l9JCgkMSBcXGxlIGkgXFxsZSBuJCksICRxX3tqfT1iX3tqfSQoJDEgXFxsZSBqIFxcbGUgbSQpXHVjNzc0XHViMmU0LiBcdWIyZjlcdWMyZTBcdWM3NDAgXHVjNTQ0XHViNzk4IFx1YzJkY1x1ZDU4OVx1Yzc0NCBcdWM4MDFcdWM4MDhcdWQ1NThcdWFjOGMgXHVkNTU4XHVjNWVjICRwX3tpfT1pJCgkMSBcXGxlIGkgXFxsZSBuJCksICRxX3tqfSA9IGokKCQxIFxcbGUgaiBcXGxlIG0kKVx1YWMwMCBcdWI0MThcdWIzYzRcdWI4NWQgXHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVkNTVjIFx1YmM4OFx1Yzc1OCBcdWMyZGNcdWQ1ODlcdWM1ZDBcdWMxMWMsICRwJFx1YzY0MCAkcSRcdWIyOTQgXHViMmU0XHVjNzRjIFx1YzEzOCBcdWIyZThcdWFjYzRcdWM1ZDAgXHViNTMwXHViNzdjIFx1YmNjMFx1ZDU1Y1x1YjJlNDo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWIyZjlcdWMyZTBcdWM3NDAgJDEgXFxsZSBpIFxcbGUgbiQsICQxIFxcbGUgaiBcXGxlIG0kXHVjNzQ0IFx1YjljY1x1Yzg3MVx1ZDU1OFx1YjI5NCBcdWI0NTAgXHVjODE1XHVjMjE4ICRpJCwgJGokXHViOTdjIFx1YzEyMFx1ZDBkZFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+JHAkXHVjNWQwXHVjMTFjICRpJFx1YmM4OFx1YzlmOCBcdWM2ZDBcdWMxOGNcdWI5N2MgXHVhZTMwXHVjOTAwXHVjNzNjXHViODVjIFx1YzY3Y1x1Y2FiZCBcdWJkODBcdWJkODRcdWFjZmMgXHVjNjI0XHViOTc4XHVjYWJkIFx1YmQ4MFx1YmQ4NFx1Yzc0NCBcdWMxMWNcdWI4NWMgXHVhZDUwXHVkNjU4XHVkNTVjXHViMmU0LiBcdWM5ODksICRwJFx1Yjk3YyAkcF97aSsxfSwgcF97aSsyfSwgXFxsZG90cywgcF97bn0sIHBfe2l9LCBwX3sxfSwgcF97Mn0sIFxcbGRvdHMsIHBfe2ktMX0kXHViODVjIFx1YmMxNFx1YWZiY1x1YjJlNC4gXHVjNjdjXHVjYWJkIFx1YmQ4MFx1YmQ4NFx1YWNmYyBcdWM2MjRcdWI5NzhcdWNhYmQgXHViZDgwXHViZDg0XHVjNzQwIFx1YmU0NFx1YzViNCBcdWM3ODhcdWM3NDQgXHVjMjE4XHViM2M0IFx1Yzc4OFx1YjJlNC4gXHVjMGM4XHViODZkXHVhYzhjIFx1YjljY1x1YjRlNFx1YzViNFx1YzljNCAkcCRcdWM1ZDBcdWIyOTQgXHVjNzc4XHViMzcxXHVjMmE0IFx1YmM4OFx1ZDYzOFx1YWMwMCBcdWIyZTRcdWMyZGMgXHViZDgwXHVjNWVjXHViNDFjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT4kcSRcdWM1ZDBcdWMxMWMgJGokXHViYzg4XHVjOWY4IFx1YzZkMFx1YzE4Y1x1Yjk3YyBcdWFlMzBcdWM5MDBcdWM3M2NcdWI4NWMgXHVjNjdjXHVjYWJkIFx1YmQ4MFx1YmQ4NFx1YWNmYyBcdWM2MjRcdWI5NzhcdWNhYmQgXHViZDgwXHViZDg0XHVjNzQ0IFx1YzExY1x1Yjg1YyBcdWFkNTBcdWQ2NThcdWQ1NWNcdWIyZTQuIFx1Yzk4OSwgJHEkXHViOTdjICRxX3tqKzF9LCBxX3tqKzJ9LCBcXGxkb3RzLCBxX3tufSwgcV97an0sIHFfezF9LCBxX3syfSwgXFxsZG90cywgcV97ai0xfSRcdWI4NWMgXHViYzE0XHVhZmJjXHViMmU0LiBcdWM2N2NcdWNhYmQgXHViZDgwXHViZDg0XHVhY2ZjIFx1YzYyNFx1Yjk3OFx1Y2FiZCBcdWJkODBcdWJkODRcdWM3NDAgXHViZTQ0XHVjNWI0IFx1Yzc4OFx1Yzc0NCBcdWMyMThcdWIzYzQgXHVjNzg4XHViMmU0LiBcdWMwYzhcdWI4NmRcdWFjOGMgXHViOWNjXHViNGU0XHVjNWI0XHVjOWM0ICRxJFx1YzVkMFx1YjI5NCBcdWM3NzhcdWIzNzFcdWMyYTQgXHViYzg4XHVkNjM4XHVhYzAwIFx1YjJlNFx1YzJkYyBcdWJkODBcdWM1ZWNcdWI0MWNcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHViYWE5XHVkNDVjXHViOTdjIFx1YjJlY1x1YzEzMVx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzQgXHVhYzAwXHViMmE1XHVkNTVjXHVjOWMwIFx1ZDMxMFx1YmNjNFx1ZDU1OFx1YWNlMCwgXHVhYzAwXHViMmE1XHVkNTU4XHViMmU0XHViYTc0IFx1Y2Q1Y1x1YzE4YyBcdWQ2OWZcdWMyMThcdWM3NTggXHVjMmRjXHVkNTg5XHVjNzNjXHViODVjIFx1YmFhOVx1ZDQ1Y1x1Yjk3YyBcdWIyZWNcdWMxMzFcdWQ1NThcdWIyOTQgXHViYzI5XHViYzk1XHVjNzQ0IFx1Y2MzZVx1YzU0NFx1Yjc3Yy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YjQ1MCBcdWM4MTVcdWMyMTggJG4kXHVhY2ZjICRtJFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQoJDEgXFxsZSBuLCBtIFxcbGUgMjUwMCQpLjxcL3A+XHJcblxyXG48cD5cdWI0NTAgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMCAkbiRcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4ICRhXzEsIGFfMiwgXFxsZG90cywgYV9uJFx1YWMwMCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNCAoJDEgXFxsZSBhX2kgXFxsZSBuJCkuPFwvcD5cclxuXHJcbjxwPlx1YzEzOCBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwICRtJFx1YWMxY1x1Yzc1OCBcdWM4MTVcdWMyMTggJGJfMSwgYl8yLCBcXGxkb3RzLCBiX20kXHVhYzAwIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWI0MThcdWM1YjQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0ICgkMSBcXGxlIGJfaSBcXGxlIG0kKS48XC9wPlxyXG5cclxuPHA+JGEkXHVjNjQwICRiJFx1YWMwMCBcdWMyMWNcdWM1ZjRcdWM3ODRcdWM3NzQgXHViY2Y0XHVjN2E1XHViNDFjXHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YmFhOVx1ZDQ1Y1x1Yjk3YyBcdWIyZWNcdWMxMzFcdWQ1NThcdWIyOTQgXHVhYzgzXHVjNzc0IFx1YmQ4OFx1YWMwMFx1YjJhNVx1ZDU1OFx1YjJlNFx1YmE3NCwgXHVjY2FiIFx1YzkwNFx1YzVkMCAkLTEkXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViYWE5XHVkNDVjXHViOTdjIFx1YjJlY1x1YzEzMVx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzQgXHVhYzAwXHViMmE1XHVkNTU4XHViMmU0XHViYTc0LCBcdWNjYWIgXHVjOTA0XHVjNWQwIFx1YzJkY1x1ZDU4OVx1Yzc1OCBcdWQ2OWZcdWMyMTggJGskXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzc0XHVkNmM0ICRrJFx1YWMxY1x1Yzc1OCBcdWM5MDRcdWM1ZDAgXHVhYzAxIFx1YzJkY1x1ZDU4OVx1Yzc0NCBcdWIwOThcdWQwYzBcdWIwYjRcdWIyOTQgXHViNDUwIFx1YzgxNVx1YzIxOCAkaSRcdWM2NDAgJGokXHViOTdjIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWQ1NThcdWM1ZWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0ICgkMSBcXGxlIGkgXFxsZSBuJCwgJDEgXFxsZSBqIFxcbGUgbSQpLjxcL3A+XHJcblxyXG48cD5cdWJhYTlcdWQ0NWNcdWI5N2MgXHViMmVjXHVjMTMxXHVkNTU4XHViMjk0IFx1YmMyOVx1YmM5NVx1Yzc3NCBcdWI0NTggXHVjNzc0XHVjMGMxXHVjNzc0XHViNzdjXHViYTc0IFx1YWRmOCBcdWM5MTEgXHViYjM0XHVjNWM3XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU3NFx1YjNjNCBcdWMwYzFcdWFkMDBcdWM1YzZcdWIyZTQuIFx1YzJkY1x1ZDU4OVx1Yzc1OCBcdWQ2OWZcdWMyMThcdWI5N2MgPHN0cm9uZz5cdWNkNWNcdWMxOGNcdWQ2NTRcdWQ1NzRcdWM1N2MgXHVkNTY4XHVjNWQwIFx1YzcyMFx1Yzc1OFx1ZDU1OFx1Yjc3YzxcL3N0cm9uZz4uPFwvcD5cclxuIiwiaGludCI6IjxwPlx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjNjA4XHVjODFjXHVjNWQwXHVjMTFjLCBcdWIyZTRcdWM3NGMgXHViYzI5XHViYzk1XHVjNzNjXHViODVjIFx1YmFhOVx1ZDQ1Y1x1Yjk3YyBcdWIyZWNcdWMxMzFcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNDo8XC9wPlxyXG5cclxuPG9sPlxyXG5cdDxsaT5cdWNjYWIgXHViYzg4XHVjOWY4IFx1YzJkY1x1ZDU4OVx1YzVkMFx1YzExYyAkaT0zJCwgJGo9NCRcdWI5N2MgXHVjMTIwXHVkMGRkXHVkNTVjXHViMmU0LiBcdWMyZGNcdWQ1ODkgXHVkNmM0ICRwPVszLCAyLCAxXSQsICRxPVszLCA0LCA1LCAyLCAxXSRcdWM3NzQgXHViNDFjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWI0NTAgXHViYzg4XHVjOWY4IFx1YzJkY1x1ZDU4OVx1YzVkMFx1YzExYyAkaT0yJCwgJGo9NCRcdWI5N2MgXHVjMTIwXHVkMGRkXHVkNTVjXHViMmU0LiBcdWMyZGNcdWQ1ODkgXHVkNmM0ICRwPVsxLCAyLCAzXSQsICRxPVsxLCAyLCAzLCA0LCA1XSRcdWFjMDAgXHViNDFjXHViMmU0LjxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPlx1YzEzOCBcdWJjODhcdWM5ZjggXHVjNjA4XHVjODFjXHVjNWQwXHVjMTFjLCBcdWJhYTlcdWQ0NWNcdWI5N2MgXHViMmVjXHVjMTMxXHVkNTU4XHViMjk0IFx1YWM4M1x1Yzc3NCBcdWJkODhcdWFjMDBcdWIyYTVcdWQ1NjhcdWM3NDQgXHVjOTlkXHViYTg1XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4ifSx7InByb2JsZW1faWQiOiIzMDI0MSIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlR3byBQZXJtdXRhdGlvbnMgKEhhcmQgVmVyc2lvbikiLCJkZXNjcmlwdGlvbiI6IjxwPjxzdHJvbmc+VGhpcyBpcyB0aGUgaGFyZCB2ZXJzaW9uIG9mIHRoZSBwcm9ibGVtLiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0d28gdmVyc2lvbnMgaXMgdGhhdCB5b3UgaGF2ZSB0byBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgaW4gdGhpcyB2ZXJzaW9uLjxcL3N0cm9uZz48XC9wPlxyXG5cclxuPHA+WW91IGhhdmUgdHdvIHBlcm11dGF0aW9ucyRee1xcZGFnZ2VyfSQgJHBfezF9LCBwX3syfSwgXFxsZG90cywgcF97bn0kIChvZiBpbnRlZ2VycyAkMSQgdG8gJG4kKSBhbmQgJHFfezF9LCBxX3syfSwgXFxsZG90cywgcV97bX0kIChvZiBpbnRlZ2VycyAkMSQgdG8gJG0kKS4gSW5pdGlhbGx5ICRwX3tpfT1hX3tpfSQgZm9yICRpPTEsIDIsIFxcbGRvdHMsIG4kLCBhbmQgJHFfe2p9ID0gYl97an0kIGZvciAkaiA9IDEsIDIsIFxcbGRvdHMsIG0kLiBZb3UgY2FuIGFwcGx5IHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uIG9uIHRoZSBwZXJtdXRhdGlvbnMgc2V2ZXJhbCAocG9zc2libHksIHplcm8pIHRpbWVzLjxcL3A+XHJcblxyXG48cD5JbiBvbmUgb3BlcmF0aW9uLCAkcCQgYW5kICRxJCB3aWxsIGNoYW5nZSBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyB0aHJlZSBzdGVwczo8XC9wPlxyXG5cclxuPHA+XFxiZWdpbntpdGVtaXplfTxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlxcaXRlbSBZb3UgY2hvb3NlIGludGVnZXJzICRpJCwgJGokIHdoaWNoIHNhdGlzZnkgJDEgXFxsZSBpIFxcbGUgbiQgYW5kICQxIFxcbGUgaiBcXGxlIG0kLjxcL2xpPlxyXG5cdDxsaT5cXGl0ZW0gUGVybXV0YXRpb24gJHAkIGlzIHBhcnRpdGlvbmVkIGludG8gdGhyZWUgcGFydHMgdXNpbmcgJHBfaSQgYXMgYSBwaXZvdDogdGhlIGxlZnQgcGFydCBpcyBmb3JtZWQgYnkgZWxlbWVudHMgJHBfMSwgcF8yLCBcXGxkb3RzLCBwX3tpLTF9JCAodGhpcyBwYXJ0IG1heSBiZSBlbXB0eSksIHRoZSBtaWRkbGUgcGFydCBpcyB0aGUgc2luZ2xlIGVsZW1lbnQgJHBfaSQsIGFuZCB0aGUgcmlnaHQgcGFydCBpcyAkcF97aSsxfSwgcF97aSsyfSwgXFxsZG90cywgcF9uJCAodGhpcyBwYXJ0IG1heSBiZSBlbXB0eSkuIFRvIHByb2NlZWQsIHN3YXAgdGhlIGxlZnQgYW5kIHRoZSByaWdodCBwYXJ0cyBvZiB0aGlzIHBhcnRpdGlvbi4gRm9ybWFsbHksIGFmdGVyIHRoaXMgc3RlcCwgJHAkIHdpbGwgYmVjb21lICRwX3tpKzF9LCBwX3tpKzJ9LCBcXGxkb3RzLCBwX3tufSwgcF97aX0sIHBfezF9LCBwX3syfSwgXFxsZG90cywgcF97aS0xfSQuIFRoZSBlbGVtZW50cyBvZiB0aGUgbmV3bHkgZm9ybWVkICRwJCB3aWxsIGJlIHJlaW5kZXhlZCBzdGFydGluZyBmcm9tICQxJC48XC9saT5cclxuXHQ8bGk+XFxpdGVtIFBlcmZvcm0gdGhlIHNhbWUgdHJhbnNmb3JtYXRpb24gb24gJHEkIHdpdGggaW5kZXggJGokLiBGb3JtYWxseSwgYWZ0ZXIgdGhpcyBzdGVwLCAkcSQgd2lsbCBiZWNvbWUgJHFfe2orMX0sIHFfe2orMn0sIFxcbGRvdHMsIHFfe219LCBxX3tqfSwgcV97MX0sIHFfezJ9LCBcXGxkb3RzLCBxX3tqLTF9JC4gVGhlIGVsZW1lbnRzIG9mIHRoZSBuZXdseSBmb3JtZWQgJHEkIHdpbGwgYmUgcmVpbmRleGVkIHN0YXJ0aW5nIGZyb20gJDEkLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPllvdXIgZ29hbCBpcyB0byBzaW11bHRhbmVvdXNseSBtYWtlICRwX3tpfT1pJCBmb3IgJGk9MSwgMiwgXFxsZG90cywgbiQsIGFuZCAkcV97an0gPSBqJCBmb3IgJGogPSAxLCAyLCBcXGxkb3RzLCBtJC48XC9wPlxyXG5cclxuPHA+RmluZCBhbnkgd2F5IHRvIGFjaGlldmUgdGhlIGdvYWwgPHN0cm9uZz51c2luZyB0aGUgbWluaW11bSBudW1iZXIgb2Ygb3BlcmF0aW9ucyBwb3NzaWJsZTxcL3N0cm9uZz4sIG9yIHNheSB0aGF0IG5vbmUgZXhpc3RzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSA8c3Ryb25nPmhhdmUgdG88XC9zdHJvbmc+Jm5ic3A7bWluaW1pemUgdGhlIG51bWJlciBvZiBvcGVyYXRpb25zLjxcL3A+XHJcblxyXG48cD4kXntcXGRhZ2dlcn0kIEEgcGVybXV0YXRpb24gb2YgbGVuZ3RoICRrJCBpcyBhbiBhcnJheSBjb25zaXN0aW5nIG9mICRrJCBkaXN0aW5jdCBpbnRlZ2VycyBmcm9tICQxJCB0byAkayQgaW4gYXJiaXRyYXJ5IG9yZGVyLiBGb3IgZXhhbXBsZSwgJFsyLDMsMSw1LDRdJCBpcyBhIHBlcm11dGF0aW9uLCBidXQgJFsxLDIsMl0kIGlzIG5vdCBhIHBlcm11dGF0aW9uICgkMiQgYXBwZWFycyB0d2ljZSBpbiB0aGUgYXJyYXkpLCBhbmQgJFsxLDMsNF0kIGlzIGFsc28gbm90IGEgcGVybXV0YXRpb24gKCRrPTMkIGJ1dCB0aGVyZSBpcyAkNCQgaW4gdGhlIGFycmF5KS48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIGNvbnRhaW5zIHR3byBpbnRlZ2VycyAkbiQgYW5kICRtJCAoJDEgXFxsZSBuLCBtIFxcbGUgMjUwMCQpLjxcL3A+XHJcblxyXG48cD5UaGUgc2Vjb25kIGxpbmUgY29udGFpbnMgJG4kIGludGVnZXJzICRhXzEsIGFfMiwgXFxsZG90cywgYV9uJCAoJDEgXFxsZSBhX2kgXFxsZSBuJCkuPFwvcD5cclxuXHJcbjxwPlRoZSB0aGlyZCBsaW5lIGNvbnRhaW5zICRtJCBpbnRlZ2VycyAkYl8xLCBiXzIsIFxcbGRvdHMsIGJfbSQgKCQxIFxcbGUgYl9pIFxcbGUgbSQpLjxcL3A+XHJcblxyXG48cD5JdCBpcyBndWFyYW50ZWVkIHRoYXQgJGEkIGFuZCAkYiQgYXJlIHBlcm11dGF0aW9ucy48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5JZiB0aGVyZSBpcyBubyBzb2x1dGlvbiwgcHJpbnQgYSBzaW5nbGUgaW50ZWdlciAkLTEkLjxcL3A+XHJcblxyXG48cD5PdGhlcndpc2UsIHByaW50IGFuIGludGVnZXIgJGskIC0tLSB0aGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgdG8gcGVyZm9ybSwgZm9sbG93ZWQgYnkgJGskIGxpbmVzLCBlYWNoIGNvbnRhaW5pbmcgdHdvIGludGVnZXJzICRpJCBhbmQgJGokICgkMSBcXGxlIGkgXFxsZSBuJCwgJDEgXFxsZSBqIFxcbGUgbSQpIC0tLSB0aGUgaW50ZWdlcnMgY2hvc2VuIGZvciB0aGUgb3BlcmF0aW9uLjxcL3A+XHJcblxyXG48cD5JZiB0aGVyZSBhcmUgbXVsdGlwbGUgc29sdXRpb25zLCBwcmludCBhbnkgb2YgdGhlbS48XC9wPlxyXG5cclxuPHA+UGxlYXNlIG5vdGUgdGhhdCB5b3UgPHN0cm9uZz5oYXZlIHRvPFwvc3Ryb25nPiZuYnNwO21pbmltaXplIHRoZSBudW1iZXIgb2Ygb3BlcmF0aW9ucy48XC9wPlxyXG4iLCJoaW50IjoiPHA+SW4gdGhlIGZpcnN0IHRlc3QgY2FzZSwgd2UgY2FuIGFjaGlldmUgdGhlIGdvYWwgd2l0aGluICQyJCBvcGVyYXRpb25zOjxcL3A+XHJcblxyXG48b2w+XHJcblx0PGxpPkluIHRoZSBmaXJzdCBvcGVyYXRpb24sIGNob29zZSAkaSA9IDMkLCAkaiA9IDQkLiBBZnRlciB0aGlzLCAkcCQgYmVjb21lcyAkWzMsIDIsIDFdJCBhbmQgJHEkIGJlY29tZXMgJFszLCA0LCA1LCAyLCAxXSQuPFwvbGk+XHJcblx0PGxpPkluIHRoZSBzZWNvbmQgb3BlcmF0aW9uLCBjaG9vc2UgJGkgPSAyJCwgJGogPSA0JC4gQWZ0ZXIgdGhpcywgJHAkIGJlY29tZXMgJFsxLCAyLCAzXSQgYW5kICRxJCBiZWNvbWVzICRbMSwgMiwgMywgNCwgNV0kLjxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPkluIHRoZSB0aGlyZCB0ZXN0IGNhc2UsIGl0IGlzIGltcG9zc2libGUgdG8gYWNoaWV2ZSB0aGUgZ29hbC48XC9wPlxyXG4iLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=