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 ESMTP id 9064240592
	for <ffmpegdev@gitmailbox.com>; Fri, 25 Feb 2022 08:14:24 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 46DF168B31D;
	Fri, 25 Feb 2022 10:14:21 +0200 (EET)
Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com
 [209.85.218.42])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 28696680CB2
 for <ffmpeg-devel@ffmpeg.org>; Fri, 25 Feb 2022 10:14:15 +0200 (EET)
Received: by mail-ej1-f42.google.com with SMTP id qk11so9334756ejb.2
 for <ffmpeg-devel@ffmpeg.org>; Fri, 25 Feb 2022 00:14:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=date:from:to:subject:message-id:references:mime-version
 :content-disposition:content-transfer-encoding:in-reply-to;
 bh=VTAhWw1+cOyIa8wCEU2GzNFtlzmexmQzXUu09idh7y0=;
 b=evzIftcyUN9OSV6WM+xPzpSGyWKEoXpuLE11TPY5QRKOZcWYx2EjYWLFuT0TS1xuhB
 mLdqPRwcjQv6AIrnTC3c9CGL54RLF+VxHYsOTgFLThXuf7ZOuJPaXRX7n2ifr3AUn4bh
 GPnkf57nrLsey2by/OBe0iOyx2yTiSVoYOOjZW29XV76q81JYKGqsTSy7oUr3oDg+jY5
 38z/DpyoJRC0HaBeIy0PFRzuH/IfF7Mnt4NStBwAi5gdYtFPG8/7SvnQj6jZnkWexT9w
 8yh8Jp6BmapwCBlkUPadOpf+eIHT984Yr2Dnzz3YtYHnqqhmHtKm9Dc5LRKycg1QEZyZ
 8tEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:date:from:to:subject:message-id:references
 :mime-version:content-disposition:content-transfer-encoding
 :in-reply-to;
 bh=VTAhWw1+cOyIa8wCEU2GzNFtlzmexmQzXUu09idh7y0=;
 b=DFgX6f5uWSl1VGdP1ChdsWtU1OBXhzw6yUYZyYFh9us/2T2a8tAAFqbIornQerNmAl
 MNheR1AYB9QqiMtDSd/cu14We44gM04BwfR69g6jjLMcASTxLI0NWj9/bydvT/mkB1e7
 idiSe9uZbtYcVQx9AB14mDBFfSqbmLZBpS1G+fHciy3ehAxDuqfcEUt0DUx7Fq5Qr1ci
 T5Yfyhi4R1Y2C7GDWPD7152t3GRvlN7Gvqv5mQRvSpYJgSeMFsEEJ59xvoiGQ18er6y8
 CKZS0nTMFiiuVzNYxSRrIa0eideGSXQWq0o9pIZd+HGknHe8yJCtNtEswTxkCgl6Ti5U
 smjg==
X-Gm-Message-State: AOAM531ygz4DeACHrIqSHYVoCFgj6ekb+zHz1D1Mdi7j0o1+PlU+Ee/A
 DqO74ue0n6jtSbR03XClqqNfXKjJZVk=
X-Google-Smtp-Source: ABdhPJw8CKKcf8Im9qxBeQFjfnqJop8Zmt2+xm7D5Q2kI4c+/TohDoKBmF713DBHy6pxA7E46d/PBQ==
X-Received: by 2002:a17:907:2bc4:b0:6cc:e4b7:dcf8 with SMTP id
 gv4-20020a1709072bc400b006cce4b7dcf8mr5247558ejc.596.1645776854197; 
 Fri, 25 Feb 2022 00:14:14 -0800 (PST)
Received: from archlinux ([95.168.116.15]) by smtp.gmail.com with ESMTPSA id
 g15-20020a170906520f00b006cd07ba40absm692493ejm.160.2022.02.25.00.14.12
 for <ffmpeg-devel@ffmpeg.org>
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Feb 2022 00:14:13 -0800 (PST)
Date: Fri, 25 Feb 2022 09:15:42 +0100
From: Paul B Mahol <onemda@gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Message-ID: <YhiQLhFObneHW+cK@archlinux>
References: <43daccc7-c618-993e-912d-54e633e8c7f2@gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <43daccc7-c618-993e-912d-54e633e8c7f2@gmail.com>
Subject: Re: [FFmpeg-devel] [PATCH] libavcodec,
 libavformat: Added DFPWM1a codec and raw format
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/YhiQLhFObneHW+cK@archlinux/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

T24gRnJpLCBGZWIgMjUsIDIwMjIgYXQgMDI6NTQ6MzVBTSAtMDUwMCwgSmFjayBCcnVpZW5uZSB3
cm90ZToKPiBGcm9tIHRoZSB3aWtpIHBhZ2UgKGh0dHBzOi8vd2lraS52ZXhhdG9zLmNvbS9kZnB3
bSk6Cj4gPiBERlBXTSAoRHluYW1pYyBGaWx0ZXIgUHVsc2UgV2lkdGggTW9kdWxhdGlvbikgaXMg
YW4gYXVkaW8gY29kZWMKPiA+IGNyZWF0ZWQgYnkgQmVuIOKAnEdyZWFzZU1vbmtleeKAnSBSdXNz
ZWxsIGluIDIwMTIsIG9yaWdpbmFsbHkgdG8gYmUgdXNlZAo+ID4gYXMgYSB2b2ljZSBjb2RlYyBm
b3IgYXNpZWtpZXJrYSdzIHBpeG1lc3MsIGEgQyByZW1ha2Ugb2YgNjRwaXhlbHMuCj4gPiBJdCBp
cyBhIDEtYml0LXBlci1zYW1wbGUgY29kZWMgd2hpY2ggdXNlcyBhIGR5bmFtaWMtc3RyZW5ndGgg
b25lLXBvbGUKPiA+IGxvdy1wYXNzIGZpbHRlciBhcyBhIHByZWRpY3Rvci4gRHVlIHRvIHRoZSBm
YWN0IHRoYXQgYSByYXcgRFBGV00gZGVjb2RpbmcKPiA+IGNyZWF0ZXMgYSBoaWdoLXBpdGNoZWQg
d2hpbmUsIGl0IGlzIG9mdGVuIGZvbGxvd2VkIGJ5IHNvbWUgcG9zdC1wcm9jZXNzaW5nCj4gPiBm
aWx0ZXJzIHRvIG1ha2UgdGhlIHN0cmVhbSBtb3JlIGxpc3RlbmFibGUuCj4gCj4gSXQgaGFzIHJl
Y2VudGx5IGdhaW5lZCBwb3B1bGFyaXR5IHRocm91Z2ggdGhlIENvbXB1dGVyQ3JhZnQgbW9kIGZv
cgo+IE1pbmVjcmFmdCwgd2hpY2ggYWRkZWQgc3VwcG9ydCBmb3IgYXVkaW8gdGhyb3VnaCB0aGlz
IGNvZGVjLCBhcyB3ZWxsIGFzCj4gdGhlIENvbXB1dHJvbmljcyBleHBhbnNpb24gd2hpY2ggcHJl
Y2VlZGVkIHRoZSBvZmZpY2lhbCBzdXBwb3J0LiBUaGVzZQo+IGJvdGggaW1wbGVtZW50IHRoZSBz
bGlnaHRseSBhZGp1c3RlZCAxYSB2ZXJzaW9uIG9mIHRoZSBjb2RlYywgd2hpY2ggaXMKPiB0aGUg
dmVyc2lvbiBJIGhhdmUgY2hvc2VuIGZvciB0aGlzIHBhdGNoLgo+IAo+IFRoaXMgcGF0Y2ggYWRk
cyBib3RoIGEgbmV3IGNvZGVjICh3aXRoIGVuY29kaW5nIGFuZCBkZWNvZGluZyksIGFzIHdlbGwg
YXMKPiBhIHJhdyBhdWRpbyBmb3JtYXQgdG8gYmUgYWJsZSB0byByZWFkL3dyaXRlIHRoZSByYXcg
ZmlsZXMgdGhhdCBhcmUgbW9zdAo+IGNvbW1vbmx5IHVzZWQgKGFzIG5vIG90aGVyIGNvbnRhaW5l
ciBmb3JtYXQgc3VwcG9ydHMgaXQgeWV0KS4KPiAKPiBUaGUgY29kZWMgc291cmNlcyBhcmUgcHJl
dHR5IHNpbXBsZTogdGhleSB1c2UgdGhlIHJlZmVyZW5jZSBjb2RlYyB3aXRoCj4gYSBiYXNpYyB3
cmFwcGVyIHRvIGNvbm5lY3QgaXQgdG8gdGhlIEZGbXBlZyBBVkNvZGVjIHN5c3RlbS4gVGhlcmUn
cyBhCj4gYml0IG9mIGV4dHJhIGNvZGUgdG8gY29udmVydCBmcm9tIHVuc2lnbmVkIHRvIHNpZ25l
ZCA4LWJpdCBhdWRpbywgYXMgdGhlCj4gY29kZWMgaW1wbGVtZW50YXRpb24gb3BlcmF0ZXMgb24g
c2lnbmVkIGRhdGEsIHdoaWNoIEZGbXBlZyBkb2Vzbid0IHN1cHBvcnQuCj4gCj4gVGhlIG11eGVy
cyBhcmUgbW9zdGx5IGNvcGllZCBmcm9tIHRoZSBQQ00gZGVtdXhlciBhbmQgdGhlIHJhdyBtdXhl
cnMsIGFzCj4gREZQV00gaXMgdHlwaWNhbGx5IHN0b3JlZCBhcyByYXcgZGF0YS4KPiAKPiBUaGlz
IHBhdGNoIHdpbGwgYmUgaGlnaGx5IHVzZWZ1bCB0byBDb21wdXRlckNyYWZ0IGRldmVsb3BlcnMg
d2hvIGFyZQo+IHdvcmtpbmcgd2l0aCBhdWRpbywgYXMgaXQgaXMgdGhlIHN0YW5kYXJkIGZvcm1h
dCBmb3IgYXVkaW8sIGFuZCB0aGVyZQo+IGFyZSBmZXcgdXNlci1mcmllbmRseSBlbmNvZGVycyBv
dXQgdGhlcmUuIEl0IHdpbGwgc3RyZWFtbGluZSB0aGUgcHJvY2Vzcwo+IGZvciBpbXBvcnRpbmcg
YXVkaW8sIHJlcGxhY2luZyB0aGUgbmVlZCB0byB3cml0ZSBjb2RlIG9yIHVzZSB0b29scyB0aGF0
Cj4gcmVxdWlyZSB2ZXJ5IHNwZWNpZmljIGlucHV0IGZvcm1hdHMuCj4gCj4gWW91IG1heSB1c2Ug
dGhlIENyYWZ0T1MtUEMgcHJvZ3JhbSAoaHR0cHM6Ly93d3cuY3JhZnRvcy1wYy5jYykgdG8gdGVz
dAo+IG91dCBERlBXTSBwbGF5YmFjay4gVG8gdXNlIGl0LCBydW4gdGhlIHByb2dyYW0gYW5kIHR5
cGUgdGhpcyBjb21tYW5kOgo+ICJhdHRhY2ggbGVmdCBzcGVha2VyIiBUaGVuIHJ1biAic3BlYWtl
ciBwbGF5IDxmaWxlLmRmcHdtPiIgZm9yIGVhY2ggZmlsZS4KPiBUaGUgYXBwIHJ1bnMgaW4gYSBz
YW5kYm94LCBzbyBmaWxlcyBoYXZlIHRvIGJlIHRyYW5zZmVycmVkIGluIGZpcnN0Owo+IHRoZSBl
YXNpZXN0IHdheSB0byBkbyB0aGlzIGlzIHRvIHNpbXBseSBkcmFnIHRoZSBmaWxlIG9uIHRoZSB3
aW5kb3cuCj4gKE9yIGNvcHkgZmlsZXMgdG8gdGhlIGZvbGRlciBhdCBodHRwczovL3d3dy5jcmFm
dG9zLXBjLmNjL2RvY3Mvc2F2ZXMuKQo+IAo+IFNhbXBsZSBERlBXTSBmaWxlcyBjYW4gYmUgZ2Vu
ZXJhdGVkIHdpdGggYW4gb25saW5lIHRvb2wgYXQKPiBodHRwczovL211c2ljLm1hZGVmb3IuY2Mu
IFRoaXMgaXMgdGhlIGN1cnJlbnQgYmVzdCB3YXkgdG8gZW5jb2RlIERGUFdNCj4gZmlsZXMuIFNp
bXBseSBkcmFnIGFuIGF1ZGlvIGZpbGUgb250byB0aGUgcGFnZSwgYW5kIGl0IHdpbGwgZW5jb2Rl
IGl0LAo+IGdpdmluZyBhIGRvd25sb2FkIGxpbmsgb24gdGhlIHBhZ2UuCj4gCj4gSSd2ZSBtYWRl
IHN1cmUgdG8gdXBkYXRlIGFsbCBvZiB0aGUgZG9jcyBhcyBwZXIgRGV2ZWxvcGVywqc3LCBhbmQg
SSd2ZQo+IHRlc3RlZCBpdCBhcyBwZXIgc2VjdGlvbiA4LiBUZXN0IGZpbGVzIGVuY29kZWQgdG8g
REZQV00gcGxheSBjb3JyZWN0bHkKPiBpbiBDb21wdXRlckNyYWZ0LCBhbmQgb3RoZXIgZmlsZXMg
dGhhdCB3b3JrIGluIENDIGFyZSBjb3JyZWN0bHkgZGVjb2RlZC4KPiBJIGhhdmUgYWxzbyB2ZXJp
ZmllZCB0aGF0IGNvcnJ1cHQgZmlsZXMgZG8gbm90IGNyYXNoIHRoZSBkZWNvZGVyIC0gdGhpcwo+
IHNob3VsZCB0aGVvcmV0aWNhbGx5IG5vdCBiZSBhbiBpc3N1ZSBhcyB0aGUgcmVzdWx0IHNpemUg
aXMgY29uc3RhbnQgd2l0aAo+IHJlc3BlY3QgdG8gdGhlIGlucHV0IHNpemUuCj4gCj4gT25lIHRo
aW5nIEkgbm90aWNlZCBpcyB0aGF0IHRoaXMgc2FtcGxlIGZpbGUgZmFpbHMgdG8gZGVjb2RlIHRv
IHJhdzoKPiBodHRwczovL3NhbXBsZXMuZmZtcGVnLm9yZy9vZ2cvdmlyZ2lucmFkaW8tdGhyZWUt
Y29uc2VjdXRpdmUtY2hhaW5zLm9nZwo+IEl0IHJlcG9ydHMgIkFwcGxpY2F0aW9uIHByb3ZpZGVk
IGludmFsaWQsIG5vbiBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcKPiBkdHMgdG8gbXV4ZXIgaW4g
c3RyZWFtIDAiLCB3aGljaCBhcHBlYXJzIHRvIGJlIGJlY2F1c2UgdGhlIGluaXRpYWwKPiB0aW1l
c3RhbXAgaXMgbm90IDA6MDAuIFRoaXMgYWZmZWN0cyBhbGwgcmF3IG11eGVycywgaW5jbHVkaW5n
IFBDTS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKYWNrIEJydWllbm5lIDxqYWNrYnJ1aWVubmVAZ21h
aWwuY29tPgo+IC0tLQo+ICBDaGFuZ2Vsb2cgICAgICAgICAgICAgICAgIHwgICAxICsKPiAgTUFJ
TlRBSU5FUlMgICAgICAgICAgICAgICB8ICAgMiArCj4gIGRvYy9nZW5lcmFsX2NvbnRlbnRzLnRl
eGkgfCAgIDIgKwo+ICBsaWJhdmNvZGVjL01ha2VmaWxlICAgICAgIHwgICAyICsKPiAgbGliYXZj
b2RlYy9hbGxjb2RlY3MuYyAgICB8ICAgMiArCj4gIGxpYmF2Y29kZWMvY29kZWNfZGVzYy5jICAg
fCAgIDcgKysKPiAgbGliYXZjb2RlYy9jb2RlY19pZC5oICAgICB8ICAgMSArCj4gIGxpYmF2Y29k
ZWMvZGZwd21kZWMuYyAgICAgfCAxMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKwo+ICBsaWJhdmNvZGVjL2RmcHdtZW5jLmMgICAgIHwgMTQwICsrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCj4gIGxpYmF2Y29kZWMvdXRpbHMuYyAgICAgICAgfCAgIDIg
Kwo+ICBsaWJhdmNvZGVjL3ZlcnNpb24uaCAgICAgIHwgICAyICstCj4gIGxpYmF2Zm9ybWF0L01h
a2VmaWxlICAgICAgfCAgIDIgKwo+ICBsaWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgIHwgICAyICsK
PiAgbGliYXZmb3JtYXQvZGZwd21kZWMuYyAgICB8IDEwNyArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwo+ICBsaWJhdmZvcm1hdC9yYXdlbmMuYyAgICAgIHwgIDEzICsrKysKPiAgbGliYXZm
b3JtYXQvdmVyc2lvbi5oICAgICB8ICAgNCArLQo+ICAxNiBmaWxlcyBjaGFuZ2VkLCA0MjQgaW5z
ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29k
ZWMvZGZwd21kZWMuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9kZnB3bWVuYy5j
Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZvcm1hdC9kZnB3bWRlYy5jCj4gCj4gZGlmZiAt
LWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwo+IGluZGV4IDVhZDJjZWYuLmVjNjg4ZGEgMTAw
NjQ0Cj4gLS0tIGEvQ2hhbmdlbG9nCj4gKysrIGIvQ2hhbmdlbG9nCj4gQEAgLTQsNiArNCw3IEBA
IHJlbGVhc2VzIGFyZSBzb3J0ZWQgZnJvbSB5b3VuZ2VzdCB0byBvbGRlc3QuCj4gIHZlcnNpb24g
NS4xOgo+ICAtIGRpYWxvZ3VlIGVuaGFuY2UgYXVkaW8gZmlsdGVyCj4gIC0gZHJvcHBlZCBvYnNv
bGV0ZSBYdk1DIGh3YWNjZWwKPiArLSBERlBXTSBhdWRpbyBlbmNvZGVyL2RlY29kZXIgYW5kIHJh
dyBtdXhlci9kZW11eGVyCgoKS2VlcCBlbXB0eSBsaW5lIGhlcmUgYWJvdmUgYW5kIGV2ZXJ5d2hl
cmUgZWxzZSB5b3UgaGFkIHJlbW92ZWQgdGhlbS4KSXMgcGF0Y2ggY29ycnVwdGVkIHNvbWVob3c/
IEp1c3QgYXR0YWNoIGZpbGUuCkFuZCBzcGxpdCBkZW11eGVyIGFuZCBtdXhlciBhZGRpdGlvbiBm
cm9tIGRlY29kZXIgYW5kIGVuY29kZXIuCgo+ICAgIHZlcnNpb24gNS4wOgo+IGRpZmYgLS1naXQg
YS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCj4gaW5kZXggZjMzY2NiZC4uOTMxY2Y0YiAxMDA2
NDQKPiAtLS0gYS9NQUlOVEFJTkVSUwo+ICsrKyBiL01BSU5UQUlORVJTCj4gQEAgLTE2MSw2ICsx
NjEsNyBAQCBDb2RlY3M6Cj4gICAgY3NjZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZWltYXIgRG9lZmZpbmdlcgo+ICAgIGN1dmlkZGVjLmMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVGltbyBSb3RoZW5waWVsZXIKPiAgICBkY2EqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvbzg2Cj4gKyAgZGZwd20qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBKYWNrIEJydWllbm5lCj4gICAgZGlyYWMqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSb3N0aXNsYXYgUGVobGl2YW5vdgo+ICAgIGRueGhkKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQmFwdGlzdGUgQ291ZHVyaWVyCj4gICAgZG9sYnlfZSogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb284Ngo+IEBAIC00MTUsNiArNDE2LDcgQEAgTXV4ZXJzL0RlbXV4ZXJz
Ogo+ICAgIGRhc2hkZWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RldmVuIExpdQo+
ICAgIGRhc2hlbmMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2FydGhpY2sgSmV5YXBh
bAo+ICAgIGRhdWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVpbWFyIERvZWZm
aW5nZXIKPiArICBkZnB3bWRlYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIEphY2sgQnJ1
aWVubmUKPiAgICBkc3MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9sZWtzaWog
UmVtcGVsCj4gICAgZHRzZGVjLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb284Ngo+
ICAgIGR0c2hkZGVjLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGF1bCBCIE1haG9sCj4g
ZGlmZiAtLWdpdCBhL2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRleGkgYi9kb2MvZ2VuZXJhbF9jb250
ZW50cy50ZXhpCj4gaW5kZXggZGYxNjkyYy4uZmNkOWRhMSAxMDA2NDQKPiAtLS0gYS9kb2MvZ2Vu
ZXJhbF9jb250ZW50cy50ZXhpCj4gKysrIGIvZG9jL2dlbmVyYWxfY29udGVudHMudGV4aQo+IEBA
IC01NzgsNiArNTc4LDcgQEAgbGlicmFyeToKPiAgQGl0ZW0gcmF3IGFwdFggICAgICAgICAgICAg
ICAgICBAdGFiIFggQHRhYiBYCj4gIEBpdGVtIHJhdyBhcHRYIEhEICAgICAgICAgICAgICAgQHRh
YiBYIEB0YWIgWAo+ICBAaXRlbSByYXcgQ2hpbmVzZSBBVlMgdmlkZW8gICAgIEB0YWIgWCBAdGFi
IFgKPiArQGl0ZW0gcmF3IERGUFdNICAgICAgICAgICAgICAgICBAdGFiIFggQHRhYiBYCj4gIEBp
dGVtIHJhdyBEaXJhYyAgICAgICAgICAgICAgICAgQHRhYiBYIEB0YWIgWAo+ICBAaXRlbSByYXcg
RE54SEQgICAgICAgICAgICAgICAgIEB0YWIgWCBAdGFiIFgKPiAgQGl0ZW0gcmF3IERUUyAgICAg
ICAgICAgICAgICAgICBAdGFiIFggQHRhYiBYCj4gQEAgLTExOTQsNiArMTE5NSw3IEBAIGZvbGxv
d2luZyBpbWFnZSBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQ6Cj4gIEBpdGVtIENSSSBIQ0EgICAgICAg
ICAgICAgICAgQHRhYiAgICAgQHRhYiBYCj4gIEBpdGVtIERlbHBoaW5lIFNvZnR3YXJlIEludGVy
bmF0aW9uYWwgQ0lOIGF1ZGlvICBAdGFiICAgICBAdGFiICBYCj4gICAgICBAdGFiIENvZGVjIHVz
ZWQgaW4gRGVscGhpbmUgU29mdHdhcmUgSW50ZXJuYXRpb25hbCBnYW1lcy4KPiArQGl0ZW0gREZQ
V00gICAgICAgICAgICAgICAgICBAdGFiICBYICBAdGFiICBYCj4gIEBpdGVtIERpZ2l0YWwgU3Bl
ZWNoIFN0YW5kYXJkIC0gU3RhbmRhcmQgUGxheSBtb2RlIChEU1MgU1ApIEB0YWIgQHRhYiAgWAo+
ICBAaXRlbSBEaXNjd29ybGQgSUkgQk1WIEF1ZGlvIEB0YWIgICAgIEB0YWIgIFgKPiAgQGl0ZW0g
Q09PSyAgICAgICAgICAgICAgICAgICBAdGFiICAgICBAdGFiICBYCj4gZGlmZiAtLWdpdCBhL2xp
YmF2Y29kZWMvTWFrZWZpbGUgYi9saWJhdmNvZGVjL01ha2VmaWxlCj4gaW5kZXggNjA3NmI0YS4u
NzQ3NDIyMCAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL01ha2VmaWxlCj4gKysrIGIvbGliYXZj
b2RlYy9NYWtlZmlsZQo+IEBAIC0yODksNiArMjg5LDggQEAgT0JKUy0kKENPTkZJR19ERVJGX0RQ
Q01fREVDT0RFUikgICAgICAgKz0gZHBjbS5vCj4gIE9CSlMtJChDT05GSUdfRElSQUNfREVDT0RF
UikgICAgICAgICAgICs9IGRpcmFjZGVjLm8gZGlyYWMubyBkaXJhY2RzcC5vCj4gZGlyYWN0YWIu
byBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmFjX2Fy
aXRoLm8gZGlyYWNfZHd0Lm8KPiBkaXJhY192bGMubwo+ICBPQkpTLSQoQ09ORklHX0RGQV9ERUNP
REVSKSAgICAgICAgICAgICArPSBkZmEubwo+ICtPQkpTLSQoQ09ORklHX0RGUFdNX0RFQ09ERVIp
ICAgICAgICAgICArPSBkZnB3bWRlYy5vCj4gK09CSlMtJChDT05GSUdfREZQV01fRU5DT0RFUikg
ICAgICAgICAgICs9IGRmcHdtZW5jLm8KPiAgT0JKUy0kKENPTkZJR19ETlhIRF9ERUNPREVSKSAg
ICAgICAgICAgKz0gZG54aGRkZWMubyBkbnhoZGRhdGEubwo+ICBPQkpTLSQoQ09ORklHX0ROWEhE
X0VOQ09ERVIpICAgICAgICAgICArPSBkbnhoZGVuYy5vIGRueGhkZGF0YS5vCj4gIE9CSlMtJChD
T05GSUdfRE9MQllfRV9ERUNPREVSKSAgICAgICAgICs9IGRvbGJ5X2UubyBkb2xieV9lX3BhcnNl
Lm8KPiBrYmR3aW4ubwo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jIGIvbGli
YXZjb2RlYy9hbGxjb2RlY3MuYwo+IGluZGV4IGQxZTEwMTkuLmMzYTBjMjYgMTAwNjQ0Cj4gLS0t
IGEvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwo+ICsrKyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMK
PiBAQCAtNDM3LDYgKzQzNyw4IEBAIGV4dGVybiBjb25zdCBBVkNvZGVjIGZmX2Jtdl9hdWRpb19k
ZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9jb29rX2RlY29kZXI7Cj4gIGV4dGVy
biBjb25zdCBBVkNvZGVjIGZmX2RjYV9lbmNvZGVyOwo+ICBleHRlcm4gY29uc3QgQVZDb2RlYyBm
Zl9kY2FfZGVjb2RlcjsKPiArZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfZGZwd21fZW5jb2RlcjsK
PiArZXh0ZXJuIGNvbnN0IEFWQ29kZWMgZmZfZGZwd21fZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0
IEFWQ29kZWMgZmZfZG9sYnlfZV9kZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9k
c2RfbHNiZl9kZWNvZGVyOwo+ICBleHRlcm4gY29uc3QgQVZDb2RlYyBmZl9kc2RfbXNiZl9kZWNv
ZGVyOwo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYyBiL2xpYmF2Y29kZWMv
Y29kZWNfZGVzYy5jCj4gaW5kZXggNzI1YzY4Ny4uODdjYTU5MSAxMDA2NDQKPiAtLS0gYS9saWJh
dmNvZGVjL2NvZGVjX2Rlc2MuYwo+ICsrKyBiL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jCj4gQEAg
LTMyMzcsNiArMzIzNywxMyBAQCBzdGF0aWMgY29uc3QgQVZDb2RlY0Rlc2NyaXB0b3IgY29kZWNf
ZGVzY3JpcHRvcnNbXSA9Cj4gewo+ICAgICAgICAgIC5sb25nX25hbWUgPSBOVUxMX0lGX0NPTkZJ
R19TTUFMTCgiTVNOIFNpcmVuIiksCj4gICAgICAgICAgLnByb3BzICAgICA9IEFWX0NPREVDX1BS
T1BfSU5UUkFfT05MWSB8IEFWX0NPREVDX1BST1BfTE9TU1ksCj4gICAgICB9LAo+ICsgICAgewo+
ICsgICAgICAgIC5pZCAgICAgICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPiArICAgICAgICAudHlw
ZSAgICAgID0gQVZNRURJQV9UWVBFX0FVRElPLAo+ICsgICAgICAgIC5uYW1lICAgICAgPSAiZGZw
d20iLAo+ICsgICAgICAgIC5sb25nX25hbWUgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiREZQV00x
YSBhdWRpbyIpLAoKWW91IGNvdWxkIHVzZSBmdWxsIGRlc2NyaXB0aW9uIGhlcmUgaW5zdGVhZCBv
ZiBqdXN0IERGUFdNMWEuCgoKPiArICAgICAgICAucHJvcHMgICAgID0gQVZfQ09ERUNfUFJPUF9M
T1NTWSwKPiArICAgIH0sCj4gICAgICAgLyogc3VidGl0bGUgY29kZWNzICovCj4gICAgICB7Cj4g
ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvY29kZWNfaWQuaCBiL2xpYmF2Y29kZWMvY29kZWNfaWQu
aAo+IGluZGV4IGFiMjY1ZWMuLjNmZmI5YmQgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9jb2Rl
Y19pZC5oCj4gKysrIGIvbGliYXZjb2RlYy9jb2RlY19pZC5oCj4gQEAgLTUxNiw2ICs1MTYsNyBA
QCBlbnVtIEFWQ29kZWNJRCB7Cj4gICAgICBBVl9DT0RFQ19JRF9IQ0EsCj4gICAgICBBVl9DT0RF
Q19JRF9GQVNUQVVESU8sCj4gICAgICBBVl9DT0RFQ19JRF9NU05TSVJFTiwKPiArICAgIEFWX0NP
REVDX0lEX0RGUFdNLAoKS2VlcCBlbXB0eSBsaW5lIGhlcmUuCgo+ICAgICAgIC8qIHN1YnRpdGxl
IGNvZGVjcyAqLwo+ICAgICAgQVZfQ09ERUNfSURfRklSU1RfU1VCVElUTEUgPSAweDE3MDAwLCAg
ICAgICAgICAvLy88IEEgZHVtbXkgSUQgcG9pbnRpbmcKPiBhdCB0aGUgc3RhcnQgb2Ygc3VidGl0
bGUgY29kZWNzLgo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2RmcHdtZGVjLmMgYi9saWJhdmNv
ZGVjL2RmcHdtZGVjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjlm
MTI4NDEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliYXZjb2RlYy9kZnB3bWRlYy5jCj4gQEAg
LTAsMCArMSwxMzggQEAKPiArLyoKPiArICogREZQV00gZGVjb2Rlcgo+ICsgKiBDb3B5cmlnaHQg
KGMpIDIwMjIgSmFjayBCcnVpZW5uZQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTYgQmVu
ICJHcmVhc2VNb25rZXkiIFJ1c3NlbGwKPiArICoKPiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
RkZtcGVnLgo+ICsgKgo+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCj4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4gKyAqIHZlcnNpb24gMi4xIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICsg
Kgo+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKPiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKPiArICogTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiArICoKPiArICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ICsg
KiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMQo+IFVTQQo+ICsgKi8KPiArCj4gKy8qKgo+ICsg
KiBAZmlsZQo+ICsgKiBERlBXTTFhIGRlY29kZXIKPiArICovCj4gKwo+ICsjaW5jbHVkZSAibGli
YXZ1dGlsL2ludGVybmFsLmgiCj4gKyNpbmNsdWRlICJhdmNvZGVjLmgiCj4gKyNpbmNsdWRlICJj
b2RlY19pZC5oIgo+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPiArCj4gK3R5cGVkZWYgc3RydWN0
IHsKPiArICAgIGludCBmcSwgcSwgcywgbHQ7Cj4gK30gREZQV01TdGF0ZTsKPiArCj4gKy8vIERG
UFdNIGNvZGVjIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL0NoZW5UaHJlYWQvZGZwd20vYmxvYi9t
YXN0ZXIvMWEvCj4gKy8vIExpY2Vuc2VkIGluIHRoZSBwdWJsaWMgZG9tYWluCj4gKwo+ICsjaWZu
ZGVmIENPTlNUX1BSRUMKPiArI2RlZmluZSBDT05TVF9QUkVDIDEwCj4gKyNlbmRpZgo+ICsKPiAr
c3RhdGljIHZvaWQgYXVfZGVjb21wcmVzcyhERlBXTVN0YXRlICpzdGF0ZSwgaW50IGZzLCBpbnQg
bGVuLCBpbnQ4X3QKPiAqb3V0YnVmLCB1aW50OF90ICppbmJ1ZikKPiArewo+ICsgICAgaW50IGks
IGo7Cj4gKyAgICB1aW50OF90IGQ7Cj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsK
PiArICAgICAgICAvLyBnZXQgYml0cwo+ICsgICAgICAgIGQgPSAqKGluYnVmKyspOwo+ICsgICAg
ICAgIGZvciAoaiA9IDA7IGogPCA4OyBqKyspIHsKPiArICAgICAgICAgICAgaW50IG5xLCBscSwg
c3QsIG5zLCBvdjsKPiArICAgICAgICAgICAgLy8gc2V0IHRhcmdldAo+ICsgICAgICAgICAgICBp
bnQgdCA9ICgoZCYxKSA/IDEyNyA6IC0xMjgpOwo+ICsgICAgICAgICAgICBkID4+PSAxOwo+ICsK
PiArICAgICAgICAgICAgLy8gYWRqdXN0IGNoYXJnZQo+ICsgICAgICAgICAgICBucSA9IHN0YXRl
LT5xICsgKChzdGF0ZS0+cyAqICh0LXN0YXRlLT5xKSArCj4gKDE8PChDT05TVF9QUkVDLTEpKSk+
PkNPTlNUX1BSRUMpOwo+ICsgICAgICAgICAgICBpZihucSA9PSBzdGF0ZS0+cSAmJiBucSAhPSB0
KQo+ICsgICAgICAgICAgICAgICAgc3RhdGUtPnEgKz0gKHQgPT0gMTI3ID8gMSA6IC0xKTsKPiAr
ICAgICAgICAgICAgbHEgPSBzdGF0ZS0+cTsKPiArICAgICAgICAgICAgc3RhdGUtPnEgPSBucTsK
PiArCj4gKyAgICAgICAgICAgIC8vIGFkanVzdCBzdHJlbmd0aAo+ICsgICAgICAgICAgICBzdCA9
ICh0ICE9IHN0YXRlLT5sdCA/IDAgOiAoMTw8Q09OU1RfUFJFQyktMSk7Cj4gKyAgICAgICAgICAg
IG5zID0gc3RhdGUtPnM7Cj4gKyAgICAgICAgICAgIGlmKG5zICE9IHN0KQo+ICsgICAgICAgICAg
ICAgICAgbnMgKz0gKHN0ICE9IDAgPyAxIDogLTEpOwo+ICsjaWYgQ09OU1RfUFJFQyA+IDgKPiAr
ICAgICAgICAgICAgaWYobnMgPCAxKygxPDwoQ09OU1RfUFJFQy04KSkpIG5zID0gMSsoMTw8KENP
TlNUX1BSRUMtOCkpOwo+ICsjZW5kaWYKPiArICAgICAgICAgICAgc3RhdGUtPnMgPSBuczsKPiAr
Cj4gKyAgICAgICAgICAgIC8vIEZJTFRFUjogcGVyZm9ybSBhbnRpamVyawo+ICsgICAgICAgICAg
ICBvdiA9ICh0ICE9IHN0YXRlLT5sdCA/IChucStscSk+PjEgOiBucSk7Cj4gKwo+ICsgICAgICAg
ICAgICAvLyBGSUxURVI6IHBlcmZvcm0gTFBGCj4gKyAgICAgICAgICAgIHN0YXRlLT5mcSArPSAo
KGZzKihvdi1zdGF0ZS0+ZnEpICsgMHg4MCk+PjgpOwo+ICsgICAgICAgICAgICBvdiA9IHN0YXRl
LT5mcTsKPiArCj4gKyAgICAgICAgICAgIC8vIG91dHB1dCBzYW1wbGUKPiArICAgICAgICAgICAg
KihvdXRidWYrKykgPSBvdjsKPiArCj4gKyAgICAgICAgICAgIHN0YXRlLT5sdCA9IHQ7Cj4gKyAg
ICAgICAgfQo+ICsgICAgfQo+ICt9Cj4gKwo+ICtzdGF0aWMgYXZfY29sZCBpbnQgZGZwd21fZGVj
X2luaXQoc3RydWN0IEFWQ29kZWNDb250ZXh0ICpjdHgpCj4gK3sKPiArICAgIERGUFdNU3RhdGUg
KnN0YXRlID0gY3R4LT5wcml2X2RhdGE7Cj4gKwo+ICsgICAgc3RhdGUtPmZxID0gMDsKPiArICAg
IHN0YXRlLT5xID0gMDsKPiArICAgIHN0YXRlLT5zID0gMDsKPiArICAgIHN0YXRlLT5sdCA9IC0x
Mjg7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBhdl9jb2xkIGludCBk
ZnB3bV9kZWNfZW5kKHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqY3R4KQo+ICt7Cj4gKyAgICByZXR1
cm4gMDsKPiArfQoKUmVtb3ZlIGlmIG5vdCBnb25uYSBiZSB1c2VkIGFuZCBpcyBlbXB0eS4KCj4g
Kwo+ICtzdGF0aWMgaW50IGRmcHdtX2RlY19mcmFtZShzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgKmN0
eCwgdm9pZCAqZGF0YSwKPiArICAgIGludCAqZ290X2ZyYW1lLCBzdHJ1Y3QgQVZQYWNrZXQgKnBh
Y2tldCkKPiArewo+ICsgICAgREZQV01TdGF0ZSAqc3RhdGUgPSBjdHgtPnByaXZfZGF0YTsKPiAr
ICAgIEFWRnJhbWUgKmZyYW1lID0gZGF0YTsKPiArCj4gKyAgICBmcmFtZS0+Zm9ybWF0ID0gQVZf
U0FNUExFX0ZNVF9VODsKPiArICAgIGZyYW1lLT5uYl9zYW1wbGVzID0gcGFja2V0LT5zaXplICog
ODsKPiArICAgIGZyYW1lLT5jaGFubmVsX2xheW91dCA9IEFWX0NIX0xBWU9VVF9NT05POwo+ICsK
PiArICAgIGF2X2ZyYW1lX2dldF9idWZmZXIoZnJhbWUsIDApOwoKVXNlIGZmX2dldF9idWZmZXIo
KQoKU2VlIGhvdyBsaWJhdmNvZGVjL3BjbS5jIGNvZGVjcyBoYW5kbGVzIHRoYXQuCgo+ICsKPiAr
ICAgIGF1X2RlY29tcHJlc3Moc3RhdGUsIDEwMCwgcGFja2V0LT5zaXplLCBmcmFtZS0+ZGF0YVsw
XSwgcGFja2V0LT5kYXRhKTsKPiArCj4gKyAgICAvLyBjb252ZXJ0IGZyb20gc2lnbmVkIHRvIHVu
c2lnbmVkIDgtYml0LCBhcyBERlBXTSBvdXRwdXRzIFM4IGJ1dAo+IEZGbXBlZyBuZWVkcyBVOAo+
ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYWNrZXQtPnNpemUgKiA4OyBpKyspIGZyYW1lLT5k
YXRhWzBdW2ldID0KPiAoKGludDhfdCopZnJhbWUtPmRhdGFbMF0pW2ldICsgMTI4OwoKQ2FudCB5
b3UgcmVtb3ZlIHRoaXMgd3JhcHBlciwgZm9yIHN1Y2ggdHJpdmlhbCBjb2RlIGlzIG5vdCBoZWxw
aW5nIGhlcmUuClRoYW4geW91IGNhbiBkbyBjb252ZXJzaW9uIGZyb20gUzggdG8gVTggb24gdGhl
IGZseSB3aXRob3V0IG5lZWQgZm9yIGV4dHJhIGJ1ZmZlci4KCj4gKwo+ICsgICAgaWYgKGdvdF9m
cmFtZSkgKmdvdF9mcmFtZSA9IDE7Cj4gKyAgICByZXR1cm4gcGFja2V0LT5zaXplOwo+ICt9Cj4g
Kwo+ICtjb25zdCBBVkNvZGVjIGZmX2RmcHdtX2RlY29kZXIgPSB7Cj4gKyAgICAubmFtZSAgICAg
ICAgICAgPSAiZGZwd20iLAo+ICsgICAgLmxvbmdfbmFtZSAgICAgID0gTlVMTF9JRl9DT05GSUdf
U01BTEwoIkRGUFdNMWEgYXVkaW8iKSwKPiArICAgIC50eXBlICAgICAgICAgICA9IEFWTUVESUFf
VFlQRV9BVURJTywKPiArICAgIC5pZCAgICAgICAgICAgICA9IEFWX0NPREVDX0lEX0RGUFdNLAo+
ICsgICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKERGUFdNU3RhdGUpLAo+ICsgICAgLmluaXQg
ICAgICAgICAgID0gZGZwd21fZGVjX2luaXQsCj4gKyAgICAuY2xvc2UgICAgICAgICAgPSBkZnB3
bV9kZWNfZW5kLAo+ICsgICAgLmRlY29kZSAgICAgICAgID0gZGZwd21fZGVjX2ZyYW1lLAo+ICsg
ICAgLmNhcGFiaWxpdGllcyAgID0gMCwKClRoaXMgZmxhZ3MgYXJlIG5vdCBjb3JyZWN0LCBvciBv
cHRpbWFsIGluIGFueSB3YXkuCgo+ICsgICAgLmNhcHNfaW50ZXJuYWwgID0gRkZfQ09ERUNfQ0FQ
X0lOSVRfVEhSRUFEU0FGRSwKPiArfTsKPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKPiBk
aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9kZnB3bWVuYy5jIGIvbGliYXZjb2RlYy9kZnB3bWVuYy5j
Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi45N2ZjNDJlCj4gLS0tIC9k
ZXYvbnVsbAo+ICsrKyBiL2xpYmF2Y29kZWMvZGZwd21lbmMuYwo+IEBAIC0wLDAgKzEsMTQwIEBA
Cj4gKy8qCj4gKyAqIERGUFdNIGVuY29kZXIKPiArICogQ29weXJpZ2h0IChjKSAyMDIyIEphY2sg
QnJ1aWVubmUKPiArICogQ29weXJpZ2h0IChjKSAyMDEyLCAyMDE2IEJlbiAiR3JlYXNlTW9ua2V5
IiBSdXNzZWxsCj4gKyAqCj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPiArICoK
PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgo+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICogRkZtcGVn
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCj4gKyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICogTGljZW5zZSBhbG9u
ZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ICsgKiBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s
IE1BIDAyMTEwLTEzMDEKPiBVU0EKPiArICovCj4gKwo+ICsvKioKPiArICogQGZpbGUKPiArICog
REZQV00xYSBlbmNvZGVyCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5h
bC5oIgo+ICsjaW5jbHVkZSAiYXZjb2RlYy5oIgo+ICsjaW5jbHVkZSAiY29kZWNfaWQuaCIKPiAr
I2luY2x1ZGUgImludGVybmFsLmgiCj4gKwo+ICt0eXBlZGVmIHN0cnVjdCB7Cj4gKyAgICBpbnQg
ZnEsIHEsIHMsIGx0Owo+ICt9IERGUFdNU3RhdGU7Cj4gKwo+ICsvLyBERlBXTSBjb2RlYyBmcm9t
IGh0dHBzOi8vZ2l0aHViLmNvbS9DaGVuVGhyZWFkL2RmcHdtL2Jsb2IvbWFzdGVyLzFhLwo+ICsv
LyBMaWNlbnNlZCBpbiB0aGUgcHVibGljIGRvbWFpbgo+ICsKPiArI2lmbmRlZiBDT05TVF9QUkVD
Cj4gKyNkZWZpbmUgQ09OU1RfUFJFQyAxMAo+ICsjZW5kaWYKPiArCj4gKy8vIG5vdGUsIGxlbiBk
ZW5vdGVzIGhvdyBtYW55IGNvbXByZXNzZWQgYnl0ZXMgdGhlcmUgYXJlICh1bmNvbXByZXNzZWQK
PiBieXRlcyAvIDgpLgo+ICtzdGF0aWMgdm9pZCBhdV9jb21wcmVzcyhERlBXTVN0YXRlICpzdGF0
ZSwgaW50IGxlbiwgdWludDhfdCAqb3V0YnVmLCBpbnQ4X3QKPiAqaW5idWYpCj4gK3sKPiArICAg
IGludCBpLCBqOwo+ICsgICAgdWludDhfdCBkID0gMDsKPiArICAgIGZvciAoaSA9IDA7IGkgPCBs
ZW47IGkrKykgewo+ICsgICAgICAgIGZvciAoaiA9IDA7IGogPCA4OyBqKyspIHsKPiArICAgICAg
ICAgICAgaW50IG5xLCBzdCwgbnM7Cj4gKyAgICAgICAgICAgIC8vIGdldCBzYW1wbGUKPiArICAg
ICAgICAgICAgaW50IHYgPSAqKGluYnVmKyspOwo+ICsgICAgICAgICAgICAvLyBzZXQgYml0IC8g
dGFyZ2V0Cj4gKyAgICAgICAgICAgIGludCB0ID0gKHYgPCBzdGF0ZS0+cSB8fCB2ID09IC0xMjgg
PyAtMTI4IDogMTI3KTsKPiArICAgICAgICAgICAgZCA+Pj0gMTsKPiArICAgICAgICAgICAgaWYo
dCA+IDApCj4gKyAgICAgICAgICAgICAgICBkIHw9IDB4ODA7Cj4gKwo+ICsgICAgICAgICAgICAv
LyBhZGp1c3QgY2hhcmdlCj4gKyAgICAgICAgICAgIG5xID0gc3RhdGUtPnEgKyAoKHN0YXRlLT5z
ICogKHQtc3RhdGUtPnEpICsKPiAoMTw8KENPTlNUX1BSRUMtMSkpKT4+Q09OU1RfUFJFQyk7Cj4g
KyAgICAgICAgICAgIGlmKG5xID09IHN0YXRlLT5xICYmIG5xICE9IHQpCj4gKyAgICAgICAgICAg
ICAgICBucSArPSAodCA9PSAxMjcgPyAxIDogLTEpOwo+ICsgICAgICAgICAgICBzdGF0ZS0+cSA9
IG5xOwo+ICsKPiArICAgICAgICAgICAgLy8gYWRqdXN0IHN0cmVuZ3RoCj4gKyAgICAgICAgICAg
IHN0ID0gKHQgIT0gc3RhdGUtPmx0ID8gMCA6ICgxPDxDT05TVF9QUkVDKS0xKTsKPiArICAgICAg
ICAgICAgbnMgPSBzdGF0ZS0+czsKPiArICAgICAgICAgICAgaWYobnMgIT0gc3QpCj4gKyAgICAg
ICAgICAgICAgICBucyArPSAoc3QgIT0gMCA/IDEgOiAtMSk7Cj4gKyNpZiBDT05TVF9QUkVDID4g
OAo+ICsgICAgICAgICAgICBpZihucyA8IDErKDE8PChDT05TVF9QUkVDLTgpKSkgbnMgPSAxKygx
PDwoQ09OU1RfUFJFQy04KSk7Cj4gKyNlbmRpZgo+ICsgICAgICAgICAgICBzdGF0ZS0+cyA9IG5z
Owo+ICsKPiArICAgICAgICAgICAgc3RhdGUtPmx0ID0gdDsKPiArCj4gKyAgICAgICAgICAgIC8v
ZnByaW50ZihzdGRlcnIsICIlNGkgJTRpICU0aSAlNGlcbiIsIHYsICpxLCAqcywgdCk7Cj4gKyAg
ICAgICAgICAgIC8vdXNsZWVwKDEwMDAwKTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIC8v
IG91dHB1dCBiaXRzCj4gKyAgICAgICAgKihvdXRidWYrKykgPSBkOwo+ICsgICAgfQo+ICt9Cj4g
Kwo+ICtzdGF0aWMgYXZfY29sZCBpbnQgZGZwd21fZW5jX2luaXQoc3RydWN0IEFWQ29kZWNDb250
ZXh0ICpjdHgpCj4gK3sKPiArICAgIERGUFdNU3RhdGUgKnN0YXRlID0gY3R4LT5wcml2X2RhdGE7
Cj4gKwo+ICsgICAgc3RhdGUtPmZxID0gMDsKPiArICAgIHN0YXRlLT5xID0gMDsKPiArICAgIHN0
YXRlLT5zID0gMDsKPiArICAgIHN0YXRlLT5sdCA9IC0xMjg7Cj4gKwo+ICsgICAgcmV0dXJuIDA7
Cj4gK30KPiArCj4gK3N0YXRpYyBhdl9jb2xkIGludCBkZnB3bV9lbmNfZW5kKHN0cnVjdCBBVkNv
ZGVjQ29udGV4dCAqY3R4KQo+ICt7Cj4gKyAgICByZXR1cm4gMDsKPiArfQoKUGxlYXNlIHJlbW92
ZSBmdW5jdGlvbnMgdGhhdCBkbyBub3RoaW5nLgoKPiArCj4gK3N0YXRpYyBpbnQgZGZwd21fZW5j
X2ZyYW1lKHN0cnVjdCBBVkNvZGVjQ29udGV4dCAqY3R4LCBzdHJ1Y3QgQVZQYWNrZXQKPiAqcGFj
a2V0LAo+ICsgICAgY29uc3Qgc3RydWN0IEFWRnJhbWUgKmZyYW1lLCBpbnQgKmdvdF9wYWNrZXQp
Cj4gK3sKPiArICAgIERGUFdNU3RhdGUgKnN0YXRlID0gY3R4LT5wcml2X2RhdGE7Cj4gKyAgICBp
bnQgc2l6ZSA9IGZyYW1lLT5uYl9zYW1wbGVzIC8gOCArIChmcmFtZS0+bmJfc2FtcGxlcyAlIDgg
PiAwID8gMSA6IDApOwo+ICsgICAgaW50OF90ICpkYXRhID0gYXZfbWFsbG9jKHNpemUgKiA4KTsK
PiArCj4gKyAgICBpZiAoIWRhdGEpIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gKwo+ICsgICAg
aWYgKHBhY2tldC0+c2l6ZSA8IHNpemUpIGF2X2dyb3dfcGFja2V0KHBhY2tldCwgc2l6ZSAtIHBh
Y2tldC0+c2l6ZSk7Cj4gKyAgICBlbHNlIGlmIChwYWNrZXQtPnNpemUgPiBzaXplKSBhdl9zaHJp
bmtfcGFja2V0KHBhY2tldCwgc2l6ZSk7Cj4gKwo+ICsgICAgLy8gbWFrZSBhIHRlbXBvcmFyeSBT
OCBidWZmZXIgYXMgREZQV00gbmVlZHMgUzggYnV0IEZGbXBlZyB1c2VzIFU4Cj4gKyAgICBmb3Ig
KGludCBpID0gMDsgaSA8IGZyYW1lLT5uYl9zYW1wbGVzOyBpKyspIGRhdGFbaV0gPSBmcmFtZS0+
ZGF0YVswXVtpXQo+IC0gMTI4Owo+ICsgICAgZm9yIChpbnQgaSA9IGZyYW1lLT5uYl9zYW1wbGVz
OyBpIDwgc2l6ZSAqIDg7IGkrKykgZGF0YVtpXSA9IDA7Cj4gKwo+ICsgICAgYXVfY29tcHJlc3Mo
c3RhdGUsIHNpemUsIHBhY2tldC0+ZGF0YSwgZGF0YSk7Cj4gKyAgICBhdl9mcmVlKGRhdGEpOwoK
VXNpbmcgZXh0cmEgYnVmZmVyIGZvciBzdWNoIHRyaXZpYWwgY29kZSBpcyBub3Qgb3B0aW1hbCBz
b2x1dGlvbi4KCj4gKwo+ICsgICAgaWYgKGdvdF9wYWNrZXQpICpnb3RfcGFja2V0ID0gMTsKPiAr
ICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtjb25zdCBBVkNvZGVjIGZmX2RmcHdtX2VuY29kZXIg
PSB7Cj4gKyAgICAubmFtZSAgICAgICAgICAgID0gImRmcHdtIiwKPiArICAgIC5sb25nX25hbWUg
ICAgICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiREZQV00xYSBhdWRpbyIpLAo+ICsgICAgLnR5
cGUgICAgICAgICAgICA9IEFWTUVESUFfVFlQRV9BVURJTywKPiArICAgIC5pZCAgICAgICAgICAg
ICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPiArICAgIC5wcml2X2RhdGFfc2l6ZSAgPSBzaXplb2Yo
REZQV01TdGF0ZSksCj4gKyAgICAuaW5pdCAgICAgICAgICAgID0gZGZwd21fZW5jX2luaXQsCj4g
KyAgICAuY2xvc2UgICAgICAgICAgID0gZGZwd21fZW5jX2VuZCwKPiArICAgIC5lbmNvZGUyICAg
ICAgICAgPSBkZnB3bV9lbmNfZnJhbWUsCj4gKyAgICAuc2FtcGxlX2ZtdHMgICAgID0gKGNvbnN0
IGVudW0gQVZTYW1wbGVGb3JtYXRbXSl7QVZfU0FNUExFX0ZNVF9VOCwKPiBBVl9TQU1QTEVfRk1U
X05PTkV9LAo+ICsgICAgLmNoYW5uZWxfbGF5b3V0cyA9IChjb25zdCB1aW50NjRfdFtdKXtBVl9D
SF9MQVlPVVRfTU9OTywgMH0sCj4gKyAgICAuY2FwYWJpbGl0aWVzICAgID0gQVZfQ09ERUNfQ0FQ
X1ZBUklBQkxFX0ZSQU1FX1NJWkUsCj4gKyAgICAuY2Fwc19pbnRlcm5hbCAgID0gRkZfQ09ERUNf
Q0FQX0lOSVRfVEhSRUFEU0FGRSwKPiArfTsKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy91dGls
cy5jIGIvbGliYXZjb2RlYy91dGlscy5jCj4gaW5kZXggNmY5ZDkwYS4uMDY2ZGE3NiAxMDA2NDQK
PiAtLS0gYS9saWJhdmNvZGVjL3V0aWxzLmMKPiArKysgYi9saWJhdmNvZGVjL3V0aWxzLmMKPiBA
QCAtNTc3LDYgKzU3Nyw4IEBAIGVudW0gQVZDb2RlY0lEIGF2X2dldF9wY21fY29kZWMoZW51bSBB
VlNhbXBsZUZvcm1hdCBmbXQsCj4gaW50IGJlKQo+ICBpbnQgYXZfZ2V0X2JpdHNfcGVyX3NhbXBs
ZShlbnVtIEFWQ29kZWNJRCBjb2RlY19pZCkKPiAgewo+ICAgICAgc3dpdGNoIChjb2RlY19pZCkg
ewo+ICsgICAgY2FzZSBBVl9DT0RFQ19JRF9ERlBXTToKPiArICAgICAgICByZXR1cm4gMTsKPiAg
ICAgIGNhc2UgQVZfQ09ERUNfSURfQURQQ01fU0JQUk9fMjoKPiAgICAgICAgICByZXR1cm4gMjsK
PiAgICAgIGNhc2UgQVZfQ09ERUNfSURfQURQQ01fU0JQUk9fMzoKPiBkaWZmIC0tZ2l0IGEvbGli
YXZjb2RlYy92ZXJzaW9uLmggYi9saWJhdmNvZGVjL3ZlcnNpb24uaAo+IGluZGV4IGQ5MDA1MDMu
Ljg0ZjM5NzkgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy92ZXJzaW9uLmgKPiArKysgYi9saWJh
dmNvZGVjL3ZlcnNpb24uaAo+IEBAIC0yOCw3ICsyOCw3IEBACj4gICNpbmNsdWRlICJsaWJhdnV0
aWwvdmVyc2lvbi5oIgo+ICAgI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgIDU5Cj4g
LSNkZWZpbmUgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SICAyMQo+ICsjZGVmaW5lIExJQkFWQ09E
RUNfVkVSU0lPTl9NSU5PUiAgMjIKPiAgI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlDUk8g
MTAwCj4gICAjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9JTlQgQVZfVkVSU0lPTl9JTlQoTElC
QVZDT0RFQ19WRVJTSU9OX01BSk9SLCBcCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L01ha2Vm
aWxlIGIvbGliYXZmb3JtYXQvTWFrZWZpbGUKPiBpbmRleCA2NTY2ZTQwLi5iODkwNzNhIDEwMDY0
NAo+IC0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4gKysrIGIvbGliYXZmb3JtYXQvTWFrZWZp
bGUKPiBAQCAtMTY1LDYgKzE2NSw4IEBAIE9CSlMtJChDT05GSUdfREFVRF9NVVhFUikgICAgICAg
ICAgICAgICAgKz0gZGF1ZGVuYy5vCj4gIE9CSlMtJChDT05GSUdfRENTVFJfREVNVVhFUikgICAg
ICAgICAgICAgKz0gZGNzdHIubwo+ICBPQkpTLSQoQ09ORklHX0RFUkZfREVNVVhFUikgICAgICAg
ICAgICAgICs9IGRlcmYubyBwY20ubwo+ICBPQkpTLSQoQ09ORklHX0RGQV9ERU1VWEVSKSAgICAg
ICAgICAgICAgICs9IGRmYS5vCj4gK09CSlMtJChDT05GSUdfREZQV01fREVNVVhFUikgICAgICAg
ICAgICAgKz0gZGZwd21kZWMubyBwY20ubwo+ICtPQkpTLSQoQ09ORklHX0RGUFdNX01VWEVSKSAg
ICAgICAgICAgICAgICs9IHJhd2VuYy5vCj4gIE9CSlMtJChDT05GSUdfREhBVl9ERU1VWEVSKSAg
ICAgICAgICAgICAgKz0gZGhhdi5vCj4gIE9CSlMtJChDT05GSUdfRElSQUNfREVNVVhFUikgICAg
ICAgICAgICAgKz0gZGlyYWNkZWMubyByYXdkZWMubwo+ICBPQkpTLSQoQ09ORklHX0RJUkFDX01V
WEVSKSAgICAgICAgICAgICAgICs9IHJhd2VuYy5vCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0
L2FsbGZvcm1hdHMuYyBiL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwo+IGluZGV4IGQwNjZhNzcu
LjU4N2FkNTkgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCj4gKysrIGIv
bGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCj4gQEAgLTEyNCw2ICsxMjQsOCBAQCBleHRlcm4gY29u
c3QgQVZPdXRwdXRGb3JtYXQgZmZfZGF1ZF9tdXhlcjsKPiAgZXh0ZXJuIGNvbnN0IEFWSW5wdXRG
b3JtYXQgIGZmX2Rjc3RyX2RlbXV4ZXI7Cj4gIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBm
Zl9kZXJmX2RlbXV4ZXI7Cj4gIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9kZmFfZGVt
dXhlcjsKPiArZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2RmcHdtX2RlbXV4ZXI7Cj4g
K2V4dGVybiBjb25zdCBBVk91dHB1dEZvcm1hdCBmZl9kZnB3bV9tdXhlcjsKPiAgZXh0ZXJuIGNv
bnN0IEFWSW5wdXRGb3JtYXQgIGZmX2RoYXZfZGVtdXhlcjsKPiAgZXh0ZXJuIGNvbnN0IEFWSW5w
dXRGb3JtYXQgIGZmX2RpcmFjX2RlbXV4ZXI7Cj4gIGV4dGVybiBjb25zdCBBVk91dHB1dEZvcm1h
dCBmZl9kaXJhY19tdXhlcjsKPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZGZwd21kZWMuYyBi
L2xpYmF2Zm9ybWF0L2RmcHdtZGVjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw
MDAwMDAuLmFkNWJmYTUKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliYXZmb3JtYXQvZGZwd21k
ZWMuYwo+IEBAIC0wLDAgKzEsMTA3IEBACj4gKy8qCj4gKyAqIFJBVyBQQ00gZGVtdXhlcnMKPiAr
ICogQ29weXJpZ2h0IChjKSAyMDAyIEZhYnJpY2UgQmVsbGFyZAo+ICsgKiBDb3B5cmlnaHQgKGMp
IDIwMjIgSmFjayBCcnVpZW5uZQo+ICsgKgo+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1w
ZWcuCj4gKyAqCj4gKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKPiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKPiArICogdmVyc2lvbiAyLjEgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqCj4g
KyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAo+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICsgKgo+ICsgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4gKyAqIExp
Y2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKPiArICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxCj4gVVNBCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImxp
YmF2dXRpbC9hdnN0cmluZy5oIgo+ICsjaW5jbHVkZSAiYXZmb3JtYXQuaCIKPiArI2luY2x1ZGUg
ImludGVybmFsLmgiCj4gKyNpbmNsdWRlICJwY20uaCIKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9s
b2cuaCIKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKPiArI2luY2x1ZGUgImxpYmF2dXRp
bC9hdmFzc2VydC5oIgo+ICsKPiArdHlwZWRlZiBzdHJ1Y3QgREZQV01BdWRpb0RlbXV4ZXJDb250
ZXh0IHsKPiArICAgIEFWQ2xhc3MgKmNsYXNzOwo+ICsgICAgaW50IHNhbXBsZV9yYXRlOwo+ICt9
IERGUFdNQXVkaW9EZW11eGVyQ29udGV4dDsKPiArCj4gK3N0YXRpYyBpbnQgZGZwd21fcmVhZF9o
ZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQo+ICt7Cj4gKyAgICBERlBXTUF1ZGlvRGVtdXhlckNv
bnRleHQgKnMxID0gcy0+cHJpdl9kYXRhOwo+ICsgICAgQVZDb2RlY1BhcmFtZXRlcnMgKnBhcjsK
PiArICAgIEFWU3RyZWFtICpzdDsKPiArICAgIHVpbnQ4X3QgKm1pbWVfdHlwZSA9IE5VTEw7Cj4g
Kwo+ICsgICAgc3QgPSBhdmZvcm1hdF9uZXdfc3RyZWFtKHMsIE5VTEwpOwo+ICsgICAgaWYgKCFz
dCkKPiArICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ICsgICAgcGFyID0gc3QtPmNv
ZGVjcGFyOwo+ICsKPiArICAgIHBhci0+Y29kZWNfdHlwZSAgPSBBVk1FRElBX1RZUEVfQVVESU87
Cj4gKyAgICBwYXItPmNvZGVjX2lkICAgID0gcy0+aWZvcm1hdC0+cmF3X2NvZGVjX2lkOwo+ICsg
ICAgcGFyLT5zYW1wbGVfcmF0ZSA9IHMxLT5zYW1wbGVfcmF0ZTsKPiArICAgIHBhci0+Y2hhbm5l
bHMgICAgPSAxOwo+ICsKPiArICAgIGF2X29wdF9nZXQocy0+cGIsICJtaW1lX3R5cGUiLCBBVl9P
UFRfU0VBUkNIX0NISUxEUkVOLCAmbWltZV90eXBlKTsKPiArICAgIGlmIChtaW1lX3R5cGUgJiYg
cy0+aWZvcm1hdC0+bWltZV90eXBlKSB7Cj4gKyAgICAgICAgaW50IHJhdGUgPSAwOwo+ICsgICAg
ICAgIGNvbnN0IGNoYXIgKm9wdGlvbnM7Cj4gKyAgICAgICAgaWYgKGF2X3N0cmlzdGFydChtaW1l
X3R5cGUsIHMtPmlmb3JtYXQtPm1pbWVfdHlwZSwgJm9wdGlvbnMpKSB7IC8qCj4gYXVkaW8vTDE2
ICovCj4gKyAgICAgICAgICAgIHdoaWxlIChvcHRpb25zID0gc3RyY2hyKG9wdGlvbnMsICc7Jykp
IHsKPiArICAgICAgICAgICAgICAgIG9wdGlvbnMrKzsKPiArICAgICAgICAgICAgICAgIGlmICgh
cmF0ZSkKPiArICAgICAgICAgICAgICAgICAgICBzc2NhbmYob3B0aW9ucywgIiByYXRlPSVkIiwg
ICAgICZyYXRlKTsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICBpZiAocmF0ZSA8PSAw
KSB7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLAo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICJJbnZhbGlkIHNhbXBsZV9yYXRlIGZvdW5kIGluIG1pbWVfdHlwZSBc
IiVzXCJcbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgbWltZV90eXBlKTsKPiArICAgICAg
ICAgICAgICAgIGF2X2ZyZWVwKCZtaW1lX3R5cGUpOwo+ICsgICAgICAgICAgICAgICAgcmV0dXJu
IEFWRVJST1JfSU5WQUxJRERBVEE7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgcGFy
LT5zYW1wbGVfcmF0ZSA9IHJhdGU7Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsgICAgYXZfZnJl
ZXAoJm1pbWVfdHlwZSk7Cj4gKwo+ICsgICAgcGFyLT5iaXRzX3Blcl9jb2RlZF9zYW1wbGUgPSBh
dl9nZXRfYml0c19wZXJfc2FtcGxlKHBhci0+Y29kZWNfaWQpOwo+ICsKPiArICAgIGF2X2Fzc2Vy
dDAocGFyLT5iaXRzX3Blcl9jb2RlZF9zYW1wbGUgPiAwKTsKPiArCj4gKyAgICBwYXItPmJsb2Nr
X2FsaWduID0gMTsKPiArCj4gKyAgICBhdnByaXZfc2V0X3B0c19pbmZvKHN0LCA2NCwgMSwgcGFy
LT5zYW1wbGVfcmF0ZSk7Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0
IEFWT3B0aW9uIGRmcHdtX29wdGlvbnNbXSA9IHsKPiArICAgIHsgInNhbXBsZV9yYXRlIiwgIiIs
IG9mZnNldG9mKERGUFdNQXVkaW9EZW11eGVyQ29udGV4dCwgc2FtcGxlX3JhdGUpLAo+IEFWX09Q
VF9UWVBFX0lOVCwgey5pNjQgPSA0NDEwMH0sIDAsIElOVF9NQVgsIEFWX09QVF9GTEFHX0RFQ09E
SU5HX1BBUkFNIH0sCj4gKyAgICB7IE5VTEwgfSwKPiArfTsKPiArc3RhdGljIGNvbnN0IEFWQ2xh
c3MgZGZwd21fZGVtdXhlcl9jbGFzcyA9IHsKPiArICAgIC5jbGFzc19uYW1lID0gImRmcHdtIGRl
bXV4ZXIiLAo+ICsgICAgLml0ZW1fbmFtZSAgPSBhdl9kZWZhdWx0X2l0ZW1fbmFtZSwKPiArICAg
IC5vcHRpb24gICAgID0gZGZwd21fb3B0aW9ucywKPiArICAgIC52ZXJzaW9uICAgID0gTElCQVZV
VElMX1ZFUlNJT05fSU5ULAo+ICt9Owo+ICsKPiArY29uc3QgQVZJbnB1dEZvcm1hdCBmZl9kZnB3
bV9kZW11eGVyID0gewo+ICsgICAgLm5hbWUgICAgICAgICAgID0gImRmcHdtIiwKPiArICAgIC5s
b25nX25hbWUgICAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJyYXcgREZQV00xYSBkYXRhIiks
Cj4gKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2YoREZQV01BdWRpb0RlbXV4ZXJDb250ZXh0
KSwKPiArICAgIC5yZWFkX2hlYWRlciAgICA9IGRmcHdtX3JlYWRfaGVhZGVyLAo+ICsgICAgLnJl
YWRfcGFja2V0ICAgID0gZmZfcGNtX3JlYWRfcGFja2V0LAo+ICsgICAgLnJlYWRfc2VlayAgICAg
ID0gZmZfcGNtX3JlYWRfc2VlaywKPiArICAgIC5mbGFncyAgICAgICAgICA9IEFWRk1UX0dFTkVS
SUNfSU5ERVgsCj4gKyAgICAuZXh0ZW5zaW9ucyAgICAgPSAiZGZwd20iLAo+ICsgICAgLnJhd19j
b2RlY19pZCAgID0gQVZfQ09ERUNfSURfREZQV00sCj4gKyAgICAucHJpdl9jbGFzcyAgICAgPSAm
ZGZwd21fZGVtdXhlcl9jbGFzcywKPiArfTsKPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvcmF3ZW5jLmMgYi9saWJhdmZvcm1hdC9yYXdlbmMu
Ywo+IGluZGV4IDRiYmFlNzcuLjE3YjYyN2IgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvcmF3
ZW5jLmMKPiArKysgYi9saWJhdmZvcm1hdC9yYXdlbmMuYwo+IEBAIC0xOTIsNiArMTkyLDE5IEBA
IGNvbnN0IEFWT3V0cHV0Rm9ybWF0IGZmX2RhdGFfbXV4ZXIgPSB7Cj4gIH07Cj4gICNlbmRpZgo+
ICArI2lmIENPTkZJR19ERlBXTV9NVVhFUgo+ICtjb25zdCBBVk91dHB1dEZvcm1hdCBmZl9kZnB3
bV9tdXhlciA9IHsKPiArICAgIC5uYW1lICAgICAgICAgICAgICA9ICJkZnB3bSIsCj4gKyAgICAu
bG9uZ19uYW1lICAgICAgICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTCgicmF3IERGUFdNMWEgYXVk
aW8iKSwKPiArICAgIC5leHRlbnNpb25zICAgICAgICA9ICJkZnB3bSIsCj4gKyAgICAuYXVkaW9f
Y29kZWMgICAgICAgPSBBVl9DT0RFQ19JRF9ERlBXTSwKPiArICAgIC52aWRlb19jb2RlYyAgICAg
ICA9IEFWX0NPREVDX0lEX05PTkUsCj4gKyAgICAuaW5pdCAgICAgICAgICAgICAgPSBmb3JjZV9v
bmVfc3RyZWFtLAo+ICsgICAgLndyaXRlX3BhY2tldCAgICAgID0gZmZfcmF3X3dyaXRlX3BhY2tl
dCwKPiArICAgIC5mbGFncyAgICAgICAgICAgICA9IEFWRk1UX05PVElNRVNUQU1QUywKPiArfTsK
PiArI2VuZGlmCj4gKwo+ICAjaWYgQ09ORklHX0RJUkFDX01VWEVSCj4gIGNvbnN0IEFWT3V0cHV0
Rm9ybWF0IGZmX2RpcmFjX211eGVyID0gewo+ICAgICAgLm5hbWUgICAgICAgICAgICAgID0gImRp
cmFjIiwKPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvdmVyc2lvbi5oIGIvbGliYXZmb3JtYXQv
dmVyc2lvbi5oCj4gaW5kZXggMjYyMzQ1Ny4uMGY4OWFmNCAxMDA2NDQKPiAtLS0gYS9saWJhdmZv
cm1hdC92ZXJzaW9uLmgKPiArKysgYi9saWJhdmZvcm1hdC92ZXJzaW9uLmgKPiBAQCAtMzIsOCAr
MzIsOCBAQAo+ICAvLyBNYWpvciBidW1waW5nIG1heSBhZmZlY3QgVGlja2V0NTQ2NywgNTQyMSwg
NTQ1MShjb21wYXRpYmlsaXR5IHdpdGgKPiBDaHJvbWl1bSkKPiAgLy8gQWxzbyBwbGVhc2UgYWRk
IGFueSB0aWNrZXQgbnVtYmVycyB0aGF0IHlvdSBiZWxpZXZlIG1pZ2h0IGJlIGFmZmVjdGVkCj4g
aGVyZQo+ICAjZGVmaW5lIExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1IgIDU5Cj4gLSNkZWZpbmUg
TElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiAgMTcKPiAtI2RlZmluZSBMSUJBVkZPUk1BVF9WRVJT
SU9OX01JQ1JPIDEwMgo+ICsjZGVmaW5lIExJQkFWRk9STUFUX1ZFUlNJT05fTUlOT1IgIDE4Cj4g
KyNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lPTl9NSUNSTyAxMDAKPiAgICNkZWZpbmUgTElCQVZG
T1JNQVRfVkVSU0lPTl9JTlQgQVZfVkVSU0lPTl9JTlQoTElCQVZGT1JNQVRfVkVSU0lPTl9NQUpP
UiwKPiBcCj4gCj4gTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiwgXAo+IC0tIAo+IDIuMzUuMQo+
IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZmZt
cGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0cHM6
Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4gCj4gVG8gdW5zdWJz
Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RA
ZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApm
Zm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5m
by9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFp
bApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3Jp
YmUiLgo=