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 B1A0E6ECCC; Sun, 21 Jun 2026 13:17:10 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org B1A0E6ECCC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1782037030; bh=f9kTh/ogj2SffRjBtXw6vp3WWbXO/7BxPGZ5It0kC40=; 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=HUAr3F/klNm9NLVv7idQV9FnJKLt2/UJm0xZ+Exl0ZAdPT3dwSUjuoBpV0BhK8fwj DHZ2C0B1NAFcMaVvJQRgBumG5+ZSr3XyJUJsU7UX7tB6DXDZu2wIUC1gLGYdqGxDVe wSXfL1FzrrV3JII9i32oki4yLjL/mzN7a8j1lsKI= Received: from send109.i.mail.ru (send109.i.mail.ru [89.221.237.204]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id C1D6E6ECCC for ; Sun, 21 Jun 2026 13:17:08 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org C1D6E6ECCC Received: by exim-f-8594966c4f-vhlhh with local (envelope-from ) id 1wbFEf-00000000L4M-1XiY; Sun, 21 Jun 2026 13:17:08 +0300 Received: by e.mail.ru with HTTP; Sun, 21 Jun 2026 13:17:05 +0300 To: =?UTF-8?B?U2VyZ2V5IEthcGx1bg==?= MIME-Version: 1.0 X-Priority: 3 (Normal) X-Mailer: Mail.Ru Mailer 1.0 X-Senderfield-Remsg: 17818085450939256652 X-Senderfield-Remind: 0 Date: Sun, 21 Jun 2026 13:17:05 +0300 Message-Id: <1782037025.528671951@f712.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--c47B9650E5216357d266bA3f46F8c8531782037025" In-Reply-To: References: <20260604093052.2221827-1-skaplun@tarantool.org> <1781793399.19260190@f722.i.mail.ru> X-Mailru-Src: fe X-4EC0790: 10 X-7564579A: B8F34718100C35BD X-77F55803: 119C1F4DF6A9251CFCDC879A7C91AE0709E0805FE912D9AB92FD8D778A64CC7D8FD872164937FA4CBADD957F096A85533DE06ABAFEAF670500EF4A49BED0A2F9E35E302165904046C8A878373477942C X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7F65C230EDDCD559EEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB553375669C89CB82897FCFF9D70FFC114071C4454B294C4AE57E7C6F0E28C4B0BAB0DF78389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C078FCF50C7EAF9C588941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B6F459A8243F1D1D44CC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE7BEE702378D8A34C7731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A58E47AC550133A9025002B1117B3ED696052D048CEB9BAA5ACCE9A60C8CB01D7C823CB91A9FED034534781492E4B8EEAD4ECBDE8281F904F9BDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE191543584D22441D852AB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D6599B74ADF98B1CA49327FFC1C42C87D784822D1D5C87E53AAF82AD6F20E668CCD72A3AFF58B0367652B8341EE9D5BE9A0AF27AFB642C0D13456ECE5C5F95FCDD55740CC24A136780AA6536EB022892E5344C41F94D744909CEEF9E35A692215F79327F81E6EEE0AEB67A0F9F91F029B6AF33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+Od3uM/CLT152eL7j4ZacoUSF0MSa0v5VBmEtSutdC50BIKdL3VIRlkt/X9Gr7QWYXucPUinHATAeHXorM+S1NQOd7Dfgh+EySfb/C10bJR4eMi/KUYG4W7Q= X-Mailru-MI: 20000000010000000000400800 X-Mailru-Sender: 3B9A0136629DC912EB477A2E8859F9F762D1DCFDC6DDC6819B464708D7791FD7E36BD57816DF717CA6275B8B46EDC5F6B838212C44EFF7BCFF8827D84BA35E87E0C81887C6B2EBA88CC9D01740B45CCA8541B43355FF3DF2139C1CE02BAFBE04EAB4BC95F72C04283CDA0F3B3F5B9367 X-Mras: Ok X-Spam: undefined Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_luajit_0/4=5D_Introduce_d?= =?utf-8?q?umpers_for_bytecodes_in_debuggers?= 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: Evgeniy Temirgaleev via Tarantool-patches Reply-To: =?UTF-8?B?RXZnZW5peSBUZW1pcmdhbGVldg==?= Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--c47B9650E5216357d266bA3f46F8c8531782037025 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGksIFNlcmdleSEgVGhhbmtzIGZvciB0aGUgdXBncmFkZSBvZiB0aGUgZGVidWdnZXJzIGV4dGVu c2lvbiEKCkkgdHJ5IHlvdXIgdXBkYXRlcyBpbiB0aGUgRG9ja2VyIG9uIEFybTY0IChNNCBQcm8g Y2hpcCkuIE9uIHRoZSBsYXRlc3TCoFVidW50dSB2ZXJzaW9ucyAoMjQvMjYpIGFsbCB0ZXN0cyB3 ZXJlIHBhc3NlZCBub3cuCgpVbmRlciBVYnVudHUgMjAgaXTigJlzIGFsbCBvayBmb3IgZ2NjIGJ1 aWxkLCBhbmTCoHRoZXJlIGFyZSBzb21lIGZhaWxzIHdpdGggY2xhbmcgYnVpbGQuwqBJIHRoaW5r LCB0aGlzIG1heSBiZSBmaXhlZCBsYXRlci4KCkxHVE0gZm9yIGFsbCBjb21taXRzLgoKLS0KQmVz dCByZWdhcmRzLApFdmdlbml5IFRlbWlyZ2FsZWV2Cgo+IAo+IEZyb206IFNlcmdleSBLYXBsdW4g PHNrYXBsdW5AdGFyYW50b29sLm9yZz4KPiBUbzogRXZnZW5peSBUZW1pcmdhbGVldiA8ZS50ZW1p cmdhbGVldkB0YXJhbnRvb2wub3JnPgo+IENjOiB0YXJhbnRvb2wtcGF0Y2hlc0BkZXYudGFyYW50 b29sLm9yZywgU2VyZ2V5IEJyb25uaWtvdiA8c2VyZ2V5YkB0YXJhbnRvb2wub3JnCj4gPgo+IERh dGU6IFRodXJzZGF5LCBKdW5lIDE4LCAyMDI2IDk6NDkgUE0gKzAzOjAwCj4gSGksIEV2Z2VuaXkh Cj4gVGhhbmtzIGZvciB0aGUgcmV2aWV3IQo+IEZpeGVkIHlvdXIgY29tbWVudHMgYW5kIGZvcmNl LXB1c2hlZCB0aGUgYnJhbmNoLgo+IAo+IE9uIDE4LjA2LjI2LCBFdmdlbml5IFRlbWlyZ2FsZWV2 IHdyb3RlOgo+ID4gSGksIFNlcmdleSEgVGhhbmtzIGZvciB0aGUgcGF0Y2ghCj4gPgo+ID4gSSB0 cmllZCB0aGUgdGVzdHMgdW5kZXIgVWJ1bnR1IDIwLjA0IGFuZCBVYnVudHUgMjQuMDQgd2l0aCBn Y2MgYW5kIGNsYW5nCj4gTHVhSklUIGJ1aWxkczoKPiA+Cj4gPiAxKSBVYnVudHUgMjAgKyBnY2M6 IGFsbCB0ZXN0cyB3ZXJlwqBwYXNzZWQuCj4gPiAyKSBVYnVudHUgMjAgKyBjbGFuZzogc29tZSBv ZiBnZGIgYW5kIGxsZGIgdGVzdHMgd2VyZSBmYWlsZWQuCj4gPiAzKSBVYnVudHUgMjQgKyBnY2M6 IHNvbWUgb2YgbGxkYiB0ZXN0cyB3ZXJlwqBmYWlsZWQuCj4gPiA0KSBVYnVudHUgMjQgKyBjbGFu Zzogc29tZSBvZiBnZGIgYW5kIGxsZGIgdGVzdHMgd2VyZcKgZmFpbGVkLgo+IAo+IFRoYW5rcyBh IGxvdCBmb3IgdGhlc2UgY2F0Y2hlcyEKPiAKPiBVYnVudHUgMjQgaGFzIExMREIgKDE4KSB3aXRo IHJlZ3Jlc3Npb24uIEl0IGNhbid0IHVzZSB0aGUgYXJyYXkgb2JqZWN0Cj4gYXMgdGhlIGluaXRp YWxpemVyIGZvciBgbGxkYi52YWx1ZWAuIFRoaXMgcmVncmVzc2lvbiBhZmZlY3RzIHZlcnNpb25z IDE3Cj4gLSAxOS4gU2VlIFsxXSBmb3IgdGhlIGRldGFpbHMuCj4gCj4gSSd2ZSBhZGRlZCB0aGUg Y29ycmVzcG9uZGluZyB3b3JrYXJvdW5kIGZvciBpdDoKPiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gZGlmZiAtLWdp dCBhL3NyYy9sdWFqaXRfZGJnLnB5IGIvc3JjL2x1YWppdF9kYmcucHkKPiBpbmRleCAzYTNjYTli OC4uMmVkYjE5OWEgMTAwNjQ0Cj4gLS0tIGEvc3JjL2x1YWppdF9kYmcucHkKPiArKysgYi9zcmMv bHVhaml0X2RiZy5weQo+IEBAIC0zMjQsNyArMzI0LDcgQEAgY2xhc3MgX0xMREJEZWJ1Z2dlcihE ZWJ1Z2dlcik6Cj4ga2V5ID0gaW50KGtleSkKPiBpZiB0eXBlKGtleSkgaXMgaW50Ogo+ICMgQWxs b3cgYXJyYXkgYWNjZXNzLgo+IC0gaWYga2V5ID49IDA6Cj4gKyBpZiBrZXkgPj0gMCBhbmQgbm90 IGxsZGJ2YWwuc2J2YWx1ZS5UeXBlSXNQb2ludGVyVHlwZSgpOgo+IHJldHVybiBsbGRiLnZhbHVl KAo+IGxsZGJ2YWwuc2J2YWx1ZS5HZXRWYWx1ZUZvckV4cHJlc3Npb25QYXRoKCdbJWldJyAlIGtl eSkKPiApCj4gQEAgLTQ3NSw3ICs0NzUsMjIgQEAgY2xhc3MgX0xMREJEZWJ1Z2dlcihEZWJ1Z2dl cik6Cj4gcmV0dXJuIHN0cnB0ci5zYnZhbHVlLnN1bW1hcnkKPiAKPiBkZWYgbG9va3VwX2dsb2Jh bChzZWxmLCBzeW1ib2wpOgo+IC0gcmV0dXJuIGxsZGIudmFsdWUoc2VsZi50YXJnZXQuRmluZEZp cnN0R2xvYmFsVmFyaWFibGUoc3ltYm9sKSkKPiArIHNidmFsdWUgPSBzZWxmLnRhcmdldC5GaW5k Rmlyc3RHbG9iYWxWYXJpYWJsZShzeW1ib2wpCj4gKyB0cCA9IHNidmFsdWUuR2V0VHlwZSgpCj4g KyAjIFhYWDogTExEQiBpbiB2ZXJzaW9ucyAxNyAtIDE5IGNhbid0IHVzZSBhbiBhcnJheSBvYmpl Y3QKPiArICMgYXMgdGhlIGluaXRpYWxpemVyIGZvciBgbGxkYi52YWx1ZWAgc2luY2UgYEdldFZh bHVlKClgCj4gKyAjIGZvciBpdCByZXR1cm5zIGBOb25lYCBsZWFkaW5nIHRvIHRoZSBpbnZhbGlk IHJlc3VsdC4KPiArICMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9w dWxsLzkwMTQ0Lgo+ICsgaWYgKHNlbGYudmVyc2lvbiA8IDE3IG9yIHNlbGYudmVyc2lvbiA+IDE5 KSBvciBcCj4gKyB0cC5HZXRUeXBlQ2xhc3MoKSAhPSBsbGRiLmVUeXBlQ2xhc3NBcnJheToKPiAr IHJldHVybiBsbGRiLnZhbHVlKHNidmFsdWUpCj4gKyBlbHNlOgo+ICsgcHRyX3RwID0gdHAuR2V0 QXJyYXlFbGVtZW50VHlwZSgpLkdldFBvaW50ZXJUeXBlKCkKPiArIHJldHVybiBzZWxmLl9sbGRi X3ZhbHVlX2Zyb21fcmF3KAo+ICsgc2J2YWx1ZS5HZXRMb2FkQWRkcmVzcygpLAo+ICsgcHRyX3Rw LkdldEJ5dGVTaXplKCksCj4gKyBwdHJfdHAKPiArICkKPiAKPiBkZWYgZXZhbChzZWxmLCBjb21t YW5kKToKPiBpZiBub3QgY29tbWFuZDoKPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gCj4gUmVnYXJkaW5nIGNsYW5n IGlzc3VlcywgSSBzdXBwb3NlIHRoaXMgaXMgZHVlIHRvIG5vdCBlbm91Z2ggZHdhcmYKPiBpbmZv cm1hdGlvbiBhYm91dCB0aGUgbWFjcm8gZGVmaW5pdGlvbnMuIFRoYXQgbGVhZHMgdG8gdGVzdCBm YWlsdXJlcwo+IChldmVuIGlmIHRoZSBleHRlbnNpb24gd29ya3MgY29ycmVjdGx5KS4KPiAKPiBJ J3ZlIGFkZGVkIHRoZSBmb2xsb3dpbmcgZml4IHdpdGggZGV0ZWN0aW5nIGlzIHRoZSByZXF1aXJl ZCBtYWNybwo+IGRlZmluaXRpb25zIHN1cHBvcnRlZC4gUGF0Y2ggaXMgc3BsaXR0ZWQgdmlhIHRo ZSBjb3JyZXNwb25kaW5nIGNvbW1pdHMuCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+IGRpZmYgLS1naXQgYS90ZXN0 L3RhcmFudG9vbC1kZWJ1Z2dlci10ZXN0cy9kZWJ1Zy1leHRlbnNpb24tdGVzdHMucHkKPiBiL3Rl c3QvdGFyYW50b29sLWRlYnVnZ2VyLXRlc3RzL2RlYnVnLWV4dGVuc2lvbi10ZXN0cy5weQo+IGlu ZGV4IGI2Nzc5NDJjLi43ZThlYTVhMiAxMDA2NDQKPiAtLS0gYS90ZXN0L3RhcmFudG9vbC1kZWJ1 Z2dlci10ZXN0cy9kZWJ1Zy1leHRlbnNpb24tdGVzdHMucHkKPiArKysgYi90ZXN0L3RhcmFudG9v bC1kZWJ1Z2dlci10ZXN0cy9kZWJ1Zy1leHRlbnNpb24tdGVzdHMucHkKPiBAQCAtOTcsNiArOTcs MTAgQEAgSVNfRFVBTE5VTSA9IGV4ZWN1dGVfcHJvY2VzcyhbCj4gTFVBSklUX0JJTkFSWSwgJy1l JywgInByaW50KHJlcXVpcmUoJ2ZmaScpLmFiaSgnZHVhbG51bScpKSIKPiBdKS5zdHJpcCgpID09 ICd0cnVlJwo+IAo+ICtJU19HQzY0ID0gZXhlY3V0ZV9wcm9jZXNzKFsKPiArIExVQUpJVF9CSU5B UlksICctZScsICJwcmludChyZXF1aXJlKCdmZmknKS5hYmkoJ2djNjQnKSkiCj4gK10pLnN0cmlw KCkgPT0gJ3RydWUnCj4gKwo+ICMgSWYgaXQgaXMgdGhlIGd1YXJhbnRlZWQgRFVBTE5VTSBidWls ZCAoZm9yIGV4YW1wbGUsIG9uIGFhcmNoNjQpLAo+ICMgd2UgdXNlIHRoaXMgcmVnZXhwIGZvciB0 aGUgZ3VhcmFudGVlZCAnaW50ZWdlcicgY2hlY2sgYW5kCj4gIyAnbnVtYmVyJyBmb3Igc2luZ2xl LW51bWJlciBidWlsZC4KPiBAQCAtMTM5LDIzICsxNDMsNTQgQEAgY2xhc3MgVGVzdENhc2VCYXNl KHVuaXR0ZXN0LlRlc3RDYXNlKToKPiBzZWxmLmFzc2VydFJlZ2V4KHNlbGYub3V0cHV0LCBzZWxm LnBhdHRlcm4uc3RyaXAoKSkKPiAKPiAKPiAtIyBMTERCICsgQ2xhbmcgb24gbWFjT1MgY2FuJ3Qg cHJvZHVjZSBkZWJ1ZyBpbmZvIGZvciB0aGUgQy1kZWZpbmVkCj4gLSMgbWFjcm9zLiBUaHVzLCB3 ZSBoYXJkY29kZWQgaXRzIHZhbHVlIG1hbnVhbGx5Lgo+ICsjIFRlc3QgdGhhdCB0aGUgZW1pdHRl ZCBkZWJ1ZyBpbmZvcm1hdGlvbiBzdXBwb3J0cyBtYWNybwo+ICsjIGRlZmluaXRpb25zLgo+ICtk ZWYgY2hlY2tfbWFjcm9fZGVidWdfaW5mbygpOgo+ICsgY21kX2ZpbGUgPSBwZXJzaXN0KCdcbicu am9pbihbCj4gKyAnYiBsal9jZl9wcmludCcsCj4gKyAqUFJPQ0VTU19SVU4sCj4gKyAnbicsCj4g KyAncCBnY3ZhbChMLT5iYXNlKScsCj4gKyAncScsCj4gKyBdKSkKPiArIHByb2Nlc3NfY21kID0g Wwo+ICsgREVCVUdHRVIsCj4gKyAqUlVOX0NNRF9GSUxFLAo+ICsgY21kX2ZpbGUubmFtZSwKPiAr IElORkVSSU9SX0FSR1MsCj4gKyBMVUFKSVRfQklOQVJZLAo+ICsgJy1lJywKPiArICdwcmludCgi IiknCj4gKyBdCj4gKyBvdXRwdXQgPSBleGVjdXRlX3Byb2Nlc3MocHJvY2Vzc19jbWQpCj4gKyBj bWRfZmlsZS5jbG9zZSgpCj4gKyByZXR1cm4gcmUuc2VhcmNoKHInXChHQ29iaiBcKlwpICcgKyBS WF9BRERSLCBvdXRwdXQpIGlzIG5vdCBOb25lCj4gKwo+ICsKPiArU1VQUE9SVF9NQUNST19FWFBB TkQgPSBjaGVja19tYWNyb19kZWJ1Z19pbmZvKCkKPiArCj4gKwo+ICsjIExMREIgKyBDbGFuZyBv biBtYWNPUyAoZm9yIGV4YW1wbGUpIGNhbid0IHByb2R1Y2UgZGVidWcgaW5mbwo+ICsjIGZvciB0 aGUgQy1kZWZpbmVkIG1hY3Jvcy4gVGh1cywgd2UgaGFyZGNvZGVkIGl0cyB2YWx1ZSBtYW51YWxs eS4KPiBkZWYgZ2N2YWwoYXJnKToKPiAtIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKPiAt ICMgQXNzdW1lIEdDNjQgYnVpbGQgb25seS4KPiAtIExKX0dDVk1BU0sgPSAnKCgodWludDY0X3Qp MSA8PCA0NykgLSAxKScKPiAtIHJldHVybiAnKCgoJyArIGFyZyArICcpLT5nY3IpLmdjcHRyNjQg JiAnICsgTEpfR0NWTUFTSyArICcpJwo+IC0gZWxzZToKPiArIGlmIFNVUFBPUlRfTUFDUk9fRVhQ QU5EOgo+IHJldHVybiAnZ2N2YWwoJyArIGFyZyArICcpJwo+ICsgZWxzZToKPiArIGlmIElTX0dD NjQ6Cj4gKyBMSl9HQ1ZNQVNLID0gJygoKHVpbnQ2NF90KTEgPDwgNDcpIC0gMSknCj4gKyByZXR1 cm4gJygoKCcgKyBhcmcgKyAnKS0+Z2NyKS5nY3B0cjY0ICYgJyArIExKX0dDVk1BU0sgKyAnKScK PiArIGVsc2U6Cj4gKyByZXR1cm4gJygoJyArIGFyZyArICcpLT5nY3IpLmdjcHRyMzInCj4gCj4g Cj4gZGVmIG1yZWYoYXJnLCB0cCk6Cj4gLSBpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6Cj4g LSAjIEFzc3VtZSBHQzY0IGJ1aWxkIG9ubHkuCj4gLSByZXR1cm4gJygoJyArIHRwICsgJyopKCcg KyBhcmcgKyAnKS5wdHI2NCknCj4gLSBlbHNlOgo+ICsgaWYgU1VQUE9SVF9NQUNST19FWFBBTkQ6 Cj4gcmV0dXJuICdtcmVmKCcgKyBhcmcgKyAnLCAnICsgdHAgKyAnKScKPiArIGVsc2U6Cj4gKyBp ZiBJU19HQzY0Ogo+ICsgcmV0dXJuICcoKCcgKyB0cCArICcqKSgnICsgYXJnICsgJykucHRyNjQp Jwo+ICsgZWxzZToKPiArIHJldHVybiAnKCgnICsgdHAgKyAnKikoJyArIGFyZyArICcpLnB0cjMy KScKPiAKPiAKPiBjbGFzcyBUZXN0TG9hZChUZXN0Q2FzZUJhc2UpOgo+ID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAK PiBJJ3ZlIGNoZWNrZWQgaW4gVWJ1bnR1IDI0LzI2IERvY2tlcnMsIG91ciBDSSAoVWJ1bnR1IDIw KSwgYW5kIG1hY09TIE0xLgo+IFRlc3RzIGRvbid0IGZhaWwgYW55bW9yZS4KPiAKPiA+Cj4gPiAt LQo+ID4gQmVzdCByZWdhcmRzLAo+ID4gRXZnZW5peSBUZW1pcmdhbGVldgo+ID4KPiAKPiA8c25p cHBlZD4KPiAKPiBbMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9wdWxs LzkwMTQ0Cj4gCj4gLS0KPiBCZXN0IHJlZ2FyZHMsCj4gU2VyZ2V5IEthcGx1bgo+ ----ALT--c47B9650E5216357d266bA3f46F8c8531782037025 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXYgY2xhc3M9ImNsLW56MXZxYzR2NmsiPjxkaXY+SGksIFNlcmdleSEg VGhhbmtzIGZvciB0aGUgdXBncmFkZSBvZiB0aGUgZGVidWdnZXJzIGV4dGVuc2lvbiE8YnI+PGJy PkkgdHJ5IHlvdXIgdXBkYXRlcyBpbiB0aGUgRG9ja2VyIG9uIEFybTY0IChNNCBQcm8gY2hpcCku IE9uIHRoZSBsYXRlc3QmbmJzcDtVYnVudHUgdmVyc2lvbnMgKDI0LzI2KSBhbGwgdGVzdHMgd2Vy ZSBwYXNzZWQgbm93LjwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj5VbmRlciBVYnVudHUgMjAg aXTigJlzIGFsbCBvayBmb3IgZ2NjIGJ1aWxkLCBhbmQmbmJzcDt0aGVyZSBhcmUgc29tZSBmYWls cyB3aXRoIGNsYW5nIGJ1aWxkLiZuYnNwO0kgdGhpbmssIHRoaXMgbWF5IGJlIGZpeGVkIGxhdGVy LjwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj5MR1RNIGZvciBhbGwgY29tbWl0cy48L2Rpdj48 ZGl2PiZuYnNwOzwvZGl2PjxkaXYgZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250YWluZXIiPjxk aXYgZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250ZW50Ij48ZGl2Pi0tPGJyPkJlc3QgcmVnYXJk cyw8L2Rpdj48ZGl2PkV2Z2VuaXkgVGVtaXJnYWxlZXY8L2Rpdj48L2Rpdj48L2Rpdj48YnI+PGRp diBjbGFzcz0ibWFpbC1xdW90ZS1jb2xsYXBzZSI+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1s ZWZ0OjFweCBzb2xpZCAjMDg1N0E2O21hcmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBweCI+PHNw YW4+RnJvbTogU2VyZ2V5IEthcGx1biAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNrYXBsdW5AdGFyYW50 b29sLm9yZyI+c2thcGx1bkB0YXJhbnRvb2wub3JnPC9hPiZndDs8YnI+VG86IEV2Z2VuaXkgVGVt aXJnYWxlZXYgJmx0OzxhIGhyZWY9Im1haWx0bzplLnRlbWlyZ2FsZWV2QHRhcmFudG9vbC5vcmci PmUudGVtaXJnYWxlZXZAdGFyYW50b29sLm9yZzwvYT4mZ3Q7PGJyPkNjOiB0YXJhbnRvb2wtcGF0 Y2hlc0BkZXYudGFyYW50b29sLm9yZywgU2VyZ2V5IEJyb25uaWtvdiAmbHQ7PGEgaHJlZj0ibWFp bHRvOnNlcmdleWJAdGFyYW50b29sLm9yZyI+c2VyZ2V5YkB0YXJhbnRvb2wub3JnPC9hPiZndDs8 YnI+RGF0ZTogVGh1cnNkYXksIEp1bmUgMTgsIDIwMjYgOTo0OSBQTSArMDM6MDA8L3NwYW4+PGJy PiZuYnNwOzxkaXY+PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJjbC1kejV4OTMzbDJpIj48ZGl2IGNs YXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIiPjxk aXYgaWQ9InN0eWxlXzE3ODE4MDg1NDUwOTM5MjU2NjUyX21yX2Nzc19hdHRyIj48ZGl2IGlkPSJz dHlsZV8xNzgxODA4NTQ1MDkzOTI1NjY1Ml9CT0RZX21yX2Nzc19hdHRyIj5IaSwgRXZnZW5peSE8 YnI+VGhhbmtzIGZvciB0aGUgcmV2aWV3ITxicj5GaXhlZCB5b3VyIGNvbW1lbnRzIGFuZCBmb3Jj ZS1wdXNoZWQgdGhlIGJyYW5jaC48YnI+PGJyPk9uIDE4LjA2LjI2LCBFdmdlbml5IFRlbWlyZ2Fs ZWV2IHdyb3RlOjxicj4mZ3Q7IEhpLCBTZXJnZXkhIFRoYW5rcyBmb3IgdGhlIHBhdGNoITxicj4m Z3Q7PGJyPiZndDsgSSB0cmllZCB0aGUgdGVzdHMgdW5kZXIgVWJ1bnR1IDIwLjA0IGFuZCBVYnVu dHUgMjQuMDQgd2l0aCBnY2MgYW5kIGNsYW5nIEx1YUpJVCBidWlsZHM6PGJyPiZndDs8YnI+Jmd0 OyAxKSBVYnVudHUgMjAgKyBnY2M6IGFsbCB0ZXN0cyB3ZXJlJm5ic3A7cGFzc2VkLjxicj4mZ3Q7 IDIpIFVidW50dSAyMCArIGNsYW5nOiBzb21lIG9mIGdkYiBhbmQgbGxkYiB0ZXN0cyB3ZXJlIGZh aWxlZC48YnI+Jmd0OyAzKSBVYnVudHUgMjQgKyBnY2M6IHNvbWUgb2YgbGxkYiB0ZXN0cyB3ZXJl Jm5ic3A7ZmFpbGVkLjxicj4mZ3Q7IDQpIFVidW50dSAyNCArIGNsYW5nOiBzb21lIG9mIGdkYiBh bmQgbGxkYiB0ZXN0cyB3ZXJlJm5ic3A7ZmFpbGVkLjxicj48YnI+VGhhbmtzIGEgbG90IGZvciB0 aGVzZSBjYXRjaGVzITxicj48YnI+VWJ1bnR1IDI0IGhhcyBMTERCICgxOCkgd2l0aCByZWdyZXNz aW9uLiBJdCBjYW4ndCB1c2UgdGhlIGFycmF5IG9iamVjdDxicj5hcyB0aGUgaW5pdGlhbGl6ZXIg Zm9yIGBsbGRiLnZhbHVlYC4gVGhpcyByZWdyZXNzaW9uIGFmZmVjdHMgdmVyc2lvbnMgMTc8YnI+ LSAxOS4gU2VlIFsxXSBmb3IgdGhlIGRldGFpbHMuPGJyPjxicj5JJ3ZlIGFkZGVkIHRoZSBjb3Jy ZXNwb25kaW5nIHdvcmthcm91bmQgZm9yIGl0Ojxicj49PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PGJyPmRpZmYgLS1naXQg YS9zcmMvbHVhaml0X2RiZy5weSBiL3NyYy9sdWFqaXRfZGJnLnB5PGJyPmluZGV4IDNhM2NhOWI4 Li4yZWRiMTk5YSAxMDA2NDQ8YnI+LS0tIGEvc3JjL2x1YWppdF9kYmcucHk8YnI+KysrIGIvc3Jj L2x1YWppdF9kYmcucHk8YnI+QEAgLTMyNCw3ICszMjQsNyBAQCBjbGFzcyBfTExEQkRlYnVnZ2Vy KERlYnVnZ2VyKTo8YnI+a2V5ID0gaW50KGtleSk8YnI+aWYgdHlwZShrZXkpIGlzIGludDo8YnI+ IyBBbGxvdyBhcnJheSBhY2Nlc3MuPGJyPi0gaWYga2V5ICZndDs9IDA6PGJyPisgaWYga2V5ICZn dDs9IDAgYW5kIG5vdCBsbGRidmFsLnNidmFsdWUuVHlwZUlzUG9pbnRlclR5cGUoKTo8YnI+cmV0 dXJuIGxsZGIudmFsdWUoPGJyPmxsZGJ2YWwuc2J2YWx1ZS5HZXRWYWx1ZUZvckV4cHJlc3Npb25Q YXRoKCdbJWldJyAlIGtleSk8YnI+KTxicj5AQCAtNDc1LDcgKzQ3NSwyMiBAQCBjbGFzcyBfTExE QkRlYnVnZ2VyKERlYnVnZ2VyKTo8YnI+cmV0dXJuIHN0cnB0ci5zYnZhbHVlLnN1bW1hcnk8YnI+ PGJyPmRlZiBsb29rdXBfZ2xvYmFsKHNlbGYsIHN5bWJvbCk6PGJyPi0gcmV0dXJuIGxsZGIudmFs dWUoc2VsZi50YXJnZXQuRmluZEZpcnN0R2xvYmFsVmFyaWFibGUoc3ltYm9sKSk8YnI+KyBzYnZh bHVlID0gc2VsZi50YXJnZXQuRmluZEZpcnN0R2xvYmFsVmFyaWFibGUoc3ltYm9sKTxicj4rIHRw ID0gc2J2YWx1ZS5HZXRUeXBlKCk8YnI+KyAjIFhYWDogTExEQiBpbiB2ZXJzaW9ucyAxNyAtIDE5 IGNhbid0IHVzZSBhbiBhcnJheSBvYmplY3Q8YnI+KyAjIGFzIHRoZSBpbml0aWFsaXplciBmb3Ig YGxsZGIudmFsdWVgIHNpbmNlIGBHZXRWYWx1ZSgpYDxicj4rICMgZm9yIGl0IHJldHVybnMgYE5v bmVgIGxlYWRpbmcgdG8gdGhlIGludmFsaWQgcmVzdWx0Ljxicj4rICMgU2VlIDxhIGhyZWY9Imh0 dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9wdWxsLzkwMTQ0Ij5odHRwczovL2dp dGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvcHVsbC85MDE0NDwvYT4uPGJyPisgaWYgKHNlbGYu dmVyc2lvbiAmbHQ7IDE3IG9yIHNlbGYudmVyc2lvbiAmZ3Q7IDE5KSBvciBcPGJyPisgdHAuR2V0 VHlwZUNsYXNzKCkgIT0gbGxkYi5lVHlwZUNsYXNzQXJyYXk6PGJyPisgcmV0dXJuIGxsZGIudmFs dWUoc2J2YWx1ZSk8YnI+KyBlbHNlOjxicj4rIHB0cl90cCA9IHRwLkdldEFycmF5RWxlbWVudFR5 cGUoKS5HZXRQb2ludGVyVHlwZSgpPGJyPisgcmV0dXJuIHNlbGYuX2xsZGJfdmFsdWVfZnJvbV9y YXcoPGJyPisgc2J2YWx1ZS5HZXRMb2FkQWRkcmVzcygpLDxicj4rIHB0cl90cC5HZXRCeXRlU2l6 ZSgpLDxicj4rIHB0cl90cDxicj4rICk8YnI+PGJyPmRlZiBldmFsKHNlbGYsIGNvbW1hbmQpOjxi cj5pZiBub3QgY29tbWFuZDo8YnI+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTxicj48YnI+UmVnYXJkaW5nIGNsYW5nIGlz c3VlcywgSSBzdXBwb3NlIHRoaXMgaXMgZHVlIHRvIG5vdCBlbm91Z2ggZHdhcmY8YnI+aW5mb3Jt YXRpb24gYWJvdXQgdGhlIG1hY3JvIGRlZmluaXRpb25zLiBUaGF0IGxlYWRzIHRvIHRlc3QgZmFp bHVyZXM8YnI+KGV2ZW4gaWYgdGhlIGV4dGVuc2lvbiB3b3JrcyBjb3JyZWN0bHkpLjxicj48YnI+ SSd2ZSBhZGRlZCB0aGUgZm9sbG93aW5nIGZpeCB3aXRoIGRldGVjdGluZyBpcyB0aGUgcmVxdWly ZWQgbWFjcm88YnI+ZGVmaW5pdGlvbnMgc3VwcG9ydGVkLiBQYXRjaCBpcyBzcGxpdHRlZCB2aWEg dGhlIGNvcnJlc3BvbmRpbmcgY29tbWl0cy48YnI+PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTxicj5kaWZmIC0tZ2l0IGEv dGVzdC90YXJhbnRvb2wtZGVidWdnZXItdGVzdHMvZGVidWctZXh0ZW5zaW9uLXRlc3RzLnB5IGIv dGVzdC90YXJhbnRvb2wtZGVidWdnZXItdGVzdHMvZGVidWctZXh0ZW5zaW9uLXRlc3RzLnB5PGJy PmluZGV4IGI2Nzc5NDJjLi43ZThlYTVhMiAxMDA2NDQ8YnI+LS0tIGEvdGVzdC90YXJhbnRvb2wt ZGVidWdnZXItdGVzdHMvZGVidWctZXh0ZW5zaW9uLXRlc3RzLnB5PGJyPisrKyBiL3Rlc3QvdGFy YW50b29sLWRlYnVnZ2VyLXRlc3RzL2RlYnVnLWV4dGVuc2lvbi10ZXN0cy5weTxicj5AQCAtOTcs NiArOTcsMTAgQEAgSVNfRFVBTE5VTSA9IGV4ZWN1dGVfcHJvY2VzcyhbPGJyPkxVQUpJVF9CSU5B UlksICctZScsICJwcmludChyZXF1aXJlKCdmZmknKS5hYmkoJ2R1YWxudW0nKSkiPGJyPl0pLnN0 cmlwKCkgPT0gJ3RydWUnPGJyPjxicj4rSVNfR0M2NCA9IGV4ZWN1dGVfcHJvY2VzcyhbPGJyPisg TFVBSklUX0JJTkFSWSwgJy1lJywgInByaW50KHJlcXVpcmUoJ2ZmaScpLmFiaSgnZ2M2NCcpKSI8 YnI+K10pLnN0cmlwKCkgPT0gJ3RydWUnPGJyPis8YnI+IyBJZiBpdCBpcyB0aGUgZ3VhcmFudGVl ZCBEVUFMTlVNIGJ1aWxkIChmb3IgZXhhbXBsZSwgb24gYWFyY2g2NCksPGJyPiMgd2UgdXNlIHRo aXMgcmVnZXhwIGZvciB0aGUgZ3VhcmFudGVlZCAnaW50ZWdlcicgY2hlY2sgYW5kPGJyPiMgJ251 bWJlcicgZm9yIHNpbmdsZS1udW1iZXIgYnVpbGQuPGJyPkBAIC0xMzksMjMgKzE0Myw1NCBAQCBj bGFzcyBUZXN0Q2FzZUJhc2UodW5pdHRlc3QuVGVzdENhc2UpOjxicj5zZWxmLmFzc2VydFJlZ2V4 KHNlbGYub3V0cHV0LCBzZWxmLnBhdHRlcm4uc3RyaXAoKSk8YnI+PGJyPjxicj4tIyBMTERCICsg Q2xhbmcgb24gbWFjT1MgY2FuJ3QgcHJvZHVjZSBkZWJ1ZyBpbmZvIGZvciB0aGUgQy1kZWZpbmVk PGJyPi0jIG1hY3Jvcy4gVGh1cywgd2UgaGFyZGNvZGVkIGl0cyB2YWx1ZSBtYW51YWxseS48YnI+ KyMgVGVzdCB0aGF0IHRoZSBlbWl0dGVkIGRlYnVnIGluZm9ybWF0aW9uIHN1cHBvcnRzIG1hY3Jv PGJyPisjIGRlZmluaXRpb25zLjxicj4rZGVmIGNoZWNrX21hY3JvX2RlYnVnX2luZm8oKTo8YnI+ KyBjbWRfZmlsZSA9IHBlcnNpc3QoJ1xuJy5qb2luKFs8YnI+KyAnYiBsal9jZl9wcmludCcsPGJy PisgKlBST0NFU1NfUlVOLDxicj4rICduJyw8YnI+KyAncCBnY3ZhbChMLSZndDtiYXNlKScsPGJy PisgJ3EnLDxicj4rIF0pKTxicj4rIHByb2Nlc3NfY21kID0gWzxicj4rIERFQlVHR0VSLDxicj4r ICpSVU5fQ01EX0ZJTEUsPGJyPisgY21kX2ZpbGUubmFtZSw8YnI+KyBJTkZFUklPUl9BUkdTLDxi cj4rIExVQUpJVF9CSU5BUlksPGJyPisgJy1lJyw8YnI+KyAncHJpbnQoIiIpJzxicj4rIF08YnI+ KyBvdXRwdXQgPSBleGVjdXRlX3Byb2Nlc3MocHJvY2Vzc19jbWQpPGJyPisgY21kX2ZpbGUuY2xv c2UoKTxicj4rIHJldHVybiByZS5zZWFyY2gocidcKEdDb2JqIFwqXCkgJyArIFJYX0FERFIsIG91 dHB1dCkgaXMgbm90IE5vbmU8YnI+Kzxicj4rPGJyPitTVVBQT1JUX01BQ1JPX0VYUEFORCA9IGNo ZWNrX21hY3JvX2RlYnVnX2luZm8oKTxicj4rPGJyPis8YnI+KyMgTExEQiArIENsYW5nIG9uIG1h Y09TIChmb3IgZXhhbXBsZSkgY2FuJ3QgcHJvZHVjZSBkZWJ1ZyBpbmZvPGJyPisjIGZvciB0aGUg Qy1kZWZpbmVkIG1hY3Jvcy4gVGh1cywgd2UgaGFyZGNvZGVkIGl0cyB2YWx1ZSBtYW51YWxseS48 YnI+ZGVmIGdjdmFsKGFyZyk6PGJyPi0gaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOjxicj4t ICMgQXNzdW1lIEdDNjQgYnVpbGQgb25seS48YnI+LSBMSl9HQ1ZNQVNLID0gJygoKHVpbnQ2NF90 KTEgJmx0OyZsdDsgNDcpIC0gMSknPGJyPi0gcmV0dXJuICcoKCgnICsgYXJnICsgJyktJmd0O2dj cikuZ2NwdHI2NCAmYW1wOyAnICsgTEpfR0NWTUFTSyArICcpJzxicj4tIGVsc2U6PGJyPisgaWYg U1VQUE9SVF9NQUNST19FWFBBTkQ6PGJyPnJldHVybiAnZ2N2YWwoJyArIGFyZyArICcpJzxicj4r IGVsc2U6PGJyPisgaWYgSVNfR0M2NDo8YnI+KyBMSl9HQ1ZNQVNLID0gJygoKHVpbnQ2NF90KTEg Jmx0OyZsdDsgNDcpIC0gMSknPGJyPisgcmV0dXJuICcoKCgnICsgYXJnICsgJyktJmd0O2djciku Z2NwdHI2NCAmYW1wOyAnICsgTEpfR0NWTUFTSyArICcpJzxicj4rIGVsc2U6PGJyPisgcmV0dXJu ICcoKCcgKyBhcmcgKyAnKS0mZ3Q7Z2NyKS5nY3B0cjMyJzxicj48YnI+PGJyPmRlZiBtcmVmKGFy ZywgdHApOjxicj4tIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzo8YnI+LSAjIEFzc3VtZSBH QzY0IGJ1aWxkIG9ubHkuPGJyPi0gcmV0dXJuICcoKCcgKyB0cCArICcqKSgnICsgYXJnICsgJyku cHRyNjQpJzxicj4tIGVsc2U6PGJyPisgaWYgU1VQUE9SVF9NQUNST19FWFBBTkQ6PGJyPnJldHVy biAnbXJlZignICsgYXJnICsgJywgJyArIHRwICsgJyknPGJyPisgZWxzZTo8YnI+KyBpZiBJU19H QzY0Ojxicj4rIHJldHVybiAnKCgnICsgdHAgKyAnKikoJyArIGFyZyArICcpLnB0cjY0KSc8YnI+ KyBlbHNlOjxicj4rIHJldHVybiAnKCgnICsgdHAgKyAnKikoJyArIGFyZyArICcpLnB0cjMyKSc8 YnI+PGJyPjxicj5jbGFzcyBUZXN0TG9hZChUZXN0Q2FzZUJhc2UpOjxicj49PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PGJy Pjxicj5JJ3ZlIGNoZWNrZWQgaW4gVWJ1bnR1IDI0LzI2IERvY2tlcnMsIG91ciBDSSAoVWJ1bnR1 IDIwKSwgYW5kIG1hY09TIE0xLjxicj5UZXN0cyBkb24ndCBmYWlsIGFueW1vcmUuPGJyPjxicj4m Z3Q7PGJyPiZndDsgLS08YnI+Jmd0OyBCZXN0IHJlZ2FyZHMsPGJyPiZndDsgRXZnZW5peSBUZW1p cmdhbGVldjxicj4mZ3Q7PGJyPjxicj4mbHQ7c25pcHBlZCZndDs8YnI+PGJyPlsxXTogPGEgaHJl Zj0iaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3B1bGwvOTAxNDQiPmh0dHBz Oi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9wdWxsLzkwMTQ0PC9hPjxicj48YnI+LS08 YnI+QmVzdCByZWdhcmRzLDxicj5TZXJnZXkgS2FwbHVuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+ PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjwvQk9EWT48L0hUTUw+Cg== ----ALT--c47B9650E5216357d266bA3f46F8c8531782037025--