Re: GCC segfault on i686
Matthew Carter <[email protected]> Thu, 25 Aug 2016 21:07:04 -0400
| Newsgroups | gmane.comp.gnu.prolog.bugs |
|---|---|
| Message-ID | <[email protected]> |
SGkgVGlsbCwKCkkgd2FzIGFibGUgdG8gY29tcGlsZSBqdXN0IG5vdyAob24gaTY4NiB3aXRoIGdw cm9sb2cgMS40KSB3aXRoIHRoZSBmb2xsb3dpbmcgZmxhZ3M6CgoJLi9jb25maWd1cmUgLS1kaXNh YmxlLXJlZ3MgLS1kaXNhYmxlLWZhc3QtY2FsbAoKSSdtIG5vdCBzdXJlIGlmIGJvdGggYXJlIHJl cXVpcmVkLCB5b3UgY2FuIHByb2JhYmx5IGV4cGVyaW1lbnQgYnkKcmVtb3Zpbmcgb25lIGF0IGEg dGltZSB0byBzZWUuCgotTWF0dAoKT24gVGh1LCBBdWcgMjUsIDIwMTYgYXQgMDc6NDk6MTJQTSAr MDIwMCwgVGlsbCBIb2ZtYW5uIHdyb3RlOgo+IEhpIGFsbCwKPiAKPiBkbyB5b3UgaGF2ZSBhIHN1 Z2dlc3Rpb24gb24gaG93IHRvIHByb2NlZWQgd2l0aCB0aGlzIGJ1Zz8gQ2FuIHRoaXMgYmUKPiBm aXhlZCBvbiB0aGUgUHJvbG9nIHNpZGU/IFNob3VsZCB0aGlzIGJlIHJlcG9ydGVkIGFzIEdDQyBi dWc/Cj4gCj4gS2luZCByZWdhcmRzLAo+IFRpbGwKPiAKPiBPbiAwOC8xOS8yMDE2IDA4OjU2IEFN LCBUaWxsIEhvZm1hbm4gd3JvdGU6Cj4gPiBPbiAwOC8xOS8yMDE2IDAyOjQwIEFNLCBNYXR0aGV3 IENhcnRlciB3cm90ZToKPiA+PiBJIGNhbiBjb25maXJtIGZhaWx1cmUgdG8gYnVpbGQgd2l0aCBn Y2MgNi4xKyBvbiBpNjg2ICh1c2luZyBBcmNoIExpbnV4Cj4gPj4gbXlzZWxmKS4KPiA+Pgo+ID4+ IEkgY291bGRuJ3QgZ2V0IGl0IHRvIGJ1aWxkIHdpdGggeW91ciBjb25maWd1cmUgb3B0aW9ucyBo b3dldmVyIChpdCBzdGlsbAo+ID4+IGZhaWxlZCB3aXRoIHNlZ2ZhdWx0IGluIHRoZSBzYW1lIHBs YWNlKS4KPiA+IAo+ID4gVGhlIGNvbmZpZ3VyZSBvcHRpb25zIHdlcmUgb25seSB0byBwcm9kdWNl IHRoZSBtb3JlIHZlcmJvc2UgbWFrZSBvdXRwdXQKPiA+IGFuZCB0aGUgLmkgZmlsZXMuIFRoZSBi dWlsZCBzdGlsbCBmYWlscy4gU29ycnkgaWYgdGhpcyB3YXNuJ3QgY2xlYXIuCj4gPiAKPiA+IEtp bmQgcmVnYXJkcywKPiA+IFRpbGwKPiA+IAo+ID4+Cj4gPj4gLU1hdHQKPiA+Pgo+ID4+IE9uIFRo dSwgQXVnIDE4LCAyMDE2IGF0IDEyOjEwOjQ5UE0gKzAyMDAsIFRpbGwgSG9mbWFubiB3cm90ZToK PiA+Pj4gSGkgYWxsLAo+ID4+Pgo+ID4+PiBJJ20gY3VycmVudGx5IHRyeWluZyB0byBkZWJ1ZyBh IEdDQyBzZWdmYXVsdCB0aGF0IG9jY3VycyB3aGVuIGNvbXBpbGluZwo+ID4+PiBFbmdpbmVQbC9t YWNoaW5lLmMgb24gaTY4NiBtYWNoaW5lczoKPiA+Pj4KPiA+Pj4+IG1ha2VbMV06IEVudGVyaW5n IGRpcmVjdG9yeSAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3Jj L0VuZ2luZVBsJwo+ID4+Pj4gZ3BsYyAtYyAtQyAnLU8zIC1mb21pdC1mcmFtZS1wb2ludGVyJyBt YWNoaW5lLmMKPiA+Pj4+IG1hY2hpbmUuYzogSW4gZnVuY3Rpb24g4oCYUGxfTV9SYW5kb21pemXi gJk6Cj4gPj4+PiBtYWNoaW5lLmM6Mzg2OjE6IGludGVybmFsIGNvbXBpbGVyIGVycm9yOiBTZWdt ZW50YXRpb24gZmF1bHQKPiA+Pj4KPiA+Pj4gSXQgbG9va3MgbGlrZSB0aGlzIGlzIHJlbGF0ZWQg dG8gdXNpbmcgdGhlIGVieCByZWdpc3RlcjsgaWYgSSByZW1vdmUKPiA+Pj4gJy1mZml4ZWQtZWJ4 JyBmcm9tIHRoZSBjYWxsIHRvIGNjMSwgdGhlIHNlZ2ZhdWx0IGRpc2FwcGVhcnMuCj4gPj4+Cj4g Pj4+IExvb2tpbmcgYXQgdGhlIENoYW5nZWxvZywgaXQgbG9va3MgbGlrZSB0aGVyZSB3YXMgYSBm aXggZm9yIHNvbWUgaXNzdWUKPiA+Pj4gcmVsYXRlZCB0byB1c2luZyBlYnggaW4gMS4zLjEsIGJ1 dCB0aGUgZXJyb3Igc3RpbGwgb2NjdXJzIG9uIGk2ODYuCj4gPj4+Cj4gPj4+IFRvIHJlcHJvZHVj ZSwgeW91IG5lZWQgdG8gYnVpbGQgZ3Byb2xvZyBvbiBpNjg2IHdpdGggR0NDIDYuMS4gSSBjb3Vs ZAo+ID4+PiByZXByb2R1Y2UgdGhpcyBvbiBtdWx0aXBsZSBtYWNoaW5lcy4KPiA+Pj4KPiA+Pj4g U29tZSBhZGRpdGlvbmFsIGluZm86Cj4gPj4+IGdwcm9sb2cgdmVyc2lvbjogMS40LjQKPiA+Pj4g T1M6IEZlZG9yYSAyNCAoYWxzbyBvY2N1cnMgb24gRmVkb3JhIDI1IGFuZCBGZWRvcmEgUmF3aGlk ZSkKPiA+Pj4gJCBnY2MgLS12ZXJzaW9uCj4gPj4+IGdjYyAoR0NDKSA2LjEuMSAyMDE2MDYyMSAo UmVkIEhhdCA2LjEuMS0zKQo+ID4+PiAkIHVuYW1lIC1hCj4gPj4+IExpbnV4IG5jMTAgNC42LjUt MzAwLmZjMjQuaTY4NitQQUUgIzEgU01QIFRodSBKdWwgMjggMDE6MzQ6NDYgVVRDIDIwMTYKPiA+ Pj4gaTY4NiBpNjg2IGkzODYgR05VL0xpbnV4Cj4gPj4+Cj4gPj4+IEkgYnVpbGQgd2l0aCAiLi9j b25maWd1cmUgLS13aXRoLWMtZmxhZ3M9Jy12IC1zYXZlLXRlbXBzJyIsIEkndmUKPiA+Pj4gYXR0 YWNoZWQgdGhlIGZ1bGwgb3V0cHV0IGZyb20gbWFrZS4gSSd2ZSBhbHNvIGF0dGFjaGVkIG1hY2hp bmUuaS4KPiA+Pj4KPiA+Pj4gV2l0aCBvbGRlciBHQ0MgdmVyc2lvbnMgKDw2KSwgdGhlIGJ1ZyBk b2VzIG5vdCBvY2N1ciwgc28gdGhpcyBtaWdodCB3ZWxsCj4gPj4+IGJlIGEgYnVnIGluIEdDQzYu Cj4gPj4+Cj4gPj4+Cj4gPj4+IEtpbmQgcmVnYXJkcwo+ID4+PiBUaWxsCj4gPj4KPiA+Pj4gY2Qg RW5naW5lUGw7IG1ha2UgY29uZmlnCj4gPj4+IG1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAn L2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZVBsJwo+ ID4+PiBnY2MgLW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtdiAt c2F2ZS10ZW1wcyAgLW8gcGxfY29uZmlnIHBsX2NvbmZpZy5jCj4gPj4+IFVzaW5nIGJ1aWx0LWlu IHNwZWNzLgo+ID4+PiBDT0xMRUNUX0dDQz1nY2MKPiA+Pj4gQ09MTEVDVF9MVE9fV1JBUFBFUj0v dXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2x0by13cmFwcGVyCj4gPj4+ IFRhcmdldDogaTY4Ni1yZWRoYXQtbGludXgKPiA+Pj4gQ29uZmlndXJlZCB3aXRoOiAuLi9jb25m aWd1cmUgLS1lbmFibGUtYm9vdHN0cmFwIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyxvYmpjLG9i ai1jKyssZm9ydHJhbixhZGEsZ28sbHRvIC0tcHJlZml4PS91c3IgLS1tYW5kaXI9L3Vzci9zaGFy ZS9tYW4gLS1pbmZvZGlyPS91c3Ivc2hhcmUvaW5mbyAtLXdpdGgtYnVndXJsPWh0dHA6Ly9idWd6 aWxsYS5yZWRoYXQuY29tL2J1Z3ppbGxhIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRz PXBvc2l4IC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UgLS1lbmFibGUtbXVsdGlsaWIgLS13aXRo LXN5c3RlbS16bGliIC0tZW5hYmxlLV9fY3hhX2F0ZXhpdCAtLWRpc2FibGUtbGlidW53aW5kLWV4 Y2VwdGlvbnMgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3QgLS1lbmFibGUtbGlua2VyLWJ1aWxk LWlkIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUgLS1lbmFibGUtcGx1Z2luIC0tZW5hYmxl LWluaXRmaW5pLWFycmF5IC0tZGlzYWJsZS1saWJnY2ogLS13aXRoLWlzbCAtLWVuYWJsZS1saWJt cHggLS1lbmFibGUtZ251LWluZGlyZWN0LWZ1bmN0aW9uIC0td2l0aC10dW5lPWdlbmVyaWMgLS13 aXRoLWFyY2g9aTY4NiAtLWJ1aWxkPWk2ODYtcmVkaGF0LWxpbnV4Cj4gPj4+IFRocmVhZCBtb2Rl bDogcG9zaXgKPiA+Pj4gZ2NjIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEt MykgKEdDQykgCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAn LW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAncGxf Y29uZmlnJwo+ID4+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9j YzEgLUUgLXF1aWV0IC12IHBsX2NvbmZpZy5jIC1tYXJjaD1wZW50aXVtcHJvIC1tMzIgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZwY2gtcHJlcHJvY2VzcyAtbyBwbF9jb25maWcuaQo+ID4+PiBpZ25v cmluZyBub25leGlzdGVudCBkaXJlY3RvcnkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51 eC82LjEuMS9pbmNsdWRlLWZpeGVkIgo+ID4+PiBpZ25vcmluZyBub25leGlzdGVudCBkaXJlY3Rv cnkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi8uLi9pNjg2 LXJlZGhhdC1saW51eC9pbmNsdWRlIgo+ID4+PiAjaW5jbHVkZSAiLi4uIiBzZWFyY2ggc3RhcnRz IGhlcmU6Cj4gPj4+ICNpbmNsdWRlIDwuLi4+IHNlYXJjaCBzdGFydHMgaGVyZToKPiA+Pj4gIC91 c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlCj4gPj4+ICAvdXNyL2xv Y2FsL2luY2x1ZGUKPiA+Pj4gIC91c3IvaW5jbHVkZQo+ID4+PiBFbmQgb2Ygc2VhcmNoIGxpc3Qu Cj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1m bm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAncGxfY29uZmlnJwo+ ID4+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jYzEgLWZwcmVw cm9jZXNzZWQgcGxfY29uZmlnLmkgLXF1aWV0IC1kdW1wYmFzZSBwbF9jb25maWcuYyAtbWFyY2g9 cGVudGl1bXBybyAtbTMyIC1hdXhiYXNlIHBsX2NvbmZpZyAtdmVyc2lvbiAtZm5vLXN0cmljdC1h bGlhc2luZyAtbyBwbF9jb25maWcucwo+ID4+PiBHTlUgQzExIChHQ0MpIHZlcnNpb24gNi4xLjEg MjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKGk2ODYtcmVkaGF0LWxpbnV4KQo+ID4+PiAJY29t cGlsZWQgYnkgR05VIEMgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSwg R01QIHZlcnNpb24gNi4xLjAsIE1QRlIgdmVyc2lvbiAzLjEuNCwgTVBDIHZlcnNpb24gMS4wLjIs IGlzbCB2ZXJzaW9uIDAuMTQgb3IgMC4xMwo+ID4+PiB3YXJuaW5nOiBHTVAgaGVhZGVyIHZlcnNp b24gNi4xLjAgZGlmZmVycyBmcm9tIGxpYnJhcnkgdmVyc2lvbiA2LjEuMS4KPiA+Pj4gR0dDIGhl dXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1pbi1leHBhbmQ9MTAwIC0tcGFyYW0gZ2djLW1pbi1oZWFw c2l6ZT0xMzEwNzIKPiA+Pj4gR05VIEMxMSAoR0NDKSB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChS ZWQgSGF0IDYuMS4xLTMpIChpNjg2LXJlZGhhdC1saW51eCkKPiA+Pj4gCWNvbXBpbGVkIGJ5IEdO VSBDIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMyksIEdNUCB2ZXJzaW9u IDYuMS4wLCBNUEZSIHZlcnNpb24gMy4xLjQsIE1QQyB2ZXJzaW9uIDEuMC4yLCBpc2wgdmVyc2lv biAwLjE0IG9yIDAuMTMKPiA+Pj4gd2FybmluZzogR01QIGhlYWRlciB2ZXJzaW9uIDYuMS4wIGRp ZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24gNi4xLjEuCj4gPj4+IEdHQyBoZXVyaXN0aWNzOiAt LXBhcmFtIGdnYy1taW4tZXhwYW5kPTEwMCAtLXBhcmFtIGdnYy1taW4taGVhcHNpemU9MTMxMDcy Cj4gPj4+IENvbXBpbGVyIGV4ZWN1dGFibGUgY2hlY2tzdW06IGFiY2ViMTM4YWY0M2E3OGMzNmMx YWFhMjI4ZjVmOTJhCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJv JyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAn cGxfY29uZmlnJwo+ID4+PiAgYXMgLXYgLS0zMiAtbyBwbF9jb25maWcubyBwbF9jb25maWcucwo+ ID4+PiBHTlUgYXNzZW1ibGVyIHZlcnNpb24gMi4yNi4xIChpNjg2LXJlZGhhdC1saW51eCkgdXNp bmcgQkZEIHZlcnNpb24gdmVyc2lvbiAyLjI2LjEtMS5mYzI0Cj4gPj4+IENPTVBJTEVSX1BBVEg9 L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVjL2dj Yy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1s aW51eC86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLzovdXNyL2xpYi9nY2Mv aTY4Ni1yZWRoYXQtbGludXgvCj4gPj4+IExJQlJBUllfUEFUSD0vdXNyL2xpYi9nY2MvaTY4Ni1y ZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8u Li8uLi8uLi86L2xpYi86L3Vzci9saWIvCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJj aD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10 ZW1wcycgJy1vJyAncGxfY29uZmlnJwo+ID4+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhh dC1saW51eC82LjEuMS9jb2xsZWN0MiAtcGx1Z2luIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRo YXQtbGludXgvNi4xLjEvbGlibHRvX3BsdWdpbi5zbyAtcGx1Z2luLW9wdD0vdXNyL2xpYmV4ZWMv Z2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2x0by13cmFwcGVyIC1wbHVnaW4tb3B0PS1mcmVz b2x1dGlvbj1wbF9jb25maWcucmVzIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBs dWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjY19zIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9 LWxjIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBsdWdpbi1vcHQ9LXBhc3MtdGhy b3VnaD0tbGdjY19zIC0tYnVpbGQtaWQgLS1uby1hZGQtbmVlZGVkIC0tZWgtZnJhbWUtaGRyIC0t aGFzaC1zdHlsZT1nbnUgLW0gZWxmX2kzODYgLWR5bmFtaWMtbGlua2VyIC9saWIvbGQtbGludXgu c28uMiAtbyBwbF9jb25maWcgL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4u Ly4uLy4uL2NydDEubyAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4v Li4vY3J0aS5vIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jcnRiZWdpbi5v IC1ML3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xIC1ML3Vzci9saWIvZ2NjL2k2 ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uIHBsX2NvbmZpZy5vIC1sZ2NjIC0tYXMtbmVl ZGVkIC1sZ2NjX3MgLS1uby1hcy1uZWVkZWQgLWxjIC1sZ2NjIC0tYXMtbmVlZGVkIC1sZ2NjX3Mg LS1uby1hcy1uZWVkZWQgL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NydGVu ZC5vIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9jcnRuLm8K PiA+Pj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZu by1zdHJpY3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdwbF9jb25maWcnCj4g Pj4+IC4vcGxfY29uZmlnCj4gPj4+Cj4gPj4+IAktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gPj4+IAktLS0gR05VIFBST0xPRyBJTlNUQUxMQVRJT04gLS0tCj4gPj4+IAktLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Cj4gPj4+IEdOVSBQcm9sb2cgdmVyc2lvbjog MS40LjQgKEF1ZyAxOCAyMDE2KQo+ID4+PiBPcGVyYXRpbmcgc3lzdGVtICA6IGxpbnV4LWdudQo+ ID4+PiBQcm9jZXNzb3IgICAgICAgICA6IGk2ODYKPiA+Pj4gU2l6ZSBvZiBhIFdBTSB3b3JkOiAz MiBiaXRzCj4gPj4+IEMgY29tcGlsZXIgICAgICAgIDogZ2NjCj4gPj4+IEMgZmxhZ3MgICAgICAg ICAgIDogLXYgLXNhdmUtdGVtcHMKPiA+Pj4gQyBmbGFncyBtYWNoaW5lICAgOiAtbWFyY2g9cGVu dGl1bXBybyAtbTMyIC1mbm8tc3RyaWN0LWFsaWFzaW5nCj4gPj4+IEFzc2VtYmxlciAgICAgICAg IDogYXMKPiA+Pj4gQXNzZW1ibGVyIGZsYWdzICAgOiAtLTMyCj4gPj4+IExvYWRlciBmbGFncyAg ICAgIDogCj4gPj4+IExvYWRlciBsaWJyYXJpZXMgIDogLWxtCj4gPj4+IFVzZSBsaW5lIGVkaXRv ciAgIDogWWVzCj4gPj4+IFVzZSBwaXBlZCBjb25zdWx0IDogWWVzCj4gPj4+IFVzZSBzb2NrZXRz ICAgICAgIDogWWVzCj4gPj4+IFVzZSBGRCBzb2x2ZXIgICAgIDogWWVzCj4gPj4+IFVzZSBmYXN0 IGNhbGwgICAgIDogWWVzCj4gPj4+IFVzZSBtYWNoaW5lIHJlZ3MuIDogWWVzCj4gPj4+IFVzZWQg cmVnaXN0ZXIocykgIDogZWJ4IChUUikgIAo+ID4+Pgo+ID4+PiAJLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gPj4+Cj4gPj4+IChjZCAuLi9Ub3BDb21wOyBtYWtlIGdwbGMpCj4gPj4+ IG1ha2VbMl06IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VT L2dwcm9sb2ctMS40LjQvc3JjL1RvcENvbXAnCj4gPj4+IGdjYyAtbWFyY2g9cGVudGl1bXBybyAt bTMyIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC12IC1zYXZlLXRlbXBzIC1vIGdwbGMgdG9wX2NvbXAu YyAtbG0KPiA+Pj4gVXNpbmcgYnVpbHQtaW4gc3BlY3MuCj4gPj4+IENPTExFQ1RfR0NDPWdjYwo+ ID4+PiBDT0xMRUNUX0xUT19XUkFQUEVSPS91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGlu dXgvNi4xLjEvbHRvLXdyYXBwZXIKPiA+Pj4gVGFyZ2V0OiBpNjg2LXJlZGhhdC1saW51eAo+ID4+ PiBDb25maWd1cmVkIHdpdGg6IC4uL2NvbmZpZ3VyZSAtLWVuYWJsZS1ib290c3RyYXAgLS1lbmFi bGUtbGFuZ3VhZ2VzPWMsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGFkYSxnbyxsdG8gLS1wcmVm aXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9kaXI9L3Vzci9zaGFyZS9pbmZv IC0td2l0aC1idWd1cmw9aHR0cDovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEgLS1lbmFi bGUtc2hhcmVkIC0tZW5hYmxlLXRocmVhZHM9cG9zaXggLS1lbmFibGUtY2hlY2tpbmc9cmVsZWFz ZSAtLWVuYWJsZS1tdWx0aWxpYiAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtX19jeGFfYXRl eGl0IC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1nbnUtdW5pcXVlLW9i amVjdCAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdu dSAtLWVuYWJsZS1wbHVnaW4gLS1lbmFibGUtaW5pdGZpbmktYXJyYXkgLS1kaXNhYmxlLWxpYmdj aiAtLXdpdGgtaXNsIC0tZW5hYmxlLWxpYm1weCAtLWVuYWJsZS1nbnUtaW5kaXJlY3QtZnVuY3Rp b24gLS13aXRoLXR1bmU9Z2VuZXJpYyAtLXdpdGgtYXJjaD1pNjg2IC0tYnVpbGQ9aTY4Ni1yZWRo YXQtbGludXgKPiA+Pj4gVGhyZWFkIG1vZGVsOiBwb3NpeAo+ID4+PiBnY2MgdmVyc2lvbiA2LjEu MSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoR0NDKSAKPiA+Pj4gQ09MTEVDVF9HQ0NfT1BU SU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcnICct dicgJy1zYXZlLXRlbXBzJyAnLW8nICdncGxjJwo+ID4+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2 LXJlZGhhdC1saW51eC82LjEuMS9jYzEgLUUgLXF1aWV0IC12IHRvcF9jb21wLmMgLW1hcmNoPXBl bnRpdW1wcm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnBjaC1wcmVwcm9jZXNzIC1vIHRv cF9jb21wLmkKPiA+Pj4gaWdub3Jpbmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIvdXNyL2xpYi9n Y2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS1maXhlZCIKPiA+Pj4gaWdub3Jpbmcg bm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4x LjEvLi4vLi4vLi4vLi4vaTY4Ni1yZWRoYXQtbGludXgvaW5jbHVkZSIKPiA+Pj4gI2luY2x1ZGUg Ii4uLiIgc2VhcmNoIHN0YXJ0cyBoZXJlOgo+ID4+PiAjaW5jbHVkZSA8Li4uPiBzZWFyY2ggc3Rh cnRzIGhlcmU6Cj4gPj4+ICAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5j bHVkZQo+ID4+PiAgL3Vzci9sb2NhbC9pbmNsdWRlCj4gPj4+ICAvdXNyL2luY2x1ZGUKPiA+Pj4g RW5kIG9mIHNlYXJjaCBsaXN0Lgo+ID4+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVu dGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMn ICctbycgJ2dwbGMnCj4gPj4+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYu MS4xL2NjMSAtZnByZXByb2Nlc3NlZCB0b3BfY29tcC5pIC1xdWlldCAtZHVtcGJhc2UgdG9wX2Nv bXAuYyAtbWFyY2g9cGVudGl1bXBybyAtbTMyIC1hdXhiYXNlIHRvcF9jb21wIC12ZXJzaW9uIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1vIHRvcF9jb21wLnMKPiA+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+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9 cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVt cHMnICctbycgJ2dwbGMnCj4gPj4+ICBhcyAtdiAtLTMyIC1vIHRvcF9jb21wLm8gdG9wX2NvbXAu cwo+ID4+PiBHTlUgYXNzZW1ibGVyIHZlcnNpb24gMi4yNi4xIChpNjg2LXJlZGhhdC1saW51eCkg dXNpbmcgQkZEIHZlcnNpb24gdmVyc2lvbiAyLjI2LjEtMS5mYzI0Cj4gPj4+IENPTVBJTEVSX1BB VEg9L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVj L2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhh dC1saW51eC86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLzovdXNyL2xpYi9n Y2MvaTY4Ni1yZWRoYXQtbGludXgvCj4gPj4+IExJQlJBUllfUEFUSD0vdXNyL2xpYi9nY2MvaTY4 Ni1yZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEu MS8uLi8uLi8uLi86L2xpYi86L3Vzci9saWIvCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1t YXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2 ZS10ZW1wcycgJy1vJyAnZ3BsYycKPiA+Pj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQt bGludXgvNi4xLjEvY29sbGVjdDIgLXBsdWdpbiAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0 LWxpbnV4LzYuMS4xL2xpYmx0b19wbHVnaW4uc28gLXBsdWdpbi1vcHQ9L3Vzci9saWJleGVjL2dj Yy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9sdG8td3JhcHBlciAtcGx1Z2luLW9wdD0tZnJlc29s dXRpb249dG9wX2NvbXAucmVzIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBsdWdp bi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjY19zIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxj IC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3Vn aD0tbGdjY19zIC0tYnVpbGQtaWQgLS1uby1hZGQtbmVlZGVkIC0tZWgtZnJhbWUtaGRyIC0taGFz aC1zdHlsZT1nbnUgLW0gZWxmX2kzODYgLWR5bmFtaWMtbGlua2VyIC9saWIvbGQtbGludXguc28u MiAtbyBncGxjIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9j cnQxLm8gL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2NydGku byAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY3J0YmVnaW4ubyAtTC91c3Iv bGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMSAtTC91c3IvbGliL2djYy9pNjg2LXJlZGhh dC1saW51eC82LjEuMS8uLi8uLi8uLiB0b3BfY29tcC5vIC1sbSAtbGdjYyAtLWFzLW5lZWRlZCAt bGdjY19zIC0tbm8tYXMtbmVlZGVkIC1sYyAtbGdjYyAtLWFzLW5lZWRlZCAtbGdjY19zIC0tbm8t YXMtbmVlZGVkIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jcnRlbmQubyAv dXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vY3J0bi5vCj4gPj4+ IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3Ry aWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAnZ3BsYycKPiA+Pj4gbWFrZVsy XTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9n LTEuNC40L3NyYy9Ub3BDb21wJwo+ID4+PiBtYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hv bWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZVBsJwo+ID4+ PiAuIC4vU0VUVkFSUztmb3IgaSBpbiBFbmdpbmVQbCBUb3BDb21wIFdhbTJNYSBNYTJBc20gTGlu ZWRpdCBCaXBzUGwgUGwyV2FtIEZkMkMgRW5naW5lRkQgQmlwc0ZEO2RvIChjZCAkaTsgbWFrZSkg fHwgZXhpdCAxOyBkb25lO1wKPiA+Pj4gKGNkIFRvcENvbXA7IG1ha2UgdG9wLWxldmVsKSB8fCBl eGl0IDE7XAo+ID4+PiAoY2QgUGwyV2FtOyBtYWtlIHN0YWdlMikKPiA+Pj4gbWFrZVsxXTogRW50 ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQu NC9zcmMvRW5naW5lUGwnCj4gPj4+IGdjYyAtbWFyY2g9cGVudGl1bXBybyAtbTMyIC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC12IC1zYXZlLXRlbXBzICAtbyBjcHBfaGVhZGVycyBjcHBfaGVhZGVycy5j Cj4gPj4+IFVzaW5nIGJ1aWx0LWluIHNwZWNzLgo+ID4+PiBDT0xMRUNUX0dDQz1nY2MKPiA+Pj4g Q09MTEVDVF9MVE9fV1JBUFBFUj0vdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYu MS4xL2x0by13cmFwcGVyCj4gPj4+IFRhcmdldDogaTY4Ni1yZWRoYXQtbGludXgKPiA+Pj4gQ29u ZmlndXJlZCB3aXRoOiAuLi9jb25maWd1cmUgLS1lbmFibGUtYm9vdHN0cmFwIC0tZW5hYmxlLWxh bmd1YWdlcz1jLGMrKyxvYmpjLG9iai1jKyssZm9ydHJhbixhZGEsZ28sbHRvIC0tcHJlZml4PS91 c3IgLS1tYW5kaXI9L3Vzci9zaGFyZS9tYW4gLS1pbmZvZGlyPS91c3Ivc2hhcmUvaW5mbyAtLXdp dGgtYnVndXJsPWh0dHA6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1Z3ppbGxhIC0tZW5hYmxlLXNo YXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UgLS1l bmFibGUtbXVsdGlsaWIgLS13aXRoLXN5c3RlbS16bGliIC0tZW5hYmxlLV9fY3hhX2F0ZXhpdCAt LWRpc2FibGUtbGlidW53aW5kLWV4Y2VwdGlvbnMgLS1lbmFibGUtZ251LXVuaXF1ZS1vYmplY3Qg LS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1nbnUgLS1l bmFibGUtcGx1Z2luIC0tZW5hYmxlLWluaXRmaW5pLWFycmF5IC0tZGlzYWJsZS1saWJnY2ogLS13 aXRoLWlzbCAtLWVuYWJsZS1saWJtcHggLS1lbmFibGUtZ251LWluZGlyZWN0LWZ1bmN0aW9uIC0t d2l0aC10dW5lPWdlbmVyaWMgLS13aXRoLWFyY2g9aTY4NiAtLWJ1aWxkPWk2ODYtcmVkaGF0LWxp bnV4Cj4gPj4+IFRocmVhZCBtb2RlbDogcG9zaXgKPiA+Pj4gZ2NjIHZlcnNpb24gNi4xLjEgMjAx NjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKEdDQykgCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9 Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICct c2F2ZS10ZW1wcycgJy1vJyAnY3BwX2hlYWRlcnMnCj4gPj4+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2 ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NjMSAtRSAtcXVpZXQgLXYgY3BwX2hlYWRlcnMuYyAtbWFy Y2g9cGVudGl1bXBybyAtbTMyIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mcGNoLXByZXByb2Nlc3Mg LW8gY3BwX2hlYWRlcnMuaQo+ID4+PiBpZ25vcmluZyBub25leGlzdGVudCBkaXJlY3RvcnkgIi91 c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlLWZpeGVkIgo+ID4+PiBp Z25vcmluZyBub25leGlzdGVudCBkaXJlY3RvcnkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1s aW51eC82LjEuMS8uLi8uLi8uLi8uLi9pNjg2LXJlZGhhdC1saW51eC9pbmNsdWRlIgo+ID4+PiAj aW5jbHVkZSAiLi4uIiBzZWFyY2ggc3RhcnRzIGhlcmU6Cj4gPj4+ICNpbmNsdWRlIDwuLi4+IHNl YXJjaCBzdGFydHMgaGVyZToKPiA+Pj4gIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82 LjEuMS9pbmNsdWRlCj4gPj4+ICAvdXNyL2xvY2FsL2luY2x1ZGUKPiA+Pj4gIC91c3IvaW5jbHVk ZQo+ID4+PiBFbmQgb2Ygc2VhcmNoIGxpc3QuCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1t YXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2 ZS10ZW1wcycgJy1vJyAnY3BwX2hlYWRlcnMnCj4gPj4+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYt cmVkaGF0LWxpbnV4LzYuMS4xL2NjMSAtZnByZXByb2Nlc3NlZCBjcHBfaGVhZGVycy5pIC1xdWll dCAtZHVtcGJhc2UgY3BwX2hlYWRlcnMuYyAtbWFyY2g9cGVudGl1bXBybyAtbTMyIC1hdXhiYXNl IGNwcF9oZWFkZXJzIC12ZXJzaW9uIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1vIGNwcF9oZWFkZXJz LnMKPiA+Pj4gR05VIEMxMSAoR0NDKSB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYu MS4xLTMpIChpNjg2LXJlZGhhdC1saW51eCkKPiA+Pj4gCWNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNp b24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMyksIEdNUCB2ZXJzaW9uIDYuMS4wLCBN UEZSIHZlcnNpb24gMy4xLjQsIE1QQyB2ZXJzaW9uIDEuMC4yLCBpc2wgdmVyc2lvbiAwLjE0IG9y IDAuMTMKPiA+Pj4gd2FybmluZzogR01QIGhlYWRlciB2ZXJzaW9uIDYuMS4wIGRpZmZlcnMgZnJv bSBsaWJyYXJ5IHZlcnNpb24gNi4xLjEuCj4gPj4+IEdHQyBoZXVyaXN0aWNzOiAtLXBhcmFtIGdn Yy1taW4tZXhwYW5kPTEwMCAtLXBhcmFtIGdnYy1taW4taGVhcHNpemU9MTMxMDcyCj4gPj4+IEdO VSBDMTEgKEdDQykgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoaTY4 Ni1yZWRoYXQtbGludXgpCj4gPj4+IAljb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4xIDIw MTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpLCBHTVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJzaW9u IDMuMS40LCBNUEMgdmVyc2lvbiAxLjAuMiwgaXNsIHZlcnNpb24gMC4xNCBvciAwLjEzCj4gPj4+ IHdhcm5pbmc6IEdNUCBoZWFkZXIgdmVyc2lvbiA2LjEuMCBkaWZmZXJzIGZyb20gbGlicmFyeSB2 ZXJzaW9uIDYuMS4xLgo+ID4+PiBHR0MgaGV1cmlzdGljczogLS1wYXJhbSBnZ2MtbWluLWV4cGFu ZD0xMDAgLS1wYXJhbSBnZ2MtbWluLWhlYXBzaXplPTEzMTA3Mgo+ID4+PiBDb21waWxlciBleGVj dXRhYmxlIGNoZWNrc3VtOiBhYmNlYjEzOGFmNDNhNzhjMzZjMWFhYTIyOGY1ZjkyYQo+ID4+PiBD T0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmlj dC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ2NwcF9oZWFkZXJzJwo+ID4+PiAg YXMgLXYgLS0zMiAtbyBjcHBfaGVhZGVycy5vIGNwcF9oZWFkZXJzLnMKPiA+Pj4gR05VIGFzc2Vt YmxlciB2ZXJzaW9uIDIuMjYuMSAoaTY4Ni1yZWRoYXQtbGludXgpIHVzaW5nIEJGRCB2ZXJzaW9u IHZlcnNpb24gMi4yNi4xLTEuZmMyNAo+ID4+PiBDT01QSUxFUl9QQVRIPS91c3IvbGliZXhlYy9n Y2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQt bGludXgvNi4xLjEvOi91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvOi91c3IvbGli L2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxp bnV4Lwo+ID4+PiBMSUJSQVJZX1BBVEg9L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYu MS4xLzovdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vOi9saWIv Oi91c3IvbGliLwo+ID4+PiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycg Jy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ2Nw cF9oZWFkZXJzJwo+ID4+PiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEu MS9jb2xsZWN0MiAtcGx1Z2luIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4x LjEvbGlibHRvX3BsdWdpbi5zbyAtcGx1Z2luLW9wdD0vdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVk aGF0LWxpbnV4LzYuMS4xL2x0by13cmFwcGVyIC1wbHVnaW4tb3B0PS1mcmVzb2x1dGlvbj1jcHBf aGVhZGVycy5yZXMgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjYyAtcGx1Z2luLW9wdD0t cGFzcy10aHJvdWdoPS1sZ2NjX3MgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGMgLXBsdWdp bi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjYyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1sZ2Nj X3MgLS1idWlsZC1pZCAtLW5vLWFkZC1uZWVkZWQgLS1laC1mcmFtZS1oZHIgLS1oYXNoLXN0eWxl PWdudSAtbSBlbGZfaTM4NiAtZHluYW1pYy1saW5rZXIgL2xpYi9sZC1saW51eC5zby4yIC1vIGNw cF9oZWFkZXJzIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9j cnQxLm8gL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2NydGku byAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY3J0YmVnaW4ubyAtTC91c3Iv bGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMSAtTC91c3IvbGliL2djYy9pNjg2LXJlZGhh dC1saW51eC82LjEuMS8uLi8uLi8uLiBjcHBfaGVhZGVycy5vIC1sZ2NjIC0tYXMtbmVlZGVkIC1s Z2NjX3MgLS1uby1hcy1uZWVkZWQgLWxjIC1sZ2NjIC0tYXMtbmVlZGVkIC1sZ2NjX3MgLS1uby1h cy1uZWVkZWQgL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NydGVuZC5vIC91 c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9jcnRuLm8KPiA+Pj4g Q09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJp Y3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdjcHBfaGVhZGVycycKPiA+Pj4g Z3BsYyAtYyAtQyAnLXYgLXNhdmUtdGVtcHMnIG1hY2hpbmUuYwo+ID4+PiBVc2luZyBidWlsdC1p biBzcGVjcy4KPiA+Pj4gQ09MTEVDVF9HQ0M9Z2NjCj4gPj4+IFRhcmdldDogaTY4Ni1yZWRoYXQt bGludXgKPiA+Pj4gQ29uZmlndXJlZCB3aXRoOiAuLi9jb25maWd1cmUgLS1lbmFibGUtYm9vdHN0 cmFwIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyxvYmpjLG9iai1jKyssZm9ydHJhbixhZGEsZ28s bHRvIC0tcHJlZml4PS91c3IgLS1tYW5kaXI9L3Vzci9zaGFyZS9tYW4gLS1pbmZvZGlyPS91c3Iv c2hhcmUvaW5mbyAtLXdpdGgtYnVndXJsPWh0dHA6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1Z3pp bGxhIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWNoZWNr aW5nPXJlbGVhc2UgLS1lbmFibGUtbXVsdGlsaWIgLS13aXRoLXN5c3RlbS16bGliIC0tZW5hYmxl LV9fY3hhX2F0ZXhpdCAtLWRpc2FibGUtbGlidW53aW5kLWV4Y2VwdGlvbnMgLS1lbmFibGUtZ251 LXVuaXF1ZS1vYmplY3QgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIC0td2l0aC1saW5rZXItaGFz aC1zdHlsZT1nbnUgLS1lbmFibGUtcGx1Z2luIC0tZW5hYmxlLWluaXRmaW5pLWFycmF5IC0tZGlz YWJsZS1saWJnY2ogLS13aXRoLWlzbCAtLWVuYWJsZS1saWJtcHggLS1lbmFibGUtZ251LWluZGly ZWN0LWZ1bmN0aW9uIC0td2l0aC10dW5lPWdlbmVyaWMgLS13aXRoLWFyY2g9aTY4NiAtLWJ1aWxk PWk2ODYtcmVkaGF0LWxpbnV4Cj4gPj4+IFRocmVhZCBtb2RlbDogcG9zaXgKPiA+Pj4gZ2NjIHZl cnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKEdDQykgCj4gPj4+IENPTExF Q1RfR0NDX09QVElPTlM9Jy12JyAnLXNhdmUtdGVtcHMnICctbWFyY2g9cGVudGl1bXBybycgJy1t MzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy1mZml4ZWQtZWJ4JyAnLWMnICctSScgJy9ob21l L3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbCcgJy1JJyAn L2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNQbCcgJy1J JyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZUZE JyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvQmlw c0ZEJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMv TGluZWRpdCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQv c3JjL1czMkdVSUNvbnMnICctbycgJ21hY2hpbmUubycKPiA+Pj4gIC91c3IvbGliZXhlYy9nY2Mv aTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY2MxIC1FIC1xdWlldCAtdiAtSSAvaG9tZS90aWxsL3Jw bWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvRW5naW5lUGwgLUkgL2hvbWUvdGlsbC9y cG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNQbCAtSSAvaG9tZS90aWxsL3Jw bWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvRW5naW5lRkQgLUkgL2hvbWUvdGlsbC9y cG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNGRCAtSSAvaG9tZS90aWxsL3Jw bWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvTGluZWRpdCAtSSAvaG9tZS90aWxsL3Jw bWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvVzMyR1VJQ29ucyBtYWNoaW5lLmMgLW1h cmNoPXBlbnRpdW1wcm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZmZpeGVkLWVieCAtZnBj aC1wcmVwcm9jZXNzIC1vIG1hY2hpbmUuaQo+ID4+PiBpZ25vcmluZyBub25leGlzdGVudCBkaXJl Y3RvcnkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlLWZpeGVk Igo+ID4+PiBpZ25vcmluZyBub25leGlzdGVudCBkaXJlY3RvcnkgIi91c3IvbGliL2djYy9pNjg2 LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi8uLi9pNjg2LXJlZGhhdC1saW51eC9pbmNsdWRl Igo+ID4+PiAjaW5jbHVkZSAiLi4uIiBzZWFyY2ggc3RhcnRzIGhlcmU6Cj4gPj4+ICNpbmNsdWRl IDwuLi4+IHNlYXJjaCBzdGFydHMgaGVyZToKPiA+Pj4gIC9ob21lL3RpbGwvcnBtYnVpbGQvU09V UkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbAo+ID4+PiAgL2hvbWUvdGlsbC9ycG1idWls ZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNQbAo+ID4+PiAgL2hvbWUvdGlsbC9ycG1i dWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZUZECj4gPj4+ICAvaG9tZS90aWxs L3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvQmlwc0ZECj4gPj4+ICAvaG9tZS90 aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvTGluZWRpdAo+ID4+PiAgL2hv bWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL1czMkdVSUNvbnMKPiA+ Pj4gIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlCj4gPj4+ICAv dXNyL2xvY2FsL2luY2x1ZGUKPiA+Pj4gIC91c3IvaW5jbHVkZQo+ID4+PiBFbmQgb2Ygc2VhcmNo IGxpc3QuCj4gPj4+IENPTExFQ1RfR0NDX09QVElPTlM9Jy12JyAnLXNhdmUtdGVtcHMnICctbWFy Y2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy1mZml4ZWQtZWJ4 JyAnLWMnICctSScgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3Ny Yy9FbmdpbmVQbCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40 LjQvc3JjL0JpcHNQbCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ct MS40LjQvc3JjL0VuZ2luZUZEJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3By b2xvZy0xLjQuNC9zcmMvQmlwc0ZEJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMv Z3Byb2xvZy0xLjQuNC9zcmMvTGluZWRpdCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VS Q0VTL2dwcm9sb2ctMS40LjQvc3JjL1czMkdVSUNvbnMnICctbycgJ21hY2hpbmUubycKPiA+Pj4g IC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY2MxIC1mcHJlcHJvY2Vz c2VkIG1hY2hpbmUuaSAtcXVpZXQgLWR1bXBiYXNlIG1hY2hpbmUuYyAtbWFyY2g9cGVudGl1bXBy byAtbTMyIC1hdXhiYXNlLXN0cmlwIG1hY2hpbmUubyAtdmVyc2lvbiAtZm5vLXN0cmljdC1hbGlh c2luZyAtZmZpeGVkLWVieCAtbyBtYWNoaW5lLnMKPiA+Pj4gR05VIEMxMSAoR0NDKSB2ZXJzaW9u IDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpIChpNjg2LXJlZGhhdC1saW51eCkKPiA+ Pj4gCWNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4x LjEtMyksIEdNUCB2ZXJzaW9uIDYuMS4wLCBNUEZSIHZlcnNpb24gMy4xLjQsIE1QQyB2ZXJzaW9u IDEuMC4yLCBpc2wgdmVyc2lvbiAwLjE0IG9yIDAuMTMKPiA+Pj4gd2FybmluZzogR01QIGhlYWRl ciB2ZXJzaW9uIDYuMS4wIGRpZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24gNi4xLjEuCj4gPj4+ IEdHQyBoZXVyaXN0aWNzOiAtLXBhcmFtIGdnYy1taW4tZXhwYW5kPTEwMCAtLXBhcmFtIGdnYy1t aW4taGVhcHNpemU9MTMxMDcyCj4gPj4+IEdOVSBDMTEgKEdDQykgdmVyc2lvbiA2LjEuMSAyMDE2 MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoaTY4Ni1yZWRoYXQtbGludXgpCj4gPj4+IAljb21waWxl ZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpLCBHTVAg dmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lvbiAxLjAuMiwgaXNs IHZlcnNpb24gMC4xNCBvciAwLjEzCj4gPj4+IHdhcm5pbmc6IEdNUCBoZWFkZXIgdmVyc2lvbiA2 LjEuMCBkaWZmZXJzIGZyb20gbGlicmFyeSB2ZXJzaW9uIDYuMS4xLgo+ID4+PiBHR0MgaGV1cmlz dGljczogLS1wYXJhbSBnZ2MtbWluLWV4cGFuZD0xMDAgLS1wYXJhbSBnZ2MtbWluLWhlYXBzaXpl PTEzMTA3Mgo+ID4+PiBDb21waWxlciBleGVjdXRhYmxlIGNoZWNrc3VtOiBhYmNlYjEzOGFmNDNh NzhjMzZjMWFhYTIyOGY1ZjkyYQo+ID4+PiBtYWNoaW5lLmM6IEluIGZ1bmN0aW9uIOKAmFBsX01f UmFuZG9taXpl4oCZOgo+ID4+PiBtYWNoaW5lLmM6Mzg2OjE6IGludGVybmFsIGNvbXBpbGVyIGVy cm9yOiBTZWdtZW50YXRpb24gZmF1bHQKPiA+Pj4gIH0KPiA+Pj4gIF4KPiA+Pj4gUGxlYXNlIHN1 Ym1pdCBhIGZ1bGwgYnVnIHJlcG9ydCwKPiA+Pj4gd2l0aCBwcmVwcm9jZXNzZWQgc291cmNlIGlm IGFwcHJvcHJpYXRlLgo+ID4+PiBTZWUgPGh0dHA6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1Z3pp bGxhPiBmb3IgaW5zdHJ1Y3Rpb25zLgo+ID4+PiBQcmVwcm9jZXNzZWQgc291cmNlIHN0b3JlZCBp bnRvIC90bXAvY2NjWENBV00ub3V0IGZpbGUsIHBsZWFzZSBhdHRhY2ggdGhpcyB0byB5b3VyIGJ1 Z3JlcG9ydC4KPiA+Pj4gY29tcGlsYXRpb24gZmFpbGVkCj4gPj4+IE1ha2VmaWxlOjMwOiByZWNp cGUgZm9yIHRhcmdldCAnbWFjaGluZS5vJyBmYWlsZWQKPiA+Pj4gbWFrZVsxXTogKioqIFttYWNo aW5lLm9dIEVycm9yIDEKPiA+Pj4gbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3Rp bGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbCcKPiA+Pj4gTWFr ZWZpbGU6NDU6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAo+ID4+PiBtYWtlOiAqKiog W2FsbF0gRXJyb3IgMQo+ID4+Cj4gPj4+ICMgMSAibWFjaGluZS5jIgo+ID4+PiAjIDEgIjxidWls dC1pbj4iCj4gPj4+ICMgMSAiPGNvbW1hbmQtbGluZT4iCj4gPj4+ICMgMzEgIjxjb21tYW5kLWxp bmU+Igo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9zdGRjLXByZWRlZi5oIiAxIDMgNAo+ID4+PiAj IDMyICI8Y29tbWFuZC1saW5lPiIgMgo+ID4+PiAjIDEgIm1hY2hpbmUuYyIKPiA+Pj4gIyAzOSAi bWFjaGluZS5jIgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAxIDMgNAo+ID4+PiAj IDI3ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2Zl YXR1cmVzLmgiIDEgMyA0Cj4gPj4+ICMgMzY4ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMyA0 Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy9jZGVmcy5oIiAxIDMgNAo+ID4+PiAjIDQxMCAi L3Vzci9pbmNsdWRlL3N5cy9jZGVmcy5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0 cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ID4+PiAjIDQxMSAiL3Vzci9pbmNsdWRlL3N5cy9jZGVmcy5o IiAyIDMgNAo+ID4+PiAjIDM2OSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDIgMyA0Cj4gPj4+ ICMgMzkyICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNs dWRlL2dudS9zdHVicy5oIiAxIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9nbnUvc3R1YnMtMzIuaCIgMSAzIDQKPiA+Pj4gIyA4 ICIvdXNyL2luY2x1ZGUvZ251L3N0dWJzLmgiIDIgMyA0Cj4gPj4+ICMgMzkzICIvdXNyL2luY2x1 ZGUvZmVhdHVyZXMuaCIgMiAzIDQKPiA+Pj4gIyAyOCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIg MyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2Nj L2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMg MjE2ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYu aCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjE2ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv Ni4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgaW50IHNp emVfdDsKPiA+Pj4gIyAzNCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+ ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMSAzIDQKPiA+Pj4gIyAyNyAiL3Vzci9p bmNsdWRlL2JpdHMvdHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd29y ZHNpemUuaCIgMSAzIDQKPiA+Pj4gIyAyOCAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMiAz IDQKPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdV9jaGFyOwo+ID4+ PiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBfX3Vfc2hvcnQ7Cj4gPj4+IHR5cGVkZWYgdW5z aWduZWQgaW50IF9fdV9pbnQ7Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgX191X2xv bmc7Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc2lnbmVkIGNoYXIgX19pbnQ4X3Q7Cj4gPj4+ IHR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3VpbnQ4X3Q7Cj4gPj4+IHR5cGVkZWYgc2lnbmVkIHNo b3J0IGludCBfX2ludDE2X3Q7Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IF9fdWlu dDE2X3Q7Cj4gPj4+IHR5cGVkZWYgc2lnbmVkIGludCBfX2ludDMyX3Q7Cj4gPj4+IHR5cGVkZWYg dW5zaWduZWQgaW50IF9fdWludDMyX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9f ZXh0ZW5zaW9uX18gdHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIGludCBfX2ludDY0X3Q7Cj4gPj4+ IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fdWludDY0X3Q7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5z aW9uX18gdHlwZWRlZiBsb25nIGxvbmcgaW50IF9fcXVhZF90Owo+ID4+PiBfX2V4dGVuc2lvbl9f IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3VfcXVhZF90Owo+ID4+PiAjIDEyMSAi L3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2Jp dHMvdHlwZXNpemVzLmgiIDEgMyA0Cj4gPj4+ICMgMTIyICIvdXNyL2luY2x1ZGUvYml0cy90eXBl cy5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX191X3F1 YWRfdCBfX2Rldl90Owo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgaW50IF9f dWlkX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19naWRfdDsK PiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9faW5vX3Q7Cj4g Pj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3VfcXVhZF90IF9faW5vNjRfdDsKPiA+Pj4gX19l eHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX21vZGVfdDsKPiA+Pj4gX19leHRlbnNp b25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX25saW5rX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18g dHlwZWRlZiBsb25nIGludCBfX29mZl90Owo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX19x dWFkX3QgX19vZmY2NF90Owo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fcGlkX3Q7 Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzdHJ1Y3QgeyBpbnQgX192YWxbMl07IH0gX19m c2lkX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGludCBfX2Nsb2NrX3Q7Cj4g Pj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3JsaW1fdDsKPiA+ Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIF9fdV9xdWFkX3QgX19ybGltNjRfdDsKPiA+Pj4gX19l eHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX2lkX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9u X18gdHlwZWRlZiBsb25nIGludCBfX3RpbWVfdDsKPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVm IHVuc2lnbmVkIGludCBfX3VzZWNvbmRzX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBs b25nIGludCBfX3N1c2Vjb25kc190Owo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYg aW50IF9fZGFkZHJfdDsKPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGludCBfX2tleV90Owo+ ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fY2xvY2tpZF90Owo+ ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdm9pZCAqIF9fdGltZXJfdDsK PiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgaW50IF9fYmxrc2l6 ZV90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYg bG9uZyBpbnQgX19ibGtjbnRfdDsKPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIF9fcXVhZF90 IF9fYmxrY250NjRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVu c2lnbmVkIGxvbmcgaW50IF9fZnNibGtjbnRfdDsKPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVm IF9fdV9xdWFkX3QgX19mc2Jsa2NudDY0X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9u X18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX2ZzZmlsY250X3Q7Cj4gPj4+IF9fZXh0ZW5z aW9uX18gdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNmaWxjbnQ2NF90Owo+ID4+Pgo+ID4+Pgo+ID4+ PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fZnN3b3JkX3Q7Cj4gPj4+Cj4gPj4+IF9fZXh0 ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19zc2l6ZV90Owo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVu c2lvbl9fIHR5cGVkZWYgbG9uZyBpbnQgX19zeXNjYWxsX3Nsb25nX3Q7Cj4gPj4+Cj4gPj4+IF9f ZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3N5c2NhbGxfdWxvbmdfdDsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX29mZjY0X3QgX19sb2ZmX3Q7Cj4gPj4+ IHR5cGVkZWYgX19xdWFkX3QgKl9fcWFkZHJfdDsKPiA+Pj4gdHlwZWRlZiBjaGFyICpfX2NhZGRy X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19pbnRwdHJf dDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBf X3NvY2tsZW5fdDsKPiA+Pj4gIyAzNiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0Cj4gPj4+ ICMgNDQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiA+Pj4gc3RydWN0IF9JT19GSUxFOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBGSUxFOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDY0ICIvdXNyL2luY2x1ZGUvc3RkaW8u aCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0IF9JT19GSUxFIF9fRklMRTsKPiA+Pj4gIyA3NCAi L3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9saWJpby5o IiAxIDMgNAo+ID4+PiAjIDMxICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+ICMgMSAi L3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAxIDMgNAo+ID4+PiAjIDE1ICIvdXNyL2luY2x1ZGUv X0dfY29uZmlnLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51 eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAo+ID4+PiAjIDE2ICIvdXNyL2luY2x1ZGUv X0dfY29uZmlnLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vz ci9pbmNsdWRlL3djaGFyLmgiIDEgMyA0Cj4gPj4+ICMgODIgIi91c3IvaW5jbHVkZS93Y2hhci5o IiAzIDQKPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QKPiA+Pj4gewo+ID4+PiAgIGludCBfX2NvdW50Owo+ ID4+PiAgIHVuaW9uCj4gPj4+ICAgewo+ID4+Pgo+ID4+PiAgICAgdW5zaWduZWQgaW50IF9fd2No Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgY2hhciBfX3djaGJbNF07Cj4gPj4+ICAgfSBf X3ZhbHVlOwo+ID4+PiB9IF9fbWJzdGF0ZV90Owo+ID4+PiAjIDIxICIvdXNyL2luY2x1ZGUvX0df Y29uZmlnLmgiIDIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+IHsKPiA+Pj4gICBfX29m Zl90IF9fcG9zOwo+ID4+PiAgIF9fbWJzdGF0ZV90IF9fc3RhdGU7Cj4gPj4+IH0gX0dfZnBvc190 Owo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4gPj4+ICAgX19vZmY2NF90IF9fcG9zOwo+ ID4+PiAgIF9fbWJzdGF0ZV90IF9fc3RhdGU7Cj4gPj4+IH0gX0dfZnBvczY0X3Q7Cj4gPj4+ICMg MzIgIi91c3IvaW5jbHVkZS9saWJpby5oIiAyIDMgNAo+ID4+PiAjIDQ5ICIvdXNyL2luY2x1ZGUv bGliaW8uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYu MS4xL2luY2x1ZGUvc3RkYXJnLmgiIDEgMyA0Cj4gPj4+ICMgNDAgIi91c3IvbGliL2djYy9pNjg2 LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGFyZy5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBf X2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKPiA+Pj4gIyA1MCAiL3Vzci9pbmNsdWRl L2xpYmlvLmgiIDIgMyA0Cj4gPj4+ICMgMTQ0ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4g Pj4+IHN0cnVjdCBfSU9fanVtcF90OyBzdHJ1Y3QgX0lPX0ZJTEU7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgdm9pZCBfSU9fbG9ja190Owo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3QgX0lPX21hcmtlciB7Cj4gPj4+ICAgc3RydWN0 IF9JT19tYXJrZXIgKl9uZXh0Owo+ID4+PiAgIHN0cnVjdCBfSU9fRklMRSAqX3NidWY7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgaW50IF9wb3M7Cj4gPj4+ICMgMTczICIvdXNyL2luY2x1ZGUv bGliaW8uaCIgMyA0Cj4gPj4+IH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0gX19jb2RlY3Z0X3Jl c3VsdAo+ID4+PiB7Cj4gPj4+ICAgX19jb2RlY3Z0X29rLAo+ID4+PiAgIF9fY29kZWN2dF9wYXJ0 aWFsLAo+ID4+PiAgIF9fY29kZWN2dF9lcnJvciwKPiA+Pj4gICBfX2NvZGVjdnRfbm9jb252Cj4g Pj4+IH07Cj4gPj4+ICMgMjQxICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+IHN0cnVj dCBfSU9fRklMRSB7Cj4gPj4+ICAgaW50IF9mbGFnczsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gICBjaGFyKiBfSU9fcmVhZF9wdHI7Cj4gPj4+ICAgY2hhciogX0lPX3JlYWRfZW5kOwo+ ID4+PiAgIGNoYXIqIF9JT19yZWFkX2Jhc2U7Cj4gPj4+ICAgY2hhciogX0lPX3dyaXRlX2Jhc2U7 Cj4gPj4+ICAgY2hhciogX0lPX3dyaXRlX3B0cjsKPiA+Pj4gICBjaGFyKiBfSU9fd3JpdGVfZW5k Owo+ID4+PiAgIGNoYXIqIF9JT19idWZfYmFzZTsKPiA+Pj4gICBjaGFyKiBfSU9fYnVmX2VuZDsK PiA+Pj4KPiA+Pj4gICBjaGFyICpfSU9fc2F2ZV9iYXNlOwo+ID4+PiAgIGNoYXIgKl9JT19iYWNr dXBfYmFzZTsKPiA+Pj4gICBjaGFyICpfSU9fc2F2ZV9lbmQ7Cj4gPj4+Cj4gPj4+ICAgc3RydWN0 IF9JT19tYXJrZXIgKl9tYXJrZXJzOwo+ID4+Pgo+ID4+PiAgIHN0cnVjdCBfSU9fRklMRSAqX2No YWluOwo+ID4+Pgo+ID4+PiAgIGludCBfZmlsZW5vOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAg IGludCBfZmxhZ3MyOwo+ID4+Pgo+ID4+PiAgIF9fb2ZmX3QgX29sZF9vZmZzZXQ7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgX2N1cl9jb2x1bW47Cj4gPj4+ICAgc2ln bmVkIGNoYXIgX3Z0YWJsZV9vZmZzZXQ7Cj4gPj4+ICAgY2hhciBfc2hvcnRidWZbMV07Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgX0lPX2xvY2tfdCAqX2xvY2s7Cj4gPj4+ICMgMjg5ICIvdXNy L2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+ICAgX19vZmY2NF90IF9vZmZzZXQ7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgdm9pZCAqX19wYWQxOwo+ ID4+PiAgIHZvaWQgKl9fcGFkMjsKPiA+Pj4gICB2b2lkICpfX3BhZDM7Cj4gPj4+ICAgdm9pZCAq X19wYWQ0Owo+ID4+Pgo+ID4+PiAgIHNpemVfdCBfX3BhZDU7Cj4gPj4+ICAgaW50IF9tb2RlOwo+ ID4+Pgo+ID4+PiAgIGNoYXIgX3VudXNlZDJbMTUgKiBzaXplb2YgKGludCkgLSA0ICogc2l6ZW9m ICh2b2lkICopIC0gc2l6ZW9mIChzaXplX3QpXTsKPiA+Pj4KPiA+Pj4gfTsKPiA+Pj4KPiA+Pj4K PiA+Pj4gdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUgX0lPX0ZJTEU7Cj4gPj4+Cj4gPj4+Cj4gPj4+ IHN0cnVjdCBfSU9fRklMRV9wbHVzOwo+ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0IF9JT19GSUxF X3BsdXMgX0lPXzJfMV9zdGRpbl87Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBf SU9fMl8xX3N0ZG91dF87Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8x X3N0ZGVycl87Cj4gPj4+ICMgMzMzICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+IHR5 cGVkZWYgX19zc2l6ZV90IF9faW9fcmVhZF9mbiAodm9pZCAqX19jb29raWUsIGNoYXIgKl9fYnVm LCBzaXplX3QgX19uYnl0ZXMpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiB0eXBlZGVmIF9fc3NpemVfdCBfX2lvX3dyaXRlX2ZuICh2b2lkICpfX2Nvb2tp ZSwgY29uc3QgY2hhciAqX19idWYsCj4gPj4+ICAgICAgc2l6ZV90IF9fbik7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgaW50IF9faW9fc2Vl a19mbiAodm9pZCAqX19jb29raWUsIF9fb2ZmNjRfdCAqX19wb3MsIGludCBfX3cpOwo+ID4+Pgo+ ID4+Pgo+ID4+PiB0eXBlZGVmIGludCBfX2lvX2Nsb3NlX2ZuICh2b2lkICpfX2Nvb2tpZSk7Cj4g Pj4+ICMgMzg1ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgX191 bmRlcmZsb3cgKF9JT19GSUxFICopOwo+ID4+PiBleHRlcm4gaW50IF9fdWZsb3cgKF9JT19GSUxF ICopOwo+ID4+PiBleHRlcm4gaW50IF9fb3ZlcmZsb3cgKF9JT19GSUxFICosIGludCk7Cj4gPj4+ ICMgNDI5ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgX0lPX2dl dGMgKF9JT19GSUxFICpfX2ZwKTsKPiA+Pj4gZXh0ZXJuIGludCBfSU9fcHV0YyAoaW50IF9fYywg X0lPX0ZJTEUgKl9fZnApOwo+ID4+PiBleHRlcm4gaW50IF9JT19mZW9mIChfSU9fRklMRSAqX19m cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJu IGludCBfSU9fZmVycm9yIChfSU9fRklMRSAqX19mcCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBfSU9fcGVla2NfbG9ja2Vk IChfSU9fRklMRSAqX19mcCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4 dGVybiB2b2lkIF9JT19mbG9ja2ZpbGUgKF9JT19GSUxFICopIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiB2b2lkIF9JT19mdW5sb2NrZmlsZSAo X0lPX0ZJTEUgKikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+ Pj4gZXh0ZXJuIGludCBfSU9fZnRyeWxvY2tmaWxlIChfSU9fRklMRSAqKSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDQ1OSAiL3Vzci9pbmNsdWRlL2xp YmlvLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IF9JT192ZnNjYW5mIChfSU9fRklMRSAqIF9fcmVz dHJpY3QsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0LAo+ID4+PiAgICBfX2dudWNfdmFfbGlzdCwg aW50ICpfX3Jlc3RyaWN0KTsKPiA+Pj4gZXh0ZXJuIGludCBfSU9fdmZwcmludGYgKF9JT19GSUxF ICpfX3Jlc3RyaWN0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0LAo+ID4+PiAgICAgX19nbnVjX3Zh X2xpc3QpOwo+ID4+PiBleHRlcm4gX19zc2l6ZV90IF9JT19wYWRuIChfSU9fRklMRSAqLCBpbnQs IF9fc3NpemVfdCk7Cj4gPj4+IGV4dGVybiBzaXplX3QgX0lPX3NnZXRuIChfSU9fRklMRSAqLCB2 b2lkICosIHNpemVfdCk7Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX29mZjY0X3QgX0lPX3NlZWtvZmYg KF9JT19GSUxFICosIF9fb2ZmNjRfdCwgaW50LCBpbnQpOwo+ID4+PiBleHRlcm4gX19vZmY2NF90 IF9JT19zZWVrcG9zIChfSU9fRklMRSAqLCBfX29mZjY0X3QsIGludCk7Cj4gPj4+Cj4gPj4+IGV4 dGVybiB2b2lkIF9JT19mcmVlX2JhY2t1cF9hcmVhIChfSU9fRklMRSAqKSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDc1ICIvdXNyL2luY2x1ZGUvc3Rk aW8uaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2dudWNf dmFfbGlzdCB2YV9saXN0Owo+ID4+PiAjIDkwICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4g Pj4+IHR5cGVkZWYgX19vZmZfdCBvZmZfdDsKPiA+Pj4gIyAxMDIgIi91c3IvaW5jbHVkZS9zdGRp by5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBfX3NzaXplX3Qgc3NpemVfdDsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfR19mcG9zX3QgZnBvc190 Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDE2NCAiL3Vzci9pbmNsdWRlL3N0ZGlv LmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3N0ZGlvX2xpbS5oIiAxIDMgNAo+ ID4+PiAjIDE2NSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEUgKnN0ZGluOwo+ID4+PiBleHRlcm4gc3RydWN0 IF9JT19GSUxFICpzdGRvdXQ7Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEUgKnN0ZGVycjsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCByZW1vdmUgKGNvbnN0IGNoYXIgKl9fZmlsZW5hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgcmVuYW1lIChjb25zdCBj aGFyICpfX29sZCwgY29uc3QgY2hhciAqX19uZXcpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQg cmVuYW1lYXQgKGludCBfX29sZGZkLCBjb25zdCBjaGFyICpfX29sZCwgaW50IF9fbmV3ZmQsCj4g Pj4+ICAgICAgICBjb25zdCBjaGFyICpfX25ldykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIEZJTEUgKnRtcGZpbGUgKHZvaWQpIDsKPiA+Pj4gIyAyMDkgIi91 c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKnRtcG5hbSAoY2hhciAq X19zKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKnRtcG5hbV9yIChjaGFyICpf X3MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+PiAjIDIy NyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiBleHRlcm4gY2hhciAqdGVtcG5hbSAo Y29uc3QgY2hhciAqX19kaXIsIGNvbnN0IGNoYXIgKl9fcGZ4KQo+ID4+PiAgICAgIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9j X18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgZmNsb3NlIChGSUxFICpfX3N0cmVhbSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZmZsdXNoIChGSUxFICpfX3N0cmVhbSk7Cj4gPj4+Cj4g Pj4+ICMgMjUyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZmZs dXNoX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSk7Cj4gPj4+ICMgMjY2ICIvdXNyL2luY2x1ZGUv c3RkaW8uaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4 dGVybiBGSUxFICpmb3BlbiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGVuYW1lLAo+ID4+ PiAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9kZXMpIDsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIEZJTEUgKmZyZW9wZW4gKGNvbnN0IGNoYXIgKl9fcmVzdHJp Y3QgX19maWxlbmFtZSwKPiA+Pj4gICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9k ZXMsCj4gPj4+ICAgICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgOwo+ID4+PiAjIDI5 NSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDMwNiAiL3Vzci9pbmNs dWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiBleHRlcm4gRklMRSAqZmRvcGVuIChpbnQgX19mZCwgY29u c3QgY2hhciAqX19tb2RlcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSA7Cj4gPj4+ICMgMzE5ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+IGV4dGVybiBG SUxFICpmbWVtb3BlbiAodm9pZCAqX19zLCBzaXplX3QgX19sZW4sIGNvbnN0IGNoYXIgKl9fbW9k ZXMpCj4gPj4+ICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBGSUxFICpvcGVuX21lbXN0cmVhbSAo Y2hhciAqKl9fYnVmbG9jLCBzaXplX3QgKl9fc2l6ZWxvYykgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiB2b2lkIHNldGJ1ZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgY2hh ciAqX19yZXN0cmljdCBfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzZXR2YnVmIChGSUxFICpf X3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLAo+ID4+PiAgICAgICBp bnQgX19tb2Rlcywgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQg c2V0YnVmZmVyIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9f YnVmLAo+ID4+PiAgICAgICAgICBzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBzZXRsaW5l YnVmIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBmcHJpbnRmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLAo+ID4+PiAg ICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHByaW50ZiAoY29uc3QgY2hhciAqX19yZXN0cmlj dCBfX2Zvcm1hdCwgLi4uKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzcHJpbnRmIChjaGFyICpf X3Jlc3RyaWN0IF9fcywKPiA+Pj4gICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1h dCwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB2ZnByaW50ZiAoRklMRSAqX19yZXN0cmljdCBf X3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCj4gPj4+ICAgICAgICBfX2dudWNf dmFfbGlzdCBfX2FyZyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQg dnByaW50ZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3Qg X19hcmcpOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHZzcHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0 IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKPiA+Pj4gICAgICAgIF9fZ251 Y192YV9saXN0IF9fYXJnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzbnByaW50ZiAoY2hhciAqX19y ZXN0cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwKPiA+Pj4gICAgICAgIGNvbnN0IGNoYXIgKl9f cmVzdHJpY3QgX19mb3JtYXQsIC4uLikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMywgNCkpKTsK PiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB2c25wcmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBz aXplX3QgX19tYXhsZW4sCj4gPj4+ICAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zv cm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fKSkgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDMsIDAp KSk7Cj4gPj4+Cj4gPj4+ICMgNDEyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+IGV4 dGVybiBpbnQgdmRwcmludGYgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10 LAo+ID4+PiAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCj4gPj4+ICAgICAgX19hdHRyaWJ1 dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDIsIDApKSk7Cj4gPj4+IGV4dGVybiBpbnQg ZHByaW50ZiAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIC4uLikKPiA+ Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMiwgMykpKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGludCBmc2NhbmYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCj4gPj4+ICAgICAgY29u c3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBpbnQgc2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3Jt YXQsIC4uLikgOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNzY2FuZiAoY29uc3QgY2hhciAqX19y ZXN0cmljdCBfX3MsCj4gPj4+ICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwg Li4uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDQ0 MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGZzY2FuZiAoRklM RSAqX19yZXN0cmljdCBfX3N0cmVhbSwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwg Li4uKSBfX2FzbV9fICgiIiAiX19pc29jOTlfZnNjYW5mIikKPiA+Pj4KPiA+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsKPiA+Pj4gZXh0ZXJuIGludCBzY2FuZiAoY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSBfX2FzbV9fICgiIiAiX19pc29jOTlfc2NhbmYi KQo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7Cj4gPj4+IGV4dGVybiBpbnQg c3NjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmlj dCBfX2Zvcm1hdCwgLi4uKSBfX2FzbV9fICgiIiAiX19pc29jOTlfc3NjYW5mIikgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKQo+ID4+Pgo+ID4+PiAgICAgICAgICAgICAg ICAgICAgICAgOwo+ID4+PiAjIDQ2MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IHZmc2NhbmYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f Zm9ybWF0LAo+ID4+PiAgICAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpIDsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB2c2NhbmYgKGNvbnN0IGNoYXIgKl9f cmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKQo+ID4+PiAgICAgIF9fYXR0 cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5mX18sIDEsIDApKSkgOwo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gaW50IHZzc2NhbmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLAo+ID4+ PiAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBf X2FyZykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp IF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5mX18sIDIsIDApKSk7Cj4gPj4+ICMg NDk0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgdmZzY2FuZiAo RklMRSAqX19yZXN0cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9f Z251Y192YV9saXN0IF9fYXJnKSBfX2FzbV9fICgiIiAiX19pc29jOTlfdmZzY2FuZiIpCj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2Nh bmZfXywgMiwgMCkpKSA7Cj4gPj4+IGV4dGVybiBpbnQgdnNjYW5mIChjb25zdCBjaGFyICpfX3Jl c3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZykgX19hc21fXyAoIiIgIl9faXNv Yzk5X3ZzY2FuZiIpCj4gPj4+Cj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18g KF9fc2NhbmZfXywgMSwgMCkpKSA7Cj4gPj4+IGV4dGVybiBpbnQgdnNzY2FuZiAoY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251 Y192YV9saXN0IF9fYXJnKSBfX2FzbV9fICgiIiAiX19pc29jOTlfdnNzY2FuZiIpIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpOwo+ID4+ PiAjIDUyMiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZnZXRjIChG SUxFICpfX3N0cmVhbSk7Cj4gPj4+IGV4dGVybiBpbnQgZ2V0YyAoRklMRSAqX19zdHJlYW0pOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldGNoYXIgKHZv aWQpOwo+ID4+Pgo+ID4+PiAjIDU1MCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiBl eHRlcm4gaW50IGdldGNfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKTsKPiA+Pj4gZXh0ZXJuIGlu dCBnZXRjaGFyX3VubG9ja2VkICh2b2lkKTsKPiA+Pj4gIyA1NjEgIi91c3IvaW5jbHVkZS9zdGRp by5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBmZ2V0Y191bmxvY2tlZCAoRklMRSAqX19zdHJlYW0p Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVh bSk7Cj4gPj4+IGV4dGVybiBpbnQgcHV0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHB1dGNoYXIgKGludCBf X2MpOwo+ID4+Pgo+ID4+PiAjIDU5NCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiBl eHRlcm4gaW50IGZwdXRjX3VubG9ja2VkIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgcHV0 Y191bmxvY2tlZCAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pOwo+ID4+PiBleHRlcm4gaW50IHB1 dGNoYXJfdW5sb2NrZWQgKGludCBfX2MpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHcgKEZJTEUgKl9fc3RyZWFtKTsKPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBwdXR3IChpbnQgX193LCBGSUxFICpfX3N0cmVhbSk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFy ICpmZ2V0cyAoY2hhciAqX19yZXN0cmljdCBfX3MsIGludCBfX24sIEZJTEUgKl9fcmVzdHJpY3Qg X19zdHJlYW0pCj4gPj4+ICAgICAgOwo+ID4+PiAjIDY0MCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgi IDMgNAo+ID4+Pgo+ID4+PiAjIDY2NSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+PiBl eHRlcm4gX19zc2l6ZV90IF9fZ2V0ZGVsaW0gKGNoYXIgKipfX3Jlc3RyaWN0IF9fbGluZXB0ciwK PiA+Pj4gICAgICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBfX24sIGludCBfX2RlbGltaXRlciwK PiA+Pj4gICAgICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKPiA+Pj4gZXh0ZXJu IF9fc3NpemVfdCBnZXRkZWxpbSAoY2hhciAqKl9fcmVzdHJpY3QgX19saW5lcHRyLAo+ID4+PiAg ICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBfX24sIGludCBfX2RlbGltaXRlciwKPiA+Pj4gICAg ICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX3NzaXplX3QgZ2V0bGluZSAoY2hhciAq Kl9fcmVzdHJpY3QgX19saW5lcHRyLAo+ID4+PiAgICAgICAgc2l6ZV90ICpfX3Jlc3RyaWN0IF9f biwKPiA+Pj4gICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBmcHV0 cyAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0p Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHB1dHMgKGNv bnN0IGNoYXIgKl9fcyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgdW5nZXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSk7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzaXplX3QgZnJlYWQgKHZvaWQg Kl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCj4gPj4+ICAgICAgICBzaXplX3QgX19u LCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBzaXplX3QgZndyaXRlIChjb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBz aXplX3QgX19zaXplLAo+ID4+PiAgICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3Qg X19zKTsKPiA+Pj4KPiA+Pj4gIyA3MzcgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiA+Pj4g ZXh0ZXJuIHNpemVfdCBmcmVhZF91bmxvY2tlZCAodm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6 ZV90IF9fc2l6ZSwKPiA+Pj4gICAgICAgICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBf X3N0cmVhbSkgOwo+ID4+PiBleHRlcm4gc2l6ZV90IGZ3cml0ZV91bmxvY2tlZCAoY29uc3Qgdm9p ZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKPiA+Pj4gICAgICAgICAgIHNpemVf dCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZzZWVrIChGSUxFICpf X3N0cmVhbSwgbG9uZyBpbnQgX19vZmYsIGludCBfX3doZW5jZSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBsb25nIGludCBmdGVsbCAoRklMRSAqX19zdHJlYW0pIDsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgcmV3aW5kIChGSUxFICpfX3N0 cmVhbSk7Cj4gPj4+Cj4gPj4+ICMgNzczICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+ IGV4dGVybiBpbnQgZnNlZWtvIChGSUxFICpfX3N0cmVhbSwgX19vZmZfdCBfX29mZiwgaW50IF9f d2hlbmNlKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fb2ZmX3QgZnRl bGxvIChGSUxFICpfX3N0cmVhbSkgOwo+ID4+PiAjIDc5MiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgi IDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IGZnZXRwb3MgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGZwb3NfdCAqX19yZXN0cmljdCBf X3Bvcyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZnNldHBvcyAo RklMRSAqX19zdHJlYW0sIGNvbnN0IGZwb3NfdCAqX19wb3MpOwo+ID4+PiAjIDgxNSAiL3Vzci9p bmNsdWRlL3N0ZGlvLmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDgyNCAiL3Vzci9pbmNsdWRlL3N0ZGlv LmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBjbGVhcmVyciAoRklMRSAqX19z dHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgZmVvZiAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZlcnJvciAoRklM RSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBjbGVhcmVycl91bmxvY2tl ZCAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSk7Cj4gPj4+IGV4dGVybiBpbnQgZmVvZl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+PiBleHRlcm4gaW50IGZl cnJvcl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBwZXJyb3IgKGNvbnN0IGNoYXIgKl9fcyk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2Jp dHMvc3lzX2Vycmxpc3QuaCIgMSAzIDQKPiA+Pj4gIyAyNiAiL3Vzci9pbmNsdWRlL2JpdHMvc3lz X2Vycmxpc3QuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgc3lzX25lcnI7Cj4gPj4+IGV4dGVybiBj b25zdCBjaGFyICpjb25zdCBzeXNfZXJybGlzdFtdOwo+ID4+PiAjIDg1NCAiL3Vzci9pbmNsdWRl L3N0ZGlvLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQg ZmlsZW5vIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZmlsZW5v X3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKSA7Cj4gPj4+ICMgODcyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gPj4+ IGV4dGVybiBGSUxFICpwb3BlbiAoY29uc3QgY2hhciAqX19jb21tYW5kLCBjb25zdCBjaGFyICpf X21vZGVzKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQg cGNsb3NlIChGSUxFICpfX3N0cmVhbSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBjaGFyICpjdGVybWlkIChjaGFyICpfX3MpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgOTEyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIg MyA0Cj4gPj4+IGV4dGVybiB2b2lkIGZsb2NrZmlsZSAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgZnRyeWxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lk IGZ1bmxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKTsKPiA+Pj4gIyA5NDIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiA+ Pj4KPiA+Pj4gIyA0MCAibWFjaGluZS5jIiAyCj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N0ZGxp Yi5oIiAxIDMgNAo+ID4+PiAjIDMyICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+PiAj IDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5o IiAxIDMgNAo+ID4+PiAjIDMyOCAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x L2luY2x1ZGUvc3RkZGVmLmgiIDMgNAo+ID4+PiB0eXBlZGVmIGxvbmcgaW50IHdjaGFyX3Q7Cj4g Pj4+ICMgMzMgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0 cy93YWl0ZmxhZ3MuaCIgMSAzIDQKPiA+Pj4gIyA0MiAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAy IDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3dhaXRzdGF0dXMuaCIgMSAzIDQKPiA+ Pj4gIyA2NCAiL3Vzci9pbmNsdWRlL2JpdHMvd2FpdHN0YXR1cy5oIiAzIDQKPiA+Pj4gIyAxICIv dXNyL2luY2x1ZGUvZW5kaWFuLmgiIDEgMyA0Cj4gPj4+ICMgMzYgIi91c3IvaW5jbHVkZS9lbmRp YW4uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZW5kaWFuLmgiIDEgMyA0Cj4g Pj4+ICMgMzcgIi91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMiAzIDQKPiA+Pj4gIyA2MCAiL3Vzci9p bmNsdWRlL2VuZGlhbi5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9ieXRlc3dh cC5oIiAxIDMgNAo+ID4+PiAjIDI4ICIvdXNyL2luY2x1ZGUvYml0cy9ieXRlc3dhcC5oIiAzIDQK PiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ID4+PiAjIDI5 ICIvdXNyL2luY2x1ZGUvYml0cy9ieXRlc3dhcC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLTE2 LmgiIDEgMyA0Cj4gPj4+ICMgMzYgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDIgMyA0 Cj4gPj4+ICMgNDQgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDMgNAo+ID4+PiBzdGF0 aWMgX19pbmxpbmUgdW5zaWduZWQgaW50Cj4gPj4+IF9fYnN3YXBfMzIgKHVuc2lnbmVkIGludCBf X2JzeCkKPiA+Pj4gewo+ID4+PiAgIHJldHVybiBfX2J1aWx0aW5fYnN3YXAzMiAoX19ic3gpOwo+ ID4+PiB9Cj4gPj4+ICMgMTA4ICIvdXNyL2luY2x1ZGUvYml0cy9ieXRlc3dhcC5oIiAzIDQKPiA+ Pj4gc3RhdGljIF9faW5saW5lIF9fdWludDY0X3QKPiA+Pj4gX19ic3dhcF82NCAoX191aW50NjRf dCBfX2JzeCkKPiA+Pj4gewo+ID4+PiAgIHJldHVybiBfX2J1aWx0aW5fYnN3YXA2NCAoX19ic3gp Owo+ID4+PiB9Cj4gPj4+ICMgNjEgIi91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMiAzIDQKPiA+Pj4g IyA2NSAiL3Vzci9pbmNsdWRlL2JpdHMvd2FpdHN0YXR1cy5oIiAyIDMgNAo+ID4+Pgo+ID4+PiB1 bmlvbiB3YWl0Cj4gPj4+ICAgewo+ID4+PiAgICAgaW50IHdfc3RhdHVzOwo+ID4+PiAgICAgc3Ry dWN0Cj4gPj4+ICAgICAgIHsKPiA+Pj4KPiA+Pj4gIHVuc2lnbmVkIGludCBfX3dfdGVybXNpZzo3 Owo+ID4+PiAgdW5zaWduZWQgaW50IF9fd19jb3JlZHVtcDoxOwo+ID4+PiAgdW5zaWduZWQgaW50 IF9fd19yZXRjb2RlOjg7Cj4gPj4+ICB1bnNpZ25lZCBpbnQ6MTY7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICAgIH0gX193YWl0X3Rlcm1pbmF0ZWQ7 Cj4gPj4+ICAgICBzdHJ1Y3QKPiA+Pj4gICAgICAgewo+ID4+Pgo+ID4+PiAgdW5zaWduZWQgaW50 IF9fd19zdG9wdmFsOjg7Cj4gPj4+ICB1bnNpZ25lZCBpbnQgX193X3N0b3BzaWc6ODsKPiA+Pj4g IHVuc2lnbmVkIGludDoxNjsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gICAgICAgfSBfX3dhaXRfc3RvcHBlZDsKPiA+Pj4gICB9Owo+ID4+PiAjIDQzICIvdXNyL2lu Y2x1ZGUvc3RkbGliLmgiIDIgMyA0Cj4gPj4+ICMgNjcgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIg MyA0Cj4gPj4+IHR5cGVkZWYgdW5pb24KPiA+Pj4gICB7Cj4gPj4+ICAgICB1bmlvbiB3YWl0ICpf X3VwdHI7Cj4gPj4+ICAgICBpbnQgKl9faXB0cjsKPiA+Pj4gICB9IF9fV0FJVF9TVEFUVVMgX19h dHRyaWJ1dGVfXyAoKF9fdHJhbnNwYXJlbnRfdW5pb25fXykpOwo+ID4+PiAjIDk1ICIvdXNyL2lu Y2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+ PiAgIHsKPiA+Pj4gICAgIGludCBxdW90Owo+ID4+PiAgICAgaW50IHJlbTsKPiA+Pj4gICB9IGRp dl90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiAgIHsKPiA+ Pj4gICAgIGxvbmcgaW50IHF1b3Q7Cj4gPj4+ICAgICBsb25nIGludCByZW07Cj4gPj4+ICAgfSBs ZGl2X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9f ZXh0ZW5zaW9uX18gdHlwZWRlZiBzdHJ1Y3QKPiA+Pj4gICB7Cj4gPj4+ICAgICBsb25nIGxvbmcg aW50IHF1b3Q7Cj4gPj4+ICAgICBsb25nIGxvbmcgaW50IHJlbTsKPiA+Pj4gICB9IGxsZGl2X3Q7 Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMTM5ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+ PiBleHRlcm4gc2l6ZV90IF9fY3R5cGVfZ2V0X21iX2N1cl9tYXggKHZvaWQpIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gZG91YmxlIGF0b2YgKGNvbnN0IGNoYXIgKl9fbnB0cikKPiA+Pj4gICAgICBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf X3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgYXRvaSAoY29uc3QgY2hhciAqX19ucHRyKQo+ID4+PiAgICAgIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9f KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPiA+Pj4KPiA+Pj4gZXh0ZXJu IGxvbmcgaW50IGF0b2wgKGNvbnN0IGNoYXIgKl9fbnB0cikKPiA+Pj4gICAgICBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykp IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18gZXh0ZXJuIGxvbmcgbG9uZyBpbnQgYXRvbGwg KGNvbnN0IGNoYXIgKl9fbnB0cikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18g KChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBkb3VibGUgc3RydG9kIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiA+ Pj4gICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0cikKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGZs b2F0IHN0cnRvZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCj4gPj4+ICAgICAgICBj aGFyICoqX19yZXN0cmljdCBfX2VuZHB0cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+ IGV4dGVybiBsb25nIGRvdWJsZSBzdHJ0b2xkIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0 ciwKPiA+Pj4gICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyKQo+ID4+PiAgICAgIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f bm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gbG9uZyBpbnQgc3RydG9sIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiA+Pj4g ICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCj4gPj4+ICAgICAgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19u b25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+IGV4dGVybiB1bnNpZ25lZCBsb25nIGludCBzdHJ0 b3VsIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiA+Pj4gICAgICAgY2hhciAqKl9f cmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEp KSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18KPiA+Pj4gZXh0 ZXJuIGxvbmcgbG9uZyBpbnQgc3RydG9xIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwK PiA+Pj4gICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkKPiA+ Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmli dXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXwo+ID4+ PiBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGludCBzdHJ0b3VxIChjb25zdCBjaGFyICpfX3Jl c3RyaWN0IF9fbnB0ciwKPiA+Pj4gICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0 ciwgaW50IF9fYmFzZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXwo+ID4+PiBleHRlcm4gbG9uZyBs b25nIGludCBzdHJ0b2xsIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiA+Pj4gICAg ICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCj4gPj4+ICAgICAg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo X19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18KPiA+Pj4gZXh0ZXJu IHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgc3RydG91bGwgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg X19ucHRyLAo+ID4+PiAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNl KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+PiAjIDMwNSAiL3Vzci9p bmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKmw2NGEgKGxvbmcgaW50IF9f bikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBsb25nIGludCBhNjRsIChjb25zdCBjaGFyICpfX3MpCj4gPj4+ICAgICAg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo X19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMSAzIDQK PiA+Pj4gIyAyNyAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX3VfY2hhciB1X2NoYXI7Cj4gPj4+ IHR5cGVkZWYgX191X3Nob3J0IHVfc2hvcnQ7Cj4gPj4+IHR5cGVkZWYgX191X2ludCB1X2ludDsK PiA+Pj4gdHlwZWRlZiBfX3VfbG9uZyB1X2xvbmc7Cj4gPj4+IHR5cGVkZWYgX19xdWFkX3QgcXVh ZF90Owo+ID4+PiB0eXBlZGVmIF9fdV9xdWFkX3QgdV9xdWFkX3Q7Cj4gPj4+IHR5cGVkZWYgX19m c2lkX3QgZnNpZF90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIF9fbG9m Zl90IGxvZmZfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2lub190IGlub190 Owo+ID4+PiAjIDYwICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAo+ID4+PiB0eXBlZGVm IF9fZGV2X3QgZGV2X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgX19n aWRfdCBnaWRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX21vZGVf dCBtb2RlX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgX19ubGlua190 IG5saW5rX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgX191aWRfdCB1 aWRfdDsKPiA+Pj4gIyA5OCAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKPiA+Pj4gdHlw ZWRlZiBfX3BpZF90IHBpZF90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0 eXBlZGVmIF9faWRfdCBpZF90Owo+ID4+PiAjIDExNSAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5o IiAzIDQKPiA+Pj4gdHlwZWRlZiBfX2RhZGRyX3QgZGFkZHJfdDsKPiA+Pj4gdHlwZWRlZiBfX2Nh ZGRyX3QgY2FkZHJfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRl ZiBfX2tleV90IGtleV90Owo+ID4+PiAjIDEzMiAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAz IDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMgNAo+ID4+PiAjIDU3ICIvdXNy L2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2Nsb2NrX3Qg Y2xvY2tfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyA3MyAiL3Vzci9pbmNsdWRlL3RpbWUu aCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgX190aW1lX3QgdGltZV90Owo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiAjIDkxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4gdHlw ZWRlZiBfX2Nsb2NraWRfdCBjbG9ja2lkX3Q7Cj4gPj4+ICMgMTAzICIvdXNyL2luY2x1ZGUvdGlt ZS5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBfX3RpbWVyX3QgdGltZXJfdDsKPiA+Pj4gIyAxMzMgIi91 c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzIDQKPiA+Pj4gIyAxNDYgIi91c3IvaW5jbHVkZS9z eXMvdHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4 LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMTQ3ICIvdXNyL2luY2x1ZGUv c3lzL3R5cGVzLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgdW5zaWdu ZWQgbG9uZyBpbnQgdWxvbmc7Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IHVzaG9y dDsKPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDsKPiA+Pj4gIyAxOTQgIi91c3IvaW5j bHVkZS9zeXMvdHlwZXMuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgaW50IGludDhfdCBfX2F0dHJpYnV0 ZV9fICgoX19tb2RlX18gKF9fUUlfXykpKTsKPiA+Pj4gdHlwZWRlZiBpbnQgaW50MTZfdCBfX2F0 dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKPiA+Pj4gdHlwZWRlZiBpbnQgaW50MzJf dCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsKPiA+Pj4gdHlwZWRlZiBpbnQg aW50NjRfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fRElfXykpKTsKPiA+Pj4KPiA+Pj4K PiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQ4X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9k ZV9fIChfX1FJX18pKSk7Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50MTZfdCBfX2F0 dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBp bnQgdV9pbnQzMl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19TSV9fKSkpOwo+ID4+PiB0 eXBlZGVmIHVuc2lnbmVkIGludCB1X2ludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChf X0RJX18pKSk7Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgaW50IHJlZ2lzdGVyX3QgX19hdHRyaWJ1dGVf XyAoKF9fbW9kZV9fIChfX3dvcmRfXykpKTsKPiA+Pj4gIyAyMTkgIi91c3IvaW5jbHVkZS9zeXMv dHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMSAzIDQK PiA+Pj4gIyAzMCAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vz ci9pbmNsdWRlL2JpdHMvc2VsZWN0LmgiIDEgMyA0Cj4gPj4+ICMgMjIgIi91c3IvaW5jbHVkZS9i aXRzL3NlbGVjdC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6ZS5o IiAxIDMgNAo+ID4+PiAjIDIzICIvdXNyL2luY2x1ZGUvYml0cy9zZWxlY3QuaCIgMiAzIDQKPiA+ Pj4gIyAzMSAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+ Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zaWdzZXQuaCIgMSAzIDQKPiA+Pj4gIyAyMiAiL3Vz ci9pbmNsdWRlL2JpdHMvc2lnc2V0LmgiIDMgNAo+ID4+PiB0eXBlZGVmIGludCBfX3NpZ19hdG9t aWNfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QKPiA+Pj4g ICB7Cj4gPj4+ICAgICB1bnNpZ25lZCBsb25nIGludCBfX3ZhbFsoMTAyNCAvICg4ICogc2l6ZW9m ICh1bnNpZ25lZCBsb25nIGludCkpKV07Cj4gPj4+ICAgfSBfX3NpZ3NldF90Owo+ID4+PiAjIDM0 ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiB0eXBlZGVmIF9fc2lnc2V0X3Qgc2lnc2V0X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMSAzIDQKPiA+Pj4gIyAxMjAgIi91 c3IvaW5jbHVkZS90aW1lLmgiIDMgNAo+ID4+PiBzdHJ1Y3QgdGltZXNwZWMKPiA+Pj4gICB7Cj4g Pj4+ICAgICBfX3RpbWVfdCB0dl9zZWM7Cj4gPj4+ICAgICBfX3N5c2NhbGxfc2xvbmdfdCB0dl9u c2VjOwo+ID4+PiAgIH07Cj4gPj4+ICMgNDQgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDIg MyA0Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdGltZS5oIiAxIDMgNAo+ID4+ PiAjIDMwICIvdXNyL2luY2x1ZGUvYml0cy90aW1lLmgiIDMgNAo+ID4+PiBzdHJ1Y3QgdGltZXZh bAo+ID4+PiAgIHsKPiA+Pj4gICAgIF9fdGltZV90IHR2X3NlYzsKPiA+Pj4gICAgIF9fc3VzZWNv bmRzX3QgdHZfdXNlYzsKPiA+Pj4gICB9Owo+ID4+PiAjIDQ2ICIvdXNyL2luY2x1ZGUvc3lzL3Nl bGVjdC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIF9fc3VzZWNvbmRzX3Qgc3Vz ZWNvbmRzX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgbG9u ZyBpbnQgX19mZF9tYXNrOwo+ID4+PiAjIDY0ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAz IDQKPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QKPiA+Pj4gICB7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfX2ZkX21hc2sgX19mZHNfYml0c1sxMDI0IC8gKDggKiAo aW50KSBzaXplb2YgKF9fZmRfbWFzaykpXTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICB9IGZkX3NldDsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2ZkX21h c2sgZmRfbWFzazsKPiA+Pj4gIyA5NiAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMyA0Cj4g Pj4+Cj4gPj4+ICMgMTA2ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKPiA+Pj4gZXh0 ZXJuIGludCBzZWxlY3QgKGludCBfX25mZHMsIGZkX3NldCAqX19yZXN0cmljdCBfX3JlYWRmZHMs Cj4gPj4+ICAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9fd3JpdGVmZHMsCj4gPj4+ICAgICAgZmRf c2V0ICpfX3Jlc3RyaWN0IF9fZXhjZXB0ZmRzLAo+ID4+PiAgICAgIHN0cnVjdCB0aW1ldmFsICpf X3Jlc3RyaWN0IF9fdGltZW91dCk7Cj4gPj4+ICMgMTE4ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVj dC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBwc2VsZWN0IChpbnQgX19uZmRzLCBmZF9zZXQgKl9f cmVzdHJpY3QgX19yZWFkZmRzLAo+ID4+PiAgICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX193cml0 ZWZkcywKPiA+Pj4gICAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9fZXhjZXB0ZmRzLAo+ID4+PiAg ICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVzdHJpY3QgX190aW1lb3V0LAo+ID4+PiAg ICAgICBjb25zdCBfX3NpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2lnbWFzayk7Cj4gPj4+ICMgMTMx ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyAyMjAgIi91c3Iv aW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2lu Y2x1ZGUvc3lzL3N5c21hY3Jvcy5oIiAxIDMgNAo+ID4+PiAjIDI0ICIvdXNyL2luY2x1ZGUvc3lz L3N5c21hY3Jvcy5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4gX19leHRlbnNpb25fXwo+ID4+PiBl eHRlcm4gdW5zaWduZWQgaW50IGdudV9kZXZfbWFqb3IgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQg X19kZXYpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gPj4+IF9fZXh0ZW5zaW9uX18KPiA+Pj4g ZXh0ZXJuIHVuc2lnbmVkIGludCBnbnVfZGV2X21pbm9yICh1bnNpZ25lZCBsb25nIGxvbmcgaW50 IF9fZGV2KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+PiBfX2V4dGVuc2lvbl9fCj4gPj4+ IGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IGdudV9kZXZfbWFrZWRldiAodW5zaWduZWQg aW50IF9fbWFqb3IsCj4gPj4+ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX21pbm9yKQo+ID4+ PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+PiAjIDU4ICIvdXNyL2luY2x1ZGUvc3lzL3N5c21hY3Jv cy5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyAyMjMgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAz IDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBfX2Jsa3NpemVf dCBibGtzaXplX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5 cGVkZWYgX19ibGtjbnRfdCBibGtjbnRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRl ZiBfX2ZzYmxrY250X3QgZnNibGtjbnRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRl ZiBfX2ZzZmlsY250X3QgZnNmaWxjbnRfdDsKPiA+Pj4gIyAyNzAgIi91c3IvaW5jbHVkZS9zeXMv dHlwZXMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmgi IDEgMyA0Cj4gPj4+ICMgMjEgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAzIDQK PiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ID4+PiAjIDIy ICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMiAzIDQKPiA+Pj4gIyA2MCAiL3Vz ci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmgiIDMgNAo+ID4+PiB0eXBlZGVmIHVuc2lnbmVk IGxvbmcgaW50IHB0aHJlYWRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gdW5pb24gcHRocmVhZF9hdHRy X3QKPiA+Pj4gewo+ID4+PiAgIGNoYXIgX19zaXplWzM2XTsKPiA+Pj4gICBsb25nIGludCBfX2Fs aWduOwo+ID4+PiB9Owo+ID4+Pgo+ID4+PiB0eXBlZGVmIHVuaW9uIHB0aHJlYWRfYXR0cl90IHB0 aHJlYWRfYXR0cl90Owo+ID4+PiAjIDgxICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMu aCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0IF9fcHRocmVhZF9pbnRlcm5hbF9zbGlzdAo+ID4+ PiB7Cj4gPj4+ICAgc3RydWN0IF9fcHRocmVhZF9pbnRlcm5hbF9zbGlzdCAqX19uZXh0Owo+ID4+ PiB9IF9fcHRocmVhZF9zbGlzdF90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiB0eXBlZGVmIHVuaW9uCj4gPj4+IHsKPiA+Pj4gICBzdHJ1Y3QgX19wdGhyZWFkX211dGV4X3MK PiA+Pj4gICB7Cj4gPj4+ICAgICBpbnQgX19sb2NrOwo+ID4+PiAgICAgdW5zaWduZWQgaW50IF9f Y291bnQ7Cj4gPj4+ICAgICBpbnQgX19vd25lcjsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gICAgIGludCBfX2tpbmQ7Cj4gPj4+ICMgMTExICIvdXNyL2luY2x1ZGUvYml0cy9w dGhyZWFkdHlwZXMuaCIgMyA0Cj4gPj4+ICAgICB1bnNpZ25lZCBpbnQgX19udXNlcnM7Cj4gPj4+ ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gPj4+ICAgICB7Cj4gPj4+ICAgICAgIHN0cnVjdAo+ ID4+PiAgICAgICB7Cj4gPj4+ICBzaG9ydCBfX2VzcGluczsKPiA+Pj4gIHNob3J0IF9fZWxpc2lv bjsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgICAgfSBfX2VsaXNpb25fZGF0YTsKPiA+Pj4g ICAgICAgX19wdGhyZWFkX3NsaXN0X3QgX19saXN0Owo+ID4+PiAgICAgfTsKPiA+Pj4KPiA+Pj4g ICB9IF9fZGF0YTsKPiA+Pj4gICBjaGFyIF9fc2l6ZVsyNF07Cj4gPj4+ICAgbG9uZyBpbnQgX19h bGlnbjsKPiA+Pj4gfSBwdGhyZWFkX211dGV4X3Q7Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgdW5pb24K PiA+Pj4gewo+ID4+PiAgIGNoYXIgX19zaXplWzRdOwo+ID4+PiAgIGludCBfX2FsaWduOwo+ID4+ PiB9IHB0aHJlYWRfbXV0ZXhhdHRyX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5 cGVkZWYgdW5pb24KPiA+Pj4gewo+ID4+PiAgIHN0cnVjdAo+ID4+PiAgIHsKPiA+Pj4gICAgIGlu dCBfX2xvY2s7Cj4gPj4+ICAgICB1bnNpZ25lZCBpbnQgX19mdXRleDsKPiA+Pj4gICAgIF9fZXh0 ZW5zaW9uX18gdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3RvdGFsX3NlcTsKPiA+Pj4gICAgIF9f ZXh0ZW5zaW9uX18gdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3dha2V1cF9zZXE7Cj4gPj4+ICAg ICBfX2V4dGVuc2lvbl9fIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX193b2tlbl9zZXE7Cj4gPj4+ ICAgICB2b2lkICpfX211dGV4Owo+ID4+PiAgICAgdW5zaWduZWQgaW50IF9fbndhaXRlcnM7Cj4g Pj4+ICAgICB1bnNpZ25lZCBpbnQgX19icm9hZGNhc3Rfc2VxOwo+ID4+PiAgIH0gX19kYXRhOwo+ ID4+PiAgIGNoYXIgX19zaXplWzQ4XTsKPiA+Pj4gICBfX2V4dGVuc2lvbl9fIGxvbmcgbG9uZyBp bnQgX19hbGlnbjsKPiA+Pj4gfSBwdGhyZWFkX2NvbmRfdDsKPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1 bmlvbgo+ID4+PiB7Cj4gPj4+ICAgY2hhciBfX3NpemVbNF07Cj4gPj4+ICAgaW50IF9fYWxpZ247 Cj4gPj4+IH0gcHRocmVhZF9jb25kYXR0cl90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBl ZGVmIHVuc2lnbmVkIGludCBwdGhyZWFkX2tleV90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0 eXBlZGVmIGludCBwdGhyZWFkX29uY2VfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gdHlwZWRlZiB1bmlvbgo+ID4+PiB7Cj4gPj4+ICMgMjAyICIvdXNyL2luY2x1ZGUvYml0 cy9wdGhyZWFkdHlwZXMuaCIgMyA0Cj4gPj4+ICAgc3RydWN0Cj4gPj4+ICAgewo+ID4+PiAgICAg aW50IF9fbG9jazsKPiA+Pj4gICAgIHVuc2lnbmVkIGludCBfX25yX3JlYWRlcnM7Cj4gPj4+ICAg ICB1bnNpZ25lZCBpbnQgX19yZWFkZXJzX3dha2V1cDsKPiA+Pj4gICAgIHVuc2lnbmVkIGludCBf X3dyaXRlcl93YWtldXA7Cj4gPj4+ICAgICB1bnNpZ25lZCBpbnQgX19ucl9yZWFkZXJzX3F1ZXVl ZDsKPiA+Pj4gICAgIHVuc2lnbmVkIGludCBfX25yX3dyaXRlcnNfcXVldWVkOwo+ID4+Pgo+ID4+ Pgo+ID4+PiAgICAgdW5zaWduZWQgY2hhciBfX2ZsYWdzOwo+ID4+PiAgICAgdW5zaWduZWQgY2hh ciBfX3NoYXJlZDsKPiA+Pj4gICAgIHNpZ25lZCBjaGFyIF9fcndlbGlzaW9uOwo+ID4+Pgo+ID4+ PiAgICAgdW5zaWduZWQgY2hhciBfX3BhZDI7Cj4gPj4+ICAgICBpbnQgX193cml0ZXI7Cj4gPj4+ ICAgfSBfX2RhdGE7Cj4gPj4+Cj4gPj4+ICAgY2hhciBfX3NpemVbMzJdOwo+ID4+PiAgIGxvbmcg aW50IF9fYWxpZ247Cj4gPj4+IH0gcHRocmVhZF9yd2xvY2tfdDsKPiA+Pj4KPiA+Pj4gdHlwZWRl ZiB1bmlvbgo+ID4+PiB7Cj4gPj4+ICAgY2hhciBfX3NpemVbOF07Cj4gPj4+ICAgbG9uZyBpbnQg X19hbGlnbjsKPiA+Pj4gfSBwdGhyZWFkX3J3bG9ja2F0dHJfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB2b2xhdGlsZSBpbnQgcHRocmVhZF9zcGlubG9ja190 Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHVuaW9uCj4gPj4+IHsKPiA+ Pj4gICBjaGFyIF9fc2l6ZVsyMF07Cj4gPj4+ICAgbG9uZyBpbnQgX19hbGlnbjsKPiA+Pj4gfSBw dGhyZWFkX2JhcnJpZXJfdDsKPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1bmlvbgo+ID4+PiB7Cj4gPj4+ ICAgY2hhciBfX3NpemVbNF07Cj4gPj4+ICAgaW50IF9fYWxpZ247Cj4gPj4+IH0gcHRocmVhZF9i YXJyaWVyYXR0cl90Owo+ID4+PiAjIDI3MSAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAyIDMg NAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDMxNSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAy IDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gbG9u ZyBpbnQgcmFuZG9tICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBzcmFuZG9tICh1bnNpZ25lZCBpbnQg X19zZWVkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqaW5pdHN0YXRlICh1bnNp Z25lZCBpbnQgX19zZWVkLCBjaGFyICpfX3N0YXRlYnVmLAo+ID4+PiAgICBzaXplX3QgX19zdGF0 ZWxlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0 ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBj aGFyICpzZXRzdGF0ZSAoY2hhciAqX19zdGF0ZWJ1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCByYW5kb21f ZGF0YQo+ID4+PiAgIHsKPiA+Pj4gICAgIGludDMyX3QgKmZwdHI7Cj4gPj4+ICAgICBpbnQzMl90 ICpycHRyOwo+ID4+PiAgICAgaW50MzJfdCAqc3RhdGU7Cj4gPj4+ICAgICBpbnQgcmFuZF90eXBl Owo+ID4+PiAgICAgaW50IHJhbmRfZGVnOwo+ID4+PiAgICAgaW50IHJhbmRfc2VwOwo+ID4+PiAg ICAgaW50MzJfdCAqZW5kX3B0cjsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHJh bmRvbV9yIChzdHJ1Y3QgcmFuZG9tX2RhdGEgKl9fcmVzdHJpY3QgX19idWYsCj4gPj4+ICAgICAg ICBpbnQzMl90ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+ Pj4KPiA+Pj4gZXh0ZXJuIGludCBzcmFuZG9tX3IgKHVuc2lnbmVkIGludCBfX3NlZWQsIHN0cnVj dCByYW5kb21fZGF0YSAqX19idWYpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gPj4+ Cj4gPj4+IGV4dGVybiBpbnQgaW5pdHN0YXRlX3IgKHVuc2lnbmVkIGludCBfX3NlZWQsIGNoYXIg Kl9fcmVzdHJpY3QgX19zdGF0ZWJ1ZiwKPiA+Pj4gICAgc2l6ZV90IF9fc3RhdGVsZW4sCj4gPj4+ ICAgIHN0cnVjdCByYW5kb21fZGF0YSAqX19yZXN0cmljdCBfX2J1ZikKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMiwgNCkpKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzZXRzdGF0ZV9yIChjaGFy ICpfX3Jlc3RyaWN0IF9fc3RhdGVidWYsCj4gPj4+ICAgICAgICAgIHN0cnVjdCByYW5kb21fZGF0 YSAqX19yZXN0cmljdCBfX2J1ZikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCByYW5kICh2 b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+ PiBleHRlcm4gdm9pZCBzcmFuZCAodW5zaWduZWQgaW50IF9fc2VlZCkgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGludCByYW5kX3IgKHVuc2lnbmVkIGludCAqX19zZWVkKSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gZG91YmxlIGRyYW5kNDggKHZvaWQpIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiBkb3VibGUgZXJhbmQ0 OCAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10pIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gbG9uZyBpbnQgbHJhbmQ0OCAodm9pZCkgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIGxvbmcgaW50IG5yYW5k NDggKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdKQo+ID4+PiAgICAgIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f ICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gbG9uZyBpbnQgbXJhbmQ0OCAodm9pZCkg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIGxv bmcgaW50IGpyYW5kNDggKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBzcmFuZDQ4 IChsb25nIGludCBfX3NlZWR2YWwpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSk7Cj4gPj4+IGV4dGVybiB1bnNpZ25lZCBzaG9ydCBpbnQgKnNlZWQ0OCAodW5zaWduZWQg c2hvcnQgaW50IF9fc2VlZDE2dlszXSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+ Pj4gZXh0ZXJuIHZvaWQgbGNvbmc0OCAodW5zaWduZWQgc2hvcnQgaW50IF9fcGFyYW1bN10pIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f bm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1 Y3QgZHJhbmQ0OF9kYXRhCj4gPj4+ICAgewo+ID4+PiAgICAgdW5zaWduZWQgc2hvcnQgaW50IF9f eFszXTsKPiA+Pj4gICAgIHVuc2lnbmVkIHNob3J0IGludCBfX29sZF94WzNdOwo+ID4+PiAgICAg dW5zaWduZWQgc2hvcnQgaW50IF9fYzsKPiA+Pj4gICAgIHVuc2lnbmVkIHNob3J0IGludCBfX2lu aXQ7Cj4gPj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX19hOwo+ ID4+Pgo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZHJhbmQ0OF9yIChz dHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAo+ID4+PiAgICAgICAgIGRv dWJsZSAqX19yZXN0cmljdCBfX3Jlc3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+IGV4 dGVybiBpbnQgZXJhbmQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVszXSwKPiA+Pj4g ICAgICAgICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAo+ID4+PiAg ICAgICAgIGRvdWJsZSAqX19yZXN0cmljdCBfX3Jlc3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbHJhbmQ0OF9yIChzdHJ1Y3QgZHJhbmQ0OF9k YXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAo+ID4+PiAgICAgICAgIGxvbmcgaW50ICpfX3Jlc3Ry aWN0IF9fcmVzdWx0KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+PiBleHRl cm4gaW50IG5yYW5kNDhfciAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10sCj4gPj4+ICAg ICAgICAgc3RydWN0IGRyYW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwKPiA+Pj4gICAg ICAgICBsb25nIGludCAqX19yZXN0cmljdCBfX3Jlc3VsdCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf XyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBtcmFuZDQ4X3IgKHN0cnVj dCBkcmFuZDQ4X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCj4gPj4+ICAgICAgICAgbG9uZyBp bnQgKl9fcmVzdHJpY3QgX19yZXN1bHQpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7 Cj4gPj4+IGV4dGVybiBpbnQganJhbmQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVsz XSwKPiA+Pj4gICAgICAgICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVy LAo+ID4+PiAgICAgICAgIGxvbmcgaW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNyYW5k NDhfciAobG9uZyBpbnQgX19zZWVkdmFsLCBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX2J1ZmZlcikK PiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0 cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzZWVk NDhfciAodW5zaWduZWQgc2hvcnQgaW50IF9fc2VlZDE2dlszXSwKPiA+Pj4gICAgICAgIHN0cnVj dCBkcmFuZDQ4X2RhdGEgKl9fYnVmZmVyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBsY29uZzQ4X3IgKHVuc2lnbmVkIHNob3J0IGludCBfX3BhcmFtWzddLAo+ ID4+PiAgICAgICAgIHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9fYnVmZmVyKQo+ID4+PiAgICAgIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f bm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqbWFsbG9jIChzaXplX3QgX19zaXpl KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g KChfX21hbGxvY19fKSkgOwo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqY2FsbG9jIChzaXplX3Qg X19ubWVtYiwgc2l6ZV90IF9fc2l6ZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gdm9pZCAqcmVhbGxvYyAodm9pZCAqX19wdHIsIHNpemVfdCBfX3NpemUpCj4gPj4+ ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0 ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBm cmVlICh2b2lkICpfX3B0cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgY2ZyZWUgKHZvaWQg Kl9fcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hbGxvY2EuaCIgMSAzIDQKPiA+Pj4g IyAyNCAiL3Vzci9pbmNsdWRlL2FsbG9jYS5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2xpYi9nY2Mv aTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKPiA+Pj4gIyAy NSAiL3Vzci9pbmNsdWRlL2FsbG9jYS5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqYWxsb2NhIChzaXplX3QgX19zaXpl KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDQ5MyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5o IiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAq dmFsbG9jIChzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gaW50IHBvc2l4X21lbWFsaWduICh2b2lkICoqX19tZW1wdHIsIHNp emVfdCBfX2FsaWdubWVudCwgc2l6ZV90IF9fc2l6ZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo MSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkICphbGlnbmVk X2FsbG9jIChzaXplX3QgX19hbGlnbm1lbnQsIHNpemVfdCBfX3NpemUpCj4gPj4+ICAgICAgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19t YWxsb2NfXykpIF9fYXR0cmlidXRlX18gKChfX2FsbG9jX3NpemVfXyAoMikpKSA7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIGFib3J0ICh2b2lkKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJu X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBhdGV4aXQgKHZvaWQgKCpf X2Z1bmMpICh2b2lkKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgYXRfcXVpY2tfZXhpdCAodm9pZCAo Kl9fZnVuYykgKHZvaWQpKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBvbl9leGl0ICh2b2lkICgqX19m dW5jKSAoaW50IF9fc3RhdHVzLCB2b2lkICpfX2FyZyksIHZvaWQgKl9fYXJnKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gdm9pZCBleGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9yZXR1cm5fXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBxdWlja19leGl0IChp bnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h dHRyaWJ1dGVfXyAoKF9fbm9yZXR1cm5fXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBfRXhpdCAoaW50IF9fc3RhdHVzKSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v cmV0dXJuX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGNoYXIgKmdldGVudiAoY29uc3QgY2hhciAqX19uYW1lKSBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7 Cj4gPj4+Cj4gPj4+ICMgNTc4ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+PiBleHRl cm4gaW50IHB1dGVudiAoY2hhciAqX19zdHJpbmcpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNldGVudiAoY29uc3QgY2hh ciAqX19uYW1lLCBjb25zdCBjaGFyICpfX3ZhbHVlLCBpbnQgX19yZXBsYWNlKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgyKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHVuc2V0ZW52 IChjb25zdCBjaGFyICpfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGNsZWFyZW52ICh2b2lkKSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDYwNiAiL3Vzci9p bmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKm1rdGVtcCAoY2hhciAqX190 ZW1wbGF0ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp YnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ICMgNjE5ICIvdXNyL2luY2x1ZGUvc3Rk bGliLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IG1rc3RlbXAgKGNoYXIgKl9fdGVtcGxhdGUpIF9f YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+ICMgNjQxICIvdXNyL2luY2x1 ZGUvc3RkbGliLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IG1rc3RlbXBzIChjaGFyICpfX3RlbXBs YXRlLCBpbnQgX19zdWZmaXhsZW4pIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7 Cj4gPj4+ICMgNjYyICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+PiBleHRlcm4gY2hh ciAqbWtkdGVtcCAoY2hhciAqX190ZW1wbGF0ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+PiAj IDcxMSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzeXN0ZW0gKGNvbnN0IGNoYXIgKl9fY29tbWFuZCkgOwo+ ID4+Pgo+ID4+PiAjIDczMyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJu IGNoYXIgKnJlYWxwYXRoIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKPiA+Pj4gICAg ICAgICAgY2hhciAqX19yZXN0cmljdCBfX3Jlc29sdmVkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gdHlwZWRlZiBpbnQgKCpfX2NvbXBhcl9mbl90KSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2 b2lkICopOwo+ID4+PiAjIDc1MSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKmJzZWFyY2ggKGNvbnN0IHZvaWQgKl9fa2V5LCBj b25zdCB2b2lkICpfX2Jhc2UsCj4gPj4+ICAgICAgICAgc2l6ZV90IF9fbm1lbWIsIHNpemVfdCBf X3NpemUsIF9fY29tcGFyX2ZuX3QgX19jb21wYXIpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxLCAyLCA1KSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgcXNvcnQgKHZvaWQgKl9fYmFzZSwgc2l6ZV90 IF9fbm1lbWIsIHNpemVfdCBfX3NpemUsCj4gPj4+ICAgICAgX19jb21wYXJfZm5fdCBfX2NvbXBh cikgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCA0KSkpOwo+ID4+PiAjIDc3NCAiL3Vz ci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBhYnMgKGludCBfX3gpIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f Y29uc3RfXykpIDsKPiA+Pj4gZXh0ZXJuIGxvbmcgaW50IGxhYnMgKGxvbmcgaW50IF9feCkgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19j b25zdF9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBfX2V4dGVuc2lvbl9fIGV4dGVybiBs b25nIGxvbmcgaW50IGxsYWJzIChsb25nIGxvbmcgaW50IF9feCkKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0 X18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4 dGVybiBkaXZfdCBkaXYgKGludCBfX251bWVyLCBpbnQgX19kZW5vbSkKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2Nv bnN0X18pKSA7Cj4gPj4+IGV4dGVybiBsZGl2X3QgbGRpdiAobG9uZyBpbnQgX19udW1lciwgbG9u ZyBpbnQgX19kZW5vbSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IF9fZXh0ZW5zaW9uX18gZXh0ZXJuIGxsZGl2X3QgbGxkaXYgKGxvbmcgbG9u ZyBpbnQgX19udW1lciwKPiA+Pj4gICAgICAgICBsb25nIGxvbmcgaW50IF9fZGVub20pCj4gPj4+ ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0 ZV9fICgoX19jb25zdF9fKSkgOwo+ID4+Pgo+ID4+PiAjIDgxMSAiL3Vzci9pbmNsdWRlL3N0ZGxp Yi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKmVjdnQgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19u ZGlnaXQsIGludCAqX19yZXN0cmljdCBfX2RlY3B0LAo+ID4+PiAgICAgIGludCAqX19yZXN0cmlj dCBfX3NpZ24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0KSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGNoYXIgKmZjdnQgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGlu dCAqX19yZXN0cmljdCBfX2RlY3B0LAo+ID4+PiAgICAgIGludCAqX19yZXN0cmljdCBfX3NpZ24p IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgzLCA0KSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGNoYXIgKmdjdnQgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGNoYXIgKl9fYnVm KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGNoYXIgKnFlY3Z0IChsb25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGln aXQsCj4gPj4+ICAgICAgIGludCAqX19yZXN0cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJpY3Qg X19zaWduKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0KSkpIDsKPiA+Pj4gZXh0ZXJuIGNo YXIgKnFmY3Z0IChsb25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsCj4gPj4+ICAgICAg IGludCAqX19yZXN0cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJpY3QgX19zaWduKQo+ID4+PiAg ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgzLCA0KSkpIDsKPiA+Pj4gZXh0ZXJuIGNoYXIgKnFnY3Z0IChsb25n IGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGNoYXIgKl9fYnVmKQo+ID4+PiAgICAgIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f bm9ubnVsbF9fICgzKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCBlY3Z0X3IgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGludCAqX19yZXN0cmljdCBf X2RlY3B0LAo+ID4+PiAgICAgIGludCAqX19yZXN0cmljdCBfX3NpZ24sIGNoYXIgKl9fcmVzdHJp Y3QgX19idWYsCj4gPj4+ICAgICAgc2l6ZV90IF9fbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMywgNCwgNSkp KTsKPiA+Pj4gZXh0ZXJuIGludCBmY3Z0X3IgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQs IGludCAqX19yZXN0cmljdCBfX2RlY3B0LAo+ID4+PiAgICAgIGludCAqX19yZXN0cmljdCBfX3Np Z24sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCj4gPj4+ICAgICAgc2l6ZV90IF9fbGVuKSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMywgNCwgNSkpKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBxZWN2dF9yIChsb25n IGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsCj4gPj4+ICAgICAgIGludCAqX19yZXN0cmlj dCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJpY3QgX19zaWduLAo+ID4+PiAgICAgICBjaGFyICpfX3Jl c3RyaWN0IF9fYnVmLCBzaXplX3QgX19sZW4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQs IDUpKSk7Cj4gPj4+IGV4dGVybiBpbnQgcWZjdnRfciAobG9uZyBkb3VibGUgX192YWx1ZSwgaW50 IF9fbmRpZ2l0LAo+ID4+PiAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19kZWNwdCwgaW50ICpfX3Jl c3RyaWN0IF9fc2lnbiwKPiA+Pj4gICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90 IF9fbGVuKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0LCA1KSkpOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IG1ibGVuIChjb25zdCBjaGFy ICpfX3MsIHNpemVfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbWJ0b3djICh3Y2hhcl90ICpfX3Jlc3Ry aWN0IF9fcHdjLAo+ID4+PiAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3Qg X19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gaW50IHdjdG9tYiAoY2hhciAqX19zLCB3Y2hhcl90IF9fd2NoYXIpIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBzaXplX3QgbWJzdG93Y3MgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19wd2Nz LAo+ID4+PiAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbikgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIHNp emVfdCB3Y3N0b21icyAoY2hhciAqX19yZXN0cmljdCBfX3MsCj4gPj4+ICAgIGNvbnN0IHdjaGFy X3QgKl9fcmVzdHJpY3QgX19wd2NzLCBzaXplX3QgX19uKQo+ID4+PiAgICAgIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgcnBtYXRjaCAoY29uc3QgY2hh ciAqX19yZXNwb25zZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+PiAjIDg5OCAiL3Vzci9pbmNs dWRlL3N0ZGxpYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBnZXRzdWJvcHQgKGNoYXIgKipfX3Jl c3RyaWN0IF9fb3B0aW9ucCwKPiA+Pj4gICAgICAgICBjaGFyICpjb25zdCAqX19yZXN0cmljdCBf X3Rva2VucywKPiA+Pj4gICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX3ZhbHVlcCkKPiA+Pj4g ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl X18gKChfX25vbm51bGxfXyAoMSwgMiwgMykpKSA7Cj4gPj4+ICMgOTUwICIvdXNyL2luY2x1ZGUv c3RkbGliLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGdldGxvYWRhdmcgKGRvdWJsZSBfX2xvYWRh dmdbXSwgaW50IF9fbmVsZW0pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RkbGliLWZsb2F0LmgiIDEgMyA0Cj4g Pj4+ICMgOTU1ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDIgMyA0Cj4gPj4+ICMgOTY3ICIvdXNy L2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDQxICJtYWNoaW5lLmMiIDIKPiA+ Pj4gIyAxICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDEgMyA0Cj4gPj4+ICMgMzAgIi91c3IvaW5j bHVkZS9zaWduYWwuaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2Jp dHMvc2lnc2V0LmgiIDEgMyA0Cj4gPj4+ICMgMTAyICIvdXNyL2luY2x1ZGUvYml0cy9zaWdzZXQu aCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgX19zaWdpc21lbWJlciAoY29uc3QgX19zaWdzZXRfdCAq LCBpbnQpOwo+ID4+PiBleHRlcm4gaW50IF9fc2lnYWRkc2V0IChfX3NpZ3NldF90ICosIGludCk7 Cj4gPj4+IGV4dGVybiBpbnQgX19zaWdkZWxzZXQgKF9fc2lnc2V0X3QgKiwgaW50KTsKPiA+Pj4g IyAzMyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIF9fc2lnX2F0b21pY190IHNpZ19hdG9t aWNfdDsKPiA+Pj4KPiA+Pj4gIyA1NyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPiA+Pj4g IyAxICIvdXNyL2luY2x1ZGUvYml0cy9zaWdudW0uaCIgMSAzIDQKPiA+Pj4gIyA1OCAiL3Vzci9p bmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+ID4+PiAjIDc1ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgi IDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDEgMyA0Cj4gPj4+ICMgNzYgIi91 c3IvaW5jbHVkZS9zaWduYWwuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g IyAxICIvdXNyL2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDEgMyA0Cj4gPj4+ICMgMjQgIi91c3Iv aW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMv d29yZHNpemUuaCIgMSAzIDQKPiA+Pj4gIyAyNSAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnaW5mby5o IiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0 eXBlZGVmIHVuaW9uIHNpZ3ZhbAo+ID4+PiAgIHsKPiA+Pj4gICAgIGludCBzaXZhbF9pbnQ7Cj4g Pj4+ICAgICB2b2lkICpzaXZhbF9wdHI7Cj4gPj4+ICAgfSBzaWd2YWxfdDsKPiA+Pj4gIyA1OCAi L3Vzci9pbmNsdWRlL2JpdHMvc2lnaW5mby5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBfX2Nsb2NrX3Qg X19zaWdjaGxkX2Nsb2NrX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc3RydWN0 Cj4gPj4+ICAgewo+ID4+PiAgICAgaW50IHNpX3NpZ25vOwo+ID4+PiAgICAgaW50IHNpX2Vycm5v Owo+ID4+Pgo+ID4+PiAgICAgaW50IHNpX2NvZGU7Cj4gPj4+Cj4gPj4+ICAgICB1bmlvbgo+ID4+ PiAgICAgICB7Cj4gPj4+ICBpbnQgX3BhZFsoKDEyOCAvIHNpemVvZiAoaW50KSkgLSAzKV07Cj4g Pj4+Cj4gPj4+Cj4gPj4+ICBzdHJ1Y3QKPiA+Pj4gICAgewo+ID4+PiAgICAgIF9fcGlkX3Qgc2lf cGlkOwo+ID4+PiAgICAgIF9fdWlkX3Qgc2lfdWlkOwo+ID4+PiAgICB9IF9raWxsOwo+ID4+Pgo+ ID4+Pgo+ID4+PiAgc3RydWN0Cj4gPj4+ICAgIHsKPiA+Pj4gICAgICBpbnQgc2lfdGlkOwo+ID4+ PiAgICAgIGludCBzaV9vdmVycnVuOwo+ID4+PiAgICAgIHNpZ3ZhbF90IHNpX3NpZ3ZhbDsKPiA+ Pj4gICAgfSBfdGltZXI7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICBzdHJ1Y3QKPiA+Pj4gICAgewo+ID4+ PiAgICAgIF9fcGlkX3Qgc2lfcGlkOwo+ID4+PiAgICAgIF9fdWlkX3Qgc2lfdWlkOwo+ID4+PiAg ICAgIHNpZ3ZhbF90IHNpX3NpZ3ZhbDsKPiA+Pj4gICAgfSBfcnQ7Cj4gPj4+Cj4gPj4+Cj4gPj4+ ICBzdHJ1Y3QKPiA+Pj4gICAgewo+ID4+PiAgICAgIF9fcGlkX3Qgc2lfcGlkOwo+ID4+PiAgICAg IF9fdWlkX3Qgc2lfdWlkOwo+ID4+PiAgICAgIGludCBzaV9zdGF0dXM7Cj4gPj4+ICAgICAgX19z aWdjaGxkX2Nsb2NrX3Qgc2lfdXRpbWU7Cj4gPj4+ICAgICAgX19zaWdjaGxkX2Nsb2NrX3Qgc2lf c3RpbWU7Cj4gPj4+ICAgIH0gX3NpZ2NobGQ7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICBzdHJ1Y3QKPiA+ Pj4gICAgewo+ID4+PiAgICAgIHZvaWQgKnNpX2FkZHI7Cj4gPj4+ICAgICAgc2hvcnQgaW50IHNp X2FkZHJfbHNiOwo+ID4+PiAgICAgIHN0cnVjdAo+ID4+PiAgICAgICAgewo+ID4+PiAgIHZvaWQg Kl9sb3dlcjsKPiA+Pj4gICB2b2lkICpfdXBwZXI7Cj4gPj4+ICAgICAgICB9IHNpX2FkZHJfYm5k Owo+ID4+PiAgICB9IF9zaWdmYXVsdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gIHN0cnVjdAo+ID4+PiAg ICB7Cj4gPj4+ICAgICAgbG9uZyBpbnQgc2lfYmFuZDsKPiA+Pj4gICAgICBpbnQgc2lfZmQ7Cj4g Pj4+ICAgIH0gX3NpZ3BvbGw7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICBzdHJ1Y3QKPiA+Pj4gICAgewo+ ID4+PiAgICAgIHZvaWQgKl9jYWxsX2FkZHI7Cj4gPj4+ICAgICAgaW50IF9zeXNjYWxsOwo+ID4+ PiAgICAgIHVuc2lnbmVkIGludCBfYXJjaDsKPiA+Pj4gICAgfSBfc2lnc3lzOwo+ID4+PiAgICAg ICB9IF9zaWZpZWxkczsKPiA+Pj4gICB9IHNpZ2luZm9fdCA7Cj4gPj4+ICMgMTYwICIvdXNyL2lu Y2x1ZGUvYml0cy9zaWdpbmZvLmgiIDMgNAo+ID4+PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBTSV9B U1lOQ05MID0gLTYwLAo+ID4+Pgo+ID4+PiAgIFNJX1RLSUxMID0gLTYsCj4gPj4+Cj4gPj4+ICAg U0lfU0lHSU8sCj4gPj4+Cj4gPj4+ICAgU0lfQVNZTkNJTywKPiA+Pj4KPiA+Pj4gICBTSV9NRVNH USwKPiA+Pj4KPiA+Pj4gICBTSV9USU1FUiwKPiA+Pj4KPiA+Pj4gICBTSV9RVUVVRSwKPiA+Pj4K PiA+Pj4gICBTSV9VU0VSLAo+ID4+Pgo+ID4+PiAgIFNJX0tFUk5FTCA9IDB4ODAKPiA+Pj4KPiA+ Pj4gfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZW51bQo+ID4+PiB7Cj4gPj4+ICAg SUxMX0lMTE9QQyA9IDEsCj4gPj4+Cj4gPj4+ICAgSUxMX0lMTE9QTiwKPiA+Pj4KPiA+Pj4gICBJ TExfSUxMQURSLAo+ID4+Pgo+ID4+PiAgIElMTF9JTExUUlAsCj4gPj4+Cj4gPj4+ICAgSUxMX1BS Vk9QQywKPiA+Pj4KPiA+Pj4gICBJTExfUFJWUkVHLAo+ID4+Pgo+ID4+PiAgIElMTF9DT1BST0Ms Cj4gPj4+Cj4gPj4+ICAgSUxMX0JBRFNUSwo+ID4+Pgo+ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ID4+ PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBGUEVfSU5URElWID0gMSwKPiA+Pj4KPiA+Pj4gICBGUEVf SU5UT1ZGLAo+ID4+Pgo+ID4+PiAgIEZQRV9GTFRESVYsCj4gPj4+Cj4gPj4+ICAgRlBFX0ZMVE9W RiwKPiA+Pj4KPiA+Pj4gICBGUEVfRkxUVU5ELAo+ID4+Pgo+ID4+PiAgIEZQRV9GTFRSRVMsCj4g Pj4+Cj4gPj4+ICAgRlBFX0ZMVElOViwKPiA+Pj4KPiA+Pj4gICBGUEVfRkxUU1VCCj4gPj4+Cj4g Pj4+IH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gewo+ID4+PiAgIFNFR1ZfTUFQRVJS ID0gMSwKPiA+Pj4KPiA+Pj4gICBTRUdWX0FDQ0VSUgo+ID4+Pgo+ID4+PiB9Owo+ID4+Pgo+ID4+ Pgo+ID4+PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBCVVNfQURSQUxOID0gMSwKPiA+Pj4KPiA+Pj4g ICBCVVNfQURSRVJSLAo+ID4+Pgo+ID4+PiAgIEJVU19PQkpFUlIsCj4gPj4+Cj4gPj4+ICAgQlVT X01DRUVSUl9BUiwKPiA+Pj4KPiA+Pj4gICBCVVNfTUNFRVJSX0FPCj4gPj4+Cj4gPj4+IH07Cj4g Pj4+ICMgMjY0ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDMgNAo+ID4+PiBlbnVtCj4g Pj4+IHsKPiA+Pj4gICBDTERfRVhJVEVEID0gMSwKPiA+Pj4KPiA+Pj4gICBDTERfS0lMTEVELAo+ ID4+Pgo+ID4+PiAgIENMRF9EVU1QRUQsCj4gPj4+Cj4gPj4+ICAgQ0xEX1RSQVBQRUQsCj4gPj4+ Cj4gPj4+ICAgQ0xEX1NUT1BQRUQsCj4gPj4+Cj4gPj4+ICAgQ0xEX0NPTlRJTlVFRAo+ID4+Pgo+ ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ID4+PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBQT0xMX0lOID0g MSwKPiA+Pj4KPiA+Pj4gICBQT0xMX09VVCwKPiA+Pj4KPiA+Pj4gICBQT0xMX01TRywKPiA+Pj4K PiA+Pj4gICBQT0xMX0VSUiwKPiA+Pj4KPiA+Pj4gICBQT0xMX1BSSSwKPiA+Pj4KPiA+Pj4gICBQ T0xMX0hVUAo+ID4+Pgo+ID4+PiB9Owo+ID4+PiAjIDMyMCAiL3Vzci9pbmNsdWRlL2JpdHMvc2ln aW5mby5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBzdHJ1Y3Qgc2lnZXZlbnQKPiA+Pj4gICB7Cj4gPj4+ ICAgICBzaWd2YWxfdCBzaWdldl92YWx1ZTsKPiA+Pj4gICAgIGludCBzaWdldl9zaWdubzsKPiA+ Pj4gICAgIGludCBzaWdldl9ub3RpZnk7Cj4gPj4+Cj4gPj4+ICAgICB1bmlvbgo+ID4+PiAgICAg ICB7Cj4gPj4+ICBpbnQgX3BhZFsoKDY0IC8gc2l6ZW9mIChpbnQpKSAtIDMpXTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gIF9fcGlkX3QgX3RpZDsKPiA+Pj4KPiA+Pj4gIHN0cnVjdAo+ID4+PiAg ICB7Cj4gPj4+ICAgICAgdm9pZCAoKl9mdW5jdGlvbikgKHNpZ3ZhbF90KTsKPiA+Pj4gICAgICBw dGhyZWFkX2F0dHJfdCAqX2F0dHJpYnV0ZTsKPiA+Pj4gICAgfSBfc2lnZXZfdGhyZWFkOwo+ID4+ PiAgICAgICB9IF9zaWdldl91bjsKPiA+Pj4gICB9IHNpZ2V2ZW50X3Q7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gewo+ID4+PiAgIFNJR0VWX1NJ R05BTCA9IDAsCj4gPj4+Cj4gPj4+ICAgU0lHRVZfTk9ORSwKPiA+Pj4KPiA+Pj4gICBTSUdFVl9U SFJFQUQsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgU0lHRVZfVEhSRUFEX0lEID0gNAo+ID4+Pgo+ID4+ PiB9Owo+ID4+PiAjIDgxICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgdm9pZCAoKl9fc2lnaGFuZGxlcl90KSAoaW50KTsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fc2lnaGFuZGxlcl90IF9fc3lz dl9zaWduYWwgKGludCBfX3NpZywgX19zaWdoYW5kbGVyX3QgX19oYW5kbGVyKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMTAwICIv dXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gX19zaWdo YW5kbGVyX3Qgc2lnbmFsIChpbnQgX19zaWcsIF9fc2lnaGFuZGxlcl90IF9faGFuZGxlcikKPiA+ Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAj IDExNCAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyAxMjcgIi91c3Iv aW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQga2lsbCAoX19waWRfdCBfX3Bp ZCwgaW50IF9fc2lnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGtpbGxw ZyAoX19waWRfdCBfX3BncnAsIGludCBfX3NpZykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBy YWlzZSAoaW50IF9fc2lnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gX19zaWdoYW5kbGVyX3Qgc3Np Z25hbCAoaW50IF9fc2lnLCBfX3NpZ2hhbmRsZXJfdCBfX2hhbmRsZXIpCj4gPj4+ICAgICAgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIGludCBn c2lnbmFsIChpbnQgX19zaWcpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIHBzaWduYWwgKGlu dCBfX3NpZywgY29uc3QgY2hhciAqX19zKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQg cHNpZ2luZm8gKGNvbnN0IHNpZ2luZm9fdCAqX19waW5mbywgY29uc3QgY2hhciAqX19zKTsKPiA+ Pj4gIyAxODcgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgc2ln YmxvY2sgKGludCBfX21hc2spIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSkgX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRlZF9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4 dGVybiBpbnQgc2lnc2V0bWFzayAoaW50IF9fbWFzaykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18pKTsKPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzaWdnZXRtYXNrICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0ZWRfXykp Owo+ID4+PiAjIDIwNyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPiA+Pj4gdHlwZWRlZiBf X3NpZ2hhbmRsZXJfdCBzaWdfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGludCBzaWdlbXB0eXNldCAoc2lnc2V0X3QgKl9fc2V0KSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkp KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzaWdmaWxsc2V0IChzaWdzZXRfdCAqX19z ZXQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNpZ2Fk ZHNldCAoc2lnc2V0X3QgKl9fc2V0LCBpbnQgX19zaWdubykgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2lnZGVsc2V0IChzaWdzZXRfdCAqX19zZXQsIGlu dCBfX3NpZ25vKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0 cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCBzaWdpc21lbWJlciAoY29uc3Qgc2lnc2V0X3QgKl9fc2V0LCBpbnQgX19zaWdubykKPiA+Pj4g ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl X18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4gIyAyNDMgIi91c3IvaW5jbHVkZS9zaWduYWwu aCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnYWN0aW9uLmgiIDEgMyA0Cj4g Pj4+ICMgMjQgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ2FjdGlvbi5oIiAzIDQKPiA+Pj4gc3RydWN0 IHNpZ2FjdGlvbgo+ID4+PiAgIHsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIHVuaW9uCj4gPj4+ICAg ICAgIHsKPiA+Pj4KPiA+Pj4gIF9fc2lnaGFuZGxlcl90IHNhX2hhbmRsZXI7Cj4gPj4+Cj4gPj4+ ICB2b2lkICgqc2Ffc2lnYWN0aW9uKSAoaW50LCBzaWdpbmZvX3QgKiwgdm9pZCAqKTsKPiA+Pj4g ICAgICAgfQo+ID4+PiAgICAgX19zaWdhY3Rpb25faGFuZGxlcjsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9fc2lnc2V0X3Qgc2FfbWFzazsKPiA+ Pj4KPiA+Pj4KPiA+Pj4gICAgIGludCBzYV9mbGFnczsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIHZv aWQgKCpzYV9yZXN0b3JlcikgKHZvaWQpOwo+ID4+PiAgIH07Cj4gPj4+ICMgMjQ0ICIvdXNyL2lu Y2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2lncHJv Y21hc2sgKGludCBfX2hvdywgY29uc3Qgc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19zZXQsCj4gPj4+ ICAgIHNpZ3NldF90ICpfX3Jlc3RyaWN0IF9fb3NldCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBzaWdzdXNwZW5kIChjb25zdCBzaWdzZXRfdCAqX19zZXQpIF9fYXR0cmli dXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBz aWdhY3Rpb24gKGludCBfX3NpZywgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiAqX19yZXN0cmljdCBf X2FjdCwKPiA+Pj4gICAgICAgICBzdHJ1Y3Qgc2lnYWN0aW9uICpfX3Jlc3RyaWN0IF9fb2FjdCkg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBzaWdwZW5kaW5nIChzaWdzZXRfdCAqX19zZXQpIF9fYXR0cmlidXRlX18g KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgx KSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IHNpZ3dhaXQgKGNvbnN0IHNpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2V0LCBpbnQgKl9fcmVzdHJp Y3QgX19zaWcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkp Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNp Z3dhaXRpbmZvIChjb25zdCBzaWdzZXRfdCAqX19yZXN0cmljdCBfX3NldCwKPiA+Pj4gICAgc2ln aW5mb190ICpfX3Jlc3RyaWN0IF9faW5mbykgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgx KSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IHNpZ3RpbWVkd2FpdCAoY29uc3Qgc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19zZXQsCj4gPj4+ICAg ICBzaWdpbmZvX3QgKl9fcmVzdHJpY3QgX19pbmZvLAo+ID4+PiAgICAgY29uc3Qgc3RydWN0IHRp bWVzcGVjICpfX3Jlc3RyaWN0IF9fdGltZW91dCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgo X19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2ln cXVldWUgKF9fcGlkX3QgX19waWQsIGludCBfX3NpZywgY29uc3QgdW5pb24gc2lndmFsIF9fdmFs KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+ICMgMzAxICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+ID4+PiBleHRlcm4gY29uc3Qg Y2hhciAqY29uc3QgX3N5c19zaWdsaXN0WzY1XTsKPiA+Pj4gZXh0ZXJuIGNvbnN0IGNoYXIgKmNv bnN0IHN5c19zaWdsaXN0WzY1XTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2lu Y2x1ZGUvYml0cy9zaWdjb250ZXh0LmgiIDEgMyA0Cj4gPj4+ICMgMjkgIi91c3IvaW5jbHVkZS9i aXRzL3NpZ2NvbnRleHQuaCIgMyA0Cj4gPj4+IHN0cnVjdCBfZnB4X3N3X2J5dGVzCj4gPj4+IHsK PiA+Pj4gICBfX3VpbnQzMl90IG1hZ2ljMTsKPiA+Pj4gICBfX3VpbnQzMl90IGV4dGVuZGVkX3Np emU7Cj4gPj4+ICAgX191aW50NjRfdCB4c3RhdGVfYnY7Cj4gPj4+ICAgX191aW50MzJfdCB4c3Rh dGVfc2l6ZTsKPiA+Pj4gICBfX3VpbnQzMl90IHBhZGRpbmdbN107Cj4gPj4+IH07Cj4gPj4+Cj4g Pj4+IHN0cnVjdCBfZnByZWcKPiA+Pj4gewo+ID4+PiAgIHVuc2lnbmVkIHNob3J0IHNpZ25pZmlj YW5kWzRdOwo+ID4+PiAgIHVuc2lnbmVkIHNob3J0IGV4cG9uZW50Owo+ID4+PiB9Owo+ID4+Pgo+ ID4+PiBzdHJ1Y3QgX2ZweHJlZwo+ID4+PiB7Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgc2lnbmlm aWNhbmRbNF07Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgZXhwb25lbnQ7Cj4gPj4+ICAgdW5zaWdu ZWQgc2hvcnQgcGFkZGluZ1szXTsKPiA+Pj4gfTsKPiA+Pj4KPiA+Pj4gc3RydWN0IF94bW1yZWcK PiA+Pj4gewo+ID4+PiAgIF9fdWludDMyX3QgZWxlbWVudFs0XTsKPiA+Pj4gfTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gc3RydWN0IF9mcHN0YXRlCj4gPj4+IHsKPiA+Pj4K PiA+Pj4gICBfX3VpbnQzMl90IGN3Owo+ID4+PiAgIF9fdWludDMyX3Qgc3c7Cj4gPj4+ICAgX191 aW50MzJfdCB0YWc7Cj4gPj4+ICAgX191aW50MzJfdCBpcG9mZjsKPiA+Pj4gICBfX3VpbnQzMl90 IGNzc2VsOwo+ID4+PiAgIF9fdWludDMyX3QgZGF0YW9mZjsKPiA+Pj4gICBfX3VpbnQzMl90IGRh dGFzZWw7Cj4gPj4+ICAgc3RydWN0IF9mcHJlZyBfc3RbOF07Cj4gPj4+ICAgdW5zaWduZWQgc2hv cnQgc3RhdHVzOwo+ID4+PiAgIHVuc2lnbmVkIHNob3J0IG1hZ2ljOwo+ID4+Pgo+ID4+Pgo+ID4+ PiAgIF9fdWludDMyX3QgX2Z4c3JfZW52WzZdOwo+ID4+PiAgIF9fdWludDMyX3QgbXhjc3I7Cj4g Pj4+ICAgX191aW50MzJfdCByZXNlcnZlZDsKPiA+Pj4gICBzdHJ1Y3QgX2ZweHJlZyBfZnhzcl9z dFs4XTsKPiA+Pj4gICBzdHJ1Y3QgX3htbXJlZyBfeG1tWzhdOwo+ID4+PiAgIF9fdWludDMyX3Qg cGFkZGluZ1s1Nl07Cj4gPj4+IH07Cj4gPj4+ICMgOTMgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ2Nv bnRleHQuaCIgMyA0Cj4gPj4+IHN0cnVjdCBzaWdjb250ZXh0Cj4gPj4+IHsKPiA+Pj4gICB1bnNp Z25lZCBzaG9ydCBncywgX19nc2g7Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgZnMsIF9fZnNoOwo+ ID4+PiAgIHVuc2lnbmVkIHNob3J0IGVzLCBfX2VzaDsKPiA+Pj4gICB1bnNpZ25lZCBzaG9ydCBk cywgX19kc2g7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlZGk7Cj4gPj4+ICAgdW5zaWduZWQgbG9u ZyBlc2k7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlYnA7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBl c3A7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlYng7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlZHg7 Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlY3g7Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlYXg7Cj4g Pj4+ICAgdW5zaWduZWQgbG9uZyB0cmFwbm87Cj4gPj4+ICAgdW5zaWduZWQgbG9uZyBlcnI7Cj4g Pj4+ICAgdW5zaWduZWQgbG9uZyBlaXA7Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgY3MsIF9fY3No Owo+ID4+PiAgIHVuc2lnbmVkIGxvbmcgZWZsYWdzOwo+ID4+PiAgIHVuc2lnbmVkIGxvbmcgZXNw X2F0X3NpZ25hbDsKPiA+Pj4gICB1bnNpZ25lZCBzaG9ydCBzcywgX19zc2g7Cj4gPj4+ICAgc3Ry dWN0IF9mcHN0YXRlICogZnBzdGF0ZTsKPiA+Pj4gICB1bnNpZ25lZCBsb25nIG9sZG1hc2s7Cj4g Pj4+ICAgdW5zaWduZWQgbG9uZyBjcjI7Cj4gPj4+IH07Cj4gPj4+ICMgMTc1ICIvdXNyL2luY2x1 ZGUvYml0cy9zaWdjb250ZXh0LmgiIDMgNAo+ID4+PiBzdHJ1Y3QgX3hzYXZlX2hkcgo+ID4+PiB7 Cj4gPj4+ICAgX191aW50NjRfdCB4c3RhdGVfYnY7Cj4gPj4+ICAgX191aW50NjRfdCByZXNlcnZl ZDFbMl07Cj4gPj4+ICAgX191aW50NjRfdCByZXNlcnZlZDJbNV07Cj4gPj4+IH07Cj4gPj4+Cj4g Pj4+IHN0cnVjdCBfeW1taF9zdGF0ZQo+ID4+PiB7Cj4gPj4+ICAgX191aW50MzJfdCB5bW1oX3Nw YWNlWzY0XTsKPiA+Pj4gfTsKPiA+Pj4KPiA+Pj4gc3RydWN0IF94c3RhdGUKPiA+Pj4gewo+ID4+ PiAgIHN0cnVjdCBfZnBzdGF0ZSBmcHN0YXRlOwo+ID4+PiAgIHN0cnVjdCBfeHNhdmVfaGRyIHhz dGF0ZV9oZHI7Cj4gPj4+ICAgc3RydWN0IF95bW1oX3N0YXRlIHltbWg7Cj4gPj4+IH07Cj4gPj4+ ICMgMzA3ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4 dGVybiBpbnQgc2lncmV0dXJuIChzdHJ1Y3Qgc2lnY29udGV4dCAqX19zY3ApIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x L2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMzE3ICIvdXNyL2luY2x1ZGUvc2lnbmFs LmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2lnaW50 ZXJydXB0IChpbnQgX19zaWcsIGludCBfX2ludGVycnVwdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9z aWdzdGFjay5oIiAxIDMgNAo+ID4+PiAjIDI1ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdzdGFjay5o IiAzIDQKPiA+Pj4gc3RydWN0IHNpZ3N0YWNrCj4gPj4+ICAgewo+ID4+PiAgICAgdm9pZCAqc3Nf c3A7Cj4gPj4+ICAgICBpbnQgc3Nfb25zdGFjazsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBTU19PTlNUQUNLID0gMSwKPiA+Pj4KPiA+Pj4g ICBTU19ESVNBQkxFCj4gPj4+Cj4gPj4+IH07Cj4gPj4+ICMgNDkgIi91c3IvaW5jbHVkZS9iaXRz L3NpZ3N0YWNrLmgiIDMgNAo+ID4+PiB0eXBlZGVmIHN0cnVjdCBzaWdhbHRzdGFjawo+ID4+PiAg IHsKPiA+Pj4gICAgIHZvaWQgKnNzX3NwOwo+ID4+PiAgICAgaW50IHNzX2ZsYWdzOwo+ID4+PiAg ICAgc2l6ZV90IHNzX3NpemU7Cj4gPj4+ICAgfSBzdGFja190Owo+ID4+PiAjIDMyNCAiL3Vzci9p bmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVk ZS9zeXMvdWNvbnRleHQuaCIgMSAzIDQKPiA+Pj4gIyAyMiAiL3Vzci9pbmNsdWRlL3N5cy91Y29u dGV4dC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDEgMyA0Cj4gPj4+ ICMgMjMgIi91c3IvaW5jbHVkZS9zeXMvdWNvbnRleHQuaCIgMiAzIDQKPiA+Pj4gIyAxNDYgIi91 c3IvaW5jbHVkZS9zeXMvdWNvbnRleHQuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgaW50IGdyZWdfdDsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBncmVnX3QgZ3JlZ3Nl dF90WzE5XTsKPiA+Pj4gIyAyMDAgIi91c3IvaW5jbHVkZS9zeXMvdWNvbnRleHQuaCIgMyA0Cj4g Pj4+IHN0cnVjdCBfbGliY19mcHJlZwo+ID4+PiB7Cj4gPj4+ICAgdW5zaWduZWQgc2hvcnQgaW50 IHNpZ25pZmljYW5kWzRdOwo+ID4+PiAgIHVuc2lnbmVkIHNob3J0IGludCBleHBvbmVudDsKPiA+ Pj4gfTsKPiA+Pj4KPiA+Pj4gc3RydWN0IF9saWJjX2Zwc3RhdGUKPiA+Pj4gewo+ID4+PiAgIHVu c2lnbmVkIGxvbmcgaW50IGN3Owo+ID4+PiAgIHVuc2lnbmVkIGxvbmcgaW50IHN3Owo+ID4+PiAg IHVuc2lnbmVkIGxvbmcgaW50IHRhZzsKPiA+Pj4gICB1bnNpZ25lZCBsb25nIGludCBpcG9mZjsK PiA+Pj4gICB1bnNpZ25lZCBsb25nIGludCBjc3NlbDsKPiA+Pj4gICB1bnNpZ25lZCBsb25nIGlu dCBkYXRhb2ZmOwo+ID4+PiAgIHVuc2lnbmVkIGxvbmcgaW50IGRhdGFzZWw7Cj4gPj4+ICAgc3Ry dWN0IF9saWJjX2ZwcmVnIF9zdFs4XTsKPiA+Pj4gICB1bnNpZ25lZCBsb25nIGludCBzdGF0dXM7 Cj4gPj4+IH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc3RydWN0IF9saWJjX2Zwc3RhdGUg KmZwcmVnc2V0X3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+ICAgewo+ ID4+PiAgICAgZ3JlZ3NldF90IGdyZWdzOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgZnByZWdzZXRf dCBmcHJlZ3M7Cj4gPj4+ICAgICB1bnNpZ25lZCBsb25nIGludCBvbGRtYXNrOwo+ID4+PiAgICAg dW5zaWduZWQgbG9uZyBpbnQgY3IyOwo+ID4+PiAgIH0gbWNvbnRleHRfdDsKPiA+Pj4KPiA+Pj4K PiA+Pj4gdHlwZWRlZiBzdHJ1Y3QgdWNvbnRleHQKPiA+Pj4gICB7Cj4gPj4+ICAgICB1bnNpZ25l ZCBsb25nIGludCB1Y19mbGFnczsKPiA+Pj4gICAgIHN0cnVjdCB1Y29udGV4dCAqdWNfbGluazsK PiA+Pj4gICAgIHN0YWNrX3QgdWNfc3RhY2s7Cj4gPj4+ICAgICBtY29udGV4dF90IHVjX21jb250 ZXh0Owo+ID4+PiAgICAgX19zaWdzZXRfdCB1Y19zaWdtYXNrOwo+ID4+PiAgICAgc3RydWN0IF9s aWJjX2Zwc3RhdGUgX19mcHJlZ3NfbWVtOwo+ID4+PiAgIH0gdWNvbnRleHRfdDsKPiA+Pj4gIyAz MjcgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzaWdzdGFjayAoc3RydWN0IHNpZ3N0YWNrICpfX3NzLCBz dHJ1Y3Qgc2lnc3RhY2sgKl9fb3NzKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRlZF9fKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2lnYWx0c3RhY2sgKGNvbnN0IHN0cnVjdCBz aWdhbHRzdGFjayAqX19yZXN0cmljdCBfX3NzLAo+ID4+PiAgICBzdHJ1Y3Qgc2lnYWx0c3RhY2sg Kl9fcmVzdHJpY3QgX19vc3MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSk7Cj4gPj4+ICMgMzYyICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+ID4+PiAjIDEgIi91 c3IvaW5jbHVkZS9iaXRzL3NpZ3RocmVhZC5oIiAxIDMgNAo+ID4+PiAjIDMwICIvdXNyL2luY2x1 ZGUvYml0cy9zaWd0aHJlYWQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgcHRocmVhZF9zaWdtYXNr IChpbnQgX19ob3csCj4gPj4+ICAgICAgICBjb25zdCBfX3NpZ3NldF90ICpfX3Jlc3RyaWN0IF9f bmV3bWFzaywKPiA+Pj4gICAgICAgIF9fc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19vbGRtYXNrKV9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgcHRocmVhZF9raWxsIChwdGhyZWFkX3QgX190aHJlYWRpZCwgaW50IF9fc2ln bm8pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMzYz ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgX19saWJjX2N1cnJlbnRfc2lncnRtaW4gKHZvaWQp IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+IGV4 dGVybiBpbnQgX19saWJjX2N1cnJlbnRfc2lncnRtYXggKHZvaWQpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMg NDIgIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9lcnJuby5oIiAxIDMgNAo+ ID4+PiAjIDMxICIvdXNyL2luY2x1ZGUvZXJybm8uaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZXJybm8uaCIgMSAzIDQKPiA+Pj4gIyAy NCAiL3Vzci9pbmNsdWRlL2JpdHMvZXJybm8uaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L2xpbnV4L2Vycm5vLmgiIDEgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS9lcnJuby5o IiAxIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20tZ2VuZXJpYy9lcnJuby5oIiAxIDMg NAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20tZ2VuZXJpYy9l cnJuby1iYXNlLmgiIDEgMyA0Cj4gPj4+ICMgNSAiL3Vzci9pbmNsdWRlL2FzbS1nZW5lcmljL2Vy cm5vLmgiIDIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS9lcnJuby5oIiAyIDMgNAo+ ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9saW51eC9lcnJuby5oIiAyIDMgNAo+ID4+PiAjIDI1ICIv dXNyL2luY2x1ZGUvYml0cy9lcnJuby5oIiAyIDMgNAo+ID4+PiAjIDUwICIvdXNyL2luY2x1ZGUv Yml0cy9lcnJuby5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCAqX19lcnJub19sb2NhdGlvbiAodm9p ZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9f ICgoX19jb25zdF9fKSk7Cj4gPj4+ICMgMzYgIi91c3IvaW5jbHVkZS9lcnJuby5oIiAyIDMgNAo+ ID4+PiAjIDU4ICIvdXNyL2luY2x1ZGUvZXJybm8uaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgNDMgIm1h Y2hpbmUuYyIgMgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9mY250bC5oIiAxIDMgNAo+ID4+PiAj IDI4ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZmNudGwuaCIgMSAz IDQKPiA+Pj4gIyAzNSAiL3Vzci9pbmNsdWRlL2JpdHMvZmNudGwuaCIgMyA0Cj4gPj4+IHN0cnVj dCBmbG9jawo+ID4+PiAgIHsKPiA+Pj4gICAgIHNob3J0IGludCBsX3R5cGU7Cj4gPj4+ICAgICBz aG9ydCBpbnQgbF93aGVuY2U7Cj4gPj4+Cj4gPj4+ICAgICBfX29mZl90IGxfc3RhcnQ7Cj4gPj4+ ICAgICBfX29mZl90IGxfbGVuOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX19w aWRfdCBsX3BpZDsKPiA+Pj4gICB9Owo+ID4+PiAjIDYxICIvdXNyL2luY2x1ZGUvYml0cy9mY250 bC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9mY250bC1saW51eC5oIiAxIDMg NAo+ID4+PiAjIDM0NSAiL3Vzci9pbmNsdWRlL2JpdHMvZmNudGwtbGludXguaCIgMyA0Cj4gPj4+ Cj4gPj4+ICMgNDE5ICIvdXNyL2luY2x1ZGUvYml0cy9mY250bC1saW51eC5oIiAzIDQKPiA+Pj4K PiA+Pj4gIyA2MSAiL3Vzci9pbmNsdWRlL2JpdHMvZmNudGwuaCIgMiAzIDQKPiA+Pj4gIyAzNiAi L3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDIgMyA0Cj4gPj4+ICMgNzYgIi91c3IvaW5jbHVkZS9mY250 bC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMgNAo+ID4+PiAjIDc3 ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0 cy9zdGF0LmgiIDEgMyA0Cj4gPj4+ICMgNDYgIi91c3IvaW5jbHVkZS9iaXRzL3N0YXQuaCIgMyA0 Cj4gPj4+IHN0cnVjdCBzdGF0Cj4gPj4+ICAgewo+ID4+PiAgICAgX19kZXZfdCBzdF9kZXY7Cj4g Pj4+Cj4gPj4+ICAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX19wYWQxOwo+ID4+Pgo+ID4+Pgo+ID4+ PiAgICAgX19pbm9fdCBzdF9pbm87Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBf X21vZGVfdCBzdF9tb2RlOwo+ID4+PiAgICAgX19ubGlua190IHN0X25saW5rOwo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX191aWRfdCBzdF91aWQ7Cj4gPj4+ICAgICBfX2dpZF90 IHN0X2dpZDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9fZGV2X3Qgc3RfcmRldjsKPiA+ Pj4KPiA+Pj4gICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDI7Cj4gPj4+Cj4gPj4+Cj4gPj4+ ICAgICBfX29mZl90IHN0X3NpemU7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfX2Jsa3Np emVfdCBzdF9ibGtzaXplOwo+ID4+Pgo+ID4+PiAgICAgX19ibGtjbnRfdCBzdF9ibG9ja3M7Cj4g Pj4+ICMgOTEgIi91c3IvaW5jbHVkZS9iaXRzL3N0YXQuaCIgMyA0Cj4gPj4+ICAgICBzdHJ1Y3Qg dGltZXNwZWMgc3RfYXRpbTsKPiA+Pj4gICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwo+ID4+ PiAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07Cj4gPj4+ICMgMTA5ICIvdXNyL2luY2x1ZGUv Yml0cy9zdGF0LmgiIDMgNAo+ID4+PiAgICAgdW5zaWduZWQgbG9uZyBpbnQgX19nbGliY19yZXNl cnZlZDQ7Cj4gPj4+ICAgICB1bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jlc2VydmVkNTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICB9Owo+ID4+PiAjIDc4ICIvdXNyL2luY2x1ZGUv ZmNudGwuaCIgMiAzIDQKPiA+Pj4gIyAxNjkgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKPiA+ Pj4gZXh0ZXJuIGludCBmY250bCAoaW50IF9fZmQsIGludCBfX2NtZCwgLi4uKTsKPiA+Pj4gIyAx NzkgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBvcGVuIChjb25z dCBjaGFyICpfX2ZpbGUsIGludCBfX29mbGFnLCAuLi4pIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSkpKTsKPiA+Pj4gIyAyMDMgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKPiA+Pj4g ZXh0ZXJuIGludCBvcGVuYXQgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX2ZpbGUsIGludCBfX29m bGFnLCAuLi4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+ ID4+PiAjIDIyNSAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGNy ZWF0IChjb25zdCBjaGFyICpfX2ZpbGUsIG1vZGVfdCBfX21vZGUpIF9fYXR0cmlidXRlX18gKChf X25vbm51bGxfXyAoMSkpKTsKPiA+Pj4gIyAyNTQgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQK PiA+Pj4gZXh0ZXJuIGludCBsb2NrZiAoaW50IF9fZmQsIGludCBfX2NtZCwgb2ZmX3QgX19sZW4p Owo+ID4+PiAjIDI3MSAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50 IHBvc2l4X2ZhZHZpc2UgKGludCBfX2ZkLCBvZmZfdCBfX29mZnNldCwgb2ZmX3QgX19sZW4sCj4g Pj4+ICAgICAgaW50IF9fYWR2aXNlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+PiAjIDI5MyAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMgNAo+ID4+PiBleHRl cm4gaW50IHBvc2l4X2ZhbGxvY2F0ZSAoaW50IF9fZmQsIG9mZl90IF9fb2Zmc2V0LCBvZmZfdCBf X2xlbik7Cj4gPj4+ICMgMzE1ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4gPj4+Cj4gPj4+ ICMgNDQgIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAxIDMg NAo+ID4+PiAjIDI4ICIvdXNyL2luY2x1ZGUvY3R5cGUuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgNDYg Ii91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKPiA+Pj4gZW51bQo+ID4+PiB7Cj4gPj4+ICAgX0lT dXBwZXIgPSAoKDApIDwgOCA/ICgoMSA8PCAoMCkpIDw8IDgpIDogKCgxIDw8ICgwKSkgPj4gOCkp LAo+ID4+PiAgIF9JU2xvd2VyID0gKCgxKSA8IDggPyAoKDEgPDwgKDEpKSA8PCA4KSA6ICgoMSA8 PCAoMSkpID4+IDgpKSwKPiA+Pj4gICBfSVNhbHBoYSA9ICgoMikgPCA4ID8gKCgxIDw8ICgyKSkg PDwgOCkgOiAoKDEgPDwgKDIpKSA+PiA4KSksCj4gPj4+ICAgX0lTZGlnaXQgPSAoKDMpIDwgOCA/ ICgoMSA8PCAoMykpIDw8IDgpIDogKCgxIDw8ICgzKSkgPj4gOCkpLAo+ID4+PiAgIF9JU3hkaWdp dCA9ICgoNCkgPCA4ID8gKCgxIDw8ICg0KSkgPDwgOCkgOiAoKDEgPDwgKDQpKSA+PiA4KSksCj4g Pj4+ICAgX0lTc3BhY2UgPSAoKDUpIDwgOCA/ICgoMSA8PCAoNSkpIDw8IDgpIDogKCgxIDw8ICg1 KSkgPj4gOCkpLAo+ID4+PiAgIF9JU3ByaW50ID0gKCg2KSA8IDggPyAoKDEgPDwgKDYpKSA8PCA4 KSA6ICgoMSA8PCAoNikpID4+IDgpKSwKPiA+Pj4gICBfSVNncmFwaCA9ICgoNykgPCA4ID8gKCgx IDw8ICg3KSkgPDwgOCkgOiAoKDEgPDwgKDcpKSA+PiA4KSksCj4gPj4+ICAgX0lTYmxhbmsgPSAo KDgpIDwgOCA/ICgoMSA8PCAoOCkpIDw8IDgpIDogKCgxIDw8ICg4KSkgPj4gOCkpLAo+ID4+PiAg IF9JU2NudHJsID0gKCg5KSA8IDggPyAoKDEgPDwgKDkpKSA8PCA4KSA6ICgoMSA8PCAoOSkpID4+ IDgpKSwKPiA+Pj4gICBfSVNwdW5jdCA9ICgoMTApIDwgOCA/ICgoMSA8PCAoMTApKSA8PCA4KSA6 ICgoMSA8PCAoMTApKSA+PiA4KSksCj4gPj4+ICAgX0lTYWxudW0gPSAoKDExKSA8IDggPyAoKDEg PDwgKDExKSkgPDwgOCkgOiAoKDEgPDwgKDExKSkgPj4gOCkpCj4gPj4+IH07Cj4gPj4+ICMgNzkg Ii91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIHNo b3J0IGludCAqKl9fY3R5cGVfYl9sb2MgKHZvaWQpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4g Pj4+IGV4dGVybiBjb25zdCBfX2ludDMyX3QgKipfX2N0eXBlX3RvbG93ZXJfbG9jICh2b2lkKQo+ ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy aWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+PiBleHRlcm4gY29uc3QgX19pbnQzMl90ICoqX19j dHlwZV90b3VwcGVyX2xvYyAodm9pZCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPiA+Pj4gIyAx MDQgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBpc2FsbnVtIChpbnQpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiBpbnQgaXNhbHBoYSAoaW50KSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50 IGlzY250cmwgKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK PiA+Pj4gZXh0ZXJuIGludCBpc2RpZ2l0IChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiBpbnQgaXNsb3dlciAoaW50KSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzZ3JhcGgg KGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0 ZXJuIGludCBpc3ByaW50IChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSk7Cj4gPj4+IGV4dGVybiBpbnQgaXNwdW5jdCAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzc3BhY2UgKGludCkgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIGludCBp c3VwcGVyIChpbnQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+IGV4dGVybiBpbnQgaXN4ZGlnaXQgKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB0b2xvd2Vy IChpbnQgX19jKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHRvdXBwZXIgKGludCBfX2MpIF9fYXR0cmlidXRlX18g KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgaXNibGFuayAoaW50KSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDE1 MCAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGlzYXNjaWkgKGlu dCBfX2MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgdG9hc2NpaSAoaW50IF9fYykgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGludCBfdG91cHBlciAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+PiBleHRlcm4gaW50IF90b2xvd2VyIChpbnQpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMjU3ICIvdXNyL2luY2x1ZGUvY3R5cGUu aCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL3hsb2NhbGUuaCIgMSAzIDQKPiA+Pj4gIyAy NyAiL3Vzci9pbmNsdWRlL3hsb2NhbGUuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0IF9fbG9j YWxlX3N0cnVjdAo+ID4+PiB7Cj4gPj4+Cj4gPj4+ICAgc3RydWN0IF9fbG9jYWxlX2RhdGEgKl9f bG9jYWxlc1sxM107Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgaW50 ICpfX2N0eXBlX2I7Cj4gPj4+ICAgY29uc3QgaW50ICpfX2N0eXBlX3RvbG93ZXI7Cj4gPj4+ICAg Y29uc3QgaW50ICpfX2N0eXBlX3RvdXBwZXI7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgY29uc3QgY2hh ciAqX19uYW1lc1sxM107Cj4gPj4+IH0gKl9fbG9jYWxlX3Q7Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5 cGVkZWYgX19sb2NhbGVfdCBsb2NhbGVfdDsKPiA+Pj4gIyAyNTggIi91c3IvaW5jbHVkZS9jdHlw ZS5oIiAyIDMgNAo+ID4+PiAjIDI3MSAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDMgNAo+ID4+PiBl eHRlcm4gaW50IGlzYWxudW1fbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzYWxwaGFfbCAoaW50LCBf X2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ PiBleHRlcm4gaW50IGlzY250cmxfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzZGlnaXRfbCAoaW50 LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ ID4+PiBleHRlcm4gaW50IGlzbG93ZXJfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzZ3JhcGhfbCAo aW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp Owo+ID4+PiBleHRlcm4gaW50IGlzcHJpbnRfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzcHVuY3Rf bCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpOwo+ID4+PiBleHRlcm4gaW50IGlzc3BhY2VfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzdXBw ZXJfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+PiBleHRlcm4gaW50IGlzeGRpZ2l0X2wgKGludCwgX19sb2NhbGVfdCkgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJu IGludCBpc2JsYW5rX2wgKGludCwgX19sb2NhbGVfdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBfX3Rv bG93ZXJfbCAoaW50IF9fYywgX19sb2NhbGVfdCBfX2wpIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiBpbnQgdG9sb3dlcl9sIChpbnQgX19jLCBf X2xvY2FsZV90IF9fbCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBfX3RvdXBwZXJfbCAoaW50IF9fYywgX19sb2Nh bGVfdCBfX2wpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ IGV4dGVybiBpbnQgdG91cHBlcl9sIChpbnQgX19jLCBfX2xvY2FsZV90IF9fbCkgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyAzNDcgIi91c3IvaW5jbHVk ZS9jdHlwZS5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyA0NSAibWFjaGluZS5jIiAyCj4gPj4+ICMgMSAi L3Vzci9pbmNsdWRlL3N0cmluZy5oIiAxIDMgNAo+ID4+PiAjIDI3ICIvdXNyL2luY2x1ZGUvc3Ry aW5nLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3Iv bGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAo+ ID4+PiAjIDMzICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkICpt ZW1jcHkgKHZvaWQgKl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9f c3JjLAo+ID4+PiAgICAgICAgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkICptZW1tb3ZlICh2b2lkICpfX2Rlc3QsIGNvbnN0IHZv aWQgKl9fc3JjLCBzaXplX3QgX19uKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqbWVt Y2NweSAodm9pZCAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19z cmMsCj4gPj4+ICAgICAgICAgaW50IF9fYywgc2l6ZV90IF9fbikKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IHZvaWQgKm1lbXNldCAodm9pZCAqX19zLCBpbnQgX19jLCBzaXplX3QgX19uKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf XyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBtZW1jbXAgKGNvbnN0IHZvaWQg Kl9fczEsIGNvbnN0IHZvaWQgKl9fczIsIHNpemVfdCBfX24pCj4gPj4+ICAgICAgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+ICMgOTIgIi91c3Iv aW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+IGV4dGVybiB2b2lkICptZW1jaHIgKGNvbnN0IHZv aWQgKl9fcywgaW50IF9fYywgc2l6ZV90IF9fbikKPiA+Pj4gICAgICAgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0 dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMTIzICIv dXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAq c3RyY3B5IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgY29uc3QgY2hhciAqX19yZXN0cmljdCBf X3NyYykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJu IGNoYXIgKnN0cm5jcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAo+ID4+PiAgICAgICAgIGNv bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX24pCj4gPj4+ICAgICAgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u dWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpzdHJjYXQgKGNo YXIgKl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQo+ID4+ PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqc3Ry bmNhdCAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19z cmMsCj4gPj4+ICAgICAgICAgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc3RyY21wIChjb25zdCBjaGFyICpfX3MxLCBjb25zdCBj aGFyICpfX3MyKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs bF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHN0cm5jbXAgKGNvbnN0IGNoYXIg Kl9fczEsIGNvbnN0IGNoYXIgKl9fczIsIHNpemVfdCBfX24pCj4gPj4+ICAgICAgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgc3RyY29sbCAoY29uc3QgY2hhciAqX19zMSwgY29uc3QgY2hhciAqX19zMikK PiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0 cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikp KTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIHNpemVfdCBzdHJ4ZnJtIChjaGFyICpfX3Jlc3RyaWN0IF9f ZGVzdCwKPiA+Pj4gICAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90 IF9fbikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiA+Pj4KPiA+Pj4gIyAxNjIgIi91 c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgc3RyY29sbF9sIChjb25z dCBjaGFyICpfX3MxLCBjb25zdCBjaGFyICpfX3MyLCBfX2xvY2FsZV90IF9fbCkKPiA+Pj4gICAg ICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g KChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMiwgMykpKTsKPiA+ Pj4KPiA+Pj4gZXh0ZXJuIHNpemVfdCBzdHJ4ZnJtX2wgKGNoYXIgKl9fZGVzdCwgY29uc3QgY2hh ciAqX19zcmMsIHNpemVfdCBfX24sCj4gPj4+ICAgICBfX2xvY2FsZV90IF9fbCkgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs X18gKDIsIDQpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpz dHJkdXAgKGNvbnN0IGNoYXIgKl9fcykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqc3RybmR1cCAoY29uc3QgY2hhciAqX19zdHJpbmcsIHNp emVfdCBfX24pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSkpKTsKPiA+Pj4gIyAyMDYgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+ Cj4gPj4+ICMgMjMxICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+ID4+PiBleHRlcm4gY2hh ciAqc3RyY2hyIChjb25zdCBjaGFyICpfX3MsIGludCBfX2MpCj4gPj4+ICAgICAgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ICMgMjU4ICIvdXNyL2lu Y2x1ZGUvc3RyaW5nLmgiIDMgNAo+ID4+PiBleHRlcm4gY2hhciAqc3RycmNociAoY29uc3QgY2hh ciAqX19zLCBpbnQgX19jKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f bm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDI3NyAiL3Vzci9pbmNsdWRlL3N0 cmluZy5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHNpemVfdCBzdHJjc3Bu IChjb25zdCBjaGFyICpfX3MsIGNvbnN0IGNoYXIgKl9fcmVqZWN0KQo+ID4+PiAgICAgIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVy ZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gc2l6ZV90IHN0cnNwbiAoY29uc3QgY2hhciAqX19zLCBjb25zdCBjaGFyICpf X2FjY2VwdCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf XyAoMSwgMikpKTsKPiA+Pj4gIyAzMTAgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+ IGV4dGVybiBjaGFyICpzdHJwYnJrIChjb25zdCBjaGFyICpfX3MsIGNvbnN0IGNoYXIgKl9fYWNj ZXB0KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg X19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgx LCAyKSkpOwo+ID4+PiAjIDMzNyAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPiA+Pj4gZXh0 ZXJuIGNoYXIgKnN0cnN0ciAoY29uc3QgY2hhciAqX19oYXlzdGFjaywgY29uc3QgY2hhciAqX19u ZWVkbGUpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g KDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpzdHJ0 b2sgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVsaW0p Cj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0 dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBjaGFyICpfX3N0cnRva19yIChjaGFyICpfX3Jlc3RyaWN0IF9fcywKPiA+Pj4g ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19kZWxpbSwKPiA+Pj4gICAgIGNoYXIgKipfX3Jl c3RyaWN0IF9fc2F2ZV9wdHIpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDMpKSk7Cj4gPj4+ Cj4gPj4+IGV4dGVybiBjaGFyICpzdHJ0b2tfciAoY2hhciAqX19yZXN0cmljdCBfX3MsIGNvbnN0 IGNoYXIgKl9fcmVzdHJpY3QgX19kZWxpbSwKPiA+Pj4gICAgICAgICAgY2hhciAqKl9fcmVzdHJp Y3QgX19zYXZlX3B0cikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsKPiA+Pj4gIyAz OTIgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBz aXplX3Qgc3RybGVuIChjb25zdCBjaGFyICpfX3MpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0 dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBzaXplX3Qgc3RybmxlbiAoY29uc3QgY2hhciAqX19zdHJpbmcsIHNp emVfdCBfX21heGxlbikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGNoYXIgKnN0cmVycm9yIChpbnQgX19lcnJudW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+ICMgNDIyICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgi IDMgNAo+ID4+PiBleHRlcm4gaW50IHN0cmVycm9yX3IgKGludCBfX2Vycm51bSwgY2hhciAqX19i dWYsIHNpemVfdCBfX2J1ZmxlbikgX19hc21fXyAoIiIgIl9feHBnX3N0cmVycm9yX3IiKSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpCj4gPj4+Cj4gPj4+ICAgICAgICAg ICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiA+Pj4g IyA0NDAgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+IGV4dGVybiBjaGFyICpzdHJl cnJvcl9sIChpbnQgX19lcnJudW0sIF9fbG9jYWxlX3QgX19sKSBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gdm9pZCBfX2J6ZXJvICh2b2lkICpfX3MsIHNpemVfdCBfX24pIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f ICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBiY29weSAoY29uc3Qg dm9pZCAqX19zcmMsIHZvaWQgKl9fZGVzdCwgc2l6ZV90IF9fbikKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgYnplcm8gKHZvaWQg Kl9fcywgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4 dGVybiBpbnQgYmNtcCAoY29uc3Qgdm9pZCAqX19zMSwgY29uc3Qgdm9pZCAqX19zMiwgc2l6ZV90 IF9fbikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp IF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo MSwgMikpKTsKPiA+Pj4gIyA0ODQgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gPj4+IGV4 dGVybiBjaGFyICppbmRleCAoY29uc3QgY2hhciAqX19zLCBpbnQgX19jKQo+ID4+PiAgICAgIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f cHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+PiAjIDUxMiAi L3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNoYXIgKnJpbmRleCAoY29u c3QgY2hhciAqX19zLCBpbnQgX19jKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVf XyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gaW50IGZmcyAoaW50IF9faSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gPj4+ICMgNTI5ICIvdXNyL2luY2x1 ZGUvc3RyaW5nLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHN0cmNhc2VjbXAgKGNvbnN0IGNoYXIg Kl9fczEsIGNvbnN0IGNoYXIgKl9fczIpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0 ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQg c3RybmNhc2VjbXAgKGNvbnN0IGNoYXIgKl9fczEsIGNvbnN0IGNoYXIgKl9fczIsIHNpemVfdCBf X24pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf X2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEs IDIpKSk7Cj4gPj4+ICMgNTUyICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+ID4+PiBleHRl cm4gY2hhciAqc3Ryc2VwIChjaGFyICoqX19yZXN0cmljdCBfX3N0cmluZ3AsCj4gPj4+ICAgICAg ICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVsaW0pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g KDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpzdHJz aWduYWwgKGludCBfX3NpZykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKl9fc3RwY3B5IChjaGFyICpfX3Jlc3Ry aWN0IF9fZGVzdCwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKPiA+Pj4gICAgICBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSwgMikpKTsKPiA+Pj4gZXh0ZXJuIGNoYXIgKnN0cGNweSAoY2hhciAqX19yZXN0 cmljdCBfX2Rlc3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMpCj4gPj4+ICAgICAgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19u b25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpf X3N0cG5jcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAo+ID4+PiAgICBjb25zdCBjaGFyICpf X3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAy KSkpOwo+ID4+PiBleHRlcm4gY2hhciAqc3RwbmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3Qs Cj4gPj4+ICAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbikK PiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0 cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+Pj4gIyA2NTggIi91c3IvaW5jbHVk ZS9zdHJpbmcuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgNDYgIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEg Ii91c3IvaW5jbHVkZS90aW1lLmgiIDEgMyA0Cj4gPj4+ICMgMjkgIi91c3IvaW5jbHVkZS90aW1l LmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0 ZGRlZi5oIiAxIDMgNAo+ID4+PiAjIDM4ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAyIDMgNAo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3RpbWUuaCIgMSAzIDQK PiA+Pj4gIyA0MiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMiAzIDQKPiA+Pj4gIyAxMzEgIi91c3Iv aW5jbHVkZS90aW1lLmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3QgdG0KPiA+Pj4gewo+ ID4+PiAgIGludCB0bV9zZWM7Cj4gPj4+ICAgaW50IHRtX21pbjsKPiA+Pj4gICBpbnQgdG1faG91 cjsKPiA+Pj4gICBpbnQgdG1fbWRheTsKPiA+Pj4gICBpbnQgdG1fbW9uOwo+ID4+PiAgIGludCB0 bV95ZWFyOwo+ID4+PiAgIGludCB0bV93ZGF5Owo+ID4+PiAgIGludCB0bV95ZGF5Owo+ID4+PiAg IGludCB0bV9pc2RzdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICBsb25nIGludCB0bV9nbXRvZmY7Cj4g Pj4+ICAgY29uc3QgY2hhciAqdG1fem9uZTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g fTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g c3RydWN0IGl0aW1lcnNwZWMKPiA+Pj4gICB7Cj4gPj4+ICAgICBzdHJ1Y3QgdGltZXNwZWMgaXRf aW50ZXJ2YWw7Cj4gPj4+ICAgICBzdHJ1Y3QgdGltZXNwZWMgaXRfdmFsdWU7Cj4gPj4+ICAgfTsK PiA+Pj4KPiA+Pj4KPiA+Pj4gc3RydWN0IHNpZ2V2ZW50Owo+ID4+PiAjIDE4NiAiL3Vzci9pbmNs dWRlL3RpbWUuaCIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjbG9ja190IGNs b2NrICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdGltZV90IHRpbWUgKHRpbWVfdCAqX190aW1lcikgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGRvdWJsZSBkaWZmdGltZSAodGltZV90IF9fdGltZTEsIHRpbWVfdCBfX3RpbWUwKQo+ID4+ PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdGltZV90IG1rdGlt ZSAoc3RydWN0IHRtICpfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc2l6ZV90IHN0 cmZ0aW1lIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4c2l6ZSwKPiA+Pj4gICAg Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKPiA+Pj4gICAgY29uc3Qgc3RydWN0IHRt ICpfX3Jlc3RyaWN0IF9fdHApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSk7Cj4gPj4+Cj4gPj4+ICMgMjIzICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4gZXh0 ZXJuIHNpemVfdCBzdHJmdGltZV9sIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4 c2l6ZSwKPiA+Pj4gICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAo+ID4+PiAg ICAgIGNvbnN0IHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwLAo+ID4+PiAgICAgIF9fbG9jYWxl X3QgX19sb2MpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ ICMgMjM2ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIHN0cnVjdCB0bSAqZ210aW1lIChjb25zdCB0aW1lX3QgKl9fdGltZXIpIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBzdHJ1Y3QgdG0gKmxvY2FsdGltZSAoY29uc3QgdGltZV90ICpfX3RpbWVyKSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0IHRtICpnbXRpbWVfciAoY29uc3QgdGltZV90 ICpfX3Jlc3RyaWN0IF9fdGltZXIsCj4gPj4+ICAgICAgICBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3Qg X190cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lX3IgKGNvbnN0IHRpbWVf dCAqX19yZXN0cmljdCBfX3RpbWVyLAo+ID4+PiAgICAgICAgICAgc3RydWN0IHRtICpfX3Jlc3Ry aWN0IF9fdHApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICphc2N0aW1lIChjb25z dCBzdHJ1Y3QgdG0gKl9fdHApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpjdGltZSAoY29uc3QgdGltZV90ICpf X3RpbWVyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqYXNj dGltZV9yIChjb25zdCBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3QgX190cCwKPiA+Pj4gICAgY2hhciAq X19yZXN0cmljdCBfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKmN0aW1lX3IgKGNvbnN0IHRpbWVfdCAq X19yZXN0cmljdCBfX3RpbWVyLAo+ID4+PiAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYp IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpfX3R6bmFtZVsyXTsKPiA+Pj4gZXh0ZXJuIGlu dCBfX2RheWxpZ2h0Owo+ID4+PiBleHRlcm4gbG9uZyBpbnQgX190aW1lem9uZTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKnR6bmFtZVsyXTsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgdHpzZXQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQg ZGF5bGlnaHQ7Cj4gPj4+IGV4dGVybiBsb25nIGludCB0aW1lem9uZTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzdGltZSAoY29uc3QgdGltZV90ICpfX3do ZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMzE5 ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQKPiA+Pj4gZXh0ZXJuIHRpbWVfdCB0aW1lZ20gKHN0 cnVjdCB0bSAqX190cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHRpbWVfdCB0aW1lbG9jYWwgKHN0cnVjdCB0bSAqX190 cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBkeXNpemUgKGludCBfX3llYXIpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+PiAj IDMzNCAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgbmFub3NsZWVw IChjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVxdWVzdGVkX3RpbWUsCj4gPj4+ICAgICAgICAg c3RydWN0IHRpbWVzcGVjICpfX3JlbWFpbmluZyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4 dGVybiBpbnQgY2xvY2tfZ2V0cmVzIChjbG9ja2lkX3QgX19jbG9ja19pZCwgc3RydWN0IHRpbWVz cGVjICpfX3JlcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBjbG9ja19nZXR0aW1lIChjbG9ja2lkX3QgX19jbG9j a19pZCwgc3RydWN0IHRpbWVzcGVjICpfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGNsb2NrX3NldHRpbWUg KGNsb2NraWRfdCBfX2Nsb2NrX2lkLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fdHApCj4gPj4+ ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBjbG9ja19uYW5vc2xl ZXAgKGNsb2NraWRfdCBfX2Nsb2NrX2lkLCBpbnQgX19mbGFncywKPiA+Pj4gICAgICAgIGNvbnN0 IHN0cnVjdCB0aW1lc3BlYyAqX19yZXEsCj4gPj4+ICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKl9f cmVtKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBjbG9ja19nZXRjcHVjbG9ja2lkIChw aWRfdCBfX3BpZCwgY2xvY2tpZF90ICpfX2Nsb2NrX2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g aW50IHRpbWVyX2NyZWF0ZSAoY2xvY2tpZF90IF9fY2xvY2tfaWQsCj4gPj4+ICAgICBzdHJ1Y3Qg c2lnZXZlbnQgKl9fcmVzdHJpY3QgX19ldnAsCj4gPj4+ICAgICB0aW1lcl90ICpfX3Jlc3RyaWN0 IF9fdGltZXJpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB0aW1lcl9kZWxldGUgKHRpbWVyX3QgX190aW1lcmlk KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gaW50IHRpbWVyX3NldHRpbWUgKHRpbWVyX3QgX190aW1lcmlkLCBpbnQgX19m bGFncywKPiA+Pj4gICAgICBjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYyAqX19yZXN0cmljdCBfX3Zh bHVlLAo+ID4+PiAgICAgIHN0cnVjdCBpdGltZXJzcGVjICpfX3Jlc3RyaWN0IF9fb3ZhbHVlKSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gaW50IHRpbWVyX2dldHRpbWUgKHRpbWVyX3QgX190aW1lcmlkLCBzdHJ1Y3QgaXRp bWVyc3BlYyAqX192YWx1ZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHRpbWVyX2dldG92ZXJy dW4gKHRpbWVyX3QgX190aW1lcmlkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHRp bWVzcGVjX2dldCAoc3RydWN0IHRpbWVzcGVjICpfX3RzLCBpbnQgX19iYXNlKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+PiAjIDQzMCAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0 Cj4gPj4+Cj4gPj4+ICMgNDcgIm1hY2hpbmUuYyIgMgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5j bHVkZS9zeXMvc3RhdC5oIiAxIDMgNAo+ID4+PiAjIDEwMiAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0 LmgiIDMgNAo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3N0YXQuaCIg MSAzIDQKPiA+Pj4gIyAxMDUgIi91c3IvaW5jbHVkZS9zeXMvc3RhdC5oIiAyIDMgNAo+ID4+PiAj IDIwOCAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHN0YXQg KGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlLAo+ID4+PiAgICBzdHJ1Y3Qgc3RhdCAqX19y ZXN0cmljdCBfX2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgZnN0YXQgKGludCBfX2ZkLCBzdHJ1Y3Qgc3RhdCAqX19idWYpIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u bnVsbF9fICgyKSkpOwo+ID4+PiAjIDIzNyAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAo+ ID4+PiBleHRlcm4gaW50IGZzdGF0YXQgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0 IF9fZmlsZSwKPiA+Pj4gICAgICAgc3RydWN0IHN0YXQgKl9fcmVzdHJpY3QgX19idWYsIGludCBf X2ZsYWcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDMpKSk7Cj4gPj4+ICMgMjYyICIvdXNy L2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgbHN0YXQgKGNvbnN0IGNo YXIgKl9fcmVzdHJpY3QgX19maWxlLAo+ID4+PiAgICAgc3RydWN0IHN0YXQgKl9fcmVzdHJpY3Qg X19idWYpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+PiAjIDI4MyAiL3Vzci9pbmNsdWRlL3N5 cy9zdGF0LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGNobW9kIChjb25zdCBjaGFyICpfX2ZpbGUs IF9fbW9kZV90IF9fbW9kZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBsY2htb2QgKGNvbnN0IGNoYXIg Kl9fZmlsZSwgX19tb2RlX3QgX19tb2RlKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZjaG1vZCAoaW50IF9fZmQs IF9fbW9kZV90IF9fbW9kZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBmY2htb2Rh dCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fZmlsZSwgX19tb2RlX3QgX19tb2RlLAo+ID4+PiAg ICAgICAgaW50IF9fZmxhZykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKSA7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX21vZGVfdCB1bWFzayAo X19tb2RlX3QgX19tYXNrKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp Owo+ID4+PiAjIDMyMCAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAo+ID4+PiBleHRlcm4g aW50IG1rZGlyIChjb25zdCBjaGFyICpfX3BhdGgsIF9fbW9kZV90IF9fbW9kZSkKPiA+Pj4gICAg ICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g KChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGludCBta2RpcmF0IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19wYXRoLCBfX21vZGVf dCBfX21vZGUpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbWtub2QgKGNvbnN0IGNoYXIgKl9f cGF0aCwgX19tb2RlX3QgX19tb2RlLCBfX2Rldl90IF9fZGV2KQo+ID4+PiAgICAgIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs bF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IG1rbm9kYXQgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX3BhdGgsIF9fbW9kZV90IF9fbW9kZSwK PiA+Pj4gICAgICAgX19kZXZfdCBfX2RldikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbWtmaWZvIChjb25zdCBjaGFyICpf X3BhdGgsIF9fbW9kZV90IF9fbW9kZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBta2ZpZm9hdCAoaW50 IF9fZmQsIGNvbnN0IGNoYXIgKl9fcGF0aCwgX19tb2RlX3QgX19tb2RlKQo+ID4+PiAgICAgIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f bm9ubnVsbF9fICgyKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gaW50IHV0aW1lbnNhdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcGF0aCwKPiA+Pj4gICAg ICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgX190aW1lc1syXSwKPiA+Pj4gICAgICAgICBpbnQg X19mbGFncykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBmdXRpbWVucyAoaW50IF9fZmQsIGNvbnN0IHN0cnVjdCB0 aW1lc3BlYyBfX3RpbWVzWzJdKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpOwo+ID4+PiAjIDM5OCAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAo+ID4+PiBleHRl cm4gaW50IF9fZnhzdGF0IChpbnQgX192ZXIsIGludCBfX2ZpbGRlcywgc3RydWN0IHN0YXQgKl9f c3RhdF9idWYpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMpKSk7Cj4gPj4+IGV4dGVybiBpbnQg X194c3RhdCAoaW50IF9fdmVyLCBjb25zdCBjaGFyICpfX2ZpbGVuYW1lLAo+ID4+PiAgICAgICBz dHJ1Y3Qgc3RhdCAqX19zdGF0X2J1ZikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDMpKSk7Cj4gPj4+IGV4dGVy biBpbnQgX19seHN0YXQgKGludCBfX3ZlciwgY29uc3QgY2hhciAqX19maWxlbmFtZSwKPiA+Pj4g ICAgICAgIHN0cnVjdCBzdGF0ICpfX3N0YXRfYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsKPiA+ Pj4gZXh0ZXJuIGludCBfX2Z4c3RhdGF0IChpbnQgX192ZXIsIGludCBfX2ZpbGRlcywgY29uc3Qg Y2hhciAqX19maWxlbmFtZSwKPiA+Pj4gICAgICAgICAgc3RydWN0IHN0YXQgKl9fc3RhdF9idWYs IGludCBfX2ZsYWcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQpKSk7Cj4gPj4+ICMgNDQx ICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgX194bWtub2Qg KGludCBfX3ZlciwgY29uc3QgY2hhciAqX19wYXRoLCBfX21vZGVfdCBfX21vZGUsCj4gPj4+ICAg ICAgICBfX2Rldl90ICpfX2RldikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDQpKSk7Cj4gPj4+Cj4gPj4+IGV4 dGVybiBpbnQgX194bWtub2RhdCAoaW50IF9fdmVyLCBpbnQgX19mZCwgY29uc3QgY2hhciAqX19w YXRoLAo+ID4+PiAgICAgICAgICBfX21vZGVfdCBfX21vZGUsIF9fZGV2X3QgKl9fZGV2KQo+ID4+ PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA1KSkpOwo+ID4+PiAjIDUzMyAiL3Vzci9pbmNsdWRlL3N5 cy9zdGF0LmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDQ5ICJtYWNoaW5lLmMiIDIKPiA+Pj4KPiA+Pj4g IyAxICJncF9jb25maWcuaCIgMQo+ID4+PiAjIDMyNyAiZ3BfY29uZmlnLmgiCj4gPj4+ICMgMSAi YXJjaF9kZXAuaCIgMQo+ID4+PiAjIDMyOCAiZ3BfY29uZmlnLmgiIDIKPiA+Pj4gIyAxICJwbF9s b25nLmgiIDEKPiA+Pj4gIyA0MSAicGxfbG9uZy5oIgo+ID4+PiAjIDEgIi91c3IvbGliL2djYy9p Njg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGludC5oIiAxIDMgNAo+ID4+PiAjIDkg Ii91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGludC5oIiAz IDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3RkaW50LmgiIDEgMyA0Cj4gPj4+ICMgMjYgIi91 c3IvaW5jbHVkZS9zdGRpbnQuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd2No YXIuaCIgMSAzIDQKPiA+Pj4gIyAyNyAiL3Vzci9pbmNsdWRlL3N0ZGludC5oIiAyIDMgNAo+ID4+ PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3dvcmRzaXplLmgiIDEgMyA0Cj4gPj4+ICMgMjggIi91 c3IvaW5jbHVkZS9zdGRpbnQuaCIgMiAzIDQKPiA+Pj4gIyA0OCAiL3Vzci9pbmNsdWRlL3N0ZGlu dC5oIiAzIDQKPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVpbnQ4X3Q7Cj4gPj4+IHR5cGVk ZWYgdW5zaWduZWQgc2hvcnQgaW50IHVpbnQxNl90Owo+ID4+Pgo+ID4+PiB0eXBlZGVmIHVuc2ln bmVkIGludCB1aW50MzJfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gX19l eHRlbnNpb25fXwo+ID4+PiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWludDY0X3Q7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgc2lnbmVk IGNoYXIgaW50X2xlYXN0OF90Owo+ID4+PiB0eXBlZGVmIHNob3J0IGludCBpbnRfbGVhc3QxNl90 Owo+ID4+PiB0eXBlZGVmIGludCBpbnRfbGVhc3QzMl90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBfX2V4dGVuc2lvbl9fCj4gPj4+IHR5cGVkZWYgbG9uZyBsb25nIGludCBpbnRfbGVhc3Q2NF90 Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWludF9sZWFz dDhfdDsKPiA+Pj4gdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgdWludF9sZWFzdDE2X3Q7Cj4g Pj4+IHR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnRfbGVhc3QzMl90Owo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiBfX2V4dGVuc2lvbl9fCj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGlu dCB1aW50X2xlYXN0NjRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gdHlwZWRlZiBzaWduZWQgY2hhciBpbnRfZmFzdDhfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBpbnQgaW50X2Zhc3QxNl90Owo+ID4+PiB0eXBlZGVmIGlu dCBpbnRfZmFzdDMyX3Q7Cj4gPj4+IF9fZXh0ZW5zaW9uX18KPiA+Pj4gdHlwZWRlZiBsb25nIGxv bmcgaW50IGludF9mYXN0NjRfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1bnNp Z25lZCBjaGFyIHVpbnRfZmFzdDhfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludF9mYXN0MTZfdDsKPiA+Pj4gdHlwZWRlZiB1bnNp Z25lZCBpbnQgdWludF9mYXN0MzJfdDsKPiA+Pj4gX19leHRlbnNpb25fXwo+ID4+PiB0eXBlZGVm IHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWludF9mYXN0NjRfdDsKPiA+Pj4gIyAxMjUgIi91c3Iv aW5jbHVkZS9zdGRpbnQuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgaW50IGludHB0cl90Owo+ID4+Pgo+ ID4+Pgo+ID4+PiB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50cHRyX3Q7Cj4gPj4+ICMgMTM3ICIv dXNyL2luY2x1ZGUvc3RkaW50LmgiIDMgNAo+ID4+PiBfX2V4dGVuc2lvbl9fCj4gPj4+IHR5cGVk ZWYgbG9uZyBsb25nIGludCBpbnRtYXhfdDsKPiA+Pj4gX19leHRlbnNpb25fXwo+ID4+PiB0eXBl ZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWludG1heF90Owo+ID4+PiAjIDEwICIvdXNyL2xp Yi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRpbnQuaCIgMiAzIDQKPiA+ Pj4gIyA0MiAicGxfbG9uZy5oIiAyCj4gPj4+Cj4gPj4+ICMgMSAiZ3BfY29uZmlnLmgiIDEKPiA+ Pj4gIyA0NCAicGxfbG9uZy5oIiAyCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgNDcg InBsX2xvbmcuaCIKPiA+Pj4gdHlwZWRlZiBpbnRwdHJfdCBQbExvbmc7Cj4gPj4+IHR5cGVkZWYg dWludHB0cl90IFBsVUxvbmc7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNs dWRlL2ludHR5cGVzLmgiIDEgMyA0Cj4gPj4+ICMgMzQgIi91c3IvaW5jbHVkZS9pbnR0eXBlcy5o IiAzIDQKPiA+Pj4KPiA+Pj4gIyAzNCAiL3Vzci9pbmNsdWRlL2ludHR5cGVzLmgiIDMgNAo+ID4+ PiB0eXBlZGVmIGxvbmcgaW50IF9fZ3djaGFyX3Q7Cj4gPj4+ICMgMjY2ICIvdXNyL2luY2x1ZGUv aW50dHlwZXMuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjgwICIvdXNyL2luY2x1ZGUvaW50dHlwZXMu aCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+ICAgewo+ID4+PiAgICAgX19leHRlbnNp b25fXyBsb25nIGxvbmcgaW50IHF1b3Q7Cj4gPj4+ICAgICBfX2V4dGVuc2lvbl9fIGxvbmcgbG9u ZyBpbnQgcmVtOwo+ID4+PiAgIH0gaW1heGRpdl90Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gaW50bWF4X3QgaW1heGFicyAoaW50bWF4X3QgX19uKSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0 X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGltYXhkaXZfdCBpbWF4ZGl2IChpbnRtYXhf dCBfX251bWVyLCBpbnRtYXhfdCBfX2Rlbm9tKQo+ID4+PiAgICAgICBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludG1heF90IHN0cnRvaW1heCAoY29uc3QgY2hhciAqX19y ZXN0cmljdCBfX25wdHIsCj4gPj4+ICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBp bnQgX19iYXNlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdWludG1heF90IHN0cnRvdW1heCAoY29uc3QgY2hhciAqX19y ZXN0cmljdCBfX25wdHIsCj4gPj4+ICAgICAgICBjaGFyICoqIF9fcmVzdHJpY3QgX19lbmRwdHIs IGludCBfX2Jhc2UpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnRtYXhfdCB3Y3N0b2ltYXggKGNvbnN0IF9fZ3djaGFy X3QgKl9fcmVzdHJpY3QgX19ucHRyLAo+ID4+PiAgICAgICBfX2d3Y2hhcl90ICoqX19yZXN0cmlj dCBfX2VuZHB0ciwgaW50IF9fYmFzZSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro cm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdWludG1heF90IHdj c3RvdW1heCAoY29uc3QgX19nd2NoYXJfdCAqX19yZXN0cmljdCBfX25wdHIsCj4gPj4+ICAgICAg ICBfX2d3Y2hhcl90ICoqIF9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCj4gPj4+ICAg ICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyA0MzIg Ii91c3IvaW5jbHVkZS9pbnR0eXBlcy5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyA1MyAicGxfbG9uZy5o IiAyCj4gPj4+ICMgMzI5ICJncF9jb25maWcuaCIgMgo+ID4+PiAjIDUxICJtYWNoaW5lLmMiIDIK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1 ZGUvcHdkLmgiIDEgMyA0Cj4gPj4+ICMgMjcgIi91c3IvaW5jbHVkZS9wd2QuaCIgMyA0Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVk aGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMzMgIi91c3Iv aW5jbHVkZS9wd2QuaCIgMiAzIDQKPiA+Pj4gIyA0OSAiL3Vzci9pbmNsdWRlL3B3ZC5oIiAzIDQK PiA+Pj4gc3RydWN0IHBhc3N3ZAo+ID4+PiB7Cj4gPj4+ICAgY2hhciAqcHdfbmFtZTsKPiA+Pj4g ICBjaGFyICpwd19wYXNzd2Q7Cj4gPj4+ICAgX191aWRfdCBwd191aWQ7Cj4gPj4+ICAgX19naWRf dCBwd19naWQ7Cj4gPj4+ICAgY2hhciAqcHdfZ2Vjb3M7Cj4gPj4+ICAgY2hhciAqcHdfZGlyOwo+ ID4+PiAgIGNoYXIgKnB3X3NoZWxsOwo+ID4+PiB9Owo+ID4+PiAjIDcyICIvdXNyL2luY2x1ZGUv cHdkLmgiIDMgNAo+ID4+PiBleHRlcm4gdm9pZCBzZXRwd2VudCAodm9pZCk7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIGVuZHB3ZW50ICh2b2lkKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCBwYXNzd2QgKmdl dHB3ZW50ICh2b2lkKTsKPiA+Pj4gIyA5NCAiL3Vzci9pbmNsdWRlL3B3ZC5oIiAzIDQKPiA+Pj4g ZXh0ZXJuIHN0cnVjdCBwYXNzd2QgKmZnZXRwd2VudCAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmli dXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBwdXRwd2VudCAoY29uc3Qgc3RydWN0IHBhc3N3 ZCAqX19yZXN0cmljdCBfX3AsCj4gPj4+ICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fZik7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgcGFz c3dkICpnZXRwd3VpZCAoX191aWRfdCBfX3VpZCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgcGFzc3dkICpnZXRwd25hbSAoY29uc3QgY2hhciAqX19u YW1lKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ICMgMTM5ICIvdXNy L2luY2x1ZGUvcHdkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGdldHB3ZW50X3IgKHN0cnVjdCBw YXNzd2QgKl9fcmVzdHJpY3QgX19yZXN1bHRidWYsCj4gPj4+ICAgICAgICAgIGNoYXIgKl9fcmVz dHJpY3QgX19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKPiA+Pj4gICAgICAgICAgc3RydWN0IHBh c3N3ZCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpCj4gPj4+ICAgICAgICAgIF9fYXR0cmlidXRlX18g KChfX25vbm51bGxfXyAoMSwgMiwgNCkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBn ZXRwd3VpZF9yIChfX3VpZF90IF9fdWlkLAo+ID4+PiAgICAgICAgICBzdHJ1Y3QgcGFzc3dkICpf X3Jlc3RyaWN0IF9fcmVzdWx0YnVmLAo+ID4+PiAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9f YnVmZmVyLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICAgICAgIHN0cnVjdCBwYXNzd2QgKipf X3Jlc3RyaWN0IF9fcmVzdWx0KQo+ID4+PiAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub25u dWxsX18gKDIsIDMsIDUpKSk7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZ2V0cHduYW1fciAoY29u c3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gPj4+ICAgICAgICAgIHN0cnVjdCBwYXNzd2Qg Kl9fcmVzdHJpY3QgX19yZXN1bHRidWYsCj4gPj4+ICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3Qg X19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKPiA+Pj4gICAgICAgICAgc3RydWN0IHBhc3N3ZCAq Kl9fcmVzdHJpY3QgX19yZXN1bHQpCj4gPj4+ICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSwgMiwgMywgNSkpKTsKPiA+Pj4gIyAxNjYgIi91c3IvaW5jbHVkZS9wd2QuaCIg MyA0Cj4gPj4+IGV4dGVybiBpbnQgZmdldHB3ZW50X3IgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJl YW0sCj4gPj4+ICAgIHN0cnVjdCBwYXNzd2QgKl9fcmVzdHJpY3QgX19yZXN1bHRidWYsCj4gPj4+ ICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKPiA+Pj4gICAg c3RydWN0IHBhc3N3ZCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpCj4gPj4+ICAgIF9fYXR0cmlidXRl X18gKChfX25vbm51bGxfXyAoMSwgMiwgMywgNSkpKTsKPiA+Pj4gIyAxODcgIi91c3IvaW5jbHVk ZS9wd2QuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgNTggIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEgIi91 c3IvaW5jbHVkZS91bmlzdGQuaCIgMSAzIDQKPiA+Pj4gIyAyNyAiL3Vzci9pbmNsdWRlL3VuaXN0 ZC5oIiAzIDQKPiA+Pj4KPiA+Pj4gIyAyMDUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4g Pj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvcG9zaXhfb3B0LmgiIDEgMyA0Cj4gPj4+ICMgMjA2 ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMg MSAiL3Vzci9pbmNsdWRlL2JpdHMvZW52aXJvbm1lbnRzLmgiIDEgMyA0Cj4gPj4+ICMgMjIgIi91 c3IvaW5jbHVkZS9iaXRzL2Vudmlyb25tZW50cy5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1 ZGUvYml0cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ID4+PiAjIDIzICIvdXNyL2luY2x1ZGUvYml0cy9l bnZpcm9ubWVudHMuaCIgMiAzIDQKPiA+Pj4gIyAyMTAgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIg MiAzIDQKPiA+Pj4gIyAyMjkgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gPj4+ICMgMSAi L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEg MyA0Cj4gPj4+ICMgMjMwICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMyA0Cj4gPj4+ICMgMjU4 ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiB0eXBlZGVmIF9fdXNlY29uZHNfdCB1 c2Vjb25kc190Owo+ID4+PiAjIDI3NyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+Pj4g dHlwZWRlZiBfX3NvY2tsZW5fdCBzb2NrbGVuX3Q7Cj4gPj4+ICMgMjkwICIvdXNyL2luY2x1ZGUv dW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGFjY2VzcyAoY29uc3QgY2hhciAqX19uYW1l LCBpbnQgX190eXBlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4gIyAzMDcgIi91c3IvaW5jbHVk ZS91bmlzdGQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZmFjY2Vzc2F0IChpbnQgX19mZCwgY29u c3QgY2hhciAqX19maWxlLCBpbnQgX190eXBlLCBpbnQgX19mbGFnKQo+ID4+PiAgICAgIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u bnVsbF9fICgyKSkpIDsKPiA+Pj4gIyAzMzcgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4g Pj4+IGV4dGVybiBfX29mZl90IGxzZWVrIChpbnQgX19mZCwgX19vZmZfdCBfX29mZnNldCwgaW50 IF9fd2hlbmNlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+ PiAjIDM1NiAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBjbG9z ZSAoaW50IF9fZmQpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gc3NpemVfdCByZWFkIChpbnQgX19mZCwgdm9pZCAqX19idWYsIHNpemVfdCBfX25ieXRl cykgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3NpemVfdCB3 cml0ZSAoaW50IF9fZmQsIGNvbnN0IHZvaWQgKl9fYnVmLCBzaXplX3QgX19uKSA7Cj4gPj4+ICMg Mzc5ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gc3NpemVfdCBwcmVh ZCAoaW50IF9fZmQsIHZvaWQgKl9fYnVmLCBzaXplX3QgX19uYnl0ZXMsCj4gPj4+ICAgICAgICAg X19vZmZfdCBfX29mZnNldCkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gc3NpemVfdCBwd3JpdGUgKGludCBfX2ZkLCBjb25zdCB2b2lkICpfX2J1Ziwg c2l6ZV90IF9fbiwKPiA+Pj4gICAgICAgICAgX19vZmZfdCBfX29mZnNldCkgOwo+ID4+PiAjIDQy MCAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBwaXBlIChpbnQg X19waXBlZGVzWzJdKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsK PiA+Pj4gIyA0MzUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gPj4+IGV4dGVybiB1bnNp Z25lZCBpbnQgYWxhcm0gKHVuc2lnbmVkIGludCBfX3NlY29uZHMpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgNDQ3ICIvdXNyL2luY2x1ZGUvdW5pc3Rk LmgiIDMgNAo+ID4+PiBleHRlcm4gdW5zaWduZWQgaW50IHNsZWVwICh1bnNpZ25lZCBpbnQgX19z ZWNvbmRzKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIF9fdXNlY29uZHNfdCB1YWxhcm0gKF9fdXNlY29uZHNfdCBfX3ZhbHVlLCBfX3VzZWNv bmRzX3QgX19pbnRlcnZhbCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gaW50IHVzbGVlcCAoX191c2Vjb25kc190IF9fdXNlY29uZHMpOwo+ID4+PiAjIDQ3MiAi L3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBwYXVzZSAodm9pZCk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgY2hvd24gKGNvbnN0IGNoYXIgKl9f ZmlsZSwgX191aWRfdCBfX293bmVyLCBfX2dpZF90IF9fZ3JvdXApCj4gPj4+ICAgICAgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u dWxsX18gKDEpKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZjaG93biAo aW50IF9fZmQsIF9fdWlkX3QgX19vd25lciwgX19naWRfdCBfX2dyb3VwKSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBsY2hvd24gKGNvbnN0IGNoYXIgKl9fZmlsZSwgX191aWRfdCBfX293bmVy LCBfX2dpZF90IF9fZ3JvdXApCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZjaG93bmF0IChp bnQgX19mZCwgY29uc3QgY2hhciAqX19maWxlLCBfX3VpZF90IF9fb3duZXIsCj4gPj4+ICAgICAg ICBfX2dpZF90IF9fZ3JvdXAsIGludCBfX2ZsYWcpCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIp KSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGNoZGlyIChjb25zdCBjaGFy ICpfX3BhdGgpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIGludCBmY2hkaXIgKGludCBfX2ZkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpIDsKPiA+Pj4gIyA1MTQgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gPj4+ IGV4dGVybiBjaGFyICpnZXRjd2QgKGNoYXIgKl9fYnVmLCBzaXplX3QgX19zaXplKSBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4gIyA1MjggIi91c3IvaW5j bHVkZS91bmlzdGQuaCIgMyA0Cj4gPj4+IGV4dGVybiBjaGFyICpnZXR3ZCAoY2hhciAqX19idWYp Cj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0 dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRl ZF9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGR1cCAoaW50 IF9fZmQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gaW50IGR1cDIgKGludCBfX2ZkLCBpbnQgX19mZDIpIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgNTQ2ICIvdXNyL2luY2x1 ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gY2hhciAqKl9fZW52aXJvbjsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBleGVjdmUg KGNvbnN0IGNoYXIgKl9fcGF0aCwgY2hhciAqY29uc3QgX19hcmd2W10sCj4gPj4+ICAgICAgY2hh ciAqY29uc3QgX19lbnZwW10pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZleGVjdmUgKGludCBfX2ZkLCBjaGFyICpjb25zdCBf X2FyZ3ZbXSwgY2hhciAqY29uc3QgX19lbnZwW10pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIp KSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZXhlY3YgKGNvbnN0 IGNoYXIgKl9fcGF0aCwgY2hhciAqY29uc3QgX19hcmd2W10pCj4gPj4+ICAgICAgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs X18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZXhlY2xlIChj b25zdCBjaGFyICpfX3BhdGgsIGNvbnN0IGNoYXIgKl9fYXJnLCAuLi4pCj4gPj4+ICAgICAgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19u b25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZXhl Y2wgKGNvbnN0IGNoYXIgKl9fcGF0aCwgY29uc3QgY2hhciAqX19hcmcsIC4uLikKPiA+Pj4gICAg ICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g KChfX25vbm51bGxfXyAoMSwgMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCBleGVjdnAgKGNvbnN0IGNoYXIgKl9fZmlsZSwgY2hhciAqY29uc3QgX19hcmd2W10pCj4gPj4+ ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0 ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgZXhlY2xwIChjb25zdCBjaGFyICpfX2ZpbGUsIGNvbnN0IGNoYXIgKl9fYXJn LCAuLi4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gPj4+ICMgNjAxICIvdXNy L2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IG5pY2UgKGludCBfX2luYykg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIF9leGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmli dXRlX18gKChfX25vcmV0dXJuX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9jb25mbmFtZS5oIiAxIDMgNAo+ID4+PiAjIDI0ICIv dXNyL2luY2x1ZGUvYml0cy9jb25mbmFtZS5oIiAzIDQKPiA+Pj4gZW51bQo+ID4+PiAgIHsKPiA+ Pj4gICAgIF9QQ19MSU5LX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9QQ19NQVhfQ0FOT04sCj4gPj4+ Cj4gPj4+ICAgICBfUENfTUFYX0lOUFVULAo+ID4+Pgo+ID4+PiAgICAgX1BDX05BTUVfTUFYLAo+ ID4+Pgo+ID4+PiAgICAgX1BDX1BBVEhfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1BDX1BJUEVfQlVG LAo+ID4+Pgo+ID4+PiAgICAgX1BDX0NIT1dOX1JFU1RSSUNURUQsCj4gPj4+Cj4gPj4+ICAgICBf UENfTk9fVFJVTkMsCj4gPj4+Cj4gPj4+ICAgICBfUENfVkRJU0FCTEUsCj4gPj4+Cj4gPj4+ICAg ICBfUENfU1lOQ19JTywKPiA+Pj4KPiA+Pj4gICAgIF9QQ19BU1lOQ19JTywKPiA+Pj4KPiA+Pj4g ICAgIF9QQ19QUklPX0lPLAo+ID4+Pgo+ID4+PiAgICAgX1BDX1NPQ0tfTUFYQlVGLAo+ID4+Pgo+ ID4+PiAgICAgX1BDX0ZJTEVTSVpFQklUUywKPiA+Pj4KPiA+Pj4gICAgIF9QQ19SRUNfSU5DUl9Y RkVSX1NJWkUsCj4gPj4+Cj4gPj4+ICAgICBfUENfUkVDX01BWF9YRkVSX1NJWkUsCj4gPj4+Cj4g Pj4+ICAgICBfUENfUkVDX01JTl9YRkVSX1NJWkUsCj4gPj4+Cj4gPj4+ICAgICBfUENfUkVDX1hG RVJfQUxJR04sCj4gPj4+Cj4gPj4+ICAgICBfUENfQUxMT0NfU0laRV9NSU4sCj4gPj4+Cj4gPj4+ ICAgICBfUENfU1lNTElOS19NQVgsCj4gPj4+Cj4gPj4+ICAgICBfUENfMl9TWU1MSU5LUwo+ID4+ Pgo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gICB7Cj4gPj4+ICAgICBf U0NfQVJHX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19DSElMRF9NQVgsCj4gPj4+Cj4gPj4+ICAg ICBfU0NfQ0xLX1RDSywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19OR1JPVVBTX01BWCwKPiA+Pj4KPiA+ Pj4gICAgIF9TQ19PUEVOX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TVFJFQU1fTUFYLAo+ID4+ Pgo+ID4+PiAgICAgX1NDX1RaTkFNRV9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfSk9CX0NPTlRS T0wsCj4gPj4+Cj4gPj4+ICAgICBfU0NfU0FWRURfSURTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1JF QUxUSU1FX1NJR05BTFMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfUFJJT1JJVFlfU0NIRURVTElORywK PiA+Pj4KPiA+Pj4gICAgIF9TQ19USU1FUlMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfQVNZTkNIUk9O T1VTX0lPLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BSSU9SSVRJWkVEX0lPLAo+ID4+Pgo+ID4+PiAg ICAgX1NDX1NZTkNIUk9OSVpFRF9JTywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19GU1lOQywKPiA+Pj4K PiA+Pj4gICAgIF9TQ19NQVBQRURfRklMRVMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTUVNTE9DSywK PiA+Pj4KPiA+Pj4gICAgIF9TQ19NRU1MT0NLX1JBTkdFLAo+ID4+Pgo+ID4+PiAgICAgX1NDX01F TU9SWV9QUk9URUNUSU9OLAo+ID4+Pgo+ID4+PiAgICAgX1NDX01FU1NBR0VfUEFTU0lORywKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19TRU1BUEhPUkVTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NIQVJFRF9N RU1PUllfT0JKRUNUUywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19BSU9fTElTVElPX01BWCwKPiA+Pj4K PiA+Pj4gICAgIF9TQ19BSU9fTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0FJT19QUklPX0RFTFRB X01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19ERUxBWVRJTUVSX01BWCwKPiA+Pj4KPiA+Pj4gICAg IF9TQ19NUV9PUEVOX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19NUV9QUklPX01BWCwKPiA+Pj4K PiA+Pj4gICAgIF9TQ19WRVJTSU9OLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BBR0VTSVpFLAo+ID4+ Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1JUU0lHX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TRU1f TlNFTVNfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NFTV9WQUxVRV9NQVgsCj4gPj4+Cj4gPj4+ ICAgICBfU0NfU0lHUVVFVUVfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1RJTUVSX01BWCwKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9TQ19CQ19CQVNFX01BWCwKPiA+Pj4KPiA+ Pj4gICAgIF9TQ19CQ19ESU1fTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0JDX1NDQUxFX01BWCwK PiA+Pj4KPiA+Pj4gICAgIF9TQ19CQ19TVFJJTkdfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0NP TExfV0VJR0hUU19NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfRVFVSVZfQ0xBU1NfTUFYLAo+ID4+ Pgo+ID4+PiAgICAgX1NDX0VYUFJfTkVTVF9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTElORV9N QVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfUkVfRFVQX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19D SEFSQ0xBU1NfTkFNRV9NQVgsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9WRVJTSU9OLAo+ ID4+Pgo+ID4+PiAgICAgX1NDXzJfQ19CSU5ELAo+ID4+Pgo+ID4+PiAgICAgX1NDXzJfQ19ERVYs Cj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9GT1JUX0RFViwKPiA+Pj4KPiA+Pj4gICAgIF9TQ18yX0ZP UlRfUlVOLAo+ID4+Pgo+ID4+PiAgICAgX1NDXzJfU1dfREVWLAo+ID4+Pgo+ID4+PiAgICAgX1ND XzJfTE9DQUxFREVGLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1BJSSwKPiA+Pj4KPiA+Pj4g ICAgIF9TQ19QSUlfWFRJLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BJSV9TT0NLRVQsCj4gPj4+Cj4g Pj4+ICAgICBfU0NfUElJX0lOVEVSTkVULAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BJSV9PU0ksCj4g Pj4+Cj4gPj4+ICAgICBfU0NfUE9MTCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TRUxFQ1QsCj4gPj4+ Cj4gPj4+ICAgICBfU0NfVUlPX01BWElPViwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19JT1ZfTUFYID0g X1NDX1VJT19NQVhJT1YsCj4gPj4+Cj4gPj4+ICAgICBfU0NfUElJX0lOVEVSTkVUX1NUUkVBTSwK PiA+Pj4KPiA+Pj4gICAgIF9TQ19QSUlfSU5URVJORVRfREdSQU0sCj4gPj4+Cj4gPj4+ICAgICBf U0NfUElJX09TSV9DT1RTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BJSV9PU0lfQ0xUUywKPiA+Pj4K PiA+Pj4gICAgIF9TQ19QSUlfT1NJX00sCj4gPj4+Cj4gPj4+ICAgICBfU0NfVF9JT1ZfTUFYLAo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1RIUkVBRFMsCj4gPj4+Cj4gPj4+ICAgICBf U0NfVEhSRUFEX1NBRkVfRlVOQ1RJT05TLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0dFVEdSX1JfU0la RV9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfR0VUUFdfUl9TSVpFX01BWCwKPiA+Pj4KPiA+Pj4g ICAgIF9TQ19MT0dJTl9OQU1FX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19UVFlfTkFNRV9NQVgs Cj4gPj4+Cj4gPj4+ICAgICBfU0NfVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUywKPiA+Pj4K PiA+Pj4gICAgIF9TQ19USFJFQURfS0VZU19NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVEhSRUFE X1NUQUNLX01JTiwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19USFJFQURfVEhSRUFEU19NQVgsCj4gPj4+ Cj4gPj4+ICAgICBfU0NfVEhSRUFEX0FUVFJfU1RBQ0tBRERSLAo+ID4+Pgo+ID4+PiAgICAgX1ND X1RIUkVBRF9BVFRSX1NUQUNLU0laRSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19USFJFQURfUFJJT1JJ VFlfU0NIRURVTElORywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19USFJFQURfUFJJT19JTkhFUklULAo+ ID4+Pgo+ID4+PiAgICAgX1NDX1RIUkVBRF9QUklPX1BST1RFQ1QsCj4gPj4+Cj4gPj4+ICAgICBf U0NfVEhSRUFEX1BST0NFU1NfU0hBUkVELAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX05QUk9D RVNTT1JTX0NPTkYsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTlBST0NFU1NPUlNfT05MTiwKPiA+Pj4K PiA+Pj4gICAgIF9TQ19QSFlTX1BBR0VTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0FWUEhZU19QQUdF UywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19BVEVYSVRfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1BB U1NfTUFYLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1hPUEVOX1ZFUlNJT04sCj4gPj4+Cj4g Pj4+ICAgICBfU0NfWE9QRU5fWENVX1ZFUlNJT04sCj4gPj4+Cj4gPj4+ICAgICBfU0NfWE9QRU5f VU5JWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19YT1BFTl9DUllQVCwKPiA+Pj4KPiA+Pj4gICAgIF9T Q19YT1BFTl9FTkhfSTE4TiwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19YT1BFTl9TSE0sCj4gPj4+Cj4g Pj4+Cj4gPj4+ICAgICBfU0NfMl9DSEFSX1RFUk0sCj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9DX1ZF UlNJT04sCj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9VUEUsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBf U0NfWE9QRU5fWFBHMiwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19YT1BFTl9YUEczLAo+ID4+Pgo+ID4+ PiAgICAgX1NDX1hPUEVOX1hQRzQsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfQ0hBUl9CSVQs Cj4gPj4+Cj4gPj4+ICAgICBfU0NfQ0hBUl9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfQ0hBUl9N SU4sCj4gPj4+Cj4gPj4+ICAgICBfU0NfSU5UX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19JTlRf TUlOLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0xPTkdfQklULAo+ID4+Pgo+ID4+PiAgICAgX1NDX1dP UkRfQklULAo+ID4+Pgo+ID4+PiAgICAgX1NDX01CX0xFTl9NQVgsCj4gPj4+Cj4gPj4+ICAgICBf U0NfTlpFUk8sCj4gPj4+Cj4gPj4+ICAgICBfU0NfU1NJWkVfTUFYLAo+ID4+Pgo+ID4+PiAgICAg X1NDX1NDSEFSX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TQ0hBUl9NSU4sCj4gPj4+Cj4gPj4+ ICAgICBfU0NfU0hSVF9NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfU0hSVF9NSU4sCj4gPj4+Cj4g Pj4+ICAgICBfU0NfVUNIQVJfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1VJTlRfTUFYLAo+ID4+ Pgo+ID4+PiAgICAgX1NDX1VMT05HX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19VU0hSVF9NQVgs Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfTkxfQVJHTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1ND X05MX0xBTkdNQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTkxfTVNHTUFYLAo+ID4+Pgo+ID4+PiAg ICAgX1NDX05MX05NQVgsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTkxfU0VUTUFYLAo+ID4+Pgo+ID4+ PiAgICAgX1NDX05MX1RFWFRNQVgsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfWEJTNV9JTFAz Ml9PRkYzMiwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19YQlM1X0lMUDMyX09GRkJJRywKPiA+Pj4KPiA+ Pj4gICAgIF9TQ19YQlM1X0xQNjRfT0ZGNjQsCj4gPj4+Cj4gPj4+ICAgICBfU0NfWEJTNV9MUEJJ R19PRkZCSUcsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfWE9QRU5fTEVHQUNZLAo+ID4+Pgo+ ID4+PiAgICAgX1NDX1hPUEVOX1JFQUxUSU1FLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1hPUEVOX1JF QUxUSU1FX1RIUkVBRFMsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfQURWSVNPUllfSU5GTywK PiA+Pj4KPiA+Pj4gICAgIF9TQ19CQVJSSUVSUywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19CQVNFLAo+ ID4+Pgo+ID4+PiAgICAgX1NDX0NfTEFOR19TVVBQT1JULAo+ID4+Pgo+ID4+PiAgICAgX1NDX0Nf TEFOR19TVVBQT1JUX1IsCj4gPj4+Cj4gPj4+ICAgICBfU0NfQ0xPQ0tfU0VMRUNUSU9OLAo+ID4+ Pgo+ID4+PiAgICAgX1NDX0NQVVRJTUUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVEhSRUFEX0NQVVRJ TUUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfREVWSUNFX0lPLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0RF VklDRV9TUEVDSUZJQywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19ERVZJQ0VfU1BFQ0lGSUNfUiwKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19GRF9NR01ULAo+ID4+Pgo+ID4+PiAgICAgX1NDX0ZJRk8sCj4gPj4+ Cj4gPj4+ICAgICBfU0NfUElQRSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19GSUxFX0FUVFJJQlVURVMs Cj4gPj4+Cj4gPj4+ICAgICBfU0NfRklMRV9MT0NLSU5HLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0ZJ TEVfU1lTVEVNLAo+ID4+Pgo+ID4+PiAgICAgX1NDX01PTk9UT05JQ19DTE9DSywKPiA+Pj4KPiA+ Pj4gICAgIF9TQ19NVUxUSV9QUk9DRVNTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NJTkdMRV9QUk9D RVNTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX05FVFdPUktJTkcsCj4gPj4+Cj4gPj4+ICAgICBfU0Nf UkVBREVSX1dSSVRFUl9MT0NLUywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TUElOX0xPQ0tTLAo+ID4+ Pgo+ID4+PiAgICAgX1NDX1JFR0VYUCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19SRUdFWF9WRVJTSU9O LAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NIRUxMLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NJR05BTFMs Cj4gPj4+Cj4gPj4+ICAgICBfU0NfU1BBV04sCj4gPj4+Cj4gPj4+ICAgICBfU0NfU1BPUkFESUNf U0VSVkVSLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1RIUkVBRF9TUE9SQURJQ19TRVJWRVIsCj4gPj4+ Cj4gPj4+ICAgICBfU0NfU1lTVEVNX0RBVEFCQVNFLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1NZU1RF TV9EQVRBQkFTRV9SLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1RJTUVPVVRTLAo+ID4+Pgo+ID4+PiAg ICAgX1NDX1RZUEVEX01FTU9SWV9PQkpFQ1RTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1VTRVJfR1JP VVBTLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1VTRVJfR1JPVVBTX1IsCj4gPj4+Cj4gPj4+ICAgICBf U0NfMl9QQlMsCj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9QQlNfQUNDT1VOVElORywKPiA+Pj4KPiA+ Pj4gICAgIF9TQ18yX1BCU19MT0NBVEUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfMl9QQlNfTUVTU0FH RSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ18yX1BCU19UUkFDSywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19T WU1MT09QX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19TVFJFQU1TLAo+ID4+Pgo+ID4+PiAgICAg X1NDXzJfUEJTX0NIRUNLUE9JTlQsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfU0NfVjZfSUxQMzJf T0ZGMzIsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVjZfSUxQMzJfT0ZGQklHLAo+ID4+Pgo+ID4+PiAg ICAgX1NDX1Y2X0xQNjRfT0ZGNjQsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVjZfTFBCSUdfT0ZGQklH LAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX0hPU1RfTkFNRV9NQVgsCj4gPj4+Cj4gPj4+ICAg ICBfU0NfVFJBQ0UsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVFJBQ0VfRVZFTlRfRklMVEVSLAo+ID4+ Pgo+ID4+PiAgICAgX1NDX1RSQUNFX0lOSEVSSVQsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVFJBQ0Vf TE9HLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX0xFVkVMMV9JQ0FDSEVfU0laRSwKPiA+Pj4K PiA+Pj4gICAgIF9TQ19MRVZFTDFfSUNBQ0hFX0FTU09DLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0xF VkVMMV9JQ0FDSEVfTElORVNJWkUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTEVWRUwxX0RDQUNIRV9T SVpFLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0xFVkVMMV9EQ0FDSEVfQVNTT0MsCj4gPj4+Cj4gPj4+ ICAgICBfU0NfTEVWRUwxX0RDQUNIRV9MSU5FU0laRSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19MRVZF TDJfQ0FDSEVfU0laRSwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19MRVZFTDJfQ0FDSEVfQVNTT0MsCj4g Pj4+Cj4gPj4+ICAgICBfU0NfTEVWRUwyX0NBQ0hFX0xJTkVTSVpFLAo+ID4+Pgo+ID4+PiAgICAg X1NDX0xFVkVMM19DQUNIRV9TSVpFLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0xFVkVMM19DQUNIRV9B U1NPQywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19MRVZFTDNfQ0FDSEVfTElORVNJWkUsCj4gPj4+Cj4g Pj4+ICAgICBfU0NfTEVWRUw0X0NBQ0hFX1NJWkUsCj4gPj4+Cj4gPj4+ICAgICBfU0NfTEVWRUw0 X0NBQ0hFX0FTU09DLAo+ID4+Pgo+ID4+PiAgICAgX1NDX0xFVkVMNF9DQUNIRV9MSU5FU0laRSwK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9TQ19JUFY2ID0gX1NDX0xFVkVMMV9JQ0FDSEVf U0laRSArIDUwLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1JBV19TT0NLRVRTLAo+ID4+Pgo+ID4+Pgo+ ID4+PiAgICAgX1NDX1Y3X0lMUDMyX09GRjMyLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1Y3X0lMUDMy X09GRkJJRywKPiA+Pj4KPiA+Pj4gICAgIF9TQ19WN19MUDY0X09GRjY0LAo+ID4+Pgo+ID4+PiAg ICAgX1NDX1Y3X0xQQklHX09GRkJJRywKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9TQ19TU19SRVBM X01BWCwKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9TQ19UUkFDRV9FVkVOVF9OQU1FX01BWCwKPiA+ Pj4KPiA+Pj4gICAgIF9TQ19UUkFDRV9OQU1FX01BWCwKPiA+Pj4KPiA+Pj4gICAgIF9TQ19UUkFD RV9TWVNfTUFYLAo+ID4+Pgo+ID4+PiAgICAgX1NDX1RSQUNFX1VTRVJfRVZFTlRfTUFYLAo+ID4+ Pgo+ID4+Pgo+ID4+PiAgICAgX1NDX1hPUEVOX1NUUkVBTVMsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAg ICBfU0NfVEhSRUFEX1JPQlVTVF9QUklPX0lOSEVSSVQsCj4gPj4+Cj4gPj4+ICAgICBfU0NfVEhS RUFEX1JPQlVTVF9QUklPX1BST1RFQ1QKPiA+Pj4KPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ID4+ PiBlbnVtCj4gPj4+ICAgewo+ID4+PiAgICAgX0NTX1BBVEgsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAg ICBfQ1NfVjZfV0lEVEhfUkVTVFJJQ1RFRF9FTlZTLAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAg ICAgX0NTX0dOVV9MSUJDX1ZFUlNJT04sCj4gPj4+Cj4gPj4+ICAgICBfQ1NfR05VX0xJQlBUSFJF QURfVkVSU0lPTiwKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9DU19WNV9XSURUSF9SRVNUUklDVEVE X0VOVlMsCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfQ1NfVjdfV0lEVEhfUkVTVFJJQ1RF RF9FTlZTLAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX0NTX0xGU19DRkxBR1MgPSAxMDAw LAo+ID4+Pgo+ID4+PiAgICAgX0NTX0xGU19MREZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX0xG U19MSUJTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX0xGU19MSU5URkxBR1MsCj4gPj4+Cj4gPj4+ICAg ICBfQ1NfTEZTNjRfQ0ZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX0xGUzY0X0xERkxBR1MsCj4g Pj4+Cj4gPj4+ICAgICBfQ1NfTEZTNjRfTElCUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19MRlM2NF9M SU5URkxBR1MsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9DRkxB R1MgPSAxMTAwLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1hCUzVfSUxQMzJfT0ZGMzJfTERGTEFHUywK PiA+Pj4KPiA+Pj4gICAgIF9DU19YQlM1X0lMUDMyX09GRjMyX0xJQlMsCj4gPj4+Cj4gPj4+ICAg ICBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9MSU5URkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfWEJT NV9JTFAzMl9PRkZCSUdfQ0ZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1hCUzVfSUxQMzJfT0ZG QklHX0xERkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfWEJTNV9JTFAzMl9PRkZCSUdfTElCUywK PiA+Pj4KPiA+Pj4gICAgIF9DU19YQlM1X0lMUDMyX09GRkJJR19MSU5URkxBR1MsCj4gPj4+Cj4g Pj4+ICAgICBfQ1NfWEJTNV9MUDY0X09GRjY0X0NGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19Y QlM1X0xQNjRfT0ZGNjRfTERGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19YQlM1X0xQNjRfT0ZG NjRfTElCUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19YQlM1X0xQNjRfT0ZGNjRfTElOVEZMQUdTLAo+ ID4+Pgo+ID4+PiAgICAgX0NTX1hCUzVfTFBCSUdfT0ZGQklHX0NGTEFHUywKPiA+Pj4KPiA+Pj4g ICAgIF9DU19YQlM1X0xQQklHX09GRkJJR19MREZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1hC UzVfTFBCSUdfT0ZGQklHX0xJQlMsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfWEJTNV9MUEJJR19PRkZC SUdfTElOVEZMQUdTLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09G RjMyX0NGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WNl9JTFAzMl9PRkYzMl9MREZM QUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0xJQlMsCj4gPj4+ Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGMzJfTElOVEZMQUdTLAo+ID4+Pgo+ID4+ PiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRkJJR19DRkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBf Q1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xERkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9T SVhfVjZfSUxQMzJfT0ZGQklHX0xJQlMsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjZfSUxQ MzJfT0ZGQklHX0xJTlRGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WNl9MUDY0X09G RjY0X0NGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WNl9MUDY0X09GRjY0X0xERkxB R1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjZfTFA2NF9PRkY2NF9MSUJTLAo+ID4+Pgo+ ID4+PiAgICAgX0NTX1BPU0lYX1Y2X0xQNjRfT0ZGNjRfTElOVEZMQUdTLAo+ID4+Pgo+ID4+PiAg ICAgX0NTX1BPU0lYX1Y2X0xQQklHX09GRkJJR19DRkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1Nf UE9TSVhfVjZfTFBCSUdfT0ZGQklHX0xERkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhf VjZfTFBCSUdfT0ZGQklHX0xJQlMsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjZfTFBCSUdf T0ZGQklHX0xJTlRGTEFHUywKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WN19JTFAz Ml9PRkYzMl9DRkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGMzJf TERGTEFHUywKPiA+Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WN19JTFAzMl9PRkYzMl9MSUJTLAo+ ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRjMyX0xJTlRGTEFHUywKPiA+Pj4K PiA+Pj4gICAgIF9DU19QT1NJWF9WN19JTFAzMl9PRkZCSUdfQ0ZMQUdTLAo+ID4+Pgo+ID4+PiAg ICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRkJJR19MREZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NT X1BPU0lYX1Y3X0lMUDMyX09GRkJJR19MSUJTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y3 X0lMUDMyX09GRkJJR19MSU5URkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjdfTFA2 NF9PRkY2NF9DRkxBR1MsCj4gPj4+Cj4gPj4+ICAgICBfQ1NfUE9TSVhfVjdfTFA2NF9PRkY2NF9M REZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y3X0xQNjRfT0ZGNjRfTElCUywKPiA+ Pj4KPiA+Pj4gICAgIF9DU19QT1NJWF9WN19MUDY0X09GRjY0X0xJTlRGTEFHUywKPiA+Pj4KPiA+ Pj4gICAgIF9DU19QT1NJWF9WN19MUEJJR19PRkZCSUdfQ0ZMQUdTLAo+ID4+Pgo+ID4+PiAgICAg X0NTX1BPU0lYX1Y3X0xQQklHX09GRkJJR19MREZMQUdTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BP U0lYX1Y3X0xQQklHX09GRkJJR19MSUJTLAo+ID4+Pgo+ID4+PiAgICAgX0NTX1BPU0lYX1Y3X0xQ QklHX09GRkJJR19MSU5URkxBR1MsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfQ1NfVjZfRU5WLAo+ ID4+Pgo+ID4+PiAgICAgX0NTX1Y3X0VOVgo+ID4+Pgo+ID4+PiAgIH07Cj4gPj4+ICMgNjEzICIv dXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBsb25n IGludCBwYXRoY29uZiAoY29uc3QgY2hhciAqX19wYXRoLCBpbnQgX19uYW1lKQo+ID4+PiAgICAg IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo KF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gbG9uZyBpbnQgZnBh dGhjb25mIChpbnQgX19mZCwgaW50IF9fbmFtZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGxvbmcgaW50IHN5c2NvbmYg KGludCBfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzaXplX3QgY29uZnN0ciAoaW50IF9fbmFtZSwg Y2hhciAqX19idWYsIHNpemVfdCBfX2xlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fcGlkX3Qg Z2V0cGlkICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gX19waWRfdCBnZXRwcGlkICh2b2lkKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g X19waWRfdCBnZXRwZ3JwICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gX19waWRfdCBfX2dldHBnaWQgKF9fcGlk X3QgX19waWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ Cj4gPj4+IGV4dGVybiBfX3BpZF90IGdldHBnaWQgKF9fcGlkX3QgX19waWQpIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0cGdpZCAoX19waWRfdCBfX3BpZCwgX19waWRf dCBfX3BnaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ ICMgNjYzICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHNldHBn cnAgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX3BpZF90IHNldHNp ZCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fcGlkX3QgZ2V0c2lkIChfX3BpZF90IF9fcGlkKSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gX191aWRfdCBnZXR1aWQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX3VpZF90IGdl dGV1aWQgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBfX2dpZF90IGdldGdpZCAodm9pZCkgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9f Z2lkX3QgZ2V0ZWdpZCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRncm91cHMg KGludCBfX3NpemUsIF9fZ2lkX3QgX19saXN0W10pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df XyAsIF9fbGVhZl9fKSkgOwo+ID4+PiAjIDcwMyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQK PiA+Pj4gZXh0ZXJuIGludCBzZXR1aWQgKF9fdWlkX3QgX191aWQpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gaW50IHNldHJldWlkIChfX3VpZF90IF9fcnVpZCwgX191aWRfdCBfX2V1aWQpIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNldGV1aWQgKF9fdWlkX3QgX191aWQpIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNldGdpZCAoX19naWRfdCBfX2dpZCkgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0cmVnaWQgKF9fZ2lkX3QgX19yZ2lkLCBfX2dpZF90IF9f ZWdpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0ZWdpZCAoX19naWRfdCBfX2dpZCkg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gPj4+ICMgNzU5ICIv dXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gX19waWRfdCBmb3JrICh2b2lk KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIF9fcGlkX3QgdmZvcmsgKHZvaWQpIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICp0dHluYW1lIChpbnQgX19mZCkgX19hdHRyaWJ1 dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGludCB0dHluYW1lX3IgKGludCBfX2ZkLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fYnVm bGVuKQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBpc2F0dHkgKGludCBfX2ZkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gaW50IHR0eXNsb3QgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh Zl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbGluayAoY29u c3QgY2hhciAqX19mcm9tLCBjb25zdCBjaGFyICpfX3RvKQo+ID4+PiAgICAgIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f ICgxLCAyKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBsaW5r YXQgKGludCBfX2Zyb21mZCwgY29uc3QgY2hhciAqX19mcm9tLCBpbnQgX190b2ZkLAo+ID4+PiAg ICAgIGNvbnN0IGNoYXIgKl9fdG8sIGludCBfX2ZsYWdzKQo+ID4+PiAgICAgIF9fYXR0cmlidXRl X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9f ICgyLCA0KSkpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBzeW1s aW5rIChjb25zdCBjaGFyICpfX2Zyb20sIGNvbnN0IGNoYXIgKl9fdG8pCj4gPj4+ICAgICAgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19u b25udWxsX18gKDEsIDIpKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g c3NpemVfdCByZWFkbGluayAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3BhdGgsCj4gPj4+ICAg ICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19sZW4pCj4gPj4+ICAgICAgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u dWxsX18gKDEsIDIpKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50 IHN5bWxpbmthdCAoY29uc3QgY2hhciAqX19mcm9tLCBpbnQgX190b2ZkLAo+ID4+PiAgICAgICAg IGNvbnN0IGNoYXIgKl9fdG8pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAzKSkpIDsKPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIHNzaXplX3QgcmVhZGxpbmthdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QgX19wYXRoLAo+ID4+PiAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3Qg X19sZW4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIsIDMpKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gaW50IHVubGluayAoY29uc3QgY2hhciAqX19uYW1lKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf XyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB1bmxpbmthdCAoaW50 IF9fZmQsIGNvbnN0IGNoYXIgKl9fbmFtZSwgaW50IF9fZmxhZykKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMikpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBybWRpciAoY29u c3QgY2hhciAqX19wYXRoKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIF9fcGlkX3QgdGNnZXRwZ3JwIChpbnQgX19mZCkgX19hdHRyaWJ1dGVfXyAoKF9f bm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCB0Y3Nl dHBncnAgKGludCBfX2ZkLCBfX3BpZF90IF9fcGdycF9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGNoYXIgKmdldGxvZ2luICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRsb2dpbl9yIChjaGFyICpf X25hbWUsIHNpemVfdCBfX25hbWVfbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEp KSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0bG9naW4gKGNv bnN0IGNoYXIgKl9fbmFtZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+ICMgODc0ICIvdXNyL2lu Y2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9nZXRvcHQuaCIgMSAz IDQKPiA+Pj4gIyA1NyAiL3Vzci9pbmNsdWRlL2dldG9wdC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGNo YXIgKm9wdGFyZzsKPiA+Pj4gIyA3MSAiL3Vzci9pbmNsdWRlL2dldG9wdC5oIiAzIDQKPiA+Pj4g ZXh0ZXJuIGludCBvcHRpbmQ7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBp bnQgb3B0ZXJyOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IG9wdG9wdDsKPiA+ Pj4gIyAxNTAgIi91c3IvaW5jbHVkZS9nZXRvcHQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZ2V0 b3B0IChpbnQgX19fYXJnYywgY2hhciAqY29uc3QgKl9fX2FyZ3YsIGNvbnN0IGNoYXIgKl9fc2hv cnRvcHRzKQo+ID4+PiAgICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4gIyA4NzUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMiAzIDQKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRob3N0 bmFtZSAoY2hhciAqX19uYW1lLCBzaXplX3QgX19sZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHNldGhvc3Ru YW1lIChjb25zdCBjaGFyICpfX25hbWUsIHNpemVfdCBfX2xlbikKPiA+Pj4gICAgICBfX2F0dHJp YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51 bGxfXyAoMSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc2V0aG9zdGlk IChsb25nIGludCBfX2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp IDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRkb21h aW5uYW1lIChjaGFyICpfX25hbWUsIHNpemVfdCBfX2xlbikKPiA+Pj4gICAgICBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf XyAoMSkpKSA7Cj4gPj4+IGV4dGVybiBpbnQgc2V0ZG9tYWlubmFtZSAoY29uc3QgY2hhciAqX19u YW1lLCBzaXplX3QgX19sZW4pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHZoYW5ndXAgKHZvaWQpIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgcmV2b2tlIChjb25zdCBjaGFyICpfX2ZpbGUpIF9fYXR0cmlidXRlX18gKChf X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkp IDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGludCBwcm9maWwgKHVuc2lnbmVkIHNob3J0IGludCAqX19zYW1wbGVfYnVmZmVyLCBzaXplX3Qg X19zaXplLAo+ID4+PiAgICAgIHNpemVfdCBfX29mZnNldCwgdW5zaWduZWQgaW50IF9fc2NhbGUp Cj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0 dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBpbnQgYWNjdCAoY29uc3QgY2hhciAqX19uYW1lKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gY2hhciAqZ2V0dXNlcnNoZWxsICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpOwo+ID4+PiBleHRlcm4gdm9pZCBlbmR1c2Vyc2hlbGwgKHZvaWQpIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVybiB2b2lk IHNldHVzZXJzaGVsbCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBkYWVt b24gKGludCBfX25vY2hkaXIsIGludCBfX25vY2xvc2UpIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSkgOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiBleHRlcm4gaW50IGNocm9vdCAoY29uc3QgY2hhciAqX19wYXRoKSBfX2F0dHJpYnV0ZV9f ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo MSkpKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpnZXRwYXNzIChjb25z dCBjaGFyICpfX3Byb21wdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGZz eW5jIChpbnQgX19mZCk7Cj4gPj4+ICMgOTcyICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ ID4+PiBleHRlcm4gbG9uZyBpbnQgZ2V0aG9zdGlkICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIHZvaWQgc3luYyAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBn ZXRwYWdlc2l6ZSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgZ2V0ZHRhYmxlc2l6ZSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyA5OTYgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIg MyA0Cj4gPj4+IGV4dGVybiBpbnQgdHJ1bmNhdGUgKGNvbnN0IGNoYXIgKl9fZmlsZSwgX19vZmZf dCBfX2xlbmd0aCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gPj4+ICMgMTAxOSAi L3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBmdHJ1bmNhdGUgKGlu dCBfX2ZkLCBfX29mZl90IF9fbGVuZ3RoKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpIDsKPiA+Pj4gIyAxMDQwICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+ PiBleHRlcm4gaW50IGJyayAodm9pZCAqX19hZGRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIHZvaWQgKnNicmsgKGludHB0cl90IF9fZGVsdGEpIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMTA2MSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAz IDQKPiA+Pj4gZXh0ZXJuIGxvbmcgaW50IHN5c2NhbGwgKGxvbmcgaW50IF9fc3lzbm8sIC4uLikg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyAxMTE1ICIv dXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGZkYXRhc3luYyAoaW50 IF9fZmlsZGVzKTsKPiA+Pj4gIyAxMTU0ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+ID4+ Pgo+ID4+PiAjIDU5ICJtYWNoaW5lLmMiIDIKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3lzL3Bh cmFtLmgiIDEgMyA0Cj4gPj4+ICMgMjMgIi91c3IvaW5jbHVkZS9zeXMvcGFyYW0uaCIgMyA0Cj4g Pj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3Rk ZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMjQgIi91c3IvaW5jbHVkZS9zeXMvcGFyYW0uaCIgMiAzIDQK PiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4x LjEvaW5jbHVkZS9saW1pdHMuaCIgMSAzIDQKPiA+Pj4gIyAzNCAiL3Vzci9saWIvZ2NjL2k2ODYt cmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvbGltaXRzLmgiIDMgNAo+ID4+PiAjIDEgIi91c3Iv bGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N5c2xpbWl0cy5oIiAxIDMg NAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvbGli L2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL2xpbWl0cy5oIiAxIDMgNAo+ID4+ PiAjIDE2OCAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvbGlt aXRzLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9saW1pdHMuaCIgMSAzIDQKPiA+Pj4g IyAxNDMgIi91c3IvaW5jbHVkZS9saW1pdHMuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L2JpdHMvcG9zaXgxX2xpbS5oIiAxIDMgNAo+ID4+PiAjIDE2MCAiL3Vzci9pbmNsdWRlL2JpdHMv cG9zaXgxX2xpbS5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9sb2NhbF9saW0u aCIgMSAzIDQKPiA+Pj4gIyAzOCAiL3Vzci9pbmNsdWRlL2JpdHMvbG9jYWxfbGltLmgiIDMgNAo+ ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9saW51eC9saW1pdHMuaCIgMSAzIDQKPiA+Pj4gIyAzOSAi L3Vzci9pbmNsdWRlL2JpdHMvbG9jYWxfbGltLmgiIDIgMyA0Cj4gPj4+ICMgMTYxICIvdXNyL2lu Y2x1ZGUvYml0cy9wb3NpeDFfbGltLmgiIDIgMyA0Cj4gPj4+ICMgMTQ0ICIvdXNyL2luY2x1ZGUv bGltaXRzLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L2JpdHMvcG9zaXgyX2xpbS5oIiAxIDMgNAo+ID4+PiAjIDE0OCAiL3Vzci9pbmNsdWRlL2xpbWl0 cy5oIiAyIDMgNAo+ID4+PiAjIDE2OSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYu MS4xL2luY2x1ZGUvbGltaXRzLmgiIDIgMyA0Cj4gPj4+ICMgOCAiL3Vzci9saWIvZ2NjL2k2ODYt cmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3lzbGltaXRzLmgiIDIgMyA0Cj4gPj4+ICMgMzUg Ii91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL2xpbWl0cy5oIiAy IDMgNAo+ID4+PiAjIDI3ICIvdXNyL2luY2x1ZGUvc3lzL3BhcmFtLmgiIDIgMyA0Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvcGFyYW0uaCIgMSAz IDQKPiA+Pj4gIyAyOCAiL3Vzci9pbmNsdWRlL2JpdHMvcGFyYW0uaCIgMyA0Cj4gPj4+ICMgMSAi L3Vzci9pbmNsdWRlL2xpbnV4L3BhcmFtLmgiIDEgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS9wYXJhbS5oIiAxIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5j bHVkZS9hc20tZ2VuZXJpYy9wYXJhbS5oIiAxIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9h c20vcGFyYW0uaCIgMiAzIDQKPiA+Pj4gIyA1ICIvdXNyL2luY2x1ZGUvbGludXgvcGFyYW0uaCIg MiAzIDQKPiA+Pj4gIyAyOSAiL3Vzci9pbmNsdWRlL2JpdHMvcGFyYW0uaCIgMiAzIDQKPiA+Pj4g IyAzMiAiL3Vzci9pbmNsdWRlL3N5cy9wYXJhbS5oIiAyIDMgNAo+ID4+PiAjIDYwICJtYWNoaW5l LmMiIDIKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMSAzIDQKPiA+Pj4gIyAy NyAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9i aXRzL3RpbWUuaCIgMSAzIDQKPiA+Pj4gIyAyOCAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDIg MyA0Cj4gPj4+ICMgMzcgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAzIDQKPiA+Pj4KPiA+Pj4g IyA1NSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNAo+ID4+PiBzdHJ1Y3QgdGltZXpvbmUK PiA+Pj4gICB7Cj4gPj4+ICAgICBpbnQgdHpfbWludXRlc3dlc3Q7Cj4gPj4+ICAgICBpbnQgdHpf ZHN0dGltZTsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdCB0aW1lem9uZSAq X19yZXN0cmljdCBfX3RpbWV6b25lX3B0cl90Owo+ID4+PiAjIDcxICIvdXNyL2luY2x1ZGUvc3lz L3RpbWUuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZ2V0dGltZW9mZGF5IChzdHJ1Y3QgdGltZXZh bCAqX19yZXN0cmljdCBfX3R2LAo+ID4+PiAgICAgX190aW1lem9uZV9wdHJfdCBfX3R6KSBfX2F0 dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v bm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBz ZXR0aW1lb2ZkYXkgKGNvbnN0IHN0cnVjdCB0aW1ldmFsICpfX3R2LAo+ID4+PiAgICAgY29uc3Qg c3RydWN0IHRpbWV6b25lICpfX3R6KQo+ID4+PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy b3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4 dGVybiBpbnQgYWRqdGltZSAoY29uc3Qgc3RydWN0IHRpbWV2YWwgKl9fZGVsdGEsCj4gPj4+ICAg ICAgIHN0cnVjdCB0aW1ldmFsICpfX29sZGRlbHRhKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBlbnVtIF9faXRp bWVyX3doaWNoCj4gPj4+ICAgewo+ID4+Pgo+ID4+PiAgICAgSVRJTUVSX1JFQUwgPSAwLAo+ID4+ Pgo+ID4+Pgo+ID4+PiAgICAgSVRJTUVSX1ZJUlRVQUwgPSAxLAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+PiAgICAgSVRJTUVSX1BST0YgPSAyCj4gPj4+Cj4gPj4+ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gc3RydWN0IGl0aW1lcnZhbAo+ID4+PiAgIHsKPiA+Pj4KPiA+Pj4gICAgIHN0cnVj dCB0aW1ldmFsIGl0X2ludGVydmFsOwo+ID4+Pgo+ID4+PiAgICAgc3RydWN0IHRpbWV2YWwgaXRf dmFsdWU7Cj4gPj4+ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gdHlwZWRlZiBpbnQgX19pdGltZXJfd2hpY2hfdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIGludCBnZXRpdGltZXIgKF9faXRpbWVyX3doaWNoX3QgX193aGljaCwKPiA+ Pj4gICAgICAgICBzdHJ1Y3QgaXRpbWVydmFsICpfX3ZhbHVlKSBfX2F0dHJpYnV0ZV9fICgoX19u b3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gaW50IHNldGl0aW1lciAoX19pdGltZXJfd2hpY2hfdCBfX3doaWNoLAo+ID4+PiAgICAgICAg IGNvbnN0IHN0cnVjdCBpdGltZXJ2YWwgKl9fcmVzdHJpY3QgX19uZXcsCj4gPj4+ICAgICAgICAg c3RydWN0IGl0aW1lcnZhbCAqX19yZXN0cmljdCBfX29sZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IGludCB1dGltZXMgKGNvbnN0IGNoYXIgKl9fZmlsZSwgY29uc3Qgc3RydWN0IHRpbWV2YWwgX190 dnBbMl0pCj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+IGV4dGVybiBpbnQgbHV0aW1lcyAoY29uc3QgY2hhciAqX19maWxlLCBjb25zdCBzdHJ1Y3Qg dGltZXZhbCBfX3R2cFsyXSkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIGludCBmdXRpbWVzIChpbnQgX19mZCwgY29uc3Qgc3RydWN0IHRpbWV2 YWwgX190dnBbMl0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+ICMgMTg5ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgNjEg Im1hY2hpbmUuYyIgMgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9zeXMvdGltZXMuaCIgMSAzIDQK PiA+Pj4gIyAzMSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lcy5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gc3RydWN0IHRtcwo+ID4+PiAgIHsKPiA+Pj4gICAgIGNsb2NrX3QgdG1zX3V0aW1l Owo+ID4+PiAgICAgY2xvY2tfdCB0bXNfc3RpbWU7Cj4gPj4+Cj4gPj4+ICAgICBjbG9ja190IHRt c19jdXRpbWU7Cj4gPj4+ICAgICBjbG9ja190IHRtc19jc3RpbWU7Cj4gPj4+ICAgfTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNsb2NrX3QgdGltZXMg KHN0cnVjdCB0bXMgKl9fYnVmZmVyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDYyICJtYWNoaW5lLmMiIDIKPiA+Pj4gIyAxICIv dXNyL2luY2x1ZGUvc3lzL3Jlc291cmNlLmgiIDEgMyA0Cj4gPj4+ICMgMjQgIi91c3IvaW5jbHVk ZS9zeXMvcmVzb3VyY2UuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvcmVzb3Vy Y2UuaCIgMSAzIDQKPiA+Pj4gIyAzMSAiL3Vzci9pbmNsdWRlL2JpdHMvcmVzb3VyY2UuaCIgMyA0 Cj4gPj4+IGVudW0gX19ybGltaXRfcmVzb3VyY2UKPiA+Pj4gewo+ID4+Pgo+ID4+PiAgIFJMSU1J VF9DUFUgPSAwLAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIFJMSU1JVF9GU0laRSA9IDEsCj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgUkxJTUlUX0RBVEEgPSAyLAo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiAgIFJMSU1JVF9TVEFDSyA9IDMsCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgUkxJ TUlUX0NPUkUgPSA0LAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAg IF9fUkxJTUlUX1JTUyA9IDUsCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgUkxJTUlUX05PRklM RSA9IDcsCj4gPj4+ICAgX19STElNSVRfT0ZJTEUgPSBSTElNSVRfTk9GSUxFLAo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIFJMSU1JVF9BUyA9IDksCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+ICAgX19STElNSVRfTlBST0MgPSA2LAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIF9fUkxJ TUlUX01FTUxPQ0sgPSA4LAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIF9fUkxJTUlUX0xPQ0tT ID0gMTAsCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgX19STElNSVRfU0lHUEVORElORyA9IDEx LAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIF9fUkxJTUlUX01TR1FVRVVFID0gMTIsCj4gPj4+ 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+Pj4gICBfX1JMSU1fTkxJ TUlUUyA9IF9fUkxJTUlUX05MSU1JVFMKPiA+Pj4KPiA+Pj4KPiA+Pj4gfTsKPiA+Pj4gIyAxMzEg Ii91c3IvaW5jbHVkZS9iaXRzL3Jlc291cmNlLmgiIDMgNAo+ID4+PiB0eXBlZGVmIF9fcmxpbV90 IHJsaW1fdDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g c3RydWN0IHJsaW1pdAo+ID4+PiAgIHsKPiA+Pj4KPiA+Pj4gICAgIHJsaW1fdCBybGltX2N1cjsK PiA+Pj4KPiA+Pj4gICAgIHJsaW1fdCBybGltX21heDsKPiA+Pj4gICB9Owo+ID4+PiAjIDE1OCAi L3Vzci9pbmNsdWRlL2JpdHMvcmVzb3VyY2UuaCIgMyA0Cj4gPj4+IGVudW0gX19ydXNhZ2Vfd2hv Cj4gPj4+IHsKPiA+Pj4KPiA+Pj4gICBSVVNBR0VfU0VMRiA9IDAsCj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+ICAgUlVTQUdFX0NISUxEUkVOID0gLTEKPiA+Pj4gIyAxNzYgIi91c3IvaW5jbHVkZS9i aXRzL3Jlc291cmNlLmgiIDMgNAo+ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3Iv aW5jbHVkZS9iaXRzL3RpbWUuaCIgMSAzIDQKPiA+Pj4gIyAxODAgIi91c3IvaW5jbHVkZS9iaXRz L3Jlc291cmNlLmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IHN0cnVjdCBydXNhZ2UKPiA+Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1Y3Qg dGltZXZhbCBydV91dGltZTsKPiA+Pj4KPiA+Pj4gICAgIHN0cnVjdCB0aW1ldmFsIHJ1X3N0aW1l Owo+ID4+Pgo+ID4+PiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+ID4+PiAgICAgICB7Cj4gPj4+ ICBsb25nIGludCBydV9tYXhyc3M7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X21heHJz c193b3JkOwo+ID4+PiAgICAgICB9Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgX19leHRl bnNpb25fXyB1bmlvbgo+ID4+PiAgICAgICB7Cj4gPj4+ICBsb25nIGludCBydV9peHJzczsKPiA+ Pj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfaXhyc3Nfd29yZDsKPiA+Pj4gICAgICAgfTsKPiA+ Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiA+Pj4gICAgICAgewo+ID4+PiAgbG9u ZyBpbnQgcnVfaWRyc3M7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X2lkcnNzX3dvcmQ7 Cj4gPj4+ICAgICAgIH07Cj4gPj4+Cj4gPj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gPj4+ ICAgICAgIHsKPiA+Pj4gIGxvbmcgaW50IHJ1X2lzcnNzOwo+ID4+PiAgIF9fc3lzY2FsbF9zbG9u Z190IF9fcnVfaXNyc3Nfd29yZDsKPiA+Pj4gICAgICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gICAg IF9fZXh0ZW5zaW9uX18gdW5pb24KPiA+Pj4gICAgICAgewo+ID4+PiAgbG9uZyBpbnQgcnVfbWlu Zmx0Owo+ID4+PiAgX19zeXNjYWxsX3Nsb25nX3QgX19ydV9taW5mbHRfd29yZDsKPiA+Pj4gICAg ICAgfTsKPiA+Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiA+Pj4gICAgICAgewo+ ID4+PiAgbG9uZyBpbnQgcnVfbWFqZmx0Owo+ID4+PiAgX19zeXNjYWxsX3Nsb25nX3QgX19ydV9t YWpmbHRfd29yZDsKPiA+Pj4gICAgICAgfTsKPiA+Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9uX18g dW5pb24KPiA+Pj4gICAgICAgewo+ID4+PiAgbG9uZyBpbnQgcnVfbnN3YXA7Cj4gPj4+ICBfX3N5 c2NhbGxfc2xvbmdfdCBfX3J1X25zd2FwX3dvcmQ7Cj4gPj4+ICAgICAgIH07Cj4gPj4+Cj4gPj4+ Cj4gPj4+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gPj4+ICAgICAgIHsKPiA+Pj4gIGxvbmcg aW50IHJ1X2luYmxvY2s7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X2luYmxvY2tfd29y ZDsKPiA+Pj4gICAgICAgfTsKPiA+Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiA+ Pj4gICAgICAgewo+ID4+PiAgbG9uZyBpbnQgcnVfb3VibG9jazsKPiA+Pj4gIF9fc3lzY2FsbF9z bG9uZ190IF9fcnVfb3VibG9ja193b3JkOwo+ID4+PiAgICAgICB9Owo+ID4+Pgo+ID4+PiAgICAg X19leHRlbnNpb25fXyB1bmlvbgo+ID4+PiAgICAgICB7Cj4gPj4+ICBsb25nIGludCBydV9tc2dz bmQ7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X21zZ3NuZF93b3JkOwo+ID4+PiAgICAg ICB9Owo+ID4+Pgo+ID4+PiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+ID4+PiAgICAgICB7Cj4g Pj4+ICBsb25nIGludCBydV9tc2dyY3Y7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X21z Z3Jjdl93b3JkOwo+ID4+PiAgICAgICB9Owo+ID4+Pgo+ID4+PiAgICAgX19leHRlbnNpb25fXyB1 bmlvbgo+ID4+PiAgICAgICB7Cj4gPj4+ICBsb25nIGludCBydV9uc2lnbmFsczsKPiA+Pj4gIF9f c3lzY2FsbF9zbG9uZ190IF9fcnVfbnNpZ25hbHNfd29yZDsKPiA+Pj4gICAgICAgfTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiA+Pj4gICAgICAgewo+ ID4+PiAgbG9uZyBpbnQgcnVfbnZjc3c7Cj4gPj4+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X252 Y3N3X3dvcmQ7Cj4gPj4+ICAgICAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBfX2V4dGVuc2lv bl9fIHVuaW9uCj4gPj4+ICAgICAgIHsKPiA+Pj4gIGxvbmcgaW50IHJ1X25pdmNzdzsKPiA+Pj4g IF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbml2Y3N3X3dvcmQ7Cj4gPj4+ICAgICAgIH07Cj4gPj4+ ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZW51 bSBfX3ByaW9yaXR5X3doaWNoCj4gPj4+IHsKPiA+Pj4gICBQUklPX1BST0NFU1MgPSAwLAo+ID4+ Pgo+ID4+PiAgIFBSSU9fUEdSUCA9IDEsCj4gPj4+Cj4gPj4+ICAgUFJJT19VU0VSID0gMgo+ID4+ Pgo+ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDMyOCAiL3Vzci9pbmNsdWRlL2Jp dHMvcmVzb3VyY2UuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjUgIi91c3IvaW5jbHVkZS9zeXMvcmVz b3VyY2UuaCIgMiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gIyA0MiAiL3Vzci9pbmNsdWRlL3N5cy9yZXNvdXJjZS5oIiAzIDQKPiA+Pj4gdHlwZWRl ZiBpbnQgX19ybGltaXRfcmVzb3VyY2VfdDsKPiA+Pj4gdHlwZWRlZiBpbnQgX19ydXNhZ2Vfd2hv X3Q7Cj4gPj4+IHR5cGVkZWYgaW50IF9fcHJpb3JpdHlfd2hpY2hfdDsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRybGltaXQgKF9fcmxpbWl0X3Jlc291 cmNlX3QgX19yZXNvdXJjZSwKPiA+Pj4gICAgICAgICBzdHJ1Y3QgcmxpbWl0ICpfX3JsaW1pdHMp IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgNjkgIi91 c3IvaW5jbHVkZS9zeXMvcmVzb3VyY2UuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgc2V0cmxpbWl0 IChfX3JsaW1pdF9yZXNvdXJjZV90IF9fcmVzb3VyY2UsCj4gPj4+ICAgICAgICAgY29uc3Qgc3Ry dWN0IHJsaW1pdCAqX19ybGltaXRzKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+PiAjIDg3ICIvdXNyL2luY2x1ZGUvc3lzL3Jlc291cmNlLmgiIDMgNAo+ID4+ PiBleHRlcm4gaW50IGdldHJ1c2FnZSAoX19ydXNhZ2Vfd2hvX3QgX193aG8sIHN0cnVjdCBydXNh Z2UgKl9fdXNhZ2UpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZ2V0cHJpb3JpdHkg KF9fcHJpb3JpdHlfd2hpY2hfdCBfX3doaWNoLCBpZF90IF9fd2hvKSBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4g aW50IHNldHByaW9yaXR5IChfX3ByaW9yaXR5X3doaWNoX3QgX193aGljaCwgaWRfdCBfX3dobywg aW50IF9fcHJpbykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDYzICJtYWNoaW5lLmMiIDIKPiA+Pj4gIyA3MSAi bWFjaGluZS5jIgo+ID4+PiAjIDEgImVuZ2luZV9wbC5oIiAxCj4gPj4+ICMgNDAgImVuZ2luZV9w bC5oIgo+ID4+PiAjIDEgInBsX3BhcmFtcy5oIiAxCj4gPj4+ICMgNDEgImVuZ2luZV9wbC5oIiAy Cj4gPj4+ICMgMSAiaGFzaF9mY3QuaCIgMQo+ID4+PiAjIDUzICJoYXNoX2ZjdC5oIgo+ID4+Pgo+ ID4+PiAjIDUzICJoYXNoX2ZjdC5oIgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4gPj4+ ICAgaW50IGxlbjsKPiA+Pj4gICB1aW50MzJfdCBoYXNoOwo+ID4+PiB9IEhhc2hJbmNySW5mbzsK PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdWludDMyX3Qg UGxfSGFzaF9CdWZmZXIoY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7Cj4gPj4+Cj4gPj4+IHZv aWQgUGxfSGFzaF9JbmNyX0luaXQoSGFzaEluY3JJbmZvICpoaSk7Cj4gPj4+Cj4gPj4+IHZvaWQg UGxfSGFzaF9JbmNyX0J1ZmZlcihIYXNoSW5jckluZm8gKmhpLCBjb25zdCB2b2lkICpkYXRhLCBp bnQgbGVuKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9IYXNoX0luY3JfSW50MzIoSGFzaEluY3JJbmZv ICpoaSwgdWludDMyX3QgeCk7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfSGFzaF9JbmNyX0ludDY0KEhh c2hJbmNySW5mbyAqaGksIHVpbnQ2NF90IHgpOwo+ID4+Pgo+ID4+PiB2b2lkIFBsX0hhc2hfSW5j cl9Eb3VibGUoSGFzaEluY3JJbmZvICpoaSwgZG91YmxlIHgpOwo+ID4+Pgo+ID4+PiB1aW50MzJf dCBQbF9IYXNoX0luY3JfVGVybShIYXNoSW5jckluZm8gKmhpKTsKPiA+Pj4gIyA0MiAiZW5naW5l X3BsLmgiIDIKPiA+Pj4gIyAxICJoYXNoLmgiIDEKPiA+Pj4gIyA0OCAiaGFzaC5oIgo+ID4+PiB0 eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4gPj4+ICAgY2hhciAqZW5kdDsKPiA+Pj4gICBjaGFyICpj dXJfdDsKPiA+Pj4gICBjaGFyICpjdXJfcDsKPiA+Pj4gfQo+ID4+PiBIYXNoU2NhbjsKPiA+Pj4g IyA2NyAiaGFzaC5oIgo+ID4+PiBjaGFyICpQbF9IYXNoX0FsbG9jX1RhYmxlKGludCB0Ymxfc2l6 ZSwgaW50IGVsZW1fc2l6ZSk7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfSGFzaF9GcmVlX1RhYmxlKGNo YXIgKnRibCk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0hhc2hfUmVhbGxvY19UYWJsZShjaGFyICp0 YmwsIGludCBuZXdfdGJsX3NpemUpOwo+ID4+Pgo+ID4+PiB2b2lkIFBsX0hhc2hfRGVsZXRlX0Fs bChjaGFyICp0YmwpOwo+ID4+Pgo+ID4+PiBjaGFyICpQbF9IYXNoX0luc2VydChjaGFyICp0Ymws IGNoYXIgKmVsZW0sIGludCByZXBsYWNlKTsKPiA+Pj4KPiA+Pj4gY2hhciAqUGxfSGFzaF9GaW5k KGNoYXIgKnRibCwgUGxMb25nIGtleSk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0hhc2hfRGVsZXRl KGNoYXIgKnRibCwgUGxMb25nIGtleSk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0hhc2hfRmlyc3Qo Y2hhciAqdGJsLCBIYXNoU2NhbiAqc2Nhbik7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0hhc2hfTmV4 dChIYXNoU2NhbiAqc2Nhbik7Cj4gPj4+Cj4gPj4+IGludCBQbF9IYXNoX1RhYmxlX1NpemUoY2hh ciAqdGJsKTsKPiA+Pj4KPiA+Pj4gaW50IFBsX0hhc2hfTmJfRWxlbWVudHMoY2hhciAqdGJsKTsK PiA+Pj4gIyA0MyAiZW5naW5lX3BsLmgiIDIKPiA+Pj4gIyAxICJib29sLmgiIDEKPiA+Pj4gIyA2 NSAiYm9vbC5oIgo+ID4+PiB0eXBlZGVmIGludCBCb29sOwo+ID4+PiAjIDQ0ICJlbmdpbmVfcGwu aCIgMgo+ID4+PiAjIDEgIndhbV9yZWdzLmgiIDEKPiA+Pj4gIyA0NSAiZW5naW5lX3BsLmgiIDIK PiA+Pj4gIyAxICJ3YW1fYXJjaGkuaCIgMQo+ID4+PiAjIDQ0ICJ3YW1fYXJjaGkuaCIKPiA+Pj4g dHlwZWRlZiBpbnRwdHJfdCBXYW1Xb3JkOwo+ID4+Pgo+ID4+PiB0eXBlZGVmIHZvaWQgKCpDb2Rl UHRyKSAoKTsKPiA+Pj4KPiA+Pj4gdHlwZWRlZiBDb2RlUHRyIFdhbUNvbnQ7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHR5cGVkZWYgV2FtV29yZCAqV2FtV29yZFA7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHJlZ2lzdGVyIFdhbVdv cmRQIFRSIGFzbSAoImVieCIpOwo+ID4+PiAjIDk2ICJ3YW1fYXJjaGkuaCIKPiA+Pj4gZXh0ZXJu IFdhbVdvcmQgcGxfcmVnX2JhbmtbXTsKPiA+Pj4gZXh0ZXJuIFdhbVdvcmQgcGxfYnVmZl9zaWdu YWxfcmVnW107Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyICpwbF9yZWdfdGJsW107Cj4gPj4+ICMg MjcwICJ3YW1fYXJjaGkuaCIKPiA+Pj4gdHlwZWRlZiBlbnVtCj4gPj4+IHsKPiA+Pj4gICBMT05H X0lOVCwKPiA+Pj4gICBTSE9SVF9VTlMsCj4gPj4+ICAgQUREUkVTUwo+ID4+PiB9VHlwVGFnOwo+ ID4+Pgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4gPj4+ICAgY2hhciAqbmFtZTsKPiA+ Pj4gICBUeXBUYWcgdHlwZTsKPiA+Pj4gICBpbnQgdmFsdWU7Cj4gPj4+ICAgUGxMb25nIHRhZ19t YXNrOwo+ID4+PiB9SW5mVGFnOwo+ID4+PiAjIDMwMSAid2FtX2FyY2hpLmgiCj4gPj4+IGV4dGVy biBJbmZUYWcgcGxfdGFnX3RibFtdOwo+ID4+PiAjIDMyOCAid2FtX2FyY2hpLmgiCj4gPj4+ICMg MSAid2FtX3N0YWNrcy5oIiAxCj4gPj4+ICMgMjcgIndhbV9zdGFja3MuaCIKPiA+Pj4gdHlwZWRl ZiBzdHJ1Y3QKPiA+Pj4gewo+ID4+PiAgIGNoYXIgKm5hbWU7Cj4gPj4+ICAgY2hhciAqZGVzYzsK PiA+Pj4gICBjaGFyICplbnZfdmFyX25hbWU7Cj4gPj4+ICAgUGxMb25nICpwX2RlZl9zaXplOwo+ ID4+PiAgIGludCBkZWZhdWx0X3NpemU7Cj4gPj4+ICAgaW50IHNpemU7Cj4gPj4+ICAgV2FtV29y ZCAqc3RhY2s7Cj4gPj4+IH1JbmZTdGFjazsKPiA+Pj4gIyA1OCAid2FtX3N0YWNrcy5oIgo+ID4+ PiBleHRlcm4gUGxMb25nIHBsX2RlZl90cmFpbF9zaXplOwo+ID4+PiBleHRlcm4gUGxMb25nIHBs X2RlZl9jc3RyX3NpemU7Cj4gPj4+IGV4dGVybiBQbExvbmcgcGxfZGVmX2dsb2JhbF9zaXplOwo+ ID4+PiBleHRlcm4gUGxMb25nIHBsX2RlZl9sb2NhbF9zaXplOwo+ID4+PiBleHRlcm4gUGxMb25n IHBsX2ZpeGVkX3NpemVzOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gSW5mU3RhY2sgcGxfc3Rr X3RibFtdOwo+ID4+PiAjIDMyOSAid2FtX2FyY2hpLmgiIDIKPiA+Pj4gIyA0NiAiZW5naW5lX3Bs LmgiIDIKPiA+Pj4gIyAxICJlbmdpbmUuaCIgMQo+ID4+PiAjIDg3ICJlbmdpbmUuaCIKPiA+Pj4g ZXh0ZXJuIGludCBwbF9vc19hcmdjOwo+ID4+PiBleHRlcm4gY2hhciAqKnBsX29zX2FyZ3Y7Cj4g Pj4+Cj4gPj4+IGV4dGVybiBjaGFyICpwbF9ob21lOwo+ID4+PiBleHRlcm4gaW50IHBsX2RldmVs X21vZGU7Cj4gPj4+Cj4gPj4+IGV4dGVybiBjaGFyIHBsX2dsb2JfYnVmZltdOwo+ID4+Pgo+ID4+ PiBleHRlcm4gUGxMb25nICpwbF9iYXNlX2ZsOwo+ID4+PiBleHRlcm4gZG91YmxlICpwbF9iYXNl X2ZkOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IHBsX2xlX21vZGU7Cj4gPj4+ICMgMTA4ICJlbmdp bmUuaCIKPiA+Pj4gaW50IFBsX1N0YXJ0X1Byb2xvZyhpbnQgYXJnYywgY2hhciAqYXJndltdKTsK PiA+Pj4KPiA+Pj4gdm9pZCBQbF9TdG9wX1Byb2xvZyh2b2lkKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQ bF9SZXNldF9Qcm9sb2codm9pZCk7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfUmVzZXRfUHJvbG9nX0lu X1NpZ25hbCh2b2lkKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9TZXRfSGVhcF9BY3R1YWxfU3RhcnQo V2FtV29yZCAqaGVhcF9hY3R1YWxfc3RhcnQpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB2b2lk IFBsX0V4ZWN1dGVfRGlyZWN0aXZlKGludCBwbF9maWxlLCBpbnQgcGxfbGluZSwgQm9vbCBpc19z eXN0ZW0sCj4gPj4+ICAgICAgQ29kZVB0ciBwcm9jKTsKPiA+Pj4KPiA+Pj4gQm9vbCBQbF9Ucnlf RXhlY3V0ZV9Ub3BfTGV2ZWwodm9pZCk7Cj4gPj4+Cj4gPj4+IEJvb2wgUGxfQ2FsbF9Qcm9sb2co Q29kZVB0ciBjb2RlcCk7Cj4gPj4+Cj4gPj4+IEJvb2wgUGxfQ2FsbF9Qcm9sb2dfTmV4dF9Tb2wo V2FtV29yZCAqcXVlcnlfYik7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfS2VlcF9SZXN0X0Zvcl9Qcm9s b2coV2FtV29yZCAqcXVlcnlfYik7Cj4gPj4+Cj4gPj4+IHZvaWQgUGxfRXhpdF9XaXRoX0V4Y2Vw dGlvbih2b2lkKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9FeGVjdXRlX0FfQ29udGludWF0aW9uKENv ZGVQdHIgY29kZXApOwo+ID4+PiAjIDQ3ICJlbmdpbmVfcGwuaCIgMgo+ID4+PiAjIDEgImF0b20u aCIgMQo+ID4+PiAjIDk3ICJhdG9tLmgiCj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+IHsKPiA+ Pj4gICB1bnNpZ25lZCBsZW5ndGg6MTY7Cj4gPj4+ICAgdW5zaWduZWQgb3BfbWFzazo0Owo+ID4+ PiAgIHVuc2lnbmVkIHR5cGU6MjsKPiA+Pj4gICB1bnNpZ25lZCBuZWVkc19xdW90ZToxOwo+ID4+ PiAgIHVuc2lnbmVkIG5lZWRzX3NjYW46MTsKPiA+Pj4gfQo+ID4+PiBBdG9tUHJvcDsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiBzdHJ1Y3QKPiA+Pj4gewo+ID4+PiAgIGNo YXIgKm5hbWU7Cj4gPj4+ICAgdW5zaWduZWQgaGFzaDsKPiA+Pj4gICBBdG9tUHJvcCBwcm9wOwo+ ID4+PiAgIHZvaWQgKmluZm87Cj4gPj4+IH0KPiA+Pj4gQXRvbUluZjsKPiA+Pj4gIyAxNTMgImF0 b20uaCIKPiA+Pj4gZXh0ZXJuIEF0b21JbmYgKnBsX2F0b21fdGJsOwo+ID4+PiBleHRlcm4gaW50 IHBsX21heF9hdG9tOwo+ID4+PiBleHRlcm4gaW50IHBsX25iX2F0b207Cj4gPj4+Cj4gPj4+IGV4 dGVybiBpbnQgcGxfYXRvbV92b2lkOwo+ID4+PiBleHRlcm4gaW50IHBsX2F0b21fY3VybHlfYnJh Y2tldHM7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgcGxfYXRvbV9mYWxzZTsKPiA+Pj4gZXh0ZXJu IGludCBwbF9hdG9tX3RydWU7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgcGxfYXRvbV9lbmRfb2Zf ZmlsZTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgcGxf Y2hhcl9jb252W107Cj4gPj4+IGV4dGVybiBpbnQgcGxfY2hhcl90eXBlW107Cj4gPj4+Cj4gPj4+ IGV4dGVybiBjaGFyIHBsX2VzY2FwZV9zeW1ib2xbXTsKPiA+Pj4gZXh0ZXJuIGNoYXIgcGxfZXNj YXBlX2NoYXJbXTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gUGxMb25nIHBsX2RlZl9tYXhfYXRv bTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdm9pZCBQ bF9Jbml0X0F0b20odm9pZCk7Cj4gPj4+Cj4gPj4+IGludCBQbF9DcmVhdGVfQWxsb2NhdGVfQXRv bShjaGFyICpuYW1lKTsKPiA+Pj4KPiA+Pj4gaW50IFBsX0NyZWF0ZV9BdG9tKGNoYXIgKm5hbWUp Owo+ID4+Pgo+ID4+PiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVh dGVfQXRvbV9UYWdnZWQoY2hhciAqbmFtZSk7Cj4gPj4+Cj4gPj4+IGludCBQbF9GaW5kX0F0b20o Y2hhciAqbmFtZSk7Cj4gPj4+Cj4gPj4+IGludCBQbF9HZW5fTmV3X0F0b20oY2hhciAqcHJlZml4 KTsKPiA+Pj4KPiA+Pj4gaW50IFBsX0ZpbmRfTmV4dF9BdG9tKGludCBsYXN0X2F0b20pOwo+ID4+ PiAjIDQ4ICJlbmdpbmVfcGwuaCIgMgo+ID4+PiAjIDEgInByZWQuaCIgMQo+ID4+PiAjIDYyICJw cmVkLmgiCj4gPj4+IHR5cGVkZWYgc3RydWN0Cj4gPj4+IHsKPiA+Pj4gICBQbExvbmcgZl9uOwo+ ID4+PiAgIGludCBwbF9maWxlOwo+ID4+PiAgIGludCBwbF9saW5lOwo+ID4+PiAgIGludCBwcm9w Owo+ID4+PiAgIFBsTG9uZyAqY29kZXA7Cj4gPj4+ICAgUGxMb25nICpkeW47Cj4gPj4+IH0KPiA+ Pj4gUHJlZEluZjsKPiA+Pj4gIyA4NiAicHJlZC5oIgo+ID4+PiBleHRlcm4gY2hhciAqcGxfcHJl ZF90Ymw7Cj4gPj4+ICMgOTcgInByZWQuaCIKPiA+Pj4gdm9pZCBQbF9Jbml0X1ByZWQodm9pZCk7 Cj4gPj4+Cj4gPj4+IFByZWRJbmYgKiBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3Jl YXRlX1ByZWQoaW50IGZ1bmMsIGludCBhcml0eSwgaW50IHBsX2ZpbGUsIGludCBwbF9saW5lLAo+ ID4+PiAgICAgICAgaW50IHByb3AsIFBsTG9uZyAqY29kZXApOwo+ID4+Pgo+ID4+PiBQcmVkSW5m ICogX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0xvb2t1cF9QcmVkKGludCBmdW5jLCBp bnQgYXJpdHkpOwo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQ bF9EZWxldGVfUHJlZChpbnQgZnVuYywgaW50IGFyaXR5KTsKPiA+Pj4gIyA0OSAiZW5naW5lX3Bs LmgiIDIKPiA+Pj4gIyAxICJtaXNjLmgiIDEKPiA+Pj4gIyA1NyAibWlzYy5oIgo+ID4+PiBjaGFy ICpQbF9NYWxsb2NfQ2hlY2sodW5zaWduZWQgc2l6ZSwgY2hhciAqc3JjX2ZpbGUsIGludCBzcmNf bGluZSk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX0NhbGxvY19DaGVjayh1bnNpZ25lZCBuYiwgdW5z aWduZWQgc2l6ZSwgY2hhciAqc3JjX2ZpbGUsCj4gPj4+ICAgICAgaW50IHNyY19saW5lKTsKPiA+ Pj4KPiA+Pj4gY2hhciAqUGxfUmVhbGxvY19DaGVjayhjaGFyICpwdHIsIHVuc2lnbmVkIHNpemUs IGNoYXIgKnNyY19maWxlLCBpbnQgc3JjX2xpbmUpOwo+ID4+Pgo+ID4+PiBjaGFyICpQbF9TdHJk dXBfQ2hlY2soY2hhciAqc3RyLCBjaGFyICpzcmNfZmlsZSwgaW50IHNyY19saW5lKTsKPiA+Pj4g IyA3NiAibWlzYy5oIgo+ID4+PiB2b2lkIFBsX0V4dGVuZF9UYWJsZV9JZl9OZWVkZWQoY2hhciAq Kmhhc2hfdGJsKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9FeHRlbmRfQXJyYXkoY2hhciAqKnB0Ymws IGludCAqbmJfZWxlbSwgaW50IGVsZW1fc2l6ZSwgQm9vbCBiemVybyk7Cj4gPj4+Cj4gPj4+IHZv aWQgUGxfRXhpdF9XaXRoX1ZhbHVlKGludCByZXRfdmFsKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9G YXRhbF9FcnJvcihjaGFyICpmb3JtYXQsIC4uLik7Cj4gPj4+ICMgMTE0ICJtaXNjLmgiCj4gPj4+ IHZvaWQgKlBsX0R1bW15X1B0cih2b2lkICpwKTsKPiA+Pj4gIyA1MCAiZW5naW5lX3BsLmgiIDIK PiA+Pj4gIyAxICJvcGVyLmgiIDEKPiA+Pj4gIyA3MiAib3Blci5oIgo+ID4+PiB0eXBlZGVmIHN0 cnVjdAo+ID4+PiB7Cj4gPj4+ICAgUGxMb25nIGFfdDsKPiA+Pj4gICBpbnQgcHJlYzsKPiA+Pj4g ICBpbnQgbGVmdDsKPiA+Pj4gICBpbnQgcmlnaHQ7Cj4gPj4+IH0KPiA+Pj4gT3BlckluZjsKPiA+ Pj4gIyA5NCAib3Blci5oIgo+ID4+PiBleHRlcm4gY2hhciAqcGxfb3Blcl90Ymw7Cj4gPj4+ICMg MTAzICJvcGVyLmgiCj4gPj4+IHZvaWQgUGxfSW5pdF9PcGVyKHZvaWQpOwo+ID4+Pgo+ID4+PiBP cGVySW5mICpQbF9DcmVhdGVfT3BlcihpbnQgYXRvbV9vcCwgaW50IHR5cGUsIGludCBwcmVjLCBp bnQgbGVmdCwgaW50IHJpZ2h0KTsKPiA+Pj4KPiA+Pj4gT3BlckluZiAqUGxfTG9va3VwX09wZXIo aW50IGF0b21fb3AsIGludCB0eXBlKTsKPiA+Pj4KPiA+Pj4gT3BlckluZiAqUGxfTG9va3VwX09w ZXJfQW55X1R5cGUoaW50IGF0b21fb3ApOwo+ID4+Pgo+ID4+PiBPcGVySW5mICpQbF9EZWxldGVf T3BlcihpbnQgYXRvbV9vcCwgaW50IHR5cGUpOwo+ID4+PiAjIDUxICJlbmdpbmVfcGwuaCIgMgo+ ID4+PiAjIDEgIm1hY2hpbmUxLmgiIDEKPiA+Pj4gIyA3MCAibWFjaGluZTEuaCIKPiA+Pj4gZXh0 ZXJuIGludCBwbF9tX29zX3R5cGU7Cj4gPj4+IGV4dGVybiBjaGFyIHBsX21fYXJjaGl0ZWN0dXJl W107Cj4gPj4+IGV4dGVybiBjaGFyIHBsX21fb3NfdmVyc2lvbltdOwo+ID4+PiAjIDgzICJtYWNo aW5lMS5oIgo+ID4+PiB2b2lkIFBsX0luaXRfTWFjaGluZTEodm9pZCk7Cj4gPj4+Cj4gPj4+IGNo YXIgKipQbF9NX0NyZWF0ZV9TaGVsbF9Db21tYW5kKGNoYXIgKmNtZCk7Cj4gPj4+Cj4gPj4+IGNo YXIgKipQbF9NX0NtZF9MaW5lX1RvX0FyZ3YoY2hhciAqY21kLCBpbnQgKmFyZ2MpOwo+ID4+Pgo+ ID4+PiBpbnQgUGxfTV9TaGVsbChjaGFyICpjbWQpOwo+ID4+Pgo+ID4+PiBpbnQgUGxfTV9TcGF3 bihjaGFyICphcmdbXSk7Cj4gPj4+Cj4gPj4+IGludCBQbF9NX1NwYXduX1JlZGlyZWN0KGNoYXIg KmFyZ1tdLCBpbnQgZGV0YWNoLAo+ID4+PiAgICAgICAgRklMRSAqKmZfaW4sIEZJTEUgKipmX291 dCwgRklMRSAqKmZfZXJyKTsKPiA+Pj4KPiA+Pj4gaW50IFBsX01fR2V0X1N0YXR1cyhpbnQgcGlk KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gY2hhciAqUGxfTV9Na3RlbXAoY2hhciAqdG1wX3Rl bXBsYXRlKTsKPiA+Pj4KPiA+Pj4gY2hhciAqUGxfTV9UZW1wbmFtKGNoYXIgKmRpciwgY2hhciAq cGZ4KTsKPiA+Pj4gIyA1MiAiZW5naW5lX3BsLmgiIDIKPiA+Pj4gIyAxICJtYWNoaW5lLmgiIDEK PiA+Pj4gIyA2MSAibWFjaGluZS5oIgo+ID4+PiB2b2lkIFBsX0luaXRfTWFjaGluZSh2b2lkKTsK PiA+Pj4KPiA+Pj4gY2hhciAqUGxfTV9TeXNfRXJyX1N0cmluZyhpbnQgcmV0X3ZhbCk7Cj4gPj4+ Cj4gPj4+IFBsTG9uZyBQbF9NX1VzZXJfVGltZSh2b2lkKTsKPiA+Pj4KPiA+Pj4gUGxMb25nIFBs X01fU3lzdGVtX1RpbWUodm9pZCk7Cj4gPj4+Cj4gPj4+IFBsTG9uZyBQbF9NX1JlYWxfVGltZSh2 b2lkKTsKPiA+Pj4KPiA+Pj4gdm9pZCBQbF9NX1JhbmRvbWl6ZSh2b2lkKTsKPiA+Pj4KPiA+Pj4g dm9pZCBQbF9NX1NldF9TZWVkKGludCBuKTsKPiA+Pj4KPiA+Pj4gaW50IFBsX01fR2V0X1NlZWQo dm9pZCk7Cj4gPj4+Cj4gPj4+IGludCBQbF9NX1JhbmRvbV9JbnRlZ2VyKGludCBuKTsKPiA+Pj4K PiA+Pj4gZG91YmxlIFBsX01fUmFuZG9tX0Zsb2F0KGRvdWJsZSBuKTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gY2hhciAqUGxfTV9Ib3N0X05hbWVfRnJvbV9OYW1lKGNoYXIgKmhvc3RfbmFtZSk7 Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX01fSG9zdF9OYW1lX0Zyb21fQWRyKGNoYXIgKmhvc3RfYWRk cmVzcyk7Cj4gPj4+Cj4gPj4+IGNoYXIgKlBsX01fR2V0X1dvcmtpbmdfRGlyKHZvaWQpOwo+ID4+ Pgo+ID4+PiBCb29sIFBsX01fU2V0X1dvcmtpbmdfRGlyKGNoYXIgKnBhdGgpOwo+ID4+Pgo+ID4+ PiBjaGFyICpQbF9NX0Fic29sdXRlX1BhdGhfTmFtZShjaGFyICpzcmMpOwo+ID4+Pgo+ID4+PiBC b29sIFBsX01fSXNfQWJzb2x1dGVfRmlsZV9OYW1lKGNoYXIgKnBhdGgpOwo+ID4+Pgo+ID4+PiBj aGFyICpQbF9NX0RlY29tcG9zZV9GaWxlX05hbWUoY2hhciAqcGF0aCwgQm9vbCBkZWxfdHJhaWxf c2xhc2hlcywKPiA+Pj4gICAgICAgICAgIGNoYXIgKipiYXNlLCBjaGFyICoqc3VmZml4KTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdm9pZCBNX0NoZWNr X01hZ2ljX1dvcmRzKHZvaWQpOwo+ID4+PiAjIDUzICJlbmdpbmVfcGwuaCIgMgo+ID4+PiAjIDEg InN0YWNrc19zaWdzZWd2LmgiIDEKPiA+Pj4gIyA1MCAic3RhY2tzX3NpZ3NlZ3YuaCIKPiA+Pj4g dHlwZWRlZiBpbnQgKCpTZWd2SGRscikodm9pZCAqYmFkX2FkZHIpOwo+ID4+PiAjIDYwICJzdGFj a3Nfc2lnc2Vndi5oIgo+ID4+PiB2b2lkIFBsX0FsbG9jYXRlX1N0YWNrcyh2b2lkKTsKPiA+Pj4K PiA+Pj4gdm9pZCBQbF9QdXNoX1NJR1NFR1ZfSGFuZGxlcihTZWd2SGRsciBoYW5kbGVyKTsKPiA+ Pj4KPiA+Pj4gdm9pZCBQbF9Qb3BfU0lHU0VHVl9IYW5kbGVyKHZvaWQpOwo+ID4+PiAjIDU0ICJl bmdpbmVfcGwuaCIgMgo+ID4+PiAjIDEgIm9ial9jaGFpbi5oIiAxCj4gPj4+ICMgNTggIm9ial9j aGFpbi5oIgo+ID4+PiB2b2lkIFBsX0ZpbmRfTGlua2VkX09iamVjdHModm9pZCk7Cj4gPj4+Cj4g Pj4+IHZvaWQgUGxfTmV3X09iamVjdCh2b2lkICgqZmN0X29ial9pbml0KSgpLCB2b2lkICgqZmN0 X2V4ZWNfc3lzdGVtKSAoKSwgdm9pZCAoKmZjdF9leGVjX3VzZXIpICgpKTsKPiA+Pj4gIyA1NSAi ZW5naW5lX3BsLmgiIDIKPiA+Pj4gIyAxICJ3YW1faW5zdC5oIiAxCj4gPj4+ICMgMjQ5ICJ3YW1f aW5zdC5oIgo+ID4+PiB0eXBlZGVmIHN0cnVjdAo+ID4+PiB7Cj4gPj4+ICAgUGxMb25nIGtleTsK PiA+Pj4gICBDb2RlUHRyIGNvZGVwOwo+ID4+PiB9Cj4gPj4+IFN3dEluZjsKPiA+Pj4KPiA+Pj4g dHlwZWRlZiBTd3RJbmYgKlN3dFRibDsKPiA+Pj4gIyAyNjkgIndhbV9pbnN0LmgiCj4gPj4+IFdh bVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0ZV9GdW5jdG9yX0FyaXR5 X1RhZ2dlZChjaGFyICpmdW5jX3N0ciwgaW50IGFyaXR5KTsKPiA+Pj4KPiA+Pj4gU3d0VGJsIF9f YXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVfU3d0X1RhYmxlKGludCBzaXplKTsK PiA+Pj4KPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3JlYXRlX1N3 dF9BdG1fRWxlbWVudChTd3RUYmwgdCwgaW50IHNpemUsIGludCBhdG9tLCBDb2RlUHRyIGNvZGVw KTsKPiA+Pj4KPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3JlYXRl X1N3dF9TdGNfRWxlbWVudChTd3RUYmwgdCwgaW50IHNpemUsIGludCBmdW5jLCBpbnQgYXJpdHks Cj4gPj4+ICAgICAgICBDb2RlUHRyIGNvZGVwKTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0 ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0X0F0b21fVGFnZ2VkKFdhbVdvcmQgdywgV2FtV29yZCBz dGFydF93b3JkKTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkg UGxfR2V0X0F0b20oaW50IGF0b20sIFdhbVdvcmQgc3RhcnRfd29yZCk7Cj4gPj4+Cj4gPj4+IEJv b2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0dldF9JbnRlZ2VyX1RhZ2dlZChXYW1X b3JkIHcsIFdhbVdvcmQgc3RhcnRfd29yZCk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19hdHRyaWJ1dGVf XygocmVncGFybSgzKSkpIFBsX0dldF9JbnRlZ2VyKFBsTG9uZyBuLCBXYW1Xb3JkIHN0YXJ0X3dv cmQpOwo+ID4+Pgo+ID4+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9HZXRf RmxvYXQoZG91YmxlIG4sIFdhbVdvcmQgc3RhcnRfd29yZCk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19h dHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0dldF9OaWwoV2FtV29yZCBzdGFydF93b3JkKTsK PiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0X0xpc3Qo V2FtV29yZCBzdGFydF93b3JkKTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdw YXJtKDMpKSkgUGxfR2V0X1N0cnVjdHVyZV9UYWdnZWQoV2FtV29yZCB3LCBXYW1Xb3JkIHN0YXJ0 X3dvcmQpOwo+ID4+Pgo+ID4+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9H ZXRfU3RydWN0dXJlKGludCBmdW5jLCBpbnQgYXJpdHksIFdhbVdvcmQgc3RhcnRfd29yZCk7Cj4g Pj4+Cj4gPj4+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9YX1Zh cmlhYmxlKHZvaWQpOwo+ID4+Pgo+ID4+PiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0o MykpKSBQbF9QdXRfWV9WYXJpYWJsZShXYW1Xb3JkICp5X2Fkcik7Cj4gPj4+Cj4gPj4+IFdhbVdv cmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9VbnNhZmVfVmFsdWUoV2FtV29y ZCBzdGFydF93b3JkKTsKPiA+Pj4KPiA+Pj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJt KDMpKSkgUGxfUHV0X0F0b21fVGFnZ2VkKFdhbVdvcmQgdyk7Cj4gPj4+Cj4gPj4+IFdhbVdvcmQg X19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9BdG9tKGludCBhdG9tKTsKPiA+Pj4K PiA+Pj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X0ludGVnZXJf VGFnZ2VkKFdhbVdvcmQgdyk7Cj4gPj4+Cj4gPj4+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVn cGFybSgzKSkpIFBsX1B1dF9JbnRlZ2VyKFBsTG9uZyBuKTsKPiA+Pj4KPiA+Pj4gV2FtV29yZCBf X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X0Zsb2F0KGRvdWJsZSBuKTsKPiA+Pj4K PiA+Pj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X05pbCh2b2lk KTsKPiA+Pj4KPiA+Pj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0 X0xpc3Qodm9pZCk7Cj4gPj4+Cj4gPj4+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgz KSkpIFBsX1B1dF9TdHJ1Y3R1cmVfVGFnZ2VkKFdhbVdvcmQgdyk7Cj4gPj4+Cj4gPj4+IFdhbVdv cmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9TdHJ1Y3R1cmUoaW50IGZ1bmMs IGludCBhcml0eSk7Cj4gPj4+Cj4gPj4+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgz KSkpIFBsX1VuaWZ5X1ZhcmlhYmxlKHZvaWQpOwo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRl X18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeV9Wb2lkKGludCBuKTsKPiA+Pj4KPiA+Pj4gQm9vbCBf X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfVmFsdWUoV2FtV29yZCBzdGFydF93 b3JkKTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5p ZnlfTG9jYWxfVmFsdWUoV2FtV29yZCBzdGFydF93b3JkKTsKPiA+Pj4KPiA+Pj4gQm9vbCBfX2F0 dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfQXRvbV9UYWdnZWQoV2FtV29yZCB3KTsK PiA+Pj4KPiA+Pj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfQXRv bShpbnQgYXRvbSk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkp IFBsX1VuaWZ5X0ludGVnZXJfVGFnZ2VkKFdhbVdvcmQgdyk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19h dHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X0ludGVnZXIoUGxMb25nIG4pOwo+ID4+ Pgo+ID4+PiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeV9OaWwodm9p ZCk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5 X0xpc3Qodm9pZCk7Cj4gPj4+Cj4gPj4+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkp IFBsX1VuaWZ5X1N0cnVjdHVyZV9UYWdnZWQoV2FtV29yZCB3KTsKPiA+Pj4KPiA+Pj4gQm9vbCBf X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfU3RydWN0dXJlKGludCBmdW5jLCBp bnQgYXJpdHkpOwo+ID4+Pgo+ID4+PiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykp KSBQbF9HbG9iYWxpemVfSWZfSW5fTG9jYWwoV2FtV29yZCBzdGFydF93b3JkKTsKPiA+Pj4KPiA+ Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQWxsb2NhdGUoaW50IG4pOwo+ ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWFsbG9jYXRl KHZvaWQpOwo+ID4+Pgo+ID4+PiBDb2RlUHRyIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQ bF9Td2l0Y2hfT25fVGVybShDb2RlUHRyIGNfdmFyLCBDb2RlUHRyIGNfYXRtLCBDb2RlUHRyIGNf aW50LAo+ID4+PiAgICAgICAgICAgICBDb2RlUHRyIGNfbHN0LCBDb2RlUHRyIGNfc3RjKTsKPiA+ Pj4gQ29kZVB0ciBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX1Rlcm1f VmFyX0F0bShDb2RlUHRyIGNfdmFyLCBDb2RlUHRyIGNfYXRtKTsKPiA+Pj4gQ29kZVB0ciBfX2F0 dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX1Rlcm1fVmFyX1N0YyhDb2RlUHRy IGNfdmFyLCBDb2RlUHRyIGNfc3RjKTsKPiA+Pj4gQ29kZVB0ciBfX2F0dHJpYnV0ZV9fKChyZWdw YXJtKDMpKSkgUGxfU3dpdGNoX09uX1Rlcm1fVmFyX0F0bV9Mc3QoQ29kZVB0ciBjX3ZhciwgQ29k ZVB0ciBjX2F0bSwKPiA+Pj4gICAgICAgICAgIENvZGVQdHIgY19sc3QpOwo+ID4+PiBDb2RlUHRy IF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Td2l0Y2hfT25fVGVybV9WYXJfQXRtX1N0 YyhDb2RlUHRyIGNfdmFyLCBDb2RlUHRyIGNfYXRtLAo+ID4+PiAgICAgICAgICAgQ29kZVB0ciBj X3N0Yyk7Cj4gPj4+Cj4gPj4+IENvZGVQdHIgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBs X1N3aXRjaF9Pbl9BdG9tKFN3dFRibCB0LCBpbnQgc2l6ZSk7Cj4gPj4+Cj4gPj4+IFBsTG9uZyBf X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX0ludGVnZXIodm9pZCk7Cj4g Pj4+Cj4gPj4+IENvZGVQdHIgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1N3aXRjaF9P bl9TdHJ1Y3R1cmUoU3d0VGJsIHQsIGludCBzaXplKTsKPiA+Pj4KPiA+Pj4gV2FtV29yZCBfX2F0 dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0X0N1cnJlbnRfQ2hvaWNlKHZvaWQpOwo+ID4+ Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DdXQoV2FtV29yZCBi X3dvcmQpOwo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9T b2Z0X0N1dChXYW1Xb3JkIGJfd29yZCk7Cj4gPj4+Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVfXygo cmVncGFybSgzKSkpIFBsX0dsb2JhbF9QdXNoX0Zsb2F0KGRvdWJsZSBuKTsKPiA+Pj4KPiA+Pj4g ZG91YmxlIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9PYnRhaW5fRmxvYXQoV2FtV29y ZCAqYWRyKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMp KSkgUGxfQ3JlYXRlX0Nob2ljZV9Qb2ludChDb2RlUHRyIGNvZGVwX2FsdCwgaW50IGFyaXR5KTsK PiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3JlYXRlX0Nob2ljZV9Q b2ludDAoQ29kZVB0ciBjb2RlcF9hbHQpOwo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bh cm0oMykpKSBQbF9DcmVhdGVfQ2hvaWNlX1BvaW50MShDb2RlUHRyIGNvZGVwX2FsdCk7Cj4gPj4+ IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0ZV9DaG9pY2VfUG9pbnQy KENvZGVQdHIgY29kZXBfYWx0KTsKPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMp KSkgUGxfQ3JlYXRlX0Nob2ljZV9Qb2ludDMoQ29kZVB0ciBjb2RlcF9hbHQpOwo+ID4+PiB2b2lk IF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVfQ2hvaWNlX1BvaW50NChDb2Rl UHRyIGNvZGVwX2FsdCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVn cGFybSgzKSkpIFBsX1VwZGF0ZV9DaG9pY2VfUG9pbnQoQ29kZVB0ciBjb2RlcF9hbHQsIGludCBh cml0eSk7Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VwZGF0ZV9D aG9pY2VfUG9pbnQwKENvZGVQdHIgY29kZXBfYWx0KTsKPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9f KChyZWdwYXJtKDMpKSkgUGxfVXBkYXRlX0Nob2ljZV9Qb2ludDEoQ29kZVB0ciBjb2RlcF9hbHQp Owo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VcGRhdGVfQ2hvaWNl X1BvaW50MihDb2RlUHRyIGNvZGVwX2FsdCk7Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVn cGFybSgzKSkpIFBsX1VwZGF0ZV9DaG9pY2VfUG9pbnQzKENvZGVQdHIgY29kZXBfYWx0KTsKPiA+ Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVXBkYXRlX0Nob2ljZV9Qb2lu dDQoQ29kZVB0ciBjb2RlcF9hbHQpOwo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJl Z3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNlX1BvaW50KGludCBhcml0eSk7Cj4gPj4+IHZvaWQg X19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0RlbGV0ZV9DaG9pY2VfUG9pbnQwKHZvaWQp Owo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNl X1BvaW50MSh2b2lkKTsKPiA+Pj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxf RGVsZXRlX0Nob2ljZV9Qb2ludDIodm9pZCk7Cj4gPj4+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVn cGFybSgzKSkpIFBsX0RlbGV0ZV9DaG9pY2VfUG9pbnQzKHZvaWQpOwo+ID4+PiB2b2lkIF9fYXR0 cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNlX1BvaW50NCh2b2lkKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4gdm9pZCBQbF9EZWZlYXNpYmxlX09wZW4oKTsKPiA+Pj4gdm9pZCBQbF9E ZWZlYXNpYmxlX1VuZG8oKTsKPiA+Pj4gdm9pZCBQbF9EZWZlYXNpYmxlX0Nsb3NlKEJvb2wgdW5k b19iZWZvcmUpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB2b2lkIF9fYXR0cmlidXRlX18oKHJl Z3Bhcm0oMykpKSBQbF9VbnRyYWlsKFdhbVdvcmQgKmxvd19hZHIpOwo+ID4+Pgo+ID4+PiBCb29s IF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9VbmlmeShXYW1Xb3JkIHN0YXJ0X3Vfd29y ZCwgV2FtV29yZCBzdGFydF92X3dvcmQpOwo+ID4+Pgo+ID4+PiBCb29sIF9fYXR0cmlidXRlX18o KHJlZ3Bhcm0oMykpKSBQbF9VbmlmeV9PY2N1cnNfQ2hlY2soV2FtV29yZCBzdGFydF91X3dvcmQs IFdhbVdvcmQgc3RhcnRfdl93b3JkKTsKPiA+Pj4gIyA1NiAiZW5naW5lX3BsLmgiIDIKPiA+Pj4g IyAxICJpZl9ub19mZC5oIiAxCj4gPj4+ICMgNjUgImlmX25vX2ZkLmgiCj4gPj4+IGV4dGVybiB2 b2lkICgqcGxfZmRfaW5pdF9zb2x2ZXIpICgpOwo+ID4+PiBleHRlcm4gdm9pZCAoKnBsX2ZkX3Jl c2V0X3NvbHZlcikgKCk7Cj4gPj4+IGV4dGVybiBCb29sICgqcGxfZmRfdW5pZnlfd2l0aF9pbnRl Z2VyKSAoKTsKPiA+Pj4gZXh0ZXJuIEJvb2wgKCpwbF9mZF91bmlmeV93aXRoX2ZkX3ZhcikgKCk7 Cj4gPj4+IGV4dGVybiBpbnQgKCpwbF9mZF92YXJpYWJsZV9zaXplKSAoKTsKPiA+Pj4gZXh0ZXJu IGludCAoKnBsX2ZkX2NvcHlfdmFyaWFibGUpICgpOwo+ID4+PiBleHRlcm4gY2hhciAqKCpwbF9m ZF92YXJpYWJsZV90b19zdHJpbmcpICgpOwo+ID4+PiAjIDgyICJpZl9ub19mZC5oIgo+ID4+PiB2 b2lkIFBsX0ZkX0luaXRfU29sdmVyKHZvaWQpOwo+ID4+Pgo+ID4+PiB2b2lkIFBsX0ZkX1Jlc2V0 X1NvbHZlcih2b2lkKTsKPiA+Pj4gIyA1NiAiZW5naW5lX3BsLmgiIDIKPiA+Pj4gIyA3MiAibWFj aGluZS5jIiAyCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL21hbGxv Yy5oIiAxIDMgNAo+ID4+PiAjIDIzICIvdXNyL2luY2x1ZGUvbWFsbG9jLmgiIDMgNAo+ID4+PiAj IDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5o IiAxIDMgNAo+ID4+PiAjIDE0OSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x L2luY2x1ZGUvc3RkZGVmLmgiIDMgNAo+ID4+Pgo+ID4+PiAjIDE0OSAiL3Vzci9saWIvZ2NjL2k2 ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDMgNAo+ID4+PiB0eXBlZGVm IGludCBwdHJkaWZmX3Q7Cj4gPj4+ICMgNDI2ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGlu dXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgc3RydWN0IHsKPiA+ Pj4gICBsb25nIGxvbmcgX19tYXhfYWxpZ25fbGwgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18o X19hbGlnbm9mX18obG9uZyBsb25nKSkpKTsKPiA+Pj4gICBsb25nIGRvdWJsZSBfX21heF9hbGln bl9sZCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhfX2FsaWdub2ZfXyhsb25nIGRvdWJsZSkp KSk7Cj4gPj4+IH0gbWF4X2FsaWduX3Q7Cj4gPj4+ICMgMjQgIi91c3IvaW5jbHVkZS9tYWxsb2Mu aCIgMiAzIDQKPiA+Pj4gIyAzNSAiL3Vzci9pbmNsdWRlL21hbGxvYy5oIiAzIDQKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKm1hbGxvYyAoc2l6ZV90IF9fc2l6ZSkgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxs b2NfXykpIDsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKmNhbGxvYyAoc2l6ZV90IF9f bm1lbWIsIHNpemVfdCBfX3NpemUpCj4gPj4+IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSA7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkICpyZWFsbG9jICh2b2lkICpf X3B0ciwgc2l6ZV90IF9fc2l6ZSkKPiA+Pj4gX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBmcmVlICh2b2lkICpfX3B0cikgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZv aWQgY2ZyZWUgKHZvaWQgKl9fcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqbWVtYWxpZ24gKHNpemVfdCBf X2FsaWdubWVudCwgc2l6ZV90IF9fc2l6ZSkKPiA+Pj4gX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpIDsKPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKnZhbGxvYyAoc2l6ZV90IF9fc2l6ZSkgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykp IDsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKnB2YWxsb2MgKHNpemVfdCBf X3NpemUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1 dGVfXyAoKF9fbWFsbG9jX18pKSA7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lk ICooKl9fbW9yZWNvcmUpIChwdHJkaWZmX3QgX19zaXplKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0 ZXJuIHZvaWQgKl9fZGVmYXVsdF9tb3JlY29yZSAocHRyZGlmZl90IF9fc2l6ZSkKPiA+Pj4gX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19t YWxsb2NfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3QgbWFsbGluZm8KPiA+Pj4g ewo+ID4+PiAgIGludCBhcmVuYTsKPiA+Pj4gICBpbnQgb3JkYmxrczsKPiA+Pj4gICBpbnQgc21i bGtzOwo+ID4+PiAgIGludCBoYmxrczsKPiA+Pj4gICBpbnQgaGJsa2hkOwo+ID4+PiAgIGludCB1 c21ibGtzOwo+ID4+PiAgIGludCBmc21ibGtzOwo+ID4+PiAgIGludCB1b3JkYmxrczsKPiA+Pj4g ICBpbnQgZm9yZGJsa3M7Cj4gPj4+ICAgaW50IGtlZXBjb3N0Owo+ID4+PiB9Owo+ID4+Pgo+ID4+ Pgo+ID4+PiBleHRlcm4gc3RydWN0IG1hbGxpbmZvIG1hbGxpbmZvICh2b2lkKSBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDEyMSAiL3Vzci9pbmNsdWRl L21hbGxvYy5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBtYWxsb3B0IChpbnQgX19wYXJhbSwgaW50 IF9fdmFsKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IG1hbGxvY190cmltIChzaXplX3QgX19wYWQpIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBzaXplX3QgbWFsbG9jX3VzYWJsZV9zaXplICh2b2lkICpfX3B0cikgX19h dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIHZvaWQgbWFsbG9jX3N0YXRzICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93 X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IG1hbGxvY19pbmZv IChpbnQgX19vcHRpb25zLCBGSUxFICpfX2ZwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCAqbWFsbG9jX2dldF9z dGF0ZSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBtYWxsb2Nfc2V0X3N0YXRlICh2b2lkICpf X3B0cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKCp2b2xhdGlsZSBfX21hbGxvY19pbml0 aWFsaXplX2hvb2spICh2b2lkKQo+ID4+PiBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18p KTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgKCp2b2xhdGlsZSBfX2ZyZWVfaG9vaykgKHZvaWQg Kl9fcHRyLAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCB2b2lkICopCj4gPj4+IF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0ZWRf XykpOwo+ID4+PiBleHRlcm4gdm9pZCAqKCp2b2xhdGlsZSBfX21hbGxvY19ob29rKShzaXplX3Qg X19zaXplLAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHZvaWQgKikKPiA+Pj4gX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRl ZF9fKSk7Cj4gPj4+IGV4dGVybiB2b2lkICooKnZvbGF0aWxlIF9fcmVhbGxvY19ob29rKSh2b2lk ICpfX3B0ciwKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZV90IF9fc2l6ZSwKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqKQo+ID4+PiBfX2F0dHJp YnV0ZV9fICgoX19kZXByZWNhdGVkX18pKTsKPiA+Pj4gZXh0ZXJuIHZvaWQgKigqdm9sYXRpbGUg X19tZW1hbGlnbl9ob29rKShzaXplX3QgX19hbGlnbm1lbnQsCj4gPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19zaXplLAo+ ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgdm9pZCAqKQo+ID4+PiBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18pKTsK PiA+Pj4gZXh0ZXJuIHZvaWQgKCp2b2xhdGlsZSBfX2FmdGVyX21vcmVjb3JlX2hvb2spICh2b2lk KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgX19tYWxsb2NfY2hlY2tfaW5pdCAodm9p ZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9f ICgoX19kZXByZWNhdGVkX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyA3NiAibWFjaGlu ZS5jIiAyCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRlL25l dGRiLmgiIDEgMyA0Cj4gPj4+ICMgMjcgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPiA+Pj4g IyAxICIvdXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAxIDMgNAo+ID4+PiAjIDIzICIvdXNyL2lu Y2x1ZGUvbmV0aW5ldC9pbi5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tl dC5oIiAxIDMgNAo+ID4+PiAjIDI0ICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQKPiA+ Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvc3lzL3Vpby5oIiAxIDMgNAo+ID4+PiAj IDI1ICIvdXNyL2luY2x1ZGUvc3lzL3Vpby5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g IyAxICIvdXNyL2luY2x1ZGUvYml0cy91aW8uaCIgMSAzIDQKPiA+Pj4gIyA0MyAiL3Vzci9pbmNs dWRlL2JpdHMvdWlvLmgiIDMgNAo+ID4+PiBzdHJ1Y3QgaW92ZWMKPiA+Pj4gICB7Cj4gPj4+ICAg ICB2b2lkICppb3ZfYmFzZTsKPiA+Pj4gICAgIHNpemVfdCBpb3ZfbGVuOwo+ID4+PiAgIH07Cj4g Pj4+ICMgMjkgIi91c3IvaW5jbHVkZS9zeXMvdWlvLmgiIDIgMyA0Cj4gPj4+ICMgMzkgIi91c3Iv aW5jbHVkZS9zeXMvdWlvLmgiIDMgNAo+ID4+PiBleHRlcm4gc3NpemVfdCByZWFkdiAoaW50IF9f ZmQsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqX19pb3ZlYywgaW50IF9fY291bnQpCj4gPj4+ICAgOwo+ ID4+PiAjIDUwICIvdXNyL2luY2x1ZGUvc3lzL3Vpby5oIiAzIDQKPiA+Pj4gZXh0ZXJuIHNzaXpl X3Qgd3JpdGV2IChpbnQgX19mZCwgY29uc3Qgc3RydWN0IGlvdmVjICpfX2lvdmVjLCBpbnQgX19j b3VudCkKPiA+Pj4gICA7Cj4gPj4+ICMgNjUgIi91c3IvaW5jbHVkZS9zeXMvdWlvLmgiIDMgNAo+ ID4+PiBleHRlcm4gc3NpemVfdCBwcmVhZHYgKGludCBfX2ZkLCBjb25zdCBzdHJ1Y3QgaW92ZWMg Kl9faW92ZWMsIGludCBfX2NvdW50LAo+ID4+PiAgICAgICAgICBfX29mZl90IF9fb2Zmc2V0KSA7 Cj4gPj4+ICMgNzcgIi91c3IvaW5jbHVkZS9zeXMvdWlvLmgiIDMgNAo+ID4+PiBleHRlcm4gc3Np emVfdCBwd3JpdGV2IChpbnQgX19mZCwgY29uc3Qgc3RydWN0IGlvdmVjICpfX2lvdmVjLCBpbnQg X19jb3VudCwKPiA+Pj4gICAgX19vZmZfdCBfX29mZnNldCkgOwo+ID4+PiAjIDEyMCAiL3Vzci9p bmNsdWRlL3N5cy91aW8uaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjcgIi91c3IvaW5jbHVkZS9zeXMv c29ja2V0LmgiIDIgMyA0Cj4gPj4+Cj4gPj4+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0 LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gPj4+ICMgMjkgIi91c3IvaW5j bHVkZS9zeXMvc29ja2V0LmgiIDIgMyA0Cj4gPj4+ICMgMzggIi91c3IvaW5jbHVkZS9zeXMvc29j a2V0LmgiIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAxIDMgNAo+ ID4+PiAjIDI3ICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vz ci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0 Cj4gPj4+ICMgMjggIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAyIDMgNAo+ID4+PiAjIDM4 ICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L2JpdHMvc29ja2V0X3R5cGUuaCIgMSAzIDQKPiA+Pj4gIyAyNCAiL3Vzci9pbmNsdWRlL2JpdHMv c29ja2V0X3R5cGUuaCIgMyA0Cj4gPj4+IGVudW0gX19zb2NrZXRfdHlwZQo+ID4+PiB7Cj4gPj4+ ICAgU09DS19TVFJFQU0gPSAxLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgIFNPQ0tfREdSQU0gPSAyLAo+ ID4+Pgo+ID4+Pgo+ID4+PiAgIFNPQ0tfUkFXID0gMywKPiA+Pj4KPiA+Pj4gICBTT0NLX1JETSA9 IDQsCj4gPj4+Cj4gPj4+ICAgU09DS19TRVFQQUNLRVQgPSA1LAo+ID4+Pgo+ID4+Pgo+ID4+PiAg IFNPQ0tfRENDUCA9IDYsCj4gPj4+Cj4gPj4+ICAgU09DS19QQUNLRVQgPSAxMCwKPiA+Pj4KPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gICBTT0NLX0NMT0VYRUMgPSAw MjAwMDAwMCwKPiA+Pj4KPiA+Pj4KPiA+Pj4gICBTT0NLX05PTkJMT0NLID0gMDAwMDQwMDAKPiA+ Pj4KPiA+Pj4KPiA+Pj4gfTsKPiA+Pj4gIyAzOSAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0Lmgi IDIgMyA0Cj4gPj4+ICMgMTUwICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gPj4+ ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2FkZHIuaCIgMSAzIDQKPiA+Pj4gIyAyOCAiL3Vz ci9pbmNsdWRlL2JpdHMvc29ja2FkZHIuaCIgMyA0Cj4gPj4+IHR5cGVkZWYgdW5zaWduZWQgc2hv cnQgaW50IHNhX2ZhbWlseV90Owo+ID4+PiAjIDE1MSAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0 LmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBzb2NrYWRkcgo+ID4+PiAgIHsKPiA+ Pj4gICAgIHNhX2ZhbWlseV90IHNhX2ZhbWlseTsKPiA+Pj4gICAgIGNoYXIgc2FfZGF0YVsxNF07 Cj4gPj4+ICAgfTsKPiA+Pj4gIyAxNjYgIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAzIDQK PiA+Pj4gc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UKPiA+Pj4gICB7Cj4gPj4+ICAgICBzYV9mYW1p bHlfdCBzc19mYW1pbHk7Cj4gPj4+ICAgICBjaGFyIF9fc3NfcGFkZGluZ1soMTI4IC0gKHNpemVv ZiAodW5zaWduZWQgc2hvcnQgaW50KSkgLSBzaXplb2YgKHVuc2lnbmVkIGxvbmcgaW50KSldOwo+ ID4+PiAgICAgdW5zaWduZWQgbG9uZyBpbnQgX19zc19hbGlnbjsKPiA+Pj4gICB9Owo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBlbnVtCj4gPj4+ICAgewo+ID4+PiAgICAgTVNHX09PQiA9IDB4MDEs Cj4gPj4+Cj4gPj4+ICAgICBNU0dfUEVFSyA9IDB4MDIsCj4gPj4+Cj4gPj4+ICAgICBNU0dfRE9O VFJPVVRFID0gMHgwNCwKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ICAgIE1TR19DVFJVTkMgPSAweDA4LAo+ID4+Pgo+ID4+PiAgICAgTVNHX1BST1hZID0gMHgxMCwK PiA+Pj4KPiA+Pj4gICAgIE1TR19UUlVOQyA9IDB4MjAsCj4gPj4+Cj4gPj4+ICAgICBNU0dfRE9O VFdBSVQgPSAweDQwLAo+ID4+Pgo+ID4+PiAgICAgTVNHX0VPUiA9IDB4ODAsCj4gPj4+Cj4gPj4+ ICAgICBNU0dfV0FJVEFMTCA9IDB4MTAwLAo+ID4+Pgo+ID4+PiAgICAgTVNHX0ZJTiA9IDB4MjAw LAo+ID4+Pgo+ID4+PiAgICAgTVNHX1NZTiA9IDB4NDAwLAo+ID4+Pgo+ID4+PiAgICAgTVNHX0NP TkZJUk0gPSAweDgwMCwKPiA+Pj4KPiA+Pj4gICAgIE1TR19SU1QgPSAweDEwMDAsCj4gPj4+Cj4g Pj4+ICAgICBNU0dfRVJSUVVFVUUgPSAweDIwMDAsCj4gPj4+Cj4gPj4+ICAgICBNU0dfTk9TSUdO QUwgPSAweDQwMDAsCj4gPj4+Cj4gPj4+ICAgICBNU0dfTU9SRSA9IDB4ODAwMCwKPiA+Pj4KPiA+ Pj4gICAgIE1TR19XQUlURk9ST05FID0gMHgxMDAwMCwKPiA+Pj4KPiA+Pj4gICAgIE1TR19GQVNU T1BFTiA9IDB4MjAwMDAwMDAsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBNU0dfQ01TR19DTE9FWEVD ID0gMHg0MDAwMDAwMAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBtc2doZHIKPiA+Pj4gICB7Cj4gPj4+ICAgICB2b2lkICpt c2dfbmFtZTsKPiA+Pj4gICAgIHNvY2tsZW5fdCBtc2dfbmFtZWxlbjsKPiA+Pj4KPiA+Pj4gICAg IHN0cnVjdCBpb3ZlYyAqbXNnX2lvdjsKPiA+Pj4gICAgIHNpemVfdCBtc2dfaW92bGVuOwo+ID4+ Pgo+ID4+PiAgICAgdm9pZCAqbXNnX2NvbnRyb2w7Cj4gPj4+ICAgICBzaXplX3QgbXNnX2NvbnRy b2xsZW47Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBpbnQgbXNnX2ZsYWdzOwo+ ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBjbXNnaGRyCj4gPj4+ICAgewo+ID4+ PiAgICAgc2l6ZV90IGNtc2dfbGVuOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAg aW50IGNtc2dfbGV2ZWw7Cj4gPj4+ICAgICBpbnQgY21zZ190eXBlOwo+ID4+Pgo+ID4+PiAgICAg X19leHRlbnNpb25fXyB1bnNpZ25lZCBjaGFyIF9fY21zZ19kYXRhIFtdOwo+ID4+Pgo+ID4+PiAg IH07Cj4gPj4+ICMgMjc2ICIvdXNyL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gPj4+IGV4 dGVybiBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnX254dGhkciAoc3RydWN0IG1zZ2hkciAqX19taGRy LAo+ID4+PiAgICAgICAgICAgc3RydWN0IGNtc2doZHIgKl9fY21zZykgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyAzMDMgIi91c3IvaW5jbHVkZS9iaXRz L3NvY2tldC5oIiAzIDQKPiA+Pj4gZW51bQo+ID4+PiAgIHsKPiA+Pj4gICAgIFNDTV9SSUdIVFMg PSAweDAxCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgfTsKPiA+Pj4gIyAz NDkgIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1 ZGUvYXNtL3NvY2tldC5oIiAxIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20tZ2VuZXJp Yy9zb2NrZXQuaCIgMSAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1 ZGUvYXNtL3NvY2tpb3MuaCIgMSAzIDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYXNtLWdlbmVy aWMvc29ja2lvcy5oIiAxIDMgNAo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hc20vc29ja2lvcy5o IiAyIDMgNAo+ID4+PiAjIDUgIi91c3IvaW5jbHVkZS9hc20tZ2VuZXJpYy9zb2NrZXQuaCIgMiAz IDQKPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYXNtL3NvY2tldC5oIiAyIDMgNAo+ID4+PiAjIDM1 MCAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDIgMyA0Cj4gPj4+ICMgMzgzICIvdXNyL2lu Y2x1ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gPj4+IHN0cnVjdCBsaW5nZXIKPiA+Pj4gICB7Cj4g Pj4+ICAgICBpbnQgbF9vbm9mZjsKPiA+Pj4gICAgIGludCBsX2xpbmdlcjsKPiA+Pj4gICB9Owo+ ID4+PiAjIDM5ICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAyIDMgNAo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3Qgb3NvY2thZGRyCj4gPj4+ICAgewo+ID4+PiAgICAgdW5z aWduZWQgc2hvcnQgaW50IHNhX2ZhbWlseTsKPiA+Pj4gICAgIHVuc2lnbmVkIGNoYXIgc2FfZGF0 YVsxNF07Cj4gPj4+ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZW51bQo+ID4+ PiB7Cj4gPj4+ICAgU0hVVF9SRCA9IDAsCj4gPj4+Cj4gPj4+ICAgU0hVVF9XUiwKPiA+Pj4KPiA+ Pj4gICBTSFVUX1JEV1IKPiA+Pj4KPiA+Pj4gfTsKPiA+Pj4gIyAxMTMgIi91c3IvaW5jbHVkZS9z eXMvc29ja2V0LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHNvY2tldCAoaW50IF9fZG9tYWluLCBp bnQgX190eXBlLCBpbnQgX19wcm90b2NvbCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg X19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGlu dCBzb2NrZXRwYWlyIChpbnQgX19kb21haW4sIGludCBfX3R5cGUsIGludCBfX3Byb3RvY29sLAo+ ID4+PiAgICAgICAgICBpbnQgX19mZHNbMl0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs IF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgYmluZCAoaW50IF9fZmQs IGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqIF9fYWRkciwgc29ja2xlbl90IF9fbGVuKQo+ID4+PiAg ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+ Cj4gPj4+IGV4dGVybiBpbnQgZ2V0c29ja25hbWUgKGludCBfX2ZkLCBzdHJ1Y3Qgc29ja2FkZHIg Kl9fcmVzdHJpY3QgX19hZGRyLAo+ID4+PiAgICBzb2NrbGVuX3QgKl9fcmVzdHJpY3QgX19sZW4p IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ICMgMTM3ICIv dXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBjb25uZWN0IChp bnQgX19mZCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICogX19hZGRyLCBzb2NrbGVuX3QgX19sZW4p Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHBlZXJuYW1lIChpbnQgX19m ZCwgc3RydWN0IHNvY2thZGRyICpfX3Jlc3RyaWN0IF9fYWRkciwKPiA+Pj4gICAgc29ja2xlbl90 ICpfX3Jlc3RyaWN0IF9fbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf XykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3Np emVfdCBzZW5kIChpbnQgX19mZCwgY29uc3Qgdm9pZCAqX19idWYsIHNpemVfdCBfX24sIGludCBf X2ZsYWdzKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJu IHNzaXplX3QgcmVjdiAoaW50IF9fZmQsIHZvaWQgKl9fYnVmLCBzaXplX3QgX19uLCBpbnQgX19m bGFncyk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBz c2l6ZV90IHNlbmR0byAoaW50IF9fZmQsIGNvbnN0IHZvaWQgKl9fYnVmLCBzaXplX3QgX19uLAo+ ID4+PiAgICAgICAgICBpbnQgX19mbGFncywgY29uc3Qgc3RydWN0IHNvY2thZGRyICogX19hZGRy LAo+ID4+PiAgICAgICAgICBzb2NrbGVuX3QgX19hZGRyX2xlbik7Cj4gPj4+ICMgMTc0ICIvdXNy L2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQKPiA+Pj4gZXh0ZXJuIHNzaXplX3QgcmVjdmZyb20g KGludCBfX2ZkLCB2b2lkICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19uLAo+ID4+PiAgICAg aW50IF9fZmxhZ3MsIHN0cnVjdCBzb2NrYWRkciAqX19yZXN0cmljdCBfX2FkZHIsCj4gPj4+ICAg ICBzb2NrbGVuX3QgKl9fcmVzdHJpY3QgX19hZGRyX2xlbik7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzc2l6ZV90IHNlbmRtc2cgKGludCBf X2ZkLCBjb25zdCBzdHJ1Y3QgbXNnaGRyICpfX21lc3NhZ2UsCj4gPj4+ICAgIGludCBfX2ZsYWdz KTsKPiA+Pj4gIyAyMDIgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0LmgiIDMgNAo+ID4+PiBleHRl cm4gc3NpemVfdCByZWN2bXNnIChpbnQgX19mZCwgc3RydWN0IG1zZ2hkciAqX19tZXNzYWdlLCBp bnQgX19mbGFncyk7Cj4gPj4+ICMgMjE5ICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQK PiA+Pj4gZXh0ZXJuIGludCBnZXRzb2Nrb3B0IChpbnQgX19mZCwgaW50IF9fbGV2ZWwsIGludCBf X29wdG5hbWUsCj4gPj4+ICAgICAgICAgIHZvaWQgKl9fcmVzdHJpY3QgX19vcHR2YWwsCj4gPj4+ ICAgICAgICAgIHNvY2tsZW5fdCAqX19yZXN0cmljdCBfX29wdGxlbikgX19hdHRyaWJ1dGVfXyAo KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIGludCBzZXRzb2Nrb3B0IChpbnQgX19mZCwgaW50IF9fbGV2ZWwsIGludCBfX29wdG5h bWUsCj4gPj4+ICAgICAgICAgIGNvbnN0IHZvaWQgKl9fb3B0dmFsLCBzb2NrbGVuX3QgX19vcHRs ZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgbGlzdGVuIChpbnQgX19mZCwgaW50 IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gIyAy NDMgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0LmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGFjY2Vw dCAoaW50IF9fZmQsIHN0cnVjdCBzb2NrYWRkciAqX19yZXN0cmljdCBfX2FkZHIsCj4gPj4+ICAg ICAgc29ja2xlbl90ICpfX3Jlc3RyaWN0IF9fYWRkcl9sZW4pOwo+ID4+PiAjIDI2MSAiL3Vzci9p bmNsdWRlL3N5cy9zb2NrZXQuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgc2h1dGRvd24gKGludCBf X2ZkLCBpbnQgX19ob3cpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgc29ja2F0bWFyayAoaW50 IF9fZmQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgaXNmZHR5 cGUgKGludCBfX2ZkLCBpbnQgX19mZHR5cGUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs IF9fbGVhZl9fKSk7Cj4gPj4+ICMgMjgzICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQK PiA+Pj4KPiA+Pj4gIyAyNCAiL3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaCIgMiAzIDQKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1aW50MzJfdCBpbl9h ZGRyX3Q7Cj4gPj4+IHN0cnVjdCBpbl9hZGRyCj4gPj4+ICAgewo+ID4+PiAgICAgaW5fYWRkcl90 IHNfYWRkcjsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9i aXRzL2luLmgiIDEgMyA0Cj4gPj4+ICMgMTMzICIvdXNyL2luY2x1ZGUvYml0cy9pbi5oIiAzIDQK PiA+Pj4gc3RydWN0IGlwX29wdHMKPiA+Pj4gICB7Cj4gPj4+ICAgICBzdHJ1Y3QgaW5fYWRkciBp cF9kc3Q7Cj4gPj4+ICAgICBjaGFyIGlwX29wdHNbNDBdOwo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+ Cj4gPj4+IHN0cnVjdCBpcF9tcmVxbgo+ID4+PiAgIHsKPiA+Pj4gICAgIHN0cnVjdCBpbl9hZGRy IGltcl9tdWx0aWFkZHI7Cj4gPj4+ICAgICBzdHJ1Y3QgaW5fYWRkciBpbXJfYWRkcmVzczsKPiA+ Pj4gICAgIGludCBpbXJfaWZpbmRleDsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1 Y3QgaW5fcGt0aW5mbwo+ID4+PiAgIHsKPiA+Pj4gICAgIGludCBpcGlfaWZpbmRleDsKPiA+Pj4g ICAgIHN0cnVjdCBpbl9hZGRyIGlwaV9zcGVjX2RzdDsKPiA+Pj4gICAgIHN0cnVjdCBpbl9hZGRy IGlwaV9hZGRyOwo+ID4+PiAgIH07Cj4gPj4+ICMgMzggIi91c3IvaW5jbHVkZS9uZXRpbmV0L2lu LmgiIDIgMyA0Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gICB7Cj4gPj4+ICAgICBJUFBS T1RPX0lQID0gMCwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fSUNNUCA9IDEsCj4gPj4+Cj4gPj4+ ICAgICBJUFBST1RPX0lHTVAgPSAyLAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19JUElQID0gNCwK PiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fVENQID0gNiwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9f RUdQID0gOCwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fUFVQID0gMTIsCj4gPj4+Cj4gPj4+ICAg ICBJUFBST1RPX1VEUCA9IDE3LAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19JRFAgPSAyMiwKPiA+ Pj4KPiA+Pj4gICAgIElQUFJPVE9fVFAgPSAyOSwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fREND UCA9IDMzLAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19JUFY2ID0gNDEsCj4gPj4+Cj4gPj4+ICAg ICBJUFBST1RPX1JTVlAgPSA0NiwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fR1JFID0gNDcsCj4g Pj4+Cj4gPj4+ICAgICBJUFBST1RPX0VTUCA9IDUwLAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19B SCA9IDUxLAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19NVFAgPSA5MiwKPiA+Pj4KPiA+Pj4gICAg IElQUFJPVE9fQkVFVFBIID0gOTQsCj4gPj4+Cj4gPj4+ICAgICBJUFBST1RPX0VOQ0FQID0gOTgs Cj4gPj4+Cj4gPj4+ICAgICBJUFBST1RPX1BJTSA9IDEwMywKPiA+Pj4KPiA+Pj4gICAgIElQUFJP VE9fQ09NUCA9IDEwOCwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fU0NUUCA9IDEzMiwKPiA+Pj4K PiA+Pj4gICAgIElQUFJPVE9fVURQTElURSA9IDEzNiwKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9f TVBMUyA9IDEzNywKPiA+Pj4KPiA+Pj4gICAgIElQUFJPVE9fUkFXID0gMjU1LAo+ID4+Pgo+ID4+ PiAgICAgSVBQUk9UT19NQVgKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+PiBlbnVtCj4gPj4+ICAgewo+ID4+PiAgICAgSVBQUk9UT19IT1BPUFRTID0gMCwKPiA+ Pj4KPiA+Pj4gICAgIElQUFJPVE9fUk9VVElORyA9IDQzLAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9U T19GUkFHTUVOVCA9IDQ0LAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19JQ01QVjYgPSA1OCwKPiA+ Pj4KPiA+Pj4gICAgIElQUFJPVE9fTk9ORSA9IDU5LAo+ID4+Pgo+ID4+PiAgICAgSVBQUk9UT19E U1RPUFRTID0gNjAsCj4gPj4+Cj4gPj4+ICAgICBJUFBST1RPX01IID0gMTM1Cj4gPj4+Cj4gPj4+ ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gdHlwZWRlZiB1aW50MTZfdCBpbl9wb3J0X3Q7 Cj4gPj4+Cj4gPj4+Cj4gPj4+IGVudW0KPiA+Pj4gICB7Cj4gPj4+ICAgICBJUFBPUlRfRUNITyA9 IDcsCj4gPj4+ICAgICBJUFBPUlRfRElTQ0FSRCA9IDksCj4gPj4+ICAgICBJUFBPUlRfU1lTVEFU ID0gMTEsCj4gPj4+ICAgICBJUFBPUlRfREFZVElNRSA9IDEzLAo+ID4+PiAgICAgSVBQT1JUX05F VFNUQVQgPSAxNSwKPiA+Pj4gICAgIElQUE9SVF9GVFAgPSAyMSwKPiA+Pj4gICAgIElQUE9SVF9U RUxORVQgPSAyMywKPiA+Pj4gICAgIElQUE9SVF9TTVRQID0gMjUsCj4gPj4+ICAgICBJUFBPUlRf VElNRVNFUlZFUiA9IDM3LAo+ID4+PiAgICAgSVBQT1JUX05BTUVTRVJWRVIgPSA0MiwKPiA+Pj4g ICAgIElQUE9SVF9XSE9JUyA9IDQzLAo+ID4+PiAgICAgSVBQT1JUX01UUCA9IDU3LAo+ID4+Pgo+ ID4+PiAgICAgSVBQT1JUX1RGVFAgPSA2OSwKPiA+Pj4gICAgIElQUE9SVF9SSkUgPSA3NywKPiA+ Pj4gICAgIElQUE9SVF9GSU5HRVIgPSA3OSwKPiA+Pj4gICAgIElQUE9SVF9UVFlMSU5LID0gODcs Cj4gPj4+ICAgICBJUFBPUlRfU1VQRFVQID0gOTUsCj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBJUFBP UlRfRVhFQ1NFUlZFUiA9IDUxMiwKPiA+Pj4gICAgIElQUE9SVF9MT0dJTlNFUlZFUiA9IDUxMywK PiA+Pj4gICAgIElQUE9SVF9DTURTRVJWRVIgPSA1MTQsCj4gPj4+ICAgICBJUFBPUlRfRUZTU0VS VkVSID0gNTIwLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgSVBQT1JUX0JJRkZVRFAgPSA1MTIsCj4g Pj4+ICAgICBJUFBPUlRfV0hPU0VSVkVSID0gNTEzLAo+ID4+PiAgICAgSVBQT1JUX1JPVVRFU0VS VkVSID0gNTIwLAo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgSVBQT1JUX1JFU0VSVkVEID0gMTAyNCwK PiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIElQUE9SVF9VU0VSUkVTRVJWRUQgPSA1MDAwCj4gPj4+ICAg fTsKPiA+Pj4gIyAyMTEgIi91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDMgNAo+ID4+PiBzdHJ1 Y3QgaW42X2FkZHIKPiA+Pj4gICB7Cj4gPj4+ICAgICB1bmlvbgo+ID4+PiAgICAgICB7Cj4gPj4+ ICB1aW50OF90IF9fdTZfYWRkcjhbMTZdOwo+ID4+Pgo+ID4+PiAgdWludDE2X3QgX191Nl9hZGRy MTZbOF07Cj4gPj4+ICB1aW50MzJfdCBfX3U2X2FkZHIzMls0XTsKPiA+Pj4KPiA+Pj4gICAgICAg fSBfX2luNl91Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIH07Cj4gPj4+ Cj4gPj4+Cj4gPj4+IGV4dGVybiBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgaW42YWRkcl9hbnk7Cj4g Pj4+IGV4dGVybiBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgaW42YWRkcl9sb29wYmFjazsKPiA+Pj4g IyAyMzkgIi91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDMgNAo+ID4+PiBzdHJ1Y3Qgc29ja2Fk ZHJfaW4KPiA+Pj4gICB7Cj4gPj4+ICAgICBzYV9mYW1pbHlfdCBzaW5fZmFtaWx5Owo+ID4+PiAg ICAgaW5fcG9ydF90IHNpbl9wb3J0Owo+ID4+PiAgICAgc3RydWN0IGluX2FkZHIgc2luX2FkZHI7 Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICB1bnNpZ25lZCBjaGFyIHNpbl96ZXJvW3NpemVvZiAoc3Ry dWN0IHNvY2thZGRyKSAtCj4gPj4+ICAgICAgIChzaXplb2YgKHVuc2lnbmVkIHNob3J0IGludCkp IC0KPiA+Pj4gICAgICAgc2l6ZW9mIChpbl9wb3J0X3QpIC0KPiA+Pj4gICAgICAgc2l6ZW9mIChz dHJ1Y3QgaW5fYWRkcildOwo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVj dCBzb2NrYWRkcl9pbjYKPiA+Pj4gICB7Cj4gPj4+ICAgICBzYV9mYW1pbHlfdCBzaW42X2ZhbWls eTsKPiA+Pj4gICAgIGluX3BvcnRfdCBzaW42X3BvcnQ7Cj4gPj4+ICAgICB1aW50MzJfdCBzaW42 X2Zsb3dpbmZvOwo+ID4+PiAgICAgc3RydWN0IGluNl9hZGRyIHNpbjZfYWRkcjsKPiA+Pj4gICAg IHVpbnQzMl90IHNpbjZfc2NvcGVfaWQ7Cj4gPj4+ICAgfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gc3RydWN0IGlwX21yZXEKPiA+Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1Y3Qg aW5fYWRkciBpbXJfbXVsdGlhZGRyOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgc3RydWN0IGluX2Fk ZHIgaW1yX2ludGVyZmFjZTsKPiA+Pj4gICB9Owo+ID4+Pgo+ID4+PiBzdHJ1Y3QgaXBfbXJlcV9z b3VyY2UKPiA+Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1Y3QgaW5fYWRkciBpbXJfbXVsdGlh ZGRyOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgc3RydWN0IGluX2FkZHIgaW1yX2ludGVyZmFjZTsK PiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIHN0cnVjdCBpbl9hZGRyIGltcl9zb3VyY2VhZGRyOwo+ID4+ PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBpcHY2X21yZXEKPiA+ Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1Y3QgaW42X2FkZHIgaXB2Nm1yX211bHRpYWRkcjsK PiA+Pj4KPiA+Pj4KPiA+Pj4gICAgIHVuc2lnbmVkIGludCBpcHY2bXJfaW50ZXJmYWNlOwo+ID4+ PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBncm91cF9yZXEKPiA+ Pj4gICB7Cj4gPj4+Cj4gPj4+ICAgICB1aW50MzJfdCBncl9pbnRlcmZhY2U7Cj4gPj4+Cj4gPj4+ Cj4gPj4+ICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBncl9ncm91cDsKPiA+Pj4gICB9Owo+ ID4+Pgo+ID4+PiBzdHJ1Y3QgZ3JvdXBfc291cmNlX3JlcQo+ID4+PiAgIHsKPiA+Pj4KPiA+Pj4g ICAgIHVpbnQzMl90IGdzcl9pbnRlcmZhY2U7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1Y3Qg c29ja2FkZHJfc3RvcmFnZSBnc3JfZ3JvdXA7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICBzdHJ1Y3Qg c29ja2FkZHJfc3RvcmFnZSBnc3Jfc291cmNlOwo+ID4+PiAgIH07Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+IHN0cnVjdCBpcF9tc2ZpbHRlcgo+ID4+PiAgIHsKPiA+Pj4KPiA+Pj4gICAgIHN0cnVj dCBpbl9hZGRyIGltc2ZfbXVsdGlhZGRyOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgc3RydWN0IGlu X2FkZHIgaW1zZl9pbnRlcmZhY2U7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICB1aW50MzJfdCBpbXNm X2Ztb2RlOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgdWludDMyX3QgaW1zZl9udW1zcmM7Cj4gPj4+ Cj4gPj4+ICAgICBzdHJ1Y3QgaW5fYWRkciBpbXNmX3NsaXN0WzFdOwo+ID4+PiAgIH07Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0cnVjdCBncm91cF9maWx0ZXIKPiA+Pj4g ICB7Cj4gPj4+Cj4gPj4+ICAgICB1aW50MzJfdCBnZl9pbnRlcmZhY2U7Cj4gPj4+Cj4gPj4+Cj4g Pj4+ICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBnZl9ncm91cDsKPiA+Pj4KPiA+Pj4KPiA+ Pj4gICAgIHVpbnQzMl90IGdmX2Ztb2RlOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgdWludDMyX3Qg Z2ZfbnVtc3JjOwo+ID4+Pgo+ID4+PiAgICAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgZ2Zfc2xp c3RbMV07Cj4gPj4+IH07Cj4gPj4+ICMgMzc2ICIvdXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAz IDQKPiA+Pj4gZXh0ZXJuIHVpbnQzMl90IG50b2hsICh1aW50MzJfdCBfX25ldGxvbmcpIF9fYXR0 cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29u c3RfXykpOwo+ID4+PiBleHRlcm4gdWludDE2X3QgbnRvaHMgKHVpbnQxNl90IF9fbmV0c2hvcnQp Cj4gPj4+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0 dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gPj4+IGV4dGVybiB1aW50MzJfdCBodG9ubCAodWlu dDMyX3QgX19ob3N0bG9uZykKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPiA+Pj4gZXh0ZXJuIHVp bnQxNl90IGh0b25zICh1aW50MTZfdCBfX2hvc3RzaG9ydCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0 ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18p KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9i eXRlc3dhcC5oIiAxIDMgNAo+ID4+PiAjIDM4OCAiL3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaCIg MiAzIDQKPiA+Pj4gIyA1MDMgIi91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDMgNAo+ID4+PiBl eHRlcm4gaW50IGJpbmRyZXN2cG9ydCAoaW50IF9fc29ja2ZkLCBzdHJ1Y3Qgc29ja2FkZHJfaW4g Kl9fc29ja19pbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBiaW5kcmVzdnBvcnQ2IChpbnQgX19zb2NrZmQsIHN0 cnVjdCBzb2NrYWRkcl9pbjYgKl9fc29ja19pbikKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgo X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+PiAjIDYzMSAiL3Vzci9pbmNsdWRlL25ldGlu ZXQvaW4uaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgMjggIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAyIDMg NAo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9ycGMvbmV0 ZGIuaCIgMSAzIDQKPiA+Pj4gIyA0MiAiL3Vzci9pbmNsdWRlL3JwYy9uZXRkYi5oIiAzIDQKPiA+ Pj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRk ZWYuaCIgMSAzIDQKPiA+Pj4gIyA0MyAiL3Vzci9pbmNsdWRlL3JwYy9uZXRkYi5oIiAyIDMgNAo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBzdHJ1Y3QgcnBjZW50Cj4gPj4+IHsKPiA+Pj4gICBjaGFy ICpyX25hbWU7Cj4gPj4+ICAgY2hhciAqKnJfYWxpYXNlczsKPiA+Pj4gICBpbnQgcl9udW1iZXI7 Cj4gPj4+IH07Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIHNldHJwY2VudCAoaW50IF9fc3RheW9w ZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+IGV4dGVy biB2b2lkIGVuZHJwY2VudCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s ZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIHN0cnVjdCBycGNlbnQgKmdldHJwY2J5bmFtZSAoY29uc3Qg Y2hhciAqX19uYW1lKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ ID4+PiBleHRlcm4gc3RydWN0IHJwY2VudCAqZ2V0cnBjYnludW1iZXIgKGludCBfX251bWJlcikg X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4gZXh0ZXJuIHN0 cnVjdCBycGNlbnQgKmdldHJwY2VudCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f ICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRycGNieW5hbWVf ciAoY29uc3QgY2hhciAqX19uYW1lLCBzdHJ1Y3QgcnBjZW50ICpfX3Jlc3VsdF9idWYsCj4gPj4+ ICAgICAgIGNoYXIgKl9fYnVmZmVyLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICAgIHN0cnVj dCBycGNlbnQgKipfX3Jlc3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm X18pKTsKPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBnZXRycGNieW51bWJlcl9yIChpbnQgX19udW1i ZXIsIHN0cnVjdCBycGNlbnQgKl9fcmVzdWx0X2J1ZiwKPiA+Pj4gICAgICAgICBjaGFyICpfX2J1 ZmZlciwgc2l6ZV90IF9fYnVmbGVuLAo+ID4+PiAgICAgICAgIHN0cnVjdCBycGNlbnQgKipfX3Jl c3VsdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBnZXRycGNlbnRfciAoc3RydWN0IHJwY2VudCAqX19yZXN1bHRfYnVmLCBj aGFyICpfX2J1ZmZlciwKPiA+Pj4gICAgc2l6ZV90IF9fYnVmbGVuLCBzdHJ1Y3QgcnBjZW50ICoq X19yZXN1bHQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+ICMgMzMgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAyIDMgNAo+ID4+ PiAjIDQyICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+ICMgMSAiL3Vzci9pbmNsdWRl L2JpdHMvbmV0ZGIuaCIgMSAzIDQKPiA+Pj4gIyAyNiAiL3Vzci9pbmNsdWRlL2JpdHMvbmV0ZGIu aCIgMyA0Cj4gPj4+IHN0cnVjdCBuZXRlbnQKPiA+Pj4gewo+ID4+PiAgIGNoYXIgKm5fbmFtZTsK PiA+Pj4gICBjaGFyICoqbl9hbGlhc2VzOwo+ID4+PiAgIGludCBuX2FkZHJ0eXBlOwo+ID4+PiAg IHVpbnQzMl90IG5fbmV0Owo+ID4+PiB9Owo+ID4+PiAjIDQzICIvdXNyL2luY2x1ZGUvbmV0ZGIu aCIgMiAzIDQKPiA+Pj4gIyA1MyAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50ICpf X2hfZXJybm9fbG9jYXRpb24gKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ID4+PiAjIDkyICIvdXNyL2lu Y2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiB2b2lkIGhlcnJvciAoY29uc3QgY2hhciAq X19zdHIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBjb25zdCBjaGFyICpoc3RyZXJyb3IgKGludCBfX2Vycl9udW0pIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+IHN0cnVjdCBob3N0ZW50Cj4gPj4+IHsKPiA+Pj4gICBjaGFyICpoX25hbWU7 Cj4gPj4+ICAgY2hhciAqKmhfYWxpYXNlczsKPiA+Pj4gICBpbnQgaF9hZGRydHlwZTsKPiA+Pj4g ICBpbnQgaF9sZW5ndGg7Cj4gPj4+ICAgY2hhciAqKmhfYWRkcl9saXN0Owo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+PiB9Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gdm9pZCBzZXRob3N0ZW50IChpbnQgX19zdGF5X29wZW4pOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBlbmRob3N0ZW50ICh2b2lkKTsKPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCBob3N0ZW50 ICpnZXRob3N0ZW50ICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIHN0cnVjdCBob3N0ZW50ICpnZXRob3N0YnlhZGRyIChjb25zdCB2b2lkICpf X2FkZHIsIF9fc29ja2xlbl90IF9fbGVuLAo+ID4+PiAgICAgICAgICAgaW50IF9fdHlwZSk7Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBzdHJ1Y3QgaG9zdGVudCAq Z2V0aG9zdGJ5bmFtZSAoY29uc3QgY2hhciAqX19uYW1lKTsKPiA+Pj4gIyAxNTUgIi91c3IvaW5j bHVkZS9uZXRkYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIHN0cnVjdCBob3N0ZW50ICpnZXRob3N0Ynlu YW1lMiAoY29uc3QgY2hhciAqX19uYW1lLCBpbnQgX19hZik7Cj4gPj4+ICMgMTY3ICIvdXNyL2lu Y2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZ2V0aG9zdGVudF9yIChzdHJ1Y3Qg aG9zdGVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4gPj4+ICAgICBjaGFyICpfX3Jlc3Ry aWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICBzdHJ1Y3QgaG9zdGVudCAqKl9f cmVzdHJpY3QgX19yZXN1bHQsCj4gPj4+ICAgICBpbnQgKl9fcmVzdHJpY3QgX19oX2Vycm5vcCk7 Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZ2V0aG9zdGJ5YWRkcl9yIChjb25zdCB2b2lkICpfX3Jl c3RyaWN0IF9fYWRkciwgX19zb2NrbGVuX3QgX19sZW4sCj4gPj4+ICAgICAgICBpbnQgX190eXBl LAo+ID4+PiAgICAgICAgc3RydWN0IGhvc3RlbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVmLAo+ ID4+PiAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ID4+ PiAgICAgICAgc3RydWN0IGhvc3RlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAo+ID4+PiAgICAg ICAgaW50ICpfX3Jlc3RyaWN0IF9faF9lcnJub3ApOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdl dGhvc3RieW5hbWVfciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gPj4+ICAgICAg ICBzdHJ1Y3QgaG9zdGVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4gPj4+ICAgICAgICBj aGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICAgICBzdHJ1 Y3QgaG9zdGVudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQsCj4gPj4+ICAgICAgICBpbnQgKl9fcmVz dHJpY3QgX19oX2Vycm5vcCk7Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbnQgZ2V0aG9zdGJ5bmFtZTJf ciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsIGludCBfX2FmLAo+ID4+PiAgICAgICAg IHN0cnVjdCBob3N0ZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKPiA+Pj4gICAgICAgICBj aGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ICAgICAgICAgc3Ry dWN0IGhvc3RlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAo+ID4+PiAgICAgICAgIGludCAqX19y ZXN0cmljdCBfX2hfZXJybm9wKTsKPiA+Pj4gIyAxOTggIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAz IDQKPiA+Pj4gZXh0ZXJuIHZvaWQgc2V0bmV0ZW50IChpbnQgX19zdGF5X29wZW4pOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBlbmRuZXRlbnQgKHZvaWQp Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0 IG5ldGVudCAqZ2V0bmV0ZW50ICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIHN0cnVjdCBuZXRlbnQgKmdldG5ldGJ5YWRkciAodWludDMyX3Qg X19uZXQsIGludCBfX3R5cGUpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBl eHRlcm4gc3RydWN0IG5ldGVudCAqZ2V0bmV0YnluYW1lIChjb25zdCBjaGFyICpfX25hbWUpOwo+ ID4+PiAjIDIzNyAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGdl dG5ldGVudF9yIChzdHJ1Y3QgbmV0ZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKPiA+Pj4g ICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ID4+PiAgICBzdHJ1 Y3QgbmV0ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCwKPiA+Pj4gICAgaW50ICpfX3Jlc3RyaWN0 IF9faF9lcnJub3ApOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldG5ldGJ5YWRkcl9yICh1aW50 MzJfdCBfX25ldCwgaW50IF9fdHlwZSwKPiA+Pj4gICAgICAgc3RydWN0IG5ldGVudCAqX19yZXN0 cmljdCBfX3Jlc3VsdF9idWYsCj4gPj4+ICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNp emVfdCBfX2J1ZmxlbiwKPiA+Pj4gICAgICAgc3RydWN0IG5ldGVudCAqKl9fcmVzdHJpY3QgX19y ZXN1bHQsCj4gPj4+ICAgICAgIGludCAqX19yZXN0cmljdCBfX2hfZXJybm9wKTsKPiA+Pj4KPiA+ Pj4gZXh0ZXJuIGludCBnZXRuZXRieW5hbWVfciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25h bWUsCj4gPj4+ICAgICAgIHN0cnVjdCBuZXRlbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVmLAo+ ID4+PiAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4gPj4+ ICAgICAgIHN0cnVjdCBuZXRlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAo+ID4+PiAgICAgICBp bnQgKl9fcmVzdHJpY3QgX19oX2Vycm5vcCk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IHN0cnVjdCBzZXJ2ZW50Cj4gPj4+IHsKPiA+Pj4gICBjaGFyICpzX25hbWU7Cj4gPj4+ICAgY2hh ciAqKnNfYWxpYXNlczsKPiA+Pj4gICBpbnQgc19wb3J0Owo+ID4+PiAgIGNoYXIgKnNfcHJvdG87 Cj4gPj4+IH07Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVy biB2b2lkIHNldHNlcnZlbnQgKGludCBfX3N0YXlfb3Blbik7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIGVuZHNlcnZlbnQgKHZvaWQpOwo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0IHNlcnZlbnQgKmdl dHNlcnZlbnQgKHZvaWQpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiBleHRlcm4gc3RydWN0IHNlcnZlbnQgKmdldHNlcnZieW5hbWUgKGNvbnN0IGNoYXIgKl9fbmFt ZSwgY29uc3QgY2hhciAqX19wcm90byk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+IGV4dGVybiBzdHJ1Y3Qgc2VydmVudCAqZ2V0c2VydmJ5cG9ydCAoaW50IF9fcG9y dCwgY29uc3QgY2hhciAqX19wcm90byk7Cj4gPj4+ICMgMzA4ICIvdXNyL2luY2x1ZGUvbmV0ZGIu aCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgZ2V0c2VydmVudF9yIChzdHJ1Y3Qgc2VydmVudCAqX19y ZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4gPj4+ICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBz aXplX3QgX19idWZsZW4sCj4gPj4+ICAgICBzdHJ1Y3Qgc2VydmVudCAqKl9fcmVzdHJpY3QgX19y ZXN1bHQpOwo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHNlcnZieW5hbWVfciAoY29uc3QgY2hh ciAqX19yZXN0cmljdCBfX25hbWUsCj4gPj4+ICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0 IF9fcHJvdG8sCj4gPj4+ICAgICAgICBzdHJ1Y3Qgc2VydmVudCAqX19yZXN0cmljdCBfX3Jlc3Vs dF9idWYsCj4gPj4+ICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZs ZW4sCj4gPj4+ICAgICAgICBzdHJ1Y3Qgc2VydmVudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpOwo+ ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHNlcnZieXBvcnRfciAoaW50IF9fcG9ydCwgY29uc3Qg Y2hhciAqX19yZXN0cmljdCBfX3Byb3RvLAo+ID4+PiAgICAgICAgc3RydWN0IHNlcnZlbnQgKl9f cmVzdHJpY3QgX19yZXN1bHRfYnVmLAo+ID4+PiAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1 Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ID4+PiAgICAgICAgc3RydWN0IHNlcnZlbnQgKipfX3Jlc3Ry aWN0IF9fcmVzdWx0KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gc3RydWN0IHByb3Rv ZW50Cj4gPj4+IHsKPiA+Pj4gICBjaGFyICpwX25hbWU7Cj4gPj4+ICAgY2hhciAqKnBfYWxpYXNl czsKPiA+Pj4gICBpbnQgcF9wcm90bzsKPiA+Pj4gfTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIHZvaWQgc2V0cHJvdG9lbnQgKGludCBfX3N0YXlfb3Bl bik7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB2b2lkIGVuZHBy b3RvZW50ICh2b2lkKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4g ZXh0ZXJuIHN0cnVjdCBwcm90b2VudCAqZ2V0cHJvdG9lbnQgKHZvaWQpOwo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gc3RydWN0IHByb3RvZW50ICpnZXRwcm90b2J5 bmFtZSAoY29uc3QgY2hhciAqX19uYW1lKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZXh0ZXJuIHN0cnVjdCBwcm90b2VudCAqZ2V0cHJvdG9ieW51bWJlciAoaW50IF9fcHJv dG8pOwo+ID4+PiAjIDM3NCAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+ID4+PiBleHRlcm4g aW50IGdldHByb3RvZW50X3IgKHN0cnVjdCBwcm90b2VudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9i dWYsCj4gPj4+ICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ ID4+PiAgICAgIHN0cnVjdCBwcm90b2VudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpOwo+ID4+Pgo+ ID4+PiBleHRlcm4gaW50IGdldHByb3RvYnluYW1lX3IgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg X19uYW1lLAo+ID4+PiAgICAgICAgIHN0cnVjdCBwcm90b2VudCAqX19yZXN0cmljdCBfX3Jlc3Vs dF9idWYsCj4gPj4+ICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVm bGVuLAo+ID4+PiAgICAgICAgIHN0cnVjdCBwcm90b2VudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQp Owo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGdldHByb3RvYnludW1iZXJfciAoaW50IF9fcHJvdG8s Cj4gPj4+ICAgICAgICAgICBzdHJ1Y3QgcHJvdG9lbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVm LAo+ID4+PiAgICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVu LAo+ID4+PiAgICAgICAgICAgc3RydWN0IHByb3RvZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCk7 Cj4gPj4+ICMgMzk1ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQg c2V0bmV0Z3JlbnQgKGNvbnN0IGNoYXIgKl9fbmV0Z3JvdXApOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gdm9pZCBlbmRuZXRncmVudCAodm9p ZCk7Cj4gPj4+ICMgNDEyICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBp bnQgZ2V0bmV0Z3JlbnQgKGNoYXIgKipfX3Jlc3RyaWN0IF9faG9zdHAsCj4gPj4+ICAgIGNoYXIg KipfX3Jlc3RyaWN0IF9fdXNlcnAsCj4gPj4+ICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZG9tYWlu cCk7Cj4gPj4+ICMgNDIzICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBp bnQgaW5uZXRnciAoY29uc3QgY2hhciAqX19uZXRncm91cCwgY29uc3QgY2hhciAqX19ob3N0LAo+ ID4+PiAgICAgICBjb25zdCBjaGFyICpfX3VzZXIsIGNvbnN0IGNoYXIgKl9fZG9tYWluKTsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBn ZXRuZXRncmVudF9yIChjaGFyICoqX19yZXN0cmljdCBfX2hvc3RwLAo+ID4+PiAgICAgIGNoYXIg KipfX3Jlc3RyaWN0IF9fdXNlcnAsCj4gPj4+ICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19kb21h aW5wLAo+ID4+PiAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWZmZXIsIHNpemVfdCBfX2J1Zmxl bik7Cj4gPj4+ICMgNDUxICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBp bnQgcmNtZCAoY2hhciAqKl9fcmVzdHJpY3QgX19haG9zdCwgdW5zaWduZWQgc2hvcnQgaW50IF9f cnBvcnQsCj4gPj4+ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19sb2N1c2VyLAo+ID4+PiAg ICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcmVtdXNlciwKPiA+Pj4gICAgY29uc3QgY2hhciAq X19yZXN0cmljdCBfX2NtZCwgaW50ICpfX3Jlc3RyaWN0IF9fZmQycCk7Cj4gPj4+ICMgNDYzICIv dXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgcmNtZF9hZiAoY2hhciAq Kl9fcmVzdHJpY3QgX19haG9zdCwgdW5zaWduZWQgc2hvcnQgaW50IF9fcnBvcnQsCj4gPj4+ICAg ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19sb2N1c2VyLAo+ID4+PiAgICAgICBjb25zdCBj aGFyICpfX3Jlc3RyaWN0IF9fcmVtdXNlciwKPiA+Pj4gICAgICAgY29uc3QgY2hhciAqX19yZXN0 cmljdCBfX2NtZCwgaW50ICpfX3Jlc3RyaWN0IF9fZmQycCwKPiA+Pj4gICAgICAgc2FfZmFtaWx5 X3QgX19hZik7Cj4gPj4+ICMgNDc5ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4 dGVybiBpbnQgcmV4ZWMgKGNoYXIgKipfX3Jlc3RyaWN0IF9fYWhvc3QsIGludCBfX3Jwb3J0LAo+ ID4+PiAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gPj4+ICAgICBjb25zdCBj aGFyICpfX3Jlc3RyaWN0IF9fcGFzcywKPiA+Pj4gICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg X19jbWQsIGludCAqX19yZXN0cmljdCBfX2ZkMnApOwo+ID4+PiAjIDQ5MSAiL3Vzci9pbmNsdWRl L25ldGRiLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IHJleGVjX2FmIChjaGFyICoqX19yZXN0cmlj dCBfX2Fob3N0LCBpbnQgX19ycG9ydCwKPiA+Pj4gICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJp Y3QgX19uYW1lLAo+ID4+PiAgICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3Bhc3MsCj4g Pj4+ICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fY21kLCBpbnQgKl9fcmVzdHJpY3Qg X19mZDJwLAo+ID4+PiAgICAgICAgc2FfZmFtaWx5X3QgX19hZik7Cj4gPj4+ICMgNTA1ICIvdXNy L2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+IGV4dGVybiBpbnQgcnVzZXJvayAoY29uc3QgY2hh ciAqX19yaG9zdCwgaW50IF9fc3VzZXIsCj4gPj4+ICAgICAgIGNvbnN0IGNoYXIgKl9fcmVtdXNl ciwgY29uc3QgY2hhciAqX19sb2N1c2VyKTsKPiA+Pj4gIyA1MTUgIi91c3IvaW5jbHVkZS9uZXRk Yi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBydXNlcm9rX2FmIChjb25zdCBjaGFyICpfX3Job3N0 LCBpbnQgX19zdXNlciwKPiA+Pj4gICAgICAgICAgY29uc3QgY2hhciAqX19yZW11c2VyLCBjb25z dCBjaGFyICpfX2xvY3VzZXIsCj4gPj4+ICAgICAgICAgIHNhX2ZhbWlseV90IF9fYWYpOwo+ID4+ PiAjIDUyOCAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+ID4+PiBleHRlcm4gaW50IGlydXNl cm9rICh1aW50MzJfdCBfX3JhZGRyLCBpbnQgX19zdXNlciwKPiA+Pj4gICAgICAgIGNvbnN0IGNo YXIgKl9fcmVtdXNlciwgY29uc3QgY2hhciAqX19sb2N1c2VyKTsKPiA+Pj4gIyA1MzkgIi91c3Iv aW5jbHVkZS9uZXRkYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBpcnVzZXJva19hZiAoY29uc3Qg dm9pZCAqX19yYWRkciwgaW50IF9fc3VzZXIsCj4gPj4+ICAgIGNvbnN0IGNoYXIgKl9fcmVtdXNl ciwgY29uc3QgY2hhciAqX19sb2N1c2VyLAo+ID4+PiAgICBzYV9mYW1pbHlfdCBfX2FmKTsKPiA+ Pj4gIyA1NTEgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBycmVz dnBvcnQgKGludCAqX19hbHBvcnQpOwo+ID4+PiAjIDU2MCAiL3Vzci9pbmNsdWRlL25ldGRiLmgi IDMgNAo+ID4+PiBleHRlcm4gaW50IHJyZXN2cG9ydF9hZiAoaW50ICpfX2FscG9ydCwgc2FfZmFt aWx5X3QgX19hZik7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IHN0 cnVjdCBhZGRyaW5mbwo+ID4+PiB7Cj4gPj4+ICAgaW50IGFpX2ZsYWdzOwo+ID4+PiAgIGludCBh aV9mYW1pbHk7Cj4gPj4+ICAgaW50IGFpX3NvY2t0eXBlOwo+ID4+PiAgIGludCBhaV9wcm90b2Nv bDsKPiA+Pj4gICBzb2NrbGVuX3QgYWlfYWRkcmxlbjsKPiA+Pj4gICBzdHJ1Y3Qgc29ja2FkZHIg KmFpX2FkZHI7Cj4gPj4+ICAgY2hhciAqYWlfY2Fub25uYW1lOwo+ID4+PiAgIHN0cnVjdCBhZGRy aW5mbyAqYWlfbmV4dDsKPiA+Pj4gfTsKPiA+Pj4gIyA2NjIgIi91c3IvaW5jbHVkZS9uZXRkYi5o IiAzIDQKPiA+Pj4gZXh0ZXJuIGludCBnZXRhZGRyaW5mbyAoY29uc3QgY2hhciAqX19yZXN0cmlj dCBfX25hbWUsCj4gPj4+ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zZXJ2aWNlLAo+ID4+ PiAgICBjb25zdCBzdHJ1Y3QgYWRkcmluZm8gKl9fcmVzdHJpY3QgX19yZXEsCj4gPj4+ICAgIHN0 cnVjdCBhZGRyaW5mbyAqKl9fcmVzdHJpY3QgX19wYWkpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRl cm4gdm9pZCBmcmVlYWRkcmluZm8gKHN0cnVjdCBhZGRyaW5mbyAqX19haSkgX19hdHRyaWJ1dGVf XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNv bnN0IGNoYXIgKmdhaV9zdHJlcnJvciAoaW50IF9fZWNvZGUpIF9fYXR0cmlidXRlX18gKChfX25v dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbnQgZ2V0bmFtZWluZm8gKGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqX19yZXN0cmlj dCBfX3NhLAo+ID4+PiAgICBzb2NrbGVuX3QgX19zYWxlbiwgY2hhciAqX19yZXN0cmljdCBfX2hv c3QsCj4gPj4+ICAgIHNvY2tsZW5fdCBfX2hvc3RsZW4sIGNoYXIgKl9fcmVzdHJpY3QgX19zZXJ2 LAo+ID4+PiAgICBzb2NrbGVuX3QgX19zZXJ2bGVuLCBpbnQgX19mbGFncyk7Cj4gPj4+ICMgNzEz ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gPj4+Cj4gPj4+ICMgODEgIm1hY2hpbmUuYyIg Mgo+ID4+Pgo+ID4+PiAjIDEgIi91c3IvaW5jbHVkZS9hcnBhL2luZXQuaCIgMSAzIDQKPiA+Pj4g IyAzMCAiL3Vzci9pbmNsdWRlL2FycGEvaW5ldC5oIiAzIDQKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4KPiA+Pj4gZXh0ZXJuIGluX2FkZHJfdCBpbmV0X2FkZHIgKGNvbnN0IGNoYXIgKl9fY3ApIF9f YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ IGV4dGVybiBpbl9hZGRyX3QgaW5ldF9sbmFvZiAoc3RydWN0IGluX2FkZHIgX19pbikgX19hdHRy aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gZXh0ZXJuIHN0cnVjdCBpbl9hZGRyIGluZXRfbWFrZWFkZHIgKGluX2FkZHJfdCBfX25ldCwg aW5fYWRkcl90IF9faG9zdCkKPiA+Pj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g LCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW5fYWRkcl90IGluZXRfbmV0 b2YgKHN0cnVjdCBpbl9hZGRyIF9faW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f bGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiBpbl9hZGRyX3QgaW5ldF9u ZXR3b3JrIChjb25zdCBjaGFyICpfX2NwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf X2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqaW5ldF9udG9h IChzdHJ1Y3QgaW5fYWRkciBfX2luKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGluZXRfcHRv biAoaW50IF9fYWYsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19jcCwKPiA+Pj4gICAgICAgICB2 b2lkICpfX3Jlc3RyaWN0IF9fYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl YWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY29uc3QgY2hhciAq aW5ldF9udG9wIChpbnQgX19hZiwgY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX2NwLAo+ID4+PiAg ICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzb2NrbGVuX3QgX19sZW4pCj4gPj4+ICAg ICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGludCBpbmV0X2F0b24gKGNvbnN0 IGNoYXIgKl9fY3AsIHN0cnVjdCBpbl9hZGRyICpfX2lucCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90 aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIg KmluZXRfbmV0YSAoaW5fYWRkcl90IF9fbmV0LCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fbGVuKSBf X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ID4+Pgo+ID4+ Pgo+ID4+Pgo+ID4+PiBleHRlcm4gY2hhciAqaW5ldF9uZXRfbnRvcCAoaW50IF9fYWYsIGNvbnN0 IHZvaWQgKl9fY3AsIGludCBfX2JpdHMsCj4gPj4+ICAgICAgICBjaGFyICpfX2J1Ziwgc2l6ZV90 IF9fbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ID4+Pgo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBleHRlcm4gaW50IGluZXRfbmV0X3B0b24gKGludCBfX2Fm LCBjb25zdCBjaGFyICpfX2NwLAo+ID4+PiAgICAgIHZvaWQgKl9fYnVmLCBzaXplX3QgX19sZW4p IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+IGV4dGVybiB1bnNpZ25lZCBpbnQgaW5ldF9uc2FwX2FkZHIgKGNvbnN0 IGNoYXIgKl9fY3AsCj4gPj4+ICAgICAgICAgdW5zaWduZWQgY2hhciAqX19idWYsIGludCBfX2xl bikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gZXh0ZXJuIGNoYXIgKmluZXRfbnNhcF9udG9hIChpbnQgX19sZW4sIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKl9fY3AsCj4gPj4+ICAgICAgICAgY2hhciAqX19idWYpIF9fYXR0cmli dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ ICMgODMgIm1hY2hpbmUuYyIgMgo+ID4+PiAjIDEzNSAibWFjaGluZS5jIgo+ID4+Pgo+ID4+PiAj IDEzNSAibWFjaGluZS5jIgo+ID4+PiBzdGF0aWMgUGxMb25nIHN0YXJ0X3VzZXJfdGltZSA9IDA7 Cj4gPj4+IHN0YXRpYyBQbExvbmcgc3RhcnRfc3lzdGVtX3RpbWUgPSAwOwo+ID4+PiBzdGF0aWMg UGxMb25nIHN0YXJ0X3JlYWxfdGltZSA9IDA7Cj4gPj4+Cj4gPj4+IHN0YXRpYyBpbnQgY3VyX3Nl ZWQgPSAxOwo+ID4+PiAjIDE1MCAibWFjaGluZS5jIgo+ID4+PiBzdGF0aWMgY2hhciAqSG9zdF9O YW1lX0Zyb21fQWxpYXMoc3RydWN0IGhvc3RlbnQgKmhvc3RfZW50cnkpOwo+ID4+PiAjIDE2NyAi bWFjaGluZS5jIgo+ID4+PiB2b2lkCj4gPj4+IFBsX0luaXRfTWFjaGluZSh2b2lkKQo+ID4+PiB7 Cj4gPj4+ICAgdHpzZXQoKTsKPiA+Pj4KPiA+Pj4gICBzdGFydF91c2VyX3RpbWUgPSBQbF9NX1Vz ZXJfVGltZSgpOwo+ID4+PiAgIHN0YXJ0X3N5c3RlbV90aW1lID0gUGxfTV9TeXN0ZW1fVGltZSgp Owo+ID4+PiAgIHN0YXJ0X3JlYWxfdGltZSA9IFBsX01fUmVhbF9UaW1lKCk7Cj4gPj4+Cj4gPj4+ Cj4gPj4+ICAgbWFsbG9wdCgKPiA+Pj4gIyAxNzcgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAgICAg ICAgIC00Cj4gPj4+ICMgMTc3ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAs IDApOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgIFBsX0luaXRfTWFjaGluZTEoKTsKPiA+Pj4gfQo+ID4+ PiAjIDE5MCAibWFjaGluZS5jIgo+ID4+PiBjaGFyICoKPiA+Pj4gUGxfTV9TeXNfRXJyX1N0cmlu ZyhpbnQgcmV0X3ZhbCkKPiA+Pj4gewo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+ PiAgIGNoYXIgKnN0cjsKPiA+Pj4gICBzdGF0aWMgY2hhciBidWZmWzY0XTsKPiA+Pj4gIyAyMjYg Im1hY2hpbmUuYyIKPiA+Pj4gICBzdHIgPSBzdHJlcnJvcigKPiA+Pj4gIyAyMjYgIm1hY2hpbmUu YyIgMyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAoKl9fZXJybm9fbG9jYXRpb24gKCkpCj4gPj4+ ICMgMjI2ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICk7Cj4gPj4+Cj4g Pj4+Cj4gPj4+ICAgaWYgKHN0cikKPiA+Pj4gICAgIHJldHVybiBzdHI7Cj4gPj4+Cj4gPj4+ICAg c3ByaW50ZihidWZmLCAiVW5rbm93biBlcnJvciAoJWQpIiwgCj4gPj4+ICMgMjMyICJtYWNoaW5l LmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpfX2Vycm5v X2xvY2F0aW9uICgpKQo+ID4+PiAjIDIzMiAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApOwo+ID4+PiAgIHJldHVybiBidWZmOwo+ID4+PiB9 Cj4gPj4+ICMgMjQ0ICJtYWNoaW5lLmMiCj4gPj4+IFBsTG9uZwo+ID4+PiBQbF9NX1VzZXJfVGlt ZSh2b2lkKQo+ID4+PiB7Cj4gPj4+ICAgUGxMb25nIHVzZXJfdGltZTsKPiA+Pj4KPiA+Pj4KPiA+ Pj4gICBzdHJ1Y3QgcnVzYWdlIHJzcl91c2FnZTsKPiA+Pj4KPiA+Pj4gICBnZXRydXNhZ2UoCj4g Pj4+ICMgMjUyICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgIFJVU0FHRV9TRUxGCj4g Pj4+ICMgMjUyICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAsICZyc3Jf dXNhZ2UpOwo+ID4+Pgo+ID4+PiAgIHVzZXJfdGltZSA9IChyc3JfdXNhZ2UucnVfdXRpbWUudHZf c2VjICogMTAwMCkgKwo+ID4+PiAgICAgKHJzcl91c2FnZS5ydV91dGltZS50dl91c2VjIC8gMTAw MCk7Cj4gPj4+ICMgMjc1ICJtYWNoaW5lLmMiCj4gPj4+ICAgcmV0dXJuIHVzZXJfdGltZSAtIHN0 YXJ0X3VzZXJfdGltZTsKPiA+Pj4gfQo+ID4+PiAjIDI4NiAibWFjaGluZS5jIgo+ID4+PiBQbExv bmcKPiA+Pj4gUGxfTV9TeXN0ZW1fVGltZSh2b2lkKQo+ID4+PiB7Cj4gPj4+ICAgUGxMb25nIHN5 c3RlbV90aW1lOwo+ID4+Pgo+ID4+Pgo+ID4+PiAgIHN0cnVjdCBydXNhZ2UgcnNyX3VzYWdlOwo+ ID4+Pgo+ID4+PiAgIGdldHJ1c2FnZSgKPiA+Pj4gIyAyOTQgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ ICAgICAgICAgICAgUlVTQUdFX1NFTEYKPiA+Pj4gIyAyOTQgIm1hY2hpbmUuYyIKPiA+Pj4gICAg ICAgICAgICAgICAgICAgICAgICwgJnJzcl91c2FnZSk7Cj4gPj4+Cj4gPj4+ICAgc3lzdGVtX3Rp bWUgPSAocnNyX3VzYWdlLnJ1X3N0aW1lLnR2X3NlYyAqIDEwMDApICsKPiA+Pj4gICAgIChyc3Jf dXNhZ2UucnVfc3RpbWUudHZfdXNlYyAvIDEwMDApOwo+ID4+PiAjIDMxNyAibWFjaGluZS5jIgo+ ID4+PiAgIHJldHVybiBzeXN0ZW1fdGltZSAtIHN0YXJ0X3N5c3RlbV90aW1lOwo+ID4+PiB9Cj4g Pj4+ICMgMzI4ICJtYWNoaW5lLmMiCj4gPj4+IFBsTG9uZwo+ID4+PiBQbF9NX1JlYWxfVGltZSh2 b2lkKQo+ID4+PiB7Cj4gPj4+ICAgUGxMb25nIHJlYWxfdGltZTsKPiA+Pj4KPiA+Pj4KPiA+Pj4g ICBzdHJ1Y3QgdGltZXZhbCB0djsKPiA+Pj4KPiA+Pj4gICBnZXR0aW1lb2ZkYXkoJnR2LCAKPiA+ Pj4gIyAzMzYgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAoKHZvaWQg KikwKQo+ID4+PiAjIDMzNiAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAg ICk7Cj4gPj4+ICAgcmVhbF90aW1lID0gKHR2LnR2X3NlYyAqIDEwMDApICsgKHR2LnR2X3VzZWMg LyAxMDAwKTsKPiA+Pj4gIyAzNTAgIm1hY2hpbmUuYyIKPiA+Pj4gICByZXR1cm4gcmVhbF90aW1l IC0gc3RhcnRfcmVhbF90aW1lOwo+ID4+PiB9Cj4gPj4+ICMgMzY3ICJtYWNoaW5lLmMiCj4gPj4+ IHZvaWQKPiA+Pj4gUGxfTV9SYW5kb21pemUodm9pZCkKPiA+Pj4gewo+ID4+PiAgIHN0YXRpYyBp bnQgY291bnQgPSAwOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIHN0cnVjdCB0aW1ldmFsIHR2 Owo+ID4+PiAgIGludCBzZWVkOwo+ID4+Pgo+ID4+PiAgIGdldHRpbWVvZmRheSgmdHYsIAo+ID4+ PiAjIDM3NyAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICgodm9pZCAq KTApCj4gPj4+ICMgMzc3ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAg KTsKPiA+Pj4gICBzZWVkID0gKHR2LnR2X3NlYyAqIDEwMDApICsgKHR2LnR2X3VzZWMgLyAxMDAw KTsKPiA+Pj4KPiA+Pj4gICBjb3VudCA9IChjb3VudCArIHJhbmQoKSkgJSAweEZGRkY7Cj4gPj4+ ICAgc2VlZCA9IHNlZWQgXiAoZ2V0cGlkKCkgPDwgKHNlZWQgJiAweEZGKSk7Cj4gPj4+ICAgc2Vl ZCAqPSBjb3VudDsKPiA+Pj4gICBzZWVkID0gc2VlZCAmIDB4RkZGRkZGOwo+ID4+Pgo+ID4+PiAg IFBsX01fU2V0X1NlZWQoc2VlZCk7Cj4gPj4+IH0KPiA+Pj4gIyAzOTUgIm1hY2hpbmUuYyIKPiA+ Pj4gdm9pZAo+ID4+PiBQbF9NX1NldF9TZWVkKGludCBuKQo+ID4+PiB7Cj4gPj4+ICAgY3VyX3Nl ZWQgPSBuOwo+ID4+PiAgIHNyYW5kKGN1cl9zZWVkKTsKPiA+Pj4gfQo+ID4+PiAjIDQwOSAibWFj aGluZS5jIgo+ID4+PiBpbnQKPiA+Pj4gUGxfTV9HZXRfU2VlZCh2b2lkKQo+ID4+PiB7Cj4gPj4+ ICAgcmV0dXJuIGN1cl9zZWVkOwo+ID4+PiB9Cj4gPj4+ICMgNDIzICJtYWNoaW5lLmMiCj4gPj4+ IGludAo+ID4+PiBQbF9NX1JhbmRvbV9JbnRlZ2VyKGludCBuKQo+ID4+PiB7Cj4gPj4+ICAgcmV0 dXJuIChpbnQpICgoZG91YmxlKSBuICogcmFuZCgpIC8gKAo+ID4+PiAjIDQyNiAibWFjaGluZS5j IiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMTQ3NDgz NjQ3IAo+ID4+PiAjIDQyNiAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsgMS4wKSk7Cj4gPj4+IH0KPiA+Pj4gIyA0MzcgIm1h Y2hpbmUuYyIKPiA+Pj4gZG91YmxlCj4gPj4+IFBsX01fUmFuZG9tX0Zsb2F0KGRvdWJsZSBuKQo+ ID4+PiB7Cj4gPj4+ICAgcmV0dXJuIG4gKiByYW5kKCkgLyAoCj4gPj4+ICMgNDQwICJtYWNoaW5l LmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgMjE0NzQ4MzY0NyAKPiA+Pj4gIyA0 NDAgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMS4w KTsKPiA+Pj4gfQo+ID4+PiAjIDQ1MSAibWFjaGluZS5jIgo+ID4+PiBjaGFyICoKPiA+Pj4gUGxf TV9Ib3N0X05hbWVfRnJvbV9OYW1lKGNoYXIgKmhvc3RfbmFtZSkKPiA+Pj4gewo+ID4+PiAgIHN0 YXRpYyBjaGFyIGJ1ZmZbNDA5Nl07Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgc3RydWN0IGhvc3RlbnQg Kmhvc3RfZW50cnk7Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgaWYgKGhvc3RfbmFtZSA9PSAKPiA+Pj4g IyA0NjAgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAgICgodm9pZCAqKTAp Cj4gPj4+ICMgNDYwICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICApCj4g Pj4+ICAgICB7Cj4gPj4+ICAgICAgIFBsTG9uZyBsZW5ndGggPSBzaXplb2YoYnVmZik7Cj4gPj4+ ICAgICAgIGhvc3RfbmFtZSA9IGJ1ZmY7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICAgIGlm IChnZXRob3N0bmFtZShidWZmLCBsZW5ndGgpKQo+ID4+Pgo+ID4+PiAgICAgICAgIHsKPiA+Pj4g ICAgICAgICAgIHN0cmNweShidWZmLCAidW5rbm93biBob3N0IG5hbWUiKTsKPiA+Pj4gICAgICAg ICAgIGdvdG8gZmluaXNoOwo+ID4+PiAgICAgICAgIH0KPiA+Pj4gICAgIH0KPiA+Pj4KPiA+Pj4g ICBpZiAoc3RyY2hyKGhvc3RfbmFtZSwgJy4nKSAhPSAKPiA+Pj4gIyA0NzUgIm1hY2hpbmUuYyIg MyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+ID4+ PiAjIDQ3NSAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKPiA+Pj4gICAgIGdvdG8gZmluaXNoOwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIGhv c3RfZW50cnkgPSBnZXRob3N0YnluYW1lKGhvc3RfbmFtZSk7Cj4gPj4+ICAgaWYgKGhvc3RfZW50 cnkgPT0gCj4gPj4+ICMgNDgxICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAg ICAgKCh2b2lkICopMCkKPiA+Pj4gIyA0ODEgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAg ICAgICAgICAgICApCj4gPj4+ICAgICBnb3RvIGZpbmlzaDsKPiA+Pj4KPiA+Pj4gICBob3N0X25h bWUgPSBIb3N0X05hbWVfRnJvbV9BbGlhcyhob3N0X2VudHJ5KTsKPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4gZmluaXNoOgo+ID4+PiAgIHJldHVybiBob3N0X25hbWU7Cj4gPj4+IH0KPiA+Pj4gIyA0 OTkgIm1hY2hpbmUuYyIKPiA+Pj4gY2hhciAqCj4gPj4+IFBsX01fSG9zdF9OYW1lX0Zyb21fQWRy KGNoYXIgKmhvc3RfYWRkcmVzcykKPiA+Pj4gewo+ID4+Pgo+ID4+PiAgIHN0cnVjdCBob3N0ZW50 ICpob3N0X2VudHJ5Owo+ID4+PiAgIHN0cnVjdCBpbl9hZGRyIGlhZHI7Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgaWYgKGluZXRfYXRvbihob3N0X2FkZHJlc3Ms ICZpYWRyKSA9PSAwKQo+ID4+Pgo+ID4+PiAgICAgcmV0dXJuIDA7Cj4gPj4+Cj4gPj4+ICAgaG9z dF9lbnRyeSA9IGdldGhvc3RieWFkZHIoKGNoYXIgKikgJmlhZHIsIHNpemVvZihpYWRyKSwgCj4g Pj4+ICMgNTE1ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMgo+ID4+PiAjIDUxNSAibWFjaGluZS5j Igo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICk7Cj4gPj4+ICAgaWYgKGhvc3RfZW50cnkgPT0gCj4gPj4+ICMgNTE2 ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgKCh2b2lkICopMCkKPiA+ Pj4gIyA1MTYgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICApCj4gPj4+ ICAgICByZXR1cm4gCj4gPj4+ICMgNTE3ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAg KCh2b2lkICopMCkKPiA+Pj4gIyA1MTcgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICA7 Cj4gPj4+Cj4gPj4+ICAgcmV0dXJuIEhvc3RfTmFtZV9Gcm9tX0FsaWFzKGhvc3RfZW50cnkpOwo+ ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiB9Cj4gPj4+ICMgNTM0ICJtYWNoaW5lLmMiCj4gPj4+IHN0 YXRpYyBjaGFyICoKPiA+Pj4gSG9zdF9OYW1lX0Zyb21fQWxpYXMoc3RydWN0IGhvc3RlbnQgKmhv c3RfZW50cnkpCj4gPj4+IHsKPiA+Pj4gICBjaGFyICpuYW1lOwo+ID4+PiAgIGNoYXIgKiphbGlh czsKPiA+Pj4gICBjaGFyICpwOwo+ID4+Pgo+ID4+PiAgIG5hbWUgPSAoY2hhciAqKSBob3N0X2Vu dHJ5LT5oX25hbWU7Cj4gPj4+ICAgYWxpYXMgPSBob3N0X2VudHJ5LT5oX2FsaWFzZXM7Cj4gPj4+ ICAgd2hpbGUgKChwID0gc3RyY2hyKG5hbWUsICcuJykpID09IAo+ID4+PiAjIDU0MyAibWFjaGlu ZS5jIiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQg KikwKSAKPiA+Pj4gIyA1NDMgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICYmICphbGlhcykKPiA+Pj4gICAgIG5hbWUgPSAqYWxpYXMrKzsK PiA+Pj4KPiA+Pj4gICBpZiAocCkKPiA+Pj4gICAgIHJldHVybiBuYW1lOwo+ID4+Pgo+ID4+PiAg IHJldHVybiAoY2hhciAqKSBob3N0X2VudHJ5LT5oX25hbWU7Cj4gPj4+IH0KPiA+Pj4gIyA1NjEg Im1hY2hpbmUuYyIKPiA+Pj4gQm9vbAo+ID4+PiBQbF9NX1NldF9Xb3JraW5nX0RpcihjaGFyICpw YXRoKQo+ID4+PiB7Cj4gPj4+ICAgY2hhciAqbmV3X3BhdGggPSBQbF9NX0Fic29sdXRlX1BhdGhf TmFtZShwYXRoKTsKPiA+Pj4KPiA+Pj4gICByZXR1cm4gKG5ld19wYXRoICE9IAo+ID4+PiAjIDU2 NiAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgKCh2b2lkICopMCkg Cj4gPj4+ICMgNTY2ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg JiYgY2hkaXIobmV3X3BhdGgpID09IDApOwo+ID4+PiB9Cj4gPj4+ICMgNTc2ICJtYWNoaW5lLmMi Cj4gPj4+IGNoYXIgKgo+ID4+PiBQbF9NX0dldF9Xb3JraW5nX0Rpcih2b2lkKQo+ID4+PiB7Cj4g Pj4+ICAgc3RhdGljIGNoYXIgY3VyX3dvcmtfZGlyWwo+ID4+PiAjIDU3OSAibWFjaGluZS5jIiAz IDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICA0MDk2Cj4gPj4+ICMgNTc5ICJtYWNo aW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07Cj4gPj4+ Cj4gPj4+ICAgaWYgKGdldGN3ZChjdXJfd29ya19kaXIsIHNpemVvZihjdXJfd29ya19kaXIpIC0g MSkgPT0gCj4gPj4+ICMgNTgxICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2lkICopMCkKPiA+Pj4g IyA1ODEgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCj4gPj4+ICAgICBzdHJjcHkoY3VyX3dvcmtfZGly LCAiLiIpOwo+ID4+PiAgIHJldHVybiBjdXJfd29ya19kaXI7Cj4gPj4+IH0KPiA+Pj4gIyA1OTQg Im1hY2hpbmUuYyIKPiA+Pj4gY2hhciAqCj4gPj4+IFBsX01fQWJzb2x1dGVfUGF0aF9OYW1lKGNo YXIgKnNyYykKPiA+Pj4gewo+ID4+PiAgIHN0YXRpYyBjaGFyIGJ1ZmZbMl1bCj4gPj4+ICMgNTk3 ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICA0MDk2Cj4gPj4+ICMg NTk3ICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdOwo+ ID4+PiAgIGludCByZXMgPSAwOwo+ID4+PiAgIGNoYXIgKmRzdDsKPiA+Pj4gICBjaGFyICpwLCAq cTsKPiA+Pj4gICBjaGFyIGM7Cj4gPj4+Cj4gPj4+ICAgZHN0ID0gYnVmZltyZXNdOwo+ID4+PiAg IHdoaWxlICgoKmRzdCsrID0gKnNyYykpCj4gPj4+ICAgICB7Cj4gPj4+ICAgICAgIGMgPSAqc3Jj Kys7Cj4gPj4+ICAgICAgIGlmIChjID09ICckJwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAg ICAgICkKPiA+Pj4gICAgICAgICB7Cj4gPj4+ICAgICAgICAgICBwID0gZHN0Owo+ID4+PiAgICAg ICAgICAgd2hpbGUgKAo+ID4+PiAjIDYxNCAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAgICAgICAg ICAgICAgICgoKl9fY3R5cGVfYl9sb2MgKCkpWyhpbnQpICgoCj4gPj4+ICMgNjE0ICJtYWNoaW5l LmMiCj4gPj4+ICAgICAgICAgICAgICAgICAqc3JjCj4gPj4+ICMgNjE0ICJtYWNoaW5lLmMiIDMg NAo+ID4+PiAgICAgICAgICAgICAgICAgKSldICYgKHVuc2lnbmVkIHNob3J0IGludCkgX0lTYWxu dW0pIAo+ID4+PiAjIDYxNCAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8fCAqc3JjID09ICdfJykKPiA+Pj4gICAgICAgICAgICAgKmRzdCsrID0gKnNyYysr Owo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgICAgICAgICAgKmRzdCA9ICdcMCc7Cj4g Pj4+ICAgICAgICAgICBxID0gZ2V0ZW52KHApOwo+ID4+PiAgICAgICAgICAgaWYgKHEpCj4gPj4+ ICAgICAgICAgICAgIHsKPiA+Pj4gICAgICAgICAgICAgICBwLS07Cj4gPj4+ICAgICAgICAgICAg ICAgc3RyY3B5KHAsIHEpOwo+ID4+PiAgICAgICAgICAgICAgIGRzdCA9IHAgKyBzdHJsZW4ocCk7 Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgICAgICAgICAgIH0KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4gICAgICAgICB9Cj4gPj4+ICAgICB9Cj4gPj4+ICAgKmRzdCA9ICdc MCc7Cj4gPj4+Cj4gPj4+ICAgaWYgKGJ1ZmZbcmVzXVswXSA9PSAnficpCj4gPj4+ICAgICB7Cj4g Pj4+ICAgICAgIGlmICgoKGJ1ZmZbcmVzXVsxXSkgPT0gJy8nIHx8IChidWZmW3Jlc11bMV0pID09 ICcvJykgfHwgYnVmZltyZXNdWzFdID09ICdcMCcpCj4gPj4+ICAgICAgICAgewo+ID4+PiAgICBx ID0gCj4gPj4+ICMgNjQ0ICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAoKHZvaWQgKikwKQo+ ID4+PiAjIDY0NCAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgOzsKPiA+Pj4gICAgICAgICAg IGlmICgocCA9IGdldGVudigiSE9NRSIpKSA9PSAKPiA+Pj4gIyA2NDUgIm1hY2hpbmUuYyIgMyA0 Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+ ID4+PiAjIDY0NSAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKPiA+Pj4gICAgICB7Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+ICAgICAgICByZXR1cm4gCj4gPj4+ICMgNjUyICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAg ICAgICAgICAgICAgKCh2b2lkICopMCkKPiA+Pj4gIyA2NTIgIm1hY2hpbmUuYyIKPiA+Pj4gICAg ICAgICAgICAgICAgICA7Cj4gPj4+Cj4gPj4+ICAgICAgfQo+ID4+PiAgICBpZiAocSA9PSAKPiA+ Pj4gIyA2NTUgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAgICAgICAgICAgKCh2b2lkICopMCkKPiA+ Pj4gIyA2NTUgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgKQo+ID4+PiAgICAgIHEg PSAiIjsKPiA+Pj4gICAgICAgICAgIHNwcmludGYoYnVmZlsxIC0gcmVzXSwgIiVzJXMvJXMiLCBx LCBwLCBidWZmW3Jlc10gKyAxKTsKPiA+Pj4gICAgICAgICAgIHJlcyA9IDEgLSByZXM7Cj4gPj4+ ICAgICAgICAgfQo+ID4+Pgo+ID4+PiAgICAgICBlbHNlCj4gPj4+ICAgICAgICAgewo+ID4+PiAg ICAgICAgICAgc3RydWN0IHBhc3N3ZCAqcHc7Cj4gPj4+Cj4gPj4+ICAgICAgICAgICBwID0gYnVm ZltyZXNdICsgMTsKPiA+Pj4gICAgICAgICAgIHdoaWxlICgqcCAmJiAhKCgqcCkgPT0gJy8nIHx8 ICgqcCkgPT0gJy8nKSkKPiA+Pj4gICAgICAgICAgICAgcCsrOwo+ID4+Pgo+ID4+PiAgICAgICAg ICAgYnVmZltyZXNdWzBdID0gKnA7Cj4gPj4+ICAgICAgICAgICAqcCA9ICdcMCc7Cj4gPj4+ICAg ICAgICAgICBpZiAoKHB3ID0gZ2V0cHduYW0oYnVmZltyZXNdICsgMSkpID09IAo+ID4+PiAjIDY3 MSAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+ID4+PiAjIDY3MSAibWFjaGluZS5jIgo+ID4+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCj4gPj4+ ICAgICAgICAgICAgIHJldHVybiAKPiA+Pj4gIyA2NzIgIm1hY2hpbmUuYyIgMyA0Cj4gPj4+ICAg ICAgICAgICAgICAgICAgICgodm9pZCAqKTApCj4gPj4+ICMgNjcyICJtYWNoaW5lLmMiCj4gPj4+ ICAgICAgICAgICAgICAgICAgICAgICA7Cj4gPj4+Cj4gPj4+ICAgICAgICAgICAqcCA9IGJ1ZmZb cmVzXVswXTsKPiA+Pj4KPiA+Pj4gICAgICAgICAgIHNwcmludGYoYnVmZlsxIC0gcmVzXSwgIiVz LyVzIiwgcHctPnB3X2RpciwgcCk7Cj4gPj4+ICAgICAgICAgICByZXMgPSAxIC0gcmVzOwo+ID4+ PiAgICAgICAgIH0KPiA+Pj4KPiA+Pj4gICAgIH0KPiA+Pj4KPiA+Pj4gICBpZiAoc3RyY21wKGJ1 ZmZbcmVzXSwgInVzZXIiKSA9PSAwKQo+ID4+PiAgICAgcmV0dXJuIGJ1ZmZbcmVzXTsKPiA+Pj4g IyA3MDYgIm1hY2hpbmUuYyIKPiA+Pj4gICBpZiAoYnVmZltyZXNdWzBdICE9ICcvJykKPiA+Pj4g ICAgIHsKPiA+Pj4gICAgICAgc3ByaW50ZihidWZmWzEgLSByZXNdLCAiJXMvJXMiLCBQbF9NX0dl dF9Xb3JraW5nX0RpcigpLCBidWZmW3Jlc10pOwo+ID4+PiAgICAgICByZXMgPSAxIC0gcmVzOwo+ ID4+PiAgICAgfQo+ID4+Pgo+ID4+PiAgIHNyYyA9IGJ1ZmZbcmVzXTsKPiA+Pj4gICByZXMgPSAx IC0gcmVzOwo+ID4+PiAgIGRzdCA9IGJ1ZmZbcmVzXTsKPiA+Pj4KPiA+Pj4gICB3aGlsZSAoKCpk c3QrKyA9ICpzcmMpKQo+ID4+PiAgICAgewo+ID4+PiAgICAgICBpZiAoKnNyYysrICE9ICcvJykK PiA+Pj4gICAgICAgICBjb250aW51ZTsKPiA+Pj4KPiA+Pj4gICAgIGNvbGxhcHNlOgo+ID4+PiAg ICAgICB3aGlsZSAoKnNyYyA9PSAnLycpCj4gPj4+ICAgICAgICAgc3JjKys7Cj4gPj4+Cj4gPj4+ ICAgICAgIGlmICgqc3JjICE9ICcuJykKPiA+Pj4gICAgICAgICBjb250aW51ZTsKPiA+Pj4KPiA+ Pj4gICAgICAgaWYgKHNyY1sxXSA9PSAnLycgfHwgc3JjWzFdID09ICdcMCcpCj4gPj4+ICAgICAg ICAgewo+ID4+PiAgICAgICAgICAgc3JjKys7Cj4gPj4+ICAgICAgICAgICBnb3RvIGNvbGxhcHNl Owo+ID4+PiAgICAgICAgIH0KPiA+Pj4KPiA+Pj4gICAgICAgaWYgKHNyY1sxXSAhPSAnLicgfHwg KHNyY1syXSAhPSAnLycgJiYgc3JjWzJdICE9ICdcMCcpKQo+ID4+PiAgICAgICAgIGNvbnRpbnVl Owo+ID4+Pgo+ID4+PiAgICAgICBzcmMgKz0gMjsKPiA+Pj4gICAgICAgcCA9IGRzdCAtIDI7Cj4g Pj4+ICAgICAgIHdoaWxlIChwID49IGJ1ZmZbcmVzXSAmJiAqcCAhPSAnLycpCj4gPj4+ICAgICAg ICAgcC0tOwo+ID4+Pgo+ID4+PiAgICAgICBpZiAocCA8IGJ1ZmZbcmVzXSkKPiA+Pj4gICAgICAg ICByZXR1cm4gCj4gPj4+ICMgNzQzICJtYWNoaW5lLmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAg ICgodm9pZCAqKTApCj4gPj4+ICMgNzQzICJtYWNoaW5lLmMiCj4gPj4+ICAgICAgICAgICAgICAg ICAgIDsKPiA+Pj4KPiA+Pj4gICAgICAgZHN0ID0gcDsKPiA+Pj4gICAgIH0KPiA+Pj4KPiA+Pj4g ICBkc3QtLTsKPiA+Pj4gIyA3NTkgIm1hY2hpbmUuYyIKPiA+Pj4gICBpZiAoZHN0IC0gYnVmZlty ZXNdID4gMSAmJiAoKGRzdFstMV0pID09ICcvJyB8fCAoZHN0Wy0xXSkgPT0gJy8nKSkKPiA+Pj4g ICAgIGRzdFstMV0gPSAnXDAnOwo+ID4+Pgo+ID4+PiAgIHJldHVybiBidWZmW3Jlc107Cj4gPj4+ IH0KPiA+Pj4gIyA3NzMgIm1hY2hpbmUuYyIKPiA+Pj4gQm9vbAo+ID4+PiBQbF9NX0lzX0Fic29s dXRlX0ZpbGVfTmFtZShjaGFyICpwYXRoKQo+ID4+PiB7Cj4gPj4+ICAgaWYgKCgoKnBhdGgpID09 ICcvJyB8fCAoKnBhdGgpID09ICcvJykpCj4gPj4+ICAgICByZXR1cm4gMTsKPiA+Pj4gIyA3OTUg Im1hY2hpbmUuYyIKPiA+Pj4gICByZXR1cm4gMDsKPiA+Pj4gfQo+ID4+PiAjIDgyOSAibWFjaGlu ZS5jIgo+ID4+PiBjaGFyICoKPiA+Pj4gUGxfTV9EZWNvbXBvc2VfRmlsZV9OYW1lKGNoYXIgKnBh dGgsIEJvb2wgZGVsX3RyYWlsX3NsYXNoZXMsIGNoYXIgKipiYXNlLCBjaGFyICoqc3VmZml4KQo+ ID4+PiB7Cj4gPj4+ICAgc3RhdGljIGNoYXIgYnVmZl9kaXJbCj4gPj4+ICMgODMyICJtYWNoaW5l LmMiIDMgNAo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgNDA5Ngo+ID4+PiAjIDgzMiAibWFj aGluZS5jIgo+ID4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07Cj4gPj4+ICAg c3RhdGljIGNoYXIgYnVmZl9iYXNlWwo+ID4+PiAjIDgzMyAibWFjaGluZS5jIiAzIDQKPiA+Pj4g ICAgICAgICAgICAgICAgICAgICAgICA0MDk2Cj4gPj4+ICMgODMzICJtYWNoaW5lLmMiCj4gPj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07Cj4gPj4+ICAgaW50IGRpcl9zdGFy dF9wb3MgPSAwOwo+ID4+PiAjIDg1MiAibWFjaGluZS5jIgo+ID4+PiAgIGNoYXIgKnA7Cj4gPj4+ Cj4gPj4+ICAgc3RyY3B5KGJ1ZmZfZGlyLCBwYXRoKTsKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4gICBkbyB7IGNoYXIgKl9wdHI7IGZvcigocCkgPSAKPiA+Pj4gIyA4NjAgIm1h Y2hpbmUuYyIgMyA0Cj4gPj4+ICAoKHZvaWQgKikwKQo+ID4+PiAjIDg2MCAibWFjaGluZS5jIgo+ ID4+PiAgLCBfcHRyID0gKGJ1ZmZfZGlyKTsgKl9wdHI7IF9wdHIrKykgaWYgKCgoKl9wdHIpID09 ICcvJyB8fCAoKl9wdHIpID09ICcvJykpIChwKSA9IF9wdHI7IH0gd2hpbGUoMCk7Cj4gPj4+Cj4g Pj4+ICAgcCA9IChwID09IAo+ID4+PiAjIDg2MiAibWFjaGluZS5jIiAzIDQKPiA+Pj4gICAgICAg ICAgICAoKHZvaWQgKikwKQo+ID4+PiAjIDg2MiAibWFjaGluZS5jIgo+ID4+PiAgICAgICAgICAg ICAgICApID8gYnVmZl9kaXIgKyBkaXJfc3RhcnRfcG9zIDogcCArIDE7Cj4gPj4+Cj4gPj4+ICAg c3RyY3B5KGJ1ZmZfYmFzZSwgcCk7Cj4gPj4+ICAgKnAgPSAnXDAnOwo+ID4+Pgo+ID4+PiAgIGlm ICgocCA9IHN0cnJjaHIoYnVmZl9iYXNlLCAnLicpKSAhPSAKPiA+Pj4gIyA4NjcgIm1hY2hpbmUu YyIgMyA0Cj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2lk ICopMCkKPiA+Pj4gIyA4NjcgIm1hY2hpbmUuYyIKPiA+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQo+ID4+PiAgICAgKnN1ZmZpeCA9IHA7Cj4gPj4+ICAgZWxz ZQo+ID4+PiAgICAgKnN1ZmZpeCA9IGJ1ZmZfYmFzZSArIHN0cmxlbihidWZmX2Jhc2UpOwo+ID4+ Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAgIGlmIChkZWxfdHJhaWxfc2xhc2hlcykKPiA+Pj4gICAgIHsK PiA+Pj4gICAgICAgaWYgKGJ1ZmZfZGlyW2Rpcl9zdGFydF9wb3NdID09ICdcMCcpCj4gPj4+ICBz dHJjYXQoYnVmZl9kaXIsICIuIik7Cj4gPj4+ICAgICAgIGVsc2UKPiA+Pj4gIHsKPiA+Pj4gICAg aW50IGxlbiA9IHN0cmxlbihidWZmX2Rpcik7Cj4gPj4+ICAgIHdoaWxlKC0tbGVuID49IGRpcl9z dGFydF9wb3MgJiYgKChidWZmX2RpcltsZW5dKSA9PSAnLycgfHwgKGJ1ZmZfZGlyW2xlbl0pID09 ICcvJykpCj4gPj4+ICAgICAgOwo+ID4+Pgo+ID4+PiAgICBpZiAobGVuIDwgZGlyX3N0YXJ0X3Bv cykKPiA+Pj4gICAgICBsZW4gPSBkaXJfc3RhcnRfcG9zOwo+ID4+PiAgICBidWZmX2RpcltsZW4g KyAxXSA9ICdcMCc7Cj4gPj4+ICB9Cj4gPj4+ICAgICB9Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+ICAgKmJhc2UgPSBidWZmX2Jhc2U7Cj4gPj4+Cj4gPj4+ICAgcmV0 dXJuIGJ1ZmZfZGlyOwo+ID4+PiB9Cj4gPj4KPiA+Pj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiA+Pj4gQnVnLXByb2xvZyBtYWlsaW5nIGxpc3QKPiA+ Pj4gQnVnLXByb2xvZ0BnbnUub3JnCj4gPj4+IGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL2J1Zy1wcm9sb2cKPiA+Pgo+ID4+Cj4gPiAKPiAKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEJ1Zy1wcm9sb2cgbWFpbGluZyBsaXN0 Cj4gQnVnLXByb2xvZ0BnbnUub3JnCj4gaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlz dGluZm8vYnVnLXByb2xvZwoKLS0gCk1hdHRoZXcgQ2FydGVyCmplaGl2YUBnbWFpbC5jb20KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkJ1Zy1wcm9sb2cg bWFpbGluZyBsaXN0CkJ1Zy1wcm9sb2dAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFp bG1hbi9saXN0aW5mby9idWctcHJvbG9nCg==