Re: GCC segfault on i686
Matthew Carter <[email protected]> Thu, 25 Aug 2016 21:10:14 -0400
| Newsgroups | gmane.comp.gnu.prolog.bugs |
|---|---|
| Message-ID | <[email protected]> |
SGkgYWdhaW4sCgpJdCBpcyBqdXN0IHRoZSAtLWRpc2FibGUtcmVncyBmbGFnIG5lZWRlZCBkdXJp bmcgdGhlIGNvbmZpZ3VyZSBzdGVwIHRvCnNvbHZlIHRoaXMgaXNzdWUuCgpTbzoKCiAgLi9jb25m aWd1cmUgLS1kaXNhYmxlLXJlZ3MgJiYgbWFrZSBjbGVhbiAmJiBtYWtlCgpTaG91bGQgZG8gdGhl IHRyaWNrIG9uIGk2ODYuCgotTWF0dAoKT24gVGh1LCBBdWcgMjUsIDIwMTYgYXQgMDc6NDk6MTJQ TSArMDIwMCwgVGlsbCBIb2ZtYW5uIHdyb3RlOgo+IEhpIGFsbCwKPiAKPiBkbyB5b3UgaGF2ZSBh IHN1Z2dlc3Rpb24gb24gaG93IHRvIHByb2NlZWQgd2l0aCB0aGlzIGJ1Zz8gQ2FuIHRoaXMgYmUK PiBmaXhlZCBvbiB0aGUgUHJvbG9nIHNpZGU/IFNob3VsZCB0aGlzIGJlIHJlcG9ydGVkIGFzIEdD QyBidWc/Cj4gCj4gS2luZCByZWdhcmRzLAo+IFRpbGwKPiAKPiBPbiAwOC8xOS8yMDE2IDA4OjU2 IEFNLCBUaWxsIEhvZm1hbm4gd3JvdGU6Cj4gPiBPbiAwOC8xOS8yMDE2IDAyOjQwIEFNLCBNYXR0 aGV3IENhcnRlciB3cm90ZToKPiA+PiBJIGNhbiBjb25maXJtIGZhaWx1cmUgdG8gYnVpbGQgd2l0 aCBnY2MgNi4xKyBvbiBpNjg2ICh1c2luZyBBcmNoIExpbnV4Cj4gPj4gbXlzZWxmKS4KPiA+Pgo+ ID4+IEkgY291bGRuJ3QgZ2V0IGl0IHRvIGJ1aWxkIHdpdGggeW91ciBjb25maWd1cmUgb3B0aW9u cyBob3dldmVyIChpdCBzdGlsbAo+ID4+IGZhaWxlZCB3aXRoIHNlZ2ZhdWx0IGluIHRoZSBzYW1l IHBsYWNlKS4KPiA+IAo+ID4gVGhlIGNvbmZpZ3VyZSBvcHRpb25zIHdlcmUgb25seSB0byBwcm9k dWNlIHRoZSBtb3JlIHZlcmJvc2UgbWFrZSBvdXRwdXQKPiA+IGFuZCB0aGUgLmkgZmlsZXMuIFRo ZSBidWlsZCBzdGlsbCBmYWlscy4gU29ycnkgaWYgdGhpcyB3YXNuJ3QgY2xlYXIuCj4gPiAKPiA+ IEtpbmQgcmVnYXJkcywKPiA+IFRpbGwKPiA+IAo+ID4+Cj4gPj4gLU1hdHQKPiA+Pgo+ID4+IE9u IFRodSwgQXVnIDE4LCAyMDE2IGF0IDEyOjEwOjQ5UE0gKzAyMDAsIFRpbGwgSG9mbWFubiB3cm90 ZToKPiA+Pj4gSGkgYWxsLAo+ID4+Pgo+ID4+PiBJJ20gY3VycmVudGx5IHRyeWluZyB0byBkZWJ1 ZyBhIEdDQyBzZWdmYXVsdCB0aGF0IG9jY3VycyB3aGVuIGNvbXBpbGluZwo+ID4+PiBFbmdpbmVQ bC9tYWNoaW5lLmMgb24gaTY4NiBtYWNoaW5lczoKPiA+Pj4KPiA+Pj4+IG1ha2VbMV06IEVudGVy aW5nIGRpcmVjdG9yeSAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQv c3JjL0VuZ2luZVBsJwo+ID4+Pj4gZ3BsYyAtYyAtQyAnLU8zIC1mb21pdC1mcmFtZS1wb2ludGVy JyBtYWNoaW5lLmMKPiA+Pj4+IG1hY2hpbmUuYzogSW4gZnVuY3Rpb24g4oCYUGxfTV9SYW5kb21p emXigJk6Cj4gPj4+PiBtYWNoaW5lLmM6Mzg2OjE6IGludGVybmFsIGNvbXBpbGVyIGVycm9yOiBT ZWdtZW50YXRpb24gZmF1bHQKPiA+Pj4KPiA+Pj4gSXQgbG9va3MgbGlrZSB0aGlzIGlzIHJlbGF0 ZWQgdG8gdXNpbmcgdGhlIGVieCByZWdpc3RlcjsgaWYgSSByZW1vdmUKPiA+Pj4gJy1mZml4ZWQt ZWJ4JyBmcm9tIHRoZSBjYWxsIHRvIGNjMSwgdGhlIHNlZ2ZhdWx0IGRpc2FwcGVhcnMuCj4gPj4+ Cj4gPj4+IExvb2tpbmcgYXQgdGhlIENoYW5nZWxvZywgaXQgbG9va3MgbGlrZSB0aGVyZSB3YXMg YSBmaXggZm9yIHNvbWUgaXNzdWUKPiA+Pj4gcmVsYXRlZCB0byB1c2luZyBlYnggaW4gMS4zLjEs IGJ1dCB0aGUgZXJyb3Igc3RpbGwgb2NjdXJzIG9uIGk2ODYuCj4gPj4+Cj4gPj4+IFRvIHJlcHJv ZHVjZSwgeW91IG5lZWQgdG8gYnVpbGQgZ3Byb2xvZyBvbiBpNjg2IHdpdGggR0NDIDYuMS4gSSBj b3VsZAo+ID4+PiByZXByb2R1Y2UgdGhpcyBvbiBtdWx0aXBsZSBtYWNoaW5lcy4KPiA+Pj4KPiA+ Pj4gU29tZSBhZGRpdGlvbmFsIGluZm86Cj4gPj4+IGdwcm9sb2cgdmVyc2lvbjogMS40LjQKPiA+ Pj4gT1M6IEZlZG9yYSAyNCAoYWxzbyBvY2N1cnMgb24gRmVkb3JhIDI1IGFuZCBGZWRvcmEgUmF3 aGlkZSkKPiA+Pj4gJCBnY2MgLS12ZXJzaW9uCj4gPj4+IGdjYyAoR0NDKSA2LjEuMSAyMDE2MDYy MSAoUmVkIEhhdCA2LjEuMS0zKQo+ID4+PiAkIHVuYW1lIC1hCj4gPj4+IExpbnV4IG5jMTAgNC42 LjUtMzAwLmZjMjQuaTY4NitQQUUgIzEgU01QIFRodSBKdWwgMjggMDE6MzQ6NDYgVVRDIDIwMTYK PiA+Pj4gaTY4NiBpNjg2IGkzODYgR05VL0xpbnV4Cj4gPj4+Cj4gPj4+IEkgYnVpbGQgd2l0aCAi Li9jb25maWd1cmUgLS13aXRoLWMtZmxhZ3M9Jy12IC1zYXZlLXRlbXBzJyIsIEkndmUKPiA+Pj4g YXR0YWNoZWQgdGhlIGZ1bGwgb3V0cHV0IGZyb20gbWFrZS4gSSd2ZSBhbHNvIGF0dGFjaGVkIG1h Y2hpbmUuaS4KPiA+Pj4KPiA+Pj4gV2l0aCBvbGRlciBHQ0MgdmVyc2lvbnMgKDw2KSwgdGhlIGJ1 ZyBkb2VzIG5vdCBvY2N1ciwgc28gdGhpcyBtaWdodCB3ZWxsCj4gPj4+IGJlIGEgYnVnIGluIEdD QzYuCj4gPj4+Cj4gPj4+Cj4gPj4+IEtpbmQgcmVnYXJkcwo+ID4+PiBUaWxsCj4gPj4KPiA+Pj4g Y2QgRW5naW5lUGw7IG1ha2UgY29uZmlnCj4gPj4+IG1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9y eSAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZVBs Jwo+ID4+PiBnY2MgLW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAt diAtc2F2ZS10ZW1wcyAgLW8gcGxfY29uZmlnIHBsX2NvbmZpZy5jCj4gPj4+IFVzaW5nIGJ1aWx0 LWluIHNwZWNzLgo+ID4+PiBDT0xMRUNUX0dDQz1nY2MKPiA+Pj4gQ09MTEVDVF9MVE9fV1JBUFBF Uj0vdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2x0by13cmFwcGVyCj4g Pj4+IFRhcmdldDogaTY4Ni1yZWRoYXQtbGludXgKPiA+Pj4gQ29uZmlndXJlZCB3aXRoOiAuLi9j b25maWd1cmUgLS1lbmFibGUtYm9vdHN0cmFwIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyxvYmpj LG9iai1jKyssZm9ydHJhbixhZGEsZ28sbHRvIC0tcHJlZml4PS91c3IgLS1tYW5kaXI9L3Vzci9z aGFyZS9tYW4gLS1pbmZvZGlyPS91c3Ivc2hhcmUvaW5mbyAtLXdpdGgtYnVndXJsPWh0dHA6Ly9i dWd6aWxsYS5yZWRoYXQuY29tL2J1Z3ppbGxhIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJl YWRzPXBvc2l4IC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UgLS1lbmFibGUtbXVsdGlsaWIgLS13 aXRoLXN5c3RlbS16bGliIC0tZW5hYmxlLV9fY3hhX2F0ZXhpdCAtLWRpc2FibGUtbGlidW53aW5k LWV4Y2VwdGlvbnMgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QgLS1lbmFibGUtbGlua2VyLWJ1 aWxkLWlkIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUgLS1lbmFibGUtcGx1Z2luIC0tZW5h YmxlLWluaXRmaW5pLWFycmF5IC0tZGlzYWJsZS1saWJnY2ogLS13aXRoLWlzbCAtLWVuYWJsZS1s aWJtcHggLS1lbmFibGUtZ251LWluZGlyZWN0LWZ1bmN0aW9uIC0td2l0aC10dW5lPWdlbmVyaWMg LS13aXRoLWFyY2g9aTY4NiAtLWJ1aWxkPWk2ODYtcmVkaGF0LWxpbnV4Cj4gPj4+IFRocmVhZCBt b2RlbDogcG9zaXgKPiA+Pj4gZ2NjIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4x LjEtMykgKEdDQykgCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJv JyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAn cGxfY29uZmlnJwo+ID4+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEu MS9jYzEgLUUgLXF1aWV0IC12IHBsX2NvbmZpZy5jIC1tYXJjaD1wZW50aXVtcHJvIC1tMzIgLWZu by1zdHJpY3QtYWxpYXNpbmcgLWZwY2gtcHJlcHJvY2VzcyAtbyBwbF9jb25maWcuaQo+ID4+PiBp Z25vcmluZyBub25leGlzdGVudCBkaXJlY3RvcnkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1s aW51eC82LjEuMS9pbmNsdWRlLWZpeGVkIgo+ID4+PiBpZ25vcmluZyBub25leGlzdGVudCBkaXJl Y3RvcnkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi8uLi9p Njg2LXJlZGhhdC1saW51eC9pbmNsdWRlIgo+ID4+PiAjaW5jbHVkZSAiLi4uIiBzZWFyY2ggc3Rh cnRzIGhlcmU6Cj4gPj4+ICNpbmNsdWRlIDwuLi4+IHNlYXJjaCBzdGFydHMgaGVyZToKPiA+Pj4g IC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlCj4gPj4+ICAvdXNy L2xvY2FsL2luY2x1ZGUKPiA+Pj4gIC91c3IvaW5jbHVkZQo+ID4+PiBFbmQgb2Ygc2VhcmNoIGxp c3QuCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicg Jy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAncGxfY29uZmln Jwo+ID4+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jYzEgLWZw cmVwcm9jZXNzZWQgcGxfY29uZmlnLmkgLXF1aWV0IC1kdW1wYmFzZSBwbF9jb25maWcuYyAtbWFy Y2g9cGVudGl1bXBybyAtbTMyIC1hdXhiYXNlIHBsX2NvbmZpZyAtdmVyc2lvbiAtZm5vLXN0cmlj dC1hbGlhc2luZyAtbyBwbF9jb25maWcucwo+ID4+PiBHTlUgQzExIChHQ0MpIHZlcnNpb24gNi4x LjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKGk2ODYtcmVkaGF0LWxpbnV4KQo+ID4+PiAJ Y29tcGlsZWQgYnkgR05VIEMgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0z KSwgR01QIHZlcnNpb24gNi4xLjAsIE1QRlIgdmVyc2lvbiAzLjEuNCwgTVBDIHZlcnNpb24gMS4w LjIsIGlzbCB2ZXJzaW9uIDAuMTQgb3IgMC4xMwo+ID4+PiB3YXJuaW5nOiBHTVAgaGVhZGVyIHZl cnNpb24gNi4xLjAgZGlmZmVycyBmcm9tIGxpYnJhcnkgdmVyc2lvbiA2LjEuMS4KPiA+Pj4gR0dD IGhldXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1pbi1leHBhbmQ9MTAwIC0tcGFyYW0gZ2djLW1pbi1o ZWFwc2l6ZT0xMzEwNzIKPiA+Pj4gR05VIEMxMSAoR0NDKSB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIx IChSZWQgSGF0IDYuMS4xLTMpIChpNjg2LXJlZGhhdC1saW51eCkKPiA+Pj4gCWNvbXBpbGVkIGJ5 IEdOVSBDIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMyksIEdNUCB2ZXJz aW9uIDYuMS4wLCBNUEZSIHZlcnNpb24gMy4xLjQsIE1QQyB2ZXJzaW9uIDEuMC4yLCBpc2wgdmVy c2lvbiAwLjE0IG9yIDAuMTMKPiA+Pj4gd2FybmluZzogR01QIGhlYWRlciB2ZXJzaW9uIDYuMS4w IGRpZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24gNi4xLjEuCj4gPj4+IEdHQyBoZXVyaXN0aWNz OiAtLXBhcmFtIGdnYy1taW4tZXhwYW5kPTEwMCAtLXBhcmFtIGdnYy1taW4taGVhcHNpemU9MTMx MDcyCj4gPj4+IENvbXBpbGVyIGV4ZWN1dGFibGUgY2hlY2tzdW06IGFiY2ViMTM4YWY0M2E3OGMz NmMxYWFhMjI4ZjVmOTJhCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVt cHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1v JyAncGxfY29uZmlnJwo+ID4+PiAgYXMgLXYgLS0zMiAtbyBwbF9jb25maWcubyBwbF9jb25maWcu cwo+ID4+PiBHTlUgYXNzZW1ibGVyIHZlcnNpb24gMi4yNi4xIChpNjg2LXJlZGhhdC1saW51eCkg dXNpbmcgQkZEIHZlcnNpb24gdmVyc2lvbiAyLjI2LjEtMS5mYzI0Cj4gPj4+IENPTVBJTEVSX1BB VEg9L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVj L2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhh dC1saW51eC86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLzovdXNyL2xpYi9n Y2MvaTY4Ni1yZWRoYXQtbGludXgvCj4gPj4+IExJQlJBUllfUEFUSD0vdXNyL2xpYi9nY2MvaTY4 Ni1yZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEu MS8uLi8uLi8uLi86L2xpYi86L3Vzci9saWIvCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1t YXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2 ZS10ZW1wcycgJy1vJyAncGxfY29uZmlnJwo+ID4+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJl ZGhhdC1saW51eC82LjEuMS9jb2xsZWN0MiAtcGx1Z2luIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1y ZWRoYXQtbGludXgvNi4xLjEvbGlibHRvX3BsdWdpbi5zbyAtcGx1Z2luLW9wdD0vdXNyL2xpYmV4 ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2x0by13cmFwcGVyIC1wbHVnaW4tb3B0PS1m cmVzb2x1dGlvbj1wbF9jb25maWcucmVzIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2Mg LXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjY19zIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91 Z2g9LWxjIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBsdWdpbi1vcHQ9LXBhc3Mt dGhyb3VnaD0tbGdjY19zIC0tYnVpbGQtaWQgLS1uby1hZGQtbmVlZGVkIC0tZWgtZnJhbWUtaGRy IC0taGFzaC1zdHlsZT1nbnUgLW0gZWxmX2kzODYgLWR5bmFtaWMtbGlua2VyIC9saWIvbGQtbGlu dXguc28uMiAtbyBwbF9jb25maWcgL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x Ly4uLy4uLy4uL2NydDEubyAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4v Li4vLi4vY3J0aS5vIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jcnRiZWdp bi5vIC1ML3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xIC1ML3Vzci9saWIvZ2Nj L2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uIHBsX2NvbmZpZy5vIC1sZ2NjIC0tYXMt bmVlZGVkIC1sZ2NjX3MgLS1uby1hcy1uZWVkZWQgLWxjIC1sZ2NjIC0tYXMtbmVlZGVkIC1sZ2Nj X3MgLS1uby1hcy1uZWVkZWQgL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2Ny dGVuZC5vIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9jcnRu Lm8KPiA+Pj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAn LWZuby1zdHJpY3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdwbF9jb25maWcn Cj4gPj4+IC4vcGxfY29uZmlnCj4gPj4+Cj4gPj4+IAktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4gPj4+IAktLS0gR05VIFBST0xPRyBJTlNUQUxMQVRJT04gLS0tCj4gPj4+IAktLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Cj4gPj4+IEdOVSBQcm9sb2cgdmVyc2lv bjogMS40LjQgKEF1ZyAxOCAyMDE2KQo+ID4+PiBPcGVyYXRpbmcgc3lzdGVtICA6IGxpbnV4LWdu dQo+ID4+PiBQcm9jZXNzb3IgICAgICAgICA6IGk2ODYKPiA+Pj4gU2l6ZSBvZiBhIFdBTSB3b3Jk OiAzMiBiaXRzCj4gPj4+IEMgY29tcGlsZXIgICAgICAgIDogZ2NjCj4gPj4+IEMgZmxhZ3MgICAg ICAgICAgIDogLXYgLXNhdmUtdGVtcHMKPiA+Pj4gQyBmbGFncyBtYWNoaW5lICAgOiAtbWFyY2g9 cGVudGl1bXBybyAtbTMyIC1mbm8tc3RyaWN0LWFsaWFzaW5nCj4gPj4+IEFzc2VtYmxlciAgICAg ICAgIDogYXMKPiA+Pj4gQXNzZW1ibGVyIGZsYWdzICAgOiAtLTMyCj4gPj4+IExvYWRlciBmbGFn cyAgICAgIDogCj4gPj4+IExvYWRlciBsaWJyYXJpZXMgIDogLWxtCj4gPj4+IFVzZSBsaW5lIGVk aXRvciAgIDogWWVzCj4gPj4+IFVzZSBwaXBlZCBjb25zdWx0IDogWWVzCj4gPj4+IFVzZSBzb2Nr ZXRzICAgICAgIDogWWVzCj4gPj4+IFVzZSBGRCBzb2x2ZXIgICAgIDogWWVzCj4gPj4+IFVzZSBm YXN0IGNhbGwgICAgIDogWWVzCj4gPj4+IFVzZSBtYWNoaW5lIHJlZ3MuIDogWWVzCj4gPj4+IFVz ZWQgcmVnaXN0ZXIocykgIDogZWJ4IChUUikgIAo+ID4+Pgo+ID4+PiAJLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gPj4+Cj4gPj4+IChjZCAuLi9Ub3BDb21wOyBtYWtlIGdwbGMpCj4g Pj4+IG1ha2VbMl06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VS Q0VTL2dwcm9sb2ctMS40LjQvc3JjL1RvcENvbXAnCj4gPj4+IGdjYyAtbWFyY2g9cGVudGl1bXBy byAtbTMyIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC12IC1zYXZlLXRlbXBzIC1vIGdwbGMgdG9wX2Nv bXAuYyAtbG0KPiA+Pj4gVXNpbmcgYnVpbHQtaW4gc3BlY3MuCj4gPj4+IENPTExFQ1RfR0NDPWdj Ywo+ID4+PiBDT0xMRUNUX0xUT19XUkFQUEVSPS91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQt bGludXgvNi4xLjEvbHRvLXdyYXBwZXIKPiA+Pj4gVGFyZ2V0OiBpNjg2LXJlZGhhdC1saW51eAo+ ID4+PiBDb25maWd1cmVkIHdpdGg6IC4uL2NvbmZpZ3VyZSAtLWVuYWJsZS1ib290c3RyYXAgLS1l bmFibGUtbGFuZ3VhZ2VzPWMsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGFkYSxnbyxsdG8gLS1w cmVmaXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9kaXI9L3Vzci9zaGFyZS9p bmZvIC0td2l0aC1idWd1cmw9aHR0cDovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEgLS1l bmFibGUtc2hhcmVkIC0tZW5hYmxlLXRocmVhZHM9cG9zaXggLS1lbmFibGUtY2hlY2tpbmc9cmVs ZWFzZSAtLWVuYWJsZS1tdWx0aWxpYiAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtX19jeGFf YXRleGl0IC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1nbnUtdW5pcXVl LW9iamVjdCAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxl PWdudSAtLWVuYWJsZS1wbHVnaW4gLS1lbmFibGUtaW5pdGZpbmktYXJyYXkgLS1kaXNhYmxlLWxp YmdjaiAtLXdpdGgtaXNsIC0tZW5hYmxlLWxpYm1weCAtLWVuYWJsZS1nbnUtaW5kaXJlY3QtZnVu Y3Rpb24gLS13aXRoLXR1bmU9Z2VuZXJpYyAtLXdpdGgtYXJjaD1pNjg2IC0tYnVpbGQ9aTY4Ni1y ZWRoYXQtbGludXgKPiA+Pj4gVGhyZWFkIG1vZGVsOiBwb3NpeAo+ID4+PiBnY2MgdmVyc2lvbiA2 LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoR0NDKSAKPiA+Pj4gQ09MTEVDVF9HQ0Nf T1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcn ICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdncGxjJwo+ID4+PiAgL3Vzci9saWJleGVjL2djYy9p Njg2LXJlZGhhdC1saW51eC82LjEuMS9jYzEgLUUgLXF1aWV0IC12IHRvcF9jb21wLmMgLW1hcmNo PXBlbnRpdW1wcm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnBjaC1wcmVwcm9jZXNzIC1v IHRvcF9jb21wLmkKPiA+Pj4gaWdub3Jpbmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIvdXNyL2xp Yi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS1maXhlZCIKPiA+Pj4gaWdub3Jp bmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv Ni4xLjEvLi4vLi4vLi4vLi4vaTY4Ni1yZWRoYXQtbGludXgvaW5jbHVkZSIKPiA+Pj4gI2luY2x1 ZGUgIi4uLiIgc2VhcmNoIHN0YXJ0cyBoZXJlOgo+ID4+PiAjaW5jbHVkZSA8Li4uPiBzZWFyY2gg c3RhcnRzIGhlcmU6Cj4gPj4+ICAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEv aW5jbHVkZQo+ID4+PiAgL3Vzci9sb2NhbC9pbmNsdWRlCj4gPj4+ICAvdXNyL2luY2x1ZGUKPiA+ Pj4gRW5kIG9mIHNlYXJjaCBsaXN0Lgo+ID4+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9 cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVt cHMnICctbycgJ2dwbGMnCj4gPj4+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4 LzYuMS4xL2NjMSAtZnByZXByb2Nlc3NlZCB0b3BfY29tcC5pIC1xdWlldCAtZHVtcGJhc2UgdG9w X2NvbXAuYyAtbWFyY2g9cGVudGl1bXBybyAtbTMyIC1hdXhiYXNlIHRvcF9jb21wIC12ZXJzaW9u IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1vIHRvcF9jb21wLnMKPiA+Pj4gR05VIEMxMSAoR0NDKSB2 ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpIChpNjg2LXJlZGhhdC1saW51 eCkKPiA+Pj4gCWNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBI YXQgNi4xLjEtMyksIEdNUCB2ZXJzaW9uIDYuMS4wLCBNUEZSIHZlcnNpb24gMy4xLjQsIE1QQyB2 ZXJzaW9uIDEuMC4yLCBpc2wgdmVyc2lvbiAwLjE0IG9yIDAuMTMKPiA+Pj4gd2FybmluZzogR01Q IGhlYWRlciB2ZXJzaW9uIDYuMS4wIGRpZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24gNi4xLjEu Cj4gPj4+IEdHQyBoZXVyaXN0aWNzOiAtLXBhcmFtIGdnYy1taW4tZXhwYW5kPTEwMCAtLXBhcmFt IGdnYy1taW4taGVhcHNpemU9MTMxMDcyCj4gPj4+IEdOVSBDMTEgKEdDQykgdmVyc2lvbiA2LjEu MSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoaTY4Ni1yZWRoYXQtbGludXgpCj4gPj4+IAlj b21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMp LCBHTVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lvbiAxLjAu MiwgaXNsIHZlcnNpb24gMC4xNCBvciAwLjEzCj4gPj4+IHdhcm5pbmc6IEdNUCBoZWFkZXIgdmVy c2lvbiA2LjEuMCBkaWZmZXJzIGZyb20gbGlicmFyeSB2ZXJzaW9uIDYuMS4xLgo+ID4+PiBHR0Mg aGV1cmlzdGljczogLS1wYXJhbSBnZ2MtbWluLWV4cGFuZD0xMDAgLS1wYXJhbSBnZ2MtbWluLWhl YXBzaXplPTEzMTA3Mgo+ID4+PiBDb21waWxlciBleGVjdXRhYmxlIGNoZWNrc3VtOiBhYmNlYjEz OGFmNDNhNzhjMzZjMWFhYTIyOGY1ZjkyYQo+ID4+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFy Y2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUt dGVtcHMnICctbycgJ2dwbGMnCj4gPj4+ICBhcyAtdiAtLTMyIC1vIHRvcF9jb21wLm8gdG9wX2Nv bXAucwo+ID4+PiBHTlUgYXNzZW1ibGVyIHZlcnNpb24gMi4yNi4xIChpNjg2LXJlZGhhdC1saW51 eCkgdXNpbmcgQkZEIHZlcnNpb24gdmVyc2lvbiAyLjI2LjEtMS5mYzI0Cj4gPj4+IENPTVBJTEVS X1BBVEg9L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJl eGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVjL2djYy9pNjg2LXJl ZGhhdC1saW51eC86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLzovdXNyL2xp Yi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvCj4gPj4+IExJQlJBUllfUEFUSD0vdXNyL2xpYi9nY2Mv aTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82 LjEuMS8uLi8uLi8uLi86L2xpYi86L3Vzci9saWIvCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9 Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICct c2F2ZS10ZW1wcycgJy1vJyAnZ3BsYycKPiA+Pj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRo YXQtbGludXgvNi4xLjEvY29sbGVjdDIgLXBsdWdpbiAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVk aGF0LWxpbnV4LzYuMS4xL2xpYmx0b19wbHVnaW4uc28gLXBsdWdpbi1vcHQ9L3Vzci9saWJleGVj L2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9sdG8td3JhcHBlciAtcGx1Z2luLW9wdD0tZnJl c29sdXRpb249dG9wX2NvbXAucmVzIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBs dWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjY19zIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9 LWxjIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBsdWdpbi1vcHQ9LXBhc3MtdGhy b3VnaD0tbGdjY19zIC0tYnVpbGQtaWQgLS1uby1hZGQtbmVlZGVkIC0tZWgtZnJhbWUtaGRyIC0t aGFzaC1zdHlsZT1nbnUgLW0gZWxmX2kzODYgLWR5bmFtaWMtbGlua2VyIC9saWIvbGQtbGludXgu c28uMiAtbyBncGxjIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8u Li9jcnQxLm8gL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2Ny dGkubyAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY3J0YmVnaW4ubyAtTC91 c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMSAtTC91c3IvbGliL2djYy9pNjg2LXJl ZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLiB0b3BfY29tcC5vIC1sbSAtbGdjYyAtLWFzLW5lZWRl ZCAtbGdjY19zIC0tbm8tYXMtbmVlZGVkIC1sYyAtbGdjYyAtLWFzLW5lZWRlZCAtbGdjY19zIC0t bm8tYXMtbmVlZGVkIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jcnRlbmQu byAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vY3J0bi5vCj4g Pj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8t c3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAnZ3BsYycKPiA+Pj4gbWFr ZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJv bG9nLTEuNC40L3NyYy9Ub3BDb21wJwo+ID4+PiBtYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAn L2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZVBsJwo+ ID4+PiAuIC4vU0VUVkFSUztmb3IgaSBpbiBFbmdpbmVQbCBUb3BDb21wIFdhbTJNYSBNYTJBc20g TGluZWRpdCBCaXBzUGwgUGwyV2FtIEZkMkMgRW5naW5lRkQgQmlwc0ZEO2RvIChjZCAkaTsgbWFr ZSkgfHwgZXhpdCAxOyBkb25lO1wKPiA+Pj4gKGNkIFRvcENvbXA7IG1ha2UgdG9wLWxldmVsKSB8 fCBleGl0IDE7XAo+ID4+PiAoY2QgUGwyV2FtOyBtYWtlIHN0YWdlMikKPiA+Pj4gbWFrZVsxXTog RW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0x LjQuNC9zcmMvRW5naW5lUGwnCj4gPj4+IGdjYyAtbWFyY2g9cGVudGl1bXBybyAtbTMyIC1mbm8t c3RyaWN0LWFsaWFzaW5nIC12IC1zYXZlLXRlbXBzICAtbyBjcHBfaGVhZGVycyBjcHBfaGVhZGVy cy5jCj4gPj4+IFVzaW5nIGJ1aWx0LWluIHNwZWNzLgo+ID4+PiBDT0xMRUNUX0dDQz1nY2MKPiA+ Pj4gQ09MTEVDVF9MVE9fV1JBUFBFUj0vdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4 LzYuMS4xL2x0by13cmFwcGVyCj4gPj4+IFRhcmdldDogaTY4Ni1yZWRoYXQtbGludXgKPiA+Pj4g Q29uZmlndXJlZCB3aXRoOiAuLi9jb25maWd1cmUgLS1lbmFibGUtYm9vdHN0cmFwIC0tZW5hYmxl LWxhbmd1YWdlcz1jLGMrKyxvYmpjLG9iai1jKyssZm9ydHJhbixhZGEsZ28sbHRvIC0tcHJlZml4 PS91c3IgLS1tYW5kaXI9L3Vzci9zaGFyZS9tYW4gLS1pbmZvZGlyPS91c3Ivc2hhcmUvaW5mbyAt LXdpdGgtYnVndXJsPWh0dHA6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1Z3ppbGxhIC0tZW5hYmxl LXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2Ug LS1lbmFibGUtbXVsdGlsaWIgLS13aXRoLXN5c3RlbS16bGliIC0tZW5hYmxlLV9fY3hhX2F0ZXhp dCAtLWRpc2FibGUtbGlidW53aW5kLWV4Y2VwdGlvbnMgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmpl Y3QgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUg LS1lbmFibGUtcGx1Z2luIC0tZW5hYmxlLWluaXRmaW5pLWFycmF5IC0tZGlzYWJsZS1saWJnY2og LS13aXRoLWlzbCAtLWVuYWJsZS1saWJtcHggLS1lbmFibGUtZ251LWluZGlyZWN0LWZ1bmN0aW9u IC0td2l0aC10dW5lPWdlbmVyaWMgLS13aXRoLWFyY2g9aTY4NiAtLWJ1aWxkPWk2ODYtcmVkaGF0 LWxpbnV4Cj4gPj4+IFRocmVhZCBtb2RlbDogcG9zaXgKPiA+Pj4gZ2NjIHZlcnNpb24gNi4xLjEg MjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKEdDQykgCj4gPj4+IENPTExFQ1RfR0NDX09QVElP TlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYn ICctc2F2ZS10ZW1wcycgJy1vJyAnY3BwX2hlYWRlcnMnCj4gPj4+ICAvdXNyL2xpYmV4ZWMvZ2Nj L2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NjMSAtRSAtcXVpZXQgLXYgY3BwX2hlYWRlcnMuYyAt bWFyY2g9cGVudGl1bXBybyAtbTMyIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mcGNoLXByZXByb2Nl c3MgLW8gY3BwX2hlYWRlcnMuaQo+ID4+PiBpZ25vcmluZyBub25leGlzdGVudCBkaXJlY3Rvcnkg Ii91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlLWZpeGVkIgo+ID4+ PiBpZ25vcmluZyBub25leGlzdGVudCBkaXJlY3RvcnkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhh dC1saW51eC82LjEuMS8uLi8uLi8uLi8uLi9pNjg2LXJlZGhhdC1saW51eC9pbmNsdWRlIgo+ID4+ PiAjaW5jbHVkZSAiLi4uIiBzZWFyY2ggc3RhcnRzIGhlcmU6Cj4gPj4+ICNpbmNsdWRlIDwuLi4+ IHNlYXJjaCBzdGFydHMgaGVyZToKPiA+Pj4gIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51 eC82LjEuMS9pbmNsdWRlCj4gPj4+ICAvdXNyL2xvY2FsL2luY2x1ZGUKPiA+Pj4gIC91c3IvaW5j bHVkZQo+ID4+PiBFbmQgb2Ygc2VhcmNoIGxpc3QuCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9 Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICct c2F2ZS10ZW1wcycgJy1vJyAnY3BwX2hlYWRlcnMnCj4gPj4+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2 ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NjMSAtZnByZXByb2Nlc3NlZCBjcHBfaGVhZGVycy5pIC1x dWlldCAtZHVtcGJhc2UgY3BwX2hlYWRlcnMuYyAtbWFyY2g9cGVudGl1bXBybyAtbTMyIC1hdXhi YXNlIGNwcF9oZWFkZXJzIC12ZXJzaW9uIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1vIGNwcF9oZWFk ZXJzLnMKPiA+Pj4gR05VIEMxMSAoR0NDKSB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0 IDYuMS4xLTMpIChpNjg2LXJlZGhhdC1saW51eCkKPiA+Pj4gCWNvbXBpbGVkIGJ5IEdOVSBDIHZl cnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMyksIEdNUCB2ZXJzaW9uIDYuMS4w LCBNUEZSIHZlcnNpb24gMy4xLjQsIE1QQyB2ZXJzaW9uIDEuMC4yLCBpc2wgdmVyc2lvbiAwLjE0 IG9yIDAuMTMKPiA+Pj4gd2FybmluZzogR01QIGhlYWRlciB2ZXJzaW9uIDYuMS4wIGRpZmZlcnMg ZnJvbSBsaWJyYXJ5IHZlcnNpb24gNi4xLjEuCj4gPj4+IEdHQyBoZXVyaXN0aWNzOiAtLXBhcmFt IGdnYy1taW4tZXhwYW5kPTEwMCAtLXBhcmFtIGdnYy1taW4taGVhcHNpemU9MTMxMDcyCj4gPj4+ IEdOVSBDMTEgKEdDQykgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAo aTY4Ni1yZWRoYXQtbGludXgpCj4gPj4+IAljb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4x IDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpLCBHTVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJz aW9uIDMuMS40LCBNUEMgdmVyc2lvbiAxLjAuMiwgaXNsIHZlcnNpb24gMC4xNCBvciAwLjEzCj4g Pj4+IHdhcm5pbmc6IEdNUCBoZWFkZXIgdmVyc2lvbiA2LjEuMCBkaWZmZXJzIGZyb20gbGlicmFy eSB2ZXJzaW9uIDYuMS4xLgo+ID4+PiBHR0MgaGV1cmlzdGljczogLS1wYXJhbSBnZ2MtbWluLWV4 cGFuZD0xMDAgLS1wYXJhbSBnZ2MtbWluLWhlYXBzaXplPTEzMTA3Mgo+ID4+PiBDb21waWxlciBl eGVjdXRhYmxlIGNoZWNrc3VtOiBhYmNlYjEzOGFmNDNhNzhjMzZjMWFhYTIyOGY1ZjkyYQo+ID4+ PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0 cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ2NwcF9oZWFkZXJzJwo+ID4+ PiAgYXMgLXYgLS0zMiAtbyBjcHBfaGVhZGVycy5vIGNwcF9oZWFkZXJzLnMKPiA+Pj4gR05VIGFz c2VtYmxlciB2ZXJzaW9uIDIuMjYuMSAoaTY4Ni1yZWRoYXQtbGludXgpIHVzaW5nIEJGRCB2ZXJz aW9uIHZlcnNpb24gMi4yNi4xLTEuZmMyNAo+ID4+PiBDT01QSUxFUl9QQVRIPS91c3IvbGliZXhl Yy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRo YXQtbGludXgvNi4xLjEvOi91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvOi91c3Iv bGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0 LWxpbnV4Lwo+ID4+PiBMSUJSQVJZX1BBVEg9L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4 LzYuMS4xLzovdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vOi9s aWIvOi91c3IvbGliLwo+ID4+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBy bycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycg J2NwcF9oZWFkZXJzJwo+ID4+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82 LjEuMS9jb2xsZWN0MiAtcGx1Z2luIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgv Ni4xLjEvbGlibHRvX3BsdWdpbi5zbyAtcGx1Z2luLW9wdD0vdXNyL2xpYmV4ZWMvZ2NjL2k2ODYt cmVkaGF0LWxpbnV4LzYuMS4xL2x0by13cmFwcGVyIC1wbHVnaW4tb3B0PS1mcmVzb2x1dGlvbj1j cHBfaGVhZGVycy5yZXMgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjYyAtcGx1Z2luLW9w dD0tcGFzcy10aHJvdWdoPS1sZ2NjX3MgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGMgLXBs dWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjYyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1s Z2NjX3MgLS1idWlsZC1pZCAtLW5vLWFkZC1uZWVkZWQgLS1laC1mcmFtZS1oZHIgLS1oYXNoLXN0 eWxlPWdudSAtbSBlbGZfaTM4NiAtZHluYW1pYy1saW5rZXIgL2xpYi9sZC1saW51eC5zby4yIC1v IGNwcF9oZWFkZXJzIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8u Li9jcnQxLm8gL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2Ny dGkubyAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY3J0YmVnaW4ubyAtTC91 c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMSAtTC91c3IvbGliL2djYy9pNjg2LXJl ZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLiBjcHBfaGVhZGVycy5vIC1sZ2NjIC0tYXMtbmVlZGVk IC1sZ2NjX3MgLS1uby1hcy1uZWVkZWQgLWxjIC1sZ2NjIC0tYXMtbmVlZGVkIC1sZ2NjX3MgLS1u by1hcy1uZWVkZWQgL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NydGVuZC5v IC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9jcnRuLm8KPiA+ Pj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1z dHJpY3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdjcHBfaGVhZGVycycKPiA+ Pj4gZ3BsYyAtYyAtQyAnLXYgLXNhdmUtdGVtcHMnIG1hY2hpbmUuYwo+ID4+PiBVc2luZyBidWls dC1pbiBzcGVjcy4KPiA+Pj4gQ09MTEVDVF9HQ0M9Z2NjCj4gPj4+IFRhcmdldDogaTY4Ni1yZWRo YXQtbGludXgKPiA+Pj4gQ29uZmlndXJlZCB3aXRoOiAuLi9jb25maWd1cmUgLS1lbmFibGUtYm9v dHN0cmFwIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyxvYmpjLG9iai1jKyssZm9ydHJhbixhZGEs Z28sbHRvIC0tcHJlZml4PS91c3IgLS1tYW5kaXI9L3Vzci9zaGFyZS9tYW4gLS1pbmZvZGlyPS91 c3Ivc2hhcmUvaW5mbyAtLXdpdGgtYnVndXJsPWh0dHA6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1 Z3ppbGxhIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWNo ZWNraW5nPXJlbGVhc2UgLS1lbmFibGUtbXVsdGlsaWIgLS13aXRoLXN5c3RlbS16bGliIC0tZW5h YmxlLV9fY3hhX2F0ZXhpdCAtLWRpc2FibGUtbGlidW53aW5kLWV4Y2VwdGlvbnMgLS1lbmFibGUt Z251LXVuaXF1ZS1vYmplY3QgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIC0td2l0aC1saW5rZXIt aGFzaC1zdHlsZT1nbnUgLS1lbmFibGUtcGx1Z2luIC0tZW5hYmxlLWluaXRmaW5pLWFycmF5IC0t ZGlzYWJsZS1saWJnY2ogLS13aXRoLWlzbCAtLWVuYWJsZS1saWJtcHggLS1lbmFibGUtZ251LWlu ZGlyZWN0LWZ1bmN0aW9uIC0td2l0aC10dW5lPWdlbmVyaWMgLS13aXRoLWFyY2g9aTY4NiAtLWJ1 aWxkPWk2ODYtcmVkaGF0LWxpbnV4Cj4gPj4+IFRocmVhZCBtb2RlbDogcG9zaXgKPiA+Pj4gZ2Nj IHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKEdDQykgCj4gPj4+IENP TExFQ1RfR0NDX09QVElPTlM9Jy12JyAnLXNhdmUtdGVtcHMnICctbWFyY2g9cGVudGl1bXBybycg Jy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy1mZml4ZWQtZWJ4JyAnLWMnICctSScgJy9o b21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbCcgJy1J JyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNQbCcg Jy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2lu ZUZEJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMv Qmlwc0ZEJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9z cmMvTGluZWRpdCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40 LjQvc3JjL1czMkdVSUNvbnMnICctbycgJ21hY2hpbmUubycKPiA+Pj4gIC91c3IvbGliZXhlYy9n Y2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY2MxIC1FIC1xdWlldCAtdiAtSSAvaG9tZS90aWxs L3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvRW5naW5lUGwgLUkgL2hvbWUvdGls bC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNQbCAtSSAvaG9tZS90aWxs L3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvRW5naW5lRkQgLUkgL2hvbWUvdGls bC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNGRCAtSSAvaG9tZS90aWxs L3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvTGluZWRpdCAtSSAvaG9tZS90aWxs L3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvVzMyR1VJQ29ucyBtYWNoaW5lLmMg LW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZmZpeGVkLWVieCAt ZnBjaC1wcmVwcm9jZXNzIC1vIG1hY2hpbmUuaQo+ID4+PiBpZ25vcmluZyBub25leGlzdGVudCBk aXJlY3RvcnkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlLWZp eGVkIgo+ID4+PiBpZ25vcmluZyBub25leGlzdGVudCBkaXJlY3RvcnkgIi91c3IvbGliL2djYy9p Njg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi8uLi9pNjg2LXJlZGhhdC1saW51eC9pbmNs dWRlIgo+ID4+PiAjaW5jbHVkZSAiLi4uIiBzZWFyY2ggc3RhcnRzIGhlcmU6Cj4gPj4+ICNpbmNs dWRlIDwuLi4+IHNlYXJjaCBzdGFydHMgaGVyZToKPiA+Pj4gIC9ob21lL3RpbGwvcnBtYnVpbGQv U09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbAo+ID4+PiAgL2hvbWUvdGlsbC9ycG1i dWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNQbAo+ID4+PiAgL2hvbWUvdGlsbC9y cG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZUZECj4gPj4+ICAvaG9tZS90 aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvQmlwc0ZECj4gPj4+ICAvaG9t ZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvTGluZWRpdAo+ID4+PiAg L2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL1czMkdVSUNvbnMK PiA+Pj4gIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlCj4gPj4+ ICAvdXNyL2xvY2FsL2luY2x1ZGUKPiA+Pj4gIC91c3IvaW5jbHVkZQo+ID4+PiBFbmQgb2Ygc2Vh cmNoIGxpc3QuCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy12JyAnLXNhdmUtdGVtcHMnICct bWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy1mZml4ZWQt ZWJ4JyAnLWMnICctSScgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40 L3NyYy9FbmdpbmVQbCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ct MS40LjQvc3JjL0JpcHNQbCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9s b2ctMS40LjQvc3JjL0VuZ2luZUZEJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMv Z3Byb2xvZy0xLjQuNC9zcmMvQmlwc0ZEJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJD RVMvZ3Byb2xvZy0xLjQuNC9zcmMvTGluZWRpdCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9T T1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL1czMkdVSUNvbnMnICctbycgJ21hY2hpbmUubycKPiA+ Pj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY2MxIC1mcHJlcHJv Y2Vzc2VkIG1hY2hpbmUuaSAtcXVpZXQgLWR1bXBiYXNlIG1hY2hpbmUuYyAtbWFyY2g9cGVudGl1 bXBybyAtbTMyIC1hdXhiYXNlLXN0cmlwIG1hY2hpbmUubyAtdmVyc2lvbiAtZm5vLXN0cmljdC1h bGlhc2luZyAtZmZpeGVkLWVieCAtbyBtYWNoaW5lLnMKPiA+Pj4gR05VIEMxMSAoR0NDKSB2ZXJz aW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpIChpNjg2LXJlZGhhdC1saW51eCkK PiA+Pj4gCWNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQg Ni4xLjEtMyksIEdNUCB2ZXJzaW9uIDYuMS4wLCBNUEZSIHZlcnNpb24gMy4xLjQsIE1QQyB2ZXJz aW9uIDEuMC4yLCBpc2wgdmVyc2lvbiAwLjE0IG9yIDAuMTMKPiA+Pj4gd2FybmluZzogR01QIGhl YWRlciB2ZXJzaW9uIDYuMS4wIGRpZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24gNi4xLjEuCj4g Pj4+IEdHQyBoZXVyaXN0aWNzOiAtLXBhcmFtIGdnYy1taW4tZXhwYW5kPTEwMCAtLXBhcmFtIGdn Yy1taW4taGVhcHNpemU9MTMxMDcyCj4gPj4+IEdOVSBDMTEgKEdDQykgdmVyc2lvbiA2LjEuMSAy MDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoaTY4Ni1yZWRoYXQtbGludXgpCj4gPj4+IAljb21w aWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpLCBH TVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lvbiAxLjAuMiwg aXNsIHZlcnNpb24gMC4xNCBvciAwLjEzCj4gPj4+IHdhcm5pbmc6IEdNUCBoZWFkZXIgdmVyc2lv biA2LjEuMCBkaWZmZXJzIGZyb20gbGlicmFyeSB2ZXJzaW9uIDYuMS4xLgo+ID4+PiBHR0MgaGV1 cmlzdGljczogLS1wYXJhbSBnZ2MtbWluLWV4cGFuZD0xMDAgLS1wYXJhbSBnZ2MtbWluLWhlYXBz aXplPTEzMTA3Mgo+ID4+PiBDb21waWxlciBleGVjdXRhYmxlIGNoZWNrc3VtOiBhYmNlYjEzOGFm NDNhNzhjMzZjMWFhYTIyOGY1ZjkyYQo+ID4+PiBtYWNoaW5lLmM6IEluIGZ1bmN0aW9uIOKAmFBs X01fUmFuZG9taXpl4oCZOgo+ID4+PiBtYWNoaW5lLmM6Mzg2OjE6IGludGVybmFsIGNvbXBpbGVy IGVycm9yOiBTZWdtZW50YXRpb24gZmF1bHQKPiA+Pj4gIH0KPiA+Pj4gIF4KPiA+Pj4gUGxlYXNl IHN1Ym1pdCBhIGZ1bGwgYnVnIHJlcG9ydCwKPiA+Pj4gd2l0aCBwcmVwcm9jZXNzZWQgc291cmNl IGlmIGFwcHJvcHJpYXRlLgo+ID4+PiBTZWUgPGh0dHA6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1 Z3ppbGxhPiBmb3IgaW5zdHJ1Y3Rpb25zLgo+ID4+PiBQcmVwcm9jZXNzZWQgc291cmNlIHN0b3Jl ZCBpbnRvIC90bXAvY2NjWENBV00ub3V0IGZpbGUsIHBsZWFzZSBhdHRhY2ggdGhpcyB0byB5b3Vy IGJ1Z3JlcG9ydC4KPiA+Pj4gY29tcGlsYXRpb24gZmFpbGVkCj4gPj4+IE1ha2VmaWxlOjMwOiBy ZWNpcGUgZm9yIHRhcmdldCAnbWFjaGluZS5vJyBmYWlsZWQKPiA+Pj4gbWFrZVsxXTogKioqIFtt YWNoaW5lLm9dIEVycm9yIDEKPiA+Pj4gbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21l L3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbCcKPiA+Pj4g TWFrZWZpbGU6NDU6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAo+ID4+PiBtYWtlOiAq KiogW2FsbF0gRXJyb3IgMQo+ID4+Cj4gPj4+ICMgMSAibWFjaGluZS5jIgo+ID4+PiAjIDEgIjxi dWlsdC1pbj4iCj4gPj4+ICMgMSAiPGNvbW1hbmQtbGluZT4iCj4gPj4+ICMgMzEgIjxjb21tYW5k LWxpbmU+Igo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9zdGRjLXByZWRlZi5oIiAxIDMgNAo+ID4+ PiAjIDMyICI8Y29tbWFuZC1saW5lPiIgMgo+ID4+PiAjIDEgIm1hY2hpbmUuYyIKPiA+Pj4gIyAz OSAibWFjaGluZS5jIgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAxIDMgNAo+ID4+ PiAjIDI3ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L2ZlYXR1cmVzLmgiIDEgMyA0Cj4gPj4+ICMgMzY4ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIg MyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy9jZGVmcy5oIiAxIDMgNAo+ID4+PiAjIDQx MCAiL3Vzci9pbmNsdWRlL3N5cy9jZGVmcy5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUv Yml0cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ID4+PiAjIDQxMSAiL3Vzci9pbmNsdWRlL3N5cy9jZGVm cy5oIiAyIDMgNAo+ID4+PiAjIDM2OSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDIgMyA0Cj4g Pj4+ICMgMzkyICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9p bmNsdWRlL2dudS9zdHVicy5oIiAxIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9nbnUvc3R1YnMtMzIuaCIgMSAzIDQKPiA+Pj4g IyA4ICIvdXNyL2luY2x1ZGUvZ251L3N0dWJzLmgiIDIgMyA0Cj4gPj4+ICMgMzkzICIvdXNyL2lu Y2x1ZGUvZmVhdHVyZXMuaCIgMiAzIDQKPiA+Pj4gIyAyOCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgi IDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9saWIv Z2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ ICMgMjE2ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRk ZWYuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjE2ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGlu dXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgaW50 IHNpemVfdDsKPiA+Pj4gIyAzNCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0Cj4gPj4+Cj4g Pj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMSAzIDQKPiA+Pj4gIyAyNyAiL3Vz ci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMv d29yZHNpemUuaCIgMSAzIDQKPiA+Pj4gIyAyOCAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIg MiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdV9jaGFyOwo+ ID4+PiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBfX3Vfc2hvcnQ7Cj4gPj4+IHR5cGVkZWYg dW5zaWduZWQgaW50IF9fdV9pbnQ7Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgX191 X2xvbmc7Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc2lnbmVkIGNoYXIgX19pbnQ4X3Q7Cj4g Pj4+IHR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3VpbnQ4X3Q7Cj4gPj4+IHR5cGVkZWYgc2lnbmVk IHNob3J0IGludCBfX2ludDE2X3Q7Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IF9f dWludDE2X3Q7Cj4gPj4+IHR5cGVkZWYgc2lnbmVkIGludCBfX2ludDMyX3Q7Cj4gPj4+IHR5cGVk ZWYgdW5zaWduZWQgaW50IF9fdWludDMyX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIGludCBfX2ludDY0X3Q7Cj4g Pj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fdWludDY0 X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9fZXh0 ZW5zaW9uX18gdHlwZWRlZiBsb25nIGxvbmcgaW50IF9fcXVhZF90Owo+ID4+PiBfX2V4dGVuc2lv bl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3VfcXVhZF90Owo+ID4+PiAjIDEy MSAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L2JpdHMvdHlwZXNpemVzLmgiIDEgMyA0Cj4gPj4+ICMgMTIyICIvdXNyL2luY2x1ZGUvYml0cy90 eXBlcy5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX191 X3F1YWRfdCBfX2Rldl90Owo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgaW50 IF9fdWlkX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19naWRf dDsKPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9faW5vX3Q7 Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3VfcXVhZF90IF9faW5vNjRfdDsKPiA+Pj4g X19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX21vZGVfdDsKPiA+Pj4gX19leHRl bnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX25saW5rX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9u X18gdHlwZWRlZiBsb25nIGludCBfX29mZl90Owo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYg X19xdWFkX3QgX19vZmY2NF90Owo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fcGlk X3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzdHJ1Y3QgeyBpbnQgX192YWxbMl07IH0g X19mc2lkX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX2Nsb2NrX3Q7 Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3JsaW1fdDsK PiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIF9fdV9xdWFkX3QgX19ybGltNjRfdDsKPiA+Pj4g X19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX2lkX3Q7Cj4gPj4+IF9fZXh0ZW5z aW9uX18gdHlwZWRlZiBsb25nIGludCBfX3RpbWVfdDsKPiA+Pj4gX19leHRlbnNpb25fXyB0eXBl ZGVmIHVuc2lnbmVkIGludCBfX3VzZWNvbmRzX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRl ZiBsb25nIGludCBfX3N1c2Vjb25kc190Owo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVk ZWYgaW50IF9fZGFkZHJfdDsKPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGludCBfX2tleV90 Owo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fY2xvY2tpZF90 Owo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdm9pZCAqIF9fdGltZXJf dDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgaW50IF9fYmxr c2l6ZV90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVk ZWYgbG9uZyBpbnQgX19ibGtjbnRfdDsKPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIF9fcXVh ZF90IF9fYmxrY250NjRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVm IHVuc2lnbmVkIGxvbmcgaW50IF9fZnNibGtjbnRfdDsKPiA+Pj4gX19leHRlbnNpb25fXyB0eXBl ZGVmIF9fdV9xdWFkX3QgX19mc2Jsa2NudDY0X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5z aW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX2ZzZmlsY250X3Q7Cj4gPj4+IF9fZXh0 ZW5zaW9uX18gdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNmaWxjbnQ2NF90Owo+ID4+Pgo+ID4+Pgo+ ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fZnN3b3JkX3Q7Cj4gPj4+Cj4gPj4+IF9f ZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19zc2l6ZV90Owo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4 dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBpbnQgX19zeXNjYWxsX3Nsb25nX3Q7Cj4gPj4+Cj4gPj4+ IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3N5c2NhbGxfdWxvbmdf dDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX29mZjY0X3QgX19sb2ZmX3Q7Cj4g Pj4+IHR5cGVkZWYgX19xdWFkX3QgKl9fcWFkZHJfdDsKPiA+Pj4gdHlwZWRlZiBjaGFyICpfX2Nh ZGRyX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19pbnRw dHJfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGlu dCBfX3NvY2tsZW5fdDsKPiA+Pj4gIyAzNiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0Cj4g Pj4+ICMgNDQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiA+Pj4gc3RydWN0IF9JT19GSUxF Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBGSUxFOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDY0ICIvdXNyL2luY2x1ZGUvc3Rk aW8uaCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0IF9JT19GSUxFIF9fRklMRTsKPiA+Pj4gIyA3 NCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9saWJp by5oIiAxIDMgNAo+ID4+PiAjIDMxICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+ICMg MSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAxIDMgNAo+ID4+PiAjIDE1ICIvdXNyL2luY2x1 ZGUvX0dfY29uZmlnLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1s aW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAo+ID4+PiAjIDE2ICIvdXNyL2luY2x1 ZGUvX0dfY29uZmlnLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAi L3Vzci9pbmNsdWRlL3djaGFyLmgiIDEgMyA0Cj4gPj4+ICMgODIgIi91c3IvaW5jbHVkZS93Y2hh ci5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QKPiA+Pj4gewo+ID4+PiAgIGludCBfX2NvdW50 Owo+ID4+PiAgIHVuaW9uCj4gPj4+ICAgewo+ID4+Pgo+ID4+PiAgICAgdW5zaWduZWQgaW50IF9f d2NoOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgY2hhciBfX3djaGJbNF07Cj4gPj4+ICAg fSBfX3ZhbHVlOwo+ID4+PiB9IF9fbWJzdGF0ZV90Owo+ID4+PiAjIDIxICIvdXNyL2luY2x1ZGUv X0dfY29uZmlnLmgiIDIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+IHsKPiA+Pj4gICBf X29mZl90IF9fcG9zOwo+ID4+PiAgIF9fbWJzdGF0ZV90IF9fc3RhdGU7Cj4gPj4+IH0gX0dfZnBv c190Owo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4gPj4+ICAgX19vZmY2NF90IF9fcG9z Owo+ID4+PiAgIF9fbWJzdGF0ZV90IF9fc3RhdGU7Cj4gPj4+IH0gX0dfZnBvczY0X3Q7Cj4gPj4+ ICMgMzIgIi91c3IvaW5jbHVkZS9saWJpby5oIiAyIDMgNAo+ID4+PiAjIDQ5ICIvdXNyL2luY2x1 ZGUvbGliaW8uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4 LzYuMS4xL2luY2x1ZGUvc3RkYXJnLmgiIDEgMyA0Cj4gPj4+ICMgNDAgIi91c3IvbGliL2djYy9p Njg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGFyZy5oIiAzIDQKPiA+Pj4gdHlwZWRl ZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKPiA+Pj4gIyA1MCAiL3Vzci9pbmNs dWRlL2xpYmlvLmgiIDIgMyA0Cj4gPj4+ICMgMTQ0ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0 Cj4gPj4+IHN0cnVjdCBfSU9fanVtcF90OyBzdHJ1Y3QgX0lPX0ZJTEU7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgdm9pZCBfSU9fbG9ja190Owo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3QgX0lPX21hcmtlciB7Cj4gPj4+ICAgc3Ry dWN0IF9JT19tYXJrZXIgKl9uZXh0Owo+ID4+PiAgIHN0cnVjdCBfSU9fRklMRSAqX3NidWY7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgaW50IF9wb3M7Cj4gPj4+ICMgMTczICIvdXNyL2luY2x1 ZGUvbGliaW8uaCIgMyA0Cj4gPj4+IH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0gX19jb2RlY3Z0 X3Jlc3VsdAo+ID4+PiB7Cj4gPj4+ICAgX19jb2RlY3Z0X29rLAo+ID4+PiAgIF9fY29kZWN2dF9w YXJ0aWFsLAo+ID4+PiAgIF9fY29kZWN2dF9lcnJvciwKPiA+Pj4gICBfX2NvZGVjdnRfbm9jb252 Cj4gPj4+IH07Cj4gPj4+ICMgMjQxICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+IHN0 cnVjdCBfSU9fRklMRSB7Cj4gPj4+ICAgaW50IF9mbGFnczsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gICBjaGFyKiBfSU9fcmVhZF9wdHI7Cj4gPj4+ICAgY2hhciogX0lPX3JlYWRfZW5k Owo+ID4+PiAgIGNoYXIqIF9JT19yZWFkX2Jhc2U7Cj4gPj4+ICAgY2hhciogX0lPX3dyaXRlX2Jh c2U7Cj4gPj4+ICAgY2hhciogX0lPX3dyaXRlX3B0cjsKPiA+Pj4gICBjaGFyKiBfSU9fd3JpdGVf ZW5kOwo+ID4+PiAgIGNoYXIqIF9JT19idWZfYmFzZTsKPiA+Pj4gICBjaGFyKiBfSU9fYnVmX2Vu ZDsKPiA+Pj4KPiA+Pj4gICBjaGFyICpfSU9fc2F2ZV9iYXNlOwo+ID4+PiAgIGNoYXIgKl9JT19i YWNrdXBfYmFzZTsKPiA+Pj4gICBjaGFyICpfSU9fc2F2ZV9lbmQ7Cj4gPj4+Cj4gPj4+ICAgc3Ry dWN0IF9JT19tYXJrZXIgKl9tYXJrZXJzOwo+ID4+Pgo+ID4+PiAgIHN0cnVjdCBfSU9fRklMRSAq X2NoYWluOwo+ID4+Pgo+ID4+PiAgIGludCBfZmlsZW5vOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiAgIGludCBfZmxhZ3MyOwo+ID4+Pgo+ID4+PiAgIF9fb2ZmX3QgX29sZF9vZmZzZXQ7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgX2N1cl9jb2x1bW47Cj4gPj4+ICAg c2lnbmVkIGNoYXIgX3Z0YWJsZV9vZmZzZXQ7Cj4gPj4+ICAgY2hhciBfc2hvcnRidWZbMV07Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgX0lPX2xvY2tfdCAqX2xvY2s7Cj4gPj4+ICMgMjg5ICIv dXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+ICAgX19vZmY2NF90IF9vZmZzZXQ7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgdm9pZCAqX19wYWQx Owo+ID4+PiAgIHZvaWQgKl9fcGFkMjsKPiA+Pj4gICB2b2lkICpfX3BhZDM7Cj4gPj4+ICAgdm9p ZCAqX19wYWQ0Owo+ID4+Pgo+ID4+PiAgIHNpemVfdCBfX3BhZDU7Cj4gPj4+ICAgaW50IF9tb2Rl Owo+ID4+Pgo+ID4+PiAgIGNoYXIgX3VudXNlZDJbMTUgKiBzaXplb2YgKGludCkgLSA0ICogc2l6 ZW9mICh2b2lkICopIC0gc2l6ZW9mIChzaXplX3QpXTsKPiA+Pj4KPiA+Pj4gfTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUgX0lPX0ZJTEU7Cj4gPj4+Cj4gPj4+Cj4g Pj4+IHN0cnVjdCBfSU9fRklMRV9wbHVzOwo+ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0IF9JT19G SUxFX3BsdXMgX0lPXzJfMV9zdGRpbl87Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1 cyBfSU9fMl8xX3N0ZG91dF87Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9f Ml8xX3N0ZGVycl87Cj4gPj4+ICMgMzMzICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+ IHR5cGVkZWYgX19zc2l6ZV90IF9faW9fcmVhZF9mbiAodm9pZCAqX19jb29raWUsIGNoYXIgKl9f YnVmLCBzaXplX3QgX19uYnl0ZXMpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIF9fc3NpemVfdCBfX2lvX3dyaXRlX2ZuICh2b2lkICpfX2Nv b2tpZSwgY29uc3QgY2hhciAqX19idWYsCj4gPj4+ICAgICAgc2l6ZV90IF9fbik7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgaW50IF9faW9f c2Vla19mbiAodm9pZCAqX19jb29raWUsIF9fb2ZmNjRfdCAqX19wb3MsIGludCBfX3cpOwo+ID4+ Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIGludCBfX2lvX2Nsb3NlX2ZuICh2b2lkICpfX2Nvb2tpZSk7 Cj4gPj4+ICMgMzg1ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQg X191bmRlcmZsb3cgKF9JT19GSUxFICopOwo+ID4+PiBleHRlcm4gaW50IF9fdWZsb3cgKF9JT19G SUxFICopOwo+ID4+PiBleHRlcm4gaW50IF9fb3ZlcmZsb3cgKF9JT19GSUxFICosIGludCk7Cj4g Pj4+ICMgNDI5ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgX0lP X2dldGMgKF9JT19GSUxFICpfX2ZwKTsKPiA+Pj4gZXh0ZXJuIGludCBfSU9fcHV0YyAoaW50IF9f YywgX0lPX0ZJTEUgKl9fZnApOwo+ID4+PiBleHRlcm4gaW50IF9JT19mZW9mIChfSU9fRklMRSAq X19mcCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0 ZXJuIGludCBfSU9fZmVycm9yIChfSU9fRklMRSAqX19mcCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBfSU9fcGVla2NfbG9j a2VkIChfSU9fRklMRSAqX19mcCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiB2b2lkIF9JT19mbG9ja2ZpbGUgKF9JT19GSUxFICopIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiB2b2lkIF9JT19mdW5sb2NrZmls ZSAoX0lPX0ZJTEUgKikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK PiA+Pj4gZXh0ZXJuIGludCBfSU9fZnRyeWxvY2tmaWxlIChfSU9fRklMRSAqKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDQ1OSAiL3Vzci9pbmNsdWRl L2xpYmlvLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IF9JT192ZnNjYW5mIChfSU9fRklMRSAqIF9f cmVzdHJpY3QsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0LAo+ID4+PiAgICBfX2dudWNfdmFfbGlz dCwgaW50ICpfX3Jlc3RyaWN0KTsKPiA+Pj4gZXh0ZXJuIGludCBfSU9fdmZwcmludGYgKF9JT19G SUxFICpfX3Jlc3RyaWN0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0LAo+ID4+PiAgICAgX19nbnVj X3ZhX2xpc3QpOwo+ID4+PiBleHRlcm4gX19zc2l6ZV90IF9JT19wYWRuIChfSU9fRklMRSAqLCBp bnQsIF9fc3NpemVfdCk7Cj4gPj4+IGV4dGVybiBzaXplX3QgX0lPX3NnZXRuIChfSU9fRklMRSAq LCB2b2lkICosIHNpemVfdCk7Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX29mZjY0X3QgX0lPX3NlZWtv ZmYgKF9JT19GSUxFICosIF9fb2ZmNjRfdCwgaW50LCBpbnQpOwo+ID4+PiBleHRlcm4gX19vZmY2 NF90IF9JT19zZWVrcG9zIChfSU9fRklMRSAqLCBfX29mZjY0X3QsIGludCk7Cj4gPj4+Cj4gPj4+ IGV4dGVybiB2b2lkIF9JT19mcmVlX2JhY2t1cF9hcmVhIChfSU9fRklMRSAqKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDc1ICIvdXNyL2luY2x1ZGUv c3RkaW8uaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2du dWNfdmFfbGlzdCB2YV9saXN0Owo+ID4+PiAjIDkwICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0 Cj4gPj4+IHR5cGVkZWYgX19vZmZfdCBvZmZfdDsKPiA+Pj4gIyAxMDIgIi91c3IvaW5jbHVkZS9z dGRpby5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBfX3NzaXplX3Qgc3NpemVfdDsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfR19mcG9zX3QgZnBv c190Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDE2NCAiL3Vzci9pbmNsdWRlL3N0 ZGlvLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3N0ZGlvX2xpbS5oIiAxIDMg NAo+ID4+PiAjIDE2NSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEUgKnN0ZGluOwo+ID4+PiBleHRlcm4gc3Ry dWN0IF9JT19GSUxFICpzdGRvdXQ7Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEUgKnN0ZGVy cjsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGludCByZW1vdmUgKGNvbnN0IGNoYXIgKl9fZmlsZW5hbWUpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgcmVuYW1lIChjb25z dCBjaGFyICpfX29sZCwgY29uc3QgY2hhciAqX19uZXcpIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBp bnQgcmVuYW1lYXQgKGludCBfX29sZGZkLCBjb25zdCBjaGFyICpfX29sZCwgaW50IF9fbmV3ZmQs Cj4gPj4+ICAgICAgICBjb25zdCBjaGFyICpfX25ldykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIEZJTEUgKnRtcGZpbGUgKHZvaWQpIDsKPiA+Pj4gIyAyMDkg Ii91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKnRtcG5hbSAoY2hh ciAqX19zKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKnRtcG5hbV9yIChjaGFy ICpfX3MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+PiAj IDIyNyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiBleHRlcm4gY2hhciAqdGVtcG5h bSAoY29uc3QgY2hhciAqX19kaXIsIGNvbnN0IGNoYXIgKl9fcGZ4KQo+ID4+PiAgICAgIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFs bG9jX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBpbnQgZmNsb3NlIChGSUxFICpfX3N0cmVhbSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZmZsdXNoIChGSUxFICpfX3N0cmVhbSk7Cj4gPj4+ Cj4gPj4+ICMgMjUyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQg ZmZsdXNoX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSk7Cj4gPj4+ICMgMjY2ICIvdXNyL2luY2x1 ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBGSUxFICpmb3BlbiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGVuYW1lLAo+ ID4+PiAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9kZXMpIDsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIEZJTEUgKmZyZW9wZW4gKGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QgX19maWxlbmFtZSwKPiA+Pj4gICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f bW9kZXMsCj4gPj4+ICAgICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgOwo+ID4+PiAj IDI5NSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDMwNiAiL3Vzci9p bmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiBleHRlcm4gRklMRSAqZmRvcGVuIChpbnQgX19mZCwg Y29uc3QgY2hhciAqX19tb2RlcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSA7Cj4gPj4+ICMgMzE5ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+IGV4dGVy biBGSUxFICpmbWVtb3BlbiAodm9pZCAqX19zLCBzaXplX3QgX19sZW4sIGNvbnN0IGNoYXIgKl9f bW9kZXMpCj4gPj4+ICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBGSUxFICpvcGVuX21lbXN0cmVh bSAoY2hhciAqKl9fYnVmbG9jLCBzaXplX3QgKl9fc2l6ZWxvYykgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiB2b2lkIHNldGJ1ZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwg Y2hhciAqX19yZXN0cmljdCBfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzZXR2YnVmIChGSUxF ICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLAo+ID4+PiAgICAg ICBpbnQgX19tb2Rlcywgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZv aWQgc2V0YnVmZmVyIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0 IF9fYnVmLAo+ID4+PiAgICAgICAgICBzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBzZXRs aW5lYnVmIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBmcHJpbnRmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLAo+ID4+ PiAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pOwo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHByaW50ZiAoY29uc3QgY2hhciAqX19yZXN0 cmljdCBfX2Zvcm1hdCwgLi4uKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzcHJpbnRmIChjaGFy ICpfX3Jlc3RyaWN0IF9fcywKPiA+Pj4gICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zv cm1hdCwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB2ZnByaW50ZiAoRklMRSAqX19yZXN0cmlj dCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCj4gPj4+ICAgICAgICBfX2du dWNfdmFfbGlzdCBfX2FyZyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBp bnQgdnByaW50ZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xp c3QgX19hcmcpOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHZzcHJpbnRmIChjaGFyICpfX3Jlc3Ry aWN0IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKPiA+Pj4gICAgICAgIF9f Z251Y192YV9saXN0IF9fYXJnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzbnByaW50ZiAoY2hhciAq X19yZXN0cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwKPiA+Pj4gICAgICAgIGNvbnN0IGNoYXIg Kl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMywgNCkp KTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB2c25wcmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19z LCBzaXplX3QgX19tYXhsZW4sCj4gPj4+ICAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBf X2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDMs IDApKSk7Cj4gPj4+Cj4gPj4+ICMgNDEyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+ IGV4dGVybiBpbnQgdmRwcmludGYgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f Zm10LAo+ID4+PiAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCj4gPj4+ICAgICAgX19hdHRy aWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDIsIDApKSk7Cj4gPj4+IGV4dGVybiBp bnQgZHByaW50ZiAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIC4uLikK PiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMiwgMykp KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGludCBmc2NhbmYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCj4gPj4+ICAgICAg Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19m b3JtYXQsIC4uLikgOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNzY2FuZiAoY29uc3QgY2hhciAq X19yZXN0cmljdCBfX3MsCj4gPj4+ICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1h dCwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAj IDQ0MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGZzY2FuZiAo RklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1h dCwgLi4uKSBfX2FzbV9fICgiIiAiX19pc29jOTlfZnNjYW5mIikKPiA+Pj4KPiA+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsKPiA+Pj4gZXh0ZXJuIGludCBzY2FuZiAoY29uc3Qg Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSBfX2FzbV9fICgiIiAiX19pc29jOTlfc2Nh bmYiKQo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Cj4gPj4+IGV4dGVybiBp bnQgc3NjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hhciAqX19yZXN0 cmljdCBfX2Zvcm1hdCwgLi4uKSBfX2FzbV9fICgiIiAiX19pc29jOTlfc3NjYW5mIikgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKQo+ID4+Pgo+ID4+PiAgICAgICAgICAg ICAgICAgICAgICAgOwo+ID4+PiAjIDQ2MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g aW50IHZmc2NhbmYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0 IF9fZm9ybWF0LAo+ID4+PiAgICAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykKPiA+Pj4gICAgICBf X2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpIDsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB2c2NhbmYgKGNvbnN0IGNoYXIg Kl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKQo+ID4+PiAgICAgIF9f YXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5mX18sIDEsIDApKSkgOwo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gaW50IHZzc2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLAo+ ID4+PiAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlz dCBfX2FyZykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5mX18sIDIsIDApKSk7Cj4gPj4+ ICMgNDk0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgdmZzY2Fu ZiAoRklMRSAqX19yZXN0cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQs IF9fZ251Y192YV9saXN0IF9fYXJnKSBfX2FzbV9fICgiIiAiX19pc29jOTlfdmZzY2FuZiIpCj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9f c2NhbmZfXywgMiwgMCkpKSA7Cj4gPj4+IGV4dGVybiBpbnQgdnNjYW5mIChjb25zdCBjaGFyICpf X3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZykgX19hc21fXyAoIiIgIl9f aXNvYzk5X3ZzY2FuZiIpCj4gPj4+Cj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0 X18gKF9fc2NhbmZfXywgMSwgMCkpKSA7Cj4gPj4+IGV4dGVybiBpbnQgdnNzY2FuZiAoY29uc3Qg Y2hhciAqX19yZXN0cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9f Z251Y192YV9saXN0IF9fYXJnKSBfX2FzbV9fICgiIiAiX19pc29jOTlfdnNzY2FuZiIpIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpOwo+ ID4+PiAjIDUyMiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZnZXRj IChGSUxFICpfX3N0cmVhbSk7Cj4gPj4+IGV4dGVybiBpbnQgZ2V0YyAoRklMRSAqX19zdHJlYW0p Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldGNoYXIg KHZvaWQpOwo+ID4+Pgo+ID4+PiAjIDU1MCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+ PiBleHRlcm4gaW50IGdldGNfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKTsKPiA+Pj4gZXh0ZXJu IGludCBnZXRjaGFyX3VubG9ja2VkICh2b2lkKTsKPiA+Pj4gIyA1NjEgIi91c3IvaW5jbHVkZS9z dGRpby5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBmZ2V0Y191bmxvY2tlZCAoRklMRSAqX19zdHJl YW0pOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0 cmVhbSk7Cj4gPj4+IGV4dGVybiBpbnQgcHV0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHB1dGNoYXIgKGlu dCBfX2MpOwo+ID4+Pgo+ID4+PiAjIDU5NCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+ PiBleHRlcm4gaW50IGZwdXRjX3VubG9ja2VkIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQg cHV0Y191bmxvY2tlZCAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pOwo+ID4+PiBleHRlcm4gaW50 IHB1dGNoYXJfdW5sb2NrZWQgKGludCBfX2MpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHcgKEZJTEUgKl9fc3RyZWFtKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIGludCBwdXR3IChpbnQgX193LCBGSUxFICpfX3N0cmVhbSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBj aGFyICpmZ2V0cyAoY2hhciAqX19yZXN0cmljdCBfX3MsIGludCBfX24sIEZJTEUgKl9fcmVzdHJp Y3QgX19zdHJlYW0pCj4gPj4+ICAgICAgOwo+ID4+PiAjIDY0MCAiL3Vzci9pbmNsdWRlL3N0ZGlv LmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDY2NSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+ PiBleHRlcm4gX19zc2l6ZV90IF9fZ2V0ZGVsaW0gKGNoYXIgKipfX3Jlc3RyaWN0IF9fbGluZXB0 ciwKPiA+Pj4gICAgICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBfX24sIGludCBfX2RlbGltaXRl ciwKPiA+Pj4gICAgICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKPiA+Pj4gZXh0 ZXJuIF9fc3NpemVfdCBnZXRkZWxpbSAoY2hhciAqKl9fcmVzdHJpY3QgX19saW5lcHRyLAo+ID4+ PiAgICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBfX24sIGludCBfX2RlbGltaXRlciwKPiA+Pj4g ICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX3NzaXplX3QgZ2V0bGluZSAoY2hh ciAqKl9fcmVzdHJpY3QgX19saW5lcHRyLAo+ID4+PiAgICAgICAgc2l6ZV90ICpfX3Jlc3RyaWN0 IF9fbiwKPiA+Pj4gICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBm cHV0cyAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJl YW0pOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHB1dHMg KGNvbnN0IGNoYXIgKl9fcyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgdW5nZXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzaXplX3QgZnJlYWQgKHZv aWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCj4gPj4+ICAgICAgICBzaXplX3Qg X19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBzaXplX3QgZndyaXRlIChjb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fcHRy LCBzaXplX3QgX19zaXplLAo+ID4+PiAgICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJp Y3QgX19zKTsKPiA+Pj4KPiA+Pj4gIyA3MzcgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiA+ Pj4gZXh0ZXJuIHNpemVfdCBmcmVhZF91bmxvY2tlZCAodm9pZCAqX19yZXN0cmljdCBfX3B0ciwg c2l6ZV90IF9fc2l6ZSwKPiA+Pj4gICAgICAgICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmlj dCBfX3N0cmVhbSkgOwo+ID4+PiBleHRlcm4gc2l6ZV90IGZ3cml0ZV91bmxvY2tlZCAoY29uc3Qg dm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKPiA+Pj4gICAgICAgICAgIHNp emVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZzZWVrIChGSUxF ICpfX3N0cmVhbSwgbG9uZyBpbnQgX19vZmYsIGludCBfX3doZW5jZSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBsb25nIGludCBmdGVsbCAoRklMRSAqX19zdHJlYW0pIDsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgcmV3aW5kIChGSUxFICpf X3N0cmVhbSk7Cj4gPj4+Cj4gPj4+ICMgNzczICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4g Pj4+IGV4dGVybiBpbnQgZnNlZWtvIChGSUxFICpfX3N0cmVhbSwgX19vZmZfdCBfX29mZiwgaW50 IF9fd2hlbmNlKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fb2ZmX3Qg ZnRlbGxvIChGSUxFICpfX3N0cmVhbSkgOwo+ID4+PiAjIDc5MiAiL3Vzci9pbmNsdWRlL3N0ZGlv LmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g aW50IGZnZXRwb3MgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGZwb3NfdCAqX19yZXN0cmlj dCBfX3Bvcyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZnNldHBv cyAoRklMRSAqX19zdHJlYW0sIGNvbnN0IGZwb3NfdCAqX19wb3MpOwo+ID4+PiAjIDgxNSAiL3Vz ci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDgyNCAiL3Vzci9pbmNsdWRlL3N0 ZGlvLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBjbGVhcmVyciAoRklMRSAq X19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ Cj4gPj4+IGV4dGVybiBpbnQgZmVvZiAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZlcnJvciAo RklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBjbGVhcmVycl91bmxv Y2tlZCAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSk7Cj4gPj4+IGV4dGVybiBpbnQgZmVvZl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+PiBleHRlcm4gaW50 IGZlcnJvcl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBwZXJyb3IgKGNvbnN0IGNoYXIgKl9fcyk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L2JpdHMvc3lzX2Vycmxpc3QuaCIgMSAzIDQKPiA+Pj4gIyAyNiAiL3Vzci9pbmNsdWRlL2JpdHMv c3lzX2Vycmxpc3QuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgc3lzX25lcnI7Cj4gPj4+IGV4dGVy biBjb25zdCBjaGFyICpjb25zdCBzeXNfZXJybGlzdFtdOwo+ID4+PiAjIDg1NCAiL3Vzci9pbmNs dWRlL3N0ZGlvLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBp bnQgZmlsZW5vIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZmls ZW5vX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSA7Cj4gPj4+ICMgODcyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4g Pj4+IGV4dGVybiBGSUxFICpwb3BlbiAoY29uc3QgY2hhciAqX19jb21tYW5kLCBjb25zdCBjaGFy ICpfX21vZGVzKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBp bnQgcGNsb3NlIChGSUxFICpfX3N0cmVhbSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBjaGFyICpjdGVybWlkIChjaGFyICpfX3MpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgOTEyICIvdXNyL2luY2x1ZGUvc3RkaW8u aCIgMyA0Cj4gPj4+IGV4dGVybiB2b2lkIGZsb2NrZmlsZSAoRklMRSAqX19zdHJlYW0pIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgZnRyeWxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2 b2lkIGZ1bmxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyA5NDIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQK PiA+Pj4KPiA+Pj4gIyA0MCAibWFjaGluZS5jIiAyCj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N0 ZGxpYi5oIiAxIDMgNAo+ID4+PiAjIDMyICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+ PiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRl Zi5oIiAxIDMgNAo+ID4+PiAjIDMyOCAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYu MS4xL2luY2x1ZGUvc3RkZGVmLmgiIDMgNAo+ID4+PiB0eXBlZGVmIGxvbmcgaW50IHdjaGFyX3Q7 Cj4gPj4+ICMgMzMgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUv Yml0cy93YWl0ZmxhZ3MuaCIgMSAzIDQKPiA+Pj4gIyA0MiAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5o IiAyIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3dhaXRzdGF0dXMuaCIgMSAzIDQK PiA+Pj4gIyA2NCAiL3Vzci9pbmNsdWRlL2JpdHMvd2FpdHN0YXR1cy5oIiAzIDQKPiA+Pj4gIyAx ICIvdXNyL2luY2x1ZGUvZW5kaWFuLmgiIDEgMyA0Cj4gPj4+ICMgMzYgIi91c3IvaW5jbHVkZS9l bmRpYW4uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZW5kaWFuLmgiIDEgMyA0 Cj4gPj4+ICMgMzcgIi91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMiAzIDQKPiA+Pj4gIyA2MCAiL3Vz ci9pbmNsdWRlL2VuZGlhbi5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9ieXRl c3dhcC5oIiAxIDMgNAo+ID4+PiAjIDI4ICIvdXNyL2luY2x1ZGUvYml0cy9ieXRlc3dhcC5oIiAz IDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ID4+PiAj IDI5ICIvdXNyL2luY2x1ZGUvYml0cy9ieXRlc3dhcC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2Fw LTE2LmgiIDEgMyA0Cj4gPj4+ICMgMzYgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDIg MyA0Cj4gPj4+ICMgNDQgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDMgNAo+ID4+PiBz dGF0aWMgX19pbmxpbmUgdW5zaWduZWQgaW50Cj4gPj4+IF9fYnN3YXBfMzIgKHVuc2lnbmVkIGlu dCBfX2JzeCkKPiA+Pj4gewo+ID4+PiAgIHJldHVybiBfX2J1aWx0aW5fYnN3YXAzMiAoX19ic3gp Owo+ID4+PiB9Cj4gPj4+ICMgMTA4ICIvdXNyL2luY2x1ZGUvYml0cy9ieXRlc3dhcC5oIiAzIDQK PiA+Pj4gc3RhdGljIF9faW5saW5lIF9fdWludDY0X3QKPiA+Pj4gX19ic3dhcF82NCAoX191aW50 NjRfdCBfX2JzeCkKPiA+Pj4gewo+ID4+PiAgIHJldHVybiBfX2J1aWx0aW5fYnN3YXA2NCAoX19i c3gpOwo+ID4+PiB9Cj4gPj4+ICMgNjEgIi91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMiAzIDQKPiA+ Pj4gIyA2NSAiL3Vzci9pbmNsdWRlL2JpdHMvd2FpdHN0YXR1cy5oIiAyIDMgNAo+ID4+Pgo+ID4+ PiB1bmlvbiB3YWl0Cj4gPj4+ICAgewo+ID4+PiAgICAgaW50IHdfc3RhdHVzOwo+ID4+PiAgICAg c3RydWN0Cj4gPj4+ICAgICAgIHsKPiA+Pj4KPiA+Pj4gIHVuc2lnbmVkIGludCBfX3dfdGVybXNp Zzo3Owo+ID4+PiAgdW5zaWduZWQgaW50IF9fd19jb3JlZHVtcDoxOwo+ID4+PiAgdW5zaWduZWQg aW50IF9fd19yZXRjb2RlOjg7Cj4gPj4+ICB1bnNpZ25lZCBpbnQ6MTY7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICAgIH0gX193YWl0X3Rlcm1pbmF0 ZWQ7Cj4gPj4+ICAgICBzdHJ1Y3QKPiA+Pj4gICAgICAgewo+ID4+Pgo+ID4+PiAgdW5zaWduZWQg aW50IF9fd19zdG9wdmFsOjg7Cj4gPj4+ICB1bnNpZ25lZCBpbnQgX193X3N0b3BzaWc6ODsKPiA+ Pj4gIHVuc2lnbmVkIGludDoxNjsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gICAgICAgfSBfX3dhaXRfc3RvcHBlZDsKPiA+Pj4gICB9Owo+ID4+PiAjIDQzICIvdXNy L2luY2x1ZGUvc3RkbGliLmgiIDIgMyA0Cj4gPj4+ICMgNjcgIi91c3IvaW5jbHVkZS9zdGRsaWIu aCIgMyA0Cj4gPj4+IHR5cGVkZWYgdW5pb24KPiA+Pj4gICB7Cj4gPj4+ICAgICB1bmlvbiB3YWl0 ICpfX3VwdHI7Cj4gPj4+ICAgICBpbnQgKl9faXB0cjsKPiA+Pj4gICB9IF9fV0FJVF9TVEFUVVMg X19hdHRyaWJ1dGVfXyAoKF9fdHJhbnNwYXJlbnRfdW5pb25fXykpOwo+ID4+PiAjIDk1ICIvdXNy L2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ ID4+PiAgIHsKPiA+Pj4gICAgIGludCBxdW90Owo+ID4+PiAgICAgaW50IHJlbTsKPiA+Pj4gICB9 IGRpdl90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiAgIHsK PiA+Pj4gICAgIGxvbmcgaW50IHF1b3Q7Cj4gPj4+ICAgICBsb25nIGludCByZW07Cj4gPj4+ICAg fSBsZGl2X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzdHJ1Y3QKPiA+Pj4gICB7Cj4gPj4+ICAgICBsb25nIGxv bmcgaW50IHF1b3Q7Cj4gPj4+ICAgICBsb25nIGxvbmcgaW50IHJlbTsKPiA+Pj4gICB9IGxsZGl2 X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMTM5ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ ID4+PiBleHRlcm4gc2l6ZV90IF9fY3R5cGVfZ2V0X21iX2N1cl9tYXggKHZvaWQpIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gZG91YmxlIGF0b2YgKGNvbnN0IGNoYXIgKl9fbnB0cikKPiA+Pj4gICAg ICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g KChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgYXRvaSAoY29uc3QgY2hhciAqX19ucHRyKQo+ID4+PiAgICAgIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVy ZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGxvbmcgaW50IGF0b2wgKGNvbnN0IGNoYXIgKl9fbnB0cikKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVf XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18gZXh0ZXJuIGxvbmcgbG9uZyBpbnQgYXRv bGwgKGNvbnN0IGNoYXIgKl9fbnB0cikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRl X18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBkb3VibGUgc3RydG9kIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwK PiA+Pj4gICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0cikKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGZsb2F0IHN0cnRvZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCj4gPj4+ICAgICAg ICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4g Pj4+IGV4dGVybiBsb25nIGRvdWJsZSBzdHJ0b2xkIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f bnB0ciwKPiA+Pj4gICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gbG9uZyBpbnQgc3RydG9sIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiA+ Pj4gICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCj4gPj4+ICAgICAg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo X19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+IGV4dGVybiB1bnNpZ25lZCBsb25nIGludCBz dHJ0b3VsIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiA+Pj4gICAgICAgY2hhciAq Kl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g KDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18KPiA+Pj4g ZXh0ZXJuIGxvbmcgbG9uZyBpbnQgc3RydG9xIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0 ciwKPiA+Pj4gICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkK PiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0 cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXwo+ ID4+PiBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGludCBzdHJ0b3VxIChjb25zdCBjaGFyICpf X3Jlc3RyaWN0IF9fbnB0ciwKPiA+Pj4gICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2Vu ZHB0ciwgaW50IF9fYmFzZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXwo+ID4+PiBleHRlcm4gbG9u ZyBsb25nIGludCBzdHJ0b2xsIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiA+Pj4g ICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCj4gPj4+ICAg ICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9f ICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18KPiA+Pj4gZXh0 ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgc3RydG91bGwgKGNvbnN0IGNoYXIgKl9fcmVzdHJp Y3QgX19ucHRyLAo+ID4+PiAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19i YXNlKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+PiAjIDMwNSAiL3Vz ci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKmw2NGEgKGxvbmcgaW50 IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBsb25nIGludCBhNjRsIChjb25zdCBjaGFyICpfX3MpCj4gPj4+ICAg ICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9f ICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMSAz IDQKPiA+Pj4gIyAyNyAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX3VfY2hhciB1X2NoYXI7Cj4g Pj4+IHR5cGVkZWYgX191X3Nob3J0IHVfc2hvcnQ7Cj4gPj4+IHR5cGVkZWYgX191X2ludCB1X2lu dDsKPiA+Pj4gdHlwZWRlZiBfX3VfbG9uZyB1X2xvbmc7Cj4gPj4+IHR5cGVkZWYgX19xdWFkX3Qg cXVhZF90Owo+ID4+PiB0eXBlZGVmIF9fdV9xdWFkX3QgdV9xdWFkX3Q7Cj4gPj4+IHR5cGVkZWYg X19mc2lkX3QgZnNpZF90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIF9f bG9mZl90IGxvZmZfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2lub190IGlu b190Owo+ID4+PiAjIDYwICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAo+ID4+PiB0eXBl ZGVmIF9fZGV2X3QgZGV2X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYg X19naWRfdCBnaWRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX21v ZGVfdCBtb2RlX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgX19ubGlu a190IG5saW5rX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgX191aWRf dCB1aWRfdDsKPiA+Pj4gIyA5OCAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKPiA+Pj4g dHlwZWRlZiBfX3BpZF90IHBpZF90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiB0eXBlZGVmIF9faWRfdCBpZF90Owo+ID4+PiAjIDExNSAiL3Vzci9pbmNsdWRlL3N5cy90eXBl cy5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBfX2RhZGRyX3QgZGFkZHJfdDsKPiA+Pj4gdHlwZWRlZiBf X2NhZGRyX3QgY2FkZHJfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlw ZWRlZiBfX2tleV90IGtleV90Owo+ID4+PiAjIDEzMiAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5o IiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMgNAo+ID4+PiAjIDU3ICIv dXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2Nsb2Nr X3QgY2xvY2tfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyA3MyAiL3Vzci9pbmNsdWRlL3Rp bWUuaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgX190aW1lX3QgdGltZV90Owo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDkxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4g dHlwZWRlZiBfX2Nsb2NraWRfdCBjbG9ja2lkX3Q7Cj4gPj4+ICMgMTAzICIvdXNyL2luY2x1ZGUv dGltZS5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBfX3RpbWVyX3QgdGltZXJfdDsKPiA+Pj4gIyAxMzMg Ii91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzIDQKPiA+Pj4gIyAxNDYgIi91c3IvaW5jbHVk ZS9zeXMvdHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxp bnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMTQ3ICIvdXNyL2luY2x1 ZGUvc3lzL3R5cGVzLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgdW5z aWduZWQgbG9uZyBpbnQgdWxvbmc7Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IHVz aG9ydDsKPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDsKPiA+Pj4gIyAxOTQgIi91c3Iv aW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgaW50IGludDhfdCBfX2F0dHJp YnV0ZV9fICgoX19tb2RlX18gKF9fUUlfXykpKTsKPiA+Pj4gdHlwZWRlZiBpbnQgaW50MTZfdCBf X2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKPiA+Pj4gdHlwZWRlZiBpbnQgaW50 MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsKPiA+Pj4gdHlwZWRlZiBp bnQgaW50NjRfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fRElfXykpKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQ4X3QgX19hdHRyaWJ1dGVfXyAoKF9f bW9kZV9fIChfX1FJX18pKSk7Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50MTZfdCBf X2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKPiA+Pj4gdHlwZWRlZiB1bnNpZ25l ZCBpbnQgdV9pbnQzMl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19TSV9fKSkpOwo+ID4+ PiB0eXBlZGVmIHVuc2lnbmVkIGludCB1X2ludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9f IChfX0RJX18pKSk7Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgaW50IHJlZ2lzdGVyX3QgX19hdHRyaWJ1 dGVfXyAoKF9fbW9kZV9fIChfX3dvcmRfXykpKTsKPiA+Pj4gIyAyMTkgIi91c3IvaW5jbHVkZS9z eXMvdHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMSAz IDQKPiA+Pj4gIyAzMCAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMyA0Cj4gPj4+ICMgMSAi L3Vzci9pbmNsdWRlL2JpdHMvc2VsZWN0LmgiIDEgMyA0Cj4gPj4+ICMgMjIgIi91c3IvaW5jbHVk ZS9iaXRzL3NlbGVjdC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6 ZS5oIiAxIDMgNAo+ID4+PiAjIDIzICIvdXNyL2luY2x1ZGUvYml0cy9zZWxlY3QuaCIgMiAzIDQK PiA+Pj4gIyAzMSAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4K PiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zaWdzZXQuaCIgMSAzIDQKPiA+Pj4gIyAyMiAi L3Vzci9pbmNsdWRlL2JpdHMvc2lnc2V0LmgiIDMgNAo+ID4+PiB0eXBlZGVmIGludCBfX3NpZ19h dG9taWNfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QKPiA+ Pj4gICB7Cj4gPj4+ICAgICB1bnNpZ25lZCBsb25nIGludCBfX3ZhbFsoMTAyNCAvICg4ICogc2l6 ZW9mICh1bnNpZ25lZCBsb25nIGludCkpKV07Cj4gPj4+ICAgfSBfX3NpZ3NldF90Owo+ID4+PiAj IDM0ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiB0eXBlZGVmIF9fc2lnc2V0X3Qgc2lnc2V0X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMSAzIDQKPiA+Pj4gIyAxMjAg Ii91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAo+ID4+PiBzdHJ1Y3QgdGltZXNwZWMKPiA+Pj4gICB7 Cj4gPj4+ICAgICBfX3RpbWVfdCB0dl9zZWM7Cj4gPj4+ICAgICBfX3N5c2NhbGxfc2xvbmdfdCB0 dl9uc2VjOwo+ID4+PiAgIH07Cj4gPj4+ICMgNDQgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0Lmgi IDIgMyA0Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdGltZS5oIiAxIDMgNAo+ ID4+PiAjIDMwICIvdXNyL2luY2x1ZGUvYml0cy90aW1lLmgiIDMgNAo+ID4+PiBzdHJ1Y3QgdGlt ZXZhbAo+ID4+PiAgIHsKPiA+Pj4gICAgIF9fdGltZV90IHR2X3NlYzsKPiA+Pj4gICAgIF9fc3Vz ZWNvbmRzX3QgdHZfdXNlYzsKPiA+Pj4gICB9Owo+ID4+PiAjIDQ2ICIvdXNyL2luY2x1ZGUvc3lz L3NlbGVjdC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIF9fc3VzZWNvbmRzX3Qg c3VzZWNvbmRzX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYg bG9uZyBpbnQgX19mZF9tYXNrOwo+ID4+PiAjIDY0ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5o IiAzIDQKPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QKPiA+Pj4gICB7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfX2ZkX21hc2sgX19mZHNfYml0c1sxMDI0IC8gKDgg KiAoaW50KSBzaXplb2YgKF9fZmRfbWFzaykpXTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICB9IGZkX3Nl dDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2Zk X21hc2sgZmRfbWFzazsKPiA+Pj4gIyA5NiAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMyA0 Cj4gPj4+Cj4gPj4+ICMgMTA2ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKPiA+Pj4g ZXh0ZXJuIGludCBzZWxlY3QgKGludCBfX25mZHMsIGZkX3NldCAqX19yZXN0cmljdCBfX3JlYWRm ZHMsCj4gPj4+ICAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9fd3JpdGVmZHMsCj4gPj4+ICAgICAg ZmRfc2V0ICpfX3Jlc3RyaWN0IF9fZXhjZXB0ZmRzLAo+ID4+PiAgICAgIHN0cnVjdCB0aW1ldmFs ICpfX3Jlc3RyaWN0IF9fdGltZW91dCk7Cj4gPj4+ICMgMTE4ICIvdXNyL2luY2x1ZGUvc3lzL3Nl bGVjdC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBwc2VsZWN0IChpbnQgX19uZmRzLCBmZF9zZXQg Kl9fcmVzdHJpY3QgX19yZWFkZmRzLAo+ID4+PiAgICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX193 cml0ZWZkcywKPiA+Pj4gICAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9fZXhjZXB0ZmRzLAo+ID4+ PiAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVzdHJpY3QgX190aW1lb3V0LAo+ID4+ PiAgICAgICBjb25zdCBfX3NpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2lnbWFzayk7Cj4gPj4+ICMg MTMxICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyAyMjAgIi91 c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNy L2luY2x1ZGUvc3lzL3N5c21hY3Jvcy5oIiAxIDMgNAo+ID4+PiAjIDI0ICIvdXNyL2luY2x1ZGUv c3lzL3N5c21hY3Jvcy5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXwo+ID4+ PiBleHRlcm4gdW5zaWduZWQgaW50IGdudV9kZXZfbWFqb3IgKHVuc2lnbmVkIGxvbmcgbG9uZyBp bnQgX19kZXYpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gPj4+IF9fZXh0ZW5zaW9uX18KPiA+ Pj4gZXh0ZXJuIHVuc2lnbmVkIGludCBnbnVfZGV2X21pbm9yICh1bnNpZ25lZCBsb25nIGxvbmcg aW50IF9fZGV2KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+PiBfX2V4dGVuc2lvbl9fCj4g Pj4+IGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IGdudV9kZXZfbWFrZWRldiAodW5zaWdu ZWQgaW50IF9fbWFqb3IsCj4gPj4+ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX21pbm9yKQo+ ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy aWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+PiAjIDU4ICIvdXNyL2luY2x1ZGUvc3lzL3N5c21h Y3Jvcy5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyAyMjMgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIg MiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2Jsa3Np emVfdCBibGtzaXplX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IHR5cGVkZWYgX19ibGtjbnRfdCBibGtjbnRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlw ZWRlZiBfX2ZzYmxrY250X3QgZnNibGtjbnRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlw ZWRlZiBfX2ZzZmlsY250X3QgZnNmaWxjbnRfdDsKPiA+Pj4gIyAyNzAgIi91c3IvaW5jbHVkZS9z eXMvdHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVz LmgiIDEgMyA0Cj4gPj4+ICMgMjEgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAz IDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ID4+PiAj IDIyICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMiAzIDQKPiA+Pj4gIyA2MCAi L3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmgiIDMgNAo+ID4+PiB0eXBlZGVmIHVuc2ln bmVkIGxvbmcgaW50IHB0aHJlYWRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gdW5pb24gcHRocmVhZF9h dHRyX3QKPiA+Pj4gewo+ID4+PiAgIGNoYXIgX19zaXplWzM2XTsKPiA+Pj4gICBsb25nIGludCBf X2FsaWduOwo+ID4+PiB9Owo+ID4+Pgo+ID4+PiB0eXBlZGVmIHVuaW9uIHB0aHJlYWRfYXR0cl90 IHB0aHJlYWRfYXR0cl90Owo+ID4+PiAjIDgxICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlw ZXMuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0IF9fcHRocmVhZF9pbnRlcm5hbF9zbGlzdAo+ ID4+PiB7Cj4gPj4+ICAgc3RydWN0IF9fcHRocmVhZF9pbnRlcm5hbF9zbGlzdCAqX19uZXh0Owo+ ID4+PiB9IF9fcHRocmVhZF9zbGlzdF90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiB0eXBlZGVmIHVuaW9uCj4gPj4+IHsKPiA+Pj4gICBzdHJ1Y3QgX19wdGhyZWFkX211dGV4 X3MKPiA+Pj4gICB7Cj4gPj4+ICAgICBpbnQgX19sb2NrOwo+ID4+PiAgICAgdW5zaWduZWQgaW50 IF9fY291bnQ7Cj4gPj4+ICAgICBpbnQgX19vd25lcjsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gICAgIGludCBfX2tpbmQ7Cj4gPj4+ICMgMTExICIvdXNyL2luY2x1ZGUvYml0 cy9wdGhyZWFkdHlwZXMuaCIgMyA0Cj4gPj4+ICAgICB1bnNpZ25lZCBpbnQgX19udXNlcnM7Cj4g Pj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gPj4+ICAgICB7Cj4gPj4+ICAgICAgIHN0cnVj dAo+ID4+PiAgICAgICB7Cj4gPj4+ICBzaG9ydCBfX2VzcGluczsKPiA+Pj4gIHNob3J0IF9fZWxp c2lvbjsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgICAgfSBfX2VsaXNpb25fZGF0YTsKPiA+ Pj4gICAgICAgX19wdGhyZWFkX3NsaXN0X3QgX19saXN0Owo+ID4+PiAgICAgfTsKPiA+Pj4KPiA+ Pj4gICB9IF9fZGF0YTsKPiA+Pj4gICBjaGFyIF9fc2l6ZVsyNF07Cj4gPj4+ICAgbG9uZyBpbnQg X19hbGlnbjsKPiA+Pj4gfSBwdGhyZWFkX211dGV4X3Q7Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgdW5p b24KPiA+Pj4gewo+ID4+PiAgIGNoYXIgX19zaXplWzRdOwo+ID4+PiAgIGludCBfX2FsaWduOwo+ ID4+PiB9IHB0aHJlYWRfbXV0ZXhhdHRyX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IHR5cGVkZWYgdW5pb24KPiA+Pj4gewo+ID4+PiAgIHN0cnVjdAo+ID4+PiAgIHsKPiA+Pj4gICAg IGludCBfX2xvY2s7Cj4gPj4+ICAgICB1bnNpZ25lZCBpbnQgX19mdXRleDsKPiA+Pj4gICAgIF9f ZXh0ZW5zaW9uX18gdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3RvdGFsX3NlcTsKPiA+Pj4gICAg IF9fZXh0ZW5zaW9uX18gdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3dha2V1cF9zZXE7Cj4gPj4+ ICAgICBfX2V4dGVuc2lvbl9fIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX193b2tlbl9zZXE7Cj4g Pj4+ICAgICB2b2lkICpfX211dGV4Owo+ID4+PiAgICAgdW5zaWduZWQgaW50IF9fbndhaXRlcnM7 Cj4gPj4+ICAgICB1bnNpZ25lZCBpbnQgX19icm9hZGNhc3Rfc2VxOwo+ID4+PiAgIH0gX19kYXRh Owo+ID4+PiAgIGNoYXIgX19zaXplWzQ4XTsKPiA+Pj4gICBfX2V4dGVuc2lvbl9fIGxvbmcgbG9u ZyBpbnQgX19hbGlnbjsKPiA+Pj4gfSBwdGhyZWFkX2NvbmRfdDsKPiA+Pj4KPiA+Pj4gdHlwZWRl ZiB1bmlvbgo+ID4+PiB7Cj4gPj4+ICAgY2hhciBfX3NpemVbNF07Cj4gPj4+ICAgaW50IF9fYWxp Z247Cj4gPj4+IH0gcHRocmVhZF9jb25kYXR0cl90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0 eXBlZGVmIHVuc2lnbmVkIGludCBwdGhyZWFkX2tleV90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiB0eXBlZGVmIGludCBwdGhyZWFkX29uY2VfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gdHlwZWRlZiB1bmlvbgo+ID4+PiB7Cj4gPj4+ICMgMjAyICIvdXNyL2luY2x1ZGUv Yml0cy9wdGhyZWFkdHlwZXMuaCIgMyA0Cj4gPj4+ICAgc3RydWN0Cj4gPj4+ICAgewo+ID4+PiAg ICAgaW50IF9fbG9jazsKPiA+Pj4gICAgIHVuc2lnbmVkIGludCBfX25yX3JlYWRlcnM7Cj4gPj4+ ICAgICB1bnNpZ25lZCBpbnQgX19yZWFkZXJzX3dha2V1cDsKPiA+Pj4gICAgIHVuc2lnbmVkIGlu dCBfX3dyaXRlcl93YWtldXA7Cj4gPj4+ICAgICB1bnNpZ25lZCBpbnQgX19ucl9yZWFkZXJzX3F1 ZXVlZDsKPiA+Pj4gICAgIHVuc2lnbmVkIGludCBfX25yX3dyaXRlcnNfcXVldWVkOwo+ID4+Pgo+ ID4+Pgo+ID4+PiAgICAgdW5zaWduZWQgY2hhciBfX2ZsYWdzOwo+ID4+PiAgICAgdW5zaWduZWQg Y2hhciBfX3NoYXJlZDsKPiA+Pj4gICAgIHNpZ25lZCBjaGFyIF9fcndlbGlzaW9uOwo+ID4+Pgo+ ID4+PiAgICAgdW5zaWduZWQgY2hhciBfX3BhZDI7Cj4gPj4+ICAgICBpbnQgX193cml0ZXI7Cj4g Pj4+ICAgfSBfX2RhdGE7Cj4gPj4+Cj4gPj4+ICAgY2hhciBfX3NpemVbMzJdOwo+ID4+PiAgIGxv bmcgaW50IF9fYWxpZ247Cj4gPj4+IH0gcHRocmVhZF9yd2xvY2tfdDsKPiA+Pj4KPiA+Pj4gdHlw ZWRlZiB1bmlvbgo+ID4+PiB7Cj4gPj4+ICAgY2hhciBfX3NpemVbOF07Cj4gPj4+ICAgbG9uZyBp bnQgX19hbGlnbjsKPiA+Pj4gfSBwdGhyZWFkX3J3bG9ja2F0dHJfdDsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB2b2xhdGlsZSBpbnQgcHRocmVhZF9zcGlubG9j a190Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHVuaW9uCj4gPj4+IHsK PiA+Pj4gICBjaGFyIF9fc2l6ZVsyMF07Cj4gPj4+ICAgbG9uZyBpbnQgX19hbGlnbjsKPiA+Pj4g fSBwdGhyZWFkX2JhcnJpZXJfdDsKPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1bmlvbgo+ID4+PiB7Cj4g Pj4+ICAgY2hhciBfX3NpemVbNF07Cj4gPj4+ICAgaW50IF9fYWxpZ247Cj4gPj4+IH0gcHRocmVh ZF9iYXJyaWVyYXR0cl90Owo+ID4+PiAjIDI3MSAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAy IDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDMxNSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5o IiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g bG9uZyBpbnQgcmFuZG9tICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBzcmFuZG9tICh1bnNpZ25lZCBp bnQgX19zZWVkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqaW5pdHN0YXRlICh1 bnNpZ25lZCBpbnQgX19zZWVkLCBjaGFyICpfX3N0YXRlYnVmLAo+ID4+PiAgICBzaXplX3QgX19z dGF0ZWxlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp YnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVy biBjaGFyICpzZXRzdGF0ZSAoY2hhciAqX19zdGF0ZWJ1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCByYW5k b21fZGF0YQo+ID4+PiAgIHsKPiA+Pj4gICAgIGludDMyX3QgKmZwdHI7Cj4gPj4+ICAgICBpbnQz Ml90ICpycHRyOwo+ID4+PiAgICAgaW50MzJfdCAqc3RhdGU7Cj4gPj4+ICAgICBpbnQgcmFuZF90 eXBlOwo+ID4+PiAgICAgaW50IHJhbmRfZGVnOwo+ID4+PiAgICAgaW50IHJhbmRfc2VwOwo+ID4+ PiAgICAgaW50MzJfdCAqZW5kX3B0cjsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IHJhbmRvbV9yIChzdHJ1Y3QgcmFuZG9tX2RhdGEgKl9fcmVzdHJpY3QgX19idWYsCj4gPj4+ICAg ICAgICBpbnQzMl90ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsK PiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzcmFuZG9tX3IgKHVuc2lnbmVkIGludCBfX3NlZWQsIHN0 cnVjdCByYW5kb21fZGF0YSAqX19idWYpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4g Pj4+Cj4gPj4+IGV4dGVybiBpbnQgaW5pdHN0YXRlX3IgKHVuc2lnbmVkIGludCBfX3NlZWQsIGNo YXIgKl9fcmVzdHJpY3QgX19zdGF0ZWJ1ZiwKPiA+Pj4gICAgc2l6ZV90IF9fc3RhdGVsZW4sCj4g Pj4+ICAgIHN0cnVjdCByYW5kb21fZGF0YSAqX19yZXN0cmljdCBfX2J1ZikKPiA+Pj4gICAgICBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf X25vbm51bGxfXyAoMiwgNCkpKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzZXRzdGF0ZV9yIChj aGFyICpfX3Jlc3RyaWN0IF9fc3RhdGVidWYsCj4gPj4+ICAgICAgICAgIHN0cnVjdCByYW5kb21f ZGF0YSAqX19yZXN0cmljdCBfX2J1ZikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCByYW5k ICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ ID4+PiBleHRlcm4gdm9pZCBzcmFuZCAodW5zaWduZWQgaW50IF9fc2VlZCkgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCByYW5kX3IgKHVuc2lnbmVkIGludCAqX19zZWVkKSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gZG91YmxlIGRyYW5kNDggKHZvaWQpIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiBkb3VibGUgZXJh bmQ0OCAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10pIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gbG9uZyBpbnQgbHJhbmQ0OCAodm9pZCkgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIGxvbmcgaW50IG5y YW5kNDggKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdKQo+ID4+PiAgICAgIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs bF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gbG9uZyBpbnQgbXJhbmQ0OCAodm9p ZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJu IGxvbmcgaW50IGpyYW5kNDggKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdKQo+ID4+PiAg ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBzcmFu ZDQ4IChsb25nIGludCBfX3NlZWR2YWwpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f bGVhZl9fKSk7Cj4gPj4+IGV4dGVybiB1bnNpZ25lZCBzaG9ydCBpbnQgKnNlZWQ0OCAodW5zaWdu ZWQgc2hvcnQgaW50IF9fc2VlZDE2dlszXSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsK PiA+Pj4gZXh0ZXJuIHZvaWQgbGNvbmc0OCAodW5zaWduZWQgc2hvcnQgaW50IF9fcGFyYW1bN10p IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBz dHJ1Y3QgZHJhbmQ0OF9kYXRhCj4gPj4+ICAgewo+ID4+PiAgICAgdW5zaWduZWQgc2hvcnQgaW50 IF9feFszXTsKPiA+Pj4gICAgIHVuc2lnbmVkIHNob3J0IGludCBfX29sZF94WzNdOwo+ID4+PiAg ICAgdW5zaWduZWQgc2hvcnQgaW50IF9fYzsKPiA+Pj4gICAgIHVuc2lnbmVkIHNob3J0IGludCBf X2luaXQ7Cj4gPj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX19h Owo+ID4+Pgo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZHJhbmQ0OF9y IChzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAo+ID4+PiAgICAgICAg IGRvdWJsZSAqX19yZXN0cmljdCBfX3Jlc3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+ IGV4dGVybiBpbnQgZXJhbmQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVszXSwKPiA+ Pj4gICAgICAgICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAo+ID4+ PiAgICAgICAgIGRvdWJsZSAqX19yZXN0cmljdCBfX3Jlc3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIp KSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbHJhbmQ0OF9yIChzdHJ1Y3QgZHJhbmQ0 OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAo+ID4+PiAgICAgICAgIGxvbmcgaW50ICpfX3Jl c3RyaWN0IF9fcmVzdWx0KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+PiBl eHRlcm4gaW50IG5yYW5kNDhfciAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10sCj4gPj4+ ICAgICAgICAgc3RydWN0IGRyYW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwKPiA+Pj4g ICAgICAgICBsb25nIGludCAqX19yZXN0cmljdCBfX3Jlc3VsdCkKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBtcmFuZDQ4X3IgKHN0 cnVjdCBkcmFuZDQ4X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCj4gPj4+ICAgICAgICAgbG9u ZyBpbnQgKl9fcmVzdHJpY3QgX19yZXN1bHQpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIp KSk7Cj4gPj4+IGV4dGVybiBpbnQganJhbmQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3Vi aVszXSwKPiA+Pj4gICAgICAgICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVm ZmVyLAo+ID4+PiAgICAgICAgIGxvbmcgaW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KQo+ID4+PiAg ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNy YW5kNDhfciAobG9uZyBpbnQgX19zZWVkdmFsLCBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX2J1ZmZl cikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBz ZWVkNDhfciAodW5zaWduZWQgc2hvcnQgaW50IF9fc2VlZDE2dlszXSwKPiA+Pj4gICAgICAgIHN0 cnVjdCBkcmFuZDQ4X2RhdGEgKl9fYnVmZmVyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBsY29uZzQ4X3IgKHVuc2lnbmVkIHNob3J0IGludCBfX3BhcmFtWzdd LAo+ID4+PiAgICAgICAgIHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9fYnVmZmVyKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqbWFsbG9jIChzaXplX3QgX19z aXplKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl X18gKChfX21hbGxvY19fKSkgOwo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqY2FsbG9jIChzaXpl X3QgX19ubWVtYiwgc2l6ZV90IF9fc2l6ZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gdm9pZCAqcmVhbGxvYyAodm9pZCAqX19wdHIsIHNpemVfdCBfX3NpemUpCj4g Pj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp YnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwo+ID4+Pgo+ID4+PiBleHRlcm4gdm9p ZCBmcmVlICh2b2lkICpfX3B0cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgY2ZyZWUgKHZv aWQgKl9fcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hbGxvY2EuaCIgMSAzIDQKPiA+ Pj4gIyAyNCAiL3Vzci9pbmNsdWRlL2FsbG9jYS5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2xpYi9n Y2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKPiA+Pj4g IyAyNSAiL3Vzci9pbmNsdWRlL2FsbG9jYS5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqYWxsb2NhIChzaXplX3QgX19z aXplKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDQ5MyAiL3Vzci9pbmNsdWRlL3N0ZGxp Yi5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9p ZCAqdmFsbG9jIChzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHBvc2l4X21lbWFsaWduICh2b2lkICoqX19tZW1wdHIs IHNpemVfdCBfX2FsaWdubWVudCwgc2l6ZV90IF9fc2l6ZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf XyAoMSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkICphbGln bmVkX2FsbG9jIChzaXplX3QgX19hbGlnbm1lbnQsIHNpemVfdCBfX3NpemUpCj4gPj4+ICAgICAg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo X19tYWxsb2NfXykpIF9fYXR0cmlidXRlX18gKChfX2FsbG9jX3NpemVfXyAoMikpKSA7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIGFib3J0ICh2b2lkKSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vcmV0 dXJuX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBhdGV4aXQgKHZvaWQg KCpfX2Z1bmMpICh2b2lkKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgYXRfcXVpY2tfZXhpdCAodm9p ZCAoKl9fZnVuYykgKHZvaWQpKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBvbl9leGl0ICh2b2lkICgq X19mdW5jKSAoaW50IF9fc3RhdHVzLCB2b2lkICpfX2FyZyksIHZvaWQgKl9fYXJnKQo+ID4+PiAg ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gdm9pZCBleGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9yZXR1cm5fXykpOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBxdWlja19leGl0 IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg X19hdHRyaWJ1dGVfXyAoKF9fbm9yZXR1cm5fXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBfRXhpdCAoaW50IF9fc3RhdHVzKSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf X25vcmV0dXJuX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGNoYXIgKmdldGVudiAoY29uc3QgY2hhciAqX19uYW1lKSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkp KSA7Cj4gPj4+Cj4gPj4+ICMgNTc4ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+PiBl eHRlcm4gaW50IHB1dGVudiAoY2hhciAqX19zdHJpbmcpIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNldGVudiAoY29uc3Qg Y2hhciAqX19uYW1lLCBjb25zdCBjaGFyICpfX3ZhbHVlLCBpbnQgX19yZXBsYWNlKQo+ID4+PiAg ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHVuc2V0 ZW52IChjb25zdCBjaGFyICpfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGNsZWFyZW52ICh2b2lkKSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDYwNiAiL3Vz ci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKm1rdGVtcCAoY2hhciAq X190ZW1wbGF0ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0 dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ICMgNjE5ICIvdXNyL2luY2x1ZGUv c3RkbGliLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IG1rc3RlbXAgKGNoYXIgKl9fdGVtcGxhdGUp IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+ICMgNjQxICIvdXNyL2lu Y2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IG1rc3RlbXBzIChjaGFyICpfX3Rl bXBsYXRlLCBpbnQgX19zdWZmaXhsZW4pIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkp KSA7Cj4gPj4+ICMgNjYyICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+PiBleHRlcm4g Y2hhciAqbWtkdGVtcCAoY2hhciAqX190ZW1wbGF0ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+ PiAjIDcxMSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzeXN0ZW0gKGNvbnN0IGNoYXIgKl9fY29tbWFuZCkg Owo+ID4+Pgo+ID4+PiAjIDczMyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0 ZXJuIGNoYXIgKnJlYWxwYXRoIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKPiA+Pj4g ICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX3Jlc29sdmVkKSBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gdHlwZWRlZiBpbnQgKCpfX2NvbXBhcl9mbl90KSAoY29uc3Qgdm9pZCAqLCBjb25z dCB2b2lkICopOwo+ID4+PiAjIDc1MSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKmJzZWFyY2ggKGNvbnN0IHZvaWQgKl9fa2V5 LCBjb25zdCB2b2lkICpfX2Jhc2UsCj4gPj4+ICAgICAgICAgc2l6ZV90IF9fbm1lbWIsIHNpemVf dCBfX3NpemUsIF9fY29tcGFyX2ZuX3QgX19jb21wYXIpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgxLCAyLCA1KSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgcXNvcnQgKHZvaWQgKl9fYmFzZSwgc2l6 ZV90IF9fbm1lbWIsIHNpemVfdCBfX3NpemUsCj4gPj4+ICAgICAgX19jb21wYXJfZm5fdCBfX2Nv bXBhcikgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCA0KSkpOwo+ID4+PiAjIDc3NCAi L3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBhYnMgKGludCBfX3gp IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fY29uc3RfXykpIDsKPiA+Pj4gZXh0ZXJuIGxvbmcgaW50IGxhYnMgKGxvbmcgaW50IF9feCkg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo X19jb25zdF9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIGV4dGVy biBsb25nIGxvbmcgaW50IGxsYWJzIChsb25nIGxvbmcgaW50IF9feCkKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2Nv bnN0X18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBkaXZfdCBkaXYgKGludCBfX251bWVyLCBpbnQgX19kZW5vbSkKPiA+Pj4gICAgICBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf X2NvbnN0X18pKSA7Cj4gPj4+IGV4dGVybiBsZGl2X3QgbGRpdiAobG9uZyBpbnQgX19udW1lciwg bG9uZyBpbnQgX19kZW5vbSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKSA7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18gZXh0ZXJuIGxsZGl2X3QgbGxkaXYgKGxvbmcg bG9uZyBpbnQgX19udW1lciwKPiA+Pj4gICAgICAgICBsb25nIGxvbmcgaW50IF9fZGVub20pCj4g Pj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp YnV0ZV9fICgoX19jb25zdF9fKSkgOwo+ID4+Pgo+ID4+PiAjIDgxMSAiL3Vzci9pbmNsdWRlL3N0 ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKmVjdnQgKGRvdWJsZSBfX3ZhbHVlLCBpbnQg X19uZGlnaXQsIGludCAqX19yZXN0cmljdCBfX2RlY3B0LAo+ID4+PiAgICAgIGludCAqX19yZXN0 cmljdCBfX3NpZ24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0KSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKmZjdnQgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQs IGludCAqX19yZXN0cmljdCBfX2RlY3B0LAo+ID4+PiAgICAgIGludCAqX19yZXN0cmljdCBfX3Np Z24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgzLCA0KSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGNoYXIgKmdjdnQgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGNoYXIgKl9f YnVmKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKnFlY3Z0IChsb25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19u ZGlnaXQsCj4gPj4+ICAgICAgIGludCAqX19yZXN0cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJp Y3QgX19zaWduKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0KSkpIDsKPiA+Pj4gZXh0ZXJu IGNoYXIgKnFmY3Z0IChsb25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsCj4gPj4+ICAg ICAgIGludCAqX19yZXN0cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJpY3QgX19zaWduKQo+ID4+ PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0KSkpIDsKPiA+Pj4gZXh0ZXJuIGNoYXIgKnFnY3Z0IChs b25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGNoYXIgKl9fYnVmKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgzKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGludCBlY3Z0X3IgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGludCAqX19yZXN0cmlj dCBfX2RlY3B0LAo+ID4+PiAgICAgIGludCAqX19yZXN0cmljdCBfX3NpZ24sIGNoYXIgKl9fcmVz dHJpY3QgX19idWYsCj4gPj4+ICAgICAgc2l6ZV90IF9fbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMywgNCwg NSkpKTsKPiA+Pj4gZXh0ZXJuIGludCBmY3Z0X3IgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGln aXQsIGludCAqX19yZXN0cmljdCBfX2RlY3B0LAo+ID4+PiAgICAgIGludCAqX19yZXN0cmljdCBf X3NpZ24sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCj4gPj4+ICAgICAgc2l6ZV90IF9fbGVuKSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf X25vbm51bGxfXyAoMywgNCwgNSkpKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBxZWN2dF9yIChs b25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsCj4gPj4+ICAgICAgIGludCAqX19yZXN0 cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJpY3QgX19zaWduLAo+ID4+PiAgICAgICBjaGFyICpf X3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19sZW4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMs IDQsIDUpKSk7Cj4gPj4+IGV4dGVybiBpbnQgcWZjdnRfciAobG9uZyBkb3VibGUgX192YWx1ZSwg aW50IF9fbmRpZ2l0LAo+ID4+PiAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19kZWNwdCwgaW50ICpf X3Jlc3RyaWN0IF9fc2lnbiwKPiA+Pj4gICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6 ZV90IF9fbGVuKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0LCA1KSkpOwo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IG1ibGVuIChjb25zdCBj aGFyICpfX3MsIHNpemVfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbWJ0b3djICh3Y2hhcl90ICpfX3Jl c3RyaWN0IF9fcHdjLAo+ID4+PiAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXpl X3QgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gaW50IHdjdG9tYiAoY2hhciAqX19zLCB3Y2hhcl90IF9fd2NoYXIp IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBzaXplX3QgbWJzdG93Y3MgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19w d2NzLAo+ID4+PiAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbikgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJu IHNpemVfdCB3Y3N0b21icyAoY2hhciAqX19yZXN0cmljdCBfX3MsCj4gPj4+ICAgIGNvbnN0IHdj aGFyX3QgKl9fcmVzdHJpY3QgX19wd2NzLCBzaXplX3QgX19uKQo+ID4+PiAgICAgIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgcnBtYXRjaCAoY29uc3Qg Y2hhciAqX19yZXNwb25zZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+PiAjIDg5OCAiL3Vzci9p bmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBnZXRzdWJvcHQgKGNoYXIgKipf X3Jlc3RyaWN0IF9fb3B0aW9ucCwKPiA+Pj4gICAgICAgICBjaGFyICpjb25zdCAqX19yZXN0cmlj dCBfX3Rva2VucywKPiA+Pj4gICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX3ZhbHVlcCkKPiA+ Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmli dXRlX18gKChfX25vbm51bGxfXyAoMSwgMiwgMykpKSA7Cj4gPj4+ICMgOTUwICIvdXNyL2luY2x1 ZGUvc3RkbGliLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGdldGxvYWRhdmcgKGRvdWJsZSBfX2xv YWRhdmdbXSwgaW50IF9fbmVsZW0pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RkbGliLWZsb2F0LmgiIDEgMyA0 Cj4gPj4+ICMgOTU1ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDIgMyA0Cj4gPj4+ICMgOTY3ICIv dXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDQxICJtYWNoaW5lLmMiIDIK PiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDEgMyA0Cj4gPj4+ICMgMzAgIi91c3Iv aW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L2JpdHMvc2lnc2V0LmgiIDEgMyA0Cj4gPj4+ICMgMTAyICIvdXNyL2luY2x1ZGUvYml0cy9zaWdz ZXQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgX19zaWdpc21lbWJlciAoY29uc3QgX19zaWdzZXRf dCAqLCBpbnQpOwo+ID4+PiBleHRlcm4gaW50IF9fc2lnYWRkc2V0IChfX3NpZ3NldF90ICosIGlu dCk7Cj4gPj4+IGV4dGVybiBpbnQgX19zaWdkZWxzZXQgKF9fc2lnc2V0X3QgKiwgaW50KTsKPiA+ Pj4gIyAzMyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIF9fc2lnX2F0b21pY190IHNpZ19h dG9taWNfdDsKPiA+Pj4KPiA+Pj4gIyA1NyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPiA+ Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zaWdudW0uaCIgMSAzIDQKPiA+Pj4gIyA1OCAiL3Vz ci9pbmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+ID4+PiAjIDc1ICIvdXNyL2luY2x1ZGUvc2lnbmFs LmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDEgMyA0Cj4gPj4+ICMgNzYg Ii91c3IvaW5jbHVkZS9zaWduYWwuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDEgMyA0Cj4gPj4+ICMgMjQgIi91 c3IvaW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2Jp dHMvd29yZHNpemUuaCIgMSAzIDQKPiA+Pj4gIyAyNSAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnaW5m by5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiB0eXBlZGVmIHVuaW9uIHNpZ3ZhbAo+ID4+PiAgIHsKPiA+Pj4gICAgIGludCBzaXZhbF9pbnQ7 Cj4gPj4+ICAgICB2b2lkICpzaXZhbF9wdHI7Cj4gPj4+ICAgfSBzaWd2YWxfdDsKPiA+Pj4gIyA1 OCAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnaW5mby5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBfX2Nsb2Nr X3QgX19zaWdjaGxkX2Nsb2NrX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc3Ry dWN0Cj4gPj4+ICAgewo+ID4+PiAgICAgaW50IHNpX3NpZ25vOwo+ID4+PiAgICAgaW50IHNpX2Vy cm5vOwo+ID4+Pgo+ID4+PiAgICAgaW50IHNpX2NvZGU7Cj4gPj4+Cj4gPj4+ICAgICB1bmlvbgo+ ID4+PiAgICAgICB7Cj4gPj4+ICBpbnQgX3BhZFsoKDEyOCAvIHNpemVvZiAoaW50KSkgLSAzKV07 Cj4gPj4+Cj4gPj4+Cj4gPj4+ICBzdHJ1Y3QKPiA+Pj4gICAgewo+ID4+PiAgICAgIF9fcGlkX3Qg c2lfcGlkOwo+ID4+PiAgICAgIF9fdWlkX3Qgc2lfdWlkOwo+ID4+PiAgICB9IF9raWxsOwo+ID4+ Pgo+ID4+Pgo+ID4+PiAgc3RydWN0Cj4gPj4+ICAgIHsKPiA+Pj4gICAgICBpbnQgc2lfdGlkOwo+ ID4+PiAgICAgIGludCBzaV9vdmVycnVuOwo+ID4+PiAgICAgIHNpZ3ZhbF90IHNpX3NpZ3ZhbDsK PiA+Pj4gICAgfSBfdGltZXI7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICBzdHJ1Y3QKPiA+Pj4gICAgewo+ ID4+PiAgICAgIF9fcGlkX3Qgc2lfcGlkOwo+ID4+PiAgICAgIF9fdWlkX3Qgc2lfdWlkOwo+ID4+ PiAgICAgIHNpZ3ZhbF90IHNpX3NpZ3ZhbDsKPiA+Pj4gICAgfSBfcnQ7Cj4gPj4+Cj4gPj4+Cj4g Pj4+ICBzdHJ1Y3QKPiA+Pj4gICAgewo+ID4+PiAgICAgIF9fcGlkX3Qgc2lfcGlkOwo+ID4+PiAg ICAgIF9fdWlkX3Qgc2lfdWlkOwo+ID4+PiAgICAgIGludCBzaV9zdGF0dXM7Cj4gPj4+ICAgICAg X19zaWdjaGxkX2Nsb2NrX3Qgc2lfdXRpbWU7Cj4gPj4+ICAgICAgX19zaWdjaGxkX2Nsb2NrX3Qg c2lfc3RpbWU7Cj4gPj4+ICAgIH0gX3NpZ2NobGQ7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICBzdHJ1Y3QK PiA+Pj4gICAgewo+ID4+PiAgICAgIHZvaWQgKnNpX2FkZHI7Cj4gPj4+ICAgICAgc2hvcnQgaW50 IHNpX2FkZHJfbHNiOwo+ID4+PiAgICAgIHN0cnVjdAo+ID4+PiAgICAgICAgewo+ID4+PiAgIHZv aWQgKl9sb3dlcjsKPiA+Pj4gICB2b2lkICpfdXBwZXI7Cj4gPj4+ICAgICAgICB9IHNpX2FkZHJf Ym5kOwo+ID4+PiAgICB9IF9zaWdmYXVsdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gIHN0cnVjdAo+ID4+ PiAgICB7Cj4gPj4+ICAgICAgbG9uZyBpbnQgc2lfYmFuZDsKPiA+Pj4gICAgICBpbnQgc2lfZmQ7 Cj4gPj4+ICAgIH0gX3NpZ3BvbGw7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICBzdHJ1Y3QKPiA+Pj4gICAg ewo+ID4+PiAgICAgIHZvaWQgKl9jYWxsX2FkZHI7Cj4gPj4+ICAgICAgaW50IF9zeXNjYWxsOwo+ ID4+PiAgICAgIHVuc2lnbmVkIGludCBfYXJjaDsKPiA+Pj4gICAgfSBfc2lnc3lzOwo+ID4+PiAg ICAgICB9IF9zaWZpZWxkczsKPiA+Pj4gICB9IHNpZ2luZm9fdCA7Cj4gPj4+ICMgMTYwICIvdXNy L2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDMgNAo+ID4+PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBT SV9BU1lOQ05MID0gLTYwLAo+ID4+Pgo+ID4+PiAgIFNJX1RLSUxMID0gLTYsCj4gPj4+Cj4gPj4+ ICAgU0lfU0lHSU8sCj4gPj4+Cj4gPj4+ICAgU0lfQVNZTkNJTywKPiA+Pj4KPiA+Pj4gICBTSV9N RVNHUSwKPiA+Pj4KPiA+Pj4gICBTSV9USU1FUiwKPiA+Pj4KPiA+Pj4gICBTSV9RVUVVRSwKPiA+ Pj4KPiA+Pj4gICBTSV9VU0VSLAo+ID4+Pgo+ID4+PiAgIFNJX0tFUk5FTCA9IDB4ODAKPiA+Pj4K PiA+Pj4gfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZW51bQo+ID4+PiB7Cj4gPj4+ ICAgSUxMX0lMTE9QQyA9IDEsCj4gPj4+Cj4gPj4+ICAgSUxMX0lMTE9QTiwKPiA+Pj4KPiA+Pj4g ICBJTExfSUxMQURSLAo+ID4+Pgo+ID4+PiAgIElMTF9JTExUUlAsCj4gPj4+Cj4gPj4+ICAgSUxM X1BSVk9QQywKPiA+Pj4KPiA+Pj4gICBJTExfUFJWUkVHLAo+ID4+Pgo+ID4+PiAgIElMTF9DT1BS T0MsCj4gPj4+Cj4gPj4+ICAgSUxMX0JBRFNUSwo+ID4+Pgo+ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ ID4+PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBGUEVfSU5URElWID0gMSwKPiA+Pj4KPiA+Pj4gICBG UEVfSU5UT1ZGLAo+ID4+Pgo+ID4+PiAgIEZQRV9GTFRESVYsCj4gPj4+Cj4gPj4+ICAgRlBFX0ZM VE9WRiwKPiA+Pj4KPiA+Pj4gICBGUEVfRkxUVU5ELAo+ID4+Pgo+ID4+PiAgIEZQRV9GTFRSRVMs Cj4gPj4+Cj4gPj4+ICAgRlBFX0ZMVElOViwKPiA+Pj4KPiA+Pj4gICBGUEVfRkxUU1VCCj4gPj4+ Cj4gPj4+IH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gewo+ID4+PiAgIFNFR1ZfTUFQ RVJSID0gMSwKPiA+Pj4KPiA+Pj4gICBTRUdWX0FDQ0VSUgo+ID4+Pgo+ID4+PiB9Owo+ID4+Pgo+ ID4+Pgo+ID4+PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBCVVNfQURSQUxOID0gMSwKPiA+Pj4KPiA+ Pj4gICBCVVNfQURSRVJSLAo+ID4+Pgo+ID4+PiAgIEJVU19PQkpFUlIsCj4gPj4+Cj4gPj4+ICAg QlVTX01DRUVSUl9BUiwKPiA+Pj4KPiA+Pj4gICBCVVNfTUNFRVJSX0FPCj4gPj4+Cj4gPj4+IH07 Cj4gPj4+ICMgMjY0ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDMgNAo+ID4+PiBlbnVt Cj4gPj4+IHsKPiA+Pj4gICBDTERfRVhJVEVEID0gMSwKPiA+Pj4KPiA+Pj4gICBDTERfS0lMTEVE LAo+ID4+Pgo+ID4+PiAgIENMRF9EVU1QRUQsCj4gPj4+Cj4gPj4+ICAgQ0xEX1RSQVBQRUQsCj4g Pj4+Cj4gPj4+ICAgQ0xEX1NUT1BQRUQsCj4gPj4+Cj4gPj4+ICAgQ0xEX0NPTlRJTlVFRAo+ID4+ Pgo+ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ID4+PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBQT0xMX0lO ID0gMSwKPiA+Pj4KPiA+Pj4gICBQT0xMX09VVCwKPiA+Pj4KPiA+Pj4gICBQT0xMX01TRywKPiA+ Pj4KPiA+Pj4gICBQT0xMX0VSUiwKPiA+Pj4KPiA+Pj4gICBQT0xMX1BSSSwKPiA+Pj4KPiA+Pj4g ICBQT0xMX0hVUAo+ID4+Pgo+ID4+PiB9Owo+ID4+PiAjIDMyMCAiL3Vzci9pbmNsdWRlL2JpdHMv c2lnaW5mby5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBzdHJ1Y3Qgc2lnZXZlbnQKPiA+Pj4gICB7Cj4g Pj4+ICAgICBzaWd2YWxfdCBzaWdldl92YWx1ZTsKPiA+Pj4gICAgIGludCBzaWdldl9zaWdubzsK PiA+Pj4gICAgIGludCBzaWdldl9ub3RpZnk7Cj4gPj4+Cj4gPj4+ICAgICB1bmlvbgo+ID4+PiAg ICAgICB7Cj4gPj4+ICBpbnQgX3BhZFsoKDY0IC8gc2l6ZW9mIChpbnQpKSAtIDMpXTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gIF9fcGlkX3QgX3RpZDsKPiA+Pj4KPiA+Pj4gIHN0cnVjdAo+ID4+ PiAgICB7Cj4gPj4+ICAgICAgdm9pZCAoKl9mdW5jdGlvbikgKHNpZ3ZhbF90KTsKPiA+Pj4gICAg ICBwdGhyZWFkX2F0dHJfdCAqX2F0dHJpYnV0ZTsKPiA+Pj4gICAgfSBfc2lnZXZfdGhyZWFkOwo+ ID4+PiAgICAgICB9IF9zaWdldl91bjsKPiA+Pj4gICB9IHNpZ2V2ZW50X3Q7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gewo+ID4+PiAgIFNJR0VW X1NJR05BTCA9IDAsCj4gPj4+Cj4gPj4+ICAgU0lHRVZfTk9ORSwKPiA+Pj4KPiA+Pj4gICBTSUdF Vl9USFJFQUQsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgU0lHRVZfVEhSRUFEX0lEID0gNAo+ID4+Pgo+ ID4+PiB9Owo+ID4+PiAjIDgxICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgdm9pZCAoKl9fc2lnaGFuZGxlcl90KSAoaW50 KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fc2lnaGFuZGxlcl90IF9f c3lzdl9zaWduYWwgKGludCBfX3NpZywgX19zaWdoYW5kbGVyX3QgX19oYW5kbGVyKQo+ID4+PiAg ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMTAw ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gX19z aWdoYW5kbGVyX3Qgc2lnbmFsIChpbnQgX19zaWcsIF9fc2lnaGFuZGxlcl90IF9faGFuZGxlcikK PiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ PiAjIDExNCAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyAxMjcgIi91 c3IvaW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQga2lsbCAoX19waWRfdCBf X3BpZCwgaW50IF9fc2lnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGtp bGxwZyAoX19waWRfdCBfX3BncnAsIGludCBfX3NpZykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCByYWlzZSAoaW50IF9fc2lnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gX19zaWdoYW5kbGVyX3Qg c3NpZ25hbCAoaW50IF9fc2lnLCBfX3NpZ2hhbmRsZXJfdCBfX2hhbmRsZXIpCj4gPj4+ICAgICAg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIGlu dCBnc2lnbmFsIChpbnQgX19zaWcpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIHBzaWduYWwg KGludCBfX3NpZywgY29uc3QgY2hhciAqX19zKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZv aWQgcHNpZ2luZm8gKGNvbnN0IHNpZ2luZm9fdCAqX19waW5mbywgY29uc3QgY2hhciAqX19zKTsK PiA+Pj4gIyAxODcgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQg c2lnYmxvY2sgKGludCBfX21hc2spIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRlZF9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgc2lnc2V0bWFzayAoaW50IF9fbWFzaykgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18pKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzaWdnZXRtYXNrICh2b2lkKSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0ZWRf XykpOwo+ID4+PiAjIDIwNyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPiA+Pj4gdHlwZWRl ZiBfX3NpZ2hhbmRsZXJfdCBzaWdfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBzaWdlbXB0eXNldCAoc2lnc2V0X3QgKl9fc2V0KSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo MSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzaWdmaWxsc2V0IChzaWdzZXRfdCAq X19zZXQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNp Z2FkZHNldCAoc2lnc2V0X3QgKl9fc2V0LCBpbnQgX19zaWdubykgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2lnZGVsc2V0IChzaWdzZXRfdCAqX19zZXQs IGludCBfX3NpZ25vKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGludCBzaWdpc21lbWJlciAoY29uc3Qgc2lnc2V0X3QgKl9fc2V0LCBpbnQgX19zaWdubykKPiA+ Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmli dXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4gIyAyNDMgIi91c3IvaW5jbHVkZS9zaWdu YWwuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnYWN0aW9uLmgiIDEgMyA0 Cj4gPj4+ICMgMjQgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ2FjdGlvbi5oIiAzIDQKPiA+Pj4gc3Ry dWN0IHNpZ2FjdGlvbgo+ID4+PiAgIHsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIHVuaW9uCj4gPj4+ ICAgICAgIHsKPiA+Pj4KPiA+Pj4gIF9fc2lnaGFuZGxlcl90IHNhX2hhbmRsZXI7Cj4gPj4+Cj4g Pj4+ICB2b2lkICgqc2Ffc2lnYWN0aW9uKSAoaW50LCBzaWdpbmZvX3QgKiwgdm9pZCAqKTsKPiA+ Pj4gICAgICAgfQo+ID4+PiAgICAgX19zaWdhY3Rpb25faGFuZGxlcjsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9fc2lnc2V0X3Qgc2FfbWFzazsK PiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIGludCBzYV9mbGFnczsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAg IHZvaWQgKCpzYV9yZXN0b3JlcikgKHZvaWQpOwo+ID4+PiAgIH07Cj4gPj4+ICMgMjQ0ICIvdXNy L2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2ln cHJvY21hc2sgKGludCBfX2hvdywgY29uc3Qgc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19zZXQsCj4g Pj4+ICAgIHNpZ3NldF90ICpfX3Jlc3RyaWN0IF9fb3NldCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBzaWdzdXNwZW5kIChjb25zdCBzaWdzZXRfdCAqX19zZXQpIF9fYXR0 cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCBzaWdhY3Rpb24gKGludCBfX3NpZywgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiAqX19yZXN0cmlj dCBfX2FjdCwKPiA+Pj4gICAgICAgICBzdHJ1Y3Qgc2lnYWN0aW9uICpfX3Jlc3RyaWN0IF9fb2Fj dCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBzaWdwZW5kaW5nIChzaWdzZXRfdCAqX19zZXQpIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f ICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g aW50IHNpZ3dhaXQgKGNvbnN0IHNpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2V0LCBpbnQgKl9fcmVz dHJpY3QgX19zaWcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAy KSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IHNpZ3dhaXRpbmZvIChjb25zdCBzaWdzZXRfdCAqX19yZXN0cmljdCBfX3NldCwKPiA+Pj4gICAg c2lnaW5mb190ICpfX3Jlc3RyaWN0IF9faW5mbykgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f ICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g aW50IHNpZ3RpbWVkd2FpdCAoY29uc3Qgc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19zZXQsCj4gPj4+ ICAgICBzaWdpbmZvX3QgKl9fcmVzdHJpY3QgX19pbmZvLAo+ID4+PiAgICAgY29uc3Qgc3RydWN0 IHRpbWVzcGVjICpfX3Jlc3RyaWN0IF9fdGltZW91dCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9f ICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQg c2lncXVldWUgKF9fcGlkX3QgX19waWQsIGludCBfX3NpZywgY29uc3QgdW5pb24gc2lndmFsIF9f dmFsKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7 Cj4gPj4+ICMgMzAxICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+ID4+PiBleHRlcm4gY29u c3QgY2hhciAqY29uc3QgX3N5c19zaWdsaXN0WzY1XTsKPiA+Pj4gZXh0ZXJuIGNvbnN0IGNoYXIg KmNvbnN0IHN5c19zaWdsaXN0WzY1XTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNy L2luY2x1ZGUvYml0cy9zaWdjb250ZXh0LmgiIDEgMyA0Cj4gPj4+ICMgMjkgIi91c3IvaW5jbHVk ZS9iaXRzL3NpZ2NvbnRleHQuaCIgMyA0Cj4gPj4+IHN0cnVjdCBfZnB4X3N3X2J5dGVzCj4gPj4+ IHsKPiA+Pj4gICBfX3VpbnQzMl90IG1hZ2ljMTsKPiA+Pj4gICBfX3VpbnQzMl90IGV4dGVuZGVk X3NpemU7Cj4gPj4+ICAgX191aW50NjRfdCB4c3RhdGVfYnY7Cj4gPj4+ICAgX191aW50MzJfdCB4 c3RhdGVfc2l6ZTsKPiA+Pj4gICBfX3VpbnQzMl90IHBhZGRpbmdbN107Cj4gPj4+IH07Cj4gPj4+ Cj4gPj4+IHN0cnVjdCBfZnByZWcKPiA+Pj4gewo+ID4+PiAgIHVuc2lnbmVkIHNob3J0IHNpZ25p ZmljYW5kWzRdOwo+ID4+PiAgIHVuc2lnbmVkIHNob3J0IGV4cG9uZW50Owo+ID4+PiB9Owo+ID4+ Pgo+ID4+PiBzdHJ1Y3QgX2ZweHJlZwo+ID4+PiB7Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgc2ln bmlmaWNhbmRbNF07Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgZXhwb25lbnQ7Cj4gPj4+ICAgdW5z aWduZWQgc2hvcnQgcGFkZGluZ1szXTsKPiA+Pj4gfTsKPiA+Pj4KPiA+Pj4gc3RydWN0IF94bW1y ZWcKPiA+Pj4gewo+ID4+PiAgIF9fdWludDMyX3QgZWxlbWVudFs0XTsKPiA+Pj4gfTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gc3RydWN0IF9mcHN0YXRlCj4gPj4+IHsKPiA+ Pj4KPiA+Pj4gICBfX3VpbnQzMl90IGN3Owo+ID4+PiAgIF9fdWludDMyX3Qgc3c7Cj4gPj4+ICAg X191aW50MzJfdCB0YWc7Cj4gPj4+ICAgX191aW50MzJfdCBpcG9mZjsKPiA+Pj4gICBfX3VpbnQz Ml90IGNzc2VsOwo+ID4+PiAgIF9fdWludDMyX3QgZGF0YW9mZjsKPiA+Pj4gICBfX3VpbnQzMl90 IGRhdGFzZWw7Cj4gPj4+ICAgc3RydWN0IF9mcHJlZyBfc3RbOF07Cj4gPj4+ICAgdW5zaWduZWQg c2hvcnQgc3RhdHVzOwo+ID4+PiAgIHVuc2lnbmVkIHNob3J0IG1hZ2ljOwo+ID4+Pgo+ID4+Pgo+ ID4+PiAgIF9fdWludDMyX3QgX2Z4c3JfZW52WzZdOwo+ID4+PiAgIF9fdWludDMyX3QgbXhjc3I7 Cj4gPj4+ICAgX191aW50MzJfdCByZXNlcnZlZDsKPiA+Pj4gICBzdHJ1Y3QgX2ZweHJlZyBfZnhz cl9zdFs4XTsKPiA+Pj4gICBzdHJ1Y3QgX3htbXJlZyBfeG1tWzhdOwo+ID4+PiAgIF9fdWludDMy X3QgcGFkZGluZ1s1Nl07Cj4gPj4+IH07Cj4gPj4+ICMgOTMgIi91c3IvaW5jbHVkZS9iaXRzL3Np Z2NvbnRleHQuaCIgMyA0Cj4gPj4+IHN0cnVjdCBzaWdjb250ZXh0Cj4gPj4+IHsKPiA+Pj4gICB1 bnNpZ25lZCBzaG9ydCBncywgX19nc2g7Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgZnMsIF9fZnNo Owo+ID4+PiAgIHVuc2lnbmVkIHNob3J0IGVzLCBfX2VzaDsKPiA+Pj4gICB1bnNpZ25lZCBzaG9y dCBkcywgX19kc2g7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlZGk7Cj4gPj4+ICAgdW5zaWduZWQg bG9uZyBlc2k7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlYnA7Cj4gPj4+ICAgdW5zaWduZWQgbG9u ZyBlc3A7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlYng7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBl ZHg7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlY3g7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlYXg7 Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyB0cmFwbm87Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlcnI7 Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlaXA7Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgY3MsIF9f Y3NoOwo+ID4+PiAgIHVuc2lnbmVkIGxvbmcgZWZsYWdzOwo+ID4+PiAgIHVuc2lnbmVkIGxvbmcg ZXNwX2F0X3NpZ25hbDsKPiA+Pj4gICB1bnNpZ25lZCBzaG9ydCBzcywgX19zc2g7Cj4gPj4+ICAg c3RydWN0IF9mcHN0YXRlICogZnBzdGF0ZTsKPiA+Pj4gICB1bnNpZ25lZCBsb25nIG9sZG1hc2s7 Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBjcjI7Cj4gPj4+IH07Cj4gPj4+ICMgMTc1ICIvdXNyL2lu Y2x1ZGUvYml0cy9zaWdjb250ZXh0LmgiIDMgNAo+ID4+PiBzdHJ1Y3QgX3hzYXZlX2hkcgo+ID4+ PiB7Cj4gPj4+ICAgX191aW50NjRfdCB4c3RhdGVfYnY7Cj4gPj4+ICAgX191aW50NjRfdCByZXNl cnZlZDFbMl07Cj4gPj4+ICAgX191aW50NjRfdCByZXNlcnZlZDJbNV07Cj4gPj4+IH07Cj4gPj4+ Cj4gPj4+IHN0cnVjdCBfeW1taF9zdGF0ZQo+ID4+PiB7Cj4gPj4+ICAgX191aW50MzJfdCB5bW1o X3NwYWNlWzY0XTsKPiA+Pj4gfTsKPiA+Pj4KPiA+Pj4gc3RydWN0IF94c3RhdGUKPiA+Pj4gewo+ ID4+PiAgIHN0cnVjdCBfZnBzdGF0ZSBmcHN0YXRlOwo+ID4+PiAgIHN0cnVjdCBfeHNhdmVfaGRy IHhzdGF0ZV9oZHI7Cj4gPj4+ICAgc3RydWN0IF95bW1oX3N0YXRlIHltbWg7Cj4gPj4+IH07Cj4g Pj4+ICMgMzA3ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgc2lncmV0dXJuIChzdHJ1Y3Qgc2lnY29udGV4dCAqX19zY3ApIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYu MS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMzE3ICIvdXNyL2luY2x1ZGUvc2ln bmFsLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2ln aW50ZXJydXB0IChpbnQgX19zaWcsIGludCBfX2ludGVycnVwdCkgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0 cy9zaWdzdGFjay5oIiAxIDMgNAo+ID4+PiAjIDI1ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdzdGFj ay5oIiAzIDQKPiA+Pj4gc3RydWN0IHNpZ3N0YWNrCj4gPj4+ICAgewo+ID4+PiAgICAgdm9pZCAq c3Nfc3A7Cj4gPj4+ICAgICBpbnQgc3Nfb25zdGFjazsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBTU19PTlNUQUNLID0gMSwKPiA+Pj4KPiA+ Pj4gICBTU19ESVNBQkxFCj4gPj4+Cj4gPj4+IH07Cj4gPj4+ICMgNDkgIi91c3IvaW5jbHVkZS9i aXRzL3NpZ3N0YWNrLmgiIDMgNAo+ID4+PiB0eXBlZGVmIHN0cnVjdCBzaWdhbHRzdGFjawo+ID4+ PiAgIHsKPiA+Pj4gICAgIHZvaWQgKnNzX3NwOwo+ID4+PiAgICAgaW50IHNzX2ZsYWdzOwo+ID4+ PiAgICAgc2l6ZV90IHNzX3NpemU7Cj4gPj4+ICAgfSBzdGFja190Owo+ID4+PiAjIDMyNCAiL3Vz ci9pbmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5j bHVkZS9zeXMvdWNvbnRleHQuaCIgMSAzIDQKPiA+Pj4gIyAyMiAiL3Vzci9pbmNsdWRlL3N5cy91 Y29udGV4dC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDEgMyA0Cj4g Pj4+ICMgMjMgIi91c3IvaW5jbHVkZS9zeXMvdWNvbnRleHQuaCIgMiAzIDQKPiA+Pj4gIyAxNDYg Ii91c3IvaW5jbHVkZS9zeXMvdWNvbnRleHQuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgaW50IGdyZWdf dDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBncmVnX3QgZ3Jl Z3NldF90WzE5XTsKPiA+Pj4gIyAyMDAgIi91c3IvaW5jbHVkZS9zeXMvdWNvbnRleHQuaCIgMyA0 Cj4gPj4+IHN0cnVjdCBfbGliY19mcHJlZwo+ID4+PiB7Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQg aW50IHNpZ25pZmljYW5kWzRdOwo+ID4+PiAgIHVuc2lnbmVkIHNob3J0IGludCBleHBvbmVudDsK PiA+Pj4gfTsKPiA+Pj4KPiA+Pj4gc3RydWN0IF9saWJjX2Zwc3RhdGUKPiA+Pj4gewo+ID4+PiAg IHVuc2lnbmVkIGxvbmcgaW50IGN3Owo+ID4+PiAgIHVuc2lnbmVkIGxvbmcgaW50IHN3Owo+ID4+ PiAgIHVuc2lnbmVkIGxvbmcgaW50IHRhZzsKPiA+Pj4gICB1bnNpZ25lZCBsb25nIGludCBpcG9m ZjsKPiA+Pj4gICB1bnNpZ25lZCBsb25nIGludCBjc3NlbDsKPiA+Pj4gICB1bnNpZ25lZCBsb25n IGludCBkYXRhb2ZmOwo+ID4+PiAgIHVuc2lnbmVkIGxvbmcgaW50IGRhdGFzZWw7Cj4gPj4+ICAg c3RydWN0IF9saWJjX2ZwcmVnIF9zdFs4XTsKPiA+Pj4gICB1bnNpZ25lZCBsb25nIGludCBzdGF0 dXM7Cj4gPj4+IH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc3RydWN0IF9saWJjX2Zwc3Rh dGUgKmZwcmVnc2V0X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+ICAg ewo+ID4+PiAgICAgZ3JlZ3NldF90IGdyZWdzOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgZnByZWdz ZXRfdCBmcHJlZ3M7Cj4gPj4+ICAgICB1bnNpZ25lZCBsb25nIGludCBvbGRtYXNrOwo+ID4+PiAg ICAgdW5zaWduZWQgbG9uZyBpbnQgY3IyOwo+ID4+PiAgIH0gbWNvbnRleHRfdDsKPiA+Pj4KPiA+ Pj4KPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QgdWNvbnRleHQKPiA+Pj4gICB7Cj4gPj4+ICAgICB1bnNp Z25lZCBsb25nIGludCB1Y19mbGFnczsKPiA+Pj4gICAgIHN0cnVjdCB1Y29udGV4dCAqdWNfbGlu azsKPiA+Pj4gICAgIHN0YWNrX3QgdWNfc3RhY2s7Cj4gPj4+ICAgICBtY29udGV4dF90IHVjX21j b250ZXh0Owo+ID4+PiAgICAgX19zaWdzZXRfdCB1Y19zaWdtYXNrOwo+ID4+PiAgICAgc3RydWN0 IF9saWJjX2Zwc3RhdGUgX19mcHJlZ3NfbWVtOwo+ID4+PiAgIH0gdWNvbnRleHRfdDsKPiA+Pj4g IyAzMjcgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzaWdzdGFjayAoc3RydWN0IHNpZ3N0YWNrICpfX3Nz LCBzdHJ1Y3Qgc2lnc3RhY2sgKl9fb3NzKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRlZF9fKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2lnYWx0c3RhY2sgKGNvbnN0IHN0cnVj dCBzaWdhbHRzdGFjayAqX19yZXN0cmljdCBfX3NzLAo+ID4+PiAgICBzdHJ1Y3Qgc2lnYWx0c3Rh Y2sgKl9fcmVzdHJpY3QgX19vc3MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSk7Cj4gPj4+ICMgMzYyICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+ID4+PiAjIDEg Ii91c3IvaW5jbHVkZS9iaXRzL3NpZ3RocmVhZC5oIiAxIDMgNAo+ID4+PiAjIDMwICIvdXNyL2lu Y2x1ZGUvYml0cy9zaWd0aHJlYWQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgcHRocmVhZF9zaWdt YXNrIChpbnQgX19ob3csCj4gPj4+ICAgICAgICBjb25zdCBfX3NpZ3NldF90ICpfX3Jlc3RyaWN0 IF9fbmV3bWFzaywKPiA+Pj4gICAgICAgIF9fc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19vbGRtYXNr KV9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgcHRocmVhZF9raWxsIChwdGhyZWFkX3QgX190aHJlYWRpZCwgaW50IF9f c2lnbm8pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMg MzYzICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgX19saWJjX2N1cnJlbnRfc2lncnRtaW4gKHZv aWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgX19saWJjX2N1cnJlbnRfc2lncnRtYXggKHZvaWQpIF9fYXR0cmlidXRlX18g KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ ICMgNDIgIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9lcnJuby5oIiAxIDMg NAo+ID4+PiAjIDMxICIvdXNyL2luY2x1ZGUvZXJybm8uaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZXJybm8uaCIgMSAzIDQKPiA+Pj4g IyAyNCAiL3Vzci9pbmNsdWRlL2JpdHMvZXJybm8uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNs dWRlL2xpbnV4L2Vycm5vLmgiIDEgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS9lcnJu by5oIiAxIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20tZ2VuZXJpYy9lcnJuby5oIiAx IDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20tZ2VuZXJp Yy9lcnJuby1iYXNlLmgiIDEgMyA0Cj4gPj4+ICMgNSAiL3Vzci9pbmNsdWRlL2FzbS1nZW5lcmlj L2Vycm5vLmgiIDIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS9lcnJuby5oIiAyIDMg NAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9saW51eC9lcnJuby5oIiAyIDMgNAo+ID4+PiAjIDI1 ICIvdXNyL2luY2x1ZGUvYml0cy9lcnJuby5oIiAyIDMgNAo+ID4+PiAjIDUwICIvdXNyL2luY2x1 ZGUvYml0cy9lcnJuby5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCAqX19lcnJub19sb2NhdGlvbiAo dm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0 ZV9fICgoX19jb25zdF9fKSk7Cj4gPj4+ICMgMzYgIi91c3IvaW5jbHVkZS9lcnJuby5oIiAyIDMg NAo+ID4+PiAjIDU4ICIvdXNyL2luY2x1ZGUvZXJybm8uaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgNDMg Im1hY2hpbmUuYyIgMgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9mY250bC5oIiAxIDMgNAo+ID4+ PiAjIDI4ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZmNudGwuaCIg MSAzIDQKPiA+Pj4gIyAzNSAiL3Vzci9pbmNsdWRlL2JpdHMvZmNudGwuaCIgMyA0Cj4gPj4+IHN0 cnVjdCBmbG9jawo+ID4+PiAgIHsKPiA+Pj4gICAgIHNob3J0IGludCBsX3R5cGU7Cj4gPj4+ICAg ICBzaG9ydCBpbnQgbF93aGVuY2U7Cj4gPj4+Cj4gPj4+ICAgICBfX29mZl90IGxfc3RhcnQ7Cj4g Pj4+ICAgICBfX29mZl90IGxfbGVuOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAg X19waWRfdCBsX3BpZDsKPiA+Pj4gICB9Owo+ID4+PiAjIDYxICIvdXNyL2luY2x1ZGUvYml0cy9m Y250bC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9mY250bC1saW51eC5oIiAx IDMgNAo+ID4+PiAjIDM0NSAiL3Vzci9pbmNsdWRlL2JpdHMvZmNudGwtbGludXguaCIgMyA0Cj4g Pj4+Cj4gPj4+ICMgNDE5ICIvdXNyL2luY2x1ZGUvYml0cy9mY250bC1saW51eC5oIiAzIDQKPiA+ Pj4KPiA+Pj4gIyA2MSAiL3Vzci9pbmNsdWRlL2JpdHMvZmNudGwuaCIgMiAzIDQKPiA+Pj4gIyAz NiAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDIgMyA0Cj4gPj4+ICMgNzYgIi91c3IvaW5jbHVkZS9m Y250bC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMgNAo+ID4+PiAj IDc3ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUv Yml0cy9zdGF0LmgiIDEgMyA0Cj4gPj4+ICMgNDYgIi91c3IvaW5jbHVkZS9iaXRzL3N0YXQuaCIg MyA0Cj4gPj4+IHN0cnVjdCBzdGF0Cj4gPj4+ICAgewo+ID4+PiAgICAgX19kZXZfdCBzdF9kZXY7 Cj4gPj4+Cj4gPj4+ICAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX19wYWQxOwo+ID4+Pgo+ID4+Pgo+ ID4+PiAgICAgX19pbm9fdCBzdF9pbm87Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAg ICBfX21vZGVfdCBzdF9tb2RlOwo+ID4+PiAgICAgX19ubGlua190IHN0X25saW5rOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX191aWRfdCBzdF91aWQ7Cj4gPj4+ICAgICBfX2dp ZF90IHN0X2dpZDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9fZGV2X3Qgc3RfcmRldjsK PiA+Pj4KPiA+Pj4gICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDI7Cj4gPj4+Cj4gPj4+Cj4g Pj4+ICAgICBfX29mZl90IHN0X3NpemU7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfX2Js a3NpemVfdCBzdF9ibGtzaXplOwo+ID4+Pgo+ID4+PiAgICAgX19ibGtjbnRfdCBzdF9ibG9ja3M7 Cj4gPj4+ICMgOTEgIi91c3IvaW5jbHVkZS9iaXRzL3N0YXQuaCIgMyA0Cj4gPj4+ICAgICBzdHJ1 Y3QgdGltZXNwZWMgc3RfYXRpbTsKPiA+Pj4gICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwo+ ID4+PiAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07Cj4gPj4+ICMgMTA5ICIvdXNyL2luY2x1 ZGUvYml0cy9zdGF0LmgiIDMgNAo+ID4+PiAgICAgdW5zaWduZWQgbG9uZyBpbnQgX19nbGliY19y ZXNlcnZlZDQ7Cj4gPj4+ICAgICB1bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jlc2VydmVkNTsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICB9Owo+ID4+PiAjIDc4ICIvdXNyL2luY2x1 ZGUvZmNudGwuaCIgMiAzIDQKPiA+Pj4gIyAxNjkgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQK PiA+Pj4gZXh0ZXJuIGludCBmY250bCAoaW50IF9fZmQsIGludCBfX2NtZCwgLi4uKTsKPiA+Pj4g IyAxNzkgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBvcGVuIChj b25zdCBjaGFyICpfX2ZpbGUsIGludCBfX29mbGFnLCAuLi4pIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSkpKTsKPiA+Pj4gIyAyMDMgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKPiA+ Pj4gZXh0ZXJuIGludCBvcGVuYXQgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX2ZpbGUsIGludCBf X29mbGFnLCAuLi4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkp Owo+ID4+PiAjIDIyNSAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50 IGNyZWF0IChjb25zdCBjaGFyICpfX2ZpbGUsIG1vZGVfdCBfX21vZGUpIF9fYXR0cmlidXRlX18g KChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4gIyAyNTQgIi91c3IvaW5jbHVkZS9mY250bC5oIiAz IDQKPiA+Pj4gZXh0ZXJuIGludCBsb2NrZiAoaW50IF9fZmQsIGludCBfX2NtZCwgb2ZmX3QgX19s ZW4pOwo+ID4+PiAjIDI3MSAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMgNAo+ID4+PiBleHRlcm4g aW50IHBvc2l4X2ZhZHZpc2UgKGludCBfX2ZkLCBvZmZfdCBfX29mZnNldCwgb2ZmX3QgX19sZW4s Cj4gPj4+ICAgICAgaW50IF9fYWR2aXNlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+PiAjIDI5MyAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMgNAo+ID4+PiBl eHRlcm4gaW50IHBvc2l4X2ZhbGxvY2F0ZSAoaW50IF9fZmQsIG9mZl90IF9fb2Zmc2V0LCBvZmZf dCBfX2xlbik7Cj4gPj4+ICMgMzE1ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4gPj4+Cj4g Pj4+ICMgNDQgIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAx IDMgNAo+ID4+PiAjIDI4ICIvdXNyL2luY2x1ZGUvY3R5cGUuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMg NDYgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKPiA+Pj4gZW51bQo+ID4+PiB7Cj4gPj4+ICAg X0lTdXBwZXIgPSAoKDApIDwgOCA/ICgoMSA8PCAoMCkpIDw8IDgpIDogKCgxIDw8ICgwKSkgPj4g OCkpLAo+ID4+PiAgIF9JU2xvd2VyID0gKCgxKSA8IDggPyAoKDEgPDwgKDEpKSA8PCA4KSA6ICgo MSA8PCAoMSkpID4+IDgpKSwKPiA+Pj4gICBfSVNhbHBoYSA9ICgoMikgPCA4ID8gKCgxIDw8ICgy KSkgPDwgOCkgOiAoKDEgPDwgKDIpKSA+PiA4KSksCj4gPj4+ICAgX0lTZGlnaXQgPSAoKDMpIDwg OCA/ICgoMSA8PCAoMykpIDw8IDgpIDogKCgxIDw8ICgzKSkgPj4gOCkpLAo+ID4+PiAgIF9JU3hk aWdpdCA9ICgoNCkgPCA4ID8gKCgxIDw8ICg0KSkgPDwgOCkgOiAoKDEgPDwgKDQpKSA+PiA4KSks Cj4gPj4+ICAgX0lTc3BhY2UgPSAoKDUpIDwgOCA/ICgoMSA8PCAoNSkpIDw8IDgpIDogKCgxIDw8 ICg1KSkgPj4gOCkpLAo+ID4+PiAgIF9JU3ByaW50ID0gKCg2KSA8IDggPyAoKDEgPDwgKDYpKSA8 PCA4KSA6ICgoMSA8PCAoNikpID4+IDgpKSwKPiA+Pj4gICBfSVNncmFwaCA9ICgoNykgPCA4ID8g KCgxIDw8ICg3KSkgPDwgOCkgOiAoKDEgPDwgKDcpKSA+PiA4KSksCj4gPj4+ICAgX0lTYmxhbmsg PSAoKDgpIDwgOCA/ICgoMSA8PCAoOCkpIDw8IDgpIDogKCgxIDw8ICg4KSkgPj4gOCkpLAo+ID4+ PiAgIF9JU2NudHJsID0gKCg5KSA8IDggPyAoKDEgPDwgKDkpKSA8PCA4KSA6ICgoMSA8PCAoOSkp ID4+IDgpKSwKPiA+Pj4gICBfSVNwdW5jdCA9ICgoMTApIDwgOCA/ICgoMSA8PCAoMTApKSA8PCA4 KSA6ICgoMSA8PCAoMTApKSA+PiA4KSksCj4gPj4+ICAgX0lTYWxudW0gPSAoKDExKSA8IDggPyAo KDEgPDwgKDExKSkgPDwgOCkgOiAoKDEgPDwgKDExKSkgPj4gOCkpCj4gPj4+IH07Cj4gPj4+ICMg NzkgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNvbnN0IHVuc2lnbmVk IHNob3J0IGludCAqKl9fY3R5cGVfYl9sb2MgKHZvaWQpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7 Cj4gPj4+IGV4dGVybiBjb25zdCBfX2ludDMyX3QgKipfX2N0eXBlX3RvbG93ZXJfbG9jICh2b2lk KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h dHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+PiBleHRlcm4gY29uc3QgX19pbnQzMl90ICoq X19jdHlwZV90b3VwcGVyX2xvYyAodm9pZCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPiA+Pj4g IyAxMDQgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBpc2FsbnVtIChpbnQpIF9fYXR0cmlidXRlX18g KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiBpbnQgaXNhbHBoYSAoaW50 KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4g aW50IGlzY250cmwgKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KTsKPiA+Pj4gZXh0ZXJuIGludCBpc2RpZ2l0IChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiBpbnQgaXNsb3dlciAoaW50KSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzZ3Jh cGggKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4g ZXh0ZXJuIGludCBpc3ByaW50IChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f bGVhZl9fKSk7Cj4gPj4+IGV4dGVybiBpbnQgaXNwdW5jdCAoaW50KSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzc3BhY2UgKGludCkg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIGlu dCBpc3VwcGVyIChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7 Cj4gPj4+IGV4dGVybiBpbnQgaXN4ZGlnaXQgKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB0b2xv d2VyIChpbnQgX19jKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHRvdXBwZXIgKGludCBfX2MpIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgaXNibGFuayAoaW50KSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiAj IDE1MCAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGlzYXNjaWkg KGludCBfX2MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgdG9hc2NpaSAoaW50IF9fYykgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGludCBfdG91cHBlciAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IF90b2xvd2VyIChpbnQpIF9fYXR0cmlidXRlX18g KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMjU3ICIvdXNyL2luY2x1ZGUvY3R5 cGUuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3hsb2NhbGUuaCIgMSAzIDQKPiA+Pj4g IyAyNyAiL3Vzci9pbmNsdWRlL3hsb2NhbGUuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0IF9f bG9jYWxlX3N0cnVjdAo+ID4+PiB7Cj4gPj4+Cj4gPj4+ICAgc3RydWN0IF9fbG9jYWxlX2RhdGEg Kl9fbG9jYWxlc1sxM107Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgY29uc3QgdW5zaWduZWQgc2hvcnQg aW50ICpfX2N0eXBlX2I7Cj4gPj4+ICAgY29uc3QgaW50ICpfX2N0eXBlX3RvbG93ZXI7Cj4gPj4+ ICAgY29uc3QgaW50ICpfX2N0eXBlX3RvdXBwZXI7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgY29uc3Qg Y2hhciAqX19uYW1lc1sxM107Cj4gPj4+IH0gKl9fbG9jYWxlX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+ IHR5cGVkZWYgX19sb2NhbGVfdCBsb2NhbGVfdDsKPiA+Pj4gIyAyNTggIi91c3IvaW5jbHVkZS9j dHlwZS5oIiAyIDMgNAo+ID4+PiAjIDI3MSAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDMgNAo+ID4+ PiBleHRlcm4gaW50IGlzYWxudW1fbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzYWxwaGFfbCAoaW50 LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ ID4+PiBleHRlcm4gaW50IGlzY250cmxfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzZGlnaXRfbCAo aW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp Owo+ID4+PiBleHRlcm4gaW50IGlzbG93ZXJfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzZ3JhcGhf bCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpOwo+ID4+PiBleHRlcm4gaW50IGlzcHJpbnRfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzcHVu Y3RfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzc3BhY2VfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlz dXBwZXJfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzeGRpZ2l0X2wgKGludCwgX19sb2NhbGVfdCkg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGludCBpc2JsYW5rX2wgKGludCwgX19sb2NhbGVfdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBf X3RvbG93ZXJfbCAoaW50IF9fYywgX19sb2NhbGVfdCBfX2wpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiBpbnQgdG9sb3dlcl9sIChpbnQgX19j LCBfX2xvY2FsZV90IF9fbCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBfX3RvdXBwZXJfbCAoaW50IF9fYywgX19s b2NhbGVfdCBfX2wpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+IGV4dGVybiBpbnQgdG91cHBlcl9sIChpbnQgX19jLCBfX2xvY2FsZV90IF9fbCkgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyAzNDcgIi91c3IvaW5j bHVkZS9jdHlwZS5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyA0NSAibWFjaGluZS5jIiAyCj4gPj4+ICMg MSAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAxIDMgNAo+ID4+PiAjIDI3ICIvdXNyL2luY2x1ZGUv c3RyaW5nLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91 c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMg NAo+ID4+PiAjIDMzICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lk ICptZW1jcHkgKHZvaWQgKl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCB2b2lkICpfX3Jlc3RyaWN0 IF9fc3JjLAo+ID4+PiAgICAgICAgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkICptZW1tb3ZlICh2b2lkICpfX2Rlc3QsIGNvbnN0 IHZvaWQgKl9fc3JjLCBzaXplX3QgX19uKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkp Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAq bWVtY2NweSAodm9pZCAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IHZvaWQgKl9fcmVzdHJpY3Qg X19zcmMsCj4gPj4+ICAgICAgICAgaW50IF9fYywgc2l6ZV90IF9fbikKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIHZvaWQgKm1lbXNldCAodm9pZCAqX19zLCBpbnQgX19jLCBzaXplX3QgX19uKSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBtZW1jbXAgKGNvbnN0IHZv aWQgKl9fczEsIGNvbnN0IHZvaWQgKl9fczIsIHNpemVfdCBfX24pCj4gPj4+ICAgICAgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJl X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+ICMgOTIgIi91 c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+IGV4dGVybiB2b2lkICptZW1jaHIgKGNvbnN0 IHZvaWQgKl9fcywgaW50IF9fYywgc2l6ZV90IF9fbikKPiA+Pj4gICAgICAgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBf X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMTIz ICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hh ciAqc3RyY3B5IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgY29uc3QgY2hhciAqX19yZXN0cmlj dCBfX3NyYykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGNoYXIgKnN0cm5jcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAo+ID4+PiAgICAgICAg IGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX24pCj4gPj4+ICAgICAgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19u b25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpzdHJjYXQg KGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQo+ ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAq c3RybmNhdCAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg X19zcmMsCj4gPj4+ICAgICAgICAgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc3RyY21wIChjb25zdCBjaGFyICpfX3MxLCBjb25z dCBjaGFyICpfX3MyKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u bnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHN0cm5jbXAgKGNvbnN0IGNo YXIgKl9fczEsIGNvbnN0IGNoYXIgKl9fczIsIHNpemVfdCBfX24pCj4gPj4+ICAgICAgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJl X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgc3RyY29sbCAoY29uc3QgY2hhciAqX19zMSwgY29uc3QgY2hhciAqX19z MikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f YXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwg MikpKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIHNpemVfdCBzdHJ4ZnJtIChjaGFyICpfX3Jlc3RyaWN0 IF9fZGVzdCwKPiA+Pj4gICAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywgc2l6 ZV90IF9fbikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiA+Pj4KPiA+Pj4gIyAxNjIg Ii91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgc3RyY29sbF9sIChj b25zdCBjaGFyICpfX3MxLCBjb25zdCBjaGFyICpfX3MyLCBfX2xvY2FsZV90IF9fbCkKPiA+Pj4g ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl X18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMiwgMykpKTsK PiA+Pj4KPiA+Pj4gZXh0ZXJuIHNpemVfdCBzdHJ4ZnJtX2wgKGNoYXIgKl9fZGVzdCwgY29uc3Qg Y2hhciAqX19zcmMsIHNpemVfdCBfX24sCj4gPj4+ICAgICBfX2xvY2FsZV90IF9fbCkgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u dWxsX18gKDIsIDQpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFy ICpzdHJkdXAgKGNvbnN0IGNoYXIgKl9fcykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgX19hdHRy aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqc3RybmR1cCAoY29uc3QgY2hhciAqX19zdHJpbmcs IHNpemVfdCBfX24pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSkpKTsKPiA+Pj4gIyAyMDYgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4g Pj4+Cj4gPj4+ICMgMjMxICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+ID4+PiBleHRlcm4g Y2hhciAqc3RyY2hyIChjb25zdCBjaGFyICpfX3MsIGludCBfX2MpCj4gPj4+ICAgICAgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJl X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ICMgMjU4ICIvdXNy L2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+ID4+PiBleHRlcm4gY2hhciAqc3RycmNociAoY29uc3Qg Y2hhciAqX19zLCBpbnQgX19jKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDI3NyAiL3Vzci9pbmNsdWRl L3N0cmluZy5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHNpemVfdCBzdHJj c3BuIChjb25zdCBjaGFyICpfX3MsIGNvbnN0IGNoYXIgKl9fcmVqZWN0KQo+ID4+PiAgICAgIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f cHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gc2l6ZV90IHN0cnNwbiAoY29uc3QgY2hhciAqX19zLCBjb25zdCBjaGFy ICpfX2FjY2VwdCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSwgMikpKTsKPiA+Pj4gIyAzMTAgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4g Pj4+IGV4dGVybiBjaGFyICpzdHJwYnJrIChjb25zdCBjaGFyICpfX3MsIGNvbnN0IGNoYXIgKl9f YWNjZXB0KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f ICgxLCAyKSkpOwo+ID4+PiAjIDMzNyAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPiA+Pj4g ZXh0ZXJuIGNoYXIgKnN0cnN0ciAoY29uc3QgY2hhciAqX19oYXlzdGFjaywgY29uc3QgY2hhciAq X19uZWVkbGUpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs X18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpz dHJ0b2sgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVs aW0pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBjaGFyICpfX3N0cnRva19yIChjaGFyICpfX3Jlc3RyaWN0IF9fcywKPiA+ Pj4gICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19kZWxpbSwKPiA+Pj4gICAgIGNoYXIgKipf X3Jlc3RyaWN0IF9fc2F2ZV9wdHIpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDMpKSk7Cj4g Pj4+Cj4gPj4+IGV4dGVybiBjaGFyICpzdHJ0b2tfciAoY2hhciAqX19yZXN0cmljdCBfX3MsIGNv bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19kZWxpbSwKPiA+Pj4gICAgICAgICAgY2hhciAqKl9fcmVz dHJpY3QgX19zYXZlX3B0cikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsKPiA+Pj4g IyAzOTIgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVy biBzaXplX3Qgc3RybGVuIChjb25zdCBjaGFyICpfX3MpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBf X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBzaXplX3Qgc3RybmxlbiAoY29uc3QgY2hhciAqX19zdHJpbmcs IHNpemVfdCBfX21heGxlbikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChf X25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGNoYXIgKnN0cmVycm9yIChpbnQgX19lcnJudW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+ICMgNDIyICIvdXNyL2luY2x1ZGUvc3RyaW5n LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHN0cmVycm9yX3IgKGludCBfX2Vycm51bSwgY2hhciAq X19idWYsIHNpemVfdCBfX2J1ZmxlbikgX19hc21fXyAoIiIgIl9feHBnX3N0cmVycm9yX3IiKSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpCj4gPj4+Cj4gPj4+ICAgICAg ICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiA+ Pj4gIyA0NDAgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+IGV4dGVybiBjaGFyICpz dHJlcnJvcl9sIChpbnQgX19lcnJudW0sIF9fbG9jYWxlX3QgX19sKSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gdm9pZCBfX2J6ZXJvICh2b2lkICpfX3MsIHNpemVfdCBfX24pIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs bF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBiY29weSAoY29u c3Qgdm9pZCAqX19zcmMsIHZvaWQgKl9fZGVzdCwgc2l6ZV90IF9fbikKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgYnplcm8gKHZv aWQgKl9fcywgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgYmNtcCAoY29uc3Qgdm9pZCAqX19zMSwgY29uc3Qgdm9pZCAqX19zMiwgc2l6 ZV90IF9fbikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf XyAoMSwgMikpKTsKPiA+Pj4gIyA0ODQgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+ IGV4dGVybiBjaGFyICppbmRleCAoY29uc3QgY2hhciAqX19zLCBpbnQgX19jKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+PiAjIDUx MiAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKnJpbmRleCAo Y29uc3QgY2hhciAqX19zLCBpbnQgX19jKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gaW50IGZmcyAoaW50IF9faSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gPj4+ICMgNTI5ICIvdXNyL2lu Y2x1ZGUvc3RyaW5nLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHN0cmNhc2VjbXAgKGNvbnN0IGNo YXIgKl9fczEsIGNvbnN0IGNoYXIgKl9fczIpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJp YnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBp bnQgc3RybmNhc2VjbXAgKGNvbnN0IGNoYXIgKl9fczEsIGNvbnN0IGNoYXIgKl9fczIsIHNpemVf dCBfX24pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g KDEsIDIpKSk7Cj4gPj4+ICMgNTUyICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+ID4+PiBl eHRlcm4gY2hhciAqc3Ryc2VwIChjaGFyICoqX19yZXN0cmljdCBfX3N0cmluZ3AsCj4gPj4+ICAg ICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVsaW0pCj4gPj4+ICAgICAgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs X18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpz dHJzaWduYWwgKGludCBfX3NpZykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKl9fc3RwY3B5IChjaGFyICpfX3Jl c3RyaWN0IF9fZGVzdCwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKPiA+Pj4gICAgICBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf X25vbm51bGxfXyAoMSwgMikpKTsKPiA+Pj4gZXh0ZXJuIGNoYXIgKnN0cGNweSAoY2hhciAqX19y ZXN0cmljdCBfX2Rlc3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMpCj4gPj4+ICAgICAg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo X19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFy ICpfX3N0cG5jcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAo+ID4+PiAgICBjb25zdCBjaGFy ICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18g KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgx LCAyKSkpOwo+ID4+PiBleHRlcm4gY2hhciAqc3RwbmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rl c3QsCj4gPj4+ICAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9f bikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+Pj4gIyA2NTggIi91c3IvaW5j bHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgNDYgIm1hY2hpbmUuYyIgMgo+ID4+PiAj IDEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDEgMyA0Cj4gPj4+ICMgMjkgIi91c3IvaW5jbHVkZS90 aW1lLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRl L3N0ZGRlZi5oIiAxIDMgNAo+ID4+PiAjIDM4ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAyIDMgNAo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3RpbWUuaCIgMSAz IDQKPiA+Pj4gIyA0MiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMiAzIDQKPiA+Pj4gIyAxMzEgIi91 c3IvaW5jbHVkZS90aW1lLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3QgdG0KPiA+Pj4g ewo+ID4+PiAgIGludCB0bV9zZWM7Cj4gPj4+ICAgaW50IHRtX21pbjsKPiA+Pj4gICBpbnQgdG1f aG91cjsKPiA+Pj4gICBpbnQgdG1fbWRheTsKPiA+Pj4gICBpbnQgdG1fbW9uOwo+ID4+PiAgIGlu dCB0bV95ZWFyOwo+ID4+PiAgIGludCB0bV93ZGF5Owo+ID4+PiAgIGludCB0bV95ZGF5Owo+ID4+ PiAgIGludCB0bV9pc2RzdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICBsb25nIGludCB0bV9nbXRvZmY7 Cj4gPj4+ICAgY29uc3QgY2hhciAqdG1fem9uZTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gc3RydWN0IGl0aW1lcnNwZWMKPiA+Pj4gICB7Cj4gPj4+ICAgICBzdHJ1Y3QgdGltZXNwZWMg aXRfaW50ZXJ2YWw7Cj4gPj4+ICAgICBzdHJ1Y3QgdGltZXNwZWMgaXRfdmFsdWU7Cj4gPj4+ICAg fTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gc3RydWN0IHNpZ2V2ZW50Owo+ID4+PiAjIDE4NiAiL3Vzci9p bmNsdWRlL3RpbWUuaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjbG9ja190 IGNsb2NrICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdGltZV90IHRpbWUgKHRpbWVfdCAqX190aW1lcikgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGRvdWJsZSBkaWZmdGltZSAodGltZV90IF9fdGltZTEsIHRpbWVfdCBfX3RpbWUwKQo+ ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy aWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdGltZV90IG1r dGltZSAoc3RydWN0IHRtICpfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc2l6ZV90 IHN0cmZ0aW1lIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4c2l6ZSwKPiA+Pj4g ICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKPiA+Pj4gICAgY29uc3Qgc3RydWN0 IHRtICpfX3Jlc3RyaWN0IF9fdHApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSk7Cj4gPj4+Cj4gPj4+ICMgMjIzICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4g ZXh0ZXJuIHNpemVfdCBzdHJmdGltZV9sIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9f bWF4c2l6ZSwKPiA+Pj4gICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAo+ID4+ PiAgICAgIGNvbnN0IHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwLAo+ID4+PiAgICAgIF9fbG9j YWxlX3QgX19sb2MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+ICMgMjM2ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIHN0cnVjdCB0bSAqZ210aW1lIChjb25zdCB0aW1lX3QgKl9fdGltZXIpIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBzdHJ1Y3QgdG0gKmxvY2FsdGltZSAoY29uc3QgdGltZV90ICpfX3RpbWVyKSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0IHRtICpnbXRpbWVfciAoY29uc3QgdGlt ZV90ICpfX3Jlc3RyaWN0IF9fdGltZXIsCj4gPj4+ICAgICAgICBzdHJ1Y3QgdG0gKl9fcmVzdHJp Y3QgX190cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lX3IgKGNvbnN0IHRp bWVfdCAqX19yZXN0cmljdCBfX3RpbWVyLAo+ID4+PiAgICAgICAgICAgc3RydWN0IHRtICpfX3Jl c3RyaWN0IF9fdHApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICphc2N0aW1lIChj b25zdCBzdHJ1Y3QgdG0gKl9fdHApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpjdGltZSAoY29uc3QgdGltZV90 ICpfX3RpbWVyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAq YXNjdGltZV9yIChjb25zdCBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3QgX190cCwKPiA+Pj4gICAgY2hh ciAqX19yZXN0cmljdCBfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKmN0aW1lX3IgKGNvbnN0IHRpbWVf dCAqX19yZXN0cmljdCBfX3RpbWVyLAo+ID4+PiAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19i dWYpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpfX3R6bmFtZVsyXTsKPiA+Pj4gZXh0ZXJu IGludCBfX2RheWxpZ2h0Owo+ID4+PiBleHRlcm4gbG9uZyBpbnQgX190aW1lem9uZTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKnR6bmFtZVsyXTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgdHpzZXQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBp bnQgZGF5bGlnaHQ7Cj4gPj4+IGV4dGVybiBsb25nIGludCB0aW1lem9uZTsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzdGltZSAoY29uc3QgdGltZV90ICpf X3doZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMg MzE5ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4gZXh0ZXJuIHRpbWVfdCB0aW1lZ20g KHN0cnVjdCB0bSAqX190cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHRpbWVfdCB0aW1lbG9jYWwgKHN0cnVjdCB0bSAq X190cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIGludCBkeXNpemUgKGludCBfX3llYXIpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+ PiAjIDMzNCAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgbmFub3Ns ZWVwIChjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVxdWVzdGVkX3RpbWUsCj4gPj4+ICAgICAg ICAgc3RydWN0IHRpbWVzcGVjICpfX3JlbWFpbmluZyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgY2xvY2tfZ2V0cmVzIChjbG9ja2lkX3QgX19jbG9ja19pZCwgc3RydWN0IHRp bWVzcGVjICpfX3JlcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBjbG9ja19nZXR0aW1lIChjbG9ja2lkX3QgX19j bG9ja19pZCwgc3RydWN0IHRpbWVzcGVjICpfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGNsb2NrX3NldHRp bWUgKGNsb2NraWRfdCBfX2Nsb2NrX2lkLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fdHApCj4g Pj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBjbG9ja19uYW5v c2xlZXAgKGNsb2NraWRfdCBfX2Nsb2NrX2lkLCBpbnQgX19mbGFncywKPiA+Pj4gICAgICAgIGNv bnN0IHN0cnVjdCB0aW1lc3BlYyAqX19yZXEsCj4gPj4+ICAgICAgICBzdHJ1Y3QgdGltZXNwZWMg Kl9fcmVtKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBjbG9ja19nZXRjcHVjbG9ja2lk IChwaWRfdCBfX3BpZCwgY2xvY2tpZF90ICpfX2Nsb2NrX2lkKSBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gaW50IHRpbWVyX2NyZWF0ZSAoY2xvY2tpZF90IF9fY2xvY2tfaWQsCj4gPj4+ICAgICBzdHJ1 Y3Qgc2lnZXZlbnQgKl9fcmVzdHJpY3QgX19ldnAsCj4gPj4+ICAgICB0aW1lcl90ICpfX3Jlc3Ry aWN0IF9fdGltZXJpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB0aW1lcl9kZWxldGUgKHRpbWVyX3QgX190aW1l cmlkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gaW50IHRpbWVyX3NldHRpbWUgKHRpbWVyX3QgX190aW1lcmlkLCBpbnQg X19mbGFncywKPiA+Pj4gICAgICBjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYyAqX19yZXN0cmljdCBf X3ZhbHVlLAo+ID4+PiAgICAgIHN0cnVjdCBpdGltZXJzcGVjICpfX3Jlc3RyaWN0IF9fb3ZhbHVl KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gaW50IHRpbWVyX2dldHRpbWUgKHRpbWVyX3QgX190aW1lcmlkLCBzdHJ1Y3Qg aXRpbWVyc3BlYyAqX192YWx1ZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHRpbWVyX2dldG92 ZXJydW4gKHRpbWVyX3QgX190aW1lcmlkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IHRpbWVzcGVjX2dldCAoc3RydWN0IHRpbWVzcGVjICpfX3RzLCBpbnQgX19iYXNlKQo+ID4+PiAg ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+PiAjIDQzMCAiL3Vzci9pbmNsdWRlL3RpbWUuaCIg MyA0Cj4gPj4+Cj4gPj4+ICMgNDcgIm1hY2hpbmUuYyIgMgo+ID4+Pgo+ID4+PiAjIDEgIi91c3Iv aW5jbHVkZS9zeXMvc3RhdC5oIiAxIDMgNAo+ID4+PiAjIDEwMiAiL3Vzci9pbmNsdWRlL3N5cy9z dGF0LmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3N0YXQu aCIgMSAzIDQKPiA+Pj4gIyAxMDUgIi91c3IvaW5jbHVkZS9zeXMvc3RhdC5oIiAyIDMgNAo+ID4+ PiAjIDIwOCAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHN0 YXQgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlLAo+ID4+PiAgICBzdHJ1Y3Qgc3RhdCAq X19yZXN0cmljdCBfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBpbnQgZnN0YXQgKGludCBfX2ZkLCBzdHJ1Y3Qgc3RhdCAqX19idWYpIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f bm9ubnVsbF9fICgyKSkpOwo+ID4+PiAjIDIzNyAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMg NAo+ID4+PiBleHRlcm4gaW50IGZzdGF0YXQgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX3Jlc3Ry aWN0IF9fZmlsZSwKPiA+Pj4gICAgICAgc3RydWN0IHN0YXQgKl9fcmVzdHJpY3QgX19idWYsIGlu dCBfX2ZsYWcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDMpKSk7Cj4gPj4+ICMgMjYyICIv dXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgbHN0YXQgKGNvbnN0 IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlLAo+ID4+PiAgICAgc3RydWN0IHN0YXQgKl9fcmVzdHJp Y3QgX19idWYpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+PiAjIDI4MyAiL3Vzci9pbmNsdWRl L3N5cy9zdGF0LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGNobW9kIChjb25zdCBjaGFyICpfX2Zp bGUsIF9fbW9kZV90IF9fbW9kZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBsY2htb2QgKGNvbnN0IGNo YXIgKl9fZmlsZSwgX19tb2RlX3QgX19tb2RlKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkp Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZjaG1vZCAoaW50IF9f ZmQsIF9fbW9kZV90IF9fbW9kZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBmY2ht b2RhdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fZmlsZSwgX19tb2RlX3QgX19tb2RlLAo+ID4+ PiAgICAgICAgaW50IF9fZmxhZykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKSA7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX21vZGVfdCB1bWFz ayAoX19tb2RlX3QgX19tYXNrKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpOwo+ID4+PiAjIDMyMCAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAo+ID4+PiBleHRl cm4gaW50IG1rZGlyIChjb25zdCBjaGFyICpfX3BhdGgsIF9fbW9kZV90IF9fbW9kZSkKPiA+Pj4g ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl X18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBta2RpcmF0IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19wYXRoLCBfX21v ZGVfdCBfX21vZGUpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbWtub2QgKGNvbnN0IGNoYXIg Kl9fcGF0aCwgX19tb2RlX3QgX19tb2RlLCBfX2Rldl90IF9fZGV2KQo+ID4+PiAgICAgIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u bnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g aW50IG1rbm9kYXQgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX3BhdGgsIF9fbW9kZV90IF9fbW9k ZSwKPiA+Pj4gICAgICAgX19kZXZfdCBfX2RldikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbWtmaWZvIChjb25zdCBjaGFy ICpfX3BhdGgsIF9fbW9kZV90IF9fbW9kZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBta2ZpZm9hdCAo aW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcGF0aCwgX19tb2RlX3QgX19tb2RlKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgyKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gaW50IHV0aW1lbnNhdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcGF0aCwKPiA+Pj4g ICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgX190aW1lc1syXSwKPiA+Pj4gICAgICAgICBp bnQgX19mbGFncykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBmdXRpbWVucyAoaW50IF9fZmQsIGNvbnN0IHN0cnVj dCB0aW1lc3BlYyBfX3RpbWVzWzJdKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+PiAjIDM5OCAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAo+ID4+PiBl eHRlcm4gaW50IF9fZnhzdGF0IChpbnQgX192ZXIsIGludCBfX2ZpbGRlcywgc3RydWN0IHN0YXQg Kl9fc3RhdF9idWYpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMpKSk7Cj4gPj4+IGV4dGVybiBp bnQgX194c3RhdCAoaW50IF9fdmVyLCBjb25zdCBjaGFyICpfX2ZpbGVuYW1lLAo+ID4+PiAgICAg ICBzdHJ1Y3Qgc3RhdCAqX19zdGF0X2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDMpKSk7Cj4gPj4+IGV4 dGVybiBpbnQgX19seHN0YXQgKGludCBfX3ZlciwgY29uc3QgY2hhciAqX19maWxlbmFtZSwKPiA+ Pj4gICAgICAgIHN0cnVjdCBzdGF0ICpfX3N0YXRfYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsK PiA+Pj4gZXh0ZXJuIGludCBfX2Z4c3RhdGF0IChpbnQgX192ZXIsIGludCBfX2ZpbGRlcywgY29u c3QgY2hhciAqX19maWxlbmFtZSwKPiA+Pj4gICAgICAgICAgc3RydWN0IHN0YXQgKl9fc3RhdF9i dWYsIGludCBfX2ZsYWcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQpKSk7Cj4gPj4+ICMg NDQxICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgX194bWtu b2QgKGludCBfX3ZlciwgY29uc3QgY2hhciAqX19wYXRoLCBfX21vZGVfdCBfX21vZGUsCj4gPj4+ ICAgICAgICBfX2Rldl90ICpfX2RldikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDQpKSk7Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgX194bWtub2RhdCAoaW50IF9fdmVyLCBpbnQgX19mZCwgY29uc3QgY2hhciAq X19wYXRoLAo+ID4+PiAgICAgICAgICBfX21vZGVfdCBfX21vZGUsIF9fZGV2X3QgKl9fZGV2KQo+ ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA1KSkpOwo+ID4+PiAjIDUzMyAiL3Vzci9pbmNsdWRl L3N5cy9zdGF0LmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDQ5ICJtYWNoaW5lLmMiIDIKPiA+Pj4KPiA+ Pj4gIyAxICJncF9jb25maWcuaCIgMQo+ID4+PiAjIDMyNyAiZ3BfY29uZmlnLmgiCj4gPj4+ICMg MSAiYXJjaF9kZXAuaCIgMQo+ID4+PiAjIDMyOCAiZ3BfY29uZmlnLmgiIDIKPiA+Pj4gIyAxICJw bF9sb25nLmgiIDEKPiA+Pj4gIyA0MSAicGxfbG9uZy5oIgo+ID4+PiAjIDEgIi91c3IvbGliL2dj Yy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGludC5oIiAxIDMgNAo+ID4+PiAj IDkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGludC5o IiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3RkaW50LmgiIDEgMyA0Cj4gPj4+ICMgMjYg Ii91c3IvaW5jbHVkZS9zdGRpbnQuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMv d2NoYXIuaCIgMSAzIDQKPiA+Pj4gIyAyNyAiL3Vzci9pbmNsdWRlL3N0ZGludC5oIiAyIDMgNAo+ ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3dvcmRzaXplLmgiIDEgMyA0Cj4gPj4+ICMgMjgg Ii91c3IvaW5jbHVkZS9zdGRpbnQuaCIgMiAzIDQKPiA+Pj4gIyA0OCAiL3Vzci9pbmNsdWRlL3N0 ZGludC5oIiAzIDQKPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVpbnQ4X3Q7Cj4gPj4+IHR5 cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IHVpbnQxNl90Owo+ID4+Pgo+ID4+PiB0eXBlZGVmIHVu c2lnbmVkIGludCB1aW50MzJfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g X19leHRlbnNpb25fXwo+ID4+PiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWludDY0 X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc2ln bmVkIGNoYXIgaW50X2xlYXN0OF90Owo+ID4+PiB0eXBlZGVmIHNob3J0IGludCBpbnRfbGVhc3Qx Nl90Owo+ID4+PiB0eXBlZGVmIGludCBpbnRfbGVhc3QzMl90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiBfX2V4dGVuc2lvbl9fCj4gPj4+IHR5cGVkZWYgbG9uZyBsb25nIGludCBpbnRfbGVhc3Q2 NF90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWludF9s ZWFzdDhfdDsKPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgdWludF9sZWFzdDE2X3Q7 Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnRfbGVhc3QzMl90Owo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fCj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n IGludCB1aW50X2xlYXN0NjRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gdHlwZWRlZiBzaWduZWQgY2hhciBpbnRfZmFzdDhfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBpbnQgaW50X2Zhc3QxNl90Owo+ID4+PiB0eXBlZGVm IGludCBpbnRfZmFzdDMyX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18KPiA+Pj4gdHlwZWRlZiBsb25n IGxvbmcgaW50IGludF9mYXN0NjRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1 bnNpZ25lZCBjaGFyIHVpbnRfZmFzdDhfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludF9mYXN0MTZfdDsKPiA+Pj4gdHlwZWRlZiB1 bnNpZ25lZCBpbnQgdWludF9mYXN0MzJfdDsKPiA+Pj4gX19leHRlbnNpb25fXwo+ID4+PiB0eXBl ZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWludF9mYXN0NjRfdDsKPiA+Pj4gIyAxMjUgIi91 c3IvaW5jbHVkZS9zdGRpbnQuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgaW50IGludHB0cl90Owo+ID4+ Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50cHRyX3Q7Cj4gPj4+ICMgMTM3 ICIvdXNyL2luY2x1ZGUvc3RkaW50LmgiIDMgNAo+ID4+PiBfX2V4dGVuc2lvbl9fCj4gPj4+IHR5 cGVkZWYgbG9uZyBsb25nIGludCBpbnRtYXhfdDsKPiA+Pj4gX19leHRlbnNpb25fXwo+ID4+PiB0 eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWludG1heF90Owo+ID4+PiAjIDEwICIvdXNy L2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRpbnQuaCIgMiAzIDQK PiA+Pj4gIyA0MiAicGxfbG9uZy5oIiAyCj4gPj4+Cj4gPj4+ICMgMSAiZ3BfY29uZmlnLmgiIDEK PiA+Pj4gIyA0NCAicGxfbG9uZy5oIiAyCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMg NDcgInBsX2xvbmcuaCIKPiA+Pj4gdHlwZWRlZiBpbnRwdHJfdCBQbExvbmc7Cj4gPj4+IHR5cGVk ZWYgdWludHB0cl90IFBsVUxvbmc7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9p bmNsdWRlL2ludHR5cGVzLmgiIDEgMyA0Cj4gPj4+ICMgMzQgIi91c3IvaW5jbHVkZS9pbnR0eXBl cy5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyAzNCAiL3Vzci9pbmNsdWRlL2ludHR5cGVzLmgiIDMgNAo+ ID4+PiB0eXBlZGVmIGxvbmcgaW50IF9fZ3djaGFyX3Q7Cj4gPj4+ICMgMjY2ICIvdXNyL2luY2x1 ZGUvaW50dHlwZXMuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjgwICIvdXNyL2luY2x1ZGUvaW50dHlw ZXMuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+ICAgewo+ID4+PiAgICAgX19leHRl bnNpb25fXyBsb25nIGxvbmcgaW50IHF1b3Q7Cj4gPj4+ICAgICBfX2V4dGVuc2lvbl9fIGxvbmcg bG9uZyBpbnQgcmVtOwo+ID4+PiAgIH0gaW1heGRpdl90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50bWF4X3QgaW1heGFicyAoaW50bWF4X3QgX19uKSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2Nv bnN0X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGltYXhkaXZfdCBpbWF4ZGl2IChpbnRt YXhfdCBfX251bWVyLCBpbnRtYXhfdCBfX2Rlbm9tKQo+ID4+PiAgICAgICBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludG1heF90IHN0cnRvaW1heCAoY29uc3QgY2hhciAq X19yZXN0cmljdCBfX25wdHIsCj4gPj4+ICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRy LCBpbnQgX19iYXNlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdWludG1heF90IHN0cnRvdW1heCAoY29uc3QgY2hhciAq X19yZXN0cmljdCBfX25wdHIsCj4gPj4+ICAgICAgICBjaGFyICoqIF9fcmVzdHJpY3QgX19lbmRw dHIsIGludCBfX2Jhc2UpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnRtYXhfdCB3Y3N0b2ltYXggKGNvbnN0IF9fZ3dj aGFyX3QgKl9fcmVzdHJpY3QgX19ucHRyLAo+ID4+PiAgICAgICBfX2d3Y2hhcl90ICoqX19yZXN0 cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdWludG1heF90 IHdjc3RvdW1heCAoY29uc3QgX19nd2NoYXJfdCAqX19yZXN0cmljdCBfX25wdHIsCj4gPj4+ICAg ICAgICBfX2d3Y2hhcl90ICoqIF9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCj4gPj4+ ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyA0 MzIgIi91c3IvaW5jbHVkZS9pbnR0eXBlcy5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyA1MyAicGxfbG9u Zy5oIiAyCj4gPj4+ICMgMzI5ICJncF9jb25maWcuaCIgMgo+ID4+PiAjIDUxICJtYWNoaW5lLmMi IDIKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2lu Y2x1ZGUvcHdkLmgiIDEgMyA0Cj4gPj4+ICMgMjcgIi91c3IvaW5jbHVkZS9wd2QuaCIgMyA0Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYt cmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMzMgIi91 c3IvaW5jbHVkZS9wd2QuaCIgMiAzIDQKPiA+Pj4gIyA0OSAiL3Vzci9pbmNsdWRlL3B3ZC5oIiAz IDQKPiA+Pj4gc3RydWN0IHBhc3N3ZAo+ID4+PiB7Cj4gPj4+ICAgY2hhciAqcHdfbmFtZTsKPiA+ Pj4gICBjaGFyICpwd19wYXNzd2Q7Cj4gPj4+ICAgX191aWRfdCBwd191aWQ7Cj4gPj4+ICAgX19n aWRfdCBwd19naWQ7Cj4gPj4+ICAgY2hhciAqcHdfZ2Vjb3M7Cj4gPj4+ICAgY2hhciAqcHdfZGly Owo+ID4+PiAgIGNoYXIgKnB3X3NoZWxsOwo+ID4+PiB9Owo+ID4+PiAjIDcyICIvdXNyL2luY2x1 ZGUvcHdkLmgiIDMgNAo+ID4+PiBleHRlcm4gdm9pZCBzZXRwd2VudCAodm9pZCk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIGVuZHB3ZW50ICh2b2lkKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCBwYXNzd2Qg KmdldHB3ZW50ICh2b2lkKTsKPiA+Pj4gIyA5NCAiL3Vzci9pbmNsdWRlL3B3ZC5oIiAzIDQKPiA+ Pj4gZXh0ZXJuIHN0cnVjdCBwYXNzd2QgKmZnZXRwd2VudCAoRklMRSAqX19zdHJlYW0pIF9fYXR0 cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBwdXRwd2VudCAoY29uc3Qgc3RydWN0IHBh c3N3ZCAqX19yZXN0cmljdCBfX3AsCj4gPj4+ICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fZik7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzdHJ1Y3Qg cGFzc3dkICpnZXRwd3VpZCAoX191aWRfdCBfX3VpZCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgcGFzc3dkICpnZXRwd25hbSAoY29uc3QgY2hhciAq X19uYW1lKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ICMgMTM5ICIv dXNyL2luY2x1ZGUvcHdkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGdldHB3ZW50X3IgKHN0cnVj dCBwYXNzd2QgKl9fcmVzdHJpY3QgX19yZXN1bHRidWYsCj4gPj4+ICAgICAgICAgIGNoYXIgKl9f cmVzdHJpY3QgX19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKPiA+Pj4gICAgICAgICAgc3RydWN0 IHBhc3N3ZCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpCj4gPj4+ICAgICAgICAgIF9fYXR0cmlidXRl X18gKChfX25vbm51bGxfXyAoMSwgMiwgNCkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCBnZXRwd3VpZF9yIChfX3VpZF90IF9fdWlkLAo+ID4+PiAgICAgICAgICBzdHJ1Y3QgcGFzc3dk ICpfX3Jlc3RyaWN0IF9fcmVzdWx0YnVmLAo+ID4+PiAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0 IF9fYnVmZmVyLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICAgICAgIHN0cnVjdCBwYXNzd2Qg KipfX3Jlc3RyaWN0IF9fcmVzdWx0KQo+ID4+PiAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgoX19u b25udWxsX18gKDIsIDMsIDUpKSk7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZ2V0cHduYW1fciAo Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gPj4+ICAgICAgICAgIHN0cnVjdCBwYXNz d2QgKl9fcmVzdHJpY3QgX19yZXN1bHRidWYsCj4gPj4+ICAgICAgICAgIGNoYXIgKl9fcmVzdHJp Y3QgX19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKPiA+Pj4gICAgICAgICAgc3RydWN0IHBhc3N3 ZCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpCj4gPj4+ICAgICAgICAgIF9fYXR0cmlidXRlX18gKChf X25vbm51bGxfXyAoMSwgMiwgMywgNSkpKTsKPiA+Pj4gIyAxNjYgIi91c3IvaW5jbHVkZS9wd2Qu aCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZmdldHB3ZW50X3IgKEZJTEUgKl9fcmVzdHJpY3QgX19z dHJlYW0sCj4gPj4+ICAgIHN0cnVjdCBwYXNzd2QgKl9fcmVzdHJpY3QgX19yZXN1bHRidWYsCj4g Pj4+ICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKPiA+Pj4g ICAgc3RydWN0IHBhc3N3ZCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpCj4gPj4+ICAgIF9fYXR0cmli dXRlX18gKChfX25vbm51bGxfXyAoMSwgMiwgMywgNSkpKTsKPiA+Pj4gIyAxODcgIi91c3IvaW5j bHVkZS9wd2QuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgNTggIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEg Ii91c3IvaW5jbHVkZS91bmlzdGQuaCIgMSAzIDQKPiA+Pj4gIyAyNyAiL3Vzci9pbmNsdWRlL3Vu aXN0ZC5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyAyMDUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0 Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvcG9zaXhfb3B0LmgiIDEgMyA0Cj4gPj4+ICMg MjA2ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZW52aXJvbm1lbnRzLmgiIDEgMyA0Cj4gPj4+ICMgMjIg Ii91c3IvaW5jbHVkZS9iaXRzL2Vudmlyb25tZW50cy5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2lu Y2x1ZGUvYml0cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ID4+PiAjIDIzICIvdXNyL2luY2x1ZGUvYml0 cy9lbnZpcm9ubWVudHMuaCIgMiAzIDQKPiA+Pj4gIyAyMTAgIi91c3IvaW5jbHVkZS91bmlzdGQu aCIgMiAzIDQKPiA+Pj4gIyAyMjkgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gPj4+ICMg MSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgi IDEgMyA0Cj4gPj4+ICMgMjMwICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMyA0Cj4gPj4+ICMg MjU4ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiB0eXBlZGVmIF9fdXNlY29uZHNf dCB1c2Vjb25kc190Owo+ID4+PiAjIDI3NyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+ Pj4gdHlwZWRlZiBfX3NvY2tsZW5fdCBzb2NrbGVuX3Q7Cj4gPj4+ICMgMjkwICIvdXNyL2luY2x1 ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGFjY2VzcyAoY29uc3QgY2hhciAqX19u YW1lLCBpbnQgX190eXBlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4gIyAzMDcgIi91c3IvaW5j bHVkZS91bmlzdGQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZmFjY2Vzc2F0IChpbnQgX19mZCwg Y29uc3QgY2hhciAqX19maWxlLCBpbnQgX190eXBlLCBpbnQgX19mbGFnKQo+ID4+PiAgICAgIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f bm9ubnVsbF9fICgyKSkpIDsKPiA+Pj4gIyAzMzcgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0 Cj4gPj4+IGV4dGVybiBfX29mZl90IGxzZWVrIChpbnQgX19mZCwgX19vZmZfdCBfX29mZnNldCwg aW50IF9fd2hlbmNlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ ID4+PiAjIDM1NiAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBj bG9zZSAoaW50IF9fZmQpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gc3NpemVfdCByZWFkIChpbnQgX19mZCwgdm9pZCAqX19idWYsIHNpemVfdCBfX25i eXRlcykgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3NpemVf dCB3cml0ZSAoaW50IF9fZmQsIGNvbnN0IHZvaWQgKl9fYnVmLCBzaXplX3QgX19uKSA7Cj4gPj4+ ICMgMzc5ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gc3NpemVfdCBw cmVhZCAoaW50IF9fZmQsIHZvaWQgKl9fYnVmLCBzaXplX3QgX19uYnl0ZXMsCj4gPj4+ICAgICAg ICAgX19vZmZfdCBfX29mZnNldCkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gc3NpemVfdCBwd3JpdGUgKGludCBfX2ZkLCBjb25zdCB2b2lkICpfX2J1 Ziwgc2l6ZV90IF9fbiwKPiA+Pj4gICAgICAgICAgX19vZmZfdCBfX29mZnNldCkgOwo+ID4+PiAj IDQyMCAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBwaXBlIChp bnQgX19waXBlZGVzWzJdKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp IDsKPiA+Pj4gIyA0MzUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gPj4+IGV4dGVybiB1 bnNpZ25lZCBpbnQgYWxhcm0gKHVuc2lnbmVkIGludCBfX3NlY29uZHMpIF9fYXR0cmlidXRlX18g KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgNDQ3ICIvdXNyL2luY2x1ZGUvdW5p c3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gdW5zaWduZWQgaW50IHNsZWVwICh1bnNpZ25lZCBpbnQg X19zZWNvbmRzKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIF9fdXNlY29uZHNfdCB1YWxhcm0gKF9fdXNlY29uZHNfdCBfX3ZhbHVlLCBfX3Vz ZWNvbmRzX3QgX19pbnRlcnZhbCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gaW50IHVzbGVlcCAoX191c2Vjb25kc190IF9fdXNlY29uZHMpOwo+ID4+PiAjIDQ3 MiAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBwYXVzZSAodm9p ZCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgY2hvd24gKGNvbnN0IGNoYXIg Kl9fZmlsZSwgX191aWRfdCBfX293bmVyLCBfX2dpZF90IF9fZ3JvdXApCj4gPj4+ICAgICAgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19u b25udWxsX18gKDEpKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZjaG93 biAoaW50IF9fZmQsIF9fdWlkX3QgX19vd25lciwgX19naWRfdCBfX2dyb3VwKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBsY2hvd24gKGNvbnN0IGNoYXIgKl9fZmlsZSwgX191aWRfdCBfX293 bmVyLCBfX2dpZF90IF9fZ3JvdXApCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZjaG93bmF0 IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19maWxlLCBfX3VpZF90IF9fb3duZXIsCj4gPj4+ICAg ICAgICBfX2dpZF90IF9fZ3JvdXAsIGludCBfX2ZsYWcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g KDIpKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGNoZGlyIChjb25zdCBj aGFyICpfX3BhdGgpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGludCBmY2hkaXIgKGludCBfX2ZkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIDsKPiA+Pj4gIyA1MTQgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4g Pj4+IGV4dGVybiBjaGFyICpnZXRjd2QgKGNoYXIgKl9fYnVmLCBzaXplX3QgX19zaXplKSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4gIyA1MjggIi91c3Iv aW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gPj4+IGV4dGVybiBjaGFyICpnZXR3ZCAoY2hhciAqX19i dWYpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVj YXRlZF9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGR1cCAo aW50IF9fZmQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGR1cDIgKGludCBfX2ZkLCBpbnQgX19mZDIpIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgNTQ2ICIvdXNyL2lu Y2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gY2hhciAqKl9fZW52aXJvbjsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBleGVj dmUgKGNvbnN0IGNoYXIgKl9fcGF0aCwgY2hhciAqY29uc3QgX19hcmd2W10sCj4gPj4+ICAgICAg Y2hhciAqY29uc3QgX19lbnZwW10pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZleGVjdmUgKGludCBfX2ZkLCBjaGFyICpjb25z dCBfX2FyZ3ZbXSwgY2hhciAqY29uc3QgX19lbnZwW10pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g KDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZXhlY3YgKGNv bnN0IGNoYXIgKl9fcGF0aCwgY2hhciAqY29uc3QgX19hcmd2W10pCj4gPj4+ICAgICAgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u dWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZXhlY2xl IChjb25zdCBjaGFyICpfX3BhdGgsIGNvbnN0IGNoYXIgKl9fYXJnLCAuLi4pCj4gPj4+ICAgICAg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo X19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQg ZXhlY2wgKGNvbnN0IGNoYXIgKl9fcGF0aCwgY29uc3QgY2hhciAqX19hcmcsIC4uLikKPiA+Pj4g ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl X18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGludCBleGVjdnAgKGNvbnN0IGNoYXIgKl9fZmlsZSwgY2hhciAqY29uc3QgX19hcmd2W10pCj4g Pj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp YnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgZXhlY2xwIChjb25zdCBjaGFyICpfX2ZpbGUsIGNvbnN0IGNoYXIgKl9f YXJnLCAuLi4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+ICMgNjAxICIv dXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IG5pY2UgKGludCBfX2lu YykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIF9leGl0IChpbnQgX19zdGF0dXMpIF9fYXR0 cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9jb25mbmFtZS5oIiAxIDMgNAo+ID4+PiAjIDI0 ICIvdXNyL2luY2x1ZGUvYml0cy9jb25mbmFtZS5oIiAzIDQKPiA+Pj4gZW51bQo+ID4+PiAgIHsK PiA+Pj4gICAgIF9QQ19MSU5LX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9QQ19NQVhfQ0FOT04sCj4g Pj4+Cj4gPj4+ICAgICBfUENfTUFYX0lOUFVULAo+ID4+Pgo+ID4+PiAgICAgX1BDX05BTUVfTUFY LAo+ID4+Pgo+ID4+PiAgICAgX1BDX1BBVEhfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1BDX1BJUEVf QlVGLAo+ID4+Pgo+ID4+PiAgICAgX1BDX0NIT1dOX1JFU1RSSUNURUQsCj4gPj4+Cj4gPj4+ICAg ICBfUENfTk9fVFJVTkMsCj4gPj4+Cj4gPj4+ICAgICBfUENfVkRJU0FCTEUsCj4gPj4+Cj4gPj4+ ICAgICBfUENfU1lOQ19JTywKPiA+Pj4KPiA+Pj4gICAgIF9QQ19BU1lOQ19JTywKPiA+Pj4KPiA+ Pj4gICAgIF9QQ19QUklPX0lPLAo+ID4+Pgo+ID4+PiAgICAgX1BDX1NPQ0tfTUFYQlVGLAo+ID4+ Pgo+ID4+PiAgICAgX1BDX0ZJTEVTSVpFQklUUywKPiA+Pj4KPiA+Pj4gICAgIF9QQ19SRUNfSU5D Ul9YRkVSX1NJWkUsCj4gPj4+Cj4gPj4+ICAgICBfUENfUkVDX01BWF9YRkVSX1NJWkUsCj4gPj4+ Cj4gPj4+ICAgICBfUENfUkVDX01JTl9YRkVSX1NJWkUsCj4gPj4+Cj4gPj4+ICAgICBfUENfUkVD X1hGRVJfQUxJR04sCj4gPj4+Cj4gPj4+ICAgICBfUENfQUxMT0NfU0laRV9NSU4sCj4gPj4+Cj4g Pj4+ICAgICBfUENfU1lNTElOS19NQVgsCj4gPj4+Cj4gPj4+ICAgICBfUENfMl9TWU1MSU5LUwo+ ID4+Pgo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gICB7Cj4gPj4+ICAg ICBfU0NfQVJHX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19DSElMRF9NQVgsCj4gPj4+Cj4gPj4+ ICAgICBfU0NfQ0xLX1RDSywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19OR1JPVVBTX01BWCwKPiA+Pj4K PiA+Pj4gICAgIF9TQ19PUEVOX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TVFJFQU1fTUFYLAo+ ID4+Pgo+ID4+PiAgICAgX1NDX1RaTkFNRV9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfSk9CX0NP TlRST0wsCj4gPj4+Cj4gPj4+ICAgICBfU0NfU0FWRURfSURTLAo+ID4+Pgo+ID4+PiAgICAgX1ND X1JFQUxUSU1FX1NJR05BTFMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfUFJJT1JJVFlfU0NIRURVTElO RywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19USU1FUlMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfQVNZTkNI Uk9OT1VTX0lPLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BSSU9SSVRJWkVEX0lPLAo+ID4+Pgo+ID4+ PiAgICAgX1NDX1NZTkNIUk9OSVpFRF9JTywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19GU1lOQywKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19NQVBQRURfRklMRVMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTUVNTE9D SywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19NRU1MT0NLX1JBTkdFLAo+ID4+Pgo+ID4+PiAgICAgX1ND X01FTU9SWV9QUk9URUNUSU9OLAo+ID4+Pgo+ID4+PiAgICAgX1NDX01FU1NBR0VfUEFTU0lORywK PiA+Pj4KPiA+Pj4gICAgIF9TQ19TRU1BUEhPUkVTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NIQVJF RF9NRU1PUllfT0JKRUNUUywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19BSU9fTElTVElPX01BWCwKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19BSU9fTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0FJT19QUklPX0RF TFRBX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19ERUxBWVRJTUVSX01BWCwKPiA+Pj4KPiA+Pj4g ICAgIF9TQ19NUV9PUEVOX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19NUV9QUklPX01BWCwKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19WRVJTSU9OLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BBR0VTSVpFLAo+ ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1JUU0lHX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19T RU1fTlNFTVNfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NFTV9WQUxVRV9NQVgsCj4gPj4+Cj4g Pj4+ICAgICBfU0NfU0lHUVVFVUVfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1RJTUVSX01BWCwK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9TQ19CQ19CQVNFX01BWCwKPiA+Pj4K PiA+Pj4gICAgIF9TQ19CQ19ESU1fTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0JDX1NDQUxFX01B WCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19CQ19TVFJJTkdfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1ND X0NPTExfV0VJR0hUU19NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfRVFVSVZfQ0xBU1NfTUFYLAo+ ID4+Pgo+ID4+PiAgICAgX1NDX0VYUFJfTkVTVF9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTElO RV9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfUkVfRFVQX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9T Q19DSEFSQ0xBU1NfTkFNRV9NQVgsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9WRVJTSU9O LAo+ID4+Pgo+ID4+PiAgICAgX1NDXzJfQ19CSU5ELAo+ID4+Pgo+ID4+PiAgICAgX1NDXzJfQ19E RVYsCj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9GT1JUX0RFViwKPiA+Pj4KPiA+Pj4gICAgIF9TQ18y X0ZPUlRfUlVOLAo+ID4+Pgo+ID4+PiAgICAgX1NDXzJfU1dfREVWLAo+ID4+Pgo+ID4+PiAgICAg X1NDXzJfTE9DQUxFREVGLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1BJSSwKPiA+Pj4KPiA+ Pj4gICAgIF9TQ19QSUlfWFRJLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BJSV9TT0NLRVQsCj4gPj4+ Cj4gPj4+ICAgICBfU0NfUElJX0lOVEVSTkVULAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BJSV9PU0ks Cj4gPj4+Cj4gPj4+ICAgICBfU0NfUE9MTCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TRUxFQ1QsCj4g Pj4+Cj4gPj4+ICAgICBfU0NfVUlPX01BWElPViwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19JT1ZfTUFY ID0gX1NDX1VJT19NQVhJT1YsCj4gPj4+Cj4gPj4+ICAgICBfU0NfUElJX0lOVEVSTkVUX1NUUkVB TSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19QSUlfSU5URVJORVRfREdSQU0sCj4gPj4+Cj4gPj4+ICAg ICBfU0NfUElJX09TSV9DT1RTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BJSV9PU0lfQ0xUUywKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19QSUlfT1NJX00sCj4gPj4+Cj4gPj4+ICAgICBfU0NfVF9JT1ZfTUFY LAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1RIUkVBRFMsCj4gPj4+Cj4gPj4+ICAg ICBfU0NfVEhSRUFEX1NBRkVfRlVOQ1RJT05TLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0dFVEdSX1Jf U0laRV9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfR0VUUFdfUl9TSVpFX01BWCwKPiA+Pj4KPiA+ Pj4gICAgIF9TQ19MT0dJTl9OQU1FX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19UVFlfTkFNRV9N QVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUywKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19USFJFQURfS0VZU19NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVEhS RUFEX1NUQUNLX01JTiwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19USFJFQURfVEhSRUFEU19NQVgsCj4g Pj4+Cj4gPj4+ICAgICBfU0NfVEhSRUFEX0FUVFJfU1RBQ0tBRERSLAo+ID4+Pgo+ID4+PiAgICAg X1NDX1RIUkVBRF9BVFRSX1NUQUNLU0laRSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19USFJFQURfUFJJ T1JJVFlfU0NIRURVTElORywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19USFJFQURfUFJJT19JTkhFUklU LAo+ID4+Pgo+ID4+PiAgICAgX1NDX1RIUkVBRF9QUklPX1BST1RFQ1QsCj4gPj4+Cj4gPj4+ICAg ICBfU0NfVEhSRUFEX1BST0NFU1NfU0hBUkVELAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX05Q Uk9DRVNTT1JTX0NPTkYsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTlBST0NFU1NPUlNfT05MTiwKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19QSFlTX1BBR0VTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0FWUEhZU19Q QUdFUywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19BVEVYSVRfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1ND X1BBU1NfTUFYLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1hPUEVOX1ZFUlNJT04sCj4gPj4+ Cj4gPj4+ICAgICBfU0NfWE9QRU5fWENVX1ZFUlNJT04sCj4gPj4+Cj4gPj4+ICAgICBfU0NfWE9Q RU5fVU5JWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19YT1BFTl9DUllQVCwKPiA+Pj4KPiA+Pj4gICAg IF9TQ19YT1BFTl9FTkhfSTE4TiwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19YT1BFTl9TSE0sCj4gPj4+ Cj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9DSEFSX1RFUk0sCj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9D X1ZFUlNJT04sCj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9VUEUsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAg ICBfU0NfWE9QRU5fWFBHMiwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19YT1BFTl9YUEczLAo+ID4+Pgo+ ID4+PiAgICAgX1NDX1hPUEVOX1hQRzQsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfQ0hBUl9C SVQsCj4gPj4+Cj4gPj4+ICAgICBfU0NfQ0hBUl9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfQ0hB Ul9NSU4sCj4gPj4+Cj4gPj4+ICAgICBfU0NfSU5UX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19J TlRfTUlOLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0xPTkdfQklULAo+ID4+Pgo+ID4+PiAgICAgX1ND X1dPUkRfQklULAo+ID4+Pgo+ID4+PiAgICAgX1NDX01CX0xFTl9NQVgsCj4gPj4+Cj4gPj4+ICAg ICBfU0NfTlpFUk8sCj4gPj4+Cj4gPj4+ICAgICBfU0NfU1NJWkVfTUFYLAo+ID4+Pgo+ID4+PiAg ICAgX1NDX1NDSEFSX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TQ0hBUl9NSU4sCj4gPj4+Cj4g Pj4+ICAgICBfU0NfU0hSVF9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfU0hSVF9NSU4sCj4gPj4+ Cj4gPj4+ICAgICBfU0NfVUNIQVJfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1VJTlRfTUFYLAo+ ID4+Pgo+ID4+PiAgICAgX1NDX1VMT05HX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19VU0hSVF9N QVgsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfTkxfQVJHTUFYLAo+ID4+Pgo+ID4+PiAgICAg X1NDX05MX0xBTkdNQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTkxfTVNHTUFYLAo+ID4+Pgo+ID4+ PiAgICAgX1NDX05MX05NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTkxfU0VUTUFYLAo+ID4+Pgo+ ID4+PiAgICAgX1NDX05MX1RFWFRNQVgsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfWEJTNV9J TFAzMl9PRkYzMiwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19YQlM1X0lMUDMyX09GRkJJRywKPiA+Pj4K PiA+Pj4gICAgIF9TQ19YQlM1X0xQNjRfT0ZGNjQsCj4gPj4+Cj4gPj4+ICAgICBfU0NfWEJTNV9M UEJJR19PRkZCSUcsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfWE9QRU5fTEVHQUNZLAo+ID4+ Pgo+ID4+PiAgICAgX1NDX1hPUEVOX1JFQUxUSU1FLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1hPUEVO X1JFQUxUSU1FX1RIUkVBRFMsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfQURWSVNPUllfSU5G TywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19CQVJSSUVSUywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19CQVNF LAo+ID4+Pgo+ID4+PiAgICAgX1NDX0NfTEFOR19TVVBQT1JULAo+ID4+Pgo+ID4+PiAgICAgX1ND X0NfTEFOR19TVVBQT1JUX1IsCj4gPj4+Cj4gPj4+ICAgICBfU0NfQ0xPQ0tfU0VMRUNUSU9OLAo+ ID4+Pgo+ID4+PiAgICAgX1NDX0NQVVRJTUUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVEhSRUFEX0NQ VVRJTUUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfREVWSUNFX0lPLAo+ID4+Pgo+ID4+PiAgICAgX1ND X0RFVklDRV9TUEVDSUZJQywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19ERVZJQ0VfU1BFQ0lGSUNfUiwK PiA+Pj4KPiA+Pj4gICAgIF9TQ19GRF9NR01ULAo+ID4+Pgo+ID4+PiAgICAgX1NDX0ZJRk8sCj4g Pj4+Cj4gPj4+ICAgICBfU0NfUElQRSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19GSUxFX0FUVFJJQlVU RVMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfRklMRV9MT0NLSU5HLAo+ID4+Pgo+ID4+PiAgICAgX1ND X0ZJTEVfU1lTVEVNLAo+ID4+Pgo+ID4+PiAgICAgX1NDX01PTk9UT05JQ19DTE9DSywKPiA+Pj4K PiA+Pj4gICAgIF9TQ19NVUxUSV9QUk9DRVNTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NJTkdMRV9Q Uk9DRVNTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX05FVFdPUktJTkcsCj4gPj4+Cj4gPj4+ICAgICBf U0NfUkVBREVSX1dSSVRFUl9MT0NLUywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TUElOX0xPQ0tTLAo+ ID4+Pgo+ID4+PiAgICAgX1NDX1JFR0VYUCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19SRUdFWF9WRVJT SU9OLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NIRUxMLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NJR05B TFMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfU1BBV04sCj4gPj4+Cj4gPj4+ICAgICBfU0NfU1BPUkFE SUNfU0VSVkVSLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1RIUkVBRF9TUE9SQURJQ19TRVJWRVIsCj4g Pj4+Cj4gPj4+ICAgICBfU0NfU1lTVEVNX0RBVEFCQVNFLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NZ U1RFTV9EQVRBQkFTRV9SLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1RJTUVPVVRTLAo+ID4+Pgo+ID4+ PiAgICAgX1NDX1RZUEVEX01FTU9SWV9PQkpFQ1RTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1VTRVJf R1JPVVBTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1VTRVJfR1JPVVBTX1IsCj4gPj4+Cj4gPj4+ICAg ICBfU0NfMl9QQlMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9QQlNfQUNDT1VOVElORywKPiA+Pj4K PiA+Pj4gICAgIF9TQ18yX1BCU19MT0NBVEUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9QQlNfTUVT U0FHRSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ18yX1BCU19UUkFDSywKPiA+Pj4KPiA+Pj4gICAgIF9T Q19TWU1MT09QX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TVFJFQU1TLAo+ID4+Pgo+ID4+PiAg ICAgX1NDXzJfUEJTX0NIRUNLUE9JTlQsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfVjZfSUxQ MzJfT0ZGMzIsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVjZfSUxQMzJfT0ZGQklHLAo+ID4+Pgo+ID4+ PiAgICAgX1NDX1Y2X0xQNjRfT0ZGNjQsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVjZfTFBCSUdfT0ZG QklHLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX0hPU1RfTkFNRV9NQVgsCj4gPj4+Cj4gPj4+ ICAgICBfU0NfVFJBQ0UsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVFJBQ0VfRVZFTlRfRklMVEVSLAo+ ID4+Pgo+ID4+PiAgICAgX1NDX1RSQUNFX0lOSEVSSVQsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVFJB Q0VfTE9HLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX0xFVkVMMV9JQ0FDSEVfU0laRSwKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19MRVZFTDFfSUNBQ0hFX0FTU09DLAo+ID4+Pgo+ID4+PiAgICAgX1ND X0xFVkVMMV9JQ0FDSEVfTElORVNJWkUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTEVWRUwxX0RDQUNI RV9TSVpFLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0xFVkVMMV9EQ0FDSEVfQVNTT0MsCj4gPj4+Cj4g Pj4+ICAgICBfU0NfTEVWRUwxX0RDQUNIRV9MSU5FU0laRSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19M RVZFTDJfQ0FDSEVfU0laRSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19MRVZFTDJfQ0FDSEVfQVNTT0Ms Cj4gPj4+Cj4gPj4+ICAgICBfU0NfTEVWRUwyX0NBQ0hFX0xJTkVTSVpFLAo+ID4+Pgo+ID4+PiAg ICAgX1NDX0xFVkVMM19DQUNIRV9TSVpFLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0xFVkVMM19DQUNI RV9BU1NPQywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19MRVZFTDNfQ0FDSEVfTElORVNJWkUsCj4gPj4+ Cj4gPj4+ICAgICBfU0NfTEVWRUw0X0NBQ0hFX1NJWkUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTEVW RUw0X0NBQ0hFX0FTU09DLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0xFVkVMNF9DQUNIRV9MSU5FU0la RSwKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9TQ19JUFY2ID0gX1NDX0xFVkVMMV9JQ0FD SEVfU0laRSArIDUwLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1JBV19TT0NLRVRTLAo+ID4+Pgo+ID4+ Pgo+ID4+PiAgICAgX1NDX1Y3X0lMUDMyX09GRjMyLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1Y3X0lM UDMyX09GRkJJRywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19WN19MUDY0X09GRjY0LAo+ID4+Pgo+ID4+ PiAgICAgX1NDX1Y3X0xQQklHX09GRkJJRywKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9TQ19TU19S RVBMX01BWCwKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9TQ19UUkFDRV9FVkVOVF9OQU1FX01BWCwK PiA+Pj4KPiA+Pj4gICAgIF9TQ19UUkFDRV9OQU1FX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19U UkFDRV9TWVNfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1RSQUNFX1VTRVJfRVZFTlRfTUFYLAo+ ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1hPUEVOX1NUUkVBTVMsCj4gPj4+Cj4gPj4+Cj4gPj4+ ICAgICBfU0NfVEhSRUFEX1JPQlVTVF9QUklPX0lOSEVSSVQsCj4gPj4+Cj4gPj4+ICAgICBfU0Nf VEhSRUFEX1JPQlVTVF9QUklPX1BST1RFQ1QKPiA+Pj4KPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ ID4+PiBlbnVtCj4gPj4+ICAgewo+ID4+PiAgICAgX0NTX1BBVEgsCj4gPj4+Cj4gPj4+Cj4gPj4+ ICAgICBfQ1NfVjZfV0lEVEhfUkVTVFJJQ1RFRF9FTlZTLAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiAgICAgX0NTX0dOVV9MSUJDX1ZFUlNJT04sCj4gPj4+Cj4gPj4+ICAgICBfQ1NfR05VX0xJQlBU SFJFQURfVkVSU0lPTiwKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9DU19WNV9XSURUSF9SRVNUUklD VEVEX0VOVlMsCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfQ1NfVjdfV0lEVEhfUkVTVFJJ Q1RFRF9FTlZTLAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX0NTX0xGU19DRkxBR1MgPSAx MDAwLAo+ID4+Pgo+ID4+PiAgICAgX0NTX0xGU19MREZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NT X0xGU19MSUJTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX0xGU19MSU5URkxBR1MsCj4gPj4+Cj4gPj4+ ICAgICBfQ1NfTEZTNjRfQ0ZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX0xGUzY0X0xERkxBR1Ms Cj4gPj4+Cj4gPj4+ICAgICBfQ1NfTEZTNjRfTElCUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19MRlM2 NF9MSU5URkxBR1MsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9D RkxBR1MgPSAxMTAwLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1hCUzVfSUxQMzJfT0ZGMzJfTERGTEFH UywKPiA+Pj4KPiA+Pj4gICAgIF9DU19YQlM1X0lMUDMyX09GRjMyX0xJQlMsCj4gPj4+Cj4gPj4+ ICAgICBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9MSU5URkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1Nf WEJTNV9JTFAzMl9PRkZCSUdfQ0ZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1hCUzVfSUxQMzJf T0ZGQklHX0xERkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfWEJTNV9JTFAzMl9PRkZCSUdfTElC UywKPiA+Pj4KPiA+Pj4gICAgIF9DU19YQlM1X0lMUDMyX09GRkJJR19MSU5URkxBR1MsCj4gPj4+ Cj4gPj4+ICAgICBfQ1NfWEJTNV9MUDY0X09GRjY0X0NGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9D U19YQlM1X0xQNjRfT0ZGNjRfTERGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19YQlM1X0xQNjRf T0ZGNjRfTElCUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19YQlM1X0xQNjRfT0ZGNjRfTElOVEZMQUdT LAo+ID4+Pgo+ID4+PiAgICAgX0NTX1hCUzVfTFBCSUdfT0ZGQklHX0NGTEFHUywKPiA+Pj4KPiA+ Pj4gICAgIF9DU19YQlM1X0xQQklHX09GRkJJR19MREZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NT X1hCUzVfTFBCSUdfT0ZGQklHX0xJQlMsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfWEJTNV9MUEJJR19P RkZCSUdfTElOVEZMQUdTLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMy X09GRjMyX0NGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WNl9JTFAzMl9PRkYzMl9M REZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0xJQlMsCj4g Pj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGMzJfTElOVEZMQUdTLAo+ID4+Pgo+ ID4+PiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRkJJR19DRkxBR1MsCj4gPj4+Cj4gPj4+ICAg ICBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xERkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1Nf UE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xJQlMsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjZf SUxQMzJfT0ZGQklHX0xJTlRGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WNl9MUDY0 X09GRjY0X0NGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WNl9MUDY0X09GRjY0X0xE RkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjZfTFA2NF9PRkY2NF9MSUJTLAo+ID4+ Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y2X0xQNjRfT0ZGNjRfTElOVEZMQUdTLAo+ID4+Pgo+ID4+ PiAgICAgX0NTX1BPU0lYX1Y2X0xQQklHX09GRkJJR19DRkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBf Q1NfUE9TSVhfVjZfTFBCSUdfT0ZGQklHX0xERkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9T SVhfVjZfTFBCSUdfT0ZGQklHX0xJQlMsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjZfTFBC SUdfT0ZGQklHX0xJTlRGTEFHUywKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WN19J TFAzMl9PRkYzMl9DRkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZG MzJfTERGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WN19JTFAzMl9PRkYzMl9MSUJT LAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRjMyX0xJTlRGTEFHUywKPiA+ Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WN19JTFAzMl9PRkZCSUdfQ0ZMQUdTLAo+ID4+Pgo+ID4+ PiAgICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRkJJR19MREZMQUdTLAo+ID4+Pgo+ID4+PiAgICAg X0NTX1BPU0lYX1Y3X0lMUDMyX09GRkJJR19MSUJTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lY X1Y3X0lMUDMyX09GRkJJR19MSU5URkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjdf TFA2NF9PRkY2NF9DRkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjdfTFA2NF9PRkY2 NF9MREZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y3X0xQNjRfT0ZGNjRfTElCUywK PiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WN19MUDY0X09GRjY0X0xJTlRGTEFHUywKPiA+Pj4K PiA+Pj4gICAgIF9DU19QT1NJWF9WN19MUEJJR19PRkZCSUdfQ0ZMQUdTLAo+ID4+Pgo+ID4+PiAg ICAgX0NTX1BPU0lYX1Y3X0xQQklHX09GRkJJR19MREZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NT X1BPU0lYX1Y3X0xQQklHX09GRkJJR19MSUJTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y3 X0xQQklHX09GRkJJR19MSU5URkxBR1MsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfQ1NfVjZfRU5W LAo+ID4+Pgo+ID4+PiAgICAgX0NTX1Y3X0VOVgo+ID4+Pgo+ID4+PiAgIH07Cj4gPj4+ICMgNjEz ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBs b25nIGludCBwYXRoY29uZiAoY29uc3QgY2hhciAqX19wYXRoLCBpbnQgX19uYW1lKQo+ID4+PiAg ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gbG9uZyBpbnQg ZnBhdGhjb25mIChpbnQgX19mZCwgaW50IF9fbmFtZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGxvbmcgaW50IHN5c2Nv bmYgKGludCBfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzaXplX3QgY29uZnN0ciAoaW50IF9fbmFt ZSwgY2hhciAqX19idWYsIHNpemVfdCBfX2xlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fcGlk X3QgZ2V0cGlkICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp Owo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gX19waWRfdCBnZXRwcGlkICh2b2lkKSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gX19waWRfdCBnZXRwZ3JwICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gX19waWRfdCBfX2dldHBnaWQgKF9f cGlkX3QgX19waWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+Cj4gPj4+IGV4dGVybiBfX3BpZF90IGdldHBnaWQgKF9fcGlkX3QgX19waWQpIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0cGdpZCAoX19waWRfdCBfX3BpZCwgX19w aWRfdCBfX3BnaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+ICMgNjYzICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHNl dHBncnAgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX3BpZF90IHNl dHNpZCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fcGlkX3QgZ2V0c2lkIChfX3BpZF90IF9fcGlk KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gX191aWRfdCBnZXR1aWQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX3VpZF90 IGdldGV1aWQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX2dpZF90IGdldGdpZCAodm9pZCkgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IF9fZ2lkX3QgZ2V0ZWdpZCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRncm91 cHMgKGludCBfX3NpemUsIF9fZ2lkX3QgX19saXN0W10pIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+PiAjIDcwMyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAz IDQKPiA+Pj4gZXh0ZXJuIGludCBzZXR1aWQgKF9fdWlkX3QgX191aWQpIF9fYXR0cmlidXRlX18g KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gaW50IHNldHJldWlkIChfX3VpZF90IF9fcnVpZCwgX191aWRfdCBfX2V1aWQpIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNldGV1aWQgKF9fdWlkX3QgX191aWQpIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNldGdpZCAoX19naWRfdCBfX2dpZCkgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0cmVnaWQgKF9fZ2lkX3QgX19yZ2lkLCBfX2dpZF90 IF9fZWdpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0ZWdpZCAoX19naWRfdCBfX2dp ZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+ICMgNzU5 ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gX19waWRfdCBmb3JrICh2 b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fcGlkX3QgdmZvcmsgKHZvaWQpIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICp0dHluYW1lIChpbnQgX19mZCkgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCB0dHluYW1lX3IgKGludCBfX2ZkLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9f YnVmbGVuKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBpc2F0dHkgKGludCBfX2ZkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gaW50IHR0eXNsb3QgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f bGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbGluayAo Y29uc3QgY2hhciAqX19mcm9tLCBjb25zdCBjaGFyICpfX3RvKQo+ID4+PiAgICAgIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs bF9fICgxLCAyKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBs aW5rYXQgKGludCBfX2Zyb21mZCwgY29uc3QgY2hhciAqX19mcm9tLCBpbnQgX190b2ZkLAo+ID4+ PiAgICAgIGNvbnN0IGNoYXIgKl9fdG8sIGludCBfX2ZsYWdzKQo+ID4+PiAgICAgIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs bF9fICgyLCA0KSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBz eW1saW5rIChjb25zdCBjaGFyICpfX2Zyb20sIGNvbnN0IGNoYXIgKl9fdG8pCj4gPj4+ICAgICAg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo X19ub25udWxsX18gKDEsIDIpKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gc3NpemVfdCByZWFkbGluayAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3BhdGgsCj4gPj4+ ICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19sZW4pCj4gPj4+ICAgICAgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19u b25udWxsX18gKDEsIDIpKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g aW50IHN5bWxpbmthdCAoY29uc3QgY2hhciAqX19mcm9tLCBpbnQgX190b2ZkLAo+ID4+PiAgICAg ICAgIGNvbnN0IGNoYXIgKl9fdG8pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAzKSkpIDsKPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIHNzaXplX3QgcmVhZGxpbmthdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9f cmVzdHJpY3QgX19wYXRoLAo+ID4+PiAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXpl X3QgX19sZW4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDMpKSkgOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gaW50IHVubGluayAoY29uc3QgY2hhciAqX19uYW1lKSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB1bmxpbmthdCAo aW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fbmFtZSwgaW50IF9fZmxhZykKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBybWRpciAo Y29uc3QgY2hhciAqX19wYXRoKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIF9fcGlkX3QgdGNnZXRwZ3JwIChpbnQgX19mZCkgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB0 Y3NldHBncnAgKGludCBfX2ZkLCBfX3BpZF90IF9fcGdycF9pZCkgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKmdldGxvZ2luICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRsb2dpbl9yIChjaGFy ICpfX25hbWUsIHNpemVfdCBfX25hbWVfbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g KDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0bG9naW4g KGNvbnN0IGNoYXIgKl9fbmFtZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ICMgODc0ICIvdXNy L2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9nZXRvcHQuaCIg MSAzIDQKPiA+Pj4gIyA1NyAiL3Vzci9pbmNsdWRlL2dldG9wdC5oIiAzIDQKPiA+Pj4gZXh0ZXJu IGNoYXIgKm9wdGFyZzsKPiA+Pj4gIyA3MSAiL3Vzci9pbmNsdWRlL2dldG9wdC5oIiAzIDQKPiA+ Pj4gZXh0ZXJuIGludCBvcHRpbmQ7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVy biBpbnQgb3B0ZXJyOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IG9wdG9wdDsK PiA+Pj4gIyAxNTAgIi91c3IvaW5jbHVkZS9nZXRvcHQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQg Z2V0b3B0IChpbnQgX19fYXJnYywgY2hhciAqY29uc3QgKl9fX2FyZ3YsIGNvbnN0IGNoYXIgKl9f c2hvcnRvcHRzKQo+ID4+PiAgICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKTsKPiA+Pj4gIyA4NzUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMiAzIDQKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRo b3N0bmFtZSAoY2hhciAqX19uYW1lLCBzaXplX3QgX19sZW4pIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNldGhv c3RuYW1lIChjb25zdCBjaGFyICpfX25hbWUsIHNpemVfdCBfX2xlbikKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0aG9z dGlkIChsb25nIGludCBfX2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRk b21haW5uYW1lIChjaGFyICpfX25hbWUsIHNpemVfdCBfX2xlbikKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSkpKSA7Cj4gPj4+IGV4dGVybiBpbnQgc2V0ZG9tYWlubmFtZSAoY29uc3QgY2hhciAq X19uYW1lLCBzaXplX3QgX19sZW4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHZoYW5ndXAgKHZvaWQp IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgcmV2b2tlIChjb25zdCBjaGFyICpfX2ZpbGUpIF9fYXR0cmlidXRlX18g KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgx KSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGludCBwcm9maWwgKHVuc2lnbmVkIHNob3J0IGludCAqX19zYW1wbGVfYnVmZmVyLCBzaXpl X3QgX19zaXplLAo+ID4+PiAgICAgIHNpemVfdCBfX29mZnNldCwgdW5zaWduZWQgaW50IF9fc2Nh bGUpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgYWNjdCAoY29uc3QgY2hhciAqX19uYW1lKSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gY2hhciAqZ2V0dXNlcnNoZWxsICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gdm9pZCBlbmR1c2Vyc2hlbGwgKHZvaWQp IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiB2 b2lkIHNldHVzZXJzaGVsbCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBk YWVtb24gKGludCBfX25vY2hkaXIsIGludCBfX25vY2xvc2UpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gaW50IGNocm9vdCAoY29uc3QgY2hhciAqX19wYXRoKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf XyAoMSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpnZXRwYXNzIChj b25zdCBjaGFyICpfX3Byb21wdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IGZzeW5jIChpbnQgX19mZCk7Cj4gPj4+ICMgOTcyICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMg NAo+ID4+PiBleHRlcm4gbG9uZyBpbnQgZ2V0aG9zdGlkICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIHZvaWQgc3luYyAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCBnZXRwYWdlc2l6ZSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBpbnQgZ2V0ZHRhYmxlc2l6ZSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyA5OTYgIi91c3IvaW5jbHVkZS91bmlzdGQu aCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgdHJ1bmNhdGUgKGNvbnN0IGNoYXIgKl9fZmlsZSwgX19v ZmZfdCBfX2xlbmd0aCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+ICMgMTAx OSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBmdHJ1bmNhdGUg KGludCBfX2ZkLCBfX29mZl90IF9fbGVuZ3RoKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIDsKPiA+Pj4gIyAxMDQwICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ ID4+PiBleHRlcm4gaW50IGJyayAodm9pZCAqX19hZGRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIHZvaWQgKnNicmsgKGludHB0cl90IF9fZGVsdGEpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMTA2MSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5o IiAzIDQKPiA+Pj4gZXh0ZXJuIGxvbmcgaW50IHN5c2NhbGwgKGxvbmcgaW50IF9fc3lzbm8sIC4u LikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyAxMTE1 ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGZkYXRhc3luYyAo aW50IF9fZmlsZGVzKTsKPiA+Pj4gIyAxMTU0ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ ID4+Pgo+ID4+PiAjIDU5ICJtYWNoaW5lLmMiIDIKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3lz L3BhcmFtLmgiIDEgMyA0Cj4gPj4+ICMgMjMgIi91c3IvaW5jbHVkZS9zeXMvcGFyYW0uaCIgMyA0 Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUv c3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMjQgIi91c3IvaW5jbHVkZS9zeXMvcGFyYW0uaCIgMiAz IDQKPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv Ni4xLjEvaW5jbHVkZS9saW1pdHMuaCIgMSAzIDQKPiA+Pj4gIyAzNCAiL3Vzci9saWIvZ2NjL2k2 ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvbGltaXRzLmgiIDMgNAo+ID4+PiAjIDEgIi91 c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N5c2xpbWl0cy5oIiAx IDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3Iv bGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL2xpbWl0cy5oIiAxIDMgNAo+ ID4+PiAjIDE2OCAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUv bGltaXRzLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9saW1pdHMuaCIgMSAzIDQKPiA+ Pj4gIyAxNDMgIi91c3IvaW5jbHVkZS9saW1pdHMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNs dWRlL2JpdHMvcG9zaXgxX2xpbS5oIiAxIDMgNAo+ID4+PiAjIDE2MCAiL3Vzci9pbmNsdWRlL2Jp dHMvcG9zaXgxX2xpbS5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9sb2NhbF9s aW0uaCIgMSAzIDQKPiA+Pj4gIyAzOCAiL3Vzci9pbmNsdWRlL2JpdHMvbG9jYWxfbGltLmgiIDMg NAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9saW51eC9saW1pdHMuaCIgMSAzIDQKPiA+Pj4gIyAz OSAiL3Vzci9pbmNsdWRlL2JpdHMvbG9jYWxfbGltLmgiIDIgMyA0Cj4gPj4+ICMgMTYxICIvdXNy L2luY2x1ZGUvYml0cy9wb3NpeDFfbGltLmgiIDIgMyA0Cj4gPj4+ICMgMTQ0ICIvdXNyL2luY2x1 ZGUvbGltaXRzLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNs dWRlL2JpdHMvcG9zaXgyX2xpbS5oIiAxIDMgNAo+ID4+PiAjIDE0OCAiL3Vzci9pbmNsdWRlL2xp bWl0cy5oIiAyIDMgNAo+ID4+PiAjIDE2OSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4 LzYuMS4xL2luY2x1ZGUvbGltaXRzLmgiIDIgMyA0Cj4gPj4+ICMgOCAiL3Vzci9saWIvZ2NjL2k2 ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3lzbGltaXRzLmgiIDIgMyA0Cj4gPj4+ICMg MzUgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL2xpbWl0cy5o IiAyIDMgNAo+ID4+PiAjIDI3ICIvdXNyL2luY2x1ZGUvc3lzL3BhcmFtLmgiIDIgMyA0Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvcGFyYW0uaCIg MSAzIDQKPiA+Pj4gIyAyOCAiL3Vzci9pbmNsdWRlL2JpdHMvcGFyYW0uaCIgMyA0Cj4gPj4+ICMg MSAiL3Vzci9pbmNsdWRlL2xpbnV4L3BhcmFtLmgiIDEgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS9wYXJhbS5oIiAxIDMgNAo+ID4+PiAjIDEgIi91c3Iv aW5jbHVkZS9hc20tZ2VuZXJpYy9wYXJhbS5oIiAxIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVk ZS9hc20vcGFyYW0uaCIgMiAzIDQKPiA+Pj4gIyA1ICIvdXNyL2luY2x1ZGUvbGludXgvcGFyYW0u aCIgMiAzIDQKPiA+Pj4gIyAyOSAiL3Vzci9pbmNsdWRlL2JpdHMvcGFyYW0uaCIgMiAzIDQKPiA+ Pj4gIyAzMiAiL3Vzci9pbmNsdWRlL3N5cy9wYXJhbS5oIiAyIDMgNAo+ID4+PiAjIDYwICJtYWNo aW5lLmMiIDIKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMSAzIDQKPiA+Pj4g IyAyNyAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVk ZS9iaXRzL3RpbWUuaCIgMSAzIDQKPiA+Pj4gIyAyOCAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgi IDIgMyA0Cj4gPj4+ICMgMzcgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAzIDQKPiA+Pj4KPiA+ Pj4gIyA1NSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNAo+ID4+PiBzdHJ1Y3QgdGltZXpv bmUKPiA+Pj4gICB7Cj4gPj4+ICAgICBpbnQgdHpfbWludXRlc3dlc3Q7Cj4gPj4+ICAgICBpbnQg dHpfZHN0dGltZTsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdCB0aW1lem9u ZSAqX19yZXN0cmljdCBfX3RpbWV6b25lX3B0cl90Owo+ID4+PiAjIDcxICIvdXNyL2luY2x1ZGUv c3lzL3RpbWUuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZ2V0dGltZW9mZGF5IChzdHJ1Y3QgdGlt ZXZhbCAqX19yZXN0cmljdCBfX3R2LAo+ID4+PiAgICAgX190aW1lem9uZV9wdHJfdCBfX3R6KSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf X25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCBzZXR0aW1lb2ZkYXkgKGNvbnN0IHN0cnVjdCB0aW1ldmFsICpfX3R2LAo+ID4+PiAgICAgY29u c3Qgc3RydWN0IHRpbWV6b25lICpfX3R6KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgYWRqdGltZSAoY29uc3Qgc3RydWN0IHRpbWV2YWwgKl9fZGVsdGEsCj4gPj4+ ICAgICAgIHN0cnVjdCB0aW1ldmFsICpfX29sZGRlbHRhKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBlbnVtIF9f aXRpbWVyX3doaWNoCj4gPj4+ICAgewo+ID4+Pgo+ID4+PiAgICAgSVRJTUVSX1JFQUwgPSAwLAo+ ID4+Pgo+ID4+Pgo+ID4+PiAgICAgSVRJTUVSX1ZJUlRVQUwgPSAxLAo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiAgICAgSVRJTUVSX1BST0YgPSAyCj4gPj4+Cj4gPj4+ICAgfTsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gc3RydWN0IGl0aW1lcnZhbAo+ID4+PiAgIHsKPiA+Pj4KPiA+Pj4gICAgIHN0 cnVjdCB0aW1ldmFsIGl0X2ludGVydmFsOwo+ID4+Pgo+ID4+PiAgICAgc3RydWN0IHRpbWV2YWwg aXRfdmFsdWU7Cj4gPj4+ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gdHlwZWRlZiBpbnQgX19pdGltZXJfd2hpY2hfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRpdGltZXIgKF9faXRpbWVyX3doaWNoX3QgX193aGljaCwK PiA+Pj4gICAgICAgICBzdHJ1Y3QgaXRpbWVydmFsICpfX3ZhbHVlKSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gaW50IHNldGl0aW1lciAoX19pdGltZXJfd2hpY2hfdCBfX3doaWNoLAo+ID4+PiAgICAg ICAgIGNvbnN0IHN0cnVjdCBpdGltZXJ2YWwgKl9fcmVzdHJpY3QgX19uZXcsCj4gPj4+ICAgICAg ICAgc3RydWN0IGl0aW1lcnZhbCAqX19yZXN0cmljdCBfX29sZCkgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGludCB1dGltZXMgKGNvbnN0IGNoYXIgKl9fZmlsZSwgY29uc3Qgc3RydWN0IHRpbWV2YWwg X190dnBbMl0pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBpbnQgbHV0aW1lcyAoY29uc3QgY2hhciAqX19maWxlLCBjb25zdCBzdHJ1 Y3QgdGltZXZhbCBfX3R2cFsyXSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBmdXRpbWVzIChpbnQgX19mZCwgY29uc3Qgc3RydWN0IHRp bWV2YWwgX190dnBbMl0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7 Cj4gPj4+ICMgMTg5ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMg NjEgIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9zeXMvdGltZXMuaCIgMSAz IDQKPiA+Pj4gIyAzMSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lcy5oIiAzIDQKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gc3RydWN0IHRtcwo+ID4+PiAgIHsKPiA+Pj4gICAgIGNsb2NrX3QgdG1zX3V0 aW1lOwo+ID4+PiAgICAgY2xvY2tfdCB0bXNfc3RpbWU7Cj4gPj4+Cj4gPj4+ICAgICBjbG9ja190 IHRtc19jdXRpbWU7Cj4gPj4+ICAgICBjbG9ja190IHRtc19jc3RpbWU7Cj4gPj4+ICAgfTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNsb2NrX3QgdGlt ZXMgKHN0cnVjdCB0bXMgKl9fYnVmZmVyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDYyICJtYWNoaW5lLmMiIDIKPiA+Pj4gIyAx ICIvdXNyL2luY2x1ZGUvc3lzL3Jlc291cmNlLmgiIDEgMyA0Cj4gPj4+ICMgMjQgIi91c3IvaW5j bHVkZS9zeXMvcmVzb3VyY2UuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvcmVz b3VyY2UuaCIgMSAzIDQKPiA+Pj4gIyAzMSAiL3Vzci9pbmNsdWRlL2JpdHMvcmVzb3VyY2UuaCIg MyA0Cj4gPj4+IGVudW0gX19ybGltaXRfcmVzb3VyY2UKPiA+Pj4gewo+ID4+Pgo+ID4+PiAgIFJM SU1JVF9DUFUgPSAwLAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIFJMSU1JVF9GU0laRSA9IDEs Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgUkxJTUlUX0RBVEEgPSAyLAo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiAgIFJMSU1JVF9TVEFDSyA9IDMsCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAg UkxJTUlUX0NPUkUgPSA0LAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiAgIF9fUkxJTUlUX1JTUyA9IDUsCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgUkxJTUlUX05P RklMRSA9IDcsCj4gPj4+ICAgX19STElNSVRfT0ZJTEUgPSBSTElNSVRfTk9GSUxFLAo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIFJMSU1JVF9BUyA9IDksCj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+ICAgX19STElNSVRfTlBST0MgPSA2LAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIF9f UkxJTUlUX01FTUxPQ0sgPSA4LAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIF9fUkxJTUlUX0xP Q0tTID0gMTAsCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgX19STElNSVRfU0lHUEVORElORyA9 IDExLAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIF9fUkxJTUlUX01TR1FVRVVFID0gMTIsCj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgX19STElNSVRfTklDRSA9IDEzLAo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIF9fUkxJTUlUX1JUUFJJTyA9IDE0LAo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIF9fUkxJTUlUX1JUVElNRSA9IDE1LAo+ ID4+Pgo+ID4+Pgo+ID4+PiAgIF9fUkxJTUlUX05MSU1JVFMgPSAxNiwKPiA+Pj4gICBfX1JMSU1f TkxJTUlUUyA9IF9fUkxJTUlUX05MSU1JVFMKPiA+Pj4KPiA+Pj4KPiA+Pj4gfTsKPiA+Pj4gIyAx MzEgIi91c3IvaW5jbHVkZS9iaXRzL3Jlc291cmNlLmgiIDMgNAo+ID4+PiB0eXBlZGVmIF9fcmxp bV90IHJsaW1fdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gc3RydWN0IHJsaW1pdAo+ID4+PiAgIHsKPiA+Pj4KPiA+Pj4gICAgIHJsaW1fdCBybGltX2N1 cjsKPiA+Pj4KPiA+Pj4gICAgIHJsaW1fdCBybGltX21heDsKPiA+Pj4gICB9Owo+ID4+PiAjIDE1 OCAiL3Vzci9pbmNsdWRlL2JpdHMvcmVzb3VyY2UuaCIgMyA0Cj4gPj4+IGVudW0gX19ydXNhZ2Vf d2hvCj4gPj4+IHsKPiA+Pj4KPiA+Pj4gICBSVVNBR0VfU0VMRiA9IDAsCj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+ICAgUlVTQUdFX0NISUxEUkVOID0gLTEKPiA+Pj4gIyAxNzYgIi91c3IvaW5jbHVk ZS9iaXRzL3Jlc291cmNlLmgiIDMgNAo+ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91 c3IvaW5jbHVkZS9iaXRzL3RpbWUuaCIgMSAzIDQKPiA+Pj4gIyAxODAgIi91c3IvaW5jbHVkZS9i aXRzL3Jlc291cmNlLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IHN0cnVjdCBydXNhZ2UKPiA+Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1 Y3QgdGltZXZhbCBydV91dGltZTsKPiA+Pj4KPiA+Pj4gICAgIHN0cnVjdCB0aW1ldmFsIHJ1X3N0 aW1lOwo+ID4+Pgo+ID4+PiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+ID4+PiAgICAgICB7Cj4g Pj4+ICBsb25nIGludCBydV9tYXhyc3M7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X21h eHJzc193b3JkOwo+ID4+PiAgICAgICB9Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX19l eHRlbnNpb25fXyB1bmlvbgo+ID4+PiAgICAgICB7Cj4gPj4+ICBsb25nIGludCBydV9peHJzczsK PiA+Pj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfaXhyc3Nfd29yZDsKPiA+Pj4gICAgICAgfTsK PiA+Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiA+Pj4gICAgICAgewo+ID4+PiAg bG9uZyBpbnQgcnVfaWRyc3M7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X2lkcnNzX3dv cmQ7Cj4gPj4+ICAgICAgIH07Cj4gPj4+Cj4gPj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4g Pj4+ICAgICAgIHsKPiA+Pj4gIGxvbmcgaW50IHJ1X2lzcnNzOwo+ID4+PiAgIF9fc3lzY2FsbF9z bG9uZ190IF9fcnVfaXNyc3Nfd29yZDsKPiA+Pj4gICAgICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4g ICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiA+Pj4gICAgICAgewo+ID4+PiAgbG9uZyBpbnQgcnVf bWluZmx0Owo+ID4+PiAgX19zeXNjYWxsX3Nsb25nX3QgX19ydV9taW5mbHRfd29yZDsKPiA+Pj4g ICAgICAgfTsKPiA+Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiA+Pj4gICAgICAg ewo+ID4+PiAgbG9uZyBpbnQgcnVfbWFqZmx0Owo+ID4+PiAgX19zeXNjYWxsX3Nsb25nX3QgX19y dV9tYWpmbHRfd29yZDsKPiA+Pj4gICAgICAgfTsKPiA+Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9u X18gdW5pb24KPiA+Pj4gICAgICAgewo+ID4+PiAgbG9uZyBpbnQgcnVfbnN3YXA7Cj4gPj4+ICBf X3N5c2NhbGxfc2xvbmdfdCBfX3J1X25zd2FwX3dvcmQ7Cj4gPj4+ICAgICAgIH07Cj4gPj4+Cj4g Pj4+Cj4gPj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gPj4+ICAgICAgIHsKPiA+Pj4gIGxv bmcgaW50IHJ1X2luYmxvY2s7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X2luYmxvY2tf d29yZDsKPiA+Pj4gICAgICAgfTsKPiA+Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24K PiA+Pj4gICAgICAgewo+ID4+PiAgbG9uZyBpbnQgcnVfb3VibG9jazsKPiA+Pj4gIF9fc3lzY2Fs bF9zbG9uZ190IF9fcnVfb3VibG9ja193b3JkOwo+ID4+PiAgICAgICB9Owo+ID4+Pgo+ID4+PiAg ICAgX19leHRlbnNpb25fXyB1bmlvbgo+ID4+PiAgICAgICB7Cj4gPj4+ICBsb25nIGludCBydV9t c2dzbmQ7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X21zZ3NuZF93b3JkOwo+ID4+PiAg ICAgICB9Owo+ID4+Pgo+ID4+PiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+ID4+PiAgICAgICB7 Cj4gPj4+ICBsb25nIGludCBydV9tc2dyY3Y7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1 X21zZ3Jjdl93b3JkOwo+ID4+PiAgICAgICB9Owo+ID4+Pgo+ID4+PiAgICAgX19leHRlbnNpb25f XyB1bmlvbgo+ID4+PiAgICAgICB7Cj4gPj4+ICBsb25nIGludCBydV9uc2lnbmFsczsKPiA+Pj4g IF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbnNpZ25hbHNfd29yZDsKPiA+Pj4gICAgICAgfTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiA+Pj4gICAgICAg ewo+ID4+PiAgbG9uZyBpbnQgcnVfbnZjc3c7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1 X252Y3N3X3dvcmQ7Cj4gPj4+ICAgICAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfX2V4dGVu c2lvbl9fIHVuaW9uCj4gPj4+ICAgICAgIHsKPiA+Pj4gIGxvbmcgaW50IHJ1X25pdmNzdzsKPiA+ Pj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbml2Y3N3X3dvcmQ7Cj4gPj4+ICAgICAgIH07Cj4g Pj4+ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZW51bSBfX3ByaW9yaXR5X3doaWNoCj4gPj4+IHsKPiA+Pj4gICBQUklPX1BST0NFU1MgPSAwLAo+ ID4+Pgo+ID4+PiAgIFBSSU9fUEdSUCA9IDEsCj4gPj4+Cj4gPj4+ICAgUFJJT19VU0VSID0gMgo+ ID4+Pgo+ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDMyOCAiL3Vzci9pbmNsdWRl L2JpdHMvcmVzb3VyY2UuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjUgIi91c3IvaW5jbHVkZS9zeXMv cmVzb3VyY2UuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gIyA0MiAiL3Vzci9pbmNsdWRlL3N5cy9yZXNvdXJjZS5oIiAzIDQKPiA+Pj4gdHlw ZWRlZiBpbnQgX19ybGltaXRfcmVzb3VyY2VfdDsKPiA+Pj4gdHlwZWRlZiBpbnQgX19ydXNhZ2Vf d2hvX3Q7Cj4gPj4+IHR5cGVkZWYgaW50IF9fcHJpb3JpdHlfd2hpY2hfdDsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRybGltaXQgKF9fcmxpbWl0X3Jl c291cmNlX3QgX19yZXNvdXJjZSwKPiA+Pj4gICAgICAgICBzdHJ1Y3QgcmxpbWl0ICpfX3JsaW1p dHMpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgNjkg Ii91c3IvaW5jbHVkZS9zeXMvcmVzb3VyY2UuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgc2V0cmxp bWl0IChfX3JsaW1pdF9yZXNvdXJjZV90IF9fcmVzb3VyY2UsCj4gPj4+ICAgICAgICAgY29uc3Qg c3RydWN0IHJsaW1pdCAqX19ybGltaXRzKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+PiAjIDg3ICIvdXNyL2luY2x1ZGUvc3lzL3Jlc291cmNlLmgiIDMgNAo+ ID4+PiBleHRlcm4gaW50IGdldHJ1c2FnZSAoX19ydXNhZ2Vfd2hvX3QgX193aG8sIHN0cnVjdCBy dXNhZ2UgKl9fdXNhZ2UpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZ2V0cHJpb3Jp dHkgKF9fcHJpb3JpdHlfd2hpY2hfdCBfX3doaWNoLCBpZF90IF9fd2hvKSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gaW50IHNldHByaW9yaXR5IChfX3ByaW9yaXR5X3doaWNoX3QgX193aGljaCwgaWRfdCBfX3do bywgaW50IF9fcHJpbykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDYzICJtYWNoaW5lLmMiIDIKPiA+Pj4gIyA3 MSAibWFjaGluZS5jIgo+ID4+PiAjIDEgImVuZ2luZV9wbC5oIiAxCj4gPj4+ICMgNDAgImVuZ2lu ZV9wbC5oIgo+ID4+PiAjIDEgInBsX3BhcmFtcy5oIiAxCj4gPj4+ICMgNDEgImVuZ2luZV9wbC5o IiAyCj4gPj4+ICMgMSAiaGFzaF9mY3QuaCIgMQo+ID4+PiAjIDUzICJoYXNoX2ZjdC5oIgo+ID4+ Pgo+ID4+PiAjIDUzICJoYXNoX2ZjdC5oIgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4g Pj4+ICAgaW50IGxlbjsKPiA+Pj4gICB1aW50MzJfdCBoYXNoOwo+ID4+PiB9IEhhc2hJbmNySW5m bzsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdWludDMy X3QgUGxfSGFzaF9CdWZmZXIoY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7Cj4gPj4+Cj4gPj4+ IHZvaWQgUGxfSGFzaF9JbmNyX0luaXQoSGFzaEluY3JJbmZvICpoaSk7Cj4gPj4+Cj4gPj4+IHZv aWQgUGxfSGFzaF9JbmNyX0J1ZmZlcihIYXNoSW5jckluZm8gKmhpLCBjb25zdCB2b2lkICpkYXRh LCBpbnQgbGVuKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9IYXNoX0luY3JfSW50MzIoSGFzaEluY3JJ bmZvICpoaSwgdWludDMyX3QgeCk7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfSGFzaF9JbmNyX0ludDY0 KEhhc2hJbmNySW5mbyAqaGksIHVpbnQ2NF90IHgpOwo+ID4+Pgo+ID4+PiB2b2lkIFBsX0hhc2hf SW5jcl9Eb3VibGUoSGFzaEluY3JJbmZvICpoaSwgZG91YmxlIHgpOwo+ID4+Pgo+ID4+PiB1aW50 MzJfdCBQbF9IYXNoX0luY3JfVGVybShIYXNoSW5jckluZm8gKmhpKTsKPiA+Pj4gIyA0MiAiZW5n aW5lX3BsLmgiIDIKPiA+Pj4gIyAxICJoYXNoLmgiIDEKPiA+Pj4gIyA0OCAiaGFzaC5oIgo+ID4+ PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4gPj4+ICAgY2hhciAqZW5kdDsKPiA+Pj4gICBjaGFy ICpjdXJfdDsKPiA+Pj4gICBjaGFyICpjdXJfcDsKPiA+Pj4gfQo+ID4+PiBIYXNoU2NhbjsKPiA+ Pj4gIyA2NyAiaGFzaC5oIgo+ID4+PiBjaGFyICpQbF9IYXNoX0FsbG9jX1RhYmxlKGludCB0Ymxf c2l6ZSwgaW50IGVsZW1fc2l6ZSk7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfSGFzaF9GcmVlX1RhYmxl KGNoYXIgKnRibCk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0hhc2hfUmVhbGxvY19UYWJsZShjaGFy ICp0YmwsIGludCBuZXdfdGJsX3NpemUpOwo+ID4+Pgo+ID4+PiB2b2lkIFBsX0hhc2hfRGVsZXRl X0FsbChjaGFyICp0YmwpOwo+ID4+Pgo+ID4+PiBjaGFyICpQbF9IYXNoX0luc2VydChjaGFyICp0 YmwsIGNoYXIgKmVsZW0sIGludCByZXBsYWNlKTsKPiA+Pj4KPiA+Pj4gY2hhciAqUGxfSGFzaF9G aW5kKGNoYXIgKnRibCwgUGxMb25nIGtleSk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0hhc2hfRGVs ZXRlKGNoYXIgKnRibCwgUGxMb25nIGtleSk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0hhc2hfRmly c3QoY2hhciAqdGJsLCBIYXNoU2NhbiAqc2Nhbik7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0hhc2hf TmV4dChIYXNoU2NhbiAqc2Nhbik7Cj4gPj4+Cj4gPj4+IGludCBQbF9IYXNoX1RhYmxlX1NpemUo Y2hhciAqdGJsKTsKPiA+Pj4KPiA+Pj4gaW50IFBsX0hhc2hfTmJfRWxlbWVudHMoY2hhciAqdGJs KTsKPiA+Pj4gIyA0MyAiZW5naW5lX3BsLmgiIDIKPiA+Pj4gIyAxICJib29sLmgiIDEKPiA+Pj4g IyA2NSAiYm9vbC5oIgo+ID4+PiB0eXBlZGVmIGludCBCb29sOwo+ID4+PiAjIDQ0ICJlbmdpbmVf cGwuaCIgMgo+ID4+PiAjIDEgIndhbV9yZWdzLmgiIDEKPiA+Pj4gIyA0NSAiZW5naW5lX3BsLmgi IDIKPiA+Pj4gIyAxICJ3YW1fYXJjaGkuaCIgMQo+ID4+PiAjIDQ0ICJ3YW1fYXJjaGkuaCIKPiA+ Pj4gdHlwZWRlZiBpbnRwdHJfdCBXYW1Xb3JkOwo+ID4+Pgo+ID4+PiB0eXBlZGVmIHZvaWQgKCpD b2RlUHRyKSAoKTsKPiA+Pj4KPiA+Pj4gdHlwZWRlZiBDb2RlUHRyIFdhbUNvbnQ7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgV2FtV29yZCAqV2FtV29y ZFA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHJlZ2lzdGVyIFdh bVdvcmRQIFRSIGFzbSAoImVieCIpOwo+ID4+PiAjIDk2ICJ3YW1fYXJjaGkuaCIKPiA+Pj4gZXh0 ZXJuIFdhbVdvcmQgcGxfcmVnX2JhbmtbXTsKPiA+Pj4gZXh0ZXJuIFdhbVdvcmQgcGxfYnVmZl9z aWduYWxfcmVnW107Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpwbF9yZWdfdGJsW107Cj4gPj4+ ICMgMjcwICJ3YW1fYXJjaGkuaCIKPiA+Pj4gdHlwZWRlZiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBM T05HX0lOVCwKPiA+Pj4gICBTSE9SVF9VTlMsCj4gPj4+ICAgQUREUkVTUwo+ID4+PiB9VHlwVGFn Owo+ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4gPj4+ICAgY2hhciAqbmFtZTsK PiA+Pj4gICBUeXBUYWcgdHlwZTsKPiA+Pj4gICBpbnQgdmFsdWU7Cj4gPj4+ICAgUGxMb25nIHRh Z19tYXNrOwo+ID4+PiB9SW5mVGFnOwo+ID4+PiAjIDMwMSAid2FtX2FyY2hpLmgiCj4gPj4+IGV4 dGVybiBJbmZUYWcgcGxfdGFnX3RibFtdOwo+ID4+PiAjIDMyOCAid2FtX2FyY2hpLmgiCj4gPj4+ ICMgMSAid2FtX3N0YWNrcy5oIiAxCj4gPj4+ICMgMjcgIndhbV9zdGFja3MuaCIKPiA+Pj4gdHlw ZWRlZiBzdHJ1Y3QKPiA+Pj4gewo+ID4+PiAgIGNoYXIgKm5hbWU7Cj4gPj4+ICAgY2hhciAqZGVz YzsKPiA+Pj4gICBjaGFyICplbnZfdmFyX25hbWU7Cj4gPj4+ICAgUGxMb25nICpwX2RlZl9zaXpl Owo+ID4+PiAgIGludCBkZWZhdWx0X3NpemU7Cj4gPj4+ICAgaW50IHNpemU7Cj4gPj4+ICAgV2Ft V29yZCAqc3RhY2s7Cj4gPj4+IH1JbmZTdGFjazsKPiA+Pj4gIyA1OCAid2FtX3N0YWNrcy5oIgo+ ID4+PiBleHRlcm4gUGxMb25nIHBsX2RlZl90cmFpbF9zaXplOwo+ID4+PiBleHRlcm4gUGxMb25n IHBsX2RlZl9jc3RyX3NpemU7Cj4gPj4+IGV4dGVybiBQbExvbmcgcGxfZGVmX2dsb2JhbF9zaXpl Owo+ID4+PiBleHRlcm4gUGxMb25nIHBsX2RlZl9sb2NhbF9zaXplOwo+ID4+PiBleHRlcm4gUGxM b25nIHBsX2ZpeGVkX3NpemVzOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gSW5mU3RhY2sgcGxf c3RrX3RibFtdOwo+ID4+PiAjIDMyOSAid2FtX2FyY2hpLmgiIDIKPiA+Pj4gIyA0NiAiZW5naW5l X3BsLmgiIDIKPiA+Pj4gIyAxICJlbmdpbmUuaCIgMQo+ID4+PiAjIDg3ICJlbmdpbmUuaCIKPiA+ Pj4gZXh0ZXJuIGludCBwbF9vc19hcmdjOwo+ID4+PiBleHRlcm4gY2hhciAqKnBsX29zX2FyZ3Y7 Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpwbF9ob21lOwo+ID4+PiBleHRlcm4gaW50IHBsX2Rl dmVsX21vZGU7Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyIHBsX2dsb2JfYnVmZltdOwo+ID4+Pgo+ ID4+PiBleHRlcm4gUGxMb25nICpwbF9iYXNlX2ZsOwo+ID4+PiBleHRlcm4gZG91YmxlICpwbF9i YXNlX2ZkOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHBsX2xlX21vZGU7Cj4gPj4+ICMgMTA4ICJl bmdpbmUuaCIKPiA+Pj4gaW50IFBsX1N0YXJ0X1Byb2xvZyhpbnQgYXJnYywgY2hhciAqYXJndltd KTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9TdG9wX1Byb2xvZyh2b2lkKTsKPiA+Pj4KPiA+Pj4gdm9p ZCBQbF9SZXNldF9Qcm9sb2codm9pZCk7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfUmVzZXRfUHJvbG9n X0luX1NpZ25hbCh2b2lkKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9TZXRfSGVhcF9BY3R1YWxfU3Rh cnQoV2FtV29yZCAqaGVhcF9hY3R1YWxfc3RhcnQpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB2 b2lkIFBsX0V4ZWN1dGVfRGlyZWN0aXZlKGludCBwbF9maWxlLCBpbnQgcGxfbGluZSwgQm9vbCBp c19zeXN0ZW0sCj4gPj4+ICAgICAgQ29kZVB0ciBwcm9jKTsKPiA+Pj4KPiA+Pj4gQm9vbCBQbF9U cnlfRXhlY3V0ZV9Ub3BfTGV2ZWwodm9pZCk7Cj4gPj4+Cj4gPj4+IEJvb2wgUGxfQ2FsbF9Qcm9s b2coQ29kZVB0ciBjb2RlcCk7Cj4gPj4+Cj4gPj4+IEJvb2wgUGxfQ2FsbF9Qcm9sb2dfTmV4dF9T b2woV2FtV29yZCAqcXVlcnlfYik7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfS2VlcF9SZXN0X0Zvcl9Q cm9sb2coV2FtV29yZCAqcXVlcnlfYik7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfRXhpdF9XaXRoX0V4 Y2VwdGlvbih2b2lkKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9FeGVjdXRlX0FfQ29udGludWF0aW9u KENvZGVQdHIgY29kZXApOwo+ID4+PiAjIDQ3ICJlbmdpbmVfcGwuaCIgMgo+ID4+PiAjIDEgImF0 b20uaCIgMQo+ID4+PiAjIDk3ICJhdG9tLmgiCj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+IHsK PiA+Pj4gICB1bnNpZ25lZCBsZW5ndGg6MTY7Cj4gPj4+ICAgdW5zaWduZWQgb3BfbWFzazo0Owo+ ID4+PiAgIHVuc2lnbmVkIHR5cGU6MjsKPiA+Pj4gICB1bnNpZ25lZCBuZWVkc19xdW90ZToxOwo+ ID4+PiAgIHVuc2lnbmVkIG5lZWRzX3NjYW46MTsKPiA+Pj4gfQo+ID4+PiBBdG9tUHJvcDsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QKPiA+Pj4gewo+ID4+PiAg IGNoYXIgKm5hbWU7Cj4gPj4+ICAgdW5zaWduZWQgaGFzaDsKPiA+Pj4gICBBdG9tUHJvcCBwcm9w Owo+ID4+PiAgIHZvaWQgKmluZm87Cj4gPj4+IH0KPiA+Pj4gQXRvbUluZjsKPiA+Pj4gIyAxNTMg ImF0b20uaCIKPiA+Pj4gZXh0ZXJuIEF0b21JbmYgKnBsX2F0b21fdGJsOwo+ID4+PiBleHRlcm4g aW50IHBsX21heF9hdG9tOwo+ID4+PiBleHRlcm4gaW50IHBsX25iX2F0b207Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgcGxfYXRvbV92b2lkOwo+ID4+PiBleHRlcm4gaW50IHBsX2F0b21fY3VybHlf YnJhY2tldHM7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgcGxfYXRvbV9mYWxzZTsKPiA+Pj4gZXh0 ZXJuIGludCBwbF9hdG9tX3RydWU7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgcGxfYXRvbV9lbmRf b2ZfZmlsZTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIg cGxfY2hhcl9jb252W107Cj4gPj4+IGV4dGVybiBpbnQgcGxfY2hhcl90eXBlW107Cj4gPj4+Cj4g Pj4+IGV4dGVybiBjaGFyIHBsX2VzY2FwZV9zeW1ib2xbXTsKPiA+Pj4gZXh0ZXJuIGNoYXIgcGxf ZXNjYXBlX2NoYXJbXTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gUGxMb25nIHBsX2RlZl9tYXhf YXRvbTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdm9p ZCBQbF9Jbml0X0F0b20odm9pZCk7Cj4gPj4+Cj4gPj4+IGludCBQbF9DcmVhdGVfQWxsb2NhdGVf QXRvbShjaGFyICpuYW1lKTsKPiA+Pj4KPiA+Pj4gaW50IFBsX0NyZWF0ZV9BdG9tKGNoYXIgKm5h bWUpOwo+ID4+Pgo+ID4+PiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9D cmVhdGVfQXRvbV9UYWdnZWQoY2hhciAqbmFtZSk7Cj4gPj4+Cj4gPj4+IGludCBQbF9GaW5kX0F0 b20oY2hhciAqbmFtZSk7Cj4gPj4+Cj4gPj4+IGludCBQbF9HZW5fTmV3X0F0b20oY2hhciAqcHJl Zml4KTsKPiA+Pj4KPiA+Pj4gaW50IFBsX0ZpbmRfTmV4dF9BdG9tKGludCBsYXN0X2F0b20pOwo+ ID4+PiAjIDQ4ICJlbmdpbmVfcGwuaCIgMgo+ID4+PiAjIDEgInByZWQuaCIgMQo+ID4+PiAjIDYy ICJwcmVkLmgiCj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+IHsKPiA+Pj4gICBQbExvbmcgZl9u Owo+ID4+PiAgIGludCBwbF9maWxlOwo+ID4+PiAgIGludCBwbF9saW5lOwo+ID4+PiAgIGludCBw cm9wOwo+ID4+PiAgIFBsTG9uZyAqY29kZXA7Cj4gPj4+ICAgUGxMb25nICpkeW47Cj4gPj4+IH0K PiA+Pj4gUHJlZEluZjsKPiA+Pj4gIyA4NiAicHJlZC5oIgo+ID4+PiBleHRlcm4gY2hhciAqcGxf cHJlZF90Ymw7Cj4gPj4+ICMgOTcgInByZWQuaCIKPiA+Pj4gdm9pZCBQbF9Jbml0X1ByZWQodm9p ZCk7Cj4gPj4+Cj4gPj4+IFByZWRJbmYgKiBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxf Q3JlYXRlX1ByZWQoaW50IGZ1bmMsIGludCBhcml0eSwgaW50IHBsX2ZpbGUsIGludCBwbF9saW5l LAo+ID4+PiAgICAgICAgaW50IHByb3AsIFBsTG9uZyAqY29kZXApOwo+ID4+Pgo+ID4+PiBQcmVk SW5mICogX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0xvb2t1cF9QcmVkKGludCBmdW5j LCBpbnQgYXJpdHkpOwo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykp KSBQbF9EZWxldGVfUHJlZChpbnQgZnVuYywgaW50IGFyaXR5KTsKPiA+Pj4gIyA0OSAiZW5naW5l X3BsLmgiIDIKPiA+Pj4gIyAxICJtaXNjLmgiIDEKPiA+Pj4gIyA1NyAibWlzYy5oIgo+ID4+PiBj aGFyICpQbF9NYWxsb2NfQ2hlY2sodW5zaWduZWQgc2l6ZSwgY2hhciAqc3JjX2ZpbGUsIGludCBz cmNfbGluZSk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0NhbGxvY19DaGVjayh1bnNpZ25lZCBuYiwg dW5zaWduZWQgc2l6ZSwgY2hhciAqc3JjX2ZpbGUsCj4gPj4+ICAgICAgaW50IHNyY19saW5lKTsK PiA+Pj4KPiA+Pj4gY2hhciAqUGxfUmVhbGxvY19DaGVjayhjaGFyICpwdHIsIHVuc2lnbmVkIHNp emUsIGNoYXIgKnNyY19maWxlLCBpbnQgc3JjX2xpbmUpOwo+ID4+Pgo+ID4+PiBjaGFyICpQbF9T dHJkdXBfQ2hlY2soY2hhciAqc3RyLCBjaGFyICpzcmNfZmlsZSwgaW50IHNyY19saW5lKTsKPiA+ Pj4gIyA3NiAibWlzYy5oIgo+ID4+PiB2b2lkIFBsX0V4dGVuZF9UYWJsZV9JZl9OZWVkZWQoY2hh ciAqKmhhc2hfdGJsKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9FeHRlbmRfQXJyYXkoY2hhciAqKnB0 YmwsIGludCAqbmJfZWxlbSwgaW50IGVsZW1fc2l6ZSwgQm9vbCBiemVybyk7Cj4gPj4+Cj4gPj4+ IHZvaWQgUGxfRXhpdF9XaXRoX1ZhbHVlKGludCByZXRfdmFsKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQ bF9GYXRhbF9FcnJvcihjaGFyICpmb3JtYXQsIC4uLik7Cj4gPj4+ICMgMTE0ICJtaXNjLmgiCj4g Pj4+IHZvaWQgKlBsX0R1bW15X1B0cih2b2lkICpwKTsKPiA+Pj4gIyA1MCAiZW5naW5lX3BsLmgi IDIKPiA+Pj4gIyAxICJvcGVyLmgiIDEKPiA+Pj4gIyA3MiAib3Blci5oIgo+ID4+PiB0eXBlZGVm IHN0cnVjdAo+ID4+PiB7Cj4gPj4+ICAgUGxMb25nIGFfdDsKPiA+Pj4gICBpbnQgcHJlYzsKPiA+ Pj4gICBpbnQgbGVmdDsKPiA+Pj4gICBpbnQgcmlnaHQ7Cj4gPj4+IH0KPiA+Pj4gT3BlckluZjsK PiA+Pj4gIyA5NCAib3Blci5oIgo+ID4+PiBleHRlcm4gY2hhciAqcGxfb3Blcl90Ymw7Cj4gPj4+ ICMgMTAzICJvcGVyLmgiCj4gPj4+IHZvaWQgUGxfSW5pdF9PcGVyKHZvaWQpOwo+ID4+Pgo+ID4+ PiBPcGVySW5mICpQbF9DcmVhdGVfT3BlcihpbnQgYXRvbV9vcCwgaW50IHR5cGUsIGludCBwcmVj LCBpbnQgbGVmdCwgaW50IHJpZ2h0KTsKPiA+Pj4KPiA+Pj4gT3BlckluZiAqUGxfTG9va3VwX09w ZXIoaW50IGF0b21fb3AsIGludCB0eXBlKTsKPiA+Pj4KPiA+Pj4gT3BlckluZiAqUGxfTG9va3Vw X09wZXJfQW55X1R5cGUoaW50IGF0b21fb3ApOwo+ID4+Pgo+ID4+PiBPcGVySW5mICpQbF9EZWxl dGVfT3BlcihpbnQgYXRvbV9vcCwgaW50IHR5cGUpOwo+ID4+PiAjIDUxICJlbmdpbmVfcGwuaCIg Mgo+ID4+PiAjIDEgIm1hY2hpbmUxLmgiIDEKPiA+Pj4gIyA3MCAibWFjaGluZTEuaCIKPiA+Pj4g ZXh0ZXJuIGludCBwbF9tX29zX3R5cGU7Cj4gPj4+IGV4dGVybiBjaGFyIHBsX21fYXJjaGl0ZWN0 dXJlW107Cj4gPj4+IGV4dGVybiBjaGFyIHBsX21fb3NfdmVyc2lvbltdOwo+ID4+PiAjIDgzICJt YWNoaW5lMS5oIgo+ID4+PiB2b2lkIFBsX0luaXRfTWFjaGluZTEodm9pZCk7Cj4gPj4+Cj4gPj4+ IGNoYXIgKipQbF9NX0NyZWF0ZV9TaGVsbF9Db21tYW5kKGNoYXIgKmNtZCk7Cj4gPj4+Cj4gPj4+ IGNoYXIgKipQbF9NX0NtZF9MaW5lX1RvX0FyZ3YoY2hhciAqY21kLCBpbnQgKmFyZ2MpOwo+ID4+ Pgo+ID4+PiBpbnQgUGxfTV9TaGVsbChjaGFyICpjbWQpOwo+ID4+Pgo+ID4+PiBpbnQgUGxfTV9T cGF3bihjaGFyICphcmdbXSk7Cj4gPj4+Cj4gPj4+IGludCBQbF9NX1NwYXduX1JlZGlyZWN0KGNo YXIgKmFyZ1tdLCBpbnQgZGV0YWNoLAo+ID4+PiAgICAgICAgRklMRSAqKmZfaW4sIEZJTEUgKipm X291dCwgRklMRSAqKmZfZXJyKTsKPiA+Pj4KPiA+Pj4gaW50IFBsX01fR2V0X1N0YXR1cyhpbnQg cGlkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gY2hhciAqUGxfTV9Na3RlbXAoY2hhciAqdG1w X3RlbXBsYXRlKTsKPiA+Pj4KPiA+Pj4gY2hhciAqUGxfTV9UZW1wbmFtKGNoYXIgKmRpciwgY2hh ciAqcGZ4KTsKPiA+Pj4gIyA1MiAiZW5naW5lX3BsLmgiIDIKPiA+Pj4gIyAxICJtYWNoaW5lLmgi IDEKPiA+Pj4gIyA2MSAibWFjaGluZS5oIgo+ID4+PiB2b2lkIFBsX0luaXRfTWFjaGluZSh2b2lk KTsKPiA+Pj4KPiA+Pj4gY2hhciAqUGxfTV9TeXNfRXJyX1N0cmluZyhpbnQgcmV0X3ZhbCk7Cj4g Pj4+Cj4gPj4+IFBsTG9uZyBQbF9NX1VzZXJfVGltZSh2b2lkKTsKPiA+Pj4KPiA+Pj4gUGxMb25n IFBsX01fU3lzdGVtX1RpbWUodm9pZCk7Cj4gPj4+Cj4gPj4+IFBsTG9uZyBQbF9NX1JlYWxfVGlt ZSh2b2lkKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9NX1JhbmRvbWl6ZSh2b2lkKTsKPiA+Pj4KPiA+ Pj4gdm9pZCBQbF9NX1NldF9TZWVkKGludCBuKTsKPiA+Pj4KPiA+Pj4gaW50IFBsX01fR2V0X1Nl ZWQodm9pZCk7Cj4gPj4+Cj4gPj4+IGludCBQbF9NX1JhbmRvbV9JbnRlZ2VyKGludCBuKTsKPiA+ Pj4KPiA+Pj4gZG91YmxlIFBsX01fUmFuZG9tX0Zsb2F0KGRvdWJsZSBuKTsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gY2hhciAqUGxfTV9Ib3N0X05hbWVfRnJvbV9OYW1lKGNoYXIgKmhvc3RfbmFt ZSk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX01fSG9zdF9OYW1lX0Zyb21fQWRyKGNoYXIgKmhvc3Rf YWRkcmVzcyk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX01fR2V0X1dvcmtpbmdfRGlyKHZvaWQpOwo+ ID4+Pgo+ID4+PiBCb29sIFBsX01fU2V0X1dvcmtpbmdfRGlyKGNoYXIgKnBhdGgpOwo+ID4+Pgo+ ID4+PiBjaGFyICpQbF9NX0Fic29sdXRlX1BhdGhfTmFtZShjaGFyICpzcmMpOwo+ID4+Pgo+ID4+ PiBCb29sIFBsX01fSXNfQWJzb2x1dGVfRmlsZV9OYW1lKGNoYXIgKnBhdGgpOwo+ID4+Pgo+ID4+ PiBjaGFyICpQbF9NX0RlY29tcG9zZV9GaWxlX05hbWUoY2hhciAqcGF0aCwgQm9vbCBkZWxfdHJh aWxfc2xhc2hlcywKPiA+Pj4gICAgICAgICAgIGNoYXIgKipiYXNlLCBjaGFyICoqc3VmZml4KTsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdm9pZCBNX0No ZWNrX01hZ2ljX1dvcmRzKHZvaWQpOwo+ID4+PiAjIDUzICJlbmdpbmVfcGwuaCIgMgo+ID4+PiAj IDEgInN0YWNrc19zaWdzZWd2LmgiIDEKPiA+Pj4gIyA1MCAic3RhY2tzX3NpZ3NlZ3YuaCIKPiA+ Pj4gdHlwZWRlZiBpbnQgKCpTZWd2SGRscikodm9pZCAqYmFkX2FkZHIpOwo+ID4+PiAjIDYwICJz dGFja3Nfc2lnc2Vndi5oIgo+ID4+PiB2b2lkIFBsX0FsbG9jYXRlX1N0YWNrcyh2b2lkKTsKPiA+ Pj4KPiA+Pj4gdm9pZCBQbF9QdXNoX1NJR1NFR1ZfSGFuZGxlcihTZWd2SGRsciBoYW5kbGVyKTsK PiA+Pj4KPiA+Pj4gdm9pZCBQbF9Qb3BfU0lHU0VHVl9IYW5kbGVyKHZvaWQpOwo+ID4+PiAjIDU0 ICJlbmdpbmVfcGwuaCIgMgo+ID4+PiAjIDEgIm9ial9jaGFpbi5oIiAxCj4gPj4+ICMgNTggIm9i al9jaGFpbi5oIgo+ID4+PiB2b2lkIFBsX0ZpbmRfTGlua2VkX09iamVjdHModm9pZCk7Cj4gPj4+ Cj4gPj4+IHZvaWQgUGxfTmV3X09iamVjdCh2b2lkICgqZmN0X29ial9pbml0KSgpLCB2b2lkICgq ZmN0X2V4ZWNfc3lzdGVtKSAoKSwgdm9pZCAoKmZjdF9leGVjX3VzZXIpICgpKTsKPiA+Pj4gIyA1 NSAiZW5naW5lX3BsLmgiIDIKPiA+Pj4gIyAxICJ3YW1faW5zdC5oIiAxCj4gPj4+ICMgMjQ5ICJ3 YW1faW5zdC5oIgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4gPj4+ICAgUGxMb25nIGtl eTsKPiA+Pj4gICBDb2RlUHRyIGNvZGVwOwo+ID4+PiB9Cj4gPj4+IFN3dEluZjsKPiA+Pj4KPiA+ Pj4gdHlwZWRlZiBTd3RJbmYgKlN3dFRibDsKPiA+Pj4gIyAyNjkgIndhbV9pbnN0LmgiCj4gPj4+ IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0ZV9GdW5jdG9yX0Fy aXR5X1RhZ2dlZChjaGFyICpmdW5jX3N0ciwgaW50IGFyaXR5KTsKPiA+Pj4KPiA+Pj4gU3d0VGJs IF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVfU3d0X1RhYmxlKGludCBzaXpl KTsKPiA+Pj4KPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3JlYXRl X1N3dF9BdG1fRWxlbWVudChTd3RUYmwgdCwgaW50IHNpemUsIGludCBhdG9tLCBDb2RlUHRyIGNv ZGVwKTsKPiA+Pj4KPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3Jl YXRlX1N3dF9TdGNfRWxlbWVudChTd3RUYmwgdCwgaW50IHNpemUsIGludCBmdW5jLCBpbnQgYXJp dHksCj4gPj4+ICAgICAgICBDb2RlUHRyIGNvZGVwKTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJp YnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0X0F0b21fVGFnZ2VkKFdhbVdvcmQgdywgV2FtV29y ZCBzdGFydF93b3JkKTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMp KSkgUGxfR2V0X0F0b20oaW50IGF0b20sIFdhbVdvcmQgc3RhcnRfd29yZCk7Cj4gPj4+Cj4gPj4+ IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0dldF9JbnRlZ2VyX1RhZ2dlZChX YW1Xb3JkIHcsIFdhbVdvcmQgc3RhcnRfd29yZCk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19hdHRyaWJ1 dGVfXygocmVncGFybSgzKSkpIFBsX0dldF9JbnRlZ2VyKFBsTG9uZyBuLCBXYW1Xb3JkIHN0YXJ0 X3dvcmQpOwo+ID4+Pgo+ID4+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9H ZXRfRmxvYXQoZG91YmxlIG4sIFdhbVdvcmQgc3RhcnRfd29yZCk7Cj4gPj4+Cj4gPj4+IEJvb2wg X19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0dldF9OaWwoV2FtV29yZCBzdGFydF93b3Jk KTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0X0xp c3QoV2FtV29yZCBzdGFydF93b3JkKTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChy ZWdwYXJtKDMpKSkgUGxfR2V0X1N0cnVjdHVyZV9UYWdnZWQoV2FtV29yZCB3LCBXYW1Xb3JkIHN0 YXJ0X3dvcmQpOwo+ID4+Pgo+ID4+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQ bF9HZXRfU3RydWN0dXJlKGludCBmdW5jLCBpbnQgYXJpdHksIFdhbVdvcmQgc3RhcnRfd29yZCk7 Cj4gPj4+Cj4gPj4+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9Y X1ZhcmlhYmxlKHZvaWQpOwo+ID4+Pgo+ID4+PiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bh cm0oMykpKSBQbF9QdXRfWV9WYXJpYWJsZShXYW1Xb3JkICp5X2Fkcik7Cj4gPj4+Cj4gPj4+IFdh bVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9VbnNhZmVfVmFsdWUoV2Ft V29yZCBzdGFydF93b3JkKTsKPiA+Pj4KPiA+Pj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdw YXJtKDMpKSkgUGxfUHV0X0F0b21fVGFnZ2VkKFdhbVdvcmQgdyk7Cj4gPj4+Cj4gPj4+IFdhbVdv cmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9BdG9tKGludCBhdG9tKTsKPiA+ Pj4KPiA+Pj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X0ludGVn ZXJfVGFnZ2VkKFdhbVdvcmQgdyk7Cj4gPj4+Cj4gPj4+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygo cmVncGFybSgzKSkpIFBsX1B1dF9JbnRlZ2VyKFBsTG9uZyBuKTsKPiA+Pj4KPiA+Pj4gV2FtV29y ZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X0Zsb2F0KGRvdWJsZSBuKTsKPiA+ Pj4KPiA+Pj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X05pbCh2 b2lkKTsKPiA+Pj4KPiA+Pj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxf UHV0X0xpc3Qodm9pZCk7Cj4gPj4+Cj4gPj4+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFy bSgzKSkpIFBsX1B1dF9TdHJ1Y3R1cmVfVGFnZ2VkKFdhbVdvcmQgdyk7Cj4gPj4+Cj4gPj4+IFdh bVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9TdHJ1Y3R1cmUoaW50IGZ1 bmMsIGludCBhcml0eSk7Cj4gPj4+Cj4gPj4+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFy bSgzKSkpIFBsX1VuaWZ5X1ZhcmlhYmxlKHZvaWQpOwo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmli dXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeV9Wb2lkKGludCBuKTsKPiA+Pj4KPiA+Pj4gQm9v bCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfVmFsdWUoV2FtV29yZCBzdGFy dF93b3JkKTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxf VW5pZnlfTG9jYWxfVmFsdWUoV2FtV29yZCBzdGFydF93b3JkKTsKPiA+Pj4KPiA+Pj4gQm9vbCBf X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfQXRvbV9UYWdnZWQoV2FtV29yZCB3 KTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlf QXRvbShpbnQgYXRvbSk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgz KSkpIFBsX1VuaWZ5X0ludGVnZXJfVGFnZ2VkKFdhbVdvcmQgdyk7Cj4gPj4+Cj4gPj4+IEJvb2wg X19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X0ludGVnZXIoUGxMb25nIG4pOwo+ ID4+Pgo+ID4+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeV9OaWwo dm9pZCk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1Vu aWZ5X0xpc3Qodm9pZCk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgz KSkpIFBsX1VuaWZ5X1N0cnVjdHVyZV9UYWdnZWQoV2FtV29yZCB3KTsKPiA+Pj4KPiA+Pj4gQm9v bCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfU3RydWN0dXJlKGludCBmdW5j LCBpbnQgYXJpdHkpOwo+ID4+Pgo+ID4+PiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0o MykpKSBQbF9HbG9iYWxpemVfSWZfSW5fTG9jYWwoV2FtV29yZCBzdGFydF93b3JkKTsKPiA+Pj4K PiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQWxsb2NhdGUoaW50IG4p Owo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWFsbG9j YXRlKHZvaWQpOwo+ID4+Pgo+ID4+PiBDb2RlUHRyIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykp KSBQbF9Td2l0Y2hfT25fVGVybShDb2RlUHRyIGNfdmFyLCBDb2RlUHRyIGNfYXRtLCBDb2RlUHRy IGNfaW50LAo+ID4+PiAgICAgICAgICAgICBDb2RlUHRyIGNfbHN0LCBDb2RlUHRyIGNfc3RjKTsK PiA+Pj4gQ29kZVB0ciBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX1Rl cm1fVmFyX0F0bShDb2RlUHRyIGNfdmFyLCBDb2RlUHRyIGNfYXRtKTsKPiA+Pj4gQ29kZVB0ciBf X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX1Rlcm1fVmFyX1N0YyhDb2Rl UHRyIGNfdmFyLCBDb2RlUHRyIGNfc3RjKTsKPiA+Pj4gQ29kZVB0ciBfX2F0dHJpYnV0ZV9fKChy ZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX1Rlcm1fVmFyX0F0bV9Mc3QoQ29kZVB0ciBjX3Zhciwg Q29kZVB0ciBjX2F0bSwKPiA+Pj4gICAgICAgICAgIENvZGVQdHIgY19sc3QpOwo+ID4+PiBDb2Rl UHRyIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Td2l0Y2hfT25fVGVybV9WYXJfQXRt X1N0YyhDb2RlUHRyIGNfdmFyLCBDb2RlUHRyIGNfYXRtLAo+ID4+PiAgICAgICAgICAgQ29kZVB0 ciBjX3N0Yyk7Cj4gPj4+Cj4gPj4+IENvZGVQdHIgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkp IFBsX1N3aXRjaF9Pbl9BdG9tKFN3dFRibCB0LCBpbnQgc2l6ZSk7Cj4gPj4+Cj4gPj4+IFBsTG9u ZyBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX0ludGVnZXIodm9pZCk7 Cj4gPj4+Cj4gPj4+IENvZGVQdHIgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1N3aXRj aF9Pbl9TdHJ1Y3R1cmUoU3d0VGJsIHQsIGludCBzaXplKTsKPiA+Pj4KPiA+Pj4gV2FtV29yZCBf X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0X0N1cnJlbnRfQ2hvaWNlKHZvaWQpOwo+ ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DdXQoV2FtV29y ZCBiX3dvcmQpOwo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQ bF9Tb2Z0X0N1dChXYW1Xb3JkIGJfd29yZCk7Cj4gPj4+Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVf XygocmVncGFybSgzKSkpIFBsX0dsb2JhbF9QdXNoX0Zsb2F0KGRvdWJsZSBuKTsKPiA+Pj4KPiA+ Pj4gZG91YmxlIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9PYnRhaW5fRmxvYXQoV2Ft V29yZCAqYWRyKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJt KDMpKSkgUGxfQ3JlYXRlX0Nob2ljZV9Qb2ludChDb2RlUHRyIGNvZGVwX2FsdCwgaW50IGFyaXR5 KTsKPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3JlYXRlX0Nob2lj ZV9Qb2ludDAoQ29kZVB0ciBjb2RlcF9hbHQpOwo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJl Z3Bhcm0oMykpKSBQbF9DcmVhdGVfQ2hvaWNlX1BvaW50MShDb2RlUHRyIGNvZGVwX2FsdCk7Cj4g Pj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0ZV9DaG9pY2VfUG9p bnQyKENvZGVQdHIgY29kZXBfYWx0KTsKPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJt KDMpKSkgUGxfQ3JlYXRlX0Nob2ljZV9Qb2ludDMoQ29kZVB0ciBjb2RlcF9hbHQpOwo+ID4+PiB2 b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVfQ2hvaWNlX1BvaW50NChD b2RlUHRyIGNvZGVwX2FsdCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVfXygo cmVncGFybSgzKSkpIFBsX1VwZGF0ZV9DaG9pY2VfUG9pbnQoQ29kZVB0ciBjb2RlcF9hbHQsIGlu dCBhcml0eSk7Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VwZGF0 ZV9DaG9pY2VfUG9pbnQwKENvZGVQdHIgY29kZXBfYWx0KTsKPiA+Pj4gdm9pZCBfX2F0dHJpYnV0 ZV9fKChyZWdwYXJtKDMpKSkgUGxfVXBkYXRlX0Nob2ljZV9Qb2ludDEoQ29kZVB0ciBjb2RlcF9h bHQpOwo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VcGRhdGVfQ2hv aWNlX1BvaW50MihDb2RlUHRyIGNvZGVwX2FsdCk7Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVfXygo cmVncGFybSgzKSkpIFBsX1VwZGF0ZV9DaG9pY2VfUG9pbnQzKENvZGVQdHIgY29kZXBfYWx0KTsK PiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVXBkYXRlX0Nob2ljZV9Q b2ludDQoQ29kZVB0ciBjb2RlcF9hbHQpOwo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18o KHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNlX1BvaW50KGludCBhcml0eSk7Cj4gPj4+IHZv aWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0RlbGV0ZV9DaG9pY2VfUG9pbnQwKHZv aWQpOwo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hv aWNlX1BvaW50MSh2b2lkKTsKPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkg UGxfRGVsZXRlX0Nob2ljZV9Qb2ludDIodm9pZCk7Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVfXygo cmVncGFybSgzKSkpIFBsX0RlbGV0ZV9DaG9pY2VfUG9pbnQzKHZvaWQpOwo+ID4+PiB2b2lkIF9f YXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNlX1BvaW50NCh2b2lkKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4gdm9pZCBQbF9EZWZlYXNpYmxlX09wZW4oKTsKPiA+Pj4gdm9pZCBQ bF9EZWZlYXNpYmxlX1VuZG8oKTsKPiA+Pj4gdm9pZCBQbF9EZWZlYXNpYmxlX0Nsb3NlKEJvb2wg dW5kb19iZWZvcmUpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18o KHJlZ3Bhcm0oMykpKSBQbF9VbnRyYWlsKFdhbVdvcmQgKmxvd19hZHIpOwo+ID4+Pgo+ID4+PiBC b29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeShXYW1Xb3JkIHN0YXJ0X3Vf d29yZCwgV2FtV29yZCBzdGFydF92X3dvcmQpOwo+ID4+Pgo+ID4+PiBCb29sIF9fYXR0cmlidXRl X18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeV9PY2N1cnNfQ2hlY2soV2FtV29yZCBzdGFydF91X3dv cmQsIFdhbVdvcmQgc3RhcnRfdl93b3JkKTsKPiA+Pj4gIyA1NiAiZW5naW5lX3BsLmgiIDIKPiA+ Pj4gIyAxICJpZl9ub19mZC5oIiAxCj4gPj4+ICMgNjUgImlmX25vX2ZkLmgiCj4gPj4+IGV4dGVy biB2b2lkICgqcGxfZmRfaW5pdF9zb2x2ZXIpICgpOwo+ID4+PiBleHRlcm4gdm9pZCAoKnBsX2Zk X3Jlc2V0X3NvbHZlcikgKCk7Cj4gPj4+IGV4dGVybiBCb29sICgqcGxfZmRfdW5pZnlfd2l0aF9p bnRlZ2VyKSAoKTsKPiA+Pj4gZXh0ZXJuIEJvb2wgKCpwbF9mZF91bmlmeV93aXRoX2ZkX3Zhcikg KCk7Cj4gPj4+IGV4dGVybiBpbnQgKCpwbF9mZF92YXJpYWJsZV9zaXplKSAoKTsKPiA+Pj4gZXh0 ZXJuIGludCAoKnBsX2ZkX2NvcHlfdmFyaWFibGUpICgpOwo+ID4+PiBleHRlcm4gY2hhciAqKCpw bF9mZF92YXJpYWJsZV90b19zdHJpbmcpICgpOwo+ID4+PiAjIDgyICJpZl9ub19mZC5oIgo+ID4+ PiB2b2lkIFBsX0ZkX0luaXRfU29sdmVyKHZvaWQpOwo+ID4+Pgo+ID4+PiB2b2lkIFBsX0ZkX1Jl c2V0X1NvbHZlcih2b2lkKTsKPiA+Pj4gIyA1NiAiZW5naW5lX3BsLmgiIDIKPiA+Pj4gIyA3MiAi bWFjaGluZS5jIiAyCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL21h bGxvYy5oIiAxIDMgNAo+ID4+PiAjIDIzICIvdXNyL2luY2x1ZGUvbWFsbG9jLmgiIDMgNAo+ID4+ PiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRl Zi5oIiAxIDMgNAo+ID4+PiAjIDE0OSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYu MS4xL2luY2x1ZGUvc3RkZGVmLmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDE0OSAiL3Vzci9saWIvZ2Nj L2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDMgNAo+ID4+PiB0eXBl ZGVmIGludCBwdHJkaWZmX3Q7Cj4gPj4+ICMgNDI2ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQt bGludXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0IHsK PiA+Pj4gICBsb25nIGxvbmcgX19tYXhfYWxpZ25fbGwgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVk X18oX19hbGlnbm9mX18obG9uZyBsb25nKSkpKTsKPiA+Pj4gICBsb25nIGRvdWJsZSBfX21heF9h bGlnbl9sZCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhfX2FsaWdub2ZfXyhsb25nIGRvdWJs ZSkpKSk7Cj4gPj4+IH0gbWF4X2FsaWduX3Q7Cj4gPj4+ICMgMjQgIi91c3IvaW5jbHVkZS9tYWxs b2MuaCIgMiAzIDQKPiA+Pj4gIyAzNSAiL3Vzci9pbmNsdWRlL21hbGxvYy5oIiAzIDQKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKm1hbGxvYyAoc2l6ZV90IF9fc2l6ZSkgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19t YWxsb2NfXykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKmNhbGxvYyAoc2l6ZV90 IF9fbm1lbWIsIHNpemVfdCBfX3NpemUpCj4gPj4+IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSA7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkICpyZWFsbG9jICh2b2lk ICpfX3B0ciwgc2l6ZV90IF9fc2l6ZSkKPiA+Pj4gX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBmcmVlICh2b2lkICpfX3B0cikgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IHZvaWQgY2ZyZWUgKHZvaWQgKl9fcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqbWVtYWxpZ24gKHNpemVf dCBfX2FsaWdubWVudCwgc2l6ZV90IF9fc2l6ZSkKPiA+Pj4gX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpIDsKPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKnZhbGxvYyAoc2l6ZV90IF9fc2l6ZSkgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2Nf XykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKnB2YWxsb2MgKHNpemVf dCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy aWJ1dGVfXyAoKF9fbWFsbG9jX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2 b2lkICooKl9fbW9yZWNvcmUpIChwdHJkaWZmX3QgX19zaXplKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIHZvaWQgKl9fZGVmYXVsdF9tb3JlY29yZSAocHRyZGlmZl90IF9fc2l6ZSkKPiA+Pj4g X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo X19tYWxsb2NfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3QgbWFsbGluZm8KPiA+ Pj4gewo+ID4+PiAgIGludCBhcmVuYTsKPiA+Pj4gICBpbnQgb3JkYmxrczsKPiA+Pj4gICBpbnQg c21ibGtzOwo+ID4+PiAgIGludCBoYmxrczsKPiA+Pj4gICBpbnQgaGJsa2hkOwo+ID4+PiAgIGlu dCB1c21ibGtzOwo+ID4+PiAgIGludCBmc21ibGtzOwo+ID4+PiAgIGludCB1b3JkYmxrczsKPiA+ Pj4gICBpbnQgZm9yZGJsa3M7Cj4gPj4+ICAgaW50IGtlZXBjb3N0Owo+ID4+PiB9Owo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0IG1hbGxpbmZvIG1hbGxpbmZvICh2b2lkKSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDEyMSAiL3Vzci9pbmNs dWRlL21hbGxvYy5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBtYWxsb3B0IChpbnQgX19wYXJhbSwg aW50IF9fdmFsKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IG1hbGxvY190cmltIChzaXplX3QgX19wYWQp IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBzaXplX3QgbWFsbG9jX3VzYWJsZV9zaXplICh2b2lkICpfX3B0cikg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIHZvaWQgbWFsbG9jX3N0YXRzICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IG1hbGxvY19p bmZvIChpbnQgX19vcHRpb25zLCBGSUxFICpfX2ZwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqbWFsbG9jX2dl dF9zdGF0ZSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBtYWxsb2Nfc2V0X3N0YXRlICh2b2lk ICpfX3B0cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKCp2b2xhdGlsZSBfX21hbGxvY19p bml0aWFsaXplX2hvb2spICh2b2lkKQo+ID4+PiBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVk X18pKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKCp2b2xhdGlsZSBfX2ZyZWVfaG9vaykgKHZv aWQgKl9fcHRyLAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB2b2lkICopCj4gPj4+IF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0 ZWRfXykpOwo+ID4+PiBleHRlcm4gdm9pZCAqKCp2b2xhdGlsZSBfX21hbGxvY19ob29rKShzaXpl X3QgX19zaXplLAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHZvaWQgKikKPiA+Pj4gX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVj YXRlZF9fKSk7Cj4gPj4+IGV4dGVybiB2b2lkICooKnZvbGF0aWxlIF9fcmVhbGxvY19ob29rKSh2 b2lkICpfX3B0ciwKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV90IF9fc2l6ZSwKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqKQo+ID4+PiBfX2F0 dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18pKTsKPiA+Pj4gZXh0ZXJuIHZvaWQgKigqdm9sYXRp bGUgX19tZW1hbGlnbl9ob29rKShzaXplX3QgX19hbGlnbm1lbnQsCj4gPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19zaXpl LAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgdm9pZCAqKQo+ID4+PiBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18p KTsKPiA+Pj4gZXh0ZXJuIHZvaWQgKCp2b2xhdGlsZSBfX2FmdGVyX21vcmVjb3JlX2hvb2spICh2 b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgX19tYWxsb2NfY2hlY2tfaW5pdCAo dm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0 ZV9fICgoX19kZXByZWNhdGVkX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyA3NiAibWFj aGluZS5jIiAyCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L25ldGRiLmgiIDEgMyA0Cj4gPj4+ICMgMjcgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPiA+ Pj4gIyAxICIvdXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAxIDMgNAo+ID4+PiAjIDIzICIvdXNy L2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3lzL3Nv Y2tldC5oIiAxIDMgNAo+ID4+PiAjIDI0ICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQK PiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3lzL3Vpby5oIiAxIDMgNAo+ID4+ PiAjIDI1ICIvdXNyL2luY2x1ZGUvc3lzL3Vpby5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy91aW8uaCIgMSAzIDQKPiA+Pj4gIyA0MyAiL3Vzci9p bmNsdWRlL2JpdHMvdWlvLmgiIDMgNAo+ID4+PiBzdHJ1Y3QgaW92ZWMKPiA+Pj4gICB7Cj4gPj4+ ICAgICB2b2lkICppb3ZfYmFzZTsKPiA+Pj4gICAgIHNpemVfdCBpb3ZfbGVuOwo+ID4+PiAgIH07 Cj4gPj4+ICMgMjkgIi91c3IvaW5jbHVkZS9zeXMvdWlvLmgiIDIgMyA0Cj4gPj4+ICMgMzkgIi91 c3IvaW5jbHVkZS9zeXMvdWlvLmgiIDMgNAo+ID4+PiBleHRlcm4gc3NpemVfdCByZWFkdiAoaW50 IF9fZmQsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqX19pb3ZlYywgaW50IF9fY291bnQpCj4gPj4+ICAg Owo+ID4+PiAjIDUwICIvdXNyL2luY2x1ZGUvc3lzL3Vpby5oIiAzIDQKPiA+Pj4gZXh0ZXJuIHNz aXplX3Qgd3JpdGV2IChpbnQgX19mZCwgY29uc3Qgc3RydWN0IGlvdmVjICpfX2lvdmVjLCBpbnQg X19jb3VudCkKPiA+Pj4gICA7Cj4gPj4+ICMgNjUgIi91c3IvaW5jbHVkZS9zeXMvdWlvLmgiIDMg NAo+ID4+PiBleHRlcm4gc3NpemVfdCBwcmVhZHYgKGludCBfX2ZkLCBjb25zdCBzdHJ1Y3QgaW92 ZWMgKl9faW92ZWMsIGludCBfX2NvdW50LAo+ID4+PiAgICAgICAgICBfX29mZl90IF9fb2Zmc2V0 KSA7Cj4gPj4+ICMgNzcgIi91c3IvaW5jbHVkZS9zeXMvdWlvLmgiIDMgNAo+ID4+PiBleHRlcm4g c3NpemVfdCBwd3JpdGV2IChpbnQgX19mZCwgY29uc3Qgc3RydWN0IGlvdmVjICpfX2lvdmVjLCBp bnQgX19jb3VudCwKPiA+Pj4gICAgX19vZmZfdCBfX29mZnNldCkgOwo+ID4+PiAjIDEyMCAiL3Vz ci9pbmNsdWRlL3N5cy91aW8uaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjcgIi91c3IvaW5jbHVkZS9z eXMvc29ja2V0LmgiIDIgMyA0Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVk aGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMjkgIi91c3Iv aW5jbHVkZS9zeXMvc29ja2V0LmgiIDIgMyA0Cj4gPj4+ICMgMzggIi91c3IvaW5jbHVkZS9zeXMv c29ja2V0LmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAxIDMg NAo+ID4+PiAjIDI3ICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gPj4+ICMgMSAi L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEg MyA0Cj4gPj4+ICMgMjggIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAyIDMgNAo+ID4+PiAj IDM4ICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNs dWRlL2JpdHMvc29ja2V0X3R5cGUuaCIgMSAzIDQKPiA+Pj4gIyAyNCAiL3Vzci9pbmNsdWRlL2Jp dHMvc29ja2V0X3R5cGUuaCIgMyA0Cj4gPj4+IGVudW0gX19zb2NrZXRfdHlwZQo+ID4+PiB7Cj4g Pj4+ICAgU09DS19TVFJFQU0gPSAxLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgIFNPQ0tfREdSQU0gPSAy LAo+ID4+Pgo+ID4+Pgo+ID4+PiAgIFNPQ0tfUkFXID0gMywKPiA+Pj4KPiA+Pj4gICBTT0NLX1JE TSA9IDQsCj4gPj4+Cj4gPj4+ICAgU09DS19TRVFQQUNLRVQgPSA1LAo+ID4+Pgo+ID4+Pgo+ID4+ PiAgIFNPQ0tfRENDUCA9IDYsCj4gPj4+Cj4gPj4+ICAgU09DS19QQUNLRVQgPSAxMCwKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICBTT0NLX0NMT0VYRUMg PSAwMjAwMDAwMCwKPiA+Pj4KPiA+Pj4KPiA+Pj4gICBTT0NLX05PTkJMT0NLID0gMDAwMDQwMDAK PiA+Pj4KPiA+Pj4KPiA+Pj4gfTsKPiA+Pj4gIyAzOSAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0 LmgiIDIgMyA0Cj4gPj4+ICMgMTUwICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4g Pj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2FkZHIuaCIgMSAzIDQKPiA+Pj4gIyAyOCAi L3Vzci9pbmNsdWRlL2JpdHMvc29ja2FkZHIuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQg c2hvcnQgaW50IHNhX2ZhbWlseV90Owo+ID4+PiAjIDE1MSAiL3Vzci9pbmNsdWRlL2JpdHMvc29j a2V0LmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBzb2NrYWRkcgo+ID4+PiAgIHsK PiA+Pj4gICAgIHNhX2ZhbWlseV90IHNhX2ZhbWlseTsKPiA+Pj4gICAgIGNoYXIgc2FfZGF0YVsx NF07Cj4gPj4+ICAgfTsKPiA+Pj4gIyAxNjYgIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAz IDQKPiA+Pj4gc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UKPiA+Pj4gICB7Cj4gPj4+ICAgICBzYV9m YW1pbHlfdCBzc19mYW1pbHk7Cj4gPj4+ICAgICBjaGFyIF9fc3NfcGFkZGluZ1soMTI4IC0gKHNp emVvZiAodW5zaWduZWQgc2hvcnQgaW50KSkgLSBzaXplb2YgKHVuc2lnbmVkIGxvbmcgaW50KSld Owo+ID4+PiAgICAgdW5zaWduZWQgbG9uZyBpbnQgX19zc19hbGlnbjsKPiA+Pj4gICB9Owo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBlbnVtCj4gPj4+ICAgewo+ID4+PiAgICAgTVNHX09PQiA9IDB4 MDEsCj4gPj4+Cj4gPj4+ICAgICBNU0dfUEVFSyA9IDB4MDIsCj4gPj4+Cj4gPj4+ICAgICBNU0df RE9OVFJPVVRFID0gMHgwNCwKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gICAgIE1TR19DVFJVTkMgPSAweDA4LAo+ID4+Pgo+ID4+PiAgICAgTVNHX1BST1hZID0gMHgx MCwKPiA+Pj4KPiA+Pj4gICAgIE1TR19UUlVOQyA9IDB4MjAsCj4gPj4+Cj4gPj4+ICAgICBNU0df RE9OVFdBSVQgPSAweDQwLAo+ID4+Pgo+ID4+PiAgICAgTVNHX0VPUiA9IDB4ODAsCj4gPj4+Cj4g Pj4+ICAgICBNU0dfV0FJVEFMTCA9IDB4MTAwLAo+ID4+Pgo+ID4+PiAgICAgTVNHX0ZJTiA9IDB4 MjAwLAo+ID4+Pgo+ID4+PiAgICAgTVNHX1NZTiA9IDB4NDAwLAo+ID4+Pgo+ID4+PiAgICAgTVNH X0NPTkZJUk0gPSAweDgwMCwKPiA+Pj4KPiA+Pj4gICAgIE1TR19SU1QgPSAweDEwMDAsCj4gPj4+ Cj4gPj4+ICAgICBNU0dfRVJSUVVFVUUgPSAweDIwMDAsCj4gPj4+Cj4gPj4+ICAgICBNU0dfTk9T SUdOQUwgPSAweDQwMDAsCj4gPj4+Cj4gPj4+ICAgICBNU0dfTU9SRSA9IDB4ODAwMCwKPiA+Pj4K PiA+Pj4gICAgIE1TR19XQUlURk9ST05FID0gMHgxMDAwMCwKPiA+Pj4KPiA+Pj4gICAgIE1TR19G QVNUT1BFTiA9IDB4MjAwMDAwMDAsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBNU0dfQ01TR19DTE9F WEVDID0gMHg0MDAwMDAwMAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBtc2doZHIKPiA+Pj4gICB7Cj4gPj4+ICAgICB2b2lk ICptc2dfbmFtZTsKPiA+Pj4gICAgIHNvY2tsZW5fdCBtc2dfbmFtZWxlbjsKPiA+Pj4KPiA+Pj4g ICAgIHN0cnVjdCBpb3ZlYyAqbXNnX2lvdjsKPiA+Pj4gICAgIHNpemVfdCBtc2dfaW92bGVuOwo+ ID4+Pgo+ID4+PiAgICAgdm9pZCAqbXNnX2NvbnRyb2w7Cj4gPj4+ICAgICBzaXplX3QgbXNnX2Nv bnRyb2xsZW47Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBpbnQgbXNnX2ZsYWdz Owo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBjbXNnaGRyCj4gPj4+ICAgewo+ ID4+PiAgICAgc2l6ZV90IGNtc2dfbGVuOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAg ICAgaW50IGNtc2dfbGV2ZWw7Cj4gPj4+ICAgICBpbnQgY21zZ190eXBlOwo+ID4+Pgo+ID4+PiAg ICAgX19leHRlbnNpb25fXyB1bnNpZ25lZCBjaGFyIF9fY21zZ19kYXRhIFtdOwo+ID4+Pgo+ID4+ PiAgIH07Cj4gPj4+ICMgMjc2ICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gPj4+ IGV4dGVybiBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnX254dGhkciAoc3RydWN0IG1zZ2hkciAqX19t aGRyLAo+ID4+PiAgICAgICAgICAgc3RydWN0IGNtc2doZHIgKl9fY21zZykgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyAzMDMgIi91c3IvaW5jbHVkZS9i aXRzL3NvY2tldC5oIiAzIDQKPiA+Pj4gZW51bQo+ID4+PiAgIHsKPiA+Pj4gICAgIFNDTV9SSUdI VFMgPSAweDAxCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgfTsKPiA+Pj4g IyAzNDkgIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2lu Y2x1ZGUvYXNtL3NvY2tldC5oIiAxIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20tZ2Vu ZXJpYy9zb2NrZXQuaCIgMSAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2lu Y2x1ZGUvYXNtL3NvY2tpb3MuaCIgMSAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYXNtLWdl bmVyaWMvc29ja2lvcy5oIiAxIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20vc29ja2lv cy5oIiAyIDMgNAo+ID4+PiAjIDUgIi91c3IvaW5jbHVkZS9hc20tZ2VuZXJpYy9zb2NrZXQuaCIg MiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYXNtL3NvY2tldC5oIiAyIDMgNAo+ID4+PiAj IDM1MCAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDIgMyA0Cj4gPj4+ICMgMzgzICIvdXNy L2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gPj4+IHN0cnVjdCBsaW5nZXIKPiA+Pj4gICB7 Cj4gPj4+ICAgICBpbnQgbF9vbm9mZjsKPiA+Pj4gICAgIGludCBsX2xpbmdlcjsKPiA+Pj4gICB9 Owo+ID4+PiAjIDM5ICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAyIDMgNAo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3Qgb3NvY2thZGRyCj4gPj4+ICAgewo+ID4+PiAgICAg dW5zaWduZWQgc2hvcnQgaW50IHNhX2ZhbWlseTsKPiA+Pj4gICAgIHVuc2lnbmVkIGNoYXIgc2Ff ZGF0YVsxNF07Cj4gPj4+ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZW51bQo+ ID4+PiB7Cj4gPj4+ICAgU0hVVF9SRCA9IDAsCj4gPj4+Cj4gPj4+ICAgU0hVVF9XUiwKPiA+Pj4K PiA+Pj4gICBTSFVUX1JEV1IKPiA+Pj4KPiA+Pj4gfTsKPiA+Pj4gIyAxMTMgIi91c3IvaW5jbHVk ZS9zeXMvc29ja2V0LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHNvY2tldCAoaW50IF9fZG9tYWlu LCBpbnQgX190eXBlLCBpbnQgX19wcm90b2NvbCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGludCBzb2NrZXRwYWlyIChpbnQgX19kb21haW4sIGludCBfX3R5cGUsIGludCBfX3Byb3RvY29s LAo+ID4+PiAgICAgICAgICBpbnQgX19mZHNbMl0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgYmluZCAoaW50IF9f ZmQsIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqIF9fYWRkciwgc29ja2xlbl90IF9fbGVuKQo+ID4+ PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBpbnQgZ2V0c29ja25hbWUgKGludCBfX2ZkLCBzdHJ1Y3Qgc29ja2Fk ZHIgKl9fcmVzdHJpY3QgX19hZGRyLAo+ID4+PiAgICBzb2NrbGVuX3QgKl9fcmVzdHJpY3QgX19s ZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMTM3 ICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBjb25uZWN0 IChpbnQgX19mZCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICogX19hZGRyLCBzb2NrbGVuX3QgX19s ZW4pOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHBlZXJuYW1lIChpbnQg X19mZCwgc3RydWN0IHNvY2thZGRyICpfX3Jlc3RyaWN0IF9fYWRkciwKPiA+Pj4gICAgc29ja2xl bl90ICpfX3Jlc3RyaWN0IF9fbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g c3NpemVfdCBzZW5kIChpbnQgX19mZCwgY29uc3Qgdm9pZCAqX19idWYsIHNpemVfdCBfX24sIGlu dCBfX2ZsYWdzKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIHNzaXplX3QgcmVjdiAoaW50IF9fZmQsIHZvaWQgKl9fYnVmLCBzaXplX3QgX19uLCBpbnQg X19mbGFncyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVy biBzc2l6ZV90IHNlbmR0byAoaW50IF9fZmQsIGNvbnN0IHZvaWQgKl9fYnVmLCBzaXplX3QgX19u LAo+ID4+PiAgICAgICAgICBpbnQgX19mbGFncywgY29uc3Qgc3RydWN0IHNvY2thZGRyICogX19h ZGRyLAo+ID4+PiAgICAgICAgICBzb2NrbGVuX3QgX19hZGRyX2xlbik7Cj4gPj4+ICMgMTc0ICIv dXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIHNzaXplX3QgcmVjdmZy b20gKGludCBfX2ZkLCB2b2lkICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19uLAo+ID4+PiAg ICAgaW50IF9fZmxhZ3MsIHN0cnVjdCBzb2NrYWRkciAqX19yZXN0cmljdCBfX2FkZHIsCj4gPj4+ ICAgICBzb2NrbGVuX3QgKl9fcmVzdHJpY3QgX19hZGRyX2xlbik7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzc2l6ZV90IHNlbmRtc2cgKGlu dCBfX2ZkLCBjb25zdCBzdHJ1Y3QgbXNnaGRyICpfX21lc3NhZ2UsCj4gPj4+ICAgIGludCBfX2Zs YWdzKTsKPiA+Pj4gIyAyMDIgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0LmgiIDMgNAo+ID4+PiBl eHRlcm4gc3NpemVfdCByZWN2bXNnIChpbnQgX19mZCwgc3RydWN0IG1zZ2hkciAqX19tZXNzYWdl LCBpbnQgX19mbGFncyk7Cj4gPj4+ICMgMjE5ICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAz IDQKPiA+Pj4gZXh0ZXJuIGludCBnZXRzb2Nrb3B0IChpbnQgX19mZCwgaW50IF9fbGV2ZWwsIGlu dCBfX29wdG5hbWUsCj4gPj4+ICAgICAgICAgIHZvaWQgKl9fcmVzdHJpY3QgX19vcHR2YWwsCj4g Pj4+ICAgICAgICAgIHNvY2tsZW5fdCAqX19yZXN0cmljdCBfX29wdGxlbikgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBzZXRzb2Nrb3B0IChpbnQgX19mZCwgaW50IF9fbGV2ZWwsIGludCBfX29w dG5hbWUsCj4gPj4+ICAgICAgICAgIGNvbnN0IHZvaWQgKl9fb3B0dmFsLCBzb2NrbGVuX3QgX19v cHRsZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbGlzdGVuIChpbnQgX19mZCwg aW50IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4g IyAyNDMgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGFj Y2VwdCAoaW50IF9fZmQsIHN0cnVjdCBzb2NrYWRkciAqX19yZXN0cmljdCBfX2FkZHIsCj4gPj4+ ICAgICAgc29ja2xlbl90ICpfX3Jlc3RyaWN0IF9fYWRkcl9sZW4pOwo+ID4+PiAjIDI2MSAiL3Vz ci9pbmNsdWRlL3N5cy9zb2NrZXQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgc2h1dGRvd24gKGlu dCBfX2ZkLCBpbnQgX19ob3cpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc29ja2F0bWFyayAo aW50IF9fZmQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgaXNm ZHR5cGUgKGludCBfX2ZkLCBpbnQgX19mZHR5cGUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMjgzICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAz IDQKPiA+Pj4KPiA+Pj4gIyAyNCAiL3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaCIgMiAzIDQKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1aW50MzJfdCBp bl9hZGRyX3Q7Cj4gPj4+IHN0cnVjdCBpbl9hZGRyCj4gPj4+ICAgewo+ID4+PiAgICAgaW5fYWRk cl90IHNfYWRkcjsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVk ZS9iaXRzL2luLmgiIDEgMyA0Cj4gPj4+ICMgMTMzICIvdXNyL2luY2x1ZGUvYml0cy9pbi5oIiAz IDQKPiA+Pj4gc3RydWN0IGlwX29wdHMKPiA+Pj4gICB7Cj4gPj4+ICAgICBzdHJ1Y3QgaW5fYWRk ciBpcF9kc3Q7Cj4gPj4+ICAgICBjaGFyIGlwX29wdHNbNDBdOwo+ID4+PiAgIH07Cj4gPj4+Cj4g Pj4+Cj4gPj4+IHN0cnVjdCBpcF9tcmVxbgo+ID4+PiAgIHsKPiA+Pj4gICAgIHN0cnVjdCBpbl9h ZGRyIGltcl9tdWx0aWFkZHI7Cj4gPj4+ICAgICBzdHJ1Y3QgaW5fYWRkciBpbXJfYWRkcmVzczsK PiA+Pj4gICAgIGludCBpbXJfaWZpbmRleDsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ID4+PiBz dHJ1Y3QgaW5fcGt0aW5mbwo+ID4+PiAgIHsKPiA+Pj4gICAgIGludCBpcGlfaWZpbmRleDsKPiA+ Pj4gICAgIHN0cnVjdCBpbl9hZGRyIGlwaV9zcGVjX2RzdDsKPiA+Pj4gICAgIHN0cnVjdCBpbl9h ZGRyIGlwaV9hZGRyOwo+ID4+PiAgIH07Cj4gPj4+ICMgMzggIi91c3IvaW5jbHVkZS9uZXRpbmV0 L2luLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gICB7Cj4gPj4+ICAgICBJ UFBST1RPX0lQID0gMCwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fSUNNUCA9IDEsCj4gPj4+Cj4g Pj4+ICAgICBJUFBST1RPX0lHTVAgPSAyLAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19JUElQID0g NCwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fVENQID0gNiwKPiA+Pj4KPiA+Pj4gICAgIElQUFJP VE9fRUdQID0gOCwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fUFVQID0gMTIsCj4gPj4+Cj4gPj4+ ICAgICBJUFBST1RPX1VEUCA9IDE3LAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19JRFAgPSAyMiwK PiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fVFAgPSAyOSwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9f RENDUCA9IDMzLAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19JUFY2ID0gNDEsCj4gPj4+Cj4gPj4+ ICAgICBJUFBST1RPX1JTVlAgPSA0NiwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fR1JFID0gNDcs Cj4gPj4+Cj4gPj4+ICAgICBJUFBST1RPX0VTUCA9IDUwLAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9U T19BSCA9IDUxLAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19NVFAgPSA5MiwKPiA+Pj4KPiA+Pj4g ICAgIElQUFJPVE9fQkVFVFBIID0gOTQsCj4gPj4+Cj4gPj4+ICAgICBJUFBST1RPX0VOQ0FQID0g OTgsCj4gPj4+Cj4gPj4+ICAgICBJUFBST1RPX1BJTSA9IDEwMywKPiA+Pj4KPiA+Pj4gICAgIElQ UFJPVE9fQ09NUCA9IDEwOCwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fU0NUUCA9IDEzMiwKPiA+ Pj4KPiA+Pj4gICAgIElQUFJPVE9fVURQTElURSA9IDEzNiwKPiA+Pj4KPiA+Pj4gICAgIElQUFJP VE9fTVBMUyA9IDEzNywKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fUkFXID0gMjU1LAo+ID4+Pgo+ ID4+PiAgICAgSVBQUk9UT19NQVgKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBlbnVtCj4gPj4+ICAgewo+ID4+PiAgICAgSVBQUk9UT19IT1BPUFRTID0gMCwK PiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fUk9VVElORyA9IDQzLAo+ID4+Pgo+ID4+PiAgICAgSVBQ Uk9UT19GUkFHTUVOVCA9IDQ0LAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19JQ01QVjYgPSA1OCwK PiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fTk9ORSA9IDU5LAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9U T19EU1RPUFRTID0gNjAsCj4gPj4+Cj4gPj4+ICAgICBJUFBST1RPX01IID0gMTM1Cj4gPj4+Cj4g Pj4+ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1aW50MTZfdCBpbl9wb3J0 X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gICB7Cj4gPj4+ICAgICBJUFBPUlRfRUNI TyA9IDcsCj4gPj4+ICAgICBJUFBPUlRfRElTQ0FSRCA9IDksCj4gPj4+ICAgICBJUFBPUlRfU1lT VEFUID0gMTEsCj4gPj4+ICAgICBJUFBPUlRfREFZVElNRSA9IDEzLAo+ID4+PiAgICAgSVBQT1JU X05FVFNUQVQgPSAxNSwKPiA+Pj4gICAgIElQUE9SVF9GVFAgPSAyMSwKPiA+Pj4gICAgIElQUE9S VF9URUxORVQgPSAyMywKPiA+Pj4gICAgIElQUE9SVF9TTVRQID0gMjUsCj4gPj4+ICAgICBJUFBP UlRfVElNRVNFUlZFUiA9IDM3LAo+ID4+PiAgICAgSVBQT1JUX05BTUVTRVJWRVIgPSA0MiwKPiA+ Pj4gICAgIElQUE9SVF9XSE9JUyA9IDQzLAo+ID4+PiAgICAgSVBQT1JUX01UUCA9IDU3LAo+ID4+ Pgo+ID4+PiAgICAgSVBQT1JUX1RGVFAgPSA2OSwKPiA+Pj4gICAgIElQUE9SVF9SSkUgPSA3NywK PiA+Pj4gICAgIElQUE9SVF9GSU5HRVIgPSA3OSwKPiA+Pj4gICAgIElQUE9SVF9UVFlMSU5LID0g ODcsCj4gPj4+ICAgICBJUFBPUlRfU1VQRFVQID0gOTUsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBJ UFBPUlRfRVhFQ1NFUlZFUiA9IDUxMiwKPiA+Pj4gICAgIElQUE9SVF9MT0dJTlNFUlZFUiA9IDUx MywKPiA+Pj4gICAgIElQUE9SVF9DTURTRVJWRVIgPSA1MTQsCj4gPj4+ICAgICBJUFBPUlRfRUZT U0VSVkVSID0gNTIwLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgSVBQT1JUX0JJRkZVRFAgPSA1MTIs Cj4gPj4+ICAgICBJUFBPUlRfV0hPU0VSVkVSID0gNTEzLAo+ID4+PiAgICAgSVBQT1JUX1JPVVRF U0VSVkVSID0gNTIwLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgSVBQT1JUX1JFU0VSVkVEID0gMTAy NCwKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIElQUE9SVF9VU0VSUkVTRVJWRUQgPSA1MDAwCj4gPj4+ ICAgfTsKPiA+Pj4gIyAyMTEgIi91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDMgNAo+ID4+PiBz dHJ1Y3QgaW42X2FkZHIKPiA+Pj4gICB7Cj4gPj4+ICAgICB1bmlvbgo+ID4+PiAgICAgICB7Cj4g Pj4+ICB1aW50OF90IF9fdTZfYWRkcjhbMTZdOwo+ID4+Pgo+ID4+PiAgdWludDE2X3QgX191Nl9h ZGRyMTZbOF07Cj4gPj4+ICB1aW50MzJfdCBfX3U2X2FkZHIzMls0XTsKPiA+Pj4KPiA+Pj4gICAg ICAgfSBfX2luNl91Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIH07Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgaW42YWRkcl9hbnk7 Cj4gPj4+IGV4dGVybiBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgaW42YWRkcl9sb29wYmFjazsKPiA+ Pj4gIyAyMzkgIi91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDMgNAo+ID4+PiBzdHJ1Y3Qgc29j a2FkZHJfaW4KPiA+Pj4gICB7Cj4gPj4+ICAgICBzYV9mYW1pbHlfdCBzaW5fZmFtaWx5Owo+ID4+ PiAgICAgaW5fcG9ydF90IHNpbl9wb3J0Owo+ID4+PiAgICAgc3RydWN0IGluX2FkZHIgc2luX2Fk ZHI7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICB1bnNpZ25lZCBjaGFyIHNpbl96ZXJvW3NpemVvZiAo c3RydWN0IHNvY2thZGRyKSAtCj4gPj4+ICAgICAgIChzaXplb2YgKHVuc2lnbmVkIHNob3J0IGlu dCkpIC0KPiA+Pj4gICAgICAgc2l6ZW9mIChpbl9wb3J0X3QpIC0KPiA+Pj4gICAgICAgc2l6ZW9m IChzdHJ1Y3QgaW5fYWRkcildOwo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0 cnVjdCBzb2NrYWRkcl9pbjYKPiA+Pj4gICB7Cj4gPj4+ICAgICBzYV9mYW1pbHlfdCBzaW42X2Zh bWlseTsKPiA+Pj4gICAgIGluX3BvcnRfdCBzaW42X3BvcnQ7Cj4gPj4+ICAgICB1aW50MzJfdCBz aW42X2Zsb3dpbmZvOwo+ID4+PiAgICAgc3RydWN0IGluNl9hZGRyIHNpbjZfYWRkcjsKPiA+Pj4g ICAgIHVpbnQzMl90IHNpbjZfc2NvcGVfaWQ7Cj4gPj4+ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gc3RydWN0IGlwX21yZXEKPiA+Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1 Y3QgaW5fYWRkciBpbXJfbXVsdGlhZGRyOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgc3RydWN0IGlu X2FkZHIgaW1yX2ludGVyZmFjZTsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+PiBzdHJ1Y3QgaXBfbXJl cV9zb3VyY2UKPiA+Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1Y3QgaW5fYWRkciBpbXJfbXVs dGlhZGRyOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgc3RydWN0IGluX2FkZHIgaW1yX2ludGVyZmFj ZTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIHN0cnVjdCBpbl9hZGRyIGltcl9zb3VyY2VhZGRyOwo+ ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBpcHY2X21yZXEK PiA+Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1Y3QgaW42X2FkZHIgaXB2Nm1yX211bHRpYWRk cjsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIHVuc2lnbmVkIGludCBpcHY2bXJfaW50ZXJmYWNlOwo+ ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBncm91cF9yZXEK PiA+Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICB1aW50MzJfdCBncl9pbnRlcmZhY2U7Cj4gPj4+Cj4g Pj4+Cj4gPj4+ICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBncl9ncm91cDsKPiA+Pj4gICB9 Owo+ID4+Pgo+ID4+PiBzdHJ1Y3QgZ3JvdXBfc291cmNlX3JlcQo+ID4+PiAgIHsKPiA+Pj4KPiA+ Pj4gICAgIHVpbnQzMl90IGdzcl9pbnRlcmZhY2U7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1 Y3Qgc29ja2FkZHJfc3RvcmFnZSBnc3JfZ3JvdXA7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1 Y3Qgc29ja2FkZHJfc3RvcmFnZSBnc3Jfc291cmNlOwo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IHN0cnVjdCBpcF9tc2ZpbHRlcgo+ID4+PiAgIHsKPiA+Pj4KPiA+Pj4gICAgIHN0 cnVjdCBpbl9hZGRyIGltc2ZfbXVsdGlhZGRyOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgc3RydWN0 IGluX2FkZHIgaW1zZl9pbnRlcmZhY2U7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICB1aW50MzJfdCBp bXNmX2Ztb2RlOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgdWludDMyX3QgaW1zZl9udW1zcmM7Cj4g Pj4+Cj4gPj4+ICAgICBzdHJ1Y3QgaW5fYWRkciBpbXNmX3NsaXN0WzFdOwo+ID4+PiAgIH07Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBncm91cF9maWx0ZXIKPiA+ Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICB1aW50MzJfdCBnZl9pbnRlcmZhY2U7Cj4gPj4+Cj4gPj4+ Cj4gPj4+ICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBnZl9ncm91cDsKPiA+Pj4KPiA+Pj4K PiA+Pj4gICAgIHVpbnQzMl90IGdmX2Ztb2RlOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgdWludDMy X3QgZ2ZfbnVtc3JjOwo+ID4+Pgo+ID4+PiAgICAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgZ2Zf c2xpc3RbMV07Cj4gPj4+IH07Cj4gPj4+ICMgMzc2ICIvdXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5o IiAzIDQKPiA+Pj4gZXh0ZXJuIHVpbnQzMl90IG50b2hsICh1aW50MzJfdCBfX25ldGxvbmcpIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f Y29uc3RfXykpOwo+ID4+PiBleHRlcm4gdWludDE2X3QgbnRvaHMgKHVpbnQxNl90IF9fbmV0c2hv cnQpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf X2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gPj4+IGV4dGVybiB1aW50MzJfdCBodG9ubCAo dWludDMyX3QgX19ob3N0bG9uZykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPiA+Pj4gZXh0ZXJu IHVpbnQxNl90IGh0b25zICh1aW50MTZfdCBfX2hvc3RzaG9ydCkKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0 X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0 cy9ieXRlc3dhcC5oIiAxIDMgNAo+ID4+PiAjIDM4OCAiL3Vzci9pbmNsdWRlL25ldGluZXQvaW4u aCIgMiAzIDQKPiA+Pj4gIyA1MDMgIi91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDMgNAo+ID4+ PiBleHRlcm4gaW50IGJpbmRyZXN2cG9ydCAoaW50IF9fc29ja2ZkLCBzdHJ1Y3Qgc29ja2FkZHJf aW4gKl9fc29ja19pbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBiaW5kcmVzdnBvcnQ2IChpbnQgX19zb2NrZmQs IHN0cnVjdCBzb2NrYWRkcl9pbjYgKl9fc29ja19pbikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDYzMSAiL3Vzci9pbmNsdWRlL25l dGluZXQvaW4uaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjggIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAy IDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9ycGMv bmV0ZGIuaCIgMSAzIDQKPiA+Pj4gIyA0MiAiL3Vzci9pbmNsdWRlL3JwYy9uZXRkYi5oIiAzIDQK PiA+Pj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9z dGRkZWYuaCIgMSAzIDQKPiA+Pj4gIyA0MyAiL3Vzci9pbmNsdWRlL3JwYy9uZXRkYi5oIiAyIDMg NAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3QgcnBjZW50Cj4gPj4+IHsKPiA+Pj4gICBj aGFyICpyX25hbWU7Cj4gPj4+ICAgY2hhciAqKnJfYWxpYXNlczsKPiA+Pj4gICBpbnQgcl9udW1i ZXI7Cj4gPj4+IH07Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIHNldHJwY2VudCAoaW50IF9fc3Rh eW9wZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4 dGVybiB2b2lkIGVuZHJwY2VudCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIHN0cnVjdCBycGNlbnQgKmdldHJwY2J5bmFtZSAoY29u c3QgY2hhciAqX19uYW1lKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp Owo+ID4+PiBleHRlcm4gc3RydWN0IHJwY2VudCAqZ2V0cnBjYnludW1iZXIgKGludCBfX251bWJl cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJu IHN0cnVjdCBycGNlbnQgKmdldHJwY2VudCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRycGNieW5h bWVfciAoY29uc3QgY2hhciAqX19uYW1lLCBzdHJ1Y3QgcnBjZW50ICpfX3Jlc3VsdF9idWYsCj4g Pj4+ICAgICAgIGNoYXIgKl9fYnVmZmVyLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICAgIHN0 cnVjdCBycGNlbnQgKipfX3Jlc3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRycGNieW51bWJlcl9yIChpbnQgX19u dW1iZXIsIHN0cnVjdCBycGNlbnQgKl9fcmVzdWx0X2J1ZiwKPiA+Pj4gICAgICAgICBjaGFyICpf X2J1ZmZlciwgc2l6ZV90IF9fYnVmbGVuLAo+ID4+PiAgICAgICAgIHN0cnVjdCBycGNlbnQgKipf X3Jlc3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBnZXRycGNlbnRfciAoc3RydWN0IHJwY2VudCAqX19yZXN1bHRfYnVm LCBjaGFyICpfX2J1ZmZlciwKPiA+Pj4gICAgc2l6ZV90IF9fYnVmbGVuLCBzdHJ1Y3QgcnBjZW50 ICoqX19yZXN1bHQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMzMgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAyIDMgNAo+ ID4+PiAjIDQyICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNs dWRlL2JpdHMvbmV0ZGIuaCIgMSAzIDQKPiA+Pj4gIyAyNiAiL3Vzci9pbmNsdWRlL2JpdHMvbmV0 ZGIuaCIgMyA0Cj4gPj4+IHN0cnVjdCBuZXRlbnQKPiA+Pj4gewo+ID4+PiAgIGNoYXIgKm5fbmFt ZTsKPiA+Pj4gICBjaGFyICoqbl9hbGlhc2VzOwo+ID4+PiAgIGludCBuX2FkZHJ0eXBlOwo+ID4+ PiAgIHVpbnQzMl90IG5fbmV0Owo+ID4+PiB9Owo+ID4+PiAjIDQzICIvdXNyL2luY2x1ZGUvbmV0 ZGIuaCIgMiAzIDQKPiA+Pj4gIyA1MyAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 ICpfX2hfZXJybm9fbG9jYXRpb24gKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+PiAjIDkyICIvdXNy L2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiB2b2lkIGhlcnJvciAoY29uc3QgY2hh ciAqX19zdHIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBjb25zdCBjaGFyICpoc3RyZXJyb3IgKGludCBfX2Vycl9udW0p IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBob3N0ZW50Cj4gPj4+IHsKPiA+Pj4gICBjaGFyICpoX25h bWU7Cj4gPj4+ICAgY2hhciAqKmhfYWxpYXNlczsKPiA+Pj4gICBpbnQgaF9hZGRydHlwZTsKPiA+ Pj4gICBpbnQgaF9sZW5ndGg7Cj4gPj4+ICAgY2hhciAqKmhfYWRkcl9saXN0Owo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gdm9pZCBzZXRob3N0ZW50IChpbnQgX19zdGF5X29wZW4pOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBlbmRob3N0ZW50ICh2b2lkKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCBob3N0 ZW50ICpnZXRob3N0ZW50ICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCBob3N0ZW50ICpnZXRob3N0YnlhZGRyIChjb25zdCB2b2lk ICpfX2FkZHIsIF9fc29ja2xlbl90IF9fbGVuLAo+ID4+PiAgICAgICAgICAgaW50IF9fdHlwZSk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgaG9zdGVu dCAqZ2V0aG9zdGJ5bmFtZSAoY29uc3QgY2hhciAqX19uYW1lKTsKPiA+Pj4gIyAxNTUgIi91c3Iv aW5jbHVkZS9uZXRkYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIHN0cnVjdCBob3N0ZW50ICpnZXRob3N0 YnluYW1lMiAoY29uc3QgY2hhciAqX19uYW1lLCBpbnQgX19hZik7Cj4gPj4+ICMgMTY3ICIvdXNy L2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZ2V0aG9zdGVudF9yIChzdHJ1 Y3QgaG9zdGVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4gPj4+ICAgICBjaGFyICpfX3Jl c3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICBzdHJ1Y3QgaG9zdGVudCAq Kl9fcmVzdHJpY3QgX19yZXN1bHQsCj4gPj4+ICAgICBpbnQgKl9fcmVzdHJpY3QgX19oX2Vycm5v cCk7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZ2V0aG9zdGJ5YWRkcl9yIChjb25zdCB2b2lkICpf X3Jlc3RyaWN0IF9fYWRkciwgX19zb2NrbGVuX3QgX19sZW4sCj4gPj4+ICAgICAgICBpbnQgX190 eXBlLAo+ID4+PiAgICAgICAgc3RydWN0IGhvc3RlbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVm LAo+ID4+PiAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ ID4+PiAgICAgICAgc3RydWN0IGhvc3RlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAo+ID4+PiAg ICAgICAgaW50ICpfX3Jlc3RyaWN0IF9faF9lcnJub3ApOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IGdldGhvc3RieW5hbWVfciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gPj4+ICAg ICAgICBzdHJ1Y3QgaG9zdGVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4gPj4+ICAgICAg ICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICAgICBz dHJ1Y3QgaG9zdGVudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQsCj4gPj4+ICAgICAgICBpbnQgKl9f cmVzdHJpY3QgX19oX2Vycm5vcCk7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZ2V0aG9zdGJ5bmFt ZTJfciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsIGludCBfX2FmLAo+ID4+PiAgICAg ICAgIHN0cnVjdCBob3N0ZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKPiA+Pj4gICAgICAg ICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICAgICAg c3RydWN0IGhvc3RlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAo+ID4+PiAgICAgICAgIGludCAq X19yZXN0cmljdCBfX2hfZXJybm9wKTsKPiA+Pj4gIyAxOTggIi91c3IvaW5jbHVkZS9uZXRkYi5o IiAzIDQKPiA+Pj4gZXh0ZXJuIHZvaWQgc2V0bmV0ZW50IChpbnQgX19zdGF5X29wZW4pOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBlbmRuZXRlbnQgKHZv aWQpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3Ry dWN0IG5ldGVudCAqZ2V0bmV0ZW50ICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCBuZXRlbnQgKmdldG5ldGJ5YWRkciAodWludDMy X3QgX19uZXQsIGludCBfX3R5cGUpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gc3RydWN0IG5ldGVudCAqZ2V0bmV0YnluYW1lIChjb25zdCBjaGFyICpfX25hbWUp Owo+ID4+PiAjIDIzNyAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50 IGdldG5ldGVudF9yIChzdHJ1Y3QgbmV0ZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKPiA+ Pj4gICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ID4+PiAgICBz dHJ1Y3QgbmV0ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCwKPiA+Pj4gICAgaW50ICpfX3Jlc3Ry aWN0IF9faF9lcnJub3ApOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldG5ldGJ5YWRkcl9yICh1 aW50MzJfdCBfX25ldCwgaW50IF9fdHlwZSwKPiA+Pj4gICAgICAgc3RydWN0IG5ldGVudCAqX19y ZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4gPj4+ICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYs IHNpemVfdCBfX2J1ZmxlbiwKPiA+Pj4gICAgICAgc3RydWN0IG5ldGVudCAqKl9fcmVzdHJpY3Qg X19yZXN1bHQsCj4gPj4+ICAgICAgIGludCAqX19yZXN0cmljdCBfX2hfZXJybm9wKTsKPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBnZXRuZXRieW5hbWVfciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBf X25hbWUsCj4gPj4+ICAgICAgIHN0cnVjdCBuZXRlbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVm LAo+ID4+PiAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4g Pj4+ICAgICAgIHN0cnVjdCBuZXRlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAo+ID4+PiAgICAg ICBpbnQgKl9fcmVzdHJpY3QgX19oX2Vycm5vcCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IHN0cnVjdCBzZXJ2ZW50Cj4gPj4+IHsKPiA+Pj4gICBjaGFyICpzX25hbWU7Cj4gPj4+ICAg Y2hhciAqKnNfYWxpYXNlczsKPiA+Pj4gICBpbnQgc19wb3J0Owo+ID4+PiAgIGNoYXIgKnNfcHJv dG87Cj4gPj4+IH07Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4 dGVybiB2b2lkIHNldHNlcnZlbnQgKGludCBfX3N0YXlfb3Blbik7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIGVuZHNlcnZlbnQgKHZvaWQpOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0IHNlcnZlbnQg KmdldHNlcnZlbnQgKHZvaWQpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gc3RydWN0IHNlcnZlbnQgKmdldHNlcnZieW5hbWUgKGNvbnN0IGNoYXIgKl9f bmFtZSwgY29uc3QgY2hhciAqX19wcm90byk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBzdHJ1Y3Qgc2VydmVudCAqZ2V0c2VydmJ5cG9ydCAoaW50IF9f cG9ydCwgY29uc3QgY2hhciAqX19wcm90byk7Cj4gPj4+ICMgMzA4ICIvdXNyL2luY2x1ZGUvbmV0 ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZ2V0c2VydmVudF9yIChzdHJ1Y3Qgc2VydmVudCAq X19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4gPj4+ICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVm LCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICBzdHJ1Y3Qgc2VydmVudCAqKl9fcmVzdHJpY3Qg X19yZXN1bHQpOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHNlcnZieW5hbWVfciAoY29uc3Qg Y2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gPj4+ICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3Ry aWN0IF9fcHJvdG8sCj4gPj4+ICAgICAgICBzdHJ1Y3Qgc2VydmVudCAqX19yZXN0cmljdCBfX3Jl c3VsdF9idWYsCj4gPj4+ICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19i dWZsZW4sCj4gPj4+ICAgICAgICBzdHJ1Y3Qgc2VydmVudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQp Owo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHNlcnZieXBvcnRfciAoaW50IF9fcG9ydCwgY29u c3QgY2hhciAqX19yZXN0cmljdCBfX3Byb3RvLAo+ID4+PiAgICAgICAgc3RydWN0IHNlcnZlbnQg Kl9fcmVzdHJpY3QgX19yZXN1bHRfYnVmLAo+ID4+PiAgICAgICAgY2hhciAqX19yZXN0cmljdCBf X2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ID4+PiAgICAgICAgc3RydWN0IHNlcnZlbnQgKipfX3Jl c3RyaWN0IF9fcmVzdWx0KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gc3RydWN0IHBy b3RvZW50Cj4gPj4+IHsKPiA+Pj4gICBjaGFyICpwX25hbWU7Cj4gPj4+ICAgY2hhciAqKnBfYWxp YXNlczsKPiA+Pj4gICBpbnQgcF9wcm90bzsKPiA+Pj4gfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgc2V0cHJvdG9lbnQgKGludCBfX3N0YXlf b3Blbik7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIGVu ZHByb3RvZW50ICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIHN0cnVjdCBwcm90b2VudCAqZ2V0cHJvdG9lbnQgKHZvaWQpOwo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0IHByb3RvZW50ICpnZXRwcm90 b2J5bmFtZSAoY29uc3QgY2hhciAqX19uYW1lKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCBwcm90b2VudCAqZ2V0cHJvdG9ieW51bWJlciAoaW50IF9f cHJvdG8pOwo+ID4+PiAjIDM3NCAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+ID4+PiBleHRl cm4gaW50IGdldHByb3RvZW50X3IgKHN0cnVjdCBwcm90b2VudCAqX19yZXN0cmljdCBfX3Jlc3Vs dF9idWYsCj4gPj4+ICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVu LAo+ID4+PiAgICAgIHN0cnVjdCBwcm90b2VudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpOwo+ID4+ Pgo+ID4+PiBleHRlcm4gaW50IGdldHByb3RvYnluYW1lX3IgKGNvbnN0IGNoYXIgKl9fcmVzdHJp Y3QgX19uYW1lLAo+ID4+PiAgICAgICAgIHN0cnVjdCBwcm90b2VudCAqX19yZXN0cmljdCBfX3Jl c3VsdF9idWYsCj4gPj4+ICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9f YnVmbGVuLAo+ID4+PiAgICAgICAgIHN0cnVjdCBwcm90b2VudCAqKl9fcmVzdHJpY3QgX19yZXN1 bHQpOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHByb3RvYnludW1iZXJfciAoaW50IF9fcHJv dG8sCj4gPj4+ICAgICAgICAgICBzdHJ1Y3QgcHJvdG9lbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRf YnVmLAo+ID4+PiAgICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVm bGVuLAo+ID4+PiAgICAgICAgICAgc3RydWN0IHByb3RvZW50ICoqX19yZXN0cmljdCBfX3Jlc3Vs dCk7Cj4gPj4+ICMgMzk1ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBp bnQgc2V0bmV0Z3JlbnQgKGNvbnN0IGNoYXIgKl9fbmV0Z3JvdXApOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBlbmRuZXRncmVudCAo dm9pZCk7Cj4gPj4+ICMgNDEyICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVy biBpbnQgZ2V0bmV0Z3JlbnQgKGNoYXIgKipfX3Jlc3RyaWN0IF9faG9zdHAsCj4gPj4+ICAgIGNo YXIgKipfX3Jlc3RyaWN0IF9fdXNlcnAsCj4gPj4+ICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZG9t YWlucCk7Cj4gPj4+ICMgNDIzICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVy biBpbnQgaW5uZXRnciAoY29uc3QgY2hhciAqX19uZXRncm91cCwgY29uc3QgY2hhciAqX19ob3N0 LAo+ID4+PiAgICAgICBjb25zdCBjaGFyICpfX3VzZXIsIGNvbnN0IGNoYXIgKl9fZG9tYWluKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCBnZXRuZXRncmVudF9yIChjaGFyICoqX19yZXN0cmljdCBfX2hvc3RwLAo+ID4+PiAgICAgIGNo YXIgKipfX3Jlc3RyaWN0IF9fdXNlcnAsCj4gPj4+ICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19k b21haW5wLAo+ID4+PiAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWZmZXIsIHNpemVfdCBfX2J1 Zmxlbik7Cj4gPj4+ICMgNDUxICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVy biBpbnQgcmNtZCAoY2hhciAqKl9fcmVzdHJpY3QgX19haG9zdCwgdW5zaWduZWQgc2hvcnQgaW50 IF9fcnBvcnQsCj4gPj4+ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19sb2N1c2VyLAo+ID4+ PiAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcmVtdXNlciwKPiA+Pj4gICAgY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX2NtZCwgaW50ICpfX3Jlc3RyaWN0IF9fZmQycCk7Cj4gPj4+ICMgNDYz ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgcmNtZF9hZiAoY2hh ciAqKl9fcmVzdHJpY3QgX19haG9zdCwgdW5zaWduZWQgc2hvcnQgaW50IF9fcnBvcnQsCj4gPj4+ ICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19sb2N1c2VyLAo+ID4+PiAgICAgICBjb25z dCBjaGFyICpfX3Jlc3RyaWN0IF9fcmVtdXNlciwKPiA+Pj4gICAgICAgY29uc3QgY2hhciAqX19y ZXN0cmljdCBfX2NtZCwgaW50ICpfX3Jlc3RyaWN0IF9fZmQycCwKPiA+Pj4gICAgICAgc2FfZmFt aWx5X3QgX19hZik7Cj4gPj4+ICMgNDc5ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+ IGV4dGVybiBpbnQgcmV4ZWMgKGNoYXIgKipfX3Jlc3RyaWN0IF9fYWhvc3QsIGludCBfX3Jwb3J0 LAo+ID4+PiAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gPj4+ICAgICBjb25z dCBjaGFyICpfX3Jlc3RyaWN0IF9fcGFzcywKPiA+Pj4gICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJp Y3QgX19jbWQsIGludCAqX19yZXN0cmljdCBfX2ZkMnApOwo+ID4+PiAjIDQ5MSAiL3Vzci9pbmNs dWRlL25ldGRiLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHJleGVjX2FmIChjaGFyICoqX19yZXN0 cmljdCBfX2Fob3N0LCBpbnQgX19ycG9ydCwKPiA+Pj4gICAgICAgIGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QgX19uYW1lLAo+ID4+PiAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3Bhc3Ms Cj4gPj4+ICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fY21kLCBpbnQgKl9fcmVzdHJp Y3QgX19mZDJwLAo+ID4+PiAgICAgICAgc2FfZmFtaWx5X3QgX19hZik7Cj4gPj4+ICMgNTA1ICIv dXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgcnVzZXJvayAoY29uc3Qg Y2hhciAqX19yaG9zdCwgaW50IF9fc3VzZXIsCj4gPj4+ICAgICAgIGNvbnN0IGNoYXIgKl9fcmVt dXNlciwgY29uc3QgY2hhciAqX19sb2N1c2VyKTsKPiA+Pj4gIyA1MTUgIi91c3IvaW5jbHVkZS9u ZXRkYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBydXNlcm9rX2FmIChjb25zdCBjaGFyICpfX3Jo b3N0LCBpbnQgX19zdXNlciwKPiA+Pj4gICAgICAgICAgY29uc3QgY2hhciAqX19yZW11c2VyLCBj b25zdCBjaGFyICpfX2xvY3VzZXIsCj4gPj4+ICAgICAgICAgIHNhX2ZhbWlseV90IF9fYWYpOwo+ ID4+PiAjIDUyOCAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGly dXNlcm9rICh1aW50MzJfdCBfX3JhZGRyLCBpbnQgX19zdXNlciwKPiA+Pj4gICAgICAgIGNvbnN0 IGNoYXIgKl9fcmVtdXNlciwgY29uc3QgY2hhciAqX19sb2N1c2VyKTsKPiA+Pj4gIyA1MzkgIi91 c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBpcnVzZXJva19hZiAoY29u c3Qgdm9pZCAqX19yYWRkciwgaW50IF9fc3VzZXIsCj4gPj4+ICAgIGNvbnN0IGNoYXIgKl9fcmVt dXNlciwgY29uc3QgY2hhciAqX19sb2N1c2VyLAo+ID4+PiAgICBzYV9mYW1pbHlfdCBfX2FmKTsK PiA+Pj4gIyA1NTEgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBy cmVzdnBvcnQgKGludCAqX19hbHBvcnQpOwo+ID4+PiAjIDU2MCAiL3Vzci9pbmNsdWRlL25ldGRi LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHJyZXN2cG9ydF9hZiAoaW50ICpfX2FscG9ydCwgc2Ff ZmFtaWx5X3QgX19hZik7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IHN0cnVjdCBhZGRyaW5mbwo+ID4+PiB7Cj4gPj4+ICAgaW50IGFpX2ZsYWdzOwo+ID4+PiAgIGlu dCBhaV9mYW1pbHk7Cj4gPj4+ICAgaW50IGFpX3NvY2t0eXBlOwo+ID4+PiAgIGludCBhaV9wcm90 b2NvbDsKPiA+Pj4gICBzb2NrbGVuX3QgYWlfYWRkcmxlbjsKPiA+Pj4gICBzdHJ1Y3Qgc29ja2Fk ZHIgKmFpX2FkZHI7Cj4gPj4+ICAgY2hhciAqYWlfY2Fub25uYW1lOwo+ID4+PiAgIHN0cnVjdCBh ZGRyaW5mbyAqYWlfbmV4dDsKPiA+Pj4gfTsKPiA+Pj4gIyA2NjIgIi91c3IvaW5jbHVkZS9uZXRk Yi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBnZXRhZGRyaW5mbyAoY29uc3QgY2hhciAqX19yZXN0 cmljdCBfX25hbWUsCj4gPj4+ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zZXJ2aWNlLAo+ ID4+PiAgICBjb25zdCBzdHJ1Y3QgYWRkcmluZm8gKl9fcmVzdHJpY3QgX19yZXEsCj4gPj4+ICAg IHN0cnVjdCBhZGRyaW5mbyAqKl9fcmVzdHJpY3QgX19wYWkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gdm9pZCBmcmVlYWRkcmluZm8gKHN0cnVjdCBhZGRyaW5mbyAqX19haSkgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGNvbnN0IGNoYXIgKmdhaV9zdHJlcnJvciAoaW50IF9fZWNvZGUpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgZ2V0bmFtZWluZm8gKGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqX19yZXN0 cmljdCBfX3NhLAo+ID4+PiAgICBzb2NrbGVuX3QgX19zYWxlbiwgY2hhciAqX19yZXN0cmljdCBf X2hvc3QsCj4gPj4+ICAgIHNvY2tsZW5fdCBfX2hvc3RsZW4sIGNoYXIgKl9fcmVzdHJpY3QgX19z ZXJ2LAo+ID4+PiAgICBzb2NrbGVuX3QgX19zZXJ2bGVuLCBpbnQgX19mbGFncyk7Cj4gPj4+ICMg NzEzICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgODEgIm1hY2hpbmUu YyIgMgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hcnBhL2luZXQuaCIgMSAzIDQKPiA+ Pj4gIyAzMCAiL3Vzci9pbmNsdWRlL2FycGEvaW5ldC5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIGluX2FkZHJfdCBpbmV0X2FkZHIgKGNvbnN0IGNoYXIgKl9fY3Ap IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbl9hZGRyX3QgaW5ldF9sbmFvZiAoc3RydWN0IGluX2FkZHIgX19pbikgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIHN0cnVjdCBpbl9hZGRyIGluZXRfbWFrZWFkZHIgKGluX2FkZHJfdCBfX25l dCwgaW5fYWRkcl90IF9faG9zdCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW5fYWRkcl90IGluZXRf bmV0b2YgKHN0cnVjdCBpbl9hZGRyIF9faW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs IF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbl9hZGRyX3QgaW5l dF9uZXR3b3JrIChjb25zdCBjaGFyICpfX2NwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqaW5ldF9u dG9hIChzdHJ1Y3QgaW5fYWRkciBfX2luKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGluZXRf cHRvbiAoaW50IF9fYWYsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19jcCwKPiA+Pj4gICAgICAg ICB2b2lkICpfX3Jlc3RyaWN0IF9fYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY29uc3QgY2hh ciAqaW5ldF9udG9wIChpbnQgX19hZiwgY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX2NwLAo+ID4+ PiAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzb2NrbGVuX3QgX19sZW4pCj4gPj4+ ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBpbmV0X2F0b24gKGNv bnN0IGNoYXIgKl9fY3AsIHN0cnVjdCBpbl9hZGRyICpfX2lucCkgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNo YXIgKmluZXRfbmV0YSAoaW5fYWRkcl90IF9fbmV0LCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fbGVu KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqaW5ldF9uZXRfbnRvcCAoaW50IF9fYWYsIGNv bnN0IHZvaWQgKl9fY3AsIGludCBfX2JpdHMsCj4gPj4+ICAgICAgICBjaGFyICpfX2J1Ziwgc2l6 ZV90IF9fbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGluZXRfbmV0X3B0b24gKGludCBf X2FmLCBjb25zdCBjaGFyICpfX2NwLAo+ID4+PiAgICAgIHZvaWQgKl9fYnVmLCBzaXplX3QgX19s ZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB1bnNpZ25lZCBpbnQgaW5ldF9uc2FwX2FkZHIgKGNv bnN0IGNoYXIgKl9fY3AsCj4gPj4+ICAgICAgICAgdW5zaWduZWQgY2hhciAqX19idWYsIGludCBf X2xlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKmluZXRfbnNhcF9udG9hIChpbnQgX19sZW4sIGNv bnN0IHVuc2lnbmVkIGNoYXIgKl9fY3AsCj4gPj4+ICAgICAgICAgY2hhciAqX19idWYpIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+ICMgODMgIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEzNSAibWFjaGluZS5jIgo+ID4+Pgo+ID4+ PiAjIDEzNSAibWFjaGluZS5jIgo+ID4+PiBzdGF0aWMgUGxMb25nIHN0YXJ0X3VzZXJfdGltZSA9 IDA7Cj4gPj4+IHN0YXRpYyBQbExvbmcgc3RhcnRfc3lzdGVtX3RpbWUgPSAwOwo+ID4+PiBzdGF0 aWMgUGxMb25nIHN0YXJ0X3JlYWxfdGltZSA9IDA7Cj4gPj4+Cj4gPj4+IHN0YXRpYyBpbnQgY3Vy X3NlZWQgPSAxOwo+ID4+PiAjIDE1MCAibWFjaGluZS5jIgo+ID4+PiBzdGF0aWMgY2hhciAqSG9z dF9OYW1lX0Zyb21fQWxpYXMoc3RydWN0IGhvc3RlbnQgKmhvc3RfZW50cnkpOwo+ID4+PiAjIDE2 NyAibWFjaGluZS5jIgo+ID4+PiB2b2lkCj4gPj4+IFBsX0luaXRfTWFjaGluZSh2b2lkKQo+ID4+ PiB7Cj4gPj4+ICAgdHpzZXQoKTsKPiA+Pj4KPiA+Pj4gICBzdGFydF91c2VyX3RpbWUgPSBQbF9N X1VzZXJfVGltZSgpOwo+ID4+PiAgIHN0YXJ0X3N5c3RlbV90aW1lID0gUGxfTV9TeXN0ZW1fVGlt ZSgpOwo+ID4+PiAgIHN0YXJ0X3JlYWxfdGltZSA9IFBsX01fUmVhbF9UaW1lKCk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+ICAgbWFsbG9wdCgKPiA+Pj4gIyAxNzcgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAg ICAgICAgIC00Cj4gPj4+ICMgMTc3ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAg ICAsIDApOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgIFBsX0luaXRfTWFjaGluZTEoKTsKPiA+Pj4gfQo+ ID4+PiAjIDE5MCAibWFjaGluZS5jIgo+ID4+PiBjaGFyICoKPiA+Pj4gUGxfTV9TeXNfRXJyX1N0 cmluZyhpbnQgcmV0X3ZhbCkKPiA+Pj4gewo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiAgIGNoYXIgKnN0cjsKPiA+Pj4gICBzdGF0aWMgY2hhciBidWZmWzY0XTsKPiA+Pj4gIyAy MjYgIm1hY2hpbmUuYyIKPiA+Pj4gICBzdHIgPSBzdHJlcnJvcigKPiA+Pj4gIyAyMjYgIm1hY2hp bmUuYyIgMyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAoKl9fZXJybm9fbG9jYXRpb24gKCkpCj4g Pj4+ICMgMjI2ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+ICAgaWYgKHN0cikKPiA+Pj4gICAgIHJldHVybiBzdHI7Cj4gPj4+Cj4gPj4+ ICAgc3ByaW50ZihidWZmLCAiVW5rbm93biBlcnJvciAoJWQpIiwgCj4gPj4+ICMgMjMyICJtYWNo aW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpfX2Vy cm5vX2xvY2F0aW9uICgpKQo+ID4+PiAjIDIzMiAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwo+ID4+PiAgIHJldHVybiBidWZmOwo+ID4+ PiB9Cj4gPj4+ICMgMjQ0ICJtYWNoaW5lLmMiCj4gPj4+IFBsTG9uZwo+ID4+PiBQbF9NX1VzZXJf VGltZSh2b2lkKQo+ID4+PiB7Cj4gPj4+ICAgUGxMb25nIHVzZXJfdGltZTsKPiA+Pj4KPiA+Pj4K PiA+Pj4gICBzdHJ1Y3QgcnVzYWdlIHJzcl91c2FnZTsKPiA+Pj4KPiA+Pj4gICBnZXRydXNhZ2Uo Cj4gPj4+ICMgMjUyICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgIFJVU0FHRV9TRUxG Cj4gPj4+ICMgMjUyICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAsICZy c3JfdXNhZ2UpOwo+ID4+Pgo+ID4+PiAgIHVzZXJfdGltZSA9IChyc3JfdXNhZ2UucnVfdXRpbWUu dHZfc2VjICogMTAwMCkgKwo+ID4+PiAgICAgKHJzcl91c2FnZS5ydV91dGltZS50dl91c2VjIC8g MTAwMCk7Cj4gPj4+ICMgMjc1ICJtYWNoaW5lLmMiCj4gPj4+ICAgcmV0dXJuIHVzZXJfdGltZSAt IHN0YXJ0X3VzZXJfdGltZTsKPiA+Pj4gfQo+ID4+PiAjIDI4NiAibWFjaGluZS5jIgo+ID4+PiBQ bExvbmcKPiA+Pj4gUGxfTV9TeXN0ZW1fVGltZSh2b2lkKQo+ID4+PiB7Cj4gPj4+ICAgUGxMb25n IHN5c3RlbV90aW1lOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgIHN0cnVjdCBydXNhZ2UgcnNyX3VzYWdl Owo+ID4+Pgo+ID4+PiAgIGdldHJ1c2FnZSgKPiA+Pj4gIyAyOTQgIm1hY2hpbmUuYyIgMyA0Cj4g Pj4+ICAgICAgICAgICAgUlVTQUdFX1NFTEYKPiA+Pj4gIyAyOTQgIm1hY2hpbmUuYyIKPiA+Pj4g ICAgICAgICAgICAgICAgICAgICAgICwgJnJzcl91c2FnZSk7Cj4gPj4+Cj4gPj4+ICAgc3lzdGVt X3RpbWUgPSAocnNyX3VzYWdlLnJ1X3N0aW1lLnR2X3NlYyAqIDEwMDApICsKPiA+Pj4gICAgIChy c3JfdXNhZ2UucnVfc3RpbWUudHZfdXNlYyAvIDEwMDApOwo+ID4+PiAjIDMxNyAibWFjaGluZS5j Igo+ID4+PiAgIHJldHVybiBzeXN0ZW1fdGltZSAtIHN0YXJ0X3N5c3RlbV90aW1lOwo+ID4+PiB9 Cj4gPj4+ICMgMzI4ICJtYWNoaW5lLmMiCj4gPj4+IFBsTG9uZwo+ID4+PiBQbF9NX1JlYWxfVGlt ZSh2b2lkKQo+ID4+PiB7Cj4gPj4+ICAgUGxMb25nIHJlYWxfdGltZTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4gICBzdHJ1Y3QgdGltZXZhbCB0djsKPiA+Pj4KPiA+Pj4gICBnZXR0aW1lb2ZkYXkoJnR2LCAK PiA+Pj4gIyAzMzYgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAoKHZv aWQgKikwKQo+ID4+PiAjIDMzNiAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAg ICAgICk7Cj4gPj4+ICAgcmVhbF90aW1lID0gKHR2LnR2X3NlYyAqIDEwMDApICsgKHR2LnR2X3Vz ZWMgLyAxMDAwKTsKPiA+Pj4gIyAzNTAgIm1hY2hpbmUuYyIKPiA+Pj4gICByZXR1cm4gcmVhbF90 aW1lIC0gc3RhcnRfcmVhbF90aW1lOwo+ID4+PiB9Cj4gPj4+ICMgMzY3ICJtYWNoaW5lLmMiCj4g Pj4+IHZvaWQKPiA+Pj4gUGxfTV9SYW5kb21pemUodm9pZCkKPiA+Pj4gewo+ID4+PiAgIHN0YXRp YyBpbnQgY291bnQgPSAwOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIHN0cnVjdCB0aW1ldmFs IHR2Owo+ID4+PiAgIGludCBzZWVkOwo+ID4+Pgo+ID4+PiAgIGdldHRpbWVvZmRheSgmdHYsIAo+ ID4+PiAjIDM3NyAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICgodm9p ZCAqKTApCj4gPj4+ICMgMzc3ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAg ICAgKTsKPiA+Pj4gICBzZWVkID0gKHR2LnR2X3NlYyAqIDEwMDApICsgKHR2LnR2X3VzZWMgLyAx MDAwKTsKPiA+Pj4KPiA+Pj4gICBjb3VudCA9IChjb3VudCArIHJhbmQoKSkgJSAweEZGRkY7Cj4g Pj4+ICAgc2VlZCA9IHNlZWQgXiAoZ2V0cGlkKCkgPDwgKHNlZWQgJiAweEZGKSk7Cj4gPj4+ICAg c2VlZCAqPSBjb3VudDsKPiA+Pj4gICBzZWVkID0gc2VlZCAmIDB4RkZGRkZGOwo+ID4+Pgo+ID4+ PiAgIFBsX01fU2V0X1NlZWQoc2VlZCk7Cj4gPj4+IH0KPiA+Pj4gIyAzOTUgIm1hY2hpbmUuYyIK PiA+Pj4gdm9pZAo+ID4+PiBQbF9NX1NldF9TZWVkKGludCBuKQo+ID4+PiB7Cj4gPj4+ICAgY3Vy X3NlZWQgPSBuOwo+ID4+PiAgIHNyYW5kKGN1cl9zZWVkKTsKPiA+Pj4gfQo+ID4+PiAjIDQwOSAi bWFjaGluZS5jIgo+ID4+PiBpbnQKPiA+Pj4gUGxfTV9HZXRfU2VlZCh2b2lkKQo+ID4+PiB7Cj4g Pj4+ICAgcmV0dXJuIGN1cl9zZWVkOwo+ID4+PiB9Cj4gPj4+ICMgNDIzICJtYWNoaW5lLmMiCj4g Pj4+IGludAo+ID4+PiBQbF9NX1JhbmRvbV9JbnRlZ2VyKGludCBuKQo+ID4+PiB7Cj4gPj4+ICAg cmV0dXJuIChpbnQpICgoZG91YmxlKSBuICogcmFuZCgpIC8gKAo+ID4+PiAjIDQyNiAibWFjaGlu ZS5jIiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMTQ3 NDgzNjQ3IAo+ID4+PiAjIDQyNiAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMS4wKSk7Cj4gPj4+IH0KPiA+Pj4gIyA0Mzcg Im1hY2hpbmUuYyIKPiA+Pj4gZG91YmxlCj4gPj4+IFBsX01fUmFuZG9tX0Zsb2F0KGRvdWJsZSBu KQo+ID4+PiB7Cj4gPj4+ICAgcmV0dXJuIG4gKiByYW5kKCkgLyAoCj4gPj4+ICMgNDQwICJtYWNo aW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgMjE0NzQ4MzY0NyAKPiA+Pj4g IyA0NDAgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsg MS4wKTsKPiA+Pj4gfQo+ID4+PiAjIDQ1MSAibWFjaGluZS5jIgo+ID4+PiBjaGFyICoKPiA+Pj4g UGxfTV9Ib3N0X05hbWVfRnJvbV9OYW1lKGNoYXIgKmhvc3RfbmFtZSkKPiA+Pj4gewo+ID4+PiAg IHN0YXRpYyBjaGFyIGJ1ZmZbNDA5Nl07Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgc3RydWN0IGhvc3Rl bnQgKmhvc3RfZW50cnk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgaWYgKGhvc3RfbmFtZSA9PSAKPiA+ Pj4gIyA0NjAgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAgICgodm9pZCAq KTApCj4gPj4+ICMgNDYwICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAp Cj4gPj4+ICAgICB7Cj4gPj4+ICAgICAgIFBsTG9uZyBsZW5ndGggPSBzaXplb2YoYnVmZik7Cj4g Pj4+ICAgICAgIGhvc3RfbmFtZSA9IGJ1ZmY7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICAg IGlmIChnZXRob3N0bmFtZShidWZmLCBsZW5ndGgpKQo+ID4+Pgo+ID4+PiAgICAgICAgIHsKPiA+ Pj4gICAgICAgICAgIHN0cmNweShidWZmLCAidW5rbm93biBob3N0IG5hbWUiKTsKPiA+Pj4gICAg ICAgICAgIGdvdG8gZmluaXNoOwo+ID4+PiAgICAgICAgIH0KPiA+Pj4gICAgIH0KPiA+Pj4KPiA+ Pj4gICBpZiAoc3RyY2hyKGhvc3RfbmFtZSwgJy4nKSAhPSAKPiA+Pj4gIyA0NzUgIm1hY2hpbmUu YyIgMyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+ ID4+PiAjIDQ3NSAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKPiA+Pj4gICAgIGdvdG8gZmluaXNoOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAg IGhvc3RfZW50cnkgPSBnZXRob3N0YnluYW1lKGhvc3RfbmFtZSk7Cj4gPj4+ICAgaWYgKGhvc3Rf ZW50cnkgPT0gCj4gPj4+ICMgNDgxICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAg ICAgICAgKCh2b2lkICopMCkKPiA+Pj4gIyA0ODEgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAg ICAgICAgICAgICAgICApCj4gPj4+ICAgICBnb3RvIGZpbmlzaDsKPiA+Pj4KPiA+Pj4gICBob3N0 X25hbWUgPSBIb3N0X05hbWVfRnJvbV9BbGlhcyhob3N0X2VudHJ5KTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gZmluaXNoOgo+ID4+PiAgIHJldHVybiBob3N0X25hbWU7Cj4gPj4+IH0KPiA+Pj4g IyA0OTkgIm1hY2hpbmUuYyIKPiA+Pj4gY2hhciAqCj4gPj4+IFBsX01fSG9zdF9OYW1lX0Zyb21f QWRyKGNoYXIgKmhvc3RfYWRkcmVzcykKPiA+Pj4gewo+ID4+Pgo+ID4+PiAgIHN0cnVjdCBob3N0 ZW50ICpob3N0X2VudHJ5Owo+ID4+PiAgIHN0cnVjdCBpbl9hZGRyIGlhZHI7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgaWYgKGluZXRfYXRvbihob3N0X2FkZHJl c3MsICZpYWRyKSA9PSAwKQo+ID4+Pgo+ID4+PiAgICAgcmV0dXJuIDA7Cj4gPj4+Cj4gPj4+ICAg aG9zdF9lbnRyeSA9IGdldGhvc3RieWFkZHIoKGNoYXIgKikgJmlhZHIsIHNpemVvZihpYWRyKSwg Cj4gPj4+ICMgNTE1ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgo+ID4+PiAjIDUxNSAibWFjaGlu ZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICk7Cj4gPj4+ICAgaWYgKGhvc3RfZW50cnkgPT0gCj4gPj4+ICMg NTE2ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgKCh2b2lkICopMCkK PiA+Pj4gIyA1MTYgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICApCj4g Pj4+ICAgICByZXR1cm4gCj4gPj4+ICMgNTE3ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAg ICAgKCh2b2lkICopMCkKPiA+Pj4gIyA1MTcgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAg ICA7Cj4gPj4+Cj4gPj4+ICAgcmV0dXJuIEhvc3RfTmFtZV9Gcm9tX0FsaWFzKGhvc3RfZW50cnkp Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB9Cj4gPj4+ICMgNTM0ICJtYWNoaW5lLmMiCj4gPj4+ IHN0YXRpYyBjaGFyICoKPiA+Pj4gSG9zdF9OYW1lX0Zyb21fQWxpYXMoc3RydWN0IGhvc3RlbnQg Kmhvc3RfZW50cnkpCj4gPj4+IHsKPiA+Pj4gICBjaGFyICpuYW1lOwo+ID4+PiAgIGNoYXIgKiph bGlhczsKPiA+Pj4gICBjaGFyICpwOwo+ID4+Pgo+ID4+PiAgIG5hbWUgPSAoY2hhciAqKSBob3N0 X2VudHJ5LT5oX25hbWU7Cj4gPj4+ICAgYWxpYXMgPSBob3N0X2VudHJ5LT5oX2FsaWFzZXM7Cj4g Pj4+ICAgd2hpbGUgKChwID0gc3RyY2hyKG5hbWUsICcuJykpID09IAo+ID4+PiAjIDU0MyAibWFj aGluZS5jIiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZv aWQgKikwKSAKPiA+Pj4gIyA1NDMgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICYmICphbGlhcykKPiA+Pj4gICAgIG5hbWUgPSAqYWxpYXMr KzsKPiA+Pj4KPiA+Pj4gICBpZiAocCkKPiA+Pj4gICAgIHJldHVybiBuYW1lOwo+ID4+Pgo+ID4+ PiAgIHJldHVybiAoY2hhciAqKSBob3N0X2VudHJ5LT5oX25hbWU7Cj4gPj4+IH0KPiA+Pj4gIyA1 NjEgIm1hY2hpbmUuYyIKPiA+Pj4gQm9vbAo+ID4+PiBQbF9NX1NldF9Xb3JraW5nX0RpcihjaGFy ICpwYXRoKQo+ID4+PiB7Cj4gPj4+ICAgY2hhciAqbmV3X3BhdGggPSBQbF9NX0Fic29sdXRlX1Bh dGhfTmFtZShwYXRoKTsKPiA+Pj4KPiA+Pj4gICByZXR1cm4gKG5ld19wYXRoICE9IAo+ID4+PiAj IDU2NiAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgKCh2b2lkICop MCkgCj4gPj4+ICMgNTY2ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgJiYgY2hkaXIobmV3X3BhdGgpID09IDApOwo+ID4+PiB9Cj4gPj4+ICMgNTc2ICJtYWNoaW5l LmMiCj4gPj4+IGNoYXIgKgo+ID4+PiBQbF9NX0dldF9Xb3JraW5nX0Rpcih2b2lkKQo+ID4+PiB7 Cj4gPj4+ICAgc3RhdGljIGNoYXIgY3VyX3dvcmtfZGlyWwo+ID4+PiAjIDU3OSAibWFjaGluZS5j IiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICA0MDk2Cj4gPj4+ICMgNTc5ICJt YWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07Cj4g Pj4+Cj4gPj4+ICAgaWYgKGdldGN3ZChjdXJfd29ya19kaXIsIHNpemVvZihjdXJfd29ya19kaXIp IC0gMSkgPT0gCj4gPj4+ICMgNTgxICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2lkICopMCkKPiA+ Pj4gIyA1ODEgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCj4gPj4+ICAgICBzdHJjcHkoY3VyX3dvcmtf ZGlyLCAiLiIpOwo+ID4+PiAgIHJldHVybiBjdXJfd29ya19kaXI7Cj4gPj4+IH0KPiA+Pj4gIyA1 OTQgIm1hY2hpbmUuYyIKPiA+Pj4gY2hhciAqCj4gPj4+IFBsX01fQWJzb2x1dGVfUGF0aF9OYW1l KGNoYXIgKnNyYykKPiA+Pj4gewo+ID4+PiAgIHN0YXRpYyBjaGFyIGJ1ZmZbMl1bCj4gPj4+ICMg NTk3ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICA0MDk2Cj4gPj4+ ICMgNTk3ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBd Owo+ID4+PiAgIGludCByZXMgPSAwOwo+ID4+PiAgIGNoYXIgKmRzdDsKPiA+Pj4gICBjaGFyICpw LCAqcTsKPiA+Pj4gICBjaGFyIGM7Cj4gPj4+Cj4gPj4+ICAgZHN0ID0gYnVmZltyZXNdOwo+ID4+ PiAgIHdoaWxlICgoKmRzdCsrID0gKnNyYykpCj4gPj4+ICAgICB7Cj4gPj4+ICAgICAgIGMgPSAq c3JjKys7Cj4gPj4+ICAgICAgIGlmIChjID09ICckJwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAg ICAgICAgICkKPiA+Pj4gICAgICAgICB7Cj4gPj4+ICAgICAgICAgICBwID0gZHN0Owo+ID4+PiAg ICAgICAgICAgd2hpbGUgKAo+ID4+PiAjIDYxNCAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAgICAg ICAgICAgICAgICgoKl9fY3R5cGVfYl9sb2MgKCkpWyhpbnQpICgoCj4gPj4+ICMgNjE0ICJtYWNo aW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAqc3JjCj4gPj4+ICMgNjE0ICJtYWNoaW5lLmMi IDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgKSldICYgKHVuc2lnbmVkIHNob3J0IGludCkgX0lT YWxudW0pIAo+ID4+PiAjIDYxNCAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8fCAqc3JjID09ICdfJykKPiA+Pj4gICAgICAgICAgICAgKmRzdCsrID0gKnNy YysrOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgICAgICAgKmRzdCA9ICdcMCc7 Cj4gPj4+ICAgICAgICAgICBxID0gZ2V0ZW52KHApOwo+ID4+PiAgICAgICAgICAgaWYgKHEpCj4g Pj4+ICAgICAgICAgICAgIHsKPiA+Pj4gICAgICAgICAgICAgICBwLS07Cj4gPj4+ICAgICAgICAg ICAgICAgc3RyY3B5KHAsIHEpOwo+ID4+PiAgICAgICAgICAgICAgIGRzdCA9IHAgKyBzdHJsZW4o cCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICAgICAgICAgIH0KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgICAgICB9Cj4gPj4+ICAgICB9Cj4gPj4+ICAgKmRzdCA9 ICdcMCc7Cj4gPj4+Cj4gPj4+ICAgaWYgKGJ1ZmZbcmVzXVswXSA9PSAnficpCj4gPj4+ICAgICB7 Cj4gPj4+ICAgICAgIGlmICgoKGJ1ZmZbcmVzXVsxXSkgPT0gJy8nIHx8IChidWZmW3Jlc11bMV0p ID09ICcvJykgfHwgYnVmZltyZXNdWzFdID09ICdcMCcpCj4gPj4+ICAgICAgICAgewo+ID4+PiAg ICBxID0gCj4gPj4+ICMgNjQ0ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAoKHZvaWQgKikw KQo+ID4+PiAjIDY0NCAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgOzsKPiA+Pj4gICAgICAg ICAgIGlmICgocCA9IGdldGVudigiSE9NRSIpKSA9PSAKPiA+Pj4gIyA2NDUgIm1hY2hpbmUuYyIg MyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikw KQo+ID4+PiAjIDY0NSAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKPiA+Pj4gICAgICB7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+ICAgICAgICByZXR1cm4gCj4gPj4+ICMgNjUyICJtYWNoaW5lLmMiIDMgNAo+ID4+ PiAgICAgICAgICAgICAgKCh2b2lkICopMCkKPiA+Pj4gIyA2NTIgIm1hY2hpbmUuYyIKPiA+Pj4g ICAgICAgICAgICAgICAgICA7Cj4gPj4+Cj4gPj4+ICAgICAgfQo+ID4+PiAgICBpZiAocSA9PSAK PiA+Pj4gIyA2NTUgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAgICAgICAgICAgKCh2b2lkICopMCkK PiA+Pj4gIyA2NTUgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgKQo+ID4+PiAgICAg IHEgPSAiIjsKPiA+Pj4gICAgICAgICAgIHNwcmludGYoYnVmZlsxIC0gcmVzXSwgIiVzJXMvJXMi LCBxLCBwLCBidWZmW3Jlc10gKyAxKTsKPiA+Pj4gICAgICAgICAgIHJlcyA9IDEgLSByZXM7Cj4g Pj4+ICAgICAgICAgfQo+ID4+Pgo+ID4+PiAgICAgICBlbHNlCj4gPj4+ICAgICAgICAgewo+ID4+ PiAgICAgICAgICAgc3RydWN0IHBhc3N3ZCAqcHc7Cj4gPj4+Cj4gPj4+ICAgICAgICAgICBwID0g YnVmZltyZXNdICsgMTsKPiA+Pj4gICAgICAgICAgIHdoaWxlICgqcCAmJiAhKCgqcCkgPT0gJy8n IHx8ICgqcCkgPT0gJy8nKSkKPiA+Pj4gICAgICAgICAgICAgcCsrOwo+ID4+Pgo+ID4+PiAgICAg ICAgICAgYnVmZltyZXNdWzBdID0gKnA7Cj4gPj4+ICAgICAgICAgICAqcCA9ICdcMCc7Cj4gPj4+ ICAgICAgICAgICBpZiAoKHB3ID0gZ2V0cHduYW0oYnVmZltyZXNdICsgMSkpID09IAo+ID4+PiAj IDY3MSAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+ID4+PiAjIDY3MSAibWFjaGluZS5jIgo+ID4+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCj4g Pj4+ICAgICAgICAgICAgIHJldHVybiAKPiA+Pj4gIyA2NzIgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ ICAgICAgICAgICAgICAgICAgICgodm9pZCAqKTApCj4gPj4+ICMgNjcyICJtYWNoaW5lLmMiCj4g Pj4+ICAgICAgICAgICAgICAgICAgICAgICA7Cj4gPj4+Cj4gPj4+ICAgICAgICAgICAqcCA9IGJ1 ZmZbcmVzXVswXTsKPiA+Pj4KPiA+Pj4gICAgICAgICAgIHNwcmludGYoYnVmZlsxIC0gcmVzXSwg IiVzLyVzIiwgcHctPnB3X2RpciwgcCk7Cj4gPj4+ICAgICAgICAgICByZXMgPSAxIC0gcmVzOwo+ ID4+PiAgICAgICAgIH0KPiA+Pj4KPiA+Pj4gICAgIH0KPiA+Pj4KPiA+Pj4gICBpZiAoc3RyY21w KGJ1ZmZbcmVzXSwgInVzZXIiKSA9PSAwKQo+ID4+PiAgICAgcmV0dXJuIGJ1ZmZbcmVzXTsKPiA+ Pj4gIyA3MDYgIm1hY2hpbmUuYyIKPiA+Pj4gICBpZiAoYnVmZltyZXNdWzBdICE9ICcvJykKPiA+ Pj4gICAgIHsKPiA+Pj4gICAgICAgc3ByaW50ZihidWZmWzEgLSByZXNdLCAiJXMvJXMiLCBQbF9N X0dldF9Xb3JraW5nX0RpcigpLCBidWZmW3Jlc10pOwo+ID4+PiAgICAgICByZXMgPSAxIC0gcmVz Owo+ID4+PiAgICAgfQo+ID4+Pgo+ID4+PiAgIHNyYyA9IGJ1ZmZbcmVzXTsKPiA+Pj4gICByZXMg PSAxIC0gcmVzOwo+ID4+PiAgIGRzdCA9IGJ1ZmZbcmVzXTsKPiA+Pj4KPiA+Pj4gICB3aGlsZSAo KCpkc3QrKyA9ICpzcmMpKQo+ID4+PiAgICAgewo+ID4+PiAgICAgICBpZiAoKnNyYysrICE9ICcv JykKPiA+Pj4gICAgICAgICBjb250aW51ZTsKPiA+Pj4KPiA+Pj4gICAgIGNvbGxhcHNlOgo+ID4+ PiAgICAgICB3aGlsZSAoKnNyYyA9PSAnLycpCj4gPj4+ICAgICAgICAgc3JjKys7Cj4gPj4+Cj4g Pj4+ICAgICAgIGlmICgqc3JjICE9ICcuJykKPiA+Pj4gICAgICAgICBjb250aW51ZTsKPiA+Pj4K PiA+Pj4gICAgICAgaWYgKHNyY1sxXSA9PSAnLycgfHwgc3JjWzFdID09ICdcMCcpCj4gPj4+ICAg ICAgICAgewo+ID4+PiAgICAgICAgICAgc3JjKys7Cj4gPj4+ICAgICAgICAgICBnb3RvIGNvbGxh cHNlOwo+ID4+PiAgICAgICAgIH0KPiA+Pj4KPiA+Pj4gICAgICAgaWYgKHNyY1sxXSAhPSAnLicg fHwgKHNyY1syXSAhPSAnLycgJiYgc3JjWzJdICE9ICdcMCcpKQo+ID4+PiAgICAgICAgIGNvbnRp bnVlOwo+ID4+Pgo+ID4+PiAgICAgICBzcmMgKz0gMjsKPiA+Pj4gICAgICAgcCA9IGRzdCAtIDI7 Cj4gPj4+ICAgICAgIHdoaWxlIChwID49IGJ1ZmZbcmVzXSAmJiAqcCAhPSAnLycpCj4gPj4+ICAg ICAgICAgcC0tOwo+ID4+Pgo+ID4+PiAgICAgICBpZiAocCA8IGJ1ZmZbcmVzXSkKPiA+Pj4gICAg ICAgICByZXR1cm4gCj4gPj4+ICMgNzQzICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAg ICAgICgodm9pZCAqKTApCj4gPj4+ICMgNzQzICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAg ICAgICAgIDsKPiA+Pj4KPiA+Pj4gICAgICAgZHN0ID0gcDsKPiA+Pj4gICAgIH0KPiA+Pj4KPiA+ Pj4gICBkc3QtLTsKPiA+Pj4gIyA3NTkgIm1hY2hpbmUuYyIKPiA+Pj4gICBpZiAoZHN0IC0gYnVm ZltyZXNdID4gMSAmJiAoKGRzdFstMV0pID09ICcvJyB8fCAoZHN0Wy0xXSkgPT0gJy8nKSkKPiA+ Pj4gICAgIGRzdFstMV0gPSAnXDAnOwo+ID4+Pgo+ID4+PiAgIHJldHVybiBidWZmW3Jlc107Cj4g Pj4+IH0KPiA+Pj4gIyA3NzMgIm1hY2hpbmUuYyIKPiA+Pj4gQm9vbAo+ID4+PiBQbF9NX0lzX0Fi c29sdXRlX0ZpbGVfTmFtZShjaGFyICpwYXRoKQo+ID4+PiB7Cj4gPj4+ICAgaWYgKCgoKnBhdGgp ID09ICcvJyB8fCAoKnBhdGgpID09ICcvJykpCj4gPj4+ICAgICByZXR1cm4gMTsKPiA+Pj4gIyA3 OTUgIm1hY2hpbmUuYyIKPiA+Pj4gICByZXR1cm4gMDsKPiA+Pj4gfQo+ID4+PiAjIDgyOSAibWFj aGluZS5jIgo+ID4+PiBjaGFyICoKPiA+Pj4gUGxfTV9EZWNvbXBvc2VfRmlsZV9OYW1lKGNoYXIg KnBhdGgsIEJvb2wgZGVsX3RyYWlsX3NsYXNoZXMsIGNoYXIgKipiYXNlLCBjaGFyICoqc3VmZml4 KQo+ID4+PiB7Cj4gPj4+ICAgc3RhdGljIGNoYXIgYnVmZl9kaXJbCj4gPj4+ICMgODMyICJtYWNo aW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgNDA5Ngo+ID4+PiAjIDgzMiAi bWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07Cj4gPj4+ ICAgc3RhdGljIGNoYXIgYnVmZl9iYXNlWwo+ID4+PiAjIDgzMyAibWFjaGluZS5jIiAzIDQKPiA+ Pj4gICAgICAgICAgICAgICAgICAgICAgICA0MDk2Cj4gPj4+ICMgODMzICJtYWNoaW5lLmMiCj4g Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07Cj4gPj4+ICAgaW50IGRpcl9z dGFydF9wb3MgPSAwOwo+ID4+PiAjIDg1MiAibWFjaGluZS5jIgo+ID4+PiAgIGNoYXIgKnA7Cj4g Pj4+Cj4gPj4+ICAgc3RyY3B5KGJ1ZmZfZGlyLCBwYXRoKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gICBkbyB7IGNoYXIgKl9wdHI7IGZvcigocCkgPSAKPiA+Pj4gIyA4NjAg Im1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAoKHZvaWQgKikwKQo+ID4+PiAjIDg2MCAibWFjaGluZS5j Igo+ID4+PiAgLCBfcHRyID0gKGJ1ZmZfZGlyKTsgKl9wdHI7IF9wdHIrKykgaWYgKCgoKl9wdHIp ID09ICcvJyB8fCAoKl9wdHIpID09ICcvJykpIChwKSA9IF9wdHI7IH0gd2hpbGUoMCk7Cj4gPj4+ Cj4gPj4+ICAgcCA9IChwID09IAo+ID4+PiAjIDg2MiAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAg ICAgICAgICAoKHZvaWQgKikwKQo+ID4+PiAjIDg2MiAibWFjaGluZS5jIgo+ID4+PiAgICAgICAg ICAgICAgICApID8gYnVmZl9kaXIgKyBkaXJfc3RhcnRfcG9zIDogcCArIDE7Cj4gPj4+Cj4gPj4+ ICAgc3RyY3B5KGJ1ZmZfYmFzZSwgcCk7Cj4gPj4+ICAgKnAgPSAnXDAnOwo+ID4+Pgo+ID4+PiAg IGlmICgocCA9IHN0cnJjaHIoYnVmZl9iYXNlLCAnLicpKSAhPSAKPiA+Pj4gIyA4NjcgIm1hY2hp bmUuYyIgMyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2 b2lkICopMCkKPiA+Pj4gIyA4NjcgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQo+ID4+PiAgICAgKnN1ZmZpeCA9IHA7Cj4gPj4+ICAg ZWxzZQo+ID4+PiAgICAgKnN1ZmZpeCA9IGJ1ZmZfYmFzZSArIHN0cmxlbihidWZmX2Jhc2UpOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIGlmIChkZWxfdHJhaWxfc2xhc2hlcykKPiA+Pj4gICAg IHsKPiA+Pj4gICAgICAgaWYgKGJ1ZmZfZGlyW2Rpcl9zdGFydF9wb3NdID09ICdcMCcpCj4gPj4+ ICBzdHJjYXQoYnVmZl9kaXIsICIuIik7Cj4gPj4+ICAgICAgIGVsc2UKPiA+Pj4gIHsKPiA+Pj4g ICAgaW50IGxlbiA9IHN0cmxlbihidWZmX2Rpcik7Cj4gPj4+ICAgIHdoaWxlKC0tbGVuID49IGRp cl9zdGFydF9wb3MgJiYgKChidWZmX2RpcltsZW5dKSA9PSAnLycgfHwgKGJ1ZmZfZGlyW2xlbl0p ID09ICcvJykpCj4gPj4+ICAgICAgOwo+ID4+Pgo+ID4+PiAgICBpZiAobGVuIDwgZGlyX3N0YXJ0 X3BvcykKPiA+Pj4gICAgICBsZW4gPSBkaXJfc3RhcnRfcG9zOwo+ID4+PiAgICBidWZmX2Rpclts ZW4gKyAxXSA9ICdcMCc7Cj4gPj4+ICB9Cj4gPj4+ICAgICB9Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgKmJhc2UgPSBidWZmX2Jhc2U7Cj4gPj4+Cj4gPj4+ICAg cmV0dXJuIGJ1ZmZfZGlyOwo+ID4+PiB9Cj4gPj4KPiA+Pj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+Pj4gQnVnLXByb2xvZyBtYWlsaW5nIGxpc3QK PiA+Pj4gQnVnLXByb2xvZ0BnbnUub3JnCj4gPj4+IGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWls bWFuL2xpc3RpbmZvL2J1Zy1wcm9sb2cKPiA+Pgo+ID4+Cj4gPiAKPiAKPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEJ1Zy1wcm9sb2cgbWFpbGluZyBs aXN0Cj4gQnVnLXByb2xvZ0BnbnUub3JnCj4gaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4v bGlzdGluZm8vYnVnLXByb2xvZwoKLS0gCk1hdHRoZXcgQ2FydGVyCmplaGl2YUBnbWFpbC5jb20K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkJ1Zy1wcm9s b2cgbWFpbGluZyBsaXN0CkJ1Zy1wcm9sb2dAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcv bWFpbG1hbi9saXN0aW5mby9idWctcHJvbG9nCg==