From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from outbound.mail.eo.outlook.com (mail-oln040093003004.outbound.protection.outlook.com [40.93.3.4]) by sourceware.org (Postfix) with ESMTPS id 3975C3855002 for ; Mon, 28 Jun 2021 23:10:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3975C3855002 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AbWKkJ0+z7j3U+JzwwqASca7XEIMXJhu10ylpohCT5YMZgfN5UiJn7J+K6yk81z33J4Mu8/Vac1aY55f0sIBdm4/UPiu+bK+6uE2no8OV7cyvZ/o0cNGdYWChToq83EnfgSFOc2y3hP05TISAjKAuaW2XbGxX6EWeiPl9GmeDoKfTLAq96pE/fAcWNt6ZRzIP8GwJmV1sJcsRThkKnl7GeyPJJt3F1L4nzhvBUvZrQH+m1wd8eGu5TE2+2yKAcWV3594RjdC+I7D/J5wZ2lC3tOPXR1Ia8H/0qBlhAoi5zFEZyy2AvcQCdTgGmHYKMlvVcwMHyUMyo0kftwacdsc0g== 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=toiI1/Kci6BoLW5g1YEHi+7trC14vjIOzQpUqWPandk=; b=RTDOtzSR+82GStbzBVIJVzgNcm6itHsIYtvfJgj4DClz5Jxhfqe69nxAh/S8kYyCa/aCnHlFcDW4iAYGs6AfnPwQEeGt9jGhohiZPIbyToKqybKJg5pqqwPAqlNJrdSRmS1rhwzM69hx8wqjWjtapU8H1R/uJQ6ptomXjPU2E7fxh8wgZlgJYpYEYSaIbYC8Kas9G1jr9pacKlbEeyjGy207rwYZtdF95R2YmEm1K2VOpd0XkRNDl/l9n+9J6FUL14BN8deoAN/owZylBaJXMATAvs4mlN/Ay8R7CHvYHR0DHniHtRngOGMyxipTCvTdTqA3Yf4zJN1I3w5RqYw41g== 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 MW2PR2101MB1755.namprd21.prod.outlook.com (2603:10b6:302:13::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.4; Mon, 28 Jun 2021 23:10:13 +0000 Received: from MWHPR2101MB0811.namprd21.prod.outlook.com ([fe80::4110:8b6d:83ba:8df7]) by MWHPR2101MB0811.namprd21.prod.outlook.com ([fe80::4110:8b6d:83ba:8df7%7]) with mapi id 15.20.4264.004; Mon, 28 Jun 2021 23:10:13 +0000 From: Victor Tong To: Richard Biener , Marc Glisse 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/gAKMnwCAAg2QAIACfg6AgAwMpn4= Date: Mon, 28 Jun 2021 23:10:12 +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-06-28T23:10:13.038Z; 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: e8e9c470-76b5-488f-2a4c-08d93a89e245 x-ms-traffictypediagnostic: MW2PR2101MB1755: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nClDllUrFUYLkK+GzozKm0Nij3FR3voDCmhIDHllOkvNtthb2wgk+Z5msobYr9aRdexp9xEFoqt8xUSA+beK283EVfVmNYgnxwXWtcKKg3LwbR7B6PgdX8YDtlo1+3j7efsSuFikHy23yXzg49iutZbeMBwv/hcwd3R7rK1Ue5jl5PfJTrjTMLITWGeZZ+1jh0tkTOSORKXIocQOAK9OiK/Ct/WgtzjZSrlRJOHD5ikHQCWOWK9EID047VP0Z9HvjalFFPYKoq5MUm9YxRyLEgQO23Z7a6OYylsoNJkOeXDf/k1pU/HlmB33y1H6cpNOsHmHohzjII031JLm8Atxdp0nndh6iQoB4d35W/Iuxnj8t6/6jCSwpslQaF6EaSux7Ni5HCIaBCPWE9R9IDWS1PqA7ZQKXmJ5Npcw8M27az3b5/MtOyTMYiwVoCmK5QEOSbW7ivKF4eXTXHrLFBKaVtlcdWPPa+T6x4J4Q6oPdh3BUPGI7n014o2rSNBGsLS+bRi3SgT3kc+8/Qr390e+fH9xsEG9CLgoVSnaKJn2HH/kC9EXq2kVEHJT7tGGqx2j3JH3vx0BzxYKoy9XKeuJIVTmvUZxXu0bGnQyFR9dtRyEoFZNdI1TvzfMtMLQwRvCRftwHVk71K3pXo8P0fI2W7z/JmlLCiEr4ilKjRjQV/Fh66/PXCRtdki30TLW/90Cvw1IxoDt45RUaCBdd6nydA/+uuvTwk463Hv3FKzbAByTkw4JDLvCbfFFWfljaho/VrlevXe6z30fRULTV5k7jQ== 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)(7696005)(122000001)(316002)(8936002)(83380400001)(5660300002)(66946007)(8676002)(53546011)(8990500004)(86362001)(110136005)(52536014)(38100700002)(55016002)(33656002)(66476007)(82950400001)(186003)(10290500003)(66556008)(76116006)(4326008)(6506007)(478600001)(966005)(26005)(9686003)(64756008)(66446008)(82960400001)(2906002)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dVR2Sis1YWN6S01mbThndFpLZ3RZSVlreVA3bmlTbDE4dzIyTjdVN2VnUlE3?= =?utf-8?B?UGREOVRoek1OMnIza2U5TmtMSGl5TDRydUMxSkw1WGw5SzhoeDVneUdmRHI4?= =?utf-8?B?ZWVPK2xrYXZDL1czMFpIdzBzK3BCa2tjN0N1blBkR3dLcFdxdDFFTXhsbWxG?= =?utf-8?B?akJPT2ZjckxLRUt3YXJJQWRMZVhkdzc5UmRCbWVYREZ6ZHJJWC9PUVYyRGhl?= =?utf-8?B?K3hRNEcxeExHUHJrNGhSU3RIUjlobmt0eFBLRmQ0MDNXZnRLblM4VjlKTmhR?= =?utf-8?B?T1NEc1dIa1pzRW85enNQYm5sa212M2Nha3FEaTJ4RlpWNi9IYUZoQmxBRGJI?= =?utf-8?B?R2EwcllQaWQ5dW1pTHpGcE5ITkVIYmRQWEptS2JIYjFaaHA5eFI1NmhFY3dS?= =?utf-8?B?dHVvV0U1dXF6KzJMR3JVTDNiSkYwOG9FRUhMb1cxVzREZGcrTDcwaFh4T3VB?= =?utf-8?B?NGVnODNzRENzWjNDY0xvazg5bDloTXBaRXc3TjNVckpiZGRJWENBL2FrcVNz?= =?utf-8?B?NUtSYlk4ZjFaME50K0RseXdHa3hjcHcvYjhTY3dvZVowY21LMjFjbjNxQ1gz?= =?utf-8?B?TnZTdThSSjNiKzZUeW4wTFRuM2Radjd1d2tXV0g5V3RWYUlTaytPNklIMGRq?= =?utf-8?B?NHI4ZWg3V3h1dGVodWs0ZW5Qd0hxNmF4b29EeE5ILzVZZXBoV1dZRyt1cXRr?= =?utf-8?B?a0gxQ1lkaGJqTWFMZjZvVXJwR1psR0VJMzlOcHpQMUpPZmYxbkFKbUJ1Y2VY?= =?utf-8?B?eFdkdUNxVkpDVHk3aGVSWkJ0UmFqVml6MEdMMXl4UVBUT3ljQW9VWGUweVVz?= =?utf-8?B?L1hYb2VSWUt3eVE5NElZTGY2SXZYRkQ4WkdVWHFOdy9EdDZua3JUei9yak5P?= =?utf-8?B?bU44YUpmSmZOaW1HN292Y0JlZlQ1MjVITUdXMW53a3ZYcTk3TXE5UnBFYlJ0?= =?utf-8?B?eXltbDViZUEwL1pNL1dRalVJeHBaYzdZQkNmSDlWRXBkYnQvQk9YbmVvSkRa?= =?utf-8?B?OTBZeEFwcGxJcHk5V1dPMmI2a1c3MnRJTEM1b0ZWT0UrMUdhdlVrQW1yODRX?= =?utf-8?B?U1RzbjEwRFp0V3F5Z0l4ZUJlYWtrR3g1UXJEcU5FU2E1SWRTNGU3T25wV2p1?= =?utf-8?B?VzdGekd1WHpnVlZsN3krNU40T2MwUFIxdURLaHN6eHVHMVJWVHJ0LzdiQlA2?= =?utf-8?B?cEJvN2RHcUNSNmtQdzZzeENOMVZVV0FVbFN4VjlseEV5OCswYWtLZ2Q1SHdY?= =?utf-8?B?ZVl5dENZT1ZZUFFSR205RFRqeW5nT2FLaW5VcTRzaFNTS2ZPWUNWVWVRbnJ6?= =?utf-8?B?SkhsR0t0c2VEaW1Qam9iQzYyaiswbnh5REgrcGI4emZrVEJUdWhvcVhkeFFz?= =?utf-8?B?SHdYdWNkZFhHT2lhSld2b0pqRGltb2lIVHE4RkJoK0dhbWRoTjJsOE9BYVRH?= =?utf-8?B?NTZNNXkxSThwcVlBVnBiaCs0V2diQ1I2dDFuMlRIamdPU3dGeVJnWUp3WHJQ?= =?utf-8?B?enN6QTlVbUdDMjFBaXM3b1YxYUorVkFaZ0ptbmRIOXRoNDI4OGppRm5pdEdN?= =?utf-8?B?aFJSbFZESloxdTlXT1VjU1B2U1JBUk94Mmp4THprLzZGOVkxcXlIbzlhaTRB?= =?utf-8?B?Rzk4OTFCZjl1c3h5TFVaTW9ZKytWVmFJS3JvckdKZ1RVSlNqRUQ4VXlhWFVh?= =?utf-8?B?YUxuRGpsV1NDSFg0YXRid3MzYlpnQjZGai9ncXVHeUszL21lMGZzM3hiVVR6?= =?utf-8?Q?r+r0GeZpQRYc8zkusk=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 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: e8e9c470-76b5-488f-2a4c-08d93a89e245 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jun 2021 23:10:12.9580 (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: WzpC1e+YMcMg7whpQ9QO49TqurfFRxn2q77NzKkdrzhwk26QQ0kPvuwgqNqh+N6i25R0FFWXTr08NeLmT9S2HA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR2101MB1755 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_PASS, TXREP, T_SPF_HELO_TEMPERROR autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org 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, 28 Jun 2021 23:10:19 -0000 4oCLVGhhbmtzIFJpY2hhcmQgYW5kIE1hcmMuCgpJIHdyb3RlIHRoZSBmb2xsb3dpbmcgdGVzdCBj YXNlIHRvIGNvbXBhcmUgdGhlIG91dHB1dHMgb2YgZm4xKCkgYW5kIGZuMU5vT3B0KCkgYmVsb3cg d2l0aCBteSBleHRyYSBwYXR0ZXJuIGJlaW5nIGFwcGxpZWQuIEkgdGVzdGVkIHRoZSB0d28gZnVu Y3Rpb25zIHdpdGggYWxsIG9mIHRoZSBpbnRlZ2VycyBmcm9tIElOVF9NSU4gdG8gSU5UX01BWC4K CmxvbmcKZm4xIChpbnQgeCkKewrCoCByZXR1cm4gNDJMIC0gKGxvbmcpKDQyIC0geCk7Cn0KCiNw cmFnbWEgR0NDIHB1c2hfb3B0aW9ucwojcHJhZ21hIEdDQyBvcHRpbWl6ZSAoIk8wIikKbG9uZwpm bjFOb09wdCAoaW50IHgpCnsKwqAgdm9sYXRpbGUgaW50IHkgPSAoNDIgLSB4KTsKwqAgcmV0dXJu IDQyTCAtIChsb25nKXk7Cn0KI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKCmludCBtYWluICgpCnsK CWZvciAobG9uZyBpPUlOVF9NSU47IGk8PUlOVF9NQVg7aSsrKQoJewoJCWF1dG8gdmFsTm9PcHQg PSBmbjFOb09wdChpKTsKCQlhdXRvIHZhbE9wdCA9IGZuMShpKTsKCQlpZiAodmFsTm9PcHQgIT0g dmFsT3B0KQoJCQlwcmludGYoInZhbE9wdD0lbGQsIHZhbE5vT3B0PSVsZFxuIiwgdmFsT3B0LCB2 YWxOb09wdCk7Cgl9CglyZXR1cm4gMDsKfQoKSSBzYXcgdGhhdCB0aGUgcmV0dXJuIHZhbHVlcyBv ZiBmbjEoKSBhbmQgZm4xTm9PcHQoKSBkaWZmZXJlZCB3aGVuIHRoZSBpbnB1dCB3YXMgYmV0d2Vl biBJTlRfTUlOIGFuZCBJTlRfTUlOKzQyIGluY2x1c2l2ZS4gV2hlbiBwYXNzaW5nIHZhbHVlcyBp biB0aGlzIHJhbmdlIHRvIGZuMU5vT3B0KCksIGEgc2lnbmVkIG92ZXJmbG93IGlzIHRyaWdnZXJl ZCB3aGljaCBjYXVzZXMgdGhlIHZhbHVlIHRvIGRpZmZlciAodW5kZWZpbmVkIGJlaGF2aW9yKS4g VGhpcyBzZWVtcyB0byBnbyBpbiBsaW5lIHdpdGggd2hhdCBNYXJjIGRlc2NyaWJlZCBhbmQgSSB0 aGluayB0aGUgdHJhbnNmb3JtYXRpb24gaXMgY29ycmVjdCBpbiB0aGUgc2NlbmFyaW8gYWJvdmUu IEkgZG8gdGhpbmsgdGhhdCB0eXBlIGNhc3RzIHRoYXQgcmVzdWx0IGluIHRydW5jYXRpb24gKGku ZS4gZnJvbSBhIGhpZ2hlciBwcmVjaXNpb24gdG8gYSBsb3dlciBvbmUpIG9yIHdpdGggdW5zaWdu ZWQgdHlwZXMgd2lsbCByZXN1bHQgaW4gYW4gaW5jb3JyZWN0IHRyYW5zZm9ybWF0aW9uIHNvIHRo b3NlIHNjZW5hcmlvcyBuZWVkIHRvIGJlIGF2b2lkZWQuCgpHaXZlbiB0aGF0IHRoZSBleHRyYSBw YXR0ZXJuIEknbSBhZGRpbmcgaXMgdGFraW5nIGFkdmFudGFnZSB0aGUgdW5kZWZpbmVkIGJlaGF2 aW9yIG9mIHNpZ25lZCBpbnRlZ2VyIG92ZXJmbG93LCBJJ20gY29uc2lkZXJpbmcga2VlcGluZyB0 aGUgZXhpc3Rpbmcgbm9wX2NvbnZlcnQgcGF0dGVybiBpbiBwbGFjZSBhbmQgYWRkaW5nIGEgbmV3 IHBhdHRlcm4gdG8gY292ZXIgdGhlc2UgbmV3IGNhc2VzLiBJJ2QgYWxzbyBsaWtlIHRvIGF2b2lk IHRvdWNoaW5nIG5vcF9jb252ZXJ0IGdpdmVuIHRoYXQgaXQncyB1c2VkIGluIGEgbnVtYmVyIG9m IG90aGVyIHBhdHRlcm5zLgoKVGhpcyBpcyB0aGUgcGF0dGVybiBJIGhhdmUgY3VycmVudGx5OgoK wqAgKHNpbXBsaWZ5CsKgIMKgIChtaW51cyAoY29udmVydDE/IEAwKSAoY29udmVydDI/IChtaW51 cyAoY29udmVydDM/IEAyKSBAMSkpKQrCoCDCoCAoaWYgKG9wZXJhbmRfZXF1YWxfcChAMCwgQDIs IDApCsKgIMKgIMKgIMKgICYmIElOVEVHUkFMX1RZUEVfUCAodHlwZSkKwqAgwqAgwqAgwqAgJiYg VFlQRV9PVkVSRkxPV19VTkRFRklORUQodHlwZSkKwqAgwqAgwqAgwqAgJiYgIVRZUEVfT1ZFUkZM T1dfU0FOSVRJWkVEKHR5cGUpCsKgIMKgIMKgIMKgICYmIElOVEVHUkFMX1RZUEVfUCAoVFJFRV9U WVBFKEAxKSkKwqAgwqAgwqAgwqAgJiYgVFlQRV9PVkVSRkxPV19VTkRFRklORUQoVFJFRV9UWVBF KEAxKSkKwqAgwqAgwqAgwqAgJiYgIVRZUEVfT1ZFUkZMT1dfU0FOSVRJWkVEKFRSRUVfVFlQRShA MSkpCsKgIMKgIMKgIMKgICYmICFUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUgKEAxKSkKwqAgwqAg wqAgwqAgJiYgIVRZUEVfVU5TSUdORUQgKHR5cGUpCsKgIMKgIMKgIMKgICYmIFRZUEVfUFJFQ0lT SU9OIChUUkVFX1RZUEUgKEAxKSkgPD0gVFlQRV9QUkVDSVNJT04gKHR5cGUpCsKgIMKgIMKgIMKg ICYmIElOVEVHUkFMX1RZUEVfUCAoVFJFRV9UWVBFKEAwKSkKwqAgwqAgwqAgwqAgJiYgVFlQRV9P VkVSRkxPV19VTkRFRklORUQoVFJFRV9UWVBFKEAwKSkKwqAgwqAgwqAgwqAgJiYgIVRZUEVfT1ZF UkZMT1dfU0FOSVRJWkVEKFRSRUVfVFlQRShAMCkpCsKgIMKgIMKgIMKgICYmICFUWVBFX1VOU0lH TkVEIChUUkVFX1RZUEUgKEAwKSkKwqAgwqAgwqAgwqAgJiYgVFlQRV9QUkVDSVNJT04gKFRSRUVf VFlQRSAoQDApKSA8PSBUWVBFX1BSRUNJU0lPTiAodHlwZSkKwqAgwqAgwqAgwqAgJiYgVFJFRV9U WVBFKEAxKSA9PSBUUkVFX1RZUEUoQDIpKQrCoCDCoCAoY29udmVydCBAMSkpKQoKSXMgdGhlcmUg YSBtb3JlIGNvbmNpc2UvYmV0dGVyIHdheSBvZiB3cml0aW5nIHRoZSBwYXR0ZXJuPyBJIHdhcyBs b29raW5nIGZvciBzaW1pbGFyIGNoZWNrcyBpbiBtYXRjaC5wZCBhbmQgSSBjb3VsZG4ndCBmaW5k IGFueXRoaW5nIHRoYXQgSSBjb3VsZCBsZXZlcmFnZS4KCkkgYWxzbyBrZXB0IG15IHBhdHRlcm4g dG8gdGhlIHNwZWNpZmljIHNjZW5hcmlvIEknbSBzZWVpbmcgd2l0aCB0aGUgcmVncmVzc2lvbiB0 byBsb3dlciB0aGUgcmlzayBvZiBzb21ldGhpbmcgYnJlYWtpbmcuIEkndmUgbGltaXRlZCBAMSBh bmQgQDIgdG8gaGF2ZSB0aGUgc2FtZSB0eXBlLgoKSSdtIGFsc28gaW4gZmF2b3Igb2YgYWRkaW5n L3J1bm5pbmcgY29tcHV0ZXIgdmVyaWZpY2F0aW9uIHRvIG1ha2Ugc3VyZSB0aGUgdHJhbnNmb3Jt YXRpb24gaXMgbGVnYWwuIEkndmUgd3JpdHRlbiBzb21lIHRlc3RzIHRvIHZlcmlmeSB0aGF0IHRo ZSBwYXR0ZXJuIGlzIGJlaW5nIGFwcGxpZWQgaW4gdGhlIHJpZ2h0IHNjZW5hcmlvcyBhbmQgbm90 IGJlaW5nIGFwcGxpZWQgaW4gb3RoZXJzLCBidXQgSSB0aGluayB0aGVyZSBhcmUgdG9vIG1hbnkg cG9zc2liaWxpdGllcyB0byBtYW51YWxseSB3cml0ZSB0aGVtIGFsbC4gSXMgdGhlcmUgYW55dGhp bmcgaW4gR0NDIHRoYXQgY2FuIGJlIHVzZWQgdG8gdmVyaWZ5IHRoYXQgbWF0Y2gucGQgdHJhbnNm b3JtYXRpb25zIGFyZSBjb3JyZWN0PyBJJ20gdGhpbmtpbmcgb2Ygc29tZXRoaW5nIGxpa2UgQWxp dmUgaHR0cHM6Ly9naXRodWIuY29tL0FsaXZlVG9vbGtpdC9hbGl2ZTIuCgpUaGFua3MsClZpY3Rv cgoKCgpGcm9tOiBSaWNoYXJkIEJpZW5lciA8cmljaGFyZC5ndWVudGhlckBnbWFpbC5jb20+ClNl bnQ6IE1vbmRheSwgSnVuZSAyMSwgMjAyMSAxMjowOCBBTQpUbzogTWFyYyBHbGlzc2UgPG1hcmMu Z2xpc3NlQGlucmlhLmZyPgpDYzogVmljdG9yIFRvbmcgPHZpdG9uZ0BtaWNyb3NvZnQuY29tPjsg Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPgpTdWJqZWN0 OiBSZTogW0VYVEVSTkFMXSBSZTogW1BBVENIXSB0cmVlLW9wdGltaXphdGlvbjogT3B0aW1pemUg ZGl2aXNpb24gZm9sbG93ZWQgYnkgbXVsdGlwbHkgW1BSOTUxNzZdIArCoApPbiBTYXQsIEp1biAx OSwgMjAyMSBhdCA3OjA1IFBNIE1hcmMgR2xpc3NlIDxtYXJjLmdsaXNzZUBpbnJpYS5mcj4gd3Jv dGU6Cj4KPiBPbiBGcmksIDE4IEp1biAyMDIxLCBSaWNoYXJkIEJpZW5lciB3cm90ZToKPgo+ID4+ IE9wdGlvbiAyOiBBZGQgYSBuZXcgcGF0dGVybiB0byBzdXBwb3J0IHNjZW5hcmlvcyB0aGF0IHRo ZSBleGlzdGluZyBub3BfY29udmVydCBwYXR0ZXJuIGJhaWxzIG91dCBvbi4KPiA+Pgo+ID4+IEV4 aXN0aW5nIHBhdHRlcm46Cj4gPj4KPiA+PiAoc2ltcGxpZnkKPiA+PsKgwqDCoCAobWludXMgKG5v cF9jb252ZXJ0MT8gQDApIChub3BfY29udmVydDI/IChtaW51cyAobm9wX2NvbnZlcnQzPyBAQDAp IEAxKSkpCj4gPj7CoMKgwqAgKHZpZXdfY29udmVydCBAMSkpCj4KPiBJIHRyaWVkIHRvIGNoZWNr IHdpdGggYSBwcm9ncmFtIHdoZW4KPgo+IFQzIHg7Cj4gVDEgeTsKPiAoVDIpeC0oVDIpKChUMSl4 LXkpCj4KPiBjYW4gYmUgc2FmZWx5IHJlcGxhY2VkIHdpdGgKPgo+IChUMil5Cj4KPiBGcm9tIHRo ZSBvdXRwdXQsIGl0IGxvb2tzIGxpa2UgdGhpcyBpcyBzYWZlIHdoZW4gVDEgaXMgYXQgbGVhc3Qg YXMgbGFyZ2UKPiBhcyBUMi4gSXQgaXMgd3Jvbmcgd2hlbiBUMSBpcyB1bnNpZ25lZCBhbmQgc21h bGxlciB0aGFuIFQyLiBBbmQgd2hlbiBUMSBpcwo+IHNpZ25lZCBhbmQgc21hbGxlciB0aGFuIFQy LCBpdCBpcyBvayBpZiBUMyBpcyB0aGUgc2FtZSB0eXBlIGFzIFQxIChzaWduZWQKPiB0aGVuKSBv ciBoYXMgc3RyaWN0bHkgbGVzcyBwcmVjaXNpb24gKGFueSBzaWduKSwgYW5kIG5vdCBpbiBvdGhl ciBjYXNlcy4KPgo+IE5vdGUgdGhhdCB0aGlzIGlzIHdoZW4gc2lnbmVkIGltcGxpZXMgdW5kZWZp bmVkIG92ZXJmbG93IGFuZCB1bnNpZ25lZAo+IGltcGxpZXMgd3JhcHBpbmcsIGFuZCBJIHdvdWxk bid0IHB1dCB0b28gbXVjaCBmYWl0aCBpbiB0aGlzIHJlY2VudGx5Cj4gZHVzdGVkIHByb2dyYW0u IEFuZCBpdCBkb2Vzbid0IHNheSBob3cgdG8gd3JpdGUgdGhlIG1hdGNoLnBkIHBhdHRlcm4gd2l0 aAo+ICc/JywgIkBAIiwgZGlzYWJsaW5nIGl0IGlmIFRZUEVfT1ZFUkZMT1dfU0FOSVRJWkVELCBl dGMuCj4KPiBNb3N0bHksIEkgd2FudGVkIHRvIHNheSB0aGF0IGlmIHdlIGFyZSBnb2luZyB0byBn byBoYW5kbGUgbW9yZSB0aGFuCj4gbm9wX2NvbnZlcnQgZm9yIG1vcmUgdGhhbiBqdXN0IDEgb3Ig MiBlYXN5IHRyYW5zZm9ybWF0aW9ucywgSSB0aGluayBzb21lCj4ga2luZCBvZiBjb21wdXRlciB2 ZXJpZmljYXRpb24gd291bGQgYmUgdXNlZnVsLCBpdCB3b3VsZCBzYXZlIGEgbG90IG9mIHRpbWUK PiBhbmQgaGVhZGFjaGVzLgoKVHJ1ZS7CoCBJIHdvbmRlciBpZiBhdXRvLWdlbmVyYXRpbmcgc3Vj aCB0ZXN0cyBmcm9tIG1hdGNoLnBkIHJ1bGVzIHdvdWxkCmJlIGEgZ29vZCBwcm9qZWN0IHRvIHdv cmsgb24gKEdTb0M/KS7CoCBXaGVuIHRoZXJlJ3MgZGVmaW5lX21hdGNoCmludm9sdmVkIHRoaW5n cyBnZXQgYSBsaXR0bGUgdHJpY2t5LCBidXQgdGhlbiBvbmUgaXRlbSBvbiB0aGUgVE9ETyBsaXN0 CmlzICJpbmxpbmluZyIgdGhvc2UgYXQgdGhlIHVzZSBzaXRlIChleHBsb2RpbmcgdGhlIGRlY2lz aW9uIHRyZWUgZXZlbiBtb3JlKS4KClJpY2hhcmQuCgo+IChJIGp1c3QgY2hlY2sgYnkgYnJ1dGUg Zm9yY2UgYWxsIHBvc3NpYmxlIHByZWNpc2lvbnMgKGZyb20gMSB0byA2KSBhbmQKPiBzaWduZWRu ZXNzIGZvciBUMSwgVDIgYW5kIFQzLCBhbGwgcG9zc2libGUgdmFsdWVzIGZvciB4IGFuZCB5LCBj b21wdXRlCj4gdGhlIGJlZm9yZSBhbmQgYWZ0ZXIgZm9ybXVsYXMsIGFjY2VwdGluZyBpZiB0aGVy ZSBpcyBVQiBiZWZvcmUsIHJlamVjdGluZwo+IGlmIHRoZXJlIGlzIFVCIGFmdGVyIChhbmQgbm90 IGJlZm9yZSksIGFuZCBtYW51YWxseSB0cnkgdG8gc2VlIGEgcGF0dGVybgo+IGluIHRoZSBsaXN0 IG9mIHR5cGVzIHRoYXQgd29yaykKPgo+IC0tCj4gTWFyYyBHbGlzc2U=