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