From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08on2092.outbound.protection.outlook.com [40.107.101.92]) by sourceware.org (Postfix) with ESMTPS id 149C3385801D for ; Mon, 19 Jul 2021 20:58:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 149C3385801D ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gu5ojuL8e2YIhrDIqKLTKKX4aWE9D5VYQbCPPwn432kcd+BSbGS0ZccP6vOMfH8GAzVe1y7bIYgorNXv85ZuFV5FMCPGpoihw64QGb2Rb1POIZfAqTs8UWKZVnWr9tB+kxTIdHCZJUrExdsyZ3ilcLybB76+FNQVP2ByD1f9TFjzeLrcMsiZSvUVYbSzZtnbQzp5NRRiVTRirrRgFWI/vEsOYSK//UOdjHn5Vm5j5zjgK23jj05ekSyo086JVVKjkr/5P9P9XaYATkcg2aB2V0l6QTG3C7Tg6X5ipkmK7jCcG+9cR2L3D+etjGWXK6OL/E7HuyPrB0vULjEKOMohQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ldXec0irW+TKliRYiifEl9D8HYjz3g5buaghHiPMijs=; b=UIXFLtxQZAaq8tGtqYneKgbpmhXNqhkLPsS6oQ4e+NaW0LCM+TAAwZ/1nIlJeglYRv3GUgjxAbNAA0w6DNdPyXsF8RMQ/1p7mZblvLkkbK1rvFCSPkEXLnE9LVS6ovd4Xsuzyy1Rr8l/ag75rCzsaD/hTMDPQT6uAgXMS1l9dGCo10QGXRhPWtED7x0KternqqG696wuYBDo9G/iqkxC56NCOuoD1AXrBWZX+KEJoO69AgoHZp97bWNzvIsOnp9dxSMgzV5RG5gGs+6Uj7Aisq3f0K5glzeBS3TZp/489YVINBmbGVNnehsZTjbfCIcqIdwylAMXcAjsGB9McIsoPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none Received: from MWHPR2101MB0811.namprd21.prod.outlook.com (2603:10b6:301:7b::39) by MW2PR2101MB1115.namprd21.prod.outlook.com (2603:10b6:302:a::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.0; Mon, 19 Jul 2021 20:58:22 +0000 Received: from MWHPR2101MB0811.namprd21.prod.outlook.com ([fe80::10c5:f8d0:d956:a6e2]) by MWHPR2101MB0811.namprd21.prod.outlook.com ([fe80::10c5:f8d0:d956:a6e2%7]) with mapi id 15.20.4373.005; Mon, 19 Jul 2021 20:58:22 +0000 From: Victor Tong To: Richard Biener , Marc Glisse , Victor Tong CC: "gcc-patches@gcc.gnu.org" Subject: Re: [EXTERNAL] Re: [PATCH] tree-optimization: Optimize division followed by multiply [PR95176] Thread-Topic: [EXTERNAL] Re: [PATCH] tree-optimization: Optimize division followed by multiply [PR95176] Thread-Index: AQHXJoDrR4fklL4IYku64pH3Fv0p3qrIMcqAgDljMP+ABwtigIAO0uy/gAKMnwCAAg2QAIACfg6AgAwMpn6AINwj5A== Date: Mon, 19 Jul 2021 20:58:22 +0000 Message-ID: References: <1e409dd-c5a8-a59f-d7ba-86ae805ab54f@hippo.saclay.inria.fr>, , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-07-19T20:58:21.598Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9c1e2ef5-29ef-4777-95d7-08d94af7f1d0 x-ms-traffictypediagnostic: MW2PR2101MB1115: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ANrb0+wMLrkvoqqxlrpz2rDkc0EhTclMBxiO7BEHhZD7h4r19kEVccP/VU76r+iPbQLC5dJfjTVGRV+AFTNfhv9ruTYcN3NO8XFZBC17Sym/UCKLUif5pmAZH9N/hjGmD/6Roz8vJvYH1aRer3DJTBLtpdsQWOereQlqlIhYnyFUW7FiMWzNCgZxXgL1tjs0/MG77j0cls0iqJRUGj54Z7wVGQG+pIJJrU6EHyy0nJKoax+hu6vmhzMQlrU+vhnoOPu6vv+6x4zycSY/H/ANbzrPVb4Zh+IhWkoCN9u7ih7y9MBYWik+Kog0rFDMKQ1k2rERITC/PBa6LNBLv+1tYUNy62am4HDaMN3iT/Wd9t4J/0Jo/LRCW4Qf/v8SDjuAcsEx9hdIGeuduPuuheEHC7sJNhEGQIcgSWp6C7rHIeVlqHobl8CKxbckauSEYIaqb2MlLWjiHdcSC5mXIhZqra7dy+IK19wZBqfddC0JR/o/dgEeO61WxfAn6h8c9DHce1SxUpsRTP3bjnyCc3jtuG4z2RTbRJcPxpirJ69+BuZniuGxYCriEU5kiSMuNsbE0wa1PYdwL4IrEyJcifQoktaCjRCj0XdV3zsJTLrNn62+8XoIga3QgYoAOUZHHWKznF5fcoXOmReoOLbjU9kz5l+1weSuxH+H+jigGszHe3j0MtdaGgilo8iVFzeD8Tz2hOHyFxEsMlJhLeuUC+jEduwETrcaTooYxkZF6u2+v0nhJW/VgiGXlAj/eoxUFkPqFvmFqd4OJv7+4VEVwVpCIi2Q4pbPS+a4q5RAWjPf5+M= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR2101MB0811.namprd21.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(4326008)(8936002)(33656002)(52536014)(19627405001)(6506007)(508600001)(316002)(53546011)(8676002)(26005)(8990500004)(966005)(186003)(110136005)(83380400001)(7696005)(166002)(64756008)(86362001)(82950400001)(55016002)(66556008)(66446008)(2906002)(5660300002)(38100700002)(66476007)(76116006)(66946007)(71200400001)(9686003)(82960400001)(10290500003)(122000001)(38070700004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YlRiK3QyeElNOWZSaTNhVTlYU0F1YkJ3dTRUclRWeGF0cXVZUXJnb1dsL2Na?= =?utf-8?B?VVNNaFlDSzR1VG9HY2NZRWRNRGIxSHVYaEdrOXZjWmV1Y01tS0tNU29pdUdB?= =?utf-8?B?RzQwbmpMdUxOZE5SSjRTL1NiV0JsZlRTTjRBU1kzOVBja2laZ3gwYW93MnNO?= =?utf-8?B?ckpsR1lvVm9kYnYvT0Eyd0Z4eXdMbWlSZjdVb3JvQlBIV0RLNlhDQ2NRb2U0?= =?utf-8?B?U24wZnJObFZycUE3d1J5bUZzdUNIQ3NRdGVVa1FLTXdyeXNXR1RnQlJmd1Bs?= =?utf-8?B?QmpNKzdPREV0V2xrNjJqTEtiaGxKekZ2S3RQM1pQTHBzOTNRcllRMUUxcUNS?= =?utf-8?B?UXN2RWVOUWQ3Z1pKeUZYMTlldHROenVwSWRYWDliem9xbDRpdThlTENzWnZX?= =?utf-8?B?T1UvZkgyaGtnZ0pSR0ZDRy92aGdHTDNXbGdxWkw4V0JodSs4VEZDeVozRVFw?= =?utf-8?B?MUE1YUdlSjdHVGEvdmxNSDV4WHRlWjZXMHdNQXF0MHBFcmpKQVdWVnZ0SHVy?= =?utf-8?B?bnRqcVB5REhmNUtyWmJOTENxOWFVV3ZzOHpueHBLay8xZzZpWlF1WFM2M0Nt?= =?utf-8?B?ZTJwcUZWYzNCUWJuTEJHRmhkSmdoVjA5VUlQZXRUdVc0UzRrMERrbThXM3o5?= =?utf-8?B?OUVheFVsSi9nNHJWbGZEU0RnSFJpVWdkdmRUL2cxcnU0N2NNVnJOMnI5N21v?= =?utf-8?B?SDNFSnVBNW9KVjlzSFZiZHpId0l2ZGYwclpQL3dCMm05NU5SbTgwbDJVcnZC?= =?utf-8?B?dGRZL1c1bVpEbUJOT2ZjVjNaOXE3UlAyQ1BaWmNrano1Q2dGbUUyK0NNRWtY?= =?utf-8?B?Szk4TW56NExlZmRPNkhRU01WVWwvUWVnY2ErSDFURzRuejdaTHlZdlZlY3pj?= =?utf-8?B?aGlabXUzSkpLNXQyM1BOd3ZReTRzUzJvaWw0aDY0Y1JWZTlyc1U1b0NCZkV2?= =?utf-8?B?YURKREhHM2c1Y1RKYjJEV1Z1NHE2d1MwZTJkMndWeGJ4YmhjZTU4REZuYXoz?= =?utf-8?B?amk1MkJMWTUzTWl1Y2lCcjBYTEVPT2JMazkwRCtObit0TVpkM0o3b1dHamgy?= =?utf-8?B?aGVEOFVxakdOTFZWblRjSVpxMVoyTVJ5Q3d0Ny9EWnZPTXdxdlkvNVNaU2Rn?= =?utf-8?B?U2EzbGlJN1pxdkZqTnpjMUorSll3YkhVV1BrKzh1VEl6eXhFdmxJR09tbktk?= =?utf-8?B?WmkyN1JPWW9aa0gvRGdWTG5sLzZEaEtUKzg5QkowRy9yQTlucEpzTzc5TzZB?= =?utf-8?B?QVZqQWt3RkdScFp1MmhjZkF3TlcxU1R5ODhJRkp6QndPRUZCTHhvbWd5SjA1?= =?utf-8?B?YXlHY1QyTDYwWjZ5akZKMVg2bGhzMEpqN2VvODY4d08xR3VLdDdrdlJKSVR5?= =?utf-8?B?Q1JibkE3bFZwcU1HMHJndjJxMGlXNW1NY0tlTTVDMlYvdk85MWdjNUlKZzFF?= =?utf-8?B?UU9YOWtKdFlNdUZuSEZNUE1FL1pxektVaDUybzlGc0p1VmFIUVdTSmRUT21a?= =?utf-8?B?NEVIa2xmZDFwVXZHR0ZHT3doNGZWczloT3laclJFQlppTW5LMjBaWGZlVk93?= =?utf-8?B?Uisyb1c0YldmdmhaazdtVDArbkZSSGVwdkF1QlRaQWJOcno4NGlwT1FMK1Z4?= =?utf-8?B?Uk5tZFVTOGZ4TUpqM2xiL3VEOTdOdEhTTTNhYitTb1I2Q2c3SXo3NHFYMmlw?= =?utf-8?B?MFFlRUl5a2RPVlVYaXZ3ZHByTHZtemErV0NFNU92YmpncVhHMUN5NTB3aXB4?= =?utf-8?Q?PzhRqLUqm0aqQqwY44=3D?= MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR2101MB0811.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c1e2ef5-29ef-4777-95d7-08d94af7f1d0 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2021 20:58:22.3092 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PifH+MY23xOzwoU595tC8i19slA6soUkPQVj19G12Xgn4hgy080+PxuQwAV33lCMl31RsQN4av0W5z6Vnmcjpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR2101MB1115 X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jul 2021 20:58:27 -0000 R2VudGxlIHBpbmcuDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KRnJvbTogR2Nj LXBhdGNoZXMgPGdjYy1wYXRjaGVzLWJvdW5jZXMrdml0b25nPW1pY3Jvc29mdC5jb21AZ2NjLmdu dS5vcmc+IG9uIGJlaGFsZiBvZiBWaWN0b3IgVG9uZyB2aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRj aGVzQGdjYy5nbnUub3JnPg0KU2VudDogTW9uZGF5LCBKdW5lIDI4LCAyMDIxIDQ6MTAgUE0NClRv OiBSaWNoYXJkIEJpZW5lciA8cmljaGFyZC5ndWVudGhlckBnbWFpbC5jb20+OyBNYXJjIEdsaXNz ZSA8bWFyYy5nbGlzc2VAaW5yaWEuZnI+DQpDYzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcgPGdj Yy1wYXRjaGVzQGdjYy5nbnUub3JnPg0KU3ViamVjdDogUmU6IFtFWFRFUk5BTF0gUmU6IFtQQVRD SF0gdHJlZS1vcHRpbWl6YXRpb246IE9wdGltaXplIGRpdmlzaW9uIGZvbGxvd2VkIGJ5IG11bHRp cGx5IFtQUjk1MTc2XQ0KDQrigItUaGFua3MgUmljaGFyZCBhbmQgTWFyYy4NCg0KSSB3cm90ZSB0 aGUgZm9sbG93aW5nIHRlc3QgY2FzZSB0byBjb21wYXJlIHRoZSBvdXRwdXRzIG9mIGZuMSgpIGFu ZCBmbjFOb09wdCgpIGJlbG93IHdpdGggbXkgZXh0cmEgcGF0dGVybiBiZWluZyBhcHBsaWVkLiBJ IHRlc3RlZCB0aGUgdHdvIGZ1bmN0aW9ucyB3aXRoIGFsbCBvZiB0aGUgaW50ZWdlcnMgZnJvbSBJ TlRfTUlOIHRvIElOVF9NQVguDQoNCmxvbmcNCmZuMSAoaW50IHgpDQp7DQogIHJldHVybiA0Mkwg LSAobG9uZykoNDIgLSB4KTsNCn0NCg0KI3ByYWdtYSBHQ0MgcHVzaF9vcHRpb25zDQojcHJhZ21h IEdDQyBvcHRpbWl6ZSAoIk8wIikNCmxvbmcNCmZuMU5vT3B0IChpbnQgeCkNCnsNCiAgdm9sYXRp bGUgaW50IHkgPSAoNDIgLSB4KTsNCiAgcmV0dXJuIDQyTCAtIChsb25nKXk7DQp9DQojcHJhZ21h IEdDQyBwb3Bfb3B0aW9ucw0KDQppbnQgbWFpbiAoKQ0Kew0KICAgICAgICBmb3IgKGxvbmcgaT1J TlRfTUlOOyBpPD1JTlRfTUFYO2krKykNCiAgICAgICAgew0KICAgICAgICAgICAgICAgIGF1dG8g dmFsTm9PcHQgPSBmbjFOb09wdChpKTsNCiAgICAgICAgICAgICAgICBhdXRvIHZhbE9wdCA9IGZu MShpKTsNCiAgICAgICAgICAgICAgICBpZiAodmFsTm9PcHQgIT0gdmFsT3B0KQ0KICAgICAgICAg ICAgICAgICAgICAgICAgcHJpbnRmKCJ2YWxPcHQ9JWxkLCB2YWxOb09wdD0lbGRcbiIsIHZhbE9w dCwgdmFsTm9PcHQpOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAwOw0KfQ0KDQpJIHNhdyB0 aGF0IHRoZSByZXR1cm4gdmFsdWVzIG9mIGZuMSgpIGFuZCBmbjFOb09wdCgpIGRpZmZlcmVkIHdo ZW4gdGhlIGlucHV0IHdhcyBiZXR3ZWVuIElOVF9NSU4gYW5kIElOVF9NSU4rNDIgaW5jbHVzaXZl LiBXaGVuIHBhc3NpbmcgdmFsdWVzIGluIHRoaXMgcmFuZ2UgdG8gZm4xTm9PcHQoKSwgYSBzaWdu ZWQgb3ZlcmZsb3cgaXMgdHJpZ2dlcmVkIHdoaWNoIGNhdXNlcyB0aGUgdmFsdWUgdG8gZGlmZmVy ICh1bmRlZmluZWQgYmVoYXZpb3IpLiBUaGlzIHNlZW1zIHRvIGdvIGluIGxpbmUgd2l0aCB3aGF0 IE1hcmMgZGVzY3JpYmVkIGFuZCBJIHRoaW5rIHRoZSB0cmFuc2Zvcm1hdGlvbiBpcyBjb3JyZWN0 IGluIHRoZSBzY2VuYXJpbyBhYm92ZS4gSSBkbyB0aGluayB0aGF0IHR5cGUgY2FzdHMgdGhhdCBy ZXN1bHQgaW4gdHJ1bmNhdGlvbiAoaS5lLiBmcm9tIGEgaGlnaGVyIHByZWNpc2lvbiB0byBhIGxv d2VyIG9uZSkgb3Igd2l0aCB1bnNpZ25lZCB0eXBlcyB3aWxsIHJlc3VsdCBpbiBhbiBpbmNvcnJl Y3QgdHJhbnNmb3JtYXRpb24gc28gdGhvc2Ugc2NlbmFyaW9zIG5lZWQgdG8gYmUgYXZvaWRlZC4N Cg0KR2l2ZW4gdGhhdCB0aGUgZXh0cmEgcGF0dGVybiBJJ20gYWRkaW5nIGlzIHRha2luZyBhZHZh bnRhZ2UgdGhlIHVuZGVmaW5lZCBiZWhhdmlvciBvZiBzaWduZWQgaW50ZWdlciBvdmVyZmxvdywg SSdtIGNvbnNpZGVyaW5nIGtlZXBpbmcgdGhlIGV4aXN0aW5nIG5vcF9jb252ZXJ0IHBhdHRlcm4g aW4gcGxhY2UgYW5kIGFkZGluZyBhIG5ldyBwYXR0ZXJuIHRvIGNvdmVyIHRoZXNlIG5ldyBjYXNl cy4gSSdkIGFsc28gbGlrZSB0byBhdm9pZCB0b3VjaGluZyBub3BfY29udmVydCBnaXZlbiB0aGF0 IGl0J3MgdXNlZCBpbiBhIG51bWJlciBvZiBvdGhlciBwYXR0ZXJucy4NCg0KVGhpcyBpcyB0aGUg cGF0dGVybiBJIGhhdmUgY3VycmVudGx5Og0KDQogIChzaW1wbGlmeQ0KICAgIChtaW51cyAoY29u dmVydDE/IEAwKSAoY29udmVydDI/IChtaW51cyAoY29udmVydDM/IEAyKSBAMSkpKQ0KICAgIChp ZiAob3BlcmFuZF9lcXVhbF9wKEAwLCBAMiwgMCkNCiAgICAgICAgJiYgSU5URUdSQUxfVFlQRV9Q ICh0eXBlKQ0KICAgICAgICAmJiBUWVBFX09WRVJGTE9XX1VOREVGSU5FRCh0eXBlKQ0KICAgICAg ICAmJiAhVFlQRV9PVkVSRkxPV19TQU5JVElaRUQodHlwZSkNCiAgICAgICAgJiYgSU5URUdSQUxf VFlQRV9QIChUUkVFX1RZUEUoQDEpKQ0KICAgICAgICAmJiBUWVBFX09WRVJGTE9XX1VOREVGSU5F RChUUkVFX1RZUEUoQDEpKQ0KICAgICAgICAmJiAhVFlQRV9PVkVSRkxPV19TQU5JVElaRUQoVFJF RV9UWVBFKEAxKSkNCiAgICAgICAgJiYgIVRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAoQDEpKQ0K ICAgICAgICAmJiAhVFlQRV9VTlNJR05FRCAodHlwZSkNCiAgICAgICAgJiYgVFlQRV9QUkVDSVNJ T04gKFRSRUVfVFlQRSAoQDEpKSA8PSBUWVBFX1BSRUNJU0lPTiAodHlwZSkNCiAgICAgICAgJiYg SU5URUdSQUxfVFlQRV9QIChUUkVFX1RZUEUoQDApKQ0KICAgICAgICAmJiBUWVBFX09WRVJGTE9X X1VOREVGSU5FRChUUkVFX1RZUEUoQDApKQ0KICAgICAgICAmJiAhVFlQRV9PVkVSRkxPV19TQU5J VElaRUQoVFJFRV9UWVBFKEAwKSkNCiAgICAgICAgJiYgIVRZUEVfVU5TSUdORUQgKFRSRUVfVFlQ RSAoQDApKQ0KICAgICAgICAmJiBUWVBFX1BSRUNJU0lPTiAoVFJFRV9UWVBFIChAMCkpIDw9IFRZ UEVfUFJFQ0lTSU9OICh0eXBlKQ0KICAgICAgICAmJiBUUkVFX1RZUEUoQDEpID09IFRSRUVfVFlQ RShAMikpDQogICAgKGNvbnZlcnQgQDEpKSkNCg0KSXMgdGhlcmUgYSBtb3JlIGNvbmNpc2UvYmV0 dGVyIHdheSBvZiB3cml0aW5nIHRoZSBwYXR0ZXJuPyBJIHdhcyBsb29raW5nIGZvciBzaW1pbGFy IGNoZWNrcyBpbiBtYXRjaC5wZCBhbmQgSSBjb3VsZG4ndCBmaW5kIGFueXRoaW5nIHRoYXQgSSBj b3VsZCBsZXZlcmFnZS4NCg0KSSBhbHNvIGtlcHQgbXkgcGF0dGVybiB0byB0aGUgc3BlY2lmaWMg c2NlbmFyaW8gSSdtIHNlZWluZyB3aXRoIHRoZSByZWdyZXNzaW9uIHRvIGxvd2VyIHRoZSByaXNr IG9mIHNvbWV0aGluZyBicmVha2luZy4gSSd2ZSBsaW1pdGVkIEAxIGFuZCBAMiB0byBoYXZlIHRo ZSBzYW1lIHR5cGUuDQoNCkknbSBhbHNvIGluIGZhdm9yIG9mIGFkZGluZy9ydW5uaW5nIGNvbXB1 dGVyIHZlcmlmaWNhdGlvbiB0byBtYWtlIHN1cmUgdGhlIHRyYW5zZm9ybWF0aW9uIGlzIGxlZ2Fs LiBJJ3ZlIHdyaXR0ZW4gc29tZSB0ZXN0cyB0byB2ZXJpZnkgdGhhdCB0aGUgcGF0dGVybiBpcyBi ZWluZyBhcHBsaWVkIGluIHRoZSByaWdodCBzY2VuYXJpb3MgYW5kIG5vdCBiZWluZyBhcHBsaWVk IGluIG90aGVycywgYnV0IEkgdGhpbmsgdGhlcmUgYXJlIHRvbyBtYW55IHBvc3NpYmlsaXRpZXMg dG8gbWFudWFsbHkgd3JpdGUgdGhlbSBhbGwuIElzIHRoZXJlIGFueXRoaW5nIGluIEdDQyB0aGF0 IGNhbiBiZSB1c2VkIHRvIHZlcmlmeSB0aGF0IG1hdGNoLnBkIHRyYW5zZm9ybWF0aW9ucyBhcmUg Y29ycmVjdD8gSSdtIHRoaW5raW5nIG9mIHNvbWV0aGluZyBsaWtlIEFsaXZlIGh0dHBzOi8vbmFt MDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdp dGh1Yi5jb20lMkZBbGl2ZVRvb2xraXQlMkZhbGl2ZTImYW1wO2RhdGE9MDQlN0MwMSU3Q3ZpdG9u ZyU0MG1pY3Jvc29mdC5jb20lN0NiYTdkOGY5ZjliNzc0NDYyMTQ4NjA4ZDkzYThhMDQ3MSU3Qzcy Zjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2Mzc2MDUxODY3MjYyODM3 ODUlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWpvaVYy bHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMTAwMCZhbXA7c2RhdGE9dWd4 JTJGVHc1OE9Qakx6YW1FOXlxUVRoVjV1NEVmUThKTHJ1cm5JeTAwQXpRJTNEJmFtcDtyZXNlcnZl ZD0wLg0KDQpUaGFua3MsDQpWaWN0b3INCg0KDQoNCkZyb206IFJpY2hhcmQgQmllbmVyIDxyaWNo YXJkLmd1ZW50aGVyQGdtYWlsLmNvbT4NClNlbnQ6IE1vbmRheSwgSnVuZSAyMSwgMjAyMSAxMjow OCBBTQ0KVG86IE1hcmMgR2xpc3NlIDxtYXJjLmdsaXNzZUBpbnJpYS5mcj4NCkNjOiBWaWN0b3Ig VG9uZyA8dml0b25nQG1pY3Jvc29mdC5jb20+OyBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZyA8Z2Nj LXBhdGNoZXNAZ2NjLmdudS5vcmc+DQpTdWJqZWN0OiBSZTogW0VYVEVSTkFMXSBSZTogW1BBVENI XSB0cmVlLW9wdGltaXphdGlvbjogT3B0aW1pemUgZGl2aXNpb24gZm9sbG93ZWQgYnkgbXVsdGlw bHkgW1BSOTUxNzZdDQoNCk9uIFNhdCwgSnVuIDE5LCAyMDIxIGF0IDc6MDUgUE0gTWFyYyBHbGlz c2UgPG1hcmMuZ2xpc3NlQGlucmlhLmZyPiB3cm90ZToNCj4NCj4gT24gRnJpLCAxOCBKdW4gMjAy MSwgUmljaGFyZCBCaWVuZXIgd3JvdGU6DQo+DQo+ID4+IE9wdGlvbiAyOiBBZGQgYSBuZXcgcGF0 dGVybiB0byBzdXBwb3J0IHNjZW5hcmlvcyB0aGF0IHRoZSBleGlzdGluZyBub3BfY29udmVydCBw YXR0ZXJuIGJhaWxzIG91dCBvbi4NCj4gPj4NCj4gPj4gRXhpc3RpbmcgcGF0dGVybjoNCj4gPj4N Cj4gPj4gKHNpbXBsaWZ5DQo+ID4+ICAgIChtaW51cyAobm9wX2NvbnZlcnQxPyBAMCkgKG5vcF9j b252ZXJ0Mj8gKG1pbnVzIChub3BfY29udmVydDM/IEBAMCkgQDEpKSkNCj4gPj4gICAgKHZpZXdf Y29udmVydCBAMSkpDQo+DQo+IEkgdHJpZWQgdG8gY2hlY2sgd2l0aCBhIHByb2dyYW0gd2hlbg0K Pg0KPiBUMyB4Ow0KPiBUMSB5Ow0KPiAoVDIpeC0oVDIpKChUMSl4LXkpDQo+DQo+IGNhbiBiZSBz YWZlbHkgcmVwbGFjZWQgd2l0aA0KPg0KPiAoVDIpeQ0KPg0KPiBGcm9tIHRoZSBvdXRwdXQsIGl0 IGxvb2tzIGxpa2UgdGhpcyBpcyBzYWZlIHdoZW4gVDEgaXMgYXQgbGVhc3QgYXMgbGFyZ2UNCj4g YXMgVDIuIEl0IGlzIHdyb25nIHdoZW4gVDEgaXMgdW5zaWduZWQgYW5kIHNtYWxsZXIgdGhhbiBU Mi4gQW5kIHdoZW4gVDEgaXMNCj4gc2lnbmVkIGFuZCBzbWFsbGVyIHRoYW4gVDIsIGl0IGlzIG9r IGlmIFQzIGlzIHRoZSBzYW1lIHR5cGUgYXMgVDEgKHNpZ25lZA0KPiB0aGVuKSBvciBoYXMgc3Ry aWN0bHkgbGVzcyBwcmVjaXNpb24gKGFueSBzaWduKSwgYW5kIG5vdCBpbiBvdGhlciBjYXNlcy4N Cj4NCj4gTm90ZSB0aGF0IHRoaXMgaXMgd2hlbiBzaWduZWQgaW1wbGllcyB1bmRlZmluZWQgb3Zl cmZsb3cgYW5kIHVuc2lnbmVkDQo+IGltcGxpZXMgd3JhcHBpbmcsIGFuZCBJIHdvdWxkbid0IHB1 dCB0b28gbXVjaCBmYWl0aCBpbiB0aGlzIHJlY2VudGx5DQo+IGR1c3RlZCBwcm9ncmFtLiBBbmQg aXQgZG9lc24ndCBzYXkgaG93IHRvIHdyaXRlIHRoZSBtYXRjaC5wZCBwYXR0ZXJuIHdpdGgNCj4g Jz8nLCAiQEAiLCBkaXNhYmxpbmcgaXQgaWYgVFlQRV9PVkVSRkxPV19TQU5JVElaRUQsIGV0Yy4N Cj4NCj4gTW9zdGx5LCBJIHdhbnRlZCB0byBzYXkgdGhhdCBpZiB3ZSBhcmUgZ29pbmcgdG8gZ28g aGFuZGxlIG1vcmUgdGhhbg0KPiBub3BfY29udmVydCBmb3IgbW9yZSB0aGFuIGp1c3QgMSBvciAy IGVhc3kgdHJhbnNmb3JtYXRpb25zLCBJIHRoaW5rIHNvbWUNCj4ga2luZCBvZiBjb21wdXRlciB2 ZXJpZmljYXRpb24gd291bGQgYmUgdXNlZnVsLCBpdCB3b3VsZCBzYXZlIGEgbG90IG9mIHRpbWUN Cj4gYW5kIGhlYWRhY2hlcy4NCg0KVHJ1ZS4gIEkgd29uZGVyIGlmIGF1dG8tZ2VuZXJhdGluZyBz dWNoIHRlc3RzIGZyb20gbWF0Y2gucGQgcnVsZXMgd291bGQNCmJlIGEgZ29vZCBwcm9qZWN0IHRv IHdvcmsgb24gKEdTb0M/KS4gIFdoZW4gdGhlcmUncyBkZWZpbmVfbWF0Y2gNCmludm9sdmVkIHRo aW5ncyBnZXQgYSBsaXR0bGUgdHJpY2t5LCBidXQgdGhlbiBvbmUgaXRlbSBvbiB0aGUgVE9ETyBs aXN0DQppcyAiaW5saW5pbmciIHRob3NlIGF0IHRoZSB1c2Ugc2l0ZSAoZXhwbG9kaW5nIHRoZSBk ZWNpc2lvbiB0cmVlIGV2ZW4gbW9yZSkuDQoNClJpY2hhcmQuDQoNCj4gKEkganVzdCBjaGVjayBi eSBicnV0ZSBmb3JjZSBhbGwgcG9zc2libGUgcHJlY2lzaW9ucyAoZnJvbSAxIHRvIDYpIGFuZA0K PiBzaWduZWRuZXNzIGZvciBUMSwgVDIgYW5kIFQzLCBhbGwgcG9zc2libGUgdmFsdWVzIGZvciB4 IGFuZCB5LCBjb21wdXRlDQo+IHRoZSBiZWZvcmUgYW5kIGFmdGVyIGZvcm11bGFzLCBhY2NlcHRp bmcgaWYgdGhlcmUgaXMgVUIgYmVmb3JlLCByZWplY3RpbmcNCj4gaWYgdGhlcmUgaXMgVUIgYWZ0 ZXIgKGFuZCBub3QgYmVmb3JlKSwgYW5kIG1hbnVhbGx5IHRyeSB0byBzZWUgYSBwYXR0ZXJuDQo+ IGluIHRoZSBsaXN0IG9mIHR5cGVzIHRoYXQgd29yaykNCj4NCj4gLS0NCj4gTWFyYyBHbGlzc2UN Cg==