시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 258 31 26 15.569%

문제

이 모든 사건의 시작은 2주 전이었다. 그 날 상근이는 복도에 누워서 잠을 자고 있었다. 커다란 돌을 들고 그 옆을 지나가던 민혁이는 복도에서 잠을 자는 사람을 처음봐서 신기하게 쳐다보고 있었다. 그 때였다. 들고 있던 돌을 상근이의 왼 발에 떨어뜨렸다. 상근이는 응급실로 실려갔고, 한 달 동안 침대에 누워서 휴식을 취해야 한다는 진단을 받았다. 민혁이는 미안한 마음에 하던 일을 모두 중단하고 상근이를 간호하기로 했다.

상근이는 2주 동안 온라인 저지 문제를 풀었다. 2주 동안 문제를 풀다보니 게임을 하고 싶어졌고, 마침 민혁이를 이용해서 게임을 하기로 했다.

상근이의 게임은 R×C 보드를 세워놓은 상태에서 진행한다. 맨 처음에 각 정사각형 칸은 비어있거나 벽으로 막혀있다. 상근이는 민혁이에게 돌을 떨어놓을 열을 지시하고, 민혁이는 가장 윗 행의 그 열에 돌을 놓는다. 돌을 놓은 이후에는 중력에 의해서 돌이 떨어지게 된다.

돌에 작용하는 중력은 다음과 같다.

  1. 돌의 아랫칸이 벽으로 막혀있거나 가장 아랫줄이라면, 돌은 그 자리에 그대로 멈춰 있는다.
  2. 돌의 아랫칸이 비어있다면, 돌은 아랫칸으로 이동한다.
  3. 돌의 아랫칸에 돌이 있다면, 돌은 다음과 같이 미끄러진다.
    1. 만약 돌의 왼쪽 칸과 왼쪽-아래 칸이 비어있다면, 돌은 왼쪽으로 미끄러진다.
    2. 만약 돌이 왼쪽으로 미끄러지지 않았고, 오른쪽 칸과 오른쪽-아래 칸이 비어있다면, 돌은 오른쪽으로 미끄러진다.
    3. 위의 두 경욱 아니라면 돌은 그 자리에 멈추고, 다시는 움직이지 않는다.

민혁이는 돌의 이동이 멈춘 이후에 다른 돌을 던지기 시작한다.

보드의 초기 상태와 민혁이가 돌을 놓은 열의 번호가 순서대로 가 주어졌을 때, 모든 돌을 던진 이후에 보드의 상태를 구하는 프로그램을 작성하시오.

민혁이는 항상 제일 윗 칸이 비어있는 칸에만 돌을 던진다. 

입력

첫째 줄에 보드의 크기 R과 C가 주어진다. (1 ≤ R ≤ 30,000, 1 ≤ C ≤ 30)

다음 R개 줄에는 C개의 문자가 주어지며, 보드의 초기 상태이다. '.'는 빈 칸, 'X'는 벽으로 막힌 곳을 나타낸다.

다음 줄에는 돌을 던친 횟수 N이 주어진다. (1 ≤ N ≤ 100,000)

다음 N개 줄에는 돌을 던진 열의 위치가 순서대로 주어진다. (가장 왼쪽 열의 번호는 1번)

출력

총 R개 줄에 걸쳐서 보드의 게임이 모두 끝난 후의 상태를 출력한다. 돌은 'O'로 출력한다.

예제 입력 1

5 4
....
....
X...
....
....
4
1
1
1
1

예제 출력 1

....
O...
X...
....
OOO.
W3sicHJvYmxlbV9pZCI6IjMwMjUiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWIzY2MgXHViMzU4XHVjOWMwXHVhZTMwIiwiZGVzY3JpcHRpb24iOiI8cD5cdWM3NzQgXHViYWE4XHViNGUwIFx1YzBhY1x1YWM3NFx1Yzc1OCBcdWMyZGNcdWM3OTFcdWM3NDAgMlx1YzhmYyBcdWM4MDRcdWM3NzRcdWM1YzhcdWIyZTQuIFx1YWRmOCBcdWIwYTAgXHVjMGMxXHVhZGZjXHVjNzc0XHViMjk0IFx1YmNmNVx1YjNjNFx1YzVkMCBcdWIyMDRcdWM2Y2NcdWMxMWMgXHVjN2EwXHVjNzQ0IFx1Yzc5MFx1YWNlMCBcdWM3ODhcdWM1YzhcdWIyZTQuIFx1Y2VlNFx1YjJlNFx1Yjc4MCBcdWIzY2NcdWM3NDQgXHViNGU0XHVhY2UwIFx1YWRmOCBcdWM2MDZcdWM3NDQgXHVjOWMwXHViMDk4XHVhYzAwXHViMzU4IFx1YmJmY1x1ZDYwMVx1Yzc3NFx1YjI5NCBcdWJjZjVcdWIzYzRcdWM1ZDBcdWMxMWMgXHVjN2EwXHVjNzQ0IFx1Yzc5MFx1YjI5NCBcdWMwYWNcdWI3OGNcdWM3NDQgXHVjYzk4XHVjNzRjXHViZDEwXHVjMTFjIFx1YzJlMFx1YWUzMFx1ZDU1OFx1YWM4YyBcdWNjZDBcdWIyZTRcdWJjZjRcdWFjZTAgXHVjNzg4XHVjNWM4XHViMmU0LiBcdWFkZjggXHViNTRjXHVjNjAwXHViMmU0LiBcdWI0ZTRcdWFjZTAgXHVjNzg4XHViMzU4IFx1YjNjY1x1Yzc0NCBcdWMwYzFcdWFkZmNcdWM3NzRcdWM3NTggXHVjNjdjIFx1YmMxY1x1YzVkMCBcdWI1YThcdWM1YjRcdWI3MjhcdWI4MzhcdWIyZTQuIFx1YzBjMVx1YWRmY1x1Yzc3NFx1YjI5NCBcdWM3NTFcdWFlMDlcdWMyZTRcdWI4NWMgXHVjMmU0XHViODI0XHVhYzE0XHVhY2UwLCBcdWQ1NWMgXHViMmVjIFx1YjNkOVx1YzU0OCBcdWNlNjhcdWIzMDBcdWM1ZDAgXHViMjA0XHVjNmNjXHVjMTFjIFx1ZDczNFx1YzJkZFx1Yzc0NCBcdWNkZThcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0XHViMjk0IFx1YzljNFx1YjJlOFx1Yzc0NCBcdWJjMWJcdWM1NThcdWIyZTQuIFx1YmJmY1x1ZDYwMVx1Yzc3NFx1YjI5NCBcdWJiZjhcdWM1NDhcdWQ1NWMgXHViOWM4XHVjNzRjXHVjNWQwIFx1ZDU1OFx1YjM1OCBcdWM3N2NcdWM3NDQgXHViYWE4XHViNDUwIFx1YzkxMVx1YjJlOFx1ZDU1OFx1YWNlMCBcdWMwYzFcdWFkZmNcdWM3NzRcdWI5N2MgXHVhYzA0XHVkNjM4XHVkNTU4XHVhZTMwXHViODVjIFx1ZDU4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjMGMxXHVhZGZjXHVjNzc0XHViMjk0IDJcdWM4ZmMgXHViM2Q5XHVjNTQ4IFx1YzYyOFx1Yjc3Y1x1Yzc3OCBcdWM4MDBcdWM5YzAgXHViYjM4XHVjODFjXHViOTdjIFx1ZDQ4MFx1YzVjOFx1YjJlNC4gMlx1YzhmYyBcdWIzZDlcdWM1NDggXHViYjM4XHVjODFjXHViOTdjIFx1ZDQ4MFx1YjJlNFx1YmNmNFx1YjJjOCBcdWFjOGNcdWM3ODRcdWM3NDQgXHVkNTU4XHVhY2UwIFx1YzJmNlx1YzViNFx1Yzg0Y1x1YWNlMCwgXHViOWM4XHVjZTY4IFx1YmJmY1x1ZDYwMVx1Yzc3NFx1Yjk3YyBcdWM3NzRcdWM2YTlcdWQ1NzRcdWMxMWMgXHVhYzhjXHVjNzg0XHVjNzQ0IFx1ZDU1OFx1YWUzMFx1Yjg1YyBcdWQ1ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzBjMVx1YWRmY1x1Yzc3NFx1Yzc1OCBcdWFjOGNcdWM3ODRcdWM3NDAgUiZ0aW1lcztDIFx1YmNmNFx1YjRkY1x1Yjk3YyBcdWMxMzhcdWM2Y2NcdWIxOTNcdWM3NDAgXHVjMGMxXHVkMGRjXHVjNWQwXHVjMTFjIFx1YzljNFx1ZDU4OVx1ZDU1Y1x1YjJlNC4gXHViOWU4IFx1Y2M5OFx1Yzc0Y1x1YzVkMCBcdWFjMDEgXHVjODE1XHVjMGFjXHVhYzAxXHVkNjE1IFx1Y2U3OFx1Yzc0MCBcdWJlNDRcdWM1YjRcdWM3ODhcdWFjNzBcdWIwOTggXHViY2JkXHVjNzNjXHViODVjIFx1YjljOVx1ZDYwMFx1Yzc4OFx1YjJlNC4gXHVjMGMxXHVhZGZjXHVjNzc0XHViMjk0IFx1YmJmY1x1ZDYwMVx1Yzc3NFx1YzVkMFx1YWM4YyBcdWIzY2NcdWM3NDQgXHViNWE4XHVjNWI0XHViMTkzXHVjNzQ0IFx1YzVmNFx1Yzc0NCBcdWM5YzBcdWMyZGNcdWQ1NThcdWFjZTAsIFx1YmJmY1x1ZDYwMVx1Yzc3NFx1YjI5NCBcdWFjMDBcdWM3YTUgXHVjNzE3IFx1ZDU4OVx1Yzc1OCBcdWFkZjggXHVjNWY0XHVjNWQwIFx1YjNjY1x1Yzc0NCBcdWIxOTNcdWIyOTRcdWIyZTQuIFx1YjNjY1x1Yzc0NCBcdWIxOTNcdWM3NDAgXHVjNzc0XHVkNmM0XHVjNWQwXHViMjk0IFx1YzkxMVx1YjgyNVx1YzVkMCBcdWM3NThcdWQ1NzRcdWMxMWMgXHViM2NjXHVjNzc0IFx1YjVhOFx1YzViNFx1YzljMFx1YWM4YyBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjNjY1x1YzVkMCBcdWM3OTFcdWM2YTlcdWQ1NThcdWIyOTQgXHVjOTExXHViODI1XHVjNzQwIFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+XHViM2NjXHVjNzU4IFx1YzU0NFx1YjdhYlx1Y2U3OFx1Yzc3NCBcdWJjYmRcdWM3M2NcdWI4NWMgXHViOWM5XHVkNjAwXHVjNzg4XHVhYzcwXHViMDk4IFx1YWMwMFx1YzdhNSBcdWM1NDRcdWI3YWJcdWM5MDRcdWM3NzRcdWI3N2NcdWJhNzQsIFx1YjNjY1x1Yzc0MCBcdWFkZjggXHVjNzkwXHViOWFjXHVjNWQwIFx1YWRmOFx1YjMwMFx1Yjg1YyBcdWJhNDhcdWNkYjAgXHVjNzg4XHViMjk0XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWIzY2NcdWM3NTggXHVjNTQ0XHViN2FiXHVjZTc4XHVjNzc0IFx1YmU0NFx1YzViNFx1Yzc4OFx1YjJlNFx1YmE3NCwgXHViM2NjXHVjNzQwIFx1YzU0NFx1YjdhYlx1Y2U3OFx1YzczY1x1Yjg1YyBcdWM3NzRcdWIzZDlcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1YjNjY1x1Yzc1OCBcdWM1NDRcdWI3YWJcdWNlNzhcdWM1ZDAgXHViM2NjXHVjNzc0IFx1Yzc4OFx1YjJlNFx1YmE3NCwgXHViM2NjXHVjNzQwIFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NzQgXHViYmY4XHViMDQ0XHViN2VjXHVjOWM0XHViMmU0LlxyXG5cdDxvbD5cclxuXHRcdDxsaT5cdWI5Y2NcdWM1N2QgXHViM2NjXHVjNzU4IFx1YzY3Y1x1Y2FiZCBcdWNlNzhcdWFjZmMgXHVjNjdjXHVjYWJkLVx1YzU0NFx1Yjc5OCBcdWNlNzhcdWM3NzQgXHViZTQ0XHVjNWI0XHVjNzg4XHViMmU0XHViYTc0LCBcdWIzY2NcdWM3NDAgXHVjNjdjXHVjYWJkXHVjNzNjXHViODVjIFx1YmJmOFx1YjA0NFx1YjdlY1x1YzljNFx1YjJlNC48XC9saT5cclxuXHRcdDxsaT5cdWI5Y2NcdWM1N2QgXHViM2NjXHVjNzc0IFx1YzY3Y1x1Y2FiZFx1YzczY1x1Yjg1YyBcdWJiZjhcdWIwNDRcdWI3ZWNcdWM5YzBcdWM5YzAgXHVjNTRhXHVjNTU4XHVhY2UwLCBcdWM2MjRcdWI5NzhcdWNhYmQgXHVjZTc4XHVhY2ZjIFx1YzYyNFx1Yjk3OFx1Y2FiZC1cdWM1NDRcdWI3OTggXHVjZTc4XHVjNzc0IFx1YmU0NFx1YzViNFx1Yzc4OFx1YjJlNFx1YmE3NCwgXHViM2NjXHVjNzQwIFx1YzYyNFx1Yjk3OFx1Y2FiZFx1YzczY1x1Yjg1YyBcdWJiZjhcdWIwNDRcdWI3ZWNcdWM5YzRcdWIyZTQuPFwvbGk+XHJcblx0XHQ8bGk+XHVjNzA0XHVjNzU4IFx1YjQ1MCBcdWFjYmRcdWM2YjEgXHVjNTQ0XHViMmM4XHViNzdjXHViYTc0IFx1YjNjY1x1Yzc0MCBcdWFkZjggXHVjNzkwXHViOWFjXHVjNWQwIFx1YmE0OFx1Y2Q5NFx1YWNlMCwgXHViMmU0XHVjMmRjXHViMjk0IFx1YzZjMFx1YzljMVx1Yzc3NFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuPFwvbGk+XHJcblx0PFwvb2w+XHJcblx0PFwvbGk+XHJcbjxcL29sPlxyXG5cclxuPHA+XHViYmZjXHVkNjAxXHVjNzc0XHViMjk0IFx1YjNjY1x1Yzc1OCBcdWM3NzRcdWIzZDlcdWM3NzQgXHViYTQ4XHVjZDk4IFx1Yzc3NFx1ZDZjNFx1YzVkMCBcdWIyZTRcdWI5NzggXHViM2NjXHVjNzQ0IFx1YjM1OFx1YzljMFx1YWUzMCBcdWMyZGNcdWM3OTFcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YmNmNFx1YjRkY1x1Yzc1OCBcdWNkMDhcdWFlMzAgXHVjMGMxXHVkMGRjXHVjNjQwIFx1YmJmY1x1ZDYwMVx1Yzc3NFx1YWMwMCBcdWIzY2NcdWM3NDQgXHViMTkzXHVjNzQwIFx1YzVmNFx1Yzc1OCBcdWJjODhcdWQ2MzhcdWFjMDAgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWJhYThcdWI0ZTAgXHViM2NjXHVjNzQ0IFx1YjM1OFx1YzljNCBcdWM3NzRcdWQ2YzRcdWM1ZDAgXHViY2Y0XHViNGRjXHVjNzU4IFx1YzBjMVx1ZDBkY1x1Yjk3YyBcdWFkNmNcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG5cclxuPHA+XHViYmZjXHVkNjAxXHVjNzc0XHViMjk0IFx1ZDU2ZFx1YzBjMSBcdWM4MWNcdWM3N2MgXHVjNzE3IFx1Y2U3OFx1Yzc3NCBcdWJlNDRcdWM1YjRcdWM3ODhcdWIyOTQgXHVjZTc4XHVjNWQwXHViOWNjIFx1YjNjY1x1Yzc0NCBcdWIzNThcdWM5YzRcdWIyZTQuJm5ic3A7PFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YmNmNFx1YjRkY1x1Yzc1OCBcdWQwNmNcdWFlMzAgUlx1YWNmYyBDXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gKDEgJmxlOyBSICZsZTsgMzAsMDAwLCAxICZsZTsgQyAmbGU7IDMwKTxcL3A+XHJcblxyXG48cD5cdWIyZTRcdWM3NGMgUlx1YWMxYyBcdWM5MDRcdWM1ZDBcdWIyOTQgQ1x1YWMxY1x1Yzc1OCBcdWJiMzhcdWM3OTBcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWMwXHViYTcwLCBcdWJjZjRcdWI0ZGNcdWM3NTggXHVjZDA4XHVhZTMwIFx1YzBjMVx1ZDBkY1x1Yzc3NFx1YjJlNC4gJiMzOTsuJiMzOTtcdWIyOTQgXHViZTQ4IFx1Y2U3OCwgJiMzOTtYJiMzOTtcdWIyOTQgXHViY2JkXHVjNzNjXHViODVjIFx1YjljOVx1ZDc4YyBcdWFjZjNcdWM3NDQgXHViMDk4XHVkMGMwXHViMGI4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWIyZTRcdWM3NGMgXHVjOTA0XHVjNWQwXHViMjk0IFx1YjNjY1x1Yzc0NCBcdWIzNThcdWNlNWMgXHVkNjlmXHVjMjE4IE5cdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoMSAmbGU7IE4gJmxlOyAxMDAsMDAwKTxcL3A+XHJcblxyXG48cD5cdWIyZTRcdWM3NGMgTlx1YWMxYyBcdWM5MDRcdWM1ZDBcdWIyOTQgXHViM2NjXHVjNzQ0IFx1YjM1OFx1YzljNCBcdWM1ZjRcdWM3NTggXHVjNzA0XHVjZTU4XHVhYzAwIFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIChcdWFjMDBcdWM3YTUgXHVjNjdjXHVjYWJkIFx1YzVmNFx1Yzc1OCBcdWJjODhcdWQ2MzhcdWIyOTQgMVx1YmM4OCk8XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWNkMWQgUlx1YWMxYyBcdWM5MDRcdWM1ZDAgXHVhYzc4XHVjY2QwXHVjMTFjIFx1YmNmNFx1YjRkY1x1Yzc1OCBcdWFjOGNcdWM3ODRcdWM3NzQgXHViYWE4XHViNDUwIFx1YjA1ZFx1YjA5YyBcdWQ2YzRcdWM3NTggXHVjMGMxXHVkMGRjXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHViM2NjXHVjNzQwICYjMzk7TyYjMzk7XHViODVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIzMDI1IiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiS0FNRU4iLCJkZXNjcmlwdGlvbiI6IjxwPkZvciBuZWFybHkgdHdvIHdlZWtzIG5vdywgRG9tZW5pa28gaGFzIGJlZW4gbHlpbmcgaW4gaGlzIGJlZCBiZWNhdXNlIGhpcyBmcmllbmQgTmVkamVsamtvIGFjY2lkZW50bHkgdGhyZXcgYSBsYXJnZSByb2NrIG9uIGhpcyBsZWZ0IGZvb3QuIEFzIERvbWVuaWtvIGhhcyBhbHJlYWR5IHNvbHZlZCB0aGUgdGFza3MgZnJvbSBhbGwgQ3JvYXRpYW4gbmF0aW9uYWwgY29tcGV0aXRpb25zIHNpbmNlIDE5OTgsIGhlIGhhcyB0byBmaW5kIGEgbmV3IHdheSB0byBraWxsIHRpbWUuJm5ic3A7PFwvcD5cclxuXHJcbjxwPkRvbWVuaWtvJiMzOTtzIG5ldyBnYW1lIGlzIHBsYXllZCBvbiBhbiBSJnRpbWVzO0MgYm9hcmQuIEluaXRpYWxseSBldmVyeSBzcXVhcmUgaXMgZWl0aGVyIGVtcHR5IG9yIGJsb2NrZWQgYnkgYSB3YWxsLiBEb21lbmlrbyB0aHJvd3MgYSByb2NrIGludG8gdGhlIGJvYXJkIGJ5IHB1dHRpbmcgaXQgaW4gdGhlIHRvcG1vc3Qgcm93IG9mIGEgY29sdW1uIGFuZCB0aGVuIGxldHRpbmcgZ3Jhdml0eSBkbyB0aGUgcmVzdC4mbmJzcDs8XC9wPlxyXG5cclxuPHA+R3Jhdml0eSB3b3JrcyBhcyBmb2xsb3dzOiZuYnNwOzxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPklmIHRoZSBzcXVhcmUgdW5kZXIgdGhlIHJvY2sgaXMgYSB3YWxsIG9yIGlmIHRoZSByb2NrIGlzIGluIHRoZSBib3R0b20gcm93IG9mIGEgY29sdW1uLCB0aGVuIHRoZSByb2NrIHJlbWFpbnMgdGhlcmUuJm5ic3A7PFwvbGk+XHJcblx0PGxpPklmIHRoZSBzcXVhcmUgdW5kZXIgdGhlIHJvY2sgaXMgZW1wdHksIHRoZW4gdGhlIHJvY2sgbW92ZXMgdG8gdGhhdCBzcXVhcmUuJm5ic3A7PFwvbGk+XHJcblx0PGxpPklmIHRoZSBzcXVhcmUgdW5kZXIgdGhlIHJvY2sgY29udGFpbnMgYW5vdGhlciByb2NrLCB0aGVuIHRoZSBmYWxsaW5nIHJvY2sgbWF5IHNsaWRlIHNpZGV3YXlzOiZuYnNwO1xyXG5cdDx1bD5cclxuXHRcdDxsaT5JZiB0aGUgc3F1YXJlcyBsZWZ0IGFuZCBsZWZ0LWRvd24gb2YgdGhlIHJvY2sgYXJlIGVtcHR5LCB0aGVuIHRoZSByb2NrIHNsaWRlcyBvbmUgc3F1YXJlIGxlZnQuJm5ic3A7PFwvbGk+XHJcblx0XHQ8bGk+SWYgdGhlIHJvY2sgZG9lc24mIzM5O3Qgc2xpZGUgbGVmdCBhbmQgdGhlIHNxdWFyZXMgdG8gdGhlIHJpZ2h0IGFuZCByaWdodC1kb3duIGFyZSBlbXB0eSwgdGhlbiB0aGUgcm9jayBzbGlkZXMgb25lIHNxdWFyZSByaWdodC4mbmJzcDs8XC9saT5cclxuXHRcdDxsaT5PdGhlcndpc2UsIHRoZSByb2NrIHJlbWFpbnMgdGhlcmUgYW5kIG5ldmVyIG1vdmVzIGFnYWluLiZuYnNwOzxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkRvbWVuaWtvIHdpbGwgbmV2ZXIgdGhyb3cgYW5vdGhlciByb2NrIHdoaWxlIHRoZSBwcmV2aW91cyByb2NrIGhhc24mIzM5O3Qgc2V0dGxlZCBkb3duLiZuYnNwOzxcL3A+XHJcblxyXG48cD5Xcml0ZSBhIHByb2dyYW0gdGhhdCBkcmF3cyB0aGUgYm9hcmQgYWZ0ZXIgRG9tZW5pa28gdGhyb3dzIGFsbCBoaXMgcm9ja3MgaW50byB0aGUgYm9hcmQsIGlmIHdlIGtub3cgdGhlIGNvbHVtbnMgdGhhdCBEb21lbmlrbyB0aHJldyBoaXMgcm9ja3MgaW50bywgaW4gb3JkZXIuJm5ic3A7PFwvcD5cclxuXHJcbjxwPk5vdGU6IERvbWVuaWtvIHdpbGwgbmV2ZXIgdGhyb3cgYSByb2NrIGludG8gY29sdW1uIGluIHdoaWNoIHRoZSB0b3Agcm93IGlzbiYjMzk7dCBlbXB0eS48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIGNvbnRhaW5zIGludGVnZXJzIFIgYW5kIEMgKDEgJmxlOyBSICZsZTsgMzAwMDAsIDEgJmxlOyBDICZsZTsgMzApLCB0aGUgc2l6ZSBvZiB0aGUgYm9hcmQuJm5ic3A7PFwvcD5cclxuXHJcbjxwPkVhY2ggb2YgdGhlIGZvbGxvd2luZyBSIGxpbmVzIGNvbnRhaW5zIEMgY2hhcmFjdGVycywgdGhlIGluaXRpYWwgbGF5b3V0IG9mIHRoZSBib2FyZC4gQSAmIzM5Oy4mIzM5OyByZXByZXNlbnRzIGFuIGVtcHR5IGZpZWxkLCB3aGlsZSB0aGUgdXBwZXJjYXNlIGxldHRlciAmIzM5O1gmIzM5OyBpcyBhIHNxdWFyZSBibG9ja2VkIGJ5IGEgd2FsbC4mbmJzcDs8XC9wPlxyXG5cclxuPHA+VGhlIG5leHQgbGluZSBjb250YWlucyBhbiBpbnRlZ2VyIE4gKDEgJmxlOyBOICZsZTsgMTAwMDAwKSwgdGhlIG51bWJlciBvZiByb2NrcyBEb21lbmlrbyB0aHJvd3MuJm5ic3A7PFwvcD5cclxuXHJcbjxwPkVhY2ggb2YgdGhlIGZvbGxvd2luZyBOIGxpbmVzIGNvbnRhaW5zIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCBDLCB0aGUgY29sdW1uIGludG8gd2hpY2ggRG9tZW5pa28gdGhyb3dzIGEgcm9jayAodGhlIGxlZnRtb3N0IGNvbHVtbiBpcyBjb2x1bW4gMSkuJm5ic3A7PFwvcD5cclxuXHJcbjxwPk5vdGU6IEluIDYwJSBvZiB0aGUgdGVzdCBjYXNlcywgUiB3aWxsIGJlIG5vIG1vcmUgdGhhbiAzMC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5PdXRwdXQgUiBsaW5lcywgZWFjaCBjb250YWluaW5nIEMgY2hhcmFjdGVycywgdGhlIGZpbmFsIGxheW91dCBvZiB0aGUgYm9hcmQuIFJvY2tzIHNob3VsZCBiZSBwcmVzZW50ZWQgd2l0aCBhbiB1cHBlcmNhc2UgbGV0dGVyICYjMzk7TyYjMzk7LiZuYnNwOzxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==