From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f731.i.mail.ru (f731.i.mail.ru [128.140.172.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 0B4F1445320 for ; Tue, 4 Aug 2020 12:55:56 +0300 (MSK) From: =?UTF-8?B?SWx5YSBLb3NhcmV2?= MIME-Version: 1.0 Date: Tue, 04 Aug 2020 12:55:55 +0300 Reply-To: =?UTF-8?B?SWx5YSBLb3NhcmV2?= Message-ID: <1596534955.779570951@f731.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--a0F323564B5ae22E954AC1f3E96246cA1596534955" In-Reply-To: <1594649887-15890-2-git-send-email-alyapunov@tarantool.org> References: <1594649887-15890-1-git-send-email-alyapunov@tarantool.org> <1594649887-15890-2-git-send-email-alyapunov@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v2_1/3=5D_alter=3A_use_goo?= =?utf-8?q?d_c++_style?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QWxla3NhbmRyIEx5YXB1bm92?= Cc: tarantool-patches@dev.tarantool.org, v.shpilevoy@tarantool.org ----ALT--a0F323564B5ae22E954AC1f3E96246cA1596534955 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIQoKWWVzLCB0aGlzwqBwYXRjaCBzZWVtcyB0byBiZSBuaWNlLgrCoApTZWUgMSBjb21tZW50 IGJlbG93LiAKPtCf0L7QvdC10LTQtdC70YzQvdC40LosIDEzINC40Y7Qu9GPIDIwMjAsIDE3OjE4 ICswMzowMCDQvtGCIEFsZWtzYW5kciBMeWFwdW5vdiA8YWx5YXB1bm92QHRhcmFudG9vbC5vcmc+ Ogo+wqAKPldlIHNob3VsZCB1c2Ugbm9leGNlcHQgd2hlcmUgaXQncyBhcHByb3ByaWF0ZS4KPjEu SXQgaW5mb3JtcyBhIGRldmVsb3BlciBoZSBjb3VsZCBub3QgY2FyZSBhYm91dCBleGNlcHRpb24g c2FmZXR5Cj4yLkl0IGluc3RydWN0cyBhIGNvbXBpbGVyIHRvIGNoZWNrIHRocm93cyBpZiBwb3Nz aWJsZQo+Cj5XZSBzaG91bGQgb3ZlcnJpZGUgZm9yIGNvbXBpbGUtdGltZSBjaGVjayBvZiBtaXNw cmludHMgaW4gbmFtZXMKPm9mIG1ldGhvZHMgYW5kIHR5cGVzIG9mIGFyZ3VtZW50cy4KPgo+UGFy dCBvZiAjNTE1Mwo+LS0tCj7CoHNyYy9ib3gvYWx0ZXIuY2MgfCAxODAgKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+wqAxIGZpbGUgY2hhbmdl ZCwgOTAgaW5zZXJ0aW9ucygrKSwgOTAgZGVsZXRpb25zKC0pCj4KPmRpZmYgLS1naXQgYS9zcmMv Ym94L2FsdGVyLmNjIGIvc3JjL2JveC9hbHRlci5jYwo+aW5kZXggMjQ5Y2VlMi4uMTVhNTFkMCAx MDA2NDQKPi0tLSBhL3NyYy9ib3gvYWx0ZXIuY2MKPisrKyBiL3NyYy9ib3gvYWx0ZXIuY2MKPkBA IC03NjUsNyArNzY1LDcgQEAgc3RydWN0IGFsdGVyX3NwYWNlOwo+wqAKPsKgY2xhc3MgQWx0ZXJT cGFjZU9wIHsKPsKgcHVibGljOgo+LSBBbHRlclNwYWNlT3Aoc3RydWN0IGFsdGVyX3NwYWNlICph bHRlcik7Cj4rIGV4cGxpY2l0IEFsdGVyU3BhY2VPcChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy KTsKPsKgCj7CoCAvKiogTGluayBpbiBhbHRlcl9zcGFjZTo6b3BzLiAqLwo+wqAgc3RydWN0IHJs aXN0IGxpbms7Cj5AQCAtNzc0LDcgKzc3NCw3IEBAIHB1YmxpYzoKPsKgICogdGhlIHNwYWNlIGRl ZmluaXRpb24gYW5kL29yIGtleSBsaXN0IHRoYXQgd2lsbCBiZSB1c2VkCj7CoCAqIGZvciBjcmVh dGluZyB0aGUgbmV3IHNwYWNlLiBNdXN0IG5vdCB5aWVsZCBvciBmYWlsLgo+wqAgKi8KPi0gdmly dHVhbCB2b2lkIGFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykge30K PisgdmlydHVhbCB2b2lkIGFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAq Lykgbm9leGNlcHQge30KPsKgIC8qKgo+wqAgKiBDYWxsZWQgYWZ0ZXIgY3JlYXRpbmcgYSBuZXcg c3BhY2UuIFVzZWQgZm9yIHBlcmZvcm1pbmcKPsKgICogbG9uZy1sYXN0aW5nIG9wZXJhdGlvbnMs IHN1Y2ggYXMgaW5kZXggcmVidWlsZCBvciBmb3JtYXQKPkBAIC03ODgsMjEgKzc4OCwyMSBAQCBw dWJsaWM6Cj7CoCAqIHN0YXRlIHRvIHRoZSBuZXcgc3BhY2UgKGUuZy4gbW92ZSB1bmNoYW5nZWQg aW5kZXhlcykuCj7CoCAqIE11c3Qgbm90IHlpZWxkIG9yIGZhaWwuCj7CoCAqLwo+LSB2aXJ0dWFs IHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICogLyogYWx0ZXIgKi8pIHt9Cj4rIHZpcnR1 YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykgbm9leGNlcHQg e30KPsKgIC8qKgo+wqAgKiBDYWxsZWQgYWZ0ZXIgdGhlIGNoYW5nZSBoYXMgYmVlbiBzdWNjZXNz ZnVsbHkgd3JpdHRlbgo+wqAgKiB0byBXQUwuIE11c3Qgbm90IGZhaWwuCj7CoCAqLwo+wqAgdmly dHVhbCB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLywKPi0gaW50 NjRfdCAvKiBzaWduYXR1cmUgKi8pIHt9Cj4rIGludDY0X3QgLyogc2lnbmF0dXJlICovKSBub2V4 Y2VwdCB7fQo+wqAgLyoqCj7CoCAqIENhbGxlZCBpbiBjYXNlIGEgV0FMIGVycm9yIG9jY3VycmVk LiBJdCBpcyBzdXBwb3NlZCB0byB1bmRvCj7CoCAqIHRoZSBlZmZlY3Qgb2YgQWx0ZXJTcGFjZU9w OjpwcmVwYXJlIGFuZCBBbHRlclNwYWNlT3A6OmFsdGVyLgo+wqAgKiBNdXN0IG5vdCBmYWlsLgo+ wqAgKi8KPi0gdmlydHVhbCB2b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqIC8qIGFs dGVyICovKSB7fQo+KyB2aXJ0dWFsIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICog LyogYWx0ZXIgKi8pIG5vZXhjZXB0IHt9Cj7CoAo+LSB2aXJ0dWFsIH5BbHRlclNwYWNlT3AoKSB7 fQo+KyB2aXJ0dWFsIH5BbHRlclNwYWNlT3AoKSBub2V4Y2VwdCB7fQo+wqAKPsKgIHZvaWQgKm9w ZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkKPsKgIHsKPkBAIC05ODQsNyArOTg0LDcgQEAgc3RydWN0 IG1oX2kzMl90ICpBbHRlclNwYWNlTG9jazo6cmVnaXN0cnk7Cj7CoMKgKiBSZXBsYWNlIHRoZSBv bGQgc3BhY2Ugd2l0aCBhIG5ldyBvbmUgaW4gdGhlIHNwYWNlIGNhY2hlLgo+wqDCoCovCj7CoHN0 YXRpYyBpbnQKPi1hbHRlcl9zcGFjZV9jb21taXQoc3RydWN0IHRyaWdnZXIgKnRyaWdnZXIsIHZv aWQgKmV2ZW50KQo+K2FsdGVyX3NwYWNlX2NvbW1pdChzdHJ1Y3QgdHJpZ2dlciAqdHJpZ2dlciwg dm9pZCAqZXZlbnQpIG5vZXhjZXB0Cj7CoHsKPsKgIHN0cnVjdCB0eG4gKnR4biA9IChzdHJ1Y3Qg dHhuICopIGV2ZW50Owo+wqAgc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciA9IChzdHJ1Y3QgYWx0 ZXJfc3BhY2UgKikgdHJpZ2dlci0+ZGF0YTsKPkBAIC0xMDAyLDEyICsxMDAyLDggQEAgYWx0ZXJf c3BhY2VfY29tbWl0KHN0cnVjdCB0cmlnZ2VyICp0cmlnZ2VyLCB2b2lkICpldmVudCkKPsKgICog aW5kZXhlcyBpbnRvIHRoZWlyIG5ldyBwbGFjZXMuCj7CoCAqLwo+wqAgY2xhc3MgQWx0ZXJTcGFj ZU9wICpvcDsKPi0gdHJ5IHsKPi0gcmxpc3RfZm9yZWFjaF9lbnRyeShvcCwgJmFsdGVyLT5vcHMs IGxpbmspCj4tIG9wLT5jb21taXQoYWx0ZXIsIHNpZ25hdHVyZSk7Cj4tIH0gY2F0Y2ggKEV4Y2Vw dGlvbiAqZSkgewo+LSByZXR1cm4gLTE7Cj4tIH0KPisgcmxpc3RfZm9yZWFjaF9lbnRyeShvcCwg JmFsdGVyLT5vcHMsIGxpbmspCj4rIG9wLT5jb21taXQoYWx0ZXIsIHNpZ25hdHVyZSk7CkkgZ3Vl c3MgdGhpcyBjaGFuZ2Ugc2hvdWxkIGJlIGluCsKrYWx0ZXI6IGRvIG5vdCBjYXRjaCBleGNlcHRp b25zIHdoZW4gaXQncyBub3QgbmVjZXNzYXJ5wrsgY29tbWl0Lgo+wqAKPsKgIGFsdGVyLT5uZXdf c3BhY2UgPSBOVUxMOyAvKiBmb3IgYWx0ZXJfc3BhY2VfZGVsZXRlKCkuICovCj7CoCAvKgo+QEAg LTEwMjksNyArMTAyNSw3IEBAIGFsdGVyX3NwYWNlX2NvbW1pdChzdHJ1Y3QgdHJpZ2dlciAqdHJp Z2dlciwgdm9pZCAqZXZlbnQpCj7CoMKgKiBhbHRlcl9zcGFjZV9jb21taXQoKSBmYWlsdXJlICh1 bmxpa2VseSkKPsKgwqAqLwo+wqBzdGF0aWMgaW50Cj4tYWx0ZXJfc3BhY2Vfcm9sbGJhY2soc3Ry dWN0IHRyaWdnZXIgKnRyaWdnZXIsIHZvaWQgKiAvKiBldmVudCAqLykKPithbHRlcl9zcGFjZV9y b2xsYmFjayhzdHJ1Y3QgdHJpZ2dlciAqdHJpZ2dlciwgdm9pZCAqIC8qIGV2ZW50ICovKSBub2V4 Y2VwdAo+wqB7Cj7CoCBzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyID0gKHN0cnVjdCBhbHRlcl9z cGFjZSAqKSB0cmlnZ2VyLT5kYXRhOwo+wqAgLyogUm9sbGJhY2sgYWx0ZXIgb3BzICovCj5AQCAt MTE4OCw5ICsxMTg0LDkgQEAgYWx0ZXJfc3BhY2VfZG8oc3RydWN0IHR4bl9zdG10ICpzdG10LCBz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+wqBjbGFzcyBDaGVja1NwYWNlRm9ybWF0OiBwdWJs aWMgQWx0ZXJTcGFjZU9wCj7CoHsKPsKgcHVibGljOgo+LSBDaGVja1NwYWNlRm9ybWF0KHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4rIGV4cGxpY2l0IENoZWNrU3BhY2VGb3JtYXQoc3RydWN0 IGFsdGVyX3NwYWNlICphbHRlcikKPsKgIDpBbHRlclNwYWNlT3AoYWx0ZXIpIHt9Cj4tIHZpcnR1 YWwgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOwo+KyB2b2lkIHByZXBh cmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgb3ZlcnJpZGU7Cj7CoH07Cj7CoAo+wqB2b2lk Cj5AQCAtMTIyMiwxNSArMTIxOCwxNSBAQCBwdWJsaWM6Cj7CoCAqIG5hbWVzIGludG8gYW4gb2xk IGRpY3Rpb25hcnkgYW5kIGRlbGV0ZXMgbmV3IG9uZS4KPsKgICovCj7CoCBzdHJ1Y3QgdHVwbGVf ZGljdGlvbmFyeSAqbmV3X2RpY3Q7Cj4tIHZpcnR1YWwgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFs dGVyX3NwYWNlICphbHRlcik7Cj4tIHZpcnR1YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyKTsKPi0gdmlydHVhbCB2b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAq YWx0ZXIpOwo+LSB2aXJ0dWFsIH5Nb2RpZnlTcGFjZSgpOwo+KyB2b2lkIGFsdGVyX2RlZihzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTsKPisgdm9pZCBhbHRlcihz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTsKPisgdm9pZCByb2xs YmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTsKPisgfk1v ZGlmeVNwYWNlKCkgbm9leGNlcHQgb3ZlcnJpZGU7Cj7CoH07Cj7CoAo+wqAvKiogQW1lbmQgdGhl IGRlZmluaXRpb24gb2YgdGhlIG5ldyBzcGFjZS4gKi8KPsKgdm9pZAo+LU1vZGlmeVNwYWNlOjph bHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPitNb2RpZnlTcGFjZTo6YWx0ZXJf ZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0Cj7CoHsKPsKgIC8qCj7CoCAq IFVzZSB0aGUgb2xkIGRpY3Rpb25hcnkgZm9yIHRoZSBuZXcgc3BhY2UsIGJlY2F1c2UKPkBAIC0x MjQ5LDcgKzEyNDUsNyBAQCBNb2RpZnlTcGFjZTo6YWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIpCj7CoH0KPsKgCj7CoHZvaWQKPi1Nb2RpZnlTcGFjZTo6YWx0ZXIoc3RydWN0IGFs dGVyX3NwYWNlICphbHRlcikKPitNb2RpZnlTcGFjZTo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNl ICphbHRlcikgbm9leGNlcHQKPsKgewo+wqAgLyoKPsKgICogTW92ZSBuZXcgbmFtZXMgaW50byBh biBvbGQgZGljdGlvbmFyeSwgd2hpY2ggYWxyZWFkeSBpcwo+QEAgLTEyNjAsMTIgKzEyNTYsMTIg QEAgTW9kaWZ5U3BhY2U6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj7CoH0KPsKg Cj7CoHZvaWQKPi1Nb2RpZnlTcGFjZTo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRl cikKPitNb2RpZnlTcGFjZTo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9l eGNlcHQKPsKgewo+wqAgdHVwbGVfZGljdGlvbmFyeV9zd2FwKGFsdGVyLT5uZXdfc3BhY2UtPmRl Zi0+ZGljdCwgbmV3X2RpY3QpOwo+wqB9Cj7CoAo+LU1vZGlmeVNwYWNlOjp+TW9kaWZ5U3BhY2Uo KQo+K01vZGlmeVNwYWNlOjp+TW9kaWZ5U3BhY2UoKSBub2V4Y2VwdAo+wqB7Cj7CoCBpZiAobmV3 X2RpY3QgIT0gTlVMTCkKPsKgIHR1cGxlX2RpY3Rpb25hcnlfdW5yZWYobmV3X2RpY3QpOwo+QEAg LTEyODEsOSArMTI3Nyw5IEBAIHB1YmxpYzoKPsKgIERyb3BJbmRleChzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyLCBzdHJ1Y3QgaW5kZXggKmluZGV4KQo+wqAgOkFsdGVyU3BhY2VPcChhbHRlciks IG9sZF9pbmRleChpbmRleCkge30KPsKgIHN0cnVjdCBpbmRleCAqb2xkX2luZGV4Owo+LSB2aXJ0 dWFsIHZvaWQgYWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOwo+LSB2aXJ0dWFs IHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPi0gdmlydHVhbCB2b2lk IGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IGxzbik7Cj4rIHZvaWQg YWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOwo+ KyB2b2lkIHByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgb3ZlcnJpZGU7Cj4rIHZv aWQgY29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3QgbHNuKSBub2V4Y2Vw dCBvdmVycmlkZTsKPsKgfTsKPsKgCj7CoC8qCj5AQCAtMTI5MSw3ICsxMjg3LDcgQEAgcHVibGlj Ogo+wqDCoCogdGhlIG5ldyBpbmRleCBmcm9tIGl0Lgo+wqDCoCovCj7CoHZvaWQKPi1Ecm9wSW5k ZXg6OmFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykKPitEcm9wSW5k ZXg6OmFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykgbm9leGNlcHQK PsKgewo+wqAgcmxpc3RfZGVsX2VudHJ5KG9sZF9pbmRleC0+ZGVmLCBsaW5rKTsKPsKgfQo+QEAg LTEzMDUsNyArMTMwMSw3IEBAIERyb3BJbmRleDo6cHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyKQo+wqB9Cj7CoAo+wqB2b2lkCj4tRHJvcEluZGV4Ojpjb21taXQoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpCj4rRHJvcEluZGV4Ojpjb21taXQoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0Cj7CoHsK PsKgICh2b2lkKWFsdGVyOwo+wqAgaW5kZXhfY29tbWl0X2Ryb3Aob2xkX2luZGV4LCBzaWduYXR1 cmUpOwo+QEAgLTEzMjMsMTggKzEzMTksMTggQEAgcHVibGljOgo+wqAgOkFsdGVyU3BhY2VPcChh bHRlciksIGlpZChpaWRfYXJnKSB7fQo+wqAgLyoqIGlkIG9mIHRoZSBpbmRleCBvbiB0aGUgbW92 ZS4gKi8KPsKgIHVpbnQzMl90IGlpZDsKPi0gdmlydHVhbCB2b2lkIGFsdGVyKHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIpOwo+LSB2aXJ0dWFsIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlcik7Cj4rIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9l eGNlcHQgb3ZlcnJpZGU7Cj4rIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRl cikgbm9leGNlcHQgb3ZlcnJpZGU7Cj7CoH07Cj7CoAo+wqB2b2lkCj4tTW92ZUluZGV4OjphbHRl cihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+K01vdmVJbmRleDo6YWx0ZXIoc3RydWN0IGFs dGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQKPsKgewo+wqAgc3BhY2Vfc3dhcF9pbmRleChhbHRl ci0+b2xkX3NwYWNlLCBhbHRlci0+bmV3X3NwYWNlLCBpaWQsIGlpZCk7Cj7CoH0KPsKgCj7CoHZv aWQKPi1Nb3ZlSW5kZXg6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4rTW92 ZUluZGV4Ojpyb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdAo+wqB7 Cj7CoCBzcGFjZV9zd2FwX2luZGV4KGFsdGVyLT5vbGRfc3BhY2UsIGFsdGVyLT5uZXdfc3BhY2Us IGlpZCwgaWlkKTsKPsKgfQo+QEAgLTEzNjUsMjMgKzEzNjEsMjMgQEAgcHVibGljOgo+wqAgc3Ry dWN0IGluZGV4ICpvbGRfaW5kZXg7Cj7CoCBzdHJ1Y3QgaW5kZXggKm5ld19pbmRleDsKPsKgIHN0 cnVjdCBpbmRleF9kZWYgKm5ld19pbmRleF9kZWY7Cj4tIHZpcnR1YWwgdm9pZCBhbHRlcl9kZWYo c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4tIHZpcnR1YWwgdm9pZCBhbHRlcihzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyKTsKPi0gdmlydHVhbCB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJf c3BhY2UgKmFsdGVyLCBpbnQ2NF90IGxzbik7Cj4tIHZpcnR1YWwgdm9pZCByb2xsYmFjayhzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPi0gdmlydHVhbCB+TW9kaWZ5SW5kZXgoKTsKPisgdm9p ZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7 Cj4rIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJp ZGU7Cj4rIHZvaWQgY29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3QgbHNu KSBub2V4Y2VwdCBvdmVycmlkZTsKPisgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTsKPisgfk1vZGlmeUluZGV4KCkgbm9leGNlcHQgb3Zl cnJpZGU7Cj7CoH07Cj7CoAo+wqAvKiogVXBkYXRlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBuZXcg c3BhY2UgKi8KPsKgdm9pZAo+LU1vZGlmeUluZGV4OjphbHRlcl9kZWYoc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlcikKPitNb2RpZnlJbmRleDo6YWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAq YWx0ZXIpIG5vZXhjZXB0Cj7CoHsKPsKgIHJsaXN0X2RlbF9lbnRyeShvbGRfaW5kZXgtPmRlZiwg bGluayk7Cj7CoCBpbmRleF9kZWZfbGlzdF9hZGQoJmFsdGVyLT5rZXlfbGlzdCwgbmV3X2luZGV4 X2RlZik7Cj7CoH0KPsKgCj7CoHZvaWQKPi1Nb2RpZnlJbmRleDo6YWx0ZXIoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlcikKPitNb2RpZnlJbmRleDo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICph bHRlcikgbm9leGNlcHQKPsKgewo+wqAgbmV3X2luZGV4ID0gc3BhY2VfaW5kZXgoYWx0ZXItPm5l d19zcGFjZSwgbmV3X2luZGV4X2RlZi0+aWlkKTsKPsKgIGFzc2VydChvbGRfaW5kZXgtPmRlZi0+ aWlkID09IG5ld19pbmRleC0+ZGVmLT5paWQpOwo+QEAgLTEzOTcsMTQgKzEzOTMsMTQgQEAgTW9k aWZ5SW5kZXg6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj7CoH0KPsKgCj7CoHZv aWQKPi1Nb2RpZnlJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0 X3Qgc2lnbmF0dXJlKQo+K01vZGlmeUluZGV4Ojpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICph bHRlciwgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0Cj7CoHsKPsKgICh2b2lkKWFsdGVyOwo+ wqAgaW5kZXhfY29tbWl0X21vZGlmeShuZXdfaW5kZXgsIHNpZ25hdHVyZSk7Cj7CoH0KPsKgCj7C oHZvaWQKPi1Nb2RpZnlJbmRleDo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikK PitNb2RpZnlJbmRleDo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNl cHQKPsKgewo+wqAgLyoKPsKgICogUmVzdG9yZSBpbmRleGVzLgo+QEAgLTE0MTYsNyArMTQxMiw3 IEBAIE1vZGlmeUluZGV4Ojpyb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+wqAg aW5kZXhfdXBkYXRlX2RlZihvbGRfaW5kZXgpOwo+wqB9Cj7CoAo+LU1vZGlmeUluZGV4Ojp+TW9k aWZ5SW5kZXgoKQo+K01vZGlmeUluZGV4Ojp+TW9kaWZ5SW5kZXgoKSBub2V4Y2VwdAo+wqB7Cj7C oCBpbmRleF9kZWZfZGVsZXRlKG5ld19pbmRleF9kZWYpOwo+wqB9Cj5AQCAtMTQzMiwxNSArMTQy OCwxNSBAQCBwdWJsaWM6Cj7CoCBDcmVhdGVJbmRleChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy LCBzdHJ1Y3QgaW5kZXhfZGVmICpkZWYpCj7CoCA6QWx0ZXJTcGFjZU9wKGFsdGVyKSwgbmV3X2lu ZGV4KE5VTEwpLCBuZXdfaW5kZXhfZGVmKGRlZikKPsKgIHt9Cj4tIHZpcnR1YWwgdm9pZCBhbHRl cl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4tIHZpcnR1YWwgdm9pZCBwcmVwYXJl KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOwo+LSB2aXJ0dWFsIHZvaWQgY29tbWl0KHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3QgbHNuKTsKPi0gdmlydHVhbCB+Q3JlYXRlSW5k ZXgoKTsKPisgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNl cHQgb3ZlcnJpZGU7Cj4rIHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBv dmVycmlkZTsKPisgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRf dCBsc24pIG5vZXhjZXB0IG92ZXJyaWRlOwo+KyB+Q3JlYXRlSW5kZXgoKSBub2V4Y2VwdCBvdmVy cmlkZTsKPsKgfTsKPsKgCj7CoC8qKiBBZGQgZGVmaW5pdGlvbiBvZiB0aGUgbmV3IGtleSB0byB0 aGUgbmV3IHNwYWNlIGRlZi4gKi8KPsKgdm9pZAo+LUNyZWF0ZUluZGV4OjphbHRlcl9kZWYoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcikKPitDcmVhdGVJbmRleDo6YWx0ZXJfZGVmKHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0Cj7CoHsKPsKgIGluZGV4X2RlZl9saXN0X2FkZCgm YWx0ZXItPmtleV9saXN0LCBuZXdfaW5kZXhfZGVmKTsKPsKgfQo+QEAgLTE0ODAsNyArMTQ3Niw3 IEBAIENyZWF0ZUluZGV4OjpwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj7CoH0K PsKgCj7CoHZvaWQKPi1DcmVhdGVJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+K0NyZWF0ZUluZGV4Ojpjb21taXQoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0Cj7CoHsKPsKgICh2b2lk KSBhbHRlcjsKPsKgIGFzc2VydChuZXdfaW5kZXggIT0gTlVMTCk7Cj5AQCAtMTQ4OCw3ICsxNDg0 LDcgQEAgQ3JlYXRlSW5kZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2 NF90IHNpZ25hdHVyZSkKPsKgIG5ld19pbmRleCA9IE5VTEw7Cj7CoH0KPsKgCj4tQ3JlYXRlSW5k ZXg6On5DcmVhdGVJbmRleCgpCj4rQ3JlYXRlSW5kZXg6On5DcmVhdGVJbmRleCgpIG5vZXhjZXB0 Cj7CoHsKPsKgIGlmIChuZXdfaW5kZXggIT0gTlVMTCkKPsKgIGluZGV4X2Fib3J0X2NyZWF0ZShu ZXdfaW5kZXgpOwo+QEAgLTE1MjEsMTUgKzE1MTcsMTUgQEAgcHVibGljOgo+wqAgc3RydWN0IGlu ZGV4X2RlZiAqbmV3X2luZGV4X2RlZjsKPsKgIC8qKiBPbGQgaW5kZXggaW5kZXhfZGVmLiAqLwo+ wqAgc3RydWN0IGluZGV4X2RlZiAqb2xkX2luZGV4X2RlZjsKPi0gdmlydHVhbCB2b2lkIGFsdGVy X2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPi0gdmlydHVhbCB2b2lkIHByZXBhcmUo c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4tIHZpcnR1YWwgdm9pZCBjb21taXQoc3RydWN0 IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpOwo+LSB2aXJ0dWFsIH5SZWJ1 aWxkSW5kZXgoKTsKPisgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikg bm9leGNlcHQgb3ZlcnJpZGU7Cj4rIHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFs dGVyKSBvdmVycmlkZTsKPisgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwg aW50NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0IG92ZXJyaWRlOwo+KyB+UmVidWlsZEluZGV4KCkg bm9leGNlcHQgb3ZlcnJpZGU7Cj7CoH07Cj7CoAo+wqAvKiogQWRkIGRlZmluaXRpb24gb2YgdGhl IG5ldyBrZXkgdG8gdGhlIG5ldyBzcGFjZSBkZWYuICovCj7CoHZvaWQKPi1SZWJ1aWxkSW5kZXg6 OmFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+K1JlYnVpbGRJbmRleDo6YWx0 ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0Cj7CoHsKPsKgIHJsaXN0 X2RlbF9lbnRyeShvbGRfaW5kZXhfZGVmLCBsaW5rKTsKPsKgIGluZGV4X2RlZl9saXN0X2FkZCgm YWx0ZXItPmtleV9saXN0LCBuZXdfaW5kZXhfZGVmKTsKPkBAIC0xNTQ1LDcgKzE1NDEsNyBAQCBS ZWJ1aWxkSW5kZXg6OnByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPsKgfQo+wqAK PsKgdm9pZAo+LVJlYnVpbGRJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIs IGludDY0X3Qgc2lnbmF0dXJlKQo+K1JlYnVpbGRJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKSBub2V4Y2VwdAo+wqB7Cj7CoCBzdHJ1Y3Qg aW5kZXggKm9sZF9pbmRleCA9IHNwYWNlX2luZGV4KGFsdGVyLT5vbGRfc3BhY2UsCj7CoCBvbGRf aW5kZXhfZGVmLT5paWQpOwo+QEAgLTE1NTYsNyArMTU1Miw3IEBAIFJlYnVpbGRJbmRleDo6Y29t bWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+wqAgbmV3 X2luZGV4ID0gTlVMTDsKPsKgfQo+wqAKPi1SZWJ1aWxkSW5kZXg6On5SZWJ1aWxkSW5kZXgoKQo+ K1JlYnVpbGRJbmRleDo6flJlYnVpbGRJbmRleCgpIG5vZXhjZXB0Cj7CoHsKPsKgIGlmIChuZXdf aW5kZXggIT0gTlVMTCkKPsKgIGluZGV4X2Fib3J0X2NyZWF0ZShuZXdfaW5kZXgpOwo+QEAgLTE2 MDAsOSArMTU5NiwxMCBAQCBwdWJsaWM6Cj7CoCBUcnVuY2F0ZUluZGV4KHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIsIHVpbnQzMl90IGlpZCkKPsKgIDogQWx0ZXJTcGFjZU9wKGFsdGVyKSwgaWlk KGlpZCksCj7CoCBvbGRfaW5kZXgoTlVMTCksIG5ld19pbmRleChOVUxMKSB7fQo+LSB2aXJ0dWFs IHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPi0gdmlydHVhbCB2b2lk IGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSk7Cj4t IHZpcnR1YWwgflRydW5jYXRlSW5kZXgoKTsKPisgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIpIG92ZXJyaWRlOwo+KyB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyLAo+KyBpbnQ2NF90IHNpZ25hdHVyZSkgbm9leGNlcHQgb3ZlcnJpZGU7Cj4rIH5UcnVu Y2F0ZUluZGV4KCkgbm9leGNlcHQgb3ZlcnJpZGU7Cj7CoH07Cj7CoAo+wqB2b2lkCj5AQCAtMTYz Miw3ICsxNjI5LDcgQEAgVHJ1bmNhdGVJbmRleDo6cHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyKQo+wqB9Cj7CoAo+wqB2b2lkCj4tVHJ1bmNhdGVJbmRleDo6Y29tbWl0KHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+K1RydW5jYXRlSW5kZXg6OmNv bW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSkgbm9leGNl cHQKPsKgewo+wqAgKHZvaWQpYWx0ZXI7Cj7CoCBpbmRleF9jb21taXRfZHJvcChvbGRfaW5kZXgs IHNpZ25hdHVyZSk7Cj5AQCAtMTY0MCw3ICsxNjM3LDcgQEAgVHJ1bmNhdGVJbmRleDo6Y29tbWl0 KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+wqAgbmV3X2lu ZGV4ID0gTlVMTDsKPsKgfQo+wqAKPi1UcnVuY2F0ZUluZGV4Ojp+VHJ1bmNhdGVJbmRleCgpCj4r VHJ1bmNhdGVJbmRleDo6flRydW5jYXRlSW5kZXgoKSBub2V4Y2VwdAo+wqB7Cj7CoCBpZiAobmV3 X2luZGV4ID09IE5VTEwpCj7CoCByZXR1cm47Cj5AQCAtMTY1NywxMSArMTY1NCwxMSBAQCBjbGFz cyBVcGRhdGVTY2hlbWFWZXJzaW9uOiBwdWJsaWMgQWx0ZXJTcGFjZU9wCj7CoHB1YmxpYzoKPsKg IFVwZGF0ZVNjaGVtYVZlcnNpb24oc3RydWN0IGFsdGVyX3NwYWNlICogYWx0ZXIpCj7CoCA6QWx0 ZXJTcGFjZU9wKGFsdGVyKSB7fQo+LSB2aXJ0dWFsIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlcik7Cj4rIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9l eGNlcHQgb3ZlcnJpZGU7Cj7CoH07Cj7CoAo+wqB2b2lkCj4tVXBkYXRlU2NoZW1hVmVyc2lvbjo6 YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPitVcGRhdGVTY2hlbWFWZXJzaW9uOjph bHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdAo+wqB7Cj7CoMKgwqDCoMKg KHZvaWQpYWx0ZXI7Cj7CoMKgwqDCoMKgKytzY2hlbWFfdmVyc2lvbjsKPkBAIC0xNjg0LDEwICsx NjgxLDEwIEBAIHB1YmxpYzoKPsKgIFJlYnVpbGRDa0NvbnN0cmFpbnRzKHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIpIDogQWx0ZXJTcGFjZU9wKGFsdGVyKSwKPsKgIGNrX2NvbnN0cmFpbnQoUkxJ U1RfSEVBRF9JTklUSUFMSVpFUihja19jb25zdHJhaW50KSkge30KPsKgIHN0cnVjdCBybGlzdCBj a19jb25zdHJhaW50Owo+LSB2aXJ0dWFsIHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyKTsKPi0gdmlydHVhbCB2b2lkIGFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp Owo+LSB2aXJ0dWFsIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4t IHZpcnR1YWwgflJlYnVpbGRDa0NvbnN0cmFpbnRzKCk7Cj4rIHZvaWQgcHJlcGFyZShzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyKSBvdmVycmlkZTsKPisgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJf c3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTsKPisgdm9pZCByb2xsYmFjayhzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTsKPisgflJlYnVpbGRDa0NvbnN0 cmFpbnRzKCkgbm9leGNlcHQgb3ZlcnJpZGU7Cj7CoH07Cj7CoAo+wqB2b2lkCj5AQCAtMTcxNiwx OCArMTcxMywxOCBAQCBSZWJ1aWxkQ2tDb25zdHJhaW50czo6c3BhY2Vfc3dhcF9ja19jb25zdHJh aW50KHN0cnVjdCBzcGFjZSAqb2xkX3NwYWNlLAo+wqB9Cj7CoAo+wqB2b2lkCj4tUmVidWlsZENr Q29uc3RyYWludHM6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4rUmVidWlsZENr Q29uc3RyYWludHM6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0Cj7C oHsKPsKgIHNwYWNlX3N3YXBfY2tfY29uc3RyYWludChhbHRlci0+b2xkX3NwYWNlLCBhbHRlci0+ bmV3X3NwYWNlKTsKPsKgfQo+wqAKPsKgdm9pZAo+LVJlYnVpbGRDa0NvbnN0cmFpbnRzOjpyb2xs YmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+K1JlYnVpbGRDa0NvbnN0cmFpbnRzOjpy b2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdAo+wqB7Cj7CoCBzcGFj ZV9zd2FwX2NrX2NvbnN0cmFpbnQoYWx0ZXItPm5ld19zcGFjZSwgYWx0ZXItPm9sZF9zcGFjZSk7 Cj7CoH0KPsKgCj4tUmVidWlsZENrQ29uc3RyYWludHM6On5SZWJ1aWxkQ2tDb25zdHJhaW50cygp Cj4rUmVidWlsZENrQ29uc3RyYWludHM6On5SZWJ1aWxkQ2tDb25zdHJhaW50cygpIG5vZXhjZXB0 Cj7CoHsKPsKgIHN0cnVjdCBja19jb25zdHJhaW50ICpvbGRfY2tfY29uc3RyYWludCwgKnRtcDsK PsKgIHJsaXN0X2ZvcmVhY2hfZW50cnlfc2FmZShvbGRfY2tfY29uc3RyYWludCwgJmNrX2NvbnN0 cmFpbnQsIGxpbmssIHRtcCkgewo+QEAgLTE3NTQsOCArMTc1MSw4IEBAIGNsYXNzIE1vdmVDa0Nv bnN0cmFpbnRzOiBwdWJsaWMgQWx0ZXJTcGFjZU9wCj7CoCBzdHJ1Y3Qgc3BhY2UgKm5ld19zcGFj ZSk7Cj7CoHB1YmxpYzoKPsKgIE1vdmVDa0NvbnN0cmFpbnRzKHN0cnVjdCBhbHRlcl9zcGFjZSAq YWx0ZXIpIDogQWx0ZXJTcGFjZU9wKGFsdGVyKSB7fQo+LSB2aXJ0dWFsIHZvaWQgYWx0ZXIoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4tIHZpcnR1YWwgdm9pZCByb2xsYmFjayhzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyKTsKPisgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFs dGVyKSBub2V4Y2VwdCBvdmVycmlkZTsKPisgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTsKPsKgfTsKPsKgCj7CoHZvaWQKPkBAIC0xNzY5 LDEzICsxNzY2LDEzIEBAIE1vdmVDa0NvbnN0cmFpbnRzOjpzcGFjZV9zd2FwX2NrX2NvbnN0cmFp bnQoc3RydWN0IHNwYWNlICpvbGRfc3BhY2UsCj7CoH0KPsKgCj7CoHZvaWQKPi1Nb3ZlQ2tDb25z dHJhaW50czo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPitNb3ZlQ2tDb25zdHJh aW50czo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQKPsKgewo+wqAg c3BhY2Vfc3dhcF9ja19jb25zdHJhaW50KGFsdGVyLT5vbGRfc3BhY2UsIGFsdGVyLT5uZXdfc3Bh Y2UpOwo+wqB9Cj7CoAo+wqB2b2lkCj4tTW92ZUNrQ29uc3RyYWludHM6OnJvbGxiYWNrKHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4rTW92ZUNrQ29uc3RyYWludHM6OnJvbGxiYWNrKHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0Cj7CoHsKPsKgIHNwYWNlX3N3YXBfY2tfY29u c3RyYWludChhbHRlci0+bmV3X3NwYWNlLCBhbHRlci0+b2xkX3NwYWNlKTsKPsKgfQo+QEAgLTE4 MzQsMTEgKzE4MzEsMTIgQEAgcHVibGljOgo+wqAgaWYgKG5ld19pZCA9PSBOVUxMKQo+wqAgZGlh Z19yYWlzZSgpOwo+wqAgfQo+LSB2aXJ0dWFsIHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyKTsKPi0gdmlydHVhbCB2b2lkIGFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIpOwo+LSB2aXJ0dWFsIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7 Cj4tIHZpcnR1YWwgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRf dCBzaWduYXR1cmUpOwo+LSB2aXJ0dWFsIH5DcmVhdGVDb25zdHJhaW50SUQoKTsKPisgdm9pZCBw cmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJyaWRlOwo+KyB2b2lkIGFsdGVy KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOwo+KyB2b2lkIHJv bGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOwo+KyB2 b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLAo+KyBpbnQ2NF90IHNpZ25hdHVy ZSkgbm9leGNlcHQgb3ZlcnJpZGU7Cj4rIH5DcmVhdGVDb25zdHJhaW50SUQoKSBub2V4Y2VwdCBv dmVycmlkZTsKPsKgfTsKPsKgCj7CoHZvaWQKPkBAIC0xODUwLDcgKzE4NDgsNyBAQCBDcmVhdGVD b25zdHJhaW50SUQ6OnByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPsKgfQo+wqAK PsKgdm9pZAo+LUNyZWF0ZUNvbnN0cmFpbnRJRDo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICph bHRlcikKPitDcmVhdGVDb25zdHJhaW50SUQ6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIpIG5vZXhjZXB0Cj7CoHsKPsKgIC8qIEFsdGVyKCkgY2FuJ3QgZmFpbCwgc28gY2FuJ3QganVz dCB0aHJvdyBhbiBlcnJvci4gKi8KPsKgIGlmIChzcGFjZV9hZGRfY29uc3RyYWludF9pZChhbHRl ci0+b2xkX3NwYWNlLCBuZXdfaWQpICE9IDApCj5AQCAtMTg1OCwxNCArMTg1NiwxNSBAQCBDcmVh dGVDb25zdHJhaW50SUQ6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj7CoH0KPsKg Cj7CoHZvaWQKPi1DcmVhdGVDb25zdHJhaW50SUQ6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIpCj4rQ3JlYXRlQ29uc3RyYWludElEOjpyb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyKSBub2V4Y2VwdAo+wqB7Cj7CoCBzcGFjZV9kZWxldGVfY29uc3RyYWludF9pZChh bHRlci0+bmV3X3NwYWNlLCBuZXdfaWQtPm5hbWUpOwo+wqAgbmV3X2lkID0gTlVMTDsKPsKgfQo+ wqAKPsKgdm9pZAo+LUNyZWF0ZUNvbnN0cmFpbnRJRDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+K0NyZWF0ZUNvbnN0cmFpbnRJRDo6Y29tbWl0 KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsCj4rIGludDY0X3Qgc2lnbmF0dXJlKSBub2V4Y2Vw dAo+wqB7Cj7CoCAodm9pZCkgYWx0ZXI7Cj7CoCAodm9pZCkgc2lnbmF0dXJlOwo+QEAgLTE4NzYs NyArMTg3NSw3IEBAIENyZWF0ZUNvbnN0cmFpbnRJRDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+wqAgbmV3X2lkID0gTlVMTDsKPsKgfQo+wqAK Pi1DcmVhdGVDb25zdHJhaW50SUQ6On5DcmVhdGVDb25zdHJhaW50SUQoKQo+K0NyZWF0ZUNvbnN0 cmFpbnRJRDo6fkNyZWF0ZUNvbnN0cmFpbnRJRCgpIG5vZXhjZXB0Cj7CoHsKPsKgIGlmIChuZXdf aWQgIT0gTlVMTCkKPsKgIGNvbnN0cmFpbnRfaWRfZGVsZXRlKG5ld19pZCk7Cj5AQCAtMTg5MSwx OSArMTg5MCwyMCBAQCBwdWJsaWM6Cj7CoCBEcm9wQ29uc3RyYWludElEKHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIsIGNvbnN0IGNoYXIgKm5hbWUpCj7CoCA6QWx0ZXJTcGFjZU9wKGFsdGVyKSwg b2xkX2lkKE5VTEwpLCBuYW1lKG5hbWUpCj7CoCB7fQo+LSB2aXJ0dWFsIHZvaWQgYWx0ZXIoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4tIHZpcnR1YWwgdm9pZCBjb21taXQoc3RydWN0IGFs dGVyX3NwYWNlICphbHRlciAsIGludDY0X3Qgc2lnbmF0dXJlKTsKPi0gdmlydHVhbCB2b2lkIHJv bGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOwo+KyB2b2lkIGFsdGVyKHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOwo+KyB2b2lkIGNvbW1pdChzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLAo+KyBpbnQ2NF90IHNpZ25hdHVyZSkgbm9leGNlcHQgb3Zl cnJpZGU7Cj4rIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNl cHQgb3ZlcnJpZGU7Cj7CoH07Cj7CoAo+wqB2b2lkCj4tRHJvcENvbnN0cmFpbnRJRDo6YWx0ZXIo c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPitEcm9wQ29uc3RyYWludElEOjphbHRlcihzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdAo+wqB7Cj7CoCBvbGRfaWQgPSBzcGFjZV9w b3BfY29uc3RyYWludF9pZChhbHRlci0+b2xkX3NwYWNlLCBuYW1lKTsKPsKgfQo+wqAKPsKgdm9p ZAo+LURyb3BDb25zdHJhaW50SUQ6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBp bnQ2NF90IHNpZ25hdHVyZSkKPitEcm9wQ29uc3RyYWludElEOjpjb21taXQoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0Cj7CoHsKPsKgICh2b2lk KSBhbHRlcjsKPsKgICh2b2lkKSBzaWduYXR1cmU7Cj5AQCAtMTkxMSw3ICsxOTExLDcgQEAgRHJv cENvbnN0cmFpbnRJRDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qg c2lnbmF0dXJlKQo+wqB9Cj7CoAo+wqB2b2lkCj4tRHJvcENvbnN0cmFpbnRJRDo6cm9sbGJhY2so c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPitEcm9wQ29uc3RyYWludElEOjpyb2xsYmFjayhz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdAo+wqB7Cj7CoCBpZiAoc3BhY2VfYWRk X2NvbnN0cmFpbnRfaWQoYWx0ZXItPm5ld19zcGFjZSwgb2xkX2lkKSAhPSAwKSB7Cj7CoCBwYW5p YygiQ2FuJ3QgcmVjb3ZlciBhZnRlciBjb25zdHJhaW50IGRyb3Agcm9sbGJhY2sgKG91dCBvZiAi Cj4tLQo+Mi43LjQKPsKgIArCoArCoAotLQpJbHlhIEtvc2FyZXYKwqA= ----ALT--a0F323564B5ae22E954AC1f3E96246cA1596534955 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+PGRpdj5IaSE8YnI+PGJyPlllcywgdGhpcyZuYnNwO3BhdGNoIHNl ZW1zIHRvIGJlIG5pY2UuPC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48ZGl2PlNlZSAxIGNvbW1lbnQg YmVsb3cuPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1 N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+0J/QvtC90LXQtNC10LvRjNC9 0LjQuiwgMTMg0LjRjtC70Y8gMjAyMCwgMTc6MTggKzAzOjAwINC+0YIgQWxla3NhbmRyIEx5YXB1 bm92ICZsdDthbHlhcHVub3ZAdGFyYW50b29sLm9yZyZndDs6PGJyPiZuYnNwOzxkaXYgaWQ9IiI+ PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48c3R5bGUgdHlwZT0idGV4dC9j c3MiPjwvc3R5bGU+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTk0NjQ5OTIyMTk4MDEwMzg2M19CT0RZ Ij5XZSBzaG91bGQgdXNlIG5vZXhjZXB0IHdoZXJlIGl0J3MgYXBwcm9wcmlhdGUuPGJyPjEuSXQg aW5mb3JtcyBhIGRldmVsb3BlciBoZSBjb3VsZCBub3QgY2FyZSBhYm91dCBleGNlcHRpb24gc2Fm ZXR5PGJyPjIuSXQgaW5zdHJ1Y3RzIGEgY29tcGlsZXIgdG8gY2hlY2sgdGhyb3dzIGlmIHBvc3Np YmxlPGJyPjxicj5XZSBzaG91bGQgb3ZlcnJpZGUgZm9yIGNvbXBpbGUtdGltZSBjaGVjayBvZiBt aXNwcmludHMgaW4gbmFtZXM8YnI+b2YgbWV0aG9kcyBhbmQgdHlwZXMgb2YgYXJndW1lbnRzLjxi cj48YnI+UGFydCBvZiAjNTE1Mzxicj4tLS08YnI+Jm5ic3A7c3JjL2JveC9hbHRlci5jYyB8IDE4 MCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t PGJyPiZuYnNwOzEgZmlsZSBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCA5MCBkZWxldGlvbnMo LSk8YnI+PGJyPmRpZmYgLS1naXQgYS9zcmMvYm94L2FsdGVyLmNjIGIvc3JjL2JveC9hbHRlci5j Yzxicj5pbmRleCAyNDljZWUyLi4xNWE1MWQwIDEwMDY0NDxicj4tLS0gYS9zcmMvYm94L2FsdGVy LmNjPGJyPisrKyBiL3NyYy9ib3gvYWx0ZXIuY2M8YnI+QEAgLTc2NSw3ICs3NjUsNyBAQCBzdHJ1 Y3QgYWx0ZXJfc3BhY2U7PGJyPiZuYnNwOzxicj4mbmJzcDtjbGFzcyBBbHRlclNwYWNlT3Agezxi cj4mbmJzcDtwdWJsaWM6PGJyPi0gQWx0ZXJTcGFjZU9wKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIpOzxicj4rIGV4cGxpY2l0IEFsdGVyU3BhY2VPcChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy KTs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAvKiogTGluayBpbiBhbHRlcl9zcGFjZTo6b3BzLiAqLzxi cj4mbmJzcDsgc3RydWN0IHJsaXN0IGxpbms7PGJyPkBAIC03NzQsNyArNzc0LDcgQEAgcHVibGlj Ojxicj4mbmJzcDsgKiB0aGUgc3BhY2UgZGVmaW5pdGlvbiBhbmQvb3Iga2V5IGxpc3QgdGhhdCB3 aWxsIGJlIHVzZWQ8YnI+Jm5ic3A7ICogZm9yIGNyZWF0aW5nIHRoZSBuZXcgc3BhY2UuIE11c3Qg bm90IHlpZWxkIG9yIGZhaWwuPGJyPiZuYnNwOyAqLzxicj4tIHZpcnR1YWwgdm9pZCBhbHRlcl9k ZWYoc3RydWN0IGFsdGVyX3NwYWNlICogLyogYWx0ZXIgKi8pIHt9PGJyPisgdmlydHVhbCB2b2lk IGFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykgbm9leGNlcHQge308 YnI+Jm5ic3A7IC8qKjxicj4mbmJzcDsgKiBDYWxsZWQgYWZ0ZXIgY3JlYXRpbmcgYSBuZXcgc3Bh Y2UuIFVzZWQgZm9yIHBlcmZvcm1pbmc8YnI+Jm5ic3A7ICogbG9uZy1sYXN0aW5nIG9wZXJhdGlv bnMsIHN1Y2ggYXMgaW5kZXggcmVidWlsZCBvciBmb3JtYXQ8YnI+QEAgLTc4OCwyMSArNzg4LDIx IEBAIHB1YmxpYzo8YnI+Jm5ic3A7ICogc3RhdGUgdG8gdGhlIG5ldyBzcGFjZSAoZS5nLiBtb3Zl IHVuY2hhbmdlZCBpbmRleGVzKS48YnI+Jm5ic3A7ICogTXVzdCBub3QgeWllbGQgb3IgZmFpbC48 YnI+Jm5ic3A7ICovPGJyPi0gdmlydHVhbCB2b2lkIGFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAq IC8qIGFsdGVyICovKSB7fTxicj4rIHZpcnR1YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKiAvKiBhbHRlciAqLykgbm9leGNlcHQge308YnI+Jm5ic3A7IC8qKjxicj4mbmJzcDsgKiBD YWxsZWQgYWZ0ZXIgdGhlIGNoYW5nZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgd3JpdHRlbjxicj4m bmJzcDsgKiB0byBXQUwuIE11c3Qgbm90IGZhaWwuPGJyPiZuYnNwOyAqLzxicj4mbmJzcDsgdmly dHVhbCB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLyw8YnI+LSBp bnQ2NF90IC8qIHNpZ25hdHVyZSAqLykge308YnI+KyBpbnQ2NF90IC8qIHNpZ25hdHVyZSAqLykg bm9leGNlcHQge308YnI+Jm5ic3A7IC8qKjxicj4mbmJzcDsgKiBDYWxsZWQgaW4gY2FzZSBhIFdB TCBlcnJvciBvY2N1cnJlZC4gSXQgaXMgc3VwcG9zZWQgdG8gdW5kbzxicj4mbmJzcDsgKiB0aGUg ZWZmZWN0IG9mIEFsdGVyU3BhY2VPcDo6cHJlcGFyZSBhbmQgQWx0ZXJTcGFjZU9wOjphbHRlci48 YnI+Jm5ic3A7ICogTXVzdCBub3QgZmFpbC48YnI+Jm5ic3A7ICovPGJyPi0gdmlydHVhbCB2b2lk IHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqIC8qIGFsdGVyICovKSB7fTxicj4rIHZpcnR1 YWwgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykgbm9leGNl cHQge308YnI+Jm5ic3A7PGJyPi0gdmlydHVhbCB+QWx0ZXJTcGFjZU9wKCkge308YnI+KyB2aXJ0 dWFsIH5BbHRlclNwYWNlT3AoKSBub2V4Y2VwdCB7fTxicj4mbmJzcDs8YnI+Jm5ic3A7IHZvaWQg Km9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSk8YnI+Jm5ic3A7IHs8YnI+QEAgLTk4NCw3ICs5ODQs NyBAQCBzdHJ1Y3QgbWhfaTMyX3QgKkFsdGVyU3BhY2VMb2NrOjpyZWdpc3RyeTs8YnI+Jm5ic3A7 Jm5ic3A7KiBSZXBsYWNlIHRoZSBvbGQgc3BhY2Ugd2l0aCBhIG5ldyBvbmUgaW4gdGhlIHNwYWNl IGNhY2hlLjxicj4mbmJzcDsmbmJzcDsqLzxicj4mbmJzcDtzdGF0aWMgaW50PGJyPi1hbHRlcl9z cGFjZV9jb21taXQoc3RydWN0IHRyaWdnZXIgKnRyaWdnZXIsIHZvaWQgKmV2ZW50KTxicj4rYWx0 ZXJfc3BhY2VfY29tbWl0KHN0cnVjdCB0cmlnZ2VyICp0cmlnZ2VyLCB2b2lkICpldmVudCkgbm9l eGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgc3RydWN0IHR4biAqdHhuID0gKHN0cnVjdCB0eG4g KikgZXZlbnQ7PGJyPiZuYnNwOyBzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyID0gKHN0cnVjdCBh bHRlcl9zcGFjZSAqKSB0cmlnZ2VyLSZndDtkYXRhOzxicj5AQCAtMTAwMiwxMiArMTAwMiw4IEBA IGFsdGVyX3NwYWNlX2NvbW1pdChzdHJ1Y3QgdHJpZ2dlciAqdHJpZ2dlciwgdm9pZCAqZXZlbnQp PGJyPiZuYnNwOyAqIGluZGV4ZXMgaW50byB0aGVpciBuZXcgcGxhY2VzLjxicj4mbmJzcDsgKi88 YnI+Jm5ic3A7IGNsYXNzIEFsdGVyU3BhY2VPcCAqb3A7PGJyPi0gdHJ5IHs8YnI+LSBybGlzdF9m b3JlYWNoX2VudHJ5KG9wLCAmYW1wO2FsdGVyLSZndDtvcHMsIGxpbmspPGJyPi0gb3AtJmd0O2Nv bW1pdChhbHRlciwgc2lnbmF0dXJlKTs8YnI+LSB9IGNhdGNoIChFeGNlcHRpb24gKmUpIHs8YnI+ LSByZXR1cm4gLTE7PGJyPi0gfTxicj4rIHJsaXN0X2ZvcmVhY2hfZW50cnkob3AsICZhbXA7YWx0 ZXItJmd0O29wcywgbGluayk8YnI+KyBvcC0mZ3Q7Y29tbWl0KGFsdGVyLCBzaWduYXR1cmUpOzwv ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48ZGl2PkkgZ3Vlc3MgdGhp cyBjaGFuZ2Ugc2hvdWxkIGJlIGluPC9kaXY+PGRpdj7Cq2FsdGVyOiBkbyBub3QgY2F0Y2ggZXhj ZXB0aW9ucyB3aGVuIGl0J3Mgbm90IG5lY2Vzc2FyecK7IGNvbW1pdC48L2Rpdj48ZGl2PjxibG9j a3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7 IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRt c2ctbXNnIj48ZGl2PjxkaXY+Jm5ic3A7PGJyPiZuYnNwOyBhbHRlci0mZ3Q7bmV3X3NwYWNlID0g TlVMTDsgLyogZm9yIGFsdGVyX3NwYWNlX2RlbGV0ZSgpLiAqLzxicj4mbmJzcDsgLyo8YnI+QEAg LTEwMjksNyArMTAyNSw3IEBAIGFsdGVyX3NwYWNlX2NvbW1pdChzdHJ1Y3QgdHJpZ2dlciAqdHJp Z2dlciwgdm9pZCAqZXZlbnQpPGJyPiZuYnNwOyZuYnNwOyogYWx0ZXJfc3BhY2VfY29tbWl0KCkg ZmFpbHVyZSAodW5saWtlbHkpPGJyPiZuYnNwOyZuYnNwOyovPGJyPiZuYnNwO3N0YXRpYyBpbnQ8 YnI+LWFsdGVyX3NwYWNlX3JvbGxiYWNrKHN0cnVjdCB0cmlnZ2VyICp0cmlnZ2VyLCB2b2lkICog LyogZXZlbnQgKi8pPGJyPithbHRlcl9zcGFjZV9yb2xsYmFjayhzdHJ1Y3QgdHJpZ2dlciAqdHJp Z2dlciwgdm9pZCAqIC8qIGV2ZW50ICovKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyID0gKHN0cnVjdCBhbHRlcl9zcGFjZSAqKSB0cmlnZ2Vy LSZndDtkYXRhOzxicj4mbmJzcDsgLyogUm9sbGJhY2sgYWx0ZXIgb3BzICovPGJyPkBAIC0xMTg4 LDkgKzExODQsOSBAQCBhbHRlcl9zcGFjZV9kbyhzdHJ1Y3QgdHhuX3N0bXQgKnN0bXQsIHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIpPGJyPiZuYnNwO2NsYXNzIENoZWNrU3BhY2VGb3JtYXQ6IHB1 YmxpYyBBbHRlclNwYWNlT3A8YnI+Jm5ic3A7ezxicj4mbmJzcDtwdWJsaWM6PGJyPi0gQ2hlY2tT cGFjZUZvcm1hdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4rIGV4cGxpY2l0IENoZWNr U3BhY2VGb3JtYXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+Jm5ic3A7IDpBbHRlclNw YWNlT3AoYWx0ZXIpIHt9PGJyPi0gdmlydHVhbCB2b2lkIHByZXBhcmUoc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlcik7PGJyPisgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp IG92ZXJyaWRlOzxicj4mbmJzcDt9Ozxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj5AQCAtMTIy MiwxNSArMTIxOCwxNSBAQCBwdWJsaWM6PGJyPiZuYnNwOyAqIG5hbWVzIGludG8gYW4gb2xkIGRp Y3Rpb25hcnkgYW5kIGRlbGV0ZXMgbmV3IG9uZS48YnI+Jm5ic3A7ICovPGJyPiZuYnNwOyBzdHJ1 Y3QgdHVwbGVfZGljdGlvbmFyeSAqbmV3X2RpY3Q7PGJyPi0gdmlydHVhbCB2b2lkIGFsdGVyX2Rl ZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgYWx0ZXIoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lkIHJvbGxiYWNrKHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4tIHZpcnR1YWwgfk1vZGlmeVNwYWNlKCk7PGJyPisg dm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJp ZGU7PGJyPisgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBv dmVycmlkZTs8YnI+KyB2b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5v ZXhjZXB0IG92ZXJyaWRlOzxicj4rIH5Nb2RpZnlTcGFjZSgpIG5vZXhjZXB0IG92ZXJyaWRlOzxi cj4mbmJzcDt9Ozxicj4mbmJzcDs8YnI+Jm5ic3A7LyoqIEFtZW5kIHRoZSBkZWZpbml0aW9uIG9m IHRoZSBuZXcgc3BhY2UuICovPGJyPiZuYnNwO3ZvaWQ8YnI+LU1vZGlmeVNwYWNlOjphbHRlcl9k ZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K01vZGlmeVNwYWNlOjphbHRlcl9kZWYo c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsg Lyo8YnI+Jm5ic3A7ICogVXNlIHRoZSBvbGQgZGljdGlvbmFyeSBmb3IgdGhlIG5ldyBzcGFjZSwg YmVjYXVzZTxicj5AQCAtMTI0OSw3ICsxMjQ1LDcgQEAgTW9kaWZ5U3BhY2U6OmFsdGVyX2RlZihz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2 b2lkPGJyPi1Nb2RpZnlTcGFjZTo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+ K01vZGlmeVNwYWNlOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdDxi cj4mbmJzcDt7PGJyPiZuYnNwOyAvKjxicj4mbmJzcDsgKiBNb3ZlIG5ldyBuYW1lcyBpbnRvIGFu IG9sZCBkaWN0aW9uYXJ5LCB3aGljaCBhbHJlYWR5IGlzPGJyPkBAIC0xMjYwLDEyICsxMjU2LDEy IEBAIE1vZGlmeVNwYWNlOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4mbmJz cDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1Nb2RpZnlTcGFjZTo6cm9sbGJhY2soc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K01vZGlmeVNwYWNlOjpyb2xsYmFjayhzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyB0dXBsZV9k aWN0aW9uYXJ5X3N3YXAoYWx0ZXItJmd0O25ld19zcGFjZS0mZ3Q7ZGVmLSZndDtkaWN0LCBuZXdf ZGljdCk7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi1Nb2RpZnlTcGFjZTo6fk1vZGlmeVNwYWNl KCk8YnI+K01vZGlmeVNwYWNlOjp+TW9kaWZ5U3BhY2UoKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJy PiZuYnNwOyBpZiAobmV3X2RpY3QgIT0gTlVMTCk8YnI+Jm5ic3A7IHR1cGxlX2RpY3Rpb25hcnlf dW5yZWYobmV3X2RpY3QpOzxicj5AQCAtMTI4MSw5ICsxMjc3LDkgQEAgcHVibGljOjxicj4mbmJz cDsgRHJvcEluZGV4KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIHN0cnVjdCBpbmRleCAqaW5k ZXgpPGJyPiZuYnNwOyA6QWx0ZXJTcGFjZU9wKGFsdGVyKSwgb2xkX2luZGV4KGluZGV4KSB7fTxi cj4mbmJzcDsgc3RydWN0IGluZGV4ICpvbGRfaW5kZXg7PGJyPi0gdmlydHVhbCB2b2lkIGFsdGVy X2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgcHJlcGFy ZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgY29tbWl0KHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3QgbHNuKTs8YnI+KyB2b2lkIGFsdGVyX2Rl ZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB2b2lk IHByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgb3ZlcnJpZGU7PGJyPisgdm9pZCBj b21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBsc24pIG5vZXhjZXB0IG92 ZXJyaWRlOzxicj4mbmJzcDt9Ozxicj4mbmJzcDs8YnI+Jm5ic3A7Lyo8YnI+QEAgLTEyOTEsNyAr MTI4Nyw3IEBAIHB1YmxpYzo8YnI+Jm5ic3A7Jm5ic3A7KiB0aGUgbmV3IGluZGV4IGZyb20gaXQu PGJyPiZuYnNwOyZuYnNwOyovPGJyPiZuYnNwO3ZvaWQ8YnI+LURyb3BJbmRleDo6YWx0ZXJfZGVm KHN0cnVjdCBhbHRlcl9zcGFjZSAqIC8qIGFsdGVyICovKTxicj4rRHJvcEluZGV4OjphbHRlcl9k ZWYoc3RydWN0IGFsdGVyX3NwYWNlICogLyogYWx0ZXIgKi8pIG5vZXhjZXB0PGJyPiZuYnNwO3s8 YnI+Jm5ic3A7IHJsaXN0X2RlbF9lbnRyeShvbGRfaW5kZXgtJmd0O2RlZiwgbGluayk7PGJyPiZu YnNwO308YnI+QEAgLTEzMDUsNyArMTMwMSw3IEBAIERyb3BJbmRleDo6cHJlcGFyZShzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJy Pi1Ecm9wSW5kZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNp Z25hdHVyZSk8YnI+K0Ryb3BJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIs IGludDY0X3Qgc2lnbmF0dXJlKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyAodm9pZClh bHRlcjs8YnI+Jm5ic3A7IGluZGV4X2NvbW1pdF9kcm9wKG9sZF9pbmRleCwgc2lnbmF0dXJlKTs8 YnI+QEAgLTEzMjMsMTggKzEzMTksMTggQEAgcHVibGljOjxicj4mbmJzcDsgOkFsdGVyU3BhY2VP cChhbHRlciksIGlpZChpaWRfYXJnKSB7fTxicj4mbmJzcDsgLyoqIGlkIG9mIHRoZSBpbmRleCBv biB0aGUgbW92ZS4gKi88YnI+Jm5ic3A7IHVpbnQzMl90IGlpZDs8YnI+LSB2aXJ0dWFsIHZvaWQg YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lkIHJvbGxi YWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4rIHZvaWQgYWx0ZXIoc3RydWN0IGFs dGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgdm9pZCByb2xsYmFjayhz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+Jm5ic3A7fTs8 YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LU1vdmVJbmRleDo6YWx0ZXIoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlcik8YnI+K01vdmVJbmRleDo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICph bHRlcikgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgc3BhY2Vfc3dhcF9pbmRleChhbHRl ci0mZ3Q7b2xkX3NwYWNlLCBhbHRlci0mZ3Q7bmV3X3NwYWNlLCBpaWQsIGlpZCk7PGJyPiZuYnNw O308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LU1vdmVJbmRleDo6cm9sbGJhY2soc3RydWN0 IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K01vdmVJbmRleDo6cm9sbGJhY2soc3RydWN0IGFsdGVy X3NwYWNlICphbHRlcikgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgc3BhY2Vfc3dhcF9p bmRleChhbHRlci0mZ3Q7b2xkX3NwYWNlLCBhbHRlci0mZ3Q7bmV3X3NwYWNlLCBpaWQsIGlpZCk7 PGJyPiZuYnNwO308YnI+QEAgLTEzNjUsMjMgKzEzNjEsMjMgQEAgcHVibGljOjxicj4mbmJzcDsg c3RydWN0IGluZGV4ICpvbGRfaW5kZXg7PGJyPiZuYnNwOyBzdHJ1Y3QgaW5kZXggKm5ld19pbmRl eDs8YnI+Jm5ic3A7IHN0cnVjdCBpbmRleF9kZWYgKm5ld19pbmRleF9kZWY7PGJyPi0gdmlydHVh bCB2b2lkIGFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFs IHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lk IGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IGxzbik7PGJyPi0gdmly dHVhbCB2b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4tIHZpcnR1 YWwgfk1vZGlmeUluZGV4KCk7PGJyPisgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNl ICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJf c3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB2b2lkIGNvbW1pdChzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IGxzbikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisg dm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlk ZTs8YnI+KyB+TW9kaWZ5SW5kZXgoKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+Jm5ic3A7fTs8YnI+ Jm5ic3A7PGJyPiZuYnNwOy8qKiBVcGRhdGUgdGhlIGRlZmluaXRpb24gb2YgdGhlIG5ldyBzcGFj ZSAqLzxicj4mbmJzcDt2b2lkPGJyPi1Nb2RpZnlJbmRleDo6YWx0ZXJfZGVmKHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIpPGJyPitNb2RpZnlJbmRleDo6YWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IHJsaXN0X2RlbF9lbnRy eShvbGRfaW5kZXgtJmd0O2RlZiwgbGluayk7PGJyPiZuYnNwOyBpbmRleF9kZWZfbGlzdF9hZGQo JmFtcDthbHRlci0mZ3Q7a2V5X2xpc3QsIG5ld19pbmRleF9kZWYpOzxicj4mbmJzcDt9PGJyPiZu YnNwOzxicj4mbmJzcDt2b2lkPGJyPi1Nb2RpZnlJbmRleDo6YWx0ZXIoc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlcik8YnI+K01vZGlmeUluZGV4OjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFs dGVyKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBuZXdfaW5kZXggPSBzcGFjZV9pbmRl eChhbHRlci0mZ3Q7bmV3X3NwYWNlLCBuZXdfaW5kZXhfZGVmLSZndDtpaWQpOzxicj4mbmJzcDsg YXNzZXJ0KG9sZF9pbmRleC0mZ3Q7ZGVmLSZndDtpaWQgPT0gbmV3X2luZGV4LSZndDtkZWYtJmd0 O2lpZCk7PGJyPkBAIC0xMzk3LDE0ICsxMzkzLDE0IEBAIE1vZGlmeUluZGV4OjphbHRlcihzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lk PGJyPi1Nb2RpZnlJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0 X3Qgc2lnbmF0dXJlKTxicj4rTW9kaWZ5SW5kZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSkgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsg KHZvaWQpYWx0ZXI7PGJyPiZuYnNwOyBpbmRleF9jb21taXRfbW9kaWZ5KG5ld19pbmRleCwgc2ln bmF0dXJlKTs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tTW9kaWZ5SW5k ZXg6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpPGJyPitNb2RpZnlJbmRleDo6 cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQ8YnI+Jm5ic3A7ezxi cj4mbmJzcDsgLyo8YnI+Jm5ic3A7ICogUmVzdG9yZSBpbmRleGVzLjxicj5AQCAtMTQxNiw3ICsx NDEyLDcgQEAgTW9kaWZ5SW5kZXg6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp PGJyPiZuYnNwOyBpbmRleF91cGRhdGVfZGVmKG9sZF9pbmRleCk7PGJyPiZuYnNwO308YnI+Jm5i c3A7PGJyPi1Nb2RpZnlJbmRleDo6fk1vZGlmeUluZGV4KCk8YnI+K01vZGlmeUluZGV4Ojp+TW9k aWZ5SW5kZXgoKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBpbmRleF9kZWZfZGVsZXRl KG5ld19pbmRleF9kZWYpOzxicj4mbmJzcDt9PGJyPkBAIC0xNDMyLDE1ICsxNDI4LDE1IEBAIHB1 YmxpYzo8YnI+Jm5ic3A7IENyZWF0ZUluZGV4KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIHN0 cnVjdCBpbmRleF9kZWYgKmRlZik8YnI+Jm5ic3A7IDpBbHRlclNwYWNlT3AoYWx0ZXIpLCBuZXdf aW5kZXgoTlVMTCksIG5ld19pbmRleF9kZWYoZGVmKTxicj4mbmJzcDsge308YnI+LSB2aXJ0dWFs IHZvaWQgYWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4tIHZpcnR1YWwg dm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4tIHZpcnR1YWwgdm9p ZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBsc24pOzxicj4tIHZp cnR1YWwgfkNyZWF0ZUluZGV4KCk7PGJyPisgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgdm9pZCBwcmVwYXJlKHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJyaWRlOzxicj4rIHZvaWQgY29tbWl0KHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIsIGludDY0X3QgbHNuKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB+Q3Jl YXRlSW5kZXgoKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+Jm5ic3A7fTs8YnI+Jm5ic3A7PGJyPiZu YnNwOy8qKiBBZGQgZGVmaW5pdGlvbiBvZiB0aGUgbmV3IGtleSB0byB0aGUgbmV3IHNwYWNlIGRl Zi4gKi88YnI+Jm5ic3A7dm9pZDxicj4tQ3JlYXRlSW5kZXg6OmFsdGVyX2RlZihzdHJ1Y3QgYWx0 ZXJfc3BhY2UgKmFsdGVyKTxicj4rQ3JlYXRlSW5kZXg6OmFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJf c3BhY2UgKmFsdGVyKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBpbmRleF9kZWZfbGlz dF9hZGQoJmFtcDthbHRlci0mZ3Q7a2V5X2xpc3QsIG5ld19pbmRleF9kZWYpOzxicj4mbmJzcDt9 PGJyPkBAIC0xNDgwLDcgKzE0NzYsNyBAQCBDcmVhdGVJbmRleDo6cHJlcGFyZShzdHJ1Y3QgYWx0 ZXJfc3BhY2UgKmFsdGVyKTxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1D cmVhdGVJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2ln bmF0dXJlKTxicj4rQ3JlYXRlSW5kZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy LCBpbnQ2NF90IHNpZ25hdHVyZSkgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgKHZvaWQp IGFsdGVyOzxicj4mbmJzcDsgYXNzZXJ0KG5ld19pbmRleCAhPSBOVUxMKTs8YnI+QEAgLTE0ODgs NyArMTQ4NCw3IEBAIENyZWF0ZUluZGV4Ojpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRl ciwgaW50NjRfdCBzaWduYXR1cmUpPGJyPiZuYnNwOyBuZXdfaW5kZXggPSBOVUxMOzxicj4mbmJz cDt9PGJyPiZuYnNwOzxicj4tQ3JlYXRlSW5kZXg6On5DcmVhdGVJbmRleCgpPGJyPitDcmVhdGVJ bmRleDo6fkNyZWF0ZUluZGV4KCkgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgaWYgKG5l d19pbmRleCAhPSBOVUxMKTxicj4mbmJzcDsgaW5kZXhfYWJvcnRfY3JlYXRlKG5ld19pbmRleCk7 PGJyPkBAIC0xNTIxLDE1ICsxNTE3LDE1IEBAIHB1YmxpYzo8YnI+Jm5ic3A7IHN0cnVjdCBpbmRl eF9kZWYgKm5ld19pbmRleF9kZWY7PGJyPiZuYnNwOyAvKiogT2xkIGluZGV4IGluZGV4X2RlZi4g Ki88YnI+Jm5ic3A7IHN0cnVjdCBpbmRleF9kZWYgKm9sZF9pbmRleF9kZWY7PGJyPi0gdmlydHVh bCB2b2lkIGFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFs IHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZv aWQgY29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKTs8 YnI+LSB2aXJ0dWFsIH5SZWJ1aWxkSW5kZXgoKTs8YnI+KyB2b2lkIGFsdGVyX2RlZihzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB2b2lkIHByZXBhcmUo c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgb3ZlcnJpZGU7PGJyPisgdm9pZCBjb21taXQoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0IG92ZXJy aWRlOzxicj4rIH5SZWJ1aWxkSW5kZXgoKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+Jm5ic3A7fTs8 YnI+Jm5ic3A7PGJyPiZuYnNwOy8qKiBBZGQgZGVmaW5pdGlvbiBvZiB0aGUgbmV3IGtleSB0byB0 aGUgbmV3IHNwYWNlIGRlZi4gKi88YnI+Jm5ic3A7dm9pZDxicj4tUmVidWlsZEluZGV4OjphbHRl cl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K1JlYnVpbGRJbmRleDo6YWx0ZXJf ZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5i c3A7IHJsaXN0X2RlbF9lbnRyeShvbGRfaW5kZXhfZGVmLCBsaW5rKTs8YnI+Jm5ic3A7IGluZGV4 X2RlZl9saXN0X2FkZCgmYW1wO2FsdGVyLSZndDtrZXlfbGlzdCwgbmV3X2luZGV4X2RlZik7PGJy PkBAIC0xNTQ1LDcgKzE1NDEsNyBAQCBSZWJ1aWxkSW5kZXg6OnByZXBhcmUoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlcik8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tUmVi dWlsZEluZGV4Ojpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWdu YXR1cmUpPGJyPitSZWJ1aWxkSW5kZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy LCBpbnQ2NF90IHNpZ25hdHVyZSkgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgc3RydWN0 IGluZGV4ICpvbGRfaW5kZXggPSBzcGFjZV9pbmRleChhbHRlci0mZ3Q7b2xkX3NwYWNlLDxicj4m bmJzcDsgb2xkX2luZGV4X2RlZi0mZ3Q7aWlkKTs8YnI+QEAgLTE1NTYsNyArMTU1Miw3IEBAIFJl YnVpbGRJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2ln bmF0dXJlKTxicj4mbmJzcDsgbmV3X2luZGV4ID0gTlVMTDs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8 YnI+LVJlYnVpbGRJbmRleDo6flJlYnVpbGRJbmRleCgpPGJyPitSZWJ1aWxkSW5kZXg6On5SZWJ1 aWxkSW5kZXgoKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBpZiAobmV3X2luZGV4ICE9 IE5VTEwpPGJyPiZuYnNwOyBpbmRleF9hYm9ydF9jcmVhdGUobmV3X2luZGV4KTs8YnI+QEAgLTE2 MDAsOSArMTU5NiwxMCBAQCBwdWJsaWM6PGJyPiZuYnNwOyBUcnVuY2F0ZUluZGV4KHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIsIHVpbnQzMl90IGlpZCk8YnI+Jm5ic3A7IDogQWx0ZXJTcGFjZU9w KGFsdGVyKSwgaWlkKGlpZCksPGJyPiZuYnNwOyBvbGRfaW5kZXgoTlVMTCksIG5ld19pbmRleChO VUxMKSB7fTxicj4tIHZpcnR1YWwgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIpOzxicj4tIHZpcnR1YWwgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwg aW50NjRfdCBzaWduYXR1cmUpOzxicj4tIHZpcnR1YWwgflRydW5jYXRlSW5kZXgoKTs8YnI+KyB2 b2lkIHByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgb3ZlcnJpZGU7PGJyPisgdm9p ZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciw8YnI+KyBpbnQ2NF90IHNpZ25hdHVy ZSkgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgflRydW5jYXRlSW5kZXgoKSBub2V4Y2VwdCBvdmVy cmlkZTs8YnI+Jm5ic3A7fTs8YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+QEAgLTE2MzIsNyAr MTYyOSw3IEBAIFRydW5jYXRlSW5kZXg6OnByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRl cik8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tVHJ1bmNhdGVJbmRleDo6 Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKTxicj4r VHJ1bmNhdGVJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qg c2lnbmF0dXJlKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyAodm9pZClhbHRlcjs8YnI+ Jm5ic3A7IGluZGV4X2NvbW1pdF9kcm9wKG9sZF9pbmRleCwgc2lnbmF0dXJlKTs8YnI+QEAgLTE2 NDAsNyArMTYzNyw3IEBAIFRydW5jYXRlSW5kZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSk8YnI+Jm5ic3A7IG5ld19pbmRleCA9IE5VTEw7PGJy PiZuYnNwO308YnI+Jm5ic3A7PGJyPi1UcnVuY2F0ZUluZGV4Ojp+VHJ1bmNhdGVJbmRleCgpPGJy PitUcnVuY2F0ZUluZGV4Ojp+VHJ1bmNhdGVJbmRleCgpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+ Jm5ic3A7IGlmIChuZXdfaW5kZXggPT0gTlVMTCk8YnI+Jm5ic3A7IHJldHVybjs8YnI+QEAgLTE2 NTcsMTEgKzE2NTQsMTEgQEAgY2xhc3MgVXBkYXRlU2NoZW1hVmVyc2lvbjogcHVibGljIEFsdGVy U3BhY2VPcDxicj4mbmJzcDtwdWJsaWM6PGJyPiZuYnNwOyBVcGRhdGVTY2hlbWFWZXJzaW9uKHN0 cnVjdCBhbHRlcl9zcGFjZSAqIGFsdGVyKTxicj4mbmJzcDsgOkFsdGVyU3BhY2VPcChhbHRlcikg e308YnI+LSB2aXJ0dWFsIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJy Pisgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlk ZTs8YnI+Jm5ic3A7fTs8YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LVVwZGF0ZVNjaGVtYVZl cnNpb246OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpPGJyPitVcGRhdGVTY2hlbWFW ZXJzaW9uOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdDxicj4mbmJz cDt7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyh2b2lkKWFsdGVyOzxicj4mbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsrK3NjaGVtYV92ZXJzaW9uOzxicj5AQCAtMTY4NCwx MCArMTY4MSwxMCBAQCBwdWJsaWM6PGJyPiZuYnNwOyBSZWJ1aWxkQ2tDb25zdHJhaW50cyhzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSA6IEFsdGVyU3BhY2VPcChhbHRlciksPGJyPiZuYnNwOyBj a19jb25zdHJhaW50KFJMSVNUX0hFQURfSU5JVElBTElaRVIoY2tfY29uc3RyYWludCkpIHt9PGJy PiZuYnNwOyBzdHJ1Y3Qgcmxpc3QgY2tfY29uc3RyYWludDs8YnI+LSB2aXJ0dWFsIHZvaWQgcHJl cGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgYWx0ZXIo c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lkIHJvbGxiYWNrKHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4tIHZpcnR1YWwgflJlYnVpbGRDa0NvbnN0cmFp bnRzKCk7PGJyPisgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJy aWRlOzxicj4rIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQg b3ZlcnJpZGU7PGJyPisgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBu b2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB+UmVidWlsZENrQ29uc3RyYWludHMoKSBub2V4Y2VwdCBv dmVycmlkZTs8YnI+Jm5ic3A7fTs8YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+QEAgLTE3MTYs MTggKzE3MTMsMTggQEAgUmVidWlsZENrQ29uc3RyYWludHM6OnNwYWNlX3N3YXBfY2tfY29uc3Ry YWludChzdHJ1Y3Qgc3BhY2UgKm9sZF9zcGFjZSw8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5i c3A7dm9pZDxicj4tUmVidWlsZENrQ29uc3RyYWludHM6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIpPGJyPitSZWJ1aWxkQ2tDb25zdHJhaW50czo6YWx0ZXIoc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlcikgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgc3BhY2Vfc3dhcF9ja19j b25zdHJhaW50KGFsdGVyLSZndDtvbGRfc3BhY2UsIGFsdGVyLSZndDtuZXdfc3BhY2UpOzxicj4m bmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1SZWJ1aWxkQ2tDb25zdHJhaW50czo6 cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K1JlYnVpbGRDa0NvbnN0cmFp bnRzOjpyb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdDxicj4mbmJz cDt7PGJyPiZuYnNwOyBzcGFjZV9zd2FwX2NrX2NvbnN0cmFpbnQoYWx0ZXItJmd0O25ld19zcGFj ZSwgYWx0ZXItJmd0O29sZF9zcGFjZSk7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi1SZWJ1aWxk Q2tDb25zdHJhaW50czo6flJlYnVpbGRDa0NvbnN0cmFpbnRzKCk8YnI+K1JlYnVpbGRDa0NvbnN0 cmFpbnRzOjp+UmVidWlsZENrQ29uc3RyYWludHMoKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZu YnNwOyBzdHJ1Y3QgY2tfY29uc3RyYWludCAqb2xkX2NrX2NvbnN0cmFpbnQsICp0bXA7PGJyPiZu YnNwOyBybGlzdF9mb3JlYWNoX2VudHJ5X3NhZmUob2xkX2NrX2NvbnN0cmFpbnQsICZhbXA7Y2tf Y29uc3RyYWludCwgbGluaywgdG1wKSB7PGJyPkBAIC0xNzU0LDggKzE3NTEsOCBAQCBjbGFzcyBN b3ZlQ2tDb25zdHJhaW50czogcHVibGljIEFsdGVyU3BhY2VPcDxicj4mbmJzcDsgc3RydWN0IHNw YWNlICpuZXdfc3BhY2UpOzxicj4mbmJzcDtwdWJsaWM6PGJyPiZuYnNwOyBNb3ZlQ2tDb25zdHJh aW50cyhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSA6IEFsdGVyU3BhY2VPcChhbHRlcikge308 YnI+LSB2aXJ0dWFsIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0g dmlydHVhbCB2b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4rIHZv aWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJy Pisgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVy cmlkZTs8YnI+Jm5ic3A7fTs8YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+QEAgLTE3NjksMTMg KzE3NjYsMTMgQEAgTW92ZUNrQ29uc3RyYWludHM6OnNwYWNlX3N3YXBfY2tfY29uc3RyYWludChz dHJ1Y3Qgc3BhY2UgKm9sZF9zcGFjZSw8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9p ZDxicj4tTW92ZUNrQ29uc3RyYWludHM6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp PGJyPitNb3ZlQ2tDb25zdHJhaW50czo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikg bm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgc3BhY2Vfc3dhcF9ja19jb25zdHJhaW50KGFs dGVyLSZndDtvbGRfc3BhY2UsIGFsdGVyLSZndDtuZXdfc3BhY2UpOzxicj4mbmJzcDt9PGJyPiZu YnNwOzxicj4mbmJzcDt2b2lkPGJyPi1Nb3ZlQ2tDb25zdHJhaW50czo6cm9sbGJhY2soc3RydWN0 IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K01vdmVDa0NvbnN0cmFpbnRzOjpyb2xsYmFjayhzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBzcGFj ZV9zd2FwX2NrX2NvbnN0cmFpbnQoYWx0ZXItJmd0O25ld19zcGFjZSwgYWx0ZXItJmd0O29sZF9z cGFjZSk7PGJyPiZuYnNwO308YnI+QEAgLTE4MzQsMTEgKzE4MzEsMTIgQEAgcHVibGljOjxicj4m bmJzcDsgaWYgKG5ld19pZCA9PSBOVUxMKTxicj4mbmJzcDsgZGlhZ19yYWlzZSgpOzxicj4mbmJz cDsgfTxicj4tIHZpcnR1YWwgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp Ozxicj4tIHZpcnR1YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+ LSB2aXJ0dWFsIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0g dmlydHVhbCB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNp Z25hdHVyZSk7PGJyPi0gdmlydHVhbCB+Q3JlYXRlQ29uc3RyYWludElEKCk7PGJyPisgdm9pZCBw cmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJyaWRlOzxicj4rIHZvaWQgYWx0 ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgdm9p ZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTs8 YnI+KyB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLDxicj4rIGludDY0X3Qg c2lnbmF0dXJlKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB+Q3JlYXRlQ29uc3RyYWludElEKCkg bm9leGNlcHQgb3ZlcnJpZGU7PGJyPiZuYnNwO307PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJy PkBAIC0xODUwLDcgKzE4NDgsNyBAQCBDcmVhdGVDb25zdHJhaW50SUQ6OnByZXBhcmUoc3RydWN0 IGFsdGVyX3NwYWNlICphbHRlcik8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxi cj4tQ3JlYXRlQ29uc3RyYWludElEOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTxi cj4rQ3JlYXRlQ29uc3RyYWludElEOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBu b2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyAvKiBBbHRlcigpIGNhbid0IGZhaWwsIHNvIGNh bid0IGp1c3QgdGhyb3cgYW4gZXJyb3IuICovPGJyPiZuYnNwOyBpZiAoc3BhY2VfYWRkX2NvbnN0 cmFpbnRfaWQoYWx0ZXItJmd0O29sZF9zcGFjZSwgbmV3X2lkKSAhPSAwKTxicj5AQCAtMTg1OCwx NCArMTg1NiwxNSBAQCBDcmVhdGVDb25zdHJhaW50SUQ6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIpPGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LUNyZWF0ZUNv bnN0cmFpbnRJRDo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K0NyZWF0 ZUNvbnN0cmFpbnRJRDo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNl cHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgc3BhY2VfZGVsZXRlX2NvbnN0cmFpbnRfaWQoYWx0ZXIt Jmd0O25ld19zcGFjZSwgbmV3X2lkLSZndDtuYW1lKTs8YnI+Jm5ic3A7IG5ld19pZCA9IE5VTEw7 PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LUNyZWF0ZUNvbnN0cmFpbnRJ RDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKTxi cj4rQ3JlYXRlQ29uc3RyYWludElEOjpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciw8 YnI+KyBpbnQ2NF90IHNpZ25hdHVyZSkgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgKHZv aWQpIGFsdGVyOzxicj4mbmJzcDsgKHZvaWQpIHNpZ25hdHVyZTs8YnI+QEAgLTE4NzYsNyArMTg3 NSw3IEBAIENyZWF0ZUNvbnN0cmFpbnRJRDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIsIGludDY0X3Qgc2lnbmF0dXJlKTxicj4mbmJzcDsgbmV3X2lkID0gTlVMTDs8YnI+Jm5ic3A7 fTxicj4mbmJzcDs8YnI+LUNyZWF0ZUNvbnN0cmFpbnRJRDo6fkNyZWF0ZUNvbnN0cmFpbnRJRCgp PGJyPitDcmVhdGVDb25zdHJhaW50SUQ6On5DcmVhdGVDb25zdHJhaW50SUQoKSBub2V4Y2VwdDxi cj4mbmJzcDt7PGJyPiZuYnNwOyBpZiAobmV3X2lkICE9IE5VTEwpPGJyPiZuYnNwOyBjb25zdHJh aW50X2lkX2RlbGV0ZShuZXdfaWQpOzxicj5AQCAtMTg5MSwxOSArMTg5MCwyMCBAQCBwdWJsaWM6 PGJyPiZuYnNwOyBEcm9wQ29uc3RyYWludElEKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGNv bnN0IGNoYXIgKm5hbWUpPGJyPiZuYnNwOyA6QWx0ZXJTcGFjZU9wKGFsdGVyKSwgb2xkX2lkKE5V TEwpLCBuYW1lKG5hbWUpPGJyPiZuYnNwOyB7fTxicj4tIHZpcnR1YWwgdm9pZCBhbHRlcihzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgY29tbWl0KHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIgLCBpbnQ2NF90IHNpZ25hdHVyZSk7PGJyPi0gdmlydHVhbCB2b2lk IHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4rIHZvaWQgYWx0ZXIoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgdm9pZCBjb21t aXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciw8YnI+KyBpbnQ2NF90IHNpZ25hdHVyZSkgbm9l eGNlcHQgb3ZlcnJpZGU7PGJyPisgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFs dGVyKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+Jm5ic3A7fTs8YnI+Jm5ic3A7PGJyPiZuYnNwO3Zv aWQ8YnI+LURyb3BDb25zdHJhaW50SUQ6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp PGJyPitEcm9wQ29uc3RyYWludElEOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBu b2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBvbGRfaWQgPSBzcGFjZV9wb3BfY29uc3RyYWlu dF9pZChhbHRlci0mZ3Q7b2xkX3NwYWNlLCBuYW1lKTs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+ Jm5ic3A7dm9pZDxicj4tRHJvcENvbnN0cmFpbnRJRDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKTxicj4rRHJvcENvbnN0cmFpbnRJRDo6Y29tbWl0 KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKSBub2V4Y2VwdDxi cj4mbmJzcDt7PGJyPiZuYnNwOyAodm9pZCkgYWx0ZXI7PGJyPiZuYnNwOyAodm9pZCkgc2lnbmF0 dXJlOzxicj5AQCAtMTkxMSw3ICsxOTExLDcgQEAgRHJvcENvbnN0cmFpbnRJRDo6Y29tbWl0KHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKTxicj4mbmJzcDt9PGJy PiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1Ecm9wQ29uc3RyYWludElEOjpyb2xsYmFjayhzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4rRHJvcENvbnN0cmFpbnRJRDo6cm9sbGJhY2soc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgaWYg KHNwYWNlX2FkZF9jb25zdHJhaW50X2lkKGFsdGVyLSZndDtuZXdfc3BhY2UsIG9sZF9pZCkgIT0g MCkgezxicj4mbmJzcDsgcGFuaWMoIkNhbid0IHJlY292ZXIgYWZ0ZXIgY29uc3RyYWludCBkcm9w IHJvbGxiYWNrIChvdXQgb2YgIjxicj4tLTxicj4yLjcuNDxicj4mbmJzcDs8L2Rpdj48L2Rpdj48 L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+Jm5ic3A7PGRpdj4mbmJzcDs8L2Rpdj48ZGl2IGRhdGEt c2lnbmF0dXJlLXdpZGdldD0iY29udGFpbmVyIj48ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0i Y29udGVudCI+PGRpdj4tLTxicj5JbHlhIEtvc2FyZXY8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2PiZu YnNwOzwvZGl2PjwvZGl2PjwvQk9EWT48L0hUTUw+Cg== ----ALT--a0F323564B5ae22E954AC1f3E96246cA1596534955--