시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 (추가 시간 없음) 256 MB 35 9 8 23.529%

문제

당신은 N개의 작은 섬으로 이루어진 다도해에 다리를 건설하여 임의의 한 섬에서 임의의 다른 섬으로 도달 가능하게 하고 싶다. 현재는 아무 다리도 없는 상태이다.

섬은 0번 부터 N-1번까지 번호가 붙어있다.

당신은 아래와 같은 알고리즘에 따라 다리를 건설하기로 했다.

  • 세 개의 양의 정수 Seed, A, B 를 고른다. 이후, E[ i ], X[ i ], Y[ i ] 를 아래와 같이 정의한다.
    • E[ 1 ] = Seed % N 그리고 E[ i ] = (E[ i-1 ] * A + B) % N2 (i > 1). (각각의 E[i] 값은 어느 두 섬을 연결하는 다리를 지을지 결정한다.)
    • X[ i ] = E[ i ] / N 그리고 Y[ i ] = E[ i ] % N (i ≥ 1).
    • 위 두 수식에서 "%" 는 정수 나머지 연산을 나타내는 Modulo 이며, "/"은 정수 나눗셈 연산이다.
  • 오늘부터 1일 후 (즉, 내일) X[ 1 ] 번 섬과 Y[ 1 ]번 섬을 연결하는 다리를 건설한다. 만약 X[ 1 ] = Y[ 1 ]이면 이 날은 건설은 하지 않고 논다.
  • 오늘 부터 i일 후, X[ i ] 번 섬과 Y[ i ] 번 섬을 연결하는 다리를 건설한다. 만약 X[ i ] = Y[ i ] 이거나 이미 두 섬을 잇는 다리가 있다면, 이 날은 건설은 하지 않고 논다.

위 알고리즘에 따라 다리를 건설 할 때, 당신은 오늘 부터 몇 일이 지난 후 (M일 후) 목적을 달성할지 궁금하다.

예를 들어 N = 4, Seed = 2020, A = 2, B = 3 인 경우를 생각해보자. 

  • E[ 1 ] = 2020 % 16 = 4, X[ 1 ] = 4 / 4 = 1, Y[ 1 ] = 4 % 4 = 0. 따라서 (1번섬, 0번섬) 을 잇는 다리를 건설한다.
  • E[ 2 ] = (4 * 2 + 3) % 16 = 11, X[ 2 ] = 11 / 4 = 2, Y[ 2 ] = 11 % 4 = 3. 따라서 (2번섬, 3번섬)을 잇는 다리를 건설한다.
  • E[ 3 ] = (11 * 2 + 3) % 16 = 9, X[ 3 ] = 9 / 4 = 2, Y[ 3 ] = 9 % 4 = 1. 따라서 (2번섬, 1번섬)을 잇는 다리를 건설한다.
  • 세 번째 다리를 건설한 후 임의의 한 섬에서 다른 섬으로 도달할 수 있으므로 이 때 M = 3이다.

다른 예로, N = 4, Seed = 2020, A = 3, B = 4 인 경우를 생각해보자.

  • E[ 1 ] = 2020 % 16 = 4, X[ 1 ] = 4 / 4 = 1, Y[ 1 ] = 4 % 4 = 0. 따라서 (1번섬, 0번섬) 을 잇는 다리를 건설한다.
  • E[ 2 ] = (4 * 3 + 4) % 16 = 0, X[ 2 ] = 0 / 4 = 0, Y[ 2 ] = 0 % 4 = 0. X,Y 값이 같으므로 다리를 건설하지 않는다.
  • E[ 3 ] = (0 * 3 + 4) % 16 = 4, X[ 3 ] = 4 / 4 = 1, Y[ 3 ] = 4 % 4 = 0. 이미 다리가 있으므로 다리를 건설하지 않는다.
  • 이 경우, (1번섬, 0번섬)을 잇는 다리 이외에 다른 다리를 건설하지 못한다. 따라서 이 때 위 조건을 만족하는 M은 존재하지 않는다.

입력으로 N, Seed, A, B가 주어졌을 때, 위 조건을 만족하는 M값을 구하여 출력한다. 만약 조건을 만족하는 M값이 없다면 0을 출력한다.

입력

첫 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스는 네 개의 정수가 공백으로 구분되어 주어지는데, 순서대로 N, Seed, A, B 이다.

출력

조건을 만족하는 M이 존재하면 그 중 최소값을 출력하고, 존재하지 않으면 0을 출력한다.

제한

  • 1 ≤ T ≤ 10
  • 2 ≤ N ≤ 1,000
  • 1 ≤ Seed, A, B ≤ 1,000,000,000

예제 입력 1

4
4 2020 2 3
4 2020 3 4
4 2020 9 7
5 2020 4 7

예제 출력 1

3
0
6
5
W3sicHJvYmxlbV9pZCI6IjE5NTkzIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViMmU0XHViM2M0XHVkNTc0IiwiZGVzY3JpcHRpb24iOiI8cD5cdWIyZjlcdWMyZTBcdWM3NDAgTlx1YWMxY1x1Yzc1OCBcdWM3OTFcdWM3NDAgXHVjMTJjXHVjNzNjXHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzljNCBcdWIyZTRcdWIzYzRcdWQ1NzRcdWM1ZDAgXHViMmU0XHViOWFjXHViOTdjIFx1YWM3NFx1YzEyNFx1ZDU1OFx1YzVlYyBcdWM3ODRcdWM3NThcdWM3NTggXHVkNTVjIFx1YzEyY1x1YzVkMFx1YzExYyBcdWM3ODRcdWM3NThcdWM3NTggXHViMmU0XHViOTc4IFx1YzEyY1x1YzczY1x1Yjg1YyBcdWIzYzRcdWIyZWMgXHVhYzAwXHViMmE1XHVkNTU4XHVhYzhjIFx1ZDU1OFx1YWNlMCBcdWMyZjZcdWIyZTQuIFx1ZDYwNFx1YzdhY1x1YjI5NCBcdWM1NDRcdWJiMzQgXHViMmU0XHViOWFjXHViM2M0IFx1YzVjNlx1YjI5NCBcdWMwYzFcdWQwZGNcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzEyY1x1Yzc0MCAwXHViYzg4IFx1YmQ4MFx1ZDEzMCBOLTFcdWJjODhcdWFlNGNcdWM5YzAgXHViYzg4XHVkNjM4XHVhYzAwIFx1YmQ5OVx1YzViNFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViMmY5XHVjMmUwXHVjNzQwIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NDAgXHVjNTRjXHVhY2UwXHViOWFjXHVjOTk4XHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWIyZTRcdWI5YWNcdWI5N2MgXHVhYzc0XHVjMTI0XHVkNTU4XHVhZTMwXHViODVjIFx1ZDU4OFx1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWMxMzggXHVhYzFjXHVjNzU4IFx1YzU5MVx1Yzc1OCZuYnNwO1x1YzgxNVx1YzIxOCBTZWVkLCBBLCBCIFx1Yjk3YyBcdWFjZTBcdWI5NzhcdWIyZTQuIFx1Yzc3NFx1ZDZjNCwgRVsgaSBdLCBYWyBpIF0sIFlbIGkgXSBcdWI5N2MgXHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1Yzc3NCBcdWM4MTVcdWM3NThcdWQ1NWNcdWIyZTQuXHJcblx0PHVsPlxyXG5cdFx0PGxpPkVbIDEgXSA9IFNlZWQgJSBOPHN1cD4yJm5ic3A7PFwvc3VwPiZuYnNwO1x1YWRmOFx1YjlhY1x1YWNlMCBFWyBpIF0gPSAoRVsgaS0xIF0gKiBBICsgQikgJSBOPHN1cD4yPFwvc3VwPiAoaSAmZ3Q7Jm5ic3A7MSkuIChcdWFjMDFcdWFjMDFcdWM3NTggRVtpXSBcdWFjMTJcdWM3NDAgXHVjNWI0XHViMjkwIFx1YjQ1MCBcdWMxMmNcdWM3NDQgXHVjNWYwXHVhY2IwXHVkNTU4XHViMjk0IFx1YjJlNFx1YjlhY1x1Yjk3YyBcdWM5YzBcdWM3NDRcdWM5YzAgXHVhY2IwXHVjODE1XHVkNTVjXHViMmU0Lik8XC9saT5cclxuXHRcdDxsaT5YWyBpIF0gPSBFWyBpIF0gXC8gTiZuYnNwO1x1YWRmOFx1YjlhY1x1YWNlMCBZWyBpIF0gPSBFWyBpIF0gJSBOIChpICZnZTsgMSkuPFwvbGk+XHJcblx0XHQ8bGk+XHVjNzA0IFx1YjQ1MCBcdWMyMThcdWMyZGRcdWM1ZDBcdWMxMWMmbmJzcDsmcXVvdDslJnF1b3Q7IFx1YjI5NCBcdWM4MTVcdWMyMTggXHViMDk4XHViYTM4XHVjOWMwIFx1YzVmMFx1YzBiMFx1Yzc0NCBcdWIwOThcdWQwYzBcdWIwYjRcdWIyOTQgTW9kdWxvIFx1Yzc3NFx1YmE3MCwgJnF1b3Q7XC8mcXVvdDtcdWM3NDAgXHVjODE1XHVjMjE4IFx1YjA5OFx1YjIxN1x1YzE0OCBcdWM1ZjBcdWMwYjBcdWM3NzRcdWIyZTQuPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcblx0PGxpPlx1YzYyNFx1YjI5OFx1YmQ4MFx1ZDEzMCAxXHVjNzdjIFx1ZDZjNCAoXHVjOTg5LCBcdWIwYjRcdWM3N2MpJm5ic3A7WFsgMSZuYnNwO10gXHViYzg4IFx1YzEyY1x1YWNmYyBZWyAxJm5ic3A7XVx1YmM4OCBcdWMxMmNcdWM3NDQgXHVjNWYwXHVhY2IwXHVkNTU4XHViMjk0IFx1YjJlNFx1YjlhY1x1Yjk3YyBcdWFjNzRcdWMxMjRcdWQ1NWNcdWIyZTQuIFx1YjljY1x1YzU3ZCBYWyAxJm5ic3A7XSA9IFlbIDEmbmJzcDtdXHVjNzc0XHViYTc0IFx1Yzc3NCBcdWIwYTBcdWM3NDAgXHVhYzc0XHVjMTI0XHVjNzQwIFx1ZDU1OFx1YzljMCBcdWM1NGFcdWFjZTAgXHViMTdjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWM2MjRcdWIyOTggXHViZDgwXHVkMTMwIGlcdWM3N2MgXHVkNmM0LCBYWyBpJm5ic3A7XSBcdWJjODggXHVjMTJjXHVhY2ZjIFlbIGkmbmJzcDtdIFx1YmM4OCBcdWMxMmNcdWM3NDQgXHVjNWYwXHVhY2IwXHVkNTU4XHViMjk0IFx1YjJlNFx1YjlhY1x1Yjk3YyBcdWFjNzRcdWMxMjRcdWQ1NWNcdWIyZTQuIFx1YjljY1x1YzU3ZCBYWyBpIF0gPSBZWyBpIF0gXHVjNzc0XHVhYzcwXHViMDk4IFx1Yzc3NFx1YmJmOCBcdWI0NTAgXHVjMTJjXHVjNzQ0IFx1Yzc4N1x1YjI5NCBcdWIyZTRcdWI5YWNcdWFjMDAgXHVjNzg4XHViMmU0XHViYTc0LCBcdWM3NzQgXHViMGEwXHVjNzQwIFx1YWM3NFx1YzEyNFx1Yzc0MCBcdWQ1NThcdWM5YzAgXHVjNTRhXHVhY2UwIFx1YjE3Y1x1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWM3MDQgXHVjNTRjXHVhY2UwXHViOWFjXHVjOTk4XHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWIyZTRcdWI5YWNcdWI5N2MgXHVhYzc0XHVjMTI0IFx1ZDU2MCBcdWI1NGMsIFx1YjJmOVx1YzJlMFx1Yzc0MCBcdWM2MjRcdWIyOTggXHViZDgwXHVkMTMwIFx1YmE4NyBcdWM3N2NcdWM3NzQgXHVjOWMwXHViMDljIFx1ZDZjNCAoTVx1Yzc3YyBcdWQ2YzQpIFx1YmFhOVx1YzgwMVx1Yzc0NCBcdWIyZWNcdWMxMzFcdWQ1NjBcdWM5YzAgXHVhZDgxXHVhZTA4XHVkNTU4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2MDhcdWI5N2MgXHViNGU0XHVjNWI0IE4gPSA0LCBTZWVkID0gMjAyMCwgQSA9IDIsIEIgPSAzIFx1Yzc3OCBcdWFjYmRcdWM2YjBcdWI5N2MgXHVjMGRkXHVhYzAxXHVkNTc0XHViY2Y0XHVjNzkwLiZuYnNwOzxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPkVbIDEgXSA9IDIwMjAgJSAxNiA9IDQsIFhbIDEgXSA9IDQgXC8gNCA9IDEsIFlbIDEgXSA9IDQgJSA0ID0gMC4gXHViNTMwXHViNzdjXHVjMTFjICgxXHViYzg4XHVjMTJjLCAwXHViYzg4XHVjMTJjKSBcdWM3NDQgXHVjNzg3XHViMjk0IFx1YjJlNFx1YjlhY1x1Yjk3YyBcdWFjNzRcdWMxMjRcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPkVbIDIgXSA9ICg0ICogMiArIDMpICUgMTYgPSAxMSwgWFsgMiBdID0gMTEgXC8gNCA9IDIsIFlbIDIgXSA9IDExICUgNCA9IDMuIFx1YjUzMFx1Yjc3Y1x1YzExYyAoMlx1YmM4OFx1YzEyYywgM1x1YmM4OFx1YzEyYylcdWM3NDQgXHVjNzg3XHViMjk0IFx1YjJlNFx1YjlhY1x1Yjk3YyBcdWFjNzRcdWMxMjRcdWQ1NWNcdWIyZTQuPFwvbGk+XHJcblx0PGxpPkVbIDMgXSA9ICgxMSAqIDIgKyAzKSAlIDE2ID0gOSwgWFsgMyBdID0gOSBcLyA0ID0gMiwgWVsgMyBdID0gOSAlIDQgPSAxLiBcdWI1MzBcdWI3N2NcdWMxMWMgKDJcdWJjODhcdWMxMmMsIDFcdWJjODhcdWMxMmMpXHVjNzQ0IFx1Yzc4N1x1YjI5NCBcdWIyZTRcdWI5YWNcdWI5N2MgXHVhYzc0XHVjMTI0XHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5cdWMxMzggXHViYzg4XHVjOWY4IFx1YjJlNFx1YjlhY1x1Yjk3YyBcdWFjNzRcdWMxMjRcdWQ1NWMgXHVkNmM0IFx1Yzc4NFx1Yzc1OFx1Yzc1OCBcdWQ1NWMgXHVjMTJjXHVjNWQwXHVjMTFjIFx1YjJlNFx1Yjk3OCBcdWMxMmNcdWM3M2NcdWI4NWMgXHViM2M0XHViMmVjXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWM3M2NcdWJiYzBcdWI4NWMgXHVjNzc0IFx1YjU0YyBNID0gM1x1Yzc3NFx1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWIyZTRcdWI5NzggXHVjNjA4XHViODVjLCBOID0gNCwgU2VlZCA9IDIwMjAsIEEgPSAzLCBCID0gNCBcdWM3NzggXHVhY2JkXHVjNmIwXHViOTdjIFx1YzBkZFx1YWMwMVx1ZDU3NFx1YmNmNFx1Yzc5MC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5FWyAxIF0gPSAyMDIwICUgMTYgPSA0LCBYWyAxIF0gPSA0IFwvIDQgPSAxLCBZWyAxIF0gPSA0ICUgNCA9IDAuIFx1YjUzMFx1Yjc3Y1x1YzExYyAoMVx1YmM4OFx1YzEyYywgMFx1YmM4OFx1YzEyYykgXHVjNzQ0IFx1Yzc4N1x1YjI5NCBcdWIyZTRcdWI5YWNcdWI5N2MgXHVhYzc0XHVjMTI0XHVkNTVjXHViMmU0LjxcL2xpPlxyXG5cdDxsaT5FWyAyIF0gPSAoNCAqIDMmbmJzcDsrIDQpICUgMTYgPSAwLCBYWyAyIF0gPSAwJm5ic3A7XC8gNCZuYnNwOz0gMCwgWVsgMiBdID0gMCAlIDQgPSAwLiZuYnNwO1gsWSZuYnNwO1x1YWMxMlx1Yzc3NCBcdWFjMTlcdWM3M2NcdWJiYzBcdWI4NWMgXHViMmU0XHViOWFjXHViOTdjIFx1YWM3NFx1YzEyNFx1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuPFwvbGk+XHJcblx0PGxpPkVbIDMgXSA9ICgwJm5ic3A7KiAzJm5ic3A7KyA0KSAlIDE2ID0gNCwgWFsgMyBdID0gNCBcLyA0ID0gMSwgWVsgMyBdID0gNCAlIDQgPSAwLiBcdWM3NzRcdWJiZjggXHViMmU0XHViOWFjXHVhYzAwIFx1Yzc4OFx1YzczY1x1YmJjMFx1Yjg1YyBcdWIyZTRcdWI5YWNcdWI5N2MgXHVhYzc0XHVjMTI0XHVkNTU4XHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNzc0IFx1YWNiZFx1YzZiMCwgKDFcdWJjODhcdWMxMmMsIDBcdWJjODhcdWMxMmMpXHVjNzQ0IFx1Yzc4N1x1YjI5NCBcdWIyZTRcdWI5YWMgXHVjNzc0XHVjNjc4XHVjNWQwIFx1YjJlNFx1Yjk3OCBcdWIyZTRcdWI5YWNcdWI5N2MgXHVhYzc0XHVjMTI0XHVkNTU4XHVjOWMwIFx1YmFiYlx1ZDU1Y1x1YjJlNC4gXHViNTMwXHViNzdjXHVjMTFjIFx1Yzc3NCBcdWI1NGMgXHVjNzA0IFx1Yzg3MFx1YWM3NFx1Yzc0NCBcdWI5Y2NcdWM4NzFcdWQ1NThcdWIyOTQgTVx1Yzc0MCBcdWM4NzRcdWM3YWNcdWQ1NThcdWM5YzAgXHVjNTRhXHViMjk0XHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1Yzc4NVx1YjgyNVx1YzczY1x1Yjg1YyBOLCBTZWVkLCBBLCBCXHVhYzAwIFx1YzhmY1x1YzViNFx1Yzg0Y1x1Yzc0NCBcdWI1NGMsIFx1YzcwNCBcdWM4NzBcdWFjNzRcdWM3NDQgXHViOWNjXHVjODcxXHVkNTU4XHViMjk0IE1cdWFjMTJcdWM3NDQgXHVhZDZjXHVkNTU4XHVjNWVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHViOWNjXHVjNTdkIFx1Yzg3MFx1YWM3NFx1Yzc0NCBcdWI5Y2NcdWM4NzFcdWQ1NThcdWIyOTQgTVx1YWMxMlx1Yzc3NCBcdWM1YzZcdWIyZTRcdWJhNzQgMFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWIgXHVjOTA0XHVjNWQwIFx1ZDE0Y1x1YzJhNFx1ZDJiOCBcdWNmMDBcdWM3NzRcdWMyYTRcdWM3NTggXHVjMjE4IFRcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YjI5NCBcdWIxMjQgXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOFx1YWMwMCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljMFx1YjI5NFx1YjM3MCwgXHVjMjFjXHVjMTFjXHViMzAwXHViODVjIE4sIFNlZWQsIEEsIEIgXHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1Yzg3MFx1YWM3NFx1Yzc0NCBcdWI5Y2NcdWM4NzFcdWQ1NThcdWIyOTQgTVx1Yzc3NCBcdWM4NzRcdWM3YWNcdWQ1NThcdWJhNzQgXHVhZGY4IFx1YzkxMSBcdWNkNWNcdWMxOGNcdWFjMTJcdWM3NDQgXHVjZDljXHViODI1XHVkNTU4XHVhY2UwLCBcdWM4NzRcdWM3YWNcdWQ1NThcdWM5YzAgXHVjNTRhXHVjNzNjXHViYTc0IDBcdWM3NDQgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiIsImxpbWl0IjoiPHVsPlxyXG5cdDxsaT4xICZsZTsgVCAmbGU7IDEwPFwvbGk+XHJcblx0PGxpPjIgJmxlOyBOICZsZTsgMSwwMDA8XC9saT5cclxuXHQ8bGk+MSAmbGU7IFNlZWQsIEEsIEIgJmxlOyAxLDAwMCwwMDAsMDAwPFwvbGk+XHJcbjxcL3VsPlxyXG4ifSx7InByb2JsZW1faWQiOiIxOTU5MyIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IklzbGFuZHMiLCJkZXNjcmlwdGlvbiI6IjxwPllvdSBhcmUgdHJ5aW5nIHRvIGJ1aWxkIGJyaWRnZXMgdG8gY29ubmVjdCBOIGlzbGFuZHMgc3VjaCB0aGF0IHlvdSBjYW4gcmVhY2ggYW55IGlzbGFuZCBmcm9tIGFueSBpc2xhbmQuIEN1cnJlbnRseSwgdGhlcmUgYXJlIG5vIGJyaWRnZXMuPFwvcD5cclxuXHJcbjxwPklzbGFuZHMgYXJlIGxhYmVsZWQgYXMgMCB0byBOLTEsIGluY2x1c2l2ZS48XC9wPlxyXG5cclxuPHA+WW91JiMzOTt2ZSBkZWNpZGVkIHRvIGJ1aWxkIHRoZSBicmlkZ2VzIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHByb2NlZHVyZTo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5GaXJzdCwgeW91IHBpY2sgdGhyZWUgcG9zaXRpdmUgaW50ZWdlcnMsIFNlZWQsIEEsIGFuZCBCLiBUaGVuLCB5b3UgZGVmaW5lIEVbIGkgXSwgWFsgaSBdLCBhbmQgWVsgaSBdIGFzIGZvbGxvd3MuXHJcblx0PHVsPlxyXG5cdFx0PGxpPkVbIDEgXSA9IFNlZWQgJSBOPHN1cD4yJm5ic3A7PFwvc3VwPiZuYnNwO2FuZCBFWyBpIF0gPSAoRVsgaS0xIF0gKiBBICsgQikgJSBOPHN1cD4yPFwvc3VwPiAoaSAmZ3Q7Jm5ic3A7MSkuIChFYWNoIEVbaV0gZGVzY3JpYmVzIHdoaWNoIHR3byBpc2xhbmRzIHlvdSYjMzk7bGwgY29ubmVjdCBieSBidWlsZGluZyBhIGJyaWRnZS4pPFwvbGk+XHJcblx0XHQ8bGk+WFsgaSBdID0gRVsgaSBdIFwvIE4mbmJzcDthbmQgWVsgaSBdID0gRVsgaSBdICUgTiAoaSAmZ2U7IDEpLjxcL2xpPlxyXG5cdFx0PGxpPkluIHRoZSBkZWZpbml0aW9uIGFib3ZlLCAmcXVvdDslJnF1b3Q7IGlzIHRoZSBtb2R1bG8gb3BlcmF0aW9uIGFuZCAmcXVvdDtcLyZxdW90OyBpcyB0aGUgaW50ZWdlciBkaXZpc2lvbiBvcGVyYXRpb24uPFwvbGk+XHJcblx0PFwvdWw+XHJcblx0PFwvbGk+XHJcblx0PGxpPkluIDEgZGF5IGZyb20gdG9kYXkgKGkuZS4sIHRvbW9ycm93KSwgeW91JiMzOTtsbCBidWlsZCBhIGJyaWRnZSB0aGF0IHdvdWxkIGNvbm5lY3QgWFsgMSBdIGFuZCBZWyAxIF0uIElmIFhbIDEgXSA9IFlbIDEgXSwgdGhlbiB5b3UgZG8gbm90IGJ1aWxkIGFueSBicmlkZ2VzIG9uIHRoaXMgZGF5LjxcL2xpPlxyXG5cdDxsaT5JbiBpIGRheXMgZnJvbSB0b2RheSwgeW91JiMzOTtsbCBidWlsZCBhIGJyaWRnZSB0aGF0IHdvdWxkIGNvbm5lY3QgWFsgaSBdIGFuZCBZWyBpIF0uIElmIFhbIGkgXSA9IFlbIGkgXSBvciBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgYnJpZGdlIGNvbm5lY3RpbmcgdGhlc2UgdHdvIGlzbGFuZHMsIHRoZW4geW91IGRvIG5vdCBidWlsZCBhbnkgYnJpZGdlcyBvbiB0aGlzIGRheS4mbmJzcDs8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5Zb3UmIzM5O3JlIGN1cmlvdXMgdG8ga25vdyBpbiBob3cgbWFueSBkYXlzIChpbiBNIGRheXMpLCB5b3UmIzM5O2xsIGJlIGFibGUgdG8gYWNjb21wbGlzaCB5b3VyIGdvYWwuJm5ic3A7PFwvcD5cclxuXHJcbjxwPkZvciBpbnN0YW5jZSwgc3VwcG9zZSB0aGF0Jm5ic3A7TiA9IDQsIFNlZWQgPSAyMDIwLCBBID0gMiwgYW5kIEIgPSAzLjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPkVbIDEgXSA9IDIwMjAgJSAxNiA9IDQsIFhbIDEgXSA9IDQgXC8gNCA9IDEsIFlbIDEgXSA9IDQgJSA0ID0gMC48YnIgXC8+XHJcblx0SGVuY2UsIHlvdSYjMzk7bGwgYnVpbGQgYSBicmlkZ2UgdG8gY29ubmVjdCBpc2xhbmQgMSBhbmQgaXNsYW5kIDAuPFwvbGk+XHJcblx0PGxpPkVbIDIgXSA9ICg0ICogMiArIDMpICUgMTYgPSAxMSwgWFsgMiBdID0gMTEgXC8gNCA9IDIsIFlbIDIgXSA9IDExICUgNCA9IDMuPGJyIFwvPlxyXG5cdFlvdSYjMzk7bGwgYnVpbGQgYSBicmlkZ2UgdG8gY29ubmVjdCBpc2xhbmQgMiBhbmQgaXNsYW5kIDMuPFwvbGk+XHJcblx0PGxpPkVbIDMgXSA9ICgxMSAqIDIgKyAzKSAlIDE2ID0gOSwgWFsgMyBdID0gOSBcLyA0ID0gMiwgWVsgMyBdID0gOSAlIDQgPSAxLjxiciBcLz5cclxuXHRZb3UmIzM5O2xsIGJ1aWxkIGEgYnJpZGdlIHRvIGNvbm5lY3QgaXNsYW5kIDIgYW5kIGlzbGFuZCAxLjxcL2xpPlxyXG5cdDxsaT5BZnRlciB0aGUgdGhpcmQgYnJpZGdlIGlzIGJ1aWx0LCBub3cgeW91IGNhbiByZWFjaCBhbnkgaXNsYW5kIGZyb20gYW55IGlzbGFuZCwgc28gdGhlIGFuc3dlciBpcyBNID0gMy48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5JbiBhbm90aGVyIGV4YW1wbGUsIHN1cHBvc2UgTiA9IDQsIFNlZWQgPSAyMDIwLCBBID0gMywgYW5kIEIgPSA0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPkVbIDEgXSA9IDIwMjAgJSAxNiA9IDQsIFhbIDEgXSA9IDQgXC8gNCA9IDEsIFlbIDEgXSA9IDQgJSA0ID0gMC48YnIgXC8+XHJcblx0SGVuY2UsIHlvdSYjMzk7bGwgYnVpbGQgYSBicmlkZ2UgdG8gY29ubmVjdCBpc2xhbmQgMSBhbmQgaXNsYW5kIDAuPFwvbGk+XHJcblx0PGxpPkVbIDIgXSA9ICg0ICogMyZuYnNwOysgNCkgJSAxNiA9IDAsIFhbIDIgXSA9IDAmbmJzcDtcLyA0Jm5ic3A7PSAwLCBZWyAyIF0gPSAwICUgNCA9IDAuJm5ic3A7PGJyIFwvPlxyXG5cdEJlY2F1c2UgWFsyXSA9IFlbMl0sIHlvdSB3b24mIzM5O3QgYnVpbGQgYW55IGJyaWRnZXMuPFwvbGk+XHJcblx0PGxpPkVbIDMgXSA9ICgwJm5ic3A7KiAzJm5ic3A7KyA0KSAlIDE2ID0gNCwgWFsgMyBdID0gNCBcLyA0ID0gMSwgWVsgMyBdID0gNCAlIDQgPSAwLjxiciBcLz5cclxuXHRJc2xhbmQgMSBhbmQgSXNsYW5kIDAgYXJlIGFscmVhZHkgY29ubmVjdGVkIGJ5IGEgYnJpZGdlLCBzbyB5b3UmIzM5O2xsIHNraXAuPFwvbGk+XHJcblx0PGxpPkluIHRoaXMgZXhhbXBsZSwgeW91IHdvbiYjMzk7dCBiZSBhYmxlIHRvIGJ1aWxkIGFueSBvdGhlciBicmlkZ2UgdGhhbiB0aGUgZmlyc3Qgb25lLiBIZW5jZSwgdGhlcmUgaXMgbm8gTSB0aGF0IG1lZXRzIHlvdXIgZ29hbC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5HaXZlbiBOLCBTZWVkLCBBLCBhbmQgQiwgY29tcHV0ZSB0aGUgY29ycmVjdCB2YWx1ZSBvZiBNLiBJZiBubyBzdWNoIE0gZXhpc3RzLCBvdXRwdXQgMC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIHdpbGwgY29udGFpbiBhbiBpbnRlZ2VyLCBULCB0aGUgbnVtYmVyIG9mIHRlc3QgY2FzZXMuPFwvcD5cclxuXHJcbjxwPkVhY2ggdGVzdCBjYXNlIHdpbGwgY29udGFpbiBmb3VyIGludGVnZXJzIHNlcGFyYXRlZCBieSBhIHdoaXRlc3BhY2U6IE4sIFNlZWQsIEEsIGFuZCBCLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPk91dHB1dCB0aGUgc21hbGxlc3QgTSB0aGF0IG1lZXRzIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGUgcHJvYmxlbSBzdGF0ZW1lbnQuIElmIG5vIHN1Y2ggTSBleGlzdHMsIG91dHB1dCAwLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+MSAmbGU7IFQgJmxlOyAxMDxcL2xpPlxyXG5cdDxsaT4yICZsZTsgTiAmbGU7IDEsMDAwPFwvbGk+XHJcblx0PGxpPjEgJmxlOyBTZWVkLCBBLCBCICZsZTsgMSwwMDAsMDAwLDAwMCZuYnNwOzxcL2xpPlxyXG48XC91bD5cclxuIn1d