From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2049.outbound.protection.outlook.com [40.107.14.49]) by sourceware.org (Postfix) with ESMTPS id 422973858D33 for ; Tue, 28 Feb 2023 11:13:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 422973858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tVklcH7GshuQkaos+H1aK80glBteG/gPYKYJs1SsCGY=; b=XLWaw2n5/Z2eskXUfUOUgKaHZh56djAauYfU8J4Yl3urnA86qNz3R6/AFFCYdS/1JslHFJmoBq4lunyUinjBrj9kTuxH3x0ZnF/VTA4CLv8nnrHCETbbNA35bsHyjwISD1tHfc/XYVmtjNOEaR3yNe8FMDpn8ZOQ4DPvk3M7Tco= Received: from AM6PR10CA0103.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::44) by AS8PR08MB8110.eurprd08.prod.outlook.com (2603:10a6:20b:54c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.29; Tue, 28 Feb 2023 11:13:00 +0000 Received: from AM7EUR03FT061.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8c:cafe::db) by AM6PR10CA0103.outlook.office365.com (2603:10a6:209:8c::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.30 via Frontend Transport; Tue, 28 Feb 2023 11:12:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT061.mail.protection.outlook.com (100.127.140.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.16 via Frontend Transport; Tue, 28 Feb 2023 11:12:59 +0000 Received: ("Tessian outbound fcd8b5fba459:v135"); Tue, 28 Feb 2023 11:12:59 +0000 X-CR-MTA-TID: 64aa7808 Received: from 0808b83cf122.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 315318EF-0642-40FA-B182-EB97A9C65884.1; Tue, 28 Feb 2023 11:12:49 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0808b83cf122.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 28 Feb 2023 11:12:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Auqx/5I8UlIjYEOjkVpKjUUf5d+oH9ka72OaqWRDWnJCBugQZW4xjXGkhQ5zdy8nn0b/LCDKoGfUMzxLZNp/JZnedoy2ZKBFUJOq998LLLGeW/MFKs4CFYU1WU1CRzrkN7Vqz8J9qaiSDL00WRDK0/O9y9RfcO/tP4/8h0q3xDXPTaOPcjdUy84ya4R7fvsxAiTJJu7y6bu/w1q6dQ6t2H6ajTj3hBj14R710KCa1Y/TZPjEbS0KS+If/RpHiBVtK7EswHh1nE0jegsngFvMbOSI+QDIVN//LmbL41jssoKo7g8cn7a9pCSMvXFzEv9PWUwwuQDsDi15YPPnva2g0w== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tVklcH7GshuQkaos+H1aK80glBteG/gPYKYJs1SsCGY=; b=T81/spsCY4GVGi1lZfJXLp7t9KOXGhg2bF31IPHrRNxxoTjYiOl8jMipNB9yhErRIJly+S40IL2BBoinuCZK5L3zQpX+Fjl+L/kg637mYeKq2kI21yFjwv9YNGiky+DH3RWJ8wGVZm3Zh6npqgUwegAvb+Fbnv9A4E03jNoGw/11qisZnTczKE7S7xgv48XFxp/6//snhaMOzwPHrq5Mygy0M6NDhuIMykTP8rpdHAamsyjMGDJBh9ybAz+RAKhxwzIs9c9krhNelHwtFBeWsMwI2l1lHwmynVsRVLTOkloyvPDmpQ7GH/S4mIRgKRzJ/HkrUHnIqAbrsIFb81rDRw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tVklcH7GshuQkaos+H1aK80glBteG/gPYKYJs1SsCGY=; b=XLWaw2n5/Z2eskXUfUOUgKaHZh56djAauYfU8J4Yl3urnA86qNz3R6/AFFCYdS/1JslHFJmoBq4lunyUinjBrj9kTuxH3x0ZnF/VTA4CLv8nnrHCETbbNA35bsHyjwISD1tHfc/XYVmtjNOEaR3yNe8FMDpn8ZOQ4DPvk3M7Tco= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by GV2PR08MB8341.eurprd08.prod.outlook.com (2603:10a6:150:bb::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.29; Tue, 28 Feb 2023 11:12:45 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::210c:d369:23f7:84fe]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::210c:d369:23f7:84fe%9]) with mapi id 15.20.6134.030; Tue, 28 Feb 2023 11:12:44 +0000 From: Tamar Christina To: Richard Sandiford CC: Tamar Christina via Gcc-patches , nd , "rguenther@suse.de" , "jlaw@ventanamicro.com" Subject: RE: [PATCH 1/2]middle-end: Fix wrong overmatching of div-bitmask by using new optabs [PR108583] Thread-Topic: [PATCH 1/2]middle-end: Fix wrong overmatching of div-bitmask by using new optabs [PR108583] Thread-Index: AQHZPKpK/SYCPI4EDky3xQ0ADEnbFq7IMBSsgAABFlCAAA4mH4AafFawgAAUWIyAAABN8IAAnI/dgAABB5CAAOLkboAAAGeQ Date: Tue, 28 Feb 2023 11:12:43 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: ADD467B863C8C74FA8B53D73CC929578.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|GV2PR08MB8341:EE_|AM7EUR03FT061:EE_|AS8PR08MB8110:EE_ X-MS-Office365-Filtering-Correlation-Id: 0af0e018-d5b3-4d43-4da3-08db197cc088 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: RRssbp35/3g5wxrKFpwuB2IrM/kfsNTvNYD4WltHg4o5+Gbh0oy/yMdrwSSFvCFNbbsIgfaAqwISfnqHT+ZjC5LSPiNCXT7e8Qx6M08ESDQMEcQ3b0EZR7FigpfaBkjTf+oeJcdnTp01GzqoMuSq44sxrFNXlfN7l0QsjmHwnIrQFWG8OISIqCw7yUaFons1LSBpeX4e+eVZB+f8we+5xKqlGg44cfFknK0zsg1G1oIBiogy7VKKe493XDl2Vz+jQOQ8BbN//jqddRdxeBFx2l8QngR0ltdxn17xPsopnSxOF+SqNjh8vG1V159RTa33iKdO/iOP7lihT/Ea540DbHgKmjmbKEXj5YP1wTJRG28S8ivR4ocK0qarA0AzlzpbRRRYcRC6uNzzgJk3vxyFDie1DXCDsA0+1CasGKnsTiC3fheS0YxwGZducUJH8N61sr/KM13Jo5z07Eab5zrV80mDvDoIV/XANoIOb9VkdYFhaBPMfEgUZoEJUeCpwXw4G/nAFjbIeu7EvB/3unzZmfU5cyLYUOIe8+/B6hjyFGo+RIhEQDyAf8NI92G22ubjlkgkOXLxoBn01VelYRSE4IOtLQ64Abu5AAps5cA/hzyEE85TqDSb6X6DEheNLHQZx/MzOyQGHgrZES6zIJg6I6U6yxYOmeC+Ghnt1eCBOw/oleyZYcWmQmP1cN0o1p2Nw1JKLOtoUmKrT0V/jM7ulA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(136003)(366004)(396003)(376002)(39860400002)(346002)(451199018)(7696005)(478600001)(71200400001)(53546011)(6636002)(26005)(54906003)(186003)(6506007)(316002)(9686003)(66476007)(66446008)(83380400001)(8676002)(4326008)(66556008)(76116006)(66946007)(64756008)(5660300002)(41300700001)(52536014)(6862004)(8936002)(122000001)(86362001)(38100700002)(33656002)(38070700005)(55016003)(2906002);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8341 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT061.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 9068b11e-5ecc-447b-a4bb-08db197cb6f4 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KUm+HNIKWKF8PH5396U6S9tnbM5Fs0Rg6QU6fe9CPEo0y10NAFR/5Fv5eE7etgJ6sbxswoLTvK1oXJM62FrzcxzlBmKl+HAoXFdBzwWIi+BuCYQ4TB2xNBTbZ6+tFiTSQGIm6OXQD8GKN6n9BEeaLvOlyk4qkGLCf1OhOmlzi4mxzVMXcsvlIPzhU1HOaYDa1InFqCIqxa8QOa821ASRtMHDg43BZmwX9vzhPgfKiDHE/0b73CoYrV+eN9jK62NHya4tDmqT3hGo4vgzg2uK8Wrc5j9dXFDG99wyNFdDVJAcC6+lZWczyd5SwlKcNiNdrB/ZxDMerWWjEZsI/ib075Quf9B9Ih+5uVhoKTr6xtVlYBHZ30GEGAF50ITHRRfJI02ErZGhczYVUfjQOopEqBN3HD3LDGa7bF2wHuvZFHoLRDbJKeiMbb3/ZH5dUrb2ZflzEazOkfe74vUKbxJcAl99UsXqBnanJsgh+PtqEBE5oIwHiSJoZcIs4b/gYwMTIaizwsN8/8aha/qg+mexqFx5lt2ykhZ+ka09sRJBkJQCC3Clb7w1oXBwYZfpyGDi5moL0rrFK53L7LtMomVEdKhzFlgkJcVEJr4ypDDEWSKqLamBCAUe4gkmWEzC2pghah0P+wu71DzUEOrHyo3Xr2+VPVJIS46JALYEkXcSCGGa9qoZLXgnlnUELrcslNZLkkxh35qzjzPJaIHYKWlA+g== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230025)(4636009)(136003)(396003)(376002)(39860400002)(346002)(451199018)(40470700004)(36840700001)(46966006)(7696005)(478600001)(47076005)(40460700003)(336012)(53546011)(6636002)(26005)(54906003)(186003)(6506007)(316002)(9686003)(107886003)(70586007)(70206006)(83380400001)(8676002)(4326008)(5660300002)(41300700001)(52536014)(356005)(6862004)(8936002)(86362001)(36860700001)(82740400003)(82310400005)(33656002)(40480700001)(81166007)(55016003)(2906002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2023 11:12:59.9073 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0af0e018-d5b3-4d43-4da3-08db197cc088 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT061.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8110 X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSaWNoYXJkIFNhbmRpZm9yZCA8 cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4NCj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkgMjgs IDIwMjMgMTE6MDkgQU0NCj4gVG86IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFy bS5jb20+DQo+IENjOiBUYW1hciBDaHJpc3RpbmEgdmlhIEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hl c0BnY2MuZ251Lm9yZz47IG5kDQo+IDxuZEBhcm0uY29tPjsgcmd1ZW50aGVyQHN1c2UuZGU7IGps YXdAdmVudGFuYW1pY3JvLmNvbQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIDEvMl1taWRkbGUtZW5k OiBGaXggd3Jvbmcgb3Zlcm1hdGNoaW5nIG9mIGRpdi1iaXRtYXNrDQo+IGJ5IHVzaW5nIG5ldyBv cHRhYnMgW1BSMTA4NTgzXQ0KPiANCj4gVGFtYXIgQ2hyaXN0aW5hIDxUYW1hci5DaHJpc3RpbmFA YXJtLmNvbT4gd3JpdGVzOg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBG cm9tOiBSaWNoYXJkIFNhbmRpZm9yZCA8cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4NCj4gPj4g U2VudDogTW9uZGF5LCBGZWJydWFyeSAyNywgMjAyMyA5OjMzIFBNDQo+ID4+IFRvOiBUYW1hciBD aHJpc3RpbmEgdmlhIEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4NCj4gPj4g Q2M6IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFybS5jb20+OyBuZCA8bmRAYXJt LmNvbT47DQo+ID4+IHJndWVudGhlckBzdXNlLmRlOyBqbGF3QHZlbnRhbmFtaWNyby5jb20NCj4g Pj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzJdbWlkZGxlLWVuZDogRml4IHdyb25nIG92ZXJtYXRj aGluZyBvZg0KPiA+PiBkaXYtYml0bWFzayBieSB1c2luZyBuZXcgb3B0YWJzIFtQUjEwODU4M10N Cj4gPj4NCj4gPj4gVGFtYXIgQ2hyaXN0aW5hIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNA Z2NjLmdudS5vcmc+IHdyaXRlczoNCj4gPj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPj4gPj4gRnJvbTogUmljaGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5j b20+DQo+ID4+ID4+IFNlbnQ6IE1vbmRheSwgRmVicnVhcnkgMjcsIDIwMjMgMTI6MTIgUE0NCj4g Pj4gPj4gVG86IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFybS5jb20+DQo+ID4+ ID4+IENjOiBUYW1hciBDaHJpc3RpbmEgdmlhIEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2Mu Z251Lm9yZz47IG5kDQo+ID4+ID4+IDxuZEBhcm0uY29tPjsgcmd1ZW50aGVyQHN1c2UuZGU7IGps YXdAdmVudGFuYW1pY3JvLmNvbQ0KPiA+PiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIDEvMl1taWRk bGUtZW5kOiBGaXggd3Jvbmcgb3Zlcm1hdGNoaW5nIG9mDQo+ID4+ID4+IGRpdi1iaXRtYXNrIGJ5 IHVzaW5nIG5ldyBvcHRhYnMgW1BSMTA4NTgzXQ0KPiA+PiA+Pg0KPiA+PiA+PiBUYW1hciBDaHJp c3RpbmEgPFRhbWFyLkNocmlzdGluYUBhcm0uY29tPiB3cml0ZXM6DQo+ID4+ID4+ID4gSGksDQo+ ID4+ID4+ID4NCj4gPj4gPj4gPj4gPiBJIGF2b2lkZWQgb3BlbiBjb2RpbmcgaXQgd2l0aCBhZGQg YW5kIHNoaWZ0IGJlY2F1c2UgaXQNCj4gPj4gPj4gPj4gPiBjcmVhdGVzIGENCj4gPj4gPj4gPj4g PiA0IGluc3RydWN0aW9ucyAoYW5kIHNoaWZ0cyB3aGljaCBhcmUgdHlwaWNhbGx5IHNsb3cpDQo+ ID4+ID4+ID4+ID4gZGVwZW5kZW5jeSBjaGFpbiBpbnN0ZWFkIG9mIGEgbG9hZCBhbmQgbXVsdGlw bHkuICBUaGlzDQo+ID4+ID4+ID4+ID4gY2hhbmdlLCB1bmxlc3MgdGhlIHRhcmdldCBpcyBrbm93 biB0byBvcHRpbWl6ZSBpdCBmdXJ0aGVyIGlzDQo+ID4+ID4+ID4+ID4gdW5saWtlbHkgdG8gYmUg YmVuZWZpY2lhbC4gIEFuZCBieSB0aGUgdGltZSB3ZSBnZXQgdG8gY29zdGluZw0KPiA+PiA+PiA+ PiA+IHRoZSBvbmx5IGFsdGVybmF0aXZlIGlzIHRvIHVuZG8gdGhlIGV4aXN0aW5nIHBhdHRlcm4g YW5kDQo+ID4+ID4+ID4+IHNvIHlvdSBsb3NlIHRoZSBnZW5lcmFsIHNoaWZ0IG9wdGltaXphdGlv bi4NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IFNvIGl0IHNlZW1lZCB1bndpc2UgdG8gb3Bl biBjb2RlIGFzIHNoaWZ0cywgZ2l2ZW4gdGhlIGNvZGVnZW4NCj4gPj4gPj4gPj4gPiBvdXQgb2Yg dGhlIHZlY3Rvcml6ZXIgd291bGQgYmUgZGVnZW5lcmF0ZSBmb3IgbW9zdCB0YXJnZXRzIG9yDQo+ ID4+ID4+ID4+ID4gb25lIG5lZWRzIHRoZSBtb3JlIGNvbXBsaWNhdGVkIHJvdXRlIG9mIGNvc3Rp bmcgZHVyaW5nDQo+ID4+ID4+ID4+ID4gcGF0dGVybg0KPiA+PiBtYXRjaGluZyBhbHJlYWR5Lg0K PiA+PiA+PiA+Pg0KPiA+PiA+PiA+PiBIbW0sIE9LLiAgVGhhdCBzZWVtcyBsaWtlIGEgY29zdC1t b2RlbCB0aGluZyB0aG91Z2gsIHJhdGhlcg0KPiA+PiA+PiA+PiB0aGFuIHNvbWV0aGluZyB0aGF0 IHNob3VsZCBiZSBleHBvc2VkIHRocm91Z2ggb3B0YWJzLiAgQW5kIEkNCj4gPj4gPj4gPj4gaW1h Z2luZSB0aGUgb3Blbi1jb2RlZCB2ZXJzaW9uIHdvdWxkIHN0aWxsIGJlIGJldHRlciB0aGFuDQo+ ID4+ID4+ID4+IG5vdGhpbmcgb24gdGFyZ2V0cyB3aXRob3V0DQo+ID4+ID4+IGhpZ2hwYXJ0IG11 bHRpcGx5Lg0KPiA+PiA+PiA+Pg0KPiA+PiA+PiA+PiBTbyBob3cgYWJvdXQgcmVwbGFjaW5nIHRo ZSBob29rIHdpdGggb25lIHRoYXQgc2ltcGx5IGFza3MNCj4gPj4gPj4gPj4gd2hldGhlciBkaXZp c2lvbiB0aHJvdWdoIGhpZ2hwYXJ0IG11bHRpcGxpY2F0aW9uIGlzIHByZWZlcnJlZA0KPiA+PiA+ PiA+PiBvdmVyIHRoZSBhZGQvc2hpZnQNCj4gPj4gPj4gc2VxdWVuY2U/DQo+ID4+ID4+ID4+IChV bmZvcnR1bmF0ZWx5IGl0J3Mgbm90IGdvaW5nIHRvIGJlIHBvc3NpYmxlIHRvIHdvcmsgdGhhdCBv dXQNCj4gPj4gPj4gPj4gZnJvbSBleGlzdGluZw0KPiA+PiA+PiA+PiBpbmZvcm1hdGlvbi4pDQo+ ID4+ID4+ID4NCj4gPj4gPj4gPiBTbyB0aGlzIGRvZXNuJ3Qgd29yayBmb3IgU1ZFLiAgRm9yIFNW RSB0aGUgbXVsdGlwbGljYXRpb24NCj4gPj4gPj4gPiB3aWRlbmluZyBwYXNzIGludHJvZHVjZXMg Rk1BcyBhdCBnaW1wbGUgbGV2ZWwuICBTbyBpbiB0aGUgY2FzZXMNCj4gPj4gPj4gPiB3aGVyZSB0 aGUgb3BlcmF0aW9uIGlzIGZlZCBmcm9tIGEgd2lkZW5pbmcgbXVsdGlwbGljYXRpb24gd2UgZW5k DQo+ID4+ID4+ID4gdXAgZ2VuZXJhdGluZw0KPiA+PiBGTUEuDQo+ID4+ID4+IElmIHRoYXQgd2Fz IGl0IEkgY291bGQgaGF2ZSBtYXRjaGVkIEZNQS4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IEJ1dCBp dCBhbHNvIHB1c2hlcyB0aGUgbXVsdGlwbGljYXRpb24gaW4gdGhlIHNlY29uZCBvcGVyYW5kDQo+ ID4+ID4+ID4gYmVjYXVzZSBpdCBubyBsb25nZXIgaGFzIGEgbXVsIHRvIHNoYXJlIHRoZSByZXN1 bHRzIHdpdGguDQo+ID4+ID4+ID4NCj4gPj4gPj4gPiBJbiBhbnkgY2FzZSwgdGhlIGdpbXBsZSBj b2RlIGlzIHRyYW5zZm9ybWVkIGludG8NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IHZlY3RfXzMuOF8x MjIgPSAuTUFTS19MT0FEIChfMjksIDhCLCBsb29wX21hc2tfMTIxKTsNCj4gPj4gPj4gPiB2ZWN0 X3BhdHRfNTcuOV8xMjMgPSAodmVjdG9yKFs4LDhdKSB1bnNpZ25lZCBzaG9ydCkNCj4gPj4gPj4g PiB2ZWN0X18zLjhfMTIyOw0KPiA+PiA+PiA+IHZlY3RfcGF0dF82NC4xMV8xMjcgPSAuRk1BICh2 ZWN0X3BhdHRfNTcuOV8xMjMsIHZlY3RfY3N0X18xMjQsIHsNCj4gPj4gPj4gPiAyNTcsIC4uLiB9 KTsNCj4gPj4gPj4gPiB2ZWN0X3BhdHRfNjUuMTJfMTI4ID0gdmVjdF9wYXR0XzY0LjExXzEyNyA+ PiA4Ow0KPiA+PiA+PiA+IHZlY3RfcGF0dF82Ni4xM18xMjkgPSAuRk1BICh2ZWN0X3BhdHRfNTcu OV8xMjMsIHZlY3RfY3N0X18xMjQsDQo+ID4+ID4+ID4gdmVjdF9wYXR0XzY1LjEyXzEyOCk7DQo+ ID4+ID4+ID4gdmVjdF9wYXR0XzYyLjE0XzEzMCA9IHZlY3RfcGF0dF82Ni4xM18xMjkgPj4gODsN Cj4gPj4gPj4gPiB2ZWN0X3BhdHRfNjguMTVfMTMxID0gKHZlY3RvcihbOCw4XSkgdW5zaWduZWQg Y2hhckQuMjEpDQo+ID4+ID4+ID4gdmVjdF9wYXR0XzYyLjE0XzEzMDsNCj4gPj4gPj4gPg0KPiA+ PiA+PiA+IFRoaXMgdHJhbnNmb3JtYXRpb24gaXMgbXVjaCB3b3JzZSB0aGFuIHRoZSBvcmlnaW5h bCBjb2RlLCBpdA0KPiA+PiA+PiA+IGV4dGVuZGVkIHRoZSBkZXBlbmRlbmN5IGNoYWluIHdpdGgg YW5vdGhlciBleHBlbnNpdmUNCj4gPj4gPj4gPiBpbnN0cnVjdGlvbi4gSSBjYW4gdHJ5IHRvIGNv cnJlY3QgdGhpcyBpbiBSVEwgYnkgbWF0Y2hpbmcgRk1BDQo+ID4+ID4+ID4gYW5kIHNoaWZ0IGFu ZCBzcGxpdHRpbmcgaW50byBNVUwgKw0KPiA+PiA+PiBBRERITkIgYW5kIGhvcGUgQ1NFIHRha2Vz IGNhcmUgb2YgdGhlIGV4dHJhIG11bC4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IEJ1dCB0aGlzIHNl ZW1zIGxpa2UgYSBoYWNrLCBhbmQgaXQncyBiYXNpY2FsbHkgdW5kb2luZyB0aGUNCj4gPj4gPj4g PiBlYXJsaWVyIHRyYW5zZm9ybWF0aW9uLiAgSXQgc2VlbXMgdG8gbWUgdGhhdCB0aGUgb3BlbiBj b2RpbmcgaXMgYSBiYWQNCj4gaWRlYS4NCj4gPj4gPj4NCj4gPj4gPj4gQ291bGQgeW91IHBvc3Qg dGhlIHBhdGNoIHRoYXQgZ2l2ZXMgdGhpcyByZXN1bHQ/ICBJJ2xsIGhhdmUgYSBwb2tlIGFyb3Vu ZC4NCj4gPj4gPg0KPiA+PiA+IFN1cmUsIEknbGwgcG9zdCB0aGUgbmV3IHNlcmllcywgaXQgbmVl ZHMgYWxsIG9mIHRoZW0uDQo+ID4+DQo+ID4+IFRoYW5rcy4gIFdoaWNoIHRlc3RjYXNlIGRpZCB5 b3UgdXNlIHRvIGdldCB0aGUgYWJvdmU/DQo+ID4+DQo+ID4NCj4gPiAjaW5jbHVkZSA8c3RkaW50 Lmg+DQo+ID4NCj4gPiAjZGVmaW5lIE4gMTYNCj4gPiAjZGVmaW5lIFRZUEUgdWludDhfdA0KPiA+ DQo+ID4gdm9pZCBmdW4zKFRZUEUqIHJlc3RyaWN0IHBpeGVsLCBUWVBFIGxldmVsLCBpbnQgbikg ew0KPiA+ICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrPTEpDQo+ID4gICAgIHBp eGVsW2ldID0gKHBpeGVsW2ldICogbGV2ZWwpIC8gMHhmZjsgfQ0KPiANCj4gVGhhbmtzLiAgSW4g dGhhdCB0ZXN0Y2FzZSwgaXNuJ3QgdGhlIEZNQSBoYW5kbGluZyBhbiBhbnRpLW9wdGltaXNhdGlv biBpbiBpdHMNCj4gb3duIHJpZ2h0IHRob3VnaD8gIEl0J3MgZHVwbGljYXRpbmcgYSBtdWx0aXBs aWNhdGlvbiBpbnRvIHR3byBwb2ludHMgb24gYQ0KPiBkZXBlbmRlbmN5IGNoYWluLg0KDQpNb3N0 IGRlZmluaXRlbHksIHRoYXQncyB3aGF0IEkgbWVhbnQgYWJvdmUuIFRoZSAib3B0aW1pemF0aW9u IiBkb2Vzbid0IHRha2UgaW50bw0KYWNjb3VudCB0aGUgZWZmZWN0IG9uIHRoZSByZXN0IG9mIHRo ZSBjaGFpbi4NCg0KPiANCj4gRS5nLiBmb3I6DQo+IA0KPiB1bnNpZ25lZCBpbnQNCj4gZjEgKHVu c2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYiwgdW5zaWduZWQgaW50IGMpIHsNCj4gICB1bnNp Z25lZCBpbnQgZCA9IGEgKiBiOw0KPiAgIHJldHVybiBkICsgKChjICsgZCkgPj4gMSk7DQo+IH0N Cj4gdW5zaWduZWQgaW50DQo+IGcxICh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIsIHVu c2lnbmVkIGludCBjKSB7DQo+ICAgcmV0dXJuIGEgKiBiICsgYzsNCj4gfQ0KPiANCj4gX19VaW50 MzJ4NF90DQo+IGYyIChfX1VpbnQzMng0X3QgYSwgX19VaW50MzJ4NF90IGIsIF9fVWludDMyeDRf dCBjKSB7DQo+ICAgX19VaW50MzJ4NF90IGQgPSBhICogYjsNCj4gICByZXR1cm4gZCArICgoYyAr IGQpID4+IDEpOw0KPiB9DQo+IF9fVWludDMyeDRfdA0KPiBnMiAoX19VaW50MzJ4NF90IGEsIF9f VWludDMyeDRfdCBiLCBfX1VpbnQzMng0X3QgYykgew0KPiAgIHJldHVybiBhICogYiArIGM7DQo+ IH0NCj4gDQo+IHR5cGVkZWYgdW5zaWduZWQgaW50IHZlYyBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jf c2l6ZSgzMikpKTsgdmVjDQo+IGYzICh2ZWMgYSwgdmVjIGIsIHZlYyBjKQ0KPiB7DQo+ICAgdmVj IGQgPSBhICogYjsNCj4gICByZXR1cm4gZCArICgoYyArIGQpID4+IDEpOw0KPiB9DQo+IHZlYw0K PiBnMyAodmVjIGEsIHZlYyBiLCB2ZWMgYykNCj4gew0KPiAgIHJldHVybiBhICogYiArIGM7DQo+ IH0NCj4gDQo+IGNvbXBpbGVkIHdpdGggLU8yIC1tc3ZlLXZlY3Rvci1iaXRzPTI1NiAtbWFyY2g9 YXJtdjguMi1hK3N2ZSwgYWxsIHRoZSBnDQo+IGZ1bmN0aW9ucyB1c2UgbXVsdGlwbHktYWRkIChh cyBleHBlY3RlZCksIGJ1dCB0aGUgZiBmdW5jdGlvbnMgYXJlOg0KPiANCj4gZjE6DQo+ICAgICAg ICAgbXVsICAgICB3MSwgdzAsIHcxDQo+ICAgICAgICAgYWRkICAgICB3MCwgdzEsIHcyDQo+ICAg ICAgICAgYWRkICAgICB3MCwgdzEsIHcwLCBsc3IgMQ0KPiAgICAgICAgIHJldA0KPiANCj4gZjI6 DQo+ICAgICAgICAgbXVsICAgICB2MC40cywgdjAuNHMsIHYxLjRzDQo+ICAgICAgICAgYWRkICAg ICB2Mi40cywgdjAuNHMsIHYyLjRzDQo+ICAgICAgICAgdXNyYSAgICB2MC40cywgdjIuNHMsIDEN Cj4gICAgICAgICByZXQNCj4gDQo+IGYzOg0KPiAgICAgICAgIC4uLg0KPiAgICAgICAgIG1sYSAg ICAgejAucywgcDAvbSwgejEucywgejIucw0KPiAgICAgICAgIGxzciAgICAgejAucywgejAucywg IzENCj4gICAgICAgICBtYWQgICAgIHoxLnMsIHAwL20sIHoyLnMsIHowLnMNCj4gICAgICAgICAu Li4NCj4gDQo+IFdoYXQgd2UgZG8gZm9yIGYzIGRvZXNuJ3Qgc2VlbSBsaWtlIGEgZ29vZCBpZGVh Lg0KDQpBZ3JlZWQsICBJIGd1ZXNzIHRoaXMgbWVhbnMgSSBoYXZlIHRvIGZpeCB0aGF0IGFzIHdl bGw/IOKYuQ0KDQpJJ2xsIGdvIHRha2UgYSBsb29rIHRoZW4uLg0KDQpUYW1hci4NCg0KPiANCj4g SSBjYW4gc2VlIHRoYXQgZHVwbGljYXRpbmcgYW4gaW50ZWdlciBtdWx0aXBsaWNhdGlvbiBtaWdo dCBtYWtlIHNlbnNlIGlmIHRoZQ0KPiBpbnRlZ2VyIEZNQXMgYXJlIGRvbmUgaW4gcGFyYWxsZWwu ICBCdXQgaWYgb25lIGlzIGEgZGVwZW5kZW5jeSBvZiB0aGUgb3RoZXIsDQo+IHRoZW4gYXQgbGVh c3QgZm9yIGludGVnZXIgRk1BLCBJIHRoaW5rIHdlIHNob3VsZCBwdW50LCBlc3BlY2lhbGx5IHNp bmNlIHdlIGRvbid0DQo+IGtub3cgd2hhdCB0aGUgdGFyZ2V0J3MgbGF0ZS1mb3J3YXJkaW5nIHJl c3RyaWN0aW9ucyBhcmUuICBJIGd1ZXNzIGZwLWNvbnRyYWN0DQo+IGNvbWVzIGludG8gcGxheSBm b3IgdGhlIEZQIEZNQXMgdGhvdWdoLg0KPiANCj4gPj4gQnV0IHNpbmNlIFNWRSBkb2VzIGhhdmUg aGlnaHBhcnQgbXVsdGlwbHksIGFuZCBzaW5jZSB0aGUgYXNzdW1wdGlvbg0KPiA+PiBmb3IgU1ZF IGlzIHRoYXQgTVVMSCtzaGlmdCBpcyBiZXR0ZXIgdGhhbiBBREQqMytzaGlmdCoyLCBzaG91bGRu J3QNCj4gPj4gU1ZFIGp1c3QgYmUgb25lIG9mIHRoZSB0YXJnZXRzIGZvciB3aGljaCB0aGUgaG9v ayB0aGF0ICJhc2tzIHdoZXRoZXINCj4gPj4gZGl2aXNpb24gdGhyb3VnaCBoaWdocGFydCBtdWx0 aXBsaWNhdGlvbiBpcyBwcmVmZXJyZWQgb3ZlciB0aGUgYWRkL3NoaWZ0DQo+IHNlcXVlbmNlIiBy ZXR1cm5zIHRydWU/DQo+ID4+DQo+ID4NCj4gPiBZZXMgKGl0J3MgYWxzbyB0d28gYWRkcyBub3Qg MyksIGJ1dCBpdCdzIG5vdCBjb3JyZWN0IGZvciBTVkUyLCB3aGljaA0KPiA+IGhhcyBhZGRobmIs IGluIHdoaWNoIGNhc2UgMnggYWRkaG5iIGlzIG11Y2ggZmFzdGVyIHRoYW4gTVVMSCtzaGlmdC4N Cj4gPiBBbmQgdGhlIHByb2JsZW0gaXMgdGhhdCB3aWRlbmluZ19tdWwgd2lsbCBub3QgYWxsb3cg YWRkK3NoaWZ0IHRvIHJlYWNoIHRoZQ0KPiBiYWNrZW5kIGJlY2F1c2UgdGhlIEFERCtzaGlmdCB3 ZXJlIG9wZW4gY29kZWQuDQo+ID4NCj4gPiBUaGV5IGFyZSBub3cgc3ViamVjdGVkIHRvIGZ1cnRo ZXIgb3B0aW1pemF0aW9uLg0KPiA+DQo+ID4gVG8gc3VtbWFyaXplOg0KPiA+DQo+ID4gT3RoZXIg dGFyZ2V0czogZmFsc2UNCj4gPiBTVkU6IGZhbHNlDQo+ID4gU1ZFMjogdHJ1ZQ0KPiA+IE5FT046 IHRydWUNCj4gDQo+IFllYWgsIGxvb2tzIGdvb2QuDQo+IA0KPiA+IFNWRTIgYm9ya2VkIGJlY2F1 c2UgTVVMK0FERCtTSElGVCAtPiBGTUErU0hJRlQuDQo+ID4NCj4gPiBJZiB5b3UncmUgc2F5aW5n IHlvdSBkb24ndCB3YW50IHRoZSBvcHRpbWl6YXRpb24gZm9yIFNWRTIsIHRoZW4gc3VyZSwgaGFw cHkNCj4gdG8gdHVybiBpdCBvZmYuDQo+ID4NCj4gPiBCdXQgIFVNVUxIK0xTUiA9PSA2IGN5Y2xl cyBvbiBOZW92ZXJzZS1OMiBhbmQgdGhyb3VnaHB1dCBvZiAxLg0KPiA+IDJ4IEFEREhOQiA9IDQg Y3ljbGVzIGFuZCB0aHJvdWdocHV0IG9mIDIuDQo+IA0KPiBObywgSSBtZWFudCB0aGUgc2FtZSBh cyB3aGF0IHlvdSBzYWlkIGluIHRoZSBzdW1tYXJ5IGFib3ZlLg0KPiANCj4gUmljaGFyZA0K