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 B4DD747757 for ; Sun, 22 Oct 2023 09:21:57 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 34EF868C9E6; Sun, 22 Oct 2023 12:21:55 +0300 (EEST) Received: from mail-vk1-f174.google.com (mail-vk1-f174.google.com [209.85.221.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7840A68B70F; Sun, 22 Oct 2023 12:21:44 +0300 (EEST) Received: by mail-vk1-f174.google.com with SMTP id 71dfb90a1353d-49d6bd360f8so801873e0c.2; Sun, 22 Oct 2023 02:21:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697966503; x=1698571303; darn=ffmpeg.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=FhqjEhoRsmEWPuSXtxs/xr5AyOQNfAEWAo/Xlo3jjZY=; b=H4xbWvpQULbdB4Z3AOPZi7nPtdQ/i/VYAw14FN6KPMoIhJKEeAu757zH3FODV/2OFU FtyeBAIUWl0jFhgQVCpIKLhSb0hPtsfUgRJq1ahDOmWxpvTR7WsAhFUG0wVw71amCuZ2 zcE4nF++UfVeMkBh8YfpibwEhmeCTKx+O396TOrr4lyG+t3Tudo1R/mjcQb7EeOAOz+2 l0FV5Mqu4v/6DcU4y4nrlIdRel2p/9TLONgzo0xmnwnuCedqt0jO1v74LbB2h5s+GBqE IsjiYJxZWE9qSr/ZvzkOOQNh3GCMAgG3A3zGQzXhHTPxWlsjYtLtkFXAhGVgZmquNh50 H3mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697966503; x=1698571303; h=cc: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=FhqjEhoRsmEWPuSXtxs/xr5AyOQNfAEWAo/Xlo3jjZY=; b=F66DTdE373u+VumdXdYmEVmm2578I/XyCS7DebvTXRtXqNeNKxb7QgmbgFJpewNBwa j+C1/IuL1u5LiosPif3aeW3k2oC9kBHPK/cdW90h7yJppVBqsTZYfUbulI4Bv0DvHU/m msg7c9Co4RdJUlEeDeA4pSDcuaAHCrQCKq0d5InvCBwOk/ObqFcBB56OAByhIHBEnkkU 5uoPS4lFVkQlwonP1Uz/SVB8ta9+0/m0yH5AKi/2q1/gmAIdXQ3Pj6iT5VfajzsmLCBU Og6n1ms2dwAIxABU0RZ4cfLxoBvxjPmQzlhX9+GAZ0BxA2OfqSTIB3fF0qEuvnWoiTq4 hs1g== X-Gm-Message-State: AOJu0YzBbS2tW6DuXTdfZ2p9s7QhTnUdnVTPAn+PKBwaFGUppLmz9NqS qhNp72LHXKBPicWbTq2TRrJEwp3LcT2pNpa4i7+1uZJ0w30= X-Google-Smtp-Source: AGHT+IEsbv3XTbm/cFdRFUTaFF7PAsj4roy7a3c7xhkMWqeLlmk8TyiApomcbvvMhPfFFSaTqNfWnj049M7RKTZZp/E= X-Received: by 2002:a05:6122:a03:b0:490:e790:a15b with SMTP id 3-20020a0561220a0300b00490e790a15bmr5869602vkn.10.1697966502658; Sun, 22 Oct 2023 02:21:42 -0700 (PDT) MIME-Version: 1.0 References: <20230906221928.9C116410B55@natalya.videolan.org> <20231021001255.GD2105706@pb2> <20231021225640.GS3543730@pb2> <20231022070612.GV3543730@pb2> In-Reply-To: <20231022070612.GV3543730@pb2> From: Paul B Mahol Date: Sun, 22 Oct 2023 11:21:28 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [FFmpeg-cvslog] avcodec/magicyuv: add vlc multi support 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: cc@ffmpeg.org 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: T24gU3VuLCBPY3QgMjIsIDIwMjMgYXQgOTowNuKAr0FNIE1pY2hhZWwgTmllZGVybWF5ZXIgPG1p Y2hhZWxAbmllZGVybWF5ZXIuY2M+Cndyb3RlOgoKPiBPbiBTdW4sIE9jdCAyMiwgMjAyMyBhdCAx Mjo1Njo0MEFNICswMjAwLCBNaWNoYWVsIE5pZWRlcm1heWVyIHdyb3RlOgo+ID4gT24gU2F0LCBP Y3QgMjEsIDIwMjMgYXQgMTE6MDA6MTlBTSArMDIwMCwgUGF1bCBCIE1haG9sIHdyb3RlOgo+ID4g PiBPbiBTYXQsIE9jdCAyMSwgMjAyMyBhdCAyOjEz4oCvQU0gTWljaGFlbCBOaWVkZXJtYXllciA8 Cj4gbWljaGFlbEBuaWVkZXJtYXllci5jYz4KPiA+ID4gd3JvdGU6Cj4gPiA+CgoKWW91IGhhdmUg ZW5vdWdoIHNraWxscyB0byBmaXggdGhpcywKCkdvb2QgbHVjayEKCgoKPgo+ID4gPiA+IE9uIFdl ZCwgU2VwIDA2LCAyMDIzIGF0IDEwOjE5OjI3UE0gKzAwMDAsIFBhdWwgQiBNYWhvbCB3cm90ZToK PiA+ID4gPiA+IGZmbXBlZyB8IGJyYW5jaDogbWFzdGVyIHwgUGF1bCBCIE1haG9sIDxvbmVtZGFA Z21haWwuY29tPiB8IE1vbgo+IEF1ZyAyOAo+ID4gPiA+IDEyOjIwOjE1IDIwMjMgKzAyMDB8IFs4 YjczOTFjYjVmZjk0Y2U5NDYxMmZkYTY5MzkyYTk1ZDdhYjFmZmQwXSB8Cj4gPiA+ID4gY29tbWl0 dGVyOiBQYXVsIEIgTWFob2wKPiA+ID4gPiA+Cj4gPiA+ID4gPiBhdmNvZGVjL21hZ2ljeXV2OiBh ZGQgdmxjIG11bHRpIHN1cHBvcnQKPiA+ID4gPiA+Cj4gPiA+ID4gPiBHaXZlcyBuaWNlIHNwZWVk IGJvb3N0LCBkZXBlbmRpbmcgb24gZW5jb2RlZCBjb250ZW50IGl0IGdvZXMgZnJvbQo+ID4gPiA+ ID4gMzAlIHRvIDYwJSBmYXN0ZXIuCj4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+Cj4gaHR0 cDovL2dpdC52aWRlb2xhbi5vcmcvZ2l0d2ViLmNnaS9mZm1wZWcuZ2l0Lz9hPWNvbW1pdDtoPThi NzM5MWNiNWZmOTRjZTk0NjEyZmRhNjkzOTJhOTVkN2FiMWZmZDAKPiA+ID4gPiA+IC0tLQo+ID4g PiA+ID4KPiA+ID4gPiA+ICBsaWJhdmNvZGVjL21hZ2ljeXV2LmMgfCA2NQo+ID4gPiA+ICsrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4g IDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKPiA+ID4g PiA+Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9tYWdpY3l1di5jIGIvbGliYXZj b2RlYy9tYWdpY3l1di5jCj4gPiA+ID4gPiBpbmRleCA3ODk4Y2Q1YmU0Li5iYmFmMTRkMGUwIDEw MDY0NAo+ID4gPiA+ID4gLS0tIGEvbGliYXZjb2RlYy9tYWdpY3l1di5jCj4gPiA+ID4gPiArKysg Yi9saWJhdmNvZGVjL21hZ2ljeXV2LmMKPiA+ID4gPiA+IEBAIC0zNCw2ICszNCw4IEBACj4gPiA+ ID4gPiAgI2luY2x1ZGUgImxvc3NsZXNzX3ZpZGVvZHNwLmgiCj4gPiA+ID4gPiAgI2luY2x1ZGUg InRocmVhZC5oIgo+ID4gPiA+ID4KPiA+ID4gPiA+ICsjZGVmaW5lIFZMQ19CSVRTIDEyCj4gPiA+ ID4gPiArCj4gPiA+ID4gPiAgdHlwZWRlZiBzdHJ1Y3QgU2xpY2Ugewo+ID4gPiA+ID4gICAgICB1 aW50MzJfdCBzdGFydDsKPiA+ID4gPiA+ICAgICAgdWludDMyX3Qgc2l6ZTsKPiA+ID4gPiA+IEBA IC02NywxMyArNjksMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgTWFnaWNZVVZDb250ZXh0IHsKPiA+ID4g PiA+ICAgICAgU2xpY2UgICAgICAgICAgICAqc2xpY2VzWzRdOyAgICAgIC8vIHNsaWNlIGJpdHN0 cmVhbQo+IHBvc2l0aW9ucyBmb3IKPiA+ID4gPiBlYWNoIHBsYW5lCj4gPiA+ID4gPiAgICAgIHVu c2lnbmVkIGludCAgICAgIHNsaWNlc19zaXplWzRdOyAvLyBzbGljZSBzaXplcyBmb3IgZWFjaAo+ IHBsYW5lCj4gPiA+ID4gPiAgICAgIFZMQyAgICAgICAgICAgICAgIHZsY1s0XTsgICAgICAgICAv LyBWTEMgZm9yIGVhY2ggcGxhbmUKPiA+ID4gPiA+ICsgICAgVkxDX01VTFRJICAgICAgICAgbXVs dGlbNF07ICAgICAgIC8vIEJ1ZmZlciBmb3Igam9pbnQgVkxDIGRhdGEKPiA+ID4gPiA+ICAgICAg aW50ICgqbWFneV9kZWNvZGVfc2xpY2UpKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgdm9pZCAqdGRh dGEsCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaiwgaW50IHRo cmVhZG5yKTsKPiA+ID4gPiA+ICAgICAgTExWaWREU1BDb250ZXh0ICAgbGx2aWRkc3A7Cj4gPiA+ ID4gPiAgfSBNYWdpY1lVVkNvbnRleHQ7Cj4gPiA+ID4gPgo+ID4gPiA+ID4gIHN0YXRpYyBpbnQg aHVmZl9idWlsZChjb25zdCB1aW50OF90IGxlbltdLCB1aW50MTZfdCBjb2Rlc19wb3NbMzNdLAo+ ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICBWTEMgKnZsYywgaW50IG5iX2VsZW1zLCB2 b2lkICpsb2djdHgpCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgIFZMQyAqdmxjLCBW TENfTVVMVEkgKm11bHRpLCBpbnQgbmJfZWxlbXMsCj4gdm9pZAo+ID4gPiA+ICpsb2djdHgpCj4g PiA+ID4gPiAgewo+ID4gPiA+ID4gICAgICBIdWZmRW50cnkgaGVbNDA5Nl07Cj4gPiA+ID4gPgo+ ID4gPiA+ID4gQEAgLTg0LDcgKzg3LDggQEAgc3RhdGljIGludCBodWZmX2J1aWxkKGNvbnN0IHVp bnQ4X3QgbGVuW10sCj4gdWludDE2X3QKPiA+ID4gPiBjb2Rlc19wb3NbMzNdLAo+ID4gPiA+ID4g ICAgICAgICAgaGVbLS1jb2Rlc19wb3NbbGVuW2ldXV0gPSAoSHVmZkVudHJ5KXsgbGVuW2ldLCBp IH07Cj4gPiA+ID4gPgo+ID4gPiA+ID4gICAgICBmZl9mcmVlX3ZsYyh2bGMpOwo+ID4gPiA+ID4g LSAgICByZXR1cm4gZmZfaW5pdF92bGNfZnJvbV9sZW5ndGhzKHZsYywgRkZNSU4oaGVbMF0ubGVu LCAxMiksCj4gbmJfZWxlbXMsCj4gPiA+ID4gPiArICAgIGZmX2ZyZWVfdmxjX211bHRpKG11bHRp KTsKPiA+ID4gPiA+ICsgICAgcmV0dXJuIGZmX2luaXRfdmxjX211bHRpX2Zyb21fbGVuZ3Rocyh2 bGMsIG11bHRpLAo+IEZGTUlOKGhlWzBdLmxlbiwKPiA+ID4gPiBWTENfQklUUyksIG5iX2VsZW1z LCBuYl9lbGVtcywKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmaGVbMF0ubGVuLCBzaXplb2YoaGVbMF0pLAo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZoZVswXS5zeW0sIHNpemVvZihoZVswXSksCj4gPiA+ID4gc2l6 ZW9mKGhlWzBdLnN5bSksCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMCwgMCwgbG9nY3R4KTsKPiA+ID4gPiA+IEBAIC0xMTEsNiArMTE1LDIyIEBAIHN0YXRp YyB2b2lkIG1hZ2ljeXV2X21lZGlhbl9wcmVkMTYodWludDE2X3QKPiAqZHN0LAo+ID4gPiA+IGNv bnN0IHVpbnQxNl90ICpzcmMxLAo+ID4gPiA+ID4gICAgICAqbGVmdF90b3AgPSBsdDsKPiA+ID4g PiA+ICB9Cj4gPiA+ID4gPgo+ID4gPiA+ID4gKyNkZWZpbmUgUkVBRF9QTEFORShkc3QsIHBsYW5l LCBiLCBjKSBcCj4gPiA+ID4gPiAreyBcCj4gPiA+ID4gPiArICAgIHggPSAwOyBcCj4gPiA+ID4g PiArICAgIGZvciAoOyBDQUNIRURfQklUU1RSRUFNX1JFQURFUiAmJiB4IDwgd2lkdGgtYyAmJgo+ IGdldF9iaXRzX2xlZnQoJmdiKQo+ID4gPiA+ID4gMDspIHtcCj4gPiA+ID4gPiArICAgICAgICBy ZXQgPSBnZXRfdmxjX211bHRpKCZnYiwgKHVpbnQ4X3QgKilkc3QgKyB4ICogYiwgbXVsdGksIFwK PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmxjLCB2bGNfYml0cywgMyk7 IFwKPiA+ID4gPiA+ICsgICAgICAgIGlmIChyZXQgPiAwKSBcCj4gPiA+ID4gPiArICAgICAgICAg ICAgeCArPSByZXQ7IFwKPiA+ID4gPiA+ICsgICAgICAgIGlmIChyZXQgPD0gMCkgXAo+ID4gPiA+ ID4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOyBcCj4gPiA+ID4gPiAr ICAgIH0gXAo+ID4gPiA+ID4gKyAgICBmb3IgKDsgeCA8IHdpZHRoICYmIGdldF9iaXRzX2xlZnQo JmdiKSA+IDA7IHgrKykgXAo+ID4gPiA+ID4gKyAgICAgICAgZHN0W3hdID0gZ2V0X3ZsYzIoJmdi LCB2bGMsIHZsY19iaXRzLCAzKTsgXAo+ID4gPiA+ID4gKyAgICBkc3QgKz0gc3RyaWRlOyBcCj4g PiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIHN0YXRpYyBpbnQgbWFneV9kZWNvZGVf c2xpY2UxMChBVkNvZGVjQ29udGV4dCAqYXZjdHgsIHZvaWQgKnRkYXRhLAo+ID4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaiwgaW50IHRocmVhZG5yKQo+ID4gPiA+ ID4gIHsKPiA+ID4gPiA+IEBAIC0xMzAsNiArMTUwLDkgQEAgc3RhdGljIGludCBtYWd5X2RlY29k ZV9zbGljZTEwKEFWQ29kZWNDb250ZXh0Cj4gPiA+ID4gKmF2Y3R4LCB2b2lkICp0ZGF0YSwKPiA+ ID4gPiA+ICAgICAgICAgIGludCBzaGVpZ2h0ID0gQVZfQ0VJTF9SU0hJRlQocy0+c2xpY2VfaGVp Z2h0LAo+IHMtPnZzaGlmdFtpXSk7Cj4gPiA+ID4gPiAgICAgICAgICBwdHJkaWZmX3QgZmFrZV9z dHJpZGUgPSAocC0+bGluZXNpemVbaV0gLyAyKSAqICgxICsKPiBpbnRlcmxhY2VkKTsKPiA+ID4g PiA+ICAgICAgICAgIHB0cmRpZmZfdCBzdHJpZGUgPSBwLT5saW5lc2l6ZVtpXSAvIDI7Cj4gPiA+ ID4gPiArICAgICAgICBjb25zdCBWTENfTVVMVElfRUxFTSAqY29uc3QgbXVsdGkgPSBzLT5tdWx0 aVtpXS50YWJsZTsKPiA+ID4gPiA+ICsgICAgICAgIGNvbnN0IFZMQ0VsZW0gKmNvbnN0IHZsYyA9 IHMtPnZsY1tpXS50YWJsZTsKPiA+ID4gPiA+ICsgICAgICAgIGNvbnN0IGludCB2bGNfYml0cyA9 IHMtPnZsY1tpXS5iaXRzOwo+ID4gPiA+ID4gICAgICAgICAgaW50IGZsYWdzLCBwcmVkOwo+ID4g PiA+ID4gICAgICAgICAgaW50IHJldCA9IGluaXRfZ2V0X2JpdHM4KCZnYiwgcy0+YnVmICsKPiBz LT5zbGljZXNbaV1bal0uc3RhcnQsCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcy0+c2xpY2VzW2ldW2pdLnNpemUpOwo+ID4gPiA+ID4gQEAgLTE1MSwyMCArMTc0 LDggQEAgc3RhdGljIGludCBtYWd5X2RlY29kZV9zbGljZTEwKEFWQ29kZWNDb250ZXh0Cj4gPiA+ ID4gKmF2Y3R4LCB2b2lkICp0ZGF0YSwKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgZHN0ICs9 IHN0cmlkZTsKPiA+ID4gPiA+ICAgICAgICAgICAgICB9Cj4gPiA+ID4gPiAgICAgICAgICB9IGVs c2Ugewo+ID4gPiA+ID4gLSAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBoZWlnaHQ7IGsrKykg ewo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICBmb3IgKHggPSAwOyB4IDwgd2lkdGg7IHgrKykg ewo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgaW50IHBpeDsKPiA+ID4gPiA+IC0gICAg ICAgICAgICAgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KCZnYikgPD0gMCkKPiA+ID4gPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiA+ID4g PiA+IC0KPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgIHBpeCA9IGdldF92bGMyKCZnYiwg cy0+dmxjW2ldLnRhYmxlLAo+ID4gPiA+IHMtPnZsY1tpXS5iaXRzLCAzKTsKPiA+ID4gPiA+IC0g ICAgICAgICAgICAgICAgICAgIGlmIChwaXggPCAwKQo+ID4gPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwo+ID4gPiA+ID4gLQo+ID4gPiA+ ID4gLSAgICAgICAgICAgICAgICAgICAgZHN0W3hdID0gcGl4Owo+ID4gPiA+ID4gLSAgICAgICAg ICAgICAgICB9Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgIGRzdCArPSBzdHJpZGU7Cj4gPiA+ ID4gPiAtICAgICAgICAgICAgfQo+ID4gPiA+ID4gKyAgICAgICAgICAgIGZvciAoayA9IDA7IGsg PCBoZWlnaHQ7IGsrKykKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgUkVBRF9QTEFORShkc3Qs IGksIDIsIDMpCj4gPiA+ID4gPiAgICAgICAgICB9Cj4gPiA+ID4gPgo+ID4gPiA+ID4gICAgICAg ICAgc3dpdGNoIChwcmVkKSB7Cj4gPiA+ID4gPiBAQCAtMjYxLDYgKzI3Miw5IEBAIHN0YXRpYyBp bnQgbWFneV9kZWNvZGVfc2xpY2UoQVZDb2RlY0NvbnRleHQKPiAqYXZjdHgsCj4gPiA+ID4gdm9p ZCAqdGRhdGEsCj4gPiA+ID4gPiAgICAgICAgICBwdHJkaWZmX3QgZmFrZV9zdHJpZGUgPSBwLT5s aW5lc2l6ZVtpXSAqICgxICsgaW50ZXJsYWNlZCk7Cj4gPiA+ID4gPiAgICAgICAgICBwdHJkaWZm X3Qgc3RyaWRlID0gcC0+bGluZXNpemVbaV07Cj4gPiA+ID4gPiAgICAgICAgICBjb25zdCB1aW50 OF90ICpzbGljZSA9IHMtPmJ1ZiArIHMtPnNsaWNlc1tpXVtqXS5zdGFydDsKPiA+ID4gPiA+ICsg ICAgICAgIGNvbnN0IFZMQ19NVUxUSV9FTEVNICpjb25zdCBtdWx0aSA9IHMtPm11bHRpW2ldLnRh YmxlOwo+ID4gPiA+ID4gKyAgICAgICAgY29uc3QgVkxDRWxlbSAqY29uc3QgdmxjID0gcy0+dmxj W2ldLnRhYmxlOwo+ID4gPiA+ID4gKyAgICAgICAgY29uc3QgaW50IHZsY19iaXRzID0gcy0+dmxj W2ldLmJpdHM7Cj4gPiA+ID4gPiAgICAgICAgICBpbnQgZmxhZ3MsIHByZWQ7Cj4gPiA+ID4gPgo+ ID4gPiA+ID4gICAgICAgICAgZmxhZ3MgPSBieXRlc3RyZWFtX2dldF9ieXRlKCZzbGljZSk7Cj4g PiA+ID4gPiBAQCAtMjgwLDIwICsyOTQsOCBAQCBzdGF0aWMgaW50IG1hZ3lfZGVjb2RlX3NsaWNl KEFWQ29kZWNDb250ZXh0Cj4gKmF2Y3R4LAo+ID4gPiA+IHZvaWQgKnRkYXRhLAo+ID4gPiA+ID4g ICAgICAgICAgICAgIGlmIChyZXQgPCAwKQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICByZXR1 cm4gcmV0Owo+ID4gPiA+ID4KPiA+ID4gPiA+IC0gICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwg aGVpZ2h0OyBrKyspIHsKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgZm9yICh4ID0gMDsgeCA8 IHdpZHRoOyB4KyspIHsKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgIGludCBwaXg7Cj4g PiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0X2JpdHNfbGVmdCgmZ2IpIDw9IDAp Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICBwaXggPSBn ZXRfdmxjMigmZ2IsIHMtPnZsY1tpXS50YWJsZSwKPiA+ID4gPiBzLT52bGNbaV0uYml0cywgMyk7 Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICBpZiAocGl4IDwgMCkKPiA+ID4gPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKPiA+ID4g PiA+IC0KPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgIGRzdFt4XSA9IHBpeDsKPiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgfQo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICBkc3QgKz0g c3RyaWRlOwo+ID4gPiA+ID4gLSAgICAgICAgICAgIH0KPiA+ID4gPiA+ICsgICAgICAgICAgICBm b3IgKGsgPSAwOyBrIDwgaGVpZ2h0OyBrKyspCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgIFJF QURfUExBTkUoZHN0LCBpLCAxLCA1KQo+ID4gPiA+ID4gICAgICAgICAgfQo+ID4gPiA+ID4KPiA+ ID4gPiA+ICAgICAgICAgIHN3aXRjaCAocHJlZCkgewo+ID4gPiA+Cj4gPiA+ID4gV2hvIHJldmll d2VkIHRoaXMgPwo+ID4gPiA+Cj4gPiA+ID4gVGhpcyBpcyBhIHN0cmFpZ2h0IG91dCBvZiBhcnJh eSB3cml0ZQo+ID4gPiA+IHdyaXRpbmcgOCBieXRlcyB3aGlsZSB0aGUgY2hlY2sgYXNzdW1lcyBp dHMgbWF4IDUKPiA+ID4gPgo+ID4gPgo+ID4gPiBXaHkgYXJlIHlvdSBiZWNvbWluZyBzbyBhZ2dy ZXNzaXZlPwo+ID4KPiA+IEkgb2JqZWN0ZWQgdG8gdGhpcyBwYXRjaHNldCBiZWNhdXNlIG9mIGNv cHkgYW5kIHBhc3RlZCAoZHVwbGljYXRlZCkgY29kZSwKPgo+IGFzIGl0IHdhcyBkaXNwdXRlZCwg aGVyZXMgdGhlIGxpbms6Cj4gaHR0cHM6Ly9saXN0cy5mZm1wZWcub3JnL3BpcGVybWFpbC9mZm1w ZWctZGV2ZWwvMjAyMy1TZXB0ZW1iZXIvMzE0NDE0Lmh0bWwKPgo+Cj4gPiB5b3UgaWdub3JlZCB0 aGlzIG9iamVjdGlvbiBhbmQgcHVzaGVkIGl0IGFueXdheS4gTm93IGl0cyBmb3VuZCBvdXQgdGhh dAo+ID4gaXQgY29udGFpbnMgYSBvdXQgb2YgYXJyYXkgd3JpdGUuIEFmdGVyIGEgRE9TIHZ1bG5l cmFiaWxpdHkgd2FzIGZvdW5kCj4gPiBwcmV2aW9zdWx5IGluIGl0Lgo+Cj4gWy4uLl0KPgo+IHRo eAo+Cj4gLS0KPiBNaWNoYWVsICAgICBHbnVQRyBmaW5nZXJwcmludDogOUZGMjEyOEIxNDdFRjY3 MzBCQURGMTMzNjExRUM3ODcwNDBCMEZBQgo+Cj4gTWFueSB0aGF0IGxpdmUgZGVzZXJ2ZSBkZWF0 aC4gQW5kIHNvbWUgdGhhdCBkaWUgZGVzZXJ2ZSBsaWZlLiBDYW4geW91IGdpdmUKPiBpdCB0byB0 aGVtPyBUaGVuIGRvIG5vdCBiZSB0b28gZWFnZXIgdG8gZGVhbCBvdXQgZGVhdGggaW4ganVkZ2Vt ZW50LiBGb3IKPiBldmVuIHRoZSB2ZXJ5IHdpc2UgY2Fubm90IHNlZSBhbGwgZW5kcy4gLS0gR2Fu ZGFsZgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0 cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4KPiBUbyB1bnN1 YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVz dEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxp c3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz dGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3Ig ZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4K