From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 5DDCC462188; Mon, 15 May 2023 15:05:16 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 5DDCC462188 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1684152316; bh=EwqKnV43xKm2J/9cp2aNBNykw5uq44R00gUUillsbnk=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=skCdibk8U8iX+RNXFD/KMmuzOyaQtOxp4eHDNzU5XLZ6KJOT45XTP8fkW6Kc4obHj uAPE43bkHw05+G3009E4rvgJO4+iGt7lpFVGd1CI4rMAgwApmCXdNj3NRVfJCvp2aM UYlsksv8Ts4TLZdiBxU8MIkIkGzMynaOUFdI7ORk= Received: from f170.i.mail.ru (f170.i.mail.ru [45.84.128.75]) (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 01E05461D0B for ; Mon, 15 May 2023 15:05:15 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 01E05461D0B Received: from [185.6.245.156] (ident=mail) by f170.i.mail.ru with local (envelope-from ) id 1pyWwz-0006R8-Hf; Mon, 15 May 2023 15:05:13 +0300 Received: by e.mail.ru with HTTP; Mon, 15 May 2023 15:05:13 +0300 To: =?UTF-8?B?U2VyZ2V5IEthcGx1bg==?= MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-SenderField-ReMsg: 16837223450282789850 X-SenderField-Remind: 0 Date: Mon, 15 May 2023 15:05:13 +0300 X-Priority: 3 (Normal) Message-ID: <1684152313.987316030@f170.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--3b697129eD34646AAd5E4C5d8C2357b41684152313" In-Reply-To: References: X-7564579A: EEAE043A70213CC8 X-77F55803: 119C1F4DF6A9251C8CE16C890F2CF5BBE8662FE4AE99A4CB1A59304A6879106E8FD872164937FA4C4C228DA9ACA6FE2754F0AF9728C5AE27F3777D1826597AB27F6B835B0F7DB92A785B9932B5CC33AC X-C8649E89: 1C3962B70DF3F0AD5177F0B940C8B66ECE892A7B2722663E91682638B966EB3F662256BEEFA9527FE4A8E88A4BF2610917B4941D42602EB9644EBD356716E044BE6E0187F90759225BF9BA03CDFB1B3E37FD76D11AF80A0D569F7591D000480D0EA5B2DEF54B356CEA455F16B58544A26220462FF7A38676 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5+wYjsrrSY/u8Y3PrTqANeitKFiSd6Yd7yPpbiiZ/d5BsxIjK0jGQgCHUM3Ry2Lt2G3MDkMauH3h0dBdQGj+BB/iPzQYh7XS329fgu+/vnDh+EwmbFUn5RE8AJiNMcv2Fg== X-Mailru-MI: 800 X-Mailru-Sender: 11C2EC085EDE56FA38FD4C59F7EFE407F3E02FBAA2642C827530520652D072F95F8175B0D15E9DA806CD02445D2D9C8FA2BFD6D8330F0C2D563E610FBBDBB4C842051EA7CBBFB509093DA5C00B83CE8412EB40C6FA10D71EFD657A8799238ED55FEEDEB644C299C0ED14614B50AE0675 X-Mras: OK Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_luajit_2/2=5D_Fix_canonic?= =?utf-8?q?alization_of_+-0=2E0_keys_for_IR=5FNEWREF=2E?= X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Maxim Kokryashkin via Tarantool-patches Reply-To: =?UTF-8?B?TWF4aW0gS29rcnlhc2hraW4=?= Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--3b697129eD34646AAd5E4C5d8C2357b41684152313 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpLCBTZXJnZXkhClRoYW5rcyBmb3IgdGhlIHBhdGNoIQpMR1RNLCBleGNlcHQgZm9yIGEgZmV3 IG5pdHMgcmVnYXJkaW5nIHRoZSBjb21taXQgbWVzc2FnZS4KwqAKPsKgCj4+RnJvbTogTWlrZSBQ YWxsIDxtaWtlPgo+Pgo+PlJlcG9ydGVkIGJ5IFNlcmdleSBLYXBsdW4uCj4+Cj4+KGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgOTZmYzExNGE3YTNiZTNmZDJjMjI3ZDVhMGFjNTNhYTUwY2ZiODVk MSkKPj4KPj5UaGlzIGNvbW1pdCBpcyBhIGZvbGxvdy11cCBmb3IgdGhlIGNvbW1pdAo+PmYwNjdj ZjYzOGNmODk4N2FiM2I2ZGIzNzJkNjA5YTU5ODJlNDU4YjUgKCJGaXggbmFycm93aW5nIG9mIHVu YXJ5Cj4+bWludXMuIikuIFNpbmNlIHRoaXMgY29tbWl0IC0wIElSIGNvbnN0YW50IGlzIHN0b3Jl ZCBhcyB3ZWxsIGFzICswCj5UeXBvOiBzL2FzIHdlbGwgYXMvYXMgd2VsbCBhcyB0aGUvCj4+Y29u c3RhbnQgb24gdGhlIHRyYWNlLiBTaW5jZSBJUiBORVdSRUYga2V5cyBkb24ndCBjYW5vbmljYWxp emllZCBmb3IgLTAKPlR5cG86IHMvZG9u4oCZdCBjYW5vbmljYWxpemVkL2RvbuKAmXQgZ2V0IGNh bm9uaWNhbGl6ZWQvCj4+b3Bwb3NlZCBvZiBJUiBIUkVGSywgaXQgbWF5IGxlYWQgdG8gaW5jb25z aXN0ZW5jaWVzIGR1cmluZyB0cmFjZQo+VHlwbzogcy9vcHBvc2VkIG9mL2FzIG9wcG9zZWQgdG8v Cj4+cmVjb3JkaW5nLgo+Pgo+PkluIHBhcnRpY3VsYXIsIHNpbmNlIC0wIGFuZCAwIGFyZSBkaWZm ZXJlbnQgSVIgY29uc3RhbnRzLCBhbGlhcyBhbmFseXNpcwo+PmRlY2xhcmVzIHRoYXQgdGhleSBj YW4ndCBiZSBhbGlhc2VkIGR1cmluZyBmb2xkaW5nIG9wdGltaXphdGlvbi4KPj5UaGVyZWZvcmU6 Cj4+MSkgRm9yIHRoZSBJUiBUTkVXIHdlIGhhdmUgbm9uLW5pbCB2YWx1ZSB0byBsb29rdXAgZnJv bSB0aGUgdGFibGUgdmlhCj4+wqDCoMKgSExPQUQsIHdoZW4gb25seSBuaWwgbG9va3VwIGlzIGV4 cGVjdGVkIGR1ZSB0byBhbGlhcyBhbmFseXNpcy4KPj4yKSBGb3IgdGhlIElSIFREVVAgd2UgaGF2 ZSBub24tbmlsIHZhbHVlIHRvIGxvb2t1cCBmcm9tIHRoZSB0YWJsZSB2aWEKPj7CoMKgwqBITE9B RCwgYnV0IHRoZSB0ZW1wbGF0ZSB0YWJsZSBoYXMgbm8gMCBmaWVsZCBpbml0aWF0ZWQgYXMgZmFy IGFzIC0wCj4+wqDCoMKgaXNuJ3QgZm9sZGluZyB0byAwIGR1cmluZyBwYXJzaW5nIChzZWUgYGJj ZW1pdF91bm9wKClgIGluCj4+wqDCoMKgPHNyYy9sal9wYXJzZS5jPikuCj4+VGhlc2UgY2FzZXMg bGVhZCB0byB0aGUgYXNzZXJ0aW9uIGZhaWx1cmVzIGluIGBmd2RfYWhsb2FkKClgLgo+VHlwbzog cy90aGUgYXNzZXJ0aW9uL2Fzc2VydGlvbi8KPj4KPj5UaGlzIHBhdGNoIGFkZHMgdGhlIGFmb3Jl bWVudGlvbmVkIGNhbm9uaWNhbGl6YXRpb24uCj4+Cj4+U2VyZ2V5IEJyb25uaWtvdjoKPj4qIHJl cG9ydGVkIHRoZSBvcmlnaW5hbCBpc3N1ZSBmb3IgdGhlIFREVVAgSVIKPj4KPj5TZXJnZXkgS2Fw bHVuOgo+PiogYWRkZWQgdGhlIGRlc2NyaXB0aW9uIGFuZCB0aGUgdGVzdCBmb3IgdGhlIHByb2Js ZW0KPj4KPj5QYXJ0IG9mIHRhcmFudG9vbC90YXJhbnRvb2wjODUxNgo+Pi0tLQo+Pgo+PlNpZGUg bm90ZTogSSBkb24ndCBtZW50aW9uIHRoZSA5ODEgaXNzdWUgYnkgaW50ZW5kIC0tIEkgZG9uJ3Qg d2FudCB0bwo+PmJvdGhlciBNaWtlIHdpdGggZm9yY2UgcHVzaGVzOikuIEkgc3VwcG9zZSBJZ29y IHNob3VsZCBhZGQgdGhpcyBsaW5lIChpZgo+PmhlIHdhbnRzKSB3ZW50IHRoaXMgY29tbWl0IHdp bGwgYmUgY2hlcnJ5LXBpY2tlZCB0byBvdXIgbWFzdGVyIGJyYW5jaAo+PihhLmsuYS4gdGFyYW50 b29sKS4KPj4KPj7CoHNyYy9sal9yZWNvcmQuYyB8IDIgKwo+PsKgLi4uL3RhcmFudG9vbC10ZXN0 cy9sai05ODEtZm9sZGluZy0wLnRlc3QubHVhIHwgNTcgKysrKysrKysrKysrKysrKysrKwo+PsKg MiBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspCj4+wqBjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdC90YXJhbnRvb2wtdGVzdHMvbGotOTgxLWZvbGRpbmctMC50ZXN0Lmx1YQo+Pgo+PmRpZmYg LS1naXQgYS9zcmMvbGpfcmVjb3JkLmMgYi9zcmMvbGpfcmVjb3JkLmMKPj5pbmRleCA5ZTJlMWQ5 ZS4uY2M0NGRiOGQgMTAwNjQ0Cj4+LS0tIGEvc3JjL2xqX3JlY29yZC5jCj4+KysrIGIvc3JjL2xq X3JlY29yZC5jCj4+QEAgLTE0NzQsNiArMTQ3NCw4IEBAIFRSZWYgbGpfcmVjb3JkX2lkeChqaXRf U3RhdGUgKkosIFJlY29yZEluZGV4ICppeCkKPj7CoCBUUmVmIGtleSA9IGl4LT5rZXk7Cj4+wqAg aWYgKHRyZWZfaXNpbnRlZ2VyKGtleSkpIC8qIE5FV1JFRiBuZWVkcyBhIFRWYWx1ZSBhcyBhIGtl eS4gKi8KPj7CoCBrZXkgPSBlbWl0aXIoSVJUTihJUl9DT05WKSwga2V5LCBJUkNPTlZfTlVNX0lO VCk7Cj4+KyBlbHNlIGlmICh0cmVmX2lzbnVtYmVyKGtleSkgJiYgdHJlZl9pc2soa2V5KSAmJiB0 dmlzbXplcm8oJml4LT5rZXl2KSkKPj4rIGtleSA9IGxqX2lyX2tudW1femVybyhKKTsgLyogQ2Fu b25pY2FsaXplIC0wLjAgdG8gKzAuMC4gKi8KPj7CoCB4cmVmID0gZW1pdGlyKElSVChJUl9ORVdS RUYsIElSVF9QR0MpLCBpeC0+dGFiLCBrZXkpOwo+PsKgIGtleWJhcnJpZXIgPSAwOyAvKiBORVdS RUYgYWxyZWFkeSB0YWtlcyBjYXJlIG9mIHRoZSBrZXkgYmFycmllci4gKi8KPj7CoCNpZmRlZiBM VUFKSVRfRU5BQkxFX1RBQkxFX0JVTVAKPj5kaWZmIC0tZ2l0IGEvdGVzdC90YXJhbnRvb2wtdGVz dHMvbGotOTgxLWZvbGRpbmctMC50ZXN0Lmx1YSBiL3Rlc3QvdGFyYW50b29sLXRlc3RzL2xqLTk4 MS1mb2xkaW5nLTAudGVzdC5sdWEKPj5uZXcgZmlsZSBtb2RlIDEwMDY0NAo+PmluZGV4IDAwMDAw MDAwLi4yNTFkYTI0ZAo+Pi0tLSAvZGV2L251bGwKPj4rKysgYi90ZXN0L3RhcmFudG9vbC10ZXN0 cy9sai05ODEtZm9sZGluZy0wLnRlc3QubHVhCj4+QEAgLTAsMCArMSw1NyBAQAo+Pitsb2NhbCB0 YXAgPSByZXF1aXJlKCd0YXAnKQo+Pitsb2NhbCB0ZXN0ID0gdGFwLnRlc3QoJ2xqLTk4MS1mb2xk aW5nLTAnKTpza2lwY29uZCh7Cj4+KyBbJ1Rlc3QgcmVxdWlyZXMgSklUIGVuYWJsZWQnXSA9IG5v dCBqaXQuc3RhdHVzKCksCj4+KyBbJ0Rpc2FibGVkIG9uICpCU0QgZHVlIHRvICM0ODE5J10gPSBq aXQub3MgPT0gJ0JTRCcsCj4+K30pCj4+Kwo+PistLSBUZXN0IGZpbGUgdG8gZGVtb25zdHJhdGUg THVhSklUIG1pc2JlaGF2aW91ciBvbiBsb2FkIGZvcndhcmRpbmcKPj4rLS0gZm9yIC0wIElSIGNv bnN0YW50IGFzIHRhYmxlIGluZGV4Lgo+PistLSBTZWUgYWxzbywgIGh0dHBzOi8vZ2l0aHViLmNv bS9MdWFKSVQvTHVhSklUL2lzc3Vlcy85ODEgLgo+PisKPj4rbG9jYWwganBhcnNlID0gcmVxdWly ZSgndXRpbHMuaml0X3BhcnNlJykKPj4rCj4+K2ppdC5vcHQuc3RhcnQoJ2hvdGxvb3A9MScpCj4+ Kwo+Pit0ZXN0OnBsYW4oNCkKPj4rCj4+Ky0tIFJlc2V0IHRyYWNlcy4KPj4raml0LmZsdXNoKCkK Pj4rCj4+K2pwYXJzZS5zdGFydCgnaScpCj4+K2xvY2FsIHJlc3VsdAo+Pitsb2NhbCBleHBlY3Rl ZCA9ICdyZXN1bHQnCj4+Ky0tIFRORVc6Cj4+Ky0tIC0wIGlzbid0IGZvbGRlZCBkdXJpbmcgcGFy c2luZywgc28gaXQgd2lsbCBiZSBzZXQgd2l0aCBLU0hPUlQsCj4+Ky0tIFVOTSBieXRlY29kZXMu IFNlZSA8c3JjL2xqX3BhcnNlLmM+IGFuZCBieXRlY29kZSBsaXN0aW5nCj4+Ky0tIGZvciBkZXRh aWxzLgo+PistLSBCZWNhdXNlIG9mIGl0LCBlbXB0eSB0YWJsZSBpcyBjcmVhdGVkIHZpYSBUTkVX Lgo+Pitmb3IgXyA9IDEsIDQgZG8KPj4rIHJlc3VsdCA9ICh7Wy0wXSA9IGV4cGVjdGVkfSlbMF0K Pj4rZW5kCj4+Kwo+Pitsb2NhbCB0cmFjZXMgPSBqcGFyc2UuZmluaXNoKCkKPj4rCj4+Ky0tIFRl c3QgdGhhdCB0aGVyZSBpcyBubyBhbnkgYXNzZXJ0aW9uIGZhaWx1cmUuCj4+K3Rlc3Q6b2socmVz dWx0ID09IGV4cGVjdGVkLCAnVE5FVyBhbmQgLTAgZm9sZGluZycpCj4+Ky0tIFRlc3QgdGhhdCB0 aGVyZSBpcyBubyBORVdSRUYgLTAgSVIuCj4+K3Rlc3Q6b2sobm90IHRyYWNlc1sxXTpoYXNfaXIo J05FV1JFRi4qLTAnKSwgJy0wIGlzIGNhbm9uaXplZCBmb3IgVE5FVyB0YWInKQo+PisKPj4rLS0g UmVzZXQgdHJhY2VzLgo+PitqaXQuZmx1c2goKQo+PisKPj4ranBhcnNlLnN0YXJ0KCdpJykKPj4r LS0gVERVUDoKPj4rLS0gTm93IGp1c3QgYWRkIGEgY29uc3RhbnQgZmllbGQgZm9yIHRoZSB0YWJs ZSB0byB1c2UgVERVUCB3aXRoCj4+Ky0tIHRlbXBsYXRlIHRhYmxlIGluc3RlYWQgVE5FVyBiZWZv cmUgLTAgaXMgc2V0Lgo+Pitmb3IgXyA9IDEsIDQgZG8KPj4rIHJlc3VsdCA9ICh7Wy0wXSA9IGV4 cGVjdGVkLCBbMV0gPSAxfSlbMF0KPj4rZW5kCj4+Kwo+Pit0cmFjZXMgPSBqcGFyc2UuZmluaXNo KCkKPj4rCj4+Ky0tIFRlc3QgdGhhdCB0aGVyZSBpcyBubyBhbnkgYXNzZXJ0aW9uIGZhaWx1cmUu Cj4+K3Rlc3Q6b2socmVzdWx0ID09IGV4cGVjdGVkLCAnVERVUCBhbmQgLTAgZm9sZGluZycpCj4+ Ky0tIFRlc3QgdGhhdCB0aGVyZSBpcyBubyBORVdSRUYgLTAgSVIuCj4+K3Rlc3Q6b2sobm90IHRy YWNlc1sxXTpoYXNfaXIoJ05FV1JFRi4qLTAnKSwgJy0wIGlzIGNhbm9uaXplZCBmb3IgVERVUCB0 YWInKQo+PisKPj4rb3MuZXhpdCh0ZXN0OmNoZWNrKCkgYW5kIDAgb3IgMSkKPj4tLQo+PjIuMzQu MQo+LS0KPkJlc3QgcmVnYXJkcywKPk1heGltIEtva3J5YXNoa2lu ----ALT--3b697129eD34646AAd5E4C5d8C2357b41684152313 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGksIFNlcmdleSE8L2Rpdj48ZGl2PlRoYW5rcyBmb3IgdGhlIHBh dGNoITwvZGl2PjxkaXY+TEdUTSwgZXhjZXB0IGZvciBhIGZldyBuaXRzIHJlZ2FyZGluZyB0aGUg Y29tbWl0IG1lc3NhZ2UuPC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0i Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAw IDEwcHg7Ij48ZGl2PiZuYnNwOzxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29s aWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXYgaWQ9IiI+ PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxl XzE2ODM3MjIzNDUwMjgyNzg5ODUwX0JPRFkiPkZyb206IE1pa2UgUGFsbCAmbHQ7bWlrZSZndDs8 YnI+PGJyPlJlcG9ydGVkIGJ5IFNlcmdleSBLYXBsdW4uPGJyPjxicj4oY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCA5NmZjMTE0YTdhM2JlM2ZkMmMyMjdkNWEwYWM1M2FhNTBjZmI4NWQxKTxicj48 YnI+VGhpcyBjb21taXQgaXMgYSBmb2xsb3ctdXAgZm9yIHRoZSBjb21taXQ8YnI+ZjA2N2NmNjM4 Y2Y4OTg3YWIzYjZkYjM3MmQ2MDlhNTk4MmU0NThiNSAoIkZpeCBuYXJyb3dpbmcgb2YgdW5hcnk8 YnI+bWludXMuIikuIFNpbmNlIHRoaXMgY29tbWl0IC0wIElSIGNvbnN0YW50IGlzIHN0b3JlZCBh cyB3ZWxsIGFzICswPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VHlw bzogcy9hcyB3ZWxsIGFzL2FzIHdlbGwgYXMgdGhlLzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJi b3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAg MTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2Pjxk aXY+Y29uc3RhbnQgb24gdGhlIHRyYWNlLiBTaW5jZSBJUiBORVdSRUYga2V5cyBkb24ndCBjYW5v bmljYWxpemllZCBmb3IgLTA8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRp dj5UeXBvOiBzL2RvbuKAmXQgY2Fub25pY2FsaXplZC9kb27igJl0IGdldCBjYW5vbmljYWxpemVk LzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsg bWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVs cGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+b3Bwb3NlZCBvZiBJUiBIUkVGSywgaXQgbWF5 IGxlYWQgdG8gaW5jb25zaXN0ZW5jaWVzIGR1cmluZyB0cmFjZTwvZGl2PjwvZGl2PjwvZGl2Pjwv ZGl2PjwvYmxvY2txdW90ZT48ZGl2PlR5cG86IHMvb3Bwb3NlZCBvZi9hcyBvcHBvc2VkIHRvLzwv ZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFy Z2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVy IGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+cmVjb3JkaW5nLjxicj48YnI+SW4gcGFydGljdWxh ciwgc2luY2UgLTAgYW5kIDAgYXJlIGRpZmZlcmVudCBJUiBjb25zdGFudHMsIGFsaWFzIGFuYWx5 c2lzPGJyPmRlY2xhcmVzIHRoYXQgdGhleSBjYW4ndCBiZSBhbGlhc2VkIGR1cmluZyBmb2xkaW5n IG9wdGltaXphdGlvbi48YnI+VGhlcmVmb3JlOjxicj4xKSBGb3IgdGhlIElSIFRORVcgd2UgaGF2 ZSBub24tbmlsIHZhbHVlIHRvIGxvb2t1cCBmcm9tIHRoZSB0YWJsZSB2aWE8YnI+Jm5ic3A7Jm5i c3A7Jm5ic3A7SExPQUQsIHdoZW4gb25seSBuaWwgbG9va3VwIGlzIGV4cGVjdGVkIGR1ZSB0byBh bGlhcyBhbmFseXNpcy48YnI+MikgRm9yIHRoZSBJUiBURFVQIHdlIGhhdmUgbm9uLW5pbCB2YWx1 ZSB0byBsb29rdXAgZnJvbSB0aGUgdGFibGUgdmlhPGJyPiZuYnNwOyZuYnNwOyZuYnNwO0hMT0FE LCBidXQgdGhlIHRlbXBsYXRlIHRhYmxlIGhhcyBubyAwIGZpZWxkIGluaXRpYXRlZCBhcyBmYXIg YXMgLTA8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7aXNuJ3QgZm9sZGluZyB0byAwIGR1cmluZyBwYXJz aW5nIChzZWUgYGJjZW1pdF91bm9wKClgIGluPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZsdDtzcmMv bGpfcGFyc2UuYyZndDspLjxicj5UaGVzZSBjYXNlcyBsZWFkIHRvIHRoZSBhc3NlcnRpb24gZmFp bHVyZXMgaW4gYGZ3ZF9haGxvYWQoKWAuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1 b3RlPjxkaXY+VHlwbzogcy90aGUgYXNzZXJ0aW9uL2Fzc2VydGlvbi88L2Rpdj48YmxvY2txdW90 ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRk aW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1z ZyI+PGRpdj48ZGl2Pjxicj5UaGlzIHBhdGNoIGFkZHMgdGhlIGFmb3JlbWVudGlvbmVkIGNhbm9u aWNhbGl6YXRpb24uPGJyPjxicj5TZXJnZXkgQnJvbm5pa292Ojxicj4qIHJlcG9ydGVkIHRoZSBv cmlnaW5hbCBpc3N1ZSBmb3IgdGhlIFREVVAgSVI8YnI+PGJyPlNlcmdleSBLYXBsdW46PGJyPiog YWRkZWQgdGhlIGRlc2NyaXB0aW9uIGFuZCB0aGUgdGVzdCBmb3IgdGhlIHByb2JsZW08YnI+PGJy PlBhcnQgb2YgdGFyYW50b29sL3RhcmFudG9vbCM4NTE2PGJyPi0tLTxicj48YnI+U2lkZSBub3Rl OiBJIGRvbid0IG1lbnRpb24gdGhlIDk4MSBpc3N1ZSBieSBpbnRlbmQgLS0gSSBkb24ndCB3YW50 IHRvPGJyPmJvdGhlciBNaWtlIHdpdGggZm9yY2UgcHVzaGVzOikuIEkgc3VwcG9zZSBJZ29yIHNo b3VsZCBhZGQgdGhpcyBsaW5lIChpZjxicj5oZSB3YW50cykgd2VudCB0aGlzIGNvbW1pdCB3aWxs IGJlIGNoZXJyeS1waWNrZWQgdG8gb3VyIG1hc3RlciBicmFuY2g8YnI+KGEuay5hLiB0YXJhbnRv b2wpLjxicj48YnI+Jm5ic3A7c3JjL2xqX3JlY29yZC5jIHwgMiArPGJyPiZuYnNwOy4uLi90YXJh bnRvb2wtdGVzdHMvbGotOTgxLWZvbGRpbmctMC50ZXN0Lmx1YSB8IDU3ICsrKysrKysrKysrKysr KysrKys8YnI+Jm5ic3A7MiBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspPGJyPiZuYnNw O2NyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L3RhcmFudG9vbC10ZXN0cy9sai05ODEtZm9sZGluZy0w LnRlc3QubHVhPGJyPjxicj5kaWZmIC0tZ2l0IGEvc3JjL2xqX3JlY29yZC5jIGIvc3JjL2xqX3Jl Y29yZC5jPGJyPmluZGV4IDllMmUxZDllLi5jYzQ0ZGI4ZCAxMDA2NDQ8YnI+LS0tIGEvc3JjL2xq X3JlY29yZC5jPGJyPisrKyBiL3NyYy9sal9yZWNvcmQuYzxicj5AQCAtMTQ3NCw2ICsxNDc0LDgg QEAgVFJlZiBsal9yZWNvcmRfaWR4KGppdF9TdGF0ZSAqSiwgUmVjb3JkSW5kZXggKml4KTxicj4m bmJzcDsgVFJlZiBrZXkgPSBpeC0mZ3Q7a2V5Ozxicj4mbmJzcDsgaWYgKHRyZWZfaXNpbnRlZ2Vy KGtleSkpIC8qIE5FV1JFRiBuZWVkcyBhIFRWYWx1ZSBhcyBhIGtleS4gKi88YnI+Jm5ic3A7IGtl eSA9IGVtaXRpcihJUlROKElSX0NPTlYpLCBrZXksIElSQ09OVl9OVU1fSU5UKTs8YnI+KyBlbHNl IGlmICh0cmVmX2lzbnVtYmVyKGtleSkgJmFtcDsmYW1wOyB0cmVmX2lzayhrZXkpICZhbXA7JmFt cDsgdHZpc216ZXJvKCZhbXA7aXgtJmd0O2tleXYpKTxicj4rIGtleSA9IGxqX2lyX2tudW1femVy byhKKTsgLyogQ2Fub25pY2FsaXplIC0wLjAgdG8gKzAuMC4gKi88YnI+Jm5ic3A7IHhyZWYgPSBl bWl0aXIoSVJUKElSX05FV1JFRiwgSVJUX1BHQyksIGl4LSZndDt0YWIsIGtleSk7PGJyPiZuYnNw OyBrZXliYXJyaWVyID0gMDsgLyogTkVXUkVGIGFscmVhZHkgdGFrZXMgY2FyZSBvZiB0aGUga2V5 IGJhcnJpZXIuICovPGJyPiZuYnNwOyNpZmRlZiBMVUFKSVRfRU5BQkxFX1RBQkxFX0JVTVA8YnI+ ZGlmZiAtLWdpdCBhL3Rlc3QvdGFyYW50b29sLXRlc3RzL2xqLTk4MS1mb2xkaW5nLTAudGVzdC5s dWEgYi90ZXN0L3RhcmFudG9vbC10ZXN0cy9sai05ODEtZm9sZGluZy0wLnRlc3QubHVhPGJyPm5l dyBmaWxlIG1vZGUgMTAwNjQ0PGJyPmluZGV4IDAwMDAwMDAwLi4yNTFkYTI0ZDxicj4tLS0gL2Rl di9udWxsPGJyPisrKyBiL3Rlc3QvdGFyYW50b29sLXRlc3RzL2xqLTk4MS1mb2xkaW5nLTAudGVz dC5sdWE8YnI+QEAgLTAsMCArMSw1NyBAQDxicj4rbG9jYWwgdGFwID0gcmVxdWlyZSgndGFwJyk8 YnI+K2xvY2FsIHRlc3QgPSB0YXAudGVzdCgnbGotOTgxLWZvbGRpbmctMCcpOnNraXBjb25kKHs8 YnI+KyBbJ1Rlc3QgcmVxdWlyZXMgSklUIGVuYWJsZWQnXSA9IG5vdCBqaXQuc3RhdHVzKCksPGJy PisgWydEaXNhYmxlZCBvbiAqQlNEIGR1ZSB0byAjNDgxOSddID0gaml0Lm9zID09ICdCU0QnLDxi cj4rfSk8YnI+Kzxicj4rLS0gVGVzdCBmaWxlIHRvIGRlbW9uc3RyYXRlIEx1YUpJVCBtaXNiZWhh dmlvdXIgb24gbG9hZCBmb3J3YXJkaW5nPGJyPistLSBmb3IgLTAgSVIgY29uc3RhbnQgYXMgdGFi bGUgaW5kZXguPGJyPistLSBTZWUgYWxzbywgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0x1 YUpJVC9MdWFKSVQvaXNzdWVzLzk4MSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNv bS9MdWFKSVQvTHVhSklUL2lzc3Vlcy85ODE8L2E+Ljxicj4rPGJyPitsb2NhbCBqcGFyc2UgPSBy ZXF1aXJlKCd1dGlscy5qaXRfcGFyc2UnKTxicj4rPGJyPitqaXQub3B0LnN0YXJ0KCdob3Rsb29w PTEnKTxicj4rPGJyPit0ZXN0OnBsYW4oNCk8YnI+Kzxicj4rLS0gUmVzZXQgdHJhY2VzLjxicj4r aml0LmZsdXNoKCk8YnI+Kzxicj4ranBhcnNlLnN0YXJ0KCdpJyk8YnI+K2xvY2FsIHJlc3VsdDxi cj4rbG9jYWwgZXhwZWN0ZWQgPSAncmVzdWx0Jzxicj4rLS0gVE5FVzo8YnI+Ky0tIC0wIGlzbid0 IGZvbGRlZCBkdXJpbmcgcGFyc2luZywgc28gaXQgd2lsbCBiZSBzZXQgd2l0aCBLU0hPUlQsPGJy PistLSBVTk0gYnl0ZWNvZGVzLiBTZWUgJmx0O3NyYy9sal9wYXJzZS5jJmd0OyBhbmQgYnl0ZWNv ZGUgbGlzdGluZzxicj4rLS0gZm9yIGRldGFpbHMuPGJyPistLSBCZWNhdXNlIG9mIGl0LCBlbXB0 eSB0YWJsZSBpcyBjcmVhdGVkIHZpYSBUTkVXLjxicj4rZm9yIF8gPSAxLCA0IGRvPGJyPisgcmVz dWx0ID0gKHtbLTBdID0gZXhwZWN0ZWR9KVswXTxicj4rZW5kPGJyPis8YnI+K2xvY2FsIHRyYWNl cyA9IGpwYXJzZS5maW5pc2goKTxicj4rPGJyPistLSBUZXN0IHRoYXQgdGhlcmUgaXMgbm8gYW55 IGFzc2VydGlvbiBmYWlsdXJlLjxicj4rdGVzdDpvayhyZXN1bHQgPT0gZXhwZWN0ZWQsICdUTkVX IGFuZCAtMCBmb2xkaW5nJyk8YnI+Ky0tIFRlc3QgdGhhdCB0aGVyZSBpcyBubyBORVdSRUYgLTAg SVIuPGJyPit0ZXN0Om9rKG5vdCB0cmFjZXNbMV06aGFzX2lyKCdORVdSRUYuKi0wJyksICctMCBp cyBjYW5vbml6ZWQgZm9yIFRORVcgdGFiJyk8YnI+Kzxicj4rLS0gUmVzZXQgdHJhY2VzLjxicj4r aml0LmZsdXNoKCk8YnI+Kzxicj4ranBhcnNlLnN0YXJ0KCdpJyk8YnI+Ky0tIFREVVA6PGJyPist LSBOb3cganVzdCBhZGQgYSBjb25zdGFudCBmaWVsZCBmb3IgdGhlIHRhYmxlIHRvIHVzZSBURFVQ IHdpdGg8YnI+Ky0tIHRlbXBsYXRlIHRhYmxlIGluc3RlYWQgVE5FVyBiZWZvcmUgLTAgaXMgc2V0 Ljxicj4rZm9yIF8gPSAxLCA0IGRvPGJyPisgcmVzdWx0ID0gKHtbLTBdID0gZXhwZWN0ZWQsIFsx XSA9IDF9KVswXTxicj4rZW5kPGJyPis8YnI+K3RyYWNlcyA9IGpwYXJzZS5maW5pc2goKTxicj4r PGJyPistLSBUZXN0IHRoYXQgdGhlcmUgaXMgbm8gYW55IGFzc2VydGlvbiBmYWlsdXJlLjxicj4r dGVzdDpvayhyZXN1bHQgPT0gZXhwZWN0ZWQsICdURFVQIGFuZCAtMCBmb2xkaW5nJyk8YnI+Ky0t IFRlc3QgdGhhdCB0aGVyZSBpcyBubyBORVdSRUYgLTAgSVIuPGJyPit0ZXN0Om9rKG5vdCB0cmFj ZXNbMV06aGFzX2lyKCdORVdSRUYuKi0wJyksICctMCBpcyBjYW5vbml6ZWQgZm9yIFREVVAgdGFi Jyk8YnI+Kzxicj4rb3MuZXhpdCh0ZXN0OmNoZWNrKCkgYW5kIDAgb3IgMSk8YnI+LS08YnI+Mi4z NC4xPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+PGRpdj4tLTxicj5C ZXN0IHJlZ2FyZHMsPC9kaXY+PGRpdj5NYXhpbSBLb2tyeWFzaGtpbjwvZGl2PjwvZGl2PjwvZGl2 PjwvYmxvY2txdW90ZT48L0JPRFk+PC9IVE1MPgo= ----ALT--3b697129eD34646AAd5E4C5d8C2357b41684152313--