From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2077.outbound.protection.outlook.com [40.107.7.77]) by sourceware.org (Postfix) with ESMTPS id 394693858C5F for ; Fri, 10 Feb 2023 16:10:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 394693858C5F 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=TLCIcy6e1789e6f50aTd5+OjcI8fbnhoD/zPkF8NDaM=; b=KQBNeF+bDGCI3O5e3zfMKwW6OKQFImTpjVuGhTHhzE3ud4gvQdfJJ14RRauKJGpxbanazXGXXmiefqD/Q2bvSi6g6+U3CeWk/bL7QfLOv456mG2mVVbvMjLkHRIfFj+iebYyLIEu+YukMwqcpNMPnegXsLqL2+CCy2jePki3l84= Received: from AM6P191CA0075.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8a::16) by GV1PR08MB7913.eurprd08.prod.outlook.com (2603:10a6:150:8f::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Fri, 10 Feb 2023 16:10:07 +0000 Received: from AM7EUR03FT030.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8a:cafe::be) by AM6P191CA0075.outlook.office365.com (2603:10a6:209:8a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19 via Frontend Transport; Fri, 10 Feb 2023 16:10:07 +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 AM7EUR03FT030.mail.protection.outlook.com (100.127.140.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.21 via Frontend Transport; Fri, 10 Feb 2023 16:10:07 +0000 Received: ("Tessian outbound 0d7b2ab0f13d:v132"); Fri, 10 Feb 2023 16:10:07 +0000 X-CR-MTA-TID: 64aa7808 Received: from cb1cc091d651.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 5197EB7F-9104-470C-A377-1BF38A6E7EA7.1; Fri, 10 Feb 2023 16:10:00 +0000 Received: from EUR02-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id cb1cc091d651.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 10 Feb 2023 16:10:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ThCmdqp4JcmOjBDQWICHat7b9PsmP4mKCTt7Vxn308WwIEADr8wSvoeBJF3TleEy8dA/BgDaaFMFDjRNOrmtYOQfAwxwhDYBJQ+vVueuQsfgu0GBT0I5qaqZp0KJeXTCcv+OCwU1neKvz1wbtettNJLBr6q5LZ16OdHeeGPjfdCRUDt6oFFcA2W4ugTb9Gg1k8gJuiqIpfKpmXxnM4f10i/dhttXIASeboH/R9PY6xY4vDEpqC+XA0kfXgJBu7HBMZxOwOWMf5jx+2jtYZjsWedRlJMUGwVWp/tSpuEK4CueLv+WSgSxf5uhHZPU11o4GzTw4V3atuZluJQ1+kFHqg== 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=TLCIcy6e1789e6f50aTd5+OjcI8fbnhoD/zPkF8NDaM=; b=PsF4VIuUVJdh9LqU06j6KXDKf0uc/cqk6QJ4HWvxP/TWrFSJ6W+xrQxnmjNF5wMkce2pAR7106gzqd1qd/X0hqEiWBawmrkorR4p33ZDqncCyE6EhZFJ1zKUzUd0RcnCFatvpkrdPBB0C2nmt/t6OFYK8sv8tLuDjToShkMYYH4kosemObJmWisMJOkxjnh0kDPwuYSm1geit6Y0lItD9eh8gWs5LRVLGh8UUwpMmRRSVlFx5Y9MqUW7FAT11jLCpBq6sDbma8z6ctPxEXGmd+ChO/zUxaV/JXxET2TnnUB8wim72XdsuUPAMm2BF6zdAS+6t/dKUXrviAzsZFNW/A== 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=TLCIcy6e1789e6f50aTd5+OjcI8fbnhoD/zPkF8NDaM=; b=KQBNeF+bDGCI3O5e3zfMKwW6OKQFImTpjVuGhTHhzE3ud4gvQdfJJ14RRauKJGpxbanazXGXXmiefqD/Q2bvSi6g6+U3CeWk/bL7QfLOv456mG2mVVbvMjLkHRIfFj+iebYyLIEu+YukMwqcpNMPnegXsLqL2+CCy2jePki3l84= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AS2PR08MB9570.eurprd08.prod.outlook.com (2603:10a6:20b:60a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.17; Fri, 10 Feb 2023 16:09:59 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::8b7b:e3be:cccb:1936]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::8b7b:e3be:cccb:1936%6]) with mapi id 15.20.6086.021; Fri, 10 Feb 2023 16:09:58 +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/SYCPI4EDky3xQ0ADEnbFq7IMBSsgAABFlCAACYcToAAAIfA Date: Fri, 10 Feb 2023 16:09:58 +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: E4F0FC77B1B603429E5035AEDD6E7785.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_|AS2PR08MB9570:EE_|AM7EUR03FT030:EE_|GV1PR08MB7913:EE_ X-MS-Office365-Filtering-Correlation-Id: ce7e7bbe-81e8-47f1-bf0a-08db0b814701 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: 0azaaPYYLI1VtX06AwgGO7E0DQQ7UgC2Zok+f3+2YljHjiKUwkr0FOFNpsPiIl6BWi4zlNfgKRH/kQuczEkuysxe48eDEKIeAFO6M9rcKvO87SisYiBy7V81RLcj/gyaDIiBln9euuQsOgvLqv8JHWfhD8bqM58GKQwxuTG03FKfiHpkyO6bGtUUPy/LVr0IxWFlgkUaCKzlmIhmVdJkv6JT/mTN0O5jPkVVJIi1HImX5lpTVsjL3KmVQGqEXr62kptNDEJ5g04Bc/qLlq+6QNS6244O4UF74zk2L1FgMLBTxJS7JhZut/TMCIsGjvTghmzbPp0S06Dij29hp5a8TS5BYnCjDqNbV2mylD8h3KZnaNrTJqLQJpMWwdRPzajYndCNsC2VCt/zZSWR22CovrF5b1hz7gcW2ctFrAo+Rceb7fbpBSojM7MdISY1dluSG1WC+Fo895rPGPIVtyNPWXUBKOzFCIKQgJTt+BbfvuU1PGy9CXtpDcfZpHLLot9J1Qvia/Pf7bEiJ7ckUiPiUI0ScNnX59weSPz9SBL9uc38Swtsd099suuTXhsaxHUstPyO87UptaPoWJwO+EmM7JeOv61YPvbE2lrSoRu5dvvAONiZ/4Hp4MOKLL7Vw4EPgUKylWZXiE59jDe9JXWT6ofsPDbF4a79ne8ktzSNYjIeH0jK4tsYyz/eyH7w840Sg/DMsA4VQ3kaMF0uHvs7uA== 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)(346002)(376002)(396003)(39860400002)(366004)(136003)(451199018)(52536014)(53546011)(6506007)(9686003)(316002)(6862004)(186003)(26005)(478600001)(8936002)(38070700005)(71200400001)(33656002)(55016003)(2906002)(54906003)(83380400001)(6636002)(5660300002)(7696005)(64756008)(66446008)(66556008)(76116006)(66946007)(66476007)(4326008)(86362001)(8676002)(38100700002)(41300700001)(122000001);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9570 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: AM7EUR03FT030.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: a5a7dcca-6add-4aad-f53b-08db0b8141fe X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HUtR0cO+QOnGvDfhkiacDQJalaR4yCSWrn/aJZEGofrncCGVhSceCW5BN2OUmTKRlW1OfKG4yi6R5uY3NAFjK7mgwOwy7qdauiUjyspWU+6E8Ponby3i+wdtd5XtKRv6kk6dtTqvYfxbnM5FPwqpqEKGXPgwmvypCXSgbRuCRFbKlKg9WOu7mMXTjEr8WbSZcBsOxRUlPleO7ql4XOzrjI8geYx6aDRe2AQw87kIuXosvqgaR/6veRIm2KszP/On+5SSx1SIv0rDvma+PdgvNIt3zB/Rc98mo7EuuqknNPC01S+A2LSFbs7j6Jg+WLAs77XQIWYHiVHPiqQxYagQM6Rmbb3033Q062s3KwzRAxDN6054Fii6AjX/h+dgUlMBFtoRLlt7DX8JAAlUMG1L4TFdhAXaH8AQs/2pblSOQVJ4acSm7bMFDangKUeD1v3t65MDbfzF/gSJvzweWiO7bZCyAmrY+cUTTbyNiYyXH5V2TOQ5aNQxkD43n/kp776qb+rqOIG5AlycaL/B5L4t69lBeFjXsRA38nVcKrTEb0rekEESbeIVwa6grAUK5W0iBMGxRksrUo86euraifp76yf4ptCIkMX7dxbzcgvRNzpQRgrT+eTrn6MEnp9fWHUnzMszvvSqdWYorKALRBtNjQh4mbU3BGx0jHhvOwg3/TxsOVZmyjYE6uQ32ebssA4VWSwNBBcfj+bbGh7n/RnGJQ== 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)(346002)(39860400002)(376002)(396003)(136003)(451199018)(46966006)(40470700004)(36840700001)(82740400003)(41300700001)(107886003)(52536014)(40480700001)(7696005)(55016003)(336012)(478600001)(83380400001)(33656002)(26005)(2906002)(186003)(6862004)(9686003)(5660300002)(82310400005)(70586007)(70206006)(4326008)(316002)(8676002)(86362001)(47076005)(8936002)(40460700003)(356005)(81166007)(6506007)(36860700001)(6636002)(53546011)(54906003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2023 16:10:07.2259 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ce7e7bbe-81e8-47f1-bf0a-08db0b814701 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: AM7EUR03FT030.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7913 X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,BODY_8BITS,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 cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4NCj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAxMCwg MjAyMyAzOjU3IFBNDQo+IFRvOiBUYW1hciBDaHJpc3RpbmEgPFRhbWFyLkNocmlzdGluYUBhcm0u Y29tPg0KPiBDYzogVGFtYXIgQ2hyaXN0aW5hIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNA Z2NjLmdudS5vcmc+OyBuZA0KPiA8bmRAYXJtLmNvbT47IHJndWVudGhlckBzdXNlLmRlOyBqbGF3 QHZlbnRhbmFtaWNyby5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzJdbWlkZGxlLWVuZDog Rml4IHdyb25nIG92ZXJtYXRjaGluZyBvZiBkaXYtYml0bWFzaw0KPiBieSB1c2luZyBuZXcgb3B0 YWJzIFtQUjEwODU4M10NCj4gDQo+IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFy bS5jb20+IHdyaXRlczoNCj4gPj4gPiBhL2djYy90cmVlLXZlY3QtcGF0dGVybnMuY2MgYi9nY2Mv dHJlZS12ZWN0LXBhdHRlcm5zLmNjIGluZGV4DQo+ID4+ID4NCj4gPj4NCj4gNjkzNGFlYmM2OWYy MzFhZjI0NjY4ZjBhMWMzZDE0MGU5N2Y1NTQ4Ny4uZTM5ZDdlNmIzNjJlZjQ0ZWIyZmM0NjdmMzMN Cj4gPj4gNjkNCj4gPj4gPiBkZTJhZmVhMTM5ZDYgMTAwNjQ0DQo+ID4+ID4gLS0tIGEvZ2NjL3Ry ZWUtdmVjdC1wYXR0ZXJucy5jYw0KPiA+PiA+ICsrKyBiL2djYy90cmVlLXZlY3QtcGF0dGVybnMu Y2MNCj4gPj4gPiBAQCAtMzkxNCwxMiArMzkxNCw4MiBAQCB2ZWN0X3JlY29nX2Rpdm1vZF9wYXR0 ZXJuICh2ZWNfaW5mbw0KPiAqdmluZm8sDQo+ID4+ID4gICAgICAgIHJldHVybiBwYXR0ZXJuX3N0 bXQ7DQo+ID4+ID4gICAgICB9DQo+ID4+ID4gICAgZWxzZSBpZiAoKGNzdCA9IHVuaWZvcm1faW50 ZWdlcl9jc3RfcCAob3BybmQxKSkNCj4gPj4gPiAtCSAgICYmIHRhcmdldG0udmVjdG9yaXplLmNh bl9zcGVjaWFsX2Rpdl9ieV9jb25zdCAocmhzX2NvZGUsDQo+ID4+IHZlY3R5cGUsDQo+ID4+ID4g LQkJCQkJCQkgIHdpOjp0b193aWRlIChjc3QpLA0KPiA+PiA+IC0JCQkJCQkJICBOVUxMLCBOVUxM X1JUWCwNCj4gPj4gPiAtCQkJCQkJCSAgTlVMTF9SVFgpKQ0KPiA+PiA+ICsJICAgJiYgVFlQRV9V TlNJR05FRCAoaXR5cGUpDQo+ID4+ID4gKwkgICAmJiByaHNfY29kZSA9PSBUUlVOQ19ESVZfRVhQ Ug0KPiA+PiA+ICsJICAgJiYgdmVjdHlwZQ0KPiA+PiA+ICsJICAgJiYgZGlyZWN0X2ludGVybmFs X2ZuX3N1cHBvcnRlZF9wIChJRk5fQURESCwgdmVjdHlwZSwNCj4gPj4gPiArCQkJCQkgICAgICBP UFRJTUlaRV9GT1JfU1BFRUQpKQ0KPiA+PiA+ICAgICAgew0KPiA+PiA+IC0gICAgICByZXR1cm4g TlVMTDsNCj4gPj4gPiArICAgICAgLyogZGl2IG9wdGltaXphdGlvbnMgdXNpbmcgbmFycm93aW5n cw0KPiA+PiA+ICsgICAgICAgd2UgY2FuIGRvIHRoZSBkaXZpc2lvbiBlLmcuIHNob3J0cyBieSAy NTUgZmFzdGVyIGJ5IGNhbGN1bGF0aW5nIGl0IGFzDQo+ID4+ID4gKyAgICAgICAoeCArICgoeCAr IDI1NykgPj4gOCkpID4+IDggYXNzdW1pbmcgdGhlIG9wZXJhdGlvbiBpcyBkb25lIGluDQo+ID4+ ID4gKyAgICAgICBkb3VibGUgdGhlIHByZWNpc2lvbiBvZiB4Lg0KPiA+PiA+ICsNCj4gPj4gPiAr ICAgICAgIElmIHdlIGltYWdpbmUgYSBzaG9ydCBhcyBiZWluZyBjb21wb3NlZCBvZiB0d28gYmxv Y2tzIG9mIGJ5dGVzDQo+IHRoZW4NCj4gPj4gPiArICAgICAgIGFkZGluZyAyNTcgb3IgMGIwMDAw XzAwMDFfMDAwMF8wMDAxIHRvIHRoZSBudW1iZXIgaXMgZXF1aXZhbGVudA0KPiB0bw0KPiA+PiA+ ICsgICAgICAgYWRkaW5nIDEgdG8gZWFjaCBzdWIgY29tcG9uZW50Og0KPiA+PiA+ICsNCj4gPj4g PiArCSAgICBzaG9ydCB2YWx1ZSBvZiAxNi1iaXRzDQo+ID4+ID4gKyAgICAgICDilIzilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJANCj4gPj4gPiArICAgICAgIOKUgiAgICAg ICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUgg0KPiA+PiA+ICsgICAgICAg4pSU4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYDQo+ID4+ID4gKwkgOC1iaXQgcGFydDEg 4payICA4LWJpdCBwYXJ0MiAgIOKWsg0KPiA+PiA+ICsJCSAgICAg4pSCICAgICAgICAgICAgICAg IOKUgg0KPiA+PiA+ICsJCSAgICAg4pSCICAgICAgICAgICAgICAgIOKUgg0KPiA+PiA+ICsJCSAg ICArMSAgICAgICAgICAgICAgICsxDQo+ID4+ID4gKw0KPiA+PiA+ICsgICAgICAgYWZ0ZXIgdGhl IGZpcnN0IGFkZGl0aW9uLCB3ZSBoYXZlIHRvIHNoaWZ0IHJpZ2h0IGJ5IDgsIGFuZCBuYXJyb3cg dGhlDQo+ID4+ID4gKyAgICAgICByZXN1bHRzIGJhY2sgdG8gYSBieXRlLiAgUmVtZW1iZXIgdGhh dCB0aGUgYWRkaXRpb24gbXVzdCBiZSBkb25lDQo+IGluDQo+ID4+ID4gKyAgICAgICBkb3VibGUg dGhlIHByZWNpc2lvbiBvZiB0aGUgaW5wdXQuICBIb3dldmVyIGlmIHdlIGtub3cgdGhhdA0KPiA+ PiA+ICsgdGhlDQo+ID4+IGFkZGl0aW9uDQo+ID4+ID4gKyAgICAgICBgeCArIDI1N2AgZG9lcyBu b3Qgb3ZlcmZsb3cgdGhlbiB3ZSBjYW4gZG8gdGhlIG9wZXJhdGlvbiBpbg0KPiA+PiA+ICsgdGhl DQo+ID4+IGN1cnJlbnQNCj4gPj4gPiArICAgICAgIHByZWNpc2lvbi4gIEluIHdoaWNoIGNhc2Ug d2UgZG9uJ3QgbmVlZCB0aGUgcGFjayBhbmQgdW5wYWNrcy4gICovDQo+ID4+ID4gKyAgICAgIGF1 dG8gd2NzdCA9IHdpOjp0b193aWRlIChjc3QpOw0KPiA+PiA+ICsgICAgICBpbnQgcG93ID0gd2k6 OmV4YWN0X2xvZzIgKHdjc3QgKyAxKTsNCj4gPj4gPiArICAgICAgaWYgKHBvdyA9PSAoaW50KSAo ZWxlbWVudF9wcmVjaXNpb24gKHZlY3R5cGUpIC8gMikpDQo+ID4+ID4gKwl7DQo+ID4+ID4gKwkg IHdpZGVfaW50IG1pbixtYXg7DQo+ID4+ID4gKwkgIC8qIElmIHdlJ3JlIGluIGEgcGF0dGVybiB3 ZSBuZWVkIHRvIGZpbmQgdGhlIG9yZ2luYWwgZGVmaW5pdGlvbi4gICovDQo+ID4+ID4gKwkgIHRy ZWUgb3AwID0gb3BybmQwOw0KPiA+PiA+ICsJICBnaW1wbGUgKnN0bXQgPSBTU0FfTkFNRV9ERUZf U1RNVCAob3BybmQwKTsNCj4gPj4gPiArCSAgc3RtdF92ZWNfaW5mbyBzdG10X2luZm8gPSB2aW5m by0+bG9va3VwX3N0bXQgKHN0bXQpOw0KPiA+PiA+ICsJICBpZiAoaXNfcGF0dGVybl9zdG10X3Ag KHN0bXRfaW5mbykpDQo+ID4+ID4gKwkgICAgew0KPiA+PiA+ICsJICAgICAgYXV0byBvcmlnX3N0 bXQgPSBTVE1UX1ZJTkZPX1JFTEFURURfU1RNVCAoc3RtdF9pbmZvKTsNCj4gPj4gPiArCSAgICAg IGlmIChpc19naW1wbGVfYXNzaWduIChTVE1UX1ZJTkZPX1NUTVQgKG9yaWdfc3RtdCkpKQ0KPiA+ PiA+ICsJCW9wMCA9IGdpbXBsZV9hc3NpZ25fbGhzIChTVE1UX1ZJTkZPX1NUTVQgKG9yaWdfc3Rt dCkpOw0KPiA+PiA+ICsJICAgIH0NCj4gPj4NCj4gPj4gSWYgdGhpcyBpcyBnZW5lcmFsbHkgc2Fm ZSAoSSdtIHNraXBwaW5nIHRoaW5raW5nIGFib3V0IGl0IGluIHRoZQ0KPiA+PiBpbnRlcmVzdHMg b2YgYSBxdWljayByZXZpZXcgOi0pKSwgdGhlbiBJIHRoaW5rIGl0IHNob3VsZCBiZSBkb25lIGlu DQo+ID4+IHZlY3RfZ2V0X3JhbmdlX2luZm8gaW5zdGVhZC4gIFVzaW5nIGdpbXBsZV9nZXRfbGhz IHdvdWxkIGJlIG1vcmUNCj4gPj4gZ2VuZXJhbCB0aGFuIGhhbmRsaW5nIGp1c3QgYXNzaWdubWVu dHMuDQo+ID4+DQo+ID4+ID4gKw0KPiA+PiA+ICsJICAvKiBDaGVjayB0aGF0IG5vIG92ZXJmbG93 IHdpbGwgb2NjdXIuICBJZiB3ZSBkb24ndCBoYXZlIHJhbmdlDQo+ID4+ID4gKwkgICAgIGluZm9y bWF0aW9uIHdlIGNhbid0IHBlcmZvcm0gdGhlIG9wdGltaXphdGlvbi4gICovDQo+ID4+ID4gKwkg IGlmICh2ZWN0X2dldF9yYW5nZV9pbmZvIChvcDAsICZtaW4sICZtYXgpKQ0KPiA+PiA+ICsJICAg IHsNCj4gPj4gPiArCSAgICAgIHdpZGVfaW50IG9uZSA9IHdpOjp0b193aWRlIChidWlsZF9vbmVf Y3N0IChpdHlwZSkpOw0KPiA+PiA+ICsJICAgICAgd2lkZV9pbnQgYWRkZXIgPSB3aTo6YWRkIChv bmUsIHdpOjpsc2hpZnQgKG9uZSwgcG93KSk7DQo+ID4+ID4gKwkgICAgICB3aTo6b3ZlcmZsb3df dHlwZSBvdmY7DQo+ID4+ID4gKwkgICAgICAvKiBXZSBuZWVkIGFkZGVyIGFuZCBtYXggaW4gdGhl IHNhbWUgcHJlY2lzaW9uLiAgKi8NCj4gPj4gPiArCSAgICAgIHdpZGVfaW50IHphZGRlcg0KPiA+ PiA+ICsJCT0gd2lkZV9pbnRfc3RvcmFnZTo6ZnJvbSAoYWRkZXIsIHdpOjpnZXRfcHJlY2lzaW9u IChtYXgpLA0KPiA+PiA+ICsJCQkJCSAgVU5TSUdORUQpOw0KPiA+PiA+ICsJICAgICAgd2k6OmFk ZCAobWF4LCB6YWRkZXIsIFVOU0lHTkVELCAmb3ZmKTsNCj4gPj4NCj4gPj4gQ291bGQgeW91IGV4 cGxhaW4gdGhpcyBhIGJpdCBtb3JlPyAgV2hlbiBkbyB3ZSBoYXZlIG1pc21hdGNoZWQNCj4gPj4g cHJlY2lzaW9ucz8NCj4gPg0KPiA+IEMgcHJvbW90aW9uIHJ1bGVzIHdpbGwgcHJvbW90ZSBlLmcu DQo+ID4NCj4gPiB2b2lkIGZ1bjIodWludDhfdCogcmVzdHJpY3QgcGl4ZWwsIHVpbnQ4X3QgbGV2 ZWwsIGludCBuKSB7DQo+ID4gICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrPTEpDQo+ID4gICAg IHBpeGVsW2ldID0gKHBpeGVsW2ldICsgbGV2ZWwpIC8gMHhmZjsgfQ0KPiA+DQo+ID4gQW5kIGhh dmUgdGhlIGFkZGl0aW9uIGJlIGRvbmUgYXMgYSAzMiBiaXQgaW50ZWdlci4gIFRoZSB2ZWN0b3Jp emVyDQo+ID4gd2lsbCBkZW1vdGUgdGhpcyBkb3duIHRvIGEgc2hvcnQsIGJ1dCByYW5nZSBpbmZv cm1hdGlvbiBpcyBub3Qgc3RvcmVkDQo+ID4gZm9yIHBhdHRlcm5zLiAgU28gSW4gdGhlIGFib3Zl IHRoZSByYW5nZSB3aWxsIGNvcnJlY3RseSBiZSAweDFmZSBidXQNCj4gPiB0aGUgcHJlY2lzaW9u IHdpbGwgYmUgdGhhdCBvZiB0aGUgb3JpZ2luYWwgZXhwcmVzc2lvbiwgc28gMzIuICBUaGlzDQo+ ID4gd2lsbCBiZSBhIG1pc21hdGNoIHdpdGggaXR5cGUgd2hpY2ggaXMgZGVyaXZlZCBmcm9tIHRo ZSBzaXplIHRoZSB2ZWN0b3JpemVyDQo+IHdpbGwgcGVyZm9ybSB0aGUgb3BlcmF0aW9uIGluLg0K PiANCj4gR2FoLCBtaXNzZWQgdGhpcyBmaXJzdCB0aW1lIHJvdW5kLCBzb3JyeS4NCj4gDQo+IFJp Y2hpIHdvdWxkIGtub3cgYmV0dGVyIHRoYW4gbWUsIGJ1dCBJIHRoaW5rIGl0J3MgZGFuZ2Vyb3Vz IHRvIHJlbHkgb24gdGhlDQo+IG9yaWcvcGF0dGVybiBsaW5rIGZvciByYW5nZSBpbmZvcm1hdGlv bi4gIFRoZSBlbmQgcmVzdWx0IG9mIGEgcGF0dGVybg0KPiAodmVjdF9zdG10X3RvX3ZlY3Rvcml6 ZSkgaGFzIHRvIGhhdmUgdGhlIHNhbWUgdHlwZSBhcyB0aGUgbGhzIG9mIHRoZSBvcmlnaW5hbA0K PiBzdGF0ZW1lbnQuICBCdXQgdGhlIG90aGVyIHN0YXRlbWVudHMgaW4gdGhlIHBhdHRlcm4gc2Vx dWVuY2UgY2FuIGRvDQo+IGFyYml0cmFyeSB0aGluZ3MuICBUaGVpciByYW5nZSBpc24ndCBwcmVk aWN0YWJsZSBmcm9tIHRoZSByYW5nZSBvZiB0aGUgb3JpZ2luYWwNCj4gc3RhdGVtZW50IHJlc3Vs dC4NCj4gDQo+IElJUkMsIHRoZSBhZGRpdGlvbiBhYm92ZSBpcyBjb252ZXJ0ZWQgdG86DQo+IA0K PiAgIGEnID0gKHVpbnQxNl90KSBwaXhlbFtpXQ0KPiAgIGInID0gKHVpbnQxNl90KSBsZXZlbA0K PiAgIHN1bScgPSBhJyArIGInDQo+ICAgc3VtID0gKGludCkgc3VtJw0KPiANCj4gd2hlcmUgc3Vt IGlzIHRoZSBkaXJlY3QgcmVwbGFjZW1lbnQgb2YgInBpeGVsW2ldICsgbGV2ZWwiLCB3aXRoIHRo ZSBzYW1lIHR5cGUNCj4gYW5kIHJhbmdlLiAgVGhlIGRpdmlzaW9uIHRoZW4gdXNlcyBzdW0nIGlu c3RlYWQgb2Ygc3VtLg0KPiANCj4gQnV0IHRoZSBmYWN0IHRoYXQgc3VtJyBpcyBwYXJ0IG9mIHRo ZSBzYW1lIHBhdHRlcm4gYXMgc3VtIGRvZXNuJ3QgZ3VhcmFudGVlDQo+IHRoYXQgc3VtJyBoYXMg dGhlIHNhbWUgcmFuZ2UgYXMgc3VtLiAgRS5nLiB0aGUgcGF0dGVybiBzdGF0ZW1lbnRzIGFkZGVk IGJ5DQo+IHRoZSBkaXZpc2lvbiBvcHRpbWlzYXRpb24gd291bGRuJ3QgaGF2ZSB0aGlzIHByb3Bl cnR5Lg0KDQpTbyBteSBhc3N1bXB0aW9uIGlzIHRoYXQgbm8gcGF0dGVybiB3b3VsZCByZXBsYWNl IGEgc3RhdGVtZW50IHdpdGggc29tZXRoaW5nDQpUaGF0IGhhcyBoaWdoZXIgcHJlY2lzaW9uIHRo YW4gdGhlIEMgc3RhdGVtZW50LiBUaGUgcGF0dGVybiBhYm92ZSBpcyBkZW1vdGVkDQpCeSB0aGUg dmVjdG9yaXplciBiYXNlZCBvbiByYW5nZSBpbmZvcm1hdGlvbiBhbHJlYWR5LiBNeSBhc3N1bXB0 aW9uIHdhcyB0aGF0DQp0aGUgcHJlY2lzaW9uIGNhbiBvbmx5IGV2ZXIgYmUgc21hbGxlciwgYmVj YXVzZSBvdGhlcndpc2UgdGhlIHBhdHRlcm4gaGFzIHZpb2xhdGVkDQp0aGUgc2VtYW50aWNzIG9m IHRoZSBDIGNvZGUsIHdoaWNoIHdvdWxkIGJlIGRhbmdlcm91cyBpZiBlLmcuIHRoZSBleHByZXNz aW9uIGVzY2FwZXM/DQoNCj4gDQo+IElzIGl0IHBvc3NpYmxlIHRvIHRlbGwgcmFuZ2VyIHRvIGNv bXB1dGUgdGhlIHJhbmdlIG9mIGV4cHJlc3Npb25zIHRoYXQgaGF2ZW4ndA0KPiBiZWVuIGFkZGVk IHRvIHRoZSBJTD8gIChHZW51aW5lIHF1ZXN0aW9uLCBoYXZlbid0IGxvb2tlZC4NCj4gSXQgc2Vl bXMgcHJldHR5IHBvd2VyZnVsIHRob3VnaC4pDQoNCkkgZG9uJ3Qga25vdyBlaXRoZXIsIEkgZ3Vl c3MgZm9yIHRoaW5ncyBpdCBoYXMgZXhwbGljaXQga25vd2xlZGdlIGFib3V0IGl0J3Mgb2ssIHNv DQordyBvciAqdyB3b3VsZCBiZSBmaW5lLCBidXQgd2l0aCBhIHJhbmRvbSBJRk5fIGl0J2xsIGxp a2VseSBoYXZlIHRvIHB1bnQgYXMgdmFyeWluZy4NCg0KSSBndWVzcyB3aGlsZSB0aGVvcmV0aWNh bGx5IHBvc3NpYmxlLCBJIGRvbid0IHNlZSBhIGNhc2Ugd2hlcmUgdGhlIHZlY3Rvcml6ZXIgd291 bGQNCkludHJvZHVjZSBhIGhpZ2hlciBwcmVjaXNpb24sIGFzIHRoaXMgd291bGQgcmVkdWNlIHlv dXIgVkYuDQoNClRoZSBvbmx5IHBsYWNlIEkgY2FuIHRoaW5rIG9mIHRoYXQgdGhpcyBpcyB1bnNh ZmUgaXMgaWYgdGhlIGRpdmlzaW9uIGlzIGludHJvZHVjZWQgYXMgcGFydA0Kb2YgYW5vdGhlciBw YXR0ZXJuLCBidXQgaW4gdGhhdCBjYXNlIHRoZSBwYXR0ZXJuIHdvbid0IGhhdmUgYSByZWxhdGVk IHN0YXRlbWVudCBzbw0Kd2UnbGwgcHVudC4NCg0KUmVnYXJkcywNClRhbWFyDQoNCj4gDQo+IFRo YW5rcywNCj4gUmljaGFyZA0K