From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v10 26/31] COLO proxy: implement setup/teardown of COLO proxy module Date: Fri, 11 Mar 2016 17:25:10 -0500 Message-ID: <20160311222510.GB23682@char.us.oracle.com> References: <1456109555-28299-1-git-send-email-wency@cn.fujitsu.com> <1456109555-28299-27-git-send-email-wency@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1456109555-28299-27-git-send-email-wency@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Wen Congyang Cc: Lars Kurth , Changlong Xie , Wei Liu , Ian Campbell , Andrew Cooper , Jiang Yunhong , Dong Eddie , xen devel , Gui Jianfeng , Shriram Rajagopalan , Ian Jackson , Yang Hongyang List-Id: xen-devel@lists.xenproject.org PiArZXh0ZXJuIGludCBjb2xvX3Byb3h5X3NldHVwKGxpYnhsX19jb2xvX3Byb3h5X3N0YXRlICpj cHMpOwo+ICtleHRlcm4gdm9pZCBjb2xvX3Byb3h5X3RlYXJkb3duKGxpYnhsX19jb2xvX3Byb3h5 X3N0YXRlICpjcHMpOwo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxf Y29sb19wcm94eS5jIGIvdG9vbHMvbGlieGwvbGlieGxfY29sb19wcm94eS5jCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5lMDdlNjQwCj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9fcHJveHkuYwo+IEBAIC0wLDAgKzEsMjMwIEBACj4g Ky8qCj4gKyAqIENvcHlyaWdodCAoQykgMjAxNSBGVUpJVFNVIExJTUlURUQKCjIwMTY/Cj4gKyAq IEF1dGhvcjogWWFuZyBIb25neWFuZyA8aG9uZ3lhbmcueWFuZ0BlYXN5c3RhY2suY24+Cj4gKyAq Cj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAo+ICsgKiBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuMSBvbmx5LiB3aXRoIHRoZSBzcGVjaWFs Cj4gKyAqIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiBmaWxlIExJQ0VOU0UuCj4g KyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAo+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCj4gKyAqIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKi8KPiArCj4gKyNp bmNsdWRlICJsaWJ4bF9vc2RlcHMuaCIgLyogbXVzdCBjb21lIGJlZm9yZSBhbnkgb3RoZXIgaGVh ZGVycyAqLwo+ICsKPiArI2luY2x1ZGUgImxpYnhsX2ludGVybmFsLmgiCj4gKyNpbmNsdWRlICJs aWJ4bF9jb2xvLmgiCj4gKyNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+Cj4gKwo+ICsjZGVmaW5l IE5FVExJTktfQ09MTyAyOAoKQ2FuIHlvdSBpbmNsdWRlIGEgY29tbWVudCB3aHkgMjg/IFdoeSBu b3QgMzE0MTU/Cgo+ICsKPiArZW51bSBjb2xvX25ldGxpbmtfb3Agewo+ICsgICAgQ09MT19RVUVS WV9DSEVDS1BPSU5UID0gKE5MTVNHX01JTl9UWVBFICsgMSksCj4gKyAgICBDT0xPX0NIRUNLUE9J TlQsCj4gKyAgICBDT0xPX0ZBSUxPVkVSLAo+ICsgICAgQ09MT19QUk9YWV9JTklULAo+ICsgICAg Q09MT19QUk9YWV9SRVNFVCwgLyogVU5VU0VELCB3aWxsIGJlIHVzZWQgZm9yIGNvbnRpbnVvdXMg RlQgKi8KPiArfTsKPiArCj4gKy8qID09PT09PT09PSBjb2xvLXByb3h5OiBoZWxwZXIgZnVuY3Rp b25zID09PT09PT09PT0gKi8KPiArCj4gK3N0YXRpYyBpbnQgY29sb19wcm94eV9zZW5kKGxpYnhs X19jb2xvX3Byb3h5X3N0YXRlICpjcHMsIHVpbnQ4X3QgKmJ1ZmYsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQ2NF90IHNpemUsIGludCB0eXBlKQo+ICt7Cj4gKyAgICBzdHJ1Y3Qg c29ja2FkZHJfbmwgc2E7Cj4gKyAgICBzdHJ1Y3Qgbmxtc2doZHIgbXNnOwo+ICsgICAgc3RydWN0 IGlvdmVjIGlvdjsKPiArICAgIHN0cnVjdCBtc2doZHIgbWg7Cj4gKyAgICBpbnQgcmV0Owo+ICsK PiArICAgIFNUQVRFX0FPX0dDKGNwcy0+YW8pOwo+ICsKPiArICAgIG1lbXNldCgmc2EsIDAsIHNp emVvZihzYSkpOwo+ICsgICAgc2EubmxfZmFtaWx5ID0gQUZfTkVUTElOSzsKPiArICAgIHNhLm5s X3BpZCA9IDA7Cj4gKyAgICBzYS5ubF9ncm91cHMgPSAwOwo+ICsKPiArICAgIG1zZy5ubG1zZ19s ZW4gPSBOTE1TR19TUEFDRSgwKTsKPiArICAgIG1zZy5ubG1zZ19mbGFncyA9IE5MTV9GX1JFUVVF U1Q7Cj4gKyAgICBpZiAodHlwZSA9PSBDT0xPX1BST1hZX0lOSVQpIHsKPiArICAgICAgICBtc2cu bmxtc2dfZmxhZ3MgfD0gTkxNX0ZfQUNLOwo+ICsgICAgfQoKSSBkb24ndCB0aGluayB5b3UgbmVl ZCB0aGUgeyB9PwoKQWgsIHl1cDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKNS4gQmxvY2sgc3Ry dWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKRXZlcnkgaW5kZW50ZWQgc3RhdGVt ZW50IGlzIGJyYWNlZCBhcGFydCBmcm9tIGJsb2NrcyB0aGF0IGNvbnRhaW4ganVzdCAgICAgICAg ICAKb25lIHN0YXRlbWVudC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKCj4gKyAgICBtc2cubmxtc2dfc2VxID0gMDsKPiAr ICAgIC8qIFRoaXMgaXMgdW50cnVzdHkgKi8KClVtbSwgY2FuIHlvdSBiZSBtb3JlIHNwZWNpZmlj IHBscz8KCj4gKyAgICBtc2cubmxtc2dfcGlkID0gY3BzLT5pbmRleDsKPiArICAgIG1zZy5ubG1z Z190eXBlID0gdHlwZTsKPiArCj4gKyAgICBpb3YuaW92X2Jhc2UgPSAmbXNnOwo+ICsgICAgaW92 Lmlvdl9sZW4gPSBtc2cubmxtc2dfbGVuOwo+ICsKPiArICAgIG1oLm1zZ19uYW1lID0gJnNhOwo+ ICsgICAgbWgubXNnX25hbWVsZW4gPSBzaXplb2Yoc2EpOwo+ICsgICAgbWgubXNnX2lvdiA9ICZp b3Y7Cj4gKyAgICBtaC5tc2dfaW92bGVuID0gMTsKPiArICAgIG1oLm1zZ19jb250cm9sID0gTlVM TDsKPiArICAgIG1oLm1zZ19jb250cm9sbGVuID0gMDsKPiArICAgIG1oLm1zZ19mbGFncyA9IDA7 Cj4gKwo+ICsgICAgcmV0ID0gc2VuZG1zZyhjcHMtPnNvY2tfZmQsICZtaCwgMCk7Cj4gKyAgICBp ZiAocmV0IDw9IDApIHsKPiArICAgICAgICBMT0coRVJST1IsICJjYW4ndCBzZW5kIG1zZyB0byBr ZXJuZWwgYnkgbmV0bGluazogJXMiLAo+ICsgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOwo+ ICsgICAgfQo+ICsKPiArICAgIHJldHVybiByZXQ7Cj4gK30KPiArCj4gKy8qIGVycm9yOiByZXR1 cm4gLTEsIG90aGVyd2lzZSByZXR1cm4gMCAqLwo+ICtzdGF0aWMgaW50NjRfdCBjb2xvX3Byb3h5 X3JlY3YobGlieGxfX2NvbG9fcHJveHlfc3RhdGUgKmNwcywgdWludDhfdCAqKmJ1ZmYsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdGltZW91dF91cykKPiAr ewo+ICsgICAgc3RydWN0IHNvY2thZGRyX25sIHNhOwo+ICsgICAgc3RydWN0IGlvdmVjIGlvdjsK PiArICAgIHN0cnVjdCBtc2doZHIgbWggPSB7Cj4gKyAgICAgICAgLm1zZ19uYW1lID0gJnNhLAo+ ICsgICAgICAgIC5tc2dfbmFtZWxlbiA9IHNpemVvZihzYSksCj4gKyAgICAgICAgLm1zZ19pb3Yg PSAmaW92LAo+ICsgICAgICAgIC5tc2dfaW92bGVuID0gMSwKPiArICAgIH07Cj4gKyAgICBzdHJ1 Y3QgdGltZXZhbCB0djsKPiArICAgIHVpbnQzMl90IHNpemUgPSAxNjM4NDsKPiArICAgIGludDY0 X3QgbGVuID0gMDsKPiArICAgIGludCByZXQ7Cj4gKwo+ICsgICAgU1RBVEVfQU9fR0MoY3BzLT5h byk7Cj4gKyAgICB1aW50OF90ICp0bXAgPSBsaWJ4bF9fbWFsbG9jKE5PR0MsIHNpemUpOwo+ICsK PiArICAgIGlmICh0aW1lb3V0X3VzKSB7Cj4gKyAgICAgICAgdHYudHZfc2VjID0gdGltZW91dF91 cyAvIDEwMDAwMDA7Cj4gKyAgICAgICAgdHYudHZfdXNlYyA9IHRpbWVvdXRfdXMgJSAxMDAwMDAw Owo+ICsgICAgICAgIHNldHNvY2tvcHQoY3BzLT5zb2NrX2ZkLCBTT0xfU09DS0VULCBTT19SQ1ZU SU1FTywgJnR2LCBzaXplb2YodHYpKTsKPiArICAgIH0KPiArCj4gKyAgICBpb3YuaW92X2Jhc2Ug PSB0bXA7Cj4gKyAgICBpb3YuaW92X2xlbiA9IHNpemU7Cj4gK25leHQ6Cj4gKyAgICByZXQgPSBy ZWN2bXNnKGNwcy0+c29ja19mZCwgJm1oLCAwKTsKPiArICAgIGlmIChyZXQgPD0gMCkgewo+ICsg ICAgICAgIGlmIChlcnJubyAhPSBFQUdBSU4gJiYgZXJybm8gIT0gRVdPVUxEQkxPQ0spCgotRUlO VFIgPwoKPiArICAgICAgICAgICAgTE9HRShFUlJPUiwgImNhbid0IHJlY3YgbXNnIGZyb20ga2Vy bmVsIGJ5IG5ldGxpbmsiKTsKPiArICAgICAgICBnb3RvIGVycjsKPiArICAgIH0KPiArCj4gKyAg ICBsZW4gKz0gcmV0Owo+ICsgICAgaWYgKG1oLm1zZ19mbGFncyAmIE1TR19UUlVOQykgewo+ICsg ICAgICAgIHNpemUgKz0gMTYzODQ7Cj4gKyAgICAgICAgdG1wID0gbGlieGxfX3JlYWxsb2MoTk9H QywgdG1wLCBzaXplKTsKCllvdSByZWFsbHkgc2hvdWxkIGNoZWNrICd0bXAnLgoKSWYgdGhpcyBs b29wIGNvbnRpbnVlcyBvbiBmb3Igc29tZSB0aW1lIHRoZSAnc2l6ZScgbWF5IGJlCmluIG1pbGlv bnMgYW5kIHRoaXMgcmVhbGxvYyB3aWxsIGZhaWwuCgo+ICsgICAgICAgIGlvdi5pb3ZfYmFzZSA9 IHRtcCArIGxlbjsKPiArICAgICAgICBpb3YuaW92X2xlbiA9IHNpemUgLSBsZW47Cj4gKyAgICAg ICAgZ290byBuZXh0OwoKPiArICAgIH0KPiArCj4gKyAgICAqYnVmZiA9IHRtcDsKPiArICAgIHJl dCA9IGxlbjsKPiArICAgIGdvdG8gb3V0Owo+ICsKPiArZXJyOgo+ICsgICAgZnJlZSh0bXApOwo+ ICsgICAgKmJ1ZmYgPSBOVUxMOwo+ICsKPiArb3V0Ogo+ICsgICAgaWYgKHRpbWVvdXRfdXMpIHsK PiArICAgICAgICB0di50dl9zZWMgPSAwOwo+ICsgICAgICAgIHR2LnR2X3VzZWMgPSAwOwo+ICsg ICAgICAgIHNldHNvY2tvcHQoY3BzLT5zb2NrX2ZkLCBTT0xfU09DS0VULCBTT19SQ1ZUSU1FTywg JnR2LCBzaXplb2YodHYpKTsKPiArICAgIH0KPiArICAgIHJldHVybiByZXQ7Cj4gK30KPiArCj4g Ky8qID09PT09PT09PSBjb2xvLXByb3h5OiBzZXR1cCBhbmQgdGVhcmRvd24gPT09PT09PT09PSAq Lwo+ICsKPiAraW50IGNvbG9fcHJveHlfc2V0dXAobGlieGxfX2NvbG9fcHJveHlfc3RhdGUgKmNw cykKPiArewo+ICsgICAgaW50IHNrZmQgPSAwOwo+ICsgICAgc3RydWN0IHNvY2thZGRyX25sIHNh Owo+ICsgICAgc3RydWN0IG5sbXNnaGRyICpoOwo+ICsgICAgaW50IGkgPSAxOwo+ICsgICAgaW50 IHJldCA9IEVSUk9SX0ZBSUw7Cj4gKyAgICB1aW50OF90ICpidWZmID0gTlVMTDsKPiArICAgIGlu dDY0X3Qgc2l6ZTsKPiArCj4gKyAgICBTVEFURV9BT19HQyhjcHMtPmFvKTsKPiArCj4gKyAgICBz a2ZkID0gc29ja2V0KFBGX05FVExJTkssIFNPQ0tfUkFXLCBORVRMSU5LX0NPTE8pOwo+ICsgICAg aWYgKHNrZmQgPCAwKSB7Cj4gKyAgICAgICAgTE9HKEVSUk9SLCAiY2FuIG5vdCBjcmVhdGUgYSBu ZXRsaW5rIHNvY2tldDogJXMiLCBzdHJlcnJvcihlcnJubykpOwo+ICsgICAgICAgIGdvdG8gb3V0 Owo+ICsgICAgfQo+ICsgICAgY3BzLT5zb2NrX2ZkID0gc2tmZDsKPiArICAgIG1lbXNldCgmc2Es IDAsIHNpemVvZihzYSkpOwo+ICsgICAgc2EubmxfZmFtaWx5ID0gQUZfTkVUTElOSzsKPiArICAg IHNhLm5sX2dyb3VwcyA9IDA7Cj4gK3JldHJ5Ogo+ICsgICAgc2EubmxfcGlkID0gaSsrOwo+ICsK PiArICAgIGlmIChpID4gMTApIHsKPiArICAgICAgICBMT0coRVJST1IsICJuZXRsaW5rIGJpbmQg ZXJyb3IiKTsKPiArICAgICAgICBnb3RvIG91dDsKPiArICAgIH0KPiArCj4gKyAgICByZXQgPSBi aW5kKHNrZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikmc2EsIHNpemVvZihzYSkpOwo+ICsgICAgaWYg KHJldCA8IDAgJiYgZXJybm8gPT0gRUFERFJJTlVTRSkgewo+ICsgICAgICAgIExPRyhFUlJPUiwg ImNvbG8gaW5kZXggJWQgaGFzIGFscmVhZHkgaW4gdXNlZCIsIHNhLm5sX3BpZCk7Cj4gKyAgICAg ICAgZ290byByZXRyeTsKPiArICAgIH0gZWxzZSBpZiAocmV0IDwgMCkgewo+ICsgICAgICAgIExP RyhFUlJPUiwgIm5ldGxpbmsgYmluZCBlcnJvciIpOwo+ICsgICAgICAgIGdvdG8gb3V0Owo+ICsg ICAgfQo+ICsKPiArICAgIGNwcy0+aW5kZXggPSBzYS5ubF9waWQ7Cj4gKyAgICByZXQgPSBjb2xv X3Byb3h5X3NlbmQoY3BzLCBOVUxMLCAwLCBDT0xPX1BST1hZX0lOSVQpOwo+ICsgICAgaWYgKHJl dCA8IDApIHsKPiArICAgICAgICBnb3RvIG91dDsKPiArICAgIH0KCkRpdHRvLiBZb3UgY2FuIHJl bW92ZSBpdC4KCj4gKyAgICAvKiByZWNlaXZlIGFjayAqLwo+ICsgICAgc2l6ZSA9IGNvbG9fcHJv eHlfcmVjdihjcHMsICZidWZmLCA1MDAwMDApOwo+ICsgICAgaWYgKHNpemUgPCAwKSB7Cj4gKyAg ICAgICAgTE9HKEVSUk9SLCAiQ2FuJ3QgcmVjdiBtc2cgZnJvbSBrZXJuZWwgYnkgbmV0bGluazog JXMiLAo+ICsgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOwo+ICsgICAgICAgIGdvdG8gb3V0 Owo+ICsgICAgfQo+ICsKPiArICAgIGlmIChzaXplKSB7Cj4gKyAgICAgICAgaCA9IChzdHJ1Y3Qg bmxtc2doZHIgKilidWZmOwo+ICsgICAgICAgIGlmIChoLT5ubG1zZ190eXBlID09IE5MTVNHX0VS Uk9SKSB7Cj4gKyAgICAgICAgICAgIC8qIGFjaydzIHR5cGUgaXMgTkxNU0dfRVJST1IgKi8KPiAr ICAgICAgICAgICAgc3RydWN0IG5sbXNnZXJyICplcnIgPSAoc3RydWN0IG5sbXNnZXJyICopTkxN U0dfREFUQShoKTsKPiArCj4gKyAgICAgICAgICAgIGlmIChzaXplIC0gc2l6ZW9mKCpoKSA8IHNp emVvZigqZXJyKSkgewo+ICsgICAgICAgICAgICAgICAgTE9HKEVSUk9SLCAiTkxNU0dfTEVOR1RI IGlzIHRvbyBzaG9ydCIpOwo+ICsgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gKyAgICAgICAg ICAgIH0KPiArCj4gKyAgICAgICAgICAgIGlmIChlcnItPmVycm9yKSB7Cj4gKyAgICAgICAgICAg ICAgICBMT0coRVJST1IsICJOTE1TR19FUlJPUiBjb250YWlucyBlcnJvciAlZCIsIGVyci0+ZXJy b3IpOwo+ICsgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gKyAgICAgICAgICAgIH0KPiArICAg ICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0ID0gMDsKPiArCj4gK291dDoKPiArICAgIGZy ZWUoYnVmZik7Cj4gKyAgICBpZiAocmV0KSB7Cj4gKyAgICAgICAgY2xvc2UoY3BzLT5zb2NrX2Zk KTsKPiArICAgICAgICBjcHMtPnNvY2tfZmQgPSAtMTsKPiArICAgIH0KPiArICAgIHJldHVybiBy ZXQ7Cj4gK30KPiArCj4gK3ZvaWQgY29sb19wcm94eV90ZWFyZG93bihsaWJ4bF9fY29sb19wcm94 eV9zdGF0ZSAqY3BzKQo+ICt7Cj4gKyAgICBpZiAoY3BzLT5zb2NrX2ZkID49IDApIHsKPiArICAg ICAgICBjbG9zZShjcHMtPnNvY2tfZmQpOwo+ICsgICAgICAgIGNwcy0+c29ja19mZCA9IC0xOwo+ ICsgICAgfQo+ICt9Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgg Yi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCj4gaW5kZXggM2FmNWZkZC4uM2I0NGIwOSAx MDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCj4gKysrIGIvdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaAo+IEBAIC0zMTEyLDYgKzMxMTIsMTUgQEAgbGlieGxfX3N0 cmVhbV9yZWFkX2ludXNlKGNvbnN0IGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSAqc3RyZWFtKQo+ ICB9Cj4gIAo+ICAvKi0tLS0tIGNvbG8gcmVsYXRlZCBzdGF0ZSBzdHJ1Y3R1cmUgLS0tLS0qLwo+ ICt0eXBlZGVmIHN0cnVjdCBsaWJ4bF9fY29sb19wcm94eV9zdGF0ZSBsaWJ4bF9fY29sb19wcm94 eV9zdGF0ZTsKPiArc3RydWN0IGxpYnhsX19jb2xvX3Byb3h5X3N0YXRlIHsKPiArICAgIC8qIHNl dCBieSBjYWxsZXIgb2YgY29sb19wcm94eV9zZXR1cCAqLwo+ICsgICAgbGlieGxfX2FvICphbzsK PiArCj4gKyAgICBpbnQgc29ja19mZDsKPiArICAgIGludCBpbmRleDsKPiArfTsKPiArCj4gIHR5 cGVkZWYgc3RydWN0IGxpYnhsX19jb2xvX3NhdmVfc3RhdGUgbGlieGxfX2NvbG9fc2F2ZV9zdGF0 ZTsKPiAgc3RydWN0IGxpYnhsX19jb2xvX3NhdmVfc3RhdGUgewo+ICAgICAgaW50IHNlbmRfZmQ7 Cj4gQEAgLTMxMjYsNiArMzEzNSw5IEBAIHN0cnVjdCBsaWJ4bF9fY29sb19zYXZlX3N0YXRlIHsK PiAgICAgIC8qIHByaXZhdGUsIHVzZWQgYnkgcWRpc2sgYmxvY2sgcmVwbGljYXRpb24gKi8KPiAg ICAgIGJvb2wgcWRpc2tfdXNlZDsKPiAgICAgIGJvb2wgcWRpc2tfc2V0dXBlZDsKPiArCj4gKyAg ICAvKiBwcml2YXRlLCB1c2VkIGJ5IGNvbG8tcHJveHkgKi8KPiArICAgIGxpYnhsX19jb2xvX3By b3h5X3N0YXRlIGNwczsKPiAgfTsKPiAgCj4gIC8qLS0tLS0gRG9tYWluIHN1c3BlbmQgKHNhdmUp IHN0YXRlIHN0cnVjdHVyZSAtLS0tLSovCj4gQEAgLTM1MzUsNiArMzU0Nyw5IEBAIHN0cnVjdCBs aWJ4bF9fY29sb19yZXN0b3JlX3N0YXRlIHsKPiAgICAgIGJvb2wgcWRpc2tfc2V0dXBlZDsKPiAg ICAgIGNvbnN0IGNoYXIgKmhvc3Q7Cj4gICAgICBjb25zdCBjaGFyICpwb3J0Owo+ICsKPiArICAg IC8qIHByaXZhdGUsIHVzZWQgYnkgY29sby1wcm94eSAqLwo+ICsgICAgbGlieGxfX2NvbG9fcHJv eHlfc3RhdGUgY3BzOwo+ICB9Owo+ICAKPiAgc3RydWN0IGxpYnhsX19kb21haW5fY3JlYXRlX3N0 YXRlIHsKPiAtLSAKPiAyLjUuMAo+IAo+IAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK