From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f348.i.mail.ru (f348.i.mail.ru [217.69.130.234]) (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 B2D72430407 for ; Fri, 21 Aug 2020 11:15:45 +0300 (MSK) From: =?UTF-8?B?U2VyZ2UgUGV0cmVua28=?= MIME-Version: 1.0 Date: Fri, 21 Aug 2020 11:15:44 +0300 Reply-To: =?UTF-8?B?U2VyZ2UgUGV0cmVua28=?= Message-ID: <1597997744.808663195@f348.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--3e883DbA76B94F0239BefC8728cE239b1597997744" In-Reply-To: <20200819213442.1099018-4-gorcunov@gmail.com> References: <20200819213442.1099018-1-gorcunov@gmail.com> <20200819213442.1099018-4-gorcunov@gmail.com> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v9_3/7=5D_qsync=3A_provide?= =?utf-8?q?_a_binary_form_of_syncro_entries?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?Q3lyaWxsIEdvcmN1bm92?= Cc: =?UTF-8?B?dG1s?= , =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= ----ALT--3e883DbA76B94F0239BefC8728cE239b1597997744 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkxHVE0uCsKgCsKgIAo+0KfQtdGC0LLQtdGA0LMsIDIwINCw0LLQs9GD0YHRgtCwIDIwMjAsIDA6 MzUgKzAzOjAwINC+0YIgQ3lyaWxsIEdvcmN1bm92IDxnb3JjdW5vdkBnbWFpbC5jb20+Ogo+wqAK PlRoZXNlIG1zZ3BhY2sgZW50cmllcyB3aWxsIGJlIG5lZWRlZCB0byB3cml0ZSB0aGVtCj5kb3du IHRvIGEgam91cm5hbCB3aXRob3V0IGludm9sdmluZyB0eG4gZW5naW5lLiBTYW1lCj50aW1lIHdl IHdvdWxkIGxpa2UgdG8gYmUgYWJsZSB0byBhbGxvY2F0ZSB0aGVtIG9uIHN0YWNrLAo+Zm9yIHRo aXMgc2FrZSB0aGUgYmluYXJ5IGZvcm0gaXMgcHJlZGVmaW5lZC4KPgo+UGFydC1vZiAjNTEyOQo+ Cj5TaWduZWQtb2ZmLWJ5OiBDeXJpbGwgR29yY3Vub3YgPCBnb3JjdW5vdkBnbWFpbC5jb20gPgo+ LS0tCj7CoHNyYy9ib3gvdHhuX2xpbWJvLmMgfCA5ICsrKysrKystLQo+wqBzcmMvYm94L3hyb3cu YyB8IDQxICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj7CoHNyYy9i b3gveHJvdy5oIHwgMjAgKysrKysrKysrKysrKysrLS0tLS0KPsKgMyBmaWxlcyBjaGFuZ2VkLCA0 MCBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKPgo+ZGlmZiAtLWdpdCBhL3NyYy9ib3gv dHhuX2xpbWJvLmMgYi9zcmMvYm94L3R4bl9saW1iby5jCj5pbmRleCBjNmE0ZTVlZmMuLmU0NThk YWQ3NSAxMDA2NDQKPi0tLSBhL3NyYy9ib3gvdHhuX2xpbWJvLmMKPisrKyBiL3NyYy9ib3gvdHhu X2xpbWJvLmMKPkBAIC0yODMsNiArMjgzLDExIEBAIHR4bl9saW1ib193cml0ZV9zeW5jaHJvKHN0 cnVjdCB0eG5fbGltYm8gKmxpbWJvLCB1aW50MzJfdCB0eXBlLCBpbnQ2NF90IGxzbikKPsKgIC5s c24gPSBsc24sCj7CoCB9Owo+wqAKPisgLyoKPisgKiBUaGlzIGlzIGEgc3luY2hyb25vdXMgY29t bWl0IHNvIHdlIGNhbgo+KyAqIHVzZSBib2R5IGFuZCByb3cgYWxsb2NhdGVkIG9uIGEgc3RhY2su Cj4rICovCj4rIHN0cnVjdCBzeW5jaHJvX2JvZHlfYmluIGJvZHk7Cj7CoCBzdHJ1Y3QgeHJvd19o ZWFkZXIgcm93Owo+wqAgc3RydWN0IHJlcXVlc3QgcmVxdWVzdCA9IHsKPsKgIC5oZWFkZXIgPSAm cm93LAo+QEAgLTI5Miw4ICsyOTcsOCBAQCB0eG5fbGltYm9fd3JpdGVfc3luY2hybyhzdHJ1Y3Qg dHhuX2xpbWJvICpsaW1ibywgdWludDMyX3QgdHlwZSwgaW50NjRfdCBsc24pCj7CoCBpZiAodHhu ID09IE5VTEwpCj7CoCBnb3RvIHJvbGxiYWNrOwo+wqAKPi0gaWYgKHhyb3dfZW5jb2RlX3N5bmNo cm8oJnJvdywgJnR4bi0+cmVnaW9uLCAmcmVxKSAhPSAwKQo+LSBnb3RvIHJvbGxiYWNrOwo+KyB4 cm93X2VuY29kZV9zeW5jaHJvKCZyb3csICZib2R5LCAmcmVxKTsKPisKPsKgIC8qCj7CoCAqIFRo aXMgaXMgbm90IHJlYWxseSBhIHRyYW5zYWN0aW9uLiBJdCBqdXN0IHVzZXMgdHhuIEFQSQo+wqAg KiB0byBwdXQgdGhlIGRhdGEgaW50byBXQUwuIEFuZCBvYnZpb3VzbHkgaXQgc2hvdWxkIG5vdAo+ ZGlmZiAtLWdpdCBhL3NyYy9ib3gveHJvdy5jIGIvc3JjL2JveC94cm93LmMKPmluZGV4IGJmMTc0 YzcwMS4uOWM2ZmI0ZmMxIDEwMDY0NAo+LS0tIGEvc3JjL2JveC94cm93LmMKPisrKyBiL3NyYy9i b3gveHJvdy5jCj5AQCAtODkzLDM1ICs4OTMsMzAgQEAgeHJvd19lbmNvZGVfZG1sKGNvbnN0IHN0 cnVjdCByZXF1ZXN0ICpyZXF1ZXN0LCBzdHJ1Y3QgcmVnaW9uICpyZWdpb24sCj7CoCByZXR1cm4g aW92Y250Owo+wqB9Cj7CoAo+LWludAo+LXhyb3dfZW5jb2RlX3N5bmNocm8oc3RydWN0IHhyb3df aGVhZGVyICpyb3csIHN0cnVjdCByZWdpb24gKnJlZ2lvbiwKPit2b2lkCj4reHJvd19lbmNvZGVf c3luY2hybyhzdHJ1Y3QgeHJvd19oZWFkZXIgKnJvdywKPisgc3RydWN0IHN5bmNocm9fYm9keV9i aW4gKmJvZHksCj7CoCBjb25zdCBzdHJ1Y3Qgc3luY2hyb19yZXF1ZXN0ICpyZXEpCj7CoHsKPi0g c2l6ZV90IGxlbiA9IG1wX3NpemVvZl9tYXAoMikgKyBtcF9zaXplb2ZfdWludChJUFJPVE9fUkVQ TElDQV9JRCkgKwo+LSBtcF9zaXplb2ZfdWludChyZXEtPnJlcGxpY2FfaWQpICsKPi0gbXBfc2l6 ZW9mX3VpbnQoSVBST1RPX0xTTikgKyBtcF9zaXplb2ZfdWludChyZXEtPmxzbik7Cj4tIGNoYXIg KmJ1ZiA9IChjaGFyICopcmVnaW9uX2FsbG9jKHJlZ2lvbiwgbGVuKTsKPi0gaWYgKGJ1ZiA9PSBO VUxMKSB7Cj4tIGRpYWdfc2V0KE91dE9mTWVtb3J5LCBsZW4sICJyZWdpb25fYWxsb2MiLCAiYnVm Iik7Cj4tIHJldHVybiAtMTsKPi0gfQo+LSBjaGFyICpwb3MgPSBidWY7Cj4tCj4tIHBvcyA9IG1w X2VuY29kZV9tYXAocG9zLCAyKTsKPi0gcG9zID0gbXBfZW5jb2RlX3VpbnQocG9zLCBJUFJPVE9f UkVQTElDQV9JRCk7Cj4tIHBvcyA9IG1wX2VuY29kZV91aW50KHBvcywgcmVxLT5yZXBsaWNhX2lk KTsKPi0gcG9zID0gbXBfZW5jb2RlX3VpbnQocG9zLCBJUFJPVE9fTFNOKTsKPi0gcG9zID0gbXBf ZW5jb2RlX3VpbnQocG9zLCByZXEtPmxzbik7Cj4rIC8qCj4rICogQSBtYXAgd2l0aCB0d28gZWxl bWVudHMuIFdlIGRvbid0IGNvbXByZXNzCj4rICogbnVtYmVycyB0byBoYXZlIHRoaXMgc3RydWN0 dXJlIGNvbnN0YW50IGluIHNpemUsCj4rICogd2hpY2ggYWxsb3dzIHVzIHRvIHByZWFsbG9jYXRl IGl0IG9uIHN0YWNrLgo+KyAqLwo+KyBib2R5LT5tX2JvZHkgPSAweDgwIHwgMjsKPisgYm9keS0+ a19yZXBsaWNhX2lkID0gSVBST1RPX1JFUExJQ0FfSUQ7Cj4rIGJvZHktPm1fcmVwbGljYV9pZCA9 IDB4Y2U7Cj4rIGJvZHktPnZfcmVwbGljYV9pZCA9IG1wX2Jzd2FwX3UzMihyZXEtPnJlcGxpY2Ff aWQpOwo+KyBib2R5LT5rX2xzbiA9IElQUk9UT19MU047Cj4rIGJvZHktPm1fbHNuID0gMHhjZjsK PisgYm9keS0+dl9sc24gPSBtcF9ic3dhcF91NjQocmVxLT5sc24pOwo+wqAKPsKgIG1lbXNldChy b3csIDAsIHNpemVvZigqcm93KSk7Cj7CoAo+LSByb3ctPmJvZHlbMF0uaW92X2Jhc2UgPSBidWY7 Cj4tIHJvdy0+Ym9keVswXS5pb3ZfbGVuID0gbGVuOwo+LSByb3ctPmJvZHljbnQgPSAxOwo+LQo+ wqAgcm93LT50eXBlID0gcmVxLT50eXBlOwo+LQo+LSByZXR1cm4gMDsKPisgcm93LT5ib2R5WzBd Lmlvdl9iYXNlID0gKHZvaWQgKilib2R5Owo+KyByb3ctPmJvZHlbMF0uaW92X2xlbiA9IHNpemVv ZigqYm9keSk7Cj4rIHJvdy0+Ym9keWNudCA9IDE7Cj7CoH0KPsKgCj7CoGludAo+ZGlmZiAtLWdp dCBhL3NyYy9ib3gveHJvdy5oIGIvc3JjL2JveC94cm93LmgKPmluZGV4IDAyZGNhNzRlNS4uMjBl ODIwMzRkIDEwMDY0NAo+LS0tIGEvc3JjL2JveC94cm93LmgKPisrKyBiL3NyYy9ib3gveHJvdy5o Cj5AQCAtMjQwLDE2ICsyNDAsMjYgQEAgc3RydWN0IHN5bmNocm9fcmVxdWVzdCB7Cj7CoCBpbnQ2 NF90IGxzbjsKPsKgfTsKPsKgCj4rLyoqIFN5bmNocm8gcmVxdWVzdCB4cm93J3MgYm9keSBpbiBN c2dQYWNrIGZvcm1hdC4gKi8KPitzdHJ1Y3QgUEFDS0VEIHN5bmNocm9fYm9keV9iaW4gewo+KyB1 aW50OF90IG1fYm9keTsKPisgdWludDhfdCBrX3JlcGxpY2FfaWQ7Cj4rIHVpbnQ4X3QgbV9yZXBs aWNhX2lkOwo+KyB1aW50MzJfdCB2X3JlcGxpY2FfaWQ7Cj4rIHVpbnQ4X3Qga19sc247Cj4rIHVp bnQ4X3QgbV9sc247Cj4rIHVpbnQ2NF90IHZfbHNuOwo+K307Cj4rCj7CoC8qKgo+wqDCoCogRW5j b2RlIHN5bmNocm9ub3VzIHJlcGxpY2F0aW9uIHJlcXVlc3QuCj7CoMKgKiBAcGFyYW0gcm93IHhy b3cgaGVhZGVyLgo+LSAqIEBwYXJhbSByZWdpb24gUmVnaW9uIHRvIHVzZSB0byBlbmNvZGUgdGhl IGNvbmZpcm1hdGlvbiBib2R5Lgo+KyAqIEBwYXJhbSBib2R5IERlc2luYXRpb24gdG8gdXNlIHRv IGVuY29kZSB0aGUgY29uZmlybWF0aW9uIGJvZHkuCj7CoMKgKiBAcGFyYW0gcmVxIFJlcXVlc3Qg cGFyYW1ldGVycy4KPi0gKiBAcmV0dmFsIC0xIG9uIGVycm9yLgo+LSAqIEByZXR2YWwgMCBzdWNj ZXNzLgo+wqDCoCovCj4taW50Cj4teHJvd19lbmNvZGVfc3luY2hybyhzdHJ1Y3QgeHJvd19oZWFk ZXIgKnJvdywgc3RydWN0IHJlZ2lvbiAqcmVnaW9uLAo+K3ZvaWQKPit4cm93X2VuY29kZV9zeW5j aHJvKHN0cnVjdCB4cm93X2hlYWRlciAqcm93LAo+KyBzdHJ1Y3Qgc3luY2hyb19ib2R5X2JpbiAq Ym9keSwKPsKgIGNvbnN0IHN0cnVjdCBzeW5jaHJvX3JlcXVlc3QgKnJlcSk7Cj7CoAo+wqAvKioK Pi0tCj4yLjI2LjIKPsKgCi0tClNlcmdlwqBQZXRyZW5rbw== ----ALT--3e883DbA76B94F0239BefC8728cE239b1597997744 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+TEdUTS48L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+Jm5ic3A7 PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBt YXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+0KfQtdGC0LLQtdGA0LMsIDIwINCw0LLQ s9GD0YHRgtCwIDIwMjAsIDA6MzUgKzAzOjAwINC+0YIgQ3lyaWxsIEdvcmN1bm92ICZsdDtnb3Jj dW5vdkBnbWFpbC5jb20mZ3Q7Ojxicj4mbmJzcDs8ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhl bHBlciBqcy1yZWFkbXNnLW1zZyI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjxkaXY+ PGRpdiBpZD0ic3R5bGVfMTU5Nzg3MjkzNzA1ODY3ODcyODRfQk9EWSI+VGhlc2UgbXNncGFjayBl bnRyaWVzIHdpbGwgYmUgbmVlZGVkIHRvIHdyaXRlIHRoZW08YnI+ZG93biB0byBhIGpvdXJuYWwg d2l0aG91dCBpbnZvbHZpbmcgdHhuIGVuZ2luZS4gU2FtZTxicj50aW1lIHdlIHdvdWxkIGxpa2Ug dG8gYmUgYWJsZSB0byBhbGxvY2F0ZSB0aGVtIG9uIHN0YWNrLDxicj5mb3IgdGhpcyBzYWtlIHRo ZSBiaW5hcnkgZm9ybSBpcyBwcmVkZWZpbmVkLjxicj48YnI+UGFydC1vZiAjNTEyOTxicj48YnI+ U2lnbmVkLW9mZi1ieTogQ3lyaWxsIEdvcmN1bm92ICZsdDs8YSBocmVmPSIvY29tcG9zZT9Ubz1n b3JjdW5vdkBnbWFpbC5jb20iPmdvcmN1bm92QGdtYWlsLmNvbTwvYT4mZ3Q7PGJyPi0tLTxicj4m bmJzcDtzcmMvYm94L3R4bl9saW1iby5jIHwgOSArKysrKysrLS08YnI+Jm5ic3A7c3JjL2JveC94 cm93LmMgfCA0MSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4m bmJzcDtzcmMvYm94L3hyb3cuaCB8IDIwICsrKysrKysrKysrKysrKy0tLS0tPGJyPiZuYnNwOzMg ZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pPGJyPjxicj5k aWZmIC0tZ2l0IGEvc3JjL2JveC90eG5fbGltYm8uYyBiL3NyYy9ib3gvdHhuX2xpbWJvLmM8YnI+ aW5kZXggYzZhNGU1ZWZjLi5lNDU4ZGFkNzUgMTAwNjQ0PGJyPi0tLSBhL3NyYy9ib3gvdHhuX2xp bWJvLmM8YnI+KysrIGIvc3JjL2JveC90eG5fbGltYm8uYzxicj5AQCAtMjgzLDYgKzI4MywxMSBA QCB0eG5fbGltYm9fd3JpdGVfc3luY2hybyhzdHJ1Y3QgdHhuX2xpbWJvICpsaW1ibywgdWludDMy X3QgdHlwZSwgaW50NjRfdCBsc24pPGJyPiZuYnNwOyAubHNuID0gbHNuLDxicj4mbmJzcDsgfTs8 YnI+Jm5ic3A7PGJyPisgLyo8YnI+KyAqIFRoaXMgaXMgYSBzeW5jaHJvbm91cyBjb21taXQgc28g d2UgY2FuPGJyPisgKiB1c2UgYm9keSBhbmQgcm93IGFsbG9jYXRlZCBvbiBhIHN0YWNrLjxicj4r ICovPGJyPisgc3RydWN0IHN5bmNocm9fYm9keV9iaW4gYm9keTs8YnI+Jm5ic3A7IHN0cnVjdCB4 cm93X2hlYWRlciByb3c7PGJyPiZuYnNwOyBzdHJ1Y3QgcmVxdWVzdCByZXF1ZXN0ID0gezxicj4m bmJzcDsgLmhlYWRlciA9ICZhbXA7cm93LDxicj5AQCAtMjkyLDggKzI5Nyw4IEBAIHR4bl9saW1i b193cml0ZV9zeW5jaHJvKHN0cnVjdCB0eG5fbGltYm8gKmxpbWJvLCB1aW50MzJfdCB0eXBlLCBp bnQ2NF90IGxzbik8YnI+Jm5ic3A7IGlmICh0eG4gPT0gTlVMTCk8YnI+Jm5ic3A7IGdvdG8gcm9s bGJhY2s7PGJyPiZuYnNwOzxicj4tIGlmICh4cm93X2VuY29kZV9zeW5jaHJvKCZhbXA7cm93LCAm YW1wO3R4bi0mZ3Q7cmVnaW9uLCAmYW1wO3JlcSkgIT0gMCk8YnI+LSBnb3RvIHJvbGxiYWNrOzxi cj4rIHhyb3dfZW5jb2RlX3N5bmNocm8oJmFtcDtyb3csICZhbXA7Ym9keSwgJmFtcDtyZXEpOzxi cj4rPGJyPiZuYnNwOyAvKjxicj4mbmJzcDsgKiBUaGlzIGlzIG5vdCByZWFsbHkgYSB0cmFuc2Fj dGlvbi4gSXQganVzdCB1c2VzIHR4biBBUEk8YnI+Jm5ic3A7ICogdG8gcHV0IHRoZSBkYXRhIGlu dG8gV0FMLiBBbmQgb2J2aW91c2x5IGl0IHNob3VsZCBub3Q8YnI+ZGlmZiAtLWdpdCBhL3NyYy9i b3gveHJvdy5jIGIvc3JjL2JveC94cm93LmM8YnI+aW5kZXggYmYxNzRjNzAxLi45YzZmYjRmYzEg MTAwNjQ0PGJyPi0tLSBhL3NyYy9ib3gveHJvdy5jPGJyPisrKyBiL3NyYy9ib3gveHJvdy5jPGJy PkBAIC04OTMsMzUgKzg5MywzMCBAQCB4cm93X2VuY29kZV9kbWwoY29uc3Qgc3RydWN0IHJlcXVl c3QgKnJlcXVlc3QsIHN0cnVjdCByZWdpb24gKnJlZ2lvbiw8YnI+Jm5ic3A7IHJldHVybiBpb3Zj bnQ7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi1pbnQ8YnI+LXhyb3dfZW5jb2RlX3N5bmNocm8o c3RydWN0IHhyb3dfaGVhZGVyICpyb3csIHN0cnVjdCByZWdpb24gKnJlZ2lvbiw8YnI+K3ZvaWQ8 YnI+K3hyb3dfZW5jb2RlX3N5bmNocm8oc3RydWN0IHhyb3dfaGVhZGVyICpyb3csPGJyPisgc3Ry dWN0IHN5bmNocm9fYm9keV9iaW4gKmJvZHksPGJyPiZuYnNwOyBjb25zdCBzdHJ1Y3Qgc3luY2hy b19yZXF1ZXN0ICpyZXEpPGJyPiZuYnNwO3s8YnI+LSBzaXplX3QgbGVuID0gbXBfc2l6ZW9mX21h cCgyKSArIG1wX3NpemVvZl91aW50KElQUk9UT19SRVBMSUNBX0lEKSArPGJyPi0gbXBfc2l6ZW9m X3VpbnQocmVxLSZndDtyZXBsaWNhX2lkKSArPGJyPi0gbXBfc2l6ZW9mX3VpbnQoSVBST1RPX0xT TikgKyBtcF9zaXplb2ZfdWludChyZXEtJmd0O2xzbik7PGJyPi0gY2hhciAqYnVmID0gKGNoYXIg KilyZWdpb25fYWxsb2MocmVnaW9uLCBsZW4pOzxicj4tIGlmIChidWYgPT0gTlVMTCkgezxicj4t IGRpYWdfc2V0KE91dE9mTWVtb3J5LCBsZW4sICJyZWdpb25fYWxsb2MiLCAiYnVmIik7PGJyPi0g cmV0dXJuIC0xOzxicj4tIH08YnI+LSBjaGFyICpwb3MgPSBidWY7PGJyPi08YnI+LSBwb3MgPSBt cF9lbmNvZGVfbWFwKHBvcywgMik7PGJyPi0gcG9zID0gbXBfZW5jb2RlX3VpbnQocG9zLCBJUFJP VE9fUkVQTElDQV9JRCk7PGJyPi0gcG9zID0gbXBfZW5jb2RlX3VpbnQocG9zLCByZXEtJmd0O3Jl cGxpY2FfaWQpOzxicj4tIHBvcyA9IG1wX2VuY29kZV91aW50KHBvcywgSVBST1RPX0xTTik7PGJy Pi0gcG9zID0gbXBfZW5jb2RlX3VpbnQocG9zLCByZXEtJmd0O2xzbik7PGJyPisgLyo8YnI+KyAq IEEgbWFwIHdpdGggdHdvIGVsZW1lbnRzLiBXZSBkb24ndCBjb21wcmVzczxicj4rICogbnVtYmVy cyB0byBoYXZlIHRoaXMgc3RydWN0dXJlIGNvbnN0YW50IGluIHNpemUsPGJyPisgKiB3aGljaCBh bGxvd3MgdXMgdG8gcHJlYWxsb2NhdGUgaXQgb24gc3RhY2suPGJyPisgKi88YnI+KyBib2R5LSZn dDttX2JvZHkgPSAweDgwIHwgMjs8YnI+KyBib2R5LSZndDtrX3JlcGxpY2FfaWQgPSBJUFJPVE9f UkVQTElDQV9JRDs8YnI+KyBib2R5LSZndDttX3JlcGxpY2FfaWQgPSAweGNlOzxicj4rIGJvZHkt Jmd0O3ZfcmVwbGljYV9pZCA9IG1wX2Jzd2FwX3UzMihyZXEtJmd0O3JlcGxpY2FfaWQpOzxicj4r IGJvZHktJmd0O2tfbHNuID0gSVBST1RPX0xTTjs8YnI+KyBib2R5LSZndDttX2xzbiA9IDB4Y2Y7 PGJyPisgYm9keS0mZ3Q7dl9sc24gPSBtcF9ic3dhcF91NjQocmVxLSZndDtsc24pOzxicj4mbmJz cDs8YnI+Jm5ic3A7IG1lbXNldChyb3csIDAsIHNpemVvZigqcm93KSk7PGJyPiZuYnNwOzxicj4t IHJvdy0mZ3Q7Ym9keVswXS5pb3ZfYmFzZSA9IGJ1Zjs8YnI+LSByb3ctJmd0O2JvZHlbMF0uaW92 X2xlbiA9IGxlbjs8YnI+LSByb3ctJmd0O2JvZHljbnQgPSAxOzxicj4tPGJyPiZuYnNwOyByb3ct Jmd0O3R5cGUgPSByZXEtJmd0O3R5cGU7PGJyPi08YnI+LSByZXR1cm4gMDs8YnI+KyByb3ctJmd0 O2JvZHlbMF0uaW92X2Jhc2UgPSAodm9pZCAqKWJvZHk7PGJyPisgcm93LSZndDtib2R5WzBdLmlv dl9sZW4gPSBzaXplb2YoKmJvZHkpOzxicj4rIHJvdy0mZ3Q7Ym9keWNudCA9IDE7PGJyPiZuYnNw O308YnI+Jm5ic3A7PGJyPiZuYnNwO2ludDxicj5kaWZmIC0tZ2l0IGEvc3JjL2JveC94cm93Lmgg Yi9zcmMvYm94L3hyb3cuaDxicj5pbmRleCAwMmRjYTc0ZTUuLjIwZTgyMDM0ZCAxMDA2NDQ8YnI+ LS0tIGEvc3JjL2JveC94cm93Lmg8YnI+KysrIGIvc3JjL2JveC94cm93Lmg8YnI+QEAgLTI0MCwx NiArMjQwLDI2IEBAIHN0cnVjdCBzeW5jaHJvX3JlcXVlc3Qgezxicj4mbmJzcDsgaW50NjRfdCBs c247PGJyPiZuYnNwO307PGJyPiZuYnNwOzxicj4rLyoqIFN5bmNocm8gcmVxdWVzdCB4cm93J3Mg Ym9keSBpbiBNc2dQYWNrIGZvcm1hdC4gKi88YnI+K3N0cnVjdCBQQUNLRUQgc3luY2hyb19ib2R5 X2JpbiB7PGJyPisgdWludDhfdCBtX2JvZHk7PGJyPisgdWludDhfdCBrX3JlcGxpY2FfaWQ7PGJy PisgdWludDhfdCBtX3JlcGxpY2FfaWQ7PGJyPisgdWludDMyX3Qgdl9yZXBsaWNhX2lkOzxicj4r IHVpbnQ4X3Qga19sc247PGJyPisgdWludDhfdCBtX2xzbjs8YnI+KyB1aW50NjRfdCB2X2xzbjs8 YnI+K307PGJyPis8YnI+Jm5ic3A7LyoqPGJyPiZuYnNwOyZuYnNwOyogRW5jb2RlIHN5bmNocm9u b3VzIHJlcGxpY2F0aW9uIHJlcXVlc3QuPGJyPiZuYnNwOyZuYnNwOyogQHBhcmFtIHJvdyB4cm93 IGhlYWRlci48YnI+LSAqIEBwYXJhbSByZWdpb24gUmVnaW9uIHRvIHVzZSB0byBlbmNvZGUgdGhl IGNvbmZpcm1hdGlvbiBib2R5Ljxicj4rICogQHBhcmFtIGJvZHkgRGVzaW5hdGlvbiB0byB1c2Ug dG8gZW5jb2RlIHRoZSBjb25maXJtYXRpb24gYm9keS48YnI+Jm5ic3A7Jm5ic3A7KiBAcGFyYW0g cmVxIFJlcXVlc3QgcGFyYW1ldGVycy48YnI+LSAqIEByZXR2YWwgLTEgb24gZXJyb3IuPGJyPi0g KiBAcmV0dmFsIDAgc3VjY2Vzcy48YnI+Jm5ic3A7Jm5ic3A7Ki88YnI+LWludDxicj4teHJvd19l bmNvZGVfc3luY2hybyhzdHJ1Y3QgeHJvd19oZWFkZXIgKnJvdywgc3RydWN0IHJlZ2lvbiAqcmVn aW9uLDxicj4rdm9pZDxicj4reHJvd19lbmNvZGVfc3luY2hybyhzdHJ1Y3QgeHJvd19oZWFkZXIg KnJvdyw8YnI+KyBzdHJ1Y3Qgc3luY2hyb19ib2R5X2JpbiAqYm9keSw8YnI+Jm5ic3A7IGNvbnN0 IHN0cnVjdCBzeW5jaHJvX3JlcXVlc3QgKnJlcSk7PGJyPiZuYnNwOzxicj4mbmJzcDsvKio8YnI+ LS08YnI+Mi4yNi4yPGJyPiZuYnNwOzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90 ZT48ZGl2Pi0tPGJyPlNlcmdlJm5ic3A7UGV0cmVua288L2Rpdj48L0JPRFk+PC9IVE1MPgo= ----ALT--3e883DbA76B94F0239BefC8728cE239b1597997744--