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 D995F43619 for ; Sun, 19 Jun 2022 06:27:57 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 77C3468B41F; Sun, 19 Jun 2022 09:27:54 +0300 (EEST) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-oln040092069075.outbound.protection.outlook.com [40.92.69.75]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 060BA689F54 for ; Sun, 19 Jun 2022 09:27:47 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FHhQTKBJNkEiyoz7K6aXEImuhe4u44y/xfq1Mj1KLLXf0h7MmJ0snkiCW3IU0MsSJ9J3HxhCnF7AeO8R7YJa4BJUHRTRjzmyHkm5VTtT5V81xXGPFsZiFOhFrIUp++sUnr7y7hgbLrquQetXMVbVky27NJbktIA/laTTTYqn373Z4fIuOPqfCNfaVe9IywMH2vP9GoGBI7rLfUPhLETSZ6O8cq5hgRRfmtfb6zt3dBDAFf2Ei5Rhoa1WPqXDzcVvl6F5fXpJHkL4E0XVwEavQdjvsyNO7ImDu6vzYN5dsLf+tM/w/WIKnZzOOQU9lsdHDXywCmR9CegsEWZKLx8jbw== 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=Cz0Y0vqZ6Doswd/mAX5y6cAcK/JLLzSTEdKZWtxn3bA=; b=Z4yKIvfiwufBBTXpIQTX2ROmUeqUD3MqQPntlQSzGxxwSQaMukFi6ZZQrKFXDgHUWnDy52sdCmWIYOgKEkp+NdVHW1phyXGaeK+QpduFxfIZt6J2x6GhSJMqAmYgb4fdIoppvt+oPh8WNsY4eiStRTQ0Nb2WDE0iQ+SJQ6LULv+sELCGhsVXzTfOcyJXmBAbI5KhawS8zd5Au8NSDPPTEmzIz1USmppuMcsKQYLkQsFbnpxUfM4GOQ+76NsuDDAnfpj3SpsSYxFFJZAAYm9qQAoXrreiCJqPT0L9SlzKY+OgucIQn8ju7NCv/SD28OniU1ScTrNTg2s9Q42m277WTg== 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=Cz0Y0vqZ6Doswd/mAX5y6cAcK/JLLzSTEdKZWtxn3bA=; b=mBMUTkFbckBrlFougUt2wn0oIueBB1Ajgj6cKpTD9d6qPaynjnczs0NsqGjYEhS28AgA+Tzpz1fQO8gujCt0rZs6/2JXQ+Z2dwSC48prIN1mpHhoftRpwMXH86OeXh/iDnR/Jx1LrIQdWIMdTciOo7YG4fFgR+Q1trQ9+uNDnyIO8zG+ZesKzlv9NUqdJIVWZpbhMiopzHL2jGBeh1bYoispE27LP2lTfBxidrDqj4A+kmcNtllQhfsXdRc2W8K15DBpPAVxxjVZGKyIACGu8yQKZZ6oUP5HwTtqNmX5NJSC3oaiPJtk/mwRLVtwleFcd22hMEiGxrCEO5QdN8/3Hw== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AS4PR01MB8965.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4e4::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.16; Sun, 19 Jun 2022 06:27:46 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5353.020; Sun, 19 Jun 2022 06:27:46 +0000 Message-ID: Date: Sun, 19 Jun 2022 08:27:44 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220617093141.9826-1-nil-admirari@mailo.com> From: Andreas Rheinhardt In-Reply-To: X-TMN: [S5ov7bmOkPLhIykW56p8pjoekzb0lUlW] X-ClientProxiedBy: AM6PR0502CA0044.eurprd05.prod.outlook.com (2603:10a6:20b:56::21) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fbb127a2-89a8-4187-46ba-08da51bcd29e X-MS-TrafficTypeDiagnostic: AS4PR01MB8965:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: asf6x7a1//SqBGqMKs7qW+zsU2DBaOMP6+Smgs0zqknn2zEvEZQuw+vFdfk/9MrKLeNYa1UyZFjxvocrE8fIjX347Sgo81hoh6yrNw9etM6OtoFleVFiE6UyHseBsQNrmnL7KvzxHomPqX+yH/4Ar/mxnfaeRJB3B9mT0sQ4mngiPLDtH96Yd7eCQOcvrmQHl856CQRGM400GeGmisHa9wNQHYdObZEAIl39uDEozV8oiTbq9ZNhbUZOoq+n0Ls9sIHW/LqxvozKWn0P+tYsVZ0mChzDrcuGinmIHdSLxN7kY4bT4SDqd6zoneU9KQ0Ty5zUkYDBiz9bFhUlBxsJ1h1YGkzS+nQwImnxCsXaUG6EFtOuk6XkogpExphpDFb42B2Vyggann+TiJYl+yEczL5iT9ZOf8JGVfZG9u9ak6257UyZmGVRG5fwyehpLWFUqkbI+efyEbBVn4ss0HXTtpBb3uPyvy7lBDUXgipr2hRz77ZmCRdHya3eroEt93itOBc3VbjSrtJh37FlYuv2Ejgl5ZBZsJu09w1ofm9hzd54w9efvMlRC+B7uBn5dGhbAtpnKe7Cm8dHoc+C1yjjQg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TGRHenhSRDVkOGpGN2FCSFFXVTFyMVRaR1VCRGVQSHh2dGZDWGhyeHZpMTNu?= =?utf-8?B?VEM5SCtUVGxOLzJzYW92MVNmL2ZySzN1eTJaMjdKc0JXV2hEc2tFbzg3ZUFy?= =?utf-8?B?aFdJWDQ1STFFdjcxRVFIOXZDNHk5TUFJc1Q5ZHREU1hmRFZ3L01JUUlnVmdy?= =?utf-8?B?clhzVGNiK2EvY1o5TzlUczBaYmlWUnZQSUxBb3Z5dWF2NVVkVFQ0NXJScldR?= =?utf-8?B?WUxVMzZ0VlRuTy9oUjh2NzkrQjNMcUJaRFArZGFUaURoN1FFN2dyKzVLVFRO?= =?utf-8?B?S0N3MUNiams5N2I4Y01VUDdYcVdyL0QrUHdaRVJGeWpPT3B5R3FUTlp6Q2tY?= =?utf-8?B?cUdEY2I2UUErQ3crWit0ZWlVcFdrb3J6NXdmd0NpOEltWFVhV2dDNHdKNDR3?= =?utf-8?B?SHQ4R0tHQlJCZUlPeGR0MHZndThpZjhRTE5hWXgxVXVjU3lwWGZLR2xMTVdM?= =?utf-8?B?SnY3VHdqMG1uOGF4SjRmcGs1VGd4ZitCRkF0VXlVeU16Y0ZZTnZsT1pPelRG?= =?utf-8?B?SVF6YzNIVjRnM3kwV3ZFd29rV1hDbGVNREk5NHhJcWVHTEtwOU85UHVzbHh3?= =?utf-8?B?YklLYUh5S25IdXNxOXpESmFPS29LYnFCZHFjaG5RN3cvMnpSYldlaG9YTmd4?= =?utf-8?B?YzRLRlZEaURWV2VOTmxuOFpZZVgrZGFWZzU2SWtKYmwwQjVHWnpCdFUrY244?= =?utf-8?B?OEpmRFpsWEJVQkZtMzl3L3ZxeVJjOWFLd1lNSVhrbFdrUEdBNTdUWGFLQWFa?= =?utf-8?B?cmxSVm04L1pid0g2K1ZmQ1U0eTJVMENGaTRWQzFRZ2FCYVlRUkFBSmt0M2tW?= =?utf-8?B?b0lzVzRNWFV5bEhKMUxRYThWTHNhbGVBc2I0aXUvT2Rub1Qycm45N0YyUXpN?= =?utf-8?B?Um80VXptd1NLYTVpd1NqZnBFTDdYS1ZXYSt0a0k1KzBiSk1IakExNEtiYlBJ?= =?utf-8?B?UWloa3E3azZDNkpMUWNSVDc1OC9iRXdGb2owcUJiZDJ0WFh2THdvOURPUjJq?= =?utf-8?B?ejZNcUpGSnd6YWw2YkdlQzJ1WSs3Sk9uckpsOEtVNWlFUWJnOVZvZ0ZJQmRD?= =?utf-8?B?aUkxaHF3dSs1bHBHd3BJM3hDeWJHNGwvMEhhSHlBYXlTNnVBMjBYK21LRWZM?= =?utf-8?B?OXpzM3NZTWwwcklURU8wQm1PNWJweTJUaUd0dlBpc2tGaG9wM25qUDdTd3Bj?= =?utf-8?B?TWc5RmthQ3JYWWdJVnFLYVNwQzlWWGZONDY4UjFrSFJMNUhOVk1QRUZjYURq?= =?utf-8?B?eWtJTDNQTGI0U0JwT1hnUUhzRmZ4ZmRNM2NDcWJUcFNtYUNRMDNYSHBIL0pP?= =?utf-8?B?QnZjNlBqKzdjNDdPT1JQUGUrOUZiUkg0TWpzWnd4U1dwL3R0UGxFNDVZS1M0?= =?utf-8?B?eGpxNUN5MnZpOTBTZ3Y3OWRHM0xVMWFWNE1RK0FhNURUSWdhSnMyQWg0VlZO?= =?utf-8?B?MjZwb2NBWGxURkVJTENKUWZ3cGlSaWpBcGZHK2FNaHhDVC9wVC8rR2NZcEU0?= =?utf-8?B?VE0ra0ZkK0tSK2VZSDdxdVZla2pCTmVmVkk0Y3YvNnpzYlJ5ZndLcU54R29X?= =?utf-8?B?UzZMOFYzY0ErVUY2MTdCK0t2aEF3bWhkekpDdWYvejZtbld4TE85YVdKVCt6?= =?utf-8?B?VVVhNHU1ZXlpUW1TOTNXaWxwWHFBWjBJVldvZHJkWEl0VWppdUpWMjluQUxv?= =?utf-8?B?NFJSNVF3NkhJdytVbDBaUzN0eDdhUGNXcmVHcDNzSDhoV2pmeWlhN25kamZV?= =?utf-8?B?U29UK25NUWI4ZHI0dEdLNVMxdDRNcVYxM0ErRW1YeDNtOUl5ek1RVW1uQ2Yw?= =?utf-8?B?ZlBrdVM4TC9NOEd0MzJEMHpCVzAxMFZscUlIRXYyWXlXNWNiQlZ2bDdydit4?= =?utf-8?B?UVdLUDlBaFJ4N1ZhL2JRYXFwSEt6aUFWVlFvcm5BMTRBZ09UT0pJQ2lWdkZh?= =?utf-8?B?a09pY2lWNVRDMEFpMURMd1M0WDZDajloZFdhODRaZmRpb1hqejRXTU9yMUwx?= =?utf-8?B?ZGdXVmQ4cWNBPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fbb127a2-89a8-4187-46ba-08da51bcd29e X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2022 06:27:45.8448 (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: AS4PR01MB8965 Subject: Re: [FFmpeg-devel] [PATCH v17 1/5] libavutil: Add wchartoutf8(), wchartoansi(), utf8toansi() and getenv_utf8() 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: U29mdCBXb3JrczoKPiAKPiAKPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4gRnJvbTog ZmZtcGVnLWRldmVsIDxmZm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYg T2YKPj4gQW5kcmVhcyBSaGVpbmhhcmR0Cj4+IFNlbnQ6IFN1bmRheSwgSnVuZSAxOSwgMjAyMiA2 OjU5IEFNCj4+IFRvOiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+PiBTdWJqZWN0OiBSZTogW0ZG bXBlZy1kZXZlbF0gW1BBVENIIHYxNyAxLzVdIGxpYmF2dXRpbDogQWRkCj4+IHdjaGFydG91dGY4 KCksIHdjaGFydG9hbnNpKCksIHV0Zjh0b2Fuc2koKSBhbmQgZ2V0ZW52X3V0ZjgoKQo+Pgo+PiBO aWwgQWRtaXJhcmk6Cj4+PiB3Y2hhcnRvdXRmOCgpIGNvbnZlcnRzIHN0cmluZ3MgcmV0dXJuZWQg YnkgV2luQVBJIGludG8gVVRGLTgsCj4+PiB3aGljaCBpcyBGRm1wZWcncyBwcmVmZmVyZWQgZW5j b2RpbmcuCj4+Pgo+Pj4gU29tZSBleHRlcm5hbCBkZXBlbmRlbmNpZXMsIHN1Y2ggYXMgQXZpU3lu dGgsIGFyZSBzdGlsbAo+Pj4gbm90IFVuaWNvZGUtZW5hYmxlZC4gdXRmOHRvYW5zaSgpIGNvbnZl cnRzIFVURi04IHN0cmluZ3MKPj4+IGludG8gQU5TSSBpbiB0d28gc3RlcHM6IFVURi04IC0+IHdj aGFyX3QgLT4gQU5TSS4KPj4+IHdjaGFydG9hbnNpKCkgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBz ZWNvbmQgc3RlcCBvZiB0aGUgY29udmVyc2lvbi4KPj4+IENvbnZlcnNpb24gaW4ganVzdCBvbmUg c3RlcCBpcyBub3Qgc3VwcG9ydGVkIGJ5IFdpbkFQSS4KPj4+Cj4+PiBTaW5jZSB0aGVzZSBjaGFy YWN0ZXIgY29udmVydGluZyBmdW5jdGlvbnMgYWxsb2NhdGUgdGhlIGJ1ZmZlcgo+Pj4gb2YgbmVj ZXNzYXJ5IHNpemUsIHRoZXkgYWxzbyBmYWNpbGl0YXRlIHRoZSByZW1vdmFsIG9mIE1BWF9QQVRI Cj4+IGxpbWl0Cj4+PiBpbiBwbGFjZXMgd2hlcmUgZml4ZWQtc2l6ZSBBTlNJL1dDSEFSIHN0cmlu Z3Mgd2VyZSB1c2VkCj4+PiBhcyBmaWxlbmFtZSBidWZmZXJzLgo+Pj4KPj4+IGdldGVudl91dGY4 KCkgd3JhcHMgX3dnZXRlbnYoKSBjb252ZXJ0aW5nIGl0cyBpbnB1dCBmcm9tCj4+PiBhbmQgaXRz IG91dHB1dCB0byBVVEYtOC4gQ29tcGFyZWQgdG8gcGxhaW4gZ2V0ZW52KCksCj4+PiBnZXRlbnZf dXRmOCgpIHJlcXVpcmVzIGEgY2xlYW51cC4KPj4+Cj4+PiBCZWNhdXNlIG9mIHRoYXQsIGluIHBs YWNlcyB0aGF0IG9ubHkgdGVzdCB0aGUgZXhpc3RlbmNlIG9mCj4+PiBhbiBlbnZpcm9ubWVudCB2 YXJpYWJsZSBvciBjb21wYXJlIGl0cyB2YWx1ZSB3aXRoIGEgc3RyaW5nCj4+PiBjb25zaXN0aW5n IGVudGlyZWx5IG9mIEFTQ0lJIGNoYXJhY3RlcnMsIHRoZSB1c2Ugb2YgcGxhaW4gZ2V0ZW52KCkK Pj4+IGlzIHN0aWxsIHByZWZlcnJlZC4gKGxpYmF2dXRpbC9sb2cuYyBjaGVja19jb2xvcl90ZXJt aW5hbCgpCj4+PiBpcyBhbiBleGFtcGxlIG9mIHN1Y2ggYSBwbGFjZS4pCj4+Pgo+Pj4gUGxhaW4g Z2V0ZW52KCkgaXMgYWxzbyBwcmVmZmVyZWQgaW4gVU5JWC1vbmx5IGNvZGUsCj4+PiBzdWNoIGFz IGJrdHIuYywgZmJkZXZfY29tbW9uLmMsIG9zcy5jIGluIGxpYmF2ZGV2aWNlCj4+PiBvciBhZl9s YWRzcGEuYyBpbiBsaWJhdmZpbHRlci4KPj4+IC0tLQo+Pj4gIGNvbmZpZ3VyZSAgICAgICAgICAg ICAgICAgIHwgIDEgKwo+Pj4gIGxpYmF2dXRpbC9nZXRlbnZfdXRmOC5oICAgIHwgNzEKPj4gKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+ICBsaWJhdnV0aWwvd2NoYXJf ZmlsZW5hbWUuaCB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gIDMgZmlsZXMg Y2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKykKPj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZ1 dGlsL2dldGVudl91dGY4LmgKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmln dXJlCj4+PiBpbmRleCAzZGNhMWM0YmQzLi5mYTM3YTc0NTMxIDEwMDc1NQo+Pj4gLS0tIGEvY29u ZmlndXJlCj4+PiArKysgYi9jb25maWd1cmUKPj4+IEBAIC0yMjcyLDYgKzIyNzIsNyBAQCBTWVNU RU1fRlVOQ1M9Igo+Pj4gICAgICBmY250bAo+Pj4gICAgICBnZXRhZGRyaW5mbwo+Pj4gICAgICBn ZXRhdXh2YWwKPj4+ICsgICAgZ2V0ZW52Cj4+PiAgICAgIGdldGhydGltZQo+Pj4gICAgICBnZXRv cHQKPj4+ICAgICAgR2V0TW9kdWxlSGFuZGxlCj4+PiBkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2dl dGVudl91dGY4LmggYi9saWJhdnV0aWwvZ2V0ZW52X3V0ZjguaAo+Pj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPj4+IGluZGV4IDAwMDAwMDAwMDAuLjE2MWUzZTYyMDIKPj4+IC0tLSAvZGV2L251bGwK Pj4+ICsrKyBiL2xpYmF2dXRpbC9nZXRlbnZfdXRmOC5oCj4+PiBAQCAtMCwwICsxLDcxIEBACj4+ PiArLyoKPj4+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4+PiArICoKPj4+ICsg KiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y Cj4+PiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYwo+Pj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+Pj4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlcgo+PiB2ZXJzaW9uLgo+Pj4gKyAqCj4+PiAr ICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCj4+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKPj4+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCj4+IEdOVQo+Pj4gKyAqIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4+PiArICoKPj4+ICsgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwKPj4g UHVibGljCj4+PiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0 byB0aGUgRnJlZSBTb2Z0d2FyZQo+Pj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKPj4gMDIxMTAtMTMwMSBVU0EKPj4+ICsg Ki8KPj4+ICsKPj4+ICsjaWZuZGVmIEFWVVRJTF9HRVRFTlZfVVRGOF9ICj4+PiArI2RlZmluZSBB VlVUSUxfR0VURU5WX1VURjhfSAo+Pj4gKwo+Pj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4KPj4+ICsK Pj4+ICsjaW5jbHVkZSAibWVtLmgiCj4+PiArCj4+PiArI2lmZGVmIEhBVkVfR0VURU5WCj4+PiAr Cj4+PiArI2lmZGVmIF9XSU4zMgo+Pj4gKwo+Pj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvd2NoYXJf ZmlsZW5hbWUuaCIKPj4+ICsKPj4+ICtzdGF0aWMgaW5saW5lIGNoYXIgKmdldGVudl91dGY4KGNv bnN0IGNoYXIgKnZhcm5hbWUpCj4+PiArewo+Pj4gKyAgICB3Y2hhcl90ICp2YXJuYW1lX3csICp2 YXJfdzsKPj4+ICsgICAgY2hhciAqdmFyOwo+Pj4gKwo+Pj4gKyAgICBpZiAodXRmOHRvd2NoYXIo dmFybmFtZSwgJnZhcm5hbWVfdykpCj4+PiArICAgICAgICByZXR1cm4gTlVMTDsKPj4+ICsgICAg aWYgKCF2YXJuYW1lX3cpCj4+PiArICAgICAgICByZXR1cm4gTlVMTDsKPj4+ICsKPj4+ICsgICAg dmFyX3cgPSBfd2dldGVudih2YXJuYW1lX3cpOwo+Pj4gKyAgICBhdl9mcmVlKHZhcm5hbWVfdyk7 Cj4+PiArCj4+PiArICAgIGlmICghdmFyX3cpCj4+PiArICAgICAgICByZXR1cm4gTlVMTDsKPj4+ ICsgICAgaWYgKHdjaGFydG91dGY4KHZhcl93LCAmdmFyKSkKPj4+ICsgICAgICAgIHJldHVybiBO VUxMOwo+Pj4gKwo+Pj4gKyAgICByZXR1cm4gdmFyOwo+Pj4gKwo+Pj4gKyAgICAvLyBObyBDUF9B Q1AgZmFsbGJhY2sgY29tcGFyZWQgdG8gb3RoZXIgKl91dGY4KCkgZnVuY3Rpb25zOgo+Pj4gKyAg ICAvLyBub24gVVRGLTggc3RyaW5ncyBtdXN0IG5vdCBiZSByZXR1cm5lZC4KPj4+ICt9Cj4+PiAr Cj4+PiArI2Vsc2UKPj4+ICsKPj4+ICtzdGF0aWMgaW5saW5lIGNoYXIgKmdldGVudl91dGY4KGNv bnN0IGNoYXIgKnZhcm5hbWUpCj4+PiArewo+Pj4gKyAgICByZXR1cm4gYXZfc3RyZHVwKGdldGVu dih2YXJuYW1lKSk7Cj4+Cj4+IFRoaXMgZm9yY2VzIGFsbG9jYXRpb25zIGFuZCBmcmVlcyBpbiBz Y2VuYXJpb3Mgd2hlcmUgdGhpcyBpcyB3aG9sbHkKPj4gdW5uZWNlc3NhcnkuIAo+IAo+IFdoeSBk byB5b3UgdGhpbmsgdGhpcyBpcyB1bm5lY2Vzc2FyeT8gQXQgbGVhc3Qgb24gV2luZG93cywgdGhl cmUgaXMKPiBubyBndWFyYW50ZWUgcmVnYXJkaW5nIHRoZSBsaWZldGltZSBvZiBzdHJpbmdzIHJl dHVybmVkIGZyb20KPiBnZXRlbnYoKS4gSW4gY2FzZSB3aGVuIHNvbWUgb3RoZXIgY29kZSB3b3Vs ZCBjYWxsIF9wdXRlbnYgdG8gc2V0IHRoZQo+IGVudiB2YXJpYWJsZSwgdGhpcyBjYW4gY2F1c2Ug dGhlIHByZXZpb3VzbHkgcmV0dXJuZWQgc3RyaW5nIHRvIGJlY29tZSAKPiBpbnZhbGlkIHdpdGhv dXQgdGhlIGNhbGxlciBiZWluZyBhYmxlIHRvIGtub3cuCj4gCj4gCj4+IFRoaXMgY2FuIGJlIGF2 b2lkZWQgYnkgYWRkaW5nIGEgY3VzdG9tIGRlYWxsb2NhdG9yIGZvcgo+PiBzdHJpbmdzIHJldHVy bmVkIHZpYSBnZXRlbnZfdXRmODogTmFtZWx5IGEgZGVmaW5lL3dyYXBwZXIgYXJvdW5kCj4+IGF2 X2ZyZWUgaW4gdGhlIF9XSU4zMiBhbmQgYSBuby1vcCBlbHNlLgo+IAo+IEkgZG9uJ3QgdGhpbmsg SSByZWFsbHkgdW5kZXJzdGFuZCB3aGF0IHlvdSBtZWFuLCBieSB0aGUgYWJvdmUg8J+YiQo+IAoK VGhlICJzY2VuYXJpb3Mgd2hlcmUgdGhpcyBpcyB3aG9sbHkgdW5uZWNlc3NhcnkiIGFyZSB0aGUg c2NlbmFyaW9zIGluCndoaWNoIG9uZSBpcyBpbiB0aGUgYWJvdmUgI2Vsc2UgYnJhbmNoLCBpLmUu IG5vdCBvbiBXaW5kb3dzIChJIHRob3VnaHQKdGhpcyB3YXMgY2xlYXIgZnJvbSB0aGUgcGxhY2Vt ZW50IG9mIG15IGNvbW1lbnQpLiBJbiB0aGlzIGNhc2UsIHRoZQphYm92ZSBhdl9zdHJkdXAoKSBj YW4gYmUgYXZvaWRlZCBieSBhZGRpbmcgYSBjdXN0b20gZGVhbGxvY2F0b3IgdGhhdApib2lscyBk b3duIHRvIGF2X2ZyZWUgb24gV2luZG93cyBhbmQgYSBuby1vcCBpbiBhbGwgb3RoZXIgY2FzZXMu CgotIEFuZHJlYXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRw czovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2Ny aWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1w ZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=