From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Steve Dickson To: git-commits@fedoraproject.org Subject: [rpms/nfs-utils] rawhide: Updated to the latest RC release: nfs-utils-2-9-2-rc4 Date: Sun, 31 May 2026 12:23:20 GMT Message-ID: <178023020042.1.6044723889829551561.rpms-nfs-utils-1a9c20bc3cc9@fedoraproject.org> List-ID: X-Git-Repo: rpms/nfs-utils X-Git-Branch: rawhide X-Git-Rev: 1a9c20bc3cc9b8597cadddca241d4a310827fbd8 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvbmZzLXV0aWxzCiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAg ICAgICAgQ29tbWl0IDogMWE5YzIwYmMzY2M5Yjg1OTdjYWRkZGNhMjQxZDRhMzEwODI3ZmJkOAog ICAgICAgICAgICBBdXRob3IgOiBTdGV2ZSBEaWNrc29uIDxzdGV2ZWRAcmVkaGF0LmNvbT4KICAg ICAgICAgICAgRGF0ZSAgIDogMjAyNi0wNS0zMVQwODoyMjoxMS0wNDowMAogICAgICAgICAgICBT dGF0cyAgOiArMTE0Mi8tNzE2IGluIDMgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRw czovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL25mcy11dGlscy9jLzFhOWMyMGJjM2NjOWI4 NTk3Y2FkZGRjYTI0MWQ0YTMxMDgyN2ZiZDg/YnJhbmNoPXJhd2hpZGUKCiAgICAgICAgICAgIExv ZzoKICAgICAgICAgICAgVXBkYXRlZCB0byB0aGUgbGF0ZXN0IFJDIHJlbGVhc2U6IG5mcy11dGls cy0yLTktMi1yYzQKClNpZ25lZC1vZmYtYnk6IFN0ZXZlIERpY2tzb24gPHN0ZXZlZEByZWRoYXQu Y29tPgoKLS0tCmRpZmYgLS1naXQgYS9uZnMtdXRpbHMtMi45LjItcmMzLnBhdGNoIGIvbmZzLXV0 aWxzLTIuOS4yLXJjMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2UxZTAw NS4uMDAwMDAwMAotLS0gYS9uZnMtdXRpbHMtMi45LjItcmMzLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNzE0ICswLDAgQEAKLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUu YWMKLWluZGV4IDExNWM2MTFmLi44Y2EwNmZkNiAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwot KysrIGIvY29uZmlndXJlLmFjCi1AQCAtMjU2LDYgKzI1Niw4IEBAIFBLR19DSEVDS19NT0RVTEVT KExJQk5MMywgbGlibmwtMy4wID49IDMuMSkKLSBQS0dfQ0hFQ0tfTU9EVUxFUyhMSUJOTEdFTkwz LCBsaWJubC1nZW5sLTMuMCA+PSAzLjEpCi0gCi0gQUNfQ0hFQ0tfSEVBREVSUyhsaW51eC9uZnNk X25ldGxpbmsuaCkKLStBQ19ERUZJTkUoW0hBVkVfTkZTRF9ORVRMSU5LXSwgMSwKLSsJICBbRGVm aW5lIHRvIDEgaWYgbmZzZCBnZW5lcmljIG5ldGxpbmsgc3VwcG9ydCBpcyBhdmFpbGFibGVdKQot IAotICMgZW5zdXJlIHdlIGhhdmUgdGhlIGV4cGtleSBhdHRyaWJ1dGVzCi0gQUNfQ09NUElMRV9J RkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWyNpbmNsdWRlIDxsaW51eC9uZnNkX25ldGxpbmsuaD5d XSwKLWRpZmYgLS1naXQgYS9zdXBwb3J0L2V4cG9ydC9jYWNoZS5jIGIvc3VwcG9ydC9leHBvcnQv Y2FjaGUuYwotaW5kZXggMmYxMjhkN2QuLjY1MDA4ZjUxIDEwMDY0NAotLS0tIGEvc3VwcG9ydC9l eHBvcnQvY2FjaGUuYwotKysrIGIvc3VwcG9ydC9leHBvcnQvY2FjaGUuYwotQEAgLTQwLDcgKzQw LDcgQEAKLSAjaW5jbHVkZSA8bmV0bGluay9nZW5sL2N0cmwuaD4KLSAjaW5jbHVkZSA8bmV0bGlu ay9tc2cuaD4KLSAjaW5jbHVkZSA8bmV0bGluay9hdHRyLmg+Ci0tI2luY2x1ZGUgPGxpbnV4L25l dGxpbmsuaD4KLSsjaW5jbHVkZSAiY29tcGF0LmgiCi0gCi0gI2lmZGVmIFVTRV9TWVNURU1fTkZT RF9ORVRMSU5LX0gKLSAjaW5jbHVkZSA8bGludXgvbmZzZF9uZXRsaW5rLmg+Ci1kaWZmIC0tZ2l0 IGEvc3VwcG9ydC9leHBvcnQvY2FjaGVfZmx1c2guYyBiL3N1cHBvcnQvZXhwb3J0L2NhY2hlX2Zs dXNoLmMKLWluZGV4IGVkN2I5NjRmLi4yYTI0ZGVjNyAxMDA2NDQKLS0tLSBhL3N1cHBvcnQvZXhw b3J0L2NhY2hlX2ZsdXNoLmMKLSsrKyBiL3N1cHBvcnQvZXhwb3J0L2NhY2hlX2ZsdXNoLmMKLUBA IC0zOCw2ICszOCw4IEBAIGV4dGVybiBpbnQgbm9fbmV0bGluazsKLSAjaW5jbHVkZSAic3VucnBj X25ldGxpbmsuaCIKLSAjZW5kaWYKLSAKLSsjaW5jbHVkZSAiY29tcGF0LmgiCi0rCi0gc3RhdGlj IGludCBubF9zZW5kX2ZsdXNoKHN0cnVjdCBubF9zb2NrICpzb2NrLCBpbnQgZmFtaWx5LCBpbnQg Y21kKQotIHsKLSAJc3RydWN0IG5sX21zZyAqbXNnOwotZGlmZiAtLWdpdCBhL3N1cHBvcnQvZXhw b3J0L3h0YWIuYyBiL3N1cHBvcnQvZXhwb3J0L3h0YWIuYwotaW5kZXggMjgyZjE1YmMuLjBhOTY2 MDUxIDEwMDY0NAotLS0tIGEvc3VwcG9ydC9leHBvcnQveHRhYi5jCi0rKysgYi9zdXBwb3J0L2V4 cG9ydC94dGFiLmMKLUBAIC0zMywxMSArMzMsOCBAQCBpbnQgdjRyb290X25lZWRlZDsKLSBzdGF0 aWMgdm9pZCBjb25kX3JlbmFtZShjaGFyICpuZXdmaWxlLCBjaGFyICpvbGRmaWxlKTsKLSAKLSBz dGF0aWMgaW50Ci0teHRhYl9yZWFkKGNoYXIgKnh0YWIsIGNoYXIgKmxvY2tmbiwgaW50IGlzX2V4 cG9ydCkKLSt4dGFiX3JlYWQoY2hhciAqeHRhYiwgY2hhciAqbG9ja2ZuKQotIHsKLS0gICAgLyog aXNfZXhwb3J0ID09IDAgID0+IHJlYWRpbmcgL3Byb2MvZnMvbmZzL2V4cG9ydHMgLSB3ZSBrbm93 IHRoZXNlIHRoaW5ncyBhcmUgZXhwb3J0ZWQgdG8ga2VybmVsCi0tICAgICAqIGlzX2V4cG9ydCA9 PSAxICA9PiByZWFkaW5nIC92YXIvbGliL25mcy9ldGFiIC0gdGhlc2UgdGhpbmdzIGFyZSBhbGxv d2VkIHRvIGJlIGV4cG9ydGVkCi0tICAgICAqLwotIAlzdHJ1Y3QgZXhwb3J0ZW50CSp4cDsKLSAJ bmZzX2V4cG9ydAkJKmV4cDsKLSAJaW50CQkJbG9ja2lkOwotQEAgLTQ1LDExICs0MiwxMCBAQCB4 dGFiX3JlYWQoY2hhciAqeHRhYiwgY2hhciAqbG9ja2ZuLCBpbnQgaXNfZXhwb3J0KQotIAlpZiAo KGxvY2tpZCA9IHhmbG9jayhsb2NrZm4sICJyIikpIDwgMCkKLSAJCXJldHVybiAwOwotIAlzZXRl eHBvcnRlbnQoeHRhYiwgInIiKTsKLS0JaWYgKGlzX2V4cG9ydCA9PSAxKQotLQkJdjRyb290X25l ZWRlZCA9IDE7Ci0tCXdoaWxlICgoeHAgPSBnZXRleHBvcnRlbnQoaXNfZXhwb3J0PT0wKSkgIT0g TlVMTCkgewotLQkJaWYgKCEoZXhwID0gZXhwb3J0X2xvb2t1cCh4cC0+ZV9ob3N0bmFtZSwgeHAt PmVfcGF0aCwgaXNfZXhwb3J0ICE9IDEpKSAmJgotLQkJICAgICEoZXhwID0gZXhwb3J0X2NyZWF0 ZSh4cCwgaXNfZXhwb3J0IT0xKSkpIHsKLSsJdjRyb290X25lZWRlZCA9IDE7Ci0rCXdoaWxlICgo eHAgPSBnZXRleHBvcnRlbnQoMCkpICE9IE5VTEwpIHsKLSsJCWlmICghKGV4cCA9IGV4cG9ydF9s b29rdXAoeHAtPmVfaG9zdG5hbWUsIHhwLT5lX3BhdGgsIDApKSAmJgotKwkJICAgICEoZXhwID0g ZXhwb3J0X2NyZWF0ZSh4cCwgMCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYoeHAt PmVfaG9zdG5hbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZSh4cC0+ZV9o b3N0bmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhwLT5lX2hvc3RuYW1lPU5V TEw7Ci1AQCAtNjAsMTcgKzU2LDEwIEBAIHh0YWJfcmVhZChjaGFyICp4dGFiLCBjaGFyICpsb2Nr Zm4sIGludCBpc19leHBvcnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQotIAkJCWNvbnRp bnVlOwotIAkJfQotLQkJc3dpdGNoIChpc19leHBvcnQpIHsKLS0JCWNhc2UgMDoKLS0JCQlleHAt Pm1fZXhwb3J0ZWQgPSAxOwotLQkJCWJyZWFrOwotLQkJY2FzZSAxOgotLQkJCWV4cC0+bV94dGFi ZW50ID0gMTsKLS0JCQlleHAtPm1fbWF5ZXhwb3J0ID0gMTsKLS0JCQlpZiAoKHhwLT5lX2ZsYWdz ICYgTkZTRVhQX0ZTSUQpICYmIHhwLT5lX2ZzaWQgPT0gMCkKLS0JCQkJdjRyb290X25lZWRlZCA9 IDA7Ci0tCQkJYnJlYWs7Ci0tCQl9ICAKLSsJCWV4cC0+bV94dGFiZW50ID0gMTsKLSsJCWV4cC0+ bV9tYXlleHBvcnQgPSAxOwotKwkJaWYgKCh4cC0+ZV9mbGFncyAmIE5GU0VYUF9GU0lEKSAmJiB4 cC0+ZV9mc2lkID09IDApCi0rCQkJdjRyb290X25lZWRlZCA9IDA7Ci0gICAgICAgICAgICAgICAg IGlmKHhwLT5lX2hvc3RuYW1lKSB7Ci0gICAgICAgICAgICAgICAgICAgICBmcmVlKHhwLT5lX2hv c3RuYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgIHhwLT5lX2hvc3RuYW1lPU5VTEw7Ci1AQCAt OTAsNyArNzksNyBAQCB4dGFiX3JlYWQoY2hhciAqeHRhYiwgY2hhciAqbG9ja2ZuLCBpbnQgaXNf ZXhwb3J0KQotIGludAotIHh0YWJfZXhwb3J0X3JlYWQodm9pZCkKLSB7Ci0tCXJldHVybiB4dGFi X3JlYWQoZXRhYi5zdGF0ZWZuLCBldGFiLmxvY2tmbiwgMSk7Ci0rCXJldHVybiB4dGFiX3JlYWQo ZXRhYi5zdGF0ZWZuLCBldGFiLmxvY2tmbik7Ci0gfQotIAotIC8qCi1AQCAtMTAwLDcgKzg5LDcg QEAgeHRhYl9leHBvcnRfcmVhZCh2b2lkKQotICAqIGZpeCB0aGUgYXV0aF9yZWxvYWQgbG9naWMg YXMgd2VsbC4uLgotICAqLwotIHN0YXRpYyBpbnQKLS14dGFiX3dyaXRlKGNoYXIgKnh0YWIsIGNo YXIgKnh0YWJ0bXAsIGNoYXIgKmxvY2tmbiwgaW50IGlzX2V4cG9ydCkKLSt4dGFiX3dyaXRlKGNo YXIgKnh0YWIsIGNoYXIgKnh0YWJ0bXAsIGNoYXIgKmxvY2tmbikKLSB7Ci0gCXN0cnVjdCBleHBv cnRlbnQJeGU7Ci0gCW5mc19leHBvcnQJCSpleHA7Ci1AQCAtMTE0LDkgKzEwMyw3IEBAIHh0YWJf d3JpdGUoY2hhciAqeHRhYiwgY2hhciAqeHRhYnRtcCwgY2hhciAqbG9ja2ZuLCBpbnQgaXNfZXhw b3J0KQotIAotIAlmb3IgKGkgPSAwOyBpIDwgTUNMX01BWFRZUEVTOyBpKyspIHsKLSAJCWZvciAo ZXhwID0gZXhwb3J0bGlzdFtpXS5wX2hlYWQ7IGV4cDsgZXhwID0gZXhwLT5tX25leHQpIHsKLS0J CQlpZiAoaXNfZXhwb3J0ICYmICFleHAtPm1feHRhYmVudCkKLS0JCQkJY29udGludWU7Ci0tCQkJ aWYgKCFpc19leHBvcnQgJiYgISBleHAtPm1fZXhwb3J0ZWQpCi0rCQkJaWYgKCFleHAtPm1feHRh YmVudCkKLSAJCQkJY29udGludWU7Ci0gCi0gCQkJLyogd3JpdGUgb3V0IHRoZSBleHBvcnQgZW50 cnkgdXNpbmcgdGhlIEZRRE4gKi8KLUBAIC0xMzcsNyArMTI0LDcgQEAgeHRhYl93cml0ZShjaGFy ICp4dGFiLCBjaGFyICp4dGFidG1wLCBjaGFyICpsb2NrZm4sIGludCBpc19leHBvcnQpCi0gaW50 Ci0geHRhYl9leHBvcnRfd3JpdGUodm9pZCkKLSB7Ci0tCXJldHVybiB4dGFiX3dyaXRlKGV0YWIu c3RhdGVmbiwgZXRhYi50bXBmbiwgZXRhYi5sb2NrZm4sIDEpOwotKwlyZXR1cm4geHRhYl93cml0 ZShldGFiLnN0YXRlZm4sIGV0YWIudG1wZm4sIGV0YWIubG9ja2ZuKTsKLSB9Ci0gCi0gLyoKLWRp ZmYgLS1naXQgYS9zdXBwb3J0L2luY2x1ZGUvY29tcGF0LmggYi9zdXBwb3J0L2luY2x1ZGUvY29t cGF0LmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uODMyMjliNjUKLS0t LSAvZGV2L251bGwKLSsrKyBiL3N1cHBvcnQvaW5jbHVkZS9jb21wYXQuaAotQEAgLTAsMCArMSwx MCBAQAotKyNpZm5kZWYgQ09NUEFUX0gKLSsjZGVmaW5lIENPTVBBVF9ICi0rCi0rI2luY2x1ZGUg PGxpbnV4L25ldGxpbmsuaD4KLSsKLSsjaWZuZGVmIE5FVExJTktfRVhUX0FDSwotKyNkZWZpbmUg TkVUTElOS19FWFRfQUNLIDExCi0rI2VuZGlmCi0rCi0rI2VuZGlmIC8qIENPTVBBVF9IICovCi1k aWZmIC0tZ2l0IGEvc3VwcG9ydC9pbmNsdWRlL25mc2RfbmV0bGluay5oIGIvc3VwcG9ydC9pbmNs dWRlL25mc2RfbmV0bGluay5oCi1pbmRleCAyZDcwOGQyNC4uYTZhODMxODYgMTAwNjQ0Ci0tLS0g YS9zdXBwb3J0L2luY2x1ZGUvbmZzZF9uZXRsaW5rLmgKLSsrKyBiL3N1cHBvcnQvaW5jbHVkZS9u ZnNkX25ldGxpbmsuaAotQEAgLTEyOCw2ICsxMjgsMjcgQEAgZW51bSB7Ci0gCU5GU0RfQV9QT09M X01PREVfTUFYID0gKF9fTkZTRF9BX1BPT0xfTU9ERV9NQVggLSAxKQotIH07Ci0gCi0rZW51bSB7 Ci0rCU5GU0RfQV9VTkxPQ0tfSVBfQUREUkVTUyA9IDEsCi0rCi0rCV9fTkZTRF9BX1VOTE9DS19J UF9NQVgsCi0rCU5GU0RfQV9VTkxPQ0tfSVBfTUFYID0gKF9fTkZTRF9BX1VOTE9DS19JUF9NQVgg LSAxKQotK307Ci0rCi0rZW51bSB7Ci0rCU5GU0RfQV9VTkxPQ0tfRklMRVNZU1RFTV9QQVRIID0g MSwKLSsKLSsJX19ORlNEX0FfVU5MT0NLX0ZJTEVTWVNURU1fTUFYLAotKwlORlNEX0FfVU5MT0NL X0ZJTEVTWVNURU1fTUFYID0gKF9fTkZTRF9BX1VOTE9DS19GSUxFU1lTVEVNX01BWCAtIDEpCi0r fTsKLSsKLStlbnVtIHsKLSsJTkZTRF9BX1VOTE9DS19FWFBPUlRfUEFUSCA9IDEsCi0rCi0rCV9f TkZTRF9BX1VOTE9DS19FWFBPUlRfTUFYLAotKwlORlNEX0FfVU5MT0NLX0VYUE9SVF9NQVggPSAo X19ORlNEX0FfVU5MT0NLX0VYUE9SVF9NQVggLSAxKQotK307Ci0rCi0gZW51bSB7Ci0gCU5GU0Rf QV9GU0xPQ0FUSU9OX0hPU1QgPSAxLAotIAlORlNEX0FfRlNMT0NBVElPTl9QQVRILAotQEAgLTIy OSw2ICsyNTAsOSBAQCBlbnVtIHsKLSAJTkZTRF9DTURfRVhQS0VZX0dFVF9SRVFTLAotIAlORlNE X0NNRF9FWFBLRVlfU0VUX1JFUVMsCi0gCU5GU0RfQ01EX0NBQ0hFX0ZMVVNILAotKwlORlNEX0NN RF9VTkxPQ0tfSVAsCi0rCU5GU0RfQ01EX1VOTE9DS19GSUxFU1lTVEVNLAotKwlORlNEX0NNRF9V TkxPQ0tfRVhQT1JULAotIAotIAlfX05GU0RfQ01EX01BWCwKLSAJTkZTRF9DTURfTUFYID0gKF9f TkZTRF9DTURfTUFYIC0gMSkKLWRpZmYgLS1naXQgYS9zdXBwb3J0L2luY2x1ZGUvbmZzZG5sLmgg Yi9zdXBwb3J0L2luY2x1ZGUvbmZzZG5sLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAw MDAwMDAwMC4uMzUyODAxZTUKLS0tLSAvZGV2L251bGwKLSsrKyBiL3N1cHBvcnQvaW5jbHVkZS9u ZnNkbmwuaAotQEAgLTAsMCArMSwzNCBAQAotKy8qCi0rICogSGVscGVyIGZvciBzZW5kaW5nIG5m c2QgZ2VuZXJpYyBuZXRsaW5rIGNvbW1hbmRzLgotKyAqCi0rICogVXNlZCBieSBib3RoIG5mc2Rj dGwgYW5kIGV4cG9ydGZzLgotKyAqLwotKwotKyNpZm5kZWYgTkZTX1VUSUxTX05GU0ROTF9ICi0r I2RlZmluZSBORlNfVVRJTFNfTkZTRE5MX0gKLSsKLSsjaWZkZWYgSEFWRV9ORlNEX05FVExJTksK LSsKLSsvKioKLSsgKiBuZnNkX25sX2NtZF9zdHIgLSBzZW5kIGFuIG5mc2QgbmV0bGluayBjb21t YW5kIGNhcnJ5aW5nIGEgc3RyaW5nIGF0dHJpYnV0ZQotKyAqIEBjbWQ6ICAgTkZTRF9DTURfKiBj b21tYW5kIG51bWJlcgotKyAqIEBhdHRyOiAgTkZTRF9BXyogYXR0cmlidXRlIG51bWJlcgotKyAq IEB2YWx1ZTogTlVMLXRlcm1pbmF0ZWQgc3RyaW5nIHZhbHVlIGZvciB0aGUgYXR0cmlidXRlCi0r ICoKLSsgKiBPcGVucyBhIGdlbmV0bGluayBjb25uZWN0aW9uLCByZXNvbHZlcyB0aGUgIm5mc2Qi IGZhbWlseSwgc2VuZHMgYQotKyAqIHNpbmdsZSAiZG8iIGNvbW1hbmQgd2l0aCBvbmUgc3RyaW5n IGF0dHJpYnV0ZSwgd2FpdHMgZm9yIHRoZSBBQ0ssCi0rICogYW5kIGNsZWFucyB1cC4KLSsgKgot KyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4K LSsgKi8KLStpbnQgbmZzZF9ubF9jbWRfc3RyKGludCBjbWQsIGludCBhdHRyLCBjb25zdCBjaGFy ICp2YWx1ZSk7Ci0rCi0rI2Vsc2UKLSsKLStzdGF0aWMgaW5saW5lIGludCBuZnNkX25sX2NtZF9z dHIoaW50IGNtZCwgaW50IGF0dHIsIGNvbnN0IGNoYXIgKnZhbHVlKQotK3sKLSsJcmV0dXJuIC1F Tk9TWVM7Ci0rfQotKwotKyNlbmRpZiAvKiBIQVZFX05GU0RfTkVUTElOSyAqLwotKyNlbmRpZiAv KiBORlNfVVRJTFNfTkZTRE5MX0ggKi8KLWRpZmYgLS1naXQgYS9zdXBwb3J0L25mcy9NYWtlZmls ZS5hbSBiL3N1cHBvcnQvbmZzL01ha2VmaWxlLmFtCi1pbmRleCA1YmZkNzFhOS4uNjRhZDVkMDcg MTAwNjQ0Ci0tLS0gYS9zdXBwb3J0L25mcy9NYWtlZmlsZS5hbQotKysrIGIvc3VwcG9ydC9uZnMv TWFrZWZpbGUuYW0KLUBAIC0xMSw2ICsxMSwxMyBAQCBsaWJuZnNfbGFfU09VUkNFUyA9IGV4cG9y dHMuYyBybXRhYi5jIHhpby5jIHJwY21pc2MuYyBycGNkaXNwYXRjaC5jIFwKLSBsaWJuZnNfbGFf TElCQUREID0gbGlibmZzY29uZi5sYSAtbHV1aWQKLSBsaWJuZnNfbGFfQ1BQRkxBR1MgPSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAtSSQodG9wX3NyY2Rpcikvc3VwcG9ydC9yZWV4cG9ydAot IAotK2lmIENPTkZJR19ORlNEQ1RMCi0rbGlibmZzX2xhX1NPVVJDRVMgKz0gbmZzZG5sLmMKLSts aWJuZnNfbGFfQ1BQRkxBR1MgKz0gJChMSUJOTDNfQ0ZMQUdTKSAkKExJQk5MR0VOTDNfQ0ZMQUdT KSBcCi0rCQkgICAgICAtSSQodG9wX3NyY2RpcikvdXRpbHMvbmZzZGN0bAotK2xpYm5mc19sYV9M SUJBREQgKz0gJChMSUJOTDNfTElCUykgJChMSUJOTEdFTkwzX0xJQlMpCi0rZW5kaWYKLSsKLSBs aWJuZnNjb25mX2xhX1NPVVJDRVMgPSBjb25mZmlsZS5jIHhsb2cuYwotIAotIE1BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLWRpZmYgLS1naXQgYS9zdXBwb3J0L25mcy9maF9rZXlf ZmlsZS5jIGIvc3VwcG9ydC9uZnMvZmhfa2V5X2ZpbGUuYwotaW5kZXggNWY1ZWFmYzEuLjgxZWEx NTAwIDEwMDY0NAotLS0tIGEvc3VwcG9ydC9uZnMvZmhfa2V5X2ZpbGUuYwotKysrIGIvc3VwcG9y dC9uZnMvZmhfa2V5X2ZpbGUuYwotQEAgLTI2LDYgKzI2LDcgQEAKLSAjaW5jbHVkZSA8c3lzL3R5 cGVzLmg+Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotICNpbmNsdWRlIDxlcnJuby5oPgotKyNpbmNs dWRlIDxzdHJpbmcuaD4KLSAjaW5jbHVkZSA8dXVpZC91dWlkLmg+Ci0gCi0gI2luY2x1ZGUgIm5m c2xpYi5oIgotZGlmZiAtLWdpdCBhL3N1cHBvcnQvbmZzL25mc2RubC5jIGIvc3VwcG9ydC9uZnMv bmZzZG5sLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uZWNlMGI1N2EK LS0tLSAvZGV2L251bGwKLSsrKyBiL3N1cHBvcnQvbmZzL25mc2RubC5jCi1AQCAtMCwwICsxLDEy NCBAQAotKy8qCi0rICogbmZzZG5sLmMgLS0gc2VuZCBuZnNkIGdlbmVyaWMgbmV0bGluayBjb21t YW5kcwotKyAqCi0rICogSGVscGVyIHNoYXJlZCBieSBuZnNkY3RsIGFuZCBleHBvcnRmcy4KLSsg Ki8KLSsKLSsjaWZkZWYgSEFWRV9DT05GSUdfSAotKyNpbmNsdWRlIDxjb25maWcuaD4KLSsjZW5k aWYKLSsKLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rI2lu Y2x1ZGUgPG5ldGxpbmsvZ2VubC9nZW5sLmg+Ci0rI2luY2x1ZGUgPG5ldGxpbmsvZ2VubC9jdHJs Lmg+Ci0rI2luY2x1ZGUgPG5ldGxpbmsvbXNnLmg+Ci0rI2luY2x1ZGUgPG5ldGxpbmsvYXR0ci5o PgotKwotKyNpbmNsdWRlICJ4bG9nLmgiCi0rI2luY2x1ZGUgIm5mc2RubC5oIgotKwotKyNpZmRl ZiBVU0VfU1lTVEVNX05GU0RfTkVUTElOS19ICi0rI2luY2x1ZGUgPGxpbnV4L25mc2RfbmV0bGlu ay5oPgotKyNlbHNlCi0rI2luY2x1ZGUgIm5mc2RfbmV0bGluay5oIgotKyNlbmRpZgotKwotKyNk ZWZpbmUgTkZTRE5MX0JVRlNJWkUJKDQwOTYpCi0rCi0rc3RhdGljIGludCBlcnJvcl9oYW5kbGVy KHN0cnVjdCBzb2NrYWRkcl9ubCAqbmxhLCBzdHJ1Y3Qgbmxtc2dlcnIgKmVyciwKLSsJCQkgdm9p ZCAqYXJnKQotK3sKLSsJaW50ICpyZXQgPSBhcmc7Ci0rCSpyZXQgPSBlcnItPmVycm9yOwotKwly ZXR1cm4gTkxfU1RPUDsKLSt9Ci0rCi0rc3RhdGljIGludCBmaW5pc2hfaGFuZGxlcihzdHJ1Y3Qg bmxfbXNnICptc2csIHZvaWQgKmFyZykKLSt7Ci0rCWludCAqcmV0ID0gYXJnOwotKwkqcmV0ID0g MDsKLSsJcmV0dXJuIE5MX1NLSVA7Ci0rfQotKwotK3N0YXRpYyBpbnQgYWNrX2hhbmRsZXIoc3Ry dWN0IG5sX21zZyAqbXNnIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLAotKwkJICAgICAgIHZvaWQg KmFyZykKLSt7Ci0rCWludCAqcmV0ID0gYXJnOwotKwkqcmV0ID0gMDsKLSsJcmV0dXJuIE5MX1NU T1A7Ci0rfQotKwotKy8qKgotKyAqIG5mc2RfbmxfY21kX3N0ciAtIHNlbmQgYW4gbmZzZCBuZXRs aW5rIGNvbW1hbmQgY2FycnlpbmcgYSBzdHJpbmcgYXR0cmlidXRlCi0rICogQGNtZDogICBORlNE X0NNRF8qIGNvbW1hbmQgbnVtYmVyCi0rICogQGF0dHI6ICBORlNEX0FfKiBhdHRyaWJ1dGUgbnVt YmVyCi0rICogQHZhbHVlOiBOVUwtdGVybWluYXRlZCBzdHJpbmcgdmFsdWUgZm9yIHRoZSBhdHRy aWJ1dGUKLSsgKgotKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJybm8g b24gZmFpbHVyZS4KLSsgKi8KLStpbnQgbmZzZF9ubF9jbWRfc3RyKGludCBjbWQsIGludCBhdHRy LCBjb25zdCBjaGFyICp2YWx1ZSkKLSt7Ci0rCXN0cnVjdCBnZW5sbXNnaGRyICpnaGRyOwotKwlz dHJ1Y3Qgbmxfc29jayAqc29jazsKLSsJc3RydWN0IG5sX21zZyAqbXNnOwotKwlzdHJ1Y3Qgbmxf Y2IgKmNiOwotKwlpbnQgZmFtaWx5OwotKwlpbnQgcmV0OwotKwotKwlzb2NrID0gbmxfc29ja2V0 X2FsbG9jKCk7Ci0rCWlmICghc29jaykKLSsJCXJldHVybiAtRU5PTUVNOwotKwlpZiAoZ2VubF9j b25uZWN0KHNvY2spKSB7Ci0rCQlyZXQgPSAtRUNPTk5SRUZVU0VEOwotKwkJZ290byBvdXRfc29j azsKLSsJfQotKwlubF9zb2NrZXRfc2V0X2J1ZmZlcl9zaXplKHNvY2ssIE5GU0ROTF9CVUZTSVpF LCBORlNETkxfQlVGU0laRSk7Ci0rCi0rCWZhbWlseSA9IGdlbmxfY3RybF9yZXNvbHZlKHNvY2ss IE5GU0RfRkFNSUxZX05BTUUpOwotKwlpZiAoZmFtaWx5IDwgMCkgewotKwkJcmV0ID0gZmFtaWx5 OwotKwkJZ290byBvdXRfc29jazsKLSsJfQotKwotKwltc2cgPSBubG1zZ19hbGxvYygpOwotKwlp ZiAoIW1zZykgewotKwkJcmV0ID0gLUVOT01FTTsKLSsJCWdvdG8gb3V0X3NvY2s7Ci0rCX0KLSsJ aWYgKCFnZW5sbXNnX3B1dChtc2csIDAsIDAsIGZhbWlseSwgMCwgMCwgMCwgMCkpIHsKLSsJCXJl dCA9IC1FTk9NRU07Ci0rCQlnb3RvIG91dF9tc2c7Ci0rCX0KLSsKLSsJZ2hkciA9IG5sbXNnX2Rh dGEobmxtc2dfaGRyKG1zZykpOwotKwlnaGRyLT5jbWQgPSAoX191OCljbWQ7Ci0rCW5sYV9wdXRf c3RyaW5nKG1zZywgYXR0ciwgdmFsdWUpOwotKwotKwljYiA9IG5sX2NiX2FsbG9jKE5MX0NCX0NV U1RPTSk7Ci0rCWlmICghY2IpIHsKLSsJCXJldCA9IC1FTk9NRU07Ci0rCQlnb3RvIG91dF9tc2c7 Ci0rCX0KLSsKLSsJcmV0ID0gbmxfc2VuZF9hdXRvKHNvY2ssIG1zZyk7Ci0rCWlmIChyZXQgPCAw KQotKwkJZ290byBvdXRfY2I7Ci0rCi0rCXJldCA9IDE7Ci0rCW5sX2NiX2VycihjYiwgTkxfQ0Jf Q1VTVE9NLCBlcnJvcl9oYW5kbGVyLCAmcmV0KTsKLSsJbmxfY2Jfc2V0KGNiLCBOTF9DQl9GSU5J U0gsIE5MX0NCX0NVU1RPTSwgZmluaXNoX2hhbmRsZXIsICZyZXQpOwotKwlubF9jYl9zZXQoY2Is IE5MX0NCX0FDSywgTkxfQ0JfQ1VTVE9NLCBhY2tfaGFuZGxlciwgJnJldCk7Ci0rCi0rCXdoaWxl IChyZXQgPiAwKQotKwkJbmxfcmVjdm1zZ3Moc29jaywgY2IpOwotKwotK291dF9jYjoKLSsJbmxf Y2JfcHV0KGNiKTsKLStvdXRfbXNnOgotKwlubG1zZ19mcmVlKG1zZyk7Ci0rb3V0X3NvY2s6Ci0r CW5sX3NvY2tldF9mcmVlKHNvY2spOwotKwlyZXR1cm4gcmV0OwotK30KLWRpZmYgLS1naXQgYS9z dXBwb3J0L3JlZXhwb3J0L2JhY2tlbmRfc3FsaXRlLmMgYi9zdXBwb3J0L3JlZXhwb3J0L2JhY2tl bmRfc3FsaXRlLmMKLWluZGV4IDBlYjVlYTM3Li5hMWU5ODFlNCAxMDA2NDQKLS0tLSBhL3N1cHBv cnQvcmVleHBvcnQvYmFja2VuZF9zcWxpdGUuYwotKysrIGIvc3VwcG9ydC9yZWV4cG9ydC9iYWNr ZW5kX3NxbGl0ZS5jCi1AQCAtOSw2ICs5LDggQEAKLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2lu Y2x1ZGUgPHVuaXN0ZC5oPgotIAotKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotKwotICNpZmRl ZiBIQVZFX0dFVFJBTkRPTQotICMgaW5jbHVkZSA8c3lzL3JhbmRvbS5oPgotICMgaWYgIWRlZmlu ZWQoU1lTX2dldHJhbmRvbSkgJiYgZGVmaW5lZChfX05SX2dldHJhbmRvbSkKLWRpZmYgLS1naXQg YS90b29scy9uZnMtaW9zdGF0L25mcy1pb3N0YXQucHkgYi90b29scy9uZnMtaW9zdGF0L25mcy1p b3N0YXQucHkKLWluZGV4IDY5ZDI0YTExLi5hZjA0YWFjNSAxMDA3NTUKLS0tLSBhL3Rvb2xzL25m cy1pb3N0YXQvbmZzLWlvc3RhdC5weQotKysrIGIvdG9vbHMvbmZzLWlvc3RhdC9uZnMtaW9zdGF0 LnB5Ci1AQCAtMzI3LDcgKzMyNyw3IEBAIGNsYXNzIERldmljZURhdGE6Ci0gICAgICAgICAgICAg cHJpbnQoKQotICAgICAgICAgICAgIHByaW50KCclZCBjb25nZXN0aW9uIHdhaXRzJyAlIGNvbmdl c3Rpb253YWl0cykKLSAKLS0gICAgZGVmIF9fcHJpbnRfcnBjX29wX3N0YXRzKHNlbGYsIG9wLCBz YW1wbGVfdGltZSk6Ci0rICAgIGRlZiBfX3ByaW50X3JwY19vcF9zdGF0cyhzZWxmLCBvcCwgc2Ft cGxlX3RpbWUsIHVzZV9tYj1GYWxzZSk6Ci0gICAgICAgICAiIiJQcmludCBnZW5lcmljIHN0YXRz IGZvciBvbmUgUlBDIG9wCi0gICAgICAgICAiIiIKLSAgICAgICAgIGlmIG9wIG5vdCBpbiBzZWxm Ll9fcnBjX2RhdGE6Ci1AQCAtMzQzLDkgKzM0MywxOSBAQCBjbGFzcyBEZXZpY2VEYXRhOgotICAg ICAgICAgaWYgbGVuKHJwY19zdGF0cykgPj0gOToKLSAgICAgICAgICAgICBlcnJzID0gZmxvYXQo cnBjX3N0YXRzWzhdKQotIAotKyAgICAgICAgIyBzY2FsZSB0byBNQiBpZiByZXF1ZXN0ZWQKLSsg ICAgICAgIGlmIHVzZV9tYjoKLSsgICAgICAgICAgICB0aHJvdWdocHV0ID0ga2lsb2J5dGVzIC8g MTAyNC4wCi0rICAgICAgICAgICAgdGhyb3VnaHB1dF9sYWJlbCA9ICdNQi9zJwotKyAgICAgICAg ICAgIHBlcl9vcF9sYWJlbCA9ICdNQi9vcCcKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAg dGhyb3VnaHB1dCA9IGtpbG9ieXRlcwotKyAgICAgICAgICAgIHRocm91Z2hwdXRfbGFiZWwgPSAn a0IvcycKLSsgICAgICAgICAgICBwZXJfb3BfbGFiZWwgPSAna0Ivb3AnCi0rCi0gICAgICAgICAj IHByZXZlbnQgZmxvYXRpbmcgcG9pbnQgZXhjZXB0aW9ucwotICAgICAgICAgaWYgb3BzICE9IDA6 Ci0tICAgICAgICAgICAga2JfcGVyX29wID0ga2lsb2J5dGVzIC8gb3BzCi0rICAgICAgICAgICAg dW5pdF9wZXJfb3AgPSB0aHJvdWdocHV0IC8gb3BzCi0gICAgICAgICAgICAgcmV0cmFuc19wZXJj ZW50ID0gKHJldHJhbnMgKiAxMDApIC8gb3BzCi0gICAgICAgICAgICAgcnR0X3Blcl9vcCA9IHJ0 dCAvIG9wcwotICAgICAgICAgICAgIGV4ZV9wZXJfb3AgPSBleGUgLyBvcHMKLUBAIC0zNTMsNyAr MzYzLDcgQEAgY2xhc3MgRGV2aWNlRGF0YToKLSAgICAgICAgICAgICBpZiBsZW4ocnBjX3N0YXRz KSA+PSA5OgotICAgICAgICAgICAgICAgICBlcnJzX3BlcmNlbnQgPSAoZXJycyAqIDEwMCkgLyBv cHMKLSAgICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAga2JfcGVyX29wID0gMC4wCi0rICAgICAg ICAgICAgdW5pdF9wZXJfb3AgPSAwLjAKLSAgICAgICAgICAgICByZXRyYW5zX3BlcmNlbnQgPSAw LjAKLSAgICAgICAgICAgICBydHRfcGVyX29wID0gMC4wCi0gICAgICAgICAgICAgZXhlX3Blcl9v cCA9IDAuMAotQEAgLTM2NCw4ICszNzQsOCBAQCBjbGFzcyBEZXZpY2VEYXRhOgotICAgICAgICAg b3AgKz0gJzonCi0gICAgICAgICBwcmludChmb3JtYXQob3AubG93ZXIoKSwgJzwxNnMnKSwgZW5k PScnKQotICAgICAgICAgcHJpbnQoZm9ybWF0KCdvcHMvcycsICc+OHMnKSwgZW5kPScnKQotLSAg ICAgICAgcHJpbnQoZm9ybWF0KCdrQi9zJywgJz4xNnMnKSwgZW5kPScnKQotLSAgICAgICAgcHJp bnQoZm9ybWF0KCdrQi9vcCcsICc+MTZzJyksIGVuZD0nJykKLSsgICAgICAgIHByaW50KGZvcm1h dCh0aHJvdWdocHV0X2xhYmVsLCAnPjE2cycpLCBlbmQ9JycpCi0rICAgICAgICBwcmludChmb3Jt YXQocGVyX29wX2xhYmVsLCAnPjE2cycpLCBlbmQ9JycpCi0gICAgICAgICBwcmludChmb3JtYXQo J3JldHJhbnMnLCAnPjE2cycpLCBlbmQ9JycpCi0gICAgICAgICBwcmludChmb3JtYXQoJ2F2ZyBS VFQgKG1zKScsICc+MTZzJyksIGVuZD0nJykKLSAgICAgICAgIHByaW50KGZvcm1hdCgnYXZnIGV4 ZSAobXMpJywgJz4xNnMnKSwgZW5kPScnKQotQEAgLTM3NSw4ICszODUsOCBAQCBjbGFzcyBEZXZp Y2VEYXRhOgotICAgICAgICAgcHJpbnQoKQotIAotICAgICAgICAgcHJpbnQoZm9ybWF0KChvcHMg LyBzYW1wbGVfdGltZSksICc+MjQuM2YnKSwgZW5kPScnKQotLSAgICAgICAgcHJpbnQoZm9ybWF0 KChraWxvYnl0ZXMgLyBzYW1wbGVfdGltZSksICc+MTYuM2YnKSwgZW5kPScnKQotLSAgICAgICAg cHJpbnQoZm9ybWF0KGtiX3Blcl9vcCwgJz4xNi4zZicpLCBlbmQ9JycpCi0rICAgICAgICBwcmlu dChmb3JtYXQoKHRocm91Z2hwdXQgLyBzYW1wbGVfdGltZSksICc+MTYuM2YnKSwgZW5kPScnKQot KyAgICAgICAgcHJpbnQoZm9ybWF0KHVuaXRfcGVyX29wLCAnPjE2LjNmJyksIGVuZD0nJykKLSAg ICAgICAgIHJldHJhbnNtaXRzID0gJ3swOj4xMC4wZn0gKHsxOj4zLjFmfSUpJy5mb3JtYXQocmV0 cmFucywgcmV0cmFuc19wZXJjZW50KS5zdHJpcCgpCi0gICAgICAgICBwcmludChmb3JtYXQocmV0 cmFuc21pdHMsICc+MTYnKSwgZW5kPScnKQotICAgICAgICAgcHJpbnQoZm9ybWF0KHJ0dF9wZXJf b3AsICc+MTYuM2YnKSwgZW5kPScnKQotQEAgLTM5NSw5ICs0MDUsMTEgQEAgY2xhc3MgRGV2aWNl RGF0YToKLSAgICAgICAgICAgICBzYW1wbGVfdGltZSA9IDE7Ci0gICAgICAgICByZXR1cm4gKHNl bmRzIC8gc2FtcGxlX3RpbWUpCi0gCi0tICAgIGRlZiBkaXNwbGF5X2lvc3RhdHMoc2VsZiwgc2Ft cGxlX3RpbWUsIHdoaWNoKToKLSsgICAgZGVmIGRpc3BsYXlfaW9zdGF0cyhzZWxmLCBzYW1wbGVf dGltZSwgb3B0aW9ucyk6Ci0gICAgICAgICAiIiJEaXNwbGF5IE5GUyBhbmQgUlBDIHN0YXRzIGlu IGFuIGlvc3RhdC1saWtlIHdheQotICAgICAgICAgIiIiCi0rICAgICAgICB3aGljaCA9IG9wdGlv bnMud2hpY2gKLSsgICAgICAgIHVzZV9tYiA9IG9wdGlvbnMubWVnYWJ5dGVzCi0gICAgICAgICBz ZW5kcyA9IGZsb2F0KHNlbGYuX19ycGNfZGF0YVsncnBjc2VuZHMnXSkKLSAgICAgICAgIGlmIHNh bXBsZV90aW1lID09IDA6Ci0gICAgICAgICAgICAgc2FtcGxlX3RpbWUgPSBmbG9hdChzZWxmLl9f bmZzX2RhdGFbJ2FnZSddKQotQEAgLTQyMywyMSArNDM1LDIxIEBAIGNsYXNzIERldmljZURhdGE6 Ci0gICAgICAgICBwcmludCgpCi0gCi0gICAgICAgICBpZiB3aGljaCA9PSAwOgotLSAgICAgICAg ICAgIHNlbGYuX19wcmludF9ycGNfb3Bfc3RhdHMoJ1JFQUQnLCBzYW1wbGVfdGltZSkKLS0gICAg ICAgICAgICBzZWxmLl9fcHJpbnRfcnBjX29wX3N0YXRzKCdXUklURScsIHNhbXBsZV90aW1lKQot KyAgICAgICAgICAgIHNlbGYuX19wcmludF9ycGNfb3Bfc3RhdHMoJ1JFQUQnLCBzYW1wbGVfdGlt ZSwgdXNlX21iKQotKyAgICAgICAgICAgIHNlbGYuX19wcmludF9ycGNfb3Bfc3RhdHMoJ1dSSVRF Jywgc2FtcGxlX3RpbWUsIHVzZV9tYikKLSAgICAgICAgIGVsaWYgd2hpY2ggPT0gMToKLS0gICAg ICAgICAgICBzZWxmLl9fcHJpbnRfcnBjX29wX3N0YXRzKCdHRVRBVFRSJywgc2FtcGxlX3RpbWUp Ci0tICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygnQUNDRVNTJywgc2FtcGxl X3RpbWUpCi0rICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygnR0VUQVRUUics IHNhbXBsZV90aW1lLCB1c2VfbWIpCi0rICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9z dGF0cygnQUNDRVNTJywgc2FtcGxlX3RpbWUsIHVzZV9tYikKLSAgICAgICAgICAgICBzZWxmLl9f cHJpbnRfYXR0cl9jYWNoZV9zdGF0cyhzYW1wbGVfdGltZSkKLSAgICAgICAgIGVsaWYgd2hpY2gg PT0gMjoKLS0gICAgICAgICAgICBzZWxmLl9fcHJpbnRfcnBjX29wX3N0YXRzKCdMT09LVVAnLCBz YW1wbGVfdGltZSkKLS0gICAgICAgICAgICBzZWxmLl9fcHJpbnRfcnBjX29wX3N0YXRzKCdSRUFE RElSJywgc2FtcGxlX3RpbWUpCi0rICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0 cygnTE9PS1VQJywgc2FtcGxlX3RpbWUsIHVzZV9tYikKLSsgICAgICAgICAgICBzZWxmLl9fcHJp bnRfcnBjX29wX3N0YXRzKCdSRUFERElSJywgc2FtcGxlX3RpbWUsIHVzZV9tYikKLSAgICAgICAg ICAgICBpZiAnUkVBRERJUlBMVVMnIGluIHNlbGYuX19ycGNfZGF0YToKLS0gICAgICAgICAgICAg ICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygnUkVBRERJUlBMVVMnLCBzYW1wbGVfdGltZSkK LSsgICAgICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygnUkVBRERJUlBMVVMn LCBzYW1wbGVfdGltZSwgdXNlX21iKQotICAgICAgICAgICAgIHNlbGYuX19wcmludF9kaXJfY2Fj aGVfc3RhdHMoc2FtcGxlX3RpbWUpCi0gICAgICAgICBlbGlmIHdoaWNoID09IDM6Ci0tICAgICAg ICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygnUkVBRCcsIHNhbXBsZV90aW1lKQotLSAg ICAgICAgICAgIHNlbGYuX19wcmludF9ycGNfb3Bfc3RhdHMoJ1dSSVRFJywgc2FtcGxlX3RpbWUp Ci0rICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygnUkVBRCcsIHNhbXBsZV90 aW1lLCB1c2VfbWIpCi0rICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygnV1JJ VEUnLCBzYW1wbGVfdGltZSwgdXNlX21iKQotICAgICAgICAgICAgIHNlbGYuX19wcmludF9wYWdl X3N0YXRzKHNhbXBsZV90aW1lKQotIAotICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCi1AQCAt NTAwLDcgKzUxMiw3IEBAIGRlZiBwcmludF9pb3N0YXRfc3VtbWFyeShvbGQsIG5ldywgZGV2aWNl cywgdGltZSwgb3B0aW9ucyk6Ci0gCi0gICAgIGNvdW50ID0gMQotICAgICBmb3IgZGV2aWNlIGlu IGRldmljZXM6Ci0tICAgICAgICBkaXNwbGF5X3N0YXRzW2RldmljZV0uZGlzcGxheV9pb3N0YXRz KHRpbWUsIG9wdGlvbnMud2hpY2gpCi0rICAgICAgICBkaXNwbGF5X3N0YXRzW2RldmljZV0uZGlz cGxheV9pb3N0YXRzKHRpbWUsIG9wdGlvbnMpCi0gCi0gICAgICAgICBjb3VudCArPSAxCi0gICAg ICAgICBpZiAoY291bnQgPiBvcHRpb25zLmxpc3QpOgotQEAgLTU4NSw2ICs1OTcsMTEgQEAgY2xp ZW50IGFyZSBsaXN0ZWQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImludCIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9Imxpc3QiLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBoZWxwPSJvbmx5IHByaW50IHN0YXRzIGZvciBmaXJzdCBMSVNUIG1v dW50IHBvaW50cyIpCi0rICAgIGRpc3BsYXlncm91cC5hZGRfb3B0aW9uKCctbScsICctLW1lZ2Fi eXRlcycsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9Im1lZ2FieXRlcyIsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGhlbHA9ImRpc3BsYXkgdGhyb3VnaHB1dCBpbiBtZWdhYnl0ZXMgcGVyIHNlY29u ZCAoTUIvcykgaW5zdGVhZCBvZiBraWxvYnl0ZXMgcGVyIHNlY29uZCAoa0IvcykiKQotICAgICBw YXJzZXIuYWRkX29wdGlvbl9ncm91cChkaXNwbGF5Z3JvdXApCi0gCi0gICAgIChvcHRpb25zLCBh cmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKHN5cy5hcmd2KQotZGlmZiAtLWdpdCBhL3Rvb2xzL25m cy1pb3N0YXQvbmZzaW9zdGF0Lm1hbiBiL3Rvb2xzL25mcy1pb3N0YXQvbmZzaW9zdGF0Lm1hbgot aW5kZXggMTA0YzdhYjQuLjRmMjQzMThkIDEwMDY0NAotLS0tIGEvdG9vbHMvbmZzLWlvc3RhdC9u ZnNpb3N0YXQubWFuCi0rKysgYi90b29scy9uZnMtaW9zdGF0L25mc2lvc3RhdC5tYW4KLUBAIC01 NiwxNiArNTYsMTYgQEAgVGhpcyBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBiYWNrbG9nIHF1ZXVlLgot IC5SRQotIC5SRQotIC5SUyA4Ci0tLSBcZkJrQi9zXGZSCi0rLSBcZkJrQi9zIChNQi9zKVxmUgot IC5SUwotLVRoaXMgaXMgdGhlIG51bWJlciBvZiBrQiB3cml0dGVuL3JlYWQgcGVyIHNlY29uZC4K LStUaGlzIGlzIHRoZSBudW1iZXIgb2Yga0IgKG9yIE1CKSB3cml0dGVuL3JlYWQgcGVyIHNlY29u ZC4KLSAuUkUKLSAuUkUKLSAuUkUKLSAuUlMgOAotLS0gXGZCa0Ivb3BcZlIKLSstIFxmQmtCL29w IChNQi9vcClcZlIKLSAuUlMKLS1UaGlzIGlzIHRoZSBudW1iZXIgb2Yga0Igd3JpdHRlbi9yZWFk IHBlciBlYWNoIG9wZXJhdGlvbi4KLStUaGlzIGlzIHRoZSBudW1iZXIgb2Yga0IgKG9yIE1CKSB3 cml0dGVuL3JlYWQgcGVyIGVhY2ggb3BlcmF0aW9uLgotIC5SRQotIC5SRQotIC5SRQotQEAgLTEy Miw2ICsxMjIsOSBAQCBzaG93cyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKLSAuQiBcLWwgTElTVCBv ciAiIFwtXC1saXN0PUxJU1QgCi0gb25seSBwcmludCBzdGF0cyBmb3IgZmlyc3QgTElTVCBtb3Vu dCBwb2ludHMKLSAuVFAKLSsuQiBcLW0gb3IgIiBcLVwtbWVnYWJ5dGVzCi0rZGlzcGxheSB0aHJv dWdocHV0IGluIG1lZ2FieXRlcyBwZXIgc2Vjb25kCi0rLlRQCi0gLkIgXC1wICIgb3IgIiBcLVwt cGFnZQotIGRpc3BsYXlzIHN0YXRpc3RpY3MgcmVsYXRlZCB0byB0aGUgcGFnZSBjYWNoZQotIC5U UAotZGlmZiAtLWdpdCBhL3V0aWxzL2V4cG9ydGZzL2V4cG9ydGZzLmMgYi91dGlscy9leHBvcnRm cy9leHBvcnRmcy5jCi1pbmRleCA5M2YwYmNkNy4uNzY4ZDJkYjcgMTAwNjQ0Ci0tLS0gYS91dGls cy9leHBvcnRmcy9leHBvcnRmcy5jCi0rKysgYi91dGlscy9leHBvcnRmcy9leHBvcnRmcy5jCi1A QCAtMzksNiArMzksMTUgQEAKLSAjaW5jbHVkZSAieGxvZy5oIgotICNpbmNsdWRlICJjb25mZmls ZS5oIgotICNpbmNsdWRlICJyZWV4cG9ydC5oIgotKyNpbmNsdWRlICJuZnNkbmwuaCIKLSsKLSsj aWZkZWYgSEFWRV9ORlNEX05FVExJTksKLSsjaWZkZWYgVVNFX1NZU1RFTV9ORlNEX05FVExJTktf SAotKyNpbmNsdWRlIDxsaW51eC9uZnNkX25ldGxpbmsuaD4KLSsjZWxzZQotKyNpbmNsdWRlICJu ZnNkX25ldGxpbmsuaCIKLSsjZW5kaWYKLSsjZW5kaWYKLSAKLSAjaW5jbHVkZSA8bmV0bGluay9n ZW5sL2dlbmwuaD4KLSAjaW5jbHVkZSA8bmV0bGluay9nZW5sL2N0cmwuaD4KLUBAIC02Myw2ICs3 Miw3IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VfbG9ja2ZpbGUodm9pZCk7Ci0gCi0gc3RhdGljIGNv bnN0IGNoYXIgKmxvY2tmaWxlID0gRVhQX0xPQ0tGSUxFOwotIHN0YXRpYyBpbnQgX2xvY2tmZCA9 IC0xOwotK3N0YXRpYyBpbnQgZl91bmV4cG9ydF9hbGw7Ci0gCi0gLyoKLSAgKiBJZiB3ZSBhcmVu J3QgY2FyZWZ1bCwgY2hhbmdlcyBtYWRlIGJ5IGV4cG9ydGZzIGNhbiBiZSBsb3N0Ci1AQCAtMjQ2 LDcgKzI1Niw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAkgKiBkb24ndCBjYXJl IGFib3V0IHdoYXQgc2hvdWxkIGJlIGV4cG9ydGVkLCBhcyB0aGF0Ci0gCSAqIG1heSByZXF1aXJl IEROUyBsb29rdXBzLi4KLSAJICovCi0tCWlmICghICggIWZfZXhwb3J0ICYmIGZfYWxsKSkgewot KwlmX3VuZXhwb3J0X2FsbCA9ICFmX2V4cG9ydCAmJiBmX2FsbDsKLSsJaWYgKCFmX3VuZXhwb3J0 X2FsbCkgewotIAkJLyogbm90ZTogeHRhYl8qX3JlYWQgZG9lcyBub3QgdXBkYXRlIGVudHJpZXMg aWYgdGhleSBhbHJlYWR5IGV4aXN0LAotIAkJICogc28gdGhpcyB3aWxsIG5vdCBsb3NlIG5ldyBv cHRpb25zCi0gCQkgKi8KLUBAIC0zODAsNiArMzkxLDI2IEBAIGV4cG9ydGZzKGNoYXIgKmFyZywg Y2hhciAqb3B0aW9ucywgaW50IHZlcmJvc2UpCi0gCQl4bG9nKExfRVJST1IsICJJbnZhbGlkIGV4 cG9ydCBzeW50YXg6ICVzIiwgYXJnKTsKLSB9Ci0gCi0rLyoKLSsgKiBDaGVjayB3aGV0aGVyIGFu eSBhY3RpdmUgZXhwb3J0IHJlbWFpbnMgZm9yIHRoZSBnaXZlbiBwYXRoIGFjcm9zcwotKyAqIGFs bCBjbGllbnQgdHlwZXMuICBSZXR1cm5zIHRydWUgaWYgYXQgbGVhc3Qgb25lIGV4cG9ydCBzdGls bCBoYXMKLSsgKiBtX3h0YWJlbnQgc2V0LgotKyAqLwotK3N0YXRpYyBpbnQKLStwYXRoX3N0aWxs X2V4cG9ydGVkKGNvbnN0IGNoYXIgKnBhdGgsIHNpemVfdCBubGVuKQotK3sKLSsJbmZzX2V4cG9y dCAqZXhwOwotKwlpbnQgaTsKLSsKLSsJZm9yIChpID0gMDsgaSA8IE1DTF9NQVhUWVBFUzsgaSsr KQotKwkJZm9yIChleHAgPSBleHBvcnRsaXN0W2ldLnBfaGVhZDsgZXhwOyBleHAgPSBleHAtPm1f bmV4dCkKLSsJCQlpZiAoZXhwLT5tX3h0YWJlbnQgJiYKLSsJCQkgICAgc3RybGVuKGV4cC0+bV9l eHBvcnQuZV9wYXRoKSA9PSBubGVuICYmCi0rCQkJICAgIHN0cm5jbXAocGF0aCwgZXhwLT5tX2V4 cG9ydC5lX3BhdGgsIG5sZW4pID09IDApCi0rCQkJCXJldHVybiAxOwotKwlyZXR1cm4gMDsKLSt9 Ci0rCi0gc3RhdGljIHZvaWQKLSB1bmV4cG9ydGZzX3BhcnNlZChjaGFyICpobmFtZSwgY2hhciAq cGF0aCwgaW50IHZlcmJvc2UpCi0gewotQEAgLTQzNCw5ICs0NjUsMzkgQEAgdW5leHBvcnRmc19w YXJzZWQoY2hhciAqaG5hbWUsIGNoYXIgKnBhdGgsIGludCB2ZXJib3NlKQotIAkJZXhwLT5tX21h eWV4cG9ydCA9IDA7Ci0gCQlzdWNjZXNzID0gMTsKLSAJfQotLQlpZiAoIXN1Y2Nlc3MpCi0rCWlm ICghc3VjY2VzcykgewotIAkJeGxvZyhMX0VSUk9SLCAiQ291bGQgbm90IGZpbmQgJyVzOiVzJyB0 byB1bmV4cG9ydC4iLCBobmFtZSwgcGF0aCk7Ci0rCQlnb3RvIG91dDsKLSsJfQotIAotKwkvKgot KwkgKiBJZiBubyBleHBvcnRzIHJlbWFpbiBmb3IgdGhpcyBwYXRoLCBhc2sgdGhlIGtlcm5lbCB0 bwotKwkgKiByZXZva2UgYW55IE5GU3Y0IHN0YXRlIGFuZCBjbG9zZSBjYWNoZWQgZmlsZSBoYW5k bGVzCi0rCSAqIGFzc29jaWF0ZWQgd2l0aCBleHBvcnRzIG9mIHRoaXMgcGF0aC4gIFRoaXMgZW5h YmxlcyB0aGUKLSsJICogdW5kZXJseWluZyBmaWxlc3lzdGVtIHRvIGJlIHVubW91bnRlZC4KLSsJ ICoKLSsJICogU2tpcCB0aGlzIGR1cmluZyAiZXhwb3J0ZnMgLXVhIiAtLSB0aGF0IGlzIGEgc2h1 dGRvd24KLSsJICogb3BlcmF0aW9uLiAgQ2xpZW50cyBzaG91bGQgd2FpdCBmb3IgbmZzZCB0byBy ZXN0YXJ0IGFuZAotKwkgKiByZWNsYWltIHN0YXRlIHRocm91Z2ggdGhlIGdyYWNlIHBlcmlvZCBy YXRoZXIgdGhhbgotKwkgKiByZWNlaXZpbmcgTkZTNEVSUl9BRE1JTl9SRVZPS0VELgotKwkgKi8K LSsjaWZkZWYgSEFWRV9ORlNEX05FVExJTksKLSsJaWYgKCFmX3VuZXhwb3J0X2FsbCAmJiAhcGF0 aF9zdGlsbF9leHBvcnRlZChwYXRoLCBubGVuKSkgewotKwkJY2hhciBwYXRoYnVmW05GU19NQVhQ QVRITEVOICsgMV07Ci0rCQlpbnQgcmV0OwotKwotKwkJbWVtY3B5KHBhdGhidWYsIHBhdGgsIG5s ZW4pOwotKwkJcGF0aGJ1ZltubGVuXSA9ICdcMCc7Ci0rCQlyZXQgPSBuZnNkX25sX2NtZF9zdHIo TkZTRF9DTURfVU5MT0NLX0VYUE9SVCwKLSsJCQkJICAgICAgTkZTRF9BX1VOTE9DS19FWFBPUlRf UEFUSCwKLSsJCQkJICAgICAgcGF0aGJ1Zik7Ci0rCQlpZiAocmV0ICYmIHJldCAhPSAtRU5PU1lT KQotKwkJCXhsb2coTF9XQVJOSU5HLAotKwkJCSAgICAgIkZhaWxlZCB0byByZWxlYXNlIHN0YXRl IGZvciAlczogJXMiLAotKwkJCSAgICAgcGF0aGJ1Ziwgc3RyZXJyb3IoLXJldCkpOwotKwl9Ci0r I2VuZGlmCi0rb3V0OgotIAluZnNfZnJlZWFkZHJpbmZvKGFpKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0 IGEvdXRpbHMvZXhwb3J0ZnMvZXhwb3J0ZnMubWFuIGIvdXRpbHMvZXhwb3J0ZnMvZXhwb3J0ZnMu bWFuCi1pbmRleCAzNzM3ZWU4MS4uYjVlMGM2M2EgMTAwNjQ0Ci0tLS0gYS91dGlscy9leHBvcnRm cy9leHBvcnRmcy5tYW4KLSsrKyBiL3V0aWxzL2V4cG9ydGZzL2V4cG9ydGZzLm1hbgotQEAgLTI1 Niw2ICsyNTYsMjMgQEAgcGFpci4gVGhpcyBkZWxldGVzIHRoZSBzcGVjaWZpZWQgZW50cnkgZnJv bQotIC5JIC92YXIvbGliL25mcy9ldGFiCi0gYW5kIHJlbW92ZXMgdGhlIGNvcnJlc3BvbmRpbmcg a2VybmVsIGVudHJ5IChpZiBhbnkpLgotIC5QUAotK1doZW4gdGhlIGxhc3QgY2xpZW50IGZvciBh IGdpdmVuIGV4cG9ydCBwYXRoIGlzIHVuZXhwb3J0ZWQsCi0rLkIgZXhwb3J0ZnMKLStzaWduYWxz IHRoZSBrZXJuZWwgdG8gcmV2b2tlIE5GU3Y0IHN0YXRlIChvcGVucywgbG9ja3MsIGFuZAotK2Rl bGVnYXRpb25zKSBhbmQgcmVsZWFzZSBjYWNoZWQgc3RhdGUgZm9yIHRoYXQgcGF0aC4KLStXaXRo b3V0IHRoaXMgcmV2b2NhdGlvbiwgcmV0YWluZWQgc3RhdGUgd291bGQgcHJldmVudCB0aGUKLSt1 bmRlcmx5aW5nIGZpbGVzeXN0ZW0gZnJvbSBiZWluZyB1bm1vdW50ZWQuCi0rQWZmZWN0ZWQgY2xp ZW50cyByZWNlaXZlCi0rLkIgTkZTNEVSUl9BRE1JTl9SRVZPS0VECi0rZXJyb3JzIGZvciBvcGVy YXRpb25zIHRoYXQgdXNlIHJldm9rZWQgc3RhdGUuCi0rLlBQCi0rLkIgImV4cG9ydGZzIFwtdWEi Ci0rZG9lcyBub3QgcmV2b2tlIE5GU3Y0IHN0YXRlLCBob3dldmVyLgotK0lmCi0rLkIgbmZzZAot K2lzIHRoZW4gcmVzdGFydGVkLCBjbGllbnRzIG1heSByZWNsYWltIHN0YXRlIGR1cmluZyB0aGUK LStncmFjZSBwZXJpb2QuCi0rLlBQCi0gLlNTIER1bXBpbmcgdGhlIEV4cG9ydCBUYWJsZQotIElu dm9raW5nCi0gLkIgZXhwb3J0ZnMKLWRpZmYgLS1naXQgYS91dGlscy9uZnNkY3RsL25mc2RjdGwu YyBiL3V0aWxzL25mc2RjdGwvbmZzZGN0bC5jCi1pbmRleCAwMTZkZDJlYi4uYzcxMjY3NDggMTAw NjQ0Ci0tLS0gYS91dGlscy9uZnNkY3RsL25mc2RjdGwuYwotKysrIGIvdXRpbHMvbmZzZGN0bC9u ZnNkY3RsLmMKLUBAIC0yNiw2ICsyNiw3IEBACi0gI2luY2x1ZGUgPG5ldGxpbmsvbXNnLmg+Ci0g I2luY2x1ZGUgPG5ldGxpbmsvYXR0ci5oPgotICNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+Ci0r I2luY2x1ZGUgImNvbXBhdC5oIgotIAotICNpbmNsdWRlIDxyZWFkbGluZS9yZWFkbGluZS5oPgot ICNpbmNsdWRlIDxyZWFkbGluZS9oaXN0b3J5Lmg+CgpkaWZmIC0tZ2l0IGEvbmZzLXV0aWxzLTIu OS4yLXJjNC5wYXRjaCBiL25mcy11dGlscy0yLjkuMi1yYzQucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZjlkY2I1MQotLS0gL2Rldi9udWxsCisrKyBiL25mcy11dGls cy0yLjkuMi1yYzQucGF0Y2gKQEAgLTAsMCArMSwxMTM3IEBACitkaWZmIC0tZ2l0IGEvY29uZmln dXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCAxMTVjNjExZi4uOGNhMDZmZDYgMTAwNjQ0Cist LS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTI1Niw2ICsyNTYsOCBA QCBQS0dfQ0hFQ0tfTU9EVUxFUyhMSUJOTDMsIGxpYm5sLTMuMCA+PSAzLjEpCisgUEtHX0NIRUNL X01PRFVMRVMoTElCTkxHRU5MMywgbGlibmwtZ2VubC0zLjAgPj0gMy4xKQorIAorIEFDX0NIRUNL X0hFQURFUlMobGludXgvbmZzZF9uZXRsaW5rLmgpCisrQUNfREVGSU5FKFtIQVZFX05GU0RfTkVU TElOS10sIDEsCisrCSAgW0RlZmluZSB0byAxIGlmIG5mc2QgZ2VuZXJpYyBuZXRsaW5rIHN1cHBv cnQgaXMgYXZhaWxhYmxlXSkKKyAKKyAjIGVuc3VyZSB3ZSBoYXZlIHRoZSBleHBrZXkgYXR0cmli dXRlcworIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8bGlu dXgvbmZzZF9uZXRsaW5rLmg+XV0sCitkaWZmIC0tZ2l0IGEvc3VwcG9ydC9leHBvcnQvY2FjaGUu YyBiL3N1cHBvcnQvZXhwb3J0L2NhY2hlLmMKK2luZGV4IDJmMTI4ZDdkLi42NTAwOGY1MSAxMDA2 NDQKKy0tLSBhL3N1cHBvcnQvZXhwb3J0L2NhY2hlLmMKKysrKyBiL3N1cHBvcnQvZXhwb3J0L2Nh Y2hlLmMKK0BAIC00MCw3ICs0MCw3IEBACisgI2luY2x1ZGUgPG5ldGxpbmsvZ2VubC9jdHJsLmg+ CisgI2luY2x1ZGUgPG5ldGxpbmsvbXNnLmg+CisgI2luY2x1ZGUgPG5ldGxpbmsvYXR0ci5oPgor LSNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+CisrI2luY2x1ZGUgImNvbXBhdC5oIgorIAorICNp ZmRlZiBVU0VfU1lTVEVNX05GU0RfTkVUTElOS19ICisgI2luY2x1ZGUgPGxpbnV4L25mc2RfbmV0 bGluay5oPgorZGlmZiAtLWdpdCBhL3N1cHBvcnQvZXhwb3J0L2NhY2hlX2ZsdXNoLmMgYi9zdXBw b3J0L2V4cG9ydC9jYWNoZV9mbHVzaC5jCitpbmRleCBlZDdiOTY0Zi4uMmEyNGRlYzcgMTAwNjQ0 CistLS0gYS9zdXBwb3J0L2V4cG9ydC9jYWNoZV9mbHVzaC5jCisrKysgYi9zdXBwb3J0L2V4cG9y dC9jYWNoZV9mbHVzaC5jCitAQCAtMzgsNiArMzgsOCBAQCBleHRlcm4gaW50IG5vX25ldGxpbms7 CisgI2luY2x1ZGUgInN1bnJwY19uZXRsaW5rLmgiCisgI2VuZGlmCisgCisrI2luY2x1ZGUgImNv bXBhdC5oIgorKworIHN0YXRpYyBpbnQgbmxfc2VuZF9mbHVzaChzdHJ1Y3Qgbmxfc29jayAqc29j aywgaW50IGZhbWlseSwgaW50IGNtZCkKKyB7CisgCXN0cnVjdCBubF9tc2cgKm1zZzsKK2RpZmYg LS1naXQgYS9zdXBwb3J0L2V4cG9ydC94dGFiLmMgYi9zdXBwb3J0L2V4cG9ydC94dGFiLmMKK2lu ZGV4IDI4MmYxNWJjLi4wYTk2NjA1MSAxMDA2NDQKKy0tLSBhL3N1cHBvcnQvZXhwb3J0L3h0YWIu YworKysrIGIvc3VwcG9ydC9leHBvcnQveHRhYi5jCitAQCAtMzMsMTEgKzMzLDggQEAgaW50IHY0 cm9vdF9uZWVkZWQ7Cisgc3RhdGljIHZvaWQgY29uZF9yZW5hbWUoY2hhciAqbmV3ZmlsZSwgY2hh ciAqb2xkZmlsZSk7CisgCisgc3RhdGljIGludAorLXh0YWJfcmVhZChjaGFyICp4dGFiLCBjaGFy ICpsb2NrZm4sIGludCBpc19leHBvcnQpCisreHRhYl9yZWFkKGNoYXIgKnh0YWIsIGNoYXIgKmxv Y2tmbikKKyB7CistICAgIC8qIGlzX2V4cG9ydCA9PSAwICA9PiByZWFkaW5nIC9wcm9jL2ZzL25m cy9leHBvcnRzIC0gd2Uga25vdyB0aGVzZSB0aGluZ3MgYXJlIGV4cG9ydGVkIHRvIGtlcm5lbAor LSAgICAgKiBpc19leHBvcnQgPT0gMSAgPT4gcmVhZGluZyAvdmFyL2xpYi9uZnMvZXRhYiAtIHRo ZXNlIHRoaW5ncyBhcmUgYWxsb3dlZCB0byBiZSBleHBvcnRlZAorLSAgICAgKi8KKyAJc3RydWN0 IGV4cG9ydGVudAkqeHA7CisgCW5mc19leHBvcnQJCSpleHA7CisgCWludAkJCWxvY2tpZDsKK0BA IC00NSwxMSArNDIsMTAgQEAgeHRhYl9yZWFkKGNoYXIgKnh0YWIsIGNoYXIgKmxvY2tmbiwgaW50 IGlzX2V4cG9ydCkKKyAJaWYgKChsb2NraWQgPSB4ZmxvY2sobG9ja2ZuLCAiciIpKSA8IDApCisg CQlyZXR1cm4gMDsKKyAJc2V0ZXhwb3J0ZW50KHh0YWIsICJyIik7CistCWlmIChpc19leHBvcnQg PT0gMSkKKy0JCXY0cm9vdF9uZWVkZWQgPSAxOworLQl3aGlsZSAoKHhwID0gZ2V0ZXhwb3J0ZW50 KGlzX2V4cG9ydD09MCkpICE9IE5VTEwpIHsKKy0JCWlmICghKGV4cCA9IGV4cG9ydF9sb29rdXAo eHAtPmVfaG9zdG5hbWUsIHhwLT5lX3BhdGgsIGlzX2V4cG9ydCAhPSAxKSkgJiYKKy0JCSAgICAh KGV4cCA9IGV4cG9ydF9jcmVhdGUoeHAsIGlzX2V4cG9ydCE9MSkpKSB7CisrCXY0cm9vdF9uZWVk ZWQgPSAxOworKwl3aGlsZSAoKHhwID0gZ2V0ZXhwb3J0ZW50KDApKSAhPSBOVUxMKSB7CisrCQlp ZiAoIShleHAgPSBleHBvcnRfbG9va3VwKHhwLT5lX2hvc3RuYW1lLCB4cC0+ZV9wYXRoLCAwKSkg JiYKKysJCSAgICAhKGV4cCA9IGV4cG9ydF9jcmVhdGUoeHAsIDApKSkgeworICAgICAgICAgICAg ICAgICAgICAgICAgIGlmKHhwLT5lX2hvc3RuYW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZyZWUoeHAtPmVfaG9zdG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4cC0+ZV9ob3N0bmFtZT1OVUxMOworQEAgLTYwLDE3ICs1NiwxMCBAQCB4dGFiX3JlYWQoY2hh ciAqeHRhYiwgY2hhciAqbG9ja2ZuLCBpbnQgaXNfZXhwb3J0KQorICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKyAJCQljb250aW51ZTsKKyAJCX0KKy0JCXN3aXRjaCAoaXNfZXhwb3J0KSB7Cist CQljYXNlIDA6CistCQkJZXhwLT5tX2V4cG9ydGVkID0gMTsKKy0JCQlicmVhazsKKy0JCWNhc2Ug MToKKy0JCQlleHAtPm1feHRhYmVudCA9IDE7CistCQkJZXhwLT5tX21heWV4cG9ydCA9IDE7Cist CQkJaWYgKCh4cC0+ZV9mbGFncyAmIE5GU0VYUF9GU0lEKSAmJiB4cC0+ZV9mc2lkID09IDApCist CQkJCXY0cm9vdF9uZWVkZWQgPSAwOworLQkJCWJyZWFrOworLQkJfSAgCisrCQlleHAtPm1feHRh YmVudCA9IDE7CisrCQlleHAtPm1fbWF5ZXhwb3J0ID0gMTsKKysJCWlmICgoeHAtPmVfZmxhZ3Mg JiBORlNFWFBfRlNJRCkgJiYgeHAtPmVfZnNpZCA9PSAwKQorKwkJCXY0cm9vdF9uZWVkZWQgPSAw OworICAgICAgICAgICAgICAgICBpZih4cC0+ZV9ob3N0bmFtZSkgeworICAgICAgICAgICAgICAg ICAgICAgZnJlZSh4cC0+ZV9ob3N0bmFtZSk7CisgICAgICAgICAgICAgICAgICAgICB4cC0+ZV9o b3N0bmFtZT1OVUxMOworQEAgLTkwLDcgKzc5LDcgQEAgeHRhYl9yZWFkKGNoYXIgKnh0YWIsIGNo YXIgKmxvY2tmbiwgaW50IGlzX2V4cG9ydCkKKyBpbnQKKyB4dGFiX2V4cG9ydF9yZWFkKHZvaWQp CisgeworLQlyZXR1cm4geHRhYl9yZWFkKGV0YWIuc3RhdGVmbiwgZXRhYi5sb2NrZm4sIDEpOwor KwlyZXR1cm4geHRhYl9yZWFkKGV0YWIuc3RhdGVmbiwgZXRhYi5sb2NrZm4pOworIH0KKyAKKyAv KgorQEAgLTEwMCw3ICs4OSw3IEBAIHh0YWJfZXhwb3J0X3JlYWQodm9pZCkKKyAgKiBmaXggdGhl IGF1dGhfcmVsb2FkIGxvZ2ljIGFzIHdlbGwuLi4KKyAgKi8KKyBzdGF0aWMgaW50CisteHRhYl93 cml0ZShjaGFyICp4dGFiLCBjaGFyICp4dGFidG1wLCBjaGFyICpsb2NrZm4sIGludCBpc19leHBv cnQpCisreHRhYl93cml0ZShjaGFyICp4dGFiLCBjaGFyICp4dGFidG1wLCBjaGFyICpsb2NrZm4p CisgeworIAlzdHJ1Y3QgZXhwb3J0ZW50CXhlOworIAluZnNfZXhwb3J0CQkqZXhwOworQEAgLTEx NCw5ICsxMDMsNyBAQCB4dGFiX3dyaXRlKGNoYXIgKnh0YWIsIGNoYXIgKnh0YWJ0bXAsIGNoYXIg KmxvY2tmbiwgaW50IGlzX2V4cG9ydCkKKyAKKyAJZm9yIChpID0gMDsgaSA8IE1DTF9NQVhUWVBF UzsgaSsrKSB7CisgCQlmb3IgKGV4cCA9IGV4cG9ydGxpc3RbaV0ucF9oZWFkOyBleHA7IGV4cCA9 IGV4cC0+bV9uZXh0KSB7CistCQkJaWYgKGlzX2V4cG9ydCAmJiAhZXhwLT5tX3h0YWJlbnQpCist CQkJCWNvbnRpbnVlOworLQkJCWlmICghaXNfZXhwb3J0ICYmICEgZXhwLT5tX2V4cG9ydGVkKQor KwkJCWlmICghZXhwLT5tX3h0YWJlbnQpCisgCQkJCWNvbnRpbnVlOworIAorIAkJCS8qIHdyaXRl IG91dCB0aGUgZXhwb3J0IGVudHJ5IHVzaW5nIHRoZSBGUUROICovCitAQCAtMTM3LDcgKzEyNCw3 IEBAIHh0YWJfd3JpdGUoY2hhciAqeHRhYiwgY2hhciAqeHRhYnRtcCwgY2hhciAqbG9ja2ZuLCBp bnQgaXNfZXhwb3J0KQorIGludAorIHh0YWJfZXhwb3J0X3dyaXRlKHZvaWQpCisgeworLQlyZXR1 cm4geHRhYl93cml0ZShldGFiLnN0YXRlZm4sIGV0YWIudG1wZm4sIGV0YWIubG9ja2ZuLCAxKTsK KysJcmV0dXJuIHh0YWJfd3JpdGUoZXRhYi5zdGF0ZWZuLCBldGFiLnRtcGZuLCBldGFiLmxvY2tm bik7CisgfQorIAorIC8qCitkaWZmIC0tZ2l0IGEvc3VwcG9ydC9pbmNsdWRlL2NvbXBhdC5oIGIv c3VwcG9ydC9pbmNsdWRlL2NvbXBhdC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAuLjgzMjI5YjY1CistLS0gL2Rldi9udWxsCisrKysgYi9zdXBwb3J0L2luY2x1ZGUvY29t cGF0LmgKK0BAIC0wLDAgKzEsMTAgQEAKKysjaWZuZGVmIENPTVBBVF9ICisrI2RlZmluZSBDT01Q QVRfSAorKworKyNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+CisrCisrI2lmbmRlZiBORVRMSU5L X0VYVF9BQ0sKKysjZGVmaW5lIE5FVExJTktfRVhUX0FDSyAxMQorKyNlbmRpZgorKworKyNlbmRp ZiAvKiBDT01QQVRfSCAqLworZGlmZiAtLWdpdCBhL3N1cHBvcnQvaW5jbHVkZS9uZnNkX25ldGxp bmsuaCBiL3N1cHBvcnQvaW5jbHVkZS9uZnNkX25ldGxpbmsuaAoraW5kZXggMmQ3MDhkMjQuLjNk MDc2ZDE3IDEwMDY0NAorLS0tIGEvc3VwcG9ydC9pbmNsdWRlL25mc2RfbmV0bGluay5oCisrKysg Yi9zdXBwb3J0L2luY2x1ZGUvbmZzZF9uZXRsaW5rLmgKK0BAIC0xNTEsMTUgKzE1MSw2IEBAIGVu dW0geworIAlORlNEX0FfQVVUSF9GTEFWT1JfTUFYID0gKF9fTkZTRF9BX0FVVEhfRkxBVk9SX01B WCAtIDEpCisgfTsKKyAKKy1lbnVtIHsKKy0JTkZTRF9BX1NWQ19FWFBPUlRfUkVRX1NFUU5PID0g MSwKKy0JTkZTRF9BX1NWQ19FWFBPUlRfUkVRX0NMSUVOVCwKKy0JTkZTRF9BX1NWQ19FWFBPUlRf UkVRX1BBVEgsCistCistCV9fTkZTRF9BX1NWQ19FWFBPUlRfUkVRX01BWCwKKy0JTkZTRF9BX1NW Q19FWFBPUlRfUkVRX01BWCA9IChfX05GU0RfQV9TVkNfRVhQT1JUX1JFUV9NQVggLSAxKQorLX07 CistCisgZW51bSB7CisgCU5GU0RfQV9TVkNfRVhQT1JUX1NFUU5PID0gMSwKKyAJTkZTRF9BX1NW Q19FWFBPUlRfQ0xJRU5ULAorQEAgLTIxMyw2ICsyMDQsNjEgQEAgZW51bSB7CisgCU5GU0RfQV9D QUNIRV9GTFVTSF9NQVggPSAoX19ORlNEX0FfQ0FDSEVfRkxVU0hfTUFYIC0gMSkKKyB9OworIAor K2VudW0geworKwlORlNEX0FfVU5MT0NLX0lQX0FERFJFU1MgPSAxLAorKworKwlfX05GU0RfQV9V TkxPQ0tfSVBfTUFYLAorKwlORlNEX0FfVU5MT0NLX0lQX01BWCA9IChfX05GU0RfQV9VTkxPQ0tf SVBfTUFYIC0gMSkKKyt9OworKworK2VudW0geworKwlORlNEX0FfVU5MT0NLX0ZJTEVTWVNURU1f UEFUSCA9IDEsCisrCisrCV9fTkZTRF9BX1VOTE9DS19GSUxFU1lTVEVNX01BWCwKKysJTkZTRF9B X1VOTE9DS19GSUxFU1lTVEVNX01BWCA9IChfX05GU0RfQV9VTkxPQ0tfRklMRVNZU1RFTV9NQVgg LSAxKQorK307CisrCisrZW51bSB7CisrCU5GU0RfQV9VTkxPQ0tfRVhQT1JUX1BBVEggPSAxLAor KworKwlfX05GU0RfQV9VTkxPQ0tfRVhQT1JUX01BWCwKKysJTkZTRF9BX1VOTE9DS19FWFBPUlRf TUFYID0gKF9fTkZTRF9BX1VOTE9DS19FWFBPUlRfTUFYIC0gMSkKKyt9OworKworK2VudW0gewor KwlORlNEX0FfU0VSVkVSX1BST0NfRU5UUllfT1AgPSAxLAorKwlORlNEX0FfU0VSVkVSX1BST0Nf RU5UUllfQ09VTlQsCisrCU5GU0RfQV9TRVJWRVJfUFJPQ19FTlRSWV9QQUQsCisrCisrCV9fTkZT RF9BX1NFUlZFUl9QUk9DX0VOVFJZX01BWCwKKysJTkZTRF9BX1NFUlZFUl9QUk9DX0VOVFJZX01B WCA9IChfX05GU0RfQV9TRVJWRVJfUFJPQ19FTlRSWV9NQVggLSAxKQorK307CisrCisrZW51bSB7 CisrCU5GU0RfQV9TRVJWRVJfU1RBVFNfUkNfSElUUyA9IDEsCisrCU5GU0RfQV9TRVJWRVJfU1RB VFNfUkNfTUlTU0VTLAorKwlORlNEX0FfU0VSVkVSX1NUQVRTX1JDX05PQ0FDSEUsCisrCU5GU0Rf QV9TRVJWRVJfU1RBVFNfUEFELAorKwlORlNEX0FfU0VSVkVSX1NUQVRTX0ZIX1NUQUxFLAorKwlO RlNEX0FfU0VSVkVSX1NUQVRTX0lPX1JFQUQsCisrCU5GU0RfQV9TRVJWRVJfU1RBVFNfSU9fV1JJ VEUsCisrCU5GU0RfQV9TRVJWRVJfU1RBVFNfTkVUQ05ULAorKwlORlNEX0FfU0VSVkVSX1NUQVRT X05FVFVEUENOVCwKKysJTkZTRF9BX1NFUlZFUl9TVEFUU19ORVRUQ1BDTlQsCisrCU5GU0RfQV9T RVJWRVJfU1RBVFNfTkVUVENQQ09OTiwKKysJTkZTRF9BX1NFUlZFUl9TVEFUU19SUENDTlQsCisr CU5GU0RfQV9TRVJWRVJfU1RBVFNfUlBDQkFERk1ULAorKwlORlNEX0FfU0VSVkVSX1NUQVRTX1JQ Q0JBREFVVEgsCisrCU5GU0RfQV9TRVJWRVJfU1RBVFNfUlBDQkFEQ0xOVCwKKysJTkZTRF9BX1NF UlZFUl9TVEFUU19QUk9DMl9PUFMsCisrCU5GU0RfQV9TRVJWRVJfU1RBVFNfUFJPQzNfT1BTLAor KwlORlNEX0FfU0VSVkVSX1NUQVRTX1BST0M0X09QUywKKysJTkZTRF9BX1NFUlZFUl9TVEFUU19Q Uk9DNE9QU19PUFMsCisrCisrCV9fTkZTRF9BX1NFUlZFUl9TVEFUU19NQVgsCisrCU5GU0RfQV9T RVJWRVJfU1RBVFNfTUFYID0gKF9fTkZTRF9BX1NFUlZFUl9TVEFUU19NQVggLSAxKQorK307Cisr CisgZW51bSB7CisgCU5GU0RfQ01EX1JQQ19TVEFUVVNfR0VUID0gMSwKKyAJTkZTRF9DTURfVEhS RUFEU19TRVQsCitAQCAtMjI5LDYgKzI3NSwxMCBAQCBlbnVtIHsKKyAJTkZTRF9DTURfRVhQS0VZ X0dFVF9SRVFTLAorIAlORlNEX0NNRF9FWFBLRVlfU0VUX1JFUVMsCisgCU5GU0RfQ01EX0NBQ0hF X0ZMVVNILAorKwlORlNEX0NNRF9VTkxPQ0tfSVAsCisrCU5GU0RfQ01EX1VOTE9DS19GSUxFU1lT VEVNLAorKwlORlNEX0NNRF9VTkxPQ0tfRVhQT1JULAorKwlORlNEX0NNRF9TRVJWRVJfU1RBVFNf R0VULAorIAorIAlfX05GU0RfQ01EX01BWCwKKyAJTkZTRF9DTURfTUFYID0gKF9fTkZTRF9DTURf TUFYIC0gMSkKK2RpZmYgLS1naXQgYS9zdXBwb3J0L2luY2x1ZGUvbmZzZG5sLmggYi9zdXBwb3J0 L2luY2x1ZGUvbmZzZG5sLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4u MzUyODAxZTUKKy0tLSAvZGV2L251bGwKKysrKyBiL3N1cHBvcnQvaW5jbHVkZS9uZnNkbmwuaAor QEAgLTAsMCArMSwzNCBAQAorKy8qCisrICogSGVscGVyIGZvciBzZW5kaW5nIG5mc2QgZ2VuZXJp YyBuZXRsaW5rIGNvbW1hbmRzLgorKyAqCisrICogVXNlZCBieSBib3RoIG5mc2RjdGwgYW5kIGV4 cG9ydGZzLgorKyAqLworKworKyNpZm5kZWYgTkZTX1VUSUxTX05GU0ROTF9ICisrI2RlZmluZSBO RlNfVVRJTFNfTkZTRE5MX0gKKysKKysjaWZkZWYgSEFWRV9ORlNEX05FVExJTksKKysKKysvKioK KysgKiBuZnNkX25sX2NtZF9zdHIgLSBzZW5kIGFuIG5mc2QgbmV0bGluayBjb21tYW5kIGNhcnJ5 aW5nIGEgc3RyaW5nIGF0dHJpYnV0ZQorKyAqIEBjbWQ6ICAgTkZTRF9DTURfKiBjb21tYW5kIG51 bWJlcgorKyAqIEBhdHRyOiAgTkZTRF9BXyogYXR0cmlidXRlIG51bWJlcgorKyAqIEB2YWx1ZTog TlVMLXRlcm1pbmF0ZWQgc3RyaW5nIHZhbHVlIGZvciB0aGUgYXR0cmlidXRlCisrICoKKysgKiBP cGVucyBhIGdlbmV0bGluayBjb25uZWN0aW9uLCByZXNvbHZlcyB0aGUgIm5mc2QiIGZhbWlseSwg c2VuZHMgYQorKyAqIHNpbmdsZSAiZG8iIGNvbW1hbmQgd2l0aCBvbmUgc3RyaW5nIGF0dHJpYnV0 ZSwgd2FpdHMgZm9yIHRoZSBBQ0ssCisrICogYW5kIGNsZWFucyB1cC4KKysgKgorKyAqIFJldHVy bnMgMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KKysgKi8KKytp bnQgbmZzZF9ubF9jbWRfc3RyKGludCBjbWQsIGludCBhdHRyLCBjb25zdCBjaGFyICp2YWx1ZSk7 CisrCisrI2Vsc2UKKysKKytzdGF0aWMgaW5saW5lIGludCBuZnNkX25sX2NtZF9zdHIoaW50IGNt ZCwgaW50IGF0dHIsIGNvbnN0IGNoYXIgKnZhbHVlKQorK3sKKysJcmV0dXJuIC1FTk9TWVM7Cisr fQorKworKyNlbmRpZiAvKiBIQVZFX05GU0RfTkVUTElOSyAqLworKyNlbmRpZiAvKiBORlNfVVRJ TFNfTkZTRE5MX0ggKi8KK2RpZmYgLS1naXQgYS9zdXBwb3J0L25mcy9NYWtlZmlsZS5hbSBiL3N1 cHBvcnQvbmZzL01ha2VmaWxlLmFtCitpbmRleCA1YmZkNzFhOS4uNjRhZDVkMDcgMTAwNjQ0Cist LS0gYS9zdXBwb3J0L25mcy9NYWtlZmlsZS5hbQorKysrIGIvc3VwcG9ydC9uZnMvTWFrZWZpbGUu YW0KK0BAIC0xMSw2ICsxMSwxMyBAQCBsaWJuZnNfbGFfU09VUkNFUyA9IGV4cG9ydHMuYyBybXRh Yi5jIHhpby5jIHJwY21pc2MuYyBycGNkaXNwYXRjaC5jIFwKKyBsaWJuZnNfbGFfTElCQUREID0g bGlibmZzY29uZi5sYSAtbHV1aWQKKyBsaWJuZnNfbGFfQ1BQRkxBR1MgPSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAtSSQodG9wX3NyY2Rpcikvc3VwcG9ydC9yZWV4cG9ydAorIAorK2lmIENP TkZJR19ORlNEQ1RMCisrbGlibmZzX2xhX1NPVVJDRVMgKz0gbmZzZG5sLmMKKytsaWJuZnNfbGFf Q1BQRkxBR1MgKz0gJChMSUJOTDNfQ0ZMQUdTKSAkKExJQk5MR0VOTDNfQ0ZMQUdTKSBcCisrCQkg ICAgICAtSSQodG9wX3NyY2RpcikvdXRpbHMvbmZzZGN0bAorK2xpYm5mc19sYV9MSUJBREQgKz0g JChMSUJOTDNfTElCUykgJChMSUJOTEdFTkwzX0xJQlMpCisrZW5kaWYKKysKKyBsaWJuZnNjb25m X2xhX1NPVVJDRVMgPSBjb25mZmlsZS5jIHhsb2cuYworIAorIE1BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KK2RpZmYgLS1naXQgYS9zdXBwb3J0L25mcy9maF9rZXlfZmlsZS5jIGIv c3VwcG9ydC9uZnMvZmhfa2V5X2ZpbGUuYworaW5kZXggNWY1ZWFmYzEuLjgxZWExNTAwIDEwMDY0 NAorLS0tIGEvc3VwcG9ydC9uZnMvZmhfa2V5X2ZpbGUuYworKysrIGIvc3VwcG9ydC9uZnMvZmhf a2V5X2ZpbGUuYworQEAgLTI2LDYgKzI2LDcgQEAKKyAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cisg I2luY2x1ZGUgPHVuaXN0ZC5oPgorICNpbmNsdWRlIDxlcnJuby5oPgorKyNpbmNsdWRlIDxzdHJp bmcuaD4KKyAjaW5jbHVkZSA8dXVpZC91dWlkLmg+CisgCisgI2luY2x1ZGUgIm5mc2xpYi5oIgor ZGlmZiAtLWdpdCBhL3N1cHBvcnQvbmZzL2dldHBvcnQuYyBiL3N1cHBvcnQvbmZzL2dldHBvcnQu YworaW5kZXggODEzZjdiZjkuLjYwOGUxODViIDEwMDY0NAorLS0tIGEvc3VwcG9ydC9uZnMvZ2V0 cG9ydC5jCisrKysgYi9zdXBwb3J0L25mcy9nZXRwb3J0LmMKK0BAIC00NTIsMTEgKzQ1MiwxMiBA QCBjaGFyICpuZnNfc29ja2FkZHIydW5pdmVyc2FsKGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqc2Fw KQorIAl1aW50MTZfdCBwb3J0OworIAlzaXplX3QgY291bnQ7CisgCWNoYXIgKnJlc3VsdDsKKy0J aW50IGxlbjsKKysJaW50IGxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpOworIAorIAlzd2l0 Y2ggKHNhcC0+c2FfZmFtaWx5KSB7CisgCWNhc2UgQUZfTE9DQUw6CistCQlyZXR1cm4gc3RybmR1 cChzdW4tPnN1bl9wYXRoLCBzaXplb2Yoc3VuLT5zdW5fcGF0aCkpOworKwkJc2l6ZV90IHBhdGhf bGVuID0gbGVuIC0gb2Zmc2V0b2Yoc3RydWN0IHNvY2thZGRyX3VuLCBzdW5fcGF0aCk7CisrCQly ZXR1cm4gc3RybmR1cChzdW4tPnN1bl9wYXRoLCBwYXRoX2xlbik7CisgCWNhc2UgQUZfSU5FVDoK KyAJCWlmIChpbmV0X250b3AoQUZfSU5FVCwgKGNvbnN0IHZvaWQgKikmc2luLT5zaW5fYWRkci5z X2FkZHIsCisgCQkJCQlidWYsIChzb2NrbGVuX3Qpc2l6ZW9mKGJ1ZikpID09IE5VTEwpCitkaWZm IC0tZ2l0IGEvc3VwcG9ydC9uZnMvbmZzZG5sLmMgYi9zdXBwb3J0L25mcy9uZnNkbmwuYworbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi5kZWQwMzViOQorLS0tIC9kZXYvbnVs bAorKysrIGIvc3VwcG9ydC9uZnMvbmZzZG5sLmMKK0BAIC0wLDAgKzEsMTI1IEBACisrLyoKKysg KiBuZnNkbmwuYyAtLSBzZW5kIG5mc2QgZ2VuZXJpYyBuZXRsaW5rIGNvbW1hbmRzCisrICoKKysg KiBIZWxwZXIgc2hhcmVkIGJ5IG5mc2RjdGwgYW5kIGV4cG9ydGZzLgorKyAqLworKworKyNpZmRl ZiBIQVZFX0NPTkZJR19ICisrI2luY2x1ZGUgPGNvbmZpZy5oPgorKyNlbmRpZgorKworKyNpbmNs dWRlIDxlcnJuby5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysKKysjaW5jbHVkZSA8bmV0bGlu ay9nZW5sL2dlbmwuaD4KKysjaW5jbHVkZSA8bmV0bGluay9nZW5sL2N0cmwuaD4KKysjaW5jbHVk ZSA8bmV0bGluay9tc2cuaD4KKysjaW5jbHVkZSA8bmV0bGluay9hdHRyLmg+CisrCisrI2luY2x1 ZGUgIm5mc2xpYi5oIgorKyNpbmNsdWRlICJ4bG9nLmgiCisrI2luY2x1ZGUgIm5mc2RubC5oIgor KworKyNpZmRlZiBVU0VfU1lTVEVNX05GU0RfTkVUTElOS19ICisrI2luY2x1ZGUgPGxpbnV4L25m c2RfbmV0bGluay5oPgorKyNlbHNlCisrI2luY2x1ZGUgIm5mc2RfbmV0bGluay5oIgorKyNlbmRp ZgorKworKyNkZWZpbmUgTkZTRE5MX0JVRlNJWkUJKDQwOTYpCisrCisrc3RhdGljIGludCBlcnJv cl9oYW5kbGVyKHN0cnVjdCBzb2NrYWRkcl9ubCAqVU5VU0VEKG5sYSksIHN0cnVjdCBubG1zZ2Vy ciAqZXJyLAorKwkJCSB2b2lkICphcmcpCisreworKwlpbnQgKnJldCA9IGFyZzsKKysJKnJldCA9 IGVyci0+ZXJyb3I7CisrCXJldHVybiBOTF9TVE9QOworK30KKysKKytzdGF0aWMgaW50IGZpbmlz aF9oYW5kbGVyKHN0cnVjdCBubF9tc2cgKlVOVVNFRChtc2cpLCB2b2lkICphcmcpCisreworKwlp bnQgKnJldCA9IGFyZzsKKysJKnJldCA9IDA7CisrCXJldHVybiBOTF9TS0lQOworK30KKysKKytz dGF0aWMgaW50IGFja19oYW5kbGVyKHN0cnVjdCBubF9tc2cgKlVOVVNFRChtc2cpLAorKwkJICAg ICAgIHZvaWQgKmFyZykKKyt7CisrCWludCAqcmV0ID0gYXJnOworKwkqcmV0ID0gMDsKKysJcmV0 dXJuIE5MX1NUT1A7CisrfQorKworKy8qKgorKyAqIG5mc2RfbmxfY21kX3N0ciAtIHNlbmQgYW4g bmZzZCBuZXRsaW5rIGNvbW1hbmQgY2FycnlpbmcgYSBzdHJpbmcgYXR0cmlidXRlCisrICogQGNt ZDogICBORlNEX0NNRF8qIGNvbW1hbmQgbnVtYmVyCisrICogQGF0dHI6ICBORlNEX0FfKiBhdHRy aWJ1dGUgbnVtYmVyCisrICogQHZhbHVlOiBOVUwtdGVybWluYXRlZCBzdHJpbmcgdmFsdWUgZm9y IHRoZSBhdHRyaWJ1dGUKKysgKgorKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRp dmUgZXJybm8gb24gZmFpbHVyZS4KKysgKi8KKytpbnQgbmZzZF9ubF9jbWRfc3RyKGludCBjbWQs IGludCBhdHRyLCBjb25zdCBjaGFyICp2YWx1ZSkKKyt7CisrCXN0cnVjdCBnZW5sbXNnaGRyICpn aGRyOworKwlzdHJ1Y3Qgbmxfc29jayAqc29jazsKKysJc3RydWN0IG5sX21zZyAqbXNnOworKwlz dHJ1Y3QgbmxfY2IgKmNiOworKwlpbnQgZmFtaWx5OworKwlpbnQgcmV0OworKworKwlzb2NrID0g bmxfc29ja2V0X2FsbG9jKCk7CisrCWlmICghc29jaykKKysJCXJldHVybiAtRU5PTUVNOworKwlp ZiAoZ2VubF9jb25uZWN0KHNvY2spKSB7CisrCQlyZXQgPSAtRUNPTk5SRUZVU0VEOworKwkJZ290 byBvdXRfc29jazsKKysJfQorKwlubF9zb2NrZXRfc2V0X2J1ZmZlcl9zaXplKHNvY2ssIE5GU0RO TF9CVUZTSVpFLCBORlNETkxfQlVGU0laRSk7CisrCisrCWZhbWlseSA9IGdlbmxfY3RybF9yZXNv bHZlKHNvY2ssIE5GU0RfRkFNSUxZX05BTUUpOworKwlpZiAoZmFtaWx5IDwgMCkgeworKwkJcmV0 ID0gZmFtaWx5OworKwkJZ290byBvdXRfc29jazsKKysJfQorKworKwltc2cgPSBubG1zZ19hbGxv YygpOworKwlpZiAoIW1zZykgeworKwkJcmV0ID0gLUVOT01FTTsKKysJCWdvdG8gb3V0X3NvY2s7 CisrCX0KKysJaWYgKCFnZW5sbXNnX3B1dChtc2csIDAsIDAsIGZhbWlseSwgMCwgMCwgMCwgMCkp IHsKKysJCXJldCA9IC1FTk9NRU07CisrCQlnb3RvIG91dF9tc2c7CisrCX0KKysKKysJZ2hkciA9 IG5sbXNnX2RhdGEobmxtc2dfaGRyKG1zZykpOworKwlnaGRyLT5jbWQgPSAoX191OCljbWQ7Cisr CW5sYV9wdXRfc3RyaW5nKG1zZywgYXR0ciwgdmFsdWUpOworKworKwljYiA9IG5sX2NiX2FsbG9j KE5MX0NCX0NVU1RPTSk7CisrCWlmICghY2IpIHsKKysJCXJldCA9IC1FTk9NRU07CisrCQlnb3Rv IG91dF9tc2c7CisrCX0KKysKKysJcmV0ID0gbmxfc2VuZF9hdXRvKHNvY2ssIG1zZyk7CisrCWlm IChyZXQgPCAwKQorKwkJZ290byBvdXRfY2I7CisrCisrCXJldCA9IDE7CisrCW5sX2NiX2Vycihj YiwgTkxfQ0JfQ1VTVE9NLCBlcnJvcl9oYW5kbGVyLCAmcmV0KTsKKysJbmxfY2Jfc2V0KGNiLCBO TF9DQl9GSU5JU0gsIE5MX0NCX0NVU1RPTSwgZmluaXNoX2hhbmRsZXIsICZyZXQpOworKwlubF9j Yl9zZXQoY2IsIE5MX0NCX0FDSywgTkxfQ0JfQ1VTVE9NLCBhY2tfaGFuZGxlciwgJnJldCk7Cisr CisrCXdoaWxlIChyZXQgPiAwKQorKwkJbmxfcmVjdm1zZ3Moc29jaywgY2IpOworKworK291dF9j YjoKKysJbmxfY2JfcHV0KGNiKTsKKytvdXRfbXNnOgorKwlubG1zZ19mcmVlKG1zZyk7Cisrb3V0 X3NvY2s6CisrCW5sX3NvY2tldF9mcmVlKHNvY2spOworKwlyZXR1cm4gcmV0OworK30KK2RpZmYg LS1naXQgYS9zdXBwb3J0L25mc2lkbWFwL2xpYm5mc2lkbWFwLmMgYi9zdXBwb3J0L25mc2lkbWFw L2xpYm5mc2lkbWFwLmMKK2luZGV4IGUxNDc1ODc5Li41Mzc3YTBlZSAxMDA2NDQKKy0tLSBhL3N1 cHBvcnQvbmZzaWRtYXAvbGlibmZzaWRtYXAuYworKysrIGIvc3VwcG9ydC9uZnNpZG1hcC9saWJu ZnNpZG1hcC5jCitAQCAtNDA5LDE1ICs0MDksMTQgQEAgaW50IG5mczRfaW5pdF9uYW1lX21hcHBp bmcoY2hhciAqY29uZmZpbGUpCisgCWlmIChpZG1hcF92ZXJib3NpdHkgPj0gMSkgeworIAkJc3Ry dWN0IGNvbmZfbGlzdF9ub2RlICpyOworIAkJY2hhciAqYnVmID0gTlVMTDsKKy0JCWludCBzaXo9 MDsKKysJCXNpemVfdCBzaXogPSAxOworIAorIAkJaWYgKGxvY2FsX3JlYWxtcykgeworIAkJCVRB SUxRX0ZPUkVBQ0gociwgJmxvY2FsX3JlYWxtcy0+ZmllbGRzLCBsaW5rKSB7CisgCQkJCXNpeiAr PSAoc3RybGVuKHItPmZpZWxkKSs0KTsKKyAJCQl9CistCQkJYnVmID0gbWFsbG9jKHNpeik7Cisr CQkJYnVmID0gY2FsbG9jKDEsIHNpeik7CisgCQkJaWYgKGJ1ZikgeworLQkJCQkqYnVmID0gMDsK KyAJCQkJVEFJTFFfRk9SRUFDSChyLCAmbG9jYWxfcmVhbG1zLT5maWVsZHMsIGxpbmspIHsKKyAJ CQkJCXNwcmludGYoYnVmK3N0cmxlbihidWYpLCAiJyVzJyAiLCByLT5maWVsZCk7CisgCQkJCX0K K2RpZmYgLS1naXQgYS9zdXBwb3J0L3JlZXhwb3J0L2JhY2tlbmRfc3FsaXRlLmMgYi9zdXBwb3J0 L3JlZXhwb3J0L2JhY2tlbmRfc3FsaXRlLmMKK2luZGV4IDBlYjVlYTM3Li5hMWU5ODFlNCAxMDA2 NDQKKy0tLSBhL3N1cHBvcnQvcmVleHBvcnQvYmFja2VuZF9zcWxpdGUuYworKysrIGIvc3VwcG9y dC9yZWV4cG9ydC9iYWNrZW5kX3NxbGl0ZS5jCitAQCAtOSw2ICs5LDggQEAKKyAjaW5jbHVkZSA8 c3RyaW5nLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlIDxzeXMvc3lzY2Fs bC5oPgorKworICNpZmRlZiBIQVZFX0dFVFJBTkRPTQorICMgaW5jbHVkZSA8c3lzL3JhbmRvbS5o PgorICMgaWYgIWRlZmluZWQoU1lTX2dldHJhbmRvbSkgJiYgZGVmaW5lZChfX05SX2dldHJhbmRv bSkKK2RpZmYgLS1naXQgYS90b29scy9uZnMtaW9zdGF0L25mcy1pb3N0YXQucHkgYi90b29scy9u ZnMtaW9zdGF0L25mcy1pb3N0YXQucHkKK2luZGV4IDY5ZDI0YTExLi5hZjA0YWFjNSAxMDA3NTUK Ky0tLSBhL3Rvb2xzL25mcy1pb3N0YXQvbmZzLWlvc3RhdC5weQorKysrIGIvdG9vbHMvbmZzLWlv c3RhdC9uZnMtaW9zdGF0LnB5CitAQCAtMzI3LDcgKzMyNyw3IEBAIGNsYXNzIERldmljZURhdGE6 CisgICAgICAgICAgICAgcHJpbnQoKQorICAgICAgICAgICAgIHByaW50KCclZCBjb25nZXN0aW9u IHdhaXRzJyAlIGNvbmdlc3Rpb253YWl0cykKKyAKKy0gICAgZGVmIF9fcHJpbnRfcnBjX29wX3N0 YXRzKHNlbGYsIG9wLCBzYW1wbGVfdGltZSk6CisrICAgIGRlZiBfX3ByaW50X3JwY19vcF9zdGF0 cyhzZWxmLCBvcCwgc2FtcGxlX3RpbWUsIHVzZV9tYj1GYWxzZSk6CisgICAgICAgICAiIiJQcmlu dCBnZW5lcmljIHN0YXRzIGZvciBvbmUgUlBDIG9wCisgICAgICAgICAiIiIKKyAgICAgICAgIGlm IG9wIG5vdCBpbiBzZWxmLl9fcnBjX2RhdGE6CitAQCAtMzQzLDkgKzM0MywxOSBAQCBjbGFzcyBE ZXZpY2VEYXRhOgorICAgICAgICAgaWYgbGVuKHJwY19zdGF0cykgPj0gOToKKyAgICAgICAgICAg ICBlcnJzID0gZmxvYXQocnBjX3N0YXRzWzhdKQorIAorKyAgICAgICAgIyBzY2FsZSB0byBNQiBp ZiByZXF1ZXN0ZWQKKysgICAgICAgIGlmIHVzZV9tYjoKKysgICAgICAgICAgICB0aHJvdWdocHV0 ID0ga2lsb2J5dGVzIC8gMTAyNC4wCisrICAgICAgICAgICAgdGhyb3VnaHB1dF9sYWJlbCA9ICdN Qi9zJworKyAgICAgICAgICAgIHBlcl9vcF9sYWJlbCA9ICdNQi9vcCcKKysgICAgICAgIGVsc2U6 CisrICAgICAgICAgICAgdGhyb3VnaHB1dCA9IGtpbG9ieXRlcworKyAgICAgICAgICAgIHRocm91 Z2hwdXRfbGFiZWwgPSAna0IvcycKKysgICAgICAgICAgICBwZXJfb3BfbGFiZWwgPSAna0Ivb3An CisrCisgICAgICAgICAjIHByZXZlbnQgZmxvYXRpbmcgcG9pbnQgZXhjZXB0aW9ucworICAgICAg ICAgaWYgb3BzICE9IDA6CistICAgICAgICAgICAga2JfcGVyX29wID0ga2lsb2J5dGVzIC8gb3Bz CisrICAgICAgICAgICAgdW5pdF9wZXJfb3AgPSB0aHJvdWdocHV0IC8gb3BzCisgICAgICAgICAg ICAgcmV0cmFuc19wZXJjZW50ID0gKHJldHJhbnMgKiAxMDApIC8gb3BzCisgICAgICAgICAgICAg cnR0X3Blcl9vcCA9IHJ0dCAvIG9wcworICAgICAgICAgICAgIGV4ZV9wZXJfb3AgPSBleGUgLyBv cHMKK0BAIC0zNTMsNyArMzYzLDcgQEAgY2xhc3MgRGV2aWNlRGF0YToKKyAgICAgICAgICAgICBp ZiBsZW4ocnBjX3N0YXRzKSA+PSA5OgorICAgICAgICAgICAgICAgICBlcnJzX3BlcmNlbnQgPSAo ZXJycyAqIDEwMCkgLyBvcHMKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAga2JfcGVyX29w ID0gMC4wCisrICAgICAgICAgICAgdW5pdF9wZXJfb3AgPSAwLjAKKyAgICAgICAgICAgICByZXRy YW5zX3BlcmNlbnQgPSAwLjAKKyAgICAgICAgICAgICBydHRfcGVyX29wID0gMC4wCisgICAgICAg ICAgICAgZXhlX3Blcl9vcCA9IDAuMAorQEAgLTM2NCw4ICszNzQsOCBAQCBjbGFzcyBEZXZpY2VE YXRhOgorICAgICAgICAgb3AgKz0gJzonCisgICAgICAgICBwcmludChmb3JtYXQob3AubG93ZXIo KSwgJzwxNnMnKSwgZW5kPScnKQorICAgICAgICAgcHJpbnQoZm9ybWF0KCdvcHMvcycsICc+OHMn KSwgZW5kPScnKQorLSAgICAgICAgcHJpbnQoZm9ybWF0KCdrQi9zJywgJz4xNnMnKSwgZW5kPScn KQorLSAgICAgICAgcHJpbnQoZm9ybWF0KCdrQi9vcCcsICc+MTZzJyksIGVuZD0nJykKKysgICAg ICAgIHByaW50KGZvcm1hdCh0aHJvdWdocHV0X2xhYmVsLCAnPjE2cycpLCBlbmQ9JycpCisrICAg ICAgICBwcmludChmb3JtYXQocGVyX29wX2xhYmVsLCAnPjE2cycpLCBlbmQ9JycpCisgICAgICAg ICBwcmludChmb3JtYXQoJ3JldHJhbnMnLCAnPjE2cycpLCBlbmQ9JycpCisgICAgICAgICBwcmlu dChmb3JtYXQoJ2F2ZyBSVFQgKG1zKScsICc+MTZzJyksIGVuZD0nJykKKyAgICAgICAgIHByaW50 KGZvcm1hdCgnYXZnIGV4ZSAobXMpJywgJz4xNnMnKSwgZW5kPScnKQorQEAgLTM3NSw4ICszODUs OCBAQCBjbGFzcyBEZXZpY2VEYXRhOgorICAgICAgICAgcHJpbnQoKQorIAorICAgICAgICAgcHJp bnQoZm9ybWF0KChvcHMgLyBzYW1wbGVfdGltZSksICc+MjQuM2YnKSwgZW5kPScnKQorLSAgICAg ICAgcHJpbnQoZm9ybWF0KChraWxvYnl0ZXMgLyBzYW1wbGVfdGltZSksICc+MTYuM2YnKSwgZW5k PScnKQorLSAgICAgICAgcHJpbnQoZm9ybWF0KGtiX3Blcl9vcCwgJz4xNi4zZicpLCBlbmQ9Jycp CisrICAgICAgICBwcmludChmb3JtYXQoKHRocm91Z2hwdXQgLyBzYW1wbGVfdGltZSksICc+MTYu M2YnKSwgZW5kPScnKQorKyAgICAgICAgcHJpbnQoZm9ybWF0KHVuaXRfcGVyX29wLCAnPjE2LjNm JyksIGVuZD0nJykKKyAgICAgICAgIHJldHJhbnNtaXRzID0gJ3swOj4xMC4wZn0gKHsxOj4zLjFm fSUpJy5mb3JtYXQocmV0cmFucywgcmV0cmFuc19wZXJjZW50KS5zdHJpcCgpCisgICAgICAgICBw cmludChmb3JtYXQocmV0cmFuc21pdHMsICc+MTYnKSwgZW5kPScnKQorICAgICAgICAgcHJpbnQo Zm9ybWF0KHJ0dF9wZXJfb3AsICc+MTYuM2YnKSwgZW5kPScnKQorQEAgLTM5NSw5ICs0MDUsMTEg QEAgY2xhc3MgRGV2aWNlRGF0YToKKyAgICAgICAgICAgICBzYW1wbGVfdGltZSA9IDE7CisgICAg ICAgICByZXR1cm4gKHNlbmRzIC8gc2FtcGxlX3RpbWUpCisgCistICAgIGRlZiBkaXNwbGF5X2lv c3RhdHMoc2VsZiwgc2FtcGxlX3RpbWUsIHdoaWNoKToKKysgICAgZGVmIGRpc3BsYXlfaW9zdGF0 cyhzZWxmLCBzYW1wbGVfdGltZSwgb3B0aW9ucyk6CisgICAgICAgICAiIiJEaXNwbGF5IE5GUyBh bmQgUlBDIHN0YXRzIGluIGFuIGlvc3RhdC1saWtlIHdheQorICAgICAgICAgIiIiCisrICAgICAg ICB3aGljaCA9IG9wdGlvbnMud2hpY2gKKysgICAgICAgIHVzZV9tYiA9IG9wdGlvbnMubWVnYWJ5 dGVzCisgICAgICAgICBzZW5kcyA9IGZsb2F0KHNlbGYuX19ycGNfZGF0YVsncnBjc2VuZHMnXSkK KyAgICAgICAgIGlmIHNhbXBsZV90aW1lID09IDA6CisgICAgICAgICAgICAgc2FtcGxlX3RpbWUg PSBmbG9hdChzZWxmLl9fbmZzX2RhdGFbJ2FnZSddKQorQEAgLTQyMywyMSArNDM1LDIxIEBAIGNs YXNzIERldmljZURhdGE6CisgICAgICAgICBwcmludCgpCisgCisgICAgICAgICBpZiB3aGljaCA9 PSAwOgorLSAgICAgICAgICAgIHNlbGYuX19wcmludF9ycGNfb3Bfc3RhdHMoJ1JFQUQnLCBzYW1w bGVfdGltZSkKKy0gICAgICAgICAgICBzZWxmLl9fcHJpbnRfcnBjX29wX3N0YXRzKCdXUklURScs IHNhbXBsZV90aW1lKQorKyAgICAgICAgICAgIHNlbGYuX19wcmludF9ycGNfb3Bfc3RhdHMoJ1JF QUQnLCBzYW1wbGVfdGltZSwgdXNlX21iKQorKyAgICAgICAgICAgIHNlbGYuX19wcmludF9ycGNf b3Bfc3RhdHMoJ1dSSVRFJywgc2FtcGxlX3RpbWUsIHVzZV9tYikKKyAgICAgICAgIGVsaWYgd2hp Y2ggPT0gMToKKy0gICAgICAgICAgICBzZWxmLl9fcHJpbnRfcnBjX29wX3N0YXRzKCdHRVRBVFRS Jywgc2FtcGxlX3RpbWUpCistICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygn QUNDRVNTJywgc2FtcGxlX3RpbWUpCisrICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9z dGF0cygnR0VUQVRUUicsIHNhbXBsZV90aW1lLCB1c2VfbWIpCisrICAgICAgICAgICAgc2VsZi5f X3ByaW50X3JwY19vcF9zdGF0cygnQUNDRVNTJywgc2FtcGxlX3RpbWUsIHVzZV9tYikKKyAgICAg ICAgICAgICBzZWxmLl9fcHJpbnRfYXR0cl9jYWNoZV9zdGF0cyhzYW1wbGVfdGltZSkKKyAgICAg ICAgIGVsaWYgd2hpY2ggPT0gMjoKKy0gICAgICAgICAgICBzZWxmLl9fcHJpbnRfcnBjX29wX3N0 YXRzKCdMT09LVVAnLCBzYW1wbGVfdGltZSkKKy0gICAgICAgICAgICBzZWxmLl9fcHJpbnRfcnBj X29wX3N0YXRzKCdSRUFERElSJywgc2FtcGxlX3RpbWUpCisrICAgICAgICAgICAgc2VsZi5fX3By aW50X3JwY19vcF9zdGF0cygnTE9PS1VQJywgc2FtcGxlX3RpbWUsIHVzZV9tYikKKysgICAgICAg ICAgICBzZWxmLl9fcHJpbnRfcnBjX29wX3N0YXRzKCdSRUFERElSJywgc2FtcGxlX3RpbWUsIHVz ZV9tYikKKyAgICAgICAgICAgICBpZiAnUkVBRERJUlBMVVMnIGluIHNlbGYuX19ycGNfZGF0YToK Ky0gICAgICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygnUkVBRERJUlBMVVMn LCBzYW1wbGVfdGltZSkKKysgICAgICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0 cygnUkVBRERJUlBMVVMnLCBzYW1wbGVfdGltZSwgdXNlX21iKQorICAgICAgICAgICAgIHNlbGYu X19wcmludF9kaXJfY2FjaGVfc3RhdHMoc2FtcGxlX3RpbWUpCisgICAgICAgICBlbGlmIHdoaWNo ID09IDM6CistICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygnUkVBRCcsIHNh bXBsZV90aW1lKQorLSAgICAgICAgICAgIHNlbGYuX19wcmludF9ycGNfb3Bfc3RhdHMoJ1dSSVRF Jywgc2FtcGxlX3RpbWUpCisrICAgICAgICAgICAgc2VsZi5fX3ByaW50X3JwY19vcF9zdGF0cygn UkVBRCcsIHNhbXBsZV90aW1lLCB1c2VfbWIpCisrICAgICAgICAgICAgc2VsZi5fX3ByaW50X3Jw Y19vcF9zdGF0cygnV1JJVEUnLCBzYW1wbGVfdGltZSwgdXNlX21iKQorICAgICAgICAgICAgIHNl bGYuX19wcmludF9wYWdlX3N0YXRzKHNhbXBsZV90aW1lKQorIAorICAgICAgICAgc3lzLnN0ZG91 dC5mbHVzaCgpCitAQCAtNTAwLDcgKzUxMiw3IEBAIGRlZiBwcmludF9pb3N0YXRfc3VtbWFyeShv bGQsIG5ldywgZGV2aWNlcywgdGltZSwgb3B0aW9ucyk6CisgCisgICAgIGNvdW50ID0gMQorICAg ICBmb3IgZGV2aWNlIGluIGRldmljZXM6CistICAgICAgICBkaXNwbGF5X3N0YXRzW2RldmljZV0u ZGlzcGxheV9pb3N0YXRzKHRpbWUsIG9wdGlvbnMud2hpY2gpCisrICAgICAgICBkaXNwbGF5X3N0 YXRzW2RldmljZV0uZGlzcGxheV9pb3N0YXRzKHRpbWUsIG9wdGlvbnMpCisgCisgICAgICAgICBj b3VudCArPSAxCisgICAgICAgICBpZiAoY291bnQgPiBvcHRpb25zLmxpc3QpOgorQEAgLTU4NSw2 ICs1OTcsMTEgQEAgY2xpZW50IGFyZSBsaXN0ZWQuCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHR5cGU9ImludCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9Imxpc3Qi LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJvbmx5IHByaW50IHN0YXRzIGZv ciBmaXJzdCBMSVNUIG1vdW50IHBvaW50cyIpCisrICAgIGRpc3BsYXlncm91cC5hZGRfb3B0aW9u KCctbScsICctLW1lZ2FieXRlcycsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlv bj0ic3RvcmVfdHJ1ZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9Im1lZ2Fi eXRlcyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImRpc3BsYXkgdGhyb3VnaHB1dCBpbiBtZWdh Ynl0ZXMgcGVyIHNlY29uZCAoTUIvcykgaW5zdGVhZCBvZiBraWxvYnl0ZXMgcGVyIHNlY29uZCAo a0IvcykiKQorICAgICBwYXJzZXIuYWRkX29wdGlvbl9ncm91cChkaXNwbGF5Z3JvdXApCisgCisg ICAgIChvcHRpb25zLCBhcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKHN5cy5hcmd2KQorZGlmZiAt LWdpdCBhL3Rvb2xzL25mcy1pb3N0YXQvbmZzaW9zdGF0Lm1hbiBiL3Rvb2xzL25mcy1pb3N0YXQv bmZzaW9zdGF0Lm1hbgoraW5kZXggMTA0YzdhYjQuLjRmMjQzMThkIDEwMDY0NAorLS0tIGEvdG9v bHMvbmZzLWlvc3RhdC9uZnNpb3N0YXQubWFuCisrKysgYi90b29scy9uZnMtaW9zdGF0L25mc2lv c3RhdC5tYW4KK0BAIC01NiwxNiArNTYsMTYgQEAgVGhpcyBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBi YWNrbG9nIHF1ZXVlLgorIC5SRQorIC5SRQorIC5SUyA4CistLSBcZkJrQi9zXGZSCisrLSBcZkJr Qi9zIChNQi9zKVxmUgorIC5SUworLVRoaXMgaXMgdGhlIG51bWJlciBvZiBrQiB3cml0dGVuL3Jl YWQgcGVyIHNlY29uZC4KKytUaGlzIGlzIHRoZSBudW1iZXIgb2Yga0IgKG9yIE1CKSB3cml0dGVu L3JlYWQgcGVyIHNlY29uZC4KKyAuUkUKKyAuUkUKKyAuUkUKKyAuUlMgOAorLS0gXGZCa0Ivb3Bc ZlIKKystIFxmQmtCL29wIChNQi9vcClcZlIKKyAuUlMKKy1UaGlzIGlzIHRoZSBudW1iZXIgb2Yg a0Igd3JpdHRlbi9yZWFkIHBlciBlYWNoIG9wZXJhdGlvbi4KKytUaGlzIGlzIHRoZSBudW1iZXIg b2Yga0IgKG9yIE1CKSB3cml0dGVuL3JlYWQgcGVyIGVhY2ggb3BlcmF0aW9uLgorIC5SRQorIC5S RQorIC5SRQorQEAgLTEyMiw2ICsxMjIsOSBAQCBzaG93cyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQK KyAuQiBcLWwgTElTVCBvciAiIFwtXC1saXN0PUxJU1QgCisgb25seSBwcmludCBzdGF0cyBmb3Ig Zmlyc3QgTElTVCBtb3VudCBwb2ludHMKKyAuVFAKKysuQiBcLW0gb3IgIiBcLVwtbWVnYWJ5dGVz CisrZGlzcGxheSB0aHJvdWdocHV0IGluIG1lZ2FieXRlcyBwZXIgc2Vjb25kCisrLlRQCisgLkIg XC1wICIgb3IgIiBcLVwtcGFnZQorIGRpc3BsYXlzIHN0YXRpc3RpY3MgcmVsYXRlZCB0byB0aGUg cGFnZSBjYWNoZQorIC5UUAorZGlmZiAtLWdpdCBhL3V0aWxzL2V4cG9ydGZzL2V4cG9ydGZzLmMg Yi91dGlscy9leHBvcnRmcy9leHBvcnRmcy5jCitpbmRleCA5M2YwYmNkNy4uNzY4ZDJkYjcgMTAw NjQ0CistLS0gYS91dGlscy9leHBvcnRmcy9leHBvcnRmcy5jCisrKysgYi91dGlscy9leHBvcnRm cy9leHBvcnRmcy5jCitAQCAtMzksNiArMzksMTUgQEAKKyAjaW5jbHVkZSAieGxvZy5oIgorICNp bmNsdWRlICJjb25mZmlsZS5oIgorICNpbmNsdWRlICJyZWV4cG9ydC5oIgorKyNpbmNsdWRlICJu ZnNkbmwuaCIKKysKKysjaWZkZWYgSEFWRV9ORlNEX05FVExJTksKKysjaWZkZWYgVVNFX1NZU1RF TV9ORlNEX05FVExJTktfSAorKyNpbmNsdWRlIDxsaW51eC9uZnNkX25ldGxpbmsuaD4KKysjZWxz ZQorKyNpbmNsdWRlICJuZnNkX25ldGxpbmsuaCIKKysjZW5kaWYKKysjZW5kaWYKKyAKKyAjaW5j bHVkZSA8bmV0bGluay9nZW5sL2dlbmwuaD4KKyAjaW5jbHVkZSA8bmV0bGluay9nZW5sL2N0cmwu aD4KK0BAIC02Myw2ICs3Miw3IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VfbG9ja2ZpbGUodm9pZCk7 CisgCisgc3RhdGljIGNvbnN0IGNoYXIgKmxvY2tmaWxlID0gRVhQX0xPQ0tGSUxFOworIHN0YXRp YyBpbnQgX2xvY2tmZCA9IC0xOworK3N0YXRpYyBpbnQgZl91bmV4cG9ydF9hbGw7CisgCisgLyoK KyAgKiBJZiB3ZSBhcmVuJ3QgY2FyZWZ1bCwgY2hhbmdlcyBtYWRlIGJ5IGV4cG9ydGZzIGNhbiBi ZSBsb3N0CitAQCAtMjQ2LDcgKzI1Niw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQor IAkgKiBkb24ndCBjYXJlIGFib3V0IHdoYXQgc2hvdWxkIGJlIGV4cG9ydGVkLCBhcyB0aGF0Cisg CSAqIG1heSByZXF1aXJlIEROUyBsb29rdXBzLi4KKyAJICovCistCWlmICghICggIWZfZXhwb3J0 ICYmIGZfYWxsKSkgeworKwlmX3VuZXhwb3J0X2FsbCA9ICFmX2V4cG9ydCAmJiBmX2FsbDsKKysJ aWYgKCFmX3VuZXhwb3J0X2FsbCkgeworIAkJLyogbm90ZTogeHRhYl8qX3JlYWQgZG9lcyBub3Qg dXBkYXRlIGVudHJpZXMgaWYgdGhleSBhbHJlYWR5IGV4aXN0LAorIAkJICogc28gdGhpcyB3aWxs IG5vdCBsb3NlIG5ldyBvcHRpb25zCisgCQkgKi8KK0BAIC0zODAsNiArMzkxLDI2IEBAIGV4cG9y dGZzKGNoYXIgKmFyZywgY2hhciAqb3B0aW9ucywgaW50IHZlcmJvc2UpCisgCQl4bG9nKExfRVJS T1IsICJJbnZhbGlkIGV4cG9ydCBzeW50YXg6ICVzIiwgYXJnKTsKKyB9CisgCisrLyoKKysgKiBD aGVjayB3aGV0aGVyIGFueSBhY3RpdmUgZXhwb3J0IHJlbWFpbnMgZm9yIHRoZSBnaXZlbiBwYXRo IGFjcm9zcworKyAqIGFsbCBjbGllbnQgdHlwZXMuICBSZXR1cm5zIHRydWUgaWYgYXQgbGVhc3Qg b25lIGV4cG9ydCBzdGlsbCBoYXMKKysgKiBtX3h0YWJlbnQgc2V0LgorKyAqLworK3N0YXRpYyBp bnQKKytwYXRoX3N0aWxsX2V4cG9ydGVkKGNvbnN0IGNoYXIgKnBhdGgsIHNpemVfdCBubGVuKQor K3sKKysJbmZzX2V4cG9ydCAqZXhwOworKwlpbnQgaTsKKysKKysJZm9yIChpID0gMDsgaSA8IE1D TF9NQVhUWVBFUzsgaSsrKQorKwkJZm9yIChleHAgPSBleHBvcnRsaXN0W2ldLnBfaGVhZDsgZXhw OyBleHAgPSBleHAtPm1fbmV4dCkKKysJCQlpZiAoZXhwLT5tX3h0YWJlbnQgJiYKKysJCQkgICAg c3RybGVuKGV4cC0+bV9leHBvcnQuZV9wYXRoKSA9PSBubGVuICYmCisrCQkJICAgIHN0cm5jbXAo cGF0aCwgZXhwLT5tX2V4cG9ydC5lX3BhdGgsIG5sZW4pID09IDApCisrCQkJCXJldHVybiAxOwor KwlyZXR1cm4gMDsKKyt9CisrCisgc3RhdGljIHZvaWQKKyB1bmV4cG9ydGZzX3BhcnNlZChjaGFy ICpobmFtZSwgY2hhciAqcGF0aCwgaW50IHZlcmJvc2UpCisgeworQEAgLTQzNCw5ICs0NjUsMzkg QEAgdW5leHBvcnRmc19wYXJzZWQoY2hhciAqaG5hbWUsIGNoYXIgKnBhdGgsIGludCB2ZXJib3Nl KQorIAkJZXhwLT5tX21heWV4cG9ydCA9IDA7CisgCQlzdWNjZXNzID0gMTsKKyAJfQorLQlpZiAo IXN1Y2Nlc3MpCisrCWlmICghc3VjY2VzcykgeworIAkJeGxvZyhMX0VSUk9SLCAiQ291bGQgbm90 IGZpbmQgJyVzOiVzJyB0byB1bmV4cG9ydC4iLCBobmFtZSwgcGF0aCk7CisrCQlnb3RvIG91dDsK KysJfQorIAorKwkvKgorKwkgKiBJZiBubyBleHBvcnRzIHJlbWFpbiBmb3IgdGhpcyBwYXRoLCBh c2sgdGhlIGtlcm5lbCB0bworKwkgKiByZXZva2UgYW55IE5GU3Y0IHN0YXRlIGFuZCBjbG9zZSBj YWNoZWQgZmlsZSBoYW5kbGVzCisrCSAqIGFzc29jaWF0ZWQgd2l0aCBleHBvcnRzIG9mIHRoaXMg cGF0aC4gIFRoaXMgZW5hYmxlcyB0aGUKKysJICogdW5kZXJseWluZyBmaWxlc3lzdGVtIHRvIGJl IHVubW91bnRlZC4KKysJICoKKysJICogU2tpcCB0aGlzIGR1cmluZyAiZXhwb3J0ZnMgLXVhIiAt LSB0aGF0IGlzIGEgc2h1dGRvd24KKysJICogb3BlcmF0aW9uLiAgQ2xpZW50cyBzaG91bGQgd2Fp dCBmb3IgbmZzZCB0byByZXN0YXJ0IGFuZAorKwkgKiByZWNsYWltIHN0YXRlIHRocm91Z2ggdGhl IGdyYWNlIHBlcmlvZCByYXRoZXIgdGhhbgorKwkgKiByZWNlaXZpbmcgTkZTNEVSUl9BRE1JTl9S RVZPS0VELgorKwkgKi8KKysjaWZkZWYgSEFWRV9ORlNEX05FVExJTksKKysJaWYgKCFmX3VuZXhw b3J0X2FsbCAmJiAhcGF0aF9zdGlsbF9leHBvcnRlZChwYXRoLCBubGVuKSkgeworKwkJY2hhciBw YXRoYnVmW05GU19NQVhQQVRITEVOICsgMV07CisrCQlpbnQgcmV0OworKworKwkJbWVtY3B5KHBh dGhidWYsIHBhdGgsIG5sZW4pOworKwkJcGF0aGJ1ZltubGVuXSA9ICdcMCc7CisrCQlyZXQgPSBu ZnNkX25sX2NtZF9zdHIoTkZTRF9DTURfVU5MT0NLX0VYUE9SVCwKKysJCQkJICAgICAgTkZTRF9B X1VOTE9DS19FWFBPUlRfUEFUSCwKKysJCQkJICAgICAgcGF0aGJ1Zik7CisrCQlpZiAocmV0ICYm IHJldCAhPSAtRU5PU1lTKQorKwkJCXhsb2coTF9XQVJOSU5HLAorKwkJCSAgICAgIkZhaWxlZCB0 byByZWxlYXNlIHN0YXRlIGZvciAlczogJXMiLAorKwkJCSAgICAgcGF0aGJ1Ziwgc3RyZXJyb3Io LXJldCkpOworKwl9CisrI2VuZGlmCisrb3V0OgorIAluZnNfZnJlZWFkZHJpbmZvKGFpKTsKKyB9 CisgCitkaWZmIC0tZ2l0IGEvdXRpbHMvZXhwb3J0ZnMvZXhwb3J0ZnMubWFuIGIvdXRpbHMvZXhw b3J0ZnMvZXhwb3J0ZnMubWFuCitpbmRleCAzNzM3ZWU4MS4uYjVlMGM2M2EgMTAwNjQ0CistLS0g YS91dGlscy9leHBvcnRmcy9leHBvcnRmcy5tYW4KKysrKyBiL3V0aWxzL2V4cG9ydGZzL2V4cG9y dGZzLm1hbgorQEAgLTI1Niw2ICsyNTYsMjMgQEAgcGFpci4gVGhpcyBkZWxldGVzIHRoZSBzcGVj aWZpZWQgZW50cnkgZnJvbQorIC5JIC92YXIvbGliL25mcy9ldGFiCisgYW5kIHJlbW92ZXMgdGhl IGNvcnJlc3BvbmRpbmcga2VybmVsIGVudHJ5IChpZiBhbnkpLgorIC5QUAorK1doZW4gdGhlIGxh c3QgY2xpZW50IGZvciBhIGdpdmVuIGV4cG9ydCBwYXRoIGlzIHVuZXhwb3J0ZWQsCisrLkIgZXhw b3J0ZnMKKytzaWduYWxzIHRoZSBrZXJuZWwgdG8gcmV2b2tlIE5GU3Y0IHN0YXRlIChvcGVucywg bG9ja3MsIGFuZAorK2RlbGVnYXRpb25zKSBhbmQgcmVsZWFzZSBjYWNoZWQgc3RhdGUgZm9yIHRo YXQgcGF0aC4KKytXaXRob3V0IHRoaXMgcmV2b2NhdGlvbiwgcmV0YWluZWQgc3RhdGUgd291bGQg cHJldmVudCB0aGUKKyt1bmRlcmx5aW5nIGZpbGVzeXN0ZW0gZnJvbSBiZWluZyB1bm1vdW50ZWQu CisrQWZmZWN0ZWQgY2xpZW50cyByZWNlaXZlCisrLkIgTkZTNEVSUl9BRE1JTl9SRVZPS0VECisr ZXJyb3JzIGZvciBvcGVyYXRpb25zIHRoYXQgdXNlIHJldm9rZWQgc3RhdGUuCisrLlBQCisrLkIg ImV4cG9ydGZzIFwtdWEiCisrZG9lcyBub3QgcmV2b2tlIE5GU3Y0IHN0YXRlLCBob3dldmVyLgor K0lmCisrLkIgbmZzZAorK2lzIHRoZW4gcmVzdGFydGVkLCBjbGllbnRzIG1heSByZWNsYWltIHN0 YXRlIGR1cmluZyB0aGUKKytncmFjZSBwZXJpb2QuCisrLlBQCisgLlNTIER1bXBpbmcgdGhlIEV4 cG9ydCBUYWJsZQorIEludm9raW5nCisgLkIgZXhwb3J0ZnMKK2RpZmYgLS1naXQgYS91dGlscy9u ZnNkY3RsL25mc2RjdGwuYyBiL3V0aWxzL25mc2RjdGwvbmZzZGN0bC5jCitpbmRleCAwMTZkZDJl Yi4uYzcxMjY3NDggMTAwNjQ0CistLS0gYS91dGlscy9uZnNkY3RsL25mc2RjdGwuYworKysrIGIv dXRpbHMvbmZzZGN0bC9uZnNkY3RsLmMKK0BAIC0yNiw2ICsyNiw3IEBACisgI2luY2x1ZGUgPG5l dGxpbmsvbXNnLmg+CisgI2luY2x1ZGUgPG5ldGxpbmsvYXR0ci5oPgorICNpbmNsdWRlIDxsaW51 eC9uZXRsaW5rLmg+CisrI2luY2x1ZGUgImNvbXBhdC5oIgorIAorICNpbmNsdWRlIDxyZWFkbGlu ZS9yZWFkbGluZS5oPgorICNpbmNsdWRlIDxyZWFkbGluZS9oaXN0b3J5Lmg+CitkaWZmIC0tZ2l0 IGEvdXRpbHMvbmZzc3RhdC9NYWtlZmlsZS5hbSBiL3V0aWxzL25mc3N0YXQvTWFrZWZpbGUuYW0K K2luZGV4IGQxNTU1YTdkLi44YjEyMWM0OCAxMDA2NDQKKy0tLSBhL3V0aWxzL25mc3N0YXQvTWFr ZWZpbGUuYW0KKysrKyBiL3V0aWxzL25mc3N0YXQvTWFrZWZpbGUuYW0KK0BAIC01LDggKzUsMTAg QEAgRVhUUkFfRElTVAk9ICQobWFuOF9NQU5TKQorIAorIHNiaW5fUFJPR1JBTVMJPSBuZnNzdGF0 CisgbmZzc3RhdF9TT1VSQ0VTID0gbmZzc3RhdC5jCisrbmZzc3RhdF9DRkxBR1MgPSAkKExJQk5M M19DRkxBR1MpICQoTElCTkxHRU5MM19DRkxBR1MpCisgbmZzc3RhdF9MREFERCA9IC4uLy4uL3N1 cHBvcnQvZXhwb3J0L2xpYmV4cG9ydC5hIFwKKyAJICAgICAgCS4uLy4uL3N1cHBvcnQvbmZzL2xp Ym5mcy5sYSBcCistCQkuLi8uLi9zdXBwb3J0L21pc2MvbGlibWlzYy5hCisrCQkuLi8uLi9zdXBw b3J0L21pc2MvbGlibWlzYy5hIFwKKysJCSQoTElCTkwzX0xJQlMpICQoTElCTkxHRU5MM19MSUJT KQorIAorIE1BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KK2RpZmYgLS1naXQgYS91 dGlscy9uZnNzdGF0L25mc3N0YXQuYyBiL3V0aWxzL25mc3N0YXQvbmZzc3RhdC5jCitpbmRleCBj YTg0NTMyNS4uZjA5ZTFkNmEgMTAwNjQ0CistLS0gYS91dGlscy9uZnNzdGF0L25mc3N0YXQuYwor KysrIGIvdXRpbHMvbmZzc3RhdC9uZnNzdGF0LmMKK0BAIC0yMyw2ICsyMywxNyBAQAorICNpbmNs dWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8dGltZS5oPgorIAorKyNpbmNsdWRlIDxuZXRsaW5r L2dlbmwvZ2VubC5oPgorKyNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvY3RybC5oPgorKyNpbmNsdWRl IDxuZXRsaW5rL21zZy5oPgorKyNpbmNsdWRlIDxuZXRsaW5rL2F0dHIuaD4KKysKKysjaWZkZWYg VVNFX1NZU1RFTV9ORlNEX05FVExJTktfSAorKyNpbmNsdWRlIDxsaW51eC9uZnNkX25ldGxpbmsu aD4KKysjZWxzZQorKyNpbmNsdWRlICJuZnNkX25ldGxpbmsuaCIKKysjZW5kaWYKKysKKyAjZGVm aW5lIE1BWE5SVkFMUwkzMgorIAorIGVudW0geworQEAgLTI3MSw2ICsyODIsNyBAQCBzdGF0aWMg c3RhdGluZm8JCSpnZXRfc3RhdF9pbmZvKGNvbnN0IGNoYXIgKiwgc3RydWN0IHN0YXRpbmZvICop OworIAorIHN0YXRpYyBpbnQJCW1vdW50cyhjb25zdCBjaGFyICopOworIAorK3N0YXRpYyBpbnQJ CWdldF9zdGF0c19uZXRsaW5rKHN0cnVjdCBzdGF0aW5mbyAqKTsKKyBzdGF0aWMgdm9pZAkJZ2V0 X3N0YXRzKGNvbnN0IGNoYXIgKiwgc3RydWN0IHN0YXRpbmZvICosIGludCAqLCBpbnQsCisgCQkJ CQlpbnQpOworIHN0YXRpYyBpbnQJCWhhc19zdGF0cyhjb25zdCB1bnNpZ25lZCBpbnQgKiwgaW50 KTsKK0BAIC0xMDUxLDYgKzEwNjMsMjcyIEBAIG1vdW50cyhjb25zdCBjaGFyICpuYW1lKQorIAly ZXR1cm4gMTsKKyB9CisgCisrLyoKKysgKiBOZXRsaW5rIGhlbHBlcnMgZm9yIGZldGNoaW5nIHNl cnZlciBzdGF0cyB2aWEgR2VuZXJpYyBOZXRsaW5rLgorKyAqLworK3N0YXRpYyBpbnQgbmxfZXJy b3JfaGFuZGxlcihzdHJ1Y3Qgc29ja2FkZHJfbmwgKm5sYSwgc3RydWN0IG5sbXNnZXJyICplcnIs CisrCQkJICAgIHZvaWQgKmFyZykKKyt7CisrCWludCAqcmV0ID0gYXJnOworKworKwkqcmV0ID0g ZXJyLT5lcnJvcjsKKysJcmV0dXJuIE5MX1NLSVA7CisrfQorKworK3N0YXRpYyBpbnQgbmxfZmlu aXNoX2hhbmRsZXIoc3RydWN0IG5sX21zZyAqbXNnLCB2b2lkICphcmcpCisreworKwlpbnQgKnJl dCA9IGFyZzsKKysKKysJKnJldCA9IDA7CisrCXJldHVybiBOTF9TS0lQOworK30KKysKKytzdGF0 aWMgaW50IG5sX2Fja19oYW5kbGVyKHN0cnVjdCBubF9tc2cgKm1zZywgdm9pZCAqYXJnKQorK3sK KysJaW50ICpyZXQgPSBhcmc7CisrCisrCSpyZXQgPSAwOworKwlyZXR1cm4gTkxfU1RPUDsKKyt9 CisrCisrc3RhdGljIHZvaWQgcGFyc2Vfb25lX3Byb2NfZW50cnkoc3RydWN0IG5sYXR0ciAqbmVz dCwgdW5zaWduZWQgaW50ICppbmZvLAorKwkJCQkgdW5zaWduZWQgaW50IG1heF9vcHMpCisrewor KwlzdHJ1Y3QgbmxhdHRyICp0YltORlNEX0FfU0VSVkVSX1BST0NfRU5UUllfTUFYICsgMV07Cisr CXVuc2lnbmVkIGludCBvcCwgY291bnQ7CisrCisrCW5sYV9wYXJzZV9uZXN0ZWQodGIsIE5GU0Rf QV9TRVJWRVJfUFJPQ19FTlRSWV9NQVgsIG5lc3QsIE5VTEwpOworKwlpZiAoIXRiW05GU0RfQV9T RVJWRVJfUFJPQ19FTlRSWV9PUF0gfHwKKysJICAgICF0YltORlNEX0FfU0VSVkVSX1BST0NfRU5U UllfQ09VTlRdKQorKwkJcmV0dXJuOworKworKwlvcCA9IG5sYV9nZXRfdTMyKHRiW05GU0RfQV9T RVJWRVJfUFJPQ19FTlRSWV9PUF0pOworKwljb3VudCA9ICh1bnNpZ25lZCBpbnQpbmxhX2dldF91 NjQodGJbTkZTRF9BX1NFUlZFUl9QUk9DX0VOVFJZX0NPVU5UXSk7CisrCWlmIChvcCA8IG1heF9v cHMpIHsKKysJCWluZm9bMF0gPSBtYXhfb3BzOworKwkJaW5mb1tvcCArIDFdID0gY291bnQ7Cisr CX0KKyt9CisrCisrc3RhdGljIGludCBzdGF0c19ubF9oYW5kbGVyKHN0cnVjdCBubF9tc2cgKm1z Zywgdm9pZCAqYXJnKQorK3sKKysJc3RydWN0IHN0YXRpbmZvICppbmZvID0gYXJnOworKwlzdHJ1 Y3QgZ2VubG1zZ2hkciAqZ25saCA9IG5sbXNnX2RhdGEobmxtc2dfaGRyKG1zZykpOworKwlzdHJ1 Y3QgbmxhdHRyICphdHRyOworKwlzdGF0aW5mbyAqc2k7CisrCWludCByZW07CisrCisrCW5sYV9m b3JfZWFjaF9hdHRyKGF0dHIsIGdlbmxtc2dfYXR0cmRhdGEoZ25saCwgMCksCisrCQkJICBnZW5s bXNnX2F0dHJsZW4oZ25saCwgMCksIHJlbSkgeworKwkJaW50IHR5cGUgPSBubGFfdHlwZShhdHRy KTsKKysKKysJCXN3aXRjaCAodHlwZSkgeworKwkJLyogUmVwbHkgY2FjaGUgKi8KKysJCWNhc2Ug TkZTRF9BX1NFUlZFUl9TVEFUU19SQ19ISVRTOgorKwkJCXNpID0gZ2V0X3N0YXRfaW5mbygicmMi LCBpbmZvKTsKKysJCQlpZiAoc2kpCisrCQkJCXNpLT52YWxwdHJbMF0gPSBubGFfZ2V0X3U2NChh dHRyKTsKKysJCQlicmVhazsKKysJCWNhc2UgTkZTRF9BX1NFUlZFUl9TVEFUU19SQ19NSVNTRVM6 CisrCQkJc2kgPSBnZXRfc3RhdF9pbmZvKCJyYyIsIGluZm8pOworKwkJCWlmIChzaSkKKysJCQkJ c2ktPnZhbHB0clsxXSA9IG5sYV9nZXRfdTY0KGF0dHIpOworKwkJCWJyZWFrOworKwkJY2FzZSBO RlNEX0FfU0VSVkVSX1NUQVRTX1JDX05PQ0FDSEU6CisrCQkJc2kgPSBnZXRfc3RhdF9pbmZvKCJy YyIsIGluZm8pOworKwkJCWlmIChzaSkKKysJCQkJc2ktPnZhbHB0clsyXSA9IG5sYV9nZXRfdTY0 KGF0dHIpOworKwkJCWJyZWFrOworKworKwkJLyogRmlsZWhhbmRsZSAqLworKwkJY2FzZSBORlNE X0FfU0VSVkVSX1NUQVRTX0ZIX1NUQUxFOgorKwkJCXNpID0gZ2V0X3N0YXRfaW5mbygiZmgiLCBp bmZvKTsKKysJCQlpZiAoc2kpCisrCQkJCXNpLT52YWxwdHJbMF0gPSBubGFfZ2V0X3U2NChhdHRy KTsKKysJCQlicmVhazsKKysKKysJCS8qIElPICovCisrCQljYXNlIE5GU0RfQV9TRVJWRVJfU1RB VFNfSU9fUkVBRDoKKysJCQlzaSA9IGdldF9zdGF0X2luZm8oImlvIiwgaW5mbyk7CisrCQkJaWYg KHNpKQorKwkJCQlzaS0+dmFscHRyWzBdID0gbmxhX2dldF91NjQoYXR0cik7CisrCQkJYnJlYWs7 CisrCQljYXNlIE5GU0RfQV9TRVJWRVJfU1RBVFNfSU9fV1JJVEU6CisrCQkJc2kgPSBnZXRfc3Rh dF9pbmZvKCJpbyIsIGluZm8pOworKwkJCWlmIChzaSkKKysJCQkJc2ktPnZhbHB0clsxXSA9IG5s YV9nZXRfdTY0KGF0dHIpOworKwkJCWJyZWFrOworKworKwkJLyogTmV0d29yayAqLworKwkJY2Fz ZSBORlNEX0FfU0VSVkVSX1NUQVRTX05FVENOVDoKKysJCQlzaSA9IGdldF9zdGF0X2luZm8oIm5l dCIsIGluZm8pOworKwkJCWlmIChzaSkKKysJCQkJc2ktPnZhbHB0clswXSA9IG5sYV9nZXRfdTMy KGF0dHIpOworKwkJCWJyZWFrOworKwkJY2FzZSBORlNEX0FfU0VSVkVSX1NUQVRTX05FVFVEUENO VDoKKysJCQlzaSA9IGdldF9zdGF0X2luZm8oIm5ldCIsIGluZm8pOworKwkJCWlmIChzaSkKKysJ CQkJc2ktPnZhbHB0clsxXSA9IG5sYV9nZXRfdTMyKGF0dHIpOworKwkJCWJyZWFrOworKwkJY2Fz ZSBORlNEX0FfU0VSVkVSX1NUQVRTX05FVFRDUENOVDoKKysJCQlzaSA9IGdldF9zdGF0X2luZm8o Im5ldCIsIGluZm8pOworKwkJCWlmIChzaSkKKysJCQkJc2ktPnZhbHB0clsyXSA9IG5sYV9nZXRf dTMyKGF0dHIpOworKwkJCWJyZWFrOworKwkJY2FzZSBORlNEX0FfU0VSVkVSX1NUQVRTX05FVFRD UENPTk46CisrCQkJc2kgPSBnZXRfc3RhdF9pbmZvKCJuZXQiLCBpbmZvKTsKKysJCQlpZiAoc2kp CisrCQkJCXNpLT52YWxwdHJbM10gPSBubGFfZ2V0X3UzMihhdHRyKTsKKysJCQlicmVhazsKKysK KysJCS8qIFJQQyAqLworKwkJY2FzZSBORlNEX0FfU0VSVkVSX1NUQVRTX1JQQ0NOVDoKKysJCQlz aSA9IGdldF9zdGF0X2luZm8oInJwYyIsIGluZm8pOworKwkJCWlmIChzaSkKKysJCQkJc2ktPnZh bHB0clswXSA9IG5sYV9nZXRfdTMyKGF0dHIpOworKwkJCWJyZWFrOworKwkJY2FzZSBORlNEX0Ff U0VSVkVSX1NUQVRTX1JQQ0JBREZNVDoKKysJCQlzaSA9IGdldF9zdGF0X2luZm8oInJwYyIsIGlu Zm8pOworKwkJCWlmIChzaSkKKysJCQkJc2ktPnZhbHB0clsyXSA9IG5sYV9nZXRfdTMyKGF0dHIp OworKwkJCWJyZWFrOworKwkJY2FzZSBORlNEX0FfU0VSVkVSX1NUQVRTX1JQQ0JBREFVVEg6Cisr CQkJc2kgPSBnZXRfc3RhdF9pbmZvKCJycGMiLCBpbmZvKTsKKysJCQlpZiAoc2kpCisrCQkJCXNp LT52YWxwdHJbM10gPSBubGFfZ2V0X3UzMihhdHRyKTsKKysJCQlicmVhazsKKysJCWNhc2UgTkZT RF9BX1NFUlZFUl9TVEFUU19SUENCQURDTE5UOgorKwkJCXNpID0gZ2V0X3N0YXRfaW5mbygicnBj IiwgaW5mbyk7CisrCQkJaWYgKHNpKQorKwkJCQlzaS0+dmFscHRyWzRdID0gbmxhX2dldF91MzIo YXR0cik7CisrCQkJYnJlYWs7CisrCisrCQkvKiBQZXItdmVyc2lvbiBwcm9jZWR1cmUgY291bnRz IChtdWx0aS1hdHRyKSAqLworKwkJY2FzZSBORlNEX0FfU0VSVkVSX1NUQVRTX1BST0MyX09QUzoK KysJCQlzaSA9IGdldF9zdGF0X2luZm8oInByb2MyIiwgaW5mbyk7CisrCQkJaWYgKHNpKQorKwkJ CQlwYXJzZV9vbmVfcHJvY19lbnRyeShhdHRyLCBzaS0+dmFscHRyLAorKwkJCQkJCSAgICAgU1JW UFJPQzJfU1opOworKwkJCWJyZWFrOworKwkJY2FzZSBORlNEX0FfU0VSVkVSX1NUQVRTX1BST0Mz X09QUzoKKysJCQlzaSA9IGdldF9zdGF0X2luZm8oInByb2MzIiwgaW5mbyk7CisrCQkJaWYgKHNp KQorKwkJCQlwYXJzZV9vbmVfcHJvY19lbnRyeShhdHRyLCBzaS0+dmFscHRyLAorKwkJCQkJCSAg ICAgU1JWUFJPQzNfU1opOworKwkJCWJyZWFrOworKwkJY2FzZSBORlNEX0FfU0VSVkVSX1NUQVRT X1BST0M0X09QUzoKKysJCQlzaSA9IGdldF9zdGF0X2luZm8oInByb2M0IiwgaW5mbyk7CisrCQkJ aWYgKHNpKQorKwkJCQlwYXJzZV9vbmVfcHJvY19lbnRyeShhdHRyLCBzaS0+dmFscHRyLAorKwkJ CQkJCSAgICAgU1JWUFJPQzRfU1opOworKwkJCWJyZWFrOworKwkJY2FzZSBORlNEX0FfU0VSVkVS X1NUQVRTX1BST0M0T1BTX09QUzoKKysJCQlzaSA9IGdldF9zdGF0X2luZm8oInByb2M0b3BzIiwg aW5mbyk7CisrCQkJaWYgKHNpKQorKwkJCQlwYXJzZV9vbmVfcHJvY19lbnRyeShhdHRyLCBzaS0+ dmFscHRyLAorKwkJCQkJCSAgICAgU1JWUFJPQzRPUFNfU1opOworKwkJCWJyZWFrOworKwkJfQor Kwl9CisrCisrCXJldHVybiBOTF9PSzsKKyt9CisrCisrLyoKKysgKiBGZXRjaCBzZXJ2ZXIgc3Rh dHMgdmlhIEdlbmVyaWMgTmV0bGluay4KKysgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLTEgb24g ZmFpbHVyZS4KKysgKi8KKytzdGF0aWMgaW50CisrZ2V0X3N0YXRzX25ldGxpbmsoc3RydWN0IHN0 YXRpbmZvICppbmZvKQorK3sKKysJc3RydWN0IG5sX3NvY2sgKnNvY2s7CisrCXN0cnVjdCBubF9t c2cgKm1zZzsKKysJc3RydWN0IG5sX2NiICpjYjsKKysJaW50IGZhbWlseSwgcmV0OworKwlzdGF0 aW5mbyAqc2k7CisrCisrCXNvY2sgPSBubF9zb2NrZXRfYWxsb2MoKTsKKysJaWYgKCFzb2NrKQor KwkJcmV0dXJuIC0xOworKworKwlpZiAoZ2VubF9jb25uZWN0KHNvY2spKSB7CisrCQlubF9zb2Nr ZXRfZnJlZShzb2NrKTsKKysJCXJldHVybiAtMTsKKysJfQorKworKwlmYW1pbHkgPSBnZW5sX2N0 cmxfcmVzb2x2ZShzb2NrLCBORlNEX0ZBTUlMWV9OQU1FKTsKKysJaWYgKGZhbWlseSA8IDApIHsK KysJCW5sX3NvY2tldF9mcmVlKHNvY2spOworKwkJcmV0dXJuIC0xOworKwl9CisrCisrCW1zZyA9 IG5sbXNnX2FsbG9jKCk7CisrCWlmICghbXNnKSB7CisrCQlubF9zb2NrZXRfZnJlZShzb2NrKTsK KysJCXJldHVybiAtMTsKKysJfQorKworKwlpZiAoIWdlbmxtc2dfcHV0KG1zZywgTkxfQVVUT19Q SUQsIE5MX0FVVE9fU0VRLCBmYW1pbHksIDAsCisrCQkJIE5MTV9GX0RVTVAsIE5GU0RfQ01EX1NF UlZFUl9TVEFUU19HRVQsIDApKSB7CisrCQlubG1zZ19mcmVlKG1zZyk7CisrCQlubF9zb2NrZXRf ZnJlZShzb2NrKTsKKysJCXJldHVybiAtMTsKKysJfQorKworKwljYiA9IG5sX2NiX2FsbG9jKE5M X0NCX0NVU1RPTSk7CisrCWlmICghY2IpIHsKKysJCW5sbXNnX2ZyZWUobXNnKTsKKysJCW5sX3Nv Y2tldF9mcmVlKHNvY2spOworKwkJcmV0dXJuIC0xOworKwl9CisrCisrCXJldCA9IG5sX3NlbmRf YXV0byhzb2NrLCBtc2cpOworKwlpZiAocmV0IDwgMCkgeworKwkJbmxfY2JfcHV0KGNiKTsKKysJ CW5sbXNnX2ZyZWUobXNnKTsKKysJCW5sX3NvY2tldF9mcmVlKHNvY2spOworKwkJcmV0dXJuIC0x OworKwl9CisrCisrCXJldCA9IDE7CisrCW5sX2NiX2VycihjYiwgTkxfQ0JfQ1VTVE9NLCBubF9l cnJvcl9oYW5kbGVyLCAmcmV0KTsKKysJbmxfY2Jfc2V0KGNiLCBOTF9DQl9GSU5JU0gsIE5MX0NC X0NVU1RPTSwgbmxfZmluaXNoX2hhbmRsZXIsICZyZXQpOworKwlubF9jYl9zZXQoY2IsIE5MX0NC X0FDSywgTkxfQ0JfQ1VTVE9NLCBubF9hY2tfaGFuZGxlciwgJnJldCk7CisrCW5sX2NiX3NldChj YiwgTkxfQ0JfVkFMSUQsIE5MX0NCX0NVU1RPTSwgc3RhdHNfbmxfaGFuZGxlciwgaW5mbyk7Cisr CisrCXdoaWxlIChyZXQgPiAwKQorKwkJbmxfcmVjdm1zZ3Moc29jaywgY2IpOworKworKwlubF9j Yl9wdXQoY2IpOworKwlubG1zZ19mcmVlKG1zZyk7CisrCW5sX3NvY2tldF9mcmVlKHNvY2spOwor KworKwlpZiAocmV0IDwgMCkKKysJCXJldHVybiAtMTsKKysKKysJLyoKKysJICogQ29tcHV0ZSBk ZXJpdmVkIGZpZWxkcy4gVGhlIHByb2MgZmlsZSBlbWl0cyAicnBjIHJwY2NudAorKwkgKiBiYWRj YWxscyBiYWRmbXQgYmFkYXV0aCBiYWRjbG50IiB3aGVyZSBiYWRjYWxscyBpcyB0aGUgc3VtCisr CSAqIG9mIGJhZGZtdCtiYWRhdXRoK2JhZGNsbnQuIFRoZSBuZXRsaW5rIGludGVyZmFjZSBzZW5k cyB0aGUKKysJICogY29tcG9uZW50cyBpbmRpdmlkdWFsbHksIHNvIHJlY29tcHV0ZSB0aGUgc3Vt IGhlcmUuCisrCSAqLworKwlzaSA9IGdldF9zdGF0X2luZm8oInJwYyIsIGluZm8pOworKwlpZiAo c2kpCisrCQlzaS0+dmFscHRyWzFdID0gc2ktPnZhbHB0clsyXSArIHNpLT52YWxwdHJbM10gKyBz aS0+dmFscHRyWzRdOworKworKwkvKiBDb21wdXRlIHRvdGFscyBmb3IgZWFjaCBzdGF0IGNhdGVn b3J5ICovCisrCWZvciAoc2kgPSBpbmZvOyBzaS0+dGFnOyBzaSsrKSB7CisrCQl1bnNpZ25lZCBp bnQgdG90YWwgPSAwOworKwkJaW50IGk7CisrCisrCQlmb3IgKGkgPSAwOyBpIDwgc2ktPm5ydmFs cyAtIDE7IGkrKykKKysJCQl0b3RhbCArPSBzaS0+dmFscHRyW2ldOworKwkJc2ktPnZhbHB0cltz aS0+bnJ2YWxzIC0gMV0gPSB0b3RhbDsKKysJfQorKworKwlyZXR1cm4gMDsKKyt9CisrCisgc3Rh dGljIHZvaWQKKyBnZXRfc3RhdHMoY29uc3QgY2hhciAqZmlsZSwgc3RydWN0IHN0YXRpbmZvICpp bmZvLCBpbnQgKm9wdCwgaW50IG90aGVyX29wdCwKKyAJCWludCBpc19zcnYpCitAQCAtMTA2MCw2 ICsxMzM4LDEwIEBAIGdldF9zdGF0cyhjb25zdCBjaGFyICpmaWxlLCBzdHJ1Y3Qgc3RhdGluZm8g KmluZm8sIGludCAqb3B0LCBpbnQgb3RoZXJfb3B0LAorIAlpbnQgZXJyID0gMTsKKyAJY2hhciAq bGFiZWwgPSBpc19zcnYgPyAiU2VydmVyIiA6ICJDbGllbnQiOworIAorKwkvKiBUcnkgbmV0bGlu ayBmaXJzdCBmb3Igc2VydmVyIHN0YXRzICovCisrCWlmIChpc19zcnYgJiYgZ2V0X3N0YXRzX25l dGxpbmsoaW5mbykgPT0gMCkKKysJCXJldHVybjsKKysKKyAJLyogdHJ5IHRvIGd1ZXNzIHdoYXQg dHlwZSBvZiBzdGF0IGZpbGUgd2UncmUgZGVhbGluZyB3aXRoICovCisgCWlmICgoZnAgPSBmb3Bl bihmaWxlLCAiciIpKSA9PSBOVUxMKQorIAkJZ290byBvdXQ7CgpkaWZmIC0tZ2l0IGEvbmZzLXV0 aWxzLnNwZWMgYi9uZnMtdXRpbHMuc3BlYwppbmRleCBkMzFkNjA2Li4zMTZlNjgxIDEwMDY0NAot LS0gYS9uZnMtdXRpbHMuc3BlYworKysgYi9uZnMtdXRpbHMuc3BlYwpAQCAtMiw3ICsyLDcgQEAg U3VtbWFyeTogTkZTIHV0aWxpdGllcyBhbmQgc3VwcG9ydGluZyBjbGllbnRzIGFuZCBkYWVtb25z IGZvciB0aGUga2VybmVsIE5GUyBzZXIKIE5hbWU6IG5mcy11dGlscwogVVJMOiBodHRwOi8vbGlu dXgtbmZzLm9yZy8KIFZlcnNpb246IDIuOS4xCi1SZWxlYXNlOiAzLnJjMyV7P2Rpc3R9CitSZWxl YXNlOiAzLnJjNCV7P2Rpc3R9CiBFcG9jaDogMQogCiAjIGdyb3VwIGFsbCAzMmJpdCByZWxhdGVk IGFyY2hzCkBAIC0xNSw3ICsxNSw3IEBAIFNvdXJjZTM6IDI0LW5mcy1zZXJ2ZXIuY29uZgogU291 cmNlNDogMTAtbmZzdjQuY29uZgogU291cmNlNTogMTAtbmZzdjMuY29uZgogCi1QYXRjaDAwMTog bmZzLXV0aWxzLTIuOS4yLXJjMy5wYXRjaAorUGF0Y2gwMDE6IG5mcy11dGlscy0yLjkuMi1yYzQu cGF0Y2gKIAogUGF0Y2gxMDA6IG5mcy11dGlscy0xLjIuMS1zdGF0ZHBhdGgtbWFuLnBhdGNoCiBQ YXRjaDEwMjogbmZzLXV0aWxzLTEuMi41LWlkbWFwLWVycm1zZy5wYXRjaApAQCAtNDc2LDYgKzQ3 Niw5IEBAIHJtIC1mICV7X3N5c2NvbmZkaXJ9L25mc21vdW50LmNvbmYuZC8xMC1uZnN2NC5jb25m CiAle19tYW5kaXJ9LyovcnBjY3RsLjguZ3oKIAogJWNoYW5nZWxvZworKiBTYXQgTWF5IDMwIDIw MjYgU3RldmUgRGlja3NvbiA8c3RldmVkQHJlZGhhdC5jb20+IDIuOS4xLTItcmM0CistIFVwZGF0 ZWQgdG8gdGhlIGxhdGVzdCBSQyByZWxlYXNlOiBuZnMtdXRpbHMtMi05LTItcmM0CisKICogV2Vk IE1heSAyMCAyMDI2IFN0ZXZlIERpY2tzb24gPHN0ZXZlZEByZWRoYXQuY29tPiAyLjkuMS0zLXJj MwogLSBBZGQgJSVnaG9zdCB0byBjbGVhbiB1cCAxMC1uZnN2NC5jb25mIGFuZCAxMC1uZnN2My5j b25mIGRlY2xhcmF0aW9ucwogCg==