From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51867) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WEF8e-0005Nz-Bh for qemu-devel@nongnu.org; Fri, 14 Feb 2014 04:32:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WEF8Z-0006PQ-1z for qemu-devel@nongnu.org; Fri, 14 Feb 2014 04:32:52 -0500 Received: from szxga01-in.huawei.com ([119.145.14.64]:21176) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WEF8X-0006Mc-Oq for qemu-devel@nongnu.org; Fri, 14 Feb 2014 04:32:46 -0500 From: "Gonglei (Arei)" Date: Fri, 14 Feb 2014 09:32:17 +0000 Message-ID: <33183CC9F5247A488A2544077AF19020815C26F8@SZXEMA503-MBS.china.huawei.com> References: <1392320685-20609-1-git-send-email-dgilbert@redhat.com> In-Reply-To: <1392320685-20609-1-git-send-email-dgilbert@redhat.com> Content-Language: zh-CN Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] Fix two XBZRLE corruption issues List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert (git)" , "qemu-devel@nongnu.org" Cc: "owasserm@redhat.com" , "quintela@redhat.com" DQoNCg0KDQoNCkJlc3QgcmVnYXJkcywNCi1Hb25nbGVpDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiBGcm9tOiBxZW11LWRldmVsLWJvdW5jZXMrYXJlaS5nb25nbGVpPWh1YXdl aS5jb21Abm9uZ251Lm9yZw0KPiBbbWFpbHRvOnFlbXUtZGV2ZWwtYm91bmNlcythcmVpLmdvbmds ZWk9aHVhd2VpLmNvbUBub25nbnUub3JnXSBPbg0KPiBCZWhhbGYgT2YgRHIuIERhdmlkIEFsYW4g R2lsYmVydCAoZ2l0KQ0KPiBTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDE0LCAyMDE0IDM6NDUgQU0N Cj4gVG86IHFlbXUtZGV2ZWxAbm9uZ251Lm9yZw0KPiBDYzogb3dhc3Nlcm1AcmVkaGF0LmNvbTsg cXVpbnRlbGFAcmVkaGF0LmNvbQ0KPiBTdWJqZWN0OiBbUWVtdS1kZXZlbF0gW1BBVENIXSBGaXgg dHdvIFhCWlJMRSBjb3JydXB0aW9uIGlzc3Vlcw0KPiANCj4gRnJvbTogIkRyLiBEYXZpZCBBbGFu IEdpbGJlcnQiIDxkZ2lsYmVydEByZWRoYXQuY29tPg0KPiANCj4gUHVzaCB6ZXJvJ2QgcGFnZXMg aW50byB0aGUgWEJaUkxFIGNhY2hlDQo+ICAgICBBIHBhZ2UgdGhhdCB3YXMgY2FjaGVkIGJ5IFhC WlJMRSwgemVybydkIGFuZCB0aGVuIFhCWlJMRSdkIGFnYWluDQo+ICAgICB3YXMgYmVpbmcgY29t cGFyZWQgYWdhaW5zdCBhIHN0YWxlIGNhY2hlIHZhbHVlDQo+IA0KPiBEb24ndCB1c2UgJ3FlbXVf cHV0X2J1ZmZlcl9hc3luYycgdG8gcHV0IHBhZ2VzIGZyb20gdGhlIFhCWlJMRSBjYWNoZQ0KPiAg ICAgU2luY2UgdGhlIGNhY2hlIG1pZ2h0IGNoYW5nZSBiZWZvcmUgdGhlIGRhdGEgaGl0cyB0aGUg d2lyZQ0KPiANCj4gU2lnbmVkLW9mZi1ieTogRHIuIERhdmlkIEFsYW4gR2lsYmVydCA8ZGdpbGJl cnRAcmVkaGF0LmNvbT4NCj4gLS0tDQo+ICBhcmNoX2luaXQuYyAgICAgICAgICAgICAgICAgICAg fCA2NA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0NCj4gIGlu Y2x1ZGUvbWlncmF0aW9uL3BhZ2VfY2FjaGUuaCB8ICAyICstDQo+ICBwYWdlX2NhY2hlLmMgICAg ICAgICAgICAgICAgICAgfCAgMiArLQ0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25z KCspLCAxNyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9hcmNoX2luaXQuYyBiL2Fy Y2hfaW5pdC5jDQo+IGluZGV4IDgwNTc0YTAuLmZlMTcyNzkgMTAwNjQ0DQo+IC0tLSBhL2FyY2hf aW5pdC5jDQo+ICsrKyBiL2FyY2hfaW5pdC5jDQo+IEBAIC0xMjIsNyArMTIyLDYgQEAgc3RhdGlj IHZvaWQgY2hlY2tfZ3Vlc3RfdGhyb3R0bGluZyh2b2lkKTsNCj4gICNkZWZpbmUgUkFNX1NBVkVf RkxBR19YQlpSTEUgICAweDQwDQo+ICAvKiAweDgwIGlzIHJlc2VydmVkIGluIG1pZ3JhdGlvbi5o IHN0YXJ0IHdpdGggMHgxMDAgbmV4dCAqLw0KPiANCj4gLQ0KPiAgc3RhdGljIHN0cnVjdCBkZWZj b25maWdfZmlsZSB7DQo+ICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWU7DQo+ICAgICAgLyogSW5k aWNhdGVzIGl0IGlzIGFuIHVzZXIgY29uZmlnIGZpbGUgKGRpc2FibGVkIGJ5IC1uby11c2VyLWNv bmZpZykgKi8NCj4gQEAgLTEzMyw2ICsxMzIsNyBAQCBzdGF0aWMgc3RydWN0IGRlZmNvbmZpZ19m aWxlIHsNCj4gICAgICB7IE5VTEwgfSwgLyogZW5kIG9mIGxpc3QgKi8NCj4gIH07DQo+IA0KPiAr c3RhdGljIGNvbnN0IHVpbnQ4X3QgWkVST19UQVJHRVRfUEFHRVtUQVJHRVRfUEFHRV9TSVpFXTsN Cj4gDQo+ICBpbnQgcWVtdV9yZWFkX2RlZmF1bHRfY29uZmlnX2ZpbGVzKGJvb2wgdXNlcmNvbmZp ZykNCj4gIHsNCj4gQEAgLTI3Myw2ICsyNzMsMzQgQEAgc3RhdGljIHNpemVfdCBzYXZlX2Jsb2Nr X2hkcihRRU1VRmlsZSAqZiwgUkFNQmxvY2sNCj4gKmJsb2NrLCByYW1fYWRkcl90IG9mZnNldCwN Cj4gICAgICByZXR1cm4gc2l6ZTsNCj4gIH0NCj4gDQo+ICsvKiBUaGlzIGlzIHRoZSBsYXN0IGJs b2NrIHRoYXQgd2UgaGF2ZSB2aXNpdGVkIHNlcmNoaW5nIGZvciBkaXJ0eSBwYWdlcw0KPiArICov DQo+ICtzdGF0aWMgUkFNQmxvY2sgKmxhc3Rfc2Vlbl9ibG9jazsNCj4gKy8qIFRoaXMgaXMgdGhl IGxhc3QgYmxvY2sgZnJvbSB3aGVyZSB3ZSBoYXZlIHNlbnQgZGF0YSAqLw0KPiArc3RhdGljIFJB TUJsb2NrICpsYXN0X3NlbnRfYmxvY2s7DQo+ICtzdGF0aWMgcmFtX2FkZHJfdCBsYXN0X29mZnNl dDsNCj4gK3N0YXRpYyB1bnNpZ25lZCBsb25nICptaWdyYXRpb25fYml0bWFwOw0KPiArc3RhdGlj IHVpbnQ2NF90IG1pZ3JhdGlvbl9kaXJ0eV9wYWdlczsNCj4gK3N0YXRpYyB1aW50MzJfdCBsYXN0 X3ZlcnNpb247DQo+ICtzdGF0aWMgYm9vbCByYW1fYnVsa19zdGFnZTsNCj4gKw0KPiArLyogVXBk YXRlIHRoZSB4YnpybGUgY2FjaGUgdG8gcmVmbGVjdCBhIHBhZ2UgdGhhdCdzIGJlZW4gc2VudCBh cyBhbGwgMC4NCj4gKyAqIFRoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCBhIHN0YWxlIChub3Qt eWV0LTAnZCkgcGFnZSBiZSByZXBsYWNlZA0KPiArICogYnkgdGhlIG5ldyBkYXRhLg0KPiArICog QXMgYSBib251cywgaWYgdGhlIHBhZ2Ugd2Fzbid0IGluIHRoZSBjYWNoZSBpdCBnZXRzIGFkZGVk IHNvIHRoYXQNCj4gKyAqIHdoZW4gYSBzbWFsbCB3cml0ZSBpcyBtYWRlIGludG8gdGhlIDAnZCBw YWdlIGl0IGdldHMgWEJaUkxFIHNlbnQNCj4gKyAqLw0KPiArc3RhdGljIHZvaWQgeGJ6cmxlX2Nh Y2hlX3plcm9fcGFnZShyYW1fYWRkcl90IGN1cnJlbnRfYWRkcikNCj4gK3sNCj4gKyAgICBpZiAo cmFtX2J1bGtfc3RhZ2UgfHwgIW1pZ3JhdGVfdXNlX3hienJsZSgpKSB7DQo+ICsgICAgICAgIHJl dHVybjsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICAvKiBXZSBkb24ndCBjYXJlIGlmIHRoaXMgZmFp bHMgdG8gYWxsb2NhdGUgYSBuZXcgY2FjaGUgcGFnZQ0KPiArICAgICAqIGFzIGxvbmcgYXMgaXQg dXBkYXRlZCBhbiBvbGQgb25lICovDQo+ICsgICAgY2FjaGVfaW5zZXJ0KFhCWlJMRS5jYWNoZSwg Y3VycmVudF9hZGRyLCBaRVJPX1RBUkdFVF9QQUdFKTsNCj4gK30NCj4gKw0KPiAgI2RlZmluZSBF TkNPRElOR19GTEFHX1hCWlJMRSAweDENCj4gDQo+ICBzdGF0aWMgaW50IHNhdmVfeGJ6cmxlX3Bh Z2UoUUVNVUZpbGUgKmYsIHVpbnQ4X3QgKmN1cnJlbnRfZGF0YSwNCj4gQEAgLTMyOSwxOCArMzU3 LDYgQEAgc3RhdGljIGludCBzYXZlX3hienJsZV9wYWdlKFFFTVVGaWxlICpmLCB1aW50OF90DQo+ ICpjdXJyZW50X2RhdGEsDQo+ICAgICAgcmV0dXJuIGJ5dGVzX3NlbnQ7DQo+ICB9DQo+IA0KPiAt DQo+IC0vKiBUaGlzIGlzIHRoZSBsYXN0IGJsb2NrIHRoYXQgd2UgaGF2ZSB2aXNpdGVkIHNlcmNo aW5nIGZvciBkaXJ0eSBwYWdlcw0KPiAtICovDQo+IC1zdGF0aWMgUkFNQmxvY2sgKmxhc3Rfc2Vl bl9ibG9jazsNCj4gLS8qIFRoaXMgaXMgdGhlIGxhc3QgYmxvY2sgZnJvbSB3aGVyZSB3ZSBoYXZl IHNlbnQgZGF0YSAqLw0KPiAtc3RhdGljIFJBTUJsb2NrICpsYXN0X3NlbnRfYmxvY2s7DQo+IC1z dGF0aWMgcmFtX2FkZHJfdCBsYXN0X29mZnNldDsNCj4gLXN0YXRpYyB1bnNpZ25lZCBsb25nICpt aWdyYXRpb25fYml0bWFwOw0KPiAtc3RhdGljIHVpbnQ2NF90IG1pZ3JhdGlvbl9kaXJ0eV9wYWdl czsNCj4gLXN0YXRpYyB1aW50MzJfdCBsYXN0X3ZlcnNpb247DQo+IC1zdGF0aWMgYm9vbCByYW1f YnVsa19zdGFnZTsNCj4gLQ0KPiAgc3RhdGljIGlubGluZQ0KPiAgcmFtX2FkZHJfdCBtaWdyYXRp b25fYml0bWFwX2ZpbmRfYW5kX3Jlc2V0X2RpcnR5KE1lbW9yeVJlZ2lvbiAqbXIsDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFtX2FkZHJfdA0K PiBzdGFydCkNCj4gQEAgLTUxMiw2ICs1MjgsNyBAQCBzdGF0aWMgaW50IHJhbV9zYXZlX2Jsb2Nr KFFFTVVGaWxlICpmLCBib29sDQo+IGxhc3Rfc3RhZ2UpDQo+ICAgICAgICAgIH0gZWxzZSB7DQo+ ICAgICAgICAgICAgICBpbnQgcmV0Ow0KPiAgICAgICAgICAgICAgdWludDhfdCAqcDsNCj4gKyAg ICAgICAgICAgIGJvb2wgc2VuZF9hc3luYyA9IHRydWU7DQo+ICAgICAgICAgICAgICBpbnQgY29u dCA9IChibG9jayA9PSBsYXN0X3NlbnRfYmxvY2spID8NCj4gICAgICAgICAgICAgICAgICBSQU1f U0FWRV9GTEFHX0NPTlRJTlVFIDogMDsNCj4gDQo+IEBAIC01MjIsNiArNTM5LDcgQEAgc3RhdGlj IGludCByYW1fc2F2ZV9ibG9jayhRRU1VRmlsZSAqZiwgYm9vbA0KPiBsYXN0X3N0YWdlKQ0KPiAg ICAgICAgICAgICAgcmV0ID0gcmFtX2NvbnRyb2xfc2F2ZV9wYWdlKGYsIGJsb2NrLT5vZmZzZXQs DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LCBUQVJHRVRfUEFHRV9T SVpFLA0KPiAmYnl0ZXNfc2VudCk7DQo+IA0KPiArICAgICAgICAgICAgY3VycmVudF9hZGRyID0g YmxvY2stPm9mZnNldCArIG9mZnNldDsNCj4gICAgICAgICAgICAgIGlmIChyZXQgIT0gUkFNX1NB VkVfQ09OVFJPTF9OT1RfU1VQUCkgew0KPiAgICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gUkFN X1NBVkVfQ09OVFJPTF9ERUxBWUVEKSB7DQo+ICAgICAgICAgICAgICAgICAgICAgIGlmIChieXRl c19zZW50ID4gMCkgew0KPiBAQCAtNTM2LDE5ICs1NTQsMzUgQEAgc3RhdGljIGludCByYW1fc2F2 ZV9ibG9jayhRRU1VRmlsZSAqZiwgYm9vbA0KPiBsYXN0X3N0YWdlKQ0KPiANCj4gUkFNX1NBVkVf RkxBR19DT01QUkVTUyk7DQo+ICAgICAgICAgICAgICAgICAgcWVtdV9wdXRfYnl0ZShmLCAwKTsN Cj4gICAgICAgICAgICAgICAgICBieXRlc19zZW50Kys7DQo+ICsgICAgICAgICAgICAgICAgLyog TXVzdCBsZXQgeGJ6cmxlIGtub3csIG90aGVyd2lzZSBhIHByZXZpb3VzIChub3cgMCdkKQ0KPiBj YWNoZWQNCj4gKyAgICAgICAgICAgICAgICAgKiBwYWdlIHdvdWxkIGJlIHN0YWxlDQo+ICsgICAg ICAgICAgICAgICAgICovDQo+ICsgICAgICAgICAgICAgICAgeGJ6cmxlX2NhY2hlX3plcm9fcGFn ZShjdXJyZW50X2FkZHIpOw0KPiAgICAgICAgICAgICAgfSBlbHNlIGlmICghcmFtX2J1bGtfc3Rh Z2UgJiYgbWlncmF0ZV91c2VfeGJ6cmxlKCkpIHsNCj4gLSAgICAgICAgICAgICAgICBjdXJyZW50 X2FkZHIgPSBibG9jay0+b2Zmc2V0ICsgb2Zmc2V0Ow0KPiAgICAgICAgICAgICAgICAgIGJ5dGVz X3NlbnQgPSBzYXZlX3hienJsZV9wYWdlKGYsIHAsIGN1cnJlbnRfYWRkciwgYmxvY2ssDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LCBjb250 LA0KPiBsYXN0X3N0YWdlKTsNCj4gICAgICAgICAgICAgICAgICBpZiAoIWxhc3Rfc3RhZ2UpIHsN Cj4gKyAgICAgICAgICAgICAgICAgICAgLyogV2UgbXVzdCBzZW5kIGV4YWN0bHkgd2hhdCdzIGlu IHRoZSB4YnpybGUgY2FjaGUNCj4gKyAgICAgICAgICAgICAgICAgICAgICogZXZlbiBpZiB0aGUg cGFnZSB3YXNuJ3QgeGJ6cmxlIGNvbXByZXNzZWQsIHNvDQo+IHRoYXQNCj4gKyAgICAgICAgICAg ICAgICAgICAgICogaXQncyByaWdodCBuZXh0IHRpbWUuDQo+ICsgICAgICAgICAgICAgICAgICAg ICAqLw0KPiAgICAgICAgICAgICAgICAgICAgICBwID0gZ2V0X2NhY2hlZF9kYXRhKFhCWlJMRS5j YWNoZSwgY3VycmVudF9hZGRyKTsNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICAvKiBDYW4n dCBzZW5kIHRoaXMgY2FjaGVkIGRhdGEgYXN5bmMsIHNpbmNlIHRoZSBjYWNoZQ0KPiBwYWdlDQo+ ICsgICAgICAgICAgICAgICAgICAgICAqIG1pZ2h0IGdldCB1cGRhdGVkIGJlZm9yZSBpdCBnZXRz IHRvIHRoZSB3aXJlDQo+ICsgICAgICAgICAgICAgICAgICAgICAqLw0KPiArICAgICAgICAgICAg ICAgICAgICBzZW5kX2FzeW5jID0gZmFsc2U7DQo+ICAgICAgICAgICAgICAgICAgfQ0KPiAgICAg ICAgICAgICAgfQ0KPiANCj4gICAgICAgICAgICAgIC8qIFhCWlJMRSBvdmVyZmxvdyBvciBub3Jt YWwgcGFnZSAqLw0KPiAgICAgICAgICAgICAgaWYgKGJ5dGVzX3NlbnQgPT0gLTEpIHsNCj4gICAg ICAgICAgICAgICAgICBieXRlc19zZW50ID0gc2F2ZV9ibG9ja19oZHIoZiwgYmxvY2ssIG9mZnNl dCwgY29udCwNCj4gUkFNX1NBVkVfRkxBR19QQUdFKTsNCj4gLSAgICAgICAgICAgICAgICBxZW11 X3B1dF9idWZmZXJfYXN5bmMoZiwgcCwgVEFSR0VUX1BBR0VfU0laRSk7DQo+ICsgICAgICAgICAg ICAgICAgaWYgKHNlbmRfYXN5bmMpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgcWVtdV9wdXRf YnVmZmVyX2FzeW5jKGYsIHAsIFRBUkdFVF9QQUdFX1NJWkUpOw0KPiArICAgICAgICAgICAgICAg IH0gZWxzZSB7DQo+ICsgICAgICAgICAgICAgICAgICAgIHFlbXVfcHV0X2J1ZmZlcihmLCBwLCBU QVJHRVRfUEFHRV9TSVpFKTsNCj4gKyAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgICAgICAg ICAgYnl0ZXNfc2VudCArPSBUQVJHRVRfUEFHRV9TSVpFOw0KPiAgICAgICAgICAgICAgICAgIGFj Y3RfaW5mby5ub3JtX3BhZ2VzKys7DQo+ICAgICAgICAgICAgICB9DQoNCmlmIGEgcGFnZSB0aGF0 IHdhcyBjYWNoZWQgYnkgWEJaUkxFIGJ1dCBYQlpSTEUgb3ZlcmZsb3cscWVtdSBzaG91bGQgc2Vu ZCB0aGUgcGFnZSBpbiB0aGUgY2FjaGUgcmF0aGVyIHRoZW4gb3JpZ2luYWwgcGFnZS5CZWNhdXNl IHRoZSBvcmlnaW5hbCBwYWdlIG1pZ2h0IGNoYW5nZSAuDQoNCj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbWlncmF0aW9uL3BhZ2VfY2FjaGUuaCBiL2luY2x1ZGUvbWlncmF0aW9uL3BhZ2VfY2FjaGUu aA0KPiBpbmRleCBkMTU2ZjBkLi4yZDVjZTJkIDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL21pZ3Jh dGlvbi9wYWdlX2NhY2hlLmgNCj4gKysrIGIvaW5jbHVkZS9taWdyYXRpb24vcGFnZV9jYWNoZS5o DQo+IEBAIC02Niw3ICs2Niw3IEBAIHVpbnQ4X3QgKmdldF9jYWNoZWRfZGF0YShjb25zdCBQYWdl Q2FjaGUgKmNhY2hlLA0KPiB1aW50NjRfdCBhZGRyKTsNCj4gICAqIEBhZGRyOiBwYWdlIGFkZHJl c3MNCj4gICAqIEBwZGF0YTogcG9pbnRlciB0byB0aGUgcGFnZQ0KPiAgICovDQo+IC1pbnQgY2Fj aGVfaW5zZXJ0KFBhZ2VDYWNoZSAqY2FjaGUsIHVpbnQ2NF90IGFkZHIsIHVpbnQ4X3QgKnBkYXRh KTsNCj4gK2ludCBjYWNoZV9pbnNlcnQoUGFnZUNhY2hlICpjYWNoZSwgdWludDY0X3QgYWRkciwg Y29uc3QgdWludDhfdCAqcGRhdGEpOw0KPiANCj4gIC8qKg0KPiAgICogY2FjaGVfcmVzaXplOiBy ZXNpemUgdGhlIHBhZ2UgY2FjaGUuIEluIGNhc2Ugb2Ygc2l6ZSByZWR1Y3Rpb24gdGhlIGV4dHJh DQo+IGRpZmYgLS1naXQgYS9wYWdlX2NhY2hlLmMgYi9wYWdlX2NhY2hlLmMNCj4gaW5kZXggM2Vm NmVlNy4uYjAzMzY4MSAxMDA2NDQNCj4gLS0tIGEvcGFnZV9jYWNoZS5jDQo+ICsrKyBiL3BhZ2Vf Y2FjaGUuYw0KPiBAQCAtMTUwLDcgKzE1MCw3IEBAIHVpbnQ4X3QgKmdldF9jYWNoZWRfZGF0YShj b25zdCBQYWdlQ2FjaGUgKmNhY2hlLA0KPiB1aW50NjRfdCBhZGRyKQ0KPiAgICAgIHJldHVybiBj YWNoZV9nZXRfYnlfYWRkcihjYWNoZSwgYWRkciktPml0X2RhdGE7DQo+ICB9DQo+IA0KPiAtaW50 IGNhY2hlX2luc2VydChQYWdlQ2FjaGUgKmNhY2hlLCB1aW50NjRfdCBhZGRyLCB1aW50OF90ICpw ZGF0YSkNCj4gK2ludCBjYWNoZV9pbnNlcnQoUGFnZUNhY2hlICpjYWNoZSwgdWludDY0X3QgYWRk ciwgY29uc3QgdWludDhfdCAqcGRhdGEpDQo+ICB7DQo+IA0KPiAgICAgIENhY2hlSXRlbSAqaXQg PSBOVUxMOw0KPiAtLQ0KPiAxLjguNS4zDQo+IA0KDQo=