From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 58C06A0C45; Thu, 28 Oct 2021 11:28:06 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D23C34067B; Thu, 28 Oct 2021 11:28:05 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50078.outbound.protection.outlook.com [40.107.5.78]) by mails.dpdk.org (Postfix) with ESMTP id 37FA94003F for ; Thu, 28 Oct 2021 11:28:04 +0200 (CEST) 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=Jsd/8C3WCDJJCjaqyxEnuusKU++DXqIA6aVUdHgRnYw=; b=5JG8V5P8fHBFbgSuVH0sG1sn/hG+stcRcZIz9iZddYUem8gkXJ1fXr3RpqQTf2YwF9O08zJ6Ftd0x9Vtubt/ywPXsGyI+DqQ8v35aZqq/quCqI0P1uYujvtbQXhWzkAjPIfffMMDeeaIKHf4aI/yP1EVetrw9VZQSJl6Rviwh24= Received: from AS9PR0301CA0005.eurprd03.prod.outlook.com (2603:10a6:20b:468::9) by GV1PR08MB7378.eurprd08.prod.outlook.com (2603:10a6:150:22::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Thu, 28 Oct 2021 09:28:02 +0000 Received: from AM5EUR03FT063.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:468:cafe::ad) by AS9PR0301CA0005.outlook.office365.com (2603:10a6:20b:468::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend Transport; Thu, 28 Oct 2021 09:28:02 +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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT063.mail.protection.outlook.com (10.152.16.226) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14 via Frontend Transport; Thu, 28 Oct 2021 09:28:02 +0000 Received: ("Tessian outbound b9598e0ead92:v103"); Thu, 28 Oct 2021 09:28:02 +0000 X-CR-MTA-TID: 64aa7808 Received: from 0119e0e63ad4.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 88E283F1-E196-46E1-91F2-3EC3901F6328.1; Thu, 28 Oct 2021 09:27:51 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0119e0e63ad4.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 28 Oct 2021 09:27:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MlHYdBcP9w3q50AVGz6QZKcJ+Ot4h/27WENfL8Zw5By/gfUiY1nVZtmJCKGXeKHyCsCQDqfRzGWOsjD5FApXS87LXojoP4pf/3TL+Zdl4qlk6fImhjD13OozVq0AHL2NGzEbASP7mRLbow5kLCbnbkI8n5MzyIDrqLeLelWGr5l+v6+R7mvv0mIHSiD1IPwwJzyNlIDstH04l1heGLZ+hhA7n6DL7DanS1rOe45hFcVsFahCNqk1mgvfaQsrfl7b2HD/dqyaG2TQLfNMkRnY9G+xa2t3hfRCeK82g+5dHiWNELJg8Fl7+vSMgQ8JOluTfGcwkID35zNeiFjMf44IjQ== 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=Jsd/8C3WCDJJCjaqyxEnuusKU++DXqIA6aVUdHgRnYw=; b=BIxyTf2FVJDxObVs1fF/GJYzkYsWzWTleWOjhmUFvIm0VYRkVMI9gOZj/NI3kIXM2YoRc73a59cvgthhybJqcTqSBLCcPEodGu6LvbkY9Uv/MRjfdAqywwHvTOSmEyk0XbP1Tx2gKCrYjJip29nkI4fYVlmgHKPWWqsDk+pHjNeEHBZ9STpjZBC9i+Syh+wmJzyH+A7usWKFOmVULnnN7jExh57VdDl9+hMCCBE+A44MwT1TD1c+kCcOv1A5Q2tbV4g9Ub2vIjFnSyKX+SzMQaRMpcRYIaPM9dHie7BY3+P+b7ou5MmX2nngymvO4kWOpmSEGi3Cad7IuBwINZ3STA== 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=Jsd/8C3WCDJJCjaqyxEnuusKU++DXqIA6aVUdHgRnYw=; b=5JG8V5P8fHBFbgSuVH0sG1sn/hG+stcRcZIz9iZddYUem8gkXJ1fXr3RpqQTf2YwF9O08zJ6Ftd0x9Vtubt/ywPXsGyI+DqQ8v35aZqq/quCqI0P1uYujvtbQXhWzkAjPIfffMMDeeaIKHf4aI/yP1EVetrw9VZQSJl6Rviwh24= Received: from DB9PR08MB6923.eurprd08.prod.outlook.com (2603:10a6:10:2ac::6) by DBBPR08MB5547.eurprd08.prod.outlook.com (2603:10a6:10:d2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Thu, 28 Oct 2021 09:27:49 +0000 Received: from DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::705e:f09f:7dd:500a]) by DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::705e:f09f:7dd:500a%6]) with mapi id 15.20.4628.020; Thu, 28 Oct 2021 09:27:49 +0000 From: Feifei Wang To: Jerin Jacob CC: Ruifeng Wang , dpdk-dev , nd , "Ananyev, Konstantin" , Stephen Hemminger , David Marchand , "thomas@monjalon.net" , =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , nd Thread-Topic: [PATCH v7 1/5] eal: add new definitions for wait scheme Thread-Index: AQHXy8vDJ72qPp+5Pk29/mWGQeBpp6voAxwQgAAGa4CAABqMoA== Date: Thu, 28 Oct 2021 09:27:48 +0000 Message-ID: References: <20210902053253.3017858-1-feifei.wang2@arm.com> <20211028065640.139655-1-feifei.wang2@arm.com> <20211028065640.139655-2-feifei.wang2@arm.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 2CBBD8A95403C54EB382C6BC7830D88B.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-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 4be43872-7f23-4e9c-90dc-08d999f53d68 x-ms-traffictypediagnostic: DBBPR08MB5547:|GV1PR08MB7378: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: xA5LjEHG5VEg0cXfKpW/THFlbp7RbrepWmF87NLjm5lCxrXp6ORbHyImjrw0yHVhQNX1O8kxe1fkwiRHO+tLVHga2fSUDihNyna28IdLRqstVZoBgftZBblI+vS8XrFooGkhe+Sbo1WvRnN4Z8YHUL3hnJXajoG9F0h1PjNExlvmX7PwQ8PV5nqTcKJ+kc1dXvZayVCLqWaE9t9ReWF+IMPS5LxD2gWDsf5+1XSN/GbZpmyPQX/Y184IMlvNn8TIDkcig5zoWhku9N+0Rde4ldImOUHAkaqEWE7VA+7vlxoUD7sXpS2OI4+U5wpJEXBQ7Fy6clJ7/1q1U8KCDITYYXRTUMpupbS5jrfn813koRvdhJ3K5zVMpVS0X9+nJQrEjeBIhPTiQ4OQ8CsJ//Bu+3T8qQE0Q9+WtNakbiIdatgIOPOTQm6BbxJgV3Cge9Prt0DFxfBCDjmJR0FeuIXr0oibQcd0/5LHXiOMRWZU4/tJ3ivtBzMYS/kkfrZJgCMugCNf4Eo3Vfw/eJp2p5QeHULKhKCQFgezYpyG68u+Zz3AMHG45iH05UWeCZfiFE/aFSZqDWI5ju/dme+K0ivuKDf+zENYtt4DNi25U9OXJ9k7WywwURLO9leMjGBg948rawPBLgTz2ourecyfpVV9ZVqf77FWC8iPRcfDscmjxLfboSYAxet5Qgjwo0fNypSZQOjLSD5nKseo7WIchq/Hag== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6923.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(53546011)(26005)(38070700005)(66446008)(122000001)(38100700002)(6506007)(7696005)(54906003)(316002)(6916009)(52536014)(2906002)(224303003)(9686003)(5660300002)(64756008)(83380400001)(66946007)(86362001)(71200400001)(4326008)(55016002)(66574015)(508600001)(76116006)(66556008)(186003)(8936002)(66476007)(33656002); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB5547 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: AM5EUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 62cd7ada-0205-4b4e-23e2-08d999f53557 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jqoaZ/4z4B4BZqAL3t8YUaTnv7S4ZiDwv2nQ0RgcLMD40zV9SJROu4XI1DjPT1rX2rj8/HUfsVLNgwmkBFOxT3jPH4RYOoBhFgsZSexCgE6m4a9/j5FhIe5bjAmU1CIX5CtxFfntxAqnCgM4hQvEcs4woJiywU71bVDqSR8798OBwn3j4lMkPWsBLAfAFNKu2KEjOm9bTLps8hYW2m5izcMFVGxrPSXQmUe3C5h2n6HCZE36EfOW1YjxNxjVKyboEWE8gI8sbaWaEu8NqFtnZm7dteePftsiKainalGMYABe/ANC03lU6khYs2siczytn7ItRyUj2gQHSbHfEhIvOYZOEV/KuAKBsxnDd6wSVwFSKjq3fLB3Llwo5dkz4PVoX65Dy3wF6AfTJkjGc0jgjATcPKlWgfhFhlAu+3+1vJWtjakwwBbD1o0F4/6HpQ8yWWvkFHSI97k6/+WzPjhRIujNuGELLb+2YvIa1WJNNom+RNj+5JCMLQVwg7/IoalPgbbUwMXD6IDvtEWS0j3c5L8skoutS/r0KT0aXqjUnRXHhFQq1x2nB+Qei2t59gzd4+W7XKiowb6AReUhDjszYMAGXWKOmewuMalnqxL/aKBRzBP3+FQXlxac8dzxuGDLqvWzAizEXNNcdhwQZaYhOkenbj6mwgwQKWwhvCsiZ2XnJ8AocZmIB6q2hikcHvX7as6vYX6T+1C2GcGYoX57Jg== 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:(4636009)(46966006)(36840700001)(5660300002)(53546011)(54906003)(26005)(186003)(82310400003)(6862004)(336012)(508600001)(36860700001)(66574015)(86362001)(7696005)(47076005)(316002)(9686003)(70206006)(70586007)(224303003)(33656002)(8936002)(83380400001)(6506007)(52536014)(55016002)(356005)(81166007)(4326008)(2906002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2021 09:28:02.5007 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4be43872-7f23-4e9c-90dc-08d999f53d68 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: AM5EUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7378 Subject: [dpdk-dev] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjcgMS81XSBlYWw6IGFk?= =?utf-8?q?d_new_definitions_for_wait_scheme?= X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IEplcmluIEphY29iIDxq ZXJpbmphY29ia0BnbWFpbC5jb20+DQo+IOWPkemAgeaXtumXtDogVGh1cnNkYXksIE9jdG9iZXIg MjgsIDIwMjEgMzo1MSBQTQ0KPiDmlLbku7bkuro6IEZlaWZlaSBXYW5nIDxGZWlmZWkuV2FuZzJA YXJtLmNvbT4NCj4g5oqE6YCBOiBSdWlmZW5nIFdhbmcgPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsg ZHBkay1kZXYgPGRldkBkcGRrLm9yZz47DQo+IG5kIDxuZEBhcm0uY29tPjsgQW5hbnlldiwgS29u c3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47DQo+IFN0ZXBoZW4gSGVtbWlu Z2VyIDxzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz47IERhdmlkIE1hcmNoYW5kDQo+IDxkYXZp ZC5tYXJjaGFuZEByZWRoYXQuY29tPjsgdGhvbWFzQG1vbmphbG9uLm5ldDsgTWF0dGlhcyBSw7Zu bmJsb20NCj4gPG1hdHRpYXMucm9ubmJsb21AZXJpY3Nzb24uY29tPg0KPiDkuLvpopg6IFJlOiBb UEFUQ0ggdjcgMS81XSBlYWw6IGFkZCBuZXcgZGVmaW5pdGlvbnMgZm9yIHdhaXQgc2NoZW1lDQo+ IA0KPiBPbiBUaHUsIE9jdCAyOCwgMjAyMSBhdCAxOjExIFBNIEZlaWZlaSBXYW5nIDxGZWlmZWku V2FuZzJAYXJtLmNvbT4NCj4gd3JvdGU6DQo+ID4NCj4gPg0KPiA+DQo+ID4gPiAtLS0tLemCruS7 tuWOn+S7ti0tLS0tDQo+ID4gPiDlj5Hku7bkuro6IEplcmluIEphY29iIDxqZXJpbmphY29ia0Bn bWFpbC5jb20+DQo+ID4gPiDlj5HpgIHml7bpl7Q6IFRodXJzZGF5LCBPY3RvYmVyIDI4LCAyMDIx IDM6MTYgUE0NCj4gPiA+IOaUtuS7tuS6ujogRmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5nMkBhcm0u Y29tPg0KPiA+ID4g5oqE6YCBOiBSdWlmZW5nIFdhbmcgPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsg ZHBkay1kZXYNCj4gPGRldkBkcGRrLm9yZz47IG5kDQo+ID4gPiA8bmRAYXJtLmNvbT47IEFuYW55 ZXYsIEtvbnN0YW50aW4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+Ow0KPiA+ID4gU3Rl cGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPjsgRGF2aWQgTWFyY2hh bmQNCj4gPiA+IDxkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tPjsgdGhvbWFzQG1vbmphbG9uLm5l dDsgTWF0dGlhcw0KPiBSw7ZubmJsb20NCj4gPiA+IDxtYXR0aWFzLnJvbm5ibG9tQGVyaWNzc29u LmNvbT4NCj4gPiA+IOS4u+mimDogUmU6IFtQQVRDSCB2NyAxLzVdIGVhbDogYWRkIG5ldyBkZWZp bml0aW9ucyBmb3Igd2FpdCBzY2hlbWUNCj4gPiA+DQo+ID4gPiBPbiBUaHUsIE9jdCAyOCwgMjAy MSBhdCAxMjoyNiBQTSBGZWlmZWkgV2FuZyA8ZmVpZmVpLndhbmcyQGFybS5jb20+DQo+ID4gPiB3 cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gSW50cm9kdWNlIG1hY3JvcyBhcyBnZW5lcmljIGludGVy ZmFjZSBmb3IgYWRkcmVzcyBtb25pdG9yaW5nLg0KPiA+ID4gPiBGb3IgZGlmZmVyZW50IHNpemUs IGVuY2Fwc3VsYXRlICdfX0xPQURfRVhDXzE2JywgJ19fTE9BRF9FWENfMzInDQo+ID4gPiA+IGFu ZCAnX19MT0FEX0VYQ182NCcgaW50byBhIG5ldyBtYWNybyAnX19MT0FEX0VYQycuDQo+ID4gPiA+ DQo+ID4gPiA+IEZ1cnRoZXJtb3JlLCB0byBwcmV2ZW50IGNvbXBpbGF0aW9uIHdhcm5pbmcgaW4g YXJtOg0KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4gPiA+ICd3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAu Li4nDQo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPiA+ID4gRGVsZXRlICd1bmRlZicgY29uc3RydWN0aW9ucyBmb3IgJ19fTE9BRF9FWENf eHgnLCAnX19TRVZMJyBhbmQNCj4gJ19fV0ZFJy4NCj4gPiA+ID4gQW5kIGFkZCDigJhfX1JURV9B Uk3igJkgZm9yIHRoZXNlIG1hY3JvcyB0byBmaXggdGhlIG5hbWVzcGFjZS4NCj4gPiA+ID4NCj4g PiA+ID4gVGhpcyBpcyBiZWNhdXNlIG9yaWdpbmFsIG1hY3JvcyBhcmUgdW5kZWZpbmUgYXQgdGhl IGVuZCBvZiB0aGUgZmlsZS4NCj4gPiA+ID4gSWYgbmV3IG1hY3JvICdydGVfd2FpdF9ldmVudCcg Y2FsbHMgdGhlbSBpbiBvdGhlciBmaWxlcywgdGhleSB3aWxsDQo+ID4gPiA+IGJlIHNlZW4gYXMg J25vdCBkZWZpbmVkJy4NCj4gPiA+ID4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRmVpZmVpIFdh bmcgPGZlaWZlaS53YW5nMkBhcm0uY29tPg0KPiA+ID4gPiBSZXZpZXdlZC1ieTogUnVpZmVuZyBX YW5nIDxydWlmZW5nLndhbmdAYXJtLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPg0KPiA+ID4gPiAr c3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0KPiA+ID4gPiArcnRlX3dhaXRfdW50aWxf ZXF1YWxfMTYodm9sYXRpbGUgdWludDE2X3QgKmFkZHIsIHVpbnQxNl90IGV4cGVjdGVkLA0KPiA+ ID4gPiArICAgICAgICAgICAgICAgaW50IG1lbW9yZGVyKQ0KPiA+ID4gPiArew0KPiA+ID4gPiAr ICAgICAgIHVpbnQxNl90IHZhbHVlOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgYXNzZXJ0 KG1lbW9yZGVyID09IF9fQVRPTUlDX0FDUVVJUkUgfHwgbWVtb3JkZXIgPT0NCj4gPiA+ID4gKyBf X0FUT01JQ19SRUxBWEVEKTsNCj4gPiA+DQo+ID4gPiBBc3NlcnQgaXMgbm90IGdvb2QgaW4gdGhl IGxpYnJhcnksIFdoeSBub3QgUlRFX0JVSUxEX0JVR19PTiBoZXJlDQo+ID4gW0ZlaWZlaV0gVGhp cyBsaW5lIGlzIHRoZSBvcmlnaW5hbCBjb2RlIHdoaWNoIGhhcyBub3RoaW5nIHRvIGRvIHdpdGgN Cj4gPiB0aGlzIHBhdGNoLCBJIGNhbiBjaGFuZ2UgaXQgaW4gdGhlIG5leHQgdmVyc2lvbi4NCj4g PiA+DQo+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgX19SVEVfQVJNX0xPQURfRVhD XzE2KGFkZHIsIHZhbHVlLCBtZW1vcmRlcikNCj4gPiA+ID4gICAgICAgICBpZiAodmFsdWUgIT0g ZXhwZWN0ZWQpIHsNCj4gPiA+ID4gLSAgICAgICAgICAgICAgIF9fU0VWTCgpDQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgX19SVEVfQVJNX1NFVkwoKQ0KPiA+ID4gPiAgICAgICAgICAgICAgICAg ZG8gew0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICBfX1dGRSgpDQo+ID4gPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgIF9fTE9BRF9FWENfMTYoYWRkciwgdmFsdWUsIG1lbW9yZGVy KQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBfX1JURV9BUk1fV0ZFKCkNCj4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgX19SVEVfQVJNX0xPQURfRVhDXzE2KGFkZHIsIHZh bHVlLA0KPiA+ID4gPiArIG1lbW9yZGVyKQ0KPiA+ID4gPiAgICAgICAgICAgICAgICAgfSB3aGls ZSAodmFsdWUgIT0gZXhwZWN0ZWQpOw0KPiA+ID4gPiAgICAgICAgIH0NCj4gPiA+ID4gLSN1bmRl ZiBfX0xPQURfRVhDXzE2DQo+ID4gPiA+ICB9DQo+ID4gPiA+DQo+ID4gPiA+ICBzdGF0aWMgX19y dGVfYWx3YXlzX2lubGluZSB2b2lkDQo+ID4gPiA+IEBAIC03NywzNCArMTI0LDE0IEBAIHJ0ZV93 YWl0X3VudGlsX2VxdWFsXzMyKHZvbGF0aWxlIHVpbnQzMl90DQo+ID4gPiA+ICphZGRyLCB1aW50 MzJfdCBleHBlY3RlZCwNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICBhc3NlcnQobWVtb3JkZXIg PT0gX19BVE9NSUNfQUNRVUlSRSB8fCBtZW1vcmRlciA9PQ0KPiA+ID4gPiBfX0FUT01JQ19SRUxB WEVEKTsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgICAvKg0KPiA+ID4gPiAtICAgICAgICAqIEF0 b21pYyBleGNsdXNpdmUgbG9hZCBmcm9tIGFkZHIsIGl0IHJldHVybnMgdGhlIDMyLWJpdCBjb250 ZW50IG9mDQo+ID4gPiA+IC0gICAgICAgICogKmFkZHIgd2hpbGUgbWFraW5nIGl0ICdtb25pdG9y ZWQnLHdoZW4gaXQgaXMgd3JpdHRlbiBieSBzb21lb25lDQo+ID4gPiA+IC0gICAgICAgICogZWxz ZSwgdGhlICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQgYW5kIGEgZXZlbnQgaXMgZ2VuZXJh dGVkDQo+ID4gPiA+IC0gICAgICAgICogaW1wbGljaXRseSB0byBleGl0IFdGRS4NCj4gPiA+ID4g LSAgICAgICAgKi8NCj4gPiA+ID4gLSNkZWZpbmUgX19MT0FEX0VYQ18zMihzcmMsIGRzdCwgbWVt b3JkZXIpIHsgICAgICAgICAgICAgIFwNCj4gPiA+ID4gLSAgICAgICBpZiAobWVtb3JkZXIgPT0g X19BVE9NSUNfUkVMQVhFRCkgeyAgICAgICAgICAgICAgXA0KPiA+ID4gPiAtICAgICAgICAgICAg ICAgYXNtIHZvbGF0aWxlKCJsZHhyICV3W3RtcF0sIFsleFthZGRyXV0iICBcDQo+ID4gPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgIDogW3RtcF0gIj0mciIgKGRzdCkgICAgICAgICAgICAgIFwN Cj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgOiBbYWRkcl0gInIiKHNyYykgICAgICAg ICAgICAgICAgXA0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICA6ICJtZW1vcnkiKTsg ICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0gICAgICAgfSBlbHNlIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gLSAgICAgICAgICAgICAg IGFzbSB2b2xhdGlsZSgibGRheHIgJXdbdG1wXSwgWyV4W2FkZHJdXSIgXA0KPiA+ID4gPiAtICAg ICAgICAgICAgICAgICAgICAgICA6IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAgICBcDQo+ ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIDogW2FkZHJdICJyIihzcmMpICAgICAgICAg ICAgICAgIFwNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7ICAg ICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiAtICAgICAgIH0gfQ0KPiA+ID4gPiAtDQo+ID4g PiA+IC0gICAgICAgX19MT0FEX0VYQ18zMihhZGRyLCB2YWx1ZSwgbWVtb3JkZXIpDQo+ID4gPiA+ ICsgICAgICAgX19SVEVfQVJNX0xPQURfRVhDXzMyKGFkZHIsIHZhbHVlLCBtZW1vcmRlcikNCj4g PiA+ID4gICAgICAgICBpZiAodmFsdWUgIT0gZXhwZWN0ZWQpIHsNCj4gPiA+ID4gLSAgICAgICAg ICAgICAgIF9fU0VWTCgpDQo+ID4gPiA+ICsgICAgICAgICAgICAgICBfX1JURV9BUk1fU0VWTCgp DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBkbyB7DQo+ID4gPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgIF9fV0ZFKCkNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgX19MT0FEX0VY Q18zMihhZGRyLCB2YWx1ZSwgbWVtb3JkZXIpDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIF9fUlRFX0FSTV9XRkUoKQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBfX1JU RV9BUk1fTE9BRF9FWENfMzIoYWRkciwgdmFsdWUsDQo+ID4gPiA+ICsgbWVtb3JkZXIpDQo+ID4g PiA+ICAgICAgICAgICAgICAgICB9IHdoaWxlICh2YWx1ZSAhPSBleHBlY3RlZCk7DQo+ID4gPiA+ ICAgICAgICAgfQ0KPiA+ID4gPiAtI3VuZGVmIF9fTE9BRF9FWENfMzINCj4gPiA+ID4gIH0NCj4g PiA+ID4NCj4gPiA+ID4gIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiA+ID4g QEAgLTExNSwzOCArMTQyLDMzIEBAIHJ0ZV93YWl0X3VudGlsX2VxdWFsXzY0KHZvbGF0aWxlIHVp bnQ2NF90DQo+ID4gPiA+ICphZGRyLCB1aW50NjRfdCBleHBlY3RlZCwNCj4gPiA+ID4NCj4gPiA+ ID4gICAgICAgICBhc3NlcnQobWVtb3JkZXIgPT0gX19BVE9NSUNfQUNRVUlSRSB8fCBtZW1vcmRl ciA9PQ0KPiA+ID4gPiBfX0FUT01JQ19SRUxBWEVEKTsNCj4gPiA+DQo+ID4gPiByZW1vdmUgYXNz ZXJ0IGFuZCBjaGFuZ2UgdG8gQlVJTERfQlVHX09ODQo+ID4gW0ZlaWZlaV0gT0sNCj4gPiA+DQo+ ID4gPiA+DQo+ID4gPiA+IC0gICAgICAgLyoNCj4gPiA+ID4gLSAgICAgICAgKiBBdG9taWMgZXhj bHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRoZSA2NC1iaXQgY29udGVudCBvZg0K PiA+ID4gPiAtICAgICAgICAqICphZGRyIHdoaWxlIG1ha2luZyBpdCAnbW9uaXRvcmVkJyx3aGVu IGl0IGlzIHdyaXR0ZW4gYnkgc29tZW9uZQ0KPiA+ID4gPiAtICAgICAgICAqIGVsc2UsIHRoZSAn bW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlzIGdlbmVyYXRlZA0KPiA+ ID4gPiAtICAgICAgICAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiA+IC0gICAgICAg ICovDQo+ID4gPiA+IC0jZGVmaW5lIF9fTE9BRF9FWENfNjQoc3JjLCBkc3QsIG1lbW9yZGVyKSB7 ICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0gICAgICAgaWYgKG1lbW9yZGVyID09IF9fQVRPTUlD X1JFTEFYRUQpIHsgICAgICAgICAgICAgIFwNCj4gPiA+ID4gLSAgICAgICAgICAgICAgIGFzbSB2 b2xhdGlsZSgibGR4ciAleFt0bXBdLCBbJXhbYWRkcl1dIiAgXA0KPiA+ID4gPiAtICAgICAgICAg ICAgICAgICAgICAgICA6IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAgICBcDQo+ID4gPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgIDogW2FkZHJdICJyIihzcmMpICAgICAgICAgICAgICAg IFwNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7ICAgICAgICAg ICAgICAgICAgICAgXA0KPiA+ID4gPiAtICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0gICAgICAgICAgICAgICBhc20gdm9s YXRpbGUoImxkYXhyICV4W3RtcF0sIFsleFthZGRyXV0iIFwNCj4gPiA+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAgXA0KPiA+ID4gPiAt ICAgICAgICAgICAgICAgICAgICAgICA6IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAgICBc DQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOyAgICAgICAgICAg ICAgICAgICAgIFwNCj4gPiA+ID4gLSAgICAgICB9IH0NCj4gPiA+ID4gLQ0KPiA+ID4gPiAtICAg ICAgIF9fTE9BRF9FWENfNjQoYWRkciwgdmFsdWUsIG1lbW9yZGVyKQ0KPiA+ID4gPiArICAgICAg IF9fUlRFX0FSTV9MT0FEX0VYQ182NChhZGRyLCB2YWx1ZSwgbWVtb3JkZXIpDQo+ID4gPiA+ICAg ICAgICAgaWYgKHZhbHVlICE9IGV4cGVjdGVkKSB7DQo+ID4gPiA+IC0gICAgICAgICAgICAgICBf X1NFVkwoKQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgX19SVEVfQVJNX1NFVkwoKQ0KPiA+ID4g PiAgICAgICAgICAgICAgICAgZG8gew0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICBf X1dGRSgpDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIF9fTE9BRF9FWENfNjQoYWRk ciwgdmFsdWUsIG1lbW9yZGVyKQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBfX1JU RV9BUk1fV0ZFKCkNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgX19SVEVfQVJNX0xP QURfRVhDXzY0KGFkZHIsIHZhbHVlLA0KPiA+ID4gPiArIG1lbW9yZGVyKQ0KPiA+ID4gPiAgICAg ICAgICAgICAgICAgfSB3aGlsZSAodmFsdWUgIT0gZXhwZWN0ZWQpOw0KPiA+ID4gPiAgICAgICAg IH0NCj4gPiA+ID4gIH0NCj4gPiA+ID4gLSN1bmRlZiBfX0xPQURfRVhDXzY0DQo+ID4gPiA+DQo+ ID4gPiA+IC0jdW5kZWYgX19TRVZMDQo+ID4gPiA+IC0jdW5kZWYgX19XRkUNCj4gPiA+ID4gKyNk ZWZpbmUgcnRlX3dhaXRfZXZlbnQoYWRkciwgbWFzaywgY29uZCwgZXhwZWN0ZWQsIG1lbW9yZGVy KQ0KPiBcDQo+ID4gPiA+ICtkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gKyAgICAgICBSVEVf QlVJTERfQlVHX09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChtZW1vcmRlcikpOyAgICAgICAgICAg ICAgICBcDQo+ID4gPiA+ICsgICAgICAgUlRFX0JVSUxEX0JVR19PTihtZW1vcmRlciAhPSBfX0FU T01JQ19BQ1FVSVJFICYmDQo+ID4gPiBcDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWVtb3JkZXIgIT0gX19BVE9NSUNfUkVMQVhFRCk7ICAgICAgICAgICAgXA0KPiA+ ID4gPiArICAgICAgIHVpbnQzMl90IHNpemUgPSBzaXplb2YoKihhZGRyKSkgPDwgMzsNCj4gPiA+ DQo+ID4gPiBBZGQgY29uc3QNCj4gPiBbRmVpZmVpXSBPSy4NCj4gPiA+ID4gKyAgICAgICB0eXBl b2YoKihhZGRyKSkgZXhwZWN0ZWRfdmFsdWUgPSAoZXhwZWN0ZWQpOyAgICAgICAgICAgICAgICAg ICAgICBcDQo+ID4gPiA+ICsgICAgICAgdHlwZW9mKCooYWRkcikpIHZhbHVlID0gMDsNCj4gPiA+ DQo+ID4gPiBXaHkgemVybyBhc3NpZ25tZW50DQo+ID4gSSB3aWxsIGRlbGV0ZSB0aGlzIGluaXRp YWxpemF0aW9uLg0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCj4gPiA+ID4gKyAgICAgICBfX1JURV9BUk1fTE9BRF9FWEMoKGFkZHIpLCB2YWx1ZSwgbWVt b3JkZXIsIHNpemUpICAgICAgICAgICAgICAgICBcDQo+ID4gPg0KPiA+ID4gQXNzZXJ0IGlzIG5v dCBnb29kIGluIHRoZSBsaWJyYXJ5LCBXaHkgbm90IFJURV9CVUlMRF9CVUdfT04gaGVyZQ0KPiA+ IFtGZWlmZWldIEZvciBfX1JURV9BUk1fTE9BRF9FWEMsICdzaXplJyBpcyBrbm93biB1bnRpbCBj b2RlIGlzIHJ1bm5pbmcuDQo+ID4gU28gaXQgY2Fubm90IGNoZWNrICdzaXplJyBpbiB0aGUgY29t cGlsZSB0aW1lIGFuZCBCVUlMRF9CVUdfT04gZG9lc24ndA0KPiB3b3JrIGhlcmUuDQo+IA0KPiB1 aW50MzJfdCBzaXplID0gc2l6ZW9mKCooYWRkcikpIDw8IDMgdmFsdWUgd2lsbCBnZXQgaW4gY29t cGxlIHRpbWUgYXMgX3NpemVvZl8gaXMNCj4gcHJlcHJvY2Vzc29yIGZ1bmN0aW9uLg0KPiBTbyBJ IHRoaW5rLCBCVUlMRF9CVUdfT04gaXMgZmluZS4NCltGZWlmZWldIFlvdSBhcmUgcmlnaHQuIEkg dHJ5IHRvIHdpdGggYnVpbGRfYnVnX29uLCBpdCBpcyBPSyB0byBjaGVjayAnc2l6ZScuDQo+IA0K PiANCj4gDQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4gKyAgICAgICBpZiAoKHZhbHVlICYgKG1hc2sp KSBjb25kIGV4cGVjdGVkX3ZhbHVlKSB7ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ ICsgICAgICAgICAgICAgICBfX1JURV9BUk1fU0VWTCgpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArICAgICAgICAgICAgICAgZG8geyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgX19SVEVfQVJNX1dGRSgpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIF9fUlRF X0FSTV9MT0FEX0VYQygoYWRkciksIHZhbHVlLA0KPiA+ID4gPiArIG1lbW9yZGVyLA0KPiA+ID4g PiArIHNpemUpIFwNCj4gPiA+DQo+ID4gPiBpZiB0aGUgYWRkcmVzcyBpcyB0aGUgdHlwZSBvZiBf X2ludDEyOF90LiBUaGlzIGxvZ2ljIHdpbGwgZmFpbD8NCj4gPiA+IENvdWxkIHlvdSBhZGQgMTI4 Yml0IHN1cHBvcnQgdG9vIGFuZCByZW1vdmUgdGhlIGFzc2VydCBmcm9tDQo+ID4gPiBfX1JURV9B Uk1fTE9BRF9FWEMNCj4gPiBbRmVpZmVpXSBUaGVyZSBpcyBubyAxMjhiaXQgY2FzZSBpbiBsaWJy YXJ5LiBBbmQgbWF5YmUgdGhlcmUgd2lsbCBiZQ0KPiA+IDEyOGJpdHMgY2FzZSwgd2UgY2FuIGFk ZCAxMjggcGF0aCBoZXJlLiBOb3cgdGhlcmUgaXMgYXNzZXJ0IGNoZWNrIGluDQo+ID4gX19SVEVf QVJNX0xPQURfRVhDIHRvIGNoZWNrIHdoZXRoZXIgc2l6ZSBpcyAnMTYvMzIvNjQnLg0KPiANCj4g QVBJIGV4cGVjdHMgaXMgb25seSAiYWRkciIgd2l0aG91dCBhbnkgdHlwZSBzbyB0aGUgYXBwbGlj YXRpb24gY2FuIHVzZSAxMjhiaXQNCj4gdG9vLg0KPiANCj4gV29yc3QgY2FzZSBmb3Igbm93IHdl IGNhbiBmYWxsIGJhY2sgdG8gX19hdG9taWNfbG9hZF9uKCkgZm9yICBzaXplIDEyOCwgd2UNCj4g ZG9udCB3YW50IHRvIGJyZWFrIGFwcGxpY2F0aW9ucyB3aGlsZSB1c2luZyB0aGlzIEFQSS4gT3Ig YWRkIHN1cHBvcnQgZm9yIDEyOCBpbg0KPiBjb2RlLg0KPiANCltGZWlmZWldIEFsbCByaWdodCwg SSB3aWxsIHRyeSB0byBhZGQgMTI4bG9hZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KPiANCj4gPiA+ DQo+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgfSB3aGlsZSAoKHZhbHVlICYgKG1hc2sp KSBjb25kIGV4cGVjdGVkX3ZhbHVlKTsgICAgICAgICAgIFwNCj4gPiA+ID4gKyAgICAgICB9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQo+ID4gPiA+ICt9IHdoaWxlICgwKQ0KPiA+ID4gPg0KPiA+ID4gPiAgI2VuZGlmDQo+ ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVf cGF1c2UuaA0KPiA+ID4gPiBiL2xpYi9lYWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9wYXVzZS5oDQo+ ID4gPiA+IGluZGV4IDY2OGVlNGExODQuLmQwYzViNWE0MTUgMTAwNjQ0DQo+ID4gPiA+IC0tLSBh L2xpYi9lYWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9wYXVzZS5oDQo+ID4gPiA+ICsrKyBiL2xpYi9l YWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9wYXVzZS5oDQo+ID4gPiA+IEBAIC0xMTEsNiArMTExLDM0 IEBAIHJ0ZV93YWl0X3VudGlsX2VxdWFsXzY0KHZvbGF0aWxlIHVpbnQ2NF90DQo+ID4gPiA+ICph ZGRyLA0KPiA+ID4gdWludDY0X3QgZXhwZWN0ZWQsDQo+ID4gPiA+ICAgICAgICAgd2hpbGUgKF9f YXRvbWljX2xvYWRfbihhZGRyLCBtZW1vcmRlcikgIT0gZXhwZWN0ZWQpDQo+ID4gPiA+ICAgICAg ICAgICAgICAgICBydGVfcGF1c2UoKTsNCj4gPiA+ID4gIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiAr LyoNCj4gPiA+ID4gKyAqIFdhaXQgdW50aWwgKmFkZHIgYnJlYWtzIHRoZSBjb25kaXRpb24sIHdp dGggYSByZWxheGVkIG1lbW9yeQ0KPiA+ID4gPiArICogb3JkZXJpbmcgbW9kZWwgbWVhbmluZyB0 aGUgbG9hZHMgYXJvdW5kIHRoaXMgQVBJIGNhbiBiZSByZW9yZGVyZWQuDQo+ID4gPiA+ICsgKg0K PiA+ID4gPiArICogQHBhcmFtIGFkZHINCj4gPiA+ID4gKyAqICBBIHBvaW50ZXIgdG8gdGhlIG1l bW9yeSBsb2NhdGlvbi4NCj4gPiA+ID4gKyAqIEBwYXJhbSBtYXNrDQo+ID4gPiA+ICsgKiAgQSBt YXNrIG9mIHZhbHVlIGJpdHMgaW4gaW50ZXJlc3QuDQo+ID4gPiA+ICsgKiBAcGFyYW0gY29uZA0K PiA+ID4gPiArICogIEEgc3ltYm9sIHJlcHJlc2VudGluZyB0aGUgY29uZGl0aW9uLg0KPiA+ID4g PiArICogQHBhcmFtIGV4cGVjdGVkDQo+ID4gPiA+ICsgKiAgQW4gZXhwZWN0ZWQgdmFsdWUgdG8g YmUgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbi4NCj4gPiA+ID4gKyAqIEBwYXJhbSBtZW1vcmRlcg0K PiA+ID4gPiArICogIFR3byBkaWZmZXJlbnQgbWVtb3J5IG9yZGVycyB0aGF0IGNhbiBiZSBzcGVj aWZpZWQ6DQo+ID4gPiA+ICsgKiAgX19BVE9NSUNfQUNRVUlSRSBhbmQgX19BVE9NSUNfUkVMQVhF RC4gVGhlc2UgbWFwIHRvDQo+ID4gPiA+ICsgKiAgQysrMTEgbWVtb3J5IG9yZGVycyB3aXRoIHRo ZSBzYW1lIG5hbWVzLCBzZWUgdGhlIEMrKzExDQo+ID4gPiA+ICtzdGFuZGFyZCBvcg0KPiA+ID4g PiArICogIHRoZSBHQ0Mgd2lraSBvbiBhdG9taWMgc3luY2hyb25pemF0aW9uIGZvciBkZXRhaWxl ZCBkZWZpbml0aW9uLg0KPiA+ID4gPiArICovDQo+ID4gPiA+ICsjZGVmaW5lIHJ0ZV93YWl0X2V2 ZW50KGFkZHIsIG1hc2ssIGNvbmQsIGV4cGVjdGVkLCBtZW1vcmRlcikNCj4gPiA+IFwNCj4gPiA+ ID4gK2RvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArICAgICAgIFJURV9CVUlM RF9CVUdfT04oIV9fYnVpbHRpbl9jb25zdGFudF9wKG1lbW9yZGVyKSk7DQo+ID4gPiBcDQo+ID4g PiA+ICsgICAgICAgUlRFX0JVSUxEX0JVR19PTihtZW1vcmRlciAhPSBfX0FUT01JQ19BQ1FVSVJF ICYmDQo+ID4gPiBcDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVt b3JkZXIgIT0gX19BVE9NSUNfUkVMQVhFRCk7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4g PiArICAgICAgIHR5cGVvZigqKGFkZHIpKSBleHBlY3RlZF92YWx1ZSA9IChleHBlY3RlZCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gKyAgICAgICB3aGlsZSAoKF9f YXRvbWljX2xvYWRfbigoYWRkciksIChtZW1vcmRlcikpICYgKG1hc2spKSBjb25kDQo+ID4gPiBl eHBlY3RlZF92YWx1ZSkgXA0KPiA+ID4gPiArICAgICAgICAgICAgICAgcnRlX3BhdXNlKCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g PiA+ID4gK30gd2hpbGUgKDApDQo+ID4gPiA+ICAjZW5kaWYNCj4gPiA+ID4NCj4gPiA+ID4gICNl bmRpZiAvKiBfUlRFX1BBVVNFX0hfICovDQo+ID4gPiA+IC0tDQo+ID4gPiA+IDIuMjUuMQ0KPiA+ ID4gPg0K