From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41343) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZvcBt-0008Op-QL for qemu-devel@nongnu.org; Sun, 08 Nov 2015 21:28:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZvcBq-0007od-HU for qemu-devel@nongnu.org; Sun, 08 Nov 2015 21:28:17 -0500 Received: from mga11.intel.com ([192.55.52.93]:24250) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZvcBq-0007oF-4x for qemu-devel@nongnu.org; Sun, 08 Nov 2015 21:28:14 -0500 From: "Li, Liang Z" Date: Mon, 9 Nov 2015 02:28:09 +0000 Message-ID: References: <563E16AF.8070209@openvz.org> In-Reply-To: <563E16AF.8070209@openvz.org> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Qemu-devel] assert during internal snapshot List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Denis V. Lunev" , Paolo Bonzini , Juan Quintela , Amit Shah Cc: QEMU PiBIZWxsbywgQWxsIQ0KPiANCj4gVGhpcyBjb21taXQNCj4gDQo+IGNvbW1pdCA5NGY1YTQzNzA0 MTI5Y2E0OTk1YWEzMzg1MzAzYzVhZTIyNWJkZTQyDQo+IEF1dGhvcjogTGlhbmcgTGkgPGxpYW5n LnoubGlAaW50ZWwuY29tPg0KPiBEYXRlOiAgIE1vbiBOb3YgMiAxNTozNzowMCAyMDE1ICswODAw DQo+IA0KPiAgICAgIG1pZ3JhdGlvbjogZGVmZXIgbWlncmF0aW9uX2VuZCAmIGJsa19taWdfY2xl YW51cA0KPiANCj4gICAgICBCZWNhdXNlIG9mIHRoZSBwYXRjaCAzZWEzYjdmYTlhZjA2Nzk4MmYz NGIgb2Yga3ZtLCB3aGljaCBpbnRyb2R1Y2VzIGENCj4gICAgICBsYXp5IGNvbGxhcHNpbmcgb2Yg c21hbGwgc3B0ZXMgaW50byBsYXJnZSBzcHRlcyBtZWNoYW5pc20sIG5vdw0KPiAgICAgIG1pZ3Jh dGlvbl9lbmQoKSBpcyBhIHRpbWUgY29uc3VtaW5nIG9wZXJhdGlvbiBiZWNhdXNlIGl0IGNhbGxz DQo+ICAgICAgbWVtcm95X2dsb2JhbF9kaXJ0eV9sb2dfc3RvcCgpLCB3aGljaCB3aWxsIHRyaWdn ZXIgdGhlIGRyb3BwaW5nIG9mIHNtYWxsDQo+ICAgICAgc3B0ZXMgb3BlcmF0aW9uIGFuZCB0YWtl cyBhYm91dCBkb3plbnMgb2YgbWlsbGlzZWNvbmRzLCBzbyBjYWxsDQo+ICAgICAgbWlncmF0aW9u X2VuZCgpIGJlZm9yZSBhbGwgdGhlIHZtc2F0ZSBkYXRhIGhhcyBhbHJlYWR5IGJlZW4gdHJhbnNm ZXJyZWQNCj4gICAgICB0byB0aGUgZGVzdGluYXRpb24gd2lsbCBwcm9sb25nIFZNIGRvd250aW1l LiBUaGlzIG9wZXJhdGlvbiBzaG91bGQgYmUNCj4gICAgICBkZWZlcnJlZCBhZnRlciBhbGwgdGhl IGRhdGEgaGFzIGJlZW4gdHJhbnNmZXJyZWQgdG8gdGhlIGRlc3RpbmF0aW9uLg0KPiANCj4gICAg ICBibGtfbWlnX2NsZWFudXAoKSBjYW4gYmUgZGVmZXJyZWQgdG9vLg0KPiANCj4gICAgICBGb3Ig YSBWTSB3aXRoIDhHIFJBTSwgdGhpcyBwYXRjaCBjYW4gcmVkdWNlIHRoZSBWTSBkb3dudGltZSBh Ym91dA0KPiAzMCBtcy4NCj4gDQo+ICAgICAgU2lnbmVkLW9mZi1ieTogTGlhbmcgTGkgPGxpYW5n LnoubGlAaW50ZWwuY29tPg0KPiAgICAgIFJldmlld2VkLWJ5OiBQYW9sbyBCb256aW5pIDxwYm9u emluaUByZWRoYXQuY29tPg0KPiAgICAgIFJldmlld2VkLWJ5OiBKdWFuIFF1aW50ZWxhIDxxdWlu dGVsYUByZWRoYXQuY29tPmFsMw0KPiAgICAgIFJldmlld2VkLWJ5OiBBbWl0IFNoYWggPGFtaXQu c2hhaEByZWRoYXQuY29tPmFsMw0KPiAgICAgIFNpZ25lZC1vZmYtYnk6IEp1YW4gUXVpbnRlbGEg PHF1aW50ZWxhQHJlZGhhdC5jb20+YWwzDQo+IA0KPiBpbnRyb2R1Y2VzIHRoZSBmb2xsb3dpbmcg cmVncmVzc2lvbg0KPiANCj4gKGdkYikgYnQNCj4gIzAgIDB4MDAwMDdmZDVkMzE0YTI2NyBpbiBf X0dJX3JhaXNlIChzaWc9c2lnQGVudHJ5PTYpDQo+ICAgICAgYXQgLi4vc3lzZGVwcy91bml4L3N5 c3YvbGludXgvcmFpc2UuYzo1NQ0KPiAjMSAgMHgwMDAwN2ZkNWQzMTRiZWNhIGluIF9fR0lfYWJv cnQgKCkgYXQgYWJvcnQuYzo4OQ0KPiAjMiAgMHgwMDAwN2ZkNWQzMTQzMDNkIGluIF9fYXNzZXJ0 X2ZhaWxfYmFzZSAoDQo+ICAgICAgZm10PTB4N2ZkNWQzMmE1MDI4ICIlcyVzJXM6JXU6ICVzJXNB c3NlcnRpb24gYCVzJyBmYWlsZWQuXG4lbiIsDQo+ICAgICAgYXNzZXJ0aW9uPWFzc2VydGlvbkBl bnRyeT0weDU1NzI4OGVkNWI2OSAiaSAhPSBtci0+aW9ldmVudGZkX25iIiwNCj4gICAgICBmaWxl PWZpbGVAZW50cnk9MHg1NTcyODhlZDVhMzYgIi9ob21lL2Rlbi9zcmMvcWVtdS9tZW1vcnkuYyIs DQo+ICAgICAgbGluZT1saW5lQGVudHJ5PTE3MzEsDQo+ICAgICAgZnVuY3Rpb249ZnVuY3Rpb25A ZW50cnk9MHg1NTcyODhlZDVmYjAgPF9fUFJFVFRZX0ZVTkNUSU9OX18uMzI1NDU+DQo+ICJtZW1v cnlfcmVnaW9uX2RlbF9ldmVudGZkIikgYXQgYXNzZXJ0LmM6OTINCj4gIzMgIDB4MDAwMDdmZDVk MzE0MzBmMiBpbiBfX0dJX19fYXNzZXJ0X2ZhaWwgKA0KPiAgICAgIGFzc2VydGlvbj0weDU1NzI4 OGVkNWI2OSAiaSAhPSBtci0+aW9ldmVudGZkX25iIiwNCj4gICAgICBmaWxlPTB4NTU3Mjg4ZWQ1 YTM2ICIvaG9tZS9kZW4vc3JjL3FlbXUvbWVtb3J5LmMiLCBsaW5lPTE3MzEsDQo+ICAgICAgZnVu Y3Rpb249MHg1NTcyODhlZDVmYjAgPF9fUFJFVFRZX0ZVTkNUSU9OX18uMzI1NDU+DQo+ICJtZW1v cnlfcmVnaW9uX2RlbF9ldmVudGZkIikgYXQgYXNzZXJ0LmM6MTAxDQo+ICM0ICAweDAwMDA1NTcy ODhiMTA4ZmEgaW4gbWVtb3J5X3JlZ2lvbl9kZWxfZXZlbnRmZA0KPiAobXI9MHg1NTcyOGFkODM3 MDAsDQo+ICAgICAgYWRkcj0xNiwgc2l6ZT0yLCBtYXRjaF9kYXRhPXRydWUsIGRhdGE9MCwgZT0w eDU1NzI4YjIxZmY0MCkNCj4gICAgICBhdCAvaG9tZS9kZW4vc3JjL3FlbXUvbWVtb3J5LmM6MTcz MQ0KPiAjNSAgMHgwMDAwNTU3Mjg4ZDlmYzE4IGluIHZpcnRpb19wY2lfc2V0X2hvc3Rfbm90aWZp ZXJfaW50ZXJuYWwgKA0KPiAgICAgIHByb3h5PTB4NTU3MjhhZDgyZTgwLCBuPTAsIGFzc2lnbj1m YWxzZSwgc2V0X2hhbmRsZXI9ZmFsc2UpDQo+ICAgICAgYXQgaHcvdmlydGlvL3ZpcnRpby1wY2ku YzoxNzgNCj4gIzYgIDB4MDAwMDU1NzI4OGRhMTlhOSBpbiB2aXJ0aW9fcGNpX3NldF9ob3N0X25v dGlmaWVyIChkPTB4NTU3MjhhZDgyZTgwLA0KPiBuPTAsDQo+ICAgICAgYXNzaWduPWZhbHNlKSBh dCBody92aXJ0aW8vdmlydGlvLXBjaS5jOjk4NA0KPiAjNyAgMHgwMDAwNTU3Mjg4YjUyM2RmIGlu IHZpcnRpb19zY3NpX2RhdGFwbGFuZV9zdGFydCAocz0weDU1NzI4YWQ4YWZhMCkNCj4gICAgICBh dCAvaG9tZS9kZW4vc3JjL3FlbXUvaHcvc2NzaS92aXJ0aW8tc2NzaS1kYXRhcGxhbmUuYzoyNjgN Cj4gIzggIDB4MDAwMDU1NzI4OGI1MDIxMCBpbiB2aXJ0aW9fc2NzaV9oYW5kbGVfY21kICh2ZGV2 PTB4NTU3MjhhZDhhZmEwLA0KPiAgICAgIHZxPTB4NTU3MjhiMjFmZmMwKSBhdCAvaG9tZS9kZW4v c3JjL3FlbXUvaHcvc2NzaS92aXJ0aW8tc2NzaS5jOjU3NA0KPiAjOSAgMHgwMDAwNTU3Mjg4YjY1 Y2I3IGluIHZpcnRpb19xdWV1ZV9ub3RpZnlfdnEgKHZxPTB4NTU3MjhiMjFmZmMwKQ0KPiAgICAg IGF0IC9ob21lL2Rlbi9zcmMvcWVtdS9ody92aXJ0aW8vdmlydGlvLmM6OTY2DQo+ICMxMCAweDAw MDA1NTcyODhiNjdiYmYgaW4gdmlydGlvX3F1ZXVlX2hvc3Rfbm90aWZpZXJfcmVhZA0KPiAobj0w eDU1NzI4YjIyMDAxMCkNCj4gICAgICBhdCAvaG9tZS9kZW4vc3JjL3FlbXUvaHcvdmlydGlvL3Zp cnRpby5jOjE2NDMNCj4gIzExIDB4MDAwMDU1NzI4OGUxMmEyYiBpbiBhaW9fZGlzcGF0Y2ggKGN0 eD0weDU1NzI4YWNhZWFiMCkgYXQNCj4gYWlvLXBvc2l4LmM6MTYwDQo+ICMxMiAweDAwMDA1NTcy ODhlMDMxOTQgaW4gYWlvX2N0eF9kaXNwYXRjaCAoc291cmNlPTB4NTU3MjhhY2FlYWIwLA0KPiAg ICAgIGNhbGxiYWNrPTB4MCwgdXNlcl9kYXRhPTB4MCkgYXQgYXN5bmMuYzoyMjYNCj4gIzEzIDB4 MDAwMDdmZDVkNDA5ZmZmNyBpbiBnX21haW5fY29udGV4dF9kaXNwYXRjaCAoKQ0KPiAgICAgZnJv bSAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi0yLjAuc28uMA0KPiAtLS1UeXBlIDxyZXR1 cm4+IHRvIGNvbnRpbnVlLCBvciBxIDxyZXR1cm4+IHRvIHF1aXQtLS0NCj4gIzE0IDB4MDAwMDU1 NzI4OGUxMTEwZCBpbiBnbGliX3BvbGxmZHNfcG9sbCAoKSBhdCBtYWluLWxvb3AuYzoyMTENCj4g IzE1IDB4MDAwMDU1NzI4OGUxMTFlOCBpbiBvc19ob3N0X21haW5fbG9vcF93YWl0ICh0aW1lb3V0 PTApIGF0DQo+IG1haW4tbG9vcC5jOjI1Ng0KPiAjMTYgMHgwMDAwNTU3Mjg4ZTExMjk1IGluIG1h aW5fbG9vcF93YWl0IChub25ibG9ja2luZz0wKSBhdCBtYWluLQ0KPiBsb29wLmM6NTA0DQo+ICMx NyAweDAwMDA1NTcyODhjMWMzMWMgaW4gbWFpbl9sb29wICgpIGF0IHZsLmM6MTg5MA0KPiAjMTgg MHgwMDAwNTU3Mjg4YzIzZGVjIGluIG1haW4gKGFyZ2M9MTA1LCBhcmd2PTB4N2ZmY2E5YTZmYTA4 LA0KPiAgICAgIGVudnA9MHg3ZmZjYTlhNmZkNTgpIGF0IHZsLmM6NDY0NA0KPiAoZ2RiKQ0KPiAN Cj4gZHVyaW5nICd2aXJzaCBjcmVhdGUtc25hcHNob3QnIG9wZXJhdGlvbiBvdmVyIGFsaXZlIFZN Lg0KPiBJdCBoYXBwZW5zIDEwMCUgb2YgdGltZSB3aGVuIFZNIGlzIHJ1biB1c2luZyB0aGUgZm9s bG93aW5nIGNvbW1hbmQgbGluZToNCj4gDQo+ICAgNzQ5OCA/ICAgICAgICB0bCAgICAgMDozNyBx ZW11LXN5c3RlbS14ODZfNjQgLWVuYWJsZS1rdm0gLW5hbWUgcmhlbDcNCj4gLVMgLW1hY2hpbmUg cGMtaTQ0MGZ4LTIuMixhY2NlbD1rdm0sdXNiPW9mZiAtY3B1IFNhbmR5QnJpZGdlIC1tIDEwMjQg LQ0KPiByZWFsdGltZSBtbG9jaz1vZmYgLXNtcCAxLHNvY2tldHM9MSxjb3Jlcz0xLHRocmVhZHM9 MSAtb2JqZWN0DQo+IGlvdGhyZWFkLGlkPWlvdGhyZWFkMSAtdXVpZCA0NTZhZjRkMy01ZDY3LTQx YzYtYTIyOS1jNTVkZWQ2MDk4ZTkNCj4gLW5vLXVzZXItY29uZmlnIC1ub2RlZmF1bHRzIC1jaGFy ZGV2DQo+IHNvY2tldCxpZD1jaGFybW9uaXRvcixwYXRoPS92YXIvbGliL2xpYnZpcnQvcWVtdS9y aGVsNy5tb25pdG9yLHNlcnZlcixub3dhaXQNCj4gLW1vbiBjaGFyZGV2PWNoYXJtb25pdG9yLGlk PW1vbml0b3IsbW9kZT1jb250cm9sIC1ydGMNCj4gYmFzZT11dGMsZHJpZnRmaXg9c2xldyAtZ2xv YmFsIGt2bS1waXQubG9zdF90aWNrX3BvbGljeT1kaXNjYXJkIC1uby1ocGV0IC1uby0NCj4gc2h1 dGRvd24gLWdsb2JhbCBQSUlYNF9QTS5kaXNhYmxlX3MzPTEgLWdsb2JhbCBQSUlYNF9QTS5kaXNh YmxlX3M0PTEgLWJvb3QNCj4gc3RyaWN0PW9uIC1kZXZpY2UgaWNoOS11c2ItZWhjaTEsaWQ9dXNi LGJ1cz1wY2kuMCxhZGRyPTB4Ni4weDcNCj4gLWRldmljZQ0KPiBpY2g5LXVzYi0NCj4gdWhjaTEs bWFzdGVyYnVzPXVzYi4wLGZpcnN0cG9ydD0wLGJ1cz1wY2kuMCxtdWx0aWZ1bmN0aW9uPW9uLGFk ZHI9MHg2DQo+IC1kZXZpY2UNCj4gaWNoOS11c2ItdWhjaTIsbWFzdGVyYnVzPXVzYi4wLGZpcnN0 cG9ydD0yLGJ1cz1wY2kuMCxhZGRyPTB4Ni4weDENCj4gLWRldmljZQ0KPiBpY2g5LXVzYi11aGNp MyxtYXN0ZXJidXM9dXNiLjAsZmlyc3Rwb3J0PTQsYnVzPXBjaS4wLGFkZHI9MHg2LjB4Mg0KPiAt ZGV2aWNlIHZpcnRpby1zY3NpLXBjaSxpZD1zY3NpMCxidXM9cGNpLjAsYWRkcj0weDUgLWRldmlj ZQ0KPiB2aXJ0aW8tc2VyaWFsLXBjaSxpZD12aXJ0aW8tc2VyaWFsMCxidXM9cGNpLjAsYWRkcj0w eDcgLWRyaXZlDQo+IGZpbGU9L3Zhci9saWIvbGlidmlydC9pbWFnZXMvcmhlbDcucWNvdzIsaWY9 bm9uZSxpZD1kcml2ZS1zY3NpMC0wLTAtDQo+IDAsZm9ybWF0PXFjb3cyLGNhY2hlPW5vbmUsYWlv PW5hdGl2ZQ0KPiAtZGV2aWNlDQo+IHNjc2ktaGQsYnVzPXNjc2kwLjAsY2hhbm5lbD0wLHNjc2kt aWQ9MCxsdW49MCxkcml2ZT1kcml2ZS1zY3NpMC0wLTAtMCxpZD1zY3NpMC0wLQ0KPiAwLTAsYm9v dGluZGV4PTENCj4gLWRyaXZlDQo+IGZpbGU9L2hvbWUvZGVuL3RtcC9DZW50T1MtNy4wLTE0MDYt eDg2XzY0LURWRC5pc28saWY9bm9uZSxpZD1kcml2ZS1pZGUwLTAtDQo+IDAscmVhZG9ubHk9b24s Zm9ybWF0PXJhdw0KPiAtZGV2aWNlIGlkZS1jZCxidXM9aWRlLjAsdW5pdD0wLGRyaXZlPWRyaXZl LWlkZTAtMC0wLGlkPWlkZTAtMC0wIC1uZXRkZXYNCj4gdGFwLGZkPTI0LGlkPWhvc3RuZXQwLHZo b3N0PW9uLHZob3N0ZmQ9MjUgLWRldmljZQ0KPiB2aXJ0aW8tbmV0LQ0KPiBwY2ksbmV0ZGV2PWhv c3RuZXQwLGlkPW5ldDAsbWFjPTUyOjU0OjAwOjk3OjJmOjFkLGJ1cz1wY2kuMCxhZGRyPTB4Mw0K PiAtY2hhcmRldg0KPiBzb2NrZXQsaWQ9Y2hhcmNoYW5uZWwwLHBhdGg9L3Zhci9saWIvbGlidmly dC9xZW11L2NoYW5uZWwvdGFyZ2V0L3JoZWw3Lm9yZy5xZQ0KPiBtdS5ndWVzdF9hZ2VudC4wLHNl cnZlcixub3dhaXQNCj4gLWRldmljZQ0KPiB2aXJ0c2VyaWFscG9ydCxidXM9dmlydGlvLQ0KPiBz ZXJpYWwwLjAsbnI9MSxjaGFyZGV2PWNoYXJjaGFubmVsMCxpZD1jaGFubmVsMCxuYW1lPW9yZy5x ZW11Lmd1ZXN0X2FnZW4NCj4gdC4wDQo+IC1jaGFyZGV2IHNwaWNldm1jLGlkPWNoYXJjaGFubmVs MSxuYW1lPXZkYWdlbnQgLWRldmljZQ0KPiB2aXJ0c2VyaWFscG9ydCxidXM9dmlydGlvLQ0KPiBz ZXJpYWwwLjAsbnI9MixjaGFyZGV2PWNoYXJjaGFubmVsMSxpZD1jaGFubmVsMSxuYW1lPWNvbS5y ZWRoYXQuc3BpY2UuMA0KPiAtY2hhcmRldiBwdHksaWQ9Y2hhcmNvbnNvbGUwIC1kZXZpY2UNCj4g dmlydGNvbnNvbGUsY2hhcmRldj1jaGFyY29uc29sZTAsaWQ9Y29uc29sZTAgLWRldmljZQ0KPiB1 c2ItdGFibGV0LGlkPWlucHV0MCAtc3BpY2UNCj4gcG9ydD01OTAwLGFkZHI9MTI3LjAuMC4xLGRp c2FibGUtdGlja2V0aW5nLHNlYW1sZXNzLW1pZ3JhdGlvbj1vbiAtZGV2aWNlDQo+IHF4bC0NCj4g dmdhLGlkPXZpZGVvMCxyYW1fc2l6ZT02NzEwODg2NCx2cmFtX3NpemU9NjcxMDg4NjQsdmdhbWVt X21iPTE2LGJ1cz0NCj4gcGNpLjAsYWRkcj0weDINCj4gLWRldmljZSBpbnRlbC1oZGEsaWQ9c291 bmQwLGJ1cz1wY2kuMCxhZGRyPTB4NCAtZGV2aWNlDQo+IGhkYS1kdXBsZXgsaWQ9c291bmQwLWNv ZGVjMCxidXM9c291bmQwLjAsY2FkPTAgLWNoYXJkZXYNCj4gc3BpY2V2bWMsaWQ9Y2hhcnJlZGly MCxuYW1lPXVzYnJlZGlyIC1kZXZpY2UNCj4gdXNiLXJlZGlyLGNoYXJkZXY9Y2hhcnJlZGlyMCxp ZD1yZWRpcjAgLWNoYXJkZXYNCj4gc3BpY2V2bWMsaWQ9Y2hhcnJlZGlyMSxuYW1lPXVzYnJlZGly IC1kZXZpY2UNCj4gdXNiLXJlZGlyLGNoYXJkZXY9Y2hhcnJlZGlyMSxpZD1yZWRpcjEgLWNoYXJk ZXYNCj4gc3BpY2V2bWMsaWQ9Y2hhcnJlZGlyMixuYW1lPXVzYnJlZGlyIC1kZXZpY2UNCj4gdXNi LXJlZGlyLGNoYXJkZXY9Y2hhcnJlZGlyMixpZD1yZWRpcjIgLWNoYXJkZXYNCj4gc3BpY2V2bWMs aWQ9Y2hhcnJlZGlyMyxuYW1lPXVzYnJlZGlyIC1kZXZpY2UNCj4gdXNiLXJlZGlyLGNoYXJkZXY9 Y2hhcnJlZGlyMyxpZD1yZWRpcjMgLWRldmljZQ0KPiB2aXJ0aW8tYmFsbG9vbi1wY2ksaWQ9YmFs bG9vbjAsYnVzPXBjaS4wLGFkZHI9MHg4IC1zZXQNCj4gZGV2aWNlLnNjc2kwLmlvdGhyZWFkPWlv dGhyZWFkMSAtbXNnIHRpbWVzdGFtcD1vbg0KPiANCj4gTWluaW1hbCBkdW1iICghISEpIGZpeCBp cyB0aGUgZm9sbG93aW5nOg0KPiANCj4gaGFkZXMgfi9zcmMvcWVtdSAkIGNhdCAxLmRpZmYNCj4g ZGlmZiAtLWdpdCBhL21pZ3JhdGlvbi9yYW0uYyBiL21pZ3JhdGlvbi9yYW0uYyBpbmRleCAyNWU5 ZWViLi4yNWViZjBkIDEwMDY0NA0KPiAtLS0gYS9taWdyYXRpb24vcmFtLmMNCj4gKysrIGIvbWln cmF0aW9uL3JhbS5jDQo+IEBAIC0xMTAwLDcgKzExMDAsOCBAQCBzdGF0aWMgdm9pZCBtaWdyYXRp b25fYml0bWFwX2ZyZWUoc3RydWN0IEJpdG1hcFJjdQ0KPiAqYm1hcCkNCj4gICAgICAgZ19mcmVl KGJtYXApOw0KPiAgIH0NCj4gDQo+IC1zdGF0aWMgdm9pZCBtaWdyYXRpb25fZW5kKHZvaWQpDQo+ ICtleHRlcm4gdm9pZCBtaWdyYXRpb25fZW5kKHZvaWQpOw0KPiArdm9pZCBtaWdyYXRpb25fZW5k KHZvaWQpDQo+ICAgew0KPiAgICAgICAvKiBjYWxsZXIgaGF2ZSBob2xkIGlvdGhyZWFkIGxvY2sg b3IgaXMgaW4gYSBiaCwgc28gdGhlcmUgaXMNCj4gICAgICAgICogbm8gd3JpdGluZyByYWNlIGFn YWluc3QgdGhpcyBtaWdyYXRpb25fYml0bWFwIGRpZmYgLS1naXQNCj4gYS9taWdyYXRpb24vc2F2 ZXZtLmMgYi9taWdyYXRpb24vc2F2ZXZtLmMgaW5kZXggZGJjYzM5YS4uMDFkYTg2NSAxMDA2NDQN Cj4gLS0tIGEvbWlncmF0aW9uL3NhdmV2bS5jDQo+ICsrKyBiL21pZ3JhdGlvbi9zYXZldm0uYw0K PiBAQCAtOTE0LDYgKzkxNCw3IEBAIHZvaWQgcWVtdV9zYXZldm1fc3RhdGVfY2FuY2VsKHZvaWQp DQo+ICAgICAgIH0NCj4gICB9DQo+IA0KPiArZXh0ZXJuIHZvaWQgbWlncmF0aW9uX2VuZCh2b2lk KTsNCj4gICBzdGF0aWMgaW50IHFlbXVfc2F2ZXZtX3N0YXRlKFFFTVVGaWxlICpmLCBFcnJvciAq KmVycnApDQo+ICAgew0KPiAgICAgICBpbnQgcmV0Ow0KPiBAQCAtOTQyLDYgKzk0Myw4IEBAIHN0 YXRpYyBpbnQgcWVtdV9zYXZldm1fc3RhdGUoUUVNVUZpbGUgKmYsIEVycm9yDQo+ICoqZXJycCkN Cj4gICAgICAgICAgIHFlbXVfc2F2ZXZtX3N0YXRlX2NvbXBsZXRlKGYpOw0KPiAgICAgICAgICAg cmV0ID0gcWVtdV9maWxlX2dldF9lcnJvcihmKTsNCj4gICAgICAgfQ0KPiArICAgIG1pZ3JhdGlv bl9lbmQoKTsNCj4gKw0KPiAgICAgICBpZiAocmV0ICE9IDApIHsNCj4gICAgICAgICAgIHFlbXVf c2F2ZXZtX3N0YXRlX2NhbmNlbCgpOw0KPiAgICAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJw LCAtcmV0LCAiRXJyb3Igd2hpbGUgd3JpdGluZyBWTSBzdGF0ZSIpOyBoYWRlcw0KPiB+L3NyYy9x ZW11ICQNCj4gDQo+IChwYXRjaCBhdHRhY2hlZCB0byBzdGFydCBhIGRpc2N1c3Npb24pLg0KPiAN Cj4gRm9yIG1lIGl0IGxvb2tzIGxpa2UgY29tbWl0IGlzIHdyb25nIGFuZCBzaG91bGQgYmUgcmV2 ZXJ0ZWQgYW5kIHJld29ya2VkLg0KPiANCj4gRGVuDQoNCg0KSGkgRGVuLA0KDQogICBJIGRvbid0 IGtub3cgdGhlIHJlYXNvbiAgZm9yIHRoaXMgaXNzdWUsICBjb3VsZCB5b3UgcGxlYXNlIHBvaW50 IG91dCBob3cgY2FuIEkgcmVwcm9kdWNlIHRoZSBpc3N1ZSBqdXN0IHdpdGggUUVNVT8gd2l0aCB0 aGUgZmV3ZXN0IGNvbW1hbmQgb3B0aW9uLCBJIGRvIG5vdCBoYXZlIHRoZSBsaWJ2aXJ0IGVudmly b25tZW50Lg0KDQogTGlhbmcNCg0KDQo=