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_HI,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE,T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=ham 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 D59361F54E for ; Mon, 8 Aug 2022 02:28:39 +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="mrmcH89p"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 3D52D1212B6; Mon, 8 Aug 2022 11:28:33 +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 E5B281212B6 for ; Mon, 8 Aug 2022 11:28:30 +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=ced6xHbLbhJg41NxLjw80Ao6+J44L/77Llk+OIpJ4nU=; b=mrmcH89pcz/Zd5WCAXCmWfDQAXt+IPHcpW1tZjr9D2Bl7gpEbqDME0Jbit4JwJ51TvVt Aa9NpjFCOR+fSkh9JiOxWNHYbuX8406qHA7QIZeAovv3ZHjnPJWqQQtP5F4tmwu7Cciaje RSGC/boMmGKYR0CLik80ZX2WE+MZrb+2s= Received: by filterdrecv-7787b7f4d9-2zjwv with SMTP id filterdrecv-7787b7f4d9-2zjwv-1-62F074CC-18 2022-08-08 02:28:28.521861765 +0000 UTC m=+1491772.749020180 Received: from herokuapp.com (unknown) by geopod-ismtpd-3-3 (SG) with ESMTP id WtGluGv4SCGpjHMnPZQ8Rg for ; Mon, 08 Aug 2022 02:28:28.410 +0000 (UTC) Date: Mon, 08 Aug 2022 02:28:28 +0000 (UTC) From: "nobu (Nobuyoshi Nakada)" 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: nobu 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: 85849 X-SG-EID: =?us-ascii?Q?rA5eEsXeCy+asKowYcicHxhOSUaOWYD+XnPnBc7LFC8Re9tNQ4Sv5BA=2FOz+glG?= =?us-ascii?Q?+50K4steq4vSjkkyeSAt=2FQpZK6mQgZdK22n=2FlxG?= =?us-ascii?Q?4Fre1BsQaFED+HqQqBAxApVPnibEIiEYZPWZUYb?= =?us-ascii?Q?zwobiTNj0=2FZgID9sMCVQIqyN40U7L=2F+sDhfG5AU?= =?us-ascii?Q?Urnq6tfEACM8yRb1j4MTiwc8sQQ5=2FTxjwisu0jI?= =?us-ascii?Q?rRgeCGxPEOoxADq8SZhqbKr3k=2FXWpCk1+d8z7Vk?= =?us-ascii?Q?FVbSVprpwxWq3d7kC3PKg=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109441 Subject: [ruby-core:109441] [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" SXNzdWUgIzE4OTQ5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbm9idSAoTm9idXlvc2hpIE5ha2FkYSku DQoNCg0KRXJlZ29uIChCZW5vaXQgRGFsb3plKSB3cm90ZSBpbiAjbm90ZS0xNDoNCj4gQ291bGQg aXQgYmUgcmVwbGFjZWQgYnkgdGhlIEJJTkFSWSBlbmNvZGluZyBpbiBwcm9ncmFtcyB1c2luZyBp dD8NCg0KWWVzLCBpdCBjb3VsZCwgYW5kIHdhcyBleGFjdGx5IHRoZSB3YXkgaW4gMS44IG9yIGVh cmxpZXIuDQpJIGRvbid0IHdhbnQgaXQgYWdhaW4uDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzE4OTQ5OiBEZXByZWNhdGUgYW5kIHJlbW92ZSBy ZXBsaWNhdGUgYW5kIGR1bW15IGVuY29kaW5ncw0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcv aXNzdWVzLzE4OTQ5I2NoYW5nZS05ODU5NA0KDQoqIEF1dGhvcjogRXJlZ29uIChCZW5vaXQgRGFs b3plKQ0KKiBTdGF0dXM6IE9wZW4NCiogUHJpb3JpdHk6IE5vcm1hbA0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KUnVieSBoYXMgYSBsb3Qgb2YgYWNjaWRlbnRhbCBj b21wbGV4aXR5Lg0KU29tZXRpbWVzIGl0IGJlY29tZXMgY2xlYXIgc29tZSBmZWF0dXJlcyBicmlu ZyBhIGxvdCBvZiBjb21wbGV4aXR5IGFuZCB5ZXQgcHJvdmlkZSBsaXR0bGUgdmFsdWUgb3IgYXJl IHVzZWQgdmVyeSByYXJlbHkuDQpBbHNvIG1vc3QgUnVieSB1c2VycyBkbyBub3QgZXZlbiBrbm93 IGFib3V0IHRoZXNlIGZlYXR1cmVzLg0KUmVwbGljYXRlIGFuZCBkdW1teSBlbmNvZGluZ3Mgc2Vl bSB0byBjbGVhcmx5IGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LCBhbG1vc3Qgbm9ib2R5IHVzZXMg dGhlbSBidXQgdGhleSBhZGQgYSBzaWduaWZpY2FudCBjb21wbGV4aXR5IGFuZCBhbHNvIGFkZCBh IHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIG92ZXJoZWFkLg0KTm90YWJseSwgdGhlIGV4aXN0ZW5j ZSBvZiB0aG9zZSBtZWFucyB0aGUgbnVtYmVyIG9mIGVuY29kaW5ncyBpbiBhIFJ1YnkgcnVudGlt ZSBpcyBhY3R1YWxseSB2YXJpYWJsZSBhbmQgbm90IGZpeGVkLg0KVGhhdCBtZWFucyBleHRyYSBz eW5jaHJvbml6YXRpb24sIGhhc2h0YWJsZSBsb29rdXBzLCBpbmRpcmVjdGlvbnMsIGZ1bmN0aW9u IGNhbGxzLCBldGMuDQoNCiMjIFJlcGxpY2F0ZSBFbmNvZGluZ3MNCg0KUmVwbGljYXRlIGVuY29k aW5ncyBhcmUgY3JlYXRlZCB1c2luZyBgRW5jb2RpbmcjcmVwbGljYXRlKG5hbWUpYC4NCkl0IGFs bW9zdCBzb3VuZHMgbGlrZSBhbiBhbGlhcyBidXQgaW4gZmFjdCBpdCBpcyBtb3JlIHRoYW4gdGhh dCBhbmQgY3JlYXRlcyBhIG5ldyBFbmNvZGluZyBvYmplY3QsIHdoaWNoIGNhbiBiZSB1c2VkIGJ5 IGEgU3RyaW5nOg0KYGBgcnVieQ0KZSA9IEVuY29kaW5nOjpVU19BU0NJSS5yZXBsaWNhdGUoJ01Z LVVTLUFTQ0lJJykNCnMgPSAiYWJjIi5mb3JjZV9lbmNvZGluZyhlKQ0KcCBzLmVuY29kaW5nICMg PT4gZQ0KcCBzLmVuY29kaW5nLm5hbWUgIyA9PiAnTVktVVMtQVNDSUknDQpgYGANCg0KVGhpcyBz ZWVtcyBjb21wbGV0ZWx5IHVzZWxlc3MuDQpUaGVyZSBpcyBhbiBvYnZpb3VzIGZpcnN0IHN0ZXAg aGVyZSB3aGljaCBpcyB0byBjaGFuZ2UgYEVuY29kaW5nI3JlcGxpY2F0ZWAgdG8gcmV0dXJuIHRo ZSByZWNlaXZlciwgYW5kIGp1c3QgaW5zdGFsbCBhbiBhbGlhcyBmb3IgaXQuDQpUaGF0IGF2b2lk cyBjcmVhdGluZyBtb3JlIGVuY29kaW5nIGluc3RhbmNlcyBuZWVkbGVzc2x5Lg0KDQpJIHRoaW5r IHdlIHNob3VsZCBhbHNvIGRlcHJlY2F0ZSBhbmQgcmVtb3ZlIHRoaXMgbWV0aG9kIHRob3VnaCwg aXQgaXMgbmV2ZXIgYSBnb29kIGlkZWEgdG8gaGF2ZSBhIGdsb2JhbCBtdXRhYmxlIG1hcCBsaWtl IHRoaXMuDQpJZiBzb21lb25lIHdhbnQgZXh0cmEgYWxpYXNlcyBmb3IgZW5jb2RpbmdzLCB0aGV5 IGNhbiBlYXNpbHkgdG8gZG8gc28gYnkgaGF2aW5nIHRoZWlyIG93biBIYXNoOiBgeyBhbGlhcyA9 PiBlbmNvZGluZyB9LmZldGNoKG5hbWUpIHsgRW5jb2RpbmcuZmluZChuYW1lKSB9YC4NCg0KIyMg RHVtbXkgRW5jb2RpbmdzDQoNCkR1bW15IGVuY29kaW5ncyBhcmUgbm90IHJlYWwgZW5jb2Rpbmdz LiBUaGV5IGFyZSBhcnRpZmljaWFsIGVuY29kaW5ncyBkZXNpZ25lZCB0byBsb29rIGxpa2UgZW5j b2RpbmdzLCBidXQgZG9uJ3QgZnVuY3Rpb24gYXMgZW5jb2RpbmdzIGluIFJ1YnkuDQpGcm9tIHRo ZSBkb2NzOg0KYGBgDQplbmMuZHVtbXk/IC0+IHRydWUgb3IgZmFsc2UNCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KUmV0dXJucyB0cnVlIGZvciBkdW1teSBlbmNvZGluZ3MuIEEgZHVtbXkgZW5jb2RpbmcgaXMg YW4gZW5jb2RpbmcgZm9yDQp3aGljaCBjaGFyYWN0ZXIgaGFuZGxpbmcgaXMgbm90IHByb3Blcmx5 IGltcGxlbWVudGVkLiBJdCBpcyB1c2VkIGZvcg0Kc3RhdGVmdWwgZW5jb2RpbmdzLg0KYGBgDQoN Ckkgd29uZGVyIHdoeSB3ZSBoYXZlIHRob3NlIGhhbGYtaW1wbGVtZW50ZWQgZW5jb2RpbmdzIGlu IGNvcmUsIGl0IHNvdW5kcyB0byBtZSBsaWtlIHVuZmluaXNoZWQgd29yayB3aGljaCBzaG91bGQg bm90IGhhdmUgYmVlbiBtZXJnZWQuDQoNClRoZSAiY29kZXBvaW50cyIgb2YgZHVtbXkgZW5jb2Rp bmdzIGFyZSBqdXN0ICJieXRlcyIgYW5kIHNvIHRoZXkgYmVoYXZlIHRoZSBzYW1lIGFzIGBFbmNv ZGluZzo6QklOQVJZYCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBVVEYtMTYgYW5kIFVURi0z MiBkdW1teSBlbmNvZGluZ3MuDQoNCiMjIyBVVEYtMTYgYW5kIFVURi0zMiBkdW1teSBlbmNvZGlu Z3MNCg0KVGhlc2UgdHdvIGFyZSBzcGVjaWFsIGR1bW15IGVuY29kaW5ncy4NCldoYXQgdGhleSBk byBpcyB0aGV5IHNjYW4gdGhlIGZpcnN0IDIgb3IgNCBieXRlcyBvZiB0aGUgU3RyaW5nLCBhbmQg aWYgdGhvc2UgYnl0ZXMgYXJlIGEgYnl0ZS1vcmRlciBtYXJrIChCT00pLA0KdGhlIHRydWUgImFj dHVhbCIgZW5jb2RpbmcgaXMgcmVzb2x2ZWQgdG8gVVRGLTE2QkUvVVRGLTE2TEUgb3IgVVRGLTMy QkUvVVRGLTMyTEUuDQpPdGhlcndpc2UsIGBFbmNvZGluZzo6QklOQVJZYCBpcyByZXR1cm5lZC4N ClRoaXMgbG9naWMgaXMgZG9uZSBieSBgZ2V0X2FjdHVhbF9lbmNvZGluZygpYC4NCg0KV2hhdCBp cyB3ZWlyZCBpcyB0aGlzIGNoZWNrIGlzIG5vdCBkb25lIG9uIFN0cmluZyBjcmVhdGlvbiwgbm8s IGl0IGlzIGRvbmUgKmV2ZXJ5IHRpbWUqIHRoZSBlbmNvZGluZyBvZiB0aGF0IFN0cmluZyBpcyBh Y2Nlc3NlZCAoYW5kIHRoZSByZXN1bHQgaXMgbm90IHN0b3JlZCBvbiB0aGUgU3RyaW5nKS4NClRo YXQgaXMgYSBuZWVkbGVzcyBvdmVyaGVhZCBhbmQgcmVhbGx5IHVucmVsaWFibGUgc2VtYW50aWNz Lg0KRG8gd2UgcmVhbGx5IHdhbnQgYSBTdHJpbmcgd2hpY2ggYXV0b21hZ2ljYWxseSBjaGFuZ2Vz IGJldHdlZW4gVVRGLTE2TEUgYW5kIFVURi0xNkJFIGJhc2VkIG9uIG11dGF0aW5nIGl0cyBieXRl cz8gSSB0aGluayBub2JvZHkgd2FudHMgdGhhdDoNCmBgYHJ1YnkNCnMgPSAiXHhGRlx4RkVhXHgw MGJceDAwY1x4MDBkXHgwMCIuZm9yY2VfZW5jb2RpbmcoIlVURi0xNiIpDQpwIHMgIyA9PiAiXHVG RUZGYWJjZCINCnMuc2V0Ynl0ZSAwLCAyNTQNCnMuc2V0Ynl0ZSAxLCAyNTUNCnAgcyAjID0+ICJc dUZFRkZcdTYxMDBcdTYyMDBcdTYzMDBcdTY0MDAiDQpgYGANCg0KSSB0aGluayB0aGUgcGF0aCBp cyBjbGVhciwgd2Ugc2hvdWxkIGRlcHJlY2F0ZSBhbmQgdGhlbiByZW1vdmUgRW5jb2Rpbmc6OlVU Rl8xNiBhbmQgRW5jb2Rpbmc6OlVURl8zMiAoZHVtbXkgZW5jb2RpbmdzKS4NCkFuZCB0aGVuIHdl IG5vIGxvbmdlciBuZWVkIGBnZXRfYWN0dWFsX2VuY29kaW5nKClgIGFuZCB0aGUgb3ZlcmhlYWQg aXQgYWRkcyB0byBldmVyeSBTdHJpbmcgbWV0aG9kLg0KDQpXZSBjb3VsZCBhbHNvIGtlZXAgdGhv c2UgY29uc3RhbnRzIGFuZCBtYWtlIHRoZW0gcmVmZXIgdGhlIG5hdGl2ZS1lbmRpYW4gVVRGLTE2 LzMyLg0KQnV0IHRoYXQgY291bGQgY2F1c2UgY29uZnVzaW5nIGVycm9ycyBhcyB3ZSB3b3VsZCBj aGFuZ2UgdGhlIG1lYW5pbmcgb2YgdGhlbS4NCldlIGNvdWxkIGFkZCBgRW5jb2Rpbmc6OlVURl8x Nk5FYCAvIGBFbmNvZGluZzo6VVRGXzE2X05BVElWRV9FTkRJQU5gIGlmIHRoYXQgaXMgdXNlZnVs Lg0KDQpBbm90aGVyIHBvc3NpYmlsaXR5IHdvdWxkIGJlIHRvIHJlc29sdmUgdGhlc2UgZW5jb2Rp bmdzIG9uIFN0cmluZyBjcmVhdGlvbiwgbGlrZToNCmBgYA0KIlx4RkZceEZFIi5mb3JjZV9lbmNv ZGluZygiVVRGLTE2IikuZW5jb2RpbmcgIyA9PiBVVEYtMTZMRQ0KU3RyaW5nLm5ldygiXHhGRlx4 RkUiLCBlbmNvZGluZzogRW5jb2Rpbmc6OlVURl8xNikuZW5jb2RpbmcgIyA9PiBVVEYtMTZMRQ0K ImFiIi5mb3JjZV9lbmNvZGluZygiVVRGLTE2IikuZW5jb2RpbmcgIyBleGNlcHRpb24sIG5vdCBh IEJPTQ0KU3RyaW5nLm5ldygiYWIiLCBlbmNvZGluZzogRW5jb2Rpbmc6OlVURl8xNikuZW5jb2Rp bmcgIyBleGNlcHRpb24sIG5vdCBhIEJPTQ0KYGBgDQpJIHRoaW5rIGl0IGlzIHVubmVjZXNzYXJ5 IHRvIGtlZXAgc3VjaCBjb21wbGV4aXR5IHRob3VnaC4NCkEgY2xhc3MgbWV0aG9kIG9uIFN0cmlu ZyBvciBFbmNvZGluZyBsaWtlIGUuZy4gYEVuY29kaW5nLmZpbmRfZnJvbV9ib20oc3RyaW5nKWAg aXMgc28gbXVjaCBjbGVhcmVyIGFuZCBlZmZpY2llbnQgKG5vIG5lZWQgdG8gc3BlY2lhbCBjYXNl IHRob3NlIGVuY29kaW5ncyBpbiBTdHJpbmcubmV3LCAjZm9yY2VfZW5jb2RpbmcsIGV0YykuDQoN CkZXSVcgSlJ1Ynkgc2VlbXMgdG8gdXNlIGBnZXRBY3R1YWxFbmNvZGluZygpYCBvbmx5IGluIDIg cGxhY2VzIChzY2FuRm9yQ29kZVJhbmdlLCBpbnNwZWN0KSwgd2hpY2ggaXMgYW4gaW5kaWNhdGlv biB0aG9zZSBkdW1teSBVVEYgZW5jb2RpbmdzIGFyZSBiYXJlbHkgdXNlZCBpZiBldmVyLiBTaW1p bGFybHksIFRydWZmbGVSdWJ5IG9ubHkgaGFzIDQgdXNhZ2VzIG9mIGBHZXRBY3R1YWxFbmNvZGlu Z05vZGVgLg0KDQojIyMgRXhpc3RpbmcgZHVtbXkgZW5jb2RpbmdzDQoNCmBgYA0KPiBFbmNvZGlu Zy5saXN0LnNlbGVjdCgmOmR1bW15PykgDQpbIzxFbmNvZGluZzpVVEYtMTYgKGR1bW15KT4sICAj PEVuY29kaW5nOlVURi0zMiAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklCTTAzNyAoZHVtbXkpPiwg IzxFbmNvZGluZzpVVEYtNyAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOklTTy0yMDIyLUpQIChkdW1t eSk+LCAjPEVuY29kaW5nOklTTy0yMDIyLUpQLTIgKGR1bW15KT4sICM8RW5jb2Rpbmc6SVNPLTIw MjItSlAtS0RESSAoZHVtbXkpPiwNCiAjPEVuY29kaW5nOkNQNTAyMjAgKGR1bW15KT4sICM8RW5j b2Rpbmc6Q1A1MDIyMSAoZHVtbXkpPl0NCmBgYA0KDQpTbyBiZXNpZGVzIFVURi0xNi9VVEYtMzIg ZHVtbXksIGl0J3Mgb25seSA3IGVuY29kaW5ncy4NCkRvZXMgYW55b25lIHVzZSBvbmUgb2YgdGhl c2UgNyBkdW1teSBlbmNvZGluZ3M/DQoNCldoYXQgaXMgaW50ZXJlc3RpbmcgdG8gbm90ZSwgaXMg dGhhdCB0aGVzZSBlbmNvZGluZ3MgYXJlIGV4YWN0bHkgdGhlIG9uZXMgdGhhdCBhcmUgYWxzbyBu b3QgQVNDSUktY29tcGF0aWJsZSwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIFVURi0xNkJFL1VURi0x NkxFL1VURi0zMkJFL1VURi0zMkxFIChub24tZHVtbXkpLg0KQXMgYSBub3RlLCBVVEYtezE2LDMy fXtCRSxMRX0gYXJlIEFTQ0lJLWNvbXBhdGlibGUgaW4gY29kZXBvaW50cyBidXQgbm90IGluIGJ5 dGVzLCBhbmQgUnVieSB1c2VzIHRoZSBieXRlcyBkZWZpbml0aW9uIG9mIEFTQ0lJLWNvbXBhdGli bGUuDQpUaGVyZSBpcyBwb3RlbnRpYWwgdG8gc2ltcGxpZnkgZW5jb2RpbmcgY29tcGF0aWJpbGl0 eSBydWxlcyBhbmQgZW5jb2RpbmcgY29tcGF0aWJpbGl0eSBjaGVja3MgYmFzZWQgb24gdGhhdC4N ClNvIHdoYXQgdGhpcyBtZWFucyBpcyBpZiB3ZSByZW1vdmVkIGR1bW15IGVuY29kaW5ncywgYWxs IGVuY29kaW5ncyBleGNlcHQgVVRGLXsxNiwzMn17QkUsTEV9IHdvdWxkIGJlIEFTQ0lJLWNvbXBh dGlibGUsIHdoaWNoIHdvdWxkIGxlYWQgdG8gc2lnbmlmaWNhbnQgc2ltcGxpZmljYXRpb25zIGZv ciBtYW55IHN0cmluZyBvcGVyYXRpb25zIHdoaWNoIGN1cnJlbnRseSBuZWVkIHRvIGhhbmRsZSBk dW1teSBlbmNvZGluZ3Mgc3BlY2lhbGx5Lg0KVW5pY29kZSBlbmNvZGluZ3MgbGlrZSBVVEYtezE2 LDMyfXtCRSxMRX0gYWxyZWFkeSBoYXZlIHNwZWNpYWwgYmVoYXZpb3IgZm9yIHNvbWUgUnVieSBt ZXRob2RzLCBzbyB0aG9zZSBhcmUgYWxyZWFkeSBoYW5kbGVkIHNwZWNpYWxseSBpbiBzb21lIHBs YWNlcyAodGhleSBhcmUgdGhlIG9ubHkgZW5jb2RpbmdzIHdpdGggbWluTGVuZ3RoID4gMSkuDQoN CmBgYA0KPiBFbmNvZGluZy5saXN0LnJlamVjdCgmOmFzY2lpX2NvbXBhdGlibGU/KQ0KWyM8RW5j b2Rpbmc6VVRGLTE2QkU+LCAjPEVuY29kaW5nOlVURi0xNkxFPiwNCiAjPEVuY29kaW5nOlVURi0z MkJFPiwgIzxFbmNvZGluZzpVVEYtMzJMRT4sDQogIzxFbmNvZGluZzpVVEYtMTYgKGR1bW15KT4s ICM8RW5jb2Rpbmc6VVRGLTMyIChkdW1teSk+LA0KICM8RW5jb2Rpbmc6SUJNMDM3IChkdW1teSk+ LCAjPEVuY29kaW5nOlVURi03IChkdW1teSk+LA0KICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAgKGR1 bW15KT4sICM8RW5jb2Rpbmc6SVNPLTIwMjItSlAtMiAoZHVtbXkpPiwgIzxFbmNvZGluZzpJU08t MjAyMi1KUC1LRERJIChkdW1teSk+LA0KICM8RW5jb2Rpbmc6Q1A1MDIyMCAoZHVtbXkpPiwgIzxF bmNvZGluZzpDUDUwMjIxIChkdW1teSk+XQ0KYGBgDQoNCldoYXQgY2FuIHdlIGRvIHdpdGggc3Vj aCBhIGR1bW15IG5vbi1BU0NJSS1jb21wYXRpYmxlIGVuY29kaW5nPw0KQWxtb3N0IG5vdGhpbmcg dXNlZnVsOg0KYGBgcnVieQ0KcyA9ICJhYmMiLmVuY29kZSgiSUJNMDM3IikNCj0+ICJceDgxXHg4 Mlx4ODMiDQo+IHMuYnl0ZXMNCj0+IFsxMjksIDEzMCwgMTMxXQ0KPiBzLmNvZGVwb2ludHMNCj0+ IFsxMjksIDEzMCwgMTMxXQ0KPiBzID09ICJhYmMiDQo9PiBmYWxzZQ0KPiAiw6l0w6kiLmVuY29k ZSgiSUJNMDM3IikNCj0+ICJceDUxXHhBM1x4NTEiDQpgYGANCg0KU28gYWJvdXQgdGhlIG9ubHkg dGhpbmcgdGhhdCB3b3JrcyB3aXRoIHRoZW0gaXMgYFN0cmluZyNlbmNvZGVgLg0KDQpJIHRoaW5r IHdlIGNvdWxkIHByZXNlcnZlIHRoYXQgZnVuY3Rpb25hbGl0eSwgaWYgYWN0dWFsbHkgdXNlZCAo ZG9lcyBhbnlvbmUgdXNlIG9uZSBvZiB0aGVzZSA3IGR1bW15IGVuY29kaW5ncz8pLCB0aHJvdWdo Og0KYGBgcnVieQ0KPiAiw6l0w6kiLmVuY29kZSgiSUJNMDM3IikNCj0+ICJceDUxXHhBM1x4NTEi ICguZW5jb2RpbmcgPT0gQklOQVJZKQ0KPiAiXHg1MVx4QTNceDUxIi5lbmNvZGUoIlVURi04Iiwg IklCTTAzNyIpICMgZW5jb2RlIGZyb20gSUJNMDM3IHRvIFVURi04DQo9PiAiw6l0w6kiICguZW5j b2RpbmcgPT0gVVRGLTgpDQpgYGANCg0KVGhhdCB3YXkgdGhlcmUgaXMgbm8gbmVlZCBmb3IgdGhv c2UgdG8gYmUgRW5jb2RpbmcgaW5zdGFuY2VzLCB3ZSB3b3VsZCBvbmx5IG5lZWQgdGhlIGNvbnZl cnNpb24gdGFibGVzLg0KDQpJdCBpcyBldmVuIGJldHRlciBpZiB3ZSBjYW4gcmVtb3ZlIHRoZW0s IHNvIHRoZSBub3Rpb24gb2YgImR1bW15IGVuY29kaW5ncyIgY2FuIGRpc2FwcGVhciBjb21wbGV0 ZWx5IGFuZCBub2JvZHkgbmVlZHMgdG8gdW5kZXJzdGFuZCBvciBpbXBsZW1lbnQgdGhlbS4NCg0K IyMjIHJiX2RlZmluZV9kdW1teV9lbmNvZGluZyhuYW1lKQ0KDQpUaGUgQy1BUEkgaGFzIGByYl9k ZWZpbmVfZHVtbXlfZW5jb2RpbmcoY29uc3QgY2hhciAqbmFtZSlgLg0KVGhpcyBjcmVhdGVzIGEg bmV3IEVuY29kaW5nIGluc3RhbmNlIHdpdGggYGR1bW15Pz10cnVlYCwgYW5kIGl0IGlzIGFsc28g bm9uLUFTQ0lJLWNvbXBhdGlibGUuDQpUaGVyZSBzZWVtcyB0byBiZSBubyBwdXJwb3NlIHRvIHRo aXMgYmVzaWRlcyBzdG9yaW5nIHRoZSBtZXRhZGF0YSBvZiBhbiBlbmNvZGluZyB3aGljaCBkb2Vz IG5vdCBleGlzdCBpbiBSdWJ5Lg0KVGhpcyBzZWVtcyBhIHJlYWxseSBleHBlbnNpdmUvY29tcGxl eCB3YXkgdG8gaGFuZGxlIHRoYXQgZnJvbSB0aGUgVk0gcG9pbnQgb2YgdmlldyAoYmVjYXVzZSBp dCBkeW5hbWljYWxseSBjcmVhdGVzIGFuIEVuY29kaW5nIGFuZCBhZGQgaXQgdG8gbGlzdHMvbWFw cy9ldGMpLg0KQSBzaW1wbGUgcmVwbGFjZW1lbnQgd291bGQgYmUgdG8gbWFyayB0aGUgU3RyaW5n IGFzIEJJTkFSWSBhbmQgc2F2ZSB0aGUgZW5jb2RpbmcgbmFtZSBhcyBhbiBpbnN0YW5jZSB2YXJp YWJsZSBvZiB0aGF0IFN0cmluZy4NClNpbmNlIGFueXdheSBSdWJ5IGNhbid0IHVuZGVyc3RhbmQg YW55dGhpbmcgYWJvdXQgdGhhdCBTdHJpbmcsIGl0J3MganVzdCByYXcgYnl0ZXMgdG8gUnVieSdz IGV5ZXMuDQoNCiMjIFN1bW1hcnkNCg0KSSBzdWdnZXN0IHdlIGRlcHJlY2F0ZSByZXBsaWNhdGUg YW5kIGR1bW15IGVuY29kaW5ncyBpbiBSdWJ5IDMuMi4NCkFuZCB0aGVuIHdlIHJlbW92ZSB0aGVt IGluIHRoZSBuZXh0IHZlcnNpb24uDQoNClRoaXMgd2lsbCBzaWduaWZpY2FudGx5IHNpbXBsaWZ5 IHN0cmluZy1yZWxhdGVkIG1ldGhvZHMsIGFuZCB0aGUgYmVoYXZpb3IgZXhwb3NlZCB0byBSdWJ5 IHVzZXJzLg0KDQpJdCB3aWxsIGFsc28gc2lnbmlmaWNhbnRseSBzcGVlZHVwIGVuY29kaW5nIGxv b2t1cCBpbiBDUnVieSAoYW5kIG90aGVyIFJ1YnkgaW1wbGVtZW50YXRpb25zKS4NCldpdGggYSBm aXhlZCBudW1iZXIgb2YgZW5jb2RpbmdzIHdlIGNhbiBlbnN1cmUgYWxsIGVuY29kaW5nIGluZGlj ZXMgZml0IGluIDcgYml0cywgYW5kIGBFTkNPRElOR19HRVRgIGNhbiBiZSBzaW1wbHkgYFJCX0VO Q09ESU5HX0dFVF9JTkxJTkVEYC4NCmBnZXRfYWN0dWFsX2VuY29kaW5nKClgIHdpbGwgYmUgZ29u ZSBhbmQgaXRzIG92ZXJoZWFkIGFzIHdlbGwuDQpgcmJfZW5jX2Zyb21faW5kZXgoKWAgd291bGQg YmUganVzdCBgcmV0dXJuIGdsb2JhbF9lbmNfdGFibGUtPmxpc3RbaW5kZXhdLmVuYztgLCBpbnN0 ZWFkIG9mIHRoZSBleHBlbnNpdmUgYmVoYXZpb3IgY3VycmVudGx5IHdpdGggYEdMT0JBTF9FTkNf VEFCTEVfRVZBTGAgd2hpY2ggdGFrZXMgYSBsb2NrIGFuZCBtb3JlIHdoZW4gdGhlcmUgYXJlIG11 bHRpcGxlIFJhY3RvcnMuDQpNYW55IGNoZWNrcyBpbiB0aGVzZSBtZXRob2RzIHdvdWxkIGJlIHJl bW92ZWQgYXMgd2VsbC4NCllldCBhbm90aGVyIGltcHJvdmVtZW50IHdvdWxkIGJlIHRvIGxvYWQg YWxsIGVuY29kaW5ncyBlYWdlcmx5LCB0aGF0IGlzIHNtYWxsIGFuZCBmYXN0IGluIG15IGV4cGVy aWVuY2UsIHdoYXQgaXMgc2xvdyBhbmQgYmlnIGlzIHRoZSBjb252ZXJzaW9uIHRhYmxlcywgdGhh dCdkIHNpbXBsaWZ5IGBtdXN0X2VuY2luZGV4KClgIGZ1cnRoZXIuDQpUaGVzZSBjaGFuZ2VzIHdv dWxkIGFmZmVjdCBtb3N0IFN0cmluZyBtZXRob2RzLCB3aGljaCB1c2UNCmBgYA0KU1RSX0VOQ19H RVQtPmdldF9lbmNvZGluZyB3aGljaCBkb2VzOg0KICBnZXRfYWN0dWFsX2VuY29kaW5nLT5yYl9l bmNfZnJvbV9pbmRleCBhbmQgcG9zc2libHkgLT5lbmNfZnJvbV9pbmRleA0KICBFTkNPRElOR19H RVQtPlJCX0VOQ09ESU5HX0dFVF9JTkxJTkVEIGFuZCBwb3NzaWJseSAtPnJiX2VuY19nZXRfaW5k ZXgtPmVuY19nZXRfaW5kZXhfc3RyLT5yYl9hdHRyX2dldA0KYGBgDQpTb21lIG9mIHRoZXNlIGRl dGFpbHMgYXJlIG1lbnRpb25lZCBpbiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwv NjA5NSNkaXNjdXNzaW9uX3I5MTUxNDk3MDguDQpUaGUgb3ZlcmhlYWQgaXMgc28gbGFyZ2UgdGhh dCBpdCBpcyB3b3J0aCBoYW5kbGluZyBzb21lIGhhcmRjb2RlZCBlbmNvZGluZyBpbmRpY2VzIGRp cmVjdGx5IGluIFN0cmluZyBtZXRob2RzLg0KVGhpcyBmZWVscyB3cm9uZywgZ2V0dGluZyB0aGUg ZW5jb2RpbmcgZnJvbSBhIFN0cmluZyBzaG91bGQgYmUgc2ltcGxlLCBzdHJhaWdodGZvcndhcmQg YW5kIGZhc3QuDQoNCkZ1cnRoZXIgb3B0aW1pemF0aW9ucyB3aWxsIGJlIHVubG9ja2VkIGFzIHRo ZSBlbmNvZGluZyBsaXN0IGJlY29tZXMgZml4ZWQgYW5kIGltbXV0YWJsZS4NCkZvciBleGFtcGxl LCB0aGUgbmFtZS10by1FbmNvZGluZyBtYXAgaXMgdGhlbiBpbW11dGFibGUgYW5kIGNvdWxkIHVz ZSBwZXJmZWN0IGhhc2hpbmcuDQpJbmxpbmUgY2FjaGluZyB0aG9zZSBsb29rdXBzIGFsc28gYmVj b21lcyBlYXNpZXIgYXMgdGhlIHRoZSBtYXAgY2Fubm90IGNoYW5nZS4NCkFsc28gdGhhdCBtYXAg d291bGQgbm8gbG9uZ2VyIG5lZWQgc3luY2hyb25pemF0aW9uLCBldGMuDQoNCiMjIFRvIERlY2lk ZQ0KDQpFYWNoIGl0ZW0gaXMgaW5kZXBlbmRlbnQuIEkgdGhpbmsgMSAmIDIgYXJlIHZlcnkgaW1w b3J0YW50LCAzIGxlc3MgYnV0IHdvdWxkIGJlIG5pY2UuDQoNCjEuIERlcHJlY2F0ZSBhbmQgdGhl biByZW1vdmUgYEVuY29kaW5nI3JlcGxpY2F0ZWAgYW5kIGByYl9kZWZpbmVfZHVtbXlfZW5jb2Rp bmcoKWAuIFdpdGggdGhhdCB0aGVyZSBpcyBhIGZpeGVkIG51bWJlciBvZiBlbmNvZGluZ3MsIGEg bG90IG9mIHNpbXBsaWZpY2F0aW9ucyBhbmQgbWFueSBvcHRpbWl6YXRpb25zIGJlY29tZSBhdmFp bGFibGUuIFRoZXkgYXJlIHVzZWQgcmVzcGVjdGl2ZWx5IGluIG9ubHkgMSBnZW0gYW5kIDUgZ2Vt cywgc2VlIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODk0OSNub3RlLTQNCjIu IERlcHJlY2F0ZSBhbmQgdGhlbiByZW1vdmUgdGhlIGR1bW15IFVURi0xNiBhbmQgVVRGLTMyIGVu Y29kaW5ncy4gVGhpcyByZW1vdmVzIHRoZSBuZWVkIGZvciBgZ2V0X2FjdHVhbF9lbmNvZGluZygp YCB3aGljaCBpcyBleHBlbnNpdmUuIFRoaXMgZnVuY3Rpb25hbGl0eSBzZWVtcyByYXJlbHkgdXNl ZCBpbiBwcmFjdGljZSwgYW5kIGl0IG9ubHkgd29ya3Mgd2hlbiBzdWNoIHN0cmluZ3MgaGF2ZSBh IEJPTSwgd2hpY2ggaXMgdmVyeSByYXJlLg0KMy4gRGVwcmVjYXRlIGFuZCB0aGVuIHJlbW92ZSBv dGhlciBkdW1teSBlbmNvZGluZ3MsIHNvIHRoZXJlIGFyZSBubyBtb3JlIGR1bW15ICJoYWxmLWlt cGxlbWVudGVkIiBlbmNvZGluZ3MgYW5kIGFsbCBlbmNvZGluZ3MgYXJlIEFTQ0lJLWNvbXBhdGli bGUgaW4gdGVybXMgb2YgY29kZXBvaW50cy4NCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1Ynkt bGFuZy5vcmcvDQo=