From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Tremer To: development@lists.ipfire.org Subject: Re: [PATCH 1/3] bash: update to 4.4 with patch 1-12 Date: Wed, 07 Jun 2017 09:59:02 +0100 Message-ID: <1496825942.4077.6.camel@ipfire.org> In-Reply-To: <20170606082537.13830-1-marcel.lorenz@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8171867645968600805==" List-Id: --===============8171867645968600805== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGVsbG8sCgpJIGNhbm5vdCBhY2NlcHQgdGhpcyBwYXRjaC4gUmVhZCBiZWxvdy4KCk9uIFR1ZSwg MjAxNy0wNi0wNiBhdCAxMDoyNSArMDIwMCwgTWFyY2VsIExvcmVueiB3cm90ZToKPiBTaWduZWQt b2ZmLWJ5OiBNYXJjZWwgTG9yZW56IDxtYXJjZWwubG9yZW56KGEpaXBmaXJlLm9yZz4KPiAtLS0K PiDCoGNvbmZpZy9yb290ZmlsZXMvY29tbW9uL2Jhc2ggfMKgwqDCoDkyICstCj4gwqBsZnMvYmFz aMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgwqAzMyArLQo+ IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDAxwqDCoHzCoMKgwqA1OCAtLQo+IMKgc3JjL3Bh dGNoZXMvYmFzaC9iYXNoNDMtMDAywqDCoHzCoMKgwqA2MiAtLQo+IMKgc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDMtMDAzwqDCoHzCoMKgwqA0OCAtCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0w MDTCoMKgfMKgwqDCoDQ3IC0KPiDCoHNyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAwNcKgwqB8wqDC oMKgNjMgLS0KPiDCoHNyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAwNsKgwqB8wqDCoMKgNDggLQo+ IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA3wqDCoHzCoMKgwqA1MCAtCj4gwqBzcmMvcGF0 Y2hlcy9iYXNoL2Jhc2g0My0wMDjCoMKgfMKgwqAxODggLS0tLQo+IMKgc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDMtMDA5wqDCoHzCoMKgwqA2NCAtLQo+IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMt MDEwwqDCoHzCoMKgMTU3IC0tLQo+IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDExwqDCoHzC oMKgwqA0OSAtCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTLCoMKgfMKgwqDCoDQzIC0K PiDCoHNyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxM8KgwqB8wqDCoMKgNjYgLS0KPiDCoHNyYy9w YXRjaGVzL2Jhc2gvYmFzaDQzLTAxNMKgwqB8wqDCoDEwMiAtLQo+IMKgc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDMtMDE1wqDCoHzCoMKgwqA1OCAtLQo+IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMt MDE2wqDCoHzCoMKgMTMyIC0tLQo+IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE3wqDCoHzC oMKgwqA1MSAtCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTjCoMKgfMKgwqDCoDQ0IC0K PiDCoHNyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxOcKgwqB8wqDCoMKgODQgLS0KPiDCoHNyYy9w YXRjaGVzL2Jhc2gvYmFzaDQzLTAyMMKgwqB8wqDCoDExMCAtLQo+IMKgc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDMtMDIxwqDCoHzCoMKgwqA1MiAtCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0w MjLCoMKgfMKgwqDCoDU2IC0tCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMjPCoMKgfMKg wqAxMDQgLS0KPiDCoHNyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAyNMKgwqB8wqDCoMKgNTQgLQo+ IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI1wqDCoHzCoMKgMTIzIC0tLQo+IMKgc3JjL3Bh dGNoZXMvYmFzaC9iYXNoNDMtMDI2wqDCoHzCoMKgwqA2MCAtLQo+IMKgc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDMtMDI3wqDCoHzCoMKgMjIxIC0tLS0tCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0 My0wMjjCoMKgfCAyMjY1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ IC0tLQo+IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI5wqDCoHzCoMKgwqA1OSAtLQo+IMKg c3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDMwwqDCoHwgMjA2NCAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDAxwqDCoHzC oMKgwqA2MCArKwo+IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDAywqDCoHzCoMKgwqA2OSAr Kwo+IMKgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDAzwqDCoHzCoMKgwqA1OCArKwo+IMKgc3Jj L3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA0wqDCoHzCoMKgwqA4NCArKwo+IMKgc3JjL3BhdGNoZXMv YmFzaC9iYXNoNDQtMDA1wqDCoHzCoMKgwqA0NyArCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0 NC0wMDbCoMKgfMKgwqDCoDU5ICsrCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0wMDfCoMKg fMKgwqAxNTEgKysrCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0wMDjCoMKgfMKgwqDCoDg0 ICsrCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0wMDnCoMKgfMKgwqAxMDcgKysKPiDCoHNy Yy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAxMMKgwqB8wqDCoMKgNDkgKwo+IMKgc3JjL3BhdGNoZXMv YmFzaC9iYXNoNDQtMDExwqDCoHzCoMKgwqA1MCArCj4gwqBzcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0 NC0wMTLCoMKgfMKgwqAxNjEgKysrCj4gwqA0NCBmaWxlcyBjaGFuZ2VkLCAxMDg1IGluc2VydGlv bnMoKyksIDY2MDEgZGVsZXRpb25zKC0pCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNo ZXMvYmFzaC9iYXNoNDMtMDAxCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDMtMDAyCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNo NDMtMDAzCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA0 Cj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA1Cj4gwqBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA2Cj4gwqBkZWxldGUg bW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA3Cj4gwqBkZWxldGUgbW9kZSAx MDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA4Cj4gwqBkZWxldGUgbW9kZSAxMDA2NDQg c3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA5Cj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bh dGNoZXMvYmFzaC9iYXNoNDMtMDEwCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMv YmFzaC9iYXNoNDMtMDExCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9i YXNoNDMtMDEyCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMt MDEzCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE0Cj4g wqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE1Cj4gwqBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE2Cj4gwqBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE3Cj4gwqBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE4Cj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj L3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE5Cj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNo ZXMvYmFzaC9iYXNoNDMtMDIwCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDMtMDIxCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNo NDMtMDIyCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDIz Cj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI0Cj4gwqBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI1Cj4gwqBkZWxldGUg bW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI2Cj4gwqBkZWxldGUgbW9kZSAx MDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI3Cj4gwqBkZWxldGUgbW9kZSAxMDA2NDQg c3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI4Cj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bh dGNoZXMvYmFzaC9iYXNoNDMtMDI5Cj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMv YmFzaC9iYXNoNDMtMDMwCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9i YXNoNDQtMDAxCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQt MDAyCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDAzCj4g wqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA0Cj4gwqBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA1Cj4gwqBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA2Cj4gwqBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA3Cj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA4Cj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNo ZXMvYmFzaC9iYXNoNDQtMDA5Cj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDQtMDEwCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNo NDQtMDExCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDEy Cj4gCj4gZGlmZiAtLWdpdCBhL2NvbmZpZy9yb290ZmlsZXMvY29tbW9uL2Jhc2ggYi9jb25maWcv cm9vdGZpbGVzL2NvbW1vbi9iYXNoCj4gaW5kZXggODRmNTg3Zi4uNmVlZTZjYyAxMDA2NDQKPiAt LS0gYS9jb25maWcvcm9vdGZpbGVzL2NvbW1vbi9iYXNoCj4gKysrIGIvY29uZmlnL3Jvb3RmaWxl cy9jb21tb24vYmFzaAo+IEBAIC0xLDYgKzEsOTUgQEAKPiDCoGJpbi9zaAo+IMKgYmluL2Jhc2gK PiDCoCNiaW4vYmFzaGJ1Zwo+ICsjdXNyL2luY2x1ZGUvYmFzaAo+ICsjdXNyL2luY2x1ZGUvYmFz aC9hbGlhcy5oCj4gKyN1c3IvaW5jbHVkZS9iYXNoL2FycmF5LmgKPiArI3Vzci9pbmNsdWRlL2Jh c2gvYXJyYXlmdW5jLmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvYXNzb2MuaAo+ICsjdXNyL2luY2x1 ZGUvYmFzaC9iYXNoYW5zaS5oCj4gKyN1c3IvaW5jbHVkZS9iYXNoL2Jhc2hpbnRsLmgKPiArI3Vz ci9pbmNsdWRlL2Jhc2gvYmFzaGptcC5oCj4gKyN1c3IvaW5jbHVkZS9iYXNoL2Jhc2h0eXBlcy5o Cj4gKyN1c3IvaW5jbHVkZS9iYXNoL2J1aWx0aW5zCj4gKyN1c3IvaW5jbHVkZS9iYXNoL2J1aWx0 aW5zLmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvYnVpbHRpbnMvYmFzaGdldG9wdC5oCj4gKyN1c3Iv aW5jbHVkZS9iYXNoL2J1aWx0aW5zL2J1aWx0ZXh0LmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvYnVp bHRpbnMvY29tbW9uLmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvYnVpbHRpbnMvZ2V0b3B0LmgKPiAr I3Vzci9pbmNsdWRlL2Jhc2gvY29tbWFuZC5oCj4gKyN1c3IvaW5jbHVkZS9iYXNoL2NvbmZpZy1i b3QuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9jb25maWctdG9wLmgKPiArI3Vzci9pbmNsdWRlL2Jh c2gvY29uZmlnLmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvY29uZnR5cGVzLmgKPiArI3Vzci9pbmNs dWRlL2Jhc2gvZGlzcG9zZV9jbWQuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9lcnJvci5oCj4gKyN1 c3IvaW5jbHVkZS9iYXNoL2V4dGVybnMuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9nZW5lcmFsLmgK PiArI3Vzci9pbmNsdWRlL2Jhc2gvaGFzaGxpYi5oCj4gKyN1c3IvaW5jbHVkZS9iYXNoL2luY2x1 ZGUKPiArI3Vzci9pbmNsdWRlL2Jhc2gvaW5jbHVkZS9hbnNpX3N0ZGxpYi5oCj4gKyN1c3IvaW5j bHVkZS9iYXNoL2luY2x1ZGUvY2hhcnR5cGVzLmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvaW5jbHVk ZS9maWxlY250bC5oCj4gKyN1c3IvaW5jbHVkZS9iYXNoL2luY2x1ZGUvZ2V0dGV4dC5oCj4gKyN1 c3IvaW5jbHVkZS9iYXNoL2luY2x1ZGUvbWF4cGF0aC5oCj4gKyN1c3IvaW5jbHVkZS9iYXNoL2lu Y2x1ZGUvbWVtYWxsb2MuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9pbmNsdWRlL29jYWNoZS5oCj4g KyN1c3IvaW5jbHVkZS9iYXNoL2luY2x1ZGUvcG9zaXhkaXIuaAo+ICsjdXNyL2luY2x1ZGUvYmFz aC9pbmNsdWRlL3Bvc2l4am1wLmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvaW5jbHVkZS9wb3NpeHN0 YXQuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9pbmNsdWRlL3Bvc2l4dGltZS5oCj4gKyN1c3IvaW5j bHVkZS9iYXNoL2luY2x1ZGUvcG9zaXh3YWl0LmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvaW5jbHVk ZS9zaG1iY2hhci5oCj4gKyN1c3IvaW5jbHVkZS9iYXNoL2luY2x1ZGUvc2htYnV0aWwuaAo+ICsj dXNyL2luY2x1ZGUvYmFzaC9pbmNsdWRlL3NodHR5LmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvaW5j bHVkZS9zdGF0LXRpbWUuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9pbmNsdWRlL3N0ZGMuaAo+ICsj dXNyL2luY2x1ZGUvYmFzaC9pbmNsdWRlL3N5c3RpbWVzLmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gv aW5jbHVkZS90eXBlbWF4LmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvaW5jbHVkZS91bmlvbndhaXQu aAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9qb2JzLmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvbWFrZV9j bWQuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9wYXRobmFtZXMuaAo+ICsjdXNyL2luY2x1ZGUvYmFz aC9xdWl0LmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvc2hlbGwuaAo+ICsjdXNyL2luY2x1ZGUvYmFz aC9zaWcuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9zaWdsaXN0LmgKPiArI3Vzci9pbmNsdWRlL2Jh c2gvc2lnbmFtZXMuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC9zdWJzdC5oCj4gKyN1c3IvaW5jbHVk ZS9iYXNoL3N5bnRheC5oCj4gKyN1c3IvaW5jbHVkZS9iYXNoL3Vud2luZF9wcm90LmgKPiArI3Vz ci9pbmNsdWRlL2Jhc2gvdmFyaWFibGVzLmgKPiArI3Vzci9pbmNsdWRlL2Jhc2gvdmVyc2lvbi5o Cj4gKyN1c3IvaW5jbHVkZS9iYXNoL3htYWxsb2MuaAo+ICsjdXNyL2luY2x1ZGUvYmFzaC95LnRh Yi5oCj4gKyN1c3IvbGliL2Jhc2gKPiArI3Vzci9saWIvYmFzaC9NYWtlZmlsZS5pbmMKPiArdXNy L2xpYi9iYXNoL2Jhc2VuYW1lCj4gK3Vzci9saWIvYmFzaC9kaXJuYW1lCj4gK3Vzci9saWIvYmFz aC9maW5mbwo+ICt1c3IvbGliL2Jhc2gvaGVhZAo+ICt1c3IvbGliL2Jhc2gvaWQKPiArdXNyL2xp Yi9iYXNoL2xuCj4gK3Vzci9saWIvYmFzaC9sb2duYW1lCj4gK3Vzci9saWIvYmFzaC9ta2Rpcgo+ ICt1c3IvbGliL2Jhc2gvbXlwaWQKPiArdXNyL2xpYi9iYXNoL3BhdGhjaGsKPiArdXNyL2xpYi9i YXNoL3ByaW50Cj4gK3Vzci9saWIvYmFzaC9wcmludGVudgo+ICt1c3IvbGliL2Jhc2gvcHVzaAo+ ICt1c3IvbGliL2Jhc2gvcmVhbHBhdGgKPiArdXNyL2xpYi9iYXNoL3JtZGlyCj4gK3Vzci9saWIv YmFzaC9zZXRwZ2lkCj4gK3Vzci9saWIvYmFzaC9zbGVlcAo+ICt1c3IvbGliL2Jhc2gvc3RyZnRp bWUKPiArdXNyL2xpYi9iYXNoL3N5bmMKPiArdXNyL2xpYi9iYXNoL3RlZQo+ICt1c3IvbGliL2Jh c2gvdHJ1ZWZhbHNlCj4gK3Vzci9saWIvYmFzaC90dHkKPiArdXNyL2xpYi9iYXNoL3VuYW1lCj4g K3Vzci9saWIvYmFzaC91bmxpbmsKPiArdXNyL2xpYi9iYXNoL3dob2FtaQo+ICsjdXNyL2xpYi9w a2djb25maWcvYmFzaC5wYwo+IMKgI3Vzci9zaGFyZS9kb2MvYmFzaAo+IMKgI3Vzci9zaGFyZS9k b2MvYmFzaC9DSEFOR0VTCj4gwqAjdXNyL3NoYXJlL2RvYy9iYXNoL0NPTVBBVAo+IEBAIC0zOSw2 ICsxMjgsNyBAQCBiaW4vYmFzaAo+IMKgI3Vzci9zaGFyZS9sb2NhbGUvaXQvTENfTUVTU0FHRVMv YmFzaC5tbwo+IMKgI3Vzci9zaGFyZS9sb2NhbGUvamEvTENfTUVTU0FHRVMvYmFzaC5tbwo+IMKg I3Vzci9zaGFyZS9sb2NhbGUvbHQvTENfTUVTU0FHRVMvYmFzaC5tbwo+ICsjdXNyL3NoYXJlL2xv Y2FsZS9uYi9MQ19NRVNTQUdFUy9iYXNoLm1vCj4gwqAjdXNyL3NoYXJlL2xvY2FsZS9ubC9MQ19N RVNTQUdFUy9iYXNoLm1vCj4gwqAjdXNyL3NoYXJlL2xvY2FsZS9wbC9MQ19NRVNTQUdFUy9iYXNo Lm1vCj4gwqAjdXNyL3NoYXJlL2xvY2FsZS9wdF9CUi9MQ19NRVNTQUdFUy9iYXNoLm1vCj4gQEAg LTQ2LDggKzEzNiw2IEBAIGJpbi9iYXNoCj4gwqAjdXNyL3NoYXJlL2xvY2FsZS9ydS9MQ19NRVNT QUdFUy9iYXNoLm1vCj4gwqAjdXNyL3NoYXJlL2xvY2FsZS9zay9MQ19NRVNTQUdFUy9iYXNoLm1v Cj4gwqAjdXNyL3NoYXJlL2xvY2FsZS9zbC9MQ19NRVNTQUdFUy9iYXNoLm1vCj4gLSN1c3Ivc2hh cmUvbG9jYWxlL3NyCj4gLSN1c3Ivc2hhcmUvbG9jYWxlL3NyL0xDX01FU1NBR0VTCj4gwqAjdXNy L3NoYXJlL2xvY2FsZS9zci9MQ19NRVNTQUdFUy9iYXNoLm1vCj4gwqAjdXNyL3NoYXJlL2xvY2Fs ZS9zdi9MQ19NRVNTQUdFUy9iYXNoLm1vCj4gwqAjdXNyL3NoYXJlL2xvY2FsZS90ci9MQ19NRVNT QUdFUy9iYXNoLm1vCj4gZGlmZiAtLWdpdCBhL2xmcy9iYXNoIGIvbGZzL2Jhc2gKPiBpbmRleCAw NGU2YzUwLi5hMDdmNmJjIDEwMDY0NAo+IC0tLSBhL2xmcy9iYXNoCj4gKysrIGIvbGZzL2Jhc2gK PiBAQCAtMSw3ICsxLDcgQEAKPiDCoCMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4gIyMKPiDCoCPCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+IMKgIwo+IMKgIyBJUEZpcmUub3Jn IC0gQSBsaW51eCBiYXNlZAo+IGZpcmV3YWxswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCMKPiAt IyBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNMKgwqDCoElQRmlyZSBUZWFtwqDCoMKgPGluZm8oYSlp cGZpcmUub3JnPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+IMKgIwo+ICsj IENvcHlyaWdodCAoQykgMjAwNy0yMDE3wqDCoMKgSVBGaXJlIFRlYW3CoMKgwqA8aW5mbyhhKWlw ZmlyZS5vcmc+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gwqAjCj4gwqAj wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiDCoCMKPiDCoCMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ IG1vZGlmecKgwqDCoMKgwqDCoMKgwqAjCj4gwqAjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkCj4gYnnCoMKgwqDCoMKgwqDC oMKgIwo+IEBAIC0yNCw3ICsyNCw3IEBACj4gwqAKPiDCoGluY2x1ZGUgQ29uZmlnCj4gwqAKPiAt VkVSwqDCoMKgwqDCoMKgwqDCoD0gNC4zCj4gK1ZFUsKgwqDCoMKgwqDCoMKgwqA9IDQuNAo+IMKg Cj4gwqBUSElTQVBQwqDCoMKgwqA9IGJhc2gtJChWRVIpCj4gwqBETF9GSUxFwqDCoMKgwqA9ICQo VEhJU0FQUCkudGFyLmd6Cj4gQEAgLTM2LDE0ICszNiwxNSBAQCBESVJfQVBQwqDCoMKgwqA9ICQo RElSX1NSQykvJChUSElTQVBQKQo+IMKgaWZlcSAiJChST09UKSIgIiIKPiDCoMKgwqBUQVJHRVQg PSAkKERJUl9JTkZPKS8kKFRISVNBUFApCj4gwqDCoMKgQ09ORklHVVJFX09QVElPTlMgPSAtLXBy ZWZpeD0vdXNyIC0tYmluZGlyPS9iaW4gXAo+IC3CoMKgwqDCoC0td2l0aC1pbnN0YWxsZWQtcmVh ZGxpbmUKPiArwqDCoMKgwqAtLXdpdGgtaW5zdGFsbGVkLXJlYWRsaW5lIC0td2l0aG91dC1iYXNo LW1hbGxvYwoKVGhhdCBwYXJhbWV0ZXIgaXMgYWxyZWFkeSBhZGRlZCBiZWxvdy4KCj4gwqBlbHNl Cj4gwqDCoMKgVEFSR0VUID0gJChESVJfSU5GTykvJChUSElTQVBQKS10b29scwo+IMKgwqDCoENP TkZJR1VSRV9PUFRJT05TID0gLS1wcmVmaXg9L3Rvb2xzCj4gwqBlbmRpZgo+IMKgCj4gwqBDT05G SUdVUkVfT1BUSU9OUyArPSBcCj4gLQktLXdpdGhvdXQtYmFzaC1tYWxsb2MKPiArCS0td2l0aG91 dC1iYXNoLW1hbGxvYyBcCj4gKwktLWRvY2Rpcj0vdXNyL3NoYXJlL2RvYy9iYXNoCj4gwqAKPiDC oCMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4gIyMKPiDCoCMgVG9wLWxldmVsIFJ1bGVzCj4gQEAgLTUz LDcgKzU0LDcgQEAgb2JqZWN0cyA9ICQoRExfRklMRSkKPiDCoAo+IMKgJChETF9GSUxFKcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgPSAkKERMX0ZST00pLyQoRExfRklMRSkKPiDCoAo+IC0kKERM X0ZJTEUpX01ENcKgwqDCoMKgwqDCoMKgwqDCoD0gODEzNDg5MzJkNWRhMjk0OTUzZTE1ZDQ4MTRj NzRkZDEKPiArJChETF9GSUxFKV9NRDXCoMKgwqDCoMKgwqDCoMKgwqA9IDE0ODg4OGE3Yzk1YWMy MzcwNTU1OWI2ZjQ3N2RmZTI1Cj4gwqAKPiDCoGluc3RhbGwgOiAkKFRBUkdFVCkKPiDCoAo+IEBA IC04NCwyNiArODUsMjQgQEAgJChUQVJHRVQpIDogJChwYXRzdWJzdCAlLCQoRElSX0RMKS8lLCQo b2JqZWN0cykpCj4gwqAJQCQoUFJFQlVJTEQpCj4gwqAJQHJtIC1yZiAkKERJUl9BUFApICYmIGNk ICQoRElSX1NSQykgJiYgdGFyIHpheGYgJChESVJfREwpLyQoRExfRklMRSkKPiDCoAo+IC0Jc2Vk IC1lICJzL2ZpbGVuYW1lLCBSVExEX0xBWlkvZmlsZW5hbWUsIFJUTERfTk9XLyIgXAo+IC0JCS1p ICQoRElSX0FQUCkvYnVpbHRpbnMvZW5hYmxlLmRlZgo+IC0KPiAtCWZvciBpIGluICQkKHNlcSAx IDMwKTsgZG8gXAo+IC0JCWNkICQoRElSX0FQUCkgJiYgcGF0Y2ggLU5wMCA8Cj4gJChESVJfU1JD KS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0kJChwcmludGYgIiUwM2QiICIkJHtpfSIpIHx8IGV4 aXQgMTsgXAo+ICsJZm9yIGkgaW4gJCQoc2VxIDEgMTIpOyBkbyBcCj4gKwnCoMKgY2QgJChESVJf QVBQKSAmJiBwYXRjaCAtTnAwIDwgJChESVJfU1JDKS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0K PiAkJChwcmludGYgIiUwM2QiICIkJHtpfSIpIHx8IGV4aXQgMTsgXAo+IMKgCWRvbmUKPiAKCklu ZGVudGF0aW9uIGlzIGJyb2tlbiBoZXJlLiBJdCBzaG91bGQgYmUgYSB0YWIgaW5zdGVhZCBvZiBz cGFjZXMuCgo+IMKgCgo+ICsJY2QgJChESVJfQVBQKSAmJiBwYXRjaCAtTnAxIDwgJChESVJfU1JD KS9zcmMvcGF0Y2hlcy9iYXNoLTMuMi0KPiBzc2hfc291cmNlX2Jhc2gucGF0Y2gKPiDCoAljZCAk KERJUl9BUFApICYmIHBhdGNoIC1OcDEgPCAkKERJUl9TUkMpL3NyYy9wYXRjaGVzL2Jhc2gtNC4w LXBhdGhzLQo+IDEucGF0Y2gKPiDCoAljZCAkKERJUl9BUFApICYmIHBhdGNoIC1OcDEgPCAkKERJ Ul9TUkMpL3NyYy9wYXRjaGVzL2Jhc2gtNC4wLQo+IHByb2ZpbGUtMS5wYXRjaAo+IC0JY2QgJChE SVJfQVBQKSAmJiBwYXRjaCAtTnAxIDwgJChESVJfU1JDKS9zcmMvcGF0Y2hlcy9iYXNoLTMuMi0K PiBzc2hfc291cmNlX2Jhc2gucGF0Y2gKPiAtCj4gwqAJY2QgJChESVJfQVBQKSAmJiAuL2NvbmZp Z3VyZSAkKENPTkZJR1VSRV9PUFRJT05TKQo+IMKgCWNkICQoRElSX0FQUCkgJiYgbWFrZSAkKE1B S0VUVU5JTkcpCj4gwqAJY2QgJChESVJfQVBQKSAmJiBtYWtlIGluc3RhbGwKPiDCoAo+IC1pZmVx ICIkKFRPT0xDSEFJTikiICIxIgo+IC0JbG4gLXN2ZiBiYXNoIC90b29scy9iaW4vc2gKPiAtCWxu IC1zdmYgLi4vdG9vbHMvYmluL2Jhc2ggJChST09UKS9iaW4vc2gKPiAtZWxzZQo+IC0JbG4gLXN2 ZiBiYXNoIC9iaW4vc2gKPiArCWxuIC1zZiBiYXNoIC9iaW4vc2gKPiArCj4gK2lmbmVxICIkKFJP T1QpIiAiIgo+ICsJLW1rZGlyIC1wICQoUk9PVCkvYmluCj4gKwktbWtkaXIgLXAgJChST09UKS91 c3IvYmluCj4gKwlsbiAtc2YgYmFzaCAvdG9vbHMvYmluL3NoCj4gKwktbG4gLXNmIC90b29scy9i aW4vYmFzaCAkKFJPT1QpL2Jpbi9zaAo+IMKgZW5kaWYKClRoaXMgYmxvY2sgaGVyZSBvdmVyd3Jp dGVzIGNoYW5nZXMgdGhhdCBoYXZlIGJlZW4gZG9uZSBpbiBvdGhlciBjb21taXRzLiBQbGVhc2UK ZG8gbm90IGNoYW5nZSBmaWxlcyBvdXQgb2YgdHJlZSBhbmQgcGxlYXNlIGNoZWNrIGFnYWluIHRo YXQgZXZlcnl0aGluZyBpcwpyZWJhc2VkIG9uIG1hc3RlciBvciBuZXh0IHdoZW4geW91IHNlbmQg cGF0Y2hlcy4KCkJlc3QsCi1NaWNoYWVsCgo+IMKgCj4gwqAJQHJtIC1yZiAkKERJUl9BUFApCj4g ZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAwMSBiL3NyYy9wYXRjaGVzL2Jh c2gvYmFzaDQzLTAwMQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IGVhMWM2YjIu LjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMDEKPiArKysgL2Rldi9u dWxsCj4gQEAgLTEsNTggKzAsMCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQK PiAtCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQu Mwo+IC1QYXRjaC1JRDoJYmFzaDQzLTAwMQo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglOQmFIIDxu YmFoKGEpc2ZyLmZyPgo+IC1CdWctUmVmZXJlbmNlLUlEOgk8bGVyMGI1JGl1OSQxKGEpc3BlcmFu emEuYWlvZS5vcmc+Cj4gLUJ1Zy1SZWZlcmVuY2UtVVJMOglodHRwOi8vbGlzdHMuZ251Lm9yZy9h cmNoaXZlL2h0bWwvYnVnLWJhc2gvMjAxNC0wMi8KPiBtc2cwMDA5Mi5odG1sCj4gLQo+IC1CdWct RGVzY3JpcHRpb246Cj4gLQo+IC1BIG1pc3NpbmcgY2hlY2sgZm9yIGEgdmFsaWQgb3B0aW9uIHBy ZXZlbnRlZCBgdGVzdCAtUicgZnJvbSB3b3JraW5nLsKgwqBUaGVyZQo+IC1pcyBhbm90aGVyIHBy b2JsZW0gdGhhdCBjYXVzZXMgYmFzaCB0byBsb29rIHVwIHRoZSB3cm9uZyB2YXJpYWJsZSBuYW1l IHdoZW4KPiAtcHJvY2Vzc2luZyB0aGUgYXJndW1lbnQgdG8gYHRlc3QgLVInLgo+IC0KPiAtUGF0 Y2ggKGFwcGx5IHdpdGggYHBhdGNoIC1wMCcpOgo+IC0KPiAtKioqIC4uL2Jhc2gtNC4zL3Rlc3Qu YwkyMDE0LTAyLTA0IDE2OjUyOjU4LjAwMDAwMDAwMCAtMDUwMAo+IC0tLS0gdGVzdC5jCTIwMTQt MDItMjggMjE6MjI6NDQuMDAwMDAwMDAwIC0wNTAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiog NjQ3LDY1MiAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqDCoMKgY2FzZSAnUic6Cj4gLSHCoMKgwqDC oMKgwqDCoHYgPSBmaW5kX3ZhcmlhYmxlIChhcmcpOwo+IC0hwqDCoMKgwqDCoMKgwqByZXR1cm4g KHYgJiYgaW52aXNpYmxlX3AgKHYpID09IDAgJiYgdmFyX2lzc2V0ICh2KSAmJiBuYW1lcmVmX3Ag KHYpID8KPiBUUlVFIDogRkFMU0UpOwo+IC3CoMKgwqDCoMKgwqB9Cj4gLcKgwqAKPiAtLS0tIDY0 Nyw2NTIgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgwqDCoGNhc2UgJ1InOgo+IC0hwqDCoMKgwqDC oMKgwqB2ID0gZmluZF92YXJpYWJsZV9ub3JlZiAoYXJnKTsKPiAtIcKgwqDCoMKgwqDCoMKgcmV0 dXJuICgodiAmJiBpbnZpc2libGVfcCAodikgPT0gMCAmJiB2YXJfaXNzZXQgKHYpICYmIG5hbWVy ZWZfcCAodikpCj4gPyBUUlVFIDogRkFMU0UpOwo+IC3CoMKgwqDCoMKgwqB9Cj4gLcKgwqAKPiAt KioqKioqKioqKioqKioqCj4gLSoqKiA3MjQsNzI3ICoqKioKPiAtLS0tIDcyNCw3MjggLS0tLQo+ IC3CoMKgwqDCoMKgwqBjYXNlICd1JzogY2FzZSAndic6IGNhc2UgJ3cnOiBjYXNlICd4JzogY2Fz ZSAneic6Cj4gLcKgwqDCoMKgwqDCoGNhc2UgJ0cnOiBjYXNlICdMJzogY2FzZSAnTyc6IGNhc2Ug J1MnOiBjYXNlICdOJzoKPiAtK8KgwqDCoMKgwqBjYXNlICdSJzoKPiAtwqDCoMKgwqDCoMKgwqDC oHJldHVybiAoMSk7Cj4gLcKgwqDCoMKgwqDCoH0KPiAtKioqIC4uL2Jhc2gtNC4zL3BhdGNobGV2 ZWwuaAkyMDEyLTEyLTI5IDEwOjQ3OjU3LjAwMDAwMDAwMCAtMDUwMAo+IC0tLS0gcGF0Y2hsZXZl bC5oCTIwMTQtMDMtMjAgMjA6MDE6MjguMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioq Kgo+IC0qKiogMjYsMzAgKioqKgo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBh dGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKgCj4gLSEg I2RlZmluZSBQQVRDSExFVkVMIDAKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVM X0hfICovCj4gLS0tLSAyNiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0 aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAK PiAtISAjZGVmaW5lIFBBVENITEVWRUwgMQo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENI TEVWRUxfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDAyIGIv c3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDAyCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4g aW5kZXggNzM1YjdiOC4uMDAwMDAwMAo+IC0tLSBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAw Mgo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSw2MiArMCwwIEBACj4gLQkJCcKgwqDCoMKgwqBCQVNI IFBBVENIIFJFUE9SVAo+IC0JCQnCoMKgwqDCoMKgPT09PT09PT09PT09PT09PT0KPiAtCj4gLUJh c2gtUmVsZWFzZToJNC4zCj4gLVBhdGNoLUlEOgliYXNoNDMtMDAyCj4gLQo+IC1CdWctUmVwb3J0 ZWQtYnk6CU1vZSBUdW5lcyA8bW9ldHVuZXM0MihhKWdtYWlsLmNvbT4KPiAtQnVnLVJlZmVyZW5j ZS1JRDoJPDUzMTAzRjQ5LjMwNzAxMDAoYSlnbWFpbC5jb20+Cj4gLUJ1Zy1SZWZlcmVuY2UtVVJM OglodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWJhc2gvMjAxNC0wMi8KPiBt c2cwMDA4Ni5odG1sCj4gLQo+IC1CdWctRGVzY3JpcHRpb246Cj4gLQo+IC1BIGNoYW5nZSB0byBz YXZlIHN0YXRlIHdoaWxlIHJ1bm5pbmcgdGhlIERFQlVHIHRyYXAgY2F1c2VkIHBpcGVsaW5lcyB0 byBoYW5nCj4gLW9uIHN5c3RlbXMgd2hpY2ggbmVlZCBwcm9jZXNzIGdyb3VwIHN5bmNocm9uaXph dGlvbiB3aGlsZSBidWlsZGluZyBwaXBlbGluZXMuCj4gLQo+IC1QYXRjaCAoYXBwbHkgd2l0aCBg cGF0Y2ggLXAwJyk6Cj4gLQo+IC0qKiogLi4vYmFzaC00LjMvdHJhcC5jCTIwMTQtMDItMDUgMTA6 MDM6MjEuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSB0cmFwLmMJMjAxNC0wMi0yOCAwOTo1MTo0My4w MDAwMDAwMDAgLTA1MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA5MjEsOTI1ICoqKioKPiAt wqDCoAo+IC3CoMKgI2lmIGRlZmluZWQgKEpPQl9DT05UUk9MKQo+IC0hwqDCoMKgwqDCoMKgwqBz YXZlX3BpcGVsaW5lICgxKTsJLyogWFhYIG9ubHkgcHJvdmlkZXMgb25lIHNhdmUgbGV2ZWwgKi8K PiAtwqDCoCNlbmRpZgo+IC3CoMKgCj4gLS0tLSA5MjEsOTI2IC0tLS0KPiAtwqDCoAo+IC3CoMKg I2lmIGRlZmluZWQgKEpPQl9DT05UUk9MKQo+IC0hwqDCoMKgwqDCoMKgwqBpZiAoc2lnICE9IERF QlVHX1RSQVApCS8qIHJ1bl9kZWJ1Z190cmFwIGRvZXMgdGhpcyAqLwo+IC0hwqAJc2F2ZV9waXBl bGluZSAoMSk7CS8qIFhYWCBvbmx5IHByb3ZpZGVzIG9uZSBzYXZlIGxldmVsICovCj4gLcKgwqAj ZW5kaWYKPiAtwqDCoAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDk0MSw5NDUgKioqKgo+IC3C oMKgCj4gLcKgwqAjaWYgZGVmaW5lZCAoSk9CX0NPTlRST0wpCj4gLSHCoMKgwqDCoMKgwqDCoHJl c3RvcmVfcGlwZWxpbmUgKDEpOwo+IC3CoMKgI2VuZGlmCj4gLcKgwqAKPiAtLS0tIDk0Miw5NDcg LS0tLQo+IC3CoMKgCj4gLcKgwqAjaWYgZGVmaW5lZCAoSk9CX0NPTlRST0wpCj4gLSHCoMKgwqDC oMKgwqDCoGlmIChzaWcgIT0gREVCVUdfVFJBUCkJLyogcnVuX2RlYnVnX3RyYXAgZG9lcyB0aGlz ICovCj4gLSHCoAlyZXN0b3JlX3BpcGVsaW5lICgxKTsKPiAtwqDCoCNlbmRpZgo+IC3CoMKgCj4g LSoqKiAuLi9iYXNoLTQuMy9wYXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1Ny4wMDAwMDAw MDAgLTA1MDAKPiAtLS0tIHBhdGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4LjAwMDAwMDAw MCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2LDMwICoqKioKPiAtwqDCoMKgwqDC oGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24g c3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAxCj4gLcKgwqAKPiAt wqDCoCNlbmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0tLQo+IC3CoMKg wqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVy c2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDIKPiAtwqDC oAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9w YXRjaGVzL2Jhc2gvYmFzaDQzLTAwMyBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAwMwo+IGRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDBmMzJmNDEuLjAwMDAwMDAKPiAtLS0gYS9z cmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMDMKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsNDggKzAs MCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJwqDCoMKgwqDCoD09 PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1QYXRjaC1JRDoJYmFz aDQzLTAwMwo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglBbmF0b2wgUG9tb3pvdiA8YW5hdG9sLnBv bW96b3YoYSlnbWFpbC5jb20+Cj4gLUJ1Zy1SZWZlcmVuY2UtSUQ6CTxDQU9NRk9tWHkzbVQyU281 R1E1Ri1zbUNWQXJRdUFlQndaMlFLemdDdE1lWEpvRGVZT1EKPiBAbWFpbC5nbWFpbC5jb20+Cj4g LUJ1Zy1SZWZlcmVuY2UtVVJMOglodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVn LXJlYWRsaW5lLzIwMTQKPiAtMDMvbXNnMDAwMTAuaHRtbAo+IC0KPiAtQnVnLURlc2NyaXB0aW9u Ogo+IC0KPiAtV2hlbiBpbiBjYWxsYmFjayBtb2RlLCBzb21lIHJlYWRsaW5lIGNvbW1hbmRzIGNh biBjYXVzZSByZWFkbGluZSB0byBzZWcKPiAtZmF1bHQgYnkgcGFzc2luZyBpbnZhbGlkIGNvbnRl eHRzIHRvIGNhbGxiYWNrIGZ1bmN0aW9ucy4KPiAtCj4gLVBhdGNoIChhcHBseSB3aXRoIGBwYXRj aCAtcDAnKToKPiAtCj4gLSoqKiAuLi9iYXNoLTQuMy9saWIvcmVhZGxpbmUvcmVhZGxpbmUuYwky MDEzLTEwLTI4IDE0OjU4OjA2LjAwMDAwMDAwMAo+IC0wNDAwCj4gLS0tLSBsaWIvcmVhZGxpbmUv cmVhZGxpbmUuYwkyMDE0LTAzLTEwIDE0OjE1OjAyLjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDc0NSw3NDkgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgUkxfQ0hFQ0tf U0lHTkFMUyAoKTsKPiAtIcKgwqDCoGlmIChyID09IDApCQkJLyogc3VjY2VzcyEgKi8KPiAtwqDC oMKgwqDCoMKgewo+IC3CoMKgwqDCoMKgwqDCoMKgX3JsX2tleXNlcV9jaGFpbl9kaXNwb3NlICgp Owo+IC0tLS0gNzQ1LDc1MCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBSTF9DSEVDS19TSUdOQUxT ICgpOwo+IC0hwqDCoMKgLyogV2Ugb25seSB0cmVhdCB2YWx1ZXMgPCAwIHNwZWNpYWxseSB0byBz aW11bGF0ZSByZWN1cnNpb24uICovCj4gLSHCoMKgwqBpZiAociA+PSAwIHx8IChyID09IC0xICYm IChjeHQtPmZsYWdzICYgS1NFUV9TVUJTRVEpID09IDApKQkvKgo+IHN1Y2Nlc3MhIG9yIGZhaWx1 cmUhICovCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoMKgwqDCoMKgwqDCoF9ybF9rZXlzZXFfY2hh aW5fZGlzcG9zZSAoKTsKPiAtKioqIC4uL2Jhc2gtNC4zL3BhdGNobGV2ZWwuaAkyMDEyLTEyLTI5 IDEwOjQ3OjU3LjAwMDAwMDAwMCAtMDUwMAo+IC0tLS0gcGF0Y2hsZXZlbC5oCTIwMTQtMDMtMjAg MjA6MDE6MjguMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjYsMzAg KioqKgo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3Ig dGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExF VkVMIDIKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gLS0tLSAy NiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwg KGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBB VENITEVWRUwgMwo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiBk aWZmIC0tZ2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA0IGIvc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDMtMDA0Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDEwZjA0YS4u MDAwMDAwMAo+IC0tLSBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAwNAo+ICsrKyAvZGV2L251 bGwKPiBAQCAtMSw0NyArMCwwIEBACj4gLQkJCcKgwqDCoMKgwqBCQVNIIFBBVENIIFJFUE9SVAo+ IC0JCQnCoMKgwqDCoMKgPT09PT09PT09PT09PT09PT0KPiAtCj4gLUJhc2gtUmVsZWFzZToJNC4z Cj4gLVBhdGNoLUlEOgliYXNoNDMtMDA0Cj4gLQo+IC1CdWctUmVwb3J0ZWQtYnk6CURhYW4gdmFu IFJvc3N1bSA8ZGFhbihhKWZsYXNoLnVjaGljYWdvLmVkdT4KPiAtQnVnLVJlZmVyZW5jZS1JRDoJ PDIwMTQwMzA3MDcyNTIzLkdBMTQyNTAoYSlmbGFzaC51Y2hpY2Fnby5lZHU+Cj4gLUJ1Zy1SZWZl cmVuY2UtVVJMOgkKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAtCj4gLVRoZSBgLicgY29tbWFu ZCBpbiB2aSBtb2RlIGNhbm5vdCB1bmRvIG11bHRpLWtleSBjb21tYW5kcyBiZWdpbm5pbmcgd2l0 aAo+IC1gYycsIGBkJywgYW5kIGB5JyAoY29tbWFuZCBwbHVzIG1vdGlvbiBzcGVjaWZpZXIpLgo+ IC0KPiAtUGF0Y2ggKGFwcGx5IHdpdGggYHBhdGNoIC1wMCcpOgo+IC0KPiAtKioqIC4uL2Jhc2gt NC4zL2xpYi9yZWFkbGluZS9yZWFkbGluZS5jCTIwMTMtMTAtMjggMTQ6NTg6MDYuMDAwMDAwMDAw Cj4gLTA0MDAKPiAtLS0tIGxpYi9yZWFkbGluZS9yZWFkbGluZS5jCTIwMTQtMDMtMDcgMTU6MjA6 MzMuMDAwMDAwMDAwIC0wNTAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogOTY1LDk2OSAqKioq Cj4gLcKgwqDCoMKgaWYgKHJsX2VkaXRpbmdfbW9kZSA9PSB2aV9tb2RlICYmIF9ybF9rZXltYXAg PT0gdmlfbW92ZW1lbnRfa2V5bWFwICYmCj4gLcKgwqDCoMKgwqDCoMKgwqBrZXkgIT0gQU5ZT1RI RVJLRVkgJiYKPiAtIcKgwqDCoMKgwqDCoMKgcmxfa2V5X3NlcXVlbmNlX2xlbmd0aCA9PSAxICYm CS8qIFhYWCAqLwo+IC3CoMKgwqDCoMKgwqDCoMKgX3JsX3ZpX3RleHRtb2RfY29tbWFuZCAoa2V5 KSkKPiAtwqDCoMKgwqDCoMKgX3JsX3ZpX3NldF9sYXN0IChrZXksIHJsX251bWVyaWNfYXJnLCBy bF9hcmdfc2lnbik7Cj4gLS0tLSA5NjUsOTY5IC0tLS0KPiAtwqDCoMKgwqBpZiAocmxfZWRpdGlu Z19tb2RlID09IHZpX21vZGUgJiYgX3JsX2tleW1hcCA9PSB2aV9tb3ZlbWVudF9rZXltYXAgJiYK PiAtwqDCoMKgwqDCoMKgwqDCoGtleSAhPSBBTllPVEhFUktFWSAmJgo+IC0hwqDCoMKgwqDCoMKg wqBfcmxfZGlzcGF0Y2hpbmdfa2V5bWFwID09IHZpX21vdmVtZW50X2tleW1hcCAmJgo+IC3CoMKg wqDCoMKgwqDCoMKgX3JsX3ZpX3RleHRtb2RfY29tbWFuZCAoa2V5KSkKPiAtwqDCoMKgwqDCoMKg X3JsX3ZpX3NldF9sYXN0IChrZXksIHJsX251bWVyaWNfYXJnLCBybF9hcmdfc2lnbik7Cj4gLSoq KiAuLi9iYXNoLTQuMy9wYXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1Ny4wMDAwMDAwMDAg LTA1MDAKPiAtLS0tIHBhdGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4LjAwMDAwMDAwMCAt MDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2LDMwICoqKioKPiAtwqDCoMKgwqDCoGxv b2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3Ry aW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAzCj4gLcKgwqAKPiAtwqDC oCNlbmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0tLQo+IC3CoMKgwqDC oMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lv biBzdHJpbmcpLiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDQKPiAtwqDCoAo+ IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRj aGVzL2Jhc2gvYmFzaDQzLTAwNSBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAwNQo+IGRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IGJjZDQwNjkuLjAwMDAwMDAKPiAtLS0gYS9zcmMv cGF0Y2hlcy9iYXNoL2Jhc2g0My0wMDUKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsNjMgKzAsMCBA QAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJwqDCoMKgwqDCoD09PT09 PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1QYXRjaC1JRDoJYmFzaDQz LTAwNQo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglEYXZpZCBTaW5lcyA8ZGF2ZS5nbWEoYSlnb29n bGVtYWlsLmNvbT4KPiAtQnVnLVJlZmVyZW5jZS1JRDoJPENBTzNCQWFfQ0tfUmdraGRmenMrTko0 S0ZZZEI5cVczcHZYUUsweExDaTZHTW1EVThidwo+IEBtYWlsLmdtYWlsLmNvbT4KPiAtQnVnLVJl ZmVyZW5jZS1VUkw6CWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctYmFzaC8y MDE0LTAzLwo+IG1zZzAwMDM3Lmh0bWwKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAtCj4gLVdo ZW4gaW4gUG9zaXggbW9kZSwgYmFzaCBkaWQgbm90IGNvcnJlY3RseSBpbnRlcnByZXQgdGhlIEFO U0ktQy1zdHlsZQo+IC0kJy4uLicgcXVvdGluZyBtZWNoYW5pc20gd2hlbiBwZXJmb3JtaW5nIHBh dHRlcm4gc3Vic3RpdHV0aW9uIHdvcmQKPiAtZXhwYW5zaW9ucyB3aXRoaW4gZG91YmxlIHF1b3Rl cy4KPiAtCj4gLVBhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiAtCj4gLSoqKiAuLi9i YXNoLTQuMy9wYXJzZS55CTIwMTQtMDItMTEgMDk6NDI6MTAuMDAwMDAwMDAwIC0wNTAwCj4gLS0t LSBwYXJzZS55CTIwMTQtMDMtMDcgMjA6NTc6MTUuMDAwMDAwMDAwIC0wNTAwCj4gLSoqKioqKioq KioqKioqKgo+IC0qKiogMzM5OSwzNDAzICoqKioKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVu ZXNjYXBlZCBkb3VibGUtcXVvdGVzIG9yIHNpbmdsZS1xdW90ZXMsIGlmIGFueSwgc2hhbGwgb2Nj dXIuIiAqLwo+IC3CoMKgwqDCoMKgwqDCoMKgLyogVGhpcyB3YXMgY2hhbmdlZCBpbiBBdXN0aW4g R3JvdXAgSW50ZXJwIDIyMSAqLwo+IC0hwqDCoMKgwqDCoMKgwqBpZiBNQlRFU1QocG9zaXhseV9j b3JyZWN0ICYmIHNoZWxsX2NvbXBhdGliaWxpdHlfbGV2ZWwgPiA0MSAmJgo+IGRvbGJyYWNlX3N0 YXRlICE9IERPTEJSQUNFX1FVT1RFICYmIChmbGFncyAmIFBfRFFVT1RFKSAmJiAoZmxhZ3MgJiBQ X0RPTEJSQUNFKQo+ICYmIGNoID09ICdcJycpCj4gLcKgwqAJY29udGludWU7Cj4gLcKgwqAKPiAt LS0tIDMzOTksMzQwMyAtLS0tCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1bmVzY2FwZWQgZG91 YmxlLXF1b3RlcyBvciBzaW5nbGUtcXVvdGVzLCBpZiBhbnksIHNoYWxsIG9jY3VyLiIgKi8KPiAt wqDCoMKgwqDCoMKgwqDCoC8qIFRoaXMgd2FzIGNoYW5nZWQgaW4gQXVzdGluIEdyb3VwIEludGVy cCAyMjEgKi8KPiAtIcKgwqDCoMKgwqDCoMKgaWYgTUJURVNUKHBvc2l4bHlfY29ycmVjdCAmJiBz aGVsbF9jb21wYXRpYmlsaXR5X2xldmVsID4gNDEgJiYKPiBkb2xicmFjZV9zdGF0ZSAhPSBET0xC UkFDRV9RVU9URSAmJiBkb2xicmFjZV9zdGF0ZSAhPSBET0xCUkFDRV9RVU9URTIgJiYKPiAoZmxh Z3MgJiBQX0RRVU9URSkgJiYgKGZsYWdzICYgUF9ET0xCUkFDRSkgJiYgY2ggPT0gJ1wnJykKPiAt wqDCoAljb250aW51ZTsKPiAtwqDCoAo+IC0qKiogLi4vYmFzaC00LjMveS50YWIuYwkyMDE0LTAy LTExIDEwOjU3OjQ3LjAwMDAwMDAwMCAtMDUwMAo+IC0tLS0geS50YWIuYwkyMDE0LTAzLTI4IDEw OjQxOjE1LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDU3MTEsNTcx NSAqKioqCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1bmVzY2FwZWQgZG91YmxlLXF1b3RlcyBv ciBzaW5nbGUtcXVvdGVzLCBpZiBhbnksIHNoYWxsIG9jY3VyLiIgKi8KPiAtwqDCoMKgwqDCoMKg wqDCoC8qIFRoaXMgd2FzIGNoYW5nZWQgaW4gQXVzdGluIEdyb3VwIEludGVycCAyMjEgKi8KPiAt IcKgwqDCoMKgwqDCoMKgaWYgTUJURVNUKHBvc2l4bHlfY29ycmVjdCAmJiBzaGVsbF9jb21wYXRp YmlsaXR5X2xldmVsID4gNDEgJiYKPiBkb2xicmFjZV9zdGF0ZSAhPSBET0xCUkFDRV9RVU9URSAm JiAoZmxhZ3MgJiBQX0RRVU9URSkgJiYgKGZsYWdzICYgUF9ET0xCUkFDRSkKPiAmJiBjaCA9PSAn XCcnKQo+IC3CoMKgCWNvbnRpbnVlOwo+IC3CoMKgCj4gLS0tLSA1NzExLDU3MTUgLS0tLQo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgdW5lc2NhcGVkIGRvdWJsZS1xdW90ZXMgb3Igc2luZ2xlLXF1 b3RlcywgaWYgYW55LCBzaGFsbCBvY2N1ci4iICovCj4gLcKgwqDCoMKgwqDCoMKgwqAvKiBUaGlz IHdhcyBjaGFuZ2VkIGluIEF1c3RpbiBHcm91cCBJbnRlcnAgMjIxICovCj4gLSHCoMKgwqDCoMKg wqDCoGlmIE1CVEVTVChwb3NpeGx5X2NvcnJlY3QgJiYgc2hlbGxfY29tcGF0aWJpbGl0eV9sZXZl bCA+IDQxICYmCj4gZG9sYnJhY2Vfc3RhdGUgIT0gRE9MQlJBQ0VfUVVPVEUgJiYgZG9sYnJhY2Vf c3RhdGUgIT0gRE9MQlJBQ0VfUVVPVEUyICYmCj4gKGZsYWdzICYgUF9EUVVPVEUpICYmIChmbGFn cyAmIFBfRE9MQlJBQ0UpICYmIGNoID09ICdcJycpCj4gLcKgwqAJY29udGludWU7Cj4gLcKgwqAK PiAtKioqIC4uL2Jhc2gtNC4zL3BhdGNobGV2ZWwuaAkyMDEyLTEyLTI5IDEwOjQ3OjU3LjAwMDAw MDAwMCAtMDUwMAo+IC0tLS0gcGF0Y2hsZXZlbC5oCTIwMTQtMDMtMjAgMjA6MDE6MjguMDAwMDAw MDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjYsMzAgKioqKgo+IC3CoMKgwqDC oMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lv biBzdHJpbmcpLiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDQKPiAtwqDCoAo+ IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gLS0tLSAyNiwzMCAtLS0tCj4gLcKg wqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2 ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgNQo+IC3C oMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvc3Jj L3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA2IGIvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA2Cj4g ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMjRmZjA1Ny4uMDAwMDAwMAo+IC0tLSBh L3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAwNgo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSw0OCAr MCwwIEBACj4gLQkJCcKgwqDCoMKgwqBCQVNIIFBBVENIIFJFUE9SVAo+IC0JCQnCoMKgwqDCoMKg PT09PT09PT09PT09PT09PT0KPiAtCj4gLUJhc2gtUmVsZWFzZToJNC4zCj4gLVBhdGNoLUlEOgli YXNoNDMtMDA2Cj4gLQo+IC1CdWctUmVwb3J0ZWQtYnk6CUVkdWFyZG8gQSAuIEJ1c3RhbWFudGUg TG9wZXogPGR1YWxidXMoYSlnbWFpbC5jb20+Cj4gLUJ1Zy1SZWZlcmVuY2UtSUQ6CTwyMDE0MDIy ODE3MDAxMy5HQTE2MDE1KGEpZHVhbGJ1cy5tZT4KPiAtQnVnLVJlZmVyZW5jZS1VUkw6CWh0dHA6 Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctYmFzaC8yMDE0LTAyLwo+IG1zZzAwMDkx Lmh0bWwKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAtCj4gLUEgc2hlbGwgdGhhdCBzdGFydGVk IHdpdGggam9iIGNvbnRyb2wgYWN0aXZlIGJ1dCB3YXMgbm90IGludGVyYWN0aXZlIGxlZnQKPiAt dGhlIHRlcm1pbmFsIGluIHRoZSB3cm9uZyBwcm9jZXNzIGdyb3VwIHdoZW4gZXhpdGluZywgY2F1 c2luZyBpdHMgcGFyZW50Cj4gLXNoZWxsIHRvIGdldCBhIHN0b3Agc2lnbmFsIHdoZW4gaXQgYXR0 ZW1wdGVkIHRvIHJlYWQgZnJvbSB0aGUgdGVybWluYWwuCj4gLQo+IC1QYXRjaCAoYXBwbHkgd2l0 aCBgcGF0Y2ggLXAwJyk6Cj4gLQo+IC0qKiogLi4vYmFzaC00LjMvam9icy5jCTIwMTQtMDEtMTAg MDk6MDU6MzQuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBqb2JzLmMJMjAxNC0wMy0wMiAxODowNTow OS4wMDAwMDAwMDAgLTA1MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA0Mzc1LDQzNzkgKioq Kgo+IC3CoMKgZW5kX2pvYl9jb250cm9sICgpCj4gLcKgwqB7Cj4gLSHCoMKgwqBpZiAoaW50ZXJh Y3RpdmVfc2hlbGwpCQkvKiBYWFggLSBzaG91bGQgaXQgYmUgaW50ZXJhY3RpdmU/Cj4gKi8KPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgwqDCoMKgwqDCoMKgdGVybWluYXRlX3N0b3BwZWRfam9icyAo KTsKPiAtLS0tIDQzNzUsNDM3OSAtLS0tCj4gLcKgwqBlbmRfam9iX2NvbnRyb2wgKCkKPiAtwqDC oHsKPiAtIcKgwqDCoGlmIChpbnRlcmFjdGl2ZV9zaGVsbCB8fCBqb2JfY29udHJvbCkJCS8qIFhY WCAtIHNob3VsZCBpdAo+IGJlIGp1c3Qgam9iX2NvbnRyb2w/ICovCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoMKgwqDCoMKgwqDCoHRlcm1pbmF0ZV9zdG9wcGVkX2pvYnMgKCk7Cj4gLSoqKiAuLi9i YXNoLTQuMy9wYXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1Ny4wMDAwMDAwMDAgLTA1MDAK PiAtLS0tIHBhdGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4LjAwMDAwMDAwMCAtMDQwMAo+ IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2LDMwICoqKioKPiAtwqDCoMKgwqDCoGxvb2tzIGZv ciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4g Ki8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCA1Cj4gLcKgwqAKPiAtwqDCoCNlbmRp ZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0tLQo+IC3CoMKgwqDCoMKgbG9v a3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJp bmcpLiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDYKPiAtwqDCoAo+IC3CoMKg I2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jh c2gvYmFzaDQzLTAwNyBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAwNwo+IGRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAo+IGluZGV4IDBkNjJjOWUuLjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hl cy9iYXNoL2Jhc2g0My0wMDcKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsNTAgKzAsMCBAQAo+IC0J CQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJwqDCoMKgwqDCoD09PT09PT09PT09 PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1QYXRjaC1JRDoJYmFzaDQzLTAwNwo+ IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglnZWlyLmhhdWdlKGEpZ21haWwuY29tCj4gLUJ1Zy1SZWZl cmVuY2UtSUQ6CTwyMDE0MDMxODA5MzY1MC5CMTgxQzFDNUIwQihhKWdpbmEuaXRlYS5udG51Lm5v Pgo+IC1CdWctUmVmZXJlbmNlLVVSTDoJaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1s L2J1Zy1iYXNoLzIwMTQtMDMvCj4gbXNnMDAwOTUuaHRtbAo+IC0KPiAtQnVnLURlc2NyaXB0aW9u Ogo+IC0KPiAtVXNpbmcgY29tcG91bmQgYXNzaWdubWVudHMgZm9yIGFzc29jaWF0aXZlIGFycmF5 cyBsaWtlCj4gLQo+IC1hc3NvYz0oIFt4XT0gW3ldPWJhciApCj4gLQo+IC1sZWZ0IHRoZSB2YWx1 ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBrZXkgYHgnIE5VTEwuwqDCoFRoaXMgY2F1c2VkIHN1YnNl cXVlbnQKPiAtbG9va3VwcyB0byBpbnRlcnByZXQgaXQgYXMgdW5zZXQuCj4gLQo+IC1QYXRjaCAo YXBwbHkgd2l0aCBgcGF0Y2ggLXAwJyk6Cj4gLQo+IC0qKiogLi4vYmFzaC00LjMvYXJyYXlmdW5j LmMJMjAxMy0wOC0wMiAxNjoxOTo1OS4wMDAwMDAwMDAgLTA0MDAKPiAtLS0tIGFycmF5ZnVuYy5j CTIwMTQtMDMtMTggMTE6MDg6MTUuMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+ IC0qKiogNTk4LDYwMSAqKioqCj4gLS0tLSA1OTgsNjA2IC0tLS0KPiAtwqDCoAl7Cj4gLcKgwqAJ wqDCoHZhbCA9IGV4cGFuZF9hc3NpZ25tZW50X3N0cmluZ190b19zdHJpbmcgKHZhbCwgMCk7Cj4g LSvCoAnCoMKgaWYgKHZhbCA9PSAwKQo+IC0rwqAJwqDCoMKgwqB7Cj4gLSvCoAnCoMKgwqDCoMKg wqB2YWwgPSAoY2hhciAqKXhtYWxsb2MgKDEpOwo+IC0rwqAJwqDCoMKgwqDCoMKgdmFsWzBdID0g J1wwJzsJLyogbGlrZSBkb19hc3NpZ25tZW50X2ludGVybmFsICovCj4gLSvCoAnCoMKgwqDCoH0K PiAtwqDCoAnCoMKgZnJlZV92YWwgPSAxOwo+IC3CoMKgCX0KPiAtKioqIC4uL2Jhc2gtNC4zL3Bh dGNobGV2ZWwuaAkyMDEyLTEyLTI5IDEwOjQ3OjU3LjAwMDAwMDAwMCAtMDUwMAo+IC0tLS0gcGF0 Y2hsZXZlbC5oCTIwMTQtMDMtMjAgMjA6MDE6MjguMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioq KioqKioqKgo+IC0qKiogMjYsMzAgKioqKgo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQg dGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKg Cj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDYKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRD SExFVkVMX0hfICovCj4gLS0tLSAyNiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8g ZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4g LcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgNwo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyog X1BBVENITEVWRUxfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMt MDA4IGIvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDA4Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0Cj4gaW5kZXggMGFlN2M5NS4uMDAwMDAwMAo+IC0tLSBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFz aDQzLTAwOAo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSwxODggKzAsMCBAQAo+IC0JCQnCoMKgwqDC oMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4g LQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1QYXRjaC1JRDoJYmFzaDQzLTAwOAo+IC0KPiAtQnVn LVJlcG9ydGVkLWJ5OglTdGVwaGFuZSBDaGF6ZWxhcyA8c3RlcGhhbmUuY2hhemVsYXMoYSlnbWFp bC5jb20+Cj4gLUJ1Zy1SZWZlcmVuY2UtSUQ6CTwyMDE0MDMxODEzNTkwMS5HQjIyMTU4KGEpY2hh ei5nbWFpbC5jb20+Cj4gLUJ1Zy1SZWZlcmVuY2UtVVJMOglodHRwOi8vbGlzdHMuZ251Lm9yZy9h cmNoaXZlL2h0bWwvYnVnLWJhc2gvMjAxNC0wMy8KPiBtc2cwMDA5OC5odG1sCj4gLQo+IC1CdWct RGVzY3JpcHRpb246Cj4gLQo+IC1Tb21lIGV4dGVuZGVkIGdsb2IgcGF0dGVybnMgaW5jb3JyZWN0 bHkgbWF0Y2hlZCBmaWxlbmFtZXMgd2l0aCBhIGxlYWRpbmcKPiAtZG90LCByZWdhcmRsZXNzIG9m IHRoZSBzZXR0aW5nIG9mIHRoZSBgZG90Z2xvYicgb3B0aW9uLgo+IC0KPiAtUGF0Y2ggKGFwcGx5 IHdpdGggYHBhdGNoIC1wMCcpOgo+IC0KPiAtKioqIC4uL2Jhc2gtNC4zL2xpYi9nbG9iL2dtaXNj LmMJMjAxMy0xMC0yOCAxNDo0NToyNS4wMDAwMDAwMDAgLTA0MDAKPiAtLS0tIGxpYi9nbG9iL2dt aXNjLmMJMjAxNC0wMy0xOSAwOToxNjowOC4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioq KioqCj4gLSoqKiAyMTEsMjE0ICoqKioKPiAtLS0tIDIxMSwyMTUgLS0tLQo+IC3CoMKgwqDCoMKg wqBjYXNlICchJzoKPiAtwqDCoMKgwqDCoMKgY2FzZSAnQCc6Cj4gLSvCoMKgwqDCoMKgY2FzZSAn Pyc6Cj4gLcKgwqDCoMKgwqDCoMKgwqByZXR1cm4gKHBhdFsxXSA9PSBMUEFSRU4pOwo+IC3CoMKg wqDCoMKgwqBkZWZhdWx0Ogo+IC0qKiogLi4vYmFzaC00LjMvbGliL2dsb2IvZ2xvYi5jCTIwMTQt MDEtMzEgMjE6NDM6NTEuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBsaWIvZ2xvYi9nbG9iLmMJMjAx NC0wMy0yMCAwOTowMToyNi4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoq KiAxODAsMjAyICoqKioKPiAtwqDCoMKgwqDCoMKgwqBpbnQgZmxhZ3M7Cj4gLcKgwqB7Cj4gLSHC oMKgwqBjaGFyICpwcCwgKnBlLCAqdDsKPiAtIcKgwqDCoGludCBuLCByOwo+IC3CoMKgCj4gLcKg wqDCoMKgcHAgPSBwYXQgKyAyOwo+IC0hwqDCoMKgcGUgPSBwcCArIHN0cmxlbiAocHApIC0gMTsJ LyooKi8KPiAtIcKgwqDCoGlmICgqcGUgIT0gJyknKQo+IC0hwqDCoMKgwqDCoHJldHVybiAwOwo+ IC0hwqDCoMKgaWYgKCh0ID0gc3RyY2hyIChwcCwgJ3wnKSkgPT0gMCkJLyogZWFzeSBjYXNlIGZp cnN0ICovCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoMKgwqDCoMKgwqDCoCpwZSA9ICdcMCc7Cj4g LcKgwqDCoMKgwqDCoMKgwqByID0gc2tpcG5hbWUgKHBwLCBkbmFtZSwgZmxhZ3MpOwkvKigqLwo+ IC3CoMKgwqDCoMKgwqDCoMKgKnBlID0gJyknOwo+IC3CoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHI7 Cj4gLcKgwqDCoMKgwqDCoH0KPiAtwqDCoMKgwqB3aGlsZSAodCA9IGdsb2JfcGF0c2NhbiAocHAs IHBlLCAnfCcpKQo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqDCoMKgwqDCoMKgwqBuID0gdFstMV07 Cj4gLcKgwqDCoMKgwqDCoMKgwqB0Wy0xXSA9ICdcMCc7Cj4gLcKgwqDCoMKgwqDCoMKgwqByID0g c2tpcG5hbWUgKHBwLCBkbmFtZSwgZmxhZ3MpOwo+IC3CoMKgwqDCoMKgwqDCoMKgdFstMV0gPSBu Owo+IC3CoMKgwqDCoMKgwqDCoMKgaWYgKHIgPT0gMCkJLyogaWYgYW55IHBhdHRlcm4gc2F5cyBu b3Qgc2tpcCwgd2UgZG9uJ3Qgc2tpcCAqLwo+IC0tLS0gMTgwLDIxNSAtLS0tCj4gLcKgwqDCoMKg wqDCoMKgaW50IGZsYWdzOwo+IC3CoMKgewo+IC0hwqDCoMKgY2hhciAqcHAsICpwZSwgKnQsICpz ZTsKPiAtIcKgwqDCoGludCBuLCByLCBuZWdhdGU7Cj4gLcKgwqAKPiAtK8KgwqDCoG5lZ2F0ZSA9 ICpwYXQgPT0gJyEnOwo+IC3CoMKgwqDCoHBwID0gcGF0ICsgMjsKPiAtIcKgwqDCoHNlID0gcHAg KyBzdHJsZW4gKHBwKSAtIDE7CQkvKiBlbmQgb2Ygc3RyaW5nICovCj4gLSHCoMKgwqBwZSA9IGds b2JfcGF0c2NhbiAocHAsIHNlLCAwKTsJLyogZW5kIG9mIGV4dGdsb2IgcGF0dGVybiAoKCAqLwo+ IC0hwqDCoMKgLyogd2Ugc2hvdWxkIGNoZWNrIGZvciBpbnZhbGlkIGV4dGdsb2IgcGF0dGVybiBo ZXJlICovCj4gLSHCoMKgwqAvKiBpZiBwZSAhPSBzZSB3ZSBoYXZlIG1vcmUgb2YgdGhlIHBhdHRl cm4gYXQgdGhlIGVuZCBvZiB0aGUgZXh0Z2xvYgo+IC0hwqDCoMKgwqDCoMKgcGF0dGVybi4gQ2hl Y2sgdGhlIGVhc3kgY2FzZSBmaXJzdCAoICovCj4gLSHCoMKgwqBpZiAocGUgPT0gc2UgJiYgKnBl ID09ICcpJyAmJiAodCA9IHN0cmNociAocHAsICd8JykpID09IDApCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoMKgwqDCoMKgwqDCoCpwZSA9ICdcMCc7Cj4gLSsgI2lmIGRlZmluZWQgKEhBTkRMRV9N VUxUSUJZVEUpCj4gLSvCoMKgwqDCoMKgwqDCoHIgPSBtYnNraXBuYW1lIChwcCwgZG5hbWUsIGZs YWdzKTsKPiAtKyAjZWxzZQo+IC3CoMKgwqDCoMKgwqDCoMKgciA9IHNraXBuYW1lIChwcCwgZG5h bWUsIGZsYWdzKTsJLyooKi8KPiAtKyAjZW5kaWYKPiAtwqDCoMKgwqDCoMKgwqDCoCpwZSA9ICcp JzsKPiAtwqDCoMKgwqDCoMKgwqDCoHJldHVybiByOwo+IC3CoMKgwqDCoMKgwqB9Cj4gLSvCoAo+ IC0rwqDCoMKgLyogY2hlY2sgZXZlcnkgc3VicGF0dGVybiAqLwo+IC3CoMKgwqDCoHdoaWxlICh0 ID0gZ2xvYl9wYXRzY2FuIChwcCwgcGUsICd8JykpCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoMKg wqDCoMKgwqDCoG4gPSB0Wy0xXTsKPiAtwqDCoMKgwqDCoMKgwqDCoHRbLTFdID0gJ1wwJzsKPiAt KyAjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKPiAtK8KgwqDCoMKgwqDCoMKgciA9IG1i c2tpcG5hbWUgKHBwLCBkbmFtZSwgZmxhZ3MpOwo+IC0rICNlbHNlCj4gLcKgwqDCoMKgwqDCoMKg wqByID0gc2tpcG5hbWUgKHBwLCBkbmFtZSwgZmxhZ3MpOwo+IC0rICNlbmRpZgo+IC3CoMKgwqDC oMKgwqDCoMKgdFstMV0gPSBuOwo+IC3CoMKgwqDCoMKgwqDCoMKgaWYgKHIgPT0gMCkJLyogaWYg YW55IHBhdHRlcm4gc2F5cyBub3Qgc2tpcCwgd2UgZG9uJ3Qgc2tpcCAqLwo+IC0qKioqKioqKioq KioqKioKPiAtKioqIDIwNSwyMTkgKioqKgo+IC3CoMKgwqDCoMKgwqB9CS8qKCovCj4gLcKgwqAK PiAtIcKgwqDCoGlmIChwcCA9PSBwZSkJCS8qIGdsb2JfcGF0c2NhbiBtaWdodCBmaW5kIGVuZCBv ZiBwYXR0ZXJuICovCj4gLcKgwqDCoMKgwqDCoHJldHVybiByOwo+IC3CoMKgCj4gLSHCoMKgwqAq cGUgPSAnXDAnOwo+IC0hICPCoMKgaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKPiAtIcKg wqDCoHIgPSBtYnNraXBuYW1lIChwcCwgZG5hbWUsIGZsYWdzKTsJLyooKi8KPiAtISAjwqDCoGVs c2UKPiAtIcKgwqDCoHIgPSBza2lwbmFtZSAocHAsIGRuYW1lLCBmbGFncyk7CS8qKCovCj4gLSEg I8KgwqBlbmRpZgo+IC0hwqDCoMKgKnBlID0gJyknOwo+IC0hwqDCoMKgcmV0dXJuIHI7Cj4gLcKg wqB9Cj4gLcKgwqAjZW5kaWYKPiAtLS0tIDIxOCwyMjcgLS0tLQo+IC3CoMKgwqDCoMKgwqB9CS8q KCovCj4gLcKgwqAKPiAtIcKgwqDCoC8qIGdsb2JfcGF0c2NhbiBtaWdodCBmaW5kIGVuZCBvZiBw YXR0ZXJuICovCj4gLSHCoMKgwqBpZiAocHAgPT0gc2UpCj4gLcKgwqDCoMKgwqDCoHJldHVybiBy Owo+IC3CoMKgCj4gLSHCoMKgwqAvKiBidXQgaWYgaXQgZG9lc24ndCB0aGVuIHdlIGRpZG4ndCBt YXRjaCBhIGxlYWRpbmcgZG90ICovCj4gLSHCoMKgwqByZXR1cm4gMDsKPiAtwqDCoH0KPiAtwqDC oCNlbmRpZgo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI3OCwyODkgKioqKgo+IC3CoMKgewo+ IC3CoMKgI2lmIEVYVEVOREVEX0dMT0IKPiAtIcKgwqDCoHdjaGFyX3QgKnBwLCAqcGUsICp0LCBu Owo+IC0hwqDCoMKgaW50IHI7Cj4gLcKgwqAKPiAtwqDCoMKgwqBwcCA9IHBhdCArIDI7Cj4gLSHC oMKgwqBwZSA9IHBwICsgd2NzbGVuIChwcCkgLSAxOwkvKigqLwo+IC0hwqDCoMKgaWYgKCpwZSAh PSBMJyknKQo+IC0hwqDCoMKgwqDCoHJldHVybiAwOwo+IC0hwqDCoMKgaWYgKCh0ID0gd2NzY2hy IChwcCwgTCd8JykpID09IDApCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoMKgwqDCoMKgwqDCoCpw ZSA9IEwnXDAnOwo+IC0tLS0gMjg2LDI5OCAtLS0tCj4gLcKgwqB7Cj4gLcKgwqAjaWYgRVhURU5E RURfR0xPQgo+IC0hwqDCoMKgd2NoYXJfdCAqcHAsICpwZSwgKnQsIG4sICpzZTsKPiAtIcKgwqDC oGludCByLCBuZWdhdGU7Cj4gLcKgwqAKPiAtK8KgwqDCoG5lZ2F0ZSA9ICpwYXQgPT0gTCchJzsK PiAtwqDCoMKgwqBwcCA9IHBhdCArIDI7Cj4gLSHCoMKgwqBzZSA9IHBwICsgd2NzbGVuIChwcCkg LSAxOwkvKigqLwo+IC0hwqDCoMKgcGUgPSBnbG9iX3BhdHNjYW5fd2MgKHBwLCBzZSwgMCk7Cj4g LSHCoAo+IC0hwqDCoMKgaWYgKHBlID09IHNlICYmICpwZSA9PSAnKScgJiYgKHQgPSB3Y3NjaHIg KHBwLCBMJ3wnKSkgPT0gMCkKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgwqDCoMKgwqDCoMKgKnBl ID0gTCdcMCc7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjkyLDI5NSAqKioqCj4gLS0tLSAz MDEsMzA2IC0tLS0KPiAtwqDCoMKgwqDCoMKgwqDCoHJldHVybiByOwo+IC3CoMKgwqDCoMKgwqB9 Cj4gLSvCoAo+IC0rwqDCoMKgLyogY2hlY2sgZXZlcnkgc3VicGF0dGVybiAqLwo+IC3CoMKgwqDC oHdoaWxlICh0ID0gZ2xvYl9wYXRzY2FuX3djIChwcCwgcGUsICd8JykpCj4gLcKgwqDCoMKgwqDC oHsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAzMDYsMzEzICoqKioKPiAtwqDCoMKgwqDCoMKg cmV0dXJuIHI7Cj4gLcKgwqAKPiAtIcKgwqDCoCpwZSA9IEwnXDAnOwo+IC0hwqDCoMKgciA9IHdj aGtuYW1lIChwcCwgZG5hbWUpOwkvKigqLwo+IC0hwqDCoMKgKnBlID0gTCcpJzsKPiAtIcKgwqDC oHJldHVybiByOwo+IC3CoMKgI2Vsc2UKPiAtwqDCoMKgwqByZXR1cm4gKHdjaGtuYW1lIChwYXQs IGRuYW1lKSk7Cj4gLS0tLSAzMTcsMzIyIC0tLS0KPiAtwqDCoMKgwqDCoMKgcmV0dXJuIHI7Cj4g LcKgwqAKPiAtIcKgwqDCoC8qIGJ1dCBpZiBpdCBkb2Vzbid0IHRoZW4gd2UgZGlkbid0IG1hdGNo IGEgbGVhZGluZyBkb3QgKi8KPiAtIcKgwqDCoHJldHVybiAwOwo+IC3CoMKgI2Vsc2UKPiAtwqDC oMKgwqByZXR1cm4gKHdjaGtuYW1lIChwYXQsIGRuYW1lKSk7Cj4gLSoqKiAuLi9iYXNoLTQuMy9w YXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1Ny4wMDAwMDAwMDAgLTA1MDAKPiAtLS0tIHBh dGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDI2LDMwICoqKioKPiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5k IHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDC oAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCA3Cj4gLcKgwqAKPiAtwqDCoCNlbmRpZiAvKiBfUEFU Q0hMRVZFTF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0tLQo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRv IGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+ IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDgKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8q IF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQz LTAwOSBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAwOQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAxNTgzNWMuLjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNoL2Jh c2g0My0wMDkKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsNjQgKzAsMCBAQAo+IC0JCQnCoMKgwqDC oMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4g LQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1QYXRjaC1JRDoJYmFzaDQzLTAwOQo+IC0KPiAtQnVn LVJlcG9ydGVkLWJ5OglNYXR0aGlhcyBLbG9zZSA8ZG9rbyhhKWRlYmlhbi5vcmc+Cj4gLUJ1Zy1S ZWZlcmVuY2UtSUQ6CTw1MzM0NkZDOC42MDkwMDA1KGEpZGViaWFuLm9yZz4KPiAtQnVnLVJlZmVy ZW5jZS1VUkw6CWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctYmFzaC8yMDE0 LTAzLwo+IG1zZzAwMTcxLmh0bWwKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAtCj4gLVRoZXJl IGlzIGEgcHJvYmxlbSB3aXRoIHVuc2lnbmVkIHNpZ24gZXh0ZW5zaW9uIHdoZW4gYXR0ZW1wdGlu ZyB0byByZWFsbG9jYXRlCj4gLXRoZSBpbnB1dCBsaW5lIHdoZW4gaXQgaXMgZmV3ZXIgdGhhbiAz IGNoYXJhY3RlcnMgbG9uZyBhbmQgdGhlcmUgaGFzIGJlZW4gYQo+IC1oaXN0b3J5IGV4cGFuc2lv bi7CoMKgVGhlIHNpZ24gZXh0ZW5zaW9uIGNhdXNlcyB0aGUgc2hlbGwgdG8gbm90IHJlYWxsb2Nh dGUgdGhlCj4gLWxpbmUsIHdoaWNoIHJlc3VsdHMgaW4gYSBzZWdtZW50YXRpb24gZmF1bHQgd2hl biBpdCB3cml0ZXMgcGFzdCB0aGUgZW5kLgo+IC0KPiAtUGF0Y2ggKGFwcGx5IHdpdGggYHBhdGNo IC1wMCcpOgo+IC0KPiAtKioqIC4uL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueQkyMDE0LTAyLTEx IDA5OjQyOjEwLjAwMDAwMDAwMCAtMDUwMAo+IC0tLS0gcGFyc2UueQkyMDE0LTAzLTI3IDE2OjMz OjI5LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI0MjUsMjQyOSAq KioqCj4gLcKgwqDCoMKgwqDCoMKgwqBpZiAoc2hlbGxfaW5wdXRfbGluZV90ZXJtaW5hdG9yICE9 IEVPRikKPiAtwqDCoAl7Cj4gLSHCoAnCoMKgaWYgKHNoZWxsX2lucHV0X2xpbmVfc2l6ZSA8IFNJ WkVfTUFYICYmIHNoZWxsX2lucHV0X2xpbmVfbGVuID4KPiBzaGVsbF9pbnB1dF9saW5lX3NpemUg LSAzKQo+IC3CoMKgCcKgwqDCoMKgc2hlbGxfaW5wdXRfbGluZSA9IChjaGFyICopeHJlYWxsb2Mg KHNoZWxsX2lucHV0X2xpbmUsCj4gLcKgwqAJCQkJCTEgKyAoc2hlbGxfaW5wdXRfbGluZV9zaXpl ICs9IDIpKTsKPiAtLS0tIDI0MjUsMjQyOSAtLS0tCj4gLcKgwqDCoMKgwqDCoMKgwqBpZiAoc2hl bGxfaW5wdXRfbGluZV90ZXJtaW5hdG9yICE9IEVPRikKPiAtwqDCoAl7Cj4gLSHCoAnCoMKgaWYg KHNoZWxsX2lucHV0X2xpbmVfc2l6ZSA8IFNJWkVfTUFYLTMgJiYgKHNoZWxsX2lucHV0X2xpbmVf bGVuKzMKPiA+IHNoZWxsX2lucHV0X2xpbmVfc2l6ZSkpCj4gLcKgwqAJwqDCoMKgwqBzaGVsbF9p bnB1dF9saW5lID0gKGNoYXIgKil4cmVhbGxvYyAoc2hlbGxfaW5wdXRfbGluZSwKPiAtwqDCoAkJ CQkJMSArIChzaGVsbF9pbnB1dF9saW5lX3NpemUgKz0gMikpOwo+IC0qKiogLi4vYmFzaC00LjMt cGF0Y2hlZC95LnRhYi5jCTIwMTQtMDMtMjggMTE6MTc6MDYuMDAwMDAwMDAwIC0wNDAwCj4gLS0t LSB5LnRhYi5jCTIwMTQtMDQtMDcgMTE6NDg6MzEuMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioq KioqKioqKgo+IC0qKiogNDczNyw0NzQxICoqKioKPiAtwqDCoMKgwqDCoMKgwqDCoGlmIChzaGVs bF9pbnB1dF9saW5lX3Rlcm1pbmF0b3IgIT0gRU9GKQo+IC3CoMKgCXsKPiAtIcKgCcKgwqBpZiAo c2hlbGxfaW5wdXRfbGluZV9zaXplIDwgU0laRV9NQVggJiYgc2hlbGxfaW5wdXRfbGluZV9sZW4g Pgo+IHNoZWxsX2lucHV0X2xpbmVfc2l6ZSAtIDMpCj4gLcKgwqAJwqDCoMKgwqBzaGVsbF9pbnB1 dF9saW5lID0gKGNoYXIgKil4cmVhbGxvYyAoc2hlbGxfaW5wdXRfbGluZSwKPiAtwqDCoAkJCQkJ MSArIChzaGVsbF9pbnB1dF9saW5lX3NpemUgKz0gMikpOwo+IC0tLS0gNDczNyw0NzQxIC0tLS0K PiAtwqDCoMKgwqDCoMKgwqDCoGlmIChzaGVsbF9pbnB1dF9saW5lX3Rlcm1pbmF0b3IgIT0gRU9G KQo+IC3CoMKgCXsKPiAtIcKgCcKgwqBpZiAoc2hlbGxfaW5wdXRfbGluZV9zaXplIDwgU0laRV9N QVgtMyAmJiAoc2hlbGxfaW5wdXRfbGluZV9sZW4rMwo+ID4gc2hlbGxfaW5wdXRfbGluZV9zaXpl KSkKPiAtwqDCoAnCoMKgwqDCoHNoZWxsX2lucHV0X2xpbmUgPSAoY2hhciAqKXhyZWFsbG9jIChz aGVsbF9pbnB1dF9saW5lLAo+IC3CoMKgCQkJCQkxICsgKHNoZWxsX2lucHV0X2xpbmVfc2l6ZSAr PSAyKSk7Cj4gLSoqKiAuLi9iYXNoLTQuMy9wYXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1 Ny4wMDAwMDAwMDAgLTA1MDAKPiAtLS0tIHBhdGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4 LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2LDMwICoqKioKPiAt wqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2Nz IHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCA4Cj4g LcKgwqAKPiAtwqDCoCNlbmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0t LQo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhl IHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVM IDkKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdp dCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxMCBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQz LTAxMAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDgzNWE5NmUuLjAwMDAwMDAK PiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTAKPiArKysgL2Rldi9udWxsCj4gQEAg LTEsMTU3ICswLDAgQEAKPiAtCQkJwqDCoMKgwqDCoEJBU0ggUEFUQ0ggUkVQT1JUCj4gLQkJCcKg wqDCoMKgwqA9PT09PT09PT09PT09PT09PQo+IC0KPiAtQmFzaC1SZWxlYXNlOgk0LjMKPiAtUGF0 Y2gtSUQ6CWJhc2g0My0wMTAKPiAtCj4gLUJ1Zy1SZXBvcnRlZC1ieToJQWxiZXJ0IFNoaWggPEFs YmVydC5TaGloKGEpb2JzcG0uZnI+Cj4gLUJ1Zy1SZWZlcmVuY2UtSUQ6CVdlZCwgNSBNYXIgMjAx NCAyMzowMTo0MCArMDEwMAo+IC1CdWctUmVmZXJlbmNlLVVSTDoJaHR0cDovL2xpc3RzLmdudS5v cmcvYXJjaGl2ZS9odG1sL2J1Zy1iYXNoLzIwMTQtMDMvCj4gbXNnMDAwMjguaHRtbAo+IC0KPiAt QnVnLURlc2NyaXB0aW9uOgo+IC0KPiAtUGF0Y2ggKGFwcGx5IHdpdGggYHBhdGNoIC1wMCcpOgo+ IC0KPiAtVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBwcm9ncmFtbWFibGUgY29t cGxldGlvbiB0byBjb21wZW5zYXRlCj4gLWZvciB0d28gYXNzdW1wdGlvbnMgbWFkZSBieSB0aGUg YmFzaC1jb21wbGV0aW9uIHBhY2thZ2UuwqDCoEJhc2gtNC4zIGNoYW5nZWQKPiAtdG8gZGVxdW90 ZSB0aGUgYXJndW1lbnQgdG8gcHJvZ3JhbW1hYmxlIGNvbXBsZXRpb24gb25seSB1bmRlciBjZXJ0 YWluCj4gLWNpcmN1bXN0YW5jZXMsIHRvIG1ha2UgdGhlIGJlaGF2aW9yIG9mIGNvbXBnZW4gbW9y ZSBjb25zaXN0ZW50IHdoZW4gcnVuCj4gLWZyb20gdGhlIGNvbW1hbmQgbGluZSAtLSBjbG9zZXIg dG8gdGhlIGJlaGF2aW9yIHdoZW4gcnVuIGJ5IGEgc2hlbGwgZnVuY3Rpb24KPiAtcnVuIGFzIHBh cnQgb2YgcHJvZ3JhbW1hYmxlIGNvbXBsZXRpb24uwqDCoEJhc2gtY29tcGxldGlvbiBjYW4gcGFz cyBxdW90ZWQKPiAtYXJndW1lbnRzIHRvIGNvbXBnZW4gd2hlbiB0aGUgb3JpZ2luYWwgd29yZCB0 byBiZSBjb21wbGV0ZWQgd2FzIG5vdCBxdW90ZWQsCj4gLWV4cGVjdGluZyBwcm9ncmFtbWFibGUg Y29tcGxldGlvbiB0byBkZXF1b3RlIHRoZSB3b3JkIGJlZm9yZSBhdHRlbXB0aW5nCj4gLWNvbXBs ZXRpb24uCj4gLQo+IC1UaGlzIHBhdGNoIGZpeGVzIHR3byBjYXNlczoKPiAtCj4gLTEuwqDCoEFu IGVtcHR5IHN0cmluZyB0aGF0IGJhc2gtY29tcGxldGlvbiBwYXNzZXMgdG8gY29tcGdlbiBhcyBh IHF1b3RlZCBudWxsCj4gLcKgwqDCoMKgc3RyaW5nICgnJykuCj4gLQo+IC0yLsKgwqBBbiB1bnF1 b3RlZCB3b3JkIHRoYXQgYmFzaC1jb21wbGV0aW9uIHF1b3RlcyB1c2luZyBzaW5nbGUgcXVvdGVz IG9yCj4gLcKgwqDCoMKgYmFja3NsYXNoZXMgYmVmb3JlIHBhc3NpbmcgaXQgdG8gY29tcGdlbi4K PiAtCj4gLUluIHRoZXNlIGNhc2VzLCBzaW5jZSByZWFkbGluZSBkaWQgbm90IGRldGVjdCBhIHF1 b3RlIGNoYXJhY3RlciBpbiB0aGUKPiBvcmlnaW5hbAo+IC13b3JkIHRvIGJlIGNvbXBsZXRlZCwg YmFzaC00LjPCoAo+IC0KPiAtKioqIC4uL2Jhc2gtNC4zL2V4dGVybnMuaAkyMDE0LTAxLTAyIDE0 OjU4OjIwLjAwMDAwMDAwMCAtMDUwMAo+IC0tLS0gZXh0ZXJucy5oCTIwMTQtMDMtMTMgMTQ6NDI6 NTcuMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMzI1LDMyOCAqKioq Cj4gLS0tLSAzMjUsMzI5IC0tLS0KPiAtwqDCoGV4dGVybiBjaGFyICpzaF9iYWNrc2xhc2hfcXVv dGVfZm9yX2RvdWJsZV9xdW90ZXMgX19QKChjaGFyICopKTsKPiAtwqDCoGV4dGVybiBpbnQgc2hf Y29udGFpbnNfc2hlbGxfbWV0YXMgX19QKChjaGFyICopKTsKPiAtKyBleHRlcm4gaW50IHNoX2Nv bnRhaW5zX3F1b3RlcyBfX1AoKGNoYXIgKikpOwo+IC3CoMKgCj4gLcKgwqAvKiBkZWNsYXJhdGlv bnMgZm9yIGZ1bmN0aW9ucyBkZWZpbmVkIGluIGxpYi9zaC9zcGVsbC5jICovCj4gLSoqKiAuLi9i YXNoLTQuMy9saWIvc2gvc2hxdW90ZS5jCTIwMTMtMDMtMzEgMjE6NTM6MzIuMDAwMDAwMDAwIC0w NDAwCj4gLS0tLSBsaWIvc2gvc2hxdW90ZS5jCTIwMTQtMDMtMTMgMTQ6NDI6NTcuMDAwMDAwMDAw IC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMzEyLDMxMyAqKioqCj4gLS0tLSAzMTIs MzI3IC0tLS0KPiAtwqDCoMKgwqByZXR1cm4gKDApOwo+IC3CoMKgfQo+IC0rwqAKPiAtKyBpbnQK PiAtKyBzaF9jb250YWluc19xdW90ZXMgKHN0cmluZykKPiAtK8KgwqDCoMKgwqDCoGNoYXIgKnN0 cmluZzsKPiAtKyB7Cj4gLSvCoMKgwqBjaGFyICpzOwo+IC0rwqAKPiAtK8KgwqDCoGZvciAocyA9 IHN0cmluZzsgcyAmJiAqczsgcysrKQo+IC0rwqDCoMKgwqDCoHsKPiAtK8KgwqDCoMKgwqDCoMKg aWYgKCpzID09ICdcJycgfHwgKnMgPT0gJyInIHx8ICpzID09ICdcXCcpCj4gLSvCoAlyZXR1cm4g MTsKPiAtK8KgwqDCoMKgwqB9Cj4gLSvCoMKgwqByZXR1cm4gMDsKPiAtKyB9Cj4gLSoqKiAuLi9i YXNoLTQuMy9wY29tcGxldGUuYwkyMDEzLTA4LTI2IDE1OjIzOjQ1LjAwMDAwMDAwMCAtMDQwMAo+ IC0tLS0gcGNvbXBsZXRlLmMJMjAxNC0wMy0yNSAxNzoyMzoyMy4wMDAwMDAwMDAgLTA0MDAKPiAt KioqKioqKioqKioqKioqCj4gLSoqKiAxODQsMTg3ICoqKioKPiAtLS0tIDE4NCwxODggLS0tLQo+ IC3CoMKgQ09NUFNQRUMgKnBjb21wX2N1cmNzOwo+IC3CoMKgY29uc3QgY2hhciAqcGNvbXBfY3Vy Y21kOwo+IC0rIGNvbnN0IGNoYXIgKnBjb21wX2N1cnR4dDsKPiAtwqDCoAo+IC3CoMKgI2lmZGVm IERFQlVHCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogNzU0LDc1NyAqKioqCj4gLS0tLSA3NTUs Nzg0IC0tLS0KPiAtwqDCoAnCoMKgZGZuID0gKCpybF9maWxlbmFtZV9kZXF1b3RpbmdfZnVuY3Rp b24pICgoY2hhciAqKXRleHQsCj4gcmxfY29tcGxldGlvbl9xdW90ZV9jaGFyYWN0ZXIpOwo+IC3C oMKgCX0KPiAtK8KgwqDCoMKgwqDCoMKgLyogSW50ZW5kZWQgdG8gc29sdmUgYSBtaXNtYXRjaGVk IGFzc3VtcHRpb24gYnkgYmFzaC1jb21wbGV0aW9uLsKgwqBJZgo+IC0rwqAJwqB0aGUgdGV4dCB0 byBiZSBjb21wbGV0ZWQgaXMgZW1wdHksIGJ1dCBiYXNoLWNvbXBsZXRpb24gdHVybnMgaXQKPiBp bnRvCj4gLSvCoAnCoGEgcXVvdGVkIHN0cmluZyAoJycpIGFzc3VtaW5nIHRoYXQgdGhpcyBjb2Rl IHdpbGwgZGVxdW90ZSBpdAo+IGJlZm9yZQo+IC0rwqAJwqBjYWxsaW5nIHJlYWRsaW5lLCBkbyB0 aGUgZGVxdW90aW5nLiAqLwo+IC0rwqDCoMKgwqDCoMKgwqBlbHNlIGlmIChpc2NvbXBnZW4gJiYg aXNjb21wbGV0aW5nICYmCj4gLSvCoAnCoMKgwqDCoMKgwqDCoHBjb21wX2N1cnR4dCAmJiAqcGNv bXBfY3VydHh0ID09IDAgJiYKPiAtK8KgCcKgwqDCoMKgwqDCoMKgdGV4dCAmJiAoKnRleHQgPT0g J1wnJyB8fCAqdGV4dCA9PSAnIicpICYmIHRleHRbMV0gPT0KPiB0ZXh0WzBdICYmIHRleHRbMl0g PT0gMCAmJsKgCj4gLSvCoAnCoMKgwqDCoMKgwqDCoHJsX2ZpbGVuYW1lX2RlcXVvdGluZ19mdW5j dGlvbikKPiAtK8KgCWRmbiA9ICgqcmxfZmlsZW5hbWVfZGVxdW90aW5nX2Z1bmN0aW9uKSAoKGNo YXIgKil0ZXh0LAo+IHJsX2NvbXBsZXRpb25fcXVvdGVfY2hhcmFjdGVyKTsKPiAtK8KgwqDCoMKg wqDCoMKgLyogQW5vdGhlciBtaXNtYXRjaGVkIGFzc3VtcHRpb24gYnkgYmFzaC1jb21wbGV0aW9u LsKgwqBJZiBjb21wZ2VuIGlzCj4gYmVpbmcKPiAtK8KgwqDCoMKgwqDCoMKgCcKgcnVuIGFzIHBh cnQgb2YgYmFzaC1jb21wbGV0aW9uLCBhbmQgdGhlIGFyZ3VtZW50IHRvIGNvbXBnZW4KPiBpcyBu b3QKPiAtK8KgwqDCoMKgwqDCoMKgCcKgdGhlIHNhbWUgYXMgdGhlIHdvcmQgb3JpZ2luYWxseSBw YXNzZWQgdG8gdGhlIHByb2dyYW1tYWJsZQo+IGNvbXBsZXRpb24KPiAtK8KgwqDCoMKgwqDCoMKg CcKgY29kZSwgZGVxdW90ZSB0aGUgYXJndW1lbnQgaWYgaXQgaGFzIHF1b3RlIGNoYXJhY3RlcnMu wqDCoEl0J3MKPiBhbgo+IC0rwqDCoMKgwqDCoMKgwqAJwqBhdHRlbXB0IHRvIGRldGVjdCB3aGVu IGJhc2gtY29tcGxldGlvbiBpcyBxdW90aW5nIGl0cwo+IGZpbGVuYW1lCj4gLSvCoMKgwqDCoMKg wqDCoAnCoGFyZ3VtZW50IGJlZm9yZSBjYWxsaW5nIGNvbXBnZW4uICovCj4gLSvCoMKgwqDCoMKg wqDCoC8qIFdlIGNvdWxkIGNoZWNrIHdoZXRoZXIgZ2VuX3NoZWxsX2Z1bmN0aW9uX21hdGNoZXMg aXMgaW4gdGhlIGNhbGwKPiAtK8KgCcKgc3RhY2sgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUgZ2Vu LXNoZWxsLWZ1bmN0aW9uLW1hdGNoZXMgdGFnIGlzIGluCj4gLSvCoAnCoHRoZSB1bndpbmQtcHJv dGVjdCBzdGFjaywgYnV0IHRoZXJlJ3Mgbm8gZnVuY3Rpb24gdG8gZG8gdGhhdCB5ZXQuCj4gLSvC oAnCoFdlIGNvdWxkIHNpbXBseSBjaGVjayB3aGV0aGVyIHdlJ3JlIGV4ZWN1dGluZyBpbiBhIGZ1 bmN0aW9uIGJ5Cj4gLSvCoAnCoGNoZWNraW5nIHZhcmlhYmxlX2NvbnRleHQsIGFuZCBtYXkgZW5k IHVwIGRvaW5nIHRoYXQuICovCj4gLSvCoMKgwqDCoMKgwqDCoGVsc2UgaWYgKGlzY29tcGdlbiAm JiBpc2NvbXBsZXRpbmcgJiYgcmxfZmlsZW5hbWVfZGVxdW90aW5nX2Z1bmN0aW9uCj4gJiYKPiAt K8KgCcKgwqDCoMKgwqDCoMKgcGNvbXBfY3VydHh0ICYmIHRleHQgJiYKPiAtK8KgCcKgwqDCoMKg wqDCoMKgU1RSRVEgKHBjb21wX2N1cnR4dCwgdGV4dCkgPT0gMCAmJgo+IC0rwqAJwqDCoMKgwqDC oMKgwqB2YXJpYWJsZV9jb250ZXh0ICYmCj4gLSvCoAnCoMKgwqDCoMKgwqDCoHNoX2NvbnRhaW5z X3F1b3RlcyAodGV4dCkpCS8qIGd1ZXNzICovCj4gLSvCoAlkZm4gPSAoKnJsX2ZpbGVuYW1lX2Rl cXVvdGluZ19mdW5jdGlvbikgKChjaGFyICopdGV4dCwKPiBybF9jb21wbGV0aW9uX3F1b3RlX2No YXJhY3Rlcik7Cj4gLcKgwqDCoMKgwqDCoMKgwqBlbHNlCj4gLcKgwqAJZGZuID0gc2F2ZXN0cmlu ZyAodGV4dCk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMTUyMywxNTI3ICoqKioKPiAtwqDC oHsKPiAtwqDCoMKgwqBDT01QU1BFQyAqY3MsICpvbGRjczsKPiAtIcKgwqDCoGNvbnN0IGNoYXIg Km9sZGNtZDsKPiAtwqDCoMKgwqBTVFJJTkdMSVNUICpyZXQ7Cj4gLcKgwqAKPiAtLS0tIDE1NTAs MTU1NCAtLS0tCj4gLcKgwqB7Cj4gLcKgwqDCoMKgQ09NUFNQRUMgKmNzLCAqb2xkY3M7Cj4gLSHC oMKgwqBjb25zdCBjaGFyICpvbGRjbWQsICpvbGR0eHQ7Cj4gLcKgwqDCoMKgU1RSSU5HTElTVCAq cmV0Owo+IC3CoMKgCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMTU0NiwxNTUyICoqKioKPiAt LS0tIDE1NzMsMTU4MSAtLS0tCj4gLcKgwqDCoMKgb2xkY3MgPSBwY29tcF9jdXJjczsKPiAtwqDC oMKgwqBvbGRjbWQgPSBwY29tcF9jdXJjbWQ7Cj4gLSvCoMKgwqBvbGR0eHQgPSBwY29tcF9jdXJ0 eHQ7Cj4gLcKgwqAKPiAtwqDCoMKgwqBwY29tcF9jdXJjcyA9IGNzOwo+IC3CoMKgwqDCoHBjb21w X2N1cmNtZCA9IGNtZDsKPiAtK8KgwqDCoHBjb21wX2N1cnR4dCA9IHdvcmQ7Cj4gLcKgwqAKPiAt wqDCoMKgwqByZXQgPSBnZW5fY29tcHNwZWNfY29tcGxldGlvbnMgKGNzLCBjbWQsIHdvcmQsIHN0 YXJ0LCBlbmQsIGZvdW5kcCk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMTU1NCwxNTU3ICoq KioKPiAtLS0tIDE1ODMsMTU4NyAtLS0tCj4gLcKgwqDCoMKgcGNvbXBfY3VyY3MgPSBvbGRjczsK PiAtwqDCoMKgwqBwY29tcF9jdXJjbWQgPSBvbGRjbWQ7Cj4gLSvCoMKgwqBwY29tcF9jdXJ0eHQg PSBvbGR0eHQ7Cj4gLcKgwqAKPiAtwqDCoMKgwqAvKiBXZSBuZWVkIHRvIGNvbmRpdGlvbmFsbHkg aGFuZGxlIHNldHRpbmcgKnJldHJ5cCBoZXJlICovCj4gLSoqKiAuLi9iYXNoLTQuMy9wYXRjaGxl dmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1Ny4wMDAwMDAwMDAgLTA1MDAKPiAtLS0tIHBhdGNobGV2 ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioq KioKPiAtKioqIDI2LDMwICoqKioKPiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBw YXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0h ICNkZWZpbmUgUEFUQ0hMRVZFTCA5Cj4gLcKgwqAKPiAtwqDCoCNlbmRpZiAvKiBfUEFUQ0hMRVZF TF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0tLQo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQg dGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKg Cj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDEwCj4gLcKgwqAKPiAtwqDCoCNlbmRpZiAvKiBfUEFU Q0hMRVZFTF9IXyAqLwo+IGRpZmYgLS1naXQgYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTEg Yi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTEKPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCBjZGMxNTcyLi4wMDAwMDAwCj4gLS0tIGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMt MDExCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDQ5ICswLDAgQEAKPiAtCQkJwqDCoMKgwqDCoEJB U0ggUEFUQ0ggUkVQT1JUCj4gLQkJCcKgwqDCoMKgwqA9PT09PT09PT09PT09PT09PQo+IC0KPiAt QmFzaC1SZWxlYXNlOgk0LjMKPiAtUGF0Y2gtSUQ6CWJhc2g0My0wMTEKPiAtCj4gLUJ1Zy1SZXBv cnRlZC1ieToJRWdtb250IEtvYmxpbmdlciA8ZWdtb250KGEpZ21haWwuY29tPgo+IC1CdWctUmVm ZXJlbmNlLUlEOgk8Q0FHV2NaaytiVTVKbzFNK3R1dEd2TC0yNTBVQkU5RFhqcGVKVm9mWUpTRmNx RkVWZk1nCj4gQG1haWwuZ21haWwuY29tPgo+IC1CdWctUmVmZXJlbmNlLVVSTDoJaHR0cDovL2xp c3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2J1Zy1iYXNoLzIwMTQtMDMvCj4gbXNnMDAxNTMuaHRt bAo+IC0KPiAtQnVnLURlc2NyaXB0aW9uOgo+IC0KPiAtVGhlIHNpZ25hbCBoYW5kbGluZyBjaGFu Z2VzIHRvIGJhc2ggYW5kIHJlYWRsaW5lICh0byBhdm9pZCBydW5uaW5nIGFueSBjb2RlCj4gLWlu IGEgc2lnbmFsIGhhbmRsZXIgY29udGV4dCkgY2F1c2UgdGhlIGN1cnNvciB0byBiZSBwbGFjZWQg b24gdGhlIHdyb25nCj4gLWxpbmUgb2YgYSBtdWx0aS1saW5lIGNvbW1hbmQgYWZ0ZXIgYSBeQyBp bnRlcnJ1cHRzIGVkaXRpbmcuCj4gLQo+IC1QYXRjaCAoYXBwbHkgd2l0aCBgcGF0Y2ggLXAwJyk6 Cj4gLQo+IC0qKiogLi4vYmFzaC00LjMtcGF0Y2hlZC9saWIvcmVhZGxpbmUvZGlzcGxheS5jCTIw MTMtMTItMjcKPiAxMzoxMDo1Ni4wMDAwMDAwMDAgLTA1MDAKPiAtLS0tIGxpYi9yZWFkbGluZS9k aXNwbGF5LmMJMjAxNC0wMy0yNyAxMTo1Mjo0NS4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioq KioqKioqCj4gLSoqKiAyNjc4LDI2ODIgKioqKgo+IC3CoMKgwqDCoGlmIChfcmxfZWNob2luZ19w KQo+IC3CoMKgwqDCoMKgwqB7Cj4gLSHCoMKgwqDCoMKgwqDCoF9ybF9tb3ZlX3ZlcnQgKF9ybF92 aXNfYm90bGluKTsKPiAtwqDCoMKgwqDCoMKgwqDCoF9ybF92aXNfYm90bGluID0gMDsKPiAtwqDC oMKgwqDCoMKgwqDCoGZmbHVzaCAocmxfb3V0c3RyZWFtKTsKPiAtLS0tIDI2NzgsMjY4MyAtLS0t Cj4gLcKgwqDCoMKgaWYgKF9ybF9lY2hvaW5nX3ApCj4gLcKgwqDCoMKgwqDCoHsKPiAtIcKgwqDC oMKgwqDCoMKgaWYgKF9ybF92aXNfYm90bGluID4gMCkJLyogbWlub3Igb3B0aW1pemF0aW9uIHBs dXMgYnVnIGZpeCAqLwo+IC0hwqAJX3JsX21vdmVfdmVydCAoX3JsX3Zpc19ib3RsaW4pOwo+IC3C oMKgwqDCoMKgwqDCoMKgX3JsX3Zpc19ib3RsaW4gPSAwOwo+IC3CoMKgwqDCoMKgwqDCoMKgZmZs dXNoIChybF9vdXRzdHJlYW0pOwo+IC0qKiogLi4vYmFzaC00LjMvcGF0Y2hsZXZlbC5oCTIwMTIt MTItMjkgMTA6NDc6NTcuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBwYXRjaGxldmVsLmgJMjAxNC0w My0yMCAyMDowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAy NiwzMCAqKioqCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwg KGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBB VENITEVWRUwgMTAKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4g LS0tLSAyNiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2gg bGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVm aW5lIFBBVENITEVWRUwgMTEKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hf ICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxMiBiL3NyYy9wYXRj aGVzL2Jhc2gvYmFzaDQzLTAxMgo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDE3 NmZhMTUuLjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTIKPiArKysg L2Rldi9udWxsCj4gQEAgLTEsNDMgKzAsMCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBS RVBPUlQKPiAtCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVh c2U6CTQuMwo+IC1QYXRjaC1JRDoJYmFzaDQzLTAxMgo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglF ZHVhcmRvIEEuIEJ1c3RhbWFudGUgTMOzcGV6PGR1YWxidXMoYSlnbWFpbC5jb20+Cj4gLUJ1Zy1S ZWZlcmVuY2UtSUQ6CTw1MzQ2QjU0Qy40MDcwMjA1KGEpY2FzZS5lZHU+Cj4gLUJ1Zy1SZWZlcmVu Y2UtVVJMOglodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWJhc2gvMjAxNC0w NC8KPiBtc2cwMDA1MS5odG1sCj4gLQo+IC1CdWctRGVzY3JpcHRpb246Cj4gLQo+IC1XaGVuIGEg U0lHQ0hMRCB0cmFwIHJ1bnMgYSBjb21tYW5kIGNvbnRhaW5pbmcgYSBzaGVsbCBidWlsdGluIHdo aWxlCj4gLWEgc2NyaXB0IGlzIHJ1bm5pbmcgYHdhaXQnIHRvIHdhaXQgZm9yIGFsbCBydW5uaW5n IGNoaWxkcmVuIHRvIGNvbXBsZXRlLAo+IC10aGUgU0lHQ0hMRCB0cmFwIHdpbGwgbm90IGJlIHJ1 biBvbmNlIGZvciBlYWNoIGNoaWxkIHRoYXQgdGVybWluYXRlcy4KPiAtCj4gLVBhdGNoIChhcHBs eSB3aXRoIGBwYXRjaCAtcDAnKToKPiAtCj4gLSoqKiAuLi9iYXNoLTQuMy1wYXRjaGVkL2pvYnMu YwkyMDE0LTAzLTI4IDEwOjU0OjE5LjAwMDAwMDAwMCAtMDQwMAo+IC0tLS0gam9icy5jCTIwMTQt MDQtMTUgMDg6NDc6MDMuMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiog MzU5OCwzNjAxICoqKioKPiAtLS0tIDM1OTgsMzYwMiAtLS0tCj4gLcKgwqDCoMKgdW53aW5kX3By b3RlY3RfcG9pbnRlciAodGhlX3BpcGVsaW5lKTsKPiAtwqDCoMKgwqB1bndpbmRfcHJvdGVjdF9w b2ludGVyIChzdWJzdF9hc3NpZ25fdmFybGlzdCk7Cj4gLSvCoMKgwqB1bndpbmRfcHJvdGVjdF9w b2ludGVyICh0aGlzX3NoZWxsX2J1aWx0aW4pOwo+IC3CoMKgCj4gLcKgwqDCoMKgLyogV2UgaGF2 ZSB0byBhZGQgdGhlIGNvbW1hbmRzIHRoaXMgd2F5IGJlY2F1c2UgdGhleSB3aWxsIGJlIHJ1bgo+ IC0qKiogLi4vYmFzaC00LjMvcGF0Y2hsZXZlbC5oCTIwMTItMTItMjkgMTA6NDc6NTcuMDAwMDAw MDAwIC0wNTAwCj4gLS0tLSBwYXRjaGxldmVsLmgJMjAxNC0wMy0yMCAyMDowMToyOC4wMDAwMDAw MDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNiwzMCAqKioqCj4gLcKgwqDCoMKg wqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9u IHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMTEKPiAtwqDCoAo+ IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gLS0tLSAyNiwzMCAtLS0tCj4gLcKg wqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2 ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMTIKPiAt wqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3Ny Yy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxMyBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxMwo+ IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDhmNDAwNmIuLjAwMDAwMDAKPiAtLS0g YS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTMKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsNjYg KzAsMCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJwqDCoMKgwqDC oD09PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1QYXRjaC1JRDoJ YmFzaDQzLTAxMwo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5Ogk8VHJvbmQuRW5kcmVzdG9sKGEpeGlt YWxhcy5pbmZvPgo+IC1CdWctUmVmZXJlbmNlLUlEOgk8YWxwaW5lLkJTRi4yLjAzLjE0MDQxOTIx MTQzMTAuMTk3MyhhKWVudGVycHJpc2UueGltYWwKPiBhcy5pbmZvPgo+IC1CdWctUmVmZXJlbmNl LVVSTDoJaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2J1Zy1iYXNoLzIwMTQtMDQv Cj4gbXNnMDAwNjkuaHRtbAo+IC0KPiAtQnVnLURlc2NyaXB0aW9uOgo+IC0KPiAtVXNpbmcgcmV2 ZXJzZS1pLXNlYXJjaCB3aGVuIGhvcml6b250YWwgc2Nyb2xsaW5nIGlzIGVuYWJsZWQgZG9lcyBu b3QKPiByZWRpc3BsYXkKPiAtdGhlIGVudGlyZSBsaW5lIGNvbnRhaW5pbmcgdGhlIHN1Y2Nlc3Nm dWwgc2VhcmNoIHJlc3VsdHMuCj4gLQo+IC1QYXRjaCAoYXBwbHkgd2l0aCBgcGF0Y2ggLXAwJyk6 Cj4gLSoqKiAuLi9iYXNoLTQuMy1wYXRjaGVkL2xpYi9yZWFkbGluZS9kaXNwbGF5LmMJMjAxNC0w NC0wOAo+IDE4OjE5OjM2LjAwMDAwMDAwMCAtMDQwMAo+IC0tLS0gbGliL3JlYWRsaW5lL2Rpc3Bs YXkuYwkyMDE0LTA0LTIwIDE4OjMyOjUyLjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioq KioKPiAtKioqIDE2MzgsMTY0MiAqKioqCj4gLcKgwqDCoMKgwqDCoMKgdGhlIHNwb3Qgb2YgZmly c3QgZGlmZmVyZW5jZSBpcyBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgaW52aXNpYmxlIGNoYXJzLAo+ IC3CoMKgwqDCoMKgwqDCoGxlbmRpZmYgbmVlZHMgdG8gYmUgYWRqdXN0ZWQuICovCj4gLSHCoMKg wqBpZiAoY3VycmVudF9saW5lID09IDAgJiYgIV9ybF9ob3Jpem9udGFsX3Njcm9sbF9tb2RlICYm Cj4gLcKgwqDCoMKgwqDCoMKgwqBjdXJyZW50X2ludmlzX2NoYXJzICE9IHZpc2libGVfd3JhcF9v ZmZzZXQpCj4gLcKgwqDCoMKgwqDCoHsKPiAtLS0tIDE2MzgsMTY0MiAtLS0tCj4gLcKgwqDCoMKg wqDCoMKgdGhlIHNwb3Qgb2YgZmlyc3QgZGlmZmVyZW5jZSBpcyBiZWZvcmUgdGhlIGVuZCBvZiB0 aGUgaW52aXNpYmxlIGNoYXJzLAo+IC3CoMKgwqDCoMKgwqDCoGxlbmRpZmYgbmVlZHMgdG8gYmUg YWRqdXN0ZWQuICovCj4gLSHCoMKgwqBpZiAoY3VycmVudF9saW5lID09IDAgJiYgLyogIV9ybF9o b3Jpem9udGFsX3Njcm9sbF9tb2RlICYmICovCj4gLcKgwqDCoMKgwqDCoMKgwqBjdXJyZW50X2lu dmlzX2NoYXJzICE9IHZpc2libGVfd3JhcF9vZmZzZXQpCj4gLcKgwqDCoMKgwqDCoHsKPiAtKioq KioqKioqKioqKioqCj4gLSoqKiAxODI2LDE4MzEgKioqKgo+IC3CoMKgCQlfcmxfbGFzdF9jX3Bv cyArPSBieXRlc190b19pbnNlcnQ7Cj4gLcKgwqAKPiAtwqDCoAnCoMKgwqDCoMKgwqBpZiAoX3Js X2hvcml6b250YWxfc2Nyb2xsX21vZGUgJiYgKChvZS1vbGQpID4gKG5lLW5ldykpKQo+IC0hwqAJ CWdvdG8gY2xlYXJfcmVzdF9vZl9saW5lOwo+IC3CoMKgCcKgwqDCoMKgfQo+IC3CoMKgCX0KPiAt LS0tIDE4MjYsMTgzNiAtLS0tCj4gLcKgwqAJCV9ybF9sYXN0X2NfcG9zICs9IGJ5dGVzX3RvX2lu c2VydDsKPiAtwqDCoAo+IC0rwqAJwqDCoMKgwqDCoMKgLyogWFhYIC0gd2Ugb25seSB3YW50IHRv IGRvIHRoaXMgaWYgd2UgYXJlIGF0IHRoZSBlbmQgb2YgdGhlCj4gbGluZQo+IC0rwqAJCcKgc28g d2UgbW92ZSB0aGVyZSB3aXRoIF9ybF9tb3ZlX2N1cnNvcl9yZWxhdGl2ZSAqLwo+IC3CoMKgCcKg wqDCoMKgwqDCoGlmIChfcmxfaG9yaXpvbnRhbF9zY3JvbGxfbW9kZSAmJiAoKG9lLW9sZCkgPiAo bmUtbmV3KSkpCj4gLSHCoAkJewo+IC0hwqAJCcKgwqBfcmxfbW92ZV9jdXJzb3JfcmVsYXRpdmUg KG5lLW5ldywgbmV3KTsKPiAtIcKgCQnCoMKgZ290byBjbGVhcl9yZXN0X29mX2xpbmU7Cj4gLSHC oAkJfQo+IC3CoMKgCcKgwqDCoMKgfQo+IC3CoMKgCX0KPiAtKioqIC4uL2Jhc2gtNC4zL3BhdGNo bGV2ZWwuaAkyMDEyLTEyLTI5IDEwOjQ3OjU3LjAwMDAwMDAwMCAtMDUwMAo+IC0tLS0gcGF0Y2hs ZXZlbC5oCTIwMTQtMDMtMjAgMjA6MDE6MjguMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioq KioqKgo+IC0qKiogMjYsMzAgKioqKgo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhl IHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKgCj4g LSEgI2RlZmluZSBQQVRDSExFVkVMIDEyCj4gLcKgwqAKPiAtwqDCoCNlbmRpZiAvKiBfUEFUQ0hM RVZFTF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0tLQo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZp bmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3C oMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDEzCj4gLcKgwqAKPiAtwqDCoCNlbmRpZiAvKiBf UEFUQ0hMRVZFTF9IXyAqLwo+IGRpZmYgLS1naXQgYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0w MTQgYi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTQKPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCBmODM3MTk2Li4wMDAwMDAwCj4gLS0tIGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNo NDMtMDE0Cj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDEwMiArMCwwIEBACj4gLQkJCcKgwqDCoMKg wqBCQVNIIFBBVENIIFJFUE9SVAo+IC0JCQnCoMKgwqDCoMKgPT09PT09PT09PT09PT09PT0KPiAt Cj4gLUJhc2gtUmVsZWFzZToJNC4zCj4gLVBhdGNoLUlEOgliYXNoNDMtMDE0Cj4gLQo+IC1CdWct UmVwb3J0ZWQtYnk6CUdyZWcgV29vbGVkZ2UgPHdvb2xlZGcoYSllZWcuY2NmLm9yZz4KPiAtQnVn LVJlZmVyZW5jZS1JRDoJPDIwMTQwNDE4MjAyMTIzLkdCNzY2MChhKWVlZy5jY2Yub3JnPgo+IC1C dWctUmVmZXJlbmNlLVVSTDoJaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2hlbHAt YmFzaC8yMDE0LTA0Cj4gL21zZzAwMDA0Lmh0bWwKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAt Cj4gLVVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcywgJEAgaXMgZXhwYW5kZWQgaW5jb3JyZWN0 bHkgaW4gY29udGV4dHMgd2hlcmUKPiAtd29yZCBzcGxpdHRpbmcgaXMgbm90IHBlcmZvcm1lZC4K PiAtCj4gLVBhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiAtKioqIC4uL2Jhc2gtNC4z LXBhdGNoZWQvc3Vic3QuYwkyMDE0LTAxLTIzIDE2OjI2OjM3LjAwMDAwMDAwMCAtMDUwMAo+IC0t LS0gc3Vic3QuYwkyMDE0LTA0LTE5IDE1OjQxOjI2LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDMyNDksMzI1NCAqKioqCj4gLS0tLSAzMjQ5LDMyNTYgLS0tLQo+IC3C oMKgwqDCoMKgwqByZXR1cm4gKChjaGFyICopTlVMTCk7Cj4gLcKgwqAKPiAtK8KgwqDCoGV4cGFu ZF9ub19zcGxpdF9kb2xsYXJfc3RhciA9IDE7Cj4gLcKgwqDCoMKgdy0+ZmxhZ3MgfD0gV19OT1NQ TElUMjsKPiAtwqDCoMKgwqBsID0gY2FsbF9leHBhbmRfd29yZF9pbnRlcm5hbCAodywgMCwgMCwg KGludCAqKTAsIChpbnQgKikwKTsKPiAtK8KgwqDCoGV4cGFuZF9ub19zcGxpdF9kb2xsYXJfc3Rh ciA9IDA7Cj4gLcKgwqDCoMKgaWYgKGwpCj4gLcKgwqDCoMKgwqDCoHsKPiAtKioqKioqKioqKioq KioqCj4gLSoqKiA3ODQ4LDc4NTEgKioqKgo+IC0tLS0gNzg1MCw3ODU3IC0tLS0KPiAtwqDCoAnC oGFjY29yZGluZyB0byBQT1NJWC4yLCB0aGlzIGV4cGFuZHMgdG8gYSBsaXN0IG9mIHRoZSBwb3Np dGlvbmFsCj4gLcKgwqAJwqBwYXJhbWV0ZXJzIG5vIG1hdHRlciB3aGF0IElGUyBpcyBzZXQgdG8u ICovCj4gLSvCoMKgwqDCoMKgwqDCoC8qIFhYWCAtIHdoYXQgdG8gZG8gd2hlbiBpbiBhIGNvbnRl eHQgd2hlcmUgd29yZCBzcGxpdHRpbmcgaXMgbm90Cj4gLSvCoAnCoHBlcmZvcm1lZD8gRXZlbiB3 aGVuIElGUyBpcyBub3QgdGhlIGRlZmF1bHQsIHBvc2l4IHNlZW1zIHRvIGltcGx5Cj4gLSvCoAnC oHRoYXQgd2UgYmVoYXZlIGxpa2UgdW5xdW90ZWQgJCogP8KgwqBNYXliZSB3ZSBzaG91bGQgdXNl IFBGX05PU1BMSVQyCj4gLSvCoAnCoGhlcmUuICovCj4gLcKgwqDCoMKgwqDCoMKgwqB0ZW1wID0g c3RyaW5nX2xpc3RfZG9sbGFyX2F0IChsaXN0LCAocGZsYWdzICYgUEZfQVNTSUdOUkhTKSA/Cj4g KHF1b3RlZHxRX0RPVUJMRV9RVU9URVMpIDogcXVvdGVkKTsKPiAtwqDCoAo+IC0qKioqKioqKioq KioqKioKPiAtKioqIDg4MTcsODgyMCAqKioqCj4gLS0tLSA4ODIzLDg4MjcgLS0tLQo+IC3CoMKg wqDCoMKgwqB7Cj4gLcKgwqDCoMKgwqDCoMKgwqBjaGFyICppZnNfY2hhcnM7Cj4gLSvCoMKgwqDC oMKgwqDCoGNoYXIgKnRzdHJpbmc7Cj4gLcKgwqAKPiAtwqDCoMKgwqDCoMKgwqDCoGlmc19jaGFy cyA9IChxdW90ZWRfZG9sbGFyX2F0IHx8IGhhc19kb2xsYXJfYXQpID8gaWZzX3ZhbHVlIDogKGNo YXIKPiAqKU5VTEw7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogODgzMSw4ODM0ICoqKioKPiAt LS0tIDg4MzgsODg2NSAtLS0tCj4gLcKgwqDCoMKgwqDCoMKgwqBpZiAoc3BsaXRfb25fc3BhY2Vz KQo+IC3CoMKgCWxpc3QgPSBsaXN0X3N0cmluZyAoaXN0cmluZywgIiAiLCAxKTsJLyogWFhYIHF1 b3RlZCA9PSAxPyAqLwo+IC0rwqDCoMKgwqDCoMKgwqAvKiBJZiB3ZSBoYXZlICRAIChoYXNfZG9s bGFyX2F0ICE9IDApIGFuZCB3ZSBhcmUgaW4gYSBjb250ZXh0IHdoZXJlCj4gd2UKPiAtK8KgCcKg ZG9uJ3Qgd2FudCB0byBzcGxpdCB0aGUgcmVzdWx0IChXX05PU1BMSVQyKSwgYW5kIHdlIGFyZSBu b3QKPiBxdW90ZWQsCj4gLSvCoAnCoHdlIGhhdmUgYWxyZWFkeSBzZXBhcmF0ZWQgdGhlIGFyZ3Vt ZW50cyB3aXRoIHRoZSBmaXJzdCBjaGFyYWN0ZXIKPiBvZgo+IC0rwqAJwqAkSUZTLsKgwqBJbiB0 aGlzIGNhc2UsIHdlIHdhbnQgdG8gcmV0dXJuIGEgbGlzdCB3aXRoIGEgc2luZ2xlIHdvcmQKPiAt K8KgCcKgd2l0aCB0aGUgc2VwYXJhdG9yIHBvc3NpYmx5IHJlcGxhY2VkIHdpdGggYSBzcGFjZSAo aXQncyB3aGF0IG90aGVyCj4gLSvCoAnCoHNoZWxscyBzZWVtIHRvIGRvKS4KPiAtK8KgCcKgcXVv dGVkX2RvbGxhcl9hdCBpcyBpbnRlcm5hbCB0byB0aGlzIGZ1bmN0aW9uIGFuZCBpcyBzZXQgaWYg d2UgYXJlCj4gLSvCoAnCoHBhc3NlZCBhbiBhcmd1bWVudCB0aGF0IGlzIHVucXVvdGVkIChxdW90 ZWQgPT0gMCkgYnV0IHdlIGVuY291bnRlcgo+IGEKPiAtK8KgCcKgZG91YmxlLXF1b3RlZCAkQCB3 aGlsZSBleHBhbmRpbmcgaXQuICovCj4gLSvCoMKgwqDCoMKgwqDCoGVsc2UgaWYgKGhhc19kb2xs YXJfYXQgJiYgcXVvdGVkX2RvbGxhcl9hdCA9PSAwICYmIGlmc19jaGFycyAmJgo+IHF1b3RlZCA9 PSAwICYmICh3b3JkLT5mbGFncyAmIFdfTk9TUExJVDIpKQo+IC0rwqAJewo+IC0rwqAJwqDCoC8q IE9ubHkgc3BsaXQgYW5kIHJlam9pbiBpZiB3ZSBoYXZlIHRvICovCj4gLSvCoAnCoMKgaWYgKCpp ZnNfY2hhcnMgJiYgKmlmc19jaGFycyAhPSAnICcpCj4gLSvCoAnCoMKgwqDCoHsKPiAtK8KgCcKg wqDCoMKgwqDCoGxpc3QgPSBsaXN0X3N0cmluZyAoaXN0cmluZywgKmlmc19jaGFycyA/IGlmc19j aGFycyA6ICIgIiwKPiAxKTsKPiAtK8KgCcKgwqDCoMKgwqDCoHRzdHJpbmcgPSBzdHJpbmdfbGlz dCAobGlzdCk7Cj4gLSvCoAnCoMKgwqDCoH0KPiAtK8KgCcKgwqBlbHNlCj4gLSvCoAnCoMKgwqDC oHRzdHJpbmcgPSBpc3RyaW5nOwo+IC0rwqAJwqDCoHR3b3JkID0gbWFrZV9iYXJlX3dvcmQgKHRz dHJpbmcpOwo+IC0rwqAJwqDCoGlmICh0c3RyaW5nICE9IGlzdHJpbmcpCj4gLSvCoAnCoMKgwqDC oGZyZWUgKHRzdHJpbmcpOwo+IC0rwqAJwqDCoGdvdG8gc2V0X3dvcmRfZmxhZ3M7Cj4gLSvCoAl9 Cj4gLcKgwqDCoMKgwqDCoMKgwqBlbHNlIGlmIChoYXNfZG9sbGFyX2F0ICYmIGlmc19jaGFycykK PiAtwqDCoAlsaXN0ID0gbGlzdF9zdHJpbmcgKGlzdHJpbmcsICppZnNfY2hhcnMgPyBpZnNfY2hh cnMgOiAiICIsIDEpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDg4MzYsODgzOSAqKioqCj4g LS0tLSA4ODY3LDg4NzEgLS0tLQo+IC3CoMKgCXsKPiAtwqDCoAnCoMKgdHdvcmQgPSBtYWtlX2Jh cmVfd29yZCAoaXN0cmluZyk7Cj4gLSsgc2V0X3dvcmRfZmxhZ3M6Cj4gLcKgwqAJwqDCoGlmICgo cXVvdGVkICYgKFFfRE9VQkxFX1FVT1RFU3xRX0hFUkVfRE9DVU1FTlQpKSB8fCAocXVvdGVkX3N0 YXRlCj4gPT0gV0hPTExZX1FVT1RFRCkpCj4gLcKgwqAJwqDCoMKgwqB0d29yZC0+ZmxhZ3MgfD0g V19RVU9URUQ7Cj4gLSoqKiAuLi9iYXNoLTQuMy9wYXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0 Nzo1Ny4wMDAwMDAwMDAgLTA1MDAKPiAtLS0tIHBhdGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAx OjI4LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2LDMwICoqKioK PiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBz Y2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAx Mwo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiAtLS0tIDI2LDMw IC0tLS0KPiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9y IHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hM RVZFTCAxNAo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiBkaWZm IC0tZ2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE1IGIvc3JjL3BhdGNoZXMvYmFzaC9i YXNoNDMtMDE1Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggOWM0ZTVlYS4uMDAw MDAwMAo+IC0tLSBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxNQo+ICsrKyAvZGV2L251bGwK PiBAQCAtMSw1OCArMCwwIEBACj4gLQkJCcKgwqDCoMKgwqBCQVNIIFBBVENIIFJFUE9SVAo+IC0J CQnCoMKgwqDCoMKgPT09PT09PT09PT09PT09PT0KPiAtCj4gLUJhc2gtUmVsZWFzZToJNC4zCj4g LVBhdGNoLUlEOgliYXNoNDMtMDE1Cj4gLQo+IC1CdWctUmVwb3J0ZWQtYnk6CUNsYXJrIFdhbmcg PGRlYXJ2b2lkKGEpZ21haWwuY29tPgo+IC1CdWctUmVmZXJlbmNlLUlEOgk8Q0FEdjgtb2cyVE9T b2FiWGVOVlhWR2FYTjN0RU1IbllWcTFyd09MZTVtZWFSUFNHUmlnCj4gQG1haWwuZ21haWwuY29t Pgo+IC1CdWctUmVmZXJlbmNlLVVSTDoJaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1s L2J1Zy1iYXNoLzIwMTQtMDQvCj4gbXNnMDAwOTUuaHRtbAo+IC0KPiAtQnVnLURlc2NyaXB0aW9u Ogo+IC0KPiAtV2hlbiBjb21wbGV0aW5nIGRpcmVjdG9yeSBuYW1lcywgdGhlIGRpcmVjdG9yeSBu YW1lIGlzIGRlcXVvdGVkIHR3aWNlLgo+IC1UaGlzIGNhdXNlcyBwcm9ibGVtcyBmb3IgZGlyZWN0 b3JpZXMgd2l0aCBzaW5nbGUgYW5kIGRvdWJsZSBxdW90ZXMgaW4KPiAtdGhlaXIgbmFtZXMuCj4g LQo+IC1QYXRjaCAoYXBwbHkgd2l0aCBgcGF0Y2ggLXAwJyk6Cj4gLSoqKiAuLi9iYXNoLTQuMy1w YXRjaGVkL2Jhc2hsaW5lLmMJMjAxNC0wMi0wOSAxOTo1Njo1OC4wMDAwMDAwMDAgLTA1MDAKPiAt LS0tIGJhc2hsaW5lLmMJMjAxNC0wNC0yNSAxNDo1Nzo1Mi4wMDAwMDAwMDAgLTA0MDAKPiAtKioq KioqKioqKioqKioqCj4gLSoqKiA0MTY4LDQxNzQgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgcWMg PSBybF9kaXNwYXRjaGluZyA/IHJsX2NvbXBsZXRpb25fcXVvdGVfY2hhcmFjdGVyIDogMDvCoMKg Cj4gLSHCoMKgwqBkZm4gPSBiYXNoX2RlcXVvdGVfZmlsZW5hbWUgKChjaGFyICopdGV4dCwgcWMp Owo+IC3CoMKgwqDCoG0xID0gcmxfY29tcGxldGlvbl9tYXRjaGVzIChkZm4sIHJsX2ZpbGVuYW1l X2NvbXBsZXRpb25fZnVuY3Rpb24pOwo+IC0hwqDCoMKgZnJlZSAoZGZuKTsKPiAtwqDCoAo+IC3C oMKgwqDCoGlmIChtMSA9PSAwIHx8IG0xWzBdID09IDApCj4gLS0tLSA0MjA5LDQyMjIgLS0tLQo+ IC3CoMKgCj4gLcKgwqDCoMKgcWMgPSBybF9kaXNwYXRjaGluZyA/IHJsX2NvbXBsZXRpb25fcXVv dGVfY2hhcmFjdGVyIDogMDvCoMKgCj4gLSHCoMKgwqAvKiBJZiBybF9jb21wbGV0aW9uX2ZvdW5k X3F1b3RlICE9IDAsIHJsX2NvbXBsZXRpb25fbWF0Y2hlcyB3aWxsIGNhbGwgdGhlCj4gLSHCoMKg wqDCoMKgwqBmaWxlbmFtZSBkZXF1b3RpbmcgZnVuY3Rpb24sIGNhdXNpbmcgdGhlIGRpcmVjdG9y eSBuYW1lIHRvIGJlIGRlcXVvdGVkCj4gLSHCoMKgwqDCoMKgwqB0d2ljZS4gKi8KPiAtIcKgwqDC oGlmIChybF9kaXNwYXRjaGluZyAmJiBybF9jb21wbGV0aW9uX2ZvdW5kX3F1b3RlID09IDApCj4g LSHCoMKgwqDCoMKgZGZuID0gYmFzaF9kZXF1b3RlX2ZpbGVuYW1lICgoY2hhciAqKXRleHQsIHFj KTsKPiAtIcKgwqDCoGVsc2UKPiAtIcKgwqDCoMKgwqBkZm4gPSAoY2hhciAqKXRleHQ7Cj4gLcKg wqDCoMKgbTEgPSBybF9jb21wbGV0aW9uX21hdGNoZXMgKGRmbiwgcmxfZmlsZW5hbWVfY29tcGxl dGlvbl9mdW5jdGlvbik7Cj4gLSHCoMKgwqBpZiAoZGZuICE9IHRleHQpCj4gLSHCoMKgwqDCoMKg ZnJlZSAoZGZuKTsKPiAtwqDCoAo+IC3CoMKgwqDCoGlmIChtMSA9PSAwIHx8IG0xWzBdID09IDAp Cj4gLSoqKiAuLi9iYXNoLTQuMy9wYXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1Ny4wMDAw MDAwMDAgLTA1MDAKPiAtLS0tIHBhdGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4LjAwMDAw MDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2LDMwICoqKioKPiAtwqDCoMKg wqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNp b24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAxNAo+IC3CoMKg Cj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiAtLS0tIDI2LDMwIC0tLS0KPiAt wqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2Nz IHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAxNQo+ IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiBkaWZmIC0tZ2l0IGEv c3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE2IGIvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDE2 Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggODgyZDU5My4uMDAwMDAwMAo+IC0t LSBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxNgo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSwx MzIgKzAsMCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJwqDCoMKg wqDCoD09PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1QYXRjaC1J RDoJYmFzaDQzLTAxNgo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglQaWVycmUgR2FzdG9uIDxwaWVy cmUuZ2FzdG9uKGEpZ21haWwuY29tPgo+IC1CdWctUmVmZXJlbmNlLUlEOgk8Q0FQU1gzc1RDRDYx azFWUUxKNXItTFd6RXQrZTdYYy1meFhtd24ydThFQTVnSkplajhRCj4gQG1haWwuZ21haWwuY29t Pgo+IC1CdWctUmVmZXJlbmNlLVVSTDoJaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1s L2J1Zy1iYXNoLzIwMTQtMDQvCj4gbXNnMDAxMDAuaHRtbAo+IC0KPiAtQnVnLURlc2NyaXB0aW9u Ogo+IC0KPiAtQW4gZXh0ZW5kZWQgZ2xvYiBwYXR0ZXJuIGNvbnRhaW5pbmcgYSBzbGFzaCAoYC8n KSBjYXVzZXMgdGhlIGdsb2JiaW5nIGNvZGUKPiAtdG8gbWlzaW50ZXJwcmV0IGl0IGFzIGEgZGly ZWN0b3J5IHNlcGFyYXRvci4KPiAtCj4gLVBhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToK PiAtKioqIC4uL2Jhc2gtNC4zLXBhdGNoZWQvbGliL2dsb2IvZ2xvYi5jCTIwMTQtMDMtMjggMTA6 NTQ6MjMuMDAwMDAwMDAwCj4gLTA0MDAKPiAtLS0tIGxpYi9nbG9iL2dsb2IuYwkyMDE0LTA1LTAy IDEwOjI0OjI4LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDEyNCwx MjcgKioqKgo+IC0tLS0gMTI0LDEyOSAtLS0tCj4gLcKgwqBleHRlcm4gd2NoYXJfdCAqZ2xvYl9w YXRzY2FuX3djIF9fUCgod2NoYXJfdCAqLCB3Y2hhcl90ICosIGludCkpOwo+IC3CoMKgCj4gLSsg ZXh0ZXJuIGNoYXIgKmdsb2JfZGlyc2NhbiBfX1AoKGNoYXIgKiwgaW50KSk7Cj4gLSvCoAo+IC3C oMKgLyogQ29tcGlsZSBgZ2xvYl9sb29wLmMnIGZvciBzaW5nbGUtYnl0ZSBjaGFyYWN0ZXJzLiAq Lwo+IC3CoMKgI2RlZmluZSBDSEFSCXVuc2lnbmVkIGNoYXIKPiAtKioqKioqKioqKioqKioqCj4g LSoqKiAxODgsMTkxICoqKioKPiAtLS0tIDE5MCwxOTYgLS0tLQo+IC3CoMKgwqDCoHBlID0gZ2xv Yl9wYXRzY2FuIChwcCwgc2UsIDApOwkvKiBlbmQgb2YgZXh0Z2xvYiBwYXR0ZXJuICgoICovCj4g LcKgwqDCoMKgLyogd2Ugc2hvdWxkIGNoZWNrIGZvciBpbnZhbGlkIGV4dGdsb2IgcGF0dGVybiBo ZXJlICovCj4gLSvCoMKgwqBpZiAocGUgPT0gMCkKPiAtK8KgwqDCoMKgwqByZXR1cm4gMDsKPiAt K8KgCj4gLcKgwqDCoMKgLyogaWYgcGUgIT0gc2Ugd2UgaGF2ZSBtb3JlIG9mIHRoZSBwYXR0ZXJu IGF0IHRoZSBlbmQgb2YgdGhlIGV4dGdsb2IKPiAtwqDCoMKgwqDCoMKgwqBwYXR0ZXJuLiBDaGVj ayB0aGUgZWFzeSBjYXNlIGZpcnN0ICggKi8KPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAxMDE2 LDEwMjAgKioqKgo+IC3CoMKgwqDCoGNoYXIgKipyZXN1bHQ7Cj4gLcKgwqDCoMKgdW5zaWduZWQg aW50IHJlc3VsdF9zaXplOwo+IC0hwqDCoMKgY2hhciAqZGlyZWN0b3J5X25hbWUsICpmaWxlbmFt ZSwgKmRuYW1lOwo+IC3CoMKgwqDCoHVuc2lnbmVkIGludCBkaXJlY3RvcnlfbGVuOwo+IC3CoMKg wqDCoGludCBmcmVlX2Rpcm5hbWU7CQkJLyogZmxhZyAqLwo+IC0tLS0gMTAyMSwxMDI1IC0tLS0K PiAtwqDCoMKgwqBjaGFyICoqcmVzdWx0Owo+IC3CoMKgwqDCoHVuc2lnbmVkIGludCByZXN1bHRf c2l6ZTsKPiAtIcKgwqDCoGNoYXIgKmRpcmVjdG9yeV9uYW1lLCAqZmlsZW5hbWUsICpkbmFtZSwg KmZuOwo+IC3CoMKgwqDCoHVuc2lnbmVkIGludCBkaXJlY3RvcnlfbGVuOwo+IC3CoMKgwqDCoGlu dCBmcmVlX2Rpcm5hbWU7CQkJLyogZmxhZyAqLwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDEw MzIsMTAzNSAqKioqCj4gLS0tLSAxMDM3LDEwNTIgLS0tLQo+IC3CoMKgwqDCoC8qIEZpbmQgdGhl IGZpbGVuYW1lLsKgwqAqLwo+IC3CoMKgwqDCoGZpbGVuYW1lID0gc3RycmNociAocGF0aG5hbWUs ICcvJyk7Cj4gLSsgI2lmIGRlZmluZWQgKEVYVEVOREVEX0dMT0IpCj4gLSvCoMKgwqBpZiAoZmls ZW5hbWUgJiYgZXh0ZW5kZWRfZ2xvYikKPiAtK8KgwqDCoMKgwqB7Cj4gLSvCoMKgwqDCoMKgwqDC oGZuID0gZ2xvYl9kaXJzY2FuIChwYXRobmFtZSwgJy8nKTsKPiAtKyAjaWYgREVCVUdfTUFUQ0hJ TkcKPiAtK8KgwqDCoMKgwqDCoMKgaWYgKGZuICE9IGZpbGVuYW1lKQo+IC0rwqAJZnByaW50ZiAo c3RkZXJyLCAiZ2xvYl9maWxlbmFtZTogZ2xvYl9kaXJzY2FuOiBmbiAoJXMpICE9IGZpbGVuYW1l Cj4gKCVzKVxuIiwgZm4gPyBmbiA6ICIobnVsbCkiLCBmaWxlbmFtZSk7Cj4gLSsgI2VuZGlmCj4g LSvCoMKgwqDCoMKgwqDCoGZpbGVuYW1lID0gZm47Cj4gLSvCoMKgwqDCoMKgfQo+IC0rICNlbmRp Zgo+IC0rwqAKPiAtwqDCoMKgwqBpZiAoZmlsZW5hbWUgPT0gTlVMTCkKPiAtwqDCoMKgwqDCoMKg ewo+IC0qKiogLi4vYmFzaC00LjMtcGF0Y2hlZC9saWIvZ2xvYi9nbWlzYy5jCTIwMTQtMDMtMjgg MTA6NTQ6MjMuMDAwMDAwMDAwCj4gLTA0MDAKPiAtLS0tIGxpYi9nbG9iL2dtaXNjLmMJMjAxNC0w NS0wMiAwOTozNTo1Ny4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA0 Myw0NiAqKioqCj4gLS0tLSA0Myw0OCAtLS0tCj4gLcKgwqAjZGVmaW5lIFdSUEFSRU7CoMKgwqDC oMKgwqDCoMKgwqBMJyknCj4gLcKgwqAKPiAtKyBleHRlcm4gY2hhciAqZ2xvYl9wYXRzY2FuIF9f UCgoY2hhciAqLCBjaGFyICosIGludCkpOwo+IC0rwqAKPiAtwqDCoC8qIFJldHVybiAxIG9mIHRo ZSBmaXJzdCBjaGFyYWN0ZXIgb2YgV1NUUklORyBjb3VsZCBtYXRjaCB0aGUgZmlyc3QKPiAtwqDC oMKgwqDCoGNoYXJhY3RlciBvZiBwYXR0ZXJuIFdQQVQuwqDCoFdpZGUgY2hhcmFjdGVyIHZlcnNp b24uICovCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMzc2LDM3NyAqKioqCj4gLS0tLSAzNzgs NDEwIC0tLS0KPiAtwqDCoMKgwqByZXR1cm4gbWF0bGVuOwo+IC3CoMKgfQo+IC0rwqAKPiAtKyAv KiBTa2lwIGNoYXJhY3RlcnMgaW4gUEFUIGFuZCByZXR1cm4gdGhlIGZpbmFsIG9jY3VycmVuY2Ug b2YgRElSU0VQLsKgwqBUaGlzCj4gLSvCoMKgwqDCoGlzIG9ubHkgY2FsbGVkIHdoZW4gZXh0ZW5k ZWRfZ2xvYiBpcyBzZXQsIHNvIHdlIGhhdmUgdG8gc2tpcCBvdmVyCj4gZXh0Z2xvYgo+IC0rwqDC oMKgwqBwYXR0ZXJucyB4KC4uLikgKi8KPiAtKyBjaGFyICoKPiAtKyBnbG9iX2RpcnNjYW4gKHBh dCwgZGlyc2VwKQo+IC0rwqDCoMKgwqDCoMKgY2hhciAqcGF0Owo+IC0rwqDCoMKgwqDCoMKgaW50 IGRpcnNlcDsKPiAtKyB7Cj4gLSvCoMKgwqBjaGFyICpwLCAqZCwgKnBlLCAqc2U7Cj4gLSvCoAo+ IC0rwqDCoMKgZCA9IHBlID0gc2UgPSAwOwo+IC0rwqDCoMKgZm9yIChwID0gcGF0OyBwICYmICpw OyBwKyspCj4gLSvCoMKgwqDCoMKgewo+IC0rwqDCoMKgwqDCoMKgwqBpZiAoZXh0Z2xvYl9wYXR0 ZXJuX3AgKHApKQo+IC0rwqAJewo+IC0rwqAJwqDCoGlmIChzZSA9PSAwKQo+IC0rwqAJwqDCoMKg wqBzZSA9IHAgKyBzdHJsZW4gKHApIC0gMTsKPiAtK8KgCcKgwqBwZSA9IGdsb2JfcGF0c2NhbiAo cCArIDIsIHNlLCAwKTsKPiAtK8KgCcKgwqBpZiAocGUgPT0gMCkKPiAtK8KgCcKgwqDCoMKgY29u dGludWU7Cj4gLSvCoAnCoMKgZWxzZSBpZiAoKnBlID09IDApCj4gLSvCoAnCoMKgwqDCoGJyZWFr Owo+IC0rwqAJwqDCoHAgPSBwZSAtIDE7CS8qIHdpbGwgZG8gaW5jcmVtZW50IGFib3ZlICovCj4g LSvCoAnCoMKgY29udGludWU7Cj4gLSvCoAl9Cj4gLSvCoMKgwqDCoMKgwqDCoGlmICgqcCA9PcKg wqBkaXJzZXApCj4gLSvCoAlkID0gcDsKPiAtK8KgwqDCoMKgwqB9Cj4gLSvCoMKgwqByZXR1cm4g ZDsKPiAtKyB9Cj4gLQo+IC0qKiogLi4vYmFzaC00LjMvcGF0Y2hsZXZlbC5oCTIwMTItMTItMjkg MTA6NDc6NTcuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBwYXRjaGxldmVsLmgJMjAxNC0wMy0yMCAy MDowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNiwzMCAq KioqCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0 aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVW RUwgMTUKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gLS0tLSAy NiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwg KGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBB VENITEVWRUwgMTYKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4g ZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxNyBiL3NyYy9wYXRjaGVzL2Jh c2gvYmFzaDQzLTAxNwo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDQwMTZmYjku LjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTcKPiArKysgL2Rldi9u dWxsCj4gQEAgLTEsNTEgKzAsMCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQK PiAtCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQu Mwo+IC1QYXRjaC1JRDoJYmFzaDQzLTAxNwo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglEYW4gRG91 Z2xhcyA8b3JtYWFqKGEpZ21haWwuY29tPgo+IC1CdWctUmVmZXJlbmNlLUlEOgk8Nzc4MTc0Ni5S aGZvVFJPTHhGKGEpc21vcmdib3g+Cj4gLUJ1Zy1SZWZlcmVuY2UtVVJMOglodHRwOi8vbGlzdHMu Z251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWJhc2gvMjAxNC0wNS8KPiBtc2cwMDAyNi5odG1sCj4g LQo+IC1CdWctRGVzY3JpcHRpb246Cj4gLQo+IC1UaGUgY29kZSB0aGF0IGNyZWF0ZXMgbG9jYWwg dmFyaWFibGVzIHNob3VsZCBub3QgY2xlYXIgdGhlIGBpbnZpc2libGUnCj4gLWF0dHJpYnV0ZSB3 aGVuIHJldHVybmluZyBhbiBleGlzdGluZyBsb2NhbCB2YXJpYWJsZS7CoMKgTGV0IHRoZSBjb2Rl IHRoYXQKPiAtYWN0dWFsbHkgYXNzaWducyBhIHZhbHVlIGNsZWFyIGl0Lgo+IC0KPiAtUGF0Y2gg KGFwcGx5IHdpdGggYHBhdGNoIC1wMCcpOgo+IC0qKiogLi4vYmFzaC00LjMtcGF0Y2hlZC92YXJp YWJsZXMuYwkyMDE0LTAyLTE0IDExOjU1OjEyLjAwMDAwMDAwMAo+IC0wNTAwCj4gLS0tLSB2YXJp YWJsZXMuYwkyMDE0LTA1LTA3IDEwOjUzOjU3LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioq KioqKioKPiAtKioqIDIxOTgsMjIwNSAqKioqCj4gLcKgwqDCoMKgb2xkX3ZhciA9IGZpbmRfdmFy aWFibGUgKG5hbWUpOwo+IC3CoMKgwqDCoGlmIChvbGRfdmFyICYmIGxvY2FsX3AgKG9sZF92YXIp ICYmIG9sZF92YXItPmNvbnRleHQgPT0gdmFyaWFibGVfY29udGV4dCkKPiAtIcKgwqDCoMKgwqB7 Cj4gLSHCoMKgwqDCoMKgwqDCoFZVTlNFVEFUVFIgKG9sZF92YXIsIGF0dF9pbnZpc2libGUpOwkv KiBYWFggKi8KPiAtIcKgwqDCoMKgwqDCoMKgcmV0dXJuIChvbGRfdmFyKTsKPiAtIcKgwqDCoMKg wqB9Cj4gLcKgwqAKPiAtwqDCoMKgwqB3YXNfdG1wdmFyID0gb2xkX3ZhciAmJiB0ZW1wdmFyX3Ag KG9sZF92YXIpOwo+IC0tLS0gMjI2MCwyMjY0IC0tLS0KPiAtwqDCoMKgwqBvbGRfdmFyID0gZmlu ZF92YXJpYWJsZSAobmFtZSk7Cj4gLcKgwqDCoMKgaWYgKG9sZF92YXIgJiYgbG9jYWxfcCAob2xk X3ZhcikgJiYgb2xkX3Zhci0+Y29udGV4dCA9PSB2YXJpYWJsZV9jb250ZXh0KQo+IC0hwqDCoMKg wqDCoHJldHVybiAob2xkX3Zhcik7Cj4gLcKgwqAKPiAtwqDCoMKgwqB3YXNfdG1wdmFyID0gb2xk X3ZhciAmJiB0ZW1wdmFyX3AgKG9sZF92YXIpOwo+IC0KPiAtKioqIC4uL2Jhc2gtNC4zL3BhdGNo bGV2ZWwuaAkyMDEyLTEyLTI5IDEwOjQ3OjU3LjAwMDAwMDAwMCAtMDUwMAo+IC0tLS0gcGF0Y2hs ZXZlbC5oCTIwMTQtMDMtMjAgMjA6MDE6MjguMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioq KioqKgo+IC0qKiogMjYsMzAgKioqKgo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhl IHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKgCj4g LSEgI2RlZmluZSBQQVRDSExFVkVMIDE2Cj4gLcKgwqAKPiAtwqDCoCNlbmRpZiAvKiBfUEFUQ0hM RVZFTF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0tLQo+IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZp bmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3C oMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDE3Cj4gLcKgwqAKPiAtwqDCoCNlbmRpZiAvKiBf UEFUQ0hMRVZFTF9IXyAqLwo+IGRpZmYgLS1naXQgYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0w MTggYi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTgKPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCAzOTQ5OWY2Li4wMDAwMDAwCj4gLS0tIGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNo NDMtMDE4Cj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDQ0ICswLDAgQEAKPiAtCQkJwqDCoMKgwqDC oEJBU0ggUEFUQ0ggUkVQT1JUCj4gLQkJCcKgwqDCoMKgwqA9PT09PT09PT09PT09PT09PQo+IC0K PiAtQmFzaC1SZWxlYXNlOgk0LjMKPiAtUGF0Y2gtSUQ6CWJhc2g0My0wMTgKPiAtCj4gLUJ1Zy1S ZXBvcnRlZC1ieToJR2VpciBIYXVnZSA8Z2Vpci5oYXVnZShhKWdtYWlsLmNvbT4KPiAtQnVnLVJl ZmVyZW5jZS1JRDoJPENBTy1CaVRMT3ZmUFhEeXBnNjFqY0JhdXNBRHJ4VUtKZWpha1YyV1RXUDI2 Y1cwPXJnQQo+IEBtYWlsLmdtYWlsLmNvbT4KPiAtQnVnLVJlZmVyZW5jZS1VUkw6CWh0dHA6Ly9s aXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctYmFzaC8yMDE0LTA1Lwo+IG1zZzAwMDQwLmh0 bWwKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAtCj4gLVdoZW4gYXNzaWduaW5nIGFuIGFycmF5 IHZhcmlhYmxlIHVzaW5nIHRoZSBjb21wb3VuZCBhc3NpZ25tZW50IHN5bnRheCwKPiAtYnV0IHVz aW5nIGBkZWNsYXJlJyB3aXRoIHRoZSByaHMgb2YgdGhlIGNvbXBvdW5kIGFzc2lnbm1lbnQgcXVv dGVkLCB0aGUKPiAtc2hlbGwgZGlkIG5vdCBtYXJrIHRoZSB2YXJpYWJsZSBhcyB2aXNpYmxlIGFm dGVyIHN1Y2Nlc3NmdWxseSBwZXJmb3JtaW5nCj4gLXRoZSBhc3NpZ25tZW50Lgo+IC0KPiAtUGF0 Y2ggKGFwcGx5IHdpdGggYHBhdGNoIC1wMCcpOgo+IC0qKiogLi4vYmFzaC00LjMtcGF0Y2hlZC9h cnJheWZ1bmMuYwkyMDE0LTAzLTI4IDEwOjU0OjIxLjAwMDAwMDAwMAo+IC0wNDAwCj4gLS0tLSBh cnJheWZ1bmMuYwkyMDE0LTA1LTEyIDExOjE5OjAwLjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDE4MCwxODMgKioqKgo+IC0tLS0gMTgwLDE4NCAtLS0tCj4gLcKgwqDC oMKgRlJFRSAobmV3dmFsKTsKPiAtwqDCoAo+IC0rwqDCoMKgVlVOU0VUQVRUUiAoZW50cnksIGF0 dF9pbnZpc2libGUpOwkvKiBubyBsb25nZXIgaW52aXNpYmxlICovCj4gLcKgwqDCoMKgcmV0dXJu IChlbnRyeSk7Cj4gLcKgwqB9Cj4gLQo+IC0qKiogLi4vYmFzaC00LjMvcGF0Y2hsZXZlbC5oCTIw MTItMTItMjkgMTA6NDc6NTcuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBwYXRjaGxldmVsLmgJMjAx NC0wMy0yMCAyMDowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoq KiAyNiwzMCAqKioqCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2 ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5l IFBBVENITEVWRUwgMTcKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICov Cj4gLS0tLSAyNiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0 Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAj ZGVmaW5lIFBBVENITEVWRUwgMTgKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVM X0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAxOSBiL3NyYy9w YXRjaGVzL2Jhc2gvYmFzaDQzLTAxOQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4 IGE5MzcxNGIuLjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMTkKPiAr KysgL2Rldi9udWxsCj4gQEAgLTEsODQgKzAsMCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRD SCBSRVBPUlQKPiAtCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJl bGVhc2U6CTQuMwo+IC1QYXRjaC1JRDoJYmFzaDQzLTAxOQo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5 OglKb2huIExlbnRvbgo+IC1CdWctUmVmZXJlbmNlLUlEOgo+IC1CdWctUmVmZXJlbmNlLVVSTDoJ aHR0cHM6Ly9idWdzLmxhdW5jaHBhZC5uZXQvdWJ1bnR1Lytzb3VyY2UvYmFzaC8rYnVnCj4gLzEz MTc0NzYKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAtCj4gLVRoZSAtdCB0aW1lb3V0IG9wdGlv biB0byBgcmVhZCcgZG9lcyBub3Qgd29yayB3aGVuIHRoZSAtZSBvcHRpb24gaXMgdXNlZC4KPiAt Cj4gLVBhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiAtCj4gLSoqKiAuLi9iYXNoLTQu My1wYXRjaGVkL2xpYi9yZWFkbGluZS9pbnB1dC5jCTIwMTQtMDEtMTAKPiAxNTowNzowOC4wMDAw MDAwMDAgLTA1MDAKPiAtLS0tIGxpYi9yZWFkbGluZS9pbnB1dC5jCTIwMTQtMDUtMjIgMTg6NDA6 NTkuMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogNTM1LDU0MCAqKioq Cj4gLS0tLSA1MzgsNTUxIC0tLS0KPiAtwqDCoMKgwqDCoMKgwqDCoGVsc2UgaWYgKF9ybF9jYXVn aHRfc2lnbmFsID09IFNJR0hVUCB8fCBfcmxfY2F1Z2h0X3NpZ25hbCA9PSBTSUdURVJNKQo+IC3C oMKgCXJldHVybiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfUkVBRENNRCkgPyBSRUFERVJSIDogRU9G KTsKPiAtK8KgwqDCoMKgwqDCoMKgLyoga2V5Ym9hcmQtZ2VuZXJhdGVkIHNpZ25hbHMgb2YgaW50 ZXJlc3QgKi8KPiAtwqDCoMKgwqDCoMKgwqDCoGVsc2UgaWYgKF9ybF9jYXVnaHRfc2lnbmFsID09 IFNJR0lOVCB8fCBfcmxfY2F1Z2h0X3NpZ25hbCA9PSBTSUdRVUlUKQo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoFJMX0NIRUNLX1NJR05BTFMgKCk7Cj4gLSvCoMKgwqDCoMKgwqDCoC8qIG5vbi1rZXli b2FyZC1nZW5lcmF0ZWQgc2lnbmFscyBvZiBpbnRlcmVzdCAqLwo+IC0rwqDCoMKgwqDCoMKgwqBl bHNlIGlmIChfcmxfY2F1Z2h0X3NpZ25hbCA9PSBTSUdBTFJNCj4gLSsgI2lmIGRlZmluZWQgKFNJ R1ZUQUxSTSkKPiAtK8KgCQl8fCBfcmxfY2F1Z2h0X3NpZ25hbCA9PSBTSUdWVEFMUk0KPiAtKyAj ZW5kaWYKPiAtK8KgCcKgwqDCoMKgwqDCoCkKPiAtK8KgwqDCoMKgwqDCoMKgwqDCoFJMX0NIRUNL X1NJR05BTFMgKCk7Cj4gLcKgwqAKPiAtwqDCoMKgwqDCoMKgwqDCoGlmIChybF9zaWduYWxfZXZl bnRfaG9vaykKPiAtKioqIC4uL2Jhc2gtNC4zLXBhdGNoZWQvYnVpbHRpbnMvcmVhZC5kZWYJMjAx My0wOS0wMgo+IDExOjU0OjAwLjAwMDAwMDAwMCAtMDQwMAo+IC0tLS0gYnVpbHRpbnMvcmVhZC5k ZWYJMjAxNC0wNS0wOCAxMTo0MzozNS4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioq Cj4gLSoqKiA0NDMsNDQ3ICoqKioKPiAtwqDCoCNpZiBkZWZpbmVkIChSRUFETElORSkKPiAtwqDC oMKgwqDCoMKgwqDCoGlmIChlZGl0KQo+IC0hwqAJYWRkX3Vud2luZF9wcm90ZWN0IChyZXNldF9h dHRlbXB0ZWRfY29tcGxldGlvbl9mdW5jdGlvbiwgKGNoYXIKPiAqKU5VTEwpOwo+IC3CoMKgI2Vu ZGlmCj4gLcKgwqDCoMKgwqDCoMKgwqBmYWxhcm0gKHRtc2VjLCB0bXVzZWMpOwo+IC0tLS0gNDQz LDQ1MCAtLS0tCj4gLcKgwqAjaWYgZGVmaW5lZCAoUkVBRExJTkUpCj4gLcKgwqDCoMKgwqDCoMKg wqBpZiAoZWRpdCkKPiAtIcKgCXsKPiAtIcKgCcKgwqBhZGRfdW53aW5kX3Byb3RlY3QgKHJlc2V0 X2F0dGVtcHRlZF9jb21wbGV0aW9uX2Z1bmN0aW9uLCAoY2hhcgo+ICopTlVMTCk7Cj4gLSHCoAnC oMKgYWRkX3Vud2luZF9wcm90ZWN0IChiYXNobGluZV9yZXNldF9ldmVudF9ob29rLCAoY2hhciAq KU5VTEwpOwo+IC0hwqAJfQo+IC3CoMKgI2VuZGlmCj4gLcKgwqDCoMKgwqDCoMKgwqBmYWxhcm0g KHRtc2VjLCB0bXVzZWMpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDEwMjIsMTAyNSAqKioq Cj4gLS0tLSAxMDI1LDEwMjkgLS0tLQo+IC3CoMKgwqDCoG9sZF9hdHRlbXB0ZWRfY29tcGxldGlv bl9mdW5jdGlvbiA9IHJsX2F0dGVtcHRlZF9jb21wbGV0aW9uX2Z1bmN0aW9uOwo+IC3CoMKgwqDC oHJsX2F0dGVtcHRlZF9jb21wbGV0aW9uX2Z1bmN0aW9uID0gKHJsX2NvbXBsZXRpb25fZnVuY190 ICopTlVMTDsKPiAtK8KgwqDCoGJhc2hsaW5lX3NldF9ldmVudF9ob29rICgpOwo+IC3CoMKgwqDC oGlmIChpdGV4dCkKPiAtwqDCoMKgwqDCoMKgewo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDEw MzMsMTAzNiAqKioqCj4gLS0tLSAxMDM3LDEwNDEgLS0tLQo+IC3CoMKgwqDCoHJsX2F0dGVtcHRl ZF9jb21wbGV0aW9uX2Z1bmN0aW9uID0gb2xkX2F0dGVtcHRlZF9jb21wbGV0aW9uX2Z1bmN0aW9u Owo+IC3CoMKgwqDCoG9sZF9hdHRlbXB0ZWRfY29tcGxldGlvbl9mdW5jdGlvbiA9IChybF9jb21w bGV0aW9uX2Z1bmNfdCAqKU5VTEw7Cj4gLSvCoMKgwqBiYXNobGluZV9yZXNldF9ldmVudF9ob29r ICgpOwo+IC3CoMKgCj4gLcKgwqDCoMKgaWYgKHJldCA9PSAwKQo+IC0qKiogLi4vYmFzaC00LjMv cGF0Y2hsZXZlbC5oCTIwMTItMTItMjkgMTA6NDc6NTcuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBw YXRjaGxldmVsLmgJMjAxNC0wMy0yMCAyMDowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioq KioqKioqKioqCj4gLSoqKiAyNiwzMCAqKioqCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmlu ZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKg wqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMTgKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9Q QVRDSExFVkVMX0hfICovCj4gLS0tLSAyNiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29rcyBmb3Ig dG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICov Cj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMTkKPiAtwqDCoAo+IC3CoMKgI2VuZGlm IC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFz aDQzLTAyMCBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAyMAo+IGRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDVmNTMzZWYuLjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNo L2Jhc2g0My0wMjAKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsMTEwICswLDAgQEAKPiAtCQkJwqDC oMKgwqDCoEJBU0ggUEFUQ0ggUkVQT1JUCj4gLQkJCcKgwqDCoMKgwqA9PT09PT09PT09PT09PT09 PQo+IC0KPiAtQmFzaC1SZWxlYXNlOgk0LjMKPiAtUGF0Y2gtSUQ6CWJhc2g0My0wMjAKPiAtCj4g LUJ1Zy1SZXBvcnRlZC1ieToJSmFyZWQgWWFub3ZpY2ggPHNsb3ZpY2hvbihhKWdtYWlsLmNvbT4K PiAtQnVnLVJlZmVyZW5jZS1JRDoJPDIwMTQwNDE3MDczNjU0LkdCMjY4NzUoYSluaWdodGRlcmFu Z2VyLnBzYy5lZHU+Cj4gLUJ1Zy1SZWZlcmVuY2UtVVJMOglodHRwOi8vbGlzdHMuZ251Lm9yZy9h cmNoaXZlL2h0bWwvYnVnLWJhc2gvMjAxNC0wNC8KPiBtc2cwMDA2NS5odG1sCj4gLQo+IC1CdWct RGVzY3JpcHRpb246Cj4gLQo+IC1XaGVuIFBTMiBjb250YWlucyBhIGNvbW1hbmQgc3Vic3RpdHV0 aW9uLCBoZXJlLWRvY3VtZW50cyBlbnRlcmVkIGluIGFuCj4gLWludGVyYWN0aXZlIHNoZWxsIGNh biBzb21ldGltZXMgY2F1c2UgYSBzZWdtZW50YXRpb24gZmF1bHQuCj4gLQo+IC1QYXRjaCAoYXBw bHkgd2l0aCBgcGF0Y2ggLXAwJyk6Cj4gLQo+IC0qKiogLi4vYmFzaC00LjMtcGF0Y2hlZC9zaGVs bC5oCTIwMTItMTItMjUgMjE6MTE6MDEuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBzaGVsbC5oCTIw MTQtMDYtMDMgMDk6MjQ6MjguMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0q KiogMTY5LDE3MyAqKioqCj4gLcKgwqDCoMKgaW50IGV4cGFuZF9hbGlhc2VzOwo+IC3CoMKgwqDC oGludCBlY2hvX2lucHV0X2F0X3JlYWQ7Cj4gLSHCoMKgwqAKPiAtwqDCoH0gc2hfcGFyc2VyX3N0 YXRlX3Q7Cj4gLcKgwqAKPiAtLS0tIDE2OSwxNzQgLS0tLQo+IC3CoMKgwqDCoGludCBleHBhbmRf YWxpYXNlczsKPiAtwqDCoMKgwqBpbnQgZWNob19pbnB1dF9hdF9yZWFkOwo+IC0hwqDCoMKgaW50 IG5lZWRfaGVyZV9kb2M7Cj4gLSHCoAo+IC3CoMKgfSBzaF9wYXJzZXJfc3RhdGVfdDsKPiAtwqDC oAo+IC0qKiogLi4vYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55CTIwMTQtMDUtMTQgMDk6MTY6NDAu MDAwMDAwMDAwIC0wNDAwCj4gLS0tLSBwYXJzZS55CTIwMTQtMDQtMzAgMDk6Mjc6NTkuMDAwMDAw MDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjY0MywyNjQ3ICoqKioKPiAtwqDC oAo+IC3CoMKgwqDCoHIgPSAwOwo+IC0hwqDCoMKgd2hpbGUgKG5lZWRfaGVyZV9kb2MpCj4gLcKg wqDCoMKgwqDCoHsKPiAtwqDCoMKgwqDCoMKgwqDCoHBhcnNlcl9zdGF0ZSB8PSBQU1RfSEVSRURP QzsKPiAtLS0tIDI2NDMsMjY0NyAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqByID0gMDsKPiAtIcKg wqDCoHdoaWxlIChuZWVkX2hlcmVfZG9jID4gMCkKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgwqDC oMKgwqDCoMKgcGFyc2VyX3N0YXRlIHw9IFBTVF9IRVJFRE9DOwo+IC0qKioqKioqKioqKioqKioK PiAtKioqIDYwNzYsNjA3OSAqKioqCj4gLS0tLSA2MDc2LDYwODAgLS0tLQo+IC3CoMKgwqDCoHBz LT5leHBhbmRfYWxpYXNlcyA9IGV4cGFuZF9hbGlhc2VzOwo+IC3CoMKgwqDCoHBzLT5lY2hvX2lu cHV0X2F0X3JlYWQgPSBlY2hvX2lucHV0X2F0X3JlYWQ7Cj4gLSvCoMKgwqBwcy0+bmVlZF9oZXJl X2RvYyA9IG5lZWRfaGVyZV9kb2M7Cj4gLcKgwqAKPiAtwqDCoMKgwqBwcy0+dG9rZW4gPSB0b2tl bjsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA2MTI0LDYxMjcgKioqKgo+IC0tLS0gNjEyNSw2 MTI5IC0tLS0KPiAtwqDCoMKgwqBleHBhbmRfYWxpYXNlcyA9IHBzLT5leHBhbmRfYWxpYXNlczsK PiAtwqDCoMKgwqBlY2hvX2lucHV0X2F0X3JlYWQgPSBwcy0+ZWNob19pbnB1dF9hdF9yZWFkOwo+ IC0rwqDCoMKgbmVlZF9oZXJlX2RvYyA9IHBzLT5uZWVkX2hlcmVfZG9jOwo+IC3CoMKgCj4gLcKg wqDCoMKgRlJFRSAodG9rZW4pOwo+IC0qKiogLi4vYmFzaC00LjMtcGF0Y2hlZC95LnRhYi5jCTIw MTQtMDQtMDcgMTE6NTY6MTIuMDAwMDAwMDAwIC0wNDAwCj4gLS0tLSB5LnRhYi5jCTIwMTQtMDct MzAgMDk6NTU6NTcuMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogNDk1 NSw0OTU5ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoHIgPSAwOwo+IC0hwqDCoMKgd2hpbGUgKG5l ZWRfaGVyZV9kb2MpCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoMKgwqDCoMKgwqDCoHBhcnNlcl9z dGF0ZSB8PSBQU1RfSEVSRURPQzsKPiAtLS0tIDUxNTEsNTE1NSAtLS0tCj4gLcKgwqAKPiAtwqDC oMKgwqByID0gMDsKPiAtIcKgwqDCoHdoaWxlIChuZWVkX2hlcmVfZG9jID4gMCkKPiAtwqDCoMKg wqDCoMKgewo+IC3CoMKgwqDCoMKgwqDCoMKgcGFyc2VyX3N0YXRlIHw9IFBTVF9IRVJFRE9DOwo+ IC0qKioqKioqKioqKioqKioKPiAtKioqIDgzODgsODM5MSAqKioqCj4gLS0tLSA4NTg0LDg1ODgg LS0tLQo+IC3CoMKgwqDCoHBzLT5leHBhbmRfYWxpYXNlcyA9IGV4cGFuZF9hbGlhc2VzOwo+IC3C oMKgwqDCoHBzLT5lY2hvX2lucHV0X2F0X3JlYWQgPSBlY2hvX2lucHV0X2F0X3JlYWQ7Cj4gLSvC oMKgwqBwcy0+bmVlZF9oZXJlX2RvYyA9IG5lZWRfaGVyZV9kb2M7Cj4gLcKgwqAKPiAtwqDCoMKg wqBwcy0+dG9rZW4gPSB0b2tlbjsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA4NDM2LDg0Mzkg KioqKgo+IC0tLS0gODYzMyw4NjM3IC0tLS0KPiAtwqDCoMKgwqBleHBhbmRfYWxpYXNlcyA9IHBz LT5leHBhbmRfYWxpYXNlczsKPiAtwqDCoMKgwqBlY2hvX2lucHV0X2F0X3JlYWQgPSBwcy0+ZWNo b19pbnB1dF9hdF9yZWFkOwo+IC0rwqDCoMKgbmVlZF9oZXJlX2RvYyA9IHBzLT5uZWVkX2hlcmVf ZG9jOwo+IC3CoMKgCj4gLcKgwqDCoMKgRlJFRSAodG9rZW4pOwo+IC0qKiogLi4vYmFzaC00LjMv cGF0Y2hsZXZlbC5oCTIwMTItMTItMjkgMTA6NDc6NTcuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBw YXRjaGxldmVsLmgJMjAxNC0wMy0yMCAyMDowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioq KioqKioqKioqCj4gLSoqKiAyNiwzMCAqKioqCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmlu ZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKg wqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMTkKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9Q QVRDSExFVkVMX0hfICovCj4gLS0tLSAyNiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29rcyBmb3Ig dG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICov Cj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMjAKPiAtwqDCoAo+IC3CoMKgI2VuZGlm IC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFz aDQzLTAyMSBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAyMQo+IGRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IGZkMWM5NDUuLjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNo L2Jhc2g0My0wMjEKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsNTIgKzAsMCBAQAo+IC0JCQnCoMKg wqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09 Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1QYXRjaC1JRDoJYmFzaDQzLTAyMQo+IC0KPiAt QnVnLVJlcG9ydGVkLWJ5OglKYXJlZCBZYW5vdmljaCA8c2xvdmljaG9uKGEpZ21haWwuY29tPgo+ IC1CdWctUmVmZXJlbmNlLUlEOgk8MjAxNDA2MjUyMjUwMTkuR0oxNzA0NChhKW5pZ2h0ZGVyYW5n ZXIucHNjLmVkdT4KPiAtQnVnLVJlZmVyZW5jZS1VUkw6CWh0dHA6Ly9saXN0cy5nbnUub3JnL2Fy Y2hpdmUvaHRtbC9idWctYmFzaC8yMDE0LTA2Lwo+IG1zZzAwMDcwLmh0bWwKPiAtCj4gLUJ1Zy1E ZXNjcmlwdGlvbjoKPiAtCj4gLVdoZW4gdGhlIHJlYWRsaW5lIGByZXZlcnQtYWxsLWF0LW5ld2xp bmUnIG9wdGlvbiBpcyBzZXQsIHByZXNzaW5nIG5ld2xpbmUKPiAtd2hlbiB0aGUgY3VycmVudCBs aW5lIGlzIG9uZSByZXRyaWV2ZWQgZnJvbSBoaXN0b3J5IHJlc3VsdHMgaW4gYSBkb3VibGUgZnJl ZQo+IC1hbmQgYSBzZWdtZW50YXRpb24gZmF1bHQuCj4gLQo+IC1QYXRjaCAoYXBwbHkgd2l0aCBg cGF0Y2ggLXAwJyk6Cj4gLQo+IC0qKiogLi4vYmFzaC00LjMtcGF0Y2hlZC9saWIvcmVhZGxpbmUv bWlzYy5jCTIwMTItMDktMDEKPiAxODowMzoxMS4wMDAwMDAwMDAgLTA0MDAKPiAtLS0tIGxpYi9y ZWFkbGluZS9taXNjLmMJMjAxNC0wNi0zMCAxMzo0MToxOS4wMDAwMDAwMDAgLTA0MDAKPiAtKioq KioqKioqKioqKioqCj4gLSoqKiA0NjIsNDY1ICoqKioKPiAtLS0tIDQ2Miw0NjYgLS0tLQo+IC3C oMKgCcKgwqAvKiBTZXQgdXAgcmxfbGluZV9idWZmZXIgYW5kIG90aGVyIHZhcmlhYmxlcyBmcm9t IGhpc3RvcnkgZW50cnkKPiAqLwo+IC3CoMKgCcKgwqBybF9yZXBsYWNlX2Zyb21faGlzdG9yeSAo ZW50cnksIDApOwkvKiBlbnRyeS0+bGluZSBpcyBub3cKPiBjdXJyZW50ICovCj4gLSvCoAnCoMKg ZW50cnktPmRhdGEgPSAwOwkJCS8qIGVudHJ5LT5kYXRhIGlzIG5vdwo+IGN1cnJlbnQgdW5kbyBs aXN0ICovCj4gLcKgwqAJwqDCoC8qIFVuZG8gYWxsIGNoYW5nZXMgdG8gdGhpcyBoaXN0b3J5IGVu dHJ5ICovCj4gLcKgwqAJwqDCoHdoaWxlIChybF91bmRvX2xpc3QpCj4gLSoqKioqKioqKioqKioq Kgo+IC0qKiogNDY5LDQ3MyAqKioqCj4gLcKgwqAJwqDCoEZSRUUgKGVudHJ5LT5saW5lKTsKPiAt wqDCoAnCoMKgZW50cnktPmxpbmUgPSBzYXZlc3RyaW5nIChybF9saW5lX2J1ZmZlcik7Cj4gLS3C oAnCoMKgZW50cnktPmRhdGEgPSAwOwo+IC3CoMKgCX0KPiAtwqDCoMKgwqDCoMKgwqDCoGVudHJ5 ID0gcHJldmlvdXNfaGlzdG9yeSAoKTsKPiAtLS0tIDQ3MCw0NzMgLS0tLQo+IC0KPiAtKioqIC4u L2Jhc2gtNC4zL3BhdGNobGV2ZWwuaAkyMDEyLTEyLTI5IDEwOjQ3OjU3LjAwMDAwMDAwMCAtMDUw MAo+IC0tLS0gcGF0Y2hsZXZlbC5oCTIwMTQtMDMtMjAgMjA6MDE6MjguMDAwMDAwMDAwIC0wNDAw Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjYsMzAgKioqKgo+IC3CoMKgwqDCoMKgbG9va3Mg Zm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcp LiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDIwCj4gLcKgwqAKPiAtwqDCoCNl bmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0tLQo+IC3CoMKgwqDCoMKg bG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBz dHJpbmcpLiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDIxCj4gLcKgwqAKPiAt wqDCoCNlbmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IGRpZmYgLS1naXQgYS9zcmMvcGF0Y2hl cy9iYXNoL2Jhc2g0My0wMjIgYi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMjIKPiBkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCA3Y2UzOWVjLi4wMDAwMDAwCj4gLS0tIGEvc3JjL3Bh dGNoZXMvYmFzaC9iYXNoNDMtMDIyCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDU2ICswLDAgQEAK PiAtCQkJwqDCoMKgwqDCoEJBU0ggUEFUQ0ggUkVQT1JUCj4gLQkJCcKgwqDCoMKgwqA9PT09PT09 PT09PT09PT09PQo+IC0KPiAtQmFzaC1SZWxlYXNlOgk0LjMKPiAtUGF0Y2gtSUQ6CWJhc2g0My0w MjIKPiAtCj4gLUJ1Zy1SZXBvcnRlZC1ieToJc2NvcnAuZGV2Lm51bGwoYSlnbWFpbC5jb20KPiAt QnVnLVJlZmVyZW5jZS1JRDoJPEUxV3hYdzgtMDAwN2lFLUJpKGEpcGNtMTQ+Cj4gLUJ1Zy1SZWZl cmVuY2UtVVJMOglodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWJhc2gvMjAx NC0wNi8KPiBtc2cwMDA2MS5odG1sCj4gLQo+IC1CdWctRGVzY3JpcHRpb246Cj4gLQo+IC1Vc2lu ZyBuZXN0ZWQgcGlwZWxpbmVzIHdpdGhpbiBsb29wcyB3aXRoIHRoZSBgbGFzdHBpcGUnIG9wdGlv biBzZXQgY2FuIHJlc3VsdAo+IC1pbiBhIHNlZ21lbnRhdGlvbiBmYXVsdC4KPiAtCj4gLVBhdGNo IChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiAtCj4gLSoqKiAuLi9iYXNoLTQuMy1wYXRjaGVk L2V4ZWN1dGVfY21kLmMJMjAxNC0wMS0zMSAxMDo1NDo1Mi4wMDAwMDAwMDAKPiAtMDUwMAo+IC0t LS0gZXhlY3V0ZV9jbWQuYwkyMDE0LTA2LTE5IDA4OjA1OjQ5LjAwMDAwMDAwMCAtMDQwMAo+IC0q KioqKioqKioqKioqKioKPiAtKioqIDI0MTAsMjQxNCAqKioqCj4gLcKgwqDCoMKgwqDCoMKgwqBs c3RkaW4gPSB3YWl0X2ZvciAobGFzdHBpZCk7Cj4gLcKgwqAjaWYgZGVmaW5lZCAoSk9CX0NPTlRS T0wpCj4gLSHCoMKgwqDCoMKgwqDCoGV4ZWNfcmVzdWx0ID0gam9iX2V4aXRfc3RhdHVzIChsYXN0 cGlwZV9qaWQpOwo+IC3CoMKgI2VuZGlmCj4gLcKgwqDCoMKgwqDCoMKgwqB1bmZyZWV6ZV9qb2Jz X2xpc3QgKCk7Cj4gLS0tLSAyNDI1LDI0MzggLS0tLQo+IC3CoMKgwqDCoMKgwqDCoMKgbHN0ZGlu ID0gd2FpdF9mb3IgKGxhc3RwaWQpOwo+IC3CoMKgI2lmIGRlZmluZWQgKEpPQl9DT05UUk9MKQo+ IC0hwqDCoMKgwqDCoMKgwqAvKiBJZiB3YWl0X2ZvciByZW1vdmVzIHRoZSBqb2IgZnJvbSB0aGUg am9icyB0YWJsZSwgdXNlIHJlc3VsdCBvZgo+IGxhc3QKPiAtIcKgCcKgY29tbWFuZCBhcyBwaXBl bGluZSdzIGV4aXQgc3RhdHVzIGFzIHVzdWFsLsKgwqBUaGUgam9icyBsaXN0IGNhbiBnZXQKPiAt IcKgCcKgZnJvemVuIGFuZCB1bmZyb3plbiBhdCBpbmNvbnZlbmllbnQgdGltZXMgaWYgdGhlcmUg YXJlIG11bHRpcGxlCj4gcGlwZWxpbmVzCj4gLSHCoAnCoHJ1bm5pbmcgc2ltdWx0YW5lb3VzbHku ICovCj4gLSHCoMKgwqDCoMKgwqDCoGlmIChJTlZBTElEX0pPQiAobGFzdHBpcGVfamlkKSA9PSAw KQo+IC0hwqAJZXhlY19yZXN1bHQgPSBqb2JfZXhpdF9zdGF0dXMgKGxhc3RwaXBlX2ppZCk7Cj4g LSHCoMKgwqDCoMKgwqDCoGVsc2UgaWYgKHBpcGVmYWlsX29wdCkKPiAtIcKgCWV4ZWNfcmVzdWx0 ID0gZXhlY19yZXN1bHQgfCBsc3RkaW47CS8qIFhYWCAqLwo+IC0hwqDCoMKgwqDCoMKgwqAvKiBv dGhlcndpc2Ugd2UgdXNlIGV4ZWNfcmVzdWx0ICovCj4gLSHCoMKgwqDCoMKgwqDCoMKgwqAKPiAt wqDCoCNlbmRpZgo+IC3CoMKgwqDCoMKgwqDCoMKgdW5mcmVlemVfam9ic19saXN0ICgpOwo+IC0q KiogLi4vYmFzaC00LjMvcGF0Y2hsZXZlbC5oCTIwMTItMTItMjkgMTA6NDc6NTcuMDAwMDAwMDAw IC0wNTAwCj4gLS0tLSBwYXRjaGxldmVsLmgJMjAxNC0wMy0yMCAyMDowMToyOC4wMDAwMDAwMDAg LTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNiwzMCAqKioqCj4gLcKgwqDCoMKgwqBs b29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0 cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMjEKPiAtwqDCoAo+IC3C oMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gLS0tLSAyNiwzMCAtLS0tCj4gLcKgwqDC oMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJz aW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMjIKPiAtwqDC oAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9w YXRjaGVzL2Jhc2gvYmFzaDQzLTAyMyBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAyMwo+IGRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IGQxZTRlOWQuLjAwMDAwMDAKPiAtLS0gYS9z cmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMjMKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsMTA0ICsw LDAgQEAKPiAtCQkJwqDCoMKgwqDCoEJBU0ggUEFUQ0ggUkVQT1JUCj4gLQkJCcKgwqDCoMKgwqA9 PT09PT09PT09PT09PT09PQo+IC0KPiAtQmFzaC1SZWxlYXNlOgk0LjMKPiAtUGF0Y2gtSUQ6CWJh c2g0My0wMjMKPiAtCj4gLUJ1Zy1SZXBvcnRlZC1ieToJVGltIEZyaXNrZSA8bWUoYSl0aW1mcmlz a2UuY29tPgo+IC1CdWctUmVmZXJlbmNlLUlEOgk8Q0FNMVJ6T2NPUjl6ekMyaSthZUVTNkx0YkhO SG9PViswcFpFWVBycXh2X1FBaWktUlhBCj4gQG1haWwuZ21haWwuY29tPgo+IC1CdWctUmVmZXJl bmNlLVVSTDoJaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2J1Zy1iYXNoLzIwMTQt MDYvCj4gbXNnMDAwNTYuaHRtbAo+IC0KPiAtQnVnLURlc2NyaXB0aW9uOgo+IC0KPiAtQmFzaCBk b2VzIG5vdCBjb3JyZWN0bHkgcGFyc2UgcHJvY2VzcyBzdWJzdGl0dXRpb24gY29uc3RydWN0cyB0 aGF0IGNvbnRhaW4KPiAtdW5iYWxhbmNlZCBwYXJlbnRoZXNlcyBhcyBwYXJ0IG9mIHRoZSBjb250 YWluZWQgY29tbWFuZC4KPiAtCj4gLVBhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiAt Cj4gLSoqKiAuLi9iYXNoLTQuMy1wYXRjaGVkL3N1YnN0LmgJMjAxNC0wMS0xMSAyMTowMjoyNy4w MDAwMDAwMDAgLTA1MDAKPiAtLS0tIHN1YnN0LmgJMjAxNC0wNy0yMCAxNzoyNTowMS4wMDAwMDAw MDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA4Myw4NyAqKioqCj4gLcKgwqDCoMKg wqBTdGFydCBleHRyYWN0aW5nIGF0IChTSU5ERVgpIGFzIGlmIHdlIGhhZCBqdXN0IHNlZW4gIjwo Ii4KPiAtwqDCoMKgwqDCoE1ha2UgKFNJTkRFWCkgZ2V0IHRoZSBwb3NpdGlvbiBqdXN0IGFmdGVy IHRoZSBtYXRjaGluZyAiKSIuICovCj4gLSEgZXh0ZXJuIGNoYXIgKmV4dHJhY3RfcHJvY2Vzc19z dWJzdCBfX1AoKGNoYXIgKiwgY2hhciAqLCBpbnQgKikpOwo+IC3CoMKgI2VuZGlmIC8qIFBST0NF U1NfU1VCU1RJVFVUSU9OICovCj4gLcKgwqAKPiAtLS0tIDgzLDg3IC0tLS0KPiAtwqDCoMKgwqDC oFN0YXJ0IGV4dHJhY3RpbmcgYXQgKFNJTkRFWCkgYXMgaWYgd2UgaGFkIGp1c3Qgc2VlbiAiPCgi Lgo+IC3CoMKgwqDCoMKgTWFrZSAoU0lOREVYKSBnZXQgdGhlIHBvc2l0aW9uIGp1c3QgYWZ0ZXIg dGhlIG1hdGNoaW5nICIpIi4gKi8KPiAtISBleHRlcm4gY2hhciAqZXh0cmFjdF9wcm9jZXNzX3N1 YnN0IF9fUCgoY2hhciAqLCBjaGFyICosIGludCAqLCBpbnQpKTsKPiAtwqDCoCNlbmRpZiAvKiBQ Uk9DRVNTX1NVQlNUSVRVVElPTiAqLwo+IC3CoMKgCj4gLSoqKiAuLi9iYXNoLTQuMy1wYXRjaGVk L3N1YnN0LmMJMjAxNC0wNS0xNSAwODoyNjo0NS4wMDAwMDAwMDAgLTA0MDAKPiAtLS0tIHN1YnN0 LmMJMjAxNC0wNy0yMCAxNzoyNjo0NC4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioq Cj4gLSoqKiAxMTkzLDEyMDIgKioqKgo+IC3CoMKgwqDCoMKgTWFrZSAoU0lOREVYKSBnZXQgdGhl IHBvc2l0aW9uIG9mIHRoZSBtYXRjaGluZyAiKSIuICovIC8qKSkqLwo+IC3CoMKgY2hhciAqCj4g LSEgZXh0cmFjdF9wcm9jZXNzX3N1YnN0IChzdHJpbmcsIHN0YXJ0ZXIsIHNpbmRleCkKPiAtwqDC oMKgwqDCoMKgwqBjaGFyICpzdHJpbmc7Cj4gLcKgwqDCoMKgwqDCoMKgY2hhciAqc3RhcnRlcjsK PiAtwqDCoMKgwqDCoMKgwqBpbnQgKnNpbmRleDsKPiAtwqDCoHsKPiAtwqDCoMKgwqByZXR1cm4g KGV4dHJhY3RfZGVsaW1pdGVkX3N0cmluZyAoc3RyaW5nLCBzaW5kZXgsIHN0YXJ0ZXIsICIoIiwg IikiLAo+IFNYX0NPTU1BTkQpKTsKPiAtwqDCoH0KPiAtwqDCoCNlbmRpZiAvKiBQUk9DRVNTX1NV QlNUSVRVVElPTiAqLwo+IC0tLS0gMTE5MywxMjA4IC0tLS0KPiAtwqDCoMKgwqDCoE1ha2UgKFNJ TkRFWCkgZ2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgbWF0Y2hpbmcgIikiLiAqLyAvKikpKi8KPiAt wqDCoGNoYXIgKgo+IC0hIGV4dHJhY3RfcHJvY2Vzc19zdWJzdCAoc3RyaW5nLCBzdGFydGVyLCBz aW5kZXgsIHhmbGFncykKPiAtwqDCoMKgwqDCoMKgwqBjaGFyICpzdHJpbmc7Cj4gLcKgwqDCoMKg wqDCoMKgY2hhciAqc3RhcnRlcjsKPiAtwqDCoMKgwqDCoMKgwqBpbnQgKnNpbmRleDsKPiAtK8Kg wqDCoMKgwqDCoGludCB4ZmxhZ3M7Cj4gLcKgwqB7Cj4gLSsgI2lmIDAKPiAtwqDCoMKgwqByZXR1 cm4gKGV4dHJhY3RfZGVsaW1pdGVkX3N0cmluZyAoc3RyaW5nLCBzaW5kZXgsIHN0YXJ0ZXIsICIo IiwgIikiLAo+IFNYX0NPTU1BTkQpKTsKPiAtKyAjZWxzZQo+IC0rwqDCoMKgeGZsYWdzIHw9IChu b19sb25nam1wX29uX2ZhdGFsX2Vycm9yID8gU1hfTk9MT05HSk1QIDogMCk7Cj4gLSvCoMKgwqBy ZXR1cm4gKHhwYXJzZV9kb2xwYXJlbiAoc3RyaW5nLCBzdHJpbmcrKnNpbmRleCwgc2luZGV4LCB4 ZmxhZ3MpKTsKPiAtKyAjZW5kaWYKPiAtwqDCoH0KPiAtwqDCoCNlbmRpZiAvKiBQUk9DRVNTX1NV QlNUSVRVVElPTiAqLwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDE3ODYsMTc5MCAqKioqCj4g LcKgwqAJwqDCoGlmIChzdHJpbmdbc2ldID09ICdcMCcpCj4gLcKgwqAJwqDCoMKgwqBDUV9SRVRV Uk4oc2kpOwo+IC0hwqAJwqDCoHRlbXAgPSBleHRyYWN0X3Byb2Nlc3Nfc3Vic3QgKHN0cmluZywg KGMgPT0gJzwnKSA/ICI8KCIgOiAiPigiLAo+ICZzaSk7Cj4gLcKgwqAJwqDCoGZyZWUgKHRlbXAp OwkJLyogbm8gU1hfQUxMT0MgaGVyZSAqLwo+IC3CoMKgCcKgwqBpID0gc2k7Cj4gLS0tLSAxNzky LDE3OTYgLS0tLQo+IC3CoMKgCcKgwqBpZiAoc3RyaW5nW3NpXSA9PSAnXDAnKQo+IC3CoMKgCcKg wqDCoMKgQ1FfUkVUVVJOKHNpKTsKPiAtIcKgCcKgwqB0ZW1wID0gZXh0cmFjdF9wcm9jZXNzX3N1 YnN0IChzdHJpbmcsIChjID09ICc8JykgPyAiPCgiIDogIj4oIiwKPiAmc2ksIDApOwo+IC3CoMKg CcKgwqBmcmVlICh0ZW1wKTsJCS8qIG5vIFNYX0FMTE9DIGhlcmUgKi8KPiAtwqDCoAnCoMKgaSA9 IHNpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDgyNTAsODI1NCAqKioqCj4gLcKgwqAJwqDC oMKgwqDCoMKgdF9pbmRleCA9IHNpbmRleCArIDE7IC8qIHNraXAgcGFzdCBib3RoICc8JyBhbmQg TFBBUkVOICovCj4gLcKgwqAKPiAtIcKgCcKgwqDCoMKgdGVtcDEgPSBleHRyYWN0X3Byb2Nlc3Nf c3Vic3QgKHN0cmluZywgKGMgPT0gJzwnKSA/ICI8KCIgOgo+ICI+KCIsICZ0X2luZGV4KTsgLyop KSovCj4gLcKgwqAJwqDCoMKgwqBzaW5kZXggPSB0X2luZGV4Owo+IC3CoMKgCj4gLS0tLSA4MjU2 LDgyNjAgLS0tLQo+IC3CoMKgCcKgwqDCoMKgwqDCoHRfaW5kZXggPSBzaW5kZXggKyAxOyAvKiBz a2lwIHBhc3QgYm90aCAnPCcgYW5kIExQQVJFTiAqLwo+IC3CoMKgCj4gLSHCoAnCoMKgwqDCoHRl bXAxID0gZXh0cmFjdF9wcm9jZXNzX3N1YnN0IChzdHJpbmcsIChjID09ICc8JykgPyAiPCgiIDoK PiAiPigiLCAmdF9pbmRleCwgMCk7IC8qKSkqLwo+IC3CoMKgCcKgwqDCoMKgc2luZGV4ID0gdF9p bmRleDsKPiAtwqDCoAo+IC0qKiogLi4vYmFzaC00LjMvcGF0Y2hsZXZlbC5oCTIwMTItMTItMjkg MTA6NDc6NTcuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBwYXRjaGxldmVsLmgJMjAxNC0wMy0yMCAy MDowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNiwzMCAq KioqCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0 aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVW RUwgMjIKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gLS0tLSAy NiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwg KGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBB VENITEVWRUwgMjMKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4g ZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAyNCBiL3NyYy9wYXRjaGVzL2Jh c2gvYmFzaDQzLTAyNAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IGEyNGI4ZmIu LjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMjQKPiArKysgL2Rldi9u dWxsCj4gQEAgLTEsNTQgKzAsMCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQK PiAtCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQu Mwo+IC1QYXRjaC1JRDoJYmFzaDQzLTAyNAo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglDb3JlbnRp biBQZXV2cmVsIDxjcGV1dnJlbChhKXBvbS1tb25pdG9yaW5nLmNvbT4KPiAtQnVnLVJlZmVyZW5j ZS1JRDoJPDUzQ0U5RTVELjYwNTAyMDMoYSlwb20tbW9uaXRvcmluZy5jb20+Cj4gLUJ1Zy1SZWZl cmVuY2UtVVJMOglodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWJhc2gvMjAx NC0wNy8KPiBtc2cwMDAyMS5odG1sCj4gLQo+IC1CdWctRGVzY3JpcHRpb246Cj4gLQo+IC1JbmRp cmVjdCB2YXJpYWJsZSByZWZlcmVuY2VzIGRvIG5vdCB3b3JrIGNvcnJlY3RseSBpZiB0aGUgcmVm ZXJlbmNlCj4gLXZhcmlhYmxlIGV4cGFuZHMgdG8gYW4gYXJyYXkgcmVmZXJlbmNlIHVzaW5nIGEg c3Vic2NyaXB0IG90aGVyIHRoYW4gMAo+IC0oZS5nLiwgZm9vPSdiYXJbMV0nIDsgZWNobyAkeyFm b299KS4KPiAtCj4gLVBhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiAtCj4gLSoqKiAu Li9iYXNoLTQuMy1wYXRjaGVkL3N1YnN0LmMJMjAxNC0wNi0wMyAwOTozMjo0NC4wMDAwMDAwMDAg LTA0MDAKPiAtLS0tIHN1YnN0LmMJMjAxNC0wNy0yMyAwOTo1ODoxOS4wMDAwMDAwMDAgLTA0MDAK PiAtKioqKioqKioqKioqKioqCj4gLSoqKiA3Mzc1LDczNzkgKioqKgo+IC3CoMKgCj4gLcKgwqDC oMKgaWYgKHdhbnRfaW5kaXIpCj4gLSHCoMKgwqDCoMKgdGRlc2MgPSBwYXJhbWV0ZXJfYnJhY2Vf ZXhwYW5kX2luZGlyIChuYW1lICsgMSwgdmFyX2lzX3NwZWNpYWwsIHF1b3RlZCwKPiBxdW90ZWRf ZG9sbGFyX2F0cCwgY29udGFpbnNfZG9sbGFyX2F0KTsKPiAtwqDCoMKgwqBlbHNlCj4gLcKgwqDC oMKgwqDCoHRkZXNjID0gcGFyYW1ldGVyX2JyYWNlX2V4cGFuZF93b3JkIChuYW1lLCB2YXJfaXNf c3BlY2lhbCwgcXVvdGVkLAo+IFBGX0lHTlVOQk9VTkR8KHBmbGFncyYoUEZfTk9TUExJVDJ8UEZf QVNTSUdOUkhTKSksICZpbmQpOwo+IC0tLS0gNzQ0NSw3NDU1IC0tLS0KPiAtwqDCoAo+IC3CoMKg wqDCoGlmICh3YW50X2luZGlyKQo+IC0hwqDCoMKgwqDCoHsKPiAtIcKgwqDCoMKgwqDCoMKgdGRl c2MgPSBwYXJhbWV0ZXJfYnJhY2VfZXhwYW5kX2luZGlyIChuYW1lICsgMSwgdmFyX2lzX3NwZWNp YWwsCj4gcXVvdGVkLCBxdW90ZWRfZG9sbGFyX2F0cCwgY29udGFpbnNfZG9sbGFyX2F0KTsKPiAt IcKgwqDCoMKgwqDCoMKgLyogVHVybiBvZmYgdGhlIFdfQVJSQVlJTkQgZmxhZyBiZWNhdXNlIHRo ZXJlIGlzIG5vIHdheSBmb3IgdGhpcwo+IGZ1bmN0aW9uCj4gLSHCoAnCoHRvIHJldHVybiB0aGUg aW5kZXggd2UncmUgc3VwcG9zZWQgdG8gYmUgdXNpbmcuICovCj4gLSHCoMKgwqDCoMKgwqDCoGlm ICh0ZGVzYyAmJiB0ZGVzYy0+ZmxhZ3MpCj4gLSHCoAl0ZGVzYy0+ZmxhZ3MgJj0gfldfQVJSQVlJ TkQ7Cj4gLSHCoMKgwqDCoMKgfQo+IC3CoMKgwqDCoGVsc2UKPiAtwqDCoMKgwqDCoMKgdGRlc2Mg PSBwYXJhbWV0ZXJfYnJhY2VfZXhwYW5kX3dvcmQgKG5hbWUsIHZhcl9pc19zcGVjaWFsLCBxdW90 ZWQsCj4gUEZfSUdOVU5CT1VORHwocGZsYWdzJihQRl9OT1NQTElUMnxQRl9BU1NJR05SSFMpKSwg JmluZCk7Cj4gLSoqKiAuLi9iYXNoLTQuMy9wYXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1 Ny4wMDAwMDAwMDAgLTA1MDAKPiAtLS0tIHBhdGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4 LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2LDMwICoqKioKPiAt wqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2Nz IHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAyMwo+ IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiAtLS0tIDI2LDMwIC0t LS0KPiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRo ZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZF TCAyNAo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiBkaWZmIC0t Z2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI1IGIvc3JjL3BhdGNoZXMvYmFzaC9iYXNo NDMtMDI1Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggNzIxYWNhMC4uMDAwMDAw MAo+IC0tLSBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAyNQo+ICsrKyAvZGV2L251bGwKPiBA QCAtMSwxMjMgKzAsMCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJ wqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1Q YXRjaC1JRDoJYmFzaDQzLTAyNQo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglTdGVwaGFuZSBDaGF6 ZWxhcyA8c3RlcGhhbmUuY2hhemVsYXMoYSlnbWFpbC5jb20+Cj4gLUJ1Zy1SZWZlcmVuY2UtSUQ6 Cj4gLUJ1Zy1SZWZlcmVuY2UtVVJMOgo+IC0KPiAtQnVnLURlc2NyaXB0aW9uOgo+IC0KPiAtVW5k ZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBiYXNoIHdpbGwgZXhlY3V0ZSB1c2VyIGNvZGUgd2hp bGUgcHJvY2Vzc2luZyB0aGUKPiAtZW52aXJvbm1lbnQgZm9yIGV4cG9ydGVkIGZ1bmN0aW9uIGRl ZmluaXRpb25zLgo+IC0KPiAtUGF0Y2ggKGFwcGx5IHdpdGggYHBhdGNoIC1wMCcpOgo+IC0KPiAt KioqIC4uL2Jhc2gtNC4zLXBhdGNoZWQvYnVpbHRpbnMvY29tbW9uLmgJMjAxMy0wNy0wOAo+IDE2 OjU0OjQ3LjAwMDAwMDAwMCAtMDQwMAo+IC0tLS0gYnVpbHRpbnMvY29tbW9uLmgJMjAxNC0wOS0x MiAxNDoyNTo0Ny4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAzNCwz NyAqKioqCj4gLS0tLSA0OSw1NCAtLS0tCj4gLcKgwqAjZGVmaW5lIFNFVkFMX1BBUlNFT05MWQkw eDAyMAo+IC3CoMKgI2RlZmluZSBTRVZBTF9OT0xPTkdKTVAgMHgwNDAKPiAtKyAjZGVmaW5lIFNF VkFMX0ZVTkNERUYJMHgwODAJCS8qIG9ubHkgYWxsb3cgZnVuY3Rpb24KPiBkZWZpbml0aW9ucyAq Lwo+IC0rICNkZWZpbmUgU0VWQUxfT05FQ01ECTB4MTAwCQkvKiBvbmx5IGFsbG93IGEgc2luZ2xl Cj4gY29tbWFuZCAqLwo+IC3CoMKgCj4gLcKgwqAvKiBGbGFncyBmb3IgZGVzY3JpYmVfY29tbWFu ZCwgc2hhcmVkIGJldHdlZW4gdHlwZS5kZWYgYW5kIGNvbW1hbmQuZGVmICovCj4gLSoqKiAuLi9i YXNoLTQuMy1wYXRjaGVkL2J1aWx0aW5zL2V2YWxzdHJpbmcuYwkyMDE0LTAyLTExCj4gMDk6NDI6 MTAuMDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBidWlsdGlucy9ldmFsc3RyaW5nLmMJMjAxNC0wOS0x NCAxNDoxNToxMy4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAzMDks MzEyICoqKioKPiAtLS0tIDMxMywzMjQgLS0tLQo+IC3CoMKgCcKgwqDCoMKgwqDCoHN0cnVjdCBm ZF9iaXRtYXAgKmJpdG1hcDsKPiAtwqDCoAo+IC0rwqAJwqDCoMKgwqDCoMKgaWYgKChmbGFncyAm IFNFVkFMX0ZVTkNERUYpICYmIGNvbW1hbmQtPnR5cGUgIT0KPiBjbV9mdW5jdGlvbl9kZWYpCj4g LSvCoAkJewo+IC0rwqAJCcKgwqBpbnRlcm5hbF93YXJuaW5nICgiJXM6IGlnbm9yaW5nIGZ1bmN0 aW9uIGRlZmluaXRpb24KPiBhdHRlbXB0IiwgZnJvbV9maWxlKTsKPiAtK8KgCQnCoMKgc2hvdWxk X2p1bXBfdG9fdG9wX2xldmVsID0gMDsKPiAtK8KgCQnCoMKgbGFzdF9yZXN1bHQgPSBsYXN0X2Nv bW1hbmRfZXhpdF92YWx1ZSA9IEVYX0JBRFVTQUdFOwo+IC0rwqAJCcKgwqBicmVhazsKPiAtK8Kg CQl9Cj4gLSvCoAo+IC3CoMKgCcKgwqDCoMKgwqDCoGJpdG1hcCA9IG5ld19mZF9iaXRtYXAgKEZE X0JJVE1BUF9TSVpFKTsKPiAtwqDCoAnCoMKgwqDCoMKgwqBiZWdpbl91bndpbmRfZnJhbWUgKCJw ZV9kaXNwb3NlIik7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMzY5LDM3MiAqKioqCj4gLS0t LSAzODEsMzg3IC0tLS0KPiAtwqDCoAnCoMKgwqDCoMKgwqBkaXNwb3NlX2ZkX2JpdG1hcCAoYml0 bWFwKTsKPiAtwqDCoAnCoMKgwqDCoMKgwqBkaXNjYXJkX3Vud2luZF9mcmFtZSAoInBlX2Rpc3Bv c2UiKTsKPiAtK8KgCj4gLSvCoAnCoMKgwqDCoMKgwqBpZiAoZmxhZ3MgJiBTRVZBTF9PTkVDTUQp Cj4gLSvCoAkJYnJlYWs7Cj4gLcKgwqAJwqDCoMKgwqB9Cj4gLcKgwqAJfQo+IC0qKiogLi4vYmFz aC00LjMtcGF0Y2hlZC92YXJpYWJsZXMuYwkyMDE0LTA1LTE1IDA4OjI2OjUwLjAwMDAwMDAwMAo+ IC0wNDAwCj4gLS0tLSB2YXJpYWJsZXMuYwkyMDE0LTA5LTE0IDE0OjIzOjM1LjAwMDAwMDAwMCAt MDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDM1OSwzNjkgKioqKgo+IC3CoMKgCcKgwqBz dHJjcHkgKHRlbXBfc3RyaW5nICsgY2hhcl9pbmRleCArIDEsIHN0cmluZyk7Cj4gLcKgwqAKPiAt IcKgCcKgwqBpZiAocG9zaXhseV9jb3JyZWN0ID09IDAgfHwgbGVnYWxfaWRlbnRpZmllciAobmFt ZSkpCj4gLSHCoAnCoMKgwqDCoHBhcnNlX2FuZF9leGVjdXRlICh0ZW1wX3N0cmluZywgbmFtZSwK PiBTRVZBTF9OT05JTlR8U0VWQUxfTk9ISVNUKTsKPiAtIcKgCj4gLSHCoAnCoMKgLyogQW5jaWVu dCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS7CoMKgT2xkIHZlcnNpb25zIG9mIGJhc2gKPiBleHBv cnRlZAo+IC0hwqAJwqDCoMKgwqDCoGZ1bmN0aW9ucyBsaWtlIG5hbWUoKT0oKSB7Li4ufSAqLwo+ IC0hwqAJwqDCoGlmIChuYW1lW2NoYXJfaW5kZXggLSAxXSA9PSAnKScgJiYgbmFtZVtjaGFyX2lu ZGV4IC0gMl0gPT0gJygnKQo+IC0hwqAJwqDCoMKgwqBuYW1lW2NoYXJfaW5kZXggLSAyXSA9ICdc MCc7Cj4gLcKgwqAKPiAtwqDCoAnCoMKgaWYgKHRlbXBfdmFyID0gZmluZF9mdW5jdGlvbiAobmFt ZSkpCj4gLS0tLSAzNjQsMzcyIC0tLS0KPiAtwqDCoAnCoMKgc3RyY3B5ICh0ZW1wX3N0cmluZyAr IGNoYXJfaW5kZXggKyAxLCBzdHJpbmcpOwo+IC3CoMKgCj4gLSHCoAnCoMKgLyogRG9uJ3QgaW1w b3J0IGZ1bmN0aW9uIG5hbWVzIHRoYXQgYXJlIGludmFsaWQgaWRlbnRpZmllcnMgZnJvbQo+IHRo ZQo+IC0hwqAJwqDCoMKgwqDCoGVudmlyb25tZW50LCB0aG91Z2ggd2Ugc3RpbGwgYWxsb3cgdGhl bSB0byBiZSBkZWZpbmVkIGFzIHNoZWxsCj4gLSHCoAnCoMKgwqDCoMKgdmFyaWFibGVzLiAqLwo+ IC0hwqAJwqDCoGlmIChsZWdhbF9pZGVudGlmaWVyIChuYW1lKSkKPiAtIcKgCcKgwqDCoMKgcGFy c2VfYW5kX2V4ZWN1dGUgKHRlbXBfc3RyaW5nLCBuYW1lLAo+IFNFVkFMX05PTklOVHxTRVZBTF9O T0hJU1R8U0VWQUxfRlVOQ0RFRnxTRVZBTF9PTkVDTUQpOwo+IC3CoMKgCj4gLcKgwqAJwqDCoGlm ICh0ZW1wX3ZhciA9IGZpbmRfZnVuY3Rpb24gKG5hbWUpKQo+IC0qKioqKioqKioqKioqKioKPiAt KioqIDM4MiwzODkgKioqKgo+IC3CoMKgCcKgwqDCoMKgwqDCoHJlcG9ydF9lcnJvciAoXygiZXJy b3IgaW1wb3J0aW5nIGZ1bmN0aW9uIGRlZmluaXRpb24gZm9yCj4gYCVzJyIpLCBuYW1lKTsKPiAt wqDCoAnCoMKgwqDCoH0KPiAtLcKgCj4gLS3CoAnCoMKgLyogKCAqLwo+IC0twqAJwqDCoGlmIChu YW1lW2NoYXJfaW5kZXggLSAxXSA9PSAnKScgJiYgbmFtZVtjaGFyX2luZGV4IC0gMl0gPT0gJ1ww JykKPiAtLcKgCcKgwqDCoMKgbmFtZVtjaGFyX2luZGV4IC0gMl0gPSAnKCc7CQkvKiApICovCj4g LcKgwqAJfQo+IC3CoMKgI2lmIGRlZmluZWQgKEFSUkFZX1ZBUlMpCj4gLS0tLSAzODUsMzg4IC0t LS0KPiAtKioqIC4uL2Jhc2gtNC4zLXBhdGNoZWQvc3Vic3QuYwkyMDE0LTA4LTExIDExOjE2OjM1 LjAwMDAwMDAwMCAtMDQwMAo+IC0tLS0gc3Vic3QuYwkyMDE0LTA5LTEyIDE1OjMxOjA0LjAwMDAw MDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDgwNDgsODA1MiAqKioqCj4gLcKg wqAJwqDCoGdvdG8gcmV0dXJuMDsKPiAtwqDCoAl9Cj4gLSHCoMKgwqDCoMKgwqDCoGVsc2UgaWYg KHZhciA9IGZpbmRfdmFyaWFibGVfbGFzdF9uYW1lcmVmICh0ZW1wMSkpCj4gLcKgwqAJewo+IC3C oMKgCcKgwqB0ZW1wID0gbmFtZXJlZl9jZWxsICh2YXIpOwo+IC0tLS0gODExOCw4MTI0IC0tLS0K PiAtwqDCoAnCoMKgZ290byByZXR1cm4wOwo+IC3CoMKgCX0KPiAtIcKgwqDCoMKgwqDCoMKgZWxz ZSBpZiAodmFyICYmIChpbnZpc2libGVfcCAodmFyKSB8fCB2YXJfaXNzZXQgKHZhcikgPT0gMCkp Cj4gLSHCoAl0ZW1wID0gKGNoYXIgKilOVUxMOwo+IC0hwqDCoMKgwqDCoMKgwqBlbHNlIGlmICgo dmFyID0gZmluZF92YXJpYWJsZV9sYXN0X25hbWVyZWYgKHRlbXAxKSkgJiYgdmFyX2lzc2V0Cj4g KHZhcikgJiYgaW52aXNpYmxlX3AgKHZhcikgPT0gMCkKPiAtwqDCoAl7Cj4gLcKgwqAJwqDCoHRl bXAgPSBuYW1lcmVmX2NlbGwgKHZhcik7Cj4gLSoqKiAuLi9iYXNoLTQuMy9wYXRjaGxldmVsLmgJ MjAxMi0xMi0yOSAxMDo0Nzo1Ny4wMDAwMDAwMDAgLTA1MDAKPiAtLS0tIHBhdGNobGV2ZWwuaAky MDE0LTAzLTIwIDIwOjAxOjI4LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAt KioqIDI2LDMwICoqKioKPiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBs ZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZp bmUgUEFUQ0hMRVZFTCAyNAo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8g Ki8KPiAtLS0tIDI2LDMwIC0tLS0KPiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBw YXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0h ICNkZWZpbmUgUEFUQ0hMRVZFTCAyNQo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVW RUxfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI2IGIvc3Jj L3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI2Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggZTQ4MTQxYi4uMDAwMDAwMAo+IC0tLSBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAyNgo+ ICsrKyAvZGV2L251bGwKPiBAQCAtMSw2MCArMCwwIEBACj4gLQkJCcKgwqDCoMKgwqBCQVNIIFBB VENIIFJFUE9SVAo+IC0JCQnCoMKgwqDCoMKgPT09PT09PT09PT09PT09PT0KPiAtCj4gLUJhc2gt UmVsZWFzZToJNC4zCj4gLVBhdGNoLUlEOgliYXNoNDMtMDI2Cj4gLQo+IC1CdWctUmVwb3J0ZWQt Ynk6CVRhdmlzIE9ybWFuZHkgPHRhdmlzbyAoKSBjbXB4Y2hnOGIgY29tPgo+IC1CdWctUmVmZXJl bmNlLUlEOgo+IC1CdWctUmVmZXJlbmNlLVVSTDoJaHR0cDovL3R3aXR0ZXIuY29tL3Rhdmlzby9z dGF0dXNlcy81MTQ4ODczOTQyOTQ2NTI5Cj4gMjkKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAt Cj4gLVVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcywgYmFzaCBjYW4gaW5jb3JyZWN0bHkgc2F2 ZSBhIGxvb2thaGVhZCBjaGFyYWN0ZXIKPiBhbmQKPiAtcmV0dXJuIGl0IG9uIGEgc3Vic2VxdWVu dCBjYWxsLCBldmVuIHdoZW4gcmVhZGluZyBhIG5ldyBsaW5lLgo+IC0KPiAtUGF0Y2ggKGFwcGx5 IHdpdGggYHBhdGNoIC1wMCcpOgo+IC0KPiAtKioqIC4uL2Jhc2gtNC4zLjI1L3BhcnNlLnkJMjAx NC0wNy0zMCAxMDoxNDozMS4wMDAwMDAwMDAgLTA0MDAKPiAtLS0tIHBhcnNlLnkJMjAxNC0wOS0y NSAyMDoyMDoyMS4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyOTU0 LDI5NTcgKioqKgo+IC0tLS0gMjk1NCwyOTU5IC0tLS0KPiAtwqDCoMKgwqB3b3JkX2Rlc2NfdG9f cmVhZCA9IChXT1JEX0RFU0MgKilOVUxMOwo+IC3CoMKgCj4gLSvCoMKgwqBlb2xfdW5nZXRjX2xv b2thaGVhZCA9IDA7Cj4gLSvCoAo+IC3CoMKgwqDCoGN1cnJlbnRfdG9rZW4gPSAnXG4nOwkJLyog WFhYICovCj4gLcKgwqDCoMKgbGFzdF9yZWFkX3Rva2VuID0gJ1xuJzsKPiAtKioqIC4uL2Jhc2gt NC4zLjI1L3kudGFiLmMJMjAxNC0wNy0zMCAxMDoxNDozMi4wMDAwMDAwMDAgLTA0MDAKPiAtLS0t IHkudGFiLmMJMjAxNC0wOS0yNSAyMDoyMTo0OC4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioq KioqKioqCj4gLSoqKiA1MjY2LDUyNjkgKioqKgo+IC0tLS0gNTI2Niw1MjcxIC0tLS0KPiAtwqDC oMKgwqB3b3JkX2Rlc2NfdG9fcmVhZCA9IChXT1JEX0RFU0MgKilOVUxMOwo+IC3CoMKgCj4gLSvC oMKgwqBlb2xfdW5nZXRjX2xvb2thaGVhZCA9IDA7Cj4gLSvCoAo+IC3CoMKgwqDCoGN1cnJlbnRf dG9rZW4gPSAnXG4nOwkJLyogWFhYICovCj4gLcKgwqDCoMKgbGFzdF9yZWFkX3Rva2VuID0gJ1xu JzsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA4NTQwLDg1NDIgKioqKgo+IC3CoMKgfQo+IC3C oMKgI2VuZGlmIC8qIEhBTkRMRV9NVUxUSUJZVEUgKi8KPiAtLcKgCj4gLS0tLSA4NTQyLDg1NDMg LS0tLQo+IC0qKiogLi4vYmFzaC00LjMvcGF0Y2hsZXZlbC5oCTIwMTItMTItMjkgMTA6NDc6NTcu MDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBwYXRjaGxldmVsLmgJMjAxNC0wMy0yMCAyMDowMToyOC4w MDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNiwzMCAqKioqCj4gLcKg wqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2 ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMjUKPiAt wqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gLS0tLSAyNiwzMCAtLS0t Cj4gLcKgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUg c2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwg MjYKPiAtwqDCoAo+IC3CoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdp dCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAyNyBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQz LTAyNwo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IGVmNDhiZDguLjAwMDAwMDAK PiAtLS0gYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMjcKPiArKysgL2Rldi9udWxsCj4gQEAg LTEsMjIxICswLDAgQEAKPiAtCQkJwqDCoMKgwqDCoEJBU0ggUEFUQ0ggUkVQT1JUCj4gLQkJCcKg wqDCoMKgwqA9PT09PT09PT09PT09PT09PQo+IC0KPiAtQmFzaC1SZWxlYXNlOgk0LjMKPiAtUGF0 Y2gtSUQ6CWJhc2g0My0wMjcKPiAtCj4gLUJ1Zy1SZXBvcnRlZC1ieToJRmxvcmlhbiBXZWltZXIg PGZ3ZWltZXIoYSlyZWRoYXQuY29tPgo+IC1CdWctUmVmZXJlbmNlLUlEOgo+IC1CdWctUmVmZXJl bmNlLVVSTDoKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAtCj4gLVRoaXMgcGF0Y2ggY2hhbmdl cyB0aGUgZW5jb2RpbmcgYmFzaCB1c2VzIGZvciBleHBvcnRlZCBmdW5jdGlvbnMgdG8gYXZvaWQK PiAtY2xhc2hlcyB3aXRoIHNoZWxsIHZhcmlhYmxlcyBhbmQgdG8gYXZvaWQgZGVwZW5kaW5nIG9u bHkgb24gYW4gZW52aXJvbm1lbnQKPiAtdmFyaWFibGUncyBjb250ZW50cyB0byBkZXRlcm1pbmUg d2hldGhlciBvciBub3QgdG8gaW50ZXJwcmV0IGl0IGFzIGEgc2hlbGwKPiAtZnVuY3Rpb24uCj4g LQo+IC1QYXRjaCAoYXBwbHkgd2l0aCBgcGF0Y2ggLXAwJyk6Cj4gLQo+IC0qKiogLi4vYmFzaC00 LjMuMjYvdmFyaWFibGVzLmMJMjAxNC0wOS0yNSAyMzowMjoxOC4wMDAwMDAwMDAgLTA0MDAKPiAt LS0tIHZhcmlhYmxlcy5jCTIwMTQtMDktMjcgMjA6NTI6MDQuMDAwMDAwMDAwIC0wNDAwCj4gLSoq KioqKioqKioqKioqKgo+IC0qKiogODQsODcgKioqKgo+IC0tLS0gODQsOTIgLS0tLQo+IC3CoMKg I2RlZmluZSBpZnNuYW1lKHMpCSgocylbMF0gPT0gJ0knICYmIChzKVsxXSA9PSAnRicgJiYgKHMp WzJdID09ICdTJwo+ICYmIChzKVszXSA9PSAnXDAnKQo+IC3CoMKgCj4gLSsgI2RlZmluZSBCQVNI RlVOQ19QUkVGSVgJCSJCQVNIX0ZVTkNfIgo+IC0rICNkZWZpbmUgQkFTSEZVTkNfUFJFRkxFTgkx MAkvKiA9PSBzdHJsZW4oQkFTSEZVTkNfUFJFRklYICovCj4gLSsgI2RlZmluZSBCQVNIRlVOQ19T VUZGSVgJCSIlJSIKPiAtKyAjZGVmaW5lIEJBU0hGVU5DX1NVRkZMRU4JMgkvKiA9PSBzdHJsZW4o QkFTSEZVTkNfU1VGRklYKSAqLwo+IC0rwqAKPiAtwqDCoGV4dGVybiBjaGFyICoqZW52aXJvbjsK PiAtwqDCoAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI4MCwyODQgKioqKgo+IC3CoMKgc3Rh dGljIHZvaWQgZGlzcG9zZV90ZW1wb3JhcnlfZW52IF9fUCgoc2hfZnJlZV9mdW5jX3QgKikpO8Kg wqDCoMKgwqAKPiAtwqDCoAo+IC0hIHN0YXRpYyBpbmxpbmUgY2hhciAqbWtfZW52X3N0cmluZyBf X1AoKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKSk7Cj4gLcKgwqBzdGF0aWMgY2hhciAqKm1h a2VfZW52X2FycmF5X2Zyb21fdmFyX2xpc3QgX19QKChTSEVMTF9WQVIgKiopKTsKPiAtwqDCoHN0 YXRpYyBjaGFyICoqbWFrZV92YXJfZXhwb3J0X2FycmF5IF9fUCgoVkFSX0NPTlRFWFQgKikpOwo+ IC0tLS0gMjg1LDI4OSAtLS0tCj4gLcKgwqBzdGF0aWMgdm9pZCBkaXNwb3NlX3RlbXBvcmFyeV9l bnYgX19QKChzaF9mcmVlX2Z1bmNfdCAqKSk7wqDCoMKgwqDCoAo+IC3CoMKgCj4gLSEgc3RhdGlj IGlubGluZSBjaGFyICpta19lbnZfc3RyaW5nIF9fUCgoY29uc3QgY2hhciAqLCBjb25zdCBjaGFy ICosIGludCkpOwo+IC3CoMKgc3RhdGljIGNoYXIgKiptYWtlX2Vudl9hcnJheV9mcm9tX3Zhcl9s aXN0IF9fUCgoU0hFTExfVkFSICoqKSk7Cj4gLcKgwqBzdGF0aWMgY2hhciAqKm1ha2VfdmFyX2V4 cG9ydF9hcnJheSBfX1AoKFZBUl9DT05URVhUICopKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoq KiAzNTAsMzY5ICoqKioKPiAtwqDCoMKgwqDCoMKgwqDCoC8qIElmIGV4cG9ydGVkIGZ1bmN0aW9u LCBkZWZpbmUgaXQgbm93LsKgwqBEb24ndCBpbXBvcnQgZnVuY3Rpb25zIGZyb20KPiAtwqDCoAnC oHRoZSBlbnZpcm9ubWVudCBpbiBwcml2aWxlZ2VkIG1vZGUuICovCj4gLSHCoMKgwqDCoMKgwqDC oGlmIChwcml2bW9kZSA9PSAwICYmIHJlYWRfYnV0X2RvbnRfZXhlY3V0ZSA9PSAwICYmIFNUUkVR TiAoIigpIHsiLAo+IHN0cmluZywgNCkpCj4gLcKgwqAJewo+IC3CoMKgCcKgwqBzdHJpbmdfbGVu Z3RoID0gc3RybGVuIChzdHJpbmcpOwo+IC0hwqAJwqDCoHRlbXBfc3RyaW5nID0gKGNoYXIgKil4 bWFsbG9jICgzICsgc3RyaW5nX2xlbmd0aCArIGNoYXJfaW5kZXgpOwo+IC3CoMKgCj4gLSHCoAnC oMKgc3RyY3B5ICh0ZW1wX3N0cmluZywgbmFtZSk7Cj4gLSHCoAnCoMKgdGVtcF9zdHJpbmdbY2hh cl9pbmRleF0gPSAnICc7Cj4gLSHCoAnCoMKgc3RyY3B5ICh0ZW1wX3N0cmluZyArIGNoYXJfaW5k ZXggKyAxLCBzdHJpbmcpOwo+IC3CoMKgCj4gLcKgwqAJwqDCoC8qIERvbid0IGltcG9ydCBmdW5j dGlvbiBuYW1lcyB0aGF0IGFyZSBpbnZhbGlkIGlkZW50aWZpZXJzIGZyb20KPiB0aGUKPiAtwqDC oAnCoMKgwqDCoMKgZW52aXJvbm1lbnQsIHRob3VnaCB3ZSBzdGlsbCBhbGxvdyB0aGVtIHRvIGJl IGRlZmluZWQgYXMgc2hlbGwKPiAtwqDCoAnCoMKgwqDCoMKgdmFyaWFibGVzLiAqLwo+IC0hwqAJ wqDCoGlmIChsZWdhbF9pZGVudGlmaWVyIChuYW1lKSkKPiAtIcKgCcKgwqDCoMKgcGFyc2VfYW5k X2V4ZWN1dGUgKHRlbXBfc3RyaW5nLCBuYW1lLAo+IFNFVkFMX05PTklOVHxTRVZBTF9OT0hJU1R8 U0VWQUxfRlVOQ0RFRnxTRVZBTF9PTkVDTUQpOwo+IC3CoMKgCj4gLSHCoAnCoMKgaWYgKHRlbXBf dmFyID0gZmluZF9mdW5jdGlvbiAobmFtZSkpCj4gLcKgwqAJwqDCoMKgwqB7Cj4gLcKgwqAJwqDC oMKgwqDCoMKgVlNFVEFUVFIgKHRlbXBfdmFyLCAoYXR0X2V4cG9ydGVkfGF0dF9pbXBvcnRlZCkp Owo+IC0tLS0gMzU1LDM4NSAtLS0tCj4gLcKgwqDCoMKgwqDCoMKgwqAvKiBJZiBleHBvcnRlZCBm dW5jdGlvbiwgZGVmaW5lIGl0IG5vdy7CoMKgRG9uJ3QgaW1wb3J0IGZ1bmN0aW9ucyBmcm9tCj4g LcKgwqAJwqB0aGUgZW52aXJvbm1lbnQgaW4gcHJpdmlsZWdlZCBtb2RlLiAqLwo+IC0hwqDCoMKg wqDCoMKgwqBpZiAocHJpdm1vZGUgPT0gMCAmJiByZWFkX2J1dF9kb250X2V4ZWN1dGUgPT0gMCAm JsKgCj4gLSHCoMKgwqDCoMKgwqDCoMKgwqDCoMKgU1RSRVFOIChCQVNIRlVOQ19QUkVGSVgsIG5h bWUsIEJBU0hGVU5DX1BSRUZMRU4pICYmCj4gLSHCoMKgwqDCoMKgwqDCoMKgwqDCoMKgU1RSRVEg KEJBU0hGVU5DX1NVRkZJWCwgbmFtZSArIGNoYXJfaW5kZXggLSBCQVNIRlVOQ19TVUZGTEVOKSAm Jgo+IC0hwqAJwqDCoFNUUkVRTiAoIigpIHsiLCBzdHJpbmcsIDQpKQo+IC3CoMKgCXsKPiAtK8Kg CcKgwqBzaXplX3QgbmFtZWxlbjsKPiAtK8KgCcKgwqBjaGFyICp0bmFtZTsJCS8qIGRlc2lyZWQg aW1wb3J0ZWQgZnVuY3Rpb24gbmFtZSAqLwo+IC0rwqAKPiAtK8KgCcKgwqBuYW1lbGVuID0gY2hh cl9pbmRleCAtIEJBU0hGVU5DX1BSRUZMRU4gLSBCQVNIRlVOQ19TVUZGTEVOOwo+IC0rwqAKPiAt K8KgCcKgwqB0bmFtZSA9IG5hbWUgKyBCQVNIRlVOQ19QUkVGTEVOOwkvKiBzdGFydCBvZiBmdW5j IG5hbWUgKi8KPiAtK8KgCcKgwqB0bmFtZVtuYW1lbGVuXSA9ICdcMCc7CQkvKiBub3cgdG5hbWUg PT0gZnVuYyBuYW1lCj4gKi8KPiAtK8KgCj4gLcKgwqAJwqDCoHN0cmluZ19sZW5ndGggPSBzdHJs ZW4gKHN0cmluZyk7Cj4gLSHCoAnCoMKgdGVtcF9zdHJpbmcgPSAoY2hhciAqKXhtYWxsb2MgKG5h bWVsZW4gKyBzdHJpbmdfbGVuZ3RoICsgMik7Cj4gLcKgwqAKPiAtIcKgCcKgwqBtZW1jcHkgKHRl bXBfc3RyaW5nLCB0bmFtZSwgbmFtZWxlbik7Cj4gLSHCoAnCoMKgdGVtcF9zdHJpbmdbbmFtZWxl bl0gPSAnICc7Cj4gLSHCoAnCoMKgbWVtY3B5ICh0ZW1wX3N0cmluZyArIG5hbWVsZW4gKyAxLCBz dHJpbmcsIHN0cmluZ19sZW5ndGggKyAxKTsKPiAtwqDCoAo+IC3CoMKgCcKgwqAvKiBEb24ndCBp bXBvcnQgZnVuY3Rpb24gbmFtZXMgdGhhdCBhcmUgaW52YWxpZCBpZGVudGlmaWVycyBmcm9tCj4g dGhlCj4gLcKgwqAJwqDCoMKgwqDCoGVudmlyb25tZW50LCB0aG91Z2ggd2Ugc3RpbGwgYWxsb3cg dGhlbSB0byBiZSBkZWZpbmVkIGFzIHNoZWxsCj4gLcKgwqAJwqDCoMKgwqDCoHZhcmlhYmxlcy4g Ki8KPiAtIcKgCcKgwqBpZiAoYWJzb2x1dGVfcHJvZ3JhbSAodG5hbWUpID09IDAgJiYgKHBvc2l4 bHlfY29ycmVjdCA9PSAwIHx8Cj4gbGVnYWxfaWRlbnRpZmllciAodG5hbWUpKSkKPiAtIcKgCcKg wqDCoMKgcGFyc2VfYW5kX2V4ZWN1dGUgKHRlbXBfc3RyaW5nLCB0bmFtZSwKPiBTRVZBTF9OT05J TlR8U0VWQUxfTk9ISVNUfFNFVkFMX0ZVTkNERUZ8U0VWQUxfT05FQ01EKTsKPiAtwqDCoAo+IC0h wqAJwqDCoGlmICh0ZW1wX3ZhciA9IGZpbmRfZnVuY3Rpb24gKHRuYW1lKSkKPiAtwqDCoAnCoMKg wqDCoHsKPiAtwqDCoAnCoMKgwqDCoMKgwqBWU0VUQVRUUiAodGVtcF92YXIsIChhdHRfZXhwb3J0 ZWR8YXR0X2ltcG9ydGVkKSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMzc4LDM4MyAqKioq Cj4gLcKgwqAJCX0KPiAtwqDCoAnCoMKgwqDCoMKgwqBsYXN0X2NvbW1hbmRfZXhpdF92YWx1ZSA9 IDE7Cj4gLSHCoAnCoMKgwqDCoMKgwqByZXBvcnRfZXJyb3IgKF8oImVycm9yIGltcG9ydGluZyBm dW5jdGlvbiBkZWZpbml0aW9uIGZvcgo+IGAlcyciKSwgbmFtZSk7Cj4gLcKgwqAJwqDCoMKgwqB9 Cj4gLcKgwqAJfQo+IC3CoMKgI2lmIGRlZmluZWQgKEFSUkFZX1ZBUlMpCj4gLS0tLSAzOTQsNDAy IC0tLS0KPiAtwqDCoAkJfQo+IC3CoMKgCcKgwqDCoMKgwqDCoGxhc3RfY29tbWFuZF9leGl0X3Zh bHVlID0gMTsKPiAtIcKgCcKgwqDCoMKgwqDCoHJlcG9ydF9lcnJvciAoXygiZXJyb3IgaW1wb3J0 aW5nIGZ1bmN0aW9uIGRlZmluaXRpb24gZm9yCj4gYCVzJyIpLCB0bmFtZSk7Cj4gLcKgwqAJwqDC oMKgwqB9Cj4gLSvCoAo+IC0rwqAJwqDCoC8qIFJlc3RvcmUgb3JpZ2luYWwgc3VmZml4ICovCj4g LSvCoAnCoMKgdG5hbWVbbmFtZWxlbl0gPSBCQVNIRlVOQ19TVUZGSVhbMF07Cj4gLcKgwqAJfQo+ IC3CoMKgI2lmIGRlZmluZWQgKEFSUkFZX1ZBUlMpCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiog Mjk1NSwyOTU5ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoElOVkFMSURBVEVfRVhQT1JUU1RSICh2 YXIpOwo+IC0hwqDCoMKgdmFyLT5leHBvcnRzdHIgPSBta19lbnZfc3RyaW5nIChuYW1lLCB2YWx1 ZSk7Cj4gLcKgwqAKPiAtwqDCoMKgwqBhcnJheV9uZWVkc19tYWtpbmcgPSAxOwo+IC0tLS0gMjk3 NCwyOTc4IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoElOVkFMSURBVEVfRVhQT1JUU1RSICh2YXIp Owo+IC0hwqDCoMKgdmFyLT5leHBvcnRzdHIgPSBta19lbnZfc3RyaW5nIChuYW1lLCB2YWx1ZSwg MCk7Cj4gLcKgwqAKPiAtwqDCoMKgwqBhcnJheV9uZWVkc19tYWtpbmcgPSAxOwo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDM4NTMsMzg3MSAqKioqCj4gLcKgwqAKPiAtwqDCoHN0YXRpYyBpbmxp bmUgY2hhciAqCj4gLSEgbWtfZW52X3N0cmluZyAobmFtZSwgdmFsdWUpCj4gLcKgwqDCoMKgwqDC oMKgY29uc3QgY2hhciAqbmFtZSwgKnZhbHVlOwo+IC3CoMKgewo+IC0hwqDCoMKgaW50IG5hbWVf bGVuLCB2YWx1ZV9sZW47Cj4gLSHCoMKgwqBjaGFyCSpwOwo+IC3CoMKgCj4gLcKgwqDCoMKgbmFt ZV9sZW4gPSBzdHJsZW4gKG5hbWUpOwo+IC3CoMKgwqDCoHZhbHVlX2xlbiA9IFNUUkxFTiAodmFs dWUpOwo+IC0hwqDCoMKgcCA9IChjaGFyICopeG1hbGxvYyAoMiArIG5hbWVfbGVuICsgdmFsdWVf bGVuKTsKPiAtIcKgwqDCoHN0cmNweSAocCwgbmFtZSk7Cj4gLSHCoMKgwqBwW25hbWVfbGVuXSA9 ICc9JzsKPiAtwqDCoMKgwqBpZiAodmFsdWUgJiYgKnZhbHVlKQo+IC0hwqDCoMKgwqDCoHN0cmNw eSAocCArIG5hbWVfbGVuICsgMSwgdmFsdWUpOwo+IC3CoMKgwqDCoGVsc2UKPiAtIcKgwqDCoMKg wqBwW25hbWVfbGVuICsgMV0gPSAnXDAnOwo+IC3CoMKgwqDCoHJldHVybiAocCk7Cj4gLcKgwqB9 Cj4gLS0tLSAzODcyLDM5MTEgLS0tLQo+IC3CoMKgCj4gLcKgwqBzdGF0aWMgaW5saW5lIGNoYXIg Kgo+IC0hIG1rX2Vudl9zdHJpbmcgKG5hbWUsIHZhbHVlLCBpc2Z1bmMpCj4gLcKgwqDCoMKgwqDC oMKgY29uc3QgY2hhciAqbmFtZSwgKnZhbHVlOwo+IC0rwqDCoMKgwqDCoMKgaW50IGlzZnVuYzsK PiAtwqDCoHsKPiAtIcKgwqDCoHNpemVfdCBuYW1lX2xlbiwgdmFsdWVfbGVuOwo+IC0hwqDCoMKg Y2hhcgkqcCwgKnE7Cj4gLcKgwqAKPiAtwqDCoMKgwqBuYW1lX2xlbiA9IHN0cmxlbiAobmFtZSk7 Cj4gLcKgwqDCoMKgdmFsdWVfbGVuID0gU1RSTEVOICh2YWx1ZSk7Cj4gLSHCoAo+IC0hwqDCoMKg LyogSWYgd2UgYXJlIGV4cG9ydGluZyBhIHNoZWxsIGZ1bmN0aW9uLCBjb25zdHJ1Y3QgdGhlIGVu Y29kZWQgZnVuY3Rpb24KPiAtIcKgwqDCoMKgwqDCoG5hbWUuICovCj4gLSHCoMKgwqBpZiAoaXNm dW5jICYmIHZhbHVlKQo+IC0hwqDCoMKgwqDCoHsKPiAtIcKgwqDCoMKgwqDCoMKgcCA9IChjaGFy ICopeG1hbGxvYyAoQkFTSEZVTkNfUFJFRkxFTiArIG5hbWVfbGVuICsgQkFTSEZVTkNfU1VGRkxF TiArCj4gdmFsdWVfbGVuICsgMik7Cj4gLSHCoMKgwqDCoMKgwqDCoHEgPSBwOwo+IC0hwqDCoMKg wqDCoMKgwqBtZW1jcHkgKHEsIEJBU0hGVU5DX1BSRUZJWCwgQkFTSEZVTkNfUFJFRkxFTik7Cj4g LSHCoMKgwqDCoMKgwqDCoHEgKz0gQkFTSEZVTkNfUFJFRkxFTjsKPiAtIcKgwqDCoMKgwqDCoMKg bWVtY3B5IChxLCBuYW1lLCBuYW1lX2xlbik7Cj4gLSHCoMKgwqDCoMKgwqDCoHEgKz0gbmFtZV9s ZW47Cj4gLSHCoMKgwqDCoMKgwqDCoG1lbWNweSAocSwgQkFTSEZVTkNfU1VGRklYLCBCQVNIRlVO Q19TVUZGTEVOKTsKPiAtIcKgwqDCoMKgwqDCoMKgcSArPSBCQVNIRlVOQ19TVUZGTEVOOwo+IC0h wqDCoMKgwqDCoH0KPiAtIcKgwqDCoGVsc2UKPiAtIcKgwqDCoMKgwqB7Cj4gLSHCoMKgwqDCoMKg wqDCoHAgPSAoY2hhciAqKXhtYWxsb2MgKDIgKyBuYW1lX2xlbiArIHZhbHVlX2xlbik7Cj4gLSHC oMKgwqDCoMKgwqDCoG1lbWNweSAocCwgbmFtZSwgbmFtZV9sZW4pOwo+IC0hwqDCoMKgwqDCoMKg wqBxID0gcCArIG5hbWVfbGVuOwo+IC0hwqDCoMKgwqDCoH0KPiAtIcKgCj4gLSHCoMKgwqBxWzBd ID0gJz0nOwo+IC3CoMKgwqDCoGlmICh2YWx1ZSAmJiAqdmFsdWUpCj4gLSHCoMKgwqDCoMKgbWVt Y3B5IChxICsgMSwgdmFsdWUsIHZhbHVlX2xlbiArIDEpOwo+IC3CoMKgwqDCoGVsc2UKPiAtIcKg wqDCoMKgwqBxWzFdID0gJ1wwJzsKPiAtIcKgCj4gLcKgwqDCoMKgcmV0dXJuIChwKTsKPiAtwqDC oH0KPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAzOTUzLDM5NTcgKioqKgo+IC3CoMKgCcKgwqDC oMKgwqB1c2luZyB0aGUgY2FjaGVkIGV4cG9ydHN0ci4uLiAqLwo+IC3CoMKgCcKgwqBsaXN0W2xp c3RfaW5kZXhdID0gVVNFX0VYUE9SVFNUUiA/IHNhdmVzdHJpbmcgKHZhbHVlKQo+IC0hwqAJCQkJ CcKgwqDCoDogbWtfZW52X3N0cmluZyAodmFyLT5uYW1lLAo+IHZhbHVlKTsKPiAtwqDCoAo+IC3C oMKgCcKgwqBpZiAoVVNFX0VYUE9SVFNUUiA9PSAwKQo+IC0tLS0gMzk5MywzOTk3IC0tLS0KPiAt wqDCoAnCoMKgwqDCoMKgdXNpbmcgdGhlIGNhY2hlZCBleHBvcnRzdHIuLi4gKi8KPiAtwqDCoAnC oMKgbGlzdFtsaXN0X2luZGV4XSA9IFVTRV9FWFBPUlRTVFIgPyBzYXZlc3RyaW5nICh2YWx1ZSkK PiAtIcKgCQkJCQnCoMKgwqA6IG1rX2Vudl9zdHJpbmcgKHZhci0+bmFtZSwKPiB2YWx1ZSwgZnVu Y3Rpb25fcCAodmFyKSk7Cj4gLcKgwqAKPiAtwqDCoAnCoMKgaWYgKFVTRV9FWFBPUlRTVFIgPT0g MCkKPiAtKioqIC4uL2Jhc2gtNC4zL3BhdGNobGV2ZWwuaAkyMDEyLTEyLTI5IDEwOjQ3OjU3LjAw MDAwMDAwMCAtMDUwMAo+IC0tLS0gcGF0Y2hsZXZlbC5oCTIwMTQtMDMtMjAgMjA6MDE6MjguMDAw MDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjYsMzAgKioqKgo+IC3CoMKg wqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVy c2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDI2Cj4gLcKg wqAKPiAtwqDCoCNlbmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IC0tLS0gMjYsMzAgLS0tLQo+ IC3CoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNj Y3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+IC3CoMKgCj4gLSEgI2RlZmluZSBQQVRDSExFVkVMIDI3 Cj4gLcKgwqAKPiAtwqDCoCNlbmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IGRpZmYgLS1naXQg YS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0wMjggYi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0My0w MjgKPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCA3NDQ4Y2Y4Li4wMDAwMDAwCj4g LS0tIGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI4Cj4gKysrIC9kZXYvbnVsbAo+IEBAIC0x LDIyNjUgKzAsMCBAQAo+IC0JCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiAtCQkJwqDC oMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gLQo+IC1CYXNoLVJlbGVhc2U6CTQuMwo+IC1QYXRj aC1JRDoJYmFzaDQzLTAyOAo+IC0KPiAtQnVnLVJlcG9ydGVkLWJ5OglGbG9yaWFuIFdlaW1lciA8 ZndlaW1lcihhKXJlZGhhdC5jb20+Cj4gLUJ1Zy1SZWZlcmVuY2UtSUQ6Cj4gLUJ1Zy1SZWZlcmVu Y2UtVVJMOgo+IC0KPiAtQnVnLURlc2NyaXB0aW9uOgo+IC0KPiAtVGhlcmUgYXJlIHR3byBsb2Nh bCBidWZmZXIgb3ZlcmZsb3dzIGluIHBhcnNlLnkgdGhhdCBjYW4gY2F1c2UgdGhlIHNoZWxsCj4g LXRvIGR1bXAgY29yZSB3aGVuIGdpdmVuIG1hbnkgaGVyZS1kb2N1bWVudHMgYXR0YWNoZWQgdG8g YSBzaW5nbGUgY29tbWFuZAo+IC1vciBtYW55IG5lc3RlZCBsb29wcy4KPiAtCj4gLVBhdGNoIChh cHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiAtCj4gLSoqKiAuLi9iYXNoLTQuMy1wYXRjaGVkL3Bh cnNlLnkJMjAxNC0wOS0yNSAyMzowMjozNS4wMDAwMDAwMDAgLTA0MDAKPiAtLS0tIHBhcnNlLnkJ MjAxNC0wOS0yOSAxNjo0NzowMy4wMDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4g LSoqKiAxNjksMTcyICoqKioKPiAtLS0tIDE2OSwxNzUgLS0tLQo+IC3CoMKgc3RhdGljIGludCBy ZXNlcnZlZF93b3JkX2FjY2VwdGFibGUgX19QKChpbnQpKTsKPiAtwqDCoHN0YXRpYyBpbnQgeXls ZXggX19QKCh2b2lkKSk7Cj4gLSvCoAo+IC0rIHN0YXRpYyB2b2lkIHB1c2hfaGVyZWRvYyBfX1Ao KFJFRElSRUNUICopKTsKPiAtKyBzdGF0aWMgY2hhciAqbWtfYWxleHBhbnNpb24gX19QKChjaGFy ICopKTsKPiAtwqDCoHN0YXRpYyBpbnQgYWxpYXNfZXhwYW5kX3Rva2VuIF9fUCgoY2hhciAqKSk7 Cj4gLcKgwqBzdGF0aWMgaW50IHRpbWVfY29tbWFuZF9hY2NlcHRhYmxlIF9fUCgodm9pZCkpOwo+ IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2NiwyNzAgKioqKgo+IC3CoMKgLyogVmFyaWFibGVz IHRvIG1hbmFnZSB0aGUgdGFzayBvZiByZWFkaW5nIGhlcmUgZG9jdW1lbnRzLCBiZWNhdXNlIHdl IG5lZWQKPiB0bwo+IC3CoMKgwqDCoMKgZGVmZXIgdGhlIHJlYWRpbmcgdW50aWwgYWZ0ZXIgYSBj b21wbGV0ZSBjb21tYW5kIGhhcyBiZWVuIGNvbGxlY3RlZC4gKi8KPiAtISBzdGF0aWMgUkVESVJF Q1QgKnJlZGlyX3N0YWNrWzEwXTsKPiAtwqDCoGludCBuZWVkX2hlcmVfZG9jOwo+IC3CoMKgCj4g LS0tLSAyNjksMjc1IC0tLS0KPiAtwqDCoC8qIFZhcmlhYmxlcyB0byBtYW5hZ2UgdGhlIHRhc2sg b2YgcmVhZGluZyBoZXJlIGRvY3VtZW50cywgYmVjYXVzZSB3ZSBuZWVkCj4gdG8KPiAtwqDCoMKg wqDCoGRlZmVyIHRoZSByZWFkaW5nIHVudGlsIGFmdGVyIGEgY29tcGxldGUgY29tbWFuZCBoYXMg YmVlbiBjb2xsZWN0ZWQuICovCj4gLSEgI2RlZmluZSBIRVJFRE9DX01BWCAxNgo+IC0hwqAKPiAt ISBzdGF0aWMgUkVESVJFQ1QgKnJlZGlyX3N0YWNrW0hFUkVET0NfTUFYXTsKPiAtwqDCoGludCBu ZWVkX2hlcmVfZG9jOwo+IC3CoMKgCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMzA4LDMxMiAq KioqCj4gLcKgwqDCoMKgwqBpbmRleCBpcyBkZWNyZW1lbnRlZCBhZnRlciBhIGNhc2UsIHNlbGVj dCwgb3IgZm9yIGNvbW1hbmQgaXMgcGFyc2VkLiAqLwo+IC3CoMKgI2RlZmluZSBNQVhfQ0FTRV9O RVNUCTEyOAo+IC0hIHN0YXRpYyBpbnQgd29yZF9saW5lbm9bTUFYX0NBU0VfTkVTVF07Cj4gLcKg wqBzdGF0aWMgaW50IHdvcmRfdG9wID0gLTE7Cj4gLcKgwqAKPiAtLS0tIDMxMywzMTcgLS0tLQo+ IC3CoMKgwqDCoMKgaW5kZXggaXMgZGVjcmVtZW50ZWQgYWZ0ZXIgYSBjYXNlLCBzZWxlY3QsIG9y IGZvciBjb21tYW5kIGlzIHBhcnNlZC4gKi8KPiAtwqDCoCNkZWZpbmUgTUFYX0NBU0VfTkVTVAkx MjgKPiAtISBzdGF0aWMgaW50IHdvcmRfbGluZW5vW01BWF9DQVNFX05FU1QrMV07Cj4gLcKgwqBz dGF0aWMgaW50IHdvcmRfdG9wID0gLTE7Cj4gLcKgwqAKPiAtKioqKioqKioqKioqKioqCj4gLSoq KiA1MjEsNTI1ICoqKioKPiAtwqDCoAkJCcKgwqByZWRpci5maWxlbmFtZSA9ICQyOwo+IC3CoMKg CQkJwqDCoCQkID0gbWFrZV9yZWRpcmVjdGlvbiAoc291cmNlLCByX3JlYWRpbmdfdW50aWwsCj4g cmVkaXIsIDApOwo+IC0hwqAJCQnCoMKgcmVkaXJfc3RhY2tbbmVlZF9oZXJlX2RvYysrXSA9ICQk Owo+IC3CoMKgCQkJfQo+IC3CoMKgCXwJTlVNQkVSIExFU1NfTEVTUyBXT1JECj4gLS0tLSA1MjYs NTMwIC0tLS0KPiAtwqDCoAkJCcKgwqByZWRpci5maWxlbmFtZSA9ICQyOwo+IC3CoMKgCQkJwqDC oCQkID0gbWFrZV9yZWRpcmVjdGlvbiAoc291cmNlLCByX3JlYWRpbmdfdW50aWwsCj4gcmVkaXIs IDApOwo+IC0hwqAJCQnCoMKgcHVzaF9oZXJlZG9jICgkJCk7Cj4gLcKgwqAJCQl9Cj4gLcKgwqAJ fAlOVU1CRVIgTEVTU19MRVNTIFdPUkQKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA1MjgsNTMy ICoqKioKPiAtwqDCoAkJCcKgwqByZWRpci5maWxlbmFtZSA9ICQzOwo+IC3CoMKgCQkJwqDCoCQk ID0gbWFrZV9yZWRpcmVjdGlvbiAoc291cmNlLCByX3JlYWRpbmdfdW50aWwsCj4gcmVkaXIsIDAp Owo+IC0hwqAJCQnCoMKgcmVkaXJfc3RhY2tbbmVlZF9oZXJlX2RvYysrXSA9ICQkOwo+IC3CoMKg CQkJfQo+IC3CoMKgCXwJUkVESVJfV09SRCBMRVNTX0xFU1MgV09SRAo+IC0tLS0gNTMzLDUzNyAt LS0tCj4gLcKgwqAJCQnCoMKgcmVkaXIuZmlsZW5hbWUgPSAkMzsKPiAtwqDCoAkJCcKgwqAkJCA9 IG1ha2VfcmVkaXJlY3Rpb24gKHNvdXJjZSwgcl9yZWFkaW5nX3VudGlsLAo+IHJlZGlyLCAwKTsK PiAtIcKgCQkJwqDCoHB1c2hfaGVyZWRvYyAoJCQpOwo+IC3CoMKgCQkJfQo+IC3CoMKgCXwJUkVE SVJfV09SRCBMRVNTX0xFU1MgV09SRAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDUzNSw1Mzkg KioqKgo+IC3CoMKgCQkJwqDCoHJlZGlyLmZpbGVuYW1lID0gJDM7Cj4gLcKgwqAJCQnCoMKgJCQg PSBtYWtlX3JlZGlyZWN0aW9uIChzb3VyY2UsIHJfcmVhZGluZ191bnRpbCwKPiByZWRpciwgUkVE SVJfVkFSQVNTSUdOKTsKPiAtIcKgCQkJwqDCoHJlZGlyX3N0YWNrW25lZWRfaGVyZV9kb2MrK10g PSAkJDsKPiAtwqDCoAkJCX0KPiAtwqDCoAl8CUxFU1NfTEVTU19NSU5VUyBXT1JECj4gLS0tLSA1 NDAsNTQ0IC0tLS0KPiAtwqDCoAkJCcKgwqByZWRpci5maWxlbmFtZSA9ICQzOwo+IC3CoMKgCQkJ wqDCoCQkID0gbWFrZV9yZWRpcmVjdGlvbiAoc291cmNlLCByX3JlYWRpbmdfdW50aWwsCj4gcmVk aXIsIFJFRElSX1ZBUkFTU0lHTik7Cj4gLSHCoAkJCcKgwqBwdXNoX2hlcmVkb2MgKCQkKTsKPiAt wqDCoAkJCX0KPiAtwqDCoAl8CUxFU1NfTEVTU19NSU5VUyBXT1JECj4gLSoqKioqKioqKioqKioq Kgo+IC0qKiogNTQyLDU0NiAqKioqCj4gLcKgwqAJCQnCoMKgcmVkaXIuZmlsZW5hbWUgPSAkMjsK PiAtwqDCoAkJCcKgwqAkJCA9IG1ha2VfcmVkaXJlY3Rpb24gKHNvdXJjZSwKPiByX2RlYmxhbmtf cmVhZGluZ191bnRpbCwgcmVkaXIsIDApOwo+IC0hwqAJCQnCoMKgcmVkaXJfc3RhY2tbbmVlZF9o ZXJlX2RvYysrXSA9ICQkOwo+IC3CoMKgCQkJfQo+IC3CoMKgCXwJTlVNQkVSIExFU1NfTEVTU19N SU5VUyBXT1JECj4gLS0tLSA1NDcsNTUxIC0tLS0KPiAtwqDCoAkJCcKgwqByZWRpci5maWxlbmFt ZSA9ICQyOwo+IC3CoMKgCQkJwqDCoCQkID0gbWFrZV9yZWRpcmVjdGlvbiAoc291cmNlLAo+IHJf ZGVibGFua19yZWFkaW5nX3VudGlsLCByZWRpciwgMCk7Cj4gLSHCoAkJCcKgwqBwdXNoX2hlcmVk b2MgKCQkKTsKPiAtwqDCoAkJCX0KPiAtwqDCoAl8CU5VTUJFUiBMRVNTX0xFU1NfTUlOVVMgV09S RAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDU0OSw1NTMgKioqKgo+IC3CoMKgCQkJwqDCoHJl ZGlyLmZpbGVuYW1lID0gJDM7Cj4gLcKgwqAJCQnCoMKgJCQgPSBtYWtlX3JlZGlyZWN0aW9uIChz b3VyY2UsCj4gcl9kZWJsYW5rX3JlYWRpbmdfdW50aWwsIHJlZGlyLCAwKTsKPiAtIcKgCQkJwqDC oHJlZGlyX3N0YWNrW25lZWRfaGVyZV9kb2MrK10gPSAkJDsKPiAtwqDCoAkJCX0KPiAtwqDCoAl8 CVJFRElSX1dPUkTCoMKgTEVTU19MRVNTX01JTlVTIFdPUkQKPiAtLS0tIDU1NCw1NTggLS0tLQo+ IC3CoMKgCQkJwqDCoHJlZGlyLmZpbGVuYW1lID0gJDM7Cj4gLcKgwqAJCQnCoMKgJCQgPSBtYWtl X3JlZGlyZWN0aW9uIChzb3VyY2UsCj4gcl9kZWJsYW5rX3JlYWRpbmdfdW50aWwsIHJlZGlyLCAw KTsKPiAtIcKgCQkJwqDCoHB1c2hfaGVyZWRvYyAoJCQpOwo+IC3CoMKgCQkJfQo+IC3CoMKgCXwJ UkVESVJfV09SRMKgwqBMRVNTX0xFU1NfTUlOVVMgV09SRAo+IC0qKioqKioqKioqKioqKioKPiAt KioqIDU1Niw1NjAgKioqKgo+IC3CoMKgCQkJwqDCoHJlZGlyLmZpbGVuYW1lID0gJDM7Cj4gLcKg wqAJCQnCoMKgJCQgPSBtYWtlX3JlZGlyZWN0aW9uIChzb3VyY2UsCj4gcl9kZWJsYW5rX3JlYWRp bmdfdW50aWwsIHJlZGlyLCBSRURJUl9WQVJBU1NJR04pOwo+IC0hwqAJCQnCoMKgcmVkaXJfc3Rh Y2tbbmVlZF9oZXJlX2RvYysrXSA9ICQkOwo+IC3CoMKgCQkJfQo+IC3CoMKgCXwJTEVTU19MRVNT X0xFU1MgV09SRAo+IC0tLS0gNTYxLDU2NSAtLS0tCj4gLcKgwqAJCQnCoMKgcmVkaXIuZmlsZW5h bWUgPSAkMzsKPiAtwqDCoAkJCcKgwqAkJCA9IG1ha2VfcmVkaXJlY3Rpb24gKHNvdXJjZSwKPiBy X2RlYmxhbmtfcmVhZGluZ191bnRpbCwgcmVkaXIsIFJFRElSX1ZBUkFTU0lHTik7Cj4gLSHCoAkJ CcKgwqBwdXNoX2hlcmVkb2MgKCQkKTsKPiAtwqDCoAkJCX0KPiAtwqDCoAl8CUxFU1NfTEVTU19M RVNTIFdPUkQKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNjM3LDI2NDAgKioqKgo+IC0tLS0g MjY0MiwyNjYwIC0tLS0KPiAtwqDCoHN0YXRpYyBpbnQgZXNhY3NfbmVlZGVkX2NvdW50Owo+IC3C oMKgCj4gLSsgc3RhdGljIHZvaWQKPiAtKyBwdXNoX2hlcmVkb2MgKHIpCj4gLSvCoMKgwqDCoMKg wqBSRURJUkVDVCAqcjsKPiAtKyB7Cj4gLSvCoMKgwqBpZiAobmVlZF9oZXJlX2RvYyA+PSBIRVJF RE9DX01BWCkKPiAtK8KgwqDCoMKgwqB7Cj4gLSvCoMKgwqDCoMKgwqDCoGxhc3RfY29tbWFuZF9l eGl0X3ZhbHVlID0gRVhfQkFEVVNBR0U7Cj4gLSvCoMKgwqDCoMKgwqDCoG5lZWRfaGVyZV9kb2Mg PSAwOwo+IC0rwqDCoMKgwqDCoMKgwqByZXBvcnRfc3ludGF4X2Vycm9yIChfKCJtYXhpbXVtIGhl cmUtZG9jdW1lbnQgY291bnQgZXhjZWVkZWQiKSk7Cj4gLSvCoMKgwqDCoMKgwqDCoHJlc2V0X3Bh cnNlciAoKTsKPiAtK8KgwqDCoMKgwqDCoMKgZXhpdF9zaGVsbCAobGFzdF9jb21tYW5kX2V4aXRf dmFsdWUpOwo+IC0rwqDCoMKgwqDCoH0KPiAtK8KgwqDCoHJlZGlyX3N0YWNrW25lZWRfaGVyZV9k b2MrK10gPSByOwo+IC0rIH0KPiAtK8KgCj4gLcKgwqB2b2lkCj4gLcKgwqBnYXRoZXJfaGVyZV9k b2N1bWVudHMgKCkKPiAtKioqIC4uL2Jhc2gtNC4zLjI3L3kudGFiLmMJMjAxNC0xMC0wMSAxMToz ODoyNC4wMDAwMDAwMDAgLTA0MDAKPiAtLS0tIHkudGFiLmMJMjAxNC0xMC0wMSAxMjo0NjoxMS4w MDAwMDAwMDAgLTA0MDAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAxNjksMTczICoqKioKPiAt wqDCoAo+IC3CoMKgLyogQ29weSB0aGUgZmlyc3QgcGFydCBvZiB1c2VyIGRlY2xhcmF0aW9ucy7C oMKgKi8KPiAtISAjbGluZSAyMSAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55 Igo+IC3CoMKgCj4gLcKgwqAjaW5jbHVkZSAiY29uZmlnLmgiCj4gLS0tLSAxNjksMTczIC0tLS0K PiAtwqDCoAo+IC3CoMKgLyogQ29weSB0aGUgZmlyc3QgcGFydCBvZiB1c2VyIGRlY2xhcmF0aW9u cy7CoMKgKi8KPiAtISAjbGluZSAyMSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNo LTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgCj4gLcKgwqAjaW5jbHVkZSAiY29uZmlnLmgiCj4gLSoq KioqKioqKioqKioqKgo+IC0qKiogMzIwLDMyMyAqKioqCj4gLS0tLSAzMjAsMzI2IC0tLS0KPiAt wqDCoHN0YXRpYyBpbnQgcmVzZXJ2ZWRfd29yZF9hY2NlcHRhYmxlIF9fUCgoaW50KSk7Cj4gLcKg wqBzdGF0aWMgaW50IHl5bGV4IF9fUCgodm9pZCkpOwo+IC0rwqAKPiAtKyBzdGF0aWMgdm9pZCBw dXNoX2hlcmVkb2MgX19QKChSRURJUkVDVCAqKSk7Cj4gLSsgc3RhdGljIGNoYXIgKm1rX2FsZXhw YW5zaW9uIF9fUCgoY2hhciAqKSk7Cj4gLcKgwqBzdGF0aWMgaW50IGFsaWFzX2V4cGFuZF90b2tl biBfX1AoKGNoYXIgKikpOwo+IC3CoMKgc3RhdGljIGludCB0aW1lX2NvbW1hbmRfYWNjZXB0YWJs ZSBfX1AoKHZvaWQpKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA0MTcsNDIxICoqKioKPiAt wqDCoC8qIFZhcmlhYmxlcyB0byBtYW5hZ2UgdGhlIHRhc2sgb2YgcmVhZGluZyBoZXJlIGRvY3Vt ZW50cywgYmVjYXVzZSB3ZSBuZWVkCj4gdG8KPiAtwqDCoMKgwqDCoGRlZmVyIHRoZSByZWFkaW5n IHVudGlsIGFmdGVyIGEgY29tcGxldGUgY29tbWFuZCBoYXMgYmVlbiBjb2xsZWN0ZWQuICovCj4g LSEgc3RhdGljIFJFRElSRUNUICpyZWRpcl9zdGFja1sxMF07Cj4gLcKgwqBpbnQgbmVlZF9oZXJl X2RvYzsKPiAtwqDCoAo+IC0tLS0gNDIwLDQyNiAtLS0tCj4gLcKgwqAvKiBWYXJpYWJsZXMgdG8g bWFuYWdlIHRoZSB0YXNrIG9mIHJlYWRpbmcgaGVyZSBkb2N1bWVudHMsIGJlY2F1c2Ugd2UgbmVl ZAo+IHRvCj4gLcKgwqDCoMKgwqBkZWZlciB0aGUgcmVhZGluZyB1bnRpbCBhZnRlciBhIGNvbXBs ZXRlIGNvbW1hbmQgaGFzIGJlZW4gY29sbGVjdGVkLiAqLwo+IC0hICNkZWZpbmUgSEVSRURPQ19N QVggMTYKPiAtIcKgCj4gLSEgc3RhdGljIFJFRElSRUNUICpyZWRpcl9zdGFja1tIRVJFRE9DX01B WF07Cj4gLcKgwqBpbnQgbmVlZF9oZXJlX2RvYzsKPiAtwqDCoAo+IC0qKioqKioqKioqKioqKioK PiAtKioqIDQ1OSw0NjMgKioqKgo+IC3CoMKgwqDCoMKgaW5kZXggaXMgZGVjcmVtZW50ZWQgYWZ0 ZXIgYSBjYXNlLCBzZWxlY3QsIG9yIGZvciBjb21tYW5kIGlzIHBhcnNlZC4gKi8KPiAtwqDCoCNk ZWZpbmUgTUFYX0NBU0VfTkVTVAkxMjgKPiAtISBzdGF0aWMgaW50IHdvcmRfbGluZW5vW01BWF9D QVNFX05FU1RdOwo+IC3CoMKgc3RhdGljIGludCB3b3JkX3RvcCA9IC0xOwo+IC3CoMKgCj4gLS0t LSA0NjQsNDY4IC0tLS0KPiAtwqDCoMKgwqDCoGluZGV4IGlzIGRlY3JlbWVudGVkIGFmdGVyIGEg Y2FzZSwgc2VsZWN0LCBvciBmb3IgY29tbWFuZCBpcyBwYXJzZWQuICovCj4gLcKgwqAjZGVmaW5l IE1BWF9DQVNFX05FU1QJMTI4Cj4gLSEgc3RhdGljIGludCB3b3JkX2xpbmVub1tNQVhfQ0FTRV9O RVNUKzFdOwo+IC3CoMKgc3RhdGljIGludCB3b3JkX3RvcCA9IC0xOwo+IC3CoMKgCj4gLSoqKioq KioqKioqKioqKgo+IC0qKiogNDkzLDQ5NyAqKioqCj4gLcKgwqAjaWYgISBkZWZpbmVkIFlZU1RZ UEUgJiYgISBkZWZpbmVkIFlZU1RZUEVfSVNfREVDTEFSRUQKPiAtwqDCoHR5cGVkZWYgdW5pb24g WVlTVFlQRQo+IC0hICNsaW5lIDMyNCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJz ZS55Igo+IC3CoMKgewo+IC3CoMKgwqDCoFdPUkRfREVTQyAqd29yZDsJCS8qIHRoZSB3b3JkIHRo YXQgd2UgcmVhZC4gKi8KPiAtLS0tIDQ5OCw1MDIgLS0tLQo+IC3CoMKgI2lmICEgZGVmaW5lZCBZ WVNUWVBFICYmICEgZGVmaW5lZCBZWVNUWVBFX0lTX0RFQ0xBUkVECj4gLcKgwqB0eXBlZGVmIHVu aW9uIFlZU1RZUEUKPiAtISAjbGluZSAzMjkgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gv YmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoHsKPiAtwqDCoMKgwqBXT1JEX0RFU0MgKndvcmQ7 CQkvKiB0aGUgd29yZCB0aGF0IHdlIHJlYWQuICovCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiog NTA0LDUwOCAqKioqCj4gLcKgwqB9Cj4gLcKgwqAvKiBMaW5lIDE5MyBvZiB5YWNjLmMuwqDCoCov Cj4gLSEgI2xpbmUgNTA3ICJ5LnRhYi5jIgo+IC3CoMKgCVlZU1RZUEU7Cj4gLcKgwqAjIGRlZmlu ZSB5eXN0eXBlIFlZU1RZUEUgLyogb2Jzb2xlc2NlbnQ7IHdpbGwgYmUgd2l0aGRyYXduICovCj4g LS0tLSA1MDksNTEzIC0tLS0KPiAtwqDCoH0KPiAtwqDCoC8qIExpbmUgMTkzIG9mIHlhY2MuYy7C oMKgKi8KPiAtISAjbGluZSA1MTIgInkudGFiLmMiCj4gLcKgwqAJWVlTVFlQRTsKPiAtwqDCoCMg ZGVmaW5lIHl5c3R5cGUgWVlTVFlQRSAvKiBvYnNvbGVzY2VudDsgd2lsbCBiZSB3aXRoZHJhd24g Ki8KPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA1MTcsNTIxICoqKioKPiAtwqDCoAo+IC3CoMKg LyogTGluZSAyMTYgb2YgeWFjYy5jLsKgwqAqLwo+IC0hICNsaW5lIDUyMCAieS50YWIuYyIKPiAt wqDCoAo+IC3CoMKgI2lmZGVmIHNob3J0Cj4gLS0tLSA1MjIsNTI2IC0tLS0KPiAtwqDCoAo+IC3C oMKgLyogTGluZSAyMTYgb2YgeWFjYy5jLsKgwqAqLwo+IC0hICNsaW5lIDUyNSAieS50YWIuYyIK PiAtwqDCoAo+IC3CoMKgI2lmZGVmIHNob3J0Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogODg3 LDkwNyAqKioqCj4gLcKgwqBzdGF0aWMgY29uc3QgeXl0eXBlX3VpbnQxNiB5eXJsaW5lW10gPQo+ IC3CoMKgewo+IC0hwqDCoMKgwqDCoMKgwqDCoDAswqDCoMKgMzc3LMKgwqDCoDM3NyzCoMKgwqAz ODgswqDCoMKgMzk3LMKgwqDCoDQxMizCoMKgwqA0MjIswqDCoMKgNDI0LMKgwqDCoDQyOCzCoMKg wqA0MzQsCj4gLSHCoMKgwqDCoMKgwqA0NDAswqDCoMKgNDQ2LMKgwqDCoDQ1MizCoMKgwqA0NTgs wqDCoMKgNDY0LMKgwqDCoDQ3MCzCoMKgwqA0NzYswqDCoMKgNDgyLMKgwqDCoDQ4OCzCoMKgwqA0 OTQsCj4gLSHCoMKgwqDCoMKgwqA1MDAswqDCoMKgNTA2LMKgwqDCoDUxMizCoMKgwqA1MTgswqDC oMKgNTI1LMKgwqDCoDUzMizCoMKgwqA1MzkswqDCoMKgNTQ2LMKgwqDCoDU1MyzCoMKgwqA1NjAs Cj4gLSHCoMKgwqDCoMKgwqA1NjYswqDCoMKgNTcyLMKgwqDCoDU3OCzCoMKgwqA1ODQswqDCoMKg NTkwLMKgwqDCoDU5NizCoMKgwqA2MDIswqDCoMKgNjA4LMKgwqDCoDYxNCzCoMKgwqA2MjAsCj4g LSHCoMKgwqDCoMKgwqA2MjYswqDCoMKgNjMyLMKgwqDCoDYzOCzCoMKgwqA2NDQswqDCoMKgNjUw LMKgwqDCoDY1NizCoMKgwqA2NjIswqDCoMKgNjY4LMKgwqDCoDY3NCzCoMKgwqA2ODAsCj4gLSHC oMKgwqDCoMKgwqA2ODYswqDCoMKgNjkyLMKgwqDCoDcwMCzCoMKgwqA3MDIswqDCoMKgNzA0LMKg wqDCoDcwOCzCoMKgwqA3MTIswqDCoMKgNzIzLMKgwqDCoDcyNSzCoMKgwqA3MjksCj4gLSHCoMKg wqDCoMKgwqA3MzEswqDCoMKgNzMzLMKgwqDCoDc0OSzCoMKgwqA3NTEswqDCoMKgNzU1LMKgwqDC oDc1NyzCoMKgwqA3NTkswqDCoMKgNzYxLMKgwqDCoDc2MyzCoMKgwqA3NjUsCj4gLSHCoMKgwqDC oMKgwqA3NjcswqDCoMKgNzY5LMKgwqDCoDc3MSzCoMKgwqA3NzMswqDCoMKgNzc1LMKgwqDCoDc3 OSzCoMKgwqA3ODQswqDCoMKgNzg5LMKgwqDCoDc5NCzCoMKgwqA3OTksCj4gLSHCoMKgwqDCoMKg wqA4MDQswqDCoMKgODA5LMKgwqDCoDgxNCzCoMKgwqA4MjEswqDCoMKgODI2LMKgwqDCoDgzMSzC oMKgwqA4MzYswqDCoMKgODQzLMKgwqDCoDg0OCzCoMKgwqA4NTMsCj4gLSHCoMKgwqDCoMKgwqA4 NTgswqDCoMKgODYzLMKgwqDCoDg2OCzCoMKgwqA4NzUswqDCoMKgODgwLMKgwqDCoDg4NSzCoMKg wqA4OTIswqDCoMKgODk1LMKgwqDCoDg5OCzCoMKgwqA5MDIsCj4gLSHCoMKgwqDCoMKgwqA5MDQs wqDCoMKgOTM1LMKgwqDCoDk0MizCoMKgwqA5NDcswqDCoMKgOTY0LMKgwqDCoDk2OSzCoMKgwqA5 ODYswqDCoMKgOTkzLMKgwqDCoDk5NSzCoMKgwqA5OTcsCj4gLSHCoMKgwqDCoMKgMTAwMizCoMKg MTAwNizCoMKgMTAxMCzCoMKgMTAxNCzCoMKgMTAxNizCoMKgMTAxOCzCoMKgMTAyMizCoMKgMTAy MyzCoMKgMTAyNyzCoMKgMTAyOSwKPiAtIcKgwqDCoMKgwqAxMDMxLMKgwqAxMDMzLMKgwqAxMDM3 LMKgwqAxMDM5LMKgwqAxMDQxLMKgwqAxMDQzLMKgwqAxMDQ1LMKgwqAxMDQ3LMKgwqAxMDUxLMKg wqAxMDUzLAo+IC0hwqDCoMKgwqDCoDEwNjIswqDCoDEwNzAswqDCoDEwNzEswqDCoDEwNzcswqDC oDEwNzgswqDCoDEwODUswqDCoDEwODkswqDCoDEwOTEswqDCoDEwOTMswqDCoDExMDAsCj4gLSHC oMKgwqDCoMKgMTEwMizCoMKgMTEwNCzCoMKgMTEwOCzCoMKgMTEwOSzCoMKgMTExMizCoMKgMTEx NCzCoMKgMTExNizCoMKgMTEyMCzCoMKgMTEyMSzCoMKgMTEzMCwKPiAtIcKgwqDCoMKgwqAxMTQz LMKgwqAxMTU5LMKgwqAxMTc0LMKgwqAxMTc2LMKgwqAxMTc4LMKgwqAxMTg1LMKgwqAxMTg4LMKg wqAxMTkyLMKgwqAxMTk0LMKgwqAxMjAwLAo+IC0hwqDCoMKgwqDCoDEyMDYswqDCoDEyMjMswqDC oDEyNDMswqDCoDEyNDUswqDCoDEyNjgswqDCoDEyNzIswqDCoDEyNzQswqDCoDEyNzYKPiAtwqDC oH07Cj4gLcKgwqAjZW5kaWYKPiAtLS0tIDg5Miw5MTIgLS0tLQo+IC3CoMKgc3RhdGljIGNvbnN0 IHl5dHlwZV91aW50MTYgeXlybGluZVtdID0KPiAtwqDCoHsKPiAtIcKgwqDCoMKgwqDCoMKgwqAw LMKgwqDCoDM4MizCoMKgwqAzODIswqDCoMKgMzkzLMKgwqDCoDQwMizCoMKgwqA0MTcswqDCoMKg NDI3LMKgwqDCoDQyOSzCoMKgwqA0MzMswqDCoMKgNDM5LAo+IC0hwqDCoMKgwqDCoMKgNDQ1LMKg wqDCoDQ1MSzCoMKgwqA0NTcswqDCoMKgNDYzLMKgwqDCoDQ2OSzCoMKgwqA0NzUswqDCoMKgNDgx LMKgwqDCoDQ4NyzCoMKgwqA0OTMswqDCoMKgNDk5LAo+IC0hwqDCoMKgwqDCoMKgNTA1LMKgwqDC oDUxMSzCoMKgwqA1MTcswqDCoMKgNTIzLMKgwqDCoDUzMCzCoMKgwqA1MzcswqDCoMKgNTQ0LMKg wqDCoDU1MSzCoMKgwqA1NTgswqDCoMKgNTY1LAo+IC0hwqDCoMKgwqDCoMKgNTcxLMKgwqDCoDU3 NyzCoMKgwqA1ODMswqDCoMKgNTg5LMKgwqDCoDU5NSzCoMKgwqA2MDEswqDCoMKgNjA3LMKgwqDC oDYxMyzCoMKgwqA2MTkswqDCoMKgNjI1LAo+IC0hwqDCoMKgwqDCoMKgNjMxLMKgwqDCoDYzNyzC oMKgwqA2NDMswqDCoMKgNjQ5LMKgwqDCoDY1NSzCoMKgwqA2NjEswqDCoMKgNjY3LMKgwqDCoDY3 MyzCoMKgwqA2NzkswqDCoMKgNjg1LAo+IC0hwqDCoMKgwqDCoMKgNjkxLMKgwqDCoDY5NyzCoMKg wqA3MDUswqDCoMKgNzA3LMKgwqDCoDcwOSzCoMKgwqA3MTMswqDCoMKgNzE3LMKgwqDCoDcyOCzC oMKgwqA3MzAswqDCoMKgNzM0LAo+IC0hwqDCoMKgwqDCoMKgNzM2LMKgwqDCoDczOCzCoMKgwqA3 NTQswqDCoMKgNzU2LMKgwqDCoDc2MCzCoMKgwqA3NjIswqDCoMKgNzY0LMKgwqDCoDc2NizCoMKg wqA3NjgswqDCoMKgNzcwLAo+IC0hwqDCoMKgwqDCoMKgNzcyLMKgwqDCoDc3NCzCoMKgwqA3NzYs wqDCoMKgNzc4LMKgwqDCoDc4MCzCoMKgwqA3ODQswqDCoMKgNzg5LMKgwqDCoDc5NCzCoMKgwqA3 OTkswqDCoMKgODA0LAo+IC0hwqDCoMKgwqDCoMKgODA5LMKgwqDCoDgxNCzCoMKgwqA4MTkswqDC oMKgODI2LMKgwqDCoDgzMSzCoMKgwqA4MzYswqDCoMKgODQxLMKgwqDCoDg0OCzCoMKgwqA4NTMs wqDCoMKgODU4LAo+IC0hwqDCoMKgwqDCoMKgODYzLMKgwqDCoDg2OCzCoMKgwqA4NzMswqDCoMKg ODgwLMKgwqDCoDg4NSzCoMKgwqA4OTAswqDCoMKgODk3LMKgwqDCoDkwMCzCoMKgwqA5MDMswqDC oMKgOTA3LAo+IC0hwqDCoMKgwqDCoMKgOTA5LMKgwqDCoDk0MCzCoMKgwqA5NDcswqDCoMKgOTUy LMKgwqDCoDk2OSzCoMKgwqA5NzQswqDCoMKgOTkxLMKgwqDCoDk5OCzCoMKgMTAwMCzCoMKgMTAw MiwKPiAtIcKgwqDCoMKgwqAxMDA3LMKgwqAxMDExLMKgwqAxMDE1LMKgwqAxMDE5LMKgwqAxMDIx LMKgwqAxMDIzLMKgwqAxMDI3LMKgwqAxMDI4LMKgwqAxMDMyLMKgwqAxMDM0LAo+IC0hwqDCoMKg wqDCoDEwMzYswqDCoDEwMzgswqDCoDEwNDIswqDCoDEwNDQswqDCoDEwNDYswqDCoDEwNDgswqDC oDEwNTAswqDCoDEwNTIswqDCoDEwNTYswqDCoDEwNTgsCj4gLSHCoMKgwqDCoMKgMTA2NyzCoMKg MTA3NSzCoMKgMTA3NizCoMKgMTA4MizCoMKgMTA4MyzCoMKgMTA5MCzCoMKgMTA5NCzCoMKgMTA5 NizCoMKgMTA5OCzCoMKgMTEwNSwKPiAtIcKgwqDCoMKgwqAxMTA3LMKgwqAxMTA5LMKgwqAxMTEz LMKgwqAxMTE0LMKgwqAxMTE3LMKgwqAxMTE5LMKgwqAxMTIxLMKgwqAxMTI1LMKgwqAxMTI2LMKg wqAxMTM1LAo+IC0hwqDCoMKgwqDCoDExNDgswqDCoDExNjQswqDCoDExNzkswqDCoDExODEswqDC oDExODMswqDCoDExOTAswqDCoDExOTMswqDCoDExOTcswqDCoDExOTkswqDCoDEyMDUsCj4gLSHC oMKgwqDCoMKgMTIxMSzCoMKgMTIyOCzCoMKgMTI0OCzCoMKgMTI1MCzCoMKgMTI3MyzCoMKgMTI3 NyzCoMKgMTI3OSzCoMKgMTI4MQo+IC3CoMKgfTsKPiAtwqDCoCNlbmRpZgo+IC0qKioqKioqKioq KioqKioKPiAtKioqIDIwOTQsMjA5OCAqKioqCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqBjYXNlIDI6Cj4gLSEgI2xpbmUgMzc4ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jh c2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAvKiBDYXNlIG9m IHJlZ3VsYXIgY29tbWFuZC7CoMKgRGlzY2FyZCB0aGUgZXJyb3IKPiAtLS0tIDIwOTksMjEwMyAt LS0tCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXNlIDI6Cj4gLSEg I2xpbmUgMzgzICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAvKiBDYXNlIG9mIHJlZ3VsYXIgY29t bWFuZC7CoMKgRGlzY2FyZCB0aGUgZXJyb3IKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyMTA4 LDIxMTIgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzOgo+IC0hICNsaW5lIDM4OSAiL3Vz ci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKg wqAJCQnCoMKgLyogQ2FzZSBvZiByZWd1bGFyIGNvbW1hbmQsIGJ1dCBub3QgYSB2ZXJ5Cj4gLS0t LSAyMTEzLDIxMTcgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzOgo+IC0hICNsaW5lIDM5 NCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgLyogQ2FzZSBvZiByZWd1bGFyIGNvbW1hbmQsIGJ1 dCBub3QgYSB2ZXJ5Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjEyMCwyMTI0ICoqKioKPiAt wqDCoAo+IC3CoMKgwqDCoGNhc2UgNDoKPiAtISAjbGluZSAzOTggIi91c3IvaG9tZXMvY2hldC9z cmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoC8qIEVy cm9yIGR1cmluZyBwYXJzaW5nLsKgwqBSZXR1cm4gTlVMTCBjb21tYW5kLiAqLwo+IC0tLS0gMjEy NSwyMTI5IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNDoKPiAtISAjbGluZSA0MDMgIi91 c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKg wqDCoMKgewo+IC3CoMKgCQkJwqDCoC8qIEVycm9yIGR1cmluZyBwYXJzaW5nLsKgwqBSZXR1cm4g TlVMTCBjb21tYW5kLiAqLwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIxMzgsMjE0MiAqKioq Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDU6Cj4gLSEgI2xpbmUgNDEzICIvdXNyL2hvbWVzL2No ZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAv KiBDYXNlIG9mIEVPRiBzZWVuIGJ5IGl0c2VsZi7CoMKgRG8gaWdub3JlZW9mIG9yCj4gLS0tLSAy MTQzLDIxNDcgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1Ogo+IC0hICNsaW5lIDQxOCAi L3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgLyogQ2FzZSBvZiBFT0Ygc2VlbiBieSBpdHNlbGYuwqDC oERvIGlnbm9yZWVvZiBvcgo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIxNDksMjE2MyAqKioq Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY6Cj4gLSEgI2xpbmUgNDIzICIvdXNyL2hvbWVzL2No ZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLndvcmRfbGlz dCkgPSBtYWtlX3dvcmRfbGlzdCAoKHl5dnNwWygxKSAtICgxKV0ud29yZCksCj4gKFdPUkRfTElT VCAqKU5VTEwpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSA3Ogo+IC0hICNsaW5lIDQyNSAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55 Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC53b3JkX2xpc3QpID0gbWFrZV93b3JkX2xpc3QgKCh5 eXZzcFsoMikgLSAoMildLndvcmQpLAo+ICh5eXZzcFsoMSkgLSAoMildLndvcmRfbGlzdCkpOyB9 Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4Ogo+IC0hICNs aW5lIDQyOSAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDC oMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAxOwo+IC0tLS0gMjE1NCwyMTY4IC0t LS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNjoKPiAtISAjbGluZSA0MjggIi91c3Ivc3JjL2xv Y2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAo eXl2YWwud29yZF9saXN0KSA9IG1ha2Vfd29yZF9saXN0ICgoeXl2c3BbKDEpIC0gKDEpXS53b3Jk KSwKPiAoV09SRF9MSVNUICopTlVMTCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDc6Cj4gLSEgI2xpbmUgNDMwICIvdXNyL3NyYy9sb2NhbC9jaGV0L3Ny Yy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLndvcmRf bGlzdCkgPSBtYWtlX3dvcmRfbGlzdCAoKHl5dnNwWygyKSAtICgyKV0ud29yZCksCj4gKHl5dnNw WygxKSAtICgyKV0ud29yZF9saXN0KSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDg6Cj4gLSEgI2xpbmUgNDM0ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3Ny Yy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKg wqBzb3VyY2UuZGVzdCA9IDE7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjE2OCwyMTcyICoq KioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgOToKPiAtISAjbGluZSA0MzUgIi91c3IvaG9tZXMv Y2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDC oHNvdXJjZS5kZXN0ID0gMDsKPiAtLS0tIDIxNzMsMjE3NyAtLS0tCj4gLcKgwqAKPiAtwqDCoMKg wqBjYXNlIDk6Cj4gLSEgI2xpbmUgNDQwICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jh c2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2Uu ZGVzdCA9IDA7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjE3NywyMTgxICoqKioKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMTA6Cj4gLSEgI2xpbmUgNDQxICIvdXNyL2hvbWVzL2NoZXQvc3Jj L2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2Uu ZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLS0tLSAyMTgyLDIxODYgLS0tLQo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDoKPiAtISAjbGluZSA0NDYgIi91c3Ivc3JjL2xvY2Fs L2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3C oMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVyKTsKPiAtKioq KioqKioqKioqKioqCj4gLSoqKiAyMTg2LDIxOTAgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSAxMToKPiAtISAjbGluZSA0NDcgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2Uu eSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygx KSAtICgzKV0ubnVtYmVyKTsKPiAtLS0tIDIxOTEsMjE5NSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKg wqBjYXNlIDExOgo+IC0hICNsaW5lIDQ1MiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9i YXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNl LmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0qKioqKioqKioqKioqKioKPiAt KioqIDIxOTUsMjE5OSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEyOgo+IC0hICNsaW5l IDQ1MyAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29y ZCk7Cj4gLS0tLSAyMjAwLDIyMDQgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMjoKPiAt ISAjbGluZSA0NTggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5 eXZzcFsoMSkgLSAoMyldLndvcmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIyMDQsMjIw OCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEzOgo+IC0hICNsaW5lIDQ1OSAiL3Vzci9o b21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJ CQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLS0tLSAy MjA5LDIyMTMgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMzoKPiAtISAjbGluZSA0NjQg Ii91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDC oMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkgLSAo MyldLndvcmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIyMTMsMjIxNyAqKioqCj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDE0Ogo+IC0hICNsaW5lIDQ2NSAiL3Vzci9ob21lcy9jaGV0L3Ny Yy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNl LmRlc3QgPSAxOwo+IC0tLS0gMjIxOCwyMjIyIC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug MTQ6Cj4gLSEgI2xpbmUgNDcwICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4z LjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9 IDE7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjIyMiwyMjI2ICoqKioKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMTU6Cj4gLSEgI2xpbmUgNDcxICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gv c3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9 ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLS0tLSAyMjI3LDIyMzEgLS0tLQo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxNToKPiAtISAjbGluZSA0NzYgIi91c3Ivc3JjL2xvY2FsL2NoZXQv c3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJ wqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVyKTsKPiAtKioqKioqKioq KioqKioqCj4gLSoqKiAyMjMxLDIyMzUgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNjoK PiAtISAjbGluZSA0NzcgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkg LSAoMyldLndvcmQpOwo+IC0tLS0gMjIzNiwyMjQwIC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgMTY6Cj4gLSEgI2xpbmUgNDgyICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gt NC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmls ZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoq KiAyMjQwLDIyNDQgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNzoKPiAtISAjbGluZSA0 ODMgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKg ewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMTsKPiAtLS0tIDIyNDUsMjI0OSAtLS0tCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE3Ogo+IC0hICNsaW5lIDQ4OCAiL3Vzci9zcmMvbG9jYWwv Y2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKg wqAJCQnCoMKgc291cmNlLmRlc3QgPSAxOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIyNDks MjI1MyAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE4Ogo+IC0hICNsaW5lIDQ4OSAiL3Vz ci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKg wqAJCQnCoMKgc291cmNlLmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0tLS0g MjI1NCwyMjU4IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTg6Cj4gLSEgI2xpbmUgNDk0 ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyld Lm51bWJlcik7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjI1OCwyMjYyICoqKioKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMTk6Cj4gLSEgI2xpbmUgNDk1ICIvdXNyL2hvbWVzL2NoZXQvc3Jj L2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2Uu ZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtLS0tIDIyNjMsMjI2NyAtLS0t Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE5Ogo+IC0hICNsaW5lIDUwMCAiL3Vzci9zcmMvbG9j YWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4g LcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4g LSoqKioqKioqKioqKioqKgo+IC0qKiogMjI2NywyMjcxICoqKioKPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgMjA6Cj4gLSEgI2xpbmUgNTAxICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3Bh cnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDA7Cj4g LS0tLSAyMjcyLDIyNzYgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAyMDoKPiAtISAjbGlu ZSA1MDYgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIK PiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMDsKPiAtKioqKioq KioqKioqKioqCj4gLSoqKiAyMjc2LDIyODAgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAy MToKPiAtISAjbGluZSA1MDcgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIK PiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAt ICgzKV0ubnVtYmVyKTsKPiAtLS0tIDIyODEsMjI4NSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDIxOgo+IC0hICNsaW5lIDUxMiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNo LTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRl c3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioq IDIyODUsMjI4OSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDIyOgo+IC0hICNsaW5lIDUx MyAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7 Cj4gLS0tLSAyMjkwLDIyOTQgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAyMjoKPiAtISAj bGluZSA1MTggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2Uu eSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZz cFsoMSkgLSAoMyldLndvcmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIyOTQsMjM1OCAq KioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDIzOgo+IC0hICNsaW5lIDUxOSAiL3Vzci9ob21l cy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgc291cmNlLmRlc3QgPSAwOwo+IC3CoMKgCQkJwqDCoHJlZGlyLmZpbGVuYW1lID0gKHl5dnNw WygyKSAtICgyKV0ud29yZCk7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLnJlZGlyZWN0KSA9IG1ha2Vf cmVkaXJlY3Rpb24gKHNvdXJjZSwKPiByX3JlYWRpbmdfdW50aWwsIHJlZGlyLCAwKTsKPiAtIcKg CQkJwqDCoHJlZGlyX3N0YWNrW25lZWRfaGVyZV9kb2MrK10gPSAoeXl2YWwucmVkaXJlY3QpOwo+ IC3CoMKgCQkJfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug MjQ6Cj4gLSEgI2xpbmUgNTI2ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkg LSAoMyldLm51bWJlcik7Cj4gLcKgwqAJCQnCoMKgcmVkaXIuZmlsZW5hbWUgPSAoeXl2c3BbKDMp IC0gKDMpXS53b3JkKTsKPiAtwqDCoAkJCcKgwqAoeXl2YWwucmVkaXJlY3QpID0gbWFrZV9yZWRp cmVjdGlvbiAoc291cmNlLAo+IHJfcmVhZGluZ191bnRpbCwgcmVkaXIsIDApOwo+IC0hwqAJCQnC oMKgcmVkaXJfc3RhY2tbbmVlZF9oZXJlX2RvYysrXSA9ICh5eXZhbC5yZWRpcmVjdCk7Cj4gLcKg wqAJCQl9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAyNToK PiAtISAjbGluZSA1MzMgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkg LSAoMyldLndvcmQpOwo+IC3CoMKgCQkJwqDCoHJlZGlyLmZpbGVuYW1lID0gKHl5dnNwWygzKSAt ICgzKV0ud29yZCk7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLnJlZGlyZWN0KSA9IG1ha2VfcmVkaXJl Y3Rpb24gKHNvdXJjZSwKPiByX3JlYWRpbmdfdW50aWwsIHJlZGlyLCBSRURJUl9WQVJBU1NJR04p Owo+IC0hwqAJCQnCoMKgcmVkaXJfc3RhY2tbbmVlZF9oZXJlX2RvYysrXSA9ICh5eXZhbC5yZWRp cmVjdCk7Cj4gLcKgwqAJCQl9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSAyNjoKPiAtISAjbGluZSA1NDAgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMv cGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMDsK PiAtwqDCoAkJCcKgwqByZWRpci5maWxlbmFtZSA9ICh5eXZzcFsoMikgLSAoMildLndvcmQpOwo+ IC3CoMKgCQkJwqDCoCh5eXZhbC5yZWRpcmVjdCkgPSBtYWtlX3JlZGlyZWN0aW9uIChzb3VyY2Us Cj4gcl9kZWJsYW5rX3JlYWRpbmdfdW50aWwsIHJlZGlyLCAwKTsKPiAtIcKgCQkJwqDCoHJlZGly X3N0YWNrW25lZWRfaGVyZV9kb2MrK10gPSAoeXl2YWwucmVkaXJlY3QpOwo+IC3CoMKgCQkJfQo+ IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMjc6Cj4gLSEgI2xp bmUgNTQ3ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKg wqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJl cik7Cj4gLcKgwqAJCQnCoMKgcmVkaXIuZmlsZW5hbWUgPSAoeXl2c3BbKDMpIC0gKDMpXS53b3Jk KTsKPiAtwqDCoAkJCcKgwqAoeXl2YWwucmVkaXJlY3QpID0gbWFrZV9yZWRpcmVjdGlvbiAoc291 cmNlLAo+IHJfZGVibGFua19yZWFkaW5nX3VudGlsLCByZWRpciwgMCk7Cj4gLSHCoAkJCcKgwqBy ZWRpcl9zdGFja1tuZWVkX2hlcmVfZG9jKytdID0gKHl5dmFsLnJlZGlyZWN0KTsKPiAtwqDCoAkJ CX0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDI4Ogo+IC0h ICNsaW5lIDU1NCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgz KV0ud29yZCk7Cj4gLcKgwqAJCQnCoMKgcmVkaXIuZmlsZW5hbWUgPSAoeXl2c3BbKDMpIC0gKDMp XS53b3JkKTsKPiAtwqDCoAkJCcKgwqAoeXl2YWwucmVkaXJlY3QpID0gbWFrZV9yZWRpcmVjdGlv biAoc291cmNlLAo+IHJfZGVibGFua19yZWFkaW5nX3VudGlsLCByZWRpciwgUkVESVJfVkFSQVNT SUdOKTsKPiAtIcKgCQkJwqDCoHJlZGlyX3N0YWNrW25lZWRfaGVyZV9kb2MrK10gPSAoeXl2YWwu cmVkaXJlY3QpOwo+IC3CoMKgCQkJfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMjk6Cj4gLSEgI2xpbmUgNTYxICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gv c3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9 IDA7Cj4gLS0tLSAyMjk5LDIzNjMgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAyMzoKPiAt ISAjbGluZSA1MjQgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMDsKPiAt wqDCoAkJCcKgwqByZWRpci5maWxlbmFtZSA9ICh5eXZzcFsoMikgLSAoMildLndvcmQpOwo+IC3C oMKgCQkJwqDCoCh5eXZhbC5yZWRpcmVjdCkgPSBtYWtlX3JlZGlyZWN0aW9uIChzb3VyY2UsCj4g cl9yZWFkaW5nX3VudGlsLCByZWRpciwgMCk7Cj4gLSHCoAkJCcKgwqBwdXNoX2hlcmVkb2MgKCh5 eXZhbC5yZWRpcmVjdCkpOwo+IC3CoMKgCQkJfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMjQ6Cj4gLSEgI2xpbmUgNTMxICIvdXNyL3NyYy9sb2NhbC9jaGV0 L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJ CcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLcKgwqAJCQnC oMKgcmVkaXIuZmlsZW5hbWUgPSAoeXl2c3BbKDMpIC0gKDMpXS53b3JkKTsKPiAtwqDCoAkJCcKg wqAoeXl2YWwucmVkaXJlY3QpID0gbWFrZV9yZWRpcmVjdGlvbiAoc291cmNlLAo+IHJfcmVhZGlu Z191bnRpbCwgcmVkaXIsIDApOwo+IC0hwqAJCQnCoMKgcHVzaF9oZXJlZG9jICgoeXl2YWwucmVk aXJlY3QpKTsKPiAtwqDCoAkJCX0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDI1Ogo+IC0hICNsaW5lIDUzOCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFz aC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291 cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLcKgwqAJCQnCoMKgcmVk aXIuZmlsZW5hbWUgPSAoeXl2c3BbKDMpIC0gKDMpXS53b3JkKTsKPiAtwqDCoAkJCcKgwqAoeXl2 YWwucmVkaXJlY3QpID0gbWFrZV9yZWRpcmVjdGlvbiAoc291cmNlLAo+IHJfcmVhZGluZ191bnRp bCwgcmVkaXIsIFJFRElSX1ZBUkFTU0lHTik7Cj4gLSHCoAkJCcKgwqBwdXNoX2hlcmVkb2MgKCh5 eXZhbC5yZWRpcmVjdCkpOwo+IC3CoMKgCQkJfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMjY6Cj4gLSEgI2xpbmUgNTQ1ICIvdXNyL3NyYy9sb2NhbC9jaGV0 L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJ CcKgwqBzb3VyY2UuZGVzdCA9IDA7Cj4gLcKgwqAJCQnCoMKgcmVkaXIuZmlsZW5hbWUgPSAoeXl2 c3BbKDIpIC0gKDIpXS53b3JkKTsKPiAtwqDCoAkJCcKgwqAoeXl2YWwucmVkaXJlY3QpID0gbWFr ZV9yZWRpcmVjdGlvbiAoc291cmNlLAo+IHJfZGVibGFua19yZWFkaW5nX3VudGlsLCByZWRpciwg MCk7Cj4gLSHCoAkJCcKgwqBwdXNoX2hlcmVkb2MgKCh5eXZhbC5yZWRpcmVjdCkpOwo+IC3CoMKg CQkJfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMjc6Cj4g LSEgI2xpbmUgNTUyICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3Bh cnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZz cFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLcKgwqAJCQnCoMKgcmVkaXIuZmlsZW5hbWUgPSAoeXl2 c3BbKDMpIC0gKDMpXS53b3JkKTsKPiAtwqDCoAkJCcKgwqAoeXl2YWwucmVkaXJlY3QpID0gbWFr ZV9yZWRpcmVjdGlvbiAoc291cmNlLAo+IHJfZGVibGFua19yZWFkaW5nX3VudGlsLCByZWRpciwg MCk7Cj4gLSHCoAkJCcKgwqBwdXNoX2hlcmVkb2MgKCh5eXZhbC5yZWRpcmVjdCkpOwo+IC3CoMKg CQkJfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMjg6Cj4g LSEgI2xpbmUgNTU5ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3Bh cnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmlsZW5hbWUgPSAo eXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtwqDCoAkJCcKgwqByZWRpci5maWxlbmFtZSA9ICh5 eXZzcFsoMykgLSAoMyldLndvcmQpOwo+IC3CoMKgCQkJwqDCoCh5eXZhbC5yZWRpcmVjdCkgPSBt YWtlX3JlZGlyZWN0aW9uIChzb3VyY2UsCj4gcl9kZWJsYW5rX3JlYWRpbmdfdW50aWwsIHJlZGly LCBSRURJUl9WQVJBU1NJR04pOwo+IC0hwqAJCQnCoMKgcHVzaF9oZXJlZG9jICgoeXl2YWwucmVk aXJlY3QpKTsKPiAtwqDCoAkJCX0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDI5Ogo+IC0hICNsaW5lIDU2NiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFz aC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291 cmNlLmRlc3QgPSAwOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIzNjMsMjM2NyAqKioqCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDMwOgo+IC0hICNsaW5lIDU2NyAiL3Vzci9ob21lcy9jaGV0 L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291 cmNlLmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0tLS0gMjM2OCwyMzcyIC0t LS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMzA6Cj4gLSEgI2xpbmUgNTcyICIvdXNyL3NyYy9s b2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4g LSoqKioqKioqKioqKioqKgo+IC0qKiogMjM3MiwyMzc2ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgMzE6Cj4gLSEgI2xpbmUgNTczICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3Bh cnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmlsZW5hbWUgPSAo eXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtLS0tIDIzNzcsMjM4MSAtLS0tCj4gLcKgwqAKPiAt wqDCoMKgwqBjYXNlIDMxOgo+IC0hICNsaW5lIDU3OCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMv YmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKg c291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLSoqKioqKioqKioq KioqKgo+IC0qKiogMjM4MSwyMzg1ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMzI6Cj4g LSEgI2xpbmUgNTc5ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDA7Cj4gLS0tLSAyMzg2LDIz OTAgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzMjoKPiAtISAjbGluZSA1ODQgIi91c3Iv c3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMDsKPiAtKioqKioqKioqKioqKioqCj4g LSoqKiAyMzkwLDIzOTQgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzMzoKPiAtISAjbGlu ZSA1ODUgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVy KTsKPiAtLS0tIDIzOTUsMjM5OSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDMzOgo+IC0h ICNsaW5lIDU5MCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAoeXl2c3Bb KDEpIC0gKDMpXS5udW1iZXIpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIzOTksMjQwMyAq KioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDM0Ogo+IC0hICNsaW5lIDU5MSAiL3Vzci9ob21l cy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLS0tLSAyNDA0 LDI0MDggLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzNDoKPiAtISAjbGluZSA1OTYgIi91 c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKg wqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkgLSAoMyld LndvcmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI0MDgsMjQxMiAqKioqCj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDM1Ogo+IC0hICNsaW5lIDU5NyAiL3Vzci9ob21lcy9jaGV0L3NyYy9i YXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRl c3QgPSAxOwo+IC0tLS0gMjQxMywyNDE3IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMzU6 Cj4gLSEgI2xpbmUgNjAyICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4 L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDE7 Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjQxNywyNDIxICoqKioKPiAtwqDCoAo+IC3CoMKg wqDCoGNhc2UgMzY6Cj4gLSEgI2xpbmUgNjAzICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3Jj L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5 eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLS0tLSAyNDIyLDI0MjYgLS0tLQo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSAzNjoKPiAtISAjbGluZSA2MDggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3Jj L2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDC oHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVyKTsKPiAtKioqKioqKioqKioq KioqCj4gLSoqKiAyNDI2LDI0MzAgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzNzoKPiAt ISAjbGluZSA2MDkgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDC oMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkgLSAo MyldLndvcmQpOwo+IC0tLS0gMjQzMSwyNDM1IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug Mzc6Cj4gLSEgI2xpbmUgNjE0ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4z LjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmlsZW5h bWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAy NDM1LDI0MzkgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzODoKPiAtISAjbGluZSA2MTUg Ii91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMDsKPiAtLS0tIDI0NDAsMjQ0NCAtLS0tCj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDM4Ogo+IC0hICNsaW5lIDYyMCAiL3Vzci9zcmMvbG9jYWwvY2hl dC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJ CQnCoMKgc291cmNlLmRlc3QgPSAwOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI0NDQsMjQ0 OCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDM5Ogo+IC0hICNsaW5lIDYyMSAiL3Vzci9o b21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJ CQnCoMKgc291cmNlLmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0tLS0gMjQ0 OSwyNDUzIC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMzk6Cj4gLSEgI2xpbmUgNjI2ICIv dXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51 bWJlcik7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjQ1MywyNDU3ICoqKioKPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgNDA6Cj4gLSEgI2xpbmUgNjI3ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jh c2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmls ZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtLS0tIDI0NTgsMjQ2MiAtLS0tCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQwOgo+IC0hICNsaW5lIDYzMiAiL3Vzci9zcmMvbG9jYWwv Y2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKg wqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLSoq KioqKioqKioqKioqKgo+IC0qKiogMjQ2MiwyNDY2ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgNDE6Cj4gLSEgI2xpbmUgNjMzICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDE7Cj4gLS0t LSAyNDY3LDI0NzEgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0MToKPiAtISAjbGluZSA2 MzggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMTsKPiAtKioqKioqKioq KioqKioqCj4gLSoqKiAyNDcxLDI0NzUgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0MjoK PiAtISAjbGluZSA2MzkgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgz KV0ubnVtYmVyKTsKPiAtLS0tIDI0NzYsMjQ4MCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDQyOgo+IC0hICNsaW5lIDY0NCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQu My4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3Qg PSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI0 ODAsMjQ4NCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQzOgo+IC0hICNsaW5lIDY0NSAi L3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4g LcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4g LS0tLSAyNDg1LDI0ODkgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0MzoKPiAtISAjbGlu ZSA2NTAgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIK PiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFso MSkgLSAoMyldLndvcmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI0ODksMjQ5MyAqKioq Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQ0Ogo+IC0hICNsaW5lIDY1MSAiL3Vzci9ob21lcy9j aGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKg c291cmNlLmRlc3QgPSAxOwo+IC0tLS0gMjQ5NCwyNDk4IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgNDQ6Cj4gLSEgI2xpbmUgNjU2ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jh c2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2Uu ZGVzdCA9IDE7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjQ5OCwyNTAyICoqKioKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgNDU6Cj4gLSEgI2xpbmUgNjU3ICIvdXNyL2hvbWVzL2NoZXQvc3Jj L2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2Uu ZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLS0tLSAyNTAzLDI1MDcgLS0tLQo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0NToKPiAtISAjbGluZSA2NjIgIi91c3Ivc3JjL2xvY2Fs L2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3C oMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVyKTsKPiAtKioq KioqKioqKioqKioqCj4gLSoqKiAyNTA3LDI1MTEgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSA0NjoKPiAtISAjbGluZSA2NjMgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2Uu eSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZz cFsoMSkgLSAoMyldLndvcmQpOwo+IC0tLS0gMjUxMiwyNTE2IC0tLS0KPiAtwqDCoAo+IC3CoMKg wqDCoGNhc2UgNDY6Cj4gLSEgI2xpbmUgNjY4ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNo L2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3Vy Y2UuZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtKioqKioqKioqKioqKioq Cj4gLSoqKiAyNTE2LDI1MjAgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0NzoKPiAtISAj bGluZSA2NjkgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKg wqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMDsKPiAtLS0tIDI1MjEsMjUyNSAt LS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQ3Ogo+IC0hICNsaW5lIDY3NCAiL3Vzci9zcmMv bG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAwOwo+IC0qKioqKioqKioqKioqKioKPiAtKioq IDI1MjUsMjUyOSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQ4Ogo+IC0hICNsaW5lIDY3 NSAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+ IC0tLS0gMjUzMCwyNTM0IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNDg6Cj4gLSEgI2xp bmUgNjgwICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkg LSAoMyldLm51bWJlcik7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjUzNCwyNTM4ICoqKioK PiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNDk6Cj4gLSEgI2xpbmUgNjgxICIvdXNyL2hvbWVzL2No ZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBz b3VyY2UuZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtLS0tIDI1MzksMjU0 MyAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQ5Ogo+IC0hICNsaW5lIDY4NiAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29y ZCk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjU0MywyNTQ3ICoqKioKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgNTA6Cj4gLSEgI2xpbmUgNjg3ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gv c3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9 IDE7Cj4gLS0tLSAyNTQ4LDI1NTIgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1MDoKPiAt ISAjbGluZSA2OTIgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMTsKPiAt KioqKioqKioqKioqKioqCj4gLSoqKiAyNTUyLDI1NTYgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSA1MToKPiAtISAjbGluZSA2OTMgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMTsKPiAt LS0tIDI1NTcsMjU2MSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDUxOgo+IC0hICNsaW5l IDY5OCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAxOwo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDI1NjEsMjU4MCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDUy Ogo+IC0hICNsaW5lIDcwMSAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5lbGVtZW50KS53b3JkID0gKHl5dnNwWygxKSAtICgxKV0u d29yZCk7Cj4gKHl5dmFsLmVsZW1lbnQpLnJlZGlyZWN0ID0gMDsgfQo+IC3CoMKgwqDCoMKgwqBi cmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNTM6Cj4gLSEgI2xpbmUgNzAzICIvdXNyL2hv bWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmVs ZW1lbnQpLndvcmQgPSAoeXl2c3BbKDEpIC0gKDEpXS53b3JkKTsKPiAoeXl2YWwuZWxlbWVudCku cmVkaXJlY3QgPSAwOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSA1NDoKPiAtISAjbGluZSA3MDUgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuZWxlbWVudCkucmVkaXJlY3QgPSAoeXl2c3Bb KDEpIC0gKDEpXS5yZWRpcmVjdCk7Cj4gKHl5dmFsLmVsZW1lbnQpLndvcmQgPSAwOyB9Cj4gLcKg wqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1NToKPiAtISAjbGluZSA3 MDkgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKg ewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5yZWRpcmVjdCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5yZWRp cmVjdCk7Cj4gLS0tLSAyNTY2LDI1ODUgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1MjoK PiAtISAjbGluZSA3MDYgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgv cGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuZWxlbWVudCkud29yZCA9ICh5eXZzcFso MSkgLSAoMSldLndvcmQpOwo+ICh5eXZhbC5lbGVtZW50KS5yZWRpcmVjdCA9IDA7IH0KPiAtwqDC oMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDUzOgo+IC0hICNsaW5lIDcw OCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7ICh5eXZhbC5lbGVtZW50KS53b3JkID0gKHl5dnNwWygxKSAtICgxKV0ud29y ZCk7Cj4gKHl5dmFsLmVsZW1lbnQpLnJlZGlyZWN0ID0gMDsgfQo+IC3CoMKgwqDCoMKgwqBicmVh azsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNTQ6Cj4gLSEgI2xpbmUgNzEwICIvdXNyL3NyYy9s b2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsg KHl5dmFsLmVsZW1lbnQpLnJlZGlyZWN0ID0gKHl5dnNwWygxKSAtICgxKV0ucmVkaXJlY3QpOwo+ ICh5eXZhbC5lbGVtZW50KS53b3JkID0gMDsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgNTU6Cj4gLSEgI2xpbmUgNzE0ICIvdXNyL3NyYy9sb2NhbC9jaGV0 L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJ CcKgwqAoeXl2YWwucmVkaXJlY3QpID0gKHl5dnNwWygxKSAtICgxKV0ucmVkaXJlY3QpOwo+IC0q KioqKioqKioqKioqKioKPiAtKioqIDI1ODMsMjU4NyAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDU2Ogo+IC0hICNsaW5lIDcxMyAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgcmVnaXN0ZXIgUkVESVJFQ1QgKnQ7 Cj4gLS0tLSAyNTg4LDI1OTIgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1NjoKPiAtISAj bGluZSA3MTggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2Uu eSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHJlZ2lzdGVyIFJFRElSRUNUICp0Owo+ IC0qKioqKioqKioqKioqKioKPiAtKioqIDI1OTUsMjYxOSAqKioqCj4gLcKgwqAKPiAtwqDCoMKg wqBjYXNlIDU3Ogo+IC0hICNsaW5lIDcyNCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2ltcGxlX2Nv bW1hbmQgKCh5eXZzcFsoMSkgLSAoMSldLmVsZW1lbnQpLAo+IChDT01NQU5EICopTlVMTCk7IH0K PiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDU4Ogo+IC0hICNs aW5lIDcyNiAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDC oMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2ltcGxlX2NvbW1hbmQgKCh5eXZzcFsoMikg LSAoMildLmVsZW1lbnQpLAo+ICh5eXZzcFsoMSkgLSAoMildLmNvbW1hbmQpKTsgfQo+IC3CoMKg wqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNTk6Cj4gLSEgI2xpbmUgNzMw ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsg KHl5dmFsLmNvbW1hbmQpID0gY2xlYW5fc2ltcGxlX2NvbW1hbmQgKCh5eXZzcFsoMSkgLSAoMSld LmNvbW1hbmQpKTsKPiB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSA2MDoKPiAtISAjbGluZSA3MzIgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEp XS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgNjE6Cj4gLSEgI2xpbmUgNzM0ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBDT01NQU5EICp0YzsKPiAtLS0tIDI2 MDAsMjYyNCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDU3Ogo+IC0hICNsaW5lIDcyOSAi L3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2ltcGxlX2NvbW1hbmQgKCh5eXZzcFso MSkgLSAoMSldLmVsZW1lbnQpLAo+IChDT01NQU5EICopTlVMTCk7IH0KPiAtwqDCoMKgwqDCoMKg YnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDU4Ogo+IC0hICNsaW5lIDczMSAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2ltcGxlX2NvbW1hbmQgKCh5eXZzcFsoMikgLSAo MildLmVsZW1lbnQpLAo+ICh5eXZzcFsoMSkgLSAoMildLmNvbW1hbmQpKTsgfQo+IC3CoMKgwqDC oMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNTk6Cj4gLSEgI2xpbmUgNzM1ICIv dXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gY2xlYW5fc2ltcGxlX2NvbW1hbmQgKCh5eXZzcFso MSkgLSAoMSldLmNvbW1hbmQpKTsKPiB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSA2MDoKPiAtISAjbGluZSA3MzcgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3Jj L2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFu ZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsK PiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNjE6Cj4gLSEgI2xpbmUgNzM5ICIvdXNyL3NyYy9sb2Nh bC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAt wqDCoAkJCcKgwqBDT01NQU5EICp0YzsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNjM0LDI3 MDMgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA2MjoKPiAtISAjbGluZSA3NTAgIi91c3Iv aG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwu Y29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBi cmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNjM6Cj4gLSEgI2xpbmUgNzUyICIvdXNyL2hv bWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNv bW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJl YWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY0Ogo+IC0hICNsaW5lIDc1NiAiL3Vzci9ob21l cy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21t YW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFr Owo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA2NToKPiAtISAjbGluZSA3NTggIi91c3IvaG9tZXMv Y2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFu ZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsK PiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNjY6Cj4gLSEgI2xpbmUgNzYwICIvdXNyL2hvbWVzL2No ZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQp ID0gbWFrZV93aGlsZV9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDUpXS5jb21tYW5kKSwKPiAoeXl2 c3BbKDQpIC0gKDUpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDY3Ogo+IC0hICNsaW5lIDc2MiAiL3Vzci9ob21lcy9jaGV0L3NyYy9i YXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2Vf dW50aWxfY29tbWFuZCAoKHl5dnNwWygyKSAtICg1KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAt ICg1KV0uY29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSA2ODoKPiAtISAjbGluZSA3NjQgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMv cGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0g KDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgNjk6Cj4gLSEgI2xpbmUgNzY2ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3Bh cnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgx KV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDcwOgo+IC0hICNsaW5lIDc2OCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSld LmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSA3MToKPiAtISAjbGluZSA3NzAgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2Uu eSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5j b21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug NzI6Cj4gLSEgI2xpbmUgNzcyICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29t bWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDcz Ogo+IC0hICNsaW5lIDc3NCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1h bmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA3NDoK PiAtISAjbGluZSA3NzYgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5k KTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNzU6Cj4g LSEgI2xpbmUgNzgwICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21t YW5kICgoeXl2c3BbKDIpIC0KPiAoNildLndvcmQpLCBhZGRfc3RyaW5nX3RvX2xpc3QgKCJcIiRA XCIiLCAoV09SRF9MSVNUICopTlVMTCksICh5eXZzcFsoNSkgLQo+ICg2KV0uY29tbWFuZCksIHdv cmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLS0tLSAyNjM5LDI3MDggLS0tLQo+IC3CoMKgCj4gLcKg wqDCoMKgY2FzZSA2MjoKPiAtISAjbGluZSA3NTUgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jh c2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkg PSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAt wqDCoAo+IC3CoMKgwqDCoGNhc2UgNjM6Cj4gLSEgI2xpbmUgNzU3ICIvdXNyL3NyYy9sb2NhbC9j aGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFs LmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKg YnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY0Ogo+IC0hICNsaW5lIDc2MSAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKg wqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA2NToKPiAtISAjbGluZSA3 NjMgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5k KTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNjY6Cj4g LSEgI2xpbmUgNzY1ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3Bh cnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV93aGlsZV9jb21t YW5kICgoeXl2c3BbKDIpIC0gKDUpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDUpXS5jb21t YW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY3 Ogo+IC0hICNsaW5lIDc2NyAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4y OC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfdW50aWxf Y29tbWFuZCAoKHl5dnNwWygyKSAtICg1KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg1KV0u Y29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSA2ODoKPiAtISAjbGluZSA3NjkgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00 LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3Bb KDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgNjk6Cj4gLSEgI2xpbmUgNzcxICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9i YXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQp ID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDcwOgo+IC0hICNsaW5lIDc3MyAiL3Vzci9zcmMvbG9jYWwv Y2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZh bC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDC oGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA3MToKPiAtISAjbGluZSA3NzUgIi91c3Iv c3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3C oMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNzI6Cj4gLSEgI2xpbmUg Nzc3ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFu ZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDczOgo+ IC0hICNsaW5lIDc3OSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAo MSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSA3NDoKPiAtISAjbGluZSA3ODEgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFz aC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2 c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgNzU6Cj4gLSEgI2xpbmUgNzg1ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3Ny Yy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKg wqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAoNild LndvcmQpLCBhZGRfc3RyaW5nX3RvX2xpc3QgKCJcIiRAXCIiLCAoV09SRF9MSVNUICopTlVMTCks ICh5eXZzcFsoNSkgLQo+ICg2KV0uY29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4g LSoqKioqKioqKioqKioqKgo+IC0qKiogMjcwNywyNzExICoqKioKPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgNzY6Cj4gLSEgI2xpbmUgNzg1ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3Bh cnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBt YWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAoNildLndvcmQpLCBhZGRfc3RyaW5nX3Rv X2xpc3QgKCJcIiRAXCIiLCAoV09SRF9MSVNUICopTlVMTCksICh5eXZzcFsoNSkgLQo+ICg2KV0u Y29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLS0tLSAyNzEyLDI3MTYgLS0tLQo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA3NjoKPiAtISAjbGluZSA3OTAgIi91c3Ivc3JjL2xvY2Fs L2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3C oMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZm9yX2NvbW1hbmQgKCh5eXZzcFsoMikg LQo+ICg2KV0ud29yZCksIGFkZF9zdHJpbmdfdG9fbGlzdCAoIlwiJEBcIiIsIChXT1JEX0xJU1Qg KilOVUxMKSwgKHl5dnNwWyg1KSAtCj4gKDYpXS5jb21tYW5kKSwgd29yZF9saW5lbm9bd29yZF90 b3BdKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNzE1LDI3MTkgKioqKgo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSA3NzoKPiAtISAjbGluZSA3OTAgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFz aC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21t YW5kKSA9IG1ha2VfZm9yX2NvbW1hbmQgKCh5eXZzcFsoMikgLQo+ICg3KV0ud29yZCksIGFkZF9z dHJpbmdfdG9fbGlzdCAoIlwiJEBcIiIsIChXT1JEX0xJU1QgKilOVUxMKSwgKHl5dnNwWyg2KSAt Cj4gKDcpXS5jb21tYW5kKSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtLS0tIDI3MjAsMjcy NCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDc3Ogo+IC0hICNsaW5lIDc5NSAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5 dnNwWygyKSAtCj4gKDcpXS53b3JkKSwgYWRkX3N0cmluZ190b19saXN0ICgiXCIkQFwiIiwgKFdP UkRfTElTVCAqKU5VTEwpLCAoeXl2c3BbKDYpIC0KPiAoNyldLmNvbW1hbmQpLCB3b3JkX2xpbmVu b1t3b3JkX3RvcF0pOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI3MjMsMjcyNyAqKioqCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDc4Ogo+IC0hICNsaW5lIDc5NSAiL3Vzci9ob21lcy9jaGV0 L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5 dmFsLmNvbW1hbmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5dnNwWygyKSAtCj4gKDcpXS53b3Jk KSwgYWRkX3N0cmluZ190b19saXN0ICgiXCIkQFwiIiwgKFdPUkRfTElTVCAqKU5VTEwpLCAoeXl2 c3BbKDYpIC0KPiAoNyldLmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0tLS0g MjcyOCwyNzMyIC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNzg6Cj4gLSEgI2xpbmUgODAw ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21t YW5kICgoeXl2c3BbKDIpIC0KPiAoNyldLndvcmQpLCBhZGRfc3RyaW5nX3RvX2xpc3QgKCJcIiRA XCIiLCAoV09SRF9MSVNUICopTlVMTCksICh5eXZzcFsoNikgLQo+ICg3KV0uY29tbWFuZCksIHdv cmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjczMSwyNzM1 ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNzk6Cj4gLSEgI2xpbmUgODAwICIvdXNyL2hv bWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJ CcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAo MTApXS53b3JkKSwgUkVWRVJTRV9MSVNUICgoeXl2c3BbKDUpIC0gKDEwKV0ud29yZF9saXN0KSwg V09SRF9MSVNUICopLAo+ICh5eXZzcFsoOSkgLSAoMTApXS5jb21tYW5kKSwgd29yZF9saW5lbm9b d29yZF90b3BdKTsKPiAtLS0tIDI3MzYsMjc0MCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDc5Ogo+IC0hICNsaW5lIDgwNSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQu My4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1h bmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5dnNwWygyKSAtCj4gKDEwKV0ud29yZCksIFJFVkVS U0VfTElTVCAoKHl5dnNwWyg1KSAtICgxMCldLndvcmRfbGlzdCksIFdPUkRfTElTVCAqKSwKPiAo eXl2c3BbKDkpIC0gKDEwKV0uY29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoq KioqKioqKioqKioqKgo+IC0qKiogMjczOSwyNzQzICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgODA6Cj4gLSEgI2xpbmUgODA1ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtl X2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAoMTApXS53b3JkKSwgUkVWRVJTRV9MSVNUICgo eXl2c3BbKDUpIC0gKDEwKV0ud29yZF9saXN0KSwgV09SRF9MSVNUICopLAo+ICh5eXZzcFsoOSkg LSAoMTApXS5jb21tYW5kKSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtLS0tIDI3NDQsMjc0 OCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDgwOgo+IC0hICNsaW5lIDgxMCAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5 dnNwWygyKSAtCj4gKDEwKV0ud29yZCksIFJFVkVSU0VfTElTVCAoKHl5dnNwWyg1KSAtICgxMCld LndvcmRfbGlzdCksIFdPUkRfTElTVCAqKSwKPiAoeXl2c3BbKDkpIC0gKDEwKV0uY29tbWFuZCks IHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjc0Nywy NzUxICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgODE6Cj4gLSEgI2xpbmUgODEwICIvdXNy L2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDC oAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0K PiAoOSldLndvcmQpLCAoV09SRF9MSVNUICopTlVMTCwgKHl5dnNwWyg4KSAtICg5KV0uY29tbWFu ZCksCj4gd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtLS0tIDI3NTIsMjc1NiAtLS0tCj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDgxOgo+IC0hICNsaW5lIDgxNSAiL3Vzci9zcmMvbG9jYWwvY2hl dC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJ CQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5dnNwWygyKSAtCj4g KDkpXS53b3JkKSwgKFdPUkRfTElTVCAqKU5VTEwsICh5eXZzcFsoOCkgLSAoOSldLmNvbW1hbmQp LAo+IHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjc1 NSwyNzU5ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgODI6Cj4gLSEgI2xpbmUgODE1ICIv dXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAt wqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIp IC0KPiAoOSldLndvcmQpLCAoV09SRF9MSVNUICopTlVMTCwgKHl5dnNwWyg4KSAtICg5KV0uY29t bWFuZCksCj4gd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtLS0tIDI3NjAsMjc2NCAtLS0tCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDgyOgo+IC0hICNsaW5lIDgyMCAiL3Vzci9zcmMvbG9jYWwv Y2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKg wqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5dnNwWygyKSAt Cj4gKDkpXS53b3JkKSwgKFdPUkRfTElTVCAqKU5VTEwsICh5eXZzcFsoOCkgLSAoOSldLmNvbW1h bmQpLAo+IHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiog Mjc2MywyNzY3ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgODM6Cj4gLSEgI2xpbmUgODIy ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoAkJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9hcml0aF9mb3JfY29tbWFuZAo+ ICgoeXl2c3BbKDIpIC0gKDcpXS53b3JkX2xpc3QpLCAoeXl2c3BbKDYpIC0gKDcpXS5jb21tYW5k KSwgYXJpdGhfZm9yX2xpbmVubyk7Cj4gLS0tLSAyNzY4LDI3NzIgLS0tLQo+IC3CoMKgCj4gLcKg wqDCoMKgY2FzZSA4MzoKPiAtISAjbGluZSA4MjcgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jh c2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJCcKgwqAo eXl2YWwuY29tbWFuZCkgPSBtYWtlX2FyaXRoX2Zvcl9jb21tYW5kCj4gKCh5eXZzcFsoMikgLSAo NyldLndvcmRfbGlzdCksICh5eXZzcFsoNikgLSAoNyldLmNvbW1hbmQpLCBhcml0aF9mb3JfbGlu ZW5vKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNzcxLDI3NzUgKioqKgo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSA4NDoKPiAtISAjbGluZSA4MjcgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFz aC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJCcKgwqAoeXl2YWwuY29t bWFuZCkgPSBtYWtlX2FyaXRoX2Zvcl9jb21tYW5kCj4gKCh5eXZzcFsoMikgLSAoNyldLndvcmRf bGlzdCksICh5eXZzcFsoNikgLSAoNyldLmNvbW1hbmQpLCBhcml0aF9mb3JfbGluZW5vKTsKPiAt LS0tIDI3NzYsMjc4MCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDg0Ogo+IC0hICNsaW5l IDgzMiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfYXJp dGhfZm9yX2NvbW1hbmQKPiAoKHl5dnNwWygyKSAtICg3KV0ud29yZF9saXN0KSwgKHl5dnNwWyg2 KSAtICg3KV0uY29tbWFuZCksIGFyaXRoX2Zvcl9saW5lbm8pOwo+IC0qKioqKioqKioqKioqKioK PiAtKioqIDI3NzksMjc4MyAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDg1Ogo+IC0hICNs aW5lIDgzMiAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDC oMKgwqB7Cj4gLcKgwqAJCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfYXJpdGhfZm9yX2Nv bW1hbmQKPiAoKHl5dnNwWygyKSAtICg1KV0ud29yZF9saXN0KSwgKHl5dnNwWyg0KSAtICg1KV0u Y29tbWFuZCksIGFyaXRoX2Zvcl9saW5lbm8pOwo+IC0tLS0gMjc4NCwyNzg4IC0tLS0KPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgODU6Cj4gLSEgI2xpbmUgODM3ICIvdXNyL3NyYy9sb2NhbC9jaGV0 L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJ CQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9hcml0aF9mb3JfY29tbWFuZAo+ICgoeXl2c3Bb KDIpIC0gKDUpXS53b3JkX2xpc3QpLCAoeXl2c3BbKDQpIC0gKDUpXS5jb21tYW5kKSwgYXJpdGhf Zm9yX2xpbmVubyk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjc4NywyNzkxICoqKioKPiAt wqDCoAo+IC3CoMKgwqDCoGNhc2UgODY6Cj4gLSEgI2xpbmUgODM3ICIvdXNyL2hvbWVzL2NoZXQv c3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCQnCoMKgKHl5 dmFsLmNvbW1hbmQpID0gbWFrZV9hcml0aF9mb3JfY29tbWFuZAo+ICgoeXl2c3BbKDIpIC0gKDUp XS53b3JkX2xpc3QpLCAoeXl2c3BbKDQpIC0gKDUpXS5jb21tYW5kKSwgYXJpdGhfZm9yX2xpbmVu byk7Cj4gLS0tLSAyNzkyLDI3OTYgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4NjoKPiAt ISAjbGluZSA4NDIgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBt YWtlX2FyaXRoX2Zvcl9jb21tYW5kCj4gKCh5eXZzcFsoMikgLSAoNSldLndvcmRfbGlzdCksICh5 eXZzcFsoNCkgLSAoNSldLmNvbW1hbmQpLCBhcml0aF9mb3JfbGluZW5vKTsKPiAtKioqKioqKioq KioqKioqCj4gLSoqKiAyNzk1LDI3OTkgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4NzoK PiAtISAjbGluZSA4NDQgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2VsZWN0 X2NvbW1hbmQgKCh5eXZzcFsoMikKPiAtICg2KV0ud29yZCksIGFkZF9zdHJpbmdfdG9fbGlzdCAo IlwiJEBcIiIsIChXT1JEX0xJU1QgKilOVUxMKSwgKHl5dnNwWyg1KSAtCj4gKDYpXS5jb21tYW5k KSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtLS0tIDI4MDAsMjgwNCAtLS0tCj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDg3Ogo+IC0hICNsaW5lIDg0OSAiL3Vzci9zcmMvbG9jYWwvY2hldC9z cmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9zZWxlY3RfY29tbWFuZCAoKHl5dnNwWygyKQo+IC0g KDYpXS53b3JkKSwgYWRkX3N0cmluZ190b19saXN0ICgiXCIkQFwiIiwgKFdPUkRfTElTVCAqKU5V TEwpLCAoeXl2c3BbKDUpIC0KPiAoNildLmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0p Owo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI4MDMsMjgwNyAqKioqCj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDg4Ogo+IC0hICNsaW5lIDg0OSAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3Ny Yy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQp ID0gbWFrZV9zZWxlY3RfY29tbWFuZCAoKHl5dnNwWygyKQo+IC0gKDYpXS53b3JkKSwgYWRkX3N0 cmluZ190b19saXN0ICgiXCIkQFwiIiwgKFdPUkRfTElTVCAqKU5VTEwpLCAoeXl2c3BbKDUpIC0K PiAoNildLmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0tLS0gMjgwOCwyODEy IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgODg6Cj4gLSEgI2xpbmUgODU0ICIvdXNyL3Ny Yy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX3NlbGVjdF9jb21tYW5kICgo eXl2c3BbKDIpCj4gLSAoNildLndvcmQpLCBhZGRfc3RyaW5nX3RvX2xpc3QgKCJcIiRAXCIiLCAo V09SRF9MSVNUICopTlVMTCksICh5eXZzcFsoNSkgLQo+ICg2KV0uY29tbWFuZCksIHdvcmRfbGlu ZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjgxMSwyODE1ICoqKioK PiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgODk6Cj4gLSEgI2xpbmUgODU0ICIvdXNyL2hvbWVzL2No ZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAo eXl2YWwuY29tbWFuZCkgPSBtYWtlX3NlbGVjdF9jb21tYW5kICgoeXl2c3BbKDIpCj4gLSAoNyld LndvcmQpLCBhZGRfc3RyaW5nX3RvX2xpc3QgKCJcIiRAXCIiLCAoV09SRF9MSVNUICopTlVMTCks ICh5eXZzcFsoNikgLQo+ICg3KV0uY29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4g LS0tLSAyODE2LDI4MjAgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4OToKPiAtISAjbGlu ZSA4NTkgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIK PiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2Vs ZWN0X2NvbW1hbmQgKCh5eXZzcFsoMikKPiAtICg3KV0ud29yZCksIGFkZF9zdHJpbmdfdG9fbGlz dCAoIlwiJEBcIiIsIChXT1JEX0xJU1QgKilOVUxMKSwgKHl5dnNwWyg2KSAtCj4gKDcpXS5jb21t YW5kKSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAy ODE5LDI4MjMgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5MDoKPiAtISAjbGluZSA4NTkg Ii91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2VsZWN0X2NvbW1hbmQgKCh5eXZz cFsoMikKPiAtICg3KV0ud29yZCksIGFkZF9zdHJpbmdfdG9fbGlzdCAoIlwiJEBcIiIsIChXT1JE X0xJU1QgKilOVUxMKSwgKHl5dnNwWyg2KSAtCj4gKDcpXS5jb21tYW5kKSwgd29yZF9saW5lbm9b d29yZF90b3BdKTsKPiAtLS0tIDI4MjQsMjgyOCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDkwOgo+IC0hICNsaW5lIDg2NCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQu My4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1h bmQpID0gbWFrZV9zZWxlY3RfY29tbWFuZCAoKHl5dnNwWygyKQo+IC0gKDcpXS53b3JkKSwgYWRk X3N0cmluZ190b19saXN0ICgiXCIkQFwiIiwgKFdPUkRfTElTVCAqKU5VTEwpLCAoeXl2c3BbKDYp IC0KPiAoNyldLmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0qKioqKioqKioq KioqKioKPiAtKioqIDI4MjcsMjgzMSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDkxOgo+ IC0hICNsaW5lIDg2NCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9zZWxlY3Rf Y29tbWFuZCAoKHl5dnNwWygyKQo+IC0gKDEwKV0ud29yZCksIFJFVkVSU0VfTElTVCAoKHl5dnNw Wyg1KSAtICgxMCldLndvcmRfbGlzdCksIFdPUkRfTElTVCAqKSwKPiAoeXl2c3BbKDkpIC0gKDEw KV0uY29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLS0tLSAyODMyLDI4MzYgLS0t LQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5MToKPiAtISAjbGluZSA4NjkgIi91c3Ivc3JjL2xv Y2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2VsZWN0X2NvbW1hbmQgKCh5eXZz cFsoMikKPiAtICgxMCldLndvcmQpLCBSRVZFUlNFX0xJU1QgKCh5eXZzcFsoNSkgLSAoMTApXS53 b3JkX2xpc3QpLCBXT1JEX0xJU1QgKiksCj4gKHl5dnNwWyg5KSAtICgxMCldLmNvbW1hbmQpLCB3 b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI4MzUsMjgz OSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDkyOgo+IC0hICNsaW5lIDg2OSAiL3Vzci9o b21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJ CQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9zZWxlY3RfY29tbWFuZCAoKHl5dnNwWygyKQo+ IC0gKDEwKV0ud29yZCksIFJFVkVSU0VfTElTVCAoKHl5dnNwWyg1KSAtICgxMCldLndvcmRfbGlz dCksIFdPUkRfTElTVCAqKSwKPiAoeXl2c3BbKDkpIC0gKDEwKV0uY29tbWFuZCksIHdvcmRfbGlu ZW5vW3dvcmRfdG9wXSk7Cj4gLS0tLSAyODQwLDI4NDQgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSA5MjoKPiAtISAjbGluZSA4NzQgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFz aC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5j b21tYW5kKSA9IG1ha2Vfc2VsZWN0X2NvbW1hbmQgKCh5eXZzcFsoMikKPiAtICgxMCldLndvcmQp LCBSRVZFUlNFX0xJU1QgKCh5eXZzcFsoNSkgLSAoMTApXS53b3JkX2xpc3QpLCBXT1JEX0xJU1Qg KiksCj4gKHl5dnNwWyg5KSAtICgxMCldLmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0p Owo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI4NDMsMjg0NyAqKioqCj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDkzOgo+IC0hICNsaW5lIDg3NiAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3Ny Yy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQp ID0gbWFrZV9jYXNlX2NvbW1hbmQgKCh5eXZzcFsoMikgLQo+ICg2KV0ud29yZCksIChQQVRURVJO X0xJU1QgKilOVUxMLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0tLS0gMjg0OCwyODUyIC0t LS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgOTM6Cj4gLSEgI2xpbmUgODgxICIvdXNyL3NyYy9s b2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Nhc2VfY29tbWFuZCAoKHl5dnNw WygyKSAtCj4gKDYpXS53b3JkKSwgKFBBVFRFUk5fTElTVCAqKU5VTEwsIHdvcmRfbGluZW5vW3dv cmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjg1MSwyODU1ICoqKioKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgOTQ6Cj4gLSEgI2xpbmUgODgxICIvdXNyL2hvbWVzL2NoZXQvc3Jj L2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwu Y29tbWFuZCkgPSBtYWtlX2Nhc2VfY29tbWFuZCAoKHl5dnNwWygyKSAtCj4gKDcpXS53b3JkKSwg KHl5dnNwWyg1KSAtICg3KV0ucGF0dGVybiksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLS0t LSAyODU2LDI4NjAgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5NDoKPiAtISAjbGluZSA4 ODYgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfY2FzZV9j b21tYW5kICgoeXl2c3BbKDIpIC0KPiAoNyldLndvcmQpLCAoeXl2c3BbKDUpIC0gKDcpXS5wYXR0 ZXJuKSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAy ODU5LDI4NjMgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5NToKPiAtISAjbGluZSA4ODYg Ii91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfY2FzZV9jb21tYW5kICgoeXl2c3Bb KDIpIC0KPiAoNildLndvcmQpLCAoeXl2c3BbKDUpIC0gKDYpXS5wYXR0ZXJuKSwgd29yZF9saW5l bm9bd29yZF90b3BdKTsKPiAtLS0tIDI4NjQsMjg2OCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDk1Ogo+IC0hICNsaW5lIDg5MSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNo LTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNv bW1hbmQpID0gbWFrZV9jYXNlX2NvbW1hbmQgKCh5eXZzcFsoMikgLQo+ICg2KV0ud29yZCksICh5 eXZzcFsoNSkgLSAoNildLnBhdHRlcm4pLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0qKioq KioqKioqKioqKioKPiAtKioqIDI4NjcsMjg5MSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDk2Ogo+IC0hICNsaW5lIDg5MyAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55 Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZnVuY3Rpb25fZGVmICgo eXl2c3BbKDEpIC0gKDUpXS53b3JkKSwKPiAoeXl2c3BbKDUpIC0gKDUpXS5jb21tYW5kKSwgZnVu Y3Rpb25fZHN0YXJ0LCBmdW5jdGlvbl9ic3RhcnQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5NzoKPiAtISAjbGluZSA4OTYgIi91c3IvaG9tZXMvY2hl dC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkg PSBtYWtlX2Z1bmN0aW9uX2RlZiAoKHl5dnNwWygyKSAtICg2KV0ud29yZCksCj4gKHl5dnNwWyg2 KSAtICg2KV0uY29tbWFuZCksIGZ1bmN0aW9uX2RzdGFydCwgZnVuY3Rpb25fYnN0YXJ0KTsgfQo+ IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgOTg6Cj4gLSEgI2xp bmUgODk5ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKg wqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9mdW5jdGlvbl9kZWYgKCh5eXZzcFsoMikgLSAo NCldLndvcmQpLAo+ICh5eXZzcFsoNCkgLSAoNCldLmNvbW1hbmQpLCBmdW5jdGlvbl9kc3RhcnQs IGZ1bmN0aW9uX2JzdGFydCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDk5Ogo+IC0hICNsaW5lIDkwMyAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3Ny Yy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkg LSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSAxMDA6Cj4gLSEgI2xpbmUgOTA1ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3Jj L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBDT01NQU5EICp0YzsKPiAt LS0tIDI4NzIsMjg5NiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDk2Ogo+IC0hICNsaW5l IDg5OCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZnVuY3Rpb25fZGVmICgoeXl2 c3BbKDEpIC0gKDUpXS53b3JkKSwKPiAoeXl2c3BbKDUpIC0gKDUpXS5jb21tYW5kKSwgZnVuY3Rp b25fZHN0YXJ0LCBmdW5jdGlvbl9ic3RhcnQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSA5NzoKPiAtISAjbGluZSA5MDEgIi91c3Ivc3JjL2xvY2FsL2No ZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwu Y29tbWFuZCkgPSBtYWtlX2Z1bmN0aW9uX2RlZiAoKHl5dnNwWygyKSAtICg2KV0ud29yZCksCj4g KHl5dnNwWyg2KSAtICg2KV0uY29tbWFuZCksIGZ1bmN0aW9uX2RzdGFydCwgZnVuY3Rpb25fYnN0 YXJ0KTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgOTg6 Cj4gLSEgI2xpbmUgOTA0ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4 L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9mdW5jdGlv bl9kZWYgKCh5eXZzcFsoMikgLSAoNCldLndvcmQpLAo+ICh5eXZzcFsoNCkgLSAoNCldLmNvbW1h bmQpLCBmdW5jdGlvbl9kc3RhcnQsIGZ1bmN0aW9uX2JzdGFydCk7IH0KPiAtwqDCoMKgwqDCoMKg YnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDk5Ogo+IC0hICNsaW5lIDkwOCAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKg wqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDA6Cj4gLSEgI2xpbmUg OTEwICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBDT01NQU5EICp0YzsKPiAtKioqKioqKioqKioq KioqCj4gLSoqKiAyOTE5LDI5MjMgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDE6Cj4g LSEgI2xpbmUgOTM2ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX3N1YnNoZWxs X2NvbW1hbmQKPiAoKHl5dnNwWygyKSAtICgzKV0uY29tbWFuZCkpOwo+IC0tLS0gMjkyNCwyOTI4 IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTAxOgo+IC0hICNsaW5lIDk0MSAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9zdWJzaGVsbF9jb21tYW5k Cj4gKCh5eXZzcFsoMikgLSAoMyldLmNvbW1hbmQpKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoq KiAyOTI3LDI5MzEgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDI6Cj4gLSEgI2xpbmUg OTQzICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2NvcHJvY19jb21tYW5kICgi Q09QUk9DIiwKPiAoeXl2c3BbKDIpIC0gKDIpXS5jb21tYW5kKSk7Cj4gLS0tLSAyOTMyLDI5MzYg LS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDI6Cj4gLSEgI2xpbmUgOTQ4ICIvdXNyL3Ny Yy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2NvcHJvY19jb21tYW5kICgi Q09QUk9DIiwKPiAoeXl2c3BbKDIpIC0gKDIpXS5jb21tYW5kKSk7Cj4gLSoqKioqKioqKioqKioq Kgo+IC0qKiogMjkzNSwyOTM5ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTAzOgo+IC0h ICNsaW5lIDk0OCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgQ09NTUFORCAqdGM7Cj4gLS0tLSAyOTQwLDI5NDQgLS0t LQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDM6Cj4gLSEgI2xpbmUgOTUzICIvdXNyL3NyYy9s b2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoAkJCcKgwqBDT01NQU5EICp0YzsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyOTU1 LDI5NTkgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDQ6Cj4gLSEgI2xpbmUgOTY1ICIv dXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAt wqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2NvcHJvY19jb21tYW5kICgoeXl2c3Bb KDIpCj4gLSAoMyldLndvcmQpLT53b3JkLCAoeXl2c3BbKDMpIC0gKDMpXS5jb21tYW5kKSk7Cj4g LS0tLSAyOTYwLDI5NjQgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDQ6Cj4gLSEgI2xp bmUgOTcwICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Nv cHJvY19jb21tYW5kICgoeXl2c3BbKDIpCj4gLSAoMyldLndvcmQpLT53b3JkLCAoeXl2c3BbKDMp IC0gKDMpXS5jb21tYW5kKSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjk2MywyOTY3ICoq KioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTA1Ogo+IC0hICNsaW5lIDk3MCAiL3Vzci9ob21l cy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgQ09NTUFORCAqdGM7Cj4gLS0tLSAyOTY4LDI5NzIgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSAxMDU6Cj4gLSEgI2xpbmUgOTc1ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jh c2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBDT01NQU5E ICp0YzsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyOTgzLDI5ODcgKioqKgo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSAxMDY6Cj4gLSEgI2xpbmUgOTg3ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jh c2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29t bWFuZCkgPSBtYWtlX2NvcHJvY19jb21tYW5kICgiQ09QUk9DIiwKPiBjbGVhbl9zaW1wbGVfY29t bWFuZCAoKHl5dnNwWygyKSAtICgyKV0uY29tbWFuZCkpKTsKPiAtLS0tIDI5ODgsMjk5MiAtLS0t Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEwNjoKPiAtISAjbGluZSA5OTIgIi91c3Ivc3JjL2xv Y2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfY29wcm9jX2NvbW1hbmQgKCJDT1BS T0MiLAo+IGNsZWFuX3NpbXBsZV9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDIpXS5jb21tYW5kKSkp Owo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI5OTEsMzEwNSAqKioqCj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDEwNzoKPiAtISAjbGluZSA5OTQgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9z cmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2lmX2Nv bW1hbmQgKCh5eXZzcFsoMikgLSAoNSldLmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAoNSldLmNv bW1hbmQpLCAoQ09NTUFORCAqKU5VTEwpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxMDg6Cj4gLSEgI2xpbmUgOTk2ICIvdXNyL2hvbWVzL2NoZXQvc3Jj L2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gbWFr ZV9pZl9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDcpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQpIC0g KDcpXS5jb21tYW5kKSwgKHl5dnNwWyg2KSAtICg3KV0uY29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKg wqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDk6Cj4gLSEgI2xpbmUgOTk4ICIv dXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5 dmFsLmNvbW1hbmQpID0gbWFrZV9pZl9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDYpXS5jb21tYW5k KSwKPiAoeXl2c3BbKDQpIC0gKDYpXS5jb21tYW5kKSwgKHl5dnNwWyg1KSAtICg2KV0uY29tbWFu ZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMTA6 Cj4gLSEgI2xpbmUgMTAwMyAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZ3JvdXBfY29tbWFuZCAoKHl5 dnNwWygyKSAtICgzKV0uY29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxMTE6Cj4gLSEgI2xpbmUgMTAwNyAiL3Vzci9ob21lcy9jaGV0L3Ny Yy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1h a2VfYXJpdGhfY29tbWFuZCAoKHl5dnNwWygxKSAtICgxKV0ud29yZF9saXN0KSk7Cj4gfQo+IC3C oMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTEyOgo+IC0hICNsaW5l IDEwMTEgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDIpIC0gKDMpXS5jb21tYW5kKTsgfQo+IC3C oMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTEzOgo+IC0hICNsaW5l IDEwMTUgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgeyAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2lmX2NvbW1hbmQgKCh5eXZzcFsoMikgLSAoNCld LmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAoNCldLmNvbW1hbmQpLCAoQ09NTUFORCAqKU5VTEwp OyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMTQ6Cj4g LSEgI2xpbmUgMTAxNyAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfaWZfY29tbWFuZCAoKHl5dnNwWygy KSAtICg2KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg2KV0uY29tbWFuZCksICh5eXZzcFso NikgLSAoNildLmNvbW1hbmQpKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMTE1Ogo+IC0hICNsaW5lIDEwMTkgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFz aC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2lm X2NvbW1hbmQgKCh5eXZzcFsoMikgLSAoNSldLmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAoNSld LmNvbW1hbmQpLCAoeXl2c3BbKDUpIC0gKDUpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKg YnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDExNzoKPiAtISAjbGluZSAxMDI0ICIvdXNy L2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dnNw WygyKSAtICgyKV0ucGF0dGVybiktPm5leHQgPSAoeXl2c3BbKDEpIC0gKDIpXS5wYXR0ZXJuKTsK PiAoeXl2YWwucGF0dGVybikgPSAoeXl2c3BbKDIpIC0gKDIpXS5wYXR0ZXJuKTsgfQo+IC3CoMKg wqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTE4Ogo+IC0hICNsaW5lIDEw MjggIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKg eyAoeXl2YWwucGF0dGVybikgPSBtYWtlX3BhdHRlcm5fbGlzdCAoKHl5dnNwWygyKSAtICg0KV0u d29yZF9saXN0KSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDC oMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDExOToKPiAtISAjbGluZSAxMDMwICIv dXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5 dmFsLnBhdHRlcm4pID0gbWFrZV9wYXR0ZXJuX2xpc3QgKCh5eXZzcFsoMikgLSAoNCldLndvcmRf bGlzdCksCj4gKENPTU1BTkQgKilOVUxMKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMTIwOgo+IC0hICNsaW5lIDEwMzIgIi91c3IvaG9tZXMvY2hldC9z cmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwucGF0dGVybikgPSBt YWtlX3BhdHRlcm5fbGlzdCAoKHl5dnNwWygzKSAtICg1KV0ud29yZF9saXN0KSwKPiAoeXl2c3Bb KDUpIC0gKDUpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAt wqDCoMKgwqBjYXNlIDEyMToKPiAtISAjbGluZSAxMDM0ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jh c2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLnBhdHRlcm4pID0gbWFrZV9w YXR0ZXJuX2xpc3QgKCh5eXZzcFsoMykgLSAoNSldLndvcmRfbGlzdCksCj4gKENPTU1BTkQgKilO VUxMKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTIy Ogo+IC0hICNsaW5lIDEwMzggIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIK PiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwucGF0dGVybikgPSAoeXl2c3BbKDEpIC0gKDIpXS5wYXR0 ZXJuKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTIz Ogo+IC0hICNsaW5lIDEwNDAgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIK PiAtwqDCoMKgwqDCoMKgeyAoeXl2c3BbKDIpIC0gKDMpXS5wYXR0ZXJuKS0+bmV4dCA9ICh5eXZz cFsoMSkgLSAoMyldLnBhdHRlcm4pOwo+ICh5eXZhbC5wYXR0ZXJuKSA9ICh5eXZzcFsoMikgLSAo MyldLnBhdHRlcm4pOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSAxMjQ6Cj4gLSEgI2xpbmUgMTA0MiAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZzcFsoMSkgLSAoMildLnBhdHRlcm4pLT5mbGFn cyB8PSBDQVNFUEFUX0ZBTExUSFJPVUdIOwo+ICh5eXZhbC5wYXR0ZXJuKSA9ICh5eXZzcFsoMSkg LSAoMildLnBhdHRlcm4pOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSAxMjU6Cj4gLSEgI2xpbmUgMTA0NCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3Ny Yy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZzcFsoMikgLSAoMyldLnBhdHRlcm4pLT5m bGFncyB8PSBDQVNFUEFUX0ZBTExUSFJPVUdIOyAoeXl2c3BbKDIpCj4gLSAoMyldLnBhdHRlcm4p LT5uZXh0ID0gKHl5dnNwWygxKSAtICgzKV0ucGF0dGVybik7ICh5eXZhbC5wYXR0ZXJuKSA9Cj4g KHl5dnNwWygyKSAtICgzKV0ucGF0dGVybik7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDEyNjoKPiAtISAjbGluZSAxMDQ2ICIvdXNyL2hvbWVzL2NoZXQv c3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dnNwWygxKSAtICgyKV0u cGF0dGVybiktPmZsYWdzIHw9IENBU0VQQVRfVEVTVE5FWFQ7Cj4gKHl5dmFsLnBhdHRlcm4pID0g KHl5dnNwWygxKSAtICgyKV0ucGF0dGVybik7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDEyNzoKPiAtISAjbGluZSAxMDQ4ICIvdXNyL2hvbWVzL2NoZXQv c3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dnNwWygyKSAtICgzKV0u cGF0dGVybiktPmZsYWdzIHw9IENBU0VQQVRfVEVTVE5FWFQ7ICh5eXZzcFsoMikgLQo+ICgzKV0u cGF0dGVybiktPm5leHQgPSAoeXl2c3BbKDEpIC0gKDMpXS5wYXR0ZXJuKTsgKHl5dmFsLnBhdHRl cm4pID0gKHl5dnNwWygyKQo+IC0gKDMpXS5wYXR0ZXJuKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVh azsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTI4Ogo+IC0hICNsaW5lIDEwNTIgIi91c3IvaG9t ZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwud29y ZF9saXN0KSA9IG1ha2Vfd29yZF9saXN0ICgoeXl2c3BbKDEpIC0gKDEpXS53b3JkKSwKPiAoV09S RF9MSVNUICopTlVMTCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKg wqBjYXNlIDEyOToKPiAtISAjbGluZSAxMDU0ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3Jj L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLndvcmRfbGlzdCkgPSBtYWtlX3dvcmRf bGlzdCAoKHl5dnNwWygzKSAtICgzKV0ud29yZCksCj4gKHl5dnNwWygxKSAtICgzKV0ud29yZF9s aXN0KSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEz MDoKPiAtISAjbGluZSAxMDYzICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3Bb KDIpIC0gKDIpXS5jb21tYW5kKTsKPiAtLS0tIDI5OTYsMzExMCAtLS0tCj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDEwNzoKPiAtISAjbGluZSA5OTkgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jh c2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkg PSBtYWtlX2lmX2NvbW1hbmQgKCh5eXZzcFsoMikgLSAoNSldLmNvbW1hbmQpLAo+ICh5eXZzcFso NCkgLSAoNSldLmNvbW1hbmQpLCAoQ09NTUFORCAqKU5VTEwpOyB9Cj4gLcKgwqDCoMKgwqDCoGJy ZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDg6Cj4gLSEgI2xpbmUgMTAwMSAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfaWZfY29tbWFuZCAoKHl5dnNwWygyKSAtICg3KV0u Y29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg3KV0uY29tbWFuZCksICh5eXZzcFsoNikgLSAoNyld LmNvbW1hbmQpKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgMTA5Ogo+IC0hICNsaW5lIDEwMDMgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFz aC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBtYWtl X2lmX2NvbW1hbmQgKCh5eXZzcFsoMikgLSAoNildLmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAo NildLmNvbW1hbmQpLCAoeXl2c3BbKDUpIC0gKDYpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDC oMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDExMDoKPiAtISAjbGluZSAxMDA4ICIv dXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9ncm91cF9jb21tYW5kICgoeXl2c3BbKDIp IC0gKDMpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDExMToKPiAtISAjbGluZSAxMDEyICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9i YXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQp ID0gbWFrZV9hcml0aF9jb21tYW5kICgoeXl2c3BbKDEpIC0gKDEpXS53b3JkX2xpc3QpKTsKPiB9 Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMTI6Cj4gLSEg I2xpbmUgMTAxNiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMikgLSAoMyld LmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSAxMTM6Cj4gLSEgI2xpbmUgMTAyMCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNo LTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2Vf aWZfY29tbWFuZCAoKHl5dnNwWygyKSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg0 KV0uY29tbWFuZCksIChDT01NQU5EICopTlVMTCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDExNDoKPiAtISAjbGluZSAxMDIyICIvdXNyL3NyYy9sb2Nh bC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5 dmFsLmNvbW1hbmQpID0gbWFrZV9pZl9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDYpXS5jb21tYW5k KSwKPiAoeXl2c3BbKDQpIC0gKDYpXS5jb21tYW5kKSwgKHl5dnNwWyg2KSAtICg2KV0uY29tbWFu ZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMTU6 Cj4gLSEgI2xpbmUgMTAyNCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4y OC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfaWZfY29t bWFuZCAoKHl5dnNwWygyKSAtICg1KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg1KV0uY29t bWFuZCksICh5eXZzcFsoNSkgLSAoNSldLmNvbW1hbmQpKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVh azsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTE3Ogo+IC0hICNsaW5lIDEwMjkgIi91c3Ivc3Jj L2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKg eyAoeXl2c3BbKDIpIC0gKDIpXS5wYXR0ZXJuKS0+bmV4dCA9ICh5eXZzcFsoMSkgLSAoMildLnBh dHRlcm4pOwo+ICh5eXZhbC5wYXR0ZXJuKSA9ICh5eXZzcFsoMikgLSAoMildLnBhdHRlcm4pOyB9 Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMTg6Cj4gLSEg I2xpbmUgMTAzMyAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5wYXR0ZXJuKSA9IG1ha2VfcGF0dGVybl9saXN0 ICgoeXl2c3BbKDIpIC0gKDQpXS53b3JkX2xpc3QpLAo+ICh5eXZzcFsoNCkgLSAoNCldLmNvbW1h bmQpKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTE5 Ogo+IC0hICNsaW5lIDEwMzUgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMu MjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwucGF0dGVybikgPSBtYWtlX3BhdHRl cm5fbGlzdCAoKHl5dnNwWygyKSAtICg0KV0ud29yZF9saXN0KSwKPiAoQ09NTUFORCAqKU5VTEwp OyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMjA6Cj4g LSEgI2xpbmUgMTAzNyAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5wYXR0ZXJuKSA9IG1ha2VfcGF0dGVybl9s aXN0ICgoeXl2c3BbKDMpIC0gKDUpXS53b3JkX2xpc3QpLAo+ICh5eXZzcFsoNSkgLSAoNSldLmNv bW1hbmQpKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug MTIxOgo+IC0hICNsaW5lIDEwMzkgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00 LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwucGF0dGVybikgPSBtYWtlX3Bh dHRlcm5fbGlzdCAoKHl5dnNwWygzKSAtICg1KV0ud29yZF9saXN0KSwKPiAoQ09NTUFORCAqKU5V TEwpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMjI6 Cj4gLSEgI2xpbmUgMTA0MyAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4y OC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5wYXR0ZXJuKSA9ICh5eXZzcFsoMSkg LSAoMildLnBhdHRlcm4pOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSAxMjM6Cj4gLSEgI2xpbmUgMTA0NSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFz aC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZzcFsoMikgLSAoMyld LnBhdHRlcm4pLT5uZXh0ID0gKHl5dnNwWygxKSAtICgzKV0ucGF0dGVybik7Cj4gKHl5dmFsLnBh dHRlcm4pID0gKHl5dnNwWygyKSAtICgzKV0ucGF0dGVybik7IH0KPiAtwqDCoMKgwqDCoMKgYnJl YWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEyNDoKPiAtISAjbGluZSAxMDQ3ICIvdXNyL3Ny Yy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsgKHl5dnNwWygxKSAtICgyKV0ucGF0dGVybiktPmZsYWdzIHw9IENBU0VQQVRfRkFMTFRIUk9V R0g7Cj4gKHl5dmFsLnBhdHRlcm4pID0gKHl5dnNwWygxKSAtICgyKV0ucGF0dGVybik7IH0KPiAt wqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEyNToKPiAtISAjbGlu ZSAxMDQ5ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsgKHl5dnNwWygyKSAtICgzKV0ucGF0dGVybiktPmZsYWdzIHw9IENB U0VQQVRfRkFMTFRIUk9VR0g7ICh5eXZzcFsoMikKPiAtICgzKV0ucGF0dGVybiktPm5leHQgPSAo eXl2c3BbKDEpIC0gKDMpXS5wYXR0ZXJuKTsgKHl5dmFsLnBhdHRlcm4pID0KPiAoeXl2c3BbKDIp IC0gKDMpXS5wYXR0ZXJuKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKg wqDCoGNhc2UgMTI2Ogo+IC0hICNsaW5lIDEwNTEgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jh c2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2c3BbKDEpIC0gKDIp XS5wYXR0ZXJuKS0+ZmxhZ3MgfD0gQ0FTRVBBVF9URVNUTkVYVDsKPiAoeXl2YWwucGF0dGVybikg PSAoeXl2c3BbKDEpIC0gKDIpXS5wYXR0ZXJuKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAt wqDCoAo+IC3CoMKgwqDCoGNhc2UgMTI3Ogo+IC0hICNsaW5lIDEwNTMgIi91c3Ivc3JjL2xvY2Fs L2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2 c3BbKDIpIC0gKDMpXS5wYXR0ZXJuKS0+ZmxhZ3MgfD0gQ0FTRVBBVF9URVNUTkVYVDsgKHl5dnNw WygyKSAtCj4gKDMpXS5wYXR0ZXJuKS0+bmV4dCA9ICh5eXZzcFsoMSkgLSAoMyldLnBhdHRlcm4p OyAoeXl2YWwucGF0dGVybikgPSAoeXl2c3BbKDIpCj4gLSAoMyldLnBhdHRlcm4pOyB9Cj4gLcKg wqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMjg6Cj4gLSEgI2xpbmUg MTA1NyAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC53b3JkX2xpc3QpID0gbWFrZV93b3JkX2xpc3QgKCh5eXZz cFsoMSkgLSAoMSldLndvcmQpLAo+IChXT1JEX0xJU1QgKilOVUxMKTsgfQo+IC3CoMKgwqDCoMKg wqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTI5Ogo+IC0hICNsaW5lIDEwNTkgIi91 c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKg wqDCoMKgeyAoeXl2YWwud29yZF9saXN0KSA9IG1ha2Vfd29yZF9saXN0ICgoeXl2c3BbKDMpIC0g KDMpXS53b3JkKSwKPiAoeXl2c3BbKDEpIC0gKDMpXS53b3JkX2xpc3QpKTsgfQo+IC3CoMKgwqDC oMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTMwOgo+IC0hICNsaW5lIDEwNjgg Ii91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDC oMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMikgLSAo MildLmNvbW1hbmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDMxMTAsMzExNCAqKioqCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEzMjoKPiAtISAjbGluZSAxMDcyICIvdXNyL2hvbWVzL2No ZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAo eXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDIpIC0gKDIpXS5jb21tYW5kKTsKPiAtLS0tIDMxMTUs MzExOSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEzMjoKPiAtISAjbGluZSAxMDc3ICIv dXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDIpIC0gKDIp XS5jb21tYW5kKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAzMTE3LDMxMjEgKioqKgo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSAxMzQ6Cj4gLSEgI2xpbmUgMTA3OSAiL3Vzci9ob21lcy9jaGV0 L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgaWYg KCh5eXZzcFsoMSkgLSAoMyldLmNvbW1hbmQpLT50eXBlID09Cj4gY21fY29ubmVjdGlvbikKPiAt LS0tIDMxMjIsMzEyNiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEzNDoKPiAtISAjbGlu ZSAxMDg0ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBpZiAoKHl5dnNwWygxKSAtICgzKV0uY29t bWFuZCktPnR5cGUgPT0KPiBjbV9jb25uZWN0aW9uKQo+IC0qKioqKioqKioqKioqKioKPiAtKioq IDMxMjcsMzE0MSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEzNjoKPiAtISAjbGluZSAx MDkwICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsgKHl5dmFsLmNvbW1hbmQpID0gY29tbWFuZF9jb25uZWN0ICgoeXl2c3BbKDEpIC0gKDQpXS5j b21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgQU5EX0FORCk7IH0KPiAtwqDC oMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEzNzoKPiAtISAjbGluZSAx MDkyICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsgKHl5dmFsLmNvbW1hbmQpID0gY29tbWFuZF9jb25uZWN0ICgoeXl2c3BbKDEpIC0gKDQpXS5j b21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgT1JfT1IpOyB9Cj4gLcKgwqDC oMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMzg6Cj4gLSEgI2xpbmUgMTA5 NCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFsoMSkgLSAoNCldLmNvbW1hbmQpLT50eXBlID09Cj4g Y21fY29ubmVjdGlvbikKPiAtLS0tIDMxMzIsMzE0NiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDEzNjoKPiAtISAjbGluZSAxMDk1ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jh c2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gY29t bWFuZF9jb25uZWN0ICgoeXl2c3BbKDEpIC0gKDQpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQpIC0g KDQpXS5jb21tYW5kKSwgQU5EX0FORCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDEzNzoKPiAtISAjbGluZSAxMDk3ICIvdXNyL3NyYy9sb2NhbC9jaGV0 L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNv bW1hbmQpID0gY29tbWFuZF9jb25uZWN0ICgoeXl2c3BbKDEpIC0gKDQpXS5jb21tYW5kKSwKPiAo eXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgT1JfT1IpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFr Owo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMzg6Cj4gLSEgI2xpbmUgMTA5OSAiL3Vzci9zcmMv bG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFsoMSkgLSAoNCldLmNvbW1hbmQpLT50eXBlID09Cj4g Y21fY29ubmVjdGlvbikKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAzMTQ3LDMxODEgKioqKgo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMzk6Cj4gLSEgI2xpbmUgMTEwMSAiL3Vzci9ob21lcy9j aGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5k KSA9IGNvbW1hbmRfY29ubmVjdCAoKHl5dnNwWygxKSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNw Wyg0KSAtICg0KV0uY29tbWFuZCksICc7Jyk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDE0MDoKPiAtISAjbGluZSAxMTAzICIvdXNyL2hvbWVzL2NoZXQv c3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0g Y29tbWFuZF9jb25uZWN0ICgoeXl2c3BbKDEpIC0gKDQpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQp IC0gKDQpXS5jb21tYW5kKSwgJzsnKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgMTQxOgo+IC0hICNsaW5lIDExMDUgIi91c3IvaG9tZXMvY2hldC9zcmMv YmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2 c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgMTQ0Ogo+IC0hICNsaW5lIDExMTMgIi91c3IvaG9tZXMvY2hldC9zcmMv YmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwubnVtYmVyKSA9ICdcbic7 IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE0NToKPiAt ISAjbGluZSAxMTE1ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsgKHl5dmFsLm51bWJlcikgPSAnOyc7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7 Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE0NjoKPiAtISAjbGluZSAxMTE3ICIvdXNyL2hvbWVz L2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLm51bWJl cikgPSB5YWNjX0VPRjsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgMTQ5Ogo+IC0hICNsaW5lIDExMzEgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMv cGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9 ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOwo+IC0tLS0gMzE1MiwzMTg2IC0tLS0KPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMTM5Ogo+IC0hICNsaW5lIDExMDYgIi91c3Ivc3JjL2xvY2FsL2No ZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwu Y29tbWFuZCkgPSBjb21tYW5kX2Nvbm5lY3QgKCh5eXZzcFsoMSkgLSAoNCldLmNvbW1hbmQpLAo+ ICh5eXZzcFsoNCkgLSAoNCldLmNvbW1hbmQpLCAnOycpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFr Owo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNDA6Cj4gLSEgI2xpbmUgMTEwOCAiL3Vzci9zcmMv bG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 ICh5eXZhbC5jb21tYW5kKSA9IGNvbW1hbmRfY29ubmVjdCAoKHl5dnNwWygxKSAtICg0KV0uY29t bWFuZCksCj4gKHl5dnNwWyg0KSAtICg0KV0uY29tbWFuZCksICc7Jyk7IH0KPiAtwqDCoMKgwqDC oMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE0MToKPiAtISAjbGluZSAxMTEwICIv dXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0K PiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE0NDoKPiAtISAj bGluZSAxMTE4ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLm51bWJlcikgPSAnXG4nOyB9Cj4gLcKgwqDCoMKg wqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNDU6Cj4gLSEgI2xpbmUgMTEyMCAi L3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7ICh5eXZhbC5udW1iZXIpID0gJzsnOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNDY6Cj4gLSEgI2xpbmUgMTEyMiAiL3Vzci9zcmMvbG9j YWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5 eXZhbC5udW1iZXIpID0geWFjY19FT0Y7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDE0OToKPiAtISAjbGluZSAxMTM2ICIvdXNyL3NyYy9sb2NhbC9jaGV0 L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJ CcKgwqAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsKPiAtKioq KioqKioqKioqKioqCj4gLSoqKiAzMTkzLDMxOTcgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSAxNTA6Cj4gLSEgI2xpbmUgMTE0NCAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFsoMSkgLSAoMild LmNvbW1hbmQpLT50eXBlID09Cj4gY21fY29ubmVjdGlvbikKPiAtLS0tIDMxOTgsMzIwMiAtLS0t Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE1MDoKPiAtISAjbGluZSAxMTQ5ICIvdXNyL3NyYy9s b2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoAkJCcKgwqBpZiAoKHl5dnNwWygxKSAtICgyKV0uY29tbWFuZCktPnR5cGUgPT0KPiBj bV9jb25uZWN0aW9uKQo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDMyMTIsMzIxNiAqKioqCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE1MToKPiAtISAjbGluZSAxMTYwICIvdXNyL2hvbWVzL2No ZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAo eXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDIpXS5jb21tYW5kKTsKPiAtLS0tIDMyMTcs MzIyMSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE1MToKPiAtISAjbGluZSAxMTY1ICIv dXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDIp XS5jb21tYW5kKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAzMjI4LDMyNDIgKioqKgo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSAxNTI6Cj4gLSEgI2xpbmUgMTE3NSAiL3Vzci9ob21lcy9jaGV0 L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9 IGNvbW1hbmRfY29ubmVjdCAoKHl5dnNwWygxKSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0 KSAtICg0KV0uY29tbWFuZCksIEFORF9BTkQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSAxNTM6Cj4gLSEgI2xpbmUgMTE3NyAiL3Vzci9ob21lcy9jaGV0 L3NyYy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9 IGNvbW1hbmRfY29ubmVjdCAoKHl5dnNwWygxKSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0 KSAtICg0KV0uY29tbWFuZCksIE9SX09SKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMTU0Ogo+IC0hICNsaW5lIDExNzkgIi91c3IvaG9tZXMvY2hldC9z cmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoGlmICgo eXl2c3BbKDEpIC0gKDMpXS5jb21tYW5kKS0+dHlwZSA9PQo+IGNtX2Nvbm5lY3Rpb24pCj4gLS0t LSAzMjMzLDMyNDcgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNTI6Cj4gLSEgI2xpbmUg MTE4MCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IGNvbW1hbmRfY29ubmVjdCAoKHl5dnNw WygxKSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg0KV0uY29tbWFuZCksIEFORF9B TkQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNTM6 Cj4gLSEgI2xpbmUgMTE4MiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4y OC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IGNvbW1hbmRfY29u bmVjdCAoKHl5dnNwWygxKSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg0KV0uY29t bWFuZCksIE9SX09SKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgMTU0Ogo+IC0hICNsaW5lIDExODQgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gv YmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoGlmICgo eXl2c3BbKDEpIC0gKDMpXS5jb21tYW5kKS0+dHlwZSA9PQo+IGNtX2Nvbm5lY3Rpb24pCj4gLSoq KioqKioqKioqKioqKgo+IC0qKiogMzI0OCwzMjY3ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgMTU1Ogo+IC0hICNsaW5lIDExODYgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBjb21tYW5kX2Nvbm5lY3Qg KCh5eXZzcFsoMSkgLSAoMyldLmNvbW1hbmQpLAo+ICh5eXZzcFsoMykgLSAoMyldLmNvbW1hbmQp LCAnOycpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAx NTY6Cj4gLSEgI2xpbmUgMTE4OSAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55 Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNv bW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAx NTc6Cj4gLSEgI2xpbmUgMTE5MyAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55 Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNv bW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAx NTg6Cj4gLSEgI2xpbmUgMTE5NSAiL3Vzci9ob21lcy9jaGV0L3NyYy9iYXNoL3NyYy9wYXJzZS55 Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFsoMikgLSAoMildLmNv bW1hbmQpKQo+IC0tLS0gMzI1MywzMjcyIC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTU1 Ogo+IC0hICNsaW5lIDExOTEgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMu MjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBjb21tYW5kX2Nv bm5lY3QgKCh5eXZzcFsoMSkgLSAoMyldLmNvbW1hbmQpLAo+ICh5eXZzcFsoMykgLSAoMyldLmNv bW1hbmQpLCAnOycpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSAxNTY6Cj4gLSEgI2xpbmUgMTE5NCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9i YXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5 eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxNTc6Cj4gLSEgI2xpbmUgMTE5OCAiL3Vzci9zcmMvbG9jYWwvY2hl dC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5j b21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJy ZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNTg6Cj4gLSEgI2xpbmUgMTIwMCAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFsoMikgLSAoMildLmNvbW1hbmQpKQo+IC0qKioq KioqKioqKioqKioKPiAtKioqIDMyNzIsMzI3NiAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDE1OToKPiAtISAjbGluZSAxMjAxICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBpZiAoKHl5dnNwWygyKSAtICgyKV0u Y29tbWFuZCkpCj4gLS0tLSAzMjc3LDMyODEgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAx NTk6Cj4gLSEgI2xpbmUgMTIwNiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQu My4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFso MikgLSAoMildLmNvbW1hbmQpKQo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDMyODEsMzI4NSAq KioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2MDoKPiAtISAjbGluZSAxMjA3ICIvdXNyL2hv bWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJ CcKgwqBFTEVNRU5UIHg7Cj4gLS0tLSAzMjg2LDMyOTAgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSAxNjA6Cj4gLSEgI2xpbmUgMTIxMiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9i YXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgRUxFTUVO VCB4Owo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDMzMDEsMzMwNSAqKioqCj4gLcKgwqAKPiAt wqDCoMKgwqBjYXNlIDE2MToKPiAtISAjbGluZSAxMjI0ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jh c2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBFTEVNRU5UIHg7 Cj4gLS0tLSAzMzA2LDMzMTAgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNjE6Cj4gLSEg I2xpbmUgMTIyOSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgRUxFTUVOVCB4Owo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDMzMjIsMzMzMSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2 MjoKPiAtISAjbGluZSAxMjQ0ICIvdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gY29tbWFuZF9jb25uZWN0ICgoeXl2 c3BbKDEpIC0gKDQpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgJ3wn KTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTYzOgo+ IC0hICNsaW5lIDEyNDYgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoC8qIE1ha2UgY21kMSB8JiBjbWQyIGVxdWl2YWxl bnQgdG8gY21kMSAyPiYxIHwKPiBjbWQyICovCj4gLS0tLSAzMzI3LDMzMzYgLS0tLQo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxNjI6Cj4gLSEgI2xpbmUgMTI0OSAiL3Vzci9zcmMvbG9jYWwvY2hl dC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5j b21tYW5kKSA9IGNvbW1hbmRfY29ubmVjdCAoKHl5dnNwWygxKSAtICg0KV0uY29tbWFuZCksCj4g KHl5dnNwWyg0KSAtICg0KV0uY29tbWFuZCksICd8Jyk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7 Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2MzoKPiAtISAjbGluZSAxMjUxICIvdXNyL3NyYy9s b2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoAkJCcKgwqAvKiBNYWtlIGNtZDEgfCYgY21kMiBlcXVpdmFsZW50IHRvIGNtZDEgMj4m MSB8Cj4gY21kMiAqLwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDMzNTMsMzM3MiAqKioqCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2NDoKPiAtISAjbGluZSAxMjY5ICIvdXNyL2hvbWVzL2No ZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQp ID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2NToKPiAtISAjbGluZSAxMjczICIvdXNyL2hvbWVzL2No ZXQvc3JjL2Jhc2gvc3JjL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLm51bWJlcikg PSBDTURfVElNRV9QSVBFTElORTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMTY2Ogo+IC0hICNsaW5lIDEyNzUgIi91c3IvaG9tZXMvY2hldC9zcmMvYmFz aC9zcmMvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwubnVtYmVyKSA9IENNRF9USU1F X1BJUEVMSU5FfENNRF9USU1FX1BPU0lYOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxNjc6Cj4gLSEgI2xpbmUgMTI3NyAiL3Vzci9ob21lcy9jaGV0L3Ny Yy9iYXNoL3NyYy9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5udW1iZXIpID0gQ01E X1RJTUVfUElQRUxJTkV8Q01EX1RJTUVfUE9TSVg7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4g LS0tLSAzMzU4LDMzNzcgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNjQ6Cj4gLSEgI2xp bmUgMTI3NCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55 Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNv bW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAx NjU6Cj4gLSEgI2xpbmUgMTI3OCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQu My4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5udW1iZXIpID0gQ01EX1RJTUVf UElQRUxJTkU7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDE2NjoKPiAtISAjbGluZSAxMjgwICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gt NC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLm51bWJlcikgPSBDTURfVElN RV9QSVBFTElORXxDTURfVElNRV9QT1NJWDsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMTY3Ogo+IC0hICNsaW5lIDEyODIgIi91c3Ivc3JjL2xvY2FsL2No ZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwu bnVtYmVyKSA9IENNRF9USU1FX1BJUEVMSU5FfENNRF9USU1FX1BPU0lYOyB9Cj4gLcKgwqDCoMKg wqDCoGJyZWFrOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDMzNzQsMzM3OCAqKioqCj4gLcKg wqAKPiAtwqDCoC8qIExpbmUgMTI2NyBvZiB5YWNjLmMuwqDCoCovCj4gLSEgI2xpbmUgMzM3NyAi eS50YWIuYyIKPiAtwqDCoMKgwqDCoMKgwqDCoGRlZmF1bHQ6IGJyZWFrOwo+IC3CoMKgwqDCoMKg wqB9Cj4gLS0tLSAzMzc5LDMzODMgLS0tLQo+IC3CoMKgCj4gLcKgwqAvKiBMaW5lIDEyNjcgb2Yg eWFjYy5jLsKgwqAqLwo+IC0hICNsaW5lIDMzODIgInkudGFiLmMiCj4gLcKgwqDCoMKgwqDCoMKg wqBkZWZhdWx0OiBicmVhazsKPiAtwqDCoMKgwqDCoMKgfQo+IC0qKioqKioqKioqKioqKioKPiAt KioqIDM1ODgsMzU5MiAqKioqCj4gLcKgwqAKPiAtwqDCoAo+IC0hICNsaW5lIDEyNzkgIi91c3Iv aG9tZXMvY2hldC9zcmMvYmFzaC9zcmMvcGFyc2UueSIKPiAtwqDCoAo+IC3CoMKgCj4gLS0tLSAz NTkzLDM1OTcgLS0tLQo+IC3CoMKgCj4gLcKgwqAKPiAtISAjbGluZSAxMjg0ICIvdXNyL3NyYy9s b2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqAKPiAtwqDCoAo+ IC0qKioqKioqKioqKioqKioKPiAtKioqIDQ5NDksNDk1MiAqKioqCj4gLS0tLSA0OTU0LDQ5NzIg LS0tLQo+IC3CoMKgc3RhdGljIGludCBlc2Fjc19uZWVkZWRfY291bnQ7Cj4gLcKgwqAKPiAtKyBz dGF0aWMgdm9pZAo+IC0rIHB1c2hfaGVyZWRvYyAocikKPiAtK8KgwqDCoMKgwqDCoFJFRElSRUNU ICpyOwo+IC0rIHsKPiAtK8KgwqDCoGlmIChuZWVkX2hlcmVfZG9jID49IEhFUkVET0NfTUFYKQo+ IC0rwqDCoMKgwqDCoHsKPiAtK8KgwqDCoMKgwqDCoMKgbGFzdF9jb21tYW5kX2V4aXRfdmFsdWUg PSBFWF9CQURVU0FHRTsKPiAtK8KgwqDCoMKgwqDCoMKgbmVlZF9oZXJlX2RvYyA9IDA7Cj4gLSvC oMKgwqDCoMKgwqDCoHJlcG9ydF9zeW50YXhfZXJyb3IgKF8oIm1heGltdW0gaGVyZS1kb2N1bWVu dCBjb3VudCBleGNlZWRlZCIpKTsKPiAtK8KgwqDCoMKgwqDCoMKgcmVzZXRfcGFyc2VyICgpOwo+ IC0rwqDCoMKgwqDCoMKgwqBleGl0X3NoZWxsIChsYXN0X2NvbW1hbmRfZXhpdF92YWx1ZSk7Cj4g LSvCoMKgwqDCoMKgfQo+IC0rwqDCoMKgcmVkaXJfc3RhY2tbbmVlZF9oZXJlX2RvYysrXSA9IHI7 Cj4gLSsgfQo+IC0rwqAKPiAtwqDCoHZvaWQKPiAtwqDCoGdhdGhlcl9oZXJlX2RvY3VtZW50cyAo KQo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDg1NDIsODU0MyAqKioqCj4gLS0tLSA4NTYyLDg1 NjQgLS0tLQo+IC3CoMKgfQo+IC3CoMKgI2VuZGlmIC8qIEhBTkRMRV9NVUxUSUJZVEUgKi8KPiAt K8KgCj4gLSoqKiAuLi9iYXNoLTQuMy9wYXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1Ny4w MDAwMDAwMDAgLTA1MDAKPiAtLS0tIHBhdGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4LjAw MDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2LDMwICoqKioKPiAtwqDC oMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZl cnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAyNwo+IC3C oMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiAtLS0tIDI2LDMwIC0tLS0K PiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBz Y2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAy OAo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiBkaWZmIC0tZ2l0 IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMtMDI5IGIvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDMt MDI5Cj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggOTNiZDM5MC4uMDAwMDAwMAo+ IC0tLSBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAyOQo+ICsrKyAvZGV2L251bGwKPiBAQCAt MSw1OSArMCwwIEBACj4gLQkJCcKgwqDCoMKgwqBCQVNIIFBBVENIIFJFUE9SVAo+IC0JCQnCoMKg wqDCoMKgPT09PT09PT09PT09PT09PT0KPiAtCj4gLUJhc2gtUmVsZWFzZToJNC4zCj4gLVBhdGNo LUlEOgliYXNoNDMtMDI5Cj4gLQo+IC1CdWctUmVwb3J0ZWQtYnk6CU1pY2hhbCBaYWxld3NraSA8 bGNhbXR1ZihhKWNvcmVkdW1wLmN4Pgo+IC1CdWctUmVmZXJlbmNlLUlEOgo+IC1CdWctUmVmZXJl bmNlLVVSTDoKPiAtCj4gLUJ1Zy1EZXNjcmlwdGlvbjoKPiAtCj4gLVdoZW4gYmFzaCBpcyBwYXJz aW5nIGEgZnVuY3Rpb24gZGVmaW5pdGlvbiB0aGF0IGNvbnRhaW5zIGEgaGVyZS1kb2N1bWVudAo+ IC1kZWxpbWl0ZWQgYnkgZW5kLW9mLWZpbGUgKG9yIGVuZC1vZi1zdHJpbmcpLCBpdCBsZWF2ZXMg dGhlIGNsb3NpbmcgZGVsaW1pdGVyCj4gLXVuaW5pdGlhbGl6ZWQuwqDCoFRoaXMgY2FuIHJlc3Vs dCBpbiBhbiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3Mgd2hlbiB0aGUgcGFyc2VkCj4gLWZ1bmN0aW9u IGlzIGxhdGVyIGNvcGllZC4KPiAtCj4gLVBhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToK PiAtCj4gLSoqKiAuLi9iYXNoLTQuMy4yOC9tYWtlX2NtZC5jCTIwMTEtMTItMTYgMDg6MDg6MDEu MDAwMDAwMDAwIC0wNTAwCj4gLS0tLSBtYWtlX2NtZC5jCTIwMTQtMTAtMDIgMTE6MjQ6MjMuMDAw MDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogNjkzLDY5NiAqKioqCj4gLS0t LSA2OTMsNjk3IC0tLS0KPiAtwqDCoMKgwqB0ZW1wLT5yZWRpcmVjdG9yID0gc291cmNlOwo+IC3C oMKgwqDCoHRlbXAtPnJlZGlyZWN0ZWUgPSBkZXN0X2FuZF9maWxlbmFtZTsKPiAtK8KgwqDCoHRl bXAtPmhlcmVfZG9jX2VvZiA9IDA7Cj4gLcKgwqDCoMKgdGVtcC0+aW5zdHJ1Y3Rpb24gPSBpbnN0 cnVjdGlvbjsKPiAtwqDCoMKgwqB0ZW1wLT5mbGFncyA9IDA7Cj4gLSoqKiAuLi9iYXNoLTQuMy4y OC9jb3B5X2NtZC5jCTIwMDktMDktMTEgMTY6Mjg6MDIuMDAwMDAwMDAwIC0wNDAwCj4gLS0tLSBj b3B5X2NtZC5jCTIwMTQtMTAtMDIgMTE6MjQ6MjMuMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioq KioqKioqKgo+IC0qKiogMTI3LDEzMSAqKioqCj4gLcKgwqDCoMKgwqDCoGNhc2Ugcl9yZWFkaW5n X3VudGlsOgo+IC3CoMKgwqDCoMKgwqBjYXNlIHJfZGVibGFua19yZWFkaW5nX3VudGlsOgo+IC0h wqDCoMKgwqDCoMKgwqBuZXdfcmVkaXJlY3QtPmhlcmVfZG9jX2VvZiA9IHNhdmVzdHJpbmcgKHJl ZGlyZWN0LT5oZXJlX2RvY19lb2YpOwo+IC3CoMKgwqDCoMKgwqDCoMKgLypGQUxMVEhST1VHSCov Cj4gLcKgwqDCoMKgwqDCoGNhc2Ugcl9yZWFkaW5nX3N0cmluZzoKPiAtLS0tIDEyNywxMzEgLS0t LQo+IC3CoMKgwqDCoMKgwqBjYXNlIHJfcmVhZGluZ191bnRpbDoKPiAtwqDCoMKgwqDCoMKgY2Fz ZSByX2RlYmxhbmtfcmVhZGluZ191bnRpbDoKPiAtIcKgwqDCoMKgwqDCoMKgbmV3X3JlZGlyZWN0 LT5oZXJlX2RvY19lb2YgPSByZWRpcmVjdC0+aGVyZV9kb2NfZW9mID8gc2F2ZXN0cmluZwo+IChy ZWRpcmVjdC0+aGVyZV9kb2NfZW9mKSA6IDA7Cj4gLcKgwqDCoMKgwqDCoMKgwqAvKkZBTExUSFJP VUdIKi8KPiAtwqDCoMKgwqDCoMKgY2FzZSByX3JlYWRpbmdfc3RyaW5nOgo+IC0qKiogLi4vYmFz aC00LjMvcGF0Y2hsZXZlbC5oCTIwMTItMTItMjkgMTA6NDc6NTcuMDAwMDAwMDAwIC0wNTAwCj4g LS0tLSBwYXRjaGxldmVsLmgJMjAxNC0wMy0yMCAyMDowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiAt KioqKioqKioqKioqKioqCj4gLSoqKiAyNiwzMCAqKioqCj4gLcKgwqDCoMKgwqBsb29rcyBmb3Ig dG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICov Cj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMjgKPiAtwqDCoAo+IC3CoMKgI2VuZGlm IC8qIF9QQVRDSExFVkVMX0hfICovCj4gLS0tLSAyNiwzMCAtLS0tCj4gLcKgwqDCoMKgwqBsb29r cyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmlu ZykuICovCj4gLcKgwqAKPiAtISAjZGVmaW5lIFBBVENITEVWRUwgMjkKPiAtwqDCoAo+IC3CoMKg I2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jh c2gvYmFzaDQzLTAzMCBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQzLTAzMAo+IGRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAo+IGluZGV4IDc4OTg0ZGEuLjAwMDAwMDAKPiAtLS0gYS9zcmMvcGF0Y2hl cy9iYXNoL2Jhc2g0My0wMzAKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsMjA2NCArMCwwIEBACj4g LQkJCcKgwqDCoMKgwqBCQVNIIFBBVENIIFJFUE9SVAo+IC0JCQnCoMKgwqDCoMKgPT09PT09PT09 PT09PT09PT0KPiAtCj4gLUJhc2gtUmVsZWFzZToJNC4zCj4gLVBhdGNoLUlEOgliYXNoNDMtMDMw Cj4gLQo+IC1CdWctUmVwb3J0ZWQtYnk6CU1pY2hhbCBaYWxld3NraSA8bGNhbXR1ZihhKWNvcmVk dW1wLmN4Pgo+IC1CdWctUmVmZXJlbmNlLUlEOgo+IC1CdWctUmVmZXJlbmNlLVVSTDoKPiAtCj4g LUJ1Zy1EZXNjcmlwdGlvbjoKPiAtCj4gLUEgY29tYmluYXRpb24gb2YgbmVzdGVkIGNvbW1hbmQg c3Vic3RpdHV0aW9ucyBhbmQgZnVuY3Rpb24gaW1wb3J0aW5nIGZyb20KPiAtdGhlIGVudmlyb25t ZW50IGNhbiBjYXVzZSBiYXNoIHRvIGV4ZWN1dGUgY29kZSBhcHBlYXJpbmcgaW4gdGhlIGVudmly b25tZW50Cj4gLXZhcmlhYmxlIHZhbHVlIGZvbGxvd2luZyB0aGUgZnVuY3Rpb24gZGVmaW5pdGlv bi4KPiAtCj4gLVBhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiAtCj4gLSoqKiAuLi9i YXNoLTQuMy4yOS9idWlsdGlucy9ldmFsc3RyaW5nLmMJMjAxNC0xMC0wMSAxMjo1Nzo0Ny4wMDAw MDAwMDAKPiAtMDQwMAo+IC0tLS0gYnVpbHRpbnMvZXZhbHN0cmluZy5jCTIwMTQtMTAtMDMgMTE6 NTc6MDQuMDAwMDAwMDAwIC0wNDAwCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMzA5LDMxOCAq KioqCj4gLcKgwqAJwqDCoMKgwqDCoMKgc3RydWN0IGZkX2JpdG1hcCAqYml0bWFwOwo+IC3CoMKg Cj4gLSHCoAnCoMKgwqDCoMKgwqBpZiAoKGZsYWdzICYgU0VWQUxfRlVOQ0RFRikgJiYgY29tbWFu ZC0+dHlwZSAhPQo+IGNtX2Z1bmN0aW9uX2RlZikKPiAtwqDCoAkJewo+IC0hwqAJCcKgwqBpbnRl cm5hbF93YXJuaW5nICgiJXM6IGlnbm9yaW5nIGZ1bmN0aW9uIGRlZmluaXRpb24KPiBhdHRlbXB0 IiwgZnJvbV9maWxlKTsKPiAtIcKgCQnCoMKgc2hvdWxkX2p1bXBfdG9fdG9wX2xldmVsID0gMDsK PiAtIcKgCQnCoMKgbGFzdF9yZXN1bHQgPSBsYXN0X2NvbW1hbmRfZXhpdF92YWx1ZSA9IEVYX0JB RFVTQUdFOwo+IC0hwqAJCcKgwqBicmVhazsKPiAtwqDCoAkJfQo+IC3CoMKgCj4gLS0tLSAzMTMs MzM1IC0tLS0KPiAtwqDCoAnCoMKgwqDCoMKgwqBzdHJ1Y3QgZmRfYml0bWFwICpiaXRtYXA7Cj4g LcKgwqAKPiAtIcKgCcKgwqDCoMKgwqDCoGlmIChmbGFncyAmIFNFVkFMX0ZVTkNERUYpCj4gLcKg wqAJCXsKPiAtIcKgCQnCoMKgY2hhciAqeDsKPiAtIcKgCj4gLSHCoAkJwqDCoC8qIElmIHRoZSBj b21tYW5kIHBhcnNlcyB0byBzb21ldGhpbmcgb3RoZXIgdGhhbiBhCj4gc3RyYWlnaHQKPiAtIcKg CQnCoMKgwqDCoMKgZnVuY3Rpb24gZGVmaW5pdGlvbiwgb3IgaWYgd2UgaGF2ZSBub3QgY29uc3Vt ZWQgdGhlCj4gZW50aXJlCj4gLSHCoAkJwqDCoMKgwqDCoHN0cmluZywgb3IgaWYgdGhlIHBhcnNl ciBoYXMgdHJhbnNmb3JtZWQgdGhlIGZ1bmN0aW9uCj4gLSHCoAkJwqDCoMKgwqDCoG5hbWUgKGFz IHBhcnNpbmcgd2lsbCBpZiBpdCBiZWdpbnMgb3IgZW5kcyB3aXRoIHNoZWxsCj4gLSHCoAkJwqDC oMKgwqDCoHdoaXRlc3BhY2UsIGZvciBleGFtcGxlKSwgcmVqZWN0IHRoZSBhdHRlbXB0ICovCj4g LSHCoAkJwqDCoGlmIChjb21tYW5kLT50eXBlICE9IGNtX2Z1bmN0aW9uX2RlZiB8fAo+IC0hwqAJ CcKgwqDCoMKgwqDCoCgoeCA9IHBhcnNlcl9yZW1haW5pbmdfaW5wdXQgKCkpICYmICp4KSB8fAo+ IC0hwqAJCcKgwqDCoMKgwqDCoChTVFJFUSAoZnJvbV9maWxlLCBjb21tYW5kLT52YWx1ZS5GdW5j dGlvbl9kZWYtPm5hbWUtCj4gPndvcmQpID09IDApKQo+IC0hwqAJCcKgwqDCoMKgewo+IC0hwqAJ CcKgwqDCoMKgwqDCoGludGVybmFsX3dhcm5pbmcgKF8oIiVzOiBpZ25vcmluZyBmdW5jdGlvbiBk ZWZpbml0aW9uCj4gYXR0ZW1wdCIpLCBmcm9tX2ZpbGUpOwo+IC0hwqAJCcKgwqDCoMKgwqDCoHNo b3VsZF9qdW1wX3RvX3RvcF9sZXZlbCA9IDA7Cj4gLSHCoAkJwqDCoMKgwqDCoMKgbGFzdF9yZXN1 bHQgPSBsYXN0X2NvbW1hbmRfZXhpdF92YWx1ZSA9IEVYX0JBRFVTQUdFOwo+IC0hwqAJCcKgwqDC oMKgwqDCoHJlc2V0X3BhcnNlciAoKTsKPiAtIcKgCQnCoMKgwqDCoMKgwqBicmVhazsKPiAtIcKg CQnCoMKgwqDCoH0KPiAtwqDCoAkJfQo+IC3CoMKgCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiog Mzc5LDM4MyAqKioqCj4gLcKgwqAKPiAtwqDCoAnCoMKgwqDCoMKgwqBpZiAoZmxhZ3MgJiBTRVZB TF9PTkVDTUQpCj4gLSHCoAkJYnJlYWs7Cj4gLcKgwqAJwqDCoMKgwqB9Cj4gLcKgwqAJfQo+IC0t LS0gMzk2LDQwMyAtLS0tCj4gLcKgwqAKPiAtwqDCoAnCoMKgwqDCoMKgwqBpZiAoZmxhZ3MgJiBT RVZBTF9PTkVDTUQpCj4gLSHCoAkJewo+IC0hwqAJCcKgwqByZXNldF9wYXJzZXIgKCk7Cj4gLSHC oAkJwqDCoGJyZWFrOwo+IC0hwqAJCX0KPiAtwqDCoAnCoMKgwqDCoH0KPiAtwqDCoAl9Cj4gLSoq KiAuLi9iYXNoLTQuMy4yOS9wYXJzZS55CTIwMTQtMTAtMDEgMTI6NTg6NDMuMDAwMDAwMDAwIC0w NDAwCj4gLS0tLSBwYXJzZS55CTIwMTQtMTAtMDMgMTQ6NDg6NTkuMDAwMDAwMDAwIC0wNDAwCj4g LSoqKioqKioqKioqKioqKgo+IC0qKiogMjUzOSwyNTQyICoqKioKPiAtLS0tIDI1MzksMjU1MiAt LS0tCj4gLcKgwqB9Cj4gLcKgwqAKPiAtKyBjaGFyICoKPiAtKyBwYXJzZXJfcmVtYWluaW5nX2lu cHV0ICgpCj4gLSsgewo+IC0rwqDCoMKgaWYgKHNoZWxsX2lucHV0X2xpbmUgPT0gMCkKPiAtK8Kg wqDCoMKgwqByZXR1cm4gMDsKPiAtK8KgwqDCoGlmIChzaGVsbF9pbnB1dF9saW5lX2luZGV4IDwg MCB8fCBzaGVsbF9pbnB1dF9saW5lX2luZGV4ID49Cj4gc2hlbGxfaW5wdXRfbGluZV9sZW4pCj4g LSvCoMKgwqDCoMKgcmV0dXJuICdcMCc7CS8qIFhYWCAqLwo+IC0rwqDCoMKgcmV0dXJuIChzaGVs bF9pbnB1dF9saW5lICsgc2hlbGxfaW5wdXRfbGluZV9pbmRleCk7Cj4gLSsgfQo+IC0rwqAKPiAt wqDCoCNpZmRlZiBJTkNMVURFX1VOVVNFRAo+IC3CoMKgLyogQmFjayB0aGUgaW5wdXQgcG9pbnRl ciB1cCBieSBvbmUsIGVmZmVjdGl2ZWx5IGB1bmdldHRpbmcnIGEgY2hhcmFjdGVyLgo+ICovCj4g LSoqKioqKioqKioqKioqKgo+IC0qKiogNDAyOCw0MDMzICoqKioKPiAtwqDCoMKgwqAvKiByZXNl dF9wYXJzZXIgY2xlYXJzIHNoZWxsX2lucHV0X2xpbmUgYW5kIGFzc29jaWF0ZWQgdmFyaWFibGVz ICovCj4gLcKgwqDCoMKgcmVzdG9yZV9pbnB1dF9saW5lX3N0YXRlICgmbHMpOwo+IC0hwqDCoMKg aWYgKGludGVyYWN0aXZlKQo+IC0hwqDCoMKgwqDCoHRva2VuX3RvX3JlYWQgPSAwOwo+IC3CoMKg Cj4gLcKgwqDCoMKgLyogTmVlZCB0byBmaW5kIGhvdyBtYW55IGNoYXJhY3RlcnMgcGFyc2VfYW5k X2V4ZWN1dGUgY29uc3VtZWQsIHVwZGF0ZQo+IC0tLS0gNDA1Myw0MDU4IC0tLS0KPiAtwqDCoMKg wqAvKiByZXNldF9wYXJzZXIgY2xlYXJzIHNoZWxsX2lucHV0X2xpbmUgYW5kIGFzc29jaWF0ZWQg dmFyaWFibGVzICovCj4gLcKgwqDCoMKgcmVzdG9yZV9pbnB1dF9saW5lX3N0YXRlICgmbHMpOwo+ IC0hwqAKPiAtIcKgwqDCoHRva2VuX3RvX3JlYWQgPSAwOwo+IC3CoMKgCj4gLcKgwqDCoMKgLyog TmVlZCB0byBmaW5kIGhvdyBtYW55IGNoYXJhY3RlcnMgcGFyc2VfYW5kX2V4ZWN1dGUgY29uc3Vt ZWQsIHVwZGF0ZQo+IC0qKiogLi4vYmFzaC00LjMuMjkvc2hlbGwuaAkyMDE0LTEwLTAxIDEyOjU3 OjM5LjAwMDAwMDAwMCAtMDQwMAo+IC0tLS0gc2hlbGwuaAkyMDE0LTEwLTAzIDE0OjQ5OjEyLjAw MDAwMDAwMCAtMDQwMAo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDE4MSwxODQgKioqKgo+IC0t LS0gMTgxLDE4NiAtLS0tCj4gLcKgwqAKPiAtwqDCoC8qIExldCdzIHRyeSBkZWNsYXJpbmcgdGhl c2UgaGVyZS4gKi8KPiAtKyBleHRlcm4gY2hhciAqcGFyc2VyX3JlbWFpbmluZ19pbnB1dCBfX1Ao KHZvaWQpKTsKPiAtK8KgCj4gLcKgwqBleHRlcm4gc2hfcGFyc2VyX3N0YXRlX3QgKnNhdmVfcGFy c2VyX3N0YXRlIF9fUCgoc2hfcGFyc2VyX3N0YXRlX3QgKikpOwo+IC3CoMKgZXh0ZXJuIHZvaWQg cmVzdG9yZV9wYXJzZXJfc3RhdGUgX19QKChzaF9wYXJzZXJfc3RhdGVfdCAqKSk7Cj4gLSoqKiAu Li9iYXNoLTQuMy4yOC95LnRhYi5jCTIwMTQtMTAtMDEgMTM6MDk6NDYuMDAwMDAwMDAwIC0wNDAw Cj4gLS0tLSB5LnRhYi5jCTIwMTQtMTAtMDQgMTk6MjY6MjIuMDAwMDAwMDAwIC0wNDAwCj4gLSoq KioqKioqKioqKioqKgo+IC0qKiogMTY5LDE3MyAqKioqCj4gLcKgwqAKPiAtwqDCoC8qIENvcHkg dGhlIGZpcnN0IHBhcnQgb2YgdXNlciBkZWNsYXJhdGlvbnMuwqDCoCovCj4gLSEgI2xpbmUgMjEg Ii91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDC oAo+IC3CoMKgI2luY2x1ZGUgImNvbmZpZy5oIgo+IC0tLS0gMTY5LDE3MyAtLS0tCj4gLcKgwqAK PiAtwqDCoC8qIENvcHkgdGhlIGZpcnN0IHBhcnQgb2YgdXNlciBkZWNsYXJhdGlvbnMuwqDCoCov Cj4gLSEgI2xpbmUgMjEgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJz ZS55Igo+IC3CoMKgCj4gLcKgwqAjaW5jbHVkZSAiY29uZmlnLmgiCj4gLSoqKioqKioqKioqKioq Kgo+IC0qKiogNDk4LDUwMiAqKioqCj4gLcKgwqAjaWYgISBkZWZpbmVkIFlZU1RZUEUgJiYgISBk ZWZpbmVkIFlZU1RZUEVfSVNfREVDTEFSRUQKPiAtwqDCoHR5cGVkZWYgdW5pb24gWVlTVFlQRQo+ IC0hICNsaW5lIDMyOSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9w YXJzZS55Igo+IC3CoMKgewo+IC3CoMKgwqDCoFdPUkRfREVTQyAqd29yZDsJCS8qIHRoZSB3b3Jk IHRoYXQgd2UgcmVhZC4gKi8KPiAtLS0tIDQ5OCw1MDIgLS0tLQo+IC3CoMKgI2lmICEgZGVmaW5l ZCBZWVNUWVBFICYmICEgZGVmaW5lZCBZWVNUWVBFX0lTX0RFQ0xBUkVECj4gLcKgwqB0eXBlZGVm IHVuaW9uIFlZU1RZUEUKPiAtISAjbGluZSAzMjkgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00 LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgewo+IC3CoMKgwqDCoFdPUkRfREVTQyAqd29yZDsJ CS8qIHRoZSB3b3JkIHRoYXQgd2UgcmVhZC4gKi8KPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAy MDk5LDIxMDMgKioqKgo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgY2Fz ZSAyOgo+IC0hICNsaW5lIDM4MyAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQu My4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgLyogQ2FzZSBvZiBy ZWd1bGFyIGNvbW1hbmQuwqDCoERpc2NhcmQgdGhlIGVycm9yCj4gLS0tLSAyMDk5LDIxMDMgLS0t LQo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgY2FzZSAyOgo+IC0hICNs aW5lIDM4MyAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAvKiBDYXNlIG9mIHJlZ3VsYXIgY29tbWFuZC7C oMKgRGlzY2FyZCB0aGUgZXJyb3IKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyMTEzLDIxMTcg KioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzOgo+IC0hICNsaW5lIDM5NCAiL3Vzci9zcmMv bG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 Cj4gLcKgwqAJCQnCoMKgLyogQ2FzZSBvZiByZWd1bGFyIGNvbW1hbmQsIGJ1dCBub3QgYSB2ZXJ5 Cj4gLS0tLSAyMTEzLDIxMTcgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzOgo+IC0hICNs aW5lIDM5NCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAvKiBDYXNlIG9mIHJlZ3VsYXIgY29tbWFuZCwg YnV0IG5vdCBhIHZlcnkKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyMTI1LDIxMjkgKioqKgo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0Ogo+IC0hICNsaW5lIDQwMyAiL3Vzci9zcmMvbG9jYWwv Y2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKg wqAJCQnCoMKgLyogRXJyb3IgZHVyaW5nIHBhcnNpbmcuwqDCoFJldHVybiBOVUxMIGNvbW1hbmQu ICovCj4gLS0tLSAyMTI1LDIxMjkgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0Ogo+IC0h ICNsaW5lIDQwMyAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAvKiBFcnJvciBkdXJpbmcgcGFyc2luZy7C oMKgUmV0dXJuIE5VTEwgY29tbWFuZC4gKi8KPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyMTQz LDIxNDcgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1Ogo+IC0hICNsaW5lIDQxOCAiL3Vz ci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDC oMKgwqB7Cj4gLcKgwqAJCQnCoMKgLyogQ2FzZSBvZiBFT0Ygc2VlbiBieSBpdHNlbGYuwqDCoERv IGlnbm9yZWVvZiBvcgo+IC0tLS0gMjE0MywyMTQ3IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgNToKPiAtISAjbGluZSA0MTggIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hl ZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgLyogQ2FzZSBvZiBFT0Yg c2VlbiBieSBpdHNlbGYuwqDCoERvIGlnbm9yZWVvZiBvcgo+IC0qKioqKioqKioqKioqKioKPiAt KioqIDIxNTQsMjE2OCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY6Cj4gLSEgI2xpbmUg NDI4ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsgKHl5dmFsLndvcmRfbGlzdCkgPSBtYWtlX3dvcmRfbGlzdCAoKHl5dnNw WygxKSAtICgxKV0ud29yZCksCj4gKFdPUkRfTElTVCAqKU5VTEwpOyB9Cj4gLcKgwqDCoMKgwqDC oGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA3Ogo+IC0hICNsaW5lIDQzMCAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7ICh5eXZhbC53b3JkX2xpc3QpID0gbWFrZV93b3JkX2xpc3QgKCh5eXZzcFsoMikgLSAoMild LndvcmQpLAo+ICh5eXZzcFsoMSkgLSAoMildLndvcmRfbGlzdCkpOyB9Cj4gLcKgwqDCoMKgwqDC oGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4Ogo+IC0hICNsaW5lIDQzNCAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAxOwo+IC0tLS0gMjE1NCwyMTY4IC0tLS0K PiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNjoKPiAtISAjbGluZSA0MjggIi91c3Ivc3JjL2xvY2Fs L2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC53 b3JkX2xpc3QpID0gbWFrZV93b3JkX2xpc3QgKCh5eXZzcFsoMSkgLSAoMSldLndvcmQpLAo+IChX T1JEX0xJU1QgKilOVUxMKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKg wqDCoGNhc2UgNzoKPiAtISAjbGluZSA0MzAgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMt cGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC53b3JkX2xpc3QpID0gbWFr ZV93b3JkX2xpc3QgKCh5eXZzcFsoMikgLSAoMildLndvcmQpLAo+ICh5eXZzcFsoMSkgLSAoMild LndvcmRfbGlzdCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSA4Ogo+IC0hICNsaW5lIDQzNCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRj aGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9 IDE7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjE3MywyMTc3ICoqKioKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgOToKPiAtISAjbGluZSA0NDAgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jh c2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNv dXJjZS5kZXN0ID0gMDsKPiAtLS0tIDIxNzMsMjE3NyAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDk6Cj4gLSEgI2xpbmUgNDQwICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNo ZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0g MDsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyMTgyLDIxODYgKioqKgo+IC3CoMKgCj4gLcKg wqDCoMKgY2FzZSAxMDoKPiAtISAjbGluZSA0NDYgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jh c2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNv dXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVyKTsKPiAtLS0tIDIxODIsMjE4NiAt LS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEwOgo+IC0hICNsaW5lIDQ0NiAiL3Vzci9zcmMv bG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAt wqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLSoq KioqKioqKioqKioqKgo+IC0qKiogMjE5MSwyMTk1ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgMTE6Cj4gLSEgI2xpbmUgNDUyICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gt NC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVz dCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLS0tLSAyMTkxLDIxOTUgLS0tLQo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSAxMToKPiAtISAjbGluZSA0NTIgIi91c3Ivc3JjL2xvY2FsL2Jh c2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgc291cmNlLmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0qKioqKioqKioq KioqKioKPiAtKioqIDIyMDAsMjIwNCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEyOgo+ IC0hICNsaW5lIDQ1OCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0g KHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLS0tLSAyMjAwLDIyMDQgLS0tLQo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSAxMjoKPiAtISAjbGluZSA0NTggIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFz aC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291 cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLSoqKioqKioqKioqKioq Kgo+IC0qKiogMjIwOSwyMjEzICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTM6Cj4gLSEg I2xpbmUgNDY0ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmlsZW5hbWUgPSAoeXl2 c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtLS0tIDIyMDksMjIxMyAtLS0tCj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDEzOgo+IC0hICNsaW5lIDQ2NCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQu My1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2Uu ZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtKioqKioqKioqKioqKioqCj4g LSoqKiAyMjE4LDIyMjIgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNDoKPiAtISAjbGlu ZSA0NzAgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIK PiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMTsKPiAtLS0tIDIy MTgsMjIyMiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE0Ogo+IC0hICNsaW5lIDQ3MCAi L3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKg wqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDE7Cj4gLSoqKioqKioqKioqKioqKgo+ IC0qKiogMjIyNywyMjMxICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTU6Cj4gLSEgI2xp bmUgNDc2ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkg LSAoMyldLm51bWJlcik7Cj4gLS0tLSAyMjI3LDIyMzEgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSAxNToKPiAtISAjbGluZSA0NzYgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0 Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3Qg PSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIy MzYsMjI0MCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2Ogo+IC0hICNsaW5lIDQ4MiAi L3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgz KV0ud29yZCk7Cj4gLS0tLSAyMjM2LDIyNDAgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAx NjoKPiAtISAjbGluZSA0ODIgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0g KHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjI0NSwy MjQ5ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTc6Cj4gLSEgI2xpbmUgNDg4ICIvdXNy L3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKg wqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDE7Cj4gLS0tLSAyMjQ1LDIyNDkgLS0t LQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNzoKPiAtISAjbGluZSA0ODggIi91c3Ivc3JjL2xv Y2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKg wqAJCQnCoMKgc291cmNlLmRlc3QgPSAxOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIyNTQs MjI1OCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE4Ogo+IC0hICNsaW5lIDQ5NCAiL3Vz ci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDC oMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1i ZXIpOwo+IC0tLS0gMjI1NCwyMjU4IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTg6Cj4g LSEgI2xpbmUgNDk0ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2Uu eSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygx KSAtICgzKV0ubnVtYmVyKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyMjYzLDIyNjcgKioq Kgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxOToKPiAtISAjbGluZSA1MDAgIi91c3Ivc3JjL2xv Y2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkgLSAoMyldLndvcmQpOwo+ IC0tLS0gMjI2MywyMjY3IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTk6Cj4gLSEgI2xp bmUgNTAwICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkg LSAoMyldLndvcmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDIyNzIsMjI3NiAqKioqCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDIwOgo+IC0hICNsaW5lIDUwNiAiL3Vzci9zcmMvbG9jYWwv Y2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKg wqAJCQnCoMKgc291cmNlLmRlc3QgPSAwOwo+IC0tLS0gMjI3MiwyMjc2IC0tLS0KPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgMjA6Cj4gLSEgI2xpbmUgNTA2ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jh c2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNv dXJjZS5kZXN0ID0gMDsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyMjgxLDIyODUgKioqKgo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAyMToKPiAtISAjbGluZSA1MTIgIi91c3Ivc3JjL2xvY2Fs L2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3C oMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVyKTsKPiAtLS0t IDIyODEsMjI4NSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDIxOgo+IC0hICNsaW5lIDUx MiAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51 bWJlcik7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjI5MCwyMjk0ICoqKioKPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgMjI6Cj4gLSEgI2xpbmUgNTE4ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3Ny Yy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKg wqBzb3VyY2UuZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtLS0tIDIyOTAs MjI5NCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDIyOgo+IC0hICNsaW5lIDUxOCAiL3Vz ci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3Jk KTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyMjk5LDIzMDMgKioqKgo+IC3CoMKgCj4gLcKg wqDCoMKgY2FzZSAyMzoKPiAtISAjbGluZSA1MjQgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jh c2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNv dXJjZS5kZXN0ID0gMDsKPiAtLS0tIDIyOTksMjMwMyAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDIzOgo+IC0hICNsaW5lIDUyNCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRj aGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9 IDA7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjMwOSwyMzEzICoqKioKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMjQ6Cj4gLSEgI2xpbmUgNTMxICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9i YXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBz b3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLS0tLSAyMzA5LDIzMTMg LS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAyNDoKPiAtISAjbGluZSA1MzEgIi91c3Ivc3Jj L2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4g LcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0q KioqKioqKioqKioqKioKPiAtKioqIDIzMTksMjMyMyAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDI1Ogo+IC0hICNsaW5lIDUzOCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNo LTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZp bGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLS0tLSAyMzE5LDIzMjMgLS0tLQo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAyNToKPiAtISAjbGluZSA1MzggIi91c3Ivc3JjL2xvY2Fs L2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJ CQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLSoqKioq KioqKioqKioqKgo+IC0qKiogMjMyOSwyMzMzICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug MjY6Cj4gLSEgI2xpbmUgNTQ1ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4z LjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9 IDA7Cj4gLS0tLSAyMzI5LDIzMzMgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAyNjoKPiAt ISAjbGluZSA1NDUgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55 Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAwOwo+IC0qKioq KioqKioqKioqKioKPiAtKioqIDIzMzksMjM0MyAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDI3Ogo+IC0hICNsaW5lIDU1MiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQu My4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3Qg PSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0tLS0gMjMzOSwyMzQzIC0tLS0KPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMjc6Cj4gLSEgI2xpbmUgNTUyICIvdXNyL3NyYy9sb2NhbC9iYXNo L2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDC oHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVyKTsKPiAtKioqKioqKioqKioq KioqCj4gLSoqKiAyMzQ5LDIzNTMgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAyODoKPiAt ISAjbGluZSA1NTkgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5 eXZzcFsoMSkgLSAoMyldLndvcmQpOwo+IC0tLS0gMjM0OSwyMzUzIC0tLS0KPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMjg6Cj4gLSEgI2xpbmUgNTU5ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gt NC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJj ZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkgLSAoMyldLndvcmQpOwo+IC0qKioqKioqKioqKioqKioK PiAtKioqIDIzNTksMjM2MyAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDI5Ogo+IC0hICNs aW5lIDU2NiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55 Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAwOwo+IC0tLS0g MjM1OSwyMzYzIC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMjk6Cj4gLSEgI2xpbmUgNTY2 ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKg wqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMDsKPiAtKioqKioqKioqKioqKioq Cj4gLSoqKiAyMzY4LDIzNzIgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzMDoKPiAtISAj bGluZSA1NzIgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2Uu eSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygx KSAtICgzKV0ubnVtYmVyKTsKPiAtLS0tIDIzNjgsMjM3MiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKg wqBjYXNlIDMwOgo+IC0hICNsaW5lIDU3MiAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1w YXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVz dCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiog MjM3NywyMzgxICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMzE6Cj4gLSEgI2xpbmUgNTc4 ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0g KDMpXS53b3JkKTsKPiAtLS0tIDIzNzcsMjM4MSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDMxOgo+IC0hICNsaW5lIDU3OCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVk L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmlsZW5hbWUg PSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyMzg2 LDIzOTAgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzMjoKPiAtISAjbGluZSA1ODQgIi91 c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKg wqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMDsKPiAtLS0tIDIzODYsMjM5MCAt LS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDMyOgo+IC0hICNsaW5lIDU4NCAiL3Vzci9zcmMv bG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAt wqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDA7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjM5 NSwyMzk5ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMzM6Cj4gLSEgI2xpbmUgNTkwICIv dXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51 bWJlcik7Cj4gLS0tLSAyMzk1LDIzOTkgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzMzoK PiAtISAjbGluZSA1OTAgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAoeXl2c3Bb KDEpIC0gKDMpXS5udW1iZXIpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI0MDQsMjQwOCAq KioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDM0Ogo+IC0hICNsaW5lIDU5NiAiL3Vzci9zcmMv bG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7 Cj4gLS0tLSAyNDA0LDI0MDggLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAzNDoKPiAtISAj bGluZSA1OTYgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0gKHl5dnNwWygx KSAtICgzKV0ud29yZCk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjQxMywyNDE3ICoqKioK PiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMzU6Cj4gLSEgI2xpbmUgNjAyICIvdXNyL3NyYy9sb2Nh bC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAt wqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDE7Cj4gLS0tLSAyNDEzLDI0MTcgLS0tLQo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAzNToKPiAtISAjbGluZSA2MDIgIi91c3Ivc3JjL2xvY2FsL2Jhc2gv YmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKg c291cmNlLmRlc3QgPSAxOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI0MjIsMjQyNiAqKioq Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDM2Ogo+IC0hICNsaW5lIDYwOCAiL3Vzci9zcmMvbG9j YWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4g LcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0t LS0gMjQyMiwyNDI2IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMzY6Cj4gLSEgI2xpbmUg NjA4ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDC oMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0u bnVtYmVyKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNDMxLDI0MzUgKioqKgo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAzNzoKPiAtISAjbGluZSA2MTQgIi91c3Ivc3JjL2xvY2FsL2NoZXQv c3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJ wqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkgLSAoMyldLndvcmQpOwo+IC0tLS0gMjQz MSwyNDM1IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMzc6Cj4gLSEgI2xpbmUgNjE0ICIv dXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkgLSAoMyldLndv cmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI0NDAsMjQ0NCAqKioqCj4gLcKgwqAKPiAt wqDCoMKgwqBjYXNlIDM4Ogo+IC0hICNsaW5lIDYyMCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMv YmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKg c291cmNlLmRlc3QgPSAwOwo+IC0tLS0gMjQ0MCwyNDQ0IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgMzg6Cj4gLSEgI2xpbmUgNjIwICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBh dGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0 ID0gMDsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNDQ5LDI0NTMgKioqKgo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSAzOToKPiAtISAjbGluZSA2MjYgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3Jj L2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDC oHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVyKTsKPiAtLS0tIDI0NDksMjQ1 MyAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDM5Ogo+IC0hICNsaW5lIDYyNiAiL3Vzci9z cmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4g LSoqKioqKioqKioqKioqKgo+IC0qKiogMjQ1OCwyNDYyICoqKioKPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgNDA6Cj4gLSEgI2xpbmUgNjMyICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jh c2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2Uu ZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtLS0tIDI0NTgsMjQ2MiAtLS0t Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQwOgo+IC0hICNsaW5lIDYzMiAiL3Vzci9zcmMvbG9j YWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDC oAkJCcKgwqBzb3VyY2UuZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3JkKTsKPiAtKioq KioqKioqKioqKioqCj4gLSoqKiAyNDY3LDI0NzEgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSA0MToKPiAtISAjbGluZSA2MzggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00 LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0 ID0gMTsKPiAtLS0tIDI0NjcsMjQ3MSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQxOgo+ IC0hICNsaW5lIDYzOCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDE7Cj4gLSoq KioqKioqKioqKioqKgo+IC0qKiogMjQ3NiwyNDgwICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgNDI6Cj4gLSEgI2xpbmUgNjQ0ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gt NC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVz dCA9ICh5eXZzcFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLS0tLSAyNDc2LDI0ODAgLS0tLQo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSA0MjoKPiAtISAjbGluZSA2NDQgIi91c3Ivc3JjL2xvY2FsL2Jh c2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgc291cmNlLmRlc3QgPSAoeXl2c3BbKDEpIC0gKDMpXS5udW1iZXIpOwo+IC0qKioqKioqKioq KioqKioKPiAtKioqIDI0ODUsMjQ4OSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQzOgo+ IC0hICNsaW5lIDY1MCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmZpbGVuYW1lID0g KHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLS0tLSAyNDg1LDI0ODkgLS0tLQo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSA0MzoKPiAtISAjbGluZSA2NTAgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFz aC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291 cmNlLmZpbGVuYW1lID0gKHl5dnNwWygxKSAtICgzKV0ud29yZCk7Cj4gLSoqKioqKioqKioqKioq Kgo+IC0qKiogMjQ5NCwyNDk4ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNDQ6Cj4gLSEg I2xpbmUgNjU2ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDE7Cj4gLS0t LSAyNDk0LDI0OTggLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0NDoKPiAtISAjbGluZSA2 NTYgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAxOwo+IC0qKioqKioqKioqKioq KioKPiAtKioqIDI1MDMsMjUwNyAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQ1Ogo+IC0h ICNsaW5lIDY2MiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAoeXl2c3Bb KDEpIC0gKDMpXS5udW1iZXIpOwo+IC0tLS0gMjUwMywyNTA3IC0tLS0KPiAtwqDCoAo+IC3CoMKg wqDCoGNhc2UgNDU6Cj4gLSEgI2xpbmUgNjYyICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4z LXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5k ZXN0ID0gKHl5dnNwWygxKSAtICgzKV0ubnVtYmVyKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoq KiAyNTEyLDI1MTYgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0NjoKPiAtISAjbGluZSA2 NjggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFtZSA9ICh5eXZzcFsoMSkg LSAoMyldLndvcmQpOwo+IC0tLS0gMjUxMiwyNTE2IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNh c2UgNDY6Cj4gLSEgI2xpbmUgNjY4ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNo ZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5maWxlbmFt ZSA9ICh5eXZzcFsoMSkgLSAoMyldLndvcmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI1 MjEsMjUyNSAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQ3Ogo+IC0hICNsaW5lIDY3NCAi L3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgc291cmNlLmRlc3QgPSAwOwo+IC0tLS0gMjUyMSwyNTI1 IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNDc6Cj4gLSEgI2xpbmUgNjc0ICIvdXNyL3Ny Yy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMDsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAy NTMwLDI1MzQgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA0ODoKPiAtISAjbGluZSA2ODAg Ii91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDC oMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gKHl5dnNwWygxKSAtICgzKV0u bnVtYmVyKTsKPiAtLS0tIDI1MzAsMjUzNCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQ4 Ogo+IC0hICNsaW5lIDY4MCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3Bh cnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9ICh5eXZz cFsoMSkgLSAoMyldLm51bWJlcik7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjUzOSwyNTQz ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNDk6Cj4gLSEgI2xpbmUgNjg2ICIvdXNyL3Ny Yy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmlsZW5hbWUgPSAoeXl2c3BbKDEpIC0gKDMpXS53b3Jk KTsKPiAtLS0tIDI1MzksMjU0MyAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDQ5Ogo+IC0h ICNsaW5lIDY4NiAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBzb3VyY2UuZmlsZW5hbWUgPSAoeXl2c3Bb KDEpIC0gKDMpXS53b3JkKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNTQ4LDI1NTIgKioq Kgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1MDoKPiAtISAjbGluZSA2OTIgIi91c3Ivc3JjL2xv Y2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoHNvdXJjZS5kZXN0ID0gMTsKPiAtLS0tIDI1NDgsMjU1MiAtLS0tCj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDUwOgo+IC0hICNsaW5lIDY5MiAiL3Vzci9zcmMvbG9jYWwvYmFz aC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKg wqBzb3VyY2UuZGVzdCA9IDE7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjU1NywyNTYxICoq KioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNTE6Cj4gLSEgI2xpbmUgNjk4ICIvdXNyL3NyYy9s b2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoAkJCcKgwqBzb3VyY2UuZGVzdCA9IDE7Cj4gLS0tLSAyNTU3LDI1NjEgLS0tLQo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSA1MToKPiAtISAjbGluZSA2OTggIi91c3Ivc3JjL2xvY2FsL2Jh c2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgc291cmNlLmRlc3QgPSAxOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI1NjYsMjU4NSAq KioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDUyOgo+IC0hICNsaW5lIDcwNiAiL3Vzci9zcmMv bG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 ICh5eXZhbC5lbGVtZW50KS53b3JkID0gKHl5dnNwWygxKSAtICgxKV0ud29yZCk7Cj4gKHl5dmFs LmVsZW1lbnQpLnJlZGlyZWN0ID0gMDsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgNTM6Cj4gLSEgI2xpbmUgNzA4ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3Ny Yy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmVsZW1l bnQpLndvcmQgPSAoeXl2c3BbKDEpIC0gKDEpXS53b3JkKTsKPiAoeXl2YWwuZWxlbWVudCkucmVk aXJlY3QgPSAwOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSA1NDoKPiAtISAjbGluZSA3MTAgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00 LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuZWxlbWVudCkucmVkaXJlY3Qg PSAoeXl2c3BbKDEpIC0gKDEpXS5yZWRpcmVjdCk7Cj4gKHl5dmFsLmVsZW1lbnQpLndvcmQgPSAw OyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1NToKPiAt ISAjbGluZSA3MTQgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5yZWRpcmVjdCkgPSAo eXl2c3BbKDEpIC0gKDEpXS5yZWRpcmVjdCk7Cj4gLS0tLSAyNTY2LDI1ODUgLS0tLQo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSA1MjoKPiAtISAjbGluZSA3MDYgIi91c3Ivc3JjL2xvY2FsL2Jhc2gv YmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5lbGVtZW50 KS53b3JkID0gKHl5dnNwWygxKSAtICgxKV0ud29yZCk7Cj4gKHl5dmFsLmVsZW1lbnQpLnJlZGly ZWN0ID0gMDsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug NTM6Cj4gLSEgI2xpbmUgNzA4ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQv cGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuZWxlbWVudCkud29yZCA9ICh5eXZzcFso MSkgLSAoMSldLndvcmQpOwo+ICh5eXZhbC5lbGVtZW50KS5yZWRpcmVjdCA9IDA7IH0KPiAtwqDC oMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDU0Ogo+IC0hICNsaW5lIDcx MCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsgKHl5dmFsLmVsZW1lbnQpLnJlZGlyZWN0ID0gKHl5dnNwWygxKSAtICgxKV0ucmVk aXJlY3QpOwo+ICh5eXZhbC5lbGVtZW50KS53b3JkID0gMDsgfQo+IC3CoMKgwqDCoMKgwqBicmVh azsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNTU6Cj4gLSEgI2xpbmUgNzE0ICIvdXNyL3NyYy9s b2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3C oMKgCQkJwqDCoCh5eXZhbC5yZWRpcmVjdCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5yZWRpcmVjdCk7 Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjU4OCwyNTkyICoqKioKPiAtwqDCoAo+IC3CoMKg wqDCoGNhc2UgNTY6Cj4gLSEgI2xpbmUgNzE4ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNo L2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqByZWdp c3RlciBSRURJUkVDVCAqdDsKPiAtLS0tIDI1ODgsMjU5MiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKg wqBjYXNlIDU2Ogo+IC0hICNsaW5lIDcxOCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1w YXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqByZWdpc3RlciBS RURJUkVDVCAqdDsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNjAwLDI2MjQgKioqKgo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSA1NzoKPiAtISAjbGluZSA3MjkgIi91c3Ivc3JjL2xvY2FsL2No ZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwu Y29tbWFuZCkgPSBtYWtlX3NpbXBsZV9jb21tYW5kICgoeXl2c3BbKDEpIC0gKDEpXS5lbGVtZW50 KSwKPiAoQ09NTUFORCAqKU5VTEwpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSA1ODoKPiAtISAjbGluZSA3MzEgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3Jj L2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFu ZCkgPSBtYWtlX3NpbXBsZV9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDIpXS5lbGVtZW50KSwKPiAo eXl2c3BbKDEpIC0gKDIpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDU5Ogo+IC0hICNsaW5lIDczNSAiL3Vzci9zcmMvbG9jYWwvY2hl dC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5j b21tYW5kKSA9IGNsZWFuX3NpbXBsZV9jb21tYW5kICgoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5k KSk7Cj4gfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNjA6 Cj4gLSEgI2xpbmUgNzM3ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4 L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAt ICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKg wqBjYXNlIDYxOgo+IC0hICNsaW5lIDczOSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9i YXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgQ09NTUFO RCAqdGM7Cj4gLS0tLSAyNjAwLDI2MjQgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1NzoK PiAtISAjbGluZSA3MjkgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2ltcGxlX2NvbW1h bmQgKCh5eXZzcFsoMSkgLSAoMSldLmVsZW1lbnQpLAo+IChDT01NQU5EICopTlVMTCk7IH0KPiAt wqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDU4Ogo+IC0hICNsaW5l IDczMSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9zaW1wbGVfY29tbWFuZCAoKHl5dnNw WygyKSAtICgyKV0uZWxlbWVudCksCj4gKHl5dnNwWygxKSAtICgyKV0uY29tbWFuZCkpOyB9Cj4g LcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA1OToKPiAtISAjbGlu ZSA3MzUgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IGNsZWFuX3NpbXBsZV9jb21tYW5kICgoeXl2 c3BbKDEpIC0gKDEpXS5jb21tYW5kKSk7Cj4gfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgNjA6Cj4gLSEgI2xpbmUgNzM3ICIvdXNyL3NyYy9sb2NhbC9iYXNo L2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFu ZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsK PiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNjE6Cj4gLSEgI2xpbmUgNzM5ICIvdXNyL3NyYy9sb2Nh bC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKg CQkJwqDCoENPTU1BTkQgKnRjOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI2MzksMjcwOCAq KioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDYyOgo+IC0hICNsaW5lIDc1NSAiL3Vzci9zcmMv bG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDC oMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA2MzoKPiAtISAjbGluZSA3NTcg Ii91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDC oMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsg fQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNjQ6Cj4gLSEg I2xpbmUgNzYxICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0u Y29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDY1Ogo+IC0hICNsaW5lIDc2MyAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQu My4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFso MSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKg wqDCoMKgY2FzZSA2NjoKPiAtISAjbGluZSA3NjUgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jh c2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkg PSBtYWtlX3doaWxlX2NvbW1hbmQgKCh5eXZzcFsoMikgLSAoNSldLmNvbW1hbmQpLAo+ICh5eXZz cFsoNCkgLSAoNSldLmNvbW1hbmQpKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgNjc6Cj4gLSEgI2xpbmUgNzY3ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3Ny Yy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1h bmQpID0gbWFrZV91bnRpbF9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDUpXS5jb21tYW5kKSwKPiAo eXl2c3BbKDQpIC0gKDUpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDY4Ogo+IC0hICNsaW5lIDc2OSAiL3Vzci9zcmMvbG9jYWwvY2hl dC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5j b21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJy ZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA2OToKPiAtISAjbGluZSA3NzEgIi91c3Ivc3Jj L2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKg eyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKg wqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNzA6Cj4gLSEgI2xpbmUgNzcz ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7 IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDcxOgo+IC0h ICNsaW5lIDc3NSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSld LmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSA3MjoKPiAtISAjbGluZSA3NzcgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00 LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3Bb KDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgNzM6Cj4gLSEgI2xpbmUgNzc5ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9i YXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQp ID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDc0Ogo+IC0hICNsaW5lIDc4MSAiL3Vzci9zcmMvbG9jYWwv Y2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZh bC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDC oGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA3NToKPiAtISAjbGluZSA3ODUgIi91c3Iv c3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZm9yX2NvbW1hbmQgKCh5 eXZzcFsoMikgLQo+ICg2KV0ud29yZCksIGFkZF9zdHJpbmdfdG9fbGlzdCAoIlwiJEBcIiIsIChX T1JEX0xJU1QgKilOVUxMKSwgKHl5dnNwWyg1KSAtCj4gKDYpXS5jb21tYW5kKSwgd29yZF9saW5l bm9bd29yZF90b3BdKTsKPiAtLS0tIDI2MzksMjcwOCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDYyOgo+IC0hICNsaW5lIDc1NSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRj aGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygx KSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDYzOgo+IC0hICNsaW5lIDc1NyAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQu My1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5 dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDY0Ogo+IC0hICNsaW5lIDc2MSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9i YXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQp ID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY1Ogo+IC0hICNsaW5lIDc2MyAiL3Vzci9zcmMvbG9jYWwv YmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNv bW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJl YWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY2Ogo+IC0hICNsaW5lIDc2NSAiL3Vzci9zcmMv bG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5 dmFsLmNvbW1hbmQpID0gbWFrZV93aGlsZV9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDUpXS5jb21t YW5kKSwKPiAoeXl2c3BbKDQpIC0gKDUpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJl YWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY3Ogo+IC0hICNsaW5lIDc2NyAiL3Vzci9zcmMv bG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5 dmFsLmNvbW1hbmQpID0gbWFrZV91bnRpbF9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDUpXS5jb21t YW5kKSwKPiAoeXl2c3BbKDQpIC0gKDUpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJl YWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY4Ogo+IC0hICNsaW5lIDc2OSAiL3Vzci9zcmMv bG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5 dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDC oMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDY5Ogo+IC0hICNsaW5lIDc3MSAiL3Vz ci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDC oMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDcwOgo+IC0hICNsaW5lIDc3 MyAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0K PiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDcxOgo+IC0hICNs aW5lIDc3NSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFu ZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDcyOgo+ IC0hICNsaW5lIDc3NyAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0u Y29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDczOgo+IC0hICNsaW5lIDc3OSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVk L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAt ICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKg wqBjYXNlIDc0Ogo+IC0hICNsaW5lIDc4MSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1w YXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNw WygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAt wqDCoMKgwqBjYXNlIDc1Ogo+IC0hICNsaW5lIDc4NSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNo LTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2 YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAoNildLndvcmQp LCBhZGRfc3RyaW5nX3RvX2xpc3QgKCJcIiRAXCIiLCAoV09SRF9MSVNUICopTlVMTCksICh5eXZz cFsoNSkgLQo+ICg2KV0uY29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioq KioqKioqKioqKgo+IC0qKiogMjcxMiwyNzE2ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug NzY6Cj4gLSEgI2xpbmUgNzkwICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4z LjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFu ZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAoNildLndvcmQpLCBhZGRfc3Ry aW5nX3RvX2xpc3QgKCJcIiRAXCIiLCAoV09SRF9MSVNUICopTlVMTCksICh5eXZzcFsoNSkgLQo+ ICg2KV0uY29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLS0tLSAyNzEyLDI3MTYg LS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA3NjoKPiAtISAjbGluZSA3OTAgIi91c3Ivc3Jj L2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4g LcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5dnNwWygy KSAtCj4gKDYpXS53b3JkKSwgYWRkX3N0cmluZ190b19saXN0ICgiXCIkQFwiIiwgKFdPUkRfTElT VCAqKU5VTEwpLCAoeXl2c3BbKDUpIC0KPiAoNildLmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3Jk X3RvcF0pOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI3MjAsMjcyNCAqKioqCj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDc3Ogo+IC0hICNsaW5lIDc5NSAiL3Vzci9zcmMvbG9jYWwvY2hldC9z cmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5dnNwWygyKSAtCj4gKDcp XS53b3JkKSwgYWRkX3N0cmluZ190b19saXN0ICgiXCIkQFwiIiwgKFdPUkRfTElTVCAqKU5VTEwp LCAoeXl2c3BbKDYpIC0KPiAoNyldLmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+ IC0tLS0gMjcyMCwyNzI0IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNzc6Cj4gLSEgI2xp bmUgNzk1ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZm9yX2Nv bW1hbmQgKCh5eXZzcFsoMikgLQo+ICg3KV0ud29yZCksIGFkZF9zdHJpbmdfdG9fbGlzdCAoIlwi JEBcIiIsIChXT1JEX0xJU1QgKilOVUxMKSwgKHl5dnNwWyg2KSAtCj4gKDcpXS5jb21tYW5kKSwg d29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNzI4LDI3 MzIgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA3ODoKPiAtISAjbGluZSA4MDAgIi91c3Iv c3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZm9yX2NvbW1hbmQgKCh5 eXZzcFsoMikgLQo+ICg3KV0ud29yZCksIGFkZF9zdHJpbmdfdG9fbGlzdCAoIlwiJEBcIiIsIChX T1JEX0xJU1QgKilOVUxMKSwgKHl5dnNwWyg2KSAtCj4gKDcpXS5jb21tYW5kKSwgd29yZF9saW5l bm9bd29yZF90b3BdKTsKPiAtLS0tIDI3MjgsMjczMiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDc4Ogo+IC0hICNsaW5lIDgwMCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRj aGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFu ZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAoNyldLndvcmQpLCBhZGRfc3Ry aW5nX3RvX2xpc3QgKCJcIiRAXCIiLCAoV09SRF9MSVNUICopTlVMTCksICh5eXZzcFsoNikgLQo+ ICg3KV0uY29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioq Kgo+IC0qKiogMjczNiwyNzQwICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgNzk6Cj4gLSEg I2xpbmUgODA1ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtl X2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAoMTApXS53b3JkKSwgUkVWRVJTRV9MSVNUICgo eXl2c3BbKDUpIC0gKDEwKV0ud29yZF9saXN0KSwgV09SRF9MSVNUICopLAo+ICh5eXZzcFsoOSkg LSAoMTApXS5jb21tYW5kKSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtLS0tIDI3MzYsMjc0 MCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDc5Ogo+IC0hICNsaW5lIDgwNSAiL3Vzci9z cmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsK PiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3Bb KDIpIC0KPiAoMTApXS53b3JkKSwgUkVWRVJTRV9MSVNUICgoeXl2c3BbKDUpIC0gKDEwKV0ud29y ZF9saXN0KSwgV09SRF9MSVNUICopLAo+ICh5eXZzcFsoOSkgLSAoMTApXS5jb21tYW5kKSwgd29y ZF9saW5lbm9bd29yZF90b3BdKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNzQ0LDI3NDgg KioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4MDoKPiAtISAjbGluZSA4MTAgIi91c3Ivc3Jj L2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKg ewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZm9yX2NvbW1hbmQgKCh5eXZz cFsoMikgLQo+ICgxMCldLndvcmQpLCBSRVZFUlNFX0xJU1QgKCh5eXZzcFsoNSkgLSAoMTApXS53 b3JkX2xpc3QpLCBXT1JEX0xJU1QgKiksCj4gKHl5dnNwWyg5KSAtICgxMCldLmNvbW1hbmQpLCB3 b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0tLS0gMjc0NCwyNzQ4IC0tLS0KPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgODA6Cj4gLSEgI2xpbmUgODEwICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gt NC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZh bC5jb21tYW5kKSA9IG1ha2VfZm9yX2NvbW1hbmQgKCh5eXZzcFsoMikgLQo+ICgxMCldLndvcmQp LCBSRVZFUlNFX0xJU1QgKCh5eXZzcFsoNSkgLSAoMTApXS53b3JkX2xpc3QpLCBXT1JEX0xJU1Qg KiksCj4gKHl5dnNwWyg5KSAtICgxMCldLmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0p Owo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI3NTIsMjc1NiAqKioqCj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDgxOgo+IC0hICNsaW5lIDgxNSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFz aC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5 dmFsLmNvbW1hbmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5dnNwWygyKSAtCj4gKDkpXS53b3Jk KSwgKFdPUkRfTElTVCAqKU5VTEwsICh5eXZzcFsoOCkgLSAoOSldLmNvbW1hbmQpLAo+IHdvcmRf bGluZW5vW3dvcmRfdG9wXSk7Cj4gLS0tLSAyNzUyLDI3NTYgLS0tLQo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSA4MToKPiAtISAjbGluZSA4MTUgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMt cGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNv bW1hbmQpID0gbWFrZV9mb3JfY29tbWFuZCAoKHl5dnNwWygyKSAtCj4gKDkpXS53b3JkKSwgKFdP UkRfTElTVCAqKU5VTEwsICh5eXZzcFsoOCkgLSAoOSldLmNvbW1hbmQpLAo+IHdvcmRfbGluZW5v W3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjc2MCwyNzY0ICoqKioKPiAt wqDCoAo+IC3CoMKgwqDCoGNhc2UgODI6Cj4gLSEgI2xpbmUgODIwICIvdXNyL3NyYy9sb2NhbC9j aGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDC oAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0K PiAoOSldLndvcmQpLCAoV09SRF9MSVNUICopTlVMTCwgKHl5dnNwWyg4KSAtICg5KV0uY29tbWFu ZCksCj4gd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtLS0tIDI3NjAsMjc2NCAtLS0tCj4gLcKg wqAKPiAtwqDCoMKgwqBjYXNlIDgyOgo+IC0hICNsaW5lIDgyMCAiL3Vzci9zcmMvbG9jYWwvYmFz aC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKg wqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Zvcl9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAoOSld LndvcmQpLCAoV09SRF9MSVNUICopTlVMTCwgKHl5dnNwWyg4KSAtICg5KV0uY29tbWFuZCksCj4g d29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyNzY4LDI3 NzIgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4MzoKPiAtISAjbGluZSA4MjcgIi91c3Iv c3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgewo+IC3CoMKgCQkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2FyaXRoX2Zvcl9jb21t YW5kCj4gKCh5eXZzcFsoMikgLSAoNyldLndvcmRfbGlzdCksICh5eXZzcFsoNikgLSAoNyldLmNv bW1hbmQpLCBhcml0aF9mb3JfbGluZW5vKTsKPiAtLS0tIDI3NjgsMjc3MiAtLS0tCj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDgzOgo+IC0hICNsaW5lIDgyNyAiL3Vzci9zcmMvbG9jYWwvYmFzaC9i YXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCQnCoMKg KHl5dmFsLmNvbW1hbmQpID0gbWFrZV9hcml0aF9mb3JfY29tbWFuZAo+ICgoeXl2c3BbKDIpIC0g KDcpXS53b3JkX2xpc3QpLCAoeXl2c3BbKDYpIC0gKDcpXS5jb21tYW5kKSwgYXJpdGhfZm9yX2xp bmVubyk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjc3NiwyNzgwICoqKioKPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgODQ6Cj4gLSEgI2xpbmUgODMyICIvdXNyL3NyYy9sb2NhbC9jaGV0L3Ny Yy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCQnC oMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9hcml0aF9mb3JfY29tbWFuZAo+ICgoeXl2c3BbKDIp IC0gKDcpXS53b3JkX2xpc3QpLCAoeXl2c3BbKDYpIC0gKDcpXS5jb21tYW5kKSwgYXJpdGhfZm9y X2xpbmVubyk7Cj4gLS0tLSAyNzc2LDI3ODAgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4 NDoKPiAtISAjbGluZSA4MzIgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9 IG1ha2VfYXJpdGhfZm9yX2NvbW1hbmQKPiAoKHl5dnNwWygyKSAtICg3KV0ud29yZF9saXN0KSwg KHl5dnNwWyg2KSAtICg3KV0uY29tbWFuZCksIGFyaXRoX2Zvcl9saW5lbm8pOwo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDI3ODQsMjc4OCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDg1 Ogo+IC0hICNsaW5lIDgzNyAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4y OC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQkJwqDCoCh5eXZhbC5jb21tYW5k KSA9IG1ha2VfYXJpdGhfZm9yX2NvbW1hbmQKPiAoKHl5dnNwWygyKSAtICg1KV0ud29yZF9saXN0 KSwgKHl5dnNwWyg0KSAtICg1KV0uY29tbWFuZCksIGFyaXRoX2Zvcl9saW5lbm8pOwo+IC0tLS0g Mjc4NCwyNzg4IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgODU6Cj4gLSEgI2xpbmUgODM3 ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKg wqDCoMKgewo+IC3CoMKgCQkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2FyaXRoX2Zvcl9j b21tYW5kCj4gKCh5eXZzcFsoMikgLSAoNSldLndvcmRfbGlzdCksICh5eXZzcFsoNCkgLSAoNSld LmNvbW1hbmQpLCBhcml0aF9mb3JfbGluZW5vKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAy NzkyLDI3OTYgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4NjoKPiAtISAjbGluZSA4NDIg Ii91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDC oMKgwqDCoMKgewo+IC3CoMKgCQkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2FyaXRoX2Zv cl9jb21tYW5kCj4gKCh5eXZzcFsoMikgLSAoNSldLndvcmRfbGlzdCksICh5eXZzcFsoNCkgLSAo NSldLmNvbW1hbmQpLCBhcml0aF9mb3JfbGluZW5vKTsKPiAtLS0tIDI3OTIsMjc5NiAtLS0tCj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDg2Ogo+IC0hICNsaW5lIDg0MiAiL3Vzci9zcmMvbG9jYWwv YmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJ CQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9hcml0aF9mb3JfY29tbWFuZAo+ICgoeXl2c3Bb KDIpIC0gKDUpXS53b3JkX2xpc3QpLCAoeXl2c3BbKDQpIC0gKDUpXS5jb21tYW5kKSwgYXJpdGhf Zm9yX2xpbmVubyk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjgwMCwyODA0ICoqKioKPiAt wqDCoAo+IC3CoMKgwqDCoGNhc2UgODc6Cj4gLSEgI2xpbmUgODQ5ICIvdXNyL3NyYy9sb2NhbC9j aGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDC oAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX3NlbGVjdF9jb21tYW5kICgoeXl2c3BbKDIp Cj4gLSAoNildLndvcmQpLCBhZGRfc3RyaW5nX3RvX2xpc3QgKCJcIiRAXCIiLCAoV09SRF9MSVNU ICopTlVMTCksICh5eXZzcFsoNSkgLQo+ICg2KV0uY29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRf dG9wXSk7Cj4gLS0tLSAyODAwLDI4MDQgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA4NzoK PiAtISAjbGluZSA4NDkgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFr ZV9zZWxlY3RfY29tbWFuZCAoKHl5dnNwWygyKQo+IC0gKDYpXS53b3JkKSwgYWRkX3N0cmluZ190 b19saXN0ICgiXCIkQFwiIiwgKFdPUkRfTElTVCAqKU5VTEwpLCAoeXl2c3BbKDUpIC0KPiAoNild LmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0qKioqKioqKioqKioqKioKPiAt KioqIDI4MDgsMjgxMiAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDg4Ogo+IC0hICNsaW5l IDg1NCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9zZWxl Y3RfY29tbWFuZCAoKHl5dnNwWygyKQo+IC0gKDYpXS53b3JkKSwgYWRkX3N0cmluZ190b19saXN0 ICgiXCIkQFwiIiwgKFdPUkRfTElTVCAqKU5VTEwpLCAoeXl2c3BbKDUpIC0KPiAoNildLmNvbW1h bmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0tLS0gMjgwOCwyODEyIC0tLS0KPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgODg6Cj4gLSEgI2xpbmUgODU0ICIvdXNyL3NyYy9sb2NhbC9iYXNo L2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDC oCh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc2VsZWN0X2NvbW1hbmQgKCh5eXZzcFsoMikKPiAtICg2 KV0ud29yZCksIGFkZF9zdHJpbmdfdG9fbGlzdCAoIlwiJEBcIiIsIChXT1JEX0xJU1QgKilOVUxM KSwgKHl5dnNwWyg1KSAtCj4gKDYpXS5jb21tYW5kKSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsK PiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyODE2LDI4MjAgKioqKgo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSA4OToKPiAtISAjbGluZSA4NTkgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gv YmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZh bC5jb21tYW5kKSA9IG1ha2Vfc2VsZWN0X2NvbW1hbmQgKCh5eXZzcFsoMikKPiAtICg3KV0ud29y ZCksIGFkZF9zdHJpbmdfdG9fbGlzdCAoIlwiJEBcIiIsIChXT1JEX0xJU1QgKilOVUxMKSwgKHl5 dnNwWyg2KSAtCj4gKDcpXS5jb21tYW5kKSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtLS0t IDI4MTYsMjgyMCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDg5Ogo+IC0hICNsaW5lIDg1 OSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX3NlbGVjdF9jb21t YW5kICgoeXl2c3BbKDIpCj4gLSAoNyldLndvcmQpLCBhZGRfc3RyaW5nX3RvX2xpc3QgKCJcIiRA XCIiLCAoV09SRF9MSVNUICopTlVMTCksICh5eXZzcFsoNikgLQo+ICg3KV0uY29tbWFuZCksIHdv cmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjgyNCwyODI4 ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgOTA6Cj4gLSEgI2xpbmUgODY0ICIvdXNyL3Ny Yy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX3NlbGVjdF9jb21tYW5kICgo eXl2c3BbKDIpCj4gLSAoNyldLndvcmQpLCBhZGRfc3RyaW5nX3RvX2xpc3QgKCJcIiRAXCIiLCAo V09SRF9MSVNUICopTlVMTCksICh5eXZzcFsoNikgLQo+ICg3KV0uY29tbWFuZCksIHdvcmRfbGlu ZW5vW3dvcmRfdG9wXSk7Cj4gLS0tLSAyODI0LDI4MjggLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSA5MDoKPiAtISAjbGluZSA4NjQgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0 Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1h bmQpID0gbWFrZV9zZWxlY3RfY29tbWFuZCAoKHl5dnNwWygyKQo+IC0gKDcpXS53b3JkKSwgYWRk X3N0cmluZ190b19saXN0ICgiXCIkQFwiIiwgKFdPUkRfTElTVCAqKU5VTEwpLCAoeXl2c3BbKDYp IC0KPiAoNyldLmNvbW1hbmQpLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0pOwo+IC0qKioqKioqKioq KioqKioKPiAtKioqIDI4MzIsMjgzNiAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDkxOgo+ IC0hICNsaW5lIDg2OSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0g bWFrZV9zZWxlY3RfY29tbWFuZCAoKHl5dnNwWygyKQo+IC0gKDEwKV0ud29yZCksIFJFVkVSU0Vf TElTVCAoKHl5dnNwWyg1KSAtICgxMCldLndvcmRfbGlzdCksIFdPUkRfTElTVCAqKSwKPiAoeXl2 c3BbKDkpIC0gKDEwKV0uY29tbWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLS0tLSAy ODMyLDI4MzYgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5MToKPiAtISAjbGluZSA4Njkg Ii91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDC oMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9zZWxlY3RfY29tbWFu ZCAoKHl5dnNwWygyKQo+IC0gKDEwKV0ud29yZCksIFJFVkVSU0VfTElTVCAoKHl5dnNwWyg1KSAt ICgxMCldLndvcmRfbGlzdCksIFdPUkRfTElTVCAqKSwKPiAoeXl2c3BbKDkpIC0gKDEwKV0uY29t bWFuZCksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiog Mjg0MCwyODQ0ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgOTI6Cj4gLSEgI2xpbmUgODc0 ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKg wqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX3NlbGVjdF9j b21tYW5kICgoeXl2c3BbKDIpCj4gLSAoMTApXS53b3JkKSwgUkVWRVJTRV9MSVNUICgoeXl2c3Bb KDUpIC0gKDEwKV0ud29yZF9saXN0KSwgV09SRF9MSVNUICopLAo+ICh5eXZzcFsoOSkgLSAoMTAp XS5jb21tYW5kKSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtLS0tIDI4NDAsMjg0NCAtLS0t Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDkyOgo+IC0hICNsaW5lIDg3NCAiL3Vzci9zcmMvbG9j YWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDC oAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX3NlbGVjdF9jb21tYW5kICgoeXl2c3BbKDIp Cj4gLSAoMTApXS53b3JkKSwgUkVWRVJTRV9MSVNUICgoeXl2c3BbKDUpIC0gKDEwKV0ud29yZF9s aXN0KSwgV09SRF9MSVNUICopLAo+ICh5eXZzcFsoOSkgLSAoMTApXS5jb21tYW5kKSwgd29yZF9s aW5lbm9bd29yZF90b3BdKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyODQ4LDI4NTIgKioq Kgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5MzoKPiAtISAjbGluZSA4ODEgIi91c3Ivc3JjL2xv Y2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfY2FzZV9jb21tYW5kICgoeXl2c3Bb KDIpIC0KPiAoNildLndvcmQpLCAoUEFUVEVSTl9MSVNUICopTlVMTCwgd29yZF9saW5lbm9bd29y ZF90b3BdKTsKPiAtLS0tIDI4NDgsMjg1MiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDkz Ogo+IC0hICNsaW5lIDg4MSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3Bh cnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBt YWtlX2Nhc2VfY29tbWFuZCAoKHl5dnNwWygyKSAtCj4gKDYpXS53b3JkKSwgKFBBVFRFUk5fTElT VCAqKU5VTEwsIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0q KiogMjg1NiwyODYwICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgOTQ6Cj4gLSEgI2xpbmUg ODg2ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Nhc2Vf Y29tbWFuZCAoKHl5dnNwWygyKSAtCj4gKDcpXS53b3JkKSwgKHl5dnNwWyg1KSAtICg3KV0ucGF0 dGVybiksIHdvcmRfbGluZW5vW3dvcmRfdG9wXSk7Cj4gLS0tLSAyODU2LDI4NjAgLS0tLQo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSA5NDoKPiAtISAjbGluZSA4ODYgIi91c3Ivc3JjL2xvY2FsL2Jh c2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9jYXNlX2NvbW1hbmQgKCh5eXZzcFsoMikgLQo+ICg3 KV0ud29yZCksICh5eXZzcFsoNSkgLSAoNyldLnBhdHRlcm4pLCB3b3JkX2xpbmVub1t3b3JkX3Rv cF0pOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI4NjQsMjg2OCAqKioqCj4gLcKgwqAKPiAt wqDCoMKgwqBjYXNlIDk1Ogo+IC0hICNsaW5lIDg5MSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMv YmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKg KHl5dmFsLmNvbW1hbmQpID0gbWFrZV9jYXNlX2NvbW1hbmQgKCh5eXZzcFsoMikgLQo+ICg2KV0u d29yZCksICh5eXZzcFsoNSkgLSAoNildLnBhdHRlcm4pLCB3b3JkX2xpbmVub1t3b3JkX3RvcF0p Owo+IC0tLS0gMjg2NCwyODY4IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgOTU6Cj4gLSEg I2xpbmUgODkxICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIK PiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfY2Fz ZV9jb21tYW5kICgoeXl2c3BbKDIpIC0KPiAoNildLndvcmQpLCAoeXl2c3BbKDUpIC0gKDYpXS5w YXR0ZXJuKSwgd29yZF9saW5lbm9bd29yZF90b3BdKTsKPiAtKioqKioqKioqKioqKioqCj4gLSoq KiAyODcyLDI4OTYgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5NjoKPiAtISAjbGluZSA4 OTggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2Z1bmN0aW9uX2RlZiAoKHl5dnNw WygxKSAtICg1KV0ud29yZCksCj4gKHl5dnNwWyg1KSAtICg1KV0uY29tbWFuZCksIGZ1bmN0aW9u X2RzdGFydCwgZnVuY3Rpb25fYnN0YXJ0KTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgOTc6Cj4gLSEgI2xpbmUgOTAxICIvdXNyL3NyYy9sb2NhbC9jaGV0 L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNv bW1hbmQpID0gbWFrZV9mdW5jdGlvbl9kZWYgKCh5eXZzcFsoMikgLSAoNildLndvcmQpLAo+ICh5 eXZzcFsoNikgLSAoNildLmNvbW1hbmQpLCBmdW5jdGlvbl9kc3RhcnQsIGZ1bmN0aW9uX2JzdGFy dCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDk4Ogo+ IC0hICNsaW5lIDkwNCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZnVuY3Rpb25f ZGVmICgoeXl2c3BbKDIpIC0gKDQpXS53b3JkKSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5k KSwgZnVuY3Rpb25fZHN0YXJ0LCBmdW5jdGlvbl9ic3RhcnQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJy ZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5OToKPiAtISAjbGluZSA5MDggIi91c3Ivc3Jj L2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKg eyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5kKTsgfQo+IC3CoMKg wqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTAwOgo+IC0hICNsaW5lIDkx MCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgQ09NTUFORCAqdGM7Cj4gLS0tLSAyODcyLDI4OTYg LS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5NjoKPiAtISAjbGluZSA4OTggIi91c3Ivc3Jj L2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5 eXZhbC5jb21tYW5kKSA9IG1ha2VfZnVuY3Rpb25fZGVmICgoeXl2c3BbKDEpIC0gKDUpXS53b3Jk KSwKPiAoeXl2c3BbKDUpIC0gKDUpXS5jb21tYW5kKSwgZnVuY3Rpb25fZHN0YXJ0LCBmdW5jdGlv bl9ic3RhcnQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSA5NzoKPiAtISAjbGluZSA5MDEgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hl ZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZnVuY3Rp b25fZGVmICgoeXl2c3BbKDIpIC0gKDYpXS53b3JkKSwKPiAoeXl2c3BbKDYpIC0gKDYpXS5jb21t YW5kKSwgZnVuY3Rpb25fZHN0YXJ0LCBmdW5jdGlvbl9ic3RhcnQpOyB9Cj4gLcKgwqDCoMKgwqDC oGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSA5ODoKPiAtISAjbGluZSA5MDQgIi91c3Iv c3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7 ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfZnVuY3Rpb25fZGVmICgoeXl2c3BbKDIpIC0gKDQpXS53 b3JkKSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgZnVuY3Rpb25fZHN0YXJ0LCBmdW5j dGlvbl9ic3RhcnQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSA5OToKPiAtISAjbGluZSA5MDggIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0 Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFso MSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKg wqDCoMKgY2FzZSAxMDA6Cj4gLSEgI2xpbmUgOTEwICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gt NC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoENPTU1B TkQgKnRjOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI5MjQsMjkyOCAqKioqCj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDEwMToKPiAtISAjbGluZSA5NDEgIi91c3Ivc3JjL2xvY2FsL2NoZXQv c3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJ wqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2Vfc3Vic2hlbGxfY29tbWFuZAo+ICgoeXl2c3BbKDIp IC0gKDMpXS5jb21tYW5kKSk7Cj4gLS0tLSAyOTI0LDI5MjggLS0tLQo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSAxMDE6Cj4gLSEgI2xpbmUgOTQxICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4z LXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5j b21tYW5kKSA9IG1ha2Vfc3Vic2hlbGxfY29tbWFuZAo+ICgoeXl2c3BbKDIpIC0gKDMpXS5jb21t YW5kKSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjkzMiwyOTM2ICoqKioKPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgMTAyOgo+IC0hICNsaW5lIDk0OCAiL3Vzci9zcmMvbG9jYWwvY2hldC9z cmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9jb3Byb2NfY29tbWFuZCAoIkNPUFJPQyIsCj4gKHl5 dnNwWygyKSAtICgyKV0uY29tbWFuZCkpOwo+IC0tLS0gMjkzMiwyOTM2IC0tLS0KPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgMTAyOgo+IC0hICNsaW5lIDk0OCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9i YXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAo eXl2YWwuY29tbWFuZCkgPSBtYWtlX2NvcHJvY19jb21tYW5kICgiQ09QUk9DIiwKPiAoeXl2c3Bb KDIpIC0gKDIpXS5jb21tYW5kKSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjk0MCwyOTQ0 ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTAzOgo+IC0hICNsaW5lIDk1MyAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7Cj4gLcKgwqAJCQnCoMKgQ09NTUFORCAqdGM7Cj4gLS0tLSAyOTQwLDI5NDQgLS0tLQo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSAxMDM6Cj4gLSEgI2xpbmUgOTUzICIvdXNyL3NyYy9sb2NhbC9i YXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJ wqDCoENPTU1BTkQgKnRjOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI5NjAsMjk2NCAqKioq Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEwNDoKPiAtISAjbGluZSA5NzAgIi91c3Ivc3JjL2xv Y2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9IG1ha2VfY29wcm9jX2NvbW1hbmQgKCh5eXZz cFsoMikKPiAtICgzKV0ud29yZCktPndvcmQsICh5eXZzcFsoMykgLSAoMyldLmNvbW1hbmQpKTsK PiAtLS0tIDI5NjAsMjk2NCAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEwNDoKPiAtISAj bGluZSA5NzAgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9jb3By b2NfY29tbWFuZCAoKHl5dnNwWygyKQo+IC0gKDMpXS53b3JkKS0+d29yZCwgKHl5dnNwWygzKSAt ICgzKV0uY29tbWFuZCkpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDI5NjgsMjk3MiAqKioq Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEwNToKPiAtISAjbGluZSA5NzUgIi91c3Ivc3JjL2xv Y2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+ IC3CoMKgCQkJwqDCoENPTU1BTkQgKnRjOwo+IC0tLS0gMjk2OCwyOTcyIC0tLS0KPiAtwqDCoAo+ IC3CoMKgwqDCoGNhc2UgMTA1Ogo+IC0hICNsaW5lIDk3NSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9i YXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBD T01NQU5EICp0YzsKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAyOTg4LDI5OTIgKioqKgo+IC3C oMKgCj4gLcKgwqDCoMKgY2FzZSAxMDY6Cj4gLSEgI2xpbmUgOTkyICIvdXNyL3NyYy9sb2NhbC9j aGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDC oAkJCcKgwqAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2NvcHJvY19jb21tYW5kICgiQ09QUk9DIiwK PiBjbGVhbl9zaW1wbGVfY29tbWFuZCAoKHl5dnNwWygyKSAtICgyKV0uY29tbWFuZCkpKTsKPiAt LS0tIDI5ODgsMjk5MiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEwNjoKPiAtISAjbGlu ZSA5OTIgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9jb3Byb2Nf Y29tbWFuZCAoIkNPUFJPQyIsCj4gY2xlYW5fc2ltcGxlX2NvbW1hbmQgKCh5eXZzcFsoMikgLSAo MildLmNvbW1hbmQpKSk7Cj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMjk5NiwzMTEwICoqKioK PiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTA3Ogo+IC0hICNsaW5lIDk5OSAiL3Vzci9zcmMvbG9j YWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5 eXZhbC5jb21tYW5kKSA9IG1ha2VfaWZfY29tbWFuZCAoKHl5dnNwWygyKSAtICg1KV0uY29tbWFu ZCksCj4gKHl5dnNwWyg0KSAtICg1KV0uY29tbWFuZCksIChDT01NQU5EICopTlVMTCk7IH0KPiAt wqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEwODoKPiAtISAjbGlu ZSAxMDAxICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9pZl9jb21tYW5kICgoeXl2 c3BbKDIpIC0gKDcpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDcpXS5jb21tYW5kKSwgKHl5 dnNwWyg2KSAtICg3KV0uY29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxMDk6Cj4gLSEgI2xpbmUgMTAwMyAiL3Vzci9zcmMvbG9jYWwvY2hl dC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5j b21tYW5kKSA9IG1ha2VfaWZfY29tbWFuZCAoKHl5dnNwWygyKSAtICg2KV0uY29tbWFuZCksCj4g KHl5dnNwWyg0KSAtICg2KV0uY29tbWFuZCksICh5eXZzcFsoNSkgLSAoNildLmNvbW1hbmQpKTsg fQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTEwOgo+IC0h ICNsaW5lIDEwMDggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2dyb3VwX2NvbW1h bmQgKCh5eXZzcFsoMikgLSAoMyldLmNvbW1hbmQpKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsK PiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTExOgo+IC0hICNsaW5lIDEwMTIgIi91c3Ivc3JjL2xv Y2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAo eXl2YWwuY29tbWFuZCkgPSBtYWtlX2FyaXRoX2NvbW1hbmQgKCh5eXZzcFsoMSkgLSAoMSldLndv cmRfbGlzdCkpOwo+IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDExMjoKPiAtISAjbGluZSAxMDE2ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jh c2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5 dnNwWygyKSAtICgzKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDExMzoKPiAtISAjbGluZSAxMDIwICIvdXNyL3NyYy9sb2NhbC9jaGV0 L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNv bW1hbmQpID0gbWFrZV9pZl9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDQpXS5jb21tYW5kKSwKPiAo eXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgKENPTU1BTkQgKilOVUxMKTsgfQo+IC3CoMKgwqDC oMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTE0Ogo+IC0hICNsaW5lIDEwMjIg Ii91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDC oMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2lmX2NvbW1hbmQgKCh5eXZzcFsoMikg LSAoNildLmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAoNildLmNvbW1hbmQpLCAoeXl2c3BbKDYp IC0gKDYpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDExNToKPiAtISAjbGluZSAxMDI0ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9i YXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQp ID0gbWFrZV9pZl9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDUpXS5jb21tYW5kKSwKPiAoeXl2c3Bb KDQpIC0gKDUpXS5jb21tYW5kKSwgKHl5dnNwWyg1KSAtICg1KV0uY29tbWFuZCkpOyB9Cj4gLcKg wqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMTc6Cj4gLSEgI2xpbmUg MTAyOSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7ICh5eXZzcFsoMikgLSAoMildLnBhdHRlcm4pLT5uZXh0ID0gKHl5dnNw WygxKSAtICgyKV0ucGF0dGVybik7Cj4gKHl5dmFsLnBhdHRlcm4pID0gKHl5dnNwWygyKSAtICgy KV0ucGF0dGVybik7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDExODoKPiAtISAjbGluZSAxMDMzICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jh c2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLnBhdHRlcm4pID0gbWFr ZV9wYXR0ZXJuX2xpc3QgKCh5eXZzcFsoMikgLSAoNCldLndvcmRfbGlzdCksCj4gKHl5dnNwWyg0 KSAtICg0KV0uY29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKg wqDCoMKgY2FzZSAxMTk6Cj4gLSEgI2xpbmUgMTAzNSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMv YmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5wYXR0ZXJu KSA9IG1ha2VfcGF0dGVybl9saXN0ICgoeXl2c3BbKDIpIC0gKDQpXS53b3JkX2xpc3QpLAo+IChD T01NQU5EICopTlVMTCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKg wqBjYXNlIDEyMDoKPiAtISAjbGluZSAxMDM3ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNo L2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLnBhdHRlcm4pID0g bWFrZV9wYXR0ZXJuX2xpc3QgKCh5eXZzcFsoMykgLSAoNSldLndvcmRfbGlzdCksCj4gKHl5dnNw Wyg1KSAtICg1KV0uY29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSAxMjE6Cj4gLSEgI2xpbmUgMTAzOSAiL3Vzci9zcmMvbG9jYWwvY2hldC9z cmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5wYXR0 ZXJuKSA9IG1ha2VfcGF0dGVybl9saXN0ICgoeXl2c3BbKDMpIC0gKDUpXS53b3JkX2xpc3QpLAo+ IChDT01NQU5EICopTlVMTCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDC oMKgwqBjYXNlIDEyMjoKPiAtISAjbGluZSAxMDQzICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9i YXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLnBhdHRlcm4p ID0gKHl5dnNwWygxKSAtICgyKV0ucGF0dGVybik7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4g LcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEyMzoKPiAtISAjbGluZSAxMDQ1ICIvdXNyL3NyYy9sb2Nh bC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5 dnNwWygyKSAtICgzKV0ucGF0dGVybiktPm5leHQgPSAoeXl2c3BbKDEpIC0gKDMpXS5wYXR0ZXJu KTsKPiAoeXl2YWwucGF0dGVybikgPSAoeXl2c3BbKDIpIC0gKDMpXS5wYXR0ZXJuKTsgfQo+IC3C oMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTI0Ogo+IC0hICNsaW5l IDEwNDcgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIK PiAtwqDCoMKgwqDCoMKgeyAoeXl2c3BbKDEpIC0gKDIpXS5wYXR0ZXJuKS0+ZmxhZ3MgfD0gQ0FT RVBBVF9GQUxMVEhST1VHSDsKPiAoeXl2YWwucGF0dGVybikgPSAoeXl2c3BbKDEpIC0gKDIpXS5w YXR0ZXJuKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug MTI1Ogo+IC0hICNsaW5lIDEwNDkgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00 LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2c3BbKDIpIC0gKDMpXS5wYXR0ZXJu KS0+ZmxhZ3MgfD0gQ0FTRVBBVF9GQUxMVEhST1VHSDsgKHl5dnNwWygyKQo+IC0gKDMpXS5wYXR0 ZXJuKS0+bmV4dCA9ICh5eXZzcFsoMSkgLSAoMyldLnBhdHRlcm4pOyAoeXl2YWwucGF0dGVybikg PQo+ICh5eXZzcFsoMikgLSAoMyldLnBhdHRlcm4pOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+ IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMjY6Cj4gLSEgI2xpbmUgMTA1MSAiL3Vzci9zcmMvbG9j YWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5 eXZzcFsoMSkgLSAoMildLnBhdHRlcm4pLT5mbGFncyB8PSBDQVNFUEFUX1RFU1RORVhUOwo+ICh5 eXZhbC5wYXR0ZXJuKSA9ICh5eXZzcFsoMSkgLSAoMildLnBhdHRlcm4pOyB9Cj4gLcKgwqDCoMKg wqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMjc6Cj4gLSEgI2xpbmUgMTA1MyAi L3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7ICh5eXZzcFsoMikgLSAoMyldLnBhdHRlcm4pLT5mbGFncyB8PSBDQVNFUEFUX1RF U1RORVhUOyAoeXl2c3BbKDIpIC0KPiAoMyldLnBhdHRlcm4pLT5uZXh0ID0gKHl5dnNwWygxKSAt ICgzKV0ucGF0dGVybik7ICh5eXZhbC5wYXR0ZXJuKSA9ICh5eXZzcFsoMikKPiAtICgzKV0ucGF0 dGVybik7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEy ODoKPiAtISAjbGluZSAxMDU3ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4z LjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLndvcmRfbGlzdCkgPSBtYWtlX3dv cmRfbGlzdCAoKHl5dnNwWygxKSAtICgxKV0ud29yZCksCj4gKFdPUkRfTElTVCAqKU5VTEwpOyB9 Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMjk6Cj4gLSEg I2xpbmUgMTA1OSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC53b3JkX2xpc3QpID0gbWFrZV93b3JkX2xpc3Qg KCh5eXZzcFsoMykgLSAoMyldLndvcmQpLAo+ICh5eXZzcFsoMSkgLSAoMyldLndvcmRfbGlzdCkp OyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMzA6Cj4g LSEgI2xpbmUgMTA2OCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0g KHl5dnNwWygyKSAtICgyKV0uY29tbWFuZCk7Cj4gLS0tLSAyOTk2LDMxMTAgLS0tLQo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxMDc6Cj4gLSEgI2xpbmUgOTk5ICIvdXNyL3NyYy9sb2NhbC9iYXNo L2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFu ZCkgPSBtYWtlX2lmX2NvbW1hbmQgKCh5eXZzcFsoMikgLSAoNSldLmNvbW1hbmQpLAo+ICh5eXZz cFsoNCkgLSAoNSldLmNvbW1hbmQpLCAoQ09NTUFORCAqKU5VTEwpOyB9Cj4gLcKgwqDCoMKgwqDC oGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMDg6Cj4gLSEgI2xpbmUgMTAwMSAiL3Vz ci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9pZl9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDcpXS5j b21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDcpXS5jb21tYW5kKSwgKHl5dnNwWyg2KSAtICg3KV0u Y29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSAxMDk6Cj4gLSEgI2xpbmUgMTAwMyAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRj aGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gbWFrZV9pZl9j b21tYW5kICgoeXl2c3BbKDIpIC0gKDYpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDYpXS5j b21tYW5kKSwgKHl5dnNwWyg1KSAtICg2KV0uY29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJy ZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMTA6Cj4gLSEgI2xpbmUgMTAwOCAiL3Vzci9z cmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsg KHl5dmFsLmNvbW1hbmQpID0gbWFrZV9ncm91cF9jb21tYW5kICgoeXl2c3BbKDIpIC0gKDMpXS5j b21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDExMToKPiAtISAjbGluZSAxMDEyICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNo ZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2FyaXRo X2NvbW1hbmQgKCh5eXZzcFsoMSkgLSAoMSldLndvcmRfbGlzdCkpOwo+IH0KPiAtwqDCoMKgwqDC oMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDExMjoKPiAtISAjbGluZSAxMDE2ICIv dXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDIpIC0gKDMpXS5jb21tYW5kKTsgfQo+IC3C oMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTEzOgo+IC0hICNsaW5l IDEwMjAgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IG1ha2VfaWZfY29tbWFuZCAoKHl5dnNwWygy KSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg0KV0uY29tbWFuZCksIChDT01NQU5E ICopTlVMTCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDExNDoKPiAtISAjbGluZSAxMDIyICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNo ZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBtYWtlX2lmX2Nv bW1hbmQgKCh5eXZzcFsoMikgLSAoNildLmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAoNildLmNv bW1hbmQpLCAoeXl2c3BbKDYpIC0gKDYpXS5jb21tYW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJl YWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDExNToKPiAtISAjbGluZSAxMDI0ICIvdXNyL3Ny Yy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAo eXl2YWwuY29tbWFuZCkgPSBtYWtlX2lmX2NvbW1hbmQgKCh5eXZzcFsoMikgLSAoNSldLmNvbW1h bmQpLAo+ICh5eXZzcFsoNCkgLSAoNSldLmNvbW1hbmQpLCAoeXl2c3BbKDUpIC0gKDUpXS5jb21t YW5kKSk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEx NzoKPiAtISAjbGluZSAxMDI5ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQv cGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2c3BbKDIpIC0gKDIpXS5wYXR0ZXJuKS0+bmV4 dCA9ICh5eXZzcFsoMSkgLSAoMildLnBhdHRlcm4pOwo+ICh5eXZhbC5wYXR0ZXJuKSA9ICh5eXZz cFsoMikgLSAoMildLnBhdHRlcm4pOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4g LcKgwqDCoMKgY2FzZSAxMTg6Cj4gLSEgI2xpbmUgMTAzMyAiL3Vzci9zcmMvbG9jYWwvYmFzaC9i YXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLnBhdHRlcm4p ID0gbWFrZV9wYXR0ZXJuX2xpc3QgKCh5eXZzcFsoMikgLSAoNCldLndvcmRfbGlzdCksCj4gKHl5 dnNwWyg0KSAtICg0KV0uY29tbWFuZCkpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxMTk6Cj4gLSEgI2xpbmUgMTAzNSAiL3Vzci9zcmMvbG9jYWwvYmFz aC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLnBhdHRl cm4pID0gbWFrZV9wYXR0ZXJuX2xpc3QgKCh5eXZzcFsoMikgLSAoNCldLndvcmRfbGlzdCksCj4g KENPTU1BTkQgKilOVUxMKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKg wqDCoGNhc2UgMTIwOgo+IC0hICNsaW5lIDEwMzcgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00 LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5wYXR0ZXJuKSA9IG1h a2VfcGF0dGVybl9saXN0ICgoeXl2c3BbKDMpIC0gKDUpXS53b3JkX2xpc3QpLAo+ICh5eXZzcFso NSkgLSAoNSldLmNvbW1hbmQpKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMTIxOgo+IC0hICNsaW5lIDEwMzkgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFz aC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5wYXR0ZXJuKSA9 IG1ha2VfcGF0dGVybl9saXN0ICgoeXl2c3BbKDMpIC0gKDUpXS53b3JkX2xpc3QpLAo+IChDT01N QU5EICopTlVMTCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDEyMjoKPiAtISAjbGluZSAxMDQzICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBh dGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwucGF0dGVybikgPSAoeXl2c3Bb KDEpIC0gKDIpXS5wYXR0ZXJuKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMTIzOgo+IC0hICNsaW5lIDEwNDUgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFz aC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZzcFsoMikgLSAoMyld LnBhdHRlcm4pLT5uZXh0ID0gKHl5dnNwWygxKSAtICgzKV0ucGF0dGVybik7Cj4gKHl5dmFsLnBh dHRlcm4pID0gKHl5dnNwWygyKSAtICgzKV0ucGF0dGVybik7IH0KPiAtwqDCoMKgwqDCoMKgYnJl YWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEyNDoKPiAtISAjbGluZSAxMDQ3ICIvdXNyL3Ny Yy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAo eXl2c3BbKDEpIC0gKDIpXS5wYXR0ZXJuKS0+ZmxhZ3MgfD0gQ0FTRVBBVF9GQUxMVEhST1VHSDsK PiAoeXl2YWwucGF0dGVybikgPSAoeXl2c3BbKDEpIC0gKDIpXS5wYXR0ZXJuKTsgfQo+IC3CoMKg wqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTI1Ogo+IC0hICNsaW5lIDEw NDkgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7ICh5eXZzcFsoMikgLSAoMyldLnBhdHRlcm4pLT5mbGFncyB8PSBDQVNFUEFUX0ZB TExUSFJPVUdIOyAoeXl2c3BbKDIpCj4gLSAoMyldLnBhdHRlcm4pLT5uZXh0ID0gKHl5dnNwWygx KSAtICgzKV0ucGF0dGVybik7ICh5eXZhbC5wYXR0ZXJuKSA9Cj4gKHl5dnNwWygyKSAtICgzKV0u cGF0dGVybik7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDEyNjoKPiAtISAjbGluZSAxMDUxICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNo ZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2c3BbKDEpIC0gKDIpXS5wYXR0ZXJuKS0+ ZmxhZ3MgfD0gQ0FTRVBBVF9URVNUTkVYVDsKPiAoeXl2YWwucGF0dGVybikgPSAoeXl2c3BbKDEp IC0gKDIpXS5wYXR0ZXJuKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKg wqDCoGNhc2UgMTI3Ogo+IC0hICNsaW5lIDEwNTMgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00 LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZzcFsoMikgLSAoMyldLnBh dHRlcm4pLT5mbGFncyB8PSBDQVNFUEFUX1RFU1RORVhUOyAoeXl2c3BbKDIpIC0KPiAoMyldLnBh dHRlcm4pLT5uZXh0ID0gKHl5dnNwWygxKSAtICgzKV0ucGF0dGVybik7ICh5eXZhbC5wYXR0ZXJu KSA9ICh5eXZzcFsoMikKPiAtICgzKV0ucGF0dGVybik7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7 Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEyODoKPiAtISAjbGluZSAxMDU3ICIvdXNyL3NyYy9s b2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2 YWwud29yZF9saXN0KSA9IG1ha2Vfd29yZF9saXN0ICgoeXl2c3BbKDEpIC0gKDEpXS53b3JkKSwK PiAoV09SRF9MSVNUICopTlVMTCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAt wqDCoMKgwqBjYXNlIDEyOToKPiAtISAjbGluZSAxMDU5ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jh c2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwud29yZF9saXN0 KSA9IG1ha2Vfd29yZF9saXN0ICgoeXl2c3BbKDMpIC0gKDMpXS53b3JkKSwKPiAoeXl2c3BbKDEp IC0gKDMpXS53b3JkX2xpc3QpKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMTMwOgo+IC0hICNsaW5lIDEwNjggIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFz aC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5 dmFsLmNvbW1hbmQpID0gKHl5dnNwWygyKSAtICgyKV0uY29tbWFuZCk7Cj4gLSoqKioqKioqKioq KioqKgo+IC0qKiogMzExNSwzMTE5ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTMyOgo+ IC0hICNsaW5lIDEwNzcgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgv cGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9 ICh5eXZzcFsoMikgLSAoMildLmNvbW1hbmQpOwo+IC0tLS0gMzExNSwzMTE5IC0tLS0KPiAtwqDC oAo+IC3CoMKgwqDCoGNhc2UgMTMyOgo+IC0hICNsaW5lIDEwNzcgIi91c3Ivc3JjL2xvY2FsL2Jh c2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnC oMKgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygyKSAtICgyKV0uY29tbWFuZCk7Cj4gLSoqKioq KioqKioqKioqKgo+IC0qKiogMzEyMiwzMTI2ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug MTM0Ogo+IC0hICNsaW5lIDEwODQgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00 LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoGlmICgoeXl2c3Bb KDEpIC0gKDMpXS5jb21tYW5kKS0+dHlwZSA9PQo+IGNtX2Nvbm5lY3Rpb24pCj4gLS0tLSAzMTIy LDMxMjYgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMzQ6Cj4gLSEgI2xpbmUgMTA4NCAi L3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKg wqDCoHsKPiAtwqDCoAkJCcKgwqBpZiAoKHl5dnNwWygxKSAtICgzKV0uY29tbWFuZCktPnR5cGUg PT0KPiBjbV9jb25uZWN0aW9uKQo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDMxMzIsMzE0NiAq KioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEzNjoKPiAtISAjbGluZSAxMDk1ICIvdXNyL3Ny Yy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDC oHsgKHl5dmFsLmNvbW1hbmQpID0gY29tbWFuZF9jb25uZWN0ICgoeXl2c3BbKDEpIC0gKDQpXS5j b21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgQU5EX0FORCk7IH0KPiAtwqDC oMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEzNzoKPiAtISAjbGluZSAx MDk3ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gY29tbWFuZF9jb25uZWN0ICgoeXl2c3Bb KDEpIC0gKDQpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgT1JfT1Ip OyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMzg6Cj4g LSEgI2xpbmUgMTA5OSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9w YXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFsoMSkgLSAo NCldLmNvbW1hbmQpLT50eXBlID09Cj4gY21fY29ubmVjdGlvbikKPiAtLS0tIDMxMzIsMzE0NiAt LS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDEzNjoKPiAtISAjbGluZSAxMDk1ICIvdXNyL3Ny Yy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAo eXl2YWwuY29tbWFuZCkgPSBjb21tYW5kX2Nvbm5lY3QgKCh5eXZzcFsoMSkgLSAoNCldLmNvbW1h bmQpLAo+ICh5eXZzcFsoNCkgLSAoNCldLmNvbW1hbmQpLCBBTkRfQU5EKTsgfQo+IC3CoMKgwqDC oMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTM3Ogo+IC0hICNsaW5lIDEwOTcg Ii91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDC oMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IGNvbW1hbmRfY29ubmVjdCAoKHl5dnNwWygxKSAtICg0 KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg0KV0uY29tbWFuZCksIE9SX09SKTsgfQo+IC3C oMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTM4Ogo+IC0hICNsaW5l IDEwOTkgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFsoMSkgLSAoNCldLmNvbW1hbmQp LT50eXBlID09Cj4gY21fY29ubmVjdGlvbikKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiAzMTUy LDMxODYgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxMzk6Cj4gLSEgI2xpbmUgMTEwNiAi L3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IGNvbW1hbmRfY29ubmVjdCAoKHl5dnNwWygxKSAt ICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg0KV0uY29tbWFuZCksICc7Jyk7IH0KPiAt wqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE0MDoKPiAtISAjbGlu ZSAxMTA4ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gY29tbWFuZF9jb25uZWN0ICgoeXl2 c3BbKDEpIC0gKDQpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgJzsn KTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTQxOgo+ IC0hICNsaW5lIDExMTAgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgv cGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0g KDEpXS5jb21tYW5kKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgMTQ0Ogo+IC0hICNsaW5lIDExMTggIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gv YmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwubnVtYmVyKSA9ICdc bic7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE0NToK PiAtISAjbGluZSAxMTIwICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4 L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLm51bWJlcikgPSAnOyc7IH0KPiAtwqDC oMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE0NjoKPiAtISAjbGluZSAx MTIyICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsgKHl5dmFsLm51bWJlcikgPSB5YWNjX0VPRjsgfQo+IC3CoMKgwqDCoMKg wqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTQ5Ogo+IC0hICNsaW5lIDExMzYgIi91 c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKg wqDCoMKgewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSld LmNvbW1hbmQpOwo+IC0tLS0gMzE1MiwzMTg2IC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2Ug MTM5Ogo+IC0hICNsaW5lIDExMDYgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hl ZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IGNvbW1hbmRfY29u bmVjdCAoKHl5dnNwWygxKSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg0KV0uY29t bWFuZCksICc7Jyk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDE0MDoKPiAtISAjbGluZSAxMTA4ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBh dGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBjb21tYW5k X2Nvbm5lY3QgKCh5eXZzcFsoMSkgLSAoNCldLmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAoNCld LmNvbW1hbmQpLCAnOycpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSAxNDE6Cj4gLSEgI2xpbmUgMTExMCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQu My1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5 dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAK PiAtwqDCoMKgwqBjYXNlIDE0NDoKPiAtISAjbGluZSAxMTE4ICIvdXNyL3NyYy9sb2NhbC9iYXNo L2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwubnVtYmVy KSA9ICdcbic7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNl IDE0NToKPiAtISAjbGluZSAxMTIwICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNo ZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwubnVtYmVyKSA9ICc7JzsgfQo+IC3C oMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTQ2Ogo+IC0hICNsaW5l IDExMjIgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3C oMKgwqDCoMKgwqB7ICh5eXZhbC5udW1iZXIpID0geWFjY19FT0Y7IH0KPiAtwqDCoMKgwqDCoMKg YnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE0OToKPiAtISAjbGluZSAxMTM2ICIvdXNy L3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKg ewo+IC3CoMKgCQkJwqDCoCh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1h bmQpOwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDMxOTgsMzIwMiAqKioqCj4gLcKgwqAKPiAt wqDCoMKgwqBjYXNlIDE1MDoKPiAtISAjbGluZSAxMTQ5ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3Ny Yy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKg wqBpZiAoKHl5dnNwWygxKSAtICgyKV0uY29tbWFuZCktPnR5cGUgPT0KPiBjbV9jb25uZWN0aW9u KQo+IC0tLS0gMzE5OCwzMjAyIC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTUwOgo+IC0h ICNsaW5lIDExNDkgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55 Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFsoMSkgLSAoMildLmNv bW1hbmQpLT50eXBlID09Cj4gY21fY29ubmVjdGlvbikKPiAtKioqKioqKioqKioqKioqCj4gLSoq KiAzMjE3LDMyMjEgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNTE6Cj4gLSEgI2xpbmUg MTE2NSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+ IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygx KSAtICgyKV0uY29tbWFuZCk7Cj4gLS0tLSAzMjE3LDMyMjEgLS0tLQo+IC3CoMKgCj4gLcKgwqDC oMKgY2FzZSAxNTE6Cj4gLSEgI2xpbmUgMTE2NSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQu My1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAoeXl2YWwu Y29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDIpXS5jb21tYW5kKTsKPiAtKioqKioqKioqKioqKioq Cj4gLSoqKiAzMjMzLDMyNDcgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNTI6Cj4gLSEg I2xpbmUgMTE4MCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IGNvbW1hbmRfY29ubmVjdCAo KHl5dnNwWygxKSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg0KV0uY29tbWFuZCks IEFORF9BTkQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSAxNTM6Cj4gLSEgI2xpbmUgMTE4MiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNo LTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IGNvbW1h bmRfY29ubmVjdCAoKHl5dnNwWygxKSAtICg0KV0uY29tbWFuZCksCj4gKHl5dnNwWyg0KSAtICg0 KV0uY29tbWFuZCksIE9SX09SKTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3C oMKgwqDCoGNhc2UgMTU0Ogo+IC0hICNsaW5lIDExODQgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3Jj L2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDC oGlmICgoeXl2c3BbKDEpIC0gKDMpXS5jb21tYW5kKS0+dHlwZSA9PQo+IGNtX2Nvbm5lY3Rpb24p Cj4gLS0tLSAzMjMzLDMyNDcgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNTI6Cj4gLSEg I2xpbmUgMTE4MCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gY29tbWFuZF9jb25uZWN0ICgoeXl2 c3BbKDEpIC0gKDQpXS5jb21tYW5kKSwKPiAoeXl2c3BbKDQpIC0gKDQpXS5jb21tYW5kKSwgQU5E X0FORCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE1 MzoKPiAtISAjbGluZSAxMTgyICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQv cGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBjb21tYW5kX2Nvbm5l Y3QgKCh5eXZzcFsoMSkgLSAoNCldLmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAoNCldLmNvbW1h bmQpLCBPUl9PUik7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBj YXNlIDE1NDoKPiAtISAjbGluZSAxMTg0ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBh dGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgewo+IC3CoMKgCQkJwqDCoGlmICgoeXl2c3Bb KDEpIC0gKDMpXS5jb21tYW5kKS0+dHlwZSA9PQo+IGNtX2Nvbm5lY3Rpb24pCj4gLSoqKioqKioq KioqKioqKgo+IC0qKiogMzI1MywzMjcyICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTU1 Ogo+IC0hICNsaW5lIDExOTEgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMu MjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBjb21tYW5kX2Nv bm5lY3QgKCh5eXZzcFsoMSkgLSAoMyldLmNvbW1hbmQpLAo+ICh5eXZzcFsoMykgLSAoMyldLmNv bW1hbmQpLCAnOycpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSAxNTY6Cj4gLSEgI2xpbmUgMTE5NCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9i YXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5 eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKg Cj4gLcKgwqDCoMKgY2FzZSAxNTc6Cj4gLSEgI2xpbmUgMTE5OCAiL3Vzci9zcmMvbG9jYWwvY2hl dC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5j b21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSldLmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJy ZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNTg6Cj4gLSEgI2xpbmUgMTIwMCAiL3Vzci9z cmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKg wqB7Cj4gLcKgwqAJCQnCoMKgaWYgKCh5eXZzcFsoMikgLSAoMildLmNvbW1hbmQpKQo+IC0tLS0g MzI1MywzMjcyIC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTU1Ogo+IC0hICNsaW5lIDEx OTEgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKg wqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9IGNvbW1hbmRfY29ubmVjdCAoKHl5dnNwWygxKSAt ICgzKV0uY29tbWFuZCksCj4gKHl5dnNwWygzKSAtICgzKV0uY29tbWFuZCksICc7Jyk7IH0KPiAt wqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE1NjoKPiAtISAjbGlu ZSAxMTk0ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAt wqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSAoeXl2c3BbKDEpIC0gKDEpXS5jb21tYW5k KTsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTU3Ogo+ IC0hICNsaW5lIDExOTggIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5jb21tYW5kKSA9ICh5eXZzcFsoMSkgLSAoMSld LmNvbW1hbmQpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2Fz ZSAxNTg6Cj4gLSEgI2xpbmUgMTIwMCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRj aGVkL3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBpZiAoKHl5dnNwWygy KSAtICgyKV0uY29tbWFuZCkpCj4gLSoqKioqKioqKioqKioqKgo+IC0qKiogMzI3NywzMjgxICoq KioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTU5Ogo+IC0hICNsaW5lIDEyMDYgIi91c3Ivc3Jj L2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2UueSIKPiAtwqDCoMKgwqDCoMKg ewo+IC3CoMKgCQkJwqDCoGlmICgoeXl2c3BbKDIpIC0gKDIpXS5jb21tYW5kKSkKPiAtLS0tIDMy NzcsMzI4MSAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE1OToKPiAtISAjbGluZSAxMjA2 ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKg wqDCoMKgewo+IC3CoMKgCQkJwqDCoGlmICgoeXl2c3BbKDIpIC0gKDIpXS5jb21tYW5kKSkKPiAt KioqKioqKioqKioqKioqCj4gLSoqKiAzMjg2LDMyOTAgKioqKgo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSAxNjA6Cj4gLSEgI2xpbmUgMTIxMiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9i YXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgRUxFTUVO VCB4Owo+IC0tLS0gMzI4NiwzMjkwIC0tLS0KPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTYwOgo+ IC0hICNsaW5lIDEyMTIgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9wYXJz ZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgRUxFTUVOVCB4Owo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDMzMDYsMzMxMCAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2 MToKPiAtISAjbGluZSAxMjI5ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4z LjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBFTEVNRU5UIHg7Cj4g LS0tLSAzMzA2LDMzMTAgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNjE6Cj4gLSEgI2xp bmUgMTIyOSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsKPiAtwqDCoAkJCcKgwqBFTEVNRU5UIHg7Cj4gLSoqKioqKioqKioqKioq Kgo+IC0qKiogMzMyNywzMzM2ICoqKioKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTYyOgo+IC0h ICNsaW5lIDEyNDkgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwuY29tbWFuZCkgPSBjb21tYW5kX2Nvbm5lY3Qg KCh5eXZzcFsoMSkgLSAoNCldLmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAoNCldLmNvbW1hbmQp LCAnfCcpOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAx NjM6Cj4gLSEgI2xpbmUgMTI1MSAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQu My4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7Cj4gLcKgwqAJCQnCoMKgLyogTWFrZSBjbWQx IHwmIGNtZDIgZXF1aXZhbGVudCB0byBjbWQxIDI+JjEgfAo+IGNtZDIgKi8KPiAtLS0tIDMzMjcs MzMzNiAtLS0tCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2MjoKPiAtISAjbGluZSAxMjQ5ICIv dXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFyc2UueSIKPiAtwqDCoMKgwqDC oMKgeyAoeXl2YWwuY29tbWFuZCkgPSBjb21tYW5kX2Nvbm5lY3QgKCh5eXZzcFsoMSkgLSAoNCld LmNvbW1hbmQpLAo+ICh5eXZzcFsoNCkgLSAoNCldLmNvbW1hbmQpLCAnfCcpOyB9Cj4gLcKgwqDC oMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNjM6Cj4gLSEgI2xpbmUgMTI1 MSAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4gLcKgwqDC oMKgwqDCoHsKPiAtwqDCoAkJCcKgwqAvKiBNYWtlIGNtZDEgfCYgY21kMiBlcXVpdmFsZW50IHRv IGNtZDEgMj4mMSB8Cj4gY21kMiAqLwo+IC0qKioqKioqKioqKioqKioKPiAtKioqIDMzNTgsMzM3 NyAqKioqCj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2NDoKPiAtISAjbGluZSAxMjc0ICIvdXNy L3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnkiCj4gLcKgwqDCoMKg wqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFuZCk7IH0KPiAt wqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2NToKPiAtISAjbGlu ZSAxMjc4ICIvdXNyL3NyYy9sb2NhbC9jaGV0L3NyYy9iYXNoL2Jhc2gtNC4zLjI4L3BhcnNlLnki Cj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLm51bWJlcikgPSBDTURfVElNRV9QSVBFTElORTsgfQo+ IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDCoGNhc2UgMTY2Ogo+IC0hICNs aW5lIDEyODAgIi91c3Ivc3JjL2xvY2FsL2NoZXQvc3JjL2Jhc2gvYmFzaC00LjMuMjgvcGFyc2Uu eSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwubnVtYmVyKSA9IENNRF9USU1FX1BJUEVMSU5FfENN RF9USU1FX1BPU0lYOyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKg Y2FzZSAxNjc6Cj4gLSEgI2xpbmUgMTI4MiAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9i YXNoLTQuMy4yOC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5udW1iZXIpID0gQ01E X1RJTUVfUElQRUxJTkV8Q01EX1RJTUVfUE9TSVg7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4g LS0tLSAzMzU4LDMzNzcgLS0tLQo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNjQ6Cj4gLSEgI2xp bmUgMTI3NCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNlLnkiCj4g LcKgwqDCoMKgwqDCoHsgKHl5dmFsLmNvbW1hbmQpID0gKHl5dnNwWygxKSAtICgxKV0uY29tbWFu ZCk7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLcKgwqAKPiAtwqDCoMKgwqBjYXNlIDE2NToK PiAtISAjbGluZSAxMjc4ICIvdXNyL3NyYy9sb2NhbC9iYXNoL2Jhc2gtNC4zLXBhdGNoZWQvcGFy c2UueSIKPiAtwqDCoMKgwqDCoMKgeyAoeXl2YWwubnVtYmVyKSA9IENNRF9USU1FX1BJUEVMSU5F OyB9Cj4gLcKgwqDCoMKgwqDCoGJyZWFrOwo+IC3CoMKgCj4gLcKgwqDCoMKgY2FzZSAxNjY6Cj4g LSEgI2xpbmUgMTI4MCAiL3Vzci9zcmMvbG9jYWwvYmFzaC9iYXNoLTQuMy1wYXRjaGVkL3BhcnNl LnkiCj4gLcKgwqDCoMKgwqDCoHsgKHl5dmFsLm51bWJlcikgPSBDTURfVElNRV9QSVBFTElORXxD TURfVElNRV9QT1NJWDsgfQo+IC3CoMKgwqDCoMKgwqBicmVhazsKPiAtwqDCoAo+IC3CoMKgwqDC oGNhc2UgMTY3Ogo+IC0hICNsaW5lIDEyODIgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMt cGF0Y2hlZC9wYXJzZS55Igo+IC3CoMKgwqDCoMKgwqB7ICh5eXZhbC5udW1iZXIpID0gQ01EX1RJ TUVfUElQRUxJTkV8Q01EX1RJTUVfUE9TSVg7IH0KPiAtwqDCoMKgwqDCoMKgYnJlYWs7Cj4gLSoq KioqKioqKioqKioqKgo+IC0qKiogMzU5MywzNTk3ICoqKioKPiAtwqDCoAo+IC3CoMKgCj4gLSEg I2xpbmUgMTI4NCAiL3Vzci9zcmMvbG9jYWwvY2hldC9zcmMvYmFzaC9iYXNoLTQuMy4yOC9wYXJz ZS55Igo+IC3CoMKgCj4gLcKgwqAKPiAtLS0tIDM1OTMsMzU5NyAtLS0tCj4gLcKgwqAKPiAtwqDC oAo+IC0hICNsaW5lIDEyODQgIi91c3Ivc3JjL2xvY2FsL2Jhc2gvYmFzaC00LjMtcGF0Y2hlZC9w YXJzZS55Igo+IC3CoMKgCj4gLcKgwqAKPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA0ODUxLDQ4 NTQgKioqKgo+IC0tLS0gNDg1MSw0ODY0IC0tLS0KPiAtwqDCoH0KPiAtwqDCoAo+IC0rIGNoYXIg Kgo+IC0rIHBhcnNlcl9yZW1haW5pbmdfaW5wdXQgKCkKPiAtKyB7Cj4gLSvCoMKgwqBpZiAoc2hl bGxfaW5wdXRfbGluZSA9PSAwKQo+IC0rwqDCoMKgwqDCoHJldHVybiAwOwo+IC0rwqDCoMKgaWYg KHNoZWxsX2lucHV0X2xpbmVfaW5kZXggPCAwIHx8IHNoZWxsX2lucHV0X2xpbmVfaW5kZXggPj0K PiBzaGVsbF9pbnB1dF9saW5lX2xlbikKPiAtK8KgwqDCoMKgwqByZXR1cm4gJ1wwJzsJLyogWFhY ICovCj4gLSvCoMKgwqByZXR1cm4gKHNoZWxsX2lucHV0X2xpbmUgKyBzaGVsbF9pbnB1dF9saW5l X2luZGV4KTsKPiAtKyB9Cj4gLSvCoAo+IC3CoMKgI2lmZGVmIElOQ0xVREVfVU5VU0VECj4gLcKg wqAvKiBCYWNrIHRoZSBpbnB1dCBwb2ludGVyIHVwIGJ5IG9uZSwgZWZmZWN0aXZlbHkgYHVuZ2V0 dGluZycgYSBjaGFyYWN0ZXIuCj4gKi8KPiAtKioqKioqKioqKioqKioqCj4gLSoqKiA2MzQwLDYz NDUgKioqKgo+IC3CoMKgwqDCoC8qIHJlc2V0X3BhcnNlciBjbGVhcnMgc2hlbGxfaW5wdXRfbGlu ZSBhbmQgYXNzb2NpYXRlZCB2YXJpYWJsZXMgKi8KPiAtwqDCoMKgwqByZXN0b3JlX2lucHV0X2xp bmVfc3RhdGUgKCZscyk7Cj4gLSHCoMKgwqBpZiAoaW50ZXJhY3RpdmUpCj4gLSHCoMKgwqDCoMKg dG9rZW5fdG9fcmVhZCA9IDA7Cj4gLcKgwqAKPiAtwqDCoMKgwqAvKiBOZWVkIHRvIGZpbmQgaG93 IG1hbnkgY2hhcmFjdGVycyBwYXJzZV9hbmRfZXhlY3V0ZSBjb25zdW1lZCwgdXBkYXRlCj4gLS0t LSA2MzUwLDYzNTUgLS0tLQo+IC3CoMKgwqDCoC8qIHJlc2V0X3BhcnNlciBjbGVhcnMgc2hlbGxf aW5wdXRfbGluZSBhbmQgYXNzb2NpYXRlZCB2YXJpYWJsZXMgKi8KPiAtwqDCoMKgwqByZXN0b3Jl X2lucHV0X2xpbmVfc3RhdGUgKCZscyk7Cj4gLSHCoAo+IC0hwqDCoMKgdG9rZW5fdG9fcmVhZCA9 IDA7Cj4gLcKgwqAKPiAtwqDCoMKgwqAvKiBOZWVkIHRvIGZpbmQgaG93IG1hbnkgY2hhcmFjdGVy cyBwYXJzZV9hbmRfZXhlY3V0ZSBjb25zdW1lZCwgdXBkYXRlCj4gLSoqKiAuLi9iYXNoLTQuMy9w YXRjaGxldmVsLmgJMjAxMi0xMi0yOSAxMDo0Nzo1Ny4wMDAwMDAwMDAgLTA1MDAKPiAtLS0tIHBh dGNobGV2ZWwuaAkyMDE0LTAzLTIwIDIwOjAxOjI4LjAwMDAwMDAwMCAtMDQwMAo+IC0qKioqKioq KioqKioqKioKPiAtKioqIDI2LDMwICoqKioKPiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5k IHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiAtwqDC oAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAyOQo+IC3CoMKgCj4gLcKgwqAjZW5kaWYgLyogX1BB VENITEVWRUxfSF8gKi8KPiAtLS0tIDI2LDMwIC0tLS0KPiAtwqDCoMKgwqDCoGxvb2tzIGZvciB0 byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8K PiAtwqDCoAo+IC0hICNkZWZpbmUgUEFUQ0hMRVZFTCAzMAo+IC3CoMKgCj4gLcKgwqAjZW5kaWYg LyogX1BBVENITEVWRUxfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNo NDQtMDAxIGIvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDAxCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCAwMDAwMDAwLi43Yjg0OGZlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3NyYy9w YXRjaGVzL2Jhc2gvYmFzaDQ0LTAwMQo+IEBAIC0wLDAgKzEsNjAgQEAKPiArCQkJwqDCoMKgwqDC oEJBU0ggUEFUQ0ggUkVQT1JUCj4gKwkJCcKgwqDCoMKgwqA9PT09PT09PT09PT09PT09PQo+ICsK PiArQmFzaC1SZWxlYXNlOgk0LjQKPiArUGF0Y2gtSUQ6CWJhc2g0NC0wMDEKPiArCj4gK0J1Zy1S ZXBvcnRlZC1ieToJU2VhbiBaaGEgPGZyZWVtYW5fY2hhKGEpaG90bWFpbC5jb20+Cj4gK0J1Zy1S ZWZlcmVuY2UtSUQ6CTxCTjNQUjAxTUIxMzY1N0Q5MzAzRUI5NEJGNkU1NDIxNkU4Q0NBMChhKUJO M1BSMDFNQjEzNgo+IDUucHJvZC5leGNoYW5nZWxhYnMuY29tPgo+ICtCdWctUmVmZXJlbmNlLVVS TDoJaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2J1Zy1iYXNoLzIwMTYtMDkvCj4g bXNnMDAxMDcuaHRtbAo+ICsKPiArQnVnLURlc2NyaXB0aW9uOgo+ICsKPiArQmFzaC00LjQgY2hh bmdlZCB0aGUgd2F5IHRoZSBoaXN0b3J5IGxpc3QgaXMgaW5pdGlhbGx5IGFsbG9jYXRlZCB0byBy ZWR1Y2UKPiArdGhlIG51bWJlciBvZiByZWFsbG9jYXRpb25zIGFuZCBjb3BpZXMuwqDCoFVzZXJz IHdobyBzZXQgSElTVFNJWkUgdG8gYSB2ZXJ5Cj4gK2xhcmdlIG51bWJlciB0byBlc3NlbnRpYWxs eSB1bmxpbWl0IHRoZSBzaXplIG9mIHRoZSBoaXN0b3J5IGxpc3Qgd2lsbCBnZXQKPiArbWVtb3J5 IGFsbG9jYXRpb24gZXJyb3JzwqAKPiArCj4gK1BhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAn KToKPiArCj4gKyoqKiAuLi9iYXNoLTQuNC9saWIvcmVhZGxpbmUvaGlzdG9yeS5jCTIwMTUtMTIt MjggMTM6NTA6MzEuMDAwMDAwMDAwCj4gLTA1MDAKPiArLS0tIGxpYi9yZWFkbGluZS9oaXN0b3J5 LmMJMjAxNi0wOS0zMCAxNDoyODo0MC4wMDAwMDAwMDAgLTA0MDAKPiArKioqKioqKioqKioqKioq Cj4gKyoqKiA1OCw2MSAqKioqCj4gKy0tLSA1OCw2MyAtLS0tCj4gK8KgwqAjZGVmaW5lIERFRkFV TFRfSElTVE9SWV9JTklUSUFMX1NJWkUJNTAyCj4gK8KgwqAKPiArKyAjZGVmaW5lIE1BWF9ISVNU T1JZX0lOSVRJQUxfU0laRQk4MTkyCj4gKyvCoAo+ICvCoMKgLyogVGhlIG51bWJlciBvZiBzbG90 cyB0byBpbmNyZWFzZSB0aGVfaGlzdG9yeSBieS4gKi8KPiArwqDCoCNkZWZpbmUgREVGQVVMVF9I SVNUT1JZX0dST1dfU0laRSA1MAo+ICsqKioqKioqKioqKioqKioKPiArKioqIDMwOCwzMTIgKioq Kgo+ICvCoMKgCXsKPiArwqDCoAnCoMKgaWYgKGhpc3Rvcnlfc3RpZmxlZCAmJiBoaXN0b3J5X21h eF9lbnRyaWVzID4gMCkKPiArIcKgCcKgwqDCoMKgaGlzdG9yeV9zaXplID0gaGlzdG9yeV9tYXhf ZW50cmllcyArIDI7Cj4gK8KgwqAJwqDCoGVsc2UKPiArwqDCoAnCoMKgwqDCoGhpc3Rvcnlfc2l6 ZSA9IERFRkFVTFRfSElTVE9SWV9JTklUSUFMX1NJWkU7Cj4gKy0tLSAzMTAsMzE2IC0tLS0KPiAr wqDCoAl7Cj4gK8KgwqAJwqDCoGlmIChoaXN0b3J5X3N0aWZsZWQgJiYgaGlzdG9yeV9tYXhfZW50 cmllcyA+IDApCj4gKyHCoAnCoMKgwqDCoGhpc3Rvcnlfc2l6ZSA9IChoaXN0b3J5X21heF9lbnRy aWVzID4gTUFYX0hJU1RPUllfSU5JVElBTF9TSVpFKQo+ICshwqAJCQkJPyBNQVhfSElTVE9SWV9J TklUSUFMX1NJWkUKPiArIcKgCQkJCTogaGlzdG9yeV9tYXhfZW50cmllcyArIDI7Cj4gK8KgwqAJ wqDCoGVsc2UKPiArwqDCoAnCoMKgwqDCoGhpc3Rvcnlfc2l6ZSA9IERFRkFVTFRfSElTVE9SWV9J TklUSUFMX1NJWkU7Cj4gKyoqKiAuLi9iYXNoLTQuNC9wYXRjaGxldmVsLmgJMjAxNi0wNi0yMiAx NDo1MTowMy4wMDAwMDAwMDAgLTA0MDAKPiArLS0tIHBhdGNobGV2ZWwuaAkyMDE2LTEwLTAxIDEx OjAxOjI4LjAwMDAwMDAwMCAtMDQwMAo+ICsqKioqKioqKioqKioqKioKPiArKioqIDI2LDMwICoq KioKPiArwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRo ZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiArwqDCoAo+ICshICNkZWZpbmUgUEFUQ0hMRVZF TCAwCj4gK8KgwqAKPiArwqDCoCNlbmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+ICstLS0gMjYs MzAgLS0tLQo+ICvCoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChm b3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+ICvCoMKgCj4gKyEgI2RlZmluZSBQQVRD SExFVkVMIDEKPiArwqDCoAo+ICvCoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlm ZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAwMiBiL3NyYy9wYXRjaGVzL2Jhc2gv YmFzaDQ0LTAwMgo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uNmQ4YmFl Zgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0wMDIKPiBA QCAtMCwwICsxLDY5IEBACj4gKwkJCcKgwqDCoMKgwqBCQVNIIFBBVENIIFJFUE9SVAo+ICsJCQnC oMKgwqDCoMKgPT09PT09PT09PT09PT09PT0KPiArCj4gK0Jhc2gtUmVsZWFzZToJNC40Cj4gK1Bh dGNoLUlEOgliYXNoNDQtMDAyCj4gKwo+ICtCdWctUmVwb3J0ZWQtYnk6CUVyaWMgUHJ1aXR0IDxl cmljLnBydWl0dChhKWdtYWlsLmNvbT4KPiArQnVnLVJlZmVyZW5jZS1JRDoJPDIwMTYwOTE2MDU1 MTIwLkdBMjgyNzIoYSlzaW5pc3Rlci5jb2RldmF0LmNvbT4KPiArQnVnLVJlZmVyZW5jZS1VUkw6 CWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctYmFzaC8yMDE2LTA5Lwo+IG1z ZzAwMDE1Lmh0bWwKPiArCj4gK0J1Zy1EZXNjcmlwdGlvbjoKPiArCj4gK0Jhc2gtNC40IHdhcm5z IHdoZW4gZGlzY2FyZGluZyBOVUwgYnl0ZXMgaW4gY29tbWFuZCBzdWJzdGl0dXRpb24gb3V0cHV0 Cj4gK2luc3RlYWQgb2Ygc2lsZW50bHkgZHJvcHBpbmcgdGhlbS7CoMKgVGhpcyBwYXRjaCBjaGFu Z2VzIHRoZSB3YXJuaW5ncyBmcm9tCj4gK29uZSBwZXIgTlVMIGJ5dGUgZW5jb3VudGVyZWQgdG8g b25lIHdhcm5pbmcgcGVyIGNvbW1hbmQgc3Vic3RpdHV0aW9uLgo+ICsKPiArUGF0Y2ggKGFwcGx5 IHdpdGggYHBhdGNoIC1wMCcpOgo+ICsKPiArKioqIC4uL2Jhc2gtNC40L3N1YnN0LmMJMjAxNi0w OC0zMCAxNjo0NjozOC4wMDAwMDAwMDAgLTA0MDAKPiArLS0tIHN1YnN0LmMJMjAxNi0wOS0yNiAx MDoyMDoxOS4wMDAwMDAwMDAgLTA0MDAKPiArKioqKioqKioqKioqKioqCj4gKyoqKiA1OTMyLDU5 MzUgKioqKgo+ICstLS0gNTkzMyw1OTM3IC0tLS0KPiArwqDCoMKgwqBpbnQgaXN0cmluZ19pbmRl eCwgaXN0cmluZ19zaXplLCBjLCB0ZmxhZywgc2tpcF9jdGxlc2MsIHNraXBfY3RsbnVsOwo+ICvC oMKgwqDCoHNzaXplX3QgYnVmbjsKPiArK8KgwqDCoGludCBudWxsYnl0ZTsKPiArwqDCoAo+ICvC oMKgwqDCoGlzdHJpbmcgPSAoY2hhciAqKU5VTEw7Cj4gKyoqKioqKioqKioqKioqKgo+ICsqKiog NTkzOSw1OTQyICoqKioKPiArLS0tIDU5NDEsNTk0NiAtLS0tCj4gK8KgwqDCoMKgwqDCoHNraXBf Y3RsZXNjIHw9ICpzID09IENUTEVTQywgc2tpcF9jdGxudWwgfD0gKnMgPT0gQ1RMTlVMOwo+ICvC oMKgCj4gKyvCoMKgwqBudWxsYnl0ZSA9IDA7Cj4gKyvCoAo+ICvCoMKgwqDCoC8qIFJlYWQgdGhl IG91dHB1dCBvZiB0aGUgY29tbWFuZCB0aHJvdWdoIHRoZSBwaXBlLsKgwqBUaGlzIG1heSBuZWVk IHRvIGJlCj4gK8KgwqDCoMKgwqDCoMKgY2hhbmdlZCB0byB1bmRlcnN0YW5kIG11bHRpYnl0ZSBj aGFyYWN0ZXJzIGluIHRoZSBmdXR1cmUuICovCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogNTk1 Nyw1OTYxICoqKioKPiArwqDCoAl7Cj4gK8KgwqAjaWYgMQo+ICshwqAJwqDCoGludGVybmFsX3dh cm5pbmcgKCIlcyIsIF8oImNvbW1hbmQgc3Vic3RpdHV0aW9uOiBpZ25vcmVkIG51bGwKPiBieXRl IGluIGlucHV0IikpOwo+ICvCoMKgI2VuZGlmCj4gK8KgwqAJwqDCoGNvbnRpbnVlOwo+ICstLS0g NTk2MSw1OTY5IC0tLS0KPiArwqDCoAl7Cj4gK8KgwqAjaWYgMQo+ICshwqAJwqDCoGlmIChudWxs Ynl0ZSA9PSAwKQo+ICshwqAJwqDCoMKgwqB7Cj4gKyHCoAnCoMKgwqDCoMKgwqBpbnRlcm5hbF93 YXJuaW5nICgiJXMiLCBfKCJjb21tYW5kIHN1YnN0aXR1dGlvbjogaWdub3JlZCBudWxsCj4gYnl0 ZSBpbiBpbnB1dCIpKTsKPiArIcKgCcKgwqDCoMKgwqDCoG51bGxieXRlID0gMTsKPiArIcKgCcKg wqDCoMKgfQo+ICvCoMKgI2VuZGlmCj4gK8KgwqAJwqDCoGNvbnRpbnVlOwo+ICsqKiogLi4vYmFz aC00LjQvcGF0Y2hsZXZlbC5oCTIwMTYtMDYtMjIgMTQ6NTE6MDMuMDAwMDAwMDAwIC0wNDAwCj4g Ky0tLSBwYXRjaGxldmVsLmgJMjAxNi0xMC0wMSAxMTowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiAr KioqKioqKioqKioqKioqCj4gKyoqKiAyNiwzMCAqKioqCj4gK8KgwqDCoMKgwqBsb29rcyBmb3Ig dG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICov Cj4gK8KgwqAKPiArISAjZGVmaW5lIFBBVENITEVWRUwgMQo+ICvCoMKgCj4gK8KgwqAjZW5kaWYg LyogX1BBVENITEVWRUxfSF8gKi8KPiArLS0tIDI2LDMwIC0tLS0KPiArwqDCoMKgwqDCoGxvb2tz IGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5n KS4gKi8KPiArwqDCoAo+ICshICNkZWZpbmUgUEFUQ0hMRVZFTCAyCj4gK8KgwqAKPiArwqDCoCNl bmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IGRpZmYgLS1naXQgYS9zcmMvcGF0Y2hlcy9iYXNo L2Jhc2g0NC0wMDMgYi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0wMDMKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjAxYjZiNmMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv c3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDAzCj4gQEAgLTAsMCArMSw1OCBAQAo+ICsJCQnCoMKg wqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiArCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09 Cj4gKwo+ICtCYXNoLVJlbGVhc2U6CTQuNAo+ICtQYXRjaC1JRDoJYmFzaDQ0LTAwMwo+ICsKPiAr QnVnLVJlcG9ydGVkLWJ5OglvcDdpYyBceDAwIDxvcDdpY2EoYSlnbWFpbC5jb20+Cj4gK0J1Zy1S ZWZlcmVuY2UtSUQ6CTxDQUZIeUpUb3BXQzVKeCtVN1djdnhTWkt1K0tycVNmK18zc0hQaVJXbz1W elhTaVBxPXcKPiBAbWFpbC5nbWFpbC5jb20+Cj4gK0J1Zy1SZWZlcmVuY2UtVVJMOglodHRwOi8v bGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWJhc2gvMjAxNi0xMS8KPiBtc2cwMDAwNS5o dG1sCj4gKwo+ICtCdWctRGVzY3JpcHRpb246Cj4gKwo+ICtTcGVjaWFsbHktY3JhZnRlZCBpbnB1 dCwgaW4gdGhpcyBjYXNlIGFuIGluY29tcGxldGUgcGF0aG5hbWUgZXhwYW5zaW9uCj4gK2JyYWNr ZXQgZXhwcmVzc2lvbiBjb250YWluaW5nIGFuIGludmFsaWQgY29sbGF0aW5nIHN5bWJvbCwgY2Fu IGNhdXNlIHRoZQo+ICtzaGVsbCB0byBjcmFzaC4KPiArCj4gK1BhdGNoIChhcHBseSB3aXRoIGBw YXRjaCAtcDAnKToKPiArCj4gKyoqKiAuLi9iYXNoLTQuNC9saWIvZ2xvYi9zbV9sb29wLmMJMjAx Ni0wNC0xMCAxMToyMzoyMS4wMDAwMDAwMDAgLTA0MDAKPiArLS0tIGxpYi9nbG9iL3NtX2xvb3Au YwkyMDE2LTExLTAyIDE0OjAzOjM0LjAwMDAwMDAwMCAtMDQwMAo+ICsqKioqKioqKioqKioqKioK PiArKioqIDMzMSwzMzQgKioqKgo+ICstLS0gMzMxLDM0MCAtLS0tCj4gK8KgwqDCoMKgwqDCoGlm IChwW3BjXSA9PSBMKCcuJykgJiYgcFtwYysxXSA9PSBMKCddJykpCj4gK8KgwqDCoMKgwqDCoMKg wqBicmVhazsKPiArK8KgwqDCoMKgaWYgKHBbcGNdID09IDApCj4gKyvCoMKgwqDCoMKgewo+ICsr wqDCoMKgwqDCoMKgwqBpZiAodnApCj4gKyvCoAkqdnAgPSBJTlZBTElEOwo+ICsrwqDCoMKgwqDC oMKgwqByZXR1cm4gKHAgKyBwYyk7Cj4gKyvCoMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKgdmFsID0g Q09MTFNZTSAocCwgcGMpOwo+ICvCoMKgwqDCoMKgaWYgKHZwKQo+ICsqKioqKioqKioqKioqKioK PiArKioqIDQ4NCw0ODcgKioqKgo+ICstLS0gNDkwLDQ5NiAtLS0tCj4gK8KgwqDCoMKgwqDCoMKg wqBjID0gRk9MRCAoYyk7Cj4gK8KgwqAKPiArK8KgwqDCoMKgwqDCoMKgaWYgKGMgPT0gTCgnXDAn KSkKPiArK8KgCXJldHVybiAoKHRlc3QgPT0gTCgnWycpKSA/IHNhdmVwIDogKENIQVIgKikwKTsK PiArK8KgCj4gK8KgwqDCoMKgwqDCoMKgwqBpZiAoKGZsYWdzICYgRk5NX1BBVEhOQU1FKSAmJiBj ID09IEwoJy8nKSkKPiArwqDCoAkvKiBbL10gY2FuIG5ldmVyIG1hdGNoIHdoZW4gbWF0Y2hpbmcg YSBwYXRobmFtZS7CoMKgKi8KPiArKioqIC4uL2Jhc2gtNC40L3BhdGNobGV2ZWwuaAkyMDE2LTA2 LTIyIDE0OjUxOjAzLjAwMDAwMDAwMCAtMDQwMAo+ICstLS0gcGF0Y2hsZXZlbC5oCTIwMTYtMTAt MDEgMTE6MDE6MjguMDAwMDAwMDAwIC0wNDAwCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogMjYs MzAgKioqKgo+ICvCoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChm b3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+ICvCoMKgCj4gKyEgI2RlZmluZSBQQVRD SExFVkVMIDIKPiArwqDCoAo+ICvCoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gKy0t LSAyNiwzMCAtLS0tCj4gK8KgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2 ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gK8KgwqAKPiArISAjZGVmaW5l IFBBVENITEVWRUwgMwo+ICvCoMKgCj4gK8KgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8K PiBkaWZmIC0tZ2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA0IGIvc3JjL3BhdGNoZXMv YmFzaC9iYXNoNDQtMDA0Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi4x ZDhhZjI2Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAw NAo+IEBAIC0wLDAgKzEsODQgQEAKPiArCQkJwqDCoMKgwqDCoEJBU0ggUEFUQ0ggUkVQT1JUCj4g KwkJCcKgwqDCoMKgwqA9PT09PT09PT09PT09PT09PQo+ICsKPiArQmFzaC1SZWxlYXNlOgk0LjQK PiArUGF0Y2gtSUQ6CWJhc2g0NC0wMDQKPiArCj4gK0J1Zy1SZXBvcnRlZC1ieToJQ2hyaXN0aWFu IFdlaXNnZXJiZXIgPG5hZGR5KGEpbWlwcy5pbmthLmRlPgo+ICtCdWctUmVmZXJlbmNlLUlEOgk8 MjAxNjExMDExNjAzMDIuR0I1NDg1NihhKWxvcnZvcmMubWlwcy5pbmthLmRlPgo+ICtCdWctUmVm ZXJlbmNlLVVSTDoJaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2J1Zy1iYXNoLzIw MTYtMTEvCj4gbXNnMDAwMDQuaHRtbAo+ICsKPiArQnVnLURlc2NyaXB0aW9uOgo+ICsKPiArVGhl cmUgaXMgYSByYWNlIGNvbmRpdGlvbiB0aGF0IGNhbiByZXN1bHQgaW4gYmFzaCByZWZlcmVuY2lu ZyBmcmVlZCBtZW1vcnkKPiArd2hlbiBmcmVlaW5nIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBs YXN0IHByb2Nlc3Mgc3Vic3RpdHV0aW9uLgo+ICsKPiArUGF0Y2ggKGFwcGx5IHdpdGggYHBhdGNo IC1wMCcpOgo+ICsKPiArKioqIC4uL2Jhc2gtNC40L2pvYnMuYwkyMDE2LTA4LTIzIDE2OjM4OjQ0 LjAwMDAwMDAwMCAtMDQwMAo+ICstLS0gam9icy5jCTIwMTYtMTEtMDIgMTg6MjQ6NDUuMDAwMDAw MDAwIC0wNDAwCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogNDU0LDQ1NyAqKioqCj4gKy0tLSA0 NTQsNDcyIC0tLS0KPiArwqDCoH0KPiArwqDCoAo+ICsrIHZvaWQKPiArKyBkaXNjYXJkX2xhc3Rf cHJvY3N1Yl9jaGlsZCAoKQo+ICsrIHsKPiArK8KgwqDCoFBST0NFU1MgKmRpc3Bvc2VyOwo+ICsr wqDCoMKgc2lnc2V0X3Qgc2V0LCBvc2V0Owo+ICsrwqAKPiArK8KgwqDCoEJMT0NLX0NISUxEIChz ZXQsIG9zZXQpOwo+ICsrwqDCoMKgZGlzcG9zZXIgPSBsYXN0X3Byb2NzdWJfY2hpbGQ7Cj4gKyvC oMKgwqBsYXN0X3Byb2NzdWJfY2hpbGQgPSAoUFJPQ0VTUyAqKU5VTEw7Cj4gKyvCoMKgwqBVTkJM T0NLX0NISUxEIChvc2V0KTsKPiArK8KgCj4gKyvCoMKgwqBpZiAoZGlzcG9zZXIpCj4gKyvCoMKg wqDCoMKgZGlzY2FyZF9waXBlbGluZSAoZGlzcG9zZXIpOwo+ICsrIH0KPiArK8KgCj4gK8KgwqBz dHJ1Y3QgcGlwZWxpbmVfc2F2ZXIgKgo+ICvCoMKgYWxsb2NfcGlwZWxpbmVfc2F2ZXIgKCkKPiAr KioqIC4uL2Jhc2gtNC40L2pvYnMuaAkyMDE2LTA0LTI3IDEwOjM1OjUxLjAwMDAwMDAwMCAtMDQw MAo+ICstLS0gam9icy5oCTIwMTYtMTEtMDIgMTg6MjU6MDguMDAwMDAwMDAwIC0wNDAwCj4gKyoq KioqKioqKioqKioqKgo+ICsqKiogMTkxLDE5NCAqKioqCj4gKy0tLSAxOTEsMTk1IC0tLS0KPiAr wqDCoGV4dGVybiB2b2lkIHN0b3BfbWFraW5nX2NoaWxkcmVuIF9fUCgodm9pZCkpOwo+ICvCoMKg ZXh0ZXJuIHZvaWQgY2xlYW51cF90aGVfcGlwZWxpbmUgX19QKCh2b2lkKSk7Cj4gKysgZXh0ZXJu IHZvaWQgZGlzY2FyZF9sYXN0X3Byb2NzdWJfY2hpbGQgX19QKCh2b2lkKSk7Cj4gK8KgwqBleHRl cm4gdm9pZCBzYXZlX3BpcGVsaW5lIF9fUCgoaW50KSk7Cj4gK8KgwqBleHRlcm4gUFJPQ0VTUyAq cmVzdG9yZV9waXBlbGluZSBfX1AoKGludCkpOwo+ICsqKiogLi4vYmFzaC00LjQvc3Vic3QuYwky MDE2LTA4LTMwIDE2OjQ2OjM4LjAwMDAwMDAwMCAtMDQwMAo+ICstLS0gc3Vic3QuYwkyMDE2LTEx LTAyIDE4OjIzOjI0LjAwMDAwMDAwMCAtMDQwMAo+ICsqKioqKioqKioqKioqKioKPiArKioqIDU4 MDksNTgxNiAqKioqCj4gK8KgwqAjaWYgZGVmaW5lZCAoSk9CX0NPTlRST0wpCj4gK8KgwqDCoMKg wqDCoMKgwqBpZiAobGFzdF9wcm9jc3ViX2NoaWxkKQo+ICshwqAJewo+ICshwqAJwqDCoGRpc2Nh cmRfcGlwZWxpbmUgKGxhc3RfcHJvY3N1Yl9jaGlsZCk7Cj4gKyHCoAnCoMKgbGFzdF9wcm9jc3Vi X2NoaWxkID0gKFBST0NFU1MgKilOVUxMOwo+ICshwqAJfQo+ICvCoMKgwqDCoMKgwqDCoMKgbGFz dF9wcm9jc3ViX2NoaWxkID0gcmVzdG9yZV9waXBlbGluZSAoMCk7Cj4gK8KgwqAjZW5kaWYKPiAr LS0tIDU4MzQsNTgzOCAtLS0tCj4gK8KgwqAjaWYgZGVmaW5lZCAoSk9CX0NPTlRST0wpCj4gK8Kg wqDCoMKgwqDCoMKgwqBpZiAobGFzdF9wcm9jc3ViX2NoaWxkKQo+ICshwqAJZGlzY2FyZF9sYXN0 X3Byb2NzdWJfY2hpbGQgKCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqBsYXN0X3Byb2NzdWJfY2hpbGQg PSByZXN0b3JlX3BpcGVsaW5lICgwKTsKPiArwqDCoCNlbmRpZgo+ICsqKiogLi4vYmFzaC00LjQv cGF0Y2hsZXZlbC5oCTIwMTYtMDYtMjIgMTQ6NTE6MDMuMDAwMDAwMDAwIC0wNDAwCj4gKy0tLSBw YXRjaGxldmVsLmgJMjAxNi0xMC0wMSAxMTowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiArKioqKioq KioqKioqKioqCj4gKyoqKiAyNiwzMCAqKioqCj4gK8KgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmlu ZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gK8Kg wqAKPiArISAjZGVmaW5lIFBBVENITEVWRUwgMwo+ICvCoMKgCj4gK8KgwqAjZW5kaWYgLyogX1BB VENITEVWRUxfSF8gKi8KPiArLS0tIDI2LDMwIC0tLS0KPiArwqDCoMKgwqDCoGxvb2tzIGZvciB0 byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8K PiArwqDCoAo+ICshICNkZWZpbmUgUEFUQ0hMRVZFTCA0Cj4gK8KgwqAKPiArwqDCoCNlbmRpZiAv KiBfUEFUQ0hMRVZFTF9IXyAqLwo+IGRpZmYgLS1naXQgYS9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0 NC0wMDUgYi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0wMDUKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAuLmJhY2Q2N2EKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvc3JjL3Bh dGNoZXMvYmFzaC9iYXNoNDQtMDA1Cj4gQEAgLTAsMCArMSw0NyBAQAo+ICsJCQnCoMKgwqDCoMKg QkFTSCBQQVRDSCBSRVBPUlQKPiArCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gKwo+ ICtCYXNoLVJlbGVhc2U6CTQuNAo+ICtQYXRjaC1JRDoJYmFzaDQ0LTAwNQo+ICsKPiArQnVnLVJl cG9ydGVkLWJ5OglEci4gV2VybmVyIEZpbmsgPHdlcm5lcihhKXN1c2UuZGU+Cj4gK0J1Zy1SZWZl cmVuY2UtSUQ6CTwyMDE2MTEwNzEwMDkzNi5ham5vamQ3ZHNwaXJkZmxmKGEpbm9ldGhlci5zdXNl LmRlPgo+ICtCdWctUmVmZXJlbmNlLVVSTDoJaHR0cDovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9o dG1sL2J1Zy1iYXNoLzIwMTYtMTEvCj4gbXNnMDAwNTQuaHRtbAo+ICsKPiArQnVnLURlc2NyaXB0 aW9uOgo+ICsKPiArVW5kZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBhIHNpbXBsZSBjb21tYW5k IGlzIG9wdGltaXplZCB0byBlbGltaW5hdGUgYQo+ICtmb3JrLCByZXN1bHRpbmcgaW4gYW4gRVhJ VCB0cmFwIG5vdCBiZWluZyBleGVjdXRlZC4KPiArCj4gK1BhdGNoIChhcHBseSB3aXRoIGBwYXRj aCAtcDAnKToKPiArCj4gKyoqKiAuLi9iYXNoLTQuNC9idWlsdGlucy9ldmFsc3RyaW5nLmMJMjAx Ni0wOC0xMSAxNDoxODo1MS4wMDAwMDAwMDAKPiAtMDQwMAo+ICstLS0gYnVpbHRpbnMvZXZhbHN0 cmluZy5jCTIwMTYtMTEtMDggMTU6MDU6MDcuMDAwMDAwMDAwIC0wNTAwCj4gKyoqKioqKioqKioq KioqKgo+ICsqKiogMTA1LDExNCAqKioqCj4gK8KgwqAJwqDCoCpiYXNoX2lucHV0LmxvY2F0aW9u LnN0cmluZyA9PSAnXDAnICYmCj4gK8KgwqAJwqDCoGNvbW1hbmQtPnR5cGUgPT0gY21fc2ltcGxl ICYmCj4gKy0gI2lmIDAKPiArwqDCoAnCoMKgc2lnbmFsX2lzX3RyYXBwZWQgKEVYSVRfVFJBUCkg PT0gMCAmJgo+ICvCoMKgCcKgwqBzaWduYWxfaXNfdHJhcHBlZCAoRVJST1JfVFJBUCkgPT0gMCAm Jgo+ICstICNlbHNlCj4gK8KgwqAJwqDCoGFueV9zaWduYWxzX3RyYXBwZWQgKCkgPCAwICYmCj4g Ky0gI2VuZGlmCj4gK8KgwqAJwqDCoGNvbW1hbmQtPnJlZGlyZWN0cyA9PSAwICYmIGNvbW1hbmQt PnZhbHVlLlNpbXBsZS0+cmVkaXJlY3RzID09IDAKPiAmJgo+ICvCoMKgCcKgwqAoKGNvbW1hbmQt PmZsYWdzICYgQ01EX1RJTUVfUElQRUxJTkUpID09IDApICYmCj4gKy0tLSAxMDUsMTExIC0tLS0K PiArKioqIC4uL2Jhc2gtNC40L3BhdGNobGV2ZWwuaAkyMDE2LTA2LTIyIDE0OjUxOjAzLjAwMDAw MDAwMCAtMDQwMAo+ICstLS0gcGF0Y2hsZXZlbC5oCTIwMTYtMTAtMDEgMTE6MDE6MjguMDAwMDAw MDAwIC0wNDAwCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogMjYsMzAgKioqKgo+ICvCoMKgwqDC oMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lv biBzdHJpbmcpLiAqLwo+ICvCoMKgCj4gKyEgI2RlZmluZSBQQVRDSExFVkVMIDQKPiArwqDCoAo+ ICvCoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gKy0tLSAyNiwzMCAtLS0tCj4gK8Kg wqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2 ZXJzaW9uIHN0cmluZykuICovCj4gK8KgwqAKPiArISAjZGVmaW5lIFBBVENITEVWRUwgNQo+ICvC oMKgCj4gK8KgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvc3Jj L3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA2IGIvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA2Cj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5mNjhjN2FiCj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAwNgo+IEBAIC0wLDAgKzEsNTkg QEAKPiArCQkJwqDCoMKgwqDCoEJBU0ggUEFUQ0ggUkVQT1JUCj4gKwkJCcKgwqDCoMKgwqA9PT09 PT09PT09PT09PT09PQo+ICsKPiArQmFzaC1SZWxlYXNlOgk0LjQKPiArUGF0Y2gtSUQ6CWJhc2g0 NC0wMDYKPiArCj4gK0J1Zy1SZXBvcnRlZC1ieToJPGZlcm5hbmRvKGEpbnVsbC1saWZlLmNvbT4K PiArQnVnLVJlZmVyZW5jZS1JRDoJPENBRXItZ1BGUHZxaGVpQWVFTm1Na0V3V1JkNFU9MWlxQ3NZ bVIzc0xkVUxPcUwrK190UQo+IEBtYWlsLmdtYWlsLmNvbT4KPiArQnVnLVJlZmVyZW5jZS1VUkw6 CQo+ICsKPiArQnVnLURlc2NyaXB0aW9uOgo+ICsKPiArT3V0LW9mLXJhbmdlIG5lZ2F0aXZlIG9m ZnNldHMgdG8gcG9wZCBjYW4gY2F1c2UgdGhlIHNoZWxsIHRvIGNyYXNoIGF0dGVtcHRpbmcKPiAr dG8gZnJlZSBhbiBpbnZhbGlkIG1lbW9yeSBibG9jay4KPiArCj4gK1BhdGNoIChhcHBseSB3aXRo IGBwYXRjaCAtcDAnKToKPiArCj4gKyoqKiAuLi9iYXNoLTQuNC1wYXRjaGVkL2J1aWx0aW5zL3B1 c2hkLmRlZgkyMDE2LTAxLTI1Cj4gMTM6MzE6NDkuMDAwMDAwMDAwIC0wNTAwCj4gKy0tLSBidWls dGlucy9wdXNoZC5kZWYJMjAxNi0xMC0yOCAxMDo0Njo0OS4wMDAwMDAwMDAgLTA0MDAKPiArKioq KioqKioqKioqKioqCj4gKyoqKiAzNjYsMzcwICoqKioKPiArwqDCoMKgwqDCoMKgfQo+ICvCoMKg Cj4gKyHCoMKgwqBpZiAod2hpY2ggPiBkaXJlY3RvcnlfbGlzdF9vZmZzZXQgfHwgKGRpcmVjdG9y eV9saXN0X29mZnNldCA9PSAwICYmIHdoaWNoCj4gPT0gMCkpCj4gK8KgwqDCoMKgwqDCoHsKPiAr wqDCoMKgwqDCoMKgwqDCoHB1c2hkX2Vycm9yIChkaXJlY3RvcnlfbGlzdF9vZmZzZXQsIHdoaWNo X3dvcmQgPyB3aGljaF93b3JkIDogIiIpOwo+ICstLS0gMzY2LDM3MCAtLS0tCj4gK8KgwqDCoMKg wqDCoH0KPiArwqDCoAo+ICshwqDCoMKgaWYgKHdoaWNoID4gZGlyZWN0b3J5X2xpc3Rfb2Zmc2V0 IHx8ICh3aGljaCA8IC1kaXJlY3RvcnlfbGlzdF9vZmZzZXQpIHx8Cj4gKGRpcmVjdG9yeV9saXN0 X29mZnNldCA9PSAwICYmIHdoaWNoID09IDApKQo+ICvCoMKgwqDCoMKgwqB7Cj4gK8KgwqDCoMKg wqDCoMKgwqBwdXNoZF9lcnJvciAoZGlyZWN0b3J5X2xpc3Rfb2Zmc2V0LCB3aGljaF93b3JkID8g d2hpY2hfd29yZCA6ICIiKTsKPiArKioqKioqKioqKioqKioqCj4gKyoqKiAzODgsMzkxICoqKioK PiArLS0tIDM4OCwzOTYgLS0tLQo+ICvCoMKgCcKgb2YgdGhlIGxpc3QgaW50byBwbGFjZS4gKi8K PiArwqDCoMKgwqDCoMKgwqDCoGkgPSAoZGlyZWN0aW9uID09ICcrJykgPyBkaXJlY3RvcnlfbGlz dF9vZmZzZXQgLSB3aGljaCA6IHdoaWNoOwo+ICsrwqDCoMKgwqDCoMKgwqBpZiAoaSA8IDAgfHwg aSA+IGRpcmVjdG9yeV9saXN0X29mZnNldCkKPiArK8KgCXsKPiArK8KgCcKgwqBwdXNoZF9lcnJv ciAoZGlyZWN0b3J5X2xpc3Rfb2Zmc2V0LCB3aGljaF93b3JkID8gd2hpY2hfd29yZCA6Cj4gIiIp Owo+ICsrwqAJwqDCoHJldHVybiAoRVhFQ1VUSU9OX0ZBSUxVUkUpOwo+ICsrwqAJfQo+ICvCoMKg wqDCoMKgwqDCoMKgZnJlZSAocHVzaGRfZGlyZWN0b3J5X2xpc3RbaV0pOwo+ICvCoMKgwqDCoMKg wqDCoMKgZGlyZWN0b3J5X2xpc3Rfb2Zmc2V0LS07Cj4gKyoqKiAuLi9iYXNoLTQuNC9wYXRjaGxl dmVsLmgJMjAxNi0wNi0yMiAxNDo1MTowMy4wMDAwMDAwMDAgLTA0MDAKPiArLS0tIHBhdGNobGV2 ZWwuaAkyMDE2LTEwLTAxIDExOjAxOjI4LjAwMDAwMDAwMCAtMDQwMAo+ICsqKioqKioqKioqKioq KioKPiArKioqIDI2LDMwICoqKioKPiArwqDCoMKgwqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBw YXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8KPiArwqDCoAo+ICsh ICNkZWZpbmUgUEFUQ0hMRVZFTCA1Cj4gK8KgwqAKPiArwqDCoCNlbmRpZiAvKiBfUEFUQ0hMRVZF TF9IXyAqLwo+ICstLS0gMjYsMzAgLS0tLQo+ICvCoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQg dGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+ICvCoMKg Cj4gKyEgI2RlZmluZSBQQVRDSExFVkVMIDYKPiArwqDCoAo+ICvCoMKgI2VuZGlmIC8qIF9QQVRD SExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAwNyBi L3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAwNwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMC4uNWZiNTVjYQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9zcmMvcGF0Y2hlcy9i YXNoL2Jhc2g0NC0wMDcKPiBAQCAtMCwwICsxLDE1MSBAQAo+ICsJCQnCoMKgwqDCoMKgQkFTSCBQ QVRDSCBSRVBPUlQKPiArCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gKwo+ICtCYXNo LVJlbGVhc2U6CTQuNAo+ICtQYXRjaC1JRDoJYmFzaDQ0LTAwNwo+ICsKPiArQnVnLVJlcG9ydGVk LWJ5OglKZW5zIEhleWVucyA8amVucy5oZXllbnMoYSljaXNwYS5zYWFybGFuZD4KPiArQnVnLVJl ZmVyZW5jZS1JRDoJCj4gK0J1Zy1SZWZlcmVuY2UtVVJMOglodHRwczovL3NhdmFubmFoLmdudS5v cmcvc3VwcG9ydC8/MTA5MjI0Cj4gKwo+ICtCdWctRGVzY3JpcHRpb246Cj4gKwo+ICtXaGVuIHBl cmZvcm1pbmcgZmlsZW5hbWUgY29tcGxldGlvbiwgYmFzaCBkZXF1b3RlcyB0aGUgZGlyZWN0b3J5 IG5hbWUgYmVpbmcKPiArY29tcGxldGVkLCB3aGljaCBjYW4gcmVzdWx0IGluIG1hdGNoIGZhaWx1 cmVzIGFuZCBwb3RlbnRpYWwgdW53YW50ZWQKPiArZXhwYW5zaW9uLgo+ICsKPiArUGF0Y2ggKGFw cGx5IHdpdGggYHBhdGNoIC1wMCcpOgo+ICsKPiArKioqIC4uL2Jhc2gtNC40LXBhdGNoZWQvYmFz aGxpbmUuYwkyMDE2LTA4LTA1IDIxOjQ0OjA1LjAwMDAwMDAwMCAtMDQwMAo+ICstLS0gYmFzaGxp bmUuYwkyMDE3LTAxLTE5IDEzOjE1OjUxLjAwMDAwMDAwMCAtMDUwMAo+ICsqKioqKioqKioqKioq KioKPiArKioqIDE0MywxNDcgKioqKgo+ICvCoMKgc3RhdGljIHZvaWQgcmVzdG9yZV9kaXJlY3Rv cnlfaG9vayBfX1AoKHJsX2ljcHBmdW5jX3QpKTsKPiArwqDCoAo+ICshIHN0YXRpYyBpbnQgZGly ZWN0b3J5X2V4aXN0cyBfX1AoKGNvbnN0IGNoYXIgKikpOwo+ICvCoMKgCj4gK8KgwqBzdGF0aWMg dm9pZCBjbGVhbnVwX2V4cGFuc2lvbl9lcnJvciBfX1AoKHZvaWQpKTsKPiArLS0tIDE0NCwxNDgg LS0tLQo+ICvCoMKgc3RhdGljIHZvaWQgcmVzdG9yZV9kaXJlY3RvcnlfaG9vayBfX1AoKHJsX2lj cHBmdW5jX3QpKTsKPiArwqDCoAo+ICshIHN0YXRpYyBpbnQgZGlyZWN0b3J5X2V4aXN0cyBfX1Ao KGNvbnN0IGNoYXIgKiwgaW50KSk7Cj4gK8KgwqAKPiArwqDCoHN0YXRpYyB2b2lkIGNsZWFudXBf ZXhwYW5zaW9uX2Vycm9yIF9fUCgodm9pZCkpOwo+ICsqKioqKioqKioqKioqKioKPiArKioqIDMx MDMsMzExMSAqKioqCj4gK8KgwqB9Cj4gK8KgwqAKPiArISAvKiBDaGVjayB3aGV0aGVyIG5vdCB0 aGUgKGRlcXVvdGVkKSB2ZXJzaW9uIG9mIERJUk5BTUUsIHdpdGggYW55IHRyYWlsaW5nCj4gc2xh c2gKPiArIcKgwqDCoMKgcmVtb3ZlZCwgZXhpc3RzLiAqLwo+ICvCoMKgc3RhdGljIGludAo+ICsh IGRpcmVjdG9yeV9leGlzdHMgKGRpcm5hbWUpCj4gK8KgwqDCoMKgwqDCoMKgY29uc3QgY2hhciAq ZGlybmFtZTsKPiArwqDCoHsKPiArwqDCoMKgwqBjaGFyICpuZXdfZGlybmFtZTsKPiArLS0tIDMx MDcsMzExNiAtLS0tCj4gK8KgwqB9Cj4gK8KgwqAKPiArISAvKiBDaGVjayB3aGV0aGVyIG5vdCBE SVJOQU1FLCB3aXRoIGFueSB0cmFpbGluZyBzbGFzaCByZW1vdmVkLCBleGlzdHMuwqDCoElmCj4g KyHCoMKgwqDCoFNIT1VMRF9ERVFVT1RFIGlzIG5vbi16ZXJvLCB3ZSBkZXF1b3RlIHRoZSBkaXJl Y3RvcnkgbmFtZSBmaXJzdC4gKi8KPiArwqDCoHN0YXRpYyBpbnQKPiArISBkaXJlY3RvcnlfZXhp c3RzIChkaXJuYW1lLCBzaG91bGRfZGVxdW90ZSkKPiArwqDCoMKgwqDCoMKgwqBjb25zdCBjaGFy ICpkaXJuYW1lOwo+ICsrwqDCoMKgwqDCoMKgaW50IHNob3VsZF9kZXF1b3RlOwo+ICvCoMKgewo+ ICvCoMKgwqDCoGNoYXIgKm5ld19kaXJuYW1lOwo+ICsqKioqKioqKioqKioqKioKPiArKioqIDMx MTMsMzExOCAqKioqCj4gK8KgwqDCoMKgc3RydWN0IHN0YXQgc2I7Cj4gK8KgwqAKPiArIcKgwqDC oC8qIEZpcnN0LCBkZXF1b3RlIHRoZSBkaXJlY3RvcnkgbmFtZSAqLwo+ICshwqDCoMKgbmV3X2Rp cm5hbWUgPSBiYXNoX2RlcXVvdGVfZmlsZW5hbWUgKChjaGFyICopZGlybmFtZSwKPiBybF9jb21w bGV0aW9uX3F1b3RlX2NoYXJhY3Rlcik7Cj4gK8KgwqDCoMKgZGlybGVuID0gU1RSTEVOIChuZXdf ZGlybmFtZSk7Cj4gK8KgwqDCoMKgaWYgKG5ld19kaXJuYW1lW2RpcmxlbiAtIDFdID09ICcvJykK PiArLS0tIDMxMTgsMzEyNCAtLS0tCj4gK8KgwqDCoMKgc3RydWN0IHN0YXQgc2I7Cj4gK8KgwqAK PiArIcKgwqDCoC8qIFdlIHNhdmUgdGhlIHN0cmluZyBhbmQgY2hvcCB0aGUgdHJhaWxpbmcgc2xh c2ggYmVjYXVzZSBzdGF0L2xzdGF0Cj4gYmVoYXZlCj4gKyHCoMKgwqDCoMKgwqBpbmNvbnNpc3Rl bnRseSBpZiBvbmUgaXMgcHJlc2VudC4gKi8KPiArIcKgwqDCoG5ld19kaXJuYW1lID0gc2hvdWxk X2RlcXVvdGUgPyBiYXNoX2RlcXVvdGVfZmlsZW5hbWUgKChjaGFyICopZGlybmFtZSwKPiBybF9j b21wbGV0aW9uX3F1b3RlX2NoYXJhY3RlcikgOiBzYXZlc3RyaW5nIChkaXJuYW1lKTsKPiArwqDC oMKgwqBkaXJsZW4gPSBTVFJMRU4gKG5ld19kaXJuYW1lKTsKPiArwqDCoMKgwqBpZiAobmV3X2Rp cm5hbWVbZGlybGVuIC0gMV0gPT0gJy8nKQo+ICsqKioqKioqKioqKioqKioKPiArKioqIDMxNDYs MzE1MCAqKioqCj4gK8KgwqDCoMKgwqDCoHNob3VsZF9leHBhbmRfZGlybmFtZSA9ICdgJzsKPiAr wqDCoAo+ICshwqDCoMKgaWYgKHNob3VsZF9leHBhbmRfZGlybmFtZSAmJiBkaXJlY3RvcnlfZXhp c3RzIChsb2NhbF9kaXJuYW1lKSkKPiArwqDCoMKgwqDCoMKgc2hvdWxkX2V4cGFuZF9kaXJuYW1l ID0gMDsKPiArwqDCoMKgwqAKPiArLS0tIDMxNTIsMzE1NiAtLS0tCj4gK8KgwqDCoMKgwqDCoHNo b3VsZF9leHBhbmRfZGlybmFtZSA9ICdgJzsKPiArwqDCoAo+ICshwqDCoMKgaWYgKHNob3VsZF9l eHBhbmRfZGlybmFtZSAmJiBkaXJlY3RvcnlfZXhpc3RzIChsb2NhbF9kaXJuYW1lLCAwKSkKPiAr wqDCoMKgwqDCoMKgc2hvdWxkX2V4cGFuZF9kaXJuYW1lID0gMDsKPiArwqDCoMKgwqAKPiArKioq KioqKioqKioqKioqCj4gKyoqKiAzMTU2LDMxNjAgKioqKgo+ICvCoMKgwqDCoMKgwqDCoMKgZ2xv YmFsX25vdW5zZXQgPSB1bmJvdW5kX3ZhcnNfaXNfZXJyb3I7Cj4gK8KgwqDCoMKgwqDCoMKgwqB1 bmJvdW5kX3ZhcnNfaXNfZXJyb3IgPSAwOwo+ICshwqDCoMKgwqDCoMKgwqB3bCA9IGV4cGFuZF9w cm9tcHRfc3RyaW5nIChuZXdfZGlybmFtZSwgMCwgV19OT0NPTVNVQnxXX0NPTVBMRVRFKTsJCj4g LyogZG9lcyB0aGUgcmlnaHQgdGhpbmcgKi8KPiArwqDCoMKgwqDCoMKgwqDCoHVuYm91bmRfdmFy c19pc19lcnJvciA9IGdsb2JhbF9ub3Vuc2V0Owo+ICvCoMKgwqDCoMKgwqDCoMKgaWYgKHdsKQo+ ICstLS0gMzE2MiwzMTY2IC0tLS0KPiArwqDCoMKgwqDCoMKgwqDCoGdsb2JhbF9ub3Vuc2V0ID0g dW5ib3VuZF92YXJzX2lzX2Vycm9yOwo+ICvCoMKgwqDCoMKgwqDCoMKgdW5ib3VuZF92YXJzX2lz X2Vycm9yID0gMDsKPiArIcKgwqDCoMKgwqDCoMKgd2wgPSBleHBhbmRfcHJvbXB0X3N0cmluZyAo bmV3X2Rpcm5hbWUsIDAsCj4gV19OT0NPTVNVQnxXX05PUFJPQ1NVQnxXX0NPTVBMRVRFKTsJLyog ZG9lcyB0aGUgcmlnaHQgdGhpbmcgKi8KPiArwqDCoMKgwqDCoMKgwqDCoHVuYm91bmRfdmFyc19p c19lcnJvciA9IGdsb2JhbF9ub3Vuc2V0Owo+ICvCoMKgwqDCoMKgwqDCoMKgaWYgKHdsKQo+ICsq KioqKioqKioqKioqKioKPiArKioqIDMyNDUsMzI0OSAqKioqCj4gK8KgwqDCoMKgwqDCoH0KPiAr wqDCoAo+ICshwqDCoMKgaWYgKHNob3VsZF9leHBhbmRfZGlybmFtZSAmJiBkaXJlY3RvcnlfZXhp c3RzIChsb2NhbF9kaXJuYW1lKSkKPiArwqDCoMKgwqDCoMKgc2hvdWxkX2V4cGFuZF9kaXJuYW1l ID0gMDsKPiArwqDCoAo+ICstLS0gMzI2MiwzMjY2IC0tLS0KPiArwqDCoMKgwqDCoMKgfQo+ICvC oMKgCj4gKyHCoMKgwqBpZiAoc2hvdWxkX2V4cGFuZF9kaXJuYW1lICYmIGRpcmVjdG9yeV9leGlz dHMgKGxvY2FsX2Rpcm5hbWUsIDEpKQo+ICvCoMKgwqDCoMKgwqBzaG91bGRfZXhwYW5kX2Rpcm5h bWUgPSAwOwo+ICvCoMKgCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogMzI1MSwzMjU1ICoqKioK PiArwqDCoMKgwqDCoMKgewo+ICvCoMKgwqDCoMKgwqDCoMKgbmV3X2Rpcm5hbWUgPSBzYXZlc3Ry aW5nIChsb2NhbF9kaXJuYW1lKTsKPiArIcKgwqDCoMKgwqDCoMKgd2wgPSBleHBhbmRfcHJvbXB0 X3N0cmluZyAobmV3X2Rpcm5hbWUsIDAsIFdfTk9DT01TVUJ8V19DT01QTEVURSk7CQo+IC8qIGRv ZXMgdGhlIHJpZ2h0IHRoaW5nICovCj4gK8KgwqDCoMKgwqDCoMKgwqBpZiAod2wpCj4gK8KgwqAJ ewo+ICstLS0gMzI2OCwzMjcyIC0tLS0KPiArwqDCoMKgwqDCoMKgewo+ICvCoMKgwqDCoMKgwqDC oMKgbmV3X2Rpcm5hbWUgPSBzYXZlc3RyaW5nIChsb2NhbF9kaXJuYW1lKTsKPiArIcKgwqDCoMKg wqDCoMKgd2wgPSBleHBhbmRfcHJvbXB0X3N0cmluZyAobmV3X2Rpcm5hbWUsIDAsCj4gV19OT0NP TVNVQnxXX05PUFJPQ1NVQnxXX0NPTVBMRVRFKTsJLyogZG9lcyB0aGUgcmlnaHQgdGhpbmcgKi8K PiArwqDCoMKgwqDCoMKgwqDCoGlmICh3bCkKPiArwqDCoAl7Cj4gKyoqKiAuLi9iYXNoLTQuNC9z dWJzdC5jCTIwMTYtMDgtMzAgMTY6NDY6MzguMDAwMDAwMDAwIC0wNDAwCj4gKy0tLSBzdWJzdC5j CTIwMTctMDEtMTkgMDc6MDk6NTcuMDAwMDAwMDAwIC0wNTAwCj4gKyoqKioqKioqKioqKioqKgo+ ICsqKiogOTQ1OSw5NDYyICoqKioKPiArLS0tIDk0NTksOTQ2NiAtLS0tCj4gK8KgwqAJwqDCoMKg wqDCoMKgaWYgKHdvcmQtPmZsYWdzICYgV19DT01QTEVURSkKPiArwqDCoAkJdHdvcmQtPmZsYWdz IHw9IFdfQ09NUExFVEU7CS8qIGZvciBjb21tYW5kCj4gc3Vic3RpdHV0aW9ucyAqLwo+ICsrwqAJ wqDCoMKgwqDCoMKgaWYgKHdvcmQtPmZsYWdzICYgV19OT0NPTVNVQikKPiArK8KgCQl0d29yZC0+ ZmxhZ3MgfD0gV19OT0NPTVNVQjsKPiArK8KgCcKgwqDCoMKgwqDCoGlmICh3b3JkLT5mbGFncyAm IFdfTk9QUk9DU1VCKQo+ICsrwqAJCXR3b3JkLT5mbGFncyB8PSBXX05PUFJPQ1NVQjsKPiArwqDC oAo+ICvCoMKgCcKgwqDCoMKgwqDCoHRlbXAgPSAoY2hhciAqKU5VTEw7Cj4gKyoqKiAuLi9iYXNo LTQuNC9wYXRjaGxldmVsLmgJMjAxNi0wNi0yMiAxNDo1MTowMy4wMDAwMDAwMDAgLTA0MDAKPiAr LS0tIHBhdGNobGV2ZWwuaAkyMDE2LTEwLTAxIDExOjAxOjI4LjAwMDAwMDAwMCAtMDQwMAo+ICsq KioqKioqKioqKioqKioKPiArKioqIDI2LDMwICoqKioKPiArwqDCoMKgwqDCoGxvb2tzIGZvciB0 byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4gKi8K PiArwqDCoAo+ICshICNkZWZpbmUgUEFUQ0hMRVZFTCA2Cj4gK8KgwqAKPiArwqDCoCNlbmRpZiAv KiBfUEFUQ0hMRVZFTF9IXyAqLwo+ICstLS0gMjYsMzAgLS0tLQo+ICvCoMKgwqDCoMKgbG9va3Mg Zm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcp LiAqLwo+ICvCoMKgCj4gKyEgI2RlZmluZSBQQVRDSExFVkVMIDcKPiArwqDCoAo+ICvCoMKgI2Vu ZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gv YmFzaDQ0LTAwOCBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAwOAo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uOTRjNWQ0YQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9z cmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0wMDgKPiBAQCAtMCwwICsxLDg0IEBACj4gKwkJCcKgwqDC oMKgwqBCQVNIIFBBVENIIFJFUE9SVAo+ICsJCQnCoMKgwqDCoMKgPT09PT09PT09PT09PT09PT0K PiArCj4gK0Jhc2gtUmVsZWFzZToJNC40Cj4gK1BhdGNoLUlEOgliYXNoNDQtMDA4Cj4gKwo+ICtC dWctUmVwb3J0ZWQtYnk6CUtvaWNoaSBNVVJBU0UgPG15b2dhLm11cmFzZShhKWdtYWlsLmNvbT4K PiArQnVnLVJlZmVyZW5jZS1JRDoJPENBRkxSTGstVisxQWVRMms9cFk3aWg2VitNZlFfdzhFRjNZ V0wyRSt3bUxmZ0tCdHpYQQo+IEBtYWlsLmdtYWlsLmNvbT4KPiArQnVnLVJlZmVyZW5jZS1VUkw6 CWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctYmFzaC8yMDE2LTExLwo+IG1z ZzAwMDUwLmh0bWwKPiArCj4gK0J1Zy1EZXNjcmlwdGlvbjoKPiArCj4gK1VuZGVyIGNlcnRhaW4g Y2lyY3Vtc3RhbmNlcywgYmFzaCB3aWxsIGV2YWx1YXRlIGFyaXRobWV0aWMgZXhwcmVzc2lvbnMg YXMKPiArcGFydCBvZiByZWFkaW5nIGFuIGV4cHJlc3Npb24gdG9rZW4gZXZlbiB3aGVuIGV2YWx1 YXRpb24gaXMgc3VwcHJlc3NlZC4gVGhpcwo+ICtoYXBwZW5zIHdoaWxlIGV2YWx1YXRpbmcgYSBj b25kaXRpb25hbCBleHByZXNzaW9uIGFuZCBza2lwcGluZyBvdmVyIHRoZQo+ICtmYWlsZWQgYnJh bmNoIG9mIHRoZSBleHByZXNzaW9uLgo+ICsKPiArUGF0Y2ggKGFwcGx5IHdpdGggYHBhdGNoIC1w MCcpOgo+ICsKPiArKioqIC4uL2Jhc2gtNC40LXBhdGNoZWQvZXhwci5jCTIwMTUtMTAtMTEgMTQ6 NDY6MzYuMDAwMDAwMDAwIC0wNDAwCj4gKy0tLSBleHByLmMJMjAxNi0xMS0wOCAxMTo1NTo0Ni4w MDAwMDAwMDAgLTA1MDAKPiArKioqKioqKioqKioqKioqCj4gKyoqKiA1NzksNTg1ICoqKioKPiAr wqDCoMKgwqBpZiAoY3VydG9rID09IFFVRVMpCQkvKiBmb3VuZCBjb25kaXRpb25hbCBleHByICov Cj4gK8KgwqDCoMKgwqDCoHsKPiArLcKgwqDCoMKgwqDCoMKgcmVhZHRvayAoKTsKPiArLcKgwqDC oMKgwqDCoMKgaWYgKGN1cnRvayA9PSAwIHx8IGN1cnRvayA9PSBDT0wpCj4gKy3CoAlldmFsZXJy b3IgKF8oImV4cHJlc3Npb24gZXhwZWN0ZWQiKSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqBpZiAoY3Zh bCA9PSAwKQo+ICvCoMKgCXsKPiArLS0tIDU3OSw1ODIgLS0tLQo+ICsqKioqKioqKioqKioqKioK PiArKioqIDU4OCw1OTEgKioqKgo+ICstLS0gNTg1LDU5MiAtLS0tCj4gK8KgwqAJfQo+ICvCoMKg Cj4gKyvCoMKgwqDCoMKgwqDCoHJlYWR0b2sgKCk7Cj4gKyvCoMKgwqDCoMKgwqDCoGlmIChjdXJ0 b2sgPT0gMCB8fCBjdXJ0b2sgPT0gQ09MKQo+ICsrwqAJZXZhbGVycm9yIChfKCJleHByZXNzaW9u IGV4cGVjdGVkIikpOwo+ICsrwqAKPiArwqDCoMKgwqDCoMKgwqDCoHZhbDEgPSBFWFBfSElHSEVT VCAoKTsKPiArwqDCoAo+ICsqKioqKioqKioqKioqKioKPiArKioqIDU5NCw2MDAgKioqKgo+ICvC oMKgwqDCoMKgwqDCoMKgaWYgKGN1cnRvayAhPSBDT0wpCj4gK8KgwqAJZXZhbGVycm9yIChfKCJg OicgZXhwZWN0ZWQgZm9yIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iKSk7Cj4gKyHCoMKgwqDCoMKg wqDCoHJlYWR0b2sgKCk7Cj4gKyHCoMKgwqDCoMKgwqDCoGlmIChjdXJ0b2sgPT0gMCkKPiArIcKg CWV2YWxlcnJvciAoXygiZXhwcmVzc2lvbiBleHBlY3RlZCIpKTsKPiArwqDCoMKgwqDCoMKgwqDC oHNldF9ub2V2YWwgPSAwOwo+ICvCoMKgwqDCoMKgwqDCoMKgaWYgKGN2YWwpCj4gKy0tLSA1OTUs NTk5IC0tLS0KPiArwqDCoMKgwqDCoMKgwqDCoGlmIChjdXJ0b2sgIT0gQ09MKQo+ICvCoMKgCWV2 YWxlcnJvciAoXygiYDonIGV4cGVjdGVkIGZvciBjb25kaXRpb25hbCBleHByZXNzaW9uIikpOwo+ ICshwqAKPiArwqDCoMKgwqDCoMKgwqDCoHNldF9ub2V2YWwgPSAwOwo+ICvCoMKgwqDCoMKgwqDC oMKgaWYgKGN2YWwpCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogNjA0LDYwOCAqKioqCj4gKy0t LSA2MDMsNjExIC0tLS0KPiArwqDCoMKgCX0KPiArwqDCoAo+ICsrwqDCoMKgwqDCoMKgwqByZWFk dG9rICgpOwo+ICsrwqDCoMKgwqDCoMKgwqBpZiAoY3VydG9rID09IDApCj4gKyvCoAlldmFsZXJy b3IgKF8oImV4cHJlc3Npb24gZXhwZWN0ZWQiKSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqB2YWwyID0g ZXhwY29uZCAoKTsKPiArK8KgCj4gK8KgwqDCoMKgwqDCoMKgwqBpZiAoc2V0X25vZXZhbCkKPiAr wqDCoAlub2V2YWwtLTsKPiArKioqIC4uL2Jhc2gtNC40L3BhdGNobGV2ZWwuaAkyMDE2LTA2LTIy IDE0OjUxOjAzLjAwMDAwMDAwMCAtMDQwMAo+ICstLS0gcGF0Y2hsZXZlbC5oCTIwMTYtMTAtMDEg MTE6MDE6MjguMDAwMDAwMDAwIC0wNDAwCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogMjYsMzAg KioqKgo+ICvCoMKgwqDCoMKgbG9va3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3Ig dGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAqLwo+ICvCoMKgCj4gKyEgI2RlZmluZSBQQVRDSExF VkVMIDcKPiArwqDCoAo+ICvCoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gKy0tLSAy NiwzMCAtLS0tCj4gK8KgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwg KGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gK8KgwqAKPiArISAjZGVmaW5lIFBB VENITEVWRUwgOAo+ICvCoMKgCj4gK8KgwqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiBk aWZmIC0tZ2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDA5IGIvc3JjL3BhdGNoZXMvYmFz aC9iYXNoNDQtMDA5Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi4yNmEw NTRhCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAwOQo+ IEBAIC0wLDAgKzEsMTA3IEBACj4gKwkJCcKgwqDCoMKgwqBCQVNIIFBBVENIIFJFUE9SVAo+ICsJ CQnCoMKgwqDCoMKgPT09PT09PT09PT09PT09PT0KPiArCj4gK0Jhc2gtUmVsZWFzZToJNC40Cj4g K1BhdGNoLUlEOgliYXNoNDQtMDA5Cj4gKwo+ICtCdWctUmVwb3J0ZWQtYnk6CUhvbmcgQ2hvIDxo b25nLmNobyhhKWNpdHJpeC5jb20+Cj4gK0J1Zy1SZWZlcmVuY2UtSUQ6CTxjMzBiNWZlNjJiMjU0 M2FmODI5N2U0N2NhNDg3YzI5YyhhKVNKQ1BFWDAyQ0wwMi5jaXRyaQo+IHRlLm5ldD4KPiArQnVn LVJlZmVyZW5jZS1VUkw6CWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctYmFz aC8yMDE2LTEyLwo+IG1zZzAwMDQzLmh0bWwKPiArCj4gK0J1Zy1EZXNjcmlwdGlvbjoKPiArCj4g K1RoZXJlIGlzIGEgcmFjZSBjb25kaXRpb24gaW4gYWRkX2hpc3RvcnkoKSB0aGF0IGNhbiBiZSB0 cmlnZ2VyZWQgYnkgYSBmYXRhbAo+ICtzaWduYWwgYXJyaXZpbmcgYmV0d2VlbiB0aGUgdGltZSB0 aGUgaGlzdG9yeSBsZW5ndGggaXMgdXBkYXRlZCBhbmQgdGhlIHRpbWUKPiArdGhlIGhpc3Rvcnkg bGlzdCB1cGRhdGUgaXMgY29tcGxldGVkLiBBIGxhdGVyIGF0dGVtcHQgdG8gcmVmZXJlbmNlIGFu Cj4gK2ludmFsaWQgaGlzdG9yeSBlbnRyeSBjYW4gY2F1c2UgYSBjcmFzaC4KPiArCj4gK1BhdGNo IChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiArCj4gKyoqKiAuLi9iYXNoLTQuNC1wYXRjaGVk L2xpYi9yZWFkbGluZS9oaXN0b3J5LmMJMjAxNi0xMS0xMQo+IDEzOjQyOjQ5LjAwMDAwMDAwMCAt MDUwMAo+ICstLS0gbGliL3JlYWRsaW5lL2hpc3RvcnkuYwkyMDE2LTEyLTA1IDEwOjM3OjUxLjAw MDAwMDAwMCAtMDUwMAo+ICsqKioqKioqKioqKioqKioKPiArKioqIDI4MCwyODMgKioqKgo+ICst LS0gMjgwLDI4NCAtLS0tCj4gK8KgwqB7Cj4gK8KgwqDCoMKgSElTVF9FTlRSWSAqdGVtcDsKPiAr K8KgwqDCoGludCBuZXdfbGVuZ3RoOwo+ICvCoMKgCj4gK8KgwqDCoMKgaWYgKGhpc3Rvcnlfc3Rp ZmxlZCAmJiAoaGlzdG9yeV9sZW5ndGggPT0gaGlzdG9yeV9tYXhfZW50cmllcykpCj4gKyoqKioq KioqKioqKioqKgo+ICsqKiogMjk2LDMwNiAqKioqCj4gK8KgwqDCoMKgwqDCoMKgwqAvKiBDb3B5 IHRoZSByZXN0IG9mIHRoZSBlbnRyaWVzLCBtb3ZpbmcgZG93biBvbmUgc2xvdC7CoMKgQ29weSBp bmNsdWRlcwo+ICvCoMKgCcKgdHJhaWxpbmcgTlVMTC7CoMKgKi8KPiArLSAjaWYgMAo+ICstwqDC oMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwgaGlzdG9yeV9sZW5ndGg7IGkrKykKPiArLcKgCXRo ZV9oaXN0b3J5W2ldID0gdGhlX2hpc3RvcnlbaSArIDFdOwo+ICstICNlbHNlCj4gK8KgwqDCoMKg wqDCoMKgwqBtZW1tb3ZlICh0aGVfaGlzdG9yeSwgdGhlX2hpc3RvcnkgKyAxLCBoaXN0b3J5X2xl bmd0aCAqIHNpemVvZgo+IChISVNUX0VOVFJZICopKTsKPiArLSAjZW5kaWYKPiArwqDCoAo+ICvC oMKgwqDCoMKgwqDCoMKgaGlzdG9yeV9iYXNlKys7Cj4gK8KgwqDCoMKgwqDCoH0KPiArLS0tIDI5 NywzMDMgLS0tLQo+ICvCoMKgwqDCoMKgwqDCoMKgLyogQ29weSB0aGUgcmVzdCBvZiB0aGUgZW50 cmllcywgbW92aW5nIGRvd24gb25lIHNsb3QuwqDCoENvcHkgaW5jbHVkZXMKPiArwqDCoAnCoHRy YWlsaW5nIE5VTEwuwqDCoCovCj4gK8KgwqDCoMKgwqDCoMKgwqBtZW1tb3ZlICh0aGVfaGlzdG9y eSwgdGhlX2hpc3RvcnkgKyAxLCBoaXN0b3J5X2xlbmd0aCAqIHNpemVvZgo+IChISVNUX0VOVFJZ ICopKTsKPiArwqDCoAo+ICsrwqDCoMKgwqDCoMKgwqBuZXdfbGVuZ3RoID0gaGlzdG9yeV9sZW5n dGg7Cj4gK8KgwqDCoMKgwqDCoMKgwqBoaXN0b3J5X2Jhc2UrKzsKPiArwqDCoMKgwqDCoMKgfQo+ ICsqKioqKioqKioqKioqKioKPiArKioqIDMxNiwzMjAgKioqKgo+ICvCoMKgCcKgwqDCoMKgaGlz dG9yeV9zaXplID0gREVGQVVMVF9ISVNUT1JZX0lOSVRJQUxfU0laRTsKPiArwqDCoAnCoMKgdGhl X2hpc3RvcnkgPSAoSElTVF9FTlRSWSAqKil4bWFsbG9jIChoaXN0b3J5X3NpemUgKiBzaXplb2YK PiAoSElTVF9FTlRSWSAqKSk7Cj4gKyHCoAnCoMKgaGlzdG9yeV9sZW5ndGggPSAxOwo+ICvCoMKg CX0KPiArwqDCoMKgwqDCoMKgwqDCoGVsc2UKPiArLS0tIDMxMywzMTcgLS0tLQo+ICvCoMKgCcKg wqDCoMKgaGlzdG9yeV9zaXplID0gREVGQVVMVF9ISVNUT1JZX0lOSVRJQUxfU0laRTsKPiArwqDC oAnCoMKgdGhlX2hpc3RvcnkgPSAoSElTVF9FTlRSWSAqKil4bWFsbG9jIChoaXN0b3J5X3NpemUg KiBzaXplb2YKPiAoSElTVF9FTlRSWSAqKSk7Cj4gKyHCoAnCoMKgbmV3X2xlbmd0aCA9IDE7Cj4g K8KgwqAJfQo+ICvCoMKgwqDCoMKgwqDCoMKgZWxzZQo+ICsqKioqKioqKioqKioqKioKPiArKioq IDMyNiwzMzAgKioqKgo+ICvCoMKgCQl4cmVhbGxvYyAodGhlX2hpc3RvcnksIGhpc3Rvcnlfc2l6 ZSAqIHNpemVvZiAoSElTVF9FTlRSWQo+ICopKTsKPiArwqDCoAnCoMKgwqDCoH0KPiArIcKgCcKg wqBoaXN0b3J5X2xlbmd0aCsrOwo+ICvCoMKgCX0KPiArwqDCoMKgwqDCoMKgfQo+ICstLS0gMzIz LDMyNyAtLS0tCj4gK8KgwqAJCXhyZWFsbG9jICh0aGVfaGlzdG9yeSwgaGlzdG9yeV9zaXplICog c2l6ZW9mIChISVNUX0VOVFJZCj4gKikpOwo+ICvCoMKgCcKgwqDCoMKgfQo+ICshwqAJwqDCoG5l d19sZW5ndGggPSBoaXN0b3J5X2xlbmd0aCArIDE7Cj4gK8KgwqAJfQo+ICvCoMKgwqDCoMKgwqB9 Cj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogMzMyLDMzNyAqKioqCj4gK8KgwqDCoMKgdGVtcCA9 IGFsbG9jX2hpc3RvcnlfZW50cnkgKChjaGFyICopc3RyaW5nLCBoaXN0X2luaXR0aW1lICgpKTsK PiArwqDCoAo+ICshwqDCoMKgdGhlX2hpc3RvcnlbaGlzdG9yeV9sZW5ndGhdID0gKEhJU1RfRU5U UlkgKilOVUxMOwo+ICshwqDCoMKgdGhlX2hpc3RvcnlbaGlzdG9yeV9sZW5ndGggLSAxXSA9IHRl bXA7Cj4gK8KgwqB9Cj4gK8KgwqAKPiArLS0tIDMyOSwzMzUgLS0tLQo+ICvCoMKgwqDCoHRlbXAg PSBhbGxvY19oaXN0b3J5X2VudHJ5ICgoY2hhciAqKXN0cmluZywgaGlzdF9pbml0dGltZSAoKSk7 Cj4gK8KgwqAKPiArIcKgwqDCoHRoZV9oaXN0b3J5W25ld19sZW5ndGhdID0gKEhJU1RfRU5UUlkg KilOVUxMOwo+ICshwqDCoMKgdGhlX2hpc3RvcnlbbmV3X2xlbmd0aCAtIDFdID0gdGVtcDsKPiAr IcKgwqDCoGhpc3RvcnlfbGVuZ3RoID0gbmV3X2xlbmd0aDsKPiArwqDCoH0KPiArwqDCoAo+ICsq KiogLi4vYmFzaC00LjQvcGF0Y2hsZXZlbC5oCTIwMTYtMDYtMjIgMTQ6NTE6MDMuMDAwMDAwMDAw IC0wNDAwCj4gKy0tLSBwYXRjaGxldmVsLmgJMjAxNi0xMC0wMSAxMTowMToyOC4wMDAwMDAwMDAg LTA0MDAKPiArKioqKioqKioqKioqKioqCj4gKyoqKiAyNiwzMCAqKioqCj4gK8KgwqDCoMKgwqBs b29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0 cmluZykuICovCj4gK8KgwqAKPiArISAjZGVmaW5lIFBBVENITEVWRUwgOAo+ICvCoMKgCj4gK8Kg wqAjZW5kaWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiArLS0tIDI2LDMwIC0tLS0KPiArwqDCoMKg wqDCoGxvb2tzIGZvciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNp b24gc3RyaW5nKS4gKi8KPiArwqDCoAo+ICshICNkZWZpbmUgUEFUQ0hMRVZFTCA5Cj4gK8KgwqAK PiArwqDCoCNlbmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+IGRpZmYgLS1naXQgYS9zcmMvcGF0 Y2hlcy9iYXNoL2Jhc2g0NC0wMTAgYi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0wMTAKPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjIzNDYwMDUKPiAtLS0gL2Rldi9udWxs Cj4gKysrIGIvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDEwCj4gQEAgLTAsMCArMSw0OSBAQAo+ ICsJCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQKPiArCQkJwqDCoMKgwqDCoD09PT09PT09 PT09PT09PT09Cj4gKwo+ICtCYXNoLVJlbGVhc2U6CTQuNAo+ICtQYXRjaC1JRDoJYmFzaDQ0LTAx MAo+ICsKPiArQnVnLVJlcG9ydGVkLWJ5OglDbGFyayBXYW5nIDxkZWFydm9pZChhKWdtYWlsLmNv bT4KPiArQnVnLVJlZmVyZW5jZS1JRDoJPENBRHY4LW9nMDkyUnZ2VVVIeTQ2PUJQS0NoQ1h3NWc9 R09PcWdOMFYzZjRhM1RwTGViUQo+IEBtYWlsLmdtYWlsLmNvbT4KPiArQnVnLVJlZmVyZW5jZS1V Ukw6CWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctYmFzaC8yMDE2LTExLwo+ IG1zZzAwMTA0Lmh0bWwKPiArCj4gK0J1Zy1EZXNjcmlwdGlvbjoKPiArCj4gK0RlcGVuZGluZyBv biBjb21waWxlciBvcHRpbWl6YXRpb25zIGFuZCBiZWhhdmlvciwgdGhlIGByZWFkJyBidWlsdGlu IG1heSBub3QKPiArc2F2ZSBwYXJ0aWFsIGlucHV0IHdoZW4gYSB0aW1lb3V0IG9jY3Vycy4KPiAr Cj4gK1BhdGNoIChhcHBseSB3aXRoIGBwYXRjaCAtcDAnKToKPiArCj4gKyoqKiAuLi9iYXNoLTQu NC1wYXRjaGVkL2J1aWx0aW5zL3JlYWQuZGVmCTIwMTYtMDUtMTYKPiAxNDoyNDo1Ni4wMDAwMDAw MDAgLTA0MDAKPiArLS0tIGJ1aWx0aW5zL3JlYWQuZGVmCTIwMTYtMTEtMjUgMTI6Mzc6NTYuMDAw MDAwMDAwIC0wNTAwCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogMTgyLDE4NiAqKioqCj4gK8Kg wqB7Cj4gK8KgwqDCoMKgcmVnaXN0ZXIgY2hhciAqdmFybmFtZTsKPiArIcKgwqDCoGludCBzaXpl LCBpLCBuciwgcGFzc19uZXh0LCBzYXdfZXNjYXBlLCBlb2YsIG9wdCwgcmV0dmFsLCBjb2RlLAo+ IHByaW50X3BzMjsKPiArwqDCoMKgwqBpbnQgaW5wdXRfaXNfdHR5LCBpbnB1dF9pc19waXBlLCB1 bmJ1ZmZlcmVkX3JlYWQsIHNraXBfY3RsZXNjLAo+IHNraXBfY3RsbnVsOwo+ICvCoMKgwqDCoGlu dCByYXcsIGVkaXQsIG5jaGFycywgc2lsZW50LCBoYXZlX3RpbWVvdXQsIGlnbm9yZV9kZWxpbSwg ZmQsIGxhc3RzaWcsCj4gdF9lcnJubzsKPiArLS0tIDE4MiwxODcgLS0tLQo+ICvCoMKgewo+ICvC oMKgwqDCoHJlZ2lzdGVyIGNoYXIgKnZhcm5hbWU7Cj4gKyHCoMKgwqBpbnQgc2l6ZSwgbnIsIHBh c3NfbmV4dCwgc2F3X2VzY2FwZSwgZW9mLCBvcHQsIHJldHZhbCwgY29kZSwgcHJpbnRfcHMyOwo+ ICshwqDCoMKgdm9sYXRpbGUgaW50IGk7Cj4gK8KgwqDCoMKgaW50IGlucHV0X2lzX3R0eSwgaW5w dXRfaXNfcGlwZSwgdW5idWZmZXJlZF9yZWFkLCBza2lwX2N0bGVzYywKPiBza2lwX2N0bG51bDsK PiArwqDCoMKgwqBpbnQgcmF3LCBlZGl0LCBuY2hhcnMsIHNpbGVudCwgaGF2ZV90aW1lb3V0LCBp Z25vcmVfZGVsaW0sIGZkLCBsYXN0c2lnLAo+IHRfZXJybm87Cj4gKwo+ICsqKiogLi4vYmFzaC00 LjQvcGF0Y2hsZXZlbC5oCTIwMTYtMDYtMjIgMTQ6NTE6MDMuMDAwMDAwMDAwIC0wNDAwCj4gKy0t LSBwYXRjaGxldmVsLmgJMjAxNi0xMC0wMSAxMTowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiArKioq KioqKioqKioqKioqCj4gKyoqKiAyNiwzMCAqKioqCj4gK8KgwqDCoMKgwqBsb29rcyBmb3IgdG8g ZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4g K8KgwqAKPiArISAjZGVmaW5lIFBBVENITEVWRUwgOQo+ICvCoMKgCj4gK8KgwqAjZW5kaWYgLyog X1BBVENITEVWRUxfSF8gKi8KPiArLS0tIDI2LDMwIC0tLS0KPiArwqDCoMKgwqDCoGxvb2tzIGZv ciB0byBmaW5kIHRoZSBwYXRjaCBsZXZlbCAoZm9yIHRoZSBzY2NzIHZlcnNpb24gc3RyaW5nKS4g Ki8KPiArwqDCoAo+ICshICNkZWZpbmUgUEFUQ0hMRVZFTCAxMAo+ICvCoMKgCj4gK8KgwqAjZW5k aWYgLyogX1BBVENITEVWRUxfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvc3JjL3BhdGNoZXMvYmFzaC9i YXNoNDQtMDExIGIvc3JjL3BhdGNoZXMvYmFzaC9iYXNoNDQtMDExCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwLi4yZWI5OTU3Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3Ny Yy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAxMQo+IEBAIC0wLDAgKzEsNTAgQEAKPiArCQkJwqDCoMKg wqDCoEJBU0ggUEFUQ0ggUkVQT1JUCj4gKwkJCcKgwqDCoMKgwqA9PT09PT09PT09PT09PT09PQo+ ICsKPiArQmFzaC1SZWxlYXNlOgk0LjQKPiArUGF0Y2gtSUQ6CWJhc2g0NC0wMTEKPiArCj4gK0J1 Zy1SZXBvcnRlZC1ieToJUnVzc2VsbCBLaW5nIDxybWsoYSlhcm1saW51eC5vcmcudWs+Cj4gK0J1 Zy1SZWZlcmVuY2UtSUQ6CTxFMWNObkZ4LTAwMDdHMi1TMihhKWZsaW50LmFybWxpbnV4Lm9yZy51 az4KPiArQnVnLVJlZmVyZW5jZS1VUkw6CWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRt bC9idWctYmFzaC8yMDE3LTAxLwo+IG1zZzAwMDAwLmh0bWwKPiArCj4gK0J1Zy1EZXNjcmlwdGlv bjoKPiArCj4gK1N1YnNoZWxscyBiZWd1biB0byBydW4gY29tbWFuZCBhbmQgcHJvY2VzcyBzdWJz dGl0dXRpb25zIG1heSBhdHRlbXB0IHRvCj4gK3NldCB0aGUgdGVybWluYWwncyBwcm9jZXNzIGdy b3VwIHRvIGFuIGluY29ycmVjdCB2YWx1ZSBpZiB0aGV5IHJlY2VpdmUKPiArYSBmYXRhbCBzaWdu YWwuwqDCoFRoaXMgZGVwZW5kcyBvbiB0aGUgYmVoYXZpb3Igb2YgdGhlIHByb2Nlc3MgdGhhdCBz dGFydHMKPiArdGhlIHNoZWxsLgo+ICsKPiArUGF0Y2ggKGFwcGx5IHdpdGggYHBhdGNoIC1wMCcp Ogo+ICsKPiArKioqIC4uL2Jhc2gtNC40LXBhdGNoZWQvc2lnLmMJMjAxNi0wMi0xMSAxNTowMjo0 NS4wMDAwMDAwMDAgLTA1MDAKPiArLS0tIHNpZy5jCTIwMTctMDEtMDQgMDk6MDk6NDcuMDAwMDAw MDAwIC0wNTAwCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogNTg2LDU5MCAqKioqCj4gK8KgwqDC oMKgaWYgKHNpZyA9PSBTSUdIVVAgJiYgKGludGVyYWN0aXZlIHx8IChzdWJzaGVsbF9lbnZpcm9u bWVudCAmCj4gKFNVQlNIRUxMX0NPTVNVQnxTVUJTSEVMTF9QUk9DU1VCKSkpKQo+ICvCoMKgwqDC oMKgwqBoYW5ndXBfYWxsX2pvYnMgKCk7Cj4gKyHCoMKgwqBlbmRfam9iX2NvbnRyb2wgKCk7Cj4g K8KgwqAjZW5kaWYgLyogSk9CX0NPTlRST0wgKi8KPiArwqDCoAo+ICstLS0gNTcxLDU3NiAtLS0t Cj4gK8KgwqDCoMKgaWYgKHNpZyA9PSBTSUdIVVAgJiYgKGludGVyYWN0aXZlIHx8IChzdWJzaGVs bF9lbnZpcm9ubWVudCAmCj4gKFNVQlNIRUxMX0NPTVNVQnxTVUJTSEVMTF9QUk9DU1VCKSkpKQo+ ICvCoMKgwqDCoMKgwqBoYW5ndXBfYWxsX2pvYnMgKCk7Cj4gKyHCoMKgwqBpZiAoKHN1YnNoZWxs X2Vudmlyb25tZW50ICYgKFNVQlNIRUxMX0NPTVNVQnxTVUJTSEVMTF9QUk9DU1VCKSkgPT0gMCkK PiArIcKgwqDCoMKgwqBlbmRfam9iX2NvbnRyb2wgKCk7Cj4gK8KgwqAjZW5kaWYgLyogSk9CX0NP TlRST0wgKi8KPiArwqDCoAo+ICsqKiogLi4vYmFzaC00LjQvcGF0Y2hsZXZlbC5oCTIwMTYtMDYt MjIgMTQ6NTE6MDMuMDAwMDAwMDAwIC0wNDAwCj4gKy0tLSBwYXRjaGxldmVsLmgJMjAxNi0xMC0w MSAxMTowMToyOC4wMDAwMDAwMDAgLTA0MDAKPiArKioqKioqKioqKioqKioqCj4gKyoqKiAyNiwz MCAqKioqCj4gK8KgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2ZWwgKGZv ciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gK8KgwqAKPiArISAjZGVmaW5lIFBBVENI TEVWRUwgMTAKPiArwqDCoAo+ICvCoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICovCj4gKy0t LSAyNiwzMCAtLS0tCj4gK8KgwqDCoMKgwqBsb29rcyBmb3IgdG8gZmluZCB0aGUgcGF0Y2ggbGV2 ZWwgKGZvciB0aGUgc2NjcyB2ZXJzaW9uIHN0cmluZykuICovCj4gK8KgwqAKPiArISAjZGVmaW5l IFBBVENITEVWRUwgMTEKPiArwqDCoAo+ICvCoMKgI2VuZGlmIC8qIF9QQVRDSExFVkVMX0hfICov Cj4gZGlmZiAtLWdpdCBhL3NyYy9wYXRjaGVzL2Jhc2gvYmFzaDQ0LTAxMiBiL3NyYy9wYXRjaGVz L2Jhc2gvYmFzaDQ0LTAxMgo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4u MTgyZmQ3Ywo+IC0tLSAvZGV2L251bGwKPiArKysgYi9zcmMvcGF0Y2hlcy9iYXNoL2Jhc2g0NC0w MTIKPiBAQCAtMCwwICsxLDE2MSBAQAo+ICsJCQnCoMKgwqDCoMKgQkFTSCBQQVRDSCBSRVBPUlQK PiArCQkJwqDCoMKgwqDCoD09PT09PT09PT09PT09PT09Cj4gKwo+ICtCYXNoLVJlbGVhc2U6CTQu NAo+ICtQYXRjaC1JRDoJYmFzaDQ0LTAxMgo+ICsKPiArQnVnLVJlcG9ydGVkLWJ5OglDbGFyayBX YW5nIDxkZWFydm9pZChhKWdtYWlsLmNvbT4KPiArQnVnLVJlZmVyZW5jZS1JRDoJPENBRHY4LW9q dHRQVUZPWlhxYmpzdnk4M0xmYUp0UUtaNXFlakdkRjZqMFZKM3Z0cllPQQo+IEBtYWlsLmdtYWls LmNvbT4KPiArQnVnLVJlZmVyZW5jZS1VUkw6CWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUv aHRtbC9idWctYmFzaC8yMDE2LTExLwo+IG1zZzAwMTA2Lmh0bWwKPiArCj4gK0J1Zy1EZXNjcmlw dGlvbjoKPiArCj4gK1doZW4gLU4gaXMgdXNlZCwgdGhlIGlucHV0IGlzIG5vdCBzdXBwb3NlZCB0 byBiZSBzcGxpdCB1c2luZyAkSUZTLCBidXQKPiArbGVhZGluZyBhbmQgdHJhaWxpbmcgSUZTIHdo aXRlc3BhY2Ugd2FzIHN0aWxsIHJlbW92ZWQuCj4gKwo+ICtQYXRjaCAoYXBwbHkgd2l0aCBgcGF0 Y2ggLXAwJyk6Cj4gKwo+ICsqKiogLi4vYmFzaC00LjQtcGF0Y2hlZC9zdWJzdC5jCTIwMTctMDEt MjAgMTQ6MjI6MDEuMDAwMDAwMDAwIC0wNTAwCj4gKy0tLSBzdWJzdC5jCTIwMTctMDEtMjUgMTM6 NDM6MjIuMDAwMDAwMDAwIC0wNTAwCj4gKyoqKioqKioqKioqKioqKgo+ICsqKiogMjgyNiwyODM0 ICoqKioKPiArwqDCoC8qIFBhcnNlIGEgc2luZ2xlIHdvcmQgZnJvbSBTVFJJTkcsIHVzaW5nIFNF UEFSQVRPUlMgdG8gc2VwYXJhdGUgZmllbGRzLgo+ICvCoMKgwqDCoMKgRU5EUFRSIGlzIHNldCB0 byB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSB3b3JkLsKgwqBUaGlzIGlzIHVzZWQgYnkK PiArIcKgwqDCoMKgdGhlIGByZWFkJyBidWlsdGluLsKgwqBUaGlzIGlzIG5ldmVyIGNhbGxlZCB3 aXRoIFNFUEFSQVRPUlMgIT0gJElGUzsKPiArIcKgwqDCoMKgaXQgc2hvdWxkIGJlIHNpbXBsaWZp ZWQuCj4gK8KgwqAKPiArwqDCoMKgwqDCoFhYWCAtIHRoaXMgZnVuY3Rpb24gaXMgdmVyeSBzaW1p bGFyIHRvIGxpc3Rfc3RyaW5nOyB0aGV5IHNob3VsZCBiZQo+ICvCoMKgCcKgY29tYmluZWQgLSBY WFggKi8KPiArwqDCoGNoYXIgKgo+ICvCoMKgZ2V0X3dvcmRfZnJvbV9zdHJpbmcgKHN0cmluZ3As IHNlcGFyYXRvcnMsIGVuZHB0cikKPiArLS0tIDI4MjYsMjgzOCAtLS0tCj4gK8KgwqAvKiBQYXJz ZSBhIHNpbmdsZSB3b3JkIGZyb20gU1RSSU5HLCB1c2luZyBTRVBBUkFUT1JTIHRvIHNlcGFyYXRl IGZpZWxkcy4KPiArwqDCoMKgwqDCoEVORFBUUiBpcyBzZXQgdG8gdGhlIGZpcnN0IGNoYXJhY3Rl ciBhZnRlciB0aGUgd29yZC7CoMKgVGhpcyBpcyB1c2VkIGJ5Cj4gKyHCoMKgwqDCoHRoZSBgcmVh ZCcgYnVpbHRpbi4KPiArIcKgwqDCoMKgCj4gKyHCoMKgwqDCoFRoaXMgaXMgbmV2ZXIgY2FsbGVk IHdpdGggU0VQQVJBVE9SUyAhPSAkSUZTLCBhbmQgdGFrZXMgYWR2YW50YWdlIG9mCj4gdGhhdC4K PiArwqDCoAo+ICvCoMKgwqDCoMKgWFhYIC0gdGhpcyBmdW5jdGlvbiBpcyB2ZXJ5IHNpbWlsYXIg dG8gbGlzdF9zdHJpbmc7IHRoZXkgc2hvdWxkIGJlCj4gK8KgwqAJwqBjb21iaW5lZCAtIFhYWCAq Lwo+ICsrwqAKPiArKyAjZGVmaW5lIGlzbG9jYWxzZXAoYykJKGxvY2FsX2NtYXBbKHVuc2lnbmVk IGNoYXIpKGMpXSAhPSAwKQo+ICsrwqAKPiArwqDCoGNoYXIgKgo+ICvCoMKgZ2V0X3dvcmRfZnJv bV9zdHJpbmcgKHN0cmluZ3AsIHNlcGFyYXRvcnMsIGVuZHB0cikKPiArKioqKioqKioqKioqKioq Cj4gKyoqKiAyODM4LDI4NDEgKioqKgo+ICstLS0gMjg0MiwyODQ2IC0tLS0KPiArwqDCoMKgwqBj aGFyICpjdXJyZW50X3dvcmQ7Cj4gK8KgwqDCoMKgaW50IHNpbmRleCwgc2hfc3R5bGVfc3BsaXQs IHdoaXRlc2VwLCB4ZmxhZ3M7Cj4gKyvCoMKgwqB1bnNpZ25lZCBjaGFyIGxvY2FsX2NtYXBbVUNI QVJfTUFYKzFdOwkvKiByZWFsbHkgb25seSBuZWVkIHNpbmdsZS0KPiBieXRlIGNoYXJzIGhlcmUg Ki8KPiArwqDCoMKgwqBzaXplX3Qgc2xlbjsKPiArwqDCoAo+ICsqKioqKioqKioqKioqKioKPiAr KioqIDI4NDcsMjg1NCAqKioqCj4gK8KgwqAJCQkJwqBzZXBhcmF0b3JzWzJdID09ICdcbicgJiYK PiArwqDCoAkJCQnCoHNlcGFyYXRvcnNbM10gPT0gJ1wwJzsKPiArIcKgwqDCoGZvciAoeGZsYWdz ID0gMCwgcyA9IGlmc192YWx1ZTsgcyAmJiAqczsgcysrKQo+ICvCoMKgwqDCoMKgwqB7Cj4gK8Kg wqDCoMKgwqDCoMKgwqBpZiAoKnMgPT0gQ1RMRVNDKSB4ZmxhZ3MgfD0gU1hfTk9DVExFU0M7Cj4g K8KgwqDCoMKgwqDCoMKgwqBpZiAoKnMgPT0gQ1RMTlVMKSB4ZmxhZ3MgfD0gU1hfTk9FU0NDVExO VUw7Cj4gK8KgwqDCoMKgwqDCoH0KPiArwqDCoAo+ICstLS0gMjg1MiwyODYxIC0tLS0KPiArwqDC oAkJCQnCoHNlcGFyYXRvcnNbMl0gPT0gJ1xuJyAmJgo+ICvCoMKgCQkJCcKgc2VwYXJhdG9yc1sz XSA9PSAnXDAnOwo+ICshwqDCoMKgbWVtc2V0IChsb2NhbF9jbWFwLCAnXDAnLCBzaXplb2YgKGxv Y2FsX2NtYXApKTsKPiArIcKgwqDCoGZvciAoeGZsYWdzID0gMCwgcyA9IHNlcGFyYXRvcnM7IHMg JiYgKnM7IHMrKykKPiArwqDCoMKgwqDCoMKgewo+ICvCoMKgwqDCoMKgwqDCoMKgaWYgKCpzID09 IENUTEVTQykgeGZsYWdzIHw9IFNYX05PQ1RMRVNDOwo+ICvCoMKgwqDCoMKgwqDCoMKgaWYgKCpz ID09IENUTE5VTCkgeGZsYWdzIHw9IFNYX05PRVNDQ1RMTlVMOwo+ICsrwqDCoMKgwqDCoMKgwqBs b2NhbF9jbWFwWyh1bnNpZ25lZCBjaGFyKSpzXSA9IDE7CS8qIGxvY2FsIGNoYXJtYXAgb2YKPiBz ZXBhcmF0b3JzICovCj4gK8KgwqDCoMKgwqDCoH0KPiArwqDCoAo+ICsqKioqKioqKioqKioqKioK PiArKioqIDI4NTcsMjg2NCAqKioqCj4gK8KgwqAKPiArwqDCoMKgwqAvKiBSZW1vdmUgc2VxdWVu Y2VzIG9mIHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBvZiBTVFJJTkcsIGFzCj4gKyHCoMKg wqDCoMKgwqBsb25nIGFzIHRob3NlIGNoYXJhY3RlcnMgYXBwZWFyIGluIElGUy4gKi8KPiArIcKg wqDCoGlmIChzaF9zdHlsZV9zcGxpdCB8fCAhc2VwYXJhdG9ycyB8fCAhKnNlcGFyYXRvcnMpCj4g K8KgwqDCoMKgwqDCoHsKPiArIcKgwqDCoMKgwqDCoMKgZm9yICg7ICpzICYmIHNwY3RhYm5sICgq cykgJiYgaXNpZnMgKCpzKTsgcysrKTsKPiArwqDCoAo+ICvCoMKgwqDCoMKgwqDCoMKgLyogSWYg dGhlIHN0cmluZyBpcyBub3RoaW5nIGJ1dCB3aGl0ZXNwYWNlLCB1cGRhdGUgaXQgYW5kIHJldHVy bi4gKi8KPiArLS0tIDI4NjQsMjg3MiAtLS0tCj4gK8KgwqAKPiArwqDCoMKgwqAvKiBSZW1vdmUg c2VxdWVuY2VzIG9mIHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBvZiBTVFJJTkcsIGFzCj4g KyHCoMKgwqDCoMKgwqBsb25nIGFzIHRob3NlIGNoYXJhY3RlcnMgYXBwZWFyIGluIFNFUEFSQVRP UlMuwqDCoFRoaXMgaGFwcGVucyBpZgo+ICshwqDCoMKgwqDCoMKgU0VQQVJBVE9SUyA9PSAkJyBc dFxuJyBvciBpZiBJRlMgaXMgdW5zZXQuICovCj4gKyHCoMKgwqBpZiAoc2hfc3R5bGVfc3BsaXQg fHwgc2VwYXJhdG9ycyA9PSAwKQo+ICvCoMKgwqDCoMKgwqB7Cj4gKyHCoMKgwqDCoMKgwqDCoGZv ciAoOyAqcyAmJiBzcGN0YWJubCAoKnMpICYmIGlzbG9jYWxzZXAgKCpzKTsgcysrKTsKPiArwqDC oAo+ICvCoMKgwqDCoMKgwqDCoMKgLyogSWYgdGhlIHN0cmluZyBpcyBub3RoaW5nIGJ1dCB3aGl0 ZXNwYWNlLCB1cGRhdGUgaXQgYW5kIHJldHVybi4gKi8KPiArKioqKioqKioqKioqKioqCj4gKyoq KiAyODc5LDI4ODUgKioqKgo+ICvCoMKgwqDCoMKgwqDCoFRoaXMgb2JleXMgdGhlIGZpZWxkIHNw bGl0dGluZyBydWxlcyBpbiBQb3NpeC4yLiAqLwo+ICvCoMKgwqDCoHNpbmRleCA9IDA7Cj4gKyHC oMKgwqAvKiBEb24ndCBuZWVkIHN0cmluZyBsZW5ndGggaW4gQURWQU5DRV9DSEFSIG9yIHN0cmlu Z19leHRyYWN0X3ZlcmJhdGltCj4gKyHCoMKgwqDCoMKgwqB1bmxlc3MgbXVsdGlieXRlIGNoYXJz IGFyZSBwb3NzaWJsZS4gKi8KPiArIcKgwqDCoHNsZW4gPSAoTUJfQ1VSX01BWCA+IDEpID8gU1RS TEVOIChzKSA6IDE7Cj4gK8KgwqDCoMKgY3VycmVudF93b3JkID0gc3RyaW5nX2V4dHJhY3RfdmVy YmF0aW0gKHMsIHNsZW4sICZzaW5kZXgsIHNlcGFyYXRvcnMsCj4geGZsYWdzKTsKPiArwqDCoAo+ ICstLS0gMjg4NywyODkzIC0tLS0KPiArwqDCoMKgwqDCoMKgwqBUaGlzIG9iZXlzIHRoZSBmaWVs ZCBzcGxpdHRpbmcgcnVsZXMgaW4gUG9zaXguMi4gKi8KPiArwqDCoMKgwqBzaW5kZXggPSAwOwo+ ICshwqDCoMKgLyogRG9uJ3QgbmVlZCBzdHJpbmcgbGVuZ3RoIGluIEFEVkFOQ0VfQ0hBUiB1bmxl c3MgbXVsdGlieXRlIGNoYXJzIGFyZQo+ICshwqDCoMKgwqDCoMKgcG9zc2libGUsIGJ1dCBuZWVk IGl0IGluIHN0cmluZ19leHRyYWN0X3ZlcmJhdGltIGZvciBib3VuZHMgY2hlY2tpbmcKPiAqLwo+ ICshwqDCoMKgc2xlbiA9IFNUUkxFTiAocyk7Cj4gK8KgwqDCoMKgY3VycmVudF93b3JkID0gc3Ry aW5nX2V4dHJhY3RfdmVyYmF0aW0gKHMsIHNsZW4sICZzaW5kZXgsIHNlcGFyYXRvcnMsCj4geGZs YWdzKTsKPiArwqDCoAo+ICsqKioqKioqKioqKioqKioKPiArKioqIDI5MDAsMjkwNCAqKioqCj4g K8KgwqDCoMKgLyogTm93IHNraXAgc2VxdWVuY2VzIG9mIHNwYWNlLCB0YWIsIG9yIG5ld2xpbmUg Y2hhcmFjdGVycyBpZiB0aGV5IGFyZQo+ICvCoMKgwqDCoMKgwqDCoGluIHRoZSBsaXN0IG9mIHNl cGFyYXRvcnMuICovCj4gKyHCoMKgwqB3aGlsZSAoc1tzaW5kZXhdICYmIHNwY3RhYm5sIChzW3Np bmRleF0pICYmIGlzaWZzIChzW3NpbmRleF0pKQo+ICvCoMKgwqDCoMKgwqBzaW5kZXgrKzsKPiAr wqDCoAo+ICstLS0gMjkwOCwyOTEyIC0tLS0KPiArwqDCoMKgwqAvKiBOb3cgc2tpcCBzZXF1ZW5j ZXMgb2Ygc3BhY2UsIHRhYiwgb3IgbmV3bGluZSBjaGFyYWN0ZXJzIGlmIHRoZXkgYXJlCj4gK8Kg wqDCoMKgwqDCoMKgaW4gdGhlIGxpc3Qgb2Ygc2VwYXJhdG9ycy4gKi8KPiArIcKgwqDCoHdoaWxl IChzW3NpbmRleF0gJiYgc3BjdGFibmwgKHNbc2luZGV4XSkgJiYgaXNsb2NhbHNlcCAoc1tzaW5k ZXhdKSkKPiArwqDCoMKgwqDCoMKgc2luZGV4Kys7Cj4gK8KgwqAKPiArKioqKioqKioqKioqKioq Cj4gKyoqKiAyOTA3LDI5MTYgKioqKgo+ICvCoMKgwqDCoMKgwqDCoGRlbGltaXRlciwgbm90IGEg c2VwYXJhdGUgZGVsaW1pdGVyIHRoYXQgd291bGQgcmVzdWx0IGluIGFuIGVtcHR5Cj4gZmllbGQu Cj4gK8KgwqDCoMKgwqDCoMKgTG9vayBhdCBQT1NJWC4yLCAzLjYuNSwgKDMpKGIpLiAqLwo+ICsh wqDCoMKgaWYgKHNbc2luZGV4XSAmJiB3aGl0ZXNlcCAmJiBpc2lmcyAoc1tzaW5kZXhdKSAmJiAh c3BjdGFibmwgKHNbc2luZGV4XSkpCj4gK8KgwqDCoMKgwqDCoHsKPiArwqDCoMKgwqDCoMKgwqDC oHNpbmRleCsrOwo+ICvCoMKgwqDCoMKgwqDCoMKgLyogQW4gSUZTIGNoYXJhY3RlciB0aGF0IGlz IG5vdCBJRlMgd2hpdGUgc3BhY2UsIGFsb25nIHdpdGggYW55Cj4gYWRqYWNlbnQKPiArwqDCoAnC oElGUyB3aGl0ZSBzcGFjZSwgc2hhbGwgZGVsaW1pdCBhIGZpZWxkLiAqLwo+ICshwqDCoMKgwqDC oMKgwqB3aGlsZSAoc1tzaW5kZXhdICYmIHNwY3RhYm5sIChzW3NpbmRleF0pICYmIGlzaWZzIChz W3NpbmRleF0pKQo+ICvCoMKgCXNpbmRleCsrOwo+ICvCoMKgwqDCoMKgwqB9Cj4gKy0tLSAyOTE1 LDI5MjQgLS0tLQo+ICvCoMKgwqDCoMKgwqDCoGRlbGltaXRlciwgbm90IGEgc2VwYXJhdGUgZGVs aW1pdGVyIHRoYXQgd291bGQgcmVzdWx0IGluIGFuIGVtcHR5Cj4gZmllbGQuCj4gK8KgwqDCoMKg wqDCoMKgTG9vayBhdCBQT1NJWC4yLCAzLjYuNSwgKDMpKGIpLiAqLwo+ICshwqDCoMKgaWYgKHNb c2luZGV4XSAmJiB3aGl0ZXNlcCAmJiBpc2xvY2Fsc2VwIChzW3NpbmRleF0pICYmICFzcGN0YWJu bAo+IChzW3NpbmRleF0pKQo+ICvCoMKgwqDCoMKgwqB7Cj4gK8KgwqDCoMKgwqDCoMKgwqBzaW5k ZXgrKzsKPiArwqDCoMKgwqDCoMKgwqDCoC8qIEFuIElGUyBjaGFyYWN0ZXIgdGhhdCBpcyBub3Qg SUZTIHdoaXRlIHNwYWNlLCBhbG9uZyB3aXRoIGFueQo+IGFkamFjZW50Cj4gK8KgwqAJwqBJRlMg d2hpdGUgc3BhY2UsIHNoYWxsIGRlbGltaXQgYSBmaWVsZC4gKi8KPiArIcKgwqDCoMKgwqDCoMKg d2hpbGUgKHNbc2luZGV4XSAmJiBzcGN0YWJubCAoc1tzaW5kZXhdKSAmJiBpc2xvY2Fsc2VwKHNb c2luZGV4XSkpCj4gK8KgwqAJc2luZGV4Kys7Cj4gK8KgwqDCoMKgwqDCoH0KPiArKioqIC4uL2Jh c2gtNC40L3BhdGNobGV2ZWwuaAkyMDE2LTA2LTIyIDE0OjUxOjAzLjAwMDAwMDAwMCAtMDQwMAo+ ICstLS0gcGF0Y2hsZXZlbC5oCTIwMTYtMTAtMDEgMTE6MDE6MjguMDAwMDAwMDAwIC0wNDAwCj4g KyoqKioqKioqKioqKioqKgo+ICsqKiogMjYsMzAgKioqKgo+ICvCoMKgwqDCoMKgbG9va3MgZm9y IHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJpbmcpLiAq Lwo+ICvCoMKgCj4gKyEgI2RlZmluZSBQQVRDSExFVkVMIDExCj4gK8KgwqAKPiArwqDCoCNlbmRp ZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo+ICstLS0gMjYsMzAgLS0tLQo+ICvCoMKgwqDCoMKgbG9v a3MgZm9yIHRvIGZpbmQgdGhlIHBhdGNoIGxldmVsIChmb3IgdGhlIHNjY3MgdmVyc2lvbiBzdHJp bmcpLiAqLwo+ICvCoMKgCj4gKyEgI2RlZmluZSBQQVRDSExFVkVMIDEyCj4gK8KgwqAKPiArwqDC oCNlbmRpZiAvKiBfUEFUQ0hMRVZFTF9IXyAqLwo= --===============8171867645968600805== Content-Type: application/pgp-signature Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="signature.asc" MIME-Version: 1.0 LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcgdjIKCmlRSWNCQUFC Q2dBR0JRSlpOOEJYQUFvSkVJQjU4UDl2a0FrSFlxY1AvaVoyV0dwdEdmNGlZeE9TZ2dBd1RIMzEK d05BTy9Eb1J6VC9HdXE3TVJMbU1Cckpza3grQkdyeTl1ajNIS25BT1NXM0d6R2RNWjFhRmVza244 N2hkRDRvQQpRUGpiTGJuT1ZqSlNJKzZNRDJFbDcyS0RPcjFpM2dTVVovQ2tOdzRzR21OUFF0MTR1 c2U5cmFpbHY0U0dsTSttCmxDNEU0N3BnRUxscDk4Z0hDTkdzOGxaQXM5UnNnNnNaa0dTbW9oS1pp VmlNdXY5OStBd1Q2UXZBZ2cwV2NyWSsKS2FYenZGZEdKejdSay8vMGZiL2RzaG5qYWM2ODRaY3hW ZXNXZC85ZXE5VjhvVDNPV1FXcUNIK3NDUDBKK25qNwpjTWxSZU5LRGhWai9UcWpORks5VGxBNVd6 VkoySDY1YzhIZjBCY1lpL3lvdncwZWxhODU3N0ZaOUZtRkpEUHJrCkxuS09SMlRnVlRnTXJwcVZY ajQ4L2Ewc0lvdXlxQ1F5dzRTVmYyT2hIdS9WY1R6MFNqcDlDbkh4blNLc0VsYVgKSjdHOExKZEhU UGUzMzFQM3NWZjF6M0s4aFpBa25kMjhDbGVWVjg3RkJmWXBvdkxvMysrMEQrQXc1OUpnajhYNAp2 aGtBV0h3NFdPU09qbWRTMW9tdmh0dStiUWorVWx2dEFJWDI5a2lqWlJkSWV3VVdzdysrdHRFN2ZT RFZ3OVpXCmYvc0xMNVdoSThIQXZGS1dXb0dkNnFnTUNNRDkrRjZOZlN5SXRTZy8wb29RZVYyUXVX eTBXck14Mm9oNE5PS1gKbmpOOWdoQkNQcFpaZEZselAyeXMzOWtUS0plWjA3a250c0RPWTFjNWx0 Z1lkVzM1STl6cjdmazdRMXBtY3phTwovMXJWd2tXcExJNG9rNnd6L0Nvbgo9dmRmVwotLS0tLUVO RCBQR1AgU0lHTkFUVVJFLS0tLS0K --===============8171867645968600805==--