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 2D4294A6B2 for ; Tue, 4 Jun 2024 08:49:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ADC9768D297; Tue, 4 Jun 2024 11:49:05 +0300 (EEST) Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C782668D306 for ; Tue, 4 Jun 2024 11:48:58 +0300 (EEST) Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-57a033c2ed4so3026018a12.1 for ; Tue, 04 Jun 2024 01:48:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717490938; x=1718095738; darn=ffmpeg.org; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=ZDaJlJOcbbbGgZsHdY7To18ss23WgCj2luFI/lzDSoE=; b=A1WujDHZdOdsbj5P6nqC3yA5Fzh5oKwUuS9bPnK/r/r4SztAgTT0FCY170yC+Paptp WU4OmUoRtr7R5QhHnkntQc5RXGm6aXpKJsP0xXPbQRw5/o+N1oolqYzqvfPGGYYjTNAz 0iyZnS/uUL/XgyTHOuN26iNvstggzh4kRjHce8FokQuqmoZHgkP7xtwPji4GlkzcpGXx apqcJUuZkLxYLdcC9zZ+xZJrBCtqAzPev2r48twZYQq/Z3ekI6gEe3Zc6p7U9WYA9gC2 zhxon6r1dCwxx9d/IVt2YJ7HGKMSmQ70aAGsxKmt4quRMpjv024ND0GnbOFBekJteU7E o2RQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717490938; x=1718095738; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZDaJlJOcbbbGgZsHdY7To18ss23WgCj2luFI/lzDSoE=; b=aY0EftFbXL7bP19Se1mjjm67PPrVcXeyAJzCbtm+bxwznP7B6e3X8HBNeFGLuGOg4X Q1YZmq5uQImQ7cPdqj/vlNkTGBek0hLNqM/rdHIyI98YMM1jK/7oF/pJY5xWbnq8ZT37 AaqoWL9HkFyibd8LqBbpNpxQUU9dESLLL8/guaPP3ZmdcHmP53ds2p2saK1drZ3lLRgQ X2miYN4DF44pKXjEoZJRs8V/u02lCAmdXafi8TdmkGdJrP76+zDMceZ2X7E7ZYPpUrN4 o9Ojo7paZcjvEzeK45OMRnEJEls83FuF/4ky80FTemYX5MZzX+kyJYuhFeF8+9Vp//pN 815w== X-Gm-Message-State: AOJu0YzPEFiMqGMOfiIkB3CgABOevOKZyfWykkzl4T4R/khG46EwuTvC gvpPd3ENVrbLSMFrP/katoyCO6RdoCEAjckkmaIspAMt6Vci2bovNaxJOA== X-Google-Smtp-Source: AGHT+IE6XHIZ5GBlQqNcjETCydMktnIbe46wkvR8POSb7q81ilPTWule3lc5Lkr4ACety+DiNP2a8w== X-Received: by 2002:a50:d641:0:b0:573:55cc:2f50 with SMTP id 4fb4d7f45d1cf-57a36442156mr10095916a12.37.1717490937183; Tue, 04 Jun 2024 01:48:57 -0700 (PDT) Received: from mariano (dynamic-adsl-84-220-189-10.clienti.tiscali.it. [84.220.189.10]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-57a31bb81f7sm7090937a12.31.2024.06.04.01.48.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 01:48:56 -0700 (PDT) Received: by mariano (Postfix, from userid 1000) id 6C682BFCE8; Tue, 4 Jun 2024 10:48:55 +0200 (CEST) Date: Tue, 4 Jun 2024 10:48:55 +0200 From: Stefano Sabatini To: FFmpeg development discussions and patches Message-ID: Mail-Followup-To: FFmpeg development discussions and patches , Marcus B Spencer References: <20240604000919.137898-1-marcus@marcusspencer.xyz> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240604000919.137898-1-marcus@marcusspencer.xyz> User-Agent: Mutt/2.1.4 (2021-12-11) Subject: Re: [FFmpeg-devel] [PATCH v3] avcodec: add farbfeld encoder 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: Marcus B Spencer 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: T24gZGF0ZSBNb25kYXkgMjAyNC0wNi0wMyAxOTowOToxOCAtMDUwMCwgTWFyY3VzIEIgU3BlbmNl ciB3cm90ZToKPiBmYXJiZmVsZCBpcyBhbiB1bmNvbXByZXNzZWQgaW1hZ2UgZm9ybWF0IHRoYXQg aXMgYSBwYXJ0IG9mIHN1Y2tsZXNzCj4gdG9vbHMgKGh0dHBzOi8vdG9vbHMuc3Vja2xlc3Mub3Jn KS4KPiAKPiBJdHMgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly90b29scy5z dWNrbGVzcy5vcmcvZmFyYmZlbGQuCj4gCj4gQWRkIHN1cHBvcnQgZm9yIHRoaXMgaW1hZ2UgZm9y bWF0IGluIGF2Y29kZWMgYW5kIHVwZGF0ZSB0aGUgaW1hZ2UyCj4gZm9ybWF0IGFjY29yZGluZ2x5 Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hcmN1cyBCIFNwZW5jZXIgPG1hcmN1c0BtYXJjdXNzcGVu Y2VyLnh5ej4KPiAtLS0KPiAgQ2hhbmdlbG9nICAgICAgICAgICAgICAgICB8ICAxICsKPiAgZG9j L2dlbmVyYWxfY29udGVudHMudGV4aSB8ICAyICsKPiAgbGliYXZjb2RlYy9NYWtlZmlsZSAgICAg ICB8ICAxICsKPiAgbGliYXZjb2RlYy9hbGxjb2RlY3MuYyAgICB8ICAxICsKPiAgbGliYXZjb2Rl Yy9jb2RlY19kZXNjLmMgICB8ICA3ICsrKwo+ICBsaWJhdmNvZGVjL2NvZGVjX2lkLmggICAgIHwg IDEgKwo+ICBsaWJhdmNvZGVjL2ZhcmJmZWxkZW5jLmMgIHwgODkgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCj4gIGxpYmF2Y29kZWMvdmVyc2lvbi5oICAgICAgfCAgMiAr LQo+ICBsaWJhdmZvcm1hdC9pbWcyLmMgICAgICAgIHwgIDEgKwo+ICBsaWJhdmZvcm1hdC9pbWcy ZW5jLmMgICAgIHwgIDIgKy0KPiAgMTAgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL2ZhcmJmZWxk ZW5jLmMKPiAKPiBkaWZmIC0tZ2l0IGEvQ2hhbmdlbG9nIGIvQ2hhbmdlbG9nCj4gaW5kZXggMDNk NmIyOWFkOC4uZDJiODMxYzYyMyAxMDA2NDQKPiAtLS0gYS9DaGFuZ2Vsb2cKPiArKysgYi9DaGFu Z2Vsb2cKPiBAQCAtMTIsNiArMTIsNyBAQCB2ZXJzaW9uIDxuZXh0PjoKPiAgLSBxc3ZfcGFyYW1z IG9wdGlvbiBhZGRlZCBmb3IgUVNWIGVuY29kZXJzCj4gIC0gVlZDIGRlY29kZXIgY29tcGF0aWJs ZSB3aXRoIERWQiB0ZXN0IGNvbnRlbnQKPiAgLSB4SEUtQUFDIGRlY29kZXIKPiArLSBmYXJiZmVs ZCBlbmNvZGVyCj4gIAo+ICAKPiAgdmVyc2lvbiA3LjA6Cj4gZGlmZiAtLWdpdCBhL2RvYy9nZW5l cmFsX2NvbnRlbnRzLnRleGkgYi9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCj4gaW5kZXggZTdj ZjRmODIzOS4uMTI5YTMyNWVjZiAxMDA2NDQKPiAtLS0gYS9kb2MvZ2VuZXJhbF9jb250ZW50cy50 ZXhpCj4gKysrIGIvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aQo+IEBAIC04NTMsNiArODUzLDgg QEAgZm9sbG93aW5nIGltYWdlIGZvcm1hdHMgYXJlIHN1cHBvcnRlZDoKPiAgICAgIEB0YWIgWCBQ aXhNYXAgaW1hZ2UgZm9ybWF0Cj4gIEBpdGVtIFhXRCAgQHRhYiBYIEB0YWIgWAo+ICAgICAgQHRh YiBYIFdpbmRvdyBEdW1wIGltYWdlIGZvcm1hdAo+ICtAaXRlbSBGRiAgICAgICAgICAgQHRhYiBY IEB0YWIKPiArICAgIEB0YWIgZmFyYmZlbGQgdW5jb21wcmVzc2VkIGltYWdlIGZvcm1hdAo+ICBA ZW5kIG11bHRpdGFibGUKPiAgCj4gIEBjb2Rle1h9IG1lYW5zIHRoYXQgdGhlIGZlYXR1cmUgaW4g dGhhdCBjb2x1bW4gKGVuY29kaW5nIC8gZGVjb2RpbmcpIGlzIHN1cHBvcnRlZC4KPiBkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKPiBpbmRleCAy NDQzZDJjNmZkLi44MDhmMmE1ZDU0IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvTWFrZWZpbGUK PiArKysgYi9saWJhdmNvZGVjL01ha2VmaWxlCj4gQEAgLTM1OSw2ICszNTksNyBAQCBPQkpTLSQo Q09ORklHX0VTQ0FQRTEzMF9ERUNPREVSKSAgICAgICArPSBlc2NhcGUxMzAubwo+ICBPQkpTLSQo Q09ORklHX0VWUkNfREVDT0RFUikgICAgICAgICAgICArPSBldnJjZGVjLm8gYWNlbHBfdmVjdG9y cy5vIGxzcC5vCj4gIE9CSlMtJChDT05GSUdfRVhSX0RFQ09ERVIpICAgICAgICAgICAgICs9IGV4 ci5vIGV4cmRzcC5vIGhhbGYyZmxvYXQubwo+ICBPQkpTLSQoQ09ORklHX0VYUl9FTkNPREVSKSAg ICAgICAgICAgICArPSBleHJlbmMubyBmbG9hdDJoYWxmLm8KPiArT0JKUy0kKENPTkZJR19GQVJC RkVMRF9FTkNPREVSKSAgICAgICAgKz0gZmFyYmZlbGRlbmMubwo+ICBPQkpTLSQoQ09ORklHX0ZB U1RBVURJT19ERUNPREVSKSAgICAgICArPSBmYXN0YXVkaW8ubwo+ICBPQkpTLSQoQ09ORklHX0ZG VjFfREVDT0RFUikgICAgICAgICAgICArPSBmZnYxZGVjLm8gZmZ2MS5vCj4gIE9CSlMtJChDT05G SUdfRkZWMV9FTkNPREVSKSAgICAgICAgICAgICs9IGZmdjFlbmMubyBmZnYxLm8KPiBkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy9hbGxjb2RlY3MuYyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKPiBp bmRleCBiMTAyYTgwNjllLi5iMGViYjcyMzk2IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvYWxs Y29kZWNzLmMKPiArKysgYi9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCj4gQEAgLTExNSw2ICsxMTUs NyBAQCBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9lc2NhcGUxMjRfZGVjb2RlcjsKPiAgZXh0ZXJu IGNvbnN0IEZGQ29kZWMgZmZfZXNjYXBlMTMwX2RlY29kZXI7Cj4gIGV4dGVybiBjb25zdCBGRkNv ZGVjIGZmX2V4cl9lbmNvZGVyOwo+ICBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9leHJfZGVjb2Rl cjsKPiArZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfZmFyYmZlbGRfZW5jb2RlcjsKPiAgZXh0ZXJu IGNvbnN0IEZGQ29kZWMgZmZfZmZ2MV9lbmNvZGVyOwo+ICBleHRlcm4gY29uc3QgRkZDb2RlYyBm Zl9mZnYxX2RlY29kZXI7Cj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2Zmdmh1ZmZfZW5jb2Rl cjsKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9jb2RlY19kZXNjLmMgYi9saWJhdmNvZGVjL2Nv ZGVjX2Rlc2MuYwo+IGluZGV4IGEyOGVmNjgwNjEuLjMzZGJkMmNlOTQgMTAwNjQ0Cj4gLS0tIGEv bGliYXZjb2RlYy9jb2RlY19kZXNjLmMKPiArKysgYi9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYwo+ IEBAIC0xOTU5LDYgKzE5NTksMTMgQEAgc3RhdGljIGNvbnN0IEFWQ29kZWNEZXNjcmlwdG9yIGNv ZGVjX2Rlc2NyaXB0b3JzW10gPSB7Cj4gICAgICAgICAgLmxvbmdfbmFtZSA9IE5VTExfSUZfQ09O RklHX1NNQUxMKCJMRUFEIE1DTVAiKSwKPiAgICAgICAgICAucHJvcHMgICAgID0gQVZfQ09ERUNf UFJPUF9JTlRSQV9PTkxZIHwgQVZfQ09ERUNfUFJPUF9MT1NTWSwKPiAgICAgIH0sCj4gKyAgICB7 Cj4gKyAgICAgICAgLmlkICAgICAgICA9IEFWX0NPREVDX0lEX0ZBUkJGRUxELAo+ICsgICAgICAg IC50eXBlICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCj4gKyAgICAgICAgLm5hbWUgICAgICA9 ICJmYXJiZmVsZCIsCj4gKyAgICAgICAgLmxvbmdfbmFtZSA9IE5VTExfSUZfQ09ORklHX1NNQUxM KCJmYXJiZmVsZCB1bmNvbXByZXNzZWQgaW1hZ2UiKSwKPiArICAgICAgICAucHJvcHMgICAgID0g QVZfQ09ERUNfUFJPUF9JTlRSQV9PTkxZIHwgQVZfQ09ERUNfUFJPUF9MT1NTTEVTUywKPiArICAg IH0sCj4gIAo+ICAgICAgLyogdmFyaW91cyBQQ00gImNvZGVjcyIgKi8KPiAgICAgIHsKPiBkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy9jb2RlY19pZC5oIGIvbGliYXZjb2RlYy9jb2RlY19pZC5oCj4g aW5kZXggMGFiMWUzNGE2MS4uZDRiMGQyM2Y3ZSAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL2Nv ZGVjX2lkLmgKPiArKysgYi9saWJhdmNvZGVjL2NvZGVjX2lkLmgKPiBAQCAtMzIyLDYgKzMyMiw3 IEBAIGVudW0gQVZDb2RlY0lEIHsKPiAgICAgIEFWX0NPREVDX0lEX1JUVjEsCj4gICAgICBBVl9D T0RFQ19JRF9WTUlYLAo+ICAgICAgQVZfQ09ERUNfSURfTEVBRCwKPiArICAgIEFWX0NPREVDX0lE X0ZBUkJGRUxELAo+ICAKPiAgICAgIC8qIHZhcmlvdXMgUENNICJjb2RlY3MiICovCj4gICAgICBB Vl9DT0RFQ19JRF9GSVJTVF9BVURJTyA9IDB4MTAwMDAsICAgICAvLy88IEEgZHVtbXkgaWQgcG9p bnRpbmcgYXQgdGhlIHN0YXJ0IG9mIGF1ZGlvIGNvZGVjcwo+IGRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL2ZhcmJmZWxkZW5jLmMgYi9saWJhdmNvZGVjL2ZhcmJmZWxkZW5jLmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAuLjM4NWZkMDRkNzAKPiAtLS0gL2Rldi9udWxs Cj4gKysrIGIvbGliYXZjb2RlYy9mYXJiZmVsZGVuYy5jCj4gQEAgLTAsMCArMSw4OSBAQAo+ICsv Kgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjQgTWFyY3VzIEIgU3BlbmNlciA8bWFyY3VzQG1hcmN1 c3NwZW5jZXIueHl6Pgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cj4gKyAqIG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIOKAnFNv ZnR3YXJl4oCdKSwgdG8KPiArICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKPiArICogcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwg YW5kL29yCj4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4gKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92 ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu Y2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl IFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg4oCcQVMgSVPi gJ0sIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+ICsgKiBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4g KyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig T1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPiArICogSU4gVEhF IFNPRlRXQVJFLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIK PiArI2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCj4gKyNpbmNsdWRlICJieXRlc3RyZWFtLmgi Cj4gKyNpbmNsdWRlICJhdmNvZGVjLmgiCj4gKyNpbmNsdWRlICJlbmNvZGUuaCIKPiArCj4gKyNk ZWZpbmUgSEVBREVSX1NJWkUgMTYKPiArI2RlZmluZSBQTEFORV9DT1VOVCA0IC8vIHJlcXVpcmVk IGJ5IGF2X2ltYWdlX2NvcHlfdG9fYnVmZmVyCj4gKwo+ICtzdGF0aWMgaW50IGZhcmJmZWxkX2Vu Y29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqY3R4LCBBVlBhY2tldCAqcGt0LAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkZyYW1lICpwLCBpbnQgKmdvdF9wYWNr ZXQpCj4gK3sKCj4gKyAgICBpbnQgcmF3X2ltZ19zaXplID0gYXZfaW1hZ2VfZ2V0X2J1ZmZlcl9z aXplKAoKbml0Kys6IEknZCBwcmVmZXIgYnVmX3NpemUgdG8gbWFrZSBpdCBhcHBhcmVudCB0aGUg cmVsYXRpb24gd2l0aCB0aGUKYnVmIHZhcmlhYmxlCgo+ICsgICAgICAgIHAtPmZvcm1hdCwKPiAr ICAgICAgICBwLT53aWR0aCwKPiArICAgICAgICBwLT5oZWlnaHQsCj4gKyAgICAgICAgMQo+ICsg ICAgKTsKCnByb2JhYmx5IGFsc28gd2UgbmVlZCBhIGNoZWNrIG9uIHRoZSByZXN1bHQgKHNob3Vs ZCBub3QgYmUgbmVnYXRpdmUpLApvciBpdCB3b3VsZCBicmVhayB0aGUgZm9sbG93aW5nIHBrdF9z aXplIGNoZWNrOgppZiAoeHh4X3NpemUpIDwgMDoKICAgIHJldHVybiB4eHhfc2l6ZTsKCj4gKyAg ICBpbnQgcGt0X3NpemUgPSBIRUFERVJfU0laRSArIHJhd19pbWdfc2l6ZTsKPiArICAgIGNvbnN0 IHVpbnQ4X3QgKnBsYW5lc1tQTEFORV9DT1VOVF07Cj4gKyAgICB1aW50OF90ICpidWY7Cj4gKyAg ICBpbnQgcmV0Owo+ICsKPiArICAgIGlmIChwa3Rfc2l6ZSA8IDApCj4gKyAgICAgICAgcmV0dXJu IHBrdF9zaXplOwo+ICsKPiArICAgIGlmICgocmV0ID0gZmZfZ2V0X2VuY29kZV9idWZmZXIoY3R4 LCBwa3QsIHBrdF9zaXplLCAwKSkgPCAwKQo+ICsgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ICsg ICAgYnVmID0gcGt0LT5kYXRhOwo+ICsKPiArICAgIGJ5dGVzdHJlYW1fcHV0X2J1ZmZlcigmYnVm LCAiZmFyYmZlbGQiLCA4KTsKPiArCj4gKyAgICBieXRlc3RyZWFtX3B1dF9iZTMyKCZidWYsIGN0 eC0+d2lkdGgpOwo+ICsgICAgYnl0ZXN0cmVhbV9wdXRfYmUzMigmYnVmLCBjdHgtPmhlaWdodCk7 Cj4gKwoKPiArICAgIGZvciAoaW50IGkgPSAwOyBpIDwgUExBTkVfQ09VTlQ7ICsraSkKPiArICAg ICAgICBwbGFuZXNbaV0gPSBwLT5kYXRhW2ldOwoKaXMgdGhpcyBhY3R1YWxseSBuZWVkZWQ/Cgpb Li4uXQoKTEdUTSBvdGhlcndpc2UuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBl Zy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpU byB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJl cXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K