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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: - Upgrade to the FSF GDB gdb-6.8.50 snapshot: 6.8.50.20090910 Date: Sat, 27 Jun 2026 23:54:24 GMT Message-ID: <178260446471.1.14974643731823806117.rpms-gdb-806f8c893c8b@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 806f8c893c8bfcce9672ad50f4cb226cc8c10b59 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogODA2ZjhjODkzYzhiZmNjZTk2NzJhZDUwZjRjYjIyNmNjOGMx MGI1OQogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3Jh cHJvamVjdC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDktMTBUMjE6Mzc6NDErMDA6 MDAKICAgICAgICAgICAgU3RhdHMgIDogKzQyODUvLTM0MTkgaW4gMTYgZmlsZShzKQogICAgICAg ICAgICBVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jLzgw NmY4Yzg5M2M4YmZjY2U5NjcyYWQ1MGY0Y2IyMjZjYzhjMTBiNTk/YnJhbmNoPWdkYi0xNy4yLXJl YmFzZS1mNDQKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgLSBVcGdyYWRlIHRvIHRoZSBG U0YgR0RCIGdkYi02LjguNTAgc25hcHNob3Q6IDYuOC41MC4yMDA5MDkxMAotIGFyY2hlci1qYW5r cmF0b2NodmlsLWZlZG9yYTEyIGNvbW1pdDoKICAgIDk0MWViNDg3YTQyOTMzZTQ0MmNiNGQxMTM0 NGNkYTk2ZWNiOGEwNGQKLSBbbmV4dC1vdmVyLXRocm93XSBGaXggZXhjZXB0aW9ucyB0aHJvd24g ZHVyaW5nIG5leHQgKFRvbSBUcm9tZXkpLgotIFticF9sb2NhdGlvbi1hY2NlbF0gRG8gbm90ICht dWNoKSBzbG93IGRvd24gb24gNTAwKyBicmVha3BvaW50cyAobWUpLgoKLS0tCmRpZmYgLS1naXQg YS8uY3ZzaWdub3JlIGIvLmN2c2lnbm9yZQppbmRleCBjODhmNjFiLi42ZjUzYTRiIDEwMDY0NAot LS0gYS8uY3ZzaWdub3JlCisrKyBiLy5jdnNpZ25vcmUKQEAgLTEgKzEgQEAKLWdkYi02LjguNTAu MjAwOTA4MTgudGFyLmJ6MgorZ2RiLTYuOC41MC4yMDA5MDkxMC50YXIuYnoyCgpkaWZmIC0tZ2l0 IGEvZ2RiLTYuMy1sYXJnZS1jb3JlLTIwMDUxMjA2LnBhdGNoIGIvZ2RiLTYuMy1sYXJnZS1jb3Jl LTIwMDUxMjA2LnBhdGNoCmluZGV4IDliNDRkNWIuLjI4NzZiNzUgMTAwNjQ0Ci0tLSBhL2dkYi02 LjMtbGFyZ2UtY29yZS0yMDA1MTIwNi5wYXRjaAorKysgYi9nZGItNi4zLWxhcmdlLWNvcmUtMjAw NTEyMDYucGF0Y2gKQEAgLTI1LDEwICsyNSwxMCBAQAogCiAJUG9ydCB0byBHREItNi43LgogCi1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS1tZW0uYworSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUtbWVtLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44 LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3N5bWZpbGUtbWVtLmMJMjAwOS0wOC0wMyAxNjowMzowMC4w MDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLW1lbS5j CTIwMDktMDgtMDMgMTY6MDM6MTcuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5 MDkwOS5vcmlnL2dkYi9zeW1maWxlLW1lbS5jCTIwMDktMDctMDIgMTk6MjE6MDYuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc3ltZmlsZS1tZW0uYwkyMDA5LTA5 LTA5IDE5OjA2OjU3LjAwMDAwMDAwMCArMDIwMAogQEAgLTU2LDYgKzU2LDE0IEBACiAgI2luY2x1 ZGUgImVsZi9jb21tb24uaCIKICAKQEAgLTUzLDEwICs1MywxMCBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS1tZW0uYwogICAgaWYgKG5iZmQgPT0gTlVMTCkKICAgICAg ZXJyb3IgKF8oIkZhaWxlZCB0byByZWFkIGEgdmFsaWQgb2JqZWN0IGZpbGUgaW1hZ2UgZnJvbSBt ZW1vcnkuIikpOwogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5jCitJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3RhcmdldC5jCTIwMDktMDgtMDMgMTY6MDM6MDAu MDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmMJMjAw OS0wOC0wMyAxNjowMzoxNy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5 Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMDktMDktMDkgMTk6MDU6NTYuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmMJMjAwOS0wOS0wOSAxOTowODoxMS4w MDAwMDAwMDAgKzAyMDAKIEBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBpbnQgbm9zeW1ib2wgKGNo YXIgKiwgQ09SRV9BRERSICoKICAKICBzdGF0aWMgdm9pZCB0Y29tcGxhaW4gKHZvaWQpIEFUVFJf Tk9SRVRVUk47CkBAIC02Niw3ICs2Niw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dk Yi90YXJnZXQuYwogIAogIHN0YXRpYyBpbnQgcmV0dXJuX3plcm8gKHZvaWQpOwogIAotQEAgLTQ1 Miw3ICs0NTIsNyBAQCB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKHZvaWQpCitAQCAtNDkyLDcg KzQ5Miw3IEBAIHRhcmdldF90ZXJtaW5hbF9pbmZlcmlvciAodm9pZCkKICAgICgqY3VycmVudF90 YXJnZXQudG9fdGVybWluYWxfaW5mZXJpb3IpICgpOwogIH0KICAKQEAgLTc1LDcgKzc1LDcgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5jCiAgbm9tZW1vcnkgKENPUkVf QUREUiBtZW1hZGRyLCBjaGFyICpteWFkZHIsIGludCBsZW4sIGludCB3cml0ZSwKICAJICBzdHJ1 Y3QgdGFyZ2V0X29wcyAqdCkKICB7Ci1AQCAtNjcwLDcgKzY3MCw3IEBAIHVwZGF0ZV9jdXJyZW50 X3RhcmdldCAodm9pZCkKK0BAIC03MTEsNyArNzExLDcgQEAgdXBkYXRlX2N1cnJlbnRfdGFyZ2V0 ICh2b2lkKQogIAkgICAgKHZvaWQgKCopIChzdHJ1Y3QgcmVnY2FjaGUgKikpCiAgCSAgICBub3By b2Nlc3MpOwogICAgZGVfZmF1bHQgKGRlcHJlY2F0ZWRfeGZlcl9tZW1vcnksCkBAIC04NCw3ICs4 NCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90YXJnZXQuYwogIAkgICAgbm9t ZW1vcnkpOwogICAgZGVfZmF1bHQgKHRvX2ZpbGVzX2luZm8sCiAgCSAgICAodm9pZCAoKikgKHN0 cnVjdCB0YXJnZXRfb3BzICopKQotQEAgLTEzODEsNyArMTM4MSw3IEBAIHRhcmdldF94ZmVyX3Bh cnRpYWwgKHN0cnVjdCB0YXJnZXRfb3BzICoKK0BAIC0xNDQzLDcgKzE0NDMsNyBAQCB0YXJnZXRf eGZlcl9wYXJ0aWFsIChzdHJ1Y3QgdGFyZ2V0X29wcyAqCiAgICAgaXQgbWFrZXMgbm8gcHJvZ3Jl c3MsIGFuZCB0aGVuIHJldHVybiBob3cgbXVjaCB3YXMgdHJhbnNmZXJyZWQpLiAqLwogIAogIGlu dApAQCAtOTMsNyArOTMsMTYgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rhcmdl dC5jCiAgewogICAgLyogRGlzcGF0Y2ggdG8gdGhlIHRvcG1vc3QgdGFyZ2V0LCBub3QgdGhlIGZs YXR0ZW5lZCBjdXJyZW50X3RhcmdldC4KICAgICAgIE1lbW9yeSBhY2Nlc3NlcyBjaGVjayB0YXJn ZXQtPnRvX2hhc18oYWxsXyltZW1vcnksIGFuZCB0aGUKLUBAIC0xMzk0LDcgKzEzOTQsNyBAQCB0 YXJnZXRfcmVhZF9tZW1vcnkgKENPUkVfQUREUiBtZW1hZGRyLCBnCitAQCAtMTQ1OSw3ICsxNDU5 LDcgQEAgdGFyZ2V0X3JlYWRfbWVtb3J5IChDT1JFX0FERFIgbWVtYWRkciwgZworICAgIHRoZSB0 YXJnZXQncyBzdGFjay4gIFRoaXMgbWF5IHRyaWdnZXIgZGlmZmVyZW50IGNhY2hlIGJlaGF2aW9y LiAgKi8KKyAKKyBpbnQKKy10YXJnZXRfcmVhZF9zdGFjayAoQ09SRV9BRERSIG1lbWFkZHIsIGdk Yl9ieXRlICpteWFkZHIsIGludCBsZW4pCisrdGFyZ2V0X3JlYWRfc3RhY2sgKENPUkVfQUREUiBt ZW1hZGRyLCBnZGJfYnl0ZSAqbXlhZGRyLCBMT05HRVNUIGxlbikKKyB7CisgICAvKiBEaXNwYXRj aCB0byB0aGUgdG9wbW9zdCB0YXJnZXQsIG5vdCB0aGUgZmxhdHRlbmVkIGN1cnJlbnRfdGFyZ2V0 LgorICAgICAgTWVtb3J5IGFjY2Vzc2VzIGNoZWNrIHRhcmdldC0+dG9faGFzXyhhbGxfKW1lbW9y eSwgYW5kIHRoZQorQEAgLTE0NzMsNyArMTQ3Myw3IEBAIHRhcmdldF9yZWFkX3N0YWNrIChDT1JF X0FERFIgbWVtYWRkciwgZ2QKICB9CiAgCiAgaW50CkBAIC0xMDIsNyArMTExLDcgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5jCiAgewogICAgLyogRGlzcGF0Y2ggdG8g dGhlIHRvcG1vc3QgdGFyZ2V0LCBub3QgdGhlIGZsYXR0ZW5lZCBjdXJyZW50X3RhcmdldC4KICAg ICAgIE1lbW9yeSBhY2Nlc3NlcyBjaGVjayB0YXJnZXQtPnRvX2hhc18oYWxsXyltZW1vcnksIGFu ZCB0aGUKLUBAIC0yODYxLDggKzI4NjEsOCBAQCBkZWJ1Z190b19wcmVwYXJlX3RvX3N0b3JlIChz dHJ1Y3QgcmVnY2FjCitAQCAtMjk2NCw4ICsyOTY0LDggQEAgZGVidWdfdG9fcHJlcGFyZV90b19z dG9yZSAoc3RydWN0IHJlZ2NhYwogICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAi dGFyZ2V0X3ByZXBhcmVfdG9fc3RvcmUgKClcbiIpOwogIH0KICAKQEAgLTExMyw3ICsxMjIsNyBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmMKICAJCQkgICAgICBpbnQg d3JpdGUsIHN0cnVjdCBtZW1fYXR0cmliICphdHRyaWIsCiAgCQkJICAgICAgc3RydWN0IHRhcmdl dF9vcHMgKnRhcmdldCkKICB7Ci1AQCAtMjg3Miw4ICsyODcyLDggQEAgZGVwcmVjYXRlZF9kZWJ1 Z194ZmVyX21lbW9yeSAoQ09SRV9BRERSIAorQEAgLTI5NzUsOCArMjk3NSw4IEBAIGRlcHJlY2F0 ZWRfZGVidWdfeGZlcl9tZW1vcnkgKENPUkVfQUREUiAKICAJCQkJCQlhdHRyaWIsIHRhcmdldCk7 CiAgCiAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCkBAIC0xMjQsMTEgKzEzMywx MSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmMKICAJCSAgICAgIHdy aXRlID8gIndyaXRlIiA6ICJyZWFkIiwgcmV0dmFsKTsKICAKICAgIGlmIChyZXR2YWwgPiAwKQot SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5oCitJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkw ODAzLm9yaWcvZ2RiL3RhcmdldC5oCTIwMDktMDgtMDMgMTY6MDM6MDAuMDAwMDAwMDAwICswMjAw Ci0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmgJMjAwOS0wOC0wMyAxNjowMzox Ny4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zNjMsMTAgKzM2MywxMCBAQCBzdHJ1Y3QgdGFyZ2V0X29w cworLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvdGFyZ2V0LmgJMjAwOS0wOS0wOSAx OTowNTo1Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90YXJn ZXQuaAkyMDA5LTA5LTA5IDE5OjA3OjM2LjAwMDAwMDAwMCArMDIwMAorQEAgLTM2NiwxMCArMzY2 LDEwIEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAgICAgICAgIE5PVEU6IGNhZ25leS8yMDA0LTEwLTAx OiBUaGlzIGhhcyBiZWVuIGVudGlyZWx5IHN1cGVyc2VlZGVkIGJ5CiAgICAgICAgIHRvX3hmZXJf cGFydGlhbCBhbmQgaW5mZXJpb3IgaW5oZXJpdGFuY2UuICAqLwogIApAQCAtMTQzLDUzICsxNTIs NTggQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5oCiAgCiAgICAgIHZv aWQgKCp0b19maWxlc19pbmZvKSAoc3RydWN0IHRhcmdldF9vcHMgKik7CiAgICAgIGludCAoKnRv X2luc2VydF9icmVha3BvaW50KSAoc3RydWN0IGdkYmFyY2ggKiwgc3RydWN0IGJwX3RhcmdldF9p bmZvICopOwotQEAgLTY3NSwxMCArNjc1LDEwIEBAIGV4dGVybiBEQ0FDSEUgKnRhcmdldF9kY2Fj aGU7CitAQCAtNjgwLDEyICs2ODAsMTIgQEAgZXh0ZXJuIHZvaWQgdGFyZ2V0X2RjYWNoZV9pbnZh bGlkYXRlICh2bwogIAogIGV4dGVybiBpbnQgdGFyZ2V0X3JlYWRfc3RyaW5nIChDT1JFX0FERFIs IGNoYXIgKiosIGludCwgaW50ICopOwogIAogLWV4dGVybiBpbnQgdGFyZ2V0X3JlYWRfbWVtb3J5 IChDT1JFX0FERFIgbWVtYWRkciwgZ2RiX2J5dGUgKm15YWRkciwgaW50IGxlbik7CiArZXh0ZXJu IGludCB0YXJnZXRfcmVhZF9tZW1vcnkgKENPUkVfQUREUiBtZW1hZGRyLCBnZGJfYnl0ZSAqbXlh ZGRyLCBMT05HRVNUIGxlbik7CiAgCistZXh0ZXJuIGludCB0YXJnZXRfcmVhZF9zdGFjayAoQ09S RV9BRERSIG1lbWFkZHIsIGdkYl9ieXRlICpteWFkZHIsIGludCBsZW4pOworK2V4dGVybiBpbnQg dGFyZ2V0X3JlYWRfc3RhY2sgKENPUkVfQUREUiBtZW1hZGRyLCBnZGJfYnl0ZSAqbXlhZGRyLCBM T05HRVNUIGxlbik7CisgCiAgZXh0ZXJuIGludCB0YXJnZXRfd3JpdGVfbWVtb3J5IChDT1JFX0FE RFIgbWVtYWRkciwgY29uc3QgZ2RiX2J5dGUgKm15YWRkciwKIC0JCQkJaW50IGxlbik7CiArCQkJ CUxPTkdFU1QgbGVuKTsKICAKICAvKiBGZXRjaGVzIHRoZSB0YXJnZXQncyBtZW1vcnkgbWFwLiAg SWYgb25lIGlzIGZvdW5kIGl0IGlzIHNvcnRlZAogICAgIGFuZCByZXR1cm5lZCwgYWZ0ZXIgc29t ZSBjb25zaXN0ZW5jeSBjaGVja2luZy4gIE90aGVyd2lzZSwgTlVMTAotSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MDMvZ2RiL2RjYWNoZS5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv ZGNhY2hlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2Rj YWNoZS5jCTIwMDktMDgtMDMgMTY6MDM6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvZGNhY2hlLmMJMjAwOS0wOC0wMyAxNjowMzoxNy4wMDAwMDAwMDAgKzAy MDAKLUBAIC01MjQsOSArNTI0LDkgQEAgZGNhY2hlX2ZyZWUgKERDQUNIRSAqZGNhY2hlKQorLS0t IGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZGNhY2hlLmMJMjAwOS0wOC0zMSAyMjoxODo0 NS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9kY2FjaGUuYwky MDA5LTA5LTA5IDE5OjA5OjIxLjAwMDAwMDAwMCArMDIwMAorQEAgLTM5MCwxMCArMzkwLDEwIEBA IGRjYWNoZV9mcmVlIChEQ0FDSEUgKmRjYWNoZSkKICAKLSAgICBUaGlzIHJvdXRpbmUgaXMgaW5k ZW5kZWQgdG8gYmUgY2FsbGVkIGJ5IHJlbW90ZV94ZmVyXyBmdW5jdGlvbnMuICovCisgICAgVGhl IG1lYW5pbmcgb2YgdGhlIHJlc3VsdCBpcyB0aGUgc2FtZSBhcyBmb3IgdGFyZ2V0X3dyaXRlLiAg Ki8KICAKIC1pbnQKICtMT05HRVNUCi0gZGNhY2hlX3hmZXJfbWVtb3J5IChEQ0FDSEUgKmRjYWNo ZSwgQ09SRV9BRERSIG1lbWFkZHIsIGdkYl9ieXRlICpteWFkZHIsCisgZGNhY2hlX3hmZXJfbWVt b3J5IChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLCBEQ0FDSEUgKmRjYWNoZSwKKyAJCSAgICBDT1JF X0FERFIgbWVtYWRkciwgZ2RiX2J5dGUgKm15YWRkciwKIC0JCSAgICBpbnQgbGVuLCBpbnQgc2hv dWxkX3dyaXRlKQogKwkJICAgIExPTkdFU1QgbGVuLCBpbnQgc2hvdWxkX3dyaXRlKQogIHsKICAg IGludCBpOwotICAgaW50ICgqeGZ1bmMpIChEQ0FDSEUgKmRjYWNoZSwgQ09SRV9BRERSIGFkZHIs IGdkYl9ieXRlICpwdHIpOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2RjYWNoZS5o CisgICBpbnQgcmVzOworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2RjYWNoZS5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9kY2FjaGUuaAkyMDA5 LTA4LTAzIDE2OjAzOjAwLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMv Z2RiL2RjYWNoZS5oCTIwMDktMDgtMDMgMTY6MDM6MTcuMDAwMDAwMDAwICswMjAwCi1AQCAtMzUs NyArMzUsNyBAQCB2b2lkIGRjYWNoZV9mcmVlIChEQ0FDSEUgKik7CistLS0gZ2RiLTYuOC41MC4y MDA5MDkwOS5vcmlnL2dkYi9kY2FjaGUuaAkyMDA5LTA4LTMxIDIyOjE4OjQ1LjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2RjYWNoZS5oCTIwMDktMDktMDkgMTk6 MDg6NTQuMDAwMDAwMDAwICswMjAwCitAQCAtMzUsOCArMzUsOCBAQCB2b2lkIGRjYWNoZV9mcmVl IChEQ0FDSEUgKik7CiAgCiAgLyogU2ltcGxlIHRvIGNhbGwgZnJvbSA8cmVtb3RlPl94ZmVyX21l bW9yeSAqLwogIAotLWludCBkY2FjaGVfeGZlcl9tZW1vcnkgKERDQUNIRSAqY2FjaGUsIENPUkVf QUREUiBtZW0sIGdkYl9ieXRlICpteSwKLS0JCQlpbnQgbGVuLCBpbnQgc2hvdWxkX3dyaXRlKTsK LStMT05HRVNUIGRjYWNoZV94ZmVyX21lbW9yeSAoRENBQ0hFICpjYWNoZSwgQ09SRV9BRERSIG1l bSwgZ2RiX2J5dGUgKm15LAotKwkJCSAgICBMT05HRVNUIGxlbiwgaW50IHNob3VsZF93cml0ZSk7 CistaW50IGRjYWNoZV94ZmVyX21lbW9yeSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgRENBQ0hF ICpjYWNoZSwgQ09SRV9BRERSIG1lbSwKKy0JCQlnZGJfYnl0ZSAqbXksIGludCBsZW4sIGludCBz aG91bGRfd3JpdGUpOworK0xPTkdFU1QgZGNhY2hlX3hmZXJfbWVtb3J5IChzdHJ1Y3QgdGFyZ2V0 X29wcyAqb3BzLCBEQ0FDSEUgKmNhY2hlLCBDT1JFX0FERFIgbWVtLAorKwkJCWdkYl9ieXRlICpt eSwgTE9OR0VTVCBsZW4sIGludCBzaG91bGRfd3JpdGUpOwogIAotICNlbmRpZiAvKiBEQ0FDSEVf SCAqLwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2V4ZWMuYworIHZvaWQgZGNhY2hl X3VwZGF0ZSAoRENBQ0hFICpkY2FjaGUsIENPUkVfQUREUiBtZW1hZGRyLCBnZGJfYnl0ZSAqbXlh ZGRyLAorIAkJICAgIGludCBsZW4pOworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2V4 ZWMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZXhlYy5j CTIwMDktMDgtMDMgMTY6MDM6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5 MDgwMy9nZGIvZXhlYy5jCTIwMDktMDgtMDMgMTY6MDM6MTcuMDAwMDAwMDAwICswMjAwCistLS0g Z2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9leGVjLmMJMjAwOS0wNy0wMiAxOToyMTowNi4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9leGVjLmMJMjAwOS0w OS0wOSAxOTowNjo1Ny4wMDAwMDAwMDAgKzAyMDAKIEBAIC01NjAsNyArNTYwLDcgQEAgbWFwX3Zt YXAgKGJmZCAqYWJmZCwgYmZkICphcmNoKQogIH0KICAMCkBAIC0xOTksMTEgKzIxMywxMSBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZXhlYy5jCiAgc2VjdGlvbl90YWJsZV94ZmVy X21lbW9yeV9wYXJ0aWFsIChnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRl YnVmLAogIAkJCQkgICBVTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuLAogIAkJCQkgICBzdHJ1 Y3QgdGFyZ2V0X3NlY3Rpb24gKnNlY3Rpb25zLAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMv Z2RiL2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvbGludXgtbmF0 LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2xpbnV4LW5h dC5jCTIwMDktMDgtMDMgMTY6MDM6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvbGludXgtbmF0LmMJMjAwOS0wOC0wMyAxNjowMzoxNy4wMDAwMDAwMDAgKzAy MDAKLUBAIC00NTE2LDcgKzQ1MTYsNyBAQCBsaW51eF94ZmVyX3BhcnRpYWwgKHN0cnVjdCB0YXJn ZXRfb3BzICpvCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9saW51eC1uYXQuYwky MDA5LTA5LTA5IDE5OjA2OjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL2xpbnV4LW5hdC5jCTIwMDktMDktMDkgMTk6MDY6NTcuMDAwMDAwMDAwICswMjAwCitA QCAtNDYyMiw3ICs0NjIyLDcgQEAgbGludXhfeGZlcl9wYXJ0aWFsIChzdHJ1Y3QgdGFyZ2V0X29w cyAqbwogICNlbmRpZgogICAgICAgIGlmIChpdGVyYXRlX292ZXJfbHdwcyAoaWE2NF9saW51eF9j aGVja19zdGFja19yZWdpb24sICZyYW5nZSkgIT0gTlVMTCkKICAJeyAvKiBUaGlzIHJlZ2lvbiBj b250YWlucyBpYTY0IHJzZSByZWdpc3RlcnMsIHdlIGhhdmUgdG8gcmUtcmVhZC4gICovCkBAIC0y MTIsMTAgKzIyNiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvbGludXgtbmF0 LmMKICAKICAJICAvKiBSZS1yZWFkIHJlZ2lzdGVyIHN0YWNrIGFyZWEuICAqLwogIAkgIHh4ZmVy ID0gc3VwZXJfeGZlcl9wYXJ0aWFsIChvcHMsIG9iamVjdCwgYW5uZXgsCi1JbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvcmVtb3RlLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi9yZW1vdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIv cmVtb3RlLmMJMjAwOS0wOC0wMyAxNjowMzowMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi9yZW1vdGUuYwkyMDA5LTA4LTAzIDE2OjAzOjE3LjAwMDAwMDAwMCAr MDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvcmVtb3RlLmMJMjAwOS0wOC0x OCAxODoxNzoxNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9y ZW1vdGUuYwkyMDA5LTA5LTA5IDE5OjA2OjU3LjAwMDAwMDAwMCArMDIwMAogQEAgLTI1LDYgKzI1 LDcgQEAKICAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgogICNpbmNsdWRlIDxjdHlwZS5oPgpAQCAt MjI0LDcgKzIzOCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9yZW1vdGUuYwog ICNpbmNsdWRlICJpbmZlcmlvci5oIgogICNpbmNsdWRlICJiZmQuaCIKICAjaW5jbHVkZSAic3lt ZmlsZS5oIgotQEAgLTU3ODUsMTIgKzU3ODYsMTkgQEAgaGFuZGxlX25vdGlmaWNhdGlvbiAoY2hh ciAqYnVmLCBzaXplX3QgbAorQEAgLTU3NjQsMTIgKzU3NjUsMTkgQEAgaGFuZGxlX25vdGlmaWNh dGlvbiAoY2hhciAqYnVmLCBzaXplX3QgbAogICAgIGlmIFNIT1VMRF9XUklURSBpcyBub256ZXJv LiAgUmV0dXJucyBsZW5ndGggb2YgZGF0YSB3cml0dGVuIG9yCiAgICAgcmVhZDsgMCBmb3IgZXJy b3IuICBUQVJHRVQgaXMgdW51c2VkLiAgKi8KICAKQEAgLTI0Niw3ICsyNjAsNyBAQCBJbmRleDog Z2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvcmVtb3RlLmMKICAKICAgIHNldF9nZW5lcmFsX3RocmVh ZCAoaW5mZXJpb3JfcHRpZCk7CiAgCi1AQCAtNTc5OSw3ICs1ODA3LDcgQEAgcmVtb3RlX3hmZXJf bWVtb3J5IChDT1JFX0FERFIgbWVtX2FkZHIsIAorQEAgLTU3NzgsNyArNTc4Niw3IEBAIHJlbW90 ZV94ZmVyX21lbW9yeSAoQ09SRV9BRERSIG1lbV9hZGRyLCAKICAgIGVsc2UKICAgICAgcmVzID0g cmVtb3RlX3JlYWRfYnl0ZXMgKG1lbV9hZGRyLCBidWZmZXIsIG1lbV9sZW4pOwogIApAQCAtMjU1 LDEwICsyNjksMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3JlbW90ZS5jCiAg fQogIAogIC8qIFNlbmRzIGEgcGFja2V0IHdpdGggY29udGVudCBkZXRlcm1pbmVkIGJ5IHRoZSBw cmludGYgZm9ybWF0IHN0cmluZwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3JlbW90 ZS1zaW0uYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3JlbW90ZS1zaW0uYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvcmVtb3RlLXNpbS5jCTIw MDktMDgtMDMgMTY6MDM6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvcmVtb3RlLXNpbS5jCTIwMDktMDgtMDMgMTY6MDM6MTcuMDAwMDAwMDAwICswMjAwCist LS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9yZW1vdGUtc2ltLmMJMjAwOS0wNy0wMiAx OToyMTowNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9yZW1v dGUtc2ltLmMJMjAwOS0wOS0wOSAxOTowNjo1Ny4wMDAwMDAwMDAgKzAyMDAKIEBAIC03NTIsMTEg Kzc1MiwxNCBAQCBnZGJzaW1fcHJlcGFyZV90b19zdG9yZSAoc3RydWN0IHJlZ2NhY2hlCiAgCiAg ICAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRyYW5zZmVycmVkLiAqLwpAQCAtMjc2LDEw ICsyOTAsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3JlbW90ZS1zaW0uYwog ICAgLyogSWYgbm8gcHJvZ3JhbSBpcyBydW5uaW5nIHlldCwgdGhlbiBpZ25vcmUgdGhlIHNpbXVs YXRvciBmb3IKICAgICAgIG1lbW9yeS4gIFBhc3MgdGhlIHJlcXVlc3QgZG93biB0byB0aGUgbmV4 dCB0YXJnZXQsIGhvcGVmdWxseQogICAgICAgYW4gZXhlYyBmaWxlLiAgKi8KLUluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi9leGVjLmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi9leGVjLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2V4 ZWMuaAkyMDA5LTA2LTEyIDIwOjM4OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL2V4ZWMuaAkyMDA5LTA4LTAzIDE2OjAzOjU3LjAwMDAwMDAwMCArMDIwMAor LS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZXhlYy5oCTIwMDktMDYtMTIgMjA6Mzg6 MzYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZXhlYy5oCTIw MDktMDktMDkgMTk6MDY6NTcuMDAwMDAwMDAwICswMjAwCiBAQCAtNTYsNyArNTYsNyBAQCBleHRl cm4gaW50IHJlc2l6ZV9zZWN0aW9uX3RhYmxlIChzdHJ1Y3QgCiAgCiAgICAgT25lLCBhbmQgb25s eSBvbmUsIG9mIHJlYWRidWYgb3Igd3JpdGVidWYgbXVzdCBiZSBub24tTlVMTC4gICovCgpkaWZm IC0tZ2l0IGEvZ2RiLTYuMy1waWUtMjAwNTAxMTAucGF0Y2ggYi9nZGItNi4zLXBpZS0yMDA1MDEx MC5wYXRjaAppbmRleCA2MmU4ZjI1Li5mNjYyMWIyIDEwMDY0NAotLS0gYS9nZGItNi4zLXBpZS0y MDA1MDExMC5wYXRjaAorKysgYi9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaApAQCAtMjYsMTAg KzI2LDEwIEBACiAKIAlGaXggc2Nhbl9keW50YWcoKSBmb3IgYmluYXJpZXMgcHJvdmlkZWQgYnkg dmFsZ3JpbmQgKEJaIDQ2MDMxOSkuCiAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9h bWQ2NC10ZGVwLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9hbWQ2NC10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL2FtZDY0LXRkZXAu YwkyMDA5LTA4LTEyIDA2OjE4OjAzLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAw OTA4MTEvZ2RiL2FtZDY0LXRkZXAuYwkyMDA5LTA4LTEyIDA2OjE4OjE1LjAwMDAwMDAwMCArMDIw MAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMDktMDkt MDkgMTk6MDk6MzEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv YW1kNjQtdGRlcC5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCiBAQCAtMzYs NiArMzYsNyBAQAogICNpbmNsdWRlICJyZWdjYWNoZS5oIgogICNpbmNsdWRlICJyZWdzZXQuaCIK QEAgLTEzOCwxMCArMTM4LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9hbWQ2 NC10ZGVwLmMKICAgIHJldHVybiBwYzsKICB9CiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgx MS9nZGIvYXV4di5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYXV4di5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS5vcmlnL2dkYi9hdXh2LmMJMjAwOS0wOC0x MiAwNjoxODowMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODExL2dkYi9h dXh2LmMJMjAwOS0wOC0xMiAwNjoxODoxNS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUw LjIwMDkwOTA5Lm9yaWcvZ2RiL2F1eHYuYwkyMDA5LTA3LTAyIDE5OjI1OjUyLjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2F1eHYuYwkyMDA5LTA5LTA5IDE5OjI0 OjEzLjAwMDAwMDAwMCArMDIwMAogQEAgLTc4LDcgKzc4LDcgQEAgcHJvY2ZzX3hmZXJfYXV4diAo c3RydWN0IHRhcmdldF9vcHMgKm9wcwogICAgIFJldHVybiAxIGlmIGFuIGVudHJ5IHdhcyByZWFk IGludG8gKlRZUEVQIGFuZCAqVkFMUC4gICovCiAgc3RhdGljIGludApAQCAtMjMwLDEwICsyMzAs MTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2F1eHYuYwogIAlicmVhazsKICAg ICAgfQogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2F1eHYuaAorSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA5MDkvZ2RiL2F1eHYuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTA4MTEub3JpZy9nZGIvYXV4di5oCTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvYXV4di5oCTIwMDktMDgtMTIgMDY6MTg6 MTUuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9hdXh2 LmgJMjAwOS0wNi0wNyAyMTowNzowOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIw MDkwOTA5L2dkYi9hdXh2LmgJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKIEBA IC0zMSwxNCArMzEsMTQgQEAKICAgICBSZXR1cm4gMSBpZiBhbiBlbnRyeSB3YXMgcmVhZCBpbnRv ICpUWVBFUCBhbmQgKlZBTFAuICAqLwogIGV4dGVybiBpbnQgdGFyZ2V0X2F1eHZfcGFyc2UgKHN0 cnVjdCB0YXJnZXRfb3BzICpvcHMsCkBAIC0yNTEsMTEgKzI1MSwxMSBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDgxMS9nZGIvYXV4di5oCiAgCiAgLyogUHJpbnQgdGhlIGNvbnRlbnRzIG9mIHRo ZSB0YXJnZXQncyBBVVhWIG9uIHRoZSBzcGVjaWZpZWQgZmlsZS4gKi8KICBleHRlcm4gaW50IGZw cmludF90YXJnZXRfYXV4diAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIHN0cnVjdCB0YXJnZXRfb3Bz ICpvcHMpOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2R3YXJmMnJlYWQuYworSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MTEub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDgtMTIgMDY6 MTg6MDMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvZHdhcmYy cmVhZC5jCTIwMDktMDgtMTIgMDY6MTg6MTUuMDAwMDAwMDAwICswMjAwCi1AQCAtMTY1Myw3ICsx NjUzLDcgQEAgZHdhcmYyX2J1aWxkX3BzeW10YWJzIChzdHJ1Y3Qgb2JqZmlsZSAqbworLS0tIGdk Yi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDktMDkgMTk6MjE6 MjMuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZHdhcmYycmVh ZC5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtMTcxOSw3ICsxNzE5 LDcgQEAgZHdhcmYyX2J1aWxkX3BzeW10YWJzIChzdHJ1Y3Qgb2JqZmlsZSAqbwogICAgZHdhcmYy X3JlYWRfc2VjdGlvbiAob2JqZmlsZSwgJmR3YXJmMl9wZXJfb2JqZmlsZS0+ZWhfZnJhbWUpOwog ICAgZHdhcmYyX3JlYWRfc2VjdGlvbiAob2JqZmlsZSwgJmR3YXJmMl9wZXJfb2JqZmlsZS0+ZnJh bWUpOwogIApAQCAtMjY0LDEwICsyNjQsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEv Z2RiL2R3YXJmMnJlYWQuYwogICAgICAgIHx8IChvYmpmaWxlLT5nbG9iYWxfcHN5bWJvbHMuc2l6 ZSA9PSAwCiAgCSAgJiYgb2JqZmlsZS0+c3RhdGljX3BzeW1ib2xzLnNpemUgPT0gMCkpCiAgICAg IHsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9lbGZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUw LjIwMDkwODExLm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDA5LTA4LTEyIDA2OjE4OjAzLjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2VsZnJlYWQuYwkyMDA5LTA4LTEy IDA2OjE4OjE1LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9n ZGIvZWxmcmVhZC5jCTIwMDktMDktMDkgMTk6MDU6NTUuMDAwMDAwMDAwICswMjAwCisrKysgZ2Ri LTYuOC41MC4yMDA5MDkwOS9nZGIvZWxmcmVhZC5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAw MDAwICswMjAwCiBAQCAtNjgxLDcgKzY4MSw3IEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBv YmpmaWxlICpvYmpmaWwKICAgIC8qIElmIHdlIGFyZSByZWluaXRpYWxpemluZywgb3IgaWYgd2Ug aGF2ZSBuZXZlciBsb2FkZWQgc3ltcyB5ZXQsCiAgICAgICBzZXQgdGFibGUgdG8gZW1wdHkuICBN QUlOTElORSBpcyBjbGVhcmVkIHNvIHRoYXQgKl9yZWFkX3BzeW10YWIKQEAgLTI3NywxMSArMjc3 LDExIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9lbGZyZWFkLmMKICAgICAgewog ICAgICAgIGluaXRfcHN5bWJvbF9saXN0IChvYmpmaWxlLCAwKTsKICAgICAgICBtYWlubGluZSA9 IDA7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvaW5mcnVuLmMKK0luZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9pbmZydW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTA4MTEub3JpZy9nZGIvaW5mcnVuLmMJMjAwOS0wOC0xMiAwNjoxODowMy4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODExL2dkYi9pbmZydW4uYwkyMDA5LTA4LTEyIDA2 OjE4OjE1LjAwMDAwMDAwMCArMDIwMAotQEAgLTM1MzEsNiArMzUzMSwxMCBAQCBpbmZydW46IEJQ U1RBVF9XSEFUX1NFVF9MT05HSk1QX1JFU1VNRSAoCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5v cmlnL2dkYi9pbmZydW4uYwkyMDA5LTA5LTA5IDE5OjA5OjMxLjAwMDAwMDAwMCArMDIwMAorKysr IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2luZnJ1bi5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAw MDAwMDAwICswMjAwCitAQCAtMzYwMiw2ICszNjAyLDEwIEBAIGluZnJ1bjogQlBTVEFUX1dIQVRf U0VUX0xPTkdKTVBfUkVTVU1FICgKICAjZW5kaWYKICAJICB0YXJnZXRfdGVybWluYWxfaW5mZXJp b3IgKCk7CiAgCkBAIC0yOTIsMTAgKzI5MiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgx MS9nZGIvaW5mcnVuLmMKICAJICAvKiBJZiByZXF1ZXN0ZWQsIHN0b3Agd2hlbiB0aGUgZHluYW1p YyBsaW5rZXIgbm90aWZpZXMKICAJICAgICBnZGIgb2YgZXZlbnRzLiAgVGhpcyBhbGxvd3MgdGhl IHVzZXIgdG8gZ2V0IGNvbnRyb2wKICAJICAgICBhbmQgcGxhY2UgYnJlYWtwb2ludHMgaW4gaW5p dGlhbGl6ZXIgcm91dGluZXMgZm9yCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvb2Jq ZmlsZXMuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL29iamZpbGVzLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL29iamZpbGVzLmMJMjAwOS0w OC0xMiAwNjoxODowMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODExL2dk Yi9vYmpmaWxlcy5jCTIwMDktMDgtMTIgMDY6MTg6MTUuMDAwMDAwMDAwICswMjAwCistLS0gZ2Ri LTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9vYmpmaWxlcy5jCTIwMDktMDktMDkgMTk6MjM6MDUu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvb2JqZmlsZXMuYwky MDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCArMDIwMAogQEAgLTUxLDYgKzUxLDkgQEAKICAj aW5jbHVkZSAiYXJjaC11dGlscy5oIgogICNpbmNsdWRlICJleGVjLmgiCkBAIC0zMzQsMTAgKzMz NCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvb2JqZmlsZXMuYwogICAgLyog QmVmb3JlIHRoZSBzeW1ib2wgdGFibGUgY29kZSB3YXMgcmVkb25lIHRvIG1ha2UgaXQgZWFzaWVy IHRvCiAgICAgICBzZWxlY3RpdmVseSBsb2FkIGFuZCByZW1vdmUgaW5mb3JtYXRpb24gcGFydGlj dWxhciB0byBhIHNwZWNpZmljCiAgICAgICBsaW5rYWdlIHVuaXQsIGdkYiB1c2VkIHRvIGRvIHRo ZXNlIHRoaW5ncyB3aGVuZXZlciB0aGUgbW9ub2xpdGhpYwotSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MTEvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Nv bGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MTEub3JpZy9nZGIv c29saWItc3ZyNC5jCTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDgxMS9nZGIvc29saWItc3ZyNC5jCTIwMDktMDgtMTIgMDY6MzY6NTguMDAw MDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zb2xpYi1zdnI0 LmMJMjAwOS0wOS0wOSAxOTowOTozNS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIw MDkwOTA5L2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAy MDAKIEBAIC00Nyw2ICs0Nyw3IEBACiAgI2luY2x1ZGUgImV4ZWMuaCIKICAjaW5jbHVkZSAiYXV4 di5oIgpAQCAtMTAwMCwxMSArMTAwMCwxMSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9n ZGIvc29saWItc3ZyNC5jCiArICBhZGRfaW5mbyAoImxpbmttYXAiLCBpbmZvX2xpbmttYXBfY29t bWFuZCwKICsJICAgICJEaXNwbGF5IHRoZSBpbmZlcmlvcidzIGxpbmttYXAuIik7CiAgfQotSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3NvbGliLmMKK0luZGV4OiBnZGItNi44LjUwLjIw MDkwOTA5L2dkYi9zb2xpYi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS5v cmlnL2dkYi9zb2xpYi5jCTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc29saWIuYwkyMDA5LTA4LTEyIDA2OjE4OjE1LjAwMDAw MDAwMCArMDIwMAotQEAgLTgxLDYgKzgxLDggQEAgc2V0X3NvbGliX29wcyAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvc29saWIuYwky MDA5LTA5LTA5IDE5OjA1OjU2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL3NvbGliLmMJMjAwOS0wOS0wOSAxOToyNToxOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC04 Miw2ICs4Miw4IEBAIHNldF9zb2xpYl9vcHMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCAKICAK ICAvKiBleHRlcm5hbCBkYXRhIGRlY2xhcmF0aW9ucyAqLwogIApAQCAtMTAxMyw3ICsxMDEzLDcg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3NvbGliLmMKICAvKiBGSVhNRTogZ2Ri YXJjaCBuZWVkcyB0byBjb250cm9sIHRoaXMgdmFyaWFibGUsIG9yIGVsc2UgZXZlcnkKICAgICBj b25maWd1cmF0aW9uIG5lZWRzIHRvIGNhbGwgc2V0X3NvbGliX29wcy4gICovCiAgc3RydWN0IHRh cmdldF9zb19vcHMgKmN1cnJlbnRfdGFyZ2V0X3NvX29wczsKLUBAIC0xMDQsNiArMTA2LDggQEAg VGhlIHNlYXJjaCBwYXRoIGZvciBsb2FkaW5nIG5vbi1hYnNvbHV0ZQorQEAgLTEwNSw2ICsxMDcs OCBAQCBUaGUgc2VhcmNoIHBhdGggZm9yIGxvYWRpbmcgbm9uLWFic29sdXRlCiAgCQkgICAgdmFs dWUpOwogIH0KICAKQEAgLTEwNjAsMTAgKzEwNjAsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MTEvZ2RiL3NvbGliLmMKICsgIGVsc2UKICsgICAgc28tPm9iamZpbGUgPSBzeW1ib2xfZmls ZV9hZGRfZnJvbV9iZmQgKHNvLT5hYmZkLCBmbGFncywgc2FwLCBPQkpGX1NIQVJFRCk7CiArCi0g ICBwX3JlZmNvdW50ID0geG1hbGxvYyAoc2l6ZW9mICgqcF9yZWZjb3VudCkpOwotICAgKnBfcmVm Y291bnQgPSAyOyAgLyogQm90aCBzb2xpYiBhbmQgb2JqZmlsZSByZWZlciB0byB0aGlzIGFiZmQu ICAqLwotICAgYmZkX3VzcmRhdGEgKHNvLT5hYmZkKSA9IHBfcmVmY291bnQ7Ci1AQCAtNjAwLDYg KzYyOCwxMCBAQCB1cGRhdGVfc29saWJfbGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgCisgICBm cmVlX3NlY3Rpb25fYWRkcl9pbmZvIChzYXApOworIAorICAgcmV0dXJuOworQEAgLTU5Niw2ICs2 MjQsMTAgQEAgdXBkYXRlX3NvbGliX2xpc3QgKGludCBmcm9tX3R0eSwgc3RydWN0IAogIAkgICAg fQogIAkgIGVsc2UKICAJICAgIHsKQEAgLTEwNzQsNyArMTA3NCw3IEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODExL2dkYi9zb2xpYi5jCiAgCSAgICAgIGlmICghIHN0cmNtcCAoZ2RiLT5zb19v cmlnaW5hbF9uYW1lLCBpLT5zb19vcmlnaW5hbF9uYW1lKSkKICAJCWJyZWFrOwkgICAgICAKICAJ ICAgIH0KLUBAIC02NTQsMTggKzY4Niw3IEBAIHVwZGF0ZV9zb2xpYl9saXN0IChpbnQgZnJvbV90 dHksIHN0cnVjdCAKK0BAIC02NTAsMTggKzY4Miw3IEBAIHVwZGF0ZV9zb2xpYl9saXN0IChpbnQg ZnJvbV90dHksIHN0cnVjdCAKICAgICAgICAvKiBGaWxsIGluIHRoZSByZXN0IG9mIGVhY2ggb2Yg dGhlIGBzdHJ1Y3Qgc29fbGlzdCcgbm9kZXMuICAqLwogICAgICAgIGZvciAoaSA9IGluZmVyaW9y OyBpOyBpID0gaS0+bmV4dCkKICAJewpAQCAtMTA5NCw3ICsxMDk0LDcgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MTEvZ2RiL3NvbGliLmMKICAKICAJICAvKiBOb3RpZnkgYW55IG9ic2VydmVy IHRoYXQgdGhlIHNoYXJlZCBvYmplY3QgaGFzIGJlZW4KICAgICAgICAgICAgICAgbG9hZGVkIG5v dyB0aGF0IHdlJ3ZlIGFkZGVkIGl0IHRvIEdEQidzIHRhYmxlcy4gICovCi1AQCAtNzc1LDYgKzc5 NiwzMiBAQCBzb2xpYl9hZGQgKGNoYXIgKnBhdHRlcm4sIGludCBmcm9tX3R0eSwgCitAQCAtNzcx LDYgKzc5MiwzMiBAQCBzb2xpYl9hZGQgKGNoYXIgKnBhdHRlcm4sIGludCBmcm9tX3R0eSwgCiAg ICB9CiAgfQogIApAQCAtMTEyNyw3ICsxMTI3LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MTEvZ2RiL3NvbGliLmMKICAKICAvKgogIAotQEAgLTExMjgsNCArMTE3NSwxMiBAQCBUaGlzIHRh a2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgZW52aXJvbm1lCitAQCAtMTE4OSw0ICsxMjM2LDEyIEBA IFRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBlbnZpcm9ubWUKICAJCQkJICAgICByZWxv YWRfc2hhcmVkX2xpYnJhcmllcywKICAJCQkJICAgICBzaG93X3NvbGliX3NlYXJjaF9wYXRoLAog IAkJCQkgICAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOwpAQCAtMTE0MCwxMCArMTE0MCwxMCBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc29saWIuYwogKwkJCSAgIE5VTEwsIE5VTEws CiArCQkJICAgJnNldGRlYnVnbGlzdCwgJnNob3dkZWJ1Z2xpc3QpOwogIH0KLUluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODExL2dkYi9zb2xpc3QuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL3NvbGlzdC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS5vcmlnL2dk Yi9zb2xpc3QuaAkyMDA5LTA4LTEyIDA2OjE4OjAzLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02 LjguNTAuMjAwOTA4MTEvZ2RiL3NvbGlzdC5oCTIwMDktMDgtMTIgMDY6MTg6MTUuMDAwMDAwMDAw ICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zb2xpc3QuaAkyMDA5LTA5 LTA5IDE5OjA1OjU2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2Ri L3NvbGlzdC5oCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCiBAQCAtNjEsNiAr NjEsOCBAQCBzdHJ1Y3Qgc29fbGlzdAogICAgICBiZmQgKmFiZmQ7CiAgICAgIGNoYXIgc3ltYm9s c19sb2FkZWQ7CS8qIGZsYWc6IHN5bWJvbHMgcmVhZCBpbiB5ZXQ/ICovCkBAIC0xMTY0LDEwICsx MTY0LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9zb2xpc3QuaAogK2V4dGVy biBpbnQgZGVidWdfc29saWI7CiArCiAgI2VuZGlmCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgx MS9nZGIvc3ltZmlsZS1tZW0uYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZp bGUtbWVtLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL3N5 bWZpbGUtbWVtLmMJMjAwOS0wOC0xMiAwNjoxMzoyMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwODExL2dkYi9zeW1maWxlLW1lbS5jCTIwMDktMDgtMTIgMDY6MTg6MTUuMDAw MDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zeW1maWxlLW1l bS5jCTIwMDktMDktMDkgMTk6MDY6NTcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvc3ltZmlsZS1tZW0uYwkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCAr MDIwMAogQEAgLTExNSw3ICsxMTUsNyBAQCBzeW1ib2xfZmlsZV9hZGRfZnJvbV9tZW1vcnkgKHN0 cnVjdCBiZmQgCiAgCSsraTsKICAgICAgICB9CkBAIC0xMTc3LDEwICsxMTc3LDEwIEBAIEluZGV4 OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9zeW1maWxlLW1lbS5jCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzYWksIE9CSkZfU0hBUkVEKTsKICAKICAgIC8qIFRoaXMgbWln aHQgY2hhbmdlIG91ciBpZGVhcyBhYm91dCBmcmFtZXMgYWxyZWFkeSBsb29rZWQgYXQuICAqLwot SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3N5bWZpbGUuYworSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAw OTA4MTEub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMTIgMDY6 MTg6MTUuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9z eW1maWxlLmMJMjAwOS0wOS0wOSAxOToxNTo0My4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxlLmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAg KzAyMDAKIEBAIC00OSw2ICs0OSw3IEBACiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgi CiAgI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKQEAgLTExODksNyArMTE4OSw3IEBAIEluZGV4OiBn ZGItNi44LjUwLjIwMDkwODExL2dkYi9zeW1maWxlLmMKICAjaW5jbHVkZSAib2JzZXJ2ZXIuaCIK ICAjaW5jbHVkZSAiZXhlYy5oIgogICNpbmNsdWRlICJwYXJzZXItZGVmcy5oIgotQEAgLTc4Niw3 ICs3ODcsNyBAQCBzeW1zX2Zyb21fb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpCitAQCAt Nzc5LDcgKzc4MCw3IEBAIHN5bXNfZnJvbV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmkK ICAKICAgIC8qIE5vdyBlaXRoZXIgYWRkcnMgb3Igb2Zmc2V0cyBpcyBub24temVyby4gICovCiAg CkBAIC0xMTk4LDcgKzExOTgsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3lt ZmlsZS5jCiAgICAgIHsKICAgICAgICAvKiBXZSB3aWxsIG1vZGlmeSB0aGUgbWFpbiBzeW1ib2wg dGFibGUsIG1ha2Ugc3VyZSB0aGF0IGFsbCBpdHMgdXNlcnMKICAgICAgICAgICB3aWxsIGJlIGNs ZWFuZWQgdXAgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBzeW1ib2wgcmVhZGluZy4gICovCi1A QCAtODE0LDcgKzgxNSw3IEBAIHN5bXNfZnJvbV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmkKK0BAIC04MDcsNyArODA4LDcgQEAgc3ltc19mcm9tX29iamZpbGUgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaQogIAogICAgICAgV2Ugbm8gbG9uZ2VyIHdhcm4gaWYgdGhlIGxvd2VzdCBzZWN0aW9u IGlzIG5vdCBhIHRleHQgc2VnbWVudCAoYXMKICAgICAgIGhhcHBlbnMgZm9yIHRoZSBQQTY0IHBv cnQuICAqLwpAQCAtMTIwNyw3ICsxMjA3LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEv Z2RiL3N5bWZpbGUuYwogICAgICB7CiAgICAgICAgYXNlY3Rpb24gKmxvd2VyX3NlY3Q7CiAgICAg ICAgYXNlY3Rpb24gKnNlY3Q7Ci1AQCAtODk3LDcgKzg5OCw3IEBAIHN5bXNfZnJvbV9vYmpmaWxl IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmkKK0BAIC04OTAsNyArODkxLDcgQEAgc3ltc19mcm9tX29i amZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaQogICAgICAgIGluaXRfb2JqZmlsZV9zZWN0X2lu ZGljZXMgKG9iamZpbGUpOwogICAgICB9CiAgCkBAIC0xMjE2LDcgKzEyMTYsNyBAQCBJbmRleDog Z2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmlsZS5jCiAgCiAgICAvKiBEaXNjYXJkIGNsZWFu dXBzIGFzIHN5bWJvbCByZWFkaW5nIHdhcyBzdWNjZXNzZnVsLiAgKi8KICAKLUBAIC05MTYsMTcg KzkxNywyMiBAQCBuZXdfc3ltZmlsZV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqCitAQCAt OTA5LDE3ICs5MTAsMjIgQEAgbmV3X3N5bWZpbGVfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9i agogICAgLyogSWYgdGhpcyBpcyB0aGUgbWFpbiBzeW1ib2wgZmlsZSB3ZSBoYXZlIHRvIGNsZWFu IHVwIGFsbCB1c2VycyBvZiB0aGUKICAgICAgIG9sZCBtYWluIHN5bWJvbCBmaWxlLiBPdGhlcndp c2UgaXQgaXMgc3VmZmljaWVudCB0byBmaXh1cCBhbGwgdGhlCiAgICAgICBicmVha3BvaW50cyB0 aGF0IG1heSBoYXZlIGJlZW4gcmVkZWZpbmVkIGJ5IHRoaXMgc3ltYm9sIGZpbGUuICAqLwpAQCAt MTI0MSw3ICsxMjQxLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3N5bWZpbGUu YwogIAogICAgLyogV2UncmUgZG9uZSByZWFkaW5nIHRoZSBzeW1ib2wgZmlsZTsgZmluaXNoIG9m ZiBjb21wbGFpbnRzLiAgKi8KICAgIGNsZWFyX2NvbXBsYWludHMgKCZzeW1maWxlX2NvbXBsYWlu dHMsIDAsIGFkZF9mbGFncyAmIFNZTUZJTEVfVkVSQk9TRSk7Ci1AQCAtOTgwLDcgKzk4Niw3IEBA IHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMgKGIKK0BAIC05NzMsNyArOTc5 LDcgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0cyAoYgogICAgLyogR2l2 ZSB1c2VyIGEgY2hhbmNlIHRvIGJ1cnAgaWYgd2UnZCBiZQogICAgICAgaW50ZXJhY3RpdmVseSB3 aXBpbmcgb3V0IGFueSBleGlzdGluZyBzeW1ib2xzLiAgKi8KICAKQEAgLTEyNTAsNyArMTI1MCw3 IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9zeW1maWxlLmMKICAgICAgICAmJiAo aGF2ZV9mdWxsX3N5bWJvbHMgKCkgfHwgaGF2ZV9wYXJ0aWFsX3N5bWJvbHMgKCkpCiAgICAgICAg JiYgZnJvbV90dHkKICAgICAgICAmJiAoaGF2ZV9mdWxsX3N5bWJvbHMgKCkgfHwgaGF2ZV9wYXJ0 aWFsX3N5bWJvbHMgKCkpCi1AQCAtMTE4MSw2ICsxMTg3LDkgQEAgc3ltYm9sX2ZpbGVfY2xlYXIg KGludCBmcm9tX3R0eSkKK0BAIC0xMTYyLDYgKzExNjgsOSBAQCBzeW1ib2xfZmlsZV9jbGVhciAo aW50IGZyb21fdHR5KQogIAkJICAgIHN5bWZpbGVfb2JqZmlsZS0+bmFtZSkKICAJICA6ICFxdWVy eSAoXygiRGlzY2FyZCBzeW1ib2wgdGFibGU/ICIpKSkpCiAgICAgIGVycm9yIChfKCJOb3QgY29u ZmlybWVkLiIpKTsKQEAgLTEyNjAsNyArMTI2MCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODExL2dkYi9zeW1maWxlLmMKICAKICAgIGZyZWVfYWxsX29iamZpbGVzICgpOwogIAotQEAgLTMz ODUsNiArMzM5NCw4IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQorQEAgLTMzNjksNiArMzM3OCw4 IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQogIAkgICAgICAvKiBEaXNjYXJkIGNsZWFudXBzIGFz IHN5bWJvbCByZWFkaW5nIHdhcyBzdWNjZXNzZnVsLiAgKi8KICAJICAgICAgZGlzY2FyZF9jbGVh bnVwcyAob2xkX2NsZWFudXBzKTsKICAKQEAgLTEyNjksMTEgKzEyNjksMTEgQEAgSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MTEvZ2RiL3N5bWZpbGUuYwogIAkgICAgICAvKiBJZiB0aGUgbXRpbWUg aGFzIGNoYW5nZWQgYmV0d2VlbiB0aGUgdGltZSB3ZSBzZXQgbmV3X21vZHRpbWUKICAJICAgICAg ICAgYW5kIG5vdywgd2UgKndhbnQqIHRoaXMgdG8gYmUgb3V0IG9mIGRhdGUsIHNvIGRvbid0IGNh bGwgc3RhdAogIAkgICAgICAgICBhZ2FpbiBub3cuICAqLwotSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MTEvZ2RiL3RhcmdldC5oCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0 LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL3RhcmdldC5o CTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5 MDgxMS9nZGIvdGFyZ2V0LmgJMjAwOS0wOC0xMiAwNjoxODoxNS4wMDAwMDAwMDAgKzAyMDAKLUBA IC01MjQsNyArNTI0LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKKy0tLSBnZGItNi44LjUwLjIwMDkw OTA5Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMDktMDktMDkgMTk6MDc6MzYuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmgJMjAwOS0wOS0wOSAxOToyNDox My4wMDAwMDAwMDAgKzAyMDAKK0BAIC01MjgsNyArNTI4LDcgQEAgc3RydWN0IHRhcmdldF9vcHMK ICAgICAgICAgUmV0dXJuIC0xIGlmIHRoZXJlIGlzIGluc3VmZmljaWVudCBidWZmZXIgZm9yIGEg d2hvbGUgZW50cnkuCiAgICAgICAgIFJldHVybiAxIGlmIGFuIGVudHJ5IHdhcyByZWFkIGludG8g KlRZUEVQIGFuZCAqVkFMUC4gICovCiAgICAgIGludCAoKnRvX2F1eHZfcGFyc2UpIChzdHJ1Y3Qg dGFyZ2V0X29wcyAqb3BzLCBnZGJfYnl0ZSAqKnJlYWRwdHIsCkBAIC0xMjgyLDEwICsxMjgyLDEw IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi90YXJnZXQuaAogIAogICAgICAvKiBT ZWFyY2ggU0VBUkNIX1NQQUNFX0xFTiBieXRlcyBiZWdpbm5pbmcgYXQgU1RBUlRfQUREUiBmb3Ig dGhlCiAgICAgICAgIHNlcXVlbmNlIG9mIGJ5dGVzIGluIFBBVFRFUk4gd2l0aCBsZW5ndGggUEFU VEVSTl9MRU4uCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmlsZS5oCitJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTYuOC41MC4yMDA5MDgxMS5vcmlnL2dkYi9zeW1maWxlLmgJMjAwOS0wOC0xMiAwNjoxMzoyMC4w MDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODExL2dkYi9zeW1maWxlLmgJMjAw OS0wOC0xMiAwNjoxODoxNS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5 Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDA5LTA5LTA5IDE5OjE1OjQzLjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUuaAkyMDA5LTA5LTA5IDE5OjI0OjEz LjAwMDAwMDAwMCArMDIwMAogQEAgLTIyOSw3ICsyMjksMTMgQEAgZW51bSBzeW1maWxlX2FkZF9m bGFncwogICAgICBTWU1GSUxFX01BSU5MSU5FID0gMSA8PCAyLAogIApAQCAtMTMwMSwxMSArMTMw MSwxMSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmlsZS5oCiAgICB9Owog IAogIGV4dGVybiB2b2lkIHN5bXNfZnJvbV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqLAotSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2luZmNtZC5jCitJbmRleDogZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvaW5mY21kLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODEx Lm9yaWcvZ2RiL2luZmNtZC5jCTIwMDktMDgtMTIgMDY6MDk6MTQuMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvaW5mY21kLmMJMjAwOS0wOC0xMiAwNjo0Nzo1OC4w MDAwMDAwMDAgKzAyMDAKLUBAIC0yMjc2LDYgKzIyNzYsOSBAQCBhdHRhY2hfY29tbWFuZF9wb3N0 X3dhaXQgKGNoYXIgKmFyZ3MsIGluCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9p bmZjbWQuYwkyMDA5LTA5LTA5IDE5OjIwOjMzLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL2luZmNtZC5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICsw MjAwCitAQCAtMjMwOCw2ICsyMzA4LDkgQEAgYXR0YWNoX2NvbW1hbmRfcG9zdF93YWl0IChjaGFy ICphcmdzLCBpbgogIAogICAgcG9zdF9jcmVhdGVfaW5mZXJpb3IgKCZjdXJyZW50X3RhcmdldCwg ZnJvbV90dHkpOwogIApAQCAtMTMxNSwxMCArMTMxNSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDgxMS9nZGIvaW5mY21kLmMKICAgIC8qIEluc3RhbGwgaW5mZXJpb3IncyB0ZXJtaW5hbCBt b2Rlcy4gICovCiAgICB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKCk7CiAgCi1JbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgxMS9nZGIvbGludXgtdGRlcC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5 MDkwOS9nZGIvbGludXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgx MS5vcmlnL2dkYi9saW51eC10ZGVwLmMJMjAwOS0wOC0wNCAyMjo0MToxMy4wMDAwMDAwMDAgKzAy MDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODExL2dkYi9saW51eC10ZGVwLmMJMjAwOS0wOC0xMiAw Njo0MzoyNy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2Ri L2xpbnV4LXRkZXAuYwkyMDA5LTA4LTA0IDIyOjQxOjEzLjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi02LjguNTAuMjAwOTA5MDkvZ2RiL2xpbnV4LXRkZXAuYwkyMDA5LTA5LTA5IDE5OjI0OjEzLjAw MDAwMDAwMCArMDIwMAogQEAgLTE2Myw1ICsxNjMsNyBAQCBpbiB0aGlzIHNlc3Npb24uXG4iKSk7 CiAgdm9pZAogIF9pbml0aWFsaXplX2xpbnV4X3RkZXAgKHZvaWQpCgpkaWZmIC0tZ2l0IGEvZ2Ri LTYuMy10ZXN0LXBpZS0yMDA1MDEwNy5wYXRjaCBiL2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcu cGF0Y2gKaW5kZXggZDljNTE0OC4uNmJhMjRhMCAxMDA2NDQKLS0tIGEvZ2RiLTYuMy10ZXN0LXBp ZS0yMDA1MDEwNy5wYXRjaAorKysgYi9nZGItNi4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCkBA IC0xLDcgKzEsNyBAQAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9j b25maWd1cmUuYWMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvY29u ZmlndXJlLmFjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMi5vcmlnL2dkYi90 ZXN0c3VpdGUvY29uZmlndXJlLmFjCTIwMDktMDctMzEgMTc6Mzg6MTYuMDAwMDAwMDAwICswMjAw Ci0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDA5 LTA4LTAzIDExOjEwOjQ1LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDku b3JpZy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDA5LTA3LTMxIDE3OjM4OjE2LjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1 cmUuYWMJMjAwOS0wOS0wOSAxOTowNjowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xNDQsNiArMTQ0 LDYgQEAgQUNfT1VUUFVUKFtNYWtlZmlsZSBcCiAgICBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2Fz bS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIFwKICAgIGdkYi5mb3J0cmFuL01ha2VmaWxl IGdkYi5zZXJ2ZXIvTWFrZWZpbGUgXApAQCAtMTAsMzEgKzEwLDMxIEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCiArICBnZGIub2JqYy9NYWtl ZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtlZmls ZSBcCiAgICBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIFwKICAgIGdk Yi50aHJlYWRzL01ha2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxlXSkK LUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCitJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDIub3JpZy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQky MDA5LTA3LTMxIDE3OjM4OjE2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4 MDIvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUJMjAwOS0wOC0wMyAxMToxMToyNy4wMDAwMDAwMDAg KzAyMDAKLUBAIC0zMjM5LDcgKzMyMzksNyBAQCBkb25lCistLS0gZ2RiLTYuOC41MC4yMDA5MDkw OS5vcmlnL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCTIwMDktMDgtMjIgMTg6NTY6NDMuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2NvbmZpZ3Vy ZQkyMDA5LTA5LTA5IDE5OjA2OjI3LjAwMDAwMDAwMCArMDIwMAorQEAgLTM1MTUsNyArMzUxNSw3 IEBAIGRvbmUKICAKICAKICAKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtl ZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxl IGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUg Z2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmls ZSBnZGIubWkvTWFrZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUg Z2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUg Z2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2Vm aWxlIGdkYi54bWwvTWFrZWZpbGUiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEv TWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtl ZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2Vm aWxlIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFr ZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5vYmpjL01ha2Vm aWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxl IGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFr ZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCistYWNfY29uZmlnX2Zp bGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gv TWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuY3AvTWFrZWZp bGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIGdkYi5mb3J0cmFuL01h a2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLm1pL01ha2Vm aWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZp bGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01h a2VmaWxlIGdkYi50aHJlYWRzL01ha2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01h a2VmaWxlIgorK2FjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBnZGIu YWRhL01ha2VmaWxlIGdkYi5hcmNoL01ha2VmaWxlIGdkYi5hc20vTWFrZWZpbGUgZ2RiLmJhc2Uv TWFrZWZpbGUgZ2RiLmNwL01ha2VmaWxlIGdkYi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9N YWtlZmlsZSBnZGIuZm9ydHJhbi9NYWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZh L01ha2VmaWxlIGdkYi5taS9NYWtlZmlsZSBnZGIubW9kdWxhMi9NYWtlZmlsZSBnZGIub2JqYy9N YWtlZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtl ZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIGdkYi50aHJlYWRz L01ha2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxlIgorIAogIGNhdCA+ Y29uZmNhY2hlIDw8XF9BQ0VPRgogICMgVGhpcyBmaWxlIGlzIGEgc2hlbGwgc2NyaXB0IHRoYXQg Y2FjaGVzIHRoZSByZXN1bHRzIG9mIGNvbmZpZ3VyZQotICMgdGVzdHMgcnVuIG9uIHRoaXMgc3lz dGVtIHNvIHRoZXkgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGNvbmZpZ3VyZQotQEAgLTM4MTMsNiAr MzgxMyw3IEBAIGRvCi0gICAiZ2RiLm9iamMvTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVTPSIkQ09O RklHX0ZJTEVTIGdkYi5vYmpjL01ha2VmaWxlIiA7OwotICAgImdkYi5vcHQvTWFrZWZpbGUiICkg Q09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcHQvTWFrZWZpbGUiIDs7Ci0gICAiZ2Ri LnBhc2NhbC9NYWtlZmlsZSIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnBhc2Nh bC9NYWtlZmlsZSIgOzsKLSsgICJnZGIucGllL01ha2VmaWxlIiApIENPTkZJR19GSUxFUz0iJENP TkZJR19GSUxFUyBnZGIucGllL01ha2VmaWxlIiA7OwotICAgImdkYi5weXRob24vTWFrZWZpbGUi ICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5weXRob24vTWFrZWZpbGUiIDs7Ci0g ICAiZ2RiLnJldmVyc2UvTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdk Yi5yZXZlcnNlL01ha2VmaWxlIiA7OwotICAgImdkYi50aHJlYWRzL01ha2VmaWxlIiApIENPTkZJ R19GSUxFUz0iJENPTkZJR19GSUxFUyBnZGIudGhyZWFkcy9NYWtlZmlsZSIgOzsKLUluZGV4OiBn ZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYworQEAgLTQy MzEsNiArNDIzMSw3IEBAIGRvCisgICAgICJnZGIub2JqYy9NYWtlZmlsZSIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBnZGIub2JqYy9NYWtlZmlsZSIgOzsKKyAgICAgImdkYi5vcHQvTWFr ZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLm9wdC9NYWtlZmlsZSIgOzsK KyAgICAgImdkYi5wYXNjYWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg Z2RiLnBhc2NhbC9NYWtlZmlsZSIgOzsKKysgICAgImdkYi5waWUvTWFrZWZpbGUiKSBDT05GSUdf RklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnBpZS9NYWtlZmlsZSIgOzsKKyAgICAgImdkYi5weXRo b24vTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnB5dGhvbi9NYWtl ZmlsZSIgOzsKKyAgICAgImdkYi5yZXZlcnNlL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09O RklHX0ZJTEVTIGdkYi5yZXZlcnNlL01ha2VmaWxlIiA7OworICAgICAiZ2RiLnRocmVhZHMvTWFr ZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnRocmVhZHMvTWFrZWZpbGUi IDs7CitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0 YWNoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9hdHRhY2guYwkyMDA5LTA4LTAzIDExOjEwOjEyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02 LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5jCTIwMDktMDktMDkg MTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDIwIEBACiArLyogVGhpcyBwcm9n cmFtIGlzIGludGVuZGVkIHRvIGJlIHN0YXJ0ZWQgb3V0c2lkZSBvZiBnZGIsIGFuZCB0aGVuCiAr ICAgYXR0YWNoZWQgdG8gYnkgZ2RiLiAgVGh1cywgaXQgc2ltcGx5IHNwaW5zIGluIGEgbG9vcC4g IFRoZSBsb29wCkBAIC01NiwxMCArNTYsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIv Z2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5jCiArICAgIH0KICsgIHJldHVybiAwOwogK30K LUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gy LmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRh Y2gyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9hdHRhY2gyLmMJMjAwOS0wOC0wMyAxMToxMDoxMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMJMjAwOS0wOS0w OSAxOTowNjowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMjQgQEAKICsvKiBUaGlzIHBy b2dyYW0gaXMgaW50ZW5kZWQgdG8gYmUgc3RhcnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4K ICsgICBhdHRhY2hlZCB0byBieSBnZGIuICBUaHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29w LiAgVGhlIGxvb3AKQEAgLTg1LDEwICs4NSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw Mi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoMi5jCiArICAgIH0KICsgIHJldHVybiAoMCk7 CiArfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2Jy ZWFrLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9i cmVhay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvYnJlYWsuYwkyMDA5LTA4LTAzIDExOjEwOjEyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02 LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMJMjAwOS0wOS0wOSAx OTowNjowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMTQ2IEBACiArLyogVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTIzNiwxMCArMjM2 LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9i cmVhay5jCiArICAgIH0KICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYworSW5kZXg6IGdkYi02LjguNTAuMjAw OTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41 MC4yMDA5MDgwMi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMJMjAwOS0wOC0wMyAxMTox MDoxMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9icmVhazEuYwkyMDA5LTA5LTA5IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAog QEAgLTAsMCArMSw0NCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBH TlUgZGVidWdnZXIuCiArCkBAIC0yODUsMTAgKzI4NSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwMi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMKICt2b2lkIG1hcmtlcjMgKGEs IGIpIGNoYXIgKmEsICpiOyB7fQkvKiBzZXQgYnJlYWtwb2ludCAxOCBoZXJlICovCiArdm9pZCBt YXJrZXI0IChkKSBsb25nIGQ7IHt9CQkvKiBzZXQgYnJlYWtwb2ludCAxMyBoZXJlICovCiArI2Vu ZGlmCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29y ZW1ha2VyLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9jb3JlbWFrZXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0 ZS9nZGIucGllL2NvcmVtYWtlci5jCTIwMDktMDgtMDMgMTE6MTA6MTIuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZW1ha2Vy LmMJMjAwOS0wOS0wOSAxOTowNjowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMTQyIEBA CiArLyogQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTkKICsgICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTQzMiwxMCArNDMyLDEwIEBAIEluZGV4 OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwog KyAgcmV0dXJuIDA7CiArfQogKwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3Rz dWl0ZS9nZGIucGllL2F0dGFjaC5leHAKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgw Mi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAkyMDA5LTA4LTAzIDExOjEwOjEyLjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGllL2F0dGFjaC5leHAJMjAwOS0wOS0wOSAxOTowNjowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0w LDAgKzEsNDMyIEBACiArIyAgIENvcHlyaWdodCAxOTk3LCAxOTk5LCAyMDAyIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtODY5LDEwICs4NjksMTAgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAKICtkb19jYWxs X2F0dGFjaF90ZXN0cwogKwogK3JldHVybiAwCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9n ZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkw OS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDgwMi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCTIwMDktMDgtMDMgMTE6MTA6 MTIuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRl L2dkYi5waWUvYnJlYWsuZXhwCTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCiBA QCAtMCwwICsxLDk3NyBAQAogKyMgICBDb3B5cmlnaHQgMTk4OCwgMTk5MCwgMTk5MSwgMTk5Miwg MTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKICsjICAgMjAwMCwgMjAwMiwgMjAw MywgMjAwNApAQCAtMTg1MSwxMCArMTg1MSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw Mi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCiArICAgIHNlbmRfZ2RiICJzZXQgYXJn cyBtYWluXG4iCiArICAgIGdkYl9leHBlY3QgLXJlICIuKiRnZGJfcHJvbXB0ICQiIHt9CiArfQot SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxl LmV4cAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2Nv cmVmaWxlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2NvcmVmaWxlLmV4cAkyMDA5LTA4LTAzIDExOjEwOjEyLjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4 cAkyMDA5LTA5LTA5IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwyNDMgQEAK ICsjIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LCAyMDAwCiArIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTIwOTksMTAg KzIwOTksMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGllL2NvcmVmaWxlLmV4cAogK2dkYl90ZXN0ICJ1cCIgIiNcWzAtOVxdKiAqXFswLTl4YS1mSCdc XSogaW4gLiogXFwoXFwpLioiICJ1cCBpbiBjb3JlZmlsZS5leHAgKHJlaW5pdCkiCiArCiArZ2Ri X3Rlc3QgImNvcmUiICJObyBjb3JlIGZpbGUgbm93LiIKLUluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi02LjguNTAu MjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4JMjAwOS0w OC0wMyAxMToxMDoxMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgkyMDA5LTA5LTA5IDE5OjA2OjAxLjAwMDAw MDAwMCArMDIwMAogQEAgLTAsMCArMSwxOSBAQAogK1ZQQVRIID0gQHNyY2RpckAKICtzcmNkaXIg PSBAc3JjZGlyQAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNo IGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2gKaW5kZXggM2Q3YWFmMS4uMzJjYmNh MyAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2gKKysrIGIvZ2Ri LTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgwMy9nZGIvZXZlbnQtdG9wLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi9ldmVudC10b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMu b3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAwOS0wOC0wMyAxNjoxNzoxMC4wMDAwMDAwMDAgKzAyMDAK LSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9ldmVudC10b3AuYwkyMDA5LTA4LTAzIDE2OjE3 OjU5LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZXZl bnQtdG9wLmMJMjAwOS0wOS0wOSAyMDowNTo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi9ldmVudC10b3AuYwkyMDA5LTA5LTA5IDIwOjA4OjA0LjAwMDAwMDAw MCArMDIwMAogQEAgLTMzLDYgKzMzLDcgQEAKICAjaW5jbHVkZSAiY2xpL2NsaS1zY3JpcHQuaCIg ICAgIC8qIGZvciByZXNldF9jb21tYW5kX25lc3RfZGVwdGggKi8KICAjaW5jbHVkZSAibWFpbi5o IgpAQCAtMjgsMTEgKzI4LDExIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9ldmVu dC10b3AuYwogICAgLyogRWFjaCBpbnRlcnByZXRlciBoYXMgaXRzIG93biBydWxlcyBvbiBkaXNw bGF5aW5nIHRoZSBjb21tYW5kCiAgICAgICBwcm9tcHQuICAqLwogICAgaWYgKCFjdXJyZW50X2lu dGVycF9kaXNwbGF5X3Byb21wdF9wICgpKQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L3N5bWZpbGUuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDkt MDgtMDMgMTY6MTc6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvc3ltZmlsZS5jCTIwMDktMDgtMDMgMTY6MTc6NTkuMDAwMDAwMDAwICswMjAwCi1AQCAtNTYs NiArNTYsNyBAQAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvc3ltZmlsZS5jCTIw MDktMDktMDkgMjA6MDg6MDQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkw OS9nZGIvc3ltZmlsZS5jCTIwMDktMDktMDkgMjA6MDg6MDQuMDAwMDAwMDAwICswMjAwCitAQCAt NTcsNiArNTcsNyBAQAogICNpbmNsdWRlICJzb2xpYi5oIgogICNpbmNsdWRlICJyZW1vdGUuaCIK ICAjaW5jbHVkZSAibGliYmZkLmgiCkBAIC00MCw3ICs0MCw3IEBAIEluZGV4OiBnZGItNi44LjUw LjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICAKICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgI2lu Y2x1ZGUgPGZjbnRsLmg+Ci1AQCAtNjQsNiArNjUsNyBAQAorQEAgLTY1LDYgKzY2LDcgQEAKICAj aW5jbHVkZSA8Y3R5cGUuaD4KICAjaW5jbHVkZSA8dGltZS5oPgogICNpbmNsdWRlIDxzeXMvdGlt ZS5oPgpAQCAtNDgsNyArNDgsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3lt ZmlsZS5jCiAgCiAgCiAgaW50ICgqZGVwcmVjYXRlZF91aV9sb2FkX3Byb2dyZXNzX2hvb2spIChj b25zdCBjaGFyICpzZWN0aW9uLCB1bnNpZ25lZCBsb25nIG51bSk7Ci1AQCAtMTY5Miw4ICsxNjk0 LDM1MiBAQCBidWlsZF9pZF90b19maWxlbmFtZSAoc3RydWN0IGJ1aWxkX2lkICpiCitAQCAtMTY3 Myw4ICsxNjc1LDM1MiBAQCBidWlsZF9pZF90b19maWxlbmFtZSAoc3RydWN0IGJ1aWxkX2lkICpi CiAgICByZXR1cm4gcmV0dmFsOwogIH0KICAKQEAgLTQwMiw3ICs0MDIsNyBAQCBJbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAgICAgYXZvaWRhbmNlLiAgKi8KICAKICBz dHJ1Y3QgbWlzc2luZ19maWxlcGFpcgotQEAgLTE3NDcsMTEgKzIwOTMsMTcgQEAgbWlzc2luZ19m aWxlcGFpcl9jaGFuZ2UgKHZvaWQpCitAQCAtMTcyOCwxMSArMjA3NCwxNyBAQCBtaXNzaW5nX2Zp bGVwYWlyX2NoYW5nZSAodm9pZCkKICAgICAgICAvKiBBbGwgdGhlaXIgbWVtb3J5IGNhbWUganVz dCBmcm9tIG1pc3NpbmdfZmlsZXBhaXJfT0JTVEFDSy4gICovCiAgICAgICAgbWlzc2luZ19maWxl cGFpcl9oYXNoID0gTlVMTDsKICAgICAgfQpAQCAtNDIwLDcgKzQyMCw3IEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLmMKICAgIG1pc3NpbmdfZmlsZXBhaXJfY2hhbmdl ICgpOwogIH0KICAKLUBAIC0xODE4LDE0ICsyMTcwLDMzIEBAIGRlYnVnX3ByaW50X21pc3Npbmcg KGNvbnN0IGNoYXIgKmJpbmFyeSwKK0BAIC0xNzk5LDE0ICsyMTUxLDMzIEBAIGRlYnVnX3ByaW50 X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwKICAKICAgICpzbG90ID0gbWlzc2luZ19maWxl cGFpcjsKICAKQEAgLTQ2MSwxMSArNDYxLDExIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAz L2dkYi9zeW1maWxlLmMKICB9CiAgCiAgc3RhdGljIGNoYXIgKgotSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5 bWZpbGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvc3lt ZmlsZS5oCTIwMDktMDgtMDMgMTY6MTc6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5oCTIwMDktMDgtMDMgMTY6MTc6NTkuMDAwMDAwMDAwICsw MjAwCi1AQCAtMzk0LDYgKzM5NCw3IEBAIGV4dGVybiBzdHJ1Y3QgYnVpbGRfaWQgKmJ1aWxkX2lk X2FkZHJfZ2UKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDA5 LTA5LTA5IDIwOjA4OjA0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL3N5bWZpbGUuaAkyMDA5LTA5LTA5IDIwOjA4OjA0LjAwMDAwMDAwMCArMDIwMAorQEAgLTM4 Nyw2ICszODcsNyBAQCBleHRlcm4gc3RydWN0IGJ1aWxkX2lkICpidWlsZF9pZF9hZGRyX2dlCiAg ZXh0ZXJuIGNoYXIgKmJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChzdHJ1Y3QgYnVpbGRfaWQgKmJ1aWxk X2lkLAogIAkJCQkgICBjaGFyICoqbGlua19yZXR1cm4sIGludCBhZGRfZGVidWdfc3VmZml4KTsK ICBleHRlcm4gdm9pZCBkZWJ1Z19wcmludF9taXNzaW5nIChjb25zdCBjaGFyICpiaW5hcnksIGNv bnN0IGNoYXIgKmRlYnVnKTsKQEAgLTQ3MywxMCArNDczLDEwIEBAIEluZGV4OiBnZGItNi44LjUw LjIwMDkwODAzL2dkYi9zeW1maWxlLmgKICAKICAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAot SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCTIwMDktMDgtMDMgMTY6MTc6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMDktMDgtMDMgMTY6MTc6NTkuMDAw MDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAJMjAwOS0wOS0wOSAyMDowODowNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAwOS0wOS0wOSAyMDow ODowNC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBwcm9jIGRlZmF1bHRf Z2RiX3N0YXJ0IHsgfSB7CiAgCSAgICB3YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRv IDAuIgogIAl9CkBAIC00ODYsMTAgKzQ4NiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgICAgIHNlbmRfZ2RiICJzZXQgYnVpbGQtaWQt dmVyYm9zZSAwXG4iCiAgICAgIGdkYl9leHBlY3QgMTAgewogIAktcmUgIiRnZGJfcHJvbXB0ICQi IHsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBv cnQuZXhwCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2xpYi9taS1z dXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIv dGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDA5LTA4LTAzIDE2OjE3OjEwLjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3Vw cG9ydC5leHAJMjAwOS0wOC0wMyAxNjoxNzo1OS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44 LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAwOS0w OS0wOSAyMDowODowNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMDktMDktMDkgMjA6MDg6MDQuMDAwMDAw MDAwICswMjAwCiBAQCAtMjIxLDcgKzIyMSw3IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQg eyBhcmdzIH0gewogIAkgICAgfQogICAgICAJfQpAQCAtNDk5LDEwICs0OTksMTAgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICAg ICAgc2VuZF9nZGIgIjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxuIgogICAgICBnZGJf ZXhwZWN0IDEwIHsKICAJLXJlICIuKjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxyXG4x OTBcXFxeZG9uZVxyXG4kbWlfZ2RiX3Byb21wdCQiIHsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi90dWkvdHVpLWludGVycC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv dHVpL3R1aS1pbnRlcnAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3Jp Zy9nZGIvdHVpL3R1aS1pbnRlcnAuYwkyMDA5LTA4LTAzIDE2OjE3OjEwLjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3R1aS90dWktaW50ZXJwLmMJMjAwOS0wOC0w MyAxNjoxNzo1OS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcv Z2RiL3R1aS90dWktaW50ZXJwLmMJMjAwOS0wOS0wOSAyMDowNTo0OC4wMDAwMDAwMDAgKzAyMDAK KysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90dWkvdHVpLWludGVycC5jCTIwMDktMDktMDkg MjA6MDg6MDQuMDAwMDAwMDAwICswMjAwCiBAQCAtMzAsNiArMzAsNyBAQAogICNpbmNsdWRlICJ0 dWkvdHVpLmgiCiAgI2luY2x1ZGUgInR1aS90dWktaW8uaCIKQEAgLTUyMCwxMyArNTIwLDEzIEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90dWkvdHVpLWludGVycC5jCiAgICAgICAg LyogVGVsbCByZWFkbGluZSB3aGF0IHRoZSBwcm9tcHQgdG8gZGlzcGxheSBpcyBhbmQgd2hhdCBm dW5jdGlvbgogICAgICAgICAgIGl0IHdpbGwgbmVlZCB0byBjYWxsIGFmdGVyIGEgd2hvbGUgbGlu ZSBpcyByZWFkLiBUaGlzIGFsc28KICAgICAgICAgICBkaXNwbGF5cyB0aGUgZmlyc3QgcHJvbXB0 LiAgKi8KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9hY2xvY2FsLm00CitJbmRleDog Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYWNsb2NhbC5tNAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02 LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvYWNsb2NhbC5tNAkyMDA5LTA4LTAzIDE2OjE3OjEwLjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2FjbG9jYWwubTQJMjAw OS0wOC0wMyAxNjoxOToyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMSw2ICsxMSwxNjIgQEAKLSAj IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEKLSAjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9y aWcvZ2RiL2FjbG9jYWwubTQJMjAwOS0wOS0wOSAyMDowNTo0OC4wMDAwMDAwMDAgKzAyMDAKKysr KyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9hY2xvY2FsLm00CTIwMDktMDktMDkgMjA6MDk6MzIu MDAwMDAwMDAwICswMjAwCitAQCAtMTksNiArMTksMTYyIEBAIFlvdSBoYXZlIGFub3RoZXIgdmVy c2lvbiBvZiBhdXRvY29uZi4gIEkKKyBJZiB5b3UgaGF2ZSBwcm9ibGVtcywgeW91IG1heSBuZWVk IHRvIHJlZ2VuZXJhdGUgdGhlIGJ1aWxkIHN5c3RlbSBlbnRpcmVseS4KKyBUbyBkbyBzbywgdXNl IHRoZSBwcm9jZWR1cmUgZG9jdW1lbnRlZCBieSB0aGUgcGFja2FnZSwgdHlwaWNhbGx5IGBhdXRv cmVjb25mJy5dKV0pCiAgCiArIyBwa2cubTQgLSBNYWNyb3MgdG8gbG9jYXRlIGFuZCB1dGlsaXNl IHBrZy1jb25maWcuICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogKyMgCkBAIC02ODQsMTQg KzY4NCwxNCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYWNsb2NhbC5tNAogK2Zp W11kbmwKICtdKSMgUEtHX0NIRUNLX01PRFVMRVMKICsKLSAjIENvcHlyaWdodCAoQykgMjAwMiwg MjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgIyBDb3B5cmlnaHQg KEMpIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgogICMKICAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29u ZmlnLmluCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlnLmluCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9jb25maWcuaW4JMjAwOS0wOC0w MyAxNjoxNzoxMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9j b25maWcuaW4JMjAwOS0wOC0wMyAxNjoxNzo1OS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zOSw2ICsz OSw5IEBACistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9jb25maWcuaW4JMjAwOS0w OS0wOSAyMDowODowNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi9jb25maWcuaW4JMjAwOS0wOS0wOSAyMDowODowNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC00Miw2 ICs0Miw5IEBACiAgLyogRGVmaW5lIHRvIEJGRCdzIGRlZmF1bHQgdGFyZ2V0IHZlY3Rvci4gKi8K ICAjdW5kZWYgREVGQVVMVF9CRkRfVkVDCiAgCkBAIC03MDEsNyArNzAxLDcgQEAgSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHRyYW5z bGF0aW9uIG9mIHByb2dyYW0gbWVzc2FnZXMgdG8gdGhlIHVzZXIncyBuYXRpdmUKICAgICBsYW5n dWFnZSBpcyByZXF1ZXN0ZWQuICovCiAgI3VuZGVmIEVOQUJMRV9OTFMKLUBAIC0yMTgsNiArMjIx LDkgQEAKK0BAIC0yMjEsNiArMjI0LDkgQEAKICAvKiBEZWZpbmUgaWYgUHl0aG9uIDIuNiBpcyBi ZWluZyB1c2VkLiAqLwogICN1bmRlZiBIQVZFX0xJQlBZVEhPTjJfNgogIApAQCAtNzExLDU4ICs3 MTEsNTggQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZy5pbgogIC8qIERl ZmluZSBpZiBsaWJ1bndpbmQgbGlicmFyeSBpcyBiZWluZyB1c2VkLiAqLwogICN1bmRlZiBIQVZF X0xJQlVOV0lORAogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQor SW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvY29uZmlndXJlCTIwMDktMDgtMDMgMTY6MTc6 MTAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJl CTIwMDktMDgtMDMgMTY6MjA6MDkuMDAwMDAwMDAwICswMjAwCi1AQCAtMzE0LDcgKzMxNCw3IEBA IGFjX3N1YmRpcnNfYWxsPSIkYWNfc3ViZGlyc19hbGwgZG9jIHRlc3QKLSBhY19zdWJkaXJzX2Fs bD0iJGFjX3N1YmRpcnNfYWxsIGdkYnRrIgotIGFjX3N1YmRpcnNfYWxsPSIkYWNfc3ViZGlyc19h bGwgbXVsdGktaWNlIgotIGFjX3N1YmRpcnNfYWxsPSIkYWNfc3ViZGlyc19hbGwgZ2Ric2VydmVy IgotLWFjX3N1YnN0X3ZhcnM9J1NIRUxMIFBBVEhfU0VQQVJBVE9SIFBBQ0tBR0VfTkFNRSBQQUNL QUdFX1RBUk5BTUUgUEFDS0FHRV9WRVJTSU9OIFBBQ0tBR0VfU1RSSU5HIFBBQ0tBR0VfQlVHUkVQ T1JUIGV4ZWNfcHJlZml4IHByZWZpeCBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIGJpbmRpciBzYmlu ZGlyIGxpYmV4ZWNkaXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3Rh dGVkaXIgbGliZGlyIGluY2x1ZGVkaXIgb2xkaW5jbHVkZWRpciBpbmZvZGlyIG1hbmRpciBidWls ZF9hbGlhcyBob3N0X2FsaWFzIHRhcmdldF9hbGlhcyBERUZTIEVDSE9fQyBFQ0hPX04gRUNIT19U IExJQlMgTUFJTlRBSU5FUl9NT0RFX1RSVUUgTUFJTlRBSU5FUl9NT0RFX0ZBTFNFIE1BSU5UIEND IENGTEFHUyBMREZMQUdTIENQUEZMQUdTIGFjX2N0X0NDIEVYRUVYVCBPQkpFWFQgQ1BQIEVHUkVQ IFJBTkxJQiBhY19jdF9SQU5MSUIgYnVpbGQgYnVpbGRfY3B1IGJ1aWxkX3ZlbmRvciBidWlsZF9v cyBob3N0IGhvc3RfY3B1IGhvc3RfdmVuZG9yIGhvc3Rfb3MgdGFyZ2V0IHRhcmdldF9jcHUgdGFy Z2V0X3ZlbmRvciB0YXJnZXRfb3MgYW1fX2xlYWRpbmdfZG90IERFUERJUiBDQ0RFUE1PREUgTUFL RSBHTUFLRV9UUlVFIEdNQUtFX0ZBTFNFIFNFVF9NQUtFIFVTRV9OTFMgTElCSU5UTCBMSUJJTlRM X0RFUCBJTkNJTlRMIFhHRVRURVhUIEdNU0dGTVQgUE9TVUIgQ0FUQUxPR1MgREFUQURJUk5BTUUg SU5TVE9CSkVYVCBHRU5DQVQgQ0FUT0JKRVhUIGxvY2FsZWRpciBHTF9DT05EX0xJQlRPT0xfVFJV RSBHTF9DT05EX0xJQlRPT0xfRkFMU0UgR05VTElCX01FTU1FTSBHTlVMSUJfTUVNUENQWSBHTlVM SUJfTUVNUkNIUiBHTlVMSUJfU1RQQ1BZIEdOVUxJQl9TVFBOQ1BZIEdOVUxJQl9TVFJDSFJOVUwg R05VTElCX1NUUkRVUCBHTlVMSUJfU1RSTkRVUCBHTlVMSUJfU1RSTkxFTiBHTlVMSUJfU1RSUEJS SyBHTlVMSUJfU1RSU0VQIEdOVUxJQl9TVFJTVFIgR05VTElCX1NUUkNBU0VTVFIgR05VTElCX1NU UlRPS19SIEdOVUxJQl9NQlNMRU4gR05VTElCX01CU05MRU4gR05VTElCX01CU0NIUiBHTlVMSUJf TUJTUkNIUiBHTlVMSUJfTUJTU1RSIEdOVUxJQl9NQlNDQVNFQ01QIEdOVUxJQl9NQlNOQ0FTRUNN UCBHTlVMSUJfTUJTUENBU0VDTVAgR05VTElCX01CU0NBU0VTVFIgR05VTElCX01CU0NTUE4gR05V TElCX01CU1BCUksgR05VTElCX01CU1NQTiBHTlVMSUJfTUJTU0VQIEdOVUxJQl9NQlNUT0tfUiBH TlVMSUJfU1RSRVJST1IgR05VTElCX1NUUlNJR05BTCBIQVZFX0RFQ0xfTUVNTUVNIEhBVkVfTUVN UENQWSBIQVZFX0RFQ0xfTUVNUkNIUiBIQVZFX1NUUENQWSBIQVZFX1NUUE5DUFkgSEFWRV9TVFJD SFJOVUwgSEFWRV9ERUNMX1NUUkRVUCBIQVZFX1NUUk5EVVAgSEFWRV9ERUNMX1NUUk5EVVAgSEFW RV9ERUNMX1NUUk5MRU4gSEFWRV9TVFJQQlJLIEhBVkVfU1RSU0VQIEhBVkVfU1RSQ0FTRVNUUiBI QVZFX0RFQ0xfU1RSVE9LX1IgSEFWRV9ERUNMX1NUUkVSUk9SIEhBVkVfREVDTF9TVFJTSUdOQUwg UkVQTEFDRV9TVFJFUlJPUiBSRVBMQUNFX1NUUlNJR05BTCBSRVBMQUNFX01FTU1FTSBSRVBMQUNF X1NUUkNBU0VTVFIgUkVQTEFDRV9TVFJTVFIgSEFWRV9MT05HX0xPTkdfSU5UIEhBVkVfVU5TSUdO RURfTE9OR19MT05HX0lOVCBIQVZFX0lOVFRZUEVTX0ggSEFWRV9TWVNfVFlQRVNfSCBJTkNMVURF X05FWFQgTkVYVF9TVERJTlRfSCBIQVZFX1NURElOVF9IIEhBVkVfU1lTX0lOVFRZUEVTX0ggSEFW RV9TWVNfQklUWVBFU19IIEJJVFNJWkVPRl9QVFJESUZGX1QgQklUU0laRU9GX1NJR19BVE9NSUNf VCBCSVRTSVpFT0ZfU0laRV9UIEJJVFNJWkVPRl9XQ0hBUl9UIEJJVFNJWkVPRl9XSU5UX1QgSEFW RV9TSUdORURfU0lHX0FUT01JQ19UIEhBVkVfU0lHTkVEX1dDSEFSX1QgSEFWRV9TSUdORURfV0lO VF9UIFBUUkRJRkZfVF9TVUZGSVggU0lHX0FUT01JQ19UX1NVRkZJWCBTSVpFX1RfU1VGRklYIFdD SEFSX1RfU1VGRklYIFdJTlRfVF9TVUZGSVggU1RESU5UX0ggTkVYVF9TVFJJTkdfSCBHTlVMSUJf V0NXSURUSCBIQVZFX0RFQ0xfV0NXSURUSCBSRVBMQUNFX1dDV0lEVEggV0NIQVJfSCBIQVZFX1dD SEFSX0ggTkVYVF9XQ0hBUl9IIExJQkdOVV9MSUJERVBTIExJQkdOVV9MVExJQkRFUFMgR05VTElC X1NURElOVF9IIFBBQ0tBR0UgSU5TVEFMTF9QUk9HUkFNIElOU1RBTExfU0NSSVBUIElOU1RBTExf REFUQSBDWUdQQVRIX1cgVkVSU0lPTiBBQ0xPQ0FMIEFVVE9DT05GIEFVVE9NQUtFIEFVVE9IRUFE RVIgTUFLRUlORk8gaW5zdGFsbF9zaCBTVFJJUCBhY19jdF9TVFJJUCBJTlNUQUxMX1NUUklQX1BS T0dSQU0gbWtkaXJfcCBBV0sgQU1UQVIgYW1fX3RhciBhbV9fdW50YXIgYW1fX2luY2x1ZGUgYW1f X3F1b3RlIEFNREVQX1RSVUUgQU1ERVBfRkFMU0UgQU1ERVBCQUNLU0xBU0ggYW1fX2Zhc3RkZXBD Q19UUlVFIGFtX19mYXN0ZGVwQ0NfRkFMU0UgREVCVUdESVIgR0RCX0RBVEFESVIgR0RCX0RBVEFE SVJfUEFUSCBweXRob25kaXIgc3ViZGlycyBUQVJHRVRfT0JTIFBLR1ZFUlNJT04gUkVQT1JUX0JV R1NfVE8gUkVQT1JUX0JVR1NfVEVYSSBMTl9TIFlBQ0MgQVIgYWNfY3RfQVIgRExMVE9PTCBhY19j dF9ETExUT09MIFdJTkRSRVMgYWNfY3RfV0lORFJFUyBNSUcgYWNfY3RfTUlHIFJFQURMSU5FIFJF QURMSU5FX0RFUFMgUkVBRExJTkVfQ0ZMQUdTIEhBVkVfTElCRVhQQVQgTElCRVhQQVQgTFRMSUJF WFBBVCBQWVRIT05fQ0ZMQUdTIEFMTE9DQSBDT05GSUdfTERGTEFHUyBUQVJHRVRfU1lTVEVNX1JP T1QgVEFSR0VUX1NZU1RFTV9ST09UX0RFRklORSBTWVNURU1fR0RCSU5JVCBXQVJOX0NGTEFHUyBX RVJST1JfQ0ZMQUdTIFNFUl9IQVJEV0lSRSBXSU4zMkxJQlMgTElCR1VJIEdVSV9DRkxBR1NfWCBX SU4zMkxEQVBQIFRDTF9WRVJTSU9OIFRDTF9QQVRDSF9MRVZFTCBUQ0xfQklOX0RJUiBUQ0xfU1JD X0RJUiBUQ0xfTElCX0ZJTEUgVENMX0xJQl9GTEFHIFRDTF9MSUJfU1BFQyBUQ0xfU1RVQl9MSUJf RklMRSBUQ0xfU1RVQl9MSUJfRkxBRyBUQ0xfU1RVQl9MSUJfU1BFQyBUQ0xfSU5DTFVERSBUQ0xf TElCUkFSWSBUQ0xfREVQUyBUS19WRVJTSU9OIFRLX0JJTl9ESVIgVEtfU1JDX0RJUiBUS19MSUJf RklMRSBUS19MSUJfRkxBRyBUS19MSUJfU1BFQyBUS19TVFVCX0xJQl9GSUxFIFRLX1NUVUJfTElC X0ZMQUcgVEtfU1RVQl9MSUJfU1BFQyBUS19JTkNMVURFIFRLX0xJQlJBUlkgVEtfREVQUyBUS19Y SU5DTFVERVMgWF9DRkxBR1MgWF9MREZMQUdTIFhfTElCUyBHREJUS0xJQlMgR0RCVEtfQ0ZMQUdT IEdEQlRLX1NSQ19ESVIgU0lNIFNJTV9PQlMgRU5BQkxFX0NGTEFHUyBQUk9GSUxFX0NGTEFHUyBD T05GSUdfT0JTIENPTkZJR19ERVBTIENPTkZJR19TUkNTIENPTkZJR19BTEwgQ09ORklHX0NMRUFO IENPTkZJR19JTlNUQUxMIENPTkZJR19VTklOU1RBTEwgdGFyZ2V0X3N1YmRpciBmcmFncyBHREJf Tk1fRklMRSBkYXRhcm9vdGRpciBkb2NkaXIgaHRtbGRpciBwZGZkaXIgTElCT0JKUyBMVExJQk9C SlMgZ2xfTElCT0JKUyBnbF9MVExJQk9CSlMgZ2x0ZXN0c19MSUJPQkpTIGdsdGVzdHNfTFRMSUJP QkpTJwotK2FjX3N1YnN0X3ZhcnM9J1NIRUxMIFBBVEhfU0VQQVJBVE9SIFBBQ0tBR0VfTkFNRSBQ QUNLQUdFX1RBUk5BTUUgUEFDS0FHRV9WRVJTSU9OIFBBQ0tBR0VfU1RSSU5HIFBBQ0tBR0VfQlVH UkVQT1JUIGV4ZWNfcHJlZml4IHByZWZpeCBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIGJpbmRpciBz YmluZGlyIGxpYmV4ZWNkaXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fs c3RhdGVkaXIgbGliZGlyIGluY2x1ZGVkaXIgb2xkaW5jbHVkZWRpciBpbmZvZGlyIG1hbmRpciBi dWlsZF9hbGlhcyBob3N0X2FsaWFzIHRhcmdldF9hbGlhcyBERUZTIEVDSE9fQyBFQ0hPX04gRUNI T19UIExJQlMgTUFJTlRBSU5FUl9NT0RFX1RSVUUgTUFJTlRBSU5FUl9NT0RFX0ZBTFNFIE1BSU5U IENDIENGTEFHUyBMREZMQUdTIENQUEZMQUdTIGFjX2N0X0NDIEVYRUVYVCBPQkpFWFQgQ1BQIEVH UkVQIFJBTkxJQiBhY19jdF9SQU5MSUIgYnVpbGQgYnVpbGRfY3B1IGJ1aWxkX3ZlbmRvciBidWls ZF9vcyBob3N0IGhvc3RfY3B1IGhvc3RfdmVuZG9yIGhvc3Rfb3MgdGFyZ2V0IHRhcmdldF9jcHUg dGFyZ2V0X3ZlbmRvciB0YXJnZXRfb3MgYW1fX2xlYWRpbmdfZG90IERFUERJUiBDQ0RFUE1PREUg TUFLRSBHTUFLRV9UUlVFIEdNQUtFX0ZBTFNFIFNFVF9NQUtFIFVTRV9OTFMgTElCSU5UTCBMSUJJ TlRMX0RFUCBJTkNJTlRMIFhHRVRURVhUIEdNU0dGTVQgUE9TVUIgQ0FUQUxPR1MgREFUQURJUk5B TUUgSU5TVE9CSkVYVCBHRU5DQVQgQ0FUT0JKRVhUIGxvY2FsZWRpciBHTF9DT05EX0xJQlRPT0xf VFJVRSBHTF9DT05EX0xJQlRPT0xfRkFMU0UgR05VTElCX01FTU1FTSBHTlVMSUJfTUVNUENQWSBH TlVMSUJfTUVNUkNIUiBHTlVMSUJfU1RQQ1BZIEdOVUxJQl9TVFBOQ1BZIEdOVUxJQl9TVFJDSFJO VUwgR05VTElCX1NUUkRVUCBHTlVMSUJfU1RSTkRVUCBHTlVMSUJfU1RSTkxFTiBHTlVMSUJfU1RS UEJSSyBHTlVMSUJfU1RSU0VQIEdOVUxJQl9TVFJTVFIgR05VTElCX1NUUkNBU0VTVFIgR05VTElC X1NUUlRPS19SIEdOVUxJQl9NQlNMRU4gR05VTElCX01CU05MRU4gR05VTElCX01CU0NIUiBHTlVM SUJfTUJTUkNIUiBHTlVMSUJfTUJTU1RSIEdOVUxJQl9NQlNDQVNFQ01QIEdOVUxJQl9NQlNOQ0FT RUNNUCBHTlVMSUJfTUJTUENBU0VDTVAgR05VTElCX01CU0NBU0VTVFIgR05VTElCX01CU0NTUE4g R05VTElCX01CU1BCUksgR05VTElCX01CU1NQTiBHTlVMSUJfTUJTU0VQIEdOVUxJQl9NQlNUT0tf UiBHTlVMSUJfU1RSRVJST1IgR05VTElCX1NUUlNJR05BTCBIQVZFX0RFQ0xfTUVNTUVNIEhBVkVf TUVNUENQWSBIQVZFX0RFQ0xfTUVNUkNIUiBIQVZFX1NUUENQWSBIQVZFX1NUUE5DUFkgSEFWRV9T VFJDSFJOVUwgSEFWRV9ERUNMX1NUUkRVUCBIQVZFX1NUUk5EVVAgSEFWRV9ERUNMX1NUUk5EVVAg SEFWRV9ERUNMX1NUUk5MRU4gSEFWRV9TVFJQQlJLIEhBVkVfU1RSU0VQIEhBVkVfU1RSQ0FTRVNU UiBIQVZFX0RFQ0xfU1RSVE9LX1IgSEFWRV9ERUNMX1NUUkVSUk9SIEhBVkVfREVDTF9TVFJTSUdO QUwgUkVQTEFDRV9TVFJFUlJPUiBSRVBMQUNFX1NUUlNJR05BTCBSRVBMQUNFX01FTU1FTSBSRVBM QUNFX1NUUkNBU0VTVFIgUkVQTEFDRV9TVFJTVFIgSEFWRV9MT05HX0xPTkdfSU5UIEhBVkVfVU5T SUdORURfTE9OR19MT05HX0lOVCBIQVZFX0lOVFRZUEVTX0ggSEFWRV9TWVNfVFlQRVNfSCBJTkNM VURFX05FWFQgTkVYVF9TVERJTlRfSCBIQVZFX1NURElOVF9IIEhBVkVfU1lTX0lOVFRZUEVTX0gg SEFWRV9TWVNfQklUWVBFU19IIEJJVFNJWkVPRl9QVFJESUZGX1QgQklUU0laRU9GX1NJR19BVE9N SUNfVCBCSVRTSVpFT0ZfU0laRV9UIEJJVFNJWkVPRl9XQ0hBUl9UIEJJVFNJWkVPRl9XSU5UX1Qg SEFWRV9TSUdORURfU0lHX0FUT01JQ19UIEhBVkVfU0lHTkVEX1dDSEFSX1QgSEFWRV9TSUdORURf V0lOVF9UIFBUUkRJRkZfVF9TVUZGSVggU0lHX0FUT01JQ19UX1NVRkZJWCBTSVpFX1RfU1VGRklY IFdDSEFSX1RfU1VGRklYIFdJTlRfVF9TVUZGSVggU1RESU5UX0ggTkVYVF9TVFJJTkdfSCBHTlVM SUJfV0NXSURUSCBIQVZFX0RFQ0xfV0NXSURUSCBSRVBMQUNFX1dDV0lEVEggV0NIQVJfSCBIQVZF X1dDSEFSX0ggTkVYVF9XQ0hBUl9IIExJQkdOVV9MSUJERVBTIExJQkdOVV9MVExJQkRFUFMgR05V TElCX1NURElOVF9IIFBBQ0tBR0UgSU5TVEFMTF9QUk9HUkFNIElOU1RBTExfU0NSSVBUIElOU1RB TExfREFUQSBDWUdQQVRIX1cgVkVSU0lPTiBBQ0xPQ0FMIEFVVE9DT05GIEFVVE9NQUtFIEFVVE9I RUFERVIgTUFLRUlORk8gaW5zdGFsbF9zaCBTVFJJUCBhY19jdF9TVFJJUCBJTlNUQUxMX1NUUklQ X1BST0dSQU0gbWtkaXJfcCBBV0sgQU1UQVIgYW1fX3RhciBhbV9fdW50YXIgYW1fX2luY2x1ZGUg YW1fX3F1b3RlIEFNREVQX1RSVUUgQU1ERVBfRkFMU0UgQU1ERVBCQUNLU0xBU0ggYW1fX2Zhc3Rk ZXBDQ19UUlVFIGFtX19mYXN0ZGVwQ0NfRkFMU0UgREVCVUdESVIgR0RCX0RBVEFESVIgR0RCX0RB VEFESVJfUEFUSCBweXRob25kaXIgUEtHX0NPTkZJRyBhY19wdF9QS0dfQ09ORklHIFJQTV9DRkxB R1MgUlBNX0xJQlMgc3ViZGlycyBUQVJHRVRfT0JTIFBLR1ZFUlNJT04gUkVQT1JUX0JVR1NfVE8g UkVQT1JUX0JVR1NfVEVYSSBMTl9TIFlBQ0MgQVIgYWNfY3RfQVIgRExMVE9PTCBhY19jdF9ETExU T09MIFdJTkRSRVMgYWNfY3RfV0lORFJFUyBNSUcgYWNfY3RfTUlHIFJFQURMSU5FIFJFQURMSU5F X0RFUFMgUkVBRExJTkVfQ0ZMQUdTIEhBVkVfTElCRVhQQVQgTElCRVhQQVQgTFRMSUJFWFBBVCBQ WVRIT05fQ0ZMQUdTIEFMTE9DQSBDT05GSUdfTERGTEFHUyBUQVJHRVRfU1lTVEVNX1JPT1QgVEFS R0VUX1NZU1RFTV9ST09UX0RFRklORSBTWVNURU1fR0RCSU5JVCBXQVJOX0NGTEFHUyBXRVJST1Jf Q0ZMQUdTIFNFUl9IQVJEV0lSRSBXSU4zMkxJQlMgTElCR1VJIEdVSV9DRkxBR1NfWCBXSU4zMkxE QVBQIFRDTF9WRVJTSU9OIFRDTF9QQVRDSF9MRVZFTCBUQ0xfQklOX0RJUiBUQ0xfU1JDX0RJUiBU Q0xfTElCX0ZJTEUgVENMX0xJQl9GTEFHIFRDTF9MSUJfU1BFQyBUQ0xfU1RVQl9MSUJfRklMRSBU Q0xfU1RVQl9MSUJfRkxBRyBUQ0xfU1RVQl9MSUJfU1BFQyBUQ0xfSU5DTFVERSBUQ0xfTElCUkFS WSBUQ0xfREVQUyBUS19WRVJTSU9OIFRLX0JJTl9ESVIgVEtfU1JDX0RJUiBUS19MSUJfRklMRSBU S19MSUJfRkxBRyBUS19MSUJfU1BFQyBUS19TVFVCX0xJQl9GSUxFIFRLX1NUVUJfTElCX0ZMQUcg VEtfU1RVQl9MSUJfU1BFQyBUS19JTkNMVURFIFRLX0xJQlJBUlkgVEtfREVQUyBUS19YSU5DTFVE RVMgWF9DRkxBR1MgWF9MREZMQUdTIFhfTElCUyBHREJUS0xJQlMgR0RCVEtfQ0ZMQUdTIEdEQlRL X1NSQ19ESVIgU0lNIFNJTV9PQlMgRU5BQkxFX0NGTEFHUyBQUk9GSUxFX0NGTEFHUyBDT05GSUdf T0JTIENPTkZJR19ERVBTIENPTkZJR19TUkNTIENPTkZJR19BTEwgQ09ORklHX0NMRUFOIENPTkZJ R19JTlNUQUxMIENPTkZJR19VTklOU1RBTEwgdGFyZ2V0X3N1YmRpciBmcmFncyBHREJfTk1fRklM RSBkYXRhcm9vdGRpciBkb2NkaXIgaHRtbGRpciBwZGZkaXIgTElCT0JKUyBMVExJQk9CSlMgZ2xf TElCT0JKUyBnbF9MVExJQk9CSlMgZ2x0ZXN0c19MSUJPQkpTIGdsdGVzdHNfTFRMSUJPQkpTJwot IGFjX3N1YnN0X2ZpbGVzPSdob3N0X21ha2VmaWxlX2ZyYWcnCi0gYWNfcHdkPWBwd2RgCi0gCi1A QCAtNzc2LDYgKzc3NiwxOCBAQCBhY19lbnZfQ1BQX3NldD0ke0NQUCtzZXR9Ci0gYWNfZW52X0NQ UF92YWx1ZT0kQ1BQCi0gYWNfY3ZfZW52X0NQUF9zZXQ9JHtDUFArc2V0fQotIGFjX2N2X2Vudl9D UFBfdmFsdWU9JENQUAotK2FjX2Vudl9QS0dfQ09ORklHX3NldD0ke1BLR19DT05GSUcrc2V0fQot K2FjX2Vudl9QS0dfQ09ORklHX3ZhbHVlPSRQS0dfQ09ORklHCi0rYWNfY3ZfZW52X1BLR19DT05G SUdfc2V0PSR7UEtHX0NPTkZJRytzZXR9Ci0rYWNfY3ZfZW52X1BLR19DT05GSUdfdmFsdWU9JFBL R19DT05GSUcKLSthY19lbnZfUlBNX0NGTEFHU19zZXQ9JHtSUE1fQ0ZMQUdTK3NldH0KLSthY19l bnZfUlBNX0NGTEFHU192YWx1ZT0kUlBNX0NGTEFHUwotK2FjX2N2X2Vudl9SUE1fQ0ZMQUdTX3Nl dD0ke1JQTV9DRkxBR1Mrc2V0fQotK2FjX2N2X2Vudl9SUE1fQ0ZMQUdTX3ZhbHVlPSRSUE1fQ0ZM QUdTCi0rYWNfZW52X1JQTV9MSUJTX3NldD0ke1JQTV9MSUJTK3NldH0KLSthY19lbnZfUlBNX0xJ QlNfdmFsdWU9JFJQTV9MSUJTCi0rYWNfY3ZfZW52X1JQTV9MSUJTX3NldD0ke1JQTV9MSUJTK3Nl dH0KLSthY19jdl9lbnZfUlBNX0xJQlNfdmFsdWU9JFJQTV9MSUJTCi0gCi0gIwotICMgUmVwb3J0 IHRoZSAtLWhlbHAgbWVzc2FnZS4KLUBAIC04OTUsNiArOTA3LDggQEAgT3B0aW9uYWwgUGFja2Fn ZXM6CistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9jb25maWd1cmUJMjAwOS0wOS0w OSAyMDowODowNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9j b25maWd1cmUJMjAwOS0wOS0wOSAyMDowOTozNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC02NzYsNiAr Njc2LDkgQEAgUkVQT1JUX0JVR1NfVE8KKyBQS0dWRVJTSU9OCisgVEFSR0VUX09CUworIHN1YmRp cnMKKytSUE1fTElCUworK1JQTV9DRkxBR1MKKytQS0dfQ09ORklHCisgcHl0aG9uZGlyCisgR0RC X0RBVEFESVJfUEFUSAorIEdEQl9EQVRBRElSCitAQCAtODg2LDYgKzg4OSw3IEBAIHdpdGhfc2Vw YXJhdGVfZGVidWdfZGlyCisgd2l0aF9nZGJfZGF0YWRpcgorIHdpdGhfcmVsb2NhdGVkX3NvdXJj ZXMKKyB3aXRoX3B5dGhvbmRpcgorK3dpdGhfcnBtCisgZW5hYmxlX3RhcmdldHMKKyBlbmFibGVf NjRfYml0X2JmZAorIGVuYWJsZV9nZGJjbGkKK0BAIC05MjUsNiArOTI5LDkgQEAgTERGTEFHUwor IExJQlMKKyBDUFBGTEFHUworIENQUAorK1BLR19DT05GSUcKKytSUE1fQ0ZMQUdTCisrUlBNX0xJ QlMKKyBZQUNDCisgWUZMQUdTCisgWE1LTUYnCitAQCAtMTU4OCw2ICsxNTk1LDggQEAgT3B0aW9u YWwgUGFja2FnZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbREFUQURJUi9nZGJdCiAg ICAtLXdpdGgtcHl0aG9uZGlyICAgICAgICBpbnN0YWxsIFB5dGhvbiBkYXRhIGZpbGVzIGluIHRo aXMgcGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RBVEFESVIvZ2RiL3B5dGhvbl0K LSsgIC0td2l0aC1ycG0gICAgICAgICAgICAgIHF1ZXJ5IHJwbSBkYXRhYmFzZSBmb3IgbWlzc2lu ZyBkZWJ1Z2luZm9zCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBbeWVzL25vLF0sIFtkZWYu XSwgW2F1dG89bGlicnBtLnNvXQorKyAgLS13aXRoLXJwbSAgICAgICAgICAgICAgcXVlcnkgcnBt IGRhdGFiYXNlIGZvciBtaXNzaW5nIGRlYnVnaW5mb3MgKHllcy9ubywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgIGRlZi4gYXV0bz1saWJycG0uc28pCiAgICAtLXdpdGgtbGlidW53aW5kICAg ICAgICB1c2UgbGlidW53aW5kIGZyYW1lIHVud2luZGluZyBzdXBwb3J0CiAgICAtLXdpdGgtY3Vy c2VzICAgICAgICAgICB1c2UgdGhlIGN1cnNlcyBsaWJyYXJ5IGluc3RlYWQgb2YgdGhlIHRlcm1j YXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcnkKLUBAIC05MzIsNiArOTQ2LDkg QEAgU29tZSBpbmZsdWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0gICBDUFBGTEFHUyAg ICBDL0MrKyBwcmVwcm9jZXNzb3IgZmxhZ3MsIGUuZy4gLUk8aW5jbHVkZSBkaXI+IGlmIHlvdSBo YXZlCi0gICAgICAgICAgICAgICBoZWFkZXJzIGluIGEgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxp bmNsdWRlIGRpcj4KK0BAIC0xNjIxLDYgKzE2MzAsOSBAQCBTb21lIGluZmx1ZW50aWFsIGVudmly b25tZW50IHZhcmlhYmxlczoKKyAgIENQUEZMQUdTICAgIEMvQysrL09iamVjdGl2ZSBDIHByZXBy b2Nlc3NvciBmbGFncywgZS5nLiAtSTxpbmNsdWRlIGRpcj4gaWYKKyAgICAgICAgICAgICAgIHlv dSBoYXZlIGhlYWRlcnMgaW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgog ICAgQ1BQICAgICAgICAgQyBwcmVwcm9jZXNzb3IKICsgIFBLR19DT05GSUcgIHBhdGggdG8gcGtn LWNvbmZpZyB1dGlsaXR5CiArICBSUE1fQ0ZMQUdTICBDIGNvbXBpbGVyIGZsYWdzIGZvciBSUE0s IG92ZXJyaWRpbmcgcGtnLWNvbmZpZwogKyAgUlBNX0xJQlMgICAgbGlua2VyIGZsYWdzIGZvciBS UE0sIG92ZXJyaWRpbmcgcGtnLWNvbmZpZwotIAotIFVzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3Zl cnJpZGUgdGhlIGNob2ljZXMgbWFkZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCi0gaXQgdG8g ZmluZCBsaWJyYXJpZXMgYW5kIHByb2dyYW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRp b25zLgotQEAgLTcyOTAsNiArNzMwNyw1NTkgQEAgX0FDRU9GCisgICBZQUNDICAgICAgICBUaGUg YFlldCBBbm90aGVyIEMgQ29tcGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4gRGVmYXVsdHMg dG8KKyAgICAgICAgICAgICAgIHRoZSBmaXJzdCBwcm9ncmFtIGZvdW5kIG91dCBvZjogYGJpc29u IC15JywgYGJ5YWNjJywgYHlhY2MnLgorICAgWUZMQUdTICAgICAgVGhlIGxpc3Qgb2YgYXJndW1l bnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgYnkgZGVmYXVsdCB0byAkWUFDQy4KK0BAIC02Njc1LDYg KzY2ODcsNDg2IEBAIF9BQ0VPRgogIGZpCiAgCiAgCkBAIC03ODMsMTMgKzc4MywxMyBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCiArIyAgIGNhbm5vdCBmaW5kIGxp YnJwbSB1c2UgdG8gdGhlIHJwbWxlc3MgY29tcGlsYXRpb24gKGxpa2UgYC0td2l0aG91dC1ycG0n KS4KICsKICsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLXJwbSBvciAtLXdpdGhvdXQtcnBtIHdh cyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfcnBtK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRo dmFsPSIkd2l0aF9ycG0iCi0rCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1ycG0gd2FzIGdpdmVu LgorK2lmIHRlc3QgIiR7d2l0aF9ycG0rc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0k d2l0aF9ycG07CiArZWxzZQogKyAgd2l0aF9ycG09ImF1dG8iCi0rZmk7CisrZmkKKysKICsKICsK ICsKQEAgLTgwOSwyNSArODA5LDE4IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9j b25maWd1cmUKICsgIGZpCiArICBMSUJSUE1fU1RSSU5HPSciJyIkTElCUlBNIiciJwogKwotKyAg ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHNwZWNpZmljIGxpYnJwbSB2ZXJzaW9uIiA+ JjUKLStlY2hvICRFQ0hPX04gImNoZWNraW5nIHNwZWNpZmljIGxpYnJwbSB2ZXJzaW9uLi4uICRF Q0hPX0MiID4mNgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBzcGVjaWZpYyBsaWJycG0gdmVyc2lvbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgc3BlY2lmaWMgbGlicnBtIHZlcnNpb24uLi4gIiA+JjY7IH0KICsgIEhBVkVfRExPUEVOX0xJ QlJQTT1mYWxzZQogKyAgc2F2ZV9MSUJTPSIkTElCUyIKICsgIExJQlM9IiRMSUJTIC1sZGwiCi0r ICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotKyAgeyB7IGVjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotK2VjaG8gIiRhc19tZTog ZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyBlY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZwotK1Nl ZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLStlY2hvICIkYXNfbWU6IGVy cm9yOiBjYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKLStTZWUg XGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH07IH0KKysgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVu IDoKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjog aW4gXGAkYWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19w d2QnOiIgPiYyO30KKythc19mbl9lcnJvciAiY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hpbGUg Y3Jvc3MgY29tcGlsaW5nCisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iICIk TElORU5PIiA1OyB9CiArZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKyAgY2F0IGNvbmZkZWZz LmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K ICsKICsjaW5jbHVkZSA8cnBtL3JwbWxpYi5oPgpAQCAtOTEwLDQ5ICs5MDMsMzIgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogKyAgcmV0dXJuIDA7CiArfQogK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGV2YWwgZWNobyAiJGFzX21l OiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSsg IGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNf ZXhlZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+ JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH07IH07IHRoZW4KKytpZiBhY19mbl9jX3RyeV9ydW4gIiRMSU5FTk8iOyB0aGVuIDoKICsKICsg ICAgRExPUEVOX0xJQlJQTT0iYGNhdCBjb25mdGVzdC5vdXRgIgogKyAgICBpZiB0ZXN0ICJ4JERM T1BFTl9MSUJSUE0iICE9ICJ4IjsgdGhlbgogKyAgICAgIEhBVkVfRExPUEVOX0xJQlJQTT10cnVl Ci0rICAgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJERMT1BFTl9MSUJSUE0iID4m NQotK2VjaG8gIiR7RUNIT19UfSRETE9QRU5fTElCUlBNIiA+JjYKKysgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJERMT1BFTl9MSUJSUE0iID4m NQorKyRhc19lY2hvICIkRExPUEVOX0xJQlJQTSIgPiY2OyB9CiArICAgIGZpCiArCi0rZWxzZQot KyAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+ JjUKLStlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKICtmaQotK3JtIC1mIGNvcmUgKi5jb3JlIGdtb24u b3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0Cisrcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdtb24ub3V0IGJi Lm91dCBjb25mdGVzdCRhY19leGVleHQgXAorKyAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC5iZWFtIGNvbmZ0ZXN0LiRhY19leHQKICtmaQorKwogKyAgcm0gLWYgY29uZnRlc3Qub3V0CiAr CiArCiArCiArICBpZiAkSEFWRV9ETE9QRU5fTElCUlBNOyB0aGVuCiArCi0rICAgIGVjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1 Ci0rZWNobyAkRUNIT19OICJjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eS4u LiAkRUNIT19DIiA+JjYKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgcnBtIGxpYnJhcnkgQVBJIGNvbXBhdGliaWxpdHkuLi4gIiA+JjY7IH0K ICsgICAgIyBUaGUgY29tcGlsYXRpb24gcmVxdWlyZXMgLVdlcnJvciB0byB2ZXJpZnkgYW55dGhp bmcuCiArICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgogKyAgICBDRkxBR1M9IiRDRkxBR1MgLVdl cnJvciIKLSsgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMu aC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKyAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FD RU9GID5jb25mdGVzdC4kYWNfZXh0CiArLyogZW5kIGNvbmZkZWZzLmguICAqLwogKwogKy8qIER1 cGxpY2F0ZSBoZXJlIHRoZSBkZWNsYXJhdGlvbnMgdG8gdmVyaWZ5IHRoZXkgbWF0Y2ggInN5bWZp bGUuYyIuICAqLwpAQCAtOTc3LDQ0ICs5NTMsMjAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2NvbmZpZ3VyZQogKyAgcmV0dXJuIDA7CiArfQogK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19j b21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYKLSsJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLSsJ CQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM SU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0rICBhY19z dGF0dXM9JD8KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25m dGVzdC4kYWNfb2JqZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNf dHJ5XCIiKSA+JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAg ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH07IH07IHRoZW4KKytpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsg dGhlbiA6CiArCiArICAgICAgTElCUlBNX0NPTVBBVD10cnVlCi0rICAgICAgZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLStlY2hvICIke0VDSE9fVH15ZXMiID4mNgorKyAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMi ID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQogKwogK2Vsc2UKLSsgIGVjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwogKwogKyAgICAgIExJQlJQTV9DT01QQVQ9ZmFsc2UKLSsgICAgICBlY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rZWNobyAiJHtFQ0hPX1R9bm8iID4mNgorKyAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KICsKICtmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKICsgICAgQ0ZMQUdTPSIk c2F2ZV9DRkxBR1MiCiArCiArICAgIGlmICEgJExJQlJQTV9DT01QQVQ7IHRoZW4KQEAgLTEwMzAs MTggKzk4MiwxNCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCiAr X0FDRU9GCiArCiArCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVf TElCUlBNIDEKLStfQUNFT0YKKyskYXNfZWNobyAiI2RlZmluZSBIQVZFX0xJQlJQTSAxIiA+PmNv bmZkZWZzLmgKICsKICsgIGVsc2UKLSsgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQotK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKKysgICAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQogKyAgICBMSUJTPSIkc2F2ZV9MSUJTIgogKyAgICBpZiAkRExPUEVOX1JFUVVJUkU7IHRo ZW4KLSsgICAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBTcGVjaWZpYyBuYW1l ICRMSUJSUE0gd2FzIHJlcXVlc3RlZCBidXQgaXQgY291bGQgbm90IGJlIG9wZW5lZC4iID4mNQot K2VjaG8gIiRhc19tZTogZXJyb3I6IFNwZWNpZmljIG5hbWUgJExJQlJQTSB3YXMgcmVxdWVzdGVk IGJ1dCBpdCBjb3VsZCBub3QgYmUgb3BlbmVkLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKysgICAgICBhc19mbl9lcnJvciAiU3BlY2lmaWMgbmFtZSAkTElCUlBNIHdhcyBy ZXF1ZXN0ZWQgYnV0IGl0IGNvdWxkIG5vdCBiZSBvcGVuZWQuIiAiJExJTkVOTyIgNQogKyAgICBm aQogKwogKwpAQCAtMTA0OSwxMCArOTk3LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAz L2dkYi9jb25maWd1cmUKICsJaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgogKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXBrZy1jb25maWci LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgogK3NldCBkdW1teSAke2Fj X3Rvb2xfcHJlZml4fXBrZy1jb25maWc7IGFjX3dvcmQ9JDIKLStlY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLStlY2hvICRFQ0hPX04gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEtHX0NP TkZJRytzZXR9IiA9IHNldDsgdGhlbgotKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19D IiA+JjYKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX1BLR19DT05GSUcrc2V0fSIgPSBzZXQ7 IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKICtlbHNlCiArICBjYXNlICRQ S0dfQ09ORklHIGluCiArICBbXFwvXSogfCA/OltcXC9dKikKQEAgLTEwNjQsMzcgKzEwMTIsMzgg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogK2RvCiArICBJRlM9 JGFzX3NhdmVfSUZTCiArICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiAkYXNf ZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorKyAgICBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlm IHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KICsgICAgYWNfY3ZfcGF0aF9Q S0dfQ09ORklHPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgotKyAgICBlY2hvICIkYXNf bWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAg ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQogKyAgICBicmVhayAyCiArICBmaQogK2RvbmUKLStkb25l CisrICBkb25lCisrSUZTPSRhc19zYXZlX0lGUwogKwogKyAgOzsKICtlc2FjCiArZmkKICtQS0df Q09ORklHPSRhY19jdl9wYXRoX1BLR19DT05GSUcKLSsKICtpZiB0ZXN0IC1uICIkUEtHX0NPTkZJ RyI7IHRoZW4KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQS0dfQ09ORklHIiA+ JjUKLStlY2hvICIke0VDSE9fVH0kUEtHX0NPTkZJRyIgPiY2CisrICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJFBLR19DT05GSUciID4mNQorKyRhc19l Y2hvICIkUEtHX0NPTkZJRyIgPiY2OyB9CiArZWxzZQotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQotK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKKysgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8g Im5vIiA+JjY7IH0KICtmaQogKworKwogK2ZpCiAraWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfUEtH X0NPTkZJRyI7IHRoZW4KICsgIGFjX3B0X1BLR19DT05GSUc9JFBLR19DT05GSUcKICsgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGtnLWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCiArc2V0IGR1bW15IHBrZy1jb25maWc7IGFjX3dvcmQ9JDIKLStl Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLStlY2hvICRF Q0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLStpZiB0ZXN0ICIk e2FjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgotKyAgZWNobyAk RUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRo X2FjX3B0X1BLR19DT05GSUcrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKICtlbHNlCiArICBjYXNlICRhY19wdF9QS0dfQ09ORklHIGluCiArICBbXFwv XSogfCA/OltcXC9dKikKQEAgLTExMDYsMjkgKzEwNTUsMzkgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogK2RvCiArICBJRlM9JGFzX3NhdmVfSUZTCiArICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KICsgICAgYWNfY3ZfcGF0aF9hY19wdF9QS0dfQ09ORklHPSIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgotKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQogKyAgICBicmVhayAyCiArICBmaQogK2RvbmUKLStkb25lCisrICBkb25lCisrSUZT PSRhc19zYXZlX0lGUwogKwogKyAgOzsKICtlc2FjCiArZmkKICthY19wdF9QS0dfQ09ORklHPSRh Y19jdl9wYXRoX2FjX3B0X1BLR19DT05GSUcKLSsKICtpZiB0ZXN0IC1uICIkYWNfcHRfUEtHX0NP TkZJRyI7IHRoZW4KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19wdF9QS0df Q09ORklHIiA+JjUKLStlY2hvICIke0VDSE9fVH0kYWNfcHRfUEtHX0NPTkZJRyIgPiY2CisrICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3B0X1BL R19DT05GSUciID4mNQorKyRhc19lY2hvICIkYWNfcHRfUEtHX0NPTkZJRyIgPiY2OyB9CiArZWxz ZQotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotK2VjaG8gIiR7RUNI T19UfW5vIiA+JjYKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KICtmaQogKwotKyAgUEtHX0NP TkZJRz0kYWNfcHRfUEtHX0NPTkZJRworKyAgaWYgdGVzdCAieCRhY19wdF9QS0dfQ09ORklHIiA9 IHg7IHRoZW4KKysgICAgUEtHX0NPTkZJRz0iIgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19j b21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQor K2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgUEtHX0NPTkZJRz0kYWNfcHRfUEtH X0NPTkZJRworKyAgZmkKICtlbHNlCiArICBQS0dfQ09ORklHPSIkYWNfY3ZfcGF0aF9QS0dfQ09O RklHIgogK2ZpCkBAIC0xMTM2LDMyICsxMDk1LDMyIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9jb25maWd1cmUKICtmaQogK2lmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgog KwlfcGtnX21pbl92ZXJzaW9uPTAuOS4wCi0rCWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBwa2ctY29uZmlnIGlzIGF0IGxlYXN0IHZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb24iID4mNQot K2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgcGtnLWNvbmZpZyBpcyBhdCBsZWFzdCB2ZXJzaW9uICRf cGtnX21pbl92ZXJzaW9uLi4uICRFQ0hPX0MiID4mNgorKwl7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHBrZy1jb25maWcgaXMgYXQgbGVhc3QgdmVyc2lv biAkX3BrZ19taW5fdmVyc2lvbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgcGtnLWNvbmZp ZyBpcyBhdCBsZWFzdCB2ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uLi4uICIgPiY2OyB9CiArCWlm ICRQS0dfQ09ORklHIC0tYXRsZWFzdC1wa2djb25maWctdmVyc2lvbiAkX3BrZ19taW5fdmVyc2lv bjsgdGhlbgotKwkJZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLStlY2hv ICIke0VDSE9fVH15ZXMiID4mNgorKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CiArCWVsc2UK LSsJCWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLStlY2hvICIke0VDSE9f VH1ubyIgPiY2CisrCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CiArCQlQS0dfQ09ORklHPSIiCiAr CWZpCiArCiArZmkKICsKICtwa2dfZmFpbGVkPW5vCi0rZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBSUE0iID4mNQotK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIFJQTS4uLiAk RUNIT19DIiA+JjYKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGZvciBSUE0iID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBSUE0uLi4gIiA+ JjY7IH0KICsKICtpZiB0ZXN0IC1uICIkUlBNX0NGTEFHUyI7IHRoZW4KICsgICAgcGtnX2N2X1JQ TV9DRkxBR1M9IiRSUE1fQ0ZMQUdTIgogKyBlbGlmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhl bgogKyAgICBpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyIgJiYgXAotKyAgICB7IChlY2hvICIkYXNf bWU6JExJTkVOTzogXCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzIFwicnBtXCIi KSA+JjUKKysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwk UEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyBcInJwbVwiIjsgfSA+JjUKICsgICgk UEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAicnBtIikgMj4mNQogKyAgYWNfc3Rh dHVzPSQ/Ci0rICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMg PSAwOyB9OyB0aGVuCiArICBwa2dfY3ZfUlBNX0NGTEFHUz1gJFBLR19DT05GSUcgLS1jZmxhZ3Mg InJwbSIgMj4vZGV2L251bGxgCiArZWxzZQogKyAgcGtnX2ZhaWxlZD15ZXMKQEAgLTExNzMsMTEg KzExMzIsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogKyAg ICBwa2dfY3ZfUlBNX0xJQlM9IiRSUE1fTElCUyIKICsgZWxpZiB0ZXN0IC1uICIkUEtHX0NPTkZJ RyI7IHRoZW4KICsgICAgaWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYmIFwKLSsgICAgeyAoZWNo byAiJGFzX21lOiRMSU5FTk86IFwkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyBc InJwbVwiIikgPiY1CisrICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBcJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgXCJycG1cIiI7IH0gPiY1 CiArICAoJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgInJwbSIpIDI+JjUKICsg IGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNf c3RhdHVzID0gMDsgfTsgdGhlbgogKyAgcGtnX2N2X1JQTV9MSUJTPWAkUEtHX0NPTkZJRyAtLWxp YnMgInJwbSIgMj4vZGV2L251bGxgCiArZWxzZQogKyAgcGtnX2ZhaWxlZD15ZXMKQEAgLTEyMDMs MzEgKzExNjIsMjcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQog KwkjIFB1dCB0aGUgbmFzdHkgZXJyb3IgbWVzc2FnZSBpbiBjb25maWcubG9nIHdoZXJlIGl0IGJl bG9uZ3MKICsJZWNobyAiJFJQTV9QS0dfRVJST1JTIiA+JjUKICsKLSsJZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQotK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKKysJeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQogKyAgICAgICAgICAgICAgICBIQVZFX0xJQlJQTT1mYWxzZQogK2Vs aWYgdGVzdCAkcGtnX2ZhaWxlZCA9IHVudHJpZWQ7IHRoZW4KICsJSEFWRV9MSUJSUE09ZmFsc2UK ICtlbHNlCiArCVJQTV9DRkxBR1M9JHBrZ19jdl9SUE1fQ0ZMQUdTCiArCVJQTV9MSUJTPSRwa2df Y3ZfUlBNX0xJQlMKLSsgICAgICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIg PiY1Ci0rZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjYKKysgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMi ID4mNjsgfQogKwlIQVZFX0xJQlJQTT10cnVlCiArZmkKICsKICsgICAgaWYgJEhBVkVfTElCUlBN OyB0aGVuCiArCi0rICAgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBycG0gbGlicmFy eSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1Ci0rZWNobyAkRUNIT19OICJjaGVja2luZyBycG0gbGli cmFyeSBBUEkgY29tcGF0aWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKKysgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29t cGF0aWJpbGl0eSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgcnBtIGxpYnJhcnkgQVBJIGNv bXBhdGliaWxpdHkuLi4gIiA+JjY7IH0KICsgICAgIyBUaGUgY29tcGlsYXRpb24gcmVxdWlyZXMg LVdlcnJvciB0byB2ZXJpZnkgYW55dGhpbmcuCiArICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgog KyAgICBDRkxBR1M9IiRDRkxBR1MgLVdlcnJvciIKLSsgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKyAg ICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CiArLyogZW5kIGNv bmZkZWZzLmguICAqLwogKwogKy8qIER1cGxpY2F0ZSBoZXJlIHRoZSBkZWNsYXJhdGlvbnMgdG8g dmVyaWZ5IHRoZXkgbWF0Y2ggInN5bWZpbGUuYyIuICAqLwpAQCAtMTI1Miw0NCArMTIwNywyMCBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCiArICByZXR1cm4gMDsK ICt9CiArX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGV2YWwgZWNo byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2Nv bXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNh dCBjb25mdGVzdC5lcnIgPiY1Ci0rICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotKwkgeyBhY190cnk9J3Rlc3Qg LXogIiRhY19jX3dlcnJvcl9mbGFnIgotKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwot KyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSsgIChl dmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYK LSsJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0rICB7IChldmFsIGVj aG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotKyAgKGV2YWwgJGFjX3RyeSkg Mj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorK2lmIGFjX2Zu X2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKICsKICsgICAgICBMSUJSUE1fQ09NUEFU PXRydWUKLSsgICAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotK2Vj aG8gIiR7RUNIT19UfXllcyIgPiY2CisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CiAr CiArZWxzZQotKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCiArCiArICAgICAgTElCUlBNX0NPTVBB VD1mYWxzZQotKyAgICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLStl Y2hvICIke0VDSE9fVH1ubyIgPiY2CisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQogKwog K2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAogKyAgICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKICsKICsgICAgICBpZiAhICRM SUJSUE1fQ09NUEFUOyB0aGVuCkBAIC0xMzAwLDIwICsxMjMxLDE2IEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUKICsKICsgICAgaWYgJEhBVkVfTElCUlBNOyB0aGVu CiArCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfTElCUlBNIDEK LStfQUNFT0YKKyskYXNfZWNobyAiI2RlZmluZSBIQVZFX0xJQlJQTSAxIiA+PmNvbmZkZWZzLmgK ICsKICsgICAgICBDRkxBR1M9IiRDRkxBR1MgJFJQTV9DRkxBR1MiCiArICAgICAgTElCUz0iJExJ QlMgJFJQTV9MSUJTIgogKyAgICBlbHNlCiArICAgICAgaWYgJFJQTV9SRVFVSVJFOyB0aGVuCi0r CXsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRSUE1fUEtHX0VSUk9SUyIgPiY1Ci0r ZWNobyAiJGFzX21lOiBlcnJvcjogJFJQTV9QS0dfRVJST1JTIiA+JjI7fQotKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorKwlhc19mbl9lcnJvciAiJFJQTV9QS0dfRVJST1JTIiAiJExJTkVO TyIgNQogKyAgICAgIGVsc2UKLSsJeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJFJQ TV9QS0dfRVJST1JTIiA+JjUKLStlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRSUE1fUEtHX0VSUk9S UyIgPiYyO30KKysJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJO SU5HOiAkUlBNX1BLR19FUlJPUlMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRS UE1fUEtHX0VSUk9SUyIgPiYyO30KICsgICAgICBmaQogKyAgICBmaQogKyAgZmkKQEAgLTEzMjIs MjIgKzEyNDksMjg3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUK ICAKICAKICAKLUBAIC0yMjUxMyw2ICsyMzA4MywxMCBAQCBzLEBERUJVR0RJUkAsJERFQlVHRElS LDt0IHQKLSBzLEBHREJfREFUQURJUkAsJEdEQl9EQVRBRElSLDt0IHQKLSBzLEBHREJfREFUQURJ Ul9QQVRIQCwkR0RCX0RBVEFESVJfUEFUSCw7dCB0Ci0gcyxAcHl0aG9uZGlyQCwkcHl0aG9uZGly LDt0IHQKLStzLEBQS0dfQ09ORklHQCwkUEtHX0NPTkZJRyw7dCB0Ci0rcyxAYWNfcHRfUEtHX0NP TkZJR0AsJGFjX3B0X1BLR19DT05GSUcsO3QgdAotK3MsQFJQTV9DRkxBR1NALCRSUE1fQ0ZMQUdT LDt0IHQKLStzLEBSUE1fTElCU0AsJFJQTV9MSUJTLDt0IHQKLSBzLEBzdWJkaXJzQCwkc3ViZGly cyw7dCB0Ci0gcyxAVEFSR0VUX09CU0AsJFRBUkdFVF9PQlMsO3QgdAotIHMsQFBLR1ZFUlNJT05A LCRQS0dWRVJTSU9OLDt0IHQKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1 cmUuYWMKK0BAIC05NzIxLDI2NSArMTAyMTMsMjUgQEAgJGFzX2VjaG8gIiNkZWZpbmUgU1REQ19I RUFERVJTIDEiID4+Y29uZgorIAorIGZpCisgCistCistCisgZm9yIGFjX2hlYWRlciBpbiBzeXMv dXNlcjMyLmggc3lzL3Byb2NmczMyLmgKKy1kbworLWFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3Zf aGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAorLWlmIGV2YWwgInRlc3QgXCJcJHskYXNf YWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKy0gIGVjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CistZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Ig JGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKKy1pZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hl YWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCistICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hP X0MiID4mNgorLWZpCistZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAn JHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorLWVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7 JyRhc19hY19IZWFkZXInfSdgIiA+JjYKKy1lbHNlCistICAjIElzIHRoZSBoZWFkZXIgY29tcGls YWJsZT8KKy1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxp dHkiID4mNQorLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkuLi4g JEVDSE9fQyIgPiY2CistY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCistLyogY29uZmRl ZnMuaC4gICovCistX0FDRU9GCistY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cist Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8K Ky0kYWNfaW5jbHVkZXNfZGVmYXVsdAorLSNpbmNsdWRlIDwkYWNfaGVhZGVyPgorLV9BQ0VPRgor LXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKy1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElO RU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKy0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0 ZXN0LmVyMQorLSAgYWNfc3RhdHVzPSQ/CistICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorLSAgcm0gLWYgY29uZnRlc3QuZXIxCistICBjYXQgY29uZnRlc3QuZXJy ID4mNQorLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorLSAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKy0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJy b3JfZmxhZyIKKy0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKy0gIHsgKGV2YWwgZWNo byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CistICAoZXZhbCAkYWNfdHJ5KSAy PiY1CistICBhY19zdGF0dXM9JD8KKy0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKy0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCistCSB7IGFjX3RyeT0n dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKy0gIChldmFsICRhY190cnkpIDI+JjUKKy0gIGFjX3N0 YXR1cz0kPworLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor LSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKy0gIGFjX2hlYWRlcl9jb21waWxlcj15 ZXMKKy1lbHNlCistICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorLXNl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKy0KKy1hY19oZWFkZXJfY29tcGlsZXI9 bm8KKy1maQorLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKy1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBp bGVyIiA+JjUKKy1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYKKy0KKy0j IElzIHRoZSBoZWFkZXIgcHJlc2VudD8KKy1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg JGFjX2hlYWRlciBwcmVzZW5jZSIgPiY1CistZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVh ZGVyIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgorLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorLS8qIGNvbmZkZWZzLmguICAqLworLV9BQ0VPRgorLWNhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy0vKiBlbmQg Y29uZmRlZnMuaC4gICovCistI2luY2x1ZGUgPCRhY19oZWFkZXI+CistX0FDRU9GCistaWYgeyAo ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIp ID4mNQorLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQor LSAgYWNfc3RhdHVzPSQ/CistICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorLSAgcm0gLWYgY29uZnRlc3QuZXIxCistICBjYXQgY29uZnRlc3QuZXJyID4mNQorLSAg ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorLSAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgorLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7 IHRoZW4KKy0gICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworLSAgICBhY19j cHBfZXJyPSRhY19jcHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKKy0gIGVsc2UKKy0gICAgYWNfY3Bw X2Vycj0KKy0gIGZpCistZWxzZQorLSAgYWNfY3BwX2Vycj15ZXMKKy1maQorLWlmIHRlc3QgLXog IiRhY19jcHBfZXJyIjsgdGhlbgorLSAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCistZWxzZQorLSAg ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKy1zZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CistCistICBhY19oZWFkZXJfcHJlcHJvYz1ubworLWZpCistcm0g LWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKy1lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorLWVjaG8gIiR7RUNIT19UfSRhY19oZWFk ZXJfcHJlcHJvYyIgPiY2CistCistIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CistY2Fz ZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY19wcmVwcm9jX3dh cm5fZmxhZyBpbgorLSAgeWVzOm5vOiApCistICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkg dGhlIHByZXByb2Nlc3NvciEiID4mNQorLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRl cjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29y ISIgPiYyO30KKy0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRl cjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CistZWNobyAiJGFz X21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3Mg cmVzdWx0IiA+JjI7fQorLSAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKy0gICAgOzsKKy0gIG5v OnllczoqICkKKy0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRl cjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKKy1lY2hvICIkYXNfbWU6IFdB Uk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30K Ky0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNo ZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CistZWNobyAiJGFzX21l OiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRl IGhlYWRlcnM/IiA+JjI7fQorLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAk YWNfaGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQorLWVjaG8gIiRh c19tZTogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9u IiA+JjI7fQorLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVy OiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKKy1l Y2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBC dXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CistICAgIHsgZWNobyAiJGFzX21lOiRMSU5F Tk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29y J3MgcmVzdWx0IiA+JjUKKy1lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2Nl ZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQorLSAgICB7IGVjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUg Y29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQorLWVjaG8gIiRhc19tZTogV0FSTklO RzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVj ZWRlbmNlIiA+JjI7fQorLSAgICAoCistICAgICAgY2F0IDw8XF9BU0JPWAorLSMjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworLSMjIFJlcG9ydCB0aGlzIHRv IHRoZSBBQ19QQUNLQUdFX05BTUUgbGlzdHMuICAjIworLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworLV9BU0JPWAorLSAgICApIHwKKy0gICAgICBzZWQg InMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKKy0gICAgOzsKKy1lc2FjCistZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKKy1lY2hvICRFQ0hP X04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgorLWlmIGV2YWwgInRl c3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKy0gIGVjaG8gJEVDSE9f TiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CistZWxzZQorLSAgZXZhbCAiJGFzX2FjX0hlYWRlcj1c JGFjX2hlYWRlcl9wcmVwcm9jIgorLWZpCistZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorLWVjaG8gIiR7RUNIT19UfWBl dmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKKy0KKy1maQorLWlmIHRlc3QgYGV2 YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KKytkbyA6CisrICBhc19h Y19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hg CisrYWNfZm5fY19jaGVja19oZWFkZXJfbW9uZ3JlbCAiJExJTkVOTyIgIiRhY19oZWFkZXIiICIk YXNfYWNfSGVhZGVyIiAiJGFjX2luY2x1ZGVzX2RlZmF1bHQiCisrZXZhbCBhc192YWw9XCQkYXNf YWNfSGVhZGVyCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuIDoKKyAgIGNh dCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKy0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIi IHwgJGFzX3RyX2NwcGAgMQorKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwg JGFzX3RyX2NwcGAgMQorIF9BQ0VPRgorIAorIGZpCisgCisgZG9uZQorIAorLWVjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IGVsZl9wcnN0YXR1czMyLnByX3JlZyIgPiY1 CistZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IGVsZl9wcnN0YXR1czMyLnByX3Jl Zy4uLiAkRUNIT19DIiA+JjYKKy1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3RfZWxmX3By c3RhdHVzMzJfcHJfcmVnK3NldH0iID0gc2V0OyB0aGVuCistICBlY2hvICRFQ0hPX04gIihjYWNo ZWQpICRFQ0hPX0MiID4mNgorLWVsc2UKKy0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorLS8qIGNvbmZkZWZzLmguICAqLworLV9BQ0VPRgorLWNhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAorLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy0vKiBlbmQgY29u ZmRlZnMuaC4gICovCistI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KKy0KKy1pbnQKKy1tYWluICgp CisteworLXN0YXRpYyBzdHJ1Y3QgZWxmX3Byc3RhdHVzMzIgYWNfYWdncjsKKy1pZiAoYWNfYWdn ci5wcl9yZWcpCistcmV0dXJuIDA7CistICA7CistICByZXR1cm4gMDsKKy19CistX0FDRU9GCist cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5F Tk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRl c3QuZXIxCistICBhY19zdGF0dXM9JD8KKy0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCistICBybSAtZiBjb25mdGVzdC5lcjEKKy0gIGNhdCBjb25mdGVzdC5lcnIg PiY1CistICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CistICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJv cl9mbGFnIgorLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworLSAgeyAoZXZhbCBlY2hv ICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKy0gIChldmFsICRhY190cnkpIDI+ JjUKKy0gIGFjX3N0YXR1cz0kPworLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKy0JIHsgYWNfdHJ5PSd0 ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCistICB7IChldmFsIGVjaG8gIiRhc19tZTokTElO RU5POiBcIiRhY190cnlcIiIpID4mNQorLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQorLSAgYWNfc3Rh dHVzPSQ/CistICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cist ICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9l bGZfcHJzdGF0dXMzMl9wcl9yZWc9eWVzCistZWxzZQorLSAgZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKy1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cist CistY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCistLyogY29uZmRlZnMuaC4gICovCist X0FDRU9GCistY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CistY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy0jaW5jbHVkZSA8 c3lzL3Byb2Nmcy5oPgorLQorLWludAorLW1haW4gKCkKKy17Cistc3RhdGljIHN0cnVjdCBlbGZf cHJzdGF0dXMzMiBhY19hZ2dyOworLWlmIChzaXplb2YgYWNfYWdnci5wcl9yZWcpCistcmV0dXJu IDA7CistICA7CistICByZXR1cm4gMDsKKy19CistX0FDRU9GCistcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dAorLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVc IiIpID4mNQorLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCistICBhY19zdGF0 dXM9JD8KKy0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCistICBy bSAtZiBjb25mdGVzdC5lcjEKKy0gIGNhdCBjb25mdGVzdC5lcnIgPiY1CistICBlY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CistICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJgorLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorLQkJCSB8fCB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzog XCIkYWNfdHJ5XCIiKSA+JjUKKy0gIChldmFsICRhY190cnkpIDI+JjUKKy0gIGFjX3N0YXR1cz0k PworLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorLSAgKGV4 aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKy0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRh Y19vYmpleHQnCistICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIp ID4mNQorLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQorLSAgYWNfc3RhdHVzPSQ/CistICBlY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CistICAoZXhpdCAkYWNfc3RhdHVz KTsgfTsgfTsgdGhlbgorLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9lbGZfcHJzdGF0dXMzMl9wcl9y ZWc9eWVzCistZWxzZQorLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK Ky1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CistCistYWNfY3ZfbWVtYmVyX3N0 cnVjdF9lbGZfcHJzdGF0dXMzMl9wcl9yZWc9bm8KKy1maQorLXJtIC1mIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKy1maQorLXJtIC1mIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKy1maQorLWVjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X2VsZl9wcnN0YXR1czMy X3ByX3JlZyIgPiY1CistZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3RfZWxmX3By c3RhdHVzMzJfcHJfcmVnIiA+JjYKKy1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X2VsZl9w cnN0YXR1czMyX3ByX3JlZyA9IHllczsgdGhlbgorK2FjX2ZuX2NfY2hlY2tfbWVtYmVyICIkTElO RU5PIiAic3RydWN0IGVsZl9wcnN0YXR1czMyIiAicHJfcmVnIiAiYWNfY3ZfbWVtYmVyX3N0cnVj dF9lbGZfcHJzdGF0dXMzMl9wcl9yZWciICIjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorKyIKKytp ZiB0ZXN0ICJ4JGFjX2N2X21lbWJlcl9zdHJ1Y3RfZWxmX3Byc3RhdHVzMzJfcHJfcmVnIiA9IHgi InllczsgdGhlbiA6CisgCistY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKy0jZGVmaW5lIEhB VkVfRUxGX1BSU1RBVFVTMzIgMQorLV9BQ0VPRgorKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfRUxG X1BSU1RBVFVTMzIgMSIgPj5jb25mZGVmcy5oCisgCisgZmkKKyAKK0luZGV4OiBnZGItNi44LjUw LjIwMDkwOTA5L2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIw MDkwODAzLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDA5LTA4LTAzIDE2OjE3OjEwLjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZS5hYwkyMDA5LTA4 LTAzIDE2OjE3OjU5LjAwMDAwMDAwMCArMDIwMAotQEAgLTE1Myw2ICsxNTMsMTk5IEBAIGVsc2UK Ky0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDA5LTA5LTA5 IDIwOjA4OjA0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2Nv bmZpZ3VyZS5hYwkyMDA5LTA5LTA5IDIwOjA4OjA0LjAwMDAwMDAwMCArMDIwMAorQEAgLTE1MSw2 ICsxNTEsMTk5IEBAIGVsc2UKICBmaQogIEFDX1NVQlNUKHB5dGhvbmRpcikKICAKQEAgLTEzNTks NyArMTU1MSw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUuYWMK ICsKICtBQ19BUkdfV0lUSChbcnBtXSwKICsgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXJwbV0s Ci0rICAgICAgICAgICAgICAgICAgW3F1ZXJ5IHJwbSBkYXRhYmFzZSBmb3IgbWlzc2luZyBkZWJ1 Z2luZm9zIFt5ZXMvbm8sIGRlZi4gYXV0bz1saWJycG0uc29dXSldLCBbXSwgW3dpdGhfcnBtPSJh dXRvIl0pCisrICAgICAgICAgICAgICAgICAgW3F1ZXJ5IHJwbSBkYXRhYmFzZSBmb3IgbWlzc2lu ZyBkZWJ1Z2luZm9zICh5ZXMvbm8sIGRlZi4gYXV0bz1saWJycG0uc28pXSldLCBbXSwgW3dpdGhf cnBtPSJhdXRvIl0pCiArCiArbTRfcGF0dGVybl9hbGxvdyhbXkFDX01TR19FUlJPUiRdKQogK200 X3BhdHRlcm5fYWxsb3coW15BQ19NU0dfV0FSTiRdKQpAQCAtMTUzNywzICsxNzI5LDIyIEBAIElu ZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUuYWMKICAKICBBQ19DT05GSUdf U1VCRElSUyhkb2MgdGVzdHN1aXRlKQogIAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2Ri L2FjaW5jbHVkZS5tNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9n ZGIvYWNpbmNsdWRlLm00CTIwMDktMDktMDkgMjA6MDU6NDguMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYWNpbmNsdWRlLm00CTIwMDktMDktMDkgMjA6MDg6MDQu MDAwMDAwMDAwICswMjAwCitAQCAtMSwzICsxLDUgQEAKKysjIHNlcmlhbCAxCisrCisgZG5sIHdy aXR0ZW4gYnkgUm9iIFNhdm95ZSA8cm9iQGN5Z251cy5jb20+IGZvciBDeWdudXMgU3VwcG9ydAor IGRubCBtYWpvciByZXdyaXRpbmcgZm9yIFRjbCA3LjUgYnkgRG9uIExpYmVzIDxsaWJlc0BuaXN0 Lmdvdj4KKyAKK0BAIC03OSw4ICs4MSw2IEBAIEFDX01TR19SRVNVTFQoeWVzKQorICMgRm91bmRh dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAjIEJvc3Rvbiwg TUEgMDIxMTAtMTMwMSwgVVNBLgorIAorLSMgc2VyaWFsIDEKKy0KKyAjIEBkZWZtYWMgQUNfUFJP R19DQ19TVERDCisgIyBAbWFpbmRleCBQUk9HX0NDX1NUREMKKyAjIEBvdmluZGV4IENDCgpkaWZm IC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1s b2NhdGUucGF0Y2gKaW5kZXggYmRlOGNkZS4uOTk2NDY1ZCAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCkBA IC0xLDcgKzEsNyBAQAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL2NvcmVsb3cuYwor SW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2NvcmVsb3cuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MTgub3JpZy9nZGIvY29yZWxvdy5jCTIwMDktMDctMzEgMTc6MjU6 MjEuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvY29yZWxvdy5j CTIwMDktMDgtMTggMjE6MDc6MjMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5 MDkwOS5vcmlnL2dkYi9jb3JlbG93LmMJMjAwOS0wNy0zMSAxNzoyNToyMS4wMDAwMDAwMDAgKzAy MDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9jb3JlbG93LmMJMjAwOS0wOS0wOSAxOTow OTozNS4wMDAwMDAwMDAgKzAyMDAKIEBAIC00NSw2ICs0NSwxMCBAQAogICNpbmNsdWRlICJleGNl cHRpb25zLmgiCiAgI2luY2x1ZGUgInNvbGliLmgiCkBAIC04OSwxMSArODksMTEgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL2NvcmVsb3cuYwogKwkJCSAgIE5VTEwsIE5VTEwsIE5V TEwsCiArCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQotSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MTgvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MTgu b3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMDktMDgtMTggMjE6MDc6MDUuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMDktMDgt MTggMjE6MDc6MjMuMDAwMDAwMDAwICswMjAwCi1AQCAtMTM3MzMsNiArMTM3MzMsMjcgQEAgaW5m b3JtYXRpb24gZmlsZXMuCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9kb2MvZ2Ri LnRleGluZm8JMjAwOS0wOS0wOSAxOTowOTozMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAwOS0wOS0wOSAxOTowOTozNS4wMDAw MDAwMDAgKzAyMDAKK0BAIC0xMzc2NCw2ICsxMzc2NCwyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4K ICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjEsMTAgKzEyMSwxMCBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgxOC9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGNpbmRleCBAY29kZXsuZ251X2RlYnVn bGlua30gc2VjdGlvbnMKICBAY2luZGV4IGRlYnVnIGxpbmsgc2VjdGlvbnMKICBBIGRlYnVnIGxp bmsgaXMgYSBzcGVjaWFsIHNlY3Rpb24gb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSBuYW1lZAotSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTA4MTgub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMDktMDgtMTggMjE6MDc6MDQuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvc29saWItc3ZyNC5jCTIwMDkt MDgtMTggMjE6MDc6MjMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5v cmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0wOS0wOSAxOTowNTo1Ni4wMDAwMDAwMDAgKzAyMDAK KysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0wOS0wOSAxOTow OTozNS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMTAxLDkgKzExMDEsMzMgQEAgc3ZyNF9jdXJyZW50 X3NvcyAodm9pZCkKICAJCSAgICAgc2FmZV9zdHJlcnJvciAoZXJyY29kZSkpOwogIAkgIGVsc2UK QEAgLTE2MiwxMCArMTYyLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODE4L2dkYi9zb2xp Yi1zdnI0LmMKICAJICAgIH0KICAJICB4ZnJlZSAoYnVmZmVyKTsKICAKLUluZGV4OiBnZGItNi44 LjUwLjIwMDkwODE4L2dkYi9zeW1maWxlLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi9zeW1maWxlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODE4Lm9yaWcvZ2Ri L3N5bWZpbGUuYwkyMDA5LTA4LTE4IDIxOjA3OjA1LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02 LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuYwkyMDA5LTA4LTE4IDIxOjA4OjMxLjAwMDAwMDAw MCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDkt MDktMDkgMTk6MDk6MzEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9n ZGIvc3ltZmlsZS5jCTIwMDktMDktMDkgMTk6MDk6NTUuMDAwMDAwMDAwICswMjAwCiBAQCAtNTYs NiArNTYsNyBAQAogICNpbmNsdWRlICJlbGYtYmZkLmgiCiAgI2luY2x1ZGUgInNvbGliLmgiCkBA IC0xNzQsNyArMTc0LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUu YwogIAogICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICAjaW5jbHVkZSA8ZmNudGwuaD4KLUBAIC0x MTkzLDE2ICsxMTk0LDY1IEBAIHN5bWJvbF9maWxlX2NsZWFyIChpbnQgZnJvbV90dHkpCitAQCAt MTE3NCwxNiArMTE3NSw2NSBAQCBzeW1ib2xfZmlsZV9jbGVhciAoaW50IGZyb21fdHR5KQogICAg ICBwcmludGZfdW5maWx0ZXJlZCAoXygiTm8gc3ltYm9sIGZpbGUgbm93LlxuIikpOwogIH0KICAK QEAgLTI0Miw3ICsyNDIsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvc3ltZmls ZS5jCiAgewogICAgc3RydWN0IGJ1aWxkX2lkICpyZXR2YWw7CiAgCi1AQCAtMTIxOCw2ICsxMjY4 LDM0OCBAQCBidWlsZF9pZF9iZmRfZ2V0IChiZmQgKmFiZmQpCitAQCAtMTE5OSw2ICsxMjQ5LDM0 OCBAQCBidWlsZF9pZF9iZmRfZ2V0IChiZmQgKmFiZmQpCiAgICByZXR1cm4gcmV0dmFsOwogIH0K ICAKQEAgLTU5MSw3ICs1OTEsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvc3lt ZmlsZS5jCiAgLyogUmV0dXJuIGlmIEZJTEVOQU1FIGhhcyBOVF9HTlVfQlVJTERfSUQgbWF0Y2hp bmcgdGhlIENIRUNLIHZhbHVlLiAgKi8KICAKICBzdGF0aWMgaW50Ci1AQCAtMTIzNSw3ICsxNjI3 LDcgQEAgYnVpbGRfaWRfdmVyaWZ5IChjb25zdCBjaGFyICpmaWxlbmFtZSwgcworQEAgLTEyMTYs NyArMTYwOCw3IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHMKICAg IGlmIChhYmZkID09IE5VTEwpCiAgICAgIHJldHVybiAwOwogIApAQCAtNjAwLDcgKzYwMCw3IEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwODE4L2dkYi9zeW1maWxlLmMKICAKICAgIGlmIChmb3Vu ZCA9PSBOVUxMKQogICAgICB3YXJuaW5nIChfKCJGaWxlIFwiJXNcIiBoYXMgbm8gYnVpbGQtaWQs IGZpbGUgc2tpcHBlZCIpLCBmaWxlbmFtZSk7Ci1AQCAtMTI1NCw4ICsxNjQ2LDkgQEAgYnVpbGRf aWRfdmVyaWZ5IChjb25zdCBjaGFyICpmaWxlbmFtZSwgcworQEAgLTEyMzUsOCArMTYyNyw5IEBA IGJ1aWxkX2lkX3ZlcmlmeSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHMKICAgIHJldHVybiByZXR2 YWw7CiAgfQogIApAQCAtNjEyLDcgKzYxMiw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODE4 L2dkYi9zeW1maWxlLmMKICB7CiAgICBjaGFyICpsaW5rLCAqcywgKnJldHZhbCA9IE5VTEw7CiAg ICBnZGJfYnl0ZSAqZGF0YSA9IGJ1aWxkX2lkLT5kYXRhOwotQEAgLTEyNjMsNyArMTY1Niw5IEBA IGJ1aWxkX2lkX3RvX2RlYnVnX2ZpbGVuYW1lIChzdHJ1Y3QgYnVpbGQKK0BAIC0xMjQ0LDcgKzE2 MzcsOSBAQCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1aWxkCiAgCiAgICAv KiBERUJVR19GSUxFX0RJUkVDVE9SWS8uYnVpbGQtaWQvYWIvY2RlZiAqLwogICAgbGluayA9IHht YWxsb2MgKHN0cmxlbiAoZGVidWdfZmlsZV9kaXJlY3RvcnkpICsgKHNpemVvZiAiLy5idWlsZC1p ZC8iIC0gMSkgKyAxCkBAIC02MjMsNyArNjIzLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MTgvZ2RiL3N5bWZpbGUuYwogICAgcyA9IGxpbmsgKyBzcHJpbnRmIChsaW5rLCAiJXMvLmJ1aWxk LWlkLyIsIGRlYnVnX2ZpbGVfZGlyZWN0b3J5KTsKICAgIGlmIChzaXplID4gMCkKICAgICAgewot QEAgLTEyNzQsMTIgKzE2NjksMTQgQEAgYnVpbGRfaWRfdG9fZGVidWdfZmlsZW5hbWUgKHN0cnVj dCBidWlsZAorQEAgLTEyNTUsMTIgKzE2NTAsMTQgQEAgYnVpbGRfaWRfdG9fZGVidWdfZmlsZW5h bWUgKHN0cnVjdCBidWlsZAogICAgICAqcysrID0gJy8nOwogICAgd2hpbGUgKHNpemUtLSA+IDAp CiAgICAgIHMgKz0gc3ByaW50ZiAocywgIiUwMngiLCAodW5zaWduZWQpICpkYXRhKyspOwpAQCAt NjQwLDcgKzY0MCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODE4L2dkYi9zeW1maWxlLmMK ICAKICAgIGlmIChyZXR2YWwgIT0gTlVMTCAmJiAhYnVpbGRfaWRfdmVyaWZ5IChyZXR2YWwsIGJ1 aWxkX2lkKSkKICAgICAgewotQEAgLTEyODcsOSArMTY4NCwxNTAgQEAgYnVpbGRfaWRfdG9fZGVi dWdfZmlsZW5hbWUgKHN0cnVjdCBidWlsZAorQEAgLTEyNjgsOSArMTY2NSwxNTAgQEAgYnVpbGRf aWRfdG9fZGVidWdfZmlsZW5hbWUgKHN0cnVjdCBidWlsZAogICAgICAgIHJldHZhbCA9IE5VTEw7 CiAgICAgIH0KICAKQEAgLTc5MSw3ICs3OTEsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgx OC9nZGIvc3ltZmlsZS5jCiAgc3RhdGljIGNoYXIgKgogIGdldF9kZWJ1Z19saW5rX2luZm8gKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB1bnNpZ25lZCBsb25nICpjcmMzMl9vdXQpCiAgewotQEAg LTEzNzIsMzIgKzE5MTAsMzYgQEAgc3RhdGljIGNoYXIgKgorQEAgLTEzNTMsMzIgKzE4OTEsMzYg QEAgc3RhdGljIGNoYXIgKgogIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUpCiAgewogICAgYXNlY3Rpb24gKnNlY3Q7CkBAIC04MzYsNyArODM2LDcgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuYwogICAgICB9CiAgCiAgICBi YXNlbmFtZSA9IGdldF9kZWJ1Z19saW5rX2luZm8gKG9iamZpbGUsICZjcmMzMik7Ci1AQCAtMTQw NSw3ICsxOTQ3LDcgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQor QEAgLTEzODYsNyArMTkyOCw3IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9i amZpbGUKICAgIGlmIChiYXNlbmFtZSA9PSBOVUxMKQogICAgICAvKiBUaGVyZSdzIG5vIHNlcGFy YXRlIGRlYnVnIGluZm8sIGhlbmNlIHRoZXJlJ3Mgbm8gd2F5IHdlIGNvdWxkCiAgICAgICAgIGxv YWQgaXQgPT4gbm8gd2FybmluZy4gICovCkBAIC04NDUsNyArODQ1LDcgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuYwogIAogICAgZGlyID0geHN0cmR1cCAob2JqZmls ZS0+bmFtZSk7CiAgCi1AQCAtMTQyNywyNCArMTk2OSwxOSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVn X2ZpbGUgKHN0cnVjdCBvYmpmaWxlCitAQCAtMTQwOCwyNCArMTk1MCwxOSBAQCBmaW5kX3NlcGFy YXRlX2RlYnVnX2ZpbGUgKHN0cnVjdCBvYmpmaWxlCiAgICBpZiAoY2Fub25fbmFtZSAmJiBzdHJs ZW4gKGNhbm9uX25hbWUpID4gaSkKICAgICAgaSA9IHN0cmxlbiAoY2Fub25fbmFtZSk7CiAgCkBA IC04NzcsNyArODc3LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUu YwogIAogICAgLyogVGhlbiB0cnkgaW4gdGhlIHN1YmRpcmVjdG9yeSBuYW1lZCBERUJVR19TVUJE SVJFQ1RPUlkuICAqLwogICAgc3RyY3B5IChkZWJ1Z2ZpbGUsIGRpcik7Ci1AQCAtMTQ1MywxMiAr MTk5MCw3IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKK0BAIC0x NDM0LDEyICsxOTcxLDcgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmls ZQogICAgc3RyY2F0IChkZWJ1Z2ZpbGUsIGJhc2VuYW1lKTsKICAKICAgIGlmIChzZXBhcmF0ZV9k ZWJ1Z19maWxlX2V4aXN0cyAoZGVidWdmaWxlLCBjcmMzMiwgb2JqZmlsZS0+bmFtZSkpCkBAIC04 OTEsNyArODkxLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuYwog IAogICAgLyogVGhlbiB0cnkgaW4gdGhlIGdsb2JhbCBkZWJ1Z2ZpbGUgZGlyZWN0b3J5LiAgKi8K ICAgIHN0cmNweSAoZGVidWdmaWxlLCBkZWJ1Z19maWxlX2RpcmVjdG9yeSk7Ci1AQCAtMTQ2Nywx MiArMTk5OSw3IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKK0BA IC0xNDQ4LDEyICsxOTgwLDcgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2Jq ZmlsZQogICAgc3RyY2F0IChkZWJ1Z2ZpbGUsIGJhc2VuYW1lKTsKICAKICAgIGlmIChzZXBhcmF0 ZV9kZWJ1Z19maWxlX2V4aXN0cyAoZGVidWdmaWxlLCBjcmMzMiwgb2JqZmlsZS0+bmFtZSkpCkBA IC05MDUsNyArOTA1LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUu YwogIAogICAgLyogSWYgdGhlIGZpbGUgaXMgaW4gdGhlIHN5c3Jvb3QsIHRyeSB1c2luZyBpdHMg YmFzZSBwYXRoIGluIHRoZQogICAgICAgZ2xvYmFsIGRlYnVnZmlsZSBkaXJlY3RvcnkuICAqLwot QEAgLTE0ODYsMjAgKzIwMTMsMTggQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qg b2JqZmlsZQorQEAgLTE0NjcsMjAgKzE5OTQsMTggQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxl IChzdHJ1Y3Qgb2JqZmlsZQogICAgICAgIHN0cmNhdCAoZGVidWdmaWxlLCBiYXNlbmFtZSk7CiAg CiAgICAgICAgaWYgKHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChkZWJ1Z2ZpbGUsIGNyYzMy LCBvYmpmaWxlLT5uYW1lKSkKQEAgLTkzMywyOCArOTMzLDI4IEBAIEluZGV4OiBnZGItNi44LjUw LjIwMDkwODE4L2dkYi9zeW1maWxlLmMKICB9CiAgCiAgCi1AQCAtNDI1NSw0ICs0NzgwLDE2IEBA IFNob3cgcHJpbnRpbmcgb2Ygc3ltYm9sIGxvYWRpbmcgbWVzc2FnZXMKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNldHByaW50bGlzdCwgJnNob3dwcmludGxpc3Qp OwotKwotKyAgYWRkX3NldHNob3dfemludGVnZXJfY21kICgiYnVpbGQtaWQtdmVyYm9zZSIsIG5v X2NsYXNzLCAmYnVpbGRfaWRfdmVyYm9zZSwKLSsJCQkgICAgXygiXAotK1NldCBkZWJ1Z2dpbmcg bGV2ZWwgb2YgdGhlIGJ1aWxkLWlkIGxvY2F0b3IuIiksIF8oIlwKLStTaG93IGRlYnVnZ2luZyBs ZXZlbCBvZiB0aGUgYnVpbGQtaWQgbG9jYXRvci4iKSwgXygiXAotK0xldmVsIDEgKGRlZmF1bHQp IGVuYWJsZXMgcHJpbnRpbmcgdGhlIG1pc3NpbmcgZGVidWcgZmlsZW5hbWVzLFxuXAotK2xldmVs IDIgYWxzbyBwcmludHMgdGhlIHBhcnNpbmcgb2YgYmluYXJpZXMgdG8gZmluZCB0aGUgaWRlbnRp ZmljYXRvcnMuIiksCi0rCQkJICAgIE5VTEwsCi0rCQkJICAgIHNob3dfYnVpbGRfaWRfdmVyYm9z ZSwKLSsJCQkgICAgJnNldGxpc3QsICZzaG93bGlzdCk7Ci0rCi0rICBvYnNlcnZlcl9hdHRhY2hf ZXhlY3V0YWJsZV9jaGFuZ2VkIChkZWJ1Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOworQEAg LTQyMzEsNCArNDc1NiwxNiBAQCB0aGUgZ2xvYmFsIGRlYnVnLWZpbGUgZGlyZWN0b3J5IHByZXBl bmRlCisgCQkJCSAgICAgTlVMTCwKKyAJCQkJICAgICBzaG93X2RlYnVnX2ZpbGVfZGlyZWN0b3J5 LAorIAkJCQkgICAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOworKyAKKysgICBhZGRfc2V0c2hvd196 aW50ZWdlcl9jbWQgKCJidWlsZC1pZC12ZXJib3NlIiwgbm9fY2xhc3MsICZidWlsZF9pZF92ZXJi b3NlLAorKyAJCQkgICAgXygiXAorKyBTZXQgZGVidWdnaW5nIGxldmVsIG9mIHRoZSBidWlsZC1p ZCBsb2NhdG9yLiIpLCBfKCJcCisrIFNob3cgZGVidWdnaW5nIGxldmVsIG9mIHRoZSBidWlsZC1p ZCBsb2NhdG9yLiIpLCBfKCJcCisrIExldmVsIDEgKGRlZmF1bHQpIGVuYWJsZXMgcHJpbnRpbmcg dGhlIG1pc3NpbmcgZGVidWcgZmlsZW5hbWVzLFxuXAorKyBsZXZlbCAyIGFsc28gcHJpbnRzIHRo ZSBwYXJzaW5nIG9mIGJpbmFyaWVzIHRvIGZpbmQgdGhlIGlkZW50aWZpY2F0b3JzLiIpLAorKyAJ CQkgICAgTlVMTCwKKysgCQkJICAgIHNob3dfYnVpbGRfaWRfdmVyYm9zZSwKKysgCQkJICAgICZz ZXRsaXN0LCAmc2hvd2xpc3QpOworKyAKKysgICBvYnNlcnZlcl9hdHRhY2hfZXhlY3V0YWJsZV9j aGFuZ2VkIChkZWJ1Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOwogIH0KLUluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODE4L2dkYi9zeW1maWxlLmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi9zeW1maWxlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODE4Lm9yaWcv Z2RiL3N5bWZpbGUuaAkyMDA5LTA4LTE4IDIxOjA3OjA0LjAwMDAwMDAwMCArMDIwMAotKysrIGdk Yi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuaAkyMDA5LTA4LTE4IDIxOjA3OjIzLjAwMDAw MDAwMCArMDIwMAotQEAgLTM4OCw2ICszODgsMTMgQEAgZXh0ZXJuIGludCBzeW1maWxlX21hcF9v ZmZzZXRzX3RvX3NlZ21lbgorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvc3ltZmls ZS5oCTIwMDktMDktMDkgMTk6MDU6NTYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvc3ltZmlsZS5oCTIwMDktMDktMDkgMTk6MDk6MzUuMDAwMDAwMDAwICswMjAw CitAQCAtMzgxLDYgKzM4MSwxMyBAQCBleHRlcm4gaW50IHN5bWZpbGVfbWFwX29mZnNldHNfdG9f c2VnbWVuCiAgc3RydWN0IHN5bWZpbGVfc2VnbWVudF9kYXRhICpnZXRfc3ltZmlsZV9zZWdtZW50 X2RhdGEgKGJmZCAqYWJmZCk7CiAgdm9pZCBmcmVlX3N5bWZpbGVfc2VnbWVudF9kYXRhIChzdHJ1 Y3Qgc3ltZmlsZV9zZWdtZW50X2RhdGEgKmRhdGEpOwogIApAQCAtOTY4LDEwICs5NjgsMTAgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuaAogIC8qIEZyb20gZHdhcmYy cmVhZC5jICovCiAgCiAgZXh0ZXJuIGludCBkd2FyZjJfaGFzX2luZm8gKHN0cnVjdCBvYmpmaWxl ICopOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4 cAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MTgub3JpZy9nZGIvdGVzdHN1aXRlL2xp Yi9nZGIuZXhwCTIwMDktMDgtMTggMjE6MDc6MDQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYu OC41MC4yMDA5MDgxOC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMDktMDgtMTggMjE6MDc6 MjMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi90ZXN0 c3VpdGUvbGliL2dkYi5leHAJMjAwOS0wOS0wOSAxOTowNTo1Ni4wMDAwMDAwMDAgKzAyMDAKKysr KyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAwOS0wOS0w OSAxOTowOTozNS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMjQ4LDYgKzEyNDgsMTYgQEAgcHJvYyBk ZWZhdWx0X2dkYl9zdGFydCB7IH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3 aWR0aCB0byAwLiIKICAJfQpAQCAtOTg5LDEwICs5ODksMTAgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MTgvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogICAgICByZXR1cm4gMDsKICB9CiAg Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0 LmV4cAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3Vw cG9ydC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODE4Lm9yaWcvZ2RiL3Rl c3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAwOS0wOC0xOCAyMTowNzowNC4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODE4L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBv cnQuZXhwCTIwMDktMDgtMTggMjE6MDc6MjMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41 MC4yMDA5MDkwOS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMDktMDkt MDkgMTk6MDU6NTYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv dGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDA5LTA5LTA5IDE5OjA5OjM1LjAwMDAwMDAw MCArMDIwMAogQEAgLTIyMSw2ICsyMjEsMTYgQEAgcHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7 IGFyZ3MgfSB7CiAgCSAgICB9CiAgICAgIAl9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1iejI1NDIy OS1nY29yZS1wcnBzaW5mby5wYXRjaCBiL2dkYi02LjgtYnoyNTQyMjktZ2NvcmUtcHJwc2luZm8u cGF0Y2gKaW5kZXggZjIyYjA1Mi4uODJlNjRmOSAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1iejI1NDIy OS1nY29yZS1wcnBzaW5mby5wYXRjaAorKysgYi9nZGItNi44LWJ6MjU0MjI5LWdjb3JlLXBycHNp bmZvLnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvYmZk L2VsZi1iZmQuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MTAvYmZkL2VsZi1iZmQuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9iZmQvZWxmLWJmZC5oCTIwMDkt MDctMjMgMTU6MDA6MjAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9i ZmQvZWxmLWJmZC5oCTIwMDktMDgtMDMgMTc6MjE6MjUuMDAwMDAwMDAwICswMjAwCi1AQCAtMjEx NSw3ICsyMTE1LDcgQEAgZXh0ZXJuIEVsZl9JbnRlcm5hbF9QaGRyICogX2JmZF9lbGZfZmluZAor LS0tIGdkYi02LjguNTAuMjAwOTA5MTAub3JpZy9iZmQvZWxmLWJmZC5oCTIwMDktMDktMDkgMjM6 Mzg6NTcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkxMC9iZmQvZWxmLWJm ZC5oCTIwMDktMDktMTAgMjM6MDE6MTUuMDAwMDAwMDAwICswMjAwCitAQCAtMjEyMSw3ICsyMTIx LDcgQEAgZXh0ZXJuIEVsZl9JbnRlcm5hbF9QaGRyICogX2JmZF9lbGZfZmluZAogIGV4dGVybiBj aGFyICplbGZjb3JlX3dyaXRlX25vdGUKICAgIChiZmQgKiwgY2hhciAqLCBpbnQgKiwgY29uc3Qg Y2hhciAqLCBpbnQsIGNvbnN0IHZvaWQgKiwgaW50KTsKICBleHRlcm4gY2hhciAqZWxmY29yZV93 cml0ZV9wcnBzaW5mbwpAQCAtMTEsMTEgKzExLDExIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2JmZC9lbGYtYmZkLmgKICBleHRlcm4gY2hhciAqZWxmY29yZV93cml0ZV9wcnN0YXR1cwog ICAgKGJmZCAqLCBjaGFyICosIGludCAqLCBsb25nLCBpbnQsIGNvbnN0IHZvaWQgKik7CiAgZXh0 ZXJuIGNoYXIgKiBlbGZjb3JlX3dyaXRlX3BzdGF0dXMKLUluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2JmZC9lbGYuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MTAvYmZkL2VsZi5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2JmZC9lbGYuYwkyMDA5LTA3LTIz IDE1OjAwOjIwLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvYmZkL2Vs Zi5jCTIwMDktMDgtMDMgMTc6MjM6MTMuMDAwMDAwMDAwICswMjAwCi1AQCAtODM4MSw2ICs4Mzgx LDcgQEAgY2hhciAqCistLS0gZ2RiLTYuOC41MC4yMDA5MDkxMC5vcmlnL2JmZC9lbGYuYwkyMDA5 LTA5LTA5IDIzOjM4OjU3LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MTAv YmZkL2VsZi5jCTIwMDktMDktMTAgMjM6MDQ6MTcuMDAwMDAwMDAwICswMjAwCitAQCAtODM5OCw2 ICs4Mzk4LDcgQEAgY2hhciAqCiAgZWxmY29yZV93cml0ZV9wcnBzaW5mbyAoYmZkICAqYWJmZCwK ICAJCQljaGFyICpidWYsCiAgCQkJaW50ICAqYnVmc2l6LApAQCAtMjMsNyArMjMsNyBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMy9iZmQvZWxmLmMKICAJCQljb25zdCBjaGFyICpmbmFtZSwK ICAJCQljb25zdCBjaGFyICpwc2FyZ3MpCiAgewotQEAgLTg0MDcsOSArODQwOCwxNSBAQCBlbGZj b3JlX3dyaXRlX3BycHNpbmZvIChiZmQgICphYmZkLAorQEAgLTg0MjQsOSArODQyNSwxNSBAQCBl bGZjb3JlX3dyaXRlX3BycHNpbmZvIChiZmQgICphYmZkLAogICAgICAgIGludCBub3RlX3R5cGUg PSBOVF9QUlBTSU5GTzsKICAjZW5kaWYKICAKQEAgLTQyLDcgKzQyLDcgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDMvYmZkL2VsZi5jCiAgICAgICAgcmV0dXJuIGVsZmNvcmVfd3JpdGVfbm90 ZSAoYWJmZCwgYnVmLCBidWZzaXosCiAgCQkJCSBub3RlX25hbWUsIG5vdGVfdHlwZSwgJmRhdGEs IHNpemVvZiAoZGF0YSkpOwogICAgICB9Ci1AQCAtODQyNCw5ICs4NDMxLDE1IEBAIGVsZmNvcmVf d3JpdGVfcHJwc2luZm8gKGJmZCAgKmFiZmQsCitAQCAtODQ0MSw5ICs4NDQ4LDE1IEBAIGVsZmNv cmVfd3JpdGVfcHJwc2luZm8gKGJmZCAgKmFiZmQsCiAgICAgICAgaW50IG5vdGVfdHlwZSA9IE5U X1BSUFNJTkZPOwogICNlbmRpZgogIApAQCAtNjEsMTAgKzYxLDEwIEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAzL2JmZC9lbGYuYwogICAgICAgIHJldHVybiBlbGZjb3JlX3dyaXRlX25vdGUg KGFiZmQsIGJ1ZiwgYnVmc2l6LAogIAkJCQkgbm90ZV9uYW1lLCBub3RlX3R5cGUsICZkYXRhLCBz aXplb2YgKGRhdGEpKTsKICAgICAgfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2Ft ZDY0LWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkxMC9nZGIvYW1kNjQtbGlu dXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2Ft ZDY0LWxpbnV4LW5hdC5jCTIwMDktMDgtMDMgMTc6MTk6NTcuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYW1kNjQtbGludXgtbmF0LmMJMjAwOS0wOC0wMyAxNzoy MToyNS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTEwLm9yaWcvZ2RiL2Ft ZDY0LWxpbnV4LW5hdC5jCTIwMDktMDktMTAgMjM6MDE6MDcuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTYuOC41MC4yMDA5MDkxMC9nZGIvYW1kNjQtbGludXgtbmF0LmMJMjAwOS0wOS0xMCAyMzow MToxNS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xNDAsNiArMTQwLDcgQEAgc3RhdGljIGludCBhbWQ2 NF9saW51eF9ncmVnc2V0MzJfcmVnX29mZgogIAogIHN0YXRpYyBjaGFyICoKQEAgLTk4LDEwICs5 OCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYW1kNjQtbGludXgtbmF0LmMK ICB9CiAgCiAgc3RhdGljIHZvaWQKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9mYnNk LW5hdC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkxMC9nZGIvZmJzZC1uYXQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZmJzZC1uYXQuYwkyMDA5LTA3 LTAyIDE5OjIxOjA2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L2Zic2QtbmF0LmMJMjAwOS0wOC0wMyAxNzoyMToyNS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGIt Ni44LjUwLjIwMDkwOTEwLm9yaWcvZ2RiL2Zic2QtbmF0LmMJMjAwOS0wNy0wMiAxOToyMTowNi4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTEwL2dkYi9mYnNkLW5hdC5jCTIw MDktMDktMTAgMjM6MDE6MTUuMDAwMDAwMDAwICswMjAwCiBAQCAtMjExLDYgKzIxMSw3IEBAIGZi c2RfbWFrZV9jb3JlZmlsZV9ub3RlcyAoYmZkICpvYmZkLCBpbnQKICAJcHNhcmdzID0gcmVjb25j YXQgKHBzYXJncywgcHNhcmdzLCAiICIsIGdldF9pbmZlcmlvcl9hcmdzICgpLCBOVUxMKTsKICAK QEAgLTExMCwxMCArMTEwLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9mYnNk LW5hdC5jCiAgCQkJCQkgIGZuYW1lLCBwc2FyZ3MpOwogICAgICB9CiAgCi1JbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvbGludXgtbmF0LmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTEw L2dkYi9saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3Jp Zy9nZGIvbGludXgtbmF0LmMJMjAwOS0wOC0wMyAxNzoxOTo1Ni4wMDAwMDAwMDAgKzAyMDAKLSsr KyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9saW51eC1uYXQuYwkyMDA5LTA4LTAzIDE3OjI0OjAz LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MTAub3JpZy9nZGIvbGludXgt bmF0LmMJMjAwOS0wOS0xMCAyMzowMTowNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUw LjIwMDkwOTEwL2dkYi9saW51eC1uYXQuYwkyMDA5LTA5LTEwIDIzOjAxOjE1LjAwMDAwMDAwMCAr MDIwMAogQEAgLTU1LDYgKzU1LDcgQEAKICAjaW5jbHVkZSAieG1sLXN1cHBvcnQuaCIKICAjaW5j bHVkZSAidGVybWluYWwuaCIKQEAgLTEzMSw3ICsxMzEsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvbGludXgtbmF0LmMKICBjaGFyICooKmxpbnV4X2VsZmNvcmVfd3JpdGVfcHJz dGF0dXMpCiAgICAoYmZkICosIGNoYXIgKiwgaW50ICosIGxvbmcsIGludCwgY29uc3Qgdm9pZCAq KSA9IGVsZmNvcmVfd3JpdGVfcHJzdGF0dXM7CiAgc3RhdGljIGNoYXIgKgotQEAgLTM4NDAsNiAr Mzg0MSwxNTkgQEAgbGludXhfc3B1X21ha2VfY29yZWZpbGVfbm90ZXMgKGJmZCAqb2JmZAorQEAg LTM5NDYsNiArMzk0NywxNTkgQEAgbGludXhfc3B1X21ha2VfY29yZWZpbGVfbm90ZXMgKGJmZCAq b2JmZAogICAgcmV0dXJuIGFyZ3Mubm90ZV9kYXRhOwogIH0KICAKQEAgLTI5MSw3ICsyOTEsNyBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvbGludXgtbmF0LmMKICAvKiBGaWxscyB0 aGUgInRvX21ha2VfY29yZWZpbGVfbm90ZSIgdGFyZ2V0IHZlY3Rvci4gIEJ1aWxkcyB0aGUgbm90 ZQogICAgIHNlY3Rpb24gZm9yIGEgY29yZWZpbGUsIGFuZCByZXR1cm5zIGl0IGluIGEgbWFsbG9j IGJ1ZmZlci4gICovCiAgCi1AQCAtMzg2MCw4ICs0MDE0LDE0IEBAIGxpbnV4X25hdF9tYWtlX2Nv cmVmaWxlX25vdGVzIChiZmQgKm9iZmQKK0BAIC0zOTY2LDggKzQxMjAsMTQgQEAgbGludXhfbmF0 X21ha2VfY29yZWZpbGVfbm90ZXMgKGJmZCAqb2JmZAogIAogICAgaWYgKGdldF9leGVjX2ZpbGUg KDApKQogICAgICB7CkBAIC0zMDYsNyArMzA2LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2xpbnV4LW5hdC5jCiAgICAgICAgaWYgKGdldF9pbmZlcmlvcl9hcmdzICgpKQogIAl7 CiAgCSAgY2hhciAqc3RyaW5nX2VuZDsKLUBAIC0zODc3LDkgKzQwMzcsMTUgQEAgbGludXhfbmF0 X21ha2VfY29yZWZpbGVfbm90ZXMgKGJmZCAqb2JmZAorQEAgLTM5ODMsOSArNDE0MywxNSBAQCBs aW51eF9uYXRfbWFrZV9jb3JlZmlsZV9ub3RlcyAoYmZkICpvYmZkCiAgCQkgICAgICAgcHNhcmdz X2VuZCAtIHN0cmluZ19lbmQpOwogIAkgICAgfQogIAl9CkBAIC0zMjQsMTEgKzMyNCwxMSBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvbGludXgtbmF0LmMKICAgICAgfQogIAogICAg LyogRHVtcCBpbmZvcm1hdGlvbiBmb3IgdGhyZWFkcy4gICovCi1JbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvbGludXgtbmF0LmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTEwL2dkYi9s aW51eC1uYXQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIv bGludXgtbmF0LmgJMjAwOS0wOC0wMyAxNzoxOTo1Ni4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi9saW51eC1uYXQuaAkyMDA5LTA4LTAzIDE3OjIxOjI1LjAwMDAw MDAwMCArMDIwMAotQEAgLTE0OCw3ICsxNDgsNyBAQCBzdHJ1Y3Qgc2lnaW5mbyAqbGludXhfbmF0 X2dldF9zaWdpbmZvIChwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkxMC5vcmlnL2dkYi9saW51eC1u YXQuaAkyMDA5LTA5LTEwIDIzOjAxOjA2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAu MjAwOTA5MTAvZ2RiL2xpbnV4LW5hdC5oCTIwMDktMDktMTAgMjM6MDE6MTUuMDAwMDAwMDAwICsw MjAwCitAQCAtMTU0LDcgKzE1NCw3IEBAIHN0cnVjdCBzaWdpbmZvICpsaW51eF9uYXRfZ2V0X3Np Z2luZm8gKHAKICAvKiBUaGVzZSBmdW5jdGlvbnMgbWFrZSBlbGZjb3JlIG5vdGUgc2VjdGlvbnMu CiAgICAgVGhleSBtYXkgZ2V0IG92ZXJyaWRlbiBieSBjb2RlIGFkanVzdGluZyBkYXRhIGZvciBt dWx0aS10YXJnZXQgYnVpbGRzLiAgKi8KICBleHRlcm4gY2hhciAqKCpsaW51eF9lbGZjb3JlX3dy aXRlX3BycHNpbmZvKQpAQCAtMzM3LDEwICszMzcsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MDMvZ2RiL2xpbnV4LW5hdC5oCiAgZXh0ZXJuIGNoYXIgKigqbGludXhfZWxmY29yZV93cml0 ZV9wcnN0YXR1cykKICAgIChiZmQgKiwgY2hhciAqLCBpbnQgKiwgbG9uZywgaW50LCBjb25zdCB2 b2lkICopOwogIGV4dGVybiBjaGFyICooKmxpbnV4X2VsZmNvcmVfd3JpdGVfcHJmcHJlZykKLUlu ZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9wcm9jZnMuYworSW5kZXg6IGdkYi02LjguNTAu MjAwOTA5MTAvZ2RiL3Byb2Nmcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgw My5vcmlnL2dkYi9wcm9jZnMuYwkyMDA5LTA4LTAxIDAyOjAyOjA0LjAwMDAwMDAwMCArMDIwMAot KysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Byb2Nmcy5jCTIwMDktMDgtMDMgMTc6MjE6MjUu MDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkxMC5vcmlnL2dkYi9wcm9jZnMu YwkyMDA5LTA4LTAxIDAyOjAyOjA0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAw OTA5MTAvZ2RiL3Byb2Nmcy5jCTIwMDktMDktMTAgMjM6MDE6MTUuMDAwMDAwMDAwICswMjAwCiBA QCAtNjE0Nyw2ICs2MTQ3LDcgQEAgcHJvY2ZzX21ha2Vfbm90ZV9zZWN0aW9uIChiZmQgKm9iZmQs IGludAogICAgbm90ZV9kYXRhID0gKGNoYXIgKikgZWxmY29yZV93cml0ZV9wcnBzaW5mbyAob2Jm ZCwKICAJCQkJCSAgICAgICBub3RlX2RhdGEsCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1iejQ1NzE4 Ny1sYXJnZWZpbGUucGF0Y2ggYi9nZGItNi44LWJ6NDU3MTg3LWxhcmdlZmlsZS5wYXRjaAppbmRl eCA4ZmZjMTIwLi4xOTlkN2EyIDEwMDY0NAotLS0gYS9nZGItNi44LWJ6NDU3MTg3LWxhcmdlZmls ZS5wYXRjaAorKysgYi9nZGItNi44LWJ6NDU3MTg3LWxhcmdlZmlsZS5wYXRjaApAQCAtNSwzMyAr NSwzMCBAQCBnZGIvCiAJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCiAJKiBjb25maWd1cmU6IFJl Z2VuZXJhdGUuCiAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUuYWMK K0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDA5LTA4LTA0 IDA2OjMyOjM5LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2Nv bmZpZ3VyZS5hYwkyMDA5LTA4LTA0IDA2OjMzOjUxLjAwMDAwMDAwMCArMDIwMAotQEAgLTMwLDYg KzMwLDcgQEAgQUNfR05VX1NPVVJDRQotIEFDX0FJWAotIEFDX0lTQ19QT1NJWAorLS0tIGdkYi02 LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMDktMDktMDkgMjA6MDg6MDQu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlndXJlLmFj CTIwMDktMDktMDkgMjA6MTE6MDQuMDAwMDAwMDAwICswMjAwCitAQCAtMjgsNiArMjgsNyBAQCBB TV9NQUlOVEFJTkVSX01PREUKKyBBQ19QUk9HX0NDCisgQUNfVVNFX1NZU1RFTV9FWFRFTlNJT05T CiAgZ2xfRUFSTFkKICtBQ19TWVNfTEFSR0VGSUxFCiAgQU1fUFJPR19DQ19TVERDCiAgCiAgQUNf Q09ORklHX0FVWF9ESVIoLi4pCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmln LmluCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlnLmluCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9jb25maWcuaW4JMjAwOS0wOC0wNCAw NjozMjozOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25m aWcuaW4JMjAwOS0wOC0wNCAwNjozMzo1MS4wMDAwMDAwMDAgKzAyMDAKLUBAIC03NDQsNiArNzQ0 LDkgQEAKLSAjIHVuZGVmIF9BTExfU09VUkNFCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmln L2dkYi9jb25maWcuaW4JMjAwOS0wOS0wOSAyMDowODowNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNi44LjUwLjIwMDkwOTA5L2dkYi9jb25maWcuaW4JMjAwOS0wOS0wOSAyMDoxMTozMy4wMDAw MDAwMDAgKzAyMDAKK0BAIC03NTEsMTAgKzc1MSwxNiBAQAorICMgZW5kaWYKICAjZW5kaWYKICAK ICsvKiBOdW1iZXIgb2YgYml0cyBpbiBhIGZpbGUgb2Zmc2V0LCBvbiBob3N0cyB3aGVyZSB0aGlz IGlzIHNldHRhYmxlLiAqLwogKyN1bmRlZiBfRklMRV9PRkZTRVRfQklUUwogKwotIC8qIEVuYWJs ZSBHTlUgZXh0ZW5zaW9ucyBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSB0aGVtLiAgKi8KLSAjaWZuZGVm IF9HTlVfU09VUkNFCi0gIyB1bmRlZiBfR05VX1NPVVJDRQotQEAgLTc1Myw2ICs3NTYsOSBAQAor IC8qIERlZmluZSB0byAxIHNvIDxzeXMvcHJvYy5oPiBnZXRzIGEgZGVmaW5pdGlvbiBvZiBhbm9u X2hkbC4gV29ya3MgYXJvdW5kIGEKICAgICA8c3lzL3Byb2MuaD4gcHJvYmxlbSBvbiBJUklYIDUu ICovCiAgI3VuZGVmIF9LTUVNVVNFUgogIApAQCAtNDEsMTEgKzM4LDE5IEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiBvbiBNSU5J WC4gKi8KICAjdW5kZWYgX01JTklYCiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv Y29uZmlndXJlCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlndXJlCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9jb25maWd1cmUJMjAwOS0w OC0wNCAwNjozMjozOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dk Yi9jb25maWd1cmUJMjAwOS0wOC0wNCAwNjozMzo1MS4wMDAwMDAwMDAgKzAyMDAKLUBAIC04NzQs NiArODc0LDcgQEAgT3B0aW9uYWwgRmVhdHVyZXM6CistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5v cmlnL2dkYi9jb25maWd1cmUJMjAwOS0wOS0wOSAyMDoxMDo0NS4wMDAwMDAwMDAgKzAyMDAKKysr KyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9jb25maWd1cmUJMjAwOS0wOS0wOSAyMDoxMTowNy4w MDAwMDAwMDAgKzAyMDAKK0BAIC04ODQsNiArODg0LDcgQEAgYWNfc3Vic3RfZmlsZXM9J2hvc3Rf bWFrZWZpbGVfZnJhZycKKyBhY191c2VyX29wdHM9JworIGVuYWJsZV9vcHRpb25fY2hlY2tpbmcK KyBlbmFibGVfbWFpbnRhaW5lcl9tb2RlCisrZW5hYmxlX2xhcmdlZmlsZQorIGVuYWJsZV9kZXBl bmRlbmN5X3RyYWNraW5nCisgd2l0aF9zZXBhcmF0ZV9kZWJ1Z19kaXIKKyB3aXRoX2dkYl9kYXRh ZGlyCitAQCAtMTU2Miw2ICsxNTYzLDcgQEAgT3B0aW9uYWwgRmVhdHVyZXM6CiAgICAtLWVuYWJs ZS1GRUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCiAgICAtLWVuYWJsZS1t YWludGFpbmVyLW1vZGUgIGVuYWJsZSBtYWtlIHJ1bGVzIGFuZCBkZXBlbmRlbmNpZXMgbm90IHVz ZWZ1bAogIAkJCSAgKGFuZCBzb21ldGltZXMgY29uZnVzaW5nKSB0byB0aGUgY2FzdWFsIGluc3Rh bGxlcgpAQCAtNTMsMzMgKzU4LDI5IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9j b25maWd1cmUKICAgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMgdXAgb25l LXRpbWUgYnVpbGQKICAgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICBkbyBub3QgcmVq ZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzCiAgICAtLWVuYWJsZS10YXJnZXRzPVRBUkdF VFMKLUBAIC0zMzQ3LDYgKzMzNDgsMzcwIEBAIF9BQ0VPRgorQEAgLTQxMDAsNiArNDEwMiwyMDQg QEAgZmkKICAKICAKICAKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGFyZ2VmaWxlIG9yIC0t ZGlzYWJsZS1sYXJnZWZpbGUgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2xhcmdlZmls ZStzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSIkZW5hYmxlX2xhcmdlZmlsZSIKKysj IENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGFyZ2VmaWxlIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIk e2VuYWJsZV9sYXJnZWZpbGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFi bGVfbGFyZ2VmaWxlOworK2ZpCiArCi0rZmk7CiAraWYgdGVzdCAiJGVuYWJsZV9sYXJnZWZpbGUi ICE9IG5vOyB0aGVuCiArCi0rICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNw ZWNpYWwgQyBjb21waWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMiID4mNQotK2Vj aG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHNwZWNpYWwgQyBjb21waWxlciBvcHRpb25zIG5lZWRl ZCBmb3IgbGFyZ2UgZmlsZXMuLi4gJEVDSE9fQyIgPiY2Ci0raWYgdGVzdCAiJHthY19jdl9zeXNf bGFyZ2VmaWxlX0NDK3NldH0iID0gc2V0OyB0aGVuCi0rICBlY2hvICRFQ0hPX04gIihjYWNoZWQp ICRFQ0hPX0MiID4mNgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3Igc3BlY2lhbCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVlZGVkIGZvciBsYXJn ZSBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHNwZWNpYWwgQyBjb21waWxl ciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3N5c19sYXJnZWZpbGVfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKICtlbHNlCiArICBhY19jdl9zeXNfbGFyZ2VmaWxlX0NDPW5vCiAr ICAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KICsgICAgICAgYWNfc2F2ZV9DQz0kQ0MK ICsgICAgICAgd2hpbGUgOjsgZG8KLSsgICAgIAkgIyBJUklYIDYuMiBhbmQgbGF0ZXIgZG8gbm90 IHN1cHBvcnQgbGFyZ2UgZmlsZXMgYnkgZGVmYXVsdCwKLSsgICAgIAkgIyBzbyB1c2UgdGhlIEMg Y29tcGlsZXIncyAtbjMyIG9wdGlvbiBpZiB0aGF0IGhlbHBzLgotKwkgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKwkgIyBJUklYIDYuMiBhbmQgbGF0ZXIgZG8gbm90IHN1cHBvcnQgbGFyZ2UgZmlsZXMgYnkg ZGVmYXVsdCwKKysJICMgc28gdXNlIHRoZSBDIGNvbXBpbGVyJ3MgLW4zMiBvcHRpb24gaWYgdGhh dCBoZWxwcy4KKysJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQK ICsvKiBlbmQgY29uZmRlZnMuaC4gICovCiArI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogKyAvKiBD aGVjayB0aGF0IG9mZl90IGNhbiByZXByZXNlbnQgMioqNjMgLSAxIGNvcnJlY3RseS4KQEAgLTk4 LDg5ICs5OSwzNCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCiAr ICByZXR1cm4gMDsKICt9CiArX0FDRU9GCi0rICAgICAJIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+ JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYg Y29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYK LSsJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLSsJCQkgfHwgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFj X3RyeVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsg IGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUK LSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07 IH07IHRoZW4KKysJIGlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKICsg IGJyZWFrCi0rZWxzZQotKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK LStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCiArZmkKLStybSAtZiBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dAotKyAgICAgCSBDQz0iJENDIC1uMzIiCi0rICAg ICAJIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTok TElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPmNv bmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3Qu ZXJyID4mNQotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSsJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193 ZXJyb3JfZmxhZyIKLSsJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwg ZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5 KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3Ry eT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6 JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFj X3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0CisrCSBDQz0iJENDIC1uMzIiCisrCSBpZiBhY19mbl9j X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CiArICBhY19jdl9zeXNfbGFyZ2VmaWxlX0ND PScgLW4zMic7IGJyZWFrCi0rZWxzZQotKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCiArZmkKLSty bSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dAorK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQKICsJIGJyZWFrCiArICAgICAgIGRvbmUKICsgICAg ICAgQ0M9JGFjX3NhdmVfQ0MKICsgICAgICAgcm0gLWYgY29uZnRlc3QuJGFjX2V4dAogKyAgICBm aQogK2ZpCi0rZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3N5c19sYXJnZWZp bGVfQ0MiID4mNQotK2VjaG8gIiR7RUNIT19UfSRhY19jdl9zeXNfbGFyZ2VmaWxlX0NDIiA+JjYK Kyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2 X3N5c19sYXJnZWZpbGVfQ0MiID4mNQorKyRhc19lY2hvICIkYWNfY3Zfc3lzX2xhcmdlZmlsZV9D QyIgPiY2OyB9CiArICBpZiB0ZXN0ICIkYWNfY3Zfc3lzX2xhcmdlZmlsZV9DQyIgIT0gbm87IHRo ZW4KICsgICAgQ0M9JENDJGFjX2N2X3N5c19sYXJnZWZpbGVfQ0MKICsgIGZpCiArCi0rICBlY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIF9GSUxFX09GRlNFVF9CSVRTIHZhbHVlIG5l ZWRlZCBmb3IgbGFyZ2UgZmlsZXMiID4mNQotK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIF9G SUxFX09GRlNFVF9CSVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMuLi4gJEVDSE9fQyIg PiY2Ci0raWYgdGVzdCAiJHthY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cytzZXR9IiA9IHNldDsg dGhlbgotKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKKysgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIF9GSUxFX09GRlNF VF9CSVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBfRklMRV9PRkZTRVRfQklUUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVz Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cytzZXR9 IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogK2Vsc2UKICsg IHdoaWxlIDo7IGRvCi0rICBhY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cz1ubwotKyAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4 dAogKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiArIC8q IENoZWNrIHRoYXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5LgpAQCAt MTk5LDQwICsxNDUsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3Vy ZQogKyAgcmV0dXJuIDA7CiArfQogK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK LStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUK LSsgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSsJ IHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLSsJCQkgfHwgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3Ry eVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgIGVj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0 JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSsg IChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07 IHRoZW4KLSsgIGJyZWFrCi0rZWxzZQotKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCisraWYgYWNf Zm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYWNfY3Zfc3lzX2ZpbGVfb2Zm c2V0X2JpdHM9bm87IGJyZWFrCiArZmkKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICBj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CiArLyogZW5kIGNvbmZk ZWZzLmguICAqLwogKyNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKICsjaW5jbHVkZSA8c3lz L3R5cGVzLmg+CkBAIC0yNTIsNjAgKzE2OSwzMyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvY29uZmlndXJlCiArICByZXR1cm4gMDsKICt9CiArX0FDRU9GCi0rcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAotK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2Nv bXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0rICBh Y19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy Ci0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICBlY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJgotKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotKwkJ CSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0 YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLSsJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0 ZXN0LiRhY19vYmpleHQnCi0rICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190 cnlcIiIpID4mNQotKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBl Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfTsgfTsgdGhlbgorK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0 aGVuIDoKICsgIGFjX2N2X3N5c19maWxlX29mZnNldF9iaXRzPTY0OyBicmVhawotK2Vsc2UKLSsg IGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQotKwogK2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgYWNfY3Zfc3lzX2ZpbGVfb2Zm c2V0X2JpdHM9dW5rbm93bgogKyAgYnJlYWsKICtkb25lCiArZmkKLStlY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMiID4mNQotK2VjaG8gIiR7 RUNIT19UfSRhY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cyIgPiY2Ci0raWYgdGVzdCAiJGFjX2N2 X3N5c19maWxlX29mZnNldF9iaXRzIiAhPSBubzsgdGhlbgotKworK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2Jp dHMiID4mNQorKyRhc19lY2hvICIkYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMiID4mNjsgfQor K2Nhc2UgJGFjX2N2X3N5c19maWxlX29mZnNldF9iaXRzIGluICMoCisrICBubyB8IHVua25vd24p IDs7CisrICAqKQogK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKICsjZGVmaW5lIF9GSUxFX09G RlNFVF9CSVRTICRhY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cwogK19BQ0VPRgotKwotK2ZpCi0r cm0gLWYgY29uZnRlc3QqCi0rICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIF9M QVJHRV9GSUxFUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzIiA+JjUKLStlY2hvICRFQ0hP X04gImNoZWNraW5nIGZvciBfTEFSR0VfRklMRVMgdmFsdWUgbmVlZGVkIGZvciBsYXJnZSBmaWxl cy4uLiAkRUNIT19DIiA+JjYKLStpZiB0ZXN0ICIke2FjX2N2X3N5c19sYXJnZV9maWxlcytzZXR9 IiA9IHNldDsgdGhlbgotKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKKys7 OworK2VzYWMKKytybSAtcmYgY29uZnRlc3QqCisrICBpZiB0ZXN0ICRhY19jdl9zeXNfZmlsZV9v ZmZzZXRfYml0cyA9IHVua25vd247IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgX0xBUkdFX0ZJTEVTIHZhbHVlIG5lZWRlZCBm b3IgbGFyZ2UgZmlsZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBfTEFSR0VfRklM RVMgdmFsdWUgbmVlZGVkIGZvciBsYXJnZSBmaWxlcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YWNfY3Zfc3lzX2xhcmdlX2ZpbGVzK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CiArZWxzZQogKyAgd2hpbGUgOjsgZG8KLSsgIGFjX2N2X3N5c19sYXJn ZV9maWxlcz1ubwotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICsjaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CiArIC8qIENoZWNrIHRoYXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2 MyAtIDEgY29ycmVjdGx5LgpAQCAtMzI0LDQwICsyMTQsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogKyAgcmV0dXJuIDA7CiArfQogK19BQ0VPRgotK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc IiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVy MQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQot KyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYKLSsJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxh ZyIKLSsJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwgZWNobyAiJGFz X21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0r ICBhY19zdGF0dXM9JD8KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAt cyBjb25mdGVzdC4kYWNfb2JqZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzog XCIkYWNfdHJ5XCIiKSA+JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0k PwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsgIGJyZWFrCi0rZWxzZQotKyAgZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCisraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgor KyAgYWNfY3Zfc3lzX2xhcmdlX2ZpbGVzPW5vOyBicmVhawogK2ZpCi0rcm0gLWYgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4 dAogKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICsjZGVmaW5lIF9MQVJHRV9GSUxFUyAxCiArI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgpAQCAtMzc3LDQ4ICsyMzgsMjYgQEAgSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogKyAgcmV0dXJuIDA7CiArfQogK19BQ0VPRgotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5P OiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0 LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4m NQotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSsJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3Jf ZmxhZyIKLSsJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwgZWNobyAi JGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1 Ci0rICBhY19zdGF0dXM9JD8KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVz dCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVO TzogXCIkYWNfdHJ5XCIiKSA+JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1 cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKytpZiBhY19mbl9jX3RyeV9jb21waWxlICIk TElORU5PIjsgdGhlbiA6CiArICBhY19jdl9zeXNfbGFyZ2VfZmlsZXM9MTsgYnJlYWsKLStlbHNl Ci0rICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKICtmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgIGFjX2N2X3N5c19sYXJn ZV9maWxlcz11bmtub3duCiArICBicmVhawogK2RvbmUKICtmaQotK2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdl9zeXNfbGFyZ2VfZmlsZXMiID4mNQotK2VjaG8gIiR7RUNIT19U fSRhY19jdl9zeXNfbGFyZ2VfZmlsZXMiID4mNgotK2lmIHRlc3QgIiRhY19jdl9zeXNfbGFyZ2Vf ZmlsZXMiICE9IG5vOyB0aGVuCi0rCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRhY19jdl9zeXNfbGFyZ2VfZmlsZXMiID4mNQorKyRhc19lY2hvICIk YWNfY3Zfc3lzX2xhcmdlX2ZpbGVzIiA+JjY7IH0KKytjYXNlICRhY19jdl9zeXNfbGFyZ2VfZmls ZXMgaW4gIygKKysgIG5vIHwgdW5rbm93bikgOzsKKysgICopCiArY2F0ID4+Y29uZmRlZnMuaCA8 PF9BQ0VPRgogKyNkZWZpbmUgX0xBUkdFX0ZJTEVTICRhY19jdl9zeXNfbGFyZ2VfZmlsZXMKICtf QUNFT0YKLSsKLStmaQotK3JtIC1mIGNvbmZ0ZXN0KgorKzs7CisrZXNhYworK3JtIC1yZiBjb25m dGVzdCoKKysgIGZpCiArZmkKICsKICAKCmRpZmYgLS1naXQgYS9nZGItNi44LWJ6NDY2OTAxLWJh Y2t0cmFjZS1mdWxsLXByZWxpbmtlZC5wYXRjaCBiL2dkYi02LjgtYno0NjY5MDEtYmFja3RyYWNl LWZ1bGwtcHJlbGlua2VkLnBhdGNoCmluZGV4IGYwZmNhMzIuLmY5ZWMzNDkgMTAwNjQ0Ci0tLSBh L2dkYi02LjgtYno0NjY5MDEtYmFja3RyYWNlLWZ1bGwtcHJlbGlua2VkLnBhdGNoCisrKyBiL2dk Yi02LjgtYno0NjY5MDEtYmFja3RyYWNlLWZ1bGwtcHJlbGlua2VkLnBhdGNoCkBAIC0xLDkgKzEs OSBAQAogRml4IHJlc29sdmluZyBvZiB2YXJpYWJsZXMgYXQgbG9jYXRpb25zIGxpc3RzIGluIHBy ZWxpbmtlZCBsaWJzIChCWiA0NjY5MDEpLgogCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvZHdhcmYybG9jLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9kd2FyZjJsb2Mu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZHdhcmYybG9j LmMJMjAwOS0wOC0wNCAwNjoyOTo0Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIw MDkwODAzL2dkYi9kd2FyZjJsb2MuYwkyMDA5LTA4LTA0IDA2OjMzOjM1LjAwMDAwMDAwMCArMDIw MAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAwOS0wOS0w OSAyMDowODowMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9k d2FyZjJsb2MuYwkyMDA5LTA5LTA5IDIwOjEwOjM1LjAwMDAwMDAwMCArMDIwMAogQEAgLTU2LDcg KzU2LDkgQEAgZmluZF9sb2NhdGlvbl9leHByZXNzaW9uIChzdHJ1Y3QgZHdhcmYyXwogICAgQ09S RV9BRERSIGxvdywgaGlnaDsKICAgIGdkYl9ieXRlICpsb2NfcHRyLCAqYnVmX2VuZDsKQEAgLTE1 LDEwICsxNSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZHdhcmYybG9jLmMK ICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7 CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2Ri YXJjaCk7CiAgICB1bnNpZ25lZCBpbnQgYWRkcl9zaXplID0gZHdhcmYyX3Blcl9jdV9hZGRyX3Np emUgKGJhdG9uLT5wZXJfY3UpOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1sb2NsaXN0LXByZWxpbmtlZC5leHAKK0luZGV4OiBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbG9jbGlzdC1wcmVsaW5r ZWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWxvY2xpc3QtcHJlbGlua2VkLmV4cAkyMDA5LTA4LTA0IDA2OjMzOjM1LjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1sb2NsaXN0LXByZWxpbmtlZC5leHAJMjAwOS0wOS0wOSAyMDoxMDozNS4wMDAwMDAw MDAgKzAyMDAKIEBAIC0wLDAgKzEsMTAyIEBACiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEyMiwxMCArMTIyLDEwIEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbG9jbGlzdC1wcmVs aW5rZWQuZXhwCiArCiArIyBgYWJvcnQnIGNhbiBnZXQgZXhwcmVzc2VkIGFzIGAqX19HSV9hYm9y dCcuCiArZ2RiX3Rlc3QgImJ0IGZ1bGwiICJpbiBcW14gXF0qYWJvcnQgXFwoLippbiBmdW5jIFxc KC4qXHJcblxbXHQgXF0raSA9IC0/XFswLTlcXS4qaW4gbWFpbiBcXCguKiIgIkJhY2t0cmFjZSBh ZnRlciBhYm9ydCgpIgotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1sb2NsaXN0LXByZWxpbmtlZC1tYWluLmMKK0luZGV4OiBnZGItNi44LjUw LjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbG9jbGlzdC1wcmVsaW5rZWQt bWFpbi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWxvY2xpc3QtcHJlbGlua2VkLW1haW4uYwkyMDA5LTA4LTA0IDA2OjMzOjM1LjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1sb2NsaXN0LXByZWxpbmtlZC1tYWluLmMJMjAwOS0wOS0wOSAyMDoxMDozNS4w MDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMjYgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBh cnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTUzLDEwICsxNTMsMTAgQEAgSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1sb2Ns aXN0LXByZWxpbmtlZC1tYWluLmMKICsgIGZ1bmMgKCk7CiArICByZXR1cm4gMDsKICt9Ci1JbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWxvY2xp c3QtcHJlbGlua2VkLWZ1bmMuUworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1sb2NsaXN0LXByZWxpbmtlZC1mdW5jLlMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNi44LjUwLjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbG9jbGlzdC1w cmVsaW5rZWQtZnVuYy5TCTIwMDktMDgtMDQgMDY6MzM6MzUuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWxvY2xpc3Qt cHJlbGlua2VkLWZ1bmMuUwkyMDA5LTA5LTA5IDIwOjEwOjM1LjAwMDAwMDAwMCArMDIwMAogQEAg LTAsMCArMSwzMjggQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05V IGRlYnVnZ2VyLgogKwoKZGlmZiAtLWdpdCBhL2dkYi02LjgtaW5saW5pbmctYWRkb24ucGF0Y2gg Yi9nZGItNi44LWlubGluaW5nLWFkZG9uLnBhdGNoCmluZGV4IDcyZDIxNDIuLmM4ZTYxNTkgMTAw NjQ0Ci0tLSBhL2dkYi02LjgtaW5saW5pbmctYWRkb24ucGF0Y2gKKysrIGIvZ2RiLTYuOC1pbmxp bmluZy1hZGRvbi5wYXRjaApAQCAtNSwxMCArNSwxMCBAQCBjYXVzaW5nOiBGQUlMOiBnZGIuYmFz ZS91bndpbmRvbnNpZ25hbC5leHA6IHVud2luZG9uc2lnbmFsLCBzdGFjayB1bndvdW5kCiByZXN1 bWUoKSAtPiB0YXJnZXRfcmVzdW1lKCkgbW92ZSBvZiBjbGVhcl9pbmxpbmVfZnJhbWVfc3RhdGUo KSBpcyBmb3I6CiBnZGIubWkvbWktbnNtb3JpYnVuZC5leHAKIAotSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCitJbmRleDogZ2RiLTYu OC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lu bGluZS1idC5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMJMjAwOS0wOC0w MyAxNjo1Nzo0MC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5v cHQvaW5saW5lLWJ0LmMJMjAwOS0wOS0wOSAxOToyMDowMC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0x MywxMCArMTMsMTYgQEAKICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KQEAgLTI4 LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvaW5saW5lLWJ0LmMKICAKICBpbmxpbmUgaW50IGZ1bmMxKHZvaWQpCiAgewotSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmMK K0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUt Y21kcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5s aW5lLWNtZHMuYwkyMDA5LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02 LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwky MDA5LTA2LTI4IDAyOjIwOjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmMJMjAwOS0wOS0wOSAxOToyMDow MC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMywxMyArMTMsMTkgQEAKICAgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAg IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KQEAgLTU0LDEwICs1NCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwogIGlubGluZSBpbnQg ZnVuYzEodm9pZCkKICB7CiAgICBiYXIgKCk7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuZXhwCitJbmRleDogZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxp bmUtY21kcy5leHAJMjAwOS0wNi0yOCAwMjoyMDoyNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5leHAJMjAw OS0wOC0wMyAxNjo1Nzo0MC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5 Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA5LTA2LTI4IDAy OjIwOjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAw MCArMDIwMAogQEAgLTIzMCw3ICsyMzAsNyBAQCBzZXQgbGluZTMgW2dkYl9nZXRfbGluZV9udW1i ZXIgInNldCBicmVhCiAgZ2RiX2JyZWFrcG9pbnQgJGxpbmUzCiAgZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgImNvbnNlY3V0aXZlIGZ1bmMxIgpAQCAtMTEwLDEwICsxMTAsMTAgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4 cAogK2dkYl90ZXN0ICJpbmZvIGZyYW1lIiAiaW5saW5lZCBpbnRvIGZyYW1lLioiICJvdXRlcl9p bmxpbmUyIGlubGluZWQiCiArZ2RiX3Rlc3QgImZpbmkiICIiICJ1cCBmcm9tIG91dGVyX2lubGlu ZTIiCiArZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIgaW4gbWFpbiBcW15cblxdKlxuIHNvdXJjZSBs YW5ndWFnZS4qIiAibWFpbiBub3QgaW5saW5lZCIKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAz L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMKK0luZGV4OiBnZGItNi44LjUw LjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lu bGluZS1sb2NhbHMuYwkyMDA5LTA2LTI4IDAyOjIwOjI0LjAwMDAwMDAwMCArMDIwMAotKysrIGdk Yi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1sb2NhbHMuYwky MDA5LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5 MDkub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCTIwMDktMDYtMjgg MDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVz dHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCTIwMDktMDktMDkgMTk6MjA6MDAuMDAwMDAw MDAwICswMjAwCiBAQCAtMTMsMTEgKzEzLDE2IEBACiAgICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCkBAIC0xMzMsMTAgKzEzMywxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCiAgCiAgaW5saW5lIGludCBm dW5jMShpbnQgYXJnMSkKICB7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxv Y2Fscy5leHAJMjAwOS0wNi0zMCAxNzo1MDoyNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAkyMDA5 LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDku b3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAJMjAwOS0wNi0zMCAx Nzo1MDoyNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAw MDAwMCArMDIwMAogQEAgLTc3LDYgKzc3LDkgQEAgaWYgeyAhICRub19mcmFtZXMgfSB7CiAgCiAg IyBNYWtlIHN1cmUgdGhhdCBsb2NhbHMgb24gdGhlIHN0YWNrIGFyZSBmb3VuZC4gIFRoaXMgaXMg YW4gYXJyYXkgdG8KQEAgLTE1NSwxMCArMTU1LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAogKyAgICBzZXR1cF9r ZmFpbCAqLSotKiAiZ2NjL2RlYnVnLm9wdGltaXphdGlvbiIKICt9CiAgZ2RiX3Rlc3QgInByaW50 IGFycmF5XFswXF0iICJcXFwkJGRlY2ltYWwgPSAxODQiICJwcmludCBsb2NhbCAoMykiCi1JbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZnJhbWUuYworSW5kZXg6IGdkYi02LjguNTAuMjAw OTA5MDkvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9y aWcvZ2RiL2ZyYW1lLmMJMjAwOS0wOC0wMyAxNTo1NjowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn ZGItNi44LjUwLjIwMDkwODAzL2dkYi9mcmFtZS5jCTIwMDktMDgtMDMgMTY6NTc6NDAuMDAwMDAw MDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9mcmFtZS5jCTIwMDkt MDktMDkgMTk6MDY6NDYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9n ZGIvZnJhbWUuYwkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAogQEAgLTI3Niw3 ICsyNzYsNyBAQCBmcHJpbnRfZnJhbWUgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBzdHJ1CiAgc3Rh dGljIHN0cnVjdCBmcmFtZV9pbmZvICoKICBza2lwX2lubGluZWRfZnJhbWVzIChzdHJ1Y3QgZnJh bWVfaW5mbyAqZnJhbWUpCkBAIC0xOTUsMTkgKzE5NSwxOSBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvZnJhbWUuYwogIAl7CiAgCSAgc2FsLT5zeW10YWIgPSBTWU1CT0xfU1lNVEFC IChzeW0pOwogIAkgIHNhbC0+bGluZSA9IFNZTUJPTF9MSU5FIChzeW0pOwotSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL2JyZWFrcG9pbnQuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL2JyZWFrcG9pbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMu b3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMDktMDgtMDMgMTY6NTY6MTAuMDAwMDAwMDAwICswMjAw Ci0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYnJlYWtwb2ludC5jCTIwMDktMDgtMDMgMTc6 MTk6MjQuMDAwMDAwMDAwICswMjAwCi1AQCAtNjAsNiArNjAsNyBAQAotICNpbmNsdWRlICJ3cmFw cGVyLmgiCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAw OS0wOS0wOSAxOToxOTo0Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi9icmVha3BvaW50LmMJMjAwOS0wOS0wOSAxOToyMToxNC4wMDAwMDAwMDAgKzAyMDAKK0BA IC02MSw2ICs2MSw3IEBACiAgI2luY2x1ZGUgInZhbHByaW50LmgiCisgI2luY2x1ZGUgImppdC5o IgogICNpbmNsdWRlICJwYXJzZXItZGVmcy5oIgogKyNpbmNsdWRlICJpbmxpbmUtZnJhbWUuaCIK ICAKICAvKiByZWFkbGluZSBpbmNsdWRlIGZpbGVzICovCiAgI2luY2x1ZGUgInJlYWRsaW5lL3Jl YWRsaW5lLmgiCi1AQCAtMzA2NSwxMCArMzA2NiwyNCBAQCBicHN0YXRfY2hlY2tfYnJlYWtwb2lu dF9jb25kaXRpb25zIChicHN0CitAQCAtMzIxNywxMCArMzIxOCwyNCBAQCBicHN0YXRfY2hlY2tf YnJlYWtwb2ludF9jb25kaXRpb25zIChicHN0CiAgICBjb25zdCBzdHJ1Y3QgYnBfbG9jYXRpb24g KmJsID0gYnMtPmJyZWFrcG9pbnRfYXQ7CiAgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYiA9IGJsLT5v d25lcjsKICAKQEAgLTIzNiw3ICsyMzYsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvYnJlYWtwb2ludC5jCiAgICAgIHsKICAgICAgICBpbnQgdmFsdWVfaXNfemVybyA9IDA7CiAg ICAgICAgCi1AQCAtMzIxNSw2ICszMjMwLDEyIEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9B RERSIGJwX2FkZHIsIHAKK0BAIC0zMzgwLDYgKzMzOTUsMTIgQEAgYnBzdGF0X3N0b3Bfc3RhdHVz IChDT1JFX0FERFIgYnBfYWRkciwgcAogIAkgICAgYnMtPnByaW50ID0gMDsKICAJICB9CiAgCWJz LT5jb21tYW5kcyA9IGNvcHlfY29tbWFuZF9saW5lcyAoYnMtPmNvbW1hbmRzKTsKQEAgLTI0OSw3 ICsyNDksNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYnJlYWtwb2ludC5jCiAg ICAgICAgfQogIAogICAgICAvKiBQcmludCBub3RoaW5nIGZvciB0aGlzIGVudHJ5IGlmIHdlIGRv bnQgc3RvcCBvciBpZiB3ZSBkb250IHByaW50LiAgKi8KLUBAIC01MTY0LDkgKzUxODUsOSBAQCBz ZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTI3OCw5ICs1Mjk5 LDkgQEAgc2V0X21vbWVudGFyeV9icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaAogIHsKICAgIHN0 cnVjdCBicmVha3BvaW50ICpiOwogIApAQCAtMjYyLDEwICsyNjIsMTAgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL2JyZWFrcG9pbnQuYwogIAogICAgYiA9IHNldF9yYXdfYnJlYWtw b2ludCAoZ2RiYXJjaCwgc2FsLCB0eXBlKTsKICAgIGItPmVuYWJsZV9zdGF0ZSA9IGJwX2VuYWJs ZWQ7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvaW5saW5lLWZyYW1lLmMKK0luZGV4 OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmxpbmUtZnJhbWUuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvaW5saW5lLWZyYW1lLmMJMjAwOS0wNi0yOCAw MjoyMDoyMi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmxp bmUtZnJhbWUuYwkyMDA5LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02 LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvaW5saW5lLWZyYW1lLmMJMjAwOS0wNi0yOCAwMjoyMDoy Mi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmxpbmUtZnJh bWUuYwkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAogQEAgLTE5NSw2ICsxOTUs MTIgQEAgaW5saW5lX2ZyYW1lX3NuaWZmZXIgKGNvbnN0IHN0cnVjdCBmcmFtZQogICAgaWYgKGZy YW1lX2Jsb2NrID09IE5VTEwpCiAgICAgIHJldHVybiAwOwpAQCAtMzQyLDEwICszNDIsMTAgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2lubGluZS1mcmFtZS5jCiAgLyogUmV0dXJu IHRoZSBudW1iZXIgb2YgaGlkZGVuIGZ1bmN0aW9ucyBpbmxpbmVkIGludG8gdGhlIGN1cnJlbnQK ICAgICBmcmFtZS4gICovCiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvaW5saW5lLW1hcmtlcnMuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1tYXJrZXJzLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1tYXJr ZXJzLmMJMjAwOS0wNi0yOCAwMjoyMDoyNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUw LjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbWFya2Vycy5jCTIwMDktMDgt MDMgMTY6NTc6NDAuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmln L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbWFya2Vycy5jCTIwMDktMDYtMjggMDI6MjA6 MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRl L2dkYi5vcHQvaW5saW5lLW1hcmtlcnMuYwkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCAr MDIwMAogQEAgLTE1LDExICsxNSw2IEBACiAgCiAgZXh0ZXJuIGludCB4LCB5OwpAQCAtMzU4LDEx ICszNTgsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIu b3B0L2lubGluZS1tYXJrZXJzLmMKICB2b2lkIG1hcmtlcih2b2lkKQogIHsKICAgIHggKz0geTsg Lyogc2V0IGJyZWFrcG9pbnQgMiBoZXJlICovCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvZ2RidGhyZWFkLmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9nZGJ0aHJlYWQu aAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZ2RidGhyZWFk LmgJMjAwOS0wOC0wMyAxNTo1NTo1My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIw MDkwODAzL2dkYi9nZGJ0aHJlYWQuaAkyMDA5LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIw MAotQEAgLTE4Nyw2ICsxODcsMTIgQEAgc3RydWN0IHRocmVhZF9pbmZvCistLS0gZ2RiLTYuOC41 MC4yMDA5MDkwOS5vcmlnL2dkYi9nZGJ0aHJlYWQuaAkyMDA5LTA5LTA5IDE5OjA1OjU2LjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2dkYnRocmVhZC5oCTIwMDkt MDktMDkgMTk6MjA6MDAuMDAwMDAwMDAwICswMjAwCitAQCAtMTkxLDYgKzE5MSwxMiBAQCBzdHJ1 Y3QgdGhyZWFkX2luZm8KICAKICAgIC8qIFByaXZhdGUgZGF0YSB1c2VkIGJ5IHRoZSB0YXJnZXQg dmVjdG9yIGltcGxlbWVudGF0aW9uLiAgKi8KICAgIHN0cnVjdCBwcml2YXRlX3RocmVhZF9pbmZv ICpwcml2YXRlOwpAQCAtMzc1LDExICszNzUsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2dkYnRocmVhZC5oCiAgfTsKICAKICAvKiBDcmVhdGUgYW4gZW1wdHkgdGhyZWFkIGxp c3QsIG9yIGVtcHR5IHRoZSBleGlzdGluZyBvbmUuICAqLwotSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MDMvZ2RiL2luZmNtZC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5mY21k LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2luZmNtZC5j CTIwMDktMDctMDIgMjM6NTc6MjcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5 MDgwMy9nZGIvaW5mY21kLmMJMjAwOS0wOC0wMyAxNzoxNzoyNC4wMDAwMDAwMDAgKzAyMDAKLUBA IC0xNDA4LDExICsxNDA4LDExIEBAIGZpbmlzaF9jb21tYW5kX2NvbnRpbnVhdGlvbiAodm9pZCAq YXJnKQorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvaW5mY21kLmMJMjAwOS0wOS0w OSAxOTowNTo1Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9p bmZjbWQuYwkyMDA5LTA5LTA5IDE5OjIwOjMzLjAwMDAwMDAwMCArMDIwMAorQEAgLTE0MzQsMTEg KzE0MzQsMTEgQEAgZmluaXNoX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lkICphcmcpCiAgICAg ICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGU7CiAgCiAgICAgICAgdmFsdWVfdHlwZSA9IFRZUEVf VEFSR0VUX1RZUEUgKFNZTUJPTF9UWVBFIChhLT5mdW5jdGlvbikpOwpAQCAtMzkzLDkgKzM5Myw5 IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmZjbWQuYwogIAlwcmludF9yZXR1 cm5fdmFsdWUgKFNZTUJPTF9UWVBFIChhLT5mdW5jdGlvbiksIHZhbHVlX3R5cGUpOwogICAgICB9 CiAgCi1AQCAtMTUxNCw2ICsxNTE0LDE2IEBAIGZpbmlzaF9mb3J3YXJkIChzdHJ1Y3Qgc3ltYm9s ICpmdW5jdGlvbiwKLSAKLSAgIG9sZF9jaGFpbiA9IG1ha2VfY2xlYW51cF9kZWxldGVfYnJlYWtw b2ludCAoYnJlYWtwb2ludCk7CitAQCAtMTU0Niw2ICsxNTQ2LDE2IEBAIGZpbmlzaF9mb3J3YXJk IChzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiwKKyAgIHRwLT5pbml0aWF0aW5nX2ZyYW1lID0gZ2V0 X2ZyYW1lX2lkIChmcmFtZSk7CisgICBtYWtlX2NsZWFudXAgKGRlbGV0ZV9sb25nam1wX2JyZWFr cG9pbnRfY2xlYW51cCwgJnRocmVhZCk7CiAgCiArICAvKiBXZSBzaG91bGQgX2Fsd2F5c18gc2V0 IENVUlJFTlRfUENfSVNfTk9UQ1VSUkVOVCBoZXJlIHRvIGFsd2F5cyBzZWUgdGhlCiArICAgICBj YWxsaW5nIGxpbmUgd2l0aCB0aGUgbWVzc2FnZSBgVmFsdWUgcmV0dXJuZWQgaXMgLi4uJy4gIEN1 cnJlbnRseSBpdCBpcwpAQCAtNDEwLDcgKzQxMCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9pbmZjbWQuYwogICAgdHAtPnByb2NlZWRfdG9fZmluaXNoID0gMTsgICAgLyogV2Ug d2FudCBzdG9wX3JlZ2lzdGVycywgcGxlYXNlLi4uICAqLwogICAgcHJvY2VlZCAoKENPUkVfQURE UikgLTEsIFRBUkdFVF9TSUdOQUxfREVGQVVMVCwgMCk7CiAgCi1AQCAtMTUzNSw3ICsxNTQ1LDkg QEAgZmluaXNoX2ZvcndhcmQgKHN0cnVjdCBzeW1ib2wgKmZ1bmN0aW9uLAorQEAgLTE1NjcsNyAr MTU3Nyw5IEBAIGZpbmlzaF9mb3J3YXJkIChzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiwKICBzdGF0 aWMgdm9pZAogIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICB7CkBA IC00MjEsNyArNDIxLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2luZmNtZC5j CiAgICBzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbjsKICAKICAgIGludCBhc3luY19leGVjID0gMDsK LUBAIC0xNTY2LDQ1ICsxNTc4LDYzIEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGludCBm cm9tX3R0eSkKK0BAIC0xNTk4LDQ1ICsxNjEwLDYzIEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICph cmcsIGludCBmcm9tX3R0eSkKICAgIGlmICghdGFyZ2V0X2hhc19leGVjdXRpb24pCiAgICAgIGVy cm9yIChfKCJUaGUgcHJvZ3JhbSBpcyBub3QgcnVubmluZy4iKSk7CiAgCkBAIC01MDIsNyArNTAy LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2luZmNtZC5jCiAgCiAgICAvKiBQ cmludCBpbmZvIG9uIHRoZSBzZWxlY3RlZCBmcmFtZSwgaW5jbHVkaW5nIGxldmVsIG51bWJlciBi dXQgbm90CiAgICAgICBzb3VyY2UuICAqLwotQEAgLTE2MTgsMTAgKzE2NDgsMTQgQEAgZmluaXNo X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQorQEAgLTE2NTAsMTAgKzE2ODAsMTQg QEAgZmluaXNoX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQogICAgICAgIHByaW50 X3N0YWNrX2ZyYW1lIChnZXRfc2VsZWN0ZWRfZnJhbWUgKE5VTEwpLCAxLCBMT0NBVElPTik7CiAg ICAgIH0KICAKQEAgLTUxOCwyMiArNTE4LDIyIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAz L2dkYi9pbmZjbWQuYwogIH0KICAMCiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv dGFyZ2V0LmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90YXJnZXQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvdGFyZ2V0LmMJMjAwOS0wOC0w MyAxNjowNDoxNS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90 YXJnZXQuYwkyMDA5LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIwMAotQEAgLTIwNzksNiAr MjA3OSw3IEBAIHRhcmdldF9yZXN1bWUgKHB0aWRfdCBwdGlkLCBpbnQgc3RlcCwgZW4KKy0tLSBn ZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMDktMDktMDkgMTk6MDk6MzEu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmMJMjAw OS0wOS0wOSAxOToyMTowMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMTgyLDYgKzIxODIsNyBAQCB0 YXJnZXRfcmVzdW1lIChwdGlkX3QgcHRpZCwgaW50IHN0ZXAsIGVuCiAgewogICAgc3RydWN0IHRh cmdldF9vcHMgKnQ7CiAgCiArICBjbGVhcl9pbmxpbmVfZnJhbWVfc3RhdGUgKHB0aWQpOwotICAg ZGNhY2hlX2ludmFsaWRhdGUgKHRhcmdldF9kY2FjaGUpOworICAgdGFyZ2V0X2RjYWNoZV9pbnZh bGlkYXRlICgpOwogIAogICAgZm9yICh0ID0gY3VycmVudF90YXJnZXQuYmVuZWF0aDsgdCAhPSBO VUxMOyB0ID0gdC0+YmVuZWF0aCkKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmxp bmUtZnJhbWUuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2lubGluZS1mcmFtZS5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9pbmxpbmUtZnJh bWUuaAkyMDA5LTA2LTI4IDAyOjIwOjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL2lubGluZS1mcmFtZS5oCTIwMDktMDgtMDMgMTY6NTc6NDAuMDAwMDAwMDAw ICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9pbmxpbmUtZnJhbWUuaAky MDA5LTA2LTI4IDAyOjIwOjIyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL2lubGluZS1mcmFtZS5oCTIwMDktMDktMDkgMTk6MjA6MDAuMDAwMDAwMDAwICswMjAw CiBAQCAtNDMsNiArNDMsMTAgQEAgdm9pZCBjbGVhcl9pbmxpbmVfZnJhbWVfc3RhdGUgKHB0aWRf dCBwdAogIAogIHZvaWQgc3RlcF9pbnRvX2lubGluZV9mcmFtZSAocHRpZF90IHB0aWQpOwpAQCAt NTQ1LDExICs1NDUsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2lubGluZS1m cmFtZS5oCiAgLyogUmV0dXJuIHRoZSBudW1iZXIgb2YgaGlkZGVuIGZ1bmN0aW9ucyBpbmxpbmVk IGludG8gdGhlIGN1cnJlbnQKICAgICBmcmFtZS4gICovCiAgCi1JbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv ZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dk Yi9kd2FyZjJyZWFkLmMJMjAwOS0wOC0wMyAxNjo1NjoxMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn ZGItNi44LjUwLjIwMDkwODAzL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOC0wMyAxNjo1Nzo0MC4w MDAwMDAwMDAgKzAyMDAKLUBAIC00MTA3LDYgKzQxMDcsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9k d2FyZjJyZWFkLmMJMjAwOS0wOS0wOSAxOToxOTo0Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOS0wOSAxOToyMDowMC4wMDAw MDAwMDAgKzAyMDAKK0BAIC00MTMwLDYgKzQxMzAsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzCiAgICBzdHJ1Y3QgYmxvY2sgKmJsb2NrOwogICAgdW5zaWduZWQg ZGllX2NoaWxkcmVuID0gMDsKICAgIGludCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdf VEFHX2lubGluZWRfc3Vicm91dGluZSk7CkBAIC01NTcsNyArNTU3LDcgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL2R3YXJmMnJlYWQuYwogIAogICAgaWYgKGlubGluZWRfZnVuYykK ICAgICAgewotQEAgLTQxNDgsNyArNDE0OSwxMCBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzCitAQCAtNDE3MSw3ICs0MTcyLDEwIEBAIHJlYWRfZnVuY19zY29wZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHMKICAgIGFkZF90b19jdV9mdW5jX2xpc3QgKG5hbWUsIGxv d3BjLCBoaWdocGMsIGN1KTsKICAKICAgIG5ldyA9IHB1c2hfY29udGV4dCAoMCwgbG93cGMpOwoK ZGlmZiAtLWdpdCBhL2dkYi02LjguNTAuMjAwOTA4MTgtdXBzdHJlYW0ucGF0Y2ggYi9nZGItNi44 LjUwLjIwMDkwODE4LXVwc3RyZWFtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBiOTk2NGVmLi4wMDAwMDAwCi0tLSBhL2dkYi02LjguNTAuMjAwOTA4MTgtdXBzdHJlYW0ucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMzcgKzAsMCBAQAotaHR0cDovL3NvdXJjZXdhcmUub3Jn L21sL2dkYi1wYXRjaGVzLzIwMDktMDgvbXNnMDAzMTAuaHRtbAotaHR0cDovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1jdnMvMjAwOS0wOC9tc2cwMDA5Mi5odG1sCi0KLTIwMDktMDgtMTkgIFVscmlj aCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KLQotCSogdmFsdWUuYyAoZW51bSBpbnRl cm5hbHZhcl9raW5kKTogUmVwbGFjZSBJTlRFUk5BTFZBUl9TQ0FMQVIgYnkKLQlJTlRFUk5BTFZB Ul9JTlRFR0VSIGFuZCBJTlRFUk5BTFZBUl9QT0lOVEVSLgotCSh1bmlvbiBpbnRlcm5hbHZhcl9k YXRhKTogUmVwbGFjZSAic2NhbGFyIiBtZW1iZXIgYnkgImludGVnZXIiCi0JYW5kICJwb2ludGVy Ii4KLQkodmFsdWVfb2ZfaW50ZXJuYWx2YXIpOiBIYW5kbGUgSU5URVJOQUxWQVJfSU5URUdFUiBh bmQKLQlJTlRFUk5BTFZBUl9QT0lOVEVSIGluc3RlYWQgb2YgSU5URVJOQUxWQVJfU0NBTEFSLgot CShnZXRfaW50ZXJuYWx2YXJfaW50ZWdlcik6IExpa2V3aXNlLgotCShzZXRfaW50ZXJuYWx2YXIp OiBMaWtld2lzZS4KLQkoc2V0X2ludGVybmFsdmFyX2ludGVnZXIpOiBMaWtld2lzZS4KLQkocHJl c2VydmVfb25lX2ludGVybmFsdmFyKTogTGlrZXdpc2UuCi0JKHZhbHVlX2Zyb21fcG9pbnRlcik6 IEhhbmRsZSB0eXBlZGVmJ2QgcG9pbnRlciB0eXBlcy4KLQotMjAwOS0wOC0xOSAgRG91ZyBFdmFu cyAgPGRqZUBnb29nbGUuY29tPgotCi0JKiBnZGIuYmFzZS9nZGJ2YXJzLmM6IE5ldyBmaWxlLgot CSogZ2RiLmJhc2UvZ2RidmFycy5leHA6IFRlc3QgY29udmVuaWVuY2UgdmFycyB3aXRoIHByb2dy YW0gdmFyaWFibGVzLgotCi0tLS0gc3JjL2dkYi92YWx1ZS5jCTIwMDkvMDgvMTMgMTg6Mzk6MjAJ MS45MgotKysrIHNyYy9nZGIvdmFsdWUuYwkyMDA5LzA4LzE5IDEzOjAwOjI4CTEuOTMKLUBAIC05 MjAsOCArOTIwLDExIEBACi0gICAgICAgLyogVGhlIGludGVybmFsIHZhcmlhYmxlIGhvbGRzIGEg R0RCIGludGVybmFsIGNvbnZlbmllbmNlIGZ1bmN0aW9uLiAgKi8KLSAgICAgICBJTlRFUk5BTFZB Ul9GVU5DVElPTiwKLSAKLS0gICAgICAvKiBUaGUgdmFyaWFibGUgaG9sZHMgYSBzaW1wbGUgc2Nh bGFyIHZhbHVlLiAgKi8KLS0gICAgICBJTlRFUk5BTFZBUl9TQ0FMQVIsCi0rICAgICAgLyogVGhl IHZhcmlhYmxlIGhvbGRzIGFuIGludGVnZXIgdmFsdWUuICAqLwotKyAgICAgIElOVEVSTkFMVkFS X0lOVEVHRVIsCi0rCi0rICAgICAgLyogVGhlIHZhcmlhYmxlIGhvbGRzIGEgcG9pbnRlciB2YWx1 ZS4gICovCi0rICAgICAgSU5URVJOQUxWQVJfUE9JTlRFUiwKLSAKLSAgICAgICAvKiBUaGUgdmFy aWFibGUgaG9sZHMgYSBHREItcHJvdmlkZWQgc3RyaW5nLiAgKi8KLSAgICAgICBJTlRFUk5BTFZB Ul9TVFJJTkcsCi1AQCAtOTQ0LDE5ICs5NDcsMjIgQEAKLSAJICBpbnQgY2Fub25pY2FsOwotIAl9 IGZuOwotIAotLSAgICAgIC8qIEEgc2NhbGFyIHZhbHVlIHVzZWQgd2l0aCBJTlRFUk5BTFZBUl9T Q0FMQVIuICAqLwotKyAgICAgIC8qIEFuIGludGVnZXIgdmFsdWUgdXNlZCB3aXRoIElOVEVSTkFM VkFSX0lOVEVHRVIuICAqLwotICAgICAgIHN0cnVjdAotICAgICAgICAgewotIAkgIC8qIElmIHR5 cGUgaXMgbm9uLU5VTEwsIGl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgdHlwZSB0byBnZW5lcmF0ZQot IAkgICAgIGEgdmFsdWUgZm9yIHRoaXMgaW50ZXJuYWwgdmFyaWFibGUuICBJZiB0eXBlIGlzIE5V TEwsIGEgZGVmYXVsdAotIAkgICAgIGludGVnZXIgdHlwZSBmb3IgdGhlIGFyY2hpdGVjdHVyZSBp cyB1c2VkLiAgKi8KLSAJICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLS0JICB1bmlvbgotLQkgICAgewot LQkgICAgICBMT05HRVNUIGw7ICAgIC8qIFVzZWQgd2l0aCBUWVBFX0NPREVfSU5UIGFuZCBOVUxM IHR5cGVzLiAgKi8KLS0JICAgICAgQ09SRV9BRERSIGE7ICAvKiBVc2VkIHdpdGggVFlQRV9DT0RF X1BUUiB0eXBlcy4gICovCi0tCSAgICB9IHZhbDsKLS0gICAgICAgIH0gc2NhbGFyOwotKwkgIExP TkdFU1QgdmFsOwotKyAgICAgICAgfSBpbnRlZ2VyOwotKwotKyAgICAgIC8qIEEgcG9pbnRlciB2 YWx1ZSB1c2VkIHdpdGggSU5URVJOQUxWQVJfUE9JTlRFUi4gICovCi0rICAgICAgc3RydWN0Ci0r ICAgICAgICB7Ci0rCSAgc3RydWN0IHR5cGUgKnR5cGU7Ci0rCSAgQ09SRV9BRERSIHZhbDsKLSsg ICAgICAgIH0gcG9pbnRlcjsKLSAKLSAgICAgICAvKiBBIHN0cmluZyB2YWx1ZSB1c2VkIHdpdGgg SU5URVJOQUxWQVJfU1RSSU5HLiAgKi8KLSAgICAgICBjaGFyICpzdHJpbmc7Ci1AQCAtMTA4Miwx NiArMTA4OCwxNiBAQAotICAgICAgIHZhbCA9IGFsbG9jYXRlX3ZhbHVlIChidWlsdGluX3R5cGUg KGdkYmFyY2gpLT5pbnRlcm5hbF9mbik7Ci0gICAgICAgYnJlYWs7Ci0gCi0tICAgIGNhc2UgSU5U RVJOQUxWQVJfU0NBTEFSOgotLSAgICAgIGlmICghdmFyLT51LnNjYWxhci50eXBlKQotKyAgICBj YXNlIElOVEVSTkFMVkFSX0lOVEVHRVI6Ci0rICAgICAgaWYgKCF2YXItPnUuaW50ZWdlci50eXBl KQotIAl2YWwgPSB2YWx1ZV9mcm9tX2xvbmdlc3QgKGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1 aWx0aW5faW50LAotLQkJCQkgIHZhci0+dS5zY2FsYXIudmFsLmwpOwotLSAgICAgIGVsc2UgaWYg KFRZUEVfQ09ERSAodmFyLT51LnNjYWxhci50eXBlKSA9PSBUWVBFX0NPREVfSU5UKQotLQl2YWwg PSB2YWx1ZV9mcm9tX2xvbmdlc3QgKHZhci0+dS5zY2FsYXIudHlwZSwgdmFyLT51LnNjYWxhci52 YWwubCk7Ci0tICAgICAgZWxzZSBpZiAoVFlQRV9DT0RFICh2YXItPnUuc2NhbGFyLnR5cGUpID09 IFRZUEVfQ09ERV9QVFIpCi0tCXZhbCA9IHZhbHVlX2Zyb21fcG9pbnRlciAodmFyLT51LnNjYWxh ci50eXBlLCB2YXItPnUuc2NhbGFyLnZhbC5hKTsKLSsJCQkJICB2YXItPnUuaW50ZWdlci52YWwp OwotICAgICAgIGVsc2UKLS0gICAgICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5F X18sICJiYWQgdHlwZSIpOwotKwl2YWwgPSB2YWx1ZV9mcm9tX2xvbmdlc3QgKHZhci0+dS5pbnRl Z2VyLnR5cGUsIHZhci0+dS5pbnRlZ2VyLnZhbCk7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNh c2UgSU5URVJOQUxWQVJfUE9JTlRFUjoKLSsgICAgICB2YWwgPSB2YWx1ZV9mcm9tX3BvaW50ZXIg KHZhci0+dS5wb2ludGVyLnR5cGUsIHZhci0+dS5wb2ludGVyLnZhbCk7Ci0gICAgICAgYnJlYWs7 Ci0gCi0gICAgIGNhc2UgSU5URVJOQUxWQVJfU1RSSU5HOgotQEAgLTExNDUsMTQgKzExNTEsOSBA QAotIHsKLSAgIHN3aXRjaCAodmFyLT5raW5kKQotICAgICB7Ci0tICAgIGNhc2UgSU5URVJOQUxW QVJfU0NBTEFSOgotLSAgICAgIGlmICh2YXItPnUuc2NhbGFyLnR5cGUgPT0gTlVMTAotLQkgIHx8 IFRZUEVfQ09ERSAodmFyLT51LnNjYWxhci50eXBlKSA9PSBUWVBFX0NPREVfSU5UKQotLQl7Ci0t CSAgKnJlc3VsdCA9IHZhci0+dS5zY2FsYXIudmFsLmw7Ci0tCSAgcmV0dXJuIDE7Ci0tCX0KLS0g ICAgICAvKiBGYWxsIHRocm91Z2guICAqLwotKyAgICBjYXNlIElOVEVSTkFMVkFSX0lOVEVHRVI6 Ci0rICAgICAgKnJlc3VsdCA9IHZhci0+dS5pbnRlZ2VyLnZhbDsKLSsgICAgICByZXR1cm4gMTsK LSAKLSAgICAgZGVmYXVsdDoKLSAgICAgICByZXR1cm4gMDsKLUBAIC0xMjI0LDE1ICsxMjI1LDE1 IEBACi0gICAgICAgYnJlYWs7Ci0gCi0gICAgIGNhc2UgVFlQRV9DT0RFX0lOVDoKLS0gICAgICBu ZXdfa2luZCA9IElOVEVSTkFMVkFSX1NDQUxBUjsKLS0gICAgICBuZXdfZGF0YS5zY2FsYXIudHlw ZSA9IHZhbHVlX3R5cGUgKHZhbCk7Ci0tICAgICAgbmV3X2RhdGEuc2NhbGFyLnZhbC5sID0gdmFs dWVfYXNfbG9uZyAodmFsKTsKLSsgICAgICBuZXdfa2luZCA9IElOVEVSTkFMVkFSX0lOVEVHRVI7 Ci0rICAgICAgbmV3X2RhdGEuaW50ZWdlci50eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKLSsgICAg ICBuZXdfZGF0YS5pbnRlZ2VyLnZhbCA9IHZhbHVlX2FzX2xvbmcgKHZhbCk7Ci0gICAgICAgYnJl YWs7Ci0gCi0gICAgIGNhc2UgVFlQRV9DT0RFX1BUUjoKLS0gICAgICBuZXdfa2luZCA9IElOVEVS TkFMVkFSX1NDQUxBUjsKLS0gICAgICBuZXdfZGF0YS5zY2FsYXIudHlwZSA9IHZhbHVlX3R5cGUg KHZhbCk7Ci0tICAgICAgbmV3X2RhdGEuc2NhbGFyLnZhbC5hID0gdmFsdWVfYXNfYWRkcmVzcyAo dmFsKTsKLSsgICAgICBuZXdfa2luZCA9IElOVEVSTkFMVkFSX1BPSU5URVI7Ci0rICAgICAgbmV3 X2RhdGEucG9pbnRlci50eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKLSsgICAgICBuZXdfZGF0YS5w b2ludGVyLnZhbCA9IHZhbHVlX2FzX2FkZHJlc3MgKHZhbCk7Ci0gICAgICAgYnJlYWs7Ci0gCi0g ICAgIGRlZmF1bHQ6Ci1AQCAtMTI2OSw5ICsxMjcwLDkgQEAKLSAgIC8qIENsZWFuIHVwIG9sZCBj b250ZW50cy4gICovCi0gICBjbGVhcl9pbnRlcm5hbHZhciAodmFyKTsKLSAKLS0gIHZhci0+a2lu ZCA9IElOVEVSTkFMVkFSX1NDQUxBUjsKLS0gIHZhci0+dS5zY2FsYXIudHlwZSA9IE5VTEw7Ci0t ICB2YXItPnUuc2NhbGFyLnZhbC5sID0gbDsKLSsgIHZhci0+a2luZCA9IElOVEVSTkFMVkFSX0lO VEVHRVI7Ci0rICB2YXItPnUuaW50ZWdlci50eXBlID0gTlVMTDsKLSsgIHZhci0+dS5pbnRlZ2Vy LnZhbCA9IGw7Ci0gfQotIAotIHZvaWQKLUBAIC0xNDI2LDEwICsxNDI3LDE2IEBACi0gewotICAg c3dpdGNoICh2YXItPmtpbmQpCi0gICAgIHsKLS0gICAgY2FzZSBJTlRFUk5BTFZBUl9TQ0FMQVI6 Ci0tICAgICAgaWYgKHZhci0+dS5zY2FsYXIudHlwZSAmJiBUWVBFX09CSkZJTEUgKHZhci0+dS5z Y2FsYXIudHlwZSkgPT0gb2JqZmlsZSkKLS0JdmFyLT51LnNjYWxhci50eXBlCi0tCSAgPSBjb3B5 X3R5cGVfcmVjdXJzaXZlIChvYmpmaWxlLCB2YXItPnUuc2NhbGFyLnR5cGUsIGNvcGllZF90eXBl cyk7Ci0rICAgIGNhc2UgSU5URVJOQUxWQVJfSU5URUdFUjoKLSsgICAgICBpZiAodmFyLT51Lmlu dGVnZXIudHlwZSAmJiBUWVBFX09CSkZJTEUgKHZhci0+dS5pbnRlZ2VyLnR5cGUpID09IG9iamZp bGUpCi0rCXZhci0+dS5pbnRlZ2VyLnR5cGUKLSsJICA9IGNvcHlfdHlwZV9yZWN1cnNpdmUgKG9i amZpbGUsIHZhci0+dS5pbnRlZ2VyLnR5cGUsIGNvcGllZF90eXBlcyk7Ci0rICAgICAgYnJlYWs7 Ci0rCi0rICAgIGNhc2UgSU5URVJOQUxWQVJfUE9JTlRFUjoKLSsgICAgICBpZiAoVFlQRV9PQkpG SUxFICh2YXItPnUucG9pbnRlci50eXBlKSA9PSBvYmpmaWxlKQotKwl2YXItPnUucG9pbnRlci50 eXBlCi0rCSAgPSBjb3B5X3R5cGVfcmVjdXJzaXZlIChvYmpmaWxlLCB2YXItPnUucG9pbnRlci50 eXBlLCBjb3BpZWRfdHlwZXMpOwotICAgICAgIGJyZWFrOwotIAotICAgICBjYXNlIElOVEVSTkFM VkFSX1ZBTFVFOgotQEAgLTIxNjQsNyArMjE3MSw3IEBACi0gdmFsdWVfZnJvbV9wb2ludGVyIChz dHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHIpCi0gewotICAgc3RydWN0IHZhbHVlICp2 YWwgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7Ci0tICBzdG9yZV90eXBlZF9hZGRyZXNzICh2YWx1 ZV9jb250ZW50c19yYXcgKHZhbCksIHR5cGUsIGFkZHIpOwotKyAgc3RvcmVfdHlwZWRfYWRkcmVz cyAodmFsdWVfY29udGVudHNfcmF3ICh2YWwpLCBjaGVja190eXBlZGVmICh0eXBlKSwgYWRkcik7 Ci0gICByZXR1cm4gdmFsOwotIH0KLSAKLS0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9n ZGJ2YXJzLmMKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nZGJ2YXJzLmMJMjAwOS0w OC0xOSAxNToxMDo0Ny4yNzA3ODMwMDAgKzAwMDAKLUBAIC0wLDAgKzEsMTYgQEAKLSsvKiBTaW1w bGUgcHJvZ3JhbSB0byBoZWxwIGV4ZXJjaXNlIGdkYidzIGNvbnZlbmllbmNlIHZhcmlhYmxlcy4g ICovCi0rCi0rdHlwZWRlZiB2b2lkICpwdHI7Ci0rCi0rcHRyIHAgPSAmcDsKLSsKLStpbnQKLStt YWluICgpCi0rewotKyNpZmRlZiB1c2VzdHVicwotKyAgICBzZXRfZGVidWdfdHJhcHMgKCk7Ci0r ICAgIGJyZWFrcG9pbnQgKCk7Ci0rI2VuZGlmCi0rCi0rICByZXR1cm4gMDsKLSt9Ci0tLS0gc3Jj L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ2RidmFycy5leHAJMjAwOS8wMS8wMyAwNTo1ODowMwkx LjYKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nZGJ2YXJzLmV4cAkyMDA5LzA4LzE5 IDEzOjAwOjI5CTEuNwotQEAgLTIyLDYgKzIyLDE1IEBACi0gc2V0IHBybXNfaWQgMAotIHNldCBi dWdfaWQgMAotIAotK3NldCB0ZXN0ZmlsZSAiZ2RidmFycyIKLStzZXQgc3JjZmlsZSAgJHt0ZXN0 ZmlsZX0uYwotK3NldCBiaW5maWxlICAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9Ci0r Ci0raWYgIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIk e2JpbmZpbGV9IiBleGVjdXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0gewotKyAgICB1bnRlc3RlZCBn ZGJ2YXJzLmV4cAotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0gcHJvYyB0ZXN0X2NvbnZlbmllbmNl X3ZhcmlhYmxlcyB7fSB7Ci0gICAgIGdsb2JhbCBnZGJfcHJvbXB0Ci0gCi1AQCAtMTAxLDEzICsx MTAsMjMgQEAKLSAJIlVzZSB2YWx1ZS1oaXN0b3J5IGVsZW1lbnQgaW4gYXJpdGhtZXRpYyBleHBy ZXNzaW9uIgotIH0KLSAKLStwcm9jIHRlc3Rfd2l0aF9wcm9ncmFtIHt9IHsKLSsgICAgZ2xvYmFs IGhleAotKyAgICBnZGJfdGVzdCAic2V0IFwkcHJvZ192YXIgPSBwIiAiIiBcCi0rCSJTZXQgYSBu ZXcgY29udmVuaWVuY2UgdmFyaWFibGUgdG8gYSBwcm9ncmFtIHZhcmlhYmxlIgotKyAgICBnZGJf dGVzdCAicHJpbnQgL3ggXCRwcm9nX3ZhciIgIiA9ICRoZXgiIFwKLSsJIlByaW50IGNvbnRlbnRz IG9mIG5ldyBjb252ZW5pZW5jZSB2YXJpYWJsZSBvZiBwcm9ncmFtIHZhcmlhYmxlIgotK30KLSsK LSAjIFN0YXJ0IHdpdGggYSBmcmVzaCBnZGIuCi0gCi0gZ2RiX2V4aXQKLSBnZGJfc3RhcnQKLSBn ZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKLStnZGJfbG9hZCAke2JpbmZpbGV9 Ci0gCi0gc2VuZF9nZGIgInNldCBwcmludCBzZXZlbmJpdC1zdHJpbmdzXG4iIDsgZ2RiX2V4cGVj dCAtcmUgIi4qJGdkYl9wcm9tcHQgJCIKLSAKLSB0ZXN0X3ZhbHVlX2hpc3RvcnkKLSB0ZXN0X2Nv bnZlbmllbmNlX3ZhcmlhYmxlcwotK3Rlc3Rfd2l0aF9wcm9ncmFtCgpkaWZmIC0tZ2l0IGEvZ2Ri LWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggZDMxODU1Yi4uMzFlMmQ0YiAx MDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0y LDcgKzIsNyBAQCBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgog aHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAog R0lUIHNuYXBzaG90OgotY29tbWl0IGEwODFkMmYxMjk0NWU5NDY4ZWRkNWY0MzQxZDNlOTQ1YmQw ZmVmZTkKK2NvbW1pdCA5NDFlYjQ4N2E0MjkzM2U0NDJjYjRkMTEzNDRjZGE5NmVjYjhhMDRkCiAK IGJyYW5jaCBgYXJjaGVyJyAtIHRoZSBtZXJnZSBvZiBicmFuY2hlczoKIGFyY2hlci10cm9tZXkt Y2FsbC1mcmFtZS1jZmEKQEAgLTE0LDEwICsxNCwxMiBAQCBhcmNoZXIta2VpdGhzLWV4cHItY3Vt dWxhdGl2ZQogYXJjaGVyLXRyb21leS1weXRob24KIGFyY2hlci1qYW5rcmF0b2NodmlsLWZvcnRy YW4tbW9kdWxlCiBhcmNoZXItamFua3JhdG9jaHZpbC13YXRjaHBvaW50CithcmNoZXItamFua3Jh dG9jaHZpbC1icF9sb2NhdGlvbi1hY2NlbAorYXJjaGVyLXBtdWxkb29uLW5leHQtb3Zlci10aHJv dwogCiAKIGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KLWlu ZGV4IDljMmI5YzcuLjAzMmIwY2YgMTAwNjQ0CitpbmRleCA3ZjJmZTU4Li5hYzNhNGEwIDEwMDY0 NAogLS0tIGEvZ2RiL01ha2VmaWxlLmluCiArKysgYi9nZGIvTWFrZWZpbGUuaW4KIEBAIC0xNjYs NiArMTY2LDEzIEBAIElOVExfQ0ZMQUdTID0gQElOQ0lOVExACkBAIC0zOCw1MCArNDAsNTAgQEAg aW5kZXggOWMyYjljNy4uMDMyYjBjZiAxMDA2NDQKICAjCiAgU1VCRElSX1BZVEhPTl9PQlMgPSBc CiAgCXB5dGhvbi5vIFwKLSsJcHl0aG9uLWJsb2NrLm8gXAotKwlweXRob24tYnJlYWtwb2ludC5v IFwKLSAJcHl0aG9uLWNtZC5vIFwKLSAJcHl0aG9uLWZyYW1lLm8gXAotIAlweXRob24tZnVuY3Rp b24ubyBcCi0rCXB5dGhvbi1ob29rcy5vIFwKLSsJcHl0aG9uLWluZmVyaW9yLm8gXAotKwlweXRo b24taW5mdGhyZWFkLm8gXAotIAlweXRob24tb2JqZmlsZS5vIFwKLSsJcHl0aG9uLXBhcmFtLm8g XAotIAlweXRob24tcHJldHR5cHJpbnQubyBcCi0rCXB5dGhvbi1zeW1ib2wubyBcCi0rCXB5dGhv bi1zeW10YWIubyBcCi0gCXB5dGhvbi10eXBlLm8gXAotIAlweXRob24tdXRpbHMubyBcCi0gCXB5 dGhvbi12YWx1ZS5vCisrCXB5LWJsb2NrLm8gXAorKwlweS1icmVha3BvaW50Lm8gXAorIAlweS1j bWQubyBcCisgCXB5LWZyYW1lLm8gXAorIAlweS1mdW5jdGlvbi5vIFwKKysJcHktaG9va3MubyBc CisrCXB5LWluZmVyaW9yLm8gXAorKwlweS1pbmZ0aHJlYWQubyBcCisgCXB5LW9iamZpbGUubyBc CisrCXB5LXBhcmFtLm8gXAorIAlweS1wcmV0dHlwcmludC5vIFwKKysJcHktc3ltYm9sLm8gXAor KwlweS1zeW10YWIubyBcCisgCXB5LXR5cGUubyBcCisgCXB5LXV0aWxzLm8gXAorIAlweS12YWx1 ZS5vCiAgU1VCRElSX1BZVEhPTl9TUkNTID0gXAogIAlweXRob24vcHl0aG9uLmMgXAotKwlweXRo b24vcHl0aG9uLWJsb2NrLmMgXAotKwlweXRob24vcHl0aG9uLWJyZWFrcG9pbnQuYyBcCi0gCXB5 dGhvbi9weXRob24tY21kLmMgXAotIAlweXRob24vcHl0aG9uLWZyYW1lLmMgXAotIAlweXRob24v cHl0aG9uLWZ1bmN0aW9uLmMgXAotKwlweXRob24vcHl0aG9uLWhvb2tzLmMgXAotKwlweXRob24v cHl0aG9uLWluZmVyaW9yLmMgXAotKwlweXRob24vcHl0aG9uLWluZnRocmVhZC5jIFwKLSAJcHl0 aG9uL3B5dGhvbi1vYmpmaWxlLmMgXAotKwlweXRob24vcHl0aG9uLXBhcmFtLmMgXAotIAlweXRo b24vcHl0aG9uLXByZXR0eXByaW50LmMgXAotKwlweXRob24vcHl0aG9uLXN5bWJvbC5jIFwKLSsJ cHl0aG9uL3B5dGhvbi1zeW10YWIuYyBcCi0gCXB5dGhvbi9weXRob24tdHlwZS5jIFwKLSAJcHl0 aG9uL3B5dGhvbi11dGlscy5jIFwKLSAJcHl0aG9uL3B5dGhvbi12YWx1ZS5jCi1AQCAtNzQ1LDcg Kzc2OCw3IEBAIGNvbmZpZy9yczYwMDAvbm0tcnM2MDAwLmggdG9wLmggYnNkLWt2bS5oIGdkYi1z dGFicy5oIHJlZ2dyb3Vwcy5oIFwKKysJcHl0aG9uL3B5LWJsb2NrLmMgXAorKwlweXRob24vcHkt YnJlYWtwb2ludC5jIFwKKyAJcHl0aG9uL3B5LWNtZC5jIFwKKyAJcHl0aG9uL3B5LWZyYW1lLmMg XAorIAlweXRob24vcHktZnVuY3Rpb24uYyBcCisrCXB5dGhvbi9weS1ob29rcy5jIFwKKysJcHl0 aG9uL3B5LWluZmVyaW9yLmMgXAorKwlweXRob24vcHktaW5mdGhyZWFkLmMgXAorIAlweXRob24v cHktb2JqZmlsZS5jIFwKKysJcHl0aG9uL3B5LXBhcmFtLmMgXAorIAlweXRob24vcHktcHJldHR5 cHJpbnQuYyBcCisrCXB5dGhvbi9weS1zeW1ib2wuYyBcCisrCXB5dGhvbi9weS1zeW10YWIuYyBc CisgCXB5dGhvbi9weS10eXBlLmMgXAorIAlweXRob24vcHktdXRpbHMuYyBcCisgCXB5dGhvbi9w eS12YWx1ZS5jCitAQCAtNzQ2LDcgKzc2OSw3IEBAIGNvbmZpZy9yczYwMDAvbm0tcnM2MDAwLmgg dG9wLmggYnNkLWt2bS5oIGdkYi1zdGFicy5oIHJlZ2dyb3Vwcy5oIFwKICBhbm5vdGF0ZS5oIHNp bS1yZWduby5oIGRpY3Rpb25hcnkuaCBkZnAuaCBtYWluLmggZnJhbWUtdW53aW5kLmgJXAogIHJl bW90ZS1maWxlaW8uaCBpMzg2LWxpbnV4LXRkZXAuaCB2YXgtdGRlcC5oIG9iamMtbGFuZy5oIFwK ICBzZW50aW5lbC1mcmFtZS5oIGJjYWNoZS5oIHN5bWZpbGUuaCB3aW5kb3dzLXRkZXAuaCBsaW51 eC10ZGVwLmggXAotLWdkYl91c2xlZXAuaAotK2dkYl91c2xlZXAuaCBweXRob24vcHl0aG9uLmgg cHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCistZ2RiX3VzbGVlcC5oIGppdC5oCisrZ2RiX3VzbGVl cC5oIGppdC5oIHB5dGhvbi9weXRob24uaCBweXRob24vcHl0aG9uLWludGVybmFsLmgKICAKICAj IEhlYWRlciBmaWxlcyB0aGF0IGFscmVhZHkgaGF2ZSBzcmNkaXIgaW4gdGhlbSwgb3Igd2hpY2gg YXJlIGluIG9iamRpci4KICAKLUBAIC04NjIsNyArODg1LDcgQEAgZ2VuZXJhdGVkX2ZpbGVzID0g Y29uZmlnLmggb2JzZXJ2ZXIuaCBvYnNlcnZlci5pbmMgYWRhLWxleC5jIFwKK0BAIC04NjQsNyAr ODg3LDcgQEAgZ2VuZXJhdGVkX2ZpbGVzID0gY29uZmlnLmggb2JzZXJ2ZXIuaCBvYnNlcnZlci5p bmMgYWRhLWxleC5jIFwKICAJJChDT01QSUxFKSAkPAogIAkkKFBPU1RDT01QSUxFKQogIApAQCAt OTAsNyArOTIsNyBAQCBpbmRleCA5YzJiOWM3Li4wMzJiMGNmIDEwMDY0NAogIAlAJChNQUtFKSAk KEZMQUdTX1RPX1BBU1MpIERPPWFsbCAiRE9ESVJTPWBlY2hvICQoU1VCRElSUykgfCBzZWQgJ3Mv dGVzdHN1aXRlLy8nYCIgc3ViZGlyX2RvCiAgLlBIT05ZOiBhbGwtdHVpCiAgYWxsLXR1aTogJChU VUkpJChFWEVFWFQpCi1AQCAtMTIxOCw2ICsxMjQxLDEyIEBAIHN0YW1wLWg6ICQoc3JjZGlyKS9j b25maWcuaW4gY29uZmlnLnN0YXR1cworQEAgLTEyMjEsNiArMTI0NCwxMiBAQCBzdGFtcC1oOiAk KHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMKICAJICBDT05GSUdfTElOS1M9IFwKICAJ ICAkKFNIRUxMKSBjb25maWcuc3RhdHVzCiAgCkBAIC0xMDMsNjIgKzEwNSw2MiBAQCBpbmRleCA5 YzJiOWM3Li4wMzJiMGNmIDEwMDY0NAogIGNvbmZpZy5zdGF0dXM6ICQoc3JjZGlyKS9jb25maWd1 cmUgY29uZmlndXJlLnRndCBjb25maWd1cmUuaG9zdAogIAkkKFNIRUxMKSBjb25maWcuc3RhdHVz IC0tcmVjaGVjawogIAotQEAgLTE5MTcsNiArMTk0NiwxNCBAQCBweXRob24ubzogJChzcmNkaXIp L3B5dGhvbi9weXRob24uYworQEAgLTE5MjAsNiArMTk0OSwxNCBAQCBweXRob24ubzogJChzcmNk aXIpL3B5dGhvbi9weXRob24uYwogIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNk aXIpL3B5dGhvbi9weXRob24uYwogIAkkKFBPU1RDT01QSUxFKQogIAotK3B5dGhvbi1ibG9jay5v OiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1ibG9jay5jCi0rCSQoQ09NUElMRSkgJChQWVRIT05f Q0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1ibG9jay5jCisrcHktYmxvY2subzogJChz cmNkaXIpL3B5dGhvbi9weS1ibG9jay5jCisrCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAk KHNyY2RpcikvcHl0aG9uL3B5LWJsb2NrLmMKICsJJChQT1NUQ09NUElMRSkKICsKLStweXRob24t YnJlYWtwb2ludC5vOiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1icmVha3BvaW50LmMKLSsJJChD T01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHl0aG9uLWJyZWFrcG9p bnQuYworK3B5LWJyZWFrcG9pbnQubzogJChzcmNkaXIpL3B5dGhvbi9weS1icmVha3BvaW50LmMK KysJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktYnJlYWtw b2ludC5jCiArCSQoUE9TVENPTVBJTEUpCiArCi0gcHl0aG9uLWNtZC5vOiAkKHNyY2RpcikvcHl0 aG9uL3B5dGhvbi1jbWQuYwotIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIp L3B5dGhvbi9weXRob24tY21kLmMKKyBweS1jbWQubzogJChzcmNkaXIpL3B5dGhvbi9weS1jbWQu YworIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weS1jbWQu YwogIAkkKFBPU1RDT01QSUxFKQotQEAgLTE5MjksMTQgKzE5NjYsMzggQEAgcHl0aG9uLWZ1bmN0 aW9uLm86ICQoc3JjZGlyKS9weXRob24vcHl0aG9uLWZ1bmN0aW9uLmMKLSAJJChDT01QSUxFKSAk KFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHl0aG9uLWZ1bmN0aW9uLmMKK0BAIC0x OTMyLDE0ICsxOTY5LDM4IEBAIHB5LWZ1bmN0aW9uLm86ICQoc3JjZGlyKS9weXRob24vcHktZnVu Y3Rpb24uYworIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9w eS1mdW5jdGlvbi5jCiAgCSQoUE9TVENPTVBJTEUpCiAgCi0rcHl0aG9uLWhvb2tzLm86ICQoc3Jj ZGlyKS9weXRob24vcHl0aG9uLWhvb2tzLmMKLSsJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1Mp ICQoc3JjZGlyKS9weXRob24vcHl0aG9uLWhvb2tzLmMKKytweS1ob29rcy5vOiAkKHNyY2Rpcikv cHl0aG9uL3B5LWhvb2tzLmMKKysJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGly KS9weXRob24vcHktaG9va3MuYwogKwkkKFBPU1RDT01QSUxFKQogKwotK3B5dGhvbi1pbmZlcmlv ci5vOiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1pbmZlcmlvci5jCi0rCSQoQ09NUElMRSkgJChQ WVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1pbmZlcmlvci5jCisrcHktaW5m ZXJpb3IubzogJChzcmNkaXIpL3B5dGhvbi9weS1pbmZlcmlvci5jCisrCSQoQ09NUElMRSkgJChQ WVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5LWluZmVyaW9yLmMKICsJJChQT1NUQ09N UElMRSkKICsKLStweXRob24taW5mdGhyZWFkLm86ICQoc3JjZGlyKS9weXRob24vcHl0aG9uLWlu ZnRocmVhZC5jCi0rCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9u L3B5dGhvbi1pbmZ0aHJlYWQuYworK3B5LWluZnRocmVhZC5vOiAkKHNyY2RpcikvcHl0aG9uL3B5 LWluZnRocmVhZC5jCisrCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0 aG9uL3B5LWluZnRocmVhZC5jCiArCSQoUE9TVENPTVBJTEUpCiArCi0gcHl0aG9uLW9iamZpbGUu bzogJChzcmNkaXIpL3B5dGhvbi9weXRob24tb2JqZmlsZS5jCi0gCSQoQ09NUElMRSkgJChQWVRI T05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1vYmpmaWxlLmMKKyBweS1vYmpmaWxl Lm86ICQoc3JjZGlyKS9weXRob24vcHktb2JqZmlsZS5jCisgCSQoQ09NUElMRSkgJChQWVRIT05f Q0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5LW9iamZpbGUuYwogIAkkKFBPU1RDT01QSUxFKQog IAotK3B5dGhvbi1wYXJhbS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1wYXJhbS5jCi0rCSQo Q09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1wYXJhbS5j CisrcHktcGFyYW0ubzogJChzcmNkaXIpL3B5dGhvbi9weS1wYXJhbS5jCisrCSQoQ09NUElMRSkg JChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5LXBhcmFtLmMKICsJJChQT1NUQ09N UElMRSkKICsKLSBweXRob24tcHJldHR5cHJpbnQubzogJChzcmNkaXIpL3B5dGhvbi9weXRob24t cHJldHR5cHJpbnQuYwotIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5 dGhvbi9weXRob24tcHJldHR5cHJpbnQuYworIHB5LXByZXR0eXByaW50Lm86ICQoc3JjZGlyKS9w eXRob24vcHktcHJldHR5cHJpbnQuYworIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChz cmNkaXIpL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCiAgCSQoUE9TVENPTVBJTEUpCiAgCi0rcHl0 aG9uLXN5bWJvbC5vOiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1zeW1ib2wuYwotKwkkKENPTVBJ TEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weXRob24tc3ltYm9sLmMKKytw eS1zeW1ib2wubzogJChzcmNkaXIpL3B5dGhvbi9weS1zeW1ib2wuYworKwkkKENPTVBJTEUpICQo UFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weS1zeW1ib2wuYwogKwkkKFBPU1RDT01Q SUxFKQogKwotK3B5dGhvbi1zeW10YWIubzogJChzcmNkaXIpL3B5dGhvbi9weXRob24tc3ltdGFi LmMKLSsJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHl0aG9u LXN5bXRhYi5jCisrcHktc3ltdGFiLm86ICQoc3JjZGlyKS9weXRob24vcHktc3ltdGFiLmMKKysJ JChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktc3ltdGFiLmMK ICsJJChQT1NUQ09NUElMRSkKICsKLSBweXRob24tdHlwZS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5 dGhvbi10eXBlLmMKLSAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRo b24vcHl0aG9uLXR5cGUuYworIHB5LXR5cGUubzogJChzcmNkaXIpL3B5dGhvbi9weS10eXBlLmMK KyAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktdHlwZS5j CiAgCSQoUE9TVENPTVBJTEUpCi1AQCAtMTk0OSw2ICsyMDEwLDM2IEBAIHB5dGhvbi12YWx1ZS5v OiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCi0gCSQoQ09NUElMRSkgJChQWVRIT05f Q0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCitAQCAtMTk1Miw2ICsyMDEz LDM2IEBAIHB5LXZhbHVlLm86ICQoc3JjZGlyKS9weXRob24vcHktdmFsdWUuYworIAkkKENPTVBJ TEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weS12YWx1ZS5jCiAgCSQoUE9T VENPTVBJTEUpCiAgCiArIyBBbGwgcHl0aG9uIGxpYnJhcnkgZmlsZXMsIHdpdGggdGhlICJweXRo b24vbGliIiBzdHJpcHBlZCBvZmYuCkBAIC0xOTUsMTAgKzE5NywxMCBAQCBpbmRleCA5YzJiOWM3 Li4wMzJiMGNmIDEwMDY0NAogICMgRGVwZW5kZW5jeSB0cmFja2luZy4gIE1vc3Qgb2YgdGhpcyBp cyBjb25kaXRpb25hbCBvbiBHTlUgTWFrZSBiZWluZwogICMgZm91bmQgYnkgY29uZmlndXJlOyBp ZiBHTlUgTWFrZSBpcyBub3QgZm91bmQsIHdlIGZhbGwgYmFjayB0byBhCiBkaWZmIC0tZ2l0IGEv Z2RiL05FV1MgYi9nZGIvTkVXUwotaW5kZXggMGI4ZTNhZi4uNDQ2MjQ2ZiAxMDA2NDQKK2luZGV4 IDE0ZGE2YzguLjE5NzlmNDIgMTAwNjQ0CiAtLS0gYS9nZGIvTkVXUwogKysrIGIvZ2RiL05FV1MK LUBAIC00MjUsNiArNDI1LDEzIEBAIHg4Ni94ODZfNjQgRGFyd2luCQlpWzM0NTY3XTg2LSotZGFy d2luKgorQEAgLTQ0NCw2ICs0NDQsMTMgQEAgeDg2L3g4Nl82NCBEYXJ3aW4JCWlbMzQ1NjddODYt Ki1kYXJ3aW4qCiAgCiAgeDg2XzY0IE1pbkdXCQkJeDg2XzY0LSotbWluZ3cqCiAgCkBAIC0zODcs MTAgKzM4OSwxMCBAQCBpbmRleCA3ZDg0NjFjLi5hNmQzNWQ3IDEwMDY0NAogIAogICAgLyogT3Zl cnJpZGUgdGhlIEdOVS9MaW51eCBpbmZlcmlvciBzdGFydHVwIGhvb2suICAqLwogZGlmZiAtLWdp dCBhL2dkYi9ibG9jay5jIGIvZ2RiL2Jsb2NrLmMKLWluZGV4IDE4ODllY2QuLjM3ZmEzNDIgMTAw NjQ0CitpbmRleCA5N2VhNjdhLi5iMjBiZWViIDEwMDY0NAogLS0tIGEvZ2RiL2Jsb2NrLmMKICsr KyBiL2dkYi9ibG9jay5jCi1AQCAtMjIzLDggKzIyMyw5IEBAIGJsb2NrX3NldF9zY29wZSAoc3Ry dWN0IGJsb2NrICpibG9jaywgY29uc3QgY2hhciAqc2NvcGUsCitAQCAtMjI3LDggKzIyNyw5IEBA IGJsb2NrX3NldF9zY29wZSAoc3RydWN0IGJsb2NrICpibG9jaywgY29uc3QgY2hhciAqc2NvcGUs CiAgICBCTE9DS19OQU1FU1BBQ0UgKGJsb2NrKS0+c2NvcGUgPSBzY29wZTsKICB9CiAgCkBAIC00 MDIsNyArNDA0LDcgQEAgaW5kZXggMTg4OWVjZC4uMzdmYTM0MiAxMDA2NDQKICAKICBzdHJ1Y3Qg dXNpbmdfZGlyZWN0ICoKICBibG9ja191c2luZyAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaykK LUBAIC0zMTQsNiArMzE1LDI1IEBAIGFsbG9jYXRlX2Jsb2NrIChzdHJ1Y3Qgb2JzdGFjayAqb2Jz dGFjaykKK0BAIC0zMTgsNiArMzE5LDI1IEBAIGFsbG9jYXRlX2Jsb2NrIChzdHJ1Y3Qgb2JzdGFj ayAqb2JzdGFjaykKICAgIEJMT0NLX1NVUEVSQkxPQ0sgKGJsKSA9IE5VTEw7CiAgICBCTE9DS19E SUNUIChibCkgPSBOVUxMOwogICAgQkxPQ0tfTkFNRVNQQUNFIChibCkgPSBOVUxMOwpAQCAtNDY0 LDE4ICs0NjYsODMgQEAgaW5kZXggNTNlNzM3MS4uZDM3M2Y4YSAxMDA2NDQKICsKICAjZW5kaWYg LyogQkxPQ0tfSCAqLwogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtw b2ludC5jCi1pbmRleCBmMzk0MGUxLi4yMzQ5ZmJjIDEwMDY0NAoraW5kZXggOWY1MDg3Mi4uYTQy NTVkNyAxMDA2NDQKIC0tLSBhL2dkYi9icmVha3BvaW50LmMKICsrKyBiL2dkYi9icmVha3BvaW50 LmMKLUBAIC01OSw2ICs1OSw3IEBACi0gI2luY2x1ZGUgInRvcC5oIgorQEAgLTYwLDYgKzYwLDcg QEAKICAjaW5jbHVkZSAid3JhcHBlci5oIgogICNpbmNsdWRlICJ2YWxwcmludC5oIgorICNpbmNs dWRlICJqaXQuaCIKICsjaW5jbHVkZSAicGFyc2VyLWRlZnMuaCIKICAKICAvKiByZWFkbGluZSBp bmNsdWRlIGZpbGVzICovCiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCi1AQCAtNTc4 LDYgKzU3OSw1MyBAQCBnZXRfYnJlYWtwb2ludCAoaW50IG51bSkKK0BAIC0xMTEsOCArMTEyLDYg QEAgc3RydWN0IGJyZWFrcG9pbnQgKnNldF9yYXdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsCisgCQkJCQkgICAgICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lLAorIAkJCQkJICAg ICAgZW51bSBicHR5cGUpOworIAorLXN0YXRpYyB2b2lkIGNoZWNrX2R1cGxpY2F0ZXMgKHN0cnVj dCBicmVha3BvaW50ICopOworLQorIHN0YXRpYyB2b2lkIGJyZWFrcG9pbnRfYWRqdXN0bWVudF93 YXJuaW5nIChDT1JFX0FERFIsIENPUkVfQUREUiwgaW50LCBpbnQpOworIAorIHN0YXRpYyBDT1JF X0FERFIgYWRqdXN0X2JyZWFrcG9pbnRfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs CitAQCAtMzM0LDE0ICszMzMsMTQgQEAgc3RhdGljIGludCBleGVjdXRpbmdfc3RhcnR1cDsKKyAJ ICAgICBCID8gKFRNUD1CLT5uZXh0LCAxKTogMDsJXAorIAkgICAgIEIgPSBUTVApCisgCistLyog U2ltaWxhciBpdGVyYXRvcnMgZm9yIHRoZSBsb3ctbGV2ZWwgYnJlYWtwb2ludHMuICAqLworLQor LSNkZWZpbmUgQUxMX0JQX0xPQ0FUSU9OUyhCKSAgZm9yIChCID0gYnBfbG9jYXRpb25fY2hhaW47 IEI7IEIgPSBCLT5nbG9iYWxfbmV4dCkKKysvKiBTaW1pbGFyIGl0ZXJhdG9yIGZvciB0aGUgbG93 LWxldmVsIGJyZWFrcG9pbnRzLiAgU0FGRSB2YXJpYW50IGlzIG5vdAorKyAgIHByb3ZpZGVkIHNv IHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCBtdXN0IG5vdCBiZSBjYWxsZWQgd2hpbGUgZXhl Y3V0aW5nCisrICAgdGhlIGJsb2NrIG9mIEFMTF9CUF9MT0NBVElPTlMuICAqLworIAorLSNkZWZp bmUgQUxMX0JQX0xPQ0FUSU9OU19TQUZFKEIsVE1QKQlcCistCWZvciAoQiA9IGJwX2xvY2F0aW9u X2NoYWluOwlcCistCSAgICAgQiA/IChUTVA9Qi0+Z2xvYmFsX25leHQsIDEpOiAwOwlcCistCSAg ICAgQiA9IFRNUCkKKysjZGVmaW5lIEFMTF9CUF9MT0NBVElPTlMoQixCUF9UTVApCQkJCQlcCisr CWZvciAoQlBfVE1QID0gYnBfbG9jYXRpb247CQkJCQlcCisrCSAgICAgQlBfVE1QIDwgYnBfbG9j YXRpb24gKyBicF9sb2NhdGlvbl9jb3VudCAmJiAoQiA9ICpCUF9UTVApOwlcCisrCSAgICAgQlBf VE1QKyspCisgCisgLyogSXRlcmF0b3IgZm9yIHRyYWNlcG9pbnRzIG9ubHkuICAqLworIAorQEAg LTM1MywxMCArMzUyLDMxIEBAIHN0YXRpYyBpbnQgZXhlY3V0aW5nX3N0YXJ0dXA7CisgCisgc3Ry dWN0IGJyZWFrcG9pbnQgKmJyZWFrcG9pbnRfY2hhaW47CisgCistc3RydWN0IGJwX2xvY2F0aW9u ICpicF9sb2NhdGlvbl9jaGFpbjsKKysvKiBBcnJheSBpcyBzb3J0ZWQgYnkgYnBfbG9jYXRpb25f Y29tcGFyZSAtIHByaW1hcmlseSBieSB0aGUgQUREUkVTUy4gICovCisrCisrc3RhdGljIHN0cnVj dCBicF9sb2NhdGlvbiAqKmJwX2xvY2F0aW9uOworKworKy8qIE51bWJlciBvZiBlbGVtZW50cyBv ZiBCUF9MT0NBVElPTi4gICovCisrCisrc3RhdGljIHVuc2lnbmVkIGJwX2xvY2F0aW9uX2NvdW50 OworKworKy8qIE1heGltdW0gYWxpZ25tZW50IG9mZnNldCBiZXR3ZWVuIGJwX3RhcmdldF9pbmZv LlBMQUNFRF9BRERSRVNTIGFuZCBBRERSRVNTCisrICAgZm9yIHRoZSBjdXJyZW50IGVsZW1lbnRz IG9mIEJQX0xPQ0FUSU9OIHdoaWNoIGdldCBhIHZhbGlkIHJlc3VsdCBmcm9tCisrICAgYnBfbG9j YXRpb25faGFzX3NoYWRvdy4gIFlvdSBjYW4gdXNlIGl0IGZvciByb3VnaGx5IGxpbWl0aW5nIHRo ZSBzdWJyYW5nZSBvZgorKyAgIEJQX0xPQ0FUSU9OIHRvIHNjYW4gZm9yIHNoYWRvdyBieXRlcyBm b3IgYW4gYWRkcmVzcyB5b3UgbmVlZCB0byByZWFkLiAgKi8KKysKKytzdGF0aWMgQ09SRV9BRERS IGJwX2xvY2F0aW9uX3BsYWNlZF9hZGRyZXNzX2JlZm9yZV9hZGRyZXNzX21heDsKKysKKysvKiBN YXhpbXVtIG9mZnNldCBwbHVzIGFsaWdubWVudCBiZXR3ZWVuCisrICAgYnBfdGFyZ2V0X2luZm8u UExBQ0VEX0FERFJFU1MgKyBicF90YXJnZXRfaW5mby5TSEFET1dfTEVOIGFuZCBBRERSRVNTIGZv cgorKyAgIHRoZSBjdXJyZW50IGVsZW1lbnRzIG9mIEJQX0xPQ0FUSU9OIHdoaWNoIGdldCBhIHZh bGlkIHJlc3VsdCBmcm9tCisrICAgYnBfbG9jYXRpb25faGFzX3NoYWRvdy4gIFlvdSBjYW4gdXNl IGl0IGZvciByb3VnaGx5IGxpbWl0aW5nIHRoZSBzdWJyYW5nZSBvZgorKyAgIEJQX0xPQ0FUSU9O IHRvIHNjYW4gZm9yIHNoYWRvdyBieXRlcyBmb3IgYW4gYWRkcmVzcyB5b3UgbmVlZCB0byByZWFk LiAgKi8KKysKKytzdGF0aWMgQ09SRV9BRERSIGJwX2xvY2F0aW9uX3NoYWRvd19sZW5fYWZ0ZXJf YWRkcmVzc19tYXg7CisgCisgLyogVGhlIGxvY2F0aW9ucyB0aGF0IG5vIGxvbmdlciBjb3JyZXNw b25kIHRvIGFueSBicmVha3BvaW50LAorLSAgIHVubGlua2VkIGZyb20gYnBfbG9jYXRpb25fY2hh aW4sIGJ1dCBmb3Igd2hpY2ggYSBoaXQKKysgICB1bmxpbmtlZCBmcm9tIGJwX2xvY2F0aW9uIGFy cmF5LCBidXQgZm9yIHdoaWNoIGEgaGl0CisgICAgbWF5IHN0aWxsIGJlIHJlcG9ydGVkIGJ5IGEg dGFyZ2V0LiAgKi8KKyBWRUMoYnBfbG9jYXRpb25fcCkgKm1vcmlidW5kX2xvY2F0aW9ucyA9IE5V TEw7CisgCitAQCAtNTc5LDYgKzU5OSw1MyBAQCBnZXRfYnJlYWtwb2ludCAoaW50IG51bSkKICB9 CiAgCiAgDApAQCAtNTI5LDcgKzU5Niw3IEBAIGluZGV4IGYzOTQwZTEuLjIzNDlmYmMgMTAwNjQ0 CiAgLyogY29uZGl0aW9uIE4gRVhQIC0tIHNldCBicmVhayBjb25kaXRpb24gb2YgYnJlYWtwb2lu dCBOIHRvIEVYUC4gICovCiAgCiAgc3RhdGljIHZvaWQKLUBAIC01OTgsNDIgKzY0Niw3IEBAIGNv bmRpdGlvbl9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKK0BAIC01OTksNDIgKzY2 Niw3IEBAIGNvbmRpdGlvbl9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAgIEFM TF9CUkVBS1BPSU5UUyAoYikKICAgICAgaWYgKGItPm51bWJlciA9PSBibnVtKQogICAgICAgIHsK QEAgLTU3Myw3ICs2NDAsMjczIEBAIGluZGV4IGYzOTQwZTEuLjIzNDlmYmMgMTAwNjQ0CiAgCXJl dHVybjsKICAgICAgICB9CiAgCi1AQCAtMTY5MCw2ICsxNzAzLDcgQEAgZGV0YWNoX2JyZWFrcG9p bnRzIChpbnQgcGlkKQorQEAgLTczMiwzNSArNzY0LDg4IEBAIGNvbW1hbmRzX2Zyb21fY29udHJv bF9jb21tYW5kIChjaGFyICphcmcsIHN0cnVjdCBjb21tYW5kX2xpbmUgKmNtZCkKKyAgICAgICB9 CisgICBlcnJvciAoXygiTm8gYnJlYWtwb2ludCBudW1iZXIgJWQuIiksIGJudW0pOworIH0KKy0M CisrCisrLyogUmV0dXJuIG5vbi16ZXJvIGlmIEJMLT5UQVJHRVRfSU5GTyBjb250YWlucyB2YWxp ZCBpbmZvcm1hdGlvbi4gICovCisrCisrc3RhdGljIGludAorK2JwX2xvY2F0aW9uX2hhc19zaGFk b3cgKHN0cnVjdCBicF9sb2NhdGlvbiAqYmwpCisreworKyAgaWYgKGJsLT5sb2NfdHlwZSAhPSBi cF9sb2Nfc29mdHdhcmVfYnJlYWtwb2ludCkKKysgICAgcmV0dXJuIDA7CisrICBpZiAoIWJsLT5p bnNlcnRlZCkKKysgICAgcmV0dXJuIDA7CisrICBpZiAoYmwtPnRhcmdldF9pbmZvLnNoYWRvd19s ZW4gPT0gMCkKKysgICAgLyogYnAgaXNuJ3QgdmFsaWQsIG9yIGRvZXNuJ3Qgc2hhZG93IG1lbW9y eS4gICovCisrICAgIHJldHVybiAwOworKyAgcmV0dXJuIDE7CisrfQorKworIC8qIFVwZGF0ZSBC VUYsIHdoaWNoIGlzIExFTiBieXRlcyByZWFkIGZyb20gdGhlIHRhcmdldCBhZGRyZXNzIE1FTUFE RFIsCistICAgYnkgcmVwbGFjaW5nIGFueSBtZW1vcnkgYnJlYWtwb2ludHMgd2l0aCB0aGVpciBz aGFkb3dlZCBjb250ZW50cy4gICovCisrICAgYnkgcmVwbGFjaW5nIGFueSBtZW1vcnkgYnJlYWtw b2ludHMgd2l0aCB0aGVpciBzaGFkb3dlZCBjb250ZW50cy4KKysKKysgICBUaGUgcmFuZ2Ugb2Yg c2hhZG93ZWQgYXJlYSBieSBlYWNoIGJwX2xvY2F0aW9uIGlzOgorKyAgICAgYi0+YWRkcmVzcyAt IGJwX2xvY2F0aW9uX3BsYWNlZF9hZGRyZXNzX2JlZm9yZV9hZGRyZXNzX21heAorKyAgICAgdXAg dG8gYi0+YWRkcmVzcyArIGJwX2xvY2F0aW9uX3NoYWRvd19sZW5fYWZ0ZXJfYWRkcmVzc19tYXgK KysgICBUaGUgcmFuZ2Ugd2Ugd2VyZSByZXF1ZXN0ZWQgdG8gcmVzb2x2ZSBzaGFkb3dzIGZvciBp czoKKysgICAgIG1lbWFkZHIgLi4uIG1lbWFkZHIgKyBsZQorKyAgIFRodXMgdGhlIHNhZmUgY3V0 b2ZmIGJvdW5kYXJpZXMgZm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBhcmUKKysgICAgIG1l bWFkZHIgKyBsZW4gPD0gYi0+YWRkcmVzcyAtIGJwX2xvY2F0aW9uX3BsYWNlZF9hZGRyZXNzX2Jl Zm9yZV9hZGRyZXNzX21heAorKyAgIGFuZDoKKysgICAgIGItPmFkZHJlc3MgKyBicF9sb2NhdGlv bl9zaGFkb3dfbGVuX2FmdGVyX2FkZHJlc3NfbWF4IDw9IG1lbWFkZHIgICovCisgCisgdm9pZAor IGJyZWFrcG9pbnRfcmVzdG9yZV9zaGFkb3dzIChnZGJfYnl0ZSAqYnVmLCBVTE9OR0VTVCBtZW1h ZGRyLCBMT05HRVNUIGxlbikKKyB7CistICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmI7CistICBDT1JF X0FERFIgYnBfYWRkciA9IDA7CistICBpbnQgYnBfc2l6ZSA9IDA7CistICBpbnQgYnB0b2Zmc2V0 ID0gMDsKKysgIC8qIExlZnQgYm91bmRhcnksIHJpZ2h0IGJvdW5kYXJ5IGFuZCBtZWRpYSBlbGVt ZW50IG9mIG91ciBiaW5hcnkgc2VhcmNoLiAgKi8KKysgIHVuc2lnbmVkIGJjX2wsIGJjX3IsIGJj OworKworKyAgLyogRmluZCBCQ19MIHdoaWNoIGlzIGEgbGVmdG1vc3QgZWxlbWVudCB3aGljaCBt YXkgYWZmZWN0IEJVRiBjb250ZW50LiAgSXQgaXMKKysgICAgIHNhZmUgdG8gcmVwb3J0IGxvd2Vy IHZhbHVlIGJ1dCBhIGZhaWx1cmUgdG8gcmVwb3J0IGhpZ2hlciBvbmUuICAqLworKworKyAgYmNf bCA9IDA7CisrICBiY19yID0gYnBfbG9jYXRpb25fY291bnQ7CisrICB3aGlsZSAoYmNfbCArIDEg PCBiY19yKQorKyAgICB7CisrICAgICAgc3RydWN0IGJwX2xvY2F0aW9uICpiOworIAorLSAgQUxM X0JQX0xPQ0FUSU9OUyAoYikKKysgICAgICBiYyA9IChiY19sICsgYmNfcikgLyAyOworKyAgICAg IGIgPSBicF9sb2NhdGlvbltiY107CisrCisrICAgICAgaWYgKGItPmFkZHJlc3MgKyBicF9sb2Nh dGlvbl9zaGFkb3dfbGVuX2FmdGVyX2FkZHJlc3NfbWF4ID49IGItPmFkZHJlc3MKKysJICAmJiBi LT5hZGRyZXNzICsgYnBfbG9jYXRpb25fc2hhZG93X2xlbl9hZnRlcl9hZGRyZXNzX21heCA8PSBt ZW1hZGRyKQorKwliY19sID0gYmM7CisrICAgICAgZWxzZQorKwliY19yID0gYmM7CisrICAgIH0K KysKKysgIC8qIE5vdyBkbyBmdWxsIHByb2Nlc3Npbmcgb2YgdGhlIGZvdW5kIHJlbGV2YW50IHJh bmdlIG9mIGVsZW1lbnRzLiAgKi8KKysKKysgIGZvciAoYmMgPSBiY19sOyBiYyA8IGJwX2xvY2F0 aW9uX2NvdW50OyBiYysrKQorICAgeworKyAgICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmIgPSBicF9s b2NhdGlvbltiY107CisrICAgIENPUkVfQUREUiBicF9hZGRyID0gMDsKKysgICAgaW50IGJwX3Np emUgPSAwOworKyAgICBpbnQgYnB0b2Zmc2V0ID0gMDsKKysKKyAgICAgaWYgKGItPm93bmVyLT50 eXBlID09IGJwX25vbmUpCisgICAgICAgd2FybmluZyAoXygicmVhZGluZyB0aHJvdWdoIGFwcGFy ZW50bHkgZGVsZXRlZCBicmVha3BvaW50ICMlZD8iKSwKKyAgICAgICAgICAgICAgIGItPm93bmVy LT5udW1iZXIpOworIAorLSAgICBpZiAoYi0+bG9jX3R5cGUgIT0gYnBfbG9jX3NvZnR3YXJlX2Jy ZWFrcG9pbnQpCistICAgICAgY29udGludWU7CistICAgIGlmICghYi0+aW5zZXJ0ZWQpCisrICAg IC8qIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogYW55IGZ1dGhlciBlbGVtZW50IGNhbiBubyBs b25nZXIgYWZmZWN0IEJVRgorKyAgICAgICBjb250ZW50LiAgKi8KKysKKysgICAgaWYgKGItPmFk ZHJlc3MgPj0gYnBfbG9jYXRpb25fcGxhY2VkX2FkZHJlc3NfYmVmb3JlX2FkZHJlc3NfbWF4Cisr ICAgICAgICAmJiBtZW1hZGRyICsgbGVuIDw9IGItPmFkZHJlc3MKKysJCQkgICAgLSBicF9sb2Nh dGlvbl9wbGFjZWRfYWRkcmVzc19iZWZvcmVfYWRkcmVzc19tYXgpCisrICAgICAgYnJlYWs7Cisr CisrICAgIGlmICghYnBfbG9jYXRpb25faGFzX3NoYWRvdyAoYikpCisgICAgICAgY29udGludWU7 CisrCisgICAgIC8qIEFkZHJlc3NlcyBhbmQgbGVuZ3RoIG9mIHRoZSBwYXJ0IG9mIHRoZSBicmVh a3BvaW50IHRoYXQKKyAgICAgICAgd2UgbmVlZCB0byBjb3B5LiAgKi8KKyAgICAgYnBfYWRkciA9 IGItPnRhcmdldF9pbmZvLnBsYWNlZF9hZGRyZXNzOworICAgICBicF9zaXplID0gYi0+dGFyZ2V0 X2luZm8uc2hhZG93X2xlbjsKKy0gICAgaWYgKGJwX3NpemUgPT0gMCkKKy0gICAgICAvKiBicCBp c24ndCB2YWxpZCwgb3IgZG9lc24ndCBzaGFkb3cgbWVtb3J5LiAgKi8KKy0gICAgICBjb250aW51 ZTsKKyAKKyAgICAgaWYgKGJwX2FkZHIgKyBicF9zaXplIDw9IG1lbWFkZHIpCisgICAgICAgLyog VGhlIGJyZWFrcG9pbnQgaXMgZW50aXJlbHkgYmVmb3JlIHRoZSBjaHVuayBvZiBtZW1vcnkgd2UK K0BAIC05MDksNyArOTk0LDcgQEAgdXBkYXRlX3dhdGNocG9pbnQgKHN0cnVjdCBicmVha3BvaW50 ICpiLCBpbnQgcmVwYXJzZSkKKyAgIHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jOworICAgYnBzdGF0 IGJzOworIAorLSAgLyogV2UgZG9uJ3QgZnJlZSBsb2NhdGlvbnMuICBUaGV5IGFyZSBzdG9yZWQg aW4gYnBfbG9jYXRpb25fY2hhaW4gYW5kCisrICAvKiBXZSBkb24ndCBmcmVlIGxvY2F0aW9ucy4g IFRoZXkgYXJlIHN0b3JlZCBpbiBicF9sb2NhdGlvbiBhcnJheSBhbmQKKyAgICAgIHVwZGF0ZV9n bG9iYWxfbG9jYXRpb25zIHdpbGwgZXZlbnR1YWxseSBkZWxldGUgdGhlbSBhbmQgcmVtb3ZlCisg ICAgICBicmVha3BvaW50cyBpZiBuZWVkZWQuICAqLworICAgYi0+bG9jID0gTlVMTDsKK0BAIC0x MzQ0LDcgKzE0MjksNyBAQCBzdGF0aWMgdm9pZAorIGluc2VydF9icmVha3BvaW50X2xvY2F0aW9u cyAodm9pZCkKKyB7CisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0OworLSAgc3RydWN0IGJwX2xv Y2F0aW9uICpiLCAqdGVtcDsKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgKipicF90bXA7Cisg ICBpbnQgZXJyb3IgPSAwOworICAgaW50IHZhbCA9IDA7CisgICBpbnQgZGlzYWJsZWRfYnJlYWtz ID0gMDsKK0BAIC0xMzU3LDcgKzE0NDIsNyBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMg KHZvaWQpCisgICAgICB0aGVyZSB3YXMgYW4gZXJyb3IuICAqLworICAgZnByaW50Zl91bmZpbHRl cmVkICh0bXBfZXJyb3Jfc3RyZWFtLCAiV2FybmluZzpcbiIpOworIAkKKy0gIEFMTF9CUF9MT0NB VElPTlNfU0FGRSAoYiwgdGVtcCkKKysgIEFMTF9CUF9MT0NBVElPTlMgKGIsIGJwX3RtcCkKKyAg ICAgeworICAgICAgIGlmICghc2hvdWxkX2JlX2luc2VydGVkIChiKSB8fCBiLT5pbnNlcnRlZCkK KyAJY29udGludWU7CitAQCAtMTQzMSwxMCArMTUxNiwxMCBAQCBZb3UgbWF5IGhhdmUgcmVxdWVz dGVkIHRvbyBtYW55IGhhcmR3YXJlIGJyZWFrcG9pbnRzL3dhdGNocG9pbnRzLlxuIik7CisgaW50 CisgcmVtb3ZlX2JyZWFrcG9pbnRzICh2b2lkKQorIHsKKy0gIHN0cnVjdCBicF9sb2NhdGlvbiAq YjsKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgKipicF90bXA7CisgICBpbnQgdmFsID0gMDsK KyAKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGIpCisrICBBTExfQlBfTE9DQVRJT05TIChiLCBicF90 bXApCisgICB7CisgICAgIGlmIChiLT5pbnNlcnRlZCkKKyAgICAgICB2YWwgfD0gcmVtb3ZlX2Jy ZWFrcG9pbnQgKGIsIG1hcmtfdW5pbnNlcnRlZCk7CitAQCAtMTQ0NSwxMCArMTUzMCwxMCBAQCBy ZW1vdmVfYnJlYWtwb2ludHMgKHZvaWQpCisgaW50CisgcmVtb3ZlX2h3X3dhdGNocG9pbnRzICh2 b2lkKQorIHsKKy0gIHN0cnVjdCBicF9sb2NhdGlvbiAqYjsKKysgIHN0cnVjdCBicF9sb2NhdGlv biAqYiwgKipicF90bXA7CisgICBpbnQgdmFsID0gMDsKKyAKKy0gIEFMTF9CUF9MT0NBVElPTlMg KGIpCisrICBBTExfQlBfTE9DQVRJT05TIChiLCBicF90bXApCisgICB7CisgICAgIGlmIChiLT5p bnNlcnRlZCAmJiBiLT5sb2NfdHlwZSA9PSBicF9sb2NfaGFyZHdhcmVfd2F0Y2hwb2ludCkKKyAg ICAgICB2YWwgfD0gcmVtb3ZlX2JyZWFrcG9pbnQgKGIsIG1hcmtfdW5pbnNlcnRlZCk7CitAQCAt MTQ1OSw3ICsxNTQ0LDcgQEAgcmVtb3ZlX2h3X3dhdGNocG9pbnRzICh2b2lkKQorIGludAorIHJl YXR0YWNoX2JyZWFrcG9pbnRzIChpbnQgcGlkKQorIHsKKy0gIHN0cnVjdCBicF9sb2NhdGlvbiAq YjsKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgKipicF90bXA7CisgICBpbnQgdmFsOworICAg c3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbiA9IHNhdmVfaW5mZXJpb3JfcHRpZCAoKTsKKyAgIHN0 cnVjdCB1aV9maWxlICp0bXBfZXJyb3Jfc3RyZWFtID0gbWVtX2ZpbGVvcGVuICgpOworQEAgLTE0 NjgsNyArMTU1Myw3IEBAIHJlYXR0YWNoX2JyZWFrcG9pbnRzIChpbnQgcGlkKQorICAgbWFrZV9j bGVhbnVwX3VpX2ZpbGVfZGVsZXRlICh0bXBfZXJyb3Jfc3RyZWFtKTsKKyAKKyAgIGluZmVyaW9y X3B0aWQgPSBwaWRfdG9fcHRpZCAocGlkKTsKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGIpCisrICBB TExfQlBfTE9DQVRJT05TIChiLCBicF90bXApCisgICB7CisgICAgIGlmIChiLT5pbnNlcnRlZCkK KyAgICAgICB7CitAQCAtMTU2NiwxMiArMTY1MSw0MiBAQCBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJf YnJlYWtwb2ludCAoY2hhciAqZnVuY19uYW1lKQorICAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9s aXN0ICgxKTsKKyB9CisgCisrLyogSW5zdGFsbCBhIG1hc3RlciBicmVha3BvaW50IG9uIHRoZSB1 bndpbmRlcidzIGRlYnVnIGhvb2suICAqLworKworK3ZvaWQKKytjcmVhdGVfZXhjZXB0aW9uX21h c3Rlcl9icmVha3BvaW50ICh2b2lkKQorK3sKKysgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOwor KworKyAgQUxMX09CSkZJTEVTIChvYmpmaWxlKQorKyAgICB7CisrICAgICAgc3RydWN0IG1pbmlt YWxfc3ltYm9sICpkZWJ1Z19ob29rOworKworKyAgICAgIGRlYnVnX2hvb2sgPSBsb29rdXBfbWlu aW1hbF9zeW1ib2xfdGV4dCAoIl9VbndpbmRfRGVidWdIb29rIiwgb2JqZmlsZSk7CisrICAgICAg aWYgKGRlYnVnX2hvb2sgIT0gTlVMTCkKKysJeworKwkgIENPUkVfQUREUiBwYzsKKysJICBzdHJ1 Y3QgYnJlYWtwb2ludCAqYjsKKysKKysJICBwYyA9IGZpbmRfZnVuY3Rpb25fc3RhcnRfcGMgKGdl dF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpLAorKwkJCQkgICAgICAgU1lNQk9MX1ZBTFVFX0FERFJF U1MgKGRlYnVnX2hvb2spLAorKwkJCQkgICAgICAgU1lNQk9MX09CSl9TRUNUSU9OIChkZWJ1Z19o b29rKSk7CisrCSAgYiA9IGNyZWF0ZV9pbnRlcm5hbF9icmVha3BvaW50IChnZXRfb2JqZmlsZV9h cmNoIChvYmpmaWxlKSwKKysJCQkJCSAgcGMsIGJwX2V4Y2VwdGlvbl9tYXN0ZXIpOworKwkgIGIt PmFkZHJfc3RyaW5nID0geHN0cmR1cCAoIl9VbndpbmRfRGVidWdIb29rIik7CisrCSAgYi0+ZW5h YmxlX3N0YXRlID0gYnBfZGlzYWJsZWQ7CisrCX0KKysgICAgfQorKworKyAgdXBkYXRlX2dsb2Jh bF9sb2NhdGlvbl9saXN0ICgxKTsKKyt9CisrCisgdm9pZAorIHVwZGF0ZV9icmVha3BvaW50c19h ZnRlcl9leGVjICh2b2lkKQorIHsKKyAgIHN0cnVjdCBicmVha3BvaW50ICpiOworICAgc3RydWN0 IGJyZWFrcG9pbnQgKnRlbXA7CistICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJwbG9jOworKyAgc3Ry dWN0IGJwX2xvY2F0aW9uICpicGxvYywgKipicGxvY3BfdG1wOworIAorICAgLyogV2UncmUgYWJv dXQgdG8gZGVsZXRlIGJyZWFrcG9pbnRzIGZyb20gR0RCJ3MgbGlzdHMuICBJZiB0aGUKKyAgICAg IElOU0VSVEVEIGZsYWcgaXMgdHJ1ZSwgR0RCIHdpbGwgdHJ5IHRvIGxpZnQgdGhlIGJyZWFrcG9p bnRzIGJ5CitAQCAtMTU4MSw3ICsxNjk2LDcgQEAgdXBkYXRlX2JyZWFrcG9pbnRzX2FmdGVyX2V4 ZWMgKHZvaWQpCisgICAgICBicmVha3BvaW50cyBvdXQgYXMgc29vbiBhcyBpdCBkZXRlY3RzIGFu IGV4ZWMuICBXZSBkb24ndCBkbyB0aGF0CisgICAgICBoZXJlIGluc3RlYWQsIGJlY2F1c2UgdGhl cmUgbWF5IGJlIG90aGVyIGF0dGVtcHRzIHRvIGRlbGV0ZQorICAgICAgYnJlYWtwb2ludHMgYWZ0 ZXIgZGV0ZWN0aW5nIGFuIGV4ZWMgYW5kIGJlZm9yZSByZWFjaGluZyBoZXJlLiAgKi8KKy0gIEFM TF9CUF9MT0NBVElPTlMgKGJwbG9jKQorKyAgQUxMX0JQX0xPQ0FUSU9OUyAoYnBsb2MsIGJwbG9j cF90bXApCisgICAgIGdkYl9hc3NlcnQgKCFicGxvYy0+aW5zZXJ0ZWQpOworIAorICAgQUxMX0JS RUFLUE9JTlRTX1NBRkUgKGIsIHRlbXApCitAQCAtMTYwMyw3ICsxNzE4LDcgQEAgdXBkYXRlX2Jy ZWFrcG9pbnRzX2FmdGVyX2V4ZWMgKHZvaWQpCisgICAgIC8qIFRocmVhZCBldmVudCBicmVha3Bv aW50cyBtdXN0IGJlIHNldCBhbmV3IGFmdGVyIGFuIGV4ZWMoKSwKKyAgICAgICAgYXMgbXVzdCBv dmVybGF5IGV2ZW50IGFuZCBsb25nam1wIG1hc3RlciBicmVha3BvaW50cy4gICovCisgICAgIGlm IChiLT50eXBlID09IGJwX3RocmVhZF9ldmVudCB8fCBiLT50eXBlID09IGJwX292ZXJsYXlfZXZl bnQKKy0JfHwgYi0+dHlwZSA9PSBicF9sb25nam1wX21hc3RlcikKKysJfHwgYi0+dHlwZSA9PSBi cF9sb25nam1wX21hc3RlciB8fCBiLT50eXBlID09IGJwX2V4Y2VwdGlvbl9tYXN0ZXIpCisgICAg ICAgeworIAlkZWxldGVfYnJlYWtwb2ludCAoYik7CisgCWNvbnRpbnVlOworQEAgLTE2MTgsNyAr MTczMyw4IEBAIHVwZGF0ZV9icmVha3BvaW50c19hZnRlcl9leGVjICh2b2lkKQorIAorICAgICAv KiBMb25nam1wIGFuZCBsb25nam1wLXJlc3VtZSBicmVha3BvaW50cyBhcmUgYWxzbyBtZWFuaW5n bGVzcworICAgICAgICBhZnRlciBhbiBleGVjLiAgKi8KKy0gICAgaWYgKGItPnR5cGUgPT0gYnBf bG9uZ2ptcCB8fCBiLT50eXBlID09IGJwX2xvbmdqbXBfcmVzdW1lKQorKyAgICBpZiAoYi0+dHlw ZSA9PSBicF9sb25nam1wIHx8IGItPnR5cGUgPT0gYnBfbG9uZ2ptcF9yZXN1bWUKKysJfHwgYi0+ dHlwZSA9PSBicF9leGNlcHRpb24gfHwgYi0+dHlwZSA9PSBicF9leGNlcHRpb25fcmVzdW1lKQor ICAgICAgIHsKKyAJZGVsZXRlX2JyZWFrcG9pbnQgKGIpOworIAljb250aW51ZTsKK0BAIC0xNjc5 LDEyICsxNzk1LDEzIEBAIHVwZGF0ZV9icmVha3BvaW50c19hZnRlcl9leGVjICh2b2lkKQorICAg Y3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJfbG9uZ2ptcCIpOworICAgY3JlYXRl X2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJzaWdsb25nam1wIik7CisgICBjcmVhdGVfbG9u Z2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAoIl9zaWdsb25nam1wIik7CisrICBjcmVhdGVfZXhjZXB0 aW9uX21hc3Rlcl9icmVha3BvaW50ICgpOworIH0KKyAKKyBpbnQKKyBkZXRhY2hfYnJlYWtwb2lu dHMgKGludCBwaWQpCisgeworLSAgc3RydWN0IGJwX2xvY2F0aW9uICpiOworKyAgc3RydWN0IGJw X2xvY2F0aW9uICpiLCAqKmJwX3RtcDsKKyAgIGludCB2YWwgPSAwOworICAgc3RydWN0IGNsZWFu dXAgKm9sZF9jaGFpbiA9IHNhdmVfaW5mZXJpb3JfcHRpZCAoKTsKKyAKK0BAIC0xNjkzLDExICsx ODEwLDEyIEBAIGRldGFjaF9icmVha3BvaW50cyAoaW50IHBpZCkKKyAKKyAgIC8qIFNldCBpbmZl cmlvcl9wdGlkOyByZW1vdmVfYnJlYWtwb2ludCB1c2VzIHRoaXMgZ2xvYmFsLiAgKi8KKyAgIGlu ZmVyaW9yX3B0aWQgPSBwaWRfdG9fcHRpZCAocGlkKTsKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGIp CisrICBBTExfQlBfTE9DQVRJT05TIChiLCBicF90bXApCisgICB7CiAgICAgIGlmIChiLT5pbnNl cnRlZCkKICAgICAgICB2YWwgfD0gcmVtb3ZlX2JyZWFrcG9pbnQgKGIsIG1hcmtfaW5zZXJ0ZWQp OwogICAgfQpAQCAtNTgxLDcgKzkxNCw3IEBAIGluZGV4IGYzOTQwZTEuLjIzNDlmYmMgMTAwNjQ0 CiAgICBkb19jbGVhbnVwcyAob2xkX2NoYWluKTsKICAgIHJldHVybiB2YWw7CiAgfQotQEAgLTE3 ODIsMTIgKzE3OTYsMTQgQEAgcmVtb3ZlX2JyZWFrcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAq YiwgaW5zZXJ0aW9uX3N0YXRlX3QgaXMpCitAQCAtMTc5MCwxMiArMTkwOCwxNCBAQCByZW1vdmVf YnJlYWtwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpiLCBpbnNlcnRpb25fc3RhdGVfdCBpcykK ICAJcmV0dXJuIHZhbDsKICAgICAgICBiLT5pbnNlcnRlZCA9IChpcyA9PSBtYXJrX2luc2VydGVk KTsKICAgICAgfQpAQCAtNTk4LDcgKzkzMSwxMjAgQEAgaW5kZXggZjM5NDBlMS4uMjM0OWZiYyAx MDA2NDQKICAgICAgICB2YWwgPSB0YXJnZXRfcmVtb3ZlX3dhdGNocG9pbnQgKGItPmFkZHJlc3Ms IGItPmxlbmd0aCwgCiAgCQkJCSAgICAgIGItPndhdGNocG9pbnRfdHlwZSk7CiAgCi1AQCAtMjk2 MSw4ICsyOTc3LDEyIEBAIGJwc3RhdF9jaGVja19sb2NhdGlvbiAoY29uc3Qgc3RydWN0IGJwX2xv Y2F0aW9uICpibCwgQ09SRV9BRERSIGJwX2FkZHIpCitAQCAtMTgyNCw5ICsxOTQ0LDkgQEAgcmVt b3ZlX2JyZWFrcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgaW5zZXJ0aW9uX3N0YXRlX3Qg aXMpCisgdm9pZAorIG1hcmtfYnJlYWtwb2ludHNfb3V0ICh2b2lkKQorIHsKKy0gIHN0cnVjdCBi cF9sb2NhdGlvbiAqYnB0OworKyAgc3RydWN0IGJwX2xvY2F0aW9uICpicHQsICoqYnB0cF90bXA7 CisgCistICBBTExfQlBfTE9DQVRJT05TIChicHQpCisrICBBTExfQlBfTE9DQVRJT05TIChicHQs IGJwdHBfdG1wKQorICAgICBicHQtPmluc2VydGVkID0gMDsKKyB9CisgCitAQCAtMTg0Niw3ICsx OTY2LDcgQEAgdm9pZAorIGJyZWFrcG9pbnRfaW5pdF9pbmZlcmlvciAoZW51bSBpbmZfY29udGV4 dCBjb250ZXh0KQorIHsKKyAgIHN0cnVjdCBicmVha3BvaW50ICpiLCAqdGVtcDsKKy0gIHN0cnVj dCBicF9sb2NhdGlvbiAqYnB0OworKyAgc3RydWN0IGJwX2xvY2F0aW9uICpicHQsICoqYnB0cF90 bXA7CisgICBpbnQgaXg7CisgCisgICAvKiBJZiBicmVha3BvaW50IGxvY2F0aW9ucyBhcmUgc2hh cmVkIGFjcm9zcyBwcm9jZXNzZXMsIHRoZW4gdGhlcmUncworQEAgLTE4NTQsNyArMTk3NCw3IEBA IGJyZWFrcG9pbnRfaW5pdF9pbmZlcmlvciAoZW51bSBpbmZfY29udGV4dCBjb250ZXh0KQorICAg aWYgKGdkYmFyY2hfaGFzX2dsb2JhbF9icmVha3BvaW50cyAodGFyZ2V0X2dkYmFyY2gpKQorICAg ICByZXR1cm47CisgCistICBBTExfQlBfTE9DQVRJT05TIChicHQpCisrICBBTExfQlBfTE9DQVRJ T05TIChicHQsIGJwdHBfdG1wKQorICAgICBpZiAoYnB0LT5vd25lci0+ZW5hYmxlX3N0YXRlICE9 IGJwX3Blcm1hbmVudCkKKyAgICAgICBicHQtPmluc2VydGVkID0gMDsKKyAKK0BAIC0xOTE1LDEw ICsyMDM1LDEwIEBAIGJyZWFrcG9pbnRfaW5pdF9pbmZlcmlvciAoZW51bSBpbmZfY29udGV4dCBj b250ZXh0KQorIGVudW0gYnJlYWtwb2ludF9oZXJlCisgYnJlYWtwb2ludF9oZXJlX3AgKENPUkVf QUREUiBwYykKKyB7CistICBjb25zdCBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJwdDsKKysgIHN0cnVj dCBicF9sb2NhdGlvbiAqYnB0LCAqKmJwdHBfdG1wOworICAgaW50IGFueV9icmVha3BvaW50X2hl cmUgPSAwOworIAorLSAgQUxMX0JQX0xPQ0FUSU9OUyAoYnB0KQorKyAgQUxMX0JQX0xPQ0FUSU9O UyAoYnB0LCBicHRwX3RtcCkKKyAgICAgeworICAgICAgIGlmIChicHQtPmxvY190eXBlICE9IGJw X2xvY19zb2Z0d2FyZV9icmVha3BvaW50CisgCSAgJiYgYnB0LT5sb2NfdHlwZSAhPSBicF9sb2Nf aGFyZHdhcmVfYnJlYWtwb2ludCkKK0BAIC0xOTU4LDE2ICsyMDc4LDE2IEBAIG1vcmlidW5kX2Jy ZWFrcG9pbnRfaGVyZV9wIChDT1JFX0FERFIgcGMpCisgfQorIAorIC8qIFJldHVybnMgbm9uLXpl cm8gaWYgdGhlcmUncyBhIGJyZWFrcG9pbnQgaW5zZXJ0ZWQgYXQgUEMsIHdoaWNoIGlzCistICAg aW5zZXJ0ZWQgdXNpbmcgcmVndWxhciBicmVha3BvaW50X2NoYWluL2JwX2xvY2F0aW9uX2NoYWlu IG1lY2hhbmlzbS4KKysgICBpbnNlcnRlZCB1c2luZyByZWd1bGFyIGJyZWFrcG9pbnRfY2hhaW4g LyBicF9sb2NhdGlvbiBhcnJheSBtZWNoYW5pc20uCisgICAgVGhpcyBkb2VzIG5vdCBjaGVjayBm b3Igc2luZ2xlLXN0ZXAgYnJlYWtwb2ludHMsIHdoaWNoIGFyZQorICAgIGluc2VydGVkIGFuZCBy ZW1vdmVkIHVzaW5nIGRpcmVjdCB0YXJnZXQgbWFuaXB1bGF0aW9uLiAgKi8KKyAKKyBpbnQKKyBy ZWd1bGFyX2JyZWFrcG9pbnRfaW5zZXJ0ZWRfaGVyZV9wIChDT1JFX0FERFIgcGMpCisgeworLSAg Y29uc3Qgc3RydWN0IGJwX2xvY2F0aW9uICpicHQ7CisrICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJw dCwgKipicHRwX3RtcDsKKyAKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGJwdCkKKysgIEFMTF9CUF9M T0NBVElPTlMgKGJwdCwgYnB0cF90bXApCisgICAgIHsKKyAgICAgICBpZiAoYnB0LT5sb2NfdHlw ZSAhPSBicF9sb2Nfc29mdHdhcmVfYnJlYWtwb2ludAorIAkgICYmIGJwdC0+bG9jX3R5cGUgIT0g YnBfbG9jX2hhcmR3YXJlX2JyZWFrcG9pbnQpCitAQCAtMjAwOCwxMCArMjEyOCwxMCBAQCBicmVh a3BvaW50X2luc2VydGVkX2hlcmVfcCAoQ09SRV9BRERSIHBjKQorIGludAorIHNvZnR3YXJlX2Jy ZWFrcG9pbnRfaW5zZXJ0ZWRfaGVyZV9wIChDT1JFX0FERFIgcGMpCisgeworLSAgY29uc3Qgc3Ry dWN0IGJwX2xvY2F0aW9uICpicHQ7CisrICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJwdCwgKipicHRw X3RtcDsKKyAgIGludCBhbnlfYnJlYWtwb2ludF9oZXJlID0gMDsKKyAKKy0gIEFMTF9CUF9MT0NB VElPTlMgKGJwdCkKKysgIEFMTF9CUF9MT0NBVElPTlMgKGJwdCwgYnB0cF90bXApCisgICAgIHsK KyAgICAgICBpZiAoYnB0LT5sb2NfdHlwZSAhPSBicF9sb2Nfc29mdHdhcmVfYnJlYWtwb2ludCkK KyAJY29udGludWU7CitAQCAtMjA0MSwxMiArMjE2MSwxMiBAQCBzb2Z0d2FyZV9icmVha3BvaW50 X2luc2VydGVkX2hlcmVfcCAoQ09SRV9BRERSIHBjKQorIGludAorIGJyZWFrcG9pbnRfdGhyZWFk X21hdGNoIChDT1JFX0FERFIgcGMsIHB0aWRfdCBwdGlkKQorIHsKKy0gIGNvbnN0IHN0cnVjdCBi cF9sb2NhdGlvbiAqYnB0OworKyAgc3RydWN0IGJwX2xvY2F0aW9uICpicHQsICoqYnB0cF90bXA7 CisgICAvKiBUaGUgdGhyZWFkIGFuZCB0YXNrIElEcyBhc3NvY2lhdGVkIHRvIFBUSUQsIGNvbXB1 dGVkIGxhemlseS4gICovCisgICBpbnQgdGhyZWFkID0gLTE7CisgICBpbnQgdGFzayA9IDA7Cisg ICAKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGJwdCkKKysgIEFMTF9CUF9MT0NBVElPTlMgKGJwdCwg YnB0cF90bXApCisgICAgIHsKKyAgICAgICBpZiAoYnB0LT5sb2NfdHlwZSAhPSBicF9sb2Nfc29m dHdhcmVfYnJlYWtwb2ludAorIAkgICYmIGJwdC0+bG9jX3R5cGUgIT0gYnBfbG9jX2hhcmR3YXJl X2JyZWFrcG9pbnQpCitAQCAtMjUwMCw2ICsyNjIwLDEyIEBAIHByaW50X2l0X3R5cGljYWwgKGJw c3RhdCBicykKKyAgICAgICByZXN1bHQgPSBQUklOVF9OT1RISU5HOworICAgICAgIGJyZWFrOwor IAorKyAgICBjYXNlIGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CisrICAgICAgLyogVGhlc2Ugc2hvdWxk IG5ldmVyIGJlIGVuYWJsZWQuICAqLworKyAgICAgIHByaW50Zl9maWx0ZXJlZCAoXygiRXhjZXB0 aW9uIE1hc3RlciBCcmVha3BvaW50OiBnZGIgc2hvdWxkIG5vdCBzdG9wIVxuIikpOworKyAgICAg IHJlc3VsdCA9IFBSSU5UX05PVEhJTkc7CisrICAgICAgYnJlYWs7CisrCisgICAgIGNhc2UgYnBf d2F0Y2hwb2ludDoKKyAgICAgY2FzZSBicF9oYXJkd2FyZV93YXRjaHBvaW50OgorICAgICAgIGFu bm90YXRlX3dhdGNocG9pbnQgKGItPm51bWJlcik7CitAQCAtMjU4Nyw2ICsyNzEzLDggQEAgcHJp bnRfaXRfdHlwaWNhbCAoYnBzdGF0IGJzKQorICAgICBjYXNlIGJwX25vbmU6CisgICAgIGNhc2Ug YnBfbG9uZ2ptcDoKKyAgICAgY2FzZSBicF9sb25nam1wX3Jlc3VtZToKKysgICAgY2FzZSBicF9l eGNlcHRpb246CisrICAgIGNhc2UgYnBfZXhjZXB0aW9uX3Jlc3VtZToKKyAgICAgY2FzZSBicF9z dGVwX3Jlc3VtZToKKyAgICAgY2FzZSBicF93YXRjaHBvaW50X3Njb3BlOgorICAgICBjYXNlIGJw X2NhbGxfZHVtbXk6CitAQCAtMjk3MCw4ICszMDk4LDEyIEBAIGJwc3RhdF9jaGVja19sb2NhdGlv biAoY29uc3Qgc3RydWN0IGJwX2xvY2F0aW9uICpibCwgQ09SRV9BRERSIGJwX2FkZHIpCiAgCiAg LyogSWYgQlMgcmVmZXJzIHRvIGEgd2F0Y2hwb2ludCwgZGV0ZXJtaW5lIGlmIHRoZSB3YXRjaGVk IHZhbHVlcwogICAgIGhhcyBhY3R1YWxseSBjaGFuZ2VkLCBhbmQgd2Ugc2hvdWxkIHN0b3AuICBJ ZiBub3QsIHNldCBCUy0+c3RvcApAQCAtNjEzLDcgKzEwNTksNyBAQCBpbmRleCBmMzk0MGUxLi4y MzQ5ZmJjIDEwMDY0NAogIGJwc3RhdF9jaGVja193YXRjaHBvaW50IChicHN0YXQgYnMpCiAgewog ICAgY29uc3Qgc3RydWN0IGJwX2xvY2F0aW9uICpibCA9IGJzLT5icmVha3BvaW50X2F0OwotQEAg LTMwNTEsOCArMzA3MSwxMCBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQor QEAgLTMwNjAsOCArMzE5MiwxMCBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJz KQogIAkgICAgIGFueXRoaW5nIGZvciB0aGlzIHdhdGNocG9pbnQuICAqLwogIAkgIGJzLT5wcmlu dF9pdCA9IHByaW50X2l0X25vb3A7CiAgCSAgYnMtPnN0b3AgPSAwOwpAQCAtNjI0LDE2ICsxMDcw LDMwIEBAIGluZGV4IGYzOTQwZTEuLjIzNDlmYmMgMTAwNjQ0CiAgfQogIAogIAotQEAgLTMxNTYs NiArMzE3OCw4IEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9BRERSIGJwX2FkZHIsIHB0aWRf dCBwdGlkKQorQEAgLTMxNTQsMTcgKzMyODgsMTkgQEAgYnBzdGF0CisgYnBzdGF0X3N0b3Bfc3Rh dHVzIChDT1JFX0FERFIgYnBfYWRkciwgcHRpZF90IHB0aWQpCisgeworICAgc3RydWN0IGJyZWFr cG9pbnQgKmIgPSBOVUxMOworLSAgY29uc3Qgc3RydWN0IGJwX2xvY2F0aW9uICpibDsKKysgIHN0 cnVjdCBicF9sb2NhdGlvbiAqYmwsICoqYmxwX3RtcDsKKyAgIHN0cnVjdCBicF9sb2NhdGlvbiAq bG9jOworICAgLyogUm9vdCBvZiB0aGUgY2hhaW4gb2YgYnBzdGF0J3MgKi8KKyAgIHN0cnVjdCBi cHN0YXRzIHJvb3RfYnNbMV07CisgICAvKiBQb2ludGVyIHRvIHRoZSBsYXN0IHRoaW5nIGluIHRo ZSBjaGFpbiBjdXJyZW50bHkuICAqLworICAgYnBzdGF0IGJzID0gcm9vdF9iczsKKyAgIGludCBp eDsKKy0gIGludCBuZWVkX3JlbW92ZV9pbnNlcnQ7CisrICBpbnQgbmVlZF9yZW1vdmVfaW5zZXJ0 LCB1cGRhdGVfbG9jYXRpb25zID0gMDsKICAKLSAgIEFMTF9CUF9MT0NBVElPTlMgKGJsKQorLSAg QUxMX0JQX0xPQ0FUSU9OUyAoYmwpCisrICBBTExfQlBfTE9DQVRJT05TIChibCwgYmxwX3RtcCkK ICAgIHsKICsgICAgYnBzdGF0IGJzX3ByZXYgPSBiczsKICsKICAgICAgYiA9IGJsLT5vd25lcjsK ICAgICAgZ2RiX2Fzc2VydCAoYik7CiAgICAgIGlmICghYnJlYWtwb2ludF9lbmFibGVkIChiKSAm JiBiLT5lbmFibGVfc3RhdGUgIT0gYnBfcGVybWFuZW50KQotQEAgLTMxNzYsNiArMzIwMCw3IEBA IGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9BRERSIGJwX2FkZHIsIHB0aWRfdCBwdGlkKQorQEAg LTMxODUsNiArMzMyMSw3IEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9BRERSIGJwX2FkZHIs IHB0aWRfdCBwdGlkKQogICAgICAvKiBDb21lIGhlcmUgaWYgaXQncyBhIHdhdGNocG9pbnQsIG9y IGlmIHRoZSBicmVhayBhZGRyZXNzIG1hdGNoZXMgKi8KICAKICAgICAgYnMgPSBicHN0YXRfYWxs b2MgKGJsLCBicyk7CS8qIEFsbG9jIGEgYnBzdGF0IHRvIGV4cGxhaW4gc3RvcCAqLwpAQCAtNjQx LDcgKzExMDEsNyBAQCBpbmRleCBmMzk0MGUxLi4yMzQ5ZmJjIDEwMDY0NAogIAogICAgICAvKiBB c3N1bWUgd2Ugc3RvcC4gIFNob3VsZCB3ZSBmaW5kIHdhdGNocG9pbnQgdGhhdCBpcyBub3QgYWN0 dWFsbHkKICAgICAgICAgdHJpZ2dlcmVkLCBvciBpZiBjb25kaXRpb24gb2YgYnJlYWtwb2ludCBp cyBmYWxzZSwgd2UnbGwgcmVzZXQKLUBAIC0zMTgzLDkgKzMyMDgsMTggQEAgYnBzdGF0X3N0b3Bf c3RhdHVzIChDT1JFX0FERFIgYnBfYWRkciwgcHRpZF90IHB0aWQpCitAQCAtMzE5MiwxMiArMzMy OSwyMSBAQCBicHN0YXRfc3RvcF9zdGF0dXMgKENPUkVfQUREUiBicF9hZGRyLCBwdGlkX3QgcHRp ZCkKICAgICAgYnMtPnN0b3AgPSAxOwogICAgICBicy0+cHJpbnQgPSAxOwogIApAQCAtNjYyLDEx MSArMTEyMiw4NDUgQEAgaW5kZXggZjM5NDBlMS4uMjM0OWZiYyAxMDA2NDQKICsgICAgICB9CiAg CiAgICAgIGlmIChiLT50eXBlID09IGJwX3RocmVhZF9ldmVudCB8fCBiLT50eXBlID09IGJwX292 ZXJsYXlfZXZlbnQKLSAJfHwgYi0+dHlwZSA9PSBicF9sb25nam1wX21hc3RlcikKLUBAIC04ODQz LDYgKzg4NzcsMjIgQEAgYWxsX3RyYWNlcG9pbnRzICgpCi0gICByZXR1cm4gdHBfdmVjOwotIH0K Ky0JfHwgYi0+dHlwZSA9PSBicF9sb25nam1wX21hc3RlcikKKysJfHwgYi0+dHlwZSA9PSBicF9s b25nam1wX21hc3RlciB8fCBiLT50eXBlID09IGJwX2V4Y2VwdGlvbl9tYXN0ZXIpCisgICAgICAg LyogV2UgZG8gbm90IHN0b3AgZm9yIHRoZXNlLiAgKi8KKyAgICAgICBicy0+c3RvcCA9IDA7Cisg ICAgIGVsc2UKK0BAIC0zMjA1LDE0ICszMzUxLDE1IEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09S RV9BRERSIGJwX2FkZHIsIHB0aWRfdCBwdGlkKQorICAgCisgICAgIGlmIChicy0+c3RvcCkKKyAg ICAgICB7CistCSsrKGItPmhpdF9jb3VudCk7CisrCWlmIChiLT5lbmFibGVfc3RhdGUgIT0gYnBf ZGlzYWJsZWQpCisrCSAgKysoYi0+aGl0X2NvdW50KTsKICAKLSsvKiBDYWxsIHR5cGVfbWFya191 c2VkIGZvciBhbnkgVFlQRXMgcmVmZXJlbmNlZCBmcm9tIHRoaXMgR0RCIHNvdXJjZSBmaWxlLiAg Ki8KLSsKLStzdGF0aWMgdm9pZAotK2JyZWFrcG9pbnRfdHlwZXNfbWFya191c2VkICh2b2lkKQot K3sKLSsgIHN0cnVjdCBicmVha3BvaW50ICpiOwotKwotKyAgQUxMX0JSRUFLUE9JTlRTIChiKQot KyAgICB7Ci0rICAgICAgaWYgKGItPmV4cCkKLSsJZXhwX3R5cGVzX21hcmtfdXNlZCAoYi0+ZXhw KTsKLSsgICAgICBpZiAoYi0+dmFsKQotKwl0eXBlX21hcmtfdXNlZCAodmFsdWVfdHlwZSAoYi0+ dmFsKSk7Ci0rICAgIH0KLSt9CisgCS8qIFdlIHdpbGwgc3RvcCBoZXJlICovCisgCWlmIChiLT5k aXNwb3NpdGlvbiA9PSBkaXNwX2Rpc2FibGUpCisgCSAgeworIAkgICAgaWYgKGItPmVuYWJsZV9z dGF0ZSAhPSBicF9wZXJtYW5lbnQpCisgCSAgICAgIGItPmVuYWJsZV9zdGF0ZSA9IGJwX2Rpc2Fi bGVkOworLQkgICAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0ICgwKTsKKysJICAgIHVwZGF0 ZV9sb2NhdGlvbnMgPSAxOworIAkgIH0KKyAJaWYgKGItPnNpbGVudCkKKyAJICBicy0+cHJpbnQg PSAwOworQEAgLTMyMzIsNiArMzM3OSwxMCBAQCBicHN0YXRfc3RvcF9zdGF0dXMgKENPUkVfQURE UiBicF9hZGRyLCBwdGlkX3QgcHRpZCkKKyAgICAgICBicy0+cHJpbnRfaXQgPSBwcmludF9pdF9u b29wOworICAgfQorIAorKyAgLyogRGVsYXkgdGhpcyBjYWxsIHdoaWNoIHdvdWxkIGJyZWFrIHRo ZSBBTExfQlBfTE9DQVRJT05TIGl0ZXJhdGlvbiBhYm92ZS4gICovCisrICBpZiAodXBkYXRlX2xv Y2F0aW9ucykKKysgICAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0ICgwKTsKICsKLSAMCi0g LyogVGhpcyBoZWxwIHN0cmluZyBpcyB1c2VkIGZvciB0aGUgYnJlYWssIGhicmVhaywgdGJyZWFr IGFuZCB0aGJyZWFrIGNvbW1hbmRzLgotICAgIEl0IGlzIGRlZmluZWQgYXMgYSBtYWNybyB0byBw cmV2ZW50IGR1cGxpY2F0aW9uLgotQEAgLTkzNDUsNCArOTM5NSw1IEBAIGluZmVyaW9yIGluIGFs bC1zdG9wIG1vZGUsIGdkYiBiZWhhdmVzIGFzIGlmIGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9m Zi4iKSwKLSAgIGF1dG9tYXRpY19oYXJkd2FyZV9icmVha3BvaW50cyA9IDE7CisgICBmb3IgKGl4 ID0gMDsgVkVDX2l0ZXJhdGUgKGJwX2xvY2F0aW9uX3AsIG1vcmlidW5kX2xvY2F0aW9ucywgaXgs IGxvYyk7ICsraXgpCisgICAgIHsKKyAgICAgICBpZiAobG9jLT5hZGRyZXNzID09IGJwX2FkZHIp CitAQCAtMzQwOSw2ICszNTYwLDcgQEAgYnBzdGF0X3doYXQgKGJwc3RhdCBicykKKyAgIHN0cnVj dCBicHN0YXRfd2hhdCByZXR2YWw7CiAgCi0gICBvYnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJv Y2VlZCAoYnJlYWtwb2ludF9hYm91dF90b19wcm9jZWVkKTsKLSsgIG9ic2VydmVyX2F0dGFjaF9t YXJrX3VzZWQgKGJyZWFrcG9pbnRfdHlwZXNfbWFya191c2VkKTsKKyAgIHJldHZhbC5jYWxsX2R1 bW15ID0gMDsKKysgIHJldHZhbC5pc19sb25nam1wID0gMDsKKyAgIGZvciAoOyBicyAhPSBOVUxM OyBicyA9IGJzLT5uZXh0KQorICAgICB7CisgICAgICAgZW51bSBjbGFzcyBic19jbGFzcyA9IG5v X2VmZmVjdDsKK0BAIC0zNDU1LDEwICszNjA3LDE1IEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMp CisgCSAgICBic19jbGFzcyA9IG5vX2VmZmVjdDsKKyAJICBicmVhazsKKyAJY2FzZSBicF9sb25n am1wOgorKwljYXNlIGJwX2V4Y2VwdGlvbjoKKyAJICBic19jbGFzcyA9IGxvbmdfanVtcDsKKysJ ICByZXR2YWwuaXNfbG9uZ2ptcCA9IGJzLT5icmVha3BvaW50X2F0LT5vd25lci0+dHlwZSA9PSBi cF9sb25nam1wOworIAkgIGJyZWFrOworIAljYXNlIGJwX2xvbmdqbXBfcmVzdW1lOgorKwljYXNl IGJwX2V4Y2VwdGlvbl9yZXN1bWU6CisgCSAgYnNfY2xhc3MgPSBsb25nX3Jlc3VtZTsKKysJICBy ZXR2YWwuaXNfbG9uZ2ptcAorKwkgICAgPSBicy0+YnJlYWtwb2ludF9hdC0+b3duZXItPnR5cGUg PT0gYnBfbG9uZ2ptcF9yZXN1bWU7CisgCSAgYnJlYWs7CisgCWNhc2UgYnBfc3RlcF9yZXN1bWU6 CisgCSAgaWYgKGJzLT5zdG9wKQorQEAgLTM0ODEsNiArMzYzOCw3IEBAIGJwc3RhdF93aGF0IChi cHN0YXQgYnMpCisgCWNhc2UgYnBfdGhyZWFkX2V2ZW50OgorIAljYXNlIGJwX292ZXJsYXlfZXZl bnQ6CisgCWNhc2UgYnBfbG9uZ2ptcF9tYXN0ZXI6CisrCWNhc2UgYnBfZXhjZXB0aW9uX21hc3Rl cjoKKyAJICBic19jbGFzcyA9IGJwX25vc3RvcDsKKyAJICBicmVhazsKKyAJY2FzZSBicF9jYXRj aHBvaW50OgorQEAgLTM2MDIsNiArMzc2MCw4IEBAIHByaW50X29uZV9icmVha3BvaW50X2xvY2F0 aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKKyAgICAge2JwX2FjY2Vzc193YXRjaHBvaW50LCAi YWNjIHdhdGNocG9pbnQifSwKKyAgICAge2JwX2xvbmdqbXAsICJsb25nam1wIn0sCisgICAgIHti cF9sb25nam1wX3Jlc3VtZSwgImxvbmdqbXAgcmVzdW1lIn0sCisrICAgIHticF9leGNlcHRpb24s ICJleGNlcHRpb24ifSwKKysgICAge2JwX2V4Y2VwdGlvbl9yZXN1bWUsICJleGNlcHRpb24gcmVz dW1lIn0sCisgICAgIHticF9zdGVwX3Jlc3VtZSwgInN0ZXAgcmVzdW1lIn0sCisgICAgIHticF93 YXRjaHBvaW50X3Njb3BlLCAid2F0Y2hwb2ludCBzY29wZSJ9LAorICAgICB7YnBfY2FsbF9kdW1t eSwgImNhbGwgZHVtbXkifSwKK0BAIC0zNjA5LDYgKzM3NjksNyBAQCBwcmludF9vbmVfYnJlYWtw b2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCisgICAgIHticF90aHJlYWRfZXZl bnQsICJ0aHJlYWQgZXZlbnRzIn0sCisgICAgIHticF9vdmVybGF5X2V2ZW50LCAib3ZlcmxheSBl dmVudHMifSwKKyAgICAge2JwX2xvbmdqbXBfbWFzdGVyLCAibG9uZ2ptcCBtYXN0ZXIifSwKKysg ICAge2JwX2V4Y2VwdGlvbl9tYXN0ZXIsICJleGNlcHRpb24gbWFzdGVyIn0sCisgICAgIHticF9j YXRjaHBvaW50LCAiY2F0Y2hwb2ludCJ9LAorICAgICB7YnBfdHJhY2Vwb2ludCwgInRyYWNlcG9p bnQifSwKKyAgICAge2JwX2ppdF9ldmVudCwgImppdCBldmVudHMifSwKK0BAIC0zNzMyLDYgKzM4 OTMsOCBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQg KmIsCisgICAgICAgY2FzZSBicF9maW5pc2g6CisgICAgICAgY2FzZSBicF9sb25nam1wOgorICAg ICAgIGNhc2UgYnBfbG9uZ2ptcF9yZXN1bWU6CisrICAgICAgY2FzZSBicF9leGNlcHRpb246Cisr ICAgICAgY2FzZSBicF9leGNlcHRpb25fcmVzdW1lOgorICAgICAgIGNhc2UgYnBfc3RlcF9yZXN1 bWU6CisgICAgICAgY2FzZSBicF93YXRjaHBvaW50X3Njb3BlOgorICAgICAgIGNhc2UgYnBfY2Fs bF9kdW1teToKK0BAIC0zNzM5LDYgKzM5MDIsNyBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2Nh dGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCisgICAgICAgY2FzZSBicF90aHJlYWRfZXZlbnQ6 CisgICAgICAgY2FzZSBicF9vdmVybGF5X2V2ZW50OgorICAgICAgIGNhc2UgYnBfbG9uZ2ptcF9t YXN0ZXI6CisrICAgICAgY2FzZSBicF9leGNlcHRpb25fbWFzdGVyOgorICAgICAgIGNhc2UgYnBf dHJhY2Vwb2ludDoKKyAgICAgICBjYXNlIGJwX2ppdF9ldmVudDoKKyAJaWYgKG9wdHMuYWRkcmVz c3ByaW50KQorQEAgLTQxOTQsOSArNDM1OCw4IEBAIHNldF9kZWZhdWx0X2JyZWFrcG9pbnQgKGlu dCB2YWxpZCwgQ09SRV9BRERSIGFkZHIsIHN0cnVjdCBzeW10YWIgKnN5bXRhYiwKKyAgICAob3Ig dXNlIGl0IGZvciBhbnkgb3RoZXIgcHVycG9zZSBlaXRoZXIpLgorIAorICAgIE1vcmUgc3BlY2lm aWNhbGx5LCBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludCB0eXBlcyB3aWxsIGFsd2F5 cworLSAgIGhhdmUgYSB6ZXJvIHZhbHVlZCBhZGRyZXNzIGFuZCB3ZSBkb24ndCB3YW50IGNoZWNr X2R1cGxpY2F0ZXMoKSB0byBtYXJrCistICAgYnJlYWtwb2ludHMgb2YgYW55IG9mIHRoZXNlIHR5 cGVzIHRvIGJlIGEgZHVwbGljYXRlIG9mIGFuIGFjdHVhbAorLSAgIGJyZWFrcG9pbnQgYXQgYWRk cmVzcyB6ZXJvOgorKyAgIGhhdmUgYSB6ZXJvIHZhbHVlZCBhZGRyZXNzIGFuZCB3ZSBkb24ndCB3 YW50IHRvIG1hcmsgYnJlYWtwb2ludHMgb2YgYW55IG9mCisrICAgdGhlc2UgdHlwZXMgdG8gYmUg YSBkdXBsaWNhdGUgb2YgYW4gYWN0dWFsIGJyZWFrcG9pbnQgYXQgYWRkcmVzcyB6ZXJvOgorIAor ICAgICAgIGJwX3dhdGNocG9pbnQKKyAgICAgICBicF9oYXJkd2FyZV93YXRjaHBvaW50CitAQCAt NDIxNiw4OCArNDM3OSw2IEBAIGJyZWFrcG9pbnRfYWRkcmVzc19pc19tZWFuaW5nZnVsIChzdHJ1 Y3QgYnJlYWtwb2ludCAqYnB0KQorIAkgICYmIHR5cGUgIT0gYnBfY2F0Y2hwb2ludCk7CiAgfQot ZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmggYi9nZGIvYnJlYWtwb2ludC5oCi1pbmRleCBk OTNjNmI2Li5hNTU1YzE2IDEwMDY0NAotLS0tIGEvZ2RiL2JyZWFrcG9pbnQuaAotKysrIGIvZ2Ri L2JyZWFrcG9pbnQuaAotQEAgLTkxOCw2ICs5MTgsOSBAQCBleHRlcm4gdm9pZCBicmVha3BvaW50 X3JldGlyZV9tb3JpYnVuZCAodm9pZCk7Ci0gLyogVGVsbCBhIGJyZWFrcG9pbnQgdG8gYmUgcXVp ZXQuICAqLwotIGV4dGVybiB2b2lkIG1ha2VfYnJlYWtwb2ludF9zaWxlbnQgKHN0cnVjdCBicmVh a3BvaW50ICopOwogIAotKy8qIFNldCBicmVhayBjb25kaXRpb24gb2YgYnJlYWtwb2ludCBCIHRv IEVYUC4gICovCi0rZXh0ZXJuIHZvaWQgc2V0X2JyZWFrcG9pbnRfY29uZGl0aW9uIChzdHJ1Y3Qg YnJlYWtwb2ludCAqYiwgY2hhciAqZXhwLCBpbnQgZnJvbV90dHkpOwotKwotIC8qIFJldHVybiBh IHRyYWNlcG9pbnQgd2l0aCB0aGUgZ2l2ZW4gbnVtYmVyIGlmIGZvdW5kLiAgKi8KLSBleHRlcm4g c3RydWN0IGJyZWFrcG9pbnQgKmdldF90cmFjZXBvaW50IChpbnQgbnVtKTsKKy0vKiBSZXNjYW4g YnJlYWtwb2ludHMgYXQgdGhlIHNhbWUgYWRkcmVzcyBhbmQgc2VjdGlvbiBhcyBCUFQsCistICAg bWFya2luZyB0aGUgZmlyc3Qgb25lIGFzICJmaXJzdCIgYW5kIGFueSBvdGhlcnMgYXMgImR1cGxp Y2F0ZXMiLgorLSAgIFRoaXMgaXMgc28gdGhhdCB0aGUgYnB0IGluc3RydWN0aW9uIGlzIG9ubHkg aW5zZXJ0ZWQgb25jZS4KKy0gICBJZiB3ZSBoYXZlIGEgcGVybWFuZW50IGJyZWFrcG9pbnQgYXQg dGhlIHNhbWUgcGxhY2UgYXMgQlBULCBtYWtlCistICAgdGhhdCBvbmUgdGhlIG9mZmljaWFsIG9u ZSwgYW5kIHRoZSByZXN0IGFzIGR1cGxpY2F0ZXMuICAqLworLQorLXN0YXRpYyB2b2lkCistY2hl Y2tfZHVwbGljYXRlc19mb3IgKENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3Qgb2JqX3NlY3Rpb24g KnNlY3Rpb24pCisteworLSAgc3RydWN0IGJwX2xvY2F0aW9uICpiOworLSAgaW50IGNvdW50ID0g MDsKKy0gIHN0cnVjdCBicF9sb2NhdGlvbiAqcGVybV9icCA9IDA7CistCistICBBTExfQlBfTE9D QVRJT05TIChiKQorLSAgICBpZiAoYi0+b3duZXItPmVuYWJsZV9zdGF0ZSAhPSBicF9kaXNhYmxl ZAorLQkmJiBiLT5vd25lci0+ZW5hYmxlX3N0YXRlICE9IGJwX2NhbGxfZGlzYWJsZWQKKy0JJiYg Yi0+b3duZXItPmVuYWJsZV9zdGF0ZSAhPSBicF9zdGFydHVwX2Rpc2FibGVkCistCSYmIGItPmVu YWJsZWQKKy0JJiYgIWItPnNobGliX2Rpc2FibGVkCistCSYmIGItPmFkZHJlc3MgPT0gYWRkcmVz cwkvKiBhZGRyZXNzIC8gb3ZlcmxheSBtYXRjaCAqLworLQkmJiAoIW92ZXJsYXlfZGVidWdnaW5n IHx8IGItPnNlY3Rpb24gPT0gc2VjdGlvbikKKy0JJiYgYnJlYWtwb2ludF9hZGRyZXNzX2lzX21l YW5pbmdmdWwgKGItPm93bmVyKSkKKy0gICAgeworLSAgICAgIC8qIEhhdmUgd2UgZm91bmQgYSBw ZXJtYW5lbnQgYnJlYWtwb2ludD8gICovCistICAgICAgaWYgKGItPm93bmVyLT5lbmFibGVfc3Rh dGUgPT0gYnBfcGVybWFuZW50KQorLQl7CistCSAgcGVybV9icCA9IGI7CistCSAgYnJlYWs7Cist CX0KKy0JCistICAgICAgY291bnQrKzsKKy0gICAgICBiLT5kdXBsaWNhdGUgPSBjb3VudCA+IDE7 CistICAgIH0KKy0KKy0gIC8qIElmIHdlIGZvdW5kIGEgcGVybWFuZW50IGJyZWFrcG9pbnQgYXQg dGhpcyBhZGRyZXNzLCBnbyBvdmVyIHRoZQorLSAgICAgbGlzdCBhZ2FpbiBhbmQgZGVjbGFyZSBh bGwgdGhlIG90aGVyIGJyZWFrcG9pbnRzIHRoZXJlIChleGNlcHQKKy0gICAgIG90aGVyIHBlcm1h bmVudCBicmVha3BvaW50cykgdG8gYmUgdGhlIGR1cGxpY2F0ZXMuICAqLworLSAgaWYgKHBlcm1f YnApCistICAgIHsKKy0gICAgICBwZXJtX2JwLT5kdXBsaWNhdGUgPSAwOworLQorLSAgICAgIC8q IFBlcm1hbmVudCBicmVha3BvaW50IHNob3VsZCBhbHdheXMgYmUgaW5zZXJ0ZWQuICAqLworLSAg ICAgIGlmICghIHBlcm1fYnAtPmluc2VydGVkKQorLQlpbnRlcm5hbF9lcnJvciAoX19GSUxFX18s IF9fTElORV9fLAorLQkJCV8oImFsbGVnZWRseSBwZXJtYW5lbnQgYnJlYWtwb2ludCBpcyBub3Qg IgorLQkJCSJhY3R1YWxseSBpbnNlcnRlZCIpKTsKKy0KKy0gICAgICBBTExfQlBfTE9DQVRJT05T IChiKQorLQlpZiAoYiAhPSBwZXJtX2JwKQorLQkgIHsKKy0JICAgIGlmIChiLT5vd25lci0+ZW5h YmxlX3N0YXRlICE9IGJwX3Blcm1hbmVudAorLQkJJiYgYi0+b3duZXItPmVuYWJsZV9zdGF0ZSAh PSBicF9kaXNhYmxlZAorLQkJJiYgYi0+b3duZXItPmVuYWJsZV9zdGF0ZSAhPSBicF9jYWxsX2Rp c2FibGVkCistCQkmJiBiLT5vd25lci0+ZW5hYmxlX3N0YXRlICE9IGJwX3N0YXJ0dXBfZGlzYWJs ZWQKKy0JCSYmIGItPmVuYWJsZWQgJiYgIWItPnNobGliX2Rpc2FibGVkCQkKKy0JCSYmIGItPmFk ZHJlc3MgPT0gYWRkcmVzcwkvKiBhZGRyZXNzIC8gb3ZlcmxheSBtYXRjaCAqLworLQkJJiYgKCFv dmVybGF5X2RlYnVnZ2luZyB8fCBiLT5zZWN0aW9uID09IHNlY3Rpb24pCistCQkmJiBicmVha3Bv aW50X2FkZHJlc3NfaXNfbWVhbmluZ2Z1bCAoYi0+b3duZXIpKQorLQkgICAgICB7CistCQlpZiAo Yi0+aW5zZXJ0ZWQpCistCQkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCist CQkJCSAgXygiYW5vdGhlciBicmVha3BvaW50IHdhcyBpbnNlcnRlZCBvbiB0b3Agb2YgIgorLQkJ CQkgICJhIHBlcm1hbmVudCBicmVha3BvaW50IikpOworLQorLQkJYi0+ZHVwbGljYXRlID0gMTsK Ky0JICAgICAgfQorLQkgIH0KKy0gICAgfQorLX0KKy0KKy1zdGF0aWMgdm9pZAorLWNoZWNrX2R1 cGxpY2F0ZXMgKHN0cnVjdCBicmVha3BvaW50ICpicHQpCisteworLSAgc3RydWN0IGJwX2xvY2F0 aW9uICpibCA9IGJwdC0+bG9jOworLQorLSAgaWYgKCEgYnJlYWtwb2ludF9hZGRyZXNzX2lzX21l YW5pbmdmdWwgKGJwdCkpCistICAgIHJldHVybjsKKy0KKy0gIGZvciAoOyBibDsgYmwgPSBibC0+ bmV4dCkKKy0gICAgY2hlY2tfZHVwbGljYXRlc19mb3IgKGJsLT5hZGRyZXNzLCBibC0+c2VjdGlv bik7ICAgIAorLX0KKy0KKyBzdGF0aWMgdm9pZAorIGJyZWFrcG9pbnRfYWRqdXN0bWVudF93YXJu aW5nIChDT1JFX0FERFIgZnJvbV9hZGRyLCBDT1JFX0FERFIgdG9fYWRkciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGJudW0sIGludCBoYXZlX2JudW0pCitAQCAtNDM3OSw2 ICs0NDYwLDggQEAgYWxsb2NhdGVfYnBfbG9jYXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpicHQp CisgICAgIGNhc2UgYnBfZmluaXNoOgorICAgICBjYXNlIGJwX2xvbmdqbXA6CisgICAgIGNhc2Ug YnBfbG9uZ2ptcF9yZXN1bWU6CisrICAgIGNhc2UgYnBfZXhjZXB0aW9uOgorKyAgICBjYXNlIGJw X2V4Y2VwdGlvbl9yZXN1bWU6CisgICAgIGNhc2UgYnBfc3RlcF9yZXN1bWU6CisgICAgIGNhc2Ug YnBfd2F0Y2hwb2ludF9zY29wZToKKyAgICAgY2FzZSBicF9jYWxsX2R1bW15OgorQEAgLTQzODcs NiArNDQ3MCw3IEBAIGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0 KQorICAgICBjYXNlIGJwX292ZXJsYXlfZXZlbnQ6CisgICAgIGNhc2UgYnBfaml0X2V2ZW50Ogor ICAgICBjYXNlIGJwX2xvbmdqbXBfbWFzdGVyOgorKyAgICBjYXNlIGJwX2V4Y2VwdGlvbl9tYXN0 ZXI6CisgICAgICAgbG9jLT5sb2NfdHlwZSA9IGJwX2xvY19zb2Z0d2FyZV9icmVha3BvaW50Owor ICAgICAgIGJyZWFrOworICAgICBjYXNlIGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQ6CitAQCAtNDU2 NCw4ICs0NjQ4LDcgQEAgbWFrZV9icmVha3BvaW50X3Blcm1hbmVudCAoc3RydWN0IGJyZWFrcG9p bnQgKmIpCisgfQogIAotZGlmZiAtLWdpdCBhL2dkYi9jLWV4cC55IGIvZ2RiL2MtZXhwLnkKLWlu ZGV4IGFhY2MxMTIuLmUyMDY5ODMgMTAwNjQ0Ci0tLS0gYS9nZGIvYy1leHAueQotKysrIGIvZ2Ri L2MtZXhwLnkKLUBAIC0xMTcsNiArMTE3LDggQEAgc3RhdGljIGludCB5eWxleCAodm9pZCk7Cisg LyogQ2FsbCB0aGlzIHJvdXRpbmUgd2hlbiBzdGVwcGluZyBhbmQgbmV4dGluZyB0byBlbmFibGUg YSBicmVha3BvaW50CistICAgaWYgd2UgZG8gYSBsb25nam1wKCkgaW4gVEhSRUFELiAgV2hlbiB3 ZSBoaXQgdGhhdCBicmVha3BvaW50LCBjYWxsCistICAgc2V0X2xvbmdqbXBfcmVzdW1lX2JyZWFr cG9pbnQoKSB0byBmaWd1cmUgb3V0IHdoZXJlIHdlIGFyZSBnb2luZy4gKi8KKysgICBpZiB3ZSBk byBhIGxvbmdqbXAoKSBvciAndGhyb3cnIGluIFRIUkVBRC4gICovCiAgCi0gdm9pZCB5eWVycm9y IChjaGFyICopOworIHZvaWQKKyBzZXRfbG9uZ2ptcF9icmVha3BvaW50IChpbnQgdGhyZWFkKQor QEAgLTQ1NzcsMTAgKzQ2NjAsMTAgQEAgc2V0X2xvbmdqbXBfYnJlYWtwb2ludCAoaW50IHRocmVh ZCkKKyAgICAgIGxvbmdqbXAgIm1hc3RlciIgYnJlYWtwb2ludHMuICBIZXJlLCB3ZSBzaW1wbHkg Y3JlYXRlIG1vbWVudGFyeQorICAgICAgY2xvbmVzIG9mIHRob3NlIGFuZCBlbmFibGUgdGhlbSBm b3IgdGhlIHJlcXVlc3RlZCB0aHJlYWQuICAqLworICAgQUxMX0JSRUFLUE9JTlRTX1NBRkUgKGIs IHRlbXApCistICAgIGlmIChiLT50eXBlID09IGJwX2xvbmdqbXBfbWFzdGVyKQorKyAgICBpZiAo Yi0+dHlwZSA9PSBicF9sb25nam1wX21hc3RlciB8fCBiLT50eXBlID09IGJwX2V4Y2VwdGlvbl9t YXN0ZXIpCisgICAgICAgeworIAlzdHJ1Y3QgYnJlYWtwb2ludCAqY2xvbmUgPSBjbG9uZV9tb21l bnRhcnlfYnJlYWtwb2ludCAoYik7CistCWNsb25lLT50eXBlID0gYnBfbG9uZ2ptcDsKKysJY2xv bmUtPnR5cGUgPSBiLT50eXBlID09IGJwX2xvbmdqbXBfbWFzdGVyID8gYnBfbG9uZ2ptcCA6IGJw X2V4Y2VwdGlvbjsKKyAJY2xvbmUtPnRocmVhZCA9IHRocmVhZDsKKyAgICAgICB9CisgfQorQEAg LTQ1OTIsNyArNDY3NSw3IEBAIGRlbGV0ZV9sb25nam1wX2JyZWFrcG9pbnQgKGludCB0aHJlYWQp CisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYiwgKnRlbXA7CiAgCi0rLyogQ2xlYW51cCBmb3IgJ25v bmVtcHR5X3R5cGVsaXN0JyAqLwotK3N0YXRpYyBzdHJ1Y3QgY2xlYW51cCAqdHlwZWxpc3RfY2xl YW51cDsKLSAlfQorICAgQUxMX0JSRUFLUE9JTlRTX1NBRkUgKGIsIHRlbXApCistICAgIGlmIChi LT50eXBlID09IGJwX2xvbmdqbXApCisrICAgIGlmIChiLT50eXBlID09IGJwX2xvbmdqbXAgfHwg Yi0+dHlwZSA9PSBicF9leGNlcHRpb24pCisgICAgICAgeworIAlpZiAoYi0+dGhyZWFkID09IHRo cmVhZCkKKyAJICBkZWxldGVfYnJlYWtwb2ludCAoYik7CitAQCAtNDcwNiw5ICs0Nzg5LDkgQEAg Y3JlYXRlX3NvbGliX2V2ZW50X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBD T1JFX0FERFIgYWRkcmVzcykKKyB2b2lkCisgZGlzYWJsZV9icmVha3BvaW50c19pbl9zaGxpYnMg KHZvaWQpCisgeworLSAgc3RydWN0IGJwX2xvY2F0aW9uICpsb2M7CisrICBzdHJ1Y3QgYnBfbG9j YXRpb24gKmxvYywgKipsb2NwX3RtcDsKICAKLSAvKiBBbHRob3VnaCB0aGUgeWFjYyAidmFsdWUi IG9mIGFuIGV4cHJlc3Npb24gaXMgbm90IHVzZWQsCi1AQCAtMTU3LDYgKzE1OSw3IEBAIHZvaWQg eXllcnJvciAoY2hhciAqKTsKLSAlewotIC8qIFlZU1RZUEUgZ2V0cyBkZWZpbmVkIGJ5ICV1bmlv biAqLwotIHN0YXRpYyBpbnQgcGFyc2VfbnVtYmVyIChjaGFyICosIGludCwgaW50LCBZWVNUWVBF ICopOwotK3N0YXRpYyBzdHJ1Y3Qgc3Rva2VuIG9wZXJhdG9yX3N0b2tlbiAoY29uc3QgY2hhciAq KTsKLSAlfQorLSAgQUxMX0JQX0xPQ0FUSU9OUyAobG9jKQorKyAgQUxMX0JQX0xPQ0FUSU9OUyAo bG9jLCBsb2NwX3RtcCkKKyAgIHsKKyAgICAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBsb2MtPm93 bmVyOworICAgICAvKiBXZSBhcHBseSB0aGUgY2hlY2sgdG8gYWxsIGJyZWFrcG9pbnRzLCBpbmNs dWRpbmcgZGlzYWJsZWQKK0BAIC00NzM4LDcgKzQ4MjEsNyBAQCBkaXNhYmxlX2JyZWFrcG9pbnRz X2luX3NobGlicyAodm9pZCkKKyBzdGF0aWMgdm9pZAorIGRpc2FibGVfYnJlYWtwb2ludHNfaW5f dW5sb2FkZWRfc2hsaWIgKHN0cnVjdCBzb19saXN0ICpzb2xpYikKKyB7CistICBzdHJ1Y3QgYnBf bG9jYXRpb24gKmxvYzsKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jLCAqKmxvY3BfdG1wOwor ICAgaW50IGRpc2FibGVkX3NobGliX2JyZWFrcyA9IDA7CiAgCi0gJXR5cGUgPHZvaWR2YWw+IGV4 cCBleHAxIHR5cGVfZXhwIHN0YXJ0IHZhcmlhYmxlIHF1YWxpZmllZF9uYW1lIGxjdXJseQotQEAg LTE5OSw5ICsyMDIsMTIgQEAgc3RhdGljIGludCBwYXJzZV9udW1iZXIgKGNoYXIgKiwgaW50LCBp bnQsIFlZU1RZUEUgKik7CisgICAvKiBTdW5PUyBhLm91dCBzaGFyZWQgbGlicmFyaWVzIGFyZSBh bHdheXMgbWFwcGVkLCBzbyBkbyBub3QKK0BAIC00NzQ5LDcgKzQ4MzIsNyBAQCBkaXNhYmxlX2Jy ZWFrcG9pbnRzX2luX3VubG9hZGVkX3NobGliIChzdHJ1Y3Qgc29fbGlzdCAqc29saWIpCisgICAg ICAgJiYgYmZkX2dldF9mbGF2b3VyIChleGVjX2JmZCkgPT0gYmZkX3RhcmdldF9hb3V0X2ZsYXZv dXIpCisgICAgIHJldHVybjsKICAKLSAldG9rZW4gPHNzeW0+IE5BTUVfT1JfSU5UIAorLSAgQUxM X0JQX0xPQ0FUSU9OUyAobG9jKQorKyAgQUxMX0JQX0xPQ0FUSU9OUyAobG9jLCBsb2NwX3RtcCkK KyAgIHsKKyAgICAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBsb2MtPm93bmVyOworICAgICBpZiAo KGxvYy0+bG9jX3R5cGUgPT0gYnBfbG9jX2hhcmR3YXJlX2JyZWFrcG9pbnQKK0BAIC01MzU0LDYg KzU0MzcsOCBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKKyAgICAgICBjYXNlIGJw X2ZpbmlzaDoKKyAgICAgICBjYXNlIGJwX2xvbmdqbXA6CisgICAgICAgY2FzZSBicF9sb25nam1w X3Jlc3VtZToKKysgICAgICBjYXNlIGJwX2V4Y2VwdGlvbjoKKysgICAgICBjYXNlIGJwX2V4Y2Vw dGlvbl9yZXN1bWU6CisgICAgICAgY2FzZSBicF9zdGVwX3Jlc3VtZToKKyAgICAgICBjYXNlIGJw X2NhbGxfZHVtbXk6CisgICAgICAgY2FzZSBicF93YXRjaHBvaW50X3Njb3BlOgorQEAgLTUzNjIs NiArNTQ0Nyw3IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQorICAgICAgIGNhc2Ug YnBfb3ZlcmxheV9ldmVudDoKKyAgICAgICBjYXNlIGJwX2ppdF9ldmVudDoKKyAgICAgICBjYXNl IGJwX2xvbmdqbXBfbWFzdGVyOgorKyAgICAgIGNhc2UgYnBfZXhjZXB0aW9uX21hc3RlcjoKKyAJ YnJlYWs7CisgICAgICAgfQogIAotKyV0b2tlbiBPUEVSQVRPUgotICV0b2tlbiBTVFJVQ1QgQ0xB U1MgVU5JT04gRU5VTSBTSVpFT0YgVU5TSUdORUQgQ09MT05DT0xPTgotICV0b2tlbiBURU1QTEFU RQotICV0b2tlbiBFUlJPUgotKyV0b2tlbiBORVcgREVMRVRFCi0rJXR5cGUgPHN2YWw+IG9wZXJh dG9yCitAQCAtNjY2NCw2ICs2NzUwLDcgQEAgc3RydWN0IHVudGlsX2JyZWFrX2NvbW1hbmRfY29u dGludWF0aW9uX2FyZ3MKKyB7CisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnJlYWtwb2ludDsKKyAg IHN0cnVjdCBicmVha3BvaW50ICpicmVha3BvaW50MjsKKysgIGludCB0aHJlYWRfbnVtOworIH07 CiAgCi0gLyogU3BlY2lhbCB0eXBlIGNhc2VzLCBwdXQgaW4gdG8gYWxsb3cgdGhlIHBhcnNlciB0 byBkaXN0aW5ndWlzaCBkaWZmZXJlbnQKLSAgICBsZWdhbCBiYXNldHlwZXMuICAqLwotQEAgLTIz Miw3ICsyMzgsNyBAQCBzdGF0aWMgaW50IHBhcnNlX251bWJlciAoY2hhciAqLCBpbnQsIGludCwg WVlTVFlQRSAqKTsKLSAlbGVmdCAnKycgJy0nCi0gJWxlZnQgJyonICcvJyAnJScKLSAlcmlnaHQg VU5BUlkgSU5DUkVNRU5UIERFQ1JFTUVOVAotLSVyaWdodCBBUlJPVyAnLicgJ1snICcoJwotKyVy aWdodCBBUlJPVyBBUlJPV19TVEFSICcuJyBET1RfU1RBUiAnWycgJygnCi0gJXRva2VuIDxzc3lt PiBCTE9DS05BTUUgCi0gJXRva2VuIDxidmFsPiBGSUxFTkFNRQotICV0eXBlIDxidmFsPiBibG9j awotQEAgLTMzMyw3ICszMzksNyBAQCBleHAJOglleHAgQVJST1cgcXVhbGlmaWVkX25hbWUKLSAJ CQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChTVFJVQ1RPUF9NUFRSKTsgfQotIAk7CisgLyogVGhp cyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgZmV0Y2hfaW5mZXJpb3JfZXZlbnQgdmlhIHRoZQorQEAg LTY2NzgsNiArNjc2NSw3IEBAIHVudGlsX2JyZWFrX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lk ICphcmcpCisgICBkZWxldGVfYnJlYWtwb2ludCAoYS0+YnJlYWtwb2ludCk7CisgICBpZiAoYS0+ YnJlYWtwb2ludDIpCisgICAgIGRlbGV0ZV9icmVha3BvaW50IChhLT5icmVha3BvaW50Mik7Cisr ICBkZWxldGVfbG9uZ2ptcF9icmVha3BvaW50IChhLT50aHJlYWRfbnVtKTsKKyB9CiAgCi0tZXhw CToJZXhwIEFSUk9XICcqJyBleHAKLStleHAJOglleHAgQVJST1dfU1RBUiBleHAKLSAJCQl7IHdy aXRlX2V4cF9lbHRfb3Bjb2RlIChTVFJVQ1RPUF9NUFRSKTsgfQotIAk7Cisgdm9pZAorQEAgLTY2 ODksNiArNjc3Nyw4IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21f dHR5LCBpbnQgYW55d2hlcmUpCisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnJlYWtwb2ludDsKKyAg IHN0cnVjdCBicmVha3BvaW50ICpicmVha3BvaW50MiA9IE5VTEw7CisgICBzdHJ1Y3QgY2xlYW51 cCAqb2xkX2NoYWluOworKyAgaW50IHRocmVhZDsKKysgIHN0cnVjdCB0aHJlYWRfaW5mbyAqdHA7 CiAgCi1AQCAtMzY4LDcgKzM3NCw3IEBAIGV4cAk6CWV4cCAnLicgcXVhbGlmaWVkX25hbWUKLSAJ CQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChTVFJVQ1RPUF9NRU1CRVIpOyB9Ci0gCTsKKyAgIGNs ZWFyX3Byb2NlZWRfc3RhdHVzICgpOwogIAotLWV4cAk6CWV4cCAnLicgJyonIGV4cAotK2V4cAk6 CWV4cCBET1RfU1RBUiBleHAKLSAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChTVFJVQ1RPUF9N RU1CRVIpOyB9Ci0gCTsKK0BAIC02NzI3LDYgKzY4MTcsOSBAQCB1bnRpbF9icmVha19jb21tYW5k IChjaGFyICphcmcsIGludCBmcm9tX3R0eSwgaW50IGFueXdoZXJlKQorIAorICAgb2xkX2NoYWlu ID0gbWFrZV9jbGVhbnVwX2RlbGV0ZV9icmVha3BvaW50IChicmVha3BvaW50KTsKKyAKKysgIHRw ID0gaW5mZXJpb3JfdGhyZWFkICgpOworKyAgdGhyZWFkID0gdHAtPm51bTsKKysKKyAgIC8qIEtl ZXAgd2l0aGluIHRoZSBjdXJyZW50IGZyYW1lLCBvciBpbiBmcmFtZXMgY2FsbGVkIGJ5IHRoZSBj dXJyZW50CisgICAgICBvbmUuICAqLworIAorQEAgLTY3MzksNiArNjgzMiwxMCBAQCB1bnRpbF9i cmVha19jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSwgaW50IGFueXdoZXJlKQorIAkJ CQkJICAgICAgZnJhbWVfdW53aW5kX2NhbGxlcl9pZCAoZnJhbWUpLAorIAkJCQkJICAgICAgYnBf dW50aWwpOworICAgICAgIG1ha2VfY2xlYW51cF9kZWxldGVfYnJlYWtwb2ludCAoYnJlYWtwb2lu dDIpOworKworKyAgICAgIHNldF9sb25nam1wX2JyZWFrcG9pbnQgKHRocmVhZCk7CisrICAgICAg dHAtPmluaXRpYXRpbmdfZnJhbWUgPSBmcmFtZV91bndpbmRfY2FsbGVyX2lkIChmcmFtZSk7Cisr ICAgICAgbWFrZV9jbGVhbnVwIChkZWxldGVfbG9uZ2ptcF9icmVha3BvaW50X2NsZWFudXAsICZ0 aHJlYWQpOworICAgICB9CisgCisgICBwcm9jZWVkICgtMSwgVEFSR0VUX1NJR05BTF9ERUZBVUxU LCAwKTsKK0BAIC02NzU1LDYgKzY4NTIsNyBAQCB1bnRpbF9icmVha19jb21tYW5kIChjaGFyICph cmcsIGludCBmcm9tX3R0eSwgaW50IGFueXdoZXJlKQorIAorICAgICAgIGFyZ3MtPmJyZWFrcG9p bnQgPSBicmVha3BvaW50OworICAgICAgIGFyZ3MtPmJyZWFrcG9pbnQyID0gYnJlYWtwb2ludDI7 CisrICAgICAgYXJncy0+dGhyZWFkX251bSA9IHRocmVhZDsKKyAKKyAgICAgICBkaXNjYXJkX2Ns ZWFudXBzIChvbGRfY2hhaW4pOworICAgICAgIGFkZF9jb250aW51YXRpb24gKGluZmVyaW9yX3Ro cmVhZCAoKSwKK0BAIC03MzU3LDYgKzc0NTUsODIgQEAgZG9fdmVjX2ZyZWUgKHZvaWQgKnApCisg ICAgIFZFQ19mcmVlIChicF9sb2NhdGlvbl9wLCAqdmVjKTsKKyB9CisgCisrLyogQSBjb21wYXJp c29uIGZ1bmN0aW9uIGZvciBicF9sb2NhdGlvbiBBIGFuZCBCIGJlaW5nIGludGVyZmFjZWQgdG8g cXNvcnQuCisrICAgU29ydCBlbGVtZW50cyBwcmltYXJpbHkgYnkgdGhlaXIgQUREUkVTUyAobm8g bWF0dGVyIHdoYXQgZG9lcworKyAgIGJyZWFrcG9pbnRfYWRkcmVzc19pc19tZWFuaW5nZnVsIHNh eSBmb3IgaXRzIE9XTkVSKSwgc2Vjb25kYXJpbHkgYnkgb3JkZXJpbmcKKysgICBmaXJzdCBicF9w ZXJtYW5lbnQgT1dORVJlZCBlbGVtZW50cyBhbmQgdGVyY2lhcmlseSBqdXN0IGVuc3VyaW5nIHRo ZSBhcnJheQorKyAgIGlzIHNvcnRlZCBzdGFibGUgd2F5IGRlc3BpdGUgcXNvcnQgYmVpbmcgYW4g aW5zdGFibGUgYWxnb3JpdGhtLiAgKi8KKysKKytzdGF0aWMgaW50CisrYnBfbG9jYXRpb25fY29t cGFyZSAoc3RydWN0IGJwX2xvY2F0aW9uICphLCBzdHJ1Y3QgYnBfbG9jYXRpb24gKmIpCisrewor KyAgaW50IGFfcGVybSA9IGEtPm93bmVyLT5lbmFibGVfc3RhdGUgPT0gYnBfcGVybWFuZW50Owor KyAgaW50IGJfcGVybSA9IGItPm93bmVyLT5lbmFibGVfc3RhdGUgPT0gYnBfcGVybWFuZW50Owor KworKyAgaWYgKGEtPmFkZHJlc3MgIT0gYi0+YWRkcmVzcykKKysgICAgcmV0dXJuIChhLT5hZGRy ZXNzID4gYi0+YWRkcmVzcykgLSAoYS0+YWRkcmVzcyA8IGItPmFkZHJlc3MpOworKworKyAgLyog U29ydCBwZXJtYW5lbnQgYnJlYWtwb2ludHMgZmlyc3QuICAqLworKyAgaWYgKGFfcGVybSAhPSBi X3Blcm0pCisrICAgIHJldHVybiAoYV9wZXJtIDwgYl9wZXJtKSAtIChhX3Blcm0gPiBiX3Blcm0p OworKworKyAgLyogTWFrZSB0aGUgdXNlci12aXNpYmxlIG9yZGVyIHN0YWJsZSBhY3Jvc3MgR0RC IHJ1bnMuICBMb2NhdGlvbnMgb2YgdGhlIHNhbWUKKysgICAgIGJyZWFrcG9pbnQgY2FuIGJlIHNv cnRlZCBpbiBhcmJpdHJhcnkgb3JkZXIuICAqLworKworKyAgaWYgKGEtPm93bmVyLT5udW1iZXIg IT0gYi0+b3duZXItPm51bWJlcikKKysgICAgcmV0dXJuIChhLT5vd25lci0+bnVtYmVyID4gYi0+ b3duZXItPm51bWJlcikKKysgICAgICAgICAgIC0gKGEtPm93bmVyLT5udW1iZXIgPCBiLT5vd25l ci0+bnVtYmVyKTsKKysKKysgIHJldHVybiAoYSA+IGIpIC0gKGEgPCBiKTsKKyt9CisrCisrLyog SW50ZXJmYWNlIGJwX2xvY2F0aW9uX2NvbXBhcmUgYXMgdGhlIENPTVBBUiBwYXJhbWV0ZXIgb2Yg cXNvcnQgZnVuY3Rpb24uICAqLworKworK3N0YXRpYyBpbnQKKyticF9sb2NhdGlvbl9jb21wYXJl X2Zvcl9xc29ydCAoY29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQgKmJwKQorK3sKKysgIHN0cnVj dCBicF9sb2NhdGlvbiAqYSA9ICoodm9pZCAqKikgYXA7CisrICBzdHJ1Y3QgYnBfbG9jYXRpb24g KmIgPSAqKHZvaWQgKiopIGJwOworKworKyAgcmV0dXJuIGJwX2xvY2F0aW9uX2NvbXBhcmUgKGEs IGIpOworK30KKysKKysvKiBTZXQgYnBfbG9jYXRpb25fcGxhY2VkX2FkZHJlc3NfYmVmb3JlX2Fk ZHJlc3NfbWF4IGFuZAorKyAgIGJwX2xvY2F0aW9uX3NoYWRvd19sZW5fYWZ0ZXJfYWRkcmVzc19t YXggYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IGNvbnRlbnQgb2YKKysgICB0aGUgYnBfbG9jYXRp b24gYXJyYXkuICAqLworKworK3N0YXRpYyB2b2lkCisrYnBfbG9jYXRpb25fdGFyZ2V0X2V4dGVu c2lvbnNfdXBkYXRlICh2b2lkKQorK3sKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqYmwsICoqYmxw X3RtcDsKKysKKysgIGJwX2xvY2F0aW9uX3BsYWNlZF9hZGRyZXNzX2JlZm9yZV9hZGRyZXNzX21h eCA9IDA7CisrICBicF9sb2NhdGlvbl9zaGFkb3dfbGVuX2FmdGVyX2FkZHJlc3NfbWF4ID0gMDsK KysKKysgIEFMTF9CUF9MT0NBVElPTlMgKGJsLCBibHBfdG1wKQorKyAgICB7CisrICAgICAgQ09S RV9BRERSIHN0YXJ0LCBlbmQsIGFkZHI7CisrCisrICAgICAgaWYgKCFicF9sb2NhdGlvbl9oYXNf c2hhZG93IChibCkpCisrCWNvbnRpbnVlOworKworKyAgICAgIHN0YXJ0ID0gYmwtPnRhcmdldF9p bmZvLnBsYWNlZF9hZGRyZXNzOworKyAgICAgIGVuZCA9IHN0YXJ0ICsgYmwtPnRhcmdldF9pbmZv LnNoYWRvd19sZW47CisrCisrICAgICAgZ2RiX2Fzc2VydCAoYmwtPmFkZHJlc3MgPj0gc3RhcnQp OworKyAgICAgIGFkZHIgPSBibC0+YWRkcmVzcyAtIHN0YXJ0OworKyAgICAgIGlmIChhZGRyID4g YnBfbG9jYXRpb25fcGxhY2VkX2FkZHJlc3NfYmVmb3JlX2FkZHJlc3NfbWF4KQorKwlicF9sb2Nh dGlvbl9wbGFjZWRfYWRkcmVzc19iZWZvcmVfYWRkcmVzc19tYXggPSBhZGRyOworKworKyAgICAg IC8qIFplcm8gU0hBRE9XX0xFTiB3b3VsZCBub3QgcGFzcyBicF9sb2NhdGlvbl9oYXNfc2hhZG93 LiAgKi8KKysKKysgICAgICBnZGJfYXNzZXJ0IChibC0+YWRkcmVzcyA8IGVuZCk7CisrICAgICAg YWRkciA9IGVuZCAtIGJsLT5hZGRyZXNzOworKyAgICAgIGlmIChhZGRyID4gYnBfbG9jYXRpb25f c2hhZG93X2xlbl9hZnRlcl9hZGRyZXNzX21heCkKKysJYnBfbG9jYXRpb25fc2hhZG93X2xlbl9h ZnRlcl9hZGRyZXNzX21heCA9IGFkZHI7CisrICAgIH0KKyt9CisrCisgLyogSWYgU0hPVUxEX0lO U0VSVCBpcyBmYWxzZSwgZG8gbm90IGluc2VydCBhbnkgYnJlYWtwb2ludCBsb2NhdGlvbnMKKyAg ICBpbnRvIHRoZSBpbmZlcmlvciwgb25seSByZW1vdmUgYWxyZWFkeS1pbnNlcnRlZCBsb2NhdGlv bnMgdGhhdCBubworICAgIGxvbmdlciBzaG91bGQgYmUgaW5zZXJ0ZWQuICBGdW5jdGlvbnMgdGhh dCBkZWxldGUgYSBicmVha3BvaW50IG9yCitAQCAtNzM3Niw0OSArNzU1MCw2NiBAQCBzdGF0aWMg dm9pZAorIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCisg eworICAgc3RydWN0IGJyZWFrcG9pbnQgKmI7CistICBzdHJ1Y3QgYnBfbG9jYXRpb24gKipuZXh0 ID0gJmJwX2xvY2F0aW9uX2NoYWluOworLSAgc3RydWN0IGJwX2xvY2F0aW9uICpsb2M7CistICBz dHJ1Y3QgYnBfbG9jYXRpb24gKmxvYzI7CistICBWRUMoYnBfbG9jYXRpb25fcCkgKm9sZF9sb2Nh dGlvbnMgPSBOVUxMOworLSAgaW50IHJldDsKKy0gIGludCBpeDsKKysgIHN0cnVjdCBicF9sb2Nh dGlvbiAqKmxvY3AsICpsb2M7CisgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cHM7CisgCistICBj bGVhbnVwcyA9IG1ha2VfY2xlYW51cCAoZG9fdmVjX2ZyZWUsICZvbGRfbG9jYXRpb25zKTsKKy0g IC8qIFN0b3JlIG9sZCBsb2NhdGlvbnMgZm9yIGZ1dHVyZSByZWZlcmVuY2UuICAqLworLSAgZm9y IChsb2MgPSBicF9sb2NhdGlvbl9jaGFpbjsgbG9jOyBsb2MgPSBsb2MtPmdsb2JhbF9uZXh0KQor LSAgICBWRUNfc2FmZV9wdXNoIChicF9sb2NhdGlvbl9wLCBvbGRfbG9jYXRpb25zLCBsb2MpOwor KyAgLyogVGhlIGZpcnN0IGJwX2xvY2F0aW9uIGJlaW5nIHRoZSBvbmx5IG9uZSBub24tRFVQTElD QVRFIGZvciB0aGUgY3VycmVudCBydW4KKysgICAgIG9mIHRoZSBzYW1lIEFERFJFU1MuICAqLwor KyAgc3RydWN0IGJwX2xvY2F0aW9uICpsb2NfZmlyc3Q7CisrCisrICAvKiBTYXZlZCBmb3JtZXIg YnBfbG9jYXRpb24gYXJyYXkgd2hpY2ggd2UgY29tcGFyZSBhZ2FpbnN0IHRoZSBuZXdseSBidWls dAorKyAgICAgYnBfbG9jYXRpb24gZnJvbSB0aGUgY3VycmVudCBzdGF0ZSBvZiBBTExfQlJFQUtQ T0lOVFMuICAqLworKyAgc3RydWN0IGJwX2xvY2F0aW9uICoqb2xkX2xvY2F0aW9uLCAqKm9sZF9s b2NwOworKyAgdW5zaWduZWQgb2xkX2xvY2F0aW9uX2NvdW50OworKworKyAgb2xkX2xvY2F0aW9u ID0gYnBfbG9jYXRpb247CisrICBvbGRfbG9jYXRpb25fY291bnQgPSBicF9sb2NhdGlvbl9jb3Vu dDsKKysgIGJwX2xvY2F0aW9uID0gTlVMTDsKKysgIGJwX2xvY2F0aW9uX2NvdW50ID0gMDsKKysg IGNsZWFudXBzID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgb2xkX2xvY2F0aW9uKTsKKyAKKy0gIGJw X2xvY2F0aW9uX2NoYWluID0gTlVMTDsKKyAgIEFMTF9CUkVBS1BPSU5UUyAoYikKKy0gICAgewor LSAgICAgIGZvciAobG9jID0gYi0+bG9jOyBsb2M7IGxvYyA9IGxvYy0+bmV4dCkKKy0JeworLQkg ICpuZXh0ID0gbG9jOworLQkgIG5leHQgPSAmKGxvYy0+Z2xvYmFsX25leHQpOworLQkgICpuZXh0 ID0gTlVMTDsKKy0JfQorLSAgICB9CisrICAgIGZvciAobG9jID0gYi0+bG9jOyBsb2M7IGxvYyA9 IGxvYy0+bmV4dCkKKysgICAgICBicF9sb2NhdGlvbl9jb3VudCsrOworKworKyAgYnBfbG9jYXRp b24gPSB4bWFsbG9jIChzaXplb2YgKCpicF9sb2NhdGlvbikgKiBicF9sb2NhdGlvbl9jb3VudCk7 CisrICBsb2NwID0gYnBfbG9jYXRpb247CisrICBBTExfQlJFQUtQT0lOVFMgKGIpCisrICAgIGZv ciAobG9jID0gYi0+bG9jOyBsb2M7IGxvYyA9IGxvYy0+bmV4dCkKKysgICAgICAqbG9jcCsrID0g bG9jOworKyAgcXNvcnQgKGJwX2xvY2F0aW9uLCBicF9sb2NhdGlvbl9jb3VudCwgc2l6ZW9mICgq YnBfbG9jYXRpb24pLAorKwkgYnBfbG9jYXRpb25fY29tcGFyZV9mb3JfcXNvcnQpOworKworKyAg YnBfbG9jYXRpb25fdGFyZ2V0X2V4dGVuc2lvbnNfdXBkYXRlICgpOworIAorICAgLyogSWRlbnRp ZnkgYnBfbG9jYXRpb24gaW5zdGFuY2VzIHRoYXQgYXJlIG5vIGxvbmdlciBwcmVzZW50IGluIHRo ZSBuZXcKKyAgICAgIGxpc3QsIGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIGZyZWVkLiAgTm90ZSB0 aGF0IGl0J3Mgbm90IG5lY2Vzc2FyeSB0aGF0CisgICAgICB0aG9zZSBsb2NhdGlvbnMgc2hvdWxk IGJlIHJlbW92ZWQgZnJvbSBpbmZlcmlvciAtLSBpZiB0aGVyZSdzIGFub3RoZXIKKyAgICAgIGxv Y2F0aW9uIGF0IHRoZSBzYW1lIGFkZHJlc3MgKHByZXZpb3VzbHkgbWFya2VkIGFzIGR1cGxpY2F0 ZSksCistICAgICB3ZSBkb24ndCBuZWVkIHRvIHJlbW92ZS9pbnNlcnQgdGhlIGxvY2F0aW9uLiAg Ki8KKy0gIGZvciAoaXggPSAwOyBWRUNfaXRlcmF0ZShicF9sb2NhdGlvbl9wLCBvbGRfbG9jYXRp b25zLCBpeCwgbG9jKTsgKytpeCkKKysgICAgIHdlIGRvbid0IG5lZWQgdG8gcmVtb3ZlL2luc2Vy dCB0aGUgbG9jYXRpb24uCisrICAgICAKKysgICAgIExPQ1AgaXMga2VwdCBpbiBzeW5jIHdpdGgg T0xEX0xPQ1AsIGVhY2ggcG9pbnRpbmcgdG8gdGhlIGN1cnJlbnQgYW5kCisrICAgICBmb3JtZXIg YnBfbG9jYXRpb24gYXJyYXkgc3RhdGUgcmVzcGVjdGl2ZWx5LiAgKi8KKysKKysgIGxvY3AgPSBi cF9sb2NhdGlvbjsKKysgIGZvciAob2xkX2xvY3AgPSBvbGRfbG9jYXRpb247IG9sZF9sb2NwIDwg b2xkX2xvY2F0aW9uICsgb2xkX2xvY2F0aW9uX2NvdW50OworKyAgICAgICBvbGRfbG9jcCsrKQor ICAgICB7CistICAgICAgLyogVGVsbHMgaWYgJ2xvYycgaXMgZm91bmQgYW1vdW5nIHRoZSBuZXcg bG9jYXRpb25zLiAgSWYgbm90LCB3ZQorKyAgICAgIHN0cnVjdCBicF9sb2NhdGlvbiAqb2xkX2xv YyA9ICpvbGRfbG9jcDsKKysKKysgICAgICAvKiBUZWxscyBpZiAnb2xkX2xvYycgaXMgZm91bmQg YW1vdW5nIHRoZSBuZXcgbG9jYXRpb25zLiAgSWYgbm90LCB3ZQorIAkgaGF2ZSB0byBmcmVlIGl0 LiAgKi8KKy0gICAgICBpbnQgZm91bmRfb2JqZWN0ID0gMDsKKysgICAgICBpbnQgZm91bmRfb2Jq ZWN0OworICAgICAgIC8qIFRlbGxzIGlmIHRoZSBsb2NhdGlvbiBzaG91bGQgcmVtYWluIGluc2Vy dGVkIGluIHRoZSB0YXJnZXQuICAqLworICAgICAgIGludCBrZWVwX2luX3RhcmdldCA9IDA7Cisg ICAgICAgaW50IHJlbW92ZWQgPSAwOworLSAgICAgIGZvciAobG9jMiA9IGJwX2xvY2F0aW9uX2No YWluOyBsb2MyOyBsb2MyID0gbG9jMi0+Z2xvYmFsX25leHQpCistCWlmIChsb2MyID09IGxvYykK Ky0JICB7CistCSAgICBmb3VuZF9vYmplY3QgPSAxOworLQkgICAgYnJlYWs7CistCSAgfQorKwor KyAgICAgIC8qIFNraXAgTE9DUCBlbnRyaWVzIHdoaWNoIHdpbGwgZGVmaW5pdGVseSBuZXZlciBi ZSBuZWVkZWQuICBTdG9wIGVpdGhlcgorKwkgYXQgb3IgYmVpbmcgdGhlIG9uZSBtYXRjaGluZyBP TERfTE9DLiAgKi8KKysgICAgICB3aGlsZSAobG9jcCA8IGJwX2xvY2F0aW9uICsgYnBfbG9jYXRp b25fY291bnQKKysJICAgICAmJiBicF9sb2NhdGlvbl9jb21wYXJlICgqbG9jcCwgb2xkX2xvYykg PCAwKQorKwlsb2NwKys7CisrICAgICAgZm91bmRfb2JqZWN0ID0gbG9jcCA8IGJwX2xvY2F0aW9u ICsgYnBfbG9jYXRpb25fY291bnQgJiYgKmxvY3AgPT0gb2xkX2xvYzsKKyAKKyAgICAgICAvKiBJ ZiB0aGlzIGxvY2F0aW9uIGlzIG5vIGxvbmdlciBwcmVzZW50LCBhbmQgaW5zZXJ0ZWQsIGxvb2sg aWYgdGhlcmUncworIAkgbWF5YmUgYSBuZXcgbG9jYXRpb24gYXQgdGhlIHNhbWUgYWRkcmVzcy4g IElmIHNvLCBtYXJrIHRoYXQgb25lIAorQEAgLTc0MjYsMTEgKzc2MTcsMTEgQEAgdXBkYXRlX2ds b2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkKKyAJIGRvbid0IGhhdmUgYSB0 aW1lIHdpbmRvdyB3aGVyZSBhIGJyZWFrcG9pbnQgYXQgY2VydGFpbiBsb2NhdGlvbiBpcyBub3QK KyAJIGluc2VydGVkLiAgKi8KKyAKKy0gICAgICBpZiAobG9jLT5pbnNlcnRlZCkKKysgICAgICBp ZiAob2xkX2xvYy0+aW5zZXJ0ZWQpCisgCXsKKyAJICAvKiBJZiB0aGUgbG9jYXRpb24gaXMgaW5z ZXJ0ZWQgbm93LCB3ZSBtaWdodCBoYXZlIHRvIHJlbW92ZSBpdC4gICovCisgCistCSAgaWYgKGZv dW5kX29iamVjdCAmJiBzaG91bGRfYmVfaW5zZXJ0ZWQgKGxvYykpCisrCSAgaWYgKGZvdW5kX29i amVjdCAmJiBzaG91bGRfYmVfaW5zZXJ0ZWQgKG9sZF9sb2MpKQorIAkgICAgeworIAkgICAgICAv KiBUaGUgbG9jYXRpb24gaXMgc3RpbGwgcHJlc2VudCBpbiB0aGUgbG9jYXRpb24gbGlzdCwgYW5k IHN0aWxsCisgCQkgc2hvdWxkIGJlIGluc2VydGVkLiAgRG9uJ3QgZG8gYW55dGhpbmcuICAqLwor QEAgLTc0NDEsMzcgKzc2MzIsNDYgQEAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0IChpbnQg c2hvdWxkX2luc2VydCkKKyAJICAgICAgLyogVGhlIGxvY2F0aW9uIGlzIGVpdGhlciBubyBsb25n ZXIgcHJlc2VudCwgb3IgZ290IGRpc2FibGVkLgorIAkJIFNlZSBpZiB0aGVyZSdzIGFub3RoZXIg bG9jYXRpb24gYXQgdGhlIHNhbWUgYWRkcmVzcywgaW4gd2hpY2ggCisgCQkgY2FzZSB3ZSBkb24n dCBuZWVkIHRvIHJlbW92ZSB0aGlzIG9uZSBmcm9tIHRoZSB0YXJnZXQuICAqLworLQkgICAgICBp ZiAoYnJlYWtwb2ludF9hZGRyZXNzX2lzX21lYW5pbmdmdWwgKGxvYy0+b3duZXIpKQorLQkJZm9y IChsb2MyID0gYnBfbG9jYXRpb25fY2hhaW47IGxvYzI7IGxvYzIgPSBsb2MyLT5nbG9iYWxfbmV4 dCkKKy0JCSAgeworLQkJICAgIC8qIEZvciB0aGUgc2FrZSBvZiBzaG91bGRfaW5zZXJ0X2xvY2F0 aW9uLiAgVGhlCistCQkgICAgICAgY2FsbCB0byBjaGVja19kdXBsaWNhdGVzIHdpbGwgZml4IHVw IHRoaXMgbGF0ZXIuICAqLworLQkJICAgIGxvYzItPmR1cGxpY2F0ZSA9IDA7CistCQkgICAgaWYg KHNob3VsZF9iZV9pbnNlcnRlZCAobG9jMikKKy0JCQkmJiBsb2MyICE9IGxvYyAmJiBsb2MyLT5h ZGRyZXNzID09IGxvYy0+YWRkcmVzcykKKy0JCSAgICAgIHsJCSAgCistCQkJbG9jMi0+aW5zZXJ0 ZWQgPSAxOworLQkJCWxvYzItPnRhcmdldF9pbmZvID0gbG9jLT50YXJnZXRfaW5mbzsKKy0JCQlr ZWVwX2luX3RhcmdldCA9IDE7CistCQkJYnJlYWs7CistCQkgICAgICB9CistCQkgIH0KKysKKysJ ICAgICAgaWYgKGJyZWFrcG9pbnRfYWRkcmVzc19pc19tZWFuaW5nZnVsIChvbGRfbG9jLT5vd25l cikpCisrCQl7CisrCQkgIHN0cnVjdCBicF9sb2NhdGlvbiAqKmxvYzJwOworKworKwkJICBmb3Ig KGxvYzJwID0gbG9jcDsKKysJCSAgICAgICBsb2MycCA8IGJwX2xvY2F0aW9uICsgYnBfbG9jYXRp b25fY291bnQKKysJCSAgICAgICAmJiAoKmxvYzJwKS0+YWRkcmVzcyA9PSBvbGRfbG9jLT5hZGRy ZXNzOworKwkJICAgICAgIGxvYzJwKyspCisrCQkgICAgeworKwkJICAgICAgc3RydWN0IGJwX2xv Y2F0aW9uICpsb2MyID0gKmxvYzJwOworKworKwkJICAgICAgLyogRm9yIHRoZSBzYWtlIG9mIHNo b3VsZF9iZV9pbnNlcnRlZC4KKysJCQkgRHVwbGljYXRlcyBjaGVjayBiZWxvdyB3aWxsIGZpeCB1 cCB0aGlzIGxhdGVyLiAgKi8KKysJCSAgICAgIGxvYzItPmR1cGxpY2F0ZSA9IDA7CisrCQkgICAg ICBpZiAobG9jMiAhPSBvbGRfbG9jICYmIHNob3VsZF9iZV9pbnNlcnRlZCAobG9jMikpCisrCQkJ ewkJICAKKysJCQkgIGxvYzItPmluc2VydGVkID0gMTsKKysJCQkgIGxvYzItPnRhcmdldF9pbmZv ID0gb2xkX2xvYy0+dGFyZ2V0X2luZm87CisrCQkJICBrZWVwX2luX3RhcmdldCA9IDE7CisrCQkJ ICBicmVhazsKKysJCQl9CisrCQkgICAgfQorKwkJfQorIAkgICAgfQorIAorIAkgIGlmICgha2Vl cF9pbl90YXJnZXQpCisgCSAgICB7CistCSAgICAgIGlmIChyZW1vdmVfYnJlYWtwb2ludCAobG9j LCBtYXJrX3VuaW5zZXJ0ZWQpKQorKwkgICAgICBpZiAocmVtb3ZlX2JyZWFrcG9pbnQgKG9sZF9s b2MsIG1hcmtfdW5pbnNlcnRlZCkpCisgCQl7CisgCQkgIC8qIFRoaXMgaXMganVzdCBhYm91dCBh bGwgd2UgY2FuIGRvLiAgV2UgY291bGQga2VlcCB0aGlzCisgCQkgICAgIGxvY2F0aW9uIG9uIHRo ZSBnbG9iYWwgbGlzdCwgYW5kIHRyeSB0byByZW1vdmUgaXQgbmV4dAorIAkJICAgICB0aW1lLCBi dXQgdGhlcmUncyBubyBwYXJ0aWN1bGFyIHJlYXNvbiB3aHkgd2Ugd2lsbAorIAkJICAgICBzdWNj ZWVkIG5leHQgdGltZS4gIAorIAkJICAgICAKKy0JCSAgICAgTm90ZSB0aGF0IGF0IHRoaXMgcG9p bnQsIGxvYy0+b3duZXIgaXMgc3RpbGwgdmFsaWQsCisrCQkgICAgIE5vdGUgdGhhdCBhdCB0aGlz IHBvaW50LCBvbGRfbG9jLT5vd25lciBpcyBzdGlsbCB2YWxpZCwKKyAJCSAgICAgYXMgZGVsZXRl X2JyZWFrcG9pbnQgZnJlZXMgdGhlIGJyZWFrcG9pbnQgb25seQorIAkJICAgICBhZnRlciBjYWxs aW5nIHVzLiAgKi8KKyAJCSAgcHJpbnRmX2ZpbHRlcmVkIChfKCJ3YXJuaW5nOiBFcnJvciByZW1v dmluZyBicmVha3BvaW50ICVkXG4iKSwgCistCQkJCSAgIGxvYy0+b3duZXItPm51bWJlcik7Cisr CQkJCSAgIG9sZF9sb2MtPm93bmVyLT5udW1iZXIpOworIAkJfQorIAkgICAgICByZW1vdmVkID0g MTsKKyAJICAgIH0KK0BAIC03NDkzLDE5ICs3NjkzLDU5IEBAIHVwZGF0ZV9nbG9iYWxfbG9jYXRp b25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCisgCQkgbG9uZ2VyIG5lZWQgdG8ga2VlcCB0aGlz IGJyZWFrcG9pbnQuICBUaGlzIGlzIGp1c3QgYQorIAkJIGhldXJpc3RpYywgYnV0IGlmIGl0J3Mg d3JvbmcsIHdlJ2xsIHJlcG9ydCB1bmV4cGVjdGVkIFNJR1RSQVAsCisgCQkgd2hpY2ggaXMgdXNh YmlsaXR5IGlzc3VlLCBidXQgbm90IGEgY29ycmVjdG5lc3MgcHJvYmxlbS4gICovCistCSAgICAg IGxvYy0+ZXZlbnRzX3RpbGxfcmV0aXJlbWVudCA9IDMgKiAodGhyZWFkX2NvdW50ICgpICsgMSk7 CistCSAgICAgIGxvYy0+b3duZXIgPSBOVUxMOworKwkgICAgICBvbGRfbG9jLT5ldmVudHNfdGls bF9yZXRpcmVtZW50ID0gMyAqICh0aHJlYWRfY291bnQgKCkgKyAxKTsKKysJICAgICAgb2xkX2xv Yy0+b3duZXIgPSBOVUxMOworIAorLQkgICAgICBWRUNfc2FmZV9wdXNoIChicF9sb2NhdGlvbl9w LCBtb3JpYnVuZF9sb2NhdGlvbnMsIGxvYyk7CisrCSAgICAgIFZFQ19zYWZlX3B1c2ggKGJwX2xv Y2F0aW9uX3AsIG1vcmlidW5kX2xvY2F0aW9ucywgb2xkX2xvYyk7CisgCSAgICB9CisgCSAgZWxz ZQorLQkgICAgZnJlZV9icF9sb2NhdGlvbiAobG9jKTsKKysJICAgIGZyZWVfYnBfbG9jYXRpb24g KG9sZF9sb2MpOworIAl9CisgICAgIH0KKyAKKy0gIEFMTF9CUkVBS1BPSU5UUyAoYikKKysgIC8q IFJlc2NhbiBicmVha3BvaW50cyBhdCB0aGUgc2FtZSBhZGRyZXNzIGFuZCBzZWN0aW9uLAorKyAg ICAgbWFya2luZyB0aGUgZmlyc3Qgb25lIGFzICJmaXJzdCIgYW5kIGFueSBvdGhlcnMgYXMgImR1 cGxpY2F0ZXMiLgorKyAgICAgVGhpcyBpcyBzbyB0aGF0IHRoZSBicHQgaW5zdHJ1Y3Rpb24gaXMg b25seSBpbnNlcnRlZCBvbmNlLgorKyAgICAgSWYgd2UgaGF2ZSBhIHBlcm1hbmVudCBicmVha3Bv aW50IGF0IHRoZSBzYW1lIHBsYWNlIGFzIEJQVCwgbWFrZQorKyAgICAgdGhhdCBvbmUgdGhlIG9m ZmljaWFsIG9uZSwgYW5kIHRoZSByZXN0IGFzIGR1cGxpY2F0ZXMuICBQZXJtYW5lbnQKKysgICAg IGJyZWFrcG9pbnRzIGFyZSBzb3J0ZWQgZmlyc3QgZm9yIHRoZSBzYW1lIGFkZHJlc3MuICAqLwor KworKyAgbG9jX2ZpcnN0ID0gTlVMTDsKKysgIEFMTF9CUF9MT0NBVElPTlMgKGxvYywgbG9jcCkK KyAgICAgeworLSAgICAgIGNoZWNrX2R1cGxpY2F0ZXMgKGIpOworKyAgICAgIHN0cnVjdCBicmVh a3BvaW50ICpiID0gbG9jLT5vd25lcjsKKysKKysgICAgICBpZiAoYi0+ZW5hYmxlX3N0YXRlID09 IGJwX2Rpc2FibGVkCisrCSAgfHwgYi0+ZW5hYmxlX3N0YXRlID09IGJwX2NhbGxfZGlzYWJsZWQK KysJICB8fCBiLT5lbmFibGVfc3RhdGUgPT0gYnBfc3RhcnR1cF9kaXNhYmxlZAorKwkgIHx8ICFs b2MtPmVuYWJsZWQKKysJICB8fCBsb2MtPnNobGliX2Rpc2FibGVkCisrCSAgfHwgIWJyZWFrcG9p bnRfYWRkcmVzc19pc19tZWFuaW5nZnVsIChiKSkKKysJY29udGludWU7CisrCisrICAgICAgLyog UGVybWFuZW50IGJyZWFrcG9pbnQgc2hvdWxkIGFsd2F5cyBiZSBpbnNlcnRlZC4gICovCisrICAg ICAgaWYgKGItPmVuYWJsZV9zdGF0ZSA9PSBicF9wZXJtYW5lbnQgJiYgISBsb2MtPmluc2VydGVk KQorKwlpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAorKwkJCV8oImFsbGVnZWRs eSBwZXJtYW5lbnQgYnJlYWtwb2ludCBpcyBub3QgIgorKwkJCSJhY3R1YWxseSBpbnNlcnRlZCIp KTsKKysKKysgICAgICBpZiAobG9jX2ZpcnN0ID09IE5VTEwKKysJICAvKiBhZGRyZXNzIC8gb3Zl cmxheSBtYXRjaCAqLworKwkgIHx8IGxvYy0+YWRkcmVzcyAhPSBsb2NfZmlyc3QtPmFkZHJlc3MK KysJICB8fCAob3ZlcmxheV9kZWJ1Z2dpbmcgJiYgbG9jLT5zZWN0aW9uICE9IGxvY19maXJzdC0+ c2VjdGlvbikpCisrCXsKKysJICBsb2NfZmlyc3QgPSBsb2M7CisrCSAgbG9jLT5kdXBsaWNhdGUg PSAwOworKwkgIGNvbnRpbnVlOworKwl9CisrCisrICAgICAgbG9jLT5kdXBsaWNhdGUgPSAxOwor KworKyAgICAgIGlmIChsb2NfZmlyc3QtPm93bmVyLT5lbmFibGVfc3RhdGUgPT0gYnBfcGVybWFu ZW50ICYmIGxvYy0+aW5zZXJ0ZWQKKysgICAgICAgICAgJiYgYi0+ZW5hYmxlX3N0YXRlICE9IGJw X3Blcm1hbmVudCkKKysJaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKKysJCQlf KCJhbm90aGVyIGJyZWFrcG9pbnQgd2FzIGluc2VydGVkIG9uIHRvcCBvZiAiCisrCQkJImEgcGVy bWFuZW50IGJyZWFrcG9pbnQiKSk7CisgICAgIH0KKyAKKyAgIGlmIChicmVha3BvaW50c19hbHdh eXNfaW5zZXJ0ZWRfbW9kZSAoKSAmJiBzaG91bGRfaW5zZXJ0CitAQCAtNzY4MSw2ICs3OTIxLDcg QEAgZGVsZXRlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQorIAkgICAgJiYgYi0+ dHlwZSAhPSBicF90aHJlYWRfZXZlbnQKKyAJICAgICYmIGItPnR5cGUgIT0gYnBfb3ZlcmxheV9l dmVudAorIAkgICAgJiYgYi0+dHlwZSAhPSBicF9sb25nam1wX21hc3RlcgorKwkgICAgJiYgYi0+ dHlwZSAhPSBicF9leGNlcHRpb25fbWFzdGVyCisgCSAgICAmJiBiLT5udW1iZXIgPj0gMCkKKyAJ ICB7CisgCSAgICBicmVha3NfdG9fZGVsZXRlID0gMTsKK0BAIC03NzAwLDYgKzc5NDEsNyBAQCBk ZWxldGVfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCisgCQkmJiBiLT50eXBlICE9 IGJwX2ppdF9ldmVudAorIAkJJiYgYi0+dHlwZSAhPSBicF9vdmVybGF5X2V2ZW50CisgCQkmJiBi LT50eXBlICE9IGJwX2xvbmdqbXBfbWFzdGVyCisrCQkmJiBiLT50eXBlICE9IGJwX2V4Y2VwdGlv bl9tYXN0ZXIKKyAJCSYmIGItPm51bWJlciA+PSAwKQorIAkgICAgICBkZWxldGVfYnJlYWtwb2lu dCAoYik7CisgCSAgfQorQEAgLTgwMDIsNiArODI0NCw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29u ZSAodm9pZCAqYmludCkKKyAJIHJlc2V0IGxhdGVyIGJ5IGJyZWFrcG9pbnRfcmVfc2V0LiAgKi8K KyAgICAgY2FzZSBicF9vdmVybGF5X2V2ZW50OgorICAgICBjYXNlIGJwX2xvbmdqbXBfbWFzdGVy OgorKyAgICBjYXNlIGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CisgICAgICAgZGVsZXRlX2JyZWFrcG9p bnQgKGIpOworICAgICAgIGJyZWFrOworIAorQEAgLTgwMjUsNiArODI2OCw4IEBAIGJyZWFrcG9p bnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKKyAgICAgY2FzZSBicF9sb25nam1wOgorICAgICBj YXNlIGJwX2xvbmdqbXBfcmVzdW1lOgorICAgICBjYXNlIGJwX2ppdF9ldmVudDoKKysgICAgY2Fz ZSBicF9leGNlcHRpb246CisrICAgIGNhc2UgYnBfZXhjZXB0aW9uX3Jlc3VtZToKKyAgICAgICBi cmVhazsKKyAgICAgfQorIAorQEAgLTgwNjAsNiArODMwNSw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0 ICh2b2lkKQorICAgY3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJfbG9uZ2ptcCIp OworICAgY3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJzaWdsb25nam1wIik7Cisg ICBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAoIl9zaWdsb25nam1wIik7CisrICBj cmVhdGVfZXhjZXB0aW9uX21hc3Rlcl9icmVha3BvaW50ICgpOworIH0KKyAMCisgLyogUmVzZXQg dGhlIHRocmVhZCBudW1iZXIgb2YgdGhpcyBicmVha3BvaW50OgorQEAgLTg4NzEsNiArOTExNywy MiBAQCBhbGxfdHJhY2Vwb2ludHMgKCkKKyAgIHJldHVybiB0cF92ZWM7CisgfQorIAorKy8qIENh bGwgdHlwZV9tYXJrX3VzZWQgZm9yIGFueSBUWVBFcyByZWZlcmVuY2VkIGZyb20gdGhpcyBHREIg c291cmNlIGZpbGUuICAqLworKworK3N0YXRpYyB2b2lkCisrYnJlYWtwb2ludF90eXBlc19tYXJr X3VzZWQgKHZvaWQpCisreworKyAgc3RydWN0IGJyZWFrcG9pbnQgKmI7CisrCisrICBBTExfQlJF QUtQT0lOVFMgKGIpCisrICAgIHsKKysgICAgICBpZiAoYi0+ZXhwKQorKwlleHBfdHlwZXNfbWFy a191c2VkIChiLT5leHApOworKyAgICAgIGlmIChiLT52YWwpCisrCXR5cGVfbWFya191c2VkICh2 YWx1ZV90eXBlIChiLT52YWwpKTsKKysgICAgfQorK30KKysKKyAMCisgLyogVGhpcyBoZWxwIHN0 cmluZyBpcyB1c2VkIGZvciB0aGUgYnJlYWssIGhicmVhaywgdGJyZWFrIGFuZCB0aGJyZWFrIGNv bW1hbmRzLgorICAgIEl0IGlzIGRlZmluZWQgYXMgYSBtYWNybyB0byBwcmV2ZW50IGR1cGxpY2F0 aW9uLgorQEAgLTkzNzMsNCArOTYzNSw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIGdk YiBiZWhhdmVzIGFzIGlmIGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKKyAgIGF1dG9t YXRpY19oYXJkd2FyZV9icmVha3BvaW50cyA9IDE7CisgCisgICBvYnNlcnZlcl9hdHRhY2hfYWJv dXRfdG9fcHJvY2VlZCAoYnJlYWtwb2ludF9hYm91dF90b19wcm9jZWVkKTsKKysgIG9ic2VydmVy X2F0dGFjaF9tYXJrX3VzZWQgKGJyZWFrcG9pbnRfdHlwZXNfbWFya191c2VkKTsKKyB9CitkaWZm IC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuaCBiL2dkYi9icmVha3BvaW50LmgKK2luZGV4IDcwYjEz OTguLjBmMDViNWEgMTAwNjQ0CistLS0gYS9nZGIvYnJlYWtwb2ludC5oCisrKysgYi9nZGIvYnJl YWtwb2ludC5oCitAQCAtNTUsNiArNTUsMTMgQEAgZW51bSBicHR5cGUKKyAgICAgYnBfbG9uZ2pt cCwJCQkvKiBzZWNyZXQgYnJlYWtwb2ludCB0byBmaW5kIGxvbmdqbXAoKSAqLworICAgICBicF9s b25nam1wX3Jlc3VtZSwJCS8qIHNlY3JldCBicmVha3BvaW50IHRvIGVzY2FwZSBsb25nam1wKCkg Ki8KKyAKKysgICAgLyogQW4gaW50ZXJuYWwgYnJlYWtwb2ludCB0aGF0IGlzIGluc3RhbGxlZCBv biB0aGUgdW53aW5kZXIncworKyAgICAgICBkZWJ1ZyBob29rLiAgKi8KKysgICAgYnBfZXhjZXB0 aW9uLAorKyAgICAvKiBBbiBpbnRlcm5hbCBicmVha3BvaW50IHRoYXQgaXMgc2V0IGF0IHRoZSBw b2ludCB3aGVyZSBhbgorKyAgICAgICBleGNlcHRpb24gd2lsbCBsYW5kLiAgKi8KKysgICAgYnBf ZXhjZXB0aW9uX3Jlc3VtZSwKKysKKyAgICAgLyogVXNlZCBieSB3YWl0X2Zvcl9pbmZlcmlvciBm b3Igc3RlcHBpbmcgb3ZlciBzdWJyb3V0aW5lIGNhbGxzLCBmb3IKKyAgICAgICAgc3RlcHBpbmcg b3ZlciBzaWduYWwgaGFuZGxlcnMsIGFuZCBmb3Igc2tpcHBpbmcgcHJvbG9ndWVzLiAgKi8KKyAg ICAgYnBfc3RlcF9yZXN1bWUsCitAQCAtMTE3LDYgKzEyNCw5IEBAIGVudW0gYnB0eXBlCisgCisg ICAgIGJwX2xvbmdqbXBfbWFzdGVyLAorIAorKyAgICAvKiBMaWtlIGJwX2xvbmdqbXBfbWFzdGVy LCBidXQgZm9yIGV4Y2VwdGlvbnMuICAqLworKyAgICBicF9leGNlcHRpb25fbWFzdGVyLAorKwor ICAgICBicF9jYXRjaHBvaW50LAorIAorICAgICBicF90cmFjZXBvaW50LAorQEAgLTIyNywxMCAr MjM3LDYgQEAgc3RydWN0IGJwX2xvY2F0aW9uCisgICAgICB0aGUgc2FtZSBwYXJlbnQgYnJlYWtw b2ludC4gICovCisgICBzdHJ1Y3QgYnBfbG9jYXRpb24gKm5leHQ7CisgCistICAvKiBQb2ludGVy IHRvIHRoZSBuZXh0IGJyZWFrcG9pbnQgbG9jYXRpb24sIGluIGEgZ2xvYmFsCistICAgICBsaXN0 IG9mIGFsbCBicmVha3BvaW50IGxvY2F0aW9ucy4gICovCistICBzdHJ1Y3QgYnBfbG9jYXRpb24g Kmdsb2JhbF9uZXh0OworLSAKKyAgIC8qIFR5cGUgb2YgdGhpcyBicmVha3BvaW50IGxvY2F0aW9u LiAgKi8KKyAgIGVudW0gYnBfbG9jX3R5cGUgbG9jX3R5cGU7CisgCitAQCAtNTczLDYgKzU3OSwx MCBAQCBzdHJ1Y3QgYnBzdGF0X3doYXQKKyAgICAgICAgY29udGludWluZyBmcm9tIGEgY2FsbCBk dW1teSB3aXRob3V0IHBvcHBpbmcgdGhlIGZyYW1lIGlzIG5vdCBhCisgICAgICAgIHVzZWZ1bCBv bmUpLiAgKi8KKyAgICAgaW50IGNhbGxfZHVtbXk7CisrCisrICAgIC8qIFVzZWQgZm9yIEJQU1RB VF9XSEFUX1NFVF9MT05HSk1QX1JFU1VNRS4gIFRydWUgaWYgd2UgYXJlCisrICAgICAgIGhhbmRs aW5nIGEgbG9uZ2ptcCwgZmFsc2UgaWYgd2UgYXJlIGhhbmRsaW5nIGFuIGV4Y2VwdGlvbi4gICov CisrICAgIGludCBpc19sb25nam1wOworICAgfTsKKyAKKyAvKiBUaGUgcG9zc2libGUgcmV0dXJu IHZhbHVlcyBmb3IgcHJpbnRfYnBzdGF0LCBwcmludF9pdF9ub3JtYWwsCitAQCAtOTI3LDYgKzkz Nyw5IEBAIGV4dGVybiB2b2lkIGJyZWFrcG9pbnRfcmV0aXJlX21vcmlidW5kICh2b2lkKTsKKyAv KiBUZWxsIGEgYnJlYWtwb2ludCB0byBiZSBxdWlldC4gICovCisgZXh0ZXJuIHZvaWQgbWFrZV9i cmVha3BvaW50X3NpbGVudCAoc3RydWN0IGJyZWFrcG9pbnQgKik7CisgCisrLyogU2V0IGJyZWFr IGNvbmRpdGlvbiBvZiBicmVha3BvaW50IEIgdG8gRVhQLiAgKi8KKytleHRlcm4gdm9pZCBzZXRf YnJlYWtwb2ludF9jb25kaXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiLCBjaGFyICpleHAsIGlu dCBmcm9tX3R0eSk7CisrCisgLyogUmV0dXJuIGEgdHJhY2Vwb2ludCB3aXRoIHRoZSBnaXZlbiBu dW1iZXIgaWYgZm91bmQuICAqLworIGV4dGVybiBzdHJ1Y3QgYnJlYWtwb2ludCAqZ2V0X3RyYWNl cG9pbnQgKGludCBudW0pOworIAorZGlmZiAtLWdpdCBhL2dkYi9jLWV4cC55IGIvZ2RiL2MtZXhw LnkKK2luZGV4IGY4ZTRmMTIuLjViNDdlMmUgMTAwNjQ0CistLS0gYS9nZGIvYy1leHAueQorKysr IGIvZ2RiL2MtZXhwLnkKK0BAIC0xMTcsNiArMTE3LDggQEAgc3RhdGljIGludCB5eWxleCAodm9p ZCk7CisgCisgdm9pZCB5eWVycm9yIChjaGFyICopOworIAorKy8qIENsZWFudXAgZm9yICdub25l bXB0eV90eXBlbGlzdCcgKi8KKytzdGF0aWMgc3RydWN0IGNsZWFudXAgKnR5cGVsaXN0X2NsZWFu dXA7CisgJX0KKyAKKyAvKiBBbHRob3VnaCB0aGUgeWFjYyAidmFsdWUiIG9mIGFuIGV4cHJlc3Np b24gaXMgbm90IHVzZWQsCitAQCAtMTU3LDYgKzE1OSw3IEBAIHZvaWQgeXllcnJvciAoY2hhciAq KTsKKyAleworIC8qIFlZU1RZUEUgZ2V0cyBkZWZpbmVkIGJ5ICV1bmlvbiAqLworIHN0YXRpYyBp bnQgcGFyc2VfbnVtYmVyIChjaGFyICosIGludCwgaW50LCBZWVNUWVBFICopOworK3N0YXRpYyBz dHJ1Y3Qgc3Rva2VuIG9wZXJhdG9yX3N0b2tlbiAoY29uc3QgY2hhciAqKTsKKyAlfQorIAorICV0 eXBlIDx2b2lkdmFsPiBleHAgZXhwMSB0eXBlX2V4cCBzdGFydCB2YXJpYWJsZSBxdWFsaWZpZWRf bmFtZSBsY3VybHkKK0BAIC0xOTksOSArMjAyLDEyIEBAIHN0YXRpYyBpbnQgcGFyc2VfbnVtYmVy IChjaGFyICosIGludCwgaW50LCBZWVNUWVBFICopOworIAorICV0b2tlbiA8c3N5bT4gTkFNRV9P Ul9JTlQgCiAgCisrJXRva2VuIE9QRVJBVE9SCisgJXRva2VuIFNUUlVDVCBDTEFTUyBVTklPTiBF TlVNIFNJWkVPRiBVTlNJR05FRCBDT0xPTkNPTE9OCisgJXRva2VuIFRFTVBMQVRFCisgJXRva2Vu IEVSUk9SCisrJXRva2VuIE5FVyBERUxFVEUKKysldHlwZSA8c3ZhbD4gb3BlcmF0b3IKKyAKKyAv KiBTcGVjaWFsIHR5cGUgY2FzZXMsIHB1dCBpbiB0byBhbGxvdyB0aGUgcGFyc2VyIHRvIGRpc3Rp bmd1aXNoIGRpZmZlcmVudAorICAgIGxlZ2FsIGJhc2V0eXBlcy4gICovCiBAQCAtNDAxLDYgKzQw NywzNiBAQCBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKICAJ CQl7IGFyZ2xpc3RfbGVuKys7IH0KICAJOwpAQCAtMTAxNywyNyArMjIxMSw3IEBAIGluZGV4IGFh Y2MxMTIuLmUyMDY5ODMgMTAwNjQ0CiAgLyogVGFrZSBjYXJlIG9mIHBhcnNpbmcgYSBudW1iZXIg KGFueXRoaW5nIHRoYXQgc3RhcnRzIHdpdGggYSBkaWdpdCkuCiAgICAgU2V0IHl5bHZhbCBhbmQg cmV0dXJuIHRoZSB0b2tlbiB0eXBlOyB1cGRhdGUgbGV4cHRyLgogICAgIExFTiBpcyB0aGUgbnVt YmVyIG9mIGNoYXJhY3RlcnMgaW4gaXQuICAqLwotQEAgLTE2NjQsNyArMTg0NSw4IEBAIHN0cnVj dCB0b2tlbgotIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdG9rZW4gdG9rZW50YWIzW10gPQotICAgewot ICAgICB7Ij4+PSIsIEFTU0lHTl9NT0RJRlksIEJJTk9QX1JTSCwgMH0sCi0tICAgIHsiPDw9Iiwg QVNTSUdOX01PRElGWSwgQklOT1BfTFNILCAwfQotKyAgICB7Ijw8PSIsIEFTU0lHTl9NT0RJRlks IEJJTk9QX0xTSCwgMH0sCi0rICAgIHsiLT4qIiwgQVJST1dfU1RBUiwgQklOT1BfRU5ELCAxfQot ICAgfTsKLSAKLSBzdGF0aWMgY29uc3Qgc3RydWN0IHRva2VuIHRva2VudGFiMltdID0KLUBAIC0x Njg4LDcgKzE4NzAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRva2VuIHRva2VudGFiMltdID0K LSAgICAgeyI9PSIsIEVRVUFMLCBCSU5PUF9FTkQsIDB9LAotICAgICB7IiE9IiwgTk9URVFVQUws IEJJTk9QX0VORCwgMH0sCi0gICAgIHsiPD0iLCBMRVEsIEJJTk9QX0VORCwgMH0sCi0tICAgIHsi Pj0iLCBHRVEsIEJJTk9QX0VORCwgMH0KLSsgICAgeyI+PSIsIEdFUSwgQklOT1BfRU5ELCAwfSwK LSsgICAgeyIuKiIsIERPVF9TVEFSLCBCSU5PUF9FTkQsIDB9Ci0gICB9OwotIAotIC8qIElkZW50 aWZpZXItbGlrZSB0b2tlbnMuICAqLwotQEAgLTE3MTAsNiArMTg5Myw5IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdG9rZW4gaWRlbnRfdG9rZW5zW10gPQorQEAgLTE3MTQsNiArMTg5NSw5IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdG9rZW4gaWRlbnRfdG9rZW5zW10gPQogICAgICB7ImxvbmciLCBM T05HLCBPUF9OVUxMLCAwfSwKICAgICAgeyJ0cnVlIiwgVFJVRUtFWVdPUkQsIE9QX05VTEwsIDF9 LAogICAgICB7ImludCIsIElOVF9LRVlXT1JELCBPUF9OVUxMLCAwfSwKQEAgLTEwNDcsNyArMjIy MSw3IEBAIGluZGV4IGFhY2MxMTIuLmUyMDY5ODMgMTAwNjQ0CiAgCiAgICAgIHsiYW5kIiwgQU5E QU5ELCBCSU5PUF9FTkQsIDF9LAogICAgICB7ImFuZF9lcSIsIEFTU0lHTl9NT0RJRlksIEJJTk9Q X0JJVFdJU0VfQU5ELCAxfSwKLUBAIC0xODE4LDYgKzIwMDQsMTMgQEAgc3RhdGljIGludCBsYXN0 X3dhc19zdHJ1Y3RvcDsKK0BAIC0xODIyLDYgKzIwMDYsMTMgQEAgc3RhdGljIGludCBsYXN0X3dh c19zdHJ1Y3RvcDsKICBzdGF0aWMgaW50CiAgeXlsZXggKHZvaWQpCiAgewpAQCAtMTA2MSw3ICsy MjM1LDcgQEAgaW5kZXggYWFjYzExMi4uZTIwNjk4MyAxMDA2NDQKICAgIGludCBjOwogICAgaW50 IG5hbWVsZW47CiAgICB1bnNpZ25lZCBpbnQgaTsKLUBAIC0xODI2LDkgKzIwMTksMTkgQEAgeXls ZXggKHZvaWQpCitAQCAtMTgzMCw5ICsyMDIxLDE5IEBAIHl5bGV4ICh2b2lkKQogICAgY2hhciAq Y29weTsKICAKICAgIGxhc3Rfd2FzX3N0cnVjdG9wID0gMDsKQEAgLTEwODMsMTAgKzIyNTcsMTAg QEAgaW5kZXggYWFjYzExMi4uZTIwNjk4MyAxMDA2NDQKICAgIC8qIENoZWNrIGlmIHRoaXMgaXMg YSBtYWNybyBpbnZvY2F0aW9uIHRoYXQgd2UgbmVlZCB0byBleHBhbmQuICAqLwogICAgaWYgKCEg c2Nhbm5pbmdfbWFjcm9fZXhwYW5zaW9uICgpKQogICAgICB7Ci1AQCAtMTg1NiwxMCArMjA1OSwx OSBAQCB5eWxleCAodm9pZCkKLSAgIGZvciAoaSA9IDA7IGkgPCBzaXplb2YgdG9rZW50YWIyIC8g c2l6ZW9mIHRva2VudGFiMlswXTsgaSsrKQotICAgICBpZiAoc3RybmNtcCAodG9rc3RhcnQsIHRv a2VudGFiMltpXS5vcGVyYXRvciwgMikgPT0gMCkKLSAgICAgICB7CitAQCAtMTg2OCwxMCArMjA2 OSwxOSBAQCB5eWxleCAodm9pZCkKKyAJICAgICYmIHBhcnNlX2xhbmd1YWdlLT5sYV9sYW5ndWFn ZSAhPSBsYW5ndWFnZV9jcGx1cykKKyAJICBicmVhazsKKyAKICsJaWYgKHRva2VudGFiMltpXS50 b2tlbiA9PSBDT0xPTkNPTE9OKQogKwkgIHsKICsJICAgIG5hbWVfcHJlZml4X2xlbiArPSAyOwpA QCAtMTEwMyw3ICsyMjc3LDcgQEAgaW5kZXggYWFjYzExMi4uZTIwNjk4MyAxMDA2NDQKICAJcmV0 dXJuIHRva2VudGFiMltpXS50b2tlbjsKICAgICAgICB9CiAgCi1AQCAtMTg4OCw2ICsyMTAwLDgg QEAgeXlsZXggKHZvaWQpCitAQCAtMTkwMCw2ICsyMTEwLDggQEAgeXlsZXggKHZvaWQpCiAgICAg ICAgICByZXR1cm4gMDsKICAKICAgICAgY2FzZSAnICc6CkBAIC0xMTEyLDcgKzIyODYsNyBAQCBp bmRleCBhYWNjMTEyLi5lMjA2OTgzIDEwMDY0NAogICAgICBjYXNlICdcdCc6CiAgICAgIGNhc2Ug J1xuJzoKICAgICAgICBsZXhwdHIrKzsKLUBAIC0yMDQ1LDExICsyMjU5LDEzIEBAIHl5bGV4ICh2 b2lkKQorQEAgLTIwNTcsMTEgKzIyNjksMTMgQEAgeXlsZXggKHZvaWQpCiAgICAgIGVycm9yICgi SW52YWxpZCBjaGFyYWN0ZXIgJyVjJyBpbiBleHByZXNzaW9uLiIsIGMpOwogIAogICAgLyogSXQn cyBhIG5hbWUuICBTZWUgaG93IGxvbmcgaXQgaXMuICAqLwpAQCAtMTEyNiw3ICsyMzAwLDcgQEAg aW5kZXggYWFjYzExMi4uZTIwNjk4MyAxMDA2NDQKICAgICAgICAvKiBUZW1wbGF0ZSBwYXJhbWV0 ZXIgbGlzdHMgYXJlIHBhcnQgb2YgdGhlIG5hbWUuCiAgCSBGSVhNRTogVGhpcyBtaXNoYW5kbGVz IGBwcmludCAkYTw0JiYkYT4zJy4gICovCiAgCi1AQCAtMjExMywxNCArMjMyOSwyOSBAQCB5eWxl eCAodm9pZCkKK0BAIC0yMTI1LDE0ICsyMzM5LDI5IEBAIHl5bGV4ICh2b2lkKQogICAgICAgY3Vy cmVudGx5IGFzIG5hbWVzIG9mIHR5cGVzOyBOQU1FIGZvciBvdGhlciBzeW1ib2xzLgogICAgICAg VGhlIGNhbGxlciBpcyBub3QgY29uc3RyYWluZWQgdG8gY2FyZSBhYm91dCB0aGUgZGlzdGluY3Rp b24uICAqLwogICAgewpAQCAtMTE1Nyw3ICsyMzMxLDcgQEAgaW5kZXggYWFjYzExMi4uZTIwNjk4 MyAxMDA2NDQKICAgICAgLyogQ2FsbCBsb29rdXBfc3ltdGFiLCBub3QgbG9va3VwX3BhcnRpYWxf c3ltdGFiLCBpbiBjYXNlIHRoZXJlIGFyZQogICAgICAgICBubyBwc3ltdGFicyAoY29mZiwgeGNv ZmYsIG9yIHNvbWUgZnV0dXJlIGNoYW5nZSB0byBibG93IGF3YXkgdGhlCiAgICAgICAgIHBzeW10 YWJzIG9uY2Ugb25jZSBzeW1ib2xzIGFyZSByZWFkKS4gICovCi1AQCAtMjE3OSw2ICsyNDEwLDcg QEAgeXlsZXggKHZvaWQpCitAQCAtMjE5MSw2ICsyNDIwLDcgQEAgeXlsZXggKHZvaWQpCiAgICAg IHl5bHZhbC5zc3ltLmlzX2FfZmllbGRfb2ZfdGhpcyA9IGlzX2FfZmllbGRfb2ZfdGhpczsKICAg ICAgaWYgKGluX3BhcnNlX2ZpZWxkICYmICpsZXhwdHIgPT0gJ1wwJykKICAgICAgICBzYXdfbmFt ZV9hdF9lb2YgPSAxOwpAQCAtMTQ2MCwxMCArMjYzNCwxMCBAQCBpbmRleCA4ODhmOGI0Li42NTQ5 NGI4IDEwMDY0NAogICAgZGVmYXVsdF9zeW1maWxlX29mZnNldHMsCS8qIHN5bV9vZmZzZXRzOiAg eGxhdGUgZXh0ZXJuYWwgdG8gaW50ZXJuYWwgZm9ybSAqLwogICAgZGVmYXVsdF9zeW1maWxlX3Nl Z21lbnRzLAkvKiBzeW1fc2VnbWVudHM6IEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZyb20KIGRp ZmYgLS1naXQgYS9nZGIvY29uZmlnLmluIGIvZ2RiL2NvbmZpZy5pbgotaW5kZXggZjJkNTZhMC4u MDkwOWM4MCAxMDA2NDQKK2luZGV4IDQ3MTY1MjQuLjA3NDVjNjUgMTAwNjQ0CiAtLS0gYS9nZGIv Y29uZmlnLmluCiArKysgYi9nZGIvY29uZmlnLmluCi1AQCAtNDMsMTEgKzQzLDEwIEBACitAQCAt NDYsMTEgKzQ2LDEwIEBACiAgICAgbGFuZ3VhZ2UgaXMgcmVxdWVzdGVkLiAqLwogICN1bmRlZiBF TkFCTEVfTkxTCiAgCkBAIC0xNDc3LDcgKzI2NTEsNyBAQCBpbmRleCBmMmQ1NmEwLi4wOTA5Yzgw IDEwMDY0NAogICN1bmRlZiBHREJfREFUQURJUl9SRUxPQ0FUQUJMRQogIAogIC8qIERlZmluZSB0 byBiZSBhIHN0cmluZyBuYW1pbmcgdGhlIGRlZmF1bHQgaG9zdCBjaGFyYWN0ZXIgc2V0LiAqLwot QEAgLTY0MSw2ICs2NDAsOSBAQAorQEAgLTY0Nyw2ICs2NDYsOSBAQAogICAgICdwdHJkaWZmX3Qn LiAqLwogICN1bmRlZiBQVFJESUZGX1RfU1VGRklYCiAgCkBAIC0xNzI5LDE5ICsyOTAzLDI3IEBA IGluZGV4IDAwMDAwMDAuLjQ5YWM0MjAKICsjZGVmaW5lIFRBUkdFVF9SRUdJT05fU0laRV9PS19G T1JfSFdfV0FUQ0hQT0lOVChTSVpFKSAxCiArCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBi L2dkYi9jb25maWd1cmUKLWluZGV4IDkzZjdmNGIuLmE2NTgwZTIgMTAwNzU1CitpbmRleCA5OWFj YzJmLi5hMmVhMWFlIDEwMDc1NQogLS0tIGEvZ2RiL2NvbmZpZ3VyZQogKysrIGIvZ2RiL2NvbmZp Z3VyZQotQEAgLTMxNCw3ICszMTQsNyBAQCBhY19zdWJkaXJzX2FsbD0iJGFjX3N1YmRpcnNfYWxs IGRvYyB0ZXN0c3VpdGUiCi0gYWNfc3ViZGlyc19hbGw9IiRhY19zdWJkaXJzX2FsbCBnZGJ0ayIK LSBhY19zdWJkaXJzX2FsbD0iJGFjX3N1YmRpcnNfYWxsIG11bHRpLWljZSIKLSBhY19zdWJkaXJz X2FsbD0iJGFjX3N1YmRpcnNfYWxsIGdkYnNlcnZlciIKLS1hY19zdWJzdF92YXJzPSdTSEVMTCBQ QVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9UQVJOQU1FIFBBQ0tBR0VfVkVSU0lP TiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBleGVjX3ByZWZpeCBwcmVmaXggcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lz Y29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9s ZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxpYXMgaG9zdF9hbGlhcyB0YXJnZXRf YWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJTIE1BSU5UQUlORVJfTU9ERV9UUlVF IE1BSU5UQUlORVJfTU9ERV9GQUxTRSBNQUlOVCBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBh Y19jdF9DQyBFWEVFWFQgT0JKRVhUIENQUCBFR1JFUCBSQU5MSUIgYWNfY3RfUkFOTElCIGJ1aWxk IGJ1aWxkX2NwdSBidWlsZF92ZW5kb3IgYnVpbGRfb3MgaG9zdCBob3N0X2NwdSBob3N0X3ZlbmRv ciBob3N0X29zIHRhcmdldCB0YXJnZXRfY3B1IHRhcmdldF92ZW5kb3IgdGFyZ2V0X29zIGFtX19s ZWFkaW5nX2RvdCBERVBESVIgQ0NERVBNT0RFIE1BS0UgR01BS0VfVFJVRSBHTUFLRV9GQUxTRSBT RVRfTUFLRSBVU0VfTkxTIExJQklOVEwgTElCSU5UTF9ERVAgSU5DSU5UTCBYR0VUVEVYVCBHTVNH Rk1UIFBPU1VCIENBVEFMT0dTIERBVEFESVJOQU1FIElOU1RPQkpFWFQgR0VOQ0FUIENBVE9CSkVY VCBsb2NhbGVkaXIgR0xfQ09ORF9MSUJUT09MX1RSVUUgR0xfQ09ORF9MSUJUT09MX0ZBTFNFIEdO VUxJQl9NRU1NRU0gR05VTElCX01FTVBDUFkgR05VTElCX01FTVJDSFIgR05VTElCX1NUUENQWSBH TlVMSUJfU1RQTkNQWSBHTlVMSUJfU1RSQ0hSTlVMIEdOVUxJQl9TVFJEVVAgR05VTElCX1NUUk5E VVAgR05VTElCX1NUUk5MRU4gR05VTElCX1NUUlBCUksgR05VTElCX1NUUlNFUCBHTlVMSUJfU1RS U1RSIEdOVUxJQl9TVFJDQVNFU1RSIEdOVUxJQl9TVFJUT0tfUiBHTlVMSUJfTUJTTEVOIEdOVUxJ Ql9NQlNOTEVOIEdOVUxJQl9NQlNDSFIgR05VTElCX01CU1JDSFIgR05VTElCX01CU1NUUiBHTlVM SUJfTUJTQ0FTRUNNUCBHTlVMSUJfTUJTTkNBU0VDTVAgR05VTElCX01CU1BDQVNFQ01QIEdOVUxJ Ql9NQlNDQVNFU1RSIEdOVUxJQl9NQlNDU1BOIEdOVUxJQl9NQlNQQlJLIEdOVUxJQl9NQlNTUE4g R05VTElCX01CU1NFUCBHTlVMSUJfTUJTVE9LX1IgR05VTElCX1NUUkVSUk9SIEdOVUxJQl9TVFJT SUdOQUwgSEFWRV9ERUNMX01FTU1FTSBIQVZFX01FTVBDUFkgSEFWRV9ERUNMX01FTVJDSFIgSEFW RV9TVFBDUFkgSEFWRV9TVFBOQ1BZIEhBVkVfU1RSQ0hSTlVMIEhBVkVfREVDTF9TVFJEVVAgSEFW RV9TVFJORFVQIEhBVkVfREVDTF9TVFJORFVQIEhBVkVfREVDTF9TVFJOTEVOIEhBVkVfU1RSUEJS SyBIQVZFX1NUUlNFUCBIQVZFX1NUUkNBU0VTVFIgSEFWRV9ERUNMX1NUUlRPS19SIEhBVkVfREVD TF9TVFJFUlJPUiBIQVZFX0RFQ0xfU1RSU0lHTkFMIFJFUExBQ0VfU1RSRVJST1IgUkVQTEFDRV9T VFJTSUdOQUwgUkVQTEFDRV9NRU1NRU0gUkVQTEFDRV9TVFJDQVNFU1RSIFJFUExBQ0VfU1RSU1RS IEhBVkVfTE9OR19MT05HX0lOVCBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgSEFWRV9JTlRU WVBFU19IIEhBVkVfU1lTX1RZUEVTX0ggSU5DTFVERV9ORVhUIE5FWFRfU1RESU5UX0ggSEFWRV9T VERJTlRfSCBIQVZFX1NZU19JTlRUWVBFU19IIEhBVkVfU1lTX0JJVFlQRVNfSCBCSVRTSVpFT0Zf UFRSRElGRl9UIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgQklUU0laRU9GX1NJWkVfVCBCSVRTSVpF T0ZfV0NIQVJfVCBCSVRTSVpFT0ZfV0lOVF9UIEhBVkVfU0lHTkVEX1NJR19BVE9NSUNfVCBIQVZF X1NJR05FRF9XQ0hBUl9UIEhBVkVfU0lHTkVEX1dJTlRfVCBQVFJESUZGX1RfU1VGRklYIFNJR19B VE9NSUNfVF9TVUZGSVggU0laRV9UX1NVRkZJWCBXQ0hBUl9UX1NVRkZJWCBXSU5UX1RfU1VGRklY IFNURElOVF9IIE5FWFRfU1RSSU5HX0ggR05VTElCX1dDV0lEVEggSEFWRV9ERUNMX1dDV0lEVEgg UkVQTEFDRV9XQ1dJRFRIIFdDSEFSX0ggSEFWRV9XQ0hBUl9IIE5FWFRfV0NIQVJfSCBMSUJHTlVf TElCREVQUyBMSUJHTlVfTFRMSUJERVBTIEdOVUxJQl9TVERJTlRfSCBQQUNLQUdFIElOU1RBTExf UFJPR1JBTSBJTlNUQUxMX1NDUklQVCBJTlNUQUxMX0RBVEEgQ1lHUEFUSF9XIFZFUlNJT04gQUNM T0NBTCBBVVRPQ09ORiBBVVRPTUFLRSBBVVRPSEVBREVSIE1BS0VJTkZPIGluc3RhbGxfc2ggU1RS SVAgYWNfY3RfU1RSSVAgSU5TVEFMTF9TVFJJUF9QUk9HUkFNIG1rZGlyX3AgQVdLIEFNVEFSIGFt X190YXIgYW1fX3VudGFyIGFtX19pbmNsdWRlIGFtX19xdW90ZSBBTURFUF9UUlVFIEFNREVQX0ZB TFNFIEFNREVQQkFDS1NMQVNIIGFtX19mYXN0ZGVwQ0NfVFJVRSBhbV9fZmFzdGRlcENDX0ZBTFNF IERFQlVHRElSIEdEQl9EQVRBRElSIHN1YmRpcnMgVEFSR0VUX09CUyBQS0dWRVJTSU9OIFJFUE9S VF9CVUdTX1RPIFJFUE9SVF9CVUdTX1RFWEkgTE5fUyBZQUNDIEFSIGFjX2N0X0FSIERMTFRPT0wg YWNfY3RfRExMVE9PTCBXSU5EUkVTIGFjX2N0X1dJTkRSRVMgTUlHIGFjX2N0X01JRyBSRUFETElO RSBSRUFETElORV9ERVBTIFJFQURMSU5FX0NGTEFHUyBIQVZFX0xJQkVYUEFUIExJQkVYUEFUIExU TElCRVhQQVQgUFlUSE9OX0NGTEFHUyBBTExPQ0EgQ09ORklHX0xERkxBR1MgVEFSR0VUX1NZU1RF TV9ST09UIFRBUkdFVF9TWVNURU1fUk9PVF9ERUZJTkUgU1lTVEVNX0dEQklOSVQgV0FSTl9DRkxB R1MgV0VSUk9SX0NGTEFHUyBTRVJfSEFSRFdJUkUgV0lOMzJMSUJTIExJQkdVSSBHVUlfQ0ZMQUdT X1ggV0lOMzJMREFQUCBUQ0xfVkVSU0lPTiBUQ0xfUEFUQ0hfTEVWRUwgVENMX0JJTl9ESVIgVENM X1NSQ19ESVIgVENMX0xJQl9GSUxFIFRDTF9MSUJfRkxBRyBUQ0xfTElCX1NQRUMgVENMX1NUVUJf TElCX0ZJTEUgVENMX1NUVUJfTElCX0ZMQUcgVENMX1NUVUJfTElCX1NQRUMgVENMX0lOQ0xVREUg VENMX0xJQlJBUlkgVENMX0RFUFMgVEtfVkVSU0lPTiBUS19CSU5fRElSIFRLX1NSQ19ESVIgVEtf TElCX0ZJTEUgVEtfTElCX0ZMQUcgVEtfTElCX1NQRUMgVEtfU1RVQl9MSUJfRklMRSBUS19TVFVC X0xJQl9GTEFHIFRLX1NUVUJfTElCX1NQRUMgVEtfSU5DTFVERSBUS19MSUJSQVJZIFRLX0RFUFMg VEtfWElOQ0xVREVTIFhfQ0ZMQUdTIFhfTERGTEFHUyBYX0xJQlMgR0RCVEtMSUJTIEdEQlRLX0NG TEFHUyBHREJUS19TUkNfRElSIFNJTSBTSU1fT0JTIEVOQUJMRV9DRkxBR1MgUFJPRklMRV9DRkxB R1MgQ09ORklHX09CUyBDT05GSUdfREVQUyBDT05GSUdfU1JDUyBDT05GSUdfQUxMIENPTkZJR19D TEVBTiBDT05GSUdfSU5TVEFMTCBDT05GSUdfVU5JTlNUQUxMIHRhcmdldF9zdWJkaXIgZnJhZ3Mg R0RCX05NX0ZJTEUgZGF0YXJvb3RkaXIgZG9jZGlyIGh0bWxkaXIgcGRmZGlyIExJQk9CSlMgTFRM SUJPQkpTIGdsX0xJQk9CSlMgZ2xfTFRMSUJPQkpTIGdsdGVzdHNfTElCT0JKUyBnbHRlc3RzX0xU TElCT0JKUycKLSthY19zdWJzdF92YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05B TUUgUEFDS0FHRV9UQVJOQU1FIFBBQ0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdF X0JVR1JFUE9SVCBleGVjX3ByZWZpeCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5k aXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBs b2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5k aXIgYnVpbGRfYWxpYXMgaG9zdF9hbGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19O IEVDSE9fVCBMSUJTIE1BSU5UQUlORVJfTU9ERV9UUlVFIE1BSU5UQUlORVJfTU9ERV9GQUxTRSBN QUlOVCBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIENQ UCBFR1JFUCBSQU5MSUIgYWNfY3RfUkFOTElCIGJ1aWxkIGJ1aWxkX2NwdSBidWlsZF92ZW5kb3Ig YnVpbGRfb3MgaG9zdCBob3N0X2NwdSBob3N0X3ZlbmRvciBob3N0X29zIHRhcmdldCB0YXJnZXRf Y3B1IHRhcmdldF92ZW5kb3IgdGFyZ2V0X29zIGFtX19sZWFkaW5nX2RvdCBERVBESVIgQ0NERVBN T0RFIE1BS0UgR01BS0VfVFJVRSBHTUFLRV9GQUxTRSBTRVRfTUFLRSBVU0VfTkxTIExJQklOVEwg TElCSU5UTF9ERVAgSU5DSU5UTCBYR0VUVEVYVCBHTVNHRk1UIFBPU1VCIENBVEFMT0dTIERBVEFE SVJOQU1FIElOU1RPQkpFWFQgR0VOQ0FUIENBVE9CSkVYVCBsb2NhbGVkaXIgR0xfQ09ORF9MSUJU T09MX1RSVUUgR0xfQ09ORF9MSUJUT09MX0ZBTFNFIEdOVUxJQl9NRU1NRU0gR05VTElCX01FTVBD UFkgR05VTElCX01FTVJDSFIgR05VTElCX1NUUENQWSBHTlVMSUJfU1RQTkNQWSBHTlVMSUJfU1RS Q0hSTlVMIEdOVUxJQl9TVFJEVVAgR05VTElCX1NUUk5EVVAgR05VTElCX1NUUk5MRU4gR05VTElC X1NUUlBCUksgR05VTElCX1NUUlNFUCBHTlVMSUJfU1RSU1RSIEdOVUxJQl9TVFJDQVNFU1RSIEdO VUxJQl9TVFJUT0tfUiBHTlVMSUJfTUJTTEVOIEdOVUxJQl9NQlNOTEVOIEdOVUxJQl9NQlNDSFIg R05VTElCX01CU1JDSFIgR05VTElCX01CU1NUUiBHTlVMSUJfTUJTQ0FTRUNNUCBHTlVMSUJfTUJT TkNBU0VDTVAgR05VTElCX01CU1BDQVNFQ01QIEdOVUxJQl9NQlNDQVNFU1RSIEdOVUxJQl9NQlND U1BOIEdOVUxJQl9NQlNQQlJLIEdOVUxJQl9NQlNTUE4gR05VTElCX01CU1NFUCBHTlVMSUJfTUJT VE9LX1IgR05VTElCX1NUUkVSUk9SIEdOVUxJQl9TVFJTSUdOQUwgSEFWRV9ERUNMX01FTU1FTSBI QVZFX01FTVBDUFkgSEFWRV9ERUNMX01FTVJDSFIgSEFWRV9TVFBDUFkgSEFWRV9TVFBOQ1BZIEhB VkVfU1RSQ0hSTlVMIEhBVkVfREVDTF9TVFJEVVAgSEFWRV9TVFJORFVQIEhBVkVfREVDTF9TVFJO RFVQIEhBVkVfREVDTF9TVFJOTEVOIEhBVkVfU1RSUEJSSyBIQVZFX1NUUlNFUCBIQVZFX1NUUkNB U0VTVFIgSEFWRV9ERUNMX1NUUlRPS19SIEhBVkVfREVDTF9TVFJFUlJPUiBIQVZFX0RFQ0xfU1RS U0lHTkFMIFJFUExBQ0VfU1RSRVJST1IgUkVQTEFDRV9TVFJTSUdOQUwgUkVQTEFDRV9NRU1NRU0g UkVQTEFDRV9TVFJDQVNFU1RSIFJFUExBQ0VfU1RSU1RSIEhBVkVfTE9OR19MT05HX0lOVCBIQVZF X1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgSEFWRV9JTlRUWVBFU19IIEhBVkVfU1lTX1RZUEVTX0gg SU5DTFVERV9ORVhUIE5FWFRfU1RESU5UX0ggSEFWRV9TVERJTlRfSCBIQVZFX1NZU19JTlRUWVBF U19IIEhBVkVfU1lTX0JJVFlQRVNfSCBCSVRTSVpFT0ZfUFRSRElGRl9UIEJJVFNJWkVPRl9TSUdf QVRPTUlDX1QgQklUU0laRU9GX1NJWkVfVCBCSVRTSVpFT0ZfV0NIQVJfVCBCSVRTSVpFT0ZfV0lO VF9UIEhBVkVfU0lHTkVEX1NJR19BVE9NSUNfVCBIQVZFX1NJR05FRF9XQ0hBUl9UIEhBVkVfU0lH TkVEX1dJTlRfVCBQVFJESUZGX1RfU1VGRklYIFNJR19BVE9NSUNfVF9TVUZGSVggU0laRV9UX1NV RkZJWCBXQ0hBUl9UX1NVRkZJWCBXSU5UX1RfU1VGRklYIFNURElOVF9IIE5FWFRfU1RSSU5HX0gg R05VTElCX1dDV0lEVEggSEFWRV9ERUNMX1dDV0lEVEggUkVQTEFDRV9XQ1dJRFRIIFdDSEFSX0gg SEFWRV9XQ0hBUl9IIE5FWFRfV0NIQVJfSCBMSUJHTlVfTElCREVQUyBMSUJHTlVfTFRMSUJERVBT IEdOVUxJQl9TVERJTlRfSCBQQUNLQUdFIElOU1RBTExfUFJPR1JBTSBJTlNUQUxMX1NDUklQVCBJ TlNUQUxMX0RBVEEgQ1lHUEFUSF9XIFZFUlNJT04gQUNMT0NBTCBBVVRPQ09ORiBBVVRPTUFLRSBB VVRPSEVBREVSIE1BS0VJTkZPIGluc3RhbGxfc2ggU1RSSVAgYWNfY3RfU1RSSVAgSU5TVEFMTF9T VFJJUF9QUk9HUkFNIG1rZGlyX3AgQVdLIEFNVEFSIGFtX190YXIgYW1fX3VudGFyIGFtX19pbmNs dWRlIGFtX19xdW90ZSBBTURFUF9UUlVFIEFNREVQX0ZBTFNFIEFNREVQQkFDS1NMQVNIIGFtX19m YXN0ZGVwQ0NfVFJVRSBhbV9fZmFzdGRlcENDX0ZBTFNFIERFQlVHRElSIEdEQl9EQVRBRElSIEdE Ql9EQVRBRElSX1BBVEggcHl0aG9uZGlyIHN1YmRpcnMgVEFSR0VUX09CUyBQS0dWRVJTSU9OIFJF UE9SVF9CVUdTX1RPIFJFUE9SVF9CVUdTX1RFWEkgTE5fUyBZQUNDIEFSIGFjX2N0X0FSIERMTFRP T0wgYWNfY3RfRExMVE9PTCBXSU5EUkVTIGFjX2N0X1dJTkRSRVMgTUlHIGFjX2N0X01JRyBSRUFE TElORSBSRUFETElORV9ERVBTIFJFQURMSU5FX0NGTEFHUyBIQVZFX0xJQkVYUEFUIExJQkVYUEFU IExUTElCRVhQQVQgUFlUSE9OX0NGTEFHUyBBTExPQ0EgQ09ORklHX0xERkxBR1MgVEFSR0VUX1NZ U1RFTV9ST09UIFRBUkdFVF9TWVNURU1fUk9PVF9ERUZJTkUgU1lTVEVNX0dEQklOSVQgV0FSTl9D RkxBR1MgV0VSUk9SX0NGTEFHUyBTRVJfSEFSRFdJUkUgV0lOMzJMSUJTIExJQkdVSSBHVUlfQ0ZM QUdTX1ggV0lOMzJMREFQUCBUQ0xfVkVSU0lPTiBUQ0xfUEFUQ0hfTEVWRUwgVENMX0JJTl9ESVIg VENMX1NSQ19ESVIgVENMX0xJQl9GSUxFIFRDTF9MSUJfRkxBRyBUQ0xfTElCX1NQRUMgVENMX1NU VUJfTElCX0ZJTEUgVENMX1NUVUJfTElCX0ZMQUcgVENMX1NUVUJfTElCX1NQRUMgVENMX0lOQ0xV REUgVENMX0xJQlJBUlkgVENMX0RFUFMgVEtfVkVSU0lPTiBUS19CSU5fRElSIFRLX1NSQ19ESVIg VEtfTElCX0ZJTEUgVEtfTElCX0ZMQUcgVEtfTElCX1NQRUMgVEtfU1RVQl9MSUJfRklMRSBUS19T VFVCX0xJQl9GTEFHIFRLX1NUVUJfTElCX1NQRUMgVEtfSU5DTFVERSBUS19MSUJSQVJZIFRLX0RF UFMgVEtfWElOQ0xVREVTIFhfQ0ZMQUdTIFhfTERGTEFHUyBYX0xJQlMgR0RCVEtMSUJTIEdEQlRL X0NGTEFHUyBHREJUS19TUkNfRElSIFNJTSBTSU1fT0JTIEVOQUJMRV9DRkxBR1MgUFJPRklMRV9D RkxBR1MgQ09ORklHX09CUyBDT05GSUdfREVQUyBDT05GSUdfU1JDUyBDT05GSUdfQUxMIENPTkZJ R19DTEVBTiBDT05GSUdfSU5TVEFMTCBDT05GSUdfVU5JTlNUQUxMIHRhcmdldF9zdWJkaXIgZnJh Z3MgR0RCX05NX0ZJTEUgZGF0YXJvb3RkaXIgZG9jZGlyIGh0bWxkaXIgcGRmZGlyIExJQk9CSlMg TFRMSUJPQkpTIGdsX0xJQk9CSlMgZ2xfTFRMSUJPQkpTIGdsdGVzdHNfTElCT0JKUyBnbHRlc3Rz X0xUTElCT0JKUycKLSBhY19zdWJzdF9maWxlcz0naG9zdF9tYWtlZmlsZV9mcmFnJwotIGFjX3B3 ZD1gcHdkYAotIAotQEAgLTg5MSw2ICs4OTEsMTAgQEAgT3B0aW9uYWwgUGFja2FnZXM6CitAQCAt Njc2LDYgKzY3Niw4IEBAIFJFUE9SVF9CVUdTX1RPCisgUEtHVkVSU0lPTgorIFRBUkdFVF9PQlMK KyBzdWJkaXJzCisrcHl0aG9uZGlyCisrR0RCX0RBVEFESVJfUEFUSAorIEdEQl9EQVRBRElSCisg REVCVUdESVIKKyBhbV9fZmFzdGRlcENDX0ZBTFNFCitAQCAtODgzLDYgKzg4NSw3IEBAIGVuYWJs ZV9kZXBlbmRlbmN5X3RyYWNraW5nCisgd2l0aF9zZXBhcmF0ZV9kZWJ1Z19kaXIKKyB3aXRoX2dk Yl9kYXRhZGlyCisgd2l0aF9yZWxvY2F0ZWRfc291cmNlcworK3dpdGhfcHl0aG9uZGlyCisgZW5h YmxlX3RhcmdldHMKKyBlbmFibGVfNjRfYml0X2JmZAorIGVuYWJsZV9nZGJjbGkKK0BAIC0xNTgx LDYgKzE1ODQsMTAgQEAgT3B0aW9uYWwgUGFja2FnZXM6CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbREFUQURJUi9nZGJdCiAgICAtLXdpdGgtcmVsb2NhdGVkLXNvdXJjZXM9UEFUSAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGljYWxseSByZWxvY2F0ZSB0aGlzIHBhdGgg Zm9yIHNvdXJjZSBmaWxlcwpAQCAtMTc1MiwyMCArMjkzNCwyMCBAQCBpbmRleCA5M2Y3ZjRiLi5h NjU4MGUyIDEwMDc1NQogICAgLS13aXRoLWxpYnVud2luZCAgICAgICAgdXNlIGxpYnVud2luZCBm cmFtZSB1bndpbmRpbmcgc3VwcG9ydAogICAgLS13aXRoLWN1cnNlcyAgICAgICAgICAgdXNlIHRo ZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJyYXJ5Ci1AQCAtNzIxOCw2ICs3MjIyLDc1IEBAIF9BQ0VPRgorQEAgLTY2 MDIsNiArNjYwOSw3MyBAQCBfQUNFT0YKKyBmaQogIAotIGZpOwogIAogKyMgR0RCJ3MgZGF0YWRp ciByZWxvY2F0aW9uCiArCiArZ2RiZGF0YWRpcj0ke2RhdGFkaXJ9L2dkYgogKwogKwotKyMgQ2hl Y2sgd2hldGhlciAtLXdpdGgtZ2RiLWRhdGFkaXIgb3IgLS13aXRob3V0LWdkYi1kYXRhZGlyIHdh cyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfZ2RiX2RhdGFkaXIrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgIHdpdGh2YWw9IiR3aXRoX2dkYl9kYXRhZGlyIgotKyAgZ2RiZGF0YWRpcj0iJHt3aXRodmFs fSIKLStmaTsKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWdkYi1kYXRhZGlyIHdhcyBnaXZlbi4K KytpZiB0ZXN0ICIke3dpdGhfZ2RiX2RhdGFkaXIrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0 aHZhbD0kd2l0aF9nZGJfZGF0YWRpcjsgZ2RiZGF0YWRpcj0iJHt3aXRodmFsfSIKKytmaQorKwog KwogKwogKyAgdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSIkYWNfZGVmYXVsdF9w cmVmaXgiCkBAIC0xNzkzLDkgKzI5NzUsNyBAQCBpbmRleCA5M2Y3ZjRiLi5hNjU4MGUyIDEwMDc1 NQogKyAgIiR7dGVzdF9wcmVmaXh9InwiJHt0ZXN0X3ByZWZpeH0vIip8XAogKyAgJyR7ZXhlY19w cmVmaXh9J3wnJHtleGVjX3ByZWZpeH0vJyopCiArCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNF T0YKLSsjZGVmaW5lIEdEQl9EQVRBRElSX1JFTE9DQVRBQkxFIDEKLStfQUNFT0YKKyskYXNfZWNo byAiI2RlZmluZSBHREJfREFUQURJUl9SRUxPQ0FUQUJMRSAxIiA+PmNvbmZkZWZzLmgKICsKICsg IDs7CiArZXNhYwpAQCAtMTgwMywxMyArMjk4MywxMyBAQCBpbmRleCA5M2Y3ZjRiLi5hNjU4MGUy IDEwMDc1NQogKwogKwogKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtcHl0aG9uZGlyIG9yIC0t d2l0aG91dC1weXRob25kaXIgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9weXRob25kaXIr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9IiR3aXRoX3B5dGhvbmRpciIKLSsgIHB5dGhv bmRpcj0iJHt3aXRodmFsfSIKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLXB5dGhvbmRpciB3YXMg Z2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX3B5dGhvbmRpcitzZXR9IiA9IHNldDsgdGhlbiA6Cisr ICB3aXRodmFsPSR3aXRoX3B5dGhvbmRpcjsgcHl0aG9uZGlyPSIke3dpdGh2YWx9IgogK2Vsc2UK ICsgIHB5dGhvbmRpcj1ubwotK2ZpOworK2ZpCisrCiArCiArIyBJZiB0aGUgdXNlciBwYXNzZWQg aW4gYSBwYXRoLCBkZWZpbmUgaXQuICBPdGhlcndpc2UsIGNvbXB1dGUgaXQgYXQKICsjIHJ1bnRp bWUgYmFzZWQgb24gdGhlIHBvc3NpYmx5LXJlbG9jYXRhYmxlIGRhdGFkaXIuCkBAIC0xODI4LDcg KzMwMDgsNyBAQCBpbmRleCA5M2Y3ZjRiLi5hNjU4MGUyIDEwMDc1NQogIAogIAogIHN1YmRpcnM9 IiRzdWJkaXJzIGRvYyB0ZXN0c3VpdGUiCi1AQCAtMTE4MzcsNiArMTE5MTAsOCBAQCBfQUNFT0YK K0BAIC05MjgyLDYgKzkzNTYsOCBAQCAkYXNfZWNobyAiI2RlZmluZSBIQVZFX1BZVEhPTiAxIiA+ PmNvbmZkZWZzLmgKICAgIENPTkZJR19PQlM9IiRDT05GSUdfT0JTIFwkKFNVQkRJUl9QWVRIT05f T0JTKSIKICAgIENPTkZJR19ERVBTPSIkQ09ORklHX0RFUFMgXCQoU1VCRElSX1BZVEhPTl9ERVBT KSIKICAgIENPTkZJR19TUkNTPSIkQ09ORklHX1NSQ1MgXCQoU1VCRElSX1BZVEhPTl9TUkNTKSIK QEAgLTE4MzcsMjAgKzMwMTcsMTEgQEAgaW5kZXggOTNmN2Y0Yi4uYTY1ODBlMiAxMDA3NTUKICAg IEVOQUJMRV9DRkxBR1M9IiRFTkFCTEVfQ0ZMQUdTIFwkKFNVQkRJUl9QWVRIT05fQ0ZMQUdTKSIK ICAKICAgICMgRmxhZ3MgbmVlZGVkIHRvIGNvbXBpbGUgUHl0aG9uIGNvZGUgKHRha2VuIGZyb20g cHl0aG9uLWNvbmZpZyAtLWNmbGFncykuCi1AQCAtMjIxNzQsNiArMjIyNDksOCBAQCBzLEBhbV9f ZmFzdGRlcENDX1RSVUVALCRhbV9fZmFzdGRlcENDX1RSVUUsO3QgdAotIHMsQGFtX19mYXN0ZGVw Q0NfRkFMU0VALCRhbV9fZmFzdGRlcENDX0ZBTFNFLDt0IHQKLSBzLEBERUJVR0RJUkAsJERFQlVH RElSLDt0IHQKLSBzLEBHREJfREFUQURJUkAsJEdEQl9EQVRBRElSLDt0IHQKLStzLEBHREJfREFU QURJUl9QQVRIQCwkR0RCX0RBVEFESVJfUEFUSCw7dCB0Ci0rcyxAcHl0aG9uZGlyQCwkcHl0aG9u ZGlyLDt0IHQKLSBzLEBzdWJkaXJzQCwkc3ViZGlycyw7dCB0Ci0gcyxAVEFSR0VUX09CU0AsJFRB UkdFVF9PQlMsO3QgdAotIHMsQFBLR1ZFUlNJT05ALCRQS0dWRVJTSU9OLDt0IHQKIGRpZmYgLS1n aXQgYS9nZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwotaW5kZXggNzdmODQzNi4u YmNhMzY4YyAxMDA2NDQKK2luZGV4IGIzMWQ5YjcuLmExOTY5YmMgMTAwNjQ0CiAtLS0gYS9nZGIv Y29uZmlndXJlLmFjCiArKysgYi9nZGIvY29uZmlndXJlLmFjCi1AQCAtMTA5LDYgKzEwOSw1MSBA QCBBU19IRUxQX1NUUklORyhbLS13aXRoLXJlbG9jYXRlZC1zb3VyY2VzPVBBVEhdLCBbYXV0b21h dGljYWxseSByZWxvY2F0ZSB0aGlzIHBhdAorQEAgLTEwNyw2ICsxMDcsNTEgQEAgQVNfSEVMUF9T VFJJTkcoWy0td2l0aC1yZWxvY2F0ZWQtc291cmNlcz1QQVRIXSwgW2F1dG9tYXRpY2FsbHkgcmVs b2NhdGUgdGhpcyBwYXQKICAgICAgICAgICAgICAgIFtSZWxvY2F0ZWQgZGlyZWN0b3J5IGZvciBz b3VyY2UgZmlsZXMuIF0pCiAgXSkKICAKQEAgLTE5MDIsNyArMzA3Myw3IEBAIGluZGV4IDc3Zjg0 MzYuLmJjYTM2OGMgMTAwNjQ0CiAgQUNfQ09ORklHX1NVQkRJUlMoZG9jIHRlc3RzdWl0ZSkKICAK ICAjIENoZWNrIHdoZXRoZXIgdG8gc3VwcG9ydCBhbHRlcm5hdGl2ZSB0YXJnZXQgY29uZmlndXJh dGlvbnMKLUBAIC02NjAsNiArNzA1LDggQEAgaWYgdGVzdCAiJHtoYXZlX2xpYnB5dGhvbn0iID0g eWVzOyB0aGVuCitAQCAtNjU4LDYgKzcwMyw4IEBAIGlmIHRlc3QgIiR7aGF2ZV9saWJweXRob259 IiA9IHllczsgdGhlbgogICAgQ09ORklHX09CUz0iJENPTkZJR19PQlMgXCQoU1VCRElSX1BZVEhP Tl9PQlMpIgogICAgQ09ORklHX0RFUFM9IiRDT05GSUdfREVQUyBcJChTVUJESVJfUFlUSE9OX0RF UFMpIgogICAgQ09ORklHX1NSQ1M9IiRDT05GSUdfU1JDUyBcJChTVUJESVJfUFlUSE9OX1NSQ1Mp IgpAQCAtMTkzNCw3ICszMTA1LDcgQEAgaW5kZXggNjI4MDBiOC4uOTdkNTg3YiAxMDA2NDQKICAJ CQl7ICQkID0gJDEuY29tcDsKICAJCQkgIGlmICgkMikgJCQgPSBmaWxsX2NvbXAgKERFTUFOR0xF X0NPTVBPTkVOVF9MT0NBTF9OQU1FLCAkJCwgJDIpOyB9CiBkaWZmIC0tZ2l0IGEvZ2RiL2NwLW5h bWVzcGFjZS5jIGIvZ2RiL2NwLW5hbWVzcGFjZS5jCi1pbmRleCBkMmQ4ZjJlLi43NjcyYjJlIDEw MDY0NAoraW5kZXggZDJkOGYyZS4uYjk1MDE0NyAxMDA2NDQKIC0tLSBhL2dkYi9jcC1uYW1lc3Bh Y2UuYwogKysrIGIvZ2RiL2NwLW5hbWVzcGFjZS5jCiBAQCAtMzYsMTQgKzM2LDE3IEBAIHN0YXRp YyBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpjcF9jb3B5X3VzaW5ncyAoc3RydWN0IHVzaW5nX2RpcmVj dCAqdXNpbmcsCkBAIC0yMTk0LDcgKzMzNjUsNyBAQCBpbmRleCBkMmQ4ZjJlLi43NjcyYjJlIDEw MDY0NAogKyAgc3RydWN0IHVzaW5nX2RpcmVjdCAqY3VycmVudDsKICsgIHN0cnVjdCBzeW1ib2wg KnN5bSA9IE5VTEw7CiArICBpbnQgZGlyZWN0aXZlX21hdGNoOwotKyAgaW50IGN1cnJlbnRfbGlu ZSA9IGZpbmRfcGNfbGluZSAoZ2V0X2ZyYW1lX3BjIChnZXRfY3VycmVudF9mcmFtZSAoKSksIDAp LmxpbmU7CisrICBpbnQgY3VycmVudF9saW5lID0gZmluZF9wY19saW5lIChnZXRfZnJhbWVfcGMg KGdldF9zZWxlY3RlZF9mcmFtZSAoTlVMTCkpLCAwKS5saW5lOwogIAogLSAgLyogRmlyc3QsIGdv IHRocm91Z2ggdGhlIHVzaW5nIGRpcmVjdGl2ZXMuICBJZiBhbnkgb2YgdGhlbSBhZGQgbmV3CiAr ICBpZighZGVjbGFyYXRpb25fb25seSkKQEAgLTI2MTYsMTAgKzM3ODcsMTAgQEAgaW5kZXggN2Ni MDE2ZC4uYmI5ZTM1YSAxMDA2NDQKICAgIGRlZmF1bHRfc3ltZmlsZV9vZmZzZXRzLCAvKiBzeW1f b2Zmc2V0czogcGFyc2UgdXNlcidzIG9mZnNldHMgdG8KICAJCQkgICAgICBpbnRlcm5hbCBmb3Jt ICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGlu Zm8KLWluZGV4IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CitpbmRleCA3YjI2Njc1Li4wZTBjMjg4 IDEwMDY0NAogLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbwogKysrIGIvZ2RiL2RvYy9nZGIudGV4 aW5mbwotQEAgLTk1OCw4ICs5NTgsMTAgQEAgQ29ubmVjdCB0byBwcm9jZXNzIElEIEB2YXJ7bnVt YmVyfSwgYXMgd2l0aCB0aGUgQGNvZGV7YXR0YWNofSBjb21tYW5kLgorQEAgLTk1OSw4ICs5NTks MTAgQEAgQ29ubmVjdCB0byBwcm9jZXNzIElEIEB2YXJ7bnVtYmVyfSwgYXMgd2l0aCB0aGUgQGNv ZGV7YXR0YWNofSBjb21tYW5kLgogIEBpdGVteCAteCBAdmFye2ZpbGV9CiAgQGNpbmRleCBAY29k ZXstLWNvbW1hbmR9CiAgQGNpbmRleCBAY29kZXsteH0KQEAgLTI2MzIsNyArMzgwMyw3IEBAIGlu ZGV4IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgCiAgQGl0ZW0gLWV2YWwtY29tbWFuZCBAdmFy e2NvbW1hbmR9CiAgQGl0ZW14IC1leCBAdmFye2NvbW1hbmR9Ci1AQCAtMTE1MSw2ICsxMTUzLDE2 IEBAIGZvciByZW1vdGUgZGVidWdnaW5nLgorQEAgLTExNTIsNiArMTE1NCwxNiBAQCBmb3IgcmVt b3RlIGRlYnVnZ2luZy4KICBSdW4gdXNpbmcgQHZhcntkZXZpY2V9IGZvciB5b3VyIHByb2dyYW0n cyBzdGFuZGFyZCBpbnB1dCBhbmQgb3V0cHV0LgogIEBjIEZJWE1FOiBraW5nZG9uIHRoaW5rcyB0 aGVyZSBpcyBtb3JlIHRvIC10dHkuICBJbnZlc3RpZ2F0ZS4KICAKQEAgLTI2NDksNyArMzgyMCw3 IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgQGMgcmVzb2x2ZSB0aGUgc2l0dWF0 aW9uIG9mIHRoZXNlIGV2ZW50dWFsbHkKICBAaXRlbSAtdHVpCiAgQGNpbmRleCBAY29kZXstLXR1 aX0KLUBAIC0xODQ2NSw3ICsxODQ3Nyw3IEBAIGNvbW1hbmQ6CitAQCAtMTg1MTksNyArMTg1MzEs NyBAQCBjb21tYW5kOgogIEB0YWJsZSBAY29kZQogIEBraW5kZXggc291cmNlCiAgQGNpbmRleCBl eGVjdXRlIGNvbW1hbmRzIGZyb20gYSBmaWxlCkBAIC0yNjU4LDcgKzM4MjksNyBAQCBpbmRleCA0 MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIEV4ZWN1dGUgdGhlIGNvbW1hbmQgZmlsZSBAdmFye2Zp bGVuYW1lfS4KICBAZW5kIHRhYmxlCiAgCi1AQCAtMTg0ODIsNiArMTg0OTQsMTEgQEAgSWYgQGNv ZGV7LXZ9LCBmb3IgdmVyYm9zZSBtb2RlLCBpcyBnaXZlbiB0aGVuIEB2YWx1ZXtHREJOfSBkaXNw bGF5cworQEAgLTE4NTM2LDYgKzE4NTQ4LDExIEBAIElmIEBjb2Rley12fSwgZm9yIHZlcmJvc2Ug bW9kZSwgaXMgZ2l2ZW4gdGhlbiBAdmFsdWV7R0RCTn0gZGlzcGxheXMKICBlYWNoIGNvbW1hbmQg YXMgaXQgaXMgZXhlY3V0ZWQuICBUaGUgb3B0aW9uIG11c3QgYmUgZ2l2ZW4gYmVmb3JlCiAgQHZh cntmaWxlbmFtZX0sIGFuZCBpcyBpbnRlcnByZXRlZCBhcyBwYXJ0IG9mIHRoZSBmaWxlbmFtZSBh bnl3aGVyZSBlbHNlLgogIApAQCAtMjY3MCw3ICszODQxLDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0 MjMwMyAxMDA2NDQKICBDb21tYW5kcyB0aGF0IHdvdWxkIGFzayBmb3IgY29uZmlybWF0aW9uIGlm IHVzZWQgaW50ZXJhY3RpdmVseSBwcm9jZWVkCiAgd2l0aG91dCBhc2tpbmcgd2hlbiB1c2VkIGlu IGEgY29tbWFuZCBmaWxlLiAgTWFueSBAdmFsdWV7R0RCTn0gY29tbWFuZHMgdGhhdAogIG5vcm1h bGx5IHByaW50IG1lc3NhZ2VzIHRvIHNheSB3aGF0IHRoZXkgYXJlIGRvaW5nIG9taXQgdGhlIG1l c3NhZ2VzCi1AQCAtMTg3NDMsOCArMTg3NjAsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBG b3IgZXhhbXBsZToKK0BAIC0xODc5Nyw4ICsxODgxNCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5k fS4gIEZvciBleGFtcGxlOgogIAogIEBzbWFsbGV4YW1wbGUKICAoQHZhbHVle0dEQlB9KSBweXRo b24KQEAgLTI2NzksNyArMzg1MCw3IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAg PnByaW50IDIzCiAgPmVuZAogIDIzCi1AQCAtMTg3NTcsNiArMTg3NzIsMTQgQEAgaW4gYSBQeXRo b24gc2NyaXB0LiAgVGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29kZXttYWludCBzZXQK K0BAIC0xODgxMSw2ICsxODgyNiwxNCBAQCBpbiBhIFB5dGhvbiBzY3JpcHQuICBUaGlzIGNhbiBi ZSBjb250cm9sbGVkIHVzaW5nIEBjb2Rle21haW50IHNldAogIHB5dGhvbiBwcmludC1zdGFja306 IGlmIEBjb2Rle29ufSwgdGhlIGRlZmF1bHQsIHRoZW4gUHl0aG9uIHN0YWNrCiAgcHJpbnRpbmcg aXMgZW5hYmxlZDsgaWYgQGNvZGV7b2ZmfSwgdGhlbiBQeXRob24gc3RhY2sgcHJpbnRpbmcgaXMK ICBkaXNhYmxlZC4KQEAgLTI2OTQsNyArMzg2NSw3IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMg MTAwNjQ0CiAgQGVuZCB0YWJsZQogIAogIEBub2RlIFB5dGhvbiBBUEkKLUBAIC0xODc2NCw2ICsx ODc4NywxNCBAQCBkaXNhYmxlZC4KK0BAIC0xODgxOCw2ICsxODg0MSwxNCBAQCBkaXNhYmxlZC4K ICBAY2luZGV4IHB5dGhvbiBhcGkKICBAY2luZGV4IHByb2dyYW1taW5nIGluIHB5dGhvbgogIApA QCAtMjcwOSw3ICszODgwLDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBAY2lu ZGV4IHB5dGhvbiBzdGRvdXQKICBAY2luZGV4IHB5dGhvbiBwYWdpbmF0aW9uCiAgQXQgc3RhcnR1 cCwgQHZhbHVle0dEQk59IG92ZXJyaWRlcyBQeXRob24ncyBAY29kZXtzeXMuc3Rkb3V0fSBhbmQK LUBAIC0xODc3NiwxMyArMTg4MDcsMTcgQEAgc2l0dWF0aW9uLCBhIFB5dGhvbiBAY29kZXtLZXli b2FyZEludGVycnVwdH0gZXhjZXB0aW9uIGlzIHRocm93bi4KK0BAIC0xODgzMCwxMyArMTg4NjEs MTcgQEAgc2l0dWF0aW9uLCBhIFB5dGhvbiBAY29kZXtLZXlib2FyZEludGVycnVwdH0gZXhjZXB0 aW9uIGlzIHRocm93bi4KICAqIEJhc2ljIFB5dGhvbjo6ICAgICAgICAgICAgICAgIEJhc2ljIFB5 dGhvbiBGdW5jdGlvbnMuCiAgKiBFeGNlcHRpb24gSGFuZGxpbmc6OgogICogQXV0by1sb2FkaW5n OjogICAgICAgICAgICAgICAgQXV0b21hdGljYWxseSBsb2FkaW5nIFB5dGhvbiBjb2RlLgpAQCAt MjcyOCw3ICszODk5LDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICAqIEZyYW1l cyBJbiBQeXRob246OiAgICAgICAgICAgIEFjZXNzaW5nIGluZmVyaW9yIHN0YWNrIGZyYW1lcyBm cm9tIFB5dGhvbi4KICBAZW5kIG1lbnUKICAKLUBAIC0xODgwOSw2ICsxODg0NCwxMiBAQCBjb21t YW5kIGFzIGhhdmluZyBvcmlnaW5hdGVkIGZyb20gdGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJh Y3RpdmVseS4KK0BAIC0xODg2Myw2ICsxODg5OCwxMiBAQCBjb21tYW5kIGFzIGhhdmluZyBvcmln aW5hdGVkIGZyb20gdGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4KICBJdCBtdXN0 IGJlIGEgYm9vbGVhbiB2YWx1ZS4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIEBjb2Rle0Zh bHNlfS4KICBAZW5kIGRlZnVuCiAgCkBAIC0yNzQxLDcgKzM5MTIsNyBAQCBpbmRleCA0MDE2YWNj Li4xMDQyMzAzIDEwMDY0NAogIEBmaW5kZXggZ2RiLnBhcmFtZXRlcgogIEBkZWZ1biBwYXJhbWV0 ZXIgcGFyYW1ldGVyCiAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIEB2YWx1ZXtHREJOfSBwYXJhbWV0 ZXIuICBAdmFye3BhcmFtZXRlcn0gaXMgYQotQEAgLTE4ODI1LDYgKzE4ODY2LDcgQEAgYSBQeXRo b24gdmFsdWUgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUsIGFuZCByZXR1cm5lZC4KK0BAIC0xODg3 OSw2ICsxODkyMCw3IEBAIGEgUHl0aG9uIHZhbHVlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLCBh bmQgcmV0dXJuZWQuCiAgQGRlZnVuIGhpc3RvcnkgbnVtYmVyCiAgUmV0dXJuIGEgdmFsdWUgZnJv bSBAdmFsdWV7R0RCTn0ncyB2YWx1ZSBoaXN0b3J5IChAcHhyZWZ7VmFsdWUKICBIaXN0b3J5fSku ICBAdmFye251bWJlcn0gaW5kaWNhdGVzIHdoaWNoIGhpc3RvcnkgZWxlbWVudCB0byByZXR1cm4u CkBAIC0yNzQ5LDcgKzM5MjAsNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIElm IEB2YXJ7bnVtYmVyfSBpcyBuZWdhdGl2ZSwgdGhlbiBAdmFsdWV7R0RCTn0gd2lsbCB0YWtlIGl0 cyBhYnNvbHV0ZSB2YWx1ZQogIGFuZCBjb3VudCBiYWNrd2FyZCBmcm9tIHRoZSBsYXN0IGVsZW1l bnQgKGkuZS4sIHRoZSBtb3N0IHJlY2VudCBlbGVtZW50KSB0bwogIGZpbmQgdGhlIHZhbHVlIHRv IHJldHVybi4gIElmIEB2YXJ7bnVtYmVyfSBpcyB6ZXJvLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxs Ci1AQCAtMTg4MzYsNiArMTg4NzgsMjggQEAgSWYgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZCwgdGhl IHJldHVybiB2YWx1ZSBpcyBhbHdheXMgYW4gaW5zdGFuY2Ugb2YKK0BAIC0xODg5MCw2ICsxODkz MiwyOCBAQCBJZiBubyBleGNlcHRpb24gaXMgcmFpc2VkLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGFs d2F5cyBhbiBpbnN0YW5jZSBvZgogIEBjb2Rle2dkYi5WYWx1ZX0gKEBweHJlZntWYWx1ZXMgRnJv bSBJbmZlcmlvcn0pLgogIEBlbmQgZGVmdW4KICAKQEAgLTI3NzgsNyArMzk0OSw3IEBAIGluZGV4 IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgQGZpbmRleCBnZGIud3JpdGUKICBAZGVmdW4gd3Jp dGUgc3RyaW5nCiAgUHJpbnQgYSBzdHJpbmcgdG8gQHZhbHVle0dEQk59J3MgcGFnaW5hdGVkIHN0 YW5kYXJkIG91dHB1dCBzdHJlYW0uCi1AQCAtMTg4NTAsNiArMTg5MTQsMTEgQEAgRmx1c2ggQHZh bHVle0dEQk59J3MgcGFnaW5hdGVkIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uICBGbHVzaGluZwor QEAgLTE4OTA0LDYgKzE4OTY4LDExIEBAIEZsdXNoIEB2YWx1ZXtHREJOfSdzIHBhZ2luYXRlZCBz dGFuZGFyZCBvdXRwdXQgc3RyZWFtLiAgRmx1c2hpbmcKICBmdW5jdGlvbi4KICBAZW5kIGRlZnVu CiAgCkBAIC0yNzkwLDcgKzM5NjEsNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAog IEBub2RlIEV4Y2VwdGlvbiBIYW5kbGluZwogIEBzdWJzdWJzZWN0aW9uIEV4Y2VwdGlvbiBIYW5k bGluZwogIEBjaW5kZXggcHl0aG9uIGV4Y2VwdGlvbnMKLUBAIC0xODk4Niw2ICsxOTA1NSwxMyBA QCBUaGUgdHlwZSBvZiB0aGlzIEBjb2Rle2dkYi5WYWx1ZX0uICBUaGUgdmFsdWUgb2YgdGhpcyBh dHRyaWJ1dGUgaXMgYQorQEAgLTE5MDQwLDYgKzE5MTA5LDEzIEBAIFRoZSB0eXBlIG9mIHRoaXMg QGNvZGV7Z2RiLlZhbHVlfS4gIFRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBpcyBhCiAgVGhl IGZvbGxvd2luZyBtZXRob2RzIGFyZSBwcm92aWRlZDoKICAKICBAdGFibGUgQGNvZGUKQEAgLTI4 MDQsNyArMzk3NSw3IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgQGRlZm1ldGhv ZCBWYWx1ZSBkZXJlZmVyZW5jZQogIEZvciBwb2ludGVyIGRhdGEgdHlwZXMsIHRoaXMgbWV0aG9k IHJldHVybnMgYSBuZXcgQGNvZGV7Z2RiLlZhbHVlfSBvYmplY3QKICB3aG9zZSBjb250ZW50cyBp cyB0aGUgb2JqZWN0IHBvaW50ZWQgdG8gYnkgdGhlIHBvaW50ZXIuICBGb3IgZXhhbXBsZSwgaWYK LUBAIC0xOTA1Nyw2ICsxOTEzMyw5IEBAIG1vZHVsZToKK0BAIC0xOTExMSw2ICsxOTE4Nyw5IEBA IG1vZHVsZToKICBUaGlzIGZ1bmN0aW9uIGxvb2tzIHVwIGEgdHlwZSBieSBuYW1lLiAgQHZhcntu YW1lfSBpcyB0aGUgbmFtZSBvZiB0aGUKICB0eXBlIHRvIGxvb2sgdXAuICBJdCBtdXN0IGJlIGEg c3RyaW5nLgogIApAQCAtMjgxNCw3ICszOTg1LDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAx MDA2NDQKICBPcmRpbmFyaWx5LCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGluc3RhbmNl IG9mIEBjb2Rle2dkYi5UeXBlfS4KICBJZiB0aGUgbmFtZWQgdHlwZSBjYW5ub3QgYmUgZm91bmQs IGl0IHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uLgogIEBlbmQgZGVmdW4KLUBAIC0xOTEwOSw2ICsx OTE4OCwxMiBAQCBUaGlzIGlzIEBjb2Rle1RydWV9IGlmIHRoZSBmaWVsZCBpcyBhcnRpZmljaWFs LCB1c3VhbGx5IG1lYW5pbmcgdGhhdAorQEAgLTE5MTYzLDYgKzE5MjQyLDEyIEBAIFRoaXMgaXMg QGNvZGV7VHJ1ZX0gaWYgdGhlIGZpZWxkIGlzIGFydGlmaWNpYWwsIHVzdWFsbHkgbWVhbmluZyB0 aGF0CiAgaXQgd2FzIHByb3ZpZGVkIGJ5IHRoZSBjb21waWxlciBhbmQgbm90IHRoZSB1c2VyLiAg VGhpcyBhdHRyaWJ1dGUgaXMKICBhbHdheXMgcHJvdmlkZWQsIGFuZCBpcyBAY29kZXtGYWxzZX0g aWYgdGhlIGZpZWxkIGlzIG5vdCBhcnRpZmljaWFsLgogIApAQCAtMjgyNyw3ICszOTk4LDcgQEAg aW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBAaXRlbSBiaXRzaXplCiAgSWYgdGhlIGZp ZWxkIGlzIHBhY2tlZCwgb3IgaXMgYSBiaXRmaWVsZCwgdGhlbiB0aGlzIHdpbGwgaGF2ZSBhCiAg bm9uLXplcm8gdmFsdWUsIHdoaWNoIGlzIHRoZSBzaXplIG9mIHRoZSBmaWVsZCBpbiBiaXRzLiAg T3RoZXJ3aXNlLAotQEAgLTE5MTYxLDcgKzE5MjQ2LDcgQEAgSWYgdGhlIHR5cGUgZG9lcyBub3Qg aGF2ZSBhIHRhcmdldCwgdGhpcyBtZXRob2Qgd2lsbCB0aHJvdyBhbgorQEAgLTE5MjE1LDcgKzE5 MzAwLDcgQEAgSWYgdGhlIHR5cGUgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCwgdGhpcyBtZXRob2Qg d2lsbCB0aHJvdyBhbgogIGV4Y2VwdGlvbi4KICBAZW5kIGRlZm1ldGhvZAogIApAQCAtMjgzNiw3 ICs0MDA3LDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBJZiB0aGlzIEBjb2Rl e2dkYi5UeXBlfSBpcyBhbiBpbnN0YW50aWF0aW9uIG9mIGEgdGVtcGxhdGUsIHRoaXMgd2lsbAog IHJldHVybiBhIG5ldyBAY29kZXtnZGIuVHlwZX0gd2hpY2ggcmVwcmVzZW50cyB0aGUgdHlwZSBv ZiB0aGUKICBAdmFye259dGggdGVtcGxhdGUgYXJndW1lbnQuCi1AQCAtMTkxNjksNyArMTkyNTQs OCBAQCByZXR1cm4gYSBuZXcgQGNvZGV7Z2RiLlR5cGV9IHdoaWNoIHJlcHJlc2VudHMgdGhlIHR5 cGUgb2YgdGhlCitAQCAtMTkyMjMsNyArMTkzMDgsOCBAQCByZXR1cm4gYSBuZXcgQGNvZGV7Z2Ri LlR5cGV9IHdoaWNoIHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlCiAgSWYgdGhpcyBAY29kZXtn ZGIuVHlwZX0gaXMgbm90IGEgdGVtcGxhdGUgdHlwZSwgdGhpcyB3aWxsIHRocm93IGFuCiAgZXhj ZXB0aW9uLiAgT3JkaW5hcmlseSwgb25seSBDQHR7Kyt9IGNvZGUgd2lsbCBoYXZlIHRlbXBsYXRl IHR5cGVzLgogIApAQCAtMjg0Niw3ICs0MDE3LDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAx MDA2NDQKICBAZW5kIGRlZm1ldGhvZAogIEBlbmQgdGFibGUKICAKLUBAIC0xOTUyMyw2ICsxOTYw OSwxMjEgQEAgaW1wb3J0IGdkYi5saWJzdGRjeHgudjYKK0BAIC0xOTU3Nyw2ICsxOTY2MywxMjEg QEAgaW1wb3J0IGdkYi5saWJzdGRjeHgudjYKICBnZGIubGlic3RkY3h4LnY2LnJlZ2lzdGVyX3By aW50ZXJzIChnZGIuY3VycmVudF9vYmpmaWxlICgpKQogIEBlbmQgc21hbGxleGFtcGxlCiAgCkBA IC0yOTY4LDcgKzQxMzksNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIEBub2Rl IENvbW1hbmRzIEluIFB5dGhvbgogIEBzdWJzdWJzZWN0aW9uIENvbW1hbmRzIEluIFB5dGhvbgog IAotQEAgLTE5Nzc1LDYgKzE5OTc2LDEzNSBAQCByZWdpc3RyYXRpb24gb2YgdGhlIGNvbW1hbmQg d2l0aCBAdmFsdWV7R0RCTn0uICBEZXBlbmRpbmcgb24gaG93IHRoZQorQEAgLTE5ODI5LDYgKzIw MDMwLDEzNSBAQCByZWdpc3RyYXRpb24gb2YgdGhlIGNvbW1hbmQgd2l0aCBAdmFsdWV7R0RCTn0u ICBEZXBlbmRpbmcgb24gaG93IHRoZQogIFB5dGhvbiBjb2RlIGlzIHJlYWQgaW50byBAdmFsdWV7 R0RCTn0sIHlvdSBtYXkgbmVlZCB0byBpbXBvcnQgdGhlCiAgQGNvZGV7Z2RifSBtb2R1bGUgZXhw bGljaXRseS4KICAKQEAgLTMxMDQsNyArNDI3NSw3IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMg MTAwNjQ0CiAgQG5vZGUgRnVuY3Rpb25zIEluIFB5dGhvbgogIEBzdWJzdWJzZWN0aW9uIFdyaXRp bmcgbmV3IGNvbnZlbmllbmNlIGZ1bmN0aW9ucwogIAotQEAgLTE5ODc5LDYgKzIwMjA5LDgyIEBA IHdoaWNoIGlzIHVzZWQgdG8gZm9ybWF0IHRoZSB2YWx1ZS4gIEB4cmVme1ByZXR0eSBQcmludGlu Z30sIGZvciBtb3JlCitAQCAtMTk5MzMsNiArMjAyNjMsODIgQEAgd2hpY2ggaXMgdXNlZCB0byBm b3JtYXQgdGhlIHZhbHVlLiAgQHhyZWZ7UHJldHR5IFByaW50aW5nfSwgZm9yIG1vcmUKICBpbmZv cm1hdGlvbi4KICBAZW5kIGRlZml2YXIKICAKQEAgLTMxODcsNyArNDM1OCw3IEBAIGluZGV4IDQw MTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgQG5vZGUgRnJhbWVzIEluIFB5dGhvbgogIEBzdWJzdWJz ZWN0aW9uIEFjZXNzaW5nIGluZmVyaW9yIHN0YWNrIGZyYW1lcyBmcm9tIFB5dGhvbi4KICAKLUBA IC0xOTk0Myw2ICsyMDM0OSwxNCBAQCBmdW5jdGlvbiB0byBhIHN0cmluZy4KK0BAIC0xOTk5Nyw2 ICsyMDQwMywxNCBAQCBmdW5jdGlvbiB0byBhIHN0cmluZy4KICBSZXR1cm5zIHRoZSBmcmFtZSdz IHJlc3VtZSBhZGRyZXNzLgogIEBlbmQgZGVmbWV0aG9kCiAgCkBAIC0zMjAyLDcgKzQzNzMsNyBA QCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIEBkZWZtZXRob2QgRnJhbWUgb2xkZXIK ICBSZXR1cm4gdGhlIGZyYW1lIHRoYXQgY2FsbGVkIHRoaXMgZnJhbWUuCiAgQGVuZCBkZWZtZXRo b2QKLUBAIC0xOTk1MSwxMCArMjAzNjUsMTggQEAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxl ZCB0aGlzIGZyYW1lLgorQEAgLTIwMDA1LDEwICsyMDQxOSwxOCBAQCBSZXR1cm4gdGhlIGZyYW1l IHRoYXQgY2FsbGVkIHRoaXMgZnJhbWUuCiAgUmV0dXJuIHRoZSBmcmFtZSBjYWxsZWQgYnkgdGhp cyBmcmFtZS4KICBAZW5kIGRlZm1ldGhvZAogIApAQCAtMzIyMSw3ICs0MzkyLDcgQEAgaW5kZXgg NDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBAZW5kIHRhYmxlCiAgCiAgQG5vZGUgSW50ZXJwcmV0 ZXJzCi1AQCAtMjMzMDYsNiArMjM3MjgsOCBAQCBhY2Nlc3MgdGhpcyBmdW5jdGlvbmFsaXR5Ogor QEAgLTIzMzYwLDYgKzIzNzgyLDggQEAgYWNjZXNzIHRoaXMgZnVuY3Rpb25hbGl0eToKICBAaXRl bSBAc3Ryb25ne09wZXJhdGlvbn0KICBAdGFiIEBzdHJvbmd7RGVzY3JpcHRpb259CiAgCkBAIC0z MjMwLDcgKzQ0MDEsNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIEBpdGVtIEBj b2Rley12YXItY3JlYXRlfQogIEB0YWIgY3JlYXRlIGEgdmFyaWFibGUgb2JqZWN0CiAgQGl0ZW0g QGNvZGV7LXZhci1kZWxldGV9Ci1AQCAtMjMzMzQsNiArMjM3NTgsOCBAQCBhY2Nlc3MgdGhpcyBm dW5jdGlvbmFsaXR5OgorQEAgLTIzMzg4LDYgKzIzODEyLDggQEAgYWNjZXNzIHRoaXMgZnVuY3Rp b25hbGl0eToKICBAdGFiIHVwZGF0ZSB0aGUgdmFyaWFibGUgYW5kIGl0cyBjaGlsZHJlbgogIEBp dGVtIEBjb2Rley12YXItc2V0LWZyb3plbn0KICBAdGFiIHNldCBmcm96ZW5lc3MgYXR0cmlidXRl CkBAIC0zMjM5LDcgKzQ0MTAsNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIEBl bmQgbXVsdGl0YWJsZQogIAogIEluIHRoZSBuZXh0IHN1YnNlY3Rpb24gd2UgZGVzY3JpYmUgZWFj aCBvcGVyYXRpb24gaW4gZGV0YWlsIGFuZCBzdWdnZXN0Ci1AQCAtMjMzNDEsNiArMjM3NjcsMjMg QEAgaG93IGl0IGNhbiBiZSB1c2VkLgorQEAgLTIzMzk1LDYgKzIzODIxLDIzIEBAIGhvdyBpdCBj YW4gYmUgdXNlZC4KICAKICBAc3ViaGVhZGluZyBEZXNjcmlwdGlvbiBBbmQgVXNlIG9mIE9wZXJh dGlvbnMgb24gVmFyaWFibGUgT2JqZWN0cwogIApAQCAtMzI1MCwyMCArNDQyMSw5MiBAQCBpbmRl eCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogKy1lbmFibGUtcHJldHR5LXByaW50aW5nCiArQGVu ZCBzbWFsbGV4YW1wbGUKICsKLStAdmFye0dEQk59IGFsbG93cyBQeXRob24tYmFzZWQgdmlzdWFs aXplcnMgdG8gYWZmZWN0IHRoZSBvdXRwdXQgb2YgdGhlCisrQHZhbHVle0dEQk59IGFsbG93cyBQ eXRob24tYmFzZWQgdmlzdWFsaXplcnMgdG8gYWZmZWN0IHRoZSBvdXRwdXQgb2YgdGhlCiArTUkg dmFyaWFibGUgb2JqZWN0IGNvbW1hbmRzLiAgSG93ZXZlciwgYmVjYXVzZSB0aGVyZSB3YXMgbm8g d2F5IHRvCiAraW1wbGVtZW50IHRoaXMgaW4gYSBmdWxseSBiYWNrd2FyZC1jb21wYXRpYmxlIHdh eSwgYSBmcm9udCBlbmQgbXVzdAogK3JlcXVlc3QgdGhhdCB0aGlzIGZ1bmN0aW9uYWxpdHkgYmUg ZW5hYmxlZC4KICsKICtPbmNlIHNlbnQsIHRoaXMgY29tbWFuZCBjYW5ub3QgYmUgdW5kb25lLgog KwotK05vdGUgdGhhdCBpZiBQeXRob24gc3VwcG9ydCBoYXMgbm90IGJlZW4gY29tcGlsZWQgaW50 byBAdmFye0dEQk59LAorK05vdGUgdGhhdCBpZiBQeXRob24gc3VwcG9ydCBoYXMgbm90IGJlZW4g Y29tcGlsZWQgaW50byBAdmFsdWV7R0RCTn0sCiArdGhpcyBjb21tYW5kIHdpbGwgc3RpbGwgc3Vj Y2VlZC4KICsKICBAc3ViaGVhZGluZyBUaGUgQGNvZGV7LXZhci1jcmVhdGV9IENvbW1hbmQKICBA ZmluZGV4IC12YXItY3JlYXRlCiAgCi1AQCAtMjM0NzMsNyArMjM5MTYsNyBAQCBSZXR1cm5zIHRo ZSBudW1iZXIgb2YgY2hpbGRyZW4gb2YgYSB2YXJpYWJsZSBvYmplY3QgQHZhcntuYW1lfToKK0BA IC0yMzQzNCwxNSArMjM4NzcsNTUgQEAgYmVnaW4gd2l0aCBhIEBzYW1weyp9KSwgb3Igb25lIG9m IHRoZSBmb2xsb3dpbmc6CisgQHNhbXB7JEB2YXJ7cmVnbmFtZX19IC0tLSBhIENQVSByZWdpc3Rl ciBuYW1lCisgQGVuZCBpdGVtaXplCisgCisrQSB2YXJvYmoncyBjb250ZW50cyBtYXkgYmUgcHJv dmlkZWQgYnkgYSBQeXRob24tYmFzZWQgcHJldHR5LXByaW50ZXIuICBJbiB0aGlzCisrY2FzZSB0 aGUgdmFyb2JqIGlzIGtub3duIGFzIGEgQGRmbntkeW5hbWljIHZhcm9ian0uICBEeW5hbWljIHZh cm9ianMKKytoYXZlIHNsaWdodGx5IGRpZmZlcmVudCBzZW1hbnRpY3MgaW4gc29tZSBjYXNlcy4g IElmIHRoZQorK0Bjb2Rley1lbmFibGUtcHJldHR5LXByaW50aW5nfSBjb21tYW5kIGlzIG5vdCBz ZW50LCB0aGVuIEB2YWx1ZXtHREJOfQorK3dpbGwgbmV2ZXIgY3JlYXRlIGEgZHluYW1pYyB2YXJv YmouICBUaGlzIGVuc3VyZXMgYmFja3dhcmQKKytjb21wYXRpYmlsaXR5IGZvciBleGlzdGluZyBj bGllbnRzLgorKworIEBzdWJzdWJoZWFkaW5nIFJlc3VsdAorIAorLVRoaXMgb3BlcmF0aW9uIHJl dHVybnMgdGhlIG5hbWUsIG51bWJlciBvZiBjaGlsZHJlbiBhbmQgdGhlIHR5cGUgb2YgdGhlCist b2JqZWN0IGNyZWF0ZWQuICBUeXBlIGlzIHJldHVybmVkIGFzIGEgc3RyaW5nIGFzIHRoZSBvbmVz IGdlbmVyYXRlZCBieQorLXRoZSBAdmFsdWV7R0RCTn0gQ0xJLiAgSWYgYSBmaXhlZCB2YXJpYWJs ZSBvYmplY3QgaXMgYm91bmQgdG8gYQorLXNwZWNpZmljIHRocmVhZCwgdGhlIHRocmVhZCBpcyBp cyBhbHNvIHByaW50ZWQ6CisrVGhpcyBvcGVyYXRpb24gcmV0dXJucyBhdHRyaWJ1dGVzIG9mIHRo ZSBuZXdseS1jcmVhdGVkIHZhcm9iai4gIFRoZXNlCisraW5jbHVkZSwgYnV0IGFyZSBub3QgbGlt aXRlZCB0bzoKKysKKytAdGFibGUgQHNhbXAKKytAaXRlbSBuYW1lCisrVGhlIG5hbWUgb2YgdGhl IHZhcm9iai4KKysKKytAaXRlbSBudW1jaGlsZAorK1RoZSBudW1iZXIgb2YgY2hpbGRyZW4gb2Yg dGhlIHZhcm9iai4gIFRoaXMgbnVtYmVyIGlzIG5vdCBuZWNlc3NhcmlseQorK3JlbGlhYmxlIGZv ciBhIGR5bmFtaWMgdmFyb2JqLiAgSW5zdGVhZCwgeW91IG11c3QgZXhhbWluZSB0aGUKKytAc2Ft cHtoYXNfbW9yZX0gYXR0cmlidXRlLgorKworK0BpdGVtIHZhbHVlCisrVGhlIHZhcm9iaidzIHNj YWxhciB2YWx1ZS4gIEZvciBhIHZhcm9iaiB3aG9zZSB0eXBlIGlzIHNvbWUgc29ydCBvZgorK2Fn Z3JlZ2F0ZSAoZS5nLiwgYSBAY29kZXtzdHJ1Y3R9KSwgb3IgZm9yIGEgZHluYW1pYyB2YXJvYmos IHRoaXMgdmFsdWUKKyt3aWxsIG5vdCBiZSBpbnRlcmVzdGluZy4KKysKKytAaXRlbSB0eXBlCisr VGhlIHZhcm9iaidzIHR5cGUuICBUaGlzIGlzIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRo ZSB0eXBlLCBhcworK3dvdWxkIGJlIHByaW50ZWQgYnkgdGhlIEB2YWx1ZXtHREJOfSBDTEkuCisr CisrQGl0ZW0gdGhyZWFkLWlkCisrSWYgYSBmaXhlZCB2YXJpYWJsZSBvYmplY3QgaXMgYm91bmQg dG8gYSBzcGVjaWZpYyB0aHJlYWQsIHRoZW4gdGhpcyBpcworK3RoZSB0aHJlYWQncyBpZGVudGlm aWVyLgorKworK0BpdGVtIGhhc19tb3JlCisrRm9yIGEgZHluYW1pYyB2YXJvYmosIHRoaXMgaW5k aWNhdGVzIHdoZXRoZXIgdGhlcmUgYXBwZWFyIHRvIGJlIGFueQorK2NoaWxkcmVuIGF2YWlsYWJs ZS4gIEZvciBhIG5vbi1keW5hbWljIHZhcm9iaiwgdGhpcyB3aWxsIGJlIDAuCisrCisrQGl0ZW0g ZHluYW1pYworK1RoaXMgYXR0cmlidXRlIHdpbGwgYmUgcHJlc2VudCBhbmQgaGF2ZSB0aGUgdmFs dWUgQHNhbXB7MX0gaWYgdGhlCisrdmFyb2JqIGlzIGEgZHluYW1pYyB2YXJvYmouICBJZiB0aGUg dmFyb2JqIGlzIG5vdCBhIGR5bmFtaWMgdmFyb2JqLAorK3RoZW4gdGhpcyBhdHRyaWJ1dGUgd2ls bCBub3QgYmUgcHJlc2VudC4KKytAZW5kIHRhYmxlCisrCisrVHlwaWNhbCBvdXRwdXQgd2lsbCBs b29rIGxpa2UgdGhpczoKKyAKKyBAc21hbGxleGFtcGxlCistIG5hbWU9IkB2YXJ7bmFtZX0iLG51 bWNoaWxkPSJAdmFye059Iix0eXBlPSJAdmFye3R5cGV9Iix0aHJlYWQtaWQ9IkB2YXJ7TX0iCisr IG5hbWU9IkB2YXJ7bmFtZX0iLG51bWNoaWxkPSJAdmFye059Iix0eXBlPSJAdmFye3R5cGV9Iix0 aHJlYWQtaWQ9IkB2YXJ7TX0iLAorKyAgaGFzX21vcmU9IkB2YXJ7aGFzX21vcmV9IgorIEBlbmQg c21hbGxleGFtcGxlCisgCisgCitAQCAtMjM1MjAsNiArMjQwMDMsMTAgQEAgUmV0dXJucyB0aGUg bnVtYmVyIG9mIGNoaWxkcmVuIG9mIGEgdmFyaWFibGUgb2JqZWN0IEB2YXJ7bmFtZX06CisgIG51 bWNoaWxkPUB2YXJ7bn0KKyBAZW5kIHNtYWxsZXhhbXBsZQorIAorK05vdGUgdGhhdCB0aGlzIG51 bWJlciBpcyBub3QgY29tcGxldGVseSByZWxpYWJsZSBmb3IgYSBkeW5hbWljIHZhcm9iai4KKytJ dCB3aWxsIHJldHVybiB0aGUgY3VycmVudCBudW1iZXIgb2YgY2hpbGRyZW4sIGJ1dCBtb3JlIGNo aWxkcmVuIG1heQorK2JlIGF2YWlsYWJsZS4KKysKKyAKKyBAc3ViaGVhZGluZyBUaGUgQGNvZGV7 LXZhci1saXN0LWNoaWxkcmVufSBDb21tYW5kCisgQGZpbmRleCAtdmFyLWxpc3QtY2hpbGRyZW4K K0BAIC0yMzUyNyw3ICsyNDAxNCw3IEBAIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGlsZHJlbiBv ZiBhIHZhcmlhYmxlIG9iamVjdCBAdmFye25hbWV9OgogIEBzdWJzdWJoZWFkaW5nIFN5bm9wc2lz CiAgCiAgQHNtYWxsZXhhbXBsZQpAQCAtMzI3Miw3ICs0NTE1LDcgQEAgaW5kZXggNDAxNmFjYy4u MTA0MjMwMyAxMDA2NDQKICBAZW5kIHNtYWxsZXhhbXBsZQogIEBhbmNob3J7LXZhci1saXN0LWNo aWxkcmVufQogIAotQEAgLTIzNDg2LDYgKzIzOTI5LDEyIEBAIHZhbHVlczsgYW5kIGlmIGl0IGlz IDIgb3IgQGNvZGV7LS1zaW1wbGUtdmFsdWVzfSBwcmludCB0aGUgbmFtZSBhbmQKK0BAIC0yMzU0 MCw2ICsyNDAyNywyMiBAQCB2YWx1ZXM7IGFuZCBpZiBpdCBpcyAyIG9yIEBjb2Rley0tc2ltcGxl LXZhbHVlc30gcHJpbnQgdGhlIG5hbWUgYW5kCiAgdmFsdWUgZm9yIHNpbXBsZSBkYXRhIHR5cGVz IGFuZCBqdXN0IHRoZSBuYW1lIGZvciBhcnJheXMsIHN0cnVjdHVyZXMKICBhbmQgdW5pb25zLgog IApAQCAtMzI4MiwxNiArNDUyNSw0NiBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAog K2F0IEB2YXJ7ZnJvbX0gKHplcm8tYmFzZWQpIGFuZCBlbmRpbmcganVzdCBiZWZvcmUgQHZhcnt0 b30gd2lsbCBiZQogK3JlcG9ydGVkLgogKworK0lmIGEgY2hpbGQgcmFuZ2UgaXMgcmVxdWVzdGVk LCBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIHJhbmdlIG9mCisrY2hpbGRyZW4gcmVwb3J0ZWQgYnkg YSBmdXR1cmUgY2FsbCB0byBAY29kZXstdmFyLXVwZGF0ZX0uICBGb3IgdGhpcywKKyt5b3UgbXVz dCBpbnN0ZWFkIHVzZSBAY29kZXstdmFyLXNldC11cGRhdGUtcmFuZ2V9LiAgVGhlIGludGVudCBv ZiB0aGlzCisrYXBwcm9hY2ggaXMgdG8gZW5hYmxlIGEgZnJvbnQgZW5kIHRvIGltcGxlbWVudCBh bnkgdXBkYXRlIGFwcHJvYWNoIGl0CisrbGlrZXM7IGZvciBleGFtcGxlLCBzY3JvbGxpbmcgYSB2 aWV3IG1heSBjYXVzZSB0aGUgZnJvbnQgZW5kIHRvCisrcmVxdWVzdCBtb3JlIGNoaWxkcmVuIHdp dGggQGNvZGV7LXZhci1saXN0LWNoaWxkcmVufSwgYW5kIHRoZW4gdGhlCisrZnJvbnQgZW5kIGNv dWxkIGNhbGwgQGNvZGV7LXZhci1zZXQtdXBkYXRlLXJhbmdlfSB3aXRoIGEgZGlmZmVyZW50Cisr cmFuZ2UgdG8gZW5zdXJlIHRoYXQgZnV0dXJlIHVwZGF0ZXMgYXJlIHJlc3RyaWN0ZWQgdG8ganVz dCB0aGUgdmlzaWJsZQorK2l0ZW1zLgorKwogIEZvciBlYWNoIGNoaWxkIHRoZSBmb2xsb3dpbmcg cmVzdWx0cyBhcmUgcmV0dXJuZWQ6CiAgCiAgQHRhYmxlIEB2YXIKLUBAIC0yMzUxOSw2ICsyMzk2 OCwxNCBAQCBPdGhlcndpc2UgdGhpcyByZXN1bHQgaXMgbm90IHByZXNlbnQuCitAQCAtMjM1NTYs OCArMjQwNTksMTMgQEAgZGVzaWduYXRlIGFjY2VzcyBxdWFsaWZpZXJzLiAgRm9yIHRoZXNlIHBz ZXVkbyBjaGlsZHJlbiBAdmFye2V4cH0gaXMKKyBAc2FtcHtwdWJsaWN9LCBAc2FtcHtwcml2YXRl fSwgb3IgQHNhbXB7cHJvdGVjdGVkfS4gIEluIHRoaXMgY2FzZSB0aGUKKyB0eXBlIGFuZCB2YWx1 ZSBhcmUgbm90IHByZXNlbnQuCisgCisrRm9yIGEgZHluYW1pYyB2YXJvYmosIHRoaXMgdmFsdWUg Y2Fubm90IHJlbGlhYmx5IGJlIHVzZWQgdG8gZm9ybSBhbgorK2V4cHJlc3Npb24uICBBbHNvLCBh IGR5bmFtaWMgdmFyb2JqIHdpbGwgbm90IHJlcG9ydCB0aGUgYWNjZXNzCisrcXVhbGlmeWluZyBw c2V1ZG8tY2hpbGRyZW4sIHJlZ2FyZGxlc3Mgb2YgdGhlIGxhbmd1YWdlLgorKworIEBpdGVtIG51 bWNoaWxkCistTnVtYmVyIG9mIGNoaWxkcmVuIHRoaXMgY2hpbGQgaGFzLgorK051bWJlciBvZiBj aGlsZHJlbiB0aGlzIGNoaWxkIGhhcy4gIEZvciBhIGR5bmFtaWMgdmFyb2JqLCB0aGlzIHdpbGwg YmUKKyswLgorIAorIEBpdGVtIHR5cGUKKyBUaGUgdHlwZSBvZiB0aGUgY2hpbGQuCitAQCAtMjM1 NzMsNiArMjQwODEsMTkgQEAgT3RoZXJ3aXNlIHRoaXMgcmVzdWx0IGlzIG5vdCBwcmVzZW50Lgog IElmIHRoZSB2YXJpYWJsZSBvYmplY3QgaXMgZnJvemVuLCB0aGlzIHZhcmlhYmxlIHdpbGwgYmUg cHJlc2VudCB3aXRoIGEgdmFsdWUgb2YgMS4KICBAZW5kIHRhYmxlCiAgCiArVGhlIHJlc3VsdCBt YXkgaGF2ZSBpdHMgb3duIGF0dHJpYnV0ZXM6CiArCi0rQHRhYmxlIEB2YXIKKytAdGFibGUgQHNh bXAKKytAaXRlbSBkaXNwbGF5aGludAorK0EgZHluYW1pYyB2YXJvYmogY2FuIHN1cHBseSBhIGRp c3BsYXkgaGludCB0byB0aGUgZnJvbnQgZW5kLiAgVGhlCisrY29tZXMgZGlyZWN0bHkgZnJvbSB0 aGUgUHl0aG9uIHByZXR0eS1wcmludGVyIG9iamVjdCdzCisrQGNvZGV7ZGlzcGxheV9oaW50fSBt ZXRob2QuICBAeHJlZntQcmV0dHkgUHJpbnRpbmd9LgorKwogK0BpdGVtIGhhc19tb3JlCiArVGhp cyBpcyBhbiBpbnRlZ2VyIGF0dHJpYnV0ZSB3aGljaCBpcyBub256ZXJvIGlmIHRoZXJlIGFyZSBj aGlsZHJlbgogK3JlbWFpbmluZyBhZnRlciB0aGUgZW5kIG9mIHRoZSBzZWxlY3RlZCByYW5nZS4K QEAgLTMzMDAsMTcgKzQ1NzMsODYgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBA c3Vic3ViaGVhZGluZyBFeGFtcGxlCiAgCiAgQHNtYWxsZXhhbXBsZQotQEAgLTIzNzAwLDYgKzI0 MTU3LDkgQEAgV2l0aCB0aGUgQHNhbXB7Kn0gcGFyYW1ldGVyLCBpZiBhIHZhcmlhYmxlIG9iamVj dCBpcyBib3VuZCB0byBhCitAQCAtMjM2NDksNiArMjQxNzAsOSBAQCByZXN1bHQgY2FuIGJlIHVz ZWQgb25seSBmb3IgVUkgcHJlc2VudGF0aW9uLiAgVHlwaWNhbCB1c2Ugb2YKKyB0aGUgQGNvZGV7 LXZhci1pbmZvLXBhdGgtZXhwcmVzc2lvbn0gY29tbWFuZCBpcyBjcmVhdGluZyBhIAorIHdhdGNo cG9pbnQgZnJvbSBhIHZhcmlhYmxlIG9iamVjdC4KKyAKKytUaGlzIGNvbW1hbmQgaXMgY3VycmVu dGx5IG5vdCB2YWxpZCBmb3IgY2hpbGRyZW4gb2YgYSBkeW5hbWljIHZhcm9iaiwKKythbmQgd2ls bCBnaXZlIGFuIGVycm9yIHdoZW4gaW52b2tlZCBvbiBvbmUuCisrCisgRm9yIGV4YW1wbGUsIHN1 cHBvc2UgQGNvZGV7Q30gaXMgYSBDQHR7Kyt9IGNsYXNzLCBkZXJpdmVkIGZyb20gY2xhc3MKKyBA Y29kZXtCYXNlfSwgYW5kIHRoYXQgdGhlIEBjb2Rle0Jhc2V9IGNsYXNzIGhhcyBhIG1lbWJlciBj YWxsZWQKKyBAY29kZXttX3NpemV9LiAgQXNzdW1lIGEgdmFyaWFibGUgQGNvZGV7Y30gaXMgaGFz IHRoZSB0eXBlIG9mCitAQCAtMjM3NTQsNiArMjQyNzgsNjggQEAgV2l0aCB0aGUgQHNhbXB7Kn0g cGFyYW1ldGVyLCBpZiBhIHZhcmlhYmxlIG9iamVjdCBpcyBib3VuZCB0byBhCiAgY3VycmVudGx5 IHJ1bm5pbmcgdGhyZWFkLCBpdCB3aWxsIG5vdCBiZSB1cGRhdGVkLCB3aXRob3V0IGFueQogIGRp YWdub3N0aWMuCiAgCiArSWYgQGNvZGV7LXZhci1zZXQtdXBkYXRlLXJhbmdlfSB3YXMgcHJldmlv dXNseSB1c2VkIG9uIGEgdmFyb2JqLCB0aGVuCiArb25seSB0aGUgc2VsZWN0ZWQgcmFuZ2Ugb2Yg Y2hpbGRyZW4gd2lsbCBiZSByZXBvcnRlZC4KICsKKytAY29kZXstdmFyLXVwZGF0ZX0gcmVwb3J0 cyBhbGwgdGhlIGNoYW5nZWQgdmFyb2JqcyBpbiBhIHR1cGxlIG5hbWVkCisrQHNhbXB7Y2hhbmdl bGlzdH0uCisrCisrRWFjaCBpdGVtIGluIHRoZSBjaGFuZ2UgbGlzdCBpcyBpdHNlbGYgYSB0dXBs ZSBob2xkaW5nOgorKworK0B0YWJsZSBAc2FtcAorK0BpdGVtIG5hbWUKKytUaGUgbmFtZSBvZiB0 aGUgdmFyb2JqLgorKworK0BpdGVtIHZhbHVlCisrSWYgdmFsdWVzIHdlcmUgcmVxdWVzdGVkIGZv ciB0aGlzIHVwZGF0ZSwgdGhlbiB0aGlzIGZpZWxkIHdpbGwgYmUKKytwcmVzZW50IGFuZCB3aWxs IGhvbGQgdGhlIHZhbHVlIG9mIHRoZSB2YXJvYmouCisrCisrQGl0ZW0gaW5fc2NvcGUKKytUaGlz IGlzIGEgc3RyaW5nLCBlaXRoZXIgQHNhbXB7ZmFsc2V9IGlmIHRoZSB2YXJvYmogaXMgbm90IGlu IHNjb3BlLAorK29yIEBzYW1we3RydWV9IGlmIGl0IGlzIGluIHNjb3BlLgorKworK0BpdGVtIHR5 cGVfY2hhbmdlZAorK1RoaXMgaXMgb25seSBwcmVzZW50IGlmIHRoZSB2YXJvYmogaXMgc3RpbGwg dmFsaWQuICBJZiB0aGUgdHlwZQorK2NoYW5nZWQsIHRoZW4gdGhpcyB3aWxsIGJlIHRoZSBzdHJp bmcgQHNhbXB7dHJ1ZX07IG90aGVyd2lzZSBpdCB3aWxsCisrYmUgQHNhbXB7ZmFsc2V9LgorKwor K0BpdGVtIG5ld190eXBlCisrSWYgdGhlIHZhcm9iaidzIHR5cGUgY2hhbmdlZCwgdGhlbiB0aGlz IGZpZWxkIHdpbGwgYmUgcHJlc2VudCBhbmQgd2lsbAorK2hvbGQgdGhlIG5ldyB0eXBlLgorKwor K0BpdGVtIG5ld19udW1fY2hpbGRyZW4KKytGb3IgYSBkeW5hbWljIHZhcm9iaiwgaWYgdGhlIG51 bWJlciBvZiBjaGlsZHJlbiBjaGFuZ2VkLCBvciBpZiB0aGUKKyt0eXBlIGNoYW5nZWQsIHRoaXMg d2lsbCBiZSB0aGUgbmV3IG51bWJlciBvZiBjaGlsZHJlbi4KKysKKytUaGUgQHNhbXB7bnVtY2hp bGR9IGZpZWxkIGluIG90aGVyIHZhcm9iaiByZXNwb25zZXMgaXMgZ2VuZXJhbGx5IG5vdAorK3Zh bGlkIGZvciBhIGR5bmFtaWMgdmFyb2JqIC0tIGl0IHdpbGwgc2hvdyB0aGUgbnVtYmVyIG9mIGNo aWxkcmVuIHRoYXQKKytAdmFsdWV7R0RCTn0ga25vd3MgYWJvdXQsIGJ1dCBiZWNhdXNlIGR5bmFt aWMgdmFyb2JqcyBsYXppbHkKKytpbnN0YW50aWF0ZSB0aGVpciBjaGlsZHJlbiwgdGhpcyB3aWxs IG5vdCByZWZsZWN0IHRoZSBudW1iZXIgb2YKKytjaGlsZHJlbiB3aGljaCBtYXkgYmUgYXZhaWxh YmxlLgorKworK1RoZSBAc2FtcHtuZXdfbnVtX2NoaWxkcmVufSBhdHRyaWJ1dGUgb25seSByZXBv cnRzIGNoYW5nZXMgdG8gdGhlCisrbnVtYmVyIG9mIGNoaWxkcmVuIGtub3duIGJ5IEB2YWx1ZXtH REJOfS4gIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvCisrZGV0ZWN0IHdoZXRoZXIgYW4gdXBkYXRl IGhhcyByZW1vdmVkIGNoaWxkcmVuICh3aGljaCBuZWNlc3NhcmlseSBjYW4KKytvbmx5IGhhcHBl biBhdCB0aGUgZW5kIG9mIHRoZSB1cGRhdGUgcmFuZ2UpLgorKworK0BpdGVtIGRpc3BsYXloaW50 CisrVGhlIGRpc3BsYXkgaGludCwgaWYgYW55LgorKworK0BpdGVtIGhhc19tb3JlCisrVGhpcyBp cyBhbiBpbnRlZ2VyIHZhbHVlLCB3aGljaCB3aWxsIGJlIDEgaWYgdGhlcmUgYXJlIG1vcmUgY2hp bGRyZW4KKythdmFpbGFibGUgb3V0c2lkZSB0aGUgdmFyb2JqJ3MgdXBkYXRlIHJhbmdlLgorKwor K0BpdGVtIGR5bmFtaWMKKytUaGlzIGF0dHJpYnV0ZSB3aWxsIGJlIHByZXNlbnQgYW5kIGhhdmUg dGhlIHZhbHVlIEBzYW1wezF9IGlmIHRoZQorK3Zhcm9iaiBpcyBhIGR5bmFtaWMgdmFyb2JqLiAg SWYgdGhlIHZhcm9iaiBpcyBub3QgYSBkeW5hbWljIHZhcm9iaiwKKyt0aGVuIHRoaXMgYXR0cmli dXRlIHdpbGwgbm90IGJlIHByZXNlbnQuCisrCisrQGl0ZW0gbmV3X2NoaWxkcmVuCisrSWYgbmV3 IGNoaWxkcmVuIHdlcmUgYWRkZWQgdG8gYSBkeW5hbWljIHZhcm9iaiB3aXRoaW4gdGhlIHNlbGVj dGVkCisrdXBkYXRlIHJhbmdlIChhcyBzZXQgYnkgQGNvZGV7LXZhci1zZXQtdXBkYXRlLXJhbmdl fSksIHRoZW4gdGhleSB3aWxsCisrYmUgbGlzdGVkIGluIHRoaXMgYXR0cmlidXRlLgorK0BlbmQg dGFibGUKKysKICBAc3Vic3ViaGVhZGluZyBFeGFtcGxlCiAgCiAgQHNtYWxsZXhhbXBsZQotQEAg LTIzNzY3LDYgKzI0MjI3LDMyIEBAIFVuZnJlZXppbmcgYSB2YXJpYWJsZSBkb2VzIG5vdCB1cGRh dGUgaXQsIG9ubHkgc3Vic2VxdWVudAorQEAgLTIzODIxLDYgKzI0NDA3LDMyIEBAIFVuZnJlZXpp bmcgYSB2YXJpYWJsZSBkb2VzIG5vdCB1cGRhdGUgaXQsIG9ubHkgc3Vic2VxdWVudAogIChnZGIp CiAgQGVuZCBzbWFsbGV4YW1wbGUKICAKQEAgLTMzNDQsNyArNDY4Niw3IEBAIGluZGV4IDQwMTZh Y2MuLjEwNDIzMDMgMTAwNjQ0CiAgQGZpbmRleCAtdmFyLXNldC12aXN1YWxpemVyCiAgQGFuY2hv cnstdmFyLXNldC12aXN1YWxpemVyfQogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiaW50LnRleGlu Zm8gYi9nZGIvZG9jL2dkYmludC50ZXhpbmZvCi1pbmRleCBiMWMwNDUyLi5kYTI0Yjk4IDEwMDY0 NAoraW5kZXggZTcwNmNhYS4uNmIwNTVkMyAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2RiaW50LnRl eGluZm8KICsrKyBiL2dkYi9kb2MvZ2RiaW50LnRleGluZm8KIEBAIC0yMTA2LDYgKzIxMDYsMTgg QEAgdGltZSwgYW5kIHNvIHdlIGF0dGVtcHQgdG8gaGFuZGxlIHN5bWJvbHMgaW5jcmVtZW50YWxs eS4gIEZvciBpbnN0YW5jZSwKQEAgLTM0ODksNyArNDgzMSw3IEBAIGluZGV4IDQ5ODRmMzEuLmZj ZjFiNWQgMTAwNjQ0CiAgVGhpcyBvYnNlcnZlciBpcyB1c2VkIGZvciBpbnRlcm5hbCB0ZXN0aW5n LiAgRG8gbm90IHVzZS4gIAogIFNlZSB0ZXN0c3VpdGUvZ2RiLmdkYi9vYnNlcnZlci5leHAuCiBk aWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi1mcmFtZS5jIGIvZ2RiL2R3YXJmMi1mcmFtZS5jCi1pbmRl eCA0MjdmNThmLi5lNjZmMDA3IDEwMDY0NAoraW5kZXggZjljYTA2Ny4uOTc5YjY0OSAxMDA2NDQK IC0tLSBhL2dkYi9kd2FyZjItZnJhbWUuYwogKysrIGIvZ2RiL2R3YXJmMi1mcmFtZS5jCiBAQCAt MzgsNiArMzgsNyBAQApAQCAtMzUwMCwyOCArNDg0Miw3IEBAIGluZGV4IDQyN2Y1OGYuLmU2NmYw MDcgMTAwNjQ0CiAgCiAgc3RydWN0IGNvbXBfdW5pdDsKICAKLUBAIC0zMTAsNiArMzExLDEzIEBA IG5vX2dldF9mcmFtZV9iYXNlICh2b2lkICpiYXRvbiwgZ2RiX2J5dGUgKipzdGFydCwgc2l6ZV90 ICpsZW5ndGgpCi0gfQotIAotIHN0YXRpYyBDT1JFX0FERFIKLStub19nZXRfZnJhbWVfY2ZhICh2 b2lkICpiYXRvbikKLSt7Ci0rICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAot KwkJICBfKCJTdXBwb3J0IGZvciBEV19PUF9jYWxsX2ZyYW1lX2NmYSBpcyB1bmltcGxlbWVudGVk IikpOwotK30KLSsKLStzdGF0aWMgQ09SRV9BRERSCi0gbm9fZ2V0X3Rsc19hZGRyZXNzICh2b2lk ICpiYXRvbiwgQ09SRV9BRERSIG9mZnNldCkKLSB7Ci0gICBpbnRlcm5hbF9lcnJvciAoX19GSUxF X18sIF9fTElORV9fLAotQEAgLTM2MywxNCArMzcxLDIyIEBAIGV4ZWN1dGVfc3RhY2tfb3AgKGdk Yl9ieXRlICpleHAsIFVMT05HRVNUIGxlbiwgaW50IGFkZHJfc2l6ZSwKLSAgIGN0eC0+cmVhZF9y ZWcgPSByZWFkX3JlZzsKLSAgIGN0eC0+cmVhZF9tZW0gPSByZWFkX21lbTsKLSAgIGN0eC0+Z2V0 X2ZyYW1lX2Jhc2UgPSBub19nZXRfZnJhbWVfYmFzZTsKLSsgIGN0eC0+Z2V0X2ZyYW1lX2NmYSA9 IG5vX2dldF9mcmFtZV9jZmE7Ci0gICBjdHgtPmdldF90bHNfYWRkcmVzcyA9IG5vX2dldF90bHNf YWRkcmVzczsKLSAKLSAgIGR3YXJmX2V4cHJfcHVzaCAoY3R4LCBpbml0aWFsKTsKK0BAIC0zNzks OCArMzgwLDE1IEBAIGV4ZWN1dGVfc3RhY2tfb3AgKGdkYl9ieXRlICpleHAsIFVMT05HRVNUIGxl biwgaW50IGFkZHJfc2l6ZSwKICAgIGR3YXJmX2V4cHJfZXZhbCAoY3R4LCBleHAsIGxlbik7CiAg ICByZXN1bHQgPSBkd2FyZl9leHByX2ZldGNoIChjdHgsIDApOwogIApAQCAtMzUzOCwyNCArNDg1 OSw3IEBAIGluZGV4IDQyN2Y1OGYuLmU2NmYwMDcgMTAwNjQ0CiAgCiAgICBkb19jbGVhbnVwcyAo b2xkX2NoYWluKTsKICAKLUBAIC0xMjUwLDYgKzEyNjYsMTYgQEAgZHdhcmYyX2ZyYW1lX2Jhc2Vf c25pZmZlciAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpCi0gCi0gICByZXR1cm4gTlVM TDsKLSB9Ci0rCi0rQ09SRV9BRERSCi0rZHdhcmYyX2ZyYW1lX2NmYSAoc3RydWN0IGZyYW1lX2lu Zm8gKnRoaXNfZnJhbWUpCi0rewotKyAgd2hpbGUgKGdldF9mcmFtZV90eXBlICh0aGlzX2ZyYW1l KSA9PSBJTkxJTkVfRlJBTUUpCi0rICAgIHRoaXNfZnJhbWUgPSBnZXRfcHJldl9mcmFtZSAodGhp c19mcmFtZSk7Ci0rICBpZiAoISBmcmFtZV91bndpbmRlcl9pcyAodGhpc19mcmFtZSwgJmR3YXJm Ml9mcmFtZV91bndpbmQpKQotKyAgICBlcnJvciAoXygiY2FuJ3QgY29tcHV0ZSBDRkEgZm9yIHRo aXMgZnJhbWUiKSk7Ci0rICByZXR1cm4gZ2V0X2ZyYW1lX2Jhc2UgKHRoaXNfZnJhbWUpOwotK30K LSAMCi0gY29uc3Qgc3RydWN0IG9iamZpbGVfZGF0YSAqZHdhcmYyX2ZyYW1lX29iamZpbGVfZGF0 YTsKLSAKLUBAIC0xNTM5LDYgKzE1NjUsMTQgQEAgZHdhcmYyX2ZyYW1lX2ZpbmRfZmRlIChDT1JF X0FERFIgKnBjKQorQEAgLTE1NjYsNiArMTU3NCwxNCBAQCBkd2FyZjJfZnJhbWVfZmluZF9mZGUg KENPUkVfQUREUiAqcGMpCiAgICAgICAgQ09SRV9BRERSIG9mZnNldDsKICAgICAgICBDT1JFX0FE RFIgc2Vla19wYzsKICAKQEAgLTM1NzAsMjEgKzQ4NzQsOCBAQCBpbmRleCA0MjdmNThmLi5lNjZm MDA3IDEwMDY0NAogICAgICAgIGZkZV90YWJsZSA9IG9iamZpbGVfZGF0YSAob2JqZmlsZSwgZHdh cmYyX2ZyYW1lX29iamZpbGVfZGF0YSk7CiAgICAgICAgaWYgKGZkZV90YWJsZSA9PSBOVUxMKQog IAljb250aW51ZTsKLWRpZmYgLS1naXQgYS9nZGIvZHdhcmYyLWZyYW1lLmggYi9nZGIvZHdhcmYy LWZyYW1lLmgKLWluZGV4IGIyMDM2NjEuLmRkMDNkNTkgMTAwNjQ0Ci0tLS0gYS9nZGIvZHdhcmYy LWZyYW1lLmgKLSsrKyBiL2dkYi9kd2FyZjItZnJhbWUuaAotQEAgLTExOCw0ICsxMTgsOCBAQCBl eHRlcm4gY29uc3Qgc3RydWN0IGZyYW1lX2Jhc2UgKgotIAotIHZvaWQgZHdhcmYyX2ZyYW1lX2J1 aWxkX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKTsKLSAKLSsvKiBDb21wdXRlIHRoZSBE V0FSRiBDRkEgZm9yIGEgZnJhbWUuICAqLwotKwotK0NPUkVfQUREUiBkd2FyZjJfZnJhbWVfY2Zh IChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFtZSk7Ci0rCi0gI2VuZGlmIC8qIGR3YXJmMi1m cmFtZS5oICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmV4cHIuYyBiL2dkYi9kd2FyZjJleHBy LmMKLWluZGV4IDI3MjEwNjUuLjA2NDRiNDYgMTAwNjQ0CitpbmRleCA2NDAxZTcyLi4wNjQ0YjQ2 IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmV4cHIuYwogKysrIGIvZ2RiL2R3YXJmMmV4cHIuYwog QEAgLTEyNSw4ICsxMjUsNyBAQCBkd2FyZl9leHByX2ZldGNoIChzdHJ1Y3QgZHdhcmZfZXhwcl9j b250ZXh0ICpjdHgsIGludCBuKQpAQCAtMzcxMCwxOCArNTAwMSw3IEBAIGluZGV4IDI3MjEwNjUu LjA2NDRiNDYgMTAwNjQ0CiAgCSAgfQogIAkgIGJyZWFrOwogIAljYXNlIERXX09QX2R1cDoKLUBA IC03MTYsNiArNzU2LDEwIEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2Nv bnRleHQgKmN0eCwKLSAJICB9Ci0gCSAgYnJlYWs7Ci0gCi0rCWNhc2UgRFdfT1BfY2FsbF9mcmFt ZV9jZmE6Ci0rCSAgcmVzdWx0ID0gKGN0eC0+Z2V0X2ZyYW1lX2NmYSkgKGN0eC0+YmF0b24pOwot KwkgIGJyZWFrOwotKwotIAljYXNlIERXX09QX0dOVV9wdXNoX3Rsc19hZGRyZXNzOgotIAkgIC8q IFZhcmlhYmxlIGlzIGF0IGEgY29uc3RhbnQgb2Zmc2V0IGluIHRoZSB0aHJlYWQtbG9jYWwKLSAJ ICBzdG9yYWdlIGJsb2NrIGludG8gdGhlIG9iamZpbGUgZm9yIHRoZSBjdXJyZW50IHRocmVhZCBh bmQKLUBAIC03NTQsMTIgKzc5OCwxMyBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdhcmZf ZXhwcl9jb250ZXh0ICpjdHgsCitAQCAtNzU4LDEyICs3OTgsMTMgQEAgZXhlY3V0ZV9zdGFja19v cCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAogIAogICAgICAgICAgICAgIC8qIFJl Y29yZCB0aGUgcGllY2UuICAqLwogICAgICAgICAgICAgIG9wX3B0ciA9IHJlYWRfdWxlYjEyOCAo b3BfcHRyLCBvcF9lbmQsICZzaXplKTsKQEAgLTM3NDAsNyArNTAyMCw3IEBAIGluZGV4IDI3MjEw NjUuLjA2NDRiNDYgMTAwNjQ0CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZ290byBub19wdXNo OwogIAotQEAgLTc3MSw2ICs4MTYsMTMgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJm X2V4cHJfY29udGV4dCAqY3R4LAorQEAgLTc3NSw2ICs4MTYsMTMgQEAgZXhlY3V0ZV9zdGFja19v cCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAogIAkgIGN0eC0+aW5pdGlhbGl6ZWQg PSAwOwogIAkgIGdvdG8gbm9fcHVzaDsKICAKQEAgLTM3NTUsNyArNTAzNSw3IEBAIGluZGV4IDI3 MjEwNjUuLjA2NDRiNDYgMTAwNjQ0CiAgCSAgZXJyb3IgKF8oIlVuaGFuZGxlZCBkd2FyZiBleHBy ZXNzaW9uIG9wY29kZSAweCV4IiksIG9wKTsKICAJfQogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJl eHByLmggYi9nZGIvZHdhcmYyZXhwci5oCi1pbmRleCAyMzA2ZTQ5Li41OTdjMmRlIDEwMDY0NAor aW5kZXggNmIzYTA2OC4uNTk3YzJkZSAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJleHByLmgKICsr KyBiL2dkYi9kd2FyZjJleHByLmgKIEBAIC0yMyw2ICsyMywxOSBAQApAQCAtMzc3OCwxNyArNTA1 OCw3IEBAIGluZGV4IDIzMDZlNDkuLjU5N2MyZGUgMTAwNjQ0CiAgLyogVGhlIGV4cHJlc3Npb24g ZXZhbHVhdG9yIHdvcmtzIHdpdGggYSBkd2FyZl9leHByX2NvbnRleHQsIGRlc2NyaWJpbmcKICAg ICBpdHMgY3VycmVudCBzdGF0ZSBhbmQgaXRzIGNhbGxiYWNrcy4gICovCiAgc3RydWN0IGR3YXJm X2V4cHJfY29udGV4dAotQEAgLTU1LDYgKzY4LDkgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4 dAotICAgICAgZXhwcmVzc2lvbiBldmFsdWF0aW9uIGlzIGNvbXBsZXRlLiAgKi8KLSAgIHZvaWQg KCpnZXRfZnJhbWVfYmFzZSkgKHZvaWQgKmJhdG9uLCBnZGJfYnl0ZSAqKnN0YXJ0LCBzaXplX3Qg Kmxlbmd0aCk7Ci0gCi0rICAvKiBSZXR1cm4gdGhlIENGQSBmb3IgdGhlIGZyYW1lLiAgKi8KLSsg IENPUkVfQUREUiAoKmdldF9mcmFtZV9jZmEpICh2b2lkICpiYXRvbik7Ci0rCi0gICAvKiBSZXR1 cm4gdGhlIHRocmVhZC1sb2NhbCBzdG9yYWdlIGFkZHJlc3MgZm9yCi0gICAgICBEV19PUF9HTlVf cHVzaF90bHNfYWRkcmVzcy4gICovCi0gICBDT1JFX0FERFIgKCpnZXRfdGxzX2FkZHJlc3MpICh2 b2lkICpiYXRvbiwgQ09SRV9BRERSIG9mZnNldCk7Ci1AQCAtNjcsMTkgKzgzLDIzIEBAIHN0cnVj dCBkd2FyZl9leHByX2NvbnRleHQKK0BAIC03MCwxOSArODMsMjMgQEAgc3RydWN0IGR3YXJmX2V4 cHJfY29udGV4dAogICAgICAgVGhlIHJlc3VsdCBtdXN0IGJlIGxpdmUgdW50aWwgdGhlIGN1cnJl bnQgZXhwcmVzc2lvbiBldmFsdWF0aW9uCiAgICAgICBpcyBjb21wbGV0ZS4gICovCiAgICB1bnNp Z25lZCBjaGFyICooKmdldF9zdWJyKSAodm9pZCAqYmF0b24sIG9mZl90IG9mZnNldCwgc2l6ZV90 ICpsZW5ndGgpOwpAQCAtMzgxNiw3ICs1MDg2LDcgQEAgaW5kZXggMjMwNmU0OS4uNTk3YzJkZSAx MDA2NDQKICAKICAgIC8qIEluaXRpYWxpemF0aW9uIHN0YXR1cyBvZiB2YXJpYWJsZTogTm9uLXpl cm8gaWYgdmFyaWFibGUgaGFzIGJlZW4KICAgICAgIGluaXRpYWxpemVkOyB6ZXJvIG90aGVyd2lz ZS4gICovCi1AQCAtOTAsOSArMTEwLDkgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dAorQEAg LTkzLDkgKzExMCw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQKICAKICAgICAgIEVhY2gg dGltZSBEV19PUF9waWVjZSBpcyBleGVjdXRlZCwgd2UgYWRkIGEgbmV3IGVsZW1lbnQgdG8gdGhl CiAgICAgICBlbmQgb2YgdGhpcyBhcnJheSwgcmVjb3JkaW5nIHRoZSBjdXJyZW50IHRvcCBvZiB0 aGUgc3RhY2ssIHRoZQpAQCAtMzgyOSw3ICs1MDk5LDcgQEAgaW5kZXggMjMwNmU0OS4uNTk3YzJk ZSAxMDA2NDQKICAKICAgICAgIFRoZSBEd2FyZiBzcGVjIGRvZXNuJ3Qgc2F5IHdoZXRoZXIgRFdf T1BfcGllY2UgcG9wcyB0aGUgdG9wIHZhbHVlCiAgICAgICBmcm9tIHRoZSBzdGFjay4gIFdlIGRv LCBlbnN1cmluZyB0aGF0IGNsaWVudHMgb2YgdGhpcyBpbnRlcmZhY2UKLUBAIC0xMDMsMTIgKzEy MywxMSBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0CitAQCAtMTA2LDEyICsxMjMsMTEgQEAg c3RydWN0IGR3YXJmX2V4cHJfY29udGV4dAogIAogICAgICAgSWYgYW4gZXhwcmVzc2lvbiBuZXZl ciB1c2VzIERXX09QX3BpZWNlLCBudW1fcGllY2VzIHdpbGwgYmUgemVyby4KICAgICAgIChJdCB3 b3VsZCBiZSBuaWNlIHRvIHByZXNlbnQgdGhlc2UgY2FzZXMgYXMgZXhwcmVzc2lvbnMgeWllbGRp bmcKQEAgLTM4NDcsNyArNTExNyw3IEBAIGluZGV4IDIzMDZlNDkuLjU5N2MyZGUgMTAwNjQ0CiAg ICBpbnQgbnVtX3BpZWNlczsKICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVjZXM7CiAg fTsKLUBAIC0xMTcsMTMgKzEzNiwyMiBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0CitAQCAt MTIwLDEzICsxMzYsMjIgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dAogIC8qIEEgcGllY2Ug b2YgYW4gb2JqZWN0LCBhcyByZWNvcmRlZCBieSBEV19PUF9waWVjZS4gICovCiAgc3RydWN0IGR3 YXJmX2V4cHJfcGllY2UKICB7CkBAIC0zODc4LDE4ICs1MTQ4LDEwIEBAIGluZGV4IDIzMDZlNDku LjU5N2MyZGUgMTAwNjQ0CiAgICAvKiBUaGUgbGVuZ3RoIG9mIHRoZSBwaWVjZSwgaW4gYnl0ZXMu ICAqLwogICAgVUxPTkdFU1Qgc2l6ZTsKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9jLmMgYi9n ZGIvZHdhcmYybG9jLmMKLWluZGV4IDFkZjZhOWYuLjkzOWY3YTIgMTAwNjQ0CitpbmRleCBjM2Y2 ZDQwLi5hZjgxNmY0IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmxvYy5jCiArKysgYi9nZGIvZHdh cmYybG9jLmMKLUBAIC0zNiw2ICszNiw3IEBACi0gI2luY2x1ZGUgImR3YXJmMi5oIgotICNpbmNs dWRlICJkd2FyZjJleHByLmgiCi0gI2luY2x1ZGUgImR3YXJmMmxvYy5oIgotKyNpbmNsdWRlICJk d2FyZjItZnJhbWUuaCIKLSAKLSAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotICNpbmNsdWRlICJn ZGJfYXNzZXJ0LmgiCi1AQCAtMTE1LDYgKzExNiw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9u CitAQCAtMTE2LDYgKzExNiw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9uCiAgewogICAgc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lOwogICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7CkBAIC0z ODk5LDcgKzUxNjEsNyBAQCBpbmRleCAxZGY2YTlmLi45MzlmN2EyIDEwMDY0NAogIH07CiAgCiAg LyogSGVscGVyIGZ1bmN0aW9ucyBmb3IgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjLiAgKi8KLUBA IC0xNzYsMjIgKzE4MCw0MCBAQCBkd2FyZl9leHByX2ZyYW1lX2Jhc2UgKHZvaWQgKmJhdG9uLCBn ZGJfYnl0ZSAqKnN0YXJ0LCBzaXplX3QgKiBsZW5ndGgpCitAQCAtMTc3LDIyICsxODAsMzMgQEAg ZHdhcmZfZXhwcl9mcmFtZV9iYXNlICh2b2lkICpiYXRvbiwgZ2RiX2J5dGUgKipzdGFydCwgc2l6 ZV90ICogbGVuZ3RoKQogICAgICAgICpzdGFydCA9IGZpbmRfbG9jYXRpb25fZXhwcmVzc2lvbiAo c3ltYmF0b24sIGxlbmd0aCwKICAJCQkJCSBnZXRfZnJhbWVfYWRkcmVzc19pbl9ibG9jayAoZnJh bWUpKTsKICAgICAgfQpAQCAtMzkxOSw3ICs1MTgxLDcgQEAgaW5kZXggMWRmNmE5Zi4uOTM5Zjdh MiAxMDA2NDQKICsgICAgICBnZGJfYXNzZXJ0IChzeW1iYXRvbiAhPSBOVUxMKTsKICsgICAgICAq c3RhcnQgPSBzeW1iYXRvbi0+ZGF0YTsKICsgICAgICAqbGVuZ3RoID0gc3ltYmF0b24tPnNpemU7 Ci0gICAgIH0KKysgICAgfQogKyAgZWxzZSBpZiAoU1lNQk9MX0NPTVBVVEVEX09QUyAoZnJhbWVm dW5jKSA9PSAmZHdhcmYyX21pc3NpbmdfZnVuY3MpCiArICAgIHsKICsgICAgICBzdHJ1Y3QgZHdh cmYyX2xvY2V4cHJfYmF0b24gKnN5bWJhdG9uOwpAQCAtMzkyOCw3ICs1MTkwLDcgQEAgaW5kZXgg MWRmNmE5Zi4uOTM5ZjdhMiAxMDA2NDQKICsgICAgICBnZGJfYXNzZXJ0IChzeW1iYXRvbiA9PSBO VUxMKTsKICsgICAgICAqc3RhcnQgPSBOVUxMOwogKyAgICAgICpsZW5ndGggPSAwOwkvKiB1bnVz ZWQgKi8KLSsgICAgfQorICAgICB9CiArICBlbHNlCiArICAgIGludGVybmFsX2Vycm9yIChfX0ZJ TEVfXywgX19MSU5FX18sCiArCQkgICAgXygiVW5zdXBwb3J0ZWQgU1lNQk9MX0NPTVBVVEVEX09Q UyAlcCBmb3IgXCIlc1wiIiksCkBAIC0zOTM5LDE3ICs1MjAxLDEwIEBAIGluZGV4IDFkZjZhOWYu LjkzOWY3YTIgMTAwNjQ0CiAgICAgIGVycm9yIChfKCJDb3VsZCBub3QgZmluZCB0aGUgZnJhbWUg YmFzZSBmb3IgXCIlc1wiLiIpLAogLQkgICBTWU1CT0xfTkFUVVJBTF9OQU1FIChmcmFtZWZ1bmMp KTsKICsJICAgU1lNQk9MX1BSSU5UX05BTUUgKGZyYW1lZnVuYykpOwotK30KLSsKLStzdGF0aWMg Q09SRV9BRERSCi0rZHdhcmZfZXhwcl9mcmFtZV9jZmEgKHZvaWQgKmJhdG9uKQotK3sKLSsgIHN0 cnVjdCBkd2FyZl9leHByX2JhdG9uICpkZWJhdG9uID0gKHN0cnVjdCBkd2FyZl9leHByX2JhdG9u ICopIGJhdG9uOwotKyAgcmV0dXJuIGR3YXJmMl9mcmFtZV9jZmEgKGRlYmF0b24tPmZyYW1lKTsK ICB9CiAgCi0gLyogVXNpbmcgdGhlIG9iamZpbGUgc3BlY2lmaWVkIGluIEJBVE9OLCBmaW5kIHRo ZSBhZGRyZXNzIGZvciB0aGUKLUBAIC0yMDQsNiArMjI2LDEyOSBAQCBkd2FyZl9leHByX3Rsc19h ZGRyZXNzICh2b2lkICpiYXRvbiwgQ09SRV9BRERSIG9mZnNldCkKKyAvKiBIZWxwZXIgZnVuY3Rp b24gZm9yIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYy4gIENvbXB1dGVzIHRoZSBDRkEgZm9yCitA QCAtMjE1LDYgKzIyOSwxMjkgQEAgZHdhcmZfZXhwcl90bHNfYWRkcmVzcyAodm9pZCAqYmF0b24s IENPUkVfQUREUiBvZmZzZXQpCiAgICByZXR1cm4gdGFyZ2V0X3RyYW5zbGF0ZV90bHNfYWRkcmVz cyAoZGViYXRvbi0+b2JqZmlsZSwgb2Zmc2V0KTsKICB9CiAgCkBAIC00MDc2LDEwICs1MzMxLDUx IEBAIGluZGV4IDFkZjZhOWYuLjkzOWY3YTIgMTAwNjQ0CiArICByZXR1cm4gcmV0dmFsOwogK30K ICsKLSAvKiBFdmFsdWF0ZSBhIGxvY2F0aW9uIGRlc2NyaXB0aW9uLCBzdGFydGluZyBhdCBEQVRB IGFuZCB3aXRoIGxlbmd0aAotICAgIFNJWkUsIHRvIGZpbmQgdGhlIGN1cnJlbnQgbG9jYXRpb24g b2YgdmFyaWFibGUgVkFSIGluIHRoZSBjb250ZXh0Ci0gICAgb2YgRlJBTUUuICAqLwotQEAgLTIx Myw5ICszNTgsOCBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZh ciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorIHN0cnVjdCBwaWVjZV9jbG9zdXJlCisgewor ICAgLyogVGhlIG51bWJlciBvZiBwaWVjZXMgdXNlZCB0byBkZXNjcmliZSB0aGlzIHZhcmlhYmxl LiAgKi8KK0BAIC0yNTksMTggKzM5NiwxOCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZh bHVlICp2KQorIAkgIG1lbXNldCAoY29udGVudHMgKyBvZmZzZXQsIDAsIHAtPnNpemUpOworIAkg IHNldF92YWx1ZV9vcHRpbWl6ZWRfb3V0ICh2LCAxKTsKKyAJfQorLSAgICAgIGVsc2UgaWYgKHAt PmluX3JlZykKKysgICAgICBlbHNlIGlmIChwLT5sb2NhdGlvbiA9PSBEV0FSRl9WQUxVRV9SRUdJ U1RFUikKKyAJeworIAkgIHN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZy YW1lKTsKKyAJICBnZGJfYnl0ZSByZWd2YWxbTUFYX1JFR0lTVEVSX1NJWkVdOworLQkgIGludCBn ZGJfcmVnbnVtID0gZ2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAoYXJjaCwgcC0+dmFsdWUp OworKwkgIGludCBnZGJfcmVnbnVtID0gZ2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAoYXJj aCwgcC0+di52YWx1ZSk7CisgCisgCSAgZ2V0X2ZyYW1lX3JlZ2lzdGVyIChmcmFtZSwgZ2RiX3Jl Z251bSwgcmVndmFsKTsKKyAJICBtZW1jcHkgKGNvbnRlbnRzICsgb2Zmc2V0LCByZWd2YWwsIHAt PnNpemUpOworIAl9CisgICAgICAgZWxzZQorIAl7CistCSAgcmVhZF9tZW1vcnkgKHAtPnZhbHVl LCBjb250ZW50cyArIG9mZnNldCwgcC0+c2l6ZSk7CisrCSAgcmVhZF9tZW1vcnkgKHAtPnYudmFs dWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKKyAJfQorICAgICAgIG9mZnNldCArPSBw LT5zaXplOworICAgICB9CitAQCAtMjk1LDE1ICs0MzIsMTUgQEAgd3JpdGVfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgICBmb3IgKGkgPSAwOyBp IDwgYy0+bl9waWVjZXM7IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3Bp ZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKKy0gICAgICBpZiAocC0+aW5fcmVnKQorKyAgICAgIGlm IChwLT5sb2NhdGlvbiA9PSBEV0FSRl9WQUxVRV9SRUdJU1RFUikKKyAJeworIAkgIHN0cnVjdCBn ZGJhcmNoICphcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKKy0JICBpbnQgZ2RiX3JlZ251 bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAtPnZhbHVlKTsKKysJICBp bnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAtPnYu dmFsdWUpOworIAkgIHB1dF9mcmFtZV9yZWdpc3RlciAoZnJhbWUsIGdkYl9yZWdudW0sIGNvbnRl bnRzICsgb2Zmc2V0KTsKKyAJfQorICAgICAgIGVsc2UKKyAJeworLQkgIHdyaXRlX21lbW9yeSAo cC0+dmFsdWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKKysJICB3cml0ZV9tZW1vcnkg KHAtPnYudmFsdWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKKyAJfQorICAgICAgIG9m ZnNldCArPSBwLT5zaXplOworICAgICB9CitAQCAtMzQzLDkgKzQ4MCw4IEBAIGR3YXJmMl9ldmFs dWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJh bWUsCiAgCQkJICBzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCiAgewogICAgc3Ry dWN0IHZhbHVlICpyZXR2YWw7CkBAIC00MDkwLDcgKzUzODYsNyBAQCBpbmRleCAxZGY2YTlmLi45 MzlmN2EyIDEwMDY0NAogIAogICAgaWYgKHNpemUgPT0gMCkKICAgICAgewotQEAgLTIyNSwyMSAr MzY5LDggQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKK0BAIC0zNTUsMjIgKzQ5MSw4IEBAIGR3YXJmMl9ldmFs dWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJh bWUsCiAgICAgICAgcmV0dXJuIHJldHZhbDsKICAgICAgfQogIApAQCAtNDEwNyw3MSArNTQwMywx NiBAQCBpbmRleCAxZGY2YTlmLi45MzlmN2EyIDEwMDY0NAogLSAgY3R4LT5yZWFkX3JlZyA9IGR3 YXJmX2V4cHJfcmVhZF9yZWc7CiAtICBjdHgtPnJlYWRfbWVtID0gZHdhcmZfZXhwcl9yZWFkX21l bTsKIC0gIGN0eC0+Z2V0X2ZyYW1lX2Jhc2UgPSBkd2FyZl9leHByX2ZyYW1lX2Jhc2U7CistICBj dHgtPmdldF9mcmFtZV9jZmEgPSBkd2FyZl9leHByX2ZyYW1lX2NmYTsKIC0gIGN0eC0+Z2V0X3Rs c19hZGRyZXNzID0gZHdhcmZfZXhwcl90bHNfYWRkcmVzczsKIC0KIC0gIGR3YXJmX2V4cHJfZXZh bCAoY3R4LCBkYXRhLCBzaXplKTsKICAgIGlmIChjdHgtPm51bV9waWVjZXMgPiAwKQogICAgICB7 Ci0gICAgICAgaW50IGk7Ci1AQCAtMjUxLDM2ICszODIsMTE1IEBAIGR3YXJmMl9ldmFsdWF0ZV9s b2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCi0g ICAgICAgZm9yIChpID0gMDsgaSA8IGN0eC0+bnVtX3BpZWNlczsgaSsrKQotIAl7Ci0gCSAgc3Ry dWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmY3R4LT5waWVjZXNbaV07Ci0tCSAgaWYgKHAtPmlu X3JlZykKLS0JICAgIHsKLS0JICAgICAgc3RydWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRfZnJhbWVf YXJjaCAoZnJhbWUpOwotLQkgICAgICBiZmRfYnl0ZSByZWd2YWxbTUFYX1JFR0lTVEVSX1NJWkVd OwotLQkgICAgICBpbnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0g KGFyY2gsIHAtPnZhbHVlKTsKLS0JICAgICAgZ2V0X2ZyYW1lX3JlZ2lzdGVyIChmcmFtZSwgZ2Ri X3JlZ251bSwgcmVndmFsKTsKLS0JICAgICAgbWVtY3B5IChjb250ZW50cyArIG9mZnNldCwgcmVn dmFsLCBwLT5zaXplKTsKLS0JICAgIH0KLS0JICBlbHNlIC8qIEluIG1lbW9yeT8gICovCi0rCSAg c3dpdGNoIChwLT5sb2NhdGlvbikKLSAJICAgIHsKLS0JICAgICAgcmVhZF9tZW1vcnkgKHAtPnZh bHVlLCBjb250ZW50cyArIG9mZnNldCwgcC0+c2l6ZSk7Ci0rCSAgICBjYXNlIERXQVJGX1ZBTFVF X1JFR0lTVEVSOgotKwkgICAgICB7Ci0rCQlzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCA9IGdldF9mcmFt ZV9hcmNoIChmcmFtZSk7Ci0rCQliZmRfYnl0ZSByZWd2YWxbTUFYX1JFR0lTVEVSX1NJWkVdOwot KwkJaW50IGdkYl9yZWdudW0gPSBnZGJhcmNoX2R3YXJmMl9yZWdfdG9fcmVnbnVtIChhcmNoLAot KwkJCQkJCQkgICAgICAgcC0+di52YWx1ZSk7Ci0rCQlnZXRfZnJhbWVfcmVnaXN0ZXIgKGZyYW1l LCBnZGJfcmVnbnVtLCByZWd2YWwpOwotKwkJbWVtY3B5IChjb250ZW50cyArIG9mZnNldCwgcmVn dmFsLCBwLT5zaXplKTsKLSsJICAgICAgfQotKwkgICAgICBicmVhazsKLSsKLSsJICAgIGNhc2Ug RFdBUkZfVkFMVUVfTUVNT1JZOgotKwkgICAgICByZWFkX21lbW9yeSAocC0+di52YWx1ZSwgY29u dGVudHMgKyBvZmZzZXQsIHAtPnNpemUpOwotKwkgICAgICBicmVhazsKLSsKLSsJICAgIGNhc2Ug RFdBUkZfVkFMVUVfU1RBQ0s6Ci0rCSAgICAgIHsKLSsJCWdkYl9ieXRlIGJ5dGVzW3NpemVvZiAo VUxPTkdFU1QpXTsKLSsJCXNpemVfdCBuOwotKwkJc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnl0 ZXMsIGN0eC0+YWRkcl9zaXplLAotKwkJCQkJZ2RiYXJjaF9ieXRlX29yZGVyIChjdHgtPmdkYmFy Y2gpLAotKwkJCQkJcC0+di52YWx1ZSk7Ci0rCQluID0gcC0+c2l6ZTsKLSsJCWlmIChuID4gY3R4 LT5hZGRyX3NpemUpCi0rCQkgIG4gPSBjdHgtPmFkZHJfc2l6ZTsKLSsJCW1lbWNweSAoY29udGVu dHMgKyBvZmZzZXQsIGJ5dGVzLCBuKTsKLSsJICAgICAgfQotKwkgICAgICBicmVhazsKLSsKLSsJ ICAgIGNhc2UgRFdBUkZfVkFMVUVfTElURVJBTDoKLSsJICAgICAgewotKwkJc2l6ZV90IG4gPSBw LT5zaXplOwotKwkJaWYgKG4gPiBwLT52LmxpdGVyYWwubGVuZ3RoKQotKwkJICBuID0gcC0+di5s aXRlcmFsLmxlbmd0aDsKLSsJCW1lbWNweSAoY29udGVudHMgKyBvZmZzZXQsIHAtPnYubGl0ZXJh bC5kYXRhLCBuKTsKLSsJICAgICAgfQotKwkgICAgICBicmVhazsKLSsKLSsJICAgIGRlZmF1bHQ6 Ci0rCSAgICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQg bG9jYXRpb24gdHlwZSIpKTsKLSAJICAgIH0KLSAJICBvZmZzZXQgKz0gcC0+c2l6ZTsKLSAJfQor ICAgICAgIHN0cnVjdCBwaWVjZV9jbG9zdXJlICpjOworQEAgLTM4MiwyMiArNTA0LDcwIEBAIGR3 YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVf aW5mbyAqZnJhbWUsCisgCQkJCQljKTsKKyAgICAgICBWQUxVRV9GUkFNRV9JRCAocmV0dmFsKSA9 IGZyYW1lX2lkOwogICAgICB9CiAtICBlbHNlIGlmIChjdHgtPmluX3JlZykKIC0gICAgewpAQCAt NDE4Nyw2ICs1NDI4LDcgQEAgaW5kZXggMWRmNmE5Zi4uOTM5ZjdhMiAxMDA2NDQKIC0gICAgICBy ZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAoU1lNQk9MX1RZUEUgKHZhcikpOwogLSAgICAgIFZBTFVF X0xWQUwgKHJldHZhbCkgPSBsdmFsX21lbW9yeTsKIC0gICAgICBzZXRfdmFsdWVfbGF6eSAocmV0 dmFsLCAxKTsKKy0gICAgICBzZXRfdmFsdWVfc3RhY2sgKHJldHZhbCwgMSk7CiAtICAgICAgc2V0 X3ZhbHVlX2FkZHJlc3MgKHJldHZhbCwgYWRkcmVzcyk7CiArICAgICAgc3dpdGNoIChjdHgtPmxv Y2F0aW9uKQogKwl7CkBAIC00MjExLDYgKzU0NTMsNyBAQCBpbmRleCAxZGY2YTlmLi45MzlmN2Ey IDEwMDY0NAogKwkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2YXIp KTsKICsJICAgIFZBTFVFX0xWQUwgKHJldHZhbCkgPSBsdmFsX21lbW9yeTsKICsJICAgIHNldF92 YWx1ZV9sYXp5IChyZXR2YWwsIDEpOworKwkgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWwsIDEp OwogKwkgICAgc2V0X3ZhbHVlX2FkZHJlc3MgKHJldHZhbCwgYWRkcmVzcyk7CiArCSAgfQogKwkg IGJyZWFrOwpAQCAtNDI1MiwyOCArNTQ5NSw3IEBAIGluZGV4IDFkZjZhOWYuLjkzOWY3YTIgMTAw NjQ0CiAgICAgIH0KICAKICAgIHNldF92YWx1ZV9pbml0aWFsaXplZCAocmV0dmFsLCBjdHgtPmlu aXRpYWxpemVkKTsKLUBAIC0zMzAsNiArNTQwLDE1IEBAIG5lZWRzX2ZyYW1lX2ZyYW1lX2Jhc2Ug KHZvaWQgKmJhdG9uLCBnZGJfYnl0ZSAqKnN0YXJ0LCBzaXplX3QgKiBsZW5ndGgpCi0gICBuZl9i YXRvbi0+bmVlZHNfZnJhbWUgPSAxOwotIH0KLSAKLSsvKiBDRkEgYWNjZXNzZXMgcmVxdWlyZSBh IGZyYW1lLiAgKi8KLStzdGF0aWMgQ09SRV9BRERSCi0rbmVlZHNfZnJhbWVfZnJhbWVfY2ZhICh2 b2lkICpiYXRvbikKLSt7Ci0rICBzdHJ1Y3QgbmVlZHNfZnJhbWVfYmF0b24gKm5mX2JhdG9uID0g YmF0b247Ci0rICBuZl9iYXRvbi0+bmVlZHNfZnJhbWUgPSAxOwotKyAgcmV0dXJuIDE7Ci0rfQot KwotIC8qIFRocmVhZC1sb2NhbCBhY2Nlc3NlcyBkbyByZXF1aXJlIGEgZnJhbWUuICAqLwotIHN0 YXRpYyBDT1JFX0FERFIKLSBuZWVkc19mcmFtZV90bHNfYWRkcmVzcyAodm9pZCAqYmF0b24sIENP UkVfQUREUiBvZmZzZXQpCi1AQCAtMzYyLDExICs1ODEsMTIgQEAgZHdhcmYyX2xvY19kZXNjX25l ZWRzX2ZyYW1lIChnZGJfYnl0ZSAqZGF0YSwgdW5zaWduZWQgc2hvcnQgc2l6ZSwKLSAgIGN0eC0+ cmVhZF9yZWcgPSBuZWVkc19mcmFtZV9yZWFkX3JlZzsKLSAgIGN0eC0+cmVhZF9tZW0gPSBuZWVk c19mcmFtZV9yZWFkX21lbTsKLSAgIGN0eC0+Z2V0X2ZyYW1lX2Jhc2UgPSBuZWVkc19mcmFtZV9m cmFtZV9iYXNlOwotKyAgY3R4LT5nZXRfZnJhbWVfY2ZhID0gbmVlZHNfZnJhbWVfZnJhbWVfY2Zh OwotICAgY3R4LT5nZXRfdGxzX2FkZHJlc3MgPSBuZWVkc19mcmFtZV90bHNfYWRkcmVzczsKK0BA IC00OTQsNyArNjY0LDcgQEAgZHdhcmYyX2xvY19kZXNjX25lZWRzX2ZyYW1lIChnZGJfYnl0ZSAq ZGF0YSwgdW5zaWduZWQgc2hvcnQgc2l6ZSwKICAKICAgIGR3YXJmX2V4cHJfZXZhbCAoY3R4LCBk YXRhLCBzaXplKTsKICAKQEAgLTQyODIsNyArNTUwNCw3IEBAIGluZGV4IDFkZjZhOWYuLjkzOWY3 YTIgMTAwNjQ0CiAgCiAgICBpZiAoY3R4LT5udW1fcGllY2VzID4gMCkKICAgICAgewotQEAgLTM3 NSw3ICs1OTUsNyBAQCBkd2FyZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUgKGdkYl9ieXRlICpkYXRh LCB1bnNpZ25lZCBzaG9ydCBzaXplLAorQEAgLTUwMyw3ICs2NzMsNyBAQCBkd2FyZjJfbG9jX2Rl c2NfbmVlZHNfZnJhbWUgKGdkYl9ieXRlICpkYXRhLCB1bnNpZ25lZCBzaG9ydCBzaXplLAogICAg ICAgIC8qIElmIHRoZSBsb2NhdGlvbiBoYXMgc2V2ZXJhbCBwaWVjZXMsIGFuZCBhbnkgb2YgdGhl bSBhcmUgaW4KICAgICAgICAgICByZWdpc3RlcnMsIHRoZW4gd2Ugd2lsbCBuZWVkIGEgZnJhbWUg dG8gZmV0Y2ggdGhlbSBmcm9tLiAgKi8KICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4LT5udW1f cGllY2VzOyBpKyspCkBAIC00MjkxLDcgKzU1MTMsNyBAQCBpbmRleCAxZGY2YTlmLi45MzlmN2Ey IDEwMDY0NAogICAgICAgICAgICBpbl9yZWcgPSAxOwogICAgICB9CiAgCi1AQCAtNjA3LDcgKzgy Nyw3IEBAIHN0YXRpYyBpbnQKK0BAIC03MzUsNyArOTA1LDcgQEAgc3RhdGljIGludAogIGxvY2xp c3RfZGVzY3JpYmVfbG9jYXRpb24gKHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSkKICB7CiAgICAvKiBGSVhNRTogQ291bGQgcHJpbnQgdGhlIGVudGlyZSBsaXN0 IG9mIGxvY2F0aW9ucy4gICovCkBAIC00MzAwLDcgKzU1MjIsNyBAQCBpbmRleCAxZGY2YTlmLi45 MzlmN2EyIDEwMDY0NAogICAgcmV0dXJuIDE7CiAgfQogIAotQEAgLTYyMywxNiArODQzLDU2IEBA IGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTc1MSwxNiArOTIxLDU2IEBAIGxvY2xpc3RfdHJhY2Vw b2ludF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLAogIAogICAgZGF0YSA9IGZpbmRfbG9jYXRpb25fZXhwcmVzc2lvbiAoZGxiYXRvbiwgJnNp emUsIGF4LT5zY29wZSk7CiAgICBpZiAoZGF0YSA9PSBOVUxMKQpAQCAtNDM3NywyMCArNTU5OSwx MCBAQCBpbmRleCAwYmZjZmNhLi4wMTAxOGQ2IDEwMDY0NAogIAogICNlbmRpZiAvKiBkd2FyZjJs b2MuaCAqLwogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5j Ci1pbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAoraW5kZXggN2YwNDQyNy4uMzE1MDRmZSAx MDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKICsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBA IC0xLDggKzEsNyBAQAotIC8qIERXQVJGIDIgZGVidWdnaW5nIGZvcm1hdCBzdXBwb3J0IGZvciBH REIuCi0gCi0gICAgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLAotLSAgICAgICAgICAgICAgICAgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOQotLSAgICAgICAgICAgICAgICAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rICAgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAw OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSAKLSAgICBBZGFwdGVkIGJ5IEdhcnkg RnVuY2sgKGdhcnlAaW50cmVwaWQuY29tKSwgSW50cmVwaWQgVGVjaG5vbG9neSwKLSAgICBJbmMu ICB3aXRoIHN1cHBvcnQgZnJvbSBGbG9yaWRhIFN0YXRlIFVuaXZlcnNpdHkgKHVuZGVyIGNvbnRy YWN0Ci1AQCAtNDgsNiArNDcsMTIgQEAKK0BAIC00OCw2ICs0OCwxMiBAQAogICNpbmNsdWRlICJn ZGJjbWQuaCIKICAjaW5jbHVkZSAiYmxvY2suaCIKICAjaW5jbHVkZSAiYWRkcm1hcC5oIgpAQCAt NDQwMyw3ICs1NjE1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAKICAjaW5j bHVkZSA8ZmNudGwuaD4KICAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotQEAgLTkzLDcgKzk4LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgcHVibmFtZXNfaGVhZGVyCitAQCAtOTMsNyArOTksNyBAQCB0eXBl ZGVmIHN0cnVjdCBwdWJuYW1lc19oZWFkZXIKICBfUFVCTkFNRVNfSEVBREVSOwogICNkZWZpbmUg X0FDVFVBTF9QVUJOQU1FU19IRUFERVJfU0laRSAxMwogIApAQCAtNDQxMiw3ICs1NjI0LDcgQEAg aW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICBCZWNhdXNlIG9mIGFsaWdubWVudCBj b25zdHJhaW50cywgdGhpcyBzdHJ1Y3R1cmUgaGFzIHBhZGRpbmcgYW5kIGNhbm5vdAogICAgIGJl IG1hcHBlZCBkaXJlY3RseSBvbnRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIC5kZWJ1Z19pbmZvIHNl Y3Rpb24uICAqLwogIHR5cGVkZWYgc3RydWN0IGFyYW5nZXNfaGVhZGVyCi1AQCAtMTUwLDcgKzE1 NSwxMCBAQCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbworQEAgLTE1MCw3ICsxNTYsMTAgQEAg c3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8KICAgIGFzZWN0aW9uICphc2VjdGlvbjsKICAgIGdk Yl9ieXRlICpidWZmZXI7CiAgICBiZmRfc2l6ZV90eXBlIHNpemU7CkBAIC00NDI0LDcgKzU2MzYs NyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIH07CiAgCiAgc3RydWN0IGR3YXJm Ml9wZXJfb2JqZmlsZQotQEAgLTMzNiw2ICszNDQsMTkgQEAgc3RydWN0IGR3YXJmMl9jdQorQEAg LTMzNiw2ICszNDUsMTkgQEAgc3RydWN0IGR3YXJmMl9jdQogIAogICAgLyogRmllbGQgYHJhbmdl c19vZmZzZXQnIGlzIGZpbGxlZCBpbjsgZmxhZyBhcyB0aGUgdmFsdWUgbWF5IGJlIHplcm8uICAq LwogICAgdW5zaWduZWQgaW50IGhhc19yYW5nZXNfb2Zmc2V0IDogMTsKQEAgLTQ0NDQsMTggKzU2 NTYsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIH07CiAgCiAgLyogUGVyc2lz dGVudCBkYXRhIGhlbGQgZm9yIGEgY29tcGlsYXRpb24gdW5pdCwgZXZlbiB3aGVuIG5vdAotQEAg LTQ3NCw4ICs0OTUsOCBAQCBzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbwotICAgICAvKiBEV0FSRi0y IHRhZyBmb3IgdGhpcyBESUUuICAqLwotICAgICBFTlVNX0JJVEZJRUxEKGR3YXJmX3RhZykgdGFn IDogMTY7Ci0gCi0tICAgIC8qIExhbmd1YWdlIGNvZGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRElF LiAgVGhpcyBpcyBvbmx5IHVzZWQKLS0gICAgICAgZm9yIHRoZSBjb21waWxhdGlvbiB1bml0IERJ RS4gICovCi0rICAgLyogTGFuZ3VhZ2UgY29kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBESUUuICBU aGlzIGlzIG9ubHkgdXNlZAotKyAgICAgIGZvciB0aGUgY29tcGlsYXRpb24gdW5pdCBESUUuICAq LwotICAgICB1bnNpZ25lZCBpbnQgbGFuZ3VhZ2UgOiA4OwotIAotICAgICAvKiBBc3NvcnRlZCBm bGFncyBkZXNjcmliaW5nIHRoZSBkYXRhIGZvdW5kIGluIHRoaXMgRElFLiAgKi8KLUBAIC00OTUs OCArNTE2LDcgQEAgc3RydWN0IHBhcnRpYWxfZGllX2luZm8KK0BAIC00OTUsOCArNTE3LDcgQEAg c3RydWN0IHBhcnRpYWxfZGllX2luZm8KICAgICAgdW5zaWduZWQgaW50IGhhc19ieXRlX3NpemUg OiAxOwogIAogICAgICAvKiBUaGUgbmFtZSBvZiB0aGlzIERJRS4gIE5vcm1hbGx5IHRoZSB2YWx1 ZSBvZiBEV19BVF9uYW1lLCBidXQKQEAgLTQ0NjUsNyArNTY2Niw3IEBAIGluZGV4IDQ0NWJhYjgu LjQyMDM5ZWEgMTAwNjQ0CiAgICAgIGNoYXIgKm5hbWU7CiAgICAgIGNoYXIgKmRpcm5hbWU7CiAg Ci1AQCAtNjkxLDYgKzcxMSwxMSBAQCBzdHJ1Y3QgZmllbGRfaW5mbworQEAgLTY5MSw2ICs3MTIs MTEgQEAgc3RydWN0IGZpZWxkX2luZm8KICAgICAgaW50IG5mbmZpZWxkczsKICAgIH07CiAgCkBA IC00NDc3LDcgKzU2NzgsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIC8qIE9u ZSBpdGVtIG9uIHRoZSBxdWV1ZSBvZiBjb21waWxhdGlvbiB1bml0cyB0byByZWFkIGluIGZ1bGwg c3ltYm9scwogICAgIGZvci4gICovCiAgc3RydWN0IGR3YXJmMl9xdWV1ZV9pdGVtCi1AQCAtODAy LDcgKzgyNywxMCBAQCBzdGF0aWMgdm9pZCBzY2FuX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IHBh cnRpYWxfZGllX2luZm8gKiwKK0BAIC04MDIsNyArODI4LDEwIEBAIHN0YXRpYyB2b2lkIHNjYW5f cGFydGlhbF9zeW1ib2xzIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqLAogIHN0YXRpYyB2b2lk IGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKiwKICAJCQkJc3Ry dWN0IGR3YXJmMl9jdSAqKTsKICAKQEAgLTQ0ODksNyArNTY5MCw3IEBAIGluZGV4IDQ0NWJhYjgu LjQyMDM5ZWEgMTAwNjQ0CiAgCiAgc3RhdGljIHZvaWQgYWRkX3BhcnRpYWxfbmFtZXNwYWNlIChz dHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJCQkgICBDT1JFX0FERFIgKmxvd3BjLCBD T1JFX0FERFIgKmhpZ2hwYywKLUBAIC04MjcsNiArODU1LDEwIEBAIHN0YXRpYyB2b2lkIGR3YXJm Ml9wc3ltdGFiX3RvX3N5bXRhYiAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOworQEAgLTgyNyw2 ICs4NTYsMTAgQEAgc3RhdGljIHZvaWQgZHdhcmYyX3BzeW10YWJfdG9fc3ltdGFiIChzdHJ1Y3Qg cGFydGlhbF9zeW10YWIgKik7CiAgCiAgc3RhdGljIHZvaWQgcHN5bXRhYl90b19zeW10YWJfMSAo c3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwogIApAQCAtNDUwMCw3ICs1NzAxLDcgQEAgaW5kZXgg NDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICBzdGF0aWMgdm9pZCBkd2FyZjJfcmVhZF9hYmJyZXZz IChiZmQgKmFiZmQsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKICAKICBzdGF0aWMgdm9pZCBkd2Fy ZjJfZnJlZV9hYmJyZXZfdGFibGUgKHZvaWQgKik7Ci1AQCAtOTQ3LDggKzk3OSwxMyBAQCBzdGF0 aWMgc3RydWN0IHR5cGUgKnRhZ190eXBlX3RvX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1 Y3QgZHdhcmYyX2N1ICopOworQEAgLTk0Nyw4ICs5ODAsMTMgQEAgc3RhdGljIHN0cnVjdCB0eXBl ICp0YWdfdHlwZV90b190eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAq KTsKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKnJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5m byAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIApAQCAtNDUxNCw3ICs1NzE1LDcgQEAgaW5kZXgg NDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICBzdGF0aWMgY2hhciAqdHlwZW5hbWVfY29uY2F0IChz dHJ1Y3Qgb2JzdGFjayAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKnByZWZpeCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq c3VmZml4LAotQEAgLTk2Niw3ICsxMDAzLDggQEAgc3RhdGljIGludCBkd2FyZjJfcmFuZ2VzX3Jl YWQgKHVuc2lnbmVkLCBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCitAQCAtOTY2LDcgKzEwMDQs OCBAQCBzdGF0aWMgaW50IGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQsIENPUkVfQUREUiAq LCBDT1JFX0FERFIgKiwKICAJCQkgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqLCBzdHJ1Y3QgcGFy dGlhbF9zeW10YWIgKik7CiAgCiAgc3RhdGljIGludCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3Ry dWN0IGRpZV9pbmZvICosCkBAIC00NTI0LDcgKzU3MjUsNyBAQCBpbmRleCA0NDViYWI4Li40MjAz OWVhIDEwMDY0NAogIAogIHN0YXRpYyB2b2lkIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBk aWVfaW5mbyAqLAogIAkJCQkgQ09SRV9BRERSICosIENPUkVfQUREUiAqLAotQEAgLTk5MCwxNyAr MTAyOCwyNSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfYXR0YWNoX2ZuX2ZpZWxkc190b190eXBlIChz dHJ1Y3QgZmllbGRfaW5mbyAqLAorQEAgLTk5MCwxNyArMTAyOSwyNSBAQCBzdGF0aWMgdm9pZCBk d2FyZjJfYXR0YWNoX2ZuX2ZpZWxkc190b190eXBlIChzdHJ1Y3QgZmllbGRfaW5mbyAqLAogIAog IHN0YXRpYyB2b2lkIHByb2Nlc3Nfc3RydWN0dXJlX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKiwg c3RydWN0IGR3YXJmMl9jdSAqKTsKICAKQEAgLTQ1NTMsNyArNTc1NCw3IEBAIGluZGV4IDQ0NWJh YjguLjQyMDM5ZWEgMTAwNjQ0CiAgc3RhdGljIGNvbnN0IGNoYXIgKm5hbWVzcGFjZV9uYW1lIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJCQkJICAgaW50ICppc19hbm9ueW1vdXMsIHN0cnVjdCBk d2FyZjJfY3UgKik7CiAgCi1AQCAtMTAzNiw2ICsxMDgyLDkgQEAgc3RhdGljIHZvaWQgcHJvY2Vz c19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOworQEAgLTEwMzYs NiArMTA4Myw5IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKiwg c3RydWN0IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgY2hhciAqZHdhcmYyX2xpbmthZ2VfbmFt ZSAoc3RydWN0IGRpZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCkBAIC00NTYzLDEz ICs1NzY0LDEyIEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgc3RhdGljIGNoYXIg KmR3YXJmMl9jYW5vbmljYWxpemVfbmFtZSAoY2hhciAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICosCiAg CQkJCSAgICAgICBzdHJ1Y3Qgb2JzdGFjayAqKTsKICAKLUBAIC0xMDc4LDcgKzExMjcsOCBAQCBz dGF0aWMgaW50IGlzX3JlZl9hdHRyIChzdHJ1Y3QgYXR0cmlidXRlICopOworQEAgLTEwNzgsNyAr MTEyOCw3IEBAIHN0YXRpYyBpbnQgaXNfcmVmX2F0dHIgKHN0cnVjdCBhdHRyaWJ1dGUgKik7CiAg CiAgc3RhdGljIHVuc2lnbmVkIGludCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3Qg YXR0cmlidXRlICopOwogIAogLXN0YXRpYyBpbnQgZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3Zh bHVlIChzdHJ1Y3QgYXR0cmlidXRlICosIGludCk7Ci0rc3RhdGljIENPUkVfQUREUiBkd2FyZjJf Z2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKiwgQ09SRV9BRERSLAot KwkJCQkJICAgc3RydWN0IGR3YXJmMl9jdSAqKTsKKytzdGF0aWMgQ09SRV9BRERSIGR3YXJmMl9n ZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoc3RydWN0IGF0dHJpYnV0ZSAqLCBDT1JFX0FERFIpOwog IAogIHN0YXRpYyBzdHJ1Y3QgZGllX2luZm8gKmZvbGxvd19kaWVfcmVmX29yX3NpZyAoc3RydWN0 IGRpZV9pbmZvICosCiAgCQkJCQkgICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqLApAQCAtNDkxMSwy MCArNjExMSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgfQogIAogIC8qIEZp bGwgaW4gU0VDVFAsIEJVRlAgYW5kIFNJWkVQIHdpdGggc2VjdGlvbiBpbmZvLCBnaXZlbiBPQkpG SUxFIGFuZAotQEAgLTE2NjYsMTEgKzE5MDksNyBAQCBkd2FyZjJfY3JlYXRlX2luY2x1ZGVfcHN5 bXRhYiAoY2hhciAqbmFtZSwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3QsCi0gCi0gLyogUmVh ZCB0aGUgTGluZSBOdW1iZXIgUHJvZ3JhbSBkYXRhIGFuZCBleHRyYWN0IHRoZSBsaXN0IG9mIGZp bGVzCi0gICAgaW5jbHVkZWQgYnkgdGhlIHNvdXJjZSBmaWxlIHJlcHJlc2VudGVkIGJ5IFBTVC4g IEJ1aWxkIGFuIGluY2x1ZGUKLS0gICBwYXJ0aWFsIHN5bXRhYiBmb3IgZWFjaCBvZiB0aGVzZSBp bmNsdWRlZCBmaWxlcy4KLS0gICAKLS0gICBUaGlzIHByb2NlZHVyZSBhc3N1bWVzIHRoYXQgdGhl cmUgKmlzKiBhIExpbmUgTnVtYmVyIFByb2dyYW0gaW4KLS0gICB0aGUgZ2l2ZW4gQ1UuICBDYWxs ZXJzIHNob3VsZCBjaGVjayB0aGF0IFBESS0+SEFTX1NUTVRfTElTVCBpcyBzZXQKLS0gICBiZWZv cmUgY2FsbGluZyB0aGlzIHByb2NlZHVyZS4gICovCi0rICAgcGFydGlhbCBzeW10YWIgZm9yIGVh Y2ggb2YgdGhlc2UgaW5jbHVkZWQgZmlsZXMuICAqLwotIAotIHN0YXRpYyB2b2lkCi0gZHdhcmYy X2J1aWxkX2luY2x1ZGVfcHN5bXRhYnMgKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAotQEAgLTE4MTIs NiArMjA1MSwzNyBAQCBsb29rdXBfc2lnbmF0dXJlZF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwgVUxPTkdFU1Qgc2lnKQorQEAgLTE4MTIsNiArMjA1NSwzNyBAQCBsb29rdXBfc2lnbmF0 dXJlZF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgVUxPTkdFU1Qgc2lnKQogICAgcmV0 dXJuIGVudHJ5OwogIH0KICAKQEAgLTQ5NjIsMjcgKzYxNDksNyBAQCBpbmRleCA0NDViYWI4Li40 MjAzOWVhIDEwMDY0NAogIC8qIFN1YnJvdXRpbmUgb2YgcHJvY2Vzc190eXBlX2NvbXBfdW5pdCBh bmQgZHdhcmYyX2J1aWxkX3BzeW10YWJzX2hhcmQKICAgICB0byBjb21iaW5lIHRoZSBjb21tb24g cGFydHMuCiAgICAgUHJvY2VzcyBhIGNvbXBpbGF0aW9uIHVuaXQgZm9yIGEgcHN5bXRhYi4KLUBA IC0xODc4LDcgKzIxNDgsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0IChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSwKLSAgICAgfQotIAotICAgLyogU2V0IHRoZSBsYW5ndWFnZSB3ZSdyZSBk ZWJ1Z2dpbmcuICAqLwotLSAgc2V0X2N1X2xhbmd1YWdlIChjb21wX3VuaXRfZGllLmxhbmd1YWdl LCAmY3UpOwotKyAgIHNldF9jdV9sYW5ndWFnZSAoY29tcF91bml0X2RpZS5sYW5ndWFnZSwgJmN1 KTsKLSAKLSAgIC8qIEFsbG9jYXRlIGEgbmV3IHBhcnRpYWwgc3ltYm9sIHRhYmxlIHN0cnVjdHVy ZS4gICovCi0gICBwc3QgPSBzdGFydF9wc3ltdGFiX2NvbW1vbiAob2JqZmlsZSwgb2JqZmlsZS0+ c2VjdGlvbl9vZmZzZXRzLAotQEAgLTE5MjksOCArMjE5OSw4IEBAIHByb2Nlc3NfcHN5bXRhYl9j b21wX3VuaXQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAotICAgICB9Ci0gICBlbHNlIGlmIChj b21wX3VuaXRfZGllLmhhc19wY19pbmZvCi0gCSAgICYmIGNvbXBfdW5pdF9kaWUubG93cGMgPCBj b21wX3VuaXRfZGllLmhpZ2hwYykKLS0gICAgLyogU3RvcmUgdGhlIGNvbnRpZ3VvdXMgcmFuZ2Ug aWYgaXQgaXMgbm90IGVtcHR5OyBpdCBjYW4gYmUgZW1wdHkgZm9yCi0tICAgICAgIENVcyB3aXRo IG5vIGNvZGUuICAqLwotKyAgICAvKiBTdG9yZSB0aGUgY29udGlndW91cyByYW5nZTsgYERXX0FU X3JhbmdlcycgcmFuZ2UgaXMgc3RvcmVkIGFib3ZlLiAgVGhlCi0rICAgICAgIHJhbmdlIGNhbiBi ZSBhbHNvIGVtcHR5IGZvciBDVXMgd2l0aCBubyBjb2RlLiAgKi8KLSAgICAgYWRkcm1hcF9zZXRf ZW1wdHkgKG9iamZpbGUtPnBzeW10YWJzX2FkZHJtYXAsCi0gCQkgICAgICAgY29tcF91bml0X2Rp ZS5sb3dwYyArIGJhc2VhZGRyLAotIAkJICAgICAgIGNvbXBfdW5pdF9kaWUuaGlnaHBjICsgYmFz ZWFkZHIgLSAxLCBwc3QpOwotQEAgLTIzNjEsNyArMjYzMSw3IEBAIHBhcnRpYWxfZGllX3BhcmVu dF9zY29wZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKK0BAIC0yMzYxLDcgKzI2MzUs NyBAQCBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpw ZGksCiAgCSBpZ25vcmluZyB0aGVtLiAgKi8KICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2Nv bXBsYWludHMsCiAgCQkgXygidW5oYW5kbGVkIGNvbnRhaW5pbmcgRElFIHRhZyAlZCBmb3IgRElF IGF0ICVkIiksCkBAIC00OTkxLDcgKzYxNTgsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEw MDY0NAogICAgICAgIHBhcmVudC0+c2NvcGUgPSBncmFuZHBhcmVudF9zY29wZTsKICAgICAgfQog IAotQEAgLTIzNzYsMTIgKzI2NDYsMjIgQEAgcGFydGlhbF9kaWVfZnVsbF9uYW1lIChzdHJ1Y3Qg cGFydGlhbF9kaWVfaW5mbyAqcGRpLAorQEAgLTIzNzYsMTIgKzI2NTAsMjIgQEAgcGFydGlhbF9k aWVfZnVsbF9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJICAgICAgIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKICAgIGNoYXIgKnBhcmVudF9zY29wZTsKQEAgLTUwMTgs NyArNjE4NSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgfQogIAogIHN0YXRp YyB2b2lkCi1AQCAtMjM5NywxMiArMjY3Nyw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0 IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjM5Nywx MiArMjY4MSw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8g KnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChv YmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAg LTUwMzQsNyArNjIwMSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCiAgICBp ZiAoYWN0dWFsX25hbWUgPT0gTlVMTCkKICAgICAgYWN0dWFsX25hbWUgPSBwZGktPm5hbWU7Ci1A QCAtMjQ5Myw2ICsyNzcwLDEyIEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjQ5Myw2ICsyNzc0LDEy IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkJICAgJm9iamZpbGUtPmdsb2JhbF9wc3ltYm9scywKICAJ CQkgICAwLCAoQ09SRV9BRERSKSAwLCBjdS0+bGFuZ3VhZ2UsIG9iamZpbGUpOwogICAgICAgIGJy ZWFrOwpAQCAtNTA0Nyw3ICs2MjE0LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQK ICAgICAgY2FzZSBEV19UQUdfY2xhc3NfdHlwZToKICAgICAgY2FzZSBEV19UQUdfaW50ZXJmYWNl X3R5cGU6CiAgICAgIGNhc2UgRFdfVEFHX3N0cnVjdHVyZV90eXBlOgotQEAgLTI1MzQsMjIgKzI4 MTcsNiBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGks IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTI1MzQsMjIgKzI4MjEsNiBAQCBhZGRfcGFydGlh bF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBAIC01MDcwLDcgKzYyMzcsNyBAQCBpbmRl eCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgaWYgKGJ1aWx0X2FjdHVhbF9uYW1lKQogICAg ICB4ZnJlZSAoYWN0dWFsX25hbWUpOwogIH0KLUBAIC0yNTU5LDkgKzI4MjYsOSBAQCBhZGRfcGFy dGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTI1NTksOSArMjgzMCw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0 IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgbmFtZSBs aXN0ZWQgaW4gdGhlIGRpZS4gICovCiAgCiAgc3RhdGljIGludApAQCAtNTA4Miw3ICs2MjQ5LDcg QEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICAgewogICAgICBjYXNlIERXX1RB R19uYW1lc3BhY2U6CiAgICAgIGNhc2UgRFdfVEFHX3R5cGVkZWY6Ci1AQCAtMjU3MSw3ICsyODM4 LDIzIEBAIHBkaV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZykKK0BAIC0yNTcx LDcgKzI4NDIsMjMgQEAgcGRpX25lZWRzX25hbWVzcGFjZSAoZW51bSBkd2FyZl90YWcgdGFnKQog ICAgICBjYXNlIERXX1RBR191bmlvbl90eXBlOgogICAgICBjYXNlIERXX1RBR19lbnVtZXJhdGlv bl90eXBlOgogICAgICBjYXNlIERXX1RBR19lbnVtZXJhdG9yOgpAQCAtNTEwNiw3ICs2MjczLDcg QEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICAgZGVmYXVsdDoKICAgICAgICBy ZXR1cm4gMDsKICAgICAgfQotQEAgLTI2MDQsMTIgKzI4ODcsMTIgQEAgc3RhdGljIHZvaWQKK0BA IC0yNjA0LDEyICsyODkxLDEyIEBAIHN0YXRpYyB2b2lkCiAgYWRkX3BhcnRpYWxfbW9kdWxlIChz dHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBDT1JFX0FERFIgKmxvd3BjLAogIAkJICAgIENP UkVfQUREUiAqaGlnaHBjLCBpbnQgbmVlZF9wYywgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewpA QCAtNTEyMyw3ICs2MjkwLDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICB9CiAg CiAgLyogUmVhZCBhIHBhcnRpYWwgZGllIGNvcnJlc3BvbmRpbmcgdG8gYSBzdWJwcm9ncmFtIGFu ZCBjcmVhdGUgYSBwYXJ0aWFsCi1AQCAtMjcwMCwyNyArMjk4Myw2IEBAIGd1ZXNzX3N0cnVjdHVy ZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwKK0BAIC0yNzAwLDI3 ICsyOTg3LDYgQEAgZ3Vlc3Nfc3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpzdHJ1Y3RfcGRpLAogIAogICAgICAgIGlmIChyZWFsX3BkaS0+ZGllX3BhcmVudCAhPSBOVUxM KQogIAlyZXR1cm47CkBAIC01MTUxLDU1ICs2MzE4LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzll YSAxMDA2NDQKICAgICAgfQogIH0KICAKLUBAIC0zMTcwLDcgKzM0MzIsNiBAQCBwcm9jZXNzX2Z1 bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCi0gICBDT1JF X0FERFIgbG93cGMsIGhpZ2hwYzsKLSAgIHN0cnVjdCBzeW10YWIgKnN5bXRhYjsKLSAgIHN0cnVj dCBjbGVhbnVwICpiYWNrX3RvOwotLSAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKLSAgIENPUkVf QUREUiBiYXNlYWRkcjsKLSAKLSAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rp b25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwotQEAgLTMxODAsMzAgKzM0NDEs NyBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpw ZXJfY3UpCi0gCi0gICBjdS0+bGlzdF9pbl9zY29wZSA9ICZmaWxlX3N5bWJvbHM7Ci0gCi0tICAv KiBGaW5kIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIGNvbXBpbGF0aW9uIHVuaXQgZm9yIHJhbmdl IGxpc3RzIGFuZAotLSAgICAgbG9jYXRpb24gbGlzdHMuICBJdCB3aWxsIG5vcm1hbGx5IGJlIHNw ZWNpZmllZCBieSBEV19BVF9sb3dfcGMuCi0tICAgICBJbiBEV0FSRi0zIGRyYWZ0IDQsIHRoZSBi YXNlIGFkZHJlc3MgY291bGQgYmUgb3ZlcnJpZGRlbiBieQotLSAgICAgRFdfQVRfZW50cnlfcGMu ICBJdCdzIGJlZW4gcmVtb3ZlZCwgYnV0IEdDQyBzdGlsbCB1c2VzIHRoaXMgZm9yCi0tICAgICBj b21waWxhdGlvbiB1bml0cyB3aXRoIGRpc2NvbnRpbnVvdXMgcmFuZ2VzLiAgKi8KLS0KLS0gIGN1 LT5iYXNlX2tub3duID0gMDsKLS0gIGN1LT5iYXNlX2FkZHJlc3MgPSAwOwotLQotLSAgYXR0ciA9 IGR3YXJmMl9hdHRyIChjdS0+ZGllcywgRFdfQVRfZW50cnlfcGMsIGN1KTsKLS0gIGlmIChhdHRy KQotLSAgICB7Ci0tICAgICAgY3UtPmJhc2VfYWRkcmVzcyA9IERXX0FERFIgKGF0dHIpOwotLSAg ICAgIGN1LT5iYXNlX2tub3duID0gMTsKLS0gICAgfQotLSAgZWxzZQotLSAgICB7Ci0tICAgICAg YXR0ciA9IGR3YXJmMl9hdHRyIChjdS0+ZGllcywgRFdfQVRfbG93X3BjLCBjdSk7Ci0tICAgICAg aWYgKGF0dHIpCi0tCXsKLS0JICBjdS0+YmFzZV9hZGRyZXNzID0gRFdfQUREUiAoYXR0cik7Ci0t CSAgY3UtPmJhc2Vfa25vd24gPSAxOwotLQl9Ci0tICAgIH0KLSsgIGR3YXJmMl9maW5kX2Jhc2Vf YWRkcmVzcyAoY3UtPmRpZXMsIGN1KTsKLSAKLSAgIC8qIERvIGxpbmUgbnVtYmVyIGRlY29kaW5n IGluIHJlYWRfZmlsZV9zY29wZSAoKSAqLwotICAgcHJvY2Vzc19kaWUgKGN1LT5kaWVzLCBjdSk7 Ci1AQCAtMzIzNCw2ICszNDcyLDcgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3 YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQotIHN0YXRpYyB2b2lkCi0gcHJvY2Vzc19kaWUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSB7Ci0rCi0gICBzd2l0 Y2ggKGRpZS0+dGFnKQotICAgICB7Ci0gICAgIGNhc2UgRFdfVEFHX3BhZGRpbmc6Ci1AQCAtMzI5 Nyw2ICszNTM2LDE0IEBAIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtMzI5Nyw2ICszNTYzLDE0IEBAIHByb2Nlc3NfZGllIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIGNhc2UgRFdfVEFH X2ltcG9ydGVkX2RlY2xhcmF0aW9uOgogICAgICBjYXNlIERXX1RBR19pbXBvcnRlZF9tb2R1bGU6 CiAgICAgICAgcHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8gPSAxOwpAQCAtNTIxNCw3ICs2 MzMzLDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICAgICBpZiAoZGllLT5j aGlsZCAhPSBOVUxMICYmIChkaWUtPnRhZyA9PSBEV19UQUdfaW1wb3J0ZWRfZGVjbGFyYXRpb24K ICAJCQkJIHx8IGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9mb3J0cmFuKSkKICAJY29tcGxhaW50 ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJUYWcgJyVzJyBoYXMgdW5leHBlY3RlZCBjaGlsZHJl biIpLAotQEAgLTMzMTIsNDIgKzM1NTksNjkgQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zMzEyLDQxICszNTg2LDY4IEBAIHBy b2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg LyogUmV0dXJuIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiBESUUsIGJhc2VkIG9uIGl0cyBE V19BVF9uYW1lLgogICAgIElmIHNjb3BlIHF1YWxpZmllcnMgYXJlIGFwcHJvcHJpYXRlIHRoZXkg d2lsbCBiZSBhZGRlZC4gIFRoZSByZXN1bHQKICAgICB3aWxsIGJlIGFsbG9jYXRlZCBvbiB0aGUg b2JqZmlsZV9vYnN0YWNrLCBvciBOVUxMIGlmIHRoZSBESUUgZG9lcwpAQCAtNTI4OSw3ICs2NDA4 LDYgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIHJldHVybiBuYW1lOwogIH0K ICAKLS0vKiBSZWFkIHRoZSBpbXBvcnQgc3RhdGVtZW50IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4g ZGllIGFuZCByZWNvcmQgaXQuICAqLwogKy8qIHJlYWQgdGhlIGdpdmVuIGRpZSdzIGRlY2xfbGlu ZSBudW1iZXIuIFJldHVybiAtMSBpZiBpbiBjYXNlIG9mIGFuIGVycm9yICovCiArc3RhdGljIGNv bnN0IGludCBkd2FyZjJfcmVhZF9kZWNsX2xpbmUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSl7CiArICBzdHJ1Y3QgYXR0cmlidXRlICpsaW5lX2F0dHI7CkBAIC01 MzAyLDExICs2NDIwLDEwIEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiArICByZXR1 cm4gLTE7CiArfQogKwotKy8qIFJlYWQgdGhlIGltcG9ydCBzdGF0ZW1lbnQgc3BlY2lmaWVkIGJ5 IHRoZSBnaXZlbiBkaWUgYW5kIHJlY29yZCBpdC4gICovIAorIC8qIFJlYWQgdGhlIGltcG9ydCBz dGF0ZW1lbnQgc3BlY2lmaWVkIGJ5IHRoZSBnaXZlbiBkaWUgYW5kIHJlY29yZCBpdC4gICovCiAg CiAgc3RhdGljIHZvaWQKLSByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLUBAIC0zMzU2LDkgKzM2MzAsMTUgQEAgcmVhZF9p bXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCitAQCAtMzM1Niw5ICszNjU3LDE1IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGRpZV9pbmZv ICppbXBvcnRlZF9kaWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lOwogICAgY29uc3Qg Y2hhciAqaW1wb3J0ZWRfbmFtZV9wcmVmaXg7CkBAIC01MzI0LDcgKzY0NDEsNyBAQCBpbmRleCA0 NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgaW1wb3J0X2F0dHIgPSBkd2FyZjJfYXR0ciAoZGll LCBEV19BVF9pbXBvcnQsIGN1KTsKICAgIGlmIChpbXBvcnRfYXR0ciA9PSBOVUxMKQogICAgICB7 Ci1AQCAtMzQwNiwyOSArMzY4Niw0NSBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNDA2LDE3ICszNzEzLDI3 IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogICAgICAgIHJldHVybjsKICAgICAgfQogIApAQCAtNTM0MywxMiArNjQ2 MCw4IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiArICAvKiBGaWd1cmUgb3V0IHdo ZXJlIHRoZSBzdGF0ZW1lbnQgaXMgYmVpbmcgaW1wb3J0ZWQgdG8gKi8KICAgIGltcG9ydF9wcmVm aXggPSBkZXRlcm1pbmVfcHJlZml4IChkaWUsIGN1KTsKICAKLS0gIC8qIEZpZ3VyZSBvdXQgd2hh dCB0aGUgc2NvcGUgb2YgdGhlIGltcG9ydGVkIGRpZSBpcyBhbmQgcHJlcGVuZCBpdAotLSAgICAg dG8gdGhlIG5hbWUgb2YgdGhlIGltcG9ydGVkIGRpZS4gICovCi0rICAvKgotKyAgIEZpZ3VyZSBv dXQgd2hhdCB0aGUgc2NvcGUgb2YgdGhlIGltcG9ydGVkIGRpZSBpcyBhbmQgcHJlcGVuZCBpdAot KyAgIHRvIHRoZSBuYW1lIG9mIHRoZSBpbXBvcnRlZCBkaWUKLSsgICAqLworICAgLyogRmlndXJl IG91dCB3aGF0IHRoZSBzY29wZSBvZiB0aGUgaW1wb3J0ZWQgZGllIGlzIGFuZCBwcmVwZW5kIGl0 CisgICAgICB0byB0aGUgbmFtZSBvZiB0aGUgaW1wb3J0ZWQgZGllLiAgKi8KICAgIGltcG9ydGVk X25hbWVfcHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZpeCAoaW1wb3J0ZWRfZGllLCBjdSk7CiAtCiAt ICBpZiAoc3RybGVuIChpbXBvcnRlZF9uYW1lX3ByZWZpeCkgPiAwKQpAQCAtNTM2MiwxMSArNjQ3 NSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgICAgICAgY2Fub25pY2FsX25h bWUgPSBhbGxvY2EgKHN0cmxlbiAoaW1wb3J0ZWRfbmFtZV9wcmVmaXgpICsgMiArIHN0cmxlbiAo aW1wb3J0ZWRfbmFtZSkgKyAxKTsKICAgICAgICBzdHJjcHkgKGNhbm9uaWNhbF9uYW1lLCBpbXBv cnRlZF9uYW1lX3ByZWZpeCk7CiAgICAgICAgc3RyY2F0IChjYW5vbmljYWxfbmFtZSwgIjo6Iik7 Ci0gICAgICAgc3RyY2F0IChjYW5vbmljYWxfbmFtZSwgaW1wb3J0ZWRfbmFtZSk7Ci0tICAgIH0K LS0gIGVsc2UKLS0gICAgewotKyAgICB9ZWxzZXsKK0BAIC0zNDI3LDggKzM3NDQsMTQgQEAgcmVh ZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICAgICAgY2Fub25pY2FsX25hbWUgPSBhbGxvY2EgKHN0cmxlbiAoaW1wb3J0ZWRf bmFtZSkgKyAxKTsKICAgICAgICBzdHJjcHkgKGNhbm9uaWNhbF9uYW1lLCBpbXBvcnRlZF9uYW1l KTsKICAgICAgfQpAQCAtNTM4MywxNiArNjQ5Miw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEg MTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMzY3Niw3ICszOTcyLDcgQEAgdW5zaWdu ZWRfaW50X2NvbXBhciAoY29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQgKmJwKQotIAotICAgcmV0 dXJuIChhID4gYikgLSAoYiA+IGEpOwotIH0KLS0KLSsgIAotIC8qIERXX0FUX2Fic3RyYWN0X29y aWdpbiBpbmhlcml0cyB3aG9sZSBESUVzIChub3QganVzdCB0aGVpciBhdHRyaWJ1dGVzKS4KLSAg ICBJbmhlcml0IG9ubHkgdGhlIGNoaWxkcmVuIG9mIHRoZSBEV19BVF9hYnN0cmFjdF9vcmlnaW4g RElFIG5vdCBiZWluZyBhbHJlYWR5Ci0gICAgcmVmZXJlbmNlZCBieSBEV19BVF9hYnN0cmFjdF9v cmlnaW4gZnJvbSB0aGUgY2hpbGRyZW4gb2YgdGhlIGN1cnJlbnQgRElFLiAgKi8KLUBAIC0zNjk3 LDYgKzM5OTMsMTQgQEAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzY5Nyw2ICs0MDIwLDE0IEBAIGluaGVyaXRf YWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAo ZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKQEAgLTU0MDcsNyArNjUwNyw3IEBAIGlu ZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgICBpZiAoIWF0dHIpCiAgICAgIHJldHVybjsK ICAKLUBAIC0zNzk1LDYgKzQwOTksNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNzk1LDYgKzQxMjYsNyBAQCByZWFk X2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAgIGNoYXIgKm5hbWU7CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAgICBzdHJ1Y3QgYmxvY2sg KmJsb2NrOwpAQCAtNTQxNSw3ICs2NTE1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2 NDQKICAgIGludCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdfVEFHX2lubGluZWRfc3Vi cm91dGluZSk7CiAgCiAgICBpZiAoaW5saW5lZF9mdW5jKQotQEAgLTM4MTMsMTMgKzQxMTgsMjMg QEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtMzgxMywxMyArNDE0NSwyMyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJhc2VhZGRyID0gQU5P RkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkp OwogIApAQCAtNTQ0Miw3ICs2NTQyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQK ICAgIGxvd3BjICs9IGJhc2VhZGRyOwogICAgaGlnaHBjICs9IGJhc2VhZGRyOwogIAotQEAgLTM4 NDYsMTQgKzQxNjEsMTkgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzg0NiwxNCArNDE4OCwxOSBAQCByZWFkX2Z1bmNf c2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAg IGN1LT5saXN0X2luX3Njb3BlID0gJmxvY2FsX3N5bWJvbHM7CiAgCkBAIC01NDY5LDcgKzY1Njks NyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgICB9CiAgCiAgICBpbmhlcml0 X2Fic3RyYWN0X2RpZXMgKGRpZSwgY3UpOwotQEAgLTM4NjksNiArNDE4OSwxMyBAQCByZWFkX2Z1 bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC0zODY5LDYgKzQyMTYsMTMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkJZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSks CiAgCQkJcHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8pOwogIApAQCAtNTQ4Myw3ICs2NTgz LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIC8qIElmIHdlIGhhdmUgYWRk cmVzcyByYW5nZXMsIHJlY29yZCB0aGVtLiAgKi8KICAgIGR3YXJmMl9yZWNvcmRfYmxvY2tfcmFu Z2VzIChkaWUsIGJsb2NrLCBiYXNlYWRkciwgY3UpOwogICAgCi1AQCAtMzkwNSw3ICs0MjMyLDcg QEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtMzkwNSw3ICs0MjU5LDcgQEAgcmVhZF9sZXhpY2FsX2Jsb2Nr X3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAg ICBhcyBtdWx0aXBsZSBsZXhpY2FsIGJsb2Nrcz8gIEhhbmRsaW5nIGNoaWxkcmVuIGluIGEgc2Fu ZSB3YXkgd291bGQKICAgICAgIGJlIG5hc3R5LiAgTWlnaHQgYmUgZWFzaWVyIHRvIHByb3Blcmx5 IGV4dGVuZCBnZW5lcmljIGJsb2NrcyB0byAKICAgICAgIGRlc2NyaWJlIHJhbmdlcy4gICovCkBA IC01NDkyLDcgKzY1OTIsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgICBy ZXR1cm47CiAgICBsb3dwYyArPSBiYXNlYWRkcjsKICAgIGhpZ2hwYyArPSBiYXNlYWRkcjsKLUBA IC0zOTIyLDcgKzQyNDksNyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zOTIyLDcgKzQyNzYsNyBAQCBy ZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKICAgICAgfQogICAgbmV3ID0gcG9wX2NvbnRleHQgKCk7CiAgCkBAIC01NTAx LDcgKzY2MDEsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgICB7CiAgICAg ICAgc3RydWN0IGJsb2NrICpibG9jawogICAgICAgICAgPSBmaW5pc2hfYmxvY2sgKDAsICZsb2Nh bF9zeW1ib2xzLCBuZXctPm9sZF9ibG9ja3MsIG5ldy0+c3RhcnRfYWRkciwKLUBAIC00MDc3LDcg KzQ0MDQsOCBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9mZnNldCwgQ09SRV9BRERS ICpsb3dfcmV0dXJuLAorQEAgLTQwNzcsNyArNDQzMSw4IEBAIGR3YXJmMl9yYW5nZXNfcmVhZCAo dW5zaWduZWQgb2Zmc2V0LCBDT1JFX0FERFIgKmxvd19yZXR1cm4sCiAgICAgZGlzY29udGludW91 cywgaS5lLiBkZXJpdmVkIGZyb20gRFdfQVRfcmFuZ2VzIGluZm9ybWF0aW9uLiAgKi8KICBzdGF0 aWMgaW50CiAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JF X0FERFIgKmxvd3BjLApAQCAtNTUxMSw3ICs2NjExLDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzll YSAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogICAgQ09SRV9BRERSIGxv dyA9IDA7Ci1AQCAtNDEwNSw3ICs0NDMzLDcgQEAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3BjLAorQEAgLTQxMDUsNyArNDQ2MCw3IEBA IGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICps b3dwYywKICAJewogIAkgIC8qIFZhbHVlIG9mIHRoZSBEV19BVF9yYW5nZXMgYXR0cmlidXRlIGlz IHRoZSBvZmZzZXQgaW4gdGhlCiAgCSAgICAgLmRlYnVnX3JhbmdlcyBzZWN0aW9uLiAgKi8KQEAg LTU1MjAsNyArNjYyMCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCSAgICBy ZXR1cm4gMDsKICAJICAvKiBGb3VuZCBkaXNjb250aW51b3VzIHJhbmdlIG9mIGFkZHJlc3Nlcy4g ICovCiAgCSAgcmV0ID0gLTE7Ci1AQCAtNDE0NCw3ICs0NDcyLDcgQEAgZHdhcmYyX2dldF9zdWJw cm9ncmFtX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNDE0NCw3ICs0NDk5 LDcgQEAgZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpk aWUsCiAgICBDT1JFX0FERFIgbG93LCBoaWdoOwogICAgc3RydWN0IGRpZV9pbmZvICpjaGlsZCA9 IGRpZS0+Y2hpbGQ7CiAgCkBAIC01NTI5LDcgKzY2MjksNyBAQCBpbmRleCA0NDViYWI4Li40MjAz OWVhIDEwMDY0NAogICAgICB7CiAgICAgICAgKmxvd3BjID0gbWluICgqbG93cGMsIGxvdyk7CiAg ICAgICAgKmhpZ2hwYyA9IG1heCAoKmhpZ2hwYywgaGlnaCk7Ci1AQCAtNDE4MSw3ICs0NTA5LDcg QEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNDE4MSw3 ICs0NTM2LDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAg ICBDT1JFX0FERFIgYmVzdF9oaWdoID0gKENPUkVfQUREUikgMDsKICAgIENPUkVfQUREUiBjdXJy ZW50X2xvdywgY3VycmVudF9oaWdoOwogIApAQCAtNTUzOCw2NiArNjYzOCw3IEBAIGluZGV4IDQ0 NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgICAgIHsKICAgICAgICBiZXN0X2xvdyA9IGN1cnJlbnRf bG93OwogICAgICAgIGJlc3RfaGlnaCA9IGN1cnJlbnRfaGlnaDsKLUBAIC00Mzg0LDIxICs0NzEy LDggQEAgZHdhcmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRp ZV9pbmZvICpkaWUsCi0gICAgICAgLyogR2V0IGJpdCBvZmZzZXQgb2YgZmllbGQuICAqLwotICAg ICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiwg Y3UpOwotICAgICAgIGlmIChhdHRyKQotLQl7Ci0tICAgICAgICAgIGludCBieXRlX29mZnNldDsK LS0KLS0gICAgICAgICAgaWYgKGF0dHJfZm9ybV9pc19zZWN0aW9uX29mZnNldCAoYXR0cikpCi0t ICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25fZXhw cl9jb21wbGFpbnQgKCk7Ci0tICAgICAgICAgICAgICBieXRlX29mZnNldCA9IDA7Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgICBlbHNlIGlmIChhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIp KQotLSAgICAgICAgICAgIGJ5dGVfb2Zmc2V0ID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3Zh bHVlIChhdHRyLCAwKTsKLS0gICAgICAgICAgZWxzZQotLSAgICAgICAgICAgIGJ5dGVfb2Zmc2V0 ID0gZGVjb2RlX2xvY2Rlc2MgKERXX0JMT0NLIChhdHRyKSwgY3UpOwotLQotLSAgICAgICAgICBT RVRfRklFTERfQklUUE9TICgqZnAsIGJ5dGVfb2Zmc2V0ICogYml0c19wZXJfYnl0ZSk7Ci0tCX0K LSsJU0VUX0ZJRUxEX0JJVFBPUyAoKmZwLCBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUg KGF0dHIsIDAsIGN1KQotKwkJCSAgICAgICAqIGJpdHNfcGVyX2J5dGUpOwotICAgICAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9iaXRfb2Zmc2V0LCBjdSk7Ci0gICAgICAgaWYgKGF0 dHIpCi0gCXsKLUBAIC00NDc2LDcgKzQ3OTEsMTEgQEAgZHdhcmYyX2FkZF9maWVsZCAoc3RydWN0 IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCi0gICAgICAgaWYgKGZpZWxk bmFtZSA9PSBOVUxMKQotIAlyZXR1cm47Ci0gCi0tICAgICAgLyogR2V0IHBoeXNpY2FsIG5hbWUu ICAqLwotKyAgICAgIC8qIEdldCBwaHlzaWNhbCBuYW1lLiAgV2UgcHJlZmVyIHRoZSBsaW5rYWdl IG5hbWUgaWYgb25lIHdhcyBzcGVjaWZpZWQsCi0rCSBiZWNhdXNlIHRoaXMgbGV0cyBHREIgZmlu ZCBhIG5vbi1kZWJ1Z2dpbmcgdmVyc2lvbiBvZiB0aGUgc3ltYm9sLgotKwkgT3RoZXJ3aXNlIGNv bnN0cnVjdCB0aGUgZnVsbCBuYW1lIGZyb20gdHlwZSBpbmZvcm1hdGlvbi4gIElkZWFsbHksCi0r CSB3aGVuIEdEQiBzdXBwb3J0cyBjYW5vbmljYWxpemF0aW9uIG9mIEMrKyBzeW1ib2wgbmFtZXMs IHdlIHdpbGwgbm90Ci0rCSBuZWVkIHRoZSBsaW5rYWdlIG5hbWUgZm9yIGFueXRoaW5nLiAgKi8K LSAgICAgICBwaHlzbmFtZSA9IGR3YXJmMl9saW5rYWdlX25hbWUgKGRpZSwgY3UpOwotIAotICAg ICAgIC8qIFRoZSBuYW1lIGlzIGFscmVhZHkgYWxsb2NhdGVkIGFsb25nIHdpdGggdGhpcyBvYmpm aWxlLCBzbyB3ZSBkb24ndAotQEAgLTQ0OTAsNyArNDgwOSw3IEBAIGR3YXJmMl9hZGRfZmllbGQg KHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAotICAgICAgIC8q IEMrKyBiYXNlIGNsYXNzIGZpZWxkLiAgKi8KLSAgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRp ZSwgRFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24sIGN1KTsKLSAgICAgICBpZiAoYXR0cikKLS0J U0VUX0ZJRUxEX0JJVFBPUyAoKmZwLCBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBj dSkKLSsJU0VUX0ZJRUxEX0JJVFBPUyAoKmZwLCBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFs dWUgKGF0dHIsIDAsIGN1KQotIAkJCSAgICAgICAqIGJpdHNfcGVyX2J5dGUpOwotICAgICAgIEZJ RUxEX0JJVFNJWkUgKCpmcCkgPSAwOwotICAgICAgIEZJRUxEX1RZUEUgKCpmcCkgPSBkaWVfdHlw ZSAoZGllLCBjdSk7Ci1AQCAtNDYwNyw3ICs0OTI2LDExIEBAIGR3YXJmMl9hZGRfbWVtYmVyX2Zu IChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKLSAgIGlmIChm aWVsZG5hbWUgPT0gTlVMTCkKLSAgICAgcmV0dXJuOwotIAotLSAgLyogR2V0IHRoZSBtYW5nbGVk IG5hbWUuICAqLwotKyAgLyogR2V0IHBoeXNpY2FsIG5hbWUuICBXZSBwcmVmZXIgdGhlIGxpbmth Z2UgbmFtZSBpZiBvbmUgd2FzIHNwZWNpZmllZCwKLSsgICAgIGJlY2F1c2UgdGhpcyBsZXRzIEdE QiBmaW5kIGEgbm9uLWRlYnVnZ2luZyB2ZXJzaW9uIG9mIHRoZSBzeW1ib2wuCi0rICAgICBPdGhl cndpc2UgY29uc3RydWN0IHRoZSBmdWxsIG5hbWUgZnJvbSB0eXBlIGluZm9ybWF0aW9uLiAgSWRl YWxseSwKLSsgICAgIHdoZW4gR0RCIHN1cHBvcnRzIGNhbm9uaWNhbGl6YXRpb24gb2YgQysrIHN5 bWJvbCBuYW1lcywgd2Ugd2lsbCBub3QKLSsgICAgIG5lZWQgdGhlIGxpbmthZ2UgbmFtZSBmb3Ig YW55dGhpbmcuICAqLwotICAgcGh5c25hbWUgPSBkd2FyZjJfbGlua2FnZV9uYW1lIChkaWUsIGN1 KTsKLSAKLSAgIC8qIExvb2sgdXAgbWVtYmVyIGZ1bmN0aW9uIG5hbWUgaW4gZmllbGRsaXN0LiAg Ki8KLUBAIC00NjUyLDcgKzQ5NzUsNyBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZp ZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNDY2Myw3ICs1MDE4LDcg QEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBk aWVfaW5mbyAqZGllLAogICAgLyogVGhlIG5hbWUgaXMgYWxyZWFkeSBhbGxvY2F0ZWQgYWxvbmcg d2l0aCB0aGlzIG9iamZpbGUsIHNvIHdlIGRvbid0CiAgICAgICBuZWVkIHRvIGR1cGxpY2F0ZSBp dCBmb3IgdGhlIHR5cGUuICAqLwogICAgZm5wLT5waHlzbmFtZSA9IHBoeXNuYW1lID8gcGh5c25h bWUgOiAiIjsKQEAgLTU2MDYsMzEgKzY2NDcsMzMgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAx MDA2NDQKICAgIHRoaXNfdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwogICAgaWYgKHRo aXNfdHlwZSAmJiBUWVBFX0NPREUgKHRoaXNfdHlwZSkgPT0gVFlQRV9DT0RFX0ZVTkMpCiAgICAg IHsKLUBAIC00NzA5LDIyICs1MDMyLDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBm aWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAotICAgLyogR2V0IGluZGV4IGlu IHZpcnR1YWwgZnVuY3Rpb24gdGFibGUgaWYgaXQgaXMgYSB2aXJ0dWFsIG1lbWJlciBmdW5jdGlv bi4gICovCi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfdnRhYmxlX2VsZW1fbG9j YXRpb24sIGN1KTsKLSAgIGlmIChhdHRyKQotLSAgICB7Ci0tICAgICAgLyogU3VwcG9ydCB0aGUg LmRlYnVnX2xvYyBvZmZzZXRzICovCi0tICAgICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0 cikpCitAQCAtNDcyMywxOCArNTA3OCwxOCBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0 IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCisgICAgIHsKKyAgICAgICAv KiBTdXBwb3J0IHRoZSAuZGVidWdfbG9jIG9mZnNldHMgKi8KKyAgICAgICBpZiAoYXR0cl9mb3Jt X2lzX2Jsb2NrIChhdHRyKSkKIC0gICAgICAgIHsKIC0gICAgICAgICAgZm5wLT52b2Zmc2V0ID0g ZGVjb2RlX2xvY2Rlc2MgKERXX0JMT0NLIChhdHRyKSwgY3UpICsgMjsKIC0gICAgICAgIH0KLS0g ICAgICBlbHNlIGlmIChhdHRyX2Zvcm1faXNfc2VjdGlvbl9vZmZzZXQgKGF0dHIpKQorKwl7Cisr CSAgZm5wLT52b2Zmc2V0ID0gZGVjb2RlX2xvY2Rlc2MgKERXX0JMT0NLIChhdHRyKSwgY3UpICsg MjsKKysJfQorICAgICAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19zZWN0aW9uX29mZnNldCAoYXR0 cikpCiAtICAgICAgICB7Ci0tCSAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25fZXhwcl9jb21wbGFp bnQgKCk7CisrCXsKKyAJICBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAo KTsKIC0gICAgICAgIH0KLS0gICAgICBlbHNlCisrCX0KKyAgICAgICBlbHNlCiAtICAgICAgICB7 Ci0tCSAgZHdhcmYyX2ludmFsaWRfYXR0cmliX2NsYXNzX2NvbXBsYWludCAoIkRXX0FUX3Z0YWJs ZV9lbGVtX2xvY2F0aW9uIiwKLS0JCQkJCQkgZmllbGRuYW1lKTsKKysJeworIAkgIGR3YXJmMl9p bnZhbGlkX2F0dHJpYl9jbGFzc19jb21wbGFpbnQgKCJEV19BVF92dGFibGVfZWxlbV9sb2NhdGlv biIsCisgCQkJCQkJIGZpZWxkbmFtZSk7CiAtICAgICAgICB9Ci0tICAgfQotKyAgICBmbnAtPnZv ZmZzZXQgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIC0yLCBjdSkgKyAy OworKwl9CisgICAgfQogIH0KICAKLSAvKiBDcmVhdGUgdGhlIHZlY3RvciBvZiBtZW1iZXIgZnVu Y3Rpb24gZmllbGRzLCBhbmQgYXR0YWNoIGl0IHRvIHRoZSB0eXBlLiAgKi8KLUBAIC00ODM2LDcg KzUxNDQsNyBAQCBxdWlya19nY2NfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC00ODQ3LDcgKzUyMDIsNyBAQCBx dWlya19nY2NfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgcmV0dXJuIE5VTEw7CiAgCiAgICBkb21haW5fdHlw ZSA9IFRZUEVfVEFSR0VUX1RZUEUgKFRZUEVfRklFTERfVFlQRSAocGZuX3R5cGUsIDApKTsKQEAg LTU2MzksNyArNjY4Miw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgICBzbWFz aF90b19tZXRob2RfdHlwZSAodHlwZSwgZG9tYWluX3R5cGUsIFRZUEVfVEFSR0VUX1RZUEUgKHBm bl90eXBlKSwKICAJCQlUWVBFX0ZJRUxEUyAocGZuX3R5cGUpLCBUWVBFX05GSUVMRFMgKHBmbl90 eXBlKSwKICAJCQlUWVBFX1ZBUkFSR1MgKHBmbl90eXBlKSk7Ci1AQCAtNDg4OSw3ICs1MTk3LDcg QEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTQ5MDAsNyArNTI1NSw3IEBAIHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICByZXR1cm4g c2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKICAgICAgfQogIApAQCAtNTY0OCw3ICs2Njkx LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIElOSVRfQ1BMVVNfU1BFQ0lG SUMgKHR5cGUpOwogIAogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKLUBAIC00ODk4 LDE0ICs1MjA2LDE4IEBAIHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC00OTA5LDE0ICs1MjY0LDE4IEBAIHJlYWRfc3Ry dWN0dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAgICAgICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzCiAgCSAgfHwgY3UtPmxh bmd1YWdlID09IGxhbmd1YWdlX2phdmEpCiAgCXsKQEAgLTU2NzAsNyArNjcxMyw3IEBAIGluZGV4 IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCX0KICAgICAgfQogIAotQEAgLTUxMTUsNyArNTQy Nyw3IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTUxMjYsNyArNTQ4NSw3IEBAIHJlYWRfZW51bWVyYXRpb25f dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAg IHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogICAgICB9CiAgCkBAIC01Njc5 LDcgKzY3MjIsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIAogICAgVFlQRV9D T0RFICh0eXBlKSA9IFRZUEVfQ09ERV9FTlVNOwogICAgbmFtZSA9IGR3YXJmMl9mdWxsX25hbWUg KGRpZSwgY3UpOwotQEAgLTUxNDMsNTEgKzU0NTUsNiBAQCByZWFkX2VudW1lcmF0aW9uX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01MTU0LDUx ICs1NTEzLDYgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHR5cGUs IGN1KTsKICB9CiAgCkBAIC01NzMxLDcgKzY3NzQsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVh IDEwMDY0NAogIC8qIEdpdmVuIGEgcG9pbnRlciB0byBhIGRpZSB3aGljaCBiZWdpbnMgYW4gZW51 bWVyYXRpb24sIHByb2Nlc3MgYWxsCiAgICAgdGhlIGRpZXMgdGhhdCBkZWZpbmUgdGhlIG1lbWJl cnMgb2YgdGhlIGVudW1lcmF0aW9uLCBhbmQgY3JlYXRlIHRoZQogICAgIHN5bWJvbCBmb3IgdGhl IGVudW1lcmF0aW9uIHR5cGUuCi1AQCAtNTI2NSw2ICs1NTMyLDI5IEBAIHByb2Nlc3NfZW51bWVy YXRpb25fc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC01Mjc2LDYgKzU1OTAsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29wZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgbmV3X3N5bWJvbCAoZGll LCB0aGlzX3R5cGUsIGN1KTsKICB9CiAgCkBAIC01NzYxLDcgKzY4MDQsNyBAQCBpbmRleCA0NDVi YWI4Li40MjAzOWVhIDEwMDY0NAogIC8qIEV4dHJhY3QgYWxsIGluZm9ybWF0aW9uIGZyb20gYSBE V19UQUdfYXJyYXlfdHlwZSBESUUgYW5kIHB1dCBpdCBpbgogICAgIHRoZSBESUUncyB0eXBlIGZp ZWxkLiAgRm9yIG5vdywgdGhpcyBvbmx5IGhhbmRsZXMgb25lIGRpbWVuc2lvbmFsCiAgICAgYXJy YXlzLiAgKi8KLUBAIC01Mjc4LDcgKzU1NjgsNyBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01Mjg5LDcgKzU2MjYsNyBA QCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhf dHlwZTsKICAgIHN0cnVjdCB0eXBlICoqcmFuZ2VfdHlwZXMgPSBOVUxMOwogICAgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cjsKQEAgLTU3NzAsNyArNjgxMyw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5 ZWEgMTAwNjQ0CiAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKICAgIGNoYXIgKm5hbWU7CiAg Ci1AQCAtNTMyNSwxNiArNTYxNSwxMSBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01MzM2LDE2ICs1NjczLDExIEBAIHJl YWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogICAgdHlwZSA9IGVsZW1lbnRfdHlwZTsKICAKICAgIGlmIChyZWFkX2FycmF5X29yZGVyIChk aWUsIGN1KSA9PSBEV19PUkRfY29sX21ham9yKQpAQCAtNTc5Miw3ICs2ODM1LDcgQEAgaW5kZXgg NDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAKICAgIC8qIFVuZGVyc3RhbmQgRHdhcmYyIHN1cHBv cnQgZm9yIHZlY3RvciB0eXBlcyAobGlrZSB0aGV5IG9jY3VyIG9uCiAgICAgICB0aGUgUG93ZXJQ QyB3LyBBbHRpVmVjKS4gIEdjYyBqdXN0IGFkZHMgYW5vdGhlciBhdHRyaWJ1dGUgdG8gdGhlCi1A QCAtNTQwMSw0OSArNTY4Niw4MyBAQCByZWFkX3NldF90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTQxMiwxMiArNTc0NCwxNCBAQCByZWFkX3Nl dF90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBy ZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHNldF90eXBlLCBjdSk7CiAgfQogIApAQCAtNTgwOSwy NiArNjg1MiwzMCBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cjsKICAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKICAgIENPUkVfQUREUiBiYXNl ID0gKENPUkVfQUREUikgMDsKLSAKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9s b2NhdGlvbiwgY3UpOwotICAgaWYgKGF0dHIpCi0tICAgIHsKLS0gICAgICAvKiBTdXBwb3J0IHRo ZSAuZGVidWdfbG9jIG9mZnNldHMgKi8KLS0gICAgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChh dHRyKSkKK0BAIC01NDI3LDI1ICs1NzYxLDU1IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICAgIHsKKyAgICAgICAvKiBT dXBwb3J0IHRoZSAuZGVidWdfbG9jIG9mZnNldHMgKi8KKyAgICAgICBpZiAoYXR0cl9mb3JtX2lz X2Jsb2NrIChhdHRyKSkKIC0gICAgICAgIHsKIC0gICAgICAgICAgYmFzZSA9IGRlY29kZV9sb2Nk ZXNjIChEV19CTE9DSyAoYXR0ciksIGN1KTsKIC0gICAgICAgIH0KLS0gICAgICBlbHNlIGlmIChh dHRyX2Zvcm1faXNfc2VjdGlvbl9vZmZzZXQgKGF0dHIpKQorKwl7CisrCSAgYmFzZSA9IGRlY29k ZV9sb2NkZXNjIChEV19CTE9DSyAoYXR0ciksIGN1KTsKKysJfQorICAgICAgIGVsc2UgaWYgKGF0 dHJfZm9ybV9pc19zZWN0aW9uX29mZnNldCAoYXR0cikpCiAtICAgICAgICB7Ci0tCSAgZHdhcmYy X2NvbXBsZXhfbG9jYXRpb25fZXhwcl9jb21wbGFpbnQgKCk7CisrCXsKKyAJICBkd2FyZjJfY29t cGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoKTsKIC0gICAgICAgIH0KLS0gICAgICBlbHNl CisrCX0KKyAgICAgICBlbHNlCiAtICAgICAgICB7Ci0tCSAgZHdhcmYyX2ludmFsaWRfYXR0cmli X2NsYXNzX2NvbXBsYWludCAoIkRXX0FUX2xvY2F0aW9uIiwKLS0JCQkJCQkgImNvbW1vbiBibG9j ayBtZW1iZXIiKTsKKysJeworIAkgIGR3YXJmMl9pbnZhbGlkX2F0dHJpYl9jbGFzc19jb21wbGFp bnQgKCJEV19BVF9sb2NhdGlvbiIsCisgCQkJCQkJICJjb21tb24gYmxvY2sgbWVtYmVyIik7CiAt ICAgICAgICB9Ci0tICAgIH0KLSsgICAgYmFzZSA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92 YWx1ZSAoYXR0ciwgMCwgY3UpOworKwl9CisgICAgIH0KICAgIGlmIChkaWUtPmNoaWxkICE9IE5V TEwpCiAgICAgIHsKICsgICAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGN1LT5vYmpmaWxl OwpAQCAtNTg0Myw5ICs2ODkwLDkgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICsg ICAgICAvKiBBcnRpZmljaWFsIHR5cGUgdG8gYmUgdXNlZCBvbmx5IGJ5IGBpbmZvIGNvbW1vbicu ICAqLwogKyAgICAgIFRZUEVfTkFNRSAodHlwZSkgPSAiPGNvbW1vbj4iOwogKwotKyAgICAgIGNo aWxkX2RpZSA9IGRpZS0+Y2hpbGQ7Ci0rICAgICAgd2hpbGUgKGNoaWxkX2RpZSAmJiBjaGlsZF9k aWUtPnRhZykKLSsJeworICAgICAgIGNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7CisgICAgICAgd2hp bGUgKGNoaWxkX2RpZSAmJiBjaGlsZF9kaWUtPnRhZykKKyAJewogKwkgIFRZUEVfTkZJRUxEUyAo dHlwZSkrKzsKICsJICBjaGlsZF9kaWUgPSBzaWJsaW5nX2RpZSAoY2hpbGRfZGllKTsKICsJfQpA QCAtNTg1Nyw5ICs2OTA0LDkgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICsJCQkJ ICAgICAqIFRZUEVfTkZJRUxEUyAodHlwZSkpOwogKyAgICAgIAogKyAgICAgIGZpZWxkID0gVFlQ RV9GSUVMRFMgKHR5cGUpOwotICAgICAgIGNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7Ci0gICAgICAg d2hpbGUgKGNoaWxkX2RpZSAmJiBjaGlsZF9kaWUtPnRhZykKLSAJeworKyAgICAgIGNoaWxkX2Rp ZSA9IGRpZS0+Y2hpbGQ7CisrICAgICAgd2hpbGUgKGNoaWxkX2RpZSAmJiBjaGlsZF9kaWUtPnRh ZykKKysJewogKwkgIC8qIENyZWF0ZSB0aGUgc3ltYm9sIGluIHRoZSBEV19UQUdfY29tbW9uX2Js b2NrIGJsb2NrIGluIHRoZSBjdXJyZW50CiArCSAgICAgc3ltYm9sIHNjb3BlLiAgKi8KICAJICBz eW0gPSBuZXdfc3ltYm9sIChjaGlsZF9kaWUsIE5VTEwsIGN1KTsKQEAgLTU4NjgsOSArNjkxNSw4 IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCSAgYXR0ciA9IGR3YXJmMl9hdHRy IChjaGlsZF9kaWUsIERXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uLCBjdSk7CiAgCSAgaWYgKGF0 dHIpCiAgCSAgICB7Ci0gCSAgICAgIFNZTUJPTF9WQUxVRV9BRERSRVNTIChzeW0pID0KLS0JCWJh c2UgKyBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBjdSk7Ci0rCQliYXNlICsgZHdh cmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLCBjdSk7CitAQCAtNTQ2Myw4ICs1 ODI3LDI1IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCisgCSAgICAgIFNZTUJPTF9WQUxVRV9BRERSRVNTIChzeW0pID0gYmFz ZSArIGJ5dGVfb2Zmc2V0OwogIAkgICAgICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgJmdsb2Jh bF9zeW1ib2xzKTsKICAJICAgIH0KICsKQEAgLTU4OTUsNyArNjk0MSw3IEBAIGluZGV4IDQ0NWJh YjguLjQyMDM5ZWEgMTAwNjQ0CiAgICAgIH0KICB9CiAgCi1AQCAtNTUxMSw3ICs1ODMwLDcgQEAg cmVhZF9uYW1lc3BhY2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC01NTMyLDcgKzU5MTMsNyBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGlmIChpc19hbm9ueW1vdXMpCiAg CXsKICAJICBjb25zdCBjaGFyICpwcmV2aW91c19wcmVmaXggPSBkZXRlcm1pbmVfcHJlZml4IChk aWUsIGN1KTsKQEAgLTU5MDQsNyArNjk1MCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAw NjQ0CiAgCX0KICAgICAgfQogIAotQEAgLTU1MjcsMjAgKzU4NDYsMTU1IEBAIHJlYWRfbmFtZXNw YWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTU0 OCwyMCArNTkyOSwxNTUgQEAgcmVhZF9uYW1lc3BhY2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgfQogIH0KICAKQEAgLTU5MjMsMTAgKzY5NjksOSBA QCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogKyAgaWYgKHR5cGUpCiArICAgIG5ld19z eW1ib2wgKGRpZSwgdHlwZSwgY3UpOwogK30KLSAKLS0gIC8qIEZJWE1FOiBTdXBwb3J0IHRoZSBz ZXBhcmF0ZSBGb3J0cmFuIG1vZHVsZSBuYW1lc3BhY2VzLiAgKi8KKysKICsvKiBSZWFkIGEgRm9y dHJhbiBtb2R1bGUgYXMgdHlwZS4KLSAKKysKICsgICBNb2R1bGVzIHByZXNlbnQgb25seSBhcyBk ZWNsYXJhdGlvbnMgLSBiZWluZyB1c2VkIG9ubHkgZm9yIERXX0FUX2ltcG9ydCBvZgogKyAgIERX X1RBR19pbXBvcnRlZF9tb2R1bGUgLSBhcmUgaWdub3JlZCBoZXJlLiAgVGhleSBhcmUgcmVhZCBp biBvbmx5IGluIGZvcm0gb2YKICsgICB0aGUgbW9kdWxlIG5hbWUgYnkgcmVhZF9mb3J0cmFuX2lt cG9ydGVkX21vZHVsZS4gICovCkBAIC01OTUzLDkgKzY5OTgsMTAgQEAgaW5kZXggNDQ1YmFiOC4u NDIwMzllYSAxMDA2NDQKICsgIHR5cGUgPSBpbml0X3R5cGUgKFRZUEVfQ09ERV9NT0RVTEUsIDAs IDAsIG1vZHVsZV9uYW1lLCBvYmpmaWxlKTsKICsKICsgIC8qIENyZWF0ZSBhIGNvbnRleHQgZm9y IHJlYWRpbmcgdGhlIG1vZHVsZSB2YXJpYWJsZXMuICAqLwotKworIAorLSAgLyogRklYTUU6IFN1 cHBvcnQgdGhlIHNlcGFyYXRlIEZvcnRyYW4gbW9kdWxlIG5hbWVzcGFjZXMuICAqLwogKyAgbmV3 ID0gcHVzaF9jb250ZXh0ICgwLCAwKTsKLSsKKyAKICsgIHNhdmVfZmlsZV9zeW1ib2xzID0gZmls ZV9zeW1ib2xzOwogKyAgZmlsZV9zeW1ib2xzID0gTlVMTDsKICsgIHNhdmVfZ2xvYmFsX3N5bWJv bHMgPSBnbG9iYWxfc3ltYm9sczsKQEAgLTYwNjMsNyArNzEwOSw3IEBAIGluZGV4IDQ0NWJhYjgu LjQyMDM5ZWEgMTAwNjQ0CiAgfQogIAogIC8qIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgbmFtZXNw YWNlIHJlcHJlc2VudGVkIGJ5IERJRS4gIFNldAotQEAgLTU3MDUsMjkgKzYxNTksMTE0IEBAIHJl YWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtNTcyNiwyOSArNjI0MiwxMTMgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlw ZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwogICAgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTYxNzgsOCArNzIyNCw3IEBAIGluZGV4IDQ0NWJhYjguLjQy MDM5ZWEgMTAwNjQ0CiArCSAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7CiArCX0KICsg ICAgICBlbHNlIGlmIChhdHRyICYmIGF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpCi0rCVRZ UEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFs dWUgKGF0dHIsIDAsCi0rCQkJCQkJCQkgICAgICAgY3UpOworKwlUWVBFX0hJR0hfQk9VTkQgKHJh bmdlX3R5cGUpID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKICAg ICAgICBlbHNlCiAtICAgICAgICB7CiAtICAgICAgICAgIGxlbmd0aCA9IDE7CkBAIC02MTkyLDcg KzcyMzcsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgY2hhcl90eXBlID0g bGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFyY2gpOwog ICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5nZV90eXBl KTsKICAKLUBAIC01ODIyLDcgKzYzNjEsNiBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKgorQEAgLTU4 NDMsNyArNjQ0Myw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAgcmVhZF90eXBlZGVmIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3RydWN0IG9i amZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKQEAgLTYyMDAsNyArNzI0NSw3IEBAIGluZGV4 IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTDsKICAg IHN0cnVjdCB0eXBlICp0aGlzX3R5cGU7CiAgCi1AQCAtNTkzMCw4ICs2NDY4LDcgQEAgcmVhZF9z dWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtNTk1MSw4ICs2NTUwLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgdHlwZSAqYmFzZV90eXBl OwogICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRy OwpAQCAtNjIxMCw3ICs3MjU1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAg IGNoYXIgKm5hbWU7CiAgICAKICAgIGJhc2VfdHlwZSA9IGRpZV90eXBlIChkaWUsIGN1KTsKLUBA IC01OTQ0LDQyICs2NDgxLDkxIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU5NjUsNDIgKzY1NjMsODkgQEAgcmVh ZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgCQkgICAgIDAsIE5VTEwsIGN1LT5vYmpmaWxlKTsKICAgICAgfQogIApAQCAtNjI0MCw3 ICs3Mjg1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICsgIGVsc2UKICsgICAg ewogKyAgICAgIGlmIChhdHRyICYmIGF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpCi0rCWxv dyA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCwgY3UpOworKwlsb3cg PSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDApOwogKyAgICAgIGVsc2UK ICsJewogKwkgIGlmIChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbikKQEAgLTYzMDAs OCArNzM0NSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiArICBlbHNlCiArICAg IHsKICsgICAgICBpZiAoYXR0ciAmJiBhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIpKQotKwlU WVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3Zh bHVlIChhdHRyLCAwLAotKwkJCQkJCQkJICAgICAgIGN1KTsKKysJVFlQRV9ISUdIX0JPVU5EIChy YW5nZV90eXBlKSA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCk7CiAg ICAgICAgZWxzZQogLSAgICAgICAgaGlnaCA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1 ZSAoYXR0ciwgMSk7CiArCXsKQEAgLTYzMjIsOCArNzM2Niw3IEBAIGluZGV4IDQ0NWJhYjguLjQy MDM5ZWEgMTAwNjQ0CiArICAgIH0KICsgIGVsc2UgaWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2Nv bnN0YW50IChhdHRyKSkKICsgICAgewotKyAgICAgIFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5 cGUpID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLAotKwkJCQkJCQkJ ICAgICAgY3UpOworKyAgICAgIFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpID0gZHdhcmYy X2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKICsgICAgICBpZiAoVFlQRV9CWVRF X1NUUklERSAocmFuZ2VfdHlwZSkgPT0gMCkKICsJY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFp bnRzLAogKwkJICAgXygiRm91bmQgRFdfQVRfYnl0ZV9zdHJpZGUgd2l0aCB1bnN1cHBvcnRlZCB2 YWx1ZSAwIikpOwpAQCAtNjMzMSw3ICs3Mzc0LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAx MDA2NDQKICAKICAgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CiAgICBpZiAobmFtZSkK LUBAIC02NDUwLDYgKzcwMzYsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJf Ynl0ZSAqYnVmZmVyLCBnZGJfYnl0ZSAqaW5mb19wdHIsCitAQCAtNjQ3MSw2ICs3MTE2LDcgQEAg bG9hZF9wYXJ0aWFsX2RpZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKmJ1ZmZlciwgZ2RiX2J5dGUg KmluZm9fcHRyLAogIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19sZXhpY2FsX2Jsb2NrCiAg CSAgJiYgYWJicmV2LT50YWcgIT0gRFdfVEFHX3ZhcmlhYmxlCiAgCSAgJiYgYWJicmV2LT50YWcg IT0gRFdfVEFHX25hbWVzcGFjZQpAQCAtNjMzOSw3ICs3MzgyLDcgQEAgaW5kZXggNDQ1YmFiOC4u NDIwMzllYSAxMDA2NDQKICAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQogIAl7 CiAgCSAgLyogT3RoZXJ3aXNlIHdlIHNraXAgdG8gdGhlIG5leHQgc2libGluZywgaWYgYW55LiAg Ki8KLUBAIC02NjcwLDkgKzcyNTcsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlh bF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjY5MSw5ICs3MzM3LDYgQEAgcmVhZF9wYXJ0aWFs X2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAogIAkgIGlmIChwYXJ0X2Rp ZS0+ZGlybmFtZSA9PSBOVUxMKQogIAkgICAgcGFydF9kaWUtPmRpcm5hbWUgPSBEV19TVFJJTkcg KCZhdHRyKTsKICAJICBicmVhazsKQEAgLTYzNDksMzYgKzczOTIsNyBAQCBpbmRleCA0NDViYWI4 Li40MjAzOWVhIDEwMDY0NAogIAljYXNlIERXX0FUX2xvd19wYzoKICAJICBoYXNfbG93X3BjX2F0 dHIgPSAxOwogIAkgIHBhcnRfZGllLT5sb3dwYyA9IERXX0FERFIgKCZhdHRyKTsKLUBAIC02NzQ0 LDEwICs3MzI4LDEwIEBAIHJlYWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpwYXJ0X2RpZSwKLSAJICBlbHNlCi0gCSAgICBwYXJ0X2RpZS0+c2libGluZyA9IGJ1ZmZlciAr IGR3YXJmMl9nZXRfcmVmX2RpZV9vZmZzZXQgKCZhdHRyKTsKLSAJICBicmVhazsKLS0gICAgICAg IGNhc2UgRFdfQVRfc3RtdF9saXN0OgotLSAgICAgICAgICBwYXJ0X2RpZS0+aGFzX3N0bXRfbGlz dCA9IDE7Ci0tICAgICAgICAgIHBhcnRfZGllLT5saW5lX29mZnNldCA9IERXX1VOU05EICgmYXR0 cik7Ci0tICAgICAgICAgIGJyZWFrOwotKwljYXNlIERXX0FUX3N0bXRfbGlzdDoKLSsJICBwYXJ0 X2RpZS0+aGFzX3N0bXRfbGlzdCA9IDE7Ci0rCSAgcGFydF9kaWUtPmxpbmVfb2Zmc2V0ID0gRFdf VU5TTkQgKCZhdHRyKTsKLSsJICBicmVhazsKLSAgICAgICAgIGNhc2UgRFdfQVRfYnl0ZV9zaXpl OgotICAgICAgICAgICBwYXJ0X2RpZS0+aGFzX2J5dGVfc2l6ZSA9IDE7Ci0gICAgICAgICAgIGJy ZWFrOwotQEAgLTY3ODksMTMgKzczNzMsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFy dGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCi0gCSAgfHwgZHdhcmYyX3Blcl9vYmpmaWxlLT5oYXNf c2VjdGlvbl9hdF96ZXJvKSkKLSAgICAgcGFydF9kaWUtPmhhc19wY19pbmZvID0gMTsKLSAKLS0g IGlmIChiYXNlX2FkZHJlc3NfdHlwZSAhPSBiYXNlX2FkZHJlc3Nfbm9uZSAmJiAhY3UtPmJhc2Vf a25vd24pCi0tICAgIHsKLS0gICAgICBnZGJfYXNzZXJ0IChwYXJ0X2RpZS0+dGFnID09IERXX1RB R19jb21waWxlX3VuaXQpOwotLSAgICAgIGN1LT5iYXNlX2tub3duID0gMTsKLS0gICAgICBjdS0+ YmFzZV9hZGRyZXNzID0gYmFzZV9hZGRyZXNzOwotLSAgICB9Ci0tCi0gICByZXR1cm4gaW5mb19w dHI7Ci0gfQotIAotQEAgLTY5MDQsNyArNzQ4MSw4IEBAIGZpeHVwX3BhcnRpYWxfZGllIChzdHJ1 Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjkyNSw3ICs3NTY4LDggQEAgZml4 dXBfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKICAgIC8q IElmIHdlIGZvdW5kIGEgcmVmZXJlbmNlIGF0dHJpYnV0ZSBhbmQgdGhlIERJRSBoYXMgbm8gbmFt ZSwgdHJ5CiAgICAgICB0byBmaW5kIGEgbmFtZSBpbiB0aGUgcmVmZXJyZWQgdG8gRElFLiAgKi8K ICAKQEAgLTYzODgsNyArNzQwMiw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAg ICAgIHsKICAgICAgICBzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3BlY19kaWU7CiAgCi1AQCAt ODI0NCwxMCArODgyMiwxMiBAQCB2YXJfZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3QgYXR0cmlidXRl ICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtODI2NSwxMCArODkwOSwxMiBAQCB2YXJf ZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpz eW0sCiAgICAgICAoaS5lLiB3aGVuIHRoZSB2YWx1ZSBvZiBhIHJlZ2lzdGVyIG9yIG1lbW9yeSBs b2NhdGlvbiBpcwogICAgICAgcmVmZXJlbmNlZCwgb3IgYSB0aHJlYWQtbG9jYWwgYmxvY2ssIGV0 Yy4pLiAgVGhlbiBhZ2FpbiwgaXQgbWlnaHQKICAgICAgIG5vdCBiZSB3b3J0aHdoaWxlLiAgSSdt IGFzc3VtaW5nIHRoYXQgaXQgaXNuJ3QgdW5sZXNzIHBlcmZvcm1hbmNlCkBAIC02NDAzLDcgKzc0 MTcsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIH0KICAKICAvKiBHaXZlbiBh IHBvaW50ZXIgdG8gYSBEV0FSRiBpbmZvcm1hdGlvbiBlbnRyeSwgZmlndXJlIG91dCBpZiB3ZSBu ZWVkCi1AQCAtODI2OSwyMSArODg0OSwzMCBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTgyOTAs MjEgKzg5MzYsMzAgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJhc2VhZGRyID0gQU5PRkZT RVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwog IApAQCAtNjQ0MSw3ICs3NDU1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAK ICAgICAgICAvKiBEZWZhdWx0IGFzc3VtcHRpb25zLgogICAgICAgICAgIFVzZSB0aGUgcGFzc2Vk IHR5cGUgb3IgZGVjb2RlIGl0IGZyb20gdGhlIGRpZS4gICovCi1AQCAtODM4MSw5ICs4OTcwLDI4 IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODQwMiw5ICs5MDU3LDI4IEBAIG5ld19zeW1ib2wg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgCSAgaWYgKGF0dHIpCiAgCSAgICB7CiAgCSAgICAgIHZhcl9kZWNvZGVfbG9jYXRp b24gKGF0dHIsIHN5bSwgY3UpOwpAQCAtNjQ3MSw3ICs3NDg1LDcgQEAgaW5kZXggNDQ1YmFiOC4u NDIwMzllYSAxMDA2NDQKICAJICAgICAgZWxzZQogIAkJYWRkX3N5bWJvbF90b19saXN0IChzeW0s IGN1LT5saXN0X2luX3Njb3BlKTsKICAJICAgIH0KLUBAIC04NTEzLDcgKzkxMjEsNyBAQCBuZXdf c3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQorQEAgLTg1MzQsNyArOTIwOCw3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg CSAgYWRkX3N5bWJvbF90b19saXN0IChzeW0sIGN1LT5saXN0X2luX3Njb3BlKTsKICAJICBicmVh azsKICAJY2FzZSBEV19UQUdfZW51bWVyYXRvcjoKQEAgLTY0ODAsNyArNzQ5NCw3IEBAIGluZGV4 IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2NvbnN0X3ZhbHVlLCBjdSk7CiAgCSAgaWYgKGF0dHIpCiAgCSAgICB7Ci1AQCAtODUzNyw2 ICs5MTQ1LDE2IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODU1OCw2ICs5MjMyLDE2IEBAIG5l d19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgCSAgU1lNQk9MX0NMQVNTIChzeW0pID0gTE9DX1RZUEVERUY7CiAg CSAgYWRkX3N5bWJvbF90b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CiAgCSAgYnJlYWs7 CkBAIC02NDk3LDcgKzc1MTEsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIAlk ZWZhdWx0OgogIAkgIC8qIE5vdCBhIHRhZyB3ZSByZWNvZ25pemUuICBIb3BlZnVsbHkgd2UgYXJl bid0IHByb2Nlc3NpbmcKICAJICAgICB0cmFzaCBkYXRhLCBidXQgc2luY2Ugd2UgbXVzdCBzcGVj aWZpY2FsbHkgaWdub3JlIHRoaW5ncwotQEAgLTg1NTAsOCArOTE2OCw3IEBAIG5ld19zeW1ib2wg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtODU3MSw4ICs5MjU1LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICAv KiBGb3IgdGhlIGJlbmVmaXQgb2Ygb2xkIHZlcnNpb25zIG9mIEdDQywgY2hlY2sgZm9yIGFub255 bW91cwogIAkgbmFtZXNwYWNlcyBiYXNlZCBvbiB0aGUgZGVtYW5nbGVkIG5hbWUuICAqLwogICAg ICAgIGlmICghcHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8KQEAgLTY1MDcsNyArNzUyMSw3 IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCWNwX3NjYW5fZm9yX2Fub255bW91 c19uYW1lc3BhY2VzIChzeW0pOwogICAgICB9CiAgICByZXR1cm4gKHN5bSk7Ci1AQCAtODgwMiwx MiArOTQxOSwxOCBAQCByZWFkX3R5cGVfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtODgyMywxMiArOTUwNiwxOCBAQCByZWFkX3R5cGVfZGllIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIGNhc2UgRFdf VEFHX25hbWVzcGFjZToKICAgICAgICB0aGlzX3R5cGUgPSByZWFkX25hbWVzcGFjZV90eXBlIChk aWUsIGN1KTsKICAgICAgICBicmVhazsKQEAgLTY1MjYsNyArNzU0MCw3IEBAIGluZGV4IDQ0NWJh YjguLjQyMDM5ZWEgMTAwNjQ0CiAgICByZXR1cm4gdGhpc190eXBlOwogIH0KICAKLUBAIC04ODg5 LDEwICs5NTEyLDk3IEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04OTEwLDEwICs5NTk5LDk3IEBAIGRldGVybWluZV9w cmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICAg ICBTbyBpdCBkb2VzIG5vdCBuZWVkIGEgcHJlZml4LiAgKi8KICAJICByZXR1cm4gIiI7CiAgICAg ICAgZGVmYXVsdDoKQEAgLTY2MjUsNyArNzYzOSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEg MTAwNjQ0CiAgLyogUmV0dXJuIGEgbmV3bHktYWxsb2NhdGVkIHN0cmluZyBmb3JtZWQgYnkgY29u Y2F0ZW5hdGluZyBQUkVGSVggYW5kCiAgICAgU1VGRklYIHdpdGggYXBwcm9wcmlhdGUgc2VwYXJh dG9yLiAgSWYgUFJFRklYIG9yIFNVRkZJWCBpcyBOVUxMIG9yIGVtcHR5LCB0aGVuCiAgICAgc2lt cGx5IGNvcHkgdGhlIFNVRkZJWCBvciBQUkVGSVgsIHJlc3BlY3RpdmVseS4gIElmIE9CUyBpcyBu b24tbnVsbCwKLUBAIC04OTQ4LDE0ICs5NjU4LDEwOCBAQCBzdGF0aWMgY2hhciAqCitAQCAtODk2 OSwxMSArOTc0NSwxMDUgQEAgc3RhdGljIGNoYXIgKgogIGR3YXJmMl9saW5rYWdlX25hbWUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3Qg YXR0cmlidXRlICphdHRyOwpAQCAtNjY2MSwxMSArNzY3NSw3IEBAIGluZGV4IDQ0NWJhYjguLjQy MDM5ZWEgMTAwNjQ0CiArCSAgJiYgZGllLT50YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0pCiArCXsK ICsJICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwotIAotLSAg YXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7Ci0t ICBpZiAoYXR0ciAmJiBEV19TVFJJTkcgKGF0dHIpKQotLSAgICByZXR1cm4gRFdfU1RSSU5HIChh dHRyKTsKLS0gIHJldHVybiBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CisrCiArCSAgY190eXBlX3By aW50X2FyZ3MgKHR5cGUsIGJ1ZiwgMCwgY3UtPmxhbmd1YWdlKTsKICsKICsJICBpZiAoY3UtPmxh bmd1YWdlID09IGxhbmd1YWdlX2phdmEpCkBAIC02NjgzLDcgKzc2OTMsMTEgQEAgaW5kZXggNDQ1 YmFiOC4uNDIwMzllYSAxMDA2NDQKICsJCWZwdXRzX3VuZmlsdGVyZWQgKCIgY29uc3QiLCBidWYp OwogKwkgICAgfQogKwl9Ci0rCisgCistICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRf TUlQU19saW5rYWdlX25hbWUsIGN1KTsKKy0gIGlmIChhdHRyICYmIERXX1NUUklORyAoYXR0cikp CistICAgIHJldHVybiBEV19TVFJJTkcgKGF0dHIpOworLSAgcmV0dXJuIGR3YXJmMl9uYW1lIChk aWUsIGN1KTsKICsgICAgICBuYW1lID0gdWlfZmlsZV9vYnNhdmVzdHJpbmcgKGJ1ZiwgJmN1LT5v YmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCiArCQkJCSAgICZsZW5ndGgpOwogKyAgICAgIHVpX2Zp bGVfZGVsZXRlIChidWYpOwpAQCAtNjY5OSw5ICs3NzEzLDggQEAgaW5kZXggNDQ1YmFiOC4uNDIw MzllYSAxMDA2NDQKICsgICAgfQogKwogKyAgcmV0dXJuIG5hbWU7Ci0gfQotIAotLS8qIEdldCBu YW1lIG9mIGEgZGllLCByZXR1cm4gTlVMTCBpZiBub3QgZm91bmQuICAqLworK30KKysKICsvKiBS ZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCAuc3ltdGFiIG5hbWUgZm9yIHN5bWJvbHMgY29udGFp bmVkIGluIEZvcnRyYW4KICsgICBtb2R1bGVzLiAgUmV0dXJuIERXQVJGMl9OQU1FIG90aGVyd2lz ZS4gICovCiArCkBAIC02NzMzLDEzICs3NzQ2LDEwIEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEg MTAwNjQ0CiArICAgIH0KICsKICsgIHJldHVybiBuYW1lOwotK30KLSsKLSsvKiBDYW5vbmljYWxp emUgdGhlIG5hbWUgb2YgdGhlIGdpdmVuIERJRS4gICovCisgfQogIAotIHN0YXRpYyBjaGFyICoK LSBkd2FyZjJfY2Fub25pY2FsaXplX25hbWUgKGNoYXIgKm5hbWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1LAotQEAgLTEwMTgxLDExICsxMDk4NSwxMiBAQCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0 IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorIC8qIEdldCBuYW1lIG9mIGEgZGllLCByZXR1cm4g TlVMTCBpZiBub3QgZm91bmQuICAqLworQEAgLTEwMjAyLDExICsxMTA3MiwxMSBAQCBkd2FyZjJf Z2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQogICAgcmV0dXJuIDA7 CiAgfQogIApAQCAtNjc1MCwyMSArNzc2MCwxMSBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEw MDY0NAogLXN0YXRpYyBpbnQKIC1kd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHIsIGludCBkZWZhdWx0X3ZhbHVlKQogK3N0YXRpYyBDT1JFX0FERFIK LStkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIs IENPUkVfQUREUiBkZWZhdWx0X3ZhbHVlLAotKwkJCQlzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKytk d2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIENP UkVfQUREUiBkZWZhdWx0X3ZhbHVlKQogIHsKICAgIGlmIChhdHRyLT5mb3JtID09IERXX0ZPUk1f c2RhdGEpCiAgICAgIHJldHVybiBEV19TTkQgKGF0dHIpOwotQEAgLTEwMTk1LDYgKzExMDAwLDgg QEAgZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChzdHJ1Y3QgYXR0cmlidXRlICphdHRy LCBpbnQgZGVmYXVsdF92YWx1ZSkKLSAgICAgICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9S TV9kYXRhNAotICAgICAgICAgICAgfHwgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2RhdGE4KQotICAg ICByZXR1cm4gRFdfVU5TTkQgKGF0dHIpOwotKyAgZWxzZSBpZiAoYXR0cl9mb3JtX2lzX2Jsb2Nr IChhdHRyKSkKLSsgICAgcmV0dXJuIGRlY29kZV9sb2NkZXNjIChEV19CTE9DSyAoYXR0ciksIGN1 KTsKLSAgIGVsc2UKLSAgICAgewotICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50 cywgXygiQXR0cmlidXRlIHZhbHVlIGlzIG5vdCBhIGNvbnN0YW50ICglcykiKSwKLUBAIC0xMDk5 MCw4ICsxMTc5Nyw2IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAq bGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTEwMTEsOCArMTE4ODEsNiBAQCBkd2FyZl9k ZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0 LAogIHsKICAgIGdkYl9ieXRlICptYWNfcHRyLCAqbWFjX2VuZDsKICAgIHN0cnVjdCBtYWNyb19z b3VyY2VfZmlsZSAqY3VycmVudF9maWxlID0gMDsKQEAgLTY3NzMsNyArNzc3Myw3IEBAIGluZGV4 IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCiAgICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5t YWNpbmZvLmJ1ZmZlciA9PSBOVUxMKQogICAgICB7Ci1AQCAtMTA5OTksMjkgKzExODA0LDE5IEBA IGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGlu dCBvZmZzZXQsCitAQCAtMTEwMjAsMjkgKzExODg4LDE5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3Mg KHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgcmV0 dXJuOwogICAgICB9CiAgCkBAIC02ODA4LDcgKzc4MDgsNyBAQCBpbmRleCA0NDViYWI4Li40MjAz OWVhIDEwMDY0NAogICAgICAgICAgfQogIAogICAgICAgIG1hY2luZm9fdHlwZSA9IHJlYWRfMV9i eXRlIChhYmZkLCBtYWNfcHRyKTsKLUBAIC0xMTAzMiw5MiArMTE4MjcsNyBAQCBkd2FyZl9kZWNv ZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAor QEAgLTExMDUzLDkyICsxMTkxMSw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgIC8qIEEgemVybyBt YWNpbmZvIHR5cGUgaW5kaWNhdGVzIHRoZSBlbmQgb2YgdGhlIG1hY3JvCiAgICAgICAgICAgICAg IGluZm9ybWF0aW9uLiAgKi8KICAgICAgICAgIGNhc2UgMDoKQEAgLTY5MDIsNyArNzkwMiw3IEBA IGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCiAgICAgICAgICBjYXNlIERXX01BQ0lO Rk9fZGVmaW5lOgogICAgICAgICAgY2FzZSBEV19NQUNJTkZPX3VuZGVmOgotQEAgLTExMTMyLDMx ICsxMTg0MiwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxo LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMTUzLDMxICsxMTkyNiwxOSBAQCBkd2FyZl9k ZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0 LAogICAgICAgICAgICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKICAKICAgICAgICAgICAgICBp ZiAoISBjdXJyZW50X2ZpbGUpCkBAIC02OTQ1LDcgKzc5NDUsNyBAQCBpbmRleCA0NDViYWI4Li40 MjAzOWVhIDEwMDY0NAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTEx MTcwLDIyICsxMTg2OCw5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRl ciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTExOTEsMjIgKzExOTUyLDkgQEAgZHdh cmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9m ZnNldCwKICAgICAgICAgICAgICBmaWxlID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1h Y19wdHIsICZieXRlc19yZWFkKTsKICAgICAgICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7 CiAgCkBAIC02OTcxLDcgKzc5NzEsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAog ICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTExMjM5LDcgKzExOTI0LDcg QEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQg aW50IG9mZnNldCwKK0BAIC0xMTI2MCw3ICsxMjAwOCw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3Mg KHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAg IH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CkBAIC02OTgwLDcgKzc5ODAsNyBAQCBp bmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIH0KICAKICAvKiBDaGVjayBpZiB0aGUgYXR0 cmlidXRlJ3MgZm9ybSBpcyBhIERXX0ZPUk1fYmxvY2sqCi1AQCAtMTEyOTksNiArMTE5ODQsMzQg QEAgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorQEAgLTEx MzIwLDYgKzEyMDY4LDM0IEBAIGF0dHJfZm9ybV9pc19jb25zdGFudCAoc3RydWN0IGF0dHJpYnV0 ZSAqYXR0cikKICAgICAgfQogIH0KICAKQEAgLTcwMTUsNyArODAxNSw3IEBAIGluZGV4IDQ0NWJh YjguLjQyMDM5ZWEgMTAwNjQ0CiAgc3RhdGljIHZvaWQKICBkd2FyZjJfc3ltYm9sX21hcmtfY29t cHV0ZWQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkg ICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotQEAgLTExMzI4LDM1ICsxMjA0MSwyNSBAQCBkd2Fy ZjJfc3ltYm9sX21hcmtfY29tcHV0ZWQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBz eW1ib2wgKnN5bSwKK0BAIC0xMTM0OSwzNSArMTIxMjUsMjUgQEAgZHdhcmYyX3N5bWJvbF9tYXJr X2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAg ICAgICAgU1lNQk9MX0NPTVBVVEVEX09QUyAoc3ltKSA9ICZkd2FyZjJfbG9jbGlzdF9mdW5jczsK ICAgICAgICBTWU1CT0xfTE9DQVRJT05fQkFUT04gKHN5bSkgPSBiYXRvbjsKICAgICAgfQpAQCAt NzA2Niw3ICs4MDY2LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICAgfQog IH0KICAKLUBAIC0xMTY0NCw2ICsxMjM0NywzMSBAQCBvZmZzZXRfYW5kX3R5cGVfZXEgKGNvbnN0 IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3JocykKK0BAIC0xMTY2NSw2ICsxMjQz MSwzMSBAQCBvZmZzZXRfYW5kX3R5cGVfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2 b2lkICppdGVtX3JocykKICAgIHJldHVybiBvZnNfbGhzLT5vZmZzZXQgPT0gb2ZzX3Jocy0+b2Zm c2V0OwogIH0KICAKQEAgLTcwOTgsNyArODA5OCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEg MTAwNjQ0CiAgLyogU2V0IHRoZSB0eXBlIGFzc29jaWF0ZWQgd2l0aCBESUUgdG8gVFlQRS4gIFNh dmUgaXQgaW4gQ1UncyBoYXNoCiAgICAgdGFibGUgaWYgbmVjZXNzYXJ5LiAgRm9yIGNvbnZlbmll bmNlLCByZXR1cm4gVFlQRS4gICovCiAgCi1AQCAtMTE2NTIsNiArMTIzODAsOCBAQCBzZXRfZGll X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtMTE2NzMsNiArMTI0NjQsOCBAQCBzZXRfZGllX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgewogICAgc3RydWN0IGR3YXJmMl9vZmZzZXRfYW5kX3R5cGUgKipzbG90LCBvZnM7CiAgCkBA IC03MTA3LDcgKzgxMDcsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgaWYg KGN1LT50eXBlX2hhc2ggPT0gTlVMTCkKICAgICAgewogICAgICAgIGdkYl9hc3NlcnQgKGN1LT5w ZXJfY3UgIT0gTlVMTCk7Ci1AQCAtMTE3OTQsMjMgKzEyNTI0LDEzIEBAIHNob3dfZHdhcmYyX2Nt ZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorQEAgLTExODE1LDIzICsxMjYwOCwxMyBAQCBz aG93X2R3YXJmMl9jbWQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGNtZF9zaG93X2xp c3QgKHNob3dfZHdhcmYyX2NtZGxpc3QsIGZyb21fdHR5LCAiIik7CiAgfQogIApAQCAtNzEzNSw3 ICs4MTM1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICB9CiAgCiAgLyogbXVu bWFwIGRlYnVnIHNlY3Rpb25zIGZvciBPQkpGSUxFLCBpZiBuZWNlc3NhcnkuICAqLwotQEAgLTEx ODE5LDE1ICsxMjUzOSwxNSBAQCBzdGF0aWMgdm9pZAorQEAgLTExODQwLDE1ICsxMjYyMywxNSBA QCBzdGF0aWMgdm9pZAogIGR3YXJmMl9wZXJfb2JqZmlsZV9jbGVhbnVwIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgdm9pZCAqZCkKICB7CiAgICBzdHJ1Y3QgZHdhcmYyX3Blcl9vYmpmaWxlICpk YXRhID0gZDsKQEAgLTcxNjAsNyArODE2MCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAw NjQ0CiAgfQogIAogIHZvaWQgX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpOwotQEAgLTEx ODM1LDYgKzEyNTU1LDcgQEAgdm9pZCBfaW5pdGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7CitA QCAtMTE4NTYsNiArMTI2MzksNyBAQCB2b2lkIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lk KTsKICB2b2lkCiAgX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpCiAgewpAQCAtODk5NSwx MCArOTk5NSwxMCBAQCBpbmRleCA4YzAyN2M5Li5kMjAxZjc2IDEwMDY0NAogICAgZWxzZQogICAg ICB7CiBkaWZmIC0tZ2l0IGEvZ2RiL2ZyYW1lLmMgYi9nZGIvZnJhbWUuYwotaW5kZXggNjdlMDYw Ny4uN2RjZjJjYiAxMDA2NDQKK2luZGV4IDljYTY5YmYuLjFiNGU2N2MgMTAwNjQ0CiAtLS0gYS9n ZGIvZnJhbWUuYwogKysrIGIvZ2RiL2ZyYW1lLmMKLUBAIC0xMTA5LDYgKzExMDksMTQgQEAgaGFz X3N0YWNrX2ZyYW1lcyAodm9pZCkKK0BAIC0xMTU3LDYgKzExNTcsMTQgQEAgaGFzX3N0YWNrX2Zy YW1lcyAodm9pZCkKICAgIGlmIChwdGlkX2VxdWFsIChpbmZlcmlvcl9wdGlkLCBudWxsX3B0aWQp KQogICAgICByZXR1cm4gMDsKICAKQEAgLTkwMTMsMzkgKzEwMDEzLDYgQEAgaW5kZXggNjdlMDYw Ny4uN2RjZjJjYiAxMDA2NDQKICAgIC8qIERvbid0IHRyeSB0byByZWFkIGZyb20gYSBkZWFkIHRo cmVhZC4gICovCiAgICBpZiAoaXNfZXhpdGVkIChpbmZlcmlvcl9wdGlkKSkKICAgICAgcmV0dXJu IDA7Ci1AQCAtMTg0Myw2ICsxODUxLDE3IEBAIGdldF9mcmFtZV9hcmdzX2FkZHJlc3MgKHN0cnVj dCBmcmFtZV9pbmZvICpmaSkKLSAgIHJldHVybiBmaS0+YmFzZS0+dGhpc19hcmdzIChmaSwgJmZp LT5iYXNlX2NhY2hlKTsKLSB9Ci0gCi0rLyogUmV0dXJuIHRydWUgaWYgdGhlIGZyYW1lIGJhc2Ug Zm9yIGZyYW1lIEZJIGlzIEJBU0U7IGZhbHNlCi0rICAgb3RoZXJ3aXNlLiAgKi8KLSsKLStpbnQK LStmcmFtZV91bndpbmRlcl9pcyAoc3RydWN0IGZyYW1lX2luZm8gKmZpLCBjb25zdCBzdHJ1Y3Qg ZnJhbWVfdW53aW5kICp1bndpbmRlcikKLSt7Ci0rICBpZiAoZmktPnVud2luZCA9PSBOVUxMKQot KyAgICBmaS0+dW53aW5kID0gZnJhbWVfdW53aW5kX2ZpbmRfYnlfZnJhbWUgKGZpLCAmZmktPnBy b2xvZ3VlX2NhY2hlKTsKLSsgIHJldHVybiBmaS0+dW53aW5kID09IHVud2luZGVyOwotK30KLSsK LSAvKiBMZXZlbCBvZiB0aGUgc2VsZWN0ZWQgZnJhbWU6IDAgZm9yIGlubmVybW9zdCwgMSBmb3Ig aXRzIGNhbGxlciwgLi4uCi0gICAgb3IgLTEgZm9yIGEgTlVMTCBmcmFtZS4gICovCi0gCi1kaWZm IC0tZ2l0IGEvZ2RiL2ZyYW1lLmggYi9nZGIvZnJhbWUuaAotaW5kZXggZmViZWY1Yy4uNjExYzZk MyAxMDA2NDQKLS0tLSBhL2dkYi9mcmFtZS5oCi0rKysgYi9nZGIvZnJhbWUuaAotQEAgLTY5Niw0 ICs2OTYsMTAgQEAgZXh0ZXJuIHN0cnVjdCBmcmFtZV9pbmZvICpkZXByZWNhdGVkX3NhZmVfZ2V0 X3NlbGVjdGVkX2ZyYW1lICh2b2lkKTsKLSAKLSBleHRlcm4gc3RydWN0IGZyYW1lX2luZm8gKmNy ZWF0ZV9uZXdfZnJhbWUgKENPUkVfQUREUiBiYXNlLCBDT1JFX0FERFIgcGMpOwotIAotKy8qIFJl dHVybiB0cnVlIGlmIHRoZSBmcmFtZSB1bndpbmRlciBmb3IgZnJhbWUgRkkgaXMgVU5XSU5ERVI7 IGZhbHNlCi0rICAgb3RoZXJ3aXNlLiAgKi8KLSsKLStleHRlcm4gaW50IGZyYW1lX3Vud2luZGVy X2lzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZmksCi0rCQkJICAgICAgY29uc3Qgc3RydWN0IGZyYW1l X3Vud2luZCAqdW53aW5kZXIpOwotKwotICNlbmRpZiAvKiAhZGVmaW5lZCAoRlJBTUVfSCkgICov CiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYmluaXQuaW4gYi9nZGIvZ2RiaW5pdC5pbgogaW5kZXggZmZi N2Y1My4uYTJlN2U5NCAxMDA2NDQKIC0tLSBhL2dkYi9nZGJpbml0LmluCkBAIC05NDczLDEwICsx MDQ0MCwyMSBAQCBpbmRleCAwMDAwMDAwLi5iODIxM2Y1CiArICBOVUxMLAogK307CiBkaWZmIC0t Z2l0IGEvZ2RiL2dkYnRocmVhZC5oIGIvZ2RiL2dkYnRocmVhZC5oCi1pbmRleCA3OWQzM2ZlLi5h ZWNkODIwIDEwMDY0NAoraW5kZXggNzlkMzNmZS4uZDNiNGZhMSAxMDA2NDQKIC0tLSBhL2dkYi9n ZGJ0aHJlYWQuaAogKysrIGIvZ2RiL2dkYnRocmVhZC5oCi1AQCAtMjQ5LDYgKzI0OSw5IEBAIGV4 dGVybiBzdHJ1Y3QgdGhyZWFkX2luZm8gKmFueV90aHJlYWRfb2ZfcHJvY2VzcyAoaW50IHBpZCk7 CitAQCAtMTg1LDYgKzE4NSwxMCBAQCBzdHJ1Y3QgdGhyZWFkX2luZm8KKyAgIC8qIFRydWUgaWYg dGhpcyB0aHJlYWQgaGFzIGJlZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQgdG8gc3RvcC4gICovCisg ICBpbnQgc3RvcF9yZXF1ZXN0ZWQ7CisgCisrICAvKiBUaGUgaW5pdGlhdGluZyBmcmFtZSBvZiBh IG5leHRpbmcgb3BlcmF0aW9uLCB1c2VkIGZvciBkZWNpZGluZworKyAgICAgd2hpY2ggZXhjZXB0 aW9ucyB0byBpbnRlcmNlcHQuICAqLworKyAgc3RydWN0IGZyYW1lX2lkIGluaXRpYXRpbmdfZnJh bWU7CisrCisgICAvKiBQcml2YXRlIGRhdGEgdXNlZCBieSB0aGUgdGFyZ2V0IHZlY3RvciBpbXBs ZW1lbnRhdGlvbi4gICovCisgICBzdHJ1Y3QgcHJpdmF0ZV90aHJlYWRfaW5mbyAqcHJpdmF0ZTsK KyB9OworQEAgLTI0OSw2ICsyNTMsOSBAQCBleHRlcm4gc3RydWN0IHRocmVhZF9pbmZvICphbnlf dGhyZWFkX29mX3Byb2Nlc3MgKGludCBwaWQpOwogIC8qIENoYW5nZSB0aGUgcHRpZCBvZiB0aHJl YWQgT0xEX1BUSUQgdG8gTkVXX1BUSUQuICAqLwogIHZvaWQgdGhyZWFkX2NoYW5nZV9wdGlkIChw dGlkX3Qgb2xkX3B0aWQsIHB0aWRfdCBuZXdfcHRpZCk7CiAgCkBAIC0xMDYwOSwyMSArMTE1ODcs NiBAQCBpbmRleCAwZjlkNDRlLi5jOTEwZTg4IDEwMDY0NAogIAogICAgLyogV2UgZGlkbid0IGZp bmQgaXQ7IHByaW50IHRoZSByYXcgZGF0YS4gICovCiAgICBpZiAodmJpdCkKLWRpZmYgLS1naXQg YS9nZGIvZ251bGliL01ha2VmaWxlLmluIGIvZ2RiL2dudWxpYi9NYWtlZmlsZS5pbgotaW5kZXgg NWU1NTU3My4uNTQzOWFiYSAxMDA2NDQKLS0tLSBhL2dkYi9nbnVsaWIvTWFrZWZpbGUuaW4KLSsr KyBiL2dkYi9nbnVsaWIvTWFrZWZpbGUuaW4KLUBAIC0xLDggKzEsOCBAQAotICMgTWFrZWZpbGUu aW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuOS42IGZyb20gTWFrZWZpbGUuYW0uCi0gIyBAY29u ZmlndXJlX2lucHV0QAotIAotLSMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotLSMgMjAwMywgMjAwNCwgMjAwNSAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsCi0rIyAyMDA0 LCAyMDA1LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotICMgVGhpcyBNYWtl ZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0g IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAotICMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgogZGlmZiAtLWdpdCBhL2dkYi9pMzg2LWxpbnV4LW5hdC5jIGIvZ2Ri L2kzODYtbGludXgtbmF0LmMKIGluZGV4IDk5MWIyN2YuLjQxMWI0MWIgMTAwNjQ0CiAtLS0gYS9n ZGIvaTM4Ni1saW51eC1uYXQuYwpAQCAtMTA4NjYsMTEgKzExODI5LDE0MSBAQCBpbmRleCBmNDli OWY2Li5jZDMxOTU4IDEwMDY0NAogICAgICBpbnQgZGVidWdfcmVnaXN0ZXJfbGVuZ3RoOwogICAg fTsKICAKK2RpZmYgLS1naXQgYS9nZGIvaW5mY21kLmMgYi9nZGIvaW5mY21kLmMKK2luZGV4IDll OTgyOTAuLmZhYjE4OTIgMTAwNjQ0CistLS0gYS9nZGIvaW5mY21kLmMKKysrKyBiL2dkYi9pbmZj bWQuYworQEAgLTgwMSw3ICs4MDEsNyBAQCBuZXh0aV9jb21tYW5kIChjaGFyICpjb3VudF9zdHJp bmcsIGludCBmcm9tX3R0eSkKKyAgIHN0ZXBfMSAoMSwgMSwgY291bnRfc3RyaW5nKTsKKyB9Cisg Cistc3RhdGljIHZvaWQKKyt2b2lkCisgZGVsZXRlX2xvbmdqbXBfYnJlYWtwb2ludF9jbGVhbnVw ICh2b2lkICphcmcpCisgeworICAgaW50IHRocmVhZCA9ICogKGludCAqKSBhcmc7CitAQCAtODQx LDEwICs4NDEsMTMgQEAgc3RlcF8xIChpbnQgc2tpcF9zdWJyb3V0aW5lcywgaW50IHNpbmdsZV9p bnN0LCBjaGFyICpjb3VudF9zdHJpbmcpCisgCisgICBpZiAoIXNpbmdsZV9pbnN0IHx8IHNraXBf c3Vicm91dGluZXMpCQkvKiBsZWF2ZSBzaSBjb21tYW5kIGFsb25lICovCisgICAgIHsKKysgICAg ICBzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwID0gaW5mZXJpb3JfdGhyZWFkICgpOworKworICAgICAg IGlmIChpbl90aHJlYWRfbGlzdCAoaW5mZXJpb3JfcHRpZCkpCisgIAl0aHJlYWQgPSBwaWRfdG9f dGhyZWFkX2lkIChpbmZlcmlvcl9wdGlkKTsKKyAKKyAgICAgICBzZXRfbG9uZ2ptcF9icmVha3Bv aW50ICh0aHJlYWQpOworKyAgICAgIHRwLT5pbml0aWF0aW5nX2ZyYW1lID0gZ2V0X2ZyYW1lX2lk IChnZXRfY3VycmVudF9mcmFtZSAoKSk7CisgCisgICAgICAgbWFrZV9jbGVhbnVwIChkZWxldGVf bG9uZ2ptcF9icmVha3BvaW50X2NsZWFudXAsICZ0aHJlYWQpOworICAgICB9CitAQCAtMTE5Myw2 ICsxMTk2LDE1IEBAIHNpZ25hbF9jb21tYW5kIChjaGFyICpzaWdudW1fZXhwLCBpbnQgZnJvbV90 dHkpCisgICBwcm9jZWVkICgoQ09SRV9BRERSKSAtMSwgb3Vyc2lnLCAwKTsKKyB9CisgCisrLyog QSBjb250aW51YXRpb24gY2FsbGJhY2sgZm9yIHVudGlsX25leHRfY29tbWFuZC4gICovCisrCisr c3RhdGljIHZvaWQKKyt1bnRpbF9uZXh0X2NvbnRpbnVhdGlvbiAodm9pZCAqYXJnKQorK3sKKysg IHN0cnVjdCB0aHJlYWRfaW5mbyAqdHAgPSBhcmc7CisrICBkZWxldGVfbG9uZ2ptcF9icmVha3Bv aW50ICh0cC0+bnVtKTsKKyt9CisrCisgLyogUHJvY2VlZCB1bnRpbCB3ZSByZWFjaCBhIGRpZmZl cmVudCBzb3VyY2UgbGluZSB3aXRoIHBjIGdyZWF0ZXIgdGhhbgorICAgIG91ciBjdXJyZW50IG9u ZSBvciBleGl0IHRoZSBmdW5jdGlvbi4gIFdlIHNraXAgY2FsbHMgaW4gYm90aCBjYXNlcy4KKyAK K0BAIC0xMjA5LDYgKzEyMjEsOCBAQCB1bnRpbF9uZXh0X2NvbW1hbmQgKGludCBmcm9tX3R0eSkK KyAgIHN0cnVjdCBzeW1ib2wgKmZ1bmM7CisgICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIHNhbDsK KyAgIHN0cnVjdCB0aHJlYWRfaW5mbyAqdHAgPSBpbmZlcmlvcl90aHJlYWQgKCk7CisrICBpbnQg dGhyZWFkID0gdHAtPm51bTsKKysgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW47CisgCisgICBj bGVhcl9wcm9jZWVkX3N0YXR1cyAoKTsKKyAgIHNldF9zdGVwX2ZyYW1lICgpOworQEAgLTEyNDQs NyArMTI1OCwxOSBAQCB1bnRpbF9uZXh0X2NvbW1hbmQgKGludCBmcm9tX3R0eSkKKyAKKyAgIHRw LT5zdGVwX211bHRpID0gMDsJCS8qIE9ubHkgb25lIGNhbGwgdG8gcHJvY2VlZCAqLworIAorKyAg c2V0X2xvbmdqbXBfYnJlYWtwb2ludCAodGhyZWFkKTsKKysgIHRwLT5pbml0aWF0aW5nX2ZyYW1l ID0gZ2V0X2ZyYW1lX2lkIChmcmFtZSk7CisrICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXAgKGRl bGV0ZV9sb25nam1wX2JyZWFrcG9pbnRfY2xlYW51cCwgJnRocmVhZCk7CisrCisgICBwcm9jZWVk ICgoQ09SRV9BRERSKSAtMSwgVEFSR0VUX1NJR05BTF9ERUZBVUxULCAxKTsKKysKKysgIGlmICh0 YXJnZXRfY2FuX2FzeW5jX3AgKCkgJiYgaXNfcnVubmluZyAoaW5mZXJpb3JfcHRpZCkpCisrICAg IHsKKysgICAgICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2hhaW4pOworKyAgICAgIGFkZF9jb250 aW51YXRpb24gKHRwLCB1bnRpbF9uZXh0X2NvbnRpbnVhdGlvbiwgdHAsIE5VTEwpOworKyAgICB9 CisrICBlbHNlCisrICAgIGRvX2NsZWFudXBzIChvbGRfY2hhaW4pOworIH0KKyAKKyBzdGF0aWMg dm9pZAorQEAgLTE0MjEsNiArMTQ0Nyw3IEBAIGZpbmlzaF9jb21tYW5kX2NvbnRpbnVhdGlvbiAo dm9pZCAqYXJnKQorICAgaWYgKGJzICE9IE5VTEwgJiYgdHAtPnByb2NlZWRfdG9fZmluaXNoKQor ICAgICBvYnNlcnZlcl9ub3RpZnlfbm9ybWFsX3N0b3AgKGJzLCAxIC8qIHByaW50IGZyYW1lICov KTsKKyAgIGRlbGV0ZV9icmVha3BvaW50IChhLT5icmVha3BvaW50KTsKKysgIGRlbGV0ZV9sb25n am1wX2JyZWFrcG9pbnQgKGluZmVyaW9yX3RocmVhZCAoKS0+bnVtKTsKKyB9CisgCisgc3RhdGlj IHZvaWQKK0BAIC0xNTA0LDYgKzE1MzEsNyBAQCBmaW5pc2hfZm9yd2FyZCAoc3RydWN0IHN5bWJv bCAqZnVuY3Rpb24sIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKKyAgIHN0cnVjdCBicmVha3Bv aW50ICpicmVha3BvaW50OworICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKKyAgIHN0cnVj dCBmaW5pc2hfY29tbWFuZF9jb250aW51YXRpb25fYXJncyAqY2FyZ3M7CisrICBpbnQgdGhyZWFk ID0gdHAtPm51bTsKKyAKKyAgIHNhbCA9IGZpbmRfcGNfbGluZSAoZ2V0X2ZyYW1lX3BjIChmcmFt ZSksIDApOworICAgc2FsLnBjID0gZ2V0X2ZyYW1lX3BjIChmcmFtZSk7CitAQCAtMTUxNCw2ICsx NTQyLDEwIEBAIGZpbmlzaF9mb3J3YXJkIChzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiwgc3RydWN0 IGZyYW1lX2luZm8gKmZyYW1lKQorIAorICAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwX2RlbGV0 ZV9icmVha3BvaW50IChicmVha3BvaW50KTsKKyAKKysgIHNldF9sb25nam1wX2JyZWFrcG9pbnQg KHRocmVhZCk7CisrICB0cC0+aW5pdGlhdGluZ19mcmFtZSA9IGdldF9mcmFtZV9pZCAoZnJhbWUp OworKyAgbWFrZV9jbGVhbnVwIChkZWxldGVfbG9uZ2ptcF9icmVha3BvaW50X2NsZWFudXAsICZ0 aHJlYWQpOworKworICAgdHAtPnByb2NlZWRfdG9fZmluaXNoID0gMTsgICAgLyogV2Ugd2FudCBz dG9wX3JlZ2lzdGVycywgcGxlYXNlLi4uICAqLworICAgcHJvY2VlZCAoKENPUkVfQUREUikgLTEs IFRBUkdFVF9TSUdOQUxfREVGQVVMVCwgMCk7CisgCitkaWZmIC0tZ2l0IGEvZ2RiL2luZmVyaW9y LmggYi9nZGIvaW5mZXJpb3IuaAoraW5kZXggNzMxMmU1MS4uZDRlYWU4OCAxMDA2NDQKKy0tLSBh L2dkYi9pbmZlcmlvci5oCisrKysgYi9nZGIvaW5mZXJpb3IuaAorQEAgLTI3Miw2ICsyNzIsOCBA QCBleHRlcm4gdm9pZCBpbnRlcnJ1cHRfdGFyZ2V0X2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBm cm9tX3R0eSk7CisgCisgZXh0ZXJuIHZvaWQgaW50ZXJydXB0X3RhcmdldF8xIChpbnQgYWxsX3Ro cmVhZHMpOworIAorK2V4dGVybiB2b2lkIGRlbGV0ZV9sb25nam1wX2JyZWFrcG9pbnRfY2xlYW51 cCAodm9pZCAqYXJnKTsKKysKKyBleHRlcm4gdm9pZCBkZXRhY2hfY29tbWFuZCAoY2hhciAqLCBp bnQpOworIAorIGV4dGVybiB2b2lkIG5vdGljZV9uZXdfaW5mZXJpb3IgKHB0aWRfdCwgaW50LCBp bnQpOwogZGlmZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwotaW5kZXggZTNl ZGRjZS4uODkxN2FjOSAxMDA2NDQKK2luZGV4IGM5MDc2MzUuLmJkYThkODQgMTAwNjQ0CiAtLS0g YS9nZGIvaW5mcnVuLmMKICsrKyBiL2dkYi9pbmZydW4uYwotQEAgLTI2MzAsNiArMjYzMCwxMCBA QCBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAq ZWNzKQorQEAgLTQ1LDYgKzQ1LDggQEAKKyAjaW5jbHVkZSAibGFuZ3VhZ2UuaCIKKyAjaW5jbHVk ZSAic29saWIuaCIKKyAjaW5jbHVkZSAibWFpbi5oIgorKyNpbmNsdWRlICJkaWN0aW9uYXJ5Lmgi CisrI2luY2x1ZGUgImJsb2NrLmgiCisgI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKKyAjaW5jbHVk ZSAibWkvbWktY29tbW9uLmgiCisgI2luY2x1ZGUgImV2ZW50LXRvcC5oIgorQEAgLTE3ODIsNiAr MTc4NCw4IEBAIHN0YXRpYyB2b2lkIGluc2VydF9zdGVwX3Jlc3VtZV9icmVha3BvaW50X2F0X3Nh bCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgCQkJCQkJICBzdHJ1Y3Qgc3ltdGFiX2FuZF9s aW5lIHNyX3NhbCwKKyAJCQkJCQkgIHN0cnVjdCBmcmFtZV9pZCBzcl9pZCk7Cisgc3RhdGljIHZv aWQgaW5zZXJ0X2xvbmdqbXBfcmVzdW1lX2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICosIENP UkVfQUREUik7Cisrc3RhdGljIHZvaWQgY2hlY2tfZXhjZXB0aW9uX3Jlc3VtZSAoc3RydWN0IGV4 ZWN1dGlvbl9jb250cm9sX3N0YXRlICosCisrCQkJCSAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqLCBz dHJ1Y3Qgc3ltYm9sICopOworIAorIHN0YXRpYyB2b2lkIHN0b3Bfc3RlcHBpbmcgKHN0cnVjdCBl eGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKTsKKyBzdGF0aWMgdm9pZCBwcmVwYXJlX3RvX3dh aXQgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKTsKK0BAIC0yNjMzLDYgKzI2 MzcsMTAgQEAgaGFuZGxlX2luZmVyaW9yX2V2ZW50IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xf c3RhdGUgKmVjcykKICAKICAgICAgICBzdG9wX3BjID0gcmVnY2FjaGVfcmVhZF9wYyAoZ2V0X3Ro cmVhZF9yZWdjYWNoZSAoZWNzLT5wdGlkKSk7CiAgCkBAIC0xMDg4MSw3ICsxMTk3NCw3IEBAIGlu ZGV4IGUzZWRkY2UuLjg5MTdhYzkgMTAwNjQ0CiAgICAgICAgZWNzLT5ldmVudF90aHJlYWQtPnN0 b3BfYnBzdGF0ID0gYnBzdGF0X3N0b3Bfc3RhdHVzIChzdG9wX3BjLCBlY3MtPnB0aWQpOwogIAog ICAgICAgIGVjcy0+cmFuZG9tX3NpZ25hbCA9ICFicHN0YXRfZXhwbGFpbnNfc2lnbmFsIChlY3Mt PmV2ZW50X3RocmVhZC0+c3RvcF9icHN0YXQpOwotQEAgLTI2NjcsNiArMjY3MSwxMCBAQCBoYW5k bGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQor QEAgLTI2NzAsNiArMjY3OCwxMCBAQCBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVjdCBleGVj dXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQogIAogICAgICAgIHN0b3BfcGMgPSByZWdjYWNoZV9y ZWFkX3BjIChnZXRfdGhyZWFkX3JlZ2NhY2hlIChlY3MtPnB0aWQpKTsKICAKQEAgLTEwODkyLDEw ICsxMTk4NSwyMTYgQEAgaW5kZXggZTNlZGRjZS4uODkxN2FjOSAxMDA2NDQKICAgICAgICAvKiBU aGlzIGNhdXNlcyB0aGUgZXZlbnRwb2ludHMgYW5kIHN5bWJvbCB0YWJsZSB0byBiZSByZXNldC4K ICAgICAgICAgICBNdXN0IGRvIHRoaXMgbm93LCBiZWZvcmUgdHJ5aW5nIHRvIGRldGVybWluZSB3 aGV0aGVyIHRvCiAgICAgICAgICAgc3RvcC4gICovCi1kaWZmIC0tZ2l0IGEvZ2RiL2p2LWxhbmcu YyBiL2dkYi9qdi1sYW5nLmMKLWluZGV4IDZiNjhlN2QuLjUwOTUxODAgMTAwNjQ0Ci0tLS0gYS9n ZGIvanYtbGFuZy5jCi0rKysgYi9nZGIvanYtbGFuZy5jCitAQCAtMzQxMSwyMyArMzQyMywzMyBA QCBwcm9jZXNzX2V2ZW50X3N0b3BfdGVzdDoKKyAKKyAJZWNzLT5ldmVudF90aHJlYWQtPnN0ZXBw aW5nX292ZXJfYnJlYWtwb2ludCA9IDE7CisgCistCWlmICghZ2RiYXJjaF9nZXRfbG9uZ2ptcF90 YXJnZXRfcCAoZ2RiYXJjaCkKKy0JICAgIHx8ICFnZGJhcmNoX2dldF9sb25nam1wX3RhcmdldCAo Z2RiYXJjaCwgZnJhbWUsICZqbXBfYnVmX3BjKSkKKysJaWYgKHdoYXQuaXNfbG9uZ2ptcCkKKyAJ ICB7CistCSAgICBpZiAoZGVidWdfaW5mcnVuKQorLQkgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQg KGdkYl9zdGRsb2csICJcCisrCSAgICBpZiAoIWdkYmFyY2hfZ2V0X2xvbmdqbXBfdGFyZ2V0X3Ag KGdkYmFyY2gpCisrCQl8fCAhZ2RiYXJjaF9nZXRfbG9uZ2ptcF90YXJnZXQgKGdkYmFyY2gsCisr CQkJCQkJZnJhbWUsICZqbXBfYnVmX3BjKSkKKysJICAgICAgeworKwkJaWYgKGRlYnVnX2luZnJ1 bikKKysJCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiXAorIGluZnJ1bjogQlBT VEFUX1dIQVRfU0VUX0xPTkdKTVBfUkVTVU1FICghZ2RiYXJjaF9nZXRfbG9uZ2ptcF90YXJnZXQp XG4iKTsKKy0JICAgIGtlZXBfZ29pbmcgKGVjcyk7CistCSAgICByZXR1cm47CistCSAgfQorKwkJ a2VlcF9nb2luZyAoZWNzKTsKKysJCXJldHVybjsKKysJICAgICAgfQorIAorLQkvKiBXZSdyZSBn b2luZyB0byByZXBsYWNlIHRoZSBjdXJyZW50IHN0ZXAtcmVzdW1lIGJyZWFrcG9pbnQKKy0JICAg d2l0aCBhIGxvbmdqbXAtcmVzdW1lIGJyZWFrcG9pbnQuICAqLworLQlkZWxldGVfc3RlcF9yZXN1 bWVfYnJlYWtwb2ludCAoZWNzLT5ldmVudF90aHJlYWQpOworKwkgICAgLyogV2UncmUgZ29pbmcg dG8gcmVwbGFjZSB0aGUgY3VycmVudCBzdGVwLXJlc3VtZSBicmVha3BvaW50CisrCSAgICAgICB3 aXRoIGEgbG9uZ2ptcC1yZXN1bWUgYnJlYWtwb2ludC4gICovCisrCSAgICBkZWxldGVfc3RlcF9y ZXN1bWVfYnJlYWtwb2ludCAoZWNzLT5ldmVudF90aHJlYWQpOworIAorLQkvKiBJbnNlcnQgYSBi cmVha3BvaW50IGF0IHJlc3VtZSBhZGRyZXNzLiAgKi8KKy0JaW5zZXJ0X2xvbmdqbXBfcmVzdW1l X2JyZWFrcG9pbnQgKGdkYmFyY2gsIGptcF9idWZfcGMpOworKwkgICAgLyogSW5zZXJ0IGEgYnJl YWtwb2ludCBhdCByZXN1bWUgYWRkcmVzcy4gICovCisrCSAgICBpbnNlcnRfbG9uZ2ptcF9yZXN1 bWVfYnJlYWtwb2ludCAoZ2RiYXJjaCwgam1wX2J1Zl9wYyk7CisrCSAgfQorKwllbHNlCisrCSAg eworKwkgICAgc3RydWN0IHN5bWJvbCAqZnVuYyA9IGdldF9mcmFtZV9mdW5jdGlvbiAoZnJhbWUp OworIAorKwkgICAgaWYgKGZ1bmMpCisrCSAgICAgIGNoZWNrX2V4Y2VwdGlvbl9yZXN1bWUgKGVj cywgZnJhbWUsIGZ1bmMpOworKwkgIH0KKyAJa2VlcF9nb2luZyAoZWNzKTsKKyAJcmV0dXJuOwor IAorQEAgLTM0MzksNiArMzQ2MSw1MyBAQCBpbmZydW46IEJQU1RBVF9XSEFUX1NFVF9MT05HSk1Q X1JFU1VNRSAoIWdkYmFyY2hfZ2V0X2xvbmdqbXBfdGFyZ2V0KVxuIik7CisgCWdkYl9hc3NlcnQg KGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVwX3Jlc3VtZV9icmVha3BvaW50ICE9IE5VTEwpOworIAlk ZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCAoZWNzLT5ldmVudF90aHJlYWQpOworIAorKwlp ZiAoIXdoYXQuaXNfbG9uZ2ptcCkKKysJICB7CisrCSAgICAvKiBUaGVyZSBhcmUgc2V2ZXJhbCBj YXNlcyB0byBjb25zaWRlci4KKysJICAgICAgIAorKwkgICAgICAgMS4gVGhlIGluaXRpYXRpbmcg ZnJhbWUgbm8gbG9uZ2VyIGV4aXN0cy4gIEluIHRoaXMgY2FzZQorKwkgICAgICAgd2UgbXVzdCBz dG9wLCBiZWNhdXNlIHRoZSBleGNlcHRpb24gaGFzIGdvbmUgdG9vIGZhci4KKysJICAgICAgIAor KwkgICAgICAgMi4gVGhlIGluaXRpYXRpbmcgZnJhbWUgZXhpc3RzLCBhbmQgaXMgdGhlIHNhbWUg YXMgdGhlCisrCSAgICAgICBjdXJyZW50IGZyYW1lLgorKwkgICAgICAgCisrCSAgICAgICAyLjEu IElmIHdlIGFyZSBzdGVwcGluZywgZGVmZXIgdG8gdGhlIHN0ZXBwaW5nIGxvZ2ljLgorKwkgICAg ICAgCisrCSAgICAgICAyLjIuIE90aGVyd2lzZSwgd2UgYXJlIG5vdCBzdGVwcGluZywgc28gd2Ug YXJlIGRvaW5nIGEKKysJICAgICAgICJmaW5pc2giIGFuZCB3ZSBoYXZlIHJlYWNoZWQgdGhlIGNh bGxpbmcgZnJhbWUuICBTbywKKysJICAgICAgIHN0b3AuCisrCSAgICAgICAKKysJICAgICAgIDMu IFRoZSBpbml0aWF0aW5nIGZyYW1lIGV4aXN0cyBhbmQgaXMgZGlmZmVyZW50IGZyb20KKysJICAg ICAgIHRoZSBjdXJyZW50IGZyYW1lLiAgVGhpcyBtZWFucyB0aGUgZXhjZXB0aW9uIGhhcyBiZWVu CisrCSAgICAgICBjYXVnaHQgYmVuZWF0aCB0aGUgaW5pdGlhdGluZyBmcmFtZSwgc28ga2VlcCBn b2luZy4gICovCisrCSAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqaW5pdF9mcmFtZQorKwkgICAgICA9 IGZyYW1lX2ZpbmRfYnlfaWQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5pbml0aWF0aW5nX2ZyYW1lKTsK KysJICAgIGlmIChpbml0X2ZyYW1lKQorKwkgICAgICB7CisrCQlzdHJ1Y3QgZnJhbWVfaWQgY3Vy cmVudF9pZAorKwkJICA9IGdldF9mcmFtZV9pZCAoZ2V0X2N1cnJlbnRfZnJhbWUgKCkpOworKwkJ aWYgKGZyYW1lX2lkX2VxIChjdXJyZW50X2lkLAorKwkJCQkgZWNzLT5ldmVudF90aHJlYWQtPmlu aXRpYXRpbmdfZnJhbWUpKQorKwkJICB7CisrCQkgICAgaWYgKGVjcy0+ZXZlbnRfdGhyZWFkLT5z dGVwX3JhbmdlX3N0YXJ0KQorKwkJICAgICAgeworKwkJCS8qIENhc2UgMi4xLiAgKi8KKysJCQli cmVhazsKKysJCSAgICAgIH0KKysJCSAgICBlbHNlCisrCQkgICAgICB7CisrCQkJLyogQ2FzZSAy LjI6IGZhbGwgdGhyb3VnaC4gICovCisrCQkgICAgICB9CisrCQkgIH0KKysJCWVsc2UKKysJCSAg eworKwkJICAgIC8qIENhc2UgMy4gICovCisrCQkgICAga2VlcF9nb2luZyAoZWNzKTsKKysJCSAg ICByZXR1cm47CisrCQkgIH0KKysJICAgICAgfQorKwkgIH0KKysKKyAJZWNzLT5ldmVudF90aHJl YWQtPnN0b3Bfc3RlcCA9IDE7CisgCXByaW50X3N0b3BfcmVhc29uIChFTkRfU1RFUFBJTkdfUkFO R0UsIDApOworIAlzdG9wX3N0ZXBwaW5nIChlY3MpOworQEAgLTQ0MzEsNiArNDUwMCw5NiBAQCBp bnNlcnRfbG9uZ2ptcF9yZXN1bWVfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs IENPUkVfQUREUiBwYykKKyAgICAgc2V0X21vbWVudGFyeV9icmVha3BvaW50X2F0X3BjIChnZGJh cmNoLCBwYywgYnBfbG9uZ2ptcF9yZXN1bWUpOworIH0KKyAKKysvKiBJbnNlcnQgYW4gZXhjZXB0 aW9uIHJlc3VtZSBicmVha3BvaW50LiAgVFAgaXMgdGhlIHRocmVhZCB0aHJvd2luZworKyAgIHRo ZSBleGNlcHRpb24uICBUaGUgYmxvY2sgQiBpcyB0aGUgYmxvY2sgb2YgdGhlIHVud2luZGVyIGRl YnVnIGhvb2sKKysgICBmdW5jdGlvbi4gIEZSQU1FIGlzIHRoZSBmcmFtZSBjb3JyZXNwb25kaW5n IHRvIHRoZSBjYWxsIHRvIHRoaXMKKysgICBmdW5jdGlvbi4gIFNZTSBpcyB0aGUgc3ltYm9sIG9m IHRoZSBmdW5jdGlvbiBhcmd1bWVudCBob2xkaW5nIHRoZQorKyAgIHRhcmdldCBQQyBvZiB0aGUg ZXhjZXB0aW9uLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK2luc2VydF9leGNlcHRpb25fcmVzdW1l X2JyZWFrcG9pbnQgKHN0cnVjdCB0aHJlYWRfaW5mbyAqdHAsCisrCQkJCSAgICBzdHJ1Y3QgYmxv Y2sgKmIsCisrCQkJCSAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCisrCQkJCSAgICBzdHJ1 Y3Qgc3ltYm9sICpzeW0pCisreworKyAgc3RydWN0IGdkYl9leGNlcHRpb24gZTsKKysKKysgIC8q IFdlIHdhbnQgdG8gaWdub3JlIGVycm9ycyBoZXJlLiAgKi8KKysgIFRSWV9DQVRDSCAoZSwgUkVU VVJOX01BU0tfQUxMKQorKyAgICB7CisrICAgICAgc3RydWN0IHN5bWJvbCAqdnN5bTsKKysgICAg ICBzdHJ1Y3QgdmFsdWUgKnZhbHVlOworKyAgICAgIENPUkVfQUREUiBoYW5kbGVyOworKyAgICAg IHN0cnVjdCBicmVha3BvaW50ICpicDsKKysKKysgICAgICB2c3ltID0gbG9va3VwX3N5bWJvbCAo U1lNQk9MX0xJTktBR0VfTkFNRSAoc3ltKSwgYiwgVkFSX0RPTUFJTiwgTlVMTCk7CisrICAgICAg dmFsdWUgPSByZWFkX3Zhcl92YWx1ZSAodnN5bSwgZnJhbWUpOworKyAgICAgIGhhbmRsZXIgPSB2 YWx1ZV9hc19hZGRyZXNzICh2YWx1ZSk7CisrCisrICAgICAgLyogV2UncmUgZ29pbmcgdG8gcmVw bGFjZSB0aGUgY3VycmVudCBzdGVwLXJlc3VtZSBicmVha3BvaW50CisrCSB3aXRoIGFuIGV4Y2Vw dGlvbi1yZXN1bWUgYnJlYWtwb2ludC4gICovCisrICAgICAgZGVsZXRlX3N0ZXBfcmVzdW1lX2Jy ZWFrcG9pbnQgKHRwKTsKKysKKysgICAgICBpZiAoZGVidWdfaW5mcnVuKQorKwlmcHJpbnRmX3Vu ZmlsdGVyZWQgKGdkYl9zdGRsb2csCisrCQkJICAgICJpbmZydW46IGV4Y2VwdGlvbiByZXN1bWUg YXQgJWx4XG4iLAorKwkJCSAgICAodW5zaWduZWQgbG9uZykgaGFuZGxlcik7CisrCisrICAgICAg YnAgPSBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGMgKGdldF9mcmFtZV9hcmNoIChmcmFt ZSksCisrCQkJCQkgICBoYW5kbGVyLCBicF9leGNlcHRpb25fcmVzdW1lKTsKKysgICAgICBpbmZl cmlvcl90aHJlYWQgKCktPnN0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgPSBicDsKKysgICAgfQorK30K KysKKysvKiBUaGlzIGlzIGNhbGxlZCB3aGVuIGFuIGV4Y2VwdGlvbiBoYXMgYmVlbiBpbnRlcmNl cHRlZC4gIENoZWNrIHRvCisrICAgc2VlIHdoZXRoZXIgdGhlIGV4Y2VwdGlvbidzIGRlc3RpbmF0 aW9uIGlzIG9mIGludGVyZXN0LCBhbmQgaWYgc28sCisrICAgc2V0IGFuIGV4Y2VwdGlvbiByZXN1 bWUgYnJlYWtwb2ludCB0aGVyZS4gICovCisrCisrc3RhdGljIHZvaWQKKytjaGVja19leGNlcHRp b25fcmVzdW1lIChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcywKKysJCQlzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIHN0cnVjdCBzeW1ib2wgKmZ1bmMpCisreworKyAgc3RydWN0 IGdkYl9leGNlcHRpb24gZTsKKysKKysgIFRSWV9DQVRDSCAoZSwgUkVUVVJOX01BU0tfQUxMKQor KyAgICB7CisrICAgICAgc3RydWN0IGJsb2NrICpiOworKyAgICAgIHN0cnVjdCBkaWN0X2l0ZXJh dG9yIGl0ZXI7CisrICAgICAgc3RydWN0IHN5bWJvbCAqc3ltOworKyAgICAgIGludCBhcmdubyA9 IDA7CisrCisrICAgICAgLyogVGhlIGV4Y2VwdGlvbiBicmVha3BvaW50IGlzIGEgdGhyZWFkLXNw ZWNpZmljIGJyZWFrcG9pbnQgb24KKysJIHRoZSB1bndpbmRlcidzIGRlYnVnIGhvb2ssIGRlY2xh cmVkIGFzOgorKwkgCisrCSB2b2lkIF9VbndpbmRfRGVidWdIb29rICh2b2lkICpjZmEsIHZvaWQg KmhhbmRsZXIpOworKwkgCisrCSBUaGUgQ0ZBIGFyZ3VtZW50IGluZGljYXRlcyB0aGUgZnJhbWUg dG8gd2hpY2ggY29udHJvbCBpcworKwkgYWJvdXQgdG8gYmUgdHJhbnNmZXJyZWQuICBIQU5ETEVS IGlzIHRoZSBkZXN0aW5hdGlvbiBQQy4KKysJIAorKwkgV2UgaWdub3JlIHRoZSBDRkEgYW5kIHNl dCBhIHRlbXBvcmFyeSBicmVha3BvaW50IGF0IEhBTkRMRVIuCisrCSBUaGlzIGlzIG5vdCBleHRy ZW1lbHkgZWZmaWNpZW50IGJ1dCBpdCBhdm9pZHMgaXNzdWVzIGluIGdkYgorKwkgd2l0aCBjb21w dXRpbmcgdGhlIERXQVJGIENGQSwgYW5kIGl0IGFsc28gd29ya3MgZXZlbiBpbiB3ZWlyZAorKwkg Y2FzZXMgc3VjaCBhcyB0aHJvd2luZyBhbiBleGNlcHRpb24gZnJvbSBpbnNpZGUgYSBzaWduYWwK KysJIGhhbmRsZXIuICAqLworKworKyAgICAgIGIgPSBTWU1CT0xfQkxPQ0tfVkFMVUUgKGZ1bmMp OworKyAgICAgIEFMTF9CTE9DS19TWU1CT0xTIChiLCBpdGVyLCBzeW0pCisrCXsKKysJICBpZiAo IVNZTUJPTF9JU19BUkdVTUVOVCAoc3ltKSkKKysJICAgIGNvbnRpbnVlOworKworKwkgIGlmIChh cmdubyA9PSAwKQorKwkgICAgKythcmdubzsKKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIGlu c2VydF9leGNlcHRpb25fcmVzdW1lX2JyZWFrcG9pbnQgKGVjcy0+ZXZlbnRfdGhyZWFkLAorKwkJ CQkJCSAgYiwgZnJhbWUsIHN5bSk7CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKwl9CisrICAg IH0KKyt9CisrCisgc3RhdGljIHZvaWQKKyBzdG9wX3N0ZXBwaW5nIChzdHJ1Y3QgZXhlY3V0aW9u X2NvbnRyb2xfc3RhdGUgKmVjcykKKyB7CitAQCAtNDQ5OSw2ICs0NjU4LDggQEAga2VlcF9nb2lu ZyAoc3RydWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlICplY3MpCisgCSAgICB9CisgCSAgaWYg KGUucmVhc29uIDwgMCkKKyAJICAgIHsKKysJICAgICAgaWYgKGRlYnVnX2luZnJ1bikKKysJCWV4 Y2VwdGlvbl9mcHJpbnRmIChnZGJfc3RkbG9nLCBlLCAiaW5mcnVuOiBleGNlcHRpb24gd2hpbGUg aW5zZXJ0aW5nIGJyZWFrcG9pbnRzOiAiKTsKKyAJICAgICAgc3RvcF9zdGVwcGluZyAoZWNzKTsK KyAJICAgICAgcmV0dXJuOworIAkgICAgfQorZGlmZiAtLWdpdCBhL2dkYi9qdi1sYW5nLmMgYi9n ZGIvanYtbGFuZy5jCitpbmRleCA2YjY4ZTdkLi41MDk1MTgwIDEwMDY0NAorLS0tIGEvZ2RiL2p2 LWxhbmcuYworKysrIGIvZ2RiL2p2LWxhbmcuYwogQEAgLTExMjEsNiArMTEyMSw3IEBAIGNvbnN0 IHN0cnVjdCBleHBfZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9qYXZhID0KICB7CiAgICBwcmlu dF9zdWJleHBfc3RhbmRhcmQsCkBAIC0xMTIxNCw3ICsxMjUxMyw3IEBAIGluZGV4IDVmOWEwZmUu LjY2ZmEwNjcgMTAwNjQ0CiAgICBtYWNob19zeW1maWxlX29mZnNldHMsICAgICAgICAvKiBzeW1f b2Zmc2V0czogIHhsYXRlIGV4dGVybmFsIHRvIGludGVybmFsIGZvcm0gKi8KICAgIE5VTEwgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIG5leHQ6IHBvaW50ZXIgdG8gbmV4dCBzdHJ1Y3Qgc3lt X2ZucyAqLwogZGlmZiAtLWdpdCBhL2dkYi9tYWluLmMgYi9nZGIvbWFpbi5jCi1pbmRleCA4YjY2 Zjc4Li5kZGVhYjZmIDEwMDY0NAoraW5kZXggNTU0MTFhOC4uYWM5YTU0MCAxMDA2NDQKIC0tLSBh L2dkYi9tYWluLmMKICsrKyBiL2dkYi9tYWluLmMKIEBAIC00MCw2ICs0MCw3IEBACkBAIC0xMTM5 NSw3ICsxMjY5NCw3IEBAIGluZGV4IGFhYzgyZTkuLjYyNjI5MmMgMTAwNjQ0CiAgICBUWVBFX0NQ TFVTX1NQRUNJRklDICh0KSA9IChzdHJ1Y3QgY3BsdXNfc3RydWN0X3R5cGUgKikgJmNwbHVzX3N0 cnVjdF9kZWZhdWx0OwogICAgcmV0dXJuIHQ7CiBkaWZmIC0tZ2l0IGEvZ2RiL21pL21pLWNtZC12 YXIuYyBiL2dkYi9taS9taS1jbWQtdmFyLmMKLWluZGV4IDBjZjAzZDkuLmU0Y2E2MjEgMTAwNjQ0 CitpbmRleCAwY2YwM2Q5Li45MzQ1OWRkIDEwMDY0NAogLS0tIGEvZ2RiL21pL21pLWNtZC12YXIu YwogKysrIGIvZ2RiL21pL21pLWNtZC12YXIuYwogQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIHZv aWQgdmFyb2JqX3VwZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZhciwKQEAgLTExNDIyLDcgKzEy NzIxLDE3IEBAIGluZGV4IDBjZjAzZDkuLmU0Y2E2MjEgMTAwNjQ0CiAgCiAgICB0eXBlID0gdmFy b2JqX2dldF90eXBlICh2YXIpOwogICAgaWYgKHR5cGUgIT0gTlVMTCkKLUBAIC0xMzgsNiArMTQy LDggQEAgbWlfY21kX3Zhcl9jcmVhdGUgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQg YXJnYykKK0BAIC03NSw2ICs3OSw5IEBAIHByaW50X3Zhcm9iaiAoc3RydWN0IHZhcm9iaiAqdmFy LCBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXMsCisgCisgICBpZiAodmFyb2JqX2dldF9m cm96ZW4gKHZhcikpCisgICAgIHVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAiZnJvemVuIiwgMSk7 CisrCisrICBpZiAodmFyb2JqX3ByZXR0eV9wcmludGVkX3AgKHZhcikpCisrICAgIHVpX291dF9m aWVsZF9pbnQgKHVpb3V0LCAiZHluYW1pYyIsIDEpOworIH0KKyAKKyAvKiBWQVJPQkogb3BlcmF0 aW9ucyAqLworQEAgLTEzOCw2ICsxNDUsOCBAQCBtaV9jbWRfdmFyX2NyZWF0ZSAoY2hhciAqY29t bWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQogIAogICAgcHJpbnRfdmFyb2JqICh2YXIsIFBS SU5UX0FMTF9WQUxVRVMsIDAgLyogZG9uJ3QgcHJpbnQgZXhwcmVzc2lvbiAqLyk7CiAgCkBAIC0x MTQzMSw3ICsxMjc0MCw3IEBAIGluZGV4IDBjZjAzZDkuLmU0Y2E2MjEgMTAwNjQ0CiAgICBkb19j bGVhbnVwcyAob2xkX2NsZWFudXBzKTsKICB9CiAgCi1AQCAtMjIzLDYgKzIyOSw3IEBAIG1pX2Nt ZF92YXJfc2V0X2Zvcm1hdCAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQor QEAgLTIyMyw2ICsyMzIsNyBAQCBtaV9jbWRfdmFyX3NldF9mb3JtYXQgKGNoYXIgKmNvbW1hbmQs IGNoYXIgKiphcmd2LCBpbnQgYXJnYykKICB7CiAgICBlbnVtIHZhcm9ial9kaXNwbGF5X2Zvcm1h dHMgZm9ybWF0OwogICAgc3RydWN0IHZhcm9iaiAqdmFyOwpAQCAtMTE0MzksNyArMTI3NDgsNyBA QCBpbmRleCAwY2YwM2Q5Li5lNGNhNjIxIDEwMDY0NAogIAogICAgaWYgKGFyZ2MgIT0gMikKICAg ICAgZXJyb3IgKF8oIm1pX2NtZF92YXJfc2V0X2Zvcm1hdDogVXNhZ2U6IE5BTUUgRk9STUFULiIp KTsKLUBAIC0yMzksNyArMjQ2LDkgQEAgbWlfY21kX3Zhcl9zZXRfZm9ybWF0IChjaGFyICpjb21t YW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtMjM5LDcgKzI0OSw5IEBAIG1pX2NtZF92 YXJfc2V0X2Zvcm1hdCAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQogICAg dWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJmb3JtYXQiLCB2YXJvYmpfZm9ybWF0X3N0cmlu Z1soaW50KSBmb3JtYXRdKTsKICAgCiAgICAvKiBSZXBvcnQgdGhlIHZhbHVlIGluIHRoZSBuZXcg Zm9ybWF0ICovCkBAIC0xMTQ1MCw3ICsxMjc1OSw3IEBAIGluZGV4IDBjZjAzZDkuLmU0Y2E2MjEg MTAwNjQ0CiAgfQogIAogIHZvaWQKLUBAIC0zMzcsMTEgKzM0NiwxMiBAQCBNdXN0IGJlOiAwIG9y IFwiJXNcIiwgMSBvciBcIiVzXCIsIDIgb3IgXCIlc1wiIiksCitAQCAtMzM3LDExICszNDksMTIg QEAgTXVzdCBiZTogMCBvciBcIiVzXCIsIDEgb3IgXCIlc1wiLCAyIG9yIFwiJXNcIiIpLAogIH0K ICAKICAvKiBSZXR1cm4gMSBpZiBnaXZlbiB0aGUgYXJndW1lbnQgUFJJTlRfVkFMVUVTIHdlIHNo b3VsZCBkaXNwbGF5CkBAIC0xMTQ2NSw3ICsxMjc3NCw3IEBAIGluZGV4IDBjZjAzZDkuLmU0Y2E2 MjEgMTAwNjQ0CiAgCiAgICBpZiAocHJpbnRfdmFsdWVzID09IFBSSU5UX05PX1ZBTFVFUykKICAg ICAgcmV0dXJuIDA7Ci1AQCAtMzQ5LDYgKzM1OSwxMCBAQCBtaV9wcmludF92YWx1ZV9wIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzKQorQEAgLTM0OSw2 ICszNjIsMTAgQEAgbWlfcHJpbnRfdmFsdWVfcCAoc3RydWN0IHR5cGUgKnR5cGUsIGVudW0gcHJp bnRfdmFsdWVzIHByaW50X3ZhbHVlcykKICAgIGlmIChwcmludF92YWx1ZXMgPT0gUFJJTlRfQUxM X1ZBTFVFUykKICAgICAgcmV0dXJuIDE7CiAgCkBAIC0xMTQ3Niw3ICsxMjc4NSw3IEBAIGluZGV4 IDBjZjAzZDkuLmU0Y2E2MjEgMTAwNjQ0CiAgICBpZiAodHlwZSA9PSBOVUxMKQogICAgICByZXR1 cm4gMTsKICAgIGVsc2UKLUBAIC0zNjksMjQgKzM4MywzNSBAQCBtaV9jbWRfdmFyX2xpc3RfY2hp bGRyZW4gKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKK0BAIC0zNjksMjQg KzM4NiwzNSBAQCBtaV9jbWRfdmFyX2xpc3RfY2hpbGRyZW4gKGNoYXIgKmNvbW1hbmQsIGNoYXIg Kiphcmd2LCBpbnQgYXJnYykKICAgIHN0cnVjdCB2YXJvYmogKnZhcjsgIAogICAgVkVDKHZhcm9i al9wKSAqY2hpbGRyZW47CiAgICBzdHJ1Y3QgdmFyb2JqICpjaGlsZDsKQEAgLTExNTE5LDcgKzEy ODI4LDcgQEAgaW5kZXggMGNmMDNkOS4uZTRjYTYyMSAxMDA2NDQKICAgICAgcHJpbnRfdmFsdWVz ID0gbWlfcGFyc2VfdmFsdWVzX29wdGlvbiAoYXJndlswXSk7CiAgICBlbHNlCiAgICAgIHByaW50 X3ZhbHVlcyA9IFBSSU5UX05PX1ZBTFVFUzsKLUBAIC0zOTgsMjEgKzQyMywyOCBAQCBtaV9jbWRf dmFyX2xpc3RfY2hpbGRyZW4gKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykK K0BAIC0zOTgsMjEgKzQyNiwyOCBAQCBtaV9jbWRfdmFyX2xpc3RfY2hpbGRyZW4gKGNoYXIgKmNv bW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKICAgICAgICB4ZnJlZSAoZGlzcGxheV9oaW50 KTsKICAgICAgfQogIApAQCAtMTE1NjEsNyArMTI4NzAsNyBAQCBpbmRleCAwY2YwM2Q5Li5lNGNh NjIxIDEwMDY0NAogIH0KICAKICB2b2lkCi1AQCAtNTM4LDE2ICs1NzAsMjQgQEAgbWlfY21kX3Zh cl9ldmFsdWF0ZV9leHByZXNzaW9uIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFy Z2MpCitAQCAtNTM4LDE2ICs1NzMsMjQgQEAgbWlfY21kX3Zhcl9ldmFsdWF0ZV9leHByZXNzaW9u IChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICB2YXIgPSB2YXJvYmpf Z2V0X2hhbmRsZSAoYXJndltvcHRpbmRdKTsKICAgICAKICAgIGlmIChmb3JtYXRGb3VuZCkKQEAg LTExNTg5LDcgKzEyODk4LDcgQEAgaW5kZXggMGNmMDNkOS4uZTRjYTYyMSAxMDA2NDQKICAKICAg IGlmIChhcmdjICE9IDIpCiAgICAgIGVycm9yIChfKCJtaV9jbWRfdmFyX2Fzc2lnbjogVXNhZ2U6 IE5BTUUgRVhQUkVTU0lPTi4iKSk7Ci1AQCAtNTYzLDcgKzYwMyw5IEBAIG1pX2NtZF92YXJfYXNz aWduIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtNTYzLDcgKzYw Niw5IEBAIG1pX2NtZF92YXJfYXNzaWduIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50 IGFyZ2MpCiAgICBpZiAoIXZhcm9ial9zZXRfdmFsdWUgKHZhciwgZXhwcmVzc2lvbikpCiAgICAg IGVycm9yIChfKCJtaV9jbWRfdmFyX2Fzc2lnbjogQ291bGQgbm90IGFzc2lnbiBleHByZXNzaW9u IHRvIHZhcmlhYmxlIG9iamVjdCIpKTsKICAKQEAgLTExNjAwLDcgKzEyOTA5LDcgQEAgaW5kZXgg MGNmMDNkOS4uZTRjYTYyMSAxMDA2NDQKICB9CiAgCiAgLyogVHlwZSB1c2VkIGZvciBwYXJhbWV0 ZXJzIHBhc3NpbmcgdG8gbWlfY21kX3Zhcl91cGRhdGVfaXRlci4gICovCi1AQCAtNjQ0LDcgKzY4 Niw2IEBAIG1pX2NtZF92YXJfdXBkYXRlIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50 IGFyZ2MpCitAQCAtNjQ0LDcgKzY4OSw2IEBAIG1pX2NtZF92YXJfdXBkYXRlIChjaGFyICpjb21t YW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICAgIH0KICAgIGVsc2UKICAgICAgewpAQCAt MTE2MDgsNyArMTI5MTcsNyBAQCBpbmRleCAwY2YwM2Q5Li5lNGNhNjIxIDEwMDY0NAogICAgICAg IHN0cnVjdCB2YXJvYmogKnZhciA9IHZhcm9ial9nZXRfaGFuZGxlIChuYW1lKTsKICAKICAgICAg ICB2YXJvYmpfdXBkYXRlX29uZSAodmFyLCBwcmludF92YWx1ZXMsIDEgLyogZXhwbGljaXQgKi8p OwotQEAgLTY3MCw2ICs3MTEsNyBAQCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAq dmFyLCBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXMsCitAQCAtNjcwLDYgKzcxNCw3IEBA IHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVz IHByaW50X3ZhbHVlcywKICAgIGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfdXBkYXRl X3Jlc3VsdCwgY2hhbmdlcywgaSwgcik7ICsraSkKICAgICAgewogICAgICAgIGNoYXIgKmRpc3Bs YXlfaGludDsKQEAgLTExNjE2LDcgKzEyOTI1LDcgQEAgaW5kZXggMGNmMDNkOS4uZTRjYTYyMSAx MDA2NDQKICAKICAgICAgICBpZiAobWlfdmVyc2lvbiAodWlvdXQpID4gMSkKICAgICAgICAgIGNs ZWFudXAgPSBtYWtlX2NsZWFudXBfdWlfb3V0X3R1cGxlX2JlZ2luX2VuZCAodWlvdXQsIE5VTEwp OwotQEAgLTY3OCw4ICs3MjAsMTIgQEAgdmFyb2JqX3VwZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmog KnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzLAorQEAgLTY3OCw4ICs3MjMsMTIg QEAgdmFyb2JqX3VwZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1 ZXMgcHJpbnRfdmFsdWVzLAogICAgICAgIHN3aXRjaCAoci0+c3RhdHVzKQogIAl7CiAgCWNhc2Ug VkFST0JKX0lOX1NDT1BFOgpAQCAtMTE2MzEsNyArMTI5NDAsNyBAQCBpbmRleCAwY2YwM2Q5Li5l NGNhNjIxIDEwMDY0NAogIAkgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiaW5fc2NvcGUi LCAidHJ1ZSIpOwogIAkgIGJyZWFrOwogICAgICAgICAgY2FzZSBWQVJPQkpfTk9UX0lOX1NDT1BF OgotQEAgLTY5OSwxMSArNzQ1LDExIEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2Jq ICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKK0BAIC02OTksMTEgKzc0OCwx MSBAQCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHByaW50X3Zh bHVlcyBwcmludF92YWx1ZXMsCiAgCX0KICAKICAgICAgICBpZiAoci0+dHlwZV9jaGFuZ2VkKQpA QCAtMTE2NDgsNyArMTI5NTcsNyBAQCBpbmRleCAwY2YwM2Q5Li5lNGNhNjIxIDEwMDY0NAogIAog ICAgICAgIGRpc3BsYXlfaGludCA9IHZhcm9ial9nZXRfZGlzcGxheV9oaW50ICh2YXIpOwogICAg ICAgIGlmIChkaXNwbGF5X2hpbnQpCi1AQCAtNzEyLDI4ICs3NTgsNTYgQEAgdmFyb2JqX3VwZGF0 ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVz LAorQEAgLTcxMiwyOCArNzYxLDU5IEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2Jq ICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKICAJICB4ZnJlZSAoZGlzcGxh eV9oaW50KTsKICAJfQogIApAQCAtMTE2NTgsMTggKzEyOTY3LDIxIEBAIGluZGV4IDBjZjAzZDku LmU0Y2E2MjEgMTAwNjQ0CiAtCSAgc3RydWN0IHZhcm9iaiAqY2hpbGQ7CiAtCSAgc3RydWN0IGNs ZWFudXAgKmNsZWFudXAgPQogLQkgICAgbWFrZV9jbGVhbnVwX3VpX291dF9saXN0X2JlZ2luX2Vu ZCAodWlvdXQsICJjaGlsZHJlbiIpOworKyAgICAgIGlmICh2YXJvYmpfcHJldHR5X3ByaW50ZWRf cCAodmFyKSkKKysJdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJkeW5hbWljIiwgMSk7CisgCist CSAgVkVDICh2YXJvYmpfcCkqIGNoaWxkcmVuID0gdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHItPnZh cm9iaik7CiArICAgICAgdmFyb2JqX2dldF9jaGlsZF9yYW5nZSAoci0+dmFyb2JqLCAmZnJvbSwg JnRvKTsKICsgICAgICB1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgImhhc19tb3JlIiwKICsJCQl2 YXJvYmpfaGFzX21vcmUgKHItPnZhcm9iaiwgdG8pKTsKICAKLS0JICBWRUMgKHZhcm9ial9wKSog Y2hpbGRyZW4gPSB2YXJvYmpfbGlzdF9jaGlsZHJlbiAoci0+dmFyb2JqKTsKKy0JICBmb3IgKGl4 ID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCBjaGlsZHJlbiwgaXgsIGNoaWxkKTsgKytpeCkK ICsgICAgICBpZiAoci0+bmV3KQogKwl7CiArCSAgaW50IGo7CiArCSAgdmFyb2JqX3AgY2hpbGQ7 CiArCSAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7Ci0gCi0tCSAgZm9yIChpeCA9IDA7IFZFQ19p dGVyYXRlICh2YXJvYmpfcCwgY2hpbGRyZW4sIGl4LCBjaGlsZCk7ICsraXgpCisrCiArCSAgY2xl YW51cCA9IG1ha2VfY2xlYW51cF91aV9vdXRfbGlzdF9iZWdpbl9lbmQgKHVpb3V0LCAibmV3X2No aWxkcmVuIik7CiArCSAgZm9yIChqID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCByLT5uZXcs IGosIGNoaWxkKTsgKytqKQogIAkgICAgewpAQCAtMTE3NDksMjggKzEzMDYxLDE4IEBAIGluZGV4 IDg1YWQwYzQuLmRmYWI0MTEgMTAwNjQ0CiAgLyogRGVzY3JpcHRpb24gb2YgYSBzaW5nbGUgY29t bWFuZC4gKi8KICAKIGRpZmYgLS1naXQgYS9nZGIvbWkvbWktbWFpbi5jIGIvZ2RiL21pL21pLW1h aW4uYwotaW5kZXggNmFhMWQwOC4uNDQ4ZDEwYSAxMDA2NDQKK2luZGV4IDg1N2E1ZDUuLjYxODEw MDIgMTAwNjQ0CiAtLS0gYS9nZGIvbWkvbWktbWFpbi5jCiArKysgYi9nZGIvbWkvbWktbWFpbi5j Ci1AQCAtMTEzMCw2ICsxMTMwLDEwIEBAIG1pX2NtZF9saXN0X2ZlYXR1cmVzIChjaGFyICpjb21t YW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtMTEzMCw3ICsxMTMwLDcgQEAgbWlfY21k X2xpc3RfZmVhdHVyZXMgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKICAg ICAgICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgTlVMTCwgImZyb3plbi12YXJvYmpzIik7 CiAgICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsIE5VTEwsICJwZW5kaW5nLWJyZWFr cG9pbnRzIik7CiAgICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsIE5VTEwsICJ0aHJl YWQtaW5mbyIpOworLSAgICAgIAogKwotKyNpZiBIQVZFX1BZVEhPTgotKyAgICAgIHVpX291dF9m aWVsZF9zdHJpbmcgKHVpb3V0LCBOVUxMLCAicHl0aG9uIik7Ci0rI2VuZGlmCi0gICAgICAgCiAg I2lmIEhBVkVfUFlUSE9OCiAgICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsIE5VTEws ICJweXRob24iKTsKLUBAIC0xMzU0LDYgKzEzNTgsNyBAQCBtaV9jbWRfZXhlY3V0ZSAoc3RydWN0 IG1pX3BhcnNlICpwYXJzZSkKLSAgIGludCBpOwotIAotICAgZnJlZV9hbGxfdmFsdWVzICgpOwot KyAgZnJlZV9hbGxfdHlwZXMgKCk7Ci0gICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwIChudWxsX2Ns ZWFudXAsIE5VTEwpOwotIAotICAgaWYgKHBhcnNlLT5mcmFtZSAhPSAtMSAmJiBwYXJzZS0+dGhy ZWFkID09IC0xKQorICNlbmRpZgogZGlmZiAtLWdpdCBhL2dkYi9taXBzcmVhZC5jIGIvZ2RiL21p cHNyZWFkLmMKIGluZGV4IGE4NDAwM2YuLjkyNGMxYzUgMTAwNjQ0CiAtLS0gYS9nZGIvbWlwc3Jl YWQuYwpAQCAtMTE3ODQsNyArMTMwODYsNyBAQCBpbmRleCBhODQwMDNmLi45MjRjMWM1IDEwMDY0 NAogICAgZGVmYXVsdF9zeW1maWxlX29mZnNldHMsCS8qIHN5bV9vZmZzZXRzOiBkdW1teSBGSVhN RSB0aWwgaW1wbGVtIHN5bSByZWxvYyAqLwogICAgZGVmYXVsdF9zeW1maWxlX3NlZ21lbnRzLAkv KiBzeW1fc2VnbWVudHM6IEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZyb20KIGRpZmYgLS1naXQg YS9nZGIvb2JqZmlsZXMuYyBiL2dkYi9vYmpmaWxlcy5jCi1pbmRleCA5MmRiNjVlLi40ZDM5MTEy IDEwMDY0NAoraW5kZXggM2ZhNjhmNi4uMTBkMmJkMSAxMDA2NDQKIC0tLSBhL2dkYi9vYmpmaWxl cy5jCiArKysgYi9nZGIvb2JqZmlsZXMuYwogQEAgLTUwLDcgKzUwLDYgQEAKQEAgLTExODEyLDkg KzEzMTE0LDkgQEAgaW5kZXggOTJkYjY1ZS4uNGQzOTExMiAxMDA2NDQKICAgIC8qIEJlZm9yZSB0 aGUgc3ltYm9sIHRhYmxlIGNvZGUgd2FzIHJlZG9uZSB0byBtYWtlIGl0IGVhc2llciB0bwogICAg ICAgc2VsZWN0aXZlbHkgbG9hZCBhbmQgcmVtb3ZlIGluZm9ybWF0aW9uIHBhcnRpY3VsYXIgdG8g YSBzcGVjaWZpYwogICAgICAgbGlua2FnZSB1bml0LCBnZGIgdXNlZCB0byBkbyB0aGVzZSB0aGlu Z3Mgd2hlbmV2ZXIgdGhlIG1vbm9saXRoaWMKLUBAIC03MTYsNiArNzE3LDIwIEBAIGhhdmVfcGFy dGlhbF9zeW1ib2xzICh2b2lkKQotIAlyZXR1cm4gMTsKLSAgICAgICB9CitAQCAtNzMwLDYgKzcz MSwyMCBAQCBoYXZlX3BhcnRpYWxfc3ltYm9scyAodm9pZCkKKyAgICAgaWYgKG9iamZpbGVfaGFz X3BhcnRpYWxfc3ltYm9scyAob2ZwKSkKKyAgICAgICByZXR1cm4gMTsKICAgIH0KICsKICsgIC8q IFRyeSBhZ2FpbiwgYWZ0ZXIgcmVhZGluZyBwYXJ0aWFsIHN5bWJvbHMuICBXZSBkbyB0aGlzIGlu IHR3bwpAQCAtMTE4MzQsNyArMTMxMzYsNyBAQCBpbmRleCA5MmRiNjVlLi40ZDM5MTEyIDEwMDY0 NAogIH0KICAKIGRpZmYgLS1naXQgYS9nZGIvb2JqZmlsZXMuaCBiL2dkYi9vYmpmaWxlcy5oCi1p bmRleCBhZWNmOGQ4Li45YTdkNjM1IDEwMDY0NAoraW5kZXggNmFiY2IwZi4uMjEzOTU5MCAxMDA2 NDQKIC0tLSBhL2dkYi9vYmpmaWxlcy5oCiArKysgYi9nZGIvb2JqZmlsZXMuaAogQEAgLTIxMiw2 ICsyMTIsMTEgQEAgc3RydWN0IG9iamZpbGUKQEAgLTExODY1LDcgKzEzMTY3LDcgQEAgaW5kZXgg YWVjZjhkOC4uOWE3ZDYzNSAxMDA2NDQKICAvKiBUaGUgb2JqZWN0IGZpbGUgdGhhdCB0aGUgbWFp biBzeW1ib2wgdGFibGUgd2FzIGxvYWRlZCBmcm9tIChlLmcuIHRoZQogICAgIGFyZ3VtZW50IHRv IHRoZSAic3ltYm9sLWZpbGUiIG9yICJmaWxlIiBjb21tYW5kKS4gICovCiAgCi1AQCAtNTU0LDYg KzU2OCwxMyBAQCBleHRlcm4gdm9pZCBnZGJfYmZkX3VucmVmIChzdHJ1Y3QgYmZkICphYmZkKTsK K0BAIC01NTksNiArNTczLDEzIEBAIGV4dGVybiB2b2lkIGdkYl9iZmRfdW5yZWYgKHN0cnVjdCBi ZmQgKmFiZmQpOwogICAgQUxMX09CSkZJTEVTIChvYmpmaWxlKQkgXAogICAgICBBTExfT0JKRklM RV9QU1lNVEFCUyAob2JqZmlsZSwgcCkKICAKQEAgLTEzMjEwLDExICsxNDUxMiwxMSBAQCBpbmRl eCAwMDAwMDAwLi5kZWJiM2JiCiArCXJldHVybiB3YW50ZWQgPT0gZm91bmQKICsKICtJblNjb3Bl ICgpCi1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24tYmxvY2suYyBiL2dkYi9weXRob24v cHl0aG9uLWJsb2NrLmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LWJsb2NrLmMgYi9nZGIv cHl0aG9uL3B5LWJsb2NrLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAwLi44 MDE5ZTlkCiAtLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1ibG9jay5jCisr KysgYi9nZGIvcHl0aG9uL3B5LWJsb2NrLmMKIEBAIC0wLDAgKzEsMjY1IEBACiArLyogUHl0aG9u IGludGVyZmFjZSB0byBibG9ja3MuCiArCkBAIC0xMzQ4MSwxMSArMTQ3ODMsMTEgQEAgaW5kZXgg MDAwMDAwMC4uODAxOWU5ZAogKyAgYmxweV9ibG9ja19zeW1zX2l0ZXJuZXh0LAkgIC8qIHRwX2l0 ZXJuZXh0ICovCiArICAwCQkJCSAgLyogdHBfbWV0aG9kcyAqLwogK307Ci1kaWZmIC0tZ2l0IGEv Z2RiL3B5dGhvbi9weXRob24tYnJlYWtwb2ludC5jIGIvZ2RiL3B5dGhvbi9weXRob24tYnJlYWtw b2ludC5jCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS1icmVha3BvaW50LmMgYi9nZGIvcHl0 aG9uL3B5LWJyZWFrcG9pbnQuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAu LmFmYTk1MjYKIC0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9weXRob24vcHl0aG9uLWJyZWFrcG9p bnQuYworKysrIGIvZ2RiL3B5dGhvbi9weS1icmVha3BvaW50LmMKIEBAIC0wLDAgKzEsNjY1IEBA CiArLyogUHl0aG9uIGludGVyZmFjZSB0byBicmVha3BvaW50cwogKwpAQCAtMTQxNTIsMTAgKzE1 NDU0LDEwIEBAIGluZGV4IDAwMDAwMDAuLmFmYTk1MjYKICsgIDAsCQkJCSAgLyogdHBfbWVtYmVy cyAqLwogKyAgYnJlYWtwb2ludF9vYmplY3RfZ2V0c2V0CSAgLyogdHBfZ2V0c2V0ICovCiArfTsK LWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1jbWQuYyBiL2dkYi9weXRob24vcHl0aG9u LWNtZC5jCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS1jbWQuYyBiL2dkYi9weXRob24vcHkt Y21kLmMKIGluZGV4IDUyOGFjYTYuLjA0YjNmZDEgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5 dGhvbi1jbWQuYwotKysrIGIvZ2RiL3B5dGhvbi9weXRob24tY21kLmMKKy0tLSBhL2dkYi9weXRo b24vcHktY21kLmMKKysrKyBiL2dkYi9weXRob24vcHktY21kLmMKIEBAIC00OSw4ICs0OSw3IEBA IHN0YXRpYyBzdHJ1Y3QgY21kcHlfY29tcGxldGVyIGNvbXBsZXRlcnNbXSA9CiAgCiAgI2RlZmlu ZSBOX0NPTVBMRVRFUlMgKHNpemVvZiAoY29tcGxldGVycykgLyBzaXplb2YgKGNvbXBsZXRlcnNb MF0pKQpAQCAtMTQyMTcsMTAgKzE1NTE5LDEwIEBAIGluZGV4IDUyOGFjYTYuLjA0YjNmZDEgMTAw NjQ0CiAgICBpZiAoISBjbWRfbmFtZSkKICAgICAgcmV0dXJuIC0xOwogIAotZGlmZiAtLWdpdCBh L2dkYi9weXRob24vcHl0aG9uLWZyYW1lLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi1mcmFtZS5jCitk aWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS1mcmFtZS5jIGIvZ2RiL3B5dGhvbi9weS1mcmFtZS5j CiBpbmRleCAyNzk0MTVjLi41ZDhjZTBhIDEwMDY0NAotLS0tIGEvZ2RiL3B5dGhvbi9weXRob24t ZnJhbWUuYwotKysrIGIvZ2RiL3B5dGhvbi9weXRob24tZnJhbWUuYworLS0tIGEvZ2RiL3B5dGhv bi9weS1mcmFtZS5jCisrKysgYi9nZGIvcHl0aG9uL3B5LWZyYW1lLmMKIEBAIC0yMDIsMTAgKzIw Miw1OSBAQCBmcmFweV9wYyAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgcmV0 dXJuIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nTG9uZyAocGMpOwogIH0KQEAgLTE0NDA1LDExICsx NTcwNywxMSBAQCBpbmRleCAyNzk0MTVjLi41ZDhjZTBhIDEwMDY0NAogICAge05VTEx9ICAvKiBT ZW50aW5lbCAqLwogIH07CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24taG9va3Mu YyBiL2dkYi9weXRob24vcHl0aG9uLWhvb2tzLmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5 LWhvb2tzLmMgYi9nZGIvcHl0aG9uL3B5LWhvb2tzLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBp bmRleCAwMDAwMDAwLi5hMzE0MGJjCiAtLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9uL3B5 dGhvbi1ob29rcy5jCisrKysgYi9nZGIvcHl0aG9uL3B5LWhvb2tzLmMKIEBAIC0wLDAgKzEsNTAg QEAKICsvKiBOb3RpZmljYXRpb25zIGZyb20gZ2RiIHRvIFB5dGhvbgogKwpAQCAtMTQ0NjEsMTEg KzE1NzYzLDExIEBAIGluZGV4IDAwMDAwMDAuLmEzMTQwYmMKICsgIFB5X0RFQ1JFRiAoaG9va3Mp OwogKyAgcmV0dXJuIHJlc3VsdDsKICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24t aW5mZXJpb3IuYyBiL2dkYi9weXRob24vcHl0aG9uLWluZmVyaW9yLmMKK2RpZmYgLS1naXQgYS9n ZGIvcHl0aG9uL3B5LWluZmVyaW9yLmMgYi9nZGIvcHl0aG9uL3B5LWluZmVyaW9yLmMKIG5ldyBm aWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAwLi41ZTkwY2MyCiAtLS0gL2Rldi9udWxsCi0r KysgYi9nZGIvcHl0aG9uL3B5dGhvbi1pbmZlcmlvci5jCisrKysgYi9nZGIvcHl0aG9uL3B5LWlu ZmVyaW9yLmMKIEBAIC0wLDAgKzEsOTI2IEBACiArLyogUHl0aG9uIGludGVyZmFjZSB0byBpbmZl cmlvcnMuCiArCkBAIC0xNTM5MywxMSArMTY2OTUsMTEgQEAgaW5kZXggMDAwMDAwMC4uNWU5MGNj MgogKyAgMCwJCQkJICAvKiB0cF9hbGxvYyAqLwogKyAgUHlUeXBlX0dlbmVyaWNOZXcJCSAgLyog dHBfbmV3ICovCiArfTsKLWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1pbmZ0aHJlYWQu YyBiL2dkYi9weXRob24vcHl0aG9uLWluZnRocmVhZC5jCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhv bi9weS1pbmZ0aHJlYWQuYyBiL2dkYi9weXRob24vcHktaW5mdGhyZWFkLmMKIG5ldyBmaWxlIG1v ZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAwLi4yMWU0ZWFiCiAtLS0gL2Rldi9udWxsCi0rKysgYi9n ZGIvcHl0aG9uL3B5dGhvbi1pbmZ0aHJlYWQuYworKysrIGIvZ2RiL3B5dGhvbi9weS1pbmZ0aHJl YWQuYwogQEAgLTAsMCArMSwyODUgQEAKICsvKiBQeXRob24gaW50ZXJmYWNlIHRvIGluZmVyaW9y IHRocmVhZHMuCiArCkBAIC0xNTY4NCwxNDkgKzE2OTg2LDExIEBAIGluZGV4IDAwMDAwMDAuLjIx ZTRlYWIKICsgIDAsCQkJCSAgLyogdHBfaW5pdCAqLwogKyAgMAkJCQkgIC8qIHRwX2FsbG9jICov CiArfTsKLWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oIGIvZ2RiL3B5 dGhvbi9weXRob24taW50ZXJuYWwuaAotaW5kZXggNjdhNzhhZi4uNDc2NjJkOSAxMDA2NDQKLS0t LSBhL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKLSsrKyBiL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmgKLUBAIC02MSwzMyArNjEsNzYgQEAgdHlwZWRlZiBpbnQgUHlfc3NpemVfdDsK LSAjZGVmaW5lIFB5RXZhbF9SZWxlYXNlTG9jaygpIDAKLSAjZW5kaWYKLSAKLSsjaW5jbHVkZSAi Y29tbWFuZC5oIgotKwotK3N0cnVjdCBibG9jazsKLStzdHJ1Y3Qgc3ltYm9sOwotK3N0cnVjdCBz eW10YWJfYW5kX2xpbmU7Ci0gc3RydWN0IHZhbHVlOwotIHN0cnVjdCBsYW5ndWFnZV9kZWZuOwot IAotIGV4dGVybiBQeU9iamVjdCAqZ2RiX21vZHVsZTsKLStleHRlcm4gUHlUeXBlT2JqZWN0IGJs b2NrX29iamVjdF90eXBlOwotIGV4dGVybiBQeVR5cGVPYmplY3QgdmFsdWVfb2JqZWN0X3R5cGU7 Ci0rZXh0ZXJuIFB5VHlwZU9iamVjdCBzeW1ib2xfb2JqZWN0X3R5cGU7Ci0rCi0rLyogVXNlZCBp biBweXRob24taW5mZXJpb3IuYy4gICovCi0rdHlwZWRlZiBzdHJ1Y3QKLSt7Ci0rICBQeU9iamVj dF9IRUFECi0rCi0rICAvKiBUaGUgdGhyZWFkIHdlIHJlcHJlc2VudC4gICovCi0rICBzdHJ1Y3Qg dGhyZWFkX2luZm8gKnRocmVhZDsKLSsKLSsgIC8qIFRoZSBJbmZlcmlvciBvYmplY3QgdG8gd2hp Y2ggdGhpcyB0aHJlYWQgYmVsb25ncy4gICovCi0rICBQeU9iamVjdCAqaW5mX29iajsKLSt9IHRo cmVhZF9vYmplY3Q7Ci0gCi0gUHlPYmplY3QgKmdkYnB5X2hpc3RvcnkgKFB5T2JqZWN0ICpzZWxm LCBQeU9iamVjdCAqYXJncyk7Ci0rUHlPYmplY3QgKmdkYnB5X2JyZWFrcG9pbnRzIChQeU9iamVj dCAqLCBQeU9iamVjdCAqKTsKLSBQeU9iamVjdCAqZ2RicHlfZnJhbWVfc3RvcF9yZWFzb25fc3Ry aW5nIChQeU9iamVjdCAqLCBQeU9iamVjdCAqKTsKLStQeU9iamVjdCAqZ2RicHlfbG9va3VwX3N5 bWJvbCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3cpOwotIFB5 T2JqZWN0ICpnZGJweV9zZWxlY3RlZF9mcmFtZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICph cmdzKTsKLStQeU9iamVjdCAqZ2RicHlfYmxvY2tfZm9yX3BjIChQeU9iamVjdCAqc2VsZiwgUHlP YmplY3QgKmFyZ3MpOwotIFB5T2JqZWN0ICpnZGJweV9sb29rdXBfdHlwZSAoUHlPYmplY3QgKnNl bGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3cpOwotK1B5T2JqZWN0ICpnZGJweV9pbmZl cmlvcnMgKFB5T2JqZWN0ICp1bnVzZWQsIFB5T2JqZWN0ICp1bnVzZWQyKTsKLStQeU9iamVjdCAq Z2RicHlfc2VsZWN0ZWRfdGhyZWFkIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpOwot IAotK1B5T2JqZWN0ICpzeW10YWJfYW5kX2xpbmVfdG9fc2FsX29iamVjdCAoc3RydWN0IHN5bXRh Yl9hbmRfbGluZSBzYWwpOwotK1B5T2JqZWN0ICpzeW10YWJfdG9fc3ltdGFiX29iamVjdCAoc3Ry dWN0IHN5bXRhYiAqc3ltdGFiKTsKLStQeU9iamVjdCAqc3ltYm9sX3RvX3N5bWJvbF9vYmplY3Qg KHN0cnVjdCBzeW1ib2wgKnN5bSk7Ci0rUHlPYmplY3QgKmJsb2NrX3RvX2Jsb2NrX29iamVjdCAo c3RydWN0IGJsb2NrICpibG9jayk7Ci0gUHlPYmplY3QgKnZhbHVlX3RvX3ZhbHVlX29iamVjdCAo c3RydWN0IHZhbHVlICp2KTsKLSBQeU9iamVjdCAqdHlwZV90b190eXBlX29iamVjdCAoc3RydWN0 IHR5cGUgKik7Ci0gUHlPYmplY3QgKm9iamZpbGVfdG9fb2JqZmlsZV9vYmplY3QgKHN0cnVjdCBv YmpmaWxlICopOwotK1B5T2JqZWN0ICpmcmFtZV9pbmZvX3RvX2ZyYW1lX29iamVjdCAoc3RydWN0 IGZyYW1lX2luZm8gKmZyYW1lKTsKLSt0aHJlYWRfb2JqZWN0ICpjcmVhdGVfdGhyZWFkX29iamVj dCAoc3RydWN0IHRocmVhZF9pbmZvICp0cCk7Ci0rdGhyZWFkX29iamVjdCAqZmluZF90aHJlYWRf b2JqZWN0IChwdGlkX3QgcHRpZCk7Ci0rUHlPYmplY3QgKmZpbmRfaW5mZXJpb3Jfb2JqZWN0IChp bnQgcGlkKTsKLSAKLSBQeU9iamVjdCAqb2JqZnB5X2dldF9wcmludGVycyAoUHlPYmplY3QgKiwg dm9pZCAqKTsKLSAKLStzdHJ1Y3QgYmxvY2sgKmJsb2NrX29iamVjdF90b19ibG9jayAoUHlPYmpl Y3QgKm9iaik7Ci0rc3RydWN0IHN5bWJvbCAqc3ltYm9sX29iamVjdF90b19zeW1ib2wgKFB5T2Jq ZWN0ICpvYmopOwotIHN0cnVjdCB2YWx1ZSAqdmFsdWVfb2JqZWN0X3RvX3ZhbHVlIChQeU9iamVj dCAqc2VsZik7Ci0gc3RydWN0IHZhbHVlICpjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9i amVjdCAqb2JqKTsKLSBzdHJ1Y3QgdHlwZSAqdHlwZV9vYmplY3RfdG9fdHlwZSAoUHlPYmplY3Qg Km9iaik7Ci0gCi0rUHlPYmplY3QgKmdkYnB5X2dldF9ob29rX2Z1bmN0aW9uIChjb25zdCBjaGFy ICopOwotKwotIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQpOwotK3ZvaWQgZ2Ri cHlfaW5pdGlhbGl6ZV9icmVha3BvaW50cyAodm9pZCk7Ci0gdm9pZCBnZGJweV9pbml0aWFsaXpl X2ZyYW1lcyAodm9pZCk7Ci0rdm9pZCBnZGJweV9pbml0aWFsaXplX3N5bXRhYnMgKHZvaWQpOwot IHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9jb21tYW5kcyAodm9pZCk7Ci0rdm9pZCBnZGJweV9pbml0 aWFsaXplX3N5bWJvbHMgKHZvaWQpOwotIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV90eXBlcyAodm9p ZCk7Ci0rdm9pZCBnZGJweV9pbml0aWFsaXplX2Jsb2NrcyAodm9pZCk7Ci0gdm9pZCBnZGJweV9p bml0aWFsaXplX2Z1bmN0aW9ucyAodm9pZCk7Ci0gdm9pZCBnZGJweV9pbml0aWFsaXplX29iamZp bGUgKHZvaWQpOwotK3ZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9wYXJhbWV0ZXJzICh2b2lkKTsKLSt2 b2lkIGdkYnB5X2luaXRpYWxpemVfdGhyZWFkICh2b2lkKTsKLSt2b2lkIGdkYnB5X2luaXRpYWxp emVfaW5mZXJpb3IgKHZvaWQpOwotIAotIHN0cnVjdCBjbGVhbnVwICptYWtlX2NsZWFudXBfcHlf ZGVjcmVmIChQeU9iamVjdCAqcHkpOwotIAotQEAgLTk3LDYgKzE0MCwxMiBAQCBzdHJ1Y3QgY2xl YW51cCAqZW5zdXJlX3B5dGhvbl9lbnYgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAotIGV4dGVy biBzdHJ1Y3QgZ2RiYXJjaCAqcHl0aG9uX2dkYmFyY2g7Ci0gZXh0ZXJuIGNvbnN0IHN0cnVjdCBs YW5ndWFnZV9kZWZuICpweXRob25fbGFuZ3VhZ2U7Ci0gCi0rY2hhciAqZ2RicHlfcGFyc2VfY29t bWFuZF9uYW1lIChjaGFyICp0ZXh0LAotKwkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqKipi YXNlX2xpc3QsCi0rCQkJCXN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICoqc3RhcnRfbGlzdCk7Ci0r Ci0rUHlPYmplY3QgKmdkYnB5X3BhcmFtZXRlcl92YWx1ZSAoZW51bSB2YXJfdHlwZXMsIHZvaWQg Kik7Ci0rCi0gLyogVXNlIHRoaXMgYWZ0ZXIgYSBUUllfRVhDRVBUIHRvIHRocm93IHRoZSBhcHBy b3ByaWF0ZSBQeXRob24KLSAgICBleGNlcHRpb24uICAqLwotICNkZWZpbmUgR0RCX1BZX0hBTkRM RV9FWENFUFRJT04oRXhjZXB0aW9uKQkJCQlcCi1AQCAtMTA3LDYgKzE1NiwxOSBAQCBleHRlcm4g Y29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKnB5dGhvbl9sYW5ndWFnZTsKLSAJCQkgICAgICIl cyIsIEV4Y2VwdGlvbi5tZXNzYWdlKTsJCQlcCi0gICAgIH0gd2hpbGUgKDApCi0gCi0rLyogVXNl IHRoaXMgYWZ0ZXIgYSBUUllfRVhDRVBUIHRvIHRocm93IHRoZSBhcHByb3ByaWF0ZSBQeXRob24K LSsgICBleGNlcHRpb24uICBUaGlzIG1hY3JvIGlzIGZvciB1c2UgaW5zaWRlIHNldHRlciBmdW5j dGlvbnMuICAqLwotKyNkZWZpbmUgR0RCX1BZX1NFVF9IQU5ETEVfRVhDRVBUSU9OKEV4Y2VwdGlv bikJCQkJXAotKyAgICBkbyB7CQkJCQkJCQlcCi0rICAgICAgaWYgKEV4Y2VwdGlvbi5yZWFzb24g PCAwKQkJCQkJCVwKLSsgICAgICAgIHsJCQkJCQkJCVwKLSsJICBQeUVycl9Gb3JtYXQgKEV4Y2Vw dGlvbi5yZWFzb24gPT0gUkVUVVJOX1FVSVQJCQlcCi0rCQkJPyBQeUV4Y19LZXlib2FyZEludGVy cnVwdCA6IFB5RXhjX1J1bnRpbWVFcnJvciwgXAotKwkJCSIlcyIsIEV4Y2VwdGlvbi5tZXNzYWdl KTsJCQlcCi0rCSAgcmV0dXJuIC0xOwkJCQkJCQlcCi0rCX0JCQkJCQkJCVwKLSsgICAgfSB3aGls ZSAoMCkKLSsKLSAKLSB2b2lkIGdkYnB5X3ByaW50X3N0YWNrICh2b2lkKTsKLSAKLUBAIC0xMTgs MTcgKzE4MCwyMiBAQCBjaGFyICpweXRob25fc3RyaW5nX3RvX2hvc3Rfc3RyaW5nIChQeU9iamVj dCAqb2JqKTsKLSBQeU9iamVjdCAqdGFyZ2V0X3N0cmluZ190b191bmljb2RlIChjb25zdCBnZGJf Ynl0ZSAqc3RyLCBpbnQgbGVuZ3RoKTsKLSBpbnQgZ2RicHlfaXNfc3RyaW5nIChQeU9iamVjdCAq b2JqKTsKLSAKLStpbnQgZ2RicHlfaXNfdmFsdWVfb2JqZWN0IChQeU9iamVjdCAqb2JqKTsKLSsK LSAvKiBOb3RlIHRoYXQgdGhlc2UgYXJlIGRlY2xhcmVkIGhlcmUsIGFuZCBub3QgaW4gcHl0aG9u Lmggd2l0aCB0aGUKLSAgICBvdGhlciBwcmV0dHktcHJpbnRlciBmdW5jdGlvbnMsIGJlY2F1c2Ug dGhleSByZWZlciB0byBQeU9iamVjdC4gICovCi0gUHlPYmplY3QgKmFwcGx5X3Zhcm9ial9wcmV0 dHlfcHJpbnRlciAoUHlPYmplY3QgKnByaW50X29iaiwKLSAJCQkJICAgICAgIHN0cnVjdCB2YWx1 ZSAqKnJlcGxhY2VtZW50KTsKLSBQeU9iamVjdCAqZ2RicHlfZ2V0X3Zhcm9ial9wcmV0dHlfcHJp bnRlciAoc3RydWN0IHZhbHVlICp2YWx1ZSk7Ci0rUHlPYmplY3QgKmdkYnB5X2luc3RhbnRpYXRl X3ByaW50ZXIgKFB5T2JqZWN0ICpjb25zLCBQeU9iamVjdCAqdmFsdWUpOwotIGNoYXIgKmdkYnB5 X2dldF9kaXNwbGF5X2hpbnQgKFB5T2JqZWN0ICpwcmludGVyKTsKLSBQeU9iamVjdCAqZ2RicHlf ZGVmYXVsdF92aXN1YWxpemVyIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpOwotIAot LWV4dGVybiBQeU9iamVjdCAqZ2RicHlfZG9jX2NzdDsKLSBleHRlcm4gUHlPYmplY3QgKmdkYnB5 X2NoaWxkcmVuX2NzdDsKLSBleHRlcm4gUHlPYmplY3QgKmdkYnB5X3RvX3N0cmluZ19jc3Q7Ci0g ZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV9kaXNwbGF5X2hpbnRfY3N0OwotK2V4dGVybiBQeU9iamVj dCAqZ2RicHlfZG9jX2NzdDsKLSsKLStpbnQgZ2V0X2FkZHJfZnJvbV9weXRob24gKFB5T2JqZWN0 ICpvYmosIENPUkVfQUREUiAqYWRkcik7Ci0gCi0gI2VuZGlmIC8qIEdEQl9QWVRIT05fSU5URVJO QUxfSCAqLwotZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLW1lbWJ1Zi5jIGIvZ2RiL3B5 dGhvbi9weXRob24tbWVtYnVmLmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LW1lbWJ1Zi5j IGIvZ2RiL3B5dGhvbi9weS1tZW1idWYuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAw MDAwMDAuLjdiYzI5NGMKIC0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9weXRob24vcHl0aG9uLW1l bWJ1Zi5jCisrKysgYi9nZGIvcHl0aG9uL3B5LW1lbWJ1Zi5jCiBAQCAtMCwwICsxLDI2OCBAQAog Ky8qIFB5dGhvbiBpbnRlcmZhY2UgdG8gdGhlIGluZmVyaW9yIG1lbW9yeS4KICsKQEAgLTE2MDk2 LDExICsxNzI2MCwxMSBAQCBpbmRleCAwMDAwMDAwLi43YmMyOTRjCiArICBQeV9JTkNSRUYgKCZt ZW1idWZfb2JqZWN0X3R5cGUpOwogKyAgUHlNb2R1bGVfQWRkT2JqZWN0IChnZGJfbW9kdWxlLCAi TWVtYnVmIiwgKFB5T2JqZWN0ICopICZtZW1idWZfb2JqZWN0X3R5cGUpOwogK30KLWRpZmYgLS1n aXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1wYXJhbS5jIGIvZ2RiL3B5dGhvbi9weXRob24tcGFyYW0u YworZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktcGFyYW0uYyBiL2dkYi9weXRob24vcHktcGFy YW0uYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjFmNTkxYTgKIC0tLSAv ZGV2L251bGwKLSsrKyBiL2dkYi9weXRob24vcHl0aG9uLXBhcmFtLmMKKysrKyBiL2dkYi9weXRo b24vcHktcGFyYW0uYwogQEAgLTAsMCArMSw2MDYgQEAKICsvKiBnZGIgcGFyYW1ldGVycyBpbXBs ZW1lbnRlZCBpbiBQeXRob24KICsKQEAgLTE2NzA4LDEwICsxNzg3MiwxMCBAQCBpbmRleCAwMDAw MDAwLi4xZjU5MWE4CiArICAwLAkJCQkgIC8qIHRwX2FsbG9jICovCiArICBQeVR5cGVfR2VuZXJp Y05ldwkJICAvKiB0cF9uZXcgKi8KICt9OwotZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9u LXByZXR0eXByaW50LmMgYi9nZGIvcHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5jCitkaWZmIC0t Z2l0IGEvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jIGIvZ2RiL3B5dGhvbi9weS1wcmV0dHlw cmludC5jCiBpbmRleCA1ZDY5NmM4Li5hNjM0OGJhIDEwMDY0NAotLS0tIGEvZ2RiL3B5dGhvbi9w eXRob24tcHJldHR5cHJpbnQuYwotKysrIGIvZ2RiL3B5dGhvbi9weXRob24tcHJldHR5cHJpbnQu YworLS0tIGEvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCisrKysgYi9nZGIvcHl0aG9uL3B5 LXByZXR0eXByaW50LmMKIEBAIC0xMjEsNiArMTIxLDcgQEAgZmluZF9wcmV0dHlfcHJpbnRlciAo UHlPYmplY3QgKnZhbHVlKQogICAgCiAgICByZXR1cm4gZnVuY3Rpb247CkBAIC0xNjc1NSwxMSAr MTc5MTksMTEgQEAgaW5kZXggNWQ2OTZjOC4uYTYzNDhiYSAxMDA2NDQKICAgIHZhbF9vYmogPSB2 YWx1ZV90b192YWx1ZV9vYmplY3QgKHZhbHVlKTsKICAgIGlmICghIHZhbF9vYmopCiAgICAgIHJl dHVybiBOVUxMOwotZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLXN5bWJvbC5jIGIvZ2Ri L3B5dGhvbi9weXRob24tc3ltYm9sLmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LXN5bWJv bC5jIGIvZ2RiL3B5dGhvbi9weS1zeW1ib2wuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4 IDAwMDAwMDAuLjAzZDQzYzEKIC0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9weXRob24vcHl0aG9u LXN5bWJvbC5jCisrKysgYi9nZGIvcHl0aG9uL3B5LXN5bWJvbC5jCiBAQCAtMCwwICsxLDMzNiBA QAogKy8qIFB5dGhvbiBpbnRlcmZhY2UgdG8gc3ltYm9scy4KICsKQEAgLTE3MDk3LDExICsxODI2 MSwxMSBAQCBpbmRleCAwMDAwMDAwLi4wM2Q0M2MxCiArICAwLAkJCQkgIC8qIHRwX21lbWJlcnMg Ki8KICsgIHN5bWJvbF9vYmplY3RfZ2V0c2V0CQkgIC8qIHRwX2dldHNldCAqLwogK307Ci1kaWZm IC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24tc3ltdGFiLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi1z eW10YWIuYworZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktc3ltdGFiLmMgYi9nZGIvcHl0aG9u L3B5LXN5bXRhYi5jCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uODMwZTU4 NgogLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3B5dGhvbi9weXRob24tc3ltdGFiLmMKKysrKyBi L2dkYi9weXRob24vcHktc3ltdGFiLmMKIEBAIC0wLDAgKzEsMzIyIEBACiArLyogUHl0aG9uIGlu dGVyZmFjZSB0byBzeW1ib2wgdGFibGVzLgogKwpAQCAtMTc0MjUsMTAgKzE4NTg5LDEwIEBAIGlu ZGV4IDAwMDAwMDAuLjgzMGU1ODYKICsgIDAsCQkJCSAgLyogdHBfbWVtYmVycyAqLwogKyAgc2Fs X29iamVjdF9nZXRzZXQJCSAgLyogdHBfZ2V0c2V0ICovCiArfTsKLWRpZmYgLS1naXQgYS9nZGIv cHl0aG9uL3B5dGhvbi10eXBlLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi10eXBlLmMKK2RpZmYgLS1n aXQgYS9nZGIvcHl0aG9uL3B5LXR5cGUuYyBiL2dkYi9weXRob24vcHktdHlwZS5jCiBpbmRleCBm MjMyNDhjLi5iNDFkODY4IDEwMDY0NAotLS0tIGEvZ2RiL3B5dGhvbi9weXRob24tdHlwZS5jCi0r KysgYi9nZGIvcHl0aG9uL3B5dGhvbi10eXBlLmMKKy0tLSBhL2dkYi9weXRob24vcHktdHlwZS5j CisrKysgYi9nZGIvcHl0aG9uL3B5LXR5cGUuYwogQEAgLTI3LDYgKzI3LDggQEAKICAjaW5jbHVk ZSAiZGVtYW5nbGUuaCIKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKQEAgLTE3NzM0LDEwICsxODg5 OCwxMCBAQCBpbmRleCBmMjMyNDhjLi5iNDFkODY4IDEwMDY0NAogIH0KICAKICAMCi1kaWZmIC0t Z2l0IGEvZ2RiL3B5dGhvbi9weXRob24tdXRpbHMuYyBiL2dkYi9weXRob24vcHl0aG9uLXV0aWxz LmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LXV0aWxzLmMgYi9nZGIvcHl0aG9uL3B5LXV0 aWxzLmMKIGluZGV4IDQ5YzA0MzcuLjg0YTQ3NmUgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5 dGhvbi11dGlscy5jCi0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi11dGlscy5jCistLS0gYS9nZGIv cHl0aG9uL3B5LXV0aWxzLmMKKysrKyBiL2dkYi9weXRob24vcHktdXRpbHMuYwogQEAgLTE5LDYg KzE5LDcgQEAKICAKICAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtMTc3OTUsMTAgKzE4OTU5LDEwIEBA IGluZGV4IDQ5YzA0MzcuLjg0YTQ3NmUgMTAwNjQ0CiArCiArICByZXR1cm4gMTsKICt9Ci1kaWZm IC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24tdmFsdWUuYyBiL2dkYi9weXRob24vcHl0aG9uLXZh bHVlLmMKLWluZGV4IGM0MjE3ZDUuLmI5OTM1MTUgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5 dGhvbi12YWx1ZS5jCi0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCitkaWZmIC0tZ2l0 IGEvZ2RiL3B5dGhvbi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCitpbmRleCAz ZDg4YWEzLi5iOTkzNTE1IDEwMDY0NAorLS0tIGEvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCisrKysg Yi9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKIEBAIC0yNSw2ICsyNSw3IEBACiAgI2luY2x1ZGUgImxh bmd1YWdlLmgiCiAgI2luY2x1ZGUgImRmcC5oIgpAQCAtMTc4MTgsMzcgKzE4OTgyLDcgQEAgaW5k ZXggYzQyMTdkNS4uYjk5MzUxNSAxMDA2NDQKICAjZGVmaW5lIGJ1aWx0aW5fdHlwZV9weWJvb2wg XAogICAgbGFuZ3VhZ2VfYm9vbF90eXBlIChweXRob25fbGFuZ3VhZ2UsIHB5dGhvbl9nZGJhcmNo KQogIAotQEAgLTY5Myw3ICs2OTgsMTAgQEAgdmFscHlfcmljaGNvbXBhcmUgKFB5T2JqZWN0ICpz ZWxmLCBQeU9iamVjdCAqb3RoZXIsIGludCBvcCkKLSAgICAgewotICAgICAgIHZhbHVlX290aGVy ID0gY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAob3RoZXIpOwotICAgICAgIGlmICh2YWx1ZV9v dGhlciA9PSBOVUxMKQotLQlyZXR1cm4gTlVMTDsKLSsJewotKwkgIHJlc3VsdCA9IC0xOwotKwkg IGJyZWFrOwotKwl9Ci0gCi0gICAgICAgc3dpdGNoIChvcCkgewotICAgICAgICAgY2FzZSBQeV9M VDoKLUBAIC03MjAsMTEgKzcyOCwxNiBAQCB2YWxweV9yaWNoY29tcGFyZSAoUHlPYmplY3QgKnNl bGYsIFB5T2JqZWN0ICpvdGhlciwgaW50IG9wKQotIAkgIC8qIENhbid0IGhhcHBlbi4gICovCi0g CSAgUHlFcnJfU2V0U3RyaW5nIChQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yLAotIAkJCSAgICJJ bnZhbGlkIG9wZXJhdGlvbiBvbiBnZGIuVmFsdWUuIik7Ci0tCSAgcmV0dXJuIE5VTEw7Ci0rCSAg cmVzdWx0ID0gLTE7Ci0rCSAgYnJlYWs7Ci0gICAgICAgfQotICAgICB9Ci0gICBHREJfUFlfSEFO RExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKLSAKLSsgIC8qIEluIHRoaXMgY2FzZSwgdGhlIFB5dGhv biBleGNlcHRpb24gaGFzIGFscmVhZHkgYmVlbiBzZXQuICAqLwotKyAgaWYgKHJlc3VsdCA8IDAp Ci0rICAgIHJldHVybiBOVUxMOwotKwotICAgaWYgKHJlc3VsdCA9PSAxKQotICAgICBQeV9SRVRV Uk5fVFJVRTsKLSAKLUBAIC04ODMsNyArODk2LDM0IEBAIGNvbnZlcnRfdmFsdWVfZnJvbV9weXRo b24gKFB5T2JqZWN0ICpvYmopCitAQCAtODkxLDcgKzg5NiwzNCBAQCBjb252ZXJ0X3ZhbHVlX2Zy b21fcHl0aG9uIChQeU9iamVjdCAqb2JqKQogIAl7CiAgCSAgTE9OR0VTVCBsID0gUHlMb25nX0Fz TG9uZ0xvbmcgKG9iaik7CiAgCkBAIC0xNzg4NCw3ICsxOTAxOCw3IEBAIGluZGV4IGM0MjE3ZDUu LmI5OTM1MTUgMTAwNjQ0CiAgCSAgICB2YWx1ZSA9IHZhbHVlX2Zyb21fbG9uZ2VzdCAoYnVpbHRp bl90eXBlX3B5bG9uZywgbCk7CiAgCX0KICAgICAgICBlbHNlIGlmIChQeUZsb2F0X0NoZWNrIChv YmopKQotQEAgLTk0Miw2ICs5ODIsMjUgQEAgZ2RicHlfaGlzdG9yeSAoUHlPYmplY3QgKnNlbGYs IFB5T2JqZWN0ICphcmdzKQorQEAgLTk1MCw2ICs5ODIsMjUgQEAgZ2RicHlfaGlzdG9yeSAoUHlP YmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgcmV0dXJuIHZhbHVlX3RvX3ZhbHVlX29i amVjdCAocmVzX3ZhbCk7CiAgfQogIApAQCAtMTc5MTAsNyArMTkwNDQsNyBAQCBpbmRleCBjNDIx N2Q1Li5iOTkzNTE1IDEwMDY0NAogIHZvaWQKICBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAodm9p ZCkKICB7Ci1AQCAtOTUyLDYgKzEwMTEsOCBAQCBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAodm9p ZCkKK0BAIC05NjAsNiArMTAxMSw4IEBAIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKQog ICAgUHlNb2R1bGVfQWRkT2JqZWN0IChnZGJfbW9kdWxlLCAiVmFsdWUiLCAoUHlPYmplY3QgKikg JnZhbHVlX29iamVjdF90eXBlKTsKICAKICAgIHZhbHVlc19pbl9weXRob24gPSBOVUxMOwpAQCAt MTc5MTksMTcgKzE5MDUzLDE1NSBAQCBpbmRleCBjNDIxN2Q1Li5iOTkzNTE1IDEwMDY0NAogIH0K ICAKICAMCi1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24vcHl0 aG9uLmMKLWluZGV4IDI1NGJkMjguLjVhMmE5YWUgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5 dGhvbi5jCi0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCi1AQCAtMjcsNiArMjcsNyBAQAotICNp bmNsdWRlICJvYnNlcnZlci5oIgotICNpbmNsdWRlICJ2YWx1ZS5oIgotICNpbmNsdWRlICJsYW5n dWFnZS5oIgotKyNpbmNsdWRlICJldmVudC1sb29wLmgiCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhv bi9weXRob24taW50ZXJuYWwuaCBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKK2luZGV4 IDY3YTc4YWYuLjQ3NjYyZDkgMTAwNjQ0CistLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5h bC5oCisrKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitAQCAtNjEsMzMgKzYxLDc2 IEBAIHR5cGVkZWYgaW50IFB5X3NzaXplX3Q7CisgI2RlZmluZSBQeUV2YWxfUmVsZWFzZUxvY2so KSAwCisgI2VuZGlmCiAgCi0gI2luY2x1ZGUgPGN0eXBlLmg+CisrI2luY2x1ZGUgImNvbW1hbmQu aCIKKysKKytzdHJ1Y3QgYmxvY2s7Cisrc3RydWN0IHN5bWJvbDsKKytzdHJ1Y3Qgc3ltdGFiX2Fu ZF9saW5lOworIHN0cnVjdCB2YWx1ZTsKKyBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbjsKKyAKKyBleHRl cm4gUHlPYmplY3QgKmdkYl9tb2R1bGU7CisrZXh0ZXJuIFB5VHlwZU9iamVjdCBibG9ja19vYmpl Y3RfdHlwZTsKKyBleHRlcm4gUHlUeXBlT2JqZWN0IHZhbHVlX29iamVjdF90eXBlOworK2V4dGVy biBQeVR5cGVPYmplY3Qgc3ltYm9sX29iamVjdF90eXBlOworKworKy8qIFVzZWQgaW4gcHl0aG9u LWluZmVyaW9yLmMuICAqLworK3R5cGVkZWYgc3RydWN0CisreworKyAgUHlPYmplY3RfSEVBRAor KworKyAgLyogVGhlIHRocmVhZCB3ZSByZXByZXNlbnQuICAqLworKyAgc3RydWN0IHRocmVhZF9p bmZvICp0aHJlYWQ7CisrCisrICAvKiBUaGUgSW5mZXJpb3Igb2JqZWN0IHRvIHdoaWNoIHRoaXMg dGhyZWFkIGJlbG9uZ3MuICAqLworKyAgUHlPYmplY3QgKmluZl9vYmo7CisrfSB0aHJlYWRfb2Jq ZWN0OworIAorIFB5T2JqZWN0ICpnZGJweV9oaXN0b3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmpl Y3QgKmFyZ3MpOworK1B5T2JqZWN0ICpnZGJweV9icmVha3BvaW50cyAoUHlPYmplY3QgKiwgUHlP YmplY3QgKik7CisgUHlPYmplY3QgKmdkYnB5X2ZyYW1lX3N0b3BfcmVhc29uX3N0cmluZyAoUHlP YmplY3QgKiwgUHlPYmplY3QgKik7CisrUHlPYmplY3QgKmdkYnB5X2xvb2t1cF9zeW1ib2wgKFB5 T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KTsKKyBQeU9iamVjdCAq Z2RicHlfc2VsZWN0ZWRfZnJhbWUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncyk7Cisr UHlPYmplY3QgKmdkYnB5X2Jsb2NrX2Zvcl9wYyAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICph cmdzKTsKKyBQeU9iamVjdCAqZ2RicHlfbG9va3VwX3R5cGUgKFB5T2JqZWN0ICpzZWxmLCBQeU9i amVjdCAqYXJncywgUHlPYmplY3QgKmt3KTsKKytQeU9iamVjdCAqZ2RicHlfaW5mZXJpb3JzIChQ eU9iamVjdCAqdW51c2VkLCBQeU9iamVjdCAqdW51c2VkMik7CisrUHlPYmplY3QgKmdkYnB5X3Nl bGVjdGVkX3RocmVhZCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKTsKKyAKKytQeU9i amVjdCAqc3ltdGFiX2FuZF9saW5lX3RvX3NhbF9vYmplY3QgKHN0cnVjdCBzeW10YWJfYW5kX2xp bmUgc2FsKTsKKytQeU9iamVjdCAqc3ltdGFiX3RvX3N5bXRhYl9vYmplY3QgKHN0cnVjdCBzeW10 YWIgKnN5bXRhYik7CisrUHlPYmplY3QgKnN5bWJvbF90b19zeW1ib2xfb2JqZWN0IChzdHJ1Y3Qg c3ltYm9sICpzeW0pOworK1B5T2JqZWN0ICpibG9ja190b19ibG9ja19vYmplY3QgKHN0cnVjdCBi bG9jayAqYmxvY2spOworIFB5T2JqZWN0ICp2YWx1ZV90b192YWx1ZV9vYmplY3QgKHN0cnVjdCB2 YWx1ZSAqdik7CisgUHlPYmplY3QgKnR5cGVfdG9fdHlwZV9vYmplY3QgKHN0cnVjdCB0eXBlICop OworIFB5T2JqZWN0ICpvYmpmaWxlX3RvX29iamZpbGVfb2JqZWN0IChzdHJ1Y3Qgb2JqZmlsZSAq KTsKKytQeU9iamVjdCAqZnJhbWVfaW5mb190b19mcmFtZV9vYmplY3QgKHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSk7CisrdGhyZWFkX29iamVjdCAqY3JlYXRlX3RocmVhZF9vYmplY3QgKHN0cnVj dCB0aHJlYWRfaW5mbyAqdHApOworK3RocmVhZF9vYmplY3QgKmZpbmRfdGhyZWFkX29iamVjdCAo cHRpZF90IHB0aWQpOworK1B5T2JqZWN0ICpmaW5kX2luZmVyaW9yX29iamVjdCAoaW50IHBpZCk7 CisgCisgUHlPYmplY3QgKm9iamZweV9nZXRfcHJpbnRlcnMgKFB5T2JqZWN0ICosIHZvaWQgKik7 CisgCisrc3RydWN0IGJsb2NrICpibG9ja19vYmplY3RfdG9fYmxvY2sgKFB5T2JqZWN0ICpvYmop OworK3N0cnVjdCBzeW1ib2wgKnN5bWJvbF9vYmplY3RfdG9fc3ltYm9sIChQeU9iamVjdCAqb2Jq KTsKKyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX29iamVjdF90b192YWx1ZSAoUHlPYmplY3QgKnNlbGYp OworIHN0cnVjdCB2YWx1ZSAqY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAoUHlPYmplY3QgKm9i aik7Cisgc3RydWN0IHR5cGUgKnR5cGVfb2JqZWN0X3RvX3R5cGUgKFB5T2JqZWN0ICpvYmopOwor IAorK1B5T2JqZWN0ICpnZGJweV9nZXRfaG9va19mdW5jdGlvbiAoY29uc3QgY2hhciAqKTsKKysK KyB2b2lkIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKTsKKyt2b2lkIGdkYnB5X2luaXRp YWxpemVfYnJlYWtwb2ludHMgKHZvaWQpOworIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9mcmFtZXMg KHZvaWQpOworK3ZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9zeW10YWJzICh2b2lkKTsKKyB2b2lkIGdk YnB5X2luaXRpYWxpemVfY29tbWFuZHMgKHZvaWQpOworK3ZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9z eW1ib2xzICh2b2lkKTsKKyB2b2lkIGdkYnB5X2luaXRpYWxpemVfdHlwZXMgKHZvaWQpOworK3Zv aWQgZ2RicHlfaW5pdGlhbGl6ZV9ibG9ja3MgKHZvaWQpOworIHZvaWQgZ2RicHlfaW5pdGlhbGl6 ZV9mdW5jdGlvbnMgKHZvaWQpOworIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9vYmpmaWxlICh2b2lk KTsKKyt2b2lkIGdkYnB5X2luaXRpYWxpemVfcGFyYW1ldGVycyAodm9pZCk7Cisrdm9pZCBnZGJw eV9pbml0aWFsaXplX3RocmVhZCAodm9pZCk7Cisrdm9pZCBnZGJweV9pbml0aWFsaXplX2luZmVy aW9yICh2b2lkKTsKKyAKKyBzdHJ1Y3QgY2xlYW51cCAqbWFrZV9jbGVhbnVwX3B5X2RlY3JlZiAo UHlPYmplY3QgKnB5KTsKKyAKK0BAIC05Nyw2ICsxNDAsMTIgQEAgc3RydWN0IGNsZWFudXAgKmVu c3VyZV9weXRob25fZW52IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKKyBleHRlcm4gc3RydWN0 IGdkYmFyY2ggKnB5dGhvbl9nZGJhcmNoOworIGV4dGVybiBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2Vf ZGVmbiAqcHl0aG9uX2xhbmd1YWdlOworIAorK2NoYXIgKmdkYnB5X3BhcnNlX2NvbW1hbmRfbmFt ZSAoY2hhciAqdGV4dCwKKysJCQkJc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKioqYmFzZV9saXN0 LAorKwkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqKnN0YXJ0X2xpc3QpOworKworK1B5T2Jq ZWN0ICpnZGJweV9wYXJhbWV0ZXJfdmFsdWUgKGVudW0gdmFyX3R5cGVzLCB2b2lkICopOworKwor IC8qIFVzZSB0aGlzIGFmdGVyIGEgVFJZX0VYQ0VQVCB0byB0aHJvdyB0aGUgYXBwcm9wcmlhdGUg UHl0aG9uCisgICAgZXhjZXB0aW9uLiAgKi8KKyAjZGVmaW5lIEdEQl9QWV9IQU5ETEVfRVhDRVBU SU9OKEV4Y2VwdGlvbikJCQkJXAorQEAgLTEwNyw2ICsxNTYsMTkgQEAgZXh0ZXJuIGNvbnN0IHN0 cnVjdCBsYW5ndWFnZV9kZWZuICpweXRob25fbGFuZ3VhZ2U7CisgCQkJICAgICAiJXMiLCBFeGNl cHRpb24ubWVzc2FnZSk7CQkJXAorICAgICB9IHdoaWxlICgwKQorIAorKy8qIFVzZSB0aGlzIGFm dGVyIGEgVFJZX0VYQ0VQVCB0byB0aHJvdyB0aGUgYXBwcm9wcmlhdGUgUHl0aG9uCisrICAgZXhj ZXB0aW9uLiAgVGhpcyBtYWNybyBpcyBmb3IgdXNlIGluc2lkZSBzZXR0ZXIgZnVuY3Rpb25zLiAg Ki8KKysjZGVmaW5lIEdEQl9QWV9TRVRfSEFORExFX0VYQ0VQVElPTihFeGNlcHRpb24pCQkJCVwK KysgICAgZG8gewkJCQkJCQkJXAorKyAgICAgIGlmIChFeGNlcHRpb24ucmVhc29uIDwgMCkJCQkJ CQlcCisrICAgICAgICB7CQkJCQkJCQlcCisrCSAgUHlFcnJfRm9ybWF0IChFeGNlcHRpb24ucmVh c29uID09IFJFVFVSTl9RVUlUCQkJXAorKwkJCT8gUHlFeGNfS2V5Ym9hcmRJbnRlcnJ1cHQgOiBQ eUV4Y19SdW50aW1lRXJyb3IsIFwKKysJCQkiJXMiLCBFeGNlcHRpb24ubWVzc2FnZSk7CQkJXAor KwkgIHJldHVybiAtMTsJCQkJCQkJXAorKwl9CQkJCQkJCQlcCisrICAgIH0gd2hpbGUgKDApCisr CisgCisgdm9pZCBnZGJweV9wcmludF9zdGFjayAodm9pZCk7CisgCitAQCAtMTE4LDE3ICsxODAs MjIgQEAgY2hhciAqcHl0aG9uX3N0cmluZ190b19ob3N0X3N0cmluZyAoUHlPYmplY3QgKm9iaik7 CisgUHlPYmplY3QgKnRhcmdldF9zdHJpbmdfdG9fdW5pY29kZSAoY29uc3QgZ2RiX2J5dGUgKnN0 ciwgaW50IGxlbmd0aCk7CisgaW50IGdkYnB5X2lzX3N0cmluZyAoUHlPYmplY3QgKm9iaik7Cisg CisraW50IGdkYnB5X2lzX3ZhbHVlX29iamVjdCAoUHlPYmplY3QgKm9iaik7CisrCisgLyogTm90 ZSB0aGF0IHRoZXNlIGFyZSBkZWNsYXJlZCBoZXJlLCBhbmQgbm90IGluIHB5dGhvbi5oIHdpdGgg dGhlCisgICAgb3RoZXIgcHJldHR5LXByaW50ZXIgZnVuY3Rpb25zLCBiZWNhdXNlIHRoZXkgcmVm ZXIgdG8gUHlPYmplY3QuICAqLworIFB5T2JqZWN0ICphcHBseV92YXJvYmpfcHJldHR5X3ByaW50 ZXIgKFB5T2JqZWN0ICpwcmludF9vYmosCisgCQkJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKipyZXBs YWNlbWVudCk7CisgUHlPYmplY3QgKmdkYnB5X2dldF92YXJvYmpfcHJldHR5X3ByaW50ZXIgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUpOworK1B5T2JqZWN0ICpnZGJweV9pbnN0YW50aWF0ZV9wcmludGVy IChQeU9iamVjdCAqY29ucywgUHlPYmplY3QgKnZhbHVlKTsKKyBjaGFyICpnZGJweV9nZXRfZGlz cGxheV9oaW50IChQeU9iamVjdCAqcHJpbnRlcik7CisgUHlPYmplY3QgKmdkYnB5X2RlZmF1bHRf dmlzdWFsaXplciAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKTsKKyAKKy1leHRlcm4g UHlPYmplY3QgKmdkYnB5X2RvY19jc3Q7CisgZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV9jaGlsZHJl bl9jc3Q7CisgZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV90b19zdHJpbmdfY3N0OworIGV4dGVybiBQ eU9iamVjdCAqZ2RicHlfZGlzcGxheV9oaW50X2NzdDsKKytleHRlcm4gUHlPYmplY3QgKmdkYnB5 X2RvY19jc3Q7CisrCisraW50IGdldF9hZGRyX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqLCBD T1JFX0FERFIgKmFkZHIpOworIAorICNlbmRpZiAvKiBHREJfUFlUSE9OX0lOVEVSTkFMX0ggKi8K K2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwor aW5kZXggMjU0YmQyOC4uNWEyYTlhZSAxMDA2NDQKKy0tLSBhL2dkYi9weXRob24vcHl0aG9uLmMK KysrKyBiL2dkYi9weXRob24vcHl0aG9uLmMKK0BAIC0yNyw2ICsyNyw3IEBACisgI2luY2x1ZGUg Im9ic2VydmVyLmgiCisgI2luY2x1ZGUgInZhbHVlLmgiCisgI2luY2x1ZGUgImxhbmd1YWdlLmgi CisrI2luY2x1ZGUgImV2ZW50LWxvb3AuaCIKKyAKKyAjaW5jbHVkZSA8Y3R5cGUuaD4KICAKIEBA IC00NSwxMSArNDYsMTggQEAgc3RhdGljIGludCBnZGJweV9hdXRvX2xvYWQgPSAxOwogICNpbmNs dWRlICJjbGkvY2xpLWRlY29kZS5oIgpAQCAtMTg1MzQsMTAgKzE5ODA2LDEwIEBAIGluZGV4IDZj ZmFhODUuLjY4YWFkYzAgMTAwNjQ0CiAgCiAgZXh0ZXJuIGluaXRpYWxpemVfZmlsZV9mdHlwZSBf aW5pdGlhbGl6ZV9zdnI0X3NvbGliOyAvKiAtV21pc3NpbmctcHJvdG90eXBlcyAqLwogZGlmZiAt LWdpdCBhL2dkYi9zb2xpYi5jIGIvZ2RiL3NvbGliLmMKLWluZGV4IGFhZDJkNTkuLmRlZjAyZjgg MTAwNjQ0CitpbmRleCBjN2ZkMGZjLi42ZjMxODUyIDEwMDY0NAogLS0tIGEvZ2RiL3NvbGliLmMK ICsrKyBiL2dkYi9zb2xpYi5jCi1AQCAtMTA2NiwxMyArMTA2NiwxMiBAQCBzaG93X2F1dG9fc29s aWJfYWRkIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAorQEAgLTExMjcsMTMg KzExMjcsMTIgQEAgc2hvd19hdXRvX3NvbGliX2FkZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGlu dCBmcm9tX3R0eSwKICBzdHJ1Y3Qgc3ltYm9sICoKICBzb2xpYl9nbG9iYWxfbG9va3VwIChjb25z dCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJCSAgICAgY29uc3QgY2hhciAqbmFtZSwKQEAg LTE4Njc2LDEwICsxOTk0OCwxMCBAQCBpbmRleCAxYzM3ODAxLi41OTRlYjE2IDEwMDY0NAogIAkg IHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoTlVMTCwgc3ltLCBmcmFtZSwgc3RyZWFtLCA0ICog bnVtX3RhYnMpOwogIAkgIGJyZWFrOwogZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmMgYi9nZGIv c3ltZmlsZS5jCi1pbmRleCA1MTUxOTY2Li5hY2NhNTM3IDEwMDY0NAoraW5kZXggMmYzNDQxYy4u Nzc2MDY2ZCAxMDA2NDQKIC0tLSBhL2dkYi9zeW1maWxlLmMKICsrKyBiL2dkYi9zeW1maWxlLmMK LUBAIC05MjgsNiArOTI4LDE3IEBAIG5ld19zeW1maWxlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLCBpbnQgYWRkX2ZsYWdzKQorQEAgLTkyMSw2ICs5MjEsMTcgQEAgbmV3X3N5bWZp bGVfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCBhZGRfZmxhZ3MpCiAgICBj bGVhcl9jb21wbGFpbnRzICgmc3ltZmlsZV9jb21wbGFpbnRzLCAwLCBhZGRfZmxhZ3MgJiBTWU1G SUxFX1ZFUkJPU0UpOwogIH0KICAKQEAgLTE4Njk3LDcgKzE5OTY5LDcgQEAgaW5kZXggNTE1MTk2 Ni4uYWNjYTUzNyAxMDA2NDQKICAvKiBQcm9jZXNzIGEgc3ltYm9sIGZpbGUsIGFzIGVpdGhlciB0 aGUgbWFpbiBmaWxlIG9yIGFzIGEgZHluYW1pY2FsbHkKICAgICBsb2FkZWQgZmlsZS4KICAKLUBA IC05NjUsMTMgKzk3NiwxNiBAQCBzeW1ib2xfZmlsZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRz IChiZmQgKmFiZmQsCitAQCAtOTU4LDEzICs5NjksMTYgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhf YWRkcnNfb3Jfb2Zmc2V0cyAoYmZkICphYmZkLAogICAgLyogR2l2ZSB1c2VyIGEgY2hhbmNlIHRv IGJ1cnAgaWYgd2UnZCBiZQogICAgICAgaW50ZXJhY3RpdmVseSB3aXBpbmcgb3V0IGFueSBleGlz dGluZyBzeW1ib2xzLiAgKi8KICAKQEAgLTE4NzE2LDE2ICsxOTk4OCwxNiBAQCBpbmRleCA1MTUx OTY2Li5hY2NhNTM3IDEwMDY0NAogICAgZGlzY2FyZF9jbGVhbnVwcyAobXlfY2xlYW51cHMpOwog IAogICAgaWYgKGFkZHJzKQotQEAgLTEwMDcsNiArMTAyMSw4IEBAIHN5bWJvbF9maWxlX2FkZF93 aXRoX2FkZHJzX29yX29mZnNldHMgKGJmZCAqYWJmZCwKK0BAIC05OTcsNiArMTAxMSw4IEBAIHN5 bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMgKGJmZCAqYWJmZCwKICAKICAgIGlm ICgoZmxhZ3MgJiBPQkpGX1JFQUROT1cpIHx8IHJlYWRub3dfc3ltYm9sX2ZpbGVzKQogICAgICB7 CiArICAgICAgcmVxdWlyZV9wYXJ0aWFsX3N5bWJvbHMgKG9iamZpbGUpOwogKwotICAgICAgIGlm ICgoZnJvbV90dHkgfHwgaW5mb192ZXJib3NlKSAmJiBwcmludF9zeW1ib2xfbG9hZGluZykKKyAg ICAgICBpZiAoZnJvbV90dHkgfHwgaW5mb192ZXJib3NlKQogIAl7CiAgCSAgcHJpbnRmX3VuZmls dGVyZWQgKF8oImV4cGFuZGluZyB0byBmdWxsIHN5bWJvbHMuLi4iKSk7Ci1AQCAtMTAyNSw3ICsx MDQxLDcgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0cyAoYmZkICphYmZk LAorQEAgLTEwMTUsNyArMTAzMSw3IEBAIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29m ZnNldHMgKGJmZCAqYWJmZCwKICAgIC8qIElmIHRoZSBmaWxlIGhhcyBpdHMgb3duIHN5bWJvbCB0 YWJsZXMgaXQgaGFzIG5vIHNlcGFyYXRlIGRlYnVnIGluZm8uCiAgICAgICBgLmR5bnN5bScvYC5z eW10YWInIGdvIHRvIE1TWU1CT0xTLCBgLmRlYnVnX2luZm8nIGdvZXMgdG8gU1lNVEFCUy9QU1lN VEFCUy4KICAgICAgIGAuZ251X2RlYnVnbGluaycgbWF5IG5vIGxvbmdlciBiZSBwcmVzZW50IHdp dGggYC5ub3RlLmdudS5idWlsZC1pZCcuICAqLwpAQCAtMTg3MzQsMjEgKzIwMDA2LDIwIEBAIGlu ZGV4IDUxNTE5NjYuLmFjY2E1MzcgMTAwNjQ0CiAgICAgIGRlYnVnZmlsZSA9IGZpbmRfc2VwYXJh dGVfZGVidWdfZmlsZSAob2JqZmlsZSk7CiAgICBpZiAoZGVidWdmaWxlKQogICAgICB7Ci1AQCAt MTA0OSw4ICsxMDY1LDExIEBAIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMg KGJmZCAqYWJmZCwKK0BAIC0xMDM5LDkgKzEwNTUsMTAgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhf YWRkcnNfb3Jfb2Zmc2V0cyAoYmZkICphYmZkLAogICAgICAgIHhmcmVlIChkZWJ1Z2ZpbGUpOwog ICAgICB9CiAgCi0tICBpZiAoIWhhdmVfcGFydGlhbF9zeW1ib2xzICgpICYmICFoYXZlX2Z1bGxf c3ltYm9scyAoKQotLSAgICAgICYmIHByaW50X3N5bWJvbF9sb2FkaW5nKQogKyAgLyogaGFzX2Fu eV9kZWJ1Z19zeW1ib2xzIGlzIG5vdCBmdWxseSBjb21wYXRpYmxlIHdpdGggdGhlIGZvcm1lciBj YWxscyB3aGljaAogKyAgICAgd291bGQganVzdCBiZSBuZWVkbGVzc2x5IGV4cGVuc2l2ZSBoZXJl LiAgKi8KLSsgIGlmICgoZnJvbV90dHkgfHwgaW5mb192ZXJib3NlKSAmJiBwcmludF9zeW1ib2xf bG9hZGluZwotKyAgICAgICYmIChhZGRfZmxhZ3MgJiBTWU1GSUxFX01BSU5MSU5FKQorICAgaWYg KChmcm9tX3R0eSB8fCBpbmZvX3ZlcmJvc2UpCistICAgICAgJiYgIW9iamZpbGVfaGFzX3BhcnRp YWxfc3ltYm9scyAob2JqZmlsZSkKKy0gICAgICAmJiAhb2JqZmlsZV9oYXNfZnVsbF9zeW1ib2xz IChvYmpmaWxlKSkKICsgICAgICAmJiAhaGFzX2FueV9kZWJ1Z19zeW1ib2xzIChvYmpmaWxlKSkK ICAgICAgewogICAgICAgIHdyYXBfaGVyZSAoIiIpOwotICAgICAgIHByaW50Zl91bmZpbHRlcmVk IChfKCIobm8gZGVidWdnaW5nIHN5bWJvbHMgZm91bmQpIikpOwotQEAgLTExNjYsNyArMTE4NSw5 IEBAIHN5bWJvbF9maWxlX2NsZWFyIChpbnQgZnJvbV90dHkpCisgICAgICAgcHJpbnRmX3VuZmls dGVyZWQgKF8oIihubyBkZWJ1Z2dpbmcgc3ltYm9scyBmb3VuZCkuLi4iKSk7CitAQCAtMTE1MCw3 ICsxMTY3LDkgQEAgc3ltYm9sX2ZpbGVfY2xlYXIgKGludCBmcm9tX3R0eSkKICAgICAgIGRlc2Ny aXB0b3JzIGFzIHdlbGwuICAqLwogICAgbm9fc2hhcmVkX2xpYnJhcmllcyAoTlVMTCwgZnJvbV90 dHkpOwogIApAQCAtMTg3NTksMTEgKzIwMDMwLDEyIEBAIGluZGV4IDUxNTE5NjYuLmFjY2E1Mzcg MTAwNjQ0CiAgICBpZiAoZnJvbV90dHkpCiAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCJObyBz eW1ib2wgZmlsZSBub3cuXG4iKSk7CiAgfQotQEAgLTI0MzYsMTMgKzI0NTcsMTUgQEAgcmVyZWFk X3N5bWJvbHMgKHZvaWQpCitAQCAtMjQyMiwxNCArMjQ0MSwxNSBAQCByZXJlYWRfc3ltYm9scyAo dm9pZCkKICAJICAgICAgICAgemVybyBpcyBPSyBzaW5jZSBkYnhyZWFkLmMgYWxzbyBkb2VzIHdo YXQgaXQgbmVlZHMgdG8gZG8gaWYKICAJICAgICAgICAgb2JqZmlsZS0+Z2xvYmFsX3BzeW1ib2xz LnNpemUgaXMgMC4gICovCiAgCSAgICAgICgqb2JqZmlsZS0+c2YtPnN5bV9yZWFkKSAob2JqZmls ZSwgMCk7Ci0tCSAgICAgIGlmICghaGF2ZV9wYXJ0aWFsX3N5bWJvbHMgKCkgJiYgIWhhdmVfZnVs bF9zeW1ib2xzICgpKQorLQkgICAgICBpZiAoIW9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyAo b2JqZmlsZSkKKy0JCSAgJiYgIW9iamZpbGVfaGFzX2Z1bGxfc3ltYm9scyAob2JqZmlsZSkpCiAr CSAgICAgIGlmICghaGFzX2FueV9kZWJ1Z19zeW1ib2xzIChvYmpmaWxlKSkKICAJCXsKICAJCSAg d3JhcF9oZXJlICgiIik7CkBAIC0xODc3Niw3ICsyMDA0OCw3IEBAIGluZGV4IDUxNTE5NjYuLmFj Y2E1MzcgMTAwNjQ0CiAgCSAgICAgIC8qIFdlJ3JlIGRvbmUgcmVhZGluZyB0aGUgc3ltYm9sIGZp bGU7IGZpbmlzaCBvZmYgY29tcGxhaW50cy4gICovCiAgCSAgICAgIGNsZWFyX2NvbXBsYWludHMg KCZzeW1maWxlX2NvbXBsYWludHMsIDAsIDEpOwogIAotQEAgLTI3NDAsNyArMjc2Myw3IEBAIGFs bG9jYXRlX3N5bXRhYiAoY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQor QEAgLTI3MjcsNyArMjc0Nyw3IEBAIGFsbG9jYXRlX3N5bXRhYiAoY2hhciAqZmlsZW5hbWUsIHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIH0KICAKICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKgpA QCAtMTg3ODUsNyArMjAwNTcsNyBAQCBpbmRleCA1MTUxOTY2Li5hY2NhNTM3IDEwMDY0NAogIHsK ICAgIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN5bXRhYjsKICAKLUBAIC0zMDU0LDcgKzMwNzcs OCBAQCBhZ2FpbjI6CitAQCAtMzA0MSw3ICszMDYxLDggQEAgYWdhaW4yOgogIAogIHN0cnVjdCBw YXJ0aWFsX3N5bXRhYiAqCiAgc3RhcnRfcHN5bXRhYl9jb21tb24gKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLApAQCAtMTg3OTYsNyArMjAwNjgsNyBAQCBpbmRleCA1MTUxOTY2Li5hY2NhNTM3IDEw MDY0NAogIAkJICAgICAgc3RydWN0IHBhcnRpYWxfc3ltYm9sICoqc3RhdGljX3N5bXMpCiAgewog ZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmggYi9nZGIvc3ltZmlsZS5oCi1pbmRleCBiYmEyNDJj Li41OGJkMmQ4IDEwMDY0NAoraW5kZXggOGM5MjQ5Yy4uYmY5ZDllNyAxMDA2NDQKIC0tLSBhL2dk Yi9zeW1maWxlLmgKICsrKyBiL2dkYi9zeW1maWxlLmgKIEBAIC0xNDAsNiArMTQwLDEyIEBAIHN0 cnVjdCBzeW1fZm5zCkBAIC0xODgyMSw3ICsyMDA5Myw3IEBAIGluZGV4IGJiYTI0MmMuLjU4YmQy ZDggMTAwNjQ0CiAgCQkJCQkJICAgIHN0cnVjdCBwYXJ0aWFsX3N5bWJvbCAqKiwKICAJCQkJCQkg ICAgc3RydWN0IHBhcnRpYWxfc3ltYm9sICoqKTsKICAKLUBAIC0zMTYsNyArMzIyLDcgQEAgZXh0 ZXJuIGludCBhdXRvX3NvbGliX2xpbWl0OworQEAgLTMwOSw3ICszMTUsNyBAQCBleHRlcm4gaW50 IGF1dG9fc29saWJfbGltaXQ7CiAgCiAgZXh0ZXJuIHZvaWQgc2V0X2luaXRpYWxfbGFuZ3VhZ2Ug KHZvaWQpOwogIApAQCAtMTg4MzAsNyArMjAxMDIsNyBAQCBpbmRleCBiYmEyNDJjLi41OGJkMmQ4 IDEwMDY0NAogIAogIGV4dGVybiB2b2lkIGRpc2NhcmRfcHN5bXRhYiAoc3RydWN0IHBhcnRpYWxf c3ltdGFiICopOwogIAotQEAgLTM4NSw3ICszOTEsNyBAQCB2b2lkIGZyZWVfc3ltZmlsZV9zZWdt ZW50X2RhdGEgKHN0cnVjdCBzeW1maWxlX3NlZ21lbnRfZGF0YSAqZGF0YSk7CitAQCAtMzc4LDcg KzM4NCw3IEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0IHN5bWZpbGVf c2VnbWVudF9kYXRhICpkYXRhKTsKICAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAogIGV4dGVy biBpbnQgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqKTsKQEAgLTE4ODYyLDcgKzIw MTM0LDcgQEAgaW5kZXggZWIzNTM2OS4uZGZkOGM4YyAxMDA2NDQKICAJICB7CiAgCSAgICBwcmlu dGZfZmlsdGVyZWQgKCJHbG9iYWwgc3ltYm9sIGAiKTsKIGRpZmYgLS1naXQgYS9nZGIvc3ltdGFi LmMgYi9nZGIvc3ltdGFiLmMKLWluZGV4IGM4ODE1NmEuLjc1YjkwN2YgMTAwNjQ0CitpbmRleCA4 ZDlkNzJjLi44MmUwMTYzIDEwMDY0NAogLS0tIGEvZ2RiL3N5bXRhYi5jCiArKysgYi9nZGIvc3lt dGFiLmMKIEBAIC00Miw2ICs0Miw3IEBACkBAIC0xOTY5Niw3ICsyMDk2OCw3IEBAIGluZGV4IDc0 MGQ0ZTAuLjQ2MWZmOTUgMTAwNjQ0CiAgCiAgZXh0ZXJuIHN0cnVjdCBzeW10YWJzX2FuZF9saW5l cwogZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQuYyBiL2dkYi90YXJnZXQuYwotaW5kZXggN2VlNDQ0 Zi4uNjMxZTVmOCAxMDA2NDQKK2luZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CiAtLS0gYS9n ZGIvdGFyZ2V0LmMKICsrKyBiL2dkYi90YXJnZXQuYwogQEAgLTEyNCw2ICsxMjQsOCBAQCBzdGF0 aWMgaW50IGRlYnVnX3RvX2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIsIGludCwgaW50KTsK QEAgLTE5NzA4LDcgKzIwOTgwLDcgQEAgaW5kZXggN2VlNDQ0Zi4uNjMxZTVmOCAxMDA2NDQKICBz dGF0aWMgaW50IGRlYnVnX3RvX3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAodm9pZCk7CiAgCiAgc3Rh dGljIGludCBkZWJ1Z190b19zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdldF9vcHMg KiwgQ09SRV9BRERSICopOwotQEAgLTU4NCw2ICs1ODYsNyBAQCB1cGRhdGVfY3VycmVudF90YXJn ZXQgKHZvaWQpCitAQCAtNjIyLDYgKzYyNCw3IEBAIHVwZGF0ZV9jdXJyZW50X3RhcmdldCAodm9p ZCkKICAgICAgICBJTkhFUklUICh0b19yZW1vdmVfaHdfYnJlYWtwb2ludCwgdCk7CiAgICAgICAg SU5IRVJJVCAodG9faW5zZXJ0X3dhdGNocG9pbnQsIHQpOwogICAgICAgIElOSEVSSVQgKHRvX3Jl bW92ZV93YXRjaHBvaW50LCB0KTsKQEAgLTE5NzE2LDcgKzIwOTg4LDcgQEAgaW5kZXggN2VlNDQ0 Zi4uNjMxZTVmOCAxMDA2NDQKICAgICAgICBJTkhFUklUICh0b19zdG9wcGVkX2RhdGFfYWRkcmVz cywgdCk7CiAgICAgICAgSU5IRVJJVCAodG9faGF2ZV9zdGVwcGFibGVfd2F0Y2hwb2ludCwgdCk7 CiAgICAgICAgSU5IRVJJVCAodG9faGF2ZV9jb250aW51YWJsZV93YXRjaHBvaW50LCB0KTsKLUBA IC02OTQsNiArNjk3LDkgQEAgdXBkYXRlX2N1cnJlbnRfdGFyZ2V0ICh2b2lkKQorQEAgLTczMiw2 ICs3MzUsOSBAQCB1cGRhdGVfY3VycmVudF90YXJnZXQgKHZvaWQpCiAgICBkZV9mYXVsdCAodG9f cmVtb3ZlX3dhdGNocG9pbnQsCiAgCSAgICAoaW50ICgqKSAoQ09SRV9BRERSLCBpbnQsIGludCkp CiAgCSAgICByZXR1cm5fbWludXNfb25lKTsKQEAgLTE5NzI2LDcgKzIwOTk4LDcgQEAgaW5kZXgg N2VlNDQ0Zi4uNjMxZTVmOCAxMDA2NDQKICAgIGRlX2ZhdWx0ICh0b19zdG9wcGVkX2J5X3dhdGNo cG9pbnQsCiAgCSAgICAoaW50ICgqKSAodm9pZCkpCiAgCSAgICByZXR1cm5femVybyk7Ci1AQCAt MzA5NSw2ICszMTAxLDE5IEBAIGRlYnVnX3RvX3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIg YWRkciwgaW50IGxlbiwgaW50IHR5cGUpCitAQCAtMzE2OCw2ICszMTc0LDE5IEBAIGRlYnVnX3Rv X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUpCiAg ICByZXR1cm4gcmV0dmFsOwogIH0KICAKQEAgLTE5NzQ2LDcgKzIxMDE4LDcgQEAgaW5kZXggN2Vl NDQ0Zi4uNjMxZTVmOCAxMDA2NDQKICBzdGF0aWMgdm9pZAogIGRlYnVnX3RvX3Rlcm1pbmFsX2lu aXQgKHZvaWQpCiAgewotQEAgLTMzNDIsNiArMzM2MSw3IEBAIHNldHVwX3RhcmdldF9kZWJ1ZyAo dm9pZCkKK0BAIC0zNDE1LDYgKzM0MzQsNyBAQCBzZXR1cF90YXJnZXRfZGVidWcgKHZvaWQpCiAg ICBjdXJyZW50X3RhcmdldC50b19yZW1vdmVfaHdfYnJlYWtwb2ludCA9IGRlYnVnX3RvX3JlbW92 ZV9od19icmVha3BvaW50OwogICAgY3VycmVudF90YXJnZXQudG9faW5zZXJ0X3dhdGNocG9pbnQg PSBkZWJ1Z190b19pbnNlcnRfd2F0Y2hwb2ludDsKICAgIGN1cnJlbnRfdGFyZ2V0LnRvX3JlbW92 ZV93YXRjaHBvaW50ID0gZGVidWdfdG9fcmVtb3ZlX3dhdGNocG9pbnQ7CkBAIC0xOTc1NSwxMCAr MjEwMjcsMTAgQEAgaW5kZXggN2VlNDQ0Zi4uNjMxZTVmOCAxMDA2NDQKICAgIGN1cnJlbnRfdGFy Z2V0LnRvX3N0b3BwZWRfZGF0YV9hZGRyZXNzID0gZGVidWdfdG9fc3RvcHBlZF9kYXRhX2FkZHJl c3M7CiAgICBjdXJyZW50X3RhcmdldC50b193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlID0g ZGVidWdfdG9fd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZTsKIGRpZmYgLS1naXQgYS9nZGIv dGFyZ2V0LmggYi9nZGIvdGFyZ2V0LmgKLWluZGV4IDJjNzQzZTkuLmRiYmNlMTIgMTAwNjQ0Citp bmRleCBjMjEwZmVhLi4wNjVhN2VhIDEwMDY0NAogLS0tIGEvZ2RiL3RhcmdldC5oCiArKysgYi9n ZGIvdGFyZ2V0LmgKLUBAIC0zNzYsNiArMzc2LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKK0BAIC0z NzksNiArMzc5LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKICAgICAgaW50ICgqdG9fcmVtb3ZlX2h3 X2JyZWFrcG9pbnQpIChzdHJ1Y3QgZ2RiYXJjaCAqLCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8gKik7 CiAgICAgIGludCAoKnRvX3JlbW92ZV93YXRjaHBvaW50KSAoQ09SRV9BRERSLCBpbnQsIGludCk7 CiAgICAgIGludCAoKnRvX2luc2VydF93YXRjaHBvaW50KSAoQ09SRV9BRERSLCBpbnQsIGludCk7 CkBAIC0xOTc2Niw3ICsyMTAzOCw3IEBAIGluZGV4IDJjNzQzZTkuLmRiYmNlMTIgMTAwNjQ0CiAg ICAgIGludCAoKnRvX3N0b3BwZWRfYnlfd2F0Y2hwb2ludCkgKHZvaWQpOwogICAgICBpbnQgdG9f aGF2ZV9zdGVwcGFibGVfd2F0Y2hwb2ludDsKICAgICAgaW50IHRvX2hhdmVfY29udGludWFibGVf d2F0Y2hwb2ludDsKLUBAIC0xMTIwLDYgKzExMjEsMTUgQEAgZXh0ZXJuIGNoYXIgKm5vcm1hbF9w aWRfdG9fc3RyIChwdGlkX3QgcHRpZCk7CitAQCAtMTEyNiw2ICsxMTI3LDE1IEBAIGV4dGVybiBj aGFyICpub3JtYWxfcGlkX3RvX3N0ciAocHRpZF90IHB0aWQpOwogICNkZWZpbmUJdGFyZ2V0X3Jl bW92ZV93YXRjaHBvaW50KGFkZHIsIGxlbiwgdHlwZSkJXAogICAgICAgKCpjdXJyZW50X3Rhcmdl dC50b19yZW1vdmVfd2F0Y2hwb2ludCkgKGFkZHIsIGxlbiwgdHlwZSkKICAKQEAgLTE5NzgyLDcg KzIxMDU0LDcgQEAgaW5kZXggMmM3NDNlOS4uZGJiY2UxMiAxMDA2NDQKICAjZGVmaW5lIHRhcmdl dF9pbnNlcnRfaHdfYnJlYWtwb2ludChnZGJhcmNoLCBicF90Z3QpIFwKICAgICAgICgqY3VycmVu dF90YXJnZXQudG9faW5zZXJ0X2h3X2JyZWFrcG9pbnQpIChnZGJhcmNoLCBicF90Z3QpCiAgCi1A QCAtMTE1Nyw2ICsxMTY3LDIwIEBAIGV4dGVybiBpbnQgdGFyZ2V0X3NlYXJjaF9tZW1vcnkgKENP UkVfQUREUiBzdGFydF9hZGRyLAorQEAgLTExNjMsNiArMTE3MywyMCBAQCBleHRlcm4gaW50IHRh cmdldF9zZWFyY2hfbWVtb3J5IChDT1JFX0FERFIgc3RhcnRfYWRkciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBVTE9OR0VTVCBwYXR0ZXJuX2xlbiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDT1JFX0FERFIgKmZvdW5kX2FkZHJwKTsKICAKQEAgLTE5ODAz LDcgKzIxMDc1LDcgQEAgaW5kZXggMmM3NDNlOS4uZGJiY2UxMiAxMDA2NDQKICAvKiBDb21tYW5k IGxvZ2dpbmcgZmFjaWxpdHkuICAqLwogIAogICNkZWZpbmUgdGFyZ2V0X2xvZ19jb21tYW5kKHAp CQkJCQkJXAotQEAgLTEyNzYsNiArMTMwMCwxNCBAQCBleHRlcm4gc3RydWN0IHRhcmdldF9vcHMg KmZpbmRfdGFyZ2V0X2JlbmVhdGggKHN0cnVjdCB0YXJnZXRfb3BzICopOworQEAgLTEyODIsNiAr MTMwNiwxNCBAQCBleHRlcm4gc3RydWN0IHRhcmdldF9vcHMgKmZpbmRfdGFyZ2V0X2JlbmVhdGgg KHN0cnVjdCB0YXJnZXRfb3BzICopOwogIAogIGV4dGVybiBjaGFyICp0YXJnZXRfZ2V0X29zZGF0 YSAoY29uc3QgY2hhciAqdHlwZSk7CiAgCkBAIC0yMDkzMCwyMTUgKzIyMjAyLDYgQEAgaW5kZXgg NzUwZmQyMy4uZGZkYjkyOSAxMDA2NDQKICBnZGJfdGVzdCAic2V0IGlucHV0LXJhZGl4IDEiIFwK ICAgICAgIk5vbnNlbnNlIGlucHV0IHJhZGl4IGBgZGVjaW1hbCAxJyc7IGlucHV0IHJhZGl4IHVu Y2hhbmdlZFxcLiIgXAogICAgICAiUmVqZWN0IGlucHV0LXJhZGl4IDEiCi1kaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xpYi1vdmVybGFwLWxpYi5jIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9zb2xpYi1vdmVybGFwLWxpYi5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMC4uZDRhZWMwZAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9zb2xpYi1vdmVybGFwLWxpYi5jCi1AQCAtMCwwICsxLDI3IEBACi0rLyogQ29weXJp Z2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rICAgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK LSsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCi0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rICAgQ29udHJpYnV0ZWQgYnkgSmFuIEtyYXRvY2h2 aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+LiAgKi8KLSsKLSt2b2lkCi0rbGlic3ltICh2 b2lkKQotK3sKLSt9Ci0rCi0rI2lmZGVmIFNZTUIKLSt2b2lkCi0rbGlic3ltYiAodm9pZCkKLSt7 Ci0rfQotKyNlbmRpZgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWIt b3ZlcmxhcC1tYWluLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvbGliLW92ZXJsYXAtbWFp bi5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMWU5MWRkMgotLS0tIC9k ZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xpYi1vdmVybGFwLW1haW4u YwotQEAgLTAsMCArMSwyNSBAQAotKy8qIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwot KyAgIENvbnRyaWJ1dGVkIGJ5IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPi4gICovCi0rCi0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotKwotK2ludAotK21haW4gKHZvaWQp Ci0rewotKyAgc2xlZXAgKDYwKTsKLSsKLSsgIHJldHVybiAxOwotK30KLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvbGliLW92ZXJsYXAuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9zb2xpYi1vdmVybGFwLmV4cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAuLmQ2NDRkOWIKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvc29saWItb3ZlcmxhcC5leHAKLUBAIC0wLDAgKzEsMTM5IEBACi0rIyBDb3B5cmlnaHQgMjAw OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCi0rIwotKyMgQ29udHJpYnV0ZWQgYnkgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+LgotKwotKyMgVGVzdCBHREIgY2FuIGNvcGUgd2l0aCB0d28gbGlicmFy aWVzIGxvYWRlZCB3aXRoIG92ZXJsYXBwaW5nIFZNQSByYW5nZXMuCi0rIyBQcmVsaW5rIGxpYnJh cmllcyBmaXJzdCBzbyB0aGV5IGNhbiBiZSBsb2FkZWQgYW5kIHRoZWlyIG5hdGl2ZSBhZGRyZXNz LgotKyMgSW4gc3VjaCBjYXNlIGBzdHJ1Y3QgbGlua21hcCcubF9hZGRyIHdpbGwgYmUgemVyby4g IFByb3ZpZGUgZGlmZmVyZW50Ci0rIyB1bnByZWxpbmtlZCBsaWJyYXJ5IGZpbGVzIG9uIHRoZSBk aXNrIHdoaWNoIGhhdmUgemVyby1iYXNlZCBWTUFzLiAgVGhlc2UKLSsjIGRpZmZlcmVudCBmaWxl cyBzaG91bGQgaGF2ZSB0aGVpciAuZHluYW1pYyBzZWN0aW9uIGF0IGEgZGlmZmVyZW50IG9mZnNl dCBpbgotKyMgcGFnZSBzaXplIHNvIHRoYXQgd2UgZ2V0IGZvcgotKyMgICB3YXJuaW5nOiAuZHlu YW1pYyBzZWN0aW9uIGZvciAiLi4uIiBpcyBub3QgYXQgdGhlIGV4cGVjdGVkIGFkZHJlc3MKLSsj IHRoZSByZWFzb24KLSsjICAgKHdyb25nIGxpYnJhcnkgb3IgdmVyc2lvbiBtaXNtYXRjaD8pCi0r IyBhbmQgbm90OgotKyMgICBkaWZmZXJlbmNlIGFwcGVhcnMgdG8gYmUgY2F1c2VkIGJ5IHByZWxp bmssIGFkanVzdGluZyBleHBlY3RhdGlvbnMKLSsjIEluIHN1Y2ggY2FzZSBib3RoIGRpc2sgbGli cmFyaWVzIHdpbGwgYmUgbG9hZGVkIGF0IFZNQXMgc3RhcnRpbmcgYXQgemVyby4KLSsKLStpZiBb c2tpcF9zaGxpYl90ZXN0c10gewotKyAgICByZXR1cm4gMAotK30KLSsKLSsjIEFyZSB3ZSBvbiBh IHRhcmdldCBib2FyZD8gIEl0IGlzIHJlcXVpcmVkIGZvciBhdHRhY2hpbmcgdG8gYSBwcm9jZXNz LgotK2lmIFtpc19yZW1vdGUgdGFyZ2V0XSB7Ci0rICAgIHJldHVybiAwCi0rfQotKwotK2lmIFtn ZXRfY29tcGlsZXJfaW5mbyBiaW5maWxlLXVudXNlZF0gewotKyAgICByZXR1cm4gLTE7Ci0rfQot KwotKyMgTGlicmFyeSBmaWxlLgotK3NldCBsaWJuYW1lICJzb2xpYi1vdmVybGFwLWxpYiIKLStz ZXQgc3JjZmlsZV9saWIgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke2xpYm5hbWV9LmMKLSsjIEJpbmFy eSBmaWxlLgotK3NldCB0ZXN0ZmlsZSAic29saWItb3ZlcmxhcC1tYWluIgotK3NldCBzcmNmaWxl ICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0uYwotKwotKyMgQmFzZSBhZGRyZXNzZXMg Zm9yIGBwcmVsaW5rIC1yJyB3aGljaCBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRoIGJvdGggLW0z MiBhbmQKLSsjIC1tNjQgdGFyZ2V0cy4gIElmIGl0IGNsYXNoZXMgd2l0aCBzeXN0ZW0gcHJlbGlu a2VkIGxpYnJhcmllcyBpdCB3b3VsZCBnaXZlCi0rIyBmYWxzZSBQQVNTLgotKyMgUHJlbGluayBm aXJzdCBsaWIxIGF0IDB4NDAwMDAwMDAgYW5kIGxpYjIgYXQgMHg0MTAwMDAwMC4KLSsjIER1cmlu ZyBzZWNvbmQgcGFzcyB0cnkgbGliMSBhdCAweDUwMDAwMDAwIGFuZCBsaWIyIGF0IDB4NTEwMDAw MDAuCi0rZm9yZWFjaCBwcmVsaW5rX2xpYjEgezB4NDAwMDAwMDAgMHg1MDAwMDAwMH0gewotKyAg ICBzZXQgcHJlbGlua19saWIyIFtmb3JtYXQgIjB4JXgiIFtleHByICRwcmVsaW5rX2xpYjEgKyAw eDAxMDAwMDAwXV0KLSsKLSsgICAgc2V0IG9sZF9wcmVmaXggJHBmX3ByZWZpeAotKyAgICBsYXBw ZW5kIHBmX3ByZWZpeCAiJHByZWxpbmtfbGliMToiCi0rCi0rICAgICMgTGlicmFyeSBmaWxlLgot KyAgICBzZXQgYmluZmlsZV9saWIxICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtsaWJuYW1lfTEtJHtw cmVsaW5rX2xpYjF9LnNvCi0rICAgIHNldCBiaW5maWxlX2xpYjIgJHtvYmpkaXJ9LyR7c3ViZGly fS8ke2xpYm5hbWV9Mi0ke3ByZWxpbmtfbGliMX0uc28KLSsgICAgc2V0IGxpYl9mbGFncyB7ZGVi dWd9Ci0rICAgICMgQmluYXJ5IGZpbGUuCi0rICAgIHNldCBiaW5maWxlX2Jhc2UgJHt0ZXN0Zmls ZX0tJHtwcmVsaW5rX2xpYjF9Ci0rICAgIHNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0v JHtiaW5maWxlX2Jhc2V9Ci0rICAgIHNldCBiaW5fZmxhZ3MgW2xpc3QgZGVidWcgc2hsaWI9JHti aW5maWxlX2xpYjF9IHNobGliPSR7YmluZmlsZV9saWIyfV0KLSsgICAgc2V0IGVzY2FwZWRiaW5m aWxlICBbc3RyaW5nX3RvX3JlZ2V4cCAke2JpbmZpbGV9XQotKwotKyAgICBpZiB7IFtnZGJfY29t cGlsZV9zaGxpYiAke3NyY2ZpbGVfbGlifSAke2JpbmZpbGVfbGliMX0gJGxpYl9mbGFnc10gIT0g IiIKLSsJIHx8IFtnZGJfY29tcGlsZV9zaGxpYiAke3NyY2ZpbGVfbGlifSAke2JpbmZpbGVfbGli Mn0gJGxpYl9mbGFnc10gIT0gIiIKLSsJIHx8IFtnZGJfY29tcGlsZSAke3NyY2ZpbGV9ICR7Ymlu ZmlsZX0gZXhlY3V0YWJsZSAkYmluX2ZsYWdzXSAhPSAiIiB9IHsKLSsJdW50ZXN0ZWQgIkNvdWxk IG5vdCBjb21waWxlICR7YmluZmlsZV9saWIxfSwgJHtiaW5maWxlX2xpYjJ9IG9yICR7YmluZmls ZX0uIgotKwlyZXR1cm4gLTEKLSsgICAgfQotKwotKyAgICBpZiB7W2NhdGNoICJzeXN0ZW0gXCJw cmVsaW5rIC1OIC1yICR7cHJlbGlua19saWIxfSAke2JpbmZpbGVfbGliMX1cIiJdICE9IDAKLSsJ fHwgW2NhdGNoICJzeXN0ZW0gXCJwcmVsaW5rIC1OIC1yICR7cHJlbGlua19saWIyfSAke2JpbmZp bGVfbGliMn1cIiJdICE9IDB9IHsKLSsJIyBNYXliZSB3ZSBkb24ndCBoYXZlIHByZWxpbmsuCi0r CXVudGVzdGVkICJDb3VsZCBub3QgcHJlbGluayAke2JpbmZpbGVfbGliMX0gb3IgJHtiaW5maWxl X2xpYjJ9LiIKLSsJcmV0dXJuIC0xCi0rICAgIH0KLSsKLSsgICAgIyBTdGFydCB0aGUgcHJvZ3Jh bSBydW5uaW5nIGFuZCB0aGVuIHdhaXQgZm9yIGEgYml0LCB0byBiZSBzdXJlCi0rICAgICMgdGhh dCBpdCBjYW4gYmUgYXR0YWNoZWQgdG8uCi0rCi0rICAgIHNldCB0ZXN0cGlkIFtldmFsIGV4ZWMg JGJpbmZpbGUgJl0KLSsgICAgc2xlZXAgMgotKyAgICBpZiB7IFtpc3RhcmdldCAiKi0qLWN5Z3dp bioiXSB9IHsKLSsJIyB0ZXN0cGlkIGlzIHRoZSBDeWd3aW4gUElELCBHREIgdXNlcyB0aGUgV2lu ZG93cyBQSUQsIHdoaWNoIG1pZ2h0IGJlCi0rCSMgZGlmZmVyZW50IGR1ZSB0byB0aGUgd2F5IGZv cmsvZXhlYyB3b3Jrcy4KLSsJc2V0IHRlc3RwaWQgWyBleGVjIHBzIC1lIHwgZ2F3ayAieyBpZiAo XCQxID09ICR0ZXN0cGlkKSBwcmludCBcJDQ7IH0iIF0KLSsgICAgfQotKwotKyAgICByZW1vdGVf ZXhlYyBidWlsZCAibXYgLWYgJHtiaW5maWxlX2xpYjF9ICR7YmluZmlsZV9saWIxfS1ydW5uaW5n IgotKyAgICByZW1vdGVfZXhlYyBidWlsZCAibXYgLWYgJHtiaW5maWxlX2xpYjJ9ICR7YmluZmls ZV9saWIyfS1ydW5uaW5nIgotKwotKyAgICAjIFByb3ZpZGUgYW5vdGhlciBleHBvcnRlZCBmdW5j dGlvbiBuYW1lIHRvIGNhdXNlIGRpZmZlcmVudCBzaXplcyBvZiBzZWN0aW9ucy4KLSsgICAgbGFw cGVuZCBsaWJfZmxhZ3MgYWRkaXRpb25hbF9mbGFncz0tRFNZTUIKLSsKLSsgICAgaWYgeyBbZ2Ri X2NvbXBpbGVfc2hsaWIgJHtzcmNmaWxlX2xpYn0gJHtiaW5maWxlX2xpYjF9ICRsaWJfZmxhZ3Nd ICE9ICIiCi0rCSB8fCBbZ2RiX2NvbXBpbGVfc2hsaWIgJHtzcmNmaWxlX2xpYn0gJHtiaW5maWxl X2xpYjJ9ICRsaWJfZmxhZ3NdICE9ICIifSB7Ci0rCXVudGVzdGVkICJDb3VsZCBub3QgcmVjb21w aWxlICR7YmluZmlsZV9saWIxfSBvciAke2JpbmZpbGVfbGliMn0uIgotKwlyZW1vdGVfZXhlYyBi dWlsZCAia2lsbCAtOSAke3Rlc3RwaWR9IgotKwlyZXR1cm4gLTEKLSsgICAgfQotKwotKyAgICBj bGVhbl9yZXN0YXJ0ICR7YmluZmlsZV9iYXNlfQotKyAgICAjIFRoaXMgdGVzdGNhc2UgY3VycmVu dGx5IGRvZXMgbm90IHN1cHBvcnQgcmVtb3RlIHRhcmdldHMuCi0rICAgICMgZ2RiX2xvYWRfc2hs aWJzICR7YmluZmlsZV9saWIxfSAke2JpbmZpbGVfbGliMn0KLSsKLSsgICAgIyBIZXJlIHdlIHNo b3VsZCBnZXQ6Ci0rICAgICMgd2FybmluZzogLmR5bmFtaWMgc2VjdGlvbiBmb3IgIi4uLi9zb2xp Yi1vdmVybGFwLWxpYjEuc28iIGlzIG5vdCBhdCB0aGUgZXhwZWN0ZWQgYWRkcmVzcyAod3Jvbmcg bGlicmFyeSBvciB2ZXJzaW9uIG1pc21hdGNoPykKLSsgICAgIyB3YXJuaW5nOiAuZHluYW1pYyBz ZWN0aW9uIGZvciAiLi4uL3NvbGliLW92ZXJsYXAtbGliMi5zbyIgaXMgbm90IGF0IHRoZSBleHBl Y3RlZCBhZGRyZXNzICh3cm9uZyBsaWJyYXJ5IG9yIHZlcnNpb24gbWlzbWF0Y2g/KQotKwotKyAg ICBzZXQgdGVzdCBhdHRhY2gKLSsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImF0dGFjaCAkdGVzdHBp ZCIgJHRlc3QgewotKwktcmUgIkF0dGFjaGluZyB0byBwcm9ncmFtLipgPyRlc2NhcGVkYmluZmls ZSc/LCBwcm9jZXNzICR0ZXN0cGlkLiokZ2RiX3Byb21wdCAkIiB7Ci0rCSAgICBwYXNzICR0ZXN0 Ci0rCX0KLSsJLXJlICJBdHRhY2hpbmcgdG8gcHJvZ3JhbS4qYD8kZXNjYXBlZGJpbmZpbGVcLmV4 ZSc/LCBwcm9jZXNzICR0ZXN0cGlkLipcW1N3aXRjaGluZyB0byB0aHJlYWQgJHRlc3RwaWRcLi4q XF0uKiRnZGJfcHJvbXB0ICQiIHsKLSsJICAgICMgUmVzcG9uc2UgZXhwZWN0ZWQgb24gQ3lnd2lu Ci0rCSAgICBwYXNzICR0ZXN0Ci0rCX0KLSsgICAgfQotKwotKyAgICAjIERldGFjaCB0aGUgcHJv Y2Vzcy4KLSsKLSsgICAgZ2RiX3Rlc3QgImRldGFjaCIgIkRldGFjaGluZyBmcm9tIHByb2dyYW06 IC4qJGVzY2FwZWRiaW5maWxlLCBwcm9jZXNzICR0ZXN0cGlkIgotKwotKyAgICAjIFdhaXQgYSBi aXQgZm9yIGdkYiB0byBmaW5pc2ggZGV0YWNoaW5nCi0rCi0rICAgIHNsZWVwIDUKLSsKLSsgICAg cmVtb3RlX2V4ZWMgYnVpbGQgImtpbGwgLTkgJHt0ZXN0cGlkfSIKLSsKLSsgICAgc2V0IHBmX3By ZWZpeCAkb2xkX3ByZWZpeAotK30KIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3ZhbGdyaW5kLWF0dGFjaC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YWxncmluZC1hdHRh Y2guYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjg0YjU3ZGIKQEAgLTIx NjYzLDYgKzIyNzI2LDE5IEBAIGluZGV4IGEyYmI3MzEuLmQ3NGQ2YzcgMTAwNjQ0CiArZ2RiX3Rl c3QgImNvbnRpbnVlIiBcCiArCSAiQ29udGludWluZ1xcLlxbIFxyXG5cXStCcmVha3BvaW50IFxb MC05XF0rLCAuKmJyZWFrLWF0LWV4aXQuKiIgXAogKwkgImNvbnRpbnVlIHRvIGJyZWFrLWF0LWV4 aXQgYWZ0ZXIgaGJyZWFrIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL01ha2Vm aWxlLmluIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvTWFrZWZpbGUuaW4KK2luZGV4IDBhMDg3Yzcu LmI0ODgwZjIgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9NYWtlZmlsZS5pbgor KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvTWFrZWZpbGUuaW4KK0BAIC00LDcgKzQsNyBAQCBz cmNkaXIgPSBAc3JjZGlyQAorIEVYRUNVVEFCTEVTID0gYW1iaWd1b3VzIGFubm90YTIgYW5vbi11 bmlvbiBjcGx1c2Z1bmNzIGN0dGlhZGQgXAorIAlkZXJpdmF0aW9uIGluaGVyaXQgbG9jYWwgbWVt YmVyLXB0ciBtZXRob2QgbWlzYyBcCisgICAgICAgICBvdmVybG9hZCBvdmxkYnJlYWsgcmVmLXR5 cCByZWYtdHlwMiB0ZW1wbGF0ZXMgdXNlcmRlZiB2aXJ0ZnVuYyBuYW1lc3BhY2UgXAorLQlyZWYt dHlwZXMgcmVmLXBhcmFtcyBtZXRob2QyIHByOTU5NCBnZGIyNDk1CisrCXJlZi10eXBlcyByZWYt cGFyYW1zIG1ldGhvZDIgcHI5NTk0IGdkYjI0OTUgZ2RiOTU5MworIAorIGFsbCBpbmZvIGluc3Rh bGwtaW5mbyBkdmkgaW5zdGFsbCB1bmluc3RhbGwgaW5zdGFsbGNoZWNrIGNoZWNrOgorIAlAZWNo byAiTm90aGluZyB0byBiZSBkb25lIGZvciAkQC4uLiIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5jcC9jcC1yZWxvY2F0ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcC1yZWxv Y2F0ZS5leHAKIGluZGV4IDQwOTVjY2YuLjAzYzA3ZDUgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5jcC9jcC1yZWxvY2F0ZS5leHAKQEAgLTIyMDA1LDE3ICsyMzA4MSwzOTQgQEAgaW5k ZXggM2MzMDJjMy4uY2QwNDk2ZCAxMDA2NDQKICAJICJidCBmcm9tIEEiCiAgCiAgZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgIm5leHQgY2FsbGVyIGZ1bmMiICIuKmZ1bmMtbGluZS4qIgotZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL21lbWJlci1wdHIuY2MgYi9nZGIvdGVzdHN1 aXRlL2dkYi5jcC9tZW1iZXItcHRyLmNjCi1pbmRleCAxZGZmNzBhLi42NDhiMmFmIDEwMDY0NAot LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbWVtYmVyLXB0ci5jYwotKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvbWVtYmVyLXB0ci5jYwotQEAgLTEzOCw2ICsxMzgsNyBAQCBjbGFzcyBEaWFt b25kIDogcHVibGljIFBhZGRpbmcsIHB1YmxpYyBMZWZ0LCBwdWJsaWMgUmlnaHQKLSB7Ci0gcHVi bGljOgotICAgdmlydHVhbCBpbnQgdmdldF9iYXNlICgpOwotKyAgaW50ICgqZnVuY19wdHIpIChp bnQpOwotIH07Ci0gCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5j YyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMuY2MKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwLi43ODNjOTYyCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5jcC9nZGI5NTkzLmNjCitAQCAtMCwwICsxLDE4MCBAQAorKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIw MDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysg ICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrICAgKi8KKysjaW5jbHVkZSA8aW9zdHJlYW0+Cisr CisrdXNpbmcgbmFtZXNwYWNlIHN0ZDsKKysKKytjbGFzcyBOZXh0T3ZlclRocm93RGVyaXZhdGVz CisreworKworK3B1YmxpYzoKKysKKysKKysgIC8vIFNpbmdsZSB0aHJvdyBhbiBleGNlcHRpb24g aW4gdGhpcyBmdW5jdGlvbi4KKysgIHZvaWQgZnVuY3Rpb24xKCkgCisrICB7CisrICAgIHRocm93 IDIwOworKyAgfQorKworKyAgLy8gVGhyb3cgYW4gZXhjZXB0aW9uIGluIGFub3RoZXIgZnVuY3Rp b24uCisrICB2b2lkIGZ1bmN0aW9uMigpIAorKyAgeworKyAgICBmdW5jdGlvbjEoKTsKKysgIH0K KysKKysgIC8vIFRocm93IGFuIGV4Y2VwdGlvbiBpbiBhbm90aGVyIGZ1bmN0aW9uLCBidXQgaGFu ZGxlIGl0CisrICAvLyBsb2NhbGx5LgorKyAgdm9pZCBmdW5jdGlvbjMgKCkgCisrICB7CisrICAg IHsKKysgICAgICB0cnkKKysJeworKwkgIGZ1bmN0aW9uMSAoKTsKKysJfQorKyAgICAgIGNhdGNo ICguLi4pIAorKwl7CisrCSAgY291dCA8PCAiQ2F1Z2h0IGFuZCBoYW5kbGVkIGZ1bmN0aW9uMSBl eGNlcHRpb24iIDw8IGVuZGw7CisrCX0KKysgICAgfQorKyAgfQorKworKyAgdm9pZCByZXRocm93 ICgpCisrICB7CisrICAgIHRyeQorKyAgICAgIHsKKysJZnVuY3Rpb24xICgpOworKyAgICAgIH0K KysgICAgY2F0Y2ggKC4uLikKKysgICAgICB7CisrCXRocm93OworKyAgICAgIH0KKysgIH0KKysK KysgIHZvaWQgZmluaXNoICgpCisrICB7CisrICAgIC8vIFdlIHVzZSB0aGlzIHRvIHRlc3QgdGhh dCBhICJmaW5pc2giIGhlcmUgZG9lcyBub3QgZW5kIHVwIGluCisrICAgIC8vIHRoaXMgZnJhbWUs IGJ1dCBpbiB0aGUgb25lIGFib3ZlLgorKyAgICB0cnkKKysgICAgICB7CisrCWZ1bmN0aW9uMSAo KTsKKysgICAgICB9CisrICAgIGNhdGNoIChpbnQgeCkKKysgICAgICB7CisrICAgICAgfQorKyAg ICBmdW5jdGlvbjEgKCk7CQkvLyBtYXJrZXIgZm9yIHVudGlsCisrICB9CisrCisrICB2b2lkIHVu dGlsICgpCisrICB7CisrICAgIGZ1bmN0aW9uMSAoKTsKKysgICAgZnVuY3Rpb24xICgpOwkJLy8g dW50aWwgaGVyZQorKyAgfQorKworK307CisrTmV4dE92ZXJUaHJvd0Rlcml2YXRlcyBuZXh0X2Nh c2VzOworKworKworK2ludCBtYWluICgpIAorK3sgCisrICB0cnkKKysgICAgeworKyAgICAgIG5l eHRfY2FzZXMuZnVuY3Rpb24xICgpOworKyAgICB9CisrICBjYXRjaCAoLi4uKQorKyAgICB7Cisr ICAgICAgLy8gRGlzY2FyZAorKyAgICB9CisrCisrICB0cnkKKysgICAgeworKyAgICAgIG5leHRf Y2FzZXMuZnVuY3Rpb24yICgpOworKyAgICB9CisrICBjYXRjaCAoLi4uKQorKyAgICB7CisrICAg ICAgLy8gRGlzY2FyZAorKyAgICB9CisrCisrICB0cnkKKysgICAgeworKyAgICAgIC8vIFRoaXMg aXMgZHVwbGljYXRlZCBzbyB3ZSBjYW4gbmV4dCBvdmVyIG9uZSBidXQgc3RlcCBpbnRvCisrICAg ICAgLy8gYW5vdGhlci4KKysgICAgICBuZXh0X2Nhc2VzLmZ1bmN0aW9uMiAoKTsKKysgICAgfQor KyAgY2F0Y2ggKC4uLikKKysgICAgeworKyAgICAgIC8vIERpc2NhcmQKKysgICAgfQorKworKyAg bmV4dF9jYXNlcy5mdW5jdGlvbjMgKCk7CisrCisrICB0cnkKKysgICAgeworKyAgICAgIG5leHRf Y2FzZXMucmV0aHJvdyAoKTsKKysgICAgfQorKyAgY2F0Y2ggKC4uLikKKysgICAgeworKyAgICAg IC8vIERpc2NhcmQKKysgICAgfQorKworKyAgdHJ5CisrICAgIHsKKysgICAgICAvLyBBbm90aGVy IGR1cGxpY2F0ZSBzbyB3ZSBjYW4gdGVzdCAiZmluaXNoIi4KKysgICAgICBuZXh0X2Nhc2VzLmZ1 bmN0aW9uMiAoKTsKKysgICAgfQorKyAgY2F0Y2ggKC4uLikKKysgICAgeworKyAgICAgIC8vIERp c2NhcmQKKysgICAgfQorKworKyAgLy8gQW5vdGhlciB0ZXN0IGZvciAiZmluaXNoIi4KKysgIHRy eQorKyAgICB7CisrICAgICAgbmV4dF9jYXNlcy5maW5pc2ggKCk7CisrICAgIH0KKysgIGNhdGNo ICguLi4pCisrICAgIHsKKysgICAgfQorKworKyAgLy8gVGVzdCBvZiAidW50aWwiLgorKyAgdHJ5 CisrICAgIHsKKysgICAgICBuZXh0X2Nhc2VzLmZpbmlzaCAoKTsKKysgICAgfQorKyAgY2F0Y2gg KC4uLikKKysgICAgeworKyAgICB9CisrCisrICAvLyBUZXN0IG9mICJ1bnRpbCIgd2l0aCBhbiBh cmd1bWVudC4KKysgIHRyeQorKyAgICB7CisrICAgICAgbmV4dF9jYXNlcy51bnRpbCAoKTsKKysg ICAgfQorKyAgY2F0Y2ggKC4uLikKKysgICAgeworKyAgICB9CisrCisrICAvLyBUZXN0IG9mICJh ZHZhbmNlIi4KKysgIHRyeQorKyAgICB7CisrICAgICAgbmV4dF9jYXNlcy51bnRpbCAoKTsKKysg ICAgfQorKyAgY2F0Y2ggKC4uLikKKysgICAgeworKyAgICB9CisrfQorKworZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av Z2RiOTU5My5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lZTlhZWZm CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9nZGI5NTkzLmV4cAor QEAgLTAsMCArMSwxODUgQEAKKysjIENvcHlyaWdodCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysK KytpZiAkdHJhY2VsZXZlbCB0aGVuIHsKKysgICAgc3RyYWNlICR0cmFjZWxldmVsCisrfQorKwor K2lmIHsgW3NraXBfY3BsdXNfdGVzdHNdIH0geyBjb250aW51ZSB9CisrCisrc2V0IHBybXNfaWQg OTU5MworK3NldCBidWdfaWQgMAorKworK3NldCB0ZXN0ZmlsZSAiZ2RiOTU5MyIKKytzZXQgc3Jj ZmlsZSAke3Rlc3RmaWxlfS5jYworK3NldCBiaW5maWxlICRvYmpkaXIvJHN1YmRpci8kdGVzdGZp bGUKKysKKysjIENyZWF0ZSBhbmQgc291cmNlIHRoZSBmaWxlIHRoYXQgcHJvdmlkZXMgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyCisrIyB1c2VkIHRvIGNvbXBpbGUgdGhlIHRlc3QgY2Fz ZS4KKytpZiBbZ2V0X2NvbXBpbGVyX2luZm8gJHtiaW5maWxlfSAiYysrIl0geworKyAgICB1bnRl c3RlZCBnZGI5NTkzLmV4cAorKyAgICByZXR1cm4gLTEKKyt9CisrCisraWYgeyBbZ2RiX2NvbXBp bGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFi bGUge2RlYnVnIGMrK31dICE9ICIiIH0geworKyAgICB1bnRlc3RlZCBnZGI5NTkzLmV4cAorKyAg ICByZXR1cm4gLTEKKyt9CisrCisrIyBTb21lIHRhcmdldHMgY2FuJ3QgZG8gZnVuY3Rpb24gY2Fs bHMsIHNvIGRvbid0IGV2ZW4gYm90aGVyIHdpdGggdGhpcworKyMgdGVzdC4KKytpZiBbdGFyZ2V0 X2luZm8gZXhpc3RzIGdkYixjYW5ub3RfY2FsbF9mdW5jdGlvbnNdIHsKKysgICAgc2V0dXBfeGZh aWwgIiotKi0qIiA5NTkzCisrICAgIGZhaWwgIlRoaXMgdGFyZ2V0IGNhbiBub3QgY2FsbCBmdW5j dGlvbnMiCisrICAgIGNvbnRpbnVlCisrfQorKworK2dkYl9leGl0CisrZ2RiX3N0YXJ0CisrZ2Ri X3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisrZ2RiX2xvYWQgJHtiaW5maWxlfQor KworK2lmICFbcnVudG9fbWFpbl0gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRv IG1haW4iCisrICAgIGNvbnRpbnVlCisrfSAKKysKKysjIFNlZSB3aGV0aGVyIHdlIGhhdmUgdGhl IG5lZWRlZCB1bndpbmRlciBob29rcy4KKytzZXQgb2sgMQorK2dkYl90ZXN0X211bHRpcGxlICJw cmludCBfVW53aW5kX0RlYnVnSG9vayIgImNoZWNrIGZvciB1bndpbmRlciBob29rIiB7CisrICAg IC1yZSAiPSAuKl9VbndpbmRfRGVidWdIb29rLipcclxuJGdkYl9wcm9tcHQgJCIgeworKwlwYXNz ICJjaGVjayBmb3IgdW53aW5kZXIgaG9vayIKKysgICAgfQorKyAgICAtcmUgIk5vIHN5bWJvbCAu KiBpbiBjdXJyZW50IGNvbnRleHQuXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJIyBQYXNzIHRoZSB0 ZXN0IHNvIHdlIGRvbid0IGdldCBib2d1cyBmYWlscyBpbiB0aGUgcmVzdWx0cy4KKysJcGFzcyAi Y2hlY2sgZm9yIHVud2luZGVyIGhvb2siCisrCXNldCBvayAwCisrICAgIH0KKyt9CisraWYgeyEk b2t9IHsKKysgICAgdW50ZXN0ZWQgZ2RiOTU5My5leHAKKysgICAgcmV0dXJuIC0xCisrfQorKwor KyMgU2VlIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9OTU5 MworKworK2dkYl90ZXN0ICJuZXh0IiBcCisrICAgICIuKmNhdGNoICguLi4pLioiIFwKKysgICAg Im5leHQgb3ZlciBhIHRocm93IDEiCisrCisrZ2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRf Y2FzZXMuZnVuY3Rpb24yLioiIFwKKysgICJuZXh0IHBhc3QgY2F0Y2ggMSIKKysKKytnZGJfdGVz dCAibmV4dCIgXAorKyAgICAiLipjYXRjaCAoLi4uKS4qIiBcCisrICAgICJuZXh0IG92ZXIgYSB0 aHJvdyAyIgorKworK2dkYl90ZXN0ICJuZXh0IiBcCisrICAiLipuZXh0X2Nhc2VzLmZ1bmN0aW9u Mi4qIiBcCisrICAibmV4dCBwYXN0IGNhdGNoIDIiCisrCisrZ2RiX3Rlc3QgInN0ZXAiIFwKKysg ICIuKmZ1bmN0aW9uMSgpLioiIFwKKysgICJzdGVwIGludG8gZnVuY3Rpb24yIDEiCisrCisrZ2Ri X3Rlc3QgIm5leHQiIFwKKysgICAgIi4qY2F0Y2ggKC4uLikuKiIgXAorKyAgICAibmV4dCBvdmVy IGEgdGhyb3cgMyIKKysKKytnZGJfdGVzdCAibmV4dCIgXAorKyAgIi4qbmV4dF9jYXNlcy5mdW5j dGlvbjMuKiIgXAorKyAgIm5leHQgcGFzdCBjYXRjaCAzIgorKworK2dkYl90ZXN0ICJuZXh0IiBc CisrICAiLipuZXh0X2Nhc2VzLnJldGhyb3cuKiIgXAorKyAgICAibmV4dCBvdmVyIGEgdGhyb3cg NCIKKysKKytnZGJfdGVzdCAibmV4dCIgXAorKyAgIi4qY2F0Y2ggKC4uLikuKiIgXAorKyAgIm5l eHQgb3ZlciBhIHJldGhyb3ciCisrCisrZ2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRfY2Fz ZXMuZnVuY3Rpb24yLioiIFwKKysgICJuZXh0IGFmdGVyIGEgcmV0aHJvdyIKKysKKytnZGJfdGVz dCAic3RlcCIgXAorKyAgIi4qZnVuY3Rpb24xKCkuKiIgXAorKyAgInN0ZXAgaW50byBmdW5jdGlv bjIgMiIKKysKKytnZGJfdGVzdCAiZmluaXNoIiBcCisrICAiLipjYXRjaCAoLi4uKS4qIiBcCisr ICAiZmluaXNoIDEiCisrCisrZ2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRfY2FzZXMuZmlu aXNoICgpLioiIFwKKysgICJuZXh0IHBhc3QgY2F0Y2ggNCIKKysKKytnZGJfdGVzdCAic3RlcCIg XAorKyAgIi4qZnVuY3Rpb24xICgpLioiIFwKKysgICJzdGVwIGludG8gZmluaXNoIG1ldGhvZCIK KysKKytnZGJfdGVzdCAiZmluaXNoIiBcCisrICAiLipjYXRjaCAoLi4uKS4qIiBcCisrICAiZmlu aXNoIDIiCisrCisrZ2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRfY2FzZXMuZmluaXNoICgp LioiIFwKKysgICJuZXh0IHBhc3QgY2F0Y2ggNSIKKysKKytnZGJfdGVzdCAic3RlcCIgXAorKyAg Ii4qZnVuY3Rpb24xICgpLioiIFwKKysgICJzdGVwIGludG8gZmluaXNoLCBmb3IgdW50aWwiCisr CisrZ2RiX3Rlc3QgInVudGlsIiBcCisrICAiLipjYXRjaCAuaW50IHguKiIgXAorKyAgInVudGls IHdpdGggbm8gYXJndW1lbnQgMSIKKysKKytzZXQgbGluZSBbZ2RiX2dldF9saW5lX251bWJlciAi bWFya2VyIGZvciB1bnRpbCIgJHRlc3RmaWxlLmNjXQorKworK2dkYl90ZXN0ICJ1bnRpbCAkbGlu ZSIgXAorKyAgIi4qZnVuY3Rpb24xICgpLioiIFwKKysgICJuZXh0IHBhc3QgY2F0Y2ggNiIKKysK KytnZGJfdGVzdCAidW50aWwiIFwKKysgICIuKmNhdGNoICguLi4pLioiIFwKKysgICJ1bnRpbCB3 aXRoIG5vIGFyZ3VtZW50IDIiCisrCisrc2V0IGxpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgInVu dGlsIGhlcmUiICR0ZXN0ZmlsZS5jY10KKysKKytnZGJfdGVzdCAibmV4dCIgXAorKyAgIi4qbmV4 dF9jYXNlcy51bnRpbCAoKS4qIiBcCisrICAibmV4dCBwYXN0IGNhdGNoIDYiCisrCisrZ2RiX3Rl c3QgInN0ZXAiIFwKKysgICIuKmZ1bmN0aW9uMSAoKS4qIiBcCisrICAic3RlcCBpbnRvIHVudGls IgorKworK2dkYl90ZXN0ICJ1bnRpbCAkbGluZSIgXAorKyAgIi4qY2F0Y2ggKC4uLikuKiIgXAor KyAgInVudGlsLW92ZXItdGhyb3ciCisrCisrZ2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRf Y2FzZXMudW50aWwgKCkuKiIgXAorKyAgIm5leHQgcGFzdCBjYXRjaCA3IgorKworK2dkYl90ZXN0 ICJzdGVwIiBcCisrICAiLipmdW5jdGlvbjEgKCkuKiIgXAorKyAgInN0ZXAgaW50byB1bnRpbCwg Zm9yIGFkdmFuY2UiCisrCisrZ2RiX3Rlc3QgImFkdmFuY2UgJGxpbmUiIFwKKysgICIuKmNhdGNo ICguLi4pLioiIFwKKysgICJhZHZhbmNlLW92ZXItdGhyb3ciCitkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvbWVtYmVyLXB0ci5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL21lbWJl ci1wdHIuY2MKK2luZGV4IDFkZmY3MGEuLjY0OGIyYWYgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5jcC9tZW1iZXItcHRyLmNjCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9tZW1i ZXItcHRyLmNjCitAQCAtMTM4LDYgKzEzOCw3IEBAIGNsYXNzIERpYW1vbmQgOiBwdWJsaWMgUGFk ZGluZywgcHVibGljIExlZnQsIHB1YmxpYyBSaWdodAorIHsKKyBwdWJsaWM6CisgICB2aXJ0dWFs IGludCB2Z2V0X2Jhc2UgKCk7CisrICBpbnQgKCpmdW5jX3B0cikgKGludCk7CisgfTsKKyAKICBp bnQgRGlhbW9uZDo6dmdldF9iYXNlICgpCiBAQCAtMTQ1LDYgKzE0NiwxMiBAQCBpbnQgRGlhbW9u ZDo6dmdldF9iYXNlICgpCiAgICByZXR1cm4gdGhpcy0+TGVmdDo6eCArIDIwMDA7CkBAIC0yMjQ0 MywxMCArMjM4OTYsMTAgQEAgaW5kZXggMDAwMDAwMC4uZTUwODEwMwogK2dkYl90ZXN0ICJwcmlu dCBhYmMiICI9IDMzIgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFj ZS1yZWN1cnNpdmUuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtcmVjdXJzaXZl LmNjCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uODQ2MDVhNgoraW5kZXgg MDAwMDAwMC4uNDZkNGMxOAogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3AvbmFtZXNwYWNlLXJlY3Vyc2l2ZS5jYwotQEAgLTAsMCArMSwzMCBAQAorQEAgLTAsMCArMSw0 NyBAQAogK25hbWVzcGFjZSBBewogKyAgaW50IGF4ID0gOTsKICt9CkBAIC0yMjQ1OSwxMiArMjM5 MTIsMTQgQEAgaW5kZXggMDAwMDAwMC4uODQ2MDVhNgogKyAgdXNpbmcgbmFtZXNwYWNlIEI7CiAr fQogKworK3VzaW5nIG5hbWVzcGFjZSBDOworKwogKy8vLS0tLS0tLS0tLS0tLS0tCiArbmFtZXNw YWNlIER7CiArICB1c2luZyBuYW1lc3BhY2UgRDsKICsgIGludCBkeCA9IDk5OwogK30KLSt1c2lu ZyBuYW1lc3BhY2UgQzsKKyt1c2luZyBuYW1lc3BhY2UgRDsKICsKICsvLy0tLS0tLS0tLS0tLS0t LQogK25hbWVzcGFjZXsKQEAgLTIyNDczLDE2ICsyMzkyOCwzMSBAQCBpbmRleCAwMDAwMDAwLi44 NDYwNWE2CiArICB9CiArfQogKworKy8vLS0tLS0tLS0tLS0tLS0tCisrbmFtZXNwYWNlIEV7Cisr ICBpbnQgZXggPSA5OTk5OworK30KKysKKytuYW1lc3BhY2UgRnsKKysgIG5hbWVzcGFjZSBGRSA9 IEU7CisrfQorKworK25hbWVzcGFjZSBHeworKyAgbmFtZXNwYWNlIEdGID0gRjsKKyt9CisrCisr Ly8tLS0tLS0tLS0tLS0tLS0tCiAraW50IG1haW4oKXsKICsgIHVzaW5nIG5hbWVzcGFjZSBEOwot KyAgcmV0dXJuIGF4ICsgZHggKyB4eDsKKysgIG5hbWVzcGFjZSBHWCA9IEc7CisrICByZXR1cm4g YXggKyBkeCArIHh4ICsgRzo6R0Y6OkZFOjpleDsKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXJlY3Vyc2l2ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5j cC9uYW1lc3BhY2UtcmVjdXJzaXZlLmV4cAogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAuLmViYzg5OGYKK2luZGV4IDAwMDAwMDAuLjU1NDM3NTcKIC0tLSAvZGV2L251bGwKICsr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1yZWN1cnNpdmUuZXhwCi1AQCAtMCww ICsxLDY2IEBACitAQCAtMCwwICsxLDc1IEBACiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsKICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0yMjU0OSw2ICsyNDAx OSwxNSBAQCBpbmRleCAwMDAwMDAwLi5lYmM4OThmCiArCiArZ2RiX3Rlc3QgInByaW50IHh4IiAi PSA5OTkiCiArCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KysjIFRlc3QgcHJpbnRpbmcgdXNpbmcgcmVjdXJzaXZlIG5hbWVzcGFjZQorKyMgYWxpYXNlcy4K KysKKytzZXR1cF9rZmFpbCAiZ2RiLzEwNTQxIiAiKi0qLSoiCisrZ2RiX3Rlc3QgInB0eXBlIEc6 OkdGIiAiPSBuYW1lc3BhY2UgRiIKKysKKytzZXR1cF9rZmFpbCAiZ2RiLzEwNTQxIiAiKi0qLSoi CisrZ2RiX3Rlc3QgInByaW50IEc6OkdGOjpGRTo6ZXgiICI9IDk5OTkiCiBkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXN0cmVzcy5jYyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL25hbWVzcGFjZS1zdHJlc3MuY2MKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAw MDAwMDAwLi5mMzQwODNlCkBAIC0yMjgzOCw3ICsyNDMxNyw3IEBAIGluZGV4IDQ3ODZmZDUuLjhm ZjU2MjIgMTAwNjQ0CiArICByZXR1cm4gbWFya2VyMSAoKTsKICB9CiBkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmNwL25hbWVzcGFjZS11c2luZy5leHAKLWluZGV4IGYyNDk3M2YuLmMwMTVlZjcgMTAwNjQ0Citp bmRleCBmMjQ5NzNmLi5mYzIzMTE1IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av bmFtZXNwYWNlLXVzaW5nLmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNl LXVzaW5nLmV4cAogQEAgLTI4LDYgKzI4LDExIEBAIGlmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNk aXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGViCkBA IC0yMjg1Myw3ICsyNDMzMiw3IEBAIGluZGV4IGYyNDk3M2YuLmMwMTVlZjcgMTAwNjQ0CiAgIyBH ZXQgdGhpbmdzIHN0YXJ0ZWQuCiAgCiAgZ2RiX2V4aXQKLUBAIC00NiwxNSArNTEsNjEgQEAgaWYg IVtydW50b19tYWluXSB0aGVuIHsKK0BAIC00Niw0MiArNTEsMTU1IEBAIGlmICFbcnVudG9fbWFp bl0gdGhlbiB7CiAgCiAgZ2RiX3Rlc3QgInByaW50IF9hIiAiPSAxIgogIApAQCAtMjI5MTUsNyAr MjQzOTQsOSBAQCBpbmRleCBmMjQ5NzNmLi5jMDE1ZWY3IDEwMDY0NAogICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgIyBUZXN0IHByaW50aW5nIG9mIG5hbWVz cGFjZSBhbGlhc2VzCiAgCi1AQCAtNjQsMTYgKzExNSwzMiBAQCBpZiAhW3J1bnRvIG1hcmtlcjJd IHRoZW4geworLXNldHVwX2tmYWlsICJnZGIvNzkzNSIgIiotKi0qIgorIGlmICFbcnVudG8gbWFy a2VyMl0gdGhlbiB7CisgICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgbWFy a2VyMiIKICAgICAgY29udGludWUKICB9CiAgCkBAIC0yMjk1Miw3ICsyNDQzMywxMCBAQCBpbmRl eCBmMjQ5NzNmLi5jMDE1ZWY3IDEwMDY0NAogIAogICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCiAgIyBUZXN0IHByaW50aW5nIG9mIGluZGl2aWR1YWxseSBpbXBv cnRlZCBlbGVtZW50cwotQEAgLTg0LDQgKzE1MSw1NyBAQCBpZiAhW3J1bnRvIG1hcmtlcjRdIHRo ZW4geworIAorLXNldHVwX2tmYWlsICJnZGIvNzkzNiIgIiotKi0qIgorIGlmICFbcnVudG8gbWFy a2VyNF0gdGhlbiB7CisgICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgbWFy a2VyNCIKICAgICAgY29udGludWUKICB9CiAgCkBAIC0yMzI0NCw0NjMgKzI0NzI4LDg3IEBAIGlu ZGV4IDAwMDAwMDAuLjY5MjJlZWQKICsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICsjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgotKwotK2lmICR0cmFjZWxldmVsIHRoZW4gewotKyAgICBzdHJh Y2UgJHRyYWNlbGV2ZWwKLSt9Ci0rCi0rc2V0IHBybXNfaWQgMAotK3NldCBidWdfaWQgMAotKwot K3NldCB0ZXN0ZmlsZSBzaGFkb3dpbmcKLStzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jYwotK3Nl dCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KLStpZiAgeyBbZ2RiX2Nv bXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1 dGFibGUge2RlYnVnIGMrK31dICE9ICIiIH0gewotKyAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29t cGlsZSB0ZXN0IHByb2dyYW0iCi0rICAgIHJldHVybiAtMQotK30KLSsKLStpZiBbZ2V0X2NvbXBp bGVyX2luZm8gJHtiaW5maWxlfV0gewotKyAgICByZXR1cm4gLTE7Ci0rfQotKwotKyMgR2V0IHRo aW5ncyBzdGFydGVkLgotKwotK2dkYl9leGl0Ci0rZ2RiX3N0YXJ0Ci0rZ2RiX3JlaW5pdGlhbGl6 ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCi0rZ2RiX2xvYWQgJHtiaW5maWxlfQotKwotK2lmICFbcnVu dG9fbWFpbl0gdGhlbiB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQg bWFpbiIKLSsgICAgY29udGludWUKLSt9Ci0rCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLSsjIFRlc3QgcHJpbnRpbmcgb2YgY2xhc3MgdmFyaWFibGUgaXMg bm90IHNoYWRvd2VkCi0rIyBieSBnbG9iYWwgdmFyaWFibGUKLSsKLStnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAibWFya2VyMSJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgIm1hcmtlcjEiCi0rCi0rZ2RiX3Rlc3QgInByaW50IHgiICI9IDMzIiAiUHJpbnQgY2xhc3Mg eCBzaGFkb3dpbmcgZ2xvYmFsIHgiCi0rCi0rCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLSsjIFRlc3QgcHJpbnRpbmcgbG9jYWwgdmFyaWFibGUgaXMgbm90 IHNoYWRvd2VkCi0rIyBieSBjbGFzcyB2YXJpYWJsZQotKwotK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJtYXJrZXIyIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi bWFya2VyMiIKLSsKLStnZGJfdGVzdCAicHJpbnQgeCIgIj0gNDQiICJQcmludCBsb2NhbCB4IHNo YWRvd2luZyBjbGFzcyB4IgotKwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0rIyBUZXN0IGlubmVyIHNjb3BlIHggaXMgcHJpbnRlZCBub3Qgb3V0ZXIgc2Nv cGUKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAibWFya2VyMyJdCi0r Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm1hcmtlcjMiCi0rCi0rZ2RiX3Rlc3QgInByaW50 IHgiICI9IDU1IiAiUHJpbnQgaW5uZXIgc2NvcGUgeCIKLSsKLSsjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotKyMgVGVzdCBwcmludGluZyBsb2NhbCB2YXJpYWJs ZSBpcyBub3Qgc2hhZG93ZWQKLSsjIGJ5IG5hbWVzcGFjZSB2YXJpYWJsZQotKwotK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJtYXJrZXI0Il0KLStnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAibWFya2VyNCIKLSsKLStnZGJfdGVzdCAicHJpbnQgeCIgIj0gNTUiICJQcmlu dCBsb2NhbCB4IG5vdCBuYW1lc3BhY2UgeCIKLSsKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotKyMgVGVzdCBpbXBvcnRlZCBuYW1lc3BhY2UgZWxlbWVudCBp cyBwcmludGVkCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIm1hcmtl cjUiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJtYXJrZXI1IgotKwotK2lmIFt0ZXN0 X2NvbXBpbGVyX2luZm8gZ2NjLTQtMy0qXSB0aGVuIHsgc2V0dXBfeGZhaWwgKi0qLSogfQotKwot K2dkYl90ZXN0ICJwcmludCB4IiAiPSAxMSIgIlByaW50IGltcG9ydGVkIG5hbWVzcGFjZSB4Igot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9jYWxsZnJhbWVjZmEuUyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9jYWxsZnJhbWVjZmEuUwotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLWluZGV4IDAwMDAwMDAuLjZkMDQyMWEKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9jYWxsZnJhbWVjZmEuUwotQEAgLTAsMCArMSwzMDkgQEAKLSsvKgot KyAgIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAg IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K LSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKyAqLwotKwotKy8qIFRoaXMgd2Fz IGNvbXBpbGVkIGZyb20gYSB0cml2aWFsIHByb2dyYW0ganVzdCB0byB0ZXN0IHRoZQotKyAgIERX X09QX2NhbGxfZnJhbWVfY2ZhIG9wZXJhdG9yOgotKwotKyAgICBpbnQgZnVuYyAoaW50IGFyZykg ewotKyAgICAgIHJldHVybiBhcmcgKyAyMzsKLSsgICAgfQotKwotKyAgICBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqYXJndltdKSB7Ci0rICAgICAgZnVuYyAoNzcpOwotKyAgICB9Ci0rKi8KLSsK LSsJLmZpbGUJInEuYyIKLSsJLnNlY3Rpb24JLmRlYnVnX2FiYnJldiwiIixAcHJvZ2JpdHMKLSsu TGRlYnVnX2FiYnJldjA6Ci0rCS5zZWN0aW9uCS5kZWJ1Z19pbmZvLCIiLEBwcm9nYml0cwotKy5M ZGVidWdfaW5mbzA6Ci0rCS5zZWN0aW9uCS5kZWJ1Z19saW5lLCIiLEBwcm9nYml0cwotKy5MZGVi dWdfbGluZTA6Ci0rCS50ZXh0Ci0rLkx0ZXh0MDoKLSsuZ2xvYmwgZnVuYwotKwkudHlwZQlmdW5j LCBAZnVuY3Rpb24KLStmdW5jOgotKy5MRkIwOgotKwkuZmlsZSAxICJxLmMiCi0rCS5sb2MgMSAy IDAKLSsJLmNmaV9zdGFydHByb2MKLSsJcHVzaGwJJWVicAotKwkuY2ZpX2RlZl9jZmFfb2Zmc2V0 IDgKLSsJbW92bAklZXNwLCAlZWJwCi0rCS5jZmlfb2Zmc2V0IDUsIC04Ci0rCS5jZmlfZGVmX2Nm YV9yZWdpc3RlciA1Ci0rCS5sb2MgMSAzIDAKLSsJbW92bAk4KCVlYnApLCAlZWF4Ci0rCWFkZGwJ JDIzLCAlZWF4Ci0rCS5sb2MgMSA0IDAKLSsJcG9wbAklZWJwCi0rCS5jZmlfcmVzdG9yZSA1Ci0r CS5jZmlfZGVmX2NmYSA0LCA0Ci0rCXJldAotKwkuY2ZpX2VuZHByb2MKLSsuTEZFMDoKLSsJLnNp emUJZnVuYywgLi1mdW5jCi0rLmdsb2JsIF9zdGFydAotKwkudHlwZQlfc3RhcnQsIEBmdW5jdGlv bgotK19zdGFydDoKLSsuTEZCMToKLSsJLmxvYyAxIDYgMAotKwkuY2ZpX3N0YXJ0cHJvYwotKwlw dXNobAklZWJwCi0rCS5jZmlfZGVmX2NmYV9vZmZzZXQgOAotKwltb3ZsCSVlc3AsICVlYnAKLSsJ LmNmaV9vZmZzZXQgNSwgLTgKLSsJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyIDUKLSsJc3VibAkkNCwg JWVzcAotKwkubG9jIDEgNyAwCi0rCW1vdmwJJDc3LCAoJWVzcCkKLSsJY2FsbAlmdW5jCi0rCS5s b2MgMSA4IDAKLSsJbGVhdmUKLSsJLmNmaV9yZXN0b3JlIDUKLSsJLmNmaV9kZWZfY2ZhIDQsIDQK LSsJcmV0Ci0rCS5jZmlfZW5kcHJvYwotKy5MRkUxOgotKwkuc2l6ZQlfc3RhcnQsIC4tX3N0YXJ0 Ci0rLkxldGV4dDA6Ci0rCS5zZWN0aW9uCS5kZWJ1Z19pbmZvCi0rCS5sb25nCTB4OWUKLSsJLnZh bHVlCTB4MwotKwkubG9uZwkuTGRlYnVnX2FiYnJldjAKLSsJLmJ5dGUJMHg0Ci0rCS51bGViMTI4 IDB4MQotKwkubG9uZwkuTEFTRjUKLSsJLmJ5dGUJMHgxCi0rCS5zdHJpbmcJInEuYyIKLSsJLmxv bmcJLkxBU0Y2Ci0rCS5sb25nCS5MdGV4dDAKLSsJLmxvbmcJLkxldGV4dDAKLSsJLmxvbmcJLkxk ZWJ1Z19saW5lMAotKwkudWxlYjEyOCAweDIKLSsJLmJ5dGUJMHgxCi0rCS5sb25nCS5MQVNGMAot KwkuYnl0ZQkweDEKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4MQotKwkubG9uZwkweDRmCi0rCS5s b25nCS5MRkIwCi0rCS5sb25nCS5MRkUwCi0rCS5ieXRlCTB4MQotKwkuYnl0ZQkweDljCi0rCS5s b25nCTB4NGYKLSsJLnVsZWIxMjggMHgzCi0rCS5zdHJpbmcJImFyZyIKLSsJLmJ5dGUJMHgxCi0r CS5ieXRlCTB4MQotKwkubG9uZwkweDRmCi0rCS5ieXRlCTB4MgotKwkuYnl0ZQkweDkxCi0rCS5z bGViMTI4IDAKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NAotKwkuYnl0ZQkweDQKLSsJLmJ5 dGUJMHg1Ci0rCS5zdHJpbmcJImludCIKLSsJLnVsZWIxMjggMHgyCi0rCS5ieXRlCTB4MQotKwku bG9uZwkuTEFTRjEKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4NgotKwkuYnl0ZQkweDEKLSsJLmxv bmcJMHg0ZgotKwkubG9uZwkuTEZCMQotKwkubG9uZwkuTEZFMQotKwkuYnl0ZQkweDEKLSsJLmJ5 dGUJMHg5YwotKwkubG9uZwkweDhlCi0rCS51bGViMTI4IDB4NQotKwkubG9uZwkuTEFTRjIKLSsJ LmJ5dGUJMHgxCi0rCS5ieXRlCTB4NgotKwkubG9uZwkweDRmCi0rCS5ieXRlCTB4MgotKwkuYnl0 ZQkweDkxCi0rCS5zbGViMTI4IDAKLSsJLnVsZWIxMjggMHg1Ci0rCS5sb25nCS5MQVNGMwotKwku Ynl0ZQkweDEKLSsJLmJ5dGUJMHg2Ci0rCS5sb25nCTB4OGUKLSsJLmJ5dGUJMHgyCi0rCS5ieXRl CTB4OTEKLSsJLnNsZWIxMjggNAotKwkuYnl0ZQkweDAKLSsJLnVsZWIxMjggMHg2Ci0rCS5ieXRl CTB4NAotKwkubG9uZwkweDk0Ci0rCS51bGViMTI4IDB4NgotKwkuYnl0ZQkweDQKLSsJLmxvbmcJ MHg5YQotKwkudWxlYjEyOCAweDcKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4NgotKwkubG9uZwku TEFTRjQKLSsJLmJ5dGUJMHgwCi0rCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYKLSsJLnVsZWIxMjgg MHgxCi0rCS51bGViMTI4IDB4MTEKLSsJLmJ5dGUJMHgxCi0rCS51bGViMTI4IDB4MjUKLSsJLnVs ZWIxMjggMHhlCi0rCS51bGViMTI4IDB4MTMKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4 MwotKwkudWxlYjEyOCAweDgKLSsJLnVsZWIxMjggMHgxYgotKwkudWxlYjEyOCAweGUKLSsJLnVs ZWIxMjggMHgxMQotKwkudWxlYjEyOCAweDEKLSsJLnVsZWIxMjggMHgxMgotKwkudWxlYjEyOCAw eDEKLSsJLnVsZWIxMjggMHgxMAotKwkudWxlYjEyOCAweDYKLSsJLmJ5dGUJMHgwCi0rCS5ieXRl CTB4MAotKwkudWxlYjEyOCAweDIKLSsJLnVsZWIxMjggMHgyZQotKwkuYnl0ZQkweDEKLSsJLnVs ZWIxMjggMHgzZgotKwkudWxlYjEyOCAweGMKLSsJLnVsZWIxMjggMHgzCi0rCS51bGViMTI4IDB4 ZQotKwkudWxlYjEyOCAweDNhCi0rCS51bGViMTI4IDB4YgotKwkudWxlYjEyOCAweDNiCi0rCS51 bGViMTI4IDB4YgotKwkudWxlYjEyOCAweDI3Ci0rCS51bGViMTI4IDB4YwotKwkudWxlYjEyOCAw eDQ5Ci0rCS51bGViMTI4IDB4MTMKLSsJLnVsZWIxMjggMHgxMQotKwkudWxlYjEyOCAweDEKLSsJ LnVsZWIxMjggMHgxMgotKwkudWxlYjEyOCAweDEKLSsJLnVsZWIxMjggMHg0MAotKwkudWxlYjEy OCAweGEKLSsJLnVsZWIxMjggMHgxCi0rCS51bGViMTI4IDB4MTMKLSsJLmJ5dGUJMHgwCi0rCS5i eXRlCTB4MAotKwkudWxlYjEyOCAweDMKLSsJLnVsZWIxMjggMHg1Ci0rCS5ieXRlCTB4MAotKwku dWxlYjEyOCAweDMKLSsJLnVsZWIxMjggMHg4Ci0rCS51bGViMTI4IDB4M2EKLSsJLnVsZWIxMjgg MHhiCi0rCS51bGViMTI4IDB4M2IKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4NDkKLSsJ LnVsZWIxMjggMHgxMwotKwkudWxlYjEyOCAweDIKLSsJLnVsZWIxMjggMHhhCi0rCS5ieXRlCTB4 MAotKwkuYnl0ZQkweDAKLSsJLnVsZWIxMjggMHg0Ci0rCS51bGViMTI4IDB4MjQKLSsJLmJ5dGUJ MHgwCi0rCS51bGViMTI4IDB4YgotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgzZQotKwku dWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgzCi0rCS51bGViMTI4IDB4OAotKwkuYnl0ZQkweDAK LSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NQotKwkudWxlYjEyOCAweDUKLSsJLmJ5dGUJMHgw Ci0rCS51bGViMTI4IDB4MwotKwkudWxlYjEyOCAweGUKLSsJLnVsZWIxMjggMHgzYQotKwkudWxl YjEyOCAweGIKLSsJLnVsZWIxMjggMHgzYgotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHg0 OQotKwkudWxlYjEyOCAweDEzCi0rCS51bGViMTI4IDB4MgotKwkudWxlYjEyOCAweGEKLSsJLmJ5 dGUJMHgwCi0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweDYKLSsJLnVsZWIxMjggMHhmCi0rCS5i eXRlCTB4MAotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4NDkK LSsJLnVsZWIxMjggMHgxMwotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4 NwotKwkudWxlYjEyOCAweDI0Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIx MjggMHhiCi0rCS51bGViMTI4IDB4M2UKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4Mwot KwkudWxlYjEyOCAweGUKLSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4MAotKwkuYnl0ZQkweDAKLSsJ LnNlY3Rpb24JLmRlYnVnX3B1Ym5hbWVzLCIiLEBwcm9nYml0cwotKwkubG9uZwkweDIwCi0rCS52 YWx1ZQkweDIKLSsJLmxvbmcJLkxkZWJ1Z19pbmZvMAotKwkubG9uZwkweGEyCi0rCS5sb25nCTB4 MjUKLSsJLnN0cmluZwkiZnVuYyIKLSsJLmxvbmcJMHg1NgotKwkuc3RyaW5nCSJtYWluIgotKwku bG9uZwkweDAKLSsJLnNlY3Rpb24JLmRlYnVnX2FyYW5nZXMsIiIsQHByb2diaXRzCi0rCS5sb25n CTB4MWMKLSsJLnZhbHVlCTB4MgotKwkubG9uZwkuTGRlYnVnX2luZm8wCi0rCS5ieXRlCTB4NAot KwkuYnl0ZQkweDAKLSsJLnZhbHVlCTB4MAotKwkudmFsdWUJMHgwCi0rCS5sb25nCS5MdGV4dDAK LSsJLmxvbmcJLkxldGV4dDAtLkx0ZXh0MAotKwkubG9uZwkweDAKLSsJLmxvbmcJMHgwCi0rCS5z ZWN0aW9uCS5kZWJ1Z19zdHIsIk1TIixAcHJvZ2JpdHMsMQotKy5MQVNGNToKLSsJLnN0cmluZwki R05VIEMgNC41LjAgMjAwOTA4MTAgKGV4cGVyaW1lbnRhbCkgW3RydW5rIHJldmlzaW9uIDE1MDYz M10iCi0rLkxBU0YyOgotKwkuc3RyaW5nCSJhcmdjIgotKy5MQVNGNjoKLSsJLnN0cmluZwkiL3Rt cCIKLSsuTEFTRjA6Ci0rCS5zdHJpbmcJImZ1bmMiCi0rLkxBU0YzOgotKwkuc3RyaW5nCSJhcmd2 IgotKy5MQVNGMToKLSsJLnN0cmluZwkibWFpbiIKLSsuTEFTRjQ6Ci0rCS5zdHJpbmcJImNoYXIi Ci0rCS5pZGVudAkiR0NDOiAoR05VKSA0LjUuMCAyMDA5MDgxMCAoZXhwZXJpbWVudGFsKSBbdHJ1 bmsgcmV2aXNpb24gMTUwNjMzXSIKLSsJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9n Yml0cwotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9jYWxsZnJhbWVjZmEu ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2NhbGxmcmFtZWNmYS5leHAKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4wMGQ2N2ZjCi0tLS0gL2Rldi9udWxsCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvY2FsbGZyYW1lY2ZhLmV4cAotQEAgLTAsMCArMSw1 NSBAQAotKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r Ci0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0r IwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgVGVzdCBEV19PUF9jYWxsX2Zy YW1lX2NmYS4KLSsKLSsjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3aGlj aCBzdXBwb3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCi0rIyBGb3Igbm93IHBpY2sgYSBzYW1wbGlu ZyBvZiBsaWtlbHkgdGFyZ2V0cy4KLStpZiB7IVtpc3RhcmdldCAqLSotbGludXgqXQotKyAgICAm JiAhW2lzdGFyZ2V0ICotKi1nbnUqXQotKyAgICAmJiAhW2lzdGFyZ2V0ICotKi1lbGYqXQotKyAg ICAmJiAhW2lzdGFyZ2V0ICotKi1vcGVuYnNkKl0KLSsgICAgJiYgIVtpc3RhcmdldCBhcm0tKi1l YWJpKl0KLSsgICAgJiYgIVtpc3RhcmdldCBwb3dlcnBjLSotZWFiaSpdfSB7Ci0rICAgIHJldHVy biAwICAKLSt9Ci0rIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHg4NiB0YXJnZXRzLgot K2lmIHshW2lzdGFyZ2V0IGk/ODYtKl19IHsKLSsgICAgcmV0dXJuIDAgIAorKyMgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisrCisraWYgJHRyYWNlbGV2ZWwgdGhlbiB7CisrICAgIHN0cmFjZSAkdHJh Y2VsZXZlbAogK30KICsKLStzZXQgdGVzdGZpbGUgImNhbGxmcmFtZWNmYSIKLStzZXQgc3JjZmls ZSAke3Rlc3RmaWxlfS5TCi0rc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3Rm aWxlfS54Cisrc2V0IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAogKwotK2lmICB7IFtnZGJfY29t cGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0 YWJsZSBcCi0rICAgICAgIFtsaXN0IHthZGRpdGlvbmFsX2ZsYWdzPS1ub3N0ZGxpYn1dXSAhPSAi IiB9IHsKKytzZXQgdGVzdGZpbGUgc2hhZG93aW5nCisrc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0u Y2MKKytzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CisraWYgIHsg W2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9 IiBleGVjdXRhYmxlIHtkZWJ1ZyBjKyt9XSAhPSAiIiB9IHsKKysgICAgdW50ZXN0ZWQgIkNvdWxk bid0IGNvbXBpbGUgdGVzdCBwcm9ncmFtIgogKyAgICByZXR1cm4gLTEKICt9CiArCisraWYgW2dl dF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKKysgICAgcmV0dXJuIC0xOworK30KKysKKysj IEdldCB0aGluZ3Mgc3RhcnRlZC4KKysKICtnZGJfZXhpdAogK2dkYl9zdGFydAogK2dkYl9yZWlu aXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgogK2dkYl9sb2FkICR7YmluZmlsZX0KICsKLStn ZGJfdGVzdCAiYnJlYWsgKmZ1bmMiICJCcmVha3BvaW50IDEuKiIgInNldCBicmVha3BvaW50IGZv ciBjYWxsLWZyYW1lLWNmYSIKLStnZGJfdGVzdCAicnVuIiAiIiAicnVuIGZvciBjYWxsLWZyYW1l LWNmYSIKLStnZGJfdGVzdCAiZGlzcGxheSBhcmciICJhcmcgPSA3NyIgInNldCBkaXNwbGF5IGZv ciBjYWxsLWZyYW1lLWNmYSIKLSsKLSsjIFdlIGtub3cgaG93IG1hbnkgaW5zdHJ1Y3Rpb25zIGFy ZSBpbiB0aGUgZnVuY3Rpb24uICBOb3RlIHRoYXQgd2UKLSsjIGNhbid0IGhhbmRsZSB0aGUgInJl dCIgaW5zdHJ1Y3Rpb24gZHVlIHRvIHRoZSBlcGlsb2d1ZSB1bndpbmRlci4KLStmb3Ige3NldCBp IDF9IHskaSA8IDV9IHtpbmNyIGl9IHsKLSsgICAgZ2RiX3Rlc3QgInNpIiAiYXJnID0gNzciICJz dGVwICRpIGZvciBjYWxsLWZyYW1lLWNmYSIKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAg ICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IG1haW4iCisrICAgIGNvbnRpbnVl CiArfQorKworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisr IyBUZXN0IHByaW50aW5nIG9mIGNsYXNzIHZhcmlhYmxlIGlzIG5vdCBzaGFkb3dlZAorKyMgYnkg Z2xvYmFsIHZhcmlhYmxlCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg Im1hcmtlcjEiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJtYXJrZXIxIgorKworK2dk Yl90ZXN0ICJwcmludCB4IiAiPSAzMyIgIlByaW50IGNsYXNzIHggc2hhZG93aW5nIGdsb2JhbCB4 IgorKworKworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisr IyBUZXN0IHByaW50aW5nIGxvY2FsIHZhcmlhYmxlIGlzIG5vdCBzaGFkb3dlZAorKyMgYnkgY2xh c3MgdmFyaWFibGUKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAibWFy a2VyMiJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm1hcmtlcjIiCisrCisrZ2RiX3Rl c3QgInByaW50IHgiICI9IDQ0IiAiUHJpbnQgbG9jYWwgeCBzaGFkb3dpbmcgY2xhc3MgeCIKKysK KysjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgVGVzdCBp bm5lciBzY29wZSB4IGlzIHByaW50ZWQgbm90IG91dGVyIHNjb3BlCisrCisrZ2RiX2JyZWFrcG9p bnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIm1hcmtlcjMiXQorK2dkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJtYXJrZXIzIgorKworK2dkYl90ZXN0ICJwcmludCB4IiAiPSA1NSIgIlByaW50IGlu bmVyIHNjb3BlIHgiCisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKysjIFRlc3QgcHJpbnRpbmcgbG9jYWwgdmFyaWFibGUgaXMgbm90IHNoYWRvd2VkCisr IyBieSBuYW1lc3BhY2UgdmFyaWFibGUKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAibWFya2VyNCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm1hcmtlcjQi CisrCisrZ2RiX3Rlc3QgInByaW50IHgiICI9IDU1IiAiUHJpbnQgbG9jYWwgeCBub3QgbmFtZXNw YWNlIHgiCisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KysjIFRlc3QgaW1wb3J0ZWQgbmFtZXNwYWNlIGVsZW1lbnQgaXMgcHJpbnRlZAorKworK2dkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJtYXJrZXI1Il0KKytnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAibWFya2VyNSIKKysKKytpZiBbdGVzdF9jb21waWxlcl9pbmZvIGdjYy00 LTMtKl0gdGhlbiB7IHNldHVwX3hmYWlsICotKi0qIH0KKysKKytnZGJfdGVzdCAicHJpbnQgeCIg Ij0gMTEiICJQcmludCBpbXBvcnRlZCBuYW1lc3BhY2UgeCIKIGRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5kd2FyZjIvZHcyLWFyYW5nZXMuUyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItYXJhbmdlcy5TCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uZDVi OWNhNQpAQCAtMjUxMTMsNiArMjYyMjEsMTI4IEBAIGluZGV4IDQ5NWFlNDUuLmQwOGQ3YTQgMTAw NjQ0CiAgCSAgICAtcmUgIi4qdGltZV9hdF9zdGFydHVwID0gZ2V0X3J1bl90aW1lLiokZ2RiX3By b21wdCAkIiB7CiAgCQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBnZXRfcnVuX3RpbWUgYW5k IGV2ZXJ5dGhpbmcgaXQgY2FsbHMiCiAgCQlzZXQgY29tbWFuZCAibmV4dCIKK2RpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5qYXZhL2pucGUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2 YS9qbnBlLmV4cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjc0ZDRkNTgK Ky0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmphdmEvam5wZS5leHAKK0BA IC0wLDAgKzEsNzIgQEAKKysjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor KyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytpZiAkdHJhY2Vs ZXZlbCB0aGVuIHsKKysgIHN0cmFjZSAkdHJhY2VsZXZlbAorK30KKysKKytsb2FkX2xpYiAiamF2 YS5leHAiCisrCisrc2V0IHRlc3RmaWxlICJqbnBlIgorK3NldCBzcmNmaWxlICR7c3JjZGlyfS8k c3ViZGlyLyR7dGVzdGZpbGV9LmphdmEKKytzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9 LyR7dGVzdGZpbGV9CisraWYgIHsgW2NvbXBpbGVfamF2YV9mcm9tX3NvdXJjZSAke3NyY2ZpbGV9 ICR7YmluZmlsZX0gIi1nIl0gIT0gIiIgfSB7CisrICAgIHVudGVzdGVkICJDb3VsZG4ndCBjb21w aWxlICR7c3JjZmlsZX0iCisrICAgIHJldHVybiAtMQorK30KKysKKytzZXQgcHJtc19pZCAwCisr c2V0IGJ1Z19pZCAwCisrCisrIyBTdGFydCB3aXRoIGEgZnJlc2ggZ2RiLgorKworK2dkYl9leGl0 CisrZ2RiX3N0YXJ0CisrZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisrZ2Ri X2xvYWQgJHtiaW5maWxlfQorKworK3NldCBsaW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicmVh ayBoZXJlIiAkdGVzdGZpbGUuamF2YV0KKytnZGJfdGVzdCAiYnJlYWsgJHRlc3RmaWxlLmphdmE6 JGxpbmUiICIiCisrCisrZ2RiX3Rlc3QgInJ1biIgXAorKyAgIkN1cnJlbnQgbGFuZ3VhZ2UuKmph dmEiIFwKKysgICJydW4gamF2YSBuZXh0LW92ZXItdGhyb3ciCisrCisrIyBTZWUgd2hldGhlciB3 ZSBoYXZlIHRoZSBuZWVkZWQgdW53aW5kZXIgaG9va3MuCisrc2V0IG9rIDEKKytnZGJfdGVzdF9t dWx0aXBsZSAicHJpbnQgX1Vud2luZF9EZWJ1Z0hvb2siICJjaGVjayBmb3IgdW53aW5kZXIgaG9v ayBpbiBqYXZhIiB7CisrICAgIC1yZSAiPSAuKl9VbndpbmRfRGVidWdIb29rLipcclxuJGdkYl9w cm9tcHQgJCIgeworKwlwYXNzICJjaGVjayBmb3IgdW53aW5kZXIgaG9vayBpbiBqYXZhIgorKyAg ICB9CisrICAgIC1yZSAiTm8gc3ltYm9sIC4qIGluIGN1cnJlbnQgY29udGV4dC5cclxuJGdkYl9w cm9tcHQgJCIgeworKwkjIFBhc3MgdGhlIHRlc3Qgc28gd2UgZG9uJ3QgZ2V0IGJvZ3VzIGZhaWxz IGluIHRoZSByZXN1bHRzLgorKwlwYXNzICJjaGVjayBmb3IgdW53aW5kZXIgaG9vayBpbiBqYXZh IgorKwlzZXQgb2sgMAorKyAgICB9CisrfQorK2lmIHshJG9rfSB7CisrICAgIHVudGVzdGVkIGpu cGUuZXhwCisrICAgIHJldHVybiAtMQorK30KKysKKytnZGJfdGVzdCAiaGFuZGxlIFNJR1NFR1Yg bm9zdG9wIG5vcHJpbnQiIFwKKysgICJTSUdTRUdWLipmYXVsdCIgXAorKyAgImRpc2FibGUgU0lH U0VHViBmb3IgbmV4dC1vdmVyLU5QRSIKKysKKysjIFdlIHNvbWV0aW1lcyBzdG9wIGF0IGxpbmUg MzcsIG5vdCBsaW5lIDM1LiAgVGhpcyBzZWVtcyB0byBiZSBhIGdjagorKyMgb2RkaXR5IC0tIGFu b3RoZXIgbmV4dCB3aWxsIHNvbHZlIGl0LgorK2dkYl90ZXN0ICJuZXh0IiBcCisrICAiM1xbNTdc XS4qIiBcCisrICAibmV4dCBvdmVyIE5QRSIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5qYXZhL2pucGUuamF2YSBiL2dkYi90ZXN0c3VpdGUvZ2RiLmphdmEvam5wZS5qYXZhCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZmZjYTNhYgorLS0tIC9kZXYvbnVsbAor KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2YS9qbnBlLmphdmEKK0BAIC0wLDAgKzEsMzggQEAK KysvLyBUZXN0IG5leHQtb3Zlci1OUEUuCisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdE QiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisr ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKwor KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKysgICAqLworKworK3B1YmxpYyBjbGFzcyBqbnBlCisreworKyAgcHVibGljIHN0YXRpYyBT dHJpbmcgbnBlICgpCisrICB7CisrICAgIHJldHVybiAoKE9iamVjdCkgbnVsbCkudG9TdHJpbmco KTsKKysgIH0KKysKKysgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKQor KyAgeworKyAgICB0cnkKKysgICAgICB7CisrCVN5c3RlbS5vdXQucHJpbnRsbiAobnBlICgpKTsg Ly8gYnJlYWsgaGVyZQorKyAgICAgIH0KKysgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9u IG4pCisrICAgICAgeworKwlTeXN0ZW0ub3V0LnByaW50bG4gKCJzdWNjZXNzIik7CisrICAgICAg fQorKyAgfQorK30KIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9nZGI3MDEuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvZ2RiNzAxLmV4cAogaW5kZXggZDRhY2RjMi4uMjQ0Yzcz MSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL2dkYjcwMS5leHAKQEAgLTI1NjY4 LDEwICsyNjg5OCwxMCBAQCBpbmRleCAxNjFiMzRmLi4wZjliNGQ0IDEwMDY0NAogIAogIAogZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItY21kLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pMi12YXItY21kLmV4cAotaW5kZXggOTZkNDJhMS4uZTkwMGQxNCAxMDA2 NDQKK2luZGV4IGRkYTc3YmIuLjBlOTE2MzQgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5taS9taTItdmFyLWNtZC5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXIt Y21kLmV4cAotQEAgLTE0Niw3ICsxNDYsNyBAQCBtaV9zdGVwX3RvICJkb19sb2NhbHNfdGVzdHMi ICIiICJ2YXItY21kLmMiICRsaW5lX2RsdF9saW50ZWdlciAic3RlcCBhdCBkb19sb2NhbAorQEAg LTE1MSw3ICsxNTEsNyBAQCBtaV9zdGVwX3RvICJkb19sb2NhbHNfdGVzdHMiICIiICJ2YXItY21k LmMiICRsaW5lX2RsdF9saW50ZWdlciAic3RlcCBhdCBkb19sb2NhbAogICMgVGVzdDogY192YXJp YWJsZS0yLjIKICAjIERlc2M6IGNoZWNrIHdoZXRoZXIgb25seSBsaW50ZWdlciBjaGFuZ2VkIHZh bHVlcwogIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCkBAIC0yNTY4MCw3ICsyNjkxMCw3 IEBAIGluZGV4IDk2ZDQyYTEuLmU5MDBkMTQgMTAwNjQ0CiAgCSJ1cGRhdGUgYWxsIHZhcnM6IGxp bnRlZ2VyIGNoYW5nZWQiCiAgCiAgIyBTdGVwIG92ZXIgImxwaW50ZWdlciA9ICZsaW50ZWdlcjsi Ci1AQCAtMTU1LDcgKzE1NSw3IEBAIG1pX3N0ZXBfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIgInZh ci1jbWQuYyIgW2V4cHIgJGxpbmVfZGx0X2xpbnRlZ2VyICsgMV0gInN0ZXAKK0BAIC0xNjAsNyAr MTYwLDcgQEAgbWlfc3RlcF90byAiZG9fbG9jYWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiBbZXhw ciAkbGluZV9kbHRfbGludGVnZXIgKyAxXSAic3RlcAogICMgVGVzdDogY192YXJpYWJsZS0yLjMK ICAjIERlc2M6IGNoZWNrIHdoZXRoZXIgb25seSBscGludGVnZXIgY2hhbmdlZAogIG1pX2dkYl90 ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCkBAIC0yNTY4OSw3ICsyNjkxOSw3IEBAIGluZGV4IDk2ZDQy YTEuLmU5MDBkMTQgMTAwNjQ0CiAgCSJ1cGRhdGUgYWxsIHZhcnM6IGxwaW50ZWdlciBjaGFuZ2Vk IgogIAogICMgU3RlcCBvdmVyICJsY2hhcmFjdGVyID0gJ2EnOyIKLUBAIC0xNjQsNyArMTY0LDcg QEAgbWlfc3RlcF90byAiZG9fbG9jYWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiBbZXhwciAkbGlu ZV9kbHRfbGludGVnZXIgKyAyXSAic3RlcAorQEAgLTE2OSw3ICsxNjksNyBAQCBtaV9zdGVwX3Rv ICJkb19sb2NhbHNfdGVzdHMiICIiICJ2YXItY21kLmMiIFtleHByICRsaW5lX2RsdF9saW50ZWdl ciArIDJdICJzdGVwCiAgIyBUZXN0OiBjX3ZhcmlhYmxlLTIuNAogICMgRGVzYzogY2hlY2sgd2hl dGhlciBvbmx5IGxjaGFyYWN0ZXIgY2hhbmdlZAogIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAq IiBcCkBAIC0yNTY5OCw3ICsyNjkyOCw3IEBAIGluZGV4IDk2ZDQyYTEuLmU5MDBkMTQgMTAwNjQ0 CiAgCSJ1cGRhdGUgYWxsIHZhcnM6IGxjaGFyYWN0ZXIgY2hhbmdlZCIKICAKICAjIFN0ZXAgb3Zl ciAibHBjaGFyYWN0ZXIgPSAmbGNoYXJhY3RlcjsiCi1AQCAtMTczLDcgKzE3Myw3IEBAIG1pX3N0 ZXBfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIgInZhci1jbWQuYyIgW2V4cHIgJGxpbmVfZGx0X2xp bnRlZ2VyICsgM10gInN0ZXAKK0BAIC0xNzgsNyArMTc4LDcgQEAgbWlfc3RlcF90byAiZG9fbG9j YWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiBbZXhwciAkbGluZV9kbHRfbGludGVnZXIgKyAzXSAi c3RlcAogICMgVGVzdDogY192YXJpYWJsZS0yLjUKICAjIERlc2M6IGNoZWNrIHdoZXRoZXIgb25s eSBscGNoYXJhY3RlciBjaGFuZ2VkCiAgbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKQEAg LTI1NzA3LDcgKzI2OTM3LDcgQEAgaW5kZXggOTZkNDJhMS4uZTkwMGQxNCAxMDA2NDQKICAJInVw ZGF0ZSBhbGwgdmFyczogbHBjaGFyYWN0ZXIgY2hhbmdlZCIKICAKICAKLUBAIC0xOTUsNyArMTk1 LDcgQEAgbWlfZXhlY3V0ZV90byAiZXhlYy1zdGVwIDkiICJlbmQtc3RlcHBpbmctcmFuZ2UiICJk b19sb2NhbHNfdGVzdHMiICIiIFwKK0BAIC0yMDAsNyArMjAwLDcgQEAgbWlfZXhlY3V0ZV90byAi ZXhlYy1zdGVwIDkiICJlbmQtc3RlcHBpbmctcmFuZ2UiICJkb19sb2NhbHNfdGVzdHMiICIiIFwK ICAjIERlc2M6IGNoZWNrIHdoZXRoZXIgbGxvbmcsIGxwbG9uZywgbGZsb2F0LCBscGZsb2F0LCBs ZG91YmxlLCBscGRvdWJsZSwgbHNpbXBsZS5pbnRlZ2VyLAogICMgICAgICAgbHNpbXBsZS51bnNp Z25lZF9jaGFyYWN0ZXIgbHNpbXBsZS5pbnRlZ2VyIGxzaW1wbGUuY2hhcmFjdGVyIGNoYW5nZWQK ICBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXApAQCAtMjU3MTYsNyArMjY5NDYsNyBAQCBp bmRleCA5NmQ0MmExLi5lOTAwZDE0IDEwMDY0NAogIAkidXBkYXRlIGFsbCB2YXJzOiBtYW55IGNo YW5nZWQiCiAgCiAgIyBTdGVwIG92ZXI6Ci1AQCAtMjEyLDcgKzIxMiw3IEBAIG1pX2V4ZWN1dGVf dG8gImV4ZWMtc3RlcCA0IiAiZW5kLXN0ZXBwaW5nLXJhbmdlIiAiZG9fbG9jYWxzX3Rlc3RzIiAi IiBcCitAQCAtMjE3LDcgKzIxNyw3IEBAIG1pX2V4ZWN1dGVfdG8gImV4ZWMtc3RlcCA0IiAiZW5k LXN0ZXBwaW5nLXJhbmdlIiAiZG9fbG9jYWxzX3Rlc3RzIiAiIiBcCiAgIyBUZXN0OiBjX3Zhcmlh YmxlLTIuNwogICMgRGVzYzogY2hlY2sgd2hldGhlciAobHNpbXBsZS5zaWduZWRfY2hhcmFjdGVy LCBsc2ltcGxlLmNoYXJfcHRyKSBscHNpbXBsZSwgZnVuYyBjaGFuZ2VkCiAgbWlfZ2RiX3Rlc3Qg Ii12YXItdXBkYXRlICoiIFwKQEAgLTI1NzI1LDcgKzI2OTU1LDcgQEAgaW5kZXggOTZkNDJhMS4u ZTkwMGQxNCAxMDA2NDQKICAJInVwZGF0ZSBhbGwgdmFyczogZnVuYyBhbmQgbHBzaW1wbGUgY2hh bmdlZCIKICAKICAjIFN0ZXAgb3ZlcgotQEAgLTIzNCw3ICsyMzQsNyBAQCBtaV9leGVjdXRlX3Rv ICJleGVjLXN0ZXAgOCIgImVuZC1zdGVwcGluZy1yYW5nZSIgImRvX2xvY2Fsc190ZXN0cyIgIiIg XAorQEAgLTIzOSw3ICsyMzksNyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAgOCIgImVuZC1z dGVwcGluZy1yYW5nZSIgImRvX2xvY2Fsc190ZXN0cyIgIiIgXAogICMgTm90ZTogdGhpcyB0ZXN0 IGFsc28gY2hlY2tzIHRoYXQgbHBzaW1wbGUtPmludGVnZXIgYW5kIGxzaW1wbGUuaW50ZWdlciBo YXZlCiAgIyAgICAgICBjaGFuZ2VkICh0aGV5IGFyZSB0aGUgc2FtZSkKICBtaV9nZGJfdGVzdCAi LXZhci11cGRhdGUgKiIgXApAQCAtMjU3MzQsNyArMjY5NjQsNyBAQCBpbmRleCA5NmQ0MmExLi5l OTAwZDE0IDEwMDY0NAogIAkidXBkYXRlIGFsbCB2YXJzOiBsc2ltcGxlIGFuZCBvdGhlcnMgY2hh bmdlZCIKICAKICAKLUBAIC0yNTcsNyArMjU3LDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItYXNzaWdu IGxpbnRlZ2VyIDMzMzMiIFwKK0BAIC0yNjIsNyArMjYyLDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXIt YXNzaWduIGxpbnRlZ2VyIDMzMzMiIFwKICAjIGNoYW5nZS4KICBzZXQgbHBjaGFyX3VwZGF0ZSAi XHtuYW1lPVwibHBjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJm YWxzZVwiXH0sIgogIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCkBAIC0yNTc0Myw3ICsy Njk3Myw3IEBAIGluZGV4IDk2ZDQyYTEuLmU5MDBkMTQgMTAwNjQ0CiAgCSJ1cGRhdGUgYWxsIHZh cnM6IGxpbnRlZ2VyIGNoYW5nZWQgYWZ0ZXIgYXNzaWduIgogIAogIG1pX2dkYl90ZXN0ICItdmFy LWFzc2lnbiBsaW50ZWdlciAzMzMzIiBcCi1AQCAtMjc3LDcgKzI3Nyw3IEBAIG1pX2dkYl90ZXN0 ICItdmFyLWFzc2lnbiBscGludGVnZXIgXCImbGludGVnZXIgKyAzXCIiIFwKK0BAIC0yODIsNyAr MjgyLDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItYXNzaWduIGxwaW50ZWdlciBcIiZsaW50ZWdlciAr IDNcIiIgXAogIAkiYXNzaWduIHRvIGxwaW50ZWdlciIKICAKICBtaV9nZGJfdGVzdCAiLXZhci11 cGRhdGUgKiIgXApAQCAtMjU3NTIsNyArMjY5ODIsNyBAQCBpbmRleCA5NmQ0MmExLi5lOTAwZDE0 IDEwMDY0NAogIAkidXBkYXRlIGFsbCB2YXJzOiBscGludGVnZXIgY2hhbmdlZCBhZnRlciBhc3Np Z24iCiAgCiAgbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLUBAIC00MDIsNyArNDAyLDcg QEAgbWlfc3RlcF90byAic3Vicm91dGluZTEiICJce25hbWU9XCJpXCIsdmFsdWU9XCIuKlwiXH0s XHtuYW1lPVwibFwiLHZhbHVlPVwiLipcIlwKK0BAIC00MDcsNyArNDA3LDcgQEAgbWlfc3RlcF90 byAic3Vicm91dGluZTEiICJce25hbWU9XCJpXCIsdmFsdWU9XCIuKlwiXH0sXHtuYW1lPVwibFwi LHZhbHVlPVwiLipcIlwKICAjIFRlc3Q6IGNfdmFyaWFibGUtMi4xMwogICMgRGVzYzogY2hhbmdl IHN1YnJvdXRpbmUxIGxvY2FsIGkKICBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXApAQCAt MjU3NjEsNyArMjY5OTEsNyBAQCBpbmRleCA5NmQ0MmExLi5lOTAwZDE0IDEwMDY0NAogIAkidXBk YXRlIGFsbCB2YXJzOiBpIGNoYW5nZWQiCiAgCiAgbWlfc3RlcF90byAic3Vicm91dGluZTEiICJc e25hbWU9XCJpXCIsdmFsdWU9XCIuKlwiXH0sXHtuYW1lPVwibFwiLHZhbHVlPVwiLipcIlx9IiBc Ci1AQCAtNDExLDcgKzQxMSw3IEBAIG1pX3N0ZXBfdG8gInN1YnJvdXRpbmUxIiAiXHtuYW1lPVwi aVwiLHZhbHVlPVwiLipcIlx9LFx7bmFtZT1cImxcIix2YWx1ZT1cIi4qXCJcCitAQCAtNDE2LDcg KzQxNiw3IEBAIG1pX3N0ZXBfdG8gInN1YnJvdXRpbmUxIiAiXHtuYW1lPVwiaVwiLHZhbHVlPVwi LipcIlx9LFx7bmFtZT1cImxcIix2YWx1ZT1cIi4qXCJcCiAgIyBUZXN0OiBjX3ZhcmlhYmxlLTIu MTQKICAjIERlc2M6IGNoYW5nZSBkb19sb2NhbHNfdGVzdHMgbG9jYWwgbGxvbmcKICBtaV9nZGJf dGVzdCAiLXZhci11cGRhdGUgKiIgXApAQCAtMjU3NzAsNyArMjcwMDAsNyBAQCBpbmRleCA5NmQ0 MmExLi5lOTAwZDE0IDEwMDY0NAogIAkidXBkYXRlIGFsbCB2YXJzOiBsbG9uZyBjaGFuZ2VkIgog IAogIHNldCBsaW5lX2RsdF9jYWxsX3N1YnJvdXRpbmUxIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJz dWJyb3V0aW5lMSAobGludGVnZXIsICZsbG9uZyk7Il0KLUBAIC00MjEsNyArNDIxLDcgQEAgbWlf bmV4dF90byAiZG9fbG9jYWxzX3Rlc3RzIiAiIgkidmFyLWNtZC5jIiBcCitAQCAtNDI2LDcgKzQy Niw3IEBAIG1pX25leHRfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIJInZhci1jbWQuYyIgXAogICMg VGVzdDogY192YXJpYWJsZS0yLjE1CiAgIyBEZXNjOiBjaGVjayBmb3Igb3V0IG9mIHNjb3BlIHN1 YnJvdXRpbmUxIGxvY2FscwogIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCkBAIC0yNTc3 OSw3ICsyNzAwOSw3IEBAIGluZGV4IDk2ZDQyYTEuLmU5MDBkMTQgMTAwNjQ0CiAgCSJ1cGRhdGUg YWxsIHZhcnM6IGFsbCBub3cgb3V0IG9mIHNjb3BlIgogIAogICMgRG9uZSB3aXRoIGxvY2Fscy9n bG9iYWxzIHRlc3RzLiBFcmFzZSBhbGwgdmFyaWFibGVzCi1AQCAtNTEzLDE0ICs1MTMsMTQgQEAg bWlfZ2RiX3Rlc3QgIi12YXItY3JlYXRlIHNlbGVjdGVkX2EgQCBhIiBcCitAQCAtNTE4LDE0ICs1 MTgsMTQgQEAgbWlfZ2RiX3Rlc3QgIi12YXItY3JlYXRlIHNlbGVjdGVkX2EgQCBhIiBcCiAgbWlf Y29udGludWVfdG8gaW5jcl9hCiAgCiAgbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIHNlbGVjdGVk X2EiIFwKQEAgLTI2MDAwLDIzICsyNzIzMCwxMCBAQCBpbmRleCAwMDAwMDAwLi5lNDhkNTIwCiAr ICBwcm9ncmFtIG1haW4KICsgIGNhbGwgZiAoJ2ZvbycpCiArICBlbmQKLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vTWFrZWZpbGUuaW4gYi9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vTWFrZWZpbGUuaW4KLWluZGV4IDc5YmU5ZTcuLmM0OWY3MTMgMTAwNjQ0Ci0tLS0gYS9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vTWFrZWZpbGUuaW4KLSsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9NYWtlZmlsZS5pbgotQEAgLTEsNyArMSw3IEBACi0gVlBBVEggPSBAc3JjZGly QAotIHNyY2RpciA9IEBzcmNkaXJACi0gCi0tRVhFQ1VUQUJMRVMgPSBweXRob24tdmFsdWUKLStF WEVDVVRBQkxFUyA9IHB5dGhvbi12YWx1ZSBweXRob24tcHJldHR5cHJpbnQgcHl0aG9uLXRlbXBs YXRlCi0gCi0gYWxsIGluZm8gaW5zdGFsbC1pbmZvIGR2aSBpbnN0YWxsIHVuaW5zdGFsbCBpbnN0 YWxsY2hlY2sgY2hlY2s6Ci0gCUBlY2hvICJOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICRALi4uIgot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tY21kLmV4cCBiL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tY21kLmV4cAorZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1jbWQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LWNtZC5leHAKIGluZGV4IGY2ZWY5MzguLjEwMzJhMmQgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHl0aG9uLWNtZC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weXRob24tY21kLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LWNtZC5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1jbWQuZXhwCiBAQCAt MjAsMzYgKzIwLDE1IEBAIGlmICR0cmFjZWxldmVsIHRoZW4gewogICAgICBzdHJhY2UgJHRyYWNl bGV2ZWwKICB9CkBAIC0yNjA1NywxMCArMjcyNzQsMTAgQEAgaW5kZXggZjZlZjkzOC4uMTAzMmEy ZCAxMDA2NDQKICB9CiAgCiAgIyBUZXN0IGEgc2ltcGxlIGNvbW1hbmQuCi1kaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHl0aG9uLWZyYW1lLmV4cAotaW5kZXggODJiNTI2ZS4uODJhZTgxNCAxMDA2 NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tZnJhbWUuZXhwCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLWZyYW1lLmV4cAorZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktZnJhbWUuZXhwCitpbmRleCBhNjdlYWEzLi41MzgwYzBmIDEwMDY0NAorLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAorKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAogQEAgLTIwLDQwICsyMCwyOCBAQCBpZiAkdHJh Y2VsZXZlbCB0aGVuIHsKICAgICAgc3RyYWNlICR0cmFjZWxldmVsCiAgfQpAQCAtMjYwNzYsNyAr MjcyOTMsNyBAQCBpbmRleCA4MmI1MjZlLi44MmFlODE0IDEwMDY0NAogKyAgcmV0dXJuIC0xCiAr fQogKwotIHNldCB0ZXN0ZmlsZSAicHl0aG9uLWZyYW1lIgorIHNldCB0ZXN0ZmlsZSAicHktZnJh bWUiCiAgc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwogIHNldCBiaW5maWxlICR7b2JqZGlyfS8k e3N1YmRpcn0vJHt0ZXN0ZmlsZX0KICsKQEAgLTI2MTQ3LDEwICsyNzM2NCwxMCBAQCBpbmRleCA4 MmI1MjZlLi44MmFlODE0IDEwMDY0NAogIGdkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9 JywgZ2RiLnNlbGVjdGVkX2ZyYW1lICgpID09IGYxIiAiID0gVHJ1ZSIgInRlc3QgZ2RiLnNlbGVj dGVkX2ZyYW1lIgogKwogK2dkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAuYmxv Y2sgKCkiICI8Z2RiLkJsb2NrIG9iamVjdCBhdCAweFxbXFs6eGRpZ2l0OlxdXF0rPiIgInRlc3Qg RnJhbWUuYmxvY2siCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhv bi1mdW5jdGlvbi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLWZ1bmN0aW9u LmV4cAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mdW5jdGlvbi5l eHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCiBpbmRleCA3ZmVj YTJiLi40YWU1MTlmIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhv bi1mdW5jdGlvbi5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tZnVu Y3Rpb24uZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhw CisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCiBAQCAtMjAs MzYgKzIwLDE1IEBAIGlmICR0cmFjZWxldmVsIHRoZW4gewogICAgICBzdHJhY2UgJHRyYWNlbGV2 ZWwKICB9CkBAIC0yNjE5MSwxMSArMjc0MDgsMTEgQEAgaW5kZXggN2ZlY2EyYi4uNGFlNTE5ZiAx MDA2NDQKICB9CiAgCiAgZ2RiX3B5X3Rlc3RfbXVsdGlwbGUgImlucHV0IGNvbnZlbmllbmNlIGZ1 bmN0aW9uIiBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1p bmZlcmlvci5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZlcmlvci5jCitk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWluZmVyaW9yLmMgYi9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktaW5mZXJpb3IuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQK IGluZGV4IDAwMDAwMDAuLjBiNDgyOTkKIC0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weXRob24taW5mZXJpb3IuYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LWluZmVyaW9yLmMKIEBAIC0wLDAgKzEsNDkgQEAKICsjaW5jbHVkZSA8c3RkaW8u aD4KICsjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC0yNjI0NiwxMSArMjc0NjMsMTEgQEAgaW5kZXgg MDAwMDAwMC4uMGI0ODI5OQogKwogKyAgcmV0dXJuIGYxICgxLCAyKTsKICt9Ci1kaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZlcmlvci5leHAgYi9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHl0aG9uLWluZmVyaW9yLmV4cAorZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1pbmZlcmlvci5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktaW5mZXJpb3IuZXhwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAw MC4uZWE0MTNjNgoraW5kZXggMDAwMDAwMC4uNzE5YjE3OAogLS0tIC9kZXYvbnVsbAotKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZlcmlvci5leHAKKysrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1pbmZlcmlvci5leHAKIEBAIC0wLDAgKzEsMjAxIEBACiAr IyBDb3B5cmlnaHQgKEMpIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC0yNjI4NSw3ICsyNzUwMiw3IEBAIGluZGV4IDAwMDAwMDAuLmVhNDEzYzYKICsgIHJldHVybiAt MQogK30KICsKLStzZXQgdGVzdGZpbGUgInB5dGhvbi1pbmZlcmlvciIKKytzZXQgdGVzdGZpbGUg InB5LWluZmVyaW9yIgogK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKICtzZXQgYmluZmlsZSAk e29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CiArCkBAIC0yNjQ1MywxMSArMjc2NzAsMTEg QEAgaW5kZXggMDAwMDAwMC4uZWE0MTNjNgogKyAgICBnZGJfdGVzdCAicHkgcHJpbnQgZ2RiLmlu ZmVyaW9ycygpXFswXF0uc2VhcmNoX21lbW9yeSAoc3RhcnRfYWRkciwgbGVuZ3RoLCAweGZkYjk3 NTMxLCA0KSIgXAogKyAgICAgICIke29uZV9wYXR0ZXJuX2ZvdW5kfSIgImZpbmQgcGF0dGVybiBz dHJhZGRsaW5nIGNodW5rIGJvdW5kYXJ5IgogK30KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHl0aG9uLWluZnRocmVhZC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5dGhvbi1pbmZ0aHJlYWQuYworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1pbmZ0aHJlYWQuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1pbmZ0aHJlYWQu YwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjIyZWI5ZjIKIC0tLSAvZGV2 L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24taW5mdGhyZWFkLmMK KysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1pbmZ0aHJlYWQuYwogQEAgLTAsMCAr MSwxNCBAQAogK2ludCBmMiAoaW50IGEpCiArewpAQCAtMjY0NzMsMTEgKzI3NjkwLDExIEBAIGlu ZGV4IDAwMDAwMDAuLjIyZWI5ZjIKICt7CiArICByZXR1cm4gZjEgKDEsIDIpOwogK30KLWRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLWluZnRocmVhZC5leHAgYi9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLWluZnRocmVhZC5leHAKK2RpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktaW5mdGhyZWFkLmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS1pbmZ0aHJlYWQuZXhwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMC4uZDQ0NDU1NAoraW5kZXggMDAwMDAwMC4uZTlkMThiNwogLS0tIC9kZXYvbnVs bAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZ0aHJlYWQuZXhwCisr KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktaW5mdGhyZWFkLmV4cAogQEAgLTAsMCAr MSw1OCBAQAogKyMgQ29weXJpZ2h0IChDKSAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgogKwpAQCAtMjY1MTIsNyArMjc3MjksNyBAQCBpbmRleCAwMDAwMDAwLi5kNDQ0NTU0CiAr ICByZXR1cm4gLTEKICt9CiArCi0rc2V0IHRlc3RmaWxlICJweXRob24taW5mdGhyZWFkIgorK3Nl dCB0ZXN0ZmlsZSAicHktaW5mdGhyZWFkIgogK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKICtz ZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CiArCkBAIC0yNjUzNywx MCArMjc3NTQsMTAgQEAgaW5kZXggMDAwMDAwMC4uZDQ0NDU1NAogK2dkYl9weV90ZXN0X3NpbGVu dF9jbWQgInB5dGhvbiB0MCA9IGdkYi5zZWxlY3RlZF90aHJlYWQgKCkiICJ0ZXN0IGdkYi5zZWxl Y3RlZF90aHJlYWQiIDEKICtnZGJfdGVzdCAicHl0aG9uIHByaW50IHQwIiAiXFw8Z2RiLkluZmVy aW9yVGhyZWFkIG9iamVjdCBhdCAweFxbXFs6eGRpZ2l0OlxdXF0rPiIgInZlcmlmeSBJbmZlcmlv clRocmVhZCBvYmplY3QiCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCB0MC5u dW0iICIgPSBcWzAtOVxdKyIgInRlc3QgSW5mZXJpb3IubnVtIgotZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tbWkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5dGhvbi1taS5leHAKLWluZGV4IDMyNTg4MTAuLjc3OTE3NzUgMTAwNjQ0Ci0tLS0gYS9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLW1pLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5dGhvbi1taS5leHAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktbWkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LW1pLmV4cAor aW5kZXggZDNmNDRiMi4uYWZkZThjNCAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1taS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1taS5leHAK IEBAIC00OCwyMyArNDgsNTMgQEAgbWlfZ2RiX3Rlc3QgInB5dGhvbiBleGVjZmlsZSAoJyR7c3Jj ZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ucHknKSIgIiIKICBtaV9jb250aW51ZV90b19saW5l IFtnZGJfZ2V0X2xpbmVfbnVtYmVyIHtNSSBicmVha3BvaW50IGhlcmV9ICR7dGVzdGZpbGV9LmNd IFwKICAgICJzdGVwIHRvIGJyZWFrcG9pbnQiCkBAIC0yNjU2Nyw3ICsyNzc4NCw3IEBAIGluZGV4 IDMyNTg4MTAuLjc3OTE3NzUgMTAwNjQ0CiArICAgICJhc3NpZ24gc3RyaW5nXzEgZnJvbSBzdHJp bmdfMiIKICsKICttaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgc3RyaW5nIiBcCi0rICAgICJcXF5k b25lLGNoYW5nZWxpc3Q9XFxcW3tuYW1lPVwic3RyaW5nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIn1cXFxdIiBcCisrICAgICJcXF5kb25l LGNoYW5nZWxpc3Q9XFxcW3tuYW1lPVwic3RyaW5nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIixkeW5hbWljPVwiMVwiLGhhc19tb3JlPVwiMFwifVxcXF0iIFwKICsg ICAgInVwZGF0ZSBzdHJpbmcgdmFyb2JqIGFmdGVyIGFzc2lnbm1lbnQiCiArCiArbWlfY3JlYXRl X2R5bmFtaWNfdmFyb2JqIGNvbnRhaW5lciBjIFwKQEAgLTI2NTgyLDcgKzI3Nzk5LDcgQEAgaW5k ZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2NDQKIC0gICAgeyB7Y29udGFpbmVyLlxbMFxdfSB7XFsw XF19IDAgaW50IH0KIC19ICJ2YXJvYmogdXBkYXRlIDEiCiArbWlfdmFyb2JqX3VwZGF0ZV9keW5h bWljIGNvbnRhaW5lciAidmFyb2JqIHVwZGF0ZSAxIiB7Ci0rICAgIHR5cGVfY2hhbmdlZCBmYWxz ZSBuZXdfbnVtX2NoaWxkcmVuIDEgaGFzX21vcmUgMAorKyAgICB0eXBlX2NoYW5nZWQgZmFsc2Ug bmV3X251bV9jaGlsZHJlbiAxIGR5bmFtaWMgMSBoYXNfbW9yZSAwCiArfSB7CiArfSB7CiArICAg IHsgbmFtZSB7Y29udGFpbmVyLlxbMFxdfSBleHAge1xbMFxdfSBudW1jaGlsZCAwIHR5cGUgaW50 IHRocmVhZC1pZCAxIH0KQEAgLTI2NTk1LDcgKzI3ODEyLDcgQEAgaW5kZXggMzI1ODgxMC4uNzc5 MTc3NSAxMDA2NDQKIC0gICAgeyB7Y29udGFpbmVyLlxbMVxdfSB7XFsxXF19IDAgaW50IH0KIC19 ICJ2YXJvYmogdXBkYXRlIDIiCiArbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5lciAi dmFyb2JqIHVwZGF0ZSAyIiB7Ci0rICAgIHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxk cmVuIDIgaGFzX21vcmUgMAorKyAgICB0eXBlX2NoYW5nZWQgZmFsc2UgbmV3X251bV9jaGlsZHJl biAyIGR5bmFtaWMgMSBoYXNfbW9yZSAwCiArfSB7CiArfSB7CiArICAgIHsgbmFtZSB7Y29udGFp bmVyLlxbMVxdfSBleHAge1xbMVxdfSBudW1jaGlsZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0K QEAgLTI2NjAzLDcgKzI3ODIwLDcgQEAgaW5kZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2NDQKICAK ICBtaV9nZGJfdGVzdCAiLXZhci1zZXQtdmlzdWFsaXplciBjb250YWluZXIgTm9uZSIgXAogICAg IlxcXmRvbmUiIFwKLUBAIC03OCwxOSArMTA4LDg4IEBAIG1pX2dkYl90ZXN0ICItdmFyLXNldC12 aXN1YWxpemVyIGNvbnRhaW5lciBnZGIuZGVmYXVsdF92aXN1YWxpemVyIiBcCitAQCAtNzgsMTkg KzEwOCwxMTEgQEAgbWlfZ2RiX3Rlc3QgIi12YXItc2V0LXZpc3VhbGl6ZXIgY29udGFpbmVyIGdk Yi5kZWZhdWx0X3Zpc3VhbGl6ZXIiIFwKICAgICJcXF5kb25lIiBcCiAgICAiY2hvb3NlIGRlZmF1 bHQgdmlzdWFsaXplciIKICAKQEAgLTI2NjEyLDcgKzI3ODI5LDcgQEAgaW5kZXggMzI1ODgxMC4u Nzc5MTc3NSAxMDA2NDQKIC0gICAgeyB7Y29udGFpbmVyLlxbMVxdfSB7XFsxXF19IDAgaW50IH0K IC19ICJ2YXJvYmogdXBkYXRlIGFmdGVyIGNob29zaW5nIGRlZmF1bHQiCiArbWlfdmFyb2JqX3Vw ZGF0ZV9keW5hbWljIGNvbnRhaW5lciAidmFyb2JqIHVwZGF0ZSBhZnRlciBjaG9vc2luZyBkZWZh dWx0IiB7Ci0rICAgIHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDIgaGFzX21v cmUgMAorKyAgICB0eXBlX2NoYW5nZWQgZmFsc2UgbmV3X251bV9jaGlsZHJlbiAyIGR5bmFtaWMg MSBoYXNfbW9yZSAwCiArfSB7CiArfSB7CiArICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMFxdfSBl eHAge1xbMFxdfSBudW1jaGlsZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0KQEAgLTI2NjI2LDcg KzI3ODQzLDcgQEAgaW5kZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2NDQKIC1taV92YXJvYmpfdXBk YXRlX2R5bmFtaWMgY29udGFpbmVyIHsKICttaV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFp bmVyIFwKICsgICJ2YXJvYmogdXBkYXRlIGFmdGVyIGNob29zaW5nIHZpYSBleHByZXNzaW9uIiB7 Ci0rICAgICAgdHlwZV9jaGFuZ2VkIGZhbHNlIG5ld19udW1fY2hpbGRyZW4gMiBoYXNfbW9yZSAw CisrICAgICAgdHlwZV9jaGFuZ2VkIGZhbHNlIG5ld19udW1fY2hpbGRyZW4gMiBkeW5hbWljIDEg aGFzX21vcmUgMAogKyAgfSB7CiArICB9IHsKICsgICAgICB7IG5hbWUge2NvbnRhaW5lci5cWzBc XX0gZXhwIHtcWzBcXX0gbnVtY2hpbGQgMCB0eXBlIGludCB0aHJlYWQtaWQgMSB9CkBAIC0yNjYz OCw5ICsyNzg1NSw4IEBAIGluZGV4IDMyNTg4MTAuLjc3OTE3NzUgMTAwNjQ0CiArfSAibGlzdCB2 YXJvYmogY2hpbGRyZW4gYWZ0ZXIgc2VsZWN0aW5nIGNoaWxkIHJhbmdlIgogKwogK21pX2xpc3Rf dmFyb2JqX2NoaWxkcmVuX3JhbmdlIGNvbnRhaW5lciAtMSAtMSAyIHsKLSAgICAgeyB7Y29udGFp bmVyLlxbMFxdfSB7XFswXF19IDAgaW50IH0KLSAgICAgeyB7Y29udGFpbmVyLlxbMVxdfSB7XFsx XF19IDAgaW50IH0KLS19ICJ2YXJvYmogdXBkYXRlIGFmdGVyIGNob29zaW5nIHZpYSBleHByZXNz aW9uIgorKyAgICB7IHtjb250YWluZXIuXFswXF19IHtcWzBcXX0gMCBpbnQgfQorKyAgICB7IHtj b250YWluZXIuXFsxXF19IHtcWzFcXX0gMCBpbnQgfQogK30gImxpc3QgdmFyb2JqIGNoaWxkcmVu IGFmdGVyIHJlc2V0dGluZyBjaGlsZCByYW5nZSIKICsKICttaV9uZXh0ICJuZXh0IG92ZXIgdXBk YXRlIDMiCkBAIC0yNjY1MSwxMiArMjc4NjcsMTMgQEAgaW5kZXggMzI1ODgxMC4uNzc5MTc3NSAx MDA2NDQKICsKICsjIFRoaXMgc2hvdWxkIHRydW5jYXRlIHRoZSBsaXN0LgogK21pX2xpc3RfdmFy b2JqX2NoaWxkcmVuIGNvbnRhaW5lciB7Ci0rICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxd fSAwIGludCB9CisgICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGludCB9CiArfSAi bGlzdCBjaGlsZHJlbiBhZnRlciBzZXR0aW5nIHVwZGF0ZSByYW5nZSIKICsKICsjIFRoaXMgc2hv dWxkIHJldHVybiBqdXN0IHRoZSBpdGVtcyBpbiBbMSwyKS4KICttaV9saXN0X3Zhcm9ial9jaGls ZHJlbl9yYW5nZSBjb250YWluZXIgMSAyIDIgewotKyAgICB7IHtjb250YWluZXIuXFsxXF19IHtc WzFcXX0gMCBpbnQgfQorICAgICB7IHtjb250YWluZXIuXFsxXF19IHtcWzFcXX0gMCBpbnQgfQor LX0gInZhcm9iaiB1cGRhdGUgYWZ0ZXIgY2hvb3NpbmcgdmlhIGV4cHJlc3Npb24iCiArfSAibGlz dCBzZWxlY3RlZCBjaGlsZHJlbiBhZnRlciBzZXR0aW5nIHJhbmdlIgogKwogKyMgVGhpcyBzaG91 bGQgbm90IGJlIGFmZmVjdGVkIGJ5IHRoZSBwcmV2aW91cyBsaXN0LWNoaWxkcmVuIHJlcXVlc3Qu CkBAIC0yNjY4MywyNSArMjc5MDAsNDggQEAgaW5kZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2NDQK ICsjIHNob3VsZCBub3QgYWN0dWFsbHkgc2VlIHRoZW0uCiArbWlfdmFyb2JqX3VwZGF0ZV9keW5h bWljIGNvbnRhaW5lcjIgXAogKyAgICAidXBkYXRlIHZhcm9iaiAyLCBubyBjaGlsZHJlbiByZXF1 ZXN0ZWQiIHsKLSsJdHlwZV9jaGFuZ2VkIGZhbHNlIGhhc19tb3JlIDEKKysJdHlwZV9jaGFuZ2Vk IGZhbHNlIGR5bmFtaWMgMSBoYXNfbW9yZSAxCiArICAgIH0ge30ge30KICsKICsjIFRoaXMgc2hv dWxkIG9ubHkgc2hvdyB0aGUgZmlyc3QgY2hpbGQsIGJlY2F1c2UgdGhlIHVwZGF0ZSByYW5nZSBo YXMKICsjIGJlZW4gc2V0LgogK21pX3Zhcm9ial91cGRhdGVfZHluYW1pYyBjb250YWluZXIgXAog KyAgInVwZGF0ZSBhZnRlciBuZXh0IHdpdGggcmVzdHJpY3RlZCByYW5nZSIgewotKyAgICAgIHR5 cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDEgaGFzX21vcmUgMQorKyAgICAgIHR5 cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDEgZHluYW1pYyAxIGhhc19tb3JlIDEK ICsgIH0gewotKyAgICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMFxdfSBpbl9zY29wZSB0cnVlIHR5 cGVfY2hhbmdlZCBmYWxzZSBoYXNfbW9yZSAwIH0KKysgICAgICB7IG5hbWUge2NvbnRhaW5lci5c WzBcXX0gaW5fc2NvcGUgdHJ1ZSB0eXBlX2NoYW5nZWQgZmFsc2UgZHluYW1pYyAxIGhhc19tb3Jl IDAgfQogKyAgfSB7CiArICB9CisrCisrbWlfY29udGludWVfdG9fbGluZSBcCisrICAgIFtnZGJf Z2V0X2xpbmVfbnVtYmVyIHtNSSBvdXRlciBicmVha3BvaW50IGhlcmV9ICR7dGVzdGZpbGV9LmNd IFwKKysgICAgInN0ZXAgdG8gb3V0ZXIgYnJlYWtwb2ludCIKKysKKyttaV9jcmVhdGVfZHluYW1p Y192YXJvYmogb3V0ZXIgb3V0ZXIgXAorKyAgImNyZWF0ZSBvdXRlciB2YXJvYmoiCisrCisrbWlf bGlzdF92YXJvYmpfY2hpbGRyZW4gb3V0ZXIgeworKyAgeyBvdXRlci5zIHMgMiAic3RydWN0IHN1 YnN0cnVjdCIgfQorKyAgeyBvdXRlci54IHggMCAiaW50IiB9CisrfSAibGlzdCBjaGlsZHJlbiBv ZiBvdXRlciIKKysKKyttaV9saXN0X3Zhcm9ial9jaGlsZHJlbiBvdXRlci5zIHsKKysgIHsgb3V0 ZXIucy5hIGEgMCBpbnQgfQorKyAgeyBvdXRlci5zLmIgYiAwIGludCB9CisrfSAibGlzdCBjaGls ZHJlbiBvZiBvdXRlci5zIgorKworK21pX25leHQgIm5leHQgb3ZlciBvdXRlciB1cGRhdGUiCisr CisrbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIG91dGVyIiBcCisrICAiLmRvbmUsY2hhbmdlbGlz dD0ue25hbWU9XCJvdXRlci5zLmFcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJm YWxzZVwiLGR5bmFtaWM9XCIxXCIsaGFzX21vcmU9XCIwXCJ9LiIgXAorKyAgInVwZGF0ZSBhZnRl ciB1cGRhdGluZyBlbGVtZW50IG9mIG91dGVyIgogIAogIG1pX2NvbnRpbnVlX3RvX2xpbmUgXAog ICAgICBbZ2RiX2dldF9saW5lX251bWJlciB7QW5vdGhlciBNSSBicmVha3BvaW50fSAke3Rlc3Rm aWxlfS5jXSBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1w cmV0dHlwcmludC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmlu dC5jCi1pbmRleCAzY2FmYzQ4Li5hZGY2NmI1IDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5jCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHl0aG9uLXByZXR0eXByaW50LmMKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktcHJldHR5cHJpbnQuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1w cmV0dHlwcmludC5jCitpbmRleCAzY2FmYzQ4Li5iZjQxZWJjIDEwMDY0NAorLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmMKKysrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5jCiBAQCAtMTUsNiArMTUsOCBAQAogICAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCiAgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwpAQCAtMjY3MTEsNyArMjc5NTEsMzcgQEAgaW5kZXgg M2NhZmM0OC4uYWRmNjZiNSAxMDA2NDQKICBzdHJ1Y3QgcwogIHsKICAgIGludCBhOwotQEAgLTE0 OCw2ICsxNTAsMTQgQEAgdm9pZCBkb19ub3RoaW5nKHZvaWQpCitAQCAtODAsNiArODIsMjkgQEAg Y2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBWYmFzZTEsIHB1YmxpYyBWYmFzZTIsIHB1YmxpYyBWYmFz ZTMKKyAKKyAjZW5kaWYKKyAKKytzdHJ1Y3Qgc3Vic3RydWN0IHsKKysgIGludCBhOworKyAgaW50 IGI7CisrfTsKKysKKytzdHJ1Y3Qgb3V0ZXJzdHJ1Y3QgeworKyAgc3RydWN0IHN1YnN0cnVjdCBz OworKyAgaW50IHg7CisrfTsKKysKKytzdHJ1Y3Qgb3V0ZXJzdHJ1Y3QKKytzdWJzdHJ1Y3RfdGVz dCAodm9pZCkKKyt7CisrICBzdHJ1Y3Qgb3V0ZXJzdHJ1Y3Qgb3V0ZXI7CisrICBvdXRlci5zLmEg PSAwOworKyAgb3V0ZXIucy5iID0gMDsKKysgIG91dGVyLnggPSAwOworKworKyAgb3V0ZXIucy5h ID0gMzsJCS8qIE1JIG91dGVyIGJyZWFrcG9pbnQgaGVyZSAqLworKworKyAgcmV0dXJuIG91dGVy OyAgCisrfQorKworIHR5cGVkZWYgc3RydWN0IHN0cmluZ19yZXByCisgeworICAgc3RydWN0IHdo eWJvdGhlcgorQEAgLTE0OCw2ICsxNzMsMTQgQEAgdm9pZCBkb19ub3RoaW5nKHZvaWQpCiAgICBj ID0gMjM7CQkJLyogQW5vdGhlciBNSSBicmVha3BvaW50ICovCiAgfQogIApAQCAtMjY3MjYsNyAr Mjc5OTYsNyBAQCBpbmRleCAzY2FmYzQ4Li5hZGY2NmI1IDEwMDY0NAogIGludAogIG1haW4gKCkK ICB7Ci1AQCAtMTU1LDExICsxNjUsMTUgQEAgbWFpbiAoKQorQEAgLTE1NSwxMSArMTg4LDE1IEBA IG1haW4gKCkKICAgIHN0cnVjdCBzcyAgc3NhWzJdOwogICAgc3RyaW5nIHggPSBtYWtlX3N0cmlu ZyAoInRoaXMgaXMgeCIpOwogICAgenp6X3R5cGUgYyA9IG1ha2VfY29udGFpbmVyICgiY29udGFp bmVyIik7CkBAIC0yNjc0Miw3ICsyODAxMiw3IEBAIGluZGV4IDNjYWZjNDguLmFkZjY2YjUgMTAw NjQ0CiAgCiAgICBzdHJ1Y3QgbnMgIG5zOwogICAgbnMubnVsbF9zdHIgPSAiZW1iZWRkZWRcMG51 bGxcMHN0cmluZyI7Ci1AQCAtMTkzLDYgKzIwNywxMSBAQCBtYWluICgpCitAQCAtMTkzLDYgKzIz MCwxMyBAQCBtYWluICgpCiAgICBhZGRfaXRlbSAoJmMsIDcyKTsKICAKICAjaWZkZWYgTUkKQEAg LTI2NzUxLDEzICsyODAyMSwxNSBAQCBpbmRleCAzY2FmYzQ4Li5hZGY2NmI1IDEwMDY0NAogKwog KyAgYWRkX2l0ZW0gKCZjMiwgMjIyMik7CiArICBhZGRfaXRlbSAoJmMyLCAzMzMzKTsKKysKKysg IHN1YnN0cnVjdF90ZXN0ICgpOwogICAgZG9fbm90aGluZyAoKTsKICAjZW5kaWYKICAKLWRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLXByZXR0eXByaW50LmV4cCBi L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tcHJldHR5cHJpbnQuZXhwCi1pbmRleCAw MWQ0YTA2Li5iMmRjODVkIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 dGhvbi1wcmV0dHlwcmludC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRo b24tcHJldHR5cHJpbnQuZXhwCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXByZXR0eXByaW50LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlw cmludC5leHAKK2luZGV4IGQyZGI1YmMuLjI4N2E1ZDMgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCiBAQCAtMjcsMTIgKzI3LDkgQEAgc2V0IGJpbmZp bGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQogICMgU3RhcnQgd2l0aCBhIGZyZXNo IGdkYi4KICBnZGJfZXhpdApAQCAtMjY3ODMsMTAgKzI4MDU1LDEwIEBAIGluZGV4IDAxZDRhMDYu LmIyZGM4NWQgMTAwNjQ0CiAgICAgIGdkYl90ZXN0ICJjb250aW51ZSIgIlByb2dyYW0gZXhpdGVk IG5vcm1hbGx5XC4iCiAgfQogIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weXRob24tcHJldHR5cHJpbnQucHkgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9u LXByZXR0eXByaW50LnB5Ci1pbmRleCBiZjAwOWExLi5jM2UwZGM0IDEwMDY0NAotLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5weQotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5weQorZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weSBiL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQoraW5kZXggYmYwMDlhMS4uMmYwNzBkOCAxMDA2 NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQorKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LnB5CiBAQCAtOTIsNiAr OTIsMTMgQEAgY2xhc3MgcHBfdmJhc2UxOgogICAgICBkZWYgdG9fc3RyaW5nIChzZWxmKToKICAg ICAgICAgIHJldHVybiAicHAgY2xhc3MgbmFtZTogIiArIHNlbGYudmFsLnR5cGUudGFnCkBAIC0y NjgwMSw3ICsyODA3MywyNCBAQCBpbmRleCBiZjAwOWExLi5jM2UwZGM0IDEwMDY0NAogIGNsYXNz IHBwX25zOgogICAgICAiUHJpbnQgYSBzdGQ6OmJhc2ljX3N0cmluZyBvZiBzb21lIGtpbmQiCiAg Ci1AQCAtMTA5LDcgKzExNiw3IEBAIGRlZiBsb29rdXBfZnVuY3Rpb24gKHZhbCk6CitAQCAtMTA1 LDExICsxMTIsMjQgQEAgY2xhc3MgcHBfbnM6CisgICAgIGRlZiBkaXNwbGF5X2hpbnQgKHNlbGYp OgorICAgICAgICAgcmV0dXJuICdzdHJpbmcnCisgCisrY2xhc3MgcHBfb3V0ZXI6CisrICAgICJQ cmludCBzdHJ1Y3Qgb3V0ZXIiCisrCisrICAgIGRlZiBfX2luaXRfXyAoc2VsZiwgdmFsKToKKysg ICAgICAgIHNlbGYudmFsID0gdmFsCisrCisrICAgIGRlZiB0b19zdHJpbmcgKHNlbGYpOgorKyAg ICAgICAgcmV0dXJuICJ4ID0gJXMiICUgc2VsZi52YWxbJ3gnXQorKworKyAgICBkZWYgY2hpbGRy ZW4gKHNlbGYpOgorKyAgICAgICAgeWllbGQgJ3MnLCBzZWxmLnZhbFsncyddCisrICAgICAgICB5 aWVsZCAneCcsIHNlbGYudmFsWyd4J10KKysKKyBkZWYgbG9va3VwX2Z1bmN0aW9uICh2YWwpOgog ICAgICAiTG9vay11cCBhbmQgcmV0dXJuIGEgcHJldHR5LXByaW50ZXIgdGhhdCBjYW4gcHJpbnQg dmFsLiIKICAKICAgICAgIyBHZXQgdGhlIHR5cGUuCkBAIC0yNjgxMCw3ICsyODA5OSw3IEBAIGlu ZGV4IGJmMDA5YTEuLmMzZTBkYzQgMTAwNjQ0CiAgCiAgICAgICMgSWYgaXQgcG9pbnRzIHRvIGEg cmVmZXJlbmNlLCBnZXQgdGhlIHJlZmVyZW5jZS4KICAgICAgaWYgdHlwZS5jb2RlID09IGdkYi5U WVBFX0NPREVfUkVGOgotQEAgLTE0OCw2ICsxNTUsOSBAQCBkZWYgcmVnaXN0ZXJfcHJldHR5X3By aW50ZXJzICgpOgorQEAgLTE0OCw2ICsxNjgsOSBAQCBkZWYgcmVnaXN0ZXJfcHJldHR5X3ByaW50 ZXJzICgpOgogICAgICAKICAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15W aXJ0dWFsVGVzdCQnKV0gPSAgcHBfbXVsdGlwbGVfdmlydHVhbAogICAgICBwcmV0dHlfcHJpbnRl cnNfZGljdFtyZS5jb21waWxlICgnXlZiYXNlMSQnKV0gPSAgcHBfdmJhc2UxCkBAIC0yNjgyMCwx MCArMjgxMDksMjEgQEAgaW5kZXggYmYwMDlhMS4uYzNlMGRjNCAxMDA2NDQKICAgICAgCiAgICAg ICMgTm90ZSB0aGF0IHdlIHB1cnBvc2VseSBvbWl0IHRoZSB0eXBlZGVmIG5hbWVzIGhlcmUuCiAg ICAgICMgUHJpbnRlciBsb29rdXAgaXMgYmFzZWQgb24gY2Fub25pY2FsIG5hbWUuCi1kaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi10ZW1wbGF0ZS5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLXRlbXBsYXRlLmV4cAotaW5kZXggMWFjZTVkNi4u YjgwZjU2ZSAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tdGVt cGxhdGUuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLXRlbXBsYXRl LmV4cAorQEAgLTE2MCw2ICsxODMsMTAgQEAgZGVmIHJlZ2lzdGVyX3ByZXR0eV9wcmludGVycyAo KToKKyAgICAgCisgICAgIHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUgKCdec3RydWN0 IG5zJCcpXSAgPSBwcF9ucworICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlICgn Xm5zJCcpXSAgPSBwcF9ucworKworKyAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxl ICgnXnN0cnVjdCBvdXRlcnN0cnVjdCQnKV0gID0gcHBfb3V0ZXIKKysgICAgcHJldHR5X3ByaW50 ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15vdXRlcnN0cnVjdCQnKV0gID0gcHBfb3V0ZXIKKysKKyBw cmV0dHlfcHJpbnRlcnNfZGljdCA9IHt9CisgCisgcmVnaXN0ZXJfcHJldHR5X3ByaW50ZXJzICgp CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXRlbXBsYXRlLmV4cCBi L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS10ZW1wbGF0ZS5leHAKK2luZGV4IGNlYTZhZTAu LmM5YTYzZDQgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdGVtcGxh dGUuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdGVtcGxhdGUuZXhwCiBA QCAtMjAsNiArMjAsMTcgQEAgaWYgJHRyYWNlbGV2ZWwgdGhlbiB7CiAgICAgIHN0cmFjZSAkdHJh Y2VsZXZlbAogIH0KQEAgLTI2ODM5LDcgKzI4MTM5LDcgQEAgaW5kZXggMWFjZTVkNi4uYjgwZjU2 ZSAxMDA2NDQKICsgIHJldHVybiAtMQogK30KICsKLSBzZXQgdGVzdGZpbGUgInB5dGhvbi10ZW1w bGF0ZSIKKyBzZXQgdGVzdGZpbGUgInB5LXRlbXBsYXRlIgogIHNldCBzcmNmaWxlICR7dGVzdGZp bGV9LmNjCiAgc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQogQEAg LTI5LDIwICs0MCw2IEBAIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7 c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIFwKQEAgLTI2ODYzLDU1ICsyODE2Mywx MSBAQCBpbmRleCAxYWNlNWQ2Li5iODBmNTZlIDEwMDY0NAogIHByb2MgdGVzdF90ZW1wbGF0ZV9h cmcge3R5cGV9IHsKICAgICAgZ2xvYmFsIHRlc3RmaWxlIHNyY2RpciBzdWJkaXIgc3JjZmlsZSBi aW5maWxlCiAgICAgIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3Jj ZmlsZX0iICIke2JpbmZpbGV9IiBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5dGhvbi12YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLXZh bHVlLmV4cAotaW5kZXggMTljYWJlYi4uY2NmNDM4ZiAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weXRob24tdmFsdWUuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHl0aG9uLXZhbHVlLmV4cAotQEAgLTIwLDQzICsyMCw2IEBAIGlmICR0cmFjZWxldmVs IHRoZW4gewotICAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKLSB9Ci0gCi0tc2V0IHRlc3RmaWxlICJw eXRob24tdmFsdWUiCi0tc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwotLXNldCBiaW5maWxlICR7 b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KLS1pZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNk aXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWd9 XSAhPSAiIiB9IHsKLS0gICAgdW50ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUgJHtzcmNmaWxlfSIK LS0gICAgcmV0dXJuIC0xCi0tfQotLQotLSMgVXNhZ2U6IGdkYl9weV90ZXN0X211bHRpcGxlIE5B TUUgSU5QVVQgUkVTVUxUIHtJTlBVVCBSRVNVTFR9Li4uCi0tIyBSdW4gYSB0ZXN0IG5hbWVkIE5B TUUsIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUgbGluZXMgb2YgaW5wdXQuCi0tIyBBZnRlciBlYWNo IGlucHV0IGxpbmUgSU5QVVQsIHNlYXJjaCBmb3IgcmVzdWx0IGxpbmUgUkVTVUxULgotLSMgU3Vj Y2VlZCBpZiBhbGwgcmVzdWx0cyBhcmUgc2VlbjsgZmFpbCBvdGhlcndpc2UuCi0tcHJvYyBnZGJf cHlfdGVzdF9tdWx0aXBsZSB7bmFtZSBhcmdzfSB7Ci0tICAgIGdsb2JhbCBnZGJfcHJvbXB0Ci0t ICAgIGZvcmVhY2gge2lucHV0IHJlc3VsdH0gJGFyZ3MgewotLQlpZiB7W2dkYl90ZXN0X211bHRp cGxlICRpbnB1dCAiJG5hbWUgLSAkaW5wdXQiIHsKLS0JICAgIC1yZSAiXFtcclxuXF0qKCRyZXN1 bHQpXFtcclxuXF0rKCRnZGJfcHJvbXB0IHwgKj4pJCIgewotLQkJcGFzcyAiJG5hbWUgLSAkaW5w dXQiCi0tCSAgICB9Ci0tCX1dfSB7Ci0tCSAgICByZXR1cm4gMQotLQl9Ci0tICAgIH0KLS0gICAg cmV0dXJuIDAKLS19Ci0tCi0tIyBSdW4gYSBjb21tYW5kIGluIEdEQiwgYW5kIHJlcG9ydCBhIGZh aWx1cmUgaWYgYSBQeXRob24gZXhjZXB0aW9uIGlzIHRocm93bi4KLS0jIElmIHJlcG9ydF9wYXNz IGlzIHRydWUsIHJlcG9ydCBhIHBhc3MgaWYgbm8gZXhjZXB0aW9uIGlzIHRocm93bi4KLS1wcm9j IGdkYl9weV90ZXN0X3NpbGVudF9jbWQge2NtZCBuYW1lIHJlcG9ydF9wYXNzfSB7Ci0tICBnbG9i YWwgZ2RiX3Byb21wdAotLQotLSAgZ2RiX3Rlc3RfbXVsdGlwbGUgJGNtZCAkbmFtZSB7Ci0tICAg ICAgLXJlICJUcmFjZWJhY2suKiRnZGJfcHJvbXB0ICQiICB7IGZhaWwgJG5hbWUgfQotLSAgICAg IC1yZSAiJGdkYl9wcm9tcHQgJCIJICAgICAgeyBpZiAkcmVwb3J0X3Bhc3MgeyBwYXNzICRuYW1l IH0gfQotLSAgfQotLX0KLS0KLSBwcm9jIHRlc3RfdmFsdWVfY3JlYXRpb24ge30gewotICAgZ2xv YmFsIGdkYl9wcm9tcHQKLSAKLUBAIC0yOTIsMjEgKzI1NSwzNyBAQCBwcm9jIHRlc3RfdmFsdWVf YWZ0ZXJfZGVhdGgge30geworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS12YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCitpbmRl eCA5YjQxOTBkLi45M2NkZGM3IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXZhbHVlLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4 cAorQEAgLTI5MiwyMSArMjkyLDM3IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7 CiAgICAgICJwcmludCB2YWx1ZSdzIHR5cGUiCiAgfQogIApAQCAtMjY5NDIsNyArMjgxOTgsNyBA QCBpbmRleCAxOWNhYmViLi5jY2Y0MzhmIDEwMDY0NAogKyAgcmV0dXJuIC0xCiAgfQogIAotK3Nl dCB0ZXN0ZmlsZSAicHl0aG9uLXZhbHVlIgorK3NldCB0ZXN0ZmlsZSAicHktdmFsdWUiCiArc2V0 IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwogK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0v JHt0ZXN0ZmlsZX0KICsKQEAgLTI2OTU2LDcgKzI4MjEyLDcgQEAgaW5kZXggMTljYWJlYi4uY2Nm NDM4ZiAxMDA2NDQKICB0ZXN0X3ZhbHVlX2NyZWF0aW9uCiAgdGVzdF92YWx1ZV9udW1lcmljX29w cwogIHRlc3RfdmFsdWVfYm9vbGVhbgotQEAgLTMyMiwzICszMDEsNCBAQCBpZiAhW3J1bnRvX21h aW5dIHRoZW4geworQEAgLTMyMiwzICszMzgsNCBAQCBpZiAhW3J1bnRvX21haW5dIHRoZW4gewog IAogIHRlc3RfdmFsdWVfaW5faW5mZXJpb3IKICB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoCkBAIC0y ODMxOCwxNyArMjk1NzQsMTcgQEAgaW5kZXggYTdhYzNjOC4uODE1YzgyZCAxMDA2NDQKICB9CiAg CiBkaWZmIC0tZ2l0IGEvZ2RiL3RvcC5jIGIvZ2RiL3RvcC5jCi1pbmRleCBjYjUxZTA4Li5iMTI2 YThhIDEwMDY0NAoraW5kZXggMWI0YWE5ZC4uM2NmZTU3ZSAxMDA2NDQKIC0tLSBhL2dkYi90b3Au YwogKysrIGIvZ2RiL3RvcC5jCi1AQCAtMzc4LDYgKzM3OCw3IEBAIGV4ZWN1dGVfY29tbWFuZCAo Y2hhciAqcCwgaW50IGZyb21fdHR5KQotICAgICB9Ci0gICAKK0BAIC0zNDksNiArMzQ5LDcgQEAg dm9pZAorIHByZXBhcmVfZXhlY3V0ZV9jb21tYW5kICh2b2lkKQorIHsKICAgIGZyZWVfYWxsX3Zh bHVlcyAoKTsKICsgIGZyZWVfYWxsX3R5cGVzICgpOwogIAotICAgLyogRm9yY2UgY2xlYW51cCBv ZiBhbnkgYWxsb2NhIGFyZWFzIGlmIHVzaW5nIEMgYWxsb2NhIGluc3RlYWQgb2YKLSAgICAgIGEg YnVpbHRpbiBhbGxvY2EuICAqLworICAgLyogV2l0aCBtdWx0aXBsZSB0aHJlYWRzIHJ1bm5pbmcg d2hpbGUgdGhlIG9uZSB3ZSdyZSBleGFtaW5pbmcgaXMgc3RvcHBlZCwKKyAgICAgIHRoZSBkY2Fj aGUgY2FuIGdldCBzdGFsZSB3aXRob3V0IHVzIGJlaW5nIGFibGUgdG8gZGV0ZWN0IGl0LgogZGlm ZiAtLWdpdCBhL2dkYi90eXBlcHJpbnQuYyBiL2dkYi90eXBlcHJpbnQuYwogaW5kZXggZjA5MDIz MS4uZmMxNWVjMSAxMDA2NDQKIC0tLSBhL2dkYi90eXBlcHJpbnQuYwpAQCAtMjg1OTAsNyArMjk4 NDYsNyBAQCBpbmRleCBhOWM4NzVkLi4xMmY2ZjA3IDEwMDY0NAogIH0KICAKIGRpZmYgLS1naXQg YS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IDVlNWM0ZWQuLjdhZWRiZmQgMTAw NjQ0CitpbmRleCBiNjRjYjIxLi5iN2QzMWNjIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbG9wcy5jCiAr KysgYi9nZGIvdmFsb3BzLmMKIEBAIC0zOCw2ICszOCw3IEBACkBAIC0yODY3MiwzNCArMjk5Mjgs MzkgQEAgaW5kZXggNWU1YzRlZC4uN2FlZGJmZCAxMDA2NDQKICsgIHJldHVybiAxOwogK30KICsK LSAvKiBSZXR1cm4gYSB2YWx1ZSB3aXRoIHR5cGUgVFlQRSBsb2NhdGVkIGF0IEFERFIuCisgLyog SGVscGVyIGZ1bmN0aW9uIGZvciB2YWx1ZV9hdCwgdmFsdWVfYXRfbGF6eSwgYW5kIHZhbHVlX2F0 X2xhenlfc3RhY2suICAqLwogIAotICAgIENhbGwgdmFsdWVfYXQgb25seSBpZiB0aGUgZGF0YSBu ZWVkcyB0byBiZSBmZXRjaGVkIGltbWVkaWF0ZWx5OwotQEAgLTY1MiwxMSArNzA5LDE5IEBAIHZh bHVlX2ZldGNoX2xhenkgKHN0cnVjdCB2YWx1ZSAqdmFsKQorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUg KgorQEAgLTY1NiwxNSArNzEzLDIxIEBAIHZhbHVlX2ZldGNoX2xhenkgKHN0cnVjdCB2YWx1ZSAq dmFsKQogICAgICB9CiAgICBlbHNlIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfbWVtb3J5 KQogICAgICB7CiAtICAgICAgQ09SRV9BRERSIGFkZHIgPSB2YWx1ZV9hZGRyZXNzICh2YWwpOwog LSAgICAgIGludCBsZW5ndGggPSBUWVBFX0xFTkdUSCAoY2hlY2tfdHlwZWRlZiAodmFsdWVfZW5j bG9zaW5nX3R5cGUgKHZhbCkpKTsKICsgICAgICBDT1JFX0FERFIgYWRkciA9IHZhbHVlX3Jhd19h ZGRyZXNzICh2YWwpOwotKworIAorLSAgICAgIGlmIChsZW5ndGgpCiArICAgICAgaWYgKG9iamVj dF9hZGRyZXNzX2dldF9kYXRhICh2YWx1ZV90eXBlICh2YWwpLCAmYWRkcikpCi0rCXsKKyAJewor LQkgIGlmICh2YWx1ZV9zdGFjayAodmFsKSkKKy0JICAgIHJlYWRfc3RhY2sgKGFkZHIsIHZhbHVl X2NvbnRlbnRzX2FsbF9yYXcgKHZhbCksIGxlbmd0aCk7CistCSAgZWxzZQorLQkgICAgcmVhZF9t ZW1vcnkgKGFkZHIsIHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcgKHZhbCksIGxlbmd0aCk7CiArCSAg c3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsKTsKICsJICBpbnQg bGVuZ3RoID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHR5cGUpKTsKLSAKLS0gICAgICBp ZiAobGVuZ3RoKQotLQlyZWFkX21lbW9yeSAoYWRkciwgdmFsdWVfY29udGVudHNfYWxsX3JhdyAo dmFsKSwgbGVuZ3RoKTsKKysKICsJICBpZiAobGVuZ3RoKQogKwkgICAgewogKwkgICAgICBhZGRy ICs9IHZhbHVlX29mZnNldCAodmFsKTsKLSsJICAgICAgcmVhZF9tZW1vcnkgKGFkZHIsIHZhbHVl X2NvbnRlbnRzX2FsbF9yYXcgKHZhbCksIGxlbmd0aCk7CisrCSAgICAgIGlmICh2YWx1ZV9zdGFj ayAodmFsKSkKKysJCXJlYWRfc3RhY2sgKGFkZHIsIHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcgKHZh bCksIGxlbmd0aCk7CisrCSAgICAgIGVsc2UKKysJCXJlYWRfbWVtb3J5IChhZGRyLCB2YWx1ZV9j b250ZW50c19hbGxfcmF3ICh2YWwpLCBsZW5ndGgpOwogKwkgICAgfQotKwl9CisgCX0KICAgICAg fQogICAgZWxzZSBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX3JlZ2lzdGVyKQotICAgICB7 Ci1AQCAtMTA2MSw3ICsxMTI2LDE4IEBAIGFkZHJlc3Nfb2ZfdmFyaWFibGUgKHN0cnVjdCBzeW1i b2wgKnZhciwgc3RydWN0IGJsb2NrICpiKQorQEAgLTEwNzAsNyArMTEzMywxOCBAQCBhZGRyZXNz X29mX3ZhcmlhYmxlIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBibG9jayAqYikKICAgIGlm ICgoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1ZV9sYXp5ICh2YWwpKQog ICAgICAgIHx8IFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0ZVTkMpCiAgICAgIHsKQEAg LTI4NzE5LDcgKzI5OTgwLDcgQEAgaW5kZXggNWU1YzRlZC4uN2FlZGJmZCAxMDA2NDQKICAgICAg ICByZXR1cm4gdmFsdWVfZnJvbV9wb2ludGVyIChsb29rdXBfcG9pbnRlcl90eXBlICh0eXBlKSwg YWRkcik7CiAgICAgIH0KICAKLUBAIC0xMTY3LDYgKzEyNDMsNyBAQCBzdHJ1Y3QgdmFsdWUgKgor QEAgLTExNzYsNiArMTI1MCw3IEBAIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfY29lcmNlX2FycmF5 IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7CkBAIC0yODcyNyw3ICsyOTk4OCw3IEBAIGluZGV4 IDVlNWM0ZWQuLjdhZWRiZmQgMTAwNjQ0CiAgCiAgICAvKiBJZiB0aGUgdXNlciB0cmllcyB0byBk byBzb21ldGhpbmcgcmVxdWlyaW5nIGEgcG9pbnRlciB3aXRoIGFuCiAgICAgICBhcnJheSB0aGF0 IGhhcyBub3QgeWV0IGJlZW4gcHVzaGVkIHRvIHRoZSB0YXJnZXQsIHRoZW4gdGhpcyB3b3VsZAot QEAgLTExNzYsOCArMTI1MywxMiBAQCB2YWx1ZV9jb2VyY2VfYXJyYXkgKHN0cnVjdCB2YWx1ZSAq YXJnMSkKK0BAIC0xMTg1LDggKzEyNjAsMTIgQEAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3Qg dmFsdWUgKmFyZzEpCiAgICBpZiAoVkFMVUVfTFZBTCAoYXJnMSkgIT0gbHZhbF9tZW1vcnkpCiAg ICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHRha2UgYWRkcmVzcyBvZiB2YWx1ZSBub3QgbG9jYXRl ZCBpbiBtZW1vcnkuIikpOwogIApAQCAtMjg3NDEsNyArMzAwMDIsNyBAQCBpbmRleCA1ZTVjNGVk Li43YWVkYmZkIDEwMDY0NAogIH0KICAKICAvKiBHaXZlbiBhIHZhbHVlIHdoaWNoIGlzIGEgZnVu Y3Rpb24sIHJldHVybiBhIHZhbHVlIHdoaWNoIGlzIGEgcG9pbnRlcgotQEAgLTIwNjAsMTIgKzIx NDEsMjUgQEAgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHR5cGUgKiphcmdfdHlwZXMsIGlu dCBuYXJncywKK0BAIC0yMDY5LDEyICsyMTQ4LDI1IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0 cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQgbmFyZ3MsCiAgICBpZiAobWV0aG9kKQogICAgICB7 CiAgICAgICAgZ2RiX2Fzc2VydCAob2JqKTsKQEAgLTI4NzcyLDcgKzMwMDMzLDcgQEAgaW5kZXgg NWU1YzRlZC4uN2FlZGJmZCAxMDA2NDQKICAKICAgICAgICBmbnNfcHRyID0gdmFsdWVfZmluZF9v bG9hZF9tZXRob2RfbGlzdCAoJnRlbXAsIG5hbWUsIAogIAkJCQkJICAgICAgMCwgJm51bV9mbnMs IAotQEAgLTIwODUsMTYgKzIxNzksMjkgQEAgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHR5 cGUgKiphcmdfdHlwZXMsIGludCBuYXJncywKK0BAIC0yMDk0LDE2ICsyMTg2LDI5IEBAIGZpbmRf b3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQgbmFyZ3MsCiAgICAg IH0KICAgIGVsc2UKICAgICAgewpAQCAtMjg4MTAsNyArMzAwNzEsNyBAQCBpbmRleCA1ZTVjNGVk Li43YWVkYmZkIDEwMDY0NAogICAgICAgIGlmIChmdW5jX25hbWUgPT0gTlVMTCkKICAgICAgICAg IHsKICAJICAqc3ltcCA9IGZzeW07Ci1AQCAtMjUyNSw4ICsyNjMyLDggQEAgY2hlY2tfZmllbGQg KHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKQorQEAgLTI1MzQsOCArMjYzOSw4 IEBAIGNoZWNrX2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkKICAg ICB0aGUgY29tbWVudCBiZWZvcmUgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlLiAgKi8K ICAKICBzdHJ1Y3QgdmFsdWUgKgpAQCAtMjg4MjEsNyArMzAwODIsNyBAQCBpbmRleCA1ZTVjNGVk Li43YWVkYmZkIDEwMDY0NAogIAkJICAgICBlbnVtIG5vc2lkZSBub3NpZGUpCiAgewogICAgc3dp dGNoIChUWVBFX0NPREUgKGN1cnR5cGUpKQotQEAgLTI1MzQsNyArMjY0MSw3IEBAIHZhbHVlX2Fn Z3JlZ2F0ZV9lbHQgKHN0cnVjdCB0eXBlICpjdXJ0eXBlLAorQEAgLTI1NDMsNyArMjY0OCw3IEBA IHZhbHVlX2FnZ3JlZ2F0ZV9lbHQgKHN0cnVjdCB0eXBlICpjdXJ0eXBlLAogICAgICBjYXNlIFRZ UEVfQ09ERV9TVFJVQ1Q6CiAgICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9OOgogICAgICAgIHJldHVy biB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKGN1cnR5cGUsIDAsIGN1cnR5cGUsIApA QCAtMjg4MzAsNyArMzAwOTEsNyBAQCBpbmRleCA1ZTVjNGVkLi43YWVkYmZkIDEwMDY0NAogIAkJ CQkJICAgICB3YW50X2FkZHJlc3MsIG5vc2lkZSk7CiAgICAgIGNhc2UgVFlQRV9DT0RFX05BTUVT UEFDRToKICAgICAgICByZXR1cm4gdmFsdWVfbmFtZXNwYWNlX2VsdCAoY3VydHlwZSwgbmFtZSwg Ci1AQCAtMjU0NSw2ICsyNjUyLDU2IEBAIHZhbHVlX2FnZ3JlZ2F0ZV9lbHQgKHN0cnVjdCB0eXBl ICpjdXJ0eXBlLAorQEAgLTI1NTQsNiArMjY1OSw1NiBAQCB2YWx1ZV9hZ2dyZWdhdGVfZWx0IChz dHJ1Y3QgdHlwZSAqY3VydHlwZSwKICAgICAgfQogIH0KICAKQEAgLTI4ODg3LDcgKzMwMTQ4LDcg QEAgaW5kZXggNWU1YzRlZC4uN2FlZGJmZCAxMDA2NDQKICAvKiBDKys6IEdpdmVuIGFuIGFnZ3Jl Z2F0ZSB0eXBlIENVUlRZUEUsIGFuZCBhIG1lbWJlciBuYW1lIE5BTUUsCiAgICAgcmV0dXJuIHRo ZSBhZGRyZXNzIG9mIHRoaXMgbWVtYmVyIGFzIGEgInBvaW50ZXIgdG8gbWVtYmVyIiB0eXBlLgog ICAgIElmIElOVFlQRSBpcyBub24tbnVsbCwgdGhlbiBpdCB3aWxsIGJlIHRoZSB0eXBlIG9mIHRo ZSBtZW1iZXIgd2UKLUBAIC0yNjIyLDIzICsyNzc5LDQ2IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9y X3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKmRvbWFpbiwgaW50IG9mZnNldCwKK0BAIC0yNjMxLDIz ICsyNzg2LDQ2IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUg KmRvbWFpbiwgaW50IG9mZnNldCwKICAJfQogICAgICAgIGlmICh0X2ZpZWxkX25hbWUgJiYgc3Ry Y21wICh0X2ZpZWxkX25hbWUsIG5hbWUpID09IDApCiAgCXsKQEAgLTI4OTQ0LDcgKzMwMjA1LDcg QEAgaW5kZXggNWU1YzRlZC4uN2FlZGJmZCAxMDA2NDQKICAKICAJICBpZiAoVFlQRV9GTl9GSUVM RF9TVEFUSUNfUCAoZiwgaikpCiAgCSAgICB7Ci1AQCAtMjc1Miw3ICsyOTMyLDcgQEAgdmFsdWVf bWF5YmVfbmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0IHR5cGUgKmN1cnR5cGUsCitAQCAtMjc2 MSw3ICsyOTM5LDcgQEAgdmFsdWVfbWF5YmVfbmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0IHR5 cGUgKmN1cnR5cGUsCiAgICBzdHJ1Y3Qgc3ltYm9sICpzeW07CiAgICBzdHJ1Y3QgdmFsdWUgKnJl c3VsdDsKICAKQEAgLTI4OTUzLDcgKzMwMjE0LDcgQEAgaW5kZXggNWU1YzRlZC4uN2FlZGJmZCAx MDA2NDQKICAJCQkJICAgIGdldF9zZWxlY3RlZF9ibG9jayAoMCksIAogIAkJCQkgICAgVkFSX0RP TUFJTik7CiAgCi1AQCAtMjg5Niw3ICszMDc2LDcgQEAgdmFsdWVfb2ZfbG9jYWwgKGNvbnN0IGNo YXIgKm5hbWUsIGludCBjb21wbGFpbikKK0BAIC0yOTA1LDcgKzMwODMsNyBAQCB2YWx1ZV9vZl9s b2NhbCAoY29uc3QgY2hhciAqbmFtZSwgaW50IGNvbXBsYWluKQogIAogICAgLyogQ2FsbGluZyBs b29rdXBfYmxvY2tfc3ltYm9sIGlzIG5lY2Vzc2FyeSB0byBnZXQgdGhlIExPQ19SRUdJU1RFUgog ICAgICAgc3ltYm9sIGluc3RlYWQgb2YgdGhlIExPQ19BUkcgb25lIChpZiBib3RoIGV4aXN0KS4g ICovCkBAIC0yODk2Miw3ICszMDIyMyw3IEBAIGluZGV4IDVlNWM0ZWQuLjdhZWRiZmQgMTAwNjQ0 CiAgICBpZiAoc3ltID09IE5VTEwpCiAgICAgIHsKICAgICAgICBpZiAoY29tcGxhaW4pCi1AQCAt Mjk1MCw4ICszMTMwLDYgQEAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBs b3dib3VuZCwgaW50IGxlbmd0aCkKK0BAIC0yOTU5LDggKzMxMzcsNiBAQCB2YWx1ZV9zbGljZSAo c3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQogICAgICAgIHx8 IGxvd2JvdW5kICsgbGVuZ3RoIC0gMSA+IHVwcGVyYm91bmQpCiAgICAgIGVycm9yIChfKCJzbGlj ZSBvdXQgb2YgcmFuZ2UiKSk7CiAgCkBAIC0yOTAwMSw3ICszMDI2Miw3IEBAIGluZGV4IGNiYjVk OTQuLmY5NjM0ZWEgMTAwNjQ0CiAgCSAgKytyZXBzOwogIAkgICsrcmVwMTsKIGRpZmYgLS1naXQg YS9nZGIvdmFsdWUuYyBiL2dkYi92YWx1ZS5jCi1pbmRleCA0OGZlZGZkLi41YzIwN2UzIDEwMDY0 NAoraW5kZXggNTg5ZTAzYi4uNjYwMTNiNyAxMDA2NDQKIC0tLSBhL2dkYi92YWx1ZS5jCiArKysg Yi9nZGIvdmFsdWUuYwogQEAgLTM3LDggKzM3LDEwIEBACkBAIC0yOTAzMCw3ICszMDI5MSw3IEBA IGluZGV4IDQ4ZmVkZmQuLjVjMjA3ZTMgMTAwNjQ0CiAgICAvKiBSZWdpc3RlciBudW1iZXIgaWYg dGhlIHZhbHVlIGlzIGZyb20gYSByZWdpc3Rlci4gICovCiAgICBzaG9ydCByZWdudW07CiAgCi1A QCAtMjU3LDcgKzI2Nyw5IEBAIGFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBlICp0eXBl KQorQEAgLTI2MSw3ICsyNzEsOSBAQCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAq dHlwZSkKICAgIHZhbC0+bmV4dCA9IGFsbF92YWx1ZXM7CiAgICBhbGxfdmFsdWVzID0gdmFsOwog ICAgdmFsLT50eXBlID0gdHlwZTsKQEAgLTI5MDQwLDcgKzMwMzAxLDcgQEAgaW5kZXggNDhmZWRm ZC4uNWMyMDdlMyAxMDA2NDQKICAgIFZBTFVFX0xWQUwgKHZhbCkgPSBub3RfbHZhbDsKICAgIHZh bC0+bG9jYXRpb24uYWRkcmVzcyA9IDA7CiAgICBWQUxVRV9GUkFNRV9JRCAodmFsKSA9IG51bGxf ZnJhbWVfaWQ7Ci1AQCAtMzQyLDYgKzM1NCw4IEBAIHZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAq dmFsdWUpCitAQCAtMzQ2LDYgKzM1OCw4IEBAIHZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFs dWUpCiAgdm9pZAogIGRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFs dWUsIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKQEAgLTI5MDQ5LDcgKzMwMzEwLDcgQEAgaW5kZXgg NDhmZWRmZC4uNWMyMDdlMyAxMDA2NDQKICAgIHZhbHVlLT50eXBlID0gdHlwZTsKICB9CiAgCi1A QCAtNjA4LDYgKzYyMiw5IEBAIHZhbHVlX2ZyZWUgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTYy NCw2ICs2MzgsOSBAQCB2YWx1ZV9mcmVlIChzdHJ1Y3QgdmFsdWUgKnZhbCkKICAgICAgICBpZiAo dmFsLT5wYXJlbnQgIT0gTlVMTCkKICAJdmFsdWVfZnJlZSAodmFsLT5wYXJlbnQpOwogIApAQCAt MjkwNTksNyArMzAzMjAsNyBAQCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEwMDY0NAogICAgICAg IGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfY29tcHV0ZWQpCiAgCXsKICAJICBzdHJ1Y3Qg bHZhbF9mdW5jcyAqZnVuY3MgPSB2YWwtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzOwotQEAgLTcx MSw2ICs3MjgsOSBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKmFyZykKK0BAIC03MjgsNiAr NzQ1LDkgQEAgdmFsdWVfY29weSAoc3RydWN0IHZhbHVlICphcmcpCiAgICAgIHZhbCA9IGFsbG9j YXRlX3ZhbHVlX2xhenkgKGVuY2xfdHlwZSk7CiAgICBlbHNlCiAgICAgIHZhbCA9IGFsbG9jYXRl X3ZhbHVlIChlbmNsX3R5cGUpOwpAQCAtMjkwNjksNyArMzAzMzAsNyBAQCBpbmRleCA0OGZlZGZk Li41YzIwN2UzIDEwMDY0NAogICAgdmFsLT50eXBlID0gYXJnLT50eXBlOwogICAgVkFMVUVfTFZB TCAodmFsKSA9IFZBTFVFX0xWQUwgKGFyZyk7CiAgICB2YWwtPmxvY2F0aW9uID0gYXJnLT5sb2Nh dGlvbjsKLUBAIC03NDYsMTIgKzc2NiwxNSBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKmFy ZykKK0BAIC03NjMsMTIgKzc4MywxNSBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKmFyZykK ICB2b2lkCiAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbHVlICpjb21w b25lbnQsIHN0cnVjdCB2YWx1ZSAqd2hvbGUpCiAgewpAQCAtMjkwODUsNyArMzAzNDYsNyBAQCBp bmRleCA0OGZlZGZkLi41YzIwN2UzIDEwMDY0NAogICAgaWYgKFZBTFVFX0xWQUwgKHdob2xlKSA9 PSBsdmFsX2NvbXB1dGVkKQogICAgICB7CiAgICAgICAgc3RydWN0IGx2YWxfZnVuY3MgKmZ1bmNz ID0gd2hvbGUtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzOwotQEAgLTc1OSw2ICs3ODIsMTAgQEAg c2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbHVlICpjb21wb25lbnQsIHN0 cnVjdCB2YWx1ZSAqd2hvbGUpCitAQCAtNzc2LDYgKzc5OSwxMCBAQCBzZXRfdmFsdWVfY29tcG9u ZW50X2xvY2F0aW9uIChzdHJ1Y3QgdmFsdWUgKmNvbXBvbmVudCwgc3RydWN0IHZhbHVlICp3aG9s ZSkKICAgICAgICBpZiAoZnVuY3MtPmNvcHlfY2xvc3VyZSkKICAgICAgICAgIGNvbXBvbmVudC0+ bG9jYXRpb24uY29tcHV0ZWQuY2xvc3VyZSA9IGZ1bmNzLT5jb3B5X2Nsb3N1cmUgKHdob2xlKTsK ICAgICAgfQpAQCAtMjkwOTYsNyArMzAzNTcsNyBAQCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEw MDY0NAogIH0KICAKICAMCi1AQCAtODg5LDYgKzkxNiwyOSBAQCBzaG93X3ZhbHVlcyAoY2hhciAq bnVtX2V4cCwgaW50IGZyb21fdHR5KQorQEAgLTkwNiw2ICs5MzMsMjkgQEAgc2hvd192YWx1ZXMg KGNoYXIgKm51bV9leHAsIGludCBmcm9tX3R0eSkKICAgICAgICBudW1fZXhwWzFdID0gJ1wwJzsK ICAgICAgfQogIH0KQEAgLTI5MTI2LDcgKzMwMzg3LDcgQEAgaW5kZXggNDhmZWRmZC4uNWMyMDdl MyAxMDA2NDQKICAMCiAgLyogSW50ZXJuYWwgdmFyaWFibGVzLiAgVGhlc2UgYXJlIHZhcmlhYmxl cyB3aXRoaW4gdGhlIGRlYnVnZ2VyCiAgICAgdGhhdCBob2xkIHZhbHVlcyBhc3NpZ25lZCBieSBk ZWJ1Z2dlciBjb21tYW5kcy4KLUBAIC0xMzY0LDYgKzE0MTQsNDAgQEAgY2FsbF9pbnRlcm5hbF9m dW5jdGlvbiAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMTM4MSw2ICsxNDMxLDQwIEBA IGNhbGxfaW50ZXJuYWxfZnVuY3Rpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICAgcmV0 dXJuICgqaWZuLT5oYW5kbGVyKSAoZ2RiYXJjaCwgbGFuZ3VhZ2UsIGlmbi0+Y29va2llLCBhcmdj LCBhcmd2KTsKICB9CiAgCkBAIC0yOTE2Nyw3ICszMDQyOCw3IEBAIGluZGV4IDQ4ZmVkZmQuLjVj MjA3ZTMgMTAwNjQ0CiAgLyogVGhlICdmdW5jdGlvbicgY29tbWFuZC4gIFRoaXMgZG9lcyBub3Ro aW5nIC0tIGl0IGlzIGp1c3QgYQogICAgIHBsYWNlaG9sZGVyIHRvIGxldCAiaGVscCBmdW5jdGlv biBOQU1FIiB3b3JrLiAgVGhpcyBpcyBhbHNvIHVzZWQgYXMKICAgICB0aGUgaW1wbGVtZW50YXRp b24gb2YgdGhlIHN1Yi1jb21tYW5kIHRoYXQgaXMgY3JlYXRlZCB3aGVuCi1AQCAtMTQxMSwxMSAr MTQ5NSwxMCBAQCBwcmVzZXJ2ZV9vbmVfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE0MjgsMTEgKzE1MTIsMTAgQEAgcHJlc2VydmVfb25l X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJ CSAgICBodGFiX3QgY29waWVkX3R5cGVzKQogIHsKICAgIGlmIChUWVBFX09CSkZJTEUgKHZhbHVl LT50eXBlKSA9PSBvYmpmaWxlKQpAQCAtMjkxODEsNyArMzA0NDIsNyBAQCBpbmRleCA0OGZlZGZk Li41YzIwN2UzIDEwMDY0NAogIAkJCQkJCSBjb3BpZWRfdHlwZXMpOwogIH0KICAKLUBAIC0xNDMw LDEzICsxNTEzLDEzIEBAIHByZXNlcnZlX29uZV9pbnRlcm5hbHZhciAoc3RydWN0IGludGVybmFs dmFyICp2YXIsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE0NDcsMTMgKzE1MzAsMTMg QEAgcHJlc2VydmVfb25lX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICAgIGNhc2UgSU5URVJOQUxWQVJfSU5URUdFUjoKICAg ICAgICBpZiAodmFyLT51LmludGVnZXIudHlwZSAmJiBUWVBFX09CSkZJTEUgKHZhci0+dS5pbnRl Z2VyLnR5cGUpID09IG9iamZpbGUpCiAgCXZhci0+dS5pbnRlZ2VyLnR5cGUKQEAgLTI5MTk3LDcg KzMwNDU4LDcgQEAgaW5kZXggNDhmZWRmZC4uNWMyMDdlMyAxMDA2NDQKICAgICAgICBicmVhazsK ICAKICAgICAgY2FzZSBJTlRFUk5BTFZBUl9WQUxVRToKLUBAIC0xODM4LDYgKzE5MjEsOCBAQCB2 YWx1ZV9jaGFuZ2VfZW5jbG9zaW5nX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdHlw ZSAqbmV3X2VuY2xfdHlwZSkKK0BAIC0xODU1LDYgKzE5MzgsOCBAQCB2YWx1ZV9jaGFuZ2VfZW5j bG9zaW5nX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdHlwZSAqbmV3X2VuY2xfdHlw ZSkKICAgICAgdmFsLT5jb250ZW50cyA9CiAgICAgICAgKGdkYl9ieXRlICopIHhyZWFsbG9jICh2 YWwtPmNvbnRlbnRzLCBUWVBFX0xFTkdUSCAobmV3X2VuY2xfdHlwZSkpOwogIApAQCAtMjkyMDYs NyArMzA0NjcsNyBAQCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEwMDY0NAogICAgdmFsLT5lbmNs b3NpbmdfdHlwZSA9IG5ld19lbmNsX3R5cGU7CiAgICByZXR1cm4gdmFsOwogIH0KLUBAIC0xOTAy LDYgKzE5ODcsOCBAQCB2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwg aW50IG9mZnNldCwKK0BAIC0xOTE5LDYgKzIwMDQsOCBAQCB2YWx1ZV9wcmltaXRpdmVfZmllbGQg KHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKICAJICBtZW1jcHkgKHZhbHVlX2NvbnRl bnRzX2FsbF9yYXcgKHYpLCB2YWx1ZV9jb250ZW50c19hbGxfcmF3IChhcmcxKSwKICAJCSAgVFlQ RV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmcxKSkpOwogIAl9CkBAIC0yOTIxNSw3 ICszMDQ3Niw3IEBAIGluZGV4IDQ4ZmVkZmQuLjVjMjA3ZTMgMTAwNjQ0CiAgICAgICAgdi0+dHlw ZSA9IHR5cGU7CiAgICAgICAgdi0+b2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChhcmcxKTsKICAgICAg ICB2LT5lbWJlZGRlZF9vZmZzZXQgPSAob2Zmc2V0ICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChh cmcxKQotQEAgLTIxNTIsNiArMjIzOSw0MiBAQCBwYWNrX2xvbmcgKGdkYl9ieXRlICpidWYsIHN0 cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIG51bSkKK0BAIC0yMTc3LDYgKzIyNjQsNDIgQEAgcGFj a19sb25nIChnZGJfYnl0ZSAqYnVmLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pCiAg fQogIAogIApAQCAtMjkyNTgsNyArMzA1MTksNyBAQCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEw MDY0NAogIC8qIENvbnZlcnQgQyBudW1iZXJzIGludG8gbmV3bHkgYWxsb2NhdGVkIHZhbHVlcy4g ICovCiAgCiAgc3RydWN0IHZhbHVlICoKLUBAIC0yMTY1LDYgKzIyODgsMTkgQEAgdmFsdWVfZnJv bV9sb25nZXN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pCitAQCAtMjE5MCw2ICsy MzEzLDE5IEBAIHZhbHVlX2Zyb21fbG9uZ2VzdCAoc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1Qg bnVtKQogIH0KICAKICAKQEAgLTI5Mjc4LDcgKzMwNTM5LDcgQEAgaW5kZXggNDhmZWRmZC4uNWMy MDdlMyAxMDA2NDQKICAvKiBDcmVhdGUgYSB2YWx1ZSByZXByZXNlbnRpbmcgYSBwb2ludGVyIG9m IHR5cGUgVFlQRSB0byB0aGUgYWRkcmVzcwogICAgIEFERFIuICAqLwogIHN0cnVjdCB2YWx1ZSAq Ci1AQCAtMjMyMyw0ICsyNDU5LDggQEAgVkFSSUFCTEUgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4i KSk7CitAQCAtMjM0OCw0ICsyNDg0LDggQEAgVkFSSUFCTEUgaXMgYWxyZWFkeSBpbml0aWFsaXpl ZC4iKSk7CiAgICBhZGRfcHJlZml4X2NtZCAoImZ1bmN0aW9uIiwgbm9fY2xhc3MsIGZ1bmN0aW9u X2NvbW1hbmQsIF8oIlwKICBQbGFjZWhvbGRlciBjb21tYW5kIGZvciBzaG93aW5nIGhlbHAgb24g Y29udmVuaWVuY2UgZnVuY3Rpb25zLiIpLAogIAkJICAmZnVuY3Rpb25saXN0LCAiZnVuY3Rpb24g IiwgMCwgJmNtZGxpc3QpOwpAQCAtMjkyODgsMTAgKzMwNTQ5LDEwIEBAIGluZGV4IDQ4ZmVkZmQu LjVjMjA3ZTMgMTAwNjQ0CiArICBvYnNlcnZlcl9hdHRhY2hfbWFya191c2VkICh2YWx1ZV90eXBl c19tYXJrX3VzZWQpOwogIH0KIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5o Ci1pbmRleCA2ZjZiNzU2Li5iOWNhNjUwIDEwMDY0NAoraW5kZXggNTFlNjk2MC4uNDhiMzBlNCAx MDA2NDQKIC0tLSBhL2dkYi92YWx1ZS5oCiArKysgYi9nZGIvdmFsdWUuaAotQEAgLTMzOSwxMSAr MzM5LDE2IEBAIGV4dGVybiBMT05HRVNUIHVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlw ZSAqdHlwZSwKK0BAIC0zNDIsMTEgKzM0MiwxNiBAQCBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmll bGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsCiAgZXh0ZXJuIHZvaWQgcGFja19sb25nIChn ZGJfYnl0ZSAqYnVmLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pOwogIAogIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Zyb21fbG9uZ2VzdCAoc3RydWN0IHR5cGUgKnR5cGUsIExP TkdFU1QgbnVtKTsKQEAgLTI5MzA4LDcgKzMwNTY5LDcgQEAgaW5kZXggNmY2Yjc1Ni4uYjljYTY1 MCAxMDA2NDQKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9hdCAoc3RydWN0IHR5cGUgKnR5 cGUsIENPUkVfQUREUiBhZGRyKTsKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9hdF9sYXp5 IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHIpOwogIAotQEAgLTQzMyw2ICs0Mzgs NyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUg KiphcmdwLAorQEAgLTQzNiw2ICs0NDEsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9z dHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKiphcmdwLAogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUg KnZhbHVlX2FnZ3JlZ2F0ZV9lbHQgKHN0cnVjdCB0eXBlICpjdXJ0eXBlLAogIAkJCQkJICBjaGFy ICpuYW1lLApAQCAtMjkzMTYsNyArMzA1NzcsNyBAQCBpbmRleCA2ZjZiNzU2Li5iOWNhNjUwIDEw MDY0NAogIAkJCQkJICBpbnQgd2FudF9hZGRyZXNzLAogIAkJCQkJICBlbnVtIG5vc2lkZSBub3Np ZGUpOwogIAotQEAgLTY3OCw3ICs2ODQsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9h bGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAoaW50KTsKK0BAIC02ODEsNyArNjg3LDcgQEAgZXh0 ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfYWxsb2NhdGVfc3BhY2VfaW5faW5mZXJpb3IgKGludCk7 CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfb2ZfbG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUs IGludCBjb21wbGFpbik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3Vic2NyaXB0 ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LApAQCAtMjkzMjYsNyArMzA1ODcsNyBAQCBp bmRleCA2ZjZiNzU2Li5iOWNhNjUwIDEwMDY0NAogIC8qIFVzZXIgZnVuY3Rpb24gaGFuZGxlci4g ICovCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3Zhcm9iai5jIGIvZ2RiL3Zhcm9iai5jCi1pbmRleCBm YmU4ZmY4Li40OTBjYTMzIDEwMDY0NAoraW5kZXggNjAzMDcxZi4uZjFjZTg5ZiAxMDA2NDQKIC0t LSBhL2dkYi92YXJvYmouYwogKysrIGIvZ2RiL3Zhcm9iai5jCiBAQCAtMjYsOSArMjYsMTIgQEAK QEAgLTI5NDE3LDcgKzMwNjc4LDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAg IHJldHVybiBlbnN1cmVfcHl0aG9uX2VudiAodmFyLT5yb290LT5leHAtPmdkYmFyY2gsCiAgCQkJ ICAgIHZhci0+cm9vdC0+ZXhwLT5sYW5ndWFnZV9kZWZuKTsKICB9Ci1AQCAtNjE0LDkgKzY1MCw5 IEBAIHZhcm9ial9jcmVhdGUgKGNoYXIgKm9iam5hbWUsCitAQCAtNjIxLDkgKzY1Nyw5IEBAIHZh cm9ial9jcmVhdGUgKGNoYXIgKm9iam5hbWUsCiAgCSAgZG9fY2xlYW51cHMgKG9sZF9jaGFpbik7 CiAgCSAgcmV0dXJuIE5VTEw7CiAgCX0KQEAgLTI5NDI4LDcgKzMwNjg5LDcgQEAgaW5kZXggZmJl OGZmOC4uNDkwY2EzMyAxMDA2NDQKICAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jaGFpbik7CiAg ICByZXR1cm4gdmFyOwogIH0KLUBAIC03MzEsMTUgKzc2Nyw4IEBAIGluc3RhbnRpYXRlX3ByZXR0 eV9wcmludGVyIChQeU9iamVjdCAqY29uc3RydWN0b3IsIHN0cnVjdCB2YWx1ZSAqdmFsdWUpCitA QCAtNzM4LDE1ICs3NzQsOCBAQCBpbnN0YW50aWF0ZV9wcmV0dHlfcHJpbnRlciAoUHlPYmplY3Qg KmNvbnN0cnVjdG9yLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlKQogICNpZiBIQVZFX1BZVEhPTgogICAg UHlPYmplY3QgKnZhbF9vYmogPSBOVUxMOyAKICAgIFB5T2JqZWN0ICpwcmludGVyOwpAQCAtMjk0 NDQsNyArMzA3MDUsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogICAgaWYgKCEg dmFsX29iaikKICAgICAgcmV0dXJuIE5VTEw7CiAgCi1AQCAtNzkyLDcgKzgyMSwxMiBAQCB2YXJv YmpfZ2V0X2Rpc3BsYXlfaGludCAoc3RydWN0IHZhcm9iaiAqdmFyKQorQEAgLTc5OSw3ICs4Mjgs MTIgQEAgdmFyb2JqX2dldF9kaXNwbGF5X2hpbnQgKHN0cnVjdCB2YXJvYmogKnZhcikKICAgIGNo YXIgKnJlc3VsdCA9IE5VTEw7CiAgCiAgI2lmIEhBVkVfUFlUSE9OCkBAIC0yOTQ1OCw3ICszMDcx OSw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAgCiAgICBpZiAodmFyLT5wcmV0 dHlfcHJpbnRlcikKICAgICAgcmVzdWx0ID0gZ2RicHlfZ2V0X2Rpc3BsYXlfaGludCAodmFyLT5w cmV0dHlfcHJpbnRlcik7Ci1AQCAtODAzLDYgKzgzNywxNyBAQCB2YXJvYmpfZ2V0X2Rpc3BsYXlf aGludCAoc3RydWN0IHZhcm9iaiAqdmFyKQorQEAgLTgxMCw2ICs4NDQsMTcgQEAgdmFyb2JqX2dl dF9kaXNwbGF5X2hpbnQgKHN0cnVjdCB2YXJvYmogKnZhcikKICAgIHJldHVybiByZXN1bHQ7CiAg fQogIApAQCAtMjk0NzYsNyArMzA3MzcsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0 NAogIC8qIElmIHRoZSB2YXJpYWJsZSBvYmplY3QgaXMgYm91bmQgdG8gYSBzcGVjaWZpYyB0aHJl YWQsIHRoYXQKICAgICBpcyBpdHMgZXZhbHVhdGlvbiBjYW4gYWx3YXlzIGJlIGRvbmUgaW4gY29u dGV4dCBvZiBhIGZyYW1lCiAgICAgaW5zaWRlIHRoYXQgdGhyZWFkLCByZXR1cm5zIEdEQiBpZCBv ZiB0aGUgdGhyZWFkIC0tIHdoaWNoCi1AQCAtODM1LDIyICs4ODAsOTAgQEAgdmFyb2JqX2dldF9m cm96ZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC04NDIsMjIgKzg4Nyw5NCBAQCB2YXJvYmpf Z2V0X2Zyb3plbiAoc3RydWN0IHZhcm9iaiAqdmFyKQogICAgcmV0dXJuIHZhci0+ZnJvemVuOwog IH0KICAKQEAgLTI5NTExLDYgKzMwNzcyLDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2 NDQKICtpbnN0YWxsX2R5bmFtaWNfY2hpbGQgKHN0cnVjdCB2YXJvYmogKnZhciwKICsJCSAgICAg ICBWRUMgKHZhcm9ial9wKSAqKmNoYW5nZWQsCiArCQkgICAgICAgVkVDICh2YXJvYmpfcCkgKipu ZXcsCisrCQkgICAgICAgVkVDICh2YXJvYmpfcCkgKip1bmNoYW5nZWQsCiArCQkgICAgICAgaW50 ICpjY2hhbmdlZCwKICsJCSAgICAgICBpbnQgaW5kZXgsCiArCQkgICAgICAgY29uc3QgY2hhciAq bmFtZSwKQEAgLTI5NTMyLDYgKzMwNzk0LDggQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2 NDQKICsJICBpZiAoY2hhbmdlZCkKICsJICAgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial9wLCAqY2hh bmdlZCwgZXhpc3RpbmcpOwogKwl9CisrICAgICAgZWxzZSBpZiAodW5jaGFuZ2VkKQorKwlWRUNf c2FmZV9wdXNoICh2YXJvYmpfcCwgKnVuY2hhbmdlZCwgZXhpc3RpbmcpOwogKyAgICB9CiArfQog KwpAQCAtMjk1NTksNiArMzA4MjMsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAog LQkJCQlpbnQgKmNjaGFuZ2VkKQogLQogKwkJCQlWRUMgKHZhcm9ial9wKSAqKm5ldywKKysJCQkJ VkVDICh2YXJvYmpfcCkgKip1bmNoYW5nZWQsCiArCQkJCWludCAqY2NoYW5nZWQsCiArCQkJCWlu dCB1cGRhdGVfY2hpbGRyZW4sCiArCQkJCWludCB0bykKQEAgLTI5NTc1LDcgKzMwODQwLDcgQEAg aW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAgIFB5T2JqZWN0ICpwcmludGVyID0gdmFy LT5wcmV0dHlfcHJpbnRlcjsKICAKICAgIGJhY2tfdG8gPSB2YXJvYmpfZW5zdXJlX3B5dGhvbl9l bnYgKHZhcik7Ci1AQCAtODYyLDg3ICs5NzUsMTAzIEBAIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9j aGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyLAorQEAgLTg2OSw4NyArOTg2LDEwMyBAQCB1cGRh dGVfZHluYW1pY192YXJvYmpfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhciwKICAgICAgICBy ZXR1cm4gMDsKICAgICAgfQogIApAQCAtMjk2ODAsNyArMzA5NDUsNyBAQCBpbmRleCBmYmU4ZmY4 Li40OTBjYTMzIDEwMDY0NAogKwkgICAgZXJyb3IgKF8oIkludmFsaWQgaXRlbSBmcm9tIHRoZSBj aGlsZCBsaXN0IikpOwogKwogKwkgIHYgPSBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChweV92 KTsKLSsJICBpbnN0YWxsX2R5bmFtaWNfY2hpbGQgKHZhciwgY2hhbmdlZCwgbmV3LAorKwkgIGlu c3RhbGxfZHluYW1pY19jaGlsZCAodmFyLCBjaGFuZ2VkLCBuZXcsIHVuY2hhbmdlZCwKICsJCQkJ IGNjaGFuZ2VkLCBpLCBuYW1lLCB2KTsKICsJICBkb19jbGVhbnVwcyAoaW5uZXIpOwogIAl9CkBA IC0yOTczNiw3ICszMTAwMSw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAgICBy ZXR1cm4gMTsKICAjZWxzZQogICAgZ2RiX2Fzc2VydCAoMCAmJiAic2hvdWxkIG5ldmVyIGJlIGNh bGxlZCBpZiBQeXRob24gaXMgbm90IGVuYWJsZWQiKTsKLUBAIC05NTQsMjAgKzEwODMsMjYgQEAg dmFyb2JqX2dldF9udW1fY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC05NjEsMjAg KzEwOTQsMjYgQEAgdmFyb2JqX2dldF9udW1fY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikK ICB7CiAgICBpZiAodmFyLT5udW1fY2hpbGRyZW4gPT0gLTEpCiAgICAgIHsKQEAgLTI5NzQ5LDcg KzMxMDE0LDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICsKICsJICAvKiBJZiB3 ZSBoYXZlIGEgZHluYW1pYyB2YXJvYmosIGRvbid0IHJlcG9ydCAtMSBjaGlsZHJlbi4KICsJICAg ICBTbywgdHJ5IHRvIGZldGNoIHNvbWUgY2hpbGRyZW4gZmlyc3QuICAqLwotKwkgIHVwZGF0ZV9k eW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCAmZHVtbXksIDAsIDApOwor KwkgIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCBOVUxM LCAmZHVtbXksIDAsIDApOwogKwl9CiArICAgICAgZWxzZQogIAl2YXItPm51bV9jaGlsZHJlbiA9 IG51bWJlcl9vZl9jaGlsZHJlbiAodmFyKTsKQEAgLTI5NzY4LDcgKzMxMDMzLDcgQEAgaW5kZXgg ZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgdmFyb2JqICpjaGlsZDsKICAg IGNoYXIgKm5hbWU7Ci1AQCAtOTc1LDEyICsxMTEwLDE2IEBAIHZhcm9ial9saXN0X2NoaWxkcmVu IChzdHJ1Y3QgdmFyb2JqICp2YXIpCitAQCAtOTgyLDEyICsxMTIxLDE2IEBAIHZhcm9ial9saXN0 X2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIpCiAgCiAgICB2YXItPmNoaWxkcmVuX3JlcXVl c3RlZCA9IDE7CiAgCkBAIC0yOTc4MCw3ICszMTA0NSw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNh MzMgMTAwNjQ0CiAgCSB2YXJvYmogdHdpY2UgaXMgbm90IHNvbWV0aGluZyBhIHNhbmUgZnJvbnRl bmQgd291bGQgZG8uICAqLwogLSAgICAgICYmIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJl biAodmFyLCBOVUxMLCBOVUxMLCAmY2hpbGRyZW5fY2hhbmdlZCkpCiAtICAgIHJldHVybiB2YXIt PmNoaWxkcmVuOwotKyAgICAgIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBO VUxMLCBOVUxMLCAmY2hpbGRyZW5fY2hhbmdlZCwKKysgICAgICB1cGRhdGVfZHluYW1pY192YXJv YmpfY2hpbGRyZW4gKHZhciwgTlVMTCwgTlVMTCwgTlVMTCwgJmNoaWxkcmVuX2NoYW5nZWQsCiAr CQkJCSAgICAgIDAsICp0byk7CiArICAgICAgcmVzdHJpY3RfcmFuZ2UgKHZhci0+Y2hpbGRyZW4s IGZyb20sIHRvKTsKICsgICAgICByZXR1cm4gdmFyLT5jaGlsZHJlbjsKQEAgLTI5Nzg4LDcgKzMx MDUzLDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAKICAgIGlmICh2YXItPm51 bV9jaGlsZHJlbiA9PSAtMSkKICAgICAgdmFyLT5udW1fY2hpbGRyZW4gPSBudW1iZXJfb2ZfY2hp bGRyZW4gKHZhcik7Ci1AQCAtMTAwNiwxMCArMTE0NSwxMCBAQCB2YXJvYmpfbGlzdF9jaGlsZHJl biAoc3RydWN0IHZhcm9iaiAqdmFyKQorQEAgLTEwMTMsMTAgKzExNTYsMTAgQEAgdmFyb2JqX2xp c3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKICAJICBuYW1lID0gbmFtZV9vZl9jaGls ZCAodmFyLCBpKTsKICAJICBleGlzdGluZyA9IGNyZWF0ZV9jaGlsZCAodmFyLCBpLCBuYW1lKTsK ICAJICBWRUNfcmVwbGFjZSAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4sIGksIGV4aXN0aW5nKTsK QEAgLTI5ODAwLDcgKzMxMDY1LDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAg IHJldHVybiB2YXItPmNoaWxkcmVuOwogIH0KICAKLUBAIC0xMDIwLDcgKzExNTksNiBAQCB2YXJv YmpfYWRkX2NoaWxkIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVj dCB2YWx1ZSAqdmFsdWUpCitAQCAtMTAyNyw3ICsxMTcwLDYgQEAgdmFyb2JqX2FkZF9jaGlsZCAo c3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKnZhbHVl KQogIAkJCQkJVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pLCAKICAJCQkJCW5h bWUsIHZhbHVlKTsKICAgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCB2 KTsKQEAgLTI5ODA4LDcgKzMxMDczLDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQK ICAgIHJldHVybiB2OwogIH0KICAKLUBAIC0xMDgyLDYgKzEyMjAsMTIgQEAgdmFyb2JqX2dldF9h dHRyaWJ1dGVzIChzdHJ1Y3QgdmFyb2JqICp2YXIpCitAQCAtMTA4OSw2ICsxMjMxLDEyIEBAIHZh cm9ial9nZXRfYXR0cmlidXRlcyAoc3RydWN0IHZhcm9iaiAqdmFyKQogICAgcmV0dXJuIGF0dHJp YnV0ZXM7CiAgfQogIApAQCAtMjk4MjEsNyArMzEwODYsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBj YTMzIDEwMDY0NAogIGNoYXIgKgogIHZhcm9ial9nZXRfZm9ybWF0dGVkX3ZhbHVlIChzdHJ1Y3Qg dmFyb2JqICp2YXIsCiAgCQkJICAgIGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9ybWF0cyBmb3JtYXQp Ci1AQCAtMTE1OSw2ICsxMzAzLDExNiBAQCB2YXJvYmpfc2V0X3ZhbHVlIChzdHJ1Y3QgdmFyb2Jq ICp2YXIsIGNoYXIgKmV4cHJlc3Npb24pCitAQCAtMTE2Niw2ICsxMzE0LDExNiBAQCB2YXJvYmpf c2V0X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGNoYXIgKmV4cHJlc3Npb24pCiAgICByZXR1 cm4gMTsKICB9CiAgCkBAIC0yOTkzOCw3ICszMTIwMyw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNh MzMgMTAwNjQ0CiAgLyogQXNzaWduIGEgbmV3IHZhbHVlIHRvIGEgdmFyaWFibGUgb2JqZWN0LiAg SWYgSU5JVElBTCBpcyBub24temVybywKICAgICB0aGlzIGlzIHRoZSBmaXJzdCBhc3NpZ25lbWVu dCBhZnRlciB0aGUgdmFyaWFibGUgb2JqZWN0IHdhcyBqdXN0CiAgICAgY3JlYXRlZCwgb3IgY2hh bmdlZCB0eXBlLiAgSW4gdGhhdCBjYXNlLCBqdXN0IGFzc2lnbiB0aGUgdmFsdWUgCi1AQCAtMTE5 OSwxMCArMTQ1Myw3IEBAIGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBpbml0aWFsKQorQEAgLTEyMDYsMTAgKzE0NjQsNyBAQCBp bnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVl LCBpbnQgaW5pdGlhbCkKICAgICAgIHRoYXQgaW4gQysrIGEgcmVmZXJlbmNlIGlzIG5vdCByZWJp bmRhYmxlLCBpdCBjYW5ub3QKICAgICAgIG1lYW5pbmdmdWxseSBjaGFuZ2UuICBTbywgZ2V0IGhv bGQgb2YgdGhlIHJlYWwgdmFsdWUuICAqLwogICAgaWYgKHZhbHVlKQpAQCAtMjk5NTAsNyArMzEy MTUsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogIAogICAgaWYgKHZhci0+dHlw ZSAmJiBUWVBFX0NPREUgKHZhci0+dHlwZSkgPT0gVFlQRV9DT0RFX1VOSU9OKQogICAgICAvKiBG b3IgdW5pb25zLCB3ZSBuZWVkIHRvIGZldGNoIHRoZSB2YWx1ZSBpbXBsaWNpdGx5IGJlY2F1c2UK LUBAIC0xMjQ5LDcgKzE1MDAsNyBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAq dmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkKK0BAIC0xMjU2LDcgKzE1MTEs NyBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUg KnZhbHVlLCBpbnQgaW5pdGlhbCkKICAgICAgIHZhbHVlcy4gIERvbid0IGdldCBzdHJpbmcgcmVu ZGVyaW5nIGlmIHRoZSB2YWx1ZSBpcwogICAgICAgbGF6eSAtLSBpZiBpdCBpcywgdGhlIGNvZGUg YWJvdmUgaGFzIGRlY2lkZWQgdGhhdCB0aGUgdmFsdWUKICAgICAgIHNob3VsZCBub3QgYmUgZmV0 Y2hlZC4gICovCkBAIC0yOTk1OSw3ICszMTIyNCw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMg MTAwNjQ0CiAgICAgIHByaW50X3ZhbHVlID0gdmFsdWVfZ2V0X3ByaW50X3ZhbHVlICh2YWx1ZSwg dmFyLT5mb3JtYXQsIHZhcik7CiAgCiAgICAvKiBJZiB0aGUgdHlwZSBpcyBjaGFuZ2VhYmxlLCBj b21wYXJlIHRoZSBvbGQgYW5kIHRoZSBuZXcgdmFsdWVzLgotQEAgLTEyNjUsNyArMTUxNiw3IEBA IGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHN0cnVjdCB2YWx1ZSAqdmFs dWUsIGludCBpbml0aWFsKQorQEAgLTEyNzIsNyArMTUyNyw3IEBAIGluc3RhbGxfbmV3X3ZhbHVl IChzdHJ1Y3QgdmFyb2JqICp2YXIsIHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBpbml0aWFsKQog IAl7CiAgCSAgY2hhbmdlZCA9IDE7CiAgCX0KQEAgLTI5OTY4LDcgKzMxMjMzLDcgQEAgaW5kZXgg ZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAJewogIAkgIC8qIFRyeSB0byBjb21wYXJlIHRoZSB2 YWx1ZXMuICBUaGF0IHJlcXVpcmVzIHRoYXQgYm90aAogIAkgICAgIHZhbHVlcyBhcmUgbm9uLWxh enkuICAqLwotQEAgLTEzMTAsNzQgKzE1NjEsNTMgQEAgaW5zdGFsbF9uZXdfdmFsdWUgKHN0cnVj dCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGluaXRpYWwpCitAQCAtMTMx Nyw3NCArMTU3Miw1MyBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBz dHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkKICAgIGlmICh2YXItPnZhbHVlICE9IE5V TEwgJiYgdmFyLT52YWx1ZSAhPSB2YWx1ZSkKICAgICAgdmFsdWVfZnJlZSAodmFyLT52YWx1ZSk7 CiAgICB2YXItPnZhbHVlID0gdmFsdWU7CkBAIC0zMDA3NSw3ICszMTM0MCw3IEBAIGluZGV4IGZi ZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAgfQogIAogIHZvaWQgCi1AQCAtMTM5NSwzMSArMTYyNSwx OSBAQCB2YXJvYmpfc2V0X3Zpc3VhbGl6ZXIgKHN0cnVjdCB2YXJvYmogKnZhciwgY29uc3QgY2hh ciAqdmlzdWFsaXplcikKK0BAIC0xNDAyLDMxICsxNjM2LDE5IEBAIHZhcm9ial9zZXRfdmlzdWFs aXplciAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICp2aXN1YWxpemVyKQogICAgbWFr ZV9jbGVhbnVwX3B5X2RlY3JlZiAoZ2xvYmFscyk7CiAgCiAgICBjb25zdHJ1Y3RvciA9IFB5UnVu X1N0cmluZyAodmlzdWFsaXplciwgUHlfZXZhbF9pbnB1dCwgZ2xvYmFscywgZ2xvYmFscyk7CkBA IC0zMDExMyw3ICszMTM3OCw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAgCiAg ICBkb19jbGVhbnVwcyAoYmFja190byk7CiAgI2Vsc2UKLUBAIC0xNTMwLDQ0ICsxNzQ4LDYzIEBA IFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91cGRhdGUgKHN0cnVjdCB2YXJvYmog Kip2YXJwLCBpbnQgZXhwbGljaXQpCitAQCAtMTUzNyw0NCArMTc1OSw3NCBAQCBWRUModmFyb2Jq X3VwZGF0ZV9yZXN1bHQpICp2YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoqdmFycCwgaW50 IGV4cGxpY2l0KQogIAogICAgICAgIC8qIFdlIHByb2JhYmx5IHNob3VsZCBub3QgZ2V0IGNoaWxk cmVuIG9mIGEgdmFyb2JqIHRoYXQgaGFzIGEKICAJIHByZXR0eS1wcmludGVyLCBidXQgZm9yIHdo aWNoIC12YXItbGlzdC1jaGlsZHJlbiB3YXMgbmV2ZXIKQEAgLTMwMTIzLDcgKzMxMzg4LDcgQEAg aW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAgICAgICBpZiAodi0+cHJldHR5X3ByaW50 ZXIpCiAgCXsKIC0JICBWRUMgKHZhcm9ial9wKSAqY2hhbmdlZCA9IDAsICpuZXdfYW5kX3VuY2hh bmdlZCA9IDA7Ci0rCSAgVkVDICh2YXJvYmpfcCkgKmNoYW5nZWQgPSAwLCAqbmV3ID0gMDsKKysJ ICBWRUMgKHZhcm9ial9wKSAqY2hhbmdlZCA9IDAsICpuZXcgPSAwLCAqdW5jaGFuZ2VkID0gMDsK ICAJICBpbnQgaSwgY2hpbGRyZW5fY2hhbmdlZDsKICAJICB2YXJvYmpfcCB0bXA7CiAgCkBAIC0z MDE0NSw3ICszMTQxMCw4IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiArCQkgaXQu ICAqLwogKwkgICAgICBpZiAoIXZhcm9ial9oYXNfbW9yZSAodiwgMCkpCiArCQl7Ci0rCQkgIHVw ZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodiwgTlVMTCwgTlVMTCwgJmR1bW15LCAwLCAw KTsKKysJCSAgdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2LCBOVUxMLCBOVUxMLCBO VUxMLAorKwkJCQkJCSAgJmR1bW15LCAwLCAwKTsKICsJCSAgaWYgKHZhcm9ial9oYXNfbW9yZSAo diwgMCkpCiArCQkgICAgci5jaGFuZ2VkID0gMTsKICsJCX0KQEAgLTMwMTYwLDcgKzMxNDI2LDcg QEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAJICAgICBhIG5vbi1jb25mb3JtaW5n IHByZXR0eS1wcmludGVyLCBzbyB3ZSBza2lwIGl0LiAgKi8KIC0JICBpZiAodXBkYXRlX2R5bmFt aWNfdmFyb2JqX2NoaWxkcmVuICh2LCAmY2hhbmdlZCwgJm5ld19hbmRfdW5jaGFuZ2VkLAogLQkJ CQkJICAgICAgJmNoaWxkcmVuX2NoYW5nZWQpKQotKwkgIGlmICh1cGRhdGVfZHluYW1pY192YXJv YmpfY2hpbGRyZW4gKHYsICZjaGFuZ2VkLCAmbmV3LAorKwkgIGlmICh1cGRhdGVfZHluYW1pY192 YXJvYmpfY2hpbGRyZW4gKHYsICZjaGFuZ2VkLCAmbmV3LCAmdW5jaGFuZ2VkLAogKwkJCQkJICAg ICAgJmNoaWxkcmVuX2NoYW5nZWQsIDEsIHYtPnRvKSkKICAJICAgIHsKIC0JICAgICAgaWYgKGNo aWxkcmVuX2NoYW5nZWQpCkBAIC0zMDE4NSwxNyArMzE0NTEsMjcgQEAgaW5kZXggZmJlOGZmOC4u NDkwY2EzMyAxMDA2NDQKICAJCSAgci52YWx1ZV9pbnN0YWxsZWQgPSAxOwogIAkJICBWRUNfc2Fm ZV9wdXNoICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCwgc3RhY2ssICZyKTsKICAJCX0KKysJICAgICAg Zm9yIChpID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCB1bmNoYW5nZWQsIGksIHRtcCk7ICsr aSkKKysJICAgICAgCXsKKysJICAgICAgCSAgaWYgKCF0bXAtPmZyb3plbikKKysJICAgICAgCSAg ICB7CisrCSAgICAgIAkgICAgICB2YXJvYmpfdXBkYXRlX3Jlc3VsdCByID0ge3RtcH07CisrCSAg ICAgIAkgICAgICByLnZhbHVlX2luc3RhbGxlZCA9IDE7CisrCSAgICAgIAkgICAgICBWRUNfc2Fm ZV9wdXNoICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCwgc3RhY2ssICZyKTsKKysJICAgICAgCSAgICB9 CisrCSAgICAgIAl9CiAgCSAgICAgIGlmIChyLmNoYW5nZWQgfHwgci5jaGlsZHJlbl9jaGFuZ2Vk KQogIAkJVkVDX3NhZmVfcHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHJlc3VsdCwgJnIpOwog KwotKwkgICAgICAvKiBGcmVlIENIQU5HRUQsIGJ1dCBub3QgTkVXLCBiZWNhdXNlIE5FVyBoYXMg YmVlbiBwdXQKLSsJCSBpbnRvIHRoZSByZXN1bHQgdmVjdG9yLiAgKi8KKysJICAgICAgLyogRnJl ZSBDSEFOR0VEIGFuZCBVTkNIQU5HRUQsIGJ1dCBub3QgTkVXLCBiZWNhdXNlIE5FVworKwkJIGhh cyBiZWVuIHB1dCBpbnRvIHRoZSByZXN1bHQgdmVjdG9yLiAgKi8KICsJICAgICAgVkVDX2ZyZWUg KHZhcm9ial9wLCBjaGFuZ2VkKTsKKysJICAgICAgVkVDX2ZyZWUgKHZhcm9ial9wLCB1bmNoYW5n ZWQpOwogKwogIAkgICAgICBjb250aW51ZTsKICAJICAgIH0KICAJfQotQEAgLTE4NTUsNyArMjA5 MiwxMiBAQCBuZXdfdmFyaWFibGUgKHZvaWQpCitAQCAtMTg2Miw3ICsyMTE0LDEyIEBAIG5ld192 YXJpYWJsZSAodm9pZCkKICAgIHZhci0+ZnJvemVuID0gMDsKICAgIHZhci0+bm90X2ZldGNoZWQg PSAwOwogICAgdmFyLT5jaGlsZHJlbl9yZXF1ZXN0ZWQgPSAwOwpAQCAtMzAyMDgsNyArMzE0ODQs NyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogIAogICAgcmV0dXJuIHZhcjsKICB9 Ci1AQCAtMTg4NSw3ICsyMTI3LDEwIEBAIGZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZh cikKK0BAIC0xODkyLDcgKzIxNDksMTAgQEAgZnJlZV92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAq dmFyKQogICAgaWYgKHZhci0+cHJldHR5X3ByaW50ZXIpCiAgICAgIHsKICAgICAgICBzdHJ1Y3Qg Y2xlYW51cCAqY2xlYW51cCA9IHZhcm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKQEAgLTMw MjIwLDcgKzMxNDk2LDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAgICAgICBk b19jbGVhbnVwcyAoY2xlYW51cCk7CiAgICAgIH0KICAjZW5kaWYKLUBAIC0xOTE4LDYgKzIxNjMs MTggQEAgbWFrZV9jbGVhbnVwX2ZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKK0BA IC0xOTI1LDYgKzIxODUsMTggQEAgbWFrZV9jbGVhbnVwX2ZyZWVfdmFyaWFibGUgKHN0cnVjdCB2 YXJvYmogKnZhcikKICAgIHJldHVybiBtYWtlX2NsZWFudXAgKGRvX2ZyZWVfdmFyaWFibGVfY2xl YW51cCwgdmFyKTsKICB9CiAgCkBAIC0zMDIzOSw3ICszMTUxNSw3IEBAIGluZGV4IGZiZThmZjgu LjQ5MGNhMzMgMTAwNjQ0CiAgLyogVGhpcyByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJs ZS4gSXQgYWxzbyBza2lwcyBwYXN0IHR5cGVkZWZzCiAgICAgdG8gcmV0dXJuIHRoZSByZWFsIHR5 cGUgb2YgdGhlIHZhcmlhYmxlLgogIAotQEAgLTIxMzIsNiArMjM4OSw4IEBAIHZhbHVlX29mX3Jv b3QgKHN0cnVjdCB2YXJvYmogKip2YXJfaGFuZGxlLCBpbnQgKnR5cGVfY2hhbmdlZCkKK0BAIC0y MTM5LDYgKzI0MTEsOCBAQCB2YWx1ZV9vZl9yb290IChzdHJ1Y3QgdmFyb2JqICoqdmFyX2hhbmRs ZSwgaW50ICp0eXBlX2NoYW5nZWQpCiAgICAgICAgZWxzZQogIAl7CiAgCSAgdG1wX3Zhci0+b2Jq X25hbWUgPSB4c3RyZHVwICh2YXItPm9ial9uYW1lKTsKQEAgLTMwMjQ4LDcgKzMxNTI0LDcgQEAg aW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAJICB2YXJvYmpfZGVsZXRlICh2YXIsIE5V TEwsIDApOwogIAogIAkgIGluc3RhbGxfdmFyaWFibGUgKHRtcF92YXIpOwotQEAgLTIxNjYsNyAr MjQyNSwxMSBAQCBzdGF0aWMgY2hhciAqCitAQCAtMjE3Myw3ICsyNDQ3LDExIEBAIHN0YXRpYyBj aGFyICoKICBteV92YWx1ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZh cm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0KQogIHsKICAgIGlmICh2YXItPnJvb3QtPmlzX3Zh bGlkKQpAQCAtMzAyNjEsNyArMzE1MzcsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0 NAogICAgZWxzZQogICAgICByZXR1cm4gTlVMTDsKICB9Ci1AQCAtMjE4OSw0MyArMjQ1Miw1MSBA QCB2YWx1ZV9nZXRfcHJpbnRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGVudW0gdmFyb2Jq X2Rpc3BsYXlfZm9ybWF0cyBmb3JtYXQsCitAQCAtMjE5Niw0MyArMjQ3NCw1MSBAQCB2YWx1ZV9n ZXRfcHJpbnRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGVudW0gdmFyb2JqX2Rpc3BsYXlf Zm9ybWF0cyBmb3JtYXQsCiAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvID0gdmFyb2JqX2Vu c3VyZV9weXRob25fZW52ICh2YXIpOwogICAgICBQeU9iamVjdCAqdmFsdWVfZm9ybWF0dGVyID0g dmFyLT5wcmV0dHlfcHJpbnRlcjsKICAKQEAgLTMwMzQ0LDcgKzMxNjIwLDcgQEAgaW5kZXggZmJl OGZmOC4uNDkwY2EzMyAxMDA2NDQKICAgICAgICB9CiAgICAgIGRvX2NsZWFudXBzIChiYWNrX3Rv KTsKICAgIH0KLUBAIC0yOTU0LDEwICszMjI1LDcgQEAgY3BsdXNfZGVzY3JpYmVfY2hpbGQgKHN0 cnVjdCB2YXJvYmogKnBhcmVudCwgaW50IGluZGV4LAorQEAgLTI5NjEsMTAgKzMyNDcsNyBAQCBj cGx1c19kZXNjcmliZV9jaGlsZCAoc3RydWN0IHZhcm9iaiAqcGFyZW50LCBpbnQgaW5kZXgsCiAg CSAgICAqY25hbWUgPSB4c3RyZHVwIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGluZGV4KSk7CiAg CiAgCSAgaWYgKGN2YWx1ZSAmJiB2YWx1ZSkKQEAgLTMwMzU2LDcgKzMxNjMyLDcgQEAgaW5kZXgg ZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAKICAJICBpZiAoY3R5cGUpCiAgCSAgICB7Ci1AQCAt MzE2Myw2ICszNDMxLDE5IEBAIGphdmFfdmFsdWVfb2ZfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmog KnZhciwgZW51bSB2YXJvYmpfZGlzcGxheV9mb3JtYXRzIGZvcm1hdCkKK0BAIC0zMTcwLDYgKzM0 NTMsMTkgQEAgamF2YV92YWx1ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVt IHZhcm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0KQogICAgcmV0dXJuIGNwbHVzX3ZhbHVlX29m X3ZhcmlhYmxlICh2YXIsIGZvcm1hdCk7CiAgfQogIApAQCAtMzAzNzYsNyArMzE2NTIsNyBAQCBp bmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogIC8qIEl0ZXJhdGUgYWxsIHRoZSBleGlzdGlu ZyBfcm9vdF8gVkFST0JKcyBhbmQgY2FsbCB0aGUgRlVOQyBjYWxsYmFjayBmb3IgdGhlbQogICAg IHdpdGggYW4gYXJiaXRyYXJ5IGNhbGxlciBzdXBwbGllZCBEQVRBIHBvaW50ZXIuICAqLwogIAot QEAgLTMxODAsNiArMzQ2MSw0MyBAQCBhbGxfcm9vdF92YXJvYmpzICh2b2lkICgqZnVuYykgKHN0 cnVjdCB2YXJvYmogKnZhciwgdm9pZCAqZGF0YSksIHZvaWQgKmRhdGEpCitAQCAtMzE4Nyw2ICsz NDgzLDQzIEBAIGFsbF9yb290X3Zhcm9ianMgKHZvaWQgKCpmdW5jKSAoc3RydWN0IHZhcm9iaiAq dmFyLCB2b2lkICpkYXRhKSwgdm9pZCAqZGF0YSkKICAgICAgICAoKmZ1bmMpICh2YXJfcm9vdC0+ cm9vdHZhciwgZGF0YSk7CiAgICAgIH0KICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTIwMTI5LWRy b3ctYml0ZmllbGRzLnBhdGNoIGIvZ2RiLWJ6NTIwMTI5LWRyb3ctYml0ZmllbGRzLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWVjZjFiLi4wMDAwMDAwCi0tLSBhL2dkYi1i ejUyMDEyOS1kcm93LWJpdGZpZWxkcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0NSArMCww IEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDA5LTA3L21zZzAwMTQzLmh0 bWwKLQotMjAwOS0wNy0yMSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNv bT4KLQkgICAgVmxhZGltaXIgUHJ1cyA8dmxhZGltaXJAY29kZXNvdXJjZXJ5LmNvbT4KLQotCSog dmFsb3BzLmMgKHZhbHVlX2ZldGNoX2xhenkpOiBIYW5kbGUgYml0ZmllbGRzIGV4cGxpY2l0bHku Ci0JKHZhbHVlX2Fzc2lnbik6IFJlbW92ZSB1bm5lY2Vzc2FyeSBGSVhNRS4gIEhvbm9yIHRoZSBj b250YWluZXIKLQl0eXBlIG9mIGJpdGZpZWxkcyBpZiBwb3NzaWJsZS4KLQkqIHZhbHVlLmMgKHN0 cnVjdCB2YWx1ZSk6IEFkZCBwYXJlbnQgZmllbGQuCi0JKHZhbHVlX3BhcmVudCk6IE5ldyBmdW5j dGlvbi4KLQkodmFsdWVfZnJlZSk6IEZyZWUgdGhlIHBhcmVudCBhbHNvLgotCSh2YWx1ZV9jb3B5 KTogQ29weSB0aGUgcGFyZW50IGFsc28uCi0JKHZhbHVlX3ByaW1pdGl2ZV9maWVsZCk6IERvIG5v dCByZWFkIHRoZSBjb250ZW50cyBvZiBhIGxhenkKLQl2YWx1ZSB0byBjcmVhdGUgYSBjaGlsZCBi aXRmaWVsZCB2YWx1ZS4gIFNldCBiaXRwb3MgYW5kIG9mZnNldAotCWFjY29yZGluZyB0byB0aGUg Y29udGFpbmVyIHR5cGUgaWYgcG9zc2libGUuCi0JKHVucGFja19iaXRzX2FzX2xvbmcpOiBSZW5h bWUgZnJvbSB1bnBhY2tfZmllbGRfYXNfbG9uZy4gIFRha2UKLQlmaWVsZF90eXBlLCBiaXRwb3Ms IGFuZCBiaXRzaXplIGluc3RlYWQgb2YgdHlwZSBhbmQgZmllbGRuby4KLQkodW5wYWNrX2ZpZWxk X2FzX2xvbmcpOiBVc2UgdW5wYWNrX2JpdHNfYXNfbG9uZy4KLQkqIHZhbHVlLmggKHZhbHVlX3Bh cmVudCwgdW5wYWNrX2JpdHNfYXNfbG9uZyk6IE5ldyBwcm90b3R5cGVzLgotCi1bIFJldmVydGVk LCBiYWNrcG9ydGVkIGZvciBGZWRvcmEuICBdCi0KLS0tLSAuL2dkYi92YWxvcHMuYwkyMDA5LTA4 LTI4IDE5OjI3OjMwLjAwMDAwMDAwMCArMDIwMAotKysrIC4vZ2RiL3ZhbG9wcy5jCTIwMDktMDgt MjggMTk6Mjc6NTkuMDAwMDAwMDAwICswMjAwCi1AQCAtNjg5LDI1ICs2ODksNyBAQCB2YWx1ZV9m ZXRjaF9sYXp5IChzdHJ1Y3QgdmFsdWUgKnZhbCkKLSB7Ci0gICBnZGJfYXNzZXJ0ICh2YWx1ZV9s YXp5ICh2YWwpKTsKLSAgIGFsbG9jYXRlX3ZhbHVlX2NvbnRlbnRzICh2YWwpOwotLSAgaWYgKHZh bHVlX2JpdHNpemUgKHZhbCkpCi0tICAgIHsKLS0gICAgICAvKiBUbyByZWFkIGEgbGF6eSBiaXRm aWVsZCwgcmVhZCB0aGUgZW50aXJlIGVuY2xvc2luZyB2YWx1ZS4gIFRoaXMKLS0JIHByZXZlbnRz IHJlYWRpbmcgdGhlIHNhbWUgYmxvY2sgb2YgKHBvc3NpYmx5IHZvbGF0aWxlKSBtZW1vcnkgb25j ZQotLSAgICAgICAgIHBlciBiaXRmaWVsZC4gIEl0IHdvdWxkIGJlIGV2ZW4gYmV0dGVyIHRvIHJl YWQgb25seSB0aGUgY29udGFpbmluZwotLSAgICAgICAgIHdvcmQsIGJ1dCB3ZSBoYXZlIG5vIHdh eSB0byByZWNvcmQgdGhhdCBqdXN0IHNwZWNpZmljIGJpdHMgb2YgYQotLSAgICAgICAgIHZhbHVl IGhhdmUgYmVlbiBmZXRjaGVkLiAgKi8KLS0gICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbCkpOwotLSAgICAgIGVudW0gYmZkX2VuZGlhbiBieXRl X29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7Ci0tICAg ICAgc3RydWN0IHZhbHVlICpwYXJlbnQgPSB2YWx1ZV9wYXJlbnQgKHZhbCk7Ci0tICAgICAgTE9O R0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHZhbCk7Ci0tICAgICAgTE9OR0VTVCBudW0gPSB1 bnBhY2tfYml0c19hc19sb25nICh2YWx1ZV90eXBlICh2YWwpLAotLQkJCQkJIHZhbHVlX2NvbnRl bnRzIChwYXJlbnQpICsgb2Zmc2V0LAotLQkJCQkJIHZhbHVlX2JpdHBvcyAodmFsKSwKLS0JCQkJ CSB2YWx1ZV9iaXRzaXplICh2YWwpKTsKLS0gICAgICBpbnQgbGVuZ3RoID0gVFlQRV9MRU5HVEgg KHR5cGUpOwotLSAgICAgIHN0b3JlX3NpZ25lZF9pbnRlZ2VyICh2YWx1ZV9jb250ZW50c19yYXcg KHZhbCksIGxlbmd0aCwgYnl0ZV9vcmRlciwgbnVtKTsKLS0gICAgfQotLSAgZWxzZSBpZiAoVkFM VUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSkKLSsgIGlmIChWQUxVRV9MVkFMICh2YWwpID09 IGx2YWxfbWVtb3J5KQotICAgICB7Ci0gICAgICAgQ09SRV9BRERSIGFkZHIgPSB2YWx1ZV9yYXdf YWRkcmVzcyAodmFsKTsKLSAKLUBAIC04ODMsMjAgKzg2NSwxMyBAQCB2YWx1ZV9hc3NpZ24gKHN0 cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVjCi0gCi0gCWlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkp Ci0gCSAgewotKwkgICAgLyogV2UgYXNzdW1lIHRoYXQgdGhlIGFyZ3VtZW50IHRvIHJlYWRfbWVt b3J5IGlzIGluIHVuaXRzCi0rCSAgICAgICBvZiBob3N0IGNoYXJzLiAgRklYTUU6IElzIHRoYXQg Y29ycmVjdD8gICovCi0gCSAgICBjaGFuZ2VkX2xlbiA9ICh2YWx1ZV9iaXRwb3MgKHRvdmFsKQot IAkJCSAgICsgdmFsdWVfYml0c2l6ZSAodG92YWwpCi0gCQkJICAgKyBIT1NUX0NIQVJfQklUIC0g MSkKLSAJICAgICAgLyBIT1NUX0NIQVJfQklUOwotIAotLQkgICAgLyogSWYgd2UgY2FuIHJlYWQt bW9kaWZ5LXdyaXRlIGV4YWN0bHkgdGhlIHNpemUgb2YgdGhlCi0tCSAgICAgICBjb250YWluaW5n IHR5cGUgKGUuZy4gc2hvcnQgb3IgaW50KSB0aGVuIGRvIHNvLiAgVGhpcwotLQkgICAgICAgaXMg c2FmZXIgZm9yIHZvbGF0aWxlIGJpdGZpZWxkcyBtYXBwZWQgdG8gaGFyZHdhcmUKLS0JICAgICAg IHJlZ2lzdGVycy4gICovCi0tCSAgICBpZiAoY2hhbmdlZF9sZW4gPCBUWVBFX0xFTkdUSCAodHlw ZSkKLS0JCSYmIFRZUEVfTEVOR1RIICh0eXBlKSA8PSAoaW50KSBzaXplb2YgKExPTkdFU1QpCi0t CQkmJiAoKExPTkdFU1QpIHZhbHVlX2FkZHJlc3MgKHRvdmFsKSAlIFRZUEVfTEVOR1RIICh0eXBl KSkgPT0gMCkKLS0JICAgICAgY2hhbmdlZF9sZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7Ci0tCi0g CSAgICBpZiAoY2hhbmdlZF9sZW4gPiAoaW50KSBzaXplb2YgKExPTkdFU1QpKQotIAkgICAgICBl cnJvciAoXygiQ2FuJ3QgaGFuZGxlIGJpdGZpZWxkcyB3aGljaCBkb24ndCBmaXQgaW4gYSAlZCBi aXQgd29yZC4iKSwKLSAJCSAgICAgKGludCkgc2l6ZW9mIChMT05HRVNUKSAqIEhPU1RfQ0hBUl9C SVQpOwotLS0tIC4vZ2RiL3ZhbHVlLmMJMjAwOS0wOC0yOCAxOToyNzoyOS4wMDAwMDAwMDAgKzAy MDAKLSsrKyAuL2dkYi92YWx1ZS5jCTIwMDktMDgtMjggMTk6Mjg6MzQuMDAwMDAwMDAwICswMjAw Ci1AQCAtMTEwLDExICsxMTAsNiBAQCBzdHJ1Y3QgdmFsdWUKLSAgICAgIGdkYmFyY2hfYml0c19i aWdfZW5kaWFuPTEgdGFyZ2V0cywgaXQgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBNU0IuICovCi0g ICBpbnQgYml0cG9zOwotIAotLSAgLyogT25seSB1c2VkIGZvciBiaXRmaWVsZHM7IHRoZSBjb250 YWluaW5nIHZhbHVlLiAgVGhpcyBhbGxvd3MgYQotLSAgICAgc2luZ2xlIHJlYWQgZnJvbSB0aGUg dGFyZ2V0IHdoZW4gZGlzcGxheWluZyBtdWx0aXBsZQotLSAgICAgYml0ZmllbGRzLiAgKi8KLS0g IHN0cnVjdCB2YWx1ZSAqcGFyZW50OwotLQotICAgLyogRnJhbWUgcmVnaXN0ZXIgdmFsdWUgaXMg cmVsYXRpdmUgdG8uICBUaGlzIHdpbGwgYmUgZGVzY3JpYmVkIGluCi0gICAgICB0aGUgbHZhbCBl bnVtIGFib3ZlIGFzICJsdmFsX3JlZ2lzdGVyIi4gICovCi0gICBzdHJ1Y3QgZnJhbWVfaWQgZnJh bWVfaWQ7Ci1AQCAtMzkyLDEyICszODcsNiBAQCBzZXRfdmFsdWVfYml0c2l6ZSAoc3RydWN0IHZh bHVlICp2YWx1ZSwgCi0gICB2YWx1ZS0+Yml0c2l6ZSA9IGJpdDsKLSB9Ci0gCi0tc3RydWN0IHZh bHVlICoKLS12YWx1ZV9wYXJlbnQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpCi0tewotLSAgcmV0dXJu IHZhbHVlLT5wYXJlbnQ7Ci0tfQotLQotIGdkYl9ieXRlICoKLSB2YWx1ZV9jb250ZW50c19yYXcg KHN0cnVjdCB2YWx1ZSAqdmFsdWUpCi0gewotQEAgLTYxNywxMSArNjA2LDYgQEAgdmFsdWVfZnJl ZSAoc3RydWN0IHZhbHVlICp2YWwpCi0gICAgICAgaWYgKHZhbC0+cmVmZXJlbmNlX2NvdW50ID4g MCkKLSAJcmV0dXJuOwotIAotLSAgICAgIC8qIElmIHRoZXJlJ3MgYW4gYXNzb2NpYXRlZCBwYXJl bnQgdmFsdWUsIGRyb3Agb3VyIHJlZmVyZW5jZSB0bwotLQkgaXQuICAqLwotLSAgICAgIGlmICh2 YWwtPnBhcmVudCAhPSBOVUxMKQotLQl2YWx1ZV9mcmVlICh2YWwtPnBhcmVudCk7Ci0tCi0gICAg ICAgdHlwZV9kZWNyZWYgKHZhbC0+dHlwZSk7Ci0gICAgICAgdHlwZV9kZWNyZWYgKHZhbC0+ZW5j bG9zaW5nX3R5cGUpOwotIAotQEAgLTc1MCw5ICs3MzQsNiBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3Qg dmFsdWUgKmFyZykKLSAJICAgICAgVFlQRV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlIChh cmcpKSk7Ci0gCi0gICAgIH0KLS0gIHZhbC0+cGFyZW50ID0gYXJnLT5wYXJlbnQ7Ci0tICBpZiAo dmFsLT5wYXJlbnQpCi0tICAgIHZhbHVlX2luY3JlZiAodmFsLT5wYXJlbnQpOwotICAgaWYgKFZB TFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9jb21wdXRlZCkKLSAgICAgewotICAgICAgIHN0cnVjdCBs dmFsX2Z1bmNzICpmdW5jcyA9IHZhbC0+bG9jYXRpb24uY29tcHV0ZWQuZnVuY3M7Ci1AQCAtMTk0 NiwyOCArMTkyNywxNSBAQCB2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJn Ci0gCi0gICBpZiAoVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubykpCi0gICAg IHsKLS0gICAgICAvKiBDcmVhdGUgYSBuZXcgdmFsdWUgZm9yIHRoZSBiaXRmaWVsZCwgd2l0aCBi aXRwb3MgYW5kIGJpdHNpemUKLS0JIHNldC4gIElmIHBvc3NpYmxlLCBhcnJhbmdlIG9mZnNldCBh bmQgYml0cG9zIHNvIHRoYXQgd2UgY2FuCi0tCSBkbyBhIHNpbmdsZSBhbGlnbmVkIHJlYWQgb2Yg dGhlIHNpemUgb2YgdGhlIGNvbnRhaW5pbmcgdHlwZS4KLS0JIE90aGVyd2lzZSwgYWRqdXN0IG9m ZnNldCB0byB0aGUgYnl0ZSBjb250YWluaW5nIHRoZSBmaXJzdAotLQkgYml0LiAgQXNzdW1lIHRo YXQgdGhlIGFkZHJlc3MsIG9mZnNldCwgYW5kIGVtYmVkZGVkIG9mZnNldAotLQkgYXJlIHN1ZmZp Y2llbnRseSBhbGlnbmVkLiAgKi8KLS0gICAgICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQ T1MgKGFyZ190eXBlLCBmaWVsZG5vKTsKLS0gICAgICBpbnQgY29udGFpbmVyX2JpdHNpemUgPSBU WVBFX0xFTkdUSCAodHlwZSkgKiA4OwotLQotLSAgICAgIHYgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5 ICh0eXBlKTsKLSsgICAgICB2ID0gdmFsdWVfZnJvbV9sb25nZXN0ICh0eXBlLAotKwkJCSAgICAg IHVucGFja19maWVsZF9hc19sb25nIChhcmdfdHlwZSwKLSsJCQkJCQkgICAgdmFsdWVfY29udGVu dHMgKGFyZzEpCi0rCQkJCQkJICAgICsgb2Zmc2V0LAotKwkJCQkJCSAgICBmaWVsZG5vKSk7Ci0r ICAgICAgdi0+Yml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKGFyZ190eXBlLCBmaWVsZG5vKSAl IDg7Ci0gICAgICAgdi0+Yml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAoYXJnX3R5cGUsIGZp ZWxkbm8pOwotLSAgICAgIGlmICgoYml0cG9zICUgY29udGFpbmVyX2JpdHNpemUpICsgdi0+Yml0 c2l6ZSA8PSBjb250YWluZXJfYml0c2l6ZQotLQkgICYmIFRZUEVfTEVOR1RIICh0eXBlKSA8PSAo aW50KSBzaXplb2YgKExPTkdFU1QpKQotLQl2LT5iaXRwb3MgPSBiaXRwb3MgJSBjb250YWluZXJf Yml0c2l6ZTsKLS0gICAgICBlbHNlCi0tCXYtPmJpdHBvcyA9IGJpdHBvcyAlIDg7Ci0tICAgICAg di0+b2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChhcmcxKSArIHZhbHVlX2VtYmVkZGVkX29mZnNldCAo YXJnMSkKLS0JKyAoYml0cG9zIC0gdi0+Yml0cG9zKSAvIDg7Ci0tICAgICAgdi0+cGFyZW50ID0g YXJnMTsKLS0gICAgICB2YWx1ZV9pbmNyZWYgKHYtPnBhcmVudCk7Ci0tICAgICAgaWYgKCF2YWx1 ZV9sYXp5IChhcmcxKSkKLS0JdmFsdWVfZmV0Y2hfbGF6eSAodik7Ci0rICAgICAgdi0+b2Zmc2V0 ID0gdmFsdWVfb2Zmc2V0IChhcmcxKSArIG9mZnNldAotKwkrIFRZUEVfRklFTERfQklUUE9TIChh cmdfdHlwZSwgZmllbGRubykgLyA4OwotICAgICB9Ci0gICBlbHNlIGlmIChmaWVsZG5vIDwgVFlQ RV9OX0JBU0VDTEFTU0VTIChhcmdfdHlwZSkpCi0gICAgIHsKLUBAIC0yMDk0LDkgKzIwNjIsOCBA QCB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0Ci0gfQotIAotIAwKLS0v KiBVbnBhY2sgYSBiaXRmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIEZJRUxEX1RZUEUsIGZyb20gdGhl IGFub255bW91cwotLSAgIG9iamVjdCBhdCBWQUxBRERSLiAgVGhlIGJpdGZpZWxkIHN0YXJ0cyBh dCBCSVRQT1MgYml0cyBhbmQgY29udGFpbnMKLS0gICBCSVRTSVpFIGJpdHMuCi0rLyogVW5wYWNr IGEgZmllbGQgRklFTEROTyBvZiB0aGUgc3BlY2lmaWVkIFRZUEUsIGZyb20gdGhlIGFub255bW91 cyBvYmplY3QgYXQKLSsgICBWQUxBRERSLgotIAotICAgIEV4dHJhY3RpbmcgYml0cyBkZXBlbmRz IG9uIGVuZGlhbm5lc3Mgb2YgdGhlIG1hY2hpbmUuICBDb21wdXRlIHRoZQotICAgIG51bWJlciBv ZiBsZWFzdCBzaWduaWZpY2FudCBiaXRzIHRvIGRpc2NhcmQuICBGb3IgYmlnIGVuZGlhbiBtYWNo aW5lcywKLUBAIC0yMTEwLDIxICsyMDc3LDI0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKiphcmcxcCwgc3QKLSAgICBJZiB0aGUgZmllbGQgaXMgc2lnbmVkLCB3ZSBhbHNvIGRvIHNp Z24gZXh0ZW5zaW9uLiAqLwotIAotIExPTkdFU1QKLS11bnBhY2tfYml0c19hc19sb25nIChzdHJ1 Y3QgdHlwZSAqZmllbGRfdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgICAgIGlu dCBiaXRwb3MsIGludCBiaXRzaXplKQotK3VucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBmaWVsZG5vKQotIHsKLS0gIGVu dW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9h cmNoIChmaWVsZF90eXBlKSk7Ci0rICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFy Y2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwotICAgVUxPTkdFU1QgdmFsOwot ICAgVUxPTkdFU1QgdmFsbWFzazsKLSsgIGludCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAo dHlwZSwgZmllbGRubyk7Ci0rICBpbnQgYml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlw ZSwgZmllbGRubyk7Ci0gICBpbnQgbHNiY291bnQ7Ci0rICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlw ZTsKLSAKLSAgIHZhbCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAodmFsYWRkciArIGJpdHBv cyAvIDgsCi0gCQkJCSAgc2l6ZW9mICh2YWwpLCBieXRlX29yZGVyKTsKLSsgIGZpZWxkX3R5cGUg PSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkbm8pOwotICAgQ0hFQ0tfVFlQRURFRiAoZmll bGRfdHlwZSk7Ci0gCi0gICAvKiBFeHRyYWN0IGJpdHMuICBTZWUgY29tbWVudCBhYm92ZS4gKi8K LSAKLS0gIGlmIChnZGJhcmNoX2JpdHNfYmlnX2VuZGlhbiAoZ2V0X3R5cGVfYXJjaCAoZmllbGRf dHlwZSkpKQotKyAgaWYgKGdkYmFyY2hfYml0c19iaWdfZW5kaWFuIChnZXRfdHlwZV9hcmNoICh0 eXBlKSkpCi0gICAgIGxzYmNvdW50ID0gKHNpemVvZiB2YWwgKiA4IC0gYml0cG9zICUgOCAtIGJp dHNpemUpOwotICAgZWxzZQotICAgICBsc2Jjb3VudCA9IChiaXRwb3MgJSA4KTsKLUBAIC0yMTQ4 LDE5ICsyMTE4LDYgQEAgdW5wYWNrX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUgKmZpZWxkXwot ICAgcmV0dXJuICh2YWwpOwotIH0KLSAKLS0vKiBVbnBhY2sgYSBmaWVsZCBGSUVMRE5PIG9mIHRo ZSBzcGVjaWZpZWQgVFlQRSwgZnJvbSB0aGUgYW5vbnltb3VzIG9iamVjdCBhdAotLSAgIFZBTEFE RFIuICBTZWUgdW5wYWNrX2JpdHNfYXNfbG9uZyBmb3IgbW9yZSBkZXRhaWxzLiAgKi8KLS0KLS1M T05HRVNUCi0tdW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwgaW50IGZpZWxkbm8pCi0tewotLSAgaW50IGJpdHBvcyA9IFRZUEVf RklFTERfQklUUE9TICh0eXBlLCBmaWVsZG5vKTsKLS0gIGludCBiaXRzaXplID0gVFlQRV9GSUVM RF9CSVRTSVpFICh0eXBlLCBmaWVsZG5vKTsKLS0gIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0g VFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVsZG5vKTsKLS0KLS0gIHJldHVybiB1bnBhY2tfYml0 c19hc19sb25nIChmaWVsZF90eXBlLCB2YWxhZGRyLCBiaXRwb3MsIGJpdHNpemUpOwotLX0KLS0K LSAvKiBNb2RpZnkgdGhlIHZhbHVlIG9mIGEgYml0ZmllbGQuICBBRERSIHBvaW50cyB0byBhIGJs b2NrIG9mIG1lbW9yeSBpbgotICAgIHRhcmdldCBieXRlIG9yZGVyOyB0aGUgYml0ZmllbGQgc3Rh cnRzIGluIHRoZSBieXRlIHBvaW50ZWQgdG8uICBGSUVMRFZBTAotICAgIGlzIHRoZSBkZXNpcmVk IHZhbHVlIG9mIHRoZSBmaWVsZCwgaW4gaG9zdCBieXRlIG9yZGVyLiAgQklUUE9TIGFuZCBCSVRT SVpFCi0tLS0gLi9nZGIvdmFsdWUuaAkyMDA5LTA4LTI4IDE5OjI3OjI5LjAwMDAwMDAwMCArMDIw MAotKysrIC4vZ2RiL3ZhbHVlLmgJMjAwOS0wOC0yOCAxOToyNzo1OS4wMDAwMDAwMDAgKzAyMDAK LUBAIC03MSwxMiArNzEsNiBAQCBleHRlcm4gdm9pZCBzZXRfdmFsdWVfYml0c2l6ZSAoc3RydWN0 IHZhCi0gZXh0ZXJuIGludCB2YWx1ZV9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAqKTsKLSBleHRlcm4g dm9pZCBzZXRfdmFsdWVfYml0cG9zIChzdHJ1Y3QgdmFsdWUgKiwgaW50IGJpdCk7Ci0gCi0tLyog T25seSB1c2VkIGZvciBiaXRmaWVsZHM7IHRoZSBjb250YWluaW5nIHZhbHVlLiAgVGhpcyBhbGxv d3MgYQotLSAgIHNpbmdsZSByZWFkIGZyb20gdGhlIHRhcmdldCB3aGVuIGRpc3BsYXlpbmcgbXVs dGlwbGUKLS0gICBiaXRmaWVsZHMuICAqLwotLQotLXN0cnVjdCB2YWx1ZSAqdmFsdWVfcGFyZW50 IChzdHJ1Y3QgdmFsdWUgKik7Ci0tCi0gLyogRGVzY3JpYmVzIG9mZnNldCBvZiBhIHZhbHVlIHdp dGhpbiBsdmFsIG9mIGEgc3RydWN0dXJlIGluIGJ5dGVzLgotICAgIElmIGx2YWwgPT0gbHZhbF9t ZW1vcnksIHRoaXMgaXMgYW4gb2Zmc2V0IHRvIHRoZSBhZGRyZXNzLiAgSWYgbHZhbAotICAgID09 IGx2YWxfcmVnaXN0ZXIsIHRoaXMgaXMgYSBmdXJ0aGVyIG9mZnNldCBmcm9tIGxvY2F0aW9uLmFk ZHJlc3MKLUBAIC0zMzAsOCArMzI0LDYgQEAgZXh0ZXJuIExPTkdFU1QgdW5wYWNrX2xvbmcgKHN0 cnVjdCB0eXBlIAotIGV4dGVybiBET1VCTEVTVCB1bnBhY2tfZG91YmxlIChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0gCQkJICAgICAgIGludCAqaW52cCk7Ci0g ZXh0ZXJuIENPUkVfQUREUiB1bnBhY2tfcG9pbnRlciAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyKTsKLS1MT05HRVNUIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVj dCB0eXBlICpmaWVsZF90eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkgICAgIGlu dCBiaXRwb3MsIGludCBiaXRzaXplKTsKLSBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmllbGRfYXNf bG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsCi0gCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCi0gCQkJCSAgICAgaW50IGZpZWxkbm8pOwoKZGlmZiAtLWdpdCBhL2dkYi1yZWFkbGluZS02 LjAucGF0Y2ggYi9nZGItcmVhZGxpbmUtNi4wLnBhdGNoCmluZGV4IDI2ZDk0MDUuLjJkMDA2MGIg MTAwNjQ0Ci0tLSBhL2dkYi1yZWFkbGluZS02LjAucGF0Y2gKKysrIGIvZ2RiLXJlYWRsaW5lLTYu MC5wYXRjaApAQCAtNyw5ICs3LDExIEBAIGdkYi8KIAkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4K IAkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KIAotLS0tIGEvZ2RiL2NvbmZpZ3VyZS5hYwotKysr IGIvZ2RiL2NvbmZpZ3VyZS5hYwotQEAgLTUzNiw2ICs1MzYsMjEgQEAgaWYgdGVzdCAiJHdpdGhf c3lzdGVtX3JlYWRsaW5lIiA9IHllczsgdGhlbgorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3Jp Zy9nZGIvY29uZmlndXJlLmFjCTIwMDktMDktMDkgMjA6MTE6MDQuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlndXJlLmFjCTIwMDktMDktMDkgMjA6MTE6 NTQuMDAwMDAwMDAwICswMjAwCitAQCAtNzczLDYgKzc3MywyMSBAQCBpZiB0ZXN0ICIkd2l0aF9z eXN0ZW1fcmVhZGxpbmUiID0geWVzOyB0CiAgICBSRUFETElORT0tbHJlYWRsaW5lCiAgICBSRUFE TElORV9ERVBTPQogICAgUkVBRExJTkVfQ0ZMQUdTPQpAQCAtMzEsOSArMzMsMTEgQEAgZ2RiLwog IGVsc2UKICAgIFJFQURMSU5FPSckKFJFQURMSU5FX0RJUikvbGlicmVhZGxpbmUuYScKICAgIFJF QURMSU5FX0RFUFM9JyQoUkVBRExJTkUpJwotLS0tIGEvZ2RiL2NvbmZpZy5pbgotKysrIGIvZ2Ri L2NvbmZpZy5pbgotQEAgLTc5MCw2ICs3OTAsOSBAQAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL2NvbmZpZy5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3Jp Zy9nZGIvY29uZmlnLmluCTIwMDktMDktMDkgMjA6MTE6MzMuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlnLmluCTIwMDktMDktMDkgMjA6MTI6MDAuMDAw MDAwMDAwICswMjAwCitAQCAtODE1LDYgKzgxNSw5IEBACiAgLyogRGVmaW5lIHRvIGBpbnQnIGlm IDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwogICN1bmRlZiBwaWRfdAogIApAQCAt NDMsOSArNDcsMTEgQEAgZ2RiLwogIC8qIERlZmluZSB0byB0aGUgZXF1aXZhbGVudCBvZiB0aGUg Qzk5ICdyZXN0cmljdCcga2V5d29yZCwgb3IgdG8KICAgICBub3RoaW5nIGlmIHRoaXMgaXMgbm90 IHN1cHBvcnRlZC4gIERvIG5vdCBkZWZpbmUgaWYgcmVzdHJpY3QgaXMKICAgICBzdXBwb3J0ZWQg ZGlyZWN0bHkuICAqLwotLS0tIGEvZ2RiL2NvbmZpZ3VyZQotKysrIGIvZ2RiL2NvbmZpZ3VyZQot QEAgLTEwNzYzLDYgKzEwNzYzLDY5IEBAIGlmIHRlc3QgIiR3aXRoX3N5c3RlbV9yZWFkbGluZSIg PSB5ZXM7IHRoZW4KK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9jb25maWd1cmUKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDA5 LTA5LTA5IDIwOjExOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL2NvbmZpZ3VyZQkyMDA5LTA5LTA5IDIwOjExOjU0LjAwMDAwMDAwMCArMDIwMAorQEAgLTkx OTcsNiArOTE5Nyw2OSBAQCBpZiB0ZXN0ICIkd2l0aF9zeXN0ZW1fcmVhZGxpbmUiID0geWVzOyB0 CiAgICBSRUFETElORT0tbHJlYWRsaW5lCiAgICBSRUFETElORV9ERVBTPQogICAgUkVBRExJTkVf Q0ZMQUdTPQoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggMGViYjJjZS4u YmNkN2IzMSAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTEwLDExICsx MCwxMSBAQCBOYW1lOiBnZGIlez9fd2l0aF9kZWJ1ZzotZGVidWd9CiAjIFNldCB2ZXJzaW9uIHRv IGNvbnRlbnRzIG9mIGdkYi92ZXJzaW9uLmluLgogIyBOT1RFOiB0aGUgRlNGIGdkYiB2ZXJzaW9u cyBhcmUgbnVtYmVyZWQgTi5NIGZvciBvZmZpY2lhbCByZWxlYXNlcywgbGlrZSA2LjMgCiAjIGFu ZCwgc2luY2UgSmFudWFyeSAyMDA1LCBYLlkuWi5kYXRlIGZvciBkYWlseSBzbmFwc2hvdHMsIGxp a2UgNi4zLjUwLjIwMDUwMTEyICMgKGRhaWx5IHNuYXBzaG90IGZyb20gbWFpbGluZSksIG9yIDYu My4wLjIwMDQwMTEyIChoZWFkIG9mIHRoZSByZWxlYXNlIGJyYW5jaCkuCi1WZXJzaW9uOiA2Ljgu NTAuMjAwOTA4MTgKK1ZlcnNpb246IDYuOC41MC4yMDA5MDkxMAogCiAjIFRoZSByZWxlYXNlIGFs d2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgog IyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRl cGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDglez9fd2l0 aF91cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KK1JlbGVhc2U6IDElez9fd2l0aF91cHN0cmVh bToudXBzdHJlYW19JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrCiBHcm91cDogRGV2ZWxvcG1l bnQvRGVidWdnZXJzCkBAIC0yMTgsOCArMjE4LDggQEAgUGF0Y2gyMjk6IGdkYi02LjMtYnoxNDA1 MzItcHBjLXVud2luZGluZy10ZXN0LnBhdGNoCiAjIFRlc3RjYXNlIGZvciBleGVjKCkgZnJvbSB0 aHJlYWRlZCBwcm9ncmFtIChCWiAyMDI2ODkpLgogUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODkt ZXhlYy1mcm9tLXB0aHJlYWQtdGVzdC5wYXRjaAogCi0jIEJhY2twb3J0ZWQgcG9zdCBnZGItNi44 LjUwLjIwMDkwODE4IHNuYXBzaG90IGZpeHVwcy4KLVBhdGNoMjMyOiBnZGItNi44LjUwLjIwMDkw ODE4LXVwc3RyZWFtLnBhdGNoCisjIEJhY2twb3J0ZWQgcG9zdCBnZGItNi44LjUwLjIwMDkwOTEw IHNuYXBzaG90IGZpeHVwcy4KKyNQYXRjaDIzMjogZ2RiLTYuOC41MC4yMDA5MDkxMC11cHN0cmVh bS5wYXRjaAogCiAjIFRlc3RjYXNlIGZvciBQUEMgUG93ZXI2L0RGUCBpbnN0cnVjdGlvbnMgZGlz YXNzZW1ibHkgKEJaIDIzMDAwMCkuCiBQYXRjaDIzNDogZ2RiLTYuNi1iejIzMDAwMC1wb3dlcjYt ZGlzYXNzZW1ibHktdGVzdC5wYXRjaApAQCAtMzYzLDkgKzM2Myw2IEBAIFBhdGNoMzc1OiBnZGIt cmVhZGxpbmUtNi4wLnBhdGNoCiAjIFRlbXBvcmFyaWx5IGRpc2FibGUgYXNzZXJ0aW9uIGNoZWNr cyBjcmFzaGluZyBpbiBxc29ydF9jbXAgKEJaIDUxNTQzNCkuCiBQYXRjaDM3ODogZ2RiLWJ6NTE1 NDM0LXFzb3J0X2NtcC5wYXRjaAogCi0jIFJldmVydCBiaXRmaWVsZHMgcmVncmVzc2lvbiAoQlog NTIwMTI5KS4KLVBhdGNoMzgwOiBnZGItYno1MjAxMjktZHJvdy1iaXRmaWVsZHMucGF0Y2gKLQog QnVpbGRSZXF1aXJlczogbmN1cnNlcy1kZXZlbCB0ZXhpbmZvIGdldHRleHQgZmxleCBiaXNvbiBl eHBhdC1kZXZlbAogUmVxdWlyZXM6IHJlYWRsaW5lCiBCdWlsZFJlcXVpcmVzOiByZWFkbGluZS1k ZXZlbApAQCAtNDUwLDcgKzQ0Nyw3IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMg Z2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKIAogJWlmIDAleyE/X3dpdGhfdXBzdHJlYW06MX0K IAotJXBhdGNoMjMyIC1wMQorI3BhdGNoMjMyIC1wMQogJXBhdGNoMzQ5IC1wMQogJXBhdGNoMSAt cDEKICVwYXRjaDMgLXAxCkBAIC01NTUsNyArNTUyLDYgQEAgcm0gLWYgZ2RiL2p2LWV4cC5jIGdk Yi9tMi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBhdGNoMzYwIC1wMQogJXBh dGNoMzc1IC1wMQogJXBhdGNoMzc4IC1wMQotJXBhdGNoMzgwIC1wMQogJXBhdGNoMTI0IC1wMQog CiBmaW5kIC1uYW1lICIqLm9yaWciIHwgeGFyZ3Mgcm0gLWYKQEAgLTgyOSw2ICs4MjUsMTIgQEAg ZmkKICVlbmRpZgogCiAlY2hhbmdlbG9nCisqIFRodSBTZXAgMTAgMjAwOSBKYW4gS3JhdG9jaHZp bCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2LjguNTAuMjAwOTA5MTAtMQorLSBVcGdy YWRlIHRvIHRoZSBGU0YgR0RCIGdkYi02LjguNTAgc25hcHNob3Q6IDYuOC41MC4yMDA5MDkxMAor LSBhcmNoZXItamFua3JhdG9jaHZpbC1mZWRvcmExMiBjb21taXQ6IDk0MWViNDg3YTQyOTMzZTQ0 MmNiNGQxMTM0NGNkYTk2ZWNiOGEwNGQKKyAgLSBbbmV4dC1vdmVyLXRocm93XSBGaXggZXhjZXB0 aW9ucyB0aHJvd24gZHVyaW5nIG5leHQgKFRvbSBUcm9tZXkpLgorICAtIFticF9sb2NhdGlvbi1h Y2NlbF0gRG8gbm90IChtdWNoKSBzbG93IGRvd24gb24gNTAwKyBicmVha3BvaW50cyAobWUpLgor CiAqIFRodSBTZXAgIDMgMjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4gLSA2LjguNTAuMjAwOTA4MTgtOAogLSBhcmNoZXItamFua3JhdG9jaHZpbC1mZWRvcmEx MiBjb21taXQ6IGEwODFkMmYxMjk0NWU5NDY4ZWRkNWY0MzQxZDNlOTQ1YmQwZmVmZTkKICAgLSBb ZXhwcl0gRml4IHRvbyBzbG93IGxvb2t1cHMgaW4gbGFyZ2UgQysrIHByb2dyYW1zIChTYW1pIFdh Z2lhYWxsYSkuCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggNmVmNmIxZS4u OTkxZGZiMCAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi02 M2Q4NDhjZmRkOWE0M2E5YjJiNDEyYTIyMGQwMDM2NiAgZ2RiLTYuOC41MC4yMDA5MDgxOC50YXIu YnoyCis0NzZlMDA1YjhiYjMzYzVjM2IzZjBiN2JkOTM5ODhiYyAgZ2RiLTYuOC41MC4yMDA5MDkx MC50YXIuYnoyCg==