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 907CB43E74 for ; Tue, 16 Aug 2022 12:56:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C777868B7CC; Tue, 16 Aug 2022 15:56:03 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2099.outbound.protection.outlook.com [40.92.89.99]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C6F6F68924F for ; Tue, 16 Aug 2022 15:55:56 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dnMnhRYVOJuwptJXsenFvVFcauWWcKkoej0BsiyCuA42nrqdlACy+x0i93T7a7Xr8E822xhLeMgpheOgAdhEOR4Urp4/Kp+w71clWU01/tJzREN7CeXAvgqq00GIgfm5K1lFLrKOnQuv6Ex51YQ2k/LWDJpuQ9R0OzcIDl4ZDAItQS8BGhbYkX5GzsWEBbSA5wRDpWgOEA9ein21oalGBvUhc8IUj7+BX0T8cd5PDy1BmfSXt71TyNFglrWb6oY9GdPq6RhRj84AJsRc9mxfIo6wC5Tx3Viya1u7BP1/F44zONDt7S7zM+IDs2jQfWAuAzYnqM2jiBtl9OFrIoMnGw== 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=agOsjojCQCm26Ai7mse5zqto8e7n9rYaRV674L7oO0I=; b=KXdr0imCFNLVKohZmYk+ni6bbBHpPoP6s6SDBEbq2tLC1OG9X1h8xxXg+nS4l3R3SDAVf1f7ufR+eRKcWR06A6EKkd/14855VZjJYhbYK7GIdWc5tYQH2SSB958XDa1dm5UYsSUIzlzHAC/imtTQkcyknZumm3dRP0KoSslayHd96LN2WWYTYD1NxzkCMNwUe/FoLNGLwdbVFO2LDVfnW75j9hsNg5BDbTUcTimD0D7Dy2hhgfVQNu7sYFDiOeXh+IXordgVHEGQiANx/iIEBLmcWg5h7afSmTcPu7XbiUsltRsdqoAv9V1YphwKyuTUkdrSy8V2hv1QAw08kSlj3Q== 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=agOsjojCQCm26Ai7mse5zqto8e7n9rYaRV674L7oO0I=; b=jSXoOUwXBKUFFTKY2zYKJ/oJoWhyqBHytbi4io0QETFTyBs/pd0OLhj/fRsy9+vRe0cLCzI4oLyIGk6JaFjrWUKv7z9hNut7n5TGGD7x6hobNLVsUWB07j8kBtsj/EX+oSP/PFxKlHZPSaJYZa4EHZsvL4zSuebgS5EaDc+jmH8Xmg3jj6u4St+GUEGfnSU3MGFMLL/VGlk1kNH9UABum0VVp4hpO4z6l+qYvO2IkY8V4cILgqkHTjuMoBhswbYQgkmd93JIheCnNaRdeVzb2AK2erg5NS9o4q53fuYmYnP2z+PC6M2gLv0gW0krx+UqrfqXQcLkoFbzqPiLQYX35A== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AM6PR01MB4566.eurprd01.prod.exchangelabs.com (2603:10a6:20b:67::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.17; Tue, 16 Aug 2022 12:55:53 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5504.028; Tue, 16 Aug 2022 12:55:53 +0000 Message-ID: Date: Tue, 16 Aug 2022 14:55:51 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220813153601.30310-1-anton@khirnov.net> From: Andreas Rheinhardt In-Reply-To: X-TMN: [bqoEH04dcMR9z8b6nBP9basHlAj0zZyk] X-ClientProxiedBy: ZR0P278CA0160.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::18) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <5697c0e8-a52a-bfd5-5b2b-5fb8dbf6773b@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 58f603df-684b-4d05-39c4-08da7f86a6d7 X-MS-TrafficTypeDiagnostic: AM6PR01MB4566:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LUF4OrXwFtJi9Xy+hNPMSUzjBJ+ukRKVf7yb1ykgFZaQAoiZT71KHFWGn4CcvfJKJizGJP78Yae/7teh5vQfVovpzGQYfP7rPG777zm5f+zpWFDnNUhBoI9CCKhjMl54jsiOnp0talZedKIk0j9L9cA5DDI+RsdMS4c23kXIaQJPGvzre0FAeApi4RAHdN79TG7Byu5uVwx/1bcpt0yMepDv/+vwUsgOMEG/IGgynzE1QTvRxbpSvGtMUcDeGFnIGry9A0D+1KACX5QYWNsozw2hK89mW90IfEFUSbGL5tdrWj/hySR/5w53wExu/DbULVyUCEtfFHGA33JaufJiUGRVV9KMrTGI+8whCM+OD6DW9m58LWuu6OD1Pu5qZdXivlD1JIJI4ip+PdDgb2NJ95tOXwwNTJ+DWvD4wZ6Q6AUvivDVAGrU07DhguJVu0LyXUY6u5S3pRUx+v0GneNG3C6BmZdmsk8x0k9KRm4WMbhI3WL6tcKjEtX6aqOAsFErMrLqAZk5cCgEqEWpFSGN/L9L8gfO3yDBFAtoRDaXgl7SAaq3wzZCc5XDa5RTOJAfPCpjRsMg/2c5FP1UIpgyaki4K/ARH/+zT7D2z6cQUz++ptbpLz4Z/1qSXuzWuKpZY/LFf2qhzilzbI28hYqQt9Iu2Pqjhw0xZwLfYakoSAul4b0CvGiDrGhXx3nu3MS2 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dUZ5VHBRbkZYOG8zdjRaV3hqWW5oOTkzQ0YxQUNnSS9zZWMxL2czS3lwSUxh?= =?utf-8?B?c00yWC9kSjVZWnkra241SmRUN3oxQ2FVTjBDQXNhQnViM3JDZzF1Z1llZXpv?= =?utf-8?B?MTNjaDlHRTROQmF3N2ZMYldCRS80N05BQytrMlVmTWloR3hVT3laU29LNHk1?= =?utf-8?B?cnhibVpNeGZNSXA2a1h4ZmJPME9sRWVXcFdFTTZnTzhvMHkzbXlWb1kybTRK?= =?utf-8?B?TVhNZjlrU3VxWllTUmtZUm1HbTZZTDFxelZjL0phZzV6U0xLS2Zub29NSFNZ?= =?utf-8?B?bnIwTmlURlhtQkJWOHZYMXhWeFA3WHFQb1g5OW5HVmphcDN6R0liczNVRGJ5?= =?utf-8?B?V0lpYnVOeFEvcWdtNVVFTTZnaEt1QnFJWUkwc3N6YmJSSnpJVnFhd1hUVG5w?= =?utf-8?B?STlRQWNoNEVPRmVUTjlSVFo2czk4MmJJcFQyMDZ3Q2V1UnFMSGU5RFZVT3p4?= =?utf-8?B?eGt4WUN4L2g3M1BidVFjQkxDVTBCUjBtZ1hIdmJJUXVGYVpaOTQ3Q3JjbWdI?= =?utf-8?B?T2s2RmpISkdUMXo1SWx2RkJ1V0E5TVBTbk9qR2lXd2dxaHliWTFiaVI0R3Nz?= =?utf-8?B?ZkJybit2Uk43VGs0dTNTRW1BUjFJeGF2RUkyTHpZQ3pZR1lvYjVGRDZ3TUR2?= =?utf-8?B?N3czd1hIcWhrNWZOZ1FsQWQvZDNwdnJHVEs4YkxUYWoxakV4ZWFNaWQyOWdH?= =?utf-8?B?WVIvRTljaFB0VFlOT1FyVFpCK09MclZrN3ZkZG53S2d4NHFvbWpnT0VmdVBT?= =?utf-8?B?TGQwS2xBVE5YazhrR2dWd29qVko1YUxrY3g2cXVjYTAxeTFrY1lmTEdVSkVQ?= =?utf-8?B?WDQ4Qks4eXBDSHRYYVVuN0lJdVRlTXJxTGJGYlNybmxlZ2Q5aUU1clFJYnhu?= =?utf-8?B?R0R5d2pGSW9rbVkxenB3WEVUZFVtV1grTVJEbUU4TGVncFQxWElJM0RtLytI?= =?utf-8?B?UlFnK3N3ckZHa0dwb0wwSGlYblhDWWxTUTFWUFFCeU5BdW8yMURCKzZwL01I?= =?utf-8?B?dWtVaWdQSVAyK01CL0RZTzN1b1U3SmVPVEE0dEhVNnRmZEFqWTlQYk1yVWc1?= =?utf-8?B?VDJuUGplc1NPdW5uQTZreEdTb2tILzhZTE1Ja2VFaGlKUVVxTGtJeFF4T3Iv?= =?utf-8?B?MEQ4KytYeko4SGpiMmU4eTRqeEFBZkhjaW14ZEFqSnNMWDRmR1JTWnd1N0VL?= =?utf-8?B?bTVqMWJVT09qMGdBUmgrNTVVRHZwVHRyakRWQ2RaSTdramgvQWVLaTZZaFli?= =?utf-8?B?d0IrMFVnOUdmTzJ5RURPUG1TNlZRWVIrYmp6Y05yT00vZnNWbG1oQ0tWK3FF?= =?utf-8?B?RmpLYTl5ZTBhVHJBTUMzM056a2tsM2tGWlgyNnNQcm54bGRMN3psVUxVZFRE?= =?utf-8?B?N3BYU2k3Z0plb2loVXJncy9VcTFsMU9NY2tjQll5YVFiMnI2U1l4dmJucmN0?= =?utf-8?B?NlE5MWJZeTI2Y0NBNSthcWpyVnJ5SEd3Z05sc21BWUtnV2tnZTAyM0hDZ3Av?= =?utf-8?B?TEsrUVBLdVVzRk1JUFpVUnpDb1c2T0IzSHk4NC9weVBlQnIza2tHK2tGQml2?= =?utf-8?B?c05mellOTVJmOG8yY210dDhMdktXODdqVzQxeFNFMWcvM21kenJiRFFReXRs?= =?utf-8?B?UHFyQ0RIYW85N2xUd1hTaE5FbmZBMlpwSVlDa1kxTEJwc3djNEVpNjNUNFhs?= =?utf-8?B?cWxzam0ra25ab0RDVERTOHVhS0lrSjRlakxnbkh2Zi9rUjN0V1VGSzZ4WCtV?= =?utf-8?Q?FyQSLwNmxMmVT7+GJE=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 58f603df-684b-4d05-39c4-08da7f86a6d7 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2022 12:55:53.1408 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR01MB4566 Subject: Re: [FFmpeg-devel] [PATCH] fftools/ffmpeg: store a separate copy of input codec parameters 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 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: SmFtZXMgQWxtZXI6Cj4gT24gOC8xMy8yMDIyIDEyOjM2IFBNLCBBbnRvbiBLaGlybm92IHdyb3Rl Ogo+PiBVc2UgaXQgaW5zdGVhZCBvZiBBVlN0cmVhbS5jb2RlY3BhciBpbiB0aGUgbWFpbiB0aHJl YWQuIFdoaWxlCj4+IEFWU3RyZWFtLmNvZGVjcGFyIGlzIGRvY3VtZW50ZWQgdG8gb25seSBiZSB1 cGRhdGVkIHdoZW4gdGhlIHN0cmVhbSBpcwo+PiBhZGRlZCBvciBhdmZvcm1hdF9maW5kX3N0cmVh bV9pbmZvKCksIGl0IGlzIGFjdHVhbGx5IHVwZGF0ZWQgZHVyaW5nCj4+IGRlbXV4aW5nLiBBY2Nl c3NpbmcgaXQgZnJvbSBhIGRpZmZlcmVudCB0aHJlYWQgdGhlbiBjb25zdGl0dXRlcyBhIHJhY2Uu Cj4gCj4gU2hvdWxkIHdlIGNvbnNpZGVyIGEgYnVnIHRoYXQgc29tZSBkZW11eGVycyB1cGRhdGUg c3RyZWFtJ3MgY29kZXBhcnMKPiBwb3N0IGluaXQ/IE9yIGlzIHRoZSBkb2N1bWVudGF0aW9uIG5v dCByZWZsZWN0aW5nIHRoZSBhY3R1YWwgYmVoYXZpb3IKPiB3aGF0J3Mgd3Jvbmc/Cj4gCgpTb21l IGRlbXV4ZXJzPyBJdCBpcyB0aGUgZ2VuZXJpYyBkZW11eGluZyBjb2RlIChyZWFkX2ZyYW1lX2lu dGVybmFsKCksCmRlbXV4LmMgbGluZXMgMTMzNS0xMzQ3KSB0aGF0IGRvZXMgdGhpcy4gQW5kIHNv bWUgZGVtdXhlcnMgcHJvYmFibHkgZG8KaXQsIHRvby4gQXQgbGVhc3QgdGhlIGNvbmNhdCBkZW11 eGVyIElJUkMuCgo+Pgo+PiBJZGVhbGx5LCBzb21lIG1lY2hhbmlzbSBzaG91bGQgZXZlbnR1YWxs eSBiZSBwcm92aWRlZCBmb3Igc2lnbmFsbGluZwo+PiBwYXJhbWV0ZXIgdXBkYXRlcyB0byB0aGUg dXNlci4gVGhlbiB0aGUgZGVtdXhpbmcgdGhyZWFkIGNvdWxkIHBpY2sgdXAKPj4gdGhlIGNoYW5n ZXMgYW5kIHByb3BhZ2F0ZSB0aGVtIHRvIHRoZSBkZWNvZGVyLgo+PiAtLS0KPj4gwqAgZmZ0b29s cy9mZm1wZWcuY8KgwqDCoMKgIHwgMzkgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tCj4+IMKgIGZmdG9vbHMvZmZtcGVnLmjCoMKgwqDCoCB8wqAgNiArKysrKysKPj4gwqAg ZmZ0b29scy9mZm1wZWdfb3B0LmMgfMKgIDYgKysrKystCj4+IMKgIDMgZmlsZXMgY2hhbmdlZCwg MzEgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9mZnRv b2xzL2ZmbXBlZy5jIGIvZmZ0b29scy9mZm1wZWcuYwo+PiBpbmRleCA4ZWI3NzU5MzkyLi5lZjcx NzdmYzMzIDEwMDY0NAo+PiAtLS0gYS9mZnRvb2xzL2ZmbXBlZy5jCj4+ICsrKyBiL2ZmdG9vbHMv ZmZtcGVnLmMKPj4gQEAgLTYwOCw2ICs2MDgsNyBAQCBzdGF0aWMgdm9pZCBmZm1wZWdfY2xlYW51 cChpbnQgcmV0KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfZnJlZXAoJmlzdC0+ZHRzX2J1ZmZl cik7Cj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBhdmNvZGVjX2ZyZWVfY29udGV4dCgmaXN0LT5k ZWNfY3R4KTsKPj4gK8KgwqDCoMKgwqDCoMKgIGF2Y29kZWNfcGFyYW1ldGVyc19mcmVlKCZpc3Qt PnBhcik7Cj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9mcmVlcCgmaW5wdXRfc3RyZWFtc1tp XSk7Cj4+IMKgwqDCoMKgwqAgfQo+PiBAQCAtMTQ5Miw3ICsxNDkzLDcgQEAgc3RhdGljIHZvaWQg cHJpbnRfZmluYWxfc3RhdHMoaW50NjRfdCB0b3RhbF9zaXplKQo+PiDCoCDCoMKgwqDCoMKgwqDC oMKgwqAgZm9yIChqID0gMDsgaiA8IGYtPm5iX3N0cmVhbXM7IGorKykgewo+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBJbnB1dFN0cmVhbSAqaXN0ID0gaW5wdXRfc3RyZWFtc1tmLT5pc3Rf aW5kZXggKyBqXTsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51bSBBVk1lZGlhVHlwZSB0 eXBlID0gaXN0LT5zdC0+Y29kZWNwYXItPmNvZGVjX3R5cGU7Cj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGVudW0gQVZNZWRpYVR5cGUgdHlwZSA9IGlzdC0+cGFyLT5jb2RlY190eXBlOwo+PiDC oCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0b3RhbF9zaXplwqDCoMKgICs9IGlzdC0+ZGF0 YV9zaXplOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0b3RhbF9wYWNrZXRzICs9IGlz dC0+bmJfcGFja2V0czsKPj4gQEAgLTE4MDksNyArMTgxMCw3IEBAIHN0YXRpYyB2b2lkIGZsdXNo X2VuY29kZXJzKHZvaWQpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9y ICh4ID0gMDsgeCA8IGZnLT5uYl9pbnB1dHM7IHgrKykgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSW5wdXRGaWx0ZXIgKmlmaWx0ZXIgPSBmZy0+aW5wdXRz W3hdOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGlm aWx0ZXItPmZvcm1hdCA8IDAgJiYKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaWZpbHRlcl9wYXJhbWV0ZXJzX2Zyb21fY29kZWNwYXIoaWZpbHRlciwK Pj4gaWZpbHRlci0+aXN0LT5zdC0+Y29kZWNwYXIpIDwgMCkgewo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZmlsdGVyX3BhcmFtZXRlcnNfZnJvbV9j b2RlY3BhcihpZmlsdGVyLAo+PiBpZmlsdGVyLT5pc3QtPnBhcikgPCAwKSB7Cj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhOVUxMLCBB Vl9MT0dfRVJST1IsICJFcnJvciBjb3B5aW5nCj4+IHBhcmFtZXJldHMgZnJvbSBpbnB1dCBzdHJl YW1cbiIpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBleGl0X3Byb2dyYW0oMSk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB9Cj4+IEBAIC0xOTEyLDExICsxOTEzLDExIEBAIHN0YXRpYyB2b2lkIGRvX3N0 cmVhbWNvcHkoSW5wdXRTdHJlYW0gKmlzdCwKPj4gT3V0cHV0U3RyZWFtICpvc3QsIGNvbnN0IEFW UGFja2V0ICpwCj4+IMKgwqDCoMKgwqAgaWYgKHBrdC0+ZHRzID09IEFWX05PUFRTX1ZBTFVFKSB7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBvcGt0LT5kdHMgPSBhdl9yZXNjYWxlX3EoaXN0LT5kdHMs IEFWX1RJTUVfQkFTRV9RLAo+PiBvc3QtPm11eF90aW1lYmFzZSk7Cj4+IMKgwqDCoMKgwqAgfSBl bHNlIGlmIChvc3QtPnN0LT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfQVVE SU8pIHsKPj4gLcKgwqDCoMKgwqDCoMKgIGludCBkdXJhdGlvbiA9Cj4+IGF2X2dldF9hdWRpb19m cmFtZV9kdXJhdGlvbjIoaXN0LT5zdC0+Y29kZWNwYXIsIHBrdC0+c2l6ZSk7Cj4+ICvCoMKgwqDC oMKgwqDCoCBpbnQgZHVyYXRpb24gPSBhdl9nZXRfYXVkaW9fZnJhbWVfZHVyYXRpb24yKGlzdC0+ cGFyLAo+PiBwa3QtPnNpemUpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYoIWR1cmF0aW9uKQo+ PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkdXJhdGlvbiA9IGlzdC0+c3QtPmNvZGVjcGFyLT5m cmFtZV9zaXplOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkdXJhdGlvbiA9IGlzdC0+cGFy LT5mcmFtZV9zaXplOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgb3BrdC0+ZHRzID0gYXZfcmVzY2Fs ZV9kZWx0YShpc3QtPnN0LT50aW1lX2Jhc2UsIHBrdC0+ZHRzLAo+PiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAo QVZSYXRpb25hbCl7MSwKPj4gaXN0LT5zdC0+Y29kZWNwYXItPnNhbXBsZV9yYXRlfSwgZHVyYXRp b24sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChBVlJhdGlvbmFsKXsxLAo+PiBpc3QtPnBhci0+c2FtcGxl X3JhdGV9LCBkdXJhdGlvbiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPj4gJmlzdC0+ZmlsdGVyX2lu X3Jlc2NhbGVfZGVsdGFfbGFzdCwgb3N0LT5tdXhfdGltZWJhc2UpOwo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgLyogZHRzIHdpbGwgYmUgc2V0IGltbWVkaWF0ZWx5IGFmdGVyd2FyZHMgdG8gd2hhdCBw dHMgaXMgbm93ICovCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBvcGt0LT5wdHMgPSBvcGt0LT5kdHMg LSBvc3RfdGJfc3RhcnRfdGltZTsKPj4gQEAgLTE5NzYsNyArMTk3Nyw3IEBAIHN0YXRpYyBpbnQg aWZpbHRlcl9zZW5kX2ZyYW1lKElucHV0RmlsdGVyCj4+ICppZmlsdGVyLCBBVkZyYW1lICpmcmFt ZSwgaW50IGtlZXBfcmVmCj4+IMKgwqDCoMKgwqAgLyogZGV0ZXJtaW5lIGlmIHRoZSBwYXJhbWV0 ZXJzIGZvciB0aGlzIGlucHV0IGNoYW5nZWQgKi8KPj4gwqDCoMKgwqDCoCBuZWVkX3JlaW5pdCA9 IGlmaWx0ZXItPmZvcm1hdCAhPSBmcmFtZS0+Zm9ybWF0Owo+PiDCoCAtwqDCoMKgIHN3aXRjaCAo aWZpbHRlci0+aXN0LT5zdC0+Y29kZWNwYXItPmNvZGVjX3R5cGUpIHsKPj4gK8KgwqDCoCBzd2l0 Y2ggKGlmaWx0ZXItPmlzdC0+cGFyLT5jb2RlY190eXBlKSB7Cj4+IMKgwqDCoMKgwqAgY2FzZSBB Vk1FRElBX1RZUEVfQVVESU86Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBuZWVkX3JlaW5pdCB8PSBp ZmlsdGVyLT5zYW1wbGVfcmF0ZcKgwqDCoCAhPSBmcmFtZS0+c2FtcGxlX3JhdGUgfHwKPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4+IGF2X2NoYW5u ZWxfbGF5b3V0X2NvbXBhcmUoJmlmaWx0ZXItPmNoX2xheW91dCwgJmZyYW1lLT5jaF9sYXlvdXQp Owo+PiBAQCAtMjA1Niw3ICsyMDU3LDcgQEAgc3RhdGljIGludCBpZmlsdGVyX3NlbmRfZW9mKElu cHV0RmlsdGVyCj4+ICppZmlsdGVyLCBpbnQ2NF90IHB0cykKPj4gwqDCoMKgwqDCoCB9IGVsc2Ug ewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLy8gdGhlIGZpbHRlcmdyYXBoIHdhcyBuZXZlciBjb25m aWd1cmVkCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoaWZpbHRlci0+Zm9ybWF0IDwgMCkgewo+ PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBpZmlsdGVyX3BhcmFtZXRlcnNfZnJvbV9j b2RlY3BhcihpZmlsdGVyLAo+PiBpZmlsdGVyLT5pc3QtPnN0LT5jb2RlY3Bhcik7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IGlmaWx0ZXJfcGFyYW1ldGVyc19mcm9tX2NvZGVjcGFy KGlmaWx0ZXIsCj4+IGlmaWx0ZXItPmlzdC0+cGFyKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaWYgKHJldCA8IDApCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIHJldDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gQEAgLTIyMTIsOSArMjIxMyw5 IEBAIHN0YXRpYyBpbnQgZGVjb2RlX3ZpZGVvKElucHV0U3RyZWFtICppc3QsCj4+IEFWUGFja2V0 ICpwa3QsIGludCAqZ290X291dHB1dCwgaW50NjRfCj4+IMKgIMKgwqDCoMKgwqAgLy8gVGhlIGZv bGxvd2luZyBsaW5lIG1heSBiZSByZXF1aXJlZCBpbiBzb21lIGNhc2VzIHdoZXJlCj4+IHRoZXJl IGlzIG5vIHBhcnNlcgo+PiDCoMKgwqDCoMKgIC8vIG9yIHRoZSBwYXJzZXIgZG9lcyBub3QgaGFz X2JfZnJhbWVzIGNvcnJlY3RseQo+PiAtwqDCoMKgIGlmIChpc3QtPnN0LT5jb2RlY3Bhci0+dmlk ZW9fZGVsYXkgPCBpc3QtPmRlY19jdHgtPmhhc19iX2ZyYW1lcykgewo+PiArwqDCoMKgIGlmIChp c3QtPnBhci0+dmlkZW9fZGVsYXkgPCBpc3QtPmRlY19jdHgtPmhhc19iX2ZyYW1lcykgewo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgaWYgKGlzdC0+ZGVjX2N0eC0+Y29kZWNfaWQgPT0gQVZfQ09ERUNf SURfSDI2NCkgewo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpc3QtPnN0LT5jb2RlY3Bhci0+ dmlkZW9fZGVsYXkgPSBpc3QtPmRlY19jdHgtPmhhc19iX2ZyYW1lczsKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaXN0LT5wYXItPnZpZGVvX2RlbGF5ID0gaXN0LT5kZWNfY3R4LT5oYXNfYl9m cmFtZXM7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9IGVsc2UKPj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgYXZfbG9nKGlzdC0+ZGVjX2N0eCwgQVZfTE9HX1dBUk5JTkcsCj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgInZpZGVvX2RlbGF5IGlzIGxhcmdlciBp biBkZWNvZGVyIHRoYW4gZGVtdXhlciAlZAo+PiA+ICVkLlxuIgo+PiBAQCAtMjIyMiw3ICsyMjIz LDcgQEAgc3RhdGljIGludCBkZWNvZGVfdmlkZW8oSW5wdXRTdHJlYW0gKmlzdCwKPj4gQVZQYWNr ZXQgKnBrdCwgaW50ICpnb3Rfb3V0cHV0LCBpbnQ2NF8KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAib2YgdGhpcyBmaWxlIHRvCj4+IGh0dHBzOi8vc3RyZWFtcy52 aWRlb2xhbi5vcmcvdXBsb2FkLyAiCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgImFuZCBjb250YWN0IHRoZSBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Lgo+PiAo ZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcpXG4iLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGlzdC0+ZGVjX2N0eC0+aGFzX2JfZnJhbWVzLAo+PiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlzdC0+c3QtPmNvZGVjcGFyLT52aWRlb19kZWxh eSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaXN0LT5wYXItPnZp ZGVvX2RlbGF5KTsKPj4gwqDCoMKgwqDCoCB9Cj4+IMKgIMKgwqDCoMKgwqAgaWYgKHJldCAhPSBB VkVSUk9SX0VPRikKPj4gQEAgLTIzOTEsNyArMjM5Miw3IEBAIHN0YXRpYyBpbnQgc2VuZF9maWx0 ZXJfZW9mKElucHV0U3RyZWFtICppc3QpCj4+IMKgIC8qIHBrdCA9IE5VTEwgbWVhbnMgRU9GIChu ZWVkZWQgdG8gZmx1c2ggZGVjb2RlciBidWZmZXJzKSAqLwo+PiDCoCBzdGF0aWMgaW50IHByb2Nl c3NfaW5wdXRfcGFja2V0KElucHV0U3RyZWFtICppc3QsIGNvbnN0IEFWUGFja2V0Cj4+ICpwa3Qs IGludCBub19lb2YpCj4+IMKgIHsKPj4gLcKgwqDCoCBjb25zdCBBVkNvZGVjUGFyYW1ldGVycyAq cGFyID0gaXN0LT5zdC0+Y29kZWNwYXI7Cj4+ICvCoMKgwqAgY29uc3QgQVZDb2RlY1BhcmFtZXRl cnMgKnBhciA9IGlzdC0+cGFyOwo+PiDCoMKgwqDCoMKgIGludCByZXQgPSAwLCBpOwo+PiDCoMKg wqDCoMKgIGludCByZXBlYXRpbmcgPSAwOwo+PiDCoMKgwqDCoMKgIGludCBlb2ZfcmVhY2hlZCA9 IDA7Cj4+IEBAIC0yNzUxLDcgKzI3NTIsNyBAQCBzdGF0aWMgaW50Cj4+IGluaXRfb3V0cHV0X3N0 cmVhbV9zdHJlYW1jb3B5KE91dHB1dFN0cmVhbSAqb3N0KQo+PiDCoMKgwqDCoMKgIGlmICghY29k ZWNfY3R4KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPj4g wqAgLcKgwqDCoCByZXQgPSBhdmNvZGVjX3BhcmFtZXRlcnNfdG9fY29udGV4dChjb2RlY19jdHgs IGlzdC0+c3QtPmNvZGVjcGFyKTsKPj4gK8KgwqDCoCByZXQgPSBhdmNvZGVjX3BhcmFtZXRlcnNf dG9fY29udGV4dChjb2RlY19jdHgsIGlzdC0+cGFyKTsKPj4gwqDCoMKgwqDCoCBpZiAocmV0ID49 IDApCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBhdl9vcHRfc2V0X2RpY3QoY29kZWNfY3R4 LCAmb3N0LT5lbmNvZGVyX29wdHMpOwo+PiDCoMKgwqDCoMKgIGlmIChyZXQgPCAwKSB7Cj4+IEBA IC0zMTIwLDggKzMxMjEsOCBAQCBzdGF0aWMgaW50Cj4+IGluaXRfb3V0cHV0X3N0cmVhbV9lbmNv ZGUoT3V0cHV0U3RyZWFtICpvc3QsIEFWRnJhbWUgKmZyYW1lKQo+PiDCoMKgwqDCoMKgIGNhc2Ug QVZNRURJQV9UWVBFX1NVQlRJVExFOgo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZW5jX2N0eC0+dGlt ZV9iYXNlID0gQVZfVElNRV9CQVNFX1E7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWVuY19j dHgtPndpZHRoKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVuY19jdHgtPndpZHRowqDC oMKgwqAgPQo+PiBpbnB1dF9zdHJlYW1zW29zdC0+c291cmNlX2luZGV4XS0+c3QtPmNvZGVjcGFy LT53aWR0aDsKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW5jX2N0eC0+aGVpZ2h0wqDCoMKg ID0KPj4gaW5wdXRfc3RyZWFtc1tvc3QtPnNvdXJjZV9pbmRleF0tPnN0LT5jb2RlY3Bhci0+aGVp Z2h0Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbmNfY3R4LT53aWR0aMKgwqDCoMKgID0K Pj4gaW5wdXRfc3RyZWFtc1tvc3QtPnNvdXJjZV9pbmRleF0tPnBhci0+d2lkdGg7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGVuY19jdHgtPmhlaWdodMKgwqDCoCA9Cj4+IGlucHV0X3N0cmVh bXNbb3N0LT5zb3VyY2VfaW5kZXhdLT5wYXItPmhlaWdodDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKg IH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+PiDCoMKgwqDCoMKgIGNhc2UgQVZNRURJ QV9UWVBFX0RBVEE6Cj4+IEBAIC0zNjc4LDcgKzM2NzksNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVf Zmx1c2goSW5wdXRGaWxlICppZmlsZSkKPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChpc3Qt PmRlY29kaW5nX25lZWRlZCkgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiByZXBv cnQgbGFzdCBmcmFtZSBkdXJhdGlvbiB0byB0aGUgZGVtdXhlciB0aHJlYWQgKi8KPj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaWYgKGlzdC0+c3QtPmNvZGVjcGFyLT5jb2RlY190eXBlID09IEFW TUVESUFfVFlQRV9BVURJTykgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoaXN0LT5w YXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPKSB7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgTGFzdEZyYW1lRHVyYXRpb24gZHVyOwo+PiDCoCDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGR1ci5zdHJlYW1faWR4ID0gaTsKPj4gQEAgLTM3 MjEsNyArMzcyMiw3IEBAIHN0YXRpYyB2b2lkIHRzX2Rpc2NvbnRpbnVpdHlfZGV0ZWN0KElucHV0 RmlsZQo+PiAqaWZpbGUsIElucHV0U3RyZWFtICppc3QsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAidGltZXN0YW1wIGRpc2NvbnRpbnVpdHkgZm9y IHN0cmVhbSAjJWQ6JWQgIgo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgIihpZD0lZCwgdHlwZT0lcyk6ICUiUFJJZDY0IiwgbmV3IG9mZnNldD0KPj4g JSJQUklkNjQiXG4iLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaXN0LT5maWxlX2luZGV4LCBpc3QtPnN0LT5pbmRleCwgaXN0LT5zdC0+aWQsCj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+PiBhdl9nZXRf bWVkaWFfdHlwZV9zdHJpbmcoaXN0LT5zdC0+Y29kZWNwYXItPmNvZGVjX3R5cGUpLAo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfZ2V0X21lZGlhX3R5 cGVfc3RyaW5nKGlzdC0+cGFyLT5jb2RlY190eXBlKSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlbHRhLCBpZmlsZS0+dHNfb2Zmc2V0X2Rpc2Nv bnQpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBrdC0+ZHRzIC09IGF2 X3Jlc2NhbGVfcShkZWx0YSwgQVZfVElNRV9CQVNFX1EsCj4+IGlzdC0+c3QtPnRpbWVfYmFzZSk7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHBrdC0+cHRzICE9IEFW X05PUFRTX1ZBTFVFKQo+PiBAQCAtMzc3Miw4ICszNzczLDggQEAgc3RhdGljIHZvaWQgdHNfZGlz Y29udGludWl0eV9wcm9jZXNzKElucHV0RmlsZQo+PiAqaWZpbGUsIElucHV0U3RyZWFtICppc3Qs Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBwa3QtPnB0cyArPSBvZmZzZXQ7Cj4+IMKgIMKgwqDCoMKg wqAgLy8gZGV0ZWN0IHRpbWVzdGFtcCBkaXNjb250aW51aXRpZXMgZm9yIGF1ZGlvL3ZpZGVvCj4+ IC3CoMKgwqAgaWYgKChpc3QtPnN0LT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZ UEVfVklERU8gfHwKPj4gLcKgwqDCoMKgwqDCoMKgwqAgaXN0LT5zdC0+Y29kZWNwYXItPmNvZGVj X3R5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPKSAmJgo+PiArwqDCoMKgIGlmICgoaXN0LT5wYXIt PmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX1ZJREVPIHx8Cj4+ICvCoMKgwqDCoMKgwqDCoMKg IGlzdC0+cGFyLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9BVURJTykgJiYKPj4gwqDCoMKg wqDCoMKgwqDCoMKgIHBrdC0+ZHRzICE9IEFWX05PUFRTX1ZBTFVFKQo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgdHNfZGlzY29udGludWl0eV9kZXRlY3QoaWZpbGUsIGlzdCwgcGt0KTsKPj4gwqAgfQo+ PiBAQCAtMzg3Miw3ICszODczLDcgQEAgc3RhdGljIGludCBwcm9jZXNzX2lucHV0KGludCBmaWxl X2luZGV4KQo+PiDCoMKgwqDCoMKgIGlmIChkZWJ1Z190cykgewo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgYXZfbG9nKE5VTEwsIEFWX0xPR19JTkZPLCAiZGVtdXhlcitmZm1wZWcgLT4gaXN0X2luZGV4 OiVkCj4+IHR5cGU6JXMgcGt0X3B0czolcyBwa3RfcHRzX3RpbWU6JXMgcGt0X2R0czolcyBwa3Rf ZHRzX3RpbWU6JXMKPj4gZHVyYXRpb246JXMgZHVyYXRpb25fdGltZTolcyBvZmY6JXMgb2ZmX3Rp bWU6JXNcbiIsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmaWxlLT5pc3Rf aW5kZXggKyBwa3QtPnN0cmVhbV9pbmRleCwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgYXZfZ2V0X21lZGlhX3R5cGVfc3RyaW5nKGlzdC0+c3QtPmNvZGVjcGFyLT5jb2RlY190eXBl KSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfZ2V0X21lZGlhX3R5cGVfc3Ry aW5nKGlzdC0+cGFyLT5jb2RlY190eXBlKSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgYXZfdHMyc3RyKHBrdC0+cHRzKSwgYXZfdHMydGltZXN0cihwa3QtPnB0cywKPj4gJmlz dC0+c3QtPnRpbWVfYmFzZSksCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2 X3RzMnN0cihwa3QtPmR0cyksIGF2X3RzMnRpbWVzdHIocGt0LT5kdHMsCj4+ICZpc3QtPnN0LT50 aW1lX2Jhc2UpLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl90czJzdHIo cGt0LT5kdXJhdGlvbiksCj4+IGF2X3RzMnRpbWVzdHIocGt0LT5kdXJhdGlvbiwgJmlzdC0+c3Qt PnRpbWVfYmFzZSksCj4+IGRpZmYgLS1naXQgYS9mZnRvb2xzL2ZmbXBlZy5oIGIvZmZ0b29scy9m Zm1wZWcuaAo+PiBpbmRleCA2OTkxYmE3NjMyLi40NGNjMjNmYTg0IDEwMDY0NAo+PiAtLS0gYS9m ZnRvb2xzL2ZmbXBlZy5oCj4+ICsrKyBiL2ZmdG9vbHMvZmZtcGVnLmgKPj4gQEAgLTMyMyw2ICsz MjMsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5wdXRTdHJlYW0gewo+PiDCoCAjZGVmaW5lIERFQ09E SU5HX0ZPUl9GSUxURVIgMgo+PiDCoMKgwqDCoMKgIGludCBwcm9jZXNzaW5nX25lZWRlZDvCoMKg IC8qIG5vbiB6ZXJvIGlmIHRoZSBwYWNrZXRzIG11c3QgYmUKPj4gcHJvY2Vzc2VkICovCj4+IMKg ICvCoMKgwqAgLyoqCj4+ICvCoMKgwqDCoCAqIENvZGVjIHBhcmFtZXRlcnMgLSB0byBiZSB1c2Vk IGJ5IHRoZSBkZWNvZGluZy9zdHJlYW1jb3B5IGNvZGUuCj4+ICvCoMKgwqDCoCAqIHN0LT5jb2Rl Y3BhciBzaG91bGQgbm90IGJlIGFjY2Vzc2VkLCBiZWNhdXNlIGl0IG1heSBiZSBtb2RpZmllZAo+ PiArwqDCoMKgwqAgKiBjb25jdXJyZW50bHkgYnkgdGhlIGRlbXV4aW5nIHRocmVhZC4KPj4gK8Kg wqDCoMKgICovCj4+ICvCoMKgwqAgQVZDb2RlY1BhcmFtZXRlcnMgKnBhcjsKPj4gwqDCoMKgwqDC oCBBVkNvZGVjQ29udGV4dCAqZGVjX2N0eDsKPj4gwqDCoMKgwqDCoCBjb25zdCBBVkNvZGVjICpk ZWM7Cj4+IMKgwqDCoMKgwqAgQVZGcmFtZSAqZGVjb2RlZF9mcmFtZTsKPj4gZGlmZiAtLWdpdCBh L2ZmdG9vbHMvZmZtcGVnX29wdC5jIGIvZmZ0b29scy9mZm1wZWdfb3B0LmMKPj4gaW5kZXggOTdm MTRiMmE1Yi4uMzBjYTVjZDYwOSAxMDA2NDQKPj4gLS0tIGEvZmZ0b29scy9mZm1wZWdfb3B0LmMK Pj4gKysrIGIvZmZ0b29scy9mZm1wZWdfb3B0LmMKPj4gQEAgLTEwOTAsNyArMTA5MCwxMSBAQCBz dGF0aWMgdm9pZCBhZGRfaW5wdXRfc3RyZWFtcyhPcHRpb25zQ29udGV4dAo+PiAqbywgQVZGb3Jt YXRDb250ZXh0ICppYykKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWJvcnQoKTsKPj4g wqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqAgLcKgwqDCoMKgwqDCoMKgIHJldCA9IGF2Y29kZWNf cGFyYW1ldGVyc19mcm9tX2NvbnRleHQocGFyLCBpc3QtPmRlY19jdHgpOwo+PiArwqDCoMKgwqDC oMKgwqAgaXN0LT5wYXIgPSBhdmNvZGVjX3BhcmFtZXRlcnNfYWxsb2MoKTsKPj4gK8KgwqDCoMKg wqDCoMKgIGlmICghaXN0LT5wYXIpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGV4aXRfcHJv Z3JhbSgxKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgcmV0ID0gYXZjb2RlY19wYXJhbWV0ZXJz X2Zyb21fY29udGV4dChpc3QtPnBhciwgaXN0LT5kZWNfY3R4KTsKPj4gwqDCoMKgwqDCoMKgwqDC oMKgIGlmIChyZXQgPCAwKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhO VUxMLCBBVl9MT0dfRVJST1IsICJFcnJvciBpbml0aWFsaXppbmcgdGhlCj4+IGRlY29kZXIgY29u dGV4dC5cbiIpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleGl0X3Byb2dyYW0oMSk7 Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1w ZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczov L2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPiAKPiBUbyB1bnN1YnNj cmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBm Zm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApm Zm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5m by9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFp bApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3Jp YmUiLgo=