Re: master: Perform local common subexpression elimination for some memory loads

Stas Boukarev <[email protected]> Tue, 4 Aug 2026 07:04:24 +0300
Newsgroups gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel
Message-ID <CAF63=113B_8vtChqfr2wJ15w4sqzG12CGywQbG0QAV-8NKbM3A@mail.gmail.com>
KGRlZnVuIGsgKHggbikKICAobGV0ICgoeSAoMSsgeCkpKQogICAgKHZhbHVlcyB5IHkKICAgICAg
ICAgICAgKGVxIChjYXIgKGNvcHktdHJlZSBuKSkKICAgICAgICAgICAgICAgIChjYXIgKGNvcHkt
dHJlZSBuKSkpKSkpCj0+CihrIDEgJygoMSkpKQo9PgoyCjIKVAoKT24gVHVlLCBBdWcgNCwgMjAy
NiBhdCA2OjQ34oCvQU0gU3RhcyBCb3VrYXJldiA8c3Rhc3NhdHNAZ21haWwuY29tPiB3cm90ZToK
Pgo+IChkZWZ1biBqICh4KQo+ICAgKGxldCAoKHkgKDErIHgpKSkKPiAgICAgKHZhbHVlcyB5IHkK
PiAgICAgICAgICAgICAoY2FyICopCj4gICAgICAgICAgICAgKHNldGYgKiAnKGIpKQo+ICAgICAg
ICAgICAgIChjYXIgKikpKSkKPiAobGV0ICgoKiAnKGEpKSkgKGogMSkpCj4gPT4KPiAyCj4gMgo+
IEEKPiAoQikKPiBBCj4KPiBPbiBUdWUsIEF1ZyA0LCAyMDI2IGF0IDQ6MjLigK9BTSBTdGFzIEJv
dWthcmV2IDxzdGFzc2F0c0BnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+IChkZWZzdHJ1Y3Qgcwo+
ID4gICAoeCAobWFrZS1hcnJheSAzKSkpCj4gPgo+ID4gKGxldCAoKikKPiA+ICAgKGxhbWJkYSAo
KQo+ID4gICAgIChsZXQqICgocyAjLihtYWtlLXMpKQo+ID4gICAgICAgICAgICAoYSAocy14IHMp
KQo+ID4gICAgICAgICAgICAoYiAocy14IHMpKSkKPiA+ICAgICAgICh2YWx1ZXMgKGFyZWYgYSAw
KQo+ID4gICAgICAgICAgICAgICAoYXJlZiBiIDApKSkpKQo+ID4KPiA+Cj4gPiBkZWJ1Z2dlciBp
bnZva2VkIG9uIGEgU0ItSU5UOkJVRyBAQjgwMDdCODVBRCBpbiB0aHJlYWQKPiA+ICM8VEhSRUFE
IHRpZD0xOTg2NDAyICJtYWluIHRocmVhZCIgUlVOTklORyB7MTIwMTRGMDAwM30+Ogo+ID4gICAg
IGZhaWxlZCBBVkVSOiAoRVEgRU5WIChMQU1CREEtRU5WSVJPTk1FTlQgKExBTUJEQS1WQVItSE9N
RSBUSElORykpKQo+ID4KPiA+IE9uIFR1ZSwgQXVnIDQsIDIwMjYgYXQgMzo1OeKAr0FNIHNudWds
YXMgdmlhIFNiY2wtY29tbWl0cwo+ID4gPHNiY2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vmb3JnZS5u
ZXQ+IHdyb3RlOgo+ID4gPgo+ID4gPiBUaGUgYnJhbmNoICJtYXN0ZXIiIGhhcyBiZWVuIHVwZGF0
ZWQgaW4gU0JDTDoKPiA+ID4gICAgICAgIHZpYSAgMTAwYzljMmJkY2RjYjg0ZmYwNGM4ZmVlZjk4
M2E1YjQ0Njk1Yzk3YSAoY29tbWl0KQo+ID4gPiAgICAgICBmcm9tICBiNTQxZjJmMjViMTRiNjJm
Y2FiN2UxNGFhNTEyNGRiNWRkMWQ2YjIwIChjb21taXQpCj4gPiA+Cj4gPiA+IC0gTG9nIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCj4gPiA+IGNvbW1pdCAxMDBjOWMyYmRjZGNiODRmZjA0YzhmZWVmOTgzYTViNDQ2OTVjOTdh
Cj4gPiA+IEF1dGhvcjogRG91Z2xhcyBLYXR6bWFuIDxkb3Vna0Bnb29nbGUuY29tPgo+ID4gPiBE
YXRlOiAgIFR1ZSBBdWcgNCAwMDo1ODoyMSAyMDI2ICswMDAwCj4gPiA+Cj4gPiA+ICAgICBQZXJm
b3JtIGxvY2FsIGNvbW1vbiBzdWJleHByZXNzaW9uIGVsaW1pbmF0aW9uIGZvciBzb21lIG1lbW9y
eSBsb2Fkcwo+ID4gPgo+ID4gPiAgICAgVGhlIHRlY2huaXF1ZSBpcyB0byBmaW5kICJlcXVpdmFs
ZW50IiBsb2FkcyBpbiBiZXR3ZWVuIHdoaWNoIHRoZXJlIGlzIG5vCj4gPiA+ICAgICBjb21wdXRh
dGlvbiB0aGF0IGFmZmVjdHMgdGhlIHJlc3VsdCBvZiB0aGUgbG9hZC4gQWxzbyBpdCBuZWVkcyBh
IHN1cnJvdW5kaW5nCj4gPiA+ICAgICBMRVQsIHdoaWNoIGlzIGF1Z21lbnRlZCB3aXRoIGEgbmV3
IHRlbXAgdmFyaWFibGUgYXMgaWYgdGhlIHVzZXIgZGlkIHRoYXQuCj4gPiA+ICAgICBUaGlzIGlz
IHNsaWdodGx5IGRlZmljaWVudCBmb3IgdmFyaW91cyByZWFzb25zOgo+ID4gPiAgICAgMS4gaXQg
d29uJ3QgZG8gYW55dGhpbmcgd2l0aG91dCB0aGUgTEVUCj4gPiA+ICAgICAyLiB0aGUgbW9yZSBr
aW5kcyBvZiBjb21tb24gc3ViZXhwcmVzc2lvbnMgd2UgYWxsb3cgKHN1Y2ggYXMgbWF0aCksCj4g
PiA+ICAgICAgICB0aGUgc2xvd2VyIElSMS1PUFRJTUlaRS1DT01CSU5BVElPTiBpcyBnb2luZyB0
byBydW4KPiA+ID4gICAgIDMuIHRoZXJlIGFyZSBwb3NzaWJseSBvdGhlciBub2RlIHR5cGVzIHRo
YXQgc2hvdWxkIGJlIGFsbG93ZWQgdG8gaW50ZXJ2ZW5lCj4gPiA+Cj4gPiA+ICAgICBPbiB0aGUg
cGx1cyBzaWRlLCBpdCdzIG5vdCBhbGwgdGhhdCBoYXJkIHRvIGV4dGVuZCB0aGUgbG9naWMgdG8g
YWNjZXB0Cj4gPiA+ICAgICBvdGhlciBmdW5jdGlvbnMgYXMgcGFydGljaXBhbnRzIGluIGNvbW1v
biBzdWJleHByZXNzaW9ucy4KPiA+ID4KPiA+ID4gICAgIEFsbCB0ZXN0IGNhc2VzIHBsdXMgYSBs
aXR0bGUgYml0IG9mIGFzc2lzdGFuY2UgZnJvbSBHZW1pbmkKPiA+ID4gLS0tCj4gPiA+ICBzcmMv
Y29tcGlsZXIvaXIxb3B0Lmxpc3AgfCAxNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrCj4gPiA+ICB0ZXN0cy9sY3NlLnB1cmUubGlzcCAgICAgfCAyMzQgKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gIHhwZXJmZWN0aGFzaDMw
Lmxpc3AtZXhwciB8ICAgMyArCj4gPiA+ICB4cGVyZmVjdGhhc2g2MS5saXNwLWV4cHIgfCAgIDMg
Kwo+ID4gPiAgeHBlcmZlY3RoYXNoNjMubGlzcC1leHByIHwgICAzICsKPiA+ID4gIDUgZmlsZXMg
Y2hhbmdlZCwgNDIyIGluc2VydGlvbnMoKykKPiA+ID4KPiA+ID4gZGlmZiAtLWdpdCBhL3NyYy9j
b21waWxlci9pcjFvcHQubGlzcCBiL3NyYy9jb21waWxlci9pcjFvcHQubGlzcAo+ID4gPiBpbmRl
eCA4NTU5ODI0ZjEuLmRhYzM5M2UzMSAxMDA2NDQKPiA+ID4gLS0tIGEvc3JjL2NvbXBpbGVyL2ly
MW9wdC5saXNwCj4gPiA+ICsrKyBiL3NyYy9jb21waWxlci9pcjFvcHQubGlzcAo+ID4gPiBAQCAt
MTIyMCw2ICsxMjIwLDE4MiBAQAo+ID4gPiAgICAgICAgICAgICAgKHNob3ctdHlwZS1kZXJpdmF0
aW9uIGNvbWJpbmF0aW9uIHJlcykpCj4gPiA+ICAgICAgICAgICAgKGNvZXJjZS10by12YWx1ZXMg
cmVzKSkpKSkpCj4gPiA+Cj4gPiA+ICsoZGVmdW4gY29sbGVjdC1sdmFyLXZhcnMgKGx2YXIpCj4g
PiA+ICsgIChkZWNsYXJlICh0eXBlIGx2YXIgbHZhcikpCj4gPiA+ICsgIChsZXQgKCh1c2UgKHBy
aW5jaXBhbC1sdmFyLXVzZSBsdmFyKSkpCj4gPiA+ICsgICAgKGNvbmQgKChyZWYtcCB1c2UpCj4g
PiA+ICsgICAgICAgICAgIChsZXQgKChsZWFmIChyZWYtbGVhZiB1c2UpKSkKPiA+ID4gKyAgICAg
ICAgICAgICAod2hlbiAobGFtYmRhLXZhci1wIGxlYWYpCj4gPiA+ICsgICAgICAgICAgICAgICAo
bGlzdCBsZWFmKSkpKQo+ID4gPiArICAgICAgICAgICgoY29tYmluYXRpb24tcCB1c2UpCj4gPiA+
ICsgICAgICAgICAgIChtYXBjYW4gIydjb2xsZWN0LWx2YXItdmFycyAoYmFzaWMtY29tYmluYXRp
b24tYXJncyB1c2UpKSkKPiA+ID4gKyAgICAgICAgICAodCBuaWwpKSkpCj4gPiA+ICsKPiA+ID4g
KyhkZWZ1biBmaW5kLWFjdGl2ZS1sZXQtbGFtYmRhIChub2RlKQo+ID4gPiArICAoZGVjbGFyZSAo
dHlwZSBub2RlIG5vZGUpKQo+ID4gPiArICAobG9vcCBmb3IgZW52ID0gKG5vZGUtbGV4ZW52IG5v
ZGUpIHRoZW4gKGxleGVudi1wYXJlbnQgZW52KQo+ID4gPiArICAgICAgICB3aGlsZSBlbnYKPiA+
ID4gKyAgICAgICAgZG8gKGxldCAoKGwgKGxleGVudi1sYW1iZGEgZW52KSkpCj4gPiA+ICsgICAg
ICAgICAgICAgKHdoZW4gKGFuZCBsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoZnVu
Y3Rpb25hbC1raW5kLWVxIGwgbGV0KQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKG5v
dCAoZnVuY3Rpb25hbC1raW5kLWVxIGwgem9tYmllKSkpCj4gPiA+ICsgICAgICAgICAgICAgICAo
cmV0dXJuIGwpKSkpKQo+ID4gPiArCj4gPiA+ICsoZGVmdW4gYWRkLXZhcmlhYmxlLXRvLWxldC1s
YW1iZGEgKGxldC1sYW1iZGEgdikKPiA+ID4gKyAgKGRlY2xhcmUgKHR5cGUgY2xhbWJkYSBsZXQt
bGFtYmRhKQo+ID4gPiArICAgICAgICAgICAodHlwZSBsYW1iZGEtdmFyIHYpKQo+ID4gPiArICAo
c2V0ZiAobGFtYmRhLXZhci1ob21lIHYpIGxldC1sYW1iZGEpCj4gPiA+ICsgIChzZXRmIChsYW1i
ZGEtdmFycyBsZXQtbGFtYmRhKSAoYXBwZW5kIChsYW1iZGEtdmFycyBsZXQtbGFtYmRhKSAobGlz
dCB2KSkpCj4gPiA+ICsgIDs7IFVwZGF0ZSB0aGUgY2FsbCB0byB0aGUgTEVUIGxhbWJkYQo+ID4g
PiArICAobGV0KiAoKHJlZiAoY2FyIChsZWFmLXJlZnMgbGV0LWxhbWJkYSkpKQo+ID4gPiArICAg
ICAgICAgKGNhbGwgKGFuZCByZWYKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgKG5vZGUtbHZh
ciByZWYpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgIChsdmFyLWRlc3QgKG5vZGUtbHZhciBy
ZWYpKSkpKQo+ID4gPiArICAgICh3aGVuIChhbmQgY2FsbCAoY29tYmluYXRpb24tcCBjYWxsKSkK
PiA+ID4gKyAgICAgIChsZXQgKChkdW1teS1sdmFyIChtYWtlLWx2YXIpKSkKPiA+ID4gKyAgICAg
ICAgKHNldGYgKGx2YXItZGVzdCBkdW1teS1sdmFyKSBjYWxsKQo+ID4gPiArICAgICAgICAoc2V0
ZiAoYmFzaWMtY29tYmluYXRpb24tYXJncyBjYWxsKQo+ID4gPiArICAgICAgICAgICAgICAoYXBw
ZW5kIChiYXNpYy1jb21iaW5hdGlvbi1hcmdzIGNhbGwpIChsaXN0IGR1bW15LWx2YXIpKSkKPiA+
ID4gKyAgICAgICAgKHNldGYgKGx2YXItZGVzdCBkdW1teS1sdmFyKSBjYWxsKSkpKSkKPiA+ID4g
Kwo+ID4gPiArOzsgUmV1c2Ugb2YgU1lNQk9MLVZBTFVFIG9mIGEgc3BlY2lhbCB2YXIgd291bGQg
YmUgbmljZSwKPiA+ID4gKzs7IGJ1dCBTWU1CT0wtVkFMVUUgaXQgaXMgbm90IHJlcHJlc2VudGVk
IGFzIGEgY2FsbCBpbiBJUjEKPiA+ID4gKyhkZWZpbmUtbG9hZC10aW1lLWdsb2JhbCAqZWxpZGFi
bGUtbWVtb3J5LWxvYWRzKgo+ID4gPiArICAgICcoY2FyIGNkciAlaW5zdGFuY2UtcmVmICVyYXct
aW5zdGFuY2UtcmVmL3dvcmQgJXJhdy1pbnN0YW5jZS1yZWYvc2lnbmVkLXdvcmQKPiA+ID4gKyAg
ICAgIHNhcC1yZWYtMTYgc2lnbmVkLXNhcC1yZWYtMTYgc2Itc3lzOjolc2FwLXJlZi0xNi1pbmRl
eGVkIHNiLXN5czo6JXNpZ25lZC1zYXAtcmVmLTE2LWluZGV4ZWQKPiA+ID4gKyAgICAgIHNhcC1y
ZWYtMzIgc2lnbmVkLXNhcC1yZWYtMzIgc2Itc3lzOjolc2FwLXJlZi0zMi1pbmRleGVkIHNiLXN5
czo6JXNpZ25lZC1zYXAtcmVmLTMyLWluZGV4ZWQKPiA+ID4gKyAgICAgIHNhcC1yZWYtNjQgc2ln
bmVkLXNhcC1yZWYtNjQgc2Itc3lzOjolc2FwLXJlZi02NC1pbmRleGVkIHNiLXN5czo6JXNpZ25l
ZC1zYXAtcmVmLTY0LWluZGV4ZWQKPiA+ID4gKyAgICAgIHNiLWFsaWVuOmRlcmVmCj4gPiA+ICsg
ICAgICBzYi1hbGllbjphbGllbi1zYXApKQo+ID4gPiArCj4gPiA+ICs7OzsgTG9vayBmb3IgYW55
IG5vZGUgZXF1aXZhbGVudCB0byBNQVRDSCBjb25zZGVyaW5nIG5vZGVzIGluIHJldmVyc2Ugc3Rh
cnRpbmcgYXQgRlJPTS4KPiA+ID4gKzs7OyBNZW1vcnkgbG9hZHMgZnJvbSB0aGUgc2FtZSBvYmpl
Y3Qrc2xvdCBvciBTQVArb2Zmc2V0IGNvdWxkIGJlIGVxdWl2YWxlbnQuCj4gPiA+ICs7OzsgTm90
aGluZyBlbHNlIGNhbiBiZSBlcXVpdmFsZW50ICh1bnRpbCBJIGVuaGFuY2UgdGhpcykKPiA+ID4g
KyhkZWZ1biBmaW5kLWVxdWl2YWxlbnQtbm9kZS1iYWNrd2FyZHMgKG1hdGNoIGZyb20pCj4gPiA+
ICsgIChsYWJlbHMgKChsdmFyLWVxdWl2YWxlbnQtcCAobDEgbDIpCj4gPiA+ICsgICAgICAgICAg
ICAgKGRlY2xhcmUgKHR5cGUgbHZhciBsMSBsMikpCj4gPiA+ICsgICAgICAgICAgICAgKGNvbmQg
KChlcSBsMSBsMikgdCkKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAoKGFuZCAoY29uc3RhbnQt
bHZhci1wIGwxKSAoY29uc3RhbnQtbHZhci1wIGwyKSkKPiA+ID4gKyAgICAgICAgICAgICAgICAg
ICAgKGVxbCAobHZhci12YWx1ZSBsMSkgKGx2YXItdmFsdWUgbDIpKSkKPiA+ID4gKyAgICAgICAg
ICAgICAgICAgICAodAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAobGV0ICgodTEgKHByaW5j
aXBhbC1sdmFyLXVzZSBsMSkpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICh1MiAo
cHJpbmNpcGFsLWx2YXItdXNlIGwyKSkpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgKGNv
bmQgKChhbmQgKHJlZi1wIHUxKSAocmVmLXAgdTIpKQo+ID4gPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZXEgKHJlZi1sZWFmIHUxKSAocmVmLWxlYWYgdTIpKSkKPiA+ID4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoKGFuZCAoY29tYmluYXRpb24tcCB1MSkgKGNvbWJpbmF0
aW9uLXAgdTIpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIChi
YXNpYy1jb21iaW5hdGlvbi1raW5kIHUxKSA6a25vd24pCj4gPiA+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGVxIChiYXNpYy1jb21iaW5hdGlvbi1raW5kIHUyKSA6a25vd24p
KQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tYmluYXRpb24tZXF1aXZh
bGVudC1wIHUxIHUyKSkKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCBuaWwp
KSkpKSkKPiA+ID4gKyAgICAgICAgICAgKGNvbWJpbmF0aW9uLWVxdWl2YWxlbnQtcCAoYzEgYzIp
Cj4gPiA+ICsgICAgICAgICAgICAgKGRlY2xhcmUgKHR5cGUgY29tYmluYXRpb24gYzEgYzIpKQo+
ID4gPiArICAgICAgICAgICAgIChhbmQgKGVxIChiYXNpYy1jb21iaW5hdGlvbi1mdW4taW5mbyBj
MSkgKGJhc2ljLWNvbWJpbmF0aW9uLWZ1bi1pbmZvIGMyKSkKPiA+ID4gKyAgICAgICAgICAgICAg
ICAgIChsZXQgKChhcmdzMSAoYmFzaWMtY29tYmluYXRpb24tYXJncyBjMSkpCj4gPiA+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAoYXJnczIgKGJhc2ljLWNvbWJpbmF0aW9uLWFyZ3MgYzIpKSkK
PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgKGFuZCAoPSAobGVuZ3RoIGFyZ3MxKSAobGVuZ3Ro
IGFyZ3MyKSkKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlcnkgIydsdmFyLWVx
dWl2YWxlbnQtcCBhcmdzMSBhcmdzMikpKSkpKQo+ID4gPiArICAgIChkbyAoKG5vZGUgZnJvbSAo
Y3RyYW4tdXNlIChub2RlLXByZXYgbm9kZSkpKSkgKChudWxsIG5vZGUpKQo+ID4gPiArICAgICAg
KHdoZW4gKGFuZCAoY29tYmluYXRpb24tcCBub2RlKQo+ID4gPiArICAgICAgICAgICAgICAgICAo
ZXEgKGNvbWJpbmF0aW9uLWtpbmQgbm9kZSkgOmtub3duKQo+ID4gPiArICAgICAgICAgICAgICAg
ICAobm9kZS1sdmFyIG5vZGUpCj4gPiA+ICsgICAgICAgICAgICAgICAgIChjb21iaW5hdGlvbi1l
cXVpdmFsZW50LXAgbm9kZSBtYXRjaCkpCj4gPiA+ICsgICAgICAgIChyZXR1cm4gbm9kZSkpCj4g
PiA+ICsgICAgICAodHlwZWNhc2Ugbm9kZQo+ID4gPiArICAgICAgICAoKG9yIGNzZXQgcmVmIGNh
c3QgY29tYmluYXRpb24gY2lmKSkKPiA+ID4gKyAgICAgICAgKHQKPiA+ID4gKyAgICAgICAgIDs7
IFJldHVybiA6RkFJTCB0byBhYm9ydCBxdWlja2x5LiBUaGlzIGNvdWxkIGNob29zZSB0byBmYWls
IGlmIGEgbm9uLWZsdXNoYWJsZQo+ID4gPiArICAgICAgICAgOzsgY29tYmluYXRpb24gaXMgc2Vl
biwgYnV0IGZvciBub3cgSSdtIGRlZmVycmluZyB0aGF0IHNvdW5kbmVzcyBjaGVjay4KPiA+ID4g
KyAgICAgICAgIChyZXR1cm4tZnJvbSBmaW5kLWVxdWl2YWxlbnQtbm9kZS1iYWNrd2FyZHMgOmZh
aWwpKSkpKSkKPiA+ID4gKwo+ID4gPiArOzs7IEF0dG1wdCB0byBmaW5kIGEgQ09NQklOQVRJT04g
ZXF1aXZhbGVudCB0byBUSElTIHByZWNlZGluZyBpdCBpbiBub2RlIG9yZGVyLCB0aGUgdmFsdWUK
PiA+ID4gKzs7OyBvZiB3aGljaCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIHRoZSBjYWxsIHRvIFRI
SVMsIGFjdHVhbGx5IG1ha2luZyB0aGUgc3Vic3RpdHV0aW9uLgo+ID4gPiArOzs7IExvb2tpbmcg
YmFja3dhcmRzIGF0IG1vc3QgYSBmZXcgYmxvY2tzIHRlbmRzIHRvIHdvcmsgd2VsbCBlbm91Z2gs
IGFuZCBpbnBvcnRhbnRseQo+ID4gPiArOzs7IGxpbWl0cyB0aGUgd29yay4gU2Nhbm5pbmcgb25s
eSB0aGUgY3VycmVudCBibG9jayBpcyBpbmFkZXF1YXRlIGFzIHRoZSBleGFtcGxlCj4gPiA+ICs7
OzsgaW4gOkxPT1AtT1ZFUi1ERVJFRiBzaG93cy4gVGhlIGltbWVkaWF0ZSBwcmVkZWNlc3NvciBp
cyBzdGlsbCBub3QgZW5vdWdoLCBiZWNhdXNlIHRoZQo+ID4gPiArOzs7IHByZWRlY2Vzc29yIGNv
dWxkIGhhdmUgYmVlbiBzcGxpdCwgbGVhdmluZyBhIHRpbnkgYmxvY2sgd2hlcmUgdGhlIG9ubHkg
bm9kZSBpcwo+ID4gPiArOzs7IGEgdHJpdmlhbCBvcGVyYXRpb24uCj4gPiA+ICsoZGVmdW4gdHJ5
LXJldXNlLWV4cHItdmFsdWUgKHRoaXMpCj4gPiA+ICsgIChkZWNsYXJlICh0eXBlIGNvbWJpbmF0
aW9uIHRoaXMpKQo+ID4gPiArICAoYmluZGluZyoKPiA+ID4gKyAgICAgICgoaG9tZS1sYW1iZGEg
KGZpbmQtYWN0aXZlLWxldC1sYW1iZGEgdGhpcykgOmV4aXQtaWYtbnVsbCkKPiA+ID4gKyAgICAg
ICAobG9va2JhY2sgMCkKPiA+ID4gKyAgICAgICAoYzEKPiA+ID4gKyAgICAgICAgOzsgSW4gdGhp
cyBibG9jaywgZXhwbGljaXRseSBnbyBiYWNrIGEgbm9kZSBzbyB0aGF0IEZJTkQtQkFDS1dBUkRT
IGRvZXNuJ3QgY29uc2lkZXIgVEhJUwo+ID4gPiArICAgICAgICA7OyBhcyBlcXVpdmFsZW50IHRv
IGl0c2VsZi4gRmFpbGluZyB0aGF0LCB0cnkgcHJlZGVjZXNzb3IgYmxvY2tzLCBidXQgb25seSBh
cyBsb25nIGFzCj4gPiA+ICsgICAgICAgIDs7IHByZWQgaXMgdW5pcXVlIHNpbmNlIHdlIGhhdmUg
bm8gaW5mb3JtYXRpb24gYWJvdXQgbm9kZXMgdGhhdCBkb21pbmF0ZSBUSElTLgo+ID4gPiArICAg
ICAgICAob3IgKGZpbmQtZXF1aXZhbGVudC1ub2RlLWJhY2t3YXJkcyB0aGlzIChjdHJhbi11c2Ug
KG5vZGUtcHJldiB0aGlzKSkpCj4gPiA+ICsgICAgICAgICAgICAoZG8gKChwcmVkIChibG9jay1w
cmVkIChub2RlLWJsb2NrIHRoaXMpKSkpCj4gPiA+ICsgICAgICAgICAgICAgICAgKChvciAoPiBs
b29rYmFjayAzKSAobm90IChzaW5nbGV0b24tcCBwcmVkKSkpKQo+ID4gPiArICAgICAgICAgICAg
ICAoaW5jZiBsb29rYmFjaykKPiA+ID4gKyAgICAgICAgICAgICAgKGxldCAoKG5vZGUgKGJsb2Nr
LWxhc3QgKGNhciBwcmVkKSkpKQo+ID4gPiArICAgICAgICAgICAgICAgICh3aGVuIChudWxsIG5v
ZGUpIChyZXR1cm4pKQo+ID4gPiArICAgICAgICAgICAgICAgIChhd2hlbiAoZmluZC1lcXVpdmFs
ZW50LW5vZGUtYmFja3dhcmRzIHRoaXMgbm9kZSkgKHJldHVybiBpdCkpCj4gPiA+ICsgICAgICAg
ICAgICAgICAgKHNldHEgcHJlZCAoYmxvY2stcHJlZCAobm9kZS1ibG9jayBub2RlKSkpKSkpCj4g
PiA+ICsgICAgICAgIDpleGl0LWlmLW51bGwpCj4gPiA+ICsgICAgICAgKHZhcnMgOyBjYW4ndCB1
c2UgOmV4aXQtaWYtbnVsbCBoZXJlIGJlY2F1c2UgVkFSUyBjYW4gYmUgYW5kIHVzdWFsbHkgaXMg
TklMCj4gPiA+ICsgICAgICAgICh1bmxlc3MgKGVxIGMxIDpmYWlsKQo+ID4gPiArICAgICAgICAg
IChtYXBjYW4gIydjb2xsZWN0LWx2YXItdmFycyAoYmFzaWMtY29tYmluYXRpb24tYXJncyBjMSkp
KSkpCj4gPiA+ICsgICAgKHdoZW4gKGVxIGMxIDpmYWlsKQo+ID4gPiArICAgICAgKHJldHVybi1m
cm9tIHRyeS1yZXVzZS1leHByLXZhbHVlIG5pbCkpCj4gPiA+ICsgICAgKGxhYmVscyAoKGFsbC1m
bHVzaGFibGUgKGN0cmFuIGVuZC1ub2RlKQo+ID4gPiArICAgICAgICAgICAgICAgKGRlY2xhcmUg
KGN0cmFuIGN0cmFuKSAodHlwZSAob3Igbm9kZSBudWxsKSBlbmQtbm9kZSkpCj4gPiA+ICsgICAg
ICAgICAgICAgICAobG9vcCAobGV0ICgobm9kZSAoY3RyYW4tbmV4dCBjdHJhbikpKQo+ID4gPiAr
ICAgICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGVxIG5vZGUgZW5kLW5vZGUpIChyZXR1cm4g
dCkpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobm90IChvay10by1mbHVz
aCBub2RlKSkgKHJldHVybiBuaWwpKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoKGFuZCAobm90IGVuZC1ub2RlKSAobm90IChub2RlLW5leHQgbm9kZSkpKSAocmV0dXJuIHQp
KSkKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgY3RyYW4gKG5vZGUtbmV4dCBu
b2RlKSkpKSkKPiA+ID4gKyAgICAgICAgICAgICAob2stdG8tZmx1c2ggKG5vZGUpCj4gPiA+ICsg
ICAgICAgICAgICAgICAoY29uZCAoKHNldC1wIG5vZGUpIChub3QgKG1lbWJlciAoc2V0LXZhciBu
b2RlKSB2YXJzKSkpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAoKGNvbWJpbmF0aW9uLXAg
bm9kZSkgKGZsdXNoYWJsZS1jb21iaW5hdGlvbi1wIG5vZGUpKQo+ID4gPiArICAgICAgICAgICAg
ICAgICAgICAgKChiYXNpYy1jb21iaW5hdGlvbi1wIG5vZGUpIG5pbCkKPiA+ID4gKyAgICAgICAg
ICAgICAgICAgICAgICh0IHQpKSkpIDsgYW55dGhpbmcgZWxzZSB0aGUgYmFja3dhcmRzIHNlYXJj
aCBhbGxvd2VkIGlzIG9rCj4gPiA+ICsgICAgICA7OyBXaGVuIGxvb2tiYWNrPjAgaXQncyBwb3Nz
aWJsZSBmb3IgdGhlIGVxdWl2YWxlbnQgbm9kZSB0byBiZSB0aGUgZmluYWwgbm9kZQo+ID4gPiAr
ICAgICAgOzsgb2YgaXRzIGJsb2NrLCBpbiB3aGljaCBjYXNlIGl0cyBOT0RFLU5FWFQgaXMgbnVs
bC4KPiA+ID4gKyAgICAgIChsZXQqICgodGhpcy1ibG9jayAobm9kZS1ibG9jayB0aGlzKSkKPiA+
ID4gKyAgICAgICAgICAgICAocHJlZCAoY2FyIChibG9jay1wcmVkIHRoaXMtYmxvY2spKSkpCj4g
PiA+ICsgICAgICAgICh1bmxlc3MgKGlmICg9IGxvb2tiYWNrIDApCj4gPiA+ICsgICAgICAgICAg
ICAgICAgICAgIChhbGwtZmx1c2hhYmxlIChub2RlLW5leHQgYzEpIHRoaXMpCj4gPiA+ICsgICAg
ICAgICAgICAgICAgICAgIChhbmQKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIDs7IENoZWNr
IHByZXYgYmxvY2sgZnJvbSBDMSB0byBpdHMgZW5kIG9mIGJsb2NrLCBhbmQgY3VycmVudCBibG9j
ayB1cCB0byBUSElTCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAoYWNvbmQgKChub2RlLW5l
eHQgYzEpIChhbGwtZmx1c2hhYmxlIGl0IG5pbCkpICh0IHQpKQo+ID4gPiArICAgICAgICAgICAg
ICAgICAgICAgKGFsbC1mbHVzaGFibGUgKGJsb2NrLXN0YXJ0IHRoaXMtYmxvY2spIHRoaXMpCj4g
PiA+ICsgICAgICAgICAgICAgICAgICAgICA7OyBBbGwgY2hlY2sgYWxsIG9mIG9uZSBvciBib3Ro
IGludGVydmVuaW5nIGJsb2Nrcwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgKG9yICg8IGxv
b2tiYWNrIDIpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgKGFsbC1mbHVzaGFibGUg
KGJsb2NrLXN0YXJ0IHByZWQpIG5pbCkpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAob3Ig
KDwgbG9va2JhY2sgMykKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAoYWxsLWZsdXNo
YWJsZSAoYmxvY2stc3RhcnQgKGNhciAoYmxvY2stcHJlZCBwcmVkKSkpIG5pbCkpKSkKPiA+ID4g
KyAgICAgICAgICAocmV0dXJuLWZyb20gdHJ5LXJldXNlLWV4cHItdmFsdWUgbmlsKSkpKQo+ID4g
PiArICAgIDs7IFN1YnN0aXR1dGUgQzEncyByZXN1bHQgaW4gZm9yIFRISVMKPiA+ID4gKyAgICAo
YmluZGluZyogKChsdmFyLWMxIChub2RlLWx2YXIgYzEpIDpleGl0LWlmLW51bGwpCj4gPiA+ICsg
ICAgICAgICAgICAgICAoY29uc3VtZXItMSAobHZhci1kZXN0IGx2YXItYzEpIDpleGl0LWlmLW51
bGwpCj4gPiA+ICsgICAgICAgICAgICAgICAoYzIgdGhpcykKPiA+ID4gKyAgICAgICAgICAgICAg
IChsdmFyLWMyIChub2RlLWx2YXIgYzIpIDpleGl0LWlmLW51bGwpCj4gPiA+ICsgICAgICAgICAg
ICAgICAodiAobWFrZS1sYW1iZGEtdmFyIChnZW5zeW0gIlJFVVNFRC1WQUwiKQo+ID4gPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHlwZSAoc2luZ2xlLXZhbHVlLXR5cGUg
KG5vZGUtZGVyaXZlZC10eXBlIGMxKSkpKQo+ID4gPiArICAgICAgICAgICAgICAgKGx2YXItbmV3
IChtYWtlLWx2YXIpKSkKPiA+ID4gKyAgICAgIChhZGQtdmFyaWFibGUtdG8tbGV0LWxhbWJkYSBo
b21lLWxhbWJkYSB2KQo+ID4gPiArCj4gPiA+ICsgICAgICA7OyAxLiBSZWRpcmVjdCBjb25zdW1l
ci0xIHRvIHJlYWQgZnJvbSBsdmFyLW5ldwo+ID4gPiArICAgICAgKHN1YnN0aXR1dGUtbHZhciBs
dmFyLW5ldyBsdmFyLWMxKQo+ID4gPiArCj4gPiA+ICsgICAgICAod2l0aC1pcjEtZW52aXJvbm1l
bnQtZnJvbS1ub2RlIGMxCj4gPiA+ICsgICAgICAgIDs7IDIuIE1ha2UgQzEgd3JpdGUgdG8gYSBu
ZXcgTFZBUiwgYW5kIGxpbmsgaXQgdG8gYSBDU0VUIG9uIFYKPiA+ID4gKyAgICAgICAgKGxldCAo
KGx2YXItYzEtbmV3IChtYWtlLWx2YXIpKSkKPiA+ID4gKyAgICAgICAgICAoJWRlbGV0ZS1sdmFy
LXVzZSBjMSkKPiA+ID4gKyAgICAgICAgICAodXNlLWx2YXIgYzEgbHZhci1jMS1uZXcpCj4gPiA+
ICsgICAgICAgICAgOzsgMy4gQ3JlYXRlIFMxIChzZXQgViA9IGx2YXItYzEtbmV3KSBhbmQgaW5z
ZXJ0IGFmdGVyIEMxCj4gPiA+ICsgICAgICAgICAgKGxldCAoKHMxIChtYWtlLXNldCB2IGx2YXIt
YzEtbmV3KSkpCj4gPiA+ICsgICAgICAgICAgICAoc2V0ZiAobHZhci1kZXN0IGx2YXItYzEtbmV3
KSBzMSkKPiA+ID4gKyAgICAgICAgICAgIChwdXNoIHMxIChiYXNpYy12YXItc2V0cyB2KSkKPiA+
ID4gKyAgICAgICAgICAgIChpbnNlcnQtbm9kZS1hZnRlciBjMSBzMSkpKSkKPiA+ID4gKwo+ID4g
PiArICAgICAgOzsgNC4gSW5zZXJ0IHJlZjEgYmVmb3JlIGNvbnN1bWVyLTEsIHdyaXRpbmcgdG8g
bHZhci1uZXcKPiA+ID4gKyAgICAgIChpbnNlcnQtcmVmLWJlZm9yZSB2IGNvbnN1bWVyLTEgbHZh
ci1uZXcpCj4gPiA+ICsgICAgICA7OyA1LiBJbnNlcnQgcmVmMiBiZWZvcmUgQzIsIHN0ZWFsaW5n
IEMyJ3MgbHZhcgo+ID4gPiArICAgICAgKGluc2VydC1yZWYtYmVmb3JlIHYgYzIgdCkKPiA+ID4g
KyAgICAgIDs7IEMyIGlzIG5vdyBkZWFkIGFuZCB3aWxsIGJlIGZsdXNoZWQgYnkgdGhlIGNhbGxl
ciEKPiA+ID4gKyAgICAgIHQpKSkKPiA+ID4gKwo+ID4gPiAgOzs7IERvIElSMSBvcHRpbWl6YXRp
b25zIG9uIGEgQ09NQklOQVRJT04gbm9kZS4KPiA+ID4gIChkZWZ1biBpcjEtb3B0aW1pemUtY29t
YmluYXRpb24gKG5vZGUgJmF1eCAoc2hvdyAqc2hvdy10cmFuc2Zvcm1zLXAqKSkKPiA+ID4gICAg
KGRlY2xhcmUgKHR5cGUgY29tYmluYXRpb24gbm9kZSkpCj4gPiA+IEBAIC0xMzA1LDYgKzE0ODEs
OSBAQAo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAobm90IChub2RlLWx2YXIgbm9kZSkp
KQo+ID4gPiAgICAgICAgICAgICAgICAgICAgKHJldHVybi1mcm9tIGlyMS1vcHRpbWl6ZS1jb21i
aW5hdGlvbiAoZmx1c2gtbm9kZSBub2RlKSkpCj4gPiA+ICAgICAgICAgICAgICAgICAgICgoZm9s
ZC1jYWxsLWRlcml2ZWQtdG8tY29uc3RhbnQgbm9kZSkKPiA+ID4gKyAgICAgICAgICAgICAgICAg
IChyZXR1cm4tZnJvbSBpcjEtb3B0aW1pemUtY29tYmluYXRpb24pKQo+ID4gPiArICAgICAgICAg
ICAgICAgICAoKGFuZCAoY29tYmluYXRpb24taXMgbm9kZSAqZWxpZGFibGUtbWVtb3J5LWxvYWRz
KikKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgKHRyeS1yZXVzZS1leHByLXZhbHVlIG5v
ZGUpKQo+ID4gPiAgICAgICAgICAgICAgICAgICAgKHJldHVybi1mcm9tIGlyMS1vcHRpbWl6ZS1j
b21iaW5hdGlvbikpKQo+ID4gPiAgICAgICAgICAgICAod2hlbiAoYW5kIChpcjEtYXR0cmlidXRl
cCAoZnVuLWluZm8tYXR0cmlidXRlcyBpbmZvKSBjb21tdXRhdGl2ZSkKPiA+ID4gICAgICAgICAg
ICAgICAgICAgICAgICAoPSAobGVuZ3RoIGFyZ3MpIDIpCj4gPiA+IGRpZmYgLS1naXQgYS90ZXN0
cy9sY3NlLnB1cmUubGlzcCBiL3Rlc3RzL2xjc2UucHVyZS5saXNwCj4gPiA+IG5ldyBmaWxlIG1v
ZGUgMTAwNjQ0Cj4gPiA+IGluZGV4IDAwMDAwMDAwMC4uNDNiMzRlOTk4Cj4gPiA+IC0tLSAvZGV2
L251bGwKPiA+ID4gKysrIGIvdGVzdHMvbGNzZS5wdXJlLmxpc3AKPiA+ID4gQEAgLTAsMCArMSwy
MzQgQEAKPiA+ID4gKzs7OzsgVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBTQkNMIHN5c3Rl
bS4gU2VlIHRoZSBSRUFETUUgZmlsZSBmb3IKPiA+ID4gKzs7OzsgbW9yZSBpbmZvcm1hdGlvbi4K
PiA+ID4gKzs7OzsKPiA+ID4gKzs7OzsgV2hpbGUgbW9zdCBvZiBTQkNMIGlzIGRlcml2ZWQgZnJv
bSB0aGUgQ01VIENMIHN5c3RlbSwgdGhlIHRlc3QKPiA+ID4gKzs7OzsgZmlsZXMgKGxpa2UgdGhp
cyBvbmUpIHdlcmUgd3JpdHRlbiBmcm9tIHNjcmF0Y2ggYWZ0ZXIgdGhlIGZvcmsKPiA+ID4gKzs7
OzsgZnJvbSBDTVUgQ0wuCj4gPiA+ICs7Ozs7Cj4gPiA+ICs7Ozs7IFRoaXMgc29mdHdhcmUgaXMg
aW4gdGhlIHB1YmxpYyBkb21haW4gYW5kIGlzIHByb3ZpZGVkIHdpdGgKPiA+ID4gKzs7OzsgYWJz
b2x1dGVseSBubyB3YXJyYW50eS4gU2VlIHRoZSBDT1BZSU5HIGFuZCBDUkVESVRTIGZpbGVzIGZv
cgo+ID4gPiArOzs7OyBtb3JlIGluZm9ybWF0aW9uLgo+ID4gPiArCj4gPiA+ICs7Ozs7IFRlc3Rz
IG9mIGxvY2FsIGNvbW1vbiBzdWJleHByZXNzaW9uIGVsaW1pbmF0aW9uCj4gPiA+ICsKPiA+ID4g
KyhpbXBvcnQgJyhjdHU6aW5zcGVjdC1pcgo+ID4gPiArICAgICAgICAgIHNiLWM6OmNvbWJpbmF0
aW9uLWZ1bi1kZWJ1Zy1uYW1lCj4gPiA+ICsgICAgICAgICAgc2ItYzo6YmFzaWMtY29tYmluYXRp
b24tcCkpCj4gPiA+ICsKPiA+ID4gKyhkZWZ1biBpci1jYWxscyAoZm9ybSkKPiA+ID4gKyAgKGxl
dCAoY2FsbHMpCj4gPiA+ICsgICAgKGluc3BlY3QtaXIKPiA+ID4gKyAgICAgZm9ybQo+ID4gPiAr
ICAgICAobGFtYmRhIChjb21wb25lbnQpCj4gPiA+ICsgICAgICAgKGN0dTpkby1ibG9ja3MgKGJs
b2NrIGNvbXBvbmVudCkKPiA+ID4gKyAgICAgICAgIChjdHU6ZG8tbm9kZXMgKG5vZGUgbmlsIGJs
b2NrKQo+ID4gPiArICAgICAgICAgICAod2hlbiAoYmFzaWMtY29tYmluYXRpb24tcCBub2RlKQo+
ID4gPiArICAgICAgICAgICAgIChwdXNoIG5vZGUgY2FsbHMpKSkpKSkKPiA+ID4gKyAgICBjYWxs
cykpCj4gPiA+ICsKPiA+ID4gKyhkZWZtYWNybyBhc3NlcnQtY2FsbHMgKGZ1bi1uYW1lIGV4cGVj
dGVkLWNvdW50ICgmcmVzdCBsYW1iZGEtYXJncykgJmJvZHkgYm9keSkKPiA+ID4gKyAgKHNiLWlu
dDpiaW5kaW5nKgo+ID4gPiArICAgICAgKCgoZm9ybXMgZGVjbHMpIChzYi1pbnQ6cGFyc2UtYm9k
eSBib2R5IG5pbCkpCj4gPiA+ICsgICAgICAgKGxleHByIGAobGFtYmRhICgsQGxhbWJkYS1hcmdz
KQo+ID4gPiArICAgICAgICAgICAgICAgICAsQGRlY2xzCj4gPiA+ICsgICAgICAgICAgICAgICAg
ICA7OyBXaXRob3V0IGEgY29udGFpbmluZyBMRVQgZm9ybSwgdGhlIGN1cnJlbnQgaW1wbGVtZW50
YXRpb24gb2YgQ1NFCj4gPiA+ICsgICAgICAgICAgICAgICAgICA7OyBpcyB1bndpbGxpbmcgdG8g
YmluZCBhIHRlbXBvcmFyeSBsYW1iZGEgdmFyIGZvciByZXVzZS4KPiA+ID4gKyAgICAgICAgICAg
ICAgICAgIChsZXQgKChhY3RpdmUtbGV0LXZhciAwKSkKPiA+ID4gKyAgICAgICAgICAgICAgICAg
ICAgKHByaW50IGFjdGl2ZS1sZXQtdmFyKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAoaW5j
ZiBhY3RpdmUtbGV0LXZhciAocmFuZG9tIDUpKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAo
cHJpbnQgYWN0aXZlLWxldC12YXIpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICxAZm9ybXMp
KSkpCj4gPiA+ICsgICAgYChhc3NlcnQgKD0gKGNvdW50ICcsZnVuLW5hbWUgKGlyLWNhbGxzICcs
bGV4cHIpIDprZXkgIydjb21iaW5hdGlvbi1mdW4tZGVidWctbmFtZSkKPiA+ID4gKyAgICAgICAg
ICAgICAgICAsZXhwZWN0ZWQtY291bnQpKSkpCj4gPiA+ICsKPiA+ID4gKzs7OyBCYXNpYyB0ZXN0
czogYSBzYW1wbGluZyBvZiBlbGlkYWJsZSBsb2FkIHR5cGUgd2l0aCB0d28gaWRlbnRpY2FsIGxv
YWRzCj4gPiA+ICsKPiA+ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpjYXIpKQo+ID4gPiAr
ICAoYXNzZXJ0LWNhbGxzIGNhciAxIChjb25zKQo+ID4gPiArICAgIChkZWNsYXJlICh0eXBlIGNv
bnMgY29ucykpCj4gPiA+ICsgICAgKGlmIChjYXIgY29ucykKPiA+ID4gKyAgICAgICAgKHByaW5j
IChjYXIgY29ucykpCj4gPiA+ICsgICAgICAgIChwcmluYyAoY2RyIGNvbnMpKSkpKQo+ID4gPiAr
Cj4gPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6ZGlmZmVyZW50LW5hbWVzLWZvci1zYW1l
LW9iamVjdCkpCj4gPiA+ICsgIDs7IFkgYW5kIFggcmVmZXIgdG8gdGhlIHNhbWUgdGhpbmcsIGFu
ZCBpdCBkb2Vzbid0IG1hdHRlcgo+ID4gPiArICA7OyB3aG9zZSBDRFIgd2UgdGFrZSBmaXJzdC4g
T25seSBvbmUgQ0RSIG9wZXJhdGlvbiBpcyBwZXJmb3JtZWQKPiA+ID4gKyAgKGFzc2VydC1jYWxs
cyBjZHIgMSAoeCkKPiA+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBjb25zIHgpKQo+ID4gPiArICAg
IChsZXQgKCh5IHgpKQo+ID4gPiArICAgICAgKGxpc3QgKGNkciB5KSAoY2RyIHgpKSkpCj4gPiA+
ICsgIChhc3NlcnQtY2FsbHMgY2RyIDEgKHgpCj4gPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgY29u
cyB4KSkKPiA+ID4gKyAgICAobGV0ICgoeSB4KSkKPiA+ID4gKyAgICAgIChsaXN0IChjZHIgeCkg
KGNkciB5KSkpKSkKPiA+ID4gKwo+ID4gPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOmNvbXBv
c2l0aW9uLW9mLWN4cikpCj4gPiA+ICsgIDs7IFRoZSBDQVIgZXh0cmFjdGlvbiB3aGljaCBpcyBw
YXJ0IG9mIHRoZSBDREFSIGZ1bmN0aW9uIGNhbiBiZQo+ID4gPiArICA7OyByZXVzZWQgYmFzZWQg
b24gdGhlIGZhY3QgdGhhdCB3ZSBldmFsdWF0ZWQgKExJU1RQIChDQVIgWCkpCj4gPiA+ICsgIChh
c3NlcnQtY2FsbHMgY2FyIDEgKHgpCj4gPiA+ICsgICAgKGlmIChsaXN0cCAoY2FyIHgpKSAoY2Rh
ciB4KSkpCj4gPiA+ICsgIDs7IG5lZ2F0aXZlIHRlc3QgLSBDREFSIG9uIGEgZGlmZmVyZW50IFkg
aXMgYW5vdGhlciBDQVIgb3BlcmF0aW9uCj4gPiA+ICsgIChhc3NlcnQtY2FsbHMgY2FyIDIgKHgg
eSkKPiA+ID4gKyAgICAoaWYgKGxpc3RwIChjYXIgeCkpIChjZGFyIHkpKSkpCj4gPiA+ICsKPiA+
ID4gKyhkZWZzdHJ1Y3QgY3NlLXRlc3QtZm9vIHNsb3QgKHdzbG90IDAgOnR5cGUgc2Itdm06d29y
ZCkpCj4gPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6aW5zdGFuY2UtcmVmKSkKPiA+ID4g
KyAgKGFzc2VydC1jYWxscyBzYi1rZXJuZWw6JWluc3RhbmNlLXJlZiAxICh4KQo+ID4gPiArICAg
IDs7IERlcGVuZGluZyBvbiB3aGF0IFRSQU5TRk9STS1JTlNUQU5DRS1UWVBFUCBkb2VzLCBpdCBt
aWdodCBhY2Nlc3MgaW5zdGFuY2UtbGF5b3V0Cj4gPiA+ICsgICAgOzsgdXNpbmcgJUlOU1RBTkNF
LVJFRiB3aGljaCB3b3VsZCBoYXZlIHRvIGJlIGRpc2NvdW50ZWQgaW4gdGhlIGNhbGwgY291bnRp
bmcuCj4gPiA+ICsgICAgOzsgSnVzdCBicnV0ZS1mb3JjZSB0aGUgdHlwZSB0byBhdm9pZCB0aGF0
IHNpdHVhdGlvbi4KPiA+ID4gKyAgICAobGV0ICgoeCAodHJ1bHktdGhlIGNzZS10ZXN0LWZvbyB4
KSkpCj4gPiA+ICsgICAgICAoaWYgKGNzZS10ZXN0LWZvby1zbG90IHgpCj4gPiA+ICsgICAgICAg
ICAgKHByaW5jIChjc2UtdGVzdC1mb28tc2xvdCB4KSkKPiA+ID4gKyAgICAgICAgICBuaWwpKSkp
Cj4gPiA+ICsKPiA+ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpyYXctaW5zdGFuY2UtcmVm
L3dvcmQpKQo+ID4gPiArICAoYXNzZXJ0LWNhbGxzIHNiLWtlcm5lbDolcmF3LWluc3RhbmNlLXJl
Zi93b3JkIDEgKHgpCj4gPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgY3NlLXRlc3QtZm9vIHgpKQo+
ID4gPiArICAgIChpZiAobG9ndGVzdCAoY3NlLXRlc3QtZm9vLXdzbG90IHgpICN4ZmYwMDApCj4g
PiA+ICsgICAgICAgIChwcmluYyAoY3NlLXRlc3QtZm9vLXdzbG90IHgpKQo+ID4gPiArICAgICAg
ICBuaWwpKSkKPiA+ID4gKwo+ID4gPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOnNhcC1yZWYt
MzIpKQo+ID4gPiArICAoYXNzZXJ0LWNhbGxzIHNiLXN5czpzYXAtcmVmLTMyIDEgKHNhcCBvZmZz
ZXQpCj4gPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgc2Itc3lzOnN5c3RlbS1hcmVhLXBvaW50ZXIg
c2FwKQo+ID4gPiArICAgICAgICAgICAgICh0eXBlIHNiLXZtOndvcmQgb2Zmc2V0KSkKPiA+ID4g
KyAgICAoaWYgKHBsdXNwIChzYi1zeXM6c2FwLXJlZi0zMiBzYXAgb2Zmc2V0KSkKPiA+ID4gKyAg
ICAgICAgKHByaW5jIChzYi1zeXM6c2FwLXJlZi0zMiBzYXAgb2Zmc2V0KSkKPiA+ID4gKyAgICAg
ICAgbmlsKSkKPiA+ID4gKyAgKGFzc2VydC1jYWxscyBzYi1zeXM6c2lnbmVkLXNhcC1yZWYtMzIg
MSAoc2FwIG9mZnNldCkKPiA+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBzYi1zeXM6c3lzdGVtLWFy
ZWEtcG9pbnRlciBzYXApCj4gPiA+ICsgICAgICAgICAgICAgKHR5cGUgc2Itdm06d29yZCBvZmZz
ZXQpKQo+ID4gPiArICAgIChpZiAocGx1c3AgKHNiLXN5czpzaWduZWQtc2FwLXJlZi0zMiBzYXAg
b2Zmc2V0KSkKPiA+ID4gKyAgICAgICAgKHByaW5jIChzYi1zeXM6c2lnbmVkLXNhcC1yZWYtMzIg
c2FwIG9mZnNldCkpCj4gPiA+ICsgICAgICAgIG5pbCkpKQo+ID4gPiArCj4gPiA+ICsod2l0aC10
ZXN0ICg6bmFtZSAoOmNzZSA6c2FwLXJlZi02NCkgOnNraXBwZWQtb24gKDpub3QgOjY0LWJpdCkp
Cj4gPiA+ICsgIChhc3NlcnQtY2FsbHMgc2Itc3lzOnNhcC1yZWYtNjQgMSAoc2FwIG9mZnNldCkK
PiA+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBzYi1zeXM6c3lzdGVtLWFyZWEtcG9pbnRlciBzYXAp
Cj4gPiA+ICsgICAgICAgICAgICAgKHR5cGUgc2Itdm06d29yZCBvZmZzZXQpKQo+ID4gPiArICAg
IChpZiAocGx1c3AgKHNiLXN5czpzYXAtcmVmLTY0IHNhcCBvZmZzZXQpKQo+ID4gPiArICAgICAg
ICAocHJpbmMgKHNiLXN5czpzYXAtcmVmLTY0IHNhcCBvZmZzZXQpKQo+ID4gPiArICAgICAgICBu
aWwpKQo+ID4gPiArICAoYXNzZXJ0LWNhbGxzIHNiLXN5czpzaWduZWQtc2FwLXJlZi02NCAxIChz
YXAgb2Zmc2V0KQo+ID4gPiArICAgIChkZWNsYXJlICh0eXBlIHNiLXN5czpzeXN0ZW0tYXJlYS1w
b2ludGVyIHNhcCkKPiA+ID4gKyAgICAgICAgICAgICAodHlwZSBzYi12bTp3b3JkIG9mZnNldCkp
Cj4gPiA+ICsgICAgKGlmIChwbHVzcCAoc2Itc3lzOnNpZ25lZC1zYXAtcmVmLTY0IHNhcCBvZmZz
ZXQpKQo+ID4gPiArICAgICAgICAocHJpbmMgKHNiLXN5czpzaWduZWQtc2FwLXJlZi02NCBzYXAg
b2Zmc2V0KSkKPiA+ID4gKyAgICAgICAgbmlsKSkpCj4gPiA+ICsKPiA+ID4gKyh3aXRoLXRlc3Qg
KDpuYW1lICg6Y3NlIDpsb29wLW92ZXItZGVyZWYpKQo+ID4gPiArICAobGV0ICgobGV4cHIKPiA+
ID4gKyAgICAgICAgICcobGFtYmRhIChmKQo+ID4gPiArICAgICAgICAgICAgKGRlY2xhcmUgKG9w
dGltaXplIChzYi1jOjphbGllbi1mdW5jYWxsLXNhdmVzLWZwLWFuZC1wYyAwKQo+ID4gPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYi1jOjp0eXBlLWNoZWNrIDApKSkKPiA+ID4g
KyAgICAgICAgICAgIDs7IEYgcmV0dXJucyBhIHBvaW50ZXIgdG8gYSBudWxsLXRlcm1pbmF0ZWQg
YXJyYXkgb2YgdW5zaWduZWQtaW50Lgo+ID4gPiArICAgICAgICAgICAgOzsgVGhlIGRlcmVmIGZv
ciB0aGUgbG9vcCB0ZXJtaW5hdGlvbiB0ZXN0LCBhbmQgYWdhaW4gaW4gdGhlIGJvZHkKPiA+ID4g
KyAgICAgICAgICAgIDs7IHNob3VsZCB1c2UgYSBzaW5nbGUgbWVtb3J5IGxvYWQuCj4gPiA+ICsg
ICAgICAgICAgICAobGV0ICgoYSAoYWxpZW4tZnVuY2FsbCAodGhlIChhbGllbiAoZnVuY3Rpb24g
KCogdW5zaWduZWQpKSkgZikpKSkKPiA+ID4gKyAgICAgICAgICAgICAgKGRvICgoaW5kZXggMCAo
MSsgaW5kZXgpKSkKPiA+ID4gKyAgICAgICAgICAgICAgICAgICgoemVyb3AgKGRlcmVmIGEgaW5k
ZXgpKSkKPiA+ID4gKyAgICAgICAgICAgICAgICAocHJpbmMgKHRoZSBmaXhudW0gKGRlcmVmIGEg
aW5kZXgpKSkpKSkpKQo+ID4gPiArICAgIChhc3NlcnQgKD0gKGNvdW50ICMrKG9yIGFybTY0IHg4
Ni02NCkgJ3NiLXN5czolc2FwLXJlZi02NC1pbmRleGVkCj4gPiA+ICsgICAgICAgICAgICAgICAg
ICAgICAgIy0ob3IgYXJtNjQgeDg2LTY0KQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgIChw
cm9nbiAjKzY0LWJpdCAnc2Itc3lzOnNhcC1yZWYtNjQgIy02NC1iaXQgJ3NiLXN5czpzYXAtcmVm
LTMyKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgIChpci1jYWxscyBsZXhwcikgOmtleSAj
J2NvbWJpbmF0aW9uLWZ1bi1kZWJ1Zy1uYW1lKQo+ID4gPiArICAgICAgICAgICAgICAgMSkpKSkK
PiA+ID4gKwo+ID4gPiArOzs7IFNFVFEgb2YgYSB2YXJpYWJsZSB1c2VkIGFzIGFuIGFyZ3VtZW50
IHRvIGFuIGVsaWRhYmxlIGxvYWQgcHJldmVudHMgQ1NFLgo+ID4gPiArOzs7IFdoZW4gYSB2YXJp
YWJsZSB0aGF0IHBhcnRpY2lwYXRlcyBpbiB0aGUgbG9hZCBleHByZXNzaW9uIChlLmcuLCB0aGUg
Y29ucwo+ID4gPiArOzs7IGJlaW5nIENBUidkKSBpcyBhc3NpZ25lZCBiZXR3ZWVuIHR3byBpZGVu
dGljYWwgbG9hZHMsIHRoZSBzZWNvbmQgbG9hZAo+ID4gPiArOzs7IG11c3Qgbm90IGJlIGVsaW1p
bmF0ZWQgYmVjYXVzZSB0aGUgdmFyaWFibGUgbWF5IHJlZmVyZW5jZSBhIGRpZmZlcmVudCBvYmpl
Y3QuCj4gPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6c2V0cS1vZi1sb2FkLWFyZy1wcmV2
ZW50cy1jYXIpKQo+ID4gPiArICA7OyBDT05TIGlzIHRoZSBhcmd1bWVudCB0byBDQVIuIEFzc2ln
bmluZyBDT05TIGJldHdlZW4gdHdvIChDQVIgQ09OUykKPiA+ID4gKyAgOzsgcHJldmVudHMgQ1NF
Lgo+ID4gPiArICAoYXNzZXJ0LWNhbGxzIGNhciAyIChjb25zIG90aGVyKQo+ID4gPiArICAgIChk
ZWNsYXJlICh0eXBlIGNvbnMgY29ucyBvdGhlcikpCj4gPiA+ICsgICAgKGxldCAoKGEgKGNhciBj
b25zKSkpCj4gPiA+ICsgICAgICAoc2V0cSBjb25zIG90aGVyKQo+ID4gPiArICAgICAgKGxldCAo
KGIgKGNhciBjb25zKSkpCj4gPiA+ICsgICAgICAgIChsaXN0IGEgYikpKSkpCj4gPiA+ICsKPiA+
ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpzZXRxLW9mLWxvYWQtYXJnLXByZXZlbnRzLWNk
cikpCj4gPiA+ICsgIChhc3NlcnQtY2FsbHMgY2RyIDIgKGNvbnMgb3RoZXIpCj4gPiA+ICsgICAg
KGRlY2xhcmUgKHR5cGUgY29ucyBjb25zIG90aGVyKSkKPiA+ID4gKyAgICAobGV0ICgoYSAoY2Ry
IGNvbnMpKSkKPiA+ID4gKyAgICAgIChzZXRxIGNvbnMgb3RoZXIpCj4gPiA+ICsgICAgICAobGV0
ICgoYiAoY2RyIGNvbnMpKSkKPiA+ID4gKyAgICAgICAgKGxpc3QgYSBiKSkpKSkKPiA+ID4gKwo+
ID4gPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOnNldHEtb2YtbG9hZC1hcmctcHJldmVudHMt
aW5zdGFuY2UtcmVmKSkKPiA+ID4gKyAgOzsgQXNzaWduaW5nIHRoZSBzdHJ1Y3QgdmFyaWFibGUg
YmV0d2VlbiB0d28gcmVhZHMgb2YgdGhlIHNhbWUgc2xvdCBwcmV2ZW50cyBDU0UuCj4gPiA+ICsg
IChhc3NlcnQtY2FsbHMgc2Ita2VybmVsOiVpbnN0YW5jZS1yZWYgMiAoeCB5KQo+ID4gPiArICAg
IChsZXQgKCh4ICh0cnVseS10aGUgY3NlLXRlc3QtZm9vIHgpKQo+ID4gPiArICAgICAgICAgICh5
ICh0cnVseS10aGUgY3NlLXRlc3QtZm9vIHkpKSkKPiA+ID4gKyAgICAgIChsZXQgKChhIChjc2Ut
dGVzdC1mb28tc2xvdCB4KSkpCj4gPiA+ICsgICAgICAgIChzZXRxIHggeSkKPiA+ID4gKyAgICAg
ICAgKGxldCAoKGIgKGNzZS10ZXN0LWZvby1zbG90IHgpKSkKPiA+ID4gKyAgICAgICAgICAobGlz
dCBhIGIpKSkpKSkKPiA+ID4gKwo+ID4gPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOnNldHEt
b2YtbG9hZC1hcmctcHJldmVudHMtc2FwLXJlZikpCj4gPiA+ICsgIDs7IEFzc2lnbmluZyB0aGUg
U0FQIHZhcmlhYmxlIGJldHdlZW4gdHdvIHJlYWRzIGF0IHRoZSBzYW1lIG9mZnNldAo+ID4gPiAr
ICA7OyBtdXN0IHByZXZlbnQgQ1NFIHNpbmNlIHRoZSBzZWNvbmQgcmVhZCBtYXkgdXNlIGEgZGlm
ZmVyZW50IFNBUC4KPiA+ID4gKyAgKGFzc2VydC1jYWxscyBzYi1zeXM6c2FwLXJlZi0zMiAyIChz
YXAxIHNhcDIgb2Zmc2V0KQo+ID4gPiArICAgIChkZWNsYXJlICh0eXBlIHNiLXN5czpzeXN0ZW0t
YXJlYS1wb2ludGVyIHNhcDEgc2FwMikKPiA+ID4gKyAgICAgICAgICAgICAodHlwZSBzYi12bTp3
b3JkIG9mZnNldCkpCj4gPiA+ICsgICAgKGxldCAoKGEgKHNiLXN5czpzYXAtcmVmLTMyIHNhcDEg
b2Zmc2V0KSkpCj4gPiA+ICsgICAgICAoc2V0cSBzYXAxIHNhcDIpCj4gPiA+ICsgICAgICAobGV0
ICgoYiAoc2Itc3lzOnNhcC1yZWYtMzIgc2FwMSBvZmZzZXQpKSkKPiA+ID4gKyAgICAgICAgKGxp
c3QgYSBiKSkpKSkKPiA+ID4gKwo+ID4gPiArOzs7IFNFVFEgb2YgYW4gKnVucmVsYXRlZCogdmFy
aWFibGUgc2hvdWxkIE5PVCBwcmV2ZW50IENTRS4KPiA+ID4gKzs7OyBPbmx5IG11dGF0aW9ucyBv
ZiB2YXJpYWJsZXMgdGhhdCBwYXJ0aWNpcGF0ZSBpbiB0aGUgbG9hZCBtYXR0ZXIuCj4gPiA+ICso
d2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6c2V0cS1vZi11bnJlbGF0ZWQtdmFyLWFsbG93cy1jc2Up
KQo+ID4gPiArICA7OyBaIGlzIG5vdCBhbiBhcmd1bWVudCB0byBDQVIsIHNvIHNldHRpbmcgWiBk
b2VzIG5vdCBpbmhpYml0IENTRS4KPiA+ID4gKyAgKGFzc2VydC1jYWxscyBjYXIgMSAoY29ucyB6
KQo+ID4gPiArICAgIChkZWNsYXJlICh0eXBlIGNvbnMgY29ucykpCj4gPiA+ICsgICAgKGxldCAo
KGEgKGNhciBjb25zKSkpCj4gPiA+ICsgICAgICAoc2V0cSB6IGEpCj4gPiA+ICsgICAgICAobGV0
ICgoYiAoY2FyIGNvbnMpKSkKPiA+ID4gKyAgICAgICAgKGxpc3QgeiBiKSkpKSkKPiA+ID4gKwo+
ID4gPiArOzs7IFNCLVRIUkVBRDpCQVJSSUVSIG9mIGFueSBraW5kIHByZXZlbnRzIGVsaXNpb24g
b2YgdGhlIHNlY29uZCBsb2FkCj4gPiA+ICs7Ozsgc2luY2UgdGhlIG1lbW9yeSBiYXJyaWVycyBp
cyBub3QgZmx1c2hhYmxlLiBUaGlzIGlzIHRoZSBjb25zZXJ2YXRpdmUgc3RhbmNlLgo+ID4gPiAr
Ozs7IFRoZSBhY3R1YWwgKGxvb3NlcikgcmVxdWlyZW1lbnRzIGFyZSBtb3JlIHN1YnRsZSB0aGFu
IEkgY2FyZSB0byBkZWFsIHdpdGguCj4gPiA+ICsoZGVmbWFjcm8gYmFycmllci10ZXN0IChraW5k
KQo+ID4gPiArICBgKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOmJhcnJpZXItcHJldmVudHMtY2Fy
ICxraW5kKSkKPiA+ID4gKyAgICAgKGFzc2VydC1jYWxscyBjYXIgMiAoY29ucykKPiA+ID4gKyAg
ICAgIChkZWNsYXJlICh0eXBlIGNvbnMgY29ucykpCj4gPiA+ICsgICAgICAobGV0ICgoYSAoY2Fy
IGNvbnMpKSkKPiA+ID4gKyAgICAgICAgKHNiLXRocmVhZDpiYXJyaWVyICgsa2luZCkpCj4gPiA+
ICsgICAgICAgIChsZXQgKChiIChjYXIgY29ucykpKQo+ID4gPiArICAgICAgICAgIChsaXN0IGEg
YikpKSkpKQo+ID4gPiArKGJhcnJpZXItdGVzdCA6cmVhZCkKPiA+ID4gKyhiYXJyaWVyLXRlc3Qg
OndyaXRlKQo+ID4gPiArKGJhcnJpZXItdGVzdCA6bWVtb3J5KQo+ID4gPiArKGJhcnJpZXItdGVz
dCA6Y29tcGlsZXIpCj4gPiA+ICsoYmFycmllci10ZXN0IDpkYXRhLWRlcGVuZGVuY3kpCj4gPiA+
ICsKPiA+ID4gKzs7OyBBbnkgbm9uLWZsdXNoYWJsZSBjYWxsIGJldHdlZW4gdHdvIGlkZW50aWNh
bCBsb2FkcyBwcmV2ZW50cyBDU0UKPiA+ID4gKzs7OyBiZWNhdXNlIHRoZSBjYWxsIG1heSBoYXZl
IHNpZGUgZWZmZWN0cyB0aGF0IG1vZGlmeSB0aGUgbG9hZGVkIG1lbW9yeS4KPiA+ID4gKwo+ID4g
PiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOm5vbi1mbHVzaGFibGUtY2FsbC1wcmV2ZW50cy1j
c2UpKQo+ID4gPiArICA7OyBQUklOQyBpcyBhIG5vbi1mbHVzaGFibGUKPiA+ID4gKyAgKGFzc2Vy
dC1jYWxscyBjYXIgMiAoY29ucykKPiA+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBjb25zIGNvbnMp
KQo+ID4gPiArICAgIChsZXQgKChhIChjYXIgY29ucykpKQo+ID4gPiArICAgICAgKHByaW5jIDQy
KQo+ID4gPiArICAgICAgKGxldCAoKGIgKGNhciBjb25zKSkpCj4gPiA+ICsgICAgICAgIChsaXN0
IGEgYikpKSkpCj4gPiA+ICsKPiA+ID4gKzs7OyBEaWZmZXJlbnQgZnVuY3Rpb25zIG9uIHRoZSBz
YW1lIG9iamVjdCBhcmUgTk9UIGNvbnNpZGVyZWQgY29tbW9uIHN1YmV4cHJlc3Npb25zLgo+ID4g
PiArOzs7IChDQVIgeCkgYW5kIChDRFIgeCkgYXJlIGRpZmZlcmVudCBsb2FkcyBldmVuIGlmIHgg
aXMgdGhlIHNhbWUuCj4gPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6ZGlmZmVyZW50LWFj
Y2Vzc29ycy1ub3QtY3NlKSkKPiA+ID4gKyAgOzsgQm90aCBDQVIgYW5kIENEUiBzaG91bGQgYXBw
ZWFyLCBlYWNoIGV4YWN0bHkgb25jZS4KPiA+ID4gKyAgKGFzc2VydC1jYWxscyBjYXIgMSAoY29u
cykKPiA+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBjb25zIGNvbnMpKQo+ID4gPiArICAgIChpZiAo
Y2FyIGNvbnMpCj4gPiA+ICsgICAgICAgIChwcmluYyAoY2RyIGNvbnMpKQo+ID4gPiArICAgICAg
ICBuaWwpKQo+ID4gPiArICAoYXNzZXJ0LWNhbGxzIGNkciAxIChjb25zKQo+ID4gPiArICAgIChk
ZWNsYXJlICh0eXBlIGNvbnMgY29ucykpCj4gPiA+ICsgICAgKGlmIChjYXIgY29ucykKPiA+ID4g
KyAgICAgICAgKHByaW5jIChjZHIgY29ucykpCj4gPiA+ICsgICAgICAgIG5pbCkpKQo+ID4gPiBk
aWZmIC0tZ2l0IGEveHBlcmZlY3RoYXNoMzAubGlzcC1leHByIGIveHBlcmZlY3RoYXNoMzAubGlz
cC1leHByCj4gPiA+IGluZGV4IDZhNTAzYWNmMC4uMWI3MjI3Yzc4IDEwMDY0NAo+ID4gPiAtLS0g
YS94cGVyZmVjdGhhc2gzMC5saXNwLWV4cHIKPiA+ID4gKysrIGIveHBlcmZlY3RoYXNoMzAubGlz
cC1leHByCj4gPiA+IEBAIC0xNTA2LDYgKzE1MDYsOSBAQAo+ID4gPiAgKCMoMTBCRTcyNzcgMTIy
MTRBRTggMTJFMkNCREEgMTk3Mzk1MzkgMUYzNTU2QzcgMUY2NDQzODcpCj4gPiA+ICAgIihJTlRF
R0VSIEJJR05VTSBTQi1WTTo6VU5TSUdORUQtQllURS0zMSBTQi1WTTo6U0lHTkVELUJZVEUtMzIg
RklYTlVNIFNCLVZNOjpQT1NJVElWRS1GSVhOVU0pIgo+ID4gPiAgICIoKCYgKF4gdmFsICg+PiB2
YWwgMjIpKSA3KSkiKQo+ID4gPiArKCMoMTBEMkVBNEUgMTIyNEM1NTcgMTVBNThEODUgMTVCNUEy
QjUgMTc1MjRBNzggMTc2OUU0MTkgMTg5MDZEMDgpCj4gPiA+ICsgIihTQi1DOjpDU0VUIFNCLUM6
OlJFRiBERUxBWSBTQi1DOjpBUlJBWS1JTkRFWC1DQVNUIENBU1QgU0ItQzo6Q09NQklOQVRJT04g
U0ItQzo6Q0lGKSIKPiA+ID4gKyAiKCgmICgrICg+PiB2YWwgMSkgKD4+IHZhbCA5KSkgNykpIikK
PiA+ID4gICgjKDEwRDJFQTRFIDEyMjRDNTU3IDE1QTU4RDg1IDE1QjVBMkI1IDE3NTI0QTc4IDE3
NjlFNDE5IDE4OTA2RDA4IDE5NTc3NTM5IDFDMDY1Q0I4IDFENjZDOTMyKQo+ID4gPiAgICIjKCgo
OlRZUEUgU0ItQzo6UkVGKSkgKCg6VFlQRSBTQi1DOjpDT01CSU5BVElPTikpICgoOlRZUEUgU0It
Qzo6Q0lGKSkgKCg6VFlQRSBTQi1DOjpDUkVUVVJOKSkgKCg6VFlQRSBTQi1DOjpNVi1DT01CSU5B
VElPTikpICgoOlRZUEUgRVhJVCkpICgoOlRZUEUgU0ItQzo6Q1NFVCkpICgoOlRZUEUgREVMQVkp
ICg6VFlQRSBTQi1DOjpBUlJBWS1JTkRFWC1DQVNUKSAoOlRZUEUgQ0FTVCkpKSIKPiA+ID4gICAi
KChsZXQgKCh0YWIgI2EoKDgpICh1bnNpZ25lZC1ieXRlIDgpIDAgNSAyIDggMTMgMyAwIDApKSkK
PiA+ID4gZGlmZiAtLWdpdCBhL3hwZXJmZWN0aGFzaDYxLmxpc3AtZXhwciBiL3hwZXJmZWN0aGFz
aDYxLmxpc3AtZXhwcgo+ID4gPiBpbmRleCA2ZWI3MjQ4NmIuLmIxYmMwMTRmYiAxMDA2NDQKPiA+
ID4gLS0tIGEveHBlcmZlY3RoYXNoNjEubGlzcC1leHByCj4gPiA+ICsrKyBiL3hwZXJmZWN0aGFz
aDYxLmxpc3AtZXhwcgo+ID4gPiBAQCAtNDYzLDYgKzQ2Myw5IEBACj4gPiA+ICAoIyg5QTMyMEQ0
IDM5Q0FBMzM5IDQzQkJFRTE4IDRENjEzNjhGIDUzMjIyREZCIEJGQTg2MTg5IEVEQTEwMzdGIEZF
RTk5QTk1KQo+ID4gPiAgICIjKCgoOlRZUEUgU0ItQzo6UkVGKSkgKCg6VFlQRSBTQi1DOjpDT01C
SU5BVElPTikpICgoOlRZUEUgU0ItQzo6TVYtQ09NQklOQVRJT04pKSAoKDpUWVBFIEVYSVQpKSAo
KDpUWVBFIFNCLUM6OkNTRVQpKSAoKDpUWVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJSQVktSU5E
RVgtQ0FTVCkgKDpUWVBFIENBU1QpKSkiCj4gPiA+ICAgIigoJiAoLSAoPj4gdmFsIDMpICg+PiB2
YWwgMjkpKSA3KSkiKQo+ID4gPiArKCMoOUEzMjBENCAzOUNBQTMzOSA0M0JCRUUxOCA1MzIyMkRG
QiA5MzgwODM3QyBCRkE4NjE4OSBGRUU5OUE5NSkKPiA+ID4gKyAiIygoKDpUWVBFIFNCLUM6OkNJ
RikgKDpUWVBFIFNCLUM6OkNPTUJJTkFUSU9OKSAoOlRZUEUgREVMQVkpICg6VFlQRSBTQi1DOjpB
UlJBWS1JTkRFWC1DQVNUKSAoOlRZUEUgQ0FTVCkgKDpUWVBFIFNCLUM6OlJFRikgKDpUWVBFIFNC
LUM6OkNTRVQpKSkiCj4gPiA+ICsgIigoJiAoKyB2YWwgKD4+IHZhbCAzMSkpIDcpKSIpCj4gPiA+
ICAoIyg5QTMyMEQ0IDQzQkJFRTE4IDUzMjIyREZCIEE4QTRDN0QyIEJGQTg2MTg5IEVBQTNEQTVD
IEZFRTk5QTk1KQo+ID4gPiAgICIjKCgoOlRZUEUgU0ItQzo6UkVGKSkgKCg6VFlQRSBERUxBWSkg
KDpUWVBFIFNCLUM6OkFSUkFZLUlOREVYLUNBU1QpICg6VFlQRSBDQVNUKSkgKCg6VFlQRSBTQi1D
OjpDT01CSU5BVElPTikpICgoOlRZUEUgU0ItQzo6RU5UUlkpKSAoKDpUWVBFIFNCLUM6OkVOQ0xP
U0UpKSkiCj4gPiA+ICAgIigoJiAoXiAoPj4gdmFsIDcpICg+PiB2YWwgMjMpKSA3KSkiKQo+ID4g
PiBkaWZmIC0tZ2l0IGEveHBlcmZlY3RoYXNoNjMubGlzcC1leHByIGIveHBlcmZlY3RoYXNoNjMu
bGlzcC1leHByCj4gPiA+IGluZGV4IGNjODYxYmIzMy4uMTNiYjVkODVkIDEwMDY0NAo+ID4gPiAt
LS0gYS94cGVyZmVjdGhhc2g2My5saXNwLWV4cHIKPiA+ID4gKysrIGIveHBlcmZlY3RoYXNoNjMu
bGlzcC1leHByCj4gPiA+IEBAIC04NzAsNiArODcwLDkgQEAKPiA+ID4gICgjKDEyMTA2OEREIDRE
NjEzNjhGIDU4MTEwRTdGIDY3RUUyRDFBIDZEOUE4ODNEIDc0NTg5RDgyIDg5N0I0NjU2IEE2OEEz
OTY1KQo+ID4gPiAgICIjKCgoOlRZUEUgU0ItQzo6UkVGKSkgKCg6VFlQRSBTQi1DOjpDT01CSU5B
VElPTikpICgoOlRZUEUgU0ItQzo6TVYtQ09NQklOQVRJT04pKSAoKDpUWVBFIEVYSVQpKSAoKDpU
WVBFIFNCLUM6OkNTRVQpKSAoKDpUWVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJSQVktSU5ERVgt
Q0FTVCkgKDpUWVBFIENBU1QpKSkiCj4gPiA+ICAgIigoJiAoLSAoPj4gdmFsIDQpICg+PiB2YWwg
MTYpKSA3KSkiKQo+ID4gPiArKCMoMTIxMDY4REQgNTgxMTBFN0YgNjdFRTJEMUEgNkQ5QTg4M0Qg
NzQyRDRDNTQgODk3QjQ2NTYgQTY4QTM5NjUpCj4gPiA+ICsgIiMoKCg6VFlQRSBTQi1DOjpDSUYp
ICg6VFlQRSBTQi1DOjpDT01CSU5BVElPTikgKDpUWVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJS
QVktSU5ERVgtQ0FTVCkgKDpUWVBFIENBU1QpICg6VFlQRSBTQi1DOjpSRUYpICg6VFlQRSBTQi1D
OjpDU0VUKSkpIgo+ID4gPiArICIoKCYgKC0gKD4+IHZhbCA0KSAoPj4gdmFsIDE2KSkgNykpIikK
PiA+ID4gICgjKDEyNkFEQjAyIDMxQjA5NUREIDQyRDgzRkZCIDQzNDFGN0Q4IDYzQzk3MUQ3IDdB
ODBGMjAxIDdCNDA4ODgwIDhGNzkxMkQ2IEVCRDAxODcyKQo+ID4gPiAgICIoOkFMTE9XLU9USEVS
LUtFWVMgOlRZUEUgOlJFU1VMVC1TUEVDUyA6QVJHLVNQRUNTIDpDQUxMRVIgOkRFUFMgOkZJUkVE
IDpMRVhFTlYgOlNPVVJDRS1QQVRIKSIKPiA+ID4gICAiKChsZXQgKCh0YWIgI2EoKDgpICh1bnNp
Z25lZC1ieXRlIDgpIDAgNSAwIDMgMCA1IDEyIDYpKSkKPiA+ID4KPiA+ID4gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KPiA+ID4KPiA+ID4KPiA+ID4gaG9va3MvcG9zdC1yZWNlaXZlCj4gPiA+IC0tCj4gPiA+IFNC
Q0wKPiA+ID4KPiA+ID4KPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KPiA+ID4gU2JjbC1jb21taXRzIG1haWxpbmcgbGlzdAo+ID4gPiBTYmNsLWNv
bW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cj4gPiA+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9y
Z2UubmV0L2xpc3RzL2xpc3RpbmZvL3NiY2wtY29tbWl0cwoKCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fClNiY2wtY29tbWl0cyBtYWlsaW5nIGxpc3QKU2Jj
bC1jb21taXRzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdl
Lm5ldC9saXN0cy9saXN0aW5mby9zYmNsLWNvbW1pdHMK