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 512FB4DFAF for <ffmpegdev@gitmailbox.com>; Sun, 27 Apr 2025 02:43:01 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8099768B5A9; Sun, 27 Apr 2025 05:42:57 +0300 (EEST) Received: from mail-vk1-f182.google.com (mail-vk1-f182.google.com [209.85.221.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 40EF868807C for <ffmpeg-devel@ffmpeg.org>; Sun, 27 Apr 2025 05:42:50 +0300 (EEST) Received: by mail-vk1-f182.google.com with SMTP id 71dfb90a1353d-51eb1818d4fso5093821e0c.1 for <ffmpeg-devel@ffmpeg.org>; Sat, 26 Apr 2025 19:42:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745721768; x=1746326568; 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=jsd0td6LjN1u1eIt7LDjr4Q1LHBBZ3jXzcPa84KDT1I=; b=WYq9aDKB9pdKBq+af4anYg0gBd/woZCnzN3nNS8/yJwYDjX9HxoD2Hc1nO2yagRc3J 7rOGSX2kTB0tcccFC9KnsRNwQ5Vxnyx3mOqoxMbvNIe4wlWPXq658r3biUoPJe0XjZAX 5uVLjK9FoOPdxfKlG4gNCRsBZGraZYdRT68rOJN5Isxe84QepgsMqLuiUWYnbZlHdRG6 1L35//Fu1TEM4oxcQ0zs1xJzZslNrFQxiV07HsQuDnn1yTQC1CERlVRUWCqCsa89Mq4q SL7wZhfxQqp4FNNC35F7MhBNP1XpGxwsSE6vvlXyp3P1rRzJiHY7HhFwCvt7O7N0MIbw NIVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745721768; x=1746326568; 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=jsd0td6LjN1u1eIt7LDjr4Q1LHBBZ3jXzcPa84KDT1I=; b=bk92sBu0P/ne/wCSlHiY9cNizdAE1vRxetOQ26IL9vU5DRBcyzB/Fcg8vY+fsiRX8j EoKpDLsOwqFDIUIDjTH1Tl5F2IgkCKcYTJzrhY9i296EuVAppU+VVxRqQosRk2d+K6Ui l6m+km1MctY1ORBeISWMIT2Gio6AhAU6uHIuOBKazeLAIIwOccSIrPFKVRTwK8BMmsBL nNclpZeKc4IFEL0PDMQATHqWIip8dg5eKvEIsXgfwrzlXUrrxI4P8CnWm1Rn+YCRAC7B ee2O96pywS3vQ6TgOVd7tJgVhklYRfoKHKsgOZLqjWr19kyJ4UeJCxM5/7XnwqnNYNo0 GPeg== X-Gm-Message-State: AOJu0YxezPhLSTsMP3JXf6JfxyncnT586bYl/76D3rHqUKtoPqH564vX zzSFdPauE2L/Kyl6wQ72M85hx2ScgbOpWKv48hh0s0UCL2ZtdKNRhTy9aE50yhANrYj3UuTXADd EY2btXu/9DzYwL5SfCjD/pzhSRi3yIFK4 X-Gm-Gg: ASbGncsStcxUSdpNCEMJZR7cK/XgndID5pMyPxjhVijkXOLtlWroc/a0xd+/IShMrUp TFR756m3zLVg7TOhjtyao22zuylebl0EQf9dtPWdqdv7+j3lTJQZtRb0yba22U5kHLJiwsAp2aA EMYTFKpwIOQHFq/3z+egUK X-Google-Smtp-Source: AGHT+IFG0FqxCaO3lqC3cPd4jzRUib8VdkD/bLY1nEKdUP2bqC0+HveUQIkMBeRf4SgjJEhBirV74TuNCry2/KEbjEY= X-Received: by 2002:a05:6122:30a7:b0:526:2356:f3fb with SMTP id 71dfb90a1353d-52a89f43194mr5173400e0c.11.1745721768555; Sat, 26 Apr 2025 19:42:48 -0700 (PDT) MIME-Version: 1.0 References: <20250418143949.24285-1-post@frankplowman.com> In-Reply-To: <20250418143949.24285-1-post@frankplowman.com> From: Nuo Mi <nuomi2021@gmail.com> Date: Sun, 27 Apr 2025 10:42:38 +0800 X-Gm-Features: ATxdqUHsScfOL88gzJcjyrMuzFmwzkQ6IyIQU97jSL5WnGoCBGk67sGwzm4QzuM Message-ID: <CAFXK13eznzQam3KCwdvM9GNA+EsO60-xiwuXS7dxrSRmsxwCyA@mail.gmail.com> To: Frank Plowman <post@frankplowman.com> X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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> Cc: 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/CAFXK13eznzQam3KCwdvM9GNA+EsO60-xiwuXS7dxrSRmsxwCyA@mail.gmail.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> T24gRnJpLCBBcHIgMTgsIDIwMjUgYXQgMTA6NDDigK9QTSBGcmFuayBQbG93bWFuIDxwb3N0QGZy YW5rcGxvd21hbi5jb20+Cndyb3RlOgoKPiBJbiBkNWRiY2MwMGQ4ODlmYjE3OTQ4YjAyNWE0Njhi MDBkZGJlYTllMDU4LCBpdCB3YXMgaG9wZWQgdGhhdCBkZXRlY3Rpb24KPiBvZiBzdWJwaWN0dXJl IG92ZXJsYXBzIGNvdWxkIGJlIHBlcmZvcm1lZCBhdCB0aGUgdGlsZSBsZXZlbCwgc28gYXMgdG8K PiBhdm9pZCBpbnRyb2R1Y2luZyBwZXItQ1RVIGNoZWNrcy4gVW5mb3J0dW5hdGVseSBzaW5jZSB0 aGF0IHBhdGNoLAo+IGZ1enppbmcgaGFzIGluZGljYXRlZCB0aGVyZSBhcmUgc29tZSBzdHJ1Y3R1 cmVzIGludm9sdmluZwo+IHBwc19zdWJwaWNfb25lX29yX21vcmVfdGlsZXNfc2xpY2Ugd2hlcmUg dGlsZS1sZXZlbCBjaGVja2luZyBpcyBub3QKPiBzdWZmaWNpZW50LiAgUGVyZm9ybWluZyB0aGUg Y2hlY2sgYXQgdGhlIENUVSBsZXZlbCBzaG91bGQgKHRvdWNoIHdvb2QpCj4gYmUgdGhlIGJlLWFs bCBhbmQgYW5kLWFsbCBvZiB0aGlzLCBhcyBDVFVzIGFyZSB0aGUgbG93ZXN0IGNvbW1vbgo+IGRl bm9taW5hdG9yIG9mIHRoZSBwaWN0dXJlIHBhcnRpdGlvbmluZy4KPgpIaSBGcmFuaywKVGhhbmsg eW91IGZvciB0aGUgcGF0Y2guCgpCZWZvcmUgdGhpcyBwYXRjaCwgd2UgY291bGQgZGV0ZWN0IHRo ZSAnQ1RVIEEgYWRkZWQgdHdpY2UgKyBDVFUgQiBuZXZlcgphZGRlZCcgY2FzZSwgYnV0IHRoZSBu ZXcgaW1wbGVtZW50YXRpb24gY2Fubm90LCByaWdodD8KCj4KPiBTaWduZWQtb2ZmLWJ5OiBGcmFu ayBQbG93bWFuIDxwb3N0QGZyYW5rcGxvd21hbi5jb20+Cj4gLS0tCj4gIGxpYmF2Y29kZWMvdnZj L3BzLmMgfCA4MSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiAgMSBmaWxlIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnZjL3BzLmMgYi9saWJhdmNvZGVjL3Z2Yy9wcy5jCj4g aW5kZXggZThjMzEyZDhhYy4uNGVkZmU0MDhjMCAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL3Z2 Yy9wcy5jCj4gKysrIGIvbGliYXZjb2RlYy92dmMvcHMuYwo+IEBAIC00MDIsMTQgKzQwMiwzNSBA QCBzdGF0aWMgaW50IGN0dV9ycyhjb25zdCBpbnQgcngsIGNvbnN0IGludCByeSwgY29uc3QKPiBW VkNQUFMgKnBwcykKPiAgICAgIHJldHVybiBwcHMtPmN0Yl93aWR0aCAqIHJ5ICsgcng7Cj4gIH0K Pgo+ICtzdGF0aWMgdm9pZCBwcHNfYWRkX2N0dShWVkNQUFMgKnBwcywgaW50ICpvZmYsIGNvbnN0 IGludCB4LCBjb25zdCBpbnQgeSkKPiArewo+ICsgICAgcHBzLT5jdGJfYWRkcl9pbl9zbGljZVsq b2ZmXSA9IGN0dV9ycyh4LCB5LCBwcHMpOwo+ICsgICAgKCpvZmYpKys7Cj4gK30KPiArCj4gIHN0 YXRpYyBpbnQgcHBzX2FkZF9jdHVzKFZWQ1BQUyAqcHBzLCBpbnQgKm9mZiwgY29uc3QgaW50IHJ4 LCBjb25zdCBpbnQgcnksCj4gICAgICBjb25zdCBpbnQgdywgY29uc3QgaW50IGgpCj4gIHsKPiAg ICAgIGludCBzdGFydCA9ICpvZmY7Cj4gICAgICBmb3IgKGludCB5ID0gMDsgeSA8IGg7IHkrKykg ewo+ICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgdzsgeCsrKSB7Cj4gLSAgICAgICAgICAg IHBwcy0+Y3RiX2FkZHJfaW5fc2xpY2VbKm9mZl0gPSBjdHVfcnMocnggKyB4LCByeSArIHksIHBw cyk7Cj4gLSAgICAgICAgICAgICgqb2ZmKSsrOwo+ICsgICAgICAgICAgICBwcHNfYWRkX2N0dShw cHMsIG9mZiwgcnggKyB4LCByeSArIHkpOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArICAgIHJl dHVybiAqb2ZmIC0gc3RhcnQ7Cj4gK30KPiArCj4gKy8vIFNpbWlsYXIgdG8gcHBzX2FkZF9jdHVz LCBidXQgd2l0aCBhIGNoZWNrIHRvIGVuc3VyZSBhIGdpdmVuIENUVSBpc24ndAo+IHVzZWQKPiAr Ly8gbXVsdGlwbGUgdGltZXMsIHRvIGJlIHVzZWQgd2l0aCBzb21lIG9mIHRoZSBtb3JlIGNvbXBs ZXggcGFydGl0aW9uaW5nCj4gbWVjaGFuaXNtcy4KPiArc3RhdGljIGludCBwcHNfYWRkX2N0dXNf Y2hlY2soVlZDUFBTICpwcHMsIGludCAqb2ZmLCBjb25zdCBpbnQgcngsIGNvbnN0Cj4gaW50IHJ5 LAo+ICsgICAgY29uc3QgaW50IHcsIGNvbnN0IGludCBoKQo+ICt7Cj4gKyAgICBpbnQgc3RhcnQg PSAqb2ZmOwo+ICsgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoOyB5KyspIHsKPiArICAgICAgICBm b3IgKGludCB4ID0gMDsgeCA8IHc7IHgrKykgewo+ICsgICAgICAgICAgICBpZiAoKm9mZiA+PSBw cHMtPmN0Yl9jb3VudCkKPiArICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSURE QVRBOwo+ClRoaXMgY2FuIGJlIGNvbWJpbmVkIHRvIHBzc19hZGRfY3R1LiAgU28gd2UgcmVtdm9l IHBwc19hZGRfY3R1c19jaGVjayBhbmQKa2VlcCBwcHNfYWRkX2N0dXMgb25seQoKPiArICAgICAg ICAgICAgcHBzX2FkZF9jdHUocHBzLCBvZmYsIHJ4ICsgeCwgcnkgKyB5KTsKPiAgICAgICAgICB9 Cj4gICAgICB9Cj4gICAgICByZXR1cm4gKm9mZiAtIHN0YXJ0Owo+IEBAIC00NTEsNTAgKzQ3Miwz OSBAQCBzdGF0aWMgdm9pZCBzdWJwaWNfdGlsZXMoaW50ICp0aWxlX3gsIGludCAqdGlsZV95LAo+ IGludCAqdGlsZV94X2VuZCwgaW50ICp0aWxlX3lfCj4gICAgICAgICAgKCp0aWxlX3lfZW5kKSsr Owo+ICB9Cj4KPiAtc3RhdGljIGJvb2wgbWFya190aWxlX2FzX3VzZWQoYm9vbCAqdGlsZV9pbl9z dWJwaWMsIGNvbnN0IGludCB0eCwgY29uc3QKPiBpbnQgdHksIGNvbnN0IGludCB0aWxlX2NvbHVt bnMpCj4gLXsKPiAtICAgIGNvbnN0IHNpemVfdCB0aWxlX2lkeCA9IHR5ICogdGlsZV9jb2x1bW5z ICsgdHg7Cj4gLSAgICBpZiAodGlsZV9pbl9zdWJwaWNbdGlsZV9pZHhdKSB7Cj4gLSAgICAgICAg LyogdGhlIHRpbGUgaXMgY292ZXJlZCBieSBvdGhlciBzdWJwaWN0dXJlcyAqLwo+IC0gICAgICAg IHJldHVybiBmYWxzZTsKPiAtICAgIH0KPiAtICAgIHRpbGVfaW5fc3VicGljW3RpbGVfaWR4XSA9 IHRydWU7Cj4gLSAgICByZXR1cm4gdHJ1ZTsKPiAtfQo+IC0KPiAtc3RhdGljIGludCBwcHNfc3Vi cGljX2xlc3NfdGhhbl9vbmVfdGlsZV9zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTCj4g KnNwcywgY29uc3QgaW50IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZiwg Ym9vbAo+ICp0aWxlX2luX3N1YnBpYykKPiArc3RhdGljIGludCBwcHNfc3VicGljX2xlc3NfdGhh bl9vbmVfdGlsZV9zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTCj4gKnNwcywgY29uc3Qg aW50IGksIGNvbnN0IGludCB0eCwgY29uc3QgaW50IHR5LCBpbnQgKm9mZikKPiAgewo+IC0gICAg Y29uc3QgaW50IHN1YnBpY19ib3R0b20gPSBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0 X3lbaV0gKwo+IHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWludXMxW2ldOwo+IC0gICAgY29u c3QgaW50IHRpbGVfYm90dG9tID0gcHBzLT5yb3dfYmRbdHldICsgcHBzLT5yLT5yb3dfaGVpZ2h0 X3ZhbFt0eV0KPiAtIDE7Cj4gLSAgICBjb25zdCBib29sIGlzX2ZpbmFsX3N1YnBpY19pbl90aWxl ID0gc3VicGljX2JvdHRvbSA9PSB0aWxlX2JvdHRvbTsKPiAtCj4gLSAgICBpZiAoaXNfZmluYWxf c3VicGljX2luX3RpbGUgJiYgIW1hcmtfdGlsZV9hc191c2VkKHRpbGVfaW5fc3VicGljLCB0eCwK PiB0eSwgcHBzLT5yLT5udW1fdGlsZV9jb2x1bW5zKSkKPiAtICAgICAgICByZXR1cm4gQVZFUlJP Ul9JTlZBTElEREFUQTsKPiAtCj4gLSAgICBwcHMtPm51bV9jdHVzX2luX3NsaWNlW2ldID0gcHBz X2FkZF9jdHVzKHBwcywgb2ZmLAo+ICsgICAgY29uc3QgaW50IHJldCA9IHBwc19hZGRfY3R1c19j aGVjayhwcHMsIG9mZiwKPiAgICAgICAgICBzcHMtPnItPnNwc19zdWJwaWNfY3R1X3RvcF9sZWZ0 X3hbaV0sCj4gc3BzLT5yLT5zcHNfc3VicGljX2N0dV90b3BfbGVmdF95W2ldLAo+ICAgICAgICAg IHNwcy0+ci0+c3BzX3N1YnBpY193aWR0aF9taW51czFbaV0gKyAxLAo+IHNwcy0+ci0+c3BzX3N1 YnBpY19oZWlnaHRfbWludXMxW2ldICsgMSk7Cj4KPiAtICAgIHJldHVybiAwOwo+ICsgICAgaWYg KHJldCA8IDApCj4gKyAgICAgICAgcmV0dXJuIHJldDsKPiArICAgIGVsc2Ugewo+ICsgICAgICAg IHBwcy0+bnVtX2N0dXNfaW5fc2xpY2VbaV0gPSByZXQ7Cj4gKyAgICAgICAgcmV0dXJuIDA7Cj4g KyAgICB9Cj4KVGhlIGVsc2UgaXMgbm90IG5lZWRlZDsgaWYgdGhlIGNvbmRpdGlvbiBpcyB0cnVl LCB0aGUgZnVuY3Rpb24gcmV0dXJucy4KCj4gIH0KPgo+ICBzdGF0aWMgaW50IHBwc19zdWJwaWNf b25lX29yX21vcmVfdGlsZXNfc2xpY2UoVlZDUFBTICpwcHMsIGNvbnN0IGludAo+IHRpbGVfeCwg Y29uc3QgaW50IHRpbGVfeSwgY29uc3QgaW50IHhfZW5kLCBjb25zdCBpbnQgeV9lbmQsCj4gLSAg ICBjb25zdCBpbnQgaSwgaW50ICpvZmYsIGJvb2wgKnRpbGVfaW5fc3VicGljKQo+ICsgICAgY29u c3QgaW50IGksIGludCAqb2ZmKQo+ICB7Cj4gICAgICBmb3IgKGludCB0eSA9IHRpbGVfeTsgdHkg PCB5X2VuZDsgdHkrKykgewo+ICAgICAgICAgIGZvciAoaW50IHR4ID0gdGlsZV94OyB0eCA8IHhf ZW5kOyB0eCsrKSB7Cj4gLSAgICAgICAgICAgIGlmICghbWFya190aWxlX2FzX3VzZWQodGlsZV9p bl9zdWJwaWMsIHR4LCB0eSwKPiBwcHMtPnItPm51bV90aWxlX2NvbHVtbnMpKQo+IC0gICAgICAg ICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gLQo+IC0gICAgICAgICAgICBw cHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHBwc19hZGRfY3R1cyhwcHMsIG9mZiwKPiArICAg ICAgICAgICAgY29uc3QgaW50IHJldCA9IHBwc19hZGRfY3R1c19jaGVjayhwcHMsIG9mZiwKPiAg ICAgICAgICAgICAgICAgIHBwcy0+Y29sX2JkW3R4XSwgcHBzLT5yb3dfYmRbdHldLAo+ICAgICAg ICAgICAgICAgICAgcHBzLT5yLT5jb2xfd2lkdGhfdmFsW3R4XSwgcHBzLT5yLT5yb3dfaGVpZ2h0 X3ZhbFt0eV0pOwo+ICsKPiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gKyAgICAgICAgICAg ICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgICBw cHMtPm51bV9jdHVzX2luX3NsaWNlW2ldICs9IHJldDsKPgplbHNlIGlzIG5vdCBuZWVkZWQgdG9v LgoKPiAgICAgICAgICB9Cj4gICAgICB9Cj4gICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gLXN0YXRp YyBpbnQgcHBzX3N1YnBpY19zbGljZShWVkNQUFMgKnBwcywgY29uc3QgVlZDU1BTICpzcHMsIGNv bnN0IGludCBpLAo+IGludCAqb2ZmLCBib29sICp0aWxlX2luX3N1YnBpYykKPiArc3RhdGljIGlu dCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMgKnNwcywgY29uc3Qg aW50IGksCj4gaW50ICpvZmYpCj4gIHsKPiAgICAgIGludCB0eCwgdHksIHhfZW5kLCB5X2VuZDsK Pgo+IEBAIC01MDMsOSArNTEzLDkgQEAgc3RhdGljIGludCBwcHNfc3VicGljX3NsaWNlKFZWQ1BQ UyAqcHBzLCBjb25zdCBWVkNTUFMKPiAqc3BzLCBjb25zdCBpbnQgaSwgaW50ICpvZgo+Cj4gICAg ICBzdWJwaWNfdGlsZXMoJnR4LCAmdHksICZ4X2VuZCwgJnlfZW5kLCBzcHMsIHBwcywgaSk7Cj4g ICAgICBpZiAodHkgKyAxID09IHlfZW5kICYmIHNwcy0+ci0+c3BzX3N1YnBpY19oZWlnaHRfbWlu dXMxW2ldICsgMSA8Cj4gcHBzLT5yLT5yb3dfaGVpZ2h0X3ZhbFt0eV0pCj4gLSAgICAgICAgcmV0 dXJuIHBwc19zdWJwaWNfbGVzc190aGFuX29uZV90aWxlX3NsaWNlKHBwcywgc3BzLCBpLCB0eCwg dHksCj4gb2ZmLCB0aWxlX2luX3N1YnBpYyk7Cj4gKyAgICAgICAgcmV0dXJuIHBwc19zdWJwaWNf bGVzc190aGFuX29uZV90aWxlX3NsaWNlKHBwcywgc3BzLCBpLCB0eCwgdHksCj4gb2ZmKTsKPiAg ICAgIGVsc2UKPiAtICAgICAgICByZXR1cm4gcHBzX3N1YnBpY19vbmVfb3JfbW9yZV90aWxlc19z bGljZShwcHMsIHR4LCB0eSwgeF9lbmQsCj4geV9lbmQsIGksIG9mZiwgdGlsZV9pbl9zdWJwaWMp Owo+ICsgICAgICAgIHJldHVybiBwcHNfc3VicGljX29uZV9vcl9tb3JlX3RpbGVzX3NsaWNlKHBw cywgdHgsIHR5LCB4X2VuZCwKPiB5X2VuZCwgaSwgb2ZmKTsKPiAgfQo+Cj4gIHN0YXRpYyBpbnQg cHBzX3NpbmdsZV9zbGljZV9wZXJfc3VicGljKFZWQ1BQUyAqcHBzLCBjb25zdCBWVkNTUFMgKnNw cywKPiBpbnQgKm9mZikKPiBAQCAtNTEzLDE4ICs1MjMsMTEgQEAgc3RhdGljIGludCBwcHNfc2lu Z2xlX3NsaWNlX3Blcl9zdWJwaWMoVlZDUFBTICpwcHMsCj4gY29uc3QgVlZDU1BTICpzcHMsIGlu dCAqb2ZmKQo+ICAgICAgaWYgKCFzcHMtPnItPnNwc19zdWJwaWNfaW5mb19wcmVzZW50X2ZsYWcp IHsKPiAgICAgICAgICBwcHNfc2luZ2xlX3NsaWNlX3BpY3R1cmUocHBzLCBvZmYpOwo+ICAgICAg fSBlbHNlIHsKPiAtICAgICAgICBib29sIHRpbGVfaW5fc3VicGljW1ZWQ19NQVhfVElMRVNfUEVS X0FVXSA9IHswfTsKPiAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBwcy0+ci0+cHBzX251 bV9zbGljZXNfaW5fcGljX21pbnVzMSArIDE7Cj4gaSsrKSB7Cj4gLSAgICAgICAgICAgIGNvbnN0 IGludCByZXQgPSBwcHNfc3VicGljX3NsaWNlKHBwcywgc3BzLCBpLCBvZmYsCj4gdGlsZV9pbl9z dWJwaWMpOwo+ICsgICAgICAgICAgICBjb25zdCBpbnQgcmV0ID0gcHBzX3N1YnBpY19zbGljZShw cHMsIHNwcywgaSwgb2ZmKTsKPiAgICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gICAgICAgICAg ICAgICAgICByZXR1cm4gcmV0Owo+ICAgICAgICAgIH0KPiAtCj4gLSAgICAgICAgLy8gV2Ugb25s eSB1c2UgdGlsZV9pbl9zdWJwaWMgdG8gY2hlY2sgdGhhdCB0aGUgc3VicGljdHVyZXMgZG9uJ3QK PiBvdmVybGFwCj4gLSAgICAgICAgLy8gaGVyZTsgd2UgZG9uJ3QgdXNlIHRpbGVfaW5fc3VicGlj IHRvIGNoZWNrIHRoYXQgdGhlCj4gc3VicGljdHVyZXMgY292ZXIKPiAtICAgICAgICAvLyBldmVy eSB0aWxlLiAgSXQgaXMgcG9zc2libGUgdG8gYXZvaWQgZG9pbmcgdGhpcyB3b3JrIGhlcmUKPiBi ZWNhdXNlIHRoZQo+IC0gICAgICAgIC8vIGNvdmVyaW5nIHByb3BlcnR5IG9mIHN1YnBpY3R1cmVz IGlzIGFscmVhZHkgZ3VhcmFudGVlZCBieSB0aGUKPiBtZWNoYW5pc21zCj4gLSAgICAgICAgLy8g d2hpY2ggY2hlY2sgZXZlcnkgQ1RVIGJlbG9uZ3MgdG8gYSBzbGljZS4KPiAgICAgIH0KPiAgICAg IHJldHVybiAwOwo+ICB9Cj4gLS0KPiAyLjQ3LjAKPgo+Cl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVn LWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZt cGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZt cGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K