시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 2 1 1 50.000%

문제

상근이는 매일 아침 신문에 나와있는 스도쿠 퍼즐을 풀면서 희망찬 아침을 시작한다. 어느 날, 퍼즐을 풀다보니 무엇인가 이상한 점을 눈치챘다. 풀고있는 퍼즐이 어제 풀었던 퍼즐을 90도 회전시킨 퍼즐이었기 때문이다. 상근이는 엄청난 배신감을 느꼈다. 물론 퍼즐을 풀기 시작할 때는 이 퍼즐이 어제 풀었던 퍼즐인지 알 수가 없다. 하지만, 점점 숫자를 채우다 보니 알게된 것이었다.

스도쿠 보드는 9×9개의 칸으로 이루어져 있다. 또, 3×3개의 칸은 3×3개의 구역(region)으로 묶여있다. 칸의 일부는 1과 9사이의 숫자로 채워져 있으며, 나머지 칸은 모두 비어있다. 퍼즐의 목표는 비어있는 칸을 1부터 9까지의 숫자로 채워서, 모든 행, 열, 구역에 1부터 9까지 숫자가 딱 한 번씩만 등장하게 하는 것이다. 올바른 스도쿠 퍼즐은 비어있는 칸을 채우는 방법이 항상 한 가지이다.

상근이는 매우 분노해 매일 밤을 술로 지새웠다. 상근이는 더 이상 신문사의 횡포에 당할 수 없다고 생각했다. 그는 오늘 퍼즐이 어제 퍼즐을 간단한 연산을 통해 만든 것인지 아닌지를 확인해보려고 한다.

허용되는 간단한 연산은 아래와 같다.

  1. 퍼즐 전체를 시계방향이나 반시계방향으로 회전시킨다.
  2. 3×9 크기의 열 세그먼트를 교환한다.
  3. 9×3 크기의 행 세그먼트를 교환한다.
  4. 행 또는 열 전체를 교환한다.    
  5. 1부터 9까지 숫자로 이루어진 순열 f를 모든 칸에 적용한다. (즉, 모든 칸의 x를 f(x)로 바꾸는 것)

위의 모든 연산은 스도쿠의 정답에 적용하며, 변환 전에 풀 수 있었던 스도쿠는 변환 후에도 풀 수 있다.

입력

첫째 줄에 테스트 케이스의 개수 N이 주어진다. (0 ≤ N ≤ 50)

테스트 케이스의 처음 9개 줄은 어제 퍼즐의 정답이며, 다음 9개 줄은 오늘 퍼즐이다. 비어있는 칸은 0으로 주어진다.

각 테스트 케이스의 사이에는 빈 줄이 하나씩 주어진다. 어제 퍼즐은 항상 올바른 스도쿠이며, 오늘 퍼즐의 정답도 항상 한 가지이다.

출력

각 테스트 케이스에 대해서, 오늘 퍼즐이 어제 퍼즐의 변형이면 Yes를 아니면 No를 출력한다.

예제 입력 1

2
963174258
178325649
254689731
821437596
496852317
735961824
589713462
317246985
642598173
060104050
200000001
008305600
800407006
006000300
700901004
500000002
040508070
007206900

534678912
672195348
198342567
859761423
426853791
713924856
961537284
287419635
345286179
010900605
025060070
870000902
702050043
000204000
490010508
107000056
040080210
208001090

예제 출력 1

Yes
No
W3sicHJvYmxlbV9pZCI6IjM3MDEiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWMyYTRcdWIzYzRcdWNmZTAgXHViY2MwXHVkNjE1IiwiZGVzY3JpcHRpb24iOiI8cD5cdWMwYzFcdWFkZmNcdWM3NzRcdWIyOTQgXHViOWU0XHVjNzdjIFx1YzU0NFx1Y2U2OCBcdWMyZTBcdWJiMzhcdWM1ZDAgXHViMDk4XHVjNjQwXHVjNzg4XHViMjk0IFx1YzJhNFx1YjNjNFx1Y2ZlMCBcdWQzN2NcdWM5OTBcdWM3NDQgXHVkNDgwXHViYTc0XHVjMTFjIFx1ZDc2Y1x1YjlkZFx1Y2MyYyBcdWM1NDRcdWNlNjhcdWM3NDQgXHVjMmRjXHVjNzkxXHVkNTVjXHViMmU0LiBcdWM1YjRcdWIyOTAgXHViMGEwLCBcdWQzN2NcdWM5OTBcdWM3NDQgXHVkNDgwXHViMmU0XHViY2Y0XHViMmM4IFx1YmIzNFx1YzVjN1x1Yzc3OFx1YWMwMCBcdWM3NzRcdWMwYzFcdWQ1NWMgXHVjODEwXHVjNzQ0IFx1YjIwOFx1Y2U1OFx1Y2M1OFx1YjJlNC4gXHVkNDgwXHVhY2UwXHVjNzg4XHViMjk0IFx1ZDM3Y1x1Yzk5MFx1Yzc3NCBcdWM1YjRcdWM4MWMgXHVkNDgwXHVjNWM4XHViMzU4IFx1ZDM3Y1x1Yzk5MFx1Yzc0NCA5MFx1YjNjNCBcdWQ2OGNcdWM4MDRcdWMyZGNcdWQwYTggXHVkMzdjXHVjOTkwXHVjNzc0XHVjNWM4XHVhZTMwIFx1YjU0Y1x1YmIzOFx1Yzc3NFx1YjJlNC4gXHVjMGMxXHVhZGZjXHVjNzc0XHViMjk0IFx1YzVjNFx1Y2NhZFx1YjA5YyBcdWJjMzBcdWMyZTBcdWFjMTBcdWM3NDQgXHViMjkwXHVhZjA4XHViMmU0LiBcdWJiM2NcdWI4NjAgXHVkMzdjXHVjOTkwXHVjNzQ0IFx1ZDQ4MFx1YWUzMCBcdWMyZGNcdWM3OTFcdWQ1NjAgXHViNTRjXHViMjk0IFx1Yzc3NCBcdWQzN2NcdWM5OTBcdWM3NzQgXHVjNWI0XHVjODFjIFx1ZDQ4MFx1YzVjOFx1YjM1OCBcdWQzN2NcdWM5OTBcdWM3NzhcdWM5YzAgXHVjNTRjIFx1YzIxOFx1YWMwMCBcdWM1YzZcdWIyZTQuIFx1ZDU1OFx1YzljMFx1YjljYywgXHVjODEwXHVjODEwIFx1YzIyYlx1Yzc5MFx1Yjk3YyBcdWNjNDRcdWM2YjBcdWIyZTQgXHViY2Y0XHViMmM4IFx1YzU0Y1x1YWM4Y1x1YjQxYyBcdWFjODNcdWM3NzRcdWM1YzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvc2RrKDEpLnBuZ1wiIHN0eWxlPVwiZmxvYXQ6cmlnaHQ7IGhlaWdodDoxOTlweDsgd2lkdGg6MjY0cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHVjMmE0XHViM2M0XHVjZmUwIFx1YmNmNFx1YjRkY1x1YjI5NCA5JnRpbWVzOzlcdWFjMWNcdWM3NTggXHVjZTc4XHVjNzNjXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWIyZTQuIFx1YjYxMCwgMyZ0aW1lczszXHVhYzFjXHVjNzU4IFx1Y2U3OFx1Yzc0MCAzJnRpbWVzOzNcdWFjMWNcdWM3NTggXHVhZDZjXHVjNWVkKHJlZ2lvbilcdWM3M2NcdWI4NWMgXHViYjM2XHVjNWVjXHVjNzg4XHViMmU0LiBcdWNlNzhcdWM3NTggXHVjNzdjXHViZDgwXHViMjk0IDFcdWFjZmMgOVx1YzBhY1x1Yzc3NFx1Yzc1OCBcdWMyMmJcdWM3OTBcdWI4NWMgXHVjYzQ0XHVjNmNjXHVjODM4IFx1Yzc4OFx1YzczY1x1YmE3MCwgXHViMDk4XHViYTM4XHVjOWMwIFx1Y2U3OFx1Yzc0MCBcdWJhYThcdWI0NTAgXHViZTQ0XHVjNWI0XHVjNzg4XHViMmU0LiBcdWQzN2NcdWM5OTBcdWM3NTggXHViYWE5XHVkNDVjXHViMjk0IFx1YmU0NFx1YzViNFx1Yzc4OFx1YjI5NCBcdWNlNzhcdWM3NDQgMVx1YmQ4MFx1ZDEzMCA5XHVhZTRjXHVjOWMwXHVjNzU4IFx1YzIyYlx1Yzc5MFx1Yjg1YyBcdWNjNDRcdWM2Y2NcdWMxMWMsIFx1YmFhOFx1YjRlMCBcdWQ1ODksIFx1YzVmNCwgXHVhZDZjXHVjNWVkXHVjNWQwIDFcdWJkODBcdWQxMzAgOVx1YWU0Y1x1YzljMCBcdWMyMmJcdWM3OTBcdWFjMDAgXHViNTMxIFx1ZDU1YyBcdWJjODhcdWM1MjlcdWI5Y2MgXHViNGYxXHVjN2E1XHVkNTU4XHVhYzhjIFx1ZDU1OFx1YjI5NCBcdWFjODNcdWM3NzRcdWIyZTQuIFx1YzYyY1x1YmMxNFx1Yjk3OCBcdWMyYTRcdWIzYzRcdWNmZTAgXHVkMzdjXHVjOTkwXHVjNzQwIFx1YmU0NFx1YzViNFx1Yzc4OFx1YjI5NCBcdWNlNzhcdWM3NDQgXHVjYzQ0XHVjNmIwXHViMjk0IFx1YmMyOVx1YmM5NVx1Yzc3NCBcdWQ1NmRcdWMwYzEgXHVkNTVjIFx1YWMwMFx1YzljMFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjMGMxXHVhZGZjXHVjNzc0XHViMjk0IFx1YjllNFx1YzZiMCBcdWJkODRcdWIxNzhcdWQ1NzQgXHViOWU0XHVjNzdjIFx1YmMyNFx1Yzc0NCBcdWMyMjBcdWI4NWMgXHVjOWMwXHVjMGM4XHVjNmUwXHViMmU0LiBcdWMwYzFcdWFkZmNcdWM3NzRcdWIyOTQgXHViMzU0IFx1Yzc3NFx1YzBjMSBcdWMyZTBcdWJiMzhcdWMwYWNcdWM3NTggXHVkNmExXHVkM2VjXHVjNWQwIFx1YjJmOVx1ZDU2MCBcdWMyMTggXHVjNWM2XHViMmU0XHVhY2UwIFx1YzBkZFx1YWMwMVx1ZDU4OFx1YjJlNC4gXHVhZGY4XHViMjk0IFx1YzYyNFx1YjI5OCBcdWQzN2NcdWM5OTBcdWM3NzQgXHVjNWI0XHVjODFjIFx1ZDM3Y1x1Yzk5MFx1Yzc0NCBcdWFjMDRcdWIyZThcdWQ1NWMgXHVjNWYwXHVjMGIwXHVjNzQ0IFx1ZDFiNVx1ZDU3NCBcdWI5Y2NcdWI0ZTAgXHVhYzgzXHVjNzc4XHVjOWMwIFx1YzU0NFx1YjJjY1x1YzljMFx1Yjk3YyBcdWQ2NTVcdWM3NzhcdWQ1NzRcdWJjZjRcdWI4MjRcdWFjZTAgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWQ1YzhcdWM2YTlcdWI0MThcdWIyOTQgXHVhYzA0XHViMmU4XHVkNTVjIFx1YzVmMFx1YzBiMFx1Yzc0MCBcdWM1NDRcdWI3OThcdWM2NDAgXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48b2w+XHJcblx0PGxpPlx1ZDM3Y1x1Yzk5MCBcdWM4MDRcdWNjYjRcdWI5N2MgXHVjMmRjXHVhY2M0XHViYzI5XHVkNWE1XHVjNzc0XHViMDk4IFx1YmMxOFx1YzJkY1x1YWNjNFx1YmMyOVx1ZDVhNVx1YzczY1x1Yjg1YyBcdWQ2OGNcdWM4MDRcdWMyZGNcdWQwYThcdWIyZTQuPFwvbGk+XHJcblx0PGxpPjMmdGltZXM7OSBcdWQwNmNcdWFlMzBcdWM3NTggXHVjNWY0IFx1YzEzOFx1YWRmOFx1YmEzY1x1ZDJiOFx1Yjk3YyBcdWFkNTBcdWQ2NThcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPjkmdGltZXM7MyBcdWQwNmNcdWFlMzBcdWM3NTggXHVkNTg5IFx1YzEzOFx1YWRmOFx1YmEzY1x1ZDJiOFx1Yjk3YyBcdWFkNTBcdWQ2NThcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1ZDU4OSBcdWI2MTBcdWIyOTQgXHVjNWY0IFx1YzgwNFx1Y2NiNFx1Yjk3YyBcdWFkNTBcdWQ2NThcdWQ1NWNcdWIyZTQuJm5ic3A7Jm5ic3A7ICZuYnNwOzxcL2xpPlxyXG5cdDxsaT4xXHViZDgwXHVkMTMwIDlcdWFlNGNcdWM5YzAgXHVjMjJiXHVjNzkwXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWMyMWNcdWM1ZjQgZlx1Yjk3YyBcdWJhYThcdWI0ZTAgXHVjZTc4XHVjNWQwIFx1YzgwMVx1YzZhOVx1ZDU1Y1x1YjJlNC4gKFx1Yzk4OSwgXHViYWE4XHViNGUwIFx1Y2U3OFx1Yzc1OCB4XHViOTdjIGYoeClcdWI4NWMgXHViYzE0XHVhZmI4XHViMjk0IFx1YWM4Myk8XC9saT5cclxuPFwvb2w+XHJcblxyXG48cD5cdWM3MDRcdWM3NTggXHViYWE4XHViNGUwIFx1YzVmMFx1YzBiMFx1Yzc0MCBcdWMyYTRcdWIzYzRcdWNmZTBcdWM3NTggXHVjODE1XHViMmY1XHVjNWQwIFx1YzgwMVx1YzZhOVx1ZDU1OFx1YmE3MCwgXHViY2MwXHVkNjU4IFx1YzgwNFx1YzVkMCBcdWQ0ODAgXHVjMjE4IFx1Yzc4OFx1YzVjOFx1YjM1OCBcdWMyYTRcdWIzYzRcdWNmZTBcdWIyOTQgXHViY2MwXHVkNjU4IFx1ZDZjNFx1YzVkMFx1YjNjNCBcdWQ0ODAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWFjMWNcdWMyMTggTlx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuICgwICZsZTsgTiAmbGU7IDUwKTxcL3A+XHJcblxyXG48cD5cdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1Y2M5OFx1Yzc0YyA5XHVhYzFjIFx1YzkwNFx1Yzc0MCBcdWM1YjRcdWM4MWMgXHVkMzdjXHVjOTkwXHVjNzU4IFx1YzgxNVx1YjJmNVx1Yzc3NFx1YmE3MCwgXHViMmU0XHVjNzRjIDlcdWFjMWMgXHVjOTA0XHVjNzQwIFx1YzYyNFx1YjI5OCBcdWQzN2NcdWM5OTBcdWM3NzRcdWIyZTQuIFx1YmU0NFx1YzViNFx1Yzc4OFx1YjI5NCBcdWNlNzhcdWM3NDAgMFx1YzczY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YzBhY1x1Yzc3NFx1YzVkMFx1YjI5NCBcdWJlNDggXHVjOTA0XHVjNzc0IFx1ZDU1OFx1YjA5OFx1YzUyOSBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YzViNFx1YzgxYyBcdWQzN2NcdWM5OTBcdWM3NDAgXHVkNTZkXHVjMGMxIFx1YzYyY1x1YmMxNFx1Yjk3OCBcdWMyYTRcdWIzYzRcdWNmZTBcdWM3NzRcdWJhNzAsIFx1YzYyNFx1YjI5OCBcdWQzN2NcdWM5OTBcdWM3NTggXHVjODE1XHViMmY1XHViM2M0IFx1ZDU2ZFx1YzBjMSBcdWQ1NWMgXHVhYzAwXHVjOWMwXHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExYywgXHVjNjI0XHViMjk4IFx1ZDM3Y1x1Yzk5MFx1Yzc3NCBcdWM1YjRcdWM4MWMgXHVkMzdjXHVjOTkwXHVjNzU4IFx1YmNjMFx1ZDYxNVx1Yzc3NFx1YmE3NCBZZXNcdWI5N2MgXHVjNTQ0XHViMmM4XHViYTc0IE5vXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIzNzAxIiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiU3Vkb2t1IiwiZGVzY3JpcHRpb24iOiI8cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3NkaygxKS5wbmdcIiBzdHlsZT1cImZsb2F0OnJpZ2h0OyBoZWlnaHQ6MTk5cHg7IHdpZHRoOjI2NHB4XCIgXC8+T2ggbm8hIEJpbGwganVzdCByZWFsaXplZCB0aGF0IHRoZSBzdWRva3UgcHV6emxlIGhlIGhhZCBzcGVudCB0aGUgbGFzdCB0ZW4gbWludXRlcyB0cnlpbmcgdG8gc29sdmUgZXNzZW50aWFsbHkgd2FzIGxhc3Qgd2VlayZyc3F1bztzIHB1enpsZSwgb25seSByb3RhdGVkIGNvdW50ZXJjbG9ja3dpc2UuIEhvdyBjaGVhcCEgQ291bGRuJnJzcXVvO3QgdGhlIG1hZ2F6aW5lIGFmZm9yZCB0byBtYWtlIGEgbmV3IG9uZSBldmVyeSB3ZWVrPyBPZiBjb3Vyc2UsIGhlIGhhZCBubyB3YXkgb2Yga25vd2luZyBhYm91dCB0aGlzIGJlZm9yZSBoZSBzdGFydGVkIHRvIHNvbHZlIGl0LCBhcyB0aGUgaG9sZXMgdG8gZmlsbCB3aXRoIGRpZ2l0cyB3ZXJlIG90aGVyIHRoYW4gbGFzdCB3ZWVrLiBOZXZlcnRoZWxlc3MsIHJlYWxpemluZyB0aGF0IHRoaXMgd2VlayZyc3F1bztzIHB1enpsZSB3YXMgYSBzaW1wbGUgZGVyaXZhdGl2ZSBvZiBsYXN0IHdlZWsmcnNxdW87cyBjZXJ0YWlubHkgdG9vayB0aGUgZnVuIG91dCBvZiBzb2x2aW5nIHRoZSByZXN0IG9mIGl0LjxcL3A+XHJcblxyXG48cD5UaGUgc3Vkb2t1IGJvYXJkIGNvbnNpc3RzIG9mIDkmdGltZXM7OSBjZWxscy4gVGhlc2UgY2FuIGJlIGdyb3VwZWQgaW50byAzJnRpbWVzOzMgcmVnaW9ucyBvZiAzJnRpbWVzOzMgY2VsbHMgZWFjaC4gU29tZSBvZiB0aGUgY2VsbHMgYXJlIGZpbGxlZCB3aXRoIGEgZGlnaXQgMSB0aHJvdWdoIDkgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlbSBhcmUgbGVmdCBlbXB0eS4gVGhlIGFpbSBvZiB0aGUgZ2FtZSBpcyB0byBmaWxsIGVhY2ggZW1wdHkgY2VsbCB3aXRoIGEgZGlnaXQgMSAuLi4gOSBzbyB0aGF0IGV2ZXJ5IHJvdywgZXZlcnkgY29sdW1uIGFuZCBldmVyeSByZWdpb24gY29udGFpbnMgZWFjaCBvZiB0aGUgbnVtYmVycyAxIC4uLiA5IGV4YWN0bHkgb25jZS4gQSBwcm9wZXIgc3Vkb2t1IHB1enpsZSBhbHdheXMgaGFzIGV4YWN0bHkgb25lIHNvbHV0aW9uLjxcL3A+XHJcblxyXG48cD5IZWxwIEJpbGwgYXZvaWQgdW5wbGVhc2FudCBzdXJwcmlzZXMgYnkgY3JlYXRpbmcgYSBwcm9ncmFtIHRoYXQgY2hlY2tzIHdoZXRoZXIgYW4gdW5zb2x2ZWQgc3Vkb2t1IHB1enpsZSBpcyBpbiBmYWN0IGRlcml2ZWQgZnJvbSBhbiBlYXJsaWVyIHB1enpsZSBieSBzaW1wbGUgb3BlcmF0aW9ucy48XC9wPlxyXG5cclxuPHA+VGhlIGFsbG93ZWQgb3BlcmF0aW9ucyBhcmU6PFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+Um90YXRpbmcgdGhlIGVudGlyZSBwdXp6bGUgY2xvY2t3aXNlIG9yIGNvdW50ZXJjbG9ja3dpc2UuPFwvbGk+XHJcblx0PGxpPlN3YXBwaW5nIHR3byBjb2x1bW5zIHdpdGhpbiBhIDMmdGltZXM7OSBjb2x1bW4gc2VnbWVudC48XC9saT5cclxuXHQ8bGk+U3dhcHBpbmcgdHdvIHJvd3Mgd2l0aGluIGEgOSZ0aW1lczszIHJvdyBzZWdtZW50LjxcL2xpPlxyXG5cdDxsaT5Td2FwcGluZyBlbnRpcmUgcm93IG9yIGNvbHVtbiBzZWdtZW50cy48XC9saT5cclxuXHQ8bGk+QXBwbHlpbmcgYSBwZXJtdXRhdGlvbiBmIG9mIHRoZSBkaWdpdHMgMSAuLi4gOSB0byBldmVyeSBjZWxsIChpLmUuIHJlcGxhY2UgeCBieSBmKHgpIGluIGV2ZXJ5IGNlbGwpLjxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPkFuIG9wZXJhdGlvbiBpcyBjb25zaWRlcmVkIGJlaW5nIHBlcmZvcm1lZCBvbiB0aGUgc3Vkb2t1IHNvbHV0aW9uIChyYXRoZXIgdGhhbiBvbiB0aGUgdW5zb2x2ZWQgcHV6emxlKSBhbmQgYWx3YXlzIGd1YXJhbnRlZXMgdGhhdCBpZiB0aGUgYm9hcmQgYmVmb3JlIHRoZSB0cmFuc2Zvcm1hdGlvbiB3YXMgYSBzb2x1dGlvbiB0byBhIHN1ZG9rdSBwdXp6bGUsIGl0IHN0aWxsIGlzIGFmdGVyd2FyZHMuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgaW5wdXQgc3RhcnRzIHdpdGggdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzIDAgJmxlOyBOICZsZTsgNTAgb24gYSBzaW5nbGUgbGluZS48XC9wPlxyXG5cclxuPHA+VGhlbiBmb3IgZXZlcnkgdGVzdCBjYXNlIGZvbGxvdyBuaW5lIGxpbmVzIGRlc2NyaWJpbmcgbGFzdCB3ZWVrJnJzcXVvO3MgcHV6emxlIHNvbHV0aW9uLCBmcm9tIHRvcCB0byBib3R0b20uIEVhY2ggbGluZSBjb3JyZXNwb25kcyB0byBhIHJvdyBpbiB0aGUgcHV6emxlIGFuZCBjb25zaXN0cyBvZiBuaW5lIGRpZ2l0cyAoMSAuLi4gOSksIGRlc2NyaWJpbmcgdGhlIGNvbnRlbnRzIG9mIHRoZSBjZWxsIGZyb20gbGVmdCB0byByaWdodC48XC9wPlxyXG5cclxuPHA+TGFzdCB3ZWVrJnJzcXVvO3Mgc29sdXRpb24gaXMgZm9sbG93ZWQgYnkgbmluZSBsaW5lcyBkZXNjcmliaW5nIHRoaXMgd2VlayZyc3F1bztzIHVuc29sdmVkIHB1enpsZS4gSGVyZSwgYWxzbywgZXZlcnkgbGluZSBjb3JyZXNwb25kcyB0byBhIHB1enpsZSByb3cgYW5kIGV2ZXJ5IGRpZ2l0ICgwIC4uLiA5KSBkZXNjcmliZXMgdGhlIGNvbnRlbnRzIG9mIGEgY2VsbC4gMCBpbmRpY2F0ZXMgdGhhdCB0aGUgY2VsbCBpcyBlbXB0eS4gVGhlIHJvd3MgYXJlIHByZXNlbnRlZCBvcmRlcmVkIGZyb20gdG9wIHRvIGJvdHRvbSwgYW5kIHdpdGhpbiBlYWNoIHJvdywgdGhlIGNlbGxzIGFyZSBvcmRlcmVkIGZyb20gbGVmdCB0byByaWdodC48XC9wPlxyXG5cclxuPHA+QWZ0ZXIgZXZlcnkgdGVzdCBjYXNlIGV4Y2VwdCB0aGUgbGFzdCBvbmUgZm9sbG93cyBhIGJsYW5rIGxpbmUuIEV2ZXJ5IHVuc29sdmVkIHB1enpsZSBpcyBndWFyYW50ZWVkIHRvIGJlIHVuaXF1ZWx5IHNvbHZhYmxlIGFuZCBsYXN0IHdlZWsmcnNxdW87cyBzb2x1dGlvbiBpcyBhbHdheXMgYSBwcm9wZXIgc3Vkb2t1IHNvbHV0aW9uLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBldmVyeSB0ZXN0IGNhc2UsIG91dHB1dCBZZXMgaWYgdGhlIHN1ZG9rdSBwdXp6bGUgY2FuIGJlIGRlcml2ZWQgZnJvbSB0aGUgZ2l2ZW4gc29sdmVkIHB1enpsZSB1c2luZyB0aGUgYWxsb3dlZCBvcGVyYXRpb25zLCBvciBObyBpZiB0aGlzIGlzIG5vdCBwb3NzaWJsZS48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWM2MDFcdWM1YjQifV0=