문제
준혁이는 1ドル$부터 $N$까지의 수가 적힌 공을 각각 $M$개씩 가지고 있다. 그리고 같은 숫자가 적힌 $M$개의 공들은 모두 색이 다르다. 준혁이는 $N$의 약수 중 $K$를 하나 정하고 자신이 가진 $N\times M$개의 공들 중 한 개 이상의 공을 뽑아 적힌 수의 합이 $K$의 배수가 되도록 하는 경우의 수를 구하고자 한다.
준혁이가 뽑은 공들 중 하나라도 색깔 혹은 적힌 수가 다르면 다른 경우로 센다.
출력
준혁이가 공들에 적힌 수들의 합이 $K$의 배수가 되도록 한 개 이상의 공을 뽑는 경우의 수를 10ドル^9+7$로 나눈 나머지를 출력한다.
단, 10ドル^9+7$은 소수이다.
서브태스크
| 번호 | 배점 | 제한 | | 1 | 26 | $K=1$
|
| 2 | 74 | $K \le 2$
|
| 3 | 28 | $N \times M \le 20$
|
| 4 | 82 | $N, M \le 300$
|
| 5 | 190 | 추가적인 제한 조건 없음
|
편의상 1ドル$부터 4ドル$까지 적힌 빨간색 공이 한 개씩 있다고 하자. 이 중 한 개 이상의 공을 뽑아 1ドル$의 배수가 되는 경우는 다음과 같이 4ドル+4+2+2+2+1=15$가지이다.
- 합이 1ドル,ドル 2ドル,ドル 3ドル$인 경우 4ドル$가지
- 합이 4ドル,ドル 5ドル$인 경우 4ドル$가지
- 합이 8ドル,ドル 9ドル$인 경우 2ドル$가지
편의상 1ドル$부터 4ドル$까지 적힌 빨간색 공이 한 개 씩 있다고 하자. 이 중 한 개 이상의 공을 뽑아 2ドル$의 배수가 되는 경우는 다음과 같이 3ドル+2+2=7$가지이다.
- 합이 2ドル,ドル 4ドル$인 경우 3ドル$가지
- 합이 8ドル,ドル 10ドル$인 경우 2ドル$가지
편의상 1ドル$부터 3ドル$까지 적힌 빨간색, 파란색 공이 각각 한 개씩 있다고 하자. 이 중 한 개 이상의 공을 뽑아 3ドル$의 배수가 되는 경우는 다음과 같이 6ドル+10+6+1=23$가지이다.
W3sicHJvYmxlbV9pZCI6IjMxNTQ0IiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiS1x1Yzc1OCBcdWJjMzBcdWMyMTggRXh0cmVtZSIsImRlc2NyaXB0aW9uIjoiPHA+XHVjOTAwXHVkNjAxXHVjNzc0XHViMjk0ICQxJFx1YmQ4MFx1ZDEzMCAkTiRcdWFlNGNcdWM5YzBcdWM3NTggXHVjMjE4XHVhYzAwIFx1YzgwMVx1ZDc4YyBcdWFjZjVcdWM3NDQgXHVhYzAxXHVhYzAxICRNJFx1YWMxY1x1YzUyOSBcdWFjMDBcdWM5YzBcdWFjZTAgXHVjNzg4XHViMmU0LiBcdWFkZjhcdWI5YWNcdWFjZTAgXHVhYzE5XHVjNzQwIFx1YzIyYlx1Yzc5MFx1YWMwMCBcdWM4MDFcdWQ3OGMgJE0kXHVhYzFjXHVjNzU4IFx1YWNmNVx1YjRlNFx1Yzc0MCBcdWJhYThcdWI0NTAgXHVjMGM5XHVjNzc0IFx1YjJlNFx1Yjk3NFx1YjJlNC4gXHVjOTAwXHVkNjAxXHVjNzc0XHViMjk0ICROJFx1Yzc1OCBcdWM1N2RcdWMyMTggXHVjOTExICRLJFx1Yjk3YyBcdWQ1NThcdWIwOTggXHVjODE1XHVkNTU4XHVhY2UwIFx1Yzc5MFx1YzJlMFx1Yzc3NCBcdWFjMDBcdWM5YzQgJE5cXHRpbWVzIE0kXHVhYzFjXHVjNzU4IFx1YWNmNVx1YjRlNCBcdWM5MTEgXHVkNTVjIFx1YWMxYyBcdWM3NzRcdWMwYzFcdWM3NTggXHVhY2Y1XHVjNzQ0IFx1YmY1MVx1YzU0NCBcdWM4MDFcdWQ3OGMgXHVjMjE4XHVjNzU4IFx1ZDU2OVx1Yzc3NCAkSyRcdWM3NTggXHViYzMwXHVjMjE4XHVhYzAwIFx1YjQxOFx1YjNjNFx1Yjg1ZCBcdWQ1NThcdWIyOTQgXHVhY2JkXHVjNmIwXHVjNzU4IFx1YzIxOFx1Yjk3YyBcdWFkNmNcdWQ1NThcdWFjZTBcdWM3OTAgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM5MDBcdWQ2MDFcdWM3NzRcdWFjMDAgXHViZjUxXHVjNzQwIFx1YWNmNVx1YjRlNCBcdWM5MTEgXHVkNTU4XHViMDk4XHViNzdjXHViM2M0IFx1YzBjOVx1YWU1NCBcdWQ2MzlcdWM3NDAgXHVjODAxXHVkNzhjIFx1YzIxOFx1YWMwMCBcdWIyZTRcdWI5NzRcdWJhNzQgXHViMmU0XHViOTc4IFx1YWNiZFx1YzZiMFx1Yjg1YyBcdWMxM2NcdWIyZTQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWIgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMCBcdWM4MTVcdWMyMTggJE4kLCAkTSQsICRLJFx1YWMwMCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gJCgxXFxsZSBOLCBNLCBLXFxsZSAxMF42KSQ8XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWM5MDBcdWQ2MDFcdWM3NzRcdWFjMDAgXHVhY2Y1XHViNGU0XHVjNWQwIFx1YzgwMVx1ZDc4YyBcdWMyMThcdWI0ZTRcdWM3NTggXHVkNTY5XHVjNzc0ICRLJFx1Yzc1OCBcdWJjMzBcdWMyMThcdWFjMDAgXHViNDE4XHViM2M0XHViODVkIFx1ZDU1YyBcdWFjMWMgXHVjNzc0XHVjMGMxXHVjNzU4IFx1YWNmNVx1Yzc0NCBcdWJmNTFcdWIyOTQgXHVhY2JkXHVjNmIwXHVjNzU4IFx1YzIxOFx1Yjk3YyAkMTBeOSs3JFx1Yjg1YyBcdWIwOThcdWIyMDggXHViMDk4XHViYTM4XHVjOWMwXHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gPFwvcD5cclxuXHJcbjxwPlx1YjJlOCwgJDEwXjkrNyRcdWM3NDAgXHVjMThjXHVjMjE4XHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiIsInN1YnRhc2sxIjoiPHA+JEs9MSQ8XC9wPlxyXG4iLCJzdWJ0YXNrMiI6IjxwPiRLIFxcbGUgMiQ8XC9wPlxyXG4iLCJzdWJ0YXNrMyI6IjxwPiROIFxcdGltZXMgTSBcXGxlIDIwJDxcL3A+XHJcbiIsInN1YnRhc2s0IjoiPHA+JE4sIE0gXFxsZSAzMDAkPFwvcD5cclxuIiwic3VidGFzazUiOiI8cD5cdWNkOTRcdWFjMDBcdWM4MDFcdWM3NzggXHVjODFjXHVkNTVjIFx1Yzg3MFx1YWM3NCBcdWM1YzZcdWM3NGM8XC9wPlxyXG4iLCJzYW1wbGVfZXhwbGFpbl8xIjoiPHA+XHVkM2I4XHVjNzU4XHVjMGMxICQxJFx1YmQ4MFx1ZDEzMCAkNCRcdWFlNGNcdWM5YzAgXHVjODAxXHVkNzhjIFx1YmU2OFx1YWMwNFx1YzBjOSBcdWFjZjVcdWM3NzQgXHVkNTVjIFx1YWMxY1x1YzUyOSBcdWM3ODhcdWIyZTRcdWFjZTAgXHVkNTU4XHVjNzkwLiBcdWM3NzQgXHVjOTExIFx1ZDU1YyBcdWFjMWMgXHVjNzc0XHVjMGMxXHVjNzU4IFx1YWNmNVx1Yzc0NCBcdWJmNTFcdWM1NDQgJDEkXHVjNzU4IFx1YmMzMFx1YzIxOFx1YWMwMCBcdWI0MThcdWIyOTQgXHVhY2JkXHVjNmIwXHViMjk0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NzQgJDQrNCsyKzIrMisxPTE1JFx1YWMwMFx1YzljMFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWQ1NjlcdWM3NzQgJDEkLCAkMiQsICQzJFx1Yzc3OCBcdWFjYmRcdWM2YjAgJDQkXHVhYzAwXHVjOWMwPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC80MmFiZDE0ZC0xODY3LTRiMzYtYjNjZC1jMTE3NWFmNjI4MDNcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDEwOXB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+IDxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvZWIyMTQ3N2EtZDZiMC00YWFmLWIxNDctODUxMThiOWI1YzcxXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAxMDlweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPiA8aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzcwYzY0MmU3LTk4MDktNDY3Yy1iNzVjLWNmZmIxZjBhOTk4MlwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogMjk1cHg7IGhlaWdodDogODBweDtcIiBcLz4gPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVkNTY5XHVjNzc0ICQ0JCwgJDUkXHVjNzc4IFx1YWNiZFx1YzZiMCAkNCRcdWFjMDBcdWM5YzA8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGI8aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzY5MTA1MTU3LTA1MGMtNGE2ZC1hMTU4LTgxZmY3OGQ1NWY3Y1wvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogMjk1cHg7IGhlaWdodDogODBweDtcIiBcLz4gPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC81NzAxMGI0MC02YzYxLTQyMmYtODNkMy1lYWU3NzIwOGMzODZcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDM3OHB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVkNTY5XHVjNzc0ICQ2JFx1Yzc3OCBcdWFjYmRcdWM2YjAgJDIkXHVhYzAwXHVjOWMwPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9iZWE5Mjc3ZC0wNWE2LTRlN2QtOTczNi0yYzIwMTM5Mzk2MjhcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDQ2MXB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVkNTY5XHVjNzc0ICQ3JFx1Yzc3OCBcdWFjYmRcdWM2YjAgJDIkXHVhYzAwXHVjOWMwPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9kNmNkYzMyOC1iMjFkLTQyYmUtYWVhOC0zNWNmMGYyZmM2OTdcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDQ2MXB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVkNTY5XHVjNzc0ICQ4JCwgJDkkXHVjNzc4IFx1YWNiZFx1YzZiMCAkMiRcdWFjMDBcdWM5YzA8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGI8aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzhlYzExMzJiLTY2ZDctNDRmYy1iOWRkLWY2MTQyZDMxMzY0YVwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogMjc0cHg7IGhlaWdodDogODBweDtcIiBcLz4gPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC8xMTlmOTAyYy1kNmQ4LTRmNWEtOTZmOS0yOTYyYjJjMTRhMzRcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDI3NHB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVkNTY5XHVjNzc0ICQxMCRcdWM3NzggXHVhY2JkXHVjNmIwICQxJFx1YWMwMFx1YzljMDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvMzA3YzRlMmMtYjY2Ni00ZjE3LWI3MjItMGQwYTVmOGEwNDQxXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAzNTZweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPjxcL3A+XHJcbiIsInNhbXBsZV9leHBsYWluXzIiOiI8cD5cdWQzYjhcdWM3NThcdWMwYzEgJDEkXHViZDgwXHVkMTMwICQ0JFx1YWU0Y1x1YzljMCBcdWM4MDFcdWQ3OGMgXHViZTY4XHVhYzA0XHVjMGM5IFx1YWNmNVx1Yzc3NCBcdWQ1NWMgXHVhYzFjIFx1YzUyOSBcdWM3ODhcdWIyZTRcdWFjZTAgXHVkNTU4XHVjNzkwLiBcdWM3NzQgXHVjOTExIFx1ZDU1YyBcdWFjMWMgXHVjNzc0XHVjMGMxXHVjNzU4IFx1YWNmNVx1Yzc0NCBcdWJmNTFcdWM1NDQgJDIkXHVjNzU4IFx1YmMzMFx1YzIxOFx1YWMwMCBcdWI0MThcdWIyOTQgXHVhY2JkXHVjNmIwXHViMjk0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NzQgJDMrMisyPTckXHVhYzAwXHVjOWMwXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWQ1NjlcdWM3NzQgJDIkLCAkNCRcdWM3NzggXHVhY2JkXHVjNmIwICQzJFx1YWMwMFx1YzljMDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvZWIyMTQ3N2EtZDZiMC00YWFmLWIxNDctODUxMThiOWI1YzcxXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAxMDlweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPiAgPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC82OTEwNTE1Ny0wNTBjLTRhNmQtYTE1OC04MWZmNzhkNTVmN2NcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDI5NXB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVkNTY5XHVjNzc0ICQ2JFx1Yzc3OCBcdWFjYmRcdWM2YjAgJDIkXHVhYzAwXHVjOWMwPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9iZWE5Mjc3ZC0wNWE2LTRlN2QtOTczNi0yYzIwMTM5Mzk2MjhcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDQ2MXB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+XHVkNTY5XHVjNzc0ICQ4JCwgJDEwJFx1Yzc3OCBcdWFjYmRcdWM2YjAgJDIkXHVhYzAwXHVjOWMwPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC84ZWMxMTMyYi02NmQ3LTQ0ZmMtYjlkZC1mNjE0MmQzMTM2NGFcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDI3NHB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+IDxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvMzA3YzRlMmMtYjY2Ni00ZjE3LWI3MjItMGQwYTVmOGEwNDQxXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAzNTZweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPjxcL3A+XHJcbiIsInNhbXBsZV9leHBsYWluXzMiOiI8cD5cdWQzYjhcdWM3NThcdWMwYzEgJDEkXHViZDgwXHVkMTMwICQzJFx1YWU0Y1x1YzljMCBcdWM4MDFcdWQ3OGMgXHViZTY4XHVhYzA0XHVjMGM5LCBcdWQzMGNcdWI3ODBcdWMwYzkgXHVhY2Y1XHVjNzc0IFx1YWMwMVx1YWMwMSBcdWQ1NWMgXHVhYzFjXHVjNTI5IFx1Yzc4OFx1YjJlNFx1YWNlMCBcdWQ1NThcdWM3OTAuIFx1Yzc3NCBcdWM5MTEgXHVkNTVjIFx1YWMxYyBcdWM3NzRcdWMwYzFcdWM3NTggXHVhY2Y1XHVjNzQ0IFx1YmY1MVx1YzU0NCAkMyRcdWM3NTggXHViYzMwXHVjMjE4XHVhYzAwIFx1YjQxOFx1YjI5NCBcdWFjYmRcdWM2YjBcdWIyOTQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc3NCAkNisxMCs2KzE9MjMkXHVhYzAwXHVjOWMwXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlx1ZDU2OVx1Yzc3NCAkMyRcdWM3NzggXHVhY2JkXHVjNmIwICQ2JFx1YWMwMFx1YzljMDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvZGE5NTg0MDItZWQ5NC00OTUxLTllNjYtOTY5ZGY2ZjQ2NWJiXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiA0OTFweDsgaGVpZ2h0OiAxNjBweDtcIiBcLz48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWQ1NjlcdWM3NzQgJDYkXHVjNzc4IFx1YWNiZFx1YzZiMCAkMTAkXHVhYzAwXHVjOWMwPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9lZGM5NzdkNy1iMDdiLTQzZjUtODI3Ni00MGYwNDc5ODUxMjVcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDU1MnB4OyBoZWlnaHQ6IDQwMHB4O1wiIFwvPjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlx1ZDU2OVx1Yzc3NCAkOSRcdWM3NzggXHVhY2JkXHVjNmIwICQ2JFx1YWMwMFx1YzljMDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvZmIwYjg4ZjctZTA2NS00Y2E1LWJjNGQtMTMzY2IzZWI0NDgxXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiA0MzBweDsgaGVpZ2h0OiA0ODBweDtcIiBcLz48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT5cdWQ1NjlcdWM3NzQgJDEyJFx1Yzc3OCBcdWFjYmRcdWM2YjAgJDEkXHVhYzAwXHVjOWMwPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC85M2RjY2M1MS1mYTMxLTQ3ZTUtOTM2MC03MGI0MDUyYmY1ZjdcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDQ4OHB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+PFwvcD5cclxuIn0seyJwcm9ibGVtX2lkIjoiMzE1NDQiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJNdWx0aXBsZSBvZiBLIEV4dHJlbWUiLCJkZXNjcmlwdGlvbiI6IjxwPkp1bmh5ZW9rIGhhcyAkTSQgYmFsbHMgZm9yIGVhY2ggbnVtYmVyIGZyb20gJDEkIHRvICROJC4gVGhlICRNJCBiYWxscyB3aXRoIGEgc2FtZSBudW1iZXIgd3JpdHRlbiBvbiBpdCBhcmUgYWxsIGRpZmZlcmVudCBpbiBjb2xvci4gSnVuaHllb2sgY2hvb3NlcyAkSyQsIHdoaWNoIGlzIG9uZSBvZiB0aGUgZGl2aXNvcnMgb2YgJE4kLCBhbmQgd2FudHMgdG8gZmluZCB0aGUgbnVtYmVyIG9mIGNhc2VzIGluIHdoaWNoIGhlIGNob29zZXMgb25lIG9yIG1vcmUgb2YgaGlzICROXFx0aW1lcyBNJCBiYWxscyBzbyB0aGF0IHRoZSBzdW0gb2YgdGhlIG51bWJlciB3cml0dGVuIGluIGVhY2ggYmFsbCBpcyBhIG11bHRpcGxlIG9mICRLJC48XC9wPlxyXG5cclxuPHA+SWYgYXQgbGVhc3Qgb25lIGJhbGwgaGFzIGEgZGlmZmVyZW50IGNvbG9yIG9yIGEgZGlmZmVyZW50IG51bWJlciB3cml0dGVuLCBpdCBpcyBjb3VudGVkIGFzIGEgZGlmZmVyZW50IGNhc2UuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBjb250YWlucyB0aHJlZSBpbnRlZ2VycyAkTiQsICRNJCwgYW5kICRLJCwgc2VwYXJhdGVkIGJ5IHNwYWNlcyAkKDFcXGxlIE4sTSxLXFxsZSAxMF42KSQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+T3V0cHV0IGEgc2luZ2xlIGludGVnZXIgJm5kYXNoOyB0aGUgcmVtYWluZGVyIG9mIHRoZSB0b3RhbCBudW1iZXIgb2YgY2FzZXMgaW4gd2hpY2ggSnVuaHllb2sgY2hvb3NlcyBvbmUgb3IgbW9yZSBvZiB0aGUgYmFsbHMgc28gdGhhdCB0aGUgc3VtIG9mIHRoZSBudW1iZXIgd3JpdHRlbiBpbiBlYWNoIGJhbGwgaXMgYSBtdWx0aXBsZSBvZiAkSyQsIGRpdmlkZWQgYnkgJDEwXjkrNyQuPFwvcD5cclxuXHJcbjxwPk5vdGUgdGhhdCAkMTBeOSs3JCBpcyBhIHByaW1lIG51bWJlci48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIiwic3VidGFzazEiOiI8cD4kSz0xJDxcL3A+XHJcbiIsInN1YnRhc2syIjoiPHA+JEsmbmJzcDtcXGxlIDIkPFwvcD5cclxuIiwic3VidGFzazMiOiI8cD4kTiZuYnNwO1xcdGltZXMgTSZuYnNwO1xcbGUgMjAkPFwvcD5cclxuIiwic3VidGFzazQiOiI8cD4kTiwgTSZuYnNwO1xcbGUgMzAwJDxcL3A+XHJcbiIsInN1YnRhc2s1IjoiPHA+VGhlcmUgYXJlIG5vIGFkZGl0aW9uYWwgcmVzdHJpY3Rpb25zLjxcL3A+XHJcbiIsInNhbXBsZV9leHBsYWluXzEiOiI8cD5TdXBwb3NlIHRoZXJlIGFyZSAkNCQgcmVkIGJhbGxzLCB3cml0dGVuIGZyb20gJDEkIHRvICQ0JC4gVGhlcmUgYXJlICQ0KzQrMisyKzIrMT0xNSQgY2FzZXMgaW4gd2hpY2ggb25lIG9yIG1vcmUgb2YgdGhlc2UgYmFsbHMgYXJlIGNob3NlbiBhbmQgdGhlIHN1bSBvZiB0aGUgbnVtYmVycyBpcyBhIG11bHRpcGxlIG9mICQxJCBhcyBmb2xsb3dzLjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiQ0JCB0b3RhbCBjYXNlcyB3aXRoIGEgc3VtIG9mICQxJCwgJDIkLCBvciAkMyQ8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzQyYWJkMTRkLTE4NjctNGIzNi1iM2NkLWMxMTc1YWY2MjgwM1wvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogMTA5cHg7IGhlaWdodDogODBweDtcIiBcLz4gPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9lYjIxNDc3YS1kNmIwLTRhYWYtYjE0Ny04NTExOGI5YjVjNzFcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDEwOXB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+IDxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvNzBjNjQyZTctOTgwOS00NjdjLWI3NWMtY2ZmYjFmMGE5OTgyXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAyOTVweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPiA8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kNSQgdG90YWwgY2FzZXMgd2l0aCBhIHN1bSBvZiAkNCQgb3IgJDUkPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC82OTEwNTE1Ny0wNTBjLTRhNmQtYTE1OC04MWZmNzhkNTVmN2NcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDI5NXB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+IDxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvNTcwMTBiNDAtNmM2MS00MjJmLTgzZDMtZWFlNzcyMDhjMzg2XC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAzNzhweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiQyJCB0b3RhbCBjYXNlcyB3aXRoIGEgc3VtIG9mICQ2JDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvYmVhOTI3N2QtMDVhNi00ZTdkLTk3MzYtMmMyMDEzOTM5NjI4XC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiA0NjFweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiQyJCB0b3RhbCBjYXNlcyB3aXRoIGEgc3VtIG9mICQ3JDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvZDZjZGMzMjgtYjIxZC00MmJlLWFlYTgtMzVjZjBmMmZjNjk3XC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiA0NjFweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiQyJCB0b3RhbCBjYXNlcyB3aXRoIGEgc3VtIG9mICQ4JCBvciAkOSQ8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGI8aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzhlYzExMzJiLTY2ZDctNDRmYy1iOWRkLWY2MTQyZDMxMzY0YVwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogMjc0cHg7IGhlaWdodDogODBweDtcIiBcLz4gPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC8xMTlmOTAyYy1kNmQ4LTRmNWEtOTZmOS0yOTYyYjJjMTRhMzRcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDI3NHB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+JDEkIHRvdGFsIGNhc2Ugd2l0aCBhIHN1bSBvZiAkMTAkPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC8zMDdjNGUyYy1iNjY2LTRmMTctYjcyMi0wZDBhNWY4YTA0NDFcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDM1NnB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+PFwvcD5cclxuIiwic2FtcGxlX2V4cGxhaW5fMiI6IjxwPlN1cHBvc2UgdGhlcmUgYXJlICQ0JCByZWQgYmFsbHMsIHdyaXR0ZW4gZnJvbSAkMSQgdG8gJDQkLiBUaGVyZSBhcmUgJDMrMisyPTckIGNhc2VzIGluIHdoaWNoIG9uZSBvciBtb3JlIG9mIHRoZXNlIGJhbGxzIGFyZSBjaG9zZW4gYW5kIHRoZSBzdW0gb2YgdGhlIG51bWJlcnMgaXMgYSBtdWx0aXBsZSBvZiAkMiQgYXMgZm9sbG93cy48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kMyQgdG90YWwgY2FzZXMgd2l0aCBhIHN1bSBvZiAkMiQgb3IgJDQkPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9lYjIxNDc3YS1kNmIwLTRhYWYtYjE0Ny04NTExOGI5YjVjNzFcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDEwOXB4OyBoZWlnaHQ6IDgwcHg7XCIgXC8+ICA8aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzY5MTA1MTU3LTA1MGMtNGE2ZC1hMTU4LTgxZmY3OGQ1NWY3Y1wvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogMjk1cHg7IGhlaWdodDogODBweDtcIiBcLz48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kMiQgdG90YWwgY2FzZXMgd2l0aCBhIHN1bSBvZiAkNiQ8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGI8aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcL2JlYTkyNzdkLTA1YTYtNGU3ZC05NzM2LTJjMjAxMzkzOTYyOFwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogNDYxcHg7IGhlaWdodDogODBweDtcIiBcLz48XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kMiQgdG90YWwgY2FzZXMgd2l0aCBhIHN1bSBvZiAkOCQgb3IgJDEwJDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvOGVjMTEzMmItNjZkNy00NGZjLWI5ZGQtZjYxNDJkMzEzNjRhXC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiAyNzRweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPiA8aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzMwN2M0ZTJjLWI2NjYtNGYxNy1iNzIyLTBkMGE1ZjhhMDQ0MVwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogMzU2cHg7IGhlaWdodDogODBweDtcIiBcLz48XC9wPlxyXG4iLCJzYW1wbGVfZXhwbGFpbl8zIjoiPHA+U3VwcG9zZSB0aGVyZSBhcmUgJDMkIHJlZCBiYWxscyBhbmQgJDMkIGJsdWUgYmFsbHMsIHdyaXR0ZW4gZnJvbSAkMSQgdG8gJDMkIGZvciBlYWNoIGNvbG9yLiBUaGVyZSBhcmUgJDIzJCBjYXNlcyBpbiB3aGljaCBvbmUgb3IgbW9yZSBvZiB0aGVzZSBiYWxscyBhcmUgY2hvc2VuIGFuZCB0aGUgc3VtIG9mIHRoZSBudW1iZXJzIGlzIGEgbXVsdGlwbGUgb2YgJDMkIGFzIGZvbGxvd3MuPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+JDYkIHRvdGFsIGNhc2VzIHdpdGggYSBzdW0gb2YgJDMkPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9kYTk1ODQwMi1lZDk0LTQ5NTEtOWU2Ni05NjlkZjZmNDY1YmJcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDQ5MXB4OyBoZWlnaHQ6IDE2MHB4O1wiIFwvPjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiQxMCQgdG90YWwgY2FzZXMgd2l0aCBhIHN1bSBvZiAkNiQ8XC9saT5cclxuPFwvdWw+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGJcdTIwMGI8aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcL2VkYzk3N2Q3LWIwN2ItNDNmNS04Mjc2LTQwZjA0Nzk4NTEyNVwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogNTUycHg7IGhlaWdodDogNDAwcHg7XCIgXC8+PFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+JDYkIHRvdGFsIGNhc2VzIHdpdGggYSBzdW0gb2YgJDkkPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiXHUyMDBiPGltZyBhbHQ9XCJcIiBzcmM9XCJodHRwczpcL1wvdXBsb2FkLmFjbWljcGMubmV0XC9mYjBiODhmNy1lMDY1LTRjYTUtYmM0ZC0xMzNjYjNlYjQ0ODFcLy1cL3ByZXZpZXdcL1wiIHN0eWxlPVwid2lkdGg6IDQzMHB4OyBoZWlnaHQ6IDQ4MHB4O1wiIFwvPjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiQxJCB0b3RhbCBjYXNlIHdpdGggYSBzdW0gb2YgJDEyJDxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYlx1MjAwYjxpbWcgYWx0PVwiXCIgc3JjPVwiaHR0cHM6XC9cL3VwbG9hZC5hY21pY3BjLm5ldFwvOTNkY2NjNTEtZmEzMS00N2U1LTkzNjAtNzBiNDA1MmJmNWY3XC8tXC9wcmV2aWV3XC9cIiBzdHlsZT1cIndpZHRoOiA0ODhweDsgaGVpZ2h0OiA4MHB4O1wiIFwvPjxcL3A+XHJcbiJ9XQ==