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 509884AF8E
	for <ffmpegdev@gitmailbox.com>; Sat, 25 May 2024 11:00:27 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F172168D4E9;
	Sat, 25 May 2024 14:00:24 +0300 (EEST)
Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com
 [209.85.128.48])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5119768D29F
 for <ffmpeg-devel@ffmpeg.org>; Sat, 25 May 2024 14:00:18 +0300 (EEST)
Received: by mail-wm1-f48.google.com with SMTP id
 5b1f17b1804b1-42102c51524so14979335e9.1
 for <ffmpeg-devel@ffmpeg.org>; Sat, 25 May 2024 04:00:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1716634817; x=1717239617; darn=ffmpeg.org;
 h=user-agent:in-reply-to:content-transfer-encoding
 :content-disposition:mime-version:references:mail-followup-to
 :message-id:subject:cc:to:from:date:from:to:cc:subject:date
 :message-id:reply-to;
 bh=Ksb+9TYe4TGXLHr4VYigdIoELXPgp2nxLf3rAPAcr1A=;
 b=R6a3mKq/aBQQrlSbM06jGaOoKGQP7Blb18ZTtVXGjZLL5JQP7qkPhyANtY7jLNH2VX
 BugGKD8YIxIguV4UlMxjU2jC6aqoW5OKBz+EuKMYDZmf8j5A3P2ghI2DFAE+jp4bjHUO
 viR4Sa3SSfWyA0A2uqmAinQBRNbLDipIOms6gfaOu4HB6Yeppm0gCy4HtzxZoJuMDE6d
 uGkRKMYe81Hpxgd6FZHp0sVVa082fCcdcpwmK8PlATmRX2GkBauTNVWFWCxyoEzXd3kJ
 po9coWfCvbNlEKACqvcztzUn21Ee2ZnTMFOGKv4q059ndWg/dc7FoGhosTwWS3q49qIa
 84Zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1716634817; x=1717239617;
 h=user-agent:in-reply-to:content-transfer-encoding
 :content-disposition:mime-version:references:mail-followup-to
 :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=Ksb+9TYe4TGXLHr4VYigdIoELXPgp2nxLf3rAPAcr1A=;
 b=t7LNfuvAaYLgRTMU/HhT9l02vVkhcGuTpEuW5e/PgkO7HUZgAH6W1KpXomvtSA2mSN
 pUcfNh9BwVsYqTQ6QPXV2Fn4iUK/Fx83UilEafkQOxHCcwPreWLn20Otq3Q40mQJVbZ1
 m8ycRtzOYSZS+OOSfSdWNsLMpjWjsMoLhcEQQstz0ulkDPCy42OO5TBJBVUgeJ8UC3x/
 +fUKv+lQksWT294ZsP2OPbvJOjsRIro6oRn0uz4wQlakL0S0aNAzHPDxpjm36ZEGieaF
 T9mamKFhOFSD6Q3F2k4VNtHJyzdEAZWpiPWpttFs7o4lvbXyaCBafRFobiKkzkigPj4i
 YuVw==
X-Gm-Message-State: AOJu0YwK9CrmIqs1BWNDUO//XTg7Ek17ZIuGIbFTQeroIjeRoEG/F0Qk
 92fm9w3ZL9yzSvY+IfnwtZvfq3p2iE5qsgo7eF9S2It498AbI5A3R9Xzvg==
X-Google-Smtp-Source: AGHT+IHiOfP4u1ByAVwyNjA8ZM80HP3bHnDKFwaJjqVkE8rZGu+k19Up8+09AiyM3hJyVTQs6arGBQ==
X-Received: by 2002:a05:600c:287:b0:41b:4caa:554c with SMTP id
 5b1f17b1804b1-421081a4b29mr46703925e9.2.1716634816171; 
 Sat, 25 May 2024 04:00:16 -0700 (PDT)
Received: from mariano (dynamic-adsl-84-220-189-10.clienti.tiscali.it.
 [84.220.189.10]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3557a08a88esm3735941f8f.41.2024.05.25.04.00.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 25 May 2024 04:00:15 -0700 (PDT)
Received: by mariano (Postfix, from userid 1000)
 id 87A63BFCE8; Sat, 25 May 2024 13:00:14 +0200 (CEST)
Date: Sat, 25 May 2024 13:00:14 +0200
From: Stefano Sabatini <stefasab@gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Message-ID: <ZlHEvj+VS/F4Qpik@mariano>
Mail-Followup-To: FFmpeg development discussions and patches
 <ffmpeg-devel@ffmpeg.org>, 
 Andrew Sayers <ffmpeg-devel@pileofstuff.org>
References: <Zk27iNSGWDjzDpr5@mariano>
 <20240523200116.740461-1-ffmpeg-devel@pileofstuff.org>
 <20240523200116.740461-2-ffmpeg-devel@pileofstuff.org>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20240523200116.740461-2-ffmpeg-devel@pileofstuff.org>
User-Agent: Mutt/2.1.4 (2021-12-11)
Subject: Re: [FFmpeg-devel] [PATCH v5 1/4] doc: Explain what "context" means
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: Andrew Sayers <ffmpeg-devel@pileofstuff.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/ZlHEvj+VS%2FF4Qpik@mariano/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

T24gZGF0ZSBUaHVyc2RheSAyMDI0LTA1LTIzIDIxOjAwOjQwICswMTAwLCBBbmRyZXcgU2F5ZXJz
IHdyb3RlOgo+IERlcml2ZWQgZnJvbSBleHBsYW5hdGlvbnMga2luZGx5IHByb3ZpZGVkIGJ5IFN0
ZWZhbm8gU2FiYXRpbmkgYW5kIG90aGVyczoKPiBodHRwczovL2ZmbXBlZy5vcmcvcGlwZXJtYWls
L2ZmbXBlZy1kZXZlbC8yMDI0LUFwcmlsLzMyNTkwMy5odG1sCj4gLS0tCj4gIGRvYy9jb250ZXh0
Lm1kIHwgNDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysKPiAgMSBmaWxlIGNoYW5nZWQsIDQzOSBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEw
MDY0NCBkb2MvY29udGV4dC5tZAo+IAo+IGRpZmYgLS1naXQgYS9kb2MvY29udGV4dC5tZCBiL2Rv
Yy9jb250ZXh0Lm1kCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwLi4y
MTQ2OWE2ZTU4Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RvYy9jb250ZXh0Lm1kCj4gQEAgLTAs
MCArMSw0MzkgQEAKPiArQHBhZ2UgQ29udGV4dCBJbnRyb2R1Y3Rpb24gdG8gY29udGV4dHMKPiAr
Cj4gK0B0YWJsZW9mY29udGVudHMKPiArCgo+ICvigJxDb250ZXh04oCdIGlzIGEgbmFtZSBmb3Ig
YSB3aWRlbHktdXNlZCBwcm9ncmFtbWluZyBpZGlvbS4KCm5pdCsrOiBiZXR0ZXIgdG8gdXNlIHNp
bXBsZSAiIiBxdW90aW5nIHRvIGhlbHAgcGVvcGxlIHdpdGggc2ltcGxlCmFzY2lpIGtleWJvYXJk
IGxheW91dHMuCgpuaXQrKzogIkNvbnRleHQiIGlzIGEgbmFtZSBlbXBsb3llZCBmb3IgYSB3aWRl
bHktdXNlZCBwcm9ncmFtbWluZyBpZGlvbS4KCnNpbmNlICJjb250ZXh0IiBpcyBub3QgdGhlIGlk
aW9tIGl0c2VsZi4KCj4gK1RoaXMgZG9jdW1lbnQgZXhwbGFpbnMgdGhlIGdlbmVyYWwgaWRpb20g
YW5kIHNvbWUgY29udmVudGlvbnMgdXNlZCBieSBGRm1wZWcuCj4gKwo+ICtUaGlzIGRvY3VtZW50
IHVzZXMgb2JqZWN0LW9yaWVudGVkIGFuYWxvZ2llcyBmb3IgcmVhZGVycyBmYW1pbGlhciB3aXRo
Cj4gK1tvYmplY3Qtb3JpZW50ZWQgcHJvZ3JhbW1pbmddKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9y
Zy93aWtpL09iamVjdC1vcmllbnRlZF9wcm9ncmFtbWluZykuCj4gK0J1dCBjb250ZXh0cyBjYW4g
YWxzbyBiZSB1c2VkIG91dHNpZGUgb2YgT09QLCBhbmQgZXZlbiBpbiBzaXR1YXRpb25zIHdoZXJl
IE9PUAo+ICtpc24ndCBoZWxwZnVsLiAgU28gdGhlc2UgYW5hbG9naWVzIHNob3VsZCBvbmx5IGJl
IHVzZWQgYXMgYSByb3VnaCBndWlkZS4KPiArCj4gK0BzZWN0aW9uIENvbnRleHRfZ2VuZXJhbCDi
gJxDb250ZXh04oCdIGFzIGEgZ2VuZXJhbCBjb25jZXB0Cj4gKwo+ICtNYW55IHByb2plY3RzIHVz
ZSBzb21lIGtpbmQgb2Yg4oCcY29udGV4dOKAnSBpZGlvbS4gIFlvdSBjYW4gc2FmZWx5IHNraXAg
dGhpcwo+ICtzZWN0aW9uIGlmIHlvdSBoYXZlIHVzZWQgY29udGV4dHMgaW4gYW5vdGhlciBwcm9q
ZWN0LiAgWW91IG1pZ2h0IGFsc28gcHJlZmVyIHRvCj4gK3JlYWQgQHJlZiBDb250ZXh0X2NvbXBh
cmlzb24gYmVmb3JlIGNvbnRpbnVpbmcgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQuCj4g
Kwo+ICtAc3Vic2VjdGlvbiBDb250ZXh0X3RoaW5rIOKAnENvbnRleHTigJ0gYXMgYSB3YXkgdG8g
dGhpbmsgYWJvdXQgY29kZQo+ICsKPiArQSBjb250ZXh0IGlzIGFueSBkYXRhIHN0cnVjdHVyZSB0
aGF0IGlzIHBhc3NlZCB0byBzZXZlcmFsIGZ1bmN0aW9ucwo+ICsob3Igc2V2ZXJhbCBpbnN0YW5j
ZXMgb2YgdGhlIHNhbWUgZnVuY3Rpb24pIHRoYXQgYWxsIG9wZXJhdGUgb24gdGhlIHNhbWUgZW50
aXR5Lgo+ICtGb3IgZXhhbXBsZSwgW29iamVjdC1vcmllbnRlZCBwcm9ncmFtbWluZ10oaHR0cHM6
Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvT2JqZWN0LW9yaWVudGVkX3Byb2dyYW1taW5nKQo+ICts
YW5ndWFnZXMgdXN1YWxseSBwcm92aWRlIG1lbWJlciBmdW5jdGlvbnMgd2l0aCBhIGB0aGlzYCBv
ciBgc2VsZmAgdmFsdWU6Cj4gKwoKPiArYGBgcHl0aG9uCj4gKyMgUHl0aG9uIG1ldGhvZHMgKGZ1
bmN0aW9ucyB3aXRoaW4gY2xhc3NlcykgbXVzdCBzdGFydCB3aXRoIGFuIG9iamVjdCBhcmd1bWVu
dCwKPiArIyB3aGljaCBkb2VzIGEgc2ltaWxhciBqb2IgdG8gYSBjb250ZXh0Ogo+ICtjbGFzcyBN
eUNsYXNzOgo+ICsgICAgZGVmIG15X2Z1bmMoc2VsZik6Cj4gKyAgICAgICAgLi4uCj4gK2BgYAoK
bml0OiBhcyBub3RlZCwgSSdkIHNraXAgdGhpcyBleGFtcGxlIGFsdG9nZXRoZXIKCj4gK0NvbnRl
eHRzIGNhbiBhbHNvIGJlIHVzZWQgaW4gQy1zdHlsZSBwcm9jZWR1cmFsIGNvZGUuICBJZiB5b3Ug
aGF2ZSBldmVyIHdyaXR0ZW4KPiArYSBjYWxsYmFjayBmdW5jdGlvbiwgeW91IGhhdmUgcHJvYmFi
bHkgdXNlZCBhIGNvbnRleHQ6Cj4gKwo+ICtgYGBjCj4gK3N0cnVjdCBGaWxlUmVhZGVyIHsKPiAr
ICAgIEZJTEUqIGZpbGU7Cj4gK307Cj4gKwo+ICtpbnQgbXlfY2FsbGJhY2sodm9pZCAqbXlfdmFy
XywgdWludDhfdCogYnVmLCBpbnQgYnVmX3NpemUpIHsKPiArCj4gKyAgICAvLyBteV92YXIgcHJv
dmlkZXMgY29udGV4dCBmb3IgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uOgo+ICsgICAgc3RydWN0IEZp
bGVSZWFkZXIgKm15X3ZhciA9IChzdHJ1Y3QgRmlsZVJlYWRlciAqKW15X3Zhcl87Cj4gKwo+ICsg
ICAgcmV0dXJuIHJlYWQobXlfdmFyLT5maWxlLCBzaXplb2YoKmJ1ZiksIGJ1Zl9zaXplKTsKPiAr
fQo+ICsKPiArdm9pZCBpbml0KCkgewo+ICsKPiArICAgIHN0cnVjdCBGaWxlUmVhZGVyIG15X3Zh
cjsKPiArICAgIG15X3Zhci0+ZmlsZSA9IGZvcGVuKCJteS1maWxlIiwgInJiIik7Cj4gKwo+ICsg
ICAgcmVnaXN0ZXJfY2FsbGJhY2sobXlfY2FsbGJhY2ssICZteV92YXIpOwo+ICsKPiArICAgIC4u
Lgo+ICsKPiArICAgIGZjbG9zZSggbXlfdmFyLT5maWxlICk7Cj4gKwo+ICt9Cj4gK2BgYAoKTm90
IGNvbnZpbmNlZCB0aGlzIGlzIGEgZ29vZCBleGFtcGxlLCBlc3BlY2lhbGx5IGdpdmVuIHRoYXQg
YSBzdHJ1Y3QKd2l0aCBhIHNpbmdsZSBmaWVsZCBtaWdodCBiZSB1c2VkIGRpcmVjdGx5IHNvIHRo
aXMgbG9va3MgYSBiaXQgbGlrZQpvYmZ1c2NhdGlvbi4KClJhdGhlciB0aGFuIHRoaXMsIG1heWJl
IHNvbWV0aGluZyBhczoKCnN0cnVjdCBBVkJpa2VTaGVkQ29udGV4dCB7CiAgICB1aW50OF90IGNv
bG9yX3I7CiAgICB1aW50OF90IGNvbG9yX2c7CiAgICB1aW50OF90IGNvbG9yX2I7CiAgICBjaGFy
ICpjb2xvcjsKICAgIGludCAoKiBzZXRfZGVmYXVsdF9jb2xvcikoY29uc3QgY2hhciAqY29sb3Ip
Owp9CgpBVkJpa2VTaGVkQ29udGV4dCAqYXZfYmlrZXNoZWRfY29udGV4dF9hbGxvYygpOwppbnQg
ICAgICAgICAgICAgICAgYXZfYmlrZXNoZWRfY29udGV4dF9zZXRfY29sb3IoQVZCaWtlU2hlZENv
bnRleHQgKmJpa2VzaGVkLCBjb25zdCBjaGFyICpjb2xvcik7CmNvbnN0IGNoYXIgICAgICAgICph
dl9iaWtlc2hlZF9jb250ZXh0X2dldF9jb2xvcihBVkJpa2VTaGVkQ29udGV4dCAqYmlrZXNoZWQp
Owp2b2lkICAgICAgICAgICAgICAgYXZfYmlrZXNoZWRfY29udGV4dF9nZXRfcmdiX2NvbG9yKEFW
QmlrZVNoZWRDb250ZXh0ICpiaWtlc2hlZCwgdWludDhfdCAqY29sb3JfciwgdWludDhfdCAqY29s
b3JfZywgdWludDhfdCAqY29sb3JfYik7CgpUaGVuIHlvdSBjYW4gdXNlOgppbnQgc2V0X2Jpa2Vz
aGVkX3BpbmtfY29sb3IoQVZCaWtlU2hlZENvbnRleHQgKmJpa2VzaGVkLCBjb25zdCBjaGFyICpj
b2xvcikgewogICAgcmV0dXJuIGF2X2Jpa2VzaGVkX2NvbnRleHRfc2V0X2NvbG9yKGJpa2VzaGVk
LCAicGluayIpOwp9CgpiaWtlc2hlZC0+c2V0X2RlZmF1bHRfY29sb3IgPSBzZXRfYmlrZXNoZWRf
cGlua19jb2xvcjsKCnRvIHByb3ZpZGUgYSBjYWxsYmFjayBleGFtcGxlCgo+ICtJbiB0aGUgYnJv
YWRlc3Qgc2Vuc2UsIGEgY29udGV4dCBpcyBqdXN0IGEgd2F5IHRvIHRoaW5rIGFib3V0IHNvbWUg
Y29kZS4KPiArWW91IGNhbiBldmVuIHVzZSBpdCB0byB0aGluayBhYm91dCBjb2RlIHdyaXR0ZW4g
YnkgcGVvcGxlIHdobyBoYXZlIG5ldmVyCj4gK2hlYXJkIHRoZSB0ZXJtLCBvciB3aG8gd291bGQg
ZGlzYWdyZWUgd2l0aCB5b3UgYWJvdXQgd2hhdCBpdCBtZWFucy4KPiArQnV0IHdoZW4gRkZtcGVn
IGRldmVsb3BlcnMgc2F5IOKAnGNvbnRleHTigJ0sIHRoZXkncmUgdXN1YWxseSB0YWxraW5nIGFi
b3V0Cj4gK2EgbW9yZSBzcGVjaWZpYyBzZXQgb2YgY29udmVudGlvbnMuCj4gKwo+ICtAc3Vic2Vj
dGlvbiBDb250ZXh0X2NvbW11bmljYXRpb24g4oCcQ29udGV4dOKAnSBhcyBhIHRvb2wgb2YgY29t
bXVuaWNhdGlvbgo+ICsKPiAr4oCcQ29udGV4dOKAnCBjYW4ganVzdCBiZSBhIHdvcmQgdG8gdW5k
ZXJzdGFuZCBjb2RlIGluIHlvdXIgb3duIGhlYWQsCj4gK2J1dCBpdCBjYW4gYWxzbyBiZSBhIHRl
cm0geW91IHVzZSB0byBleHBsYWluIHlvdXIgaW50ZXJmYWNlcy4KPiArSGVyZSBpcyBhIHZlcnNp
b24gb2YgdGhlIGNhbGxiYWNrIGV4YW1wbGUgdGhhdCBtYWtlcyB0aGUgY29udGV4dCBleHBsaWNp
dDoKPiArCj4gK2BgYGMKPiArc3RydWN0IEZpbGVSZWFkZXJDb250ZXh0IHsKPiArICAgIEZJTEUg
KmZpbGU7Cj4gK307Cj4gKwo+ICtpbnQgbXlfY2FsbGJhY2sodm9pZCAqY3R4XywgdWludDhfdCAq
YnVmLCBpbnQgYnVmX3NpemUpIHsKPiArCj4gKyAgICAvLyBjdHggcHJvdmlkZXMgY29udGV4dCBm
b3IgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uOgo+ICsgICAgc3RydWN0IEZpbGVSZWFkZXJDb250ZXh0
ICpjdHggPSAoc3RydWN0IEZpbGVSZWFkZXJDb250ZXh0ICopY3R4XzsKPiArCj4gKyAgICByZXR1
cm4gcmVhZChjdHgtPmZpbGUsIHNpemVvZigqYnVmKSwgYnVmX3NpemUpOwo+ICt9Cj4gKwo+ICt2
b2lkIGluaXQoKSB7Cj4gKwo+ICsgICAgc3RydWN0IEZpbGVSZWFkZXIgY3R4OwoKPiArICAgIGN0
eC0+ZmlsZSA9IGZvcGVuKCJteS1maWxlIiwgInJiIik7Cgp0aGlzIHNob3VsZCBiZSBjdHguZmls
ZQoKPiArCj4gKyAgICByZWdpc3Rlcl9jYWxsYmFjayhteV9jYWxsYmFjaywgJmN0eCk7CgpJIGRv
bid0IHVuZGVyc3RhbmQgd2hhdCdzIHRoaXMgZm9yCgo+ICsKPiArICAgIC4uLgo+ICsKPiArICAg
IGZjbG9zZSggY3R4LT5maWxlICk7Cj4gKwo+ICt9Cj4gK2BgYAo+ICsKPiArVGhlIGRpZmZlcmVu
Y2UgaGVyZSBpcyBzdWJ0bGUsIGJ1dCBpbXBvcnRhbnQuICBJZiBhIHBpZWNlIG9mIGNvZGUKPiAr
KmFwcGVhcnMgY29tcGF0aWJsZSB3aXRoIGNvbnRleHRzKiwgdGhlbiB5b3UgYXJlICphbGxvd2Vk
IHRvIHRoaW5rCj4gK3RoYXQgd2F5KiwgYnV0IGlmIGEgcGllY2Ugb2YgY29kZSAqZXhwbGljaXRs
eSBzdGF0ZXMgaXQgdXNlcwo+ICtjb250ZXh0cyosIHRoZW4geW91IGFyZSAqcmVxdWlyZWQgdG8g
Zm9sbG93IHRoYXQgYXBwcm9hY2gqLgo+ICsKPiArRm9yIGV4YW1wbGUsIHRha2UgYSBsb29rIGF0
IGF2aW9fYWxsb2NfY29udGV4dCgpLgo+ICtUaGUgZnVuY3Rpb24gbmFtZSBhbmQgcmV0dXJuIHZh
bHVlIGJvdGggc3RhdGUgaXQgdXNlcyBjb250ZXh0cywKCj4gK3NvIGZhaWxpbmcgdG8gZm9sbG93
IHRoYXQgYXBwcm9hY2ggaXMgYSBidWcgeW91IGNhbiByZXBvcnQuCgoiZmFpbGluZyB0byBmb2xs
b3cgdGhhdCBhcHByb2FjaCIgaXMgbWVhbnQgYXQgdGhlIEFQSSBsZXZlbD8KCj4gK0J1dCBpdHMg
YXJndW1lbnRzIGFyZSBhIHNldCBvZiBjYWxsYmFja3MgdGhhdCBtZXJlbHkgYXBwZWFyIGNvbXBh
dGlibGUgd2l0aAo+ICtjb250ZXh0cywgc28gaXQncyBmaW5lIHRvIHdyaXRlIGEgYHJlYWRfcGFj
a2V0YCBmdW5jdGlvbiB0aGF0IGp1c3QgcmVhZHMKPiArZnJvbSBzdGFuZGFyZCBpbnB1dC4KPiAr
Cj4gK1doZW4gYSBwcm9ncmFtbWVyIHNheXMgdGhlaXIgY29kZSBpcyAiYSBjb250ZXh0IiwgdGhl
eSdyZSBndWFyYW50ZWVpbmcKPiArdG8gZm9sbG93IGEgc2V0IG9mIGNvbnZlbnRpb25zIGVuZm9y
Y2VkIGJ5IHRoZWlyIGNvbW11bml0eSAtIGZvciBleGFtcGxlLAo+ICt0aGUgRkZtcGVnIGNvbW11
bml0eSBlbmZvcmNlcyB0aGF0IGNvbnRleHRzIGhhdmUgc2VwYXJhdGUgYWxsb2NhdGlvbiwKPiAr
Y29uZmlndXJhdGlvbiwgYW5kIGluaXRpYWxpemF0aW9uIHN0ZXBzLiAgVGhhdCdzIGRpZmZlcmVu
dCBmcm9tIHNheWluZwo+ICt0aGVpciBjb2RlIGlzICJhbiBvYmplY3QiLCB3aGljaCBub3JtYWxs
eSBndWFyYW50ZWVzIHRvIGZvbGxvdyBjb252ZW50aW9ucwo+ICtlbmZvcmNlZCBieSB0aGVpciBw
cm9ncmFtbWluZyBsYW5ndWFnZSAoZS5nLiB1c2luZyBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uKS4K
PiArCj4gK0BzZWN0aW9uIENvbnRleHRfZmZtcGVnIEZGbXBlZyBjb250ZXh0cwo+ICsKPiArVGhp
cyBzZWN0aW9uIGRpc2N1c3NlcyBzcGVjaWZpYyBjb250ZXh0LXJlbGF0ZWQgY29udmVudGlvbnMg
dXNlZCBpbiBGRm1wZWcuCj4gK1NvbWUgb2YgdGhlc2UgYXJlIHVzZWQgaW4gb3RoZXIgcHJvamVj
dHMsIG90aGVycyBhcmUgdW5pcXVlIHRvIHRoaXMgcHJvamVjdC4KPiArCj4gK0BzdWJzZWN0aW9u
IENvbnRleHRfbmFtaW5nIE5hbWluZzog4oCcQ29udGV4dOKAnSBhbmQg4oCcY3R44oCdCj4gKwo+
ICtgYGBjCj4gKy8vIENvbnRleHQgc3RydWN0IG5hbWVzIHVzdWFsbHkgZW5kIHdpdGggYENvbnRl
eHRgOgo+ICtzdHJ1Y3QgQVZTb21lQ29udGV4dCB7Cj4gKyAgLi4uCj4gK307Cj4gKwo+ICsvLyBG
dW5jdGlvbnMgYXJlIHVzdWFsbHkgbmFtZWQgYWZ0ZXIgdGhlaXIgY29udGV4dCwKPiArLy8gY29u
dGV4dCBwYXJhbWV0ZXJzIHVzdWFsbHkgY29tZSBmaXJzdCBhbmQgYXJlIG9mdGVuIGNhbGxlZCBg
Y3R4YDoKPiArdm9pZCBhdl9zb21lX2Z1bmN0aW9uKEFWU29tZUNvbnRleHQgKmN0eCwgLi4uKTsK
PiArYGBgCj4gKwo+ICtJZiBhbiBGRm1wZWcgc3RydWN0IGlzIGludGVuZGVkIGZvciB1c2UgYXMg
YSBjb250ZXh0LCBpdHMgbmFtZSB1c3VhbGx5Cj4gK21ha2VzIHRoYXQgY2xlYXIuICBFeGNlcHRp
b25zIHRvIHRoaXMgcnVsZSBpbmNsdWRlIEFWTUQ1LCB3aGljaCBpcyBvbmx5Cj4gK2lkZW50aWZp
ZWQgYXMgYSBjb250ZXh0IGJ5IEByZWYgbGliYXZ1dGlsL21kNS5jICJ0aGUgZnVuY3Rpb25zIHRo
YXQgY2FsbCBpdCIuCj4gKwo+ICtJZiBhIGZ1bmN0aW9uIGlzIGFzc29jaWF0ZWQgd2l0aCBhIGNv
bnRleHQsIGl0cyBuYW1lIHVzdWFsbHkKPiArYmVnaW5zIHdpdGggc29tZSB2YXJpYW50IG9mIHRo
ZSBjb250ZXh0IG5hbWUgKGUuZy4gYXZfbWQ1X2FsbG9jKCkKPiArb3IgYXZjb2RlY19hbGxvY19j
b250ZXh0MygpKS4gIEV4Y2VwdGlvbnMgdG8gdGhpcyBydWxlIGluY2x1ZGUKPiArQHJlZiBhdmZv
cm1hdC5oICJBVkZvcm1hdENvbnRleHQncyBmdW5jdGlvbnMiLCBtYW55IG9mIHdoaWNoCj4gK2Jl
Z2luIHdpdGgganVzdCBgYXZfYC4KPiArCj4gK0lmIGEgZnVuY3Rpb24gaGFzIGEgY29udGV4dCBw
YXJhbWV0ZXIsIGl0IHVzdWFsbHkgY29tZXMgZmlyc3QgYW5kIGl0cyBuYW1lCj4gK29mdGVuIGNv
bnRhaW5zIGBjdHhgLiAgRXhjZXB0aW9ucyBpbmNsdWRlIGF2X2JzZl9hbGxvYygpLCB3aGljaCBw
dXRzIHRoZQo+ICtjb250ZXh0IGFyZ3VtZW50IHNlY29uZCB0byBlbXBoYXNpc2UgaXQncyBhbiBv
dXQgdmFyaWFibGUuCj4gKwoKPiArU29tZSBmdW5jdGlvbnMgZml0IGF3a3dhcmRseSB3aXRoaW4g
RkZtcGVnJ3MgY29udGV4dCBpZGlvbS4gIEZvciBleGFtcGxlLAo+ICthdl9hbWJpZW50X3ZpZXdp
bmdfZW52aXJvbm1lbnRfY3JlYXRlX3NpZGVfZGF0YSgpIGNyZWF0ZXMgYW4KPiArQVZBbWJpZW50
Vmlld2luZ0Vudmlyb25tZW50IGNvbnRleHQsIHRoZW4gYWRkcyBpdCB0byB0aGUgc2lkZS1kYXRh
IG9mIGFuCj4gK0FWRnJhbWUgY29udGV4dC4KClRvIGdvIGJhY2sgdG8gdGhpcyB1bmZpdHRpbmcg
ZXhhbXBsZSwgY2FuIHlvdSBzdGF0ZSB3aGF0IHdvdWxkIGJlCmZpdHRpbmcgaW4gdGhpcyBjYXNl
PwoKPiBJZiB5b3UgZmluZCBjb250ZXh0cyBhIHVzZWZ1bCBtZXRhcGhvciBpbiB0aGVzZSBjYXNl
cywKPiAreW91IG1pZ2h0IHByZWZlciB0byB0aGluayBvZiB0aGVzZSBmdW5jdGlvbnMgYXMgInJl
Y2VpdmluZyIgYW5kICJwcm9kdWNpbmciCj4gK2NvbnRleHRzLgo+ICsKPiArQHN1YnNlY3Rpb24g
Q29udGV4dF9kYXRhX2hpZGluZyBEYXRhIGhpZGluZzogcHJpdmF0ZSBjb250ZXh0cwo+ICsKPiAr
YGBgYwo+ICsvLyBDb250ZXh0IHN0cnVjdHMgb2Z0ZW4gaGlkZSBwcml2YXRlIGNvbnRleHQ6Cj4g
K3N0cnVjdCBBVlNvbWVDb250ZXh0IHsKPiArICB2b2lkICpwcml2X2RhdGE7IC8vIHNvbWV0aW1l
cyBqdXN0IGNhbGxlZCAiaW50ZXJuYWwiCj4gK307Cj4gK2BgYAo+ICsKPiArQ29udGV4dHMgcHJl
c2VudCBhIHB1YmxpYyBpbnRlcmZhY2UsIHNvIGNoYW5naW5nIGEgY29udGV4dCdzIG1lbWJlcnMg
Zm9yY2VzCj4gK2V2ZXJ5b25lIHRoYXQgdXNlcyB0aGUgbGlicmFyeSB0byBhdCBsZWFzdCByZWNv
bXBpbGUgdGhlaXIgcHJvZ3JhbSwKPiAraWYgbm90IHJld3JpdGUgaXQgdG8gcmVtYWluIGNvbXBh
dGlibGUuICBNYW55IGNvbnRleHRzIHJlZHVjZSB0aGlzIHByb2JsZW0KPiArYnkgaW5jbHVkaW5n
IGEgcHJpdmF0ZSBjb250ZXh0IHdpdGggYSB0eXBlIHRoYXQgaXMgbm90IGV4cG9zZWQgaW4gdGhl
IHB1YmxpYwo+ICtpbnRlcmZhY2UuICBIaWRpbmcgaW5mb3JtYXRpb24gdGhpcyB3YXkgZW5zdXJl
cyBpdCBjYW4gYmUgbW9kaWZpZWQgd2l0aG91dAo+ICthZmZlY3RpbmcgZG93bnN0cmVhbSBzb2Z0
d2FyZS4KPiArCj4gK1ByaXZhdGUgY29udGV4dHMgb2Z0ZW4gc3RvcmUgdmFyaWFibGVzIHVzZXJz
IGFyZW4ndCBzdXBwb3NlZCB0byBzZWUKPiArKHNpbWlsYXIgdG8gYW4gT09QIHByaXZhdGUgYmxv
Y2spLCBidXQgY2FuIGFsc28gc3RvcmUgaW5mb3JtYXRpb24gc2hhcmVkIGJldHdlZW4KPiArc29t
ZSBidXQgbm90IGFsbCBpbnN0YW5jZXMgb2YgYSBjb250ZXh0IChlLmcuIGNvZGVjLXNwZWNpZmlj
IGZ1bmN0aW9uYWxpdHkpLAo+ICthbmQgQHJlZiBDb250ZXh0X2F2b3B0aW9ucyAiQVZPcHRpb25z
LWVuYWJsZWQgc3RydWN0cyIgY2FuIGluY2x1ZGUgb3B0aW9ucwo+ICt0aGF0IGFyZSBhY2Nlc3Np
YmxlIHRocm91Z2ggdGhlIEByZWYgYXZvcHRpb25zICJBVk9wdGlvbnMgQVBJIi4KPiArT2JqZWN0
LW9yaWVudGVkIHByb2dyYW1tZXJzIHRoaW5raW5nIGFib3V0IHByaXZhdGUgY29udGV4dHMgc2hv
dWxkIHJlbWVtYmVyCj4gK3RoYXQgRkZtcGVnIGlzbid0ICpsYXJnZSBlbm91Z2gqIHRvIG5lZWQg
c29tZSBjb21tb24gb2JqZWN0LW9yaWVudGVkIHRlY2huaXF1ZXMsCj4gK2V2ZW4gdGhvdWdoIGl0
J3Mgc29sdmluZyBhIHByb2JsZW0gKmNvbXBsZXggZW5vdWdoKiB0byBiZW5lZml0IGZyb20KPiAr
c29tZSByYXJlciB0ZWNobmlxdWVzLgo+ICsKPiArQHN1YnNlY3Rpb24gQ29udGV4dF9saWZldGlt
ZSBNYW5hZ2UgbGlmZXRpbWU6IGFsbG9jYXRlLCBpbml0aWFsaXplIGFuZCBmcmVlCj4gKwo+ICtg
YGBjCj4gK3ZvaWQgbXlfZnVuY3Rpb24oIC4uLiApIHsKPiArCj4gKyAgICAvLyBDb250ZXh0IHN0
cnVjdHMgYXJlIGFsbG9jYXRlZCB0aGVuIGluaXRpYWxpemVkIHdpdGggYXNzb2NpYXRlZCBmdW5j
dGlvbnM6Cj4gKwo+ICsgICAgQVZTb21lQ29udGV4dCAqY3R4ID0gYXZfc29tZV9jb250ZXh0X2Fs
bG9jKC4uLik7Cj4gKwo+ICsgICAgLy8gLi4uIGNvbmZpZ3VyZSBjdHggLi4uCj4gKwo+ICsgICAg
YXZfc29tZV9jb250ZXh0X2luaXQoY3R4LCAuLi4pOwo+ICsKPiArICAgIC8vIC4uLiB1c2UgY3R4
IC4uLgo+ICsKPiArICAgIC8vIENvbnRleHQgc3RydWN0cyBhcmUgZnJlZWQgd2l0aCBhc3NvY2lh
dGVkIGZ1bmN0aW9uczoKPiArCj4gKyAgICBhdl9zb21lX2NvbnRleHRfY2xvc2UoY3R4KTsKPiAr
ICAgIGF2X3NvbWVfY29udGV4dF9mcmVlKGN0eCk7Cj4gKwo+ICt9Cj4gK2BgYAo+ICsKPiArRkZt
cGVnIGNvbnRleHRzIGdvIHRocm91Z2ggdGhlIGZvbGxvd2luZyBzdGFnZXMgb2YgbGlmZToKPiAr
Cj4gKzEuIGFsbG9jYXRpb24gKG9mdGVuIGEgZnVuY3Rpb24gdGhhdCBlbmRzIHdpdGggYF9hbGxv
Y2ApCj4gKyAgICogYSByYW5nZSBvZiBtZW1vcnkgaXMgYWxsb2NhdGVkIGZvciB1c2UgYnkgdGhl
IHN0cnVjdHVyZQo+ICsgICAqIG1lbW9yeSBpcyBhbGxvY2F0ZWQgb24gYm91bmRhcmllcyB0aGF0
IGltcHJvdmUgY2FjaGluZwo+ICsgICAqIG1lbW9yeSBpcyByZXNldCB0byB6ZXJvZXMsIHNvbWUg
aW50ZXJuYWwgc3RydWN0dXJlcyBtYXkgYmUgaW5pdGlhbGl6ZWQKPiArMi4gY29uZmlndXJhdGlv
biAoaW1wbGVtZW50ZWQgYnkgc2V0dGluZyB2YWx1ZXMgZGlyZWN0bHkgb24gdGhlIGNvbnRleHQp
Cj4gKyAgICogbm8gZnVuY3Rpb24gZm9yIHRoaXMgLSBjYWxsaW5nIGNvZGUgcG9wdWxhdGVzIHRo
ZSBzdHJ1Y3R1cmUgZGlyZWN0bHkKPiArICAgKiBtZW1vcnkgaXMgcG9wdWxhdGVkIHdpdGggdXNl
ZnVsIHZhbHVlcwo+ICsgICAqIHNpbXBsZSBjb250ZXh0cyBjYW4gc2tpcCB0aGlzIHN0YWdlCj4g
KzMuIGluaXRpYWxpemF0aW9uIChvZnRlbiBhIGZ1bmN0aW9uIHRoYXQgZW5kcyB3aXRoIGBfaW5p
dGApCj4gKyAgICogc2V0dXAgYWN0aW9ucyBhcmUgcGVyZm9ybWVkIGJhc2VkIG9uIHRoZSBjb25m
aWd1cmF0aW9uIChlLmcuIG9wZW5pbmcgZmlsZXMpCj4gKzUuIG5vcm1hbCB1c2FnZQo+ICsgICAq
IG1vc3QgZnVuY3Rpb25zIGFyZSBjYWxsZWQgaW4gdGhpcyBzdGFnZQo+ICsgICAqIGRvY3VtZW50
YXRpb24gaW1wbGllcyBzb21lIG1lbWJlcnMgYXJlIG5vdyByZWFkLW9ubHkgKG9yIG5vdCB1c2Vk
IGF0IGFsbCkKPiArICAgKiBzb21lIGNvbnRleHRzIGFsbG93IHJlLWluaXRpYWxpemF0aW9uCj4g
KzYuIGNsb3NpbmcgKG9mdGVuIGEgZnVuY3Rpb24gdGhhdCBlbmRzIHdpdGggYF9jbG9zZSgpYCkK
PiArICAgKiB0ZWFyZG93biBhY3Rpb25zIGFyZSBwZXJmb3JtZWQgKGUuZy4gY2xvc2luZyBmaWxl
cykKPiArNy4gZGVhbGxvY2F0aW9uIChvZnRlbiBhIGZ1bmN0aW9uIHRoYXQgZW5kcyB3aXRoIGBf
ZnJlZSgpYCkKPiArICAgKiBtZW1vcnkgaXMgcmV0dXJuZWQgdG8gdGhlIHBvb2wgb2YgYXZhaWxh
YmxlIG1lbW9yeQo+ICsKPiArVGhpcyBjYW4gbWlzbGVhZCBvYmplY3Qtb3JpZW50ZWQgcHJvZ3Jh
bW1lcnMsIHdobyBleHBlY3Qgc29tZXRoaW5nIG1vcmUgbGlrZToKPiArCj4gKzEuIGFsbG9jYXRp
b24gKHVzdWFsbHkgYSBgbmV3YCBrZXl3b3JkKQo+ICsgICAqIGEgcmFuZ2Ugb2YgbWVtb3J5IGlz
IGFsbG9jYXRlZCBmb3IgdXNlIGJ5IHRoZSBzdHJ1Y3R1cmUKPiArICAgKiBtZW1vcnkgKm1heSog
YmUgcmVzZXQgKGUuZy4gZm9yIHNlY3VyaXR5IHJlYXNvbnMpCj4gKzIuIGluaXRpYWxpemF0aW9u
ICh1c3VhbGx5IGEgY29uc3RydWN0b3IpCj4gKyAgICogbWVtb3J5IGlzIHBvcHVsYXRlZCB3aXRo
IHVzZWZ1bCB2YWx1ZXMKPiArICAgKiByZWxhdGVkIHNldHVwIGFjdGlvbnMgYXJlIHBlcmZvcm1l
ZCBiYXNlZCBvbiBhcmd1bWVudHMgKGUuZy4gb3BlbmluZyBmaWxlcykKPiArMy4gbm9ybWFsIHVz
YWdlCj4gKyAgICogbW9zdCBmdW5jdGlvbnMgYXJlIGNhbGxlZCBpbiB0aGlzIHN0YWdlCj4gKyAg
ICogY29tcGlsZXIgZW5mb3JjZXMgdGhhdCBzb21lIG1lbWJlcnMgYXJlIHJlYWQtb25seSAob3Ig
cHJpdmF0ZSkKPiArICAgKiBubyBnb2luZyBiYWNrIHRvIHRoZSBwcmV2aW91cyBzdGFnZQo+ICs0
LiBmaW5hbGl6YXRpb24gKHVzdWFsbHkgYSBkZXN0cnVjdG9yKQo+ICsgICAqIHRlYXJkb3duIGFj
dGlvbnMgYXJlIHBlcmZvcm1lZCAoZS5nLiBjbG9zaW5nIGZpbGVzKQo+ICs1LiBkZWFsbG9jYXRp
b24gKHVzdWFsbHkgYSBgZGVsZXRlYCBrZXl3b3JkKQo+ICsgICAqIG1lbW9yeSBpcyByZXR1cm5l
ZCB0byB0aGUgcG9vbCBvZiBhdmFpbGFibGUgbWVtb3J5Cj4gKwo+ICtGRm1wZWcncyBhbGxvY2F0
aW9uIHN0YWdlIGlzIGJyb2FkbHkgc2ltaWxhciB0byB0aGUgT09QIHN0YWdlIG9mIHRoZSBzYW1l
IG5hbWUuCj4gK0JvdGggc2V0IGFzaWRlIHNvbWUgbWVtb3J5IGZvciB1c2UgYnkgYSBuZXcgZW50
aXR5LCBidXQgRkZtcGVnJ3Mgc3RhZ2UgY2FuIGFsc28KPiArZG8gc29tZSBoaWdoZXItbGV2ZWwg
b3BlcmF0aW9ucy4gIEZvciBleGFtcGxlLCBAcmVmIENvbnRleHRfYXZvcHRpb25zCj4gKyJBVk9w
dGlvbnMtZW5hYmxlZCBzdHJ1Y3RzIiBzZXQgdGhlaXIgQVZDbGFzcyBtZW1iZXIgZHVyaW5nIGFs
bG9jYXRpb24uCj4gKwo+ICtGRm1wZWcncyBjb25maWd1cmF0aW9uIHN0YWdlIGludm9sdmVzIHNl
dHRpbmcgYW55IHZhcmlhYmxlcyB5b3Ugd2FudCB0byBiZWZvcmUKPiAreW91IHN0YXJ0IHVzaW5n
IHRoZSBjb250ZXh0LiAgQ29tcGxpY2F0ZWQgRkZtcGVnIHN0cnVjdHVyZXMgbGlrZSBBVkNvZGVj
Q29udGV4dAo+ICt0ZW5kIHRvIGhhdmUgbWFueSBtZW1iZXJzIHlvdSAqY291bGQqIHNldCwgYnV0
IGluIHByYWN0aWNlIG1vc3QgcHJvZ3JhbXMgc2V0Cj4gK2ZldyBpZiBhbnkgb2YgdGhlbS4gIFRo
ZSBmcmVlZm9ybSBjb25maWd1cmF0aW9uIHN0YWdlIHdvcmtzIGJldHRlciB0aGFuIGJ1bmRsaW5n
Cj4gK3RoZXNlIGludG8gdGhlIGluaXRpbGl6YXRpb24gc3RhZ2UsIHdoaWNoIHdvdWxkIGxlYWQg
dG8gZnVuY3Rpb25zIHdpdGgKPiAraW1wcmFjdGljYWxseSBtYW55IHBhcmFtZXRlcnMsIGFuZCB3
b3VsZCBtZWFuIGVhY2ggbmV3IG9wdGlvbiB3YXMgYW4KPiAraW5jb21wYXRpYmxlIGNoYW5nZSB0
byB0aGUgQVBJLgo+ICsKPiArRkZtcGVnJ3MgaW5pdGlhbGl6YXRpb24gc3RhZ2UgaW52b2x2ZXMg
Y2FsbGluZyBhIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgY29udGV4dAo+ICt1cCBiYXNlZCBvbiB5
b3VyIGNvbmZpZ3VyYXRpb24uCj4gKwo+ICtGRm1wZWcncyBmaXJzdCB0aHJlZSBzdGFnZXMgZG8g
dGhlIHNhbWUgam9iIGFzIE9PUCdzIGZpcnN0IHR3byBzdGFnZXMuCj4gK1RoaXMgY2FuIG1pc2xl
YWQgb2JqZWN0LW9yaWVudGVkIGRldmVsb3BlcnMsIHdobyBleHBlY3QgdG8gZG8gbGVzcyB3b3Jr
IGluIHRoZQo+ICthbGxvY2F0aW9uIHN0YWdlLCBhbmQgbW9yZSB3b3JrIGluIHRoZSBpbml0aWFs
aXphdGlvbiBzdGFnZS4gIFRvIHNpbXBsaWZ5IHRoaXMsCj4gK21vc3QgRkZtcGVnIGNvbnRleHRz
IHByb3ZpZGUgYSBjb21iaW5lZCBhbGxvY2F0b3IgYW5kIGluaXRpYWxpemVyIGZ1bmN0aW9uLgo+
ICtGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBzdWZmaXhlcyBsaWtlIGBfYWxsb2NgLCBgX2luaXRg
LCBgX2FsbG9jX2NvbnRleHRgIGFuZAo+ICtldmVuIGBfb3BlbmAgY2FuIGluZGljYXRlIHRoZSBm
dW5jdGlvbiBkb2VzIGFueSBjb21iaW5hdGlvbiBvZiBhbGxvY2F0aW9uIGFuZAo+ICtpbml0aWFs
aXphdGlvbi4KPiArCj4gK0ZGbXBlZydzICJjbG9zaW5nIiBzdGFnZSBpcyBicm9hZGx5IHNpbWls
YXIgdG8gT09QJ3MgImZpbmFsaXphdGlvbiIgc3RhZ2UsCj4gK2J1dCBzb21lIGNvbnRleHRzIGFs
bG93IHJlLWluaXRpYWxpemF0aW9uIGFmdGVyIGZpbmFsaXphdGlvbi4gIEZvciBleGFtcGxlLAo+
ICtTd3JDb250ZXh0IGxldHMgeW91IGNhbGwgc3dyX2Nsb3NlKCkgdGhlbiBzd3JfaW5pdCgpIHRv
IHJldXNlIGEgY29udGV4dC4KPiArQmUgYXdhcmUgdGhhdCBzb21lIEZGbXBlZyBmdW5jdGlvbnMg
aGFwcGVuIHRvIHVzZSB0aGUgd29yZCAiZmluYWxpemUiIGluIGEgd2F5Cj4gK3RoYXQgaGFzIG5v
dGhpbmcgdG8gZG8gd2l0aCB0aGUgT09QIHN0YWdlIChlLmcuIGF2X2JzZl9saXN0X2ZpbmFsaXpl
KCkpLgo+ICsKPiArRkZtcGVnJ3MgImRlYWxsb2NhdGlvbiIgc3RhZ2UgaXMgYnJvYWRseSBzaW1p
bGFyIHRvIE9PUCwgYnV0IGNhbiBwZXJmb3JtIHNvbWUKPiAraGlnaGVyLWxldmVsIGZ1bmN0aW9u
cyAoc2ltaWxhciB0byB0aGUgYWxsb2NhdGlvbiBzdGFnZSkuCj4gKwo+ICtDbG9zaW5nIGZ1bmN0
aW9ucyB1c3VhbGx5IGVuZCB3aXRoICJfY2xvc2UiLCB3aGlsZSBkZWFsbG9jYXRpb24KPiArZnVu
Y3Rpb25zIHVzdWFsbHkgZW5kIHdpdGggIl9mcmVlIi4gIFZlcnkgZmV3IGNvbnRleHRzIG5lZWQg
dGhlIGZsZXhpYmlsaXR5IG9mCj4gK3NlcGFyYXRlICJjbG9zaW5nIiBhbmQgImRlYWxsb2NhdGlv
biIgc3RhZ2VzLCBzbyBtYW55ICJfZnJlZSIgZnVuY3Rpb25zCj4gK2ltcGxpY2l0bHkgY2xvc2Ug
dGhlIGNvbnRleHQgZmlyc3QuCj4gKwoKPiArQHN1YnNlY3Rpb24gQ29udGV4dF9hdm9wdGlvbnMg
UmVmbGVjdGlvbjogQVZPcHRpb25zLWVuYWJsZWQgc3RydWN0cwoKVG8gY2xhcmlmeSB0aGlzLCB3
ZSBzaG91bGQgbm90IHRyZWF0IHJlZmxlY3Rpb24gYW5kIEFWT3B0aW9ucyBhcwpzeW5vbnltcy4K
CkNsZWFybHkgdGhlIEFWT3B0aW9ucyBzeXN0ZW0gZW5hYmxlcyB0aGUgb3B0aW9ucyBpbnRyb3Nw
ZWN0aW9uICh5b3UKY2FuIHF1ZXJ5IHRoZSBzcGVjaWZpZWQgb3B0aW9ucywgYW5kIGdldCB0aGUg
ZGVmYXVsdCB2YWx1ZXMgb3IgdGhlIHNldAp2YWx1ZXMgYW5kIGhlbHAgZXRjLikgYnV0IGl0J3Mg
bm90IG9ubHkgYWJvdXQgaW50cm9zcGVjdGlvbiwgYnV0IGFsc28KYWJvdXQgc2V0dGluZyB0aGUg
dmFsdWVzIHVzaW5nIGEgaGlnaC1sZXZlbCBBUEkuCgo+ICsKPiArT2JqZWN0LW9yaWVudGVkIHBy
b2dyYW1taW5nIHB1dHMgbW9yZSBmb2N1cyBvbiBkYXRhIGhpZGluZyB0aGFuIEZGbXBlZyBuZWVk
cywKPiArYnV0IGl0IGFsc28gcHV0cyBsZXNzIGZvY3VzIG9uCj4gK1tyZWZsZWN0aW9uXShodHRw
czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9SZWZsZWN0aW9uXyhjb21wdXRlcl9wcm9ncmFtbWlu
ZykpLgo+ICsKCj4gK1RvIHVuZGVyc3RhbmQgRkZtcGVnJ3MgcmVmbGVjdGlvbiByZXF1aXJlbWVu
dHMsIHJ1biBgZmZtcGVnIC1oIGZ1bGxgIG9uIHRoZQo+ICtjb21tYW5kLWxpbmUsIHRoZW4gYXNr
IHlvdXJzZWxmIGhvdyB5b3Ugd291bGQgaW1wbGVtZW50IGFsbCB0aG9zZSBvcHRpb25zCj4gK3dp
dGggdGhlIEMgc3RhbmRhcmQgW2BnZXRvcHRgIGZ1bmN0aW9uXShodHRwczovL2VuLndpa2lwZWRp
YS5vcmcvd2lraS9HZXRvcHQpLgo+ICtZb3UgY2FuIGFsc28gYXNrIHRoZSBzYW1lIHF1ZXN0aW9u
IGZvciBhbnkgb3RoZXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHlvdSBrbm93Lgo+ICtbUHl0aG9u
J3MgYXJncGFyc2UgbW9kdWxlXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvYXJn
cGFyc2UuaHRtbCkKPiAraXMgYSBnb29kIGV4YW1wbGUgLSBpdHMgYXBwcm9hY2ggd29ya3Mgd2Vs
bCB3aXRoIGZhciBtb3JlIGNvbXBsZXggcHJvZ3JhbXMKPiArdGhhbiBgZ2V0b3B0YCwgYnV0IHdv
dWxkIHlvdSBsaWtlIHRvIG1haW50YWluIGFuIGFyZ3BhcnNlIGltcGxlbWVudGF0aW9uCj4gK3dp
dGggMTUsMDAwIG9wdGlvbnMgYW5kIGdyb3dpbmc/CgpUbyBjbGFyaWZ5IHRoaXM6IHRoZSBhcHBy
b2FjaCBpbiB0aGlzIGNhc2UgaXMgdG8gdXNlIHRoZSBpbnRyb3NwZWN0aW9uCkFQSSB0byBleHBv
c2UgdGhlIG9wdGlvbnMgcHJvZ3JhbW1hdGljYWxseSwgZXZlbiBpZiBpbiBmYWN0IG9uZSBtaWdo
dAp1c2UgZ2V0b3B0IHRvIGJ1aWxkIHRoZSBDTEkgKG9yIGFub3RoZXIgdG9vbGtpdCB0byBidWls
ZCBhIEdVSSkuCgpJbiB0aGUgY2FzZSBvZiBmZm1wZWcsIGdldG9wdCBjYW5ub3QgYmUgdXNlZCBz
aW5jZSB0aGUgb3B0aW9ucyBhcmUKcG9zaXRpb25hbCAoZGVwZW5kaW5nIG9uIHRoZSBwbGFjZSBp
dCBtaWdodCB0YWtlIGVuY29kZXIvZm9ybWF0L3VybApvcHRpb25zKS4gRm9yIGEgc2ltcGxlciBD
TEkgKGUuZy4gYW4gaGFzaCBBUEkgd3JhcHBlcikgaXQgbWlnaHQgd29yay4KCj4gKwo+ICtNb3N0
IHNvbHV0aW9ucyBhc3N1bWUgeW91IGNhbiBqdXN0IHB1dCBhbGwgb3B0aW9ucyBpbiBhIHNpbmds
ZSBibG9jaywKPiArd2hpY2ggaXMgdW53b3JrYWJsZSBhdCBGRm1wZWcncyBzY2FsZS4gIEluc3Rl
YWQsIHdlIHNwbGl0IGNvbmZpZ3VyYXRpb24KPiArYWNyb3NzIG1hbnkgKkFWT3B0aW9ucy1lbmFi
bGVkIHN0cnVjdHMqLCB3aGljaCB1c2UgdGhlIEByZWYgYXZvcHRpb25zCj4gKyJBVk9wdGlvbnMg
QVBJIiB0byByZWZsZWN0IGluZm9ybWF0aW9uIGFib3V0IHRoZWlyIHVzZXItY29uZmlndXJhYmxl
IG1lbWJlcnMsCj4gK2luY2x1ZGluZyBtZW1iZXJzIGluIHByaXZhdGUgY29udGV4dHMuCj4gKwo+
ICtBVk9wdGlvbnMtYWNjZXNzaWJsZSBtZW1iZXJzIG9mIGEgY29udGV4dCBzaG91bGQgYmUgYWNj
ZXNzZWQgdGhyb3VnaCB0aGUKPiArQHJlZiBhdm9wdGlvbnMgIkFWT3B0aW9ucyBBUEkiIHdoZW5l
dmVyIHBvc3NpYmxlLCBldmVuIGlmIHRoZXkncmUgbm90IGhpZGRlbgo+ICtpbiBhIHByaXZhdGUg
Y29udGV4dC4gIFRoYXQgZW5zdXJlcyB2YWx1ZXMgYXJlIHZhbGlkYXRlZCBhcyB0aGV5J3JlIHNl
dCwgYW5kCj4gK21lYW5zIHlvdSB3b24ndCBoYXZlIHRvIGRvIGFzIG11Y2ggd29yayBpZiBhIGZ1
dHVyZSB2ZXJzaW9uIG9mIEZGbXBlZyBjaGFuZ2VzCj4gK3RoZSBhbGxvd2VkIHZhbHVlcy4gIFRo
aXMgaXMgYnJvYWRseSBzaW1pbGFyIHRvIHRoZSB3YXkgb2JqZWN0LW9yaWVudGVkIHByb2dyYW1z
Cj4gK3JlY29tbWVuZCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIG92ZXIgZGlyZWN0IGFjY2Vzcy4KPiAr
Cj4gK09iamVjdC1vcmllbnRlZCBwcm9ncmFtbWVycyBtYXkgYmUgdGVtcHRlZCB0byBjb21wYXJl
IEFWT3B0aW9ucy1hY2Nlc3NpYmxlCj4gK21lbWJlcnMgb2YgYSBwdWJsaWMgY29udGV4dCB0byBw
cm90ZWN0ZWQgbWVtYmVycyBvZiBhIGNsYXNzLiAgQm90aCBwcm92aWRlCj4gK2dsb2JhbCBhY2Nl
c3MgdGhyb3VnaCBhbiBBUEksIGFuZCB1bnJlc3RyaWN0ZWQgYWNjZXNzIGZvciB0cnVzdGVkIGZy
aWVuZHMuCj4gK0J1dCB0aGlzIGlzIGp1c3QgYSBoYXBweSBhY2NpZGVudCwgbm90IGEgZ3VhcmFu
dGVlLgo+ICsKPiArQHN1YnNlY3Rpb24gQ29udGV4dF9sb2dnaW5nIExvZ2dpbmc6IEFWQ2xhc3Mg
Y29udGV4dCBzdHJ1Y3R1cmVzCj4gKwo+ICtGRm1wZWcncyBAcmVmIGxhdnVfbG9nICJsb2dnaW5n
IGZhY2lsaXR5IiBuZWVkcyB0byBiZSBzaW1wbGUgdG8gdXNlLAo+ICtidXQgZmxleGlibGUgZW5v
dWdoIHRvIGxldCBwZW9wbGUgZGVidWcgcHJvYmxlbXMuICBBbmQgbXVjaCBsaWtlIHJlZmxlY3Rp
b24sCj4gK2l0IG5lZWRzIHRvIHdvcmsgdGhlIHNhbWUgYWNyb3NzIGEgd2lkZSB2YXJpZXR5IG9m
IHVucmVsYXRlZCBzdHJ1Y3RzLgo+ICsKCj4gK0ZGbXBlZyBzdHJ1Y3RzIHRoYXQgc3VwcG9ydCB0
aGUgbG9nZ2luZyBmcmFtZXdvcmsgYXJlIGNhbGxlZCAqQHJlZiBBVkNsYXNzCj4gK2NvbnRleHQg
c3RydWN0dXJlcyouICBUaGUgbmFtZSBAcmVmIEFWQ2xhc3Mgd2FzIGNob3NlbiBlYXJseSBpbiBG
Rm1wZWcncwo+ICtkZXZlbG9wbWVudCwgYnV0IGluIHByYWN0aWNlIGl0IG9ubHkgY2FtZSB0byBz
dG9yZSBpbmZvcm1hdGlvbiBhYm91dAo+ICtsb2dnaW5nLCBhbmQgYWJvdXQgaW50cm9zcGVjdGlv
bi4KCm5pdDogaW50cm9zcGVjdGlvbiA9PiBvcHRpb25zCgpUbyBmdXJ0aGVyIGNsYXJpZnkgdGhp
cywgSSB0aGluayBBVkNsYXNzIHdhcyBjaG9zZW4gYmVjYXVzZSB0aGUgaWRlYQppcyB0byBzdXBw
b3J0IGEgImNsYXNzIiBvZiBzdHJ1Y3R1cmVzLiBZb3UgZGVmaW5lIGxvZ2dpbmcgYW5kIG9wdGlv
bnMKaW4gYSBzaW5nbGUgcGxhY2UgZm9yIGFsbCB0aGUgZW5jb2RlcnMsIGRlY29kZXJzLCBmaWx0
ZXJzIGV0YyAoY2hlY2sKZm9yIGV4YW1wbGUgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYzo6YXZmaWx0
ZXJfY2xhc3MpLgoKPiArCj4gK0BzZWN0aW9uIENvbnRleHRfZnVydGhlciBGdXJ0aGVyIGluZm9y
bWF0aW9uIGFib3V0IGNvbnRleHRzCj4gKwo+ICtTbyBmYXIsIHRoaXMgZG9jdW1lbnQgaGFzIHBy
b3ZpZGVkIGEgdGhlb3JldGljYWwgZ3VpZGUgdG8gRkZtcGVnIGNvbnRleHRzLgo+ICtUaGlzIGZp
bmFsIHNlY3Rpb24gcHJvdmlkZXMgc29tZSBhbHRlcm5hdGl2ZSBhcHByb2FjaGVzIHRvIHRoZSB0
b3BpYywKPiArd2hpY2ggbWF5IGhlbHAgcm91bmQgb3V0IHlvdXIgdW5kZXJzdGFuZGluZy4KPiAr
Cj4gK0BzdWJzZWN0aW9uIENvbnRleHRfZXhhbXBsZSBMZWFybmluZyBieSBleGFtcGxlOiBjb250
ZXh0IGZvciBhIGNvZGVjCj4gKwo+ICtJdCBjYW4gaGVscCB0byBsZWFybiBjb250ZXh0cyBieSBk
b2luZyBhIGRlZXAgZGl2ZSBpbnRvIGEgc3BlY2lmaWMgc3RydWN0Lgo+ICtUaGlzIHNlY3Rpb24g
d2lsbCBkaXNjdXNzIEFWQ29kZWNDb250ZXh0IC0gYW4gQVZPcHRpb25zLWVuYWJsZWQgc3RydWN0
Cj4gK3RoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgZW5jb2Rpbmcgb3IgZGVjb2Rpbmcg
b25lIHN0cmVhbSBvZiBkYXRhCj4gKyhlLmcuIHRoZSB2aWRlbyBpbiBhIG1vdmllKS4KPiArCj4g
K1RoZSBuYW1lICJBVkNvZGVjQ29udGV4dCIgdGVsbHMgdXMgdGhpcyBpcyBhIGNvbnRleHQuICBN
YW55IG9mCj4gK0ByZWYgbGliYXZjb2RlYy9hdmNvZGVjLmggIml0cyBmdW5jdGlvbnMiIHN0YXJ0
IHdpdGggYW4gYGF2Y3R4YCBwYXJhbWV0ZXIsCj4gK2luZGljYXRpbmcgdGhpcyBwYXJhbWV0ZXIg
cHJvdmlkZXMgY29udGV4dCBmb3IgdGhhdCBmdW5jdGlvbi4KPiArCj4gK0FWQ29kZWNDb250ZXh0
OjppbnRlcm5hbCBjb250YWlucyB0aGUgcHJpdmF0ZSBjb250ZXh0LiAgRm9yIGV4YW1wbGUsCj4g
K2NvZGVjLXNwZWNpZmljIGluZm9ybWF0aW9uIG1pZ2h0IGJlIHN0b3JlZCBoZXJlLgo+ICsKPiAr
QVZDb2RlY0NvbnRleHQgaXMgYWxsb2NhdGVkIHdpdGggYXZjb2RlY19hbGxvY19jb250ZXh0Mygp
LCBpbml0aWFsaXplZCB3aXRoCj4gK2F2Y29kZWNfb3BlbjIoKSwgYW5kIGZyZWVkIHdpdGggYXZj
b2RlY19mcmVlX2NvbnRleHQoKS4gIE1vc3Qgb2YgaXRzIG1lbWJlcnMKPiArYXJlIGNvbmZpZ3Vy
ZWQgd2l0aCB0aGUgQHJlZiBhdm9wdGlvbnMgIkFWT3B0aW9ucyBBUEkiLCBidXQgZm9yIGV4YW1w
bGUgeW91Cj4gK2NhbiBzZXQgQVZDb2RlY0NvbnRleHQ6Om9wYXF1ZSBvciBBVkNvZGVjQ29udGV4
dDo6ZHJhd19ob3Jpel9iYW5kKCkgaWYgeW91cgo+ICtwcm9ncmFtIGhhcHBlbnMgdG8gbmVlZCB0
aGVtLgo+ICsKPiArQVZDb2RlY0NvbnRleHQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNl
IHRvIG1hbnkgZGlmZmVyZW50ICpjb2RlY3MqLgo+ICtPcHRpb25zIHN1cHBvcnRlZCBieSBtYW55
IGNvZGVjcyAoZS5nLiAiYml0cmF0ZSIpIGFyZSBrZXB0IGluIEFWQ29kZWNDb250ZXh0Cj4gK2Fu
ZCByZWZsZWN0ZWQgYXMgQVZPcHRpb25zLiAgT3B0aW9ucyB0aGF0IGFyZSBzcGVjaWZpYyB0byBv
bmUgY29kZWMgYXJlCj4gK3N0b3JlZCBpbiB0aGUgcHJpdmF0ZSBjb250ZXh0LCBhbmQgcmVmbGVj
dGVkIGZyb20gdGhlcmUuCj4gKwo+ICtBVkNvZGVjQ29udGV4dDo6YXZfY2xhc3MgY29udGFpbnMg
bG9nZ2luZyBtZXRhZGF0YSB0byBlbnN1cmUgYWxsIGNvZGVjLXJlbGF0ZWQKPiArZXJyb3IgbWVz
c2FnZXMgbG9vayB0aGUgc2FtZSwgcGx1cyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFib3V0IG9w
dGlvbnMuCj4gKwo+ICtUbyBzdXBwb3J0IGEgc3BlY2lmaWMgY29kZWMsIEFWQ29kZWNDb250ZXh0
J3MgcHJpdmF0ZSBjb250ZXh0IGlzIHNldCB0bwo+ICthbiBlbmNvZGVyLXNwZWNpZmljIGRhdGEg
dHlwZS4gIEZvciBleGFtcGxlLCB0aGUgdmlkZW8gY29kZWMKPiArW0guMjY0XShodHRwczovL2Vu
Lndpa2lwZWRpYS5vcmcvd2lraS9BZHZhbmNlZF9WaWRlb19Db2RpbmcpIGlzIHN1cHBvcnRlZCB2
aWEKPiArW3RoZSB4MjY0IGxpYnJhcnldKGh0dHBzOi8vd3d3LnZpZGVvbGFuLm9yZy9kZXZlbG9w
ZXJzL3gyNjQuaHRtbCksIGFuZAo+ICtpbXBsZW1lbnRlZCBpbiBYMjY0Q29udGV4dC4gIEFsdGhv
dWdoIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLCBYMjY0Q29udGV4dAo+ICtpcyBub3Qg
cGFydCBvZiB0aGUgcHVibGljIEFQSS4gIFRoYXQgbWVhbnMgRkZtcGVnJ3MgQHJlZiBmZm1wZWdf
dmVyc2lvbmluZwo+ICsic3RyaWN0IHJ1bGVzIGFib3V0IGNoYW5naW5nIHB1YmxpYyBzdHJ1Y3Rz
IiBhcmVuJ3QgYXMgaW1wb3J0YW50IGhlcmUsIHNvIGEKPiArdmVyc2lvbiBvZiBGRm1wZWcgY291
bGQgbW9kaWZ5IFgyNjRDb250ZXh0IG9yIHJlcGxhY2UgaXQgd2l0aCBhbm90aGVyIHR5cGUKPiAr
YWx0b2dldGhlci4gIEFuIGFkdmVyc2UgbGVnYWwgcnVsaW5nIG9yIHNlY3VyaXR5IHByb2JsZW0g
Y291bGQgZXZlbiBmb3JjZSB1cyB0bwo+ICtzd2l0Y2ggdG8gYSBjb21wbGV0ZWx5IGRpZmZlcmVu
dCBsaWJyYXJ5IHdpdGhvdXQgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCj4gKwo+ICtUaGUgZGVzaWdu
IG9mIEFWQ29kZWNDb250ZXh0IHByb3ZpZGVzIHNldmVyYWwgaW1wb3J0YW50IGd1YXJhbnRlZXM6
Cj4gKwo+ICstIGxldHMgeW91IHVzZSB0aGUgc2FtZSBpbnRlcmZhY2UgZm9yIGFueSBjb2RlYwo+
ICstIHN1cHBvcnRzIGNvbW1vbiBlbmNvZGVyIG9wdGlvbnMgbGlrZSAiYml0cmF0ZSIgd2l0aG91
dCBkdXBsaWNhdGluZyBjb2RlCj4gKy0gc3VwcG9ydHMgZW5jb2Rlci1zcGVjaWZpYyBvcHRpb25z
IGxpa2UgInByb2ZpbGUiIHdpdGhvdXQgYnVsa2luZyBvdXQgdGhlIHB1YmxpYyBpbnRlcmZhY2UK
PiArLSByZWZsZWN0cyBib3RoIHR5cGVzIG9mIG9wdGlvbnMgdG8gdXNlcnMsIHdpdGggaGVscCB0
ZXh0IGFuZCBkZXRlY3Rpb24gb2YgbWlzc2luZyBvcHRpb25zCj4gKy0gcHJvdmlkZXMgdW5pZm9y
bSBsb2dnaW5nIG91dHB1dAo+ICstIGhpZGVzIGltcGxlbWVudGF0aW9uIGRldGFpbHMgKGUuZy4g
aXRzIGVuY29kaW5nIGJ1ZmZlcikKPiArCj4gK0BzdWJzZWN0aW9uIENvbnRleHRfY29tcGFyaXNv
biBMZWFybmluZyBieSBjb21wYXJpc29uOiBGRm1wZWcgdnMuIEN1cmwgY29udGV4dHMKPiArCj4g
K0l0IGNhbiBoZWxwIHRvIGxlYXJuIGNvbnRleHRzIGJ5IGNvbXBhcmluZyBob3cgZGlmZmVyZW50
IHByb2plY3RzIHRhY2tsZQo+ICtzaW1pbGFyIHByb2JsZW1zLiAgVGhpcyBzZWN0aW9uIHdpbGwg
Y29tcGFyZSBAcmVmIEFWTUQ1ICJGRm1wZWcncyBNRDUgY29udGV4dCIKPiArd2l0aCBbY3VybCA4
LjguMCdzIGVxdWl2YWxlbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jdXJsL2N1cmwvYmxvYi9jdXJs
LThfOF8wL2xpYi9tZDUuYyNMNDgpLgo+ICsKPiArVGhlIFtNRDUgYWxnb3JpdGhtXShodHRwczov
L2VuLndpa2lwZWRpYS5vcmcvd2lraS9NRDUpIHByb2R1Y2VzCj4gK2EgZml4ZWQtbGVuZ3RoIGRp
Z2VzdCBmcm9tIGFyYml0cmFyeS1sZW5ndGggZGF0YS4gIEl0IGRvZXMgdGhpcyBieSBjYWxjdWxh
dGluZwo+ICt0aGUgZGlnZXN0IGZvciBhIHByZWZpeCBvZiB0aGUgZGF0YSwgdGhlbiBsb2FkaW5n
IHRoZSBuZXh0IHBhcnQgYW5kIGFkZGluZyBpdAo+ICt0byB0aGUgcHJldmlvdXMgZGlnZXN0LCBh
bmQgc28gb24uCj4gKwo+ICtgYGBjCj4gKy8vIEZGbXBlZydzIE1ENSBjb250ZXh0IGxvb2tzIGxp
a2UgdGhpczoKPiArdHlwZWRlZiBzdHJ1Y3QgQVZNRDUgewo+ICsgICAgdWludDY0X3QgbGVuOwo+
ICsgICAgdWludDhfdCAgYmxvY2tbNjRdOwo+ICsgICAgdWludDMyX3QgQUJDRFs0XTsKPiArfSBB
Vk1ENTsKPiArCj4gKy8vIEN1cmwgOC44LjAncyBNRDUgY29udGV4dCBsb29rcyBsaWtlIHRoaXM6
Cj4gK3N0cnVjdCBNRDVfY29udGV4dCB7Cj4gKyAgY29uc3Qgc3RydWN0IE1ENV9wYXJhbXMgKm1k
NV9oYXNoOyAgICAvKiBIYXNoIGZ1bmN0aW9uIGRlZmluaXRpb24gKi8KPiArICB2b2lkICAgICAg
ICAgICAgICAgICAgKm1kNV9oYXNoY3R4OyAgIC8qIEhhc2ggZnVuY3Rpb24gY29udGV4dCAqLwo+
ICt9Owo+ICtgYGAKPiArCj4gK0N1cmwncyBzdHJ1Y3QgbmFtZSBlbmRzIHdpdGggYF9jb250ZXh0
YCwgZ3VhcmFudGVlaW5nIGNvbnRleHRzIGFyZSB0aGUgY29ycmVjdAo+ICtpbnRlcnByZXRhdGlv
bi4gIEZGbXBlZydzIHN0cnVjdCBkb2VzIG5vdCBleHBsaWNpdGx5IHNheSBpdCdzIGEgY29udGV4
dCwgYnV0Cj4gK0ByZWYgbGliYXZ1dGlsL21kNS5jICJpdHMgZnVuY3Rpb25zIGRvIiBzbyB3ZSBj
YW4gcmVhc29uYWJseSBhc3N1bWUKPiAraXQncyB0aGUgaW50ZW5kZWQgaW50ZXJwcmV0YXRpb24u
Cj4gKwo+ICtDdXJsJ3Mgc3RydWN0IHVzZXMgYHZvaWQgKm1kNV9oYXNoY3R4YCB0byBhdm9pZCBn
dWFyYW50ZWVpbmcKPiAraW1wbGVtZW50YXRpb24gZGV0YWlscyBpbiB0aGUgcHVibGljIGludGVy
ZmFjZSwgd2hlcmVhcyBGRm1wZWcgbWFrZXMKPiArZXZlcnl0aGluZyBhY2Nlc3NpYmxlLiAgVGhp
cyBkaXNhZ3JlZW1lbnQgYWJvdXQgZGF0YSBoaWRpbmcgaXMgYSBnb29kIGV4YW1wbGUKPiArb2Yg
aG93IGNvbnRleHRzIGNhbiBiZSB1c2VkIGRpZmZlcmVudGx5LiAgSGlkaW5nIHRoZSBkYXRhIG1l
YW5zIGNoYW5naW5nIHRoZQo+ICtsYXlvdXQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBjdXJsIHdv
bid0IGJyZWFrIGRvd25zdHJlYW0gcHJvZ3JhbXMgdGhhdCB1c2VkCj4gK3RoYXQgZGF0YS4gIEJ1
dCB0aGUgTUQ1IGFsZ29yaXRobSBoYXMgYmVlbiBzdGFibGUgZm9yIDMwIHllYXJzLCBhbmQgbWFr
aW5nIHRoZQo+ICtkYXRhIHB1YmxpYyBtYWtlcyBpdCBlYXNpZXIgZm9yIHBlb3BsZSB0byBmb2xs
b3cgYSBidWcgaW4gdGhlaXIgb3duIGNvZGUuCj4gKwo+ICtDdXJsJ3Mgc3RydWN0IGlzIGRlY2xh
cmVkIGFzIGBzdHJ1Y3QgPHR5cGU+IHsgLi4uIH1gLCB3aGVyZWFzIEZGbXBlZyB1c2VzCj4gK2B0
eXBlZGVmIHN0cnVjdCA8dHlwZT4geyAuLi4gfSA8dHlwZT5gLiAgVGhlc2UgY29udmVudGlvbnMg
YXJlIHVzZWQgd2l0aCBib3RoCj4gK2NvbnRleHQgYW5kIG5vbi1jb250ZXh0IHN0cnVjdHMsIHNv
IGRvbid0IHNheSBhbnl0aGluZyBhYm91dCBjb250ZXh0cyBhcyBzdWNoLgo+ICtTcGVjaWZpY2Fs
bHksIEZGbXBlZydzIGNvbnZlbnRpb24gaXMgYSB3b3JrYXJvdW5kIGZvciBhbiBpc3N1ZSB3aXRo
IEMgZ3JhbW1hcjoKPiArCj4gK2BgYGMKPiArdm9pZCBteV9mdW5jdGlvbiggLi4uICkgewo+ICsg
IGludCAgICAgICAgICAgICAgICBteV92YXI7ICAgICAgICAvLyBnb29kCj4gKyAgTUQ1X2NvbnRl
eHQgICAgICAgIG15X2N1cmxfY3R4OyAgIC8vIGVycm9yOiBDIG5lZWRzIHlvdSB0byBleHBsaWNp
dGx5IHNheSAic3RydWN0Igo+ICsgIHN0cnVjdCBNRDVfY29udGV4dCBteV9jdXJsX2N0eDsgICAv
LyBnb29kOiBhZGRlZCAic3RydWN0Igo+ICsgIEFWTUQ1ICAgICAgICAgICAgICBteV9mZm1wZWdf
Y3R4OyAvLyBnb29kOiB0eXBlZGVmJ3MgYXZvaWQgdGhlIG5lZWQgZm9yICJzdHJ1Y3QiCj4gK30K
PiArYGBgCj4gKwoKPiArQm90aCBNRDUgaW1wbGVtZW50YXRpb25zIGFyZSBsb25nLXRlc3RlZCwg
d2lkZWx5LXVzZWQgZXhhbXBsZXMgb2YgY29udGV4dHMKPiAraW4gdGhlIHJlYWwgd29ybGQuICBU
aGV5IHNob3cgaG93IGNvbnRleHRzIGNhbiBzb2x2ZSB0aGUgc2FtZSBwcm9ibGVtCj4gK2luIGRp
ZmZlcmVudCB3YXlzLgoKSSdtIGZpbmUgd2l0aCBrZWVwaW5nIHRoaXMgc2VjdGlvbiBhdCB0aGUg
ZW5kIG9mIHRoZSBkb2N1bWVudC4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn
Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv
IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx
dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=