From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id AF9A01F54E for ; Fri, 29 Jul 2022 17:48:48 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sendgrid.me header.i=@sendgrid.me header.b="gkThqeLP"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 9BED4121B52; Sat, 30 Jul 2022 02:48:46 +0900 (JST) Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by neon.ruby-lang.org (Postfix) with ESMTPS id 02240121B52 for ; Sat, 30 Jul 2022 02:48:43 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.me; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc; s=smtpapi; bh=y/7+R+lmvz8FJH89a2adP1W8GbIk4wdcbpHlJW73T0A=; b=gkThqeLPY2P/3qbhgWDg6uQYn590WliWHEIYZmxo6EYB3Tx4IfL64oIRO1cjtEjKQkFc 4jlPek3xRtFLi2lM4F8X+72BJp5yhBSJJrOrvFFzz15sOBdjkx18VfkMhQl1lPn5GXR7Fe TR8buq9jSkCAw2SWxtYrOZbUgxMTLxK4U= Received: by filterdrecv-86cfc59b8c-vwnsc with SMTP id filterdrecv-86cfc59b8c-vwnsc-1-62E41D79-1F 2022-07-29 17:48:41.701251525 +0000 UTC m=+682952.169667280 Received: from herokuapp.com (unknown) by geopod-ismtpd-4-2 (SG) with ESMTP id 5wExThINSqe1kOqKCoUVAg for ; Fri, 29 Jul 2022 17:48:41.565 +0000 (UTC) Date: Fri, 29 Jul 2022 17:48:41 +0000 (UTC) From: "byroot (Jean Boussier)" Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 18949 X-Redmine-Issue-Author: Eregon X-Redmine-Sender: byroot X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 85776 X-SG-EID: =?us-ascii?Q?Dq8GNIcVqP8cs5uR+EIAabfg3LE9XdC6dZ5KYNrMpf6VzBWG6HqArcu5raQjXL?= =?us-ascii?Q?IGTFdxKHUt7++67+KD54pNYXheirMcsUIf3sdgF?= =?us-ascii?Q?Riq06i5VHt0mW5a6U6myagSPwyff215B2t+EXxV?= =?us-ascii?Q?mArTDnWtFcnO3chZdrexJXlgr1=2F0kDxKrWXL5dX?= =?us-ascii?Q?DtoAeTRVtOdi=2FPDba0XjLLZbeolmoaSFHyJEn9m?= =?us-ascii?Q?VM5QD+jMQ7e0hIlAJN8N=2FtoD22+HmeKezx8PisQ?= =?us-ascii?Q?NHsqOhrEIFuSXHYgFEiWw=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109372 Subject: [ruby-core:109372] [Ruby master Feature#18949] Deprecate and remove replicate and dummy encodings X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Reply-To: Ruby developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE4OTQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4N Cg0KDQpCYXNlZCBvbiBteSByZWNlbnQgd29yayBvbiBgU3RyaW5nIzw8YCBwZXJmb3JtYW5jZSwg SSBjb25jdXIgdGhhdCBlbmNvZGluZyBtYW5hZ2VtZW50IG9mdGVuIHRha2VzIGxvbmdlciB0aGFu IHRoZSBhY3R1YWwgc3RyaW5nIG9wZXJhdGlvbiwgYW5kIHRoYXQgYGdldF9hY3R1YWxfZW5jb2Rp bmcoKWAgaXMgYSB2ZXJ5IGJpZyBvZmZlbmRlci4NCg0KSSdtIGFsc28gY3VyaW91cyB3aGF0IHdh cyB0aGUgaW50ZW5kZWQgdXNlIGZvciBkdW1teSBlbmNvZGluZ3MgYW5kIHdoZXRoZXIgaXQncyBh Y3R1YWxseSBpbiB1c2Ugc29tZXdoZXJlLg0KDQpTbyBJJ20gaW4gdG90YWwgc3VwcG9ydCBvZiB0 aGlzIHByb3Bvc2FsLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQpGZWF0dXJlICMxODk0OTogRGVwcmVjYXRlIGFuZCByZW1vdmUgcmVwbGljYXRlIGFuZCBkdW1t eSBlbmNvZGluZ3MNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODk0OSNjaGFu Z2UtOTg1MjENCg0KKiBBdXRob3I6IEVyZWdvbiAoQmVub2l0IERhbG96ZSkNCiogU3RhdHVzOiBP cGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NClJ1YnkgaGFzIGEgbG90IG9mIGFjY2lkZW50YWwgY29tcGxleGl0eS4NClNvbWV0 aW1lcyBpdCBiZWNvbWVzIGNsZWFyIHNvbWUgZmVhdHVyZXMgYnJpbmcgYSBsb3Qgb2YgY29tcGxl eGl0eSBhbmQgeWV0IHByb3ZpZGUgbGl0dGxlIHZhbHVlIG9yIGFyZSB1c2VkIHZlcnkgcmFyZWx5 Lg0KQWxzbyBtb3N0IFJ1YnkgdXNlcnMgZG8gbm90IGV2ZW4ga25vdyBhYm91dCB0aGVzZSBmZWF0 dXJlcy4NClJlcGxpY2F0ZSBhbmQgZHVtbXkgZW5jb2RpbmdzIHNlZW0gdG8gY2xlYXJseSBmYWxs IGludG8gdGhpcyBjYXRlZ29yeSwgYWxtb3N0IG5vYm9keSB1c2VzIHRoZW0gYnV0IHRoZXkgYWRk IGEgc2lnbmlmaWNhbnQgY29tcGxleGl0eSBhbmQgYWxzbyBhZGQgYSBzaWduaWZpY2FudCBwZXJm b3JtYW5jZSBvdmVyaGVhZC4NCk5vdGFibHksIHRoZSBleGlzdGVuY2Ugb2YgdGhvc2UgbWVhbnMg dGhlIG51bWJlciBvZiBlbmNvZGluZ3MgaW4gYSBSdWJ5IHJ1bnRpbWUgaXMgYWN0dWFsbHkgdmFy aWFibGUgYW5kIG5vdCBmaXhlZC4NClRoYXQgbWVhbnMgZXh0cmEgc3luY2hyb25pemF0aW9uLCBo YXNodGFibGUgbG9va3VwcywgaW5kaXJlY3Rpb25zLCBmdW5jdGlvbiBjYWxscywgZXRjLg0KDQoj IyBSZXBsaWNhdGUgRW5jb2RpbmdzDQoNClJlcGxpY2F0ZSBlbmNvZGluZ3MgYXJlIGNyZWF0ZWQg dXNpbmcgYEVuY29kaW5nI3JlcGxpY2F0ZShuYW1lKWAuDQpJdCBhbG1vc3Qgc291bmRzIGxpa2Ug YW4gYWxpYXMgYnV0IGluIGZhY3QgaXQgaXMgbW9yZSB0aGFuIHRoYXQgYW5kIGNyZWF0ZXMgYSBu ZXcgRW5jb2Rpbmcgb2JqZWN0LCB3aGljaCBjYW4gYmUgdXNlZCBieSBhIFN0cmluZzoNCmBgYHJ1 YnkNCmUgPSBFbmNvZGluZzo6VVNfQVNDSUkucmVwbGljYXRlKCdNWS1VUy1BU0NJSScpDQpzID0g ImFiYyIuZm9yY2VfZW5jb2RpbmcoZSkNCnAgcy5lbmNvZGluZyAjID0+IGUNCnAgcy5lbmNvZGlu Zy5uYW1lICMgPT4gJ01ZLVVTLUFTQ0lJJw0KYGBgDQoNClRoaXMgc2VlbXMgY29tcGxldGVseSB1 c2VsZXNzLg0KVGhlcmUgaXMgYW4gb2J2aW91cyBmaXJzdCBzdGVwIGhlcmUgd2hpY2ggaXMgdG8g Y2hhbmdlIGBFbmNvZGluZyNyZXBsaWNhdGVgIHRvIHJldHVybiB0aGUgcmVjZWl2ZXIsIGFuZCBq dXN0IGluc3RhbGwgYW4gYWxpYXMgZm9yIGl0Lg0KVGhhdCBhdm9pZHMgY3JlYXRpbmcgbW9yZSBl bmNvZGluZyBpbnN0YW5jZXMgbmVlZGxlc3NseS4NCg0KSSB0aGluayB3ZSBzaG91bGQgYWxzbyBk ZXByZWNhdGUgYW5kIHJlbW92ZSB0aGlzIG1ldGhvZCB0aG91Z2gsIGl0IGlzIG5ldmVyIGEgZ29v ZCBpZGVhIHRvIGhhdmUgYSBnbG9iYWwgbXV0YWJsZSBtYXAgbGlrZSB0aGlzLg0KSWYgc29tZW9u ZSB3YW50IGV4dHJhIGFsaWFzZXMgZm9yIGVuY29kaW5ncywgdGhleSBjYW4gZWFzaWx5IHRvIGRv IHNvIGJ5IGhhdmluZyB0aGVpciBvd24gSGFzaDogYHsgYWxpYXMgPT4gZW5jb2RpbmcgfS5mZXRj aChuYW1lKSB7IEVuY29kaW5nLmZpbmQobmFtZSkgfWAuDQoNCiMjIER1bW15IEVuY29kaW5ncw0K DQpEdW1teSBlbmNvZGluZ3MgYXJlIG5vdCByZWFsIGVuY29kaW5ncy4gVGhleSBhcmUgYXJ0aWZp Y2lhbCBlbmNvZGluZ3MgZGVzaWduZWQgdG8gbG9vayBsaWtlIGVuY29kaW5ncywgYnV0IGRvbid0 IGZ1bmN0aW9uIGFzIGVuY29kaW5ncyBpbiBSdWJ5Lg0KRnJvbSB0aGUgZG9jczoNCmBgYA0KZW5j LmR1bW15PyAtPiB0cnVlIG9yIGZhbHNlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClJldHVybnMgdHJ1ZSBm b3IgZHVtbXkgZW5jb2RpbmdzLiBBIGR1bW15IGVuY29kaW5nIGlzIGFuIGVuY29kaW5nIGZvcg0K d2hpY2ggY2hhcmFjdGVyIGhhbmRsaW5nIGlzIG5vdCBwcm9wZXJseSBpbXBsZW1lbnRlZC4gSXQg aXMgdXNlZCBmb3INCnN0YXRlZnVsIGVuY29kaW5ncy4NCmBgYA0KDQpJIHdvbmRlciB3aHkgd2Ug aGF2ZSB0aG9zZSBoYWxmLWltcGxlbWVudGVkIGVuY29kaW5ncyBpbiBjb3JlLCBpdCBzb3VuZHMg dG8gbWUgbGlrZSB1bmZpbmlzaGVkIHdvcmsgd2hpY2ggc2hvdWxkIG5vdCBoYXZlIGJlZW4gbWVy Z2VkLg0KDQpUaGUgImNvZGVwb2ludHMiIG9mIGR1bW15IGVuY29kaW5ncyBhcmUganVzdCAiYnl0 ZXMiIGFuZCBzbyB0aGV5IGJlaGF2ZSB0aGUgc2FtZSBhcyBgRW5jb2Rpbmc6OkJJTkFSWWAsIHdp dGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgVVRGLTE2IGFuZCBVVEYtMzIgZHVtbXkgZW5jb2Rpbmdz Lg0KDQojIyMgVVRGLTE2IGFuZCBVVEYtMzIgZHVtbXkgZW5jb2RpbmdzDQoNClRoZXNlIHR3byBh cmUgc3BlY2lhbCBkdW1teSBlbmNvZGluZ3MuDQpXaGF0IHRoZXkgZG8gaXMgdGhleSBzY2FuIHRo ZSBmaXJzdCAyIG9yIDQgYnl0ZXMgb2YgdGhlIFN0cmluZywgYW5kIGlmIHRob3NlIGJ5dGVzIGFy ZSBhIGJ5dGUtb3JkZXIgbWFyayAoQk9NKSwNCnRoZSB0cnVlICJhY3R1YWwiIGVuY29kaW5nIGlz IHJlc29sdmVkIHRvIFVURi0xNkJFL1VURi0xNkxFIG9yIFVURi0zMkJFL1VURi0zMkxFLg0KT3Ro ZXJ3aXNlLCBgRW5jb2Rpbmc6OkJJTkFSWWAgaXMgcmV0dXJuZWQuDQpUaGlzIGxvZ2ljIGlzIGRv bmUgYnkgYGdldF9hY3R1YWxfZW5jb2RpbmcoKWAuDQoNCldoYXQgaXMgd2VpcmQgaXMgdGhpcyBj aGVjayBpcyBub3QgZG9uZSBvbiBTdHJpbmcgY3JlYXRpb24sIG5vLCBpdCBpcyBkb25lICpldmVy eSB0aW1lKiB0aGUgZW5jb2Rpbmcgb2YgdGhhdCBTdHJpbmcgaXMgYWNjZXNzZWQgKGFuZCB0aGUg cmVzdWx0IGlzIG5vdCBzdG9yZWQgb24gdGhlIFN0cmluZykuDQpUaGF0IGlzIGEgbmVlZGxlc3Mg b3ZlcmhlYWQgYW5kIHJlYWxseSB1bnJlbGlhYmxlIHNlbWFudGljcy4NCkRvIHdlIHJlYWxseSB3 YW50IGEgU3RyaW5nIHdoaWNoIGF1dG9tYWdpY2FsbHkgY2hhbmdlcyBiZXR3ZWVuIFVURi0xNkxF IGFuZCBVVEYtMTZCRSBiYXNlZCBvbiBtdXRhdGluZyBpdHMgYnl0ZXM/IEkgdGhpbmsgbm9ib2R5 IHdhbnRzIHRoYXQ6DQpgYGBydWJ5DQpzID0gIlx4RkZceEZFYVx4MDBiXHgwMGNceDAwZFx4MDAi LmZvcmNlX2VuY29kaW5nKCJVVEYtMTYiKQ0KcCBzICMgPT4gIlx1RkVGRmFiY2QiDQpzLnNldGJ5 dGUgMCwgMjU0DQpzLnNldGJ5dGUgMSwgMjU1DQpwIHMgIyA9PiAiXHVGRUZGXHU2MTAwXHU2MjAw XHU2MzAwXHU2NDAwIg0KYGBgDQoNCkkgdGhpbmsgdGhlIHBhdGggaXMgY2xlYXIsIHdlIHNob3Vs ZCBkZXByZWNhdGUgYW5kIHRoZW4gcmVtb3ZlIEVuY29kaW5nOjpVVEZfMTYgYW5kIEVuY29kaW5n OjpVVEZfMzIgKGR1bW15IGVuY29kaW5ncykuDQpBbmQgdGhlbiB3ZSBubyBsb25nZXIgbmVlZCBg Z2V0X2FjdHVhbF9lbmNvZGluZygpYCBhbmQgdGhlIG92ZXJoZWFkIGl0IGFkZHMgdG8gZXZlcnkg U3RyaW5nIG1ldGhvZC4NCg0KV2UgY291bGQgYWxzbyBrZWVwIHRob3NlIGNvbnN0YW50cyBhbmQg bWFrZSB0aGVtIHJlZmVyIHRoZSBuYXRpdmUtZW5kaWFuIFVURi0xNi8zMi4NCkJ1dCB0aGF0IGNv dWxkIGNhdXNlIGNvbmZ1c2luZyBlcnJvcnMgYXMgd2Ugd291bGQgY2hhbmdlIHRoZSBtZWFuaW5n IG9mIHRoZW0uDQpXZSBjb3VsZCBhZGQgYEVuY29kaW5nOjpVVEZfMTZORWAgLyBgRW5jb2Rpbmc6 OlVURl8xNl9OQVRJVkVfRU5ESUFOYCBpZiB0aGF0IGlzIHVzZWZ1bC4NCg0KQW5vdGhlciBwb3Nz aWJpbGl0eSB3b3VsZCBiZSB0byByZXNvbHZlIHRoZXNlIGVuY29kaW5ncyBvbiBTdHJpbmcgY3Jl YXRpb24sIGxpa2U6DQpgYGANCiJceEZGXHhGRSIuZm9yY2VfZW5jb2RpbmcoIlVURi0xNiIpLmVu Y29kaW5nICMgPT4gVVRGLTE2TEUNClN0cmluZy5uZXcoIlx4RkZceEZFIiwgZW5jb2Rpbmc6IEVu Y29kaW5nOjpVVEZfMTYpLmVuY29kaW5nICMgPT4gVVRGLTE2TEUNCiJhYiIuZm9yY2VfZW5jb2Rp bmcoIlVURi0xNiIpLmVuY29kaW5nICMgZXhjZXB0aW9uLCBub3QgYSBCT00NClN0cmluZy5uZXco ImFiIiwgZW5jb2Rpbmc6IEVuY29kaW5nOjpVVEZfMTYpLmVuY29kaW5nICMgZXhjZXB0aW9uLCBu b3QgYSBCT00NCmBgYA0KSSB0aGluayBpdCBpcyB1bm5lY2Vzc2FyeSB0byBrZWVwIHN1Y2ggY29t cGxleGl0eSB0aG91Z2guDQpBIGNsYXNzIG1ldGhvZCBvbiBTdHJpbmcgb3IgRW5jb2RpbmcgbGlr ZSBlLmcuIGBFbmNvZGluZy5maW5kX2Zyb21fYm9tKHN0cmluZylgIGlzIHNvIG11Y2ggY2xlYXJl ciBhbmQgZWZmaWNpZW50IChubyBuZWVkIHRvIHNwZWNpYWwgY2FzZSB0aG9zZSBlbmNvZGluZ3Mg aW4gU3RyaW5nLm5ldywgI2ZvcmNlX2VuY29kaW5nLCBldGMpLg0KDQpGV0lXIEpSdWJ5IHNlZW1z IHRvIHVzZSBgZ2V0QWN0dWFsRW5jb2RpbmcoKWAgb25seSBpbiAyIHBsYWNlcyAoc2NhbkZvckNv ZGVSYW5nZSwgaW5zcGVjdCksIHdoaWNoIGlzIGFuIGluZGljYXRpb24gdGhvc2UgZHVtbXkgVVRG IGVuY29kaW5ncyBhcmUgYmFyZWx5IHVzZWQgaWYgZXZlci4gU2ltaWxhcmx5LCBUcnVmZmxlUnVi eSBvbmx5IGhhcyA0IHVzYWdlcyBvZiBgR2V0QWN0dWFsRW5jb2RpbmdOb2RlYC4NCg0KIyMjIEV4 aXN0aW5nIGR1bW15IGVuY29kaW5ncw0KDQpgYGANCj4gRW5jb2RpbmcubGlzdC5zZWxlY3QoJjpk dW1teT8pIA0KWyM8RW5jb2Rpbmc6VVRGLTE2IChkdW1teSk+LCAgIzxFbmNvZGluZzpVVEYtMzIg KGR1bW15KT4sDQogIzxFbmNvZGluZzpJQk0wMzcgKGR1bW15KT4sICM8RW5jb2Rpbmc6VVRGLTcg KGR1bW15KT4sDQogIzxFbmNvZGluZzpJU08tMjAyMi1KUCAoZHVtbXkpPiwgIzxFbmNvZGluZzpJ U08tMjAyMi1KUC0yIChkdW1teSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLUtEREkgKGR1bW15 KT4sDQogIzxFbmNvZGluZzpDUDUwMjIwIChkdW1teSk+LCAjPEVuY29kaW5nOkNQNTAyMjEgKGR1 bW15KT5dDQpgYGANCg0KU28gYmVzaWRlcyBVVEYtMTYvVVRGLTMyIGR1bW15LCBpdCdzIG9ubHkg NyBlbmNvZGluZ3MuDQpEb2VzIGFueW9uZSB1c2Ugb25lIG9mIHRoZXNlIDcgZHVtbXkgZW5jb2Rp bmdzPw0KDQpXaGF0IGlzIGludGVyZXN0aW5nIHRvIG5vdGUsIGlzIHRoYXQgdGhlc2UgZW5jb2Rp bmdzIGFyZSBleGFjdGx5IHRoZSBvbmVzIHRoYXQgYXJlIGFsc28gbm90IEFTQ0lJLWNvbXBhdGli bGUsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBVVEYtMTZCRS9VVEYtMTZMRS9VVEYtMzJCRS9VVEYt MzJMRSAobm9uLWR1bW15KS4NCkFzIGEgbm90ZSwgVVRGLXsxNiwzMn17QkUsTEV9IGFyZSBBU0NJ SS1jb21wYXRpYmxlIGluIGNvZGVwb2ludHMgYnV0IG5vdCBpbiBieXRlcywgYW5kIFJ1YnkgdXNl cyB0aGUgYnl0ZXMgZGVmaW5pdGlvbiBvZiBBU0NJSS1jb21wYXRpYmxlLg0KVGhlcmUgaXMgcG90 ZW50aWFsIHRvIHNpbXBsaWZ5IGVuY29kaW5nIGNvbXBhdGliaWxpdHkgcnVsZXMgYW5kIGVuY29k aW5nIGNvbXBhdGliaWxpdHkgY2hlY2tzIGJhc2VkIG9uIHRoYXQuDQpTbyB3aGF0IHRoaXMgbWVh bnMgaXMgaWYgd2UgcmVtb3ZlZCBkdW1teSBlbmNvZGluZ3MsIGFsbCBlbmNvZGluZ3MgZXhjZXB0 IFVURi17MTYsMzJ9e0JFLExFfSB3b3VsZCBiZSBBU0NJSS1jb21wYXRpYmxlLCB3aGljaCB3b3Vs ZCBsZWFkIHRvIHNpZ25pZmljYW50IHNpbXBsaWZpY2F0aW9ucyBmb3IgbWFueSBzdHJpbmcgb3Bl cmF0aW9ucyB3aGljaCBjdXJyZW50bHkgbmVlZCB0byBoYW5kbGUgZHVtbXkgZW5jb2RpbmdzIHNw ZWNpYWxseS4NClVuaWNvZGUgZW5jb2RpbmdzIGxpa2UgVVRGLXsxNiwzMn17QkUsTEV9IGFscmVh ZHkgaGF2ZSBzcGVjaWFsIGJlaGF2aW9yIGZvciBzb21lIFJ1YnkgbWV0aG9kcywgc28gdGhvc2Ug YXJlIGFscmVhZHkgaGFuZGxlZCBzcGVjaWFsbHkgaW4gc29tZSBwbGFjZXMgKHRoZXkgYXJlIHRo ZSBvbmx5IGVuY29kaW5ncyB3aXRoIG1pbkxlbmd0aCA+IDEpLg0KDQpgYGANCj4gRW5jb2Rpbmcu bGlzdC5yZWplY3QoJjphc2NpaV9jb21wYXRpYmxlPykNClsjPEVuY29kaW5nOlVURi0xNkJFPiwg IzxFbmNvZGluZzpVVEYtMTZMRT4sDQogIzxFbmNvZGluZzpVVEYtMzJCRT4sICM8RW5jb2Rpbmc6 VVRGLTMyTEU+LA0KICM8RW5jb2Rpbmc6VVRGLTE2IChkdW1teSk+LCAjPEVuY29kaW5nOlVURi0z MiAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklCTTAzNyAoZHVtbXkpPiwgIzxFbmNvZGluZzpVVEYt NyAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklTTy0yMDIyLUpQIChkdW1teSk+LCAjPEVuY29kaW5n OklTTy0yMDIyLUpQLTIgKGR1bW15KT4sICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAtS0RESSAoZHVt bXkpPiwNCiAjPEVuY29kaW5nOkNQNTAyMjAgKGR1bW15KT4sICM8RW5jb2Rpbmc6Q1A1MDIyMSAo ZHVtbXkpPl0NCmBgYA0KDQpXaGF0IGNhbiB3ZSBkbyB3aXRoIHN1Y2ggYSBkdW1teSBub24tQVND SUktY29tcGF0aWJsZSBlbmNvZGluZz8NCkFsbW9zdCBub3RoaW5nIHVzZWZ1bDoNCmBgYHJ1YnkN CnMgPSAiYWJjIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAiXHg4MVx4ODJceDgzIg0KPiBzLmJ5dGVz DQo9PiBbMTI5LCAxMzAsIDEzMV0NCj4gcy5jb2RlcG9pbnRzDQo9PiBbMTI5LCAxMzAsIDEzMV0N Cj4gcyA9PSAiYWJjIg0KPT4gZmFsc2UNCj4gIsOpdMOpIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAi XHg1MVx4QTNceDUxIg0KYGBgDQoNClNvIGFib3V0IHRoZSBvbmx5IHRoaW5nIHRoYXQgd29ya3Mg d2l0aCB0aGVtIGlzIGBTdHJpbmcjZW5jb2RlYC4NCg0KSSB0aGluayB3ZSBjb3VsZCBwcmVzZXJ2 ZSB0aGF0IGZ1bmN0aW9uYWxpdHksIGlmIGFjdHVhbGx5IHVzZWQgKGRvZXMgYW55b25lIHVzZSBv bmUgb2YgdGhlc2UgNyBkdW1teSBlbmNvZGluZ3M/KSwgdGhyb3VnaDoNCmBgYHJ1YnkNCj4gIsOp dMOpIi5lbmNvZGUoIklCTTAzNyIpDQo9PiAiXHg1MVx4QTNceDUxIiAoLmVuY29kaW5nID09IEJJ TkFSWSkNCj4gIlx4NTFceEEzXHg1MSIuZW5jb2RlKCJVVEYtOCIsICJJQk0wMzciKSAjIGVuY29k ZSBmcm9tIElCTTAzNyB0byBVVEYtOA0KPT4gIsOpdMOpIiAoLmVuY29kaW5nID09IFVURi04KQ0K YGBgDQoNClRoYXQgd2F5IHRoZXJlIGlzIG5vIG5lZWQgZm9yIHRob3NlIHRvIGJlIEVuY29kaW5n IGluc3RhbmNlcywgd2Ugd291bGQgb25seSBuZWVkIHRoZSBjb252ZXJzaW9uIHRhYmxlcy4NCg0K SXQgaXMgZXZlbiBiZXR0ZXIgaWYgd2UgY2FuIHJlbW92ZSB0aGVtLCBzbyB0aGUgbm90aW9uIG9m ICJkdW1teSBlbmNvZGluZ3MiIGNhbiBkaXNhcHBlYXIgY29tcGxldGVseSBhbmQgbm9ib2R5IG5l ZWRzIHRvIHVuZGVyc3RhbmQgb3IgaW1wbGVtZW50IHRoZW0uDQoNCiMjIyByYl9kZWZpbmVfZHVt bXlfZW5jb2RpbmcobmFtZSkNCg0KVGhlIEMtQVBJIGhhcyBgcmJfZGVmaW5lX2R1bW15X2VuY29k aW5nKGNvbnN0IGNoYXIgKm5hbWUpYC4NClRoaXMgY3JlYXRlcyBhIG5ldyBFbmNvZGluZyBpbnN0 YW5jZSB3aXRoIGBkdW1teT89dHJ1ZWAsIGFuZCBpdCBpcyBhbHNvIG5vbi1BU0NJSS1jb21wYXRp YmxlLg0KVGhlcmUgc2VlbXMgdG8gYmUgbm8gcHVycG9zZSB0byB0aGlzIGJlc2lkZXMgc3Rvcmlu ZyB0aGUgbWV0YWRhdGEgb2YgYW4gZW5jb2Rpbmcgd2hpY2ggZG9lcyBub3QgZXhpc3QgaW4gUnVi eS4NClRoaXMgc2VlbXMgYSByZWFsbHkgZXhwZW5zaXZlL2NvbXBsZXggd2F5IHRvIGhhbmRsZSB0 aGF0IGZyb20gdGhlIFZNIHBvaW50IG9mIHZpZXcgKGJlY2F1c2UgaXQgZHluYW1pY2FsbHkgY3Jl YXRlcyBhbiBFbmNvZGluZyBhbmQgYWRkIGl0IHRvIGxpc3RzL21hcHMvZXRjKS4NCkEgc2ltcGxl IHJlcGxhY2VtZW50IHdvdWxkIGJlIHRvIG1hcmsgdGhlIFN0cmluZyBhcyBCSU5BUlkgYW5kIHNh dmUgdGhlIGVuY29kaW5nIG5hbWUgYXMgYW4gaW5zdGFuY2UgdmFyaWFibGUgb2YgdGhhdCBTdHJp bmcuDQpTaW5jZSBhbnl3YXkgUnVieSBjYW4ndCB1bmRlcnN0YW5kIGFueXRoaW5nIGFib3V0IHRo YXQgU3RyaW5nLCBpdCdzIGp1c3QgcmF3IGJ5dGVzIHRvIFJ1YnkncyBleWVzLg0KDQojIyBTdW1t YXJ5DQoNCkkgc3VnZ2VzdCB3ZSBkZXByZWNhdGUgcmVwbGljYXRlIGFuZCBkdW1teSBlbmNvZGlu Z3MgaW4gUnVieSAzLjIuDQpBbmQgdGhlbiB3ZSByZW1vdmUgdGhlbSBpbiB0aGUgbmV4dCB2ZXJz aW9uLg0KDQpUaGlzIHdpbGwgc2lnbmlmaWNhbnRseSBzaW1wbGlmeSBzdHJpbmctcmVsYXRlZCBt ZXRob2RzLCBhbmQgdGhlIGJlaGF2aW9yIGV4cG9zZWQgdG8gUnVieSB1c2Vycy4NCg0KSXQgd2ls bCBhbHNvIHNpZ25pZmljYW50bHkgc3BlZWR1cCBlbmNvZGluZyBsb29rdXAgaW4gQ1J1YnkgKGFu ZCBvdGhlciBSdWJ5IGltcGxlbWVudGF0aW9ucykuDQpXaXRoIGEgZml4ZWQgbnVtYmVyIG9mIGVu Y29kaW5ncyB3ZSBjYW4gZW5zdXJlIGFsbCBlbmNvZGluZyBpbmRpY2VzIGZpdCBpbiA3IGJpdHMs IGFuZCBgRU5DT0RJTkdfR0VUYCBjYW4gYmUgc2ltcGx5IGBSQl9FTkNPRElOR19HRVRfSU5MSU5F RGAuDQpgZ2V0X2FjdHVhbF9lbmNvZGluZygpYCB3aWxsIGJlIGdvbmUgYW5kIGl0cyBvdmVyaGVh ZCBhcyB3ZWxsLg0KYHJiX2VuY19mcm9tX2luZGV4KClgIHdvdWxkIGJlIGp1c3QgYHJldHVybiBn bG9iYWxfZW5jX3RhYmxlLT5saXN0W2luZGV4XS5lbmM7YCwgaW5zdGVhZCBvZiB0aGUgZXhwZW5z aXZlIGJlaGF2aW9yIGN1cnJlbnRseSB3aXRoIGBHTE9CQUxfRU5DX1RBQkxFX0VWQUxgIHdoaWNo IHRha2VzIGEgbG9jayBhbmQgbW9yZSB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBSYWN0b3JzLg0K TWFueSBjaGVja3MgaW4gdGhlc2UgbWV0aG9kcyB3b3VsZCBiZSByZW1vdmVkIGFzIHdlbGwuDQpZ ZXQgYW5vdGhlciBpbXByb3ZlbWVudCB3b3VsZCBiZSB0byBsb2FkIGFsbCBlbmNvZGluZ3MgZWFn ZXJseSwgdGhhdCBpcyBzbWFsbCBhbmQgZmFzdCBpbiBteSBleHBlcmllbmNlLCB3aGF0IGlzIHNs b3cgYW5kIGJpZyBpcyB0aGUgY29udmVyc2lvbiB0YWJsZXMsIHRoYXQnZCBzaW1wbGlmeSBgbXVz dF9lbmNpbmRleCgpYCBmdXJ0aGVyLg0KVGhlc2UgY2hhbmdlcyB3b3VsZCBhZmZlY3QgbW9zdCBT dHJpbmcgbWV0aG9kcywgd2hpY2ggdXNlDQpgYGANClNUUl9FTkNfR0VULT5nZXRfZW5jb2Rpbmcg d2hpY2ggZG9lczoNCiAgZ2V0X2FjdHVhbF9lbmNvZGluZy0+cmJfZW5jX2Zyb21faW5kZXggYW5k IHBvc3NpYmx5IC0+ZW5jX2Zyb21faW5kZXgNCiAgRU5DT0RJTkdfR0VULT5SQl9FTkNPRElOR19H RVRfSU5MSU5FRCBhbmQgcG9zc2libHkgLT5yYl9lbmNfZ2V0X2luZGV4LT5lbmNfZ2V0X2luZGV4 X3N0ci0+cmJfYXR0cl9nZXQNCmBgYA0KU29tZSBvZiB0aGVzZSBkZXRhaWxzIGFyZSBtZW50aW9u ZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzYwOTUjZGlzY3Vzc2lvbl9y OTE1MTQ5NzA4Lg0KVGhlIG92ZXJoZWFkIGlzIHNvIGxhcmdlIHRoYXQgaXQgaXMgd29ydGggaGFu ZGxpbmcgc29tZSBoYXJkY29kZWQgZW5jb2RpbmcgaW5kaWNlcyBkaXJlY3RseSBpbiBTdHJpbmcg bWV0aG9kcy4NClRoaXMgZmVlbHMgd3JvbmcsIGdldHRpbmcgdGhlIGVuY29kaW5nIGZyb20gYSBT dHJpbmcgc2hvdWxkIGJlIHNpbXBsZSwgc3RyYWlnaHRmb3J3YXJkIGFuZCBmYXN0Lg0KDQpGdXJ0 aGVyIG9wdGltaXphdGlvbnMgd2lsbCBiZSB1bmxvY2tlZCBhcyB0aGUgZW5jb2RpbmcgbGlzdCBi ZWNvbWVzIGZpeGVkIGFuZCBpbW11dGFibGUuDQpGb3IgZXhhbXBsZSwgdGhlIG5hbWUtdG8tRW5j b2RpbmcgbWFwIGlzIHRoZW4gaW1tdXRhYmxlIGFuZCBjb3VsZCB1c2UgcGVyZmVjdCBoYXNoaW5n Lg0KSW5saW5lIGNhY2hpbmcgdGhvc2UgbG9va3VwcyBhbHNvIGJlY29tZXMgZWFzaWVyIGFzIHRo ZSB0aGUgbWFwIGNhbm5vdCBjaGFuZ2UuDQpBbHNvIHRoYXQgbWFwIHdvdWxkIG5vIGxvbmdlciBu ZWVkIHN5bmNocm9uaXphdGlvbiwgZXRjLg0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1s YW5nLm9yZy8NCg==