Re: master: x86-64: TRUNCATE using the Lemire, Kaser, Kurz transform

Stas Boukarev <[email protected]> Sun, 19 Apr 2026 05:40:15 +0300
Newsgroups gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel
Message-ID <CAF63=11GV4rpyE4bm6fQ2s7gmkOcSz+pqgv6PnS0DhKRZ9QoEg@mail.gmail.com>
VGhlIFZPUCBnZXRzIGRlZmVhdGVkIGJ5IG9uZSBvZiB0aGUgMjMgdHJhbnNmb3Jtcywgd2hlbiAo
c3BlZWQgMyk6Cmh0dHBzOi8vZ2l0aHViLmNvbS9zYmNsL3NiY2wvYmxvYi9tYXN0ZXIvc3JjL2Nv
bXBpbGVyL3NyY3RyYW4ubGlzcCNMNTEzNQoKT24gU3VuLCBBcHIgMTksIDIwMjYgYXQgNToxOOKA
r0FNIHNudWdsYXMgdmlhIFNiY2wtY29tbWl0cwo8c2JjbC1jb21taXRzQGxpc3RzLnNvdXJjZWZv
cmdlLm5ldD4gd3JvdGU6Cj4KPiBUaGUgYnJhbmNoICJtYXN0ZXIiIGhhcyBiZWVuIHVwZGF0ZWQg
aW4gU0JDTDoKPiAgICAgICAgdmlhICBhZTg5ZDdiZTg0MDAyZTQ4YmVhN2NmZDhiZTg0YmQ2Yzc4
OTZhMmMwIChjb21taXQpCj4gICAgICAgZnJvbSAgYzQxMDExY2I1MmViMDg5YjNlZGYyMTlhODcx
MjI0YWZjZmI4YTEyMiAoY29tbWl0KQo+Cj4gLSBMb2cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBjb21taXQgYWU4OWQ3
YmU4NDAwMmU0OGJlYTdjZmQ4YmU4NGJkNmM3ODk2YTJjMAo+IEF1dGhvcjogRG91Z2xhcyBLYXR6
bWFuIDxkb3Vna0Bnb29nbGUuY29tPgo+IERhdGU6ICAgU2F0IEFwciAxOCAyMjowMjozNCAyMDI2
IC0wNDAwCj4KPiAgICAgeDg2LTY0OiBUUlVOQ0FURSB1c2luZyB0aGUgTGVtaXJlLCBLYXNlciwg
S3VyeiB0cmFuc2Zvcm0KPgo+ICAgICAyIE1VTHMgb3V0cGVyZm9ybXMgb25lIERJViBvciBJRElW
IGJ5IGF0IGxlYXN0IDJ4IGJhc2VkIG9uIG15Cj4gICAgIHRlc3RpbmcgYW5kIGFsc28gQWduZXIg
Rm9nJ3MgaW5zdHJ1Y3Rpb24gbGF0ZW5jeSB0YWJsZXMKPiAtLS0KPiAgc3JjL2NvZGUvdGFyZ2V0
LXBhY2thZ2UubGlzcCAgICB8ICAyICstCj4gIHNyYy9jb21waWxlci9nZW5lcmljL3V0aWxzLmxp
c3AgfCAgOCArKysrKy0KPiAgc3JjL2NvbXBpbGVyL3g4Ni02NC9hcml0aC5saXNwICB8IDU2ICsr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4gIHRlc3RzL2ludGVnZXJk
aXYucHVyZS5saXNwICAgICAgfCAxOCArKysrKysrKysrKysrCj4gIDQgZmlsZXMgY2hhbmdlZCwg
NzMgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvc3JjL2Nv
ZGUvdGFyZ2V0LXBhY2thZ2UubGlzcCBiL3NyYy9jb2RlL3RhcmdldC1wYWNrYWdlLmxpc3AKPiBp
bmRleCAxZmM1NmVhMmYuLjk3MTM1YmVhNSAxMDA2NDQKPiAtLS0gYS9zcmMvY29kZS90YXJnZXQt
cGFja2FnZS5saXNwCj4gKysrIGIvc3JjL2NvZGUvdGFyZ2V0LXBhY2thZ2UubGlzcAo+IEBAIC00
MzksNyArNDM5LDcgQEAgb2YgOklOSEVSSVRFRCA6RVhURVJOQUwgOklOVEVSTkFMLiIKPiAgICAg
ICAgICAgKG4gbWluLW51bWVyYXRvci1iaXRzKSkKPiAgICAgIChsb29wCj4gICAgICAgKG11bHRp
cGxlLXZhbHVlLWJpbmQgKGMgZnJhYy1iaXRzKQo+IC0gICAgICAgICAoc2ItYzpjb21wdXRlLWZh
c3RyZW0tY29lZmZpY2llbnQgZGVub21pbmF0b3IgbiA6dmFyaWFibGUpCj4gKyAgICAgICAgIChz
Yi1jOmNvbXB1dGUtZmFzdHJlbS1jb2VmZmljaWVudCBkZW5vbWluYXRvciBuIDptaW5pbXVtKQo+
ICAgICAgICAgKGNvbmQgKCg9IGZyYWMtYml0cyAzMikKPiAgICAgICAgICAgICAgICAocmV0dXJu
ICh2YWx1ZXMgKGxkYiAoYnl0ZSBuIDApIC0xKSBjKSkpCj4gICAgICAgICAgICAgICAoKD4gZnJh
Yy1iaXRzIDMyKQo+IGRpZmYgLS1naXQgYS9zcmMvY29tcGlsZXIvZ2VuZXJpYy91dGlscy5saXNw
IGIvc3JjL2NvbXBpbGVyL2dlbmVyaWMvdXRpbHMubGlzcAo+IGluZGV4IDRhOGEzOWNjMS4uODVl
NmY1NTMzIDEwMDY0NAo+IC0tLSBhL3NyYy9jb21waWxlci9nZW5lcmljL3V0aWxzLmxpc3AKPiAr
KysgYi9zcmMvY29tcGlsZXIvZ2VuZXJpYy91dGlscy5saXNwCj4gQEAgLTU3Nyw3ICs1NzcsNyBA
QAo+ICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuICg8PSBkICgrIChtb2QgMl5GIGQpIChl
eHB0IDIgTCkpKQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGMgKGNlaWxpbmcg
KGV4cHQgMiBGKSBkKSkpCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXR1cm4gKHZh
bHVlcyBGIGMpKSkpKSkpKQo+IC0gICAgKGNvbmQgKChlcSBmcmFjdGlvbi1iaXRzIDp2YXJpYWJs
ZSkgOyByZXR1cm4gdGhlIHNtYWxsZXN0IEYKPiArICAgIChjb25kICgoZXEgZnJhY3Rpb24tYml0
cyA6bWluaW11bSkgOyByZXR1cm4gdGhlIHNtYWxsZXN0IEYKPiAgICAgICAgICAgICAodmFsdWVz
IGMgc21hbGxlc3QtZikpCj4gICAgICAgICAgICAodAo+ICAgICAgICAgICAgIDs7IE90aGVyd2lz
ZSBoYXJkd2lyZSBGIHRvIDMyIHNvIHRoZSBhbGdvcml0aG0gY2FuIHVzZSA6RFdPUkQKPiBAQCAt
NTg5LDYgKzU4OSwxMiBAQAo+ICAgICAgICAgICAgICAgICAgICAgIHNtYWxsZXN0LWYgZCBuKSkK
PiAgICAgICAgICAgICAodmFsdWVzIChjZWlsaW5nIChleHB0IDIgZnJhY3Rpb24tYml0cykgZCkg
ZnJhY3Rpb24tYml0cykpKSkpCj4KPiArKGRlZnVuIHR5cGUtd2lkdGgtaW4tYml0cyAoY3R5cGUp
Cj4gKyAgOzsgUmV0dXJuIChpbnRlZ2VyLWxlbmd0aCB1cHBlci1ib3VuZCkgb2YgbnVtZXJpYyB0
eXBlLiBUaGlzIGlzIE5PVCBhIHRoZW9yZXRpY2FsCj4gKyAgOzsgc21hbGxlc3QgTiBiaXRzIG5l
ZWRlZCB0byBlbmNvZGUgYW4gZWxlbWVudCBvZiB0eXBlIGluIGEgcGFja2VkIHJlcHJlc2VudGF0
aW9uCj4gKyAgOzsgKGUuZy4gdGhlIGludGVydmFsIDUuLjggX2NvdWxkXyBiZSBzdG9yZWQgaW4g
MiBiaXRzKSBidXQgd2UgZG9uJ3QgZG8gdGhhdC4KPiArICAoaW50ZWdlci1sZW5ndGggKHNiLWM6
OmludGVydmFsLWhpZ2ggKHNiLWM6Om51bWVyaWMtdHlwZS0+aW50ZXJ2YWwgY3R5cGUpKSkpCj4g
Kwo+ICAoZGVmdW4gZW52LXN5c3RlbS10bGFiLXAgKGVudikKPiAgICAjLXN5c3RlbS10bGFicyAo
ZGVjbGFyZSAoaWdub3JlIGVudikpCj4gICAgIytzeXN0ZW0tdGxhYnMKPiBkaWZmIC0tZ2l0IGEv
c3JjL2NvbXBpbGVyL3g4Ni02NC9hcml0aC5saXNwIGIvc3JjL2NvbXBpbGVyL3g4Ni02NC9hcml0
aC5saXNwCj4gaW5kZXggMzFhYjk4N2E0Li4yYjViOWRlOTkgMTAwNjQ0Cj4gLS0tIGEvc3JjL2Nv
bXBpbGVyL3g4Ni02NC9hcml0aC5saXNwCj4gKysrIGIvc3JjL2NvbXBpbGVyL3g4Ni02NC9hcml0
aC5saXNwCj4gQEAgLTIwNTYsMTMgKzIwNTYsMTMgQEAKPgo+ICAoZGVmaW5lLXZvcCAoZmFzdC10
cnVuY2F0ZS1jL2ZpeG51bT0+Zml4bnVtIGZhc3Qtc2FmZS1hcml0aC1vcCkKPiAgICAoOnRyYW5z
bGF0ZSB0cnVuY2F0ZSkKPiAtICAoOmFyZ3MgKHggOnNjcyAoYW55LXJlZykgOnRhcmdldCBlYXgp
KQo+ICsgICg6YXJncyAoeCA6c2NzIChhbnktcmVnKSA6dGFyZ2V0IHJheCkpCj4gICAgKDppbmZv
IHkpCj4gICAgKDphcmctdHlwZXMgdGFnZ2VkLW51bSAoOmNvbnN0YW50IGZpeG51bSkpCj4gICAg
KDp0ZW1wb3JhcnkgKDpzYyBzaWduZWQtcmVnIDpvZmZzZXQgcmF4LW9mZnNldCA6dGFyZ2V0IHF1
bwo+IC0gICAgICAgICAgICAgICAgICAgOmZyb20gOmFyZ3VtZW50IDp0byAoOnJlc3VsdCAwKSkg
ZWF4KQo+ICsgICAgICAgICAgICAgICAgICAgOmZyb20gOmFyZ3VtZW50IDp0byAoOnJlc3VsdCAw
KSkgcmF4KQo+ICAgICg6dGVtcG9yYXJ5ICg6c2MgYW55LXJlZyA6b2Zmc2V0IHJkeC1vZmZzZXQg
OnRhcmdldCByZW0KPiAtICAgICAgICAgICAgICAgICAgIDpmcm9tIDpldmFsIDp0byAoOnJlc3Vs
dCAxKSkgZWR4KQo+ICsgICAgICAgICAgICAgICAgICAgOmZyb20gOmV2YWwgOnRvICg6cmVzdWx0
IDEpKSByZHgpCj4gICAgKDp0ZW1wb3JhcnkgKDpzYyBhbnktcmVnIDpmcm9tIDpldmFsIDp0byA6
cmVzdWx0KSB5LWFyZykKPiAgICAoOnJlc3VsdHMgKHF1byA6c2NzIChhbnktcmVnKSkKPiAgICAg
ICAgICAgICAgKHJlbSA6c2NzIChhbnktcmVnKSkpCj4gQEAgLTIwNzAsMTYgKzIwNzAsNTQgQEAK
PiAgICAoOm5vdGUgImlubGluZSBmaXhudW0gYXJpdGhtZXRpYyIpCj4gICAgKDp2b3AtdmFyIHZv
cCkKPiAgICAoOmdlbmVyYXRvciAzMAo+IC0gICAgKG1vdmUgZWF4IHgpCj4gKyAgIChibG9jayBu
aWwKPiArICAgIDs7IFRoaXMgb3VnaHQgdG8gYmUgZG9uZSBtYWNoaW5lLWluZGVwZW5kZW50bHks
IGJ1dCB0aGVyZSBhcmUgYWxyZWFkeSAyMyB0cmFuc2Zvcm1zCj4gKyAgICA7OyBvbiBUUlVOQ0FU
RSBhbmQgSSBkb24ndCB1bmRlcnN0YW5kIGhvdyB0aGV5IGdldCB0cmllZCBpbiB0aGUgb3B0aW1h
bCBvcmRlci4KPiArICAgIDs7IFRoZSBiZW5lZml0IG9mIHRoYXQgaXMgd2UgY291bGQganVzdCBp
bnZva2UgdGhlIGZhc3RyZW0tMzIgb3IgZmFzdHJlbS02NCB2b3AKPiArICAgIDs7IHJhdGhlciB0
aGFuIGhhdmluZyB0byByZXBsaWNhdGUgdGhlbSBpbnNpZGUgaGVyZS4KPiArICAgICh3aGVuIChh
bmQgKG5vdCAoc2ItYzo6dG4tcmVhZHMgcXVvKSkKPiArICAgICAgICAgICAgICAgKHR5cGVwIHkg
Jyh1bnNpZ25lZC1ieXRlIDY0KSkKPiArICAgICAgICAgICAgICAgKGNzdWJ0eXBlcCAodG4tcmVm
LXR5cGUgKHZvcC1hcmdzIHZvcCkpIChzcGVjaWZpZXItdHlwZSAnKHVuc2lnbmVkLWJ5dGUgNjQp
KSkpCj4gKyAgICAgIDs7IFRoZSByZWFzb24gZm9yIHRoZSBjb25jZXJuIGFib3V0IGlucHV0cyBp
cyB0aGF0IHRoZSBnZW5lcmFsIGFsZ29yaXRobSB0byBhY2NlcHQKPiArICAgICAgOzsgYW55IDY0
LWJpdCBpbnRlZ2VyICh3aGljaCBhcyBGSVhOVU0gd291bGQgbGltaXQgYmUgNjIgYml0cykgbmVl
ZHMgNCBNVUwgaW5zdHJ1Y3Rpb25zCj4gKyAgICAgIDs7IChjb25maXJtZWQgYnkgbG9va2luZyBh
dCBodHRwczovL2dpdGh1Yi5jb20vbGVtaXJlL2Zhc3Rtb2QpCj4gKyAgICAgIDs7IEJ1dCAyIE1V
TCBpbnN0cnVjdGlvbnMgaXMgZW5vdWdoIGZvciByZWFzb25hYmxlIGlucHV0cy4gQm90aCB0aGUg
ZGl2aXNvciBhbmQgdGhlCj4gKyAgICAgIDs7IG1heGltdW0gaW5wdXQgYWZmZWN0IGhvdyBtYW55
IGJpdHMgYXJlIG5lZWRlZCBpbiBpbnRlcm1lZGlhdGUgcmVzdWx0cy4KPiArICAgICAgKGJpbmRp
bmcqICgobnVtZXJhdG9yLXByZWNpc2lvbgo+ICsgICAgICAgICAgICAgICAgICAodHlwZS13aWR0
aC1pbi1iaXRzICh0bi1yZWYtdHlwZSAodm9wLWFyZ3Mgdm9wKSkpIDpleGl0LWlmLW51bGwpCj4g
KyAgICAgICAgICAgICAgICAgKChtYWdpYyBzbWFsbGVzdC1uYml0cykKPiArICAgICAgICAgICAg
ICAgICAgKHNiLWM6Y29tcHV0ZS1mYXN0cmVtLWNvZWZmaWNpZW50IHkgbnVtZXJhdG9yLXByZWNp
c2lvbiA6bWluaW11bSkpCj4gKyAgICAgICAgICAgICAgICAgKChmcmFjLWJpdHMgb3BlcmFuZC1z
aXplKQo+ICsgICAgICAgICAgICAgICAgICA7OyAic21hbGxlc3QiIGlzIGhvdyBtYW55IGJpdHMg
eW91IG5lZWQgZm9yIHRoZSBhbGdvcml0aG0gdG8gd29yaywgYXNzdW1pbmcKPiArICAgICAgICAg
ICAgICAgICAgOzsgeW91IGNvdWxkIGFjdHVhbGx5IGNhbGN1bGF0ZSBvbiBiaXQgZmllbGRzIG9m
IGFyYml0cmFyeSBzaXplLiBCdXQgdG8gbWFrZSBpdAo+ICsgICAgICAgICAgICAgICAgICA7OyBl
ZmZpY2llbnQsIHlvdSBuZWVkIGEgZml4ZWQtYmluYXJ5LXBvaW50IHJlY2lwcm9jYWwgaW4gZXhh
Y3RseSAzMiBiaXRzCj4gKyAgICAgICAgICAgICAgICAgIDs7IG9yIGV4YWN0bHkgNjQgYml0cyAo
b3IgMTI4LCBpZiBmdWxseSBzdXBwb3J0aW5nIDY0LWJpdCBpbnRzKQo+ICsgICAgICAgICAgICAg
ICAgICAoY29uZCAoKDw9IHNtYWxsZXN0LW5iaXRzIDMyKSAodmFsdWVzIDMyIDpkd29yZCkpCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICgoPD0gc21hbGxlc3QtbmJpdHMgNjQpICh2YWx1ZXMg
NjQgOnF3b3JkKSkpKSkKPiArICAgICAgICAod2hlbiBvcGVyYW5kLXNpemUKPiArICAgICAgICAg
ICh3aGVuICgvPSBzbWFsbGVzdC1uYml0cyBmcmFjLWJpdHMpIDsgcmVjb21wdXRlIE1BR0lDIHRv
IHJlcXVpcmVkIG51bWJlciBvZiBiaXRzCj4gKyAgICAgICAgICAgIChzZXRxIG1hZ2ljIChzYi1j
OmNvbXB1dGUtZmFzdHJlbS1jb2VmZmljaWVudCB5IG51bWVyYXRvci1wcmVjaXNpb24gZnJhYy1i
aXRzKSkpCj4gKyAgICAgICAgICAobGV0ICgoYXJnLXNpemUgKGlmICg8PSBudW1lcmF0b3ItcHJl
Y2lzaW9uIDMxKSA6ZHdvcmQgOnF3b3JkKSkpCj4gKyAgICAgICAgICAgIChtb3ZlIHJheCB4IGFy
Zy1zaXplKQo+ICsgICAgICAgICAgICAoaW5zdCBzaHIgYXJnLXNpemUgcmF4IG4tZml4bnVtLXRh
Zy1iaXRzKSkgOyB1bnRhZyBpdAo+ICsgICAgICAgICAgKGluc3QgbXVsIG9wZXJhbmQtc2l6ZSAo
cmVnaXN0ZXItaW5saW5lLWNvbnN0YW50IG9wZXJhbmQtc2l6ZSBtYWdpYykpCj4gKyAgICAgICAg
ICAoaW5zdCBtdWwgb3BlcmFuZC1zaXplIChyZWdpc3Rlci1pbmxpbmUtY29uc3RhbnQgb3BlcmFu
ZC1zaXplIHkpKQo+ICsgICAgICAgICAgOzsgVGhlIHJlc3VsdCBtaWdodCBmaXQgaW50byBhIDpE
V09SRCBkZXBlbmRpbmcgb24gdGhlIGRpdmlzb3IKPiArICAgICAgICAgIChsZXQgKChyZXMtc2l6
ZSAoaWYgKDw9IChpbnRlZ2VyLWxlbmd0aCAoMS0geSkpIDMxKSA6ZHdvcmQgOnF3b3JkKSkpIDsg
KHRhZ2dlZCkKPiArICAgICAgICAgICAgKGlmIChsb2NhdGlvbj0gcmVtIHJkeCkKPiArICAgICAg
ICAgICAgICAgIChpbnN0IHNobCByZXMtc2l6ZSByZW0gMSkKPiArICAgICAgICAgICAgICAgIChp
bnN0IGxlYSByZXMtc2l6ZSByZW0gKGVhIHJkeCByZHgpKSkpCj4gKyAgICAgICAgICAocmV0dXJu
KSkpKQo+ICsgICAgKG1vdmUgcmF4IHgpCj4gICAgICAoaW5zdCBjcW8pCj4gICAgICAoaW5zdCBt
b3YgeS1hcmcgKGZpeG51bWl6ZSB5KSkKPiAgICAgIChpbnN0IGlkaXYgeS1hcmcpCj4gLSAgICAo
aWYgKGxvY2F0aW9uPSBxdW8gZWF4KQo+IC0gICAgICAgIChpbnN0IHNobCBlYXggbi1maXhudW0t
dGFnLWJpdHMpCj4gKyAgICAoaWYgKGxvY2F0aW9uPSBxdW8gcmF4KQo+ICsgICAgICAgIChpbnN0
IHNobCByYXggbi1maXhudW0tdGFnLWJpdHMpCj4gICAgICAgICAgKGlmICg9IG4tZml4bnVtLXRh
Zy1iaXRzIDEpCj4gLSAgICAgICAgICAgIChpbnN0IGxlYSBxdW8gKGVhIGVheCBlYXgpKQo+IC0g
ICAgICAgICAgICAoaW5zdCBsZWEgcXVvIChlYSBuaWwgZWF4IChhc2ggMSBuLWZpeG51bS10YWct
Yml0cykpKSkpCj4gLSAgICAobW92ZSByZW0gZWR4KSkpCj4gKyAgICAgICAgICAgIChpbnN0IGxl
YSBxdW8gKGVhIHJheCByYXgpKQo+ICsgICAgICAgICAgICAoaW5zdCBsZWEgcXVvIChlYSBuaWwg
cmF4IChhc2ggMSBuLWZpeG51bS10YWctYml0cykpKSkpCj4gKyAgICAobW92ZSByZW0gcmR4KSkp
KQo+Cj4gIChkZWZpbmUtdm9wIChmYXN0LXRydW5jYXRlL3Vuc2lnbmVkPT51bnNpZ25lZCBmYXN0
LXNhZmUtYXJpdGgtb3ApCj4gICAgKDp0cmFuc2xhdGUgdHJ1bmNhdGUpCj4gZGlmZiAtLWdpdCBh
L3Rlc3RzL2ludGVnZXJkaXYucHVyZS5saXNwIGIvdGVzdHMvaW50ZWdlcmRpdi5wdXJlLmxpc3AK
PiBpbmRleCBhOWNhMzg4NzMuLmUyODc2Mzc1NiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pbnRlZ2Vy
ZGl2LnB1cmUubGlzcAo+ICsrKyBiL3Rlc3RzL2ludGVnZXJkaXYucHVyZS5saXNwCj4gQEAgLTE1
MCwzICsxNTAsMjEgQEAKPiAgICAobG9vcCBmb3IgZGl2aXNvciBmcm9tIDMgdG8gMTAwMDAKPiAg
ICAgICAgICBkbyAoZm9ybWF0IHQgImRpdmlzb3I9fmR+JSIgZGl2aXNvcikKPiAgICAgICAgICAg
ICAgKHRyeS1mYXN0cmVtIGRpdmlzb3IgMTgpKSkKPiArCj4gKyhkZWNsYWltIChmdHlwZSBmdW5j
dGlvbiByZW1OKSkKPiArIyt4ODYtNjQgOyB0ZXN0IHRoZSBUUlVOQ0FURSAtPiBmYXN0cmVtIG9w
dGltaXphdGlvbgo+ICsod2l0aC10ZXN0ICg6bmFtZSA6dGVzdC1yZW0tdHJhbnNmb3JtKQo+ICsg
IChkb2xpc3QgKGRpdmlkZW5kLWJpdHMgJygyNCA1OCkpCj4gKyAgICA7OyBhIGRpdmlzb3Igb2Yg
MTIzNSBuZWVkcyB0b28gbWFueSBpbnRlcm1lZGlhdGUgYml0cyBmb3IgZGl2aWRlbmQtYml0cz01
OAo+ICsgICAgKGRvbGlzdCAoZGl2aXNvciBgKDMgNyAxMzMgLChpZiAoPSBkaXZpZGVuZC1iaXRz
IDI0KSAxMjM1IDE0OSkpKQo+ICsgICAgICAoY29tcGlsZSAncmVtTiBgKGxhbWJkYSAoeCkgKHJl
bSAodGhlICh1bnNpZ25lZC1ieXRlICxkaXZpZGVuZC1iaXRzKSB4KSAsZGl2aXNvcikpKQo+ICsg
ICAgICA7OyBzaG91bGQgbm90IHVzZSBESVYgb3IgSURJViBpbnN0cnVjdGlvbnMKPiArICAgICAg
KGFzc2VydCAobm90IChzZWFyY2ggIkRJViIgKHdpdGgtb3V0cHV0LXRvLXN0cmluZyAocykgKGRp
c2Fzc2VtYmxlICdyZW1OIDpzdHJlYW0gcykpKSkpCj4gKyAgICAgIChkb3RpbWVzIChpIDEwMDAw
KQo+ICsgICAgICAgIChkZWNsYXJlIChub3RpbmxpbmUgZmxvb3IpKQo+ICsgICAgICAgIChhc3Nl
cnQgKD0gKHJlbW4gaSkgKG50aC12YWx1ZSAxIChmbG9vciBpIGRpdmlzb3IpKSkpKQo+ICsgICAg
ICAobGV0ICgobWF4IChhc2ggMSBkaXZpZGVuZC1iaXRzKSkpCj4gKyAgICAgICAgKGRvdGltZXMg
KGkgMTAwMDApCj4gKyAgICAgICAgICAobGV0ICgoeCAocmFuZG9tIG1heCkpKQo+ICsgICAgICAg
ICAgICAoZGVjbGFyZSAobm90aW5saW5lIGZsb29yKSkKPiArICAgICAgICAgICAgKGFzc2VydCAo
PSAocmVtbiB4KSAobnRoLXZhbHVlIDEgKGZsb29yIHggZGl2aXNvcikpKSkpKSkpKSkKPgo+IC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCj4KPgo+IGhvb2tzL3Bvc3QtcmVjZWl2ZQo+IC0tCj4gU0JDTAo+Cj4KPiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IFNiY2wtY29t
bWl0cyBtYWlsaW5nIGxpc3QKPiBTYmNsLWNvbW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cj4g
aHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc2JjbC1jb21taXRz
CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KU2JjbC1j
b21taXRzIG1haWxpbmcgbGlzdApTYmNsLWNvbW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0
dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL3NiY2wtY29tbWl0cwo=