VGhhbmtzIGZvciB5b3VyIHJlcGx5LCBhbmQgSSB3aWxsIHNlbmQgYSBuZXcgdmVyc2lvbiBvZiB0
aGlzCnBhdGNoLgoKPk9uIFRodSwgSmFuIDA0LCAyMDE4IGF0IDA1OjQ2OjMyIC0wNTAwLCBZaSBX
YW5nIHdyb3RlOgo+PiBXZSBjYW4ndCBjbGVhciB2Y3B1cGluIHNldHRpbmdzIG9mIFhNTCBvbmNl
IHdlIGRpZCB2Y3B1cGluCj4+IGNvbW1hbmQsIHRoaXMgaXMgbm90IGNvbnZlbmllbnQgdW5kZXIg
c29tZSBjb25kaXRpb24gc3VjaAo+PiBhcyBtaWdyYXRpb24uCj4+Cj4+IFRoaXMgcGF0Y2ggaW50
cm9kdWNlcyBjbGVhciBmZWF0dXJlLCB3aGljaCBjYW4gY2xlYXIgdmNwdWluCj4+IHNldHRpbmcg
b2YgWE1MLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBZaSBXYW5nIDx3YW5nLnlpNTlAenRlLmNvbS5j
bj4KPj4gU2lnbmVkLW9mZi1ieTogWGkgWHUgPHh1LnhpOEB6dGUuY29tLmNuPgo+PiAtLS0KPj4g
aW5jbHVkZS9saWJ2aXJ0L2xpYnZpcnQtZG9tYWluLmggfCAxICsKPj4gc3JjL3FlbXUvcWVtdV9k
cml2ZXIuYyB8IDI0ICsrKysrKysrKysrKysrKysrKystLS0tLQo+PiB0b29scy92aXJzaC1kb21h
aW4uYyB8IDUgKysrKy0KPj4gdG9vbHMvdmlyc2gucG9kIHwgMSArCj4+IDQgZmlsZXMgY2hhbmdl
ZCwgMjUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2lu
Y2x1ZGUvbGlidmlydC9saWJ2aXJ0LWRvbWFpbi5oIGIvaW5jbHVkZS9saWJ2aXJ0L2xpYnZpcnQt
ZG9tYWluLmgKPj4gaW5kZXggNDA0OGFjZi4uN2IxNzFkZiAxMDA2NDQKPj4gLS0tIGEvaW5jbHVk
ZS9saWJ2aXJ0L2xpYnZpcnQtZG9tYWluLmgKPj4gKysrIGIvaW5jbHVkZS9saWJ2aXJ0L2xpYnZp
cnQtZG9tYWluLmgKPj4gQEAgLTE4MzcsNiArMTgzNyw3IEBAIHR5cGVkZWYgZW51bSB7Cj4+IFZJ
Ul9ET01BSU5fVkNQVV9NQVhJTVVNID0gKDEgPDwgMiksIC8qIE1heCByYXRoZXIgdGhhbiBjdXJy
ZW50IGNvdW50ICovCj4+IFZJUl9ET01BSU5fVkNQVV9HVUVTVCA9ICgxIDw8IDMpLCAvKiBNb2Rp
Znkgc3RhdGUgb2YgdGhlIGNwdSBpbiB0aGUgZ3Vlc3QgKi8KPj4gVklSX0RPTUFJTl9WQ1BVX0hP
VFBMVUdHQUJMRSA9ICgxIDw8IDQpLCAvKiBNYWtlIHZjcHVzIGFkZGVkIGhvdCh1bilwbHVnZ2Fi
bGUgKi8KPj4gKyBWSVJfRE9NQUlOX1ZDUFVfQ0xFQVIgPSAoMSA8PCA1KSwgLyogQ2xlYXIgdmNw
dXMgcGluIGluZm8gKi8KPgo+VGhlc2UgYXJlIGZsYWdzIGZvciBhIHdyb25nIEFQSSwgeW91J2xs
IG5lZWQgdG8gaW50cm9kdWNlIG5ldyBzZXQgb2YKPmZsYWdzIGZvciB0aGUgcGlubmluZyBBUEku
Cj4KPj4gfSB2aXJEb21haW5WY3B1RmxhZ3M7Cj4+Cj4+IGludCB2aXJEb21haW5TZXRWY3B1cyAo
dmlyRG9tYWluUHRyIGRvbWFpbiwKPj4gZGlmZiAtLWdpdCBhL3NyYy9xZW11L3FlbXVfZHJpdmVy
LmMgYi9zcmMvcWVtdS9xZW11X2RyaXZlci5jCj4+IGluZGV4IDk3YjE5NGIuLjllODc1OWYgMTAw
NjQ0Cj4+IC0tLSBhL3NyYy9xZW11L3FlbXVfZHJpdmVyLmMKPj4gKysrIGIvc3JjL3FlbXUvcWVt
dV9kcml2ZXIuYwo+PiBAQCAtNTAwMSw3ICs1MDAxLDcgQEAgcWVtdURvbWFpblBpblZjcHVMaXZl
KHZpckRvbWFpbk9ialB0ciB2bSwKPj4gaW50IHZjcHUsCj4+IHZpclFFTVVEcml2ZXJQdHIgZHJp
dmVyLAo+PiB2aXJRRU1VRHJpdmVyQ29uZmlnUHRyIGNmZywKPj4gLSB2aXJCaXRtYXBQdHIgY3B1
bWFwKQo+PiArIHZpckJpdG1hcFB0ciBjcHVtYXAsIGJvb2wgY2xlYXIpCj4KPlBsZWFzZSBhZGhl
cmUgdG8gdGhlIGNvZGluZyBzdGFuZGFyZHMuCj4KPj4gewo+PiB2aXJCaXRtYXBQdHIgdG1wbWFw
ID0gTlVMTDsKPj4gdmlyRG9tYWluVmNwdURlZlB0ciB2Y3B1aW5mbzsKPj4gQEAgLTUwNDksNyAr
NTA0OSwxMiBAQCBxZW11RG9tYWluUGluVmNwdUxpdmUodmlyRG9tYWluT2JqUHRyIHZtLAo+PiB9
Cj4+Cj4+IHZpckJpdG1hcEZyZWUodmNwdWluZm8tPmNwdW1hc2spOwo+PiAtIHZjcHVpbmZvLT5j
cHVtYXNrID0gdG1wbWFwOwo+PiArIGlmIChjbGVhcikgewo+PiArIHZpckJpdG1hcEZyZWUodG1w
bWFwKTsKPj4gKyB2Y3B1aW5mby0+Y3B1bWFzayA9IE5VTEw7Cj4+ICsgfSBlbHNlIHsKPj4gKyB2
Y3B1aW5mby0+Y3B1bWFzayA9IHRtcG1hcDsKPj4gKyB9Cj4KPlRoaXMgd2lsbCBub3Qgd29yayBh
cyBleHBlY3RlZC4gVGhlIEFQSSBzdGlsbCB0YWtlcyB0aGUgcGlubmluZyBtYXAgaW50bwo+YWNj
b3VudCB3aGVuIHNldHRpbmcgdGhlIHBpbm5pbmcsIHNvIHNldHRpbmcgJ2NsZWFyJyB3aWxsIG9u
bHkgcmVtb3ZlCj50aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgWE1MIGJ1dCB3aWxsIHN0aWxsIGFw
cGx5ICdjcHVtYXAnIGFzIHRoZQo+ZGVzaXJlZCBwaW5uaW5nLgo+Cj5UaGUgQVBJIHNob3VsZCBu
b3QgcmVseSBvbiB0aGUgZmFjdCB0aGF0IHRoZSB1c2VyIHBhc3NlcyBpbiBjb3JyZWN0Cj5jcHVt
YXAgaW4gdGhpcyBjYXNlLiBZb3UnbGwgbmVlZCB0byBhZGQgbG9naWMgd2hpY2ggd2lsbCBzZXQg
dGhlIHBpbm5pbmcKPnRvIHRoZSB2YWx1ZSBhcyBpZiBpdCB3YXMgb21pdHRlZCBpbiB0aGUgWE1M
Lgo+Cj4+IHRtcG1hcCA9IE5VTEw7Cj4+Cj4+IGlmICh2aXJEb21haW5TYXZlU3RhdHVzKGRyaXZl
ci0+eG1sb3B0LCBjZmctPnN0YXRlRGlyLCB2bSwgZHJpdmVyLT5jYXBzKSA8IDApCj4+IEBAIC01
MDkzLDkgKzUwOTgsMTEgQEAgcWVtdURvbWFpblBpblZjcHVGbGFncyh2aXJEb21haW5QdHIgZG9t
LAo+PiB2aXJCaXRtYXBQdHIgcGNwdW1hcCA9IE5VTEw7Cj4+IHZpckRvbWFpblZjcHVEZWZQdHIg
dmNwdWluZm8gPSBOVUxMOwo+PiB2aXJRRU1VRHJpdmVyQ29uZmlnUHRyIGNmZyA9IE5VTEw7Cj4+
ICsgYm9vbCBjbGVhciA9IGZhbHNlOwo+Pgo+PiB2aXJDaGVja0ZsYWdzKFZJUl9ET01BSU5fQUZG
RUNUX0xJVkUgfAo+PiAtIFZJUl9ET01BSU5fQUZGRUNUX0NPTkZJRywgLTEpOwo+PiArIFZJUl9E
T01BSU5fQUZGRUNUX0NPTkZJRyB8Cj4+ICsgVklSX0RPTUFJTl9WQ1BVX0NMRUFSLCAtMSk7Cj4+
Cj4+IGNmZyA9IHZpclFFTVVEcml2ZXJHZXRDb25maWcoZHJpdmVyKTsKPj4KPgo+Wy4uLl0KPgo+
PiBkaWZmIC0tZ2l0IGEvdG9vbHMvdmlyc2gtZG9tYWluLmMgYi90b29scy92aXJzaC1kb21haW4u
Ywo+PiBpbmRleCA5M2NiMDIwLi40YmFkOWU3IDEwMDY0NAo+PiAtLS0gYS90b29scy92aXJzaC1k
b21haW4uYwo+PiArKysgYi90b29scy92aXJzaC1kb21haW4uYwo+PiBAQCAtNjg2MCw3ICs2ODYw
LDcgQEAgdmlyc2hQYXJzZUNQVUxpc3QodnNoQ29udHJvbCAqY3RsLCBpbnQgKmNwdW1hcGxlbiwK
Pj4gdW5zaWduZWQgY2hhciAqY3B1bWFwID0gTlVMTDsKPj4gdmlyQml0bWFwUHRyIG1hcCA9IE5V
TEw7Cj4+Cj4+IC0gaWYgKGNwdWxpc3RbMF0gPT0gJ3InKSB7Cj4+ICsgaWYgKGNwdWxpc3RbMF0g
PT0gJ3InIHx8IFNUUkVRKCJjbGVhciIsIGNwdWxpc3QpKSB7Cj4+IGlmICghKG1hcCA9IHZpckJp
dG1hcE5ldyhtYXhjcHUpKSkKPj4gcmV0dXJuIE5VTEw7Cj4+IHZpckJpdG1hcFNldEFsbChtYXAp
Owo+PiBAQCAtNjkzOCw2ICs2OTM4LDkgQEAgY21kVmNwdVBpbih2c2hDb250cm9sICpjdGwsIGNv
bnN0IHZzaENtZCAqY21kKQo+PiBnb3RvIGNsZWFudXA7Cj4+IH0KPj4KPj4gKyBpZiAoU1RSRVEo
Y3B1bGlzdCwgImNsZWFyIikpCj4+ICsgZmxhZ3MgfD0gVklSX0RPTUFJTl9WQ1BVX0NMRUFSOwo+
PiArCj4+IC8qIFBpbiBtb2RlOiBwaW5uaW5nIHNwZWNpZmllZCB2Y3B1IHRvIHNwZWNpZmllZCBw
aHlzaWNhbCBjcHVzKi8KPj4gaWYgKCEoY3B1bWFwID0gdmlyc2hQYXJzZUNQVUxpc3QoY3RsLCAm
Y3B1bWFwbGVuLCBjcHVsaXN0LCBtYXhjcHUpKSkKPj4gZ290byBjbGVhbnVwOwo+PiBkaWZmIC0t
Z2l0IGEvdG9vbHMvdmlyc2gucG9kIGIvdG9vbHMvdmlyc2gucG9kCj4+IGluZGV4IDY5Y2M0MjMu
LmNhYWEyMzAgMTAwNjQ0Cj4+IC0tLSBhL3Rvb2xzL3ZpcnNoLnBvZAo+PiArKysgYi90b29scy92
aXJzaC5wb2QKPj4gQEAgLTI4NTcsNiArMjg1Nyw3IEBAIEk8Y3B1bGlzdD4gaXMgYSBsaXN0IG9m
IHBoeXNpY2FsIENQVSBudW1iZXJzLiBJdHMgc3ludGF4IGlzIGEgY29tbWEKPj4gc2VwYXJhdGVk
IGxpc3QgYW5kIGEgc3BlY2lhbCBtYXJrdXAgdXNpbmcgJy0nIGFuZCAnXicgKGV4LiAnMC00Jywg
JzAtMyxeMicpIGNhbgo+PiBhbHNvIGJlIGFsbG93ZWQuIFRoZSAnLScgZGVub3RlcyB0aGUgcmFu
Z2UgYW5kIHRoZSAnXicgZGVub3RlcyBleGNsdXNpdmUuCj4+IEZvciBwaW5uaW5nIHRoZSBJPHZj
cHU+IHRvIGFsbCBwaHlzaWNhbCBjcHVzIHNwZWNpZnkgJ3InIGFzIGEgSTxjcHVsaXN0Pi4KPj4g
K0ZvciBjbGVhcmluZyBwaW5uaW5nIGluZm8sIHNwZWNpZnkgJ2NsZWFyJyBhcyBhIEk8Y3B1bGlz
dD4uCj4KPlRoZSBvdGhlciBzcGVjaWFsIHZhbHVlIGlzICdyJyBzbyBJIHRoaW5rIHRoaXMgc2hv
dWxkIGFsc28gYmUgYSBzaW5nbGUKPmxldHRlciBvcHRpb24uIE9yIGJldHRlciBhIHN3aXRjaCBi
eSBpdHNlbGYuCgoKLS0tCkJlc3Qgd2lzaGVzCllpIFdhbmc=