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_SCC_BODY_TEXT_LINE,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 2C5041F54E for ; Mon, 12 Sep 2022 13:23: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="x+YhcR2l"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 55D39120CFE; Mon, 12 Sep 2022 22:23:43 +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 F3BAF120CFE for ; Mon, 12 Sep 2022 22:23:39 +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=r+1v1LnHfGVAckpQoFHCZgO17FluZ73YNOGTswBilH0=; b=x+YhcR2lfWStpgjA3n59jNCPX81InRWvpmoVrWcioQ8PA4/Tjlx+J3UJIV1huGXlq1XW KGIKyXCN1FpPyooAs8EpEsPQdOpP/AJ8j1xyEtEsM2RKmceb+tWMm4bV0PuiAhKf5qYFRX 2yOVf8xN23ey8LRyxZc1OcIkiEiiIbClM= Received: by filterdrecv-5fb7f79bd6-w29cr with SMTP id filterdrecv-5fb7f79bd6-w29cr-1-631F32D9-2E 2022-09-12 13:23:37.714615714 +0000 UTC m=+1523567.852699632 Received: from herokuapp.com (unknown) by geopod-ismtpd-1-2 (SG) with ESMTP id 3uvGN6HMQy6F9RBG39VpGg for ; Mon, 12 Sep 2022 13:23:37.578 +0000 (UTC) Date: Mon, 12 Sep 2022 13:23:37 +0000 (UTC) From: "Eregon (Benoit Daloze)" 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-Issue-Assignee: Eregon X-Redmine-Sender: Eregon 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: 86331 X-SG-EID: =?us-ascii?Q?DvL3W2Xo+Vk=2FeUn3F50L=2FNc8u9NqZCnbE0mXZHiyye4R1YZg=2FtAFc0SAFzpcS=2F?= =?us-ascii?Q?Zcr7BqPN=2FYCcMZBMITNeIci9STxYay0JAJWPbek?= =?us-ascii?Q?rFR+qXsRD3gLDgIbUMfZIbynIkwlMbRcPfBZCFY?= =?us-ascii?Q?tpXsaNxUosb=2Fl5LcE8UnpoCyx=2F=2F798888zt3pDZ?= =?us-ascii?Q?w+cyqyxiq+9HpbvsytvcaLdmNCd6QTpAQ9niw7=2F?= =?us-ascii?Q?HIlylgRrK+kfhe94NvOHSfjlDAGy3xm0RTgxcqm?= =?us-ascii?Q?FeuM1JJ8hl=2FTBKpTNkLtw=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109890 Subject: [ruby-core:109890] [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" SXNzdWUgIzE4OTQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4N Cg0KDQpJbiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvNjMyMyBJIG1hbmFnZWQg dG8gcmVwbGFjZSBhbGwgdXNhZ2VzIG9mIGByYl9kZWZpbmVfZHVtbXlfZW5jb2RpbmcoKWAgYnkg anVzdCBgcmJfcmFpc2UocmJfZUFyZ0Vycm9yLCAidW5rbm93biBlbmNvZGluZyBuYW1lIC0gJXMi LCBuYW1lKTtgLCBhbmQgYWxsIHRlc3RzIHBhc3MuDQpGZWVkYmFjay9yZXZpZXcgYXBwcmVjaWF0 ZWQuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUg IzE4OTQ5OiBEZXByZWNhdGUgYW5kIHJlbW92ZSByZXBsaWNhdGUgYW5kIGR1bW15IGVuY29kaW5n cw0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4OTQ5I2NoYW5nZS05OTEzMw0K DQoqIEF1dGhvcjogRXJlZ29uIChCZW5vaXQgRGFsb3plKQ0KKiBTdGF0dXM6IE9wZW4NCiogUHJp b3JpdHk6IE5vcm1hbA0KKiBBc3NpZ25lZTogRXJlZ29uIChCZW5vaXQgRGFsb3plKQ0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KUnVieSBoYXMgYSBsb3Qgb2YgYWNj aWRlbnRhbCBjb21wbGV4aXR5Lg0KU29tZXRpbWVzIGl0IGJlY29tZXMgY2xlYXIgc29tZSBmZWF0 dXJlcyBicmluZyBhIGxvdCBvZiBjb21wbGV4aXR5IGFuZCB5ZXQgcHJvdmlkZSBsaXR0bGUgdmFs dWUgb3IgYXJlIHVzZWQgdmVyeSByYXJlbHkuDQpBbHNvIG1vc3QgUnVieSB1c2VycyBkbyBub3Qg ZXZlbiBrbm93IGFib3V0IHRoZXNlIGZlYXR1cmVzLg0KUmVwbGljYXRlIGFuZCBkdW1teSBlbmNv ZGluZ3Mgc2VlbSB0byBjbGVhcmx5IGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LCBhbG1vc3Qgbm9i b2R5IHVzZXMgdGhlbSBidXQgdGhleSBhZGQgYSBzaWduaWZpY2FudCBjb21wbGV4aXR5IGFuZCBh bHNvIGFkZCBhIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIG92ZXJoZWFkLg0KTm90YWJseSwgdGhl IGV4aXN0ZW5jZSBvZiB0aG9zZSBtZWFucyB0aGUgbnVtYmVyIG9mIGVuY29kaW5ncyBpbiBhIFJ1 YnkgcnVudGltZSBpcyBhY3R1YWxseSB2YXJpYWJsZSBhbmQgbm90IGZpeGVkLg0KVGhhdCBtZWFu cyBleHRyYSBzeW5jaHJvbml6YXRpb24sIGhhc2h0YWJsZSBsb29rdXBzLCBpbmRpcmVjdGlvbnMs IGZ1bmN0aW9uIGNhbGxzLCBldGMuDQoNCiMjIFJlcGxpY2F0ZSBFbmNvZGluZ3MNCg0KUmVwbGlj YXRlIGVuY29kaW5ncyBhcmUgY3JlYXRlZCB1c2luZyBgRW5jb2RpbmcjcmVwbGljYXRlKG5hbWUp YC4NCkl0IGFsbW9zdCBzb3VuZHMgbGlrZSBhbiBhbGlhcyBidXQgaW4gZmFjdCBpdCBpcyBtb3Jl IHRoYW4gdGhhdCBhbmQgY3JlYXRlcyBhIG5ldyBFbmNvZGluZyBvYmplY3QsIHdoaWNoIGNhbiBi ZSB1c2VkIGJ5IGEgU3RyaW5nOg0KYGBgcnVieQ0KZSA9IEVuY29kaW5nOjpVU19BU0NJSS5yZXBs aWNhdGUoJ01ZLVVTLUFTQ0lJJykNCnMgPSAiYWJjIi5mb3JjZV9lbmNvZGluZyhlKQ0KcCBzLmVu Y29kaW5nICMgPT4gZQ0KcCBzLmVuY29kaW5nLm5hbWUgIyA9PiAnTVktVVMtQVNDSUknDQpgYGAN Cg0KVGhpcyBzZWVtcyBjb21wbGV0ZWx5IHVzZWxlc3MuDQpUaGVyZSBpcyBhbiBvYnZpb3VzIGZp cnN0IHN0ZXAgaGVyZSB3aGljaCBpcyB0byBjaGFuZ2UgYEVuY29kaW5nI3JlcGxpY2F0ZWAgdG8g cmV0dXJuIHRoZSByZWNlaXZlciwgYW5kIGp1c3QgaW5zdGFsbCBhbiBhbGlhcyBmb3IgaXQuDQpU aGF0IGF2b2lkcyBjcmVhdGluZyBtb3JlIGVuY29kaW5nIGluc3RhbmNlcyBuZWVkbGVzc2x5Lg0K DQpJIHRoaW5rIHdlIHNob3VsZCBhbHNvIGRlcHJlY2F0ZSBhbmQgcmVtb3ZlIHRoaXMgbWV0aG9k IHRob3VnaCwgaXQgaXMgbmV2ZXIgYSBnb29kIGlkZWEgdG8gaGF2ZSBhIGdsb2JhbCBtdXRhYmxl IG1hcCBsaWtlIHRoaXMuDQpJZiBzb21lb25lIHdhbnQgZXh0cmEgYWxpYXNlcyBmb3IgZW5jb2Rp bmdzLCB0aGV5IGNhbiBlYXNpbHkgdG8gZG8gc28gYnkgaGF2aW5nIHRoZWlyIG93biBIYXNoOiBg eyBhbGlhcyA9PiBlbmNvZGluZyB9LmZldGNoKG5hbWUpIHsgRW5jb2RpbmcuZmluZChuYW1lKSB9 YC4NCg0KIyMgRHVtbXkgRW5jb2RpbmdzDQoNCkR1bW15IGVuY29kaW5ncyBhcmUgbm90IHJlYWwg ZW5jb2RpbmdzLiBUaGV5IGFyZSBhcnRpZmljaWFsIGVuY29kaW5ncyBkZXNpZ25lZCB0byBsb29r IGxpa2UgZW5jb2RpbmdzLCBidXQgZG9uJ3QgZnVuY3Rpb24gYXMgZW5jb2RpbmdzIGluIFJ1Ynku DQpGcm9tIHRoZSBkb2NzOg0KYGBgDQplbmMuZHVtbXk/IC0+IHRydWUgb3IgZmFsc2UNCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KUmV0dXJucyB0cnVlIGZvciBkdW1teSBlbmNvZGluZ3MuIEEgZHVtbXkgZW5j b2RpbmcgaXMgYW4gZW5jb2RpbmcgZm9yDQp3aGljaCBjaGFyYWN0ZXIgaGFuZGxpbmcgaXMgbm90 IHByb3Blcmx5IGltcGxlbWVudGVkLiBJdCBpcyB1c2VkIGZvcg0Kc3RhdGVmdWwgZW5jb2Rpbmdz Lg0KYGBgDQoNCkkgd29uZGVyIHdoeSB3ZSBoYXZlIHRob3NlIGhhbGYtaW1wbGVtZW50ZWQgZW5j b2RpbmdzIGluIGNvcmUsIGl0IHNvdW5kcyB0byBtZSBsaWtlIHVuZmluaXNoZWQgd29yayB3aGlj aCBzaG91bGQgbm90IGhhdmUgYmVlbiBtZXJnZWQuDQoNClRoZSAiY29kZXBvaW50cyIgb2YgZHVt bXkgZW5jb2RpbmdzIGFyZSBqdXN0ICJieXRlcyIgYW5kIHNvIHRoZXkgYmVoYXZlIHRoZSBzYW1l IGFzIGBFbmNvZGluZzo6QklOQVJZYCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBVVEYtMTYg YW5kIFVURi0zMiBkdW1teSBlbmNvZGluZ3MuDQoNCiMjIyBVVEYtMTYgYW5kIFVURi0zMiBkdW1t eSBlbmNvZGluZ3MNCg0KVGhlc2UgdHdvIGFyZSBzcGVjaWFsIGR1bW15IGVuY29kaW5ncy4NCldo YXQgdGhleSBkbyBpcyB0aGV5IHNjYW4gdGhlIGZpcnN0IDIgb3IgNCBieXRlcyBvZiB0aGUgU3Ry aW5nLCBhbmQgaWYgdGhvc2UgYnl0ZXMgYXJlIGEgYnl0ZS1vcmRlciBtYXJrIChCT00pLA0KdGhl IHRydWUgImFjdHVhbCIgZW5jb2RpbmcgaXMgcmVzb2x2ZWQgdG8gVVRGLTE2QkUvVVRGLTE2TEUg b3IgVVRGLTMyQkUvVVRGLTMyTEUuDQpPdGhlcndpc2UsIGBFbmNvZGluZzo6QklOQVJZYCBpcyBy ZXR1cm5lZC4NClRoaXMgbG9naWMgaXMgZG9uZSBieSBgZ2V0X2FjdHVhbF9lbmNvZGluZygpYC4N Cg0KV2hhdCBpcyB3ZWlyZCBpcyB0aGlzIGNoZWNrIGlzIG5vdCBkb25lIG9uIFN0cmluZyBjcmVh dGlvbiwgbm8sIGl0IGlzIGRvbmUgKmV2ZXJ5IHRpbWUqIHRoZSBlbmNvZGluZyBvZiB0aGF0IFN0 cmluZyBpcyBhY2Nlc3NlZCAoYW5kIHRoZSByZXN1bHQgaXMgbm90IHN0b3JlZCBvbiB0aGUgU3Ry aW5nKS4NClRoYXQgaXMgYSBuZWVkbGVzcyBvdmVyaGVhZCBhbmQgcmVhbGx5IHVucmVsaWFibGUg c2VtYW50aWNzLg0KRG8gd2UgcmVhbGx5IHdhbnQgYSBTdHJpbmcgd2hpY2ggYXV0b21hZ2ljYWxs eSBjaGFuZ2VzIGJldHdlZW4gVVRGLTE2TEUgYW5kIFVURi0xNkJFIGJhc2VkIG9uIG11dGF0aW5n IGl0cyBieXRlcz8gSSB0aGluayBub2JvZHkgd2FudHMgdGhhdDoNCmBgYHJ1YnkNCnMgPSAiXHhG Rlx4RkVhXHgwMGJceDAwY1x4MDBkXHgwMCIuZm9yY2VfZW5jb2RpbmcoIlVURi0xNiIpDQpwIHMg IyA9PiAiXHVGRUZGYWJjZCINCnMuc2V0Ynl0ZSAwLCAyNTQNCnMuc2V0Ynl0ZSAxLCAyNTUNCnAg cyAjID0+ICJcdUZFRkZcdTYxMDBcdTYyMDBcdTYzMDBcdTY0MDAiDQpgYGANCg0KSSB0aGluayB0 aGUgcGF0aCBpcyBjbGVhciwgd2Ugc2hvdWxkIGRlcHJlY2F0ZSBhbmQgdGhlbiByZW1vdmUgRW5j b2Rpbmc6OlVURl8xNiBhbmQgRW5jb2Rpbmc6OlVURl8zMiAoZHVtbXkgZW5jb2RpbmdzKS4NCkFu ZCB0aGVuIHdlIG5vIGxvbmdlciBuZWVkIGBnZXRfYWN0dWFsX2VuY29kaW5nKClgIGFuZCB0aGUg b3ZlcmhlYWQgaXQgYWRkcyB0byBldmVyeSBTdHJpbmcgbWV0aG9kLg0KDQpXZSBjb3VsZCBhbHNv IGtlZXAgdGhvc2UgY29uc3RhbnRzIGFuZCBtYWtlIHRoZW0gcmVmZXIgdGhlIG5hdGl2ZS1lbmRp YW4gVVRGLTE2LzMyLg0KQnV0IHRoYXQgY291bGQgY2F1c2UgY29uZnVzaW5nIGVycm9ycyBhcyB3 ZSB3b3VsZCBjaGFuZ2UgdGhlIG1lYW5pbmcgb2YgdGhlbS4NCldlIGNvdWxkIGFkZCBgRW5jb2Rp bmc6OlVURl8xNk5FYCAvIGBFbmNvZGluZzo6VVRGXzE2X05BVElWRV9FTkRJQU5gIGlmIHRoYXQg aXMgdXNlZnVsLg0KDQpBbm90aGVyIHBvc3NpYmlsaXR5IHdvdWxkIGJlIHRvIHJlc29sdmUgdGhl c2UgZW5jb2RpbmdzIG9uIFN0cmluZyBjcmVhdGlvbiwgbGlrZToNCmBgYA0KIlx4RkZceEZFIi5m b3JjZV9lbmNvZGluZygiVVRGLTE2IikuZW5jb2RpbmcgIyA9PiBVVEYtMTZMRQ0KU3RyaW5nLm5l dygiXHhGRlx4RkUiLCBlbmNvZGluZzogRW5jb2Rpbmc6OlVURl8xNikuZW5jb2RpbmcgIyA9PiBV VEYtMTZMRQ0KImFiIi5mb3JjZV9lbmNvZGluZygiVVRGLTE2IikuZW5jb2RpbmcgIyBleGNlcHRp b24sIG5vdCBhIEJPTQ0KU3RyaW5nLm5ldygiYWIiLCBlbmNvZGluZzogRW5jb2Rpbmc6OlVURl8x NikuZW5jb2RpbmcgIyBleGNlcHRpb24sIG5vdCBhIEJPTQ0KYGBgDQpJIHRoaW5rIGl0IGlzIHVu bmVjZXNzYXJ5IHRvIGtlZXAgc3VjaCBjb21wbGV4aXR5IHRob3VnaC4NCkEgY2xhc3MgbWV0aG9k IG9uIFN0cmluZyBvciBFbmNvZGluZyBsaWtlIGUuZy4gYEVuY29kaW5nLmZpbmRfZnJvbV9ib20o c3RyaW5nKWAgaXMgc28gbXVjaCBjbGVhcmVyIGFuZCBlZmZpY2llbnQgKG5vIG5lZWQgdG8gc3Bl Y2lhbCBjYXNlIHRob3NlIGVuY29kaW5ncyBpbiBTdHJpbmcubmV3LCAjZm9yY2VfZW5jb2Rpbmcs IGV0YykuDQoNCkZXSVcgSlJ1Ynkgc2VlbXMgdG8gdXNlIGBnZXRBY3R1YWxFbmNvZGluZygpYCBv bmx5IGluIDIgcGxhY2VzIChzY2FuRm9yQ29kZVJhbmdlLCBpbnNwZWN0KSwgd2hpY2ggaXMgYW4g aW5kaWNhdGlvbiB0aG9zZSBkdW1teSBVVEYgZW5jb2RpbmdzIGFyZSBiYXJlbHkgdXNlZCBpZiBl dmVyLiBTaW1pbGFybHksIFRydWZmbGVSdWJ5IG9ubHkgaGFzIDQgdXNhZ2VzIG9mIGBHZXRBY3R1 YWxFbmNvZGluZ05vZGVgLg0KDQojIyMgRXhpc3RpbmcgZHVtbXkgZW5jb2RpbmdzDQoNCmBgYA0K PiBFbmNvZGluZy5saXN0LnNlbGVjdCgmOmR1bW15PykgDQpbIzxFbmNvZGluZzpVVEYtMTYgKGR1 bW15KT4sICAjPEVuY29kaW5nOlVURi0zMiAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklCTTAzNyAo ZHVtbXkpPiwgIzxFbmNvZGluZzpVVEYtNyAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklTTy0yMDIy LUpQIChkdW1teSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLTIgKGR1bW15KT4sICM8RW5jb2Rp bmc6SVNPLTIwMjItSlAtS0RESSAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOkNQNTAyMjAgKGR1bW15 KT4sICM8RW5jb2Rpbmc6Q1A1MDIyMSAoZHVtbXkpPl0NCmBgYA0KDQpTbyBiZXNpZGVzIFVURi0x Ni9VVEYtMzIgZHVtbXksIGl0J3Mgb25seSA3IGVuY29kaW5ncy4NCkRvZXMgYW55b25lIHVzZSBv bmUgb2YgdGhlc2UgNyBkdW1teSBlbmNvZGluZ3M/DQoNCldoYXQgaXMgaW50ZXJlc3RpbmcgdG8g bm90ZSwgaXMgdGhhdCB0aGVzZSBlbmNvZGluZ3MgYXJlIGV4YWN0bHkgdGhlIG9uZXMgdGhhdCBh cmUgYWxzbyBub3QgQVNDSUktY29tcGF0aWJsZSwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIFVURi0x NkJFL1VURi0xNkxFL1VURi0zMkJFL1VURi0zMkxFIChub24tZHVtbXkpLg0KQXMgYSBub3RlLCBV VEYtezE2LDMyfXtCRSxMRX0gYXJlIEFTQ0lJLWNvbXBhdGlibGUgaW4gY29kZXBvaW50cyBidXQg bm90IGluIGJ5dGVzLCBhbmQgUnVieSB1c2VzIHRoZSBieXRlcyBkZWZpbml0aW9uIG9mIEFTQ0lJ LWNvbXBhdGlibGUuDQpUaGVyZSBpcyBwb3RlbnRpYWwgdG8gc2ltcGxpZnkgZW5jb2RpbmcgY29t cGF0aWJpbGl0eSBydWxlcyBhbmQgZW5jb2RpbmcgY29tcGF0aWJpbGl0eSBjaGVja3MgYmFzZWQg b24gdGhhdC4NClNvIHdoYXQgdGhpcyBtZWFucyBpcyBpZiB3ZSByZW1vdmVkIGR1bW15IGVuY29k aW5ncywgYWxsIGVuY29kaW5ncyBleGNlcHQgVVRGLXsxNiwzMn17QkUsTEV9IHdvdWxkIGJlIEFT Q0lJLWNvbXBhdGlibGUsIHdoaWNoIHdvdWxkIGxlYWQgdG8gc2lnbmlmaWNhbnQgc2ltcGxpZmlj YXRpb25zIGZvciBtYW55IHN0cmluZyBvcGVyYXRpb25zIHdoaWNoIGN1cnJlbnRseSBuZWVkIHRv IGhhbmRsZSBkdW1teSBlbmNvZGluZ3Mgc3BlY2lhbGx5Lg0KVW5pY29kZSBlbmNvZGluZ3MgbGlr ZSBVVEYtezE2LDMyfXtCRSxMRX0gYWxyZWFkeSBoYXZlIHNwZWNpYWwgYmVoYXZpb3IgZm9yIHNv bWUgUnVieSBtZXRob2RzLCBzbyB0aG9zZSBhcmUgYWxyZWFkeSBoYW5kbGVkIHNwZWNpYWxseSBp biBzb21lIHBsYWNlcyAodGhleSBhcmUgdGhlIG9ubHkgZW5jb2RpbmdzIHdpdGggbWluTGVuZ3Ro ID4gMSkuDQoNCmBgYA0KPiBFbmNvZGluZy5saXN0LnJlamVjdCgmOmFzY2lpX2NvbXBhdGlibGU/ KQ0KWyM8RW5jb2Rpbmc6VVRGLTE2QkU+LCAjPEVuY29kaW5nOlVURi0xNkxFPiwNCiAjPEVuY29k aW5nOlVURi0zMkJFPiwgIzxFbmNvZGluZzpVVEYtMzJMRT4sDQogIzxFbmNvZGluZzpVVEYtMTYg KGR1bW15KT4sICM8RW5jb2Rpbmc6VVRGLTMyIChkdW1teSk+LA0KICM8RW5jb2Rpbmc6SUJNMDM3 IChkdW1teSk+LCAjPEVuY29kaW5nOlVURi03IChkdW1teSk+LA0KICM8RW5jb2Rpbmc6SVNPLTIw MjItSlAgKGR1bW15KT4sICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAtMiAoZHVtbXkpPiwgIzxFbmNv ZGluZzpJU08tMjAyMi1KUC1LRERJIChkdW1teSk+LA0KICM8RW5jb2Rpbmc6Q1A1MDIyMCAoZHVt bXkpPiwgIzxFbmNvZGluZzpDUDUwMjIxIChkdW1teSk+XQ0KYGBgDQoNCldoYXQgY2FuIHdlIGRv IHdpdGggc3VjaCBhIGR1bW15IG5vbi1BU0NJSS1jb21wYXRpYmxlIGVuY29kaW5nPw0KQWxtb3N0 IG5vdGhpbmcgdXNlZnVsOg0KYGBgcnVieQ0KcyA9ICJhYmMiLmVuY29kZSgiSUJNMDM3IikNCj0+ ICJceDgxXHg4Mlx4ODMiDQo+IHMuYnl0ZXMNCj0+IFsxMjksIDEzMCwgMTMxXQ0KPiBzLmNvZGVw b2ludHMNCj0+IFsxMjksIDEzMCwgMTMxXQ0KPiBzID09ICJhYmMiDQo9PiBmYWxzZQ0KPiAiw6l0 w6kiLmVuY29kZSgiSUJNMDM3IikNCj0+ICJceDUxXHhBM1x4NTEiDQpgYGANCg0KU28gYWJvdXQg dGhlIG9ubHkgdGhpbmcgdGhhdCB3b3JrcyB3aXRoIHRoZW0gaXMgYFN0cmluZyNlbmNvZGVgLg0K DQpJIHRoaW5rIHdlIGNvdWxkIHByZXNlcnZlIHRoYXQgZnVuY3Rpb25hbGl0eSwgaWYgYWN0dWFs bHkgdXNlZCAoZG9lcyBhbnlvbmUgdXNlIG9uZSBvZiB0aGVzZSA3IGR1bW15IGVuY29kaW5ncz8p LCB0aHJvdWdoOg0KYGBgcnVieQ0KPiAiw6l0w6kiLmVuY29kZSgiSUJNMDM3IikNCj0+ICJceDUx XHhBM1x4NTEiICguZW5jb2RpbmcgPT0gQklOQVJZKQ0KPiAiXHg1MVx4QTNceDUxIi5lbmNvZGUo IlVURi04IiwgIklCTTAzNyIpICMgZW5jb2RlIGZyb20gSUJNMDM3IHRvIFVURi04DQo9PiAiw6l0 w6kiICguZW5jb2RpbmcgPT0gVVRGLTgpDQpgYGANCg0KVGhhdCB3YXkgdGhlcmUgaXMgbm8gbmVl ZCBmb3IgdGhvc2UgdG8gYmUgRW5jb2RpbmcgaW5zdGFuY2VzLCB3ZSB3b3VsZCBvbmx5IG5lZWQg dGhlIGNvbnZlcnNpb24gdGFibGVzLg0KDQpJdCBpcyBldmVuIGJldHRlciBpZiB3ZSBjYW4gcmVt b3ZlIHRoZW0sIHNvIHRoZSBub3Rpb24gb2YgImR1bW15IGVuY29kaW5ncyIgY2FuIGRpc2FwcGVh ciBjb21wbGV0ZWx5IGFuZCBub2JvZHkgbmVlZHMgdG8gdW5kZXJzdGFuZCBvciBpbXBsZW1lbnQg dGhlbS4NCg0KIyMjIHJiX2RlZmluZV9kdW1teV9lbmNvZGluZyhuYW1lKQ0KDQpUaGUgQy1BUEkg aGFzIGByYl9kZWZpbmVfZHVtbXlfZW5jb2RpbmcoY29uc3QgY2hhciAqbmFtZSlgLg0KVGhpcyBj cmVhdGVzIGEgbmV3IEVuY29kaW5nIGluc3RhbmNlIHdpdGggYGR1bW15Pz10cnVlYCwgYW5kIGl0 IGlzIGFsc28gbm9uLUFTQ0lJLWNvbXBhdGlibGUuDQpUaGVyZSBzZWVtcyB0byBiZSBubyBwdXJw b3NlIHRvIHRoaXMgYmVzaWRlcyBzdG9yaW5nIHRoZSBtZXRhZGF0YSBvZiBhbiBlbmNvZGluZyB3 aGljaCBkb2VzIG5vdCBleGlzdCBpbiBSdWJ5Lg0KVGhpcyBzZWVtcyBhIHJlYWxseSBleHBlbnNp dmUvY29tcGxleCB3YXkgdG8gaGFuZGxlIHRoYXQgZnJvbSB0aGUgVk0gcG9pbnQgb2YgdmlldyAo YmVjYXVzZSBpdCBkeW5hbWljYWxseSBjcmVhdGVzIGFuIEVuY29kaW5nIGFuZCBhZGQgaXQgdG8g bGlzdHMvbWFwcy9ldGMpLg0KQSBzaW1wbGUgcmVwbGFjZW1lbnQgd291bGQgYmUgdG8gbWFyayB0 aGUgU3RyaW5nIGFzIEJJTkFSWSBhbmQgc2F2ZSB0aGUgZW5jb2RpbmcgbmFtZSBhcyBhbiBpbnN0 YW5jZSB2YXJpYWJsZSBvZiB0aGF0IFN0cmluZy4NClNpbmNlIGFueXdheSBSdWJ5IGNhbid0IHVu ZGVyc3RhbmQgYW55dGhpbmcgYWJvdXQgdGhhdCBTdHJpbmcsIGl0J3MganVzdCByYXcgYnl0ZXMg dG8gUnVieSdzIGV5ZXMuDQoNCiMjIFN1bW1hcnkNCg0KSSBzdWdnZXN0IHdlIGRlcHJlY2F0ZSBy ZXBsaWNhdGUgYW5kIGR1bW15IGVuY29kaW5ncyBpbiBSdWJ5IDMuMi4NCkFuZCB0aGVuIHdlIHJl bW92ZSB0aGVtIGluIHRoZSBuZXh0IHZlcnNpb24uDQoNClRoaXMgd2lsbCBzaWduaWZpY2FudGx5 IHNpbXBsaWZ5IHN0cmluZy1yZWxhdGVkIG1ldGhvZHMsIGFuZCB0aGUgYmVoYXZpb3IgZXhwb3Nl ZCB0byBSdWJ5IHVzZXJzLg0KDQpJdCB3aWxsIGFsc28gc2lnbmlmaWNhbnRseSBzcGVlZHVwIGVu Y29kaW5nIGxvb2t1cCBpbiBDUnVieSAoYW5kIG90aGVyIFJ1YnkgaW1wbGVtZW50YXRpb25zKS4N CldpdGggYSBmaXhlZCBudW1iZXIgb2YgZW5jb2RpbmdzIHdlIGNhbiBlbnN1cmUgYWxsIGVuY29k aW5nIGluZGljZXMgZml0IGluIDcgYml0cywgYW5kIGBFTkNPRElOR19HRVRgIGNhbiBiZSBzaW1w bHkgYFJCX0VOQ09ESU5HX0dFVF9JTkxJTkVEYC4NCmBnZXRfYWN0dWFsX2VuY29kaW5nKClgIHdp bGwgYmUgZ29uZSBhbmQgaXRzIG92ZXJoZWFkIGFzIHdlbGwuDQpgcmJfZW5jX2Zyb21faW5kZXgo KWAgd291bGQgYmUganVzdCBgcmV0dXJuIGdsb2JhbF9lbmNfdGFibGUtPmxpc3RbaW5kZXhdLmVu YztgLCBpbnN0ZWFkIG9mIHRoZSBleHBlbnNpdmUgYmVoYXZpb3IgY3VycmVudGx5IHdpdGggYEdM T0JBTF9FTkNfVEFCTEVfRVZBTGAgd2hpY2ggdGFrZXMgYSBsb2NrIGFuZCBtb3JlIHdoZW4gdGhl cmUgYXJlIG11bHRpcGxlIFJhY3RvcnMuDQpNYW55IGNoZWNrcyBpbiB0aGVzZSBtZXRob2RzIHdv dWxkIGJlIHJlbW92ZWQgYXMgd2VsbC4NCllldCBhbm90aGVyIGltcHJvdmVtZW50IHdvdWxkIGJl IHRvIGxvYWQgYWxsIGVuY29kaW5ncyBlYWdlcmx5LCB0aGF0IGlzIHNtYWxsIGFuZCBmYXN0IGlu IG15IGV4cGVyaWVuY2UsIHdoYXQgaXMgc2xvdyBhbmQgYmlnIGlzIHRoZSBjb252ZXJzaW9uIHRh YmxlcywgdGhhdCdkIHNpbXBsaWZ5IGBtdXN0X2VuY2luZGV4KClgIGZ1cnRoZXIuDQpUaGVzZSBj aGFuZ2VzIHdvdWxkIGFmZmVjdCBtb3N0IFN0cmluZyBtZXRob2RzLCB3aGljaCB1c2UNCmBgYA0K U1RSX0VOQ19HRVQtPmdldF9lbmNvZGluZyB3aGljaCBkb2VzOg0KICBnZXRfYWN0dWFsX2VuY29k aW5nLT5yYl9lbmNfZnJvbV9pbmRleCBhbmQgcG9zc2libHkgLT5lbmNfZnJvbV9pbmRleA0KICBF TkNPRElOR19HRVQtPlJCX0VOQ09ESU5HX0dFVF9JTkxJTkVEIGFuZCBwb3NzaWJseSAtPnJiX2Vu Y19nZXRfaW5kZXgtPmVuY19nZXRfaW5kZXhfc3RyLT5yYl9hdHRyX2dldA0KYGBgDQpTb21lIG9m IHRoZXNlIGRldGFpbHMgYXJlIG1lbnRpb25lZCBpbiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9y dWJ5L3B1bGwvNjA5NSNkaXNjdXNzaW9uX3I5MTUxNDk3MDguDQpUaGUgb3ZlcmhlYWQgaXMgc28g bGFyZ2UgdGhhdCBpdCBpcyB3b3J0aCBoYW5kbGluZyBzb21lIGhhcmRjb2RlZCBlbmNvZGluZyBp bmRpY2VzIGRpcmVjdGx5IGluIFN0cmluZyBtZXRob2RzLg0KVGhpcyBmZWVscyB3cm9uZywgZ2V0 dGluZyB0aGUgZW5jb2RpbmcgZnJvbSBhIFN0cmluZyBzaG91bGQgYmUgc2ltcGxlLCBzdHJhaWdo dGZvcndhcmQgYW5kIGZhc3QuDQoNCkZ1cnRoZXIgb3B0aW1pemF0aW9ucyB3aWxsIGJlIHVubG9j a2VkIGFzIHRoZSBlbmNvZGluZyBsaXN0IGJlY29tZXMgZml4ZWQgYW5kIGltbXV0YWJsZS4NCkZv ciBleGFtcGxlLCB0aGUgbmFtZS10by1FbmNvZGluZyBtYXAgaXMgdGhlbiBpbW11dGFibGUgYW5k IGNvdWxkIHVzZSBwZXJmZWN0IGhhc2hpbmcuDQpJbmxpbmUgY2FjaGluZyB0aG9zZSBsb29rdXBz IGFsc28gYmVjb21lcyBlYXNpZXIgYXMgdGhlIHRoZSBtYXAgY2Fubm90IGNoYW5nZS4NCkFsc28g dGhhdCBtYXAgd291bGQgbm8gbG9uZ2VyIG5lZWQgc3luY2hyb25pemF0aW9uLCBldGMuDQoNCiMj IFRvIERlY2lkZQ0KDQpFYWNoIGl0ZW0gaXMgaW5kZXBlbmRlbnQuIEkgdGhpbmsgMSAmIDIgYXJl IHZlcnkgaW1wb3J0YW50LCAzIGxlc3MgYnV0IHdvdWxkIGJlIG5pY2UuDQoNCjEuIERlcHJlY2F0 ZSBhbmQgdGhlbiByZW1vdmUgYEVuY29kaW5nI3JlcGxpY2F0ZWAgYW5kIGByYl9kZWZpbmVfZHVt bXlfZW5jb2RpbmcoKWAuIFdpdGggdGhhdCB0aGVyZSBpcyBhIGZpeGVkIG51bWJlciBvZiBlbmNv ZGluZ3MsIGEgbG90IG9mIHNpbXBsaWZpY2F0aW9ucyBhbmQgbWFueSBvcHRpbWl6YXRpb25zIGJl Y29tZSBhdmFpbGFibGUuIFRoZXkgYXJlIHVzZWQgcmVzcGVjdGl2ZWx5IGluIG9ubHkgMSBnZW0g YW5kIDUgZ2Vtcywgc2VlIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODk0OSNu b3RlLTQNCjIuIERlcHJlY2F0ZSBhbmQgdGhlbiByZW1vdmUgdGhlIGR1bW15IFVURi0xNiBhbmQg VVRGLTMyIGVuY29kaW5ncy4gVGhpcyByZW1vdmVzIHRoZSBuZWVkIGZvciBgZ2V0X2FjdHVhbF9l bmNvZGluZygpYCB3aGljaCBpcyBleHBlbnNpdmUuIFRoaXMgZnVuY3Rpb25hbGl0eSBzZWVtcyBy YXJlbHkgdXNlZCBpbiBwcmFjdGljZSwgYW5kIGl0IG9ubHkgd29ya3Mgd2hlbiBzdWNoIHN0cmlu Z3MgaGF2ZSBhIEJPTSwgd2hpY2ggaXMgdmVyeSByYXJlLg0KMy4gRGVwcmVjYXRlIGFuZCB0aGVu IHJlbW92ZSBvdGhlciBkdW1teSBlbmNvZGluZ3MsIHNvIHRoZXJlIGFyZSBubyBtb3JlIGR1bW15 ICJoYWxmLWltcGxlbWVudGVkIiBlbmNvZGluZ3MgYW5kIGFsbCBlbmNvZGluZ3MgYXJlIEFTQ0lJ LWNvbXBhdGlibGUgaW4gdGVybXMgb2YgY29kZXBvaW50cy4NCg0KDQoNCi0tIA0KaHR0cHM6Ly9i dWdzLnJ1YnktbGFuZy5vcmcvDQo=