From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH RFC 44/44] misc debugging Date: Thu, 4 Jan 2018 20:22:09 +0000 Message-ID: <1515097329-31902-45-git-send-email-andrew.cooper3@citrix.com> References: <1515097329-31902-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1515097329-31902-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org S2V5aGFuZGxlcnMgZm9yIHRoZSBmb2xsb3dpbmc6CiAnMScgLSBXYWxrIGlkbGVfcGdfdGFibGVb XQogJzInIC0gV2FsayBlYWNoIHBlcmNwdV9tYXBwaW5ncwogJzMnIC0gRHVtcCBQVCBzaGFkb3cg c3RhdHMKLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3NhdmUuYyAgICAgICAgICAgIHwgICA0IC0KIHhl bi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgICAgICAgICAgfCAgIDUgKy0KIHhlbi9hcmNoL3g4Ni9w di9wdC1zaGFkb3cuYyAgICAgICAgfCAgMTkgKysrKwogeGVuL2FyY2gveDg2L3RyYXBzLmMgICAg ICAgICAgICAgICB8IDE5OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4 ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgICAgICAgICAgIHwgICA2ICsrCiB4ZW4vaW5jbHVkZS9h c20teDg2L3B2L3B0LXNoYWRvdy5oIHwgIDE3ICsrKysKIDYgZmlsZXMgY2hhbmdlZCwgMjQ0IGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2 bS9zYXZlLmMgYi94ZW4vYXJjaC94ODYvaHZtL3NhdmUuYwppbmRleCA4OTg0YTIzLi5mYmRhZTA1 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3NhdmUuYworKysgYi94ZW4vYXJjaC94ODYv aHZtL3NhdmUuYwpAQCAtMjIzLDggKzIyMyw2IEBAIGludCBodm1fc2F2ZShzdHJ1Y3QgZG9tYWlu ICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICAgICAgaGFuZGxlciA9IGh2bV9zcl9o YW5kbGVyc1tpXS5zYXZlOwogICAgICAgICBpZiAoIGhhbmRsZXIgIT0gTlVMTCApCiAgICAgICAg IHsKLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPICJIVk0lZCBzYXZlOiAlc1xuIiwK LSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGh2bV9zcl9oYW5kbGVyc1tpXS5uYW1l KTsKICAgICAgICAgICAgIGlmICggaGFuZGxlcihkLCBoKSAhPSAwICkKICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSCkBAIC0yOTcsOCArMjk1LDYgQEAg aW50IGh2bV9sb2FkKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQog ICAgICAgICB9CiAKICAgICAgICAgLyogTG9hZCB0aGUgZW50cnkgKi8KLSAgICAgICAgcHJpbnRr KFhFTkxPR19HX0lORk8gIkhWTSVkIHJlc3RvcmU6ICVzICUiUFJJdTE2IlxuIiwgZC0+ZG9tYWlu X2lkLAotICAgICAgICAgICAgICAgaHZtX3NyX2hhbmRsZXJzW2Rlc2MtPnR5cGVjb2RlXS5uYW1l LCBkZXNjLT5pbnN0YW5jZSk7CiAgICAgICAgIGlmICggaGFuZGxlcihkLCBoKSAhPSAwICkKICAg ICAgICAgewogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiSFZNJWQgcmVzdG9yZTog ZmFpbGVkIHRvIGxvYWQgZW50cnkgJXUvJXVcbiIsCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv bW0vcDJtLWVwdC5jIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwppbmRleCBiNDk5NmNlLi40 MTY3ZDI5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCisrKyBiL3hlbi9h cmNoL3g4Ni9tbS9wMm0tZXB0LmMKQEAgLTEyODUsNyArMTI4NSw3IEBAIHZvaWQgZXB0X3AybV91 bmluaXQoc3RydWN0IHAybV9kb21haW4gKnAybSkKICAgICBmcmVlX2NwdW1hc2tfdmFyKGVwdC0+ aW52YWxpZGF0ZSk7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICptZW1vcnlfdHlwZV90b19zdHIo dW5zaWduZWQgaW50IHgpCitjb25zdCBjaGFyICptZW1vcnlfdHlwZV90b19zdHIodW5zaWduZWQg aW50IHgpCiB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIgbWVtb3J5X3R5cGVzWzhdWzNdID0gewog ICAgICAgICBbTVRSUl9UWVBFX1VOQ0FDSEFCTEVdICAgICA9ICJVQyIsCkBAIC0xMjkzLDcgKzEy OTMsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqbWVtb3J5X3R5cGVfdG9fc3RyKHVuc2lnbmVkIGlu dCB4KQogICAgICAgICBbTVRSUl9UWVBFX1dSVEhST1VHSF0gICAgICA9ICJXVCIsCiAgICAgICAg IFtNVFJSX1RZUEVfV1JQUk9UXSAgICAgICAgID0gIldQIiwKICAgICAgICAgW01UUlJfVFlQRV9X UkJBQ0tdICAgICAgICAgPSAiV0IiLAotICAgICAgICBbTVRSUl9OVU1fVFlQRVNdICAgICAgICAg ICA9ICI/PyIKKyAgICAgICAgW1BBVF9UWVBFX1VDX01JTlVTXSAgICAgICAgPSAiVS0iLAorICAg ICAgICAvKiBbTVRSUl9OVU1fVFlQRVNdICAgICAgICAgICA9ICI/PyIsICovCiAgICAgfTsKIAog ICAgIEFTU0VSVCh4IDwgQVJSQVlfU0laRShtZW1vcnlfdHlwZXMpKTsKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9wdi9wdC1zaGFkb3cuYyBiL3hlbi9hcmNoL3g4Ni9wdi9wdC1zaGFkb3cuYwpp bmRleCBkNTUwYWUxLi5mNGM1MjJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvcHQtc2hh ZG93LmMKKysrIGIveGVuL2FyY2gveDg2L3B2L3B0LXNoYWRvdy5jCkBAIC0yOCw2ICsyOCw4IEBA CiAjdW5kZWYgcGFnZV90b19tZm4KICNkZWZpbmUgcGFnZV90b19tZm4ocGcpIF9tZm4oX19wYWdl X3RvX21mbihwZykpCiAKK3N0cnVjdCBwdHN0YXRzIHB0c3RhdHM7CisKIC8qCiAgKiBUbyB1c2Ug cGVyY3B1IGxpbmVhciByYW5nZXMsIHdlIHJlcXVpcmUgdGhhdCBubyB0d28gcGNwdXMgaGF2ZSAl Y3IzCiAgKiBwb2ludGluZyBhdCB0aGUgc2FtZSBMNCBwYWdldGFibGUgYXQgdGhlIHNhbWUgdGlt ZS4KQEAgLTIyNCw3ICsyMjYsMTAgQEAgdW5zaWduZWQgbG9uZyBwdF9tYXliZV9zaGFkb3coc3Ry dWN0IHZjcHUgKnYpCiAKICAgICAvKiBObyBzaGFkb3dpbmcgbmVjZXNzYXJ5PyBSdW4gb24gdGhl IGludGVuZGVkIHBhZ2V0YWJsZS4gKi8KICAgICBpZiAoICFwdF9uZWVkX3NoYWRvdyh2LT5kb21h aW4pICkKKyAgICB7CisgICAgICAgIHB0c3RhdCgmcHRzdGF0cy5zeW5jX25vbmUpOwogICAgICAg ICByZXR1cm4gbmV3X2NyMzsKKyAgICB9CiAKICAgICBwdHNoLT5kb21haW4gPSB2LT5kb21haW47 CiAKQEAgLTI1OSw2ICsyNjQsMTEgQEAgdW5zaWduZWQgbG9uZyBwdF9tYXliZV9zaGFkb3coc3Ry dWN0IHZjcHUgKnYpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgbG9jYWxfaXJx X3Jlc3RvcmUoZmxhZ3MpOworCisgICAgICAgIGlmICggY2FjaGVfaWR4ICkKKyAgICAgICAgICAg IHB0c3RhdCgmcHRzdGF0cy5zeW5jX3NodWZmbGUpOworICAgICAgICBlbHNlCisgICAgICAgICAg ICBwdHN0YXQoJnB0c3RhdHMuc3luY19ub3NodWZmbGUpOwogICAgIH0KICAgICBlbHNlCiAgICAg ewpAQCAtMjkzLDYgKzMwMyw3IEBAIHVuc2lnbmVkIGxvbmcgcHRfbWF5YmVfc2hhZG93KHN0cnVj dCB2Y3B1ICp2KQogICAgICAgICAgICAgICAgc2l6ZW9mKCpsNHQpICogKEw0X1BBR0VUQUJMRV9F TlRSSUVTIC0gKHNsb3QgKyAxKSkpOwogCiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKHZjcHVf bDR0KTsKKyAgICAgICAgcHRzdGF0KCZwdHN0YXRzLnN5bmNfZnVsbCk7CiAgICAgfQogCiAgICAg QVNTRVJUKHB0c2gtPmNhY2hlWzBdLmNyM19tZm4gPT0gKG5ld19jcjMgPj4gUEFHRV9TSElGVCkp OwpAQCAtMzIwLDEzICszMzEsMTkgQEAgc3RhdGljIHZvaWQgX3B0X3NoYWRvd19pcGkodm9pZCAq YXJnKQogCiAgICAgLyogTm8gbG9uZ2VyIHNoYWRvd2luZyBzdGF0ZSBmcm9tIHRoaXMgZG9tYWlu PyAgTm90aGluZyB0byBkby4gKi8KICAgICBpZiAoIGluZm8tPmQgIT0gcHRzaC0+ZG9tYWluICkK KyAgICB7CisgICAgICAgIHB0c3RhdCgmcHRzdGF0cy5pcGlfZG9tX21pc3MpOwogICAgICAgICBy ZXR1cm47CisgICAgfQogCiAgICAgZW50ID0gcHRfY2FjaGVfbG9va3VwKHB0c2gsIHBhZ2VfdG9f bWFkZHIoaW5mby0+cGcpKTsKIAogICAgIC8qIE5vdCBzaGFkb3dpbmcgdGhpcyBmcmFtZT8gIE5v dGhpbmcgdG8gZG8uICovCiAgICAgaWYgKCBlbnQgPT0gTlVMTCApCisgICAgeworICAgICAgICBw dHN0YXQoJnB0c3RhdHMuaXBpX2NhY2hlX21pc3MpOwogICAgICAgICByZXR1cm47CisgICAgfQog CiAgICAgc3dpdGNoICggaW5mby0+b3AgKQogICAgIHsKQEAgLTM0MCw2ICszNTcsNyBAQCBzdGF0 aWMgdm9pZCBfcHRfc2hhZG93X2lwaSh2b2lkICphcmcpCiAgICAgICAgIGw0dFtpbmZvLT5zbG90 XSA9IHZjcHVfbDR0W2luZm8tPnNsb3RdOwogCiAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKHZj cHVfbDR0KTsKKyAgICAgICAgcHRzdGF0KCZwdHN0YXRzLmlwaV93cml0ZSk7CiAgICAgICAgIGJy ZWFrOwogCiAgICAgY2FzZSBQVFNIX0lQSV9JTlZMUEc6CkBAIC0zNTcsNiArMzc1LDcgQEAgc3Rh dGljIHZvaWQgX3B0X3NoYWRvd19pcGkodm9pZCAqYXJnKQogICAgICAgICBjYXNlIDI6IHB0c2gt PmNhY2hlWzJdID0gcHRzaC0+Y2FjaGVbM107CiAgICAgICAgIGNhc2UgMzogcHRzaC0+Y2FjaGVb M10gPSAocHRfY2FjaGVfZW50cnlfdCl7IHNoYWRvd19pZHggfTsKICAgICAgICAgfQorICAgICAg ICBwdHN0YXQoJnB0c3RhdHMuaXBpX2ludmxwZyk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVm YXVsdDoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIveGVuL2FyY2gveDg2L3Ry YXBzLmMKaW5kZXggNmIwMmE1Zi4uMDk1YmY5NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Ry YXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKQEAgLTk1NSw2ICs5NTUsNyBAQCB2b2lk IGNwdWlkX2h5cGVydmlzb3JfbGVhdmVzKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBs ZWFmLAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgcmVzLT5iID0gZmxzbChnZXRfdXBw ZXJfbWZuX2JvdW5kKCkpICsgUEFHRV9TSElGVDsKKyAgICAgICAgcmVzLT5jID0gdi0+dmNwdV9p ZDsKICAgICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgpAQCAtMjA3NCw2ICsyMDc1LDIwNCBA QCB2b2lkIGFzbV9kb21haW5fY3Jhc2hfc3luY2hyb25vdXModW5zaWduZWQgbG9uZyBhZGRyKQog ICAgIF9fZG9tYWluX2NyYXNoX3N5bmNocm9ub3VzKCk7CiB9CiAKKyNpbmNsdWRlIDx4ZW4va2V5 aGFuZGxlci5oPgorI2luY2x1ZGUgPGFzbS9wdi9wdC1zaGFkb3cuaD4KKworY29uc3QgY2hhciAq bWVtb3J5X3R5cGVfdG9fc3RyKHVuc2lnbmVkIGludCB4KTsKK3N0YXRpYyB2b2lkIGRlY29kZV9p bnRwdGUodW5zaWduZWQgaW50IGxldmVsLCB1bnNpZ25lZCBpbnQgc2xvdCwgaW50cHRlX3QgcHRl KQoreworICAgIHVuc2lnbmVkIGludCBwYXRfaWR4ID0gKChwdGUgPj4gMykgJiAzKSB8CisgICAg ICAgICgocHRlID4+ICgobGV2ZWwgPiAxICYmIChwdGUgJiBfUEFHRV9QU0UpKSA/IDEwIDogNSkp ICYgNCk7CisKKyAgICB1bnNpZ25lZCBpbnQgbWVtX3R5cGUgPSAoaG9zdF9wYXQgPj4gKHBhdF9p ZHggPDwgMykpICYgMHhmZjsKKworICAgIHByaW50aygiJSpzTCV1WyUwM3VdICUiUFJJcHRlIiAl KnMlcyAlcyVzJXMlcyVzJXNcbiIsCisgICAgICAgICAgICg0IC0gbGV2ZWwpICogMiwgIiIsCisg ICAgICAgICAgIGxldmVsLCBzbG90LCBwdGUsCisgICAgICAgICAgIChsZXZlbCAtIDEpICogMiwg IiIsCisKKyAgICAgICAgICAgbWVtb3J5X3R5cGVfdG9fc3RyKG1lbV90eXBlKSwKKworICAgICAg ICAgICBwdGUgJiAweDgwMDAwMDAwMDAwMDAwMDBVTEwgICAgPyAiIE54IiA6ICIiLAorICAgICAg ICAgICBwdGUgJiBfUEFHRV9HTE9CQUwgICAgICAgICAgICAgPyAiIEciICA6ICIiLAorICAgICAg ICAgICAobGV2ZWwgPiAxICYmIHB0ZSAmIF9QQUdFX1BTRSkgPyAiICsiICA6ICIiLAorICAgICAg ICAgICBwdGUgJiBfUEFHRV9VU0VSICAgICAgICAgICAgICAgPyAiIFUiICA6ICIiLAorICAgICAg ICAgICBwdGUgJiBfUEFHRV9SVyAgICAgICAgICAgICAgICAgPyAiIFciICA6ICIiLAorICAgICAg ICAgICBwdGUgJiBfUEFHRV9QUkVTRU5UICAgICAgICAgICAgPyAiIFAiICA6ICIiKTsKK30KKwor c3RhdGljIGJvb2wgaXNfcG9pc29uKGludHB0ZV90IHB0ZSkKK3sKKyAgICByZXR1cm4gKHB0ZSAm IH4weGZmZjAwMDApID09IDB4ODAwZjg2ODYwMDAwMDA2MzsKK30KKworc3RhdGljIHZvaWQgZHVt cF9sM3QobDNfcGdlbnRyeV90ICpsM3QsIGJvb2wgZGVjZW5kKQoreworICAgIHVuc2lnbmVkIGlu dCBsM2ksIGwyaSwgbDFpOworICAgIGwyX3BnZW50cnlfdCAqbDI7CisgICAgbDFfcGdlbnRyeV90 ICpsMTsKKworICAgIGZvciAoIGwzaSA9IDA7IGwzaSA8IDUxMjsgKytsM2kgKQorICAgIHsKKyAg ICAgICAgaWYgKCAhKGwzdFtsM2ldLmwzICYgX1BBR0VfUFJFU0VOVCkgKQorICAgICAgICAgICAg Y29udGludWU7CisKKyAgICAgICAgZGVjb2RlX2ludHB0ZSgzLCBsM2ksIGwzdFtsM2ldLmwzKTsK KworICAgICAgICBpZiAoIGlzX3BvaXNvbihsM3RbbDNpXS5sMykgKQorICAgICAgICAgICAgY29u dGludWU7CisKKyAgICAgICAgaWYgKCBsM3RbbDNpXS5sMyAmIF9QQUdFX1BTRSApCisgICAgICAg ICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoICFkZWNlbmQgKQorICAgICAgICAgICAgY29u dGludWU7CisKKyAgICAgICAgbDIgPSBsM2VfdG9fbDJlKGwzdFtsM2ldKTsKKyAgICAgICAgZm9y ICggbDJpID0gMDsgbDJpIDwgNTEyOyArK2wyaSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm ICggIShsMltsMmldLmwyICYgX1BBR0VfUFJFU0VOVCkgKQorICAgICAgICAgICAgICAgIGNvbnRp bnVlOworCisgICAgICAgICAgICBkZWNvZGVfaW50cHRlKDIsIGwyaSwgbDJbbDJpXS5sMik7CisK KyAgICAgICAgICAgIGlmICggaXNfcG9pc29uKGwyW2wyaV0ubDIpICkKKyAgICAgICAgICAgICAg ICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKCBsMltsMmldLmwyICYgX1BBR0VfUFNFICkK KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgbDEgPSBsMmVfdG9fbDFl KGwyW2wyaV0pOworICAgICAgICAgICAgZm9yICggbDFpID0gMDsgbDFpIDwgNTEyOyArK2wxaSAp CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCAhKGwxW2wxaV0ubDEgJiBfUEFH RV9QUkVTRU5UKSApCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAg ICAgICAgZGVjb2RlX2ludHB0ZSgxLCBsMWksIGwxW2wxaV0ubDEpOworICAgICAgICAgICAgfQor CisgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMoKTsKKyAgICAgICAgfQorCisg ICAgICAgIHByb2Nlc3NfcGVuZGluZ19zb2Z0aXJxcygpOworICAgIH0KKworfQorCitzdGF0aWMg dm9pZCBkdW1wX2w0dChsNF9wZ2VudHJ5X3QgKmw0dCwgYm9vbCBkZWNlbmQpCit7CisgICAgdW5z aWduZWQgaW50IGw0aTsKKworICAgIGZvciAoIGw0aSA9IDA7IGw0aSA8IDUxMjsgKytsNGkgKQor ICAgIHsKKyAgICAgICAgaWYgKCAhKGw0dFtsNGldLmw0ICYgX1BBR0VfUFJFU0VOVCkgKQorICAg ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZGVjb2RlX2ludHB0ZSg0LCBsNGksIGw0dFts NGldLmw0KTsKKworICAgICAgICBpZiAoIGlzX3BvaXNvbihsNHRbbDRpXS5sNCkgKQorICAgICAg ICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCBkZWNlbmQgJiYKKyAgICAgICAgICAgICBs NGkgIT0gbDRfdGFibGVfb2Zmc2V0KExJTkVBUl9QVF9WSVJUX1NUQVJUKSAmJgorICAgICAgICAg ICAgIGw0aSAhPSBsNF90YWJsZV9vZmZzZXQoU0hfTElORUFSX1BUX1ZJUlRfU1RBUlQpICkKKyAg ICAgICAgICAgIGR1bXBfbDN0KGw0ZV90b19sM2UobDR0W2w0aV0pLCB0cnVlKTsKKyAgICB9Cit9 CisKK3N0YXRpYyB2b2lkIGRvX2V4dHJlbWVfZGVidWcodW5zaWduZWQgY2hhciBrZXkpCit7Cisg ICAgdW5zaWduZWQgaW50IGNwdTsKKworICAgIHByaW50aygiJyVjJyBwcmVzc2VkIC0+IEV4dHJl bWUgZGVidWdnaW5nIGluIHByb2dyZXNzLi4uXG4iLCBrZXkpOworCisgICAgd2F0Y2hkb2dfZGlz YWJsZSgpOworICAgIGNvbnNvbGVfc3RhcnRfbG9nX2V2ZXJ5dGhpbmcoKTsKKworICAgIHN3aXRj aCAoIGtleSApCisgICAgeworICAgIGNhc2UgJzEnOgorICAgICAgICBkdW1wX2w0dChpZGxlX3Bn X3RhYmxlLCB0cnVlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlICcyJzoKKyAgICAgICAg cHJpbnRrKCJpZGxlX3BnX3RhYmxlW11cbiIpOworICAgICAgICBkdW1wX2w0dChpZGxlX3BnX3Rh YmxlLCBmYWxzZSk7CisKKyAgICAgICAgZm9yX2VhY2hfb25saW5lX2NwdSAoIGNwdSApCisgICAg ICAgIHsKKyAgICAgICAgICAgIHBhZGRyX3QgbDQgPSBwZXJfY3B1KHBlcmNwdV9pZGxlX3B0LCBj cHUpOworICAgICAgICAgICAgbDRfcGdlbnRyeV90IG1hcHBpbmdzID0gcGVyX2NwdShwZXJjcHVf bWFwcGluZ3MsIGNwdSk7CisgICAgICAgICAgICBsNF9wZ2VudHJ5X3QgKmw0dDsKKyAgICAgICAg ICAgIGwzX3BnZW50cnlfdCAqbDN0OworCisgICAgICAgICAgICBwcmludGsoIkNQVSAjJXUgcGVy LXBjcHUgbDQgJSJQUklwYWRkciIsIG1hcHBpbmdzICUiUFJJcHRlIlxuIiwKKyAgICAgICAgICAg ICAgICAgICBjcHUsIGw0LCBtYXBwaW5ncy5sNCk7CisKKyAgICAgICAgICAgIGlmICggIWw0ICkK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwcmludGsoIiAgQkFEIGw0XG4iKTsKKyAg ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgg IW1hcHBpbmdzLmw0ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwcmludGsoIiAg QmFkIG1hcHBpbmdzXG4iKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg IH0KKworICAgICAgICAgICAgcHJpbnRrKCJEdW1waW5nIEw0OlxuIik7CisgICAgICAgICAgICBs NHQgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihwYWRkcl90b19wZm4obDQpKSk7CisgICAgICAgICAg ICBkdW1wX2w0dChsNHQsIGZhbHNlKTsKKyAgICAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKGw0 dCk7CisKKyAgICAgICAgICAgIHByaW50aygiRHVtcGluZyBMMzpcbiIpOworICAgICAgICAgICAg bDN0ID0gbWFwX2RvbWFpbl9wYWdlKGw0ZV9nZXRfbWZuKG1hcHBpbmdzKSk7CisgICAgICAgICAg ICBkdW1wX2wzdChsM3QsIHRydWUpOworICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDN0 KTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgJzMnOgorICAgICAgICBw cmludGsoInB0X3NoYWRvdygpIHN0YXRzOlxuIgorICAgICAgICAgICAgICAgIiAgc3luY19ub25l OiAgICAgICUyMGx1XG4iCisgICAgICAgICAgICAgICAiICBzeW5jX25vc2h1ZmZsZTogJTIwbHVc biIKKyAgICAgICAgICAgICAgICIgIHN5bmNfc2h1ZmZsZTogICAlMjBsdVxuIgorICAgICAgICAg ICAgICAgIiAgc3luY19mdWxsOiAgICAgICUyMGx1XG4iCisgICAgICAgICAgICAgICAiICBpcGlf ZG9tX21pc3M6ICAgJTIwbHVcbiIKKyAgICAgICAgICAgICAgICIgIGlwaV9jYWNoZV9taXNzOiAl MjBsdVxuIgorICAgICAgICAgICAgICAgIiAgaXBpX2lwaV93cml0ZTogICUyMGx1XG4iCisgICAg ICAgICAgICAgICAiICBpcGlfaXBpX2ludmxwZzogJTIwbHVcbiIsCisgICAgICAgICAgICAgICBw dHN0YXRzLnN5bmNfbm9uZSwgcHRzdGF0cy5zeW5jX25vc2h1ZmZsZSwKKyAgICAgICAgICAgICAg IHB0c3RhdHMuc3luY19zaHVmZmxlLCBwdHN0YXRzLnN5bmNfZnVsbCwKKyAgICAgICAgICAgICAg IHB0c3RhdHMuaXBpX2RvbV9taXNzLCBwdHN0YXRzLmlwaV9jYWNoZV9taXNzLAorICAgICAgICAg ICAgICAgcHRzdGF0cy5pcGlfd3JpdGUsIHB0c3RhdHMuaXBpX2ludmxwZyk7CisgICAgICAgIGJy ZWFrOworICAgIH0KKworICAgIGNvbnNvbGVfZW5kX2xvZ19ldmVyeXRoaW5nKCk7CisgICAgd2F0 Y2hkb2dfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdGltZXIgc3RhdHM7CitzdGF0aWMg dm9pZCBzdGF0c19mbih2b2lkICp1bnVzZWQpCit7CisgICAgZG9fZXh0cmVtZV9kZWJ1ZygnMycp OworICAgIHNldF90aW1lcigmc3RhdHMsIE5PVygpICsgU0VDT05EUygxMCkpOworfQorCitzdGF0 aWMgaW50IF9faW5pdCBleHRyZW1lX2RlYnVnX2tleWhhbmRsZXJfaW5pdCh2b2lkKQoreworICAg IHJlZ2lzdGVyX2tleWhhbmRsZXIoJzEnLCAmZG9fZXh0cmVtZV9kZWJ1ZywgIkV4dHJlbWUgZGVi dWdnaW5nIDEiLCAwKTsKKyAgICByZWdpc3Rlcl9rZXloYW5kbGVyKCcyJywgJmRvX2V4dHJlbWVf ZGVidWcsICJFeHRyZW1lIGRlYnVnZ2luZyAyIiwgMCk7CisgICAgcmVnaXN0ZXJfa2V5aGFuZGxl cignMycsICZkb19leHRyZW1lX2RlYnVnLCAiRXh0cmVtZSBkZWJ1Z2dpbmcgMyIsIDApOworCisg ICAgaW5pdF90aW1lcigmc3RhdHMsIHN0YXRzX2ZuLCBOVUxMLCAwKTsKKyAgICAvKiBzZXRfdGlt ZXIoJnN0YXRzLCBOT1coKSArIFNFQ09ORFMoMTApKTsgKi8KKworICAgIHJldHVybiAwOworfQor X19pbml0Y2FsbChleHRyZW1lX2RlYnVnX2tleWhhbmRsZXJfaW5pdCk7CisKIC8qCiAgKiBMb2Nh bCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0 L21tLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKaW5kZXggYWFlNzIxYi4uYTNlODFhYyAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94 ODZfNjQvbW0uYwpAQCAtODc0LDYgKzg3NCwxMiBAQCB2b2lkIF9faW5pdCBzdWJhcmNoX2luaXRf bWVtb3J5KHZvaWQpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvKiBQb2lzb24gc3BlY2lmaWMg ZW50cmllcy4gKi8KKyAgICBpZGxlX3BnX3RhYmxlWzI3MV0ubDQgPSAweDgwMGY4Njg2MDI3MTAw NjM7CisgICAgaWRsZV9wZ190YWJsZVsyNzJdLmw0ID0gMHg4MDBmODY4NjAyNzIwMDYzOworICAg IGlkbGVfcGdfdGFibGVbNTEwXS5sNCA9IDB4ODAwZjg2ODYwNTEwMDA2MzsKKyAgICBpZGxlX3Bn X3RhYmxlWzUxMV0ubDQgPSAweDgwMGY4Njg2MDUxMTAwNjM7CisKICAgICAvKiBDcmVhdGUgYW4g TDMgdGFibGUgZm9yIHRoZSBNTUNGRyByZWdpb24sIG9yIHJlbWFwIGl0IE5YLiAqLwogICAgIHBs NGUgPSAmaWRsZV9wZ190YWJsZVtsNF90YWJsZV9vZmZzZXQoUENJX01DRkdfVklSVF9TVEFSVCld OwogICAgIGlmICggIShsNGVfZ2V0X2ZsYWdzKCpwbDRlKSAmIF9QQUdFX1BSRVNFTlQpICkKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYvcHQtc2hhZG93LmggYi94ZW4vaW5jbHVk ZS9hc20teDg2L3B2L3B0LXNoYWRvdy5oCmluZGV4IGQ1NTc2ZjQuLjM5OWViZWIgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYvcHQtc2hhZG93LmgKKysrIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9wdi9wdC1zaGFkb3cuaApAQCAtMjMsNiArMjMsMjMgQEAKIAogI2luY2x1ZGUgPHhl bi9zY2hlZC5oPgogCitleHRlcm4gc3RydWN0IHB0c3RhdHMgeworICAgIHVuc2lnbmVkIGxvbmcg c3luY19ub25lOworICAgIHVuc2lnbmVkIGxvbmcgc3luY19ub3NodWZmbGU7CisgICAgdW5zaWdu ZWQgbG9uZyBzeW5jX3NodWZmbGU7CisgICAgdW5zaWduZWQgbG9uZyBzeW5jX2Z1bGw7CisKKyAg ICB1bnNpZ25lZCBsb25nIGlwaV9kb21fbWlzczsKKyAgICB1bnNpZ25lZCBsb25nIGlwaV9jYWNo ZV9taXNzOworICAgIHVuc2lnbmVkIGxvbmcgaXBpX3dyaXRlOworICAgIHVuc2lnbmVkIGxvbmcg aXBpX2ludmxwZzsKK30gcHRzdGF0czsKKworc3RhdGljIGlubGluZSB2b2lkIHB0c3RhdCh1bnNp Z25lZCBsb25nICpzdGF0KQoreworICAgIGFzbSB2b2xhdGlsZSAoImxvY2s7IGFkZCAkMSwgJTAi IDogIittIiAoKnN0YXQpKTsKK30KKwogI2lmZGVmIENPTkZJR19QVgogCiAvKgotLSAKMi4xLjQK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs