From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 47BDB4DFEA for <ffmpegdev@gitmailbox.com>; Sun, 27 Apr 2025 08:49:41 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 22FB7687DF1; Sun, 27 Apr 2025 11:49:39 +0300 (EEST) Received: from sender2-op-o19.zoho.eu (sender2-op-o19.zoho.eu [136.143.171.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3AC74687BEF for <ffmpeg-devel@ffmpeg.org>; Sun, 27 Apr 2025 11:49:32 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; t=1745743768; cv=none; d=zohomail.eu; s=zohoarc; b=Yc2c0GqWgBaiqAxSkZ3qx1GYbnMxvwwn3ul32b6w+7APdJ/l3g5uMBDQADpkR7UL1f0xN8O0Kt0QXRP9tM6kg+mlofD/sRxvHI2KmZFd7uL2LzDjSrp5IZ1yzwLfvB9alkeSo3qJmEuikuPS+1QNHB2AILXYKMGISt47MMjWo0c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1745743768; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=P4flrJ9FKNcArUk9hNNNet4LgFq9FmSi/7q3HK5WGmU=; b=e3L/YyYx6tWBJMe1wMagD5PpY0MDtmyrFJL13zLkcPcg9GDx1iSLZi6fKNefWrl8ymrJ3BQk7rQ8TW/HVjUvz78P+8jdFdzgJpu/3KJaKJRj3DRbR3WEp1fnHsWOD6pLt4Hs3+EgpPSllrMj5fi1DYa3x2aCPUGRK2leROvgy+4= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=frankplowman.com; spf=pass smtp.mailfrom=post@frankplowman.com; dmarc=pass header.from=<post@frankplowman.com> DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1745743768; s=zmail; d=frankplowman.com; i=post@frankplowman.com; h=Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:References:From:From:In-Reply-To:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To:Cc; bh=P4flrJ9FKNcArUk9hNNNet4LgFq9FmSi/7q3HK5WGmU=; b=DNFVDsMq7rm33QrpS2grZ3ZROWzWy4PSfPtjAWzqyPnL07CqHL2FqNn2L1bZ8Ur5 SUCRFKpJg115vrCm0xvky2vmPue+hQ5utfhnRsyT6NGGvYJjeqvT0J9R31qf4I8SVBR bJ85qQrFWCWLHwYMKoO2VaQodaYqq8mz7WuVpczI= Received: by mx.zoho.eu with SMTPS id 1745743767255604.1949438475701; Sun, 27 Apr 2025 10:49:27 +0200 (CEST) Message-ID: <edaa19a2-d5db-43c7-b61f-c3420dc481bd@frankplowman.com> Date: Sun, 27 Apr 2025 09:49:26 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-GB To: ffmpeg-devel@ffmpeg.org References: <20250418143949.24285-1-post@frankplowman.com> <CAFXK13eznzQam3KCwdvM9GNA+EsO60-xiwuXS7dxrSRmsxwCyA@mail.gmail.com> From: Frank Plowman <post@frankplowman.com> In-Reply-To: <CAFXK13eznzQam3KCwdvM9GNA+EsO60-xiwuXS7dxrSRmsxwCyA@mail.gmail.com> X-ZohoMailClient: External Subject: Re: [FFmpeg-devel] [PATCH] lavc/vvc: Detect subpic overlaps at CTU level X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/edaa19a2-d5db-43c7-b61f-c3420dc481bd@frankplowman.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> T24gMjcvMDQvMjAyNSAwMzo0MiwgTnVvIE1pIHdyb3RlOgo+IE9uIEZyaSwgQXByIDE4LCAyMDI1 IGF0IDEwOjQw4oCvUE0gRnJhbmsgUGxvd21hbiA8cG9zdEBmcmFua3Bsb3dtYW4uY29tPgo+IHdy b3RlOgo+IAo+PiBJbiBkNWRiY2MwMGQ4ODlmYjE3OTQ4YjAyNWE0NjhiMDBkZGJlYTllMDU4LCBp dCB3YXMgaG9wZWQgdGhhdCBkZXRlY3Rpb24KPj4gb2Ygc3VicGljdHVyZSBvdmVybGFwcyBjb3Vs ZCBiZSBwZXJmb3JtZWQgYXQgdGhlIHRpbGUgbGV2ZWwsIHNvIGFzIHRvCj4+IGF2b2lkIGludHJv ZHVjaW5nIHBlci1DVFUgY2hlY2tzLiBVbmZvcnR1bmF0ZWx5IHNpbmNlIHRoYXQgcGF0Y2gsCj4+ IGZ1enppbmcgaGFzIGluZGljYXRlZCB0aGVyZSBhcmUgc29tZSBzdHJ1Y3R1cmVzIGludm9sdmlu Zwo+PiBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlIHdoZXJlIHRpbGUtbGV2ZWwg Y2hlY2tpbmcgaXMgbm90Cj4+IHN1ZmZpY2llbnQuICBQZXJmb3JtaW5nIHRoZSBjaGVjayBhdCB0 aGUgQ1RVIGxldmVsIHNob3VsZCAodG91Y2ggd29vZCkKPj4gYmUgdGhlIGJlLWFsbCBhbmQgYW5k LWFsbCBvZiB0aGlzLCBhcyBDVFVzIGFyZSB0aGUgbG93ZXN0IGNvbW1vbgo+PiBkZW5vbWluYXRv ciBvZiB0aGUgcGljdHVyZSBwYXJ0aXRpb25pbmcuCj4+Cj4gSGkgRnJhbmssCj4gVGhhbmsgeW91 IGZvciB0aGUgcGF0Y2guCgpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3LgoKPiAKPiBCZWZvcmUg dGhpcyBwYXRjaCwgd2UgY291bGQgZGV0ZWN0IHRoZSAnQ1RVIEEgYWRkZWQgdHdpY2UgKyBDVFUg QiBuZXZlcgo+IGFkZGVkJyBjYXNlLCBidXQgdGhlIG5ldyBpbXBsZW1lbnRhdGlvbiBjYW5ub3Qs IHJpZ2h0Pwo+IAoKSW4gZmZfdnZjX2ZyYW1lX3N1Ym1pdCB3ZSBjaGVjayB0aGF0IGV2ZXJ5IENU VSBvZiB0aGUgcGljdHVyZSBiZWxvbmdzIHRvCmEgc2xpY2UsIHdoaWNoIGNhdGNoZXMgY2FzZXMg bGlrZSB0aGlzLiAgVGhpcyBwYXRjaCBkb2VzIG1lYW4gdGhhdApjZXJ0YWluIGludmFsaWQgc3Ry dWN0dXJlcyBsaWtlIHlvdSBkZXNjcmliZSBhcmUgbm90IGNhdWdodCB1bnRpbCBhCmxpdHRsZSBs YXRlciwgaW4gZmZfdnZjX2ZyYW1lX3N1Ym1pdC4gIEluIG15IHRlc3RzIHRoaXMgZG9lcyBub3Qg YXBwZWFyCnRvIGNhdXNlIGlzc3Vlcy4KCkFsdGVybmF0aXZlbHksIHdlIGNvdWxkIHRha2UgYW4g YXBwcm9hY2ggc2ltaWxhciB0byB3aGF0IGV4aXN0ZWQKcHJldmlvdXNseSBidXQgYXQgdGhlIENU VSBsZXZlbCwgd2hlcmUgd2UgYWxsb2NhdGUgYSBjdGJfd2lkdGggeApjdGJfaGVpZ2h0IGFycmF5 IGFuZCBtYXJrIGVhY2ggY2VsbCB1c2VkL3VudXNlZCBpbiBwcHNfYWRkX2N0dXMuICBUaGF0CmFy cmF5IGNvdWxkIGJlIHF1aXRlIGxhcmdlIHRob3VnaCBhbmQgd291bGQgcmVxdWlyZSBhIGR5bmFt aWMgYWxsb2NhdGlvbi4KCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIFBsb3dtYW4gPHBvc3RA ZnJhbmtwbG93bWFuLmNvbT4KPj4gLS0tCj4+ICBsaWJhdmNvZGVjL3Z2Yy9wcy5jIHwgODEgKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICAxIGZpbGUgY2hh bmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQg YS9saWJhdmNvZGVjL3Z2Yy9wcy5jIGIvbGliYXZjb2RlYy92dmMvcHMuYwo+PiBpbmRleCBlOGMz MTJkOGFjLi40ZWRmZTQwOGMwIDEwMDY0NAo+PiAtLS0gYS9saWJhdmNvZGVjL3Z2Yy9wcy5jCj4+ ICsrKyBiL2xpYmF2Y29kZWMvdnZjL3BzLmMKPj4gQEAgLTQwMiwxNCArNDAyLDM1IEBAIHN0YXRp YyBpbnQgY3R1X3JzKGNvbnN0IGludCByeCwgY29uc3QgaW50IHJ5LCBjb25zdAo+PiBWVkNQUFMg KnBwcykKPj4gICAgICByZXR1cm4gcHBzLT5jdGJfd2lkdGggKiByeSArIHJ4Owo+PiAgfQo+Pgo+ PiArc3RhdGljIHZvaWQgcHBzX2FkZF9jdHUoVlZDUFBTICpwcHMsIGludCAqb2ZmLCBjb25zdCBp bnQgeCwgY29uc3QgaW50IHkpCj4+ICt7Cj4+ICsgICAgcHBzLT5jdGJfYWRkcl9pbl9zbGljZVsq b2ZmXSA9IGN0dV9ycyh4LCB5LCBwcHMpOwo+PiArICAgICgqb2ZmKSsrOwo+PiArfQo+PiArCj4+ ICBzdGF0aWMgaW50IHBwc19hZGRfY3R1cyhWVkNQUFMgKnBwcywgaW50ICpvZmYsIGNvbnN0IGlu dCByeCwgY29uc3QgaW50IHJ5LAo+PiAgICAgIGNvbnN0IGludCB3LCBjb25zdCBpbnQgaCkKPj4g IHsKPj4gICAgICBpbnQgc3RhcnQgPSAqb2ZmOwo+PiAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwg aDsgeSsrKSB7Cj4+ICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgdzsgeCsrKSB7Cj4+IC0g ICAgICAgICAgICBwcHMtPmN0Yl9hZGRyX2luX3NsaWNlWypvZmZdID0gY3R1X3JzKHJ4ICsgeCwg cnkgKyB5LCBwcHMpOwo+PiAtICAgICAgICAgICAgKCpvZmYpKys7Cj4+ICsgICAgICAgICAgICBw cHNfYWRkX2N0dShwcHMsIG9mZiwgcnggKyB4LCByeSArIHkpOwo+PiArICAgICAgICB9Cj4+ICsg ICAgfQo+PiArICAgIHJldHVybiAqb2ZmIC0gc3RhcnQ7Cj4+ICt9Cj4+ICsKPj4gKy8vIFNpbWls YXIgdG8gcHBzX2FkZF9jdHVzLCBidXQgd2l0aCBhIGNoZWNrIHRvIGVuc3VyZSBhIGdpdmVuIENU VSBpc24ndAo+PiB1c2VkCj4+ICsvLyBtdWx0aXBsZSB0aW1lcywgdG8gYmUgdXNlZCB3aXRoIHNv bWUgb2YgdGhlIG1vcmUgY29tcGxleCBwYXJ0aXRpb25pbmcKPj4gbWVjaGFuaXNtcy4KPj4gK3N0 YXRpYyBpbnQgcHBzX2FkZF9jdHVzX2NoZWNrKFZWQ1BQUyAqcHBzLCBpbnQgKm9mZiwgY29uc3Qg aW50IHJ4LCBjb25zdAo+PiBpbnQgcnksCj4+ICsgICAgY29uc3QgaW50IHcsIGNvbnN0IGludCBo KQo+PiArewo+PiArICAgIGludCBzdGFydCA9ICpvZmY7Cj4+ICsgICAgZm9yIChpbnQgeSA9IDA7 IHkgPCBoOyB5KyspIHsKPj4gKyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCB3OyB4KyspIHsK Pj4gKyAgICAgICAgICAgIGlmICgqb2ZmID49IHBwcy0+Y3RiX2NvdW50KQo+PiArICAgICAgICAg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+Pgo+IFRoaXMgY2FuIGJlIGNvbWJp bmVkIHRvIHBzc19hZGRfY3R1LiAgU28gd2UgcmVtdm9lIHBwc19hZGRfY3R1c19jaGVjayBhbmQK PiBrZWVwIHBwc19hZGRfY3R1cyBvbmx5Cj4gCgpUaGlzIGNoZWNrIGNhbiBvbmx5IGZhaWwgaW4g dGhlIGNhc2UgdGhhdApwcHNfc2luZ2xlX3NsaWNlX3Blcl9zdWJwaWNfZmxhZyBpcyAxLCBzbyBJ IHdhcyBjb25jZXJuZWQgY2hhbmdpbmcKcHBzX2FkZF9jdHVzIGRpcmVjdGx5IHdvdWxkIGluY3Vy IHRoZSBjb3N0IG9mIHRoaXMgY2hlY2sgdW5uZWNlc3NhcmlseQp3aGVuIHBwc19zaW5nbGVfc2xp Y2VfcGVyX3N1YnBpY19mbGFnIGlzIDAuICBUaGF0IGJlaW5nIHNhaWQsIEkganVzdAp0ZXN0ZWQg YW5kIGFueSBwZXJmb3JtYW5jZSBpbXBhY3Qgc2VlbXMgbmVnbGlnaWJsZSBhbmQgSSB0aGluayB0 aGUKY29tcGlsZXIgbWF5IGJlIGFibGUgdG8gb3B0aW1pc2UgbXVjaCBvZiB0aGlzIGF3YXksIHNv IEkndmUgZG9uZSBhcyB5b3UKc2FpZCBhbmQgbWVyZ2VkIHRoZW0gaW4gdjIuCgo+PiArICAgICAg ICAgICAgcHBzX2FkZF9jdHUocHBzLCBvZmYsIHJ4ICsgeCwgcnkgKyB5KTsKPj4gICAgICAgICAg fQo+PiAgICAgIH0KPj4gICAgICByZXR1cm4gKm9mZiAtIHN0YXJ0Owo+PiBAQCAtNDUxLDUwICs0 NzIsMzkgQEAgc3RhdGljIHZvaWQgc3VicGljX3RpbGVzKGludCAqdGlsZV94LCBpbnQgKnRpbGVf eSwKPj4gaW50ICp0aWxlX3hfZW5kLCBpbnQgKnRpbGVfeV8KPj4gICAgICAgICAgKCp0aWxlX3lf ZW5kKSsrOwo+PiAgfQo+Pgo+PiAtc3RhdGljIGJvb2wgbWFya190aWxlX2FzX3VzZWQoYm9vbCAq dGlsZV9pbl9zdWJwaWMsIGNvbnN0IGludCB0eCwgY29uc3QKPj4gaW50IHR5LCBjb25zdCBpbnQg dGlsZV9jb2x1bW5zKQo+PiAtewo+PiAtICAgIGNvbnN0IHNpemVfdCB0aWxlX2lkeCA9IHR5ICog dGlsZV9jb2x1bW5zICsgdHg7Cj4+IC0gICAgaWYgKHRpbGVfaW5fc3VicGljW3RpbGVfaWR4XSkg ewo+PiAtICAgICAgICAvKiB0aGUgdGlsZSBpcyBjb3ZlcmVkIGJ5IG90aGVyIHN1YnBpY3R1cmVz ICovCj4+IC0gICAgICAgIHJldHVybiBmYWxzZTsKPj4gLSAgICB9Cj4+IC0gICAgdGlsZV9pbl9z dWJwaWNbdGlsZV9pZHhdID0gdHJ1ZTsKPj4gLSAgICByZXR1cm4gdHJ1ZTsKPj4gLX0KPj4gLQo+ PiAtc3RhdGljIGludCBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVfdGlsZV9zbGljZShWVkNQUFMg KnBwcywgY29uc3QgVlZDU1BTCj4+ICpzcHMsIGNvbnN0IGludCBpLCBjb25zdCBpbnQgdHgsIGNv bnN0IGludCB0eSwgaW50ICpvZmYsIGJvb2wKPj4gKnRpbGVfaW5fc3VicGljKQo+PiArc3RhdGlj IGludCBwcHNfc3VicGljX2xlc3NfdGhhbl9vbmVfdGlsZV9zbGljZShWVkNQUFMgKnBwcywgY29u c3QgVlZDU1BTCj4+ICpzcHMsIGNvbnN0IGludCBpLCBjb25zdCBpbnQgdHgsIGNvbnN0IGludCB0 eSwgaW50ICpvZmYpCj4+ICB7Cj4+IC0gICAgY29uc3QgaW50IHN1YnBpY19ib3R0b20gPSBzcHMt PnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3lbaV0gKwo+PiBzcHMtPnItPnNwc19zdWJwaWNf aGVpZ2h0X21pbnVzMVtpXTsKPj4gLSAgICBjb25zdCBpbnQgdGlsZV9ib3R0b20gPSBwcHMtPnJv d19iZFt0eV0gKyBwcHMtPnItPnJvd19oZWlnaHRfdmFsW3R5XQo+PiAtIDE7Cj4+IC0gICAgY29u c3QgYm9vbCBpc19maW5hbF9zdWJwaWNfaW5fdGlsZSA9IHN1YnBpY19ib3R0b20gPT0gdGlsZV9i b3R0b207Cj4+IC0KPj4gLSAgICBpZiAoaXNfZmluYWxfc3VicGljX2luX3RpbGUgJiYgIW1hcmtf dGlsZV9hc191c2VkKHRpbGVfaW5fc3VicGljLCB0eCwKPj4gdHksIHBwcy0+ci0+bnVtX3RpbGVf Y29sdW1ucykpCj4+IC0gICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+PiAtCj4+ IC0gICAgcHBzLT5udW1fY3R1c19pbl9zbGljZVtpXSA9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwK Pj4gKyAgICBjb25zdCBpbnQgcmV0ID0gcHBzX2FkZF9jdHVzX2NoZWNrKHBwcywgb2ZmLAo+PiAg ICAgICAgICBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0X3hbaV0sCj4+IHNwcy0+ci0+ c3BzX3N1YnBpY19jdHVfdG9wX2xlZnRfeVtpXSwKPj4gICAgICAgICAgc3BzLT5yLT5zcHNfc3Vi cGljX3dpZHRoX21pbnVzMVtpXSArIDEsCj4+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWlu dXMxW2ldICsgMSk7Cj4+Cj4+IC0gICAgcmV0dXJuIDA7Cj4+ICsgICAgaWYgKHJldCA8IDApCj4+ ICsgICAgICAgIHJldHVybiByZXQ7Cj4+ICsgICAgZWxzZSB7Cj4+ICsgICAgICAgIHBwcy0+bnVt X2N0dXNfaW5fc2xpY2VbaV0gPSByZXQ7Cj4+ICsgICAgICAgIHJldHVybiAwOwo+PiArICAgIH0K Pj4KPiBUaGUgZWxzZSBpcyBub3QgbmVlZGVkOyBpZiB0aGUgY29uZGl0aW9uIGlzIHRydWUsIHRo ZSBmdW5jdGlvbiByZXR1cm5zLgo+IAoKQ2hhbmdlZCBpbiB2Mi4KCj4+ICB9Cj4+Cj4+ICBzdGF0 aWMgaW50IHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2UoVlZDUFBTICpwcHMsIGNv bnN0IGludAo+PiB0aWxlX3gsIGNvbnN0IGludCB0aWxlX3ksIGNvbnN0IGludCB4X2VuZCwgY29u c3QgaW50IHlfZW5kLAo+PiAtICAgIGNvbnN0IGludCBpLCBpbnQgKm9mZiwgYm9vbCAqdGlsZV9p bl9zdWJwaWMpCj4+ICsgICAgY29uc3QgaW50IGksIGludCAqb2ZmKQo+PiAgewo+PiAgICAgIGZv ciAoaW50IHR5ID0gdGlsZV95OyB0eSA8IHlfZW5kOyB0eSsrKSB7Cj4+ICAgICAgICAgIGZvciAo aW50IHR4ID0gdGlsZV94OyB0eCA8IHhfZW5kOyB0eCsrKSB7Cj4+IC0gICAgICAgICAgICBpZiAo IW1hcmtfdGlsZV9hc191c2VkKHRpbGVfaW5fc3VicGljLCB0eCwgdHksCj4+IHBwcy0+ci0+bnVt X3RpbGVfY29sdW1ucykpCj4+IC0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7Cj4+IC0KPj4gLSAgICAgICAgICAgIHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gKz0g cHBzX2FkZF9jdHVzKHBwcywgb2ZmLAo+PiArICAgICAgICAgICAgY29uc3QgaW50IHJldCA9IHBw c19hZGRfY3R1c19jaGVjayhwcHMsIG9mZiwKPj4gICAgICAgICAgICAgICAgICBwcHMtPmNvbF9i ZFt0eF0sIHBwcy0+cm93X2JkW3R5XSwKPj4gICAgICAgICAgICAgICAgICBwcHMtPnItPmNvbF93 aWR0aF92YWxbdHhdLCBwcHMtPnItPnJvd19oZWlnaHRfdmFsW3R5XSk7Cj4+ICsKPj4gKyAgICAg ICAgICAgIGlmIChyZXQgPCAwKQo+PiArICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ICsg ICAgICAgICAgICBlbHNlCj4+ICsgICAgICAgICAgICAgICAgcHBzLT5udW1fY3R1c19pbl9zbGlj ZVtpXSArPSByZXQ7Cj4+Cj4gZWxzZSBpcyBub3QgbmVlZGVkIHRvby4KPiAKClNhbWUgYXMgYWJv dmUuCgo+PiAgICAgICAgICB9Cj4+ICAgICAgfQo+PiAgICAgIHJldHVybiAwOwo+PiAgfQo+Pgo+ PiAtc3RhdGljIGludCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMg KnNwcywgY29uc3QgaW50IGksCj4+IGludCAqb2ZmLCBib29sICp0aWxlX2luX3N1YnBpYykKPj4g K3N0YXRpYyBpbnQgcHBzX3N1YnBpY19zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTICpz cHMsIGNvbnN0IGludCBpLAo+PiBpbnQgKm9mZikKPj4gIHsKPj4gICAgICBpbnQgdHgsIHR5LCB4 X2VuZCwgeV9lbmQ7Cj4+Cj4+IEBAIC01MDMsOSArNTEzLDkgQEAgc3RhdGljIGludCBwcHNfc3Vi cGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMKPj4gKnNwcywgY29uc3QgaW50IGks IGludCAqb2YKPj4KPj4gICAgICBzdWJwaWNfdGlsZXMoJnR4LCAmdHksICZ4X2VuZCwgJnlfZW5k LCBzcHMsIHBwcywgaSk7Cj4+ICAgICAgaWYgKHR5ICsgMSA9PSB5X2VuZCAmJiBzcHMtPnItPnNw c19zdWJwaWNfaGVpZ2h0X21pbnVzMVtpXSArIDEgPAo+PiBwcHMtPnItPnJvd19oZWlnaHRfdmFs W3R5XSkKPj4gLSAgICAgICAgcmV0dXJuIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90aWxlX3Ns aWNlKHBwcywgc3BzLCBpLCB0eCwgdHksCj4+IG9mZiwgdGlsZV9pbl9zdWJwaWMpOwo+PiArICAg ICAgICByZXR1cm4gcHBzX3N1YnBpY19sZXNzX3RoYW5fb25lX3RpbGVfc2xpY2UocHBzLCBzcHMs IGksIHR4LCB0eSwKPj4gb2ZmKTsKPj4gICAgICBlbHNlCj4+IC0gICAgICAgIHJldHVybiBwcHNf c3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKHBwcywgdHgsIHR5LCB4X2VuZCwKPj4geV9l bmQsIGksIG9mZiwgdGlsZV9pbl9zdWJwaWMpOwo+PiArICAgICAgICByZXR1cm4gcHBzX3N1YnBp Y19vbmVfb3JfbW9yZV90aWxlc19zbGljZShwcHMsIHR4LCB0eSwgeF9lbmQsCj4+IHlfZW5kLCBp LCBvZmYpOwo+PiAgfQo+Pgo+PiAgc3RhdGljIGludCBwcHNfc2luZ2xlX3NsaWNlX3Blcl9zdWJw aWMoVlZDUFBTICpwcHMsIGNvbnN0IFZWQ1NQUyAqc3BzLAo+PiBpbnQgKm9mZikKPj4gQEAgLTUx MywxOCArNTIzLDExIEBAIHN0YXRpYyBpbnQgcHBzX3NpbmdsZV9zbGljZV9wZXJfc3VicGljKFZW Q1BQUyAqcHBzLAo+PiBjb25zdCBWVkNTUFMgKnNwcywgaW50ICpvZmYpCj4+ICAgICAgaWYgKCFz cHMtPnItPnNwc19zdWJwaWNfaW5mb19wcmVzZW50X2ZsYWcpIHsKPj4gICAgICAgICAgcHBzX3Np bmdsZV9zbGljZV9waWN0dXJlKHBwcywgb2ZmKTsKPj4gICAgICB9IGVsc2Ugewo+PiAtICAgICAg ICBib29sIHRpbGVfaW5fc3VicGljW1ZWQ19NQVhfVElMRVNfUEVSX0FVXSA9IHswfTsKPj4gICAg ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcHMtPnItPnBwc19udW1fc2xpY2VzX2luX3BpY19t aW51czEgKyAxOwo+PiBpKyspIHsKPj4gLSAgICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNf c3VicGljX3NsaWNlKHBwcywgc3BzLCBpLCBvZmYsCj4+IHRpbGVfaW5fc3VicGljKTsKPj4gKyAg ICAgICAgICAgIGNvbnN0IGludCByZXQgPSBwcHNfc3VicGljX3NsaWNlKHBwcywgc3BzLCBpLCBv ZmYpOwo+PiAgICAgICAgICAgICAgaWYgKHJldCA8IDApCj4+ICAgICAgICAgICAgICAgICAgcmV0 dXJuIHJldDsKPj4gICAgICAgICAgfQo+PiAtCj4+IC0gICAgICAgIC8vIFdlIG9ubHkgdXNlIHRp bGVfaW5fc3VicGljIHRvIGNoZWNrIHRoYXQgdGhlIHN1YnBpY3R1cmVzIGRvbid0Cj4+IG92ZXJs YXAKPj4gLSAgICAgICAgLy8gaGVyZTsgd2UgZG9uJ3QgdXNlIHRpbGVfaW5fc3VicGljIHRvIGNo ZWNrIHRoYXQgdGhlCj4+IHN1YnBpY3R1cmVzIGNvdmVyCj4+IC0gICAgICAgIC8vIGV2ZXJ5IHRp bGUuICBJdCBpcyBwb3NzaWJsZSB0byBhdm9pZCBkb2luZyB0aGlzIHdvcmsgaGVyZQo+PiBiZWNh dXNlIHRoZQo+PiAtICAgICAgICAvLyBjb3ZlcmluZyBwcm9wZXJ0eSBvZiBzdWJwaWN0dXJlcyBp cyBhbHJlYWR5IGd1YXJhbnRlZWQgYnkgdGhlCj4+IG1lY2hhbmlzbXMKPj4gLSAgICAgICAgLy8g d2hpY2ggY2hlY2sgZXZlcnkgQ1RVIGJlbG9uZ3MgdG8gYSBzbGljZS4KPj4gICAgICB9Cj4+ICAg ICAgcmV0dXJuIDA7Cj4+ICB9Cj4+IC0tCj4+IDIuNDcuMAo+Pgo+PgoKLS0gCkZyYW5rCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwg bWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsg YWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJq ZWN0ICJ1bnN1YnNjcmliZSIuCg==