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 5F41B48B03 for ; Tue, 2 Jan 2024 13:44:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 73F0968CA1A; Tue, 2 Jan 2024 15:44:27 +0200 (EET) Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AF18968AC4B for ; Tue, 2 Jan 2024 15:44:21 +0200 (EET) Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-50e68e93be1so8463136e87.0 for ; Tue, 02 Jan 2024 05:44:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704203060; x=1704807860; 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=sFx+c4Iggz4WA3OPF4j0LMGNb6IjqBC3WF2IqQCBFjE=; b=J++HxS+SmDVB62+QqB72czUhW3JQipTmCn6TWGrt+cosWQtt6XHij7m/ffYv+fogpG tGB4kASTmFcnxyZ6l7YbTPP9tCYRLisrmwQwxNlJv8UdT61pTNPnr+JieUmIrGY3SvIX GbateDRlrTDQyWVenrr6Lrcn4x4THkDQ0d8wmo31sSt72FUAnoYdOmS2BrOet4+PF38g eDbe0Pk5Lp8zGSyqPfRq4VfNYIZjxcTxHXWhwUUk5ZxTQZKkD+LNwKycB15bh0PLp5oe wPGFo4NBlvYAA7ksYz+3K+Bc2rfPejaYuQtjPk3ajslObFHHY0PfLkjHStDe9Ix1EkVR ZaJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704203060; x=1704807860; 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=sFx+c4Iggz4WA3OPF4j0LMGNb6IjqBC3WF2IqQCBFjE=; b=jSdH2ZNrT7EfJSgeyx0ht1l/7fukbhE797G8jYkgMT4XGFDXq41BWgoU73KMixCyj/ h7AAtw2MjRhhr/UuwSOFhDN2MeOZlzfzNapo5uIZogLQ5KFIAo/c8s99C2THtMo0UphQ G+orpJBG182OCC6hw2v3KH/n6TyO9y/drdJFQAj4LAflK6ZdPVFHoagP92//MKDPLecM i6vKWh0QFL1kpCSu9V0nUilSrRTS2PI7oaipdsRJw+c5TlOjshbOEvgXP2wlh0qwI8ej gSkQokuGcudxnMM0PpC4WkgWuWN/hmZ+GhaVlXanvr1KWIH+5ux0auw6e3i5duWJRc3U LX8w== X-Gm-Message-State: AOJu0YxoiGAAbu3JnUuvsy9Am5wkFL+f2HNfJFYUwQsL25q1KCB13aZg mcIrrsbGPeMfUIyG7xU5AvbRktxSPHWOfm56KpE0boYvcPE= X-Google-Smtp-Source: AGHT+IE6mFJGDdbx12VBPRyEjFkYdTPsypKTh9LmxfrkrrAWvS/d+vUg6/BsZGfSIHDfi3xwa8XadDHH2+d+KMV8W8c= X-Received: by 2002:ac2:5dce:0:b0:50e:2a39:9cfc with SMTP id x14-20020ac25dce000000b0050e2a399cfcmr6430930lfq.48.1704203060014; Tue, 02 Jan 2024 05:44:20 -0800 (PST) MIME-Version: 1.0 References: <20240101141239.6623-1-nuomi2021@gmail.com> <20240101173459.GV6420@pb2> In-Reply-To: <20240101173459.GV6420@pb2> From: Nuo Mi Date: Tue, 2 Jan 2024 21:44:08 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v9 03/13] vvcdec: add cabac decoder 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 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: T24gVHVlLCBKYW4gMiwgMjAyNCBhdCAxOjM14oCvQU0gTWljaGFlbCBOaWVkZXJtYXllciA8bWlj aGFlbEBuaWVkZXJtYXllci5jYz4Kd3JvdGU6Cgo+IE9uIE1vbiwgSmFuIDAxLCAyMDI0IGF0IDEw OjEyOjI5UE0gKzA4MDAsIE51byBNaSB3cm90ZToKPiA+IGFkZCBDb250ZXh0LWJhc2VkIEFkYXB0 aXZlIEJpbmFyeSBBcml0aG1ldGljIENvZGluZyAoQ0FCQUMpIGRlY29kZXIKPiA+Cj4gPiBDby1h dXRob3JlZC1ieTogWHUgTXUgPHRveHVtdUBvdXRsb29rLmNvbT4KPiA+IENvLWF1dGhvcmVkLWJ5 OiBGcmFuayBQbG93bWFuIDxwb3N0QGZyYW5rcGxvd21hbi5jb20+Cj4gPiBDby1hdXRob3JlZC1i eTogU2hhdW4gTG9vIDxzaGF1bmxvbzEwQGdtYWlsLmNvbT4KPiA+IENvLWF1dGhvcmVkLWJ5OiBX dSBKaWFuaHVhIDx0b3FzeHdAb3V0bG9vay5jb20+Cj4gPiAtLS0KPiA+ICBsaWJhdmNvZGVjL3Z2 Yy9NYWtlZmlsZSAgICB8ICAgIDQgKy0KPiA+ICBsaWJhdmNvZGVjL3Z2Yy92dmNfY2FiYWMuYyB8 IDI0NzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgbGliYXZjb2Rl Yy92dmMvdnZjX2NhYmFjLmggfCAgMTI2ICsrCj4gPiAgbGliYXZjb2RlYy92dmMvdnZjX2N0dS5j ICAgfCAgIDMyICsKPiA+ICBsaWJhdmNvZGVjL3Z2Yy92dmNfY3R1LmggICB8ICA0NjQgKysrKysr Kwo+ID4gIGxpYmF2Y29kZWMvdnZjL3Z2Y2RlYy5oICAgIHwgICAgNyArCj4gPiAgNiBmaWxlcyBj aGFuZ2VkLCAzMTEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliYXZjb2RlYy92dmMvdnZjX2NhYmFjLmMKPiA+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgbGliYXZjb2RlYy92dmMvdnZjX2NhYmFjLmgKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGli YXZjb2RlYy92dmMvdnZjX2N0dS5jCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMv dnZjL3Z2Y19jdHUuaAo+Cj4gWy4uLl0KPgo+ID4gK3N0YXRpYyBpbnQgcmVzaWR1YWxfdHNfY29k aW5nX3N1YmJsb2NrKFZWQ0xvY2FsQ29udGV4dCAqbGMsCj4gUmVzaWR1YWxDb2RpbmcqIHJjLCBj b25zdCBpbnQgaSkKPiA+ICt7Cj4gPiArICAgIGNvbnN0IENvZGluZ1VuaXQgKmN1ICAgPSBsYy0+ Y3U7Cj4gPiArICAgIFRyYW5zZm9ybUJsb2NrICp0YiAgICAgPSByYy0+dGI7Cj4gPiArICAgIGNv bnN0IGludCBiZHBjbV9mbGFnICAgPSBjdS0+YmRwY21fZmxhZ1t0Yi0+Y19pZHhdOwo+ID4gKyAg ICBjb25zdCBpbnQgeHMgICAgICAgICAgID0gcmMtPnNiX3NjYW5feF9vZmZbaV07Cj4gPiArICAg IGNvbnN0IGludCB5cyAgICAgICAgICAgPSByYy0+c2Jfc2Nhbl95X29mZltpXTsKPiA+ICsgICAg dWludDhfdCAqc2JfY29kZWRfZmxhZyA9IHJjLT5zYl9jb2RlZF9mbGFnICsgeXMgKiByYy0+d2lk dGhfaW5fc2JzCj4gKyB4czsKPiA+ICsgICAgaW50IGluZmVyX3NiX3NpZ19jb2VmZl9mbGFnID0g MTsKPiA+ICsgICAgaW50IGxhc3Rfc2Nhbl9wb3NfcGFzczEgPSAtMSwgbGFzdF9zY2FuX3Bvc19w YXNzMiA9IC0xLCBuOwo+ID4gKyAgICBpbnQgYWJzX2xldmVsX2d0eF9mbGFnW01BWF9TVUJfQkxP Q0tfU0laRSAqIE1BWF9TVUJfQkxPQ0tfU0laRV07Cj4gPiArICAgIGludCBhYnNfbGV2ZWxfcGFz czJbTUFYX1NVQl9CTE9DS19TSVpFICogTUFYX1NVQl9CTE9DS19TSVpFXTsKPiAgLy8vPCBBYnNM ZXZlbFBhc3MyCj4gPiArCj4gPiArICAgIGlmIChpICE9IHJjLT5sYXN0X3N1Yl9ibG9jayB8fCAh cmMtPmluZmVyX3NiX2NiZikKPiA+ICsgICAgICAgICpzYl9jb2RlZF9mbGFnID0gc2JfY29kZWRf ZmxhZ19kZWNvZGUobGMsIHNiX2NvZGVkX2ZsYWcsIHJjLAo+IHhzLCB5cyk7Cj4gPiArICAgIGVs c2UKPiA+ICsgICAgICAgICpzYl9jb2RlZF9mbGFnID0gMTsKPiA+ICsgICAgaWYgKCpzYl9jb2Rl ZF9mbGFnICYmIGkgPCByYy0+bGFzdF9zdWJfYmxvY2spCj4gPiArICAgICAgICByYy0+aW5mZXJf c2JfY2JmID0gMDsKPiA+ICsKPiA+ICsgICAgLy9maXJzdCBzY2FuIHBhc3MKPiA+ICsgICAgZm9y IChuID0gMDsgbiA8IHJjLT5udW1fc2JfY29lZmYgJiYgcmMtPnJlbV9iaW5zX3Bhc3MxID49IDQ7 IG4rKykgewo+ID4gKyAgICAgICAgY29uc3QgaW50IHhjID0gKHhzIDw8IHJjLT5sb2cyX3NiX3cp ICsgcmMtPnNjYW5feF9vZmZbbl07Cj4gPiArICAgICAgICBjb25zdCBpbnQgeWMgPSAoeXMgPDwg cmMtPmxvZzJfc2JfaCkgKyByYy0+c2Nhbl95X29mZltuXTsKPiA+ICsgICAgICAgIGNvbnN0IGlu dCBvZmYgPSB5YyAqIHRiLT50Yl93aWR0aCArIHhjOwo+ID4gKyAgICAgICAgaW50ICpzaWdfY29l ZmZfZmxhZyAgID0gcmMtPnNpZ19jb2VmZl9mbGFnICsgb2ZmOwo+ID4gKyAgICAgICAgaW50ICph YnNfbGV2ZWxfcGFzczEgID0gcmMtPmFic19sZXZlbF9wYXNzMSArIG9mZjsKPiA+ICsgICAgICAg IGludCAqY29lZmZfc2lnbl9sZXZlbCA9IHJjLT5jb2VmZl9zaWduX2xldmVsICsgb2ZmOwo+ID4g KyAgICAgICAgaW50IHBhcl9sZXZlbF9mbGFnICAgID0gMDsKPiA+ICsKPiA+ICsgICAgICAgIGFi c19sZXZlbF9ndHhfZmxhZ1tuXSA9IDA7Cj4gPiArICAgICAgICBsYXN0X3NjYW5fcG9zX3Bhc3Mx ID0gbjsKPiA+ICsgICAgICAgIGlmICgqc2JfY29kZWRfZmxhZyAmJiAobiAhPSByYy0+bnVtX3Ni X2NvZWZmIC0gMSB8fAo+ICFpbmZlcl9zYl9zaWdfY29lZmZfZmxhZykpIHsKPiA+ICsgICAgICAg ICAgICAqc2lnX2NvZWZmX2ZsYWcgPSBzaWdfY29lZmZfZmxhZ19kZWNvZGUobGMsIHJjLCB4Yywg eWMpOwo+ID4gKyAgICAgICAgICAgIHJjLT5yZW1fYmluc19wYXNzMS0tOwo+ID4gKyAgICAgICAg ICAgIGlmICgqc2lnX2NvZWZmX2ZsYWcpCj4gPiArICAgICAgICAgICAgICAgIGluZmVyX3NiX3Np Z19jb2VmZl9mbGFnID0gMDsKPiA+ICsgICAgICAgIH0gZWxzZSB7Cj4gPiArICAgICAgICAgICAg KnNpZ19jb2VmZl9mbGFnID0gKG4gPT0gcmMtPm51bV9zYl9jb2VmZiAtIDEpICYmCj4gaW5mZXJf c2Jfc2lnX2NvZWZmX2ZsYWcgJiYgKnNiX2NvZGVkX2ZsYWc7Cj4gPiArICAgICAgICB9Cj4gPiAr ICAgICAgICAqY29lZmZfc2lnbl9sZXZlbCA9IDA7Cj4gPiArICAgICAgICBpZiAoKnNpZ19jb2Vm Zl9mbGFnKSB7Cj4gPiArICAgICAgICAgICAgKmNvZWZmX3NpZ25fbGV2ZWwgPSAxIC0gMiAqIGNv ZWZmX3NpZ25fZmxhZ190c19kZWNvZGUobGMsCj4gY3UsIHJjLCB4YywgeWMpOwo+ID4gKyAgICAg ICAgICAgIGFic19sZXZlbF9ndHhfZmxhZ1tuXSA9IGFic19sZXZlbF9ndDFfZmxhZ190c19kZWNv ZGUobGMsCj4gY3UsIHJjLCB4YywgeWMpOwo+ID4gKyAgICAgICAgICAgIHJjLT5yZW1fYmluc19w YXNzMSAtPSAyOwo+ID4gKyAgICAgICAgICAgIGlmIChhYnNfbGV2ZWxfZ3R4X2ZsYWdbbl0pIHsK PiA+ICsgICAgICAgICAgICAgICAgcGFyX2xldmVsX2ZsYWcgPSBwYXJfbGV2ZWxfZmxhZ190c19k ZWNvZGUobGMpOwo+ID4gKyAgICAgICAgICAgICAgICByYy0+cmVtX2JpbnNfcGFzczEtLTsKPiA+ ICsgICAgICAgICAgICB9Cj4gPiArICAgICAgICB9Cj4gPiArICAgICAgICAqYWJzX2xldmVsX3Bh c3MxID0gKnNpZ19jb2VmZl9mbGFnICsgcGFyX2xldmVsX2ZsYWcgKwo+IGFic19sZXZlbF9ndHhf ZmxhZ1tuXTsKPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICAvL2dyZWF0ZXIgdGhhbiB4IHNjYW4g cGFzcwo+ID4gKyAgICBmb3IgKG4gPSAwOyBuIDwgcmMtPm51bV9zYl9jb2VmZiAmJiByYy0+cmVt X2JpbnNfcGFzczEgPj0gNDsgbisrKSB7Cj4gPiArICAgICAgICBjb25zdCBpbnQgeGMgID0gKHhz IDw8IHJjLT5sb2cyX3NiX3cpICsgcmMtPnNjYW5feF9vZmZbbl07Cj4gPiArICAgICAgICBjb25z dCBpbnQgeWMgID0gKHlzIDw8IHJjLT5sb2cyX3NiX2gpICsgcmMtPnNjYW5feV9vZmZbbl07Cj4g PiArICAgICAgICBjb25zdCBpbnQgb2ZmID0geWMgKiB0Yi0+dGJfd2lkdGggKyB4YzsKPiA+ICsK PiA+ICsgICAgICAgIGFic19sZXZlbF9wYXNzMltuXSA9IHJjLT5hYnNfbGV2ZWxfcGFzczFbb2Zm XTsKPiA+ICsgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgNSAmJiBhYnNfbGV2ZWxfZ3R4X2Zs YWdbbl07IGorKykgewo+ID4gKyAgICAgICAgICAgIGFic19sZXZlbF9ndHhfZmxhZ1tuXSA9IGFi c19sZXZlbF9ndHhfZmxhZ190c19kZWNvZGUobGMsIGopOwo+ID4gKyAgICAgICAgICAgIGFic19s ZXZlbF9wYXNzMltuXSArPSBhYnNfbGV2ZWxfZ3R4X2ZsYWdbbl0gPDwgMTsKPiA+ICsgICAgICAg ICAgICByYy0+cmVtX2JpbnNfcGFzczEtLTsKPiA+ICsgICAgICAgIH0KPiA+ICsgICAgICAgIGxh c3Rfc2Nhbl9wb3NfcGFzczIgPSBuOwo+ID4gKyAgICB9Cj4gPiArCj4gPiArICAgIC8qIHJlbWFp bmRlciBzY2FuIHBhc3MgKi8KPiA+ICsgICAgZm9yIChuID0gMDsgbiA8IHJjLT5udW1fc2JfY29l ZmY7IG4rKykgewo+ID4gKyAgICAgICAgY29uc3QgaW50IHhjICA9ICh4cyA8PCByYy0+bG9nMl9z Yl93KSArIHJjLT5zY2FuX3hfb2ZmW25dOwo+ID4gKyAgICAgICAgY29uc3QgaW50IHljICA9ICh5 cyA8PCByYy0+bG9nMl9zYl9oKSArIHJjLT5zY2FuX3lfb2ZmW25dOwo+ID4gKyAgICAgICAgY29u c3QgaW50IG9mZiA9IHljICogdGItPnRiX3dpZHRoICsgeGM7Cj4gPiArICAgICAgICBjb25zdCBp bnQgKmFic19sZXZlbF9wYXNzMSA9IHJjLT5hYnNfbGV2ZWxfcGFzczEgKyBvZmY7Cj4gPiArICAg ICAgICBpbnQgKmFic19sZXZlbCAgICAgICAgICAgICA9IHJjLT5hYnNfbGV2ZWwgKyBvZmY7Cj4g PiArICAgICAgICBpbnQgKmNvZWZmX3NpZ25fbGV2ZWwgICAgICA9IHJjLT5jb2VmZl9zaWduX2xl dmVsICsgb2ZmOwo+ID4gKyAgICAgICAgaW50IGFic19yZW1haW5kZXIgICAgICAgICAgPSAwOwo+ ID4gKwo+ID4gKyAgICAgICAgaWYgKChuIDw9IGxhc3Rfc2Nhbl9wb3NfcGFzczIgJiYgYWJzX2xl dmVsX3Bhc3MyW25dID49IDEwKSB8fAo+ID4gKyAgICAgICAgICAgIChuID4gbGFzdF9zY2FuX3Bv c19wYXNzMiAmJiBuIDw9IGxhc3Rfc2Nhbl9wb3NfcGFzczEgJiYKPiA+ICsgICAgICAgICAgICAq YWJzX2xldmVsX3Bhc3MxID49IDIpIHx8Cj4gPiArICAgICAgICAgICAgKG4gPiBsYXN0X3NjYW5f cG9zX3Bhc3MxICYmICAqc2JfY29kZWRfZmxhZykpCj4gPiArICAgICAgICAgICAgYWJzX3JlbWFp bmRlciA9IGFic19yZW1haW5kZXJfdHNfZGVjb2RlKGxjLCByYywgeGMsIHljKTsKPiA+ICsgICAg ICAgIGlmIChuIDw9IGxhc3Rfc2Nhbl9wb3NfcGFzczIpIHsKPiA+ICsgICAgICAgICAgICAqYWJz X2xldmVsID0gYWJzX2xldmVsX3Bhc3MyW25dICsgMiAqIGFic19yZW1haW5kZXI7Cj4gPiArICAg ICAgICB9IGVsc2UgaWYgKG4gPD0gbGFzdF9zY2FuX3Bvc19wYXNzMSkgewo+ID4gKyAgICAgICAg ICAgICphYnNfbGV2ZWwgPSAqYWJzX2xldmVsX3Bhc3MxICsgMiAqIGFic19yZW1haW5kZXI7Cj4g PiArICAgICAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAgICAgICphYnNfbGV2ZWwgPSBhYnNfcmVt YWluZGVyOwo+ID4gKyAgICAgICAgICAgIGlmIChhYnNfcmVtYWluZGVyKSB7Cj4gPiArICAgICAg ICAgICAgICAgIC8vbiA+IGxhc3RTY2FuUG9zUGFzczEKPiA+ICsgICAgICAgICAgICAgICAgKmNv ZWZmX3NpZ25fbGV2ZWwgPSAxIC0gMiAqIGNvZWZmX3NpZ25fZmxhZ19kZWNvZGUobGMpOwo+ID4g KyAgICAgICAgICAgIH0KPiA+ICsgICAgICAgIH0KPiA+ICsgICAgICAgIGlmICghYmRwY21fZmxh ZyAmJiBuIDw9IGxhc3Rfc2Nhbl9wb3NfcGFzczEpIHsKPiA+ICsgICAgICAgICAgICBjb25zdCBp bnQgbGVmdCAgPSB4YyA+IDAgPyBhYnNfbGV2ZWxbLTFdIDogMDsKPiA+ICsgICAgICAgICAgICBj b25zdCBpbnQgYWJvdmUgPSB5YyA+IDAgPyBhYnNfbGV2ZWxbLXRiLT50Yl93aWR0aF0gOiAwOwo+ ID4gKyAgICAgICAgICAgIGNvbnN0IGludCBwcmVkICA9IEZGTUFYKGxlZnQsIGFib3ZlKTsKPiA+ ICsKPiA+ICsgICAgICAgICAgICBpZiAoKmFic19sZXZlbCA9PSAxICYmIHByZWQgPiAwKQo+ID4g KyAgICAgICAgICAgICAgICAqYWJzX2xldmVsID0gcHJlZDsKPiA+ICsgICAgICAgICAgICBlbHNl IGlmICgqYWJzX2xldmVsID4gMCAmJiAqYWJzX2xldmVsIDw9IHByZWQpCj4gPiArICAgICAgICAg ICAgICAgICgqYWJzX2xldmVsKS0tOwo+ID4gKyAgICAgICAgfQo+Cj4gPiArICAgICAgICBpZiAo KmFic19sZXZlbCkgewo+ID4gKyAgICAgICAgICAgIHRiLT5jb2VmZnNbb2ZmXSA9ICpjb2VmZl9z aWduX2xldmVsICogKmFic19sZXZlbDsKPiA+ICsgICAgICAgICAgICB0Yi0+bWF4X3NjYW5feCA9 IEZGTUFYKHhjLCB0Yi0+bWF4X3NjYW5feCk7Cj4gPiArICAgICAgICAgICAgdGItPm1heF9zY2Fu X3kgPSBGRk1BWCh5YywgdGItPm1heF9zY2FuX3kpOwo+ID4gKyAgICAgICAgICAgIHRiLT5taW5f c2Nhbl94ID0gRkZNSU4oeGMsIHRiLT5taW5fc2Nhbl94KTsKPiA+ICsgICAgICAgICAgICB0Yi0+ bWluX3NjYW5feSA9IEZGTUlOKHljLCB0Yi0+bWluX3NjYW5feSk7Cj4gPiArICAgICAgICB9IGVs c2Ugewo+ID4gKyAgICAgICAgICAgIHRiLT5jb2VmZnNbb2ZmXSA9IDA7Cj4gPiArICAgICAgICB9 Cj4KPiBJcyB0aGlzIGp1c3QgZm9yIG9wdGltaXphdGlvbiA/Cj4KWWVzLiBzZWUKaHR0cHM6Ly9n aXRodWIuY29tL2ZmdnZjL0ZGbXBlZy9ibG9iL21haW4vbGliYXZjb2RlYy92dmMvdnZjX2l0eF8x ZC5jI0w2NgoKPgo+IGNvbXB1dGluZyB0aGUgbWF4L21pbiB4L3kgaW5kZXhlcyBvZiBub24gemVy byBjb2VmZnMgdG8gbGF0ZXIgb25seSBwcm9jZXNzCj4gdGhlbSBpcyBsaWtlbHkgbW9yZSBleHBl bnNpdmUgdGhhbiB0byBqdXN0IGRvIHRoZSBkZXF1YW50aXphdGlvbiBoZXJlCj4gd2hlcmUgaXRz Cj4ga25vd24gd2hhdCBpcyBub24gemVybywgYWxzbyBwcm9iYWJseSB0aGUgbm9uIHplcm8gY29l ZmZzIGRvIG5vdCBjbHVzdGVyCj4gd2VsbAo+IGluIGEgcmVjdGFuZ2xlIHNvIHRoZXJlIHdpbGwg bGlrZWx5IHN0aWxsIGJlIGFsb3Qgb2YgMCBpbiB0aGF0Cj4KCj4gSWYgdGhpcyBpcyBqdXN0IGZv ciBvcHRpbWl6YXRpb24sIGl0cyBhIHN0cmFuZ2UgZGlyZWN0aW9uIGF0IHN1Y2ggYW4gZWFybHkK PiBzdGFnZQo+IGRlcXVhbnRpemF0aW9uIGNhbiBiZSBkb25lIGRpcmVjdGx5IGhlcmUgd2hlbiB3 ZSBhbHJlYWR5IGhhdmUgYSBzZXBlcmF0ZQo+IGJyYW5jaCBmb3IKPiBub24gemVybyBjb2VmZmlj aWVudHMuCj4KZ29vZCBpZGVhCgo+Cj4gYW5kIGZvciB0cmFuc2Zvcm0gaXQga25vd2luZyBmb3Ig ZXhhbXBsZSB0aGF0IHJvd3MgMSBhbmQgMyBhcmUgYWxsIDAgaXMKPiBwcm9iYWJseQo+IG1vcmUg dXNlZnVsbCB0aGFuIGtub3dpbmcgdGhhdCBhbGwgbm9uIHplcm8gZWxlbWVudHMgYXJlIGluIHJv d3MgMC0yCj4KTWluIG1heSBub3QgYmUgYXMgdXNlZnVsIHNpbmNlIHdlIHVzdWFsbHkgaGF2ZSBE Qy4KTWF4IGlzIGltcG9ydGFudCBmb3IgdHJhbnNmb3JtcyBzaW5jZSB3ZSBjYW4gc2tpcCBtdWx0 aXBsaWNhdGlvbiBmb3IgYWxsCnRhaWwgemVyb3MuClBlcmhhcHMgd2UgZG9uJ3QgbmVlZCB0byBj b21wYXJlIGV2ZXJ5IGNvZWZmaWNpZW50IHRvIGdldCBNYXguCkxldCBtZSB1c2UgaHR0cHM6Ly9n aXRodWIuY29tL2ZmdnZjL0ZGbXBlZy9pc3N1ZXMvMTc5IHRvIHRyYWNrIGFuZCByZXZpc2l0Cml0 IGxhdGVyLgoKVGhhbmsgeW91LgoKPgo+IHRoeAo+Cj4gWy4uLl0KPiAtLQo+IE1pY2hhZWwgICAg IEdudVBHIGZpbmdlcnByaW50OiA5RkYyMTI4QjE0N0VGNjczMEJBREYxMzM2MTFFQzc4NzA0MEIw RkFCCj4KPiBNYW55IHRoaW5ncyBtaWNyb3NvZnQgZGlkIGFyZSBzdHVwaWQsIGJ1dCBub3QgZG9p bmcgc29tZXRoaW5nIGp1c3QgYmVjYXVzZQo+IG1pY3Jvc29mdCBkaWQgaXQgaXMgZXZlbiBtb3Jl IHN0dXBpZC4gSWYgZXZlcnl0aGluZyBtcyBkaWQgd2VyZSBzdHVwaWQgdGhleQo+IHdvdWxkIGJl IGJhbmtydXB0IGFscmVhZHkuCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRldmVsQGZm bXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2 ZWwKPgo+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+IGZmbXBl Zy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4K X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRl dmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5v cmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBs aW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGgg c3ViamVjdCAidW5zdWJzY3JpYmUiLgo=