From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2046.outbound.protection.outlook.com [40.107.249.46]) by sourceware.org (Postfix) with ESMTPS id 42DA4385829E for ; Mon, 27 Nov 2023 22:49:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 42DA4385829E 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-Filter: OpenARC Filter v1.0.0 sourceware.org 42DA4385829E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.249.46 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1701125393; cv=pass; b=n4tcXuCqmrcArw85Fzf2NVddloSqVSJXPXKwpUfa3OCaeSWqTRea89SaVLECEBPA6pHNgtegf9qlHxaILtiUS8Bas79ZPHIo89cO91UGZR3sxVSNUdTtyPy/ezu5PkJkLaTKJRPJCoVodpi9tMhTKKPggWcpvIRtcdxeB+b3mrs= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1701125393; c=relaxed/simple; bh=x2EZeS60tSImMbPmBg8kssJJU5UO4SPmIoTOdYgeeMA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=ouZPmRCPDcfVmttcxyu1Vn5FJXQ7/zKWZ/VZb5XD9jAUOGBZDMj63ihUzgYaoKKvkwgTFvXrmUMQctyk1We+TztTxkhbhn3Ayp/zF4B1zz9T3LocFOPaizzvwS7DbESl3SZ62rxm3lUeV/9fy1WhbHGc4hS9h4hfTgVhdGwgUh0= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=QicgtdMuH5wWRWSUoWCD1EnWN3oxrJm6M9fDeRwUvar9DAUzMlrsPmdoIYIOgg/xaGn5HKfLzzCSv83j9354i7T+NoOT9V2hbklwJeIds6WJyIQIPCw3IllS+E8SM6E1IibfuZzZ4R2bAGw9mM3hFG1cDnaXiyVzIQPIno2UIKofGOhXlkTfW5Q4PxEYL1A0uVztEWnagWtJYrOCeK2r6jepRFTSK7wdmZvcy96bhPjg5MzLrWajhtGc1Lcd1EzSXCSVO77ShcmloF/+jBJ8IkogeEJjB3iVhlm+4KBXNN0TmTJwpJcTbAJrTGxKeXhaaHX6TQhCJI98RuxUEmdAHw== 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=x2EZeS60tSImMbPmBg8kssJJU5UO4SPmIoTOdYgeeMA=; b=LVMOG8hTccL/ELjX4xm5SfaLAwMizubJLMMz3z/v1H9WzUt5qmUczqaOa5SUMyzsObXF2CP++XjeBnuRiVWitLrVlgXy5ZuxV/w5WlFUpabkjbEPtsptpqJGzUdsXyF0v0MKpYxXb0PJmnyrb9wtqb5UbP3K/RHwczuTM0H25W10unaoKBO2xOnTmACUaqctWQFWcY5OWxEyH4yc9mU0ey0u0ElAzIoF/XZkjILZOHe+HpK0aMLVK3HupDDnm09GLZamFzPTLgS9p87HBmmfbnOWVssxztP2cviluB2iuVfAHInGEMFG66tRpemEjXlhsYXD26fZn23a95IZ+B3AEQ== 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=x2EZeS60tSImMbPmBg8kssJJU5UO4SPmIoTOdYgeeMA=; b=eN8X3i1A8WLaNSN14pzqN31x8aLMC/WWktMIv7xFXpdkT5ez6GQKaenY3Fy1m3JiBsKPv26nPQienkwQZsHYhUTbgzW+l2voKalD2jYqLqT46Wto2e71yxbHBIJHw7O/QDfvZ+0B5non/hnji4aCJDPsirJqxIoMPDrjOlQqUl4= Received: from AM0PR01CA0150.eurprd01.prod.exchangelabs.com (2603:10a6:208:aa::19) by DB4PR08MB9863.eurprd08.prod.outlook.com (2603:10a6:10:3f0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.27; Mon, 27 Nov 2023 22:49:48 +0000 Received: from AM4PEPF00027A62.eurprd04.prod.outlook.com (2603:10a6:208:aa:cafe::92) by AM0PR01CA0150.outlook.office365.com (2603:10a6:208:aa::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.28 via Frontend Transport; Mon, 27 Nov 2023 22:49:48 +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 AM4PEPF00027A62.mail.protection.outlook.com (10.167.16.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.17 via Frontend Transport; Mon, 27 Nov 2023 22:49:48 +0000 Received: ("Tessian outbound e243565b0037:v228"); Mon, 27 Nov 2023 22:49:48 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: fb41457f8d30409d X-CR-MTA-TID: 64aa7808 Received: from 0d9652f9c570.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 906934FC-E5CD-4186-8A5E-1BE5A49C37D4.1; Mon, 27 Nov 2023 22:49:41 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0d9652f9c570.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 27 Nov 2023 22:49:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zl4ZrPq/z1dQd8y32O+kMhr1KQTgtksm/RqFWYYQq5CYgBQLGOMYXMT931kRtWzrbiB8JV1dH8GlUGU7dknImhiIFydvzjWCdAfMjGeNB8uHDdi1R2whmqsaLcctsHV3/sdLK+MId1ULvKlEoP9da37D8aKE4IbZU5aWAjhDUzrNFUDHThWhXOhToPKhjMJJhea8TzB1okF8y5d5Fx2BuDnP/buq3vIhbdsYyVCZ1hKqFX2TAu8gQTFEOH9YlTRUDPfFZHK050zms0IExTSJctOKzg45JpxqG4iYl/wDdLoh9jPi38BGOq/x1Sn0/QolHMHh1RAzmm+rYq4VuneXAA== 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=x2EZeS60tSImMbPmBg8kssJJU5UO4SPmIoTOdYgeeMA=; b=H6EY5xsjEQkIhwYq11g5187ZnQAfOMl4eGT8xPJKoZyAmAtETDsPJOrX3hrAl6rlgc5hH6wiA+KwM2v0+N/B999NS9Z4esY5zGCJvNJb7i1h6DVM2HUnXNhZNeVTM7298xEHgDx7o+Y4bbbts8FY2S1YrqQ2qENiLhj6/GxPhTdUE58g9SY1APtB+iWthhbCzpiN0KikJjkYZWCKvP1HKjYnvfHAOvMFSsdNXrLbFHEM3ENwNXk8/nEeAsf+hl9O7mxVRngYzZAv6C0aVcBbFTfxK+5dP76lqL9/yizkyEtpI8pjXQx+GHPi/mN/4rECvGWeWPaBe1tq2x0415DJtg== 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=x2EZeS60tSImMbPmBg8kssJJU5UO4SPmIoTOdYgeeMA=; b=eN8X3i1A8WLaNSN14pzqN31x8aLMC/WWktMIv7xFXpdkT5ez6GQKaenY3Fy1m3JiBsKPv26nPQienkwQZsHYhUTbgzW+l2voKalD2jYqLqT46Wto2e71yxbHBIJHw7O/QDfvZ+0B5non/hnji4aCJDPsirJqxIoMPDrjOlQqUl4= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VI0PR08MB10757.eurprd08.prod.outlook.com (2603:10a6:800:1b8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.27; Mon, 27 Nov 2023 22:49:39 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::9679:2ab0:99c6:54a3]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::9679:2ab0:99c6:54a3%6]) with mapi id 15.20.7025.022; Mon, 27 Nov 2023 22:49:39 +0000 From: Tamar Christina To: Tamar Christina , "gcc-patches@gcc.gnu.org" CC: nd , "rguenther@suse.de" , "jlaw@ventanamicro.com" Subject: RE: [PATCH 9/21]middle-end: implement vectorizable_early_exit for codegen of exit code Thread-Topic: [PATCH 9/21]middle-end: implement vectorizable_early_exit for codegen of exit code Thread-Index: AQHaEIRpInfkk2iMNkKe/ayk/lXCPbCO5tuw Date: Mon, 27 Nov 2023 22:49:39 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|VI0PR08MB10757:EE_|AM4PEPF00027A62:EE_|DB4PR08MB9863:EE_ X-MS-Office365-Filtering-Correlation-Id: 2848f5c8-48cc-4ede-82a3-08dbef9b28ac 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: wKeJRYJ5F9pRATeMjtEJLwtpVweO0rJ90o+rse8QG84Pt1NbRYf1zXxHW8IpMywp1pj6EX4Gpe7fWT+JAnxezYsyvEimBFNqlYTHhpaDLn6cNMM+C/iWCyMoJ4K9/UT1LJ2EunPmU69r8jyjF+uczK+rgRjugDlYazfKX7oIq5hZApQCLYtDQiu/x39rVLhJPTmWyLwhfZawiZsaYvDFs+Xn+hpR0Nr57hQ5jSQ/Qy/qMrWbwnFGgVLXU4SSlvFyioin096i8MPWJdYT0MkVCLiVNHZnqfzm0aQY/twJagzWsFHtNo2eMXqgTHIvHOoOiAtckSSi7MdQsrgSTjVLUbHsLwtSxx6q5qqllxLYGMDMX7+vCXgqtC16ALt+nc96Z/ehiozF8ac+sBOaDCG6e3zDRuMkpexdp6DAEhLPU0m3FoGO2T4+mnY8OYI8X9VSp5gJxLdGdSvTAQ+nqY58pOs3TKWA9DxQm1Fnnd2CGL8WtjTxOpV8sPquG0HI43isrPUY3ndfn71dM7hp+g3lmrW3ZiocyoGFu2RjS0ObgVx+XDh1GuDRoZn3ylGUgFo+CzDVcxdKY1bullJoWWTrvq3ZHXkD6KkZ0gB7u5rbumA194OlFxvFEXo6fOENE/6P 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:(13230031)(346002)(376002)(136003)(396003)(366004)(39860400002)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(83380400001)(38100700002)(86362001)(122000001)(4743002)(66946007)(55016003)(52536014)(71200400001)(7696005)(6506007)(9686003)(8936002)(4326008)(316002)(110136005)(66556008)(76116006)(66446008)(64756008)(54906003)(66476007)(53546011)(5660300002)(8676002)(478600001)(33656002)(41300700001)(2906002)(38070700009)(26005);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10757 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: AM4PEPF00027A62.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 990ae5f6-4c34-4ae1-15aa-08dbef9b237c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JkI4ZTJ9Wt2gHDUVFLdapbHhuwfhXUa4W2PKdw+Ex2uasSV3gbLjZ9+2VxVwBlvMLDiauPSIju55kyx5gQ0VU+2lLRRzlvqtqsl7d5p0eTRqnakeultuqK29iq8XRteYY8Wx61OdNElN50vjbn/bLbsGGmVcJNKDNpEuTxoiXYZFVWoWn+BC3cJ0wzVvC31KvU03Lp+ex8nUEAke5qePXH2YLGw4K1KnygbiPUdZc8RIO2SnqBaI5pty9mat4byKq2CPans8fyCTx+q3J/iqERlElPh0UDvXAuulx3uFZvFXhjA6AEvr4164zQaBiHJB421gshB+UpQ2fzScw7YjnpUoFJGXVuMhRDd777f6v6pr/Tgh8FrQ2R8tF+8AYjk9TCCfIJM/oSSBYOlAhjOv1bpsNn0rw9vJsNALqBkj9BVxEEW0RlqCVJt7G46/6r6AzqYnE2ogVzba5K5COMyPK1qhgMndMgVSn0YQ38+oKVZyy2p6LjDY/Igqn3pkC0VAmw/7O0b3gwSv88l3FuNol1p4iQI/XX5mpxMqQJaw/FipF5SWtSc35jr/xdvrtBQ1GlHD1oJFr9jWI23fTaAlBoctmoJFOgynRyDxrwcsJreHaeaSMOB77AZadZrw3mHKaSqGYlmPPb4Pi/9eMb3Cf5c/UmO7vBdZ8PZFAgAZulj/028oGz2Mxg0yc0wV95yecQ3amUlRvCsIdXIHrmA+3lIOix0IlVXFRyPHWjchhqqTAduda2Wiwh4ZsX88gkbx 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:(13230031)(4636009)(39850400004)(136003)(346002)(376002)(396003)(230922051799003)(82310400011)(1800799012)(186009)(64100799003)(451199024)(46966006)(40470700004)(36840700001)(41300700001)(86362001)(33656002)(81166007)(47076005)(356005)(55016003)(30864003)(83380400001)(4743002)(5660300002)(82740400003)(336012)(36860700001)(26005)(107886003)(40480700001)(2906002)(9686003)(53546011)(7696005)(6506007)(52536014)(8676002)(4326008)(8936002)(40460700003)(478600001)(70206006)(70586007)(54906003)(110136005)(316002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2023 22:49:48.3795 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2848f5c8-48cc-4ede-82a3-08dbef9b28ac 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: AM4PEPF00027A62.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9863 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,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+IFNlbnQ6IE1vbmRheSwgTm92ZW1iZXIg NiwgMjAyMyA3OjQwIEFNDQo+IFRvOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiBDYzogbmQg PG5kQGFybS5jb20+OyByZ3VlbnRoZXJAc3VzZS5kZTsgamxhd0B2ZW50YW5hbWljcm8uY29tDQo+ IFN1YmplY3Q6IFtQQVRDSCA5LzIxXW1pZGRsZS1lbmQ6IGltcGxlbWVudCB2ZWN0b3JpemFibGVf ZWFybHlfZXhpdCBmb3INCj4gY29kZWdlbiBvZiBleGl0IGNvZGUNCj4gDQo+IEhpIEFsbCwNCj4g DQo+IFRoaXMgaW1wbGVtZW50cyB2ZWN0b3JhYmxlX2Vhcmx5X2V4aXQgd2hpY2ggaXMgdXNlZCBh cyB0aGUgY29kZWdlbiBwYXJ0IG9mDQo+IHZlY3Rvcml6aW5nIGEgZ2NvbmQuDQo+IA0KPiBGb3Ig dGhlIG1vc3QgcGFydCBpdCBzaGFyZXMgdGhlIG1ham9yaXR5IG9mIHRoZSBjb2RlIHdpdGgNCj4g dmVjdG9yaXphYmxlX2NvbXBhcmlzb24gd2l0aCBhZGRpdGlvbiB0aGF0IGl0IG5lZWRzIHRvIGJl IGFibGUgdG8gcmVkdWNlDQo+IG11bHRpcGxlIHJlc3VsdGluZyBzdGF0ZW1lbnRzIGludG8gYSBz aW5nbGUgb25lIGZvciB1c2UgaW4gdGhlIGdjb25kLCBhbmQgYWxzbw0KPiBuZWVkcyB0byBiZSBh YmxlIHRvIHBlcmZvcm0gbWFza2luZyBvbiB0aGUgY29tcGFyaXNvbnMuDQo+IA0KPiBCb290c3Ry YXBwZWQgUmVndGVzdGVkIG9uIGFhcmNoNjQtbm9uZS1saW51eC1nbnUgYW5kIG5vIGlzc3Vlcy4N Cj4gDQo+IE9rIGZvciBtYXN0ZXI/DQo+IA0KPiBUaGFua3MsDQo+IFRhbWFyDQo+IA0KPiBnY2Mv Q2hhbmdlTG9nOg0KPiANCj4gCSogdHJlZS12ZWN0LXN0bXRzLmNjICh2ZWN0b3JpemFibGVfY29t cGFyaXNvbl8xKTogU3VwcG9ydCBzdG10cw0KPiB3aXRob3V0DQo+IAlsaHMuDQo+IAkodmVjdG9y aXphYmxlX2Vhcmx5X2V4aXQpOiBOZXcuDQo+IAkodmVjdF9hbmFseXplX3N0bXQsIHZlY3RfdHJh bnNmb3JtX3N0bXQpOiBVc2UgaXQuDQo+IAkodmVjdF9pc19zaW1wbGVfdXNlLCB2ZWN0X2dldF92 ZWN0b3JfdHlwZXNfZm9yX3N0bXQpOiBTdXBwb3J0DQo+IGdjb25kLg0KPiANCj4gLS0tIGlubGlu ZSBjb3B5IG9mIHBhdGNoIC0tDQo+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0LXN0bXRzLmNj IGIvZ2NjL3RyZWUtdmVjdC1zdG10cy5jYyBpbmRleA0KPiAzNmFlY2E2MGEyMmNmYWVhOGQzYjQz MzQ4MDAwZDc1ZGUxZDUyNWM3Li40ODA5YjgyMjYzMjI3OTQ5M2E4NA0KPiAzZDQwMmE4MzNjOTI2 N2JiMzE1ZSAxMDA2NDQNCj4gLS0tIGEvZ2NjL3RyZWUtdmVjdC1zdG10cy5jYw0KPiArKysgYi9n Y2MvdHJlZS12ZWN0LXN0bXRzLmNjDQo+IEBAIC0xMjQ3NSw3ICsxMjQ3NSw3IEBAIHZlY3Rvcml6 YWJsZV9jb21wYXJpc29uXzEgKHZlY19pbmZvICp2aW5mbywNCj4gdHJlZSB2ZWN0eXBlLA0KPiAg ICB2ZWM8dHJlZT4gdmVjX29wcm5kczAgPSB2TlVMTDsNCj4gICAgdmVjPHRyZWU+IHZlY19vcHJu ZHMxID0gdk5VTEw7DQo+ICAgIHRyZWUgbWFza190eXBlOw0KPiAtICB0cmVlIG1hc2s7DQo+ICsg IHRyZWUgbWFzayA9IE5VTExfVFJFRTsNCj4gDQo+ICAgIGlmICghU1RNVF9WSU5GT19SRUxFVkFO VF9QIChzdG10X2luZm8pICYmICFiYl92aW5mbykNCj4gICAgICByZXR1cm4gZmFsc2U7DQo+IEBA IC0xMjYxNSw4ICsxMjYxNSw5IEBAIHZlY3Rvcml6YWJsZV9jb21wYXJpc29uXzEgKHZlY19pbmZv ICp2aW5mbywNCj4gdHJlZSB2ZWN0eXBlLA0KPiAgICAvKiBUcmFuc2Zvcm0uICAqLw0KPiANCj4g ICAgLyogSGFuZGxlIGRlZi4gICovDQo+IC0gIGxocyA9IGdpbXBsZV9hc3NpZ25fbGhzIChTVE1U X1ZJTkZPX1NUTVQgKHN0bXRfaW5mbykpOw0KPiAtICBtYXNrID0gdmVjdF9jcmVhdGVfZGVzdGlu YXRpb25fdmFyIChsaHMsIG1hc2tfdHlwZSk7DQo+ICsgIGxocyA9IGdpbXBsZV9nZXRfbGhzIChT VE1UX1ZJTkZPX1NUTVQgKHN0bXRfaW5mbykpOyAgaWYgKGxocykNCj4gKyAgICBtYXNrID0gdmVj dF9jcmVhdGVfZGVzdGluYXRpb25fdmFyIChsaHMsIG1hc2tfdHlwZSk7DQo+IA0KPiAgICB2ZWN0 X2dldF92ZWNfZGVmcyAodmluZm8sIHN0bXRfaW5mbywgc2xwX25vZGUsIG5jb3BpZXMsDQo+ICAJ CSAgICAgcmhzMSwgJnZlY19vcHJuZHMwLCB2ZWN0eXBlLA0KPiBAQCAtMTI2MzAsNyArMTI2MzEs MTAgQEAgdmVjdG9yaXphYmxlX2NvbXBhcmlzb25fMSAodmVjX2luZm8gKnZpbmZvLA0KPiB0cmVl IHZlY3R5cGUsDQo+ICAgICAgICBnaW1wbGUgKm5ld19zdG10Ow0KPiAgICAgICAgdmVjX3JoczIg PSB2ZWNfb3BybmRzMVtpXTsNCj4gDQo+IC0gICAgICBuZXdfdGVtcCA9IG1ha2Vfc3NhX25hbWUg KG1hc2spOw0KPiArICAgICAgaWYgKGxocykNCj4gKwluZXdfdGVtcCA9IG1ha2Vfc3NhX25hbWUg KG1hc2spOw0KPiArICAgICAgZWxzZQ0KPiArCW5ld190ZW1wID0gbWFrZV90ZW1wX3NzYV9uYW1l IChtYXNrX3R5cGUsIE5VTEwsICJjbXAiKTsNCj4gICAgICAgIGlmIChiaXRvcDEgPT0gTk9QX0VY UFIpDQo+ICAJew0KPiAgCSAgbmV3X3N0bXQgPSBnaW1wbGVfYnVpbGRfYXNzaWduIChuZXdfdGVt cCwgY29kZSwgQEAgLTEyNzA5LDYNCj4gKzEyNzEzLDE5NiBAQCB2ZWN0b3JpemFibGVfY29tcGFy aXNvbiAodmVjX2luZm8gKnZpbmZvLA0KPiAgICByZXR1cm4gdHJ1ZTsNCj4gIH0NCj4gDQo+ICsv KiBDaGVjayB0byBzZWUgaWYgdGhlIGN1cnJlbnQgZWFybHkgYnJlYWsgZ2l2ZW4gaW4gU1RNVF9J TkZPIGlzIHZhbGlkIGZvcg0KPiArICAgdmVjdG9yaXphdGlvbi4gICovDQo+ICsNCj4gK3N0YXRp YyBib29sDQo+ICt2ZWN0b3JpemFibGVfZWFybHlfZXhpdCAodmVjX2luZm8gKnZpbmZvLCBzdG10 X3ZlY19pbmZvIHN0bXRfaW5mbywNCj4gKwkJCSBnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpLCBn aW1wbGUgKip2ZWNfc3RtdCwNCj4gKwkJCSBzbHBfdHJlZSBzbHBfbm9kZSwgc3RtdF92ZWN0b3Jf Zm9yX2Nvc3QgKmNvc3RfdmVjKSB7DQo+ICsgIGxvb3BfdmVjX2luZm8gbG9vcF92aW5mbyA9IGR5 bl9jYXN0IDxsb29wX3ZlY19pbmZvPiAodmluZm8pOw0KPiArICBpZiAoIWxvb3BfdmluZm8NCj4g KyAgICAgIHx8ICFpc19hIDxnY29uZCAqPiAoU1RNVF9WSU5GT19TVE1UIChzdG10X2luZm8pKSkN Cj4gKyAgICByZXR1cm4gZmFsc2U7DQo+ICsNCj4gKyAgaWYgKFNUTVRfVklORk9fREVGX1RZUEUg KHN0bXRfaW5mbykgIT0gdmVjdF9lYXJseV9leGl0X2RlZikNCj4gKyAgICByZXR1cm4gZmFsc2U7 DQo+ICsNCj4gKyAgaWYgKCFTVE1UX1ZJTkZPX1JFTEVWQU5UX1AgKHN0bXRfaW5mbykpDQo+ICsg ICAgcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsgIGdpbXBsZV9tYXRjaF9vcCBvcDsNCj4gKyAgaWYg KCFnaW1wbGVfZXh0cmFjdF9vcCAoc3RtdF9pbmZvLT5zdG10LCAmb3ApKQ0KPiArICAgIGdjY191 bnJlYWNoYWJsZSAoKTsNCj4gKyAgZ2NjX2Fzc2VydCAob3AuY29kZS5pc190cmVlX2NvZGUgKCkp OyAgYXV0byBjb2RlID0gdHJlZV9jb2RlDQo+ICsgKG9wLmNvZGUpOw0KPiArDQo+ICsgIHRyZWUg dmVjdHlwZV9vdXQgPSBTVE1UX1ZJTkZPX1ZFQ1RZUEUgKHN0bXRfaW5mbyk7ICBnY2NfYXNzZXJ0 DQo+ICsgKHZlY3R5cGVfb3V0KTsNCj4gKw0KPiArICB0cmVlIHZhcl9vcCA9IG9wLm9wc1swXTsN Cj4gKw0KPiArICAvKiBXaGVuIHZlY3Rvcml6aW5nIHRoaW5ncyBsaWtlIHBvaW50ZXIgY29tcGFy aXNvbnMgd2Ugd2lsbCBhc3N1bWUgdGhhdA0KPiArICAgICB0aGUgVkYgb2YgYm90aCBvcGVyYW5k cyBhcmUgdGhlIHNhbWUuIGUuZy4gYSBwb2ludGVyIG11c3QgYmUgY29tcGFyZWQNCj4gKyAgICAg dG8gYSBwb2ludGVyLiAgV2UnbGwgbGVhdmUgdGhpcyB1cCB0byB2ZWN0b3JpemFibGVfY29tcGFy aXNvbl8xIHRvDQo+ICsgICAgIGNoZWNrIGZ1cnRoZXIuICAqLw0KPiArICB0cmVlIHZlY3R5cGVf b3AgPSB2ZWN0eXBlX291dDsNCj4gKyAgaWYgKFNTQV9WQVJfUCAodmFyX29wKSkNCj4gKyAgICB7 DQo+ICsgICAgICBzdG10X3ZlY19pbmZvIG9wZXJhbmQwX2luZm8NCj4gKwk9IGxvb3BfdmluZm8t Pmxvb2t1cF9zdG10IChTU0FfTkFNRV9ERUZfU1RNVCAodmFyX29wKSk7DQo+ICsgICAgICBpZiAo IW9wZXJhbmQwX2luZm8pDQo+ICsJcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsgICAgICAvKiBJZiB3 ZSdyZSBpbiBhIHBhdHRlcm4gZ2V0IHRoZSB0eXBlIG9mIHRoZSBvcmlnaW5hbCBzdGF0ZW1lbnQu ICAqLw0KPiArICAgICAgaWYgKFNUTVRfVklORk9fSU5fUEFUVEVSTl9QIChvcGVyYW5kMF9pbmZv KSkNCj4gKwlvcGVyYW5kMF9pbmZvID0gU1RNVF9WSU5GT19SRUxBVEVEX1NUTVQgKG9wZXJhbmQw X2luZm8pOw0KPiArICAgICAgdmVjdHlwZV9vcCA9IFNUTVRfVklORk9fVkVDVFlQRSAob3BlcmFu ZDBfaW5mbyk7DQo+ICsgICAgfQ0KPiArDQo+ICsgIHRyZWUgdHJ1dGhfdHlwZSA9IHRydXRoX3R5 cGVfZm9yICh2ZWN0eXBlX29wKTsgIG1hY2hpbmVfbW9kZSBtb2RlID0NCj4gKyBUWVBFX01PREUg KHRydXRoX3R5cGUpOyAgaW50IG5jb3BpZXM7DQo+ICsNCj4gKyAgaWYgKHNscF9ub2RlKQ0KPiAr ICAgIG5jb3BpZXMgPSAxOw0KPiArICBlbHNlDQo+ICsgICAgbmNvcGllcyA9IHZlY3RfZ2V0X251 bV9jb3BpZXMgKGxvb3BfdmluZm8sIHRydXRoX3R5cGUpOw0KPiArDQo+ICsgIHZlY19sb29wX21h c2tzICptYXNrcyA9ICZMT09QX1ZJTkZPX01BU0tTIChsb29wX3ZpbmZvKTsgIGJvb2wNCj4gKyBt YXNrZWRfbG9vcF9wID0gTE9PUF9WSU5GT19GVUxMWV9NQVNLRURfUCAobG9vcF92aW5mbyk7DQo+ ICsNCj4gKyAgLyogQW5hbHl6ZSBvbmx5LiAgKi8NCj4gKyAgaWYgKCF2ZWNfc3RtdCkNCj4gKyAg ICB7DQo+ICsgICAgICBpZiAoZGlyZWN0X29wdGFiX2hhbmRsZXIgKGNicmFuY2hfb3B0YWIsIG1v ZGUpID09IENPREVfRk9SX25vdGhpbmcpDQo+ICsJew0KPiArCSAgaWYgKGR1bXBfZW5hYmxlZF9w ICgpKQ0KPiArCSAgICAgIGR1bXBfcHJpbnRmX2xvYyAoTVNHX01JU1NFRF9PUFRJTUlaQVRJT04s IHZlY3RfbG9jYXRpb24sDQo+ICsJCQkgICAgICAgImNhbid0IHZlY3Rvcml6ZSBlYXJseSBleGl0 IGJlY2F1c2UgdGhlICINCj4gKwkJCSAgICAgICAidGFyZ2V0IGRvZXNuJ3Qgc3VwcG9ydCBmbGFn IHNldHRpbmcgdmVjdG9yICINCj4gKwkJCSAgICAgICAiY29tcGFyaXNvbnMuXG4iKTsNCj4gKwkg IHJldHVybiBmYWxzZTsNCj4gKwl9DQo+ICsNCj4gKyAgICAgIGlmICghZXhwYW5kX3ZlY19jbXBf ZXhwcl9wICh2ZWN0eXBlX29wLCB0cnV0aF90eXBlLCBORV9FWFBSKSkNCj4gKwl7DQo+ICsJICBp ZiAoZHVtcF9lbmFibGVkX3AgKCkpDQo+ICsJICAgICAgZHVtcF9wcmludGZfbG9jIChNU0dfTUlT U0VEX09QVElNSVpBVElPTiwgdmVjdF9sb2NhdGlvbiwNCj4gKwkJCSAgICAgICAiY2FuJ3QgdmVj dG9yaXplIGVhcmx5IGV4aXQgYmVjYXVzZSB0aGUgIg0KPiArCQkJICAgICAgICJ0YXJnZXQgZG9l cyBub3Qgc3VwcG9ydCBib29sZWFuIHZlY3RvciAiDQo+ICsJCQkgICAgICAgImNvbXBhcmlzb25z IGZvciB0eXBlICVULlxuIiwgdHJ1dGhfdHlwZSk7DQo+ICsJICByZXR1cm4gZmFsc2U7DQo+ICsJ fQ0KPiArDQo+ICsgICAgICBpZiAobmNvcGllcyA+IDENCj4gKwkgICYmIGRpcmVjdF9vcHRhYl9o YW5kbGVyIChpb3Jfb3B0YWIsIG1vZGUpID09IENPREVfRk9SX25vdGhpbmcpDQo+ICsJew0KPiAr CSAgaWYgKGR1bXBfZW5hYmxlZF9wICgpKQ0KPiArCSAgICAgIGR1bXBfcHJpbnRmX2xvYyAoTVNH X01JU1NFRF9PUFRJTUlaQVRJT04sIHZlY3RfbG9jYXRpb24sDQo+ICsJCQkgICAgICAgImNhbid0 IHZlY3Rvcml6ZSBlYXJseSBleGl0IGJlY2F1c2UgdGhlICINCj4gKwkJCSAgICAgICAidGFyZ2V0 IGRvZXMgbm90IHN1cHBvcnQgYm9vbGVhbiB2ZWN0b3IgT1IgZm9yICINCj4gKwkJCSAgICAgICAi dHlwZSAlVC5cbiIsIHRydXRoX3R5cGUpOw0KPiArCSAgcmV0dXJuIGZhbHNlOw0KPiArCX0NCj4g Kw0KPiArICAgICAgaWYgKCF2ZWN0b3JpemFibGVfY29tcGFyaXNvbl8xICh2aW5mbywgdHJ1dGhf dHlwZSwgc3RtdF9pbmZvLCBjb2RlLCBnc2ksDQo+ICsJCQkJICAgICAgdmVjX3N0bXQsIHNscF9u b2RlLCBjb3N0X3ZlYykpDQo+ICsJcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsgICAgICBpZiAoTE9P UF9WSU5GT19DQU5fVVNFX1BBUlRJQUxfVkVDVE9SU19QIChsb29wX3ZpbmZvKSkNCj4gKwl2ZWN0 X3JlY29yZF9sb29wX21hc2sgKGxvb3BfdmluZm8sIG1hc2tzLCBuY29waWVzLCB0cnV0aF90eXBl LA0KPiBOVUxMKTsNCj4gKw0KPiArICAgICAgcmV0dXJuIHRydWU7DQo+ICsgICAgfQ0KPiArDQo+ ICsgIC8qIFRyYW5mb3JtLiAgKi8NCj4gKw0KPiArICB0cmVlIG5ld190ZW1wID0gTlVMTF9UUkVF Ow0KPiArICBnaW1wbGUgKm5ld19zdG10ID0gTlVMTDsNCj4gKw0KPiArICBpZiAoZHVtcF9lbmFi bGVkX3AgKCkpDQo+ICsgICAgZHVtcF9wcmludGZfbG9jIChNU0dfTk9URSwgdmVjdF9sb2NhdGlv biwgInRyYW5zZm9ybQ0KPiArIGVhcmx5LWV4aXQuXG4iKTsNCj4gKw0KPiArICBpZiAoIXZlY3Rv cml6YWJsZV9jb21wYXJpc29uXzEgKHZpbmZvLCB0cnV0aF90eXBlLCBzdG10X2luZm8sIGNvZGUs IGdzaSwNCj4gKwkJCQkgIHZlY19zdG10LCBzbHBfbm9kZSwgY29zdF92ZWMpKQ0KPiArICAgIGdj Y191bnJlYWNoYWJsZSAoKTsNCj4gKw0KPiArICBnaW1wbGUgKnN0bXQgPSBTVE1UX1ZJTkZPX1NU TVQgKHN0bXRfaW5mbyk7ICBiYXNpY19ibG9jayBjb25kX2JiID0NCj4gKyBnaW1wbGVfYmIgKHN0 bXQpOyAgZ2ltcGxlX3N0bXRfaXRlcmF0b3IgIGNvbmRfZ3NpID0gZ3NpX2xhc3RfYmINCj4gKyAo Y29uZF9iYik7DQo+ICsNCj4gKyAgdmVjPHRyZWU+IHN0bXRzOw0KPiArDQo+ICsgIGlmIChzbHBf bm9kZSkNCj4gKyAgICBzdG10cyA9IFNMUF9UUkVFX1ZFQ19ERUZTIChzbHBfbm9kZSk7DQo+ICsg IGVsc2UNCj4gKyAgICB7DQo+ICsgICAgICBhdXRvIHZlY19zdG10cyA9IFNUTVRfVklORk9fVkVD X1NUTVRTIChzdG10X2luZm8pOw0KPiArICAgICAgc3RtdHMuY3JlYXRlICh2ZWNfc3RtdHMubGVu Z3RoICgpKTsNCj4gKyAgICAgIGZvciAoYXV0byBzdG10IDogdmVjX3N0bXRzKQ0KPiArCXN0bXRz LnF1aWNrX3B1c2ggKGdpbXBsZV9hc3NpZ25fbGhzIChzdG10KSk7DQo+ICsgICAgfQ0KPiArDQo+ ICsgIC8qIERldGVybWluZSBpZiB3ZSBuZWVkIHRvIHJlZHVjZSB0aGUgZmluYWwgdmFsdWUuICAq Lw0KPiArICBpZiAoc3RtdHMubGVuZ3RoICgpID4gMSkNCj4gKyAgICB7DQo+ICsgICAgICAvKiBX ZSBidWlsZCB0aGUgcmVkdWN0aW9ucyBpbiBhIHdheSB0byBtYWludGFpbiBhcyBtdWNoIHBhcmFs bGVsaXNtIGFzDQo+ICsJIHBvc3NpYmxlLiAgKi8NCj4gKyAgICAgIGF1dG9fdmVjPHRyZWU+IHdv cmtzZXQgKHN0bXRzLmxlbmd0aCAoKSk7DQo+ICsgICAgICB3b3Jrc2V0LnNwbGljZSAoc3RtdHMp Ow0KPiArICAgICAgd2hpbGUgKHdvcmtzZXQubGVuZ3RoICgpID4gMSkNCj4gKwl7DQo+ICsJICBu ZXdfdGVtcCA9IG1ha2VfdGVtcF9zc2FfbmFtZSAodHJ1dGhfdHlwZSwgTlVMTCwNCj4gInZleGl0 X3JlZHVjIik7DQo+ICsJICB0cmVlIGFyZzAgPSB3b3Jrc2V0LnBvcCAoKTsNCj4gKwkgIHRyZWUg YXJnMSA9IHdvcmtzZXQucG9wICgpOw0KPiArCSAgbmV3X3N0bXQgPSBnaW1wbGVfYnVpbGRfYXNz aWduIChuZXdfdGVtcCwgQklUX0lPUl9FWFBSLCBhcmcwLA0KPiBhcmcxKTsNCj4gKwkgIHZlY3Rf ZmluaXNoX3N0bXRfZ2VuZXJhdGlvbiAobG9vcF92aW5mbywgc3RtdF9pbmZvLCBuZXdfc3RtdCwN Cj4gKwkJCQkgICAgICAgJmNvbmRfZ3NpKTsNCj4gKwkgIGlmIChzbHBfbm9kZSkNCj4gKwkgICAg c2xwX25vZGUtPnB1c2hfdmVjX2RlZiAobmV3X3N0bXQpOw0KPiArCSAgZWxzZQ0KPiArCSAgICBT VE1UX1ZJTkZPX1ZFQ19TVE1UUyAoc3RtdF9pbmZvKS5zYWZlX3B1c2ggKG5ld19zdG10KTsNCj4g KwkgIHdvcmtzZXQucXVpY2tfaW5zZXJ0ICgwLCBuZXdfdGVtcCk7DQo+ICsJfQ0KPiArICAgIH0N Cj4gKyAgZWxzZQ0KPiArICAgIG5ld190ZW1wID0gc3RtdHNbMF07DQo+ICsNCj4gKyAgZ2NjX2Fz c2VydCAobmV3X3RlbXApOw0KPiArDQo+ICsgIHRyZWUgY29uZCA9IG5ld190ZW1wOw0KPiArICBp ZiAobWFza2VkX2xvb3BfcCkNCj4gKyAgICB7DQo+ICsgICAgICB0cmVlIG1hc2sgPSB2ZWN0X2dl dF9sb29wX21hc2sgKGxvb3BfdmluZm8sIGdzaSwgbWFza3MsIG5jb3BpZXMsDQo+IHRydXRoX3R5 cGUsIDApOw0KPiArICAgICAgY29uZCA9IHByZXBhcmVfdmVjX21hc2sgKGxvb3BfdmluZm8sIFRS RUVfVFlQRSAobWFzayksIG1hc2ssIGNvbmQsDQo+ICsJCQkgICAgICAgJmNvbmRfZ3NpKTsNCj4g KyAgICB9DQo+ICsNCj4gKyAgLyogTm93IGJ1aWxkIHRoZSBuZXcgY29uZGl0aW9uYWwuICBQYXR0 ZXJuIGdpbXBsZV9jb25kcyBnZXQgZHJvcHBlZA0KPiBkdXJpbmcNCj4gKyAgICAgY29kZWdlbiBz byB3ZSBtdXN0IHJlcGxhY2UgdGhlIG9yaWdpbmFsIGluc24uICAqLyAgaWYNCj4gKyAoaXNfcGF0 dGVybl9zdG10X3AgKHN0bXRfaW5mbykpDQo+ICsgICAgc3RtdCA9IFNUTVRfVklORk9fU1RNVCAo U1RNVF9WSU5GT19SRUxBVEVEX1NUTVQgKHN0bXRfaW5mbykpOw0KPiArDQo+ICsgIHRyZWUgdCA9 IGZvbGRfYnVpbGQyIChORV9FWFBSLCBib29sZWFuX3R5cGVfbm9kZSwgY29uZCwNCj4gKwkJCWJ1 aWxkX3plcm9fY3N0ICh0cnV0aF90eXBlKSk7DQo+ICsgIHQgPSBjYW5vbmljYWxpemVfY29uZF9l eHByX2NvbmQgKHQpOw0KPiArICBnaW1wbGVfY29uZF9zZXRfY29uZGl0aW9uX2Zyb21fdHJlZSAo KGdjb25kKilzdG10LCB0KTsNCj4gKyAgdXBkYXRlX3N0bXQgKHN0bXQpOw0KPiArDQo+ICsgIGlm IChzbHBfbm9kZSkNCj4gKyAgICBzbHBfbm9kZS0+cHVzaF92ZWNfZGVmIChzdG10KTsNCj4gKyAg IGVsc2UNCj4gKyAgICBTVE1UX1ZJTkZPX1ZFQ19TVE1UUyAoc3RtdF9pbmZvKS5zYWZlX3B1c2gg KHN0bXQpOw0KPiArDQo+ICsNCj4gKyAgaWYgKCFzbHBfbm9kZSkNCj4gKyAgICAqdmVjX3N0bXQg PSBzdG10Ow0KPiArDQo+ICsgIHJldHVybiB0cnVlOw0KPiArfQ0KPiArDQo+ICAvKiBJZiBTTFBf Tk9ERSBpcyBub25udWxsLCByZXR1cm4gdHJ1ZSBpZiB2ZWN0b3JpemFibGVfbGl2ZV9vcGVyYXRp b24NCj4gICAgIGNhbiBoYW5kbGUgYWxsIGxpdmUgc3RhdGVtZW50cyBpbiB0aGUgbm9kZS4gIE90 aGVyd2lzZSByZXR1cm4gdHJ1ZQ0KPiAgICAgaWYgU1RNVF9JTkZPIGlzIG5vdCBsaXZlIG9yIGlm IHZlY3Rvcml6YWJsZV9saXZlX29wZXJhdGlvbiBjYW4gaGFuZGxlIGl0Lg0KPiBAQCAtMTI5Mjgs NyArMTMxMjIsOSBAQCB2ZWN0X2FuYWx5emVfc3RtdCAodmVjX2luZm8gKnZpbmZvLA0KPiAgCSAg fHwgdmVjdG9yaXphYmxlX2xjX3BoaSAoYXNfYSA8bG9vcF92ZWNfaW5mbz4gKHZpbmZvKSwNCj4g IAkJCQkgIHN0bXRfaW5mbywgTlVMTCwgbm9kZSkNCj4gIAkgIHx8IHZlY3Rvcml6YWJsZV9yZWN1 cnIgKGFzX2EgPGxvb3BfdmVjX2luZm8+ICh2aW5mbyksDQo+IC0JCQkJICAgc3RtdF9pbmZvLCBO VUxMLCBub2RlLCBjb3N0X3ZlYykpOw0KPiArCQkJCSAgIHN0bXRfaW5mbywgTlVMTCwgbm9kZSwg Y29zdF92ZWMpDQo+ICsJICB8fCB2ZWN0b3JpemFibGVfZWFybHlfZXhpdCAodmluZm8sIHN0bXRf aW5mbywgTlVMTCwgTlVMTCwgbm9kZSwNCj4gKwkJCQkgICAgICBjb3N0X3ZlYykpOw0KPiAgICBl bHNlDQo+ICAgICAgew0KPiAgICAgICAgaWYgKGJiX3ZpbmZvKQ0KPiBAQCAtMTI5NTEsNyArMTMx NDcsMTAgQEAgdmVjdF9hbmFseXplX3N0bXQgKHZlY19pbmZvICp2aW5mbywNCj4gIAkJCQkJIE5V TEwsIE5VTEwsIG5vZGUsIGNvc3RfdmVjKQ0KPiAgCSAgICAgIHx8IHZlY3Rvcml6YWJsZV9jb21w YXJpc29uICh2aW5mbywgc3RtdF9pbmZvLCBOVUxMLCBOVUxMLCBub2RlLA0KPiAgCQkJCQkgIGNv c3RfdmVjKQ0KPiAtCSAgICAgIHx8IHZlY3Rvcml6YWJsZV9waGkgKHZpbmZvLCBzdG10X2luZm8s IE5VTEwsIG5vZGUsIGNvc3RfdmVjKSk7DQo+ICsJICAgICAgfHwgdmVjdG9yaXphYmxlX3BoaSAo dmluZm8sIHN0bXRfaW5mbywgTlVMTCwgbm9kZSwgY29zdF92ZWMpDQo+ICsJICAgICAgfHwgdmVj dG9yaXphYmxlX2Vhcmx5X2V4aXQgKHZpbmZvLCBzdG10X2luZm8sIE5VTEwsIE5VTEwsIG5vZGUs DQo+ICsJCQkJCSAgY29zdF92ZWMpKTsNCj4gKw0KPiAgICAgIH0NCj4gDQo+ICAgIGlmIChub2Rl KQ0KPiBAQCAtMTMxMTAsNiArMTMzMDksMTIgQEAgdmVjdF90cmFuc2Zvcm1fc3RtdCAodmVjX2lu Zm8gKnZpbmZvLA0KPiAgICAgICAgZ2NjX2Fzc2VydCAoZG9uZSk7DQo+ICAgICAgICBicmVhazsN Cj4gDQo+ICsgICAgY2FzZSBsb29wX2V4aXRfY3RybF92ZWNfaW5mb190eXBlOg0KPiArICAgICAg ZG9uZSA9IHZlY3Rvcml6YWJsZV9lYXJseV9leGl0ICh2aW5mbywgc3RtdF9pbmZvLCBnc2ksICZ2 ZWNfc3RtdCwNCj4gKwkJCQkgICAgICBzbHBfbm9kZSwgTlVMTCk7DQo+ICsgICAgICBnY2NfYXNz ZXJ0IChkb25lKTsNCj4gKyAgICAgIGJyZWFrOw0KPiArDQo+ICAgICAgZGVmYXVsdDoNCj4gICAg ICAgIGlmICghU1RNVF9WSU5GT19MSVZFX1AgKHN0bXRfaW5mbykpDQo+ICAJew0KPiBAQCAtMTM1 MTEsNyArMTM3MTYsNyBAQCB2ZWN0X2lzX3NpbXBsZV91c2UgKHRyZWUgb3BlcmFuZCwgdmVjX2lu Zm8NCj4gKnZpbmZvLCBlbnVtIHZlY3RfZGVmX3R5cGUgKmR0LA0KPiAgCWNhc2UgdmVjdF9maXJz dF9vcmRlcl9yZWN1cnJlbmNlOg0KPiAgCSAgZHVtcF9wcmludGYgKE1TR19OT1RFLCAiZmlyc3Qg b3JkZXIgcmVjdXJyZW5jZVxuIik7DQo+ICAJICBicmVhazsNCj4gLSAgICAgICBjYXNlIHZlY3Rf ZWFybHlfZXhpdF9kZWY6DQo+ICsJY2FzZSB2ZWN0X2Vhcmx5X2V4aXRfZGVmOg0KPiAgCSAgZHVt cF9wcmludGYgKE1TR19OT1RFLCAiZWFybHkgZXhpdFxuIik7DQo+ICAJICBicmVhazsNCj4gIAlj YXNlIHZlY3RfdW5rbm93bl9kZWZfdHlwZToNCj4gDQo+IA0KPiANCj4gDQo+IC0tDQo=