From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2079.outbound.protection.outlook.com [40.107.105.79]) by sourceware.org (Postfix) with ESMTPS id E36873854144 for ; Mon, 31 Oct 2022 11:35:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E36873854144 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=deoS3AwKPkSHdJtarm+d5/jnWI3op82nJZSebyE5RGCMJhd+FD5ttotdGF9uT8REK+tobA5n3t6rWH3aK1lEGNHXt/ZpHfFhR0qhOuj4zGX/gKMDQYbdGXOgBIvVLxc6SLBn3SnPB6Rpflh5mO0j3SSY77OJkhBAbitiwpEo4xGq+UL55UQyhB1Uw7hAnhvDYK80v5zYhrCNlMgTf4GfHlE6wxg8xLIhHfhMuVOL8ElrDTOUfRFIVhosToFCcljPEpnPwNao1LB1346KwS82JNSjITRShIIF/iPuxU4CQoSJMeuTbb7oVZyp3RQ4GZ/wEIwT2imJHqN+gCGLvJiUUQ== ARC-Message-Signature: i=2; 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=sqxDJ91a3qNNEBcd5TFkP9nrCWncry1q/0MUjPb+tgE=; b=aST9g0mdssyvJ6Zq7Vp0vd6C6WBa86gcVaBdFHbZSHqAd9dMWZxEFHAypWNy+AaXNdSx5MtdfmJGVjpjTY8OqBTlE1iryID3I3Du+Bmzp4gY0oF5M33O1WnFppigEBpa0CJa0o+p1nLW76XVzuuC0Yi3tAHx6oo94jxdRdPtsrkv0+c8fFj49SgTOxOSyH9MlCs24FfQ4egaj8qIDj1sOMDlNkeeZt8fL6yPUhNdjKGJ1A5UZLWE7bO+hWLm/5cgNfgg+Besb594NJtTjHgaHjb4BrLSWspu91tCiiMphg/478BPLsKKiMnX8XE/2ut4WI/FrJADA119hTQFlwsKyw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=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=sqxDJ91a3qNNEBcd5TFkP9nrCWncry1q/0MUjPb+tgE=; b=hvZCVT03szAGovjoKAVbIqfDfAdyPM9jERkkz2iNlVSMJcZ5UQ6HNSgbfO3HllZHDuBluB1qnvx1m1X5ftXQn368YA8xA1V7+vG68Y0KYSCbRiJFIfxDlnelEwft+WvWvsqDzcwTNcmkOBrEYB23+jqQZWWz9gQPPOKFNHpHkT4= Received: from DB9PR01CA0017.eurprd01.prod.exchangelabs.com (2603:10a6:10:1d8::22) by PA4PR08MB7596.eurprd08.prod.outlook.com (2603:10a6:102:272::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Mon, 31 Oct 2022 11:34:59 +0000 Received: from DBAEUR03FT008.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:1d8:cafe::bb) by DB9PR01CA0017.outlook.office365.com (2603:10a6:10:1d8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19 via Frontend Transport; Mon, 31 Oct 2022 11:34: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 DBAEUR03FT008.mail.protection.outlook.com (100.127.142.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.14 via Frontend Transport; Mon, 31 Oct 2022 11:34:59 +0000 Received: ("Tessian outbound 0800d254cb3b:v130"); Mon, 31 Oct 2022 11:34:59 +0000 X-CR-MTA-TID: 64aa7808 Received: from 1dc39c23bd99.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D05D6128-8E09-4B58-94FD-6A61116E5527.1; Mon, 31 Oct 2022 11:34:54 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 1dc39c23bd99.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 31 Oct 2022 11:34:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KUrP1PiFO+E9lEAm4bpIsPE2BQuX5mJ8uPu/ns20ye9HfPcHnGncHYC9sn2hkzW8OMpyt8c49gMJXW9DfSlaXENG1lpLk9aYMDDp8KRq86dZhcpdabYBv7Q2Ps2EjtFNqnVu/Ge3zv7u9Jqv7obXnzxcAt4+oguvdghd3+49L9QKScMYjwBRK061hEjh/CupeptXiP+SuOAslIRuAO0Nk2UyjCujWXZnzAscIEdHQHm6+r0adnrYptLHy7oAbc+qBwTyIuFm5FfJl7WMElmfl2/mr9FWOZaDDThpsLLSaGv37A5c0CyXGkXOxKugdK1sahcRdVF5321/hSsKK33UDg== 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=sqxDJ91a3qNNEBcd5TFkP9nrCWncry1q/0MUjPb+tgE=; b=JFGSBY5vpsT+TVVZEInIfak4F50dKqJYamCGyV4wFkMl4MwiYUOqYP7knDT5THpd69H3ssAKQHMdp/E+VENt9XdxRNxVkJEnrLclng2PamMZSNRUYisBKrsiEWe8NPWNLQ1nfembsuXGW6/dD9MK8ZoKJ7eMQp5lkHejmNnUhVbaDwlgcZ6fsbv+aFdas888+VUf6qmNo3T19HEfXp9OM5LblELRvMsNf/8rOz0AA8Q8D5wh4nRCd0Va3tcM916BtEEdO6FedarqpqSEmZGaQQ5nzeG2Q1bHLu/lqp5ddbvl9autuPwI07sqto+DDwGSE1aAI6Ag0XcAQLAg+DgkFw== 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=sqxDJ91a3qNNEBcd5TFkP9nrCWncry1q/0MUjPb+tgE=; b=hvZCVT03szAGovjoKAVbIqfDfAdyPM9jERkkz2iNlVSMJcZ5UQ6HNSgbfO3HllZHDuBluB1qnvx1m1X5ftXQn368YA8xA1V7+vG68Y0KYSCbRiJFIfxDlnelEwft+WvWvsqDzcwTNcmkOBrEYB23+jqQZWWz9gQPPOKFNHpHkT4= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by DU0PR08MB9439.eurprd08.prod.outlook.com (2603:10a6:10:42d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Mon, 31 Oct 2022 11:34:50 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::c57d:50c2:3502:a52]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::c57d:50c2:3502:a52%4]) with mapi id 15.20.5769.019; Mon, 31 Oct 2022 11:34:50 +0000 From: Tamar Christina To: Tamar Christina , "gcc-patches@gcc.gnu.org" CC: nd , Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov , Richard Sandiford Subject: RE: [PATCH 3/4]AArch64 Add SVE2 implementation for pow2 bitmask division Thread-Topic: [PATCH 3/4]AArch64 Add SVE2 implementation for pow2 bitmask division Thread-Index: AQHYzy+WOriDmcDqvEKIhCfEp7VuIK4omx9A Date: Mon, 31 Oct 2022 11:34:50 +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: 3456BEA767126042A2C5A8BFAB76CBD8.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_|DU0PR08MB9439:EE_|DBAEUR03FT008:EE_|PA4PR08MB7596:EE_ X-MS-Office365-Filtering-Correlation-Id: 483cf717-0336-4398-2e05-08dabb33f165 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: ePDl2kkW6M9nAxiROrHshw8FSYdrhirouZX32UJOF20t1+MqkD9I/AJ0+RL2RNsvtSGytvgHI2HLYET0iP4K4ubUabf/XLbxIyY3xZvW8XA0N9IG09lTRvi0c8Ia/09pTljKrLs4i/WoraXfgZ9ADxK016YeNZlxmq75OnClovcC7vO1M+eOA9eHmrpGBe4rW+zo2HS2oJqcwcC2pd/KrbDYI4ZiHkgASzn37K82qcBZe9t8BOyRc6ZgBVttbyfqSW0tPQTRYtiEuX0SOJNXBPUg2c3OVCmyAafBbDwjPaE2jLjzfTDyOJoeKF684x5HiK6/9NcomY949eUZF9LevFAF31WucaViKOaN8roSMCzstHmiKIroUXKry35OI7wKouRECjk1HGjjodbYyfqgO1OwoayICNfQYi4f9vAujdEwqVH/ROkW9xa4kBy/7ZJJLM6VyAMwDtDyO7i3K+cRH6z9h6HRWu3jS9+r9ZbBaZyrK41TrIcnxYABUzCWf4DjDlJnrRAOSTlvGF/DN3nCTEncZnlfOMl3B2vVyDStGIp1AeOVpBqfngu4GDYkIjncB6wbIBPPE52VOl0ttZlD/z3Yvs192LoVfSPh66MEKlU3zhJrSqFR3Po9cseBT5nxW+WRTo5JYmpTO78GmphUPzFcW9ExaZnzERaQ26bWm6PD6LVwOShDkgsRGntpsCCsMtdq1/ZGgyXINofD6SjbLwFHfBH2OdVwS6aVFFILDKgF32b04IQGZtj5lsvbU1+l3amBaKGXU11TLK3ngckaVmlFIkNmcCcjN6MlyaIVlo7wE0AAOyE76ztOP8p1CyhWaX7j+6+KPx5qSI16ehgT7g== 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:(13230022)(4636009)(136003)(346002)(366004)(376002)(396003)(39860400002)(451199015)(76116006)(38070700005)(186003)(8676002)(4326008)(66946007)(66556008)(66476007)(55016003)(64756008)(66446008)(110136005)(54906003)(33656002)(5660300002)(316002)(6506007)(4743002)(9686003)(8936002)(52536014)(26005)(7696005)(86362001)(53546011)(41300700001)(83380400001)(122000001)(478600001)(71200400001)(2906002)(84970400001)(38100700002)(357404004);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9439 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: DBAEUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 028cbbcf-3005-478a-f7c5-08dabb33ec1a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RYiPdPpxdbUzCIY2dyiayZRpvpz7YhqzvEjgnHZcKZNZntSc+Tf7skvr/6wF/FQpWtP3WhOft23I4dHYJ4PIfpIoFJaqJB3e2gL4Sk6tq/Ud0gF4zAlYNL0uYkDqjehluDTd/49S/rYlW6jTjJhqF2ez8VwbSlCzVrfdYMc2P12uFZYNlMdzpr+uGS141SypKnNoHQ0JSD/idAfWDyAg5LlxlWwcG0W1C5IRCaqZJ/2UR43NcN/9F97lKO+KvTcL1KJFEa5wh3wGKhZa6cTp393kdM6FiFB4ivoyYbq87VWjrh5z9XkYATeyBX1Fv2UwlISWovVQTxvCO1dxj+2mxT0nzNgoD4Y5pI9PqxfmLsqMXTndb1pXxj0+jjYiAXepin6fag0hrrzKZvBmCgCD3TioPVlVZ18YSZN24Anm+PSg3QQsSnbuIInkKcW1FYC532qeUUbxS5yi8iFu72D38f/SUrEeFEVUAKOTWkvFA6NDybrK0kJ302mvOjMz8lM4vX+BIvTjIHtnGwkq41O9PcfOZrPjKKoSDadguWPjJFobib43AsB4gBsjTnvTJXQEeRcpp5qry0R36aYFTAE56jtorW57g2O7u0toNsA5lJBfMzjzDbhpZi0yqwH3Kkj6DvmSCIEW0bPYVJHpUsEtwVsjnFqz6FjWi8HTvudHZbUlZe3WrkOMcu48gkfSZVupfrfZIyVVYZuUx7bv8SbNTy1Lcky096fMhLnAqMK87kU2m+Bt79Kwe+6/VsUthVblEfk+VTfWO1zRUy5Y+xpEfmkiWrOVEo0nMuR9dwsVvRDBdzruFcizhaSltKQhMLvJ89ggMewFzmjqXIF1FdKuTg== 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:(13230022)(4636009)(396003)(39860400002)(136003)(346002)(376002)(451199015)(40470700004)(46966006)(36840700001)(6506007)(7696005)(4743002)(53546011)(26005)(478600001)(9686003)(2906002)(33656002)(40480700001)(55016003)(5660300002)(8676002)(70206006)(316002)(70586007)(54906003)(82310400005)(4326008)(110136005)(41300700001)(8936002)(40460700003)(52536014)(81166007)(356005)(36860700001)(86362001)(82740400003)(84970400001)(83380400001)(47076005)(186003)(336012)(357404004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2022 11:34:59.4012 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 483cf717-0336-4398-2e05-08dabb33f165 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: DBAEUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7596 X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_DMARC_NONE,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: UGluZw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFRhbWFyIENocmlz dGluYSA8dGFtYXIuY2hyaXN0aW5hQGFybS5jb20+DQo+IFNlbnQ6IEZyaWRheSwgU2VwdGVtYmVy IDIzLCAyMDIyIDEwOjM0IEFNDQo+IFRvOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiBDYzog bmQgPG5kQGFybS5jb20+OyBSaWNoYXJkIEVhcm5zaGF3IDxSaWNoYXJkLkVhcm5zaGF3QGFybS5j b20+Ow0KPiBNYXJjdXMgU2hhd2Nyb2Z0IDxNYXJjdXMuU2hhd2Nyb2Z0QGFybS5jb20+OyBLeXJ5 bG8gVGthY2hvdg0KPiA8S3lyeWxvLlRrYWNob3ZAYXJtLmNvbT47IFJpY2hhcmQgU2FuZGlmb3Jk DQo+IDxSaWNoYXJkLlNhbmRpZm9yZEBhcm0uY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggMy80XUFB cmNoNjQgQWRkIFNWRTIgaW1wbGVtZW50YXRpb24gZm9yIHBvdzIgYml0bWFzaw0KPiBkaXZpc2lv bg0KPiANCj4gSGkgQWxsLA0KPiANCj4gSW4gcGxlbnR5IG9mIGltYWdlIGFuZCB2aWRlbyBwcm9j ZXNzaW5nIGNvZGUgaXQncyBjb21tb24gdG8gbW9kaWZ5IHBpeGVsDQo+IHZhbHVlcyBieSBhIHdp ZGVuaW5nIG9wZXJhdGlvbiBhbmQgdGhlbiBzY2FsZSB0aGVtIGJhY2sgaW50byByYW5nZSBieQ0K PiBkaXZpZGluZyBieSAyNTUuDQo+IA0KPiBUaGlzIHBhdGNoIGFkZHMgYW4gbmFtZWQgZnVuY3Rp b24gdG8gYWxsb3cgdXMgdG8gZW1pdCBhbiBvcHRpbWl6ZWQNCj4gc2VxdWVuY2Ugd2hlbiBkb2lu ZyBhbiB1bnNpZ25lZCBkaXZpc2lvbiB0aGF0IGlzIGVxdWl2YWxlbnQgdG86DQo+IA0KPiAgICB4 ID0geSAvICgyIF4gKGJpdHNpemUgKHkpLzIpLTEpDQo+IA0KPiBGb3IgU1ZFMiB0aGlzIG1lYW5z IHdlIGdlbmVyYXRlIGZvcjoNCj4gDQo+IHZvaWQgZHJhd19iaXRtYXAxKHVpbnQ4X3QqIHJlc3Ry aWN0IHBpeGVsLCB1aW50OF90IGxldmVsLCBpbnQgbikgew0KPiAgIGZvciAoaW50IGkgPSAwOyBp IDwgKG4gJiAtMTYpOyBpKz0xKQ0KPiAgICAgcGl4ZWxbaV0gPSAocGl4ZWxbaV0gKiBsZXZlbCkg LyAweGZmOyB9DQo+IA0KPiB0aGUgZm9sbG93aW5nOg0KPiANCj4gICAgICAgICBtb3YgICAgIHoz LmIsICMxDQo+IC5MMzoNCj4gICAgICAgICBsZDFiICAgIHowLmgsIHAwL3osIFt4MCwgeDNdDQo+ ICAgICAgICAgbXVsICAgICB6MC5oLCBwMS9tLCB6MC5oLCB6Mi5oDQo+ICAgICAgICAgYWRkaG5i ICB6MS5iLCB6MC5oLCB6My5oDQo+ICAgICAgICAgYWRkaG5iICB6MC5iLCB6MC5oLCB6MS5oDQo+ ICAgICAgICAgc3QxYiAgICB6MC5oLCBwMCwgW3gwLCB4M10NCj4gICAgICAgICBpbmNoICAgIHgz DQo+ICAgICAgICAgd2hpbGVsbyBwMC5oLCB3MywgdzINCj4gICAgICAgICBiLmFueSAgIC5MMw0K PiANCj4gaW5zdGVhZCBvZjoNCj4gDQo+IC5MMzoNCj4gICAgICAgICBsZDFiICAgIHowLmgsIHAx L3osIFt4MCwgeDNdDQo+ICAgICAgICAgbXVsICAgICB6MC5oLCBwMC9tLCB6MC5oLCB6MS5oDQo+ ICAgICAgICAgdW11bGggICB6MC5oLCBwMC9tLCB6MC5oLCB6Mi5oDQo+ICAgICAgICAgbHNyICAg ICB6MC5oLCB6MC5oLCAjNw0KPiAgICAgICAgIHN0MWIgICAgejAuaCwgcDEsIFt4MCwgeDNdDQo+ ICAgICAgICAgaW5jaCAgICB4Mw0KPiAgICAgICAgIHdoaWxlbG8gcDEuaCwgdzMsIHcyDQo+ICAg ICAgICAgYi5hbnkgICAuTDMNCj4gDQo+IFdoaWNoIHJlc3VsdHMgaW4gc2lnbmlmaWNhbnRseSBm YXN0ZXIgY29kZS4NCj4gDQo+IEJvb3RzdHJhcHBlZCBSZWd0ZXN0ZWQgb24gYWFyY2g2NC1ub25l LWxpbnV4LWdudSBhbmQgbm8gaXNzdWVzLg0KPiANCj4gT2sgZm9yIG1hc3Rlcj8NCj4gDQo+IFRo YW5rcywNCj4gVGFtYXINCj4gDQo+IGdjYy9DaGFuZ2VMb2c6DQo+IA0KPiAJKiBjb25maWcvYWFy Y2g2NC9hYXJjaDY0LXN2ZTIubWQNCj4gKEBhYXJjaDY0X2JpdG1hc2tfdWRpdjxtb2RlPjMpOiBO ZXcuDQo+IA0KPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gDQo+IAkqIGdjYy50YXJnZXQv YWFyY2g2NC9zdmUyL2Rpdi1ieS1iaXRtYXNrXzEuYzogTmV3IHRlc3QuDQo+IA0KPiAtLS0gaW5s aW5lIGNvcHkgb2YgcGF0Y2ggLS0NCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9h YXJjaDY0LXN2ZTIubWQNCj4gYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zdmUyLm1kDQo+ IGluZGV4DQo+IGYxMzhmNGJlNGJjZjc0YzFhNGE2ZDU4NDdlZDgzMTQzNTI0NjczN2YuLjRkMDk3 ZjdjNDA1Y2M2OGExZDZjZGE1YzIzNA0KPiBhMTAyM2E2ZWJhMGQxIDEwMDY0NA0KPiAtLS0gYS9n Y2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zdmUyLm1kDQo+ICsrKyBiL2djYy9jb25maWcvYWFy Y2g2NC9hYXJjaDY0LXN2ZTIubWQNCj4gQEAgLTcxLDYgKzcxLDcgQEANCj4gIDs7IC0tLS0gW0lO VF0gUmVjaXByb2NhbCBhcHByb3hpbWF0aW9uDQo+ICA7OyAtLS0tIFtJTlQ8LUZQXSBCYXNlLTIg bG9nYXJpdGhtDQo+ICA7OyAtLS0tIFtJTlRdIFBvbHlub21pYWwgbXVsdGlwbGljYXRpb24NCj4g Kzs7IC0tLS0gW0lOVF0gTWlzYyBvcHRhYiBpbXBsZW1lbnRhdGlvbnMNCj4gIDs7DQo+ICA7OyA9 PSBQZXJtdXRhdGlvbg0KPiAgOzsgLS0tLSBbSU5ULEZQXSBHZW5lcmFsIHBlcm11dGVzDQo+IEBA IC0yMzEyLDYgKzIzMTMsNDcgQEAgKGRlZmluZV9pbnNuICJAYWFyY2g2NF9zdmVfPG9wdGFiPjxt b2RlPiINCj4gICAgIjxzdmVfaW50X29wPlx0JTAuPFZld3R5cGU+LCAlMS48VmV0eXBlPiwgJTIu PFZldHlwZT4iDQo+ICApDQo+IA0KPiArOzsNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICstLSA7OyAt LS0tIFtJTlRdIE1pc2Mgb3B0YWIgaW1wbGVtZW50YXRpb25zIDs7DQo+ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArLS0NCj4gKzs7IEluY2x1ZGVzOg0KPiArOzsgLSBhYXJjaDY0X2JpdG1hc2tfdWRpdg0K PiArOzsNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICstLQ0KPiArDQo+ICs7OyBkaXYgb3B0aW1pemF0 aW9ucyB1c2luZyBuYXJyb3dpbmdzDQo+ICs7OyB3ZSBjYW4gZG8gdGhlIGRpdmlzaW9uIGUuZy4g c2hvcnRzIGJ5IDI1NSBmYXN0ZXIgYnkgY2FsY3VsYXRpbmcgaXQNCj4gK2FzIDs7ICh4ICsgKCh4 ICsgMjU3KSA+PiA4KSkgPj4gOCBhc3N1bWluZyB0aGUgb3BlcmF0aW9uIGlzIGRvbmUgaW4gOzsN Cj4gK2RvdWJsZSB0aGUgcHJlY2lzaW9uIG9mIHguDQo+ICs7Ow0KPiArOzsgU2VlIGFhcmNoNjQt c2ltZC5tZCBmb3IgYmlnZ2VyIGV4cGxhbmF0aW9uLg0KPiArKGRlZmluZV9leHBhbmQgIkBhYXJj aDY0X2JpdG1hc2tfdWRpdjxtb2RlPjMiDQo+ICsgIFsobWF0Y2hfb3BlcmFuZDpTVkVfRlVMTF9I U0RJIDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KPiArICAgKG1hdGNoX29wZXJhbmQ6U1ZFX0ZVTExf SFNESSAxICJyZWdpc3Rlcl9vcGVyYW5kIikNCj4gKyAgIChtYXRjaF9vcGVyYW5kOlNWRV9GVUxM X0hTREkgMiAiaW1tZWRpYXRlX29wZXJhbmQiKV0NCj4gKyAgIlRBUkdFVF9TVkUyIg0KPiArew0K PiArICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHNpemUNCj4gKyAgICA9ICgxVUxMIDw8IEdFVF9N T0RFX1VOSVRfQklUU0laRSAoPFZOQVJST1c+bW9kZSkpIC0gMTsNCj4gKyAgaWYgKCFDT05TVF9W RUNUT1JfUCAob3BlcmFuZHNbMl0pDQo+ICsgICAgICB8fCBjb25zdF92ZWN0b3JfZW5jb2RlZF9u ZWx0cyAob3BlcmFuZHNbMl0pICE9IDENCj4gKyAgICAgIHx8IHNpemUgIT0gVUlOVFZBTCAoQ09O U1RfVkVDVE9SX0VMVCAob3BlcmFuZHNbMl0sIDApKSkNCj4gKyAgICBGQUlMOw0KPiArDQo+ICsg IHJ0eCBhZGRlbmQgPSBnZW5fcmVnX3J0eCAoPE1PREU+bW9kZSk7DQo+ICsgIHJ0eCB0bXAxID0g Z2VuX3JlZ19ydHggKDxWTkFSUk9XPm1vZGUpOw0KPiArICBydHggdG1wMiA9IGdlbl9yZWdfcnR4 ICg8Vk5BUlJPVz5tb2RlKTsNCj4gKyAgcnR4IHZhbCA9IGFhcmNoNjRfc2ltZF9nZW5fY29uc3Rf dmVjdG9yX2R1cCAoPFZOQVJST1c+bW9kZSwgMSk7DQo+ICsgIGVtaXRfbW92ZV9pbnNuIChhZGRl bmQsIGxvd3BhcnRfc3VicmVnICg8TU9ERT5tb2RlLCB2YWwsDQo+ICs8Vk5BUlJPVz5tb2RlKSk7 DQo+ICsgIGVtaXRfaW5zbiAoZ2VuX2FhcmNoNjRfc3ZlIChVTlNQRUNfQURESE5CLCA8TU9ERT5t b2RlLCB0bXAxLA0KPiBvcGVyYW5kc1sxXSwNCj4gKwkJCSAgICAgIGFkZGVuZCkpOw0KPiArICBl bWl0X2luc24gKGdlbl9hYXJjaDY0X3N2ZSAoVU5TUEVDX0FEREhOQiwgPE1PREU+bW9kZSwgdG1w MiwNCj4gb3BlcmFuZHNbMV0sDQo+ICsJCQkgICAgICBsb3dwYXJ0X3N1YnJlZyAoPE1PREU+bW9k ZSwgdG1wMSwNCj4gKwkJCQkJICAgICAgPFZOQVJST1c+bW9kZSkpKTsNCj4gKyAgZW1pdF9tb3Zl X2luc24gKG9wZXJhbmRzWzBdLA0KPiArCQkgIGxvd3BhcnRfc3VicmVnICg8TU9ERT5tb2RlLCB0 bXAyLA0KPiA8Vk5BUlJPVz5tb2RlKSk7DQo+ICsgIERPTkU7DQo+ICt9KQ0KPiArDQo+ICA7Ow0K PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQo+ID09PT09PT09PT09PT09PQ0KPiAgOzsgPT0gUGVybXV0YXRpb24NCj4gIDs7DQo+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cj4gPT09PT09PT09PT09PT09DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUyL2Rpdi1ieS1iaXRtYXNrXzEuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L3N2ZTIvZGl2LWJ5LWJpdG1hc2tfMS5jDQo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+IGluZGV4DQo+IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAuLmU2ZjUwOThjMzBmNGUyZWI4ZWQxYWYxNTNjDQo+IDBiYjBkMjA0Y2RhNmQ5DQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlMi9k aXYtYnktYml0bWFza18xLmMNCj4gQEAgLTAsMCArMSw1MyBAQA0KPiArLyogeyBkZy1kbyBjb21w aWxlIH0gKi8NCj4gKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzIgLXN0ZD1jOTkiIH0g Ki8NCj4gKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB7 IHRhcmdldCB7IGxlIH0gfSB9IH0NCj4gKyovDQo+ICsNCj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4N Cj4gKw0KPiArLyoNCj4gKyoqIGRyYXdfYml0bWFwMToNCj4gKyoqIC4uLg0KPiArKioJbXVsCXpb MC05XSsuaCwgcFswLTldKy9tLCB6WzAtOV0rLmgsIHpbMC05XSsuaA0KPiArKioJYWRkaG5iCXpb MC05XSsuYiwgelswLTldKy5oLCB6WzAtOV0rLmgNCj4gKyoqCWFkZGhuYgl6WzAtOV0rLmIsIHpb MC05XSsuaCwgelswLTldKy5oDQo+ICsqKiAuLi4NCj4gKyovDQo+ICt2b2lkIGRyYXdfYml0bWFw MSh1aW50OF90KiByZXN0cmljdCBwaXhlbCwgdWludDhfdCBsZXZlbCwgaW50IG4pIHsNCj4gKyAg Zm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrPTEpDQo+ICsgICAgcGl4ZWxbaV0gPSAo cGl4ZWxbaV0gKiBsZXZlbCkgLyAweGZmOyB9DQo+ICsNCj4gK3ZvaWQgZHJhd19iaXRtYXAyKHVp bnQ4X3QqIHJlc3RyaWN0IHBpeGVsLCB1aW50OF90IGxldmVsLCBpbnQgbikgew0KPiArICBmb3Ig KGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSs9MSkNCj4gKyAgICBwaXhlbFtpXSA9IChwaXhl bFtpXSAqIGxldmVsKSAvIDB4ZmU7IH0NCj4gKw0KPiArLyoNCj4gKyoqIGRyYXdfYml0bWFwMzoN Cj4gKyoqIC4uLg0KPiArKioJbXVsCXpbMC05XSsucywgcFswLTldKy9tLCB6WzAtOV0rLnMsIHpb MC05XSsucw0KPiArKioJYWRkaG5iCXpbMC05XSsuaCwgelswLTldKy5zLCB6WzAtOV0rLnMNCj4g KyoqCWFkZGhuYgl6WzAtOV0rLmgsIHpbMC05XSsucywgelswLTldKy5zDQo+ICsqKiAuLi4NCj4g KyovDQo+ICt2b2lkIGRyYXdfYml0bWFwMyh1aW50MTZfdCogcmVzdHJpY3QgcGl4ZWwsIHVpbnQx Nl90IGxldmVsLCBpbnQgbikgew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsg aSs9MSkNCj4gKyAgICBwaXhlbFtpXSA9IChwaXhlbFtpXSAqIGxldmVsKSAvIDB4ZmZmZlU7IH0N Cj4gKw0KPiArLyoNCj4gKyoqIGRyYXdfYml0bWFwNDoNCj4gKyoqIC4uLg0KPiArKioJbXVsCXpb MC05XSsuZCwgcFswLTldKy9tLCB6WzAtOV0rLmQsIHpbMC05XSsuZA0KPiArKioJYWRkaG5iCXpb MC05XSsucywgelswLTldKy5kLCB6WzAtOV0rLmQNCj4gKyoqCWFkZGhuYgl6WzAtOV0rLnMsIHpb MC05XSsuZCwgelswLTldKy5kDQo+ICsqKiAuLi4NCj4gKyovDQo+ICt2b2lkIGRyYXdfYml0bWFw NCh1aW50MzJfdCogcmVzdHJpY3QgcGl4ZWwsIHVpbnQzMl90IGxldmVsLCBpbnQgbikgew0KPiAr ICBmb3IgKGludCBpID0gMDsgaSA8IChuICYgLTE2KTsgaSs9MSkNCj4gKyAgICBwaXhlbFtpXSA9 IChwaXhlbFtpXSAqICh1aW50NjRfdClsZXZlbCkgLyAweGZmZmZmZmZmVUw7IH0NCj4gDQo+IA0K PiANCj4gDQo+IC0tDQo=