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 4B6EF427F0 for ; Thu, 31 Mar 2022 23:01:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0537268A380; Fri, 1 Apr 2022 02:01:35 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2085.outbound.protection.outlook.com [40.92.89.85]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DFDE868B0D3 for ; Fri, 1 Apr 2022 02:01:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Oi3COSEAeE4ONoovwyrhoeuoQh6fHI7eKXtUw151cVO3y0qN0H0/0UM8afwIdW4N+MBbbwhH8VT9Q0xtebxFgwhDn3RfSvJ2eSwqAHCV/iWE/r+DPXVWCHA/nzrwVIsb/magg4dBCL15ny5Qa1J4LZP6DNN1OmHif/Enn4NuFHEof2aqbZ1VUEi+xrmpf8IjZW0cq8q1y60g27pX3eP9ZwpeI7wLt4HMK3kzCKyBNxkbrsm4wYfBTzOnO0sRAZNHgUIYYLQsE8lWStUWhUx1wxt4/alwS6oeTS9vcI+jRELU2nI/0CXw6zbPKTc1ToptS4MJQBzkZJLK0a0xHaNmXA== 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=+nbAohPWdLMqc/D0RZTfKLHCohJ78KHxczOJGHkwWQo=; b=FCQ/U56dONakRe7IpxIBQAEsmmJT4d5zoHy71ckPMvVJ6LGvCZp78HllMh1neCVTeIbaOANduuDGU/pg+ovoYITHw9q1YntAf/X5ig/Qs5GKTrJFHgIS0UzgCbu9lAz+BR0vlLtqUUXeYCEEwkerdZNwggWVqsnlOOpGJByjwBg/WlbllSwDjxwGOLx73tceloWdL8j0Sy4W7M7juu3RAc20zLn2zcgx05AC7JGvU8Gi1r713l0rJHRjuPCHZnYP/9qvm7SZsEGElmsghjLjAim0wAAIvFqt507QMRet8q1hYXvzDa8LNevFB76GYT/W6TU54+r6ytYRocNU7YQhSg== 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=+nbAohPWdLMqc/D0RZTfKLHCohJ78KHxczOJGHkwWQo=; b=cz6a+3NXc8DWnSrmKDI9QjaPlDMyi5v41O34DVBntPOMRsuczXc03rscV5io5K2Hz6xJGcAAGZqYE3VpMhLx1m0QGWi5ns1DFRhPrrAoUs0BM8tcwvMi21nZv9dxIvmr+spAQTmb03PRk4Jpmn/ReIBEYqiAaiTiFtbP/QlRrkDtdbI9QF5Psn/O87ewKEfyAOGi5QPtcIPuPbeLSR8JVsmnMpsiz6wsc8hVQnEfHxYVA2KGflm48O2ItBw8mXBt8EM5BxMblkMm4Zi5emjlAQPnJ5KDVe6on3SyxF5eJmquSxTJExZTUKgGXMGmrWh1yDd41/inXZtW9tgk10KNdA== Received: from AS1PR01MB9564.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d1::16) by AM6PR01MB5334.eurprd01.prod.exchangelabs.com (2603:10a6:20b:97::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.19; Thu, 31 Mar 2022 23:01:25 +0000 Received: from AS1PR01MB9564.eurprd01.prod.exchangelabs.com ([fe80::9070:a5fd:e532:bdf8]) by AS1PR01MB9564.eurprd01.prod.exchangelabs.com ([fe80::9070:a5fd:e532:bdf8%3]) with mapi id 15.20.5102.022; Thu, 31 Mar 2022 23:01:25 +0000 Message-ID: Date: Fri, 1 Apr 2022 01:01:23 +0200 Content-Language: en-US To: Mark Gaiser References: <20220330114039.69510-1-markg85@gmail.com> <20220330114039.69510-2-markg85@gmail.com> From: Andreas Rheinhardt In-Reply-To: X-TMN: [1kWljecRGLqCaRwhkCmIG59Qo+35rwcN] X-ClientProxiedBy: ZR0P278CA0154.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::9) To AS1PR01MB9564.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d1::16) X-Microsoft-Original-Message-ID: <9d3d5f34-fa65-7a45-94c3-d9ac8c0ead30@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3a00c3de-e3bd-40fb-43c4-08da136a61a0 X-MS-TrafficTypeDiagnostic: AM6PR01MB5334:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +VGioDH4UQOQrhzDICH0wTOUzF19L1/v3fYiVVHmCfRquPkYPsTdW4PC7HCh4SNVkj/izS72ctW403Gtm02muV/QPYXg5fszpOLSCQeWxXAWTLk8MoSGBDcPyW0WgPs8AzYEpRnwdwrRi6NKwLqb+7drkhl8bqiqKftedU6QyCwzoWsAe35mCde75+kKH4wtePVyKlXlVwOpVpx5fQQpuIT/WJI0OMaOY8Vh+GDi/K0j7blnwOzF6SeiAujt2rwduzyaPMHNcaS0p4hOnGI/ETnqYP7h6D7LDLzhCTTi4AEBhVFKguAGZ7DL84VSui8DOV79oXpLXQJ0TX2aHXpJUKl1TM+c8TDKwl15AJg0g2fmyYc/Cam2Zjsghrwb5kff0jrpnXEEbtefIQ9ojGZUms6UV/LIxeisIU92tO7XROEIp0NGKn3kj+1OVkmVLQPvNXcWQ9XW2oaH/fAdH5tbws6WlsmILD/RMH4gPT5eVilCtq07AJOmoCcpq3aG20BlGC7xjVw+B/1oHzwIeivHt5TBoaAiBO4h1lHu/tX5+BLAT6h3dvOxVLBhIvaMn1ZXKYPomFgqEFVDEFJ+5DxttVROhdfzjhJ5o99Ww+opdNV+Zg1rEx39lQfzigFPiBWA X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TUdhZ2g2NEdGZ3VQUGl2dUpRUytna1VQSjhFUEVnM2xuTG8vYnphS0xzSmdO?= =?utf-8?B?ZzBMUWY2bU1mcEdoSmRkd0k0OEl5N0VHNVdUclQrL0M3TUZVREdzdnpMTGVY?= =?utf-8?B?eG5VMU16UVNLUG43LzJTa0kwKzRVVmlWRXVaV1RLcU9jMDl2a1dCYnI1ajR5?= =?utf-8?B?QjdnWm8veXBZREJpRUM5d0habjR5U0FuVkRxTndzY25hcFNiWUhmd0RKZjRn?= =?utf-8?B?b2E2bXluTDdMbVg5WVBUczl2S3dVZlRWaTIzc3lTakZEM3dDRi9nOTduM3E3?= =?utf-8?B?Q2hORnQ1TiswV3hjZ0Fqb1BuZkE4Y1JISm14RDBLdDdSR1FtWEFYSVo2b04z?= =?utf-8?B?aEI0Z2FRTnpyaU9mU2oyd3lLRXRteVlnM2pxYmR2OTVZRng3QitPSEEvdzRI?= =?utf-8?B?a0lyVTFOR1BZUXN3M1NDTXZXZ0tnMlo2NnZuTUNQUWNORUpIWE9vY1RQL2FT?= =?utf-8?B?RFRPM3dSMWJ4NzE0MWhRSklJakx3MEVYT0o5WmkrcnRVMmRuZ3dEeElpRkhz?= =?utf-8?B?RHhLVEJOV2tYY1NLZmhEei9RN0dsdHk1MnYxUEZnVTNiR05qUkNtb1YwNy9G?= =?utf-8?B?N2U2QjhROHZaU0NKQWlTRDVmdDBwY1ZoalJlaFFJN1MwSWJFcWNFQkMyL2tR?= =?utf-8?B?RjNJb0FpN3o0THlrN1J1M2hLK0hGb2pRS0dYY3NmSjRiM2Q4cnFWSWR6L2I1?= =?utf-8?B?R1JoQVFoRlUrYzhnTUcydzlSQkQ3WlVTbVVwUmVEbEI2Y01uWS9GRC9SSVlo?= =?utf-8?B?MWZQUzBoZWJDTzlPTmV6dEhMYnd0RTFEVUtOYUN4bzI5ZFhrZlQ0SnVEK1ZE?= =?utf-8?B?Z2JlQlhVWE9ub1VESTRpbkZqRldQaFo5eDRSMDN4NWpld2hZOTBZTjlzWlEz?= =?utf-8?B?Tm5PZXM5TnBua1BmZmhjQ3Uwc2FWakhpVkIxNDhZTU1wSVh6bmlYTStJU2JW?= =?utf-8?B?Q0pLK3IyMmREYjlOS1A0VDVaT0tZZ0JwMndFU3dXS2Nack0wSmEya1hhRWdR?= =?utf-8?B?RlBIOFBmOEJ4ekUvMXdiaEZzRmdJS2JzaUYvWXB5eTJkTWgrSi81Y2JVUzE5?= =?utf-8?B?dlZYendOM2ZJeUV5cmxVV2JPM3I3RHMzRSt0NnBkRitqVFlaamZpbkg1R2tq?= =?utf-8?B?SGd5dnZ1R3ZJQ0lqOG5Vb25tY2FFRGJyL0E0cWNNTUh6RDVqMmh3NGFFUEdC?= =?utf-8?B?YlBtMi80QnA5V0xvS2VENUFQYzdNeGUvWVpDZ3MySGdFSERNVlROV3FXSHow?= =?utf-8?B?VlhlYy9XQ09MaEN6d2RHWFI4ZXZHQlNQR2owQzNVTmJRQ3dlVlNMT2MzMmR5?= =?utf-8?B?NTZJdEVZQzNQZk9mbVJmN3NVc0JKdnoxUFpObFlBdTQwRjlnN2dvVWhVUmhW?= =?utf-8?B?QWRZN1duV1RZNlNWSUE2MG1pTlh0Y2JRUHlvMVVCWFdLeG0rQmw5VmtBVWRT?= =?utf-8?B?KzRWbGN0NXJCeTU0UHA5YW9VT3FVb0t1NzNvZDhNMVBiWDY4VnVNTmpxUjVt?= =?utf-8?B?MkdRTUc2ektCL3d2bHd4ZGFseVcvZjVJaTBBLzhSNGRudVJTdHJPNk1JalZ5?= =?utf-8?B?RWVPM2FlazRMOU5jMWMrKzI3SkhPSmxZNzQvRVRVYk1LSG9RbUQ0L1VSaEE3?= =?utf-8?B?L2orSkd3dHJCZ3pxcEZEK1JycS9pNW1Hby9KM1lpM3NPSXJ6UE4raDNhTnpY?= =?utf-8?B?RGdFN2h6TnUvWFFXM1c0WnJWOGRaYURBTHQrczFKUEErWEdaV0ZPbTNja215?= =?utf-8?B?TXhkVTkxVUwzTXVjL1phcUw5QWk2bUk3TVQyNkpFbTZoSTUvQ1YrRk8wc2Ja?= =?utf-8?B?YmV1YllGVXJBWDJTbUJ1UTB5TjVnU2l2YjV0UnYyeVU0c3V6Uk5nc2g4dG9M?= =?utf-8?B?SHYySVZOVWx0Z2ZNc0tDcFZIWkZ4eVd6YzZxMUtXVzZoR0ZJN3JnNkdkbmU5?= =?utf-8?Q?JUGClJD3jv9QF0QQzZsNhpj2J31FmB0o?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3a00c3de-e3bd-40fb-43c4-08da136a61a0 X-MS-Exchange-CrossTenant-AuthSource: AS1PR01MB9564.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2022 23:01:25.4199 (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: AM6PR01MB5334 Subject: Re: [FFmpeg-devel] [PATCH v10 1/1] avformat: Add IPFS protocol support. 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: 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: TWFyayBHYWlzZXI6Cj4gT24gVGh1LCBNYXIgMzEsIDIwMjIgYXQgMTE6NDQgUE0gQW5kcmVhcyBS aGVpbmhhcmR0IDwKPiBhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+IHdyb3RlOgo+IAo+ PiBNYXJrIEdhaXNlcjoKPj4+IE9uIFdlZCwgTWFyIDMwLCAyMDIyIGF0IDM6NTcgUE0gQW5kcmVh cyBSaGVpbmhhcmR0IDwKPj4+IGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4gd3JvdGU6 Cj4+Pgo+Pj4+IE1hcmsgR2Fpc2VyOgo+Pj4+PiBPbiBXZWQsIE1hciAzMCwgMjAyMiBhdCAyOjIx IFBNIEFuZHJlYXMgUmhlaW5oYXJkdCA8Cj4+Pj4+IGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29r LmNvbT4gd3JvdGU6Cj4+Pj4+Cj4+Pj4+PiBNYXJrIEdhaXNlcjoKPj4+Pj4+PiBUaGlzIHBhdGNo IGFkZHMgc3VwcG9ydCBmb3I6Cj4+Pj4+Pj4gLSBmZnBsYXkgaXBmczovLzxjaWQ+Cj4+Pj4+Pj4g LSBmZnBsYXkgaXBuczovLzxjaWQ+Cj4+Pj4+Pj4KPj4+Pj4+PiBJUEZTIGRhdGEgY2FuIGJlIHBs YXllZCBmcm9tIHNvIGNhbGxlZCAiaXBmcyBnYXRld2F5cyIuCj4+Pj4+Pj4gQSBnYXRld2F5IGlz IGVzc2VudGlhbGx5IGEgd2Vic2VydmVyIHRoYXQgZ2l2ZXMgYWNjZXNzIHRvIHRoZQo+Pj4+Pj4+ IGRpc3RyaWJ1dGVkIElQRlMgbmV0d29yay4KPj4+Pj4+Pgo+Pj4+Pj4+IFRoaXMgcHJvdG9jb2wg c3VwcG9ydCAoaXBmcyBhbmQgaXBucykgdGhlcmVmb3JlIHRyYW5zbGF0ZXMKPj4+Pj4+PiBpcGZz Oi8vIGFuZCBpcG5zOi8vIHRvIGEgaHR0cDovLyB1cmwuIFRoaXMgcmVzdWx0aW5nIHVybCBpcwo+ Pj4+Pj4+IHRoZW4gaGFuZGxlZCBieSB0aGUgaHR0cCBwcm90b2NvbC4gSXQgY291bGQgYWxzbyBi ZSBodHRwcwo+Pj4+Pj4+IGRlcGVuZGluZyBvbiB0aGUgZ2F0ZXdheSBwcm92aWRlZC4KPj4+Pj4+ Pgo+Pj4+Pj4+IFRvIHVzZSB0aGlzIHByb3RvY29sLCBhIGdhdGV3YXkgbXVzdCBiZSBwcm92aWRl ZC4KPj4+Pj4+PiBJZiB5b3UgZG8gbm90aGluZyBpdCB3aWxsIHRyeSB0byBmaW5kIGl0IGluIHlv dXIKPj4+Pj4+PiAkSE9NRS8uaXBmcy9nYXRld2F5IGZpbGUuIFRoZSB3YXlzIHRvIHNldCBpdCBt YW51YWxseSBhcmU6Cj4+Pj4+Pj4gMS4gRGVmaW5lIGEgLWdhdGV3YXkgPHVybD4gdG8gdGhlIGdh dGV3YXkuCj4+Pj4+Pj4gMi4gRGVmaW5lICRJUEZTX0dBVEVXQVkgd2l0aCB0aGUgZnVsbCBodHRw IGxpbmsgdG8gdGhlIGdhdGV3YXkuCj4+Pj4+Pj4gMy4gRGVmaW5lICRJUEZTX1BBVEggYW5kIHBv aW50IGl0IHRvIHRoZSBJUEZTIGRhdGEgcGF0aC4KPj4+Pj4+PiA0LiBIYXZlIElQRlMgcnVubmlu ZyBpbiB5b3VyIGxvY2FsIHVzZXIgZm9sZGVyICh1bmRlciAkSE9NRS8uaXBmcykuCj4+Pj4+Pj4K Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBNYXJrIEdhaXNlciA8bWFya2c4NUBnbWFpbC5jb20+Cj4+ Pj4+Pj4gLS0tCj4+Pj4+Pj4gIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgfCAgIDIgKwo+Pj4+ Pj4+ICBkb2MvcHJvdG9jb2xzLnRleGkgICAgICAgIHwgIDMwICsrKysKPj4+Pj4+PiAgbGliYXZm b3JtYXQvTWFrZWZpbGUgICAgICB8ICAgMiArCj4+Pj4+Pj4gIGxpYmF2Zm9ybWF0L2lwZnNnYXRl d2F5LmMgfCAzMDkKPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+ Pj4+PiAgbGliYXZmb3JtYXQvcHJvdG9jb2xzLmMgICB8ICAgMiArCj4+Pj4+Pj4gIDUgZmlsZXMg Y2hhbmdlZCwgMzQ1IGluc2VydGlvbnMoKykKPj4+Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxp YmF2Zm9ybWF0L2lwZnNnYXRld2F5LmMKPj4+Pj4+Pgo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9jb25m aWd1cmUgYi9jb25maWd1cmUKPj4+Pj4+PiBpbmRleCBlNGQzNmFhNjM5Li41NWFmOTA5NTdhIDEw MDc1NQo+Pj4+Pj4+IC0tLSBhL2NvbmZpZ3VyZQo+Pj4+Pj4+ICsrKyBiL2NvbmZpZ3VyZQo+Pj4+ Pj4+IEBAIC0zNTc5LDYgKzM1NzksOCBAQCB1ZHBfcHJvdG9jb2xfc2VsZWN0PSJuZXR3b3JrIgo+ Pj4+Pj4+ICB1ZHBsaXRlX3Byb3RvY29sX3NlbGVjdD0ibmV0d29yayIKPj4+Pj4+PiAgdW5peF9w cm90b2NvbF9kZXBzPSJzeXNfdW5faCIKPj4+Pj4+PiAgdW5peF9wcm90b2NvbF9zZWxlY3Q9Im5l dHdvcmsiCj4+Pj4+Pj4gK2lwZnNfcHJvdG9jb2xfc2VsZWN0PSJodHRwc19wcm90b2NvbCIKPj4+ Pj4+PiAraXBuc19wcm90b2NvbF9zZWxlY3Q9Imh0dHBzX3Byb3RvY29sIgo+Pj4+Pj4+Cj4+Pj4+ Pj4gICMgZXh0ZXJuYWwgbGlicmFyeSBwcm90b2NvbHMKPj4+Pj4+PiAgbGliYW1xcF9wcm90b2Nv bF9kZXBzPSJsaWJyYWJiaXRtcSIKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZG9jL3Byb3RvY29scy50 ZXhpIGIvZG9jL3Byb3RvY29scy50ZXhpCj4+Pj4+Pj4gaW5kZXggZDIwN2RmMGI1Mi4uN2M5YzBh NDgwOCAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kb2MvcHJvdG9jb2xzLnRleGkKPj4+Pj4+PiArKysg Yi9kb2MvcHJvdG9jb2xzLnRleGkKPj4+Pj4+PiBAQCAtMjAyNSw1ICsyMDI1LDM1IEBAIGRlY29k aW5nIGVycm9ycy4KPj4+Pj4+Pgo+Pj4+Pj4+ICBAZW5kIHRhYmxlCj4+Pj4+Pj4KPj4+Pj4+PiAr QHNlY3Rpb24gaXBmcwo+Pj4+Pj4+ICsKPj4+Pj4+PiArSW50ZXJQbGFuZXRhcnkgRmlsZSBTeXN0 ZW0gKElQRlMpIHByb3RvY29sIHN1cHBvcnQuIE9uZSBjYW4gYWNjZXNzCj4+Pj4+PiBmaWxlcyBz dG9yZWQKPj4+Pj4+PiArb24gdGhlIElQRlMgbmV0d29yayB0aHJvdWdoIHNvIGNhbGxlZCBnYXRl d2F5cy4gVGhvc2UgYXJlIGh0dHAocykKPj4+Pj4+IGVuZHBvaW50cy4KPj4+Pj4+PiArVGhpcyBw cm90b2NvbCB3cmFwcyB0aGUgSVBGUyBuYXRpdmUgcHJvdG9jb2xzIChpcGZzOi8vIGFuZCBpcG5z Oi8vKQo+PiB0bwo+Pj4+Pj4gYmUgc2VuZAo+Pj4+Pj4+ICt0byBzdWNoIGEgZ2F0ZXdheS4gVXNl cnMgY2FuIChhbmQgc2hvdWxkKSBob3N0IHRoZWlyIG93biBub2RlIHdoaWNoCj4+Pj4+PiBtZWFu cyB0aGlzCj4+Pj4+Pj4gK3Byb3RvY29sIHdpbGwgdXNlIHlvdXIgbG9jYWwgbWFjaGluZSBnYXRl d2F5IHRvIGFjY2VzcyBmaWxlcyBvbiB0aGUKPj4+Pj4+IElQRlMgbmV0d29yay4KPj4+Pj4+PiAr Cj4+Pj4+Pj4gK0lmIGEgdXNlciBkb2Vzbid0IGhhdmUgYSBub2RlIG9mIHRoZWlyIG93biB0aGVu IHRoZSBwdWJsaWMgZ2F0ZXdheQo+Pj4+Pj4gZHdlYi5saW5rIGlzCj4+Pj4+Pj4gK3VzZWQgYnkg ZGVmYXVsdC4KPj4+Pj4+PiArCj4+Pj4+Pj4gK1lvdSBjYW4gdXNlIHRoaXMgcHJvdG9jb2wgaW4g MiB3YXlzLiBVc2luZyBJUEZTOgo+Pj4+Pj4+ICtAZXhhbXBsZQo+Pj4+Pj4+ICtmZnBsYXkgaXBm czovL1FtYkd0SmcyM3NraHZGbXU5bUppZVBWQnloZnp1NXJ3bzc0TUVrVkRZQW1GNVQKPj4+Pj4+ PiArQGVuZCBleGFtcGxlCj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtPciB0aGUgSVBOUyBwcm90b2NvbCAo SVBOUyBpcyBtdXRhYmxlIElQRlMpOgo+Pj4+Pj4+ICtAZXhhbXBsZQo+Pj4+Pj4+ICtmZnBsYXkg aXBuczovL1FtYkd0SmcyM3NraHZGbXU5bUppZVBWQnloZnp1NXJ3bzc0TUVrVkRZQW1GNVQKPj4+ Pj4+PiArQGVuZCBleGFtcGxlCj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtZb3UgY2FuIGFsc28gY2hhbmdl IHRoZSBnYXRld2F5IHRvIGJlIHVzZWQ6Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtAdGFibGUgQG9wdGlv bgo+Pj4+Pj4+ICsKPj4+Pj4+PiArQGl0ZW0gZ2F0ZXdheQo+Pj4+Pj4+ICtEZWZpbmVzIHRoZSBn YXRld2F5IHRvIHVzZS4gV2hlbiBub3RoaW5nIGlzIHByb3ZpZGVkIHRoZSBwcm90b2NvbAo+PiB3 aWxsCj4+Pj4+PiBmaXJzdCB0cnkKPj4+Pj4+PiAreW91ciBsb2NhbCBnYXRld2F5LiBJZiB0aGF0 IGZhaWxzIGR3ZWIubGluayB3aWxsIGJlIHVzZWQuCj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtAZW5kIHRh YmxlCj4+Pj4+Pj4KPj4+Pj4+PiAgQGMgbWFuIGVuZCBQUk9UT0NPTFMKPj4+Pj4+PiBkaWZmIC0t Z2l0IGEvbGliYXZmb3JtYXQvTWFrZWZpbGUgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+Pj4+Pj4+ IGluZGV4IGQ3MTgyZDZiZDguLmUzMjMzZmQ3YWMgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvbGliYXZm b3JtYXQvTWFrZWZpbGUKPj4+Pj4+PiArKysgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+Pj4+Pj4+ IEBAIC02NjAsNiArNjYwLDggQEAgT0JKUy0kKENPTkZJR19TUlRQX1BST1RPQ09MKSAgICAgICAg ICAgICArPQo+Pj4+Pj4gc3J0cHByb3RvLm8gc3J0cC5vCj4+Pj4+Pj4gIE9CSlMtJChDT05GSUdf U1VCRklMRV9QUk9UT0NPTCkgICAgICAgICAgKz0gc3ViZmlsZS5vCj4+Pj4+Pj4gIE9CSlMtJChD T05GSUdfVEVFX1BST1RPQ09MKSAgICAgICAgICAgICAgKz0gdGVlcHJvdG8ubyB0ZWVfY29tbW9u Lm8KPj4+Pj4+PiAgT0JKUy0kKENPTkZJR19UQ1BfUFJPVE9DT0wpICAgICAgICAgICAgICArPSB0 Y3Aubwo+Pj4+Pj4+ICtPQkpTLSQoQ09ORklHX0lQRlNfUFJPVE9DT0wpICAgICAgICAgICAgICs9 IGlwZnNnYXRld2F5Lm8KPj4+Pj4+PiArT0JKUy0kKENPTkZJR19JUE5TX1BST1RPQ09MKSAgICAg ICAgICAgICArPSBpcGZzZ2F0ZXdheS5vCj4+Pj4+Pj4gIFRMUy1PQkpTLSQoQ09ORklHX0dOVVRM UykgICAgICAgICAgICAgICAgKz0gdGxzX2dudXRscy5vCj4+Pj4+Pj4gIFRMUy1PQkpTLSQoQ09O RklHX0xJQlRMUykgICAgICAgICAgICAgICAgKz0gdGxzX2xpYnRscy5vCj4+Pj4+Pj4gIFRMUy1P QkpTLSQoQ09ORklHX01CRURUTFMpICAgICAgICAgICAgICAgKz0gdGxzX21iZWR0bHMubwo+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9pcGZzZ2F0ZXdheS5jIGIvbGliYXZmb3JtYXQv aXBmc2dhdGV3YXkuYwo+Pj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+Pj4+Pj4gaW5kZXgg MDAwMDAwMDAwMC4uMWEwMzk1ODljMAo+Pj4+Pj4+IC0tLSAvZGV2L251bGwKPj4+Pj4+PiArKysg Yi9saWJhdmZvcm1hdC9pcGZzZ2F0ZXdheS5jCj4+Pj4+Pj4gQEAgLTAsMCArMSwzMDkgQEAKPj4+ Pj4+PiArLyoKPj4+Pj4+PiArICogSVBGUyBhbmQgSVBOUyBwcm90b2NvbCBzdXBwb3J0IHRocm91 Z2ggSVBGUyBHYXRld2F5Lgo+Pj4+Pj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjIgTWFyayBHYWlz ZXIKPj4+Pj4+PiArICoKPj4+Pj4+PiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+ Pj4+Pj4+ICsgKgo+Pj4+Pj4+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4+Pj4+Pj4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4+Pj4+PiArICogTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4+Pj4+ Pj4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlcgo+PiB2ZXJzaW9uLgo+Pj4+Pj4+ICsgKgo+Pj4+Pj4+ICsgKiBGRm1wZWcgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPj4+Pj4+PiArICog YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKPj4+Pj4+PiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPj4+Pj4+PiArICogTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPj4+Pj4+PiArICoKPj4+Pj4+PiArICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYwo+Pj4+Pj4+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4+Pj4+Pj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKPj4+Pj4+IDAyMTEwLTEzMDEg VVNBCj4+Pj4+Pj4gKyAqLwo+Pj4+Pj4+ICsKPj4+Pj4+PiArI2luY2x1ZGUgImF2Zm9ybWF0Lmgi Cj4+Pj4+Pj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQuaCIKPj4+Pj4+Cj4+Pj4+PiBV bnVzZWQuCj4+Pj4+Pgo+Pj4+Pj4+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2F2c3RyaW5nLmgiCj4+ Pj4+Pj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaW50ZXJuYWwuaCIKPj4+Pj4+PiArI2luY2x1ZGUg ImxpYmF2dXRpbC9vcHQuaCIKPj4+Pj4+PiArI2luY2x1ZGUgImxpYmF2dXRpbC90cmVlLmgiCj4+ Pj4+Pgo+Pj4+Pj4gPwo+Pj4+Pj4KPj4+Pj4KPj4+Pj4gVGhpcyB3aG9sZSBpbmNsdWRlIHBhcnQg Y2FuIGJlIGNsZWFuZWQgdXAgbXVjaCBtb3JlLgo+Pj4+PiBKdXN0IGhhdmluZyB0aGVzZToKPj4+ Pj4gI2luY2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgo+Pj4+PiAjaW5jbHVkZSAibGliYXZ1 dGlsL29wdC5oIgo+Pj4+PiAjaW5jbHVkZSAidXJsLmgiCj4+Pj4+ICNpbmNsdWRlIDxzeXMvc3Rh dC5oPgo+Pj4+Pgo+Pj4+PiBpcyBlbm91Z2guCj4+Pj4+Cj4+Pj4+Cj4+Pj4+Pj4gKyNpbmNsdWRl IDxmY250bC5oPgo+Pj4+Pj4+ICsjaWYgSEFWRV9JT19ICj4+Pj4+Pj4gKyNpbmNsdWRlIDxpby5o Pgo+Pj4+Pj4+ICsjZW5kaWYKPj4+Pj4+PiArI2lmIEhBVkVfVU5JU1REX0gKPj4+Pj4+PiArI2lu Y2x1ZGUgPHVuaXN0ZC5oPgo+Pj4+Pj4+ICsjZW5kaWYKPj4+Pj4+PiArI2luY2x1ZGUgIm9zX3N1 cHBvcnQuaCIKPj4+Pj4+PiArI2luY2x1ZGUgInVybC5oIgo+Pj4+Pj4+ICsjaW5jbHVkZSA8c3Rk bGliLmg+Cj4+Pj4+Pj4gKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgo+Pj4+Pj4+ICsKPj4+Pj4+PiAr dHlwZWRlZiBzdHJ1Y3QgSVBGU0dhdGV3YXlDb250ZXh0IHsKPj4+Pj4+PiArICAgIEFWQ2xhc3Mg KmNsYXNzOwo+Pj4+Pj4+ICsgICAgVVJMQ29udGV4dCAqaW5uZXI7Cj4+Pj4+Pj4gKyAgICAvLyBJ cyBmaWxsZWQgYnkgdGhlIC1nYXRld2F5IGFyZ3VtZW50IGFuZCBub3QgY2hhbmdlZCBhZnRlci4K Pj4+Pj4+PiArICAgIGNoYXIgKmdhdGV3YXk7Cj4+Pj4+Pj4gKyAgICAvLyBJZiB0aGUgYWJvdmUg Z2F0ZXdheSBpcyBub24gbnVsbCwgaXQgd2lsbCBiZSBjb3BpZWQgaW50byB0aGlzCj4+Pj4+PiBi dWZmZXIuCj4+Pj4+Pj4gKyAgICAvLyBFbHNlIHRoaXMgYnVmZmVyIHdpbGwgY29udGFpbiB0aGUg YXV0byBkZXRlY3RlZCBnYXRld2F5Lgo+Pj4+Pj4+ICsgICAgLy8gSW4gZWl0aGVyIGNhc2UsIHRo ZSBnYXRld2F5IHRvIHVzZSB3aWxsIGJlIGluIHRoaXMgYnVmZmVyLgo+Pj4+Pj4+ICsgICAgY2hh ciBnYXRld2F5X2J1ZmZlcltQQVRIX01BWF07Cj4+Pj4+Pj4gK30gSVBGU0dhdGV3YXlDb250ZXh0 Owo+Pj4+Pj4+ICsKPj4+Pj4+PiArLy8gQSBiZXN0LWVmZm9ydCB3YXkgdG8gZmluZCB0aGUgSVBG UyBnYXRld2F5Lgo+Pj4+Pj4+ICsvLyBPbmx5IHRoZSBtb3N0IGFwcHJvcGlhdGUgZ2F0ZXdheSBp cyBzZXQuIEl0J3Mgbm90IGFjdHVhbGx5Cj4+Pj4gcmVxdWVzdGVkCj4+Pj4+Pj4gKy8vIChodHRw IGNhbGwpIHRvIHByZXZlbnQgYSBwb3RlbnRpYWwgc2xvd2Rvd24gaW4gc3RhcnR1cC4gQQo+PiBw b3RlbnRpYWwKPj4+Pj4+IHRpbWVvdXQKPj4+Pj4+PiArLy8gaXMgaGFuZGxlZCBieSB0aGUgSFRU UCBwcm90b2NvbC4KPj4+Pj4+PiArc3RhdGljIGludCBwb3B1bGF0ZV9pcGZzX2dhdGV3YXkoVVJM Q29udGV4dCAqaCkKPj4+Pj4+PiArewo+Pj4+Pj4+ICsgICAgSVBGU0dhdGV3YXlDb250ZXh0ICpj ID0gaC0+cHJpdl9kYXRhOwo+Pj4+Pj4+ICsgICAgY2hhciBpcGZzX2Z1bGxfZGF0YV9mb2xkZXJb UEFUSF9NQVhdOwo+Pj4+Pj4+ICsgICAgY2hhciBpcGZzX2dhdGV3YXlfZmlsZVtQQVRIX01BWF07 Cj4+Pj4+Pj4gKyAgICBzdHJ1Y3Qgc3RhdCBzdDsKPj4+Pj4+PiArICAgIGludCBzdGF0X3JldCA9 IDA7Cj4+Pj4+Pj4gKyAgICBpbnQgcmV0ID0gQVZFUlJPUihFSU5WQUwpOwo+Pj4+Pj4+ICsgICAg RklMRSAqZ2F0ZXdheV9maWxlID0gTlVMTDsKPj4+Pj4+PiArCj4+Pj4+Pj4gKyAgICAvLyBUZXN0 ICRJUEZTX0dBVEVXQVkuCj4+Pj4+Pj4gKyAgICBpZiAoZ2V0ZW52KCJJUEZTX0dBVEVXQVkiKSAh PSBOVUxMKSB7Cj4+Pj4+Pj4gKyAgICAgICAgaWYgKHNucHJpbnRmKGMtPmdhdGV3YXlfYnVmZmVy LCBzaXplb2YoYy0+Z2F0ZXdheV9idWZmZXIpLAo+Pj4+ICIlcyIsCj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgIGdldGVudigiSVBGU19HQVRFV0FZIikpID49Cj4+Pj4+PiBzaXplb2YoYy0+ Z2F0ZXdheV9idWZmZXIpKSB7Cj4+Pj4+Pj4gKyAgICAgICAgICAgIGF2X2xvZyhoLCBBVl9MT0df V0FSTklORywgIlRoZSBJUEZTX0dBVEVXQVkgZW52aXJvbm1lbnQKPj4+Pj4+IHZhcmlhYmxlIGV4 Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoLiBXZSBhbGxvdyBhIG1heCBvZiAlenUKPj4+PiBjaGFy YWN0ZXJzXG4iLAo+Pj4+Pj4gc2l6ZW9mKGMtPmdhdGV3YXlfYnVmZmVyKSk7Cj4+Pj4+Pj4gKyAg ICAgICAgICAgIHJldCA9IEFWRVJST1IoRUlOVkFMKTsKPj4+Pj4+PiArICAgICAgICAgICAgZ290 byBlcnI7Cj4+Pj4+Pj4gKyAgICAgICAgfQo+Pj4+Pj4+ICsKPj4+Pj4+PiArICAgICAgICByZXQg PSAxOwo+Pj4+Pj4+ICsgICAgICAgIGdvdG8gZXJyOwo+Pj4+Pj4+ICsgICAgfSBlbHNlCj4+Pj4+ Pj4gKyAgICAgICAgYXZfbG9nKGgsIEFWX0xPR19ERUJVRywgIiRJUEZTX0dBVEVXQVkgaXMgZW1w dHkuXG4iKTsKPj4+Pj4+PiArCj4+Pj4+Pj4gKyAgICAvLyBXZSBuZWVkIHRvIGtub3cgdGhlIElQ RlMgZm9sZGVyIHRvIC0gZXZlbnR1YWxseSAtIHJlYWQgdGhlCj4+Pj4+PiBjb250ZW50cyBvZgo+ Pj4+Pj4+ICsgICAgLy8gdGhlICJnYXRld2F5IiBmaWxlIHdoaWNoIHdvdWxkIHRlbGwgdXMgdGhl IGdhdGV3YXkgdG8gdXNlLgo+Pj4+Pj4+ICsgICAgaWYgKGdldGVudigiSVBGU19QQVRIIikgPT0g TlVMTCkgewo+Pj4+Pj4+ICsgICAgICAgIGF2X2xvZyhoLCBBVl9MT0dfREVCVUcsICIkSVBGU19Q QVRIIGlzIGVtcHR5LlxuIik7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgICAgIC8vIFRyeSB2aWEg dGhlIGhvbWUgZm9sZGVyLgo+Pj4+Pj4+ICsgICAgICAgIGlmIChnZXRlbnYoIkhPTUUiKSA9PSBO VUxMKSB7Cj4+Pj4+Pj4gKyAgICAgICAgICAgIGF2X2xvZyhoLCBBVl9MT0dfV0FSTklORywgIiRI T01FIGFwcGVhcnMgdG8gYmUKPj4gZW1wdHkuXG4iKTsKPj4+Pj4+PiArICAgICAgICAgICAgcmV0 ID0gQVZFUlJPUihFSU5WQUwpOwo+Pj4+Pj4+ICsgICAgICAgICAgICBnb3RvIGVycjsKPj4+Pj4+ PiArICAgICAgICB9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgICAgIC8vIFZlcmlmeSB0aGUgY29t cG9zZWQgcGF0aCBmaXRzLgo+Pj4+Pj4+ICsgICAgICAgIGlmIChzbnByaW50ZihpcGZzX2Z1bGxf ZGF0YV9mb2xkZXIsCj4+Pj4+PiBzaXplb2YoaXBmc19mdWxsX2RhdGFfZm9sZGVyKSwKPj4+Pj4+ PiArICAgICAgICAgICAgICAgICAgICAgIiVzLy5pcGZzLyIsIGdldGVudigiSE9NRSIpKSA+PQo+ Pj4+Pj4gc2l6ZW9mKGlwZnNfZnVsbF9kYXRhX2ZvbGRlcikpIHsKPj4+Pj4+PiArICAgICAgICAg ICAgYXZfbG9nKGgsIEFWX0xPR19XQVJOSU5HLCAiVGhlIElQRlMgZGF0YSBwYXRoIGV4Y2VlZHMK Pj4gdGhlCj4+Pj4+PiBtYXggcGF0aCBsZW5ndGggKCV6dSlcbiIsIHNpemVvZihpcGZzX2Z1bGxf ZGF0YV9mb2xkZXIpKTsKPj4+Pj4+PiArICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFSU5WQUwp Owo+Pj4+Pj4+ICsgICAgICAgICAgICBnb3RvIGVycjsKPj4+Pj4+PiArICAgICAgICB9Cj4+Pj4+ Pj4gKwo+Pj4+Pj4+ICsgICAgICAgIC8vIFN0YXQgdGhlIGZvbGRlci4KPj4+Pj4+PiArICAgICAg ICAvLyBJdCBzaG91bGQgZXhpc3QgaW4gYSBkZWZhdWx0IElQRlMgc2V0dXAgd2hlbiBydW4gYXMg bG9jYWwKPj4+Pj4+IHVzZXIuCj4+Pj4+Pj4gKyNpZm5kZWYgX1dJTjMyCj4+Pj4+Pj4gKyAgICAg ICAgc3RhdF9yZXQgPSBzdGF0KGlwZnNfZnVsbF9kYXRhX2ZvbGRlciwgJnN0KTsKPj4+Pj4+PiAr I2Vsc2UKPj4+Pj4+PiArICAgICAgICBzdGF0X3JldCA9IHdpbjMyX3N0YXQoaXBmc19mdWxsX2Rh dGFfZm9sZGVyLCAmc3QpOwo+Pj4+Pj4+ICsjZW5kaWYKPj4+Pj4+PiArICAgICAgICBpZiAoc3Rh dF9yZXQgPCAwKSB7Cj4+Pj4+Pj4gKyAgICAgICAgICAgIGF2X2xvZyhoLCBBVl9MT0dfSU5GTywg IlVuYWJsZSB0byBmaW5kIElQRlMgZm9sZGVyLiBXZQo+Pj4+Pj4gdHJpZWQ6XG4iKTsKPj4+Pj4+ PiArICAgICAgICAgICAgYXZfbG9nKGgsIEFWX0xPR19JTkZPLCAiLSAkSVBGU19QQVRILCB3aGlj aCB3YXMKPj4+PiBlbXB0eS5cbiIpOwo+Pj4+Pj4+ICsgICAgICAgICAgICBhdl9sb2coaCwgQVZf TE9HX0lORk8sICItICRIT01FLy5pcGZzIChmdWxsIHVyaTogJXMpCj4+IHdoaWNoCj4+Pj4+PiBk b2Vzbid0IGV4aXN0LlxuIiwgaXBmc19mdWxsX2RhdGFfZm9sZGVyKTsKPj4+Pj4+PiArICAgICAg ICAgICAgcmV0ID0gQVZFUlJPUihFTk9FTlQpOwo+Pj4+Pj4+ICsgICAgICAgICAgICBnb3RvIGVy cjsKPj4+Pj4+PiArICAgICAgICB9Cj4+Pj4+Pj4gKyAgICB9IGVsc2Ugewo+Pj4+Pj4+ICsgICAg ICAgIGlmIChzbnByaW50ZihpcGZzX2Z1bGxfZGF0YV9mb2xkZXIsCj4+Pj4+PiBzaXplb2YoaXBm c19mdWxsX2RhdGFfZm9sZGVyKSwgIiVzIiwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICBnZXRl bnYoIklQRlNfUEFUSCIpKSA+PQo+Pj4+IHNpemVvZihpcGZzX2Z1bGxfZGF0YV9mb2xkZXIpKQo+ Pj4+Pj4gewo+Pj4+Pj4+ICsgICAgICAgICAgICBhdl9sb2coaCwgQVZfTE9HX1dBUk5JTkcsICJU aGUgSVBGU19QQVRIIGVudmlyb25tZW50Cj4+Pj4+PiB2YXJpYWJsZSBleGNlZWRzIHRoZSBtYXhp bXVtIGxlbmd0aC4gV2UgYWxsb3cgYSBtYXggb2YgJXp1Cj4+Pj4gY2hhcmFjdGVyc1xuIiwKPj4+ Pj4+IHNpemVvZihjLT5nYXRld2F5X2J1ZmZlcikpOwo+Pj4+Pj4+ICsgICAgICAgICAgICByZXQg PSBBVkVSUk9SKEVJTlZBTCk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgIGdvdG8gZXJyOwo+Pj4+Pj4+ ICsgICAgICAgIH0KPj4+Pj4+PiArCj4+Pj4+Pj4gKyAgICB9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsg ICAgLy8gQ29weSB0aGUgZnVsbHkgY29tcG9zZWQgZ2F0ZXdheSBwYXRoIGludG8gaXBmc19nYXRl d2F5X2ZpbGUuCj4+Pj4+Pj4gKyAgICBpZiAoc25wcmludGYoaXBmc19nYXRld2F5X2ZpbGUsIHNp emVvZihpcGZzX2dhdGV3YXlfZmlsZSksCj4+Pj4+PiAiJXNnYXRld2F5IiwKPj4+Pj4+PiArICAg ICAgICAgICAgICAgICBpcGZzX2Z1bGxfZGF0YV9mb2xkZXIpID49Cj4+IHNpemVvZihpcGZzX2dh dGV3YXlfZmlsZSkpCj4+Pj4gewo+Pj4+Pj4+ICsgICAgICAgIGF2X2xvZyhoLCBBVl9MT0dfV0FS TklORywgIlRoZSBJUEZTIGdhdGV3YXkgZmlsZSBwYXRoCj4+IGV4Y2VlZHMKPj4+Pj4+IHRoZSBt YXggcGF0aCBsZW5ndGggKCV6dSlcbiIsIHNpemVvZihpcGZzX2dhdGV3YXlfZmlsZSkpOwo+Pj4+ Pj4+ICsgICAgICAgIHJldCA9IEFWRVJST1IoRU5PRU5UKTsKPj4+Pj4+PiArICAgICAgICBnb3Rv IGVycjsKPj4+Pj4+PiArICAgIH0KPj4+Pj4+PiArCj4+Pj4+Pj4gKyAgICAvLyBHZXQgdGhlIGNv bnRlbnRzIG9mIHRoZSBnYXRld2F5IGZpbGUuCj4+Pj4+Pj4gKyAgICBnYXRld2F5X2ZpbGUgPSBh dl9mb3Blbl91dGY4KGlwZnNfZ2F0ZXdheV9maWxlLCAiciIpOwo+Pj4+Pj4+ICsgICAgaWYgKCFn YXRld2F5X2ZpbGUpIHsKPj4+Pj4+PiArICAgICAgICBhdl9sb2coaCwgQVZfTE9HX1dBUk5JTkcs ICJUaGUgSVBGUyBnYXRld2F5IGZpbGUgKGZ1bGwgdXJpOgo+Pj4+ICVzKQo+Pj4+Pj4gZG9lc24n dCBleGlzdC4gSXMgdGhlIGdhdGV3YXkgZW5hYmxlZD9cbiIsIGlwZnNfZ2F0ZXdheV9maWxlKTsK Pj4+Pj4+PiArICAgICAgICByZXQgPSBBVkVSUk9SKEVOT0VOVCk7Cj4+Pj4+Pj4gKyAgICAgICAg Z290byBlcnI7Cj4+Pj4+Pj4gKyAgICB9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgLy8gUmVhZCBh IHNpbmdsZSBsaW5lIChmZ2V0cyBzdG9wcyBhdCBuZXcgbGluZSBtYXJrKS4KPj4+Pj4+PiArICAg IGZnZXRzKGMtPmdhdGV3YXlfYnVmZmVyLCBzaXplb2YoYy0+Z2F0ZXdheV9idWZmZXIpIC0gMSwK Pj4+Pj4+IGdhdGV3YXlfZmlsZSk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgLy8gUmVwbGFjZSB0 aGUgbGFzdCBjaGFyIHdpdGggXDAKPj4+Pj4+PiArICAgIGMtPmdhdGV3YXlfYnVmZmVyW3NpemVv ZihjLT5nYXRld2F5X2J1ZmZlcikgLSAxXSA9IDA7Cj4+Cj4+IEJ0dzogZmdldHMgbm9ybWFsbHkg emVyby10ZXJtaW5hdGVzIHRoZSBidWZmZXIgKGkuZS4gaXQgcmVhZHMgYXQgbW9zdAo+PiAoc2l6 ZW9mKGMtPmdhdGV3YXlfYnVmZmVyKSAtIDEpIC0gMSBjaGFyYWN0ZXJzIGZyb20gdGhlIHN0cmVh bSBhbmQgYWRkcwo+PiBhIFwwLiBCdXQgb24gYSByZWFkIGVycm9yIGl0IGRvZXNuJ3QgZG8gdGhp cywgaW5zdGVhZCB0aGUgY29udGVudHMgb2YKPj4gdGhlIGJ1ZmZlciBhcmUgaW5kZXRlcm1pbmF0 ZSBhbmQgc28gc2hvdWxkIG5vdCBiZSB1c2VkLiBBZGRpbmcgYSB6ZXJvIGF0Cj4+IHRoZSB2ZXJ5 IGVuZCBvZiBnYXRld2F5X2J1ZmZlciBkb2VzIG5vdCBoZWxwIHRvIGVuZm9yY2UgdGhpcy4KPiAK PiAKPj4gZmdldHMgcmV0dXJucyBOVUxMIG9uIHJlYWQgZXJyb3IgYW5kIGlmIG5vdGhpbmcgY291 bGQgYmUgcmVhZCBkdWUgdG8KPj4gaW1tZWRpYXRlIEVPRjsgc28geW91IHNob3VsZCBjaGVjayBm b3IgdGhhdC4KPj4gKEJ0dzogQSBwcm90b2NvbCdzIGNvbnRleHQgaXMgemVyb2VkIGluaXRpYWxs eSwgc28KPj4gYy0+Z2F0ZXdheV9idWZmZXJbc2l6ZW9mKGMtPmdhdGV3YXlfYnVmZmVyKSAtIDFd IGlzIGFscmVhZHkgemVybywKPj4gYmVjYXVzZSBubyBvbmUgZXZlciB3cm90ZSBhbnl0aGluZyBl bHNlIHRoZXJlLikKPj4KPiAKPiBOaWNlIG9uZSEgTm9ib2R5IGNhdWdodCB0aGF0IGJlZm9yZS4K PiBTbyBjaGVja2luZyBvbiBOVUxMIGZvciBmZ2V0cyBhbmQgcmVtb3ZpbmcgdGhlIGxpbmUgdG8g YWRkIGEgMCBhdCB0aGUgZW5kCj4gaXMgdGhlIGFwcHJvcHJpYXRlIGZpeCBoZXJlIEkgYXNzdW1l Lgo+IAoKWWVzLgoKPiBDaGFuZ2VkIHRvIHdoYXQgSSBhc3N1bWVkLiBQbGVhc2UgY29ycmVjdCBt ZSBpZiBJJ20gd3JvbmcuCj4gCj4gCj4+Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgLy8gUmVwbGFj ZSBmaXJzdCBvY2N1cmVuY2Ugb2YgZW5kIG9mIGxpbmUgd2l0aCBcMAo+Pj4+Pj4+ICsgICAgYy0+ Z2F0ZXdheV9idWZmZXJbc3RyY3NwbihjLT5nYXRld2F5X2J1ZmZlciwgIlxyIildID0gMDsKPj4+ Pj4+PiArICAgIGMtPmdhdGV3YXlfYnVmZmVyW3N0cmNzcG4oYy0+Z2F0ZXdheV9idWZmZXIsICJc biIpXSA9IDA7Cj4+Pj4+Pgo+Pj4+Pj4gSWYgdGhlIGJ1ZmZlciBjb250YWlucyBib3RoIFxyIGFu ZCBcbiBhbmQgdGhlIGZpcnN0IFxuIHByZWNlZGVzIHRoZQo+Pj4+Pj4gZmlyc3QgXHIsIHRoZW4g dGhlIGFib3ZlIHplcm9lcyBib3RoIHRoZSBmaXJzdCBcciBhbmQgdGhlIGZpcnN0IFxuLiBJZgo+ Pj4+Pj4gaXQgaXMgZW5vdWdoIHRvIG9ubHkgemVybyB0aGUgZmlyc3QgbmV3bGluZSwgdGhlbiB0 aGlzIGNhbiBiZQo+PiBzaW1wbGlmaWVkCj4+Pj4+PiB0byAiYy0+Z2F0ZXdheV9idWZmZXJbc3Ry Y3NwbihjLT5nYXRld2F5X2J1ZmZlciwgIlxyXG4iKV0gPSAwOyIuCj4+Pj4+Pgo+Pj4+Pgo+Pj4+ PiBJdCB1c2VkIHRvIGJlIGluIHlvdXIgc3VnZ2VzdGVkIHNpbXBsaWZpZWQgYXBwcm9hY2guCj4+ Pj4+IEl0IHdhcyB0aGVuIHN1Z2dlc3RlZCB0byBzcGxpdCBpdCBiZWNhdXNlIG9mIG5ldyBsaW5l IGRpZmZlcmVuY2VzCj4+Pj4+IG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMuIFRoaXMgd2FzIHN1cHBv c2VkIHRvIGNhdGNoICJldmVyeXRoaW5nIi4KPj4+Pj4KPj4+Pj4gSSBwcmVmZXIgdG8ga2VlcCB0 aGlzIGFzLWlzIG5vdy4KPj4+Pj4KPj4+Pgo+Pj4+IElzIGl0IGludGVuZGVkIHRvIHVzZSB3aGF0 IGlzIGJldHdlZW4gdGhlIGZpcnN0IFxuIGFuZCB0aGUgZmlyc3QgXHIKPj4+PiBsYXRlcm9uIGFs dGhvdWdoIHRoaXMgZGF0YSB3aWxsIGJlIGFmdGVyIHRoZSAnXDAnIGFmdGVyIHRoaXM/IFRoYXQg d291bGQKPj4+PiBiZSB2ZXJ5IHdlaXJkLgo+Pj4+Cj4+Pgo+Pj4gWW91IGhhdmUgdG8gZWxhYm9y YXRlIG9uIHRoYXQgYXMgdGhhdCBzb3VuZHMgcmVhbGx5IHdyb25nIHRvIG1lLgo+Pj4KPj4KPj4g Yy0+Z2F0ZXdheV9idWZmZXJbc3RyY3NwbihjLT5nYXRld2F5X2J1ZmZlciwgIlxyXG4iKV0gPSAw Owo+PiBvdmVyd3JpdGVzIHRoZSBmaXJzdCBcciBvciBcbiAod2hpY2hldmVyIGlzIGZpcnN0KSB3 aXRoICdcMCcgKGlmIGFueTsKPj4gb3RoZXJ3aXNlIGl0IG92ZXJ3cml0ZXMgdGhlIHRlcm1pbmF0 aW5nIFwwIHdpdGggXDAuCj4+Cj4+IGMtPmdhdGV3YXlfYnVmZmVyW3N0cmNzcG4oYy0+Z2F0ZXdh eV9idWZmZXIsICJcciIpXSA9IDA7Cj4+IGMtPmdhdGV3YXlfYnVmZmVyW3N0cmNzcG4oYy0+Z2F0 ZXdheV9idWZmZXIsICJcbiIpXSA9IDA7Cj4+IGFsc28gZG9lcyB0aGlzLCBidXQgaW4gY2FzZSB0 aGF0IHRoZSBzdHJpbmcgb3JpZ2luYWxseSBjb250YWluZWQgYm90aCBhCj4+IFxyIGFuZCBhIFxu IHdpdGggdGhlIGZpcnN0IFxuIHByZWNlZGluZyB0aGUgZmlyc3QgXHIgaXQgd291bGQgYWxzbyB6 ZXJvCj4+IHRoZSBmaXJzdCBccjsgdGhpcyBwb3NpdGlvbiBpcyBhZnRlciB0aGUgZmlyc3QgdGVy bWluYXRpbmcgXDAgKHRob3NlIGF0Cj4+IHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgZmlyc3QgXG4g d2FzKSwgc28gaXQgYXBwZWFyZWQgdG8gbWUgdGhhdCB5b3UKPj4gaW50ZW5kZWQgdG8gdXNlIHdo YXQgaXMgYWZ0ZXIgdGhlIGZpcnN0IFwwLiBCZWNhdXNlIHRoYXQgaXMgdGhlIG9ubHkKPj4gZGlm ZmVyZW5jZSBiZXR3ZWVuIHRoZSBhcHByb2FjaCB3aXRoIHR3byBjYWxscyB0byBzdHJjc3BuIGFu ZCB0aGUgb25lCj4+IHdpdGggb25lIGNhbGwgdG8gc3RyY3Nwbi4KPj4KPj4gQnV0IHRoZW4gSSBy ZWFkIHRoYXQgdGhpcyBoYXMgYmVlbiBzdWdnZXN0ZWQgdG8geW91IGFuZCBmb3VuZCB0aGUgbWFp bAo+PiAoaHR0cHM6Ly9mZm1wZWcub3JnL3BpcGVybWFpbC9mZm1wZWctZGV2ZWwvMjAyMi1GZWJy dWFyeS8yOTI1OTAuaHRtbCkKPj4gdGhpcyByZWZlcnJlZCB0by4gVGhlcmUgc2VlbXMgdG8gYmUg YSBtaXN1bmRlcnN0YW5kaW5nIGluIHRoZSBzZW1hbnRpY3MKPj4gb2Ygc3RyY3NwbiAobW9zdCBs aWtlbHkgYSBjb25mdXNpb24gd2l0aCBzdHJzdHIpOgo+PiBzdHJjc3BuKGMtPmdhdGV3YXlfYnVm ZmVyLCAiXHJcbiIpIHdvcmtzIHdpdGggc2luZ2xlIFxyIGFuZCBzaW5nbGUgXG4sCj4+IHRoZXJl IG5lZWQgbm90IGJlIGEgc2luZ2xlICJcclxuIiBzdWJzdHJpbmcuIEJvdGggbWV0aG9kcyB3b3Vs ZCBwcm9kdWNlCj4+IHN0cmluZ3MgdGhhdCBjb21wYXJlIGVxdWFsIGFjY29yZGluZyB0byBzdHJj bXAoKS4KPj4KPj4KPiBUaGFuayB5b3UgZm9yIHlvdXIgZWxhYm9yYXRlIGV4cGxhbmF0aW9uIGhl cmUhCj4gQnV0IG5vdyBJJ20gbm90IHN1cmUgd2hhdCB0aGUgcmVzb2x1dGlvbiAtIGlmIGFueSAt IHNob3VsZCBiZT8KPiAKCkp1c3QgdXNlIHN0cmNzcG4oYy0+Z2F0ZXdheV9idWZmZXIsICJcclxu IikuIEl0IHdvcmtzLgoKPiAKPiBTbyBpIGxlYXZlIGl0IGFzICIlenUiLiBDaGVjay4KPiBJIGRp ZCBhbHNvIGdyZXAgb24gdGhlIGVudGlyZSBmZm1wZWcgc291cmNlIGZvciB0aGlzLiBCb3RoIHNl ZW1zIHRvIGJlIHVzZWQKPiBpbiB2YXJpb3VzIHBsYWNlcyB0aG91Z2ggZ3JhbnRlZCwgU0laRV9T UEVDSUZJRVIgaXMgdXNlZCBtb3JlLgo+IAoKQnR3OiAlenUgdXNhZ2UgaW4gdGhlIHZhYXBpIGZp bGVzIGlzIGZpbmUgZ2l2ZW4gdGhhdCB0aGlzIEFQSSBpcyBub3QKYXZhaWxhYmxlIG9uIFdpbmRv d3Mgc28gdGhhdCBsaW1pdGF0aW9ucyBvZiBXaW5kb3dzJyBsaWJjIGFyZQppcnJlbGV2YW50LiBJ ZiB3ZSBkaXNjb3VudCB0aGVzZSwgdXNhZ2UgYmVjb21lcyB2ZXJ5IGxvb3BzaWRlZC4KCj4+Cj4+ PiAtIERpcmVjdGx5IGNvbnRyYWRpY3RzIGVhcmxpZXIgZmVlZGJhY2sKPj4KPj4gSSBkb24ndCBh Z3JlZSB3aXRoIHRoYXQgZ2l2ZW4gdGhhdCBTSVpFX1NQRUNJRklFUiBpcyBiYXNpY2FsbHkganVz dCBhCj4+IHdyYXBwZXIgYXJvdW5kIHp1Lgo+Pgo+IAo+IE15IG1pc3Rha2UsIGl0IGRvZXNuJ3Qg Y29udHJhZGljdCBpdC4gU29ycnkgZm9yIHRoYXQuCj4gCj4+Cj4+PiAtIEFuZCBkdWUgdG8gdGhl IGFib3ZlIGdpdmVzIG1lIGEgZmVlbGluZyBvZiB3YXN0aW5nIHRpbWUKPj4+IC0gRmluZSB0byBj aGFuZ2UgaXQgYnV0IEkgaG9wZSB0aGVyZSBpc24ndCBhbm90aGVyIHBlcnNvbiBwb3BwaW5nIHVw Cj4+IHdpdGggYQo+Pj4gcXVlc3Rpb24gdG8gY2hhbmdlIGl0IHlldCBhZ2Fpbi4uLi4KPj4+Cj4+ Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+Pj4+ICsgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVJTlZBTCk7 Cj4+Pj4+Pj4gKyAgICAgICAgICAgIGdvdG8gZXJyOwo+Pj4+Pj4+ICsgICAgICAgIH0KPj4+Pj4+ PiArICAgIH0gZWxzZSB7Cj4+Pj4+Pj4gKyAgICAgICAgLy8gUG9wdWxhdGUgdGhlIElQRlMgZ2F0 ZXdheSBpZiB3ZSBoYXZlIGFueS4KPj4+Pj4+PiArICAgICAgICAvLyBJZiBub3QsIGluZm9ybSB0 aGUgdXNlciBob3cgdG8gcHJvcGVybHkgc2V0IG9uZS4KPj4+Pj4+PiArICAgICAgICByZXQgPSBw b3B1bGF0ZV9pcGZzX2dhdGV3YXkoaCk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgICAgIGlmIChy ZXQgPCAxKSB7Cj4+Pj4+Pj4gKyAgICAgICAgICAgIC8vIFdlIGZhbGxiYWNrIG9uIGR3ZWIubGlu ayAobWFuYWdlZCBieSBQcm90b2NvbCBMYWJzKS4KPj4+Pj4+PiArICAgICAgICAgICAgc25wcmlu dGYoYy0+Z2F0ZXdheV9idWZmZXIsIHNpemVvZihjLT5nYXRld2F5X2J1ZmZlciksICIKPj4+Pj4+ IGh0dHBzOi8vZHdlYi5saW5rIik7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICsgICAgICAgICAgICBhdl9s b2coaCwgQVZfTE9HX1dBUk5JTkcsICJJUEZTIGRvZXMgbm90IGFwcGVhciB0byBiZQo+Pj4+Pj4g cnVubmluZy4gWW914oCZcmUgbm93IHVzaW5nIHRoZSBwdWJsaWMgZ2F0ZXdheSBhdCBkd2ViLmxp bmsuXG4iKTsKPj4+Pj4+PiArICAgICAgICAgICAgYXZfbG9nKGgsIEFWX0xPR19JTkZPLCAiSW5z dGFsbGluZyBJUEZTIGxvY2FsbHkgaXMKPj4+Pj4+IHJlY29tbWVuZGVkIHRvIGltcHJvdmUgcGVy Zm9ybWFuY2UgYW5kIHJlbGlhYmlsaXR5LCBhbmQgbm90IHNoYXJlIGFsbAo+Pj4+IHlvdXIKPj4+ Pj4+IGFjdGl2aXR5IHdpdGggYSBzaW5nbGUgSVBGUyBnYXRld2F5LlxuIik7Cj4+Pj4+Pj4gKyAg ICAgICAgICAgIGF2X2xvZyhoLCBBVl9MT0dfSU5GTywgIlRoZXJlIGFyZSBtdWx0aXBsZSBvcHRp b25zIHRvCj4+Pj4+PiBkZWZpbmUgdGhpcyBnYXRld2F5LlxuIik7Cj4+Pj4+Pj4gKyAgICAgICAg ICAgIGF2X2xvZyhoLCBBVl9MT0dfSU5GTywgIjEuIENhbGwgZmZtcGVnIHdpdGggYSBnYXRld2F5 Cj4+Pj4+PiBwYXJhbSwgd2l0aG91dCBhIHRyYWlsaW5nIHNsYXNoOiAtZ2F0ZXdheSA8dXJsPi5c biIpOwo+Pj4+Pj4+ICsgICAgICAgICAgICBhdl9sb2coaCwgQVZfTE9HX0lORk8sICIyLiBEZWZp bmUgYW4gJElQRlNfR0FURVdBWQo+Pj4+Pj4gZW52aXJvbm1lbnQgdmFyaWFibGUgd2l0aCB0aGUg ZnVsbCBIVFRQIFVSTCB0byB0aGUgZ2F0ZXdheSB3aXRob3V0Cj4+Pj4gdHJhaWxpbmcKPj4+Pj4+ IGZvcndhcmQgc2xhc2guXG4iKTsKPj4+Pj4+PiArICAgICAgICAgICAgYXZfbG9nKGgsIEFWX0xP R19JTkZPLCAiMy4gRGVmaW5lIGFuICRJUEZTX1BBVEgKPj4+PiBlbnZpcm9ubWVudAo+Pj4+Pj4g dmFyaWFibGUgYW5kIHBvaW50IGl0IHRvIHRoZSBJUEZTIGRhdGEgcGF0aCAtIHRoaXMgaXMgdHlw aWNhbGx5Cj4+Pj4gfi8uaXBmc1xuIik7Cj4+Pj4+Pgo+Pj4+Pj4gQWxsIHRob3NlIEFWX0xPR19J TkZPIGNhbiBiZSBjb21iaW5lZCB3aGljaCBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IHRoZQo+Pj4+ Pj4gbG9ncyBjYW4ndCBiZSB0ZWFyZWQgYXBhcnQgKHdoaWNoIHRoZXkgY2FuIG5vdyBpZiBzb21l dGhpbmcgZWxzZSBsb2dzCj4+IGF0Cj4+Pj4+PiB0aGUgc2FtZSB0aW1lKTsgZnVydGhlcm1vcmUs IHRoaXMgd291bGQgYWxzbyBkZWNyZWFzZSBjb2Rlc2l6ZS4KPj4+Pj4+Cj4+Pj4+Cj4+Pj4+IERv IHlvdSBoYXZlIGFuIGV4YW1wbGUgb2Ygd2hlcmUgdGhhdCdzIGhhcHBlbmluZz8KPj4+Pj4KPj4+ Pgo+Pj4+IEl0IGNhbiBoYXBwZW4gYW55IHRpbWUgeW91IGhhdmUgbXVsdGlwbGUgdGhyZWFkcyB1 c2luZyBhdl9sb2cgYXQgdGhlCj4+Pj4gc2FtZSB0aW1lLiBHaXZlbiB0aGF0IHlvdXIgc3RhdGVt ZW50cyBhcmUgc3VwcG9zZWQgdG8gYmUgZnVsbCBsaW5lcywgaXQKPj4+PiBpcyBub3QgdGhhdCBi YWQgaWYgaXQgaGFwcGVucyBoZXJlLCBidXQgaXQgaXMgbmV2ZXJ0aGVsZXNzIHN1Ym9wdGltYWwu Cj4+Pj4KPj4+Cj4+PiBJIG1lYW50IGEgbXVsdGktbGluZSBhdl9sb2cgZXhhbXBsZSA7KSBCdXQg eWVhaCwgSSBnZXQgaG93IHRocmVhZGluZwo+PiBjb3VsZAo+Pj4gc2NyZXcgdGhpcyB1cC4KPj4+ Cj4+Cj4+IEkgbWVhbnQgc29tZXRoaW5nIGxpa2U6Cj4+IGF2X2xvZyhoLCBBVl9MT0dfSU5GTywg Ikluc3RhbGxpbmcgSVBGUyBsb2NhbGx5IGlzIHJlY29tbWVuZGVkIHRvCj4+IGltcHJvdmUgcGVy Zm9ybWFuY2UgYW5kIHJlbGlhYmlsaXR5LCBhbmQgbm90IHNoYXJlIGFsbCB5b3VyIGFjdGl2aXR5 Cj4+IHdpdGggYSBzaW5nbGUgSVBGUyBnYXRld2F5LlxuIgo+PiAgICAgICAgIlRoZXJlIGFyZSBt dWx0aXBsZSBvcHRpb25zIHRvIGRlZmluZSB0aGlzIGdhdGV3YXkuXG4iCj4+ICAgICAgICAiMS4g Q2FsbCBmZm1wZWcgd2l0aCBhIGdhdGV3YXkgcGFyYW0sIHdpdGhvdXQgYSB0cmFpbGluZyBzbGFz aDoKPj4gLWdhdGV3YXkgPHVybD4uXG4iCj4+ICAgICAgICAiMi4gRGVmaW5lIGFuICRJUEZTX0dB VEVXQVkgZW52aXJvbm1lbnQgdmFyaWFibGUgd2l0aCB0aGUgZnVsbAo+PiBIVFRQIFVSTCB0byB0 aGUgZ2F0ZXdheSB3aXRob3V0IHRyYWlsaW5nIGZvcndhcmQgc2xhc2guXG4iCj4+ICAgICAgICAi My4gRGVmaW5lIGFuICRJUEZTX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUgYW5kIHBvaW50IGl0 IHRvIHRoZQo+PiBJUEZTIGRhdGEgcGF0aCAtIHRoaXMgaXMgdHlwaWNhbGx5IH4vLmlwZnNcbiIp Owo+Pgo+PiAoVGhlc2UgbGluZXMgYXJlIGFjdHVhbGx5IHdheSB0b28gbG9uZy4pCj4+Cj4gCj4g Rml4ZWQgYXMgbXVsdGlsaW5lLgo+IEkgZG8gbGlrZSB0byBrZWVwIHRoZSBjb250ZW50IG9mIHRo ZSBsaW5lcyB0aG91Z2guCgpJIGRpZCBub3Qgc2F5IHRoYXQgeW91IG5lZWQgdG8gY2hhbmdlIHRo ZSBhY3R1YWwgY29udGVudCBvZiB0aGUgbGluZXM7CnlvdSBqdXN0IHNob3VsZCBzcGxpdCBpdCBp bnRvIG1vcmUgbGluZXMgaW4gdGhlIHNvdXJjZSBjb2RlIChubyBuZWVkIHRvCmFkZCBhbnkgbW9y ZSBuZXdsaW5lcyBpbiB0aGUgYWN0dWFsIHN0cmluZyEpIGluIG9yZGVyIHRvIG1vcmUgYWRoZXJl IHRvCnRoZSAoc29mdCkgODAgY2hhcmFjdGVyIGxpbmUgbGltaXQuCgotIEFuZHJlYXMKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1h aWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFp bG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFi b3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVj dCAidW5zdWJzY3JpYmUiLgo=