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 524B3A0C4B; Mon, 25 Oct 2021 11:20:58 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DD878407FF; Mon, 25 Oct 2021 11:20:57 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150078.outbound.protection.outlook.com [40.107.15.78]) by mails.dpdk.org (Postfix) with ESMTP id 4402D4003E for ; Mon, 25 Oct 2021 11:20:56 +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=DZQCloJANjLUOJofPeSNRauRPwFLHsCNQsFM4/S18J0=; b=WfM/WElY/ISSfyt9kjnI3NULqBHNJtAt9h3C871f4C818f+aJFKoTcsYccVXYyGiQz9rJ8cbbb9agQW+XomZS5CO99dWzl+59w212BqyJKSlJ0XXXbTFPKAaYIFjY/MsB94gfm04zaDl5HxlYlW5wiaeyWHHVxjUn6WLAzFFgbg= Received: from AM7PR04CA0013.eurprd04.prod.outlook.com (2603:10a6:20b:110::23) by AM6PR08MB4119.eurprd08.prod.outlook.com (2603:10a6:20b:ad::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Mon, 25 Oct 2021 09:20:54 +0000 Received: from AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:110:cafe::fb) by AM7PR04CA0013.outlook.office365.com (2603:10a6:20b:110::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Mon, 25 Oct 2021 09:20:54 +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 AM5EUR03FT035.mail.protection.outlook.com (10.152.16.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16 via Frontend Transport; Mon, 25 Oct 2021 09:20:53 +0000 Received: ("Tessian outbound 2e7020cc8961:v103"); Mon, 25 Oct 2021 09:20:53 +0000 X-CR-MTA-TID: 64aa7808 Received: from 6e94a87a27af.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E74D118B-ABAB-48FD-802E-4DEDADC7836F.1; Mon, 25 Oct 2021 09:20:42 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6e94a87a27af.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 25 Oct 2021 09:20:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RnomassTLd9723/j1gGrtzeSgxEErFFLcp9niwwwVltGfyjeUcaMlHD40joohsZDJUJHCspmUtv2529CQRhqzfaDHdYNuu4xZNY9igMDVoj7QjSafscgJCHiqAZXdvuNTOVyQsbiZ5uv71nCss9qSsm5TldC+p1z/KLZPzEE/ag00byYn/tuh/sig1sMqRmSs+QTuOiFBkPbLz3RhS49nBcz8LKn9C2i+Mz6kG+RzU/bUr6vSjPa55HzrKr/hILMwHI/b24xlnzmXR1gHfzG+o1fmYMMDSvYklFcBmPb1T+3c2SNNMFP06CFF9Rtz0KNnRezW16VO7WoOM2ki8AiVQ== 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=DZQCloJANjLUOJofPeSNRauRPwFLHsCNQsFM4/S18J0=; b=W13B+N5y1xhiUKDn+jgnQn6qGtsvmXl/bLx5xwHT+H9Lgia+61Yqqy0gZaF+M8BJHFapGlPIulxJjz/vfZM+2JpedRkvx4faEL9wdV4tUIhNDudPiXWFZ19kcue5fEPVIAhIZag1t8lmAW0XH4NB70hSKJKgH+dkkzlt8HZI2xK6HDFZNuOtYr4R3RlAVbqte8Uihq5lS1ZkwQ9I7pzAEvgXCTTnAe259gERHWnetCaSZe9qVRfjUg2RR5ZNrQpiSdWR+4Ec6vqrgwVZ0Y3LfnwhFrqB7ScrPPQJL/UnWsD9e6hoKGAKFLvzcS3H9uRcIUtR9/65MFXGoV4JLdlCxg== 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=DZQCloJANjLUOJofPeSNRauRPwFLHsCNQsFM4/S18J0=; b=WfM/WElY/ISSfyt9kjnI3NULqBHNJtAt9h3C871f4C818f+aJFKoTcsYccVXYyGiQz9rJ8cbbb9agQW+XomZS5CO99dWzl+59w212BqyJKSlJ0XXXbTFPKAaYIFjY/MsB94gfm04zaDl5HxlYlW5wiaeyWHHVxjUn6WLAzFFgbg= Received: from DB9PR08MB6923.eurprd08.prod.outlook.com (2603:10a6:10:2ac::6) by DB6PR08MB2903.eurprd08.prod.outlook.com (2603:10a6:6:25::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.20; Mon, 25 Oct 2021 09:20:41 +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; Mon, 25 Oct 2021 09:20:40 +0000 From: Feifei Wang To: "Ananyev, Konstantin" , Ruifeng Wang CC: "dev@dpdk.org" , nd , nd Thread-Topic: [PATCH v4 1/5] eal: add new definitions for wait scheme Thread-Index: AQHXxY7xtCrADdTHBUS7GQmhbwWV7KvdpUAAgAXP5rA= Date: Mon, 25 Oct 2021 09:20:40 +0000 Message-ID: References: <20210926063302.1541193-1-feifei.wang2@arm.com> <20211020084523.1309177-1-feifei.wang2@arm.com> <20211020084523.1309177-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: FB188009B24FCA4DABD4681D16FCD911.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: c27cc7a2-6616-4ae6-96c9-08d99798be9a x-ms-traffictypediagnostic: DB6PR08MB2903:|AM6PR08MB4119: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:6108;OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 1+R9gahUdKKvTHDcde0phxULBmUdjs61IJm3l4Kwk4Dk02rlhTDbTH/h7DV61MFEACozE9Ge2dFpFNKtBUoxAi2hs7l0dGeO2nbjH0AqdgLQXjoiiAXJ5ieJd1jR6ZZIVCjDVXcgMqb/VO8912JMMdWRuzy3Nw8OC0r8Lcq6j13oE7cRNHLHdW18Qvi2cDxXfLPx9EMgAdjTnpp+Af/r8RsMH33fxSr89XK6DgORsb9bDBX9d4xGAbiodLRu55iU0NiCQFYUjG+l7GFi1//M5ya3owDeBSDHCSpPWkI0hD8u7tQD4hWIuJhX2o/BdfIlbNz6mBXwXhtZDhM4HWKgIvkJruYovkHwfhmdco9+N9jshEthEwt3OpERHQXomgDk98DZMg21rfdMiDH7aX3VG5VSn9H+tC3s4DfeUYL1k/5+SUHMq/vQQemni75hu+fygNvH1njBNX2xXevTyaJSn7F6SUQf06IiiuT64ilue2AR/sa1kC9IOawlmR7rbxviIsvDuwsgUlKCqrsRWiVz0SyP3vpbBYT9nMC1ozhUp86t3uyKP5nU9TkYY883gOFK3pBlPSDZB4rIugnxL0oZcrz9vHh4wy7mNm+EH4fqb8BUkEJF5xC+WPZJ9zai9fEhjPCRnqmbeSfvezZsfioc/oCYfzrRjc/YHQVHujuB6Rytnj4I8GKulZFVX5zuqAphVrDVUCoqh2hAd8xBRQzHuw== 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)(83380400001)(66446008)(66476007)(64756008)(2906002)(66556008)(6636002)(76116006)(9686003)(66946007)(316002)(122000001)(224303003)(54906003)(4326008)(110136005)(38100700002)(508600001)(55016002)(71200400001)(52536014)(7696005)(33656002)(86362001)(38070700005)(8936002)(26005)(186003)(5660300002)(6506007); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2903 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: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 519067bb-d0ed-47b3-723b-08d99798b6d5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /lmWXIT+M1tj1RE4Fw7dpcJhRoWH106M7L4bGurTsiQDU5Sl9rifSnwxi2rY95PncKUyJxJa0WVLVuti/C6c/daBAvZaNsJC8+UdzlcuZ63KosEqNPitDDWRf3lhkOUTOccTtABHjIaI49L6xmsTaOqA+MJ8jJFFZF3qoN9FRKd0p5b+GeOVCIp37AvDwqP0ceYSoWqudm/+Itl8QGe206CpLMJL4EEFB1hXPHpEEXnYBVYGq/PvwAaUmYvrSh3EpCKUQ9se7pq5SMeWGMewmGru5J0OXflwn/jhVR+APLai8b/Va5o/5jTVP17PTuHSLoK8JfTIPuDKTg3rXG2Ho8uaO6jtvzzZX3u/rRj3tCNwjZJymO0TzCFb/gkNNSW0ToN0B2GfwoxxbIoRRsVrx4rLd6Ay9InwBm8pPqSUX4QFWSCc6Cs8pl3MVRep7oouGUsLvnyE72zUcFI2VdTRJmIDx9Gqj50kWZc5oF7pLr8XCgFerVb1OK6/2r3fpxwsJhPwqpN8EDMX+AfqfBJqJ8cs9/Pi4ekA7e8fL7Er+dfvi+plrXMogbhjXuJckPm1If74jVHzREE3LnKcf27plWUXO5mx6jTTvIeVt3kiH5XuFoJNyLxpaeU0HG8JbjSVbv6DCKZIv8L8T/DGW4IOVQqH9GaodDVR5BMBROxA4xoD6ZF5UBaQnwqORusiFgU5zOK4CeGaqS2W6XXBkvMLSg== 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)(33656002)(4326008)(336012)(186003)(8936002)(81166007)(316002)(82310400003)(83380400001)(508600001)(70586007)(110136005)(86362001)(6506007)(9686003)(2906002)(36860700001)(26005)(55016002)(52536014)(356005)(224303003)(6636002)(47076005)(7696005)(70206006)(54906003)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2021 09:20:53.7511 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c27cc7a2-6616-4ae6-96c9-08d99798be9a 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: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4119 Subject: [dpdk-dev] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjQgMS81XSBlYWw6IGFk?= =?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/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IEFuYW55ZXYsIEtvbnN0 YW50aW4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+DQo+IOWPkemAgeaXtumXtDogRnJp ZGF5LCBPY3RvYmVyIDIyLCAyMDIxIDEyOjI1IEFNDQo+IOaUtuS7tuS6ujogRmVpZmVpIFdhbmcg PEZlaWZlaS5XYW5nMkBhcm0uY29tPjsgUnVpZmVuZyBXYW5nDQo+IDxSdWlmZW5nLldhbmdAYXJt LmNvbT4NCj4g5oqE6YCBOiBkZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPg0KPiDkuLvpopg6 IFJFOiBbUEFUQ0ggdjQgMS81XSBlYWw6IGFkZCBuZXcgZGVmaW5pdGlvbnMgZm9yIHdhaXQgc2No ZW1lDQo+IA0KPiA+IEludHJvZHVjZSBtYWNyb3MgYXMgZ2VuZXJpYyBpbnRlcmZhY2UgZm9yIGFk ZHJlc3MgbW9uaXRvcmluZy4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEZlaWZlaSBXYW5nIDxm ZWlmZWkud2FuZzJAYXJtLmNvbT4NCj4gPiBSZXZpZXdlZC1ieTogUnVpZmVuZyBXYW5nIDxydWlm ZW5nLndhbmdAYXJtLmNvbT4NCj4gPiAtLS0NCj4gPiAgbGliL2VhbC9hcm0vaW5jbHVkZS9ydGVf cGF1c2VfNjQuaCAgfCAxMjYNCj4gPiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tICBsaWIv ZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcGF1c2UuaCB8DQo+ID4gMzIgKysrKysrKw0KPiA+ICAy IGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkNCj4gPg0K PiA+IGRpZmYgLS1naXQgYS9saWIvZWFsL2FybS9pbmNsdWRlL3J0ZV9wYXVzZV82NC5oDQo+ID4g Yi9saWIvZWFsL2FybS9pbmNsdWRlL3J0ZV9wYXVzZV82NC5oDQo+ID4gaW5kZXggZTg3ZDEwYjhj Yy4uMjM5NTRjMmRlMiAxMDA2NDQNCj4gPiAtLS0gYS9saWIvZWFsL2FybS9pbmNsdWRlL3J0ZV9w YXVzZV82NC5oDQo+ID4gKysrIGIvbGliL2VhbC9hcm0vaW5jbHVkZS9ydGVfcGF1c2VfNjQuaA0K PiA+IEBAIC0zMSwyMCArMzEsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIHJ0ZV9wYXVzZSh2b2lk KQ0KPiA+ICAvKiBQdXQgcHJvY2Vzc29yIGludG8gbG93IHBvd2VyIFdGRShXYWl0IEZvciBFdmVu dCkgc3RhdGUuICovDQo+ID4gI2RlZmluZSBfX1dGRSgpIHsgYXNtIHZvbGF0aWxlKCJ3ZmUiIDog OiA6ICJtZW1vcnkiKTsgfQ0KPiA+DQo+ID4gLXN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZv aWQNCj4gPiAtcnRlX3dhaXRfdW50aWxfZXF1YWxfMTYodm9sYXRpbGUgdWludDE2X3QgKmFkZHIs IHVpbnQxNl90IGV4cGVjdGVkLA0KPiA+IC0JCWludCBtZW1vcmRlcikNCj4gPiAtew0KPiA+IC0J dWludDE2X3QgdmFsdWU7DQo+ID4gLQ0KPiA+IC0JYXNzZXJ0KG1lbW9yZGVyID09IF9fQVRPTUlD X0FDUVVJUkUgfHwgbWVtb3JkZXIgPT0NCj4gX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4gLQ0KPiA+ IC0JLyoNCj4gPiAtCSAqIEF0b21pYyBleGNsdXNpdmUgbG9hZCBmcm9tIGFkZHIsIGl0IHJldHVy bnMgdGhlIDE2LWJpdCBjb250ZW50IG9mDQo+ID4gLQkgKiAqYWRkciB3aGlsZSBtYWtpbmcgaXQg J21vbml0b3JlZCcsd2hlbiBpdCBpcyB3cml0dGVuIGJ5IHNvbWVvbmUNCj4gPiAtCSAqIGVsc2Us IHRoZSAnbW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlzIGdlbmVyYXRl ZA0KPiA+IC0JICogaW1wbGljaXRseSB0byBleGl0IFdGRS4NCj4gPiAtCSAqLw0KPiA+ICsvKg0K PiA+ICsgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRoZSAx Ni1iaXQgY29udGVudCBvZg0KPiA+ICsgKiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21vbml0b3Jl ZCcsIHdoZW4gaXQgaXMgd3JpdHRlbiBieSBzb21lb25lDQo+ID4gKyAqIGVsc2UsIHRoZSAnbW9u aXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlzIGdlbmVyYXRlZA0KPiA+ICsg KiBpbXBsaWNpdGx5IHRvIGV4aXQgV0ZFLg0KPiA+ICsgKi8NCj4gPiAgI2RlZmluZSBfX0xPQURf RVhDXzE2KHNyYywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAgICAgICAgIFwNCj4gPiAgCWlmICht ZW1vcmRlciA9PSBfX0FUT01JQ19SRUxBWEVEKSB7ICAgICAgICAgICAgICAgXA0KPiA+ICAJCWFz bSB2b2xhdGlsZSgibGR4cmggJXdbdG1wXSwgWyV4W2FkZHJdXSIgIFwgQEAgLTU4LDYgKzUwLDUy DQo+IEBADQo+ID4gcnRlX3dhaXRfdW50aWxfZXF1YWxfMTYodm9sYXRpbGUgdWludDE2X3QgKmFk ZHIsIHVpbnQxNl90IGV4cGVjdGVkLA0KPiA+ICAJCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAg ICAgICAgICAgXA0KPiA+ICAJfSB9DQo+ID4NCj4gPiArLyoNCj4gPiArICogQXRvbWljIGV4Y2x1 c2l2ZSBsb2FkIGZyb20gYWRkciwgaXQgcmV0dXJucyB0aGUgMzItYml0IGNvbnRlbnQgb2YNCj4g PiArICogKmFkZHIgd2hpbGUgbWFraW5nIGl0ICdtb25pdG9yZWQnLCB3aGVuIGl0IGlzIHdyaXR0 ZW4gYnkgc29tZW9uZQ0KPiA+ICsgKiBlbHNlLCB0aGUgJ21vbml0b3JlZCcgc3RhdGUgaXMgY2xl YXJlZCBhbmQgYSBldmVudCBpcyBnZW5lcmF0ZWQNCj4gPiArICogaW1wbGljaXRseSB0byBleGl0 IFdGRS4NCj4gPiArICovDQo+ID4gKyNkZWZpbmUgX19MT0FEX0VYQ18zMihzcmMsIGRzdCwgbWVt b3JkZXIpIHsgICAgICAgICAgICAgIFwNCj4gPiArCWlmIChtZW1vcmRlciA9PSBfX0FUT01JQ19S RUxBWEVEKSB7ICAgICAgICAgICAgICBcDQo+ID4gKwkJYXNtIHZvbGF0aWxlKCJsZHhyICV3W3Rt cF0sIFsleFthZGRyXV0iICBcDQo+ID4gKwkJCTogW3RtcF0gIj0mciIgKGRzdCkgICAgICAgICAg ICAgIFwNCj4gPiArCQkJOiBbYWRkcl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ICsJ CQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKwl9IGVsc2UgeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsJCWFzbSB2b2xhdGls ZSgibGRheHIgJXdbdG1wXSwgWyV4W2FkZHJdXSIgXA0KPiA+ICsJCQk6IFt0bXBdICI9JnIiIChk c3QpICAgICAgICAgICAgICBcDQo+ID4gKwkJCTogW2FkZHJdICJyIihzcmMpICAgICAgICAgICAg ICAgIFwNCj4gPiArCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsJ fSB9DQo+ID4gKw0KPiA+ICsvKg0KPiA+ICsgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBh ZGRyLCBpdCByZXR1cm5zIHRoZSA2NC1iaXQgY29udGVudCBvZg0KPiA+ICsgKiAqYWRkciB3aGls ZSBtYWtpbmcgaXQgJ21vbml0b3JlZCcsIHdoZW4gaXQgaXMgd3JpdHRlbiBieSBzb21lb25lDQo+ ID4gKyAqIGVsc2UsIHRoZSAnbW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50 IGlzIGdlbmVyYXRlZA0KPiA+ICsgKiBpbXBsaWNpdGx5IHRvIGV4aXQgV0ZFLg0KPiA+ICsgKi8N Cj4gPiArI2RlZmluZSBfX0xPQURfRVhDXzY0KHNyYywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAg ICAgICAgXA0KPiA+ICsJaWYgKG1lbW9yZGVyID09IF9fQVRPTUlDX1JFTEFYRUQpIHsgICAgICAg ICAgICAgIFwNCj4gPiArCQlhc20gdm9sYXRpbGUoImxkeHIgJXhbdG1wXSwgWyV4W2FkZHJdXSIg IFwNCj4gPiArCQkJOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAgXA0KPiA+ICsJCQk6 IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAgICBcDQo+ID4gKwkJCTogIm1lbW9yeSIpOyAg ICAgICAgICAgICAgICAgICAgIFwNCj4gPiArCX0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKwkJYXNtIHZvbGF0aWxlKCJsZGF4ciAleFt0bXBd LCBbJXhbYWRkcl1dIiBcDQo+ID4gKwkJCTogW3RtcF0gIj0mciIgKGRzdCkgICAgICAgICAgICAg IFwNCj4gPiArCQkJOiBbYWRkcl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ICsJCQk6 ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKwl9IH0NCj4gPiArDQo+ID4g K3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiArcnRlX3dhaXRfdW50aWxfZXF1 YWxfMTYodm9sYXRpbGUgdWludDE2X3QgKmFkZHIsIHVpbnQxNl90IGV4cGVjdGVkLA0KPiA+ICsJ CWludCBtZW1vcmRlcikNCj4gPiArew0KPiA+ICsJdWludDE2X3QgdmFsdWU7DQo+ID4gKw0KPiA+ ICsJYXNzZXJ0KG1lbW9yZGVyID09IF9fQVRPTUlDX0FDUVVJUkUgfHwgbWVtb3JkZXIgPT0NCj4g PiArX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4gKw0KPiA+ICAJX19MT0FEX0VYQ18xNihhZGRyLCB2 YWx1ZSwgbWVtb3JkZXIpDQo+ID4gIAlpZiAodmFsdWUgIT0gZXhwZWN0ZWQpIHsNCj4gPiAgCQlf X1NFVkwoKQ0KPiA+IEBAIC02Niw3ICsxMDQsNiBAQCBydGVfd2FpdF91bnRpbF9lcXVhbF8xNih2 b2xhdGlsZSB1aW50MTZfdCAqYWRkciwNCj4gdWludDE2X3QgZXhwZWN0ZWQsDQo+ID4gIAkJCV9f TE9BRF9FWENfMTYoYWRkciwgdmFsdWUsIG1lbW9yZGVyKQ0KPiA+ICAJCX0gd2hpbGUgKHZhbHVl ICE9IGV4cGVjdGVkKTsNCj4gPiAgCX0NCj4gPiAtI3VuZGVmIF9fTE9BRF9FWENfMTYNCj4gPiAg fQ0KPiA+DQo+ID4gIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiBAQCAtNzcs MjUgKzExNCw2IEBAIHJ0ZV93YWl0X3VudGlsX2VxdWFsXzMyKHZvbGF0aWxlIHVpbnQzMl90ICph ZGRyLA0KPiA+IHVpbnQzMl90IGV4cGVjdGVkLA0KPiA+DQo+ID4gIAlhc3NlcnQobWVtb3JkZXIg PT0gX19BVE9NSUNfQUNRVUlSRSB8fCBtZW1vcmRlciA9PQ0KPiA+IF9fQVRPTUlDX1JFTEFYRUQp Ow0KPiA+DQo+ID4gLQkvKg0KPiA+IC0JICogQXRvbWljIGV4Y2x1c2l2ZSBsb2FkIGZyb20gYWRk ciwgaXQgcmV0dXJucyB0aGUgMzItYml0IGNvbnRlbnQgb2YNCj4gPiAtCSAqICphZGRyIHdoaWxl IG1ha2luZyBpdCAnbW9uaXRvcmVkJyx3aGVuIGl0IGlzIHdyaXR0ZW4gYnkgc29tZW9uZQ0KPiA+ IC0JICogZWxzZSwgdGhlICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQgYW5kIGEgZXZlbnQg aXMgZ2VuZXJhdGVkDQo+ID4gLQkgKiBpbXBsaWNpdGx5IHRvIGV4aXQgV0ZFLg0KPiA+IC0JICov DQo+ID4gLSNkZWZpbmUgX19MT0FEX0VYQ18zMihzcmMsIGRzdCwgbWVtb3JkZXIpIHsgICAgICAg ICAgICAgIFwNCj4gPiAtCWlmIChtZW1vcmRlciA9PSBfX0FUT01JQ19SRUxBWEVEKSB7ICAgICAg ICAgICAgICBcDQo+ID4gLQkJYXNtIHZvbGF0aWxlKCJsZHhyICV3W3RtcF0sIFsleFthZGRyXV0i ICBcDQo+ID4gLQkJCTogW3RtcF0gIj0mciIgKGRzdCkgICAgICAgICAgICAgIFwNCj4gPiAtCQkJ OiBbYWRkcl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+IC0JCQk6ICJtZW1vcnkiKTsg ICAgICAgICAgICAgICAgICAgICBcDQo+ID4gLQl9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+IC0JCWFzbSB2b2xhdGlsZSgibGRheHIgJXdbdG1w XSwgWyV4W2FkZHJdXSIgXA0KPiA+IC0JCQk6IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAg ICBcDQo+ID4gLQkJCTogW2FkZHJdICJyIihzcmMpICAgICAgICAgICAgICAgIFwNCj4gPiAtCQkJ OiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+IC0JfSB9DQo+ID4gLQ0KPiA+ ICAJX19MT0FEX0VYQ18zMihhZGRyLCB2YWx1ZSwgbWVtb3JkZXIpDQo+ID4gIAlpZiAodmFsdWUg IT0gZXhwZWN0ZWQpIHsNCj4gPiAgCQlfX1NFVkwoKQ0KPiA+IEBAIC0xMDQsNyArMTIyLDYgQEAg cnRlX3dhaXRfdW50aWxfZXF1YWxfMzIodm9sYXRpbGUgdWludDMyX3QgKmFkZHIsDQo+IHVpbnQz Ml90IGV4cGVjdGVkLA0KPiA+ICAJCQlfX0xPQURfRVhDXzMyKGFkZHIsIHZhbHVlLCBtZW1vcmRl cikNCj4gPiAgCQl9IHdoaWxlICh2YWx1ZSAhPSBleHBlY3RlZCk7DQo+ID4gIAl9DQo+ID4gLSN1 bmRlZiBfX0xPQURfRVhDXzMyDQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgX19ydGVfYWx3YXlz X2lubGluZSB2b2lkDQo+ID4gQEAgLTExNSwyNSArMTMyLDYgQEAgcnRlX3dhaXRfdW50aWxfZXF1 YWxfNjQodm9sYXRpbGUgdWludDY0X3QgKmFkZHIsDQo+ID4gdWludDY0X3QgZXhwZWN0ZWQsDQo+ ID4NCj4gPiAgCWFzc2VydChtZW1vcmRlciA9PSBfX0FUT01JQ19BQ1FVSVJFIHx8IG1lbW9yZGVy ID09DQo+ID4gX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4NCj4gPiAtCS8qDQo+ID4gLQkgKiBBdG9t aWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRoZSA2NC1iaXQgY29udGVu dCBvZg0KPiA+IC0JICogKmFkZHIgd2hpbGUgbWFraW5nIGl0ICdtb25pdG9yZWQnLHdoZW4gaXQg aXMgd3JpdHRlbiBieSBzb21lb25lDQo+ID4gLQkgKiBlbHNlLCB0aGUgJ21vbml0b3JlZCcgc3Rh dGUgaXMgY2xlYXJlZCBhbmQgYSBldmVudCBpcyBnZW5lcmF0ZWQNCj4gPiAtCSAqIGltcGxpY2l0 bHkgdG8gZXhpdCBXRkUuDQo+ID4gLQkgKi8NCj4gPiAtI2RlZmluZSBfX0xPQURfRVhDXzY0KHNy YywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAgICAgICAgXA0KPiA+IC0JaWYgKG1lbW9yZGVyID09 IF9fQVRPTUlDX1JFTEFYRUQpIHsgICAgICAgICAgICAgIFwNCj4gPiAtCQlhc20gdm9sYXRpbGUo ImxkeHIgJXhbdG1wXSwgWyV4W2FkZHJdXSIgIFwNCj4gPiAtCQkJOiBbdG1wXSAiPSZyIiAoZHN0 KSAgICAgICAgICAgICAgXA0KPiA+IC0JCQk6IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAg ICBcDQo+ID4gLQkJCTogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiAtCX0g ZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gLQkJ YXNtIHZvbGF0aWxlKCJsZGF4ciAleFt0bXBdLCBbJXhbYWRkcl1dIiBcDQo+ID4gLQkJCTogW3Rt cF0gIj0mciIgKGRzdCkgICAgICAgICAgICAgIFwNCj4gPiAtCQkJOiBbYWRkcl0gInIiKHNyYykg ICAgICAgICAgICAgICAgXA0KPiA+IC0JCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAg ICBcDQo+ID4gLQl9IH0NCj4gPiAtDQo+ID4gIAlfX0xPQURfRVhDXzY0KGFkZHIsIHZhbHVlLCBt ZW1vcmRlcikNCj4gPiAgCWlmICh2YWx1ZSAhPSBleHBlY3RlZCkgew0KPiA+ICAJCV9fU0VWTCgp DQo+ID4gQEAgLTE0Myw2ICsxNDEsMjYgQEAgcnRlX3dhaXRfdW50aWxfZXF1YWxfNjQodm9sYXRp bGUgdWludDY0X3QgKmFkZHIsDQo+IHVpbnQ2NF90IGV4cGVjdGVkLA0KPiA+ICAJCX0gd2hpbGUg KHZhbHVlICE9IGV4cGVjdGVkKTsNCj4gPiAgCX0NCj4gPiAgfQ0KPiA+ICsNCj4gPiArI2RlZmlu ZSBydGVfd2FpdF9ldmVudChhZGRyLCBtYXNrLCBleHBlY3RlZCwgY29uZCwgbWVtb3JkZXIsIHNp emUpIFwNCj4gPiArZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArCVJURV9CVUlMRF9CVUdfT04oIV9fYnVpbHRp bl9jb25zdGFudF9wKG1lbW9yZGVyKSk7ICAgICAgICAgXA0KPiA+ICsJUlRFX0JVSUxEX0JVR19P TihtZW1vcmRlciAhPSBfX0FUT01JQ19BQ1FVSVJFICYmICAgICAgICAgICBcDQo+ID4gKwltZW1v cmRlciAhPSBfX0FUT01JQ19SRUxBWEVEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN Cj4gPiArCVJURV9CVUlMRF9CVUdfT04oc2l6ZSAhPSAxNiAmJiBzaXplICE9IDMyICYmIHNpemUg IT0gNjQpOyAgXA0KPiA+ICsJdWludCMjc2l6ZV90IHZhbHVlOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKwlfX0xPQURfRVhDXyMjc2l6ZShhZGRyLCB2YWx1 ZSwgbWVtb3JkZXIpICAgICAgICAgICAgICAgICAgIFwNCj4gPiArCWlmICgodmFsdWUgJiBtYXNr KSBjb25kIGV4cGVjdGVkKSB7CQkgICAgICAgICAgIFwNCj4gPiArCQlfX1NFVkwoKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKwkJZG8geyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsJCQlfX1dGRSgp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsJCQlfX0xPQURfRVhD XyMjc2l6ZShhZGRyLCB2YWx1ZSwgbWVtb3JkZXIpICAgXA0KPiA+ICsJCX0gd2hpbGUgKCh2YWx1 ZSAmIG1hc2spIGNvbmQgZXhwZWN0ZWQpOyAgICAgICAgICAgIFwNCj4gPiArCX0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICt9 IHdoaWxlICgwKQ0KPiA+ICsNCj4gPiArI3VuZGVmIF9fTE9BRF9FWENfMTYNCj4gPiArI3VuZGVm IF9fTE9BRF9FWENfMzINCj4gPiAgI3VuZGVmIF9fTE9BRF9FWENfNjQNCj4gPg0KPiA+ICAjdW5k ZWYgX19TRVZMDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9lYWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9w YXVzZS5oDQo+ID4gYi9saWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcGF1c2UuaA0KPiA+IGlu ZGV4IDY2OGVlNGExODQuLjIwYTVkMmE5ZmQgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2VhbC9pbmNs dWRlL2dlbmVyaWMvcnRlX3BhdXNlLmgNCj4gPiArKysgYi9saWIvZWFsL2luY2x1ZGUvZ2VuZXJp Yy9ydGVfcGF1c2UuaA0KPiA+IEBAIC0xMTEsNiArMTExLDM4IEBAIHJ0ZV93YWl0X3VudGlsX2Vx dWFsXzY0KHZvbGF0aWxlIHVpbnQ2NF90ICphZGRyLA0KPiB1aW50NjRfdCBleHBlY3RlZCwNCj4g PiAgCXdoaWxlIChfX2F0b21pY19sb2FkX24oYWRkciwgbWVtb3JkZXIpICE9IGV4cGVjdGVkKQ0K PiA+ICAJCXJ0ZV9wYXVzZSgpOw0KPiA+ICB9DQo+ID4gKw0KPiA+ICsvKg0KPiA+ICsgKiBXYWl0 IHVudGlsICphZGRyIGJyZWFrcyB0aGUgY29uZGl0aW9uLCB3aXRoIGEgcmVsYXhlZCBtZW1vcnkN Cj4gPiArICogb3JkZXJpbmcgbW9kZWwgbWVhbmluZyB0aGUgbG9hZHMgYXJvdW5kIHRoaXMgQVBJ IGNhbiBiZSByZW9yZGVyZWQuDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSBhZGRyDQo+ID4gKyAq ICBBIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSBsb2NhdGlvbi4NCj4gPiArICogQHBhcmFtIG1hc2sN Cj4gPiArICogIEEgbWFzayBvZiB2YWx1ZSBiaXRzIGluIGludGVyZXN0Lg0KPiA+ICsgKiBAcGFy YW0gZXhwZWN0ZWQNCj4gPiArICogIEEgMTYtYml0IGV4cGVjdGVkIHZhbHVlIHRvIGJlIGluIHRo ZSBtZW1vcnkgbG9jYXRpb24uDQo+ID4gKyAqIEBwYXJhbSBjb25kDQo+ID4gKyAqICBBIHN5bWJv bCByZXByZXNlbnRpbmcgdGhlIGNvbmRpdGlvbiAoPT0sICE9KS4NCj4gPiArICogQHBhcmFtIG1l bW9yZGVyDQo+ID4gKyAqICBUd28gZGlmZmVyZW50IG1lbW9yeSBvcmRlcnMgdGhhdCBjYW4gYmUg c3BlY2lmaWVkOg0KPiA+ICsgKiAgX19BVE9NSUNfQUNRVUlSRSBhbmQgX19BVE9NSUNfUkVMQVhF RC4gVGhlc2UgbWFwIHRvDQo+ID4gKyAqICBDKysxMSBtZW1vcnkgb3JkZXJzIHdpdGggdGhlIHNh bWUgbmFtZXMsIHNlZSB0aGUgQysrMTEgc3RhbmRhcmQNCj4gPiArb3INCj4gPiArICogIHRoZSBH Q0Mgd2lraSBvbiBhdG9taWMgc3luY2hyb25pemF0aW9uIGZvciBkZXRhaWxlZCBkZWZpbml0aW9u Lg0KPiA+ICsgKiBAcGFyYW0gc2l6ZQ0KPiA+ICsgKiBUaGUgYml0IHNpemUgb2YgKmFkZHI6DQo+ ID4gKyAqIEl0IGlzIHVzZWQgZm9yIGFybSBhcmNoaXRlY3R1cmUgdG8gY2hvb3NlIGxvYWQgaW5z dHJ1Y3Rpb25zLA0KPiA+ICsgKiBhbmQgdGhlIG9wdGlvbmFsIHZhbHVlIGlzIDE2LCAzMiBhbmQg NjQuDQo+ID4gKyAqLw0KPiA+ICsjZGVmaW5lIHJ0ZV93YWl0X2V2ZW50KGFkZHIsIG1hc2ssIGV4 cGVjdGVkLCBjb25kLCBtZW1vcmRlciwgc2l6ZSkgICAgIFwNCj4gPiArZG8geyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQo+ID4gKwlSVEVfQlVJTERfQlVHX09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChtZW1vcmRlcikp OyAgICAgICAgICAgICBcDQo+ID4gKwlSVEVfQlVJTERfQlVHX09OKG1lbW9yZGVyICE9IF9fQVRP TUlDX0FDUVVJUkUgJiYgICAgICAgICAgICAgICBcDQo+ID4gKwkJCQltZW1vcmRlciAhPSBfX0FU T01JQ19SRUxBWEVEKTsgICAgICAgICBcDQo+ID4gKwlSVEVfQlVJTERfQlVHX09OKHNpemUgIT0g MTYgJiYgc2l6ZSAhPSAzMiAmJiBzaXplICE9IDY0KTsgICAgICBcDQo+IA0KPiBJIGRvbid0JyBy ZWFsbHkgdW5kZXJzdGFuZCB3aHkgeW91IGRvIG5lZWQgJ3NpemUnIHBhc3NlZCBhcyBwYXJhbWV0 ZXIuDQo+IENhbid0IGl0IGJlOg0KPiBzaXplX3Qgc2l6ZSA9IHNpemVvZigqKGFkZHIpKTsNCj4g QW5kIHRoZW46DQo+IFJURV9CVUlMRF9CVUdfT04oc2l6ZSAhPSBzaXplb2YodWludDE2X3QpICYm IHNpemUgIT0gc2l6ZW9mKHVpbnQzMl90KSAmJg0KPiBzaXplICE9IHNpemVvZih1aW50NjRfdCkp OyA/DQo+IA0KPiA+ICsJd2hpbGUgKChfX2F0b21pY19sb2FkX24oYWRkciwgbWVtb3JkZXIpICYg bWFzaykgY29uZCBleHBlY3RlZCkgXA0KPiA+ICsJCXJ0ZV9wYXVzZSgpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IA0KPiBKdXN0IHRvIHJlcGVhdCBteSBv d24gY29tbWVudCBmcm9tIHByZXZpb3VzIHZlcnNpb24gcmV2aWV3Og0KPiBwdXQgKCkgYXJvdW5k IG1hY3JvIHBhcmFtZXRlcnMgaW4gdGhlIG1hY3JvIGJvZHkuDQo+IFdpbGwgc2F2ZSBmcm9tIGEg bG90IG9mIHVuZXhwZWN0ZWQgdHJvdWJsZXMuDQoNClNvcnJ5IEkgZGlkbid0IGNhdGNoIHRoZSBw b2ludC4NCkluIHRoaXMgdmVyc2lvbiwgSSBmaXJzdGx5IHdhbnQgdG8gdXNlICdfX0xPQURfRVhD XyMjc2l6ZScgdG8gY2hvb3NlICwgc28gSSB1c2Ugc2l6ZQ0KYXMgYSBwYXJhbWV0ZXIuICBBbmQg aW4gdGhlIG5leHQgdmVyc2lvbiwgSSB3aWxsIHVwZGF0ZSB0aGlzIGFz77yaDQoNCiNkZWZpbmUg X19MT0FEX0VYQyhzcmMsIGRzdCwgbWVtb3JkZXIsIHNpemUpIHsgICAgXA0KCWlmIChzaXplID09 IDE2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQoJCV9fTE9BRF9FWENfMTYoc3Jj LCBkc3QsIG1lbW9yZGVyKSAgICAgXA0KCWVsc2UgaWYgKHNpemUgPT0gMzIpICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQoJCV9fTE9BRF9FWENfMzIoc3JjLCBkc3QsIG1lbW9yZGVyKSAgICAg XA0KCWVsc2UgaWYgKHNpemUgPT0gNjQpICAgICAgICAgICAgICAgICAgICAgICAgICBcDQoJCV9f TE9BRF9FWENfNjQoc3JjLCBkc3QsIG1lbW9yZGVyKSAgICAgXA0KfQ0KDQojZGVmaW5lIHJ0ZV93 YWl0X2V2ZW50KGFkZHIsIG1hc2ssIGNvbmQsIGV4cGVjdGVkLCBtZW1vcmRlcikgICAgXA0KZG8g eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCglSVEVfQlVJTERfQlVHX09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChtZW1vcmRlcikp OyAgICAgIFwNCglSVEVfQlVJTERfQlVHX09OKG1lbW9yZGVyICE9IF9fQVRPTUlDX0FDUVVJUkUg JiYgICAgICAgIFwNCgkJCQltZW1vcmRlciAhPSBfX0FUT01JQ19SRUxBWEVEKTsgIFwNCgl1aW50 MzJfdCBzaXplID0gc2l6ZW9mKCphZGRyKSA8PCAzOyAgICAgICAgICAgICAgICAgICAgIFwNCgl0 eXBlb2YoKmFkZHIpIHZhbHVlID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CglfX0xPQURfRVhDKGFkZHIsIHZhbHVlLCBtZW1vcmRlciwgc2l6ZSkgICAgICAgICAgICAgICAg IFwNCglpZiAoKHZhbHVlICYgbWFzaykgY29uZCBleHBlY3RlZCkgeyAgICAgICAgICAgICAgICAg ICAgIFwNCgkJX19TRVZMKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KCQlkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQoJ CQlfX1dGRSgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KCQkJX19MT0FEX0VY QyhhZGRyLCB2YWx1ZSwgbWVtb3JkZXIsIHNpemUpIFwNCgkJfSB3aGlsZSAoKHZhbHVlICYgbWFz aykgY29uZCBleHBlY3RlZCk7ICAgICAgICAgXA0KCX0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KfSB3aGlsZSAoMCkNCg==