From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 47EFA4AD21
	for <ffmpegdev@gitmailbox.com>; Sat, 24 May 2025 14:02:25 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1170268DB3D;
	Sat, 24 May 2025 17:02:20 +0300 (EEST)
Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com
 [209.85.210.41])
 by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id A095168DA8C
 for <ffmpeg-devel@ffmpeg.org>; Sat, 24 May 2025 17:02:13 +0300 (EEST)
Received: by mail-ot1-f41.google.com with SMTP id
 46e09a7af769-734f2ddb868so491503a34.1
 for <ffmpeg-devel@ffmpeg.org>; Sat, 24 May 2025 07:02:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1748095331; x=1748700131; darn=ffmpeg.org;
 h=to:subject:message-id:date:from:in-reply-to:references:mime-version
 :from:to:cc:subject:date:message-id:reply-to;
 bh=ilmqQBSYzQ8O3YPv0cKNU9IBKCx1nlYYS8qwyib3isk=;
 b=XoH7n6LnSDddjEpxHPGACCOdaegFUMOi5jazlMRFJ0YQAtstrO5HVv2YuGjJ8WSnWN
 IdWKN7AAmY/M86b7jdtr069UiJ84SL50KXk4h5i70+RhYx9s5K67csYGIzkKvI/uhF+r
 48YsLgDcNZQOZ5U7OtRGfmgkzcP81ipYKti6g5etfliy1zhQB82Tmv0QV3JZeGYzMtZ2
 +ZoteBOkmTNCJjgBhOiUDWM+ElQ1ZDueGTyPRUAr/miudRGLGpuJu7OXxAVh4whJxVX9
 w4UvS/cYpr3EbomP6qgg5WTqMLNqvOU9Bf/d5zAukjhOZvd3s+ecF8AJAnSh7TXFpd6s
 nV2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1748095331; x=1748700131;
 h=to:subject:message-id:date:from:in-reply-to:references:mime-version
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=ilmqQBSYzQ8O3YPv0cKNU9IBKCx1nlYYS8qwyib3isk=;
 b=SCTUXCtb0X8Ye1dEEORqdFh1mYeS4kPaxA1yzlR8aD1PjAbNgM4DN8HGZ1739PxkfX
 RxWoAZ4eA9APvLTrNWZDUKEO3p0L32cy5b9O6T7CRSowbWh/0m9of7fJjuqAgVdba0bk
 xSxdAINly5QMx1M7KhJKu6U0tEf8dttXdUlZK3+yXBWBmdVAdXXKBLbNK9dLZlhvCWov
 Sybv9JdrhVzo66IEypjf3kDn3ZLWjzN1W2/pXWJlnnFnXihLPVjX0Z4ViLrc+aYw/ewc
 seKXdLXUW4eXZ0RVkHvsAYEIeDIxhM467FZjSycPeh2axiiaKa1xUsr/5BvqhemuH+oB
 QEfA==
X-Gm-Message-State: AOJu0YwFjXCYydPhYj8THJIJKTlXglzDvqUG8WJ7Sv+w0fULMiG6m/mL
 EKymXeqP/IpWBUf38f2nOIHTPqTtFBftvdHv7AMziN2yTNB4fICuH7N+Tw6XcoRs0bfEfd1gI9x
 KZQHf9sDA45RemC/G4E07b6XqJOVuBrTJvcmu
X-Gm-Gg: ASbGncsMFN2DzasEKIZrt+5r/KiEiq/jYG0+rTcI1LpD6ojS7riK3ntiUEdVUcAoYDK
 BRiPjhyf7ZtscW2fES6tK0TbgxQMc6x6F1Ar5DOc+KrVPvm2/HCjFmDQ0Wt6Vehyqr2p0eaWN04
 L1H4xkx4Jv66O4T08zBID+Nf74tfRnVRQ=
X-Google-Smtp-Source: AGHT+IFbzTkpERZGpVRZpw/slm/SsBblwkKeZqQayEJhYmU+tE8qXhIjT2d+hXTK4ZNjD2Z7nZKFQmp+Dlg8cAWA/cM=
X-Received: by 2002:a05:6808:229e:b0:3f9:f923:cc46 with SMTP id
 5614622812f47-406467e259cmr1484286b6e.9.1748095330822; Sat, 24 May 2025
 07:02:10 -0700 (PDT)
MIME-Version: 1.0
References: <20250401171616.1378-1-toqsxw@outlook.com>
 <20250401171616.1378-9-toqsxw@outlook.com>
 <GV1P250MB0737CFBC80EC0133D4B1CE718F842@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM>
 <OS3PR01MB994461E64E1FC1F2B27AAA56CA8BA@OS3PR01MB9944.jpnprd01.prod.outlook.com>
In-Reply-To: <OS3PR01MB994461E64E1FC1F2B27AAA56CA8BA@OS3PR01MB9944.jpnprd01.prod.outlook.com>
From: Nuo Mi <nuomi2021@gmail.com>
Date: Sat, 24 May 2025 22:02:00 +0800
X-Gm-Features: AX0GCFvje4XX9Mo-uCzivmMGW89TBqun1NZppXWCeWnbXr7GI758VFQBW4HODv8
Message-ID: <CAFXK13d4qY=75nbNqDVmh=rg_ACPpWLezfz5OpN=PkmJ7NTnfA@mail.gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
X-Content-Filtered-By: Mailman/MimeDel 2.1.29
Subject: Re: [FFmpeg-devel] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjEgMDkvMTldIGF2?=
	=?utf-8?q?codec/h274=3A_add_ff=5Fh274=5Fhash_functions?=
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/CAFXK13d4qY=75nbNqDVmh=rg_ACPpWLezfz5OpN=PkmJ7NTnfA@mail.gmail.com/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

T24gRnJpLCBNYXkgOSwgMjAyNSBhdCAyOjM34oCvQU0gV3UgSmlhbmh1YSA8dG9xc3h3QG91dGxv
b2suY29tPiB3cm90ZToKCj4gQW5kcmVhcyBSaGVpbmhhcmR0Ogo+ID4gdG9xc3h3QGdtYWlsLmNv
bToKPiA+PiBGcm9tOiBXdSBKaWFuaHVhIDx0b3FzeHdAb3V0bG9vay5jb20+Cj4gPj4KPiA+PiBT
aWduZWQtb2ZmLWJ5OiBXdSBKaWFuaHVhIDx0b3FzeHdAb3V0bG9vay5jb20+Cj4gPj4gLS0tCj4g
Pj4gIGxpYmF2Y29kZWMvaDI3NC5jIHwgMTYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysKPiA+PiAgbGliYXZjb2RlYy9oMjc0LmggfCAgIDcgKysKPiA+PiAg
MiBmaWxlcyBjaGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBh
L2xpYmF2Y29kZWMvaDI3NC5jIGIvbGliYXZjb2RlYy9oMjc0LmMKPiA+PiBpbmRleCA1NzA5MjAw
MzIyLi45ZWRjNzA1MDQyIDEwMDY0NAo+ID4+IC0tLSBhL2xpYmF2Y29kZWMvaDI3NC5jCj4gPj4g
KysrIGIvbGliYXZjb2RlYy9oMjc0LmMKPiA+PiBAQCAtMjYsNyArMjYsMTEgQEAKPiA+PiAgICov
Cj4gPj4KPiA+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5oIgo+ID4+ICsjaW5jbHVk
ZSAibGliYXZ1dGlsL2Jzd2FwLmgiCj4gPj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvY3JjLmgiCj4g
Pj4gICNpbmNsdWRlICJsaWJhdnV0aWwvaW1ndXRpbHMuaCIKPiA+PiArI2luY2x1ZGUgImxpYmF2
dXRpbC9tZDUuaCIKPiA+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKPiA+Pgo+ID4+ICAj
aW5jbHVkZSAiaDI3NC5oIgo+ID4+Cj4gPj4gQEAgLTc5MCwzICs3OTQsMTYyIEBAIHN0YXRpYyBj
b25zdCBpbnQ4X3QgUjY0VFs2NF1bNjRdID0gewo+ID4+ICAgICAgICAgICAxNywgLTE2LCAgMTUs
IC0xNCwgIDEzLCAtMTIsICAxMSwgLTEwLCAgIDksICAtOCwgICA3LCAgLTYsCj4gIDQsICAtMywg
ICAyLCAgLTEsCj4gPj4gICAgICB9Cj4gPj4gIH07Cj4gPj4gKwo+ID4+ICtzdGF0aWMgaW50IHZl
cmlmeV9wbGFuZV9tZDUoc3RydWN0IEFWTUQ1ICpjdHgsCj4gPj4gKyAgICBjb25zdCB1aW50OF90
ICpzcmMsIGNvbnN0IGludCB3LCBjb25zdCBpbnQgaCwgY29uc3QgaW50IHN0cmlkZSwKPiA+PiAr
ICAgIGNvbnN0IHVpbnQ4X3QgKmV4cGVjdGVkKQo+ID4+ICt7Cj4gPj4gKyNkZWZpbmUgTUQ1X1NJ
WkUgMTYKPiA+PiArICAgIHVpbnQ4X3QgbWQ1W01ENV9TSVpFXTsKPiA+PiArICAgIGF2X21kNV9p
bml0KGN0eCk7Cj4gPj4gKyAgICBmb3IgKGludCBqID0gMDsgaiA8IGg7IGorKykgewo+ID4+ICsg
ICAgICAgIGF2X21kNV91cGRhdGUoY3R4LCBzcmMsIHcpOwo+ID4+ICsgICAgICAgIHNyYyArPSBz
dHJpZGU7Cj4gPj4gKyAgICB9Cj4gPj4gKyAgICBhdl9tZDVfZmluYWwoY3R4LCBtZDUpOwo+ID4+
ICsKPiA+PiArICAgIGlmIChtZW1jbXAobWQ1LCBleHBlY3RlZCwgTUQ1X1NJWkUpKQo+ID4+ICsg
ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ID4+ICsKPiA+PiArICAgIHJldHVy
biAwOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgaW50IHZlcmlmeV9wbGFuZV9jcmMoY29u
c3QgdWludDhfdCAqc3JjLCBjb25zdCBpbnQgdywgY29uc3QgaW50Cj4gaCwgY29uc3QgaW50IHN0
cmlkZSwKPiA+PiArICAgIGNvbnN0IHVpbnQ4X3QgKmV4cGVjdGVkKQo+ID4+ICt7Cj4gPj4gKyAg
ICB1aW50MzJfdCBjcmMgPSAweDBGMUQ7ICAgICAvLyBDUkMtMTYtQ0NJVFQtQVVHCj4gPj4gKyAg
ICBjb25zdCBBVkNSQyAqY3R4ID0gYXZfY3JjX2dldF90YWJsZShBVl9DUkNfMTZfQ0NJVFQpOwo+
ID4+ICsKPiA+PiArICAgIGZvciAoaW50IGogPSAwOyBqIDwgaDsgaisrKSB7Cj4gPj4gKyAgICAg
ICAgY3JjID0gYXZfY3JjKGN0eCwgY3JjLCBzcmMsIHcpOwo+ID4+ICsgICAgICAgIHNyYyArPSBz
dHJpZGU7Cj4gPj4gKyAgICB9Cj4gPj4gKyAgICBjcmMgPSBhdl9ic3dhcDE2KGNyYyk7Cj4gPj4g
Kwo+ID4+ICsgICAgaWYgKG1lbWNtcCgmY3JjLCBleHBlY3RlZCwgc2l6ZW9mKHVpbnQxNl90KSkp
Cj4gPgo+ID4gVGhpcyBzZWVtcyBlbmRpYW4tZGVwZW5kZW50IChhcyBhcmUgdGhlIG90aGVyIGNo
ZWNrcykuIFdoeSBkb24ndCB5b3UKPiA+IHNpbXBseSBwYXNzIHRoZSBwcm9wZXIgQ1JDIGFzIHVp
bnQxNl90L3VpbnQzMl90IHBhcmFtZXRlcj8KPiA+Cj4gPj4gKyAgICAgICAgcmV0dXJuIEFWRVJS
T1JfSU5WQUxJRERBVEE7Cj4gPj4gKwo+ID4+ICsgICAgcmV0dXJuIDA7Cj4gPj4gK30KPiA+PiAr
Cj4gPj4gKyNkZWZpbmUgQ0FMX0NIRUNLU1VNKHBpeGVsKSAoY2hlY2tzdW0gKyAoKHBpeGVsKSBe
IHhvcl9tYXNrKSkKPiA+PiArc3RhdGljIGludCB2ZXJpZnlfcGxhbmVfY2hlY2tzdW0oY29uc3Qg
dWludDhfdCAqc3JjLCBjb25zdCBpbnQgdywKPiBjb25zdCBpbnQgaCwgY29uc3QgaW50IHN0cmlk
ZSwgY29uc3QgaW50IHBzLAo+ID4+ICsgICAgY29uc3QgdWludDhfdCAqZXhwZWN0ZWQpCj4gPj4g
K3sKPiA+PiArICAgIHVpbnQzMl90IGNoZWNrc3VtID0gMDsKPiA+PiArCj4gPj4gKyAgICBmb3Ig
KGludCB5ID0gMDsgeSA8IGg7IHkrKykgewo+ID4+ICsgICAgICAgIGZvciAoaW50IHggPSAwOyB4
IDwgdzsgeCsrKSB7Cj4gPj4gKyAgICAgICAgICAgIGNvbnN0IGludCB4b3JfbWFzayA9ICh4ICYg
MHhGRikgXiAoeSAmIDB4RkYpIF4gKHggPj4gOCkgXgo+ICh5ID4+IDgpOwo+ID4+ICsgICAgICAg
ICAgICBjaGVja3N1bSA9IENBTF9DSEVDS1NVTShzcmNbeCA8PCBwc10pOwo+ID4+ICsgICAgICAg
ICAgICBpZiAocHMpCj4gPj4gKyAgICAgICAgICAgICAgICBjaGVja3N1bSA9IENBTF9DSEVDS1NV
TShzcmNbKHggPDwgcHMpICsgMV0pOwo+ID4KPiA+IFdoeSBkb24ndCB5b3UgdXNlIGNoZWNrc3Vt
ICs9IGluc3RlYWQgb2YgdXNpbmcgY2hlY2tzdW0gaW4gdGhlCj4gPiBDQUxfQ0hFQ0tTVU0gbWFj
cm8gaW4gYSBoYXJkY29kZWQgbWFubmVyPwo+ID4KPiA+PiArICAgICAgICB9Cj4gPj4gKyAgICAg
ICAgc3JjICs9IHN0cmlkZTsKPiA+PiArICAgIH0KPiA+PiArCj4gPj4gKyAgICBpZiAoY2hlY2tz
dW0gIT0gKih1aW50MzJfdCopZXhwZWN0ZWQpCj4gPj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1Jf
SU5WQUxJRERBVEE7Cj4gPj4gKwo+ID4+ICsgICAgcmV0dXJuIDA7Cj4gPj4gK30KPiA+PiArCj4g
Pj4gK3N0YXRpYyBjb25zdCB1aW50OF90ICpnZXRfcGxhbmVfaGFzaChjb25zdCBIMjc0U0VJUGlj
dHVyZUhhc2ggKmgsCj4gY29uc3QgaW50IHBsYW5lKQo+ID4+ICt7Cj4gPj4gKyAgICBpZiAoIWgt
Pmhhc2hfdHlwZSkKPiA+PiArICAgICAgICByZXR1cm4gaC0+bWQ1W3BsYW5lXTsKPiA+PiArICAg
IGlmIChoLT5oYXNoX3R5cGUgPT0gMSkKPiA+PiArICAgICAgICByZXR1cm4gKHVpbnQ4X3QqKSZo
LT5jcmNbcGxhbmVdOwo+ID4+ICsgICAgcmV0dXJuICh1aW50OF90KikmaC0+Y2hlY2tzdW1bcGxh
bmVdOwo+ID4+ICt9Cj4gPgo+ID4gVGhpcyBmdW5jdGlvbiBzZWVtcyBjb21wbGV0ZWx5IHVzZWxl
c3M7IHlvdSBzaG91bGQgYmV0dGVyIHBhc3MgdGhlCj4gPiBwcm9wZXIgZXhwZWN0ZWQgdmFsdWUg
dG8gdGhlIGZ1bmN0aW9ucyBkaXJlY3RseSAoYnkgdmFsdWUgZm9yIG5vbi1tZDUpLgo+ID4KPiA+
PiArCj4gPj4gK2VudW0gewo+ID4+ICsgICAgSEFTSF9NRDVTVU0sCj4gPj4gKyAgICBIQVNIX0NS
QywKPiA+PiArICAgIEhBU0hfQ0hFQ0tTVU0sCj4gPj4gKyAgICBIQVNIX0xBU1QgPSBIQVNIX0NI
RUNLU1VNLAo+ID4+ICt9Owo+ID4+ICsKPiA+PiArc3RydWN0IEgyNzRIYXNoQ29udGV4dCB7Cj4g
Pj4gKyAgICBpbnQgdHlwZTsKPiA+PiArICAgIHN0cnVjdCBBVk1ENSAqY3R4Owo+ID4+ICt9Owo+
ID4+ICsKPiA+PiAraW50IGZmX2gyNzRfaGFzaF9mcmVlcChIMjc0SGFzaENvbnRleHQgKipjdHgp
Cj4gPj4gK3sKPiA+PiArICAgIGlmIChjdHggJiYgKmN0eCkgewo+ID4KPiA+IERvbid0IGNoZWNr
IGZvciBjdHguIFBhc3NpbmcgYSBOVUxMIHRvIGEgZnJlZXAtZnVuY3Rpb24gaXMgaW5zYW5lLgo+
ID4KPiA+PiArICAgICAgICBIMjc0SGFzaENvbnRleHQgKmMgPSAqY3R4Owo+ID4+ICsgICAgICAg
IGlmIChjLT5jdHgpCj4gPj4gKyAgICAgICAgICAgIGF2X2ZyZWUoYy0+Y3R4KTsKPiA+PiArICAg
ICAgICBhdl9mcmVlcChjdHgpOwo+ID4+ICsgICAgfQo+ID4+ICsgICAgcmV0dXJuIDA7Cj4gPgo+
ID4gV2h5IGlzIHRoaXMgZnVuY3Rpb24gcmV0dXJuaW5nIGFueXRoaW5nPwo+ID4KPiA+PiArfQo+
ID4+ICsKPiA+PiAraW50IGZmX2gyNzRfaGFzaF9pbml0KEgyNzRIYXNoQ29udGV4dCAqKmN0eCwg
Y29uc3QgaW50IHR5cGUpCj4gPj4gK3sKPiA+PiArICAgIEgyNzRIYXNoQ29udGV4dCAqYzsKPiA+
PiArCj4gPj4gKyAgICBpZiAodHlwZSA+IEhBU0hfTEFTVCB8fCAhY3R4KQo+ID4+ICsgICAgICAg
IHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gPj4gKwo+ID4+ICsgICAgYyA9ICpjdHg7Cj4gPj4g
KyAgICBpZiAoYykgewo+ID4+ICsgICAgICAgIGlmIChjLT50eXBlICE9IHR5cGUpIHsKPiA+PiAr
ICAgICAgICAgICAgaWYgKGMtPnR5cGUgPT0gSEFTSF9NRDVTVU0pCj4gPj4gKyAgICAgICAgICAg
ICAgICBhdl9mcmVlcCgmYy0+Y3R4KTsKPiA+PiArICAgICAgICAgICAgYy0+dHlwZSA9IHR5cGU7
Cj4gPj4gKyAgICAgICAgfQo+ID4+ICsgICAgfSBlbHNlIHsKPiA+PiArICAgICAgICAqY3R4ID0g
YyA9IGF2X21hbGxvY3ooc2l6ZW9mKEgyNzRIYXNoQ29udGV4dCkpOwo+ID4KPiA+IFdoeSBpcyB0
aGlzIHNlcGFyYXRlbHkgYWxsb2NhdGVkPwo+ID4KPiA+PiArICAgICAgICBpZiAoIWMpCj4gPj4g
KyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPj4gKyAgICAgICAgYy0+dHlw
ZSA9IHR5cGU7Cj4gPj4gKyAgICB9Cj4gPj4gKwo+ID4+ICsgICAgaWYgKHR5cGUgPT0gSEFTSF9N
RDVTVU0gJiYgIWMtPmN0eCkgewo+ID4+ICsgICAgICAgIGMtPmN0eCA9IGF2X21kNV9hbGxvYygp
Owo+ID4+ICsgICAgICAgIGlmICghYy0+Y3R4KQo+ID4+ICsgICAgICAgICAgICByZXR1cm4gQVZF
UlJPUihFTk9NRU0pOwo+ID4+ICsgICAgfQo+ID4+ICsKPiA+PiArICAgIHJldHVybiAwOwo+ID4+
ICt9Cj4gPj4gKwo+ID4+ICtpbnQgZmZfaDI3NF9oYXNoX3ZlcmlmeShIMjc0SGFzaENvbnRleHQg
KmMsIGNvbnN0IEgyNzRTRUlQaWN0dXJlSGFzaAo+ICpoYXNoLAo+ID4+ICsgICAgY29uc3QgQVZG
cmFtZSAqZnJhbWUsIGNvbnN0IGludCBjb2RlZF93aWR0aCwgY29uc3QgaW50Cj4gY29kZWRfaGVp
Z2h0KQo+ID4+ICt7Cj4gPj4gKyAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKmRlc2M7Cj4g
Pj4gKyAgICBpbnQgZXJyID0gMDsKPiA+PiArCj4gPj4gKyAgICBpZiAoIWMgfHwgIWhhc2ggfHwg
IWZyYW1lKQo+ID4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gPj4gKwo+ID4+
ICsgICAgaWYgKGMtPnR5cGUgIT0gaGFzaC0+aGFzaF90eXBlKQo+ID4+ICsgICAgICAgIHJldHVy
biBBVkVSUk9SKEVJTlZBTCk7Cj4gPj4gKwo+ID4+ICsgICAgZGVzYyA9IGF2X3BpeF9mbXRfZGVz
Y19nZXQoZnJhbWUtPmZvcm1hdCk7Cj4gPj4gKyAgICBpZiAoIWRlc2MpCj4gPj4gKyAgICAgICAg
cmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPiA+PiArCj4gPj4gKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IGRlc2MtPm5iX2NvbXBvbmVudHM7IGkrKykgewo+ID4+ICsgICAgICAgIGNvbnN0IGludCB3
ICAgICAgICAgICAgID0gaSA/IChjb2RlZF93aWR0aCAgPj4KPiBkZXNjLT5sb2cyX2Nocm9tYV93
KSA6IGNvZGVkX3dpZHRoOwo+ID4+ICsgICAgICAgIGNvbnN0IGludCBoICAgICAgICAgICAgID0g
aSA/IChjb2RlZF9oZWlnaHQgPj4KPiBkZXNjLT5sb2cyX2Nocm9tYV9oKSA6IGNvZGVkX2hlaWdo
dDsKPiA+PiArICAgICAgICBjb25zdCBpbnQgcHMgICAgICAgICAgICA9IGRlc2MtPmNvbXBbaV0u
c3RlcCAtIDE7Cj4gPj4gKyAgICAgICAgY29uc3QgdWludDhfdCAqZXhwZWN0ZWQgPSBnZXRfcGxh
bmVfaGFzaChoYXNoLCBpKTsKPiA+PiArICAgICAgICBjb25zdCB1aW50OF90ICpzcmMgICAgICA9
IGZyYW1lLT5kYXRhW2ldOwo+ID4+ICsgICAgICAgIGNvbnN0IGludCBzdHJpZGUgICAgICAgID0g
ZnJhbWUtPmxpbmVzaXplW2ldOwo+ID4+ICsKPiA+PiArICAgICAgICBpZiAoYy0+dHlwZSA9PSBI
QVNIX01ENVNVTSkKPiA+PiArICAgICAgICAgICAgZXJyID0gdmVyaWZ5X3BsYW5lX21kNShjLT5j
dHgsIHNyYywgdyA8PCBwcywgaCwgc3RyaWRlLAo+IGV4cGVjdGVkKTsKPiA+PiArICAgICAgICBl
bHNlIGlmIChjLT50eXBlID09IEhBU0hfQ1JDKQo+ID4+ICsgICAgICAgICAgICBlcnIgPSB2ZXJp
ZnlfcGxhbmVfY3JjKHNyYywgdyA8PCBwcywgaCwgc3RyaWRlLCBleHBlY3RlZCk7Cj4gPj4gKyAg
ICAgICAgZWxzZSBpZiAoYy0+dHlwZSA9PSBIQVNIX0NIRUNLU1VNKQo+ID4+ICsgICAgICAgICAg
ICBlcnIgPSB2ZXJpZnlfcGxhbmVfY2hlY2tzdW0oc3JjLCB3LCBoLCBzdHJpZGUsIHBzLAo+IGV4
cGVjdGVkKTsKPiA+PiArICAgICAgICBpZiAoZXJyIDwgMCkKPiA+PiArICAgICAgICAgICAgZ290
byBmYWlsOwo+ID4+ICsgICAgfQo+ID4+ICsKPiA+PiArZmFpbDoKPiA+PiArICAgIHJldHVybiBl
cnI7Cj4gPj4gK30KPiA+PiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oMjc0LmggYi9saWJhdmNv
ZGVjL2gyNzQuaAo+ID4+IGluZGV4IGUxODAzZWRhZjMuLmUyYmIxYWVjNTUgMTAwNjQ0Cj4gPj4g
LS0tIGEvbGliYXZjb2RlYy9oMjc0LmgKPiA+PiArKysgYi9saWJhdmNvZGVjL2gyNzQuaAo+ID4+
IEBAIC02NCw2ICs2NCw4IEBAIGludCBmZl9oMjc0X2FwcGx5X2ZpbG1fZ3JhaW4oQVZGcmFtZSAq
b3V0LCBjb25zdAo+IEFWRnJhbWUgKmluLAo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEgyNzRGaWxtR3JhaW5EYXRhYmFzZSAqZGIsCj4gPj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgQVZGaWxtR3JhaW5QYXJhbXMgKnBhcmFtcyk7Cj4gPj4KPiA+PiArdHlw
ZWRlZiBzdHJ1Y3QgSDI3NEhhc2hDb250ZXh0IEgyNzRIYXNoQ29udGV4dDsKPiA+PiArCj4gPj4g
IHR5cGVkZWYgc3RydWN0IEgyNzRTRUlQaWN0dXJlSGFzaCB7Cj4gPj4gICAgICBpbnQgcHJlc2Vu
dDsKPiA+PiAgICAgIHVuaW9uIHsKPiA+PiBAQCAtNzQsNCArNzYsOSBAQCB0eXBlZGVmIHN0cnVj
dCBIMjc0U0VJUGljdHVyZUhhc2ggewo+ID4+ICAgICAgdWludDhfdCBoYXNoX3R5cGU7Cj4gPj4g
IH0gSDI3NFNFSVBpY3R1cmVIYXNoOwo+ID4+Cj4gPj4gK2ludCBmZl9oMjc0X2hhc2hfaW5pdChI
Mjc0SGFzaENvbnRleHQgKipjLCBpbnQgdHlwZSk7Cj4gPj4gK2ludCBmZl9oMjc0X2hhc2hfdmVy
aWZ5KEgyNzRIYXNoQ29udGV4dCAqYywgY29uc3QgSDI3NFNFSVBpY3R1cmVIYXNoCj4gKmhhc2gs
Cj4gPj4gKyAgICBjb25zdCBBVkZyYW1lICpmcmFtZSwgaW50IGNvZGVkX3dpZHRoLCBpbnQgY29k
ZWRfaGVpZ2h0KTsKPiA+PiAraW50IGZmX2gyNzRfaGFzaF9mcmVlcChIMjc0SGFzaENvbnRleHQg
KipjKTsKPiA+PiArCj4gPj4gICNlbmRpZiAvKiBBVkNPREVDX0gyNzRfSCAqLwo+Cj4gSGkgQW5k
cmVhcywKPgo+IFRoYW5rcyBmb3IgeW91ciByZXZpZXdzISBUaGV5IGhlbHAgYSBsb3QuIEkndmUg
dXBkYXRlZCB0aGUgdjIKPiBwYXRjaHNldCBiYXNlZCBvbiB5b3VyIGNvbW1lbnRzLiBXb3VsZCB5
b3UgaGVscCB0byByZXZpZXcgdGhlCj4gdjIgcGF0Y2hlcz8KPgpIaSBBbmRyZWFzLApUaGFuayB5
b3UgZm9yIHRoZSByZXZpZXcuCgpIaSBBbmRyZWFzIGFuZCBhbGwsCkkgd2lsbCBwdXNoIHRoaXMg
bmV4dCB3ZWVrIHVubGVzcyB0aGVyZSBhcmUgYW55IG9iamVjdGlvbnMuCgpUaGFuayB5b3UuCgo+
Cj4gVGhhbmtzLAo+IEppYW5odWEKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxA
ZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k
ZXZlbAo+Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZt
cGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K
PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWct
ZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVn
Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0
IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0
aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==