시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 512 MB 87 31 26 34.667%

문제

만수르는 조상들과 마찬가지로 말을 키우는 것을 좋아한다. 그는 카자흐스탄에서 말을 제일 많이 갖고 있다. 그렇지만 꼭 항상 그랬던 것은 아닌데, N년 전에만 해도 만수르는 그저 젊은이일 뿐이어서 말이 한마리밖에 없었다. 만수르는 돈을 많이 벌어서 부자가 되고 싶었다.

시간순으로 매 해를 0번 해부터 N-1번 해로 번호를 매기자. (즉, N-1번 해가 가장 최근이다.) 해마다 날씨는 말이 자라는데 영향을 미친다. 만수르가 기억하기로는, i번 해에 말의 마릿수가 늘어난 비율은 양의 정수 X[i]이다. 만약 i번 해 연초에 말이 h마리가 있었다면, 그 해 연말에는 말이 모두 h×X[i]마리가 된다.

말은 매해 연말에만 팔 수 있다. 만수르가 기억하기로 i번 해의 말값은 양의 정수 Y[i]였다. 즉, 매해 연말에 갖고 있는 말 중 팔 수 있는 말의 수에는 제약이 없고, 말 한마리 값은 Y[i]로 모두 같다.

만수르는 지난 N년 동안, 말을 파는 시기를 잘 정했다면 얼마나 많은 돈을 벌 수 있었을지가 궁금해졌다. 당신이 만수르를 방문했을 때 이 질문을 받게 되었다.

저녁동안 만수르의 기억은 점점 정확해져서, 총 M번의 수정을 하게 된다. 수정을 한 번 할 때마다 X[i]의 값 중 하나, 또는 Y[i]의 값 중 하나가 바뀐다. 수정을 한 번 할 때마다 만수르는 말을 팔아 서 벌 수 있는 돈의 최대값을 물어본다. 만수르가 수정할 때마다, 수정된 내용들은 누적된다. 즉, 만수르에게 대답할 때는 지금까지 만수르가 한 수정들을 모두 반영해야 한다. 한 X[i] 또는 Y[i]가 여러 번 수정되는 경우도 가능하다.

만수르의 질문에 대한 답은 매우 큰 수일 수 있다. 큰 수를 다룰 때 생기는 문제를 피하기 위해서, 답을 109+7로 나눈 나머지를 알려주면 된다.

N = 3년에 대해서 다음과 같은 정보가 주어졌다고 하자.

  0 1 2
X 2 1 3
Y 3 4 1

이 초기 정보를 가지고, 만수르는 1번 해 연말에 모든 말을 다 팔았다면 가장 많은 돈을 벌 수 있다. 전체 과정은 다음과 같다.

  • 처음에 만수르는 말이 한 마리 있다.
  • 0번 해 연말에 만수르는 1×X[0] = 2마리의 말이 있다.
  • 1번 해 연말에 만수르는 2×X[1] = 2마리의 말이 있다.
  • 이제 말 두 마리를 모두 팔 수 있다. 전체 이익은 2×Y[1] = 8이다.

이제, M = 1번 수정을 하여 Y[1]이 2로 바뀌었다.

수정 후의 정보는 다음과 같다.

  0 1 2
X 2 1 3
Y 3 2 1

이 경우, 최적해 중 하나는 한 마리를 0번 해 연말에 팔고 2번 해 연말에 세 마리를 파는 것이다. 전체 과정은 다음과 같다

  • 처음에 만수르는 말이 한 마리 있다.
  • 0번 해 연말에 만수르는 1×X[0] = 2마리의 말이 있다.
  • 이제 이 중 한 마리를 Y[0] = 3에 팔 수 있고, 한 마리가 남아 있다.
  • 1번 해 연말에 만수르는 1×X[1] = 1마리의 말이 있다.
  • 2번 해 연말에 만수르는 1×X[2] = 3마리의 말이 있다.
  • 이제 말 세 마리를 모두 3×Y[2] = 3에 팔 수 있다. 전체 이익은 3 + 3 = 6이다.

N, X, Y와 수정된 내용의 리스트가 주어진다. 첫번째 수정을 하기 전과, 매번 수정을 한 다음에 대해서 만수르가 말을 팔아서 벌 수 있는 돈의 최대값을 109+7로 나눈 나머지를 구하라. 이를 위해서 함수 init, updateX, updateY를 구현해야 한다.

  • init(N, X, Y) — 그레이더는 이 함수를 맨 처음 정확히 한 번 호출한다.
    • N: 전체 해 수
    • X: 길이 N인 배열. 일 때, 는 번 해 연말에 말의 마릿수가 늘어난 비율이다.
    • Y: 길이 N인 배열. 일 때, 는 번 해 연말에 말 한마리의 값이다.
    • X와 Y는 만수르가 처음에 준 값을 나타낸다. (수정을 하기 전의 값)
    • init 함수가 종료한 후, 배열 X와 Y는 유효한 주소에 있으며, 원한다면 이 배열의 내용을 수정할 수 있다.
    • 이 함수는 X와 Y의 초기값을 가지고 만수르가 말을 팔아서 벌 수 있는 돈의 최대값을 109+7로 나눈 나머지를 리턴해야 한다.
  • updateX(pos, val)
    • pos: 0, ..., N-1 범위 내의 정수.
    • val: X[pos]의 새로운 값.
    • 이 함수는 주어진 정보에 따라 수정을 한 후, 만수르가 말을 팔아서 벌 수 있는 돈의 최대값을 109+7로 나눈 나머지를 리턴해야 한다.
  • updateY(pos, val)
    • pos: 0, ..., N-1 범위 내의 정수.
    • val: Y[pos]의 새로운 값.
    • 이 함수는 주어진 정보에 따라 수정을 한 후, 만수르가 말을 팔아서 벌 수 있는 돈의 최대값을 109+7로 나눈 나머지를 리턴해야 한다.

모든 X[i]와 Y[i]의 값은 항상 (즉, 처음에도, 매번 수정을 한 다음에도) 1이상 109이하를 만족한다.

init을 호출한 후, 그레이더는 updateX와 updateY를 여러 번 호출할 것이다. updateX와 updateY의 전체 호출 회수는 M이다.

입력

  • 1번 줄: N
  • 2번 줄: X[0] … X[N - 1]
  • 3번 줄: Y[0] … Y[N - 1]
  • 4번 줄: M
  • 5 ~ M + 4번 줄: type pos val에 해당하는 세 숫자 (type=1이면 updateX이고 type=2이면 updateY).

1 ≤ N ≤ 500,000, 0 ≤ M ≤ 100,000

출력

처음 init의 리턴값을 출력하고, 차례로 updateX와 updateY의 모든 호출에 대한 리턴값을 출력한다.

예제 입력 1

3
2 1 3
3 4 1
1
2 1 2

예제 출력 1

8
6
W3sicHJvYmxlbV9pZCI6IjEwOTIyIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViOWQwIiwiZGVzY3JpcHRpb24iOiI8cD5cdWI5Y2NcdWMyMThcdWI5NzRcdWIyOTQgXHVjODcwXHVjMGMxXHViNGU0XHVhY2ZjIFx1YjljOFx1Y2MyY1x1YWMwMFx1YzljMFx1Yjg1YyBcdWI5ZDBcdWM3NDQgXHVkMGE0XHVjNmIwXHViMjk0IFx1YWM4M1x1Yzc0NCBcdWM4OGJcdWM1NDRcdWQ1NWNcdWIyZTQuIFx1YWRmOFx1YjI5NCBcdWNlNzRcdWM3OTBcdWQ3NTBcdWMyYTRcdWQwYzRcdWM1ZDBcdWMxMWMgXHViOWQwXHVjNzQ0IFx1YzgxY1x1Yzc3YyBcdWI5Y2VcdWM3NzQmbmJzcDtcdWFjMTZcdWFjZTAgXHVjNzg4XHViMmU0LiBcdWFkZjhcdWI4MDdcdWM5YzBcdWI5Y2MgXHVhZjJkIFx1ZDU2ZFx1YzBjMSBcdWFkZjhcdWI3YWNcdWIzNTggXHVhYzgzXHVjNzQwIFx1YzU0NFx1YjJjY1x1YjM3MCwgTlx1YjE0NCBcdWM4MDRcdWM1ZDBcdWI5Y2MgXHVkNTc0XHViM2M0IFx1YjljY1x1YzIxOFx1Yjk3NFx1YjI5NCBcdWFkZjhcdWM4MDAgXHVjODBhXHVjNzQwXHVjNzc0XHVjNzdjIFx1YmZkMFx1Yzc3NFx1YzViNFx1YzExYyBcdWI5ZDBcdWM3NzQgXHVkNTVjXHViOWM4XHViOWFjXHViYzE2XHVjNWQwIFx1YzVjNlx1YzVjOFx1YjJlNC4gXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IFx1YjNjOFx1Yzc0NCBcdWI5Y2VcdWM3NzQgXHViYzhjXHVjNWI0XHVjMTFjIFx1YmQ4MFx1Yzc5MFx1YWMwMCBcdWI0MThcdWFjZTAgXHVjMmY2XHVjNWM4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWMyZGNcdWFjMDRcdWMyMWNcdWM3M2NcdWI4NWMgXHViOWU0IFx1ZDU3NFx1Yjk3YyAwXHViYzg4IFx1ZDU3NFx1YmQ4MFx1ZDEzMCBOLTFcdWJjODggXHVkNTc0XHViODVjIFx1YmM4OFx1ZDYzOFx1Yjk3YyBcdWI5ZTRcdWFlMzBcdWM3OTAuIChcdWM5ODksIE4tMVx1YmM4OCBcdWQ1NzRcdWFjMDAgXHVhYzAwXHVjN2E1IFx1Y2Q1Y1x1YWRmY1x1Yzc3NFx1YjJlNC4pIFx1ZDU3NFx1YjljOFx1YjJlNCBcdWIwYTBcdWM1MjhcdWIyOTQgXHViOWQwXHVjNzc0IFx1Yzc5MFx1Yjc3Y1x1YjI5NFx1YjM3MCBcdWM2MDFcdWQ1YTVcdWM3NDQgXHViYmY4XHVjZTVjXHViMmU0LiBcdWI5Y2NcdWMyMThcdWI5NzRcdWFjMDAgXHVhZTMwXHVjNWI1XHVkNTU4XHVhZTMwXHViODVjXHViMjk0LCBpXHViYzg4IFx1ZDU3NFx1YzVkMCBcdWI5ZDBcdWM3NTggXHViOWM4XHViOWJmXHVjMjE4XHVhYzAwIFx1YjI5OFx1YzViNFx1YjA5YyBcdWJlNDRcdWM3MjhcdWM3NDAgXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOCBYW2ldXHVjNzc0XHViMmU0LiBcdWI5Y2NcdWM1N2QgaVx1YmM4OCBcdWQ1NzQgXHVjNWYwXHVjZDA4XHVjNWQwIFx1YjlkMFx1Yzc3NCBoXHViOWM4XHViOWFjXHVhYzAwIFx1Yzc4OFx1YzVjOFx1YjJlNFx1YmE3NCwgXHVhZGY4IFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDBcdWIyOTQgXHViOWQwXHVjNzc0IFx1YmFhOFx1YjQ1MCBoJnRpbWVzO1hbaV1cdWI5YzhcdWI5YWNcdWFjMDAgXHViNDFjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI5ZDBcdWM3NDAgXHViOWU0XHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMFx1YjljYyBcdWQzMTQgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHViOWNjXHVjMjE4XHViOTc0XHVhYzAwIFx1YWUzMFx1YzViNVx1ZDU1OFx1YWUzMFx1Yjg1YyBpXHViYzg4IFx1ZDU3NFx1Yzc1OCBcdWI5ZDBcdWFjMTJcdWM3NDAgXHVjNTkxXHVjNzU4IFx1YzgxNVx1YzIxOCBZW2ldXHVjNjAwXHViMmU0LiBcdWM5ODksIFx1YjllNFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDAgXHVhYzE2XHVhY2UwIFx1Yzc4OFx1YjI5NCBcdWI5ZDAgXHVjOTExIFx1ZDMxNCBcdWMyMTggXHVjNzg4XHViMjk0IFx1YjlkMFx1Yzc1OCBcdWMyMThcdWM1ZDBcdWIyOTQgXHVjODFjXHVjNTdkXHVjNzc0IFx1YzVjNlx1YWNlMCwgXHViOWQwIFx1ZDU1Y1x1YjljOFx1YjlhYyBcdWFjMTJcdWM3NDAgWVtpXVx1Yjg1YyBcdWJhYThcdWI0NTAgXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI5Y2NcdWMyMThcdWI5NzRcdWIyOTQgXHVjOWMwXHViMDljIE5cdWIxNDQgXHViM2Q5XHVjNTQ4LCBcdWI5ZDBcdWM3NDQgXHVkMzBjXHViMjk0IFx1YzJkY1x1YWUzMFx1Yjk3YyBcdWM3OTggXHVjODE1XHVkNTg4XHViMmU0XHViYTc0IFx1YzViY1x1YjljOFx1YjA5OCBcdWI5Y2VcdWM3NDAgXHViM2M4XHVjNzQ0IFx1YmM4YyBcdWMyMTggXHVjNzg4XHVjNWM4XHVjNzQ0XHVjOWMwXHVhYzAwIFx1YWQ4MVx1YWUwOFx1ZDU3NFx1Yzg0Y1x1YjJlNC4gXHViMmY5XHVjMmUwXHVjNzc0IFx1YjljY1x1YzIxOFx1Yjk3NFx1Yjk3YyBcdWJjMjlcdWJiMzhcdWQ1ODhcdWM3NDQgXHViNTRjIFx1Yzc3NCBcdWM5YzhcdWJiMzhcdWM3NDQgXHViYzFiXHVhYzhjIFx1YjQxOFx1YzVjOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjODAwXHViMTQxXHViM2Q5XHVjNTQ4IFx1YjljY1x1YzIxOFx1Yjk3NFx1Yzc1OCBcdWFlMzBcdWM1YjVcdWM3NDAgXHVjODEwXHVjODEwIFx1YzgxNVx1ZDY1NVx1ZDU3NFx1YzgzOFx1YzExYywgXHVjZDFkIE1cdWJjODhcdWM3NTggXHVjMjE4XHVjODE1XHVjNzQ0IFx1ZDU1OFx1YWM4YyBcdWI0MWNcdWIyZTQuIFx1YzIxOFx1YzgxNVx1Yzc0NCBcdWQ1NWMgXHViYzg4IFx1ZDU2MCBcdWI1NGNcdWI5YzhcdWIyZTQgWFtpXVx1Yzc1OCBcdWFjMTIgXHVjOTExIFx1ZDU1OFx1YjA5OCwgXHViNjEwXHViMjk0IFlbaV1cdWM3NTggXHVhYzEyIFx1YzkxMSBcdWQ1NThcdWIwOThcdWFjMDAgXHViYzE0XHViMDEwXHViMmU0LiBcdWMyMThcdWM4MTVcdWM3NDQgXHVkNTVjIFx1YmM4OCBcdWQ1NjAgXHViNTRjXHViOWM4XHViMmU0IFx1YjljY1x1YzIxOFx1Yjk3NFx1YjI5NCBcdWI5ZDBcdWM3NDQgXHVkMzE0XHVjNTQ0IFx1YzExYyBcdWJjOGMgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWIzYzhcdWM3NTggXHVjZDVjXHViMzAwXHVhYzEyXHVjNzQ0IFx1YmIzY1x1YzViNFx1YmNmOFx1YjJlNC4gXHViOWNjXHVjMjE4XHViOTc0XHVhYzAwIFx1YzIxOFx1YzgxNVx1ZDU2MCBcdWI1NGNcdWI5YzhcdWIyZTQsIFx1YzIxOFx1YzgxNVx1YjQxYyBcdWIwYjRcdWM2YTlcdWI0ZTRcdWM3NDAgXHViMjA0XHVjODAxXHViNDFjXHViMmU0LiBcdWM5ODksIFx1YjljY1x1YzIxOFx1Yjk3NFx1YzVkMFx1YWM4YyBcdWIzMDBcdWIyZjVcdWQ1NjAgXHViNTRjXHViMjk0IFx1YzljMFx1YWUwOFx1YWU0Y1x1YzljMCBcdWI5Y2NcdWMyMThcdWI5NzRcdWFjMDAgXHVkNTVjIFx1YzIxOFx1YzgxNVx1YjRlNFx1Yzc0NCBcdWJhYThcdWI0NTAgXHViYzE4XHVjNjAxXHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC4gXHVkNTVjIFhbaV0gXHViNjEwXHViMjk0IFlbaV1cdWFjMDAgXHVjNWVjXHViN2VjIFx1YmM4OCBcdWMyMThcdWM4MTVcdWI0MThcdWIyOTQgXHVhY2JkXHVjNmIwXHViM2M0IFx1YWMwMFx1YjJhNVx1ZDU1OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViOWNjXHVjMjE4XHViOTc0XHVjNzU4IFx1YzljOFx1YmIzOFx1YzVkMCBcdWIzMDBcdWQ1NWMgXHViMmY1XHVjNzQwIFx1YjllNFx1YzZiMCBcdWQwNzAgXHVjMjE4XHVjNzdjIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1ZDA3MCBcdWMyMThcdWI5N2MgXHViMmU0XHViOGYwIFx1YjU0YyBcdWMwZGRcdWFlMzBcdWIyOTQgXHViYjM4XHVjODFjXHViOTdjIFx1ZDUzY1x1ZDU1OFx1YWUzMCBcdWM3MDRcdWQ1NzRcdWMxMWMsIFx1YjJmNVx1Yzc0NCAxMDxzdXA+OTxcL3N1cD4rN1x1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1YzU0Y1x1YjgyNFx1YzhmY1x1YmE3NCBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPk4gPSAzXHViMTQ0XHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExYyBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzQwIFx1YzgxNVx1YmNmNFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWIyZTRcdWFjZTAgXHVkNTU4XHVjNzkwLjxcL3A+XHJcblxyXG48dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZFwiIHN0eWxlPVwid2lkdGg6MjAlXCI+XHJcblx0PHRoZWFkPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+Jm5ic3A7PFwvdGg+XHJcblx0XHRcdDx0aD4wPFwvdGg+XHJcblx0XHRcdDx0aD4xPFwvdGg+XHJcblx0XHRcdDx0aD4yPFwvdGg+XHJcblx0XHQ8XC90cj5cclxuXHQ8XC90aGVhZD5cclxuXHQ8dGJvZHk+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD5YPFwvdGg+XHJcblx0XHRcdDx0ZD4yPFwvdGQ+XHJcblx0XHRcdDx0ZD4xPFwvdGQ+XHJcblx0XHRcdDx0ZD4zPFwvdGQ+XHJcblx0XHQ8XC90cj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlk8XC90aD5cclxuXHRcdFx0PHRkPjM8XC90ZD5cclxuXHRcdFx0PHRkPjQ8XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuXHJcbjxwPlx1Yzc3NCBcdWNkMDhcdWFlMzAgXHVjODE1XHViY2Y0XHViOTdjIFx1YWMwMFx1YzljMFx1YWNlMCwgXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IDFcdWJjODggXHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMCBcdWJhYThcdWI0ZTAgXHViOWQwXHVjNzQ0IFx1YjJlNCBcdWQzMTRcdWM1NThcdWIyZTRcdWJhNzQgXHVhYzAwXHVjN2E1IFx1YjljZVx1Yzc0MCBcdWIzYzhcdWM3NDQgXHViYzhjIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzgwNFx1Y2NiNCBcdWFjZmNcdWM4MTVcdWM3NDAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWNjOThcdWM3NGNcdWM1ZDAgXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IFx1YjlkMFx1Yzc3NCBcdWQ1NWMgXHViOWM4XHViOWFjIFx1Yzc4OFx1YjJlNC48XC9saT5cclxuXHQ8bGk+MFx1YmM4OCBcdWQ1NzQgXHVjNWYwXHViOWQwXHVjNWQwIFx1YjljY1x1YzIxOFx1Yjk3NFx1YjI5NCAxJnRpbWVzO1hbMF0gPSAyXHViOWM4XHViOWFjXHVjNzU4IFx1YjlkMFx1Yzc3NCBcdWM3ODhcdWIyZTQuPFwvbGk+XHJcblx0PGxpPjFcdWJjODggXHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMCBcdWI5Y2NcdWMyMThcdWI5NzRcdWIyOTQgMiZ0aW1lcztYWzFdID0gMlx1YjljOFx1YjlhY1x1Yzc1OCBcdWI5ZDBcdWM3NzQgXHVjNzg4XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM3NzRcdWM4MWMgXHViOWQwIFx1YjQ1MCBcdWI5YzhcdWI5YWNcdWI5N2MgXHViYWE4XHViNDUwIFx1ZDMxNCBcdWMyMTggXHVjNzg4XHViMmU0LiBcdWM4MDRcdWNjYjQgXHVjNzc0XHVjNzc1XHVjNzQwIDImdGltZXM7WVsxXSA9IDhcdWM3NzRcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHVjNzc0XHVjODFjLCBNID0gMVx1YmM4OCBcdWMyMThcdWM4MTVcdWM3NDQgXHVkNTU4XHVjNWVjIFlbMV1cdWM3NzQgMlx1Yjg1YyBcdWJjMTRcdWIwMGNcdWM1YzhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzIxOFx1YzgxNSBcdWQ2YzRcdWM3NTggXHVjODE1XHViY2Y0XHViMjk0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkXCIgc3R5bGU9XCJ3aWR0aDoyMCVcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD4mbmJzcDs8XC90aD5cclxuXHRcdFx0PHRoPjA8XC90aD5cclxuXHRcdFx0PHRoPjE8XC90aD5cclxuXHRcdFx0PHRoPjI8XC90aD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3RoZWFkPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlg8XC90aD5cclxuXHRcdFx0PHRkPjI8XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdFx0PHRkPjM8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+WTxcL3RoPlxyXG5cdFx0XHQ8dGQ+MzxcL3RkPlxyXG5cdFx0XHQ8dGQ+MjxcL3RkPlxyXG5cdFx0XHQ8dGQ+MTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGJvZHk+XHJcbjxcL3RhYmxlPlxyXG5cclxuPHA+XHVjNzc0IFx1YWNiZFx1YzZiMCwgXHVjZDVjXHVjODAxXHVkNTc0IFx1YzkxMSBcdWQ1NThcdWIwOThcdWIyOTQgXHVkNTVjIFx1YjljOFx1YjlhY1x1Yjk3YyAwXHViYzg4IFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDAgXHVkMzE0XHVhY2UwIDJcdWJjODggXHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMCBcdWMxMzggXHViOWM4XHViOWFjXHViOTdjIFx1ZDMwY1x1YjI5NCBcdWFjODNcdWM3NzRcdWIyZTQuIFx1YzgwNFx1Y2NiNCBcdWFjZmNcdWM4MTVcdWM3NDAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNDxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlx1Y2M5OFx1Yzc0Y1x1YzVkMCBcdWI5Y2NcdWMyMThcdWI5NzRcdWIyOTQgXHViOWQwXHVjNzc0IFx1ZDU1YyBcdWI5YzhcdWI5YWMgXHVjNzg4XHViMmU0LjxcL2xpPlxyXG5cdDxsaT4wXHViYzg4IFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDAgXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IDEmdGltZXM7WFswXSA9IDJcdWI5YzhcdWI5YWNcdWM3NTggXHViOWQwXHVjNzc0IFx1Yzc4OFx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNzc0XHVjODFjIFx1Yzc3NCBcdWM5MTEgXHVkNTVjIFx1YjljOFx1YjlhY1x1Yjk3YyBZWzBdID0gM1x1YzVkMCBcdWQzMTQgXHVjMjE4IFx1Yzc4OFx1YWNlMCwgXHVkNTVjIFx1YjljOFx1YjlhY1x1YWMwMCBcdWIwYThcdWM1NDQgXHVjNzg4XHViMmU0LjxcL2xpPlxyXG5cdDxsaT4xXHViYzg4IFx1ZDU3NCBcdWM1ZjBcdWI5ZDBcdWM1ZDAgXHViOWNjXHVjMjE4XHViOTc0XHViMjk0IDEmdGltZXM7WFsxXSA9IDFcdWI5YzhcdWI5YWNcdWM3NTggXHViOWQwXHVjNzc0IFx1Yzc4OFx1YjJlNC48XC9saT5cclxuXHQ8bGk+Mlx1YmM4OCBcdWQ1NzQgXHVjNWYwXHViOWQwXHVjNWQwIFx1YjljY1x1YzIxOFx1Yjk3NFx1YjI5NCAxJnRpbWVzO1hbMl0gPSAzXHViOWM4XHViOWFjXHVjNzU4IFx1YjlkMFx1Yzc3NCBcdWM3ODhcdWIyZTQuPFwvbGk+XHJcblx0PGxpPlx1Yzc3NFx1YzgxYyBcdWI5ZDAgXHVjMTM4IFx1YjljOFx1YjlhY1x1Yjk3YyBcdWJhYThcdWI0NTAgMyZ0aW1lcztZWzJdID0gM1x1YzVkMCBcdWQzMTQgXHVjMjE4IFx1Yzc4OFx1YjJlNC4gXHVjODA0XHVjY2I0IFx1Yzc3NFx1Yzc3NVx1Yzc0MCAzICsgMyA9IDZcdWM3NzRcdWIyZTQuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+TiwgWCwgWVx1YzY0MCBcdWMyMThcdWM4MTVcdWI0MWMgXHViMGI0XHVjNmE5XHVjNzU4IFx1YjlhY1x1YzJhNFx1ZDJiOFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Y2NhYlx1YmM4OFx1YzlmOCBcdWMyMThcdWM4MTVcdWM3NDQgXHVkNTU4XHVhZTMwIFx1YzgwNFx1YWNmYywgXHViOWU0XHViYzg4IFx1YzIxOFx1YzgxNVx1Yzc0NCBcdWQ1NWMgXHViMmU0XHVjNzRjXHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExYyBcdWI5Y2NcdWMyMThcdWI5NzRcdWFjMDAgXHViOWQwXHVjNzQ0IFx1ZDMxNFx1YzU0NFx1YzExYyBcdWJjOGMgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWIzYzhcdWM3NTggXHVjZDVjXHViMzAwXHVhYzEyXHVjNzQ0IDEwPHN1cD45PFwvc3VwPis3XHViODVjIFx1YjA5OFx1YjIwOCBcdWIwOThcdWJhMzhcdWM5YzBcdWI5N2MgXHVhZDZjXHVkNTU4XHViNzdjLiBcdWM3NzRcdWI5N2MgXHVjNzA0XHVkNTc0XHVjMTFjIFx1ZDU2OFx1YzIxOCBpbml0LCB1cGRhdGVYLCB1cGRhdGVZXHViOTdjIFx1YWQ2Y1x1ZDYwNFx1ZDU3NFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+aW5pdChOLCBYLCBZKSAmbWRhc2g7IFx1YWRmOFx1YjgwOFx1Yzc3NFx1YjM1NFx1YjI5NCBcdWM3NzQgXHVkNTY4XHVjMjE4XHViOTdjIFx1YjllOCBcdWNjOThcdWM3NGMgXHVjODE1XHVkNjU1XHVkNzg4IFx1ZDU1YyBcdWJjODggXHVkNjM4XHVjZDljXHVkNTVjXHViMmU0LlxyXG5cdDx1bD5cclxuXHRcdDxsaT5OOiBcdWM4MDRcdWNjYjQgXHVkNTc0IFx1YzIxODxcL2xpPlxyXG5cdFx0PGxpPlg6IFx1YWUzOFx1Yzc3NCBOXHVjNzc4IFx1YmMzMFx1YzVmNC4gXHVjNzdjIFx1YjU0YywgXHViMjk0IFx1YmM4OCBcdWQ1NzQgXHVjNWYwXHViOWQwXHVjNWQwIFx1YjlkMFx1Yzc1OCBcdWI5YzhcdWI5YmZcdWMyMThcdWFjMDAgXHViMjk4XHVjNWI0XHViMDljIFx1YmU0NFx1YzcyOFx1Yzc3NFx1YjJlNC48XC9saT5cclxuXHRcdDxsaT5ZOiBcdWFlMzhcdWM3NzQgTlx1Yzc3OCBcdWJjMzBcdWM1ZjQuIFx1Yzc3YyBcdWI1NGMsIFx1YjI5NCBcdWJjODggXHVkNTc0IFx1YzVmMFx1YjlkMFx1YzVkMCBcdWI5ZDAgXHVkNTVjXHViOWM4XHViOWFjXHVjNzU4IFx1YWMxMlx1Yzc3NFx1YjJlNC48XC9saT5cclxuXHRcdDxsaT5YXHVjNjQwIFlcdWIyOTQgXHViOWNjXHVjMjE4XHViOTc0XHVhYzAwIFx1Y2M5OFx1Yzc0Y1x1YzVkMCBcdWM5MDAgXHVhYzEyXHVjNzQ0IFx1YjA5OFx1ZDBjMFx1YjBiOFx1YjJlNC4gKFx1YzIxOFx1YzgxNVx1Yzc0NCBcdWQ1NThcdWFlMzAgXHVjODA0XHVjNzU4IFx1YWMxMik8XC9saT5cclxuXHRcdDxsaT5pbml0IFx1ZDU2OFx1YzIxOFx1YWMwMCBcdWM4ODVcdWI4Y2NcdWQ1NWMgXHVkNmM0LCBcdWJjMzBcdWM1ZjQgWFx1YzY0MCBZXHViMjk0IFx1YzcyMFx1ZDZhOFx1ZDU1YyBcdWM4ZmNcdWMxOGNcdWM1ZDAgXHVjNzg4XHVjNzNjXHViYTcwLCBcdWM2ZDBcdWQ1NWNcdWIyZTRcdWJhNzQgXHVjNzc0IFx1YmMzMFx1YzVmNFx1Yzc1OCBcdWIwYjRcdWM2YTlcdWM3NDQgXHVjMjE4XHVjODE1XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvbGk+XHJcblx0XHQ8bGk+XHVjNzc0IFx1ZDU2OFx1YzIxOFx1YjI5NCBYXHVjNjQwIFlcdWM3NTggXHVjZDA4XHVhZTMwXHVhYzEyXHVjNzQ0IFx1YWMwMFx1YzljMFx1YWNlMCBcdWI5Y2NcdWMyMThcdWI5NzRcdWFjMDAgXHViOWQwXHVjNzQ0IFx1ZDMxNFx1YzU0NFx1YzExYyBcdWJjOGMgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWIzYzhcdWM3NTggXHVjZDVjXHViMzAwXHVhYzEyXHVjNzQ0IDEwPHN1cD45PFwvc3VwPis3XHViODVjIFx1YjA5OFx1YjIwOCBcdWIwOThcdWJhMzhcdWM5YzBcdWI5N2MgXHViOWFjXHVkMTM0XHVkNTc0XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuXHQ8bGk+dXBkYXRlWChwb3MsIHZhbClcclxuXHQ8dWw+XHJcblx0XHQ8bGk+cG9zOiAwLCAuLi4sIE4tMSBcdWJjOTRcdWM3MDQgXHViMGI0XHVjNzU4IFx1YzgxNVx1YzIxOC48XC9saT5cclxuXHRcdDxsaT52YWw6IFhbcG9zXVx1Yzc1OCBcdWMwYzhcdWI4NWNcdWM2YjQgXHVhYzEyLjxcL2xpPlxyXG5cdFx0PGxpPlx1Yzc3NCBcdWQ1NjhcdWMyMThcdWIyOTQgXHVjOGZjXHVjNWI0XHVjOWM0IFx1YzgxNVx1YmNmNFx1YzVkMCBcdWI1MzBcdWI3N2MgXHVjMjE4XHVjODE1XHVjNzQ0IFx1ZDU1YyBcdWQ2YzQsIFx1YjljY1x1YzIxOFx1Yjk3NFx1YWMwMCBcdWI5ZDBcdWM3NDQgXHVkMzE0XHVjNTQ0XHVjMTFjIFx1YmM4YyBcdWMyMTggXHVjNzg4XHViMjk0IFx1YjNjOFx1Yzc1OCBcdWNkNWNcdWIzMDBcdWFjMTJcdWM3NDQgMTA8c3VwPjk8XC9zdXA+KzdcdWI4NWMgXHViMDk4XHViMjA4IFx1YjA5OFx1YmEzOFx1YzljMFx1Yjk3YyBcdWI5YWNcdWQxMzRcdWQ1NzRcdWM1N2MgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG5cdDxsaT51cGRhdGVZKHBvcywgdmFsKVxyXG5cdDx1bD5cclxuXHRcdDxsaT5wb3M6IDAsIC4uLiwgTi0xIFx1YmM5NFx1YzcwNCBcdWIwYjRcdWM3NTggXHVjODE1XHVjMjE4LjxcL2xpPlxyXG5cdFx0PGxpPnZhbDogWVtwb3NdXHVjNzU4IFx1YzBjOFx1Yjg1Y1x1YzZiNCBcdWFjMTIuPFwvbGk+XHJcblx0XHQ8bGk+XHVjNzc0IFx1ZDU2OFx1YzIxOFx1YjI5NCBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVjODE1XHViY2Y0XHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWMyMThcdWM4MTVcdWM3NDQgXHVkNTVjIFx1ZDZjNCwgXHViOWNjXHVjMjE4XHViOTc0XHVhYzAwIFx1YjlkMFx1Yzc0NCBcdWQzMTRcdWM1NDRcdWMxMWMgXHViYzhjIFx1YzIxOCBcdWM3ODhcdWIyOTQgXHViM2M4XHVjNzU4IFx1Y2Q1Y1x1YjMwMFx1YWMxMlx1Yzc0NCAxMDxzdXA+OTxcL3N1cD4rN1x1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1YjlhY1x1ZDEzNFx1ZDU3NFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+XHViYWE4XHViNGUwIFhbaV1cdWM2NDAgWVtpXVx1Yzc1OCBcdWFjMTJcdWM3NDAgXHVkNTZkXHVjMGMxIChcdWM5ODksIFx1Y2M5OFx1Yzc0Y1x1YzVkMFx1YjNjNCwgXHViOWU0XHViYzg4IFx1YzIxOFx1YzgxNVx1Yzc0NCBcdWQ1NWMgXHViMmU0XHVjNzRjXHVjNWQwXHViM2M0KSAxXHVjNzc0XHVjMGMxIDEwPHN1cD45PFwvc3VwPlx1Yzc3NFx1ZDU1OFx1Yjk3YyBcdWI5Y2NcdWM4NzFcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPmluaXRcdWM3NDQgXHVkNjM4XHVjZDljXHVkNTVjIFx1ZDZjNCwgXHVhZGY4XHViODA4XHVjNzc0XHViMzU0XHViMjk0IHVwZGF0ZVhcdWM2NDAgdXBkYXRlWVx1Yjk3YyBcdWM1ZWNcdWI3ZWMgXHViYzg4IFx1ZDYzOFx1Y2Q5Y1x1ZDU2MCBcdWFjODNcdWM3NzRcdWIyZTQuIHVwZGF0ZVhcdWM2NDAgdXBkYXRlWVx1Yzc1OCBcdWM4MDRcdWNjYjQgXHVkNjM4XHVjZDljIFx1ZDY4Y1x1YzIxOFx1YjI5NCBNXHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsImlucHV0IjoiPHVsPlxyXG5cdDxsaT4xXHViYzg4IFx1YzkwNDogTjxcL2xpPlxyXG5cdDxsaT4yXHViYzg4IFx1YzkwNDogWFswXSAmaGVsbGlwOyBYW04gLSAxXTxcL2xpPlxyXG5cdDxsaT4zXHViYzg4IFx1YzkwNDogWVswXSAmaGVsbGlwOyBZW04gLSAxXTxcL2xpPlxyXG5cdDxsaT40XHViYzg4IFx1YzkwNDogTTxcL2xpPlxyXG5cdDxsaT41IH4gTSArIDRcdWJjODggXHVjOTA0OiB0eXBlIHBvcyB2YWxcdWM1ZDAgXHVkNTc0XHViMmY5XHVkNTU4XHViMjk0IFx1YzEzOCBcdWMyMmJcdWM3OTAgKHR5cGU9MVx1Yzc3NFx1YmE3NCB1cGRhdGVYXHVjNzc0XHVhY2UwIHR5cGU9Mlx1Yzc3NFx1YmE3NCB1cGRhdGVZKS48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD4xICZsZTsgTiAmbGU7IDUwMCwwMDAsIDAgJmxlOyBNICZsZTsgMTAwLDAwMDxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1Y2M5OFx1Yzc0YyBpbml0XHVjNzU4IFx1YjlhY1x1ZDEzNFx1YWMxMlx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NThcdWFjZTAsIFx1Y2MyOFx1Yjg0MFx1Yjg1YyB1cGRhdGVYXHVjNjQwIHVwZGF0ZVlcdWM3NTggXHViYWE4XHViNGUwIFx1ZDYzOFx1Y2Q5Y1x1YzVkMCBcdWIzMDBcdWQ1NWMgXHViOWFjXHVkMTM0XHVhYzEyXHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwicHJvYmxlbV9sYW5nX2NvZGUiOiJcdWQ1NWNcdWFkNmRcdWM1YjQifSx7InByb2JsZW1faWQiOiIxMDkyMiIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkhvcnNlcyIsImRlc2NyaXB0aW9uIjoiPHA+TWFuc3VyIGxvdmVzIHRvIGJyZWVkIGhvcnNlcywganVzdCBsaWtlIGhpcyBhbmNpZW50IGFuY2VzdG9ycyBkaWQuIEhlIG5vdyBoYXMgdGhlIGxhcmdlc3QgaGVyZCBpbiBLYXpha2hzdGFuLiBCdXQgdGhpcyB3YXMgbm90IGFsd2F5cyB0aGUgY2FzZS4gTiB5ZWFycyBhZ28sIE1hbnN1ciB3YXMganVzdCBhIGR6aGlnaXQgKEthemFraCBmb3IgYSB5b3VuZyBtYW4pIGFuZCBoZSBvbmx5IGhhZCBhIHNpbmdsZSBob3JzZS4gSGUgZHJlYW1lZCB0byBtYWtlIGEgbG90IG9mIG1vbmV5IGFuZCB0byBmaW5hbGx5IGJlY29tZSBhIGJhaSAoS2F6YWtoIGZvciBhIHZlcnkgcmljaCBwZXJzb24pLjxcL3A+XHJcblxyXG48cD5MZXQgdXMgbnVtYmVyIHRoZSB5ZWFycyBmcm9tIDAgdG8gTi0xIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIgKGkuZS4sIHllYXIgTi0xIGlzIHRoZSBtb3N0IHJlY2VudCBvbmUpLiBUaGUgd2VhdGhlciBvZiBlYWNoIHllYXIgaW5mbHVlbmNlZCB0aGUgZ3Jvd3RoIG9mIHRoZSBoZXJkLiBGb3IgZWFjaCB5ZWFyIGksIE1hbnN1ciByZW1lbWJlcnMgYSBwb3NpdGl2ZSBpbnRlZ2VyIGdyb3d0aCBjb2VmZmljaWVudCBYW2ldLiBJZiB5b3Ugc3RhcnRlZCB5ZWFyIGkgd2l0aCBoIGhvcnNlcywgeW91IGVuZGVkIHRoZSB5ZWFyIHdpdGggaCZ0aW1lcztYW2ldIGhvcnNlcyBpbiB5b3VyIGhlcmQuPFwvcD5cclxuXHJcbjxwPkhvcnNlcyBjb3VsZCBvbmx5IGJlIHNvbGQgYXQgdGhlIGVuZCBvZiBhIHllYXIuIEZvciBlYWNoIHllYXIgaSwgTWFuc3VyIHJlbWVtYmVycyBhIHBvc2l0aXZlIGludGVnZXIgWVtpXTogdGhlIHByaWNlIGZvciB3aGljaCBoZSBjb3VsZCBzZWxsIGEgaG9yc2UgYXQgdGhlIGVuZCBvZiB5ZWFyIGkuIEFmdGVyIGVhY2ggeWVhciwgaXQgd2FzIHBvc3NpYmxlIHRvIHNlbGwgYXJiaXRyYXJpbHkgbWFueSBob3JzZXMsIGVhY2ggYXQgdGhlIHNhbWUgcHJpY2UgWVtpXS48XC9wPlxyXG5cclxuPHA+TWFuc3VyIHdvbmRlcnMgd2hhdCBpcyB0aGUgbGFyZ2VzdCBhbW91bnQgb2YgbW9uZXkgaGUgY291bGQgaGF2ZSBub3cgaWYgaGUgaGFkIGNob3NlbiB0aGUgYmVzdCBtb21lbnRzIHRvIHNlbGwgaGlzIGhvcnNlcyBkdXJpbmcgdGhlIE4geWVhcnMuIFlvdSBoYXZlIHRoZSBob25vciBvZiBiZWluZyBhIGd1ZXN0IG9uIE1hbnN1ciZyc3F1bztzIHRvaSAoS2F6YWtoIGZvciBob2xpZGF5KSwgYW5kIGhlIGFza2VkIHlvdSB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbi48XC9wPlxyXG5cclxuPHA+TWFuc3VyJnJzcXVvO3MgbWVtb3J5IGltcHJvdmVzIHRocm91Z2hvdXQgdGhlIGV2ZW5pbmcsIGFuZCBzbyBoZSBtYWtlcyBhIHNlcXVlbmNlIG9mIE0gdXBkYXRlcy4gRWFjaCB1cGRhdGUgd2lsbCBjaGFuZ2UgZWl0aGVyIG9uZSBvZiB0aGUgdmFsdWVzIFhbaV0gb3Igb25lIG9mIHRoZSB2YWx1ZXMgWVtpXS4gQWZ0ZXIgZWFjaCB1cGRhdGUgaGUgYWdhaW4gYXNrcyB5b3UgdGhlIGxhcmdlc3QgYW1vdW50IG9mIG1vbmV5IGhlIGNvdWxkIGhhdmUgZWFybmVkIGJ5IHNlbGxpbmcgaGlzIGhvcnNlcy4gTWFuc3VyJnJzcXVvO3MgdXBkYXRlcyBhcmUgY3VtdWxhdGl2ZTogZWFjaCBvZiB5b3VyIGFuc3dlcnMgc2hvdWxkIHRha2UgaW50byBhY2NvdW50IGFsbCBvZiB0aGUgcHJldmlvdXMgdXBkYXRlcy4gTm90ZSB0aGF0IGEgc2luZ2xlIFhbaV0gb3IgWVtpXSBtYXkgYmUgdXBkYXRlZCBtdWx0aXBsZSB0aW1lcy48XC9wPlxyXG5cclxuPHA+VGhlIGFjdHVhbCBhbnN3ZXJzIHRvIE1hbnN1ciZyc3F1bztzIHF1ZXN0aW9ucyBjYW4gYmUgaHVnZS4gSW4gb3JkZXIgdG8gYXZvaWQgd29ya2luZyB3aXRoIGxhcmdlIG51bWJlcnMsIHlvdSBhcmUgb25seSByZXF1aXJlZCB0byByZXBvcnQgdGhlIGFuc3dlcnMgbW9kdWxvIDEwPHN1cD45PFwvc3VwPis3LjxcL3A+XHJcblxyXG48cD5TdXBwb3NlIHRoYXQgdGhlcmUgYXJlIE4gPSAzIHllYXJzLCB3aXRoIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246PFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkXCIgc3R5bGU9XCJ3aWR0aDoyMCVcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD4mbmJzcDs8XC90aD5cclxuXHRcdFx0PHRoPjA8XC90aD5cclxuXHRcdFx0PHRoPjE8XC90aD5cclxuXHRcdFx0PHRoPjI8XC90aD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3RoZWFkPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlg8XC90aD5cclxuXHRcdFx0PHRkPjI8XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdFx0PHRkPjM8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+WTxcL3RoPlxyXG5cdFx0XHQ8dGQ+MzxcL3RkPlxyXG5cdFx0XHQ8dGQ+NDxcL3RkPlxyXG5cdFx0XHQ8dGQ+MTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGJvZHk+XHJcbjxcL3RhYmxlPlxyXG5cclxuPHA+Rm9yIHRoZXNlIGluaXRpYWwgdmFsdWVzLCBNYW5zdXIgY2FuIGVhcm4gdGhlIG1vc3QgaWYgaGUgc2VsbHMgYm90aCBoaXMgaG9yc2VzIGF0IHRoZSBlbmQgb2YgeWVhciAxLiBUaGUgZW50aXJlIHByb2Nlc3Mgd2lsbCBsb29rIGFzIGZvbGxvd3M6PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+SW5pdGlhbGx5LCBNYW5zdXIgaGFzIDEgaG9yc2UuPFwvbGk+XHJcblx0PGxpPkFmdGVyIHllYXIgMCBoZSB3aWxsIGhhdmUgMSZ0aW1lcztYWzBdID0gMiBob3JzZXMuPFwvbGk+XHJcblx0PGxpPkFmdGVyIHllYXIgMSBoZSB3aWxsIGhhdmUgMiZ0aW1lcztYWzFdID0gMmhvcnNlcy48XC9saT5cclxuXHQ8bGk+SGUgY2FuIG5vdyBzZWxsIHRob3NlIHR3byBob3JzZXMuIFRoZSB0b3RhbCBwcm9maXQgd2lsbCBiZSAyJnRpbWVzO1lbMV0gPSA4LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlRoZW4sIHN1cHBvc2UgdGhhdCB0aGVyZSBpcyBNID0gMSB1cGRhdGU6IGNoYW5naW5nIFlbMV0gdG8gMi48XC9wPlxyXG5cclxuPHA+QWZ0ZXIgdGhlIHVwZGF0ZSB3ZSB3aWxsIGhhdmU6PFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkXCIgc3R5bGU9XCJ3aWR0aDoyMCVcIj5cclxuXHQ8dGhlYWQ+XHJcblx0XHQ8dHI+XHJcblx0XHRcdDx0aD4mbmJzcDs8XC90aD5cclxuXHRcdFx0PHRoPjA8XC90aD5cclxuXHRcdFx0PHRoPjE8XC90aD5cclxuXHRcdFx0PHRoPjI8XC90aD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3RoZWFkPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRoPlg8XC90aD5cclxuXHRcdFx0PHRkPjI8XC90ZD5cclxuXHRcdFx0PHRkPjE8XC90ZD5cclxuXHRcdFx0PHRkPjM8XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdFx0PHRyPlxyXG5cdFx0XHQ8dGg+WTxcL3RoPlxyXG5cdFx0XHQ8dGQ+MzxcL3RkPlxyXG5cdFx0XHQ8dGQ+MjxcL3RkPlxyXG5cdFx0XHQ8dGQ+MTxcL3RkPlxyXG5cdFx0PFwvdHI+XHJcblx0PFwvdGJvZHk+XHJcbjxcL3RhYmxlPlxyXG5cclxuPHA+SW4gdGhpcyBjYXNlLCBvbmUgb2YgdGhlIG9wdGltYWxzb2x1dGlvbnMgaXMgdG8gc2VsbCBvbmUgaG9yc2UgYWZ0ZXIgeWVhciAwIGFuZCB0aGVuIHRocmVlIGhvcnNlcyBhZnRlciB5ZWFyIDIuIFRoZSBlbnRpcmUgcHJvY2VzcyB3aWxsIGxvb2sgYXMgZm9sbG93czo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5Jbml0aWFsbHksIE1hbnN1ciBoYXMgMSBob3JzZS48XC9saT5cclxuXHQ8bGk+QWZ0ZXIgeWVhciAwIGhlIHdpbGwgaGF2ZSAxJnRpbWVzO1hbMF0gPSAyIGhvcnNlcy48XC9saT5cclxuXHQ8bGk+SGUgY2FuIG5vdyBzZWxsIG9uZSBvZiB0aG9zZSBob3JzZXMgZm9yIFlbMF0gPSAzLCBhbmQgaGF2ZSBvbmUgaG9yc2UgbGVmdC48XC9saT5cclxuXHQ8bGk+QWZ0ZXIgeWVhciAxIGhlIHdpbGwgaGF2ZSAxJnRpbWVzO1hbMV0gPSAxIGhvcnNlLjxcL2xpPlxyXG5cdDxsaT5BZnRlciB5ZWFyIDIgaGUgd2lsbCBoYXZlIDEmdGltZXM7WFsyXSA9IDMgaG9yc2VzLjxcL2xpPlxyXG5cdDxsaT5IZSBjYW4gbm93IHNlbGwgdGhvc2UgdGhyZWUgaG9yc2VzIGZvciAzJnRpbWVzO1lbMl0gPSAzLiBUaGUgdG90YWwgYW1vdW50IG9mIG1vbmV5IGlzIDMgKyAzID0gNi48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5Zb3UgYXJlIGdpdmVuIE4sIFgsIFksIGFuZCB0aGUgbGlzdCBvZiB1cGRhdGVzLiBCZWZvcmUgdGhlIGZpcnN0IHVwZGF0ZSwgYW5kIGFmdGVyIGV2ZXJ5IHVwZGF0ZSwgY29tcHV0ZSB0aGUgbWF4aW1hbCBhbW91bnQgb2YgbW9uZXkgdGhhdCBNYW5zdXIgY291bGQgZ2V0IGZvciBoaXMgaG9yc2VzLCBtb2R1bG8gMTA8c3VwPjk8XC9zdXA+KzcuIFlvdSBuZWVkIHRvIGltcGxlbWVudCB0aGUgZnVuY3Rpb25zIGluaXQsIHVwZGF0ZVgsIGFuZCB1cGRhdGVZLjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPmluaXQoTiwgWCwgWSkgJm1kYXNoOyBUaGUgZ3JhZGVyIHdpbGwgY2FsbCB0aGlzIGZ1bmN0aW9uIGZpcnN0IGFuZCBleGFjdGx5IG9uY2UuXHJcblx0PHVsPlxyXG5cdFx0PGxpPk46IHRoZSBudW1iZXIgb2YgeWVhcnMuPFwvbGk+XHJcblx0XHQ8bGk+WDogYW4gYXJyYXkgb2YgbGVuZ3RoIE4uIEZvciAwICZsZTsgaSAmbGU7IE4tMSwgWFtpXSBnaXZlcyB0aGUgZ3Jvd3RoIGNvZWZmaWNpZW50IGZvciB5ZWFyIGkuPFwvbGk+XHJcblx0XHQ8bGk+WTogYW4gYXJyYXkgb2YgbGVuZ3RoIE4uIEZvciAwICZsZTsgaSAmbGU7IE4tMSwgWVtpXSBnaXZlcyB0aGUgcHJpY2Ugb2YgYSBob3JzZSBhZnRlciB5ZWFyIGkuPFwvbGk+XHJcblx0XHQ8bGk+Tm90ZSB0aGF0IGJvdGggWCBhbmQgWSBzcGVjaWZ5IHRoZSBpbml0aWFsIHZhbHVlcyBnaXZlbiBieSBNYW5zdXIgKGJlZm9yZSBhbnkgdXBkYXRlcykuPFwvbGk+XHJcblx0XHQ8bGk+QWZ0ZXIgaW5pdCB0ZXJtaW5hdGVzLCB0aGUgYXJyYXlzIFggYW5kIFkgcmVtYWluIHZhbGlkLCBhbmQgeW91IG1heSBtb2RpZnkgdGhlaXIgY29udGVudHMgaWYgeW91IHdpc2guPFwvbGk+XHJcblx0XHQ8bGk+VGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gdGhlIG1heGltYWwgYW1vdW50IG9mIG1vbmV5IE1hbnN1ciBjb3VsZCBnZXQgZm9yIHRoZXNlIGluaXRpYWwgdmFsdWVzIG9mIFggYW5kIFksIG1vZHVsbyAxMDxzdXA+OTxcL3N1cD4rNy48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuXHQ8bGk+dXBkYXRlWChwb3MsIHZhbClcclxuXHQ8dWw+XHJcblx0XHQ8bGk+cG9zOiBhbiBpbnRlZ2VyIGZyb20gdGhlIHJhbmdlIDAsIC4uLiwgTi0xLjxcL2xpPlxyXG5cdFx0PGxpPnZhbDogdGhlIG5ldyB2YWx1ZSBmb3IgWFtwb3NdLjxcL2xpPlxyXG5cdFx0PGxpPlRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIHRoZSBtYXhpbWFsIGFtb3VudCBvZiBtb25leSBNYW5zdXIgY291bGQgZ2V0IGFmdGVyIHRoaXMgdXBkYXRlLCBtb2R1bG8gMTA8c3VwPjk8XC9zdXA+KzcuPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcblx0PGxpPnVwZGF0ZVkocG9zLCB2YWwpXHJcblx0PHVsPlxyXG5cdFx0PGxpPnBvczogYW4gaW50ZWdlciBmcm9tIHRoZSByYW5nZSAwLCAuLi4sIE4tMS48XC9saT5cclxuXHRcdDxsaT52YWw6IHRoZSBuZXcgdmFsdWUgZm9yIFlbcG9zXS48XC9saT5cclxuXHRcdDxsaT5UaGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiB0aGUgbWF4aW1hbCBhbW91bnQgb2YgbW9uZXkgTWFuc3VyIGNvdWxkIGdldCBhZnRlciB0aGlzIHVwZGF0ZSwgbW9kdWxvIDEwPHN1cD45PFwvc3VwPis3LjxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPllvdSBtYXkgYXNzdW1lIHRoYXQgYWxsIHRoZSBpbml0aWFsLCBhcyB3ZWxsIGFzIHVwZGF0ZWQgdmFsdWVzIG9mIFhbaV0gYW5kIFlbaV0gYXJlIGJldHdlZW4gMSBhbmQgMTA8c3VwPjk8XC9zdXA+IGluY2x1c2l2ZS48XC9wPlxyXG5cclxuPHA+QWZ0ZXIgY2FsbGluZyBpbml0LCB0aGUgZ3JhZGVyIHdpbGwgY2FsbCB1cGRhdGVYIGFuZCB1cGRhdGVZIHNldmVyYWwgdGltZXMuIFRoZSB0b3RhbCBudW1iZXIgb2YgY2FsbHMgdG8gdXBkYXRlWCBhbmQgdXBkYXRlWSB3aWxsIGJlIE0uPFwvcD5cclxuIiwiaW5wdXQiOiI8dWw+XHJcblx0PGxpPmxpbmUgMTogTjxcL2xpPlxyXG5cdDxsaT5saW5lIDI6IFhbMF0gJmhlbGxpcDsgWFtOIC0gMV08XC9saT5cclxuXHQ8bGk+bGluZSAzOiBZWzBdICZoZWxsaXA7IFlbTiAtIDFdPFwvbGk+XHJcblx0PGxpPmxpbmUgNDogTTxcL2xpPlxyXG5cdDxsaT5saW5lcyA1LCAmaGVsbGlwOywgTSArIDQ6IHRocmVlIG51bWJlcnMgdHlwZSBwb3MgdmFsICh0eXBlPTEgZm9yIHVwZGF0ZVggYW5kIHR5cGU9MiBmb3IgdXBkYXRlWSkuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+MSAmbGU7IE4gJmxlOyA1MDAsMDAwLCAwICZsZTsgTSAmbGU7IDEwMCwwMDA8XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5QcmludHMgdGhlIHJldHVybiB2YWx1ZSBvZiBpbml0IGZvbGxvd2VkIGJ5IHRoZSByZXR1cm4gdmFsdWVzIG9mIGFsbCBjYWxscyB0byB1cGRhdGVYIGFuZCB1cGRhdGVZLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJwcm9ibGVtX2xhbmdfY29kZSI6Ilx1YzYwMVx1YzViNCJ9XQ==