From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id BAAD04AC1D for ; Sat, 15 Jun 2024 16:05:49 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0139768D627; Sat, 15 Jun 2024 19:05:47 +0300 (EEST) Received: from AUS01-SY4-obe.outbound.protection.outlook.com (mail-sy4aus01olkn2178.outbound.protection.outlook.com [40.92.62.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A63C868D586 for ; Sat, 15 Jun 2024 19:05:40 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JABbB7qqKnJI8A35IHSnxR6LCiFSCyXOv3oO10ufsqflbri6GvSC+CZEhvlv96rMwaAjgu6Xgbhgt4TPkfTr67HGDkmBPBP9SmRndUZVbTJTyklDzGWwuecWAPH1birZNXUjuZM9RYErls+GHVo8p27WIEwjw8dyrUTgQv0+jijPmkOYJTquly2JMm5ykI+iAB9lN4QloMl6CDfqKvVtuyqPkxMn8n7U/zy/r9DLG7YgWg4uwrLlX3B30DxIQF/TTVUUifOedGWiVc/5SlqBjiu4c+Q5kbVf/GX3odPrOS33NgX618pKLelotg0ACH98mFazqUUJzCbfdAEhJaTclQ== 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=UuYRuk4MInsgDJNB3fLUobz7AYvj4eKcXv3URrBar68=; b=Ho595cGHi4DJjQvlcycqD/hSHi4/hItG57o+fbt6G2rtONZfGI64FziUqKRME4Fv1rvJUQOue0JJOa8KB22XEEucOn6I/WAf6z7IdwhVwIp5NBZbg1Lrcl48plz/48hEuJjHXnQlrCTekjX1wA9ENKlPuIbztyBJCKeywozrN6e3ntUywZoISo41NyIKZSs2OCA1LFr5o5ZgDuqAcaoQEyWFfYNr+RSJasqF8Pq7YUEGJfT/sJllM7Rpj/Z+1/qi1GPVR30f6XZQyBlFeLGVL9Dl/lzKHgoVGOdQqoVQUEgRhSxrbkD/EDGk635/tvMcpKts6HdAUv914Z5Lb0If5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UuYRuk4MInsgDJNB3fLUobz7AYvj4eKcXv3URrBar68=; b=iagKV9xD4sRwuSqaSyQ6Qj8JIoHjKc5kZVJDvSUvY04gmIeFOUmPjBpUgrdGtJycgymuJyaV8JK3u3GIhq7jgKys/k0D0BUtlC1eo+gZGzwrvmNmoJeK0uhZns19r6hhXsRQZ+Ik3dNCuooET6w6tEdr5+06sEt/OumlaYHw8mAWp0PQlR7tROpJ5TpwbaRBDxBgs5A3CMs/ET2zEmfZaNsPsEU4u+k7rD6CVbkMHF8u2rZmG/v1rdZVIE0kYi4N782bkFN0n2kXNJ1Lj+XhzM6EbaDEtg2OIsE3Gs3GpRVlYEjaP2qb73/bRxjs/P5QXPBhsuvOH/DPZNLQJuxQUA== Received: from SY7P282MB4502.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:27a::13) by SYYP282MB1085.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:bc::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.29; Sat, 15 Jun 2024 16:05:34 +0000 Received: from SY7P282MB4502.AUSP282.PROD.OUTLOOK.COM ([fe80::81f7:34e4:ff6f:239d]) by SY7P282MB4502.AUSP282.PROD.OUTLOOK.COM ([fe80::81f7:34e4:ff6f:239d%6]) with mapi id 15.20.7633.033; Sat, 15 Jun 2024 16:05:34 +0000 From: Tong Wu To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v13 06/15] avcodec/vaapi_encode: move the dpb logic from VAAPI to base layer Thread-Index: AQHatZd9q01OMpOj40uhXHX2ybSPbrG8bkEAgAADkICAABgjgIADvtAAgAOVZgCAAwo5AIACKCIQ Date: Sat, 15 Jun 2024 16:05:34 +0000 Message-ID: References: <20240603091909.1161-1-tong1.wu@intel.com> <20240603091909.1161-6-tong1.wu@intel.com> <6c6c3292-f7a9-4862-8ac7-ad40f457b4b5@lynne.ee> <739da263-f7f6-4747-a6eb-ab74a934c7cc@lynne.ee> <3498433c-94e8-48d3-97b2-0f1fe328e7e8@lynne.ee> In-Reply-To: <3498433c-94e8-48d3-97b2-0f1fe328e7e8@lynne.ee> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [pPpkoC6/bGenAjCdSduDgAgxsxqELVP9] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SY7P282MB4502:EE_|SYYP282MB1085:EE_ x-ms-office365-filtering-correlation-id: b5430c16-48b2-4660-48f8-08dc8d54fcfc x-microsoft-antispam: BCL:0; ARA:14566002|461199025|3412199022|4302099010|440099025|102099029|1602099009; x-microsoft-antispam-message-info: Y9XeH8v0TivEh2xPb/q/dgEI3bTTWmxar/g2GdKDraHGrkr/k/Xi1XnASn04xRmhfXPYN+6EKeSSbW5yiPCgSdnx+rMxEBWpweI2zaUs0aw0OWCwsgVONPF9mJL80OWylUjAO5Byv0IK6i9yv/TvnBHhfDZZvecL4EMUmMYMhJkH+Xsix6wuB1QzhkZHoNjy/5FBf1Jjex2Lndu3SDn8pC2SUg/S5e65HpE9Jd7KXuILFRw8D1bbrckYz7YYQTARWXQeGWQwcS2OuS8RLz2dQsB2hQm/n2vkptuHDIpNdJTEhApun6l8ZKUaz1Ii9dnytSEtu3r4298zVz+Vt6AXFXsh06jRsXouu9lVmeLR5Z9MuST7UwqC/5TB6X8b7RbZQAin6+rXgor/YWvT7bNd9UvEoo/GaXXlve3Yjnq8Z31shR8yib86T3A5Qkkcbolq//So2qu5SbJGpzv8pNOTf2CdtxgAa2Sa6EmPmoVAlyaCiCKTxVRWVbd8UjN3L+WniIDwuUsBwpYRG0sceYcvH9DPRIEpkzkVitiUjC/oQthnsfQH3cAsUufZLSlZ6qdbzCQvXxgwb1F7JkRFllFFnozF/j9DTknzqxAqbvAKJlTCRyS8BcuU59ha5l2GIqgBLVs76e4xnStInzYwE2B1SlqWC6aWEFM+Stla0wbN35fqLVsUHcCHtxxoa6HeFnzf x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dFBOb2d0RDUxS3dCV0I4Q2s3NElqK3ZUM2JyRk9lRE9adGsyamlOQzhNTU1D?= =?utf-8?B?b3FXVlFFM3Qyamp6WkhMelJCcGNOeWs5TWk4ZEZjNDlIMWozbUtPMC82TEsx?= =?utf-8?B?VElRaW1USTJHcTVnVnFvQ3Z6RkJyT2xsZzMzWmFOY2JkSVgzbnJJcWx0NjZJ?= =?utf-8?B?Q2tZaUtESU02TjgwMzF4T0tUSS9qeXNHMzErOGFWbXc1dWdOUmo0TU15UVV2?= =?utf-8?B?RTRQdUEyOWY0TEhtZ2JTd1ZhMGxsajA3SmFFUHk3cVZ3U2ZIcUE1WFpLUmRt?= =?utf-8?B?aTlYL29YbXJ0cjhka213ck9RbDVLRlBaVGNzUk5xN0MvR00rSGhYdFFINDlY?= =?utf-8?B?QXRnYzV6dHN4Rnd5OGhJdHRmdUVwVUpVeWFocDN1SWxOYTE4dFNSRnVneEdU?= =?utf-8?B?aEk5cUpWbWVWRHk4MGgycGdOcFRmREY1aWZyOTBxcU10WjRHSnNFVnUrTjRn?= =?utf-8?B?K0dGRTlaS1N6YVlHNGFRSklsdm9JZHJ6SVhMNGs3NVdPWjdsdGpKcXlzdk4v?= =?utf-8?B?dFFXR05yWWUvalhDK3VIbGpjaEJVLzBUNUd3Y0pjeWxjNitCeDZpZGNPemRx?= =?utf-8?B?eUhjeXNyRFQrbGM3MThmRE1wVitIRFBudGxxUFFGSFIyUzk5Qys5QnFPVmFU?= =?utf-8?B?WWRGVW9YWENzcWhuQkNhRnRSNnl3TlA2OFNidllQT1h3UHNnNm13cE50Q0xt?= =?utf-8?B?aUx4b1grS2ZCKzhQYXBqTGZaaHJXOTZwVWpKU3FpZEhBNkhrYWxidHl4VjVR?= =?utf-8?B?ZWlZY3FXVm1mU2Y2cXh1NzN5NUFWcEU3RTU2RE5hWlR5QmJMMktMUFhFZW1M?= =?utf-8?B?YXFsTXNkd3B6ZWdIYnkreU1Ua29naG1tVEpsWkhlVnBiVkY5ZUx2QUJ3RjZW?= =?utf-8?B?U3pXejdqRTNMUXNvenN3LzdHTk5jbmxPd3NWWFRYc1hOeGZPVERiNWh2S1F6?= =?utf-8?B?Snh3MEcwSzh1dk5QakhsNStta1Mxcm5mQXJlWnJxSkQxTUdCN0xRdWJmSEhs?= =?utf-8?B?ekM2R2N1RjZvSXNPSTR4cWZqdmtobFBBUGFDTTd1NkZCSUpJZ1pwRTk1aFEw?= =?utf-8?B?NGw3UDNSQW1keTMweUpTK0VNTSs0eVhVRjdid3cvL1hpUVkxK1o5RXJCa3Y2?= =?utf-8?B?a3F1cDJid2lEL1lKNkUrbXFYbEdXaXZobkZkaGdvUkZyczV2bWJLd1hWUjgy?= =?utf-8?B?UXlSVXVXSnBnMjBNZCtJQ0duM2xXbEpxM1hPcCtYc2E5Sks4Y2tSSTRVUW9n?= =?utf-8?B?aWpZeXdUZUtSaXQ4ZG00bU1qT2l6Uk90YUlNRDVHa0Q0R1ZvQVJxWG9xRkJV?= =?utf-8?B?Sk1OTUNPdnZwcTluYjJTcEhNRlNVaVVHQUZKS3c3cWFwR3NPYm8rMTVsbWdj?= =?utf-8?B?N0MvTkFmcVdZcnRyUjJMTE53cmJHVWptZGFuMmlFamJyWlpIdVNGZ3gvN1hZ?= =?utf-8?B?ckFzdlovdlBPWU13c1dNcTVML0RtK0tySGNKc3EzWkN6Q1BFRENFVHUyRHBE?= =?utf-8?B?ZVpFZGpYMXNUOVo0N013R0dKSjRZMGVNQmJOb0p6U253YUlsTTJhRnJLcStO?= =?utf-8?B?SmZCekV2VDlzZHlWY3NCVnp4TENZQ0xCV0kyN0pCaVRXRnNSK0dkU3BzWStJ?= =?utf-8?Q?mgZRDW9G2t0RXR54/Mw8R0sayKKV3HirjELS9VORW5+E=3D?= MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SY7P282MB4502.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: b5430c16-48b2-4660-48f8-08dc8d54fcfc X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jun 2024 16:05:34.0651 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: SYYP282MB1085 Subject: Re: [FFmpeg-devel] [PATCH v13 06/15] avcodec/vaapi_encode: move the dpb logic from VAAPI to base layer X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Lynne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: PiA+PiBGcm9tOiBmZm1wZWctZGV2ZWwgPGZmbXBlZy1kZXZlbC1ib3VuY2VzQGZmbXBlZy5vcmc+ IE9uIEJlaGFsZiBPZg0KPiA+PiBMeW5uZSB2aWEgZmZtcGVnLWRldmVsDQo+ID4+IFNlbnQ6IE1v bmRheSwgSnVuZSAxMCwgMjAyNCAxMDowMSBBTQ0KPiA+PiBUbzogRkZtcGVnIGRldmVsb3BtZW50 IGRpc2N1c3Npb25zIGFuZCBwYXRjaGVzIDxmZm1wZWctDQo+ID4+IGRldmVsQGZmbXBlZy5vcmc+ DQo+ID4+IENjOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPg0KPiA+PiBTdWJqZWN0OiBSZTogW0ZGbXBl Zy1kZXZlbF0gW1BBVENIIHYxMyAwNi8xNV0gYXZjb2RlYy92YWFwaV9lbmNvZGU6DQo+ID4+IG1v dmUgdGhlIGRwYiBsb2dpYyBmcm9tIFZBQVBJIHRvIGJhc2UgbGF5ZXINCj4gPj4NCj4gPj4gT24g MDcvMDYvMjAyNCAxODo0OCwgTHlubmUgd3JvdGU6DQo+ID4+PiBPbiAwNy8wNi8yMDI0IDE3OjIy LCBXdSwgVG9uZzEgd3JvdGU6DQo+ID4+Pj4+IEZyb206IGZmbXBlZy1kZXZlbCA8ZmZtcGVnLWRl dmVsLWJvdW5jZXNAZmZtcGVnLm9yZz4gT24gQmVoYWxmIE9mDQo+ID4+IEx5bm5lDQo+ID4+Pj4+ IHZpYSBmZm1wZWctZGV2ZWwNCj4gPj4+Pj4gU2VudDogRnJpZGF5LCBKdW5lIDcsIDIwMjQgMTE6 MTAgUE0NCj4gPj4+Pj4gVG86IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnDQo+ID4+Pj4+IENjOiBM eW5uZSA8ZGV2QGx5bm5lLmVlPg0KPiA+Pj4+PiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0g W1BBVENIIHYxMyAwNi8xNV0NCj4gYXZjb2RlYy92YWFwaV9lbmNvZGU6DQo+ID4+IG1vdmUNCj4g Pj4+Pj4gdGhlIGRwYiBsb2dpYyBmcm9tIFZBQVBJIHRvIGJhc2UgbGF5ZXINCj4gPj4+Pj4NCj4g Pj4+Pj4gT24gMDMvMDYvMjAyNCAxMToxOCwgdG9uZzEud3UtYXQtaW50ZWwuY29tQGZmbXBlZy5v cmcgd3JvdGU6DQo+ID4+Pj4+PiBGcm9tOiBUb25nIFd1IDx0b25nMS53dUBpbnRlbC5jb20+DQo+ ID4+Pj4+Pg0KPiA+Pj4+Pj4gTW92ZSByZWNlaXZlX3BhY2tldCBmdW5jdGlvbiB0byBiYXNlLiBU aGlzIHJlcXVpcmVzIGFkZGluZw0KPiA+Pj4+Pj4gKmFsbG9jLCAqaXNzdWUsICpvdXRwdXQsICpm cmVlIGFzIGhhcmR3YXJlIGNhbGxiYWNrcy4NCj4gPj4+Pj4+IEhXQmFzZUVuY29kZVBpY3R1cmUg aXMgaW50cm9kdWNlZCBhcyB0aGUgYmFzZSBsYXllciBzdHJ1Y3R1cmUuDQo+ID4+Pj4+PiBUaGUg cmVsYXRlZCBwYXJhbWV0ZXJzIGluIFZBQVBJRW5jb2RlQ29udGV4dCBhcmUgYWxzbyBleHRyYWN0 ZWQNCj4gPj4+Pj4+IHRvIEhXQmFzZUVuY29kZUNvbnRleHQuIFRoZW4NCj4gPj4gRFBCDQo+ID4+ Pj4+PiBtYW5hZ2VtZW50IGxvZ2ljIGNhbiBiZSBmdWxseSBleHRyYWN0ZWQgdG8gYmFzZSBsYXll ciBhcy1pcy4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBUb25nIFd1IDx0b25n MS53dUBpbnRlbC5jb20+DQo+ID4+Pj4+PiAtLS0NCj4gPj4+Pj4+ICDCoMKgIGxpYmF2Y29kZWMv TWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiArLQ0KPiA+Pj4+Pj4gIMKg wqAgbGliYXZjb2RlYy9od19iYXNlX2VuY29kZS5jwqDCoMKgwqAgfCA1OTQNCj4gPj4+Pj4+ICsr KysrKysrKysrKysrKysrKysrKysrKw0KPiA+Pj4+Pj4gIMKgwqAgbGliYXZjb2RlYy9od19iYXNl X2VuY29kZS5owqDCoMKgwqAgfCAxMjQgKysrKysNCj4gPj4+Pj4+ICDCoMKgIGxpYmF2Y29kZWMv dmFhcGlfZW5jb2RlLmPCoMKgwqDCoMKgwqAgfCA3OTMgKysrKysNCj4gPj4+Pj4+IC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+Pj4+Pj4gIMKgwqAgbGliYXZjb2RlYy92YWFwaV9lbmNv ZGUuaMKgwqDCoMKgwqDCoCB8IDEwMiArLS0tDQo+ID4+Pj4+PiAgwqDCoCBsaWJhdmNvZGVjL3Zh YXBpX2VuY29kZV9hdjEuY8KgwqAgfMKgIDM1ICstDQo+ID4+Pj4+PiAgwqDCoCBsaWJhdmNvZGVj L3ZhYXBpX2VuY29kZV9oMjY0LmPCoCB8wqAgODQgKystLQ0KPiA+Pj4+Pj4gIMKgwqAgbGliYXZj b2RlYy92YWFwaV9lbmNvZGVfaDI2NS5jwqAgfMKgIDUzICsrLQ0KPiA+Pj4+Pj4gIMKgwqAgbGli YXZjb2RlYy92YWFwaV9lbmNvZGVfbWpwZWcuYyB8wqAgMTMgKy0NCj4gPj4+Pj4+ICDCoMKgIGxp YmF2Y29kZWMvdmFhcGlfZW5jb2RlX21wZWcyLmMgfMKgIDMzICstDQo+ID4+Pj4+PiAgwqDCoCBs aWJhdmNvZGVjL3ZhYXBpX2VuY29kZV92cDguY8KgwqAgfMKgIDE4ICstDQo+ID4+Pj4+PiAgwqDC oCBsaWJhdmNvZGVjL3ZhYXBpX2VuY29kZV92cDkuY8KgwqAgfMKgIDI0ICstDQo+ID4+Pj4+PiAg wqDCoCAxMiBmaWxlcyBjaGFuZ2VkLCA5ODUgaW5zZXJ0aW9ucygrKSwgODkwIGRlbGV0aW9ucygt KQ0KPiA+Pj4+Pj4gIMKgwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvaHdfYmFzZV9l bmNvZGUuYw0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGlzIHBhdGNoIGRvZXNuJ3QgYXBwbHksDQo+ID4+ Pj4+DQo+ID4+Pj4+IGVycm9yOiBzaGExIGluZm9ybWF0aW9uIGlzIGxhY2tpbmcgb3IgdXNlbGVz cyAobGliYXZjb2RlYy8NCj4gPj4+Pj4gaHdfYmFzZV9lbmNvZGUuYykuDQo+ID4+Pj4+IGVycm9y OiBjb3VsZCBub3QgYnVpbGQgZmFrZSBhbmNlc3Rvcg0KPiA+Pj4+Pg0KPiA+Pj4+PiBDb3VsZCB5 b3UgcmVzZW50IHRoZSBwYXRjaHNldCBvciBsaW5rIG1lIGEgcmVwbyBzbyBJIGNhbiB3b3JrIHdp dGggaXQ/DQo+ID4+Pj4NCj4gPj4+PiBodHRwczovL2dpdGh1Yi5jb20vaW50ZWwtbWVkaWEtY2kv ZmZtcGVnL3B1bGwvNjg5IFRoaXMgaXMgdGhlIHNhbWUNCj4gPj4+PiBhcw0KPiA+Pj4+IHYxMyBw bGVhc2UgaGF2ZSBhIHRyeS4NCj4gPj4+DQo+ID4+PiBUaGF0IHdvcmtlZCwgdGhhbmtzLg0KPiA+ Pg0KPiA+PiBJIGRvbid0IHRoaW5rIHRoZSBiZWhhdmlvdXIgaXMgY29ycmVjdCB3aGVuIHRoZSBl bmNvZGluZyBsZW5ndGggaXMNCj4gPj4gbGVzcyB0aGFuIHRoZSBkZWNvZGUgZGVsYXkuIEluIG15 IG9sZCBWdWxrYW4gY29kZSwgSSBoYWQgdGhpcyBwaWVjZQ0KPiA+PiBvZiBjb2RlIGluIHRoZSBp bml0aWFsaXphdGlvbiBmdW5jdGlvbjoNCj4gPj4NCj4gPj4+IGlmICghc3JjKSB7DQo+ID4+PiAg ICAgIGN0eC0+ZW5kX29mX3N0cmVhbSA9IDE7DQo+ID4+PiAgICAgIC8qIEZpeCB0aW1lc3RhbXBz IGlmIHdlIGhpdCBlbmQtb2Ytc3RyZWFtIGJlZm9yZSB0aGUgaW5pdGlhbA0KPiA+Pj4gICAgICAg KiBkZWNvZGUgZGVsYXkgaGFzIGVsYXBzZWQuICovDQo+ID4+PiAgICAgIGlmIChjdHgtPmlucHV0 X29yZGVyIDwgY3R4LT5kZWNvZGVfZGVsYXkpDQo+ID4+PiAgICAgICAgICBjdHgtPmR0c19wdHNf ZGlmZiA9IGN0eC0+cGljX2VuZC0+cHRzIC0gY3R4LT5maXJzdF9wdHM7DQo+ID4+PiAgICAgIHJl dHVybiBBVkVSUk9SX0VPRjsNCj4gPj4+IH0NCj4gPj4NCj4gPj4gSSB0aGluayBhIGZsdXNoIGZ1 bmN0aW9uIHNob3VsZCBiZSBhZGRlZCwgdG8gYmUgY2FsbGVkIGJ5IGVhY2gNCj4gPj4gZW5jb2Rl ciwgdG8gbWFrZSBzdXJlIHRoZSB0aW1lc3RhbXBzIHJlbWFpbiBjb3JyZWN0Lg0KPiA+Pg0KPiA+ DQo+ID4gRm9yIHRoZSBjdXJyZW50IHBhdGNoIHNldCwgdGhpcyBwaWVjZSBpcyBpbiBod19iYXNl X2VuY29kZV9zZW5kX2ZyYW1lIGFuZA0KPiB3b3JrcyB3ZWxsIGZvciB2YWFwaSBhbmQgZDNkMTIg ZXhjZXB0IHdoZW4gdGhlIGVuY29kaW5nIGxlbmd0aCBpcyBlcXVhbCB0bw0KPiB0aGUgZGVjb2Rl IGRlbGF5LCB3aGljaCBJJ2xsIHNlbnQgYSBmaXggbGF0ZXIuIERvIHlvdSBtZWFuIFZ1bGthbiBj YW5ub3QNCj4gaW50ZWdyYXRlIGludG8gdGhpcyBwYXJ0IGFuZCB3ZSBoYXZlIHRvIG1ha2UgYSBj YWxsYmFjayBmb3IgaXQ/DQo+IA0KPiBObywgSSB3YXMganVzdCBjdXJpb3VzLiBGYWlyIGVub3Vn aCwgaXQgY2FuIGJlIGltcGxlbWVudGVkIGluIGEgbGF0ZXIgcGF0Y2guDQo+IA0KPiA+DQo+ID4+ IEFsc28sIHRoZSBEM0QxMlZBIHN0cnVjdHVyZXMgbmVlZCBhbiBGRiBwcmVmaXgsIGUuZy4NCj4g Pj4gRDNEMTJWQUVuY29kZUNvbnRleHQgLT4gRkZEM0QxMlZBRW5jb2RlQ29udGV4dC4NCj4gPg0K PiA+IFRoZSBjdXJyZW50IFZBQVBJRW5jb2RlQ29udGV4dCBoYXMgZXhpc3RlZCBmb3IgYSBsb25n IHRpbWUuIERvZXMgaXQgaGF2ZQ0KPiBhbnkgZGlmZmVyZW5jZSBmb3IgRDNEMTJWQUVuY29kZUNv bnRleHQ/IEkgbWVhbiBib3RoDQo+IFZBQVBJRW5jb2RlQ29udGV4dCBhbmQgRDNEMTJWQUVuY29k ZUNvbnRleHQgYXJlIHBhcmFsbGVsIGFuZCBvbmx5DQo+IHJlZmVyZW5jZWQgaW4gdmFhcGlfZW5j b2RlXyouYyAoZDNkMTJ2YV9lbmNvZGVfKi5jKS4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBUb25n DQo+IA0KPiBJJ20gZmluaXNoaW5nIHVwIG9uIHRoZSBWdWxrYW4gdGVzdCBpbXBsZW1lbnRhdGlv biwgSSdsbCBzZWUgdG8gcHVzaGluZyB0aGlzDQo+IHBhdGNoIG92ZXIgdGhlIHdlZWtlbmQuDQoN ClN1cmUuIFRoYW5rIHlvdS4NCg0KLVRvbmcNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl dmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRl dmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K