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 225374D237
	for <ffmpegdev@gitmailbox.com>; Sat, 31 May 2025 01:53:56 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id F242368DACB;
	Sat, 31 May 2025 04:53:53 +0300 (EEST)
Received: from mail-vs1-f49.google.com (mail-vs1-f49.google.com
 [209.85.217.49])
 by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 6D4A268DA85
 for <ffmpeg-devel@ffmpeg.org>; Sat, 31 May 2025 04:53:52 +0300 (EEST)
Received: by mail-vs1-f49.google.com with SMTP id
 ada2fe7eead31-4c4fa0bfca2so818013137.0
 for <ffmpeg-devel@ffmpeg.org>; Fri, 30 May 2025 18:53:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1748656431; x=1749261231; 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=XQtac4IAzADtNj1dBqHZ2s+AIff1G5mSpqPLTdHQ9D8=;
 b=iuFMnhgIwZtjCxHLaMWt9qHV5BA9evGYKMvKRkcNuhFj+h+S1yoAJz4RTqASzL/biE
 v4onEaLajrlXbnRyQeFCMtwlWQcns4t/gzl85s0nrDeZ1la2jos2wpH3XOvQenR5yF/r
 mYLXwWNAlYu6D9F5nq+YFna2ez0JGZzdNbKYRHq9PBiCtEKZ7wIGJkRKVZ0o+g3w37CU
 QMejE90fdpDkgwiH8z/ConHoqbW1Ts2MLFijglZErWrYOSFnzu7cBJqHYlY8r/YnFZ49
 vhkaLMPArMCKjvsLjzQknu7vhdPc02elXsFzBWcV4VoyYc+8iP6TkLqPmR0d5EOzYZth
 GZ7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1748656431; x=1749261231;
 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=XQtac4IAzADtNj1dBqHZ2s+AIff1G5mSpqPLTdHQ9D8=;
 b=wS+pOLj+h6gS/JfLhuJOFs0Dh55iCHwSmvo1pvp+9l+FwJA0LG2wblvGxWXuOGwv9b
 /woR7wgKXVmace2rarqGL1m/uAgjkn1Szdlbou5DSm3UpFUEkJcUqrK8GzHJwJkPAhyY
 9ZNrJz4g5F7GwsNDh45P+yIyIxHY4vUKoTlxGmZlD47y6w1QIOhW9uOPNV06LJ69ICr6
 0jPsrQQtzAwepTQd6clXssDRTTd230UzlTQHREFdq3oL+9a/aYqHQwUcPg6LRqdmCq8O
 gx0ruUNIPf0E//UZWv8fOmxh6n6wTI2ZctY1NR1KJwRPL7pN1GNYMJSQTuGHwW5EexTi
 0Lzg==
X-Gm-Message-State: AOJu0YxPurhar2AqoV+GvDkg7HUDX/vVBBwL59FDj0xIMcrvVse9Z06e
 iMtP0wl8LBKyFtitTXl8/1z5whHina1VjtBH04KaYVJLLe7WxAl2a4njFclpr7YjzIVPs5wzFRr
 SkI5log6voDGTcm81P+EE49zdvjahJ3EA74lo
X-Gm-Gg: ASbGncss5DS4uVKZHycKjSb7RjtoR1L+W0KAqjcc6dhcFzRAHv7GZPXG5PcW+xHDrHd
 yCPxlIX9rSI6HuX4aK8v8KGYAQodyp0/ySyaoFYP/RJKfyuAN1Jt41OOjDYI3lJEiITQAC+5gCn
 hQLCpS07hoyoWBIrPiLqQaa176B3zI83pieg==
X-Google-Smtp-Source: AGHT+IEmFsQnwG2zzsCu5ViAJehsaNt2lvgiMCntdTy21p+KlKa2tk8LkLQ5G6GxaeTQfiEfp88SZkGPdD8YFWKoZtc=
X-Received: by 2002:a05:6102:3a11:b0:4e6:d9f2:957c with SMTP id
 ada2fe7eead31-4e701bd3ed6mr217006137.23.1748656430702; Fri, 30 May 2025
 18:53:50 -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>
 <CAFXK13d4qY=75nbNqDVmh=rg_ACPpWLezfz5OpN=PkmJ7NTnfA@mail.gmail.com>
In-Reply-To: <CAFXK13d4qY=75nbNqDVmh=rg_ACPpWLezfz5OpN=PkmJ7NTnfA@mail.gmail.com>
From: Nuo Mi <nuomi2021@gmail.com>
Date: Sat, 31 May 2025 09:53:40 +0800
X-Gm-Features: AX0GCFs0bdx_qASnkwZtpqrHQGgz-kAXJ9eeL80FVFcCff-EdaEC8iMcfzHD1ko
Message-ID: <CAFXK13emh1RGQDh9QfRa4hEypbqUaNs8b=WXD=Q0XsOopJhR-Q@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/CAFXK13emh1RGQDh9QfRa4hEypbqUaNs8b=WXD=Q0XsOopJhR-Q@mail.gmail.com/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

T24gU2F0LCBNYXkgMjQsIDIwMjUgYXQgMTA6MDLigK9QTSBOdW8gTWkgPG51b21pMjAyMUBnbWFp
bC5jb20+IHdyb3RlOgoKPgo+Cj4gT24gRnJpLCBNYXkgOSwgMjAyNSBhdCAyOjM34oCvQU0gV3Ug
Smlhbmh1YSA8dG9xc3h3QG91dGxvb2suY29tPiB3cm90ZToKPgo+PiBBbmRyZWFzIFJoZWluaGFy
ZHQ6Cj4+ID4gdG9xc3h3QGdtYWlsLmNvbToKPj4gPj4gRnJvbTogV3UgSmlhbmh1YSA8dG9xc3h3
QG91dGxvb2suY29tPgo+PiA+Pgo+PiA+PiBTaWduZWQtb2ZmLWJ5OiBXdSBKaWFuaHVhIDx0b3Fz
eHdAb3V0bG9vay5jb20+Cj4+ID4+IC0tLQo+PiA+PiAgbGliYXZjb2RlYy9oMjc0LmMgfCAxNjMg
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiA+PiAgbGli
YXZjb2RlYy9oMjc0LmggfCAgIDcgKysKPj4gPj4gIDIgZmlsZXMgY2hhbmdlZCwgMTcwIGluc2Vy
dGlvbnMoKykKPj4gPj4KPj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaDI3NC5jIGIvbGli
YXZjb2RlYy9oMjc0LmMKPj4gPj4gaW5kZXggNTcwOTIwMDMyMi4uOWVkYzcwNTA0MiAxMDA2NDQK
Pj4gPj4gLS0tIGEvbGliYXZjb2RlYy9oMjc0LmMKPj4gPj4gKysrIGIvbGliYXZjb2RlYy9oMjc0
LmMKPj4gPj4gQEAgLTI2LDcgKzI2LDExIEBACj4+ID4+ICAgKi8KPj4gPj4KPj4gPj4gICNpbmNs
dWRlICJsaWJhdnV0aWwvYXZhc3NlcnQuaCIKPj4gPj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvYnN3
YXAuaCIKPj4gPj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvY3JjLmgiCj4+ID4+ICAjaW5jbHVkZSAi
bGliYXZ1dGlsL2ltZ3V0aWxzLmgiCj4+ID4+ICsjaW5jbHVkZSAibGliYXZ1dGlsL21kNS5oIgo+
PiA+PiArI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKPj4gPj4KPj4gPj4gICNpbmNsdWRlICJo
Mjc0LmgiCj4+ID4+Cj4+ID4+IEBAIC03OTAsMyArNzk0LDE2MiBAQCBzdGF0aWMgY29uc3QgaW50
OF90IFI2NFRbNjRdWzY0XSA9IHsKPj4gPj4gICAgICAgICAgIDE3LCAtMTYsICAxNSwgLTE0LCAg
MTMsIC0xMiwgIDExLCAtMTAsICAgOSwgIC04LCAgIDcsICAtNiwKPj4gIDQsICAtMywgICAyLCAg
LTEsCj4+ID4+ICAgICAgfQo+PiA+PiAgfTsKPj4gPj4gKwo+PiA+PiArc3RhdGljIGludCB2ZXJp
ZnlfcGxhbmVfbWQ1KHN0cnVjdCBBVk1ENSAqY3R4LAo+PiA+PiArICAgIGNvbnN0IHVpbnQ4X3Qg
KnNyYywgY29uc3QgaW50IHcsIGNvbnN0IGludCBoLCBjb25zdCBpbnQgc3RyaWRlLAo+PiA+PiAr
ICAgIGNvbnN0IHVpbnQ4X3QgKmV4cGVjdGVkKQo+PiA+PiArewo+PiA+PiArI2RlZmluZSBNRDVf
U0laRSAxNgo+PiA+PiArICAgIHVpbnQ4X3QgbWQ1W01ENV9TSVpFXTsKPj4gPj4gKyAgICBhdl9t
ZDVfaW5pdChjdHgpOwo+PiA+PiArICAgIGZvciAoaW50IGogPSAwOyBqIDwgaDsgaisrKSB7Cj4+
ID4+ICsgICAgICAgIGF2X21kNV91cGRhdGUoY3R4LCBzcmMsIHcpOwo+PiA+PiArICAgICAgICBz
cmMgKz0gc3RyaWRlOwo+PiA+PiArICAgIH0KPj4gPj4gKyAgICBhdl9tZDVfZmluYWwoY3R4LCBt
ZDUpOwo+PiA+PiArCj4+ID4+ICsgICAgaWYgKG1lbWNtcChtZDUsIGV4cGVjdGVkLCBNRDVfU0la
RSkpCj4+ID4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+PiA+PiArCj4+
ID4+ICsgICAgcmV0dXJuIDA7Cj4+ID4+ICt9Cj4+ID4+ICsKPj4gPj4gK3N0YXRpYyBpbnQgdmVy
aWZ5X3BsYW5lX2NyYyhjb25zdCB1aW50OF90ICpzcmMsIGNvbnN0IGludCB3LCBjb25zdAo+PiBp
bnQgaCwgY29uc3QgaW50IHN0cmlkZSwKPj4gPj4gKyAgICBjb25zdCB1aW50OF90ICpleHBlY3Rl
ZCkKPj4gPj4gK3sKPj4gPj4gKyAgICB1aW50MzJfdCBjcmMgPSAweDBGMUQ7ICAgICAvLyBDUkMt
MTYtQ0NJVFQtQVVHCj4+ID4+ICsgICAgY29uc3QgQVZDUkMgKmN0eCA9IGF2X2NyY19nZXRfdGFi
bGUoQVZfQ1JDXzE2X0NDSVRUKTsKPj4gPj4gKwo+PiA+PiArICAgIGZvciAoaW50IGogPSAwOyBq
IDwgaDsgaisrKSB7Cj4+ID4+ICsgICAgICAgIGNyYyA9IGF2X2NyYyhjdHgsIGNyYywgc3JjLCB3
KTsKPj4gPj4gKyAgICAgICAgc3JjICs9IHN0cmlkZTsKPj4gPj4gKyAgICB9Cj4+ID4+ICsgICAg
Y3JjID0gYXZfYnN3YXAxNihjcmMpOwo+PiA+PiArCj4+ID4+ICsgICAgaWYgKG1lbWNtcCgmY3Jj
LCBleHBlY3RlZCwgc2l6ZW9mKHVpbnQxNl90KSkpCj4+ID4KPj4gPiBUaGlzIHNlZW1zIGVuZGlh
bi1kZXBlbmRlbnQgKGFzIGFyZSB0aGUgb3RoZXIgY2hlY2tzKS4gV2h5IGRvbid0IHlvdQo+PiA+
IHNpbXBseSBwYXNzIHRoZSBwcm9wZXIgQ1JDIGFzIHVpbnQxNl90L3VpbnQzMl90IHBhcmFtZXRl
cj8KPj4gPgo+PiA+PiArICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPj4gPj4g
Kwo+PiA+PiArICAgIHJldHVybiAwOwo+PiA+PiArfQo+PiA+PiArCj4+ID4+ICsjZGVmaW5lIENB
TF9DSEVDS1NVTShwaXhlbCkgKGNoZWNrc3VtICsgKChwaXhlbCkgXiB4b3JfbWFzaykpCj4+ID4+
ICtzdGF0aWMgaW50IHZlcmlmeV9wbGFuZV9jaGVja3N1bShjb25zdCB1aW50OF90ICpzcmMsIGNv
bnN0IGludCB3LAo+PiBjb25zdCBpbnQgaCwgY29uc3QgaW50IHN0cmlkZSwgY29uc3QgaW50IHBz
LAo+PiA+PiArICAgIGNvbnN0IHVpbnQ4X3QgKmV4cGVjdGVkKQo+PiA+PiArewo+PiA+PiArICAg
IHVpbnQzMl90IGNoZWNrc3VtID0gMDsKPj4gPj4gKwo+PiA+PiArICAgIGZvciAoaW50IHkgPSAw
OyB5IDwgaDsgeSsrKSB7Cj4+ID4+ICsgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgdzsgeCsr
KSB7Cj4+ID4+ICsgICAgICAgICAgICBjb25zdCBpbnQgeG9yX21hc2sgPSAoeCAmIDB4RkYpIF4g
KHkgJiAweEZGKSBeICh4ID4+IDgpIF4KPj4gKHkgPj4gOCk7Cj4+ID4+ICsgICAgICAgICAgICBj
aGVja3N1bSA9IENBTF9DSEVDS1NVTShzcmNbeCA8PCBwc10pOwo+PiA+PiArICAgICAgICAgICAg
aWYgKHBzKQo+PiA+PiArICAgICAgICAgICAgICAgIGNoZWNrc3VtID0gQ0FMX0NIRUNLU1VNKHNy
Y1soeCA8PCBwcykgKyAxXSk7Cj4+ID4KPj4gPiBXaHkgZG9uJ3QgeW91IHVzZSBjaGVja3N1bSAr
PSBpbnN0ZWFkIG9mIHVzaW5nIGNoZWNrc3VtIGluIHRoZQo+PiA+IENBTF9DSEVDS1NVTSBtYWNy
byBpbiBhIGhhcmRjb2RlZCBtYW5uZXI/Cj4+ID4KPj4gPj4gKyAgICAgICAgfQo+PiA+PiArICAg
ICAgICBzcmMgKz0gc3RyaWRlOwo+PiA+PiArICAgIH0KPj4gPj4gKwo+PiA+PiArICAgIGlmIChj
aGVja3N1bSAhPSAqKHVpbnQzMl90KilleHBlY3RlZCkKPj4gPj4gKyAgICAgICAgcmV0dXJuIEFW
RVJST1JfSU5WQUxJRERBVEE7Cj4+ID4+ICsKPj4gPj4gKyAgICByZXR1cm4gMDsKPj4gPj4gK30K
Pj4gPj4gKwo+PiA+PiArc3RhdGljIGNvbnN0IHVpbnQ4X3QgKmdldF9wbGFuZV9oYXNoKGNvbnN0
IEgyNzRTRUlQaWN0dXJlSGFzaCAqaCwKPj4gY29uc3QgaW50IHBsYW5lKQo+PiA+PiArewo+PiA+
PiArICAgIGlmICghaC0+aGFzaF90eXBlKQo+PiA+PiArICAgICAgICByZXR1cm4gaC0+bWQ1W3Bs
YW5lXTsKPj4gPj4gKyAgICBpZiAoaC0+aGFzaF90eXBlID09IDEpCj4+ID4+ICsgICAgICAgIHJl
dHVybiAodWludDhfdCopJmgtPmNyY1twbGFuZV07Cj4+ID4+ICsgICAgcmV0dXJuICh1aW50OF90
KikmaC0+Y2hlY2tzdW1bcGxhbmVdOwo+PiA+PiArfQo+PiA+Cj4+ID4gVGhpcyBmdW5jdGlvbiBz
ZWVtcyBjb21wbGV0ZWx5IHVzZWxlc3M7IHlvdSBzaG91bGQgYmV0dGVyIHBhc3MgdGhlCj4+ID4g
cHJvcGVyIGV4cGVjdGVkIHZhbHVlIHRvIHRoZSBmdW5jdGlvbnMgZGlyZWN0bHkgKGJ5IHZhbHVl
IGZvciBub24tbWQ1KS4KPj4gPgo+PiA+PiArCj4+ID4+ICtlbnVtIHsKPj4gPj4gKyAgICBIQVNI
X01ENVNVTSwKPj4gPj4gKyAgICBIQVNIX0NSQywKPj4gPj4gKyAgICBIQVNIX0NIRUNLU1VNLAo+
PiA+PiArICAgIEhBU0hfTEFTVCA9IEhBU0hfQ0hFQ0tTVU0sCj4+ID4+ICt9Owo+PiA+PiArCj4+
ID4+ICtzdHJ1Y3QgSDI3NEhhc2hDb250ZXh0IHsKPj4gPj4gKyAgICBpbnQgdHlwZTsKPj4gPj4g
KyAgICBzdHJ1Y3QgQVZNRDUgKmN0eDsKPj4gPj4gK307Cj4+ID4+ICsKPj4gPj4gK2ludCBmZl9o
Mjc0X2hhc2hfZnJlZXAoSDI3NEhhc2hDb250ZXh0ICoqY3R4KQo+PiA+PiArewo+PiA+PiArICAg
IGlmIChjdHggJiYgKmN0eCkgewo+PiA+Cj4+ID4gRG9uJ3QgY2hlY2sgZm9yIGN0eC4gUGFzc2lu
ZyBhIE5VTEwgdG8gYSBmcmVlcC1mdW5jdGlvbiBpcyBpbnNhbmUuCj4+ID4KPj4gPj4gKyAgICAg
ICAgSDI3NEhhc2hDb250ZXh0ICpjID0gKmN0eDsKPj4gPj4gKyAgICAgICAgaWYgKGMtPmN0eCkK
Pj4gPj4gKyAgICAgICAgICAgIGF2X2ZyZWUoYy0+Y3R4KTsKPj4gPj4gKyAgICAgICAgYXZfZnJl
ZXAoY3R4KTsKPj4gPj4gKyAgICB9Cj4+ID4+ICsgICAgcmV0dXJuIDA7Cj4+ID4KPj4gPiBXaHkg
aXMgdGhpcyBmdW5jdGlvbiByZXR1cm5pbmcgYW55dGhpbmc/Cj4+ID4KPj4gPj4gK30KPj4gPj4g
Kwo+PiA+PiAraW50IGZmX2gyNzRfaGFzaF9pbml0KEgyNzRIYXNoQ29udGV4dCAqKmN0eCwgY29u
c3QgaW50IHR5cGUpCj4+ID4+ICt7Cj4+ID4+ICsgICAgSDI3NEhhc2hDb250ZXh0ICpjOwo+PiA+
PiArCj4+ID4+ICsgICAgaWYgKHR5cGUgPiBIQVNIX0xBU1QgfHwgIWN0eCkKPj4gPj4gKyAgICAg
ICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKPj4gPj4gKwo+PiA+PiArICAgIGMgPSAqY3R4Owo+
PiA+PiArICAgIGlmIChjKSB7Cj4+ID4+ICsgICAgICAgIGlmIChjLT50eXBlICE9IHR5cGUpIHsK
Pj4gPj4gKyAgICAgICAgICAgIGlmIChjLT50eXBlID09IEhBU0hfTUQ1U1VNKQo+PiA+PiArICAg
ICAgICAgICAgICAgIGF2X2ZyZWVwKCZjLT5jdHgpOwo+PiA+PiArICAgICAgICAgICAgYy0+dHlw
ZSA9IHR5cGU7Cj4+ID4+ICsgICAgICAgIH0KPj4gPj4gKyAgICB9IGVsc2Ugewo+PiA+PiArICAg
ICAgICAqY3R4ID0gYyA9IGF2X21hbGxvY3ooc2l6ZW9mKEgyNzRIYXNoQ29udGV4dCkpOwo+PiA+
Cj4+ID4gV2h5IGlzIHRoaXMgc2VwYXJhdGVseSBhbGxvY2F0ZWQ/Cj4+ID4KPj4gPj4gKyAgICAg
ICAgaWYgKCFjKQo+PiA+PiArICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPj4g
Pj4gKyAgICAgICAgYy0+dHlwZSA9IHR5cGU7Cj4+ID4+ICsgICAgfQo+PiA+PiArCj4+ID4+ICsg
ICAgaWYgKHR5cGUgPT0gSEFTSF9NRDVTVU0gJiYgIWMtPmN0eCkgewo+PiA+PiArICAgICAgICBj
LT5jdHggPSBhdl9tZDVfYWxsb2MoKTsKPj4gPj4gKyAgICAgICAgaWYgKCFjLT5jdHgpCj4+ID4+
ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+PiA+PiArICAgIH0KPj4gPj4g
Kwo+PiA+PiArICAgIHJldHVybiAwOwo+PiA+PiArfQo+PiA+PiArCj4+ID4+ICtpbnQgZmZfaDI3
NF9oYXNoX3ZlcmlmeShIMjc0SGFzaENvbnRleHQgKmMsIGNvbnN0IEgyNzRTRUlQaWN0dXJlSGFz
aAo+PiAqaGFzaCwKPj4gPj4gKyAgICBjb25zdCBBVkZyYW1lICpmcmFtZSwgY29uc3QgaW50IGNv
ZGVkX3dpZHRoLCBjb25zdCBpbnQKPj4gY29kZWRfaGVpZ2h0KQo+PiA+PiArewo+PiA+PiArICAg
IGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqZGVzYzsKPj4gPj4gKyAgICBpbnQgZXJyID0gMDsK
Pj4gPj4gKwo+PiA+PiArICAgIGlmICghYyB8fCAhaGFzaCB8fCAhZnJhbWUpCj4+ID4+ICsgICAg
ICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4+ID4+ICsKPj4gPj4gKyAgICBpZiAoYy0+dHlw
ZSAhPSBoYXNoLT5oYXNoX3R5cGUpCj4+ID4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZB
TCk7Cj4+ID4+ICsKPj4gPj4gKyAgICBkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChmcmFtZS0+
Zm9ybWF0KTsKPj4gPj4gKyAgICBpZiAoIWRlc2MpCj4+ID4+ICsgICAgICAgIHJldHVybiBBVkVS
Uk9SKEVJTlZBTCk7Cj4+ID4+ICsKPj4gPj4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlc2Mt
Pm5iX2NvbXBvbmVudHM7IGkrKykgewo+PiA+PiArICAgICAgICBjb25zdCBpbnQgdyAgICAgICAg
ICAgICA9IGkgPyAoY29kZWRfd2lkdGggID4+Cj4+IGRlc2MtPmxvZzJfY2hyb21hX3cpIDogY29k
ZWRfd2lkdGg7Cj4+ID4+ICsgICAgICAgIGNvbnN0IGludCBoICAgICAgICAgICAgID0gaSA/IChj
b2RlZF9oZWlnaHQgPj4KPj4gZGVzYy0+bG9nMl9jaHJvbWFfaCkgOiBjb2RlZF9oZWlnaHQ7Cj4+
ID4+ICsgICAgICAgIGNvbnN0IGludCBwcyAgICAgICAgICAgID0gZGVzYy0+Y29tcFtpXS5zdGVw
IC0gMTsKPj4gPj4gKyAgICAgICAgY29uc3QgdWludDhfdCAqZXhwZWN0ZWQgPSBnZXRfcGxhbmVf
aGFzaChoYXNoLCBpKTsKPj4gPj4gKyAgICAgICAgY29uc3QgdWludDhfdCAqc3JjICAgICAgPSBm
cmFtZS0+ZGF0YVtpXTsKPj4gPj4gKyAgICAgICAgY29uc3QgaW50IHN0cmlkZSAgICAgICAgPSBm
cmFtZS0+bGluZXNpemVbaV07Cj4+ID4+ICsKPj4gPj4gKyAgICAgICAgaWYgKGMtPnR5cGUgPT0g
SEFTSF9NRDVTVU0pCj4+ID4+ICsgICAgICAgICAgICBlcnIgPSB2ZXJpZnlfcGxhbmVfbWQ1KGMt
PmN0eCwgc3JjLCB3IDw8IHBzLCBoLCBzdHJpZGUsCj4+IGV4cGVjdGVkKTsKPj4gPj4gKyAgICAg
ICAgZWxzZSBpZiAoYy0+dHlwZSA9PSBIQVNIX0NSQykKPj4gPj4gKyAgICAgICAgICAgIGVyciA9
IHZlcmlmeV9wbGFuZV9jcmMoc3JjLCB3IDw8IHBzLCBoLCBzdHJpZGUsIGV4cGVjdGVkKTsKPj4g
Pj4gKyAgICAgICAgZWxzZSBpZiAoYy0+dHlwZSA9PSBIQVNIX0NIRUNLU1VNKQo+PiA+PiArICAg
ICAgICAgICAgZXJyID0gdmVyaWZ5X3BsYW5lX2NoZWNrc3VtKHNyYywgdywgaCwgc3RyaWRlLCBw
cywKPj4gZXhwZWN0ZWQpOwo+PiA+PiArICAgICAgICBpZiAoZXJyIDwgMCkKPj4gPj4gKyAgICAg
ICAgICAgIGdvdG8gZmFpbDsKPj4gPj4gKyAgICB9Cj4+ID4+ICsKPj4gPj4gK2ZhaWw6Cj4+ID4+
ICsgICAgcmV0dXJuIGVycjsKPj4gPj4gK30KPj4gPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv
aDI3NC5oIGIvbGliYXZjb2RlYy9oMjc0LmgKPj4gPj4gaW5kZXggZTE4MDNlZGFmMy4uZTJiYjFh
ZWM1NSAxMDA2NDQKPj4gPj4gLS0tIGEvbGliYXZjb2RlYy9oMjc0LmgKPj4gPj4gKysrIGIvbGli
YXZjb2RlYy9oMjc0LmgKPj4gPj4gQEAgLTY0LDYgKzY0LDggQEAgaW50IGZmX2gyNzRfYXBwbHlf
ZmlsbV9ncmFpbihBVkZyYW1lICpvdXQsIGNvbnN0Cj4+IEFWRnJhbWUgKmluLAo+PiA+PiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBIMjc0RmlsbUdyYWluRGF0YWJhc2UgKmRiLAo+PiA+
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkZpbG1HcmFpblBhcmFtcyAq
cGFyYW1zKTsKPj4gPj4KPj4gPj4gK3R5cGVkZWYgc3RydWN0IEgyNzRIYXNoQ29udGV4dCBIMjc0
SGFzaENvbnRleHQ7Cj4+ID4+ICsKPj4gPj4gIHR5cGVkZWYgc3RydWN0IEgyNzRTRUlQaWN0dXJl
SGFzaCB7Cj4+ID4+ICAgICAgaW50IHByZXNlbnQ7Cj4+ID4+ICAgICAgdW5pb24gewo+PiA+PiBA
QCAtNzQsNCArNzYsOSBAQCB0eXBlZGVmIHN0cnVjdCBIMjc0U0VJUGljdHVyZUhhc2ggewo+PiA+
PiAgICAgIHVpbnQ4X3QgaGFzaF90eXBlOwo+PiA+PiAgfSBIMjc0U0VJUGljdHVyZUhhc2g7Cj4+
ID4+Cj4+ID4+ICtpbnQgZmZfaDI3NF9oYXNoX2luaXQoSDI3NEhhc2hDb250ZXh0ICoqYywgaW50
IHR5cGUpOwo+PiA+PiAraW50IGZmX2gyNzRfaGFzaF92ZXJpZnkoSDI3NEhhc2hDb250ZXh0ICpj
LCBjb25zdCBIMjc0U0VJUGljdHVyZUhhc2gKPj4gKmhhc2gsCj4+ID4+ICsgICAgY29uc3QgQVZG
cmFtZSAqZnJhbWUsIGludCBjb2RlZF93aWR0aCwgaW50IGNvZGVkX2hlaWdodCk7Cj4+ID4+ICtp
bnQgZmZfaDI3NF9oYXNoX2ZyZWVwKEgyNzRIYXNoQ29udGV4dCAqKmMpOwo+PiA+PiArCj4+ID4+
ICAjZW5kaWYgLyogQVZDT0RFQ19IMjc0X0ggKi8KPj4KPj4gSGkgQW5kcmVhcywKPj4KPj4gVGhh
bmtzIGZvciB5b3VyIHJldmlld3MhIFRoZXkgaGVscCBhIGxvdC4gSSd2ZSB1cGRhdGVkIHRoZSB2
Mgo+PiBwYXRjaHNldCBiYXNlZCBvbiB5b3VyIGNvbW1lbnRzLiBXb3VsZCB5b3UgaGVscCB0byBy
ZXZpZXcgdGhlCj4+IHYyIHBhdGNoZXM/Cj4+Cj4gSGkgQW5kcmVhcywKPiBUaGFuayB5b3UgZm9y
IHRoZSByZXZpZXcuCj4KPiBIaSBBbmRyZWFzIGFuZCBhbGwsCj4gSSB3aWxsIHB1c2ggdGhpcyBu
ZXh0IHdlZWsgdW5sZXNzIHRoZXJlIGFyZSBhbnkgb2JqZWN0aW9ucy4KPgpBcHBsaWVkLgpUaGFu
a3MKCj4KPiBUaGFuayB5b3UuCj4KPj4KPj4gVGhhbmtzLAo+PiBKaWFuaHVhCj4+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGZmbXBlZy1kZXZlbCBt
YWlsaW5nIGxpc3QKPj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPj4gaHR0cHM6Ly9mZm1wZWcu
b3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4+Cj4+IFRvIHVuc3Vic2NyaWJlLCB2
aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcu
b3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+Pgo+Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZt
cGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8v
ZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwK
ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJl
Ii4K