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] fix-dup-patch: - Upgrade to the FSF GDB gdb-7.0 branch and snapshot: 6.8.91.20090917 Date: Thu, 23 Jul 2026 18:29:15 GMT Message-ID: <178483135516.1.11962358203730844549.rpms-gdb-e93d3474d86c@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: e93d3474d86c06192beac39b2c0cfcacb88544a6 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogZTkzZDM0NzRkODZjMDYxOTJiZWFjMzliMmMwY2ZjYWNiODg1NDRhNgog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3JhcHJvamVj dC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDktMTdUMTI6MTU6NDIrMDA6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzYxNC8tNDEyOSBpbiA5IGZpbGUocykKICAgICAgICAgICAgVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy9lOTNkMzQ3NGQ4 NmMwNjE5MmJlYWMzOWIyYzBjZmNhY2I4ODU0NGE2P2JyYW5jaD1maXgtZHVwLXBhdGNoCgogICAg ICAgICAgICBMb2c6CiAgICAgICAgICAgIC0gVXBncmFkZSB0byB0aGUgRlNGIEdEQiBnZGItNy4w IGJyYW5jaCBhbmQgc25hcHNob3Q6IDYuOC45MS4yMDA5MDkxNwotIGFyY2hlci1qYW5rcmF0b2No dmlsLWZlZG9yYTEyIGNvbW1pdDoKICAgIDE2ZjNmMDFjYzJjYmMxNTI4MzQ2MmVhYWJkZmNkZTky Y2Y0MmNkYzYKLSBEcm9wIHRoZSBxc29ydF9jbXAgd29ya2Fyb3VuZCBhcyByZXNvbHZlZCBpbiBG U0YgR0RCIG5vdyAoQlogNTE1NDM0KS4KCi0tLQpkaWZmIC0tZ2l0IGEvLmN2c2lnbm9yZSBiLy5j dnNpZ25vcmUKaW5kZXggNmY1M2E0Yi4uZDVhMjlkMCAxMDA2NDQKLS0tIGEvLmN2c2lnbm9yZQor KysgYi8uY3ZzaWdub3JlCkBAIC0xICsxIEBACi1nZGItNi44LjUwLjIwMDkwOTEwLnRhci5iejIK K2dkYi02LjguOTEuMjAwOTA5MTcudGFyLmJ6MgoKZGlmZiAtLWdpdCBhL2dkYi02LjMtZ3N0YWNr LTIwMDUwNDExLnBhdGNoIGIvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2gKaW5kZXggNTVi ZmFhYi4uMGFhNjQyNiAxMDA2NDQKLS0tIGEvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2gK KysrIGIvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2gKQEAgLTQsMjAgKzQsMjAgQEAKIAl0 byBpbnN0YWxsIGFuZCB1bmluc3RhbGwuCiAJKiBnc3RhY2suc2gsIGdzdGFjay4xOiBOZXcgZmls ZXMuCiAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9NYWtlZmlsZS5pbgorSW5kZXg6 IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTYuOC41MC4yMDA5MDgwMi5vcmlnL2dkYi9NYWtlZmlsZS5pbgkyMDA5LTA4LTAzIDA5OjUwOjU3 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL01ha2VmaWxlLmlu CTIwMDktMDgtMDMgMTE6MDk6NDkuMDAwMDAwMDAwICswMjAwCi1AQCAtOTQ3LDcgKzk0Nyw3IEBA IGdkYi56OmdkYi4xCi0gIyB0aW1lIGl0IHRha2VzIGZvciBtYWtlIHRvIGNoZWNrIHRoYXQgYWxs IGlzIHVwIHRvIGRhdGUuCi0gIyBpbnN0YWxsLW9ubHkgaXMgaW50ZW5kZWQgdG8gYWRkcmVzcyB0 aGF0IG5lZWQuCi0gaW5zdGFsbDogYWxsIGluc3RhbGwtb25seQotLWluc3RhbGwtb25seTogJChD T05GSUdfSU5TVEFMTCkKLStpbnN0YWxsLW9ubHk6IGluc3RhbGwtZ3N0YWNrICQoQ09ORklHX0lO U1RBTEwpCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9NYWtlZmlsZS5pbgkyMDA5 LTA5LTE3IDEyOjQ3OjA3LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEuMjAwOTA5MTcv Z2RiL01ha2VmaWxlLmluCTIwMDktMDktMTcgMTI6NDc6MzguMDAwMDAwMDAwICswMjAwCitAQCAt OTg5LDcgKzk4OSw3IEBAIGluc3RhbGw6IGFsbCBpbnN0YWxsLW9ubHkgCisgCisgIyBUaGUgImlu c3RhbGwtb25seSIgdGFyZ2V0IGFsc28gaW5zdGFsbHMgdGhlIHN5c2NhbGxzJyBYTUwgZmlsZXMg aW4KKyAjIHRoZSBzeXN0ZW0uCistaW5zdGFsbC1vbmx5OiAkKENPTkZJR19JTlNUQUxMKSB4bWwt c3lzY2FsbC1pbnN0YWxsCisraW5zdGFsbC1vbmx5OiBpbnN0YWxsLWdzdGFjayAkKENPTkZJR19J TlNUQUxMKSB4bWwtc3lzY2FsbC1pbnN0YWxsCiAgCXRyYW5zZm9ybWVkX25hbWU9YHQ9JyQocHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSknOyBcCiAgCQkJICBlY2hvIGdkYiB8IHNlZCAtZSAiJCR0ImAg OyBcCiAgCQlpZiB0ZXN0ICJ4JCR0cmFuc2Zvcm1lZF9uYW1lIiA9IHg7IHRoZW4gXAotQEAgLTk3 OSw5ICs5NzksMjYgQEAgaW5zdGFsbC10dWk6CitAQCAtMTAyMSw5ICsxMDIxLDI2IEBAIGluc3Rh bGwtdHVpOgogIAkJCSQoREVTVERJUikkKG1hbjFkaXIpIDsgXAogIAkJJChJTlNUQUxMX0RBVEEp ICQoc3JjZGlyKS9nZGIuMSBcCiAgCQkJJChERVNURElSKSQobWFuMWRpcikvJCR0cmFuc2Zvcm1l ZF9uYW1lLjEKQEAgLTQ1LDcgKzQ1LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2Ri L01ha2VmaWxlLmluCiAgCXRyYW5zZm9ybWVkX25hbWU9YHQ9JyQocHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSknOyBcCiAgCQkJICBlY2hvIGdkYiB8IHNlZCAtZSAkJHRgIDsgXAogIAkJaWYgdGVzdCAi eCQkdHJhbnNmb3JtZWRfbmFtZSIgPSB4OyB0aGVuIFwKLUBAIC0xMDAzLDYgKzEwMjAsMTcgQEAg dW5pbnN0YWxsLXR1aToKK0BAIC0xMDQ1LDYgKzEwNjIsMTcgQEAgdW5pbnN0YWxsLXR1aToKICAJ CWZpIDsgXAogIAkJcm0gLWYgJChERVNURElSKSQoYmluZGlyKS8kJHRyYW5zZm9ybWVkX25hbWUk KEVYRUVYVCkgXAogIAkJICAgICAgJChERVNURElSKSQobWFuMWRpcikvJCR0cmFuc2Zvcm1lZF9u YW1lLjEKQEAgLTYzLDEwICs2MywxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIv TWFrZWZpbGUuaW4KICAKICAjIFRoZSBDKysgbmFtZSBwYXJzZXIgY2FuIGJlIGJ1aWx0IHN0YW5k YWxvbmUgZm9yIHRlc3RpbmcuCiAgdGVzdC1jcC1uYW1lLXBhcnNlci5vOiBjcC1uYW1lLXBhcnNl ci5jCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvZ3N0YWNrLnNoCitJbmRleDogZ2Ri LTYuOC45MS4yMDA5MDkxNy9nZGIvZ3N0YWNrLnNoCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5 MDgwMi9nZGIvZ3N0YWNrLnNoCTIwMDktMDgtMDMgMTE6MDg6NTIuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvZ3N0YWNrLnNoCTIwMDktMDktMTcgMTI6NDc6MTQu MDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDQ4IEBACiArIyEvYmluL3NoCiArCgpkaWZmIC0t Z2l0IGEvZ2RiLTYuMy1pYTY0LXNpZ3RyYW1wLWZwLTIwMDUwOTI2LnBhdGNoIGIvZ2RiLTYuMy1p YTY0LXNpZ3RyYW1wLWZwLTIwMDUwOTI2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA5YmFmODAxLi4wMDAwMDAwCi0tLSBhL2dkYi02LjMtaWE2NC1zaWd0cmFtcC1mcC0yMDA1 MDkyNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi0yMDA1LTA5LTI3ICBK ZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KLQotCSogbGlidW53aW5kLWZyYW1l LmMgKGxpYnVud2luZF9mcmFtZV9jYWNoZSk6IFNhdmUgdGhlIGN1cnJlbnQKLQlzdGFjayBwb2lu dGVyIGluIHRoZSBjYWNoZS4KLQkobGlidW53aW5kX3NpZ3RyYW1wX2ZyYW1lX3RoaXNfaWQpOiBO ZXcgZnVuY3Rpb24uCi0JKGxpYnVud2luZF9zaWd0cmFtcF9mcmFtZV91bndpbmQpOiBOZXcgdW53 aW5kZXIuCi0JKGxpYnVud2luZF9zaWd0cmFtcF9mcmFtZV9zbmlmZmVyKTogUmV0dXJuIAotCWxp YnVud2luZF9zaWd0cmFtcF9mcmFtZV91bndpbmQgYWRkcmVzcy4KLQkqIGxpYnVud2luZC1mcmFt ZS5oIChsaWJ1bndpbmRfc2lndHJhbXBfZnJhbWVfdGhpc19pZCk6IE5ldwotCXByb3RvdHlwZS4K LQkqIGlhNjQtdGRlcC5jIChpYTY0X2xpYnVud2luZF9zaWd0cmFtcF9mcmFtZV90aGlzX2lkKTog Q2FsY3VsYXRlCi0JdGhlIGJhc2UgYWRkcmVzcyB1c2luZyB0aGUgY3VycmVudCBzdGFjayBwb2lu dGVyIHBsdXMgYSBmaXhlZAotCW9mZnNldC4KLQotMjAwNy0xMC0xNCAgSmFuIEtyYXRvY2h2aWwg IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JUG9ydCB0byBHREItNi43LgotCi0yMDA4 LTAyLTI0ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlQ b3J0IHRvIEdEQi02LjhwcmUuCi0KLTIwMDgtMDQtMTYgIFlpIFpoYW4gIDx5aS56aGFuQGludGVs LmNvbT4KLQotCUZpeCBhIGNvbXBpbGF0aW9uIGVycm9yIG9uIGEgdHlwby4KLQotSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MDMvZ2RiL2xpYnVud2luZC1mcmFtZS5jCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9saWJ1bndpbmQtZnJhbWUuYwkyMDA5LTAxLTAz IDA2OjU3OjUyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2xp YnVud2luZC1mcmFtZS5jCTIwMDktMDgtMDQgMDY6MzE6MzQuMDAwMDAwMDAwICswMjAwCi1AQCAt NjIsNiArNjIsNyBAQCBzdGF0aWMgdW53X3dvcmRfdCAoKnVud19maW5kX2R5bl9saXN0X3ApCi0g c3RydWN0IGxpYnVud2luZF9mcmFtZV9jYWNoZQotIHsKLSAgIENPUkVfQUREUiBiYXNlOwotKyAg Q09SRV9BRERSIHNwOwotICAgQ09SRV9BRERSIGZ1bmNfYWRkcjsKLSAgIHVud19jdXJzb3JfdCBj dXJzb3I7Ci0gICB1bndfYWRkcl9zcGFjZV90IGFzOwotQEAgLTEzNCw2ICsxMzUsNyBAQCBsaWJ1 bndpbmRfZnJhbWVfY2FjaGUgKHN0cnVjdCBmcmFtZV9pbmZvCi0gICB1bndfYWNjZXNzb3JzX3Qg KmFjYzsKLSAgIHVud19hZGRyX3NwYWNlX3QgYXM7Ci0gICB1bndfd29yZF90IGZwOwotKyAgdW53 X3dvcmRfdCBzcDsKLSAgIHVud19yZWdudW1fdCB1d19zcF9yZWdudW07Ci0gICBzdHJ1Y3QgbGli dW53aW5kX2ZyYW1lX2NhY2hlICpjYWNoZTsKLSAgIHN0cnVjdCBsaWJ1bndpbmRfZGVzY3IgKmRl c2NyOwotQEAgLTE3NSwxNCArMTc3LDMwIEBAIGxpYnVud2luZF9mcmFtZV9jYWNoZSAoc3RydWN0 IGZyYW1lX2luZm8KLSAJCQkJIDogX19MSVRUTEVfRU5ESUFOKTsKLSAKLSAgIHVud19pbml0X3Jl bW90ZV9wICgmY2FjaGUtPmN1cnNvciwgYXMsIHRoaXNfZnJhbWUpOwotKwotKyAgLyogRm9yIHRo ZSBiYXNlIGFkZHJlc3MsIHdlIGhhdmUgYSBzbWFsbCBwcm9ibGVtLiAgVGhlIG1ham9yaXR5Ci0r ICAgICBvZiB0aGUgdGltZSwgd2UgY2FuIGdldCB0aGUgc3RhY2sgcG9pbnRlciBvZiB0aGUgcHJl dmlvdXMKLSsgICAgIGZyYW1lIHRvIHVzZSBhcyBhIGZyYW1lIHBvaW50ZXIuICBJbiB0aGUgY2Fz ZSB3aGVyZSB3ZSBoYXZlCi0rICAgICBhIHNpZ25hbCB0cmFtcG9saW5lLCB0aGUgc3RhY2sgbWF5 IGNoYW5nZSBkdWUgdG8gYSBzaWdhbHRzdGFjawotKyAgICAgYmVpbmcgc2V0IHVwLiAgSW4gdGhh dCBjYXNlLCB0aGUgbm9ybWFsIG1lY2hhbmlzbSB3aWxsIGdpdmUgdXMKLSsgICAgIGFuIGFkZHJl c3MgaW4gdGhlIHJlZ3VsYXIgc3RhY2sgd2hpY2ggaXMgbm90IGF0IHRoZSBlbmQgb2YgdGhlCi0r ICAgICBzaWdhbHRzdGFjayBhcyB3ZSB3YW50LiAgVG8gaGFuZGxlIHRoaXMsIHdlIHJlY29yZCB0 aGUgc3RhY2sKLSsgICAgIGFkZHJlc3Mgc28gdGhlIGNhbGxlciBtYXkgY2FsY3VsYXRlIGEgbW9y ZSBjb3JyZWN0IGJhc2UgYWRkcmVzcwotKyAgICAgdG8gdXNlLiAgKi8KLSsgIHV3X3NwX3JlZ251 bSA9IGRlc2NyLT5nZGIydXcgKGdkYmFyY2hfc3BfcmVnbnVtIChnZGJhcmNoKSk7Ci0rICByZXQg PSB1bndfZ2V0X3JlZ19wICgmY2FjaGUtPmN1cnNvciwgdXdfc3BfcmVnbnVtLCAmc3ApOwotKyAg aWYgKHJldCA8IDApCi0rICAgIHsKLSsgICAgICB1bndfZGVzdHJveV9hZGRyX3NwYWNlX3AgKGFz KTsKLSsgICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGxpYnVud2luZCBzcCByZWdpc3Rlci4iKSk7 Ci0rICAgIH0KLSsKLSAgIGlmICh1bndfc3RlcF9wICgmY2FjaGUtPmN1cnNvcikgPCAwKQotICAg ICB7Ci0gICAgICAgdW53X2Rlc3Ryb3lfYWRkcl9zcGFjZV9wIChhcyk7Ci0gICAgICAgcmV0dXJu IE5VTEw7Ci0gICAgIH0KLSAKLS0gIC8qIFRvIGdldCBiYXNlIGFkZHJlc3MsIGdldCBzcCBmcm9t IHByZXZpb3VzIGZyYW1lLiAgKi8KLS0gIHV3X3NwX3JlZ251bSA9IGRlc2NyLT5nZGIydXcgKGdk YmFyY2hfc3BfcmVnbnVtIChnZGJhcmNoKSk7Ci0gICByZXQgPSB1bndfZ2V0X3JlZ19wICgmY2Fj aGUtPmN1cnNvciwgdXdfc3BfcmVnbnVtLCAmZnApOwotICAgaWYgKHJldCA8IDApCi0gICAgIHsK LUBAIC0xOTAsNiArMjA4LDcgQEAgbGlidW53aW5kX2ZyYW1lX2NhY2hlIChzdHJ1Y3QgZnJhbWVf aW5mbwotICAgICAgIGVycm9yIChfKCJDYW4ndCBnZXQgbGlidW53aW5kIHNwIHJlZ2lzdGVyLiIp KTsKLSAgICAgfQotIAotKyAgY2FjaGUtPnNwID0gKENPUkVfQUREUilzcDsKLSAgIGNhY2hlLT5i YXNlID0gKENPUkVfQUREUilmcDsKLSAgIGNhY2hlLT5hcyA9IGFzOwotIAotQEAgLTM3Nyw2ICsz OTYsMzEgQEAgbGlidW53aW5kX3NlYXJjaF91bndpbmRfdGFibGUgKHZvaWQgKmFzLAotIAkJCQkg ICAgZGksIHBpLCBuZWVkX3Vud2luZF9pbmZvLCBhcmdzKTsKLSB9Ci0gCi0rdm9pZAotK2xpYnVu d2luZF9zaWd0cmFtcF9mcmFtZV90aGlzX2lkIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFt ZSwgCi0rCQkJCSAgdm9pZCAqKnRoaXNfY2FjaGUsCi0rCQkgICAgICAJCSAgc3RydWN0IGZyYW1l X2lkICp0aGlzX2lkKQotK3sKLSsgIHN0cnVjdCBsaWJ1bndpbmRfZnJhbWVfY2FjaGUgKmNhY2hl ID0KLSsgICAgbGlidW53aW5kX2ZyYW1lX2NhY2hlICh0aGlzX2ZyYW1lLCB0aGlzX2NhY2hlKTsK LSsKLSsgIC8qIFVubGlrZSBhIHJlZ3VsYXIgZnJhbWUsIHdlIGNhbid0IHVzZSB0aGUgbm9ybWFs IGZyYW1lIHBvaW50ZXIKLSsgICAgIG1lY2hhbmlzbSBiZWNhdXNlIGEgc2lnYWx0c3RhY2sgbWF5 IGhhdmUgYmVlbiB1c2VkLiAgSW5zdGVhZCwKLSsgICAgIHdlIHJldHVybiB0aGUgY3VycmVudCBz dGFjayBwb2ludGVyIGZvciB0aGUgY2FsbGVyIHRvIHVzZQotKyAgICAgdG8gY2FsY3VsYXRlIHRo ZSBiYXNlIGFkZHJlc3MuICAqLwotKyAgaWYgKGNhY2hlICE9IE5VTEwpCi0rICAgICgqdGhpc19p ZCkgPSBmcmFtZV9pZF9idWlsZCAoY2FjaGUtPnNwLCBjYWNoZS0+ZnVuY19hZGRyKTsKLSsgIGVs c2UKLSsgICAgKCp0aGlzX2lkKSA9IG51bGxfZnJhbWVfaWQ7Ci0rfQotKwotK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZnJhbWVfdW53aW5kIGxpYnVud2luZF9zaWd0cmFtcF9mcmFtZV91bndpbmQgPQot K3sKLSsgIFNJR1RSQU1QX0ZSQU1FLAotKyAgbGlidW53aW5kX3NpZ3RyYW1wX2ZyYW1lX3RoaXNf aWQsCi0rICBsaWJ1bndpbmRfZnJhbWVfcHJldl9yZWdpc3RlcgotK307Ci0rCi0gLyogVmVyaWZ5 IGlmIHdlIGFyZSBpbiBhIHNpZ3RyYW1wIGZyYW1lIGFuZCB3ZSBjYW4gdXNlIGxpYnVud2luZCB0 byB1bndpbmQuICAqLwotIGludAotIGxpYnVud2luZF9zaWd0cmFtcF9mcmFtZV9zbmlmZmVyIChj b25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kICpzZWxmLAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2xpYnVud2luZC1mcmFtZS5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5 MDgwMy5vcmlnL2dkYi9saWJ1bndpbmQtZnJhbWUuaAkyMDA5LTAxLTAzIDA2OjU3OjUyLjAwMDAw MDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2xpYnVud2luZC1mcmFtZS5o CTIwMDktMDgtMDQgMDY6MzE6MzQuMDAwMDAwMDAwICswMjAwCi1AQCAtNTIsNiArNTIsOSBAQCB2 b2lkIGxpYnVud2luZF9mcmFtZV9zZXRfZGVzY3IgKHN0cnVjdCBnCi0gCi0gdm9pZCBsaWJ1bndp bmRfZnJhbWVfdGhpc19pZCAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUsIHZvaWQgKip0 aGlzX2NhY2hlLAotIAkJCSAgICAgIHN0cnVjdCBmcmFtZV9pZCAqdGhpc19pZCk7Ci0rdm9pZCBs aWJ1bndpbmRfc2lndHJhbXBfZnJhbWVfdGhpc19pZCAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNf ZnJhbWUsIAotKwkJCQkgICAgICAgdm9pZCAqKnRoaXNfY2FjaGUsCi0rCQkJICAgICAgCSAgICAg ICBzdHJ1Y3QgZnJhbWVfaWQgKnRoaXNfaWQpOwotIHN0cnVjdCB2YWx1ZSAqbGlidW53aW5kX2Zy YW1lX3ByZXZfcmVnaXN0ZXIgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKip0aGlzX2NhY2hl LCBpbnQgcmVnbnVtKTsKLSB2b2lkIGxpYnVud2luZF9mcmFtZV9kZWFsbG9jX2NhY2hlIChzdHJ1 Y3QgZnJhbWVfaW5mbyAqc2VsZiwgdm9pZCAqY2FjaGUpOwotSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MDMvZ2RiL2lhNjQtdGRlcC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgw My5vcmlnL2dkYi9pYTY0LXRkZXAuYwkyMDA5LTA4LTA0IDA2OjMwOjQ1LjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2lhNjQtdGRlcC5jCTIwMDktMDgtMDQgMDY6 MzE6MzQuMDAwMDAwMDAwICswMjAwCi1AQCAtMzAyMyw3ICszMDIzLDcgQEAgaWE2NF9saWJ1bndp bmRfc2lndHJhbXBfZnJhbWVfdGhpc19pZCAocwotICAgc3RydWN0IGZyYW1lX2lkIGlkOwotICAg Q09SRV9BRERSIHByZXZfaXA7Ci0gCi0tICBsaWJ1bndpbmRfZnJhbWVfdGhpc19pZCAodGhpc19m cmFtZSwgdGhpc19jYWNoZSwgJmlkKTsKLSsgIGxpYnVud2luZF9zaWd0cmFtcF9mcmFtZV90aGlz X2lkICh0aGlzX2ZyYW1lLCB0aGlzX2NhY2hlLCAmaWQpOwotICAgaWYgKGZyYW1lX2lkX2VxIChp ZCwgbnVsbF9mcmFtZV9pZCkpCi0gICAgIHsKLSAgICAgICAoKnRoaXNfaWQpID0gbnVsbF9mcmFt ZV9pZDsKLUBAIC0zMDM1LDggKzMwMzUsMTQgQEAgaWE2NF9saWJ1bndpbmRfc2lndHJhbXBfZnJh bWVfdGhpc19pZCAocwotICAgZ2V0X2ZyYW1lX3JlZ2lzdGVyICh0aGlzX2ZyYW1lLCBJQTY0X0JT UF9SRUdOVU0sIGJ1Zik7Ci0gICBic3AgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKGJ1Ziwg OCwgYnl0ZV9vcmRlcik7Ci0gCi0tICAvKiBGb3IgYSBzaWd0cmFtcCBmcmFtZSwgd2UgZG9uJ3Qg bWFrZSB0aGUgY2hlY2sgZm9yIHByZXZpb3VzIGlwIGJlaW5nIDAuICAqLwotLSAgKCp0aGlzX2lk KSA9IGZyYW1lX2lkX2J1aWxkX3NwZWNpYWwgKGlkLnN0YWNrX2FkZHIsIGlkLmNvZGVfYWRkciwg YnNwKTsKLSsgIC8qIEZvciBhIHNpZ3RyYW1wIGZyYW1lLCB3ZSBkb24ndCBtYWtlIHRoZSBjaGVj ayBmb3IgcHJldmlvdXMgaXAgYmVpbmcgMC4gIAotKyAgICAgV2UgYWxzbyBtdXN0IGNhbGN1bGF0 ZSB0aGUgZnJhbWUgcG9pbnRlciBiZWNhdXNlIGxpYnVud2luZCB3aWxsIGdpdmUKLSsgICAgIHVz IGJhY2sgdGhlIGN1cnJlbnQgc3RhY2sgcG9pbnRlciBpbnN0ZWFkIG9mIHRoZSBmcmFtZSBwb2lu dGVyIHNpbmNlCi0rICAgICBpdCBjYW5ub3QgZmlndXJlIHRoaXMgb3V0IHdoZW4gaW4gYSBzaWdh bHRzdGFjay4gIFdlIG1ha2UgYSBiYXNpYwotKyAgICAgYXNzdW1wdGlvbiBvZiAxNiAoZGVmYXVs dCBzaXplKSArIDggYnl0ZXMgZm9yIHNpZ2NvbnRleHQgYWRkcmVzcy4KLSsgICAgIEZJWE1FOiBp ZiBsaWJ1bndpbmQgd2VyZSB0byBleHBvcnQgdGhlIGZyYW1lIHBvaW50ZXIgYWRkcmVzcywgd2UK LSsgICAgICAgICAgICBjb3VsZCBlbGltaW5hdGUgdGhlIGFzc3VtcHRpb24gYW5kIGdldCB0aGUg YWN0dWFsIHZhbHVlLiAgKi8KLSsgICgqdGhpc19pZCkgPSBmcmFtZV9pZF9idWlsZF9zcGVjaWFs IChpZC5zdGFja19hZGRyICsgMjQsIGlkLmNvZGVfYWRkciwgYnNwKTsKLSAKLSAgIGlmIChnZGJh cmNoX2RlYnVnID49IDEpCi0gICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKCmRp ZmYgLS1naXQgYS9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaCBiL2dkYi02LjMtcGllLTIwMDUw MTEwLnBhdGNoCmluZGV4IGY2NjIxYjIuLjA0NzU1ZWEgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtcGll LTIwMDUwMTEwLnBhdGNoCisrKyBiL2dkYi02LjMtcGllLTIwMDUwMTEwLnBhdGNoCkBAIC0yNiwx MCArMjYsMTAgQEAKIAogCUZpeCBzY2FuX2R5bnRhZygpIGZvciBiaW5hcmllcyBwcm92aWRlZCBi eSB2YWxncmluZCAoQlogNDYwMzE5KS4KIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2Ri L2FtZDY0LXRkZXAuYworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2FtZDY0LXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvYW1kNjQtdGRl cC5jCTIwMDktMDktMDkgMTk6MDk6MzEuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvYW1kNjQtdGRlcC5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICsw MjAwCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9hbWQ2NC10ZGVwLmMJMjAwOS0w OS0xNyAxMjo0ODo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dk Yi9hbWQ2NC10ZGVwLmMJMjAwOS0wOS0xNyAxMjo1MDowNy4wMDAwMDAwMDAgKzAyMDAKIEBAIC0z Niw2ICszNiw3IEBACiAgI2luY2x1ZGUgInJlZ2NhY2hlLmgiCiAgI2luY2x1ZGUgInJlZ3NldC5o IgpAQCAtMTM4LDEwICsxMzgsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2Ft ZDY0LXRkZXAuYwogICAgcmV0dXJuIHBjOwogIH0KICAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi9hdXh2LmMKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9hdXh2LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2F1eHYuYwkyMDA5LTA3 LTAyIDE5OjI1OjUyLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2Ri L2F1eHYuYwkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02Ljgu OTEuMjAwOTA5MTcub3JpZy9nZGIvYXV4di5jCTIwMDktMDctMDIgMTk6MjU6NTIuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvYXV4di5jCTIwMDktMDktMTcgMTI6 NTA6MDcuMDAwMDAwMDAwICswMjAwCiBAQCAtNzgsNyArNzgsNyBAQCBwcm9jZnNfeGZlcl9hdXh2 IChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzCiAgICAgUmV0dXJuIDEgaWYgYW4gZW50cnkgd2FzIHJl YWQgaW50byAqVFlQRVAgYW5kICpWQUxQLiAgKi8KICBzdGF0aWMgaW50CkBAIC0yMzAsMTAgKzIz MCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYXV4di5jCiAgCWJyZWFrOwog ICAgICB9CiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYXV4di5oCitJbmRleDog Z2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvYXV4di5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41 MC4yMDA5MDkwOS5vcmlnL2dkYi9hdXh2LmgJMjAwOS0wNi0wNyAyMTowNzowOC4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9hdXh2LmgJMjAwOS0wOS0wOSAxOToy NDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3Lm9yaWcvZ2RiL2F1 eHYuaAkyMDA5LTA2LTA3IDIxOjA3OjA4LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEu MjAwOTA5MTcvZ2RiL2F1eHYuaAkyMDA5LTA5LTE3IDEyOjUwOjA3LjAwMDAwMDAwMCArMDIwMAog QEAgLTMxLDE0ICszMSwxNCBAQAogICAgIFJldHVybiAxIGlmIGFuIGVudHJ5IHdhcyByZWFkIGlu dG8gKlRZUEVQIGFuZCAqVkFMUC4gICovCiAgZXh0ZXJuIGludCB0YXJnZXRfYXV4dl9wYXJzZSAo c3RydWN0IHRhcmdldF9vcHMgKm9wcywKQEAgLTI1MSwxMSArMjUxLDExIEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9hdXh2LmgKICAKICAvKiBQcmludCB0aGUgY29udGVudHMgb2Yg dGhlIHRhcmdldCdzIEFVWFYgb24gdGhlIHNwZWNpZmllZCBmaWxlLiAqLwogIGV4dGVybiBpbnQg ZnByaW50X3RhcmdldF9hdXh2IChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgc3RydWN0IHRhcmdldF9v cHMgKm9wcyk7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZHdhcmYycmVhZC5jCitJ bmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOS0wOSAx OToyMToyMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9kd2Fy ZjJyZWFkLmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xNzE5LDcg KzE3MTksNyBAQCBkd2FyZjJfYnVpbGRfcHN5bXRhYnMgKHN0cnVjdCBvYmpmaWxlICpvCistLS0g Z2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOS0xNyAxMjo0 OToyMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9kd2FyZjJy ZWFkLmMJMjAwOS0wOS0xNyAxMjo1MDowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xNzE3LDcgKzE3 MTcsNyBAQCBkd2FyZjJfYnVpbGRfcHN5bXRhYnMgKHN0cnVjdCBvYmpmaWxlICpvCiAgICBkd2Fy ZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCAmZHdhcmYyX3Blcl9vYmpmaWxlLT5laF9mcmFtZSk7 CiAgICBkd2FyZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCAmZHdhcmYyX3Blcl9vYmpmaWxlLT5m cmFtZSk7CiAgCkBAIC0yNjQsMTAgKzI2NCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkw OS9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgfHwgKG9iamZpbGUtPmdsb2JhbF9wc3ltYm9scy5z aXplID09IDAKICAJICAmJiBvYmpmaWxlLT5zdGF0aWNfcHN5bWJvbHMuc2l6ZSA9PSAwKSkKICAg ICAgewotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2VsZnJlYWQuYworSW5kZXg6IGdk Yi02LjguOTEuMjAwOTA5MTcvZ2RiL2VsZnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02Ljgu NTAuMjAwOTA5MDkub3JpZy9nZGIvZWxmcmVhZC5jCTIwMDktMDktMDkgMTk6MDU6NTUuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZWxmcmVhZC5jCTIwMDktMDkt MDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmln L2dkYi9lbGZyZWFkLmMJMjAwOS0wOS0xNyAxMjo0NzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNi44LjkxLjIwMDkwOTE3L2dkYi9lbGZyZWFkLmMJMjAwOS0wOS0xNyAxMjo1MDowNy4wMDAw MDAwMDAgKzAyMDAKIEBAIC02ODEsNyArNjgxLDcgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0 IG9iamZpbGUgKm9iamZpbAogICAgLyogSWYgd2UgYXJlIHJlaW5pdGlhbGl6aW5nLCBvciBpZiB3 ZSBoYXZlIG5ldmVyIGxvYWRlZCBzeW1zIHlldCwKICAgICAgIHNldCB0YWJsZSB0byBlbXB0eS4g IE1BSU5MSU5FIGlzIGNsZWFyZWQgc28gdGhhdCAqX3JlYWRfcHN5bXRhYgpAQCAtMjc3LDExICsy NzcsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2VsZnJlYWQuYwogICAgICB7 CiAgICAgICAgaW5pdF9wc3ltYm9sX2xpc3QgKG9iamZpbGUsIDApOwogICAgICAgIG1haW5saW5l ID0gMDsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmZydW4uYworSW5kZXg6IGdk Yi02LjguOTEuMjAwOTA5MTcvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41 MC4yMDA5MDkwOS5vcmlnL2dkYi9pbmZydW4uYwkyMDA5LTA5LTA5IDE5OjA5OjMxLjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2luZnJ1bi5jCTIwMDktMDktMDkg MTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCi1AQCAtMzYwMiw2ICszNjAyLDEwIEBAIGluZnJ1bjog QlBTVEFUX1dIQVRfU0VUX0xPTkdKTVBfUkVTVU1FICgKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3 Lm9yaWcvZ2RiL2luZnJ1bi5jCTIwMDktMDktMTcgMTI6NDg6NTAuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvaW5mcnVuLmMJMjAwOS0wOS0xNyAxMjo1MDowNy4w MDAwMDAwMDAgKzAyMDAKK0BAIC0zNjU5LDYgKzM2NTksMTAgQEAgaW5mcnVuOiBCUFNUQVRfV0hB VF9TRVRfTE9OR0pNUF9SRVNVTUUgKAogICNlbmRpZgogIAkgIHRhcmdldF90ZXJtaW5hbF9pbmZl cmlvciAoKTsKICAKQEAgLTI5MiwxMyArMjkyLDEzIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi9pbmZydW4uYwogIAkgIC8qIElmIHJlcXVlc3RlZCwgc3RvcCB3aGVuIHRoZSBkeW5h bWljIGxpbmtlciBub3RpZmllcwogIAkgICAgIGdkYiBvZiBldmVudHMuICBUaGlzIGFsbG93cyB0 aGUgdXNlciB0byBnZXQgY29udHJvbAogIAkgICAgIGFuZCBwbGFjZSBicmVha3BvaW50cyBpbiBp bml0aWFsaXplciByb3V0aW5lcyBmb3IKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9v YmpmaWxlcy5jCitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvb2JqZmlsZXMuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvb2JqZmlsZXMuYwkyMDA5 LTA5LTA5IDE5OjIzOjA1LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL29iamZpbGVzLmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC01 MSw2ICs1MSw5IEBACi0gI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIKLSAjaW5jbHVkZSAiZXhlYy5o IgorLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvb2JqZmlsZXMuYwkyMDA5LTA5LTE3 IDEyOjQ3OjA3LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL29i amZpbGVzLmMJMjAwOS0wOS0xNyAxMjo1MDoyMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC01Myw2ICs1 Myw5IEBACisgI2luY2x1ZGUgIm9ic2VydmVyLmgiCisgI2luY2x1ZGUgImNvbXBsYWludHMuaCIK ICAKICsjaW5jbHVkZSAiYXV4di5oIgogKyNpbmNsdWRlICJlbGYvY29tbW9uLmgiCkBAIC0zMDYs NyArMzA2LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL29iamZpbGVzLmMKICAv KiBQcm90b3R5cGVzIGZvciBsb2NhbCBmdW5jdGlvbnMgKi8KICAKICBzdGF0aWMgdm9pZCBvYmpm aWxlX2FsbG9jX2RhdGEgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKTsKLUBAIC0yNzgsOSArMjgx LDE3IEBAIGluaXRfZW50cnlfcG9pbnRfaW5mbyAoc3RydWN0IG9iamZpbGUgKm8KK0BAIC0yODAs OSArMjgzLDE3IEBAIGluaXRfZW50cnlfcG9pbnRfaW5mbyAoc3RydWN0IG9iamZpbGUgKm8KICBD T1JFX0FERFIKICBlbnRyeV9wb2ludF9hZGRyZXNzICh2b2lkKQogIHsKQEAgLTMyNCw3ICszMjQs NyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvb2JqZmlsZXMuYwogICAgaWYgKHN5 bWZpbGVfb2JqZmlsZSA9PSBOVUxMKQogICAgICByZXR1cm4gMDsKICAKLUBAIC00NjUsNiArNDc2 LDkgQEAgZnJlZV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKK0BAIC00NjcsNiAr NDc4LDkgQEAgZnJlZV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKICAgIGlmIChv YmpmaWxlID09IHN5bWZpbGVfb2JqZmlsZSkKICAgICAgc3ltZmlsZV9vYmpmaWxlID0gTlVMTDsK ICAKQEAgLTMzNCwxMCArMzM0LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9v YmpmaWxlcy5jCiAgICAvKiBCZWZvcmUgdGhlIHN5bWJvbCB0YWJsZSBjb2RlIHdhcyByZWRvbmUg dG8gbWFrZSBpdCBlYXNpZXIgdG8KICAgICAgIHNlbGVjdGl2ZWx5IGxvYWQgYW5kIHJlbW92ZSBp bmZvcm1hdGlvbiBwYXJ0aWN1bGFyIHRvIGEgc3BlY2lmaWMKICAgICAgIGxpbmthZ2UgdW5pdCwg Z2RiIHVzZWQgdG8gZG8gdGhlc2UgdGhpbmdzIHdoZW5ldmVyIHRoZSBtb25vbGl0aGljCi1JbmRl eDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc29saWItc3ZyNC5jCitJbmRleDogZ2RiLTYuOC45 MS4yMDA5MDkxNy9nZGIvc29saWItc3ZyNC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4y MDA5MDkwOS5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0wOS0wOSAxOTowOTozNS4wMDAwMDAw MDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0w OS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3Lm9y aWcvZ2RiL3NvbGliLXN2cjQuYwkyMDA5LTA5LTE3IDEyOjQ4OjUwLjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3NvbGliLXN2cjQuYwkyMDA5LTA5LTE3IDEyOjUw OjA3LjAwMDAwMDAwMCArMDIwMAogQEAgLTQ3LDYgKzQ3LDcgQEAKICAjaW5jbHVkZSAiZXhlYy5o IgogICNpbmNsdWRlICJhdXh2LmgiCkBAIC0xMDAwLDEwICsxMDAwLDEwIEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9zb2xpYi1zdnI0LmMKICsgIGFkZF9pbmZvICgibGlua21hcCIs IGluZm9fbGlua21hcF9jb21tYW5kLAogKwkgICAgIkRpc3BsYXkgdGhlIGluZmVyaW9yJ3MgbGlu a21hcC4iKTsKICB9Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc29saWIuYworSW5k ZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3NvbGliLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3NvbGliLmMJMjAwOS0wOS0wOSAxOTowNTo1Ni4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zb2xpYi5jCTIwMDktMDkt MDkgMTk6MjU6MTguMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmln L2dkYi9zb2xpYi5jCTIwMDktMDktMTcgMTI6NDc6MDcuMDAwMDAwMDAwICswMjAwCisrKysgZ2Ri LTYuOC45MS4yMDA5MDkxNy9nZGIvc29saWIuYwkyMDA5LTA5LTE3IDEyOjUwOjA3LjAwMDAwMDAw MCArMDIwMAogQEAgLTgyLDYgKzgyLDggQEAgc2V0X3NvbGliX29wcyAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIAogIAogIC8qIGV4dGVybmFsIGRhdGEgZGVjbGFyYXRpb25zICovCkBAIC0xMTQw LDEwICsxMTQwLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zb2xpYi5jCiAr CQkJICAgTlVMTCwgTlVMTCwKICsJCQkgICAmc2V0ZGVidWdsaXN0LCAmc2hvd2RlYnVnbGlzdCk7 CiAgfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3NvbGlzdC5oCitJbmRleDogZ2Ri LTYuOC45MS4yMDA5MDkxNy9nZGIvc29saXN0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUw LjIwMDkwOTA5Lm9yaWcvZ2RiL3NvbGlzdC5oCTIwMDktMDktMDkgMTk6MDU6NTYuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc29saXN0LmgJMjAwOS0wOS0wOSAx OToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3Lm9yaWcvZ2Ri L3NvbGlzdC5oCTIwMDktMDktMTcgMTI6NDc6MDcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYu OC45MS4yMDA5MDkxNy9nZGIvc29saXN0LmgJMjAwOS0wOS0xNyAxMjo1MDowNy4wMDAwMDAwMDAg KzAyMDAKIEBAIC02MSw2ICs2MSw4IEBAIHN0cnVjdCBzb19saXN0CiAgICAgIGJmZCAqYWJmZDsK ICAgICAgY2hhciBzeW1ib2xzX2xvYWRlZDsJLyogZmxhZzogc3ltYm9scyByZWFkIGluIHlldD8g Ki8KQEAgLTExNjQsMTAgKzExNjQsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2Ri L3NvbGlzdC5oCiArZXh0ZXJuIGludCBkZWJ1Z19zb2xpYjsKICsKICAjZW5kaWYKLUluZGV4OiBn ZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxlLW1lbS5jCitJbmRleDogZ2RiLTYuOC45MS4y MDA5MDkxNy9nZGIvc3ltZmlsZS1tZW0uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAw OTA5MDkub3JpZy9nZGIvc3ltZmlsZS1tZW0uYwkyMDA5LTA5LTA5IDE5OjA2OjU3LjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUtbWVtLmMJMjAwOS0w OS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3Lm9y aWcvZ2RiL3N5bWZpbGUtbWVtLmMJMjAwOS0wOS0xNyAxMjo0ODo0OS4wMDAwMDAwMDAgKzAyMDAK KysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9zeW1maWxlLW1lbS5jCTIwMDktMDktMTcgMTI6 NTA6MDcuMDAwMDAwMDAwICswMjAwCiBAQCAtMTE1LDcgKzExNSw3IEBAIHN5bWJvbF9maWxlX2Fk ZF9mcm9tX21lbW9yeSAoc3RydWN0IGJmZCAKICAJKytpOwogICAgICAgIH0KQEAgLTExNzcsMTAg KzExNzcsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUtbWVtLmMK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhaSwgT0JKRl9TSEFSRUQpOwog IAogICAgLyogVGhpcyBtaWdodCBjaGFuZ2Ugb3VyIGlkZWFzIGFib3V0IGZyYW1lcyBhbHJlYWR5 IGxvb2tlZCBhdC4gICovCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc3ltZmlsZS5j CitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvc3ltZmlsZS5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zeW1maWxlLmMJMjAwOS0wOS0wOSAxOTox NTo0My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxl LmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIw MDkwOTE3Lm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDA5LTA5LTE3IDEyOjQ4OjUwLjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3N5bWZpbGUuYwkyMDA5LTA5LTE3IDEy OjUwOjA3LjAwMDAwMDAwMCArMDIwMAogQEAgLTQ5LDYgKzQ5LDcgQEAKICAjaW5jbHVkZSAicmVh ZGxpbmUvcmVhZGxpbmUuaCIKICAjaW5jbHVkZSAiZ2RiX2Fzc2VydC5oIgpAQCAtMTI1MCw3ICsx MjUwLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUuYwogICAgICAg ICYmIChoYXZlX2Z1bGxfc3ltYm9scyAoKSB8fCBoYXZlX3BhcnRpYWxfc3ltYm9scyAoKSkKICAg ICAgICAmJiBmcm9tX3R0eQogICAgICAgICYmIChoYXZlX2Z1bGxfc3ltYm9scyAoKSB8fCBoYXZl X3BhcnRpYWxfc3ltYm9scyAoKSkKLUBAIC0xMTYyLDYgKzExNjgsOSBAQCBzeW1ib2xfZmlsZV9j bGVhciAoaW50IGZyb21fdHR5KQorQEAgLTExNjMsNiArMTE2OSw5IEBAIHN5bWJvbF9maWxlX2Ns ZWFyIChpbnQgZnJvbV90dHkpCiAgCQkgICAgc3ltZmlsZV9vYmpmaWxlLT5uYW1lKQogIAkgIDog IXF1ZXJ5IChfKCJEaXNjYXJkIHN5bWJvbCB0YWJsZT8gIikpKSkKICAgICAgZXJyb3IgKF8oIk5v dCBjb25maXJtZWQuIikpOwpAQCAtMTI2OSwxMSArMTI2OSwxMSBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvc3ltZmlsZS5jCiAgCSAgICAgIC8qIElmIHRoZSBtdGltZSBoYXMgY2hh bmdlZCBiZXR3ZWVuIHRoZSB0aW1lIHdlIHNldCBuZXdfbW9kdGltZQogIAkgICAgICAgICBhbmQg bm93LCB3ZSAqd2FudCogdGhpcyB0byBiZSBvdXQgb2YgZGF0ZSwgc28gZG9uJ3QgY2FsbCBzdGF0 CiAgCSAgICAgICAgIGFnYWluIG5vdy4gICovCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9n ZGIvdGFyZ2V0LmgKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi90YXJnZXQuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvdGFyZ2V0LmgJMjAwOS0w OS0wOSAxOTowNzozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi90YXJnZXQuaAkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCArMDIwMAotQEAgLTUyOCw3 ICs1MjgsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3Jp Zy9nZGIvdGFyZ2V0LmgJMjAwOS0wOS0xNyAxMjo0ODo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNi44LjkxLjIwMDkwOTE3L2dkYi90YXJnZXQuaAkyMDA5LTA5LTE3IDEyOjUwOjA3LjAwMDAw MDAwMCArMDIwMAorQEAgLTU0NSw3ICs1NDUsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwogICAgICAg ICBSZXR1cm4gLTEgaWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGJ1ZmZlciBmb3IgYSB3aG9sZSBl bnRyeS4KICAgICAgICAgUmV0dXJuIDEgaWYgYW4gZW50cnkgd2FzIHJlYWQgaW50byAqVFlQRVAg YW5kICpWQUxQLiAgKi8KICAgICAgaW50ICgqdG9fYXV4dl9wYXJzZSkgKHN0cnVjdCB0YXJnZXRf b3BzICpvcHMsIGdkYl9ieXRlICoqcmVhZHB0ciwKQEAgLTEyODIsMTAgKzEyODIsMTAgQEAgSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3RhcmdldC5oCiAgCiAgICAgIC8qIFNlYXJjaCBT RUFSQ0hfU1BBQ0VfTEVOIGJ5dGVzIGJlZ2lubmluZyBhdCBTVEFSVF9BRERSIGZvciB0aGUKICAg ICAgICAgc2VxdWVuY2Ugb2YgYnl0ZXMgaW4gUEFUVEVSTiB3aXRoIGxlbmd0aCBQQVRURVJOX0xF Ti4KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxlLmgKK0luZGV4OiBnZGIt Ni44LjkxLjIwMDkwOTE3L2dkYi9zeW1maWxlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUw LjIwMDkwOTA5Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDA5LTA5LTA5IDE5OjE1OjQzLjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUuaAkyMDA5LTA5LTA5 IDE5OjI0OjEzLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9n ZGIvc3ltZmlsZS5oCTIwMDktMDktMTcgMTI6NDg6NTAuMDAwMDAwMDAwICswMjAwCisrKysgZ2Ri LTYuOC45MS4yMDA5MDkxNy9nZGIvc3ltZmlsZS5oCTIwMDktMDktMTcgMTI6NTA6MDcuMDAwMDAw MDAwICswMjAwCiBAQCAtMjI5LDcgKzIyOSwxMyBAQCBlbnVtIHN5bWZpbGVfYWRkX2ZsYWdzCiAg ICAgIFNZTUZJTEVfTUFJTkxJTkUgPSAxIDw8IDIsCiAgCkBAIC0xMzAxLDEwICsxMzAxLDEwIEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxlLmgKICAgIH07CiAgCiAgZXh0 ZXJuIHZvaWQgc3ltc19mcm9tX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICosCi1JbmRleDogZ2Ri LTYuOC41MC4yMDA5MDkwOS9nZGIvaW5mY21kLmMKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3 L2dkYi9pbmZjbWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9n ZGIvaW5mY21kLmMJMjAwOS0wOS0wOSAxOToyMDozMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9pbmZjbWQuYwkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAw MCArMDIwMAorLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvaW5mY21kLmMJMjAwOS0w OS0xNyAxMjo0OTowMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dk Yi9pbmZjbWQuYwkyMDA5LTA5LTE3IDEyOjUwOjA3LjAwMDAwMDAwMCArMDIwMAogQEAgLTIzMDgs NiArMjMwOCw5IEBAIGF0dGFjaF9jb21tYW5kX3Bvc3Rfd2FpdCAoY2hhciAqYXJncywgaW4KICAK ICAgIHBvc3RfY3JlYXRlX2luZmVyaW9yICgmY3VycmVudF90YXJnZXQsIGZyb21fdHR5KTsKQEAg LTEzMTUsMTAgKzEzMTUsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2luZmNt ZC5jCiAgICAvKiBJbnN0YWxsIGluZmVyaW9yJ3MgdGVybWluYWwgbW9kZXMuICAqLwogICAgdGFy Z2V0X3Rlcm1pbmFsX2luZmVyaW9yICgpOwogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL2xpbnV4LXRkZXAuYworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2xpbnV4LXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvbGludXgt dGRlcC5jCTIwMDktMDgtMDQgMjI6NDE6MTMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvbGludXgtdGRlcC5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAw ICswMjAwCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9saW51eC10ZGVwLmMJMjAw OS0wOC0wNCAyMjo0MToxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3 L2dkYi9saW51eC10ZGVwLmMJMjAwOS0wOS0xNyAxMjo1MDowNy4wMDAwMDAwMDAgKzAyMDAKIEBA IC0xNjMsNSArMTYzLDcgQEAgaW4gdGhpcyBzZXNzaW9uLlxuIikpOwogIHZvaWQKICBfaW5pdGlh bGl6ZV9saW51eF90ZGVwICh2b2lkKQoKZGlmZiAtLWdpdCBhL2dkYi02LjgtaW5saW5pbmctYWRk b24ucGF0Y2ggYi9nZGItNi44LWlubGluaW5nLWFkZG9uLnBhdGNoCmluZGV4IGM4ZTYxNTkuLjRl ZGNkMWEgMTAwNjQ0Ci0tLSBhL2dkYi02LjgtaW5saW5pbmctYWRkb24ucGF0Y2gKKysrIGIvZ2Ri LTYuOC1pbmxpbmluZy1hZGRvbi5wYXRjaApAQCAtNSwxMCArNSwxMCBAQCBjYXVzaW5nOiBGQUlM OiBnZGIuYmFzZS91bndpbmRvbnNpZ25hbC5leHA6IHVud2luZG9uc2lnbmFsLCBzdGFjayB1bndv dW5kCiByZXN1bWUoKSAtPiB0YXJnZXRfcmVzdW1lKCkgbW92ZSBvZiBjbGVhcl9pbmxpbmVfZnJh bWVfc3RhdGUoKSBpcyBmb3I6CiBnZGIubWkvbWktbnNtb3JpYnVuZC5leHAKIAotSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCitJbmRl eDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIub3B0L2lubGluZS1idC5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMJ MjAwOS0wOS0wOSAxOToyMDowMC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIwMDkw OTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCTIwMDktMDYtMjggMDI6 MjA6MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMJMjAwOS0wOS0xNyAxMjo0OTowMS4wMDAwMDAwMDAgKzAy MDAKIEBAIC0xMywxMCArMTMsMTYgQEAKICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVz dHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMKICAKICBpbmxpbmUgaW50IGZ1bmMxKHZvaWQpCiAg ewotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGlu ZS1jbWRzLmMKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi90ZXN0c3VpdGUvZ2RiLm9w dC9pbmxpbmUtY21kcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmln L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5jCTIwMDktMDYtMjggMDI6MjA6MjQu MDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvaW5saW5lLWNtZHMuYwkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAor LS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5l LWNtZHMuYwkyMDA5LTA2LTI4IDAyOjIwOjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02Ljgu OTEuMjAwOTA5MTcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmMJMjAwOS0wOS0x NyAxMjo0OTowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMywxMyArMTMsMTkgQEAKICAgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQogICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KQEAgLTU0LDEwICs1NCwxMCBAQCBJbmRleDogZ2Ri LTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwogIGlu bGluZSBpbnQgZnVuYzEodm9pZCkKICB7CiAgICBiYXIgKCk7Ci1JbmRleDogZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuZXhwCitJbmRleDogZ2Ri LTYuOC45MS4yMDA5MDkxNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2Ri Lm9wdC9pbmxpbmUtY21kcy5leHAJMjAwOS0wNi0yOCAwMjoyMDoyNC4wMDAwMDAwMDAgKzAyMDAK LSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21k cy5leHAJMjAwOS0wOS0wOSAxOToyMDowMC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44Ljkx LjIwMDkwOTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA5 LTA2LTI4IDAyOjIwOjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEuMjAwOTA5MTcv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA5LTA5LTE3IDEyOjQ5OjAx LjAwMDAwMDAwMCArMDIwMAogQEAgLTIzMCw3ICsyMzAsNyBAQCBzZXQgbGluZTMgW2dkYl9nZXRf bGluZV9udW1iZXIgInNldCBicmVhCiAgZ2RiX2JyZWFrcG9pbnQgJGxpbmUzCiAgZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgImNvbnNlY3V0aXZlIGZ1bmMxIgpAQCAtMTEwLDEwICsxMTAsMTAg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGlu ZS1jbWRzLmV4cAogK2dkYl90ZXN0ICJpbmZvIGZyYW1lIiAiaW5saW5lZCBpbnRvIGZyYW1lLioi ICJvdXRlcl9pbmxpbmUyIGlubGluZWQiCiArZ2RiX3Rlc3QgImZpbmkiICIiICJ1cCBmcm9tIG91 dGVyX2lubGluZTIiCiArZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIgaW4gbWFpbiBcW15cblxdKlxu IHNvdXJjZSBsYW5ndWFnZS4qIiAibWFpbiBub3QgaW5saW5lZCIKLUluZGV4OiBnZGItNi44LjUw LjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMKK0luZGV4OiBn ZGItNi44LjkxLjIwMDkwOTE3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIub3B0L2lubGluZS1sb2NhbHMuYwkyMDA5LTA2LTI4IDAyOjIwOjI0LjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1s b2NhbHMuYwkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02Ljgu OTEuMjAwOTA5MTcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCTIw MDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkx Ny9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCTIwMDktMDktMTcgMTI6NDk6 MDEuMDAwMDAwMDAwICswMjAwCiBAQCAtMTMsMTEgKzEzLDE2IEBACiAgICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCkBAIC0xMzMsMTAgKzEzMywxMCBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCiAgCiAgaW5s aW5lIGludCBmdW5jMShpbnQgYXJnMSkKICB7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9n ZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAKK0luZGV4OiBnZGItNi44Ljkx LjIwMDkwOTE3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv aW5saW5lLWxvY2Fscy5leHAJMjAwOS0wNi0zMCAxNzo1MDoyNy4wMDAwMDAwMDAgKzAyMDAKLSsr KyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxz LmV4cAkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguOTEu MjAwOTA5MTcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAJMjAw OS0wNi0zMCAxNzo1MDoyNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3 L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAkyMDA5LTA5LTE3IDEyOjQ5 OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTc3LDYgKzc3LDkgQEAgaWYgeyAhICRub19mcmFtZXMg fSB7CiAgCiAgIyBNYWtlIHN1cmUgdGhhdCBsb2NhbHMgb24gdGhlIHN0YWNrIGFyZSBmb3VuZC4g IFRoaXMgaXMgYW4gYXJyYXkgdG8KQEAgLTE1NSwxMSArMTU1LDExIEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAogKyAg ICBzZXR1cF9rZmFpbCAqLSotKiAiZ2NjL2RlYnVnLm9wdGltaXphdGlvbiIKICt9CiAgZ2RiX3Rl c3QgInByaW50IGFycmF5XFswXF0iICJcXFwkJGRlY2ltYWwgPSAxODQiICJwcmludCBsb2NhbCAo MykiCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZnJhbWUuYworSW5kZXg6IGdkYi02 LjguOTEuMjAwOTA5MTcvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIw MDkwOTA5Lm9yaWcvZ2RiL2ZyYW1lLmMJMjAwOS0wOS0wOSAxOTowNjo0Ni4wMDAwMDAwMDAgKzAy MDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9mcmFtZS5jCTIwMDktMDktMDkgMTk6MjA6 MDAuMDAwMDAwMDAwICswMjAwCi1AQCAtMjc2LDcgKzI3Niw3IEBAIGZwcmludF9mcmFtZSAoc3Ry dWN0IHVpX2ZpbGUgKmZpbGUsIHN0cnUKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3Lm9yaWcvZ2Ri L2ZyYW1lLmMJMjAwOS0wOS0xNyAxMjo0ODo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44 LjkxLjIwMDkwOTE3L2dkYi9mcmFtZS5jCTIwMDktMDktMTcgMTI6NDk6MDEuMDAwMDAwMDAwICsw MjAwCitAQCAtMzEwLDcgKzMxMCw3IEBAIGZwcmludF9mcmFtZSAoc3RydWN0IHVpX2ZpbGUgKmZp bGUsIHN0cnUKICBzdGF0aWMgc3RydWN0IGZyYW1lX2luZm8gKgogIHNraXBfaW5saW5lZF9mcmFt ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKICB7CkBAIC0xNjgsNyArMTY4LDcgQEAgSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2ZyYW1lLmMKICAgICAgZnJhbWUgPSBnZXRfcHJl dl9mcmFtZSAoZnJhbWUpOwogIAogICAgcmV0dXJuIGZyYW1lOwotQEAgLTE3MTUsNiArMTcxNSw3 IEBAIGdldF9mcmFtZV9hZGRyZXNzX2luX2Jsb2NrIChzdHJ1Y3QgZnJhbWUKK0BAIC0xNzc4LDYg KzE3NzgsNyBAQCBnZXRfZnJhbWVfYWRkcmVzc19pbl9ibG9jayAoc3RydWN0IGZyYW1lCiAgewog ICAgLyogQSBkcmFmdCBhZGRyZXNzLiAgKi8KICAgIENPUkVfQUREUiBwYyA9IGdldF9mcmFtZV9w YyAodGhpc19mcmFtZSk7CkBAIC0xNzYsNyArMTc2LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTA5MDkvZ2RiL2ZyYW1lLmMKICAKICAgIHN0cnVjdCBmcmFtZV9pbmZvICpuZXh0X2ZyYW1lID0g dGhpc19mcmFtZS0+bmV4dDsKICAKLUBAIC0xNzU3LDYgKzE3NTgsOSBAQCBnZXRfZnJhbWVfYWRk cmVzc19pbl9ibG9jayAoc3RydWN0IGZyYW1lCitAQCAtMTgyMCw2ICsxODIxLDkgQEAgZ2V0X2Zy YW1lX2FkZHJlc3NfaW5fYmxvY2sgKHN0cnVjdCBmcmFtZQogICAgICAgd2hpbGUgaW4gYW4gaW5s aW5lZCBmdW5jdGlvbiwgdGhlbiB0aGUgY29kZSBhZGRyZXNzIG9mIHRoZQogICAgICAgImNhbGxp bmciIG5vcm1hbCBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGFkanVzdGVkIGVpdGhlci4gICovCiAg CkBAIC0xODYsNyArMTg2LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2ZyYW1l LmMKICAgIHdoaWxlIChnZXRfZnJhbWVfdHlwZSAobmV4dF9mcmFtZSkgPT0gSU5MSU5FX0ZSQU1F KQogICAgICBuZXh0X2ZyYW1lID0gbmV4dF9mcmFtZS0+bmV4dDsKICAKLUBAIC0xNzg4LDcgKzE3 OTIsNyBAQCBmaW5kX2ZyYW1lX3NhbCAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lCitAQCAtMTg1 MSw3ICsxODU1LDcgQEAgZmluZF9mcmFtZV9zYWwgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZQog IAlzeW0gPSBpbmxpbmVfc2tpcHBlZF9zeW1ib2wgKGluZmVyaW9yX3B0aWQpOwogIAogICAgICAg IGluaXRfc2FsIChzYWwpOwpAQCAtMTk1LDE5ICsxOTUsMTkgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA5MDkvZ2RiL2ZyYW1lLmMKICAJewogIAkgIHNhbC0+c3ltdGFiID0gU1lNQk9MX1NZTVRB QiAoc3ltKTsKICAJICBzYWwtPmxpbmUgPSBTWU1CT0xfTElORSAoc3ltKTsKLUluZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGItNi44LjkxLjIwMDkw OTE3L2dkYi9icmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5 Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDA5LTA5LTA5IDE5OjE5OjQ2LjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2JyZWFrcG9pbnQuYwkyMDA5LTA5LTA5IDE5 OjIxOjE0LjAwMDAwMDAwMCArMDIwMAotQEAgLTYxLDYgKzYxLDcgQEAKLSAjaW5jbHVkZSAidmFs cHJpbnQuaCIKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwky MDA5LTA5LTE3IDEyOjQ4OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEuMjAwOTA5 MTcvZ2RiL2JyZWFrcG9pbnQuYwkyMDA5LTA5LTE3IDEyOjQ5OjEyLjAwMDAwMDAwMCArMDIwMAor QEAgLTYyLDYgKzYyLDcgQEAKICAjaW5jbHVkZSAiaml0LmgiCisgI2luY2x1ZGUgInhtbC1zeXNj YWxsLmgiCiAgI2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCiArI2luY2x1ZGUgImlubGluZS1mcmFt ZS5oIgogIAogIC8qIHJlYWRsaW5lIGluY2x1ZGUgZmlsZXMgKi8KICAjaW5jbHVkZSAicmVhZGxp bmUvcmVhZGxpbmUuaCIKLUBAIC0zMjE3LDEwICszMjE4LDI0IEBAIGJwc3RhdF9jaGVja19icmVh a3BvaW50X2NvbmRpdGlvbnMgKGJwc3QKK0BAIC0zMjIwLDEwICszMjIxLDI0IEBAIGJwc3RhdF9j aGVja19icmVha3BvaW50X2NvbmRpdGlvbnMgKGJwc3QKICAgIGNvbnN0IHN0cnVjdCBicF9sb2Nh dGlvbiAqYmwgPSBicy0+YnJlYWtwb2ludF9hdDsKICAgIHN0cnVjdCBicmVha3BvaW50ICpiID0g YmwtPm93bmVyOwogIApAQCAtMjM2LDcgKzIzNiw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi9icmVha3BvaW50LmMKICAgICAgewogICAgICAgIGludCB2YWx1ZV9pc196ZXJvID0g MDsKICAgICAgICAKLUBAIC0zMzgwLDYgKzMzOTUsMTIgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChD T1JFX0FERFIgYnBfYWRkciwgcAorQEAgLTMzODMsNiArMzM5OCwxMiBAQCBicHN0YXRfc3RvcF9z dGF0dXMgKENPUkVfQUREUiBicF9hZGRyLCBwCiAgCSAgICBicy0+cHJpbnQgPSAwOwogIAkgIH0K ICAJYnMtPmNvbW1hbmRzID0gY29weV9jb21tYW5kX2xpbmVzIChicy0+Y29tbWFuZHMpOwpAQCAt MjQ5LDcgKzI0OSw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9icmVha3BvaW50 LmMKICAgICAgICB9CiAgCiAgICAgIC8qIFByaW50IG5vdGhpbmcgZm9yIHRoaXMgZW50cnkgaWYg d2UgZG9udCBzdG9wIG9yIGlmIHdlIGRvbnQgcHJpbnQuICAqLwotQEAgLTUyNzgsOSArNTI5OSw5 IEBAIHNldF9tb21lbnRhcnlfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2gKK0BAIC01NTcyLDkg KzU1OTMsOSBAQCBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoCiAgewog ICAgc3RydWN0IGJyZWFrcG9pbnQgKmI7CiAgCkBAIC0yNjIsMTEgKzI2MiwxMSBAQCBJbmRleDog Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYnJlYWtwb2ludC5jCiAgCiAgICBiID0gc2V0X3Jhd19i cmVha3BvaW50IChnZGJhcmNoLCBzYWwsIHR5cGUpOwogICAgYi0+ZW5hYmxlX3N0YXRlID0gYnBf ZW5hYmxlZDsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmxpbmUtZnJhbWUuYwor SW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2lubGluZS1mcmFtZS5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9pbmxpbmUtZnJhbWUuYwkyMDA5LTA2 LTI4IDAyOjIwOjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2Ri L2lubGluZS1mcmFtZS5jCTIwMDktMDktMDkgMTk6MjA6MDAuMDAwMDAwMDAwICswMjAwCi1AQCAt MTk1LDYgKzE5NSwxMiBAQCBpbmxpbmVfZnJhbWVfc25pZmZlciAoY29uc3Qgc3RydWN0IGZyYW1l CistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9pbmxpbmUtZnJhbWUuYwkyMDA5LTA5 LTEzIDE4OjI4OjI4LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2Ri L2lubGluZS1mcmFtZS5jCTIwMDktMDktMTcgMTI6NDk6MDEuMDAwMDAwMDAwICswMjAwCitAQCAt MTk5LDYgKzE5OSwxMiBAQCBpbmxpbmVfZnJhbWVfc25pZmZlciAoY29uc3Qgc3RydWN0IGZyYW1l CiAgICBpZiAoZnJhbWVfYmxvY2sgPT0gTlVMTCkKICAgICAgcmV0dXJuIDA7CiAgCkBAIC0yNzks NyArMjc5LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2lubGluZS1mcmFtZS5j CiAgICAvKiBDYWxjdWxhdGUgREVQVEgsIHRoZSBudW1iZXIgb2YgaW5saW5lZCBmdW5jdGlvbnMg YXQgdGhpcwogICAgICAgbG9jYXRpb24uICAqLwogICAgZGVwdGggPSAwOwotQEAgLTIwNCw2ICsy MTAsMTAgQEAgaW5saW5lX2ZyYW1lX3NuaWZmZXIgKGNvbnN0IHN0cnVjdCBmcmFtZQorQEAgLTIw OCw2ICsyMTQsMTAgQEAgaW5saW5lX2ZyYW1lX3NuaWZmZXIgKGNvbnN0IHN0cnVjdCBmcmFtZQog ICAgICAgIGlmIChibG9ja19pbmxpbmVkX3AgKGN1cl9ibG9jaykpCiAgCWRlcHRoKys7CiAgCkBA IC0yOTAsNyArMjkwLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2lubGluZS1m cmFtZS5jCiAgICAgICAgY3VyX2Jsb2NrID0gQkxPQ0tfU1VQRVJCTE9DSyAoY3VyX2Jsb2NrKTsK ICAgICAgfQogIAotQEAgLTI4Nyw3ICsyOTcsNiBAQCBza2lwX2lubGluZV9mcmFtZXMgKHB0aWRf dCBwdGlkKQorQEAgLTI5MSw3ICszMDEsNiBAQCBza2lwX2lubGluZV9mcmFtZXMgKHB0aWRfdCBw dGlkKQogIHsKICAgIENPUkVfQUREUiB0aGlzX3BjOwogICAgc3RydWN0IGJsb2NrICpmcmFtZV9i bG9jaywgKmN1cl9ibG9jazsKQEAgLTI5OCw3ICsyOTgsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvaW5saW5lLWZyYW1lLmMKICAgIGludCBza2lwX2NvdW50ID0gMDsKICAgIHN0 cnVjdCBpbmxpbmVfc3RhdGUgKnN0YXRlOwogIAotQEAgLTMwOCwxMCArMzE3LDcgQEAgc2tpcF9p bmxpbmVfZnJhbWVzIChwdGlkX3QgcHRpZCkKK0BAIC0zMTIsMTAgKzMyMSw3IEBAIHNraXBfaW5s aW5lX2ZyYW1lcyAocHRpZF90IHB0aWQpCiAgCQkgb2YgQkxPQ0tfU1RBUlQuICAqLwogIAkgICAg ICBpZiAoQkxPQ0tfU1RBUlQgKGN1cl9ibG9jaykgPT0gdGhpc19wYwogIAkJICB8fCBibG9ja19z dGFydGluZ19wb2ludF9hdCAodGhpc19wYywgY3VyX2Jsb2NrKSkKQEAgLTMxMCw3ICszMTAsNyBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5saW5lLWZyYW1lLmMKICAJICAgICAg ZWxzZQogIAkJYnJlYWs7CiAgCSAgICB9Ci1AQCAtMzIzLDcgKzMyOSw2IEBAIHNraXBfaW5saW5l X2ZyYW1lcyAocHRpZF90IHB0aWQpCitAQCAtMzI3LDcgKzMzMyw2IEBAIHNraXBfaW5saW5lX2Zy YW1lcyAocHRpZF90IHB0aWQpCiAgICBzdGF0ZSA9IGFsbG9jYXRlX2lubGluZV9mcmFtZV9zdGF0 ZSAocHRpZCk7CiAgICBzdGF0ZS0+c2tpcHBlZF9mcmFtZXMgPSBza2lwX2NvdW50OwogICAgc3Rh dGUtPnNhdmVkX3BjID0gdGhpc19wYzsKQEAgLTMxOCw3ICszMTgsNyBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDkwOS9nZGIvaW5saW5lLWZyYW1lLmMKICAKICAgIGlmIChza2lwX2NvdW50ICE9 IDApCiAgICAgIHJlaW5pdF9mcmFtZV9jYWNoZSAoKTsKLUBAIC0zNDEsNiArMzQ2LDIzIEBAIHN0 ZXBfaW50b19pbmxpbmVfZnJhbWUgKHB0aWRfdCBwdGlkKQorQEAgLTM0NSw2ICszNTAsMjMgQEAg c3RlcF9pbnRvX2lubGluZV9mcmFtZSAocHRpZF90IHB0aWQpCiAgICByZWluaXRfZnJhbWVfY2Fj aGUgKCk7CiAgfQogIApAQCAtMzQyLDEwICszNDIsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTA5MDkvZ2RiL2lubGluZS1mcmFtZS5jCiAgLyogUmV0dXJuIHRoZSBudW1iZXIgb2YgaGlkZGVu IGZ1bmN0aW9ucyBpbmxpbmVkIGludG8gdGhlIGN1cnJlbnQKICAgICBmcmFtZS4gICovCiAgCi1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLW1h cmtlcnMuYworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L2lubGluZS1tYXJrZXJzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1tYXJrZXJzLmMJMjAwOS0wNi0yOCAwMjoy MDoyNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3Vp dGUvZ2RiLm9wdC9pbmxpbmUtbWFya2Vycy5jCTIwMDktMDktMDkgMTk6MjA6MDAuMDAwMDAwMDAw ICswMjAwCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm9w dC9pbmxpbmUtbWFya2Vycy5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLW1hcmtl cnMuYwkyMDA5LTA5LTE3IDEyOjQ5OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTE1LDExICsxNSw2 IEBACiAgCiAgZXh0ZXJuIGludCB4LCB5OwpAQCAtMzU4LDEwICszNTgsMTAgQEAgSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1tYXJrZXJzLmMK ICB2b2lkIG1hcmtlcih2b2lkKQogIHsKICAgIHggKz0geTsgLyogc2V0IGJyZWFrcG9pbnQgMiBo ZXJlICovCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZ2RidGhyZWFkLmgKK0luZGV4 OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9nZGJ0aHJlYWQuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZ2RidGhyZWFkLmgJMjAwOS0wOS0wOSAxOTowNTo1 Ni4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9nZGJ0aHJlYWQu aAkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguOTEuMjAw OTA5MTcub3JpZy9nZGIvZ2RidGhyZWFkLmgJMjAwOS0wOS0xNyAxMjo0NzowNy4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9nZGJ0aHJlYWQuaAkyMDA5LTA5LTE3 IDEyOjQ5OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTE5MSw2ICsxOTEsMTIgQEAgc3RydWN0IHRo cmVhZF9pbmZvCiAgCiAgICAvKiBQcml2YXRlIGRhdGEgdXNlZCBieSB0aGUgdGFyZ2V0IHZlY3Rv ciBpbXBsZW1lbnRhdGlvbi4gICovCkBAIC0zNzUsMTAgKzM3NSwxMCBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDkwOS9nZGIvZ2RidGhyZWFkLmgKICB9OwogIAogIC8qIENyZWF0ZSBhbiBlbXB0 eSB0aHJlYWQgbGlzdCwgb3IgZW1wdHkgdGhlIGV4aXN0aW5nIG9uZS4gICovCi1JbmRleDogZ2Ri LTYuOC41MC4yMDA5MDkwOS9nZGIvaW5mY21kLmMKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3 L2dkYi9pbmZjbWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9n ZGIvaW5mY21kLmMJMjAwOS0wOS0wOSAxOTowNTo1Ni4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9pbmZjbWQuYwkyMDA5LTA5LTA5IDE5OjIwOjMzLjAwMDAwMDAw MCArMDIwMAorLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvaW5mY21kLmMJMjAwOS0w OS0xNyAxMjo0NzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dk Yi9pbmZjbWQuYwkyMDA5LTA5LTE3IDEyOjQ5OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTE0MzQs MTEgKzE0MzQsMTEgQEAgZmluaXNoX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lkICphcmcpCiAg ICAgICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGU7CiAgCkBAIC01MTgsMTEgKzUxOCwxMSBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5mY21kLmMKICB9CiAgDAogIAotSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3RhcmdldC5jCitJbmRleDogZ2RiLTYuOC45MS4yMDA5 MDkxNy9nZGIvdGFyZ2V0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9y aWcvZ2RiL3RhcmdldC5jCTIwMDktMDktMDkgMTk6MDk6MzEuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmMJMjAwOS0wOS0wOSAxOToyMTowMC4wMDAw MDAwMDAgKzAyMDAKLUBAIC0yMTgyLDYgKzIxODIsNyBAQCB0YXJnZXRfcmVzdW1lIChwdGlkX3Qg cHRpZCwgaW50IHN0ZXAsIGVuCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi90YXJn ZXQuYwkyMDA5LTA5LTE3IDEyOjQ4OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEu MjAwOTA5MTcvZ2RiL3RhcmdldC5jCTIwMDktMDktMTcgMTI6NDk6MDEuMDAwMDAwMDAwICswMjAw CitAQCAtMjE4Nyw2ICsyMTg3LDcgQEAgdGFyZ2V0X3Jlc3VtZSAocHRpZF90IHB0aWQsIGludCBz dGVwLCBlbgogIHsKICAgIHN0cnVjdCB0YXJnZXRfb3BzICp0OwogIApAQCAtNTMwLDEwICs1MzAs MTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3RhcmdldC5jCiAgICB0YXJnZXRf ZGNhY2hlX2ludmFsaWRhdGUgKCk7CiAgCiAgICBmb3IgKHQgPSBjdXJyZW50X3RhcmdldC5iZW5l YXRoOyB0ICE9IE5VTEw7IHQgPSB0LT5iZW5lYXRoKQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL2lubGluZS1mcmFtZS5oCitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvaW5s aW5lLWZyYW1lLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2Ri L2lubGluZS1mcmFtZS5oCTIwMDktMDYtMjggMDI6MjA6MjIuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5saW5lLWZyYW1lLmgJMjAwOS0wOS0wOSAxOToyMDow MC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3Lm9yaWcvZ2RiL2lubGlu ZS1mcmFtZS5oCTIwMDktMDYtMjggMDI6MjA6MjIuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYu OC45MS4yMDA5MDkxNy9nZGIvaW5saW5lLWZyYW1lLmgJMjAwOS0wOS0xNyAxMjo0OTowMS4wMDAw MDAwMDAgKzAyMDAKIEBAIC00Myw2ICs0MywxMCBAQCB2b2lkIGNsZWFyX2lubGluZV9mcmFtZV9z dGF0ZSAocHRpZF90IHB0CiAgCiAgdm9pZCBzdGVwX2ludG9faW5saW5lX2ZyYW1lIChwdGlkX3Qg cHRpZCk7CkBAIC01NDUsMTEgKzU0NSwxMSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9n ZGIvaW5saW5lLWZyYW1lLmgKICAvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBoaWRkZW4gZnVuY3Rp b25zIGlubGluZWQgaW50byB0aGUgY3VycmVudAogICAgIGZyYW1lLiAgKi8KICAKLUluZGV4OiBn ZGItNi44LjUwLjIwMDkwOTA5L2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNi44LjkxLjIw MDkwOTE3L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkw OTA5Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDA5LTA5LTA5IDE5OjE5OjQ2LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2R3YXJmMnJlYWQuYwkyMDA5LTA5LTA5 IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAotQEAgLTQxMzAsNiArNDEzMCw3IEBAIHJlYWRfZnVu Y19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3 Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDA5LTA5LTE3IDEyOjQ4OjUxLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2R3YXJmMnJlYWQuYwkyMDA5LTA5LTE3IDEy OjQ5OjAxLjAwMDAwMDAwMCArMDIwMAorQEAgLTQxMjgsNiArNDEyOCw3IEBAIHJlYWRfZnVuY19z Y29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKICAgIHN0cnVjdCBibG9jayAqYmxvY2s7CiAg ICB1bnNpZ25lZCBkaWVfY2hpbGRyZW4gPSAwOwogICAgaW50IGlubGluZWRfZnVuYyA9IChkaWUt PnRhZyA9PSBEV19UQUdfaW5saW5lZF9zdWJyb3V0aW5lKTsKQEAgLTU1Nyw3ICs1NTcsNyBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICBpZiAoaW5s aW5lZF9mdW5jKQogICAgICB7Ci1AQCAtNDE3MSw3ICs0MTcyLDEwIEBAIHJlYWRfZnVuY19zY29w ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKK0BAIC00MTY5LDcgKzQxNzAsMTAgQEAgcmVhZF9m dW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcwogICAgYWRkX3RvX2N1X2Z1bmNfbGlz dCAobmFtZSwgbG93cGMsIGhpZ2hwYywgY3UpOwogIAogICAgbmV3ID0gcHVzaF9jb250ZXh0ICgw LCBsb3dwYyk7CgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0 Y2gKaW5kZXggMzFlMmQ0Yi4uMDRjMzNhMSAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAor KysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBodHRwOi8vc291cmNld2FyZS5v cmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtp L0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBzaG90OgotY29tbWl0IDk0MWViNDg3 YTQyOTMzZTQ0MmNiNGQxMTM0NGNkYTk2ZWNiOGEwNGQKK2NvbW1pdCAxNmYzZjAxY2MyY2JjMTUy ODM0NjJlYWFiZGZjZGU5MmNmNDJjZGM2CiAKIGJyYW5jaCBgYXJjaGVyJyAtIHRoZSBtZXJnZSBv ZiBicmFuY2hlczoKIGFyY2hlci10cm9tZXktY2FsbC1mcmFtZS1jZmEKQEAgLTE5LDE2ICsxOSwx MyBAQCBhcmNoZXItcG11bGRvb24tbmV4dC1vdmVyLXRocm93CiAKIAogZGlmZiAtLWdpdCBhL2dk Yi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgotaW5kZXggN2YyZmU1OC4uYWMzYTRhMCAx MDA2NDQKK2luZGV4IGY1ZTFkZGUuLjczZWU1NWMgMTAwNjQ0CiAtLS0gYS9nZGIvTWFrZWZpbGUu aW4KICsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTE2Niw2ICsxNjYsMTMgQEAgSU5UTF9DRkxB R1MgPSBASU5DSU5UTEAKLSBUQVJHRVRfU1lTVEVNX1JPT1QgPSBAVEFSR0VUX1NZU1RFTV9ST09U QAotIFRBUkdFVF9TWVNURU1fUk9PVF9ERUZJTkUgPSBAVEFSR0VUX1NZU1RFTV9ST09UX0RFRklO RUAKK0BAIC0xNjksNiArMTY5LDEwIEBAIFRBUkdFVF9TWVNURU1fUk9PVF9ERUZJTkUgPSBAVEFS R0VUX1NZU1RFTV9ST09UX0RFRklORUAKKyAjIERpZCB0aGUgdXNlciBnaXZlIHVzIGEgLS13aXRo LWdkYi1kYXRhZGlyIG9wdGlvbj8KKyBHREJfREFUQURJUl9QQVRIID0gQEdEQl9EQVRBRElSX1BB VEhACiAgCi0rIyBEaWQgdGhlIHVzZXIgZ2l2ZSB1cyBhIC0td2l0aC1nZGItZGF0YWRpciBvcHRp b24/Ci0rR0RCX0RBVEFESVJfUEFUSCA9IEBHREJfREFUQURJUl9QQVRIQAotKwogKyMgVGhlIGFy Z3VtZW50IHRvIC0td2l0aC1weXRob25kaXIuICBJZiBub3QgZ2l2ZW4sIHRoaXMgaXMKICsjIEdE Ql9EQVRBRElSX1BBVEgvcHl0aG9uLgogK3B5dGhvbmRpciA9IEBweXRob25kaXJACkBAIC0zNiw3 ICszMyw3IEBAIGluZGV4IDdmMmZlNTguLmFjM2E0YTAgMTAwNjQ0CiAgIyBIZWxwZXIgY29kZSBm cm9tIGdudWxpYi4KICBMSUJHTlUgPSBnbnVsaWIvbGliZ251LmEKICBJTkNHTlUgPSAtSSQoc3Jj ZGlyKS9nbnVsaWIgLUlnbnVsaWIKLUBAIC0yNjQsMjEgKzI3MSwzNyBAQCBTVUJESVJfVFVJX0NG TEFHUz0gXAorQEAgLTI2NywyMSArMjcxLDM3IEBAIFNVQkRJUl9UVUlfQ0ZMQUdTPSBcCiAgIwog IFNVQkRJUl9QWVRIT05fT0JTID0gXAogIAlweXRob24ubyBcCkBAIC03NCwyNSArNzEsMjUgQEAg aW5kZXggN2YyZmU1OC4uYWMzYTRhMCAxMDA2NDQKICAJcHl0aG9uL3B5LXR5cGUuYyBcCiAgCXB5 dGhvbi9weS11dGlscy5jIFwKICAJcHl0aG9uL3B5LXZhbHVlLmMKLUBAIC03NDYsNyArNzY5LDcg QEAgY29uZmlnL3JzNjAwMC9ubS1yczYwMDAuaCB0b3AuaCBic2Qta3ZtLmggZ2RiLXN0YWJzLmgg cmVnZ3JvdXBzLmggXAorQEAgLTc1MCw3ICs3NzAsNyBAQCBjb25maWcvcnM2MDAwL25tLXJzNjAw MC5oIHRvcC5oIGJzZC1rdm0uaCBnZGItc3RhYnMuaCByZWdncm91cHMuaCBcCiAgYW5ub3RhdGUu aCBzaW0tcmVnbm8uaCBkaWN0aW9uYXJ5LmggZGZwLmggbWFpbi5oIGZyYW1lLXVud2luZC5oCVwK ICByZW1vdGUtZmlsZWlvLmggaTM4Ni1saW51eC10ZGVwLmggdmF4LXRkZXAuaCBvYmpjLWxhbmcu aCBcCiAgc2VudGluZWwtZnJhbWUuaCBiY2FjaGUuaCBzeW1maWxlLmggd2luZG93cy10ZGVwLmgg bGludXgtdGRlcC5oIFwKLS1nZGJfdXNsZWVwLmggaml0LmgKLStnZGJfdXNsZWVwLmggaml0Lmgg cHl0aG9uL3B5dGhvbi5oIHB5dGhvbi9weXRob24taW50ZXJuYWwuaAorLWdkYl91c2xlZXAuaCBq aXQuaCB4bWwtc3lzY2FsbC5oIGFkYS1vcGVyYXRvci5pbmMKKytnZGJfdXNsZWVwLmggaml0Lmgg eG1sLXN5c2NhbGwuaCBhZGEtb3BlcmF0b3IuaW5jIHB5dGhvbi9weXRob24uaCBweXRob24vcHl0 aG9uLWludGVybmFsLmgKICAKICAjIEhlYWRlciBmaWxlcyB0aGF0IGFscmVhZHkgaGF2ZSBzcmNk aXIgaW4gdGhlbSwgb3Igd2hpY2ggYXJlIGluIG9iamRpci4KICAKLUBAIC04NjQsNyArODg3LDcg QEAgZ2VuZXJhdGVkX2ZpbGVzID0gY29uZmlnLmggb2JzZXJ2ZXIuaCBvYnNlcnZlci5pbmMgYWRh LWxleC5jIFwKK0BAIC04NzQsNyArODk0LDcgQEAgZ2VuZXJhdGVkX2ZpbGVzID0gY29uZmlnLmgg b2JzZXJ2ZXIuaCBvYnNlcnZlci5pbmMgYWRhLWxleC5jIFwKICAJJChDT01QSUxFKSAkPAogIAkk KFBPU1RDT01QSUxFKQogIAotLWFsbDogZ2RiJChFWEVFWFQpICQoQ09ORklHX0FMTCkKLSthbGw6 IGdkYiQoRVhFRVhUKSAkKENPTkZJR19BTEwpIC5nZGJpbml0CistYWxsOiBnZGIkKEVYRUVYVCkg JChDT05GSUdfQUxMKSB4bWwtc3lzY2FsbC1jb3B5CisrYWxsOiBnZGIkKEVYRUVYVCkgJChDT05G SUdfQUxMKSB4bWwtc3lzY2FsbC1jb3B5IC5nZGJpbml0CiAgCUAkKE1BS0UpICQoRkxBR1NfVE9f UEFTUykgRE89YWxsICJET0RJUlM9YGVjaG8gJChTVUJESVJTKSB8IHNlZCAncy90ZXN0c3VpdGUv LydgIiBzdWJkaXJfZG8KICAuUEhPTlk6IGFsbC10dWkKICBhbGwtdHVpOiAkKFRVSSkkKEVYRUVY VCkKLUBAIC0xMjIxLDYgKzEyNDQsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2NvbmZpZy5pbiBj b25maWcuc3RhdHVzCitAQCAtMTI2NCw2ICsxMjg0LDEyIEBAIHN0YW1wLWg6ICQoc3JjZGlyKS9j b25maWcuaW4gY29uZmlnLnN0YXR1cwogIAkgIENPTkZJR19MSU5LUz0gXAogIAkgICQoU0hFTEwp IGNvbmZpZy5zdGF0dXMKICAKQEAgLTEwNSw3ICsxMDIsNyBAQCBpbmRleCA3ZjJmZTU4Li5hYzNh NGEwIDEwMDY0NAogIGNvbmZpZy5zdGF0dXM6ICQoc3JjZGlyKS9jb25maWd1cmUgY29uZmlndXJl LnRndCBjb25maWd1cmUuaG9zdAogIAkkKFNIRUxMKSBjb25maWcuc3RhdHVzIC0tcmVjaGVjawog IAotQEAgLTE5MjAsNiArMTk0OSwxNCBAQCBweXRob24ubzogJChzcmNkaXIpL3B5dGhvbi9weXRo b24uYworQEAgLTE5NjMsNiArMTk4OSwxNCBAQCBweXRob24ubzogJChzcmNkaXIpL3B5dGhvbi9w eXRob24uYwogIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9w eXRob24uYwogIAkkKFBPU1RDT01QSUxFKQogIApAQCAtMTIwLDcgKzExNyw3IEBAIGluZGV4IDdm MmZlNTguLmFjM2E0YTAgMTAwNjQ0CiAgcHktY21kLm86ICQoc3JjZGlyKS9weXRob24vcHktY21k LmMKICAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktY21k LmMKICAJJChQT1NUQ09NUElMRSkKLUBAIC0xOTMyLDE0ICsxOTY5LDM4IEBAIHB5LWZ1bmN0aW9u Lm86ICQoc3JjZGlyKS9weXRob24vcHktZnVuY3Rpb24uYworQEAgLTE5NzUsMTQgKzIwMDksMzgg QEAgcHktZnVuY3Rpb24ubzogJChzcmNkaXIpL3B5dGhvbi9weS1mdW5jdGlvbi5jCiAgCSQoQ09N UElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5LWZ1bmN0aW9uLmMKICAJ JChQT1NUQ09NUElMRSkKICAKQEAgLTE1OSw3ICsxNTYsNyBAQCBpbmRleCA3ZjJmZTU4Li5hYzNh NGEwIDEwMDY0NAogIHB5LXR5cGUubzogJChzcmNkaXIpL3B5dGhvbi9weS10eXBlLmMKICAJJChD T01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktdHlwZS5jCiAgCSQo UE9TVENPTVBJTEUpCi1AQCAtMTk1Miw2ICsyMDEzLDM2IEBAIHB5LXZhbHVlLm86ICQoc3JjZGly KS9weXRob24vcHktdmFsdWUuYworQEAgLTE5OTUsNiArMjA1MywzNiBAQCBweS12YWx1ZS5vOiAk KHNyY2RpcikvcHl0aG9uL3B5LXZhbHVlLmMKICAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1Mp ICQoc3JjZGlyKS9weXRob24vcHktdmFsdWUuYwogIAkkKFBPU1RDT01QSUxFKQogIApAQCAtMTk3 LDEwICsxOTQsMTAgQEAgaW5kZXggN2YyZmU1OC4uYWMzYTRhMCAxMDA2NDQKICAjIERlcGVuZGVu Y3kgdHJhY2tpbmcuICBNb3N0IG9mIHRoaXMgaXMgY29uZGl0aW9uYWwgb24gR05VIE1ha2UgYmVp bmcKICAjIGZvdW5kIGJ5IGNvbmZpZ3VyZTsgaWYgR05VIE1ha2UgaXMgbm90IGZvdW5kLCB3ZSBm YWxsIGJhY2sgdG8gYQogZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKLWluZGV4IDE0 ZGE2YzguLjE5NzlmNDIgMTAwNjQ0CitpbmRleCA0ZmM2ZGNkLi42NzQ0YjIzIDEwMDY0NAogLS0t IGEvZ2RiL05FV1MKICsrKyBiL2dkYi9ORVdTCi1AQCAtNDQ0LDYgKzQ0NCwxMyBAQCB4ODYveDg2 XzY0IERhcndpbgkJaVszNDU2N104Ni0qLWRhcndpbioKK0BAIC00NjIsNiArNDYyLDEzIEBAIHg4 Ni94ODZfNjQgRGFyd2luCQlpWzM0NTY3XTg2LSotZGFyd2luKgogIAogIHg4Nl82NCBNaW5HVwkJ CXg4Nl82NC0qLW1pbmd3KgogIApAQCAtNDY2LDE4ICs0NjMsMTggQEAgaW5kZXggNTNlNzM3MS4u ZDM3M2Y4YSAxMDA2NDQKICsKICAjZW5kaWYgLyogQkxPQ0tfSCAqLwogZGlmZiAtLWdpdCBhL2dk Yi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5jCi1pbmRleCA5ZjUwODcyLi5hNDI1NWQ3 IDEwMDY0NAoraW5kZXggODExY2RmYi4uYjBiZjMxNCAxMDA2NDQKIC0tLSBhL2dkYi9icmVha3Bv aW50LmMKICsrKyBiL2dkYi9icmVha3BvaW50LmMKLUBAIC02MCw2ICs2MCw3IEBACi0gI2luY2x1 ZGUgIndyYXBwZXIuaCIKK0BAIC02MSw2ICs2MSw3IEBACiAgI2luY2x1ZGUgInZhbHByaW50Lmgi CiAgI2luY2x1ZGUgImppdC5oIgorICNpbmNsdWRlICJ4bWwtc3lzY2FsbC5oIgogKyNpbmNsdWRl ICJwYXJzZXItZGVmcy5oIgogIAogIC8qIHJlYWRsaW5lIGluY2x1ZGUgZmlsZXMgKi8KICAjaW5j bHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKLUBAIC0xMTEsOCArMTEyLDYgQEAgc3RydWN0IGJy ZWFrcG9pbnQgKnNldF9yYXdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitA QCAtMTEyLDggKzExMyw2IEBAIHN0cnVjdCBicmVha3BvaW50ICpzZXRfcmF3X2JyZWFrcG9pbnQg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCQkJICAgICAgc3RydWN0IHN5bXRhYl9hbmRf bGluZSwKICAJCQkJCSAgICAgIGVudW0gYnB0eXBlKTsKICAKQEAgLTQ4Niw3ICs0ODMsNyBAQCBp bmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogIHN0YXRpYyB2b2lkIGJyZWFrcG9pbnRfYWRq dXN0bWVudF93YXJuaW5nIChDT1JFX0FERFIsIENPUkVfQUREUiwgaW50LCBpbnQpOwogIAogIHN0 YXRpYyBDT1JFX0FERFIgYWRqdXN0X2JyZWFrcG9pbnRfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsCi1AQCAtMzM0LDE0ICszMzMsMTQgQEAgc3RhdGljIGludCBleGVjdXRpbmdfc3Rh cnR1cDsKK0BAIC0zMzcsMTQgKzMzNiwxNCBAQCBzdGF0aWMgaW50IGV4ZWN1dGluZ19zdGFydHVw OwogIAkgICAgIEIgPyAoVE1QPUItPm5leHQsIDEpOiAwOwlcCiAgCSAgICAgQiA9IFRNUCkKICAK QEAgLTUwOCw3ICs1MDUsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogIAogIC8q IEl0ZXJhdG9yIGZvciB0cmFjZXBvaW50cyBvbmx5LiAgKi8KICAKLUBAIC0zNTMsMTAgKzM1Miwz MSBAQCBzdGF0aWMgaW50IGV4ZWN1dGluZ19zdGFydHVwOworQEAgLTM1NiwxMCArMzU1LDMxIEBA IHN0YXRpYyBpbnQgZXhlY3V0aW5nX3N0YXJ0dXA7CiAgCiAgc3RydWN0IGJyZWFrcG9pbnQgKmJy ZWFrcG9pbnRfY2hhaW47CiAgCkBAIC01NDIsNyArNTM5LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQy NTVkNyAxMDA2NDQKICAgICBtYXkgc3RpbGwgYmUgcmVwb3J0ZWQgYnkgYSB0YXJnZXQuICAqLwog IFZFQyhicF9sb2NhdGlvbl9wKSAqbW9yaWJ1bmRfbG9jYXRpb25zID0gTlVMTDsKICAKLUBAIC01 NzksNiArNTk5LDUzIEBAIGdldF9icmVha3BvaW50IChpbnQgbnVtKQorQEAgLTU4Miw2ICs2MDIs NTMgQEAgZ2V0X2JyZWFrcG9pbnQgKGludCBudW0pCiAgfQogIAogIAwKQEAgLTU5Niw3ICs1OTMs NyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogIC8qIGNvbmRpdGlvbiBOIEVYUCAt LSBzZXQgYnJlYWsgY29uZGl0aW9uIG9mIGJyZWFrcG9pbnQgTiB0byBFWFAuICAqLwogIAogIHN0 YXRpYyB2b2lkCi1AQCAtNTk5LDQyICs2NjYsNyBAQCBjb25kaXRpb25fY29tbWFuZCAoY2hhciAq YXJnLCBpbnQgZnJvbV90dHkpCitAQCAtNjAyLDQyICs2NjksNyBAQCBjb25kaXRpb25fY29tbWFu ZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCiAgICBBTExfQlJFQUtQT0lOVFMgKGIpCiAgICAg IGlmIChiLT5udW1iZXIgPT0gYm51bSkKICAgICAgICB7CkBAIC02NDAsNyArNjM3LDcgQEAgaW5k ZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAJcmV0dXJuOwogICAgICAgIH0KICAKLUBAIC03 MzIsMzUgKzc2NCw4OCBAQCBjb21tYW5kc19mcm9tX2NvbnRyb2xfY29tbWFuZCAoY2hhciAqYXJn LCBzdHJ1Y3QgY29tbWFuZF9saW5lICpjbWQpCitAQCAtNzM1LDM1ICs3NjcsODggQEAgY29tbWFu ZHNfZnJvbV9jb250cm9sX2NvbW1hbmQgKGNoYXIgKmFyZywgc3RydWN0IGNvbW1hbmRfbGluZSAq Y21kKQogICAgICAgIH0KICAgIGVycm9yIChfKCJObyBicmVha3BvaW50IG51bWJlciAlZC4iKSwg Ym51bSk7CiAgfQpAQCAtNzQyLDcgKzczOSw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAw NjQ0CiAgCiAgICAgIGlmIChicF9hZGRyICsgYnBfc2l6ZSA8PSBtZW1hZGRyKQogICAgICAgIC8q IFRoZSBicmVha3BvaW50IGlzIGVudGlyZWx5IGJlZm9yZSB0aGUgY2h1bmsgb2YgbWVtb3J5IHdl Ci1AQCAtOTA5LDcgKzk5NCw3IEBAIHVwZGF0ZV93YXRjaHBvaW50IChzdHJ1Y3QgYnJlYWtwb2lu dCAqYiwgaW50IHJlcGFyc2UpCitAQCAtOTEyLDcgKzk5Nyw3IEBAIHVwZGF0ZV93YXRjaHBvaW50 IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwgaW50IHJlcGFyc2UpCiAgICBzdHJ1Y3QgYnBfbG9jYXRp b24gKmxvYzsKICAgIGJwc3RhdCBiczsKICAKQEAgLTc1MSw3ICs3NDgsNyBAQCBpbmRleCA5ZjUw ODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgICAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbnMgd2lsbCBl dmVudHVhbGx5IGRlbGV0ZSB0aGVtIGFuZCByZW1vdmUKICAgICAgIGJyZWFrcG9pbnRzIGlmIG5l ZWRlZC4gICovCiAgICBiLT5sb2MgPSBOVUxMOwotQEAgLTEzNDQsNyArMTQyOSw3IEBAIHN0YXRp YyB2b2lkCitAQCAtMTM0Nyw3ICsxNDMyLDcgQEAgc3RhdGljIHZvaWQKICBpbnNlcnRfYnJlYWtw b2ludF9sb2NhdGlvbnMgKHZvaWQpCiAgewogICAgc3RydWN0IGJyZWFrcG9pbnQgKmJwdDsKQEAg LTc2MCw3ICs3NTcsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgaW50IGVy cm9yID0gMDsKICAgIGludCB2YWwgPSAwOwogICAgaW50IGRpc2FibGVkX2JyZWFrcyA9IDA7Ci1A QCAtMTM1Nyw3ICsxNDQyLDcgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25zICh2b2lkKQor QEAgLTEzNjAsNyArMTQ0NSw3IEBAIGluc2VydF9icmVha3BvaW50X2xvY2F0aW9ucyAodm9pZCkK ICAgICAgIHRoZXJlIHdhcyBhbiBlcnJvci4gICovCiAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKHRt cF9lcnJvcl9zdHJlYW0sICJXYXJuaW5nOlxuIik7CiAgCQpAQCAtNzY5LDcgKzc2Niw3IEBAIGlu ZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgIHsKICAgICAgICBpZiAoIXNob3VsZF9i ZV9pbnNlcnRlZCAoYikgfHwgYi0+aW5zZXJ0ZWQpCiAgCWNvbnRpbnVlOwotQEAgLTE0MzEsMTAg KzE1MTYsMTAgQEAgWW91IG1heSBoYXZlIHJlcXVlc3RlZCB0b28gbWFueSBoYXJkd2FyZSBicmVh a3BvaW50cy93YXRjaHBvaW50cy5cbiIpOworQEAgLTE0MzQsMTAgKzE1MTksMTAgQEAgWW91IG1h eSBoYXZlIHJlcXVlc3RlZCB0b28gbWFueSBoYXJkd2FyZSBicmVha3BvaW50cy93YXRjaHBvaW50 cy5cbiIpOwogIGludAogIHJlbW92ZV9icmVha3BvaW50cyAodm9pZCkKICB7CkBAIC03ODIsNyAr Nzc5LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgIHsKICAgICAgaWYgKGIt Pmluc2VydGVkKQogICAgICAgIHZhbCB8PSByZW1vdmVfYnJlYWtwb2ludCAoYiwgbWFya191bmlu c2VydGVkKTsKLUBAIC0xNDQ1LDEwICsxNTMwLDEwIEBAIHJlbW92ZV9icmVha3BvaW50cyAodm9p ZCkKK0BAIC0xNDQ4LDEwICsxNTMzLDEwIEBAIHJlbW92ZV9icmVha3BvaW50cyAodm9pZCkKICBp bnQKICByZW1vdmVfaHdfd2F0Y2hwb2ludHMgKHZvaWQpCiAgewpAQCAtNzk1LDcgKzc5Miw3IEBA IGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICB7CiAgICAgIGlmIChiLT5pbnNlcnRl ZCAmJiBiLT5sb2NfdHlwZSA9PSBicF9sb2NfaGFyZHdhcmVfd2F0Y2hwb2ludCkKICAgICAgICB2 YWwgfD0gcmVtb3ZlX2JyZWFrcG9pbnQgKGIsIG1hcmtfdW5pbnNlcnRlZCk7Ci1AQCAtMTQ1OSw3 ICsxNTQ0LDcgQEAgcmVtb3ZlX2h3X3dhdGNocG9pbnRzICh2b2lkKQorQEAgLTE0NjIsNyArMTU0 Nyw3IEBAIHJlbW92ZV9od193YXRjaHBvaW50cyAodm9pZCkKICBpbnQKICByZWF0dGFjaF9icmVh a3BvaW50cyAoaW50IHBpZCkKICB7CkBAIC04MDQsNyArODAxLDcgQEAgaW5kZXggOWY1MDg3Mi4u YTQyNTVkNyAxMDA2NDQKICAgIGludCB2YWw7CiAgICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWlu ID0gc2F2ZV9pbmZlcmlvcl9wdGlkICgpOwogICAgc3RydWN0IHVpX2ZpbGUgKnRtcF9lcnJvcl9z dHJlYW0gPSBtZW1fZmlsZW9wZW4gKCk7Ci1AQCAtMTQ2OCw3ICsxNTUzLDcgQEAgcmVhdHRhY2hf YnJlYWtwb2ludHMgKGludCBwaWQpCitAQCAtMTQ3MSw3ICsxNTU2LDcgQEAgcmVhdHRhY2hfYnJl YWtwb2ludHMgKGludCBwaWQpCiAgICBtYWtlX2NsZWFudXBfdWlfZmlsZV9kZWxldGUgKHRtcF9l cnJvcl9zdHJlYW0pOwogIAogICAgaW5mZXJpb3JfcHRpZCA9IHBpZF90b19wdGlkIChwaWQpOwpA QCAtODEzLDcgKzgxMCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICB7CiAg ICAgIGlmIChiLT5pbnNlcnRlZCkKICAgICAgICB7Ci1AQCAtMTU2NiwxMiArMTY1MSw0MiBAQCBj cmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAoY2hhciAqZnVuY19uYW1lKQorQEAgLTE1 NjksMTIgKzE2NTQsNDIgQEAgY3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKGNoYXIg KmZ1bmNfbmFtZSkKICAgIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoMSk7CiAgfQogIApA QCAtODU3LDcgKzg1NCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgCiAgICAv KiBXZSdyZSBhYm91dCB0byBkZWxldGUgYnJlYWtwb2ludHMgZnJvbSBHREIncyBsaXN0cy4gIElm IHRoZQogICAgICAgSU5TRVJURUQgZmxhZyBpcyB0cnVlLCBHREIgd2lsbCB0cnkgdG8gbGlmdCB0 aGUgYnJlYWtwb2ludHMgYnkKLUBAIC0xNTgxLDcgKzE2OTYsNyBAQCB1cGRhdGVfYnJlYWtwb2lu dHNfYWZ0ZXJfZXhlYyAodm9pZCkKK0BAIC0xNTg0LDcgKzE2OTksNyBAQCB1cGRhdGVfYnJlYWtw b2ludHNfYWZ0ZXJfZXhlYyAodm9pZCkKICAgICAgIGJyZWFrcG9pbnRzIG91dCBhcyBzb29uIGFz IGl0IGRldGVjdHMgYW4gZXhlYy4gIFdlIGRvbid0IGRvIHRoYXQKICAgICAgIGhlcmUgaW5zdGVh ZCwgYmVjYXVzZSB0aGVyZSBtYXkgYmUgb3RoZXIgYXR0ZW1wdHMgdG8gZGVsZXRlCiAgICAgICBi cmVha3BvaW50cyBhZnRlciBkZXRlY3RpbmcgYW4gZXhlYyBhbmQgYmVmb3JlIHJlYWNoaW5nIGhl cmUuICAqLwpAQCAtODY2LDcgKzg2Myw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0 CiAgICAgIGdkYl9hc3NlcnQgKCFicGxvYy0+aW5zZXJ0ZWQpOwogIAogICAgQUxMX0JSRUFLUE9J TlRTX1NBRkUgKGIsIHRlbXApCi1AQCAtMTYwMyw3ICsxNzE4LDcgQEAgdXBkYXRlX2JyZWFrcG9p bnRzX2FmdGVyX2V4ZWMgKHZvaWQpCitAQCAtMTYwNiw3ICsxNzIxLDcgQEAgdXBkYXRlX2JyZWFr cG9pbnRzX2FmdGVyX2V4ZWMgKHZvaWQpCiAgICAgIC8qIFRocmVhZCBldmVudCBicmVha3BvaW50 cyBtdXN0IGJlIHNldCBhbmV3IGFmdGVyIGFuIGV4ZWMoKSwKICAgICAgICAgYXMgbXVzdCBvdmVy bGF5IGV2ZW50IGFuZCBsb25nam1wIG1hc3RlciBicmVha3BvaW50cy4gICovCiAgICAgIGlmIChi LT50eXBlID09IGJwX3RocmVhZF9ldmVudCB8fCBiLT50eXBlID09IGJwX292ZXJsYXlfZXZlbnQK QEAgLTg3NSw3ICs4NzIsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgICAg IHsKICAJZGVsZXRlX2JyZWFrcG9pbnQgKGIpOwogIAljb250aW51ZTsKLUBAIC0xNjE4LDcgKzE3 MzMsOCBAQCB1cGRhdGVfYnJlYWtwb2ludHNfYWZ0ZXJfZXhlYyAodm9pZCkKK0BAIC0xNjIxLDcg KzE3MzYsOCBAQCB1cGRhdGVfYnJlYWtwb2ludHNfYWZ0ZXJfZXhlYyAodm9pZCkKICAKICAgICAg LyogTG9uZ2ptcCBhbmQgbG9uZ2ptcC1yZXN1bWUgYnJlYWtwb2ludHMgYXJlIGFsc28gbWVhbmlu Z2xlc3MKICAgICAgICAgYWZ0ZXIgYW4gZXhlYy4gICovCkBAIC04ODUsNyArODgyLDcgQEAgaW5k ZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgICAgICB7CiAgCWRlbGV0ZV9icmVha3BvaW50 IChiKTsKICAJY29udGludWU7Ci1AQCAtMTY3OSwxMiArMTc5NSwxMyBAQCB1cGRhdGVfYnJlYWtw b2ludHNfYWZ0ZXJfZXhlYyAodm9pZCkKK0BAIC0xNjgyLDEyICsxNzk4LDEzIEBAIHVwZGF0ZV9i cmVha3BvaW50c19hZnRlcl9leGVjICh2b2lkKQogICAgY3JlYXRlX2xvbmdqbXBfbWFzdGVyX2Jy ZWFrcG9pbnQgKCJfbG9uZ2ptcCIpOwogICAgY3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9p bnQgKCJzaWdsb25nam1wIik7CiAgICBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAo Il9zaWdsb25nam1wIik7CkBAIC05MDAsNyArODk3LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVk NyAxMDA2NDQKICAgIGludCB2YWwgPSAwOwogICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbiA9 IHNhdmVfaW5mZXJpb3JfcHRpZCAoKTsKICAKLUBAIC0xNjkzLDExICsxODEwLDEyIEBAIGRldGFj aF9icmVha3BvaW50cyAoaW50IHBpZCkKK0BAIC0xNjk2LDExICsxODEzLDEyIEBAIGRldGFjaF9i cmVha3BvaW50cyAoaW50IHBpZCkKICAKICAgIC8qIFNldCBpbmZlcmlvcl9wdGlkOyByZW1vdmVf YnJlYWtwb2ludCB1c2VzIHRoaXMgZ2xvYmFsLiAgKi8KICAgIGluZmVyaW9yX3B0aWQgPSBwaWRf dG9fcHRpZCAocGlkKTsKQEAgLTkxNCw3ICs5MTEsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3 IDEwMDY0NAogICAgZG9fY2xlYW51cHMgKG9sZF9jaGFpbik7CiAgICByZXR1cm4gdmFsOwogIH0K LUBAIC0xNzkwLDEyICsxOTA4LDE0IEBAIHJlbW92ZV9icmVha3BvaW50IChzdHJ1Y3QgYnBfbG9j YXRpb24gKmIsIGluc2VydGlvbl9zdGF0ZV90IGlzKQorQEAgLTE3OTMsMTIgKzE5MTEsMTQgQEAg cmVtb3ZlX2JyZWFrcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgaW5zZXJ0aW9uX3N0YXRl X3QgaXMpCiAgCXJldHVybiB2YWw7CiAgICAgICAgYi0+aW5zZXJ0ZWQgPSAoaXMgPT0gbWFya19p bnNlcnRlZCk7CiAgICAgIH0KQEAgLTkzMSw3ICs5MjgsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1 NWQ3IDEwMDY0NAogICAgICAgIHZhbCA9IHRhcmdldF9yZW1vdmVfd2F0Y2hwb2ludCAoYi0+YWRk cmVzcywgYi0+bGVuZ3RoLCAKICAJCQkJICAgICAgYi0+d2F0Y2hwb2ludF90eXBlKTsKICAKLUBA IC0xODI0LDkgKzE5NDQsOSBAQCByZW1vdmVfYnJlYWtwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9u ICpiLCBpbnNlcnRpb25fc3RhdGVfdCBpcykKK0BAIC0xODI3LDkgKzE5NDcsOSBAQCByZW1vdmVf YnJlYWtwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpiLCBpbnNlcnRpb25fc3RhdGVfdCBpcykK ICB2b2lkCiAgbWFya19icmVha3BvaW50c19vdXQgKHZvaWQpCiAgewpAQCAtOTQzLDcgKzk0MCw3 IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgIGJwdC0+aW5zZXJ0ZWQgPSAw OwogIH0KICAKLUBAIC0xODQ2LDcgKzE5NjYsNyBAQCB2b2lkCitAQCAtMTg0OSw3ICsxOTY5LDcg QEAgdm9pZAogIGJyZWFrcG9pbnRfaW5pdF9pbmZlcmlvciAoZW51bSBpbmZfY29udGV4dCBjb250 ZXh0KQogIHsKICAgIHN0cnVjdCBicmVha3BvaW50ICpiLCAqdGVtcDsKQEAgLTk1Miw3ICs5NDks NyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgaW50IGl4OwogIAogICAgLyog SWYgYnJlYWtwb2ludCBsb2NhdGlvbnMgYXJlIHNoYXJlZCBhY3Jvc3MgcHJvY2Vzc2VzLCB0aGVu IHRoZXJlJ3MKLUBAIC0xODU0LDcgKzE5NzQsNyBAQCBicmVha3BvaW50X2luaXRfaW5mZXJpb3Ig KGVudW0gaW5mX2NvbnRleHQgY29udGV4dCkKK0BAIC0xODU3LDcgKzE5NzcsNyBAQCBicmVha3Bv aW50X2luaXRfaW5mZXJpb3IgKGVudW0gaW5mX2NvbnRleHQgY29udGV4dCkKICAgIGlmIChnZGJh cmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoKSkKICAgICAgcmV0dXJu OwogIApAQCAtOTYxLDcgKzk1OCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAg ICAgIGlmIChicHQtPm93bmVyLT5lbmFibGVfc3RhdGUgIT0gYnBfcGVybWFuZW50KQogICAgICAg IGJwdC0+aW5zZXJ0ZWQgPSAwOwogIAotQEAgLTE5MTUsMTAgKzIwMzUsMTAgQEAgYnJlYWtwb2lu dF9pbml0X2luZmVyaW9yIChlbnVtIGluZl9jb250ZXh0IGNvbnRleHQpCitAQCAtMTkxOCwxMCAr MjAzOCwxMCBAQCBicmVha3BvaW50X2luaXRfaW5mZXJpb3IgKGVudW0gaW5mX2NvbnRleHQgY29u dGV4dCkKICBlbnVtIGJyZWFrcG9pbnRfaGVyZQogIGJyZWFrcG9pbnRfaGVyZV9wIChDT1JFX0FE RFIgcGMpCiAgewpAQCAtOTc0LDcgKzk3MSw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAw NjQ0CiAgICAgIHsKICAgICAgICBpZiAoYnB0LT5sb2NfdHlwZSAhPSBicF9sb2Nfc29mdHdhcmVf YnJlYWtwb2ludAogIAkgICYmIGJwdC0+bG9jX3R5cGUgIT0gYnBfbG9jX2hhcmR3YXJlX2JyZWFr cG9pbnQpCi1AQCAtMTk1OCwxNiArMjA3OCwxNiBAQCBtb3JpYnVuZF9icmVha3BvaW50X2hlcmVf cCAoQ09SRV9BRERSIHBjKQorQEAgLTE5NjEsMTYgKzIwODEsMTYgQEAgbW9yaWJ1bmRfYnJlYWtw b2ludF9oZXJlX3AgKENPUkVfQUREUiBwYykKICB9CiAgCiAgLyogUmV0dXJucyBub24temVybyBp ZiB0aGVyZSdzIGEgYnJlYWtwb2ludCBpbnNlcnRlZCBhdCBQQywgd2hpY2ggaXMKQEAgLTk5NCw3 ICs5OTEsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgICB7CiAgICAgICAg aWYgKGJwdC0+bG9jX3R5cGUgIT0gYnBfbG9jX3NvZnR3YXJlX2JyZWFrcG9pbnQKICAJICAmJiBi cHQtPmxvY190eXBlICE9IGJwX2xvY19oYXJkd2FyZV9icmVha3BvaW50KQotQEAgLTIwMDgsMTAg KzIxMjgsMTAgQEAgYnJlYWtwb2ludF9pbnNlcnRlZF9oZXJlX3AgKENPUkVfQUREUiBwYykKK0BA IC0yMDExLDEwICsyMTMxLDEwIEBAIGJyZWFrcG9pbnRfaW5zZXJ0ZWRfaGVyZV9wIChDT1JFX0FE RFIgcGMpCiAgaW50CiAgc29mdHdhcmVfYnJlYWtwb2ludF9pbnNlcnRlZF9oZXJlX3AgKENPUkVf QUREUiBwYykKICB7CkBAIC0xMDA3LDcgKzEwMDQsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3 IDEwMDY0NAogICAgICB7CiAgICAgICAgaWYgKGJwdC0+bG9jX3R5cGUgIT0gYnBfbG9jX3NvZnR3 YXJlX2JyZWFrcG9pbnQpCiAgCWNvbnRpbnVlOwotQEAgLTIwNDEsMTIgKzIxNjEsMTIgQEAgc29m dHdhcmVfYnJlYWtwb2ludF9pbnNlcnRlZF9oZXJlX3AgKENPUkVfQUREUiBwYykKK0BAIC0yMDQ0 LDEyICsyMTY0LDEyIEBAIHNvZnR3YXJlX2JyZWFrcG9pbnRfaW5zZXJ0ZWRfaGVyZV9wIChDT1JF X0FERFIgcGMpCiAgaW50CiAgYnJlYWtwb2ludF90aHJlYWRfbWF0Y2ggKENPUkVfQUREUiBwYywg cHRpZF90IHB0aWQpCiAgewpAQCAtMTAyMiw3ICsxMDE5LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQy NTVkNyAxMDA2NDQKICAgICAgewogICAgICAgIGlmIChicHQtPmxvY190eXBlICE9IGJwX2xvY19z b2Z0d2FyZV9icmVha3BvaW50CiAgCSAgJiYgYnB0LT5sb2NfdHlwZSAhPSBicF9sb2NfaGFyZHdh cmVfYnJlYWtwb2ludCkKLUBAIC0yNTAwLDYgKzI2MjAsMTIgQEAgcHJpbnRfaXRfdHlwaWNhbCAo YnBzdGF0IGJzKQorQEAgLTI1MDMsNiArMjYyMywxMiBAQCBwcmludF9pdF90eXBpY2FsIChicHN0 YXQgYnMpCiAgICAgICAgcmVzdWx0ID0gUFJJTlRfTk9USElORzsKICAgICAgICBicmVhazsKICAK QEAgLTEwMzUsNyArMTAzMiw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAg IGNhc2UgYnBfd2F0Y2hwb2ludDoKICAgICAgY2FzZSBicF9oYXJkd2FyZV93YXRjaHBvaW50Ogog ICAgICAgIGFubm90YXRlX3dhdGNocG9pbnQgKGItPm51bWJlcik7Ci1AQCAtMjU4Nyw2ICsyNzEz LDggQEAgcHJpbnRfaXRfdHlwaWNhbCAoYnBzdGF0IGJzKQorQEAgLTI1OTAsNiArMjcxNiw4IEBA IHByaW50X2l0X3R5cGljYWwgKGJwc3RhdCBicykKICAgICAgY2FzZSBicF9ub25lOgogICAgICBj YXNlIGJwX2xvbmdqbXA6CiAgICAgIGNhc2UgYnBfbG9uZ2ptcF9yZXN1bWU6CkBAIC0xMDQ0LDcg KzEwNDEsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgICBjYXNlIGJwX3N0 ZXBfcmVzdW1lOgogICAgICBjYXNlIGJwX3dhdGNocG9pbnRfc2NvcGU6CiAgICAgIGNhc2UgYnBf Y2FsbF9kdW1teToKLUBAIC0yOTcwLDggKzMwOTgsMTIgQEAgYnBzdGF0X2NoZWNrX2xvY2F0aW9u IChjb25zdCBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsLCBDT1JFX0FERFIgYnBfYWRkcikKK0BAIC0y OTczLDggKzMxMDEsMTIgQEAgYnBzdGF0X2NoZWNrX2xvY2F0aW9uIChjb25zdCBzdHJ1Y3QgYnBf bG9jYXRpb24gKmJsLCBDT1JFX0FERFIgYnBfYWRkcikKICAKICAvKiBJZiBCUyByZWZlcnMgdG8g YSB3YXRjaHBvaW50LCBkZXRlcm1pbmUgaWYgdGhlIHdhdGNoZWQgdmFsdWVzCiAgICAgaGFzIGFj dHVhbGx5IGNoYW5nZWQsIGFuZCB3ZSBzaG91bGQgc3RvcC4gIElmIG5vdCwgc2V0IEJTLT5zdG9w CkBAIC0xMDU5LDcgKzEwNTYsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogIGJw c3RhdF9jaGVja193YXRjaHBvaW50IChicHN0YXQgYnMpCiAgewogICAgY29uc3Qgc3RydWN0IGJw X2xvY2F0aW9uICpibCA9IGJzLT5icmVha3BvaW50X2F0OwotQEAgLTMwNjAsOCArMzE5MiwxMCBA QCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQorQEAgLTMwNjMsOCArMzE5NSwx MCBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQogIAkgICAgIGFueXRoaW5n IGZvciB0aGlzIHdhdGNocG9pbnQuICAqLwogIAkgIGJzLT5wcmludF9pdCA9IHByaW50X2l0X25v b3A7CiAgCSAgYnMtPnN0b3AgPSAwOwpAQCAtMTA3MCw3ICsxMDY3LDcgQEAgaW5kZXggOWY1MDg3 Mi4uYTQyNTVkNyAxMDA2NDQKICB9CiAgCiAgCi1AQCAtMzE1NCwxNyArMzI4OCwxOSBAQCBicHN0 YXQKK0BAIC0zMTU3LDE3ICszMjkxLDE5IEBAIGJwc3RhdAogIGJwc3RhdF9zdG9wX3N0YXR1cyAo Q09SRV9BRERSIGJwX2FkZHIsIHB0aWRfdCBwdGlkKQogIHsKICAgIHN0cnVjdCBicmVha3BvaW50 ICpiID0gTlVMTDsKQEAgLTEwOTMsNyArMTA5MCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcg MTAwNjQ0CiAgICAgIGIgPSBibC0+b3duZXI7CiAgICAgIGdkYl9hc3NlcnQgKGIpOwogICAgICBp ZiAoIWJyZWFrcG9pbnRfZW5hYmxlZCAoYikgJiYgYi0+ZW5hYmxlX3N0YXRlICE9IGJwX3Blcm1h bmVudCkKLUBAIC0zMTg1LDYgKzMzMjEsNyBAQCBicHN0YXRfc3RvcF9zdGF0dXMgKENPUkVfQURE UiBicF9hZGRyLCBwdGlkX3QgcHRpZCkKK0BAIC0zMTg4LDYgKzMzMjQsNyBAQCBicHN0YXRfc3Rv cF9zdGF0dXMgKENPUkVfQUREUiBicF9hZGRyLCBwdGlkX3QgcHRpZCkKICAgICAgLyogQ29tZSBo ZXJlIGlmIGl0J3MgYSB3YXRjaHBvaW50LCBvciBpZiB0aGUgYnJlYWsgYWRkcmVzcyBtYXRjaGVz ICovCiAgCiAgICAgIGJzID0gYnBzdGF0X2FsbG9jIChibCwgYnMpOwkvKiBBbGxvYyBhIGJwc3Rh dCB0byBleHBsYWluIHN0b3AgKi8KQEAgLTExMDEsNyArMTA5OCw3IEBAIGluZGV4IDlmNTA4NzIu LmE0MjU1ZDcgMTAwNjQ0CiAgCiAgICAgIC8qIEFzc3VtZSB3ZSBzdG9wLiAgU2hvdWxkIHdlIGZp bmQgd2F0Y2hwb2ludCB0aGF0IGlzIG5vdCBhY3R1YWxseQogICAgICAgICB0cmlnZ2VyZWQsIG9y IGlmIGNvbmRpdGlvbiBvZiBicmVha3BvaW50IGlzIGZhbHNlLCB3ZSdsbCByZXNldAotQEAgLTMx OTIsMTIgKzMzMjksMjEgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChDT1JFX0FERFIgYnBfYWRkciwg cHRpZF90IHB0aWQpCitAQCAtMzE5NSwxMiArMzMzMiwyMSBAQCBicHN0YXRfc3RvcF9zdGF0dXMg KENPUkVfQUREUiBicF9hZGRyLCBwdGlkX3QgcHRpZCkKICAgICAgYnMtPnN0b3AgPSAxOwogICAg ICBicy0+cHJpbnQgPSAxOwogIApAQCAtMTEyNyw3ICsxMTI0LDcgQEAgaW5kZXggOWY1MDg3Mi4u YTQyNTVkNyAxMDA2NDQKICAgICAgICAvKiBXZSBkbyBub3Qgc3RvcCBmb3IgdGhlc2UuICAqLwog ICAgICAgIGJzLT5zdG9wID0gMDsKICAgICAgZWxzZQotQEAgLTMyMDUsMTQgKzMzNTEsMTUgQEAg YnBzdGF0X3N0b3Bfc3RhdHVzIChDT1JFX0FERFIgYnBfYWRkciwgcHRpZF90IHB0aWQpCitAQCAt MzIwOCwxNCArMzM1NCwxNSBAQCBicHN0YXRfc3RvcF9zdGF0dXMgKENPUkVfQUREUiBicF9hZGRy LCBwdGlkX3QgcHRpZCkKICAgIAogICAgICBpZiAoYnMtPnN0b3ApCiAgICAgICAgewpAQCAtMTE0 NSw3ICsxMTQyLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAJICB9CiAgCWlm IChiLT5zaWxlbnQpCiAgCSAgYnMtPnByaW50ID0gMDsKLUBAIC0zMjMyLDYgKzMzNzksMTAgQEAg YnBzdGF0X3N0b3Bfc3RhdHVzIChDT1JFX0FERFIgYnBfYWRkciwgcHRpZF90IHB0aWQpCitAQCAt MzIzNSw2ICszMzgyLDEwIEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9BRERSIGJwX2FkZHIs IHB0aWRfdCBwdGlkKQogICAgICAgIGJzLT5wcmludF9pdCA9IHByaW50X2l0X25vb3A7CiAgICB9 CiAgCkBAIC0xMTU2LDcgKzExNTMsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAog ICAgZm9yIChpeCA9IDA7IFZFQ19pdGVyYXRlIChicF9sb2NhdGlvbl9wLCBtb3JpYnVuZF9sb2Nh dGlvbnMsIGl4LCBsb2MpOyArK2l4KQogICAgICB7CiAgICAgICAgaWYgKGxvYy0+YWRkcmVzcyA9 PSBicF9hZGRyKQotQEAgLTM0MDksNiArMzU2MCw3IEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMp CitAQCAtMzQxMiw2ICszNTYzLDcgQEAgYnBzdGF0X3doYXQgKGJwc3RhdCBicykKICAgIHN0cnVj dCBicHN0YXRfd2hhdCByZXR2YWw7CiAgCiAgICByZXR2YWwuY2FsbF9kdW1teSA9IDA7CkBAIC0x MTY0LDcgKzExNjEsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgZm9yICg7 IGJzICE9IE5VTEw7IGJzID0gYnMtPm5leHQpCiAgICAgIHsKICAgICAgICBlbnVtIGNsYXNzIGJz X2NsYXNzID0gbm9fZWZmZWN0OwotQEAgLTM0NTUsMTAgKzM2MDcsMTUgQEAgYnBzdGF0X3doYXQg KGJwc3RhdCBicykKK0BAIC0zNDU4LDEwICszNjEwLDE1IEBAIGJwc3RhdF93aGF0IChicHN0YXQg YnMpCiAgCSAgICBic19jbGFzcyA9IG5vX2VmZmVjdDsKICAJICBicmVhazsKICAJY2FzZSBicF9s b25nam1wOgpAQCAtMTE4MCw3ICsxMTc3LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2 NDQKICAJICBicmVhazsKICAJY2FzZSBicF9zdGVwX3Jlc3VtZToKICAJICBpZiAoYnMtPnN0b3Ap Ci1AQCAtMzQ4MSw2ICszNjM4LDcgQEAgYnBzdGF0X3doYXQgKGJwc3RhdCBicykKK0BAIC0zNDg0 LDYgKzM2NDEsNyBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQogIAljYXNlIGJwX3RocmVhZF9l dmVudDoKICAJY2FzZSBicF9vdmVybGF5X2V2ZW50OgogIAljYXNlIGJwX2xvbmdqbXBfbWFzdGVy OgpAQCAtMTE4OCw3ICsxMTg1LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAJ ICBic19jbGFzcyA9IGJwX25vc3RvcDsKICAJICBicmVhazsKICAJY2FzZSBicF9jYXRjaHBvaW50 OgotQEAgLTM2MDIsNiArMzc2MCw4IEBAIHByaW50X29uZV9icmVha3BvaW50X2xvY2F0aW9uIChz dHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC0zNjA1LDYgKzM3NjMsOCBAQCBwcmludF9vbmVfYnJl YWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgICAgIHticF9hY2Nlc3Nf d2F0Y2hwb2ludCwgImFjYyB3YXRjaHBvaW50In0sCiAgICAgIHticF9sb25nam1wLCAibG9uZ2pt cCJ9LAogICAgICB7YnBfbG9uZ2ptcF9yZXN1bWUsICJsb25nam1wIHJlc3VtZSJ9LApAQCAtMTE5 Nyw3ICsxMTk0LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgICAge2JwX3N0 ZXBfcmVzdW1lLCAic3RlcCByZXN1bWUifSwKICAgICAge2JwX3dhdGNocG9pbnRfc2NvcGUsICJ3 YXRjaHBvaW50IHNjb3BlIn0sCiAgICAgIHticF9jYWxsX2R1bW15LCAiY2FsbCBkdW1teSJ9LAot QEAgLTM2MDksNiArMzc2OSw3IEBAIHByaW50X29uZV9icmVha3BvaW50X2xvY2F0aW9uIChzdHJ1 Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC0zNjEyLDYgKzM3NzIsNyBAQCBwcmludF9vbmVfYnJlYWtw b2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgICAgIHticF90aHJlYWRfZXZl bnQsICJ0aHJlYWQgZXZlbnRzIn0sCiAgICAgIHticF9vdmVybGF5X2V2ZW50LCAib3ZlcmxheSBl dmVudHMifSwKICAgICAge2JwX2xvbmdqbXBfbWFzdGVyLCAibG9uZ2ptcCBtYXN0ZXIifSwKQEAg LTEyMDUsNyArMTIwMiw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgIHti cF9jYXRjaHBvaW50LCAiY2F0Y2hwb2ludCJ9LAogICAgICB7YnBfdHJhY2Vwb2ludCwgInRyYWNl cG9pbnQifSwKICAgICAge2JwX2ppdF9ldmVudCwgImppdCBldmVudHMifSwKLUBAIC0zNzMyLDYg KzM4OTMsOCBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9p bnQgKmIsCitAQCAtMzczNSw2ICszODk2LDggQEAgcHJpbnRfb25lX2JyZWFrcG9pbnRfbG9jYXRp b24gKHN0cnVjdCBicmVha3BvaW50ICpiLAogICAgICAgIGNhc2UgYnBfZmluaXNoOgogICAgICAg IGNhc2UgYnBfbG9uZ2ptcDoKICAgICAgICBjYXNlIGJwX2xvbmdqbXBfcmVzdW1lOgpAQCAtMTIx NCw3ICsxMjExLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgICAgICBjYXNl IGJwX3N0ZXBfcmVzdW1lOgogICAgICAgIGNhc2UgYnBfd2F0Y2hwb2ludF9zY29wZToKICAgICAg ICBjYXNlIGJwX2NhbGxfZHVtbXk6Ci1AQCAtMzczOSw2ICszOTAyLDcgQEAgcHJpbnRfb25lX2Jy ZWFrcG9pbnRfbG9jYXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiLAorQEAgLTM3NDIsNiArMzkw NSw3IEBAIHByaW50X29uZV9icmVha3BvaW50X2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAq YiwKICAgICAgICBjYXNlIGJwX3RocmVhZF9ldmVudDoKICAgICAgICBjYXNlIGJwX292ZXJsYXlf ZXZlbnQ6CiAgICAgICAgY2FzZSBicF9sb25nam1wX21hc3RlcjoKQEAgLTEyMjIsNyArMTIxOSw3 IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgICAgY2FzZSBicF90cmFjZXBv aW50OgogICAgICAgIGNhc2UgYnBfaml0X2V2ZW50OgogIAlpZiAob3B0cy5hZGRyZXNzcHJpbnQp Ci1AQCAtNDE5NCw5ICs0MzU4LDggQEAgc2V0X2RlZmF1bHRfYnJlYWtwb2ludCAoaW50IHZhbGlk LCBDT1JFX0FERFIgYWRkciwgc3RydWN0IHN5bXRhYiAqc3ltdGFiLAorQEAgLTQxOTcsOSArNDM2 MSw4IEBAIHNldF9kZWZhdWx0X2JyZWFrcG9pbnQgKGludCB2YWxpZCwgQ09SRV9BRERSIGFkZHIs IHN0cnVjdCBzeW10YWIgKnN5bXRhYiwKICAgICAob3IgdXNlIGl0IGZvciBhbnkgb3RoZXIgcHVy cG9zZSBlaXRoZXIpLgogIAogICAgIE1vcmUgc3BlY2lmaWNhbGx5LCBlYWNoIG9mIHRoZSBmb2xs b3dpbmcgYnJlYWtwb2ludCB0eXBlcyB3aWxsIGFsd2F5cwpAQCAtMTIzNCw3ICsxMjMxLDcgQEAg aW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAKICAgICAgICBicF93YXRjaHBvaW50CiAg ICAgICAgYnBfaGFyZHdhcmVfd2F0Y2hwb2ludAotQEAgLTQyMTYsODggKzQzNzksNiBAQCBicmVh a3BvaW50X2FkZHJlc3NfaXNfbWVhbmluZ2Z1bCAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKK0BA IC00MjE5LDg4ICs0MzgyLDYgQEAgYnJlYWtwb2ludF9hZGRyZXNzX2lzX21lYW5pbmdmdWwgKHN0 cnVjdCBicmVha3BvaW50ICpicHQpCiAgCSAgJiYgdHlwZSAhPSBicF9jYXRjaHBvaW50KTsKICB9 CiAgCkBAIC0xMzIzLDcgKzEzMjAsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAog IHN0YXRpYyB2b2lkCiAgYnJlYWtwb2ludF9hZGp1c3RtZW50X3dhcm5pbmcgKENPUkVfQUREUiBm cm9tX2FkZHIsIENPUkVfQUREUiB0b19hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgYm51bSwgaW50IGhhdmVfYm51bSkKLUBAIC00Mzc5LDYgKzQ0NjAsOCBAQCBhbGxv Y2F0ZV9icF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKK0BAIC00MzgyLDYgKzQ0 NjMsOCBAQCBhbGxvY2F0ZV9icF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKICAg ICAgY2FzZSBicF9maW5pc2g6CiAgICAgIGNhc2UgYnBfbG9uZ2ptcDoKICAgICAgY2FzZSBicF9s b25nam1wX3Jlc3VtZToKQEAgLTEzMzIsNyArMTMyOSw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1 ZDcgMTAwNjQ0CiAgICAgIGNhc2UgYnBfc3RlcF9yZXN1bWU6CiAgICAgIGNhc2UgYnBfd2F0Y2hw b2ludF9zY29wZToKICAgICAgY2FzZSBicF9jYWxsX2R1bW15OgotQEAgLTQzODcsNiArNDQ3MCw3 IEBAIGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQorQEAgLTQz OTAsNiArNDQ3Myw3IEBAIGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAq YnB0KQogICAgICBjYXNlIGJwX292ZXJsYXlfZXZlbnQ6CiAgICAgIGNhc2UgYnBfaml0X2V2ZW50 OgogICAgICBjYXNlIGJwX2xvbmdqbXBfbWFzdGVyOgpAQCAtMTM0MCw3ICsxMzM3LDcgQEAgaW5k ZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgICAgICBsb2MtPmxvY190eXBlID0gYnBfbG9j X3NvZnR3YXJlX2JyZWFrcG9pbnQ7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgYnBfaGFyZHdh cmVfYnJlYWtwb2ludDoKLUBAIC00NTY0LDggKzQ2NDgsNyBAQCBtYWtlX2JyZWFrcG9pbnRfcGVy bWFuZW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKK0BAIC00NTY4LDggKzQ2NTIsNyBAQCBtYWtl X2JyZWFrcG9pbnRfcGVybWFuZW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKICB9CiAgCiAgLyog Q2FsbCB0aGlzIHJvdXRpbmUgd2hlbiBzdGVwcGluZyBhbmQgbmV4dGluZyB0byBlbmFibGUgYSBi cmVha3BvaW50CkBAIC0xMzUwLDcgKzEzNDcsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEw MDY0NAogIAogIHZvaWQKICBzZXRfbG9uZ2ptcF9icmVha3BvaW50IChpbnQgdGhyZWFkKQotQEAg LTQ1NzcsMTAgKzQ2NjAsMTAgQEAgc2V0X2xvbmdqbXBfYnJlYWtwb2ludCAoaW50IHRocmVhZCkK K0BAIC00NTgxLDEwICs0NjY0LDEwIEBAIHNldF9sb25nam1wX2JyZWFrcG9pbnQgKGludCB0aHJl YWQpCiAgICAgICBsb25nam1wICJtYXN0ZXIiIGJyZWFrcG9pbnRzLiAgSGVyZSwgd2Ugc2ltcGx5 IGNyZWF0ZSBtb21lbnRhcnkKICAgICAgIGNsb25lcyBvZiB0aG9zZSBhbmQgZW5hYmxlIHRoZW0g Zm9yIHRoZSByZXF1ZXN0ZWQgdGhyZWFkLiAgKi8KICAgIEFMTF9CUkVBS1BPSU5UU19TQUZFIChi LCB0ZW1wKQpAQCAtMTM2Myw3ICsxMzYwLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2 NDQKICAJY2xvbmUtPnRocmVhZCA9IHRocmVhZDsKICAgICAgICB9CiAgfQotQEAgLTQ1OTIsNyAr NDY3NSw3IEBAIGRlbGV0ZV9sb25nam1wX2JyZWFrcG9pbnQgKGludCB0aHJlYWQpCitAQCAtNDU5 Niw3ICs0Njc5LDcgQEAgZGVsZXRlX2xvbmdqbXBfYnJlYWtwb2ludCAoaW50IHRocmVhZCkKICAg IHN0cnVjdCBicmVha3BvaW50ICpiLCAqdGVtcDsKICAKICAgIEFMTF9CUkVBS1BPSU5UU19TQUZF IChiLCB0ZW1wKQpAQCAtMTM3Miw3ICsxMzY5LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAx MDA2NDQKICAgICAgICB7CiAgCWlmIChiLT50aHJlYWQgPT0gdGhyZWFkKQogIAkgIGRlbGV0ZV9i cmVha3BvaW50IChiKTsKLUBAIC00NzA2LDkgKzQ3ODksOSBAQCBjcmVhdGVfc29saWJfZXZlbnRf YnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBhZGRyZXNzKQor QEAgLTQ3MTAsOSArNDc5Myw5IEBAIGNyZWF0ZV9zb2xpYl9ldmVudF9icmVha3BvaW50IChzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIGFkZHJlc3MpCiAgdm9pZAogIGRpc2FibGVf YnJlYWtwb2ludHNfaW5fc2hsaWJzICh2b2lkKQogIHsKQEAgLTEzODQsNyArMTM4MSw3IEBAIGlu ZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICB7CiAgICAgIHN0cnVjdCBicmVha3BvaW50 ICpiID0gbG9jLT5vd25lcjsKICAgICAgLyogV2UgYXBwbHkgdGhlIGNoZWNrIHRvIGFsbCBicmVh a3BvaW50cywgaW5jbHVkaW5nIGRpc2FibGVkCi1AQCAtNDczOCw3ICs0ODIxLDcgQEAgZGlzYWJs ZV9icmVha3BvaW50c19pbl9zaGxpYnMgKHZvaWQpCitAQCAtNDc0Miw3ICs0ODI1LDcgQEAgZGlz YWJsZV9icmVha3BvaW50c19pbl9zaGxpYnMgKHZvaWQpCiAgc3RhdGljIHZvaWQKICBkaXNhYmxl X2JyZWFrcG9pbnRzX2luX3VubG9hZGVkX3NobGliIChzdHJ1Y3Qgc29fbGlzdCAqc29saWIpCiAg ewpAQCAtMTM5Myw3ICsxMzkwLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAg IGludCBkaXNhYmxlZF9zaGxpYl9icmVha3MgPSAwOwogIAogICAgLyogU3VuT1MgYS5vdXQgc2hh cmVkIGxpYnJhcmllcyBhcmUgYWx3YXlzIG1hcHBlZCwgc28gZG8gbm90Ci1AQCAtNDc0OSw3ICs0 ODMyLDcgQEAgZGlzYWJsZV9icmVha3BvaW50c19pbl91bmxvYWRlZF9zaGxpYiAoc3RydWN0IHNv X2xpc3QgKnNvbGliKQorQEAgLTQ3NTMsNyArNDgzNiw3IEBAIGRpc2FibGVfYnJlYWtwb2ludHNf aW5fdW5sb2FkZWRfc2hsaWIgKHN0cnVjdCBzb19saXN0ICpzb2xpYikKICAgICAgICAmJiBiZmRf Z2V0X2ZsYXZvdXIgKGV4ZWNfYmZkKSA9PSBiZmRfdGFyZ2V0X2FvdXRfZmxhdm91cikKICAgICAg cmV0dXJuOwogIApAQCAtMTQwMiw3ICsxMzk5LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAx MDA2NDQKICAgIHsKICAgICAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBsb2MtPm93bmVyOwogICAg ICBpZiAoKGxvYy0+bG9jX3R5cGUgPT0gYnBfbG9jX2hhcmR3YXJlX2JyZWFrcG9pbnQKLUBAIC01 MzU0LDYgKzU0MzcsOCBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKK0BAIC01NjQ4 LDYgKzU3MzEsOCBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKICAgICAgICBjYXNl IGJwX2ZpbmlzaDoKICAgICAgICBjYXNlIGJwX2xvbmdqbXA6CiAgICAgICAgY2FzZSBicF9sb25n am1wX3Jlc3VtZToKQEAgLTE0MTEsNyArMTQwOCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcg MTAwNjQ0CiAgICAgICAgY2FzZSBicF9zdGVwX3Jlc3VtZToKICAgICAgICBjYXNlIGJwX2NhbGxf ZHVtbXk6CiAgICAgICAgY2FzZSBicF93YXRjaHBvaW50X3Njb3BlOgotQEAgLTUzNjIsNiArNTQ0 Nyw3IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQorQEAgLTU2NTYsNiArNTc0MSw3 IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQogICAgICAgIGNhc2UgYnBfb3Zlcmxh eV9ldmVudDoKICAgICAgICBjYXNlIGJwX2ppdF9ldmVudDoKICAgICAgICBjYXNlIGJwX2xvbmdq bXBfbWFzdGVyOgpAQCAtMTQxOSw3ICsxNDE2LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAx MDA2NDQKICAJYnJlYWs7CiAgICAgICAgfQogIAotQEAgLTY2NjQsNiArNjc1MCw3IEBAIHN0cnVj dCB1bnRpbF9icmVha19jb21tYW5kX2NvbnRpbnVhdGlvbl9hcmdzCitAQCAtNjk1OCw2ICs3MDQ0 LDcgQEAgc3RydWN0IHVudGlsX2JyZWFrX2NvbW1hbmRfY29udGludWF0aW9uX2FyZ3MKICB7CiAg ICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnJlYWtwb2ludDsKICAgIHN0cnVjdCBicmVha3BvaW50ICpi cmVha3BvaW50MjsKQEAgLTE0MjcsNyArMTQyNCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcg MTAwNjQ0CiAgfTsKICAKICAvKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBmZXRjaF9pbmZl cmlvcl9ldmVudCB2aWEgdGhlCi1AQCAtNjY3OCw2ICs2NzY1LDcgQEAgdW50aWxfYnJlYWtfY29t bWFuZF9jb250aW51YXRpb24gKHZvaWQgKmFyZykKK0BAIC02OTcyLDYgKzcwNTksNyBAQCB1bnRp bF9icmVha19jb21tYW5kX2NvbnRpbnVhdGlvbiAodm9pZCAqYXJnKQogICAgZGVsZXRlX2JyZWFr cG9pbnQgKGEtPmJyZWFrcG9pbnQpOwogICAgaWYgKGEtPmJyZWFrcG9pbnQyKQogICAgICBkZWxl dGVfYnJlYWtwb2ludCAoYS0+YnJlYWtwb2ludDIpOwpAQCAtMTQzNSw3ICsxNDMyLDcgQEAgaW5k ZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICB9CiAgCiAgdm9pZAotQEAgLTY2ODksNiArNjc3 Nyw4IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5LCBpbnQg YW55d2hlcmUpCitAQCAtNjk4Myw2ICs3MDcxLDggQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hh ciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAgIHN0cnVjdCBicmVha3BvaW50 ICpicmVha3BvaW50OwogICAgc3RydWN0IGJyZWFrcG9pbnQgKmJyZWFrcG9pbnQyID0gTlVMTDsK ICAgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW47CkBAIC0xNDQ0LDcgKzE0NDEsNyBAQCBpbmRl eCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogIAogICAgY2xlYXJfcHJvY2VlZF9zdGF0dXMgKCk7 CiAgCi1AQCAtNjcyNyw2ICs2ODE3LDkgQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hhciAqYXJn LCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKK0BAIC03MDIxLDYgKzcxMTEsOSBAQCB1bnRp bF9icmVha19jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSwgaW50IGFueXdoZXJlKQog IAogICAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwX2RlbGV0ZV9icmVha3BvaW50IChicmVha3Bv aW50KTsKICAKQEAgLTE0NTQsNyArMTQ1MSw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAw NjQ0CiAgICAvKiBLZWVwIHdpdGhpbiB0aGUgY3VycmVudCBmcmFtZSwgb3IgaW4gZnJhbWVzIGNh bGxlZCBieSB0aGUgY3VycmVudAogICAgICAgb25lLiAgKi8KICAKLUBAIC02NzM5LDYgKzY4MzIs MTAgQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBh bnl3aGVyZSkKK0BAIC03MDMzLDYgKzcxMjYsMTAgQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hh ciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAJCQkJCSAgICAgIGZyYW1lX3Vu d2luZF9jYWxsZXJfaWQgKGZyYW1lKSwKICAJCQkJCSAgICAgIGJwX3VudGlsKTsKICAgICAgICBt YWtlX2NsZWFudXBfZGVsZXRlX2JyZWFrcG9pbnQgKGJyZWFrcG9pbnQyKTsKQEAgLTE0NjUsNyAr MTQ2Miw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgIH0KICAKICAgIHBy b2NlZWQgKC0xLCBUQVJHRVRfU0lHTkFMX0RFRkFVTFQsIDApOwotQEAgLTY3NTUsNiArNjg1Miw3 IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5LCBpbnQgYW55 d2hlcmUpCitAQCAtNzA0OSw2ICs3MTQ2LDcgQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hhciAq YXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAKICAgICAgICBhcmdzLT5icmVha3Bv aW50ID0gYnJlYWtwb2ludDsKICAgICAgICBhcmdzLT5icmVha3BvaW50MiA9IGJyZWFrcG9pbnQy OwpAQCAtMTQ3Myw3ICsxNDcwLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAK ICAgICAgICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2hhaW4pOwogICAgICAgIGFkZF9jb250aW51 YXRpb24gKGluZmVyaW9yX3RocmVhZCAoKSwKLUBAIC03MzU3LDYgKzc0NTUsODIgQEAgZG9fdmVj X2ZyZWUgKHZvaWQgKnApCitAQCAtNzc1OCw2ICs3ODU2LDgyIEBAIGRvX3ZlY19mcmVlICh2b2lk ICpwKQogICAgICBWRUNfZnJlZSAoYnBfbG9jYXRpb25fcCwgKnZlYyk7CiAgfQogIApAQCAtMTU1 Niw3ICsxNTUzLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAvKiBJZiBTSE9V TERfSU5TRVJUIGlzIGZhbHNlLCBkbyBub3QgaW5zZXJ0IGFueSBicmVha3BvaW50IGxvY2F0aW9u cwogICAgIGludG8gdGhlIGluZmVyaW9yLCBvbmx5IHJlbW92ZSBhbHJlYWR5LWluc2VydGVkIGxv Y2F0aW9ucyB0aGF0IG5vCiAgICAgbG9uZ2VyIHNob3VsZCBiZSBpbnNlcnRlZC4gIEZ1bmN0aW9u cyB0aGF0IGRlbGV0ZSBhIGJyZWFrcG9pbnQgb3IKLUBAIC03Mzc2LDQ5ICs3NTUwLDY2IEBAIHN0 YXRpYyB2b2lkCitAQCAtNzc3Nyw0OSArNzk1MSw2NiBAQCBzdGF0aWMgdm9pZAogIHVwZGF0ZV9n bG9iYWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCiAgewogICAgc3RydWN0IGJy ZWFrcG9pbnQgKmI7CkBAIC0xNjUyLDcgKzE2NDksNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3 IDEwMDY0NAogIAogICAgICAgIC8qIElmIHRoaXMgbG9jYXRpb24gaXMgbm8gbG9uZ2VyIHByZXNl bnQsIGFuZCBpbnNlcnRlZCwgbG9vayBpZiB0aGVyZSdzCiAgCSBtYXliZSBhIG5ldyBsb2NhdGlv biBhdCB0aGUgc2FtZSBhZGRyZXNzLiAgSWYgc28sIG1hcmsgdGhhdCBvbmUgCi1AQCAtNzQyNiwx MSArNzYxNywxMSBAQCB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9uX2xpc3QgKGludCBzaG91bGRfaW5z ZXJ0KQorQEAgLTc4MjcsMTEgKzgwMTgsMTEgQEAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0 IChpbnQgc2hvdWxkX2luc2VydCkKICAJIGRvbid0IGhhdmUgYSB0aW1lIHdpbmRvdyB3aGVyZSBh IGJyZWFrcG9pbnQgYXQgY2VydGFpbiBsb2NhdGlvbiBpcyBub3QKICAJIGluc2VydGVkLiAgKi8K ICAKQEAgLTE2NjYsNyArMTY2Myw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAg CSAgICB7CiAgCSAgICAgIC8qIFRoZSBsb2NhdGlvbiBpcyBzdGlsbCBwcmVzZW50IGluIHRoZSBs b2NhdGlvbiBsaXN0LCBhbmQgc3RpbGwKICAJCSBzaG91bGQgYmUgaW5zZXJ0ZWQuICBEb24ndCBk byBhbnl0aGluZy4gICovCi1AQCAtNzQ0MSwzNyArNzYzMiw0NiBAQCB1cGRhdGVfZ2xvYmFsX2xv Y2F0aW9uX2xpc3QgKGludCBzaG91bGRfaW5zZXJ0KQorQEAgLTc4NDIsMzcgKzgwMzMsNDYgQEAg dXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkKICAJICAgICAg LyogVGhlIGxvY2F0aW9uIGlzIGVpdGhlciBubyBsb25nZXIgcHJlc2VudCwgb3IgZ290IGRpc2Fi bGVkLgogIAkJIFNlZSBpZiB0aGVyZSdzIGFub3RoZXIgbG9jYXRpb24gYXQgdGhlIHNhbWUgYWRk cmVzcywgaW4gd2hpY2ggCiAgCQkgY2FzZSB3ZSBkb24ndCBuZWVkIHRvIHJlbW92ZSB0aGlzIG9u ZSBmcm9tIHRoZSB0YXJnZXQuICAqLwpAQCAtMTczMSw3ICsxNzI4LDcgQEAgaW5kZXggOWY1MDg3 Mi4uYTQyNTVkNyAxMDA2NDQKICAJCX0KICAJICAgICAgcmVtb3ZlZCA9IDE7CiAgCSAgICB9Ci1A QCAtNzQ5MywxOSArNzY5Myw1OSBAQCB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9uX2xpc3QgKGludCBz aG91bGRfaW5zZXJ0KQorQEAgLTc4OTQsMTkgKzgwOTQsNTkgQEAgdXBkYXRlX2dsb2JhbF9sb2Nh dGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkKICAJCSBsb25nZXIgbmVlZCB0byBrZWVwIHRo aXMgYnJlYWtwb2ludC4gIFRoaXMgaXMganVzdCBhCiAgCQkgaGV1cmlzdGljLCBidXQgaWYgaXQn cyB3cm9uZywgd2UnbGwgcmVwb3J0IHVuZXhwZWN0ZWQgU0lHVFJBUCwKICAJCSB3aGljaCBpcyB1 c2FiaWxpdHkgaXNzdWUsIGJ1dCBub3QgYSBjb3JyZWN0bmVzcyBwcm9ibGVtLiAgKi8KQEAgLTE3 OTcsNyArMTc5NCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgIH0KICAK ICAgIGlmIChicmVha3BvaW50c19hbHdheXNfaW5zZXJ0ZWRfbW9kZSAoKSAmJiBzaG91bGRfaW5z ZXJ0Ci1AQCAtNzY4MSw2ICs3OTIxLDcgQEAgZGVsZXRlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50 IGZyb21fdHR5KQorQEAgLTgwODMsNiArODMyMyw3IEBAIGRlbGV0ZV9jb21tYW5kIChjaGFyICph cmcsIGludCBmcm9tX3R0eSkKICAJICAgICYmIGItPnR5cGUgIT0gYnBfdGhyZWFkX2V2ZW50CiAg CSAgICAmJiBiLT50eXBlICE9IGJwX292ZXJsYXlfZXZlbnQKICAJICAgICYmIGItPnR5cGUgIT0g YnBfbG9uZ2ptcF9tYXN0ZXIKQEAgLTE4MDUsNyArMTgwMiw3IEBAIGluZGV4IDlmNTA4NzIuLmE0 MjU1ZDcgMTAwNjQ0CiAgCSAgICAmJiBiLT5udW1iZXIgPj0gMCkKICAJICB7CiAgCSAgICBicmVh a3NfdG9fZGVsZXRlID0gMTsKLUBAIC03NzAwLDYgKzc5NDEsNyBAQCBkZWxldGVfY29tbWFuZCAo Y2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCitAQCAtODEwMiw2ICs4MzQzLDcgQEAgZGVsZXRlX2Nv bW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQogIAkJJiYgYi0+dHlwZSAhPSBicF9qaXRf ZXZlbnQKICAJCSYmIGItPnR5cGUgIT0gYnBfb3ZlcmxheV9ldmVudAogIAkJJiYgYi0+dHlwZSAh PSBicF9sb25nam1wX21hc3RlcgpAQCAtMTgxMyw3ICsxODEwLDcgQEAgaW5kZXggOWY1MDg3Mi4u YTQyNTVkNyAxMDA2NDQKICAJCSYmIGItPm51bWJlciA+PSAwKQogIAkgICAgICBkZWxldGVfYnJl YWtwb2ludCAoYik7CiAgCSAgfQotQEAgLTgwMDIsNiArODI0NCw3IEBAIGJyZWFrcG9pbnRfcmVf c2V0X29uZSAodm9pZCAqYmludCkKK0BAIC04NDA0LDYgKzg2NDYsNyBAQCBicmVha3BvaW50X3Jl X3NldF9vbmUgKHZvaWQgKmJpbnQpCiAgCSByZXNldCBsYXRlciBieSBicmVha3BvaW50X3JlX3Nl dC4gICovCiAgICAgIGNhc2UgYnBfb3ZlcmxheV9ldmVudDoKICAgICAgY2FzZSBicF9sb25nam1w X21hc3RlcjoKQEAgLTE4MjEsNyArMTgxOCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAw NjQ0CiAgICAgICAgZGVsZXRlX2JyZWFrcG9pbnQgKGIpOwogICAgICAgIGJyZWFrOwogIAotQEAg LTgwMjUsNiArODI2OCw4IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKK0BA IC04NDI3LDYgKzg2NzAsOCBAQCBicmVha3BvaW50X3JlX3NldF9vbmUgKHZvaWQgKmJpbnQpCiAg ICAgIGNhc2UgYnBfbG9uZ2ptcDoKICAgICAgY2FzZSBicF9sb25nam1wX3Jlc3VtZToKICAgICAg Y2FzZSBicF9qaXRfZXZlbnQ6CkBAIC0xODMwLDcgKzE4MjcsNyBAQCBpbmRleCA5ZjUwODcyLi5h NDI1NWQ3IDEwMDY0NAogICAgICAgIGJyZWFrOwogICAgICB9CiAgCi1AQCAtODA2MCw2ICs4MzA1 LDcgQEAgYnJlYWtwb2ludF9yZV9zZXQgKHZvaWQpCitAQCAtODQ2Miw2ICs4NzA3LDcgQEAgYnJl YWtwb2ludF9yZV9zZXQgKHZvaWQpCiAgICBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJlYWtwb2lu dCAoIl9sb25nam1wIik7CiAgICBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAoInNp Z2xvbmdqbXAiKTsKICAgIGNyZWF0ZV9sb25nam1wX21hc3Rlcl9icmVha3BvaW50ICgiX3NpZ2xv bmdqbXAiKTsKQEAgLTE4MzgsNyArMTgzNSw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAw NjQ0CiAgfQogIAwKICAvKiBSZXNldCB0aGUgdGhyZWFkIG51bWJlciBvZiB0aGlzIGJyZWFrcG9p bnQ6Ci1AQCAtODg3MSw2ICs5MTE3LDIyIEBAIGFsbF90cmFjZXBvaW50cyAoKQorQEAgLTkzMjcs NiArOTU3MywyMiBAQCBhbGxfdHJhY2Vwb2ludHMgKCkKICAgIHJldHVybiB0cF92ZWM7CiAgfQog IApAQCAtMTg2MSwxNyArMTg1OCwxNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAog IAwKICAvKiBUaGlzIGhlbHAgc3RyaW5nIGlzIHVzZWQgZm9yIHRoZSBicmVhaywgaGJyZWFrLCB0 YnJlYWsgYW5kIHRoYnJlYWsgY29tbWFuZHMuCiAgICAgSXQgaXMgZGVmaW5lZCBhcyBhIG1hY3Jv IHRvIHByZXZlbnQgZHVwbGljYXRpb24uCi1AQCAtOTM3Myw0ICs5NjM1LDUgQEAgaW5mZXJpb3Ig aW4gYWxsLXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2VydGVkIG1vZGUg aXMgb2ZmLiIpLAorQEAgLTk4NTAsNCArMTAxMTIsNSBAQCBpbmZlcmlvciBpbiBhbGwtc3RvcCBt b2RlLCBnZGIgYmVoYXZlcyBhcyBpZiBhbHdheXMtaW5zZXJ0ZWQgbW9kZSBpcyBvZmYuIiksCiAg ICBhdXRvbWF0aWNfaGFyZHdhcmVfYnJlYWtwb2ludHMgPSAxOwogIAogICAgb2JzZXJ2ZXJfYXR0 YWNoX2Fib3V0X3RvX3Byb2NlZWQgKGJyZWFrcG9pbnRfYWJvdXRfdG9fcHJvY2VlZCk7CiArICBv YnNlcnZlcl9hdHRhY2hfbWFya191c2VkIChicmVha3BvaW50X3R5cGVzX21hcmtfdXNlZCk7CiAg fQogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmggYi9nZGIvYnJlYWtwb2ludC5oCi1pbmRl eCA3MGIxMzk4Li4wZjA1YjVhIDEwMDY0NAoraW5kZXggYmE0OTljNi4uODBmNzAyZiAxMDA2NDQK IC0tLSBhL2dkYi9icmVha3BvaW50LmgKICsrKyBiL2dkYi9icmVha3BvaW50LmgKLUBAIC01NSw2 ICs1NSwxMyBAQCBlbnVtIGJwdHlwZQorQEAgLTU2LDYgKzU2LDEzIEBAIGVudW0gYnB0eXBlCiAg ICAgIGJwX2xvbmdqbXAsCQkJLyogc2VjcmV0IGJyZWFrcG9pbnQgdG8gZmluZCBsb25nam1wKCkg Ki8KICAgICAgYnBfbG9uZ2ptcF9yZXN1bWUsCQkvKiBzZWNyZXQgYnJlYWtwb2ludCB0byBlc2Nh cGUgbG9uZ2ptcCgpICovCiAgCkBAIC0xODg1LDcgKzE4ODIsNyBAQCBpbmRleCA3MGIxMzk4Li4w ZjA1YjVhIDEwMDY0NAogICAgICAvKiBVc2VkIGJ5IHdhaXRfZm9yX2luZmVyaW9yIGZvciBzdGVw cGluZyBvdmVyIHN1YnJvdXRpbmUgY2FsbHMsIGZvcgogICAgICAgICBzdGVwcGluZyBvdmVyIHNp Z25hbCBoYW5kbGVycywgYW5kIGZvciBza2lwcGluZyBwcm9sb2d1ZXMuICAqLwogICAgICBicF9z dGVwX3Jlc3VtZSwKLUBAIC0xMTcsNiArMTI0LDkgQEAgZW51bSBicHR5cGUKK0BAIC0xMTgsNiAr MTI1LDkgQEAgZW51bSBicHR5cGUKICAKICAgICAgYnBfbG9uZ2ptcF9tYXN0ZXIsCiAgCkBAIC0x ODk1LDcgKzE4OTIsNyBAQCBpbmRleCA3MGIxMzk4Li4wZjA1YjVhIDEwMDY0NAogICAgICBicF9j YXRjaHBvaW50LAogIAogICAgICBicF90cmFjZXBvaW50LAotQEAgLTIyNywxMCArMjM3LDYgQEAg c3RydWN0IGJwX2xvY2F0aW9uCitAQCAtMjI4LDEwICsyMzgsNiBAQCBzdHJ1Y3QgYnBfbG9jYXRp b24KICAgICAgIHRoZSBzYW1lIHBhcmVudCBicmVha3BvaW50LiAgKi8KICAgIHN0cnVjdCBicF9s b2NhdGlvbiAqbmV4dDsKICAKQEAgLTE5MDYsNyArMTkwMyw3IEBAIGluZGV4IDcwYjEzOTguLjBm MDViNWEgMTAwNjQ0CiAgICAvKiBUeXBlIG9mIHRoaXMgYnJlYWtwb2ludCBsb2NhdGlvbi4gICov CiAgICBlbnVtIGJwX2xvY190eXBlIGxvY190eXBlOwogIAotQEAgLTU3Myw2ICs1NzksMTAgQEAg c3RydWN0IGJwc3RhdF93aGF0CitAQCAtNTgzLDYgKzU4OSwxMCBAQCBzdHJ1Y3QgYnBzdGF0X3do YXQKICAgICAgICAgY29udGludWluZyBmcm9tIGEgY2FsbCBkdW1teSB3aXRob3V0IHBvcHBpbmcg dGhlIGZyYW1lIGlzIG5vdCBhCiAgICAgICAgIHVzZWZ1bCBvbmUpLiAgKi8KICAgICAgaW50IGNh bGxfZHVtbXk7CkBAIC0xOTE3LDcgKzE5MTQsNyBAQCBpbmRleCA3MGIxMzk4Li4wZjA1YjVhIDEw MDY0NAogICAgfTsKICAKICAvKiBUaGUgcG9zc2libGUgcmV0dXJuIHZhbHVlcyBmb3IgcHJpbnRf YnBzdGF0LCBwcmludF9pdF9ub3JtYWwsCi1AQCAtOTI3LDYgKzkzNyw5IEBAIGV4dGVybiB2b2lk IGJyZWFrcG9pbnRfcmV0aXJlX21vcmlidW5kICh2b2lkKTsKK0BAIC05NDYsNiArOTU2LDkgQEAg ZXh0ZXJuIGludCBjYXRjaGluZ19zeXNjYWxsX251bWJlciAoaW50IHN5c2NhbGxfbnVtYmVyKTsK ICAvKiBUZWxsIGEgYnJlYWtwb2ludCB0byBiZSBxdWlldC4gICovCiAgZXh0ZXJuIHZvaWQgbWFr ZV9icmVha3BvaW50X3NpbGVudCAoc3RydWN0IGJyZWFrcG9pbnQgKik7CiAgCkBAIC0yMzQwLDkg KzIzMzcsMTggQEAgaW5kZXggZjhlNGYxMi4uNWI0N2UyZSAxMDA2NDQKICAgIH0KICB9CiBkaWZm IC0tZ2l0IGEvZ2RiL2MtbGFuZy5jIGIvZ2RiL2MtbGFuZy5jCi1pbmRleCA0YmE4MWJhLi4wNTNm Njg1IDEwMDY0NAoraW5kZXggNGJhODFiYS4uYmMzNWEzZSAxMDA2NDQKIC0tLSBhL2dkYi9jLWxh bmcuYwogKysrIGIvZ2RiL2MtbGFuZy5jCitAQCAtNDU5LDcgKzQ1OSw3IEBAIGNfcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqc3RyaW5nLAorIAkgc2luZ2xlIGNoYXJhY3RlciBpbiBpc29sYXRpb24uICBUaGlzIG1ha2Vz IHRoZSBjb2RlIHNpbXBsZXIKKyAJIGFuZCBwcm9iYWJseSBkb2VzIHRoZSBzZW5zaWJsZSB0aGlu ZyBpbiB0aGUgbWFqb3JpdHkgb2YKKyAJIGNhc2VzLiAgKi8KKy0gICAgICB3aGlsZSAobnVtX2No YXJzID09IDEpCisrICAgICAgd2hpbGUgKG51bV9jaGFycyA9PSAxICYmIHRoaW5nc19wcmludGVk IDwgb3B0aW9ucy0+cHJpbnRfbWF4KQorIAl7CisgCSAgLyogQ291bnQgdGhlIG51bWJlciBvZiBy ZXBldGl0aW9ucy4gICovCisgCSAgdW5zaWduZWQgaW50IHJlcHMgPSAwOwogQEAgLTcxNSw3ICs3 MTUsNyBAQCBjX2dldF9zdHJpbmcgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGdkYl9ieXRlICoqYnVm ZmVyLCBpbnQgKmxlbmd0aCwKICAgICAgIElmIGxlbmd0aCByZXR1cm5lZCBmcm9tIHJlYWRfc3Ry aW5nIHdhcyA+IDAsIHJldHVybiB0aGUgbnVtYmVyIG9mCiAgICAgICBjaGFyYWN0ZXJzIHJlYWQg YnkgZGl2aWRpbmcgdGhlIG51bWJlciBvZiBieXRlcyBieSB3aWR0aC4gICovCkBAIC0zNzg3LDcg KzM3OTMsNyBAQCBpbmRleCA3Y2IwMTZkLi5iYjllMzVhIDEwMDY0NAogICAgZGVmYXVsdF9zeW1m aWxlX29mZnNldHMsIC8qIHN5bV9vZmZzZXRzOiBwYXJzZSB1c2VyJ3Mgb2Zmc2V0cyB0bwogIAkJ CSAgICAgIGludGVybmFsIGZvcm0gKi8KIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZv IGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXggN2IyNjY3NS4uMGUwYzI4OCAxMDA2NDQKK2lu ZGV4IDVhNWY1NDIuLjJjNmJjZWYgMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiAr KysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAtOTU5LDggKzk1OSwxMCBAQCBDb25uZWN0IHRv IHByb2Nlc3MgSUQgQHZhcntudW1iZXJ9LCBhcyB3aXRoIHRoZSBAY29kZXthdHRhY2h9IGNvbW1h bmQuCkBAIC0zODIwLDcgKzM4MjYsNyBAQCBpbmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAog IEBjIHJlc29sdmUgdGhlIHNpdHVhdGlvbiBvZiB0aGVzZSBldmVudHVhbGx5CiAgQGl0ZW0gLXR1 aQogIEBjaW5kZXggQGNvZGV7LS10dWl9Ci1AQCAtMTg1MTksNyArMTg1MzEsNyBAQCBjb21tYW5k OgorQEAgLTE4NjUwLDcgKzE4NjYyLDcgQEAgY29tbWFuZDoKICBAdGFibGUgQGNvZGUKICBAa2lu ZGV4IHNvdXJjZQogIEBjaW5kZXggZXhlY3V0ZSBjb21tYW5kcyBmcm9tIGEgZmlsZQpAQCAtMzgy OSw3ICszODM1LDcgQEAgaW5kZXggN2IyNjY3NS4uMGUwYzI4OCAxMDA2NDQKICBFeGVjdXRlIHRo ZSBjb21tYW5kIGZpbGUgQHZhcntmaWxlbmFtZX0uCiAgQGVuZCB0YWJsZQogIAotQEAgLTE4NTM2 LDYgKzE4NTQ4LDExIEBAIElmIEBjb2Rley12fSwgZm9yIHZlcmJvc2UgbW9kZSwgaXMgZ2l2ZW4g dGhlbiBAdmFsdWV7R0RCTn0gZGlzcGxheXMKK0BAIC0xODY2Nyw2ICsxODY3OSwxMSBAQCBJZiBA Y29kZXstdn0sIGZvciB2ZXJib3NlIG1vZGUsIGlzIGdpdmVuIHRoZW4gQHZhbHVle0dEQk59IGRp c3BsYXlzCiAgZWFjaCBjb21tYW5kIGFzIGl0IGlzIGV4ZWN1dGVkLiAgVGhlIG9wdGlvbiBtdXN0 IGJlIGdpdmVuIGJlZm9yZQogIEB2YXJ7ZmlsZW5hbWV9LCBhbmQgaXMgaW50ZXJwcmV0ZWQgYXMg cGFydCBvZiB0aGUgZmlsZW5hbWUgYW55d2hlcmUgZWxzZS4KICAKQEAgLTM4NDEsNyArMzg0Nyw3 IEBAIGluZGV4IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgQ29tbWFuZHMgdGhhdCB3b3VsZCBh c2sgZm9yIGNvbmZpcm1hdGlvbiBpZiB1c2VkIGludGVyYWN0aXZlbHkgcHJvY2VlZAogIHdpdGhv dXQgYXNraW5nIHdoZW4gdXNlZCBpbiBhIGNvbW1hbmQgZmlsZS4gIE1hbnkgQHZhbHVle0dEQk59 IGNvbW1hbmRzIHRoYXQKICBub3JtYWxseSBwcmludCBtZXNzYWdlcyB0byBzYXkgd2hhdCB0aGV5 IGFyZSBkb2luZyBvbWl0IHRoZSBtZXNzYWdlcwotQEAgLTE4Nzk3LDggKzE4ODE0LDYgQEAgY29u dGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CitAQCAtMTg5MjgsOCArMTg5NDUsNiBA QCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToKICAKICBAc21hbGxleGFtcGxl CiAgKEB2YWx1ZXtHREJQfSkgcHl0aG9uCkBAIC0zODUwLDcgKzM4NTYsNyBAQCBpbmRleCA3YjI2 Njc1Li4wZTBjMjg4IDEwMDY0NAogID5wcmludCAyMwogID5lbmQKICAyMwotQEAgLTE4ODExLDYg KzE4ODI2LDE0IEBAIGluIGEgUHl0aG9uIHNjcmlwdC4gIFRoaXMgY2FuIGJlIGNvbnRyb2xsZWQg dXNpbmcgQGNvZGV7bWFpbnQgc2V0CitAQCAtMTg5NDIsNiArMTg5NTcsMTQgQEAgaW4gYSBQeXRo b24gc2NyaXB0LiAgVGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29kZXttYWludCBzZXQK ICBweXRob24gcHJpbnQtc3RhY2t9OiBpZiBAY29kZXtvbn0sIHRoZSBkZWZhdWx0LCB0aGVuIFB5 dGhvbiBzdGFjawogIHByaW50aW5nIGlzIGVuYWJsZWQ7IGlmIEBjb2Rle29mZn0sIHRoZW4gUHl0 aG9uIHN0YWNrIHByaW50aW5nIGlzCiAgZGlzYWJsZWQuCkBAIC0zODY1LDcgKzM4NzEsNyBAQCBp bmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAogIEBlbmQgdGFibGUKICAKICBAbm9kZSBQeXRo b24gQVBJCi1AQCAtMTg4MTgsNiArMTg4NDEsMTQgQEAgZGlzYWJsZWQuCitAQCAtMTg5NDksNiAr MTg5NzIsMTQgQEAgZGlzYWJsZWQuCiAgQGNpbmRleCBweXRob24gYXBpCiAgQGNpbmRleCBwcm9n cmFtbWluZyBpbiBweXRob24KICAKQEAgLTM4ODAsNyArMzg4Niw3IEBAIGluZGV4IDdiMjY2NzUu LjBlMGMyODggMTAwNjQ0CiAgQGNpbmRleCBweXRob24gc3Rkb3V0CiAgQGNpbmRleCBweXRob24g cGFnaW5hdGlvbgogIEF0IHN0YXJ0dXAsIEB2YWx1ZXtHREJOfSBvdmVycmlkZXMgUHl0aG9uJ3Mg QGNvZGV7c3lzLnN0ZG91dH0gYW5kCi1AQCAtMTg4MzAsMTMgKzE4ODYxLDE3IEBAIHNpdHVhdGlv biwgYSBQeXRob24gQGNvZGV7S2V5Ym9hcmRJbnRlcnJ1cHR9IGV4Y2VwdGlvbiBpcyB0aHJvd24u CitAQCAtMTg5NjEsMTMgKzE4OTkyLDE3IEBAIHNpdHVhdGlvbiwgYSBQeXRob24gQGNvZGV7S2V5 Ym9hcmRJbnRlcnJ1cHR9IGV4Y2VwdGlvbiBpcyB0aHJvd24uCiAgKiBCYXNpYyBQeXRob246OiAg ICAgICAgICAgICAgICBCYXNpYyBQeXRob24gRnVuY3Rpb25zLgogICogRXhjZXB0aW9uIEhhbmRs aW5nOjoKICAqIEF1dG8tbG9hZGluZzo6ICAgICAgICAgICAgICAgIEF1dG9tYXRpY2FsbHkgbG9h ZGluZyBQeXRob24gY29kZS4KQEAgLTM4OTksNyArMzkwNSw3IEBAIGluZGV4IDdiMjY2NzUuLjBl MGMyODggMTAwNjQ0CiAgKiBGcmFtZXMgSW4gUHl0aG9uOjogICAgICAgICAgICBBY2Vzc2luZyBp bmZlcmlvciBzdGFjayBmcmFtZXMgZnJvbSBQeXRob24uCiAgQGVuZCBtZW51CiAgCi1AQCAtMTg4 NjMsNiArMTg4OTgsMTIgQEAgY29tbWFuZCBhcyBoYXZpbmcgb3JpZ2luYXRlZCBmcm9tIHRoZSB1 c2VyIGludm9raW5nIGl0IGludGVyYWN0aXZlbHkuCitAQCAtMTg5OTQsNiArMTkwMjksMTIgQEAg Y29tbWFuZCBhcyBoYXZpbmcgb3JpZ2luYXRlZCBmcm9tIHRoZSB1c2VyIGludm9raW5nIGl0IGlu dGVyYWN0aXZlbHkuCiAgSXQgbXVzdCBiZSBhIGJvb2xlYW4gdmFsdWUuICBJZiBvbWl0dGVkLCBp dCBkZWZhdWx0cyB0byBAY29kZXtGYWxzZX0uCiAgQGVuZCBkZWZ1bgogIApAQCAtMzkxMiw3ICsz OTE4LDcgQEAgaW5kZXggN2IyNjY3NS4uMGUwYzI4OCAxMDA2NDQKICBAZmluZGV4IGdkYi5wYXJh bWV0ZXIKICBAZGVmdW4gcGFyYW1ldGVyIHBhcmFtZXRlcgogIFJldHVybiB0aGUgdmFsdWUgb2Yg YSBAdmFsdWV7R0RCTn0gcGFyYW1ldGVyLiAgQHZhcntwYXJhbWV0ZXJ9IGlzIGEKLUBAIC0xODg3 OSw2ICsxODkyMCw3IEBAIGEgUHl0aG9uIHZhbHVlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLCBh bmQgcmV0dXJuZWQuCitAQCAtMTkwMTAsNiArMTkwNTEsNyBAQCBhIFB5dGhvbiB2YWx1ZSBvZiB0 aGUgYXBwcm9wcmlhdGUgdHlwZSwgYW5kIHJldHVybmVkLgogIEBkZWZ1biBoaXN0b3J5IG51bWJl cgogIFJldHVybiBhIHZhbHVlIGZyb20gQHZhbHVle0dEQk59J3MgdmFsdWUgaGlzdG9yeSAoQHB4 cmVme1ZhbHVlCiAgSGlzdG9yeX0pLiAgQHZhcntudW1iZXJ9IGluZGljYXRlcyB3aGljaCBoaXN0 b3J5IGVsZW1lbnQgdG8gcmV0dXJuLgpAQCAtMzkyMCw3ICszOTI2LDcgQEAgaW5kZXggN2IyNjY3 NS4uMGUwYzI4OCAxMDA2NDQKICBJZiBAdmFye251bWJlcn0gaXMgbmVnYXRpdmUsIHRoZW4gQHZh bHVle0dEQk59IHdpbGwgdGFrZSBpdHMgYWJzb2x1dGUgdmFsdWUKICBhbmQgY291bnQgYmFja3dh cmQgZnJvbSB0aGUgbGFzdCBlbGVtZW50IChpLmUuLCB0aGUgbW9zdCByZWNlbnQgZWxlbWVudCkg dG8KICBmaW5kIHRoZSB2YWx1ZSB0byByZXR1cm4uICBJZiBAdmFye251bWJlcn0gaXMgemVybywg dGhlbiBAdmFsdWV7R0RCTn0gd2lsbAotQEAgLTE4ODkwLDYgKzE4OTMyLDI4IEBAIElmIG5vIGV4 Y2VwdGlvbiBpcyByYWlzZWQsIHRoZSByZXR1cm4gdmFsdWUgaXMgYWx3YXlzIGFuIGluc3RhbmNl IG9mCitAQCAtMTkwMjEsNiArMTkwNjMsMjggQEAgSWYgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZCwg dGhlIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgYW4gaW5zdGFuY2Ugb2YKICBAY29kZXtnZGIuVmFs dWV9IChAcHhyZWZ7VmFsdWVzIEZyb20gSW5mZXJpb3J9KS4KICBAZW5kIGRlZnVuCiAgCkBAIC0z OTQ5LDcgKzM5NTUsNyBAQCBpbmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAogIEBmaW5kZXgg Z2RiLndyaXRlCiAgQGRlZnVuIHdyaXRlIHN0cmluZwogIFByaW50IGEgc3RyaW5nIHRvIEB2YWx1 ZXtHREJOfSdzIHBhZ2luYXRlZCBzdGFuZGFyZCBvdXRwdXQgc3RyZWFtLgotQEAgLTE4OTA0LDYg KzE4OTY4LDExIEBAIEZsdXNoIEB2YWx1ZXtHREJOfSdzIHBhZ2luYXRlZCBzdGFuZGFyZCBvdXRw dXQgc3RyZWFtLiAgRmx1c2hpbmcKK0BAIC0xOTAzNSw2ICsxOTA5OSwxMSBAQCBGbHVzaCBAdmFs dWV7R0RCTn0ncyBwYWdpbmF0ZWQgc3RhbmRhcmQgb3V0cHV0IHN0cmVhbS4gIEZsdXNoaW5nCiAg ZnVuY3Rpb24uCiAgQGVuZCBkZWZ1bgogIApAQCAtMzk2MSw3ICszOTY3LDcgQEAgaW5kZXggN2Iy NjY3NS4uMGUwYzI4OCAxMDA2NDQKICBAbm9kZSBFeGNlcHRpb24gSGFuZGxpbmcKICBAc3Vic3Vi c2VjdGlvbiBFeGNlcHRpb24gSGFuZGxpbmcKICBAY2luZGV4IHB5dGhvbiBleGNlcHRpb25zCi1A QCAtMTkwNDAsNiArMTkxMDksMTMgQEAgVGhlIHR5cGUgb2YgdGhpcyBAY29kZXtnZGIuVmFsdWV9 LiAgVGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGlzIGEKK0BAIC0xOTE3MSw2ICsxOTI0MCwx MyBAQCBUaGUgdHlwZSBvZiB0aGlzIEBjb2Rle2dkYi5WYWx1ZX0uICBUaGUgdmFsdWUgb2YgdGhp cyBhdHRyaWJ1dGUgaXMgYQogIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgcHJvdmlkZWQ6CiAg CiAgQHRhYmxlIEBjb2RlCkBAIC0zOTc1LDcgKzM5ODEsNyBAQCBpbmRleCA3YjI2Njc1Li4wZTBj Mjg4IDEwMDY0NAogIEBkZWZtZXRob2QgVmFsdWUgZGVyZWZlcmVuY2UKICBGb3IgcG9pbnRlciBk YXRhIHR5cGVzLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IEBjb2Rle2dkYi5WYWx1ZX0gb2Jq ZWN0CiAgd2hvc2UgY29udGVudHMgaXMgdGhlIG9iamVjdCBwb2ludGVkIHRvIGJ5IHRoZSBwb2lu dGVyLiAgRm9yIGV4YW1wbGUsIGlmCi1AQCAtMTkxMTEsNiArMTkxODcsOSBAQCBtb2R1bGU6CitA QCAtMTkyNDIsNiArMTkzMTgsOSBAQCBtb2R1bGU6CiAgVGhpcyBmdW5jdGlvbiBsb29rcyB1cCBh IHR5cGUgYnkgbmFtZS4gIEB2YXJ7bmFtZX0gaXMgdGhlIG5hbWUgb2YgdGhlCiAgdHlwZSB0byBs b29rIHVwLiAgSXQgbXVzdCBiZSBhIHN0cmluZy4KICAKQEAgLTM5ODUsNyArMzk5MSw3IEBAIGlu ZGV4IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgT3JkaW5hcmlseSwgdGhpcyBmdW5jdGlvbiB3 aWxsIHJldHVybiBhbiBpbnN0YW5jZSBvZiBAY29kZXtnZGIuVHlwZX0uCiAgSWYgdGhlIG5hbWVk IHR5cGUgY2Fubm90IGJlIGZvdW5kLCBpdCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4KICBAZW5k IGRlZnVuCi1AQCAtMTkxNjMsNiArMTkyNDIsMTIgQEAgVGhpcyBpcyBAY29kZXtUcnVlfSBpZiB0 aGUgZmllbGQgaXMgYXJ0aWZpY2lhbCwgdXN1YWxseSBtZWFuaW5nIHRoYXQKK0BAIC0xOTI5NCw2 ICsxOTM3MywxMiBAQCBUaGlzIGlzIEBjb2Rle1RydWV9IGlmIHRoZSBmaWVsZCBpcyBhcnRpZmlj aWFsLCB1c3VhbGx5IG1lYW5pbmcgdGhhdAogIGl0IHdhcyBwcm92aWRlZCBieSB0aGUgY29tcGls ZXIgYW5kIG5vdCB0aGUgdXNlci4gIFRoaXMgYXR0cmlidXRlIGlzCiAgYWx3YXlzIHByb3ZpZGVk LCBhbmQgaXMgQGNvZGV7RmFsc2V9IGlmIHRoZSBmaWVsZCBpcyBub3QgYXJ0aWZpY2lhbC4KICAK QEAgLTM5OTgsNyArNDAwNCw3IEBAIGluZGV4IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgQGl0 ZW0gYml0c2l6ZQogIElmIHRoZSBmaWVsZCBpcyBwYWNrZWQsIG9yIGlzIGEgYml0ZmllbGQsIHRo ZW4gdGhpcyB3aWxsIGhhdmUgYQogIG5vbi16ZXJvIHZhbHVlLCB3aGljaCBpcyB0aGUgc2l6ZSBv ZiB0aGUgZmllbGQgaW4gYml0cy4gIE90aGVyd2lzZSwKLUBAIC0xOTIxNSw3ICsxOTMwMCw3IEBA IElmIHRoZSB0eXBlIGRvZXMgbm90IGhhdmUgYSB0YXJnZXQsIHRoaXMgbWV0aG9kIHdpbGwgdGhy b3cgYW4KK0BAIC0xOTM0Niw3ICsxOTQzMSw3IEBAIElmIHRoZSB0eXBlIGRvZXMgbm90IGhhdmUg YSB0YXJnZXQsIHRoaXMgbWV0aG9kIHdpbGwgdGhyb3cgYW4KICBleGNlcHRpb24uCiAgQGVuZCBk ZWZtZXRob2QKICAKQEAgLTQwMDcsNyArNDAxMyw3IEBAIGluZGV4IDdiMjY2NzUuLjBlMGMyODgg MTAwNjQ0CiAgSWYgdGhpcyBAY29kZXtnZGIuVHlwZX0gaXMgYW4gaW5zdGFudGlhdGlvbiBvZiBh IHRlbXBsYXRlLCB0aGlzIHdpbGwKICByZXR1cm4gYSBuZXcgQGNvZGV7Z2RiLlR5cGV9IHdoaWNo IHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlCiAgQHZhcntufXRoIHRlbXBsYXRlIGFyZ3VtZW50 LgotQEAgLTE5MjIzLDcgKzE5MzA4LDggQEAgcmV0dXJuIGEgbmV3IEBjb2Rle2dkYi5UeXBlfSB3 aGljaCByZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZQorQEAgLTE5MzU0LDcgKzE5NDM5LDggQEAg cmV0dXJuIGEgbmV3IEBjb2Rle2dkYi5UeXBlfSB3aGljaCByZXByZXNlbnRzIHRoZSB0eXBlIG9m IHRoZQogIElmIHRoaXMgQGNvZGV7Z2RiLlR5cGV9IGlzIG5vdCBhIHRlbXBsYXRlIHR5cGUsIHRo aXMgd2lsbCB0aHJvdyBhbgogIGV4Y2VwdGlvbi4gIE9yZGluYXJpbHksIG9ubHkgQ0B0eysrfSBj b2RlIHdpbGwgaGF2ZSB0ZW1wbGF0ZSB0eXBlcy4KICAKQEAgLTQwMTcsNyArNDAyMyw3IEBAIGlu ZGV4IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgQGVuZCBkZWZtZXRob2QKICBAZW5kIHRhYmxl CiAgCi1AQCAtMTk1NzcsNiArMTk2NjMsMTIxIEBAIGltcG9ydCBnZGIubGlic3RkY3h4LnY2CitA QCAtMTk3MDgsNiArMTk3OTQsMTIxIEBAIGltcG9ydCBnZGIubGlic3RkY3h4LnY2CiAgZ2RiLmxp YnN0ZGN4eC52Ni5yZWdpc3Rlcl9wcmludGVycyAoZ2RiLmN1cnJlbnRfb2JqZmlsZSAoKSkKICBA ZW5kIHNtYWxsZXhhbXBsZQogIApAQCAtNDEzOSw3ICs0MTQ1LDcgQEAgaW5kZXggN2IyNjY3NS4u MGUwYzI4OCAxMDA2NDQKICBAbm9kZSBDb21tYW5kcyBJbiBQeXRob24KICBAc3Vic3Vic2VjdGlv biBDb21tYW5kcyBJbiBQeXRob24KICAKLUBAIC0xOTgyOSw2ICsyMDAzMCwxMzUgQEAgcmVnaXN0 cmF0aW9uIG9mIHRoZSBjb21tYW5kIHdpdGggQHZhbHVle0dEQk59LiAgRGVwZW5kaW5nIG9uIGhv dyB0aGUKK0BAIC0xOTk2MCw2ICsyMDE2MSwxMzUgQEAgcmVnaXN0cmF0aW9uIG9mIHRoZSBjb21t YW5kIHdpdGggQHZhbHVle0dEQk59LiAgRGVwZW5kaW5nIG9uIGhvdyB0aGUKICBQeXRob24gY29k ZSBpcyByZWFkIGludG8gQHZhbHVle0dEQk59LCB5b3UgbWF5IG5lZWQgdG8gaW1wb3J0IHRoZQog IEBjb2Rle2dkYn0gbW9kdWxlIGV4cGxpY2l0bHkuCiAgCkBAIC00Mjc1LDcgKzQyODEsNyBAQCBp bmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAogIEBub2RlIEZ1bmN0aW9ucyBJbiBQeXRob24K ICBAc3Vic3Vic2VjdGlvbiBXcml0aW5nIG5ldyBjb252ZW5pZW5jZSBmdW5jdGlvbnMKICAKLUBA IC0xOTkzMyw2ICsyMDI2Myw4MiBAQCB3aGljaCBpcyB1c2VkIHRvIGZvcm1hdCB0aGUgdmFsdWUu ICBAeHJlZntQcmV0dHkgUHJpbnRpbmd9LCBmb3IgbW9yZQorQEAgLTIwMDY0LDYgKzIwMzk0LDgy IEBAIHdoaWNoIGlzIHVzZWQgdG8gZm9ybWF0IHRoZSB2YWx1ZS4gIEB4cmVme1ByZXR0eSBQcmlu dGluZ30sIGZvciBtb3JlCiAgaW5mb3JtYXRpb24uCiAgQGVuZCBkZWZpdmFyCiAgCkBAIC00MzU4 LDcgKzQzNjQsNyBAQCBpbmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAogIEBub2RlIEZyYW1l cyBJbiBQeXRob24KICBAc3Vic3Vic2VjdGlvbiBBY2Vzc2luZyBpbmZlcmlvciBzdGFjayBmcmFt ZXMgZnJvbSBQeXRob24uCiAgCi1AQCAtMTk5OTcsNiArMjA0MDMsMTQgQEAgZnVuY3Rpb24gdG8g YSBzdHJpbmcuCitAQCAtMjAxMjgsNiArMjA1MzQsMTQgQEAgZnVuY3Rpb24gdG8gYSBzdHJpbmcu CiAgUmV0dXJucyB0aGUgZnJhbWUncyByZXN1bWUgYWRkcmVzcy4KICBAZW5kIGRlZm1ldGhvZAog IApAQCAtNDM3Myw3ICs0Mzc5LDcgQEAgaW5kZXggN2IyNjY3NS4uMGUwYzI4OCAxMDA2NDQKICBA ZGVmbWV0aG9kIEZyYW1lIG9sZGVyCiAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlz IGZyYW1lLgogIEBlbmQgZGVmbWV0aG9kCi1AQCAtMjAwMDUsMTAgKzIwNDE5LDE4IEBAIFJldHVy biB0aGUgZnJhbWUgdGhhdCBjYWxsZWQgdGhpcyBmcmFtZS4KK0BAIC0yMDEzNiwxMCArMjA1NTAs MTggQEAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlzIGZyYW1lLgogIFJldHVybiB0 aGUgZnJhbWUgY2FsbGVkIGJ5IHRoaXMgZnJhbWUuCiAgQGVuZCBkZWZtZXRob2QKICAKQEAgLTQz OTIsMzA0ICs0Mzk4LDExIEBAIGluZGV4IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgQGVuZCB0 YWJsZQogIAogIEBub2RlIEludGVycHJldGVycwotQEAgLTIzMzYwLDYgKzIzNzgyLDggQEAgYWNj ZXNzIHRoaXMgZnVuY3Rpb25hbGl0eToKLSBAaXRlbSBAc3Ryb25ne09wZXJhdGlvbn0KLSBAdGFi IEBzdHJvbmd7RGVzY3JpcHRpb259Ci0gCi0rQGl0ZW0gQGNvZGV7LWVuYWJsZS1wcmV0dHktcHJp bnRpbmd9Ci0rQHRhYiBlbmFibGUgUHl0aG9uLWJhc2VkIHByZXR0eS1wcmludGluZwotIEBpdGVt IEBjb2Rley12YXItY3JlYXRlfQotIEB0YWIgY3JlYXRlIGEgdmFyaWFibGUgb2JqZWN0Ci0gQGl0 ZW0gQGNvZGV7LXZhci1kZWxldGV9Ci1AQCAtMjMzODgsNiArMjM4MTIsOCBAQCBhY2Nlc3MgdGhp cyBmdW5jdGlvbmFsaXR5OgotIEB0YWIgdXBkYXRlIHRoZSB2YXJpYWJsZSBhbmQgaXRzIGNoaWxk cmVuCi0gQGl0ZW0gQGNvZGV7LXZhci1zZXQtZnJvemVufQotIEB0YWIgc2V0IGZyb3plbmVzcyBh dHRyaWJ1dGUKLStAaXRlbSBAY29kZXstdmFyLXNldC11cGRhdGUtcmFuZ2V9Ci0rQHRhYiBzZXQg cmFuZ2Ugb2YgY2hpbGRyZW4gdG8gZGlzcGxheSBvbiB1cGRhdGUKLSBAZW5kIG11bHRpdGFibGUK LSAKLSBJbiB0aGUgbmV4dCBzdWJzZWN0aW9uIHdlIGRlc2NyaWJlIGVhY2ggb3BlcmF0aW9uIGlu IGRldGFpbCBhbmQgc3VnZ2VzdAotQEAgLTIzMzk1LDYgKzIzODIxLDIzIEBAIGhvdyBpdCBjYW4g YmUgdXNlZC4KLSAKLSBAc3ViaGVhZGluZyBEZXNjcmlwdGlvbiBBbmQgVXNlIG9mIE9wZXJhdGlv bnMgb24gVmFyaWFibGUgT2JqZWN0cwotIAotK0BzdWJoZWFkaW5nIFRoZSBAY29kZXstZW5hYmxl LXByZXR0eS1wcmludGluZ30gQ29tbWFuZAotK0BmaW5kZXggLWVuYWJsZS1wcmV0dHktcHJpbnRp bmcKLSsKLStAc21hbGxleGFtcGxlCi0rLWVuYWJsZS1wcmV0dHktcHJpbnRpbmcKLStAZW5kIHNt YWxsZXhhbXBsZQotKwotK0B2YWx1ZXtHREJOfSBhbGxvd3MgUHl0aG9uLWJhc2VkIHZpc3VhbGl6 ZXJzIHRvIGFmZmVjdCB0aGUgb3V0cHV0IG9mIHRoZQotK01JIHZhcmlhYmxlIG9iamVjdCBjb21t YW5kcy4gIEhvd2V2ZXIsIGJlY2F1c2UgdGhlcmUgd2FzIG5vIHdheSB0bwotK2ltcGxlbWVudCB0 aGlzIGluIGEgZnVsbHkgYmFja3dhcmQtY29tcGF0aWJsZSB3YXksIGEgZnJvbnQgZW5kIG11c3QK LStyZXF1ZXN0IHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IGJlIGVuYWJsZWQuCi0rCi0rT25jZSBz ZW50LCB0aGlzIGNvbW1hbmQgY2Fubm90IGJlIHVuZG9uZS4KLSsKLStOb3RlIHRoYXQgaWYgUHl0 aG9uIHN1cHBvcnQgaGFzIG5vdCBiZWVuIGNvbXBpbGVkIGludG8gQHZhbHVle0dEQk59LAotK3Ro aXMgY29tbWFuZCB3aWxsIHN0aWxsIHN1Y2NlZWQuCi0rCi0gQHN1YmhlYWRpbmcgVGhlIEBjb2Rl ey12YXItY3JlYXRlfSBDb21tYW5kCi0gQGZpbmRleCAtdmFyLWNyZWF0ZQotIAotQEAgLTIzNDM0 LDE1ICsyMzg3Nyw1NSBAQCBiZWdpbiB3aXRoIGEgQHNhbXB7Kn0pLCBvciBvbmUgb2YgdGhlIGZv bGxvd2luZzoKLSBAc2FtcHskQHZhcntyZWduYW1lfX0gLS0tIGEgQ1BVIHJlZ2lzdGVyIG5hbWUK LSBAZW5kIGl0ZW1pemUKLSAKLStBIHZhcm9iaidzIGNvbnRlbnRzIG1heSBiZSBwcm92aWRlZCBi eSBhIFB5dGhvbi1iYXNlZCBwcmV0dHktcHJpbnRlci4gIEluIHRoaXMKLStjYXNlIHRoZSB2YXJv YmogaXMga25vd24gYXMgYSBAZGZue2R5bmFtaWMgdmFyb2JqfS4gIER5bmFtaWMgdmFyb2Jqcwot K2hhdmUgc2xpZ2h0bHkgZGlmZmVyZW50IHNlbWFudGljcyBpbiBzb21lIGNhc2VzLiAgSWYgdGhl Ci0rQGNvZGV7LWVuYWJsZS1wcmV0dHktcHJpbnRpbmd9IGNvbW1hbmQgaXMgbm90IHNlbnQsIHRo ZW4gQHZhbHVle0dEQk59Ci0rd2lsbCBuZXZlciBjcmVhdGUgYSBkeW5hbWljIHZhcm9iai4gIFRo aXMgZW5zdXJlcyBiYWNrd2FyZAotK2NvbXBhdGliaWxpdHkgZm9yIGV4aXN0aW5nIGNsaWVudHMu Ci0rCi0gQHN1YnN1YmhlYWRpbmcgUmVzdWx0Ci0gCi0tVGhpcyBvcGVyYXRpb24gcmV0dXJucyB0 aGUgbmFtZSwgbnVtYmVyIG9mIGNoaWxkcmVuIGFuZCB0aGUgdHlwZSBvZiB0aGUKLS1vYmplY3Qg Y3JlYXRlZC4gIFR5cGUgaXMgcmV0dXJuZWQgYXMgYSBzdHJpbmcgYXMgdGhlIG9uZXMgZ2VuZXJh dGVkIGJ5Ci0tdGhlIEB2YWx1ZXtHREJOfSBDTEkuICBJZiBhIGZpeGVkIHZhcmlhYmxlIG9iamVj dCBpcyBib3VuZCB0byBhCi0tc3BlY2lmaWMgdGhyZWFkLCB0aGUgdGhyZWFkIGlzIGlzIGFsc28g cHJpbnRlZDoKLStUaGlzIG9wZXJhdGlvbiByZXR1cm5zIGF0dHJpYnV0ZXMgb2YgdGhlIG5ld2x5 LWNyZWF0ZWQgdmFyb2JqLiAgVGhlc2UKLStpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRv OgotKwotK0B0YWJsZSBAc2FtcAotK0BpdGVtIG5hbWUKLStUaGUgbmFtZSBvZiB0aGUgdmFyb2Jq LgotKwotK0BpdGVtIG51bWNoaWxkCi0rVGhlIG51bWJlciBvZiBjaGlsZHJlbiBvZiB0aGUgdmFy b2JqLiAgVGhpcyBudW1iZXIgaXMgbm90IG5lY2Vzc2FyaWx5Ci0rcmVsaWFibGUgZm9yIGEgZHlu YW1pYyB2YXJvYmouICBJbnN0ZWFkLCB5b3UgbXVzdCBleGFtaW5lIHRoZQotK0BzYW1we2hhc19t b3JlfSBhdHRyaWJ1dGUuCi0rCi0rQGl0ZW0gdmFsdWUKLStUaGUgdmFyb2JqJ3Mgc2NhbGFyIHZh bHVlLiAgRm9yIGEgdmFyb2JqIHdob3NlIHR5cGUgaXMgc29tZSBzb3J0IG9mCi0rYWdncmVnYXRl IChlLmcuLCBhIEBjb2Rle3N0cnVjdH0pLCBvciBmb3IgYSBkeW5hbWljIHZhcm9iaiwgdGhpcyB2 YWx1ZQotK3dpbGwgbm90IGJlIGludGVyZXN0aW5nLgotKwotK0BpdGVtIHR5cGUKLStUaGUgdmFy b2JqJ3MgdHlwZS4gIFRoaXMgaXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGUs IGFzCi0rd291bGQgYmUgcHJpbnRlZCBieSB0aGUgQHZhbHVle0dEQk59IENMSS4KLSsKLStAaXRl bSB0aHJlYWQtaWQKLStJZiBhIGZpeGVkIHZhcmlhYmxlIG9iamVjdCBpcyBib3VuZCB0byBhIHNw ZWNpZmljIHRocmVhZCwgdGhlbiB0aGlzIGlzCi0rdGhlIHRocmVhZCdzIGlkZW50aWZpZXIuCi0r Ci0rQGl0ZW0gaGFzX21vcmUKLStGb3IgYSBkeW5hbWljIHZhcm9iaiwgdGhpcyBpbmRpY2F0ZXMg d2hldGhlciB0aGVyZSBhcHBlYXIgdG8gYmUgYW55Ci0rY2hpbGRyZW4gYXZhaWxhYmxlLiAgRm9y IGEgbm9uLWR5bmFtaWMgdmFyb2JqLCB0aGlzIHdpbGwgYmUgMC4KLSsKLStAaXRlbSBkeW5hbWlj Ci0rVGhpcyBhdHRyaWJ1dGUgd2lsbCBiZSBwcmVzZW50IGFuZCBoYXZlIHRoZSB2YWx1ZSBAc2Ft cHsxfSBpZiB0aGUKLSt2YXJvYmogaXMgYSBkeW5hbWljIHZhcm9iai4gIElmIHRoZSB2YXJvYmog aXMgbm90IGEgZHluYW1pYyB2YXJvYmosCi0rdGhlbiB0aGlzIGF0dHJpYnV0ZSB3aWxsIG5vdCBi ZSBwcmVzZW50LgotK0BlbmQgdGFibGUKLSsKLStUeXBpY2FsIG91dHB1dCB3aWxsIGxvb2sgbGlr ZSB0aGlzOgotIAotIEBzbWFsbGV4YW1wbGUKLS0gbmFtZT0iQHZhcntuYW1lfSIsbnVtY2hpbGQ9 IkB2YXJ7Tn0iLHR5cGU9IkB2YXJ7dHlwZX0iLHRocmVhZC1pZD0iQHZhcntNfSIKLSsgbmFtZT0i QHZhcntuYW1lfSIsbnVtY2hpbGQ9IkB2YXJ7Tn0iLHR5cGU9IkB2YXJ7dHlwZX0iLHRocmVhZC1p ZD0iQHZhcntNfSIsCi0rICBoYXNfbW9yZT0iQHZhcntoYXNfbW9yZX0iCi0gQGVuZCBzbWFsbGV4 YW1wbGUKLSAKLSAKLUBAIC0yMzUyMCw2ICsyNDAwMywxMCBAQCBSZXR1cm5zIHRoZSBudW1iZXIg b2YgY2hpbGRyZW4gb2YgYSB2YXJpYWJsZSBvYmplY3QgQHZhcntuYW1lfToKLSAgbnVtY2hpbGQ9 QHZhcntufQotIEBlbmQgc21hbGxleGFtcGxlCi0gCi0rTm90ZSB0aGF0IHRoaXMgbnVtYmVyIGlz IG5vdCBjb21wbGV0ZWx5IHJlbGlhYmxlIGZvciBhIGR5bmFtaWMgdmFyb2JqLgotK0l0IHdpbGwg cmV0dXJuIHRoZSBjdXJyZW50IG51bWJlciBvZiBjaGlsZHJlbiwgYnV0IG1vcmUgY2hpbGRyZW4g bWF5Ci0rYmUgYXZhaWxhYmxlLgotKwotIAotIEBzdWJoZWFkaW5nIFRoZSBAY29kZXstdmFyLWxp c3QtY2hpbGRyZW59IENvbW1hbmQKLSBAZmluZGV4IC12YXItbGlzdC1jaGlsZHJlbgotQEAgLTIz NTI3LDcgKzI0MDE0LDcgQEAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIG9mIGEgdmFy aWFibGUgb2JqZWN0IEB2YXJ7bmFtZX06Ci0gQHN1YnN1YmhlYWRpbmcgU3lub3BzaXMKLSAKLSBA c21hbGxleGFtcGxlCi0tIC12YXItbGlzdC1jaGlsZHJlbiBbQHZhcntwcmludC12YWx1ZXN9XSBA dmFye25hbWV9Ci0rIC12YXItbGlzdC1jaGlsZHJlbiBbQHZhcntwcmludC12YWx1ZXN9XSBAdmFy e25hbWV9IFtAdmFye2Zyb219IEB2YXJ7dG99XQotIEBlbmQgc21hbGxleGFtcGxlCi0gQGFuY2hv cnstdmFyLWxpc3QtY2hpbGRyZW59Ci0gCi1AQCAtMjM1NDAsNiArMjQwMjcsMjIgQEAgdmFsdWVz OyBhbmQgaWYgaXQgaXMgMiBvciBAY29kZXstLXNpbXBsZS12YWx1ZXN9IHByaW50IHRoZSBuYW1l IGFuZAotIHZhbHVlIGZvciBzaW1wbGUgZGF0YSB0eXBlcyBhbmQganVzdCB0aGUgbmFtZSBmb3Ig YXJyYXlzLCBzdHJ1Y3R1cmVzCi0gYW5kIHVuaW9ucy4KLSAKLStAdmFye2Zyb219IGFuZCBAdmFy e3RvfSwgaWYgc3BlY2lmaWVkLCBpbmRpY2F0ZSB0aGUgcmFuZ2Ugb2YgY2hpbGRyZW4KLSt0byBy ZXBvcnQuICBJZiBAdmFye2Zyb219IG9yIEB2YXJ7dG99IGlzIGxlc3MgdGhhbiB6ZXJvLCB0aGUg cmFuZ2UgaXMKLStyZXNldCBhbmQgYWxsIGNoaWxkcmVuIHdpbGwgYmUgcmVwb3J0ZWQuICBPdGhl cndpc2UsIGNoaWxkcmVuIHN0YXJ0aW5nCi0rYXQgQHZhcntmcm9tfSAoemVyby1iYXNlZCkgYW5k IGVuZGluZyBqdXN0IGJlZm9yZSBAdmFye3RvfSB3aWxsIGJlCi0rcmVwb3J0ZWQuCi0rCi0rSWYg YSBjaGlsZCByYW5nZSBpcyByZXF1ZXN0ZWQsIGl0IHdpbGwgbm90IGFmZmVjdCB0aGUgcmFuZ2Ug b2YKLStjaGlsZHJlbiByZXBvcnRlZCBieSBhIGZ1dHVyZSBjYWxsIHRvIEBjb2Rley12YXItdXBk YXRlfS4gIEZvciB0aGlzLAotK3lvdSBtdXN0IGluc3RlYWQgdXNlIEBjb2Rley12YXItc2V0LXVw ZGF0ZS1yYW5nZX0uICBUaGUgaW50ZW50IG9mIHRoaXMKLSthcHByb2FjaCBpcyB0byBlbmFibGUg YSBmcm9udCBlbmQgdG8gaW1wbGVtZW50IGFueSB1cGRhdGUgYXBwcm9hY2ggaXQKLStsaWtlczsg Zm9yIGV4YW1wbGUsIHNjcm9sbGluZyBhIHZpZXcgbWF5IGNhdXNlIHRoZSBmcm9udCBlbmQgdG8K LStyZXF1ZXN0IG1vcmUgY2hpbGRyZW4gd2l0aCBAY29kZXstdmFyLWxpc3QtY2hpbGRyZW59LCBh bmQgdGhlbiB0aGUKLStmcm9udCBlbmQgY291bGQgY2FsbCBAY29kZXstdmFyLXNldC11cGRhdGUt cmFuZ2V9IHdpdGggYSBkaWZmZXJlbnQKLStyYW5nZSB0byBlbnN1cmUgdGhhdCBmdXR1cmUgdXBk YXRlcyBhcmUgcmVzdHJpY3RlZCB0byBqdXN0IHRoZSB2aXNpYmxlCi0raXRlbXMuCi0rCi0gRm9y IGVhY2ggY2hpbGQgdGhlIGZvbGxvd2luZyByZXN1bHRzIGFyZSByZXR1cm5lZDoKLSAKLSBAdGFi bGUgQHZhcgotQEAgLTIzNTU2LDggKzI0MDU5LDEzIEBAIGRlc2lnbmF0ZSBhY2Nlc3MgcXVhbGlm aWVycy4gIEZvciB0aGVzZSBwc2V1ZG8gY2hpbGRyZW4gQHZhcntleHB9IGlzCi0gQHNhbXB7cHVi bGljfSwgQHNhbXB7cHJpdmF0ZX0sIG9yIEBzYW1we3Byb3RlY3RlZH0uICBJbiB0aGlzIGNhc2Ug dGhlCi0gdHlwZSBhbmQgdmFsdWUgYXJlIG5vdCBwcmVzZW50LgotIAotK0ZvciBhIGR5bmFtaWMg dmFyb2JqLCB0aGlzIHZhbHVlIGNhbm5vdCByZWxpYWJseSBiZSB1c2VkIHRvIGZvcm0gYW4KLStl eHByZXNzaW9uLiAgQWxzbywgYSBkeW5hbWljIHZhcm9iaiB3aWxsIG5vdCByZXBvcnQgdGhlIGFj Y2VzcwotK3F1YWxpZnlpbmcgcHNldWRvLWNoaWxkcmVuLCByZWdhcmRsZXNzIG9mIHRoZSBsYW5n dWFnZS4KLSsKLSBAaXRlbSBudW1jaGlsZAotLU51bWJlciBvZiBjaGlsZHJlbiB0aGlzIGNoaWxk IGhhcy4KLStOdW1iZXIgb2YgY2hpbGRyZW4gdGhpcyBjaGlsZCBoYXMuICBGb3IgYSBkeW5hbWlj IHZhcm9iaiwgdGhpcyB3aWxsIGJlCi0rMC4KLSAKLSBAaXRlbSB0eXBlCi0gVGhlIHR5cGUgb2Yg dGhlIGNoaWxkLgotQEAgLTIzNTczLDYgKzI0MDgxLDE5IEBAIE90aGVyd2lzZSB0aGlzIHJlc3Vs dCBpcyBub3QgcHJlc2VudC4KLSBJZiB0aGUgdmFyaWFibGUgb2JqZWN0IGlzIGZyb3plbiwgdGhp cyB2YXJpYWJsZSB3aWxsIGJlIHByZXNlbnQgd2l0aCBhIHZhbHVlIG9mIDEuCi0gQGVuZCB0YWJs ZQotIAotK1RoZSByZXN1bHQgbWF5IGhhdmUgaXRzIG93biBhdHRyaWJ1dGVzOgotKwotK0B0YWJs ZSBAc2FtcAotK0BpdGVtIGRpc3BsYXloaW50Ci0rQSBkeW5hbWljIHZhcm9iaiBjYW4gc3VwcGx5 IGEgZGlzcGxheSBoaW50IHRvIHRoZSBmcm9udCBlbmQuICBUaGUKLStjb21lcyBkaXJlY3RseSBm cm9tIHRoZSBQeXRob24gcHJldHR5LXByaW50ZXIgb2JqZWN0J3MKLStAY29kZXtkaXNwbGF5X2hp bnR9IG1ldGhvZC4gIEB4cmVme1ByZXR0eSBQcmludGluZ30uCi0rCi0rQGl0ZW0gaGFzX21vcmUK LStUaGlzIGlzIGFuIGludGVnZXIgYXR0cmlidXRlIHdoaWNoIGlzIG5vbnplcm8gaWYgdGhlcmUg YXJlIGNoaWxkcmVuCi0rcmVtYWluaW5nIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGVkIHJh bmdlLgotK0BlbmQgdGFibGUKLSsKLSBAc3Vic3ViaGVhZGluZyBFeGFtcGxlCi0gCi0gQHNtYWxs ZXhhbXBsZQotQEAgLTIzNjQ5LDYgKzI0MTcwLDkgQEAgcmVzdWx0IGNhbiBiZSB1c2VkIG9ubHkg Zm9yIFVJIHByZXNlbnRhdGlvbi4gIFR5cGljYWwgdXNlIG9mCi0gdGhlIEBjb2Rley12YXItaW5m by1wYXRoLWV4cHJlc3Npb259IGNvbW1hbmQgaXMgY3JlYXRpbmcgYSAKLSB3YXRjaHBvaW50IGZy b20gYSB2YXJpYWJsZSBvYmplY3QuCi0gCi0rVGhpcyBjb21tYW5kIGlzIGN1cnJlbnRseSBub3Qg dmFsaWQgZm9yIGNoaWxkcmVuIG9mIGEgZHluYW1pYyB2YXJvYmosCi0rYW5kIHdpbGwgZ2l2ZSBh biBlcnJvciB3aGVuIGludm9rZWQgb24gb25lLgotKwotIEZvciBleGFtcGxlLCBzdXBwb3NlIEBj b2Rle0N9IGlzIGEgQ0B0eysrfSBjbGFzcywgZGVyaXZlZCBmcm9tIGNsYXNzCi0gQGNvZGV7QmFz ZX0sIGFuZCB0aGF0IHRoZSBAY29kZXtCYXNlfSBjbGFzcyBoYXMgYSBtZW1iZXIgY2FsbGVkCi0g QGNvZGV7bV9zaXplfS4gIEFzc3VtZSBhIHZhcmlhYmxlIEBjb2Rle2N9IGlzIGhhcyB0aGUgdHlw ZSBvZgotQEAgLTIzNzU0LDYgKzI0Mjc4LDY4IEBAIFdpdGggdGhlIEBzYW1weyp9IHBhcmFtZXRl ciwgaWYgYSB2YXJpYWJsZSBvYmplY3QgaXMgYm91bmQgdG8gYQotIGN1cnJlbnRseSBydW5uaW5n IHRocmVhZCwgaXQgd2lsbCBub3QgYmUgdXBkYXRlZCwgd2l0aG91dCBhbnkKLSBkaWFnbm9zdGlj LgotIAotK0lmIEBjb2Rley12YXItc2V0LXVwZGF0ZS1yYW5nZX0gd2FzIHByZXZpb3VzbHkgdXNl ZCBvbiBhIHZhcm9iaiwgdGhlbgotK29ubHkgdGhlIHNlbGVjdGVkIHJhbmdlIG9mIGNoaWxkcmVu IHdpbGwgYmUgcmVwb3J0ZWQuCi0rCi0rQGNvZGV7LXZhci11cGRhdGV9IHJlcG9ydHMgYWxsIHRo ZSBjaGFuZ2VkIHZhcm9ianMgaW4gYSB0dXBsZSBuYW1lZAotK0BzYW1we2NoYW5nZWxpc3R9Lgot KwotK0VhY2ggaXRlbSBpbiB0aGUgY2hhbmdlIGxpc3QgaXMgaXRzZWxmIGEgdHVwbGUgaG9sZGlu ZzoKLSsKLStAdGFibGUgQHNhbXAKLStAaXRlbSBuYW1lCi0rVGhlIG5hbWUgb2YgdGhlIHZhcm9i ai4KLSsKLStAaXRlbSB2YWx1ZQotK0lmIHZhbHVlcyB3ZXJlIHJlcXVlc3RlZCBmb3IgdGhpcyB1 cGRhdGUsIHRoZW4gdGhpcyBmaWVsZCB3aWxsIGJlCi0rcHJlc2VudCBhbmQgd2lsbCBob2xkIHRo ZSB2YWx1ZSBvZiB0aGUgdmFyb2JqLgotKwotK0BpdGVtIGluX3Njb3BlCi0rVGhpcyBpcyBhIHN0 cmluZywgZWl0aGVyIEBzYW1we2ZhbHNlfSBpZiB0aGUgdmFyb2JqIGlzIG5vdCBpbiBzY29wZSwK LStvciBAc2FtcHt0cnVlfSBpZiBpdCBpcyBpbiBzY29wZS4KLSsKLStAaXRlbSB0eXBlX2NoYW5n ZWQKLStUaGlzIGlzIG9ubHkgcHJlc2VudCBpZiB0aGUgdmFyb2JqIGlzIHN0aWxsIHZhbGlkLiAg SWYgdGhlIHR5cGUKLStjaGFuZ2VkLCB0aGVuIHRoaXMgd2lsbCBiZSB0aGUgc3RyaW5nIEBzYW1w e3RydWV9OyBvdGhlcndpc2UgaXQgd2lsbAotK2JlIEBzYW1we2ZhbHNlfS4KLSsKLStAaXRlbSBu ZXdfdHlwZQotK0lmIHRoZSB2YXJvYmoncyB0eXBlIGNoYW5nZWQsIHRoZW4gdGhpcyBmaWVsZCB3 aWxsIGJlIHByZXNlbnQgYW5kIHdpbGwKLStob2xkIHRoZSBuZXcgdHlwZS4KLSsKLStAaXRlbSBu ZXdfbnVtX2NoaWxkcmVuCi0rRm9yIGEgZHluYW1pYyB2YXJvYmosIGlmIHRoZSBudW1iZXIgb2Yg Y2hpbGRyZW4gY2hhbmdlZCwgb3IgaWYgdGhlCi0rdHlwZSBjaGFuZ2VkLCB0aGlzIHdpbGwgYmUg dGhlIG5ldyBudW1iZXIgb2YgY2hpbGRyZW4uCi0rCi0rVGhlIEBzYW1we251bWNoaWxkfSBmaWVs ZCBpbiBvdGhlciB2YXJvYmogcmVzcG9uc2VzIGlzIGdlbmVyYWxseSBub3QKLSt2YWxpZCBmb3Ig YSBkeW5hbWljIHZhcm9iaiAtLSBpdCB3aWxsIHNob3cgdGhlIG51bWJlciBvZiBjaGlsZHJlbiB0 aGF0Ci0rQHZhbHVle0dEQk59IGtub3dzIGFib3V0LCBidXQgYmVjYXVzZSBkeW5hbWljIHZhcm9i anMgbGF6aWx5Ci0raW5zdGFudGlhdGUgdGhlaXIgY2hpbGRyZW4sIHRoaXMgd2lsbCBub3QgcmVm bGVjdCB0aGUgbnVtYmVyIG9mCi0rY2hpbGRyZW4gd2hpY2ggbWF5IGJlIGF2YWlsYWJsZS4KLSsK LStUaGUgQHNhbXB7bmV3X251bV9jaGlsZHJlbn0gYXR0cmlidXRlIG9ubHkgcmVwb3J0cyBjaGFu Z2VzIHRvIHRoZQotK251bWJlciBvZiBjaGlsZHJlbiBrbm93biBieSBAdmFsdWV7R0RCTn0uICBU aGlzIGlzIHRoZSBvbmx5IHdheSB0bwotK2RldGVjdCB3aGV0aGVyIGFuIHVwZGF0ZSBoYXMgcmVt b3ZlZCBjaGlsZHJlbiAod2hpY2ggbmVjZXNzYXJpbHkgY2FuCi0rb25seSBoYXBwZW4gYXQgdGhl IGVuZCBvZiB0aGUgdXBkYXRlIHJhbmdlKS4KLSsKLStAaXRlbSBkaXNwbGF5aGludAotK1RoZSBk aXNwbGF5IGhpbnQsIGlmIGFueS4KLSsKLStAaXRlbSBoYXNfbW9yZQotK1RoaXMgaXMgYW4gaW50 ZWdlciB2YWx1ZSwgd2hpY2ggd2lsbCBiZSAxIGlmIHRoZXJlIGFyZSBtb3JlIGNoaWxkcmVuCi0r YXZhaWxhYmxlIG91dHNpZGUgdGhlIHZhcm9iaidzIHVwZGF0ZSByYW5nZS4KLSsKLStAaXRlbSBk eW5hbWljCi0rVGhpcyBhdHRyaWJ1dGUgd2lsbCBiZSBwcmVzZW50IGFuZCBoYXZlIHRoZSB2YWx1 ZSBAc2FtcHsxfSBpZiB0aGUKLSt2YXJvYmogaXMgYSBkeW5hbWljIHZhcm9iai4gIElmIHRoZSB2 YXJvYmogaXMgbm90IGEgZHluYW1pYyB2YXJvYmosCi0rdGhlbiB0aGlzIGF0dHJpYnV0ZSB3aWxs IG5vdCBiZSBwcmVzZW50LgotKwotK0BpdGVtIG5ld19jaGlsZHJlbgotK0lmIG5ldyBjaGlsZHJl biB3ZXJlIGFkZGVkIHRvIGEgZHluYW1pYyB2YXJvYmogd2l0aGluIHRoZSBzZWxlY3RlZAotK3Vw ZGF0ZSByYW5nZSAoYXMgc2V0IGJ5IEBjb2Rley12YXItc2V0LXVwZGF0ZS1yYW5nZX0pLCB0aGVu IHRoZXkgd2lsbAotK2JlIGxpc3RlZCBpbiB0aGlzIGF0dHJpYnV0ZS4KLStAZW5kIHRhYmxlCi0r Ci0gQHN1YnN1YmhlYWRpbmcgRXhhbXBsZQotIAotIEBzbWFsbGV4YW1wbGUKLUBAIC0yMzgyMSw2 ICsyNDQwNywzMiBAQCBVbmZyZWV6aW5nIGEgdmFyaWFibGUgZG9lcyBub3QgdXBkYXRlIGl0LCBv bmx5IHN1YnNlcXVlbnQKLSAoZ2RiKQotIEBlbmQgc21hbGxleGFtcGxlCi0gCi0rQHN1YmhlYWRp bmcgVGhlIEBjb2Rley12YXItc2V0LXVwZGF0ZS1yYW5nZX0gY29tbWFuZAotK0BmaW5kZXggLXZh ci1zZXQtdXBkYXRlLXJhbmdlCi0rQGFuY2hvcnstdmFyLXNldC11cGRhdGUtcmFuZ2V9Ci0rCi0r QHN1YnN1YmhlYWRpbmcgU3lub3BzaXMKLSsKLStAc21hbGxleGFtcGxlCi0rIC12YXItc2V0LXVw ZGF0ZS1yYW5nZSBAdmFye25hbWV9IEB2YXJ7ZnJvbX0gQHZhcnt0b30KLStAZW5kIHNtYWxsZXhh bXBsZQotKwotK1NldCB0aGUgcmFuZ2Ugb2YgY2hpbGRyZW4gdG8gYmUgcmV0dXJuZWQgYnkgZnV0 dXJlIGludm9jYXRpb25zIG9mCi0rQGNvZGV7LXZhci11cGRhdGV9LgotKwotK0B2YXJ7ZnJvbX0g YW5kIEB2YXJ7dG99IGluZGljYXRlIHRoZSByYW5nZSBvZiBjaGlsZHJlbiB0byByZXBvcnQuICBJ ZgotK0B2YXJ7ZnJvbX0gb3IgQHZhcnt0b30gaXMgbGVzcyB0aGFuIHplcm8sIHRoZSByYW5nZSBp cyByZXNldCBhbmQgYWxsCi0rY2hpbGRyZW4gd2lsbCBiZSByZXBvcnRlZC4gIE90aGVyd2lzZSwg Y2hpbGRyZW4gc3RhcnRpbmcgYXQgQHZhcntmcm9tfQotKyh6ZXJvLWJhc2VkKSBhbmQgZW5kaW5n IGp1c3QgYmVmb3JlIEB2YXJ7dG99IHdpbGwgYmUgcmVwb3J0ZWQuCi0rCi0rQHN1YnN1YmhlYWRp bmcgRXhhbXBsZQotKwotK0BzbWFsbGV4YW1wbGUKLSsoZ2RiKQotKy12YXItc2V0LXVwZGF0ZS1y YW5nZSBWIDEgMgotK15kb25lCi0rQGVuZCBzbWFsbGV4YW1wbGUKLSsKLSBAc3ViaGVhZGluZyBU aGUgQGNvZGV7LXZhci1zZXQtdmlzdWFsaXplcn0gY29tbWFuZAotIEBmaW5kZXggLXZhci1zZXQt dmlzdWFsaXplcgotIEBhbmNob3J7LXZhci1zZXQtdmlzdWFsaXplcn0KIGRpZmYgLS1naXQgYS9n ZGIvZG9jL2dkYmludC50ZXhpbmZvIGIvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbwotaW5kZXggZTcw NmNhYS4uNmIwNTVkMyAxMDA2NDQKK2luZGV4IGMyYmUzZjcuLmE3ODExYWIgMTAwNjQ0CiAtLS0g YS9nZGIvZG9jL2dkYmludC50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYmludC50ZXhpbmZvCi1A QCAtMjEwNiw2ICsyMTA2LDE4IEBAIHRpbWUsIGFuZCBzbyB3ZSBhdHRlbXB0IHRvIGhhbmRsZSBz eW1ib2xzIGluY3JlbWVudGFsbHkuICBGb3IgaW5zdGFuY2UsCitAQCAtMjExNCw2ICsyMTE0LDE4 IEBAIHRpbWUsIGFuZCBzbyB3ZSBhdHRlbXB0IHRvIGhhbmRsZSBzeW1ib2xzIGluY3JlbWVudGFs bHkuICBGb3IgaW5zdGFuY2UsCiAgd2UgY3JlYXRlIEBkZm57cGFydGlhbCBzeW1ib2wgdGFibGVz fSBjb25zaXN0aW5nIG9mIG9ubHkgc2VsZWN0ZWQKICBzeW1ib2xzLCBhbmQgb25seSBleHBhbmQg dGhlbSB0byBmdWxsIHN5bWJvbCB0YWJsZXMgd2hlbiBuZWNlc3NhcnkuCiAgCkBAIC00NzA4LDcg KzQ0MjEsNyBAQCBpbmRleCBlNzA2Y2FhLi42YjA1NWQzIDEwMDY0NAogIEBzZWN0aW9uIFN5bWJv bCBSZWFkaW5nCiAgCiAgQGNpbmRleCBzeW1ib2wgcmVhZGluZwotQEAgLTIxOTgsNiArMjIxMCw3 IEBAIHN5bXRhYi4gIFVwb24gcmV0dXJuLCBAY29kZXtwc3QtPnJlYWRpbn0gc2hvdWxkIGhhdmUg YmVlbiBzZXQgdG8gMSwgYW5kCitAQCAtMjIwNiw2ICsyMjE4LDcgQEAgc3ltdGFiLiAgVXBvbiBy ZXR1cm4sIEBjb2Rle3BzdC0+cmVhZGlufSBzaG91bGQgaGF2ZSBiZWVuIHNldCB0byAxLCBhbmQK ICB6ZXJvIGlmIHRoZXJlIHdlcmUgbm8gc3ltYm9scyBpbiB0aGF0IHBhcnQgb2YgdGhlIHN5bWJv bCBmaWxlLgogIEBlbmQgdGFibGUKICAKQEAgLTQ3MTYsNyArNDQyOSw3IEBAIGluZGV4IGU3MDZj YWEuLjZiMDU1ZDMgMTAwNjQ0CiAgQHNlY3Rpb24gUGFydGlhbCBTeW1ib2wgVGFibGVzCiAgCiAg QHZhbHVle0dEQk59IGhhcyB0aHJlZSB0eXBlcyBvZiBzeW1ib2wgdGFibGVzOgotQEAgLTIyOTMs NiArMjMwNiw3IEBAIGFuZCBhbGwgdGhlIHBzeW1ib2xzIHRoZW1zZWx2ZXMgYXJlIGFsbG9jYXRl ZCBpbiBhIHBhaXIgb2YgbGFyZ2UgYXJyYXlzCitAQCAtMjMwMSw2ICsyMzE0LDcgQEAgYW5kIGFs bCB0aGUgcHN5bWJvbHMgdGhlbXNlbHZlcyBhcmUgYWxsb2NhdGVkIGluIGEgcGFpciBvZiBsYXJn ZSBhcnJheXMKICBvbiBhbiBvYnN0YWNrLCBzbyB0aGVyZSBpcyBsaXR0bGUgdG8gYmUgZ2FpbmVk IGJ5IHRyeWluZyB0byBmcmVlIHRoZW0KICB1bmxlc3MgeW91IHdhbnQgdG8gZG8gYSBsb3QgbW9y ZSB3b3JrLgogIApAQCAtNDcyNCw3ICs0NDM3LDcgQEAgaW5kZXggZTcwNmNhYS4uNmIwNTVkMyAx MDA2NDQKICBAc2VjdGlvbiBUeXBlcwogIAogIEB1bm51bWJlcmVkc3Vic2VjIEZ1bmRhbWVudGFs IFR5cGVzIChlLmcuLCBAY29kZXtGVF9WT0lEfSwgQGNvZGV7RlRfQk9PTEVBTn0pLgotQEAgLTIz MTUsNiArMjMyOSw3IEBAIHR5cGVzIG1hcCB0byBvbmUgQGNvZGV7VFlQRV9DT0RFXyp9IHR5cGUs IGFuZCBhcmUgZGlzdGluZ3Vpc2hlZCBieQorQEAgLTIzMjMsNiArMjMzNyw3IEBAIHR5cGVzIG1h cCB0byBvbmUgQGNvZGV7VFlQRV9DT0RFXyp9IHR5cGUsIGFuZCBhcmUgZGlzdGluZ3Vpc2hlZCBi eQogIG90aGVyIG1lbWJlcnMgb2YgdGhlIHR5cGUgc3RydWN0LCBzdWNoIGFzIHdoZXRoZXIgdGhl IHR5cGUgaXMgc2lnbmVkCiAgb3IgdW5zaWduZWQsIGFuZCBob3cgbWFueSBiaXRzIGl0IHVzZXMu CiAgCkBAIC00NzMyLDcgKzQ0NDUsNyBAQCBpbmRleCBlNzA2Y2FhLi42YjA1NWQzIDEwMDY0NAog IEB1bm51bWJlcmVkc3Vic2VjIEJ1aWx0aW4gVHlwZXMgKGUuZy4sIEBjb2Rle2J1aWx0aW5fdHlw ZV92b2lkfSwgQGNvZGV7YnVpbHRpbl90eXBlX2NoYXJ9KS4KICAKICBUaGVzZSBhcmUgaW5zdGFu Y2VzIG9mIHR5cGUgc3RydWN0cyB0aGF0IHJvdWdobHkgY29ycmVzcG9uZCB0bwotQEAgLTIzMjks NiArMjM0NCw3IEBAIG9ubHkgb25lIGluc3RhbmNlIGV4aXN0cywgd2hpbGUgQGZpbGV7Yy1sYW5n LmN9IGJ1aWxkcyBhcyBtYW55CitAQCAtMjMzNyw2ICsyMzUyLDcgQEAgb25seSBvbmUgaW5zdGFu Y2UgZXhpc3RzLCB3aGlsZSBAZmlsZXtjLWxhbmcuY30gYnVpbGRzIGFzIG1hbnkKICBAY29kZXtU WVBFX0NPREVfSU5UfSB0eXBlcyBhcyBuZWVkZWQsIHdpdGggZWFjaCBvbmUgYXNzb2NpYXRlZCB3 aXRoCiAgc29tZSBwYXJ0aWN1bGFyIG9iamZpbGUuCiAgCkBAIC00NzQwLDcgKzQ0NTMsNyBAQCBp bmRleCBlNzA2Y2FhLi42YjA1NWQzIDEwMDY0NAogIEBzZWN0aW9uIE9iamVjdCBGaWxlIEZvcm1h dHMKICBAY2luZGV4IG9iamVjdCBmaWxlIGZvcm1hdHMKICAKLUBAIC0yNDE0LDYgKzI0MzAsNyBA QCBTT00sIHdoaWNoIGlzIGEgY3Jvc3MtbGFuZ3VhZ2UgQUJJKS4KK0BAIC0yNDIyLDYgKzI0Mzgs NyBAQCBTT00sIHdoaWNoIGlzIGEgY3Jvc3MtbGFuZ3VhZ2UgQUJJKS4KICAKICBUaGUgU09NIHJl YWRlciBpcyBpbiBAZmlsZXtzb21yZWFkLmN9LgogIApAQCAtNDc0OCw3ICs0NDYxLDcgQEAgaW5k ZXggZTcwNmNhYS4uNmIwNTVkMyAxMDA2NDQKICBAc2VjdGlvbiBEZWJ1Z2dpbmcgRmlsZSBGb3Jt YXRzCiAgCiAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBjaGFyYWN0ZXJpc3RpY3Mgb2YgZGVidWdn aW5nIGluZm9ybWF0aW9uIHRoYXQKLUBAIC0yNDg1LDYgKzI1MDIsNyBAQCBEV0FSRiAzIGlzIGFu IGltcHJvdmVkIHZlcnNpb24gb2YgRFdBUkYgMi4KK0BAIC0yNDkzLDYgKzI1MTAsNyBAQCBEV0FS RiAzIGlzIGFuIGltcHJvdmVkIHZlcnNpb24gb2YgRFdBUkYgMi4KICBAY2luZGV4IFNPTSBkZWJ1 Z2dpbmcgaW5mbwogIExpa2UgQ09GRiwgdGhlIFNPTSBkZWZpbml0aW9uIGluY2x1ZGVzIGRlYnVn Z2luZyBpbmZvcm1hdGlvbi4KICAKQEAgLTQ3NTYsNyArNDQ2OSw3IEBAIGluZGV4IGU3MDZjYWEu LjZiMDU1ZDMgMTAwNjQ0CiAgQHNlY3Rpb24gQWRkaW5nIGEgTmV3IFN5bWJvbCBSZWFkZXIgdG8g QHZhbHVle0dEQk59CiAgCiAgQGNpbmRleCBhZGRpbmcgZGVidWdnaW5nIGluZm8gcmVhZGVyCi1A QCAtMjUwNyw2ICsyNTI1LDcgQEAgd2lsbCBvbmx5IGV2ZXIgYmUgaW1wbGVtZW50ZWQgYnkgb25l IG9iamVjdCBmaWxlIGZvcm1hdCBtYXkgYmUgY2FsbGVkCitAQCAtMjUxNSw2ICsyNTMzLDcgQEAg d2lsbCBvbmx5IGV2ZXIgYmUgaW1wbGVtZW50ZWQgYnkgb25lIG9iamVjdCBmaWxlIGZvcm1hdCBt YXkgYmUgY2FsbGVkCiAgZGlyZWN0bHkuICBUaGlzIGludGVyZmFjZSBzaG91bGQgYmUgZGVzY3Jp YmVkIGluIGEgZmlsZQogIEBmaWxle2JmZC9saWJAdmFye3h5en0uaH0sIHdoaWNoIGlzIGluY2x1 ZGVkIGJ5IEB2YWx1ZXtHREJOfS4KICAKQEAgLTQ3NjQsNyArNDQ3Nyw3IEBAIGluZGV4IGU3MDZj YWEuLjZiMDU1ZDMgMTAwNjQ0CiAgQHNlY3Rpb24gTWVtb3J5IE1hbmFnZW1lbnQgZm9yIFN5bWJv bCBGaWxlcwogIAogIE1vc3QgbWVtb3J5IGFzc29jaWF0ZWQgd2l0aCBhIGxvYWRlZCBzeW1ib2wg ZmlsZSBpcyBzdG9yZWQgb24KLUBAIC0yNTE4LDEwICsyNTM3LDQ1IEBAIHJlbGVhc2VkIHdoZW4g dGhlIG9iamZpbGUgaXMgdW5sb2FkZWQgb3IgcmVsb2FkZWQuICBUaGVyZWZvcmUgb25lCitAQCAt MjUyNiwxMCArMjU0NSw0NSBAQCByZWxlYXNlZCB3aGVuIHRoZSBvYmpmaWxlIGlzIHVubG9hZGVk IG9yIHJlbG9hZGVkLiAgVGhlcmVmb3JlIG9uZQogIG9iamZpbGUgbXVzdCBub3QgcmVmZXJlbmNl IHN5bWJvbCBvciB0eXBlIGRhdGEgZnJvbSBhbm90aGVyIG9iamZpbGU7CiAgdGhleSBjb3VsZCBi ZSB1bmxvYWRlZCBhdCBkaWZmZXJlbnQgdGltZXMuCiAgCkBAIC00ODMxLDcgKzQ1NDQsNyBAQCBp bmRleCA0OTg0ZjMxLi5mY2YxYjVkIDEwMDY0NAogIFRoaXMgb2JzZXJ2ZXIgaXMgdXNlZCBmb3Ig aW50ZXJuYWwgdGVzdGluZy4gIERvIG5vdCB1c2UuICAKICBTZWUgdGVzdHN1aXRlL2dkYi5nZGIv b2JzZXJ2ZXIuZXhwLgogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjItZnJhbWUuYyBiL2dkYi9kd2Fy ZjItZnJhbWUuYwotaW5kZXggZjljYTA2Ny4uOTc5YjY0OSAxMDA2NDQKK2luZGV4IDY2OGM0MzQu LmMyOWMzYTUgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYyLWZyYW1lLmMKICsrKyBiL2dkYi9kd2Fy ZjItZnJhbWUuYwogQEAgLTM4LDYgKzM4LDcgQEAKQEAgLTQ4NDIsMjQgKzQ1NTUsNyBAQCBpbmRl eCBmOWNhMDY3Li45NzliNjQ5IDEwMDY0NAogIAogIHN0cnVjdCBjb21wX3VuaXQ7CiAgCi1AQCAt Mzc5LDggKzM4MCwxNSBAQCBleGVjdXRlX3N0YWNrX29wIChnZGJfYnl0ZSAqZXhwLCBVTE9OR0VT VCBsZW4sIGludCBhZGRyX3NpemUsCi0gICBkd2FyZl9leHByX2V2YWwgKGN0eCwgZXhwLCBsZW4p OwotICAgcmVzdWx0ID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKLSAKLS0gIGlmIChjdHgt PmluX3JlZykKLSsgIGlmIChjdHgtPmxvY2F0aW9uID09IERXQVJGX1ZBTFVFX1JFR0lTVEVSKQot ICAgICByZXN1bHQgPSByZWFkX3JlZyAodGhpc19mcmFtZSwgcmVzdWx0KTsKLSsgIGVsc2UgaWYg KGN0eC0+bG9jYXRpb24gIT0gRFdBUkZfVkFMVUVfTUVNT1JZKQotKyAgICB7Ci0rICAgICAgLyog VGhpcyBpcyBhY3R1YWxseSBpbnZhbGlkIERXQVJGLCBidXQgaWYgd2UgZXZlciBkbyBydW4gYWNy b3NzCi0rCSBpdCBzb21laG93LCB3ZSBtaWdodCBhcyB3ZWxsIHN1cHBvcnQgaXQuICBTbywgaW5z dGVhZCwgcmVwb3J0Ci0rCSBpdCBhcyB1bmltcGxlbWVudGVkLiAgKi8KLSsgICAgICBlcnJvciAo XygiTm90IGltcGxlbWVudGVkOiBjb21wdXRpbmcgdW53b3VuZCByZWdpc3RlciB1c2luZyBleHBs aWNpdCB2YWx1ZSBvcGVyYXRvciIpKTsKLSsgICAgfQotIAotICAgZG9fY2xlYW51cHMgKG9sZF9j aGFpbik7Ci0gCi1AQCAtMTU2Niw2ICsxNTc0LDE0IEBAIGR3YXJmMl9mcmFtZV9maW5kX2ZkZSAo Q09SRV9BRERSICpwYykKK0BAIC0xNTc0LDYgKzE1NzUsMTQgQEAgZHdhcmYyX2ZyYW1lX2ZpbmRf ZmRlIChDT1JFX0FERFIgKnBjKQogICAgICAgIENPUkVfQUREUiBvZmZzZXQ7CiAgICAgICAgQ09S RV9BRERSIHNlZWtfcGM7CiAgCkBAIC00ODc1LDE1MiArNDU3MSwxMCBAQCBpbmRleCBmOWNhMDY3 Li45NzliNjQ5IDEwMDY0NAogICAgICAgIGlmIChmZGVfdGFibGUgPT0gTlVMTCkKICAJY29udGlu dWU7CiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmV4cHIuYyBiL2dkYi9kd2FyZjJleHByLmMKLWlu ZGV4IDY0MDFlNzIuLjA2NDRiNDYgMTAwNjQ0CitpbmRleCA0NmJjOWQ3Li5lNjc1NTc1IDEwMDY0 NAogLS0tIGEvZ2RiL2R3YXJmMmV4cHIuYwogKysrIGIvZ2RiL2R3YXJmMmV4cHIuYwotQEAgLTEy NSw4ICsxMjUsNyBAQCBkd2FyZl9leHByX2ZldGNoIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0 ICpjdHgsIGludCBuKQotIAotIC8qIEFkZCBhIG5ldyBwaWVjZSB0byBDVFgncyBwaWVjZSBsaXN0 LiAgKi8KLSBzdGF0aWMgdm9pZAotLWFkZF9waWVjZSAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4 dCAqY3R4LAotLSAgICAgICAgICAgaW50IGluX3JlZywgQ09SRV9BRERSIHZhbHVlLCBVTE9OR0VT VCBzaXplKQotK2FkZF9waWVjZSAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LCBVTE9O R0VTVCBzaXplKQotIHsKLSAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwOwotIAotQEAgLTE0 MSw5ICsxNDAsMTUgQEAgYWRkX3BpZWNlIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaXplb2YgKHN0cnVjdCBkd2FyZl9leHBy X3BpZWNlKSk7Ci0gCi0gICBwID0gJmN0eC0+cGllY2VzW2N0eC0+bnVtX3BpZWNlcyAtIDFdOwot LSAgcC0+aW5fcmVnID0gaW5fcmVnOwotLSAgcC0+dmFsdWUgPSB2YWx1ZTsKLSsgIHAtPmxvY2F0 aW9uID0gY3R4LT5sb2NhdGlvbjsKLSAgIHAtPnNpemUgPSBzaXplOwotKyAgaWYgKHAtPmxvY2F0 aW9uID09IERXQVJGX1ZBTFVFX0xJVEVSQUwpCi0rICAgIHsKLSsgICAgICBwLT52LmxpdGVyYWwu ZGF0YSA9IGN0eC0+ZGF0YTsKLSsgICAgICBwLT52LmxpdGVyYWwubGVuZ3RoID0gY3R4LT5sZW47 Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgcC0+di52YWx1ZSA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0 eCwgMCk7Ci0gfQotIAotIC8qIEV2YWx1YXRlIHRoZSBleHByZXNzaW9uIGF0IEFERFIgKExFTiBi eXRlcyBsb25nKSB1c2luZyB0aGUgY29udGV4dAotQEAgLTI4Nyw2ICsyOTIsMjMgQEAgc2lnbmVk X2FkZHJlc3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCBhZGRyX3NpemUpCi0g ICAgIH0KLSB9Ci0gDAotKwotKy8qIENoZWNrIHRoYXQgdGhlIGN1cnJlbnQgb3BlcmF0b3IgaXMg ZWl0aGVyIGF0IHRoZSBlbmQgb2YgYW4KLSsgICBleHByZXNzaW9uLCBvciB0aGF0IGl0IGlzIGZv bGxvd2VkIGJ5IGEgY29tcG9zaXRpb24gb3BlcmF0b3IuICAqLwotKwotK3N0YXRpYyB2b2lkCi0r cmVxdWlyZV9jb21wb3NpdGlvbiAoZ2RiX2J5dGUgKm9wX3B0ciwgZ2RiX2J5dGUgKm9wX2VuZCwg Y29uc3QgY2hhciAqb3BfbmFtZSkKLSt7Ci0rICAvKiBJdCBzZWVtcyBsaWtlIERXX09QX0dOVV91 bmluaXQgc2hvdWxkIGJlIGhhbmRsZWQgaGVyZS4gIEhvd2V2ZXIsCi0rICAgICBpdCBkb2Vzbid0 IHNlZW0gdG8gbWFrZSBzZW5zZSBmb3IgRFdfT1BfKl92YWx1ZSwgYW5kIGl0IHdhcyBub3QKLSsg ICAgIGNoZWNrZWQgYXQgdGhlIG90aGVyIHBsYWNlIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBjYWxs ZWQuICAqLwotKyAgaWYgKG9wX3B0ciAhPSBvcF9lbmQgJiYgKm9wX3B0ciAhPSBEV19PUF9waWVj ZSAmJiAqb3BfcHRyICE9IERXX09QX2JpdF9waWVjZSkKLSsgICAgZXJyb3IgKF8oIkRXQVJGLTIg ZXhwcmVzc2lvbiBlcnJvcjogYCVzJyBvcGVyYXRpb25zIG11c3QgYmUgIgotKwkgICAgICJ1c2Vk IGVpdGhlciBhbG9uZSBvciBpbiBjb25qdWN0aW9uIHdpdGggRFdfT1BfcGllY2UgIgotKwkgICAg ICJvciBEV19PUF9iaXRfcGllY2UuIiksCi0rCSAgIG9wX25hbWUpOwotK30KLSsKLSAvKiBUaGUg ZW5naW5lIGZvciB0aGUgZXhwcmVzc2lvbiBldmFsdWF0b3IuICBVc2luZyB0aGUgY29udGV4dCBp biBDVFgsCi0gICAgZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24gYmV0d2VlbiBPUF9QVFIgYW5kIE9Q X0VORC4gICovCi0gCi1AQCAtMjk1LDggKzMxNyw3IEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVj dCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKLSAJCSAgZ2RiX2J5dGUgKm9wX3B0ciwgZ2RiX2J5 dGUgKm9wX2VuZCkKLSB7Ci0gICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hf Ynl0ZV9vcmRlciAoY3R4LT5nZGJhcmNoKTsKLS0KLS0gIGN0eC0+aW5fcmVnID0gMDsKLSsgIGN0 eC0+bG9jYXRpb24gPSBEV0FSRl9WQUxVRV9NRU1PUlk7Ci0gICBjdHgtPmluaXRpYWxpemVkID0g MTsgIC8qIERlZmF1bHQgaXMgaW5pdGlhbGl6ZWQuICAqLwotIAotICAgaWYgKGN0eC0+cmVjdXJz aW9uX2RlcHRoID4gY3R4LT5tYXhfcmVjdXJzaW9uX2RlcHRoKQotQEAgLTQzNiwyMCArNDU3LDM2 IEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKLSAJ CSAgICJ1c2VkIGVpdGhlciBhbG9uZSBvciBpbiBjb25qdWN0aW9uIHdpdGggRFdfT1BfcGllY2Uu IikpOwotIAotIAkgIHJlc3VsdCA9IG9wIC0gRFdfT1BfcmVnMDsKLS0JICBjdHgtPmluX3JlZyA9 IDE7Ci0tCi0rCSAgY3R4LT5sb2NhdGlvbiA9IERXQVJGX1ZBTFVFX1JFR0lTVEVSOwotIAkgIGJy ZWFrOwotIAotIAljYXNlIERXX09QX3JlZ3g6Ci0gCSAgb3BfcHRyID0gcmVhZF91bGViMTI4IChv cF9wdHIsIG9wX2VuZCwgJnJlZyk7Ci0tCSAgaWYgKG9wX3B0ciAhPSBvcF9lbmQgJiYgKm9wX3B0 ciAhPSBEV19PUF9waWVjZSkKLS0JICAgIGVycm9yIChfKCJEV0FSRi0yIGV4cHJlc3Npb24gZXJy b3I6IERXX09QX3JlZyBvcGVyYXRpb25zIG11c3QgYmUgIgotLQkJICAgInVzZWQgZWl0aGVyIGFs b25lIG9yIGluIGNvbmp1Y3Rpb24gd2l0aCBEV19PUF9waWVjZS4iKSk7Ci0rCSAgcmVxdWlyZV9j b21wb3NpdGlvbiAob3BfcHRyLCBvcF9lbmQsICJEV19PUF9yZWd4Iik7Ci0gCi0gCSAgcmVzdWx0 ID0gcmVnOwotLQkgIGN0eC0+aW5fcmVnID0gMTsKLSsJICBjdHgtPmxvY2F0aW9uID0gRFdBUkZf VkFMVUVfUkVHSVNURVI7Ci0gCSAgYnJlYWs7Ci0gCi0rCWNhc2UgRFdfT1BfaW1wbGljaXRfdmFs dWU6Ci0rCSAgewotKwkgICAgVUxPTkdFU1QgbGVuOwotKwkgICAgb3BfcHRyID0gcmVhZF91bGVi MTI4IChvcF9wdHIsIG9wX2VuZCwgJmxlbik7Ci0rCSAgICBpZiAob3BfcHRyICsgbGVuID4gb3Bf ZW5kKQotKwkgICAgICBlcnJvciAoXygiRFdfT1BfaW1wbGljaXRfdmFsdWU6IHRvbyBmZXcgYnl0 ZXMgYXZhaWxhYmxlLiIpKTsKLSsJICAgIGN0eC0+bGVuID0gbGVuOwotKwkgICAgY3R4LT5kYXRh ID0gb3BfcHRyOwotKwkgICAgY3R4LT5sb2NhdGlvbiA9IERXQVJGX1ZBTFVFX0xJVEVSQUw7Ci0r CSAgICBvcF9wdHIgKz0gbGVuOwotKwkgICAgcmVxdWlyZV9jb21wb3NpdGlvbiAob3BfcHRyLCBv cF9lbmQsICJEV19PUF9pbXBsaWNpdF92YWx1ZSIpOwotKwkgIH0KLSsJICBnb3RvIG5vX3B1c2g7 Ci0rCi0rCWNhc2UgRFdfT1Bfc3RhY2tfdmFsdWU6Ci0rCSAgY3R4LT5sb2NhdGlvbiA9IERXQVJG X1ZBTFVFX1NUQUNLOwotKwkgIHJlcXVpcmVfY29tcG9zaXRpb24gKG9wX3B0ciwgb3BfZW5kLCAi RFdfT1Bfc3RhY2tfdmFsdWUiKTsKLSsJICBnb3RvIG5vX3B1c2g7Ci0rCi0gCWNhc2UgRFdfT1Bf YnJlZzA6Ci0gCWNhc2UgRFdfT1BfYnJlZzE6Ci0gCWNhc2UgRFdfT1BfYnJlZzI6Ci1AQCAtNTEz LDEyICs1NTAsMTUgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4 dCAqY3R4LAotICAgICAgICAgICAgICAgIHNwZWNpZmljIHRoaXNfYmFzZSBtZXRob2QuICAqLwot IAkgICAgKGN0eC0+Z2V0X2ZyYW1lX2Jhc2UpIChjdHgtPmJhdG9uLCAmZGF0YXN0YXJ0LCAmZGF0 YWxlbik7Ci0gCSAgICBkd2FyZl9leHByX2V2YWwgKGN0eCwgZGF0YXN0YXJ0LCBkYXRhbGVuKTsK LSsJICAgIGlmIChjdHgtPmxvY2F0aW9uID09IERXQVJGX1ZBTFVFX0xJVEVSQUwKLSsJCXx8IGN0 eC0+bG9jYXRpb24gPT0gRFdBUkZfVkFMVUVfU1RBQ0spCi0rCSAgICAgIGVycm9yIChfKCJOb3Qg aW1wbGVtZW50ZWQ6IGNvbXB1dGluZyBmcmFtZSBiYXNlIHVzaW5nIGV4cGxpY2l0IHZhbHVlIG9w ZXJhdG9yIikpOwotIAkgICAgcmVzdWx0ID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKLS0J ICAgIGlmIChjdHgtPmluX3JlZykKLSsJICAgIGlmIChjdHgtPmxvY2F0aW9uID09IERXQVJGX1ZB TFVFX1JFR0lTVEVSKQotIAkgICAgICByZXN1bHQgPSAoY3R4LT5yZWFkX3JlZykgKGN0eC0+YmF0 b24sIHJlc3VsdCk7Ci0gCSAgICByZXN1bHQgPSByZXN1bHQgKyBvZmZzZXQ7Ci0gCSAgICBjdHgt PnN0YWNrX2xlbiA9IGJlZm9yZV9zdGFja19sZW47Ci0tCSAgICBjdHgtPmluX3JlZyA9IDA7Ci0r CSAgICBjdHgtPmxvY2F0aW9uID0gRFdBUkZfVkFMVUVfTUVNT1JZOwotIAkgIH0KLSAJICBicmVh azsKLSAJY2FzZSBEV19PUF9kdXA6Ci1AQCAtNzU4LDEyICs3OTgsMTMgQEAgZXhlY3V0ZV9zdGFj a19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAotIAotICAgICAgICAgICAgIC8q IFJlY29yZCB0aGUgcGllY2UuICAqLwotICAgICAgICAgICAgIG9wX3B0ciA9IHJlYWRfdWxlYjEy OCAob3BfcHRyLCBvcF9lbmQsICZzaXplKTsKLS0gICAgICAgICAgICBhZGRyX29yX3JlZ251bSA9 IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7Ci0tICAgICAgICAgICAgYWRkX3BpZWNlIChjdHgs IGN0eC0+aW5fcmVnLCBhZGRyX29yX3JlZ251bSwgc2l6ZSk7Ci0rCSAgICBhZGRfcGllY2UgKGN0 eCwgc2l6ZSk7Ci0gCi0tICAgICAgICAgICAgLyogUG9wIG9mZiB0aGUgYWRkcmVzcy9yZWdudW0s IGFuZCBjbGVhciB0aGUgaW5fcmVnIGZsYWcuICAqLwotLSAgICAgICAgICAgIGR3YXJmX2V4cHJf cG9wIChjdHgpOwotLSAgICAgICAgICAgIGN0eC0+aW5fcmVnID0gMDsKLSsgICAgICAgICAgICAv KiBQb3Agb2ZmIHRoZSBhZGRyZXNzL3JlZ251bSwgYW5kIHJlc2V0IHRoZSBsb2NhdGlvbgotKwkg ICAgICAgdHlwZS4gICovCi0rCSAgICBpZiAoY3R4LT5sb2NhdGlvbiAhPSBEV0FSRl9WQUxVRV9M SVRFUkFMKQotKwkgICAgICBkd2FyZl9leHByX3BvcCAoY3R4KTsKLSsgICAgICAgICAgICBjdHgt PmxvY2F0aW9uID0gRFdBUkZfVkFMVUVfTUVNT1JZOwotICAgICAgICAgICB9Ci0gICAgICAgICAg IGdvdG8gbm9fcHVzaDsKLSAKLUBAIC03NzUsNiArODE2LDEzIEBAIGV4ZWN1dGVfc3RhY2tfb3Ag KHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKK0BAIC04NDgsNiArODQ4LDEzIEBAIGV4 ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKICAJICBjdHgt PmluaXRpYWxpemVkID0gMDsKICAJICBnb3RvIG5vX3B1c2g7CiAgCkBAIC01MDM1LDMwICs0NTg5 LDEwIEBAIGluZGV4IDY0MDFlNzIuLjA2NDRiNDYgMTAwNjQ0CiAgCSAgZXJyb3IgKF8oIlVuaGFu ZGxlZCBkd2FyZiBleHByZXNzaW9uIG9wY29kZSAweCV4IiksIG9wKTsKICAJfQogZGlmZiAtLWdp dCBhL2dkYi9kd2FyZjJleHByLmggYi9nZGIvZHdhcmYyZXhwci5oCi1pbmRleCA2YjNhMDY4Li41 OTdjMmRlIDEwMDY0NAoraW5kZXggYTlhOGEwNS4uZDQ0OTAxMiAxMDA2NDQKIC0tLSBhL2dkYi9k d2FyZjJleHByLmgKICsrKyBiL2dkYi9kd2FyZjJleHByLmgKLUBAIC0yMyw2ICsyMywxOSBAQAot ICNpZiAhZGVmaW5lZCAoRFdBUkYyRVhQUl9IKQotICNkZWZpbmUgRFdBUkYyRVhQUl9ICi0gCi0r LyogVGhlIGxvY2F0aW9uIG9mIGEgdmFsdWUuICAqLwotK2VudW0gZHdhcmZfdmFsdWVfbG9jYXRp b24KLSt7Ci0rICAvKiBUaGUgcGllY2UgaXMgaW4gbWVtb3J5LiAgKi8KLSsgIERXQVJGX1ZBTFVF X01FTU9SWSwKLSsgIC8qIFRoZSBwaWVjZSBpcyBpbiBhIHJlZ2lzdGVyLiAgKi8KLSsgIERXQVJG X1ZBTFVFX1JFR0lTVEVSLAotKyAgLyogVGhlIHBpZWNlIGlzIG9uIHRoZSBzdGFjay4gICovCi0r ICBEV0FSRl9WQUxVRV9TVEFDSywKLSsgIC8qIFRoZSBwaWVjZSBpcyBhIGxpdGVyYWwuICAqLwot KyAgRFdBUkZfVkFMVUVfTElURVJBTAotK307Ci0rCi0gLyogVGhlIGV4cHJlc3Npb24gZXZhbHVh dG9yIHdvcmtzIHdpdGggYSBkd2FyZl9leHByX2NvbnRleHQsIGRlc2NyaWJpbmcKLSAgICBpdHMg Y3VycmVudCBzdGF0ZSBhbmQgaXRzIGNhbGxiYWNrcy4gICovCi0gc3RydWN0IGR3YXJmX2V4cHJf Y29udGV4dAotQEAgLTcwLDE5ICs4MywyMyBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0CitA QCAtMTAyLDEwICsxMDIsMTAgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dAogICAgICAgVGhl IHJlc3VsdCBtdXN0IGJlIGxpdmUgdW50aWwgdGhlIGN1cnJlbnQgZXhwcmVzc2lvbiBldmFsdWF0 aW9uCiAgICAgICBpcyBjb21wbGV0ZS4gICovCiAgICB1bnNpZ25lZCBjaGFyICooKmdldF9zdWJy KSAodm9pZCAqYmF0b24sIG9mZl90IG9mZnNldCwgc2l6ZV90ICpsZW5ndGgpOwpAQCAtNTA3MCw4 NSArNDYwNCw4IEBAIGluZGV4IDZiM2EwNjguLjU5N2MyZGUgMTAwNjQ0CiAgCiAgICAvKiBUaGUg Y3VycmVudCBkZXB0aCBvZiBkd2FyZiBleHByZXNzaW9uIHJlY3Vyc2lvbiwgdmlhIERXX09QX2Nh bGwqLAogICAgICAgRFdfT1BfZmJyZWcsIERXX09QX3B1c2hfb2JqZWN0X2FkZHJlc3MsIGV0Yy4s IGFuZCB0aGUgbWF4aW11bQotICAgICAgZGVwdGggd2UnbGwgdG9sZXJhdGUgYmVmb3JlIHJhaXNp bmcgYW4gZXJyb3IuICAqLwotICAgaW50IHJlY3Vyc2lvbl9kZXB0aCwgbWF4X3JlY3Vyc2lvbl9k ZXB0aDsKLSAKLS0gIC8qIE5vbi16ZXJvIGlmIHRoZSByZXN1bHQgaXMgaW4gYSByZWdpc3Rlci4g IFRoZSByZWdpc3RlciBudW1iZXIKLS0gICAgIHdpbGwgYmUgb24gdGhlIGV4cHJlc3Npb24gc3Rh Y2suICAqLwotLSAgaW50IGluX3JlZzsKLSsgIC8qIExvY2F0aW9uIG9mIHRoZSB2YWx1ZS4gICov Ci0rICBlbnVtIGR3YXJmX3ZhbHVlX2xvY2F0aW9uIGxvY2F0aW9uOwotKwotKyAgLyogRm9yIFZB TFVFX0xJVEVSQUwsIGEgdGhlIGN1cnJlbnQgbGl0ZXJhbCB2YWx1ZSdzIGxlbmd0aCBhbmQKLSsg ICAgIGRhdGEuICAqLwotKyAgVUxPTkdFU1QgbGVuOwotKyAgZ2RiX2J5dGUgKmRhdGE7Ci0gCi0g ICAvKiBJbml0aWFsaXphdGlvbiBzdGF0dXMgb2YgdmFyaWFibGU6IE5vbi16ZXJvIGlmIHZhcmlh YmxlIGhhcyBiZWVuCi0gICAgICBpbml0aWFsaXplZDsgemVybyBvdGhlcndpc2UuICAqLwotQEAg LTkzLDkgKzExMCw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQKLSAKLSAgICAgIEVhY2gg dGltZSBEV19PUF9waWVjZSBpcyBleGVjdXRlZCwgd2UgYWRkIGEgbmV3IGVsZW1lbnQgdG8gdGhl Ci0gICAgICBlbmQgb2YgdGhpcyBhcnJheSwgcmVjb3JkaW5nIHRoZSBjdXJyZW50IHRvcCBvZiB0 aGUgc3RhY2ssIHRoZQotLSAgICAgY3VycmVudCBpbl9yZWcgZmxhZywgYW5kIHRoZSBzaXplIGdp dmVuIGFzIHRoZSBvcGVyYW5kIHRvCi0tICAgICBEV19PUF9waWVjZS4gIFdlIHRoZW4gcG9wIHRo ZSB0b3AgdmFsdWUgZnJvbSB0aGUgc3RhY2ssIGNsZWFyIHRoZQotLSAgICAgaW5fcmVnIGZsYWcs IGFuZCByZXN1bWUgZXZhbHVhdGlvbi4KLSsgICAgIGN1cnJlbnQgbG9jYXRpb24sIGFuZCB0aGUg c2l6ZSBnaXZlbiBhcyB0aGUgb3BlcmFuZCB0bwotKyAgICAgRFdfT1BfcGllY2UuICBXZSB0aGVu IHBvcCB0aGUgdG9wIHZhbHVlIGZyb20gdGhlIHN0YWNrLCByZXN0IHRoZQotKyAgICAgbG9jYXRp b24sIGFuZCByZXN1bWUgZXZhbHVhdGlvbi4KLSAKLSAgICAgIFRoZSBEd2FyZiBzcGVjIGRvZXNu J3Qgc2F5IHdoZXRoZXIgRFdfT1BfcGllY2UgcG9wcyB0aGUgdG9wIHZhbHVlCi0gICAgICBmcm9t IHRoZSBzdGFjay4gIFdlIGRvLCBlbnN1cmluZyB0aGF0IGNsaWVudHMgb2YgdGhpcyBpbnRlcmZh Y2UKLUBAIC0xMDYsMTIgKzEyMywxMSBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0Ci0gCi0g ICAgICBJZiBhbiBleHByZXNzaW9uIG5ldmVyIHVzZXMgRFdfT1BfcGllY2UsIG51bV9waWVjZXMg d2lsbCBiZSB6ZXJvLgotICAgICAgKEl0IHdvdWxkIGJlIG5pY2UgdG8gcHJlc2VudCB0aGVzZSBj YXNlcyBhcyBleHByZXNzaW9ucyB5aWVsZGluZwotLSAgICAgYSBzaW5nbGUgcGllY2UsIHdpdGgg aW5fcmVnIGNsZWFyLCBzbyB0aGF0IGNhbGxlcnMgbmVlZCBub3QKLS0gICAgIGRpc3Rpbmd1aXNo IGJldHdlZW4gdGhlIG5vLURXX09QX3BpZWNlIGFuZCBvbmUtRFdfT1BfcGllY2UgY2FzZXMuCi0t ICAgICBCdXQgZXhwcmVzc2lvbnMgd2l0aCBubyBEV19PUF9waWVjZSBvcGVyYXRpb25zIGhhdmUg bm8gdmFsdWUgdG8KLS0gICAgIHBsYWNlIGluIGEgcGllY2UncyAnc2l6ZScgZmllbGQ7IHRoZSBz aXplIGNvbWVzIGZyb20gdGhlCi0tICAgICBzdXJyb3VuZGluZyBkYXRhLiAgU28gdGhlIHR3byBj YXNlcyBuZWVkIHRvIGJlIGhhbmRsZWQKLS0gICAgIHNlcGFyYXRlbHkuKSAgKi8KLSsgICAgIGEg c2luZ2xlIHBpZWNlLCBzbyB0aGF0IGNhbGxlcnMgbmVlZCBub3QgZGlzdGluZ3Vpc2ggYmV0d2Vl biB0aGUKLSsgICAgIG5vLURXX09QX3BpZWNlIGFuZCBvbmUtRFdfT1BfcGllY2UgY2FzZXMuICBC dXQgZXhwcmVzc2lvbnMgd2l0aAotKyAgICAgbm8gRFdfT1BfcGllY2Ugb3BlcmF0aW9ucyBoYXZl IG5vIHZhbHVlIHRvIHBsYWNlIGluIGEgcGllY2UncwotKyAgICAgJ3NpemUnIGZpZWxkOyB0aGUg c2l6ZSBjb21lcyBmcm9tIHRoZSBzdXJyb3VuZGluZyBkYXRhLiAgU28gdGhlCi0rICAgICB0d28g Y2FzZXMgbmVlZCB0byBiZSBoYW5kbGVkIHNlcGFyYXRlbHkuKSAgKi8KLSAgIGludCBudW1fcGll Y2VzOwotICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnBpZWNlczsKLSB9OwotQEAgLTEyMCwx MyArMTM2LDIyIEBAIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQKLSAvKiBBIHBpZWNlIG9mIGFu IG9iamVjdCwgYXMgcmVjb3JkZWQgYnkgRFdfT1BfcGllY2UuICAqLwotIHN0cnVjdCBkd2FyZl9l eHByX3BpZWNlCi0gewotLSAgLyogSWYgSU5fUkVHIGlzIHplcm8sIHRoZW4gdGhlIHBpZWNlIGlz IGluIG1lbW9yeSwgYW5kIFZBTFVFIGlzIGl0cyBhZGRyZXNzLgotLSAgICAgSWYgSU5fUkVHIGlz IG5vbi16ZXJvLCB0aGVuIHRoZSBwaWVjZSBpcyBpbiBhIHJlZ2lzdGVyLCBhbmQgVkFMVUUKLS0g ICAgIGlzIHRoZSByZWdpc3RlciBudW1iZXIuICAqLwotLSAgaW50IGluX3JlZzsKLS0KLS0gIC8q IFRoaXMgcGllY2UncyBhZGRyZXNzIG9yIHJlZ2lzdGVyIG51bWJlci4gICovCi0tICBDT1JFX0FE RFIgdmFsdWU7Ci0rICBlbnVtIGR3YXJmX3ZhbHVlX2xvY2F0aW9uIGxvY2F0aW9uOwotKwotKyAg dW5pb24KLSsgIHsKLSsgICAgLyogVGhpcyBwaWVjZSdzIGFkZHJlc3Mgb3IgcmVnaXN0ZXIgbnVt YmVyLiAgKi8KLSsgICAgQ09SRV9BRERSIHZhbHVlOwotKwotKyAgICBzdHJ1Y3QKLSsgICAgewot KyAgICAgIC8qIEEgcG9pbnRlciB0byB0aGUgZGF0YSBtYWtpbmcgdXAgdGhpcyBwaWVjZSwgZm9y IGxpdGVyYWwKLSsJIHBpZWNlcy4gICovCi0rICAgICAgZ2RiX2J5dGUgKmRhdGE7Ci0rICAgICAg LyogVGhlIGxlbmd0aCBvZiB0aGUgYXZhaWxhYmxlIGRhdGEuICAqLwotKyAgICAgIFVMT05HRVNU IGxlbmd0aDsKLSsgICAgfSBsaXRlcmFsOwotKyAgfSB2OwotIAotICAgLyogVGhlIGxlbmd0aCBv ZiB0aGUgcGllY2UsIGluIGJ5dGVzLiAgKi8KLSAgIFVMT05HRVNUIHNpemU7CiBkaWZmIC0tZ2l0 IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxvYy5jCi1pbmRleCBjM2Y2ZDQwLi5hZjgx NmY0IDEwMDY0NAoraW5kZXggM2E4MTIwMi4uODVmNDQ4NyAxMDA2NDQKIC0tLSBhL2dkYi9kd2Fy ZjJsb2MuYwogKysrIGIvZ2RiL2R3YXJmMmxvYy5jCiBAQCAtMTE2LDYgKzExNiw5IEBAIHN0cnVj dCBkd2FyZl9leHByX2JhdG9uCkBAIC01MTgxLDcgKzQ2MzgsNyBAQCBpbmRleCBjM2Y2ZDQwLi5h ZjgxNmY0IDEwMDY0NAogKyAgICAgIGdkYl9hc3NlcnQgKHN5bWJhdG9uICE9IE5VTEwpOwogKyAg ICAgICpzdGFydCA9IHN5bWJhdG9uLT5kYXRhOwogKyAgICAgICpsZW5ndGggPSBzeW1iYXRvbi0+ c2l6ZTsKLSsgICAgfQorICAgICB9CiArICBlbHNlIGlmIChTWU1CT0xfQ09NUFVURURfT1BTIChm cmFtZWZ1bmMpID09ICZkd2FyZjJfbWlzc2luZ19mdW5jcykKICsgICAgewogKyAgICAgIHN0cnVj dCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqc3ltYmF0b247CkBAIC01MTkwLDcgKzQ2NDcsNyBAQCBp bmRleCBjM2Y2ZDQwLi5hZjgxNmY0IDEwMDY0NAogKyAgICAgIGdkYl9hc3NlcnQgKHN5bWJhdG9u ID09IE5VTEwpOwogKyAgICAgICpzdGFydCA9IE5VTEw7CiArICAgICAgKmxlbmd0aCA9IDA7CS8q IHVudXNlZCAqLwotICAgICB9CisrICAgIH0KICsgIGVsc2UKICsgICAgaW50ZXJuYWxfZXJyb3Ig KF9fRklMRV9fLCBfX0xJTkVfXywKICsJCSAgICBfKCJVbnN1cHBvcnRlZCBTWU1CT0xfQ09NUFVU RURfT1BTICVwIGZvciBcIiVzXCIiKSwKQEAgLTUzMzQsNDggKzQ3OTEsNyBAQCBpbmRleCBjM2Y2 ZDQwLi5hZjgxNmY0IDEwMDY0NAogIHN0cnVjdCBwaWVjZV9jbG9zdXJlCiAgewogICAgLyogVGhl IG51bWJlciBvZiBwaWVjZXMgdXNlZCB0byBkZXNjcmliZSB0aGlzIHZhcmlhYmxlLiAgKi8KLUBA IC0yNTksMTggKzM5NiwxOCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQot IAkgIG1lbXNldCAoY29udGVudHMgKyBvZmZzZXQsIDAsIHAtPnNpemUpOwotIAkgIHNldF92YWx1 ZV9vcHRpbWl6ZWRfb3V0ICh2LCAxKTsKLSAJfQotLSAgICAgIGVsc2UgaWYgKHAtPmluX3JlZykK LSsgICAgICBlbHNlIGlmIChwLT5sb2NhdGlvbiA9PSBEV0FSRl9WQUxVRV9SRUdJU1RFUikKLSAJ ewotIAkgIHN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLSAJ ICBnZGJfYnl0ZSByZWd2YWxbTUFYX1JFR0lTVEVSX1NJWkVdOwotLQkgIGludCBnZGJfcmVnbnVt ID0gZ2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAoYXJjaCwgcC0+dmFsdWUpOwotKwkgIGlu dCBnZGJfcmVnbnVtID0gZ2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAoYXJjaCwgcC0+di52 YWx1ZSk7Ci0gCi0gCSAgZ2V0X2ZyYW1lX3JlZ2lzdGVyIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVn dmFsKTsKLSAJICBtZW1jcHkgKGNvbnRlbnRzICsgb2Zmc2V0LCByZWd2YWwsIHAtPnNpemUpOwot IAl9Ci0gICAgICAgZWxzZQotIAl7Ci0tCSAgcmVhZF9tZW1vcnkgKHAtPnZhbHVlLCBjb250ZW50 cyArIG9mZnNldCwgcC0+c2l6ZSk7Ci0rCSAgcmVhZF9tZW1vcnkgKHAtPnYudmFsdWUsIGNvbnRl bnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKLSAJfQotICAgICAgIG9mZnNldCArPSBwLT5zaXplOwot ICAgICB9Ci1AQCAtMjk1LDE1ICs0MzIsMTUgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCi0gICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9w aWVjZXM7IGkrKykKLSAgICAgewotICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0g JmMtPnBpZWNlc1tpXTsKLS0gICAgICBpZiAocC0+aW5fcmVnKQotKyAgICAgIGlmIChwLT5sb2Nh dGlvbiA9PSBEV0FSRl9WQUxVRV9SRUdJU1RFUikKLSAJewotIAkgIHN0cnVjdCBnZGJhcmNoICph cmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLS0JICBpbnQgZ2RiX3JlZ251bSA9IGdkYmFy Y2hfZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAtPnZhbHVlKTsKLSsJICBpbnQgZ2RiX3Jl Z251bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAtPnYudmFsdWUpOwot IAkgIHB1dF9mcmFtZV9yZWdpc3RlciAoZnJhbWUsIGdkYl9yZWdudW0sIGNvbnRlbnRzICsgb2Zm c2V0KTsKLSAJfQotICAgICAgIGVsc2UKLSAJewotLQkgIHdyaXRlX21lbW9yeSAocC0+dmFsdWUs IGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKLSsJICB3cml0ZV9tZW1vcnkgKHAtPnYudmFs dWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKLSAJfQotICAgICAgIG9mZnNldCArPSBw LT5zaXplOwotICAgICB9Ci1AQCAtMzQzLDkgKzQ4MCw4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2Nf ZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCitAQCAt MzgyLDkgKzUxOSw4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAq dmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCiAgCQkJICBzdHJ1Y3QgZHdhcmYyX3Blcl9j dV9kYXRhICpwZXJfY3UpCiAgewogICAgc3RydWN0IHZhbHVlICpyZXR2YWw7CkBAIC01Mzg2LDE3 ICs0ODAyLDE3IEBAIGluZGV4IGMzZjZkNDAuLmFmODE2ZjQgMTAwNjQ0CiAgCiAgICBpZiAoc2l6 ZSA9PSAwKQogICAgICB7Ci1AQCAtMzU1LDIyICs0OTEsOCBAQCBkd2FyZjJfZXZhbHVhdGVfbG9j X2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAg LTM5NCwyMiArNTMwLDggQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9s ICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKICAgICAgICByZXR1cm4gcmV0dmFsOwog ICAgICB9CiAgCiAtICBiYXRvbi5mcmFtZSA9IGZyYW1lOwogLSAgYmF0b24ub2JqZmlsZSA9IGR3 YXJmMl9wZXJfY3Vfb2JqZmlsZSAocGVyX2N1KTsKLS0KLS0gIGN0eCA9IG5ld19kd2FyZl9leHBy X2NvbnRleHQgKCk7Ci0tICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXBfZnJlZV9kd2FyZl9leHBy X2NvbnRleHQgKGN0eCk7CiArICBjdHggPSBkd2FyZl9leHByX3ByZXBfY3R4IChmcmFtZSwgZGF0 YSwgc2l6ZSwgcGVyX2N1KTsKICAKKy0gIGN0eCA9IG5ld19kd2FyZl9leHByX2NvbnRleHQgKCk7 CistICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXBfZnJlZV9kd2FyZl9leHByX2NvbnRleHQgKGN0 eCk7CistCiAtICBjdHgtPmdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChiYXRvbi5vYmpmaWxl KTsKIC0gIGN0eC0+YWRkcl9zaXplID0gZHdhcmYyX3Blcl9jdV9hZGRyX3NpemUgKHBlcl9jdSk7 CiAtICBjdHgtPmJhdG9uID0gJmJhdG9uOwpAQCAtNTQxMCwxMTAgKzQ4MjYsMTkgQEAgaW5kZXgg YzNmNmQ0MC4uYWY4MTZmNCAxMDA2NDQKICAgIGlmIChjdHgtPm51bV9waWVjZXMgPiAwKQogICAg ICB7CiAgICAgICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmM7Ci1AQCAtMzgyLDIyICs1MDQsNzAg QEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBm cmFtZV9pbmZvICpmcmFtZSwKLSAJCQkJCWMpOwotICAgICAgIFZBTFVFX0ZSQU1FX0lEIChyZXR2 YWwpID0gZnJhbWVfaWQ7Ci0gICAgIH0KLS0gIGVsc2UgaWYgKGN0eC0+aW5fcmVnKQotLSAgICB7 Ci0tICAgICAgc3RydWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwot LSAgICAgIENPUkVfQUREUiBkd2FyZl9yZWdudW0gPSBkd2FyZl9leHByX2ZldGNoIChjdHgsIDAp OwotLSAgICAgIGludCBnZGJfcmVnbnVtID0gZ2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAo YXJjaCwgZHdhcmZfcmVnbnVtKTsKLS0gICAgICByZXR2YWwgPSB2YWx1ZV9mcm9tX3JlZ2lzdGVy IChTWU1CT0xfVFlQRSAodmFyKSwgZ2RiX3JlZ251bSwgZnJhbWUpOwotLSAgICB9Ci0gICBlbHNl Ci0gICAgIHsKLS0gICAgICBDT1JFX0FERFIgYWRkcmVzcyA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0 eCwgMCk7Ci0tCi0tICAgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2 YXIpKTsKLS0gICAgICBWQUxVRV9MVkFMIChyZXR2YWwpID0gbHZhbF9tZW1vcnk7Ci0tICAgICAg c2V0X3ZhbHVlX2xhenkgKHJldHZhbCwgMSk7Ci0tICAgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2 YWwsIDEpOwotLSAgICAgIHNldF92YWx1ZV9hZGRyZXNzIChyZXR2YWwsIGFkZHJlc3MpOwotKyAg ICAgIHN3aXRjaCAoY3R4LT5sb2NhdGlvbikKLSsJewotKwljYXNlIERXQVJGX1ZBTFVFX1JFR0lT VEVSOgotKwkgIHsKLSsJICAgIHN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X2ZyYW1lX2FyY2gg KGZyYW1lKTsKLSsJICAgIENPUkVfQUREUiBkd2FyZl9yZWdudW0gPSBkd2FyZl9leHByX2ZldGNo IChjdHgsIDApOwotKwkgICAgaW50IGdkYl9yZWdudW0gPSBnZGJhcmNoX2R3YXJmMl9yZWdfdG9f cmVnbnVtIChhcmNoLCBkd2FyZl9yZWdudW0pOwotKwkgICAgcmV0dmFsID0gdmFsdWVfZnJvbV9y ZWdpc3RlciAoU1lNQk9MX1RZUEUgKHZhciksIGdkYl9yZWdudW0sIGZyYW1lKTsKLSsJICB9Ci0r CSAgYnJlYWs7Ci0rCi0rCWNhc2UgRFdBUkZfVkFMVUVfTUVNT1JZOgotKwkgIHsKLSsJICAgIENP UkVfQUREUiBhZGRyZXNzID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKLSsKK0BAIC00Mzks NiArNTYxLDExIEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFy LCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCisgCSAgICBDT1JFX0FERFIgYWRkcmVzcyA9IGR3 YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7CisgCSAgICBpbnQgaW5fc3RhY2tfbWVtb3J5ID0gZHdh cmZfZXhwcl9mZXRjaF9pbl9zdGFja19tZW1vcnkgKGN0eCwgMCk7CisgCiArCSAgICAvKiBvYmpl Y3RfYWRkcmVzc19zZXQgY2FsbGVkIGhlcmUgaXMgcmVxdWlyZWQgaW4gQUxMT0NBVEVfVkFMVUUn cwogKwkgICAgICAgQ0hFQ0tfVFlQRURFRiBmb3IgdGhlIG9iamVjdCdzIHBvc3NpYmxlCiArCSAg ICAgICBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzLiAgKi8KICsJICAgIG9iamVjdF9hZGRyZXNz X3NldCAoYWRkcmVzcyk7CiArCi0rCSAgICByZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAoU1lNQk9M X1RZUEUgKHZhcikpOwotKwkgICAgVkFMVUVfTFZBTCAocmV0dmFsKSA9IGx2YWxfbWVtb3J5Owot KwkgICAgc2V0X3ZhbHVlX2xhenkgKHJldHZhbCwgMSk7Ci0rCSAgICBzZXRfdmFsdWVfc3RhY2sg KHJldHZhbCwgMSk7Ci0rCSAgICBzZXRfdmFsdWVfYWRkcmVzcyAocmV0dmFsLCBhZGRyZXNzKTsK LSsJICB9Ci0rCSAgYnJlYWs7Ci0rCi0rCWNhc2UgRFdBUkZfVkFMVUVfU1RBQ0s6Ci0rCSAgewot KwkgICAgZ2RiX2J5dGUgYnl0ZXNbc2l6ZW9mIChVTE9OR0VTVCldOwotKwkgICAgVUxPTkdFU1Qg dmFsdWUgPSAoVUxPTkdFU1QpIGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7Ci0rCSAgICBiZmRf Ynl0ZSAqY29udGVudHM7Ci0rCSAgICBzaXplX3QgbiA9IGN0eC0+YWRkcl9zaXplOwotKwotKwkg ICAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnl0ZXMsIGN0eC0+YWRkcl9zaXplLAotKwkJCQkg ICAgZ2RiYXJjaF9ieXRlX29yZGVyIChjdHgtPmdkYmFyY2gpLAotKwkJCQkgICAgdmFsdWUpOwot KwkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2YXIpKTsKLSsJICAg IGNvbnRlbnRzID0gdmFsdWVfY29udGVudHNfcmF3IChyZXR2YWwpOwotKwkgICAgaWYgKG4gPiBU WVBFX0xFTkdUSCAoU1lNQk9MX1RZUEUgKHZhcikpKQotKwkgICAgICBuID0gVFlQRV9MRU5HVEgg KFNZTUJPTF9UWVBFICh2YXIpKTsKLSsJICAgIG1lbWNweSAoY29udGVudHMsIGJ5dGVzLCBuKTsK LSsJICB9Ci0rCSAgYnJlYWs7Ci0rCi0rCWNhc2UgRFdBUkZfVkFMVUVfTElURVJBTDoKLSsJICB7 Ci0rCSAgICBiZmRfYnl0ZSAqY29udGVudHM7Ci0rCSAgICBzaXplX3QgbiA9IGN0eC0+bGVuOwot KwotKwkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2YXIpKTsKLSsJ ICAgIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHNfcmF3IChyZXR2YWwpOwotKwkgICAgaWYgKG4g PiBUWVBFX0xFTkdUSCAoU1lNQk9MX1RZUEUgKHZhcikpKQotKwkgICAgICBuID0gVFlQRV9MRU5H VEggKFNZTUJPTF9UWVBFICh2YXIpKTsKLSsJICAgIG1lbWNweSAoY29udGVudHMsIGN0eC0+ZGF0 YSwgbik7Ci0rCSAgfQotKwkgIGJyZWFrOwotKwotKwlkZWZhdWx0OgotKwkgIGludGVybmFsX2Vy cm9yIChfX0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQgbG9jYXRpb24gdHlwZSIpKTsKLSsJ fQotICAgICB9Ci0gCi0gICBzZXRfdmFsdWVfaW5pdGlhbGl6ZWQgKHJldHZhbCwgY3R4LT5pbml0 aWFsaXplZCk7Ci1AQCAtNDk0LDcgKzY2NCw3IEBAIGR3YXJmMl9sb2NfZGVzY19uZWVkc19mcmFt ZSAoZ2RiX2J5dGUgKmRhdGEsIHVuc2lnbmVkIHNob3J0IHNpemUsCi0gCi0gICBkd2FyZl9leHBy X2V2YWwgKGN0eCwgZGF0YSwgc2l6ZSk7Ci0gCi0tICBpbl9yZWcgPSBjdHgtPmluX3JlZzsKLSsg IGluX3JlZyA9IGN0eC0+bG9jYXRpb24gPT0gRFdBUkZfVkFMVUVfUkVHSVNURVI7Ci0gCi0gICBp ZiAoY3R4LT5udW1fcGllY2VzID4gMCkKLSAgICAgewotQEAgLTUwMyw3ICs2NzMsNyBAQCBkd2Fy ZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUgKGdkYl9ieXRlICpkYXRhLCB1bnNpZ25lZCBzaG9ydCBz aXplLAotICAgICAgIC8qIElmIHRoZSBsb2NhdGlvbiBoYXMgc2V2ZXJhbCBwaWVjZXMsIGFuZCBh bnkgb2YgdGhlbSBhcmUgaW4KLSAgICAgICAgICByZWdpc3RlcnMsIHRoZW4gd2Ugd2lsbCBuZWVk IGEgZnJhbWUgdG8gZmV0Y2ggdGhlbSBmcm9tLiAgKi8KLSAgICAgICBmb3IgKGkgPSAwOyBpIDwg Y3R4LT5udW1fcGllY2VzOyBpKyspCi0tICAgICAgICBpZiAoY3R4LT5waWVjZXNbaV0uaW5fcmVn KQotKyAgICAgICAgaWYgKGN0eC0+cGllY2VzW2ldLmxvY2F0aW9uID09IERXQVJGX1ZBTFVFX1JF R0lTVEVSKQotICAgICAgICAgICBpbl9yZWcgPSAxOwotICAgICB9Ci0gCi1AQCAtNzM1LDcgKzkw NSw3IEBAIHN0YXRpYyBpbnQKKyAJICAgIHJldHZhbCA9IGFsbG9jYXRlX3ZhbHVlIChTWU1CT0xf VFlQRSAodmFyKSk7CisgCSAgICBWQUxVRV9MVkFMIChyZXR2YWwpID0gbHZhbF9tZW1vcnk7Cisg CSAgICBzZXRfdmFsdWVfbGF6eSAocmV0dmFsLCAxKTsKK0BAIC04MTUsNyArOTQyLDcgQEAgc3Rh dGljIGludAogIGxvY2xpc3RfZGVzY3JpYmVfbG9jYXRpb24gKHN0cnVjdCBzeW1ib2wgKnN5bWJv bCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICAvKiBGSVhNRTogQ291bGQgcHJpbnQg dGhlIGVudGlyZSBsaXN0IG9mIGxvY2F0aW9ucy4gICovCkBAIC01NTIyLDcgKzQ4NDcsNyBAQCBp bmRleCBjM2Y2ZDQwLi5hZjgxNmY0IDEwMDY0NAogICAgcmV0dXJuIDE7CiAgfQogIAotQEAgLTc1 MSwxNiArOTIxLDU2IEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9s ICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTgzMSwxNiArOTU4LDU2IEBA IGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLAogIAogICAgZGF0YSA9IGZpbmRfbG9jYXRpb25fZXhwcmVzc2lv biAoZGxiYXRvbiwgJnNpemUsIGF4LT5zY29wZSk7CiAgICBpZiAoZGF0YSA9PSBOVUxMKQpAQCAt NTU5OSw3ICs0OTI0LDcgQEAgaW5kZXggMGJmY2ZjYS4uMDEwMThkNiAxMDA2NDQKICAKICAjZW5k aWYgLyogZHdhcmYybG9jLmggKi8KIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2Ri L2R3YXJmMnJlYWQuYwotaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKK2luZGV4IDRjY2Uz NmIuLmQzOTQ4ODcgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdh cmYycmVhZC5jCiBAQCAtNDgsNiArNDgsMTIgQEAKQEAgLTU2NjYsNyArNDk5MSw3IEBAIGluZGV4 IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICAgIGNoYXIgKm5hbWU7CiAgICAgIGNoYXIgKmRp cm5hbWU7CiAgCi1AQCAtNjkxLDYgKzcxMiwxMSBAQCBzdHJ1Y3QgZmllbGRfaW5mbworQEAgLTY4 OSw2ICs3MTAsMTEgQEAgc3RydWN0IGZpZWxkX2luZm8KICAgICAgaW50IG5mbmZpZWxkczsKICAg IH07CiAgCkBAIC01Njc4LDcgKzUwMDMsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0 NAogIC8qIE9uZSBpdGVtIG9uIHRoZSBxdWV1ZSBvZiBjb21waWxhdGlvbiB1bml0cyB0byByZWFk IGluIGZ1bGwgc3ltYm9scwogICAgIGZvci4gICovCiAgc3RydWN0IGR3YXJmMl9xdWV1ZV9pdGVt Ci1AQCAtODAyLDcgKzgyOCwxMCBAQCBzdGF0aWMgdm9pZCBzY2FuX3BhcnRpYWxfc3ltYm9scyAo c3RydWN0IHBhcnRpYWxfZGllX2luZm8gKiwKK0BAIC04MDAsNyArODI2LDEwIEBAIHN0YXRpYyB2 b2lkIHNjYW5fcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqLAogIHN0 YXRpYyB2b2lkIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKiwK ICAJCQkJc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKQEAgLTU2OTAsNyArNTAxNSw3IEBAIGluZGV4 IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCiAgc3RhdGljIHZvaWQgYWRkX3BhcnRpYWxfbmFt ZXNwYWNlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJCQkgICBDT1JFX0FERFIg Kmxvd3BjLCBDT1JFX0FERFIgKmhpZ2hwYywKLUBAIC04MjcsNiArODU2LDEwIEBAIHN0YXRpYyB2 b2lkIGR3YXJmMl9wc3ltdGFiX3RvX3N5bXRhYiAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwor QEAgLTgyNSw2ICs4NTQsMTAgQEAgc3RhdGljIHZvaWQgZHdhcmYyX3BzeW10YWJfdG9fc3ltdGFi IChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7CiAgCiAgc3RhdGljIHZvaWQgcHN5bXRhYl90b19z eW10YWJfMSAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwogIApAQCAtNTcwMSw3ICs1MDI2LDcg QEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICBzdGF0aWMgdm9pZCBkd2FyZjJfcmVh ZF9hYmJyZXZzIChiZmQgKmFiZmQsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKICAKICBzdGF0aWMg dm9pZCBkd2FyZjJfZnJlZV9hYmJyZXZfdGFibGUgKHZvaWQgKik7Ci1AQCAtOTQ3LDggKzk4MCwx MyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnRhZ190eXBlX3RvX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOworQEAgLTk0NSw4ICs5NzgsMTMgQEAgc3RhdGljIHN0 cnVjdCB0eXBlICp0YWdfdHlwZV90b190eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3 YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKnJlYWRfdHlwZV9kaWUgKHN0cnVj dCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIApAQCAtNTcxNSw3ICs1MDQwLDcg QEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICBzdGF0aWMgY2hhciAqdHlwZW5hbWVf Y29uY2F0IChzdHJ1Y3Qgb2JzdGFjayAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKnByZWZpeCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqc3VmZml4LAotQEAgLTk2Niw3ICsxMDA0LDggQEAgc3RhdGljIGludCBkd2FyZjJf cmFuZ2VzX3JlYWQgKHVuc2lnbmVkLCBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCitAQCAtOTY0 LDcgKzEwMDIsOCBAQCBzdGF0aWMgaW50IGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQsIENP UkVfQUREUiAqLCBDT1JFX0FERFIgKiwKICAJCQkgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqLCBz dHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7CiAgCiAgc3RhdGljIGludCBkd2FyZjJfZ2V0X3BjX2Jv dW5kcyAoc3RydWN0IGRpZV9pbmZvICosCkBAIC01NzI1LDcgKzUwNTAsNyBAQCBpbmRleCA3ZjA0 NDI3Li4zMTUwNGZlIDEwMDY0NAogIAogIHN0YXRpYyB2b2lkIGdldF9zY29wZV9wY19ib3VuZHMg KHN0cnVjdCBkaWVfaW5mbyAqLAogIAkJCQkgQ09SRV9BRERSICosIENPUkVfQUREUiAqLAotQEAg LTk5MCwxNyArMTAyOSwyNSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfYXR0YWNoX2ZuX2ZpZWxkc190 b190eXBlIChzdHJ1Y3QgZmllbGRfaW5mbyAqLAorQEAgLTk4OCwxNyArMTAyNywyNSBAQCBzdGF0 aWMgdm9pZCBkd2FyZjJfYXR0YWNoX2ZuX2ZpZWxkc190b190eXBlIChzdHJ1Y3QgZmllbGRfaW5m byAqLAogIAogIHN0YXRpYyB2b2lkIHByb2Nlc3Nfc3RydWN0dXJlX3Njb3BlIChzdHJ1Y3QgZGll X2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKQEAgLTU3NTQsNyArNTA3OSw3IEBAIGlu ZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgc3RhdGljIGNvbnN0IGNoYXIgKm5hbWVzcGFj ZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJCQkJICAgaW50ICppc19hbm9ueW1vdXMs IHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCi1AQCAtMTAzNiw2ICsxMDgzLDkgQEAgc3RhdGljIHZv aWQgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwor QEAgLTEwMzQsNiArMTA4MSw5IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGll X2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgY2hhciAqZHdhcmYyX2xp bmthZ2VfbmFtZSAoc3RydWN0IGRpZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCkBA IC01NzY0LDcgKzUwODksNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIHN0YXRp YyBjaGFyICpkd2FyZjJfY2Fub25pY2FsaXplX25hbWUgKGNoYXIgKiwgc3RydWN0IGR3YXJmMl9j dSAqLAogIAkJCQkgICAgICAgc3RydWN0IG9ic3RhY2sgKik7CiAgCi1AQCAtMTA3OCw3ICsxMTI4 LDcgQEAgc3RhdGljIGludCBpc19yZWZfYXR0ciAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKK0BAIC0x MDc2LDcgKzExMjYsNyBAQCBzdGF0aWMgaW50IGlzX3JlZl9hdHRyIChzdHJ1Y3QgYXR0cmlidXRl ICopOwogIAogIHN0YXRpYyB1bnNpZ25lZCBpbnQgZHdhcmYyX2dldF9yZWZfZGllX29mZnNldCAo c3RydWN0IGF0dHJpYnV0ZSAqKTsKICAKQEAgLTU3NzMsNyArNTA5OCw3IEBAIGluZGV4IDdmMDQ0 MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCiAgc3RhdGljIHN0cnVjdCBkaWVfaW5mbyAqZm9sbG93X2Rp ZV9yZWZfb3Jfc2lnIChzdHJ1Y3QgZGllX2luZm8gKiwKICAJCQkJCSAgICAgICBzdHJ1Y3QgYXR0 cmlidXRlICosCi1AQCAtMTE1MCw2ICsxMjAwLDkgQEAgc3RhdGljIHZvaWQgYWdlX2NhY2hlZF9j b21wX3VuaXRzICh2b2lkKTsKK0BAIC0xMTQ4LDYgKzExOTgsOSBAQCBzdGF0aWMgdm9pZCBhZ2Vf Y2FjaGVkX2NvbXBfdW5pdHMgKHZvaWQpOwogIAogIHN0YXRpYyB2b2lkIGZyZWVfb25lX2NhY2hl ZF9jb21wX3VuaXQgKHZvaWQgKik7CiAgCkBAIC01NzgzLDcgKzUxMDgsNyBAQCBpbmRleCA3ZjA0 NDI3Li4zMTUwNGZlIDEwMDY0NAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqc2V0X2RpZV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICBzdHJ1Y3QgZHdhcmYyX2N1 ICopOwogIAotQEAgLTExNjksMjIgKzEyMjIsMzEgQEAgc3RhdGljIHZvaWQgZHdhcmYyX2NsZWFy X21hcmtzIChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICopOworQEAgLTExNjcsMjIgKzEyMjAs MzEgQEAgc3RhdGljIHZvaWQgZHdhcmYyX2NsZWFyX21hcmtzIChzdHJ1Y3QgZHdhcmYyX3Blcl9j dV9kYXRhICopOwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X2RpZV90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpOwogIApAQCAtNTgyNCw3ICs1MTQ5 LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB9CiAgCiAgLyogV2hlbiBsb2Fk aW5nIHNlY3Rpb25zLCB3ZSBjYW4gZWl0aGVyIGxvb2sgZm9yICIuPG5hbWU+Iiwgb3IgZm9yCi1A QCAtMTI3NywxMCArMTMzOSwxMyBAQCBkd2FyZjJfbG9jYXRlX3NlY3Rpb25zIChiZmQgKmFiZmQs IGFzZWN0aW9uICpzZWN0cCwgdm9pZCAqaWdub3JlX3B0cikKK0BAIC0xMjc1LDEwICsxMzM3LDEz IEBAIGR3YXJmMl9sb2NhdGVfc2VjdGlvbnMgKGJmZCAqYWJmZCwgYXNlY3Rpb24gKnNlY3RwLCB2 b2lkICppZ25vcmVfcHRyKQogIH0KICAKICAvKiBEZWNvbXByZXNzIGEgc2VjdGlvbiB0aGF0IHdh cyBjb21wcmVzc2VkIHVzaW5nIHpsaWIuICBTdG9yZSB0aGUKQEAgLTU4NDAsNyArNTE2NSw3IEBA IGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICAgICAgICAgICAgICAgICAgICAgICAg IGdkYl9ieXRlICoqb3V0YnVmLCBiZmRfc2l6ZV90eXBlICpvdXRzaXplKQogIHsKICAgIGJmZCAq YWJmZCA9IG9iamZpbGUtPm9iZmQ7Ci1AQCAtMTI5Nyw2ICsxMzYyLDcgQEAgemxpYl9kZWNvbXBy ZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCitA QCAtMTI5NSw2ICsxMzYwLDcgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCiAgICB6X3N0cmVhbSBzdHJtOwogICAgaW50 IHJjOwogICAgaW50IGhlYWRlcl9zaXplID0gMTI7CkBAIC01ODQ4LDcgKzUxNzMsNyBAQCBpbmRl eCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIAogICAgaWYgKGJmZF9zZWVrIChhYmZkLCBzZWN0 cC0+ZmlsZXBvcywgU0VFS19TRVQpICE9IDAKICAgICAgICB8fCBiZmRfYnJlYWQgKGNvbXByZXNz ZWRfYnVmZmVyLCBjb21wcmVzc2VkX3NpemUsIGFiZmQpICE9IGNvbXByZXNzZWRfc2l6ZSkKLUBA IC0xMzI2LDggKzEzOTIsMTMgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCitAQCAtMTMyNCw4ICsxMzkwLDEzIEBAIHps aWJfZGVjb21wcmVzc19zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgYXNlY3Rpb24g KnNlY3RwLAogICAgc3RybS5hdmFpbF9pbiA9IGNvbXByZXNzZWRfc2l6ZSAtIGhlYWRlcl9zaXpl OwogICAgc3RybS5uZXh0X2luID0gKEJ5dGVmKikgY29tcHJlc3NlZF9idWZmZXIgKyBoZWFkZXJf c2l6ZTsKICAgIHN0cm0uYXZhaWxfb3V0ID0gdW5jb21wcmVzc2VkX3NpemU7CkBAIC01ODY0LDcg KzUxODksNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgcmMgPSBpbmZsYXRl SW5pdCAoJnN0cm0pOwogICAgd2hpbGUgKHN0cm0uYXZhaWxfaW4gPiAwKQogICAgICB7Ci1AQCAt MTM0OCwyNiArMTQxOSwxNzYgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCitAQCAtMTM0NiwyNiArMTQxNywxNzYgQEAg emxpYl9kZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlv biAqc2VjdHAsCiAgICAgIGVycm9yIChfKCJEd2FyZiBFcnJvcjogY29uY2x1ZGluZyBEV0FSRiB1 bmNvbXByZXNzaW9uIGluICclcyc6ICVkIiksCiAgICAgICAgICAgICBiZmRfZ2V0X2ZpbGVuYW1l IChhYmZkKSwgcmMpOwogIApAQCAtNjA0Niw3ICs1MzcxLDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1 MDRmZSAxMDA2NDQKICAKICAgIGlmIChpbmZvLT5hc2VjdGlvbiA9PSBOVUxMIHx8IGluZm8tPnNp emUgPT0gMCkKICAgICAgcmV0dXJuOwotQEAgLTEzODAsNyArMTYwMSw3IEBAIGR3YXJmMl9yZWFk X3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25f aW5mbyAqaW5mbykKK0BAIC0xMzc4LDcgKzE1OTksNyBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8p CiAgICAgICAgLyogVXBvbiBkZWNvbXByZXNzaW9uLCB1cGRhdGUgdGhlIGJ1ZmZlciBhbmQgaXRz IHNpemUuICAqLwogICAgICAgIGlmIChzdHJuY21wIChoZWFkZXIsICJaTElCIiwgc2l6ZW9mICho ZWFkZXIpKSA9PSAwKQogICAgICAgICAgewpAQCAtNjA1NSw3ICs1MzgwLDcgQEAgaW5kZXggN2Yw NDQyNy4uMzE1MDRmZSAxMDA2NDQKICAJCQkJICAgJmluZm8tPnNpemUpOwogICAgICAgICAgICBy ZXR1cm47CiAgICAgICAgICB9Ci1AQCAtMTQwMyw3ICsxNjI0LDcgQEAgZHdhcmYyX3JlYWRfc2Vj dGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZv ICppbmZvKQorQEAgLTE0MDEsNyArMTYyMiw3IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAK ICAgICAgICBpZiAocmV0YnVmICE9IE1BUF9GQUlMRUQpCiAgCXsKQEAgLTYwNjQsNyArNTM4OSw3 IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCSAgaW5mby0+YnVmZmVyID0gcmV0 YnVmICsgKHNlY3RwLT5maWxlcG9zICYgKHBhZ2VzaXplIC0gMSkpIDsKICAJICByZXR1cm47CiAg CX0KLUBAIC0xNDExLDggKzE2MzIsMTUgQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZvKQorQEAgLTE0 MDksOCArMTYzMCwxNSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCiAgI2VuZGlmCiAgCiAgICAv KiBJZiB3ZSBnZXQgaGVyZSwgd2UgYXJlIGEgbm9ybWFsLCBub3QtY29tcHJlc3NlZCBzZWN0aW9u LiAgKi8KQEAgLTYwODIsNyArNTQwNyw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0 CiAgCiAgICAvKiBXaGVuIGRlYnVnZ2luZyAubyBmaWxlcywgd2UgbWF5IG5lZWQgdG8gYXBwbHkg cmVsb2NhdGlvbnM7IHNlZQogICAgICAgaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRj aGVzLzIwMDItMDQvbXNnMDAxMzYuaHRtbCAuCi1AQCAtMTQyMSw2ICsxNjQ5LDggQEAgZHdhcmYy X3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2Vj dGlvbl9pbmZvICppbmZvKQorQEAgLTE0MTksNiArMTY0Nyw4IEBAIGR3YXJmMl9yZWFkX3NlY3Rp b24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAq aW5mbykKICAgIHJldGJ1ZiA9IHN5bWZpbGVfcmVsb2NhdGVfZGVidWdfc2VjdGlvbiAoYWJmZCwg c2VjdHAsIGJ1Zik7CiAgICBpZiAocmV0YnVmICE9IE5VTEwpCiAgICAgIHsKQEAgLTYwOTEsNyAr NTQxNiw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICAgICAgaW5mby0+YnVm ZmVyID0gcmV0YnVmOwogICAgICAgIHJldHVybjsKICAgICAgfQotQEAgLTE0MjksNiArMTY1OSwx OSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0 IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCitAQCAtMTQyNyw2ICsxNjU3LDE5IEBAIGR3YXJm Ml9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3Nl Y3Rpb25faW5mbyAqaW5mbykKICAgICAgICB8fCBiZmRfYnJlYWQgKGJ1ZiwgaW5mby0+c2l6ZSwg YWJmZCkgIT0gaW5mby0+c2l6ZSkKICAgICAgZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBDYW4ndCBy ZWFkIERXQVJGIGRhdGEgZnJvbSAnJXMnIiksCiAgCSAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQp KTsKQEAgLTYxMTEsNyArNTQzNiw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAg fQogIAogIC8qIEZpbGwgaW4gU0VDVFAsIEJVRlAgYW5kIFNJWkVQIHdpdGggc2VjdGlvbiBpbmZv LCBnaXZlbiBPQkpGSUxFIGFuZAotQEAgLTE4MTIsNiArMjA1NSwzNyBAQCBsb29rdXBfc2lnbmF0 dXJlZF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgVUxPTkdFU1Qgc2lnKQorQEAgLTE4 MTAsNiArMjA1MywzNyBAQCBsb29rdXBfc2lnbmF0dXJlZF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSwgVUxPTkdFU1Qgc2lnKQogICAgcmV0dXJuIGVudHJ5OwogIH0KICAKQEAgLTYxNDks NyArNTQ3NCw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgLyogU3Vicm91dGlu ZSBvZiBwcm9jZXNzX3R5cGVfY29tcF91bml0IGFuZCBkd2FyZjJfYnVpbGRfcHN5bXRhYnNfaGFy ZAogICAgIHRvIGNvbWJpbmUgdGhlIGNvbW1vbiBwYXJ0cy4KICAgICBQcm9jZXNzIGEgY29tcGls YXRpb24gdW5pdCBmb3IgYSBwc3ltdGFiLgotQEAgLTIzNjEsNyArMjYzNSw3IEBAIHBhcnRpYWxf ZGllX3BhcmVudF9zY29wZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKK0BAIC0yMzU5 LDcgKzI2MzMsNyBAQCBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgKHN0cnVjdCBwYXJ0aWFsX2Rp ZV9pbmZvICpwZGksCiAgCSBpZ25vcmluZyB0aGVtLiAgKi8KICAgICAgICBjb21wbGFpbnQgKCZz eW1maWxlX2NvbXBsYWludHMsCiAgCQkgXygidW5oYW5kbGVkIGNvbnRhaW5pbmcgRElFIHRhZyAl ZCBmb3IgRElFIGF0ICVkIiksCkBAIC02MTU4LDcgKzU0ODMsNyBAQCBpbmRleCA3ZjA0NDI3Li4z MTUwNGZlIDEwMDY0NAogICAgICAgIHBhcmVudC0+c2NvcGUgPSBncmFuZHBhcmVudF9zY29wZTsK ICAgICAgfQogIAotQEAgLTIzNzYsMTIgKzI2NTAsMjIgQEAgcGFydGlhbF9kaWVfZnVsbF9uYW1l IChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAorQEAgLTIzNzQsMTIgKzI2NDgsMjIgQEAg cGFydGlhbF9kaWVfZnVsbF9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJ ICAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKICAgIGNoYXIgKnBhcmVudF9zY29wZTsK QEAgLTYxODUsNyArNTUxMCw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgfQog IAogIHN0YXRpYyB2b2lkCi1AQCAtMjM5NywxMiArMjY4MSw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJv bCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtMjM5NSwxMiArMjY3OSw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFO T0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUp KTsKICAKQEAgLTYyMDEsNyArNTUyNiw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0 CiAgCiAgICBpZiAoYWN0dWFsX25hbWUgPT0gTlVMTCkKICAgICAgYWN0dWFsX25hbWUgPSBwZGkt Pm5hbWU7Ci1AQCAtMjQ5Myw2ICsyNzc0LDEyIEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0 IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjQ5MSw2 ICsyNzcyLDEyIEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8g KnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkJICAgJm9iamZpbGUtPmdsb2JhbF9wc3lt Ym9scywKICAJCQkgICAwLCAoQ09SRV9BRERSKSAwLCBjdS0+bGFuZ3VhZ2UsIG9iamZpbGUpOwog ICAgICAgIGJyZWFrOwpAQCAtNjIxNCw3ICs1NTM5LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRm ZSAxMDA2NDQKICAgICAgY2FzZSBEV19UQUdfY2xhc3NfdHlwZToKICAgICAgY2FzZSBEV19UQUdf aW50ZXJmYWNlX3R5cGU6CiAgICAgIGNhc2UgRFdfVEFHX3N0cnVjdHVyZV90eXBlOgotQEAgLTI1 MzQsMjIgKzI4MjEsNiBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9p bmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTI1MzIsMjIgKzI4MTksNiBAQCBh ZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBAIC02MjM3LDcgKzU1NjIs NyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgaWYgKGJ1aWx0X2FjdHVhbF9u YW1lKQogICAgICB4ZnJlZSAoYWN0dWFsX25hbWUpOwogIH0KLUBAIC0yNTU5LDkgKzI4MzAsOSBA QCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTI1NTcsOSArMjgyOCw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJv bCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg ICAgbmFtZSBsaXN0ZWQgaW4gdGhlIGRpZS4gICovCiAgCiAgc3RhdGljIGludApAQCAtNjI0OSw3 ICs1NTc0LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgICAgewogICAgICBj YXNlIERXX1RBR19uYW1lc3BhY2U6CiAgICAgIGNhc2UgRFdfVEFHX3R5cGVkZWY6Ci1AQCAtMjU3 MSw3ICsyODQyLDIzIEBAIHBkaV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZykK K0BAIC0yNTY5LDcgKzI4NDAsMjMgQEAgcGRpX25lZWRzX25hbWVzcGFjZSAoZW51bSBkd2FyZl90 YWcgdGFnKQogICAgICBjYXNlIERXX1RBR191bmlvbl90eXBlOgogICAgICBjYXNlIERXX1RBR19l bnVtZXJhdGlvbl90eXBlOgogICAgICBjYXNlIERXX1RBR19lbnVtZXJhdG9yOgpAQCAtNjI3Myw3 ICs1NTk4LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgICAgZGVmYXVsdDoK ICAgICAgICByZXR1cm4gMDsKICAgICAgfQotQEAgLTI2MDQsMTIgKzI4OTEsMTIgQEAgc3RhdGlj IHZvaWQKK0BAIC0yNjAyLDEyICsyODg5LDEyIEBAIHN0YXRpYyB2b2lkCiAgYWRkX3BhcnRpYWxf bW9kdWxlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBDT1JFX0FERFIgKmxvd3BjLAog IAkJICAgIENPUkVfQUREUiAqaGlnaHBjLCBpbnQgbmVlZF9wYywgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgewpAQCAtNjI5MCw3ICs1NjE1LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2 NDQKICB9CiAgCiAgLyogUmVhZCBhIHBhcnRpYWwgZGllIGNvcnJlc3BvbmRpbmcgdG8gYSBzdWJw cm9ncmFtIGFuZCBjcmVhdGUgYSBwYXJ0aWFsCi1AQCAtMjcwMCwyNyArMjk4Nyw2IEBAIGd1ZXNz X3N0cnVjdHVyZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwKK0BA IC0yNjk4LDI3ICsyOTg1LDYgQEAgZ3Vlc3Nfc3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0aWFs X2RpZV9pbmZvICpzdHJ1Y3RfcGRpLAogIAogICAgICAgIGlmIChyZWFsX3BkaS0+ZGllX3BhcmVu dCAhPSBOVUxMKQogIAlyZXR1cm47CkBAIC02MzE4LDcgKzU2NDMsNyBAQCBpbmRleCA3ZjA0NDI3 Li4zMTUwNGZlIDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTMyOTcsNiArMzU2MywxNCBAQCBw cm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTMyOTUsNiArMzU2MSwxNCBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICBjYXNlIERXX1RBR19pbXBvcnRlZF9kZWNsYXJh dGlvbjoKICAgICAgY2FzZSBEV19UQUdfaW1wb3J0ZWRfbW9kdWxlOgogICAgICAgIHByb2Nlc3Np bmdfaGFzX25hbWVzcGFjZV9pbmZvID0gMTsKQEAgLTYzMzMsNyArNTY1OCw3IEBAIGluZGV4IDdm MDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICAgICAgaWYgKGRpZS0+Y2hpbGQgIT0gTlVMTCAmJiAo ZGllLT50YWcgPT0gRFdfVEFHX2ltcG9ydGVkX2RlY2xhcmF0aW9uCiAgCQkJCSB8fCBjdS0+bGFu Z3VhZ2UgIT0gbGFuZ3VhZ2VfZm9ydHJhbikpCiAgCWNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxh aW50cywgXygiVGFnICclcycgaGFzIHVuZXhwZWN0ZWQgY2hpbGRyZW4iKSwKLUBAIC0zMzEyLDQx ICszNTg2LDY4IEBAIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtMzMxMCw0MSArMzU4NCw2OCBAQCBwcm9jZXNzX2RpZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIC8qIFJldHVybiB0aGUgZnVs bHkgcXVhbGlmaWVkIG5hbWUgb2YgRElFLCBiYXNlZCBvbiBpdHMgRFdfQVRfbmFtZS4KICAgICBJ ZiBzY29wZSBxdWFsaWZpZXJzIGFyZSBhcHByb3ByaWF0ZSB0aGV5IHdpbGwgYmUgYWRkZWQuICBU aGUgcmVzdWx0CiAgICAgd2lsbCBiZSBhbGxvY2F0ZWQgb24gdGhlIG9iamZpbGVfb2JzdGFjaywg b3IgTlVMTCBpZiB0aGUgRElFIGRvZXMKQEAgLTY0MjMsNyArNTc0OCw3IEBAIGluZGV4IDdmMDQ0 MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgLyogUmVhZCB0aGUgaW1wb3J0IHN0YXRlbWVudCBzcGVjaWZp ZWQgYnkgdGhlIGdpdmVuIGRpZSBhbmQgcmVjb3JkIGl0LiAgKi8KICAKICBzdGF0aWMgdm9pZAot QEAgLTMzNTYsOSArMzY1NywxNSBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zMzU0LDkgKzM2NTUsMTUgQEAg cmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICBzdHJ1Y3QgZGllX2luZm8gKmltcG9ydGVkX2RpZTsKICAgIGNvbnN0IGNo YXIgKmltcG9ydGVkX25hbWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lX3ByZWZpeDsK QEAgLTY0NDEsNyArNTc2Niw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICBp bXBvcnRfYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2ltcG9ydCwgY3UpOwogICAgaWYg KGltcG9ydF9hdHRyID09IE5VTEwpCiAgICAgIHsKLUBAIC0zNDA2LDE3ICszNzEzLDI3IEBAIHJl YWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTM0MDQsMTcgKzM3MTEsMjcgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgcmV0dXJu OwogICAgICB9CiAgCkBAIC02NDc1LDcgKzU4MDAsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZl IDEwMDY0NAogICAgICAgIGNhbm9uaWNhbF9uYW1lID0gYWxsb2NhIChzdHJsZW4gKGltcG9ydGVk X25hbWVfcHJlZml4KSArIDIgKyBzdHJsZW4gKGltcG9ydGVkX25hbWUpICsgMSk7CiAgICAgICAg c3RyY3B5IChjYW5vbmljYWxfbmFtZSwgaW1wb3J0ZWRfbmFtZV9wcmVmaXgpOwogICAgICAgIHN0 cmNhdCAoY2Fub25pY2FsX25hbWUsICI6OiIpOwotQEAgLTM0MjcsOCArMzc0NCwxNCBAQCByZWFk X2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKK0BAIC0zNDI1LDggKzM3NDIsMTQgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgY2Fub25pY2Fs X25hbWUgPSBhbGxvY2EgKHN0cmxlbiAoaW1wb3J0ZWRfbmFtZSkgKyAxKTsKICAgICAgICBzdHJj cHkgKGNhbm9uaWNhbF9uYW1lLCBpbXBvcnRlZF9uYW1lKTsKICAgICAgfQpAQCAtNjQ5Miw3ICs1 ODE3LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB9CiAgCiAgc3RhdGljIHZv aWQKLUBAIC0zNjk3LDYgKzQwMjAsMTQgQEAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzY5NSw2ICs0MDE4LDE0 IEBAIGluaGVyaXRfYWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAKICAgIGF0dHIgPSBk d2FyZjJfYXR0ciAoZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKQEAgLTY1MDcsNyAr NTgzMiw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICBpZiAoIWF0dHIpCiAg ICAgIHJldHVybjsKICAKLUBAIC0zNzk1LDYgKzQxMjYsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNzkzLDYgKzQx MjQsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKICAgIGNoYXIgKm5hbWU7CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAgICBz dHJ1Y3QgYmxvY2sgKmJsb2NrOwpAQCAtNjUxNSw3ICs1ODQwLDcgQEAgaW5kZXggN2YwNDQyNy4u MzE1MDRmZSAxMDA2NDQKICAgIGludCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdfVEFH X2lubGluZWRfc3Vicm91dGluZSk7CiAgCiAgICBpZiAoaW5saW5lZF9mdW5jKQotQEAgLTM4MTMs MTMgKzQxNDUsMjMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzgxMSwxMyArNDE0MywyMyBAQCByZWFkX2Z1bmNfc2Nv cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJh c2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVY VCAob2JqZmlsZSkpOwogIApAQCAtNjU0Miw3ICs1ODY3LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1 MDRmZSAxMDA2NDQKICAgIGxvd3BjICs9IGJhc2VhZGRyOwogICAgaGlnaHBjICs9IGJhc2VhZGRy OwogIAotQEAgLTM4NDYsMTQgKzQxODgsMTkgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzg0NCwxNCArNDE4NiwxOSBA QCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAKICAgIGN1LT5saXN0X2luX3Njb3BlID0gJmxvY2FsX3N5bWJvbHM7CiAgCkBAIC02 NTY5LDcgKzU4OTQsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgICB9CiAg CiAgICBpbmhlcml0X2Fic3RyYWN0X2RpZXMgKGRpZSwgY3UpOwotQEAgLTM4NjksNiArNDIxNiwx MyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC0zODY3LDYgKzQyMTQsMTMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkJZGV0ZXJtaW5lX3ByZWZp eCAoZGllLCBjdSksCiAgCQkJcHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8pOwogIApAQCAt NjU4Myw3ICs1OTA4LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgIC8qIElm IHdlIGhhdmUgYWRkcmVzcyByYW5nZXMsIHJlY29yZCB0aGVtLiAgKi8KICAgIGR3YXJmMl9yZWNv cmRfYmxvY2tfcmFuZ2VzIChkaWUsIGJsb2NrLCBiYXNlYWRkciwgY3UpOwogICAgCi1AQCAtMzkw NSw3ICs0MjU5LDcgQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzkwMyw3ICs0MjU3LDcgQEAgcmVhZF9s ZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICAgICBhcyBtdWx0aXBsZSBsZXhpY2FsIGJsb2Nrcz8gIEhhbmRsaW5nIGNoaWxk cmVuIGluIGEgc2FuZSB3YXkgd291bGQKICAgICAgIGJlIG5hc3R5LiAgTWlnaHQgYmUgZWFzaWVy IHRvIHByb3Blcmx5IGV4dGVuZCBnZW5lcmljIGJsb2NrcyB0byAKICAgICAgIGRlc2NyaWJlIHJh bmdlcy4gICovCkBAIC02NTkyLDcgKzU5MTcsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEw MDY0NAogICAgICByZXR1cm47CiAgICBsb3dwYyArPSBiYXNlYWRkcjsKICAgIGhpZ2hwYyArPSBi YXNlYWRkcjsKLUBAIC0zOTIyLDcgKzQyNzYsNyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zOTIwLDcg KzQyNzQsNyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgfQogICAgbmV3ID0gcG9wX2NvbnRleHQgKCk7 CiAgCkBAIC02NjAxLDcgKzU5MjYsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAog ICAgICB7CiAgICAgICAgc3RydWN0IGJsb2NrICpibG9jawogICAgICAgICAgPSBmaW5pc2hfYmxv Y2sgKDAsICZsb2NhbF9zeW1ib2xzLCBuZXctPm9sZF9ibG9ja3MsIG5ldy0+c3RhcnRfYWRkciwK LUBAIC00MDc3LDcgKzQ0MzEsOCBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9mZnNl dCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAorQEAgLTQwNzUsNyArNDQyOSw4IEBAIGR3YXJmMl9y YW5nZXNfcmVhZCAodW5zaWduZWQgb2Zmc2V0LCBDT1JFX0FERFIgKmxvd19yZXR1cm4sCiAgICAg ZGlzY29udGludW91cywgaS5lLiBkZXJpdmVkIGZyb20gRFdfQVRfcmFuZ2VzIGluZm9ybWF0aW9u LiAgKi8KICBzdGF0aWMgaW50CiAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBDT1JFX0FERFIgKmxvd3BjLApAQCAtNjYxMSw3ICs1OTM2LDcgQEAgaW5kZXggN2Yw NDQyNy4uMzE1MDRmZSAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogICAg Q09SRV9BRERSIGxvdyA9IDA7Ci1AQCAtNDEwNSw3ICs0NDYwLDcgQEAgZHdhcmYyX2dldF9wY19i b3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3BjLAorQEAgLTQxMDMs NyArNDQ1OCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg Q09SRV9BRERSICpsb3dwYywKICAJewogIAkgIC8qIFZhbHVlIG9mIHRoZSBEV19BVF9yYW5nZXMg YXR0cmlidXRlIGlzIHRoZSBvZmZzZXQgaW4gdGhlCiAgCSAgICAgLmRlYnVnX3JhbmdlcyBzZWN0 aW9uLiAgKi8KQEAgLTY2MjAsNyArNTk0NSw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAw NjQ0CiAgCSAgICByZXR1cm4gMDsKICAJICAvKiBGb3VuZCBkaXNjb250aW51b3VzIHJhbmdlIG9m IGFkZHJlc3Nlcy4gICovCiAgCSAgcmV0ID0gLTE7Ci1AQCAtNDE0NCw3ICs0NDk5LDcgQEAgZHdh cmYyX2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAt NDE0Miw3ICs0NDk3LDcgQEAgZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcyAoc3RydWN0 IGRpZV9pbmZvICpkaWUsCiAgICBDT1JFX0FERFIgbG93LCBoaWdoOwogICAgc3RydWN0IGRpZV9p bmZvICpjaGlsZCA9IGRpZS0+Y2hpbGQ7CiAgCkBAIC02NjI5LDcgKzU5NTQsNyBAQCBpbmRleCA3 ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgICB7CiAgICAgICAgKmxvd3BjID0gbWluICgqbG93 cGMsIGxvdyk7CiAgICAgICAgKmhpZ2hwYyA9IG1heCAoKmhpZ2hwYywgaGlnaCk7Ci1AQCAtNDE4 MSw3ICs0NTM2LDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUs CitAQCAtNDE3OSw3ICs0NTM0LDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9p bmZvICpkaWUsCiAgICBDT1JFX0FERFIgYmVzdF9oaWdoID0gKENPUkVfQUREUikgMDsKICAgIENP UkVfQUREUiBjdXJyZW50X2xvdywgY3VycmVudF9oaWdoOwogIApAQCAtNjYzOCw3ICs1OTYzLDcg QEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgICAgewogICAgICAgIGJlc3RfbG93 ID0gY3VycmVudF9sb3c7CiAgICAgICAgYmVzdF9oaWdoID0gY3VycmVudF9oaWdoOwotQEAgLTQ2 NjMsNyArNTAxOCw3IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAq ZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00NjYxLDcgKzUwMTYsNyBAQCBkd2FyZjJf YWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpk aWUsCiAgICAvKiBUaGUgbmFtZSBpcyBhbHJlYWR5IGFsbG9jYXRlZCBhbG9uZyB3aXRoIHRoaXMg b2JqZmlsZSwgc28gd2UgZG9uJ3QKICAgICAgIG5lZWQgdG8gZHVwbGljYXRlIGl0IGZvciB0aGUg dHlwZS4gICovCiAgICBmbnAtPnBoeXNuYW1lID0gcGh5c25hbWUgPyBwaHlzbmFtZSA6ICIiOwpA QCAtNjY0Nyw3ICs1OTcyLDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgIHRo aXNfdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwogICAgaWYgKHRoaXNfdHlwZSAmJiBU WVBFX0NPREUgKHRoaXNfdHlwZSkgPT0gVFlQRV9DT0RFX0ZVTkMpCiAgICAgIHsKLUBAIC00NzIz LDE4ICs1MDc4LDE4IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAq ZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00NzIxLDE4ICs1MDc2LDE4IEBAIGR3YXJm Ml9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8g KmRpZSwKICAgICAgewogICAgICAgIC8qIFN1cHBvcnQgdGhlIC5kZWJ1Z19sb2Mgb2Zmc2V0cyAq LwogICAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQpAQCAtNjY3Myw3ICs1OTk4 LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgICB9CiAgfQogIAotQEAgLTQ4 NDcsNyArNTIwMiw3IEBAIHF1aXJrX2djY19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlciAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTQ4NDUsNyArNTIwMCw3 IEBAIHF1aXJrX2djY19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlciAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICByZXR1cm4gTlVMTDsKICAKICAgIGRvbWFp bl90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoVFlQRV9GSUVMRF9UWVBFIChwZm5fdHlwZSwgMCkp OwpAQCAtNjY4Miw3ICs2MDA3LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAg IHNtYXNoX3RvX21ldGhvZF90eXBlICh0eXBlLCBkb21haW5fdHlwZSwgVFlQRV9UQVJHRVRfVFlQ RSAocGZuX3R5cGUpLAogIAkJCVRZUEVfRklFTERTIChwZm5fdHlwZSksIFRZUEVfTkZJRUxEUyAo cGZuX3R5cGUpLAogIAkJCVRZUEVfVkFSQVJHUyAocGZuX3R5cGUpKTsKLUBAIC00OTAwLDcgKzUy NTUsNyBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtNDg5OCw3ICs1MjUzLDcgQEAgcmVhZF9zdHJ1Y3R1cmVfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIHJl dHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogICAgICB9CiAgCkBAIC02NjkxLDcg KzYwMTYsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgSU5JVF9DUExVU19T UEVDSUZJQyAodHlwZSk7CiAgCiAgICBuYW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwotQEAg LTQ5MDksMTQgKzUyNjQsMTggQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTQ5MDcsMTQgKzUyNjIsMTggQEAgcmVh ZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogICAgICAgIGlmIChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMKICAJICB8fCBj dS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YSkKICAJewpAQCAtNjcxMyw3ICs2MDM4LDcgQEAg aW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAJfQogICAgICB9CiAgCi1AQCAtNTEyNiw3 ICs1NDg1LDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTEyNCw3ICs1NDgzLDcgQEAgcmVhZF9lbnVtZXJh dGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg ICAgICAgcmV0dXJuIHNldF9kaWVfdHlwZSAoZGllLCB0eXBlLCBjdSk7CiAgICAgIH0KICAKQEAg LTY3MjIsNyArNjA0Nyw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCiAgICBU WVBFX0NPREUgKHR5cGUpID0gVFlQRV9DT0RFX0VOVU07CiAgICBuYW1lID0gZHdhcmYyX2Z1bGxf bmFtZSAoZGllLCBjdSk7Ci1AQCAtNTE1NCw1MSArNTUxMyw2IEBAIHJlYWRfZW51bWVyYXRpb25f dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUx NTIsNTEgKzU1MTEsNiBAQCByZWFkX2VudW1lcmF0aW9uX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwg dHlwZSwgY3UpOwogIH0KICAKQEAgLTY3NzQsNyArNjA5OSw3IEBAIGluZGV4IDdmMDQ0MjcuLjMx NTA0ZmUgMTAwNjQ0CiAgLyogR2l2ZW4gYSBwb2ludGVyIHRvIGEgZGllIHdoaWNoIGJlZ2lucyBh biBlbnVtZXJhdGlvbiwgcHJvY2VzcyBhbGwKICAgICB0aGUgZGllcyB0aGF0IGRlZmluZSB0aGUg bWVtYmVycyBvZiB0aGUgZW51bWVyYXRpb24sIGFuZCBjcmVhdGUgdGhlCiAgICAgc3ltYm9sIGZv ciB0aGUgZW51bWVyYXRpb24gdHlwZS4KLUBAIC01Mjc2LDYgKzU1OTAsMjkgQEAgcHJvY2Vzc19l bnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTUyNzQsNiArNTU4OCwyOSBAQCBwcm9jZXNzX2VudW1lcmF0aW9uX3Njb3BlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBuZXdfc3ltYm9s IChkaWUsIHRoaXNfdHlwZSwgY3UpOwogIH0KICAKQEAgLTY4MDQsNyArNjEyOSw3IEBAIGluZGV4 IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgLyogRXh0cmFjdCBhbGwgaW5mb3JtYXRpb24gZnJv bSBhIERXX1RBR19hcnJheV90eXBlIERJRSBhbmQgcHV0IGl0IGluCiAgICAgdGhlIERJRSdzIHR5 cGUgZmllbGQuICBGb3Igbm93LCB0aGlzIG9ubHkgaGFuZGxlcyBvbmUgZGltZW5zaW9uYWwKICAg ICBhcnJheXMuICAqLwotQEAgLTUyODksNyArNTYyNiw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUyODcsNyArNTYy NCw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQogICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSwgKnJhbmdlX3R5cGUsICpp bmRleF90eXBlOwogICAgc3RydWN0IHR5cGUgKipyYW5nZV90eXBlcyA9IE5VTEw7CiAgICBzdHJ1 Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtNjgxMyw3ICs2MTM4LDcgQEAgaW5kZXggN2YwNDQyNy4u MzE1MDRmZSAxMDA2NDQKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgY2hhciAqbmFt ZTsKICAKLUBAIC01MzM2LDE2ICs1NjczLDExIEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUzMzQsMTYgKzU2NzEsMTEg QEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICB0eXBlID0gZWxlbWVudF90eXBlOwogIAogICAgaWYgKHJlYWRfYXJyYXlfb3Jk ZXIgKGRpZSwgY3UpID09IERXX09SRF9jb2xfbWFqb3IpCkBAIC02ODM1LDcgKzYxNjAsNyBAQCBp bmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIAogICAgLyogVW5kZXJzdGFuZCBEd2FyZjIg c3VwcG9ydCBmb3IgdmVjdG9yIHR5cGVzIChsaWtlIHRoZXkgb2NjdXIgb24KICAgICAgIHRoZSBQ b3dlclBDIHcvIEFsdGlWZWMpLiAgR2NjIGp1c3QgYWRkcyBhbm90aGVyIGF0dHJpYnV0ZSB0byB0 aGUKLUBAIC01NDEyLDEyICs1NzQ0LDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01NDEwLDEyICs1NzQyLDE0IEBAIHJl YWRfc2V0X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgc2V0X3R5cGUsIGN1KTsKICB9CiAgCkBAIC02 ODUyLDcgKzYxNzcsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0cjsKICAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKICAgIENPUkVfQUREUiBi YXNlID0gKENPUkVfQUREUikgMDsKLUBAIC01NDI3LDI1ICs1NzYxLDU1IEBAIHJlYWRfY29tbW9u X2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAt NTQyNSwyNSArNTc1OSw1NSBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICB7CiAgICAgICAgLyogU3VwcG9ydCB0aGUg LmRlYnVnX2xvYyBvZmZzZXRzICovCiAgICAgICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0 cikpCkBAIC02OTE1LDcgKzYyNDAsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAog IAkgIGF0dHIgPSBkd2FyZjJfYXR0ciAoY2hpbGRfZGllLCBEV19BVF9kYXRhX21lbWJlcl9sb2Nh dGlvbiwgY3UpOwogIAkgIGlmIChhdHRyKQogIAkgICAgewotQEAgLTU0NjMsOCArNTgyNywyNSBA QCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTU0NjEsOCArNTgyNSwyNSBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgICAgICBTWU1CT0xfVkFM VUVfQUREUkVTUyAoc3ltKSA9IGJhc2UgKyBieXRlX29mZnNldDsKICAJICAgICAgYWRkX3N5bWJv bF90b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CiAgCSAgICB9CkBAIC02OTQxLDcgKzYy NjYsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgICB9CiAgfQogIAotQEAg LTU1MzIsNyArNTkxMyw3IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTUzMCw3ICs1OTExLDcgQEAgcmVhZF9uYW1lc3Bh Y2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBp ZiAoaXNfYW5vbnltb3VzKQogIAl7CiAgCSAgY29uc3QgY2hhciAqcHJldmlvdXNfcHJlZml4ID0g ZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSk7CkBAIC02OTUwLDcgKzYyNzUsNyBAQCBpbmRleCA3 ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIAl9CiAgICAgIH0KICAKLUBAIC01NTQ4LDIwICs1OTI5 LDE1NSBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTU1NDYsMjAgKzU5MjcsMTU1IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIH0KICB9CiAgCkBA IC03MTA5LDcgKzY0MzQsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIH0KICAK ICAvKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIG5hbWVzcGFjZSByZXByZXNlbnRlZCBieSBESUUu ICBTZXQKLUBAIC01NzI2LDI5ICs2MjQyLDExMyBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU3MjQsMjkgKzYy NDAsMTEzIEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpm aWxlX2FyY2ggKG9iamZpbGUpOwogICAgc3RydWN0IHR5cGUgKnR5cGUsICpyYW5nZV90eXBlLCAq aW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC03 MjM3LDcgKzY1NjIsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgY2hhcl90 eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFy Y2gpOwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5n ZV90eXBlKTsKICAKLUBAIC01ODQzLDcgKzY0NDMsNiBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKgor QEAgLTU4NDEsNyArNjQ0MSw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAgcmVhZF90eXBlZGVm IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKQEAgLTcyNDUsNyArNjU3MCw3IEBA IGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICBjb25zdCBjaGFyICpuYW1lID0gTlVM TDsKICAgIHN0cnVjdCB0eXBlICp0aGlzX3R5cGU7CiAgCi1AQCAtNTk1MSw4ICs2NTUwLDcgQEAg cmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtNTk0OSw4ICs2NTQ4LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgdHlwZSAqYmFz ZV90eXBlOwogICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyOwpAQCAtNzI1NSw3ICs2NTgwLDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2 NDQKICAgIGNoYXIgKm5hbWU7CiAgICAKICAgIGJhc2VfdHlwZSA9IGRpZV90eXBlIChkaWUsIGN1 KTsKLUBAIC01OTY1LDQyICs2NTYzLDg5IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU5NjMsNDIgKzY1NjEsODkg QEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgCQkgICAgIDAsIE5VTEwsIGN1LT5vYmpmaWxlKTsKICAgICAgfQogIApAQCAt NzM3NCw3ICs2Njk5LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAKICAgIG5h bWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CiAgICBpZiAobmFtZSkKLUBAIC02NDcxLDYgKzcx MTYsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqYnVmZmVyLCBn ZGJfYnl0ZSAqaW5mb19wdHIsCitAQCAtNjQ2OSw2ICs3MTE0LDcgQEAgbG9hZF9wYXJ0aWFsX2Rp ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKmJ1ZmZlciwgZ2RiX2J5dGUgKmluZm9fcHRyLAogIAkg ICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19sZXhpY2FsX2Jsb2NrCiAgCSAgJiYgYWJicmV2LT50 YWcgIT0gRFdfVEFHX3ZhcmlhYmxlCiAgCSAgJiYgYWJicmV2LT50YWcgIT0gRFdfVEFHX25hbWVz cGFjZQpAQCAtNzM4Miw3ICs2NzA3LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQK ICAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQogIAl7CiAgCSAgLyogT3RoZXJ3 aXNlIHdlIHNraXAgdG8gdGhlIG5leHQgc2libGluZywgaWYgYW55LiAgKi8KLUBAIC02NjkxLDkg KzczMzcsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFy dF9kaWUsCitAQCAtNjY4OSw5ICs3MzM1LDYgQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBh cnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAogIAkgIGlmIChwYXJ0X2RpZS0+ZGlybmFtZSA9PSBO VUxMKQogIAkgICAgcGFydF9kaWUtPmRpcm5hbWUgPSBEV19TVFJJTkcgKCZhdHRyKTsKICAJICBi cmVhazsKQEAgLTczOTIsNyArNjcxNyw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0 CiAgCWNhc2UgRFdfQVRfbG93X3BjOgogIAkgIGhhc19sb3dfcGNfYXR0ciA9IDE7CiAgCSAgcGFy dF9kaWUtPmxvd3BjID0gRFdfQUREUiAoJmF0dHIpOwotQEAgLTY5MjUsNyArNzU2OCw4IEBAIGZp eHVwX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAt NjkyMyw3ICs3NTY2LDggQEAgZml4dXBfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9p bmZvICpwYXJ0X2RpZSwKICAgIC8qIElmIHdlIGZvdW5kIGEgcmVmZXJlbmNlIGF0dHJpYnV0ZSBh bmQgdGhlIERJRSBoYXMgbm8gbmFtZSwgdHJ5CiAgICAgICB0byBmaW5kIGEgbmFtZSBpbiB0aGUg cmVmZXJyZWQgdG8gRElFLiAgKi8KICAKQEAgLTc3NDksNyArNzA3NCw3IEBAIGluZGV4IDdmMDQ0 MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgfQogIAogIC8qIEdldCBuYW1lIG9mIGEgZGllLCByZXR1cm4g TlVMTCBpZiBub3QgZm91bmQuICAqLwotQEAgLTEwMjAyLDExICsxMTA3MiwxMSBAQCBkd2FyZjJf Z2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorQEAgLTEwMjAwLDEx ICsxMTA3MCwxMSBAQCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRl ICphdHRyKQogICAgcmV0dXJuIDA7CiAgfQogIApAQCAtNzc2NCw3ICs3MDg5LDcgQEAgaW5kZXgg N2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB7CiAgICBpZiAoYXR0ci0+Zm9ybSA9PSBEV19GT1JN X3NkYXRhKQogICAgICByZXR1cm4gRFdfU05EIChhdHRyKTsKLUBAIC0xMTAxMSw4ICsxMTg4MSw2 IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVk IGludCBvZmZzZXQsCitAQCAtMTEwMDksOCArMTE4NzksNiBAQCBkd2FyZl9kZWNvZGVfbWFjcm9z IChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogIHsKICAgIGdk Yl9ieXRlICptYWNfcHRyLCAqbWFjX2VuZDsKICAgIHN0cnVjdCBtYWNyb19zb3VyY2VfZmlsZSAq Y3VycmVudF9maWxlID0gMDsKQEAgLTc3NzMsNyArNzA5OCw3IEBAIGluZGV4IDdmMDQ0MjcuLjMx NTA0ZmUgMTAwNjQ0CiAgCiAgICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNpbmZvLmJ1ZmZl ciA9PSBOVUxMKQogICAgICB7Ci1AQCAtMTEwMjAsMjkgKzExODg4LDE5IEBAIGR3YXJmX2RlY29k ZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitA QCAtMTEwMTgsMjkgKzExODg2LDE5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgcmV0dXJuOwogICAgICB9 CiAgCkBAIC03ODA4LDcgKzcxMzMsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAog ICAgICAgICAgfQogIAogICAgICAgIG1hY2luZm9fdHlwZSA9IHJlYWRfMV9ieXRlIChhYmZkLCBt YWNfcHRyKTsKLUBAIC0xMTA1Myw5MiArMTE5MTEsNyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChz dHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMDUxLDky ICsxMTkwOSw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgs IHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgIC8qIEEgemVybyBtYWNpbmZvIHR5cGUg aW5kaWNhdGVzIHRoZSBlbmQgb2YgdGhlIG1hY3JvCiAgICAgICAgICAgICAgIGluZm9ybWF0aW9u LiAgKi8KICAgICAgICAgIGNhc2UgMDoKQEAgLTc5MDIsNyArNzIyNyw3IEBAIGluZGV4IDdmMDQ0 MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCiAgICAgICAgICBjYXNlIERXX01BQ0lORk9fZGVmaW5lOgog ICAgICAgICAgY2FzZSBEV19NQUNJTkZPX3VuZGVmOgotQEAgLTExMTUzLDMxICsxMTkyNiwxOSBA QCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBp bnQgb2Zmc2V0LAorQEAgLTExMTUxLDMxICsxMTkyNCwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9z IChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAg ICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKICAKICAgICAgICAgICAgICBpZiAoISBjdXJyZW50 X2ZpbGUpCkBAIC03OTQ1LDcgKzcyNzAsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0 NAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTExMTkxLDIyICsxMTk1 Miw5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2ln bmVkIGludCBvZmZzZXQsCitAQCAtMTExODksMjIgKzExOTUwLDkgQEAgZHdhcmZfZGVjb2RlX21h Y3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKICAgICAg ICAgICAgICBmaWxlID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRl c19yZWFkKTsKICAgICAgICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7CiAgCkBAIC03OTcx LDcgKzcyOTYsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgICAgICAgICB9 CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTExMjYwLDcgKzEyMDA4LDcgQEAgZHdhcmZfZGVj b2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwK K0BAIC0xMTI1OCw3ICsxMjAwNiw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgIH0KICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICB9CkBAIC03OTgwLDcgKzczMDUsNyBAQCBpbmRleCA3ZjA0NDI3 Li4zMTUwNGZlIDEwMDY0NAogIH0KICAKICAvKiBDaGVjayBpZiB0aGUgYXR0cmlidXRlJ3MgZm9y bSBpcyBhIERXX0ZPUk1fYmxvY2sqCi1AQCAtMTEzMjAsNiArMTIwNjgsMzQgQEAgYXR0cl9mb3Jt X2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorQEAgLTExMzE4LDYgKzEyMDY2 LDM0IEBAIGF0dHJfZm9ybV9pc19jb25zdGFudCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKICAg ICAgfQogIH0KICAKQEAgLTgwMTUsNyArNzM0MCw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUg MTAwNjQ0CiAgc3RhdGljIHZvaWQKICBkd2FyZjJfc3ltYm9sX21hcmtfY29tcHV0ZWQgKHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkgICAgIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQotQEAgLTExMzQ5LDM1ICsxMjEyNSwyNSBAQCBkd2FyZjJfc3ltYm9sX21h cmtfY29tcHV0ZWQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwK K0BAIC0xMTM0NywzNSArMTIxMjMsMjUgQEAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChz dHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgICAgICAgU1lNQk9M X0NPTVBVVEVEX09QUyAoc3ltKSA9ICZkd2FyZjJfbG9jbGlzdF9mdW5jczsKICAgICAgICBTWU1C T0xfTE9DQVRJT05fQkFUT04gKHN5bSkgPSBiYXRvbjsKICAgICAgfQpAQCAtODA2Niw3ICs3Mzkx LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgICAgfQogIH0KICAKLUBAIC0x MTY2NSw2ICsxMjQzMSwzMSBAQCBvZmZzZXRfYW5kX3R5cGVfZXEgKGNvbnN0IHZvaWQgKml0ZW1f bGhzLCBjb25zdCB2b2lkICppdGVtX3JocykKK0BAIC0xMTY2Myw2ICsxMjQyOSwzMSBAQCBvZmZz ZXRfYW5kX3R5cGVfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3Jo cykKICAgIHJldHVybiBvZnNfbGhzLT5vZmZzZXQgPT0gb2ZzX3Jocy0+b2Zmc2V0OwogIH0KICAK QEAgLTgwOTgsNyArNzQyMyw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgLyog U2V0IHRoZSB0eXBlIGFzc29jaWF0ZWQgd2l0aCBESUUgdG8gVFlQRS4gIFNhdmUgaXQgaW4gQ1Un cyBoYXNoCiAgICAgdGFibGUgaWYgbmVjZXNzYXJ5LiAgRm9yIGNvbnZlbmllbmNlLCByZXR1cm4g VFlQRS4gICovCiAgCi1AQCAtMTE2NzMsNiArMTI0NjQsOCBAQCBzZXRfZGllX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtMTE2NzEsNiArMTI0NjIsOCBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3Ry dWN0IGR3YXJmMl9vZmZzZXRfYW5kX3R5cGUgKipzbG90LCBvZnM7CiAgCkBAIC04MTA3LDcgKzc0 MzIsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgaWYgKGN1LT50eXBlX2hh c2ggPT0gTlVMTCkKICAgICAgewogICAgICAgIGdkYl9hc3NlcnQgKGN1LT5wZXJfY3UgIT0gTlVM TCk7Ci1AQCAtMTE4MTUsMjMgKzEyNjA4LDEzIEBAIHNob3dfZHdhcmYyX2NtZCAoY2hhciAqYXJn cywgaW50IGZyb21fdHR5KQorQEAgLTExODEzLDIzICsxMjYwNiwxMyBAQCBzaG93X2R3YXJmMl9j bWQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGNtZF9zaG93X2xpc3QgKHNob3dfZHdh cmYyX2NtZGxpc3QsIGZyb21fdHR5LCAiIik7CiAgfQogIApAQCAtODEzNSw4ICs3NDYwLDggQEAg aW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB9CiAgCiAgLyogbXVubWFwIGRlYnVnIHNl Y3Rpb25zIGZvciBPQkpGSUxFLCBpZiBuZWNlc3NhcnkuICAqLwotQEAgLTExODQwLDE1ICsxMjYy MywxNSBAQCBzdGF0aWMgdm9pZAotIGR3YXJmMl9wZXJfb2JqZmlsZV9jbGVhbnVwIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZCkKK0BAIC0xMTgzOCwxNSArMTI2MjEsMTUgQEAgc3Rh dGljIHZvaWQKKyBkd2FyZjJfcGVyX29iamZpbGVfZnJlZSAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsIHZvaWQgKmQpCiAgewogICAgc3RydWN0IGR3YXJmMl9wZXJfb2JqZmlsZSAqZGF0YSA9IGQ7 CiAtICBtdW5tYXBfc2VjdGlvbl9idWZmZXIgKCZkYXRhLT5pbmZvKTsKQEAgLTgxNjAsMTMgKzc0 ODUsMTMgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB9CiAgCiAgdm9pZCBfaW5p dGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7Ci1AQCAtMTE4NTYsNiArMTI2MzksNyBAQCB2b2lk IF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKTsKK0BAIC0xMTg1NCw2ICsxMjYzNyw3IEBA IHZvaWQgX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpOwogIHZvaWQKICBfaW5pdGlhbGl6 ZV9kd2FyZjJfcmVhZCAodm9pZCkKICB7CiArICBkaWVfbGlzdCA9IFZFQ19hbGxvYyAoZGllX2lu Zm9fcCwgMzIpOwogICAgZHdhcmYyX29iamZpbGVfZGF0YV9rZXkKLSAgICAgPSByZWdpc3Rlcl9v YmpmaWxlX2RhdGFfd2l0aF9jbGVhbnVwIChkd2FyZjJfcGVyX29iamZpbGVfY2xlYW51cCk7Cisg ICAgID0gcmVnaXN0ZXJfb2JqZmlsZV9kYXRhX3dpdGhfY2xlYW51cCAoTlVMTCwgZHdhcmYyX3Bl cl9vYmpmaWxlX2ZyZWUpOwogIAogZGlmZiAtLWdpdCBhL2dkYi9lbGZyZWFkLmMgYi9nZGIvZWxm cmVhZC5jCiBpbmRleCA2ZTc5ZDRhLi4xOThiYWUzIDEwMDY0NApAQCAtODUxNSw3ICs3ODQwLDcg QEAgaW5kZXggN2U0MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAgICAgZGVmYXVsdDoKICAgICAgICB2 YWwgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIEVWQUxfQVZPSURfU0lE RV9FRkZFQ1RTKTsKIGRpZmYgLS1naXQgYS9nZGIvZXhwcmVzc2lvbi5oIGIvZ2RiL2V4cHJlc3Np b24uaAotaW5kZXggMTIxNjNlMy4uYmYyYjUxOCAxMDA2NDQKK2luZGV4IGVmZmUxZjAuLjNlMDgz Y2EgMTAwNjQ0CiAtLS0gYS9nZGIvZXhwcmVzc2lvbi5oCiArKysgYi9nZGIvZXhwcmVzc2lvbi5o CiBAQCAtODgsNiArODgsMTYgQEAgZW51bSBleHBfb3Bjb2RlCkBAIC04NTM1LDcgKzc4NjAsNyBA QCBpbmRleCAxMjE2M2UzLi5iZjJiNTE4IDEwMDY0NAogICAgICAvKiBlbmQgb2YgQysrLiAgKi8K ICAKICAgICAgLyogRm9yIE1vZHVsYS0yIGludGVnZXIgZGl2aXNpb24gRElWICovCi1AQCAtNDM1 LDQgKzQ0NSw1IEBAIGV4dGVybiBjaGFyICpvcF9zdHJpbmcgKGVudW0gZXhwX29wY29kZSk7CitA QCAtNDM4LDQgKzQ0OCw1IEBAIGV4dGVybiBjaGFyICpvcF9zdHJpbmcgKGVudW0gZXhwX29wY29k ZSk7CiAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24g Kiwgc3RydWN0IHVpX2ZpbGUgKiwgY2hhciAqKTsKICBleHRlcm4gdm9pZCBkdW1wX3ByZWZpeF9l eHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKQEAg LTk5OTUsMTAgKzkzMjAsMTAgQEAgaW5kZXggOGMwMjdjOS4uZDIwMWY3NiAxMDA2NDQKICAgIGVs c2UKICAgICAgewogZGlmZiAtLWdpdCBhL2dkYi9mcmFtZS5jIGIvZ2RiL2ZyYW1lLmMKLWluZGV4 IDljYTY5YmYuLjFiNGU2N2MgMTAwNjQ0CitpbmRleCA3OTMyYjQ4Li40ZTdjNDM0IDEwMDY0NAog LS0tIGEvZ2RiL2ZyYW1lLmMKICsrKyBiL2dkYi9mcmFtZS5jCi1AQCAtMTE1Nyw2ICsxMTU3LDE0 IEBAIGhhc19zdGFja19mcmFtZXMgKHZvaWQpCitAQCAtMTE3MSw2ICsxMTcxLDE0IEBAIGhhc19z dGFja19mcmFtZXMgKHZvaWQpCiAgICBpZiAocHRpZF9lcXVhbCAoaW5mZXJpb3JfcHRpZCwgbnVs bF9wdGlkKSkKICAgICAgcmV0dXJuIDA7CiAgCkBAIC0xMTU4OCw3ICsxMDkxMyw3IEBAIGluZGV4 IDBmOWQ0NGUuLmM5MTBlODggMTAwNjQ0CiAgICAvKiBXZSBkaWRuJ3QgZmluZCBpdDsgcHJpbnQg dGhlIHJhdyBkYXRhLiAgKi8KICAgIGlmICh2Yml0KQogZGlmZiAtLWdpdCBhL2dkYi9pMzg2LWxp bnV4LW5hdC5jIGIvZ2RiL2kzODYtbGludXgtbmF0LmMKLWluZGV4IDk5MWIyN2YuLjQxMWI0MWIg MTAwNjQ0CitpbmRleCBmZTg0OGZmLi4xNzBlNmNkIDEwMDY0NAogLS0tIGEvZ2RiL2kzODYtbGlu dXgtbmF0LmMKICsrKyBiL2dkYi9pMzg2LWxpbnV4LW5hdC5jCiBAQCAtNTg2LDYgKzU4Niw4IEBA IGkzODZfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHJ1Y3QgdGFyZ2V0X29wcyAq b3BzLApAQCAtMTE2ODMsNyArMTEwMDgsNyBAQCBpbmRleCA5OTFiMjdmLi40MTFiNDFiIDEwMDY0 NAogIHN0YXRpYyB2b2lkCiAgaTM4Nl9saW51eF9uZXdfdGhyZWFkIChwdGlkX3QgcHRpZCkKICB7 Ci1AQCAtODMyLDYgKzg3Nyw4IEBAIF9pbml0aWFsaXplX2kzODZfbGludXhfbmF0ICh2b2lkKQor QEAgLTgzNyw2ICs4ODIsOCBAQCBfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4X25hdCAodm9pZCkKICAg IGkzODZfZHJfbG93LnNldF9hZGRyID0gaTM4Nl9saW51eF9kcl9zZXRfYWRkcjsKICAgIGkzODZf ZHJfbG93LnJlc2V0X2FkZHIgPSBpMzg2X2xpbnV4X2RyX3Jlc2V0X2FkZHI7CiAgICBpMzg2X2Ry X2xvdy5nZXRfc3RhdHVzID0gaTM4Nl9saW51eF9kcl9nZXRfc3RhdHVzOwpAQCAtMTE5MjksNyAr MTEyNTQsNyBAQCBpbmRleCA5ZTk4MjkwLi5mYWIxODkyIDEwMDY0NAogICAgcHJvY2VlZCAoKENP UkVfQUREUikgLTEsIFRBUkdFVF9TSUdOQUxfREVGQVVMVCwgMCk7CiAgCiBkaWZmIC0tZ2l0IGEv Z2RiL2luZmVyaW9yLmggYi9nZGIvaW5mZXJpb3IuaAotaW5kZXggNzMxMmU1MS4uZDRlYWU4OCAx MDA2NDQKK2luZGV4IGYxYjVkMTcuLjMxYWRkN2QgMTAwNjQ0CiAtLS0gYS9nZGIvaW5mZXJpb3Iu aAogKysrIGIvZ2RiL2luZmVyaW9yLmgKIEBAIC0yNzIsNiArMjcyLDggQEAgZXh0ZXJuIHZvaWQg aW50ZXJydXB0X3RhcmdldF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpOwpAQCAt MTE5NDIsNyArMTEyNjcsNyBAQCBpbmRleCA3MzEyZTUxLi5kNGVhZTg4IDEwMDY0NAogIAogIGV4 dGVybiB2b2lkIG5vdGljZV9uZXdfaW5mZXJpb3IgKHB0aWRfdCwgaW50LCBpbnQpOwogZGlmZiAt LWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwotaW5kZXggYzkwNzYzNS4uYmRhOGQ4 NCAxMDA2NDQKK2luZGV4IDFhODNhMjUuLjJlZTIxNjQgMTAwNjQ0CiAtLS0gYS9nZGIvaW5mcnVu LmMKICsrKyBiL2dkYi9pbmZydW4uYwogQEAgLTQ1LDYgKzQ1LDggQEAKQEAgLTExOTYzLDcgKzEx Mjg4LDcgQEAgaW5kZXggYzkwNzYzNS4uYmRhOGQ4NCAxMDA2NDQKICAKICBzdGF0aWMgdm9pZCBz dG9wX3N0ZXBwaW5nIChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcyk7CiAgc3Rh dGljIHZvaWQgcHJlcGFyZV90b193YWl0IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUg KmVjcyk7Ci1AQCAtMjYzMyw2ICsyNjM3LDEwIEBAIGhhbmRsZV9pbmZlcmlvcl9ldmVudCAoc3Ry dWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlICplY3MpCitAQCAtMjY4Nyw2ICsyNjkxLDEwIEBA IGhhbmRsZV9pbmZlcmlvcl9ldmVudCAoc3RydWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlICpl Y3MpCiAgCiAgICAgICAgc3RvcF9wYyA9IHJlZ2NhY2hlX3JlYWRfcGMgKGdldF90aHJlYWRfcmVn Y2FjaGUgKGVjcy0+cHRpZCkpOwogIApAQCAtMTE5NzQsNyArMTEyOTksNyBAQCBpbmRleCBjOTA3 NjM1Li5iZGE4ZDg0IDEwMDY0NAogICAgICAgIGVjcy0+ZXZlbnRfdGhyZWFkLT5zdG9wX2Jwc3Rh dCA9IGJwc3RhdF9zdG9wX3N0YXR1cyAoc3RvcF9wYywgZWNzLT5wdGlkKTsKICAKICAgICAgICBl Y3MtPnJhbmRvbV9zaWduYWwgPSAhYnBzdGF0X2V4cGxhaW5zX3NpZ25hbCAoZWNzLT5ldmVudF90 aHJlYWQtPnN0b3BfYnBzdGF0KTsKLUBAIC0yNjcwLDYgKzI2NzgsMTAgQEAgaGFuZGxlX2luZmVy aW9yX2V2ZW50IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykKK0BAIC0yNzI0 LDYgKzI3MzIsMTAgQEAgaGFuZGxlX2luZmVyaW9yX2V2ZW50IChzdHJ1Y3QgZXhlY3V0aW9uX2Nv bnRyb2xfc3RhdGUgKmVjcykKICAKICAgICAgICBzdG9wX3BjID0gcmVnY2FjaGVfcmVhZF9wYyAo Z2V0X3RocmVhZF9yZWdjYWNoZSAoZWNzLT5wdGlkKSk7CiAgCkBAIC0xMTk4NSw3ICsxMTMxMCw3 IEBAIGluZGV4IGM5MDc2MzUuLmJkYThkODQgMTAwNjQ0CiAgICAgICAgLyogVGhpcyBjYXVzZXMg dGhlIGV2ZW50cG9pbnRzIGFuZCBzeW1ib2wgdGFibGUgdG8gYmUgcmVzZXQuCiAgICAgICAgICAg TXVzdCBkbyB0aGlzIG5vdywgYmVmb3JlIHRyeWluZyB0byBkZXRlcm1pbmUgd2hldGhlciB0bwog ICAgICAgICAgIHN0b3AuICAqLwotQEAgLTM0MTEsMjMgKzM0MjMsMzMgQEAgcHJvY2Vzc19ldmVu dF9zdG9wX3Rlc3Q6CitAQCAtMzQ2OCwyMyArMzQ4MCwzMyBAQCBwcm9jZXNzX2V2ZW50X3N0b3Bf dGVzdDoKICAKICAJZWNzLT5ldmVudF90aHJlYWQtPnN0ZXBwaW5nX292ZXJfYnJlYWtwb2ludCA9 IDE7CiAgCkBAIC0xMjAzMSw3ICsxMTM1Niw3IEBAIGluZGV4IGM5MDc2MzUuLmJkYThkODQgMTAw NjQ0CiAgCWtlZXBfZ29pbmcgKGVjcyk7CiAgCXJldHVybjsKICAKLUBAIC0zNDM5LDYgKzM0NjEs NTMgQEAgaW5mcnVuOiBCUFNUQVRfV0hBVF9TRVRfTE9OR0pNUF9SRVNVTUUgKCFnZGJhcmNoX2dl dF9sb25nam1wX3RhcmdldClcbiIpOworQEAgLTM0OTYsNiArMzUxOCw1MyBAQCBpbmZydW46IEJQ U1RBVF9XSEFUX1NFVF9MT05HSk1QX1JFU1VNRSAoIWdkYmFyY2hfZ2V0X2xvbmdqbXBfdGFyZ2V0 KVxuIik7CiAgCWdkYl9hc3NlcnQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVwX3Jlc3VtZV9icmVh a3BvaW50ICE9IE5VTEwpOwogIAlkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCAoZWNzLT5l dmVudF90aHJlYWQpOwogIApAQCAtMTIwODUsNyArMTE0MTAsNyBAQCBpbmRleCBjOTA3NjM1Li5i ZGE4ZDg0IDEwMDY0NAogIAllY3MtPmV2ZW50X3RocmVhZC0+c3RvcF9zdGVwID0gMTsKICAJcHJp bnRfc3RvcF9yZWFzb24gKEVORF9TVEVQUElOR19SQU5HRSwgMCk7CiAgCXN0b3Bfc3RlcHBpbmcg KGVjcyk7Ci1AQCAtNDQzMSw2ICs0NTAwLDk2IEBAIGluc2VydF9sb25nam1wX3Jlc3VtZV9icmVh a3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIHBjKQorQEAgLTQ1MDAs NiArNDU2OSw5NiBAQCBpbnNlcnRfbG9uZ2ptcF9yZXN1bWVfYnJlYWtwb2ludCAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBwYykKICAgICAgc2V0X21vbWVudGFyeV9icmVha3Bv aW50X2F0X3BjIChnZGJhcmNoLCBwYywgYnBfbG9uZ2ptcF9yZXN1bWUpOwogIH0KICAKQEAgLTEy MTgyLDcgKzExNTA3LDcgQEAgaW5kZXggYzkwNzYzNS4uYmRhOGQ4NCAxMDA2NDQKICBzdGF0aWMg dm9pZAogIHN0b3Bfc3RlcHBpbmcgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNz KQogIHsKLUBAIC00NDk5LDYgKzQ2NTgsOCBAQCBrZWVwX2dvaW5nIChzdHJ1Y3QgZXhlY3V0aW9u X2NvbnRyb2xfc3RhdGUgKmVjcykKK0BAIC00NTY4LDYgKzQ3MjcsOCBAQCBrZWVwX2dvaW5nIChz dHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykKICAJICAgIH0KICAJICBpZiAoZS5y ZWFzb24gPCAwKQogIAkgICAgewpAQCAtMTIzMzcsMTAgKzExNjYyLDEwIEBAIGluZGV4IDNlOTQz YTEuLjNiODk1NmMgMTAwNjQ0CiAgCX0KICAgICAgICByZXR1cm4gdmFsdWVzOwogZGlmZiAtLWdp dCBhL2dkYi9saW51eC1uYXQuYyBiL2dkYi9saW51eC1uYXQuYwotaW5kZXggMTMwODg0NC4uZTZm YWQyNCAxMDA2NDQKK2luZGV4IDk4ZjYzNDcuLjA5MDdmMDMgMTAwNjQ0CiAtLS0gYS9nZGIvbGlu dXgtbmF0LmMKICsrKyBiL2dkYi9saW51eC1uYXQuYwotQEAgLTE2MjksNiArMTYyOSw3IEBAIHJl c3VtZV9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwgdm9pZCAqZGF0YSkKK0BAIC0xNzEw LDYgKzE3MTAsNyBAQCByZXN1bWVfY2FsbGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqbHAsIHZvaWQg KmRhdGEpCiAgICAgICAgbHAtPnN0b3BwZWQgPSAwOwogICAgICAgIGxwLT5zdGVwID0gMDsKICAg ICAgICBtZW1zZXQgKCZscC0+c2lnaW5mbywgMCwgc2l6ZW9mIChscC0+c2lnaW5mbykpOwpAQCAt MTIzNDgsNyArMTE2NzMsNyBAQCBpbmRleCAxMzA4ODQ0Li5lNmZhZDI0IDEwMDY0NAogICAgICB9 CiAgICBlbHNlIGlmIChscC0+c3RvcHBlZCAmJiBkZWJ1Z19saW51eF9uYXQpCiAgICAgIGZwcmlu dGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIlJDOiBOb3QgcmVzdW1pbmcgc2libGluZyAlcyAo aGFzIHBlbmRpbmcpXG4iLAotQEAgLTE3NjYsNiArMTc2Nyw3IEBAIGxpbnV4X25hdF9yZXN1bWUg KHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCitAQCAtMTg0Nyw2ICsxODQ4LDcgQEAgbGludXhfbmF0 X3Jlc3VtZSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywKICAKICAgIGxpbnV4X29wcy0+dG9fcmVz dW1lIChsaW51eF9vcHMsIHB0aWQsIHN0ZXAsIHNpZ25vKTsKICAgIG1lbXNldCAoJmxwLT5zaWdp bmZvLCAwLCBzaXplb2YgKGxwLT5zaWdpbmZvKSk7CkBAIC0xMjM1Niw3ICsxMTY4MSw3IEBAIGlu ZGV4IDEzMDg4NDQuLmU2ZmFkMjQgMTAwNjQ0CiAgCiAgICBpZiAoZGVidWdfbGludXhfbmF0KQog ICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCi1AQCAtMjE2NCw2ICsyMTY2LDc4 IEBAIG1heWJlX2NsZWFyX2lnbm9yZV9zaWdpbnQgKHN0cnVjdCBsd3BfaW5mbyAqbHApCitAQCAt MjI4Niw2ICsyMjg4LDc4IEBAIG1heWJlX2NsZWFyX2lnbm9yZV9zaWdpbnQgKHN0cnVjdCBsd3Bf aW5mbyAqbHApCiAgICAgIH0KICB9CiAgCkBAIC0xMjQzNSw3ICsxMTc2MCw3IEBAIGluZGV4IDEz MDg4NDQuLmU2ZmFkMjQgMTAwNjQ0CiAgLyogV2FpdCB1bnRpbCBMUCBpcyBzdG9wcGVkLiAgKi8K ICAKICBzdGF0aWMgaW50Ci1AQCAtMjIxNSw2ICsyMjg5LDggQEAgc3RvcF93YWl0X2NhbGxiYWNr IChzdHJ1Y3QgbHdwX2luZm8gKmxwLCB2b2lkICpkYXRhKQorQEAgLTIzMzcsNiArMjQxMSw4IEBA IHN0b3Bfd2FpdF9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwgdm9pZCAqZGF0YSkKICAJ ICAgICAgLyogU2F2ZSB0aGUgdHJhcCdzIHNpZ2luZm8gaW4gY2FzZSB3ZSBuZWVkIGl0IGxhdGVy LiAgKi8KICAJICAgICAgc2F2ZV9zaWdpbmZvIChscCk7CiAgCkBAIC0xMjQ0NCwxMiArMTE3Njks MTMgQEAgaW5kZXggMTMwODg0NC4uZTZmYWQyNCAxMDA2NDQKICAJICAgICAgLyogTm93IHJlc3Vt ZSB0aGlzIExXUCBhbmQgZ2V0IHRoZSBTSUdTVE9QIGV2ZW50LiAqLwogIAkgICAgICBlcnJubyA9 IDA7CiAgCSAgICAgIHB0cmFjZSAoUFRSQUNFX0NPTlQsIEdFVF9MV1AgKGxwLT5wdGlkKSwgMCwg MCk7Ci1AQCAtMjU3OSw5ICsyNjU1LDEzIEBAIGxpbnV4X25hdF9maWx0ZXJfZXZlbnQgKGludCBs d3BpZCwgaW50IHN0YXR1cywgaW50IG9wdGlvbnMpCitAQCAtMjcwMSwxMCArMjc3NywxNCBAQCBs aW51eF9uYXRfZmlsdGVyX2V2ZW50IChpbnQgbHdwaWQsIGludCBzdGF0dXMsIGludCBvcHRpb25z KQogICAgICAgIGFkZF90aHJlYWQgKGxwLT5wdGlkKTsKICAgICAgfQogIAogLSAgLyogU2F2ZSB0 aGUgdHJhcCdzIHNpZ2luZm8gaW4gY2FzZSB3ZSBuZWVkIGl0IGxhdGVyLiAgKi8KLSAgIGlmIChX SUZTVE9QUEVEIChzdGF0dXMpICYmIFdTVE9QU0lHIChzdGF0dXMpID09IFNJR1RSQVApCisgICBp ZiAoV0lGU1RPUFBFRCAoc3RhdHVzKQorICAgICAgICYmIChXU1RPUFNJRyAoc3RhdHVzKSA9PSBT SUdUUkFQIHx8IFdTVE9QU0lHIChzdGF0dXMpID09IFRSQVBfSVNfU1lTQ0FMTCkpCiAtICAgIHNh dmVfc2lnaW5mbyAobHApOwogKyAgICB7CiArICAgICAgLyogU2F2ZSB0aGUgdHJhcCdzIHNpZ2lu Zm8gaW4gY2FzZSB3ZSBuZWVkIGl0IGxhdGVyLiAgKi8KQEAgLTEyNDU4LDkgKzExNzg0LDkgQEAg aW5kZXggMTMwODg0NC4uZTZmYWQyNCAxMDA2NDQKICsgICAgICBzYXZlX3NpZ3RyYXAgKGxwKTsK ICsgICAgfQogIAotICAgLyogSGFuZGxlIEdOVS9MaW51eCdzIGV4dGVuZGVkIHdhaXRzdGF0dXMg Zm9yIHRyYWNlIGV2ZW50cy4gICovCi0gICBpZiAoV0lGU1RPUFBFRCAoc3RhdHVzKSAmJiBXU1RP UFNJRyAoc3RhdHVzKSA9PSBTSUdUUkFQICYmIHN0YXR1cyA+PiAxNiAhPSAwKQotQEAgLTQ4NzEs NiArNDk1MSwxMCBAQCBsaW51eF9uYXRfYWRkX3RhcmdldCAoc3RydWN0IHRhcmdldF9vcHMgKnQp CisgICAvKiBIYW5kbGUgR05VL0xpbnV4J3MgZXh0ZW5kZWQgd2FpdHN0YXR1cyBmb3IgdHJhY2Ug ZXZlbnRzLgorICAgICAgSXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIGlmIFdTVE9QU0lHIGlzIHNp Z25hbGluZyB0aGF0CitAQCAtNDk5OSw2ICs1MDc5LDEwIEBAIGxpbnV4X25hdF9hZGRfdGFyZ2V0 IChzdHJ1Y3QgdGFyZ2V0X29wcyAqdCkKICAgIHQtPnRvX3RocmVhZF9hbGl2ZSA9IGxpbnV4X25h dF90aHJlYWRfYWxpdmU7CiAgICB0LT50b19waWRfdG9fc3RyID0gbGludXhfbmF0X3BpZF90b19z dHI7CiAgICB0LT50b19oYXNfdGhyZWFkX2NvbnRyb2wgPSB0Y19zY2hlZGxvY2s7CkBAIC0xMjQ3 Miw3ICsxMTc5OCw3IEBAIGluZGV4IDEzMDg4NDQuLmU2ZmFkMjQgMTAwNjQ0CiAgICB0LT50b19j YW5fYXN5bmNfcCA9IGxpbnV4X25hdF9jYW5fYXN5bmNfcDsKICAgIHQtPnRvX2lzX2FzeW5jX3Ag PSBsaW51eF9uYXRfaXNfYXN5bmNfcDsKIGRpZmYgLS1naXQgYS9nZGIvbGludXgtbmF0LmggYi9n ZGIvbGludXgtbmF0LmgKLWluZGV4IGQxZWQ2ZmMuLmZhZjY4YmIgMTAwNjQ0CitpbmRleCBlYWU3 NGYzLi43MzIwNGZjIDEwMDY0NAogLS0tIGEvZ2RiL2xpbnV4LW5hdC5oCiArKysgYi9nZGIvbGlu dXgtbmF0LmgKIEBAIC02Miw2ICs2MiwxMiBAQCBzdHJ1Y3QgbHdwX2luZm8KQEAgLTEyNjk0LDIy MiArMTIwMjAsMTAgQEAgaW5kZXggYWFjODJlOS4uNjI2MjkyYyAxMDA2NDQKICAgIFRZUEVfQ1BM VVNfU1BFQ0lGSUMgKHQpID0gKHN0cnVjdCBjcGx1c19zdHJ1Y3RfdHlwZSAqKSAmY3BsdXNfc3Ry dWN0X2RlZmF1bHQ7CiAgICByZXR1cm4gdDsKIGRpZmYgLS1naXQgYS9nZGIvbWkvbWktY21kLXZh ci5jIGIvZ2RiL21pL21pLWNtZC12YXIuYwotaW5kZXggMGNmMDNkOS4uOTM0NTlkZCAxMDA2NDQK K2luZGV4IDBiYWFhODMuLjk0ZWJmZWIgMTAwNjQ0CiAtLS0gYS9nZGIvbWkvbWktY21kLXZhci5j CiArKysgYi9nZGIvbWkvbWktY21kLXZhci5jCi1AQCAtNDEsNyArNDEsNyBAQCBzdGF0aWMgdm9p ZCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLAotIAkJCSAgICAgIGVudW0g cHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKLSAJCQkgICAgICBpbnQgZXhwbGljaXQpOwotIAot LXN0YXRpYyBpbnQgbWlfcHJpbnRfdmFsdWVfcCAoc3RydWN0IHR5cGUgKnR5cGUsIGVudW0gcHJp bnRfdmFsdWVzIHByaW50X3ZhbHVlcyk7Ci0rc3RhdGljIGludCBtaV9wcmludF92YWx1ZV9wIChz dHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcyk7Ci0gCi0g LyogUHJpbnQgdmFyaWFibGUgb2JqZWN0IFZBUi4gIFRoZSBQUklOVF9WQUxVRVMgcGFyYW1ldGVy IGNvbnRyb2xzCi0gICAgaWYgdGhlIHZhbHVlIHNob3VsZCBiZSBwcmludGVkLiAgVGhlIFBSSU5U X0VYUFJFU1NJT04gcGFyYW1ldGVyCi1AQCAtNTksOCArNTksMTIgQEAgcHJpbnRfdmFyb2JqIChz dHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKLSAgICAg dWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJleHAiLCB2YXJvYmpfZ2V0X2V4cHJlc3Npb24g KHZhcikpOwotICAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJudW1jaGlsZCIsIHZhcm9ial9n ZXRfbnVtX2NoaWxkcmVuICh2YXIpKTsKLSAgIAotLSAgaWYgKG1pX3ByaW50X3ZhbHVlX3AgKHZh cm9ial9nZXRfZ2RiX3R5cGUgKHZhciksIHByaW50X3ZhbHVlcykpCi0tICAgIHVpX291dF9maWVs ZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YXJvYmpfZ2V0X3ZhbHVlICh2YXIpKTsKLSsgIGlm IChtaV9wcmludF92YWx1ZV9wICh2YXIsIHByaW50X3ZhbHVlcykpCi0rICAgIHsKLSsgICAgICBj aGFyICp2YWwgPSB2YXJvYmpfZ2V0X3ZhbHVlICh2YXIpOwotKyAgICAgIHVpX291dF9maWVsZF9z dHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YWwpOwotKyAgICAgIHhmcmVlICh2YWwpOwotKyAgICB9 Ci0gCi0gICB0eXBlID0gdmFyb2JqX2dldF90eXBlICh2YXIpOwotICAgaWYgKHR5cGUgIT0gTlVM TCkKLUBAIC03NSw2ICs3OSw5IEBAIHByaW50X3Zhcm9iaiAoc3RydWN0IHZhcm9iaiAqdmFyLCBl bnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXMsCi0gCi0gICBpZiAodmFyb2JqX2dldF9mcm96 ZW4gKHZhcikpCi0gICAgIHVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAiZnJvemVuIiwgMSk7Ci0r Ci0rICBpZiAodmFyb2JqX3ByZXR0eV9wcmludGVkX3AgKHZhcikpCi0rICAgIHVpX291dF9maWVs ZF9pbnQgKHVpb3V0LCAiZHluYW1pYyIsIDEpOwotIH0KLSAKLSAvKiBWQVJPQkogb3BlcmF0aW9u cyAqLwotQEAgLTEzOCw2ICsxNDUsOCBAQCBtaV9jbWRfdmFyX2NyZWF0ZSAoY2hhciAqY29tbWFu ZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQotIAotICAgcHJpbnRfdmFyb2JqICh2YXIsIFBSSU5U X0FMTF9WQUxVRVMsIDAgLyogZG9uJ3QgcHJpbnQgZXhwcmVzc2lvbiAqLyk7Ci0gCi0rICB1aV9v dXRfZmllbGRfaW50ICh1aW91dCwgImhhc19tb3JlIiwgdmFyb2JqX2hhc19tb3JlICh2YXIsIDAp KTsKLSsKLSAgIGRvX2NsZWFudXBzIChvbGRfY2xlYW51cHMpOwotIH0KLSAKLUBAIC0yMjMsNiAr MjMyLDcgQEAgbWlfY21kX3Zhcl9zZXRfZm9ybWF0IChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJn diwgaW50IGFyZ2MpCi0gewotICAgZW51bSB2YXJvYmpfZGlzcGxheV9mb3JtYXRzIGZvcm1hdDsK LSAgIHN0cnVjdCB2YXJvYmogKnZhcjsKLSsgIGNoYXIgKnZhbDsKLSAKLSAgIGlmIChhcmdjICE9 IDIpCi0gICAgIGVycm9yIChfKCJtaV9jbWRfdmFyX3NldF9mb3JtYXQ6IFVzYWdlOiBOQU1FIEZP Uk1BVC4iKSk7Ci1AQCAtMjM5LDcgKzI0OSw5IEBAIG1pX2NtZF92YXJfc2V0X2Zvcm1hdCAoY2hh ciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQotICAgdWlfb3V0X2ZpZWxkX3N0cmlu ZyAodWlvdXQsICJmb3JtYXQiLCB2YXJvYmpfZm9ybWF0X3N0cmluZ1soaW50KSBmb3JtYXRdKTsK LSAgCi0gICAvKiBSZXBvcnQgdGhlIHZhbHVlIGluIHRoZSBuZXcgZm9ybWF0ICovCi0tICB1aV9v dXRfZmllbGRfc3RyaW5nICh1aW91dCwgInZhbHVlIiwgdmFyb2JqX2dldF92YWx1ZSAodmFyKSk7 Ci0rICB2YWwgPSB2YXJvYmpfZ2V0X3ZhbHVlICh2YXIpOwotKyAgdWlfb3V0X2ZpZWxkX3N0cmlu ZyAodWlvdXQsICJ2YWx1ZSIsIHZhbCk7Ci0rICB4ZnJlZSAodmFsKTsKLSB9Ci0gCi0gdm9pZAot QEAgLTMzNywxMSArMzQ5LDEyIEBAIE11c3QgYmU6IDAgb3IgXCIlc1wiLCAxIG9yIFwiJXNcIiwg MiBvciBcIiVzXCIiKSwKLSB9Ci0gCi0gLyogUmV0dXJuIDEgaWYgZ2l2ZW4gdGhlIGFyZ3VtZW50 IFBSSU5UX1ZBTFVFUyB3ZSBzaG91bGQgZGlzcGxheQotLSAgIGEgdmFsdWUgb2YgdHlwZSBUWVBF LiAgKi8KLSsgICB0aGUgdmFyb2JqIFZBUi4gICovCi0gCi0gc3RhdGljIGludAotLW1pX3ByaW50 X3ZhbHVlX3AgKHN0cnVjdCB0eXBlICp0eXBlLCBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1 ZXMpCi0rbWlfcHJpbnRfdmFsdWVfcCAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHByaW50X3Zh bHVlcyBwcmludF92YWx1ZXMpCi0gewotKyAgc3RydWN0IHR5cGUgKnR5cGU7Ci0gCi0gICBpZiAo cHJpbnRfdmFsdWVzID09IFBSSU5UX05PX1ZBTFVFUykKLSAgICAgcmV0dXJuIDA7Ci1AQCAtMzQ5 LDYgKzM2MiwxMCBAQCBtaV9wcmludF92YWx1ZV9wIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZW51bSBw cmludF92YWx1ZXMgcHJpbnRfdmFsdWVzKQotICAgaWYgKHByaW50X3ZhbHVlcyA9PSBQUklOVF9B TExfVkFMVUVTKQotICAgICByZXR1cm4gMTsKLSAKLSsgIGlmICh2YXJvYmpfcHJldHR5X3ByaW50 ZWRfcCAodmFyKSkKLSsgICAgcmV0dXJuIDE7Ci0rCi0rICB0eXBlID0gdmFyb2JqX2dldF9nZGJf dHlwZSAodmFyKTsKLSAgIGlmICh0eXBlID09IE5VTEwpCi0gICAgIHJldHVybiAxOwotICAgZWxz ZQotQEAgLTM2OSwyNCArMzg2LDM1IEBAIG1pX2NtZF92YXJfbGlzdF9jaGlsZHJlbiAoY2hhciAq Y29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQotICAgc3RydWN0IHZhcm9iaiAqdmFyOyAg Ci0gICBWRUModmFyb2JqX3ApICpjaGlsZHJlbjsKLSAgIHN0cnVjdCB2YXJvYmogKmNoaWxkOwot LSAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBfY2hpbGRyZW47Ci0gICBpbnQgbnVtY2hpbGQ7Ci0g ICBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXM7Ci0gICBpbnQgaXg7Ci0rICBpbnQgZnJv bSwgdG87Ci0gICBjaGFyICpkaXNwbGF5X2hpbnQ7Ci0gCi0tICBpZiAoYXJnYyAhPSAxICYmIGFy Z2MgIT0gMikKLS0gICAgZXJyb3IgKF8oIm1pX2NtZF92YXJfbGlzdF9jaGlsZHJlbjogVXNhZ2U6 IFtQUklOVF9WQUxVRVNdIE5BTUUiKSk7Ci0rICBpZiAoYXJnYyA8IDEgfHwgYXJnYyA+IDQpCi0r ICAgIGVycm9yIChfKCJtaV9jbWRfdmFyX2xpc3RfY2hpbGRyZW46IFVzYWdlOiBbUFJJTlRfVkFM VUVTXSBOQU1FIFtGUk9NIFRPXSIpKTsKLSAKLSAgIC8qIEdldCB2YXJvYmogaGFuZGxlLCBpZiBh IHZhbGlkIHZhciBvYmogbmFtZSB3YXMgc3BlY2lmaWVkICovCi0tICBpZiAoYXJnYyA9PSAxKQot KyAgaWYgKGFyZ2MgPT0gMSB8fCBhcmdjID09IDMpCi0gICAgIHZhciA9IHZhcm9ial9nZXRfaGFu ZGxlIChhcmd2WzBdKTsKLSAgIGVsc2UKLSAgICAgdmFyID0gdmFyb2JqX2dldF9oYW5kbGUgKGFy Z3ZbMV0pOwotIAotLSAgY2hpbGRyZW4gPSB2YXJvYmpfbGlzdF9jaGlsZHJlbiAodmFyKTsKLS0g IHVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAibnVtY2hpbGQiLCBWRUNfbGVuZ3RoICh2YXJvYmpf cCwgY2hpbGRyZW4pKTsKLS0gIGlmIChhcmdjID09IDIpCi0rICBpZiAoYXJnYyA+IDIpCi0rICAg IHsKLSsgICAgICBmcm9tID0gYXRvaSAoYXJndlthcmdjIC0gMl0pOwotKyAgICAgIHRvID0gYXRv aSAoYXJndlthcmdjIC0gMV0pOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBmcm9t ID0gLTE7Ci0rICAgICAgdG8gPSAtMTsKLSsgICAgfQotKwotKyAgY2hpbGRyZW4gPSB2YXJvYmpf bGlzdF9jaGlsZHJlbiAodmFyLCAmZnJvbSwgJnRvKTsKLSsgIHVpX291dF9maWVsZF9pbnQgKHVp b3V0LCAibnVtY2hpbGQiLCB0byAtIGZyb20pOwotKyAgaWYgKGFyZ2MgPT0gMiB8fCBhcmdjID09 IDQpCi0gICAgIHByaW50X3ZhbHVlcyA9IG1pX3BhcnNlX3ZhbHVlc19vcHRpb24gKGFyZ3ZbMF0p OwotICAgZWxzZQotICAgICBwcmludF92YWx1ZXMgPSBQUklOVF9OT19WQUxVRVM7Ci1AQCAtMzk4 LDIxICs0MjYsMjggQEAgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVuIChjaGFyICpjb21tYW5kLCBj aGFyICoqYXJndiwgaW50IGFyZ2MpCi0gICAgICAgeGZyZWUgKGRpc3BsYXlfaGludCk7Ci0gICAg IH0KLSAKLS0gIGlmIChWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pID09IDApCi0tICAg IHJldHVybjsKLS0KLS0gIGlmIChtaV92ZXJzaW9uICh1aW91dCkgPT0gMSkKLS0gICAgY2xlYW51 cF9jaGlsZHJlbiA9IG1ha2VfY2xlYW51cF91aV9vdXRfdHVwbGVfYmVnaW5fZW5kICh1aW91dCwg ImNoaWxkcmVuIik7Ci0tICBlbHNlCi0tICAgIGNsZWFudXBfY2hpbGRyZW4gPSBtYWtlX2NsZWFu dXBfdWlfb3V0X2xpc3RfYmVnaW5fZW5kICh1aW91dCwgImNoaWxkcmVuIik7Ci0tICBmb3IgKGl4 ID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCBjaGlsZHJlbiwgaXgsIGNoaWxkKTsgKytpeCkK LSsgIGlmIChmcm9tIDwgdG8pCi0gICAgIHsKLS0gICAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51 cF9jaGlsZDsKLS0gICAgICBjbGVhbnVwX2NoaWxkID0gbWFrZV9jbGVhbnVwX3VpX291dF90dXBs ZV9iZWdpbl9lbmQgKHVpb3V0LCAiY2hpbGQiKTsKLS0gICAgICBwcmludF92YXJvYmogKGNoaWxk LCBwcmludF92YWx1ZXMsIDEgLyogcHJpbnQgZXhwcmVzc2lvbiAqLyk7Ci0tICAgICAgZG9fY2xl YW51cHMgKGNsZWFudXBfY2hpbGQpOwotKyAgICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwX2No aWxkcmVuOwotKyAgICAgIGlmIChtaV92ZXJzaW9uICh1aW91dCkgPT0gMSkKLSsJY2xlYW51cF9j aGlsZHJlbgotKwkgID0gbWFrZV9jbGVhbnVwX3VpX291dF90dXBsZV9iZWdpbl9lbmQgKHVpb3V0 LCAiY2hpbGRyZW4iKTsKLSsgICAgICBlbHNlCi0rCWNsZWFudXBfY2hpbGRyZW4KLSsJICA9IG1h a2VfY2xlYW51cF91aV9vdXRfbGlzdF9iZWdpbl9lbmQgKHVpb3V0LCAiY2hpbGRyZW4iKTsKLSsg ICAgICBmb3IgKGl4ID0gZnJvbTsKLSsJICAgaXggPCB0byAmJiBWRUNfaXRlcmF0ZSAodmFyb2Jq X3AsIGNoaWxkcmVuLCBpeCwgY2hpbGQpOwotKwkgICArK2l4KQotKwl7Ci0rCSAgc3RydWN0IGNs ZWFudXAgKmNsZWFudXBfY2hpbGQ7Ci0rCSAgY2xlYW51cF9jaGlsZCA9IG1ha2VfY2xlYW51cF91 aV9vdXRfdHVwbGVfYmVnaW5fZW5kICh1aW91dCwgImNoaWxkIik7Ci0rCSAgcHJpbnRfdmFyb2Jq IChjaGlsZCwgcHJpbnRfdmFsdWVzLCAxIC8qIHByaW50IGV4cHJlc3Npb24gKi8pOwotKwkgIGRv X2NsZWFudXBzIChjbGVhbnVwX2NoaWxkKTsKLSsJfQotKyAgICAgIGRvX2NsZWFudXBzIChjbGVh bnVwX2NoaWxkcmVuKTsKLSAgICAgfQotLSAgZG9fY2xlYW51cHMgKGNsZWFudXBfY2hpbGRyZW4p OwotKwotKyAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJoYXNfbW9yZSIsIHZhcm9ial9oYXNf bW9yZSAodmFyLCB0bykpOwotIH0KLSAKLSB2b2lkCi1AQCAtNTM4LDE2ICs1NzMsMjQgQEAgbWlf Y21kX3Zhcl9ldmFsdWF0ZV9leHByZXNzaW9uIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwg aW50IGFyZ2MpCi0gICB2YXIgPSB2YXJvYmpfZ2V0X2hhbmRsZSAoYXJndltvcHRpbmRdKTsKLSAg ICAKLSAgIGlmIChmb3JtYXRGb3VuZCkKLS0gICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQs ICJ2YWx1ZSIsIHZhcm9ial9nZXRfZm9ybWF0dGVkX3ZhbHVlICh2YXIsIGZvcm1hdCkpOwotKyAg ICB7Ci0rICAgICAgY2hhciAqdmFsID0gdmFyb2JqX2dldF9mb3JtYXR0ZWRfdmFsdWUgKHZhciwg Zm9ybWF0KTsKLSsgICAgICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgInZhbHVlIiwgdmFs KTsKLSsgICAgICB4ZnJlZSAodmFsKTsKLSsgICAgfQotICAgZWxzZQotLSAgICB1aV9vdXRfZmll bGRfc3RyaW5nICh1aW91dCwgInZhbHVlIiwgdmFyb2JqX2dldF92YWx1ZSAodmFyKSk7Ci0rICAg IHsKLSsgICAgICBjaGFyICp2YWwgPSB2YXJvYmpfZ2V0X3ZhbHVlICh2YXIpOwotKyAgICAgIHVp X291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YWwpOwotKyAgICAgIHhmcmVlICh2 YWwpOwotKyAgICB9Ci0gfQotIAotIHZvaWQKLSBtaV9jbWRfdmFyX2Fzc2lnbiAoY2hhciAqY29t bWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQotIHsKLSAgIHN0cnVjdCB2YXJvYmogKnZhcjsK LS0gIGNoYXIgKmV4cHJlc3Npb247Ci0rICBjaGFyICpleHByZXNzaW9uLCAqdmFsOwotIAotICAg aWYgKGFyZ2MgIT0gMikKLSAgICAgZXJyb3IgKF8oIm1pX2NtZF92YXJfYXNzaWduOiBVc2FnZTog TkFNRSBFWFBSRVNTSU9OLiIpKTsKLUBAIC01NjMsNyArNjA2LDkgQEAgbWlfY21kX3Zhcl9hc3Np Z24gKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKLSAgIGlmICghdmFyb2Jq X3NldF92YWx1ZSAodmFyLCBleHByZXNzaW9uKSkKLSAgICAgZXJyb3IgKF8oIm1pX2NtZF92YXJf YXNzaWduOiBDb3VsZCBub3QgYXNzaWduIGV4cHJlc3Npb24gdG8gdmFyaWFibGUgb2JqZWN0Iikp OwotIAotLSAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhcm9ial9nZXRf dmFsdWUgKHZhcikpOwotKyAgdmFsID0gdmFyb2JqX2dldF92YWx1ZSAodmFyKTsKLSsgIHVpX291 dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YWwpOwotKyAgeGZyZWUgKHZhbCk7Ci0g fQotIAotIC8qIFR5cGUgdXNlZCBmb3IgcGFyYW1ldGVycyBwYXNzaW5nIHRvIG1pX2NtZF92YXJf dXBkYXRlX2l0ZXIuICAqLwotQEAgLTY0NCw3ICs2ODksNiBAQCBtaV9jbWRfdmFyX3VwZGF0ZSAo Y2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQorQEAgLTY5Nyw3ICs2OTcsNiBA QCBtaV9jbWRfdmFyX3VwZGF0ZSAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdj KQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKQEAgLTEyOTE3LDE0OSArMTIwMzEsNiBAQCBpbmRl eCAwY2YwM2Q5Li45MzQ1OWRkIDEwMDY0NAogICAgICAgIHN0cnVjdCB2YXJvYmogKnZhciA9IHZh cm9ial9nZXRfaGFuZGxlIChuYW1lKTsKICAKICAgICAgICB2YXJvYmpfdXBkYXRlX29uZSAodmFy LCBwcmludF92YWx1ZXMsIDEgLyogZXhwbGljaXQgKi8pOwotQEAgLTY3MCw2ICs3MTQsNyBAQCB2 YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHByaW50X3ZhbHVlcyBw cmludF92YWx1ZXMsCi0gICBmb3IgKGkgPSAwOyBWRUNfaXRlcmF0ZSAodmFyb2JqX3VwZGF0ZV9y ZXN1bHQsIGNoYW5nZXMsIGksIHIpOyArK2kpCi0gICAgIHsKLSAgICAgICBjaGFyICpkaXNwbGF5 X2hpbnQ7Ci0rICAgICAgaW50IGZyb20sIHRvOwotIAotICAgICAgIGlmIChtaV92ZXJzaW9uICh1 aW91dCkgPiAxKQotICAgICAgICAgY2xlYW51cCA9IG1ha2VfY2xlYW51cF91aV9vdXRfdHVwbGVf YmVnaW5fZW5kICh1aW91dCwgTlVMTCk7Ci1AQCAtNjc4LDggKzcyMywxMiBAQCB2YXJvYmpfdXBk YXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1 ZXMsCi0gICAgICAgc3dpdGNoIChyLT5zdGF0dXMpCi0gCXsKLSAJY2FzZSBWQVJPQkpfSU5fU0NP UEU6Ci0tCSAgaWYgKG1pX3ByaW50X3ZhbHVlX3AgKHZhcm9ial9nZXRfZ2RiX3R5cGUgKHItPnZh cm9iaiksIHByaW50X3ZhbHVlcykpCi0tCSAgICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwg InZhbHVlIiwgdmFyb2JqX2dldF92YWx1ZSAoci0+dmFyb2JqKSk7Ci0rCSAgaWYgKG1pX3ByaW50 X3ZhbHVlX3AgKHItPnZhcm9iaiwgcHJpbnRfdmFsdWVzKSkKLSsJICAgIHsKLSsJICAgICAgY2hh ciAqdmFsID0gdmFyb2JqX2dldF92YWx1ZSAoci0+dmFyb2JqKTsKLSsJICAgICAgdWlfb3V0X2Zp ZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhbCk7Ci0rCSAgICAgIHhmcmVlICh2YWwpOwot KwkgICAgfQotIAkgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiaW5fc2NvcGUiLCAidHJ1 ZSIpOwotIAkgIGJyZWFrOwotICAgICAgICAgY2FzZSBWQVJPQkpfTk9UX0lOX1NDT1BFOgotQEAg LTY5OSwxMSArNzQ4LDExIEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2JqICp2YXIs IGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKLSAJfQotIAotICAgICAgIGlmIChyLT50 eXBlX2NoYW5nZWQpCi0tCXsKLS0gICAgICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQs ICJuZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSAoci0+dmFyb2JqKSk7Ci0tICAgICAgICAgIHVp X291dF9maWVsZF9pbnQgKHVpb3V0LCAibmV3X251bV9jaGlsZHJlbiIsIAotLQkJCSAgICB2YXJv YmpfZ2V0X251bV9jaGlsZHJlbiAoci0+dmFyb2JqKSk7Ci0tCX0KLSsJdWlfb3V0X2ZpZWxkX3N0 cmluZyAodWlvdXQsICJuZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSAoci0+dmFyb2JqKSk7Ci0r Ci0rICAgICAgaWYgKHItPnR5cGVfY2hhbmdlZCB8fCByLT5jaGlsZHJlbl9jaGFuZ2VkKQotKwl1 aV9vdXRfZmllbGRfaW50ICh1aW91dCwgIm5ld19udW1fY2hpbGRyZW4iLCAKLSsJCQkgIHZhcm9i al9nZXRfbnVtX2NoaWxkcmVuIChyLT52YXJvYmopKTsKLSAKLSAgICAgICBkaXNwbGF5X2hpbnQg PSB2YXJvYmpfZ2V0X2Rpc3BsYXlfaGludCAodmFyKTsKLSAgICAgICBpZiAoZGlzcGxheV9oaW50 KQotQEAgLTcxMiwyOCArNzYxLDU5IEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2Jq ICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKLSAJICB4ZnJlZSAoZGlzcGxh eV9oaW50KTsKLSAJfQotIAotLSAgICAgIGlmIChyLT5jaGlsZHJlbl9jaGFuZ2VkKQotLQl7Ci0t CSAgaW50IGl4OwotLQkgIHN0cnVjdCB2YXJvYmogKmNoaWxkOwotLQkgIHN0cnVjdCBjbGVhbnVw ICpjbGVhbnVwID0KLS0JICAgIG1ha2VfY2xlYW51cF91aV9vdXRfbGlzdF9iZWdpbl9lbmQgKHVp b3V0LCAiY2hpbGRyZW4iKTsKLSsgICAgICBpZiAodmFyb2JqX3ByZXR0eV9wcmludGVkX3AgKHZh cikpCi0rCXVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAiZHluYW1pYyIsIDEpOwotIAotLQkgIFZF QyAodmFyb2JqX3ApKiBjaGlsZHJlbiA9IHZhcm9ial9saXN0X2NoaWxkcmVuIChyLT52YXJvYmop OwotKyAgICAgIHZhcm9ial9nZXRfY2hpbGRfcmFuZ2UgKHItPnZhcm9iaiwgJmZyb20sICZ0byk7 Ci0rICAgICAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJoYXNfbW9yZSIsCi0rCQkJdmFyb2Jq X2hhc19tb3JlIChyLT52YXJvYmosIHRvKSk7Ci0gCi0tCSAgZm9yIChpeCA9IDA7IFZFQ19pdGVy YXRlICh2YXJvYmpfcCwgY2hpbGRyZW4sIGl4LCBjaGlsZCk7ICsraXgpCi0rICAgICAgaWYgKHIt Pm5ldykKLSsJewotKwkgIGludCBqOwotKwkgIHZhcm9ial9wIGNoaWxkOwotKwkgIHN0cnVjdCBj bGVhbnVwICpjbGVhbnVwOwotKwotKwkgIGNsZWFudXAgPSBtYWtlX2NsZWFudXBfdWlfb3V0X2xp c3RfYmVnaW5fZW5kICh1aW91dCwgIm5ld19jaGlsZHJlbiIpOwotKwkgIGZvciAoaiA9IDA7IFZF Q19pdGVyYXRlICh2YXJvYmpfcCwgci0+bmV3LCBqLCBjaGlsZCk7ICsraikKLSAJICAgIHsKLSAJ ICAgICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBfY2hpbGQ7Ci0gCSAgICAgIGNsZWFudXBfY2hp bGQgPSBtYWtlX2NsZWFudXBfdWlfb3V0X3R1cGxlX2JlZ2luX2VuZCAodWlvdXQsIE5VTEwpOwot LQkgICAgICBwcmludF92YXJvYmogKGNoaWxkLCBwcmludF92YWx1ZXMsIDEgLyogcHJpbnQgZXhw cmVzc2lvbiAqLyk7Ci0rCSAgICAgIHByaW50X3Zhcm9iaiAoY2hpbGQsIHByaW50X3ZhbHVlcywg MSAvKiBwcmludF9leHByZXNzaW9uICovKTsKLSAJICAgICAgZG9fY2xlYW51cHMgKGNsZWFudXBf Y2hpbGQpOwotIAkgICAgfQotIAotIAkgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKLSsJICBWRUNf ZnJlZSAodmFyb2JqX3AsIHItPm5ldyk7Ci0rCSAgci0+bmV3ID0gTlVMTDsJLyogUGFyYW5vaWEu ICAqLwotIAl9Ci0tICAKLSsKLSAgICAgICBpZiAobWlfdmVyc2lvbiAodWlvdXQpID4gMSkKLSAJ ZG9fY2xlYW51cHMgKGNsZWFudXApOwotICAgICB9Ci0gICBWRUNfZnJlZSAodmFyb2JqX3VwZGF0 ZV9yZXN1bHQsIGNoYW5nZXMpOwotIH0KLSsKLSt2b2lkCi0rbWlfY21kX2VuYWJsZV9wcmV0dHlf cHJpbnRpbmcgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKLSt7Ci0rICBp ZiAoYXJnYyAhPSAwKQotKyAgICBlcnJvciAoXygibWlfY21kX2VuYWJsZV9wcmV0dHlfcHJpbnRp bmc6IG5vIGFyZ3VtZW50cyBhbGxvd2VkIikpOwotKyAgdmFyb2JqX2VuYWJsZV9wcmV0dHlfcHJp bnRpbmcgKCk7Ci0rfQotKwotK3ZvaWQKLSttaV9jbWRfdmFyX3NldF91cGRhdGVfcmFuZ2UgKGNo YXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKLSt7Ci0rICBzdHJ1Y3QgdmFyb2Jq ICp2YXI7Ci0rICBpbnQgZnJvbSwgdG87Ci0rCi0rICBpZiAoYXJnYyAhPSAzKQotKyAgICBlcnJv ciAoXygibWlfY21kX3Zhcl9zZXRfdXBkYXRlX3JhbmdlOiBVc2FnZTogVkFST0JKIEZST00gVE8i KSk7Ci0rICAKLSsgIHZhciA9IHZhcm9ial9nZXRfaGFuZGxlIChhcmd2WzBdKTsKLSsgIGZyb20g PSBhdG9pIChhcmd2WzFdKTsKLSsgIHRvID0gYXRvaSAoYXJndlsyXSk7Ci0rCi0rICB2YXJvYmpf c2V0X2NoaWxkX3JhbmdlICh2YXIsIGZyb20sIHRvKTsKLSt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL21p L21pLWNtZHMuYyBiL2dkYi9taS9taS1jbWRzLmMKLWluZGV4IGRkM2Q4MDMuLjhiYTA4NmMgMTAw NjQ0Ci0tLS0gYS9nZGIvbWkvbWktY21kcy5jCi0rKysgYi9nZGIvbWkvbWktY21kcy5jCi1AQCAt NTIsNiArNTIsNyBAQCBzdHJ1Y3QgbWlfY21kIG1pX2NtZHNbXSA9Ci0gICB7ICJkYXRhLXdyaXRl LW1lbW9yeSIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfZGF0YV93cml0ZV9tZW1vcnl9LAotICAgeyAi ZGF0YS13cml0ZS1yZWdpc3Rlci12YWx1ZXMiLCB7IE5VTEwsIDAgfSwgbWlfY21kX2RhdGFfd3Jp dGVfcmVnaXN0ZXJfdmFsdWVzfSwKLSAgIHsgImVuYWJsZS10aW1pbmdzIiwgeyBOVUxMLCAwIH0s IG1pX2NtZF9lbmFibGVfdGltaW5nc30sCi0rICB7ICJlbmFibGUtcHJldHR5LXByaW50aW5nIiwg eyBOVUxMLCAwIH0sIG1pX2NtZF9lbmFibGVfcHJldHR5X3ByaW50aW5nfSwKLSAgIHsgImVudmly b25tZW50LWNkIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbnZfY2R9LAotICAgeyAiZW52aXJvbm1l bnQtZGlyZWN0b3J5IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbnZfZGlyfSwKLSAgIHsgImVudmly b25tZW50LXBhdGgiLCB7IE5VTEwsIDAgfSwgbWlfY21kX2Vudl9wYXRofSwKLUBAIC0xMTIsNiAr MTEzLDcgQEAgc3RydWN0IG1pX2NtZCBtaV9jbWRzW10gPQotICAgeyAidmFyLWxpc3QtY2hpbGRy ZW4iLCB7IE5VTEwsIDAgfSwgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVufSwKLSAgIHsgInZhci1z ZXQtZm9ybWF0IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF92YXJfc2V0X2Zvcm1hdH0sCi0gICB7ICJ2 YXItc2V0LWZyb3plbiIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3NldF9mcm96ZW59LAotKyAg eyAidmFyLXNldC11cGRhdGUtcmFuZ2UiLCB7IE5VTEwsIDAgfSwgbWlfY21kX3Zhcl9zZXRfdXBk YXRlX3JhbmdlIH0sCi0gICB7ICJ2YXItc2V0LXZpc3VhbGl6ZXIiLCB7IE5VTEwsIDAgfSwgbWlf Y21kX3Zhcl9zZXRfdmlzdWFsaXplcn0sCi0gICB7ICJ2YXItc2hvdy1hdHRyaWJ1dGVzIiwgeyBO VUxMLCAwIH0sIG1pX2NtZF92YXJfc2hvd19hdHRyaWJ1dGVzfSwKLSAgIHsgInZhci1zaG93LWZv cm1hdCIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3Nob3dfZm9ybWF0fSwKLWRpZmYgLS1naXQg YS9nZGIvbWkvbWktY21kcy5oIGIvZ2RiL21pL21pLWNtZHMuaAotaW5kZXggODVhZDBjNC4uZGZh YjQxMSAxMDA2NDQKLS0tLSBhL2dkYi9taS9taS1jbWRzLmgKLSsrKyBiL2dkYi9taS9taS1jbWRz LmgKLUBAIC05OSw2ICs5OSw4IEBAIGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFy X3NldF92aXN1YWxpemVyOwotIGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFyX3No b3dfYXR0cmlidXRlczsKLSBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl9zaG93 X2Zvcm1hdDsKLSBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl91cGRhdGU7Ci0r ZXh0ZXJuIG1pX2NtZF9hcmd2X2Z0eXBlIG1pX2NtZF9lbmFibGVfcHJldHR5X3ByaW50aW5nOwot K2V4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFyX3NldF91cGRhdGVfcmFuZ2U7Ci0g Ci0gLyogRGVzY3JpcHRpb24gb2YgYSBzaW5nbGUgY29tbWFuZC4gKi8KLSAKIGRpZmYgLS1naXQg YS9nZGIvbWkvbWktbWFpbi5jIGIvZ2RiL21pL21pLW1haW4uYwogaW5kZXggODU3YTVkNS4uNjE4 MTAwMiAxMDA2NDQKIC0tLSBhL2dkYi9taS9taS1tYWluLmMKQEAgLTEzMDg2LDIwICsxMjA1Nywx MiBAQCBpbmRleCBhODQwMDNmLi45MjRjMWM1IDEwMDY0NAogICAgZGVmYXVsdF9zeW1maWxlX29m ZnNldHMsCS8qIHN5bV9vZmZzZXRzOiBkdW1teSBGSVhNRSB0aWwgaW1wbGVtIHN5bSByZWxvYyAq LwogICAgZGVmYXVsdF9zeW1maWxlX3NlZ21lbnRzLAkvKiBzeW1fc2VnbWVudHM6IEdldCBzZWdt ZW50IGluZm9ybWF0aW9uIGZyb20KIGRpZmYgLS1naXQgYS9nZGIvb2JqZmlsZXMuYyBiL2dkYi9v YmpmaWxlcy5jCi1pbmRleCAzZmE2OGY2Li4xMGQyYmQxIDEwMDY0NAoraW5kZXggMWY3NDg5Zi4u YjlhN2VkNiAxMDA2NDQKIC0tLSBhL2dkYi9vYmpmaWxlcy5jCiArKysgYi9nZGIvb2JqZmlsZXMu YwotQEAgLTUwLDcgKzUwLDYgQEAKLSAjaW5jbHVkZSAiYWRkcm1hcC5oIgotICNpbmNsdWRlICJh cmNoLXV0aWxzLmgiCi0gI2luY2x1ZGUgImV4ZWMuaCIKLS0jaW5jbHVkZSAib2JzZXJ2ZXIuaCIK K0BAIC00NTksMTIgKzQ1OSwxNCBAQCBmcmVlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlKQogIAotIC8qIFByb3RvdHlwZXMgZm9yIGxvY2FsIGZ1bmN0aW9ucyAqLwotIAotQEAgLTQ1 OCwxMiArNDU3LDE0IEBAIGZyZWVfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCi0g Ci0gICB1bmxpbmtfb2JqZmlsZSAob2JqZmlsZSk7CisgICB1bmxpbmtfb2JqZmlsZSAob2JqZmls ZSk7CiAgCiAtICAvKiBJZiB3ZSBhcmUgZ29pbmcgdG8gZnJlZSB0aGUgcnVudGltZSBjb21tb24g b2JqZmlsZSwgbWFyayBpdAogLSAgICAgYXMgdW5hbGxvY2F0ZWQuICAqLwpAQCAtMTMxMTQsNyAr MTIwNzcsNyBAQCBpbmRleCAzZmE2OGY2Li4xMGQyYmQxIDEwMDY0NAogICAgLyogQmVmb3JlIHRo ZSBzeW1ib2wgdGFibGUgY29kZSB3YXMgcmVkb25lIHRvIG1ha2UgaXQgZWFzaWVyIHRvCiAgICAg ICBzZWxlY3RpdmVseSBsb2FkIGFuZCByZW1vdmUgaW5mb3JtYXRpb24gcGFydGljdWxhciB0byBh IHNwZWNpZmljCiAgICAgICBsaW5rYWdlIHVuaXQsIGdkYiB1c2VkIHRvIGRvIHRoZXNlIHRoaW5n cyB3aGVuZXZlciB0aGUgbW9ub2xpdGhpYwotQEAgLTczMCw2ICs3MzEsMjAgQEAgaGF2ZV9wYXJ0 aWFsX3N5bWJvbHMgKHZvaWQpCitAQCAtNzMxLDYgKzczMywyMCBAQCBoYXZlX3BhcnRpYWxfc3lt Ym9scyAodm9pZCkKICAgICAgaWYgKG9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyAob2ZwKSkK ICAgICAgICByZXR1cm4gMTsKICAgIH0KQEAgLTEzMTM2LDcgKzEyMDk5LDcgQEAgaW5kZXggM2Zh NjhmNi4uMTBkMmJkMSAxMDA2NDQKICB9CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL29iamZpbGVzLmgg Yi9nZGIvb2JqZmlsZXMuaAotaW5kZXggNmFiY2IwZi4uMjEzOTU5MCAxMDA2NDQKK2luZGV4IDYy ZmE0OTguLjFmYzljNmEgMTAwNjQ0CiAtLS0gYS9nZGIvb2JqZmlsZXMuaAogKysrIGIvZ2RiL29i amZpbGVzLmgKIEBAIC0yMTIsNiArMjEyLDExIEBAIHN0cnVjdCBvYmpmaWxlCkBAIC0xMzE2Nyw3 ICsxMjEzMCw3IEBAIGluZGV4IDZhYmNiMGYuLjIxMzk1OTAgMTAwNjQ0CiAgLyogVGhlIG9iamVj dCBmaWxlIHRoYXQgdGhlIG1haW4gc3ltYm9sIHRhYmxlIHdhcyBsb2FkZWQgZnJvbSAoZS5nLiB0 aGUKICAgICBhcmd1bWVudCB0byB0aGUgInN5bWJvbC1maWxlIiBvciAiZmlsZSIgY29tbWFuZCku ICAqLwogIAotQEAgLTU1OSw2ICs1NzMsMTMgQEAgZXh0ZXJuIHZvaWQgZ2RiX2JmZF91bnJlZiAo c3RydWN0IGJmZCAqYWJmZCk7CitAQCAtNTY4LDYgKzU4MiwxMyBAQCBleHRlcm4gdm9pZCBnZGJf YmZkX3VucmVmIChzdHJ1Y3QgYmZkICphYmZkKTsKICAgIEFMTF9PQkpGSUxFUyAob2JqZmlsZSkJ IFwKICAgICAgQUxMX09CSkZJTEVfUFNZTVRBQlMgKG9iamZpbGUsIHApCiAgCkBAIC0xODU5MCw3 ICsxNzU1Myw3IEBAIGluZGV4IDAwMDAwMDAuLjgzMGU1ODYKICsgIHNhbF9vYmplY3RfZ2V0c2V0 CQkgIC8qIHRwX2dldHNldCAqLwogK307CiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS10eXBl LmMgYi9nZGIvcHl0aG9uL3B5LXR5cGUuYwotaW5kZXggZjIzMjQ4Yy4uYjQxZDg2OCAxMDA2NDQK K2luZGV4IDU5MGQ5MGEuLmY1MTIyNDggMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5LXR5cGUu YwogKysrIGIvZ2RiL3B5dGhvbi9weS10eXBlLmMKIEBAIC0yNyw2ICsyNyw4IEBACkBAIC0xODc3 MSw5ICsxNzczNCw5IEBAIGluZGV4IGYyMzI0OGMuLmI0MWQ4NjggMTAwNjQ0CiArfQogKwogIHN0 YXRpYyB2b2lkCi0gY2xlYW5fdXBfb2JqZmlsZV90eXBlcyAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsIHZvaWQgKmRhdHVtKQorIHNhdmVfb2JqZmlsZV90eXBlcyAoc3RydWN0IG9iamZpbGUgKm9i amZpbGUsIHZvaWQgKmRhdHVtKQogIHsKLUBAIC01NDMsMTIgKzYyMSwxMyBAQCBjbGVhbl91cF9v YmpmaWxlX3R5cGVzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0dW0pCitAQCAt NTQzLDEyICs2MjEsMTMgQEAgc2F2ZV9vYmpmaWxlX3R5cGVzIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwgdm9pZCAqZGF0dW0pCiAgICAgIHsKICAgICAgICB0eXBlX29iamVjdCAqbmV4dCA9IG9i ai0+bmV4dDsKICAKQEAgLTE4NzkxLDcgKzE3NzU0LDcgQEAgaW5kZXggZjIzMjQ4Yy4uYjQxZDg2 OCAxMDA2NDQKICAKICAgICAgICBvYmogPSBuZXh0OwogICAgICB9Ci1AQCAtNTU5LDQxICs2Mzgs MjUgQEAgY2xlYW5fdXBfb2JqZmlsZV90eXBlcyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZv aWQgKmRhdHVtKQorQEAgLTU1OSw0MSArNjM4LDI1IEBAIHNhdmVfb2JqZmlsZV90eXBlcyAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmRhdHVtKQogIH0KICAKICBzdGF0aWMgdm9pZApA QCAtMTg5NjAsNyArMTc5MjMsNyBAQCBpbmRleCA0OWMwNDM3Li44NGE0NzZlIDEwMDY0NAogKyAg cmV0dXJuIDE7CiArfQogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktdmFsdWUuYyBiL2dkYi9w eXRob24vcHktdmFsdWUuYwotaW5kZXggM2Q4OGFhMy4uYjk5MzUxNSAxMDA2NDQKK2luZGV4IDNk ODhhYTMuLjlmYTFjNDQgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKICsrKyBi L2dkYi9weXRob24vcHktdmFsdWUuYwogQEAgLTI1LDYgKzI1LDcgQEAKQEAgLTE4OTgyLDcgKzE3 OTQ1LDI3IEBAIGluZGV4IDNkODhhYTMuLmI5OTM1MTUgMTAwNjQ0CiAgI2RlZmluZSBidWlsdGlu X3R5cGVfcHlib29sIFwKICAgIGxhbmd1YWdlX2Jvb2xfdHlwZSAocHl0aG9uX2xhbmd1YWdlLCBw eXRob25fZ2RiYXJjaCkKICAKLUBAIC04OTEsNyArODk2LDM0IEBAIGNvbnZlcnRfdmFsdWVfZnJv bV9weXRob24gKFB5T2JqZWN0ICpvYmopCitAQCAtMzI0LDcgKzMyOSwxOCBAQCB2YWxweV9nZXRp dGVtIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmtleSkKKyAJICAgICB0eXBlLiAgKi8KKyAJ ICBzdHJ1Y3QgdmFsdWUgKmlkeCA9IGNvbnZlcnRfdmFsdWVfZnJvbV9weXRob24gKGtleSk7Cisg CSAgaWYgKGlkeCAhPSBOVUxMKQorLQkgICAgcmVzX3ZhbCA9IHZhbHVlX3N1YnNjcmlwdCAodG1w LCB2YWx1ZV9hc19sb25nIChpZHgpKTsKKysJICAgIHsKKysJICAgICAgLyogQ2hlY2sgdGhlIHZh bHVlJ3MgdHlwZSBpcyBzb21ldGhpbmcgdGhhdCBjYW4gYmUgYWNjZXNzZWQgdmlhCisrCQkgYSBz dWJzY3JpcHQuICAqLworKwkgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKysJICAgICAgdG1wID0g Y29lcmNlX3JlZiAodG1wKTsKKysJICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5 cGUgKHRtcCkpOworKwkgICAgICBpZiAoVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfQVJS QVkKKysJCSAgJiYgVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfUFRSKQorKwkJICBlcnJv ciggXygiQ2Fubm90IHN1YnNjcmlwdCByZXF1ZXN0ZWQgdHlwZSIpKTsKKysJICAgICAgZWxzZQor KwkJcmVzX3ZhbCA9IHZhbHVlX3N1YnNjcmlwdCAodG1wLCB2YWx1ZV9hc19sb25nIChpZHgpKTsK KysJICAgIH0KKyAJfQorICAgICB9CisgCitAQCAtODkxLDcgKzkwNywzNCBAQCBjb252ZXJ0X3Zh bHVlX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqKQogIAl7CiAgCSAgTE9OR0VTVCBsID0gUHlM b25nX0FzTG9uZ0xvbmcgKG9iaik7CiAgCkBAIC0xOTAxOCw3ICsxODAwMSw3IEBAIGluZGV4IDNk ODhhYTMuLmI5OTM1MTUgMTAwNjQ0CiAgCSAgICB2YWx1ZSA9IHZhbHVlX2Zyb21fbG9uZ2VzdCAo YnVpbHRpbl90eXBlX3B5bG9uZywgbCk7CiAgCX0KICAgICAgICBlbHNlIGlmIChQeUZsb2F0X0No ZWNrIChvYmopKQotQEAgLTk1MCw2ICs5ODIsMjUgQEAgZ2RicHlfaGlzdG9yeSAoUHlPYmplY3Qg KnNlbGYsIFB5T2JqZWN0ICphcmdzKQorQEAgLTk1MCw2ICs5OTMsMjUgQEAgZ2RicHlfaGlzdG9y eSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgcmV0dXJuIHZhbHVlX3RvX3Zh bHVlX29iamVjdCAocmVzX3ZhbCk7CiAgfQogIApAQCAtMTkwNDQsNyArMTgwMjcsNyBAQCBpbmRl eCAzZDg4YWEzLi5iOTkzNTE1IDEwMDY0NAogIHZvaWQKICBnZGJweV9pbml0aWFsaXplX3ZhbHVl cyAodm9pZCkKICB7Ci1AQCAtOTYwLDYgKzEwMTEsOCBAQCBnZGJweV9pbml0aWFsaXplX3ZhbHVl cyAodm9pZCkKK0BAIC05NjAsNiArMTAyMiw4IEBAIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2 b2lkKQogICAgUHlNb2R1bGVfQWRkT2JqZWN0IChnZGJfbW9kdWxlLCAiVmFsdWUiLCAoUHlPYmpl Y3QgKikgJnZhbHVlX29iamVjdF90eXBlKTsKICAKICAgIHZhbHVlc19pbl9weXRob24gPSBOVUxM OwpAQCAtMjA5NjgsNyArMTk5NTEsNyBAQCBpbmRleCA3NDBkNGUwLi40NjFmZjk1IDEwMDY0NAog IAogIGV4dGVybiBzdHJ1Y3Qgc3ltdGFic19hbmRfbGluZXMKIGRpZmYgLS1naXQgYS9nZGIvdGFy Z2V0LmMgYi9nZGIvdGFyZ2V0LmMKLWluZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CitpbmRl eCBlNWQxNGZkLi4zN2ZhYjcyIDEwMDY0NAogLS0tIGEvZ2RiL3RhcmdldC5jCiArKysgYi9nZGIv dGFyZ2V0LmMKIEBAIC0xMjQsNiArMTI0LDggQEAgc3RhdGljIGludCBkZWJ1Z190b19pbnNlcnRf d2F0Y2hwb2ludCAoQ09SRV9BRERSLCBpbnQsIGludCk7CkBAIC0yMDk4OCw3ICsxOTk3MSw3IEBA IGluZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CiAgICAgICAgSU5IRVJJVCAodG9fc3RvcHBl ZF9kYXRhX2FkZHJlc3MsIHQpOwogICAgICAgIElOSEVSSVQgKHRvX2hhdmVfc3RlcHBhYmxlX3dh dGNocG9pbnQsIHQpOwogICAgICAgIElOSEVSSVQgKHRvX2hhdmVfY29udGludWFibGVfd2F0Y2hw b2ludCwgdCk7Ci1AQCAtNzMyLDYgKzczNSw5IEBAIHVwZGF0ZV9jdXJyZW50X3RhcmdldCAodm9p ZCkKK0BAIC03MzMsNiArNzM2LDkgQEAgdXBkYXRlX2N1cnJlbnRfdGFyZ2V0ICh2b2lkKQogICAg ZGVfZmF1bHQgKHRvX3JlbW92ZV93YXRjaHBvaW50LAogIAkgICAgKGludCAoKikgKENPUkVfQURE UiwgaW50LCBpbnQpKQogIAkgICAgcmV0dXJuX21pbnVzX29uZSk7CkBAIC0yMDk5OCw3ICsxOTk4 MSw3IEBAIGluZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CiAgICBkZV9mYXVsdCAodG9fc3Rv cHBlZF9ieV93YXRjaHBvaW50LAogIAkgICAgKGludCAoKikgKHZvaWQpKQogIAkgICAgcmV0dXJu X3plcm8pOwotQEAgLTMxNjgsNiArMzE3NCwxOSBAQCBkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2lu dCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlKQorQEAgLTMxNzMsNiArMzE3OSwx OSBAQCBkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4s IGludCB0eXBlKQogICAgcmV0dXJuIHJldHZhbDsKICB9CiAgCkBAIC0yMTAxOCw3ICsyMDAwMSw3 IEBAIGluZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CiAgc3RhdGljIHZvaWQKICBkZWJ1Z190 b190ZXJtaW5hbF9pbml0ICh2b2lkKQogIHsKLUBAIC0zNDE1LDYgKzM0MzQsNyBAQCBzZXR1cF90 YXJnZXRfZGVidWcgKHZvaWQpCitAQCAtMzQyMCw2ICszNDM5LDcgQEAgc2V0dXBfdGFyZ2V0X2Rl YnVnICh2b2lkKQogICAgY3VycmVudF90YXJnZXQudG9fcmVtb3ZlX2h3X2JyZWFrcG9pbnQgPSBk ZWJ1Z190b19yZW1vdmVfaHdfYnJlYWtwb2ludDsKICAgIGN1cnJlbnRfdGFyZ2V0LnRvX2luc2Vy dF93YXRjaHBvaW50ID0gZGVidWdfdG9faW5zZXJ0X3dhdGNocG9pbnQ7CiAgICBjdXJyZW50X3Rh cmdldC50b19yZW1vdmVfd2F0Y2hwb2ludCA9IGRlYnVnX3RvX3JlbW92ZV93YXRjaHBvaW50OwpA QCAtMjEwMjcsMTAgKzIwMDEwLDEwIEBAIGluZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CiAg ICBjdXJyZW50X3RhcmdldC50b19zdG9wcGVkX2RhdGFfYWRkcmVzcyA9IGRlYnVnX3RvX3N0b3Bw ZWRfZGF0YV9hZGRyZXNzOwogICAgY3VycmVudF90YXJnZXQudG9fd2F0Y2hwb2ludF9hZGRyX3dp dGhpbl9yYW5nZSA9IGRlYnVnX3RvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2U7CiBkaWZm IC0tZ2l0IGEvZ2RiL3RhcmdldC5oIGIvZ2RiL3RhcmdldC5oCi1pbmRleCBjMjEwZmVhLi4wNjVh N2VhIDEwMDY0NAoraW5kZXggYjFjYjg1Mi4uYWRmZjk0NiAxMDA2NDQKIC0tLSBhL2dkYi90YXJn ZXQuaAogKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtMzc5LDYgKzM3OSw3IEBAIHN0cnVjdCB0YXJn ZXRfb3BzCitAQCAtMzk1LDYgKzM5NSw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAgICAgIGludCAo KnRvX3JlbW92ZV9od19icmVha3BvaW50KSAoc3RydWN0IGdkYmFyY2ggKiwgc3RydWN0IGJwX3Rh cmdldF9pbmZvICopOwogICAgICBpbnQgKCp0b19yZW1vdmVfd2F0Y2hwb2ludCkgKENPUkVfQURE UiwgaW50LCBpbnQpOwogICAgICBpbnQgKCp0b19pbnNlcnRfd2F0Y2hwb2ludCkgKENPUkVfQURE UiwgaW50LCBpbnQpOwpAQCAtMjEwMzgsNyArMjAwMjEsNyBAQCBpbmRleCBjMjEwZmVhLi4wNjVh N2VhIDEwMDY0NAogICAgICBpbnQgKCp0b19zdG9wcGVkX2J5X3dhdGNocG9pbnQpICh2b2lkKTsK ICAgICAgaW50IHRvX2hhdmVfc3RlcHBhYmxlX3dhdGNocG9pbnQ7CiAgICAgIGludCB0b19oYXZl X2NvbnRpbnVhYmxlX3dhdGNocG9pbnQ7Ci1AQCAtMTEyNiw2ICsxMTI3LDE1IEBAIGV4dGVybiBj aGFyICpub3JtYWxfcGlkX3RvX3N0ciAocHRpZF90IHB0aWQpOworQEAgLTExNjYsNiArMTE2Nywx NSBAQCBleHRlcm4gY2hhciAqbm9ybWFsX3BpZF90b19zdHIgKHB0aWRfdCBwdGlkKTsKICAjZGVm aW5lCXRhcmdldF9yZW1vdmVfd2F0Y2hwb2ludChhZGRyLCBsZW4sIHR5cGUpCVwKICAgICAgICgq Y3VycmVudF90YXJnZXQudG9fcmVtb3ZlX3dhdGNocG9pbnQpIChhZGRyLCBsZW4sIHR5cGUpCiAg CkBAIC0yMTA1NCw3ICsyMDAzNyw3IEBAIGluZGV4IGMyMTBmZWEuLjA2NWE3ZWEgMTAwNjQ0CiAg I2RlZmluZSB0YXJnZXRfaW5zZXJ0X2h3X2JyZWFrcG9pbnQoZ2RiYXJjaCwgYnBfdGd0KSBcCiAg ICAgICAoKmN1cnJlbnRfdGFyZ2V0LnRvX2luc2VydF9od19icmVha3BvaW50KSAoZ2RiYXJjaCwg YnBfdGd0KQogIAotQEAgLTExNjMsNiArMTE3MywyMCBAQCBleHRlcm4gaW50IHRhcmdldF9zZWFy Y2hfbWVtb3J5IChDT1JFX0FERFIgc3RhcnRfYWRkciwKK0BAIC0xMjAzLDYgKzEyMTMsMjAgQEAg ZXh0ZXJuIGludCB0YXJnZXRfc2VhcmNoX21lbW9yeSAoQ09SRV9BRERSIHN0YXJ0X2FkZHIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxPTkdFU1QgcGF0dGVybl9sZW4sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSICpmb3VuZF9hZGRycCk7 CiAgCkBAIC0yMTA3NSw3ICsyMDA1OCw3IEBAIGluZGV4IGMyMTBmZWEuLjA2NWE3ZWEgMTAwNjQ0 CiAgLyogQ29tbWFuZCBsb2dnaW5nIGZhY2lsaXR5LiAgKi8KICAKICAjZGVmaW5lIHRhcmdldF9s b2dfY29tbWFuZChwKQkJCQkJCVwKLUBAIC0xMjgyLDYgKzEzMDYsMTQgQEAgZXh0ZXJuIHN0cnVj dCB0YXJnZXRfb3BzICpmaW5kX3RhcmdldF9iZW5lYXRoIChzdHJ1Y3QgdGFyZ2V0X29wcyAqKTsK K0BAIC0xMzIyLDYgKzEzNDYsMTQgQEAgZXh0ZXJuIHN0cnVjdCB0YXJnZXRfb3BzICpmaW5kX3Rh cmdldF9iZW5lYXRoIChzdHJ1Y3QgdGFyZ2V0X29wcyAqKTsKICAKICBleHRlcm4gY2hhciAqdGFy Z2V0X2dldF9vc2RhdGEgKGNvbnN0IGNoYXIgKnR5cGUpOwogIApAQCAtMjYzNDMsNzExICsyNTMy Niw2IEBAIGluZGV4IDAwMDAwMDAuLmZmY2EzYWIKICsgICAgICB9CiArICB9CiArfQotZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL2dkYjcwMS5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5taS9nZGI3MDEuZXhwCi1pbmRleCBkNGFjZGMyLi4yNDRjNzMxIDEwMDY0NAotLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvZ2RiNzAxLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv Z2RiNzAxLmV4cAotQEAgLTU0LDcgKzU0LDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItbGlzdC1jaGls ZHJlbiBmb29QdHIiIFwKLSAKLSBmb3JlYWNoIGkgW2xpc3QgeCB5IHpdIHsKLSAgIG1pX2dkYl90 ZXN0ICItdmFyLWxpc3QtY2hpbGRyZW4gZm9vUHRyLiRpIiBcCi0tICAgICIoJlwiLipcIlxyXG4p KlxcXmRvbmUsbnVtY2hpbGQ9XCIwXCIiIFwKLSsgICAgIigmXCIuKlwiXHJcbikqXFxeZG9uZSxu dW1jaGlsZD1cIjBcIixoYXNfbW9yZT1cIjBcIiIgXAotICAgICAibGlzdCBjaGlsZHJlbiBvZiBm b29QdHIuJGkiCi0gfQotIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWJy ZWFrLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWJyZWFrLmV4cAotaW5kZXggNjE5NzI3 ZC4uOGQwNmMwZSAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWJyZWFrLmV4 cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktYnJlYWsuZXhwCi1AQCAtMTc1LDcgKzE3 NSw3IEBAIHByb2MgdGVzdF9lcnJvciB7fSB7Ci0gICAgICMgY29udGFpbmluZyBmdW5jdGlvbiBj YWxsLCB0aGUgaW50ZXJuYWwgYnJlYWtwb2ludCBjcmVhdGVkIHRvIGhhbmRsZQotICAgICAjIGZ1 bmN0aW9uIGNhbGwgd291bGQgYmUgcmVwb3J0ZWQsIG1lc3NpbmcgdXAgTUkgb3V0cHV0LgotICAg ICBtaV9nZGJfdGVzdCAiLXZhci1jcmVhdGUgViAqIHJldHVybl8xKCkiIFwKLS0gICAgICAgICJc XF5kb25lLG5hbWU9XCJWXCIsbnVtY2hpbGQ9XCIwXCIsdmFsdWU9XCIxXCIsdHlwZT1cImludFwi IiBcCi0rICAgICAgICAiXFxeZG9uZSxuYW1lPVwiVlwiLG51bWNoaWxkPVwiMFwiLHZhbHVlPVwi MVwiLHR5cGU9XCJpbnRcIixoYXNfbW9yZT1cIjBcIiIgXAotICAgICAgICAgImNyZWF0ZSB2YXJv YmogZm9yIGZ1bmN0aW9uIGNhbGwiCi0gCi0gICAgIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAq IiBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWJsb2NrLmV4cCBi L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1ibG9jay5leHAKLWluZGV4IDg4MDY4NDguLjkz ZGVkMjYgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItYmxvY2suZXhw Ci0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItYmxvY2suZXhwCi1AQCAtNzQsNyAr NzQsNyBAQCBtaV9zdGVwX3RvICJkb19ibG9ja190ZXN0cyIgIiIgInZhci1jbWQuYyIgXAotICMg VGVzdDogY192YXJpYWJsZS0zLjQKLSAjIERlc2M6IGNoZWNrIGZvbywgY2IgY2hhbmdlZAotIG1p X2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7 bmFtZT1cImZvb1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxc e25hbWU9XCJjYlwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxc XF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwiZm9vXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1c ImNiXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1c IjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBjYiBmb28gY2hhbmdlZCIKLSAKLSAj IHN0ZXAgdG8gImZvbyA9IDMyMTsiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv bWktdmFyLWNoaWxkLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC5leHAK LWluZGV4IDFmNGJkYzYuLmViNmM0NTYgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS12YXItY2hpbGQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hp bGQuZXhwCi1AQCAtNjgwLDcgKzY4MCw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMg e30gIi4qJHtzcmNmaWxlfSIgXAotICMgVGVzdDogY192YXJpYWJsZS01LjIKLSAjIERlc2M6IGNo ZWNrIHRoYXQgaW50ZWdlciBjaGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwK LS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5p bnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIg XAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25z LmludGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19t b3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9u cy5pbnRlZ2VyIgotIAotICMgU3RlcCBvdmVyOgotQEAgLTY5Myw3ICs2OTMsNyBAQCBtaV9leGVj dXRlX3RvICJleGVjLXN0ZXAgMyIgImVuZC1zdGVwcGluZy1yYW5nZSIgZG9fY2hpbGRyZW5fdGVz dHMge30gIi4qJHtzcmNmaQotICMgVGVzdDogY192YXJpYWJsZS01LjMKLSAjIERlc2M6IGNoZWNr IHRoYXQgY2hhcl9wdHIgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0t CSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuY2hh cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1l PVwic3RydWN0X2RlY2xhcmF0aW9ucy5jaGFyX3B0ci5cXCpjaGFyX3B0clwiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdl bGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5jaGFyX3B0clwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9 XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmNoYXJfcHRyLlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAki dXBkYXRlIGFsbCB2YXJzIHN0cnVjdF9kZWNsYXJhdGlvbnMuY2hhcl9wdHIiCi0gCi0gIyBTdGVw IG92ZXIgInN0cnVjdF9kZWNsYXJhdGlvbnMuaW50X3B0cl9wdHIgPSAmZm9vOyIKLUBAIC03MDMs NyArNzAzLDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSAiLioke3NyY2ZpbGV9 IiBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNAotICMgRGVzYzogY2hlY2sgdGhhdCBpbnRfcHRy X3B0ciBhbmQgY2hpbGRyZW4gY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBc Ci0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cIndlaXJkLT5pbnRfcHRyX3B0clwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJ3ZWly ZC0+aW50X3B0cl9wdHIuXFwqd2VpcmQtPmludF9wdHJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIs dHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cIndlaXJkLT5pbnRfcHRyX3B0ci5cXCp3 ZWlyZC0+aW50X3B0cl9wdHIuXFwqXFwqd2VpcmQtPmludF9wdHJfcHRyXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlv bnMuaW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5pbnRfcHRyX3B0ci5cXCppbnRfcHRyX3B0 clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJz dHJ1Y3RfZGVjbGFyYXRpb25zLmludF9wdHJfcHRyLlxcKmludF9wdHJfcHRyLlxcKlxcKmludF9w dHJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIg XAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJ3ZWlyZC0+aW50X3B0cl9wdHJc Iixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwi XH0sXHtuYW1lPVwid2VpcmQtPmludF9wdHJfcHRyLlxcKndlaXJkLT5pbnRfcHRyX3B0clwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxc e25hbWU9XCJ3ZWlyZC0+aW50X3B0cl9wdHIuXFwqd2VpcmQtPmludF9wdHJfcHRyLlxcKlxcKndl aXJkLT5pbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmludF9wdHJf cHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1c IjBcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuaW50X3B0cl9wdHIuXFwqaW50X3B0 cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3Jl PVwiMFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5pbnRfcHRyX3B0ci5cXCppbnRf cHRyX3B0ci5cXCpcXCppbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBp bnRfcHRyX3B0ciBhbmQgY2hpbGRyZW4gY2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAid2VpcmQt PmxvbmdfYXJyYXlbMF0gPSAxMjM0OyIKLUBAIC03MTMsNyArNzEzLDcgQEAgbWlfc3RlcF90byBk b19jaGlsZHJlbl90ZXN0cyB7fSAiLioke3NyY2ZpbGV9IiBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxl LTUuNQotICMgRGVzYzogY2hlY2sgdGhhdCBsb25nX2FycmF5WzBdIGNoYW5nZWQKLSBtaV9nZGJf dGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9 XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuMFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxb XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjBcIixpbl9zY29wZT1cInRy dWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1 cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjAgY2hhbmdlZCIK LSAKLSAjIFN0ZXAgb3ZlciAic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5WzFdID0gMjM0 NTsiCi1AQCAtNzIzLDcgKzcyMyw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30g Ii4qJHtzcmNmaWxlfSIgXAotICMgVGVzdDogY192YXJpYWJsZS01LjYKLSAjIERlc2M6IGNoZWNr IHRoYXQgbG9uZ19hcnJheVsxXSBjaGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoi IFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9u cy5sb25nX2FycmF5LjFcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNs YXJhdGlvbnMubG9uZ19hcnJheS4xXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzIHN0cnVj dF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS4xIGNoYW5nZWQiCi0gCi0gIyBTdGVwIG92ZXIgIndl aXJkLT5sb25nX2FycmF5WzJdID0gMzQ1NjsiCi1AQCAtNzMzLDcgKzczMyw3IEBAIG1pX3N0ZXBf dG8gZG9fY2hpbGRyZW5fdGVzdHMge30gIi4qJHtzcmNmaWxlfSIgXAotICMgVGVzdDogY192YXJp YWJsZS01LjcKLSAjIERlc2M6IGNoZWNrIHRoYXQgbG9uZ19hcnJheVsyXSBjaGFuZ2VkCi0gbWlf Z2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtu YW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjJcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9 XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS4yXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAot IAkidXBkYXRlIGFsbCB2YXJzIHN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS4yIGNoYW5n ZWQiCi0gCi0gIyBTdGVwIG92ZXI6Ci1AQCAtNzUyLDcgKzc1Miw3IEBAIG1pX2V4ZWN1dGVfdG8g ImV4ZWMtc3RlcCA3IiAiZW5kLXN0ZXBwaW5nLXJhbmdlIiBkb19jaGlsZHJlbl90ZXN0cyB7fSAi Lioke3NyY2ZpCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuOAotICMgRGVzYzogY2hlY2sgdGhhdCBs b25nX2FycmF5WzMtOV0gY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0t CSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9u Z19hcnJheS4zXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7 bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS40XCIsaW5fc2NvcGU9XCJ0cnVl XCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMu bG9uZ19hcnJheS41XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9 LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS42XCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlv bnMubG9uZ19hcnJheS43XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc Ilx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS44XCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJh dGlvbnMubG9uZ19hcnJheS45XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1Y3Rf ZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuM1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25z LmxvbmdfYXJyYXkuNFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIs aGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXku NVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIw XCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuNlwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9 XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuN1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVj bGFyYXRpb25zLmxvbmdfYXJyYXkuOFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxv bmdfYXJyYXkuOVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFz X21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBzdHJ1Y3RfZGVjbGFyYXRp b25zLmxvbmdfYXJyYXkuMy05IGNoYW5nZWQiCi0gCi0gCi1AQCAtNzYzLDcgKzc2Myw3IEBAIG1p X3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30gIi4qJHtzcmNmaWxlfSIgXAotICMgVGVzdDog Y192YXJpYWJsZS01LjkKLSAjIERlc2M6IGNoZWNrIHRoYXQgZnVuY19wdHIgY2hhbmdlZAotIG1p X2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7 bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuZnVuY19wdHJcIixpbl9zY29wZT1cInRydWVcIix0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxc W1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuZnVuY19wdHJcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRh dGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9ucy5mdW5jX3B0ciBjaGFuZ2VkIgotIAotICMg U3RlcCBvdmVyICJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXlbMTBdID0gMzQ1NiI7Ci1A QCAtNzcxLDcgKzc3MSw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30gIi4qJHtz cmNmaWxlfSIgXAotICAgICBbZXhwciAkbGluZV9kY3Rfbm90aGluZyArIDJdICJzdGVwIFwkbGlu ZV9kY3Rfbm90aGluZyArIDIiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIC0tbm8tdmFs dWVzICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xh cmF0aW9ucy5sb25nX2FycmF5LjEwXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1 Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuMTBcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gICJ1cGRhdGUgYWxsIHZh cnMgc3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjEwIGNoYW5nZWQsIGRvbid0IHByaW50 IHZhbHVlcy4iCi0gCi0gIyBTdGVwIG92ZXIgInN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJh eVsxMV0gPSA1Njc4IjsKLUBAIC03ODAsNyArNzgwLDcgQEAgbWlfc3RlcF90byAgZG9fY2hpbGRy ZW5fdGVzdHMge30gIi4qJHtzcmNmaWxlfSIgXAotICAgICAkbGluZV9kY3RfYTBfMCAic3RlcCBc JGxpbmVfZGN0X2EwXzAiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIC0tYWxsLXZhbHVl cyAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJh dGlvbnMubG9uZ19hcnJheS4xMVwiLHZhbHVlPVwiNTY3OFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxb XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjExXCIsdmFsdWU9XCI1Njc4 XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBc Ilx9XFxcXSIgXAotICAidXBkYXRlIGFsbCB2YXJzIHN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19h cnJheS4xMSBjaGFuZ2VkLCBwcmludCB2YWx1ZXMuIgotIAotIG1pX2xpc3RfdmFyb2JqX2NoaWxk cmVuIHtzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkgLS1hbGwtdmFsdWVzfSB7Ci1AQCAt MTEyMSw3ICsxMTIxLDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSAiLioke3Ny Y2ZpbGV9IiBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNDcKLSAjIERlc2M6IGNoZWNrIHRoYXQg cHNucC0+Y2hhcl9wdHIgKGFuZCBbMF0uY2hhcl9wdHIpIGNoYW5nZWQKLSBtaV9nZGJfdGVzdCAi LXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJwc25w LT5wdHJzLjAuY2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9w dHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwi cHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqcHNucC0+Y2hhcl9wdHJcIixp bl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+ Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqXFwq cHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqcHNucC0+ Y2hhcl9wdHIuXFwqXFwqXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqXFwqXFwqcHNucC0+Y2hhcl9w dHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0r CSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInBzbnAtPnB0cnMuMC5jaGFyX3B0clwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJc fSxce25hbWU9XCJwc25wLT5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5jaGFyX3B0ci5cXCpw c25wLT5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIs aGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5jaGFyX3B0ci5cXCpwc25wLT5jaGFyX3B0 ci5cXCpcXCpwc25wLT5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5jaGFyX3B0ci5cXCpwc25w LT5jaGFyX3B0ci5cXCpcXCpwc25wLT5jaGFyX3B0ci5cXCpcXCpcXCpwc25wLT5jaGFyX3B0clwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJc fSxce25hbWU9XCJwc25wLT5jaGFyX3B0ci5cXCpwc25wLT5jaGFyX3B0ci5cXCpcXCpwc25wLT5j aGFyX3B0ci5cXCpcXCpcXCpwc25wLT5jaGFyX3B0ci5cXCpcXCpcXCpcXCpwc25wLT5jaGFyX3B0 clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIw XCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBwc25wLT5jaGFyX3B0ciAoYW5kIDAuY2hh cl9wdHIpIGNoYW5nZWQiCi0gCi0gIyAgU3RlcCBvdmVyICJzbnAxLmNoYXJfcHRyID0gJmMzOyIK LUBAIC0xMTMxLDcgKzExMzEsNyBAQCBtaV9zdGVwX3RvIGRvX2NoaWxkcmVuX3Rlc3RzIHt9ICIu KiR7c3JjZmlsZX0iIFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNS40OAotICMgRGVzYzogY2hlY2sg dGhhdCBwc25wLT5uZXh0LT5jaGFyX3B0ciAoYW5kIFsxXS5jaGFyX3B0cikgY2hhbmdlZAotIG1p X2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7 bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRy LlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9 LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyLlxcKlxcKmNo YXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFt ZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyLlxcKlxcKmNoYXJfcHRy LlxcKlxcKlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyLlxc KlxcKmNoYXJfcHRyLlxcKlxcKlxcKmNoYXJfcHRyLlxcKlxcKlxcKlxcKmNoYXJfcHRyXCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9u ZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0clwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxc e25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0clwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9 XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0ci5cXCpcXCpjaGFyX3B0clwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJc fSxce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0ci5cXCpcXCpj aGFyX3B0ci5cXCpcXCpcXCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5j aGFyX3B0ci5cXCpjaGFyX3B0ci5cXCpcXCpjaGFyX3B0ci5cXCpcXCpcXCpjaGFyX3B0ci5cXCpc XCpcXCpcXCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBwc25wLT5uZXh0 LT5jaGFyX3B0ciAoYW5kIDEuY2hhcl9wdHIpIGNoYW5nZWQiCi0gCi0gCi1AQCAtMTE0Miw3ICsx MTQyLDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSAiLioke3NyY2ZpbGV9IiBc Ci0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNDkKLSAjIERlc2M6IGNoZWNrIHRoYXQgcHNucC0+bmV4 dC0+bmV4dC0+Y2hhcl9wdHIgKGFuZCBbMl0uY2hhcl9wdHIpIGNoYW5nZWQKLSBtaV9nZGJfdGVz dCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJw c25wLT5wdHJzLjAubmV4dC5uZXh0LmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25h bWU9XCJwc25wLT5wdHJzLjAubmV4dC5uZXh0LmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIs dHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRl IGFsbCB2YXJzIHBzbnAtPm5leHQtPm5leHQtPmNoYXJfcHRyIChhbmQgMi5jaGFyX3B0cikgY2hh bmdlZCIKLSAKLSAKLUBAIC0xMTUzLDcgKzExNTMsNyBAQCBtaV9zdGVwX3RvIGRvX2NoaWxkcmVu X3Rlc3RzIHt9ICIuKiR7c3JjZmlsZX0iIFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNS41MAotICMg RGVzYzogY2hlY2sgdGhhdCBwc25wLT5sb25nX3B0ciAoYW5kIFswXS5sb25nX3B0cikgY2hhbmdl ZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9 XFxcW1x7bmFtZT1cInBzbnAtPnB0cnMuMC5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0clwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0 ci5cXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0ci5cXCpwc25wLT5sb25nX3B0ci5cXCpcXCpw c25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJc fSxce25hbWU9XCJwc25wLT5sb25nX3B0ci5cXCpwc25wLT5sb25nX3B0ci5cXCpcXCpwc25wLT5s b25nX3B0ci5cXCpcXCpcXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0ci5cXCpwc25wLT5sb25n X3B0ci5cXCpcXCpwc25wLT5sb25nX3B0ci5cXCpcXCpcXCpwc25wLT5sb25nX3B0ci5cXCpcXCpc XCpcXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwicHNucC0+ cHRycy4wLmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc IixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInBzbnAtPmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInBz bnAtPmxvbmdfcHRyLlxcKnBzbnAtPmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInBzbnAtPmxvbmdfcHRy LlxcKnBzbnAtPmxvbmdfcHRyLlxcKlxcKnBzbnAtPmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0cnVl XCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInBzbnAt PmxvbmdfcHRyLlxcKnBzbnAtPmxvbmdfcHRyLlxcKlxcKnBzbnAtPmxvbmdfcHRyLlxcKlxcKlxc KnBzbnAtPmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc IixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInBzbnAtPmxvbmdfcHRyLlxcKnBzbnAtPmxvbmdf cHRyLlxcKlxcKnBzbnAtPmxvbmdfcHRyLlxcKlxcKlxcKnBzbnAtPmxvbmdfcHRyLlxcKlxcKlxc KlxcKnBzbnAtPmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzIHBzbnAtPmxv bmdfcHRyIChhbmQgMC5sb25nX3B0cikgY2hhbmdlZCIKLSAKLSAKLUBAIC0xMTgxLDcgKzExODEs NyBAQCBtaV9zdGVwX3RvIGRvX2NoaWxkcmVuX3Rlc3RzIHt9ICIuKiR7c3JjZmlsZX0iIFwKLSAj IFRlc3Q6IGNfdmFyaWFibGUtNS41MgotICMgRGVzYzogY2hlY2sgdGhhdCBwc25wLT5uZXh0LT5u ZXh0LT5sb25nX3B0ciAoYW5kIFsyXS5sb25nX3B0cikgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICIt dmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInBzbnAt PnB0cnMuMC5uZXh0Lm5leHQubG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1c InBzbnAtPnB0cnMuMC5uZXh0Lm5leHQubG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBl X2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxs IHZhcnMgcHNucC0+bmV4dC0+bmV4dC0+bG9uZ19wdHIgKGFuZCAyLmxvbmdfcHRyKSBjaGFuZ2Vk IgotIAotIG1pX3ByZXBhcmVfaW5saW5lX3Rlc3RzICRzcmNmaWxlCi1kaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNtZC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aS12YXItY21kLmV4cAotaW5kZXggYWQyZTU1Yy4uNmVmYjMzMyAxMDA2NDQKLS0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jbWQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS12YXItY21kLmV4cAotQEAgLTE0Niw3ICsxNDYsNyBAQCBtaV9zdGVwX3RvICJkb19sb2Nh bHNfdGVzdHMiICIiICJ2YXItY21kLmMiICRsaW5lX2RsdF9saW50ZWdlciAic3RlcCBhdCBkb19s b2NhbAotICMgVGVzdDogY192YXJpYWJsZS0yLjIKLSAjIERlc2M6IGNoZWNrIHdoZXRoZXIgb25s eSBsaW50ZWdlciBjaGFuZ2VkIHZhbHVlcwotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBc Ci0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxpbnRlZ2VyXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFu Z2VsaXN0PVxcXFtce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFy czogbGludGVnZXIgY2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAibHBpbnRlZ2VyID0gJmxpbnRl Z2VyOyIKLUBAIC0xNTUsNyArMTU1LDcgQEAgbWlfc3RlcF90byAiZG9fbG9jYWxzX3Rlc3RzIiAi IiAidmFyLWNtZC5jIiBbZXhwciAkbGluZV9kbHRfbGludGVnZXIgKyAxXSAic3RlcAotICMgVGVz dDogY192YXJpYWJsZS0yLjMKLSAjIERlc2M6IGNoZWNrIHdoZXRoZXIgb25seSBscGludGVnZXIg Y2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5n ZWxpc3Q9XFxcW1x7bmFtZT1cImxwaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1l PVwibHBpbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixo YXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBscGludGVnZXIgY2hh bmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAibGNoYXJhY3RlciA9ICdhJzsiCi1AQCAtMTY0LDcgKzE2 NCw3IEBAIG1pX3N0ZXBfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIgInZhci1jbWQuYyIgW2V4cHIg JGxpbmVfZGx0X2xpbnRlZ2VyICsgMl0gInN0ZXAKLSAjIFRlc3Q6IGNfdmFyaWFibGUtMi40Ci0g IyBEZXNjOiBjaGVjayB3aGV0aGVyIG9ubHkgbGNoYXJhY3RlciBjaGFuZ2VkCi0gbWlfZ2RiX3Rl c3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwi bGNoYXJhY3RlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxc XF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibGNoYXJhY3RlclwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxc XF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFyczogbGNoYXJhY3RlciBjaGFuZ2VkIgotIAotICMgU3Rl cCBvdmVyICJscGNoYXJhY3RlciA9ICZsY2hhcmFjdGVyOyIKLUBAIC0xNzMsNyArMTczLDcgQEAg bWlfc3RlcF90byAiZG9fbG9jYWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiBbZXhwciAkbGluZV9k bHRfbGludGVnZXIgKyAzXSAic3RlcAotICMgVGVzdDogY192YXJpYWJsZS0yLjUKLSAjIERlc2M6 IGNoZWNrIHdoZXRoZXIgb25seSBscGNoYXJhY3RlciBjaGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12 YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibHBjaGFy YWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBc Ci0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxwY2hhcmFjdGVyXCIsaW5fc2Nv cGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIg XAotIAkidXBkYXRlIGFsbCB2YXJzOiBscGNoYXJhY3RlciBjaGFuZ2VkIgotIAotIAotQEAgLTE5 NSw3ICsxOTUsNyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAgOSIgImVuZC1zdGVwcGluZy1y YW5nZSIgImRvX2xvY2Fsc190ZXN0cyIgIiIgXAotICMgRGVzYzogY2hlY2sgd2hldGhlciBsbG9u ZywgbHBsb25nLCBsZmxvYXQsIGxwZmxvYXQsIGxkb3VibGUsIGxwZG91YmxlLCBsc2ltcGxlLmlu dGVnZXIsCi0gIyAgICAgICBsc2ltcGxlLnVuc2lnbmVkX2NoYXJhY3RlciBsc2ltcGxlLmludGVn ZXIgbHNpbXBsZS5jaGFyYWN0ZXIgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAq IiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxzaW1wbGUuaW50ZWdlclwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsc2lt cGxlLT5pbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9 LFx7bmFtZT1cImxzaW1wbGUuY2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFu Z2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxwZG91YmxlXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxkb3VibGVcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibHBmbG9hdFwiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsZmxvYXRcIixpbl9zY29w ZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibHBsb25nXCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxsb25nXCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxe ZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJsc2ltcGxlLmludGVnZXJcIixpbl9zY29wZT1c InRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwi bHNpbXBsZS0+aW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJsc2ltcGxlLmNoYXJhY3RlclwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9 XCJscGRvdWJsZVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFz X21vcmU9XCIwXCJcfSxce25hbWU9XCJsZG91YmxlXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxwZmxvYXRcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtu YW1lPVwibGZsb2F0XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixo YXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxwbG9uZ1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJsbG9uZ1wiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0i IFwKLSAJInVwZGF0ZSBhbGwgdmFyczogbWFueSBjaGFuZ2VkIgotIAotICMgU3RlcCBvdmVyOgot QEAgLTIxMiw3ICsyMTIsNyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAgNCIgImVuZC1zdGVw cGluZy1yYW5nZSIgImRvX2xvY2Fsc190ZXN0cyIgIiIgXAotICMgVGVzdDogY192YXJpYWJsZS0y LjcKLSAjIERlc2M6IGNoZWNrIHdoZXRoZXIgKGxzaW1wbGUuc2lnbmVkX2NoYXJhY3RlciwgbHNp bXBsZS5jaGFyX3B0cikgbHBzaW1wbGUsIGZ1bmMgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFy LXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImZ1bmNcIixp bl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibHBzaW1w bGVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0r CSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImZ1bmNcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibHBzaW1w bGVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwi MFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnM6IGZ1bmMgYW5kIGxwc2ltcGxlIGNoYW5n ZWQiCi0gCi0gIyBTdGVwIG92ZXIKLUBAIC0yMzQsNyArMjM0LDcgQEAgbWlfZXhlY3V0ZV90byAi ZXhlYy1zdGVwIDgiICJlbmQtc3RlcHBpbmctcmFuZ2UiICJkb19sb2NhbHNfdGVzdHMiICIiIFwK LSAjIE5vdGU6IHRoaXMgdGVzdCBhbHNvIGNoZWNrcyB0aGF0IGxwc2ltcGxlLT5pbnRlZ2VyIGFu ZCBsc2ltcGxlLmludGVnZXIgaGF2ZQotICMgICAgICAgY2hhbmdlZCAodGhleSBhcmUgdGhlIHNh bWUpCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlz dD1cXFxbXHtuYW1lPVwibHNpbXBsZS5pbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxzaW1wbGUtPmludGVnZXJcIixpbl9zY29wZT1c InRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibHNpbXBsZS5jaGFyYWN0 ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwi bGRvdWJsZVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25h bWU9XCJsZmxvYXRcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0s XHtuYW1lPVwibGxvbmdcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH0sXHtuYW1lPVwibHBjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9 XCJmYWxzZVwiXH0sXHtuYW1lPVwibGNoYXJhY3RlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1c XFxbXHtuYW1lPVwibHNpbXBsZS5pbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFu Z2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxzaW1wbGUtPmludGVnZXJc Iixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwi XH0sXHtuYW1lPVwibHNpbXBsZS5jaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGRvdWJsZVwiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25h bWU9XCJsZmxvYXRcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhh c19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGxvbmdcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibHBjaGFyYWN0ZXJcIixp bl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0s XHtuYW1lPVwibGNoYXJhY3RlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVw ZGF0ZSBhbGwgdmFyczogbHNpbXBsZSBhbmQgb3RoZXJzIGNoYW5nZWQiCi0gCi0gCi1AQCAtMjU3 LDcgKzI1Nyw3IEBAIG1pX2dkYl90ZXN0ICItdmFyLWFzc2lnbiBsaW50ZWdlciAzMzMzIiBcCi0g IyBjaGFuZ2UuCi0gc2V0IGxwY2hhcl91cGRhdGUgIlx7bmFtZT1cImxwY2hhcmFjdGVyXCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LCIKLSBtaV9nZGJfdGVzdCAi LXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFsoJGxwY2hhcl91cGRh dGUpP1x7bmFtZT1cImxpbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFsoJGxwY2hhcl91cGRh dGUpP1x7bmFtZT1cImxpbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBsaW50 ZWdlciBjaGFuZ2VkIGFmdGVyIGFzc2lnbiIKLSAKLSBtaV9nZGJfdGVzdCAiLXZhci1hc3NpZ24g bGludGVnZXIgMzMzMyIgXAotQEAgLTI3Nyw3ICsyNzcsNyBAQCBtaV9nZGJfdGVzdCAiLXZhci1h c3NpZ24gbHBpbnRlZ2VyIFwiJmxpbnRlZ2VyICsgM1wiIiBcCi0gCSJhc3NpZ24gdG8gbHBpbnRl Z2VyIgotIAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5n ZWxpc3Q9XFxcW1x7bmFtZT1cImxwaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1l PVwibHBpbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixo YXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBscGludGVnZXIgY2hh bmdlZCBhZnRlciBhc3NpZ24iCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLUBA IC0zNzcsNyArMzc3LDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLSAJImFzc2ln biBzYW1lIHZhbHVlIHRvIGZ1bmMgKHVwZGF0ZSkiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItY3Jl YXRlIGFycmF5X3B0ciAqIGFycmF5X3B0ciIgXAotLQkiXFxeZG9uZSxuYW1lPVwiYXJyYXlfcHRy XCIsbnVtY2hpbGQ9XCIxXCIsdmFsdWU9XCIkaGV4XCIsdHlwZT1cImludCBcXCpcIiIgXAotKwki XFxeZG9uZSxuYW1lPVwiYXJyYXlfcHRyXCIsbnVtY2hpbGQ9XCIxXCIsdmFsdWU9XCIkaGV4XCIs dHlwZT1cImludCBcXCpcIixoYXNfbW9yZT1cIjBcIiIgXAotIAkiY3JlYXRlIGdsb2JhbCB2YXJp YWJsZSBhcnJheV9wdHIiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItYXNzaWduIGFycmF5X3B0ciBh cnJheTIiIFwKLUBAIC0zODUsNyArMzg1LDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItYXNzaWduIGFy cmF5X3B0ciBhcnJheTIiIFwKLSAJImFzc2lnbiBhcnJheSB0byBwb2ludGVyIgotIAotIG1pX2dk Yl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFt ZT1cImFycmF5X3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJc fVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwiYXJyYXlfcHRyXCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9 XFxcXSIgXAotIAkiYXNzaWduIGFycmF5IHRvIHBvaW50ZXIgKHVwZGF0ZSkiCi0gCi0gbWlfZ2Ri X3Rlc3QgIi12YXItYXNzaWduIGFycmF5X3B0ciBhcnJheTIiIFwKLUBAIC00MzksNyArNDM5LDcg QEAgbWlfc3RlcF90byAic3Vicm91dGluZTEiICJce25hbWU9XCJpXCIsdmFsdWU9XCIuKlwiXH0s XHtuYW1lPVwibFwiLHZhbHVlPVwiLipcIlwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtMi4xMwotICMg RGVzYzogY2hhbmdlIHN1YnJvdXRpbmUxIGxvY2FsIGkKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRh dGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJpXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFu Z2VsaXN0PVxcXFtce25hbWU9XCJpXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBpIGNo YW5nZWQiCi0gCi0gbWlfc3RlcF90byAic3Vicm91dGluZTEiICJce25hbWU9XCJpXCIsdmFsdWU9 XCIuKlwiXH0sXHtuYW1lPVwibFwiLHZhbHVlPVwiLipcIlx9IiBcCi1AQCAtNDQ4LDcgKzQ0OCw3 IEBAIG1pX3N0ZXBfdG8gInN1YnJvdXRpbmUxIiAiXHtuYW1lPVwiaVwiLHZhbHVlPVwiLipcIlx9 LFx7bmFtZT1cImxcIix2YWx1ZT1cIi4qXCJcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTIuMTQKLSAj IERlc2M6IGNoYW5nZSBkb19sb2NhbHNfdGVzdHMgbG9jYWwgbGxvbmcKLSBtaV9nZGJfdGVzdCAi LXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJsbG9u Z1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJ IlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibGxvbmdcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRh dGUgYWxsIHZhcnM6IGxsb25nIGNoYW5nZWQiCi0gCi0gc2V0IGxpbmVfZGx0X2NhbGxfc3Vicm91 dGluZTEgW2dkYl9nZXRfbGluZV9udW1iZXIgInN1YnJvdXRpbmUxIChsaW50ZWdlciwgJmxsb25n KTsiXQotQEAgLTQ1OCw3ICs0NTgsNyBAQCBtaV9uZXh0X3RvICJkb19sb2NhbHNfdGVzdHMiICIi CSJ2YXItY21kLmMiIFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtMi4xNQotICMgRGVzYzogY2hlY2sg Zm9yIG91dCBvZiBzY29wZSBzdWJyb3V0aW5lMSBsb2NhbHMKLSBtaV9nZGJfdGVzdCAiLXZhci11 cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJsXCIsaW5fc2Nv cGU9XCJmYWxzZVwiXCx0eXBlX2NoYW5nZWQ9XCJmYWxzZVwifSxce25hbWU9XCJpXCIsaW5fc2Nv cGU9XCJmYWxzZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUs Y2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibFwiLGluX3Njb3BlPVwiZmFsc2VcIlwsdHlwZV9jaGFu Z2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIn0sXHtuYW1lPVwiaVwiLGluX3Njb3BlPVwiZmFs c2VcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1 cGRhdGUgYWxsIHZhcnM6IGFsbCBub3cgb3V0IG9mIHNjb3BlIgotIAotICMgRG9uZSB3aXRoIGxv Y2Fscy9nbG9iYWxzIHRlc3RzLiBFcmFzZSBhbGwgdmFyaWFibGVzCi1AQCAtNTUwLDE0ICs1NTAs MTQgQEAgbWlfZ2RiX3Rlc3QgIi12YXItY3JlYXRlIHNlbGVjdGVkX2EgQCBhIiBcCi0gbWlfY29u dGludWVfdG8gaW5jcl9hCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIHNlbGVjdGVkX2Ei IFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic2VsZWN0ZWRfYVwiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cInRydWVcIixuZXdfdHlwZT1cImNoYXJcIixuZXdf bnVtX2NoaWxkcmVuPVwiMFwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7 bmFtZT1cInNlbGVjdGVkX2FcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJ0cnVl XCIsbmV3X3R5cGU9XCJjaGFyXCIsbmV3X251bV9jaGlsZHJlbj1cIjBcIixoYXNfbW9yZT1cIjBc Ilx9XFxcXSIgXAotIAkidXBkYXRlIHNlbGVjdGVkX2EgaW4gaW5jcl9hIgotIAotIG1pX25leHQg InN0ZXAgYSBsaW5lIGluIGluY3JfYSIKLSBtaV9uZXh0ICJyZXR1cm4gZnJvbSBpbmNyX2EgdG8g ZG9fc3BlY2lhbF90ZXN0cyIKLSAKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgc2VsZWN0ZWRf YSIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzZWxlY3RlZF9hXCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwidHJ1ZVwiLG5ld190eXBlPVwiaW50XCIsbmV3 X251bV9jaGlsZHJlbj1cIjBcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtc e25hbWU9XCJzZWxlY3RlZF9hXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwidHJ1 ZVwiLG5ld190eXBlPVwiaW50XCIsbmV3X251bV9jaGlsZHJlbj1cIjBcIixoYXNfbW9yZT1cIjBc Ilx9XFxcXSIgXAotIAkidXBkYXRlIHNlbGVjdGVkX2EgaW4gZG9fc3BlY2lhbF90ZXN0cyIKLSAK LSBtaV9nZGJfdGVzdCAiLWZpbGUtZXhlYy1hbmQtc3ltYm9scyAke2JpbmZpbGV9IiAiXFxeZG9u ZSIgXAotQEAgLTU5Niw3ICs1OTYsNyBAQCBtaV9jaGVja192YXJvYmpfdmFsdWUgRiA3ICJjaGVj ayBGIGluc2lkZSBjYWxsZWUiCi0gIyBBIHZhcm9iaiB3ZSBmYWlsIHRvIHJlYWQgZHVyaW5nIC12 YXItdXBkYXRlIHNob3VsZCBiZSBjb25zaWRlcmVkCi0gIyBvdXQgb2Ygc2NvcGUuCi0gbWlfZ2Ri X3Rlc3QgIi12YXItY3JlYXRlIG51bGxfcHRyICogKiowIiBcCi0tICAgIHtcXmRvbmUsbmFtZT0i bnVsbF9wdHIiLG51bWNoaWxkPSIwIix2YWx1ZT0iLioiLHR5cGU9ImludCJ9IFwKLSsgICAge1xe ZG9uZSxuYW1lPSJudWxsX3B0ciIsbnVtY2hpbGQ9IjAiLHZhbHVlPSIuKiIsdHlwZT0iaW50Iixo YXNfbW9yZT0iMCJ9IFwKLSAgICAgImNyZWF0ZSBudWxsX3B0ciIKLSAKLSAjIEFsbG93IHRoaXMg dG8gc3VjY2VlZCwgaWYgYWRkcmVzcyB6ZXJvIGlzIHJlYWRhYmxlLCBhbHRob3VnaCBpdAotQEAg LTY0NCw3ICs2NDQsNyBAQCBtaV9jaGVja192YXJvYmpfdmFsdWUgIkwiICJ7Li4ufSIgImluLWFu ZC1vdXQtb2Ytc2NvcGU6IGNoZWNrIGluaXRpYWwgdmFsdWUiCi0gbWlfcnVudG8gbWFpbgotIAot IG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSBMIiBcCi0tICAgIHtcXmRvbmUsY2hhbmdlbGlzdD1c W3tuYW1lPSJMIixpbl9zY29wZT0iZmFsc2UiLHR5cGVfY2hhbmdlZD0iZmFsc2UifVxdfSBcCi0r ICAgIHtcXmRvbmUsY2hhbmdlbGlzdD1cW3tuYW1lPSJMIixpbl9zY29wZT0iZmFsc2UiLHR5cGVf Y2hhbmdlZD0iZmFsc2UiLGhhc19tb3JlPSIwIn1cXX0gXAotICAgICAiaW4tYW5kLW91dC1vZi1z Y29wZTogb3V0IG9mIHNjb3BlIG5vdyIKLSAKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgTCIg XAotQEAgLTY1NCw3ICs2NTQsNyBAQCBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgTCIgXAotIG1p X2NvbnRpbnVlX3RvIGRvX2xvY2Fsc190ZXN0cwotIAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0 ZSBMIiBcCi0tICAgIHtcXmRvbmUsY2hhbmdlbGlzdD1cW3tuYW1lPSJMIixpbl9zY29wZT0idHJ1 ZSIsdHlwZV9jaGFuZ2VkPSJmYWxzZSJ9XF19IFwKLSsgICAge1xeZG9uZSxjaGFuZ2VsaXN0PVxb e25hbWU9IkwiLGluX3Njb3BlPSJ0cnVlIix0eXBlX2NoYW5nZWQ9ImZhbHNlIixoYXNfbW9yZT0i MCJ9XF19IFwKLSAgICAgImluLWFuZC1vdXQtb2Ytc2NvcGU6IGluIHNjb3BlIG5vdyIKLSAKLSBt aV9nZGJfdGVzdCAiLXZhci11cGRhdGUgTCIgXAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLm1pL21pLXZhci1kaXNwbGF5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1k aXNwbGF5LmV4cAotaW5kZXggNGIwMmU1MC4uZmFhOTE3MiAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pLXZhci1kaXNwbGF5LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktdmFyLWRpc3BsYXkuZXhwCi1AQCAtNTU4LDcgKzU1OCw3IEBAIG1pX2dkYl90ZXN0ICIt dmFyLWluZm8tbnVtLWNoaWxkcmVuIGUiIFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNy41NQotICMg RGVzYzogY2hpbGRyZW4gb2YgZQotIG1pX2dkYl90ZXN0ICItdmFyLWxpc3QtY2hpbGRyZW4gZSIg XAotLQkiXFxeZG9uZSxudW1jaGlsZD1cIjBcIiIgXAotKwkiXFxeZG9uZSxudW1jaGlsZD1cIjBc IixoYXNfbW9yZT1cIjBcIiIgXAotIAkiZ2V0IGNoaWxkcmVuIG9mIGUiCi0gCi0gIyBUZXN0OiBj X3ZhcmlhYmxlLTcuNjAKLUBAIC02MDAsNyArNjAwLDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItaW5m by1udW0tY2hpbGRyZW4gYW5vbmUiIFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNy43NQotICMgRGVz YzogY2hpbGRyZW4gb2YgYW5vbmUKLSBtaV9nZGJfdGVzdCAiLXZhci1saXN0LWNoaWxkcmVuIGFu b25lIiBcCi0tCSJcXF5kb25lLG51bWNoaWxkPVwiMFwiIiBcCi0rCSJcXF5kb25lLG51bWNoaWxk PVwiMFwiLGhhc19tb3JlPVwiMFwiIiBcCi0gCSJnZXQgY2hpbGRyZW4gb2YgYW5vbmUiCi0gCi0g Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWludmFsaWRhdGUuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWludmFsaWRhdGUuZXhwCi1pbmRleCAwNWQ0 NmZhLi40Yjk1Njc0IDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWlu dmFsaWRhdGUuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItaW52YWxpZGF0 ZS5leHAKLUBAIC03Miw3ICs3Miw3IEBAIG1pX3J1bnRvIG1haW4KLSAKLSAjIENoZWNrIGxvY2Fs IHZhcmlhYmxlIGlzICJpbnZhbGlkIi4KLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgbGludGVn ZXIiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibGludGVnZXJcIixpbl9z Y29wZT1cImludmFsaWRcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25h bWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwiaW52YWxpZFwiLGhhc19tb3JlPVwiMFwiXH1cXFxd IiBcCi0gCSJsaW50ZWdlciBub3QgYW55bW9yZSBpbiBzY29wZSBkdWUgdG8gYmluYXJ5IGNoYW5n ZXMiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItaW5mby10eXBlIGxpbnRlZ2VyIiBcCi1AQCAtOTcs NyArOTcsNyBAQCBtaV9kZWxldGVfYnJlYWtwb2ludHMKLSBtaV9nZGJfbG9hZCAke2JpbmZpbGUy fQotICMgQ2hlY2sgbG9jYWwgdmFyaWFibGUgYXJlICJpbnZhbGlkIgotIG1pX2dkYl90ZXN0ICIt dmFyLXVwZGF0ZSBsaW50ZWdlciIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9 XCJsaW50ZWdlclwiLGluX3Njb3BlPVwiaW52YWxpZFwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNo YW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxpbnRlZ2VyXCIsaW5fc2NvcGU9XCJpbnZhbGlkXCIsaGFz X21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJImxpbnRlZ2VyIG5vdCB2YWxpZCBhbnltb3JlIGR1ZSB0 byBiaW5hcnkgY2hhbmdlcyIKLSAKLSBtaV9nZGJfdGVzdCAiLXZhci1pbmZvLXR5cGUgbGludGVn ZXIiIFwKLUBAIC0xMDYsNyArMTA2LDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItaW5mby10eXBlIGxp bnRlZ2VyIiBcCi0gCi0gIyBDaGVjayBnbG9iYWwgdmFyaWFibGUgYXJlIHN0aWxsIGNvcnJlY3Qu Ci0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIGdsb2JhbF9zaW1wbGUiIFwKLS0JIlxcXmRvbmUs Y2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwiZ2xvYmFsX3NpbXBsZVwiLGluX3Njb3BlPVwiaW52YWxp ZFwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImdsb2JhbF9z aW1wbGVcIixpbl9zY29wZT1cImludmFsaWRcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAki Z2xvYmFsX3NpbXBsZSBub3QgYW55bW9yZSBpbiBzY29wZSBkdWUgdG8gYmluYXJ5IGNoYW5nZXMi Ci0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItaW5mby10eXBlIGdsb2JhbF9zaW1wbGUiIFwKLWRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLWJsb2NrLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pMi12YXItYmxvY2suZXhwCi1pbmRleCA2YmNmZWEzLi45YjNkMDhmIDEw MDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1ibG9jay5leHAKLSsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItYmxvY2suZXhwCi1AQCAtNzQsNyArNzQsNyBA QCBtaV9zdGVwX3RvICJkb19ibG9ja190ZXN0cyIgIiIgInZhci1jbWQuYyIgXAotICMgVGVzdDog Y192YXJpYWJsZS0zLjQKLSAjIERlc2M6IGNoZWNrIGZvbywgY2IgY2hhbmdlZAotIG1pX2dkYl90 ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1c ImZvb1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9 XCJjYlwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwK LSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwiZm9vXCIsaW5fc2NvcGU9XCJ0cnVl XCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImNiXCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9 XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBjYiBmb28gY2hhbmdlZCIKLSAKLSAjIHN0ZXAg dG8gImZvbyA9IDMyMTsiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZh ci1jaGlsZC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLWNoaWxkLmV4cAotaW5k ZXggMTYxYjM0Zi4uMGY5YjRkNCAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21p Mi12YXItY2hpbGQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLWNoaWxk LmV4cAotQEAgLTEsNCArMSw0IEBACi0tIyBDb3B5cmlnaHQgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwgMjAwMywgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIENvcHlyaWdodCAxOTk5 LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotIAotICMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci1AQCAtNjgwLDcgKzY4MCw3 IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30gey4qdmFyLWNtZC5jfSBcCi0gIyBU ZXN0OiBjX3ZhcmlhYmxlLTUuMgotICMgRGVzYzogY2hlY2sgdGhhdCBpbnRlZ2VyIGNoYW5nZWQK LSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxc XFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmludGVnZXJcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9 XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVw ZGF0ZSBhbGwgdmFycyBzdHJ1Y3RfZGVjbGFyYXRpb25zLmludGVnZXIiCi0gCi0gIyBTdGVwIG92 ZXI6Ci1AQCAtNjkzLDcgKzY5Myw3IEBAIG1pX2V4ZWN1dGVfdG8gImV4ZWMtc3RlcCAzIiAiZW5k LXN0ZXBwaW5nLXJhbmdlIiBkb19jaGlsZHJlbl90ZXN0cyB7fSB7Lip2YXItY21kCi0gIyBUZXN0 OiBjX3ZhcmlhYmxlLTUuMwotICMgRGVzYzogY2hlY2sgdGhhdCBjaGFyX3B0ciBjaGFuZ2VkCi0g bWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxb XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmNo YXJfcHRyLlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1Y3Rf ZGVjbGFyYXRpb25zLmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuY2hh cl9wdHIuXFwqY2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0X2Rl Y2xhcmF0aW9ucy5jaGFyX3B0ciIKLSAKLSAjIFN0ZXAgb3ZlciAic3RydWN0X2RlY2xhcmF0aW9u cy5pbnRfcHRyX3B0ciA9ICZmb287IgotQEAgLTcwMyw3ICs3MDMsNyBAQCBtaV9zdGVwX3RvIGRv X2NoaWxkcmVuX3Rlc3RzIHt9IHsuKnZhci1jbWQuY30gXAotICMgVGVzdDogY192YXJpYWJsZS01 LjQKLSAjIERlc2M6IGNoZWNrIHRoYXQgaW50X3B0cl9wdHIgYW5kIGNoaWxkcmVuIGNoYW5nZWQK LSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxc XFtce25hbWU9XCJ3ZWlyZC0+aW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwid2VpcmQtPmludF9wdHJfcHRyLlxcKndlaXJkLT5p bnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxc e25hbWU9XCJ3ZWlyZC0+aW50X3B0cl9wdHIuXFwqd2VpcmQtPmludF9wdHJfcHRyLlxcKlxcKndl aXJkLT5pbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmludF9wdHJfcHRyXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJh dGlvbnMuaW50X3B0cl9wdHIuXFwqaW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBl X2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5pbnRfcHRy X3B0ci5cXCppbnRfcHRyX3B0ci5cXCpcXCppbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1c XFxbXHtuYW1lPVwid2VpcmQtPmludF9wdHJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cIndlaXJkLT5pbnRfcHRy X3B0ci5cXCp3ZWlyZC0+aW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwid2VpcmQtPmludF9wdHJfcHRy LlxcKndlaXJkLT5pbnRfcHRyX3B0ci5cXCpcXCp3ZWlyZC0+aW50X3B0cl9wdHJcIixpbl9zY29w ZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1l PVwic3RydWN0X2RlY2xhcmF0aW9ucy5pbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVj bGFyYXRpb25zLmludF9wdHJfcHRyLlxcKmludF9wdHJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIs dHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInN0cnVjdF9k ZWNsYXJhdGlvbnMuaW50X3B0cl9wdHIuXFwqaW50X3B0cl9wdHIuXFwqXFwqaW50X3B0cl9wdHJc Iixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwi XH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgaW50X3B0cl9wdHIgYW5kIGNoaWxkcmVuIGNo YW5nZWQiCi0gCi0gIyBTdGVwIG92ZXIgIndlaXJkLT5sb25nX2FycmF5WzBdID0gMTIzNDsiCi1A QCAtNzEzLDcgKzcxMyw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30gey4qdmFy LWNtZC5jfSBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNQotICMgRGVzYzogY2hlY2sgdGhhdCBs b25nX2FycmF5WzBdIGNoYW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQki XFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdf YXJyYXkuMFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0i IFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9u cy5sb25nX2FycmF5LjBcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi LGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xh cmF0aW9ucy5sb25nX2FycmF5LjAgY2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAic3RydWN0X2Rl Y2xhcmF0aW9ucy5sb25nX2FycmF5WzFdID0gMjM0NTsiCi1AQCAtNzIzLDcgKzcyMyw3IEBAIG1p X3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30gey4qdmFyLWNtZC5jfSBcCi0gIyBUZXN0OiBj X3ZhcmlhYmxlLTUuNgotICMgRGVzYzogY2hlY2sgdGhhdCBsb25nX2FycmF5WzFdIGNoYW5nZWQK LSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxc XFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuMVwiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdl bGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjFcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxd IiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjEg Y2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAid2VpcmQtPmxvbmdfYXJyYXlbMl0gPSAzNDU2OyIK LUBAIC03MzMsNyArNzMzLDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSB7Lip2 YXItY21kLmN9IFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNS43Ci0gIyBEZXNjOiBjaGVjayB0aGF0 IGxvbmdfYXJyYXlbMl0gY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0t CSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9u Z19hcnJheS4yXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxc XSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRp b25zLmxvbmdfYXJyYXkuMlwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBzdHJ1Y3RfZGVj bGFyYXRpb25zLmxvbmdfYXJyYXkuMiBjaGFuZ2VkIgotIAotICMgU3RlcCBvdmVyOgotQEAgLTc1 Miw3ICs3NTIsNyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAgNyIgImVuZC1zdGVwcGluZy1y YW5nZSIgZG9fY2hpbGRyZW5fdGVzdHMge30gey4qdmFyLWNtZAotICMgVGVzdDogY192YXJpYWJs ZS01LjgKLSAjIERlc2M6IGNoZWNrIHRoYXQgbG9uZ19hcnJheVszLTldIGNoYW5nZWQKLSBtaV9n ZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25h bWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuM1wiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxv bmdfYXJyYXkuNFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxc e25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuNVwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25z LmxvbmdfYXJyYXkuNlwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJc fSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuN1wiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRp b25zLmxvbmdfYXJyYXkuOFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuOVwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hh bmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjNcIixp bl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0s XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjRcIixpbl9zY29wZT1cInRy dWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwic3Ry dWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0 aW9ucy5sb25nX2FycmF5LjZcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2Fy cmF5LjdcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3Jl PVwiMFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjhcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtu YW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjlcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRh dGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjMtOSBjaGFuZ2VkIgot IAotIAotQEAgLTc2NCw3ICs3NjQsNyBAQCBtaV9zdGVwX3RvIGRvX2NoaWxkcmVuX3Rlc3RzIHt9 IHsuKnZhci1jbWQuY30gXAotICMgVGVzdDogY192YXJpYWJsZS01LjkKLSAjIERlc2M6IGNoZWNr IHRoYXQgZnVuY19wdHIgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0t CSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuZnVu Y19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBc Ci0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMu ZnVuY19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19t b3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9u cy5mdW5jX3B0ciBjaGFuZ2VkIgotIAotICMgRGVsZXRlIGFsbCB2YXJpYWJsZXMKLUBAIC0xMDc1 LDcgKzEwNzUsNyBAQCBtaV9zdGVwX3RvIGRvX2NoaWxkcmVuX3Rlc3RzIHt9IHsuKnZhci1jbWQu Y30gXAotICMgVGVzdDogY192YXJpYWJsZS01LjQ3Ci0gIyBEZXNjOiBjaGVjayB0aGF0IHBzbnAt PmNoYXJfcHRyIChhbmQgWzBdLmNoYXJfcHRyKSBjaGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12YXIt dXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwicHNucC0+cHRy cy4wLmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9 LFx7bmFtZT1cInBzbnAtPmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPmNoYXJfcHRyLlxcKnBzbnAtPmNoYXJfcHRyXCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAt PmNoYXJfcHRyLlxcKnBzbnAtPmNoYXJfcHRyLlxcKlxcKnBzbnAtPmNoYXJfcHRyXCIsaW5fc2Nv cGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPmNoYXJf cHRyLlxcKnBzbnAtPmNoYXJfcHRyLlxcKlxcKnBzbnAtPmNoYXJfcHRyLlxcKlxcKlxcKnBzbnAt PmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7 bmFtZT1cInBzbnAtPmNoYXJfcHRyLlxcKnBzbnAtPmNoYXJfcHRyLlxcKlxcKnBzbnAtPmNoYXJf cHRyLlxcKlxcKlxcKnBzbnAtPmNoYXJfcHRyLlxcKlxcKlxcKlxcKnBzbnAtPmNoYXJfcHRyXCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxe ZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJwc25wLT5wdHJzLjAuY2hhcl9wdHJcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtu YW1lPVwicHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJm YWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+ Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19t b3JlPVwiMFwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9wdHIuXFwq XFwqcHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hh cl9wdHIuXFwqXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqXFwqcHNucC0+Y2hhcl9wdHJcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtu YW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqcHNucC0+Y2hhcl9w dHIuXFwqXFwqXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqXFwqXFwqcHNucC0+Y2hhcl9wdHJcIixp bl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1c XFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgcHNucC0+Y2hhcl9wdHIgKGFuZCAwLmNoYXJfcHRy KSBjaGFuZ2VkIgotIAotICMgIFN0ZXAgb3ZlciAic25wMS5jaGFyX3B0ciA9ICZjMzsiCi1AQCAt MTA4NSw3ICsxMDg1LDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSB7Lip2YXIt Y21kLmN9IFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNS40OAotICMgRGVzYzogY2hlY2sgdGhhdCBw c25wLT5uZXh0LT5jaGFyX3B0ciAoYW5kIFsxXS5jaGFyX3B0cikgY2hhbmdlZAotIG1pX2dkYl90 ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1c InBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFu Z2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNo YXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFt ZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyLlxcKlxcKmNoYXJfcHRy XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInBz bnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyLlxcKlxcKmNoYXJfcHRyLlxcKlxc KlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9 LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyLlxcKlxcKmNo YXJfcHRyLlxcKlxcKlxcKmNoYXJfcHRyLlxcKlxcKlxcKlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFu Z2VsaXN0PVxcXFtce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0clwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9 XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25w LT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0ci5cXCpcXCpjaGFyX3B0clwiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25h bWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0ci5cXCpcXCpjaGFyX3B0 ci5cXCpcXCpcXCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0 ci5cXCpjaGFyX3B0ci5cXCpcXCpjaGFyX3B0ci5cXCpcXCpcXCpjaGFyX3B0ci5cXCpcXCpcXCpc XCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFz X21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBwc25wLT5uZXh0LT5jaGFy X3B0ciAoYW5kIDEuY2hhcl9wdHIpIGNoYW5nZWQiCi0gCi0gCi1AQCAtMTA5Niw3ICsxMDk2LDcg QEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSB7Lip2YXItY21kLmN9IFwKLSAjIFRl c3Q6IGNfdmFyaWFibGUtNS40OQotICMgRGVzYzogY2hlY2sgdGhhdCBwc25wLT5uZXh0LT5uZXh0 LT5jaGFyX3B0ciAoYW5kIFsyXS5jaGFyX3B0cikgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFy LXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInBzbnAtPnB0 cnMuMC5uZXh0Lm5leHQuY2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9 XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInBz bnAtPnB0cnMuMC5uZXh0Lm5leHQuY2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZh cnMgcHNucC0+bmV4dC0+bmV4dC0+Y2hhcl9wdHIgKGFuZCAyLmNoYXJfcHRyKSBjaGFuZ2VkIgot IAotIAotQEAgLTExMDcsNyArMTEwNyw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMg e30gey4qdmFyLWNtZC5jfSBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNTAKLSAjIERlc2M6IGNo ZWNrIHRoYXQgcHNucC0+bG9uZ19wdHIgKGFuZCBbMF0ubG9uZ19wdHIpIGNoYW5nZWQKLSBtaV9n ZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25h bWU9XCJwc25wLT5wdHJzLjAubG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+bG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+bG9uZ19wdHIuXFwqcHNu cC0+bG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0s XHtuYW1lPVwicHNucC0+bG9uZ19wdHIuXFwqcHNucC0+bG9uZ19wdHIuXFwqXFwqcHNucC0+bG9u Z19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1l PVwicHNucC0+bG9uZ19wdHIuXFwqcHNucC0+bG9uZ19wdHIuXFwqXFwqcHNucC0+bG9uZ19wdHIu XFwqXFwqXFwqcHNucC0+bG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9 XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+bG9uZ19wdHIuXFwqcHNucC0+bG9uZ19wdHIuXFwq XFwqcHNucC0+bG9uZ19wdHIuXFwqXFwqXFwqcHNucC0+bG9uZ19wdHIuXFwqXFwqXFwqXFwqcHNu cC0+bG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1c XFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInBzbnAtPnB0cnMuMC5s b25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21v cmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5sb25n X3B0ci5cXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0ci5cXCpwc25w LT5sb25nX3B0ci5cXCpcXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0 ci5cXCpwc25wLT5sb25nX3B0ci5cXCpcXCpwc25wLT5sb25nX3B0ci5cXCpcXCpcXCpwc25wLT5s b25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21v cmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0ci5cXCpwc25wLT5sb25nX3B0ci5cXCpc XCpwc25wLT5sb25nX3B0ci5cXCpcXCpcXCpwc25wLT5sb25nX3B0ci5cXCpcXCpcXCpcXCpwc25w LT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFz X21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBwc25wLT5sb25nX3B0ciAo YW5kIDAubG9uZ19wdHIpIGNoYW5nZWQiCi0gCi0gCi1AQCAtMTEyMCw3ICsxMTIwLDcgQEAgbWlf c3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSB7Lip2YXItY21kLmN9IFwKLSAjIFdoeSBkb2Vz IHRoaXMgaGF2ZSBhIEZJWE1FPwotIHNldHVwX3hmYWlsICotKi0qCi0gbWlfZ2RiX3Rlc3QgIi12 YXItdXBkYXRlICoiIFwKLS0JIkZJWE1FXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJw c25wLT5wdHJzLjAubmV4dC5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIkZJWE1FXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25h bWU9XCJwc25wLT5wdHJzLjAubmV4dC5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwg dmFycyBwc25wLT5uZXh0LT5sb25nX3B0ciAoYW5kIDEubG9uZ19wdHIpIGNoYW5nZWQiCi0gY2xl YXJfeGZhaWwgKi0qLSoKLSAKLUBAIC0xMTM1LDcgKzExMzUsNyBAQCBtaV9zdGVwX3RvIGRvX2No aWxkcmVuX3Rlc3RzIHt9IHsuKnZhci1jbWQuY30gXAotICMgVGVzdDogY192YXJpYWJsZS01LjUy Ci0gIyBEZXNjOiBjaGVjayB0aGF0IHBzbnAtPm5leHQtPm5leHQtPmxvbmdfcHRyIChhbmQgWzJd LmxvbmdfcHRyKSBjaGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxc XmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwicHNucC0+cHRycy4wLm5leHQubmV4dC5sb25n X3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwK LSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwicHNucC0+cHRycy4wLm5leHQubmV4 dC5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFz X21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBwc25wLT5uZXh0LT5uZXh0 LT5sb25nX3B0ciAoYW5kIDIubG9uZ19wdHIpIGNoYW5nZWQiCi0gCi0gCi1kaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1jbWQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWkyLXZhci1jbWQuZXhwCi1pbmRleCBkZGE3N2JiLi4wZTkxNjM0IDEwMDY0NAotLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1jbWQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5taS9taTItdmFyLWNtZC5leHAKLUBAIC0xNTEsNyArMTUxLDcgQEAgbWlfc3RlcF90byAi ZG9fbG9jYWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiAkbGluZV9kbHRfbGludGVnZXIgInN0ZXAg YXQgZG9fbG9jYWwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtMi4yCi0gIyBEZXNjOiBjaGVjayB3aGV0 aGVyIG9ubHkgbGludGVnZXIgY2hhbmdlZCB2YWx1ZXMKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRh dGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJsaW50ZWdlclwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRv bmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibGludGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUg YWxsIHZhcnM6IGxpbnRlZ2VyIGNoYW5nZWQiCi0gCi0gIyBTdGVwIG92ZXIgImxwaW50ZWdlciA9 ICZsaW50ZWdlcjsiCi1AQCAtMTYwLDcgKzE2MCw3IEBAIG1pX3N0ZXBfdG8gImRvX2xvY2Fsc190 ZXN0cyIgIiIgInZhci1jbWQuYyIgW2V4cHIgJGxpbmVfZGx0X2xpbnRlZ2VyICsgMV0gInN0ZXAK LSAjIFRlc3Q6IGNfdmFyaWFibGUtMi4zCi0gIyBEZXNjOiBjaGVjayB3aGV0aGVyIG9ubHkgbHBp bnRlZ2VyIGNoYW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9u ZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJscGludGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxc W1x7bmFtZT1cImxwaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFyczogbHBpbnRl Z2VyIGNoYW5nZWQiCi0gCi0gIyBTdGVwIG92ZXIgImxjaGFyYWN0ZXIgPSAnYSc7IgotQEAgLTE2 OSw3ICsxNjksNyBAQCBtaV9zdGVwX3RvICJkb19sb2NhbHNfdGVzdHMiICIiICJ2YXItY21kLmMi IFtleHByICRsaW5lX2RsdF9saW50ZWdlciArIDJdICJzdGVwCi0gIyBUZXN0OiBjX3ZhcmlhYmxl LTIuNAotICMgRGVzYzogY2hlY2sgd2hldGhlciBvbmx5IGxjaGFyYWN0ZXIgY2hhbmdlZAotIG1p X2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7 bmFtZT1cImxjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxjaGFyYWN0 ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwi MFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnM6IGxjaGFyYWN0ZXIgY2hhbmdlZCIKLSAK LSAjIFN0ZXAgb3ZlciAibHBjaGFyYWN0ZXIgPSAmbGNoYXJhY3RlcjsiCi1AQCAtMTc4LDcgKzE3 OCw3IEBAIG1pX3N0ZXBfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIgInZhci1jbWQuYyIgW2V4cHIg JGxpbmVfZGx0X2xpbnRlZ2VyICsgM10gInN0ZXAKLSAjIFRlc3Q6IGNfdmFyaWFibGUtMi41Ci0g IyBEZXNjOiBjaGVjayB3aGV0aGVyIG9ubHkgbHBjaGFyYWN0ZXIgY2hhbmdlZAotIG1pX2dkYl90 ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1c ImxwY2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9 XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJscGNoYXJhY3Rlclwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJc fVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFyczogbHBjaGFyYWN0ZXIgY2hhbmdlZCIKLSAKLSAK LUBAIC0yMDAsNyArMjAwLDcgQEAgbWlfZXhlY3V0ZV90byAiZXhlYy1zdGVwIDkiICJlbmQtc3Rl cHBpbmctcmFuZ2UiICJkb19sb2NhbHNfdGVzdHMiICIiIFwKLSAjIERlc2M6IGNoZWNrIHdoZXRo ZXIgbGxvbmcsIGxwbG9uZywgbGZsb2F0LCBscGZsb2F0LCBsZG91YmxlLCBscGRvdWJsZSwgbHNp bXBsZS5pbnRlZ2VyLAotICMgICAgICAgbHNpbXBsZS51bnNpZ25lZF9jaGFyYWN0ZXIgbHNpbXBs ZS5pbnRlZ2VyIGxzaW1wbGUuY2hhcmFjdGVyIGNoYW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11 cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJsc2ltcGxlLmlu dGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1l PVwibHNpbXBsZS0+aW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCJcfSxce25hbWU9XCJsc2ltcGxlLmNoYXJhY3RlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJscGRvdWJsZVwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsZG91YmxlXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxwZmxvYXRcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibGZsb2F0XCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxwbG9u Z1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJs bG9uZ1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwK LSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibHNpbXBsZS5pbnRlZ2VyXCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7 bmFtZT1cImxzaW1wbGUtPmludGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9 XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibHNpbXBsZS5jaGFyYWN0ZXJcIixp bl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0s XHtuYW1lPVwibHBkb3VibGVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGRvdWJsZVwiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJscGZsb2F0 XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBc Ilx9LFx7bmFtZT1cImxmbG9hdFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJscGxvbmdcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGxvbmdc Iixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwi XH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnM6IG1hbnkgY2hhbmdlZCIKLSAKLSAjIFN0ZXAg b3ZlcjoKLUBAIC0yMTcsNyArMjE3LDcgQEAgbWlfZXhlY3V0ZV90byAiZXhlYy1zdGVwIDQiICJl bmQtc3RlcHBpbmctcmFuZ2UiICJkb19sb2NhbHNfdGVzdHMiICIiIFwKLSAjIFRlc3Q6IGNfdmFy aWFibGUtMi43Ci0gIyBEZXNjOiBjaGVjayB3aGV0aGVyIChsc2ltcGxlLnNpZ25lZF9jaGFyYWN0 ZXIsIGxzaW1wbGUuY2hhcl9wdHIpIGxwc2ltcGxlLCBmdW5jIGNoYW5nZWQKLSBtaV9nZGJfdGVz dCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJm dW5jXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1c Imxwc2ltcGxlXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxc XSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJmdW5jXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1c Imxwc2ltcGxlXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNf bW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBmdW5jIGFuZCBscHNpbXBs ZSBjaGFuZ2VkIgotIAotICMgU3RlcCBvdmVyCi1AQCAtMjM5LDcgKzIzOSw3IEBAIG1pX2V4ZWN1 dGVfdG8gImV4ZWMtc3RlcCA4IiAiZW5kLXN0ZXBwaW5nLXJhbmdlIiAiZG9fbG9jYWxzX3Rlc3Rz IiAiIiBcCi0gIyBOb3RlOiB0aGlzIHRlc3QgYWxzbyBjaGVja3MgdGhhdCBscHNpbXBsZS0+aW50 ZWdlciBhbmQgbHNpbXBsZS5pbnRlZ2VyIGhhdmUKLSAjICAgICAgIGNoYW5nZWQgKHRoZXkgYXJl IHRoZSBzYW1lKQotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNo YW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxzaW1wbGUuaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsc2ltcGxlLT5pbnRlZ2VyXCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxzaW1wbGUu Y2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7 bmFtZT1cImxkb3VibGVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH0sXHtuYW1lPVwibGZsb2F0XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIlx9LFx7bmFtZT1cImxsb25nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIlx9LFx7bmFtZT1cImxwY2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibGludGVnZXJcIixpbl9zY29wZT1c InRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5n ZWxpc3Q9XFxcW1x7bmFtZT1cImxzaW1wbGUuaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJsc2ltcGxlLT5p bnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9y ZT1cIjBcIlx9LFx7bmFtZT1cImxzaW1wbGUuY2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIs dHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxkb3VibGVc Iixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwi XH0sXHtuYW1lPVwibGZsb2F0XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxsb25nXCIsaW5fc2NvcGU9XCJ0cnVlXCIs dHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxwY2hhcmFj dGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1c IjBcIlx9LFx7bmFtZT1cImxjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGludGVnZXJcIixpbl9zY29w ZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBc Ci0gCSJ1cGRhdGUgYWxsIHZhcnM6IGxzaW1wbGUgYW5kIG90aGVycyBjaGFuZ2VkIgotIAotIAot QEAgLTI2Miw3ICsyNjIsNyBAQCBtaV9nZGJfdGVzdCAiLXZhci1hc3NpZ24gbGludGVnZXIgMzMz MyIgXAotICMgY2hhbmdlLgotIHNldCBscGNoYXJfdXBkYXRlICJce25hbWU9XCJscGNoYXJhY3Rl clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSwiCi0gbWlfZ2Ri X3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbKCRscGNo YXJfdXBkYXRlKT9ce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbKCRscGNo YXJfdXBkYXRlKT9ce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFy czogbGludGVnZXIgY2hhbmdlZCBhZnRlciBhc3NpZ24iCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXIt YXNzaWduIGxpbnRlZ2VyIDMzMzMiIFwKLUBAIC0yODIsNyArMjgyLDcgQEAgbWlfZ2RiX3Rlc3Qg Ii12YXItYXNzaWduIGxwaW50ZWdlciBcIiZsaW50ZWdlciArIDNcIiIgXAotIAkiYXNzaWduIHRv IGxwaW50ZWdlciIKLSAKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9u ZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJscGludGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxc W1x7bmFtZT1cImxwaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFyczogbHBpbnRl Z2VyIGNoYW5nZWQgYWZ0ZXIgYXNzaWduIgotIAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAq IiBcCi1AQCAtNDA3LDcgKzQwNyw3IEBAIG1pX3N0ZXBfdG8gInN1YnJvdXRpbmUxIiAiXHtuYW1l PVwiaVwiLHZhbHVlPVwiLipcIlx9LFx7bmFtZT1cImxcIix2YWx1ZT1cIi4qXCJcCi0gIyBUZXN0 OiBjX3ZhcmlhYmxlLTIuMTMKLSAjIERlc2M6IGNoYW5nZSBzdWJyb3V0aW5lMSBsb2NhbCBpCi0g bWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxb XHtuYW1lPVwiaVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxc XF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwiaVwiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJ InVwZGF0ZSBhbGwgdmFyczogaSBjaGFuZ2VkIgotIAotIG1pX3N0ZXBfdG8gInN1YnJvdXRpbmUx IiAiXHtuYW1lPVwiaVwiLHZhbHVlPVwiLipcIlx9LFx7bmFtZT1cImxcIix2YWx1ZT1cIi4qXCJc fSIgXAotQEAgLTQxNiw3ICs0MTYsNyBAQCBtaV9zdGVwX3RvICJzdWJyb3V0aW5lMSIgIlx7bmFt ZT1cImlcIix2YWx1ZT1cIi4qXCJcfSxce25hbWU9XCJsXCIsdmFsdWU9XCIuKlwiXAotICMgVGVz dDogY192YXJpYWJsZS0yLjE0Ci0gIyBEZXNjOiBjaGFuZ2UgZG9fbG9jYWxzX3Rlc3RzIGxvY2Fs IGxsb25nCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdl bGlzdD1cXFxbXHtuYW1lPVwibGxvbmdcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9 XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxs b25nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1c IjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBsbG9uZyBjaGFuZ2VkIgotIAotIHNl dCBsaW5lX2RsdF9jYWxsX3N1YnJvdXRpbmUxIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzdWJyb3V0 aW5lMSAobGludGVnZXIsICZsbG9uZyk7Il0KLUBAIC00MjYsNyArNDI2LDcgQEAgbWlfbmV4dF90 byAiZG9fbG9jYWxzX3Rlc3RzIiAiIgkidmFyLWNtZC5jIiBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxl LTIuMTUKLSAjIERlc2M6IGNoZWNrIGZvciBvdXQgb2Ygc2NvcGUgc3Vicm91dGluZTEgbG9jYWxz Ci0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1c XFxbXHtuYW1lPVwibFwiLGluX3Njb3BlPVwiZmFsc2VcIlwsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc In0sXHtuYW1lPVwiaVwiLGluX3Njb3BlPVwiZmFsc2VcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxcIixpbl9zY29w ZT1cImZhbHNlXCJcLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJ9LFx7bmFt ZT1cImlcIixpbl9zY29wZT1cImZhbHNlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9y ZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBhbGwgbm93IG91dCBvZiBzY29w ZSIKLSAKLSAjIERvbmUgd2l0aCBsb2NhbHMvZ2xvYmFscyB0ZXN0cy4gRXJhc2UgYWxsIHZhcmlh YmxlcwotQEAgLTUxOCwxNCArNTE4LDE0IEBAIG1pX2dkYl90ZXN0ICItdmFyLWNyZWF0ZSBzZWxl Y3RlZF9hIEAgYSIgXAotIG1pX2NvbnRpbnVlX3RvIGluY3JfYQotIAotIG1pX2dkYl90ZXN0ICIt dmFyLXVwZGF0ZSBzZWxlY3RlZF9hIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFt ZT1cInNlbGVjdGVkX2FcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJ0cnVlXCIs bmV3X3R5cGU9XCJjaGFyXCIsbmV3X251bV9jaGlsZHJlbj1cIjBcIlx9XFxcXSIgXAotKwkiXFxe ZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzZWxlY3RlZF9hXCIsaW5fc2NvcGU9XCJ0cnVl XCIsdHlwZV9jaGFuZ2VkPVwidHJ1ZVwiLG5ld190eXBlPVwiY2hhclwiLG5ld19udW1fY2hpbGRy ZW49XCIwXCJcLGhhc19tb3JlPVwiMFwifVxcXF0iIFwKLSAJInVwZGF0ZSBzZWxlY3RlZF9hIGlu IGluY3JfYSIKLSAKLSBtaV9uZXh0ICJzdGVwIGEgbGluZSBpbiBpbmNyX2EiCi0gbWlfbmV4dCAi cmV0dXJuIGZyb20gaW5jcl9hIHRvIGRvX3NwZWNpYWxfdGVzdHMiCi0gCi0gbWlfZ2RiX3Rlc3Qg Ii12YXItdXBkYXRlIHNlbGVjdGVkX2EiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtu YW1lPVwic2VsZWN0ZWRfYVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cInRydWVc IixuZXdfdHlwZT1cImludFwiLG5ld19udW1fY2hpbGRyZW49XCIwXCJcfVxcXF0iIFwKLSsJIlxc XmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic2VsZWN0ZWRfYVwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cInRydWVcIixuZXdfdHlwZT1cImludFwiLG5ld19udW1fY2hpbGRy ZW49XCIwXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBzZWxlY3RlZF9hIGlu IGRvX3NwZWNpYWxfdGVzdHMiCi0gCi0gbWlfZ2RiX3Rlc3QgIi1maWxlLWV4ZWMtYW5kLXN5bWJv bHMgJHtiaW5maWxlfSIgIlxcXmRvbmUiIFwKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5taS9taTItdmFyLWRpc3BsYXkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1k aXNwbGF5LmV4cAotaW5kZXggZDZjZTY3My4uMTdlMjA4YSAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pMi12YXItZGlzcGxheS5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri Lm1pL21pMi12YXItZGlzcGxheS5leHAKLUBAIC01NTcsNyArNTU3LDcgQEAgbWlfZ2RiX3Rlc3Qg Ii12YXItaW5mby1udW0tY2hpbGRyZW4gZSIgXAotICMgVGVzdDogY192YXJpYWJsZS03LjU1Ci0g IyBEZXNjOiBjaGlsZHJlbiBvZiBlCi0gbWlfZ2RiX3Rlc3QgIi12YXItbGlzdC1jaGlsZHJlbiBl IiBcCi0tCSJcXF5kb25lLG51bWNoaWxkPVwiMFwiIiBcCi0rCSJcXF5kb25lLG51bWNoaWxkPVwi MFwiLGhhc19tb3JlPVwiMFwiIiBcCi0gCSJnZXQgY2hpbGRyZW4gb2YgZSIKLSAKLSAjIFRlc3Q6 IGNfdmFyaWFibGUtNy42MAotQEAgLTU5OSw3ICs1OTksNyBAQCBtaV9nZGJfdGVzdCAiLXZhci1p bmZvLW51bS1jaGlsZHJlbiBhbm9uZSIgXAotICMgVGVzdDogY192YXJpYWJsZS03Ljc1Ci0gIyBE ZXNjOiBjaGlsZHJlbiBvZiBhbm9uZQotIG1pX2dkYl90ZXN0ICItdmFyLWxpc3QtY2hpbGRyZW4g YW5vbmUiIFwKLS0JIlxcXmRvbmUsbnVtY2hpbGQ9XCIwXCIiIFwKLSsJIlxcXmRvbmUsbnVtY2hp bGQ9XCIwXCIsaGFzX21vcmU9XCIwXCIiIFwKLSAJImdldCBjaGlsZHJlbiBvZiBhbm9uZSIKLSAK LSAKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rl ci1mdW5jLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5j LmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAwLi43MjlmNDU3CkBAIC0yNzc1 NCwyODMgKzI2MDMyLDExIEBAIGluZGV4IDAwMDAwMDAuLmU5ZDE4YjcKICtnZGJfcHlfdGVzdF9z aWxlbnRfY21kICJweXRob24gdDAgPSBnZGIuc2VsZWN0ZWRfdGhyZWFkICgpIiAidGVzdCBnZGIu c2VsZWN0ZWRfdGhyZWFkIiAxCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCB0MCIgIlxcPGdkYi5J bmZlcmlvclRocmVhZCBvYmplY3QgYXQgMHhcW1xbOnhkaWdpdDpcXVxdKz4iICJ2ZXJpZnkgSW5m ZXJpb3JUaHJlYWQgb2JqZWN0IgogK2dkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9Jywg dDAubnVtIiAiID0gXFswLTlcXSsiICJ0ZXN0IEluZmVyaW9yLm51bSIKLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktbWkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LW1pLmV4cAotaW5kZXggZDNmNDRiMi4uYWZkZThjNCAxMDA2NDQKLS0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1taS5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1taS5leHAKLUBAIC00OCwyMyArNDgsNTMgQEAgbWlfZ2RiX3Rlc3QgInB5dGhvbiBl eGVjZmlsZSAoJyR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ucHknKSIgIiIKLSBtaV9j b250aW51ZV90b19saW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVyIHtNSSBicmVha3BvaW50IGhlcmV9 ICR7dGVzdGZpbGV9LmNdIFwKLSAgICJzdGVwIHRvIGJyZWFrcG9pbnQiCi0gCi0tbWlfY3JlYXRl X2Zsb2F0aW5nX3Zhcm9iaiBjb250YWluZXIgYyAiY3JlYXRlIGNvbnRhaW5lciB2YXJvYmoiCi0r bWlfY3JlYXRlX2R5bmFtaWNfdmFyb2JqIGNvbnRhaW5lciBjIFwKLSsgICJjcmVhdGUgY29udGFp bmVyIHZhcm9iaiwgbm8gcHJldHR5LXByaW50aW5nIgotKwotK21pX2xpc3RfdmFyb2JqX2NoaWxk cmVuIGNvbnRhaW5lciB7Ci0rICB7IGNvbnRhaW5lci5uYW1lIG5hbWUgMSBzdHJpbmcgfQotKyAg eyBjb250YWluZXIubGVuIGxlbiAwIGludCB9Ci0rICB7IGNvbnRhaW5lci5lbGVtZW50cyBlbGVt ZW50cyAxICJpbnQgLiIgfQotK30gImV4YW1pbmUgY29udGFpbmVyIGNoaWxkcmVuPTAsIG5vIHBy ZXR0eS1wcmludGluZyIKLSsKLSttaV9kZWxldGVfdmFyb2JqIGNvbnRhaW5lciAiZGVsZXRlIHZh cm9iaiIKLSsKLSttaV9nZGJfdGVzdCAiLWVuYWJsZS1wcmV0dHktcHJpbnRpbmciICIiCi0rCi0r bWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHN0cmluZyBzdHJpbmdfMSBcCi0rICAgICJzdHJ1Y3Qg c3RyaW5nX3JlcHIiIFwKLSsgICAgImNyZWF0ZSBzdHJpbmdfMSB2YXJvYmoiCi0rCi0rbWlfZ2Ri X3Rlc3QgIi1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gXCJzdHJpbmdfMSA9IHN0cmluZ18yXCIi ICIuKiIgXAotKyAgICAiYXNzaWduIHN0cmluZ18xIGZyb20gc3RyaW5nXzIiCi0rCi0rbWlfZ2Ri X3Rlc3QgIi12YXItdXBkYXRlIHN0cmluZyIgXAotKyAgICAiXFxeZG9uZSxjaGFuZ2VsaXN0PVxc XFt7bmFtZT1cInN0cmluZ1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCIsZHluYW1pYz1cIjFcIixoYXNfbW9yZT1cIjBcIn1cXFxdIiBcCi0rICAgICJ1cGRhdGUgc3Ry aW5nIHZhcm9iaiBhZnRlciBhc3NpZ25tZW50IgotKwotK21pX2NyZWF0ZV9keW5hbWljX3Zhcm9i aiBjb250YWluZXIgYyBcCi0rICAiY3JlYXRlIGNvbnRhaW5lciB2YXJvYmoiCi0gCi0gbWlfbGlz dF92YXJvYmpfY2hpbGRyZW4gY29udGFpbmVyIHsKLSB9ICJleGFtaW5lIGNvbnRhaW5lciBjaGls ZHJlbj0wIgotIAotIG1pX25leHQgIm5leHQgb3ZlciB1cGRhdGUgMSIKLSAKLS1taV92YXJvYmpf dXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsKLS0gICAgeyB7Y29udGFpbmVyLlxbMFxdfSB7XFsw XF19IDAgaW50IH0KLS19ICJ2YXJvYmogdXBkYXRlIDEiCi0rbWlfdmFyb2JqX3VwZGF0ZV9keW5h bWljIGNvbnRhaW5lciAidmFyb2JqIHVwZGF0ZSAxIiB7Ci0rICAgIHR5cGVfY2hhbmdlZCBmYWxz ZSBuZXdfbnVtX2NoaWxkcmVuIDEgZHluYW1pYyAxIGhhc19tb3JlIDAKLSt9IHsKLSt9IHsKLSsg ICAgeyBuYW1lIHtjb250YWluZXIuXFswXF19IGV4cCB7XFswXF19IG51bWNoaWxkIDAgdHlwZSBp bnQgdGhyZWFkLWlkIDEgfQotK30KLSAKLSBtaV9uZXh0ICJuZXh0IG92ZXIgdXBkYXRlIDIiCi0g Ci0tbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5lciB7Ci0tICAgIHsge2NvbnRhaW5l ci5cWzBcXX0ge1xbMFxdfSAwIGludCB9Ci0tICAgIHsge2NvbnRhaW5lci5cWzFcXX0ge1xbMVxd fSAwIGludCB9Ci0tfSAidmFyb2JqIHVwZGF0ZSAyIgotK21pX3Zhcm9ial91cGRhdGVfZHluYW1p YyBjb250YWluZXIgInZhcm9iaiB1cGRhdGUgMiIgewotKyAgICB0eXBlX2NoYW5nZWQgZmFsc2Ug bmV3X251bV9jaGlsZHJlbiAyIGR5bmFtaWMgMSBoYXNfbW9yZSAwCi0rfSB7Ci0rfSB7Ci0rICAg IHsgbmFtZSB7Y29udGFpbmVyLlxbMVxdfSBleHAge1xbMVxdfSBudW1jaGlsZCAwIHR5cGUgaW50 IHRocmVhZC1pZCAxIH0KLSt9Ci0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItc2V0LXZpc3VhbGl6ZXIg Y29udGFpbmVyIE5vbmUiIFwKLSAgICJcXF5kb25lIiBcCi1AQCAtNzgsMTkgKzEwOCwxMTEgQEAg bWlfZ2RiX3Rlc3QgIi12YXItc2V0LXZpc3VhbGl6ZXIgY29udGFpbmVyIGdkYi5kZWZhdWx0X3Zp c3VhbGl6ZXIiIFwKLSAgICJcXF5kb25lIiBcCi0gICAiY2hvb3NlIGRlZmF1bHQgdmlzdWFsaXpl ciIKLSAKLS1taV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsKLS0gICAgeyB7Y29u dGFpbmVyLlxbMFxdfSB7XFswXF19IDAgaW50IH0KLS0gICAgeyB7Y29udGFpbmVyLlxbMVxdfSB7 XFsxXF19IDAgaW50IH0KLS19ICJ2YXJvYmogdXBkYXRlIGFmdGVyIGNob29zaW5nIGRlZmF1bHQi Ci0rbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5lciAidmFyb2JqIHVwZGF0ZSBhZnRl ciBjaG9vc2luZyBkZWZhdWx0IiB7Ci0rICAgIHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2No aWxkcmVuIDIgZHluYW1pYyAxIGhhc19tb3JlIDAKLSt9IHsKLSt9IHsKLSsgICAgeyBuYW1lIHtj b250YWluZXIuXFswXF19IGV4cCB7XFswXF19IG51bWNoaWxkIDAgdHlwZSBpbnQgdGhyZWFkLWlk IDEgfQotKyAgICB7IG5hbWUge2NvbnRhaW5lci5cWzFcXX0gZXhwIHtcWzFcXX0gbnVtY2hpbGQg MCB0eXBlIGludCB0aHJlYWQtaWQgMSB9Ci0rfQotIAotIG1pX2dkYl90ZXN0ICItdmFyLXNldC12 aXN1YWxpemVyIGNvbnRhaW5lciBDb250YWluZXJQcmludGVyIiBcCi0gICAiXFxeZG9uZSIgXAot ICAgImNob29zZSB2aXN1YWxpemVyIHVzaW5nIGV4cHJlc3Npb24iCi0gCi0tbWlfdmFyb2JqX3Vw ZGF0ZV9keW5hbWljIGNvbnRhaW5lciB7Ci0rbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRh aW5lciBcCi0rICAidmFyb2JqIHVwZGF0ZSBhZnRlciBjaG9vc2luZyB2aWEgZXhwcmVzc2lvbiIg ewotKyAgICAgIHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDIgZHluYW1pYyAx IGhhc19tb3JlIDAKLSsgIH0gewotKyAgfSB7Ci0rICAgICAgeyBuYW1lIHtjb250YWluZXIuXFsw XF19IGV4cCB7XFswXF19IG51bWNoaWxkIDAgdHlwZSBpbnQgdGhyZWFkLWlkIDEgfQotKyAgICAg IHsgbmFtZSB7Y29udGFpbmVyLlxbMVxdfSBleHAge1xbMVxdfSBudW1jaGlsZCAwIHR5cGUgaW50 IHRocmVhZC1pZCAxIH0KLSsgIH0KLSsKLSttaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9yYW5nZSBj b250YWluZXIgMSAyIDIgewotKyAgICB7IHtjb250YWluZXIuXFsxXF19IHtcWzFcXX0gMCBpbnQg fQotK30gImxpc3QgdmFyb2JqIGNoaWxkcmVuIGFmdGVyIHNlbGVjdGluZyBjaGlsZCByYW5nZSIK LSsKLSttaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9yYW5nZSBjb250YWluZXIgLTEgLTEgMiB7Ci0r ICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGludCB9Ci0rICAgIHsge2NvbnRhaW5l ci5cWzFcXX0ge1xbMVxdfSAwIGludCB9Ci0rfSAibGlzdCB2YXJvYmogY2hpbGRyZW4gYWZ0ZXIg cmVzZXR0aW5nIGNoaWxkIHJhbmdlIgotKwotK21pX25leHQgIm5leHQgb3ZlciB1cGRhdGUgMyIK LSsKLSttaV9nZGJfdGVzdCAiLXZhci1zZXQtdXBkYXRlLXJhbmdlIGNvbnRhaW5lciAwIDEiIFwK LSsgICJcXF5kb25lIiBcCi0rICAic2V0IHVwZGF0ZSByYW5nZSIKLSsKLSsjIFRoaXMgc2hvdWxk IHRydW5jYXRlIHRoZSBsaXN0LgotK21pX2xpc3RfdmFyb2JqX2NoaWxkcmVuIGNvbnRhaW5lciB7 Ci0gICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGludCB9Ci0rfSAibGlzdCBjaGls ZHJlbiBhZnRlciBzZXR0aW5nIHVwZGF0ZSByYW5nZSIKLSsKLSsjIFRoaXMgc2hvdWxkIHJldHVy biBqdXN0IHRoZSBpdGVtcyBpbiBbMSwyKS4KLSttaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9yYW5n ZSBjb250YWluZXIgMSAyIDIgewotICAgICB7IHtjb250YWluZXIuXFsxXF19IHtcWzFcXX0gMCBp bnQgfQotLX0gInZhcm9iaiB1cGRhdGUgYWZ0ZXIgY2hvb3NpbmcgdmlhIGV4cHJlc3Npb24iCi0r fSAibGlzdCBzZWxlY3RlZCBjaGlsZHJlbiBhZnRlciBzZXR0aW5nIHJhbmdlIgotKwotKyMgVGhp cyBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IHRoZSBwcmV2aW91cyBsaXN0LWNoaWxkcmVuIHJl cXVlc3QuCi0rbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4gY29udGFpbmVyIHsKLSsgICAgeyB7Y29u dGFpbmVyLlxbMFxdfSB7XFswXF19IDAgaW50IH0KLSt9ICJsaXN0IGNoaWxkcmVuIGFmdGVyIGxp c3Rpbmcgc2VsZWN0ZWQgcmFuZ2UiCi0rCi0rbWlfbmV4dCAibmV4dCBvdmVyIHVwZGF0ZSA0Igot KwotKwotKyMgUmVncmVzc2lvbiB0ZXN0OiBleGFtaW5lIGFuIG9iamVjdCB0aGF0IGhhcyBubyBj aGlsZHJlbiwgdGhlbiB1cGRhdGUKLSsjIGl0IHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IHByaW50 IHRoZSBjaGlsZHJlbi4KLSttaV9jcmVhdGVfZHluYW1pY192YXJvYmogY29udGFpbmVyMiBjMiBc Ci0rICAiY3JlYXRlIHNlY29uZCBjb250YWluZXIgdmFyb2JqIgotKwotK21pX2dkYl90ZXN0ICIt dmFyLXVwZGF0ZSBjb250YWluZXIyIiBcCi0rICAiXFxeZG9uZSxjaGFuZ2VsaXN0PS4uIiBcCi0r ICAidXBkYXRlIHZhcm9iaiwgbm8gY2hpbGRyZW4gcmVxdWVzdGVkIgotKwotK21pX25leHQgIm5l eHQgb3ZlciB1cGRhdGUgNSIKLSsKLSsjIE5vdyBjb250YWluZXIyIGhhcyBhbiBlbGVtZW50IC0t IGFuZCBhbiB1cGRhdGUgc2hvdWxkIG1lbnRpb24gdGhhdAotKyMgaXQgaGFzX21vcmUuICBCdXQs IGJlY2F1c2Ugd2UgZGlkIG5vdCByZXF1ZXN0IGNoaWxkcmVuLCB3ZSBzdGlsbAotKyMgc2hvdWxk IG5vdCBhY3R1YWxseSBzZWUgdGhlbS4KLSttaV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFp bmVyMiBcCi0rICAgICJ1cGRhdGUgdmFyb2JqIDIsIG5vIGNoaWxkcmVuIHJlcXVlc3RlZCIgewot Kwl0eXBlX2NoYW5nZWQgZmFsc2UgZHluYW1pYyAxIGhhc19tb3JlIDEKLSsgICAgfSB7fSB7fQot KwotKyMgVGhpcyBzaG91bGQgb25seSBzaG93IHRoZSBmaXJzdCBjaGlsZCwgYmVjYXVzZSB0aGUg dXBkYXRlIHJhbmdlIGhhcwotKyMgYmVlbiBzZXQuCi0rbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWlj IGNvbnRhaW5lciBcCi0rICAidXBkYXRlIGFmdGVyIG5leHQgd2l0aCByZXN0cmljdGVkIHJhbmdl IiB7Ci0rICAgICAgdHlwZV9jaGFuZ2VkIGZhbHNlIG5ld19udW1fY2hpbGRyZW4gMSBkeW5hbWlj IDEgaGFzX21vcmUgMQotKyAgfSB7Ci0rICAgICAgeyBuYW1lIHtjb250YWluZXIuXFswXF19IGlu X3Njb3BlIHRydWUgdHlwZV9jaGFuZ2VkIGZhbHNlIGR5bmFtaWMgMSBoYXNfbW9yZSAwIH0KLSsg IH0gewotKyAgfQotKwotK21pX2NvbnRpbnVlX3RvX2xpbmUgXAotKyAgICBbZ2RiX2dldF9saW5l X251bWJlciB7TUkgb3V0ZXIgYnJlYWtwb2ludCBoZXJlfSAke3Rlc3RmaWxlfS5jXSBcCi0rICAg ICJzdGVwIHRvIG91dGVyIGJyZWFrcG9pbnQiCi0rCi0rbWlfY3JlYXRlX2R5bmFtaWNfdmFyb2Jq IG91dGVyIG91dGVyIFwKLSsgICJjcmVhdGUgb3V0ZXIgdmFyb2JqIgotKwotK21pX2xpc3RfdmFy b2JqX2NoaWxkcmVuIG91dGVyIHsKLSsgIHsgb3V0ZXIucyBzIDIgInN0cnVjdCBzdWJzdHJ1Y3Qi IH0KLSsgIHsgb3V0ZXIueCB4IDAgImludCIgfQotK30gImxpc3QgY2hpbGRyZW4gb2Ygb3V0ZXIi Ci0rCi0rbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4gb3V0ZXIucyB7Ci0rICB7IG91dGVyLnMuYSBh IDAgaW50IH0KLSsgIHsgb3V0ZXIucy5iIGIgMCBpbnQgfQotK30gImxpc3QgY2hpbGRyZW4gb2Yg b3V0ZXIucyIKLSsKLSttaV9uZXh0ICJuZXh0IG92ZXIgb3V0ZXIgdXBkYXRlIgotKwotK21pX2dk Yl90ZXN0ICItdmFyLXVwZGF0ZSBvdXRlciIgXAotKyAgIi5kb25lLGNoYW5nZWxpc3Q9LntuYW1l PVwib3V0ZXIucy5hXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixk eW5hbWljPVwiMVwiLGhhc19tb3JlPVwiMFwifS4iIFwKLSsgICJ1cGRhdGUgYWZ0ZXIgdXBkYXRp bmcgZWxlbWVudCBvZiBvdXRlciIKLSAKLSBtaV9jb250aW51ZV90b19saW5lIFwKLSAgICAgW2dk Yl9nZXRfbGluZV9udW1iZXIge0Fub3RoZXIgTUkgYnJlYWtwb2ludH0gJHt0ZXN0ZmlsZX0uY10g XAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5j IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmMKLWluZGV4IDNjYWZj NDguLmJmNDFlYmMgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJl dHR5cHJpbnQuYwotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50 LmMKLUBAIC0xNSw2ICsxNSw4IEBACi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov Ci0gCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwotIHN0cnVjdCBzCi0gewotICAgaW50IGE7Ci1A QCAtODAsNiArODIsMjkgQEAgY2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBWYmFzZTEsIHB1YmxpYyBW YmFzZTIsIHB1YmxpYyBWYmFzZTMKLSAKLSAjZW5kaWYKLSAKLStzdHJ1Y3Qgc3Vic3RydWN0IHsK LSsgIGludCBhOwotKyAgaW50IGI7Ci0rfTsKLSsKLStzdHJ1Y3Qgb3V0ZXJzdHJ1Y3QgewotKyAg c3RydWN0IHN1YnN0cnVjdCBzOwotKyAgaW50IHg7Ci0rfTsKLSsKLStzdHJ1Y3Qgb3V0ZXJzdHJ1 Y3QKLStzdWJzdHJ1Y3RfdGVzdCAodm9pZCkKLSt7Ci0rICBzdHJ1Y3Qgb3V0ZXJzdHJ1Y3Qgb3V0 ZXI7Ci0rICBvdXRlci5zLmEgPSAwOwotKyAgb3V0ZXIucy5iID0gMDsKLSsgIG91dGVyLnggPSAw OwotKwotKyAgb3V0ZXIucy5hID0gMzsJCS8qIE1JIG91dGVyIGJyZWFrcG9pbnQgaGVyZSAqLwot KwotKyAgcmV0dXJuIG91dGVyOyAgCi0rfQotKwotIHR5cGVkZWYgc3RydWN0IHN0cmluZ19yZXBy Ci0gewotICAgc3RydWN0IHdoeWJvdGhlcgotQEAgLTE0OCw2ICsxNzMsMTQgQEAgdm9pZCBkb19u b3RoaW5nKHZvaWQpCi0gICBjID0gMjM7CQkJLyogQW5vdGhlciBNSSBicmVha3BvaW50ICovCi0g fQotIAotK3N0cnVjdCBudWxsc3RyCi0rewotKyAgY2hhciAqczsKLSt9OwotKwotK3N0cnVjdCBz dHJpbmdfcmVwciBzdHJpbmdfMSA9IHsgeyAib25lIiB9IH07Ci0rc3RydWN0IHN0cmluZ19yZXBy IHN0cmluZ18yID0geyB7ICJ0d28iIH0gfTsKLSsKLSBpbnQKLSBtYWluICgpCi0gewotQEAgLTE1 NSwxMSArMTg4LDE1IEBAIG1haW4gKCkKLSAgIHN0cnVjdCBzcyAgc3NhWzJdOwotICAgc3RyaW5n IHggPSBtYWtlX3N0cmluZyAoInRoaXMgaXMgeCIpOwotICAgenp6X3R5cGUgYyA9IG1ha2VfY29u dGFpbmVyICgiY29udGFpbmVyIik7Ci0rICB6enpfdHlwZSBjMiA9IG1ha2VfY29udGFpbmVyICgi Y29udGFpbmVyMiIpOwotICAgY29uc3Qgc3RydWN0IHN0cmluZ19yZXByIGNzdHJpbmcgPSB7IHsg ImNvbnN0IHN0cmluZyIgfSB9OwotKyAgLyogQ2xlYXJpbmcgYnkgYmVpbmcgYHN0YXRpYycgY291 bGQgaW52b2tlIGFuIG90aGVyIEdEQiBDKysgYnVnLiAgKi8KLSsgIHN0cnVjdCBudWxsc3RyIG51 bGxzdHI7Ci0gCi0gICBpbml0X3NzKCZzcywgMSwgMik7Ci0gICBpbml0X3NzKHNzYSswLCAzLCA0 KTsKLSAgIGluaXRfc3Moc3NhKzEsIDUsIDYpOwotKyAgbWVtc2V0ICgmbnVsbHN0ciwgMCwgc2l6 ZW9mIG51bGxzdHIpOwotIAotICAgc3RydWN0IG5zICBuczsKLSAgIG5zLm51bGxfc3RyID0gImVt YmVkZGVkXDBudWxsXDBzdHJpbmciOwotQEAgLTE5Myw2ICsyMzAsMTMgQEAgbWFpbiAoKQotICAg YWRkX2l0ZW0gKCZjLCA3Mik7Ci0gCi0gI2lmZGVmIE1JCi0rICBhZGRfaXRlbSAoJmMsIDEwMTEp OwotKyAgYy5lbGVtZW50c1swXSA9IDEwMjM7Ci0rCi0rICBhZGRfaXRlbSAoJmMyLCAyMjIyKTsK LSsgIGFkZF9pdGVtICgmYzIsIDMzMzMpOwotKwotKyAgc3Vic3RydWN0X3Rlc3QgKCk7Ci0gICBk b19ub3RoaW5nICgpOwotICNlbmRpZgotIAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt cHJldHR5cHJpbnQuZXhwCi1pbmRleCBkMmRiNWJjLi4yODdhNWQzIDEwMDY0NAoraW5kZXggZDJk YjViYy4uNGRlMTYyMCAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1w cmV0dHlwcmludC5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlw cmludC5leHAKLUBAIC0yNywxMiArMjcsOSBAQCBzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJk aXJ9LyR7dGVzdGZpbGV9CitAQCAtMjcsMTIgKzI3LDIwIEBAIHNldCBiaW5maWxlICR7b2JqZGly fS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KICAjIFN0YXJ0IHdpdGggYSBmcmVzaCBnZGIuCiAgZ2Ri X2V4aXQKICBnZGJfc3RhcnQKQEAgLTI4MDQzLDEwICsyNjA0OSwzMyBAQCBpbmRleCBkMmRiNWJj Li4yODdhNWQzIDEwMDY0NAogK2lmICFbcHl0aG9uX3N1cHBvcnRlZF0gdGhlbiB7CiArICB1bnN1 cHBvcnRlZCAicHl0aG9uIHN1cHBvcnQgaXMgZGlzYWJsZWQiCiArICByZXR1cm4gLTEKKyt9Cisr CisrIyBSdW4gYSBjb21tYW5kIGluIEdEQiwgYW5kIHJlcG9ydCBhIGZhaWx1cmUgaWYgYSBQeXRo b24gZXhjZXB0aW9uIGlzIHRocm93bi4KKysjIElmIHJlcG9ydF9wYXNzIGlzIHRydWUsIHJlcG9y dCBhIHBhc3MgaWYgbm8gZXhjZXB0aW9uIGlzIHRocm93bi4KKytwcm9jIGdkYl9weV90ZXN0X3Np bGVudF9jbWQge2NtZCBuYW1lIHJlcG9ydF9wYXNzfSB7CisrICBnbG9iYWwgZ2RiX3Byb21wdAor KworKyAgZ2RiX3Rlc3RfbXVsdGlwbGUgJGNtZCAkbmFtZSB7CisrICAgICAgLXJlICJUcmFjZWJh Y2suKiRnZGJfcHJvbXB0ICQiICB7IGZhaWwgJG5hbWUgfQorKyAgICAgIC1yZSAiJGdkYl9wcm9t cHQgJCIJICAgICAgeyBpZiAkcmVwb3J0X3Bhc3MgeyBwYXNzICRuYW1lIH0gfQorKyAgfQogIH0K ICAKICBwcm9jIHJ1bl9sYW5nX3Rlc3RzIHtsYW5nfSB7Ci1AQCAtODYsNiArODMsOCBAQCBwcm9j IHJ1bl9sYW5nX3Rlc3RzIHtsYW5nfSB7CitAQCAtNzksNiArODcsMTEgQEAgcHJvYyBydW5fbGFu Z190ZXN0cyB7bGFuZ30geworIAlnZGJfdGVzdCAicHJpbnQgZGVyaXZlZCIgXAorIAkgICAgIiA9 IFx7Lio8VmJhc2UxPiA9IHBwIGNsYXNzIG5hbWU6IFZiYXNlMS4qPFZiYXNlMj4gPSBcey4qPFZp cnR1YWxUZXN0PiA9IHBwIHZhbHVlIHZhcmlhYmxlIGlzOiAxLC4qbWVtYmVycyBvZiBWYmFzZTI6 LipfdnB0ci5WYmFzZTIgPSAkaGV4Lio8VmJhc2UzPiA9IFx7LiptZW1iZXJzIG9mIFZiYXNlMy4q bWVtYmVycyBvZiBEZXJpdmVkOi4qdmFsdWUgPSAyLioiCisgCWdkYl90ZXN0ICJwcmludCBucyAi ICJcImVtYmVkZGVkXFxcXDAwMG51bGxcXFxcMDAwc3RyaW5nXCIiCisrCWdkYl9weV90ZXN0X3Np bGVudF9jbWQgInNldCBwcmludCBlbGVtZW50cyAzIiAiIiAxCisrCWdkYl90ZXN0ICJwcmludCBu cyIgImVtYlwuXC5cLi4iCisrCWdkYl9weV90ZXN0X3NpbGVudF9jbWQgInNldCBwcmludCBlbGVt ZW50cyAxMCIgIiIgMQorKwlnZGJfdGVzdCAicHJpbnQgbnMiICJlbWJlZGRlZFxcXFwwMDBuXC5c LlwuLiIKKysJZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAic2V0IHByaW50IGVsZW1lbnRzIDIwMCIg IiIgMQorICAgICB9CisgCisgICAgIGdkYl90ZXN0ICJwcmludCB4IiAiID0gJGhleCBcInRoaXMg aXMgeFwiIgorQEAgLTg2LDYgKzk5LDggQEAgcHJvYyBydW5fbGFuZ190ZXN0cyB7bGFuZ30gewog IAogICAgICBnZGJfdGVzdCAicHJpbnQgYyIgIiA9IGNvbnRhaW5lciAkaGV4IFwiY29udGFpbmVy XCIgd2l0aCAyIGVsZW1lbnRzID0geyRubCAqLjAuID0gMjMsJG5sICouMS4gPSA3MiRubH0iCiAg CkBAIC0yODA1NSw3MSArMjYwODQsNiBAQCBpbmRleCBkMmRiNWJjLi4yODdhNWQzIDEwMDY0NAog ICAgICBnZGJfdGVzdCAiY29udGludWUiICJQcm9ncmFtIGV4aXRlZCBub3JtYWxseVwuIgogIH0K ICAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQu cHkgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQucHkKLWluZGV4IGJm MDA5YTEuLjJmMDcwZDggMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt cHJldHR5cHJpbnQucHkKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlw cmludC5weQotQEAgLTkyLDYgKzkyLDEzIEBAIGNsYXNzIHBwX3ZiYXNlMToKLSAgICAgZGVmIHRv X3N0cmluZyAoc2VsZik6Ci0gICAgICAgICByZXR1cm4gInBwIGNsYXNzIG5hbWU6ICIgKyBzZWxm LnZhbC50eXBlLnRhZwotIAotK2NsYXNzIHBwX251bGxzdHI6Ci0rICAgIGRlZiBfX2luaXRfXyhz ZWxmLCB2YWwpOgotKyAgICAgICAgc2VsZi52YWwgPSB2YWwKLSsKLSsgICAgZGVmIHRvX3N0cmlu ZyhzZWxmKToKLSsgICAgICAgIHJldHVybiBzZWxmLnZhbFsncyddLnN0cmluZyhnZGIucGFyYW1l dGVyKCd0YXJnZXQtY2hhcnNldCcpKQotKwotIGNsYXNzIHBwX25zOgotICAgICAiUHJpbnQgYSBz dGQ6OmJhc2ljX3N0cmluZyBvZiBzb21lIGtpbmQiCi0gCi1AQCAtMTA1LDExICsxMTIsMjQgQEAg Y2xhc3MgcHBfbnM6Ci0gICAgIGRlZiBkaXNwbGF5X2hpbnQgKHNlbGYpOgotICAgICAgICAgcmV0 dXJuICdzdHJpbmcnCi0gCi0rY2xhc3MgcHBfb3V0ZXI6Ci0rICAgICJQcmludCBzdHJ1Y3Qgb3V0 ZXIiCi0rCi0rICAgIGRlZiBfX2luaXRfXyAoc2VsZiwgdmFsKToKLSsgICAgICAgIHNlbGYudmFs ID0gdmFsCi0rCi0rICAgIGRlZiB0b19zdHJpbmcgKHNlbGYpOgotKyAgICAgICAgcmV0dXJuICJ4 ID0gJXMiICUgc2VsZi52YWxbJ3gnXQotKwotKyAgICBkZWYgY2hpbGRyZW4gKHNlbGYpOgotKyAg ICAgICAgeWllbGQgJ3MnLCBzZWxmLnZhbFsncyddCi0rICAgICAgICB5aWVsZCAneCcsIHNlbGYu dmFsWyd4J10KLSsKLSBkZWYgbG9va3VwX2Z1bmN0aW9uICh2YWwpOgotICAgICAiTG9vay11cCBh bmQgcmV0dXJuIGEgcHJldHR5LXByaW50ZXIgdGhhdCBjYW4gcHJpbnQgdmFsLiIKLSAKLSAgICAg IyBHZXQgdGhlIHR5cGUuCi0tICAgIHR5cGUgPSB2YWwudHlwZTsKLSsgICAgdHlwZSA9IHZhbC50 eXBlCi0gCi0gICAgICMgSWYgaXQgcG9pbnRzIHRvIGEgcmVmZXJlbmNlLCBnZXQgdGhlIHJlZmVy ZW5jZS4KLSAgICAgaWYgdHlwZS5jb2RlID09IGdkYi5UWVBFX0NPREVfUkVGOgotQEAgLTE0OCw2 ICsxNjgsOSBAQCBkZWYgcmVnaXN0ZXJfcHJldHR5X3ByaW50ZXJzICgpOgotICAgICAKLSAgICAg cHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15WaXJ0dWFsVGVzdCQnKV0gPSAgcHBf bXVsdGlwbGVfdmlydHVhbAotICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlICgn XlZiYXNlMSQnKV0gPSAgcHBfdmJhc2UxCi0rCi0rICAgIHByZXR0eV9wcmludGVyc19kaWN0W3Jl LmNvbXBpbGUgKCdec3RydWN0IG51bGxzdHIkJyldID0gcHBfbnVsbHN0cgotKyAgICBwcmV0dHlf cHJpbnRlcnNfZGljdFtyZS5jb21waWxlICgnXm51bGxzdHIkJyldID0gcHBfbnVsbHN0cgotICAg ICAKLSAgICAgIyBOb3RlIHRoYXQgd2UgcHVycG9zZWx5IG9taXQgdGhlIHR5cGVkZWYgbmFtZXMg aGVyZS4KLSAgICAgIyBQcmludGVyIGxvb2t1cCBpcyBiYXNlZCBvbiBjYW5vbmljYWwgbmFtZS4K LUBAIC0xNjAsNiArMTgzLDEwIEBAIGRlZiByZWdpc3Rlcl9wcmV0dHlfcHJpbnRlcnMgKCk6Ci0g ICAgIAotICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlICgnXnN0cnVjdCBucyQn KV0gID0gcHBfbnMKLSAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15ucyQn KV0gID0gcHBfbnMKLSsKLSsgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15z dHJ1Y3Qgb3V0ZXJzdHJ1Y3QkJyldICA9IHBwX291dGVyCi0rICAgIHByZXR0eV9wcmludGVyc19k aWN0W3JlLmNvbXBpbGUgKCdeb3V0ZXJzdHJ1Y3QkJyldICA9IHBwX291dGVyCi0rCi0gcHJldHR5 X3ByaW50ZXJzX2RpY3QgPSB7fQotIAotIHJlZ2lzdGVyX3ByZXR0eV9wcmludGVycyAoKQogZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS10ZW1wbGF0ZS5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktdGVtcGxhdGUuZXhwCiBpbmRleCBjZWE2YWUwLi5jOWE2 M2Q0IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXRlbXBsYXRlLmV4 cApAQCAtMjgxNjMsMTEgKzI2MTI3LDQ4IEBAIGluZGV4IGNlYTZhZTAuLmM5YTYzZDQgMTAwNjQ0 CiAgcHJvYyB0ZXN0X3RlbXBsYXRlX2FyZyB7dHlwZX0gewogICAgICBnbG9iYWwgdGVzdGZpbGUg c3JjZGlyIHN1YmRpciBzcmNmaWxlIGJpbmZpbGUKICAgICAgaWYgeyBbZ2RiX2NvbXBpbGUgIiR7 c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIFwKK2RpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuYyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS12YWx1ZS5jCitpbmRleCBmM2Q2Mjg0Li4wMjNkODMwIDEwMDY0NAorLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmMKKysrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS12YWx1ZS5jCitAQCAtMzcsNiArMzcsMTMgQEAgdHlwZWRlZiBzdHJ1Y3Qg cyAqUFRSOworIAorIGVudW0gZSBldmFsdWUgPSBUV087CisgCisrI2lmZGVmIF9fY3BsdXNwbHVz Cisrdm9pZCBwdHJfcmVmKGludComIHJwdHJfaW50KQorK3sKKysgIHJldHVybjsgLyogYnJlYWsg dG8gaW5zcGVjdCBwb2ludGVyIGJ5IHJlZmVyZW5jZS4gKi8KKyt9CisrI2VuZGlmCisrCisgaW50 CisgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyB7CitAQCAtNDYsMTAgKzUzLDE4IEBA IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICBQVFIgeCA9ICZzOworICAgY2hhciBz dFsxN10gPSAiZGl2aWRlIGV0IGltcGVyYSI7CisgICBjaGFyIG51bGxzdFsxN10gPSAiZGl2aWRl XDBldFwwaW1wZXJhIjsKKysgIGludCBhWzNdID0gezEsMiwzfTsKKysgIGludCAqcCA9IGE7Cisr ICBpbnQgaSA9IDI7CisrICBpbnQgKnB0cl9pID0gJmk7CisgCisgICBzLmEgPSAzOworICAgcy5i ID0gNTsKKyAgIHUuYSA9IDc7CisgCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrICBwdHJfcmVmKHB0 cl9pKTsKKysjZW5kaWYKKysKKyAgIHJldHVybiAwOyAgICAgIC8qIGJyZWFrIHRvIGluc3BlY3Qg c3RydWN0IGFuZCB1bmlvbiAqLworIH0KIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktdmFsdWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4 cAotaW5kZXggOWI0MTkwZC4uOTNjZGRjNyAxMDA2NDQKK2luZGV4IDliNDE5MGQuLmI5ZjJjM2Mg MTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCiArKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCi1AQCAtMjkyLDIxICsyOTIs MzcgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoIHt9IHsKK0BAIC0yOTIsMjEgKzI5Miwx MDYgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoIHt9IHsKICAgICAgInByaW50IHZhbHVl J3MgdHlwZSIKICB9CiAgCkBAIC0yODE4MCw2ICsyNjE4MSw3NSBAQCBpbmRleCA5YjQxOTBkLi45 M2NkZGM3IDEwMDY0NAogKyAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCB2IiAiNSIgInByaW50IHZh bHVlIGZvciBjYXN0IHRlc3QiCiArfQogKworKyMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZhbGlk IHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAorKyMgdGhlIHR5cGUgb2Yg dGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQorKyMgc3Vi c2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgorKworK3Byb2MgdGVzdF9zdWJzY3JpcHRfcmVn cmVzc2lvbiB7bGFuZ30geworKworKyBnbG9iYWwgc3JjZGlyIHN1YmRpciBzcmNmaWxlIGJpbmZp bGUgdGVzdGZpbGUgaGV4CisrIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9 LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlICJkZWJ1ZyAkbGFuZyJdICE9ICIi IH0geworKyAgICAgdW50ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUgJHtzcmNmaWxlfSBpbiAkbGFu ZyBtb2RlIgorKyAgICAgcmV0dXJuIC0xCisrIH0KKysKKysgIyBTdGFydCB3aXRoIGEgZnJlc2gg Z2RiLgorKyBnZGJfZXhpdAorKyBnZGJfc3RhcnQKKysgZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNy Y2Rpci8kc3ViZGlyCisrIGdkYl9sb2FkICR7YmluZmlsZX0KKysKKysgaWYgIVtydW50b19tYWlu IF0gdGhlbiB7CisrICAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IgorKyAg ICAgcmV0dXJuCisrIH0KKysKKysgaWYgeyRsYW5nID09ICJjKysifSB7CisrICAgICBnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiYnJlYWsgdG8gaW5zcGVjdCBwb2ludGVyIGJ5 IHJlZmVyZW5jZSJdCisrICAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYnJlYWsgdG8g aW5zcGVjdCBwb2ludGVyIGJ5IHJlZmVyZW5jZSIKKysKKysgICAgIGdkYl9weV90ZXN0X3NpbGVu dF9jbWQgInByaW50IHJwdHJfaW50IiBcCisrCSAiT2J0YWluIGFkZHJlc3MiIDEKKysgICAgIGdk Yl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBycHRyID0gZ2RiLmhpc3RvcnkoMCkiIFwKKysJ ICJPYnRhaW5zIHZhbHVlIGZyb20gR0RCIiAxCisrICAgICBnZGJfdGVzdCAicHl0aG9uIHByaW50 IHJwdHJcWzBcXSIgIjIiICJDaGVjayBwb2ludGVyIHBhc3NlZCBhcyByZWZlcmVuY2UiCisrIH0K KysKKysgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImJyZWFrIHRvIGluc3Bl Y3Qgc3RydWN0IGFuZCB1bmlvbiJdCisrIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJicmVh ayB0byBpbnNwZWN0IHN0cnVjdCBhbmQgdW5pb24iCisrCisrIGdkYl9weV90ZXN0X3NpbGVudF9j bWQgInB5dGhvbiBpbnR2ID0gZ2RiLlZhbHVlKDEpIiBcCisrICAgICAiQ3JlYXRlIGEgdmFsdWUg Zm9yIHN1YnNjcmlwdCB0ZXN0IiAxCisrIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBz dHJpbmd2ID0gZ2RiLlZhbHVlKFwiZm9vXCIpIiBcCisrICAgICAiQ3JlYXRlIGEgdmFsdWUgZm9y IHN1YnNjcmlwdCB0ZXN0IiAxCisrCisrICMgVHJ5IHRvIGFjY2VzcyBhbiBpbnQgd2l0aCBhIHN1 YnNjcmlwdC4gIFRoaXMgc2hvdWxkIGZhaWwuCisrIGdkYl90ZXN0ICJweXRob24gcHJpbnQgaW50 diIgIjEiICJCYXNlbGluZSBwcmludCBvZiBhIFB5dGhvbiB2YWx1ZSIKKysgZ2RiX3Rlc3QgInB5 dGhvbiBwcmludCBpbnR2XFswXF0iICJSdW50aW1lRXJyb3I6IENhbm5vdCBzdWJzY3JpcHQgcmVx dWVzdGVkIHR5cGUuKiIgXAorKyAgICAgIkF0dGVtcHQgdG8gYWNjZXNzIGFuIGludGVnZXIgd2l0 aCBhIHN1YnNjcmlwdCIKKysKKysgIyBUcnkgdG8gYWNjZXNzIGEgc3RyaW5nIHdpdGggYSBzdWJz Y3JpcHQuICBUaGlzIHNob3VsZCBwYXNzLgorKyBnZGJfdGVzdCAicHl0aG9uIHByaW50IHN0cmlu Z3YiICJmb28uIiAiQmFzZWxpbmUgcHJpbnQgb2YgYSBQeXRob24gdmFsdWUiCisrIGdkYl90ZXN0 ICJweXRob24gcHJpbnQgc3RyaW5ndlxbMFxdIiAiZi4iICJBdHRlbXB0IHRvIGFjY2VzcyBhIHN0 cmluZyB3aXRoIGEgc3Vic2NyaXB0IgorKworKyAjIFRyeSB0byBhY2Nlc3MgYW4gaW50IGFycmF5 IHZpYSBhIHBvaW50ZXIgd2l0aCBhIHN1YnNjcmlwdC4gIFRoaXMgc2hvdWxkIHBhc3MuCisrIGdk Yl9weV90ZXN0X3NpbGVudF9jbWQgInByaW50IHAiICJCdWlsZCBwb2ludGVyIHRvIGFycmF5IiAx CisrIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBwb2ludGVyID0gZ2RiLmhpc3Rvcnko MCkiICIiIDEKKysgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2ludGVyXFswXF0iICIxIiAiQWNj ZXNzIGFycmF5IHZpYSBwb2ludGVyIHdpdGggaW50IHN1YnNjcmlwdCIKKysgZ2RiX3Rlc3QgInB5 dGhvbiBwcmludCBwb2ludGVyXFtpbnR2XF0iICIyIiAiQWNjZXNzIGFycmF5IHZpYSBwb2ludGVy IHdpdGggdmFsdWUgc3Vic2NyaXB0IgorKworKyAjIFRyeSB0byBhY2Nlc3MgYSBzaW5nbGUgZGlt ZW5zaW9uIGFycmF5IHdpdGggYSBzdWJzY3JpcHQgdG8gdGhlCisrICMgcmVzdWx0LiAgVGhpcyBz aG91bGQgZmFpbC4KKysgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2ludGVyXFtpbnR2XF1cWzBc XSIgIlJ1bnRpbWVFcnJvcjogQ2Fubm90IHN1YnNjcmlwdCByZXF1ZXN0ZWQgdHlwZS4qIiBcCisr ICAgICAiQXR0ZW1wdCB0byBhY2Nlc3MgYW4gaW50ZWdlciB3aXRoIGEgc3Vic2NyaXB0IiAgIAor KworKyAjIExhc3RseSwgdGVzdCBzdWJzY3JpcHQgYWNjZXNzIHRvIGFuIGFycmF5IHdpdGggbXVs dGlwbGUKKysgIyBkaW1lbnNpb25zLiAgVGhpcyBzaG91bGQgcGFzcy4KKysgZ2RiX3B5X3Rlc3Rf c2lsZW50X2NtZCAicHJpbnQge1wiZnUgXCIsXCJmb29cIixcImJhclwifSIgIkJ1aWxkIGFycmF5 IiAxCisrIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBtYXJyYXkgPSBnZGIuaGlzdG9y eSgwKSIgIiIgMQorKyBnZGJfdGVzdCAicHl0aG9uIHByaW50IG1hcnJheVxbMVxdXFsyXF0iICJv LiIgIlRlc3QgbXVsdGlwbGUgc3Vic2NyaXB0IgorK30gICAKKysKICAjIFN0YXJ0IHdpdGggYSBm cmVzaCBnZGIuCiAgCiAgZ2RiX2V4aXQKQEAgLTI4MTk2LDggKzI2MjY2LDggQEAgaW5kZXggOWI0 MTkwZC4uOTNjZGRjNyAxMDA2NDQKICtpZiAhW3B5dGhvbl9zdXBwb3J0ZWRdIHRoZW4gewogKyAg dW5zdXBwb3J0ZWQgInB5dGhvbiBzdXBwb3J0IGlzIGRpc2FibGVkIgogKyAgcmV0dXJuIC0xCi0g fQotIAorK30KKysKICtzZXQgdGVzdGZpbGUgInB5LXZhbHVlIgogK3NldCBzcmNmaWxlICR7dGVz dGZpbGV9LmMKICtzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CkBA IC0yODIwNSwxOCArMjYyNzUsMjQgQEAgaW5kZXggOWI0MTkwZC4uOTNjZGRjNyAxMDA2NDQKICtp ZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5m aWxlfSIgZXhlY3V0YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsKICsgICAgdW50ZXN0ZWQgIkNvdWxk bid0IGNvbXBpbGUgJHtzcmNmaWxlfSIKICsgICAgcmV0dXJuIC0xCi0rfQotKworIH0KKyAKICtn ZGJfbG9hZCAke2JpbmZpbGV9CiArCiAgdGVzdF92YWx1ZV9jcmVhdGlvbgogIHRlc3RfdmFsdWVf bnVtZXJpY19vcHMKICB0ZXN0X3ZhbHVlX2Jvb2xlYW4KLUBAIC0zMjIsMyArMzM4LDQgQEAgaWYg IVtydW50b19tYWluXSB0aGVuIHsKK0BAIC0zMjIsMyArNDA3LDEwIEBAIGlmICFbcnVudG9fbWFp bl0gdGhlbiB7CiAgCiAgdGVzdF92YWx1ZV9pbl9pbmZlcmlvcgogIHRlc3RfdmFsdWVfYWZ0ZXJf ZGVhdGgKICt0ZXN0X2Nhc3RfcmVncmVzc2lvbgorKworKyMgVGhlIGZvbGxvd2luZyB0ZXN0IHJl Y29tcGlsZXMgdGhlIGJpbmFyeSB0byB0ZXN0IGVpdGhlciBDIG9yIEMrKworKyMgdmFsdWVzLgor KworK3Rlc3Rfc3Vic2NyaXB0X3JlZ3Jlc3Npb24gImMrKyIKKyt0ZXN0X3N1YnNjcmlwdF9yZWdy ZXNzaW9uICJjIgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24u ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi5leHAKIGluZGV4IDUyMjNmYzgu LjAzZTFlYWIgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLmV4 cApAQCAtMjkzMTAsMTY5ICsyNzM4Niw2IEBAIGluZGV4IDBjOTNhNzMuLmQwYzM0OTMgMTAwNjQ0 CiAgCiAgZ2xvYmFsIEdEQgogIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1 cHBvcnQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKLWluZGV4IGU2OTEy MzIuLjE2N2EwMmMgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4 cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKLUBAIC0xMTk1LDEzICsx MTk1LDEzIEBAIHByb2MgbWlfbGlzdF9icmVha3BvaW50cyB7IGV4cGVjdGVkIHRlc3QgfSB7Ci0g IyBOYW1lIGNhbm5vdCBiZSAiLSIuCi0gcHJvYyBtaV9jcmVhdGVfdmFyb2JqIHsgbmFtZSBleHBy ZXNzaW9uIHRlc3RuYW1lIH0gewotICAgICBtaV9nZGJfdGVzdCAiLXZhci1jcmVhdGUgJG5hbWUg KiAkZXhwcmVzc2lvbiIgXAotLSAgICAgICAgIlxcXmRvbmUsbmFtZT1cIiRuYW1lXCIsbnVtY2hp bGQ9XCJcWzAtOVxdK1wiLHZhbHVlPVwiLipcIix0eXBlPS4qIiBcCi0rICAgICAgICAiXFxeZG9u ZSxuYW1lPVwiJG5hbWVcIixudW1jaGlsZD1cIlxbMC05XF0rXCIsdmFsdWU9XCIuKlwiLHR5cGU9 LiosaGFzX21vcmU9XCIwXCIiIFwKLSAgICAgICAgICR0ZXN0bmFtZQotIH0KLSAKLSBwcm9jIG1p X2NyZWF0ZV9mbG9hdGluZ192YXJvYmogeyBuYW1lIGV4cHJlc3Npb24gdGVzdG5hbWUgfSB7Ci0g ICAgIG1pX2dkYl90ZXN0ICItdmFyLWNyZWF0ZSAkbmFtZSBAICRleHByZXNzaW9uIiBcCi0tICAg ICAgICAiXFxeZG9uZSxuYW1lPVwiJG5hbWVcIixudW1jaGlsZD1cIlxbMC05XF0rXCIsdmFsdWU9 XCIuKlwiLHR5cGU9LioiIFwKLSsgICAgICAgICJcXF5kb25lLG5hbWU9XCIkbmFtZVwiLG51bWNo aWxkPVwiXCgtMVx8XFswLTlcXStcKVwiLHZhbHVlPVwiLipcIix0eXBlPS4qIiBcCi0gICAgICAg ICAkdGVzdG5hbWUKLSB9Ci0gCi1AQCAtMTIxNCw2ICsxMjE0LDE0IEBAIHByb2MgbWlfY3JlYXRl X3Zhcm9ial9jaGVja2VkIHsgbmFtZSBleHByZXNzaW9uIHR5cGUgdGVzdG5hbWUgfSB7Ci0gICAg ICAgICAkdGVzdG5hbWUKLSB9Ci0gCi0rIyBTYW1lIGFzIG1pX2NyZWF0ZV9mbG9hdGluZ192YXJv YmosIGJ1dCBhc3N1bWVzIHRoZSB0ZXN0IGlzIGNyZWF0aW5nCi0rIyBhIGR5bmFtaWMgdmFyb2Jq IHRoYXQgaGFzIGNoaWxkcmVuLCBzbyB0aGUgdmFsdWUgbXVzdCBiZSAiey4uLn0iLgotK3Byb2Mg bWlfY3JlYXRlX2R5bmFtaWNfdmFyb2JqIHtuYW1lIGV4cHJlc3Npb24gdGVzdG5hbWV9IHsKLSsg ICAgbWlfZ2RiX3Rlc3QgIi12YXItY3JlYXRlICRuYW1lIEAgJGV4cHJlc3Npb24iIFwKLSsgICAg ICAgICJcXF5kb25lLG5hbWU9XCIkbmFtZVwiLG51bWNoaWxkPVwiXCgtMVx8XFswLTlcXStcKVwi LHZhbHVlPVwie1xcLlxcLlxcLn1cIix0eXBlPS4qIiBcCi0rICAgICAgICAkdGVzdG5hbWUKLSt9 Ci0rCi0gIyBEZWxldGVzIHRoZSBzcGVjaWZpZWQgTkFNRS4gCi0gcHJvYyBtaV9kZWxldGVfdmFy b2JqIHsgbmFtZSB0ZXN0bmFtZSB9IHsKLSAgICAgbWlfZ2RiX3Rlc3QgIi12YXItZGVsZXRlICRu YW1lIiBcCi1AQCAtMTIyOSw3ICsxMjM3LDcgQEAgcHJvYyBtaV92YXJvYmpfdXBkYXRlIHsgbmFt ZSBleHBlY3RlZCB0ZXN0bmFtZSB9IHsKLSAgICAgc2V0IGVyICJcXF5kb25lLGNoYW5nZWxpc3Q9 XFxcWyIKLSAgICAgc2V0IGZpcnN0IDEKLSAgICAgZm9yZWFjaCBpdGVtICRleHBlY3RlZCB7Ci0t ICAgICAgICBzZXQgdiAie25hbWU9XCIkaXRlbVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCJ9IgotKyAgICAgICAgc2V0IHYgIntuYW1lPVwiJGl0ZW1cIixpbl9zY29w ZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiLlwifSIKLSAgICAg ICAgIGlmIHskZmlyc3QgPT0gMX0gewotICAgICAgICAgICAgIHNldCBlciAiJGVyJHYiCi0gICAg ICAgICAgICAgc2V0IGZpcnN0IDAKLUBAIC0xMjQ0LDIyICsxMjUyLDcwIEBAIHByb2MgbWlfdmFy b2JqX3VwZGF0ZSB7IG5hbWUgZXhwZWN0ZWQgdGVzdG5hbWUgfSB7Ci0gfQotIAotIHByb2MgbWlf dmFyb2JqX3VwZGF0ZV93aXRoX3R5cGVfY2hhbmdlIHsgbmFtZSBuZXdfdHlwZSBuZXdfY2hpbGRy ZW4gdGVzdG5hbWUgfSB7Ci0tICAgIHNldCB2ICJ7bmFtZT1cIiRuYW1lXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwidHJ1ZVwiLG5ld190eXBlPVwiJG5ld190eXBlXCIsbmV3X251 bV9jaGlsZHJlbj1cIiRuZXdfY2hpbGRyZW5cIn0iCi0rICAgIHNldCB2ICJ7bmFtZT1cIiRuYW1l XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwidHJ1ZVwiLG5ld190eXBlPVwiJG5l d190eXBlXCIsbmV3X251bV9jaGlsZHJlbj1cIiRuZXdfY2hpbGRyZW5cIixoYXNfbW9yZT1cIi5c In0iCi0gICAgIHNldCBlciAiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFskdlxcXF0iCi0gICAgIHZl cmJvc2UgLWxvZyAiRXhwZWN0aW5nOiAkZXIiCi0gICAgIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0 ZSAkbmFtZSIgJGVyICR0ZXN0bmFtZQotIH0KLSAKLS0jIFVwZGF0ZSBhIGR5bmFtaWMgdmFyb2Jq IG5hbWVkIE5BTUUuICBDSElMRFJFTiBpcyBhIGxpc3Qgb2YgY2hpbGRyZW4sCi0tIyBpbiB0aGUg c2FtZSBmb3JtIGFzIG1pX2xpc3RfdmFyb2JqX2NoaWxkcmVuLiAgVEVTVE5BTUUgaXMgdGhlIG5h bWUKLS0jIG9mIHRoZSB0ZXN0LgotLXByb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIHtuYW1l IGNoaWxkcmVuIHRlc3RuYW1lfSB7Ci0tICAgIHNldCBjaGlsZHJlbl9leHBfaiBbbWlfY2hpbGRf cmVnZXhwICRjaGlsZHJlbiAwXQotKyMgQSBoZWxwZXIgdGhhdCB0dXJucyBhIGtleS92YWx1ZSBs aXN0IGludG8gYSByZWd1bGFyIGV4cHJlc3Npb24KLSsjIG1hdGNoaW5nIHNvbWUgTUkgb3V0cHV0 LgotK3Byb2MgbWlfdmFyb2JqX3VwZGF0ZV9rdl9oZWxwZXIge2xpc3R9IHsKLSsgICAgc2V0IGZp cnN0IDEKLSsgICAgc2V0IHJ4ICIiCi0rICAgIGZvcmVhY2gge2tleSB2YWx1ZX0gJGxpc3Qgewot KwlpZiB7ISRmaXJzdH0gewotKwkgICAgYXBwZW5kIHJ4ICwKLSsJfQotKwlzZXQgZmlyc3QgMAot KwlpZiB7JGtleSA9PSAibmV3X2NoaWxkcmVuIn0gewotKwkgICAgYXBwZW5kIHJ4ICIka2V5PVxc XFskdmFsdWVcXFxdIgotKwl9IGVsc2UgewotKwkgICAgYXBwZW5kIHJ4ICIka2V5PVwiJHZhbHVl XCIiCi0rCX0KLSsgICAgfQotKyAgICByZXR1cm4gJHJ4Ci0rfQotIAotLSAgICBzZXQgZXIgIlxc XmRvbmUsY2hhbmdlbGlzdD1cXFxbIgotKyMgQSBoZWxwZXIgZm9yIG1pX3Zhcm9ial91cGRhdGVf ZHluYW1pYyB0aGF0IGNvbXB1dGVzIGEgbWF0Y2gKLSsjIGV4cHJlc3Npb24gZ2l2ZW4gYSBjaGls ZCBsaXN0LgotK3Byb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljX2hlbHBlciB7Y2hpbGRyZW59 IHsKLSsgICAgc2V0IGNyeCAiIgotIAotLSAgICBhcHBlbmQgZXIgIntuYW1lPVwiJG5hbWVcIixp bl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiIgotLSAgICBhcHBlbmQgZXIg IixjaGlsZHJlbj1cXFxbJGNoaWxkcmVuX2V4cF9qLipcXFxdfVxcXF0iCi0rICAgIHNldCBmaXJz dCAxCi0rICAgIGZvcmVhY2ggY2hpbGQgJGNoaWxkcmVuIHsKLSsJaWYgeyEkZmlyc3R9IHsKLSsJ ICAgIGFwcGVuZCBjcnggLAotKwl9Ci0rCXNldCBmaXJzdCAwCi0rCWFwcGVuZCBjcnggInsiCi0r CWFwcGVuZCBjcnggW21pX3Zhcm9ial91cGRhdGVfa3ZfaGVscGVyICRjaGlsZF0KLSsJYXBwZW5k IGNyeCAifSIKLSsgICAgfQotKwotKyAgICByZXR1cm4gJGNyeAotK30KLSsKLSsjIFVwZGF0ZSBh IGR5bmFtaWMgdmFyb2JqIG5hbWVkIE5BTUUuICBDSElMRFJFTiBpcyBhIGxpc3Qgb2YgY2hpbGRy ZW4KLSsjIHRoYXQgaGF2ZSBiZWVuIHVwZGF0ZWQ7IE5FV19DSElMRFJFTiBpcyBhIGxpc3Qgb2Yg Y2hpbGRyZW4gdGhhdCB3ZXJlCi0rIyBhZGRlZCB0byB0aGUgcHJpbWFyeSB2YXJvYmouICBFYWNo IGNoaWxkIGlzIGEgbGlzdCBvZiBrZXkvdmFsdWUKLSsjIHBhaXJzIHRoYXQgYXJlIGV4cGVjdGVk LiAgU0VMRiBpcyBhIGtleS92YWx1ZSBsaXN0IGhvbGRpbmcKLSsjIGluZm9ybWF0aW9uIGFib3V0 IHRoZSB2YXJvYmogaXRzZWxmLiAgVEVTVE5BTUUgaXMgdGhlIG5hbWUgb2YgdGhlCi0rIyB0ZXN0 LgotK3Byb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIHtuYW1lIHRlc3RuYW1lIHNlbGYgY2hp bGRyZW4gbmV3X2NoaWxkcmVufSB7Ci0rICAgIGlmIHtbbGxlbmd0aCAkbmV3X2NoaWxkcmVuXX0g ewotKwlzZXQgbmV3cnggW21pX3Zhcm9ial91cGRhdGVfZHluYW1pY19oZWxwZXIgJG5ld19jaGls ZHJlbl0KLSsJbGFwcGVuZCBzZWxmIG5ld19jaGlsZHJlbiAkbmV3cngKLSsgICAgfQotKyAgICBz ZXQgc2VsZnJ4IFttaV92YXJvYmpfdXBkYXRlX2t2X2hlbHBlciAkc2VsZl0KLSsgICAgc2V0IGNy eCBbbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljX2hlbHBlciAkY2hpbGRyZW5dCi0rCi0rICAgIHNl dCBlciAiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCIkbmFtZVwiLGluX3Njb3BlPVwi dHJ1ZVwiIgotKyAgICBhcHBlbmQgZXIgIiwkc2VsZnJ4XH0iCi0rICAgIGlmIHsiJGNyeCIgIT0g IiJ9IHsKLSsJYXBwZW5kIGVyICIsJGNyeCIKLSsgICAgfQotKyAgICBhcHBlbmQgZXIgIlxcXF0i Ci0gCi0gICAgIHZlcmJvc2UgLWxvZyAiRXhwZWN0aW5nOiAkZXIiCi0gICAgIG1pX2dkYl90ZXN0 ICItdmFyLXVwZGF0ZSAkbmFtZSIgJGVyICR0ZXN0bmFtZQotQEAgLTEzMjksMTQgKzEzODUsMTMg QEAgcHJvYyBtaV9jaGlsZF9yZWdleHAge2NoaWxkcmVuIGFkZF9jaGlsZH0gewotICMgaGF2ZSBu byB2YWx1ZS4KLSAjCi0gcHJvYyBtaV9saXN0X3Zhcm9ial9jaGlsZHJlbiB7IHZhcm5hbWUgY2hp bGRyZW4gdGVzdG5hbWUgfSB7Ci0tICAgIG1pX2xpc3RfdmFyb2JqX2NoaWxkcmVuX3JhbmdlICR2 YXJuYW1lIFtsbGVuZ3RoICRjaGlsZHJlbl0gJGNoaWxkcmVuIFwKLSsgICAgbWlfbGlzdF92YXJv YmpfY2hpbGRyZW5fcmFuZ2UgJHZhcm5hbWUgIiIgIiIgW2xsZW5ndGggJGNoaWxkcmVuXSAkY2hp bGRyZW4gXAotICAgICAgICR0ZXN0bmFtZQotIH0KLSAKLS0jIExpa2UgbWlfbGlzdF92YXJvYmpf Y2hpbGRyZW4sIGJ1dCBhc3N1bWVzIHRoYXQgYSBzdWJyYW5nZSBoYXMgYmVlbgotLSMgc2VsZWN0 ZWQgd2l0aCAtdmFyLXNldC1jaGlsZC1yYW5nZS4gIE5VTUNISUxEUkVOIGlzIHRoZSB0b3RhbCBu dW1iZXIKLS0jIG9mIGNoaWxkcmVuLgotLXByb2MgbWlfbGlzdF92YXJvYmpfY2hpbGRyZW5fcmFu Z2Uge3Zhcm5hbWUgbnVtY2hpbGRyZW4gY2hpbGRyZW4gdGVzdG5hbWV9IHsKLSsjIExpa2UgbWlf bGlzdF92YXJvYmpfY2hpbGRyZW4sIGJ1dCBzZXRzIGEgc3VicmFuZ2UuICBOVU1DSElMRFJFTiBp cwotKyMgdGhlIHRvdGFsIG51bWJlciBvZiBjaGlsZHJlbi4KLStwcm9jIG1pX2xpc3RfdmFyb2Jq X2NoaWxkcmVuX3JhbmdlIHt2YXJuYW1lIGZyb20gdG8gbnVtY2hpbGRyZW4gY2hpbGRyZW4gdGVz dG5hbWV9IHsKLSAgICAgc2V0IG9wdGlvbnMgIiIKLSAgICAgaWYge1tsbGVuZ3RoICR2YXJuYW1l XSA9PSAyfSB7Ci0gICAgICAgICBzZXQgb3B0aW9ucyBbbGluZGV4ICR2YXJuYW1lIDFdCi1AQCAt MTM1Miw5ICsxNDA3LDE4IEBAIHByb2MgbWlfbGlzdF92YXJvYmpfY2hpbGRyZW5fcmFuZ2Uge3Zh cm5hbWUgbnVtY2hpbGRyZW4gY2hpbGRyZW4gdGVzdG5hbWV9IHsKLSAgICAgICAgIHNldCBleHBl Y3RlZCAiXFxeZG9uZSxudW1jaGlsZD1cIjBcIiIKLSAgICAgfQotIAotKyAgICBpZiB7IiR0byIg PT0gIiJ9IHsKLSsgICAgICAgIGFwcGVuZCBleHBlY3RlZCAiLGhhc19tb3JlPVwiMFwiIgotKyAg ICB9IGVsc2VpZiB7JHRvID49IDAgJiYgJG51bWNoaWxkcmVuID4gJHRvfSB7Ci0rICAgICAgICBh cHBlbmQgZXhwZWN0ZWQgIixoYXNfbW9yZT1cIjFcIiIKLSsgICAgfSBlbHNlIHsKLSsgICAgICAg IGFwcGVuZCBleHBlY3RlZCAiLGhhc19tb3JlPVwiMFwiIgotKyAgICB9Ci0rCi0gICAgIHZlcmJv c2UgLWxvZyAiRXhwZWN0aW5nOiAkZXhwZWN0ZWQiCi0gCi0tICAgIG1pX2dkYl90ZXN0ICItdmFy LWxpc3QtY2hpbGRyZW4gJG9wdGlvbnMgJHZhcm5hbWUiICRleHBlY3RlZCAkdGVzdG5hbWUKLSsg ICAgbWlfZ2RiX3Rlc3QgIi12YXItbGlzdC1jaGlsZHJlbiAkb3B0aW9ucyAkdmFybmFtZSAkZnJv bSAkdG8iIFwKLSsgICAgICAkZXhwZWN0ZWQgJHRlc3RuYW1lCi0gfQotIAotICMgVmVyaWZpZXMg dGhhdCB2YXJpYWJsZSBvYmplY3QgVkFSTkFNRSBoYXMgTlVNQkVSIGNoaWxkcmVuLAogZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL3B5dGhvbi1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3Vp dGUvbGliL3B5dGhvbi1zdXBwb3J0LmV4cAogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAw MDAwMDAuLmI4ZTk4MzYKQEAgLTI5NTMzLDcgKzI3NDQ2LDcgQEAgaW5kZXggMDAwMDAwMC4uYjhl OTgzNgogKyAgICByZXR1cm4gMAogK30KIGRpZmYgLS1naXQgYS9nZGIvdGhyZWFkLmMgYi9nZGIv dGhyZWFkLmMKLWluZGV4IGE3YWMzYzguLjgxNWM4MmQgMTAwNjQ0CitpbmRleCA1NWI0Yjk2Li5l MGFkMmQzIDEwMDY0NAogLS0tIGEvZ2RiL3RocmVhZC5jCiArKysgYi9nZGIvdGhyZWFkLmMKIEBA IC02MSw3ICs2MSw2IEBAIHN0YXRpYyBpbnQgdGhyZWFkX2FsaXZlIChzdHJ1Y3QgdGhyZWFkX2lu Zm8gKik7CkBAIC0zMDU4NywxMCArMjg1MDAsMTAgQEAgaW5kZXggNTFlNjk2MC4uNDhiMzBlNCAx MDA2NDQKICAvKiBVc2VyIGZ1bmN0aW9uIGhhbmRsZXIuICAqLwogIAogZGlmZiAtLWdpdCBhL2dk Yi92YXJvYmouYyBiL2dkYi92YXJvYmouYwotaW5kZXggNjAzMDcxZi4uZjFjZTg5ZiAxMDA2NDQK K2luZGV4IDcyMzU2MzUuLjk4NDhkZTAgMTAwNjQ0CiAtLS0gYS9nZGIvdmFyb2JqLmMKICsrKyBi L2dkYi92YXJvYmouYwotQEAgLTI2LDkgKzI2LDEyIEBACitAQCAtMjYsNiArMjYsOCBAQAogICNp bmNsdWRlICJnZGJjbWQuaCIKICAjaW5jbHVkZSAiYmxvY2suaCIKICAjaW5jbHVkZSAidmFscHJp bnQuaCIKQEAgLTMwNTk5LDU5ICsyODUxMiw3IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYgMTAw NjQ0CiAgCiAgI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKICAjaW5jbHVkZSAiZ2RiX3N0cmluZy5o IgotKyNpbmNsdWRlICJnZGJfcmVnZXguaCIKLSAKLSAjaW5jbHVkZSAidmFyb2JqLmgiCi0gI2lu Y2x1ZGUgInZlYy5oIgotQEAgLTU5LDYgKzYyLDE1IEBAIGNoYXIgKnZhcm9ial9mb3JtYXRfc3Ry aW5nW10gPQotIC8qIFN0cmluZyByZXByZXNlbnRhdGlvbnMgb2YgZ2RiJ3Mga25vd24gbGFuZ3Vh Z2VzICovCi0gY2hhciAqdmFyb2JqX2xhbmd1YWdlX3N0cmluZ1tdID0geyAidW5rbm93biIsICJD IiwgIkMrKyIsICJKYXZhIiB9OwotIAotKy8qIFRydWUgaWYgd2Ugd2FudCB0byBhbGxvdyBQeXRo b24tYmFzZWQgcHJldHR5LXByaW50aW5nLiAgKi8KLStzdGF0aWMgaW50IHByZXR0eV9wcmludGlu ZyA9IDA7Ci0rCi0rdm9pZAotK3Zhcm9ial9lbmFibGVfcHJldHR5X3ByaW50aW5nICh2b2lkKQot K3sKLSsgIHByZXR0eV9wcmludGluZyA9IDE7Ci0rfQotKwotIC8qIERhdGEgc3RydWN0dXJlcyAq LwotIAotIC8qIEV2ZXJ5IHJvb3QgdmFyaWFibGUgaGFzIG9uZSBvZiB0aGVzZSBzdHJ1Y3R1cmVz IHNhdmVkIGluIGl0cwotQEAgLTE3Myw5ICsxODUsMzEgQEAgc3RydWN0IHZhcm9iagotICAgICAg ZnJvemVuLiAgKi8KLSAgIGludCBub3RfZmV0Y2hlZDsKLSAKLSsgIC8qIFN1Yi1yYW5nZSBvZiBj aGlsZHJlbiB3aGljaCB0aGUgTUkgY29uc3VtZXIgaGFzIHJlcXVlc3RlZC4gIElmCi0rICAgICBG Uk9NIDwgMCBvciBUTyA8IDAsIG1lYW5zIHRoYXQgYWxsIGNoaWxkcmVuIGhhdmUgYmVlbgotKyAg ICAgcmVxdWVzdGVkLiAgKi8KLSsgIGludCBmcm9tOwotKyAgaW50IHRvOwotKwotKyAgLyogVGhl IHByZXR0eS1wcmludGVyIGNvbnN0cnVjdG9yLiAgSWYgTlVMTCwgdGhlbiB0aGUgZGVmYXVsdAot KyAgICAgcHJldHR5LXByaW50ZXIgd2lsbCBiZSBsb29rZWQgdXAuICBJZiBOb25lLCB0aGVuIG5v Ci0rICAgICBwcmV0dHktcHJpbnRlciB3aWxsIGJlIGluc3RhbGxlZC4gICovCi0rICBQeU9iamVj dCAqY29uc3RydWN0b3I7Ci0rCi0gICAvKiBUaGUgcHJldHR5LXByaW50ZXIgdGhhdCBoYXMgYmVl biBjb25zdHJ1Y3RlZC4gIElmIE5VTEwsIHRoZW4gYQotICAgICAgbmV3IHByaW50ZXIgb2JqZWN0 IGlzIG5lZWRlZCwgYW5kIG9uZSB3aWxsIGJlIGNvbnN0cnVjdGVkLiAgKi8KLSAgIFB5T2JqZWN0 ICpwcmV0dHlfcHJpbnRlcjsKLSsKLSsgIC8qIFRoZSBpdGVyYXRvciByZXR1cm5lZCBieSB0aGUg cHJpbnRlcidzICdjaGlsZHJlbicgbWV0aG9kLCBvciBOVUxMCi0rICAgICBpZiBub3QgYXZhaWxh YmxlLiAgKi8KLSsgIFB5T2JqZWN0ICpjaGlsZF9pdGVyOwotKwotKyAgLyogV2UgcmVxdWVzdCBv bmUgZXh0cmEgaXRlbSBmcm9tIHRoZSBpdGVyYXRvciwgc28gdGhhdCB3ZSBjYW4KLSsgICAgIHJl cG9ydCB0byB0aGUgY2FsbGVyIHdoZXRoZXIgdGhlcmUgYXJlIG1vcmUgaXRlbXMgdGhhbiB3ZSBo YXZlCi0rICAgICBhbHJlYWR5IHJlcG9ydGVkLiAgSG93ZXZlciwgd2UgZG9uJ3Qgd2FudCB0byBp bnN0YWxsIHRoaXMgdmFsdWUKLSsgICAgIHdoZW4gd2UgcmVhZCBpdCwgYmVjYXVzZSB0aGF0IHdp bGwgbWVzcyB1cCBmdXR1cmUgdXBkYXRlcy4gIFNvLAotKyAgICAgd2Ugc3Rhc2ggaXQgaGVyZSBp bnN0ZWFkLiAgKi8KLSsgIFB5T2JqZWN0ICpzYXZlZF9pdGVtOwotIH07Ci0gCi0gc3RydWN0IGNw c3RhY2sKLUBAIC0yMjEsNiArMjU1LDggQEAgc3RhdGljIHZvaWQgZnJlZV92YXJpYWJsZSAoc3Ry dWN0IHZhcm9iaiAqdmFyKTsKK0BAIC0yNTMsNiArMjU1LDggQEAgc3RhdGljIHZvaWQgZnJlZV92 YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyKTsKICAKICBzdGF0aWMgc3RydWN0IGNsZWFudXAg Km1ha2VfY2xlYW51cF9mcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIpOwogIApAQCAt MzA2NjAsMTYgKzI4NTIxLDcgQEAgaW5kZXggNjAzMDcxZi4uZjFjZTg5ZiAxMDA2NDQKICBzdGF0 aWMgc3RydWN0IHR5cGUgKmdldF90eXBlIChzdHJ1Y3QgdmFyb2JqICp2YXIpOwogIAogIHN0YXRp YyBzdHJ1Y3QgdHlwZSAqZ2V0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YXJvYmogKnZhcik7Ci1AQCAt MjM2LDggKzI3Miw2IEBAIHN0YXRpYyBjaGFyICpjcHBvcCAoc3RydWN0IGNwc3RhY2sgKipwc3Rh Y2spOwotIHN0YXRpYyBpbnQgaW5zdGFsbF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwg c3RydWN0IHZhbHVlICp2YWx1ZSwgCi0gCQkJICAgICAgaW50IGluaXRpYWwpOwotIAotLXN0YXRp YyB2b2lkIGluc3RhbGxfZGVmYXVsdF92aXN1YWxpemVyIChzdHJ1Y3QgdmFyb2JqICp2YXIpOwot LQotIC8qIExhbmd1YWdlLXNwZWNpZmljIHJvdXRpbmVzLiAqLwotIAotIHN0YXRpYyBlbnVtIHZh cm9ial9sYW5ndWFnZXMgdmFyaWFibGVfbGFuZ3VhZ2UgKHN0cnVjdCB2YXJvYmogKnZhcik7Ci1A QCAtNDUwLDYgKzQ4NCw4IEBAIGlzX3Jvb3RfcCAoc3RydWN0IHZhcm9iaiAqdmFyKQorQEAgLTQ4 MCw2ICs0ODQsOCBAQCBpc19yb290X3AgKHN0cnVjdCB2YXJvYmogKnZhcikKICBzdHJ1Y3QgY2xl YW51cCAqCiAgdmFyb2JqX2Vuc3VyZV9weXRob25fZW52IChzdHJ1Y3QgdmFyb2JqICp2YXIpCiAg ewpAQCAtMzA2NzgsMzQgKzI4NTMwLDE1IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYgMTAwNjQ0 CiAgICByZXR1cm4gZW5zdXJlX3B5dGhvbl9lbnYgKHZhci0+cm9vdC0+ZXhwLT5nZGJhcmNoLAog IAkJCSAgICB2YXItPnJvb3QtPmV4cC0+bGFuZ3VhZ2VfZGVmbik7CiAgfQotQEAgLTYyMSw5ICs2 NTcsOSBAQCB2YXJvYmpfY3JlYXRlIChjaGFyICpvYmpuYW1lLAorQEAgLTY1MSw2ICs2NTcsNyBA QCB2YXJvYmpfY3JlYXRlIChjaGFyICpvYmpuYW1lLAogIAkgIGRvX2NsZWFudXBzIChvbGRfY2hh aW4pOwogIAkgIHJldHVybiBOVUxMOwogIAl9CiArICAgICAgbWFrZV9jbGVhbnVwX3VuaW5zdGFs bF92YXJpYWJsZSAodmFyKTsKICAgICAgfQogIAotLSAgaW5zdGFsbF9kZWZhdWx0X3Zpc3VhbGl6 ZXIgKHZhcik7CiAgICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2hhaW4pOwotICAgcmV0dXJuIHZh cjsKLSB9Ci1AQCAtNzM4LDE1ICs3NzQsOCBAQCBpbnN0YW50aWF0ZV9wcmV0dHlfcHJpbnRlciAo UHlPYmplY3QgKmNvbnN0cnVjdG9yLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlKQotICNpZiBIQVZFX1BZ VEhPTgotICAgUHlPYmplY3QgKnZhbF9vYmogPSBOVUxMOyAKLSAgIFB5T2JqZWN0ICpwcmludGVy OwotLSAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZXhjZXB0OwotIAotLSAgVFJZX0NB VENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKLS0gICAgewotLSAgICAgIHZhbHVlID0gdmFs dWVfY29weSAodmFsdWUpOwotLSAgICB9Ci0tICBHREJfUFlfSEFORExFX0VYQ0VQVElPTiAoZXhj ZXB0KTsKLSAgIHZhbF9vYmogPSB2YWx1ZV90b192YWx1ZV9vYmplY3QgKHZhbHVlKTsKLS0KLSAg IGlmICghIHZhbF9vYmopCi0gICAgIHJldHVybiBOVUxMOwotIAotQEAgLTc5OSw3ICs4MjgsMTIg QEAgdmFyb2JqX2dldF9kaXNwbGF5X2hpbnQgKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC04MjEs NyArODI4LDEyIEBAIHZhcm9ial9nZXRfZGlzcGxheV9oaW50IChzdHJ1Y3QgdmFyb2JqICp2YXIp CiAgICBjaGFyICpyZXN1bHQgPSBOVUxMOwogIAogICNpZiBIQVZFX1BZVEhPTgpAQCAtMzA3MTks Nzg0ICsyODU1Miw3IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYgMTAwNjQ0CiAgCiAgICBpZiAo dmFyLT5wcmV0dHlfcHJpbnRlcikKICAgICAgcmVzdWx0ID0gZ2RicHlfZ2V0X2Rpc3BsYXlfaGlu dCAodmFyLT5wcmV0dHlfcHJpbnRlcik7Ci1AQCAtODEwLDYgKzg0NCwxNyBAQCB2YXJvYmpfZ2V0 X2Rpc3BsYXlfaGludCAoc3RydWN0IHZhcm9iaiAqdmFyKQotICAgcmV0dXJuIHJlc3VsdDsKLSB9 Ci0gCi0rLyogUmV0dXJuIHRydWUgaWYgdGhlIHZhcm9iaiBoYXMgaXRlbXMgYWZ0ZXIgVE8sIGZh bHNlIG90aGVyd2lzZS4gICovCi0rCi0raW50Ci0rdmFyb2JqX2hhc19tb3JlIChzdHJ1Y3QgdmFy b2JqICp2YXIsIGludCB0bykKLSt7Ci0rICBpZiAoVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+ Y2hpbGRyZW4pID4gdG8pCi0rICAgIHJldHVybiAxOwotKyAgcmV0dXJuICgodG8gPT0gLTEgfHwg VkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pID09IHRvKQotKwkgICYmIHZhci0+ c2F2ZWRfaXRlbSAhPSBOVUxMKTsKLSt9Ci0rCi0gLyogSWYgdGhlIHZhcmlhYmxlIG9iamVjdCBp cyBib3VuZCB0byBhIHNwZWNpZmljIHRocmVhZCwgdGhhdAotICAgIGlzIGl0cyBldmFsdWF0aW9u IGNhbiBhbHdheXMgYmUgZG9uZSBpbiBjb250ZXh0IG9mIGEgZnJhbWUKLSAgICBpbnNpZGUgdGhh dCB0aHJlYWQsIHJldHVybnMgR0RCIGlkIG9mIHRoZSB0aHJlYWQgLS0gd2hpY2gKLUBAIC04NDIs MjIgKzg4Nyw5NCBAQCB2YXJvYmpfZ2V0X2Zyb3plbiAoc3RydWN0IHZhcm9iaiAqdmFyKQotICAg cmV0dXJuIHZhci0+ZnJvemVuOwotIH0KLSAKLSsvKiBBIGhlbHBlciBmdW5jdGlvbiB0aGF0IHJl c3RyaWN0cyBhIHJhbmdlIHRvIHdoYXQgaXMgYWN0dWFsbHkKLSsgICBhdmFpbGFibGUgaW4gYSBW RUMuICBUaGlzIGZvbGxvd3MgdGhlIHVzdWFsIHJ1bGVzIGZvciB0aGUgbWVhbmluZwotKyAgIG9m IEZST00gYW5kIFRPIC0tIGlmIGVpdGhlciBpcyBuZWdhdGl2ZSwgdGhlIGVudGlyZSByYW5nZSBp cwotKyAgIHVzZWQuICAqLwotKwotK3N0YXRpYyB2b2lkCi0rcmVzdHJpY3RfcmFuZ2UgKFZFQyAo dmFyb2JqX3ApICpjaGlsZHJlbiwgaW50ICpmcm9tLCBpbnQgKnRvKQotK3sKLSsgIGlmICgqZnJv bSA8IDAgfHwgKnRvIDwgMCkKLSsgICAgewotKyAgICAgICpmcm9tID0gMDsKLSsgICAgICAqdG8g PSBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pOwotKyAgICB9Ci0rICBlbHNlCi0rICAg IHsKLSsgICAgICBpZiAoKmZyb20gPiBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pKQot KwkqZnJvbSA9IFZFQ19sZW5ndGggKHZhcm9ial9wLCBjaGlsZHJlbik7Ci0rICAgICAgaWYgKCp0 byA+IFZFQ19sZW5ndGggKHZhcm9ial9wLCBjaGlsZHJlbikpCi0rCSp0byA9IFZFQ19sZW5ndGgg KHZhcm9ial9wLCBjaGlsZHJlbik7Ci0rICAgICAgaWYgKCpmcm9tID4gKnRvKQotKwkqZnJvbSA9 ICp0bzsKLSsgICAgfQotK30KLSsKLSsvKiBBIGhlbHBlciBmb3IgdXBkYXRlX2R5bmFtaWNfdmFy b2JqX2NoaWxkcmVuIHRoYXQgaW5zdGFsbHMgYSBuZXcKLSsgICBjaGlsZCB3aGVuIG5lZWRlZC4g ICovCi0rCi0rc3RhdGljIHZvaWQKLStpbnN0YWxsX2R5bmFtaWNfY2hpbGQgKHN0cnVjdCB2YXJv YmogKnZhciwKLSsJCSAgICAgICBWRUMgKHZhcm9ial9wKSAqKmNoYW5nZWQsCi0rCQkgICAgICAg VkVDICh2YXJvYmpfcCkgKipuZXcsCi0rCQkgICAgICAgVkVDICh2YXJvYmpfcCkgKip1bmNoYW5n ZWQsCi0rCQkgICAgICAgaW50ICpjY2hhbmdlZCwKLSsJCSAgICAgICBpbnQgaW5kZXgsCi0rCQkg ICAgICAgY29uc3QgY2hhciAqbmFtZSwKLSsJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlKQot K3sKLSsgIGlmIChWRUNfbGVuZ3RoICh2YXJvYmpfcCwgdmFyLT5jaGlsZHJlbikgPCBpbmRleCAr IDEpCi0rICAgIHsKLSsgICAgICAvKiBUaGVyZSdzIG5vIGNoaWxkIHlldC4gICovCi0rICAgICAg c3RydWN0IHZhcm9iaiAqY2hpbGQgPSB2YXJvYmpfYWRkX2NoaWxkICh2YXIsIG5hbWUsIHZhbHVl KTsKLSsgICAgICBpZiAobmV3KQotKwlWRUNfc2FmZV9wdXNoICh2YXJvYmpfcCwgKm5ldywgY2hp bGQpOwotKyAgICAgICpjY2hhbmdlZCA9IDE7Ci0rICAgIH0KLSsgIGVsc2UgCi0rICAgIHsKLSsg ICAgICB2YXJvYmpfcCBleGlzdGluZyA9IFZFQ19pbmRleCAodmFyb2JqX3AsIHZhci0+Y2hpbGRy ZW4sIGluZGV4KTsKLSsgICAgICBpZiAoaW5zdGFsbF9uZXdfdmFsdWUgKGV4aXN0aW5nLCB2YWx1 ZSwgMCkpCi0rCXsKLSsJICBpZiAoY2hhbmdlZCkKLSsJICAgIFZFQ19zYWZlX3B1c2ggKHZhcm9i al9wLCAqY2hhbmdlZCwgZXhpc3RpbmcpOwotKwl9Ci0rICAgICAgZWxzZSBpZiAodW5jaGFuZ2Vk KQotKwlWRUNfc2FmZV9wdXNoICh2YXJvYmpfcCwgKnVuY2hhbmdlZCwgZXhpc3RpbmcpOwotKyAg ICB9Ci0rfQotKwotKyNpZiBIQVZFX1BZVEhPTgotKwotK3N0YXRpYyBpbnQKLStkeW5hbWljX3Zh cm9ial9oYXNfY2hpbGRfbWV0aG9kIChzdHJ1Y3QgdmFyb2JqICp2YXIpCi0rewotKyAgc3RydWN0 IGNsZWFudXAgKmJhY2tfdG87Ci0rICBQeU9iamVjdCAqcHJpbnRlciA9IHZhci0+cHJldHR5X3By aW50ZXI7Ci0rICBpbnQgcmVzdWx0OwotKwotKyAgYmFja190byA9IHZhcm9ial9lbnN1cmVfcHl0 aG9uX2VudiAodmFyKTsKLSsgIHJlc3VsdCA9IFB5T2JqZWN0X0hhc0F0dHIgKHByaW50ZXIsIGdk YnB5X2NoaWxkcmVuX2NzdCk7Ci0rICBkb19jbGVhbnVwcyAoYmFja190byk7Ci0rICByZXR1cm4g cmVzdWx0OwotK30KLSsKLSsjZW5kaWYKLSsKLSBzdGF0aWMgaW50Ci0gdXBkYXRlX2R5bmFtaWNf dmFyb2JqX2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIsCi0gCQkJCVZFQyAodmFyb2JqX3Ap ICoqY2hhbmdlZCwKLS0JCQkJVkVDICh2YXJvYmpfcCkgKipuZXdfYW5kX3VuY2hhbmdlZCwKLS0J CQkJaW50ICpjY2hhbmdlZCkKLS0KLSsJCQkJVkVDICh2YXJvYmpfcCkgKipuZXcsCi0rCQkJCVZF QyAodmFyb2JqX3ApICoqdW5jaGFuZ2VkLAotKwkJCQlpbnQgKmNjaGFuZ2VkLAotKwkJCQlpbnQg dXBkYXRlX2NoaWxkcmVuLAotKwkJCQlpbnQgdG8pCi0gewotICNpZiBIQVZFX1BZVEhPTgotLSAg LyogRklYTUU6IHdlICptaWdodCogd2FudCB0byBwcm92aWRlIHRoaXMgZnVuY3Rpb25hbGl0eSBh cwotLSAgICAgYSBzdGFuZGFsb25lIGZ1bmN0aW9uLCBzbyB0aGF0IG90aGVyIGludGVyZXN0ZWQg cGFydGllcwotLSAgICAgdGhhbiB2YXJvYmogY29kZSBjYW4gYmVuZWZpdCBmb3IgdGhpcy4gICov Ci0gICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKLSAgIFB5T2JqZWN0ICpjaGlsZHJlbjsKLS0g IFB5T2JqZWN0ICppdGVyYXRvcjsKLSAgIGludCBpOwotLSAgaW50IGNoaWxkcmVuX2NoYW5nZWQg PSAwOwotICAgUHlPYmplY3QgKnByaW50ZXIgPSB2YXItPnByZXR0eV9wcmludGVyOwotIAotICAg YmFja190byA9IHZhcm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKLUBAIC04NjksODcgKzk4 NiwxMDMgQEAgdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2 YXIsCi0gICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAKLS0gIGNoaWxkcmVuID0gUHlPYmplY3Rf Q2FsbE1ldGhvZE9iakFyZ3MgKHByaW50ZXIsIGdkYnB5X2NoaWxkcmVuX2NzdCwKLS0JCQkJCSBO VUxMKTsKLS0KLS0gIGlmICghY2hpbGRyZW4pCi0rICBpZiAodXBkYXRlX2NoaWxkcmVuIHx8ICF2 YXItPmNoaWxkX2l0ZXIpCi0gICAgIHsKLS0gICAgICBnZGJweV9wcmludF9zdGFjayAoKTsKLS0g ICAgICBlcnJvciAoXygiTnVsbCB2YWx1ZSByZXR1cm5lZCBmb3IgY2hpbGRyZW4iKSk7Ci0tICAg IH0KLSsgICAgICBjaGlsZHJlbiA9IFB5T2JqZWN0X0NhbGxNZXRob2RPYmpBcmdzIChwcmludGVy LCBnZGJweV9jaGlsZHJlbl9jc3QsCi0rCQkJCQkgICAgIE5VTEwpOwotKwotKyAgICAgIGlmICgh Y2hpbGRyZW4pCi0rCXsKLSsJICBnZGJweV9wcmludF9zdGFjayAoKTsKLSsJICBlcnJvciAoXygi TnVsbCB2YWx1ZSByZXR1cm5lZCBmb3IgY2hpbGRyZW4iKSk7Ci0rCX0KLSAKLS0gIG1ha2VfY2xl YW51cF9weV9kZWNyZWYgKGNoaWxkcmVuKTsKLSsgICAgICBtYWtlX2NsZWFudXBfcHlfZGVjcmVm IChjaGlsZHJlbik7Ci0gCi0tICBpZiAoIVB5SXRlcl9DaGVjayAoY2hpbGRyZW4pKQotLSAgICBl cnJvciAoXygiUmV0dXJuZWQgdmFsdWUgaXMgbm90IGl0ZXJhYmxlIikpOwotKyAgICAgIGlmICgh UHlJdGVyX0NoZWNrIChjaGlsZHJlbikpCi0rCWVycm9yIChfKCJSZXR1cm5lZCB2YWx1ZSBpcyBu b3QgaXRlcmFibGUiKSk7Ci0gCi0tICBpdGVyYXRvciA9IFB5T2JqZWN0X0dldEl0ZXIgKGNoaWxk cmVuKTsKLS0gIGlmICghaXRlcmF0b3IpCi0tICAgIHsKLS0gICAgICBnZGJweV9wcmludF9zdGFj ayAoKTsKLS0gICAgICBlcnJvciAoXygiQ291bGQgbm90IGdldCBjaGlsZHJlbiBpdGVyYXRvciIp KTsKLSsgICAgICBQeV9YREVDUkVGICh2YXItPmNoaWxkX2l0ZXIpOwotKyAgICAgIHZhci0+Y2hp bGRfaXRlciA9IFB5T2JqZWN0X0dldEl0ZXIgKGNoaWxkcmVuKTsKLSsgICAgICBpZiAoIXZhci0+ Y2hpbGRfaXRlcikKLSsJewotKwkgIGdkYnB5X3ByaW50X3N0YWNrICgpOwotKwkgIGVycm9yIChf KCJDb3VsZCBub3QgZ2V0IGNoaWxkcmVuIGl0ZXJhdG9yIikpOwotKwl9Ci0rCi0rICAgICAgUHlf WERFQ1JFRiAodmFyLT5zYXZlZF9pdGVtKTsKLSsgICAgICB2YXItPnNhdmVkX2l0ZW0gPSBOVUxM OwotKwotKyAgICAgIGkgPSAwOwotICAgICB9Ci0tICBtYWtlX2NsZWFudXBfcHlfZGVjcmVmIChp dGVyYXRvcik7Ci0rICBlbHNlCi0rICAgIGkgPSBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgdmFyLT5j aGlsZHJlbik7Ci0gCi0tICBmb3IgKGkgPSAwOyA7ICsraSkKLSsgIC8qIFdlIGFzayBmb3Igb25l IGV4dHJhIGNoaWxkLCBzbyB0aGF0IE1JIGNhbiByZXBvcnQgd2hldGhlciB0aGVyZQotKyAgICAg YXJlIG1vcmUgY2hpbGRyZW4uICAqLwotKyAgZm9yICg7IHRvIDwgMCB8fCBpIDwgdG8gKyAxOyAr K2kpCi0gICAgIHsKLS0gICAgICBQeU9iamVjdCAqaXRlbSA9IFB5SXRlcl9OZXh0IChpdGVyYXRv cik7Ci0tICAgICAgUHlPYmplY3QgKnB5X3Y7Ci0tICAgICAgc3RydWN0IHZhbHVlICp2OwotLSAg ICAgIGNoYXIgKm5hbWU7Ci0tICAgICAgc3RydWN0IGNsZWFudXAgKmlubmVyOwotLSAgICAgIAot KyAgICAgIFB5T2JqZWN0ICppdGVtOwotKwotKyAgICAgIC8qIFNlZSBpZiB0aGVyZSB3YXMgYSBs ZWZ0b3ZlciBmcm9tIGxhc3QgdGltZS4gICovCi0rICAgICAgaWYgKHZhci0+c2F2ZWRfaXRlbSkK LSsJewotKwkgIGl0ZW0gPSB2YXItPnNhdmVkX2l0ZW07Ci0rCSAgdmFyLT5zYXZlZF9pdGVtID0g TlVMTDsKLSsJfQotKyAgICAgIGVsc2UKLSsJaXRlbSA9IFB5SXRlcl9OZXh0ICh2YXItPmNoaWxk X2l0ZXIpOwotKwotICAgICAgIGlmICghaXRlbSkKLSAJYnJlYWs7Ci0tICAgICAgaW5uZXIgPSBt YWtlX2NsZWFudXBfcHlfZGVjcmVmIChpdGVtKTsKLSAKLS0gICAgICBpZiAoIVB5QXJnX1BhcnNl VHVwbGUgKGl0ZW0sICJzTyIsICZuYW1lLCAmcHlfdikpCi0tCWVycm9yIChfKCJJbnZhbGlkIGl0 ZW0gZnJvbSB0aGUgY2hpbGQgbGlzdCIpKTsKLS0gICAgICAKLS0gICAgICB2ID0gY29udmVydF92 YWx1ZV9mcm9tX3B5dGhvbiAocHlfdik7Ci0rICAgICAgLyogV2UgZG9uJ3Qgd2FudCB0byBwdXNo IHRoZSBleHRyYSBjaGlsZCBvbiBhbnkgcmVwb3J0IGxpc3QuICAqLwotKyAgICAgIGlmICh0byA8 IDAgfHwgaSA8IHRvKQotKwl7Ci0rCSAgUHlPYmplY3QgKnB5X3Y7Ci0rCSAgY2hhciAqbmFtZTsK LSsJICBzdHJ1Y3QgdmFsdWUgKnY7Ci0rCSAgc3RydWN0IGNsZWFudXAgKmlubmVyOwotIAotLSAg ICAgIC8qIFRPRE86IFRoaXMgYXNzdW1lIHRoZSBuYW1lIG9mIHRoZSBpLXRoIGNoaWxkIG5ldmVy IGNoYW5nZXMuICAqLwotKwkgIGlubmVyID0gbWFrZV9jbGVhbnVwX3B5X2RlY3JlZiAoaXRlbSk7 Ci0gCi0tICAgICAgLyogTm93IHNlZSB3aGF0IHRvIGRvIGhlcmUuICAqLwotLSAgICAgIGlmIChW RUNfbGVuZ3RoICh2YXJvYmpfcCwgdmFyLT5jaGlsZHJlbikgPCBpICsgMSkKLS0JewotLQkgIC8q IFRoZXJlJ3Mgbm8gY2hpbGQgeWV0LiAgKi8KLS0JICBzdHJ1Y3QgdmFyb2JqICpjaGlsZCA9IHZh cm9ial9hZGRfY2hpbGQgKHZhciwgbmFtZSwgdik7Ci0tCSAgaWYgKG5ld19hbmRfdW5jaGFuZ2Vk KQotLQkgICAgVkVDX3NhZmVfcHVzaCAodmFyb2JqX3AsICpuZXdfYW5kX3VuY2hhbmdlZCwgY2hp bGQpOwotLQkgIGNoaWxkcmVuX2NoYW5nZWQgPSAxOwotKwkgIGlmICghUHlBcmdfUGFyc2VUdXBs ZSAoaXRlbSwgInNPIiwgJm5hbWUsICZweV92KSkKLSsJICAgIGVycm9yIChfKCJJbnZhbGlkIGl0 ZW0gZnJvbSB0aGUgY2hpbGQgbGlzdCIpKTsKLSsKLSsJICB2ID0gY29udmVydF92YWx1ZV9mcm9t X3B5dGhvbiAocHlfdik7Ci0rCSAgaW5zdGFsbF9keW5hbWljX2NoaWxkICh2YXIsIGNoYW5nZWQs IG5ldywgdW5jaGFuZ2VkLAotKwkJCQkgY2NoYW5nZWQsIGksIG5hbWUsIHYpOwotKwkgIGRvX2Ns ZWFudXBzIChpbm5lcik7Ci0gCX0KLS0gICAgICBlbHNlIAotKyAgICAgIGVsc2UKLSAJewotLQkg IHZhcm9ial9wIGV4aXN0aW5nID0gVkVDX2luZGV4ICh2YXJvYmpfcCwgdmFyLT5jaGlsZHJlbiwg aSk7Ci0tCSAgaWYgKGluc3RhbGxfbmV3X3ZhbHVlIChleGlzdGluZywgdiwgMCkgJiYgY2hhbmdl ZCkKLS0JICAgIHsKLS0JICAgICAgaWYgKGNoYW5nZWQpCi0tCQlWRUNfc2FmZV9wdXNoICh2YXJv YmpfcCwgKmNoYW5nZWQsIGV4aXN0aW5nKTsKLS0JICAgIH0KLS0JICBlbHNlCi0tCSAgICB7Ci0t CSAgICAgIGlmIChuZXdfYW5kX3VuY2hhbmdlZCkKLS0JCVZFQ19zYWZlX3B1c2ggKHZhcm9ial9w LCAqbmV3X2FuZF91bmNoYW5nZWQsIGV4aXN0aW5nKTsKLS0JICAgIH0KLS0JfQotKwkgIFB5X1hE RUNSRUYgKHZhci0+c2F2ZWRfaXRlbSk7Ci0rCSAgdmFyLT5zYXZlZF9pdGVtID0gaXRlbTsKLSAK LS0gICAgICBkb19jbGVhbnVwcyAoaW5uZXIpOwotKwkgIC8qIFdlIHdhbnQgdG8gdHJ1bmNhdGUg dGhlIGNoaWxkIGxpc3QganVzdCBiZWZvcmUgdGhpcwotKwkgICAgIGVsZW1lbnQuICAqLwotKwkg IGJyZWFrOwotKwl9Ci0gICAgIH0KLSAKLSAgIGlmIChpIDwgVkVDX2xlbmd0aCAodmFyb2JqX3As IHZhci0+Y2hpbGRyZW4pKQotICAgICB7Ci0tICAgICAgaW50IGk7Ci0tICAgICAgY2hpbGRyZW5f Y2hhbmdlZCA9IDE7Ci0tICAgICAgZm9yIChpID0gMDsgaSA8IFZFQ19sZW5ndGggKHZhcm9ial9w LCB2YXItPmNoaWxkcmVuKTsgKytpKQotLQl2YXJvYmpfZGVsZXRlIChWRUNfaW5kZXggKHZhcm9i al9wLCB2YXItPmNoaWxkcmVuLCBpKSwgTlVMTCwgMCk7Ci0rICAgICAgaW50IGo7Ci0rICAgICAg KmNjaGFuZ2VkID0gMTsKLSsgICAgICBmb3IgKGogPSBpOyBqIDwgVkVDX2xlbmd0aCAodmFyb2Jq X3AsIHZhci0+Y2hpbGRyZW4pOyArK2opCi0rCXZhcm9ial9kZWxldGUgKFZFQ19pbmRleCAodmFy b2JqX3AsIHZhci0+Y2hpbGRyZW4sIGopLCBOVUxMLCAwKTsKLSsgICAgICBWRUNfdHJ1bmNhdGUg KHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCBpKTsKLSAgICAgfQotLSAgVkVDX3RydW5jYXRlICh2 YXJvYmpfcCwgdmFyLT5jaGlsZHJlbiwgaSk7Ci0rCi0rICAvKiBJZiB0aGVyZSBhcmUgZmV3ZXIg Y2hpbGRyZW4gdGhhbiByZXF1ZXN0ZWQsIG5vdGUgdGhhdCB0aGUgbGlzdCBvZgotKyAgICAgY2hp bGRyZW4gY2hhbmdlZC4gICovCi0rICBpZiAodG8gPj0gMCAmJiBWRUNfbGVuZ3RoICh2YXJvYmpf cCwgdmFyLT5jaGlsZHJlbikgPCB0bykKLSsgICAgKmNjaGFuZ2VkID0gMTsKLSsKLSAgIHZhci0+ bnVtX2NoaWxkcmVuID0gVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pOwotICAK LSAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKLSAKLS0gICpjY2hhbmdlZCA9IGNoaWxkcmVuX2No YW5nZWQ7Ci0gICByZXR1cm4gMTsKLSAjZWxzZQotICAgZ2RiX2Fzc2VydCAoMCAmJiAic2hvdWxk IG5ldmVyIGJlIGNhbGxlZCBpZiBQeXRob24gaXMgbm90IGVuYWJsZWQiKTsKLUBAIC05NjEsMjAg KzEwOTQsMjYgQEAgdmFyb2JqX2dldF9udW1fY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikK LSB7Ci0gICBpZiAodmFyLT5udW1fY2hpbGRyZW4gPT0gLTEpCi0gICAgIHsKLS0gICAgICBpbnQg Y2hhbmdlZDsKLS0gICAgICBpZiAoIXZhci0+cHJldHR5X3ByaW50ZXIKLS0JICB8fCAhdXBkYXRl X2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2YXIsIE5VTEwsIE5VTEwsICZjaGFuZ2VkKSkKLSsg ICAgICBpZiAodmFyLT5wcmV0dHlfcHJpbnRlcikKLSsJewotKwkgIGludCBkdW1teTsKLSsKLSsJ ICAvKiBJZiB3ZSBoYXZlIGEgZHluYW1pYyB2YXJvYmosIGRvbid0IHJlcG9ydCAtMSBjaGlsZHJl bi4KLSsJICAgICBTbywgdHJ5IHRvIGZldGNoIHNvbWUgY2hpbGRyZW4gZmlyc3QuICAqLwotKwkg IHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCBOVUxMLCAm ZHVtbXksIDAsIDApOwotKwl9Ci0rICAgICAgZWxzZQotIAl2YXItPm51bV9jaGlsZHJlbiA9IG51 bWJlcl9vZl9jaGlsZHJlbiAodmFyKTsKLSAgICAgfQotIAotLSAgcmV0dXJuIHZhci0+bnVtX2No aWxkcmVuOwotKyAgcmV0dXJuIHZhci0+bnVtX2NoaWxkcmVuID49IDAgPyB2YXItPm51bV9jaGls ZHJlbiA6IDA7Ci0gfQotIAotIC8qIENyZWF0ZXMgYSBsaXN0IG9mIHRoZSBpbW1lZGlhdGUgY2hp bGRyZW4gb2YgYSB2YXJpYWJsZSBvYmplY3Q7Ci0gICAgdGhlIHJldHVybiBjb2RlIGlzIHRoZSBu dW1iZXIgb2Ygc3VjaCBjaGlsZHJlbiBvciAtMSBvbiBlcnJvciAqLwotIAotIFZFQyAodmFyb2Jq X3ApKgotLXZhcm9ial9saXN0X2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIpCi0rdmFyb2Jq X2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhciwgaW50ICpmcm9tLCBpbnQgKnRvKQot IHsKLSAgIHN0cnVjdCB2YXJvYmogKmNoaWxkOwotICAgY2hhciAqbmFtZTsKLUBAIC05ODIsMTIg KzExMjEsMTYgQEAgdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKLSAK LSAgIHZhci0+Y2hpbGRyZW5fcmVxdWVzdGVkID0gMTsKLSAKLS0gIGlmICh2YXItPnByZXR0eV9w cmludGVyCi0rICBpZiAodmFyLT5wcmV0dHlfcHJpbnRlcikKLSsgICAgewotICAgICAgIC8qIFRo aXMsIGluIHRoZW9yeSwgY2FuIHJlc3VsdCBpbiB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIGNoYW5n aW5nIHdpdGhvdXQKLSAJIGZyb250ZW5kIG5vdGljaW5nLiAgQnV0IHdlbGwsIGNhbGxpbmcgLXZh ci1saXN0LWNoaWxkcmVuIG9uIHRoZSBzYW1lCi0gCSB2YXJvYmogdHdpY2UgaXMgbm90IHNvbWV0 aGluZyBhIHNhbmUgZnJvbnRlbmQgd291bGQgZG8uICAqLwotLSAgICAgICYmIHVwZGF0ZV9keW5h bWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCAmY2hpbGRyZW5fY2hhbmdlZCkp Ci0tICAgIHJldHVybiB2YXItPmNoaWxkcmVuOwotKyAgICAgIHVwZGF0ZV9keW5hbWljX3Zhcm9i al9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCBOVUxMLCAmY2hpbGRyZW5fY2hhbmdlZCwKLSsJ CQkJICAgICAgMCwgKnRvKTsKLSsgICAgICByZXN0cmljdF9yYW5nZSAodmFyLT5jaGlsZHJlbiwg ZnJvbSwgdG8pOwotKyAgICAgIHJldHVybiB2YXItPmNoaWxkcmVuOwotKyAgICB9Ci0gCi0gICBp ZiAodmFyLT5udW1fY2hpbGRyZW4gPT0gLTEpCi0gICAgIHZhci0+bnVtX2NoaWxkcmVuID0gbnVt YmVyX29mX2NoaWxkcmVuICh2YXIpOwotQEAgLTEwMTMsMTAgKzExNTYsMTAgQEAgdmFyb2JqX2xp c3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKLSAJICBuYW1lID0gbmFtZV9vZl9jaGls ZCAodmFyLCBpKTsKLSAJICBleGlzdGluZyA9IGNyZWF0ZV9jaGlsZCAodmFyLCBpLCBuYW1lKTsK LSAJICBWRUNfcmVwbGFjZSAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4sIGksIGV4aXN0aW5nKTsK LS0JICBpbnN0YWxsX2RlZmF1bHRfdmlzdWFsaXplciAoZXhpc3RpbmcpOwotIAl9Ci0gICAgIH0K LSAKLSsgIHJlc3RyaWN0X3JhbmdlICh2YXItPmNoaWxkcmVuLCBmcm9tLCB0byk7Ci0gICByZXR1 cm4gdmFyLT5jaGlsZHJlbjsKLSB9Ci0gCi1AQCAtMTAyNyw3ICsxMTcwLDYgQEAgdmFyb2JqX2Fk ZF9jaGlsZCAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFs dWUgKnZhbHVlKQotIAkJCQkJVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pLCAK LSAJCQkJCW5hbWUsIHZhbHVlKTsKLSAgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial9wLCB2YXItPmNo aWxkcmVuLCB2KTsKLS0gIGluc3RhbGxfZGVmYXVsdF92aXN1YWxpemVyICh2KTsKLSAgIHJldHVy biB2OwotIH0KLSAKLUBAIC0xMDg5LDYgKzEyMzEsMTIgQEAgdmFyb2JqX2dldF9hdHRyaWJ1dGVz IChzdHJ1Y3QgdmFyb2JqICp2YXIpCi0gICByZXR1cm4gYXR0cmlidXRlczsKLSB9Ci0gCi0raW50 Ci0rdmFyb2JqX3ByZXR0eV9wcmludGVkX3AgKHN0cnVjdCB2YXJvYmogKnZhcikKLSt7Ci0rICBy ZXR1cm4gdmFyLT5wcmV0dHlfcHJpbnRlciAhPSBOVUxMOwotK30KLSsKLSBjaGFyICoKLSB2YXJv YmpfZ2V0X2Zvcm1hdHRlZF92YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLAotIAkJCSAgICBlbnVt IHZhcm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0KQotQEAgLTExNjYsNiArMTMxNCwxMTYgQEAg dmFyb2JqX3NldF92YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBjaGFyICpleHByZXNzaW9uKQot ICAgcmV0dXJuIDE7Ci0gfQotIAotKyNpZiBIQVZFX1BZVEhPTgotKwotKy8qIEEgaGVscGVyIGZ1 bmN0aW9uIHRvIGluc3RhbGwgYSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBhbmQgdmlzdWFsaXplcgot KyAgIGluIGEgdmFyb2JqLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2luc3RhbGxfdmlzdWFsaXpl ciAoc3RydWN0IHZhcm9iaiAqdmFyLCBQeU9iamVjdCAqY29uc3RydWN0b3IsCi0rCQkgICAgUHlP YmplY3QgKnZpc3VhbGl6ZXIpCi0rewotKyAgUHlfWERFQ1JFRiAodmFyLT5jb25zdHJ1Y3Rvcik7 Ci0rICB2YXItPmNvbnN0cnVjdG9yID0gY29uc3RydWN0b3I7Ci0rCi0rICBQeV9YREVDUkVGICh2 YXItPnByZXR0eV9wcmludGVyKTsKLSsgIHZhci0+cHJldHR5X3ByaW50ZXIgPSB2aXN1YWxpemVy OwotKwotKyAgUHlfWERFQ1JFRiAodmFyLT5jaGlsZF9pdGVyKTsKLSsgIHZhci0+Y2hpbGRfaXRl ciA9IE5VTEw7Ci0rfQotKwotKy8qIEluc3RhbGwgdGhlIGRlZmF1bHQgdmlzdWFsaXplciBmb3Ig VkFSLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2luc3RhbGxfZGVmYXVsdF92aXN1YWxpemVyIChz dHJ1Y3QgdmFyb2JqICp2YXIpCi0rewotKyAgaWYgKHByZXR0eV9wcmludGluZykKLSsgICAgewot KyAgICAgIFB5T2JqZWN0ICpwcmV0dHlfcHJpbnRlciA9IE5VTEw7Ci0rCi0rICAgICAgaWYgKHZh ci0+dmFsdWUpCi0rCXsKLSsJICBwcmV0dHlfcHJpbnRlciA9IGdkYnB5X2dldF92YXJvYmpfcHJl dHR5X3ByaW50ZXIgKHZhci0+dmFsdWUpOwotKwkgIGlmICghIHByZXR0eV9wcmludGVyKQotKwkg ICAgewotKwkgICAgICBnZGJweV9wcmludF9zdGFjayAoKTsKLSsJICAgICAgZXJyb3IgKF8oIkNh bm5vdCBpbnN0YW50aWF0ZSBwcmludGVyIGZvciBkZWZhdWx0IHZpc3VhbGl6ZXIiKSk7Ci0rCSAg ICB9Ci0rCX0KLSsgICAgICAKLSsgICAgICBpZiAocHJldHR5X3ByaW50ZXIgPT0gUHlfTm9uZSkK LSsJewotKwkgIFB5X0RFQ1JFRiAocHJldHR5X3ByaW50ZXIpOwotKwkgIHByZXR0eV9wcmludGVy ID0gTlVMTDsKLSsJfQotKyAgCi0rICAgICAgaW5zdGFsbF92aXN1YWxpemVyICh2YXIsIE5VTEws IHByZXR0eV9wcmludGVyKTsKLSsgICAgfQotK30KLSsKLSsvKiBJbnN0YW50aWF0ZSBhbmQgaW5z dGFsbCBhIHZpc3VhbGl6ZXIgZm9yIFZBUiB1c2luZyBDT05TVFJVQ1RPUiB0bwotKyAgIG1ha2Ug YSBuZXcgb2JqZWN0LiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2NvbnN0cnVjdF92aXN1YWxpemVy IChzdHJ1Y3QgdmFyb2JqICp2YXIsIFB5T2JqZWN0ICpjb25zdHJ1Y3RvcikKLSt7Ci0rICBQeU9i amVjdCAqcHJldHR5X3ByaW50ZXI7Ci0rCi0rICBQeV9JTkNSRUYgKGNvbnN0cnVjdG9yKTsKLSsg IGlmIChjb25zdHJ1Y3RvciA9PSBQeV9Ob25lKQotKyAgICBwcmV0dHlfcHJpbnRlciA9IE5VTEw7 Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBwcmV0dHlfcHJpbnRlciA9IGluc3RhbnRpYXRlX3By ZXR0eV9wcmludGVyIChjb25zdHJ1Y3RvciwgdmFyLT52YWx1ZSk7Ci0rICAgICAgaWYgKCEgcHJl dHR5X3ByaW50ZXIpCi0rCXsKLSsJICBnZGJweV9wcmludF9zdGFjayAoKTsKLSsJICBQeV9ERUNS RUYgKGNvbnN0cnVjdG9yKTsKLSsJICBjb25zdHJ1Y3RvciA9IFB5X05vbmU7Ci0rCSAgUHlfSU5D UkVGIChjb25zdHJ1Y3Rvcik7Ci0rCX0KLSsKLSsgICAgICBpZiAocHJldHR5X3ByaW50ZXIgPT0g UHlfTm9uZSkKLSsJewotKwkgIFB5X0RFQ1JFRiAocHJldHR5X3ByaW50ZXIpOwotKwkgIHByZXR0 eV9wcmludGVyID0gTlVMTDsKLSsJfQotKyAgICB9Ci0rCi0rICBpbnN0YWxsX3Zpc3VhbGl6ZXIg KHZhciwgY29uc3RydWN0b3IsIHByZXR0eV9wcmludGVyKTsKLSt9Ci0rCi0rI2VuZGlmIC8qIEhB VkVfUFlUSE9OICovCi0rCi0rLyogQSBoZWxwZXIgZnVuY3Rpb24gZm9yIGluc3RhbGxfbmV3X3Zh bHVlLiAgVGhpcyBjcmVhdGVzIGFuZCBpbnN0YWxscwotKyAgIGEgdmlzdWFsaXplciBmb3IgVkFS LCBpZiBhcHByb3ByaWF0ZS4gICovCi0rCi0rc3RhdGljIHZvaWQKLStpbnN0YWxsX25ld192YWx1 ZV92aXN1YWxpemVyIChzdHJ1Y3QgdmFyb2JqICp2YXIpCi0rewotKyNpZiBIQVZFX1BZVEhPTgot KyAgLyogSWYgdGhlIGNvbnN0cnVjdG9yIGlzIE5vbmUsIHRoZW4gd2Ugd2FudCB0aGUgcmF3IHZh bHVlLiAgSWYgVkFSCi0rICAgICBkb2VzIG5vdCBoYXZlIGEgdmFsdWUsIGp1c3Qgc2tpcCB0aGlz LiAgKi8KLSsgIGlmICh2YXItPmNvbnN0cnVjdG9yICE9IFB5X05vbmUgJiYgdmFyLT52YWx1ZSkK LSsgICAgewotKyAgICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwotKyAgICAgIFB5T2JqZWN0 ICpwcmV0dHlfcHJpbnRlciA9IE5VTEw7Ci0rCi0rICAgICAgY2xlYW51cCA9IHZhcm9ial9lbnN1 cmVfcHl0aG9uX2VudiAodmFyKTsKLSsKLSsgICAgICBpZiAoIXZhci0+Y29uc3RydWN0b3IpCi0r CWluc3RhbGxfZGVmYXVsdF92aXN1YWxpemVyICh2YXIpOwotKyAgICAgIGVsc2UKLSsJY29uc3Ry dWN0X3Zpc3VhbGl6ZXIgKHZhciwgdmFyLT5jb25zdHJ1Y3Rvcik7Ci0rCi0rICAgICAgZG9fY2xl YW51cHMgKGNsZWFudXApOwotKyAgICB9Ci0rI2Vsc2UKLSsgIC8qIERvIG5vdGhpbmcuICAqLwot KyNlbmRpZgotK30KLSsKLSAvKiBBc3NpZ24gYSBuZXcgdmFsdWUgdG8gYSB2YXJpYWJsZSBvYmpl Y3QuICBJZiBJTklUSUFMIGlzIG5vbi16ZXJvLAotICAgIHRoaXMgaXMgdGhlIGZpcnN0IGFzc2ln bmVtZW50IGFmdGVyIHRoZSB2YXJpYWJsZSBvYmplY3Qgd2FzIGp1c3QKLSAgICBjcmVhdGVkLCBv ciBjaGFuZ2VkIHR5cGUuICBJbiB0aGF0IGNhc2UsIGp1c3QgYXNzaWduIHRoZSB2YWx1ZSAKLUBA IC0xMjA2LDEwICsxNDY0LDcgQEAgaW5zdGFsbF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZh ciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGluaXRpYWwpCi0gICAgICB0aGF0IGluIEMrKyBh IHJlZmVyZW5jZSBpcyBub3QgcmViaW5kYWJsZSwgaXQgY2Fubm90Ci0gICAgICBtZWFuaW5nZnVs bHkgY2hhbmdlLiAgU28sIGdldCBob2xkIG9mIHRoZSByZWFsIHZhbHVlLiAgKi8KLSAgIGlmICh2 YWx1ZSkKLS0gICAgewotLSAgICAgIHZhbHVlID0gY29lcmNlX3JlZiAodmFsdWUpOwotLSAgICAg IHJlbGVhc2VfdmFsdWUgKHZhbHVlKTsKLS0gICAgfQotKyAgICB2YWx1ZSA9IGNvZXJjZV9yZWYg KHZhbHVlKTsKLSAKLSAgIGlmICh2YXItPnR5cGUgJiYgVFlQRV9DT0RFICh2YXItPnR5cGUpID09 IFRZUEVfQ09ERV9VTklPTikKLSAgICAgLyogRm9yIHVuaW9ucywgd2UgbmVlZCB0byBmZXRjaCB0 aGUgdmFsdWUgaW1wbGljaXRseSBiZWNhdXNlCi1AQCAtMTI1Niw3ICsxNTExLDcgQEAgaW5zdGFs bF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50 IGluaXRpYWwpCi0gICAgICB2YWx1ZXMuICBEb24ndCBnZXQgc3RyaW5nIHJlbmRlcmluZyBpZiB0 aGUgdmFsdWUgaXMKLSAgICAgIGxhenkgLS0gaWYgaXQgaXMsIHRoZSBjb2RlIGFib3ZlIGhhcyBk ZWNpZGVkIHRoYXQgdGhlIHZhbHVlCi0gICAgICBzaG91bGQgbm90IGJlIGZldGNoZWQuICAqLwot LSAgaWYgKHZhbHVlICYmICF2YWx1ZV9sYXp5ICh2YWx1ZSkpCi0rICBpZiAodmFsdWUgJiYgIXZh bHVlX2xhenkgKHZhbHVlKSAmJiAhdmFyLT5wcmV0dHlfcHJpbnRlcikKLSAgICAgcHJpbnRfdmFs dWUgPSB2YWx1ZV9nZXRfcHJpbnRfdmFsdWUgKHZhbHVlLCB2YXItPmZvcm1hdCwgdmFyKTsKLSAK LSAgIC8qIElmIHRoZSB0eXBlIGlzIGNoYW5nZWFibGUsIGNvbXBhcmUgdGhlIG9sZCBhbmQgdGhl IG5ldyB2YWx1ZXMuCi1AQCAtMTI3Miw3ICsxNTI3LDcgQEAgaW5zdGFsbF9uZXdfdmFsdWUgKHN0 cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGluaXRpYWwpCi0gCXsK LSAJICBjaGFuZ2VkID0gMTsKLSAJfQotLSAgICAgIGVsc2UgCi0rICAgICAgZWxzZSBpZiAoISB2 YXItPnByZXR0eV9wcmludGVyKQotIAl7Ci0gCSAgLyogVHJ5IHRvIGNvbXBhcmUgdGhlIHZhbHVl cy4gIFRoYXQgcmVxdWlyZXMgdGhhdCBib3RoCi0gCSAgICAgdmFsdWVzIGFyZSBub24tbGF6eS4g ICovCi1AQCAtMTMxNyw3NCArMTU3Miw1MyBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZh cm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkKLSAgIGlmICh2YXIt PnZhbHVlICE9IE5VTEwgJiYgdmFyLT52YWx1ZSAhPSB2YWx1ZSkKLSAgICAgdmFsdWVfZnJlZSAo dmFyLT52YWx1ZSk7Ci0gICB2YXItPnZhbHVlID0gdmFsdWU7Ci0tICBpZiAodmFyLT5wcmludF92 YWx1ZSkKLS0gICAgeGZyZWUgKHZhci0+cHJpbnRfdmFsdWUpOwotLSAgdmFyLT5wcmludF92YWx1 ZSA9IHByaW50X3ZhbHVlOwotKyAgaWYgKHZhbHVlICE9IE5VTEwpCi0rICAgIHZhbHVlX2luY3Jl ZiAodmFsdWUpOwotICAgaWYgKHZhbHVlICYmIHZhbHVlX2xhenkgKHZhbHVlKSAmJiBpbnRlbnRp b25hbGx5X25vdF9mZXRjaGVkKQotICAgICB2YXItPm5vdF9mZXRjaGVkID0gMTsKLSAgIGVsc2UK LSAgICAgdmFyLT5ub3RfZmV0Y2hlZCA9IDA7Ci0gICB2YXItPnVwZGF0ZWQgPSAwOwotIAotKyAg aW5zdGFsbF9uZXdfdmFsdWVfdmlzdWFsaXplciAodmFyKTsKLSsKLSsgIC8qIElmIHdlIGluc3Rh bGxlZCBhIHByZXR0eS1wcmludGVyLCByZS1jb21wYXJlIHRoZSBwcmludGVkIHZlcnNpb24KLSsg ICAgIHRvIHNlZSBpZiB0aGUgdmFyaWFibGUgY2hhbmdlZC4gICovCi0rICBpZiAodmFyLT5wcmV0 dHlfcHJpbnRlcikKLSsgICAgewotKyAgICAgIHhmcmVlIChwcmludF92YWx1ZSk7Ci0rICAgICAg cHJpbnRfdmFsdWUgPSB2YWx1ZV9nZXRfcHJpbnRfdmFsdWUgKHZhci0+dmFsdWUsIHZhci0+Zm9y bWF0LCB2YXIpOwotKyAgICAgIGlmICghdmFyLT5wcmludF92YWx1ZSB8fCBzdHJjbXAgKHZhci0+ cHJpbnRfdmFsdWUsIHByaW50X3ZhbHVlKSAhPSAwKQotKwljaGFuZ2VkID0gMTsKLSsgICAgfQot KyAgaWYgKHZhci0+cHJpbnRfdmFsdWUpCi0rICAgIHhmcmVlICh2YXItPnByaW50X3ZhbHVlKTsK LSsgIHZhci0+cHJpbnRfdmFsdWUgPSBwcmludF92YWx1ZTsKLSsKLSAgIGdkYl9hc3NlcnQgKCF2 YXItPnZhbHVlIHx8IHZhbHVlX3R5cGUgKHZhci0+dmFsdWUpKTsKLSAKLSAgIHJldHVybiBjaGFu Z2VkOwotIH0KLSAKLS1zdGF0aWMgdm9pZAotLWluc3RhbGxfdmlzdWFsaXplciAoc3RydWN0IHZh cm9iaiAqdmFyLCBQeU9iamVjdCAqdmlzdWFsaXplcikKLSsvKiBSZXR1cm4gdGhlIHJlcXVlc3Rl ZCByYW5nZSBmb3IgYSB2YXJvYmouICBWQVIgaXMgdGhlIHZhcm9iai4gIEZST00KLSsgICBhbmQg VE8gYXJlIG91dCBwYXJhbWV0ZXJzOyAqRlJPTSBhbmQgKlRPIHdpbGwgYmUgc2V0IHRvIHRoZQot KyAgIHNlbGVjdGVkIHN1Yi1yYW5nZSBvZiBWQVIuICBJZiBubyByYW5nZSB3YXMgc2VsZWN0ZWQg dXNpbmcKLSsgICAtdmFyLXNldC11cGRhdGUtcmFuZ2UsIHRoZW4gYm90aCB3aWxsIGJlIC0xLiAg Ki8KLSt2b2lkCi0rdmFyb2JqX2dldF9jaGlsZF9yYW5nZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBp bnQgKmZyb20sIGludCAqdG8pCi0gewotLSNpZiBIQVZFX1BZVEhPTgotLSAgLyogSWYgdGhlcmUg YXJlIGFueSBjaGlsZHJlbiBub3csIHdpcGUgdGhlbS4gICovCi0tICB2YXJvYmpfZGVsZXRlICh2 YXIsIE5VTEwsIDEgLyogY2hpbGRyZW4gb25seSAqLyk7Ci0tICB2YXItPm51bV9jaGlsZHJlbiA9 IC0xOwotLQotLSAgUHlfWERFQ1JFRiAodmFyLT5wcmV0dHlfcHJpbnRlcik7Ci0tICB2YXItPnBy ZXR0eV9wcmludGVyID0gdmlzdWFsaXplcjsKLS0KLS0gIGluc3RhbGxfbmV3X3ZhbHVlICh2YXIs IHZhci0+dmFsdWUsIDEpOwotLQotLSAgLyogSWYgd2UgcmVtb3ZlZCB0aGUgdmlzdWFsaXplciwg YW5kIHRoZSB1c2VyIGV2ZXIgcmVxdWVzdGVkIHRoZQotLSAgICAgb2JqZWN0J3MgY2hpbGRyZW4s IHRoZW4gd2UgbXVzdCBjb21wdXRlIHRoZSBsaXN0IG9mIGNoaWxkcmVuLgotLSAgICAgTm90ZSB0 aGF0IHdlIG5lZWRuJ3QgZG8gdGhpcyB3aGVuIGluc3RhbGxpbmcgYSB2aXN1YWxpemVyLAotLSAg ICAgYmVjYXVzZSB1cGRhdGluZyB3aWxsIHJlY29tcHV0ZSBkeW5hbWljIGNoaWxkcmVuLiAgKi8K LS0gIGlmICghdmlzdWFsaXplciAmJiB2YXItPmNoaWxkcmVuX3JlcXVlc3RlZCkKLS0gICAgdmFy b2JqX2xpc3RfY2hpbGRyZW4gKHZhcik7Ci0tI2Vsc2UKLS0gIGVycm9yIChfKCJQeXRob24gc3Vw cG9ydCByZXF1aXJlZCIpKTsKLS0jZW5kaWYKLSsgICpmcm9tID0gdmFyLT5mcm9tOwotKyAgKnRv ID0gdmFyLT50bzsKLSB9Ci0gCi0tc3RhdGljIHZvaWQKLS1pbnN0YWxsX2RlZmF1bHRfdmlzdWFs aXplciAoc3RydWN0IHZhcm9iaiAqdmFyKQotKy8qIFNldCB0aGUgc2VsZWN0ZWQgc3ViLXJhbmdl IG9mIGNoaWxkcmVuIG9mIFZBUiB0byBzdGFydCBhdCBpbmRleAotKyAgIEZST00gYW5kIGVuZCBh dCBpbmRleCBUTy4gIElmIGVpdGhlciBGUk9NIG9yIFRPIGlzIGxlc3MgdGhhbiB6ZXJvLAotKyAg IHRoaXMgaXMgaW50ZXJwcmV0ZWQgYXMgYSByZXF1ZXN0IGZvciBhbGwgY2hpbGRyZW4uICAqLwot K3ZvaWQKLSt2YXJvYmpfc2V0X2NoaWxkX3JhbmdlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGludCBm cm9tLCBpbnQgdG8pCi0gewotLSNpZiBIQVZFX1BZVEhPTgotLSAgc3RydWN0IGNsZWFudXAgKmNs ZWFudXA7Ci0tICBQeU9iamVjdCAqcHJldHR5X3ByaW50ZXIgPSBOVUxMOwotLQotLSAgY2xlYW51 cCA9IHZhcm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKLS0KLS0gIGlmICh2YXItPnZhbHVl KQotLSAgICB7Ci0tICAgICAgcHJldHR5X3ByaW50ZXIgPSBnZGJweV9nZXRfdmFyb2JqX3ByZXR0 eV9wcmludGVyICh2YXItPnZhbHVlKTsKLS0gICAgICBpZiAoISBwcmV0dHlfcHJpbnRlcikKLS0J ewotLQkgIGdkYnB5X3ByaW50X3N0YWNrICgpOwotLQkgIGVycm9yIChfKCJDYW5ub3QgaW5zdGFu dGlhdGUgcHJpbnRlciBmb3IgZGVmYXVsdCB2aXN1YWxpemVyIikpOwotLQl9Ci0tICAgIH0KLS0g ICAgICAKLS0gIGlmIChwcmV0dHlfcHJpbnRlciA9PSBQeV9Ob25lKQotLSAgICB7Ci0tICAgICAg UHlfREVDUkVGIChwcmV0dHlfcHJpbnRlcik7Ci0tICAgICAgcHJldHR5X3ByaW50ZXIgPSBOVUxM OwotLSAgICB9Ci0tICAKLS0gIGluc3RhbGxfdmlzdWFsaXplciAodmFyLCBwcmV0dHlfcHJpbnRl cik7Ci0tICBkb19jbGVhbnVwcyAoY2xlYW51cCk7Ci0tI2Vsc2UKLS0gIC8qIE5vIGVycm9yIGlz IHJpZ2h0IGFzIHRoaXMgZnVuY3Rpb24gaXMgaW5zZXJ0ZWQganVzdCBhcyBhIGhvb2suICAqLwot LSNlbmRpZgotKyAgdmFyLT5mcm9tID0gZnJvbTsKLSsgIHZhci0+dG8gPSB0bzsKLSB9Ci0gCi0g dm9pZCAKLUBAIC0xNDAyLDMxICsxNjM2LDE5IEBAIHZhcm9ial9zZXRfdmlzdWFsaXplciAoc3Ry dWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICp2aXN1YWxpemVyKQotICAgbWFrZV9jbGVhbnVw X3B5X2RlY3JlZiAoZ2xvYmFscyk7Ci0gCi0gICBjb25zdHJ1Y3RvciA9IFB5UnVuX1N0cmluZyAo dmlzdWFsaXplciwgUHlfZXZhbF9pbnB1dCwgZ2xvYmFscywgZ2xvYmFscyk7Ci0tICAKLS0gIC8q IERvIG5vdCBpbnN0YW50aWF0ZSBOb25lVHlwZS4gKi8KLS0gIGlmIChjb25zdHJ1Y3RvciA9PSBQ eV9Ob25lKQotLSAgICB7Ci0tICAgICAgcHJldHR5X3ByaW50ZXIgPSBQeV9Ob25lOwotLSAgICAg IFB5X0lOQ1JFRiAocHJldHR5X3ByaW50ZXIpOwotLSAgICB9Ci0tICBlbHNlCi0tICAgIHByZXR0 eV9wcmludGVyID0gaW5zdGFudGlhdGVfcHJldHR5X3ByaW50ZXIgKGNvbnN0cnVjdG9yLCB2YXIt PnZhbHVlKTsKLS0KLS0gIFB5X1hERUNSRUYgKGNvbnN0cnVjdG9yKTsKLSAKLS0gIGlmICghIHBy ZXR0eV9wcmludGVyKQotKyAgaWYgKCEgY29uc3RydWN0b3IpCi0gICAgIHsKLSAgICAgICBnZGJw eV9wcmludF9zdGFjayAoKTsKLSAgICAgICBlcnJvciAoXygiQ291bGQgbm90IGV2YWx1YXRlIHZp c3VhbGl6ZXIgZXhwcmVzc2lvbjogJXMiKSwgdmlzdWFsaXplcik7Ci0gICAgIH0KLSAKLS0gIGlm IChwcmV0dHlfcHJpbnRlciA9PSBQeV9Ob25lKQotLSAgICB7Ci0tICAgICAgUHlfREVDUkVGIChw cmV0dHlfcHJpbnRlcik7Ci0tICAgICAgcHJldHR5X3ByaW50ZXIgPSBOVUxMOwotLSAgICB9Ci0r ICBjb25zdHJ1Y3RfdmlzdWFsaXplciAodmFyLCBjb25zdHJ1Y3Rvcik7Ci0rICBQeV9YREVDUkVG IChjb25zdHJ1Y3Rvcik7Ci0gCi0tICBpbnN0YWxsX3Zpc3VhbGl6ZXIgKHZhciwgcHJldHR5X3By aW50ZXIpOwotKyAgLyogSWYgdGhlcmUgYXJlIGFueSBjaGlsZHJlbiBub3csIHdpcGUgdGhlbS4g ICovCi0rICB2YXJvYmpfZGVsZXRlICh2YXIsIE5VTEwsIDEgLyogY2hpbGRyZW4gb25seSAqLyk7 Ci0rICB2YXItPm51bV9jaGlsZHJlbiA9IC0xOwotIAotICAgZG9fY2xlYW51cHMgKGJhY2tfdG8p OwotICNlbHNlCi1AQCAtMTUzNyw0NCArMTc1OSw3NCBAQCBWRUModmFyb2JqX3VwZGF0ZV9yZXN1 bHQpICp2YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoqdmFycCwgaW50IGV4cGxpY2l0KQot IAotICAgICAgIC8qIFdlIHByb2JhYmx5IHNob3VsZCBub3QgZ2V0IGNoaWxkcmVuIG9mIGEgdmFy b2JqIHRoYXQgaGFzIGEKLSAJIHByZXR0eS1wcmludGVyLCBidXQgZm9yIHdoaWNoIC12YXItbGlz dC1jaGlsZHJlbiB3YXMgbmV2ZXIKLS0JIGludm9rZWQuICBQcmVzdW1hYmx5LCBzdWNoIHZhcm9i aiBpcyBub3QgeWV0IGV4cGFuZGVkIGluIHRoZQotLQkgVUksIHNvIHdlIG5lZWQgbm90IGJvdGhl ciBnZXR0aW5nIGl0LiAgKi8KLSsJIGludm9rZWQuICAgICovCi0gICAgICAgaWYgKHYtPnByZXR0 eV9wcmludGVyKQotIAl7Ci0tCSAgVkVDICh2YXJvYmpfcCkgKmNoYW5nZWQgPSAwLCAqbmV3X2Fu ZF91bmNoYW5nZWQgPSAwOwotKwkgIFZFQyAodmFyb2JqX3ApICpjaGFuZ2VkID0gMCwgKm5ldyA9 IDAsICp1bmNoYW5nZWQgPSAwOwotIAkgIGludCBpLCBjaGlsZHJlbl9jaGFuZ2VkOwotIAkgIHZh cm9ial9wIHRtcDsKLSAKLS0JICBpZiAoIXYtPmNoaWxkcmVuX3JlcXVlc3RlZCkKLS0JICAgIGNv bnRpbnVlOwotLQotIAkgIGlmICh2LT5mcm96ZW4pCi0gCSAgICBjb250aW51ZTsKLSAKLSsJICBp ZiAoIXYtPmNoaWxkcmVuX3JlcXVlc3RlZCkKLSsJICAgIHsKLSsJICAgICAgaW50IGR1bW15Owot KwotKwkgICAgICAvKiBJZiB3ZSBpbml0aWFsbHkgZGlkIG5vdCBoYXZlIHBvdGVudGlhbCBjaGls ZHJlbiwgYnV0Ci0rCQkgbm93IHdlIGRvLCBjb25zaWRlciB0aGUgdmFyb2JqIGFzIGNoYW5nZWQu Ci0rCQkgT3RoZXJ3aXNlLCBpZiBjaGlsZHJlbiB3ZXJlIG5ldmVyIHJlcXVlc3RlZCwgY29uc2lk ZXIKLSsJCSBpdCBhcyB1bmNoYW5nZWQgLS0gcHJlc3VtYWJseSwgc3VjaCB2YXJvYmogaXMgbm90 IHlldAotKwkJIGV4cGFuZGVkIGluIHRoZSBVSSwgc28gd2UgbmVlZCBub3QgYm90aGVyIGdldHRp bmcKLSsJCSBpdC4gICovCi0rCSAgICAgIGlmICghdmFyb2JqX2hhc19tb3JlICh2LCAwKSkKLSsJ CXsKLSsJCSAgdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2LCBOVUxMLCBOVUxMLCBO VUxMLAotKwkJCQkJCSAgJmR1bW15LCAwLCAwKTsKLSsJCSAgaWYgKHZhcm9ial9oYXNfbW9yZSAo diwgMCkpCi0rCQkgICAgci5jaGFuZ2VkID0gMTsKLSsJCX0KLSsKLSsJICAgICAgaWYgKHIuY2hh bmdlZCkKLSsJCVZFQ19zYWZlX3B1c2ggKHZhcm9ial91cGRhdGVfcmVzdWx0LCByZXN1bHQsICZy KTsKLSsKLSsJICAgICAgY29udGludWU7Ci0rCSAgICB9Ci0rCi0gCSAgLyogSWYgdXBkYXRlX2R5 bmFtaWNfdmFyb2JqX2NoaWxkcmVuIHJldHVybnMgMCwgdGhlbiB3ZSBoYXZlCi0gCSAgICAgYSBu b24tY29uZm9ybWluZyBwcmV0dHktcHJpbnRlciwgc28gd2Ugc2tpcCBpdC4gICovCi0tCSAgaWYg KHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodiwgJmNoYW5nZWQsICZuZXdfYW5kX3Vu Y2hhbmdlZCwKLS0JCQkJCSAgICAgICZjaGlsZHJlbl9jaGFuZ2VkKSkKLSsJICBpZiAodXBkYXRl X2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2LCAmY2hhbmdlZCwgJm5ldywgJnVuY2hhbmdlZCwK LSsJCQkJCSAgICAgICZjaGlsZHJlbl9jaGFuZ2VkLCAxLCB2LT50bykpCi0gCSAgICB7Ci0tCSAg ICAgIGlmIChjaGlsZHJlbl9jaGFuZ2VkKQotLQkJci5jaGlsZHJlbl9jaGFuZ2VkID0gMTsKLS0J ICAgICAgZm9yIChpID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCBjaGFuZ2VkLCBpLCB0bXAp OyArK2kpCi0rCSAgICAgIGlmIChjaGlsZHJlbl9jaGFuZ2VkIHx8IG5ldykKLSAJCXsKLS0JCSAg dmFyb2JqX3VwZGF0ZV9yZXN1bHQgciA9IHt0bXB9OwotLQkJICByLmNoYW5nZWQgPSAxOwotLQkJ ICByLnZhbHVlX2luc3RhbGxlZCA9IDE7Ci0tCQkgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial91cGRh dGVfcmVzdWx0LCBzdGFjaywgJnIpOwotKwkJICByLmNoaWxkcmVuX2NoYW5nZWQgPSAxOwotKwkJ ICByLm5ldyA9IG5ldzsKLSAJCX0KLS0JICAgICAgZm9yIChpID0gMDsKLS0JCSAgIFZFQ19pdGVy YXRlICh2YXJvYmpfcCwgbmV3X2FuZF91bmNoYW5nZWQsIGksIHRtcCk7Ci0tCQkgICArK2kpCi0r CSAgICAgIGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgY2hhbmdlZCwgaSwgdG1w KTsgKytpKQotIAkJewotIAkJICB2YXJvYmpfdXBkYXRlX3Jlc3VsdCByID0ge3RtcH07Ci0rCQkg IHIuY2hhbmdlZCA9IDE7Ci0gCQkgIHIudmFsdWVfaW5zdGFsbGVkID0gMTsKLSAJCSAgVkVDX3Nh ZmVfcHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHN0YWNrLCAmcik7Ci0gCQl9Ci0rCSAgICAg IGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgdW5jaGFuZ2VkLCBpLCB0bXApOyAr K2kpCi0rCSAgICAgIAl7Ci0rCSAgICAgIAkgIGlmICghdG1wLT5mcm96ZW4pCi0rCSAgICAgIAkg ICAgewotKwkgICAgICAJICAgICAgdmFyb2JqX3VwZGF0ZV9yZXN1bHQgciA9IHt0bXB9OwotKwkg ICAgICAJICAgICAgci52YWx1ZV9pbnN0YWxsZWQgPSAxOwotKwkgICAgICAJICAgICAgVkVDX3Nh ZmVfcHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHN0YWNrLCAmcik7Ci0rCSAgICAgIAkgICAg fQotKwkgICAgICAJfQotIAkgICAgICBpZiAoci5jaGFuZ2VkIHx8IHIuY2hpbGRyZW5fY2hhbmdl ZCkKLSAJCVZFQ19zYWZlX3B1c2ggKHZhcm9ial91cGRhdGVfcmVzdWx0LCByZXN1bHQsICZyKTsK LSsKLSsJICAgICAgLyogRnJlZSBDSEFOR0VEIGFuZCBVTkNIQU5HRUQsIGJ1dCBub3QgTkVXLCBi ZWNhdXNlIE5FVwotKwkJIGhhcyBiZWVuIHB1dCBpbnRvIHRoZSByZXN1bHQgdmVjdG9yLiAgKi8K LSsJICAgICAgVkVDX2ZyZWUgKHZhcm9ial9wLCBjaGFuZ2VkKTsKLSsJICAgICAgVkVDX2ZyZWUg KHZhcm9ial9wLCB1bmNoYW5nZWQpOwotKwotIAkgICAgICBjb250aW51ZTsKLSAJICAgIH0KLSAJ fQotQEAgLTE4NjIsNyArMjExNCwxMiBAQCBuZXdfdmFyaWFibGUgKHZvaWQpCi0gICB2YXItPmZy b3plbiA9IDA7Ci0gICB2YXItPm5vdF9mZXRjaGVkID0gMDsKLSAgIHZhci0+Y2hpbGRyZW5fcmVx dWVzdGVkID0gMDsKLSsgIHZhci0+ZnJvbSA9IC0xOwotKyAgdmFyLT50byA9IC0xOwotKyAgdmFy LT5jb25zdHJ1Y3RvciA9IDA7Ci0gICB2YXItPnByZXR0eV9wcmludGVyID0gMDsKLSsgIHZhci0+ Y2hpbGRfaXRlciA9IDA7Ci0rICB2YXItPnNhdmVkX2l0ZW0gPSAwOwotIAotICAgcmV0dXJuIHZh cjsKLSB9Ci1AQCAtMTg5Miw3ICsyMTQ5LDEwIEBAIGZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJv YmogKnZhcikKLSAgIGlmICh2YXItPnByZXR0eV9wcmludGVyKQotICAgICB7Ci0gICAgICAgc3Ry dWN0IGNsZWFudXAgKmNsZWFudXAgPSB2YXJvYmpfZW5zdXJlX3B5dGhvbl9lbnYgKHZhcik7Ci0t ICAgICAgUHlfREVDUkVGICh2YXItPnByZXR0eV9wcmludGVyKTsKLSsgICAgICBQeV9YREVDUkVG ICh2YXItPmNvbnN0cnVjdG9yKTsKLSsgICAgICBQeV9YREVDUkVGICh2YXItPnByZXR0eV9wcmlu dGVyKTsKLSsgICAgICBQeV9YREVDUkVGICh2YXItPmNoaWxkX2l0ZXIpOwotKyAgICAgIFB5X1hE RUNSRUYgKHZhci0+c2F2ZWRfaXRlbSk7Ci0gICAgICAgZG9fY2xlYW51cHMgKGNsZWFudXApOwot ICAgICB9Ci0gI2VuZGlmCi1AQCAtMTkyNSw2ICsyMTg1LDE4IEBAIG1ha2VfY2xlYW51cF9mcmVl X3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIpCitAQCAtMjE4Niw2ICsyMTk4LDE4IEBAIG1h a2VfY2xlYW51cF9mcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIpCiAgICByZXR1cm4g bWFrZV9jbGVhbnVwIChkb19mcmVlX3ZhcmlhYmxlX2NsZWFudXAsIHZhcik7CiAgfQogIApAQCAt MzE1MTUsMTI0ICsyODU3MSw3IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYgMTAwNjQ0CiAgLyog VGhpcyByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJsZS4gSXQgYWxzbyBza2lwcyBwYXN0 IHR5cGVkZWZzCiAgICAgdG8gcmV0dXJuIHRoZSByZWFsIHR5cGUgb2YgdGhlIHZhcmlhYmxlLgog IAotQEAgLTIxMzksNiArMjQxMSw4IEBAIHZhbHVlX29mX3Jvb3QgKHN0cnVjdCB2YXJvYmogKip2 YXJfaGFuZGxlLCBpbnQgKnR5cGVfY2hhbmdlZCkKLSAgICAgICBlbHNlCi0gCXsKLSAJICB0bXBf dmFyLT5vYmpfbmFtZSA9IHhzdHJkdXAgKHZhci0+b2JqX25hbWUpOwotKwkgIHRtcF92YXItPmZy b20gPSB2YXItPmZyb207Ci0rCSAgdG1wX3Zhci0+dG8gPSB2YXItPnRvOwotIAkgIHZhcm9ial9k ZWxldGUgKHZhciwgTlVMTCwgMCk7Ci0gCi0gCSAgaW5zdGFsbF92YXJpYWJsZSAodG1wX3Zhcik7 Ci1AQCAtMjE3Myw3ICsyNDQ3LDExIEBAIHN0YXRpYyBjaGFyICoKLSBteV92YWx1ZV9vZl92YXJp YWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZhcm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9y bWF0KQotIHsKLSAgIGlmICh2YXItPnJvb3QtPmlzX3ZhbGlkKQotLSAgICByZXR1cm4gKCp2YXIt PnJvb3QtPmxhbmctPnZhbHVlX29mX3ZhcmlhYmxlKSAodmFyLCBmb3JtYXQpOwotKyAgICB7Ci0r ICAgICAgaWYgKHZhci0+cHJldHR5X3ByaW50ZXIpCi0rCXJldHVybiB2YWx1ZV9nZXRfcHJpbnRf dmFsdWUgKHZhci0+dmFsdWUsIHZhci0+Zm9ybWF0LCB2YXIpOwotKyAgICAgIHJldHVybiAoKnZh ci0+cm9vdC0+bGFuZy0+dmFsdWVfb2ZfdmFyaWFibGUpICh2YXIsIGZvcm1hdCk7Ci0rICAgIH0K LSAgIGVsc2UKLSAgICAgcmV0dXJuIE5VTEw7Ci0gfQotQEAgLTIxOTYsNDMgKzI0NzQsNTEgQEAg dmFsdWVfZ2V0X3ByaW50X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBlbnVtIHZhcm9ial9k aXNwbGF5X2Zvcm1hdHMgZm9ybWF0LAotICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190byA9IHZh cm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKLSAgICAgUHlPYmplY3QgKnZhbHVlX2Zvcm1h dHRlciA9IHZhci0+cHJldHR5X3ByaW50ZXI7Ci0gCi0tICAgIGlmICh2YWx1ZV9mb3JtYXR0ZXIg JiYgUHlPYmplY3RfSGFzQXR0ciAodmFsdWVfZm9ybWF0dGVyLAotLQkJCQkJICAgICBnZGJweV90 b19zdHJpbmdfY3N0KSkKLSsgICAgaWYgKHZhbHVlX2Zvcm1hdHRlcikKLSAgICAgICB7Ci0tCWNo YXIgKmhpbnQ7Ci0tCXN0cnVjdCB2YWx1ZSAqcmVwbGFjZW1lbnQ7Ci0tCWludCBzdHJpbmdfcHJp bnQgPSAwOwotLQlQeU9iamVjdCAqb3V0cHV0ID0gTlVMTDsKLSsJLyogRmlyc3QgY2hlY2sgdG8g c2VlIGlmIHdlIGhhdmUgYW55IGNoaWxkcmVuIGF0IGFsbC4gIElmIHNvLAotKwkgICB3ZSBzaW1w bHkgcmV0dXJuIHsuLi59LiAgKi8KLSsJaWYgKGR5bmFtaWNfdmFyb2JqX2hhc19jaGlsZF9tZXRo b2QgKHZhcikpCi0rCSAgcmV0dXJuIHhzdHJkdXAgKCJ7Li4ufSIpOwotIAotLQloaW50ID0gZ2Ri cHlfZ2V0X2Rpc3BsYXlfaGludCAodmFsdWVfZm9ybWF0dGVyKTsKLS0JaWYgKGhpbnQpCi0rCWlm IChQeU9iamVjdF9IYXNBdHRyICh2YWx1ZV9mb3JtYXR0ZXIsIGdkYnB5X3RvX3N0cmluZ19jc3Qp KQotIAkgIHsKLS0JICAgIGlmICghc3RyY21wIChoaW50LCAic3RyaW5nIikpCi0tCSAgICAgIHN0 cmluZ19wcmludCA9IDE7Ci0tCSAgICB4ZnJlZSAoaGludCk7Ci0tCSAgfQotKwkgICAgY2hhciAq aGludDsKLSsJICAgIHN0cnVjdCB2YWx1ZSAqcmVwbGFjZW1lbnQ7Ci0rCSAgICBpbnQgc3RyaW5n X3ByaW50ID0gMDsKLSsJICAgIFB5T2JqZWN0ICpvdXRwdXQgPSBOVUxMOwotKwotKwkgICAgaGlu dCA9IGdkYnB5X2dldF9kaXNwbGF5X2hpbnQgKHZhbHVlX2Zvcm1hdHRlcik7Ci0rCSAgICBpZiAo aGludCkKLSsJICAgICAgewotKwkJaWYgKCFzdHJjbXAgKGhpbnQsICJzdHJpbmciKSkKLSsJCSAg c3RyaW5nX3ByaW50ID0gMTsKLSsJCXhmcmVlIChoaW50KTsKLSsJICAgICAgfQotIAotLQlvdXRw dXQgPSBhcHBseV92YXJvYmpfcHJldHR5X3ByaW50ZXIgKHZhbHVlX2Zvcm1hdHRlciwKLS0JCQkJ CSAgICAgICZyZXBsYWNlbWVudCk7Ci0tIAlpZiAob3V0cHV0KQotLSAgCSAgewotLSAJICAgIFB5 T2JqZWN0ICpweV9zdHIgPSBweXRob25fc3RyaW5nX3RvX3RhcmdldF9weXRob25fc3RyaW5nIChv dXRwdXQpOwotLSAJICAgIGlmIChweV9zdHIpCi0tIAkgICAgICB7Ci0tIAkJY2hhciAqcyA9IFB5 U3RyaW5nX0FzU3RyaW5nIChweV9zdHIpOwotLSAJCWxlbiA9IFB5U3RyaW5nX1NpemUgKHB5X3N0 cik7Ci0tCQl0aGV2YWx1ZSA9IHhtZW1kdXAgKHMsIGxlbiArIDEsIGxlbiArIDEpOwotLSAJCVB5 X0RFQ1JFRiAocHlfc3RyKTsKLSsJICAgIG91dHB1dCA9IGFwcGx5X3Zhcm9ial9wcmV0dHlfcHJp bnRlciAodmFsdWVfZm9ybWF0dGVyLAotKwkJCQkJCSAgJnJlcGxhY2VtZW50KTsKLSsJICAgIGlm IChvdXRwdXQpCi0rCSAgICAgIHsKLSsJCVB5T2JqZWN0ICpweV9zdHIKLSsJCSAgPSBweXRob25f c3RyaW5nX3RvX3RhcmdldF9weXRob25fc3RyaW5nIChvdXRwdXQpOwotKwkJaWYgKHB5X3N0cikK LSsJCSAgewotKwkJICAgIGNoYXIgKnMgPSBQeVN0cmluZ19Bc1N0cmluZyAocHlfc3RyKTsKLSsJ CSAgICBsZW4gPSBQeVN0cmluZ19TaXplIChweV9zdHIpOwotKwkJICAgIHRoZXZhbHVlID0geG1l bWR1cCAocywgbGVuICsgMSwgbGVuICsgMSk7Ci0rCQkgICAgUHlfREVDUkVGIChweV9zdHIpOwot KwkJICB9Ci0rCQlQeV9ERUNSRUYgKG91dHB1dCk7Ci0gCSAgICAgIH0KLS0gCSAgICBQeV9ERUNS RUYgKG91dHB1dCk7Ci0tCSAgfQotLQlpZiAodGhldmFsdWUgJiYgIXN0cmluZ19wcmludCkKLS0J ICB7Ci0tCSAgICBkb19jbGVhbnVwcyAoYmFja190byk7Ci0tCSAgICByZXR1cm4gdGhldmFsdWU7 Ci0rCSAgICBpZiAodGhldmFsdWUgJiYgIXN0cmluZ19wcmludCkKLSsJICAgICAgewotKwkJZG9f Y2xlYW51cHMgKGJhY2tfdG8pOwotKwkJcmV0dXJuIHRoZXZhbHVlOwotKwkgICAgICB9Ci0rCSAg ICBpZiAocmVwbGFjZW1lbnQpCi0rCSAgICAgIHZhbHVlID0gcmVwbGFjZW1lbnQ7Ci0gCSAgfQot LQlpZiAocmVwbGFjZW1lbnQpCi0tCSAgdmFsdWUgPSByZXBsYWNlbWVudDsKLSAgICAgICB9Ci0g ICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKLSAgIH0KLUBAIC0yOTYxLDEwICszMjQ3LDcgQEAg Y3BsdXNfZGVzY3JpYmVfY2hpbGQgKHN0cnVjdCB2YXJvYmogKnBhcmVudCwgaW50IGluZGV4LAot IAkgICAgKmNuYW1lID0geHN0cmR1cCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpbmRleCkpOwot IAotIAkgIGlmIChjdmFsdWUgJiYgdmFsdWUpCi0tCSAgICB7Ci0tCSAgICAgICpjdmFsdWUgPSB2 YWx1ZV9jYXN0IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGluZGV4KSwgdmFsdWUpOwotLQkgICAg ICByZWxlYXNlX3ZhbHVlICgqY3ZhbHVlKTsKLS0JICAgIH0KLSsJICAgICpjdmFsdWUgPSB2YWx1 ZV9jYXN0IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGluZGV4KSwgdmFsdWUpOwotIAotIAkgIGlm IChjdHlwZSkKLSAJICAgIHsKLUBAIC0zMTcwLDYgKzM0NTMsMTkgQEAgamF2YV92YWx1ZV9vZl92 YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZhcm9ial9kaXNwbGF5X2Zvcm1hdHMg Zm9ybWF0KQorQEAgLTM0NDIsNiArMzQ2NiwxOSBAQCBqYXZhX3ZhbHVlX29mX3ZhcmlhYmxlIChz dHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9ybWF0cyBmb3JtYXQpCiAg ICByZXR1cm4gY3BsdXNfdmFsdWVfb2ZfdmFyaWFibGUgKHZhciwgZm9ybWF0KTsKICB9CiAgCkBA IC0zMTY1Miw3ICsyODU5MSw3IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYgMTAwNjQ0CiAgLyog SXRlcmF0ZSBhbGwgdGhlIGV4aXN0aW5nIF9yb290XyBWQVJPQkpzIGFuZCBjYWxsIHRoZSBGVU5D IGNhbGxiYWNrIGZvciB0aGVtCiAgICAgd2l0aCBhbiBhcmJpdHJhcnkgY2FsbGVyIHN1cHBsaWVk IERBVEEgcG9pbnRlci4gICovCiAgCi1AQCAtMzE4Nyw2ICszNDgzLDQzIEBAIGFsbF9yb290X3Zh cm9ianMgKHZvaWQgKCpmdW5jKSAoc3RydWN0IHZhcm9iaiAqdmFyLCB2b2lkICpkYXRhKSwgdm9p ZCAqZGF0YSkKK0BAIC0zNDU5LDYgKzM0OTYsNDMgQEAgYWxsX3Jvb3RfdmFyb2JqcyAodm9pZCAo KmZ1bmMpIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHZvaWQgKmRhdGEpLCB2b2lkICpkYXRhKQogICAg ICAgICgqZnVuYykgKHZhcl9yb290LT5yb290dmFyLCBkYXRhKTsKICAgICAgfQogIH0KQEAgLTMx Njk2LDY2ICsyODYzNSw2IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYgMTAwNjQ0CiAgDAogIGV4 dGVybiB2b2lkIF9pbml0aWFsaXplX3Zhcm9iaiAodm9pZCk7CiAgdm9pZAotZGlmZiAtLWdpdCBh L2dkYi92YXJvYmouaCBiL2dkYi92YXJvYmouaAotaW5kZXggNzI5NzI0My4uZjQzYzU5MyAxMDA2 NDQKLS0tLSBhL2dkYi92YXJvYmouaAotKysrIGIvZ2RiL3Zhcm9iai5oCi1AQCAtNzgsNiArNzgs MTIgQEAgdHlwZWRlZiBzdHJ1Y3QgdmFyb2JqX3VwZGF0ZV9yZXN1bHRfdAotICAgICAgbmV3IHZh bHVlIG9mIHZhcm9iaiBpcyBhbHJlYWR5IGNvbXB1dGVkIGFuZCBpbnN0YWxsZWQsIG9yIGhhcyB0 bwotICAgICAgYmUgeWV0IGluc3RhbGxlZC4gIERvbid0IHVzZSB0aGlzIG91dHNpZGUgdmFyb2Jq LmMgKi8KLSAgIGludCB2YWx1ZV9pbnN0YWxsZWQ7ICAKLSsKLSsgIC8qIFRoaXMgd2lsbCBiZSBu b24tTlVMTCB3aGVuIG5ldyBjaGlsZHJlbiB3ZXJlIGFkZGVkIHRvIHRoZSB2YXJvYmouCi0rICAg ICBJdCBsaXN0cyB0aGUgbmV3IGNoaWxkcmVuICh3aGljaCBtdXN0IG5lY2Vzc2FyaWx5IGNvbWUg YXQgdGhlIGVuZAotKyAgICAgb2YgdGhlIGNoaWxkIGxpc3QpIGFkZGVkIGR1cmluZyBhbiB1cGRh dGUuICBUaGUgY2FsbGVyIGlzCi0rICAgICByZXNwb25zaWJsZSBmb3IgZnJlZWluZyB0aGlzIHZl Y3Rvci4gICovCi0rICBWRUMgKHZhcm9ial9wKSAqbmV3OwotIH0gdmFyb2JqX3VwZGF0ZV9yZXN1 bHQ7Ci0gCi0gREVGX1ZFQ19PICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCk7Ci1AQCAtMTEyLDEzICsx MTgsMjQgQEAgZXh0ZXJuIHZvaWQgdmFyb2JqX3NldF9mcm96ZW4gKHN0cnVjdCB2YXJvYmogKnZh ciwgaW50IGZyb3plbik7Ci0gCi0gZXh0ZXJuIGludCB2YXJvYmpfZ2V0X2Zyb3plbiAoc3RydWN0 IHZhcm9iaiAqdmFyKTsKLSAKLStleHRlcm4gdm9pZCB2YXJvYmpfZ2V0X2NoaWxkX3JhbmdlIChz dHJ1Y3QgdmFyb2JqICp2YXIsIGludCAqZnJvbSwgaW50ICp0byk7Ci0rCi0rZXh0ZXJuIHZvaWQg dmFyb2JqX3NldF9jaGlsZF9yYW5nZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBpbnQgZnJvbSwgaW50 IHRvKTsKLSsKLSBleHRlcm4gY2hhciAqdmFyb2JqX2dldF9kaXNwbGF5X2hpbnQgKHN0cnVjdCB2 YXJvYmogKnZhcik7Ci0gCi0gZXh0ZXJuIGludCB2YXJvYmpfZ2V0X251bV9jaGlsZHJlbiAoc3Ry dWN0IHZhcm9iaiAqdmFyKTsKLSAKLS0vKiBSZXR1cm4gdGhlIGxpc3Qgb2YgY2hpbGRyZW4gb2Yg VkFSLiAgVGhlIHJldHVybmVkIHZlY3RvcgotLSAgIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgaW4g YW55IHdheS4gICovCi0tZXh0ZXJuIFZFQyAodmFyb2JqX3ApKiB2YXJvYmpfbGlzdF9jaGlsZHJl biAoc3RydWN0IHZhcm9iaiAqdmFyKTsKLSsvKiBSZXR1cm4gdGhlIGxpc3Qgb2YgY2hpbGRyZW4g b2YgVkFSLiAgVGhlIHJldHVybmVkIHZlY3RvciBzaG91bGQgbm90Ci0rICAgYmUgbW9kaWZpZWQg aW4gYW55IHdheS4gIEZST00gYW5kIFRPIGFyZSBpbi9vdXQgcGFyYW1ldGVycwotKyAgIGluZGlj YXRpbmcgdGhlIHJhbmdlIG9mIGNoaWxkcmVuIHRvIHJldHVybi4gIElmIGVpdGhlciAqRlJPTSBv ciAqVE8KLSsgICBpcyBsZXNzIHRoYW4gemVybyBvbiBlbnRyeSwgdGhlbiBhbGwgY2hpbGRyZW4g d2lsbCBiZSByZXR1cm5lZC4gIE9uCi0rICAgcmV0dXJuLCAqRlJPTSBhbmQgKlRPIHdpbGwgYmUg dXBkYXRlZCB0byBpbmRpY2F0ZSB0aGUgcmVhbCByYW5nZQotKyAgIHRoYXQgd2FzIHJldHVybmVk LiAgVGhlIHJlc3VsdGluZyBWRUMgd2lsbCBjb250YWluIGF0IGxlYXN0IHRoZQotKyAgIGNoaWxk cmVuIGZyb20gKkZST00gdG8ganVzdCBiZWZvcmUgKlRPOyBpdCBtaWdodCBjb250YWluIG1vcmUK LSsgICBjaGlsZHJlbiwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgYW55IG1vcmUgd2VyZSBhdmFpbGFi bGUuICAqLwotK2V4dGVybiBWRUMgKHZhcm9ial9wKSogdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0 cnVjdCB2YXJvYmogKnZhciwKLSsJCQkJCSAgICAgaW50ICpmcm9tLCBpbnQgKnRvKTsKLSAKLSBl eHRlcm4gY2hhciAqdmFyb2JqX2dldF90eXBlIChzdHJ1Y3QgdmFyb2JqICp2YXIpOwotIAotQEAg LTE0OSw2ICsxNjYsMTMgQEAgZXh0ZXJuIGludCB2YXJvYmpfZWRpdGFibGVfcCAoc3RydWN0IHZh cm9iaiAqdmFyKTsKLSAKLSBleHRlcm4gaW50IHZhcm9ial9mbG9hdGluZ19wIChzdHJ1Y3QgdmFy b2JqICp2YXIpOwotIAotLWV4dGVybiB2b2lkIHZhcm9ial9zZXRfdmlzdWFsaXplciAoc3RydWN0 IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICp2aXN1YWxpemVyKTsKLStleHRlcm4gdm9pZCAKLSt2 YXJvYmpfc2V0X3Zpc3VhbGl6ZXIgKHN0cnVjdCB2YXJvYmogKnZhciwgY29uc3QgY2hhciAqdmlz dWFsaXplcik7Ci0rCi0rZXh0ZXJuIHZvaWQgdmFyb2JqX2VuYWJsZV9wcmV0dHlfcHJpbnRpbmcg KHZvaWQpOwotKwotK2V4dGVybiBpbnQgdmFyb2JqX2hhc19tb3JlIChzdHJ1Y3QgdmFyb2JqICp2 YXIsIGludCB0byk7Ci0rCi0rZXh0ZXJuIGludCB2YXJvYmpfcHJldHR5X3ByaW50ZWRfcCAoc3Ry dWN0IHZhcm9iaiAqdmFyKTsKLSAKLSAjZW5kaWYgLyogVkFST0JKX0ggKi8KIGRpZmYgLS1naXQg YS9nZGIveGNvZmZyZWFkLmMgYi9nZGIveGNvZmZyZWFkLmMKIGluZGV4IGM1NmFiODYuLmRhY2Y5 MTMgMTAwNjQ0CiAtLS0gYS9nZGIveGNvZmZyZWFkLmMKCmRpZmYgLS1naXQgYS9nZGItYno1MTU0 MzQtcXNvcnRfY21wLnBhdGNoIGIvZ2RiLWJ6NTE1NDM0LXFzb3J0X2NtcC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjFmNDI2NC4uMDAwMDAwMAotLS0gYS9nZGItYno1MTU0 MzQtcXNvcnRfY21wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjI5ICswLDAgQEAKLUluZGV4 OiBvYmpmaWxlcy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9vYmpm aWxlcy5jLHYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS45MwotZGlmZiAtcCAtdSAtcjEuOTMgb2Jq ZmlsZXMuYwotLS0tIC4vZ2RiL29iamZpbGVzLmMJMjEgQXVnIDIwMDkgMTc6NTc6MTcgLTAwMDAJ MS45MwotKysrIC4vZ2RiL29iamZpbGVzLmMJMjYgQXVnIDIwMDkgMDc6MDc6MDQgLTAwMDAKLUBA IC03OTAsMTUgKzc5MCw5IEBAIHFzb3J0X2NtcCAoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAq YikKLSAgIGNvbnN0IENPUkVfQUREUiBzZWN0Ml9hZGRyID0gb2JqX3NlY3Rpb25fYWRkciAoc2Vj dDIpOwotIAotICAgaWYgKHNlY3QxX2FkZHIgPCBzZWN0Ml9hZGRyKQotLSAgICB7Ci0tICAgICAg Z2RiX2Fzc2VydCAob2JqX3NlY3Rpb25fZW5kYWRkciAoc2VjdDEpIDw9IHNlY3QyX2FkZHIpOwot LSAgICAgIHJldHVybiAtMTsKLS0gICAgfQotKyAgICByZXR1cm4gLTE7Ci0gICBlbHNlIGlmIChz ZWN0MV9hZGRyID4gc2VjdDJfYWRkcikKLS0gICAgewotLSAgICAgIGdkYl9hc3NlcnQgKHNlY3Qx X2FkZHIgPj0gb2JqX3NlY3Rpb25fZW5kYWRkciAoc2VjdDIpKTsKLS0gICAgICByZXR1cm4gMTsK LS0gICAgfQotKyAgICByZXR1cm4gMTsKLSAKLSAgIHJldHVybiAwOwotIH0KLUBAIC04MjMsMTIg KzgxNywxMzMgQEAgcHJlZmVycmVkX29ial9zZWN0aW9uIChzdHJ1Y3Qgb2JqX3NlY3RpbwotICAg cmV0dXJuIGI7Ci0gfQotIAotKy8qIFJldHVybiAxIGlmIFNFQ1RJT04gc2hvdWxkIGJlIGluc2Vy dGVkIGludG8gdGhlIHNlY3Rpb24gbWFwLgotKyAgIFdlIHdhbnQgdG8gaW5zZXJ0IG9ubHkgbm9u LW92ZXJsYXkgYW5kIG5vbi1UTFMgc2VjdGlvbi4gICovCi0rCi0rc3RhdGljIGludAotK2luc2Vy dF9zZWN0aW9uX3AgKGNvbnN0IHN0cnVjdCBiZmQgKmFiZmQsCi0rCQkgIGNvbnN0IHN0cnVjdCBi ZmRfc2VjdGlvbiAqc2VjdGlvbikKLSt7Ci0rICBjb25zdCBiZmRfdm1hIGxtYSA9IGJmZF9zZWN0 aW9uX2xtYSAoYWJmZCwgc2VjdGlvbik7Ci0rCi0rICBpZiAobG1hICE9IDAgJiYgbG1hICE9IGJm ZF9zZWN0aW9uX3ZtYSAoYWJmZCwgc2VjdGlvbikKLSsgICAgICAmJiAoYmZkX2dldF9maWxlX2Zs YWdzIChhYmZkKSAmIEJGRF9JTl9NRU1PUlkpID09IDApCi0rICAgIC8qIFRoaXMgaXMgYW4gb3Zl cmxheSBzZWN0aW9uLiAgSU5fTUVNT1JZIGNoZWNrIGlzIG5lZWRlZCB0byBhdm9pZAotKyAgICAg ICBkaXNjYXJkaW5nIHNlY3Rpb25zIGZyb20gdGhlICJzeXN0ZW0gc3VwcGxpZWQgRFNPIiAoYWth IHZkc28pCi0rICAgICAgIG9uIExpbnV4LiAgKi8KLSsgICAgcmV0dXJuIDA7Ci0rICBpZiAoKGJm ZF9nZXRfc2VjdGlvbl9mbGFncyAoYWJmZCwgc2VjdGlvbikgJiBTRUNfVEhSRUFEX0xPQ0FMKSAh PSAwKQotKyAgICAvKiBUaGlzIGlzIGEgVExTIHNlY3Rpb24uICAqLwotKyAgICByZXR1cm4gMDsK LSsKLSsgIHJldHVybiAxOwotK30KLSsKLSsvKiBGaWx0ZXIgb3V0IG92ZXJsYXBwaW5nIHNlY3Rp b25zIHdoZXJlIG9uZSBzZWN0aW9uIGNhbWUgZnJvbSB0aGUgcmVhbAotKyAgIG9iamZpbGUsIGFu ZCB0aGUgb3RoZXIgZnJvbSBhIHNlcGFyYXRlIGRlYnVnaW5mbyBmaWxlLgotKyAgIFJldHVybiB0 aGUgc2l6ZSBvZiB0YWJsZSBhZnRlciByZWR1bmRhbnQgc2VjdGlvbnMgaGF2ZSBiZWVuIGVsaW1p bmF0ZWQuICAqLwotKwotK3N0YXRpYyBpbnQKLStmaWx0ZXJfZGVidWdpbmZvX3NlY3Rpb25zIChz dHJ1Y3Qgb2JqX3NlY3Rpb24gKiptYXAsIGludCBtYXBfc2l6ZSkKLSt7Ci0rICBpbnQgaSwgajsK LSsKLSsgIGZvciAoaSA9IDAsIGogPSAwOyBpIDwgbWFwX3NpemUgLSAxOyBpKyspCi0rICAgIHsK LSsgICAgICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKmNvbnN0IHNlY3QxID0gbWFwW2ldOwotKyAgICAg IHN0cnVjdCBvYmpfc2VjdGlvbiAqY29uc3Qgc2VjdDIgPSBtYXBbaSArIDFdOwotKyAgICAgIGNv bnN0IHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmaWxlMSA9IHNlY3QxLT5vYmpmaWxlOwotKyAg ICAgIGNvbnN0IHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmaWxlMiA9IHNlY3QyLT5vYmpmaWxl OwotKyAgICAgIGNvbnN0IENPUkVfQUREUiBzZWN0MV9hZGRyID0gb2JqX3NlY3Rpb25fYWRkciAo c2VjdDEpOwotKyAgICAgIGNvbnN0IENPUkVfQUREUiBzZWN0Ml9hZGRyID0gb2JqX3NlY3Rpb25f YWRkciAoc2VjdDIpOwotKwotKyAgICAgIGlmIChzZWN0MV9hZGRyID09IHNlY3QyX2FkZHIKLSsJ ICAmJiAob2JqZmlsZTEtPnNlcGFyYXRlX2RlYnVnX29iamZpbGUgPT0gb2JqZmlsZTIKLSsJICAg ICAgfHwgb2JqZmlsZTItPnNlcGFyYXRlX2RlYnVnX29iamZpbGUgPT0gb2JqZmlsZTEpKQotKwl7 Ci0rCSAgbWFwW2orK10gPSBwcmVmZXJyZWRfb2JqX3NlY3Rpb24gKHNlY3QxLCBzZWN0Mik7Ci0r CSAgKytpOwotKwl9Ci0rICAgICAgZWxzZQotKwltYXBbaisrXSA9IHNlY3QxOwotKyAgICB9Ci0r Ci0rICBpZiAoaSA8IG1hcF9zaXplKQotKyAgICBtYXBbaisrXSA9IG1hcFtpXTsKLSsKLSsgIC8q IFRoZSBtYXAgc2hvdWxkIG5vdCBoYXZlIHNocnVuayB0byBsZXNzIHRoYW4gaGFsZiB0aGUgb3Jp Z2luYWwgc2l6ZS4gICovCi0rICBnZGJfYXNzZXJ0IChtYXBfc2l6ZSAvIDIgPD0gaik7Ci0rCi0r ICByZXR1cm4gajsKLSt9Ci0rCi0rLyogRmlsdGVyIG91dCBvdmVybGFwcGluZyBzZWN0aW9ucywg aXNzdWluZyBhIHdhcm5pbmcgaWYgYW55IGFyZSBmb3VuZC4KLSsgICBPdmVybGFwcGluZyBzZWN0 aW9ucyBjb3VsZCByZWFsbHkgYmUgb3ZlcmxheSBzZWN0aW9ucyB3aGljaCB3ZSBkaWRuJ3QKLSsg ICBjbGFzc2lmeSBhcyBzdWNoIGluIGluc2VydF9zZWN0aW9uX3AsIG9yIHdlIGNvdWxkIGJlIGRl YWxpbmcgd2l0aCBhCi0rICAgY29ycnVwdCBiaW5hcnkuICAqLwotKwotK3N0YXRpYyBpbnQKLStm aWx0ZXJfb3ZlcmxhcHBpbmdfc2VjdGlvbnMgKHN0cnVjdCBvYmpfc2VjdGlvbiAqKm1hcCwgaW50 IG1hcF9zaXplKQotK3sKLSsgIGludCBpLCBqOwotKwotKyAgZm9yIChpID0gMCwgaiA9IDA7IGkg PCBtYXBfc2l6ZSAtIDE7ICkKLSsgICAgewotKyAgICAgIGludCBrOwotKwotKyAgICAgIG1hcFtq KytdID0gbWFwW2ldOwotKyAgICAgIGZvciAoayA9IGkgKyAxOyBrIDwgbWFwX3NpemU7IGsrKykK LSsJewotKwkgIHN0cnVjdCBvYmpfc2VjdGlvbiAqY29uc3Qgc2VjdDEgPSBtYXBbaV07Ci0rCSAg c3RydWN0IG9ial9zZWN0aW9uICpjb25zdCBzZWN0MiA9IG1hcFtrXTsKLSsJICBjb25zdCBDT1JF X0FERFIgc2VjdDFfYWRkciA9IG9ial9zZWN0aW9uX2FkZHIgKHNlY3QxKTsKLSsJICBjb25zdCBD T1JFX0FERFIgc2VjdDJfYWRkciA9IG9ial9zZWN0aW9uX2FkZHIgKHNlY3QyKTsKLSsJICBjb25z dCBDT1JFX0FERFIgc2VjdDFfZW5kYWRkciA9IG9ial9zZWN0aW9uX2VuZGFkZHIgKHNlY3QxKTsK LSsKLSsJICBnZGJfYXNzZXJ0IChzZWN0MV9hZGRyIDw9IHNlY3QyX2FkZHIpOwotKwotKwkgIGlm IChzZWN0MV9lbmRhZGRyIDw9IHNlY3QyX2FkZHIpCi0rCSAgICBicmVhazsKLSsJICBlbHNlCi0r CSAgICB7Ci0rCSAgICAgIC8qIFdlIGhhdmUgYW4gb3ZlcmxhcC4gIFJlcG9ydCBpdC4gICovCi0r Ci0rCSAgICAgIHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmMSA9IHNlY3QxLT5vYmpmaWxlOwot KwkgICAgICBzdHJ1Y3Qgb2JqZmlsZSAqY29uc3Qgb2JqZjIgPSBzZWN0Mi0+b2JqZmlsZTsKLSsK LSsJICAgICAgY29uc3Qgc3RydWN0IGJmZCAqY29uc3QgYWJmZDEgPSBvYmpmMS0+b2JmZDsKLSsJ ICAgICAgY29uc3Qgc3RydWN0IGJmZCAqY29uc3QgYWJmZDIgPSBvYmpmMi0+b2JmZDsKLSsKLSsJ ICAgICAgY29uc3Qgc3RydWN0IGJmZF9zZWN0aW9uICpjb25zdCBiZmRzMSA9IHNlY3QxLT50aGVf YmZkX3NlY3Rpb247Ci0rCSAgICAgIGNvbnN0IHN0cnVjdCBiZmRfc2VjdGlvbiAqY29uc3QgYmZk czIgPSBzZWN0Mi0+dGhlX2JmZF9zZWN0aW9uOwotKwotKwkgICAgICBjb25zdCBDT1JFX0FERFIg c2VjdDJfZW5kYWRkciA9IG9ial9zZWN0aW9uX2VuZGFkZHIgKHNlY3QyKTsKLSsKLSsJICAgICAg c3RydWN0IGdkYmFyY2ggKmNvbnN0IGdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmMSk7 Ci0rCi0rCSAgICAgIHdhcm5pbmcgKF8oIlVuZXhwZWN0ZWQgb3ZlcmxhcCBiZXR3ZWVuICIKLSsJ CQkgInNlY3Rpb24gYCVzJyBmcm9tIGAlcycgWyVzLCAlcykgYW5kICIKLSsJCQkgInNlY3Rpb24g YCVzJyBmcm9tIGAlcycgWyVzLCAlcykiKSwKLSsJCSAgICAgICBiZmRfc2VjdGlvbl9uYW1lIChh YmZkMSwgYmZkczEpLCBvYmpmMS0+bmFtZSwKLSsJCSAgICAgICBwYWRkcmVzcyAoZ2RiYXJjaCwg c2VjdDFfYWRkciksCi0rCQkgICAgICAgcGFkZHJlc3MgKGdkYmFyY2gsIHNlY3QxX2VuZGFkZHIp LAotKwkJICAgICAgIGJmZF9zZWN0aW9uX25hbWUgKGFiZmQyLCBiZmRzMiksIG9iamYyLT5uYW1l LAotKwkJICAgICAgIHBhZGRyZXNzIChnZGJhcmNoLCBzZWN0Ml9hZGRyKSwKLSsJCSAgICAgICBw YWRkcmVzcyAoZ2RiYXJjaCwgc2VjdDJfZW5kYWRkcikpOwotKwkgICAgfQotKwl9Ci0rICAgICAg aSA9IGs7Ci0rICAgIH0KLSsgIHJldHVybiBtYXBfc2l6ZTsKLSt9Ci0rCi0rCi0gLyogVXBkYXRl IFBNQVAsIFBNQVBfU0laRSB3aXRoIG5vbi1UTFMgc2VjdGlvbnMgZnJvbSBhbGwgb2JqZmlsZXMu ICAqLwotIAotIHN0YXRpYyB2b2lkCi0gdXBkYXRlX3NlY3Rpb25fbWFwIChzdHJ1Y3Qgb2JqX3Nl Y3Rpb24gKioqcG1hcCwgaW50ICpwbWFwX3NpemUpCi0gewotLSAgaW50IG1hcF9zaXplLCBpLCBq OwotKyAgaW50IGFsbG9jX3NpemUsIG1hcF9zaXplLCBpOwotICAgc3RydWN0IG9ial9zZWN0aW9u ICpzLCAqKm1hcDsKLSAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOwotIAotQEAgLTgzNyw1NSAr OTUyLDI3IEBAIHVwZGF0ZV9zZWN0aW9uX21hcCAoc3RydWN0IG9ial9zZWN0aW9uICoKLSAgIG1h cCA9ICpwbWFwOwotICAgeGZyZWUgKG1hcCk7Ci0gCi0tI2RlZmluZSBpbnNlcnRfcChvYmpmLCBz ZWMpIFwKLS0gICgoYmZkX2dldF9zZWN0aW9uX2ZsYWdzICgob2JqZiktPm9iZmQsIChzZWMpLT50 aGVfYmZkX3NlY3Rpb24pIFwKLS0gICAgJiBTRUNfVEhSRUFEX0xPQ0FMKSA9PSAwKQotLQotLSAg bWFwX3NpemUgPSAwOwotKyAgYWxsb2Nfc2l6ZSA9IDA7Ci0gICBBTExfT0JKU0VDVElPTlMgKG9i amZpbGUsIHMpCi0tICAgIGlmIChpbnNlcnRfcCAob2JqZmlsZSwgcykpCi0tICAgICAgbWFwX3Np emUgKz0gMTsKLSsgICAgaWYgKGluc2VydF9zZWN0aW9uX3AgKG9iamZpbGUtPm9iZmQsIHMtPnRo ZV9iZmRfc2VjdGlvbikpCi0rICAgICAgYWxsb2Nfc2l6ZSArPSAxOwotIAotLSAgbWFwID0geG1h bGxvYyAobWFwX3NpemUgKiBzaXplb2YgKCptYXApKTsKLSsgIG1hcCA9IHhtYWxsb2MgKGFsbG9j X3NpemUgKiBzaXplb2YgKCptYXApKTsKLSAKLSAgIGkgPSAwOwotICAgQUxMX09CSlNFQ1RJT05T IChvYmpmaWxlLCBzKQotLSAgICBpZiAoaW5zZXJ0X3AgKG9iamZpbGUsIHMpKQotKyAgICBpZiAo aW5zZXJ0X3NlY3Rpb25fcCAob2JqZmlsZS0+b2JmZCwgcy0+dGhlX2JmZF9zZWN0aW9uKSkKLSAg ICAgICBtYXBbaSsrXSA9IHM7Ci0gCi0tI3VuZGVmIGluc2VydF9wCi0tCi0tICBxc29ydCAobWFw LCBtYXBfc2l6ZSwgc2l6ZW9mICgqbWFwKSwgcXNvcnRfY21wKTsKLS0KLS0gIC8qIFdpdGggc2Vw YXJhdGUgZGVidWdpbmZvIGZpbGVzLCB3ZSBtYXkgaGF2ZSB1cCB0byB0d28gKGFsbW9zdCkKLS0g ICAgIGlkZW50aWNhbCBjb3BpZXMgb2Ygc29tZSBvYmpfc2VjdGlvbnMgaW4gdGhlIG1hcC4KLS0g ICAgIEZpbHRlciBvdXQgZHVwbGljYXRlcy4gICovCi0tICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8 IG1hcF9zaXplOyArK2kpCi0tICAgIHsKLS0gICAgICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlY3Qx ID0gbWFwW2ldOwotLSAgICAgIHN0cnVjdCBvYmpfc2VjdGlvbiAqc2VjdDIgPSAoaSArIDEgPCBt YXBfc2l6ZSkgPyBtYXBbaSArIDFdIDogTlVMTDsKLS0KLS0gICAgICBpZiAoc2VjdDIgPT0gTlVM TAotLQkgIHx8IG9ial9zZWN0aW9uX2FkZHIgKHNlY3QxKSAhPSBvYmpfc2VjdGlvbl9hZGRyIChz ZWN0MikpCi0tCW1hcFtqKytdID0gc2VjdDE7Ci0tICAgICAgZWxzZQotLQl7Ci0tCSAgbWFwW2or K10gPSBwcmVmZXJyZWRfb2JqX3NlY3Rpb24gKHNlY3QxLCBzZWN0Mik7Ci0tCSAgKytpOwotLQl9 Ci0tICAgIH0KLS0KLS0gIGlmIChqIDwgbWFwX3NpemUpCi0tICAgIHsKLS0gICAgICAvKiBTb21l IGR1cGxpY2F0ZXMgd2VyZSBlbGltaW5hdGVkLgotLQkgVGhlIG5ldyBzaXplIHNob3VsZG4ndCBi ZSBsZXNzIHRoYW4gaGFsZiBvZiB0aGUgb3JpZ2luYWwuICovCi0tICAgICAgZ2RiX2Fzc2VydCAo bWFwX3NpemUgLyAyIDw9IGopOwotLSAgICAgIG1hcF9zaXplID0gajsKLS0KLS0gICAgICBtYXAg PSB4cmVhbGxvYyAobWFwLCBtYXBfc2l6ZSAqIHNpemVvZiAoKm1hcCkpOyAgLyogVHJpbSBleGNl c3Mgc3BhY2UuICAqLwotLSAgICB9Ci0rICBxc29ydCAobWFwLCBhbGxvY19zaXplLCBzaXplb2Yg KCptYXApLCBxc29ydF9jbXApOwotKyAgbWFwX3NpemUgPSBmaWx0ZXJfZGVidWdpbmZvX3NlY3Rp b25zKG1hcCwgYWxsb2Nfc2l6ZSk7Ci0rICBtYXBfc2l6ZSA9IGZpbHRlcl9vdmVybGFwcGluZ19z ZWN0aW9ucyhtYXAsIG1hcF9zaXplKTsKLSsKLSsgIGlmIChtYXBfc2l6ZSA8IGFsbG9jX3NpemUp Ci0rICAgIC8qIFNvbWUgc2VjdGlvbnMgd2VyZSBlbGltaW5hdGVkLiAgVHJpbSBleGNlc3Mgc3Bh Y2UuICAqLwotKyAgICBtYXAgPSB4cmVhbGxvYyAobWFwLCBtYXBfc2l6ZSAqIHNpemVvZiAoKm1h cCkpOwotICAgZWxzZQotLSAgICBnZGJfYXNzZXJ0IChqID09IG1hcF9zaXplKTsKLSsgICAgZ2Ri X2Fzc2VydCAoYWxsb2Nfc2l6ZSA9PSBtYXBfc2l6ZSk7Ci0gCi0gICAqcG1hcCA9IG1hcDsKLSAg ICpwbWFwX3NpemUgPSBtYXBfc2l6ZTsKCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVj CmluZGV4IGJjZDdiMzEuLjQ1ZTI4ZjkgMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5z cGVjCkBAIC0xMCw3ICsxMCw3IEBAIE5hbWU6IGdkYiV7P193aXRoX2RlYnVnOi1kZWJ1Z30KICMg U2V0IHZlcnNpb24gdG8gY29udGVudHMgb2YgZ2RiL3ZlcnNpb24uaW4uCiAjIE5PVEU6IHRoZSBG U0YgZ2RiIHZlcnNpb25zIGFyZSBudW1iZXJlZCBOLk0gZm9yIG9mZmljaWFsIHJlbGVhc2VzLCBs aWtlIDYuMyAKICMgYW5kLCBzaW5jZSBKYW51YXJ5IDIwMDUsIFguWS5aLmRhdGUgZm9yIGRhaWx5 IHNuYXBzaG90cywgbGlrZSA2LjMuNTAuMjAwNTAxMTIgIyAoZGFpbHkgc25hcHNob3QgZnJvbSBt YWlsaW5lKSwgb3IgNi4zLjAuMjAwNDAxMTIgKGhlYWQgb2YgdGhlIHJlbGVhc2UgYnJhbmNoKS4K LVZlcnNpb246IDYuOC41MC4yMDA5MDkxMAorVmVyc2lvbjogNi44LjkxLjIwMDkwOTE3CiAKICMg VGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0 YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3Rh eSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgpAQCAt MTgsNyArMTgsNyBAQCBSZWxlYXNlOiAxJXs/X3dpdGhfdXBzdHJlYW06LnVwc3RyZWFtfSV7P2Rp c3R9CiAKIExpY2Vuc2U6IEdQTHYzKwogR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwotU291 cmNlOiBmdHA6Ly9zb3VyY2V3YXJlLm9yZy9wdWIvZ2RiL3NuYXBzaG90cy9jdXJyZW50L2dkYi0l e3ZlcnNpb259LnRhci5iejIKK1NvdXJjZTogZnRwOi8vc291cmNld2FyZS5vcmcvcHViL2dkYi9z bmFwc2hvdHMvYnJhbmNoL2dkYi0le3ZlcnNpb259LnRhci5iejIKIEJ1aWxkcm9vdDogJShta3Rl bXAgLXVkICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LVhYWFhYWCkK IFVSTDogaHR0cDovL2dudS5vcmcvc29mdHdhcmUvZ2RiLwogCkBAIC0xNDksOSArMTQ5LDYgQEAg UGF0Y2gxNjM6IGdkYi02LjMtaW5oZXJpdGFuY2V0ZXN0LTIwMDUwNzI2LnBhdGNoCiAjIEFkZCBy ZWFkbmV2ZXIgb3B0aW9uCiBQYXRjaDE2NDogZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0 Y2gKIAotIyBGaXggZnJhbWUgcG9pbnRlciBmb3IgaWE2NCBzaWd0cmFtcCBmcmFtZQotUGF0Y2gx NjY6IGdkYi02LjMtaWE2NC1zaWd0cmFtcC1mcC0yMDA1MDkyNi5wYXRjaAotCiAjIEZpeCBpYTY0 IGdkYiBwcm9ibGVtIHdpdGggdXNlci1zcGVjaWZpZWQgU0lHSUxMIGhhbmRsaW5nCiBQYXRjaDE2 OTogZ2RiLTYuMy1pYTY0LXNpZ2lsbC0yMDA1MTExNS5wYXRjaAogCkBAIC0zNjAsOSArMzU3LDYg QEAgUGF0Y2gzNjA6IGdkYi02LjgtYno0NTcxODctbGFyZ2VmaWxlLXRlc3QucGF0Y2gKICMgRml4 IGNvbXBhdGliaWxpdHkgb2YgLS13aXRoLXN5c3RlbS1yZWFkbGluZSBhbmQgcmVhZGxpbmUtNi4w Ky4KIFBhdGNoMzc1OiBnZGItcmVhZGxpbmUtNi4wLnBhdGNoCiAKLSMgVGVtcG9yYXJpbHkgZGlz YWJsZSBhc3NlcnRpb24gY2hlY2tzIGNyYXNoaW5nIGluIHFzb3J0X2NtcCAoQlogNTE1NDM0KS4K LVBhdGNoMzc4OiBnZGItYno1MTU0MzQtcXNvcnRfY21wLnBhdGNoCi0KIEJ1aWxkUmVxdWlyZXM6 IG5jdXJzZXMtZGV2ZWwgdGV4aW5mbyBnZXR0ZXh0IGZsZXggYmlzb24gZXhwYXQtZGV2ZWwKIFJl cXVpcmVzOiByZWFkbGluZQogQnVpbGRSZXF1aXJlczogcmVhZGxpbmUtZGV2ZWwKQEAgLTQ3OSw3 ICs0NzMsNiBAQCBybSAtZiBnZGIvanYtZXhwLmMgZ2RiL20yLWV4cC5jIGdkYi9vYmpjLWV4cC5j IGdkYi9wLWV4cC5jCiAlcGF0Y2gxNjIgLXAxCiAlcGF0Y2gxNjMgLXAxCiAlcGF0Y2gxNjQgLXAx Ci0lcGF0Y2gxNjYgLXAxCiAlcGF0Y2gxNjkgLXAxCiAlcGF0Y2gxNzAgLXAxCiAlcGF0Y2gxNzYg LXAxCkBAIC01NTEsNyArNTQ0LDYgQEAgcm0gLWYgZ2RiL2p2LWV4cC5jIGdkYi9tMi1leHAuYyBn ZGIvb2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBhdGNoMzUyIC1wMQogJXBhdGNoMzYwIC1wMQog JXBhdGNoMzc1IC1wMQotJXBhdGNoMzc4IC1wMQogJXBhdGNoMTI0IC1wMQogCiBmaW5kIC1uYW1l ICIqLm9yaWciIHwgeGFyZ3Mgcm0gLWYKQEAgLTgxMSw2ICs4MDMsNyBAQCBmaQogJXtweXRob25f c2l0ZWxpYn0vZ2RiCiAlZW5kaWYJIyAwJXshP193aXRob3V0X3B5dGhvbjoxfQogJWVuZGlmCSMg MCV7IT9fd2l0aF91cHN0cmVhbToxfQorJXtfZGF0YWRpcn0vZ2RiCiAle19pbmZvZGlyfS9hbm5v dGF0ZS5pbmZvKgogJXtfaW5mb2Rpcn0vZ2RiLmluZm8qCiAle19pbmZvZGlyfS9nZGJpbnQuaW5m byoKQEAgLTgyNSw2ICs4MTgsMTEgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdlbG9nCisqIFRodSBT ZXAgMTcgMjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2 LjguOTEuMjAwOTA5MTctMQorLSBVcGdyYWRlIHRvIHRoZSBGU0YgR0RCIGdkYi03LjAgYnJhbmNo IGFuZCBzbmFwc2hvdDogNi44LjkxLjIwMDkwOTE3CistIGFyY2hlci1qYW5rcmF0b2NodmlsLWZl ZG9yYTEyIGNvbW1pdDogMTZmM2YwMWNjMmNiYzE1MjgzNDYyZWFhYmRmY2RlOTJjZjQyY2RjNgor LSBEcm9wIHRoZSBxc29ydF9jbXAgd29ya2Fyb3VuZCBhcyByZXNvbHZlZCBpbiBGU0YgR0RCIG5v dyAoQlogNTE1NDM0KS4KKwogKiBUaHUgU2VwIDEwIDIwMDkgSmFuIEtyYXRvY2h2aWwgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNi44LjUwLjIwMDkwOTEwLTEKIC0gVXBncmFkZSB0byB0 aGUgRlNGIEdEQiBnZGItNi44LjUwIHNuYXBzaG90OiA2LjguNTAuMjAwOTA5MTAKIC0gYXJjaGVy LWphbmtyYXRvY2h2aWwtZmVkb3JhMTIgY29tbWl0OiA5NDFlYjQ4N2E0MjkzM2U0NDJjYjRkMTEz NDRjZGE5NmVjYjhhMDRkCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggOTkx ZGZiMC4uYmRmOWNiMCAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsx IEBACi00NzZlMDA1YjhiYjMzYzVjM2IzZjBiN2JkOTM5ODhiYyAgZ2RiLTYuOC41MC4yMDA5MDkx MC50YXIuYnoyCitlYWVkOTE1MGIyMTljOGVlNTZiYjY3NmUzMmE5ZDJhNSAgZ2RiLTYuOC45MS4y MDA5MDkxNy50YXIuYnoyCg==