Add --human flag to slabtop

"Krzysztof Piecuch" <[email protected]> ("piecuch") Mon, 09 Oct 2023 19:21:30 +0000
Newsgroups gmane.linux.procps.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.

--b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi!

Thanks for great software. Slabtop is amazing, but to make it easier to
work with I suggest adding a `--human` flag, as already provided in
`free`. I already went through the effort and prepared some patches and
would be happy if you could include them in the trunk.

Thanks,
Kris


--b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8
Content-Type: text/x-patch; charset=UTF-8; name=0002-Whitespace-fix-tabs-to-spaces.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=0002-Whitespace-fix-tabs-to-spaces.patch

RnJvbSA5NTA3NjNkZTI1NGNhNjc4OTk0NmI5ZDcyZDUxMGFmNDk1YWYyMWRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQ0KRnJvbTogS3J6eXN6dG9mIFBpZWN1Y2ggPGtyaXNAa2VudGlrLmNvbT4N
CkRhdGU6IE1vbiwgOSBPY3QgMjAyMyAxMjo0MzoxNCArMDEwMA0KU3ViamVjdDogW1BBVENIIDIv
M10gV2hpdGVzcGFjZSBmaXggLSB0YWJzIHRvIHNwYWNlcw0KDQpubyBmdW5jdGlvbmFsIGNoYW5n
ZQ0KLS0tDQogc3JjL3NsYWJ0b3AuYyB8IDEwICsrKysrLS0tLS0NCiAxIGZpbGUgY2hhbmdlZCwg
NSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvc3JjL3NsYWJ0
b3AuYyBiL3NyYy9zbGFidG9wLmMNCmluZGV4IDQwY2UzNDBlLi5kMDRiNDI2MiAxMDA2NDQNCi0t
LSBhL3NyYy9zbGFidG9wLmMNCisrKyBiL3NyYy9zbGFidG9wLmMNCkBAIC0xODQsOCArMTg0LDgg
QEAgc3RhdGljIHZvaWQgcGFyc2Vfb3B0cyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KICAgICB3
aGlsZSAoKG8gPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiZDpzOm9oViIsIGxvbmdvcHRzLCBO
VUxMKSkgIT0gLTEpIHsNCiAgICAgICAgIHN3aXRjaCAobykgew0KICAgICAgICAgY2FzZSAnZCc6
DQotCSAgICBpZiAoUnVuX29uY2UpDQotCQl4ZXJyeChFWElUX0ZBSUxVUkUsIF8oIkNhbm5vdCBj
b21iaW5lIC1kIGFuZCAtbyBvcHRpb25zIikpOw0KKyAgICAgICAgICAgIGlmIChSdW5fb25jZSkN
CisgICAgICAgICAgICAgICAgeGVycngoRVhJVF9GQUlMVVJFLCBfKCJDYW5ub3QgY29tYmluZSAt
ZCBhbmQgLW8gb3B0aW9ucyIpKTsNCiAgICAgICAgICAgICBlcnJubyA9IDA7DQogICAgICAgICAg
ICAgRGVsYXkgPSBzdHJ0b2xfb3JfZXJyKG9wdGFyZywgXygiaWxsZWdhbCBkZWxheSIpKTsNCiAg
ICAgICAgICAgICBpZiAoRGVsYXkgPCAxKQ0KQEAgLTE5NSw4ICsxOTUsOCBAQCBzdGF0aWMgdm9p
ZCBwYXJzZV9vcHRzIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogICAgICAgICAgICAgc2V0X3Nv
cnRfc3R1ZmYob3B0YXJnWzBdKTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGNhc2Ug
J28nOg0KLQkgICAgaWYgKERlbGF5ICE9IDApDQotCQl4ZXJyeChFWElUX0ZBSUxVUkUsIF8oIkNh
bm5vdCBjb21iaW5lIC1kIGFuZCAtbyBvcHRpb25zIikpOw0KKyAgICAgICAgICAgIGlmIChEZWxh
eSAhPSAwKQ0KKyAgICAgICAgICAgICAgICB4ZXJyeChFWElUX0ZBSUxVUkUsIF8oIkNhbm5vdCBj
b21iaW5lIC1kIGFuZCAtbyBvcHRpb25zIikpOw0KICAgICAgICAgICAgIFJ1bl9vbmNlPTE7DQog
ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICBjYXNlICdWJzoNCkBAIC0yMTEsNyArMjExLDcg
QEAgc3RhdGljIHZvaWQgcGFyc2Vfb3B0cyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KICAgICBp
ZiAob3B0aW5kICE9IGFyZ2MpDQogICAgICAgICB1c2FnZShzdGRlcnIpOw0KICAgICBpZiAoIVJ1
bl9vbmNlICYmIERlbGF5ID09IDApDQotCURlbGF5ID0gREVGQVVMVF9ERUxBWTsNCisgICAgICAg
IERlbGF5ID0gREVGQVVMVF9ERUxBWTsNCiB9DQogDQogc3RhdGljIHZvaWQgcHJpbnRfc3VtbWFy
eSAodm9pZCkNCi0tIA0KMi40Mi4wDQoNCg==

--b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8
Content-Type: text/x-patch; charset=UTF-8; name=0001-Move-scale_size-away-from-free-to-use-in-other-progr.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=0001-Move-scale_size-away-from-free-to-use-in-other-progr.patch

RnJvbSA0MWEwZjk1ZDlkYzc5OTY5N2YwN2U0NWU4YWU3MWQ4NWI1MTVkMWRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQ0KRnJvbTogS3J6eXN6dG9mIFBpZWN1Y2ggPGtyaXNAa2VudGlrLmNvbT4N
CkRhdGU6IE1vbiwgOSBPY3QgMjAyMyAxMjoyMjozMiArMDEwMA0KU3ViamVjdDogW1BBVENIIDEv
M10gTW92ZSBzY2FsZV9zaXplIGF3YXkgZnJvbSBmcmVlIHRvIHVzZSBpbiBvdGhlciBwcm9ncmFt
cw0KDQpubyBmdW5jdGlvbmFsIGNoYW5nZQ0KLS0tDQogTWFrZWZpbGUuYW0gICB8ICAgMiArLQ0K
IGxvY2FsL3VuaXRzLmMgfCAgNjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGxvY2Fs
L3VuaXRzLmggfCAgIDYgKysrDQogc3JjL2ZyZWUuYyAgICB8IDEyMSArKysrKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIDQgZmlsZXMgY2hhbmdlZCwgMTAy
IGluc2VydGlvbnMoKyksIDk0IGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBsb2Nh
bC91bml0cy5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxvY2FsL3VuaXRzLmgNCg0KZGlmZiAtLWdp
dCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0NCmluZGV4IDYwODYwNzI2Li45N2U5N2I1MSAx
MDA2NDQNCi0tLSBhL01ha2VmaWxlLmFtDQorKysgYi9NYWtlZmlsZS5hbQ0KQEAgLTIyMyw3ICsy
MjMsNyBAQCBlbHNlDQogCW1hbi9zbmljZS4xDQogZW5kaWYNCiANCi1zcmNfZnJlZV9TT1VSQ0VT
ID0gc3JjL2ZyZWUuYyBsb2NhbC9zdHJ1dGlscy5jIGxvY2FsL2ZpbGV1dGlscy5jDQorc3JjX2Zy
ZWVfU09VUkNFUyA9IHNyYy9mcmVlLmMgbG9jYWwvc3RydXRpbHMuYyBsb2NhbC9maWxldXRpbHMu
YyBsb2NhbC91bml0cy5jDQogc3JjX3BncmVwX1NPVVJDRVMgPSBzcmMvcGdyZXAuYyBsb2NhbC9m
aWxldXRpbHMuYyBsb2NhbC9zaWduYWxzLmMgbG9jYWwvc3RydXRpbHMuYw0KIHNyY19wa2lsbF9T
T1VSQ0VTID0gc3JjL3BncmVwLmMgbG9jYWwvZmlsZXV0aWxzLmMgbG9jYWwvc2lnbmFscy5jIGxv
Y2FsL3N0cnV0aWxzLmMNCiBzcmNfcG1hcF9TT1VSQ0VTID0gc3JjL3BtYXAuYyBsb2NhbC9maWxl
dXRpbHMuYw0KZGlmZiAtLWdpdCBhL2xvY2FsL3VuaXRzLmMgYi9sb2NhbC91bml0cy5jDQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAuLjdlODU0MTIzDQotLS0gL2Rldi9udWxs
DQorKysgYi9sb2NhbC91bml0cy5jDQpAQCAtMCwwICsxLDY3IEBADQorI2luY2x1ZGUgPHN0ZGlv
Lmg+DQorDQorc3RhdGljIGRvdWJsZSBwb3dlcih1bnNpZ25lZCBpbnQgYmFzZSwgdW5zaWduZWQg
aW50IGV4cG8pOw0KKw0KK3N0YXRpYyBkb3VibGUgcG93ZXIodW5zaWduZWQgaW50IGJhc2UsIHVu
c2lnbmVkIGludCBleHBvKQ0KK3sNCisJcmV0dXJuIChleHBvID09IDApID8gMSA6IGJhc2UgKiBw
b3dlcihiYXNlLCBleHBvIC0gMSk7DQorfQ0KKw0KKy8qIGlkZWEgb2YgdGhpcyBmdW5jdGlvbiBp
cyBjb3BpZWQgZnJvbSB0b3Agc2l6ZSBzY2FsaW5nICovDQorY29uc3QgY2hhciAqc2NhbGVfc2l6
ZSh1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGludCBleHBvbmVudCwgaW50IHNpLCBpbnQg
aHVtYW5yZWFkYWJsZSkNCit7DQorCXN0YXRpYyBjaGFyIHVwW10gPSB7ICdCJywgJ0snLCAnTScs
ICdHJywgJ1QnLCAnUCcsIDAgfTsNCisJc3RhdGljIGNoYXIgYnVmW0JVRlNJWl07DQorCWludCBp
Ow0KKwlmbG9hdCBiYXNlOw0KKwlsb25nIGxvbmcgYnl0ZXM7DQorDQorCWJhc2UgPSBzaSA/IDEw
MDAuMCA6IDEwMjQuMDsNCisJYnl0ZXMgPSBzaXplICogMTAyNExMOw0KKw0KKwlpZiAoIWh1bWFu
cmVhZGFibGUpIHsNCisJCXN3aXRjaCAoZXhwb25lbnQpIHsNCisJCWNhc2UgMDoNCisJCQkvKiBk
ZWZhdWx0IG91dHB1dCAqLw0KKwkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlbGQiLCAo
bG9uZyBpbnQpKGJ5dGVzIC8gKGxvbmcgbG9uZyBpbnQpYmFzZSkpOw0KKwkJCXJldHVybiBidWY7
DQorCQljYXNlIDE6DQorCQkJLyogaW4gYnl0ZXMsIHdoaWNoIGNhbiBub3QgYmUgaW4gU0kgKi8N
CisJCQlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJWxsZCIsIGJ5dGVzKTsNCisJCQlyZXR1
cm4gYnVmOw0KKwkJZGVmYXVsdDoNCisJCQkvKiBJbiBkZXNpcmVkIHNjYWxlLiAqLw0KKwkJCXNu
cHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlbGQiLA0KKwkJCSAgICAgICAgKGxvbmcpKGJ5dGVz
IC8gcG93ZXIoYmFzZSwgZXhwb25lbnQtMSkpKTsNCisJCQlyZXR1cm4gYnVmOw0KKwkJfQ0KKwl9
DQorDQorCS8qIGh1bWFuIHJlYWRhYmxlIG91dHB1dCAqLw0KKwlpZiAoNCA+PSBzbnByaW50Zihi
dWYsIHNpemVvZihidWYpLCAiJWxsZCVjIiwgYnl0ZXMsIHVwWzBdKSkNCisJCXJldHVybiBidWY7
DQorDQorCWZvciAoaSA9IDE7IHVwW2ldICE9IDA7IGkrKykgew0KKwkJaWYgKHNpKSB7DQorCQkJ
aWYgKDQgPj0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiUuMWYlYyIsDQorCQkJICAgICAg
ICAgICAgICAgICAgKGZsb2F0KShieXRlcyAvIHBvd2VyKGJhc2UsIGkpKSwgdXBbaV0pKQ0KKwkJ
CQlyZXR1cm4gYnVmOw0KKwkJCWlmICg0ID49IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIl
bGQlYyIsDQorCQkJICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwg
aSkpLCB1cFtpXSkpDQorCQkJCXJldHVybiBidWY7DQorCQl9IGVsc2Ugew0KKwkJCWlmICg1ID49
IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlLjFmJWNpIiwNCisJCQkgICAgICAgICAgICAg
ICAgICAoZmxvYXQpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgaSkpLCB1cFtpXSkpDQorCQkJCXJldHVy
biBidWY7DQorCQkJaWYgKDUgPj0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVsZCVjaSIs
DQorCQkJICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgaSkpLCB1
cFtpXSkpDQorCQkJCXJldHVybiBidWY7DQorCQl9DQorCX0NCisJLyoNCisJICogT24gc3lzdGVt
IHdoZXJlIHRoZXJlIGlzIG1vcmUgdGhhbiBleGJpYnl0ZSBvZiBtZW1vcnkgb3Igc3dhcCB0aGUN
CisJICogb3V0cHV0IGRvZXMgbm90IGZpdCB0byBjb2x1bW4uIEZvciBpbmNvbWluZyBmZXcgeWVh
cnMgdGhpcyBzaG91bGQNCisJICogbm90IGJlIGEgYmlnIHByb2JsZW0gKHdyb3RlIGF0IEFwciwg
MjAxNSkuDQorCSAqLw0KKwlyZXR1cm4gYnVmOw0KK30NCmRpZmYgLS1naXQgYS9sb2NhbC91bml0
cy5oIGIvbG9jYWwvdW5pdHMuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw
Li4yZWE4ZjYzYg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvbG9jYWwvdW5pdHMuaA0KQEAgLTAsMCAr
MSw2IEBADQorI2lmbmRlZiBQUk9DUFNfVU5JVFNfSA0KKyNkZWZpbmUgUFJPQ1BTX1VOSVRTX0gN
CisNCitjb25zdCBjaGFyKiBzY2FsZV9zaXplKHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQg
aW50IGV4cG9uZW50LCBpbnQgc2ksIGludCBodW1hbnJlYWRhYmxlKTsNCisNCisjZW5kaWYNCmRp
ZmYgLS1naXQgYS9zcmMvZnJlZS5jIGIvc3JjL2ZyZWUuYw0KaW5kZXggNTc5NTkxZDQuLmRmYjE2
NmNkIDEwMDY0NA0KLS0tIGEvc3JjL2ZyZWUuYw0KKysrIGIvc3JjL2ZyZWUuYw0KQEAgLTM4LDYg
KzM4LDcgQEANCiAjaW5jbHVkZSAibmxzLmgiDQogI2luY2x1ZGUgInN0cnV0aWxzLmgiDQogI2lu
Y2x1ZGUgImZpbGV1dGlscy5oIg0KKyNpbmNsdWRlICJ1bml0cy5oIg0KIA0KICNpbmNsdWRlICJt
ZW1pbmZvLmgiDQogDQpAQCAtNjMsOCArNjQsNiBAQCBzdHJ1Y3QgY29tbWFuZGxpbmVfYXJndW1l
bnRzIHsNCiANCiAvKiBmdW5jdGlvbiBwcm90b3R5cGVzICovDQogc3RhdGljIHZvaWQgdXNhZ2Uo
RklMRSAqIG91dCk7DQotZG91YmxlIHBvd2VyKHVuc2lnbmVkIGludCBiYXNlLCB1bnNpZ25lZCBp
bnQgZXhwbyk7DQotc3RhdGljIGNvbnN0IGNoYXIgKnNjYWxlX3NpemUodW5zaWduZWQgbG9uZyBz
aXplLCBpbnQgZmxhZ3MsIHN0cnVjdCBjb21tYW5kbGluZV9hcmd1bWVudHMgYXJncyk7DQogDQog
c3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXyAoKF9fbm9yZXR1cm5fXykpDQogICAgIHVzYWdlKEZJ
TEUgKiBvdXQpDQpAQCAtMTAxLDcwICsxMDAsNiBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9f
ICgoX19ub3JldHVybl9fKSkNCiAJZXhpdChvdXQgPT0gc3RkZXJyID8gRVhJVF9GQUlMVVJFIDog
RVhJVF9TVUNDRVNTKTsNCiB9DQogDQotZG91YmxlIHBvd2VyKHVuc2lnbmVkIGludCBiYXNlLCB1
bnNpZ25lZCBpbnQgZXhwbykNCi17DQotCXJldHVybiAoZXhwbyA9PSAwKSA/IDEgOiBiYXNlICog
cG93ZXIoYmFzZSwgZXhwbyAtIDEpOw0KLX0NCi0NCi0vKiBpZGVhIG9mIHRoaXMgZnVuY3Rpb24g
aXMgY29waWVkIGZyb20gdG9wIHNpemUgc2NhbGluZyAqLw0KLXN0YXRpYyBjb25zdCBjaGFyICpz
Y2FsZV9zaXplKHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50IGZsYWdzLCBzdHJ1Y3QgY29tbWFuZGxp
bmVfYXJndW1lbnRzIGFyZ3MpDQotew0KLQlzdGF0aWMgY2hhciB1cFtdID0geyAnQicsICdLJywg
J00nLCAnRycsICdUJywgJ1AnLCAwIH07DQotCXN0YXRpYyBjaGFyIGJ1ZltCVUZTSVpdOw0KLQlp
bnQgaTsNCi0JZmxvYXQgYmFzZTsNCi0JbG9uZyBsb25nIGJ5dGVzOw0KLQ0KLQliYXNlID0gKGZs
YWdzICYgRlJFRV9TSSkgPyAxMDAwLjAgOiAxMDI0LjA7DQotCWJ5dGVzID0gc2l6ZSAqIDEwMjRM
TDsNCi0NCi0JaWYgKCEoZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKSB7DQotCQlzd2l0Y2gg
KGFyZ3MuZXhwb25lbnQpIHsNCi0JCWNhc2UgMDoNCi0JCQkvKiBkZWZhdWx0IG91dHB1dCAqLw0K
LQkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlbGQiLCAobG9uZyBpbnQpKGJ5dGVzIC8g
KGxvbmcgbG9uZyBpbnQpYmFzZSkpOw0KLQkJCXJldHVybiBidWY7DQotCQljYXNlIDE6DQotCQkJ
LyogaW4gYnl0ZXMsIHdoaWNoIGNhbiBub3QgYmUgaW4gU0kgKi8NCi0JCQlzbnByaW50ZihidWYs
IHNpemVvZihidWYpLCAiJWxsZCIsIGJ5dGVzKTsNCi0JCQlyZXR1cm4gYnVmOw0KLQkJZGVmYXVs
dDoNCi0JCQkvKiBJbiBkZXNpcmVkIHNjYWxlLiAqLw0KLQkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9m
KGJ1ZiksICIlbGQiLA0KLQkJCSAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgYXJn
cy5leHBvbmVudC0xKSkpOw0KLQkJCXJldHVybiBidWY7DQotCQl9DQotCX0NCi0NCi0JLyogaHVt
YW4gcmVhZGFibGUgb3V0cHV0ICovDQotCWlmICg0ID49IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1
ZiksICIlbGxkJWMiLCBieXRlcywgdXBbMF0pKQ0KLQkJcmV0dXJuIGJ1ZjsNCi0NCi0JZm9yIChp
ID0gMTsgdXBbaV0gIT0gMDsgaSsrKSB7DQotCQlpZiAoZmxhZ3MgJiBGUkVFX1NJKSB7DQotCQkJ
aWYgKDQgPj0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiUuMWYlYyIsDQotCQkJICAgICAg
ICAgICAgICAgICAgKGZsb2F0KShieXRlcyAvIHBvd2VyKGJhc2UsIGkpKSwgdXBbaV0pKQ0KLQkJ
CQlyZXR1cm4gYnVmOw0KLQkJCWlmICg0ID49IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIl
bGQlYyIsDQotCQkJICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwg
aSkpLCB1cFtpXSkpDQotCQkJCXJldHVybiBidWY7DQotCQl9IGVsc2Ugew0KLQkJCWlmICg1ID49
IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlLjFmJWNpIiwNCi0JCQkgICAgICAgICAgICAg
ICAgICAoZmxvYXQpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgaSkpLCB1cFtpXSkpDQotCQkJCXJldHVy
biBidWY7DQotCQkJaWYgKDUgPj0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVsZCVjaSIs
DQotCQkJICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ5dGVzIC8gcG93ZXIoYmFzZSwgaSkpLCB1
cFtpXSkpDQotCQkJCXJldHVybiBidWY7DQotCQl9DQotCX0NCi0JLyoNCi0JICogT24gc3lzdGVt
IHdoZXJlIHRoZXJlIGlzIG1vcmUgdGhhbiBleGJpYnl0ZSBvZiBtZW1vcnkgb3Igc3dhcCB0aGUN
Ci0JICogb3V0cHV0IGRvZXMgbm90IGZpdCB0byBjb2x1bW4uIEZvciBpbmNvbWluZyBmZXcgeWVh
cnMgdGhpcyBzaG91bGQNCi0JICogbm90IGJlIGEgYmlnIHByb2JsZW0gKHdyb3RlIGF0IEFwciwg
MjAxNSkuDQotCSAqLw0KLQlyZXR1cm4gYnVmOw0KLX0NCi0NCiBzdGF0aWMgdm9pZCBjaGVja191
bml0X3NldChpbnQgKnVuaXRfc2V0KQ0KIHsNCiAgICAgaWYgKCp1bml0X3NldCkNCkBAIC0zNzgs
MTEgKzMxMywxMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogICAgICAgICAg
ICAgICAgICAgKiB0aGF0IGFyZSBhbGwgNyBjaGFyYWN0ZXJzIGxvbmcuIFVzZSBzcGFjZXMgYW5k
IHJpZ2h0DQogICAgICAgICAgICAgICAgICAgKiBhbGlnbiBpZiB0aGUgdHJhbnNsYXRpb24gaXMg
c2hvcnRlci4NCiAgICAgICAgICAgICAgICAgICAqLw0KLQkJcHJpbnRmKCIlcyAlMTFzICIsIF8o
IlN3YXBVc2UiKSwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19TV0FQ
X1VTRUQsIHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQorCQkgICAgIHByaW50ZigiJXMgJTExcyAi
LCBfKCJTd2FwVXNlIiksIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9f
U1dBUF9VU0VELCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdz
ICYgRlJFRV9IVU1BTlJFQURBQkxFKSk7DQogCQlwcmludGYoIiVzICUxMXMgIiwgXygiQ2FjaFVz
ZSIpLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9CVUZGRVJT
LCB1bF9pbnQpICsNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVNSU5GT19HRVQobWVt
X2luZm8sIE1FTUlORk9fTUVNX0NBQ0hFRF9BTEwsIHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQot
CQlwcmludGYoIiVzICUxMXMgIiwgXygiIE1lbVVzZSIpLCBzY2FsZV9zaXplKE1FTUlORk9fR0VU
KG1lbV9pbmZvLCBNRU1JTkZPX01FTV9VU0VELCB1bF9pbnQpLCBmbGFncywgYXJncykpOw0KLQkJ
cHJpbnRmKCIlcyAlMTFzICIsIF8oIk1lbUZyZWUiKSwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVCht
ZW1faW5mbywgTUVNSU5GT19NRU1fRlJFRSwgdWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVN
X0NBQ0hFRF9BTEwsIHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxh
Z3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCisJCXByaW50ZigiJXMgJTExcyAiLCBfKCIgTWVt
VXNlIiksIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX1VTRUQs
IHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hV
TUFOUkVBREFCTEUpKTsNCisJCXByaW50ZigiJXMgJTExcyAiLCBfKCJNZW1GcmVlIiksIHNjYWxl
X3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0ZSRUUsIHVsX2ludCksIGFy
Z3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUp
KTsNCiAJCWlmICggKGZsYWdzICYgRlJFRV9SRVBFQVQpID09IDAgKQ0KIAkJCXByaW50ZigiXG4i
KTsNCiAJCWVsc2UgaWYgKCBhcmdzLnJlcGVhdF9jb3VudGVyID09IDEgKQ0KQEAgLTM5OCwyMCAr
MzMzLDIwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCiAJCX0NCiAJCXByaW50
ZigiXG4iKTsNCiAJCXByaW50X2hlYWRfY29sKF8oIk1lbToiKSk7DQotCQlwcmludGYoIiUxMXMi
LCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9UT1RBTCwgdWxf
aW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1FTUlO
Rk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9VU0VELCB1bF9pbnQpLCBmbGFncywgYXJncykp
Ow0KLQkJcHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1F
TUlORk9fTUVNX0ZSRUUsIHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQotCQlwcmludGYoIiAlMTFz
Iiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fU0hBUkVELCB1
bF9pbnQpLCBmbGFncywgYXJncykpOw0KKwkJcHJpbnRmKCIlMTFzIiwgc2NhbGVfc2l6ZShNRU1J
TkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fVE9UQUwsIHVsX2ludCksIGFyZ3MuZXhwb25l
bnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCisJCXBy
aW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01F
TV9VU0VELCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYg
RlJFRV9IVU1BTlJFQURBQkxFKSk7DQorCQlwcmludGYoIiAlMTFzIiwgc2NhbGVfc2l6ZShNRU1J
TkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fRlJFRSwgdWxfaW50KSwgYXJncy5leHBvbmVu
dCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAmIEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KKwkJcHJp
bnRmKCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVN
X1NIQVJFRCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAm
IEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KIAkJaWYgKGZsYWdzICYgRlJFRV9XSURFKSB7DQogCQkJ
cHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9f
TUVNX0JVRkZFUlMsIHVsX2ludCksDQotCQkJCSAgICBmbGFncywgYXJncykpOw0KKwkJCQkgICAg
YXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAmIEZSRUVfSFVNQU5SRUFEQUJM
RSkpOw0KIAkJCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZv
LCBNRU1JTkZPX01FTV9DQUNIRURfQUxMLCB1bF9pbnQpDQotCQkJCSAgICAsIGZsYWdzLCBhcmdz
KSk7DQorCQkJCSAgICAsIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBG
UkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJCX0gZWxzZSB7DQogCQkJcHJpbnRmKCIgJTExcyIsIHNj
YWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0JVRkZFUlMsIHVsX2lu
dCkgKw0KLQkJCQkgICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0NBQ0hFRF9B
TEwsIHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQorCQkJCSAgICBNRU1JTkZPX0dFVChtZW1faW5m
bywgTUVNSU5GT19NRU1fQ0FDSEVEX0FMTCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3Mg
JiBGUkVFX1NJLCBmbGFncyAmIEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KIAkJfQ0KLQkJcHJpbnRm
KCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0FW
QUlMQUJMRSwgdWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCisJCXByaW50ZigiICUxMXMiLCBzY2Fs
ZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9BVkFJTEFCTEUsIHVsX2lu
dCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVB
REFCTEUpKTsNCiAJCXByaW50ZigiXG4iKTsNCiAJCS8qDQogCQkgKiBQcmludCBsb3cgdnMuIGhp
Z2ggaW5mb3JtYXRpb24sIGlmIHRoZSB1c2VyIHJlcXVlc3RlZCBpdC4NCkBAIC00MjEsNDQgKzM1
Niw0NCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogCQkgKi8NCiAJCWlmIChm
bGFncyAmIEZSRUVfTE9ISSkgew0KIAkJCXByaW50X2hlYWRfY29sKF8oIkxvdzoiKSk7DQotCQkJ
cHJpbnRmKCIlMTFzIiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19N
RU1fTE9XX1RPVEFMLCB1bF9pbnQpLCBmbGFncywgYXJncykpOw0KLQkJCXByaW50ZigiICUxMXMi
LCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9MT1dfVVNFRCwg
dWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCQlwcmludGYoIiAlMTFzIiwgc2NhbGVfc2l6ZShN
RU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fTE9XX0ZSRUUsIHVsX2ludCksIGZsYWdz
LCBhcmdzKSk7DQorCQkJcHJpbnRmKCIlMTFzIiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1f
aW5mbywgTUVNSU5GT19NRU1fTE9XX1RPVEFMLCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFn
cyAmIEZSRUVfU0ksIGZsYWdzICYgRlJFRV9IVU1BTlJFQURBQkxFKSk7DQorCQkJcHJpbnRmKCIg
JTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0xPV19V
U0VELCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJF
RV9IVU1BTlJFQURBQkxFKSk7DQorCQkJcHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5G
T19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0xPV19GUkVFLCB1bF9pbnQpLCBhcmdzLmV4cG9u
ZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJFRV9IVU1BTlJFQURBQkxFKSk7DQogCQkJ
cHJpbnRmKCJcbiIpOw0KIA0KIAkJCXByaW50X2hlYWRfY29sKCBfKCJIaWdoOiIpKTsNCi0JCQlw
cmludGYoIiUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01F
TV9ISUdIX1RPVEFMLCB1bF9pbnQpLCBmbGFncywgYXJncykpOw0KLQkJCXByaW50ZigiICUxMXMi
LCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9ISUdIX1VTRUQs
IHVsX2ludCksIGZsYWdzLCBhcmdzKSk7DQotCQkJcHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUo
TUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0hJR0hfRlJFRSwgdWxfaW50KSwgZmxh
Z3MsIGFyZ3MpKTsNCisJCQlwcmludGYoIiUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1l
bV9pbmZvLCBNRU1JTkZPX01FTV9ISUdIX1RPVEFMLCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBm
bGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJFRV9IVU1BTlJFQURBQkxFKSk7DQorCQkJcHJpbnRm
KCIgJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0hJ
R0hfVVNFRCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAm
IEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KKwkJCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1F
TUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9ISUdIX0ZSRUUsIHVsX2ludCksIGFyZ3Mu
ZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsN
CiAJCQlwcmludGYoIlxuIik7DQogCQl9DQogDQogCQlwcmludF9oZWFkX2NvbChfKCJTd2FwOiIp
KTsNCi0JCXByaW50ZigiJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1F
TUlORk9fU1dBUF9UT1RBTCwgdWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCXByaW50ZigiICUx
MXMiLCBzY2FsZV9zaXplKE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX1NXQVBfVVNFRCwg
dWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1F
TUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX1NXQVBfRlJFRSwgdWxfaW50KSwgZmxhZ3MsIGFy
Z3MpKTsNCisJCXByaW50ZigiJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8s
IE1FTUlORk9fU1dBUF9UT1RBTCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVF
X1NJLCBmbGFncyAmIEZSRUVfSFVNQU5SRUFEQUJMRSkpOw0KKwkJcHJpbnRmKCIgJTExcyIsIHNj
YWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fU1dBUF9VU0VELCB1bF9pbnQp
LCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJFRV9IVU1BTlJFQURB
QkxFKSk7DQorCQlwcmludGYoIiAlMTFzIiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5m
bywgTUVNSU5GT19TV0FQX0ZSRUUsIHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJF
RV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJCXByaW50ZigiXG4iKTsNCiAN
CiAJCWlmIChmbGFncyAmIEZSRUVfVE9UQUwpIHsNCiAJCQlwcmludF9oZWFkX2NvbChfKCJUb3Rh
bDoiKSk7DQogCQkJcHJpbnRmKCIlMTFzIiwgc2NhbGVfc2l6ZSgNCiAJCQkJICAgIE1FTUlORk9f
R0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9UT1RBTCwgdWxfaW50KSArDQotCQkJCSAgICBNRU1J
TkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19TV0FQX1RPVEFMLCB1bF9pbnQpLCBmbGFncywgYXJn
cykpOw0KKwkJCQkgICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fU1dBUF9UT1RBTCwg
dWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAmIEZSRUVfSFVN
QU5SRUFEQUJMRSkpOw0KIAkJCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKA0KIAkJCQkgICAg
TUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX1VTRUQsIHVsX2ludCkgKw0KLQkJCQkg
ICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fU1dBUF9VU0VELCB1bF9pbnQpLCBmbGFn
cywgYXJncykpOw0KKwkJCQkgICAgTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fU1dBUF9V
U0VELCB1bF9pbnQpLCBhcmdzLmV4cG9uZW50LCBmbGFncyAmIEZSRUVfU0ksIGZsYWdzICYgRlJF
RV9IVU1BTlJFQURBQkxFKSk7DQogCQkJcHJpbnRmKCIgJTExcyIsIHNjYWxlX3NpemUoDQogCQkJ
CSAgICBNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1fRlJFRSwgdWxfaW50KSArDQot
CQkJCSAgICBNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19TV0FQX0ZSRUUsIHVsX2ludCks
IGZsYWdzLCBhcmdzKSk7DQorCQkJCSAgICBNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19T
V0FQX0ZSRUUsIHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3Mg
JiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJCQlwcmludGYoIlxuIik7DQogCQl9DQogCQlpZiAo
ZmxhZ3MgJiBGUkVFX0NPTU1JVFRFRCkgew0KIAkJCXByaW50X2hlYWRfY29sKF8oIkNvbW06Iikp
Ow0KLQkJCXByaW50ZigiJTExcyIsIHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1F
TUlORk9fTUVNX0NPTU1JVF9MSU1JVCwgdWxfaW50KSwgZmxhZ3MsIGFyZ3MpKTsNCi0JCQlwcmlu
dGYoIiAlMTFzIiwgc2NhbGVfc2l6ZShNRU1JTkZPX0dFVChtZW1faW5mbywgTUVNSU5GT19NRU1f
Q09NTUlUVEVEX0FTLCB1bF9pbnQpLCBmbGFncywgYXJncykpOw0KKwkJCXByaW50ZigiJTExcyIs
IHNjYWxlX3NpemUoTUVNSU5GT19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0NPTU1JVF9MSU1J
VCwgdWxfaW50KSwgYXJncy5leHBvbmVudCwgZmxhZ3MgJiBGUkVFX1NJLCBmbGFncyAmIEZSRUVf
SFVNQU5SRUFEQUJMRSkpOw0KKwkJCXByaW50ZigiICUxMXMiLCBzY2FsZV9zaXplKE1FTUlORk9f
R0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9DT01NSVRURURfQVMsIHVsX2ludCksIGFyZ3MuZXhw
b25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3MgJiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJ
CQlwcmludGYoIiAlMTFzIiwgc2NhbGVfc2l6ZSgNCiAJCQkJICAgIE1FTUlORk9fR0VUKG1lbV9p
bmZvLCBNRU1JTkZPX01FTV9DT01NSVRfTElNSVQsIHVsX2ludCkgLQ0KLQkJCQkgICAgTUVNSU5G
T19HRVQobWVtX2luZm8sIE1FTUlORk9fTUVNX0NPTU1JVFRFRF9BUywgdWxfaW50KSwgZmxhZ3Ms
IGFyZ3MpKTsNCisJCQkJICAgIE1FTUlORk9fR0VUKG1lbV9pbmZvLCBNRU1JTkZPX01FTV9DT01N
SVRURURfQVMsIHVsX2ludCksIGFyZ3MuZXhwb25lbnQsIGZsYWdzICYgRlJFRV9TSSwgZmxhZ3Mg
JiBGUkVFX0hVTUFOUkVBREFCTEUpKTsNCiAJCQlwcmludGYoIlxuIik7DQogCQl9DQogDQotLSAN
CjIuNDIuMA0KDQo=

--b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8
Content-Type: text/x-patch; charset=UTF-8; name=0003-Slabtop-add-human-flag-for-human-readable-units.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=0003-Slabtop-add-human-flag-for-human-readable-units.patch

RnJvbSBiYTA1OTM1OTBjYTQ3OWZkZTIwYmI2OTA0MWMwYzYzYjg1NDVhMGJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQ0KRnJvbTogS3J6eXN6dG9mIFBpZWN1Y2ggPGtyaXNAa2VudGlrLmNvbT4N
CkRhdGU6IE1vbiwgOSBPY3QgMjAyMyAxMzowOTo1OCArMDEwMA0KU3ViamVjdDogW1BBVENIIDMv
M10gU2xhYnRvcCAtIGFkZCAtLWh1bWFuIGZsYWcgZm9yIGh1bWFuLXJlYWRhYmxlIHVuaXRzDQoN
ClN0cm9uZ2x5IGluc3BpcmVkIGZyb20gZnJlZS5jIGNvZGViYXNlDQoNCkkgaGFkIHRvIHNwbGl0
IFBSSU5UX2xpbmUgaW50byB0d28gY2FsbHMgYmVjYXVzZSBzY2FsZV9zaXplIHJldXNlcyB0aGUN
CmJ1ZmZlciBhbmQgdGhhdCdzIHRoZSBlYXNpZXN0IHdvcmthcm91bmQgZm9yIHRoYXQuDQotLS0N
CiBNYWtlZmlsZS5hbSAgIHwgIDIgKy0NCiBzcmMvc2xhYnRvcC5jIHwgMjMgKysrKysrKysrKysr
KysrKysrLS0tLS0NCiAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDYgZGVsZXRp
b25zKC0pDQoNCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtDQppbmRleCA5
N2U5N2I1MS4uOTk4OTFkMzYgMTAwNjQ0DQotLS0gYS9NYWtlZmlsZS5hbQ0KKysrIGIvTWFrZWZp
bGUuYW0NCkBAIC0xNzksNyArMTc5LDcgQEAgYmluX1BST0dSQU1TICs9IFwNCiAJc3JjL3NsYWJ0
b3ANCiBkaXN0X21hbl9NQU5TICs9IFwNCiAJbWFuL3NsYWJ0b3AuMQ0KLXNyY19zbGFidG9wX1NP
VVJDRVMgPSBzcmMvc2xhYnRvcC5jIGxvY2FsL3N0cnV0aWxzLmMgbG9jYWwvZmlsZXV0aWxzLmMN
CitzcmNfc2xhYnRvcF9TT1VSQ0VTID0gc3JjL3NsYWJ0b3AuYyBsb2NhbC9zdHJ1dGlscy5jIGxv
Y2FsL2ZpbGV1dGlscy5jIGxvY2FsL3VuaXRzLmMNCiBzcmNfc2xhYnRvcF9DRkxBR1MgPSBATkNV
UlNFU19DRkxBR1NADQogc3JjX3NsYWJ0b3BfTERBREQgPSAkKExEQUREKSBATkNVUlNFU19MSUJT
QA0KIGVuZGlmDQpkaWZmIC0tZ2l0IGEvc3JjL3NsYWJ0b3AuYyBiL3NyYy9zbGFidG9wLmMNCmlu
ZGV4IGQwNGI0MjYyLi45NDc5ZjA5ZiAxMDA2NDQNCi0tLSBhL3NyYy9zbGFidG9wLmMNCisrKyBi
L3NyYy9zbGFidG9wLmMNCkBAIC00NCw2ICs0NCw3IEBADQogI2luY2x1ZGUgImZpbGV1dGlscy5o
Ig0KICNpbmNsdWRlICJubHMuaCINCiAjaW5jbHVkZSAic3RydXRpbHMuaCINCisjaW5jbHVkZSAi
dW5pdHMuaCINCiANCiAjaW5jbHVkZSAic2xhYmluZm8uaCINCiANCkBAIC01NSw2ICs1Niw3IEBA
DQogc3RhdGljIHVuc2lnbmVkIHNob3J0IENvbHMsIFJvd3M7DQogc3RhdGljIHN0cnVjdCB0ZXJt
aW9zIFNhdmVkX3R0eTsNCiBzdGF0aWMgbG9uZyBEZWxheSA9IDA7DQorc3RhdGljIGludCBIdW1h
biA9IDA7DQogc3RhdGljIGludCBSdW5fb25jZSA9IDA7DQogDQogc3RhdGljIHN0cnVjdCBzbGFi
aW5mb19pbmZvICpTbGFiX2luZm87DQpAQCAtMTA3LDYgKzEwOSw3IEBAIHN0YXRpYyB2b2lkIF9f
YXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpIHVzYWdlIChGSUxFICpvdXQpDQogICAgIGZwdXRz
KFVTQUdFX09QVElPTlMsIG91dCk7DQogICAgIGZwdXRzKF8oIiAtZCwgLS1kZWxheSA8c2Vjcz4g
IGRlbGF5IHVwZGF0ZXNcbiIpLCBvdXQpOw0KICAgICBmcHV0cyhfKCIgLW8sIC0tb25jZSAgICAg
ICAgICBvbmx5IGRpc3BsYXkgb25jZSwgdGhlbiBleGl0XG4iKSwgb3V0KTsNCisgICAgZnB1dHMo
XygiIC0taHVtYW4gICAgICAgICAgICAgc2hvdyBodW1hbi1yZWFkYWJsZSBvdXRwdXRcbiIpLCBv
dXQpOw0KICAgICBmcHV0cyhfKCIgLXMsIC0tc29ydCA8Y2hhcj4gICBzcGVjaWZ5IHNvcnQgY3Jp
dGVyaWEgYnkgY2hhcmFjdGVyIChzZWUgYmVsb3cpXG4iKSwgb3V0KTsNCiAgICAgZnB1dHMoVVNB
R0VfU0VQQVJBVE9SLCBvdXQpOw0KICAgICBmcHV0cyhVU0FHRV9IRUxQLCBvdXQpOw0KQEAgLTE3
Miw3ICsxNzUsMTIgQEAgc3RhdGljIHZvaWQgc2V0X3NvcnRfc3R1ZmYgKGNvbnN0IGNoYXIga2V5
KQ0KIA0KIHN0YXRpYyB2b2lkIHBhcnNlX29wdHMgKGludCBhcmdjLCBjaGFyICoqYXJndikNCiB7
DQorDQorICAgIGVudW0gew0KKyAgICAgICAgSFVNQU5fT1BUSU9OID0gQ0hBUl9NQVggKyAxLA0K
KyAgICB9Ow0KICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0gew0K
KyAgICAgICAgeyAiaHVtYW4iLCAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBIVU1BTl9PUFRJ
T04gfSwNCiAgICAgICAgIHsgImRlbGF5IiwgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2Qn
IH0sDQogICAgICAgICB7ICJzb3J0IiwgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdzJyB9
LA0KICAgICAgICAgeyAib25jZSIsICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCAnbycgfSwN
CkBAIC0xODMsNiArMTkxLDkgQEAgc3RhdGljIHZvaWQgcGFyc2Vfb3B0cyAoaW50IGFyZ2MsIGNo
YXIgKiphcmd2KQ0KIA0KICAgICB3aGlsZSAoKG8gPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAi
ZDpzOm9oViIsIGxvbmdvcHRzLCBOVUxMKSkgIT0gLTEpIHsNCiAgICAgICAgIHN3aXRjaCAobykg
ew0KKyAgICAgICAgY2FzZSBIVU1BTl9PUFRJT046DQorICAgICAgICAgICAgSHVtYW4gPSAxOw0K
KyAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgY2FzZSAnZCc6DQogICAgICAgICAgICAgaWYg
KFJ1bl9vbmNlKQ0KICAgICAgICAgICAgICAgICB4ZXJyeChFWElUX0ZBSUxVUkUsIF8oIkNhbm5v
dCBjb21iaW5lIC1kIGFuZCAtbyBvcHRpb25zIikpOw0KQEAgLTI1NSwxMSArMjY2LDEzIEBAIHN0
YXRpYyB2b2lkIHByaW50X3N1bW1hcnkgKHZvaWQpDQogICAgICAgICAgICAgICAgLCB0b3RhbFZB
TCh0b3RfQUNBQ0hFUywgdV9pbnQpDQogICAgICAgICAgICAgICAgLCB0b3RhbFZBTCh0b3RfQ0FD
SEVTLCAgdV9pbnQpDQogICAgICAgICAgICAgICAgLCAxMDAuMCAqIHRvdGFsVkFMKHRvdF9BQ0FD
SEVTLCB1X2ludCkgLyB0b3RhbFZBTCh0b3RfQ0FDSEVTLCB1X2ludCkpOw0KLSAgICBQUklOVF9s
aW5lKCIgJS0zNXM6ICUuMmZLIC8gJS4yZksgKCUuMWYlJSlcbiINCisgICAgUFJJTlRfbGluZSgi
ICUtMzVzOiAlcyAvICINCiAgICAgICAgICAgICAgICAsIC8qIHhnZXR0ZXh0Om5vLWMtZm9ybWF0
ICovDQogICAgICAgICAgICAgICAgICBfKCJBY3RpdmUgLyBUb3RhbCBTaXplICglIHVzZWQpIikN
Ci0gICAgICAgICAgICAgICAsIHRvdGFsVkFMKHRvdF9BQ1RJVkUsIHVsX2ludCkgLyAxMDI0LjAN
Ci0gICAgICAgICAgICAgICAsIHRvdGFsVkFMKHRvdF9UT1RBTCwgIHVsX2ludCkgLyAxMDI0LjAN
CisgICAgICAgICAgICAgICAsIHNjYWxlX3NpemUodG90YWxWQUwodG90X0FDVElWRSwgdWxfaW50
KSAvIDEwMjQsIDAsIDAsIEh1bWFuKSk7DQorICAgIFBSSU5UX2xpbmUoIiVzICglLjFmJSUpXG4i
DQorICAgICAgICAgICAgICAgICAvKiB4Z2V0dGV4dDpuby1jLWZvcm1hdCAqLw0KKyAgICAgICAg
ICAgICAgICwgc2NhbGVfc2l6ZSh0b3RhbFZBTCh0b3RfVE9UQUwsICB1bF9pbnQpIC8gMTAyNCwg
MCwgMCwgSHVtYW4pDQogICAgICAgICAgICAgICAgLCAxMDAuMCAqIHRvdGFsVkFMKHRvdF9BQ1RJ
VkUsIHVsX2ludCkgLyB0b3RhbFZBTCh0b3RfVE9UQUwsIHVsX2ludCkpOw0KICAgICBQUklOVF9s
aW5lKCIgJS0zNXM6ICUuMmZLIC8gJS4yZksgLyAlLjJmS1xuXG4iDQogICAgICAgICAgICAgICAg
LCBfKCJNaW5pbXVtIC8gQXZlcmFnZSAvIE1heGltdW0gT2JqZWN0IikNCkBAIC0yNzksMTQgKzI5
MiwxNCBAQCBzdGF0aWMgdm9pZCBwcmludF9oZWFkaW5ncyAodm9pZCkNCiBzdGF0aWMgdm9pZCBw
cmludF9kZXRhaWxzIChzdHJ1Y3Qgc2xhYmluZm9fc3RhY2sgKnN0YWNrKQ0KIHsNCiAgI2RlZmlu
ZSBub2RlVkFMKGUsdCkgU0xBQklORk9fVkFMKGUsIHQsIHN0YWNrLCBTbGFiX2luZm8pDQotICAg
IFBSSU5UX2xpbmUoIiU2dSAlNnUgJTN1JSUgJTcuMmZLICU2dSAlOHUgJTlsdUsgJS0yM3NcbiIN
CisgICAgUFJJTlRfbGluZSgiJTZ1ICU2dSAlM3UlJSAlNy4yZksgJTZ1ICU4dSAlMTBzICUtMjNz
XG4iDQogICAgICAgICAsIG5vZGVWQUwobm9kX09CSlMsICB1X2ludCkNCiAgICAgICAgICwgbm9k
ZVZBTChub2RfQU9CSlMsIHVfaW50KQ0KICAgICAgICAgLCBub2RlVkFMKG5vZF9VU0UsICAgdV9p
bnQpDQogICAgICAgICAsIG5vZGVWQUwobm9kX09TSVpFLCB1X2ludCkgLyAxMDI0LjANCiAgICAg
ICAgICwgbm9kZVZBTChub2RfU0xBQlMsIHVfaW50KQ0KICAgICAgICAgLCBub2RlVkFMKG5vZF9P
UFMsICAgdV9pbnQpDQotICAgICAgICAsIG5vZGVWQUwobm9kX1NJWkUsICB1bF9pbnQpIC8gMTAy
NA0KKyAgICAgICAgLCBzY2FsZV9zaXplKG5vZGVWQUwobm9kX1NJWkUsICB1bF9pbnQpIC8gMTAy
NCwgMCwgMCwgSHVtYW4pDQogICAgICAgICAsIG5vZGVWQUwobm9kX05BTUUsICBzdHIpKTsNCiAN
CiAgICAgcmV0dXJuOw0KLS0gDQoyLjQyLjANCg0K

--b1_ZkAstugVJ3s6NAeEF4w7NWuH6ZhVuARqEfX7kENG8--