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: Rebase to FSF GDB 7.8.1. Date: Thu, 23 Jul 2026 18:31:36 GMT Message-ID: <178483149691.1.11503902733141504408.rpms-gdb-43b0bce1db25@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 43b0bce1db25f51fc4bd7b400f42984c8bca466b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogNDNiMGJjZTFkYjI1ZjUxZmM0YmQ3YjQwMGY0Mjk4NGM4 YmNhNDY2YgpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxNC0xMC0zMFQyMjoyMToxOCswMTowMApTdGF0cyAgOiArNTgvLTMzNjEg aW4gMTEgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1z L2dkYi9jLzQzYjBiY2UxZGIyNWY1MWZjNGJkN2I0MDBmNDI5ODRjOGJjYTQ2NmI/YnJhbmNoPWZp eC1kdXAtcGF0Y2gKCkxvZzoKUmViYXNlIHRvIEZTRiBHREIgNy44LjEuCgotLS0KZGlmZiAtLWdp dCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDM5YmMyZDguLmU0NTBmN2EgMTAwNjQ0 Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9nZGIt bGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy44LnRhci5negorL2dk Yi03LjguMS50YXIueHoKCmRpZmYgLS1naXQgYS9nZGItYXN5bmMtc3RvcHBlZC1vbi1waWQtYXJn LTFvZjIucGF0Y2ggYi9nZGItYXN5bmMtc3RvcHBlZC1vbi1waWQtYXJnLTFvZjIucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjMzEyZTMuLjAwMDAwMDAKLS0tIGEvZ2RiLWFz eW5jLXN0b3BwZWQtb24tcGlkLWFyZy0xb2YyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUw ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE0LTA5L21z ZzAwMTAyLmh0bWwKLVN1YmplY3Q6IFJlOiBSZWdyZXNzaW9uOiBHREIgc3RvcHBlZCBvbiBydW4g d2l0aCBhdHRhY2hlZCBwcm9jZXNzIChQUiAxNzM0NykgIFtSZTogW3B1c2hlZCs3LjhdIFJlOiBb UEFUQ0hdIEZpeCAiYXR0YWNoIiBjb21tYW5kIHZzIHVzZXIgaW5wdXQgcmFjZQotCi1PbiAwOS8w My8yMDE0IDA4OjU4IEFNLCBKYW4gS3JhdG9jaHZpbCB3cm90ZToKLQotPiBodHRwczovL3NvdXJj ZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xNzM0NwotCi1UaGFua3MgSmFuLgot Ci1IZXJlJ3MgYSBmaXgsIHRlc3QgaW5jbHVkZWQuICBDb21tZW50cz8KLQotVGhhbmtzLAotUGVk cm8gQWx2ZXMKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVtQQVRDSF0gZ2RiLzE3MzQ3 IC0gUmVncmVzc2lvbjogR0RCIHN0b3BwZWQgb24gcnVuIHdpdGggYXR0YWNoZWQgcHJvY2Vzcwot Ci1Eb2luZzoKLQotICBnZGIgLS1waWQ9UElEIC1leCBydW4KLQotUmVzdWx0cyBpbiBHREIgZ2V0 dGluZyBhIFNJR1RUSU4sIGFuZCB0aHVzIGVuZGluZyBzdG9wcGVkLiAgVGhhdCdzCi11c3VhbGx5 IGluZGljYXRpdmUgb2YgYSBtaXNzaW5nIHRhcmdldF90ZXJtaW5hbF9vdXJzIGNhbGwuCi0KLUUu Zy4sIGZyb20gdGhlIFBSOgotCi0gJCBzbGVlcCAxaCAmIHA9JCE7IHNsZWVwIDAuMTsgZ2RiIC1i YXRjaCBzbGVlcCAkcCAtZXggcnVuCi0gWzFdIDI4MjYzCi0gWzFdICAgS2lsbGVkICAgICAgICAg ICAgICAgICAgc2xlZXAgMWgKLQotIFsyXSsgIFN0b3BwZWQgICAgICAgICAgICAgICAgIGdkYiAt YmF0Y2ggc2xlZXAgJHAgLWV4IHJ1bgotCi1UaGUgd29ya2Fyb3VuZCBpcyBkb2luZzoKLQotIGdk YiAtZXggImF0dGFjaCAkUElEIiAtZXggInJ1biIKLQotaW5zdGVhZCBvZgotCi0gZ2RiIFstcF0g JFBJRCAtZXggInJ1biIKLQotV2l0aCB0aGUgZm9ybWVyLCBnZGIgd2FpdHMgZm9yIHRoZSBhdHRh Y2ggY29tbWFuZCB0byBjb21wbGV0ZSBiZWZvcmUKLW1vdmluZyBvbiB0byB0aGUgInJ1biIgY29t bWFuZCwgYmVjYXVzZSB0aGUgaW50ZXJwcmV0ZXIgaXMgaW4gc3luYwotbW9kZSBhdCB0aGlzIHBv aW50LCB3aXRoaW4gZXhlY3V0ZV9jb21tYW5kLiAgQnV0IGZvciB0aGUgbGF0dGVyLAotYXR0YWNo X2NvbW1hbmQgaXMgY2FsbGVkIGRpcmVjdGx5IGZyb20gY2FwdHVyZWRfbWFpbiwgYW5kIHRodXMg bWlzc2VzCi10aGF0IHdhaXRpbmcuICBJT1csICJydW4iIGlzIHJ1bm5pbmcgYmVmb3JlIHRoZSBh dHRhY2ggY29udGludWF0aW9uCi1oYXMgcnVuLCBiZWZvcmUgdGhlIHByb2dyYW0gc3RvcHMgYW5k IGF0dGFjaCBjb21wbGV0ZXMuICBUaGUgYnJva2VuCi10ZXJtaW5hbCBzZXR0aW5ncyBhcmUganVz dCBvbmUgc3ltcHRvbSBvZiB0aGF0LiAgQW55IGNvbW1hbmQgdGhhdAotcXVlcmllcyBvciByZXF1 aXJlcyBpbnB1dCByZXN1bHRzIGluIHRoZSBzYW1lLgotCi1UaGUgZml4IGlzIHRvIHdhaXQgaW4g Y2F0Y2hfY29tbWFuZF9lcnJvcnMgKHdoaWNoIGlzIHNwZWNpZmljIHRvCi1tYWluLmMgbm93YWRh eXMpLCBqdXN0IGxpa2Ugd2Ugd2FpdCBpbiBleGVjdXRlX2NvbW1hbmQuCi0KLWdkYi9DaGFuZ2VM b2c6Ci0yMDE0LTA5LTAzICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotCi0JUFIg Z2RiLzE3MzQ3Ci0JKiBtYWluLmM6IEluY2x1ZGUgImluZnJ1bi5oIi4KLQkoY2F0Y2hfY29tbWFu ZF9lcnJvcnMsIGNhdGNoX2NvbW1hbmRfZXJyb3JzX2NvbnN0KTogV2FpdCBmb3IgdGhlCi0JZm9y ZWdyb3VuZCBjb21tYW5kIHRvIGNvbXBsZXRlLgotCSogdG9wLmMgKG1heWJlX3dhaXRfc3luY19j b21tYW5kX2RvbmUpOiBOZXcgZnVuY3Rpb24sIGZhY3RvcmVkIG91dAotCWZyb20gLi4uCi0JKG1h eWJlX3dhaXRfc3luY19jb21tYW5kX2RvbmUpOiAuLi4gaGVyZS4KLQkqIHRvcC5oIChtYXliZV93 YWl0X3N5bmNfY29tbWFuZF9kb25lKTogTmV3IGRlY2xhcmF0aW9uLgotCi1nZGIvdGVzdHN1aXRl L0NoYW5nZUxvZzoKLTIwMTQtMDktMDMgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+ Ci0KLQlQUiBnZGIvMTczNDcKLQkqIGdkYi5iYXNlL2F0dGFjaC5leHAgKHNwYXduX3Rlc3RfcHJv Zyk6IE5ldywgZmFjdG9yZWQgb3V0IGZyb20KLQkuLi4KLQkoZG9fYXR0YWNoX3Rlc3RzLCBkb19j YWxsX2F0dGFjaF90ZXN0cywgZG9fY29tbWFuZF9hdHRhY2hfdGVzdHMpOgotCS4uLiBoZXJlLgot CShnZGJfc3Bhd25fd2l0aF9jbWRsaW5lX29wdHMpOiBOZXcgcHJvY2VkdXJlLgotCSh0ZXN0X2Nv bW1hbmRfbGluZV9hdHRhY2hfcnVuKTogTmV3IHByb2NlZHVyZS4KLQkodG9wIGxldmVsKTogQ2Fs bCBpdC4KLS0tLQotIGdkYi9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArKysK LSBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5leHAgfCAxMTggKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0KLSBnZGIvdG9wLmMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMjYgKysrKystLS0tCi0gZ2RiL3RvcC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA4ICsrKwotIDQgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9u cygtKQotCi1JbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCi09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC5vcmlnL2dkYi9tYWluLmMJMjAxNC0wOS0wNyAxOToxMjo0NS4wNjY5ODE1ODggKzAyMDAKLSsr KyBnZGItNy44L2dkYi9tYWluLmMJMjAxNC0wOS0wNyAxOToxNDoyMi42MTMwOTUyMDEgKzAyMDAK LUBAIC00Nyw2ICs0Nyw3IEBACi0gI2luY2x1ZGUgImZpbGVuYW1lcy5oIgotICNpbmNsdWRlICJm aWxlc3R1ZmYuaCIKLSAjaW5jbHVkZSAiZXZlbnQtdG9wLmgiCi0rI2luY2x1ZGUgImluZnJ1bi5o IgotIAotIC8qIFRoZSBzZWxlY3RlZCBpbnRlcnByZXRlci4gIFRoaXMgd2lsbCBiZSB1c2VkIGFz IGEgc2V0IGNvbW1hbmQKLSAgICB2YXJpYWJsZSwgc28gaXQgc2hvdWxkIGFsd2F5cyBiZSBtYWxs b2MnZWQgLSBzaW5jZQotQEAgLTM1MCw3ICszNTEsMTEgQEAgY2F0Y2hfY29tbWFuZF9lcnJvcnMg KGNhdGNoX2NvbW1hbmRfZXJybwotIAotICAgVFJZX0NBVENIIChlLCBtYXNrKQotICAgICB7Ci0r ICAgICAgaW50IHdhc19zeW5jID0gc3luY19leGVjdXRpb247Ci0rCi0gICAgICAgY29tbWFuZCAo YXJnLCBmcm9tX3R0eSk7Ci0rCi0rICAgICAgbWF5YmVfd2FpdF9zeW5jX2NvbW1hbmRfZG9uZSAo d2FzX3N5bmMpOwotICAgICB9Ci0gICByZXR1cm4gaGFuZGxlX2NvbW1hbmRfZXJyb3JzIChlKTsK LSB9Ci1AQCAtMzY5LDcgKzM3NCwxMSBAQCBjYXRjaF9jb21tYW5kX2Vycm9yc19jb25zdCAoY2F0 Y2hfY29tbWFuCi0gCi0gICBUUllfQ0FUQ0ggKGUsIG1hc2spCi0gICAgIHsKLSsgICAgICBpbnQg d2FzX3N5bmMgPSBzeW5jX2V4ZWN1dGlvbjsKLSsKLSAgICAgICBjb21tYW5kIChhcmcsIGZyb21f dHR5KTsKLSsKLSsgICAgICBtYXliZV93YWl0X3N5bmNfY29tbWFuZF9kb25lICh3YXNfc3luYyk7 Ci0gICAgIH0KLSAgIHJldHVybiBoYW5kbGVfY29tbWFuZF9lcnJvcnMgKGUpOwotIH0KLUluZGV4 OiBnZGItNy44L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cAotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03Ljgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5leHAJMjAxNC0w OS0wNyAxOToxMjo0NS4wNjc5ODE1ODkgKzAyMDAKLSsrKyBnZGItNy44L2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvYXR0YWNoLmV4cAkyMDE0LTA5LTA3IDE5OjEyOjQ4LjYwMTk4NTcwNiArMDIwMAot QEAgLTU4LDYgKzU4LDM3IEBAIGlmIFtnZXRfY29tcGlsZXJfaW5mb10gewotICAgICByZXR1cm4g LTEKLSB9Ci0gCi0rIyBTdGFydCB0aGUgcHJvZ3JhbSBydW5uaW5nIGFuZCB0aGVuIHdhaXQgZm9y IGEgYml0LCB0byBiZSBzdXJlIHRoYXQKLSsjIGl0IGNhbiBiZSBhdHRhY2hlZCB0by4gIFJldHVy biB0aGUgcHJvY2VzcydzIFBJRC4KLSsKLStwcm9jIHNwYXduX3Rlc3RfcHJvZyB7IGV4ZWN1dGFi bGUgfSB7Ci0rICAgIHNldCB0ZXN0cGlkIFtldmFsIGV4ZWMgJGV4ZWN1dGFibGUgJl0KLSsgICAg ZXhlYyBzbGVlcCAyCi0rICAgIGlmIHsgW2lzdGFyZ2V0ICIqLSotY3lnd2luKiJdIH0gewotKwkj IHRlc3RwaWQgaXMgdGhlIEN5Z3dpbiBQSUQsIEdEQiB1c2VzIHRoZSBXaW5kb3dzIFBJRCwgd2hp Y2ggbWlnaHQgYmUKLSsJIyBkaWZmZXJlbnQgZHVlIHRvIHRoZSB3YXkgZm9yay9leGVjIHdvcmtz LgotKwlzZXQgdGVzdHBpZCBbIGV4ZWMgcHMgLWUgfCBnYXdrICJ7IGlmIChcJDEgPT0gJHRlc3Rw aWQpIHByaW50IFwkNDsgfSIgXQotKyAgICB9Ci0rCi0rICAgIHJldHVybiAkdGVzdHBpZAotK30K LSsKLSsjIFNwYXduIEdEQiB3aXRoIENNRExJTkVfRkxBR1MgYXBwZW5kZWQgdG8gdGhlIEdEQkZM QUdTIGdsb2JhbC4KLSsKLStwcm9jIGdkYl9zcGF3bl93aXRoX2NtZGxpbmVfb3B0cyB7IGNtZGxp bmVfZmxhZ3MgfSB7Ci0rICAgIGdsb2JhbCBHREJGTEFHUwotKwotKyAgICBzZXQgc2F2ZWRfZ2Ri ZmxhZ3MgJEdEQkZMQUdTCi0rCi0rICAgIGFwcGVuZCBHREJGTEFHUyAkY21kbGluZV9mbGFncwot KwotKyAgICBzZXQgcmVzIFtnZGJfc3Bhd25dCi0rCi0rICAgIHNldCBHREJGTEFHUyAkc2F2ZWRf Z2RiZmxhZ3MKLSsKLSsgICAgcmV0dXJuICRyZXMKLSt9Ci0rCi0gcHJvYyBkb19hdHRhY2hfdGVz dHMge30gewotICAgICBnbG9iYWwgZ2RiX3Byb21wdAotICAgICBnbG9iYWwgYmluZmlsZQotQEAg LTcwLDEzICsxMDEsNyBAQCBwcm9jIGRvX2F0dGFjaF90ZXN0cyB7fSB7Ci0gICAgICMgU3RhcnQg dGhlIHByb2dyYW0gcnVubmluZyBhbmQgdGhlbiB3YWl0IGZvciBhIGJpdCwgdG8gYmUgc3VyZQot ICAgICAjIHRoYXQgaXQgY2FuIGJlIGF0dGFjaGVkIHRvLgotIAotLSAgICBzZXQgdGVzdHBpZCBb ZXZhbCBleGVjICRiaW5maWxlICZdCi0tICAgIGV4ZWMgc2xlZXAgMgotLSAgICBpZiB7IFtpc3Rh cmdldCAiKi0qLWN5Z3dpbioiXSB9IHsKLS0JIyB0ZXN0cGlkIGlzIHRoZSBDeWd3aW4gUElELCBH REIgdXNlcyB0aGUgV2luZG93cyBQSUQsIHdoaWNoIG1pZ2h0IGJlCi0tCSMgZGlmZmVyZW50IGR1 ZSB0byB0aGUgd2F5IGZvcmsvZXhlYyB3b3Jrcy4KLS0Jc2V0IHRlc3RwaWQgWyBleGVjIHBzIC1l IHwgZ2F3ayAieyBpZiAoXCQxID09ICR0ZXN0cGlkKSBwcmludCBcJDQ7IH0iIF0KLS0gICAgfQot KyAgICBzZXQgdGVzdHBpZCBbc3Bhd25fdGVzdF9wcm9nICRiaW5maWxlXQotIAotICAgICAjIFZl cmlmeSB0aGF0IHdlIGNhbm5vdCBhdHRhY2ggdG8gbm9uc2Vuc2UuCi0gCi1AQCAtMjc5LDE2ICsz MDQsNyBAQCBwcm9jIGRvX2F0dGFjaF90ZXN0cyB7fSB7Ci0gICAgCi0gICAgIHJlbW90ZV9leGVj IGJ1aWxkICJraWxsIC05ICR7dGVzdHBpZH0iCi0gCi0tICAgICMgU3RhcnQgdGhlIHByb2dyYW0g cnVubmluZyBhbmQgdGhlbiB3YWl0IGZvciBhIGJpdCwgdG8gYmUgc3VyZQotLSAgICAjIHRoYXQg aXQgY2FuIGJlIGF0dGFjaGVkIHRvLgotLSAgIAotLSAgICBzZXQgdGVzdHBpZCBbZXZhbCBleGVj ICRiaW5maWxlICZdCi0tICAgIGV4ZWMgc2xlZXAgMgotLSAgICBpZiB7IFtpc3RhcmdldCAiKi0q LWN5Z3dpbioiXSB9IHsKLS0JIyB0ZXN0cGlkIGlzIHRoZSBDeWd3aW4gUElELCBHREIgdXNlcyB0 aGUgV2luZG93cyBQSUQsIHdoaWNoIG1pZ2h0IGJlCi0tCSMgZGlmZmVyZW50IGR1ZSB0byB0aGUg d2F5IGZvcmsvZXhlYyB3b3Jrcy4KLS0Jc2V0IHRlc3RwaWQgWyBleGVjIHBzIC1lIHwgZ2F3ayAi eyBpZiAoXCQxID09ICR0ZXN0cGlkKSBwcmludCBcJDQ7IH0iIF0KLS0gICAgfQotKyAgICBzZXQg dGVzdHBpZCBbc3Bhd25fdGVzdF9wcm9nICRiaW5maWxlXQotIAotICAgICAjIFZlcmlmeSB0aGF0 IHdlIGNhbiBhdHRhY2ggdG8gdGhlIHByb2Nlc3MsIGFuZCBmaW5kIGl0cyBhLm91dAotICAgICAj IHdoZW4gd2UncmUgY2QnZCB0byBzb21lIGRpcmVjdG9yeSB0aGF0IGRvZXNuJ3QgY29udGFpbiB0 aGUKLUBAIC0zMzUsMTYgKzM1MSw3IEBAIHByb2MgZG9fY2FsbF9hdHRhY2hfdGVzdHMge30gewot ICAgICBnbG9iYWwgZ2RiX3Byb21wdAotICAgICBnbG9iYWwgYmluZmlsZTIKLSAgICAgCi0tICAg ICMgU3RhcnQgdGhlIHByb2dyYW0gcnVubmluZyBhbmQgdGhlbiB3YWl0IGZvciBhIGJpdCwgdG8g YmUgc3VyZQotLSAgICAjIHRoYXQgaXQgY2FuIGJlIGF0dGFjaGVkIHRvLgotLSAgIAotLSAgICBz ZXQgdGVzdHBpZCBbZXZhbCBleGVjICRiaW5maWxlMiAmXQotLSAgICBleGVjIHNsZWVwIDIKLS0g ICAgaWYgeyBbaXN0YXJnZXQgIiotKi1jeWd3aW4qIl0gfSB7Ci0tCSMgdGVzdHBpZCBpcyB0aGUg Q3lnd2luIFBJRCwgR0RCIHVzZXMgdGhlIFdpbmRvd3MgUElELCB3aGljaCBtaWdodCBiZQotLQkj IGRpZmZlcmVudCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4ZWMgd29ya3MuCi0tCXNldCB0ZXN0cGlk IFsgZXhlYyBwcyAtZSB8IGdhd2sgInsgaWYgKFwkMSA9PSAkdGVzdHBpZCkgcHJpbnQgXCQ0OyB9 IiBdCi0tICAgIH0KLSsgICAgc2V0IHRlc3RwaWQgW3NwYXduX3Rlc3RfcHJvZyAkYmluZmlsZTJd Ci0gCi0gICAgICMgQXR0YWNoCi0gICAgCi1AQCAtMzk3LDE2ICs0MDQsNyBAQCBwcm9jIGRvX2Nv bW1hbmRfYXR0YWNoX3Rlc3RzIHt9IHsKLSAJcmV0dXJuIDAKLSAgICAgfQotIAotLSAgICAjIFN0 YXJ0IHRoZSBwcm9ncmFtIHJ1bm5pbmcgYW5kIHRoZW4gd2FpdCBmb3IgYSBiaXQsIHRvIGJlIHN1 cmUKLS0gICAgIyB0aGF0IGl0IGNhbiBiZSBhdHRhY2hlZCB0by4KLS0KLS0gICAgc2V0IHRlc3Rw aWQgW2V2YWwgZXhlYyAkYmluZmlsZSAmXQotLSAgICBleGVjIHNsZWVwIDIKLS0gICAgaWYgeyBb aXN0YXJnZXQgIiotKi1jeWd3aW4qIl0gfSB7Ci0tCSMgdGVzdHBpZCBpcyB0aGUgQ3lnd2luIFBJ RCwgR0RCIHVzZXMgdGhlIFdpbmRvd3MgUElELCB3aGljaCBtaWdodCBiZQotLQkjIGRpZmZlcmVu dCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4ZWMgd29ya3MuCi0tCXNldCB0ZXN0cGlkIFsgZXhlYyBw cyAtZSB8IGdhd2sgInsgaWYgKFwkMSA9PSAkdGVzdHBpZCkgcHJpbnQgXCQ0OyB9IiBdCi0tICAg IH0KLSsgICAgc2V0IHRlc3RwaWQgW3NwYXduX3Rlc3RfcHJvZyAkYmluZmlsZV0KLSAKLSAgICAg Z2RiX2V4aXQKLSAgICAgaWYgJHZlcmJvc2U+MSB0aGVuIHsKLUBAIC00MjksNiArNDI3LDUwIEBA IHByb2MgZG9fY29tbWFuZF9hdHRhY2hfdGVzdHMge30gewotICAgICByZW1vdGVfZXhlYyBidWls ZCAia2lsbCAtOSAke3Rlc3RwaWR9IgotIH0KLSAKLSsjIFRlc3QgJyBnZGIgLS1waWQgUElEIC1l eCAicnVuIiAnLiAgR0RCIHVzZWQgdG8gaGF2ZSBhIGJ1ZyB3aGVyZQotKyMgInJ1biIgd291bGQg cnVuIGJlZm9yZSB0aGUgYXR0YWNoIGZpbmlzaGVkIC0gUFIxNzM0Ny4KLSsKLStwcm9jIHRlc3Rf Y29tbWFuZF9saW5lX2F0dGFjaF9ydW4ge30gewotKyAgICBnbG9iYWwgZ2RiX3Byb21wdAotKyAg ICBnbG9iYWwgYmluZmlsZQotKyAgICBnbG9iYWwgdmVyYm9zZQotKyAgICBnbG9iYWwgR0RCCi0r ICAgIGdsb2JhbCBJTlRFUk5BTF9HREJGTEFHUwotKwotKyAgICBpZiAhW2lzbmF0aXZlXSB0aGVu IHsKLSsJdW5zdXBwb3J0ZWQgImNvbW1hbmRsaW5lIGF0dGFjaCBydW4gdGVzdCIKLSsJcmV0dXJu IDAKLSsgICAgfQotKwotKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJjbWRsaW5lIGF0dGFjaCBydW4i IHsKLSsJc2V0IHRlc3RwaWQgW3NwYXduX3Rlc3RfcHJvZyAkYmluZmlsZV0KLSsKLSsJc2V0IHRl c3QgInJ1biB0byBwcm9tcHQiCi0rCWdkYl9leGl0Ci0rCXNldCByZXMgW2dkYl9zcGF3bl93aXRo X2NtZGxpbmVfb3B0cyAiLS1waWQ9JHRlc3RwaWQgLWV4IFwic3RhcnRcIiJdCi0rCWlmIHsgJHJl cyAhPSAwfSB7Ci0rCSAgICBmYWlsICR0ZXN0Ci0rCSAgICByZXR1cm4gJHJlcwotKwl9Ci0rCWdk Yl90ZXN0X211bHRpcGxlICIiICR0ZXN0IHsKLSsJICAgIC1yZSB7QXR0YWNoaW5nIHRvLipTdGFy dCBpdCBmcm9tIHRoZSBiZWdpbm5pbmdcPyBcKHkgb3IgblwpIH0gewotKwkJcGFzcyAkdGVzdAot KwkgICAgfQotKwl9Ci0rCi0rCXNlbmRfZ2RiICJ5XG4iCi0rCi0rCXNldCB0ZXN0ICJydW4gdG8g bWFpbiIKLSsJZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgewotKwkgICAgLXJlICJUZW1wb3Jh cnkgYnJlYWtwb2ludCAuKiBtYWluIC4qJGdkYl9wcm9tcHQgJCIgewotKwkJcGFzcyAkdGVzdAot KwkgICAgfQotKwl9Ci0rCi0rCSMgR2V0IHJpZCBvZiB0aGUgcHJvY2VzcwotKwlyZW1vdGVfZXhl YyBidWlsZCAia2lsbCAtOSAke3Rlc3RwaWR9IgotKyAgICB9Ci0rfQotIAotICMgU3RhcnQgd2l0 aCBhIGZyZXNoIGdkYgotIAotQEAgLTQ1Myw0ICs0OTUsNiBAQCBkb19jYWxsX2F0dGFjaF90ZXN0 cwotIAotIGRvX2NvbW1hbmRfYXR0YWNoX3Rlc3RzCi0gCi0rdGVzdF9jb21tYW5kX2xpbmVfYXR0 YWNoX3J1bgotKwotIHJldHVybiAwCi1JbmRleDogZ2RiLTcuOC9nZGIvdG9wLmMKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL3RvcC5jCTIwMTQtMDktMDcgMTk6MTI6NDUuMDY3OTgx NTg5ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvdG9wLmMJMjAxNC0wOS0wNyAxOToxMjo0OC42MDE5 ODU3MDYgKzAyMDAKLUBAIC0zNzUsNiArMzc1LDIxIEBAIGNoZWNrX2ZyYW1lX2xhbmd1YWdlX2No YW5nZSAodm9pZCkKLSAgICAgfQotIH0KLSAKLSt2b2lkCi0rbWF5YmVfd2FpdF9zeW5jX2NvbW1h bmRfZG9uZSAoaW50IHdhc19zeW5jKQotK3sKLSsgIC8qIElmIHRoZSBpbnRlcnByZXRlciBpcyBp biBzeW5jIG1vZGUgKHdlJ3JlIHJ1bm5pbmcgYSB1c2VyCi0rICAgICBjb21tYW5kJ3MgbGlzdCwg cnVubmluZyBjb21tYW5kIGhvb2tzIG9yIHNpbWlsYXJzKSwgYW5kIHdlCi0rICAgICBqdXN0IHJh biBhIHN5bmNocm9ub3VzIGNvbW1hbmQgdGhhdCBzdGFydGVkIHRoZSB0YXJnZXQsIHdhaXQKLSsg ICAgIGZvciB0aGF0IGNvbW1hbmQgdG8gZW5kLiAgKi8KLSsgIGlmICghaW50ZXJwcmV0ZXJfYXN5 bmMgJiYgIXdhc19zeW5jICYmIHN5bmNfZXhlY3V0aW9uKQotKyAgICB7Ci0rICAgICAgd2hpbGUg KGdkYl9kb19vbmVfZXZlbnQgKCkgPj0gMCkKLSsJaWYgKCFzeW5jX2V4ZWN1dGlvbikKLSsJICBi cmVhazsKLSsgICAgfQotK30KLSsKLSAvKiBFeGVjdXRlIHRoZSBsaW5lIFAgYXMgYSBjb21tYW5k LCBpbiB0aGUgY3VycmVudCB1c2VyIGNvbnRleHQuCi0gICAgUGFzcyBGUk9NX1RUWSBhcyBzZWNv bmQgYXJndW1lbnQgdG8gdGhlIGRlZmluaW5nIGZ1bmN0aW9uLiAgKi8KLSAKLUBAIC00NjEsMTYg KzQ3Niw3IEBAIGV4ZWN1dGVfY29tbWFuZCAoY2hhciAqcCwgaW50IGZyb21fdHR5KQotICAgICAg IGVsc2UKLSAJY21kX2Z1bmMgKGMsIGFyZywgZnJvbV90dHkpOwotIAotLSAgICAgIC8qIElmIHRo ZSBpbnRlcnByZXRlciBpcyBpbiBzeW5jIG1vZGUgKHdlJ3JlIHJ1bm5pbmcgYSB1c2VyCi0tCSBj b21tYW5kJ3MgbGlzdCwgcnVubmluZyBjb21tYW5kIGhvb2tzIG9yIHNpbWlsYXJzKSwgYW5kIHdl Ci0tCSBqdXN0IHJhbiBhIHN5bmNocm9ub3VzIGNvbW1hbmQgdGhhdCBzdGFydGVkIHRoZSB0YXJn ZXQsIHdhaXQKLS0JIGZvciB0aGF0IGNvbW1hbmQgdG8gZW5kLiAgKi8KLS0gICAgICBpZiAoIWlu dGVycHJldGVyX2FzeW5jICYmICF3YXNfc3luYyAmJiBzeW5jX2V4ZWN1dGlvbikKLS0JewotLQkg IHdoaWxlIChnZGJfZG9fb25lX2V2ZW50ICgpID49IDApCi0tCSAgICBpZiAoIXN5bmNfZXhlY3V0 aW9uKQotLQkgICAgICBicmVhazsKLS0JfQotKyAgICAgIG1heWJlX3dhaXRfc3luY19jb21tYW5k X2RvbmUgKHdhc19zeW5jKTsKLSAKLSAgICAgICAvKiBJZiB0aGlzIGNvbW1hbmQgaGFzIGJlZW4g cG9zdC1ob29rZWQsIHJ1biB0aGUgaG9vayBsYXN0LiAgKi8KLSAgICAgICBleGVjdXRlX2NtZF9w b3N0X2hvb2sgKGMpOwotSW5kZXg6IGdkYi03LjgvZ2RiL3RvcC5oCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC5vcmlnL2dkYi90b3AuaAkyMDE0LTA5LTA3IDE5OjEyOjQ1LjA2ODk4MTU5MCArMDIw MAotKysrIGdkYi03LjgvZ2RiL3RvcC5oCTIwMTQtMDktMDcgMTk6MTI6NDguNjAxOTg1NzA2ICsw MjAwCi1AQCAtNDIsNiArNDIsMTQgQEAgZXh0ZXJuIHZvaWQgcXVpdF9jb21tYW5kIChjaGFyICos IGludCk7Ci0gZXh0ZXJuIHZvaWQgcXVpdF9jb3ZlciAodm9pZCk7Ci0gZXh0ZXJuIHZvaWQgZXhl Y3V0ZV9jb21tYW5kIChjaGFyICosIGludCk7Ci0gCi0rLyogSWYgdGhlIGludGVycHJldGVyIGlz IGluIHN5bmMgbW9kZSAod2UncmUgcnVubmluZyBhIHVzZXIgY29tbWFuZCdzCi0rICAgbGlzdCwg cnVubmluZyBjb21tYW5kIGhvb2tzIG9yIHNpbWlsYXJzKSwgYW5kIHdlIGp1c3QgcmFuIGEKLSsg ICBzeW5jaHJvbm91cyBjb21tYW5kIHRoYXQgc3RhcnRlZCB0aGUgdGFyZ2V0LCB3YWl0IGZvciB0 aGF0IGNvbW1hbmQKLSsgICB0byBlbmQuICBXQVNfU1lOQyBpbmRpY2F0ZXMgd2hldGhlciBzeW5j X2V4ZWN1dGlvbiB3YXMgc2V0IGJlZm9yZQotKyAgIHRoZSBjb21tYW5kIHdhcyBydW4uICAqLwot KwotK2V4dGVybiB2b2lkIG1heWJlX3dhaXRfc3luY19jb21tYW5kX2RvbmUgKGludCB3YXNfc3lu Yyk7Ci0rCi0gZXh0ZXJuIHZvaWQgY2hlY2tfZnJhbWVfbGFuZ3VhZ2VfY2hhbmdlICh2b2lkKTsK LSAKLSAvKiBQcmVwYXJlIGZvciBleGVjdXRpb24gb2YgYSBjb21tYW5kLgoKZGlmZiAtLWdpdCBh L2dkYi1hc3luYy1zdG9wcGVkLW9uLXBpZC1hcmctMm9mMi5wYXRjaCBiL2dkYi1hc3luYy1zdG9w cGVkLW9uLXBpZC1hcmctMm9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NjY4MzMyNi4uMDAwMDAwMAotLS0gYS9nZGItYXN5bmMtc3RvcHBlZC1vbi1waWQtYXJnLTJvZjIu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTcgKzAsMCBAQAotaHR0cDovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDkvbXNnMDAxNzQuaHRtbAotU3ViamVjdDogUmU6IFJl Z3Jlc3Npb246IEdEQiBzdG9wcGVkIG9uIHJ1biB3aXRoIGF0dGFjaGVkIHByb2Nlc3MgKFBSIDE3 MzQ3KSBbUmU6IFtwdXNoZWQrNy44XSBSZTogW1BBVENIXSBGaXggImF0dGFjaCIgY29tbWFuZCB2 cyB1c2VyIGlucHV0IHJhY2UKLQotCi0tLWE4V3Q4dTFLbXdVWDNZMkMKLUNvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5l Ci0KLU9uIFdlZCwgMDMgU2VwIDIwMTQgMjI6MTE6MDMgKzAyMDAsIFBlZHJvIEFsdmVzIHdyb3Rl OgotPiBPbiAwOS8wMy8yMDE0IDA4OjU4IEFNLCBKYW4gS3JhdG9jaHZpbCB3cm90ZToKLT4gCi0+ ID4gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTczNDcK LT4gCi0+IFRoYW5rcyBKYW4uCi0+IAotPiBIZXJlJ3MgYSBmaXgsIHRlc3QgaW5jbHVkZWQuICBD b21tZW50cz8KLQotSW4gdGhlIHRlc3RzdWl0ZSBydW4gZnJvbSB0aGUgRmVkb3JhIHJwbSBwYWNr YWdpbmcgSSBnZXQ6Ci0KLUdOVSBnZGIgKEdEQikgRmVkb3JhIDcuOC0yMS5mYzIxXk0KLUNvcHly aWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy5eTQotTGljZW5zZSBH UEx2Mys6IEdOVSBHUEwgdmVyc2lvbiAzIG9yIGxhdGVyIDxodHRwOi8vZ251Lm9yZy9saWNlbnNl cy9ncGwuaHRtbD5eTQotVGhpcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgYXJlIGZyZWUgdG8gY2hh bmdlIGFuZCByZWRpc3RyaWJ1dGUgaXQuXk0KLVRoZXJlIGlzIE5PIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXcuICBUeXBlICJzaG93IGNvcHlpbmciXk0KLWFuZCAic2hv dyB3YXJyYW50eSIgZm9yIGRldGFpbHMuXk0KLVRoaXMgR0RCIHdhcyBjb25maWd1cmVkIGFzICJp Njg2LXJlZGhhdC1saW51eC1nbnUiLl5NCi1UeXBlICJzaG93IGNvbmZpZ3VyYXRpb24iIGZvciBj b25maWd1cmF0aW9uIGRldGFpbHMuXk0KLUZvciBidWcgcmVwb3J0aW5nIGluc3RydWN0aW9ucywg cGxlYXNlIHNlZTpeTQotPGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9nZGIvYnVncy8+Ll5N Ci1GaW5kIHRoZSBHREIgbWFudWFsIGFuZCBvdGhlciBkb2N1bWVudGF0aW9uIHJlc291cmNlcyBv bmxpbmUgYXQ6Xk0KLTxodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ2RiL2RvY3VtZW50YXRp b24vPi5eTQotRm9yIGhlbHAsIHR5cGUgImhlbHAiLl5NCi1UeXBlICJhcHJvcG9zIHdvcmQiIHRv IHNlYXJjaCBmb3IgY29tbWFuZHMgcmVsYXRlZCB0byAid29yZCIuXk0KLUF0dGFjaGluZyB0byBw cm9jZXNzIDI3MDI4Xk0KLVJlYWRpbmcgc3ltYm9scyBmcm9tIC91bnNhZmVidWlsZC1pNjg2LXJl ZGhhdC1saW51eC1nbnUvZ2RiL3Rlc3RzdWl0ZS51bml4Li1tMzIvb3V0cHV0cy9nZGIuYmFzZS9h dHRhY2gvYXR0YWNoLi4uZG9uZS5eTQotUmVhZGluZyBzeW1ib2xzIGZyb20gL2xpYi9saWJtLnNv LjYuLi5SZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9kZWJ1Zy91c3IvbGliL2xpYm0tMi4x OS45MC5zby5kZWJ1Zy4uLmRvbmUuXk0KLWRvbmUuXk0KLUxvYWRlZCBzeW1ib2xzIGZvciAvbGli L2xpYm0uc28uNl5NCi1SZWFkaW5nIHN5bWJvbHMgZnJvbSAvbGliL2xpYmMuc28uNi4uLlJlYWRp bmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2RlYnVnL3Vzci9saWIvbGliYy0yLjE5LjkwLnNvLmRl YnVnLi4uZG9uZS5eTQotZG9uZS5eTQotTG9hZGVkIHN5bWJvbHMgZm9yIC9saWIvbGliYy5zby42 Xk0KLVJlYWRpbmcgc3ltYm9scyBmcm9tIC9saWIvbGQtbGludXguc28uMi4uLlJlYWRpbmcgc3lt Ym9scyBmcm9tIC91c3IvbGliL2RlYnVnL3Vzci9saWIvbGQtMi4xOS45MC5zby5kZWJ1Zy4uLmRv bmUuXk0KLWRvbmUuXk0KLUxvYWRlZCBzeW1ib2xzIGZvciAvbGliL2xkLWxpbnV4LnNvLjJeTQot bWFpbiAoKV5NCi0gICAgYXQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guYzoxNV5NCi0x NSAgICAgICB3aGlsZSAoISBzaG91bGRfZXhpdCleTQotVGhlIHByb2dyYW0gYmVpbmcgZGVidWdn ZWQgaGFzIGJlZW4gc3RhcnRlZCBhbHJlYWR5Ll5NCi1TdGFydCBpdCBmcm9tIHRoZSBiZWdpbm5p bmc/ICh5IG9yIG4pIFBBU1M6IGdkYi5iYXNlL2F0dGFjaC5leHA6IGNtZGxpbmUgYXR0YWNoIHJ1 bjogcnVuIHRvIHByb21wdAoteV5NCi1eTQotVGVtcG9yYXJ5IGJyZWFrcG9pbnQgMSBhdCAweDgw NDg0ODE6IGZpbGUgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guYywgbGluZSAxMy5eTQot U3RhcnRpbmcgcHJvZ3JhbTogL3Vuc2FmZS9ob21lL2prcmF0b2NoL2hhbW1vY2svMjAxNDA5MDdm ZWRvcmFyZWwyMS1mMjEvZmVkb3JhLTItLS1UeXBlIDxyZXR1cm4+IHRvIGNvbnRpbnVlLCBvciBx IDxyZXR1cm4+IHRvIHF1aXQtLS1FUlJPUjogV2luZG93IHRvbyBzbWFsbC4KLVVOUkVTT0xWRUQ6 IGdkYi5iYXNlL2F0dGFjaC5leHA6IGNtZGxpbmUgYXR0YWNoIHJ1bjogcnVuIHRvIG1haW4KLQot Ci1XaGlsZSBJIGRvIG5vdCBmdWxseSB1bmRlcnN0YW5kIHdoeSB0aGF0IGhhcHBlbnMgaW4gZXZl cnkgcnVuIG9mIHRoYXQgRmVkb3JhCi10ZXN0c3VpdGUgd2hpbGUgaXQgbmV2ZXIgaGFwcGVucyBk dXJpbmcgbXkgcmVwcm9kdWNpYmlsaXR5IGF0dGVtcHRzIGJ5IGhhbmQKLUkgZmluZCBpdCB1bmRl cnN0YW5kYWJsZSBhbmQgdGhlIEZlZG9yYSB0ZXN0c3VpdGUgaXNzdWVzIGRvZXMgZ2V0IGZpeGVk IGJ5IHRoZQotYXR0YWNoZWQgcGF0Y2guCi0KLQotPiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2F0dGFjaC5leHAKLT4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guZXhw Ci0+IEBAIC01OCw2ICs1OCwzNyBAQCBpZiBbZ2V0X2NvbXBpbGVyX2luZm9dIHsKLT4gICAgICBy ZXR1cm4gLTEKLT4gIH0KLT4gIAotPiArIyBTdGFydCB0aGUgcHJvZ3JhbSBydW5uaW5nIGFuZCB0 aGVuIHdhaXQgZm9yIGEgYml0LCB0byBiZSBzdXJlIHRoYXQKLT4gKyMgaXQgY2FuIGJlIGF0dGFj aGVkIHRvLiAgUmV0dXJuIHRoZSBwcm9jZXNzJ3MgUElELgotPiArCi0+ICtwcm9jIHNwYXduX3Rl c3RfcHJvZyB7IGV4ZWN1dGFibGUgfSB7Ci0+ICsgICAgc2V0IHRlc3RwaWQgW2V2YWwgZXhlYyAk ZXhlY3V0YWJsZSAmXQotPiArICAgIGV4ZWMgc2xlZXAgMgotCi1VbnJlbGF0ZWQgdG8gdGhpcyBw YXRjaCAtIHRoaXMgcGF0Y2ggb25seSBtb3ZlZCB0aGUgY29kZS4gIEFsc28gdGhlIGNvZGUgbW92 ZQotY291bGQgYmUgYSBzZXBhcmF0ZSBwYXRjaDoKLQotSSBkbyBub3Qgc2VlIHdoeSB0aGUgdGVz dHN1aXRlIGNvbW1vbmx5IHVzZXMgImV4ZWMgc2xlZXAiIHdoaWxlIGl0IGFsc28gdXNlcwotInNs ZWVwIiBpdHNlbGYgd2hpY2ggYWxzbyB3b3JrcyBmaW5lLgotCi0KLT4gKyAgICBpZiB7IFtpc3Rh cmdldCAiKi0qLWN5Z3dpbioiXSB9IHsKLT4gKwkjIHRlc3RwaWQgaXMgdGhlIEN5Z3dpbiBQSUQs IEdEQiB1c2VzIHRoZSBXaW5kb3dzIFBJRCwgd2hpY2ggbWlnaHQgYmUKLT4gKwkjIGRpZmZlcmVu dCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4ZWMgd29ya3MuCi0+ICsJc2V0IHRlc3RwaWQgWyBleGVj IHBzIC1lIHwgZ2F3ayAieyBpZiAoXCQxID09ICR0ZXN0cGlkKSBwcmludCBcJDQ7IH0iIF0KLT4g KyAgICB9Ci0+ICsKLT4gKyAgICByZXR1cm4gJHRlc3RwaWQKLT4gK30KLVsuLi5dCi0+IEBAIC00 MjksNiArNDI3LDUwIEBAIHByb2MgZG9fY29tbWFuZF9hdHRhY2hfdGVzdHMge30gewotPiAgICAg IHJlbW90ZV9leGVjIGJ1aWxkICJraWxsIC05ICR7dGVzdHBpZH0iCi0+ICB9Ci0+ICAKLT4gKyMg VGVzdCAnIGdkYiAtLXBpZCBQSUQgLWV4ICJydW4iICcuICBHREIgdXNlZCB0byBoYXZlIGEgYnVn IHdoZXJlCi0+ICsjICJydW4iIHdvdWxkIHJ1biBiZWZvcmUgdGhlIGF0dGFjaCBmaW5pc2hlZCAt IFBSMTczNDcuCi0+ICsKLT4gK3Byb2MgdGVzdF9jb21tYW5kX2xpbmVfYXR0YWNoX3J1biB7fSB7 Ci0+ICsgICAgZ2xvYmFsIGdkYl9wcm9tcHQKLT4gKyAgICBnbG9iYWwgYmluZmlsZQotCi0+ICsg ICAgZ2xvYmFsIHZlcmJvc2UKLT4gKyAgICBnbG9iYWwgR0RCCi0+ICsgICAgZ2xvYmFsIElOVEVS TkFMX0dEQkZMQUdTCi0KLVRoZXNlIDMgbGluZXMgYXJlIHVudXNlZC4KLQotCi0+ICsKLT4gKyAg ICBpZiAhW2lzbmF0aXZlXSB0aGVuIHsKLT4gKwl1bnN1cHBvcnRlZCAiY29tbWFuZGxpbmUgYXR0 YWNoIHJ1biB0ZXN0IgotPiArCXJldHVybiAwCi0+ICsgICAgfQotPiArCi0+ICsgICAgd2l0aF90 ZXN0X3ByZWZpeCAiY21kbGluZSBhdHRhY2ggcnVuIiB7Ci0+ICsJc2V0IHRlc3RwaWQgW3NwYXdu X3Rlc3RfcHJvZyAkYmluZmlsZV0KLT4gKwotPiArCXNldCB0ZXN0ICJydW4gdG8gcHJvbXB0Igot PiArCWdkYl9leGl0Ci0+ICsJc2V0IHJlcyBbZ2RiX3NwYXduX3dpdGhfY21kbGluZV9vcHRzICIt LXBpZD0kdGVzdHBpZCAtZXggXCJzdGFydFwiIl0KLQotSGVyZSBzZWUgdGhlIGF0dGFjaG1lbnQu Ci0KLQotPiArCWlmIHsgJHJlcyAhPSAwfSB7Ci0+ICsJICAgIGZhaWwgJHRlc3QKLT4gKwkgICAg cmV0dXJuICRyZXMKLT4gKwl9Ci0+ICsJZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgewotPiAr CSAgICAtcmUge0F0dGFjaGluZyB0by4qU3RhcnQgaXQgZnJvbSB0aGUgYmVnaW5uaW5nXD8gXCh5 IG9yIG5cKSB9IHsKLT4gKwkJcGFzcyAkdGVzdAotPiArCSAgICB9Ci0+ICsJfQotPiArCi0+ICsJ c2VuZF9nZGIgInlcbiIKLT4gKwotPiArCXNldCB0ZXN0ICJydW4gdG8gbWFpbiIKLT4gKwlnZGJf dGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0+ICsJICAgIC1yZSAiVGVtcG9yYXJ5IGJyZWFrcG9p bnQgLiogbWFpbiAuKiRnZGJfcHJvbXB0ICQiIHsKLT4gKwkJcGFzcyAkdGVzdAotPiArCSAgICB9 Ci0+ICsJfQotPiArCi0+ICsJIyBHZXQgcmlkIG9mIHRoZSBwcm9jZXNzCi0+ICsJcmVtb3RlX2V4 ZWMgYnVpbGQgImtpbGwgLTkgJHt0ZXN0cGlkfSIKLT4gKyAgICB9Ci0+ICt9Ci0+ICAKLT4gICMg U3RhcnQgd2l0aCBhIGZyZXNoIGdkYgotPiAgCi0+IEBAIC00NTMsNCArNDk1LDYgQEAgZG9fY2Fs bF9hdHRhY2hfdGVzdHMKLT4gIAotPiAgZG9fY29tbWFuZF9hdHRhY2hfdGVzdHMKLT4gIAotPiAr dGVzdF9jb21tYW5kX2xpbmVfYXR0YWNoX3J1bgotPiArCi0+ICByZXR1cm4gMAotPiBkaWZmIC0t Z2l0IGEvZ2RiL3RvcC5jIGIvZ2RiL3RvcC5jCi0+IGluZGV4IGZjMmI4NGQuLmJhNzFmOGYgMTAw NjQ0Ci0+IC0tLSBhL2dkYi90b3AuYwotPiArKysgYi9nZGIvdG9wLmMKLT4gQEAgLTM3Myw2ICsz NzMsMjEgQEAgY2hlY2tfZnJhbWVfbGFuZ3VhZ2VfY2hhbmdlICh2b2lkKQotPiAgICAgIH0KLT4g IH0KLT4gIAotCi1NaXNzaW5nOgotLyogU2VlIHRvcC5oLiAgKi8KLQotVW5sZXNzIHRoYXQgcnVs ZSBmcm9tIG1lIGhhcyBiZWVuIGFiYW5kb25lZC4KLQotCi0+ICt2b2lkCi0+ICttYXliZV93YWl0 X3N5bmNfY29tbWFuZF9kb25lIChpbnQgd2FzX3N5bmMpCi0+ICt7Ci0+ICsgIC8qIElmIHRoZSBp bnRlcnByZXRlciBpcyBpbiBzeW5jIG1vZGUgKHdlJ3JlIHJ1bm5pbmcgYSB1c2VyCi0+ICsgICAg IGNvbW1hbmQncyBsaXN0LCBydW5uaW5nIGNvbW1hbmQgaG9va3Mgb3Igc2ltaWxhcnMpLCBhbmQg d2UKLT4gKyAgICAganVzdCByYW4gYSBzeW5jaHJvbm91cyBjb21tYW5kIHRoYXQgc3RhcnRlZCB0 aGUgdGFyZ2V0LCB3YWl0Ci0+ICsgICAgIGZvciB0aGF0IGNvbW1hbmQgdG8gZW5kLiAgKi8KLT4g KyAgaWYgKCFpbnRlcnByZXRlcl9hc3luYyAmJiAhd2FzX3N5bmMgJiYgc3luY19leGVjdXRpb24p Ci0+ICsgICAgewotPiArICAgICAgd2hpbGUgKGdkYl9kb19vbmVfZXZlbnQgKCkgPj0gMCkKLT4g KwlpZiAoIXN5bmNfZXhlY3V0aW9uKQotPiArCSAgYnJlYWs7Ci0+ICsgICAgfQotPiArfQotPiAr Ci0+ICAvKiBFeGVjdXRlIHRoZSBsaW5lIFAgYXMgYSBjb21tYW5kLCBpbiB0aGUgY3VycmVudCB1 c2VyIGNvbnRleHQuCi0+ICAgICBQYXNzIEZST01fVFRZIGFzIHNlY29uZCBhcmd1bWVudCB0byB0 aGUgZGVmaW5pbmcgZnVuY3Rpb24uICAqLwotPiAgCi0KLQotVGhhbmtzLAotSmFuCi0KLS0tYThX dDh1MUttd1VYM1kyQwotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lp Ci1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKLQotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvYXR0YWNoLmV4cAotaW5kZXggYzk0YzEyNy4uNmU1NjZhMyAxMDA2NDQKLS0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9hdHRhY2guZXhwCi1AQCAtNDQ3LDcgKzQ0NCw4IEBAIHByb2MgdGVzdF9jb21tYW5kX2xpbmVf YXR0YWNoX3J1biB7fSB7Ci0gCi0gCXNldCB0ZXN0ICJydW4gdG8gcHJvbXB0IgotIAlnZGJfZXhp dAotLQlzZXQgcmVzIFtnZGJfc3Bhd25fd2l0aF9jbWRsaW5lX29wdHMgIi0tcGlkPSR0ZXN0cGlk IC1leCBcInN0YXJ0XCIiXQotKwlzZXQgcmVzIFtnZGJfc3Bhd25fd2l0aF9jbWRsaW5lX29wdHMg XAotKwkJICItaWV4IHNldFxcIGhlaWdodFxcIDAgLWlleCBzZXRcXCB3aWR0aFxcIDAgLS1waWQ9 JHRlc3RwaWQgLWV4IFwic3RhcnRcIiJdCi0gCWlmIHsgJHJlcyAhPSAwfSB7Ci0gCSAgICBmYWls ICR0ZXN0Ci0gCSAgICByZXR1cm4gJHJlcwotCi0tLWE4V3Q4dTFLbXdVWDNZMkMtLQotCgpkaWZm IC0tZ2l0IGEvZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy10ZXN0c3VpdGUucGF0Y2ggYi9n ZGItYXN5bmMtc3RvcHBlZC1vbi1waWQtYXJnLXRlc3RzdWl0ZS5wYXRjaAppbmRleCBmNTBlYWQx Li5kNTE2Njk1IDEwMDY0NAotLS0gYS9nZGItYXN5bmMtc3RvcHBlZC1vbi1waWQtYXJnLXRlc3Rz dWl0ZS5wYXRjaAorKysgYi9nZGItYXN5bmMtc3RvcHBlZC1vbi1waWQtYXJnLXRlc3RzdWl0ZS5w YXRjaApAQCAtMzMsMTAgKzMzLDEwIEBAIGdkYi90ZXN0c3VpdGUvCiAJZ2RiX2JyZWFrcG9pbnQs IGdkYl9jb250aW51ZV90b19icmVha3BvaW50LgogCSh0ZXN0X2NvbW1hbmRfbGluZV9hdHRhY2hf cnVuKTogS2lsbCAke3Rlc3RwaWR9IGluIG9uZSBleGl0IHBhdGguCiAKLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9h dHRhY2guYwotaW5kZXggMDA0MWI0Ny4uOTFiMTgwYyAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYXR0YWNoLmMKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNo LmMKK0luZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjguMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNo LmMJMjAxNC0xMC0zMCAyMDoyMzowMS4zMTE1OTU3MjUgKzAxMDAKKysrKyBnZGItNy44LjEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guYwkyMDE0LTEwLTMwIDIwOjIzOjM4LjY1MzU3NDk5 OSArMDEwMAogQEAgLTUsNiArNSw3IEBACiAgICAgZXhpdCB1bmxlc3MvdW50aWwgZ2RiIHNldHMg dGhlIHZhcmlhYmxlIHRvIG5vbi16ZXJvLikKICAgICAqLwpAQCAtNTgsMTAgKzU4LDEwIEBAIGlu ZGV4IDAwNDFiNDcuLjkxYjE4MGMgMTAwNjQ0CiAtICByZXR1cm4gMDsKICsgIHJldHVybiAwOyAv KiBwb3N0bG9vcCAqLwogIH0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0 dGFjaC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5leHAKLWluZGV4IDYzNDA0 OTYuLjVmYjVjNTMgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5l eHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmV4cAorSW5kZXg6IGdkYi03 LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5leHAKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy44LjEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5leHAJMjAxNC0xMC0z MCAyMDoyMzowMS4zMTE1OTU3MjUgKzAxMDAKKysrKyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9hdHRhY2guZXhwCTIwMTQtMTAtMzAgMjA6MjM6NTQuMTUxNTYyODY3ICswMTAwCiBA QCAtMjU2LDExICsyNTYsOCBAQCBwcm9jIGRvX2F0dGFjaF90ZXN0cyB7fSB7CiAgCiAgICAgICMg VmVyaWZ5IHRoYXQgdGhlIG1vZGlmaWNhdGlvbiByZWFsbHkgaGFwcGVuZWQuCkBAIC03NiwxNCAr NzYsMTEgQEAgaW5kZXggNjM0MDQ5Ni4uNWZiNWM1MyAxMDA2NDQKICAKICAgICAgIyBBbGxvdyB0 aGUgdGVzdCBwcm9jZXNzIHRvIGV4aXQsIHRvIGNsZWFudXAgYWZ0ZXIgb3Vyc2VsdmVzLgogIAot QEAgLTQ1MSw2ICs0NDgsNyBAQCBwcm9jIHRlc3RfY29tbWFuZF9saW5lX2F0dGFjaF9ydW4ge30g ewotIAkJICItaWV4IHNldFxcIGhlaWdodFxcIDAgLWlleCBzZXRcXCB3aWR0aFxcIDAgLS1waWQ9 JHRlc3RwaWQgLWV4IFwic3RhcnRcIiJdCitAQCAtNDE4LDYgKzQxNSw3IEBAIHByb2MgdGVzdF9j b21tYW5kX2xpbmVfYXR0YWNoX3J1biB7fSB7CisgCQkgICAgICItaWV4IFwic2V0IGhlaWdodCAw XCIgLWlleCBcInNldCB3aWR0aCAwXCIgLS1waWQ9JHRlc3RwaWQgLWV4IFwic3RhcnRcIiJdCiAg CWlmIHsgJHJlcyAhPSAwfSB7CiAgCSAgICBmYWlsICR0ZXN0CiArCSAgICByZW1vdGVfZXhlYyBi dWlsZCAia2lsbCAtOSAke3Rlc3RwaWR9IgogIAkgICAgcmV0dXJuICRyZXMKICAJfQogIAlnZGJf dGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0KLS0tUm5sUWpKMGQ5N0RhK1RWMS0tCi0KCmRpZmYg LS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoIGIvZ2RiLWF0dGFjaC1m YWlsLXJlYXNvbnMtNW9mNS5wYXRjaAppbmRleCAxYmIwMjhiLi43NWE3YTVmIDEwMDY0NAotLS0g YS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCisrKyBiL2dkYi1hdHRhY2gtZmFp bC1yZWFzb25zLTVvZjUucGF0Y2gKQEAgLTM3LDEwICszNywxMCBAQCBnZGIvZ2Ric2VydmVyLwog CShsaW51eF9jcmVhdGVfaW5mZXJpb3IsIGxpbnV4X3RyYWNlZm9ya19jaGlsZCk6IENhbGwgaXQg aW5zdGVhZCBvZgogCWRpcmVjdCBwdHJhY2UuCiAKLUluZGV4OiBnZGItNy44L2dkYi9jb21tb24v bGludXgtcHRyYWNlLmMKK0luZGV4OiBnZGItNy44LjEvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2Uu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5j CTIwMTQtMDctMjkgMTk6MzE6MDEuODkzMTQ5MzE3ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvY29t bW9uL2xpbnV4LXB0cmFjZS5jCTIwMTQtMDctMjkgMTk6MzE6MDUuODA2MTU0ODg3ICswMjAwCist LS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwkyMDE0LTEwLTMwIDE4 OjMzOjM3LjI3MTA5NzY0NCArMDEwMAorKysrIGdkYi03LjguMS9nZGIvY29tbW9uL2xpbnV4LXB0 cmFjZS5jCTIwMTQtMTAtMzAgMTg6MzM6MzkuNjQxMDkyNzYzICswMTAwCiBAQCAtMzIsNiArMzIs MTAgQEAKICAKICAjaW5jbHVkZSA8c3RkaW50Lmg+CkBAIC04MSwxMCArODEsMTAgQEAgSW5kZXg6 IGdkYi03LjgvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwogKwkJCSAiKGdkYikgc2hlbGwgc3Vk byBzZXRzZWJvb2wgZGVueV9wdHJhY2U9MCIpKTsKICsjZW5kaWYgLyogSEFWRV9MSUJTRUxJTlVY ICovCiArfQotSW5kZXg6IGdkYi03LjgvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuaAorSW5kZXg6 IGdkYi03LjguMS9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC5vcmlnL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAxNC0wNy0yOSAxOTozMTowMS44 OTMxNDkzMTcgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAx NC0wNy0yOSAxOTozMTowNS44MDcxNTQ4ODcgKzAyMDAKKy0tLSBnZGItNy44LjEub3JpZy9nZGIv Y29tbW9uL2xpbnV4LXB0cmFjZS5oCTIwMTQtMTAtMzAgMTg6MzM6MzcuMjcxMDk3NjQ0ICswMTAw CisrKysgZ2RiLTcuOC4xL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAxNC0xMC0zMCAxODoz MzozOS42NDIwOTI3NjEgKzAxMDAKIEBAIC04NSw2ICs4NSw3IEBAIHN0cnVjdCBidWZmZXI7CiAg CiAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYXNvbiAocGlkX3QgcGlk LCBzdHJ1Y3QgYnVmZmVyICpidWZmZXIpOwpAQCAtOTMsMTEgKzkzLDExIEBAIEluZGV4OiBnZGIt Ny44L2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgKICBleHRlcm4gdm9pZCBsaW51eF9lbmFibGVf ZXZlbnRfcmVwb3J0aW5nIChwaWRfdCBwaWQpOwogIGV4dGVybiB2b2lkIGxpbnV4X2Rpc2FibGVf ZXZlbnRfcmVwb3J0aW5nIChwaWRfdCBwaWQpOwogIGV4dGVybiBpbnQgbGludXhfc3VwcG9ydHNf dHJhY2Vmb3JrICh2b2lkKTsKLUluZGV4OiBnZGItNy44L2dkYi9jb25maWd1cmUuYWMKK0luZGV4 OiBnZGItNy44LjEvZ2RiL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3Jp Zy9nZGIvY29uZmlndXJlLmFjCTIwMTQtMDctMjkgMTk6MzE6MDEuODk0MTQ5MzE5ICswMjAwCi0r KysgZ2RiLTcuOC9nZGIvY29uZmlndXJlLmFjCTIwMTQtMDctMjkgMTk6MzE6MDUuODA3MTU0ODg3 ICswMjAwCi1AQCAtMjE1OCw2ICsyMTU4LDEwIEBAIGNhc2UgJGhvc3Rfb3MgaW4KKy0tLSBnZGIt Ny44LjEub3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTQtMTAtMzAgMTg6MzM6MzcuMjcyMDk3NjQy ICswMTAwCisrKysgZ2RiLTcuOC4xL2dkYi9jb25maWd1cmUuYWMJMjAxNC0xMC0zMCAxODozMzoz OS42NDMwOTI3NTkgKzAxMDAKK0BAIC0yMTYxLDYgKzIxNjEsMTAgQEAgY2FzZSAkaG9zdF9vcyBp bgogIGVzYWMKICBBQ19ERUZJTkVfVU5RVU9URUQoR0RCSU5JVCwiJGdkYmluaXQiLFtUaGUgLmdk YmluaXQgZmlsZW5hbWUuXSkKICAKQEAgLTEwOCwxMCArMTA4LDEwIEBAIEluZGV4OiBnZGItNy44 L2dkYi9jb25maWd1cmUuYWMKICBkbmwgSGFuZGxlIG9wdGlvbmFsIGZlYXR1cmVzIHRoYXQgY2Fu IGJlIGVuYWJsZWQuCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBhIGNvcHkg b2YgR0RCX0FDX1dJVEhfRElSLAotSW5kZXg6IGdkYi03LjgvZ2RiL2dkYnNlcnZlci9jb25maWd1 cmUuYWMKK0luZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNC0w Ny0yOSAxOTozMTowMS44OTUxNDkzMjAgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9nZGJzZXJ2ZXIv Y29uZmlndXJlLmFjCTIwMTQtMDctMjkgMTk6MzE6MDUuODA4MTU0ODg3ICswMjAwCistLS0gZ2Ri LTcuOC4xLm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNC0xMC0zMCAxODozMzoz Ny4yNzMwOTc2NDAgKzAxMDAKKysrKyBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUu YWMJMjAxNC0xMC0zMCAxODozMzozOS42NDMwOTI3NTkgKzAxMDAKIEBAIC00NTQsNiArNDU0LDEw IEBAIGlmICR3YW50X2lwYSA7IHRoZW4KICAgICBmaQogIGZpCkBAIC0xMjMsMTAgKzEyMywxMCBA QCBJbmRleDogZ2RiLTcuOC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwogIEFDX1NVQlNUKEdE QlNFUlZFUl9ERVBGSUxFUykKICBBQ19TVUJTVChHREJTRVJWRVJfTElCUykKICBBQ19TVUJTVChz cnZfeG1sYnVpbHRpbikKLUluZGV4OiBnZGItNy44L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMK K0luZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03Ljgub3JpZy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTQtMDctMjkgMTk6 MzE6MDEuODk3MTQ5MzIzICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCTIwMTQtMDctMjkgMTk6MzE6MDUuODA5MTU0ODg5ICswMjAwCistLS0gZ2RiLTcuOC4xLm9y aWcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE0LTEwLTMwIDE4OjMzOjM3LjI3NTA5NzYz NiArMDEwMAorKysrIGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTQtMTAt MzAgMTg6MzM6MzkuNjQ0MDkyNzU3ICswMTAwCiBAQCAtNTQxLDYgKzU0MSwyOSBAQCBhZGRfbHdw IChwdGlkX3QgcHRpZCkKICAgIHJldHVybiBsd3A7CiAgfQpAQCAtMTY2LDEwICsxNjYsMTAgQEAg SW5kZXg6IGdkYi03LjgvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogIAogICNpZm5kZWYgX19B TkRST0lEX18gLyogQmlvbmljIGRvZXNuJ3QgdXNlIFNJR1JUTUlOIHRoZSB3YXkgZ2xpYmMgZG9l cy4gICovCiAgICAgICAgc2lnbmFsIChfX1NJR1JUTUlOICsgMSwgU0lHX0RGTCk7Ci1JbmRleDog Z2RiLTcuOC9nZGIvaW5mLXB0cmFjZS5jCitJbmRleDogZ2RiLTcuOC4xL2dkYi9pbmYtcHRyYWNl LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL2luZi1wdHJhY2UuYwkyMDE0LTA3 LTI5IDE5OjMxOjAxLjg5ODE0OTMyNCArMDIwMAotKysrIGdkYi03LjgvZ2RiL2luZi1wdHJhY2Uu YwkyMDE0LTA3LTI5IDE5OjMxOjA1LjgwOTE1NDg4OSArMDIwMAorLS0tIGdkYi03LjguMS5vcmln L2dkYi9pbmYtcHRyYWNlLmMJMjAxNC0xMC0zMCAxODozMzozNy4yNzYwOTc2MzQgKzAxMDAKKysr KyBnZGItNy44LjEvZ2RiL2luZi1wdHJhY2UuYwkyMDE0LTEwLTMwIDE4OjMzOjM5LjY0NTA5Mjc1 NSArMDEwMAogQEAgLTEwNSw3ICsxMDUsMTUgQEAgc3RhdGljIHZvaWQKICBpbmZfcHRyYWNlX21l ICh2b2lkKQogIHsKQEAgLTE4NiwxMCArMTg2LDEwIEBAIEluZGV4OiBnZGItNy44L2dkYi9pbmYt cHRyYWNlLmMKICB9CiAgCiAgLyogU3RhcnQgYSBuZXcgaW5mZXJpb3IgVW5peCBjaGlsZCBwcm9j ZXNzLiAgRVhFQ19GSUxFIGlzIHRoZSBmaWxlIHRvCi1JbmRleDogZ2RiLTcuOC9nZGIvbGludXgt bmF0LmMKK0luZGV4OiBnZGItNy44LjEvZ2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE0LTA3LTI5IDE5OjMxOjAxLjg5OTE0OTMy NiArMDIwMAotKysrIGdkYi03LjgvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMDctMjkgMTk6MzE6MDUu ODExMTU0ODkzICswMjAwCistLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTQt MTAtMzAgMTg6MzM6MzcuMjc3MDk3NjMxICswMTAwCisrKysgZ2RiLTcuOC4xL2dkYi9saW51eC1u YXQuYwkyMDE0LTEwLTMwIDE4OjMzOjM5LjY0NjA5Mjc1MyArMDEwMAogQEAgLTEyOTEsNiArMTI5 MSw3IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQKICAjaWZkZWYg SEFWRV9QRVJTT05BTElUWQogICAgaW50IHBlcnNvbmFsaXR5X29yaWcgPSAwLCBwZXJzb25hbGl0 eV9zZXQgPSAwOwpAQCAtMjM1LDExICsyMzUsMTEgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2xpbnV4 LW5hdC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1JbmRleDogZ2RiLTcuOC9nZGIvY29uZmlnLmlu CitJbmRleDogZ2RiLTcuOC4xL2dkYi9jb25maWcuaW4KID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE0LTA3LTI5IDE5OjMxOjAxLjkwMDE0OTMyNyArMDIwMAot KysrIGdkYi03LjgvZ2RiL2NvbmZpZy5pbgkyMDE0LTA3LTI5IDE5OjMxOjQ0LjYwMDIxMDA5MCAr MDIwMAotQEAgLTIxOSw2ICsyMTksOSBAQAorLS0tIGdkYi03LjguMS5vcmlnL2dkYi9jb25maWcu aW4JMjAxNC0xMC0zMCAxODozMzozNy4yNzgwOTc2MzAgKzAxMDAKKysrKyBnZGItNy44LjEvZ2Ri L2NvbmZpZy5pbgkyMDE0LTEwLTMwIDE4OjM0OjM2LjE2NTk3NjM2NiArMDEwMAorQEAgLTIxNiw2 ICsyMTYsOSBAQAogIC8qIERlZmluZSBpZiBsaWJycG0gbGlicmFyeSBpcyBiZWluZyB1c2VkLiAq LwogICN1bmRlZiBIQVZFX0xJQlJQTQogIApAQCAtMjQ5LDIxICsyNDksMjEgQEAgSW5kZXg6IGdk Yi03LjgvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGli dW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVmIEhBVkVfTElCVU5XSU5EX0lB NjRfSAogIAotQEAgLTM1NCw2ICszNTcsOSBAQAorQEAgLTM1MSw2ICszNTQsOSBAQAogIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2NtX25ld19zbW9iJyBmdW5jdGlvbi4gKi8KICAj dW5kZWYgSEFWRV9TQ01fTkVXX1NNT0IKICAKICsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgPHNlbGludXgvc2VsaW51eC5oPiBoZWFkZXIgZmlsZS4gKi8KICsjdW5kZWYgSEFWRV9TRUxJ TlVYX1NFTElOVVhfSAogKwotIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0ZW52 JyBmdW5jdGlvbi4gKi8KLSAjdW5kZWYgSEFWRV9TRVRFTlYKKyAvKiBEZWZpbmUgdG8gMSBpZiB5 b3UgaGF2ZSB0aGUgYHNldGxvY2FsZScgZnVuY3Rpb24uICovCisgI3VuZGVmIEhBVkVfU0VUTE9D QUxFCiAgCi1JbmRleDogZ2RiLTcuOC9nZGIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuOC4xL2dk Yi9jb25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL2NvbmZpZ3VyZQky MDE0LTA3LTI5IDE5OjMxOjAxLjkwMzE0OTMzMSArMDIwMAotKysrIGdkYi03LjgvZ2RiL2NvbmZp Z3VyZQkyMDE0LTA3LTI5IDE5OjMxOjA1LjgxNTE1NDg5OCArMDIwMAotQEAgLTEzMzkyLDYgKzEz MzkyLDY0IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKy0tLSBnZGItNy44LjEub3JpZy9n ZGIvY29uZmlndXJlCTIwMTQtMTAtMzAgMTg6MzM6MzcuMjgxMDk3NjIzICswMTAwCisrKysgZ2Ri LTcuOC4xL2dkYi9jb25maWd1cmUJMjAxNC0xMC0zMCAxODozMzozOS42NDkwOTI3NDcgKzAxMDAK K0BAIC0xMzQwMCw2ICsxMzQwMCw2NCBAQCBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiAgX0FD RU9GCiAgCiAgCkBAIC0zMjgsMTAgKzMyOCwxMCBAQCBJbmRleDogZ2RiLTcuOC9nZGIvY29uZmln dXJlCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBhIGNvcHkgb2YgR0RCX0FD X1dJVEhfRElSLAogICMgZXhjZXB0IHRoYXQgdGhlIGFyZ3VtZW50IHRvIC0td2l0aC1zeXNyb290 IGlzIG9wdGlvbmFsLgotSW5kZXg6IGdkYi03LjgvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KK0lu ZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0wNy0yOSAxOTozMTowMS45 MDQxNDkzMzMgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCTIwMTQt MDctMjkgMTk6MzE6MDUuODE1MTU0ODk4ICswMjAwCistLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2dk YnNlcnZlci9jb25maWcuaW4JMjAxNC0xMC0zMCAxODozMzozNy4yODIwOTc2MjEgKzAxMDAKKysr KyBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0xMC0zMCAxODozMzozOS42 NDkwOTI3NDcgKzAxMDAKIEBAIC04MSw2ICs4MSw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIGBtY2hlY2snIGxpYnJhcnkgKC1sbWNoZWNrKS4gKi8KICAjdW5kZWYgSEFWRV9M SUJNQ0hFQ0sKQEAgLTM1MiwxMCArMzUyLDEwIEBAIEluZGV4OiBnZGItNy44L2dkYi9nZGJzZXJ2 ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZ3R0eS5oPiBo ZWFkZXIgZmlsZS4gKi8KICAjdW5kZWYgSEFWRV9TR1RUWV9ICiAgCi1JbmRleDogZ2RiLTcuOC9n ZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2Nv bmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZp Z3VyZQkyMDE0LTA3LTI5IDE5OjMxOjAxLjkwNTE0OTMzNCArMDIwMAotKysrIGdkYi03LjgvZ2Ri L2dkYnNlcnZlci9jb25maWd1cmUJMjAxNC0wNy0yOSAxOTozMTowNS44MTcxNTQ5MDEgKzAyMDAK Ky0tLSBnZGItNy44LjEub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE0LTEwLTMwIDE4 OjMzOjM3LjI4MzA5NzYxOSArMDEwMAorKysrIGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2NvbmZp Z3VyZQkyMDE0LTEwLTMwIDE4OjMzOjM5LjY1MDA5Mjc0NSArMDEwMAogQEAgLTYxNzAsNiArNjE3 MCw2NCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCiAgICAgZmkKICBmaQoKZGlmZiAtLWdpdCBhL2dk Yi1iYWJlbHRyYWNlLWNvbmZpZ3VyZS5wYXRjaCBiL2dkYi1iYWJlbHRyYWNlLWNvbmZpZ3VyZS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FjMDI5ZC4uMDAwMDAwMAotLS0g YS9nZGItYmFiZWx0cmFjZS1jb25maWd1cmUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NSAr MCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNC0wOC9tc2cw MDA0NS5odG1sCi1TdWJqZWN0OiBbcGF0Y2hdIEZpeCAtLXdpdGgtYmFiZWx0cmFjZSB3aXRoIGdj Yy00LjkuMQotCi0KLS0tcU1tOU0rRmEyQWtuSG9HUwotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGksCi0K LXdoZW4gSSB0cmllZCB0byB1c2UgLS13aXRoLWJhYmVsdHJhY2Ugb24gRmVkb3JhIFJhd2hpZGUg eDg2XzY0Ci11c2luZyBnY2MtNC45LjEtMy5mYzIyLng4Nl82NCBJIGdvdDoKLQotY2hlY2tpbmcg Zm9yIGxpYmJhYmVsdHJhY2UuLi4gbm8KLWNvbmZpZ3VyZTogZXJyb3I6IGJhYmVsdHJhY2UgaXMg bWlzc2luZyBvciB1bnVzYWJsZQotTWFrZWZpbGU6Nzk3MzogcmVjaXBlIGZvciB0YXJnZXQgJ2Nv bmZpZ3VyZS1nZGInIGZhaWxlZAotCi1jb25maWd1cmU6MTU4OTA6IGNoZWNraW5nIGZvciBsaWJi YWJlbHRyYWNlCi1jb25maWd1cmU6MTU5MTg6IGdjYyAtbyBjb25mdGVzdCAtTzIgLWcgLXBpcGUg LVdhbGwgLVdlcnJvcj1mb3JtYXQtc2VjdXJpdHkgLVdwLC1EX0ZPUlRJRllfU09VUkNFPTIgLWZl eGNlcHRpb25zIC1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZyAtLXBhcmFtPXNzcC1idWZmZXItc2l6 ZT00IC1ncmVjb3JkLWdjYy1zd2l0Y2hlcyAgLW02NCAtbXR1bmU9Z2VuZXJpYyAgIC1XZXJyb3Ig ICAtc3RhdGljLWxpYnN0ZGMrKyAtc3RhdGljLWxpYmdjYyAtV2wsLXoscmVscm8gICAgY29uZnRl c3QuYyAtbHNlbGludXggLWxuY3Vyc2VzIC1seiAtbG0gIC1sZGwgICAvdXNyL2xpYjY0L2xpYmJh YmVsdHJhY2Uuc28gL3Vzci9saWI2NC9saWJiYWJlbHRyYWNlLWN0Zi5zbyA+JjUKLWNvbmZ0ZXN0 LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6MTk4OjIxOiBlcnJvcjogdW51c2Vk IHZhcmlhYmxlICdwb3MnIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KLSBzdHJ1Y3QgYnRfaXRl cl9wb3MgKnBvcyA9IGJ0X2l0ZXJfZ2V0X3BvcyAoYnRfY3RmX2dldF9pdGVyIChOVUxMKSk7Ci0g ICAgICAgICAgICAgICAgICAgICBeCi1jYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFz IGVycm9ycwotY29uZmlndXJlOjE1OTE4OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOgotCi1UaGUgcGF0Y2ggYmVsb3cgZml4ZXMgaXQgZm9yIG1lLgotCi1JbiBjb25maWd1 cmUuYWMgdGhlcmUgaXMgYWJvdmUgdGhpcyBjaGVjazoKLSAgIyBBcHBlbmQgLVdlcnJvciB0byBD RkxBR1Mgc28gdGhhdCBjb25maWd1cmUgY2FuIGNhdGNoIHRoZSB3YXJuaW5nCi0gICMgImFzc2ln bm1lbnQgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIiwgd2hpY2ggaXMgcmVsYXRlZCB0 bwotICAjIHRoZSBiYWJlbHRyYWNlIGNoYW5nZSBmcm9tIDEuMC4zIHRvIDEuMS4wLiAgQmFiZWx0 cmFjZSAxLjEuMCB3b3JrcwotICAjIGluIEdEQiwgd2hpbGUgYmFiZWx0cmFjZSAxLjAuMyBpcyBi cm9rZW4uCi0gICMgQUNfTElCX0hBVkVfTElOS0ZMQUdTIG1heSBtb2RpZnkgQ1BQRkxBR1MgaW4g aXQsIHNvIGl0IHNob3VsZCBiZQotICAjIHNhZmUgdG8gc2F2ZSBhbmQgcmVzdG9yZSBDRkxBR1Mg aGVyZS4KLSAgc2F2ZWRfQ0ZMQUdTPSRDRkxBR1MKLSAgQ0ZMQUdTPSIkQ0ZMQUdTIC1XZXJyb3Ii Ci0KLU1heWJlIGl0IHdvdWxkIGJlIGVhc2llciB0byB1c2UgdGhlcmU6Ci0gIENGTEFHUz0iJENG TEFHUyAtV2Vycm9yIC1Xbm8tdW51c2VkLXZhcmlhYmxlIgotCi1CdXQgbWF5YmUgLVdlcnJvciBp cyBjcm9zcy1jb21waWxlciBjb21wYXRpYmxlIHdoaWxlIC1Xbm8tdW51c2VkLXZhcmlhYmxlIGlz Ci1ub3QsIEkgaGF2ZSBubyBpZGVhLgotCi0KLUphbgotCi0tLXFNbTlNK0ZhMkFrbkhvR1MKLUNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3Np dGlvbjogaW5saW5lOyBmaWxlbmFtZT0iZ2RiLWJhYmVsdHJhY2UtY29uZmlndXJlLnBhdGNoIgot Ci1nZGIvCi0yMDE0LTA4LTA0ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYyAoLS13aXRoLWJhYmVsdHJhY2UpOiBVc2UgJ3Bvcycu Ci0JKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCi0KLWRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJl LmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwotaW5kZXggNzBkMDk2NC4uMDdkMmYwMCAxMDA2NDQKLS0t LSBhL2dkYi9jb25maWd1cmUuYWMKLSsrKyBiL2dkYi9jb25maWd1cmUuYWMKLUBAIC0yNDM3LDYg KzI0MzcsNyBAQCBlbHNlCi0gCQkJc3RydWN0IGJ0X2N0Zl9ldmVudCAqZXZlbnQgPSBOVUxMOwot IAkJCWNvbnN0IHN0cnVjdCBidF9kZWZpbml0aW9uICpzY29wZTsKLSAKLSsJCQkodm9pZCkgcG9z OyAvKiBQcmV2ZW50IC1XZXJyb3I9dW51c2VkLXZhcmlhYmxlLiAgKi8KLSAJCQlzY29wZSA9IGJ0 X2N0Zl9nZXRfdG9wX2xldmVsX3Njb3BlIChldmVudCwKLSAJCQkgICAgICAJCQkJICAgQlRfU1RS RUFNX0VWRU5UX0hFQURFUik7Ci0gCQkgICAgICAgIGJ0X2N0Zl9nZXRfdWludDY0IChidF9jdGZf Z2V0X2ZpZWxkIChldmVudCwgc2NvcGUsICJpZCIpKTsKLWRpZmYgLS1naXQgYS9nZGIvY29uZmln dXJlIGIvZ2RiL2NvbmZpZ3VyZQotaW5kZXggODA5MzI2YS4uYjk4M2QxNiAxMDA3NTUKLS0tLSBh L2dkYi9jb25maWd1cmUKLSsrKyBiL2dkYi9jb25maWd1cmUKLUBAIC0xNTM0NCw2ICsxNTM0NCw3 IEBAIHN0cnVjdCBidF9pdGVyX3BvcyAqcG9zID0gYnRfaXRlcl9nZXRfcG9zIChidF9jdGZfZ2V0 X2l0ZXIgKE5VTEwpKTsKLSAJCQlzdHJ1Y3QgYnRfY3RmX2V2ZW50ICpldmVudCA9IE5VTEw7Ci0g CQkJY29uc3Qgc3RydWN0IGJ0X2RlZmluaXRpb24gKnNjb3BlOwotIAotKwkJCSh2b2lkKSBwb3M7 IC8qIFByZXZlbnQgLVdlcnJvcj11bnVzZWQtdmFyaWFibGUuICAqLwotIAkJCXNjb3BlID0gYnRf Y3RmX2dldF90b3BfbGV2ZWxfc2NvcGUgKGV2ZW50LAotIAkJCSAgICAgIAkJCQkgICBCVF9TVFJF QU1fRVZFTlRfSEVBREVSKTsKLSAJCSAgICAgICAgYnRfY3RmX2dldF91aW50NjQgKGJ0X2N0Zl9n ZXRfZmllbGQgKGV2ZW50LCBzY29wZSwgImlkIikpOwotCi0tLXFNbTlNK0ZhMkFrbkhvR1MtLQot CgpkaWZmIC0tZ2l0IGEvZ2RiLWJhYmVsdHJhY2UtbWluc2l6ZS5wYXRjaCBiL2dkYi1iYWJlbHRy YWNlLW1pbnNpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyNjEyNzcu LjAwMDAwMDAKLS0tIGEvZ2RiLWJhYmVsdHJhY2UtbWluc2l6ZS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDIzNyArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMv MjAxNC0wOC9tc2cwMDM3Ni5odG1sCi1TdWJqZWN0OiBSZTogLS13aXRoLWJhYmVsdHJhY2UgZ2Vu ZXJhdGVzIG1hbnkgRkFJTHMKLQotT24gMDgvMTkvMjAxNCAxMDowNyBQTSwgSmFuIEtyYXRvY2h2 aWwgd3JvdGU6Ci0+ICAqICcjaWYgSEFWRV9MSUJCQUJFTFRSQUNFMV8xXzAnIGNvdWxkIGhhdmUg YSBjb21tZW50IHRoYXQgPj0xLjEuMSByZWplY3RzIHRoZQotPiAgICBmYWtlZCBwYWNrZXQgKHdo YXQgeW91IGRlc2NyaWJlZCBpbiB0aGUgbWFpbCBidXQgbm90IGluIHRoZSBwYXRjaCkuCi0KLUZp eGVkLiAgVG8gYmUgcHJlY2lzZSwgPj0gMS4xLjIgcmVqZWN0cyB0aGUgZmFrZWQgcGFja2V0LCAx LjEuMQotZG9lc24ndC4gIFNlZSB0aGUgdGFibGUgSSBwb3N0ZWQuCi0KLT4gICogSXQgaXMgYWx3 YXlzIGJldHRlciB0byBjaGVjayBmb3IgZmVhdHVyZS9kZWZlY3QgdGhhbiB0byBjaGVjayBmb3Ig dmVyc2lvbi4KLT4gICAgRm9yIGV4YW1wbGUgYmVjYXVzZSB2YXJpb3VzIGRpc3Ryb3MgYmFja3Bv cnQgdmFyaW91cyBmaXhlcyAodW5mb3J0dW5hdGVseQotPiAgICBpbmNsdWRpbmcgdGhlaXIgcG9z c2libGUgcmVncmVzc2lvbnMvZGVmZWN0cykgYW5kIHNvIHZlcnNpb24gY2hlY2tzIG1heSBiZQot PiAgICBtaXNsZWFkaW5nIHRoZW4uICBBdCBsZWFzdCBpbiB0aGlzIGNhc2UgaXQgc2VlbXMgdG8g bWUgYXMgcG9zc2libGUgdG8gY2hlY2sKLT4gICAgaG93IGxpYmJhY2t0cmFjZSBiZWhhdmVzIGZy b20gY29uZmlndXJlOyBhbHRob3VnaCBtYXliZSBpdCBpcyBub3QgZWFzeQotPiAgICBlbm91Z2gs IG5vdCBzdXJlLgotCi1JbiBvcmRlciB0byBjaGVjayBsaWJiYWJlbHRyYWNlJ3MgYmVoYXZpb3Vy IGluIGNvbmZpZ3VyZSwgd2UgaGF2ZSB0byB3cml0ZQotYSBjIHByb2dyYW0gdG8gZ2VuZXJhdGUg Q1RGIGRhdGEgYW5kIHJlYWQgdGhlIHRyYWNlIGRhdGEgdmlhCi1iYWJlbHRyYWNlIG9yIGFueSBw cm9ncmFtICh1c2luZyBsaWJiYWJlbHRyYWNlKSB3cml0dGVuIGJ5IG91cnNlbHZlcy4KLUl0IGlz IG5vdCBlYXN5IHRvIGRvIHNvLgotCi1UaGUgcGF0Y2ggaXMgdXBkYXRlZC4gIE9LIHRvIGFwcGx5 PwotCi0tLSAKLVlhbyAo6b2Q5bCnKQotCi1TdWJqZWN0OiBbUEFUQ0hdIENoZWNrIGJhYmVsdHJh Y2UgMS4xLjAKLVN1YmplY3Q6IFtQQVRDSF0gQ2hlY2sgYmFiZWx0cmFjZSAxLjEuMAotCi1XaGVu IEdEQiB1c2VzIHJlY2VudCB2ZXJzaW9uIG9mIGJhYmVsdHJhY2UsIHN1Y2ggYXMgMS4yLngsIHdl J2xsIHNlZQotc3VjaCBlcnJvciBlbWl0dGVkIGZyb20gYmFiZWx0cmFjZSBsaWJyYXJ5LAotCi0g KGdkYikgdGFyZ2V0IGN0ZiAuLi4vZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2UvYWN0aW9ucy5jdGYK LSBbZXJyb3JdIEludmFsaWQgQ1RGIHN0cmVhbTogY29udGVudCBzaXplIGlzIHNtYWxsZXIgdGhh bgotcGFja2V0IGhlYWRlcnMuCi0gW2Vycm9yXSBTdHJlYW0gaW5kZXggY3JlYXRpb24gZXJyb3Iu Ci0gW2Vycm9yXSBPcGVuIGZpbGUgc3RyZWFtIGVycm9yLgotCi1UaGUgcHJvYmxlbSBjYW4gYmUg cmVwcm9kdWNlIG91dCBvZiBHREIgdG9vLCB1c2luZyBiYWJlbHRyYWNlLAotCi0gJCBiYWJlbHRy YWNlIC4vZmFrZS1wYWNrZXQuY3RmLwotIFtlcnJvcl0gSW52YWxpZCBDVEYgc3RyZWFtOiBjb250 ZW50IHNpemUgaXMgc21hbGxlciB0aGFuIHBhY2tldCBoZWFkZXJzLgotIFtlcnJvcl0gU3RyZWFt IGluZGV4IGNyZWF0aW9uIGVycm9yLgotIFtlcnJvcl0gT3BlbiBmaWxlIHN0cmVhbSBlcnJvci4K LQotUmVjZW50IGJhYmVsdHJhY2UgbGlicmFyeSBiZWNvbWVzIG1vcmUgc3RyaWN0IG9uIENURiwg YW5kIGNvbXBsYWlucwotYWJvdXQgb25lICJmYWtlZCBwYWNrZXQiIEdEQiBhZGRzLCB3aGVuIHNh dmluZyB0cmFjZSBkYXRhIGluIGN0ZgotZm9ybWF0IGZyb20gR0RCLiAgYmFiZWx0cmFjZSAxLjEu MCBoYXMgYSBidWcgdGhhdCBpdCBjYW4ndCByZWFkIHRyYWNlCi1kYXRhIHNtYWxsZXIgdGhhbiBh IGNlcnRhaW4gc2l6ZSAoc2VlIGh0dHBzOi8vYnVncy5sdHRuZy5vcmcvaXNzdWVzLzQ1MCkuCi1X ZSB3b3JrYXJvdW5kIGl0IGluIEdEQiB0byBhcHBlbmQgc29tZSBtZWFuaW5nbGVzcyBkYXRhIGlu IGEgZmFrZWQKLXBhY2tldCB0byBtYWtlIHN1cmUgdHJhY2UgZmlsZSBpcyBsYXJnZSBlbm91Z2gg KHNlZSBjdGYuYzpjdGZfZW5kKS4KLVRoZSBiYWJlbHRyYWNlIGlzc3VlIHdhcyBmaXhlZCBpbiAx LjEuMSByZWxlYXNlLiAgSG93ZXZlciwgYmFiZWx0cmFjZQotcmVjZW50IHJlbGVhc2UgKHNpbmNl IDEuMS4yKSBzdGFydHMgdG8gY29tcGxhaW4gYWJvdXQgc3VjaCBmYWtlZAotcGFja2V0LiAgSGVy ZSBpcyBhIHRhYmxlIHNob3dzIHRoYXQgd2hldGhlciBmYWtlZCBwYWNrZXQgb3Igbm8gZmFrZWQK LXBhY2tldCBpcyBzdXBwb3J0ZWQgYnkgdmFyaW91cyBiYWJlbHRyYWNlIHJlbGVhc2VzLAotCi0g ICAgICAgIGZha2VkIHBhY2tldCAgICAgIG5vIGZha2VkIHBhY2tldAotMS4xLjAgICAgICBZZXMg ICAgICAgICAgICAgICAgIE5vCi0xLjEuMSAgICAgIFllcyAgICAgICAgICAgICAgICAgWWVzCi0x LjEuMiAgICAgIE5vICAgICAgICAgICAgICAgICAgWWVzCi0xLjIuMCAgICAgIE5vICAgICAgICAg ICAgICAgICAgWWVzCi0KLVdlIGRlY2lkZSB0byBpbmNsdWRlIHRoZSBjb2RlIHRvIHdvcmthcm91 bmQgMS4xLjAgaXNzdWUgb25seSBpZiAxLjEuMAotaXMgdXNlZC4gIFdlIGNob29zZSBwa2ctY29u ZmlnIHRvIGNoZWNrIGJhYmVsdHJhY2UncyB2ZXJzaW9uIGluCi1jb25maWd1cmUuCi0KLWdkYjoK LQotMjAxNC0wOC0yMCAgWWFvIFFpICA8eWFvQGNvZGVzb3VyY2VyeS5jb20+Ci0KLQkqIGNvbmZp Z3VyZS5hYzogRGlzYWJsZSBiYWJlbHRyYWNlIHN1cHBvcnQgaWYgcGtnLWNvbmZpZyBpcwotCW1p c3NpbmcuICBVc2UgcGtnLWNvbmZpZyB0byBjaGVjayB3aGV0aGVyIGxpYmJhYmVsdHJhY2UgaXMK LQkxLjEuMC4KLQkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KLQkqIGNvbmZpZ3VyZTogUmVnZW5l cmF0ZS4KLQkqIGN0Zi5jIChDVEZfRklMRV9NSU5fU0laRSk6IFJlbW92ZS4KLQkoY3RmX2VuZCk6 IFdyYXAgdGhlIGNvZGUgd2l0aAotCSNpZiBIQVZFX0xJQkJBQkVMVFJBQ0UxXzFfMCAjZW5kaWYu Ci0JW0hBVkVfTElCQkFCRUxUUkFDRTFfMV8wXSAoQ1RGX0ZJTEVfTUlOX1NJWkUpOiBOZXcgbWFj cm8uCi0tLS0KLSBnZGIvY29uZmlnLmluICAgIHwgIDMgKysrCi0gZ2RiL2NvbmZpZ3VyZSAgICB8 IDI1ICsrKysrKysrKysrKysrKysrKysrKysrKysKLSBnZGIvY29uZmlndXJlLmFjIHwgMjIgKysr KysrKysrKysrKysrKysrKysrKwotIGdkYi9jdGYuYyAgICAgICAgfCAyNSArKysrKysrKysrKysr KysrLS0tLS0tLS0tCi0gNCBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZy5pbiBiL2dkYi9jb25maWcuaW4KLWlu ZGV4IGI4NTM0MTIuLjU0MTUyY2QgMTAwNjQ0Ci0tLS0gYS9nZGIvY29uZmlnLmluCi0rKysgYi9n ZGIvY29uZmlnLmluCi1AQCAtMTgzLDYgKzE4Myw5IEBACi0gLyogRGVmaW5lIGlmIHlvdSBoYXZl IHRoZSBiYWJlbHRyYWNlIGxpYnJhcnkuICovCi0gI3VuZGVmIEhBVkVfTElCQkFCRUxUUkFDRQot IAotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIGxpYmJhYmVsdHJhY2UgMS4xLjAgKi8KLSsj dW5kZWYgSEFWRV9MSUJCQUJFTFRSQUNFMV8xXzAKLSsKLSAvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgYGRsJyBsaWJyYXJ5ICgtbGRsKS4gKi8KLSAjdW5kZWYgSEFWRV9MSUJETAotIAot ZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCi1pbmRleCA5MjUzZTI4 Li5kNGUyYzZlIDEwMDc1NQotLS0tIGEvZ2RiL2NvbmZpZ3VyZQotKysrIGIvZ2RiL2NvbmZpZ3Vy ZQotQEAgLTE0ODE3LDYgKzE0ODE3LDExIEBAICRhc19lY2hvICIkd2l0aF9iYWJlbHRyYWNlIiA+ JjY7IH0KLSBpZiB0ZXN0ICJ4JHdpdGhfYmFiZWx0cmFjZSIgPSAieG5vIjsgdGhlbgotICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBiYWJsZXRyYWNl IHN1cHBvcnQgZGlzYWJsZWQ7IEdEQiBpcyB1bmFibGUgdG8gcmVhZCBDVEYgZGF0YS4iID4mNQot ICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGJhYmxldHJhY2Ugc3VwcG9ydCBkaXNhYmxlZDsg R0RCIGlzIHVuYWJsZSB0byByZWFkIENURiBkYXRhLiIgPiYyO30KLStlbGlmIHRlc3QgIiR7cGtn X2NvbmZpZ19wcm9nX3BhdGh9IiA9ICJtaXNzaW5nIjsgdGhlbgotKyAgIyBwa2ctY29uZmlnIGlz IHVzZWQgdG8gY2hlY2sgdGhlIHZlcnNpb24gb2YgbGliYmFiZWx0cmFjZS4gIElmIHBrZy1jb25m aWcKLSsgICMgaXMgbWlzc2luZywgd2UgaGF2ZSB0byBkaXNhYmxlIGJhYmVsdHJhY2Ugc3VwcG9y dC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzog cGtnLWNvbmZpZyBub3QgZm91bmQsIGJhYmxldHJhY2Ugc3VwcG9ydCBkaXNhYmxlZCIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogcGtnLWNvbmZpZyBub3QgZm91bmQsIGJhYmxldHJh Y2Ugc3VwcG9ydCBkaXNhYmxlZCIgPiYyO30KLSBlbHNlCi0gICAjIEFwcGVuZCAtV2Vycm9yIHRv IENGTEFHUyBzbyB0aGF0IGNvbmZpZ3VyZSBjYW4gY2F0Y2ggdGhlIHdhcm5pbmcKLSAgICMgImFz c2lnbm1lbnQgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIiwgd2hpY2ggaXMgcmVsYXRl ZCB0bwotQEAgLTE1MzA3LDYgKzE1MzEyLDI2IEBAICRhc19lY2hvICIkTElCQkFCRUxUUkFDRSIg PiY2OyB9Ci0gICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog V0FSTklORzogYmFiZWx0cmFjZSBpcyBtaXNzaW5nIG9yIHVudXNhYmxlOyBHREIgaXMgdW5hYmxl IHRvIHJlYWQgQ1RGIGRhdGEuIiA+JjUKLSAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBiYWJl bHRyYWNlIGlzIG1pc3Npbmcgb3IgdW51c2FibGU7IEdEQiBpcyB1bmFibGUgdG8gcmVhZCBDVEYg ZGF0YS4iID4mMjt9Ci0gICAgICBmaQotKyAgZWxzZQotKyAgICAgIyBOZWVkIHRvIGtub3cgd2hl dGhlciBsaWJiYWJlbHRyYWNlIGlzIDEuMS4wLgotKyAgICAgcGtnX2NvbmZpZ19wYXRoPQotKyAg ICAgZm9yIHggaW4gJExUTElCQkFCRUxUUkFDRTsgZG8KLSsgICAgICAgY2FzZSAiJHgiIGluCi0r ICAgICAgICAgLUwqKQotKwkgICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AK LSsJICAgaWYgdGVzdCAtZCAiJGRpci9wa2djb25maWciOyB0aGVuCi0rCSAgICAgcGtnX2NvbmZp Z19wYXRoPSIke3BrZ19jb25maWdfcGF0aH0ke3BrZ19jb25maWdfcGF0aDorOn0kZGlyL3BrZ2Nv bmZpZyIKLSsJICAgZmkKLSsJICAgOzsKLSsgICAgICAgZXNhYwotKyAgICAgZG9uZQotKwotKyAg ICAgYFBLR19DT05GSUdfUEFUSD0kUEtHX0NPTkZJR19QQVRIOiRwa2dfY29uZmlnX3BhdGggJHtw a2dfY29uZmlnX3Byb2dfcGF0aH0gYmFiZWx0cmFjZSA9IDEuMS4wYAotKyAgICAgaWYgdGVzdCAi JD8iIC1lcSAwIDsgdGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfTElCQkFCRUxUUkFD RTFfMV8wIDEiID4+Y29uZmRlZnMuaAotKwotKyAgICAgZmkKLSAgIGZpCi0gZmkKLSAKLWRpZmYg LS1naXQgYS9nZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwotaW5kZXggNjE5MTli NC4uMWQ4ZDQwMCAxMDA2NDQKLS0tLSBhL2dkYi9jb25maWd1cmUuYWMKLSsrKyBiL2dkYi9jb25m aWd1cmUuYWMKLUBAIC0yNDIwLDYgKzI0MjAsMTAgQEAgQUNfTVNHX1JFU1VMVChbJHdpdGhfYmFi ZWx0cmFjZV0pCi0gCi0gaWYgdGVzdCAieCR3aXRoX2JhYmVsdHJhY2UiID0gInhubyI7IHRoZW4K LSAgIEFDX01TR19XQVJOKFtiYWJsZXRyYWNlIHN1cHBvcnQgZGlzYWJsZWQ7IEdEQiBpcyB1bmFi bGUgdG8gcmVhZCBDVEYgZGF0YS5dKQotK2VsaWYgdGVzdCAiJHtwa2dfY29uZmlnX3Byb2dfcGF0 aH0iID0gIm1pc3NpbmciOyB0aGVuCi0rICAjIHBrZy1jb25maWcgaXMgdXNlZCB0byBjaGVjayB0 aGUgdmVyc2lvbiBvZiBsaWJiYWJlbHRyYWNlLiAgSWYgcGtnLWNvbmZpZwotKyAgIyBpcyBtaXNz aW5nLCB3ZSBoYXZlIHRvIGRpc2FibGUgYmFiZWx0cmFjZSBzdXBwb3J0LgotKyAgQUNfTVNHX1dB Uk4oW3BrZy1jb25maWcgbm90IGZvdW5kLCBiYWJsZXRyYWNlIHN1cHBvcnQgZGlzYWJsZWRdKQot IGVsc2UKLSAgICMgQXBwZW5kIC1XZXJyb3IgdG8gQ0ZMQUdTIHNvIHRoYXQgY29uZmlndXJlIGNh biBjYXRjaCB0aGUgd2FybmluZwotICAgIyAiYXNzaWdubWVudCBmcm9tIGluY29tcGF0aWJsZSBw b2ludGVyIHR5cGUiLCB3aGljaCBpcyByZWxhdGVkIHRvCi1AQCAtMjQ1MCw2ICsyNDU0LDI0IEBA IGVsc2UKLSAgICAgIGVsc2UKLSAgICAgICAgQUNfTVNHX1dBUk4oW2JhYmVsdHJhY2UgaXMgbWlz c2luZyBvciB1bnVzYWJsZTsgR0RCIGlzIHVuYWJsZSB0byByZWFkIENURiBkYXRhLl0pCi0gICAg ICBmaQotKyAgZWxzZQotKyAgICAgIyBOZWVkIHRvIGtub3cgd2hldGhlciBsaWJiYWJlbHRyYWNl IGlzIDEuMS4wLgotKyAgICAgcGtnX2NvbmZpZ19wYXRoPQotKyAgICAgZm9yIHggaW4gJExUTElC QkFCRUxUUkFDRTsgZG8KLSsgICAgICAgY2FzZSAiJHgiIGluCi0rICAgICAgICAgLUwqKQotKwkg ICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AKLSsJICAgaWYgdGVzdCAtZCAi JGRpci9wa2djb25maWciOyB0aGVuCi0rCSAgICAgcGtnX2NvbmZpZ19wYXRoPSIke3BrZ19jb25m aWdfcGF0aH0ke3BrZ19jb25maWdfcGF0aDorOn0kZGlyL3BrZ2NvbmZpZyIKLSsJICAgZmkKLSsJ ICAgOzsKLSsgICAgICAgZXNhYwotKyAgICAgZG9uZQotKwotKyAgICAgYFBLR19DT05GSUdfUEFU SD0kUEtHX0NPTkZJR19QQVRIOiRwa2dfY29uZmlnX3BhdGggJHtwa2dfY29uZmlnX3Byb2dfcGF0 aH0gYmFiZWx0cmFjZSA9IDEuMS4wYAotKyAgICAgaWYgdGVzdCAiJD8iIC1lcSAwIDsgdGhlbgot KyAgICAgICBBQ19ERUZJTkUoW0hBVkVfTElCQkFCRUxUUkFDRTFfMV8wXSwgWzFdLCBbRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgbGliYmFiZWx0cmFjZSAxLjEuMF0pCi0rICAgICBmaQotICAgZmkK LSBmaQotIAotZGlmZiAtLWdpdCBhL2dkYi9jdGYuYyBiL2dkYi9jdGYuYwotaW5kZXggZGY2NDVj MC4uNjg0ZGE1MCAxMDA2NDQKLS0tLSBhL2dkYi9jdGYuYwotKysrIGIvZ2RiL2N0Zi5jCi1AQCAt NjIzLDExICs2MjMsNiBAQCBjdGZfd3JpdGVfZGVmaW5pdGlvbl9lbmQgKHN0cnVjdCB0cmFjZV9m aWxlX3dyaXRlciAqc2VsZikKLSAgIHNlbGYtPm9wcy0+ZnJhbWVfb3BzLT5lbmQgKHNlbGYpOwot IH0KLSAKLS0vKiBUaGUgbWluaW1hbCBmaWxlIHNpemUgb2YgZGF0YSBzdHJlYW0uICBJdCBpcyBy ZXF1aXJlZCBieQotLSAgIGJhYmVsdHJhY2UuICAqLwotLQotLSNkZWZpbmUgQ1RGX0ZJTEVfTUlO X1NJWkUJCTQwOTYKLS0KLSAvKiBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0cmFjZV9m aWxlX3dyaXRlX29wcyBtZXRob2QKLSAgICBlbmQuICAqLwotIAotQEAgLTYzNywxMCArNjMyLDIx IEBAIGN0Zl9lbmQgKHN0cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqc2VsZikKLSAgIHN0cnVjdCBj dGZfdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciA9IChzdHJ1Y3QgY3RmX3RyYWNlX2ZpbGVfd3Jp dGVyICopIHNlbGY7Ci0gCi0gICBnZGJfYXNzZXJ0ICh3cml0ZXItPnRjcy5jb250ZW50X3NpemUg PT0gMCk7Ci0tICAvKiBUaGUgYmFiZWx0cmFjZSByZXF1aXJlcyBvciBhc3N1bWVzIHRoYXQgdGhl IHNpemUgb2YgZGF0YXN0cmVhbQotLSAgICAgZmlsZSBpcyBncmVhdGVyIHRoYW4gNDA5NiBieXRl cy4gIElmIHdlIGRvbid0IGdlbmVyYXRlIGVub3VnaAotLSAgICAgcGFja2V0cyBhbmQgZXZlbnRz LCBjcmVhdGUgYSBmYWtlIHBhY2tldCB3aGljaCBoYXMgemVybyBldmVudCwKLS0gICAgICB0byB1 c2UgdXAgdGhlIHNwYWNlLiAgKi8KLSsKLSsjaWYgSEFWRV9MSUJCQUJFTFRSQUNFMV8xXzAKLSsg IC8qIFRoZSBiYWJlbHRyYWNlLTEuMS4wIHJlcXVpcmVzIG9yIGFzc3VtZXMgdGhhdCB0aGUgc2l6 ZSBvZiBkYXRhc3RyZWFtCi0rICAgICBmaWxlIGlzIGdyZWF0ZXIgdGhhbiA0MDk2IGJ5dGVzLiAg VGhpcyB3YXMgZml4ZWQgYWZ0ZXIgMS4xLjAgcmVsZWFzZS4KLSsgICAgIFNlZSBodHRwczovL2J1 Z3MubHR0bmcub3JnL2lzc3Vlcy80NTAKLSsgICAgIElmIHdlIGRvbid0IGdlbmVyYXRlIGVub3Vn aCBwYWNrZXRzIGFuZCBldmVudHMsIGNyZWF0ZSBhIGZha2UgcGFja2V0Ci0rICAgICB3aGljaCBo YXMgemVybyBldmVudCwgdG8gdXNlIHVwIHRoZSBzcGFjZS4gIEhvd2V2ZXIsIGJhYmVsdHJhY2UK LSsgICAgIHJlbGVhc2UgKHNpbmNlIDEuMS4yKSBzdGFydHMgdG8gY29tcGxhaW4gYWJvdXQgc3Vj aCBmYWtlZCBwYWNrZXQsCi0rICAgICB3ZSBpbmNsdWRlIHRoaXMgd29ya2Fyb3VuZCBvbmx5IGZv ciBiYWJlbHRyYWNlIDEuMS4wLiAgKi8KLSsKLSsgIC8qIFRoZSBtaW5pbWFsIGZpbGUgc2l6ZSBv ZiBkYXRhIHN0cmVhbS4gIEl0IGlzIHJlcXVpcmVkIGJ5Ci0rICAgICBiYWJlbHRyYWNlLiAgKi8K LSsKLSsjZGVmaW5lIENURl9GSUxFX01JTl9TSVpFCQk0MDk2Ci0rCi0gICBpZiAod3JpdGVyLT50 Y3MucGFja2V0X3N0YXJ0IDwgQ1RGX0ZJTEVfTUlOX1NJWkUpCi0gICAgIHsKLSAgICAgICB1aW50 MzJfdCB1MzI7Ci1AQCAtNjgxLDYgKzY4Nyw3IEBAIGN0Zl9lbmQgKHN0cnVjdCB0cmFjZV9maWxl X3dyaXRlciAqc2VsZikKLSAJICBjdGZfc2F2ZV93cml0ZSAoJndyaXRlci0+dGNzLCAmYiwgMSk7 Ci0gCX0KLSAgICAgfQotKyNlbmRpZiAvKiBIQVZFX0xJQkJBQkVMVFJBQ0UxXzFfMCAqLwotIH0K LSAKLSAvKiBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0cmFjZV9mcmFtZV93cml0ZV9v cHMgbWV0aG9kCi0tLSAKLTEuOS4zCi0KCmRpZmYgLS1naXQgYS9nZGItdXBzdHJlYW0ucGF0Y2gg Yi9nZGItdXBzdHJlYW0ucGF0Y2gKaW5kZXggMmMwY2ZjOS4uMDI4ZmU3YSAxMDA2NDQKLS0tIGEv Z2RiLXVwc3RyZWFtLnBhdGNoCisrKyBiL2dkYi11cHN0cmVhbS5wYXRjaApAQCAtNjUsMTgwNiAr NjUsMyBAQCBpbmRleCAwZTAyMDJkLi5kODQ5YjRjIDEwMDY0NAogICMgZ2Ric2VydmVyIGRvZXMg bm90IGhhdmUgdGhpcyBpc3N1ZS4KICBpZiAhW2lzX3JlbW90ZSB0YXJnZXRdIHsKICAgICAgc2V0 dXBfa2ZhaWwgIiotKi0qIiBnZGIvMTU5MzQKLUZyb20gNjNmY2M4YmNkOThhOGNkOTY3MmRkODY3 MmY2NjM2NjJmOGNhYTgxMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBlZHJvIEFs dmVzIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMSBPY3QgMjAxNCAxMDo0NDowOCAr MDEwMAotU3ViamVjdDogW1BBVENIIDEzLzM3XSBBYXJjaDY0OiBNYWtlIENQU1IgYSAzMi1iaXQg cmVnaXN0ZXIgYWdhaW4gaW4gdGhlCi0gdGFyZ2V0IGRlc2NyaXB0aW9uCi0KLVRoaXMgcmV2ZXJ0 cyBjb21taXQgYTRkOWJhODUgLSAnQUFSQ0g2NDogQ2hhbmdlIGNwc3IgdHlwZSB0byBiZQotNjRi aXQuJy4KLQotRXZlbiB0aG91Z2ggTGludXgncyBwdHJhY2UgZXhwb3NlcyBDUFNSIGFzIDY0LWJp dCwgQ1BTUiBpcyByZWFsbHkKLTMyLWJpdCwgYW5kIGJhc2luZyBHREIncyBmdW5kYW1lbnRhbHMg b24gYSBwYXJ0aWN1bGFyIE9TJ3MgcHRyYWNlKDIpCi1pbXBsZW1lbnRhdGlvbiBpcyBhIGJhZCBp ZGVhLgotCi1JbiBhZGRpdGlvbiwgd2hpbGUgdGhhdCBjb21taXQgaW50ZW5kZWQgdG8gZml4IGJp ZyBlbmRpYW4gQWFyY2g2NCwgaXQKLWVuZGVkIHVwIGJyZWFraW5nIGZsb2F0aW5nIHBvaW50IGRl YnVnZ2luZyBhZ2FpbnN0IEdEQnNlcnZlciwgZm9yIGJvdGgKLWJpZyBhbmQgbGl0dGxlIGVuZGlh biwgYmVjYXVzZSBpdCBjaGFuZ2VkIHRoZSBDUFNSIHRvIGJlIDY0LWJpdCBpbiB0aGUKLWZlYXR1 cmVzL2FhcmNoNjQtY29yZS54bWwgZmlsZSwgYnV0IG1pc3NlZCByZWdlbmVyYXRpbmcgdGhlCi1y ZWdmb3JtYXRzL2FhcmNoNjQuZGF0IGZpbGUuICBJZiB3ZSBnZW5lcmF0ZSBpdCBub3csIHdlIHNl ZSB0aGlzOgotCi0gIGRpZmYgLS1naXQgYy9nZGIvcmVnZm9ybWF0cy9hYXJjaDY0LmRhdCB3L2dk Yi9yZWdmb3JtYXRzL2FhcmNoNjQuZGF0Ci0gIGluZGV4IGFmZTEwMjguLjBkMzIxODMgMTAwNjQ0 Ci0gIC0tLSBjL2dkYi9yZWdmb3JtYXRzL2FhcmNoNjQuZGF0Ci0gICsrKyB3L2dkYi9yZWdmb3Jt YXRzL2FhcmNoNjQuZGF0Ci0gIEBAIC0zNSw3ICszNSw3IEBAIGV4cGVkaXRlOngyOSxzcCxwYwot ICAgNjQ6eDMwCi0gICA2NDpzcAotICAgNjQ6cGMKLSAgLTMyOmNwc3IKLSAgKzY0OmNwc3IKLSAg IDEyODp2MAotICAgMTI4OnYxCi0gICAxMjg6djIKLQotSU9XLCB0aGF0IGNvbW1pdCBsZWZ0IHJl Z2Zvcm1hdHMvYWFyY2g2NC5kYXQgc3RpbGwgY29uc2lkZXJpbmcgQ1BTUiBhcwotMzItYml0cy4g IHJlZ2Zvcm1hdHMvYWFyY2g2NC5kYXQgaXMgdXNlZCBieSBHREJzZXJ2ZXIgZm9yIGl0cyBpbnRl cm5hbAotcmVnY2FjaGUgbGF5b3V0LCBhbmQgZm9yIHRoZSBnL0cgcGFja2V0IHJlZ2lzdGVyIGJs b2NrLiAgU2VlIHRoZQotZ2VuZXJhdGVkIGFhcmNoNjQuYyBmaWxlIGluIEdEQnNlcnZlcidzIGJ1 aWxkIGRpci4KLQotU28gdGhlIHRhcmdldCBkZXNjcmlwdGlvbiB4bWwgZmlsZSB0aGF0IEdEQnNl cnZlciByZXBvcnRzIHRvIEdEQiBpcwotbm93IGNsYWltaW5nIHRoYXQgQ1BTUiBpcyA2NC1iaXQs IGJ1dCB3aGF0IEdEQnNlcnZlciBhY3R1YWxseSBwdXRzIGluCi10aGUgZy9HIHJlZ2lzdGVyIHBh Y2tldHMgaXMgMzItYml0cy4gIEJlY2F1c2UgR0RCIHRoaW5rcyBDUFNSIGlzCi02NC1iaXQgKGJl Y2F1c2UgdGhhdCdzIHdoYXQgdGhlIFhNTCBkZXNjcmlwdGlvbiBzYXlzKSwgR0RCIHdpbGwgYmUK LXJlYWRpbmcgdGhlIHJlbWFpbmluZyAzMi1iaXQgYml0cyBvZiBDUFNSIG91dCBvZiB2MCAodGhl IHJlZ2lzdGVyCi1pbW1lZGlhdGVseSBhZnRlcndhcmRzKSwgYW5kIHRoZW4gYWxsIHRoZSByZWdp c3RlcnMgdGhhdCBmb2xsb3cgQ1BTUgotaW4gdGhlIHJlZ2lzdGVyIHBhY2tldCBlbmQgdXAgd3Jv bmcgaW4gR0RCLCBiZWNhdXNlIHRoZXkncmUgYmVpbmcgcmVhZAotZnJvbSB0aGUgd3Jvbmcgb2Zm c2V0cy4uLgotCi1nZGIvCi0yMDE0LTEwLTAxICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQu Y29tPgotCi0JKiBmZWF0dXJlcy9hYXJjaDY0LWNvcmUueG1sIChjcHNyKTogQ2hhbmdlIGJhY2sg dG8gMzItYml0LgotCSogZmVhdHVyZXMvYWFyY2g2NC5jOiBSZWdlbmVyYXRlLgotLS0tCi0gZ2Ri L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgfCA1ICsrKysrCi0gZ2RiL2ZlYXR1cmVzL2FhcmNo NjQtY29yZS54bWwgfCAyICstCi0gZ2RiL2ZlYXR1cmVzL2FhcmNoNjQuYyAgICAgICAgfCAyICst Ci0gMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLSMj IyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsOCBAQAot KzIwMTQtMTAtMDEgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0rCi0rCSogZmVh dHVyZXMvYWFyY2g2NC1jb3JlLnhtbCAoY3Bzcik6IENoYW5nZSBiYWNrIHRvIDMyLWJpdC4KLSsJ KiBmZWF0dXJlcy9hYXJjaDY0LmM6IFJlZ2VuZXJhdGUuCi0rCi0gMjAxNC0wOS0xMSAgUGVkcm8g QWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJUFIgZ2RiLzE3MzQ3Ci0tLS0gYS9nZGIv ZmVhdHVyZXMvYWFyY2g2NC1jb3JlLnhtbAotKysrIGIvZ2RiL2ZlYXR1cmVzL2FhcmNoNjQtY29y ZS54bWwKLUBAIC00Miw1ICs0Miw1IEBACi0gICA8cmVnIG5hbWU9InNwIiBiaXRzaXplPSI2NCIg dHlwZT0iZGF0YV9wdHIiLz4KLSAKLSAgIDxyZWcgbmFtZT0icGMiIGJpdHNpemU9IjY0IiB0eXBl PSJjb2RlX3B0ciIvPgotLSAgPHJlZyBuYW1lPSJjcHNyIiBiaXRzaXplPSI2NCIvPgotKyAgPHJl ZyBuYW1lPSJjcHNyIiBiaXRzaXplPSIzMiIvPgotIDwvZmVhdHVyZT4KLS0tLSBhL2dkYi9mZWF0 dXJlcy9hYXJjaDY0LmMKLSsrKyBiL2dkYi9mZWF0dXJlcy9hYXJjaDY0LmMKLUBAIC01MCw3ICs1 MCw3IEBAIGluaXRpYWxpemVfdGRlc2NfYWFyY2g2NCAodm9pZCkKLSAgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJ4MzAiLCAzMCwgMSwgTlVMTCwgNjQsICJpbnQiKTsKLSAgIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJzcCIsIDMxLCAxLCBOVUxMLCA2NCwgImRhdGFfcHRyIik7Ci0g ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicGMiLCAzMiwgMSwgTlVMTCwgNjQsICJjb2Rl X3B0ciIpOwotLSAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImNwc3IiLCAzMywgMSwgTlVM TCwgNjQsICJpbnQiKTsKLSsgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJjcHNyIiwgMzMs IDEsIE5VTEwsIDMyLCAiaW50Iik7Ci0gCi0gICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1 cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmFhcmNoNjQuZnB1Iik7Ci0gICBmaWVsZF90eXBlID0g dGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgImllZWVfZG91YmxlIik7Ci0tLSAKLTEuOS4zCi0K LUZyb20gMjQ0ZmU4MmI5YzY1NDI1NTdhMWMyZDRkMjFhZjEwOTI2OTJkMzc3ZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IERvdWcgRXZhbnMgPGRqZUBnb29nbGUuY29tPgotRGF0ZTog V2VkLCAxNSBPY3QgMjAxNCAxMzoyMzoyMyAtMDcwMAotU3ViamVjdDogW1BBVENIIDI5LzM3XSBQ UiBweXRob24vMTczNjQKLQotZ2RiL0NoYW5nZUxvZzoKLQotCSogcHl0aG9uL2xpYi9nZGIvX19p bml0X18ucHkgKHBhY2thZ2VzKTogQWRkICJwcmludGVyIi4KLQkqIHB5dGhvbi9saWIvZ2RiL2Nv bW1hbmQvYm91bmRfcmVnaXN0ZXJzLnB5OiBNb3ZlZCB0byAuLi4KLQkqIHB5dGhvbi9saWIvZ2Ri L3ByaW50ZXIvYm91bmRfcmVnaXN0ZXJzLnB5OiAuLi4gaGVyZS4KLQlBZGQgcHJpbnRlciB0byBn bG9iYWwgc2V0IG9mIGJ1aWx0aW4gcHJpbnRlcnMuICBSZW5hbWUgcHJpbnRlciBmcm9tCi0JImJv dW5kIiB0byAibXB4X2JvdW5kMTI4Ii4KLQkqIHB5dGhvbi9saWIvZ2RiL3ByaW50aW5nLnB5IChf YnVpbHRpbl9wcmV0dHlfcHJpbnRlcnMpOiBOZXcgZ2xvYmFsLAotCXJlZ2lzdGVyZWQgYXMgZ2xv YmFsICJidWlsdGluIiBwcmludGVyLgotCShhZGRfYnVpbHRpbl9wcmV0dHlfcHJpbnRlcik6IE5l dyBmdW5jdGlvbi4KLQkqIGRhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluIChQWVRIT05fRklMRV9M SVNUKTogVXBkYXRlLCBhbmQgYWRkCi0JZ2RiL3ByaW50ZXIvX19pbml0X18ucHkuCi0tLS0KLSBn ZGIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNSArKysrKysr KysKLSBnZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4gICAgICAgICAgICAgICAgfCAgNSAr LS0KLSBnZGIvcHl0aG9uL2xpYi9nZGIvX19pbml0X18ucHkgICAgICAgICAgICAgICAgfCAgMyAr LQotIGdkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVycy5weSB8IDQ1IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGdkYi9weXRob24vbGliL2dkYi9wcmludGVyL19f aW5pdF9fLnB5ICAgICAgICB8IDE0ICsrKysrKysrKwotIGdkYi9weXRob24vbGliL2dkYi9wcmlu dGVyL2JvdW5kX3JlZ2lzdGVycy5weSB8IDM2ICsrKysrKysrKysrKysrKysrKysrKwotIGdkYi9w eXRob24vbGliL2dkYi9wcmludGluZy5weSAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysrKwot IDcgZmlsZXMgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25zKC0pCi0gZGVs ZXRlIG1vZGUgMTAwNjQ0IGdkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVy cy5weQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvcHl0aG9uL2xpYi9nZGIvcHJpbnRlci9fX2lu aXRfXy5weQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvcHl0aG9uL2xpYi9nZGIvcHJpbnRlci9i b3VuZF9yZWdpc3RlcnMucHkKLQotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIvZ2RiL0NoYW5n ZUxvZwotIyMgLTEsMyArMSwxOCBAQAotKzIwMTQtMTAtMTUgIERvdWcgRXZhbnMgIDxkamVAZ29v Z2xlLmNvbT4KLSsJICAgIFdhbGZyZWQgVGVkZXNjaGkgIDx3YWxmcmVkLnRlZGVzY2hpQGludGVs LmNvbT4KLSsKLSsJUFIgcHl0aG9uLzE3MzY0Ci0rCSogcHl0aG9uL2xpYi9nZGIvX19pbml0X18u cHkgKHBhY2thZ2VzKTogQWRkICJwcmludGVyIi4KLSsJKiBweXRob24vbGliL2dkYi9jb21tYW5k L2JvdW5kX3JlZ2lzdGVycy5weTogTW92ZWQgdG8gLi4uCi0rCSogcHl0aG9uL2xpYi9nZGIvcHJp bnRlci9ib3VuZF9yZWdpc3RlcnMucHk6IC4uLiBoZXJlLgotKwlBZGQgcHJpbnRlciB0byBnbG9i YWwgc2V0IG9mIGJ1aWx0aW4gcHJpbnRlcnMuICBSZW5hbWUgcHJpbnRlciBmcm9tCi0rCSJib3Vu ZCIgdG8gIm1weF9ib3VuZDEyOCIuCi0rCSogcHl0aG9uL2xpYi9nZGIvcHJpbnRpbmcucHkgKF9i dWlsdGluX3ByZXR0eV9wcmludGVycyk6IE5ldyBnbG9iYWwsCi0rCXJlZ2lzdGVyZWQgYXMgZ2xv YmFsICJidWlsdGluIiBwcmludGVyLgotKwkoYWRkX2J1aWx0aW5fcHJldHR5X3ByaW50ZXIpOiBO ZXcgZnVuY3Rpb24uCi0rCSogZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4gKFBZVEhPTl9GSUxF X0xJU1QpOiBVcGRhdGUsIGFuZCBhZGQKLSsJZ2RiL3ByaW50ZXIvX19pbml0X18ucHkuCi0rCi0g MjAxNC0xMC0wMSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJKiBmZWF0 dXJlcy9hYXJjaDY0LWNvcmUueG1sIChjcHNyKTogQ2hhbmdlIGJhY2sgdG8gMzItYml0LgotLS0t IGEvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi0rKysgYi9nZGIvZGF0YS1kaXJlY3Rv cnkvTWFrZWZpbGUuaW4KLUBAIC02NCw3ICs2NCw2IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCi0g CWdkYi9wcmludGluZy5weSBcCi0gCWdkYi9wcm9tcHQucHkgXAotIAlnZGIveG1ldGhvZC5weSBc Ci0tCWdkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVycy5weSBcCi0gCWdkYi9jb21tYW5kL19faW5p dF9fLnB5IFwKLSAJZ2RiL2NvbW1hbmQveG1ldGhvZHMucHkgXAotIAlnZGIvY29tbWFuZC9mcmFt ZV9maWx0ZXJzLnB5IFwKLUBAIC03Myw3ICs3Miw5IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCi0g CWdkYi9jb21tYW5kL3Byb21wdC5weSBcCi0gCWdkYi9jb21tYW5kL2V4cGxvcmUucHkgXAotIAln ZGIvZnVuY3Rpb24vX19pbml0X18ucHkgXAotLQlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5Ci0rCWdk Yi9mdW5jdGlvbi9zdHJmbnMucHkgXAotKwlnZGIvcHJpbnRlci9fX2luaXRfXy5weSBcCi0rCWdk Yi9wcmludGVyL2JvdW5kX3JlZ2lzdGVycy5weQotIAotIEBIQVZFX1BZVEhPTl9UUlVFQFBZVEhP Tl9GSUxFUyA9ICQoUFlUSE9OX0ZJTEVfTElTVCkKLSBASEFWRV9QWVRIT05fRkFMU0VAUFlUSE9O X0ZJTEVTID0KLS0tLSBhL2dkYi9weXRob24vbGliL2dkYi9fX2luaXRfXy5weQotKysrIGIvZ2Ri L3B5dGhvbi9saWIvZ2RiL19faW5pdF9fLnB5Ci1AQCAtODEsNyArODEsOCBAQCBQWVRIT05ESVIg PSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKLSAKLSBwYWNrYWdl cyA9IFsKLSAgICAgJ2Z1bmN0aW9uJywKLS0gICAgJ2NvbW1hbmQnCi0rICAgICdjb21tYW5kJywK LSsgICAgJ3ByaW50ZXInCi0gXQotIAotICMgcGtndXRpbC5pdGVyX21vZHVsZXMgaXMgbm90IGF2 YWlsYWJsZSBwcmlvciB0byBQeXRob24gMi42LiAgSW5zdGVhZCwKLS0tLSBhL2dkYi9weXRob24v bGliL2dkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVycy5weQotKysrIC9kZXYvbnVsbAotQEAgLTEs NDUgKzAsMCBAQAotLSMgUHJldHR5LXByaW50ZXIgdXRpbGl0aWVzLgotLSMgQ29weXJpZ2h0IChD KSAyMDEzLTIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0tCi0tIyBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotLSMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKLS0jIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0tIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgotLSMKLS0jIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotLSMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLS0jIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLS0jIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0tIwotLSMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKLS0jIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgotLQotLWltcG9ydCBnZGIucHJpbnRpbmcKLS0KLS1jbGFzcyBC b3VuZFByaW50ZXI6Ci0tICAgICIiIkFkZHMgc2l6ZSBmaWVsZCB0byBhIF9yYXdib3VuZDEyOCB0 eXBlLiIiIgotLQotLSAgICBkZWYgX19pbml0X18gKHNlbGYsIHZhbCk6Ci0tICAgICAgICBzZWxm LnZhbCA9IHZhbAotLQotLSAgICBkZWYgdG9fc3RyaW5nIChzZWxmKToKLS0gICAgICAgIHVwcGVy ID0gc2VsZi52YWxbInVib3VuZCJdCi0tICAgICAgICBsb3dlciA9IHNlbGYudmFsWyJsYm91bmQi XQotLSAgICAgICAgc2l6ZSAgPSAobG9uZykgKCh1cHBlcikgLSAobG93ZXIpKQotLSAgICAgICAg aWYgc2l6ZSA+IC0xOgotLSAgICAgICAgICAgIHNpemUgPSBzaXplICsgMQotLSAgICAgICAgcmVz dWx0ID0gJ3tsYm91bmQgPSAlcywgdWJvdW5kID0gJXN9IDogc2l6ZSAlcycgJSAobG93ZXIsIHVw cGVyLCBzaXplKQotLSAgICAgICAgcmV0dXJuIHJlc3VsdAotLQotLSMgVGhlcmUgYXJlIHR3byBw YXR0ZXJuIG1hdGNoaW5nIHVzZWQ6IGZpcnN0IG9uZSBpcyByZWxhdGVkIHRvIGEgbGlicmFyeQot LSMgc2Vjb25kIGlzIHJlbGF0ZWQgdG8gdGhlIHR5cGUuIFNpbmNlIHdlIGFyZSBkaXNwbGF5aW5n IGEgcmVnaXN0ZXIgYWxsCi0tIyBsaWJyYXJpZXMgYXJlIGFjY2VwdGVkLiBUeXBlIHRvIGJlIHBy b2Nlc3NlZCBpcyB0aGUgc2FtZSBwcmVzZW50Ci0tIyBpbiB0aGUgeG1sIGZpbGUuCi0tCi0tZGVm IGJ1aWxkX3ByZXR0eV9wcmludGVyICgpOgotLSAgICBwcCA9IGdkYi5wcmludGluZy5SZWdleHBD b2xsZWN0aW9uUHJldHR5UHJpbnRlciAoIi4qIikKLS0gICAgcHAuYWRkX3ByaW50ZXIgKCdib3Vu ZCcsICdeX19nZGJfYnVpbHRpbl90eXBlX2JvdW5kMTI4JywgQm91bmRQcmludGVyKQotLSAgICBy ZXR1cm4gcHAKLS0KLS1nZGIucHJpbnRpbmcucmVnaXN0ZXJfcHJldHR5X3ByaW50ZXIgKGdkYi5j dXJyZW50X29iamZpbGUgKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBidWlsZF9wcmV0dHlfcHJpbnRlciAoKSkKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9weXRo b24vbGliL2dkYi9wcmludGVyL19faW5pdF9fLnB5Ci1AQCAtMCwwICsxLDE0IEBACi0rIyBDb3B5 cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3B5dGhvbi9s aWIvZ2RiL3ByaW50ZXIvYm91bmRfcmVnaXN0ZXJzLnB5Ci1AQCAtMCwwICsxLDM2IEBACi0rIyBQ cmV0dHktcHJpbnRlcnMgZm9yIGJvdW5kcyByZWdpc3RlcnMuCi0rIyBDb3B5cmlnaHQgKEMpIDIw MTMtMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCi0rCi0raW1wb3J0IGdkYi5wcmludGluZwotKwotK2NsYXNzIE1weEJv dW5kMTI4UHJpbnRlcjoKLSsgICAgIiIiQWRkcyBzaXplIGZpZWxkIHRvIGEgbXB4IF9fZ2RiX2J1 aWx0aW5fdHlwZV9ib3VuZDEyOCB0eXBlLiIiIgotKwotKyAgICBkZWYgX19pbml0X18gKHNlbGYs IHZhbCk6Ci0rICAgICAgICBzZWxmLnZhbCA9IHZhbAotKwotKyAgICBkZWYgdG9fc3RyaW5nIChz ZWxmKToKLSsgICAgICAgIHVwcGVyID0gc2VsZi52YWxbInVib3VuZCJdCi0rICAgICAgICBsb3dl ciA9IHNlbGYudmFsWyJsYm91bmQiXQotKyAgICAgICAgc2l6ZSAgPSAobG9uZykgKCh1cHBlcikg LSAobG93ZXIpKQotKyAgICAgICAgaWYgc2l6ZSA+IC0xOgotKyAgICAgICAgICAgIHNpemUgPSBz aXplICsgMQotKyAgICAgICAgcmVzdWx0ID0gJ3tsYm91bmQgPSAlcywgdWJvdW5kID0gJXN9IDog c2l6ZSAlcycgJSAobG93ZXIsIHVwcGVyLCBzaXplKQotKyAgICAgICAgcmV0dXJuIHJlc3VsdAot KwotK2dkYi5wcmludGluZy5hZGRfYnVpbHRpbl9wcmV0dHlfcHJpbnRlciAoJ21weF9ib3VuZDEy OCcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXl9fZ2RiX2J1 aWx0aW5fdHlwZV9ib3VuZDEyOCcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNcHhCb3VuZDEyOFByaW50ZXIpCi0tLS0gYS9nZGIvcHl0aG9uL2xpYi9nZGIvcHJp bnRpbmcucHkKLSsrKyBiL2dkYi9weXRob24vbGliL2dkYi9wcmludGluZy5weQotQEAgLTI2Mywz ICsyNjMsMTcgQEAgY2xhc3MgRmxhZ0VudW1lcmF0aW9uUHJpbnRlcihQcmV0dHlQcmludGVyKToK LSAgICAgICAgICAgICByZXR1cm4gX0VudW1JbnN0YW5jZShzZWxmLmVudW1lcmF0b3JzLCB2YWwp Ci0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHJldHVybiBOb25lCi0rCi0rCi0rIyBCdWls dGluIHByZXR0eS1wcmludGVycy4KLSsjIFRoZSBzZXQgaXMgZGVmaW5lZCBhcyBlbXB0eSwgYW5k IGZpbGVzIGluIHByaW50aW5nLyoucHkgYWRkIHRoZWlyIHByaW50ZXJzCi0rIyB0byB0aGlzIHdp dGggYWRkX2J1aWx0aW5fcHJldHR5X3ByaW50ZXIuCi0rCi0rX2J1aWx0aW5fcHJldHR5X3ByaW50 ZXJzID0gUmVnZXhwQ29sbGVjdGlvblByZXR0eVByaW50ZXIoImJ1aWx0aW4iKQotKwotK3JlZ2lz dGVyX3ByZXR0eV9wcmludGVyKE5vbmUsIF9idWlsdGluX3ByZXR0eV9wcmludGVycykKLSsKLSsj IEFkZCBhIGJ1aWx0aW4gcHJldHR5LXByaW50ZXIuCi0rCi0rZGVmIGFkZF9idWlsdGluX3ByZXR0 eV9wcmludGVyKG5hbWUsIHJlZ2V4cCwgcHJpbnRlcik6Ci0rICAgIF9idWlsdGluX3ByZXR0eV9w cmludGVycy5hZGRfcHJpbnRlcihuYW1lLCByZWdleHAsIHByaW50ZXIpCi0tLSAKLTEuOS4zCi0K LUZyb20gOTJlMDhjMGQxOTE5MDhiNzMxNTYwMzU1ODIyNmM3Y2EwYmZhODZhNSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFBlZHJvIEFsdmVzIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURh dGU6IEZyaSwgMTcgT2N0IDIwMTQgMTM6NDk6MjggKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCAzMi8z N10gTWFrZSBjb21tb24gY29kZSBoYW5kbGUgdGFyZ2V0X3Rlcm1pbmFsXyogaWRlbXBvdGVuY3kK LQotSSBmb3VuZCBhIHBsYWNlIHRoYXQgc2hvdWxkIGJlIGdpdmluZyBiYWNrIHRoZSB0ZXJtaW5h bCB0byB0aGUgdGFyZ2V0LAotYnV0IG9ubHkgaWYgdGhlIHRhcmdldCB3YXMgYWxyZWFkeSBvd25p bmcgaXQuICBTbyBJIG5lZWQgdG8gYWRkIGEKLWdldHRlciBmb3Igd2hvIG93bnMgdGhlIHRlcm1p bmFsLgotCi1UaGUgdHJvdWJsZSBpcyB0aGF0IHNldmVyYWwgcGxhY2VzL3RhcmdldCBoYXZlIHRo ZWlyIG93biBnbG9iYWxzIHRvCi10cmFjayB0aGlzIHN0YXRlOgotCi0gLSBpbmZsb3cuYzp0ZXJt aW5hbF9pc19vdXJzCi0gLSByZW1vdGUuYzpyZW1vdGVfYXN5bmNfdGVybWluYWxfb3Vyc19wCi0g LSBsaW51eC1uYXQuYzphc3luY190ZXJtaW5hbF9pc19vdXJzCi0gLSBnbzMyLW5hdC5jOnRlcm1p bmFsX2lzX291cnMKLQotV2hpbGUgb25lIG1pZ2h0IHRoaW5rIG9mIGFkZGluZyBhIG5ldyB0YXJn ZXRfb3BzIG1ldGhvZCB0byBxdWVyeSB0aGlzLAotY29uY2VwdHVhbGx5LCB0aGlzIHN0YXRlIGlz bid0IHJlYWxseSBwYXJ0IG9mIGEgcGFydGljdWxhciB0YXJnZXRfb3BzLgotQ29uc2lkZXJpbmcg bXVsdGktdGFyZ2V0LCB0aGUgY29yZSBzaG91bGRuJ3QgaGF2ZSB0byBhc2sgYWxsIHRhcmdldHMK LXRvIGtub3cgd2hldGhlciBpdCdzIEdEQiB0aGF0IG93bnMgdGhlIHRlcm1pbmFsLiAgVGhlcmUn cyBvbmx5IG9uZSBHREIKLShvciByYXRoZXIsIG9ubHkgb25lIHRvcCBsZXZlbCBpbnRlcnByZXRl cikuCi0KLVNvIHdoYXQgdGhpcyBjb21tZW50IGRvZXMgaXMgYWRkIGEgbmV3IGdsb2JhbCB0aGF0 IGlzIHRyYWNrZWQgYnkgdGhlCi1jb3JlIGluc3RlYWQuICBBIHN1YnNlcXVlbnQgcGFzcyBtYXkg bGF0ZXIgcmVtb3ZlIHRoZSBvdGhlciBnbG9iYWxzLgotCi1UZXN0ZWQgb24geDg2XzY0IEZlZG9y YSAyMCwgbmF0aXZlIGFuZCBnZGJzZXJ2ZXIuCi0KLWdkYi8KLTIwMTQtMTAtMTcgIFBlZHJvIEFs dmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0KLQkqIHRhcmdldC5jIChlbnVtIHRlcm1pbmFsX3N0 YXRlKTogTmV3IGVudW0uCi0JKHRlcm1pbmFsX3N0YXRlKTogTmV3IGdsb2JhbC4KLQkodGFyZ2V0 X3Rlcm1pbmFsX2luaXQpOiBOZXcgZnVuY3Rpb24uCi0JKHRhcmdldF90ZXJtaW5hbF9pbmZlcmlv cik6IFNraXAgaWYgaW5mZXJpb3IgYWxyZWFkeSBvd25zIHRoZQotCXRlcm1pbmFsLgotCSh0YXJn ZXRfdGVybWluYWxfb3VycywgdGFyZ2V0X3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCk6IE5ldwot CWZ1bmN0aW9ucy4KLQkqIHRhcmdldC5oICh0YXJnZXRfdGVybWluYWxfaW5pdCk6IENvbnZlcnQg dG8gZnVuY3Rpb24gcHJvdG90eXBlLgotCSh0YXJnZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0 KTogQ29udmVydCB0byBmdW5jdGlvbiBwcm90b3R5cGUKLQlhbmQgdHdlYWsgY29tbWVudC4KLQko dGFyZ2V0X3Rlcm1pbmFsX291cnMpOiBDb252ZXJ0IHRvIGZ1bmN0aW9uIHByb3RvdHlwZSBhbmQg dHdlYWsKLQljb21tZW50LgotCSogd2luZG93cy1uYXQuYyAoZG9faW5pdGlhbF93aW5kb3dzX3N0 dWZmKTogQ2FsbAotCXRhcmdldF90ZXJtaW5hbF9pbml0IGluc3RlYWQgb2YgY2hpbGRfdGVybWlu YWxfaW5pdF93aXRoX3BncnAuCi0tLS0KLSBnZGIvQ2hhbmdlTG9nICAgICB8IDE3ICsrKysrKysr KysrKysrKysrCi0gZ2RiL3RhcmdldC5jICAgICAgfCA1NiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gZ2RiL3RhcmdldC5oICAgICAgfCAy MCArKysrKysrLS0tLS0tLS0tLS0tLQotIGdkYi93aW5kb3dzLW5hdC5jIHwgIDIgKy0KLSA0IGZp bGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQotCi0jIyMgYS9n ZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDIwIEBACi0rMjAx NC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSsKLSsJKiB0YXJnZXQu YyAoZW51bSB0ZXJtaW5hbF9zdGF0ZSk6IE5ldyBlbnVtLgotKwkodGVybWluYWxfc3RhdGUpOiBO ZXcgZ2xvYmFsLgotKwkodGFyZ2V0X3Rlcm1pbmFsX2luaXQpOiBOZXcgZnVuY3Rpb24uCi0rCSh0 YXJnZXRfdGVybWluYWxfaW5mZXJpb3IpOiBTa2lwIGlmIGluZmVyaW9yIGFscmVhZHkgb3ducyB0 aGUKLSsJdGVybWluYWwuCi0rCSh0YXJnZXRfdGVybWluYWxfb3VycywgdGFyZ2V0X3Rlcm1pbmFs X291cnNfZm9yX291dHB1dCk6IE5ldwotKwlmdW5jdGlvbnMuCi0rCSogdGFyZ2V0LmggKHRhcmdl dF90ZXJtaW5hbF9pbml0KTogQ29udmVydCB0byBmdW5jdGlvbiBwcm90b3R5cGUuCi0rCSh0YXJn ZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0KTogQ29udmVydCB0byBmdW5jdGlvbiBwcm90b3R5 cGUKLSsJYW5kIHR3ZWFrIGNvbW1lbnQuCi0rCSh0YXJnZXRfdGVybWluYWxfb3Vycyk6IENvbnZl cnQgdG8gZnVuY3Rpb24gcHJvdG90eXBlIGFuZCB0d2VhawotKwljb21tZW50LgotKwkqIHdpbmRv d3MtbmF0LmMgKGRvX2luaXRpYWxfd2luZG93c19zdHVmZik6IENhbGwKLSsJdGFyZ2V0X3Rlcm1p bmFsX2luaXQgaW5zdGVhZCBvZiBjaGlsZF90ZXJtaW5hbF9pbml0X3dpdGhfcGdycC4KLSsKLSAy MDE0LTEwLTE1ICBEb3VnIEV2YW5zICA8ZGplQGdvb2dsZS5jb20+Ci0gCSAgICBXYWxmcmVkIFRl ZGVzY2hpICA8d2FsZnJlZC50ZWRlc2NoaUBpbnRlbC5jb20+Ci0gCi0tLS0gYS9nZGIvdGFyZ2V0 LmMKLSsrKyBiL2dkYi90YXJnZXQuYwotQEAgLTQ4Miw2ICs0ODIsMzUgQEAgdGFyZ2V0X2xvYWQg KGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQotICAgKCpjdXJyZW50X3RhcmdldC50b19sb2FkKSAo JmN1cnJlbnRfdGFyZ2V0LCBhcmcsIGZyb21fdHR5KTsKLSB9Ci0gCi0rLyogUG9zc2libGUgdGVy bWluYWwgc3RhdGVzLiAgKi8KLSsKLStlbnVtIHRlcm1pbmFsX3N0YXRlCi0rICB7Ci0rICAgIC8q IFRoZSBpbmZlcmlvcidzIHRlcm1pbmFsIHNldHRpbmdzIGFyZSBpbiBlZmZlY3QuICAqLwotKyAg ICB0ZXJtaW5hbF9pc19pbmZlcmlvciA9IDAsCi0rCi0rICAgIC8qIFNvbWUgb2Ygb3VyIHRlcm1p bmFsIHNldHRpbmdzIGFyZSBpbiBlZmZlY3QsIGVub3VnaCB0byBnZXQKLSsgICAgICAgcHJvcGVy IG91dHB1dC4gICovCi0rICAgIHRlcm1pbmFsX2lzX291cnNfZm9yX291dHB1dCA9IDEsCi0rCi0r ICAgIC8qIE91ciB0ZXJtaW5hbCBzZXR0aW5ncyBhcmUgaW4gZWZmZWN0LCBmb3Igb3V0cHV0IGFu ZCBpbnB1dC4gICovCi0rICAgIHRlcm1pbmFsX2lzX291cnMgPSAyCi0rICB9OwotKwotK3N0YXRp YyBlbnVtIHRlcm1pbmFsX3N0YXRlIHRlcm1pbmFsX3N0YXRlOwotKwotKy8qIFNlZSB0YXJnZXQu aC4gICovCi0rCi0rdm9pZAotK3RhcmdldF90ZXJtaW5hbF9pbml0ICh2b2lkKQotK3sKLSsgICgq Y3VycmVudF90YXJnZXQudG9fdGVybWluYWxfaW5pdCkgKCZjdXJyZW50X3RhcmdldCk7Ci0rCi0r ICB0ZXJtaW5hbF9zdGF0ZSA9IHRlcm1pbmFsX2lzX291cnM7Ci0rfQotKwotKy8qIFNlZSB0YXJn ZXQuaC4gICovCi0rCi0gdm9pZAotIHRhcmdldF90ZXJtaW5hbF9pbmZlcmlvciAodm9pZCkKLSB7 Ci1AQCAtNDkyLDkgKzUyMSwzNiBAQCB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKHZvaWQpCi0g ICBpZiAodGFyZ2V0X2Nhbl9hc3luY19wICgpICYmICFzeW5jX2V4ZWN1dGlvbikKLSAgICAgcmV0 dXJuOwotIAotKyAgaWYgKHRlcm1pbmFsX3N0YXRlID09IHRlcm1pbmFsX2lzX2luZmVyaW9yKQot KyAgICByZXR1cm47Ci0rCi0gICAvKiBJZiBHREIgaXMgcmVzdW1pbmcgdGhlIGluZmVyaW9yIGlu IHRoZSBmb3JlZ3JvdW5kLCBpbnN0YWxsCi0gICAgICBpbmZlcmlvcidzIHRlcm1pbmFsIG1vZGVz LiAgKi8KLSAgICgqY3VycmVudF90YXJnZXQudG9fdGVybWluYWxfaW5mZXJpb3IpICgmY3VycmVu dF90YXJnZXQpOwotKyAgdGVybWluYWxfc3RhdGUgPSB0ZXJtaW5hbF9pc19pbmZlcmlvcjsKLSt9 Ci0rCi0rLyogU2VlIHRhcmdldC5oLiAgKi8KLSsKLSt2b2lkCi0rdGFyZ2V0X3Rlcm1pbmFsX291 cnMgKHZvaWQpCi0rewotKyAgaWYgKHRlcm1pbmFsX3N0YXRlID09IHRlcm1pbmFsX2lzX291cnMp Ci0rICAgIHJldHVybjsKLSsKLSsgICgqY3VycmVudF90YXJnZXQudG9fdGVybWluYWxfb3Vycykg KCZjdXJyZW50X3RhcmdldCk7Ci0rICB0ZXJtaW5hbF9zdGF0ZSA9IHRlcm1pbmFsX2lzX291cnM7 Ci0rfQotKwotKy8qIFNlZSB0YXJnZXQuaC4gICovCi0rCi0rdm9pZAotK3RhcmdldF90ZXJtaW5h bF9vdXJzX2Zvcl9vdXRwdXQgKHZvaWQpCi0rewotKyAgaWYgKHRlcm1pbmFsX3N0YXRlICE9IHRl cm1pbmFsX2lzX2luZmVyaW9yKQotKyAgICByZXR1cm47Ci0rICAoKmN1cnJlbnRfdGFyZ2V0LnRv X3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCkgKCZjdXJyZW50X3RhcmdldCk7Ci0rICB0ZXJtaW5h bF9zdGF0ZSA9IHRlcm1pbmFsX2lzX291cnNfZm9yX291dHB1dDsKLSB9Ci0gCi0gc3RhdGljIHZv aWQKLS0tLSBhL2dkYi90YXJnZXQuaAotKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtMTM1OSwzMSAr MTM1OSwyNSBAQCBleHRlcm4gaW50IHRhcmdldF9yZW1vdmVfYnJlYWtwb2ludCAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsCi0gLyogSW5pdGlhbGl6ZSB0aGUgdGVybWluYWwgc2V0dGluZ3Mgd2Ug cmVjb3JkIGZvciB0aGUgaW5mZXJpb3IsCi0gICAgYmVmb3JlIHdlIGFjdHVhbGx5IHJ1biB0aGUg aW5mZXJpb3IuICAqLwotIAotLSNkZWZpbmUgdGFyZ2V0X3Rlcm1pbmFsX2luaXQoKSBcCi0tICAg ICAoKmN1cnJlbnRfdGFyZ2V0LnRvX3Rlcm1pbmFsX2luaXQpICgmY3VycmVudF90YXJnZXQpCi0r ZXh0ZXJuIHZvaWQgdGFyZ2V0X3Rlcm1pbmFsX2luaXQgKHZvaWQpOwotIAotIC8qIFB1dCB0aGUg aW5mZXJpb3IncyB0ZXJtaW5hbCBzZXR0aW5ncyBpbnRvIGVmZmVjdC4KLSAgICBUaGlzIGlzIHBy ZXBhcmF0aW9uIGZvciBzdGFydGluZyBvciByZXN1bWluZyB0aGUgaW5mZXJpb3IuICAqLwotIAot IGV4dGVybiB2b2lkIHRhcmdldF90ZXJtaW5hbF9pbmZlcmlvciAodm9pZCk7Ci0gCi0tLyogUHV0 IHNvbWUgb2Ygb3VyIHRlcm1pbmFsIHNldHRpbmdzIGludG8gZWZmZWN0LAotLSAgIGVub3VnaCB0 byBnZXQgcHJvcGVyIHJlc3VsdHMgZnJvbSBvdXIgb3V0cHV0LAotLSAgIGJ1dCBkbyBub3QgY2hh bmdlIGludG8gb3Igb3V0IG9mIFJBVyBtb2RlCi0tICAgc28gdGhhdCBubyBpbnB1dCBpcyBkaXNj YXJkZWQuCi0rLyogUHV0IHNvbWUgb2Ygb3VyIHRlcm1pbmFsIHNldHRpbmdzIGludG8gZWZmZWN0 LCBlbm91Z2ggdG8gZ2V0IHByb3BlcgotKyAgIHJlc3VsdHMgZnJvbSBvdXIgb3V0cHV0LCBidXQg ZG8gbm90IGNoYW5nZSBpbnRvIG9yIG91dCBvZiBSQVcgbW9kZQotKyAgIHNvIHRoYXQgbm8gaW5w dXQgaXMgZGlzY2FyZGVkLiAgVGhpcyBpcyBhIG5vLW9wIGlmIHRlcm1pbmFsX291cnMKLSsgICB3 YXMgbW9zdCByZWNlbnRseSBjYWxsZWQuICAqLwotIAotLSAgIEFmdGVyIGRvaW5nIHRoaXMsIGVp dGhlciB0ZXJtaW5hbF9vdXJzIG9yIHRlcm1pbmFsX2luZmVyaW9yCi0tICAgc2hvdWxkIGJlIGNh bGxlZCB0byBnZXQgYmFjayB0byBhIG5vcm1hbCBzdGF0ZSBvZiBhZmZhaXJzLiAgKi8KLS0KLS0j ZGVmaW5lIHRhcmdldF90ZXJtaW5hbF9vdXJzX2Zvcl9vdXRwdXQoKSBcCi0tICAgICAoKmN1cnJl bnRfdGFyZ2V0LnRvX3Rlcm1pbmFsX291cnNfZm9yX291dHB1dCkgKCZjdXJyZW50X3RhcmdldCkK LStleHRlcm4gdm9pZCB0YXJnZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0ICh2b2lkKTsKLSAK LSAvKiBQdXQgb3VyIHRlcm1pbmFsIHNldHRpbmdzIGludG8gZWZmZWN0LgotICAgIEZpcnN0IHJl Y29yZCB0aGUgaW5mZXJpb3IncyB0ZXJtaW5hbCBzZXR0aW5ncwotICAgIHNvIHRoZXkgY2FuIGJl IHJlc3RvcmVkIHByb3Blcmx5IGxhdGVyLiAgKi8KLSAKLS0jZGVmaW5lIHRhcmdldF90ZXJtaW5h bF9vdXJzKCkgXAotLSAgICAgKCpjdXJyZW50X3RhcmdldC50b190ZXJtaW5hbF9vdXJzKSAoJmN1 cnJlbnRfdGFyZ2V0KQotK2V4dGVybiB2b2lkIHRhcmdldF90ZXJtaW5hbF9vdXJzICh2b2lkKTsK LSAKLSAvKiBTYXZlIG91ciB0ZXJtaW5hbCBzZXR0aW5ncy4KLSAgICBUaGlzIGlzIGNhbGxlZCBm cm9tIFRVSSBhZnRlciBlbnRlcmluZyBvciBsZWF2aW5nIHRoZSBjdXJzZXMKLS0tLSBhL2dkYi93 aW5kb3dzLW5hdC5jCi0rKysgYi9nZGIvd2luZG93cy1uYXQuYwotQEAgLTE3NDQsNyArMTc0NCw3 IEBAIGRvX2luaXRpYWxfd2luZG93c19zdHVmZiAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgRFdP UkQgcGlkLCBpbnQgYXR0YWNoaW5nKQotICAgICAgY3VycmVudCB0aHJlYWQgdW50aWwgd2UgcmVw b3J0IGFuIGV2ZW50IG91dCBvZiB3aW5kb3dzX3dhaXQuICAqLwotICAgaW5mZXJpb3JfcHRpZCA9 IHBpZF90b19wdGlkIChwaWQpOwotIAotLSAgY2hpbGRfdGVybWluYWxfaW5pdF93aXRoX3BncnAg KHBpZCk7Ci0rICB0YXJnZXRfdGVybWluYWxfaW5pdCAoKTsKLSAgIHRhcmdldF90ZXJtaW5hbF9p bmZlcmlvciAoKTsKLSAKLSAgIHdpbmRvd3NfaW5pdGlhbGl6YXRpb25fZG9uZSA9IDA7Ci0tLSAK LTEuOS4zCi0KLUZyb20gMDRmMDUxNTcwMmE2ZTU3MTFkNzEyMDNmY2MwZWE0ODgxNjFiYTA4NiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBlZHJvIEFsdmVzIDxwYWx2ZXNAcmVkaGF0 LmNvbT4KLURhdGU6IEZyaSwgMTcgT2N0IDIwMTQgMTM6MzE6MjUgKzAxMDAKLVN1YmplY3Q6IFtQ QVRDSCAzMy8zN10gUFIgZ2RiLzE3NDcyOiBXaXRoIGFubm90YXRpb25zLCBpbnB1dCB3aGlsZSBl eGVjdXRpbmcKLSBpbiB0aGUgZm9yZWdyb3VuZCBjcmFzaGVzIHJlYWRsaW5lL0dEQgotTUlNRS1W ZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1KYW4gY2F1Z2h0IGFuIGludGVybWl0dGVu dCBHREIgY3Jhc2ggd2l0aCB0aGUgYW5ub3RhMS5leHAgdGVzdDoKLQotIFN0YXJ0aW5nIHByb2dy YW06IC4uLi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fubm90YTEgXk0KLSBbLi4uXQotIEZBSUw6 IGdkYi5iYXNlL2Fubm90YTEuZXhwOiBydW4gdW50aWwgbWFpbiBicmVha3BvaW50ICh0aW1lb3V0 KQotIFsuLi5dCi0gcmVhZGxpbmU6IHJlYWRsaW5lX2NhbGxiYWNrX3JlYWRfY2hhcigpIGNhbGxl ZCB3aXRoIG5vIGhhbmRsZXIhXk0KLSBFUlJPUjogUHJvY2VzcyBubyBsb25nZXIgZXhpc3RzCi0K LUFsbCB3ZSBuZWVkIHRvIGlzIHRvIGNvbnRpbnVlIHRoZSBpbmZlcmlvciBpbiB0aGUgZm9yZWdy b3VuZCwgYW5kIHR5cGUKLWEgY29tbWFuZCB3aGlsZSB0aGUgaW5mZXJpb3IgaXMgcnVubmluZy4g IEUuZy46Ci0KLSAoZ2RiKSBzZXQgYW5ub3RhdGUgMgotCi0g4paS4paScHJlLXByb21wdAotIChn ZGIpCi0g4paS4paScHJvbXB0Ci0gYwotCi0g4paS4paScG9zdC1wcm9tcHQKLSBDb250aW51aW5n LgotCi0g4paS4paSc3RhcnRpbmcKLQotIOKWkuKWkmZyYW1lcy1pbnZhbGlkCi0KLSAqaW5mZXJp b3IgaXMgcnVubmluZyBub3cqCi0KLSBwIDE8cmV0PgotCi0gcmVhZGxpbmU6IHJlYWRsaW5lX2Nh bGxiYWNrX3JlYWRfY2hhcigpIGNhbGxlZCB3aXRoIG5vIGhhbmRsZXIhCi0gQWJvcnRlZCAoY29y ZSBkdW1wZWQpCi0gJAotCi0KLVdoZW4gd2UgcnVuIGEgZm9yZWdyb3VuZCBleGVjdXRpb24gY29t bWFuZCB3ZSBjYWxsCi10YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgdG8gc3RvcCBHREIgZnJvbSBw cm9jZXNzaW5nIGlucHV0LCBhbmQgdG8gcHV0Ci10aGUgaW5mZXJpb3IncyB0ZXJtaW5hbCBzZXR0 aW5ncyBpbiBlZmZlY3QuICBUaGVuIHdlIHRlbGwgcmVhZGxpbmUgdG8KLWhpZGUgdGhlIHByb21w dCB3aXRoIGRpc3BsYXlfZ2RiX3Byb21wdCwgd2hpY2ggY2xlYXJzIHJlYWRsaW5lJ3MgaW5wdXQK LWNhbGxiYWNrIHRvby4gIFdoZW4gdGhlIHRhcmdldCBzdG9wcywgd2UgY2FsbCB0YXJnZXRfdGVy bWluYWxfb3VycywKLXdoaWNoIHJlLWluc3RhbGxzIHN0ZGluIGluIHRoZSBldmVudCBsb29wLCBh bmQgdGhlbiB3ZSByZWRpc3BsYXkgdGhlCi1wcm9tcHQsIHJlaW5zdGFsbGluZyB0aGUgcmVhZGxp bmUgY2FsbGJhY2tzLgotCi1Ib3dldmVyLCB3aGVuIGFubm90YXRpb25zIGFyZSBpbiBlZmZlY3Qs IHRoZSAiZnJhbWVzLWludmFsaWQiCi1hbm5vdGF0aW9uIGNvZGUgY2FsbHMgdGFyZ2V0X3Rlcm1p bmFsX291cnMgYWZ0ZXIgJ3Jlc3VtZScgaGFkIGFscmVhZHkKLWNhbGxlZCB0YXJnZXRfdGVybWlu YWxfaW5mZXJpb3I6Ci0KLSAodG9wLWdkYikgYnQKLSAjMCAgMHgwMDAwMDAwMDAwNTZiODJmIGlu IGFubm90YXRlX2ZyYW1lc19pbnZhbGlkICgpIGF0IGdkYi9hbm5vdGF0ZS5jOjIxOQotICMxICAw eDAwMDAwMDAwMDA3MmU2Y2MgaW4gcmVpbml0X2ZyYW1lX2NhY2hlICgpIGF0IGdkYi9mcmFtZS5j OjE3MDUKLSAjMiAgMHgwMDAwMDAwMDAwNTk0YmI5IGluIHJlZ2lzdGVyc19jaGFuZ2VkX3B0aWQg KHB0aWQ9Li4uKSBhdCBnZGIvcmVnY2FjaGUuYzo2MTIKLSAjMyAgMHgwMDAwMDAwMDAwNjRjY2Ex IGluIHRhcmdldF9yZXN1bWUgKHB0aWQ9Li4uLCBzdGVwPTEsIHNpZ25hbD1HREJfU0lHTkFMXzAp IGF0IGdkYi90YXJnZXQuYzoyMTM2Ci0gIzQgIDB4MDAwMDAwMDAwMDVmNTdhZiBpbiByZXN1bWUg KHN0ZXA9MSwgc2lnPUdEQl9TSUdOQUxfMCkgYXQgZ2RiL2luZnJ1bi5jOjIyNjMKLSAjNSAgMHgw MDAwMDAwMDAwNWY2MDUxIGluIHByb2NlZWQgKGFkZHI9MTg0NDY3NDQwNzM3MDk1NTE2MTUsIHNp Z2duYWw9R0RCX1NJR05BTF9ERUZBVUxULCBzdGVwPTEpIGF0IGdkYi9pbmZydW4uYzoyNjEzCi0K LUFuZCB0aGVuIG9uY2Ugd2UgaGlkZSB0aGUgcHJvbXB0IGFuZCByZW1vdmUgcmVhZGxpbmUncyBp bnB1dCBoYW5kbGVyCi1jYWxsYmFjaywgd2UncmUgaW4gYSBiYWQgc3RhdGUuICBXZSBlbmQgdXAg d2l0aCB0aGUgdGFyZ2V0IHJ1bm5pbmcKLXN1cHBvc2VkbHkgaW4gdGhlIGZvcmVncm91bmQsIGJ1 dCB3aXRoIHN0ZGluIHN0aWxsIGluc3RhbGxlZCBvbiB0aGUKLWV2ZW50IGxvb3AuICBBbnkgaW5w dXQgdGhlbiBjYWxscyBpbnRvIHJlYWRsaW5lLCB3aGljaCBhYm9ydHMgYmVjYXVzZQotbm8gcmxf bGluZWZ1bmMgY2FsbGJhY2sgaGFuZGxlciBpcyBpbnN0YWxsZWQ6Ci0KLSBQcm9ncmFtIHJlY2Vp dmVkIHNpZ25hbCBTSUdBQlJULCBBYm9ydGVkLgotIDB4MDAwMDAwM2IzNmEzNTg3NyBpbiBfX0dJ X3JhaXNlIChzaWc9c2lnQGVudHJ5PTYpIGF0IC4uL25wdGwvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvcmFpc2UuYzo1NgotIDU2ICAgICAgICByZXR1cm4gSU5MSU5FX1NZU0NBTEwgKHRna2lsbCwg MywgcGlkLCBzZWxmdGlkLCBzaWcpOwotCi0gKHRvcC1nZGIpIGJ0Ci0gIzAgIDB4MDAwMDAwM2Iz NmEzNTg3NyBpbiBfX0dJX3JhaXNlIChzaWc9c2lnQGVudHJ5PTYpIGF0IC4uL25wdGwvc3lzZGVw cy91bml4L3N5c3YvbGludXgvcmFpc2UuYzo1NgotICMxICAweDAwMDAwMDNiMzZhMzZmNjggaW4g X19HSV9hYm9ydCAoKSBhdCBhYm9ydC5jOjg5Ci0gRHVyaW5nIHN5bWJvbCByZWFkaW5nLCBkZWJ1 ZyBpbmZvIGdpdmVzIHNvdXJjZSA5IGluY2x1ZGVkIGZyb20gZmlsZSBhdCB6ZXJvIGxpbmUgMC4K LSBEdXJpbmcgc3ltYm9sIHJlYWRpbmcsIGRlYnVnIGluZm8gZ2l2ZXMgY29tbWFuZC1saW5lIG1h Y3JvIGRlZmluaXRpb24gd2l0aCBub24temVybyBsaW5lIDE5OiBfU1REQ19QUkVERUZfSCAxLgot ICMyICAweDAwMDAwMDAwMDA3ODRhMjUgaW4gcmxfY2FsbGJhY2tfcmVhZF9jaGFyICgpIGF0IHNy Yy9yZWFkbGluZS9jYWxsYmFjay5jOjExNgotICMzICAweDAwMDAwMDAwMDA2MTkxMTEgaW4gcmxf Y2FsbGJhY2tfcmVhZF9jaGFyX3dyYXBwZXIgKGNsaWVudF9kYXRhPTB4MCkgYXQgc3JjL2dkYi9l dmVudC10b3AuYzoxNjcKLSAjNCAgMHgwMDAwMDAwMDAwNjE5NGU3IGluIHN0ZGluX2V2ZW50X2hh bmRsZXIgKGVycm9yPTAsIGNsaWVudF9kYXRhPTB4MCkgYXQgc3JjL2dkYi9ldmVudC10b3AuYzoz NzMKLSAjNSAgMHgwMDAwMDAwMDAwNjE4MGRhIGluIGhhbmRsZV9maWxlX2V2ZW50IChkYXRhPS4u LikgYXQgc3JjL2dkYi9ldmVudC1sb29wLmM6NzYzCi0gIzYgIDB4MDAwMDAwMDAwMDYxNzVjMSBp biBwcm9jZXNzX2V2ZW50ICgpIGF0IHNyYy9nZGIvZXZlbnQtbG9vcC5jOjM0MAotICM3ICAweDAw MDAwMDAwMDA2MTc2ODggaW4gZ2RiX2RvX29uZV9ldmVudCAoKSBhdCBzcmMvZ2RiL2V2ZW50LWxv b3AuYzo0MDQKLSAjOCAgMHgwMDAwMDAwMDAwNjE3NmQ4IGluIHN0YXJ0X2V2ZW50X2xvb3AgKCkg YXQgc3JjL2dkYi9ldmVudC1sb29wLmM6NDI5Ci0gIzkgIDB4MDAwMDAwMDAwMDYxOTE0MyBpbiBj bGlfY29tbWFuZF9sb29wIChkYXRhPTB4MCkgYXQgc3JjL2dkYi9ldmVudC10b3AuYzoxODIKLSAj MTAgMHgwMDAwMDAwMDAwNjBmNGM4IGluIGN1cnJlbnRfaW50ZXJwX2NvbW1hbmRfbG9vcCAoKSBh dCBzcmMvZ2RiL2ludGVycHMuYzozMTgKLSAjMTEgMHgwMDAwMDAwMDAwNjEwNjkxIGluIGNhcHR1 cmVkX2NvbW1hbmRfbG9vcCAoZGF0YT0weDApIGF0IHNyYy9nZGIvbWFpbi5jOjMyMwotICMxMiAw eDAwMDAwMDAwMDA2MGMzODUgaW4gY2F0Y2hfZXJyb3JzIChmdW5jPTB4NjEwNjc2IDxjYXB0dXJl ZF9jb21tYW5kX2xvb3A+LCBmdW5jX2FyZ3M9MHgwLCBlcnJzdHJpbmc9MHg5MDAyNDEgIiIsIG1h c2s9UkVUVVJOX01BU0tfQUxMKQotICAgICBhdCBzcmMvZ2RiL2V4Y2VwdGlvbnMuYzoyMzcKLSAj MTMgMHgwMDAwMDAwMDAwNjExYjhmIGluIGNhcHR1cmVkX21haW4gKGRhdGE9MHg3ZmZmZmZmZmQ3 YjApIGF0IHNyYy9nZGIvbWFpbi5jOjExNTEKLSAjMTQgMHgwMDAwMDAwMDAwNjBjMzg1IGluIGNh dGNoX2Vycm9ycyAoZnVuYz0weDYxMGE4ZSA8Y2FwdHVyZWRfbWFpbj4sIGZ1bmNfYXJncz0weDdm ZmZmZmZmZDdiMCwgZXJyc3RyaW5nPTB4OTAwMjQxICIiLCBtYXNrPVJFVFVSTl9NQVNLX0FMTCkK LSAgICAgYXQgc3JjL2dkYi9leGNlcHRpb25zLmM6MjM3Ci0gIzE1IDB4MDAwMDAwMDAwMDYxMWJi OCBpbiBnZGJfbWFpbiAoYXJncz0weDdmZmZmZmZmZDdiMCkgYXQgc3JjL2dkYi9tYWluLmM6MTE1 OQotICMxNiAweDAwMDAwMDAwMDA0NWVmNTcgaW4gbWFpbiAoYXJnYz0zLCBhcmd2PTB4N2ZmZmZm ZmZkOGI4KSBhdCBzcmMvZ2RiL2dkYi5jOjMyCi0KLVRoZSBmaXggaXMgdG8gbWFrZSB0aGUgYW5u b3RhdGlvbiBjb2RlIGNhbGwgdGFyZ2V0X3Rlcm1pbmFsX2luZmVyaW9yCi1hZ2FpbiBhZnRlciBw cmludGluZywgaWYgdGhlIGluZmVyaW9yJ3Mgc2V0dGluZ3Mgd2VyZSBpbiBlZmZlY3QuCi0KLVdo aWxlIGF0IGl0LCB3aGVuIHdlJ3JlIGRvaW5nIG91dHB1dCBvbmx5LCBpbnN0ZWFkIG9mCi10YXJn ZXRfdGVybWluYWxfb3Vycywgd2Ugc2hvdWxkIGNhbGwgdGFyZ2V0X3Rlcm1pbmFsX291cnNfZm9y X291dHB1dC4KLVRoZSBsYXR0ZXIgZG9lc24ndCBhY3R1YWxseSByZW1vdmUgc3RkaW4gZnJvbSB0 aGUgZXZlbnQgbG9vcCwgYW5kIGFsc28KLWxlYXZlcyBTSUdJTlQgZm9yd2FyZGVkIHRvIHRoZSB0 YXJnZXQuCi0KLU5ldyB0ZXN0IGluY2x1ZGVkLgotCi1UZXN0ZWQgb24geDg2XzY0IEZlZG9yYSAy MCwgbmF0aXZlIGFuZCBnZGJzZXJ2ZXIuCi0KLWdkYi8KLTIwMTQtMTAtMTcgIFBlZHJvIEFsdmVz ICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0KLQlQUiBnZGIvMTc0NzIKLQkqIGFubm90YXRlLmMgKGFu bm90YXRlX2JyZWFrcG9pbnRzX2ludmFsaWQpOiBVc2UKLQl0YXJnZXRfdGVybWluYWxfb3VyX2Zv cl9vdXRwdXQgaW5zdGVhZCBvZiB0YXJnZXRfdGVybWluYWxfb3Vycy4KLQlHaXZlIGJhY2sgdGhl IHRlcm1pbmFsIHRvIHRoZSB0YXJnZXQuCi0JKGFubm90YXRlX2ZyYW1lc19pbnZhbGlkKTogTGlr ZXdpc2UuCi0KLWdkYi90ZXN0c3VpdGUvCi0yMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZl c0ByZWRoYXQuY29tPgotCi0JUFIgZ2RiLzE3NDcyCi0JKiBnZGIuYmFzZS9hbm5vdGEtaW5wdXQt d2hpbGUtcnVubmluZy5jOiBOZXcgZmlsZS4KLQkqIGdkYi5iYXNlL2Fubm90YS1pbnB1dC13aGls ZS1ydW5uaW5nLmV4cDogTmV3IGZpbGUuCi0tLS0KLSBnZGIvQ2hhbmdlTG9nICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArKwotIGdkYi9hbm5vdGF0ZS5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICsrKy0KLSBnZGIvdGFyZ2V0LmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArKwotIGdkYi90YXJn ZXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKLSBnZGIv dGVzdHN1aXRlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCi0g Li4uL2dkYi5iYXNlL2Fubm90YS1pbnB1dC13aGlsZS1ydW5uaW5nLmMgICAgICAgICAgfCAgMjUg KysrKwotIC4uLi9nZGIuYmFzZS9hbm5vdGEtaW5wdXQtd2hpbGUtcnVubmluZy5leHAgICAgICAg IHwgMTMwICsrKysrKysrKysrKysrKysrKysrKwotIDcgZmlsZXMgY2hhbmdlZCwgMjAyIGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYW5ub3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuYwotIGNyZWF0ZSBtb2RlIDEw MDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fubm90YS1pbnB1dC13aGlsZS1ydW5uaW5nLmV4 cAotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSw1ICsx LDEzIEBACi0gMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAK LSsJUFIgZ2RiLzE3NDcyCi0rCSogYW5ub3RhdGUuYyAoYW5ub3RhdGVfYnJlYWtwb2ludHNfaW52 YWxpZCk6IFVzZQotKwl0YXJnZXRfdGVybWluYWxfb3VyX2Zvcl9vdXRwdXQgaW5zdGVhZCBvZiB0 YXJnZXRfdGVybWluYWxfb3Vycy4KLSsJR2l2ZSBiYWNrIHRoZSB0ZXJtaW5hbCB0byB0aGUgdGFy Z2V0LgotKwkoYW5ub3RhdGVfZnJhbWVzX2ludmFsaWQpOiBMaWtld2lzZS4KLSsKLSsyMDE0LTEw LTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotKwotIAkqIHRhcmdldC5jIChl bnVtIHRlcm1pbmFsX3N0YXRlKTogTmV3IGVudW0uCi0gCSh0ZXJtaW5hbF9zdGF0ZSk6IE5ldyBn bG9iYWwuCi0gCSh0YXJnZXRfdGVybWluYWxfaW5pdCk6IE5ldyBmdW5jdGlvbi4KLS0tLSBhL2dk Yi9hbm5vdGF0ZS5jCi0rKysgYi9nZGIvYW5ub3RhdGUuYwotQEAgLTcyLDggKzcyLDE3IEBAIGFu bm90YXRlX2JyZWFrcG9pbnRzX2ludmFsaWQgKHZvaWQpCi0gICAgICAgJiYgKCFicmVha3BvaW50 c19pbnZhbGlkX2VtaXR0ZWQKLSAJICB8fCBhc3luY19iYWNrZ3JvdW5kX2V4ZWN1dGlvbl9wICgp KSkKLSAgICAgewotLSAgICAgIHRhcmdldF90ZXJtaW5hbF9vdXJzICgpOwotKyAgICAgIC8qIElm IHRoZSBpbmZlcmlvciBvd25zIHRoZSB0ZXJtaW5hbCAoZS5nLiwgd2UncmUgcmVzdW1pbmcpLAot KwkgbWFrZSBzdXJlIHRvIGxlYXZlIHdpdGggdGhlIGluZmVyaW9yIHN0aWxsIG93bmluZyBpdC4g ICovCi0rICAgICAgaW50IHdhc19pbmZlcmlvciA9IHRhcmdldF90ZXJtaW5hbF9pc19pbmZlcmlv ciAoKTsKLSsKLSsgICAgICB0YXJnZXRfdGVybWluYWxfb3Vyc19mb3Jfb3V0cHV0ICgpOwotKwot ICAgICAgIHByaW50Zl91bmZpbHRlcmVkICgoIlxuXDAzMlwwMzJicmVha3BvaW50cy1pbnZhbGlk XG4iKSk7Ci0rCi0rICAgICAgaWYgKHdhc19pbmZlcmlvcikKLSsJdGFyZ2V0X3Rlcm1pbmFsX2lu ZmVyaW9yICgpOwotKwotICAgICAgIGJyZWFrcG9pbnRzX2ludmFsaWRfZW1pdHRlZCA9IDE7Ci0g ICAgIH0KLSB9Ci1AQCAtMjEwLDggKzIxOSwxNyBAQCBhbm5vdGF0ZV9mcmFtZXNfaW52YWxpZCAo dm9pZCkKLSAgICAgICAmJiAoIWZyYW1lc19pbnZhbGlkX2VtaXR0ZWQKLSAJICB8fCBhc3luY19i YWNrZ3JvdW5kX2V4ZWN1dGlvbl9wICgpKSkKLSAgICAgewotLSAgICAgIHRhcmdldF90ZXJtaW5h bF9vdXJzICgpOwotKyAgICAgIC8qIElmIHRoZSBpbmZlcmlvciBvd25zIHRoZSB0ZXJtaW5hbCAo ZS5nLiwgd2UncmUgcmVzdW1pbmcpLAotKwkgbWFrZSBzdXJlIHRvIGxlYXZlIHdpdGggdGhlIGlu ZmVyaW9yIHN0aWxsIG93bmluZyBpdC4gICovCi0rICAgICAgaW50IHdhc19pbmZlcmlvciA9IHRh cmdldF90ZXJtaW5hbF9pc19pbmZlcmlvciAoKTsKLSsKLSsgICAgICB0YXJnZXRfdGVybWluYWxf b3Vyc19mb3Jfb3V0cHV0ICgpOwotKwotICAgICAgIHByaW50Zl91bmZpbHRlcmVkICgoIlxuXDAz MlwwMzJmcmFtZXMtaW52YWxpZFxuIikpOwotKwotKyAgICAgIGlmICh3YXNfaW5mZXJpb3IpCi0r CXRhcmdldF90ZXJtaW5hbF9pbmZlcmlvciAoKTsKLSsKLSAgICAgICBmcmFtZXNfaW52YWxpZF9l bWl0dGVkID0gMTsKLSAgICAgfQotIH0KLS0tLSBhL2dkYi90YXJnZXQuYwotKysrIGIvZ2RiL3Rh cmdldC5jCi1AQCAtNTExLDYgKzUxMSwxNCBAQCB0YXJnZXRfdGVybWluYWxfaW5pdCAodm9pZCkK LSAKLSAvKiBTZWUgdGFyZ2V0LmguICAqLwotIAotK2ludAotK3RhcmdldF90ZXJtaW5hbF9pc19p bmZlcmlvciAodm9pZCkKLSt7Ci0rICByZXR1cm4gKHRlcm1pbmFsX3N0YXRlID09IHRlcm1pbmFs X2lzX2luZmVyaW9yKTsKLSt9Ci0rCi0rLyogU2VlIHRhcmdldC5oLiAgKi8KLSsKLSB2b2lkCi0g dGFyZ2V0X3Rlcm1pbmFsX2luZmVyaW9yICh2b2lkKQotIHsKLS0tLSBhL2dkYi90YXJnZXQuaAot KysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtMTM1Niw2ICsxMzU2LDExIEBAIGV4dGVybiBpbnQgdGFy Z2V0X2luc2VydF9icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKLSBleHRlcm4g aW50IHRhcmdldF9yZW1vdmVfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0g CQkJCSAgICAgc3RydWN0IGJwX3RhcmdldF9pbmZvICpicF90Z3QpOwotIAotKy8qIFJldHVybnMg dHJ1ZSBpZiB0aGUgdGVybWluYWwgc2V0dGluZ3Mgb2YgdGhlIGluZmVyaW9yIGFyZSBpbgotKyAg IGVmZmVjdC4gICovCi0rCi0rZXh0ZXJuIGludCB0YXJnZXRfdGVybWluYWxfaXNfaW5mZXJpb3Ig KHZvaWQpOwotKwotIC8qIEluaXRpYWxpemUgdGhlIHRlcm1pbmFsIHNldHRpbmdzIHdlIHJlY29y ZCBmb3IgdGhlIGluZmVyaW9yLAotICAgIGJlZm9yZSB3ZSBhY3R1YWxseSBydW4gdGhlIGluZmVy aW9yLiAgKi8KLSAKLSMjIyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvdGVz dHN1aXRlL0NoYW5nZUxvZwotIyMgLTEsMyArMSw5IEBACi0rMjAxNC0xMC0xNyAgUGVkcm8gQWx2 ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSsKLSsJUFIgZ2RiLzE3NDcyCi0rCSogZ2RiLmJhc2Uv YW5ub3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuYzogTmV3IGZpbGUuCi0rCSogZ2RiLmJhc2UvYW5u b3RhLWlucHV0LXdoaWxlLXJ1bm5pbmcuZXhwOiBOZXcgZmlsZS4KLSsKLSAyMDE0LTA5LTExICBQ ZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotIAotIAlQUiBnZGIvMTczNDcKLS0tLSAv ZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYW5ub3RhLWlucHV0LXdoaWxl LXJ1bm5pbmcuYwotQEAgLTAsMCArMSwyNSBAQAotKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCi0rCi0rICAgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K LSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLwotKwotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsKLStpbnQKLSttYWluICh2b2lk KQotK3sKLSsgIHNsZWVwICg1KTsKLSsgIHJldHVybiAwOyAvKiBzZXQgYnJlYWsgaGVyZSAqLwot K30KLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYW5ub3RhLWlu cHV0LXdoaWxlLXJ1bm5pbmcuZXhwCi1AQCAtMCwwICsxLDEzMCBAQAotKyMgQ29weXJpZ2h0IDE5 OTktMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBUZXN0IHRoYXQgYW5ub3RhdGlvbnMgc3VwcG9ydCBkb2Vz bid0IGxlYXZlIEdEQidzIHRlcm1pbmFsIHNldHRpbmdzCi0rIyBpbnRvIGVmZmVjdCB3aGVuIHdl IHJ1biBhIGZvcmVncm91bmQgY29tbWFuZC4KLSsKLStpZiBbaXNfcmVtb3RlIHRhcmdldF0gdGhl biB7Ci0rICAgICMgV2UgY2Fubm90IHVzZSBydW50b19tYWluIGJlY2F1c2Ugb2YgdGhlIGRpZmZl cmVudCBwcm9tcHQgd2UgZ2V0Ci0rICAgICMgd2hlbiB1c2luZyBhbm5vdGF0aW9uIGxldmVsIDIu Ci0rICAgIHJldHVybiAwCi0rfQotKwotK3N0YW5kYXJkX3Rlc3RmaWxlCi0rCi0raWYge1twcmVw YXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIGRl YnVnXSA9PSAtMX0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBCcmVhayBhdCBtYWluCi0r Ci0rZ2RiX3Rlc3QgImJyZWFrIG1haW4iIFwKLSsgICAgIkJyZWFrcG9pbnQuKmF0LiogZmlsZSAu KiRzcmNmaWxlLipcXC4iIFwKLSsgICAgImJyZWFrcG9pbnQgbWFpbiIKLSsKLSsjIE5PVEU6IHRo aXMgcHJvbXB0IGlzIE9LIG9ubHkgd2hlbiB0aGUgYW5ub3RhdGlvbiBsZXZlbCBpcyA+IDEKLSsj IE5PVEU6IFdoZW4gdGhpcyBwcm9tcHQgaXMgaW4gdXNlIHRoZSBnZGJfdGVzdCBwcm9jZWR1cmUg Y2Fubm90IGJlCi0rIyB1c2VkIGJlY2F1c2UgaXQgYXNzdW1lcyB0aGF0IHRoZSBsYXN0IGNoYXIg YWZ0ZXIgdGhlIGdkYl9wcm9tcHQgaXMgYQotKyMgd2hpdGUgc3BhY2UuICBUaGlzIGlzIG5vdCB0 cnVlIHdpdGggdGhpcyBhbm5vdGF0ZWQgcHJvbXB0LiAgU28gd2UKLSsjIG11c3QgdXNlIHRoZSBn ZGJfYW5ub3RhX3Rlc3QgcmVwbGFjZW1lbnQgYmVsb3csIG9yCi0rIyBnZGJfdGVzdF9tdWx0aXBs ZS4KLSsKLStzZXQgb2xkX2dkYl9wcm9tcHQgJGdkYl9wcm9tcHQKLStzZXQgZ2RiX3Byb21wdCAi XHJcblwwMzJcMDMycHJlLXByb21wdFxyXG4kZ2RiX3Byb21wdCBcclxuXDAzMlwwMzJwcm9tcHRc clxuIgotKwotKyMgTGlrZSBnZGJfdGVzdCwgYnV0IGNvcGUgd2l0aCB0aGUgYW5ub3RhdGlvbiBw cm9tcHQuCi0rcHJvYyBnZGJfYW5ub3RhX3Rlc3Qge2NvbW1hbmQgcGF0dGVybiBtZXNzYWdlfSB7 Ci0rICAgIGdsb2JhbCBnZGJfcHJvbXB0Ci0rCi0rICAgIGdkYl90ZXN0X211bHRpcGxlICRjb21t YW5kICRtZXNzYWdlIHsKLSsJLXJlICIkcGF0dGVybiRnZGJfcHJvbXB0JCIgewotKwkgICAgcGFz cyAiJG1lc3NhZ2UiCi0rCX0KLSsJLXJlICIkZ2RiX3Byb21wdCQiIHsKLSsJICAgIGZhaWwgIiRt ZXNzYWdlIgotKwl9Ci0rICAgIH0KLSt9Ci0rCi0rIyBTZXQgdGhlIGFubm90YXRpb24gbGV2ZWwg dG8gMi4KLSsKLStzZXQgdGVzdCAiYW5ub3RhdGlvbiBzZXQgYXQgbGV2ZWwgMiIKLStnZGJfYW5u b3RhX3Rlc3QgInNldCBhbm5vdGF0ZSAyIiAiLioiICJhbm5vdGF0aW9uIHNldCBhdCBsZXZlbCAy IgotKwotKyMgUnVuIHRvIG1haW4uCi0rCi0rZ2RiX2Fubm90YV90ZXN0ICJydW4iIFwKLSsgICAg IlxyXG5cMDMyXDAzMnBvc3QtcHJvbXB0LipcclxuXHJcblwwMzJcMDMyc3RvcHBlZC4qIiBcCi0r ICAgICJydW4gdW50aWwgbWFpbiBicmVha3BvaW50IgotKwotK3NldCB0ZXN0ICJkZWxldGUgYnJl YWtwb2ludHMiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgImRlbGV0ZSIgJHRlc3QgewotKyAgICAtcmUg IkRlbGV0ZSBhbGwgYnJlYWtwb2ludHMuIC55IG9yIG4uIiB7Ci0rCXNlbmRfZ2RiICJ5XG4iCi0r CWV4cF9jb250aW51ZQotKyAgICB9Ci0rICAgIC1yZSAiJGdkYl9wcm9tcHQkIiB7Ci0rCXBhc3Mg JHRlc3QKLSsgICAgfQotK30KLSsKLSsjIFNldCB0aGUgdGFyZ2V0IHJ1bm5pbmcsIGFuZCB0aGVu IHR5cGUgc29tZXRoaW5nLiAgR0RCIHVzZWQgdG8gaGF2ZSBhCi0rIyBidWcgd2hlcmUgaXQnZCBi ZSBhY2NlcHRpbmcgaW5wdXQgZXZlbiB0aG91Z2ggdGhlIHRhcmdldCB3YXMKLSsjIHN1cHBvc2Vk bHkgcmVzdW1lZCBpbiB0aGUgZm9yZWdyb3VuZC4gIFRoaXMgdWx0aW1hdGVseSByZXN1bHRlZCBp bgotKyMgcmVhZGxpbmUgYWJvcnRpbmcuCi0rCi0rc2V0IGxpbmVudW0gW2dkYl9nZXRfbGluZV9u dW1iZXIgInNldCBicmVhayBoZXJlIl0KLSsKLStnZGJfYW5ub3RhX3Rlc3QgImJyZWFrICRsaW5l bnVtIiBcCi0rICAgICJCcmVha3BvaW50IC4qJHNyY2ZpbGUsIGxpbmUgLioiIFwKLSsgICAgImJy ZWFrIGFmdGVyIHNsZWVwIgotKwotKyMgQ29udGludWUsIGFuZCB3YWl0IGEgYml0IHRvIG1ha2Ug c3VyZSB0aGUgaW5mZXJpb3IgcmVhbGx5IHN0YXJ0cwotKyMgcnVubmluZy4gIFdhaXQgbGVzcyB0 aGFuIG11Y2ggdGhlIHByb2dyYW0gc2xlZXBzLCB3aGljaCBpcyA1Ci0rIyBzZWNvbmRzLCB0aG91 Z2guCi0rc2V0IHNhd19jb250aW51aW5nIDAKLStzZXQgdGVzdCAiY29udGludWUiCi0rZ2RiX3Rl c3RfbXVsdGlwbGUgJHRlc3QgJHRlc3QgewotKyAgICAtdGltZW91dCAyCi0rICAgIC1yZSAiQ29u dGludWluZ1xcLiIgewotKwlzZXQgc2F3X2NvbnRpbnVpbmcgMQotKwlleHBfY29udGludWUKLSsg ICAgfQotKyAgICB0aW1lb3V0IHsKLSsJZ2RiX2Fzc2VydCAkc2F3X2NvbnRpbnVpbmcgJHRlc3QK LSsgICAgfQotK30KLSsKLSsjIFR5cGUgc29tZXRoaW5nLgotK3NlbmRfZ2RiICJwcmludCAxXG4i Ci0rCi0rIyBQb29yIGJ1Z2d5IEdEQiB3b3VsZCBjcmFzaCBiZWZvcmUgdGhlIGJyZWFrcG9pbnQg d2FzIGhpdC4KLStzZXQgdGVzdCAiYnJlYWtwb2ludCBoaXQiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUg IiIgJHRlc3QgewotKyAgICAtcmUgInN0b3BwZWRcclxuJGdkYl9wcm9tcHQiIHsKLSsJcGFzcyAk dGVzdAotKyAgICB9Ci0rfQotKwotK3NldCB0ZXN0ICJwcmludCBjb21tYW5kIHJlc3VsdCIKLStn ZGJfdGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0rICAgIC1yZSAiXHJcbjFcclxuXHJcblwwMzJc MDMydmFsdWUtaGlzdG9yeS1lbmRcclxuJGdkYl9wcm9tcHQiIHsKLSsJcGFzcyAkdGVzdAotKyAg ICB9Ci0rfQotKwotKyMgUmVzdG9yZSB0aGUgb3JpZ2luYWwgcHJvbXB0IGZvciB0aGUgcmVzdCBv ZiB0aGUgdGVzdHN1aXRlLgotKwotK3NldCBnZGJfcHJvbXB0ICRvbGRfZ2RiX3Byb21wdAotLS0g Ci0xLjkuMwotCi1Gcm9tIGUzNzk1MWRjMTBkYTY5NDBlZjM1NGYwNjJmYzQzZWUwMzY4N2M1NzEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZWRybyBBbHZlcyA8cGFsdmVzQHJlZGhh dC5jb20+Ci1EYXRlOiBGcmksIDE3IE9jdCAyMDE0IDEzOjMxOjI1ICswMTAwCi1TdWJqZWN0OiBb UEFUQ0ggMzQvMzddIFBSIGdkYi8xNzMwMDogSW5wdXQgYWZ0ZXIgImMgLWEiIGNyYXNoZXMgcmVh ZGxpbmUvR0RCCi0KLUlmIGFsbCB0aHJlYWRzIGluIHRoZSB0YXJnZXQgd2VyZSBhbHJlYWR5IHJ1 bm5pbmcgd2hlbiB0aGUgdXNlciBkb2VzCi0iYyAtYSIsIG5vdGhpbmcgcHV0cyB0aGUgaW5mZXJp b3IncyB0ZXJtaW5hbCBzZXR0aW5ncyBpbiBlZmZlY3QgYW5kCi1yZW1vdmVzIHN0ZGluIGZyb20g dGhlIGV2ZW50IGxvb3AsIHdoaWNoIHdlIG11c3Qgd2hlbiBydW5uaW5nIGEKLWZvcmVncm91bmQg Y29tbWFuZC4gIFRoZSByZXN1bHQgaXMgdGhhdCB1c2VyIGlucHV0IGFmdGVyd2FyZHMgY3Jhc2hl cwotcmVhZGxpbmUvZ2RiOgotCi0gKGdkYikgc3RhcnQKLSBUZW1wb3JhcnkgYnJlYWtwb2ludCAx IGF0IDB4NDAwNWQ0OiBmaWxlIGNvbnRpbnVlLWFsbC1hbHJlYWR5LXJ1bm5pbmcuYywgbGluZSAy My4KLSBTdGFydGluZyBwcm9ncmFtOiBjb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nCi0KLSBU ZW1wb3JhcnkgYnJlYWtwb2ludCAxLCBtYWluICgpIGF0IGNvbnRpbnVlLWFsbC1hbHJlYWR5LXJ1 bm5pbmcuYzoyMwotIDIzICAgICAgICBzbGVlcCAoMTApOwotIChnZGIpIGMgLWEmCi0gQ29udGlu dWluZy4KLSAoZ2RiKSBjIC1hCi0gQ29udGludWluZy4KLSBwIDEKLSByZWFkbGluZTogcmVhZGxp bmVfY2FsbGJhY2tfcmVhZF9jaGFyKCkgY2FsbGVkIHdpdGggbm8gaGFuZGxlciEKLSBBYm9ydGVk IChjb3JlIGR1bXBlZCkKLSAkCi0KLUJhY2t0cmFjZToKLQotIFByb2dyYW0gcmVjZWl2ZWQgc2ln bmFsIFNJR0FCUlQsIEFib3J0ZWQuCi0gMHgwMDAwMDAzYjM2YTM1ODc3IGluIF9fR0lfcmFpc2Ug KHNpZz1zaWdAZW50cnk9NikgYXQgLi4vbnB0bC9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yYWlz ZS5jOjU2Ci0gNTYgICAgICAgIHJldHVybiBJTkxJTkVfU1lTQ0FMTCAodGdraWxsLCAzLCBwaWQs IHNlbGZ0aWQsIHNpZyk7Ci0gKHRvcC1nZGIpIHAgMQotICQxID0gMQotICh0b3AtZ2RiKSBidAot ICMwICAweDAwMDAwMDNiMzZhMzU4NzcgaW4gX19HSV9yYWlzZSAoc2lnPXNpZ0BlbnRyeT02KSBh dCAuLi9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3JhaXNlLmM6NTYKLSAjMSAgMHgwMDAw MDAzYjM2YTM2ZjY4IGluIF9fR0lfYWJvcnQgKCkgYXQgYWJvcnQuYzo4OQotICMyICAweDAwMDAw MDAwMDA3ODRhYTkgaW4gcmxfY2FsbGJhY2tfcmVhZF9jaGFyICgpIGF0IHJlYWRsaW5lL2NhbGxi YWNrLmM6MTE2Ci0gIzMgIDB4MDAwMDAwMDAwMDYxOTE4MSBpbiBybF9jYWxsYmFja19yZWFkX2No YXJfd3JhcHBlciAoY2xpZW50X2RhdGE9MHgwKSBhdCBnZGIvZXZlbnQtdG9wLmM6MTY3Ci0gIzQg IDB4MDAwMDAwMDAwMDYxOTU1NyBpbiBzdGRpbl9ldmVudF9oYW5kbGVyIChlcnJvcj0wLCBjbGll bnRfZGF0YT0weDApIGF0IGdkYi9ldmVudC10b3AuYzozNzMKLSAjNSAgMHgwMDAwMDAwMDAwNjE4 MTRhIGluIGhhbmRsZV9maWxlX2V2ZW50IChkYXRhPS4uLikgYXQgZ2RiL2V2ZW50LWxvb3AuYzo3 NjMKLSAjNiAgMHgwMDAwMDAwMDAwNjE3NjMxIGluIHByb2Nlc3NfZXZlbnQgKCkgYXQgZ2RiL2V2 ZW50LWxvb3AuYzozNDAKLSAjNyAgMHgwMDAwMDAwMDAwNjE3NmY4IGluIGdkYl9kb19vbmVfZXZl bnQgKCkgYXQgZ2RiL2V2ZW50LWxvb3AuYzo0MDQKLSAjOCAgMHgwMDAwMDAwMDAwNjE3NzQ4IGlu IHN0YXJ0X2V2ZW50X2xvb3AgKCkgYXQgZ2RiL2V2ZW50LWxvb3AuYzo0MjkKLSAjOSAgMHgwMDAw MDAwMDAwNjE5MWIzIGluIGNsaV9jb21tYW5kX2xvb3AgKGRhdGE9MHgwKSBhdCBnZGIvZXZlbnQt dG9wLmM6MTgyCi0gIzEwIDB4MDAwMDAwMDAwMDYwZjUzOCBpbiBjdXJyZW50X2ludGVycF9jb21t YW5kX2xvb3AgKCkgYXQgZ2RiL2ludGVycHMuYzozMTgKLSAjMTEgMHgwMDAwMDAwMDAwNjEwNzAx IGluIGNhcHR1cmVkX2NvbW1hbmRfbG9vcCAoZGF0YT0weDApIGF0IGdkYi9tYWluLmM6MzIzCi0g IzEyIDB4MDAwMDAwMDAwMDYwYzNmNSBpbiBjYXRjaF9lcnJvcnMgKGZ1bmM9MHg2MTA2ZTYgPGNh cHR1cmVkX2NvbW1hbmRfbG9vcD4sIGZ1bmNfYXJncz0weDAsIGVycnN0cmluZz0weDkwMDJjMSAi IiwgbWFzaz1SRVRVUk5fTUFTS19BTEwpCi0gICAgIGF0IGdkYi9leGNlcHRpb25zLmM6MjM3Ci0g IzEzIDB4MDAwMDAwMDAwMDYxMWJmZiBpbiBjYXB0dXJlZF9tYWluIChkYXRhPTB4N2ZmZmZmZmZk NzgwKSBhdCBnZGIvbWFpbi5jOjExNTEKLSAjMTQgMHgwMDAwMDAwMDAwNjBjM2Y1IGluIGNhdGNo X2Vycm9ycyAoZnVuYz0weDYxMGFmZSA8Y2FwdHVyZWRfbWFpbj4sIGZ1bmNfYXJncz0weDdmZmZm ZmZmZDc4MCwgZXJyc3RyaW5nPTB4OTAwMmMxICIiLCBtYXNrPVJFVFVSTl9NQVNLX0FMTCkKLSAg ICAgYXQgZ2RiL2V4Y2VwdGlvbnMuYzoyMzcKLSAjMTUgMHgwMDAwMDAwMDAwNjExYzI4IGluIGdk Yl9tYWluIChhcmdzPTB4N2ZmZmZmZmZkNzgwKSBhdCBnZGIvbWFpbi5jOjExNTkKLSAjMTYgMHgw MDAwMDAwMDAwNDVlZjk3IGluIG1haW4gKGFyZ2M9NSwgYXJndj0weDdmZmZmZmZmZDg4OCkgYXQg Z2RiL2dkYi5jOjMyCi0gKHRvcC1nZGIpCi0KLVRlc3RlZCBvbiB4ODZfNjQgRmVkb3JhIDIwLCBu YXRpdmUgYW5kIGdkYnNlcnZlci4KLQotZ2RiLwotMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxw YWx2ZXNAcmVkaGF0LmNvbT4KLQotCVBSIGdkYi8xNzMwMAotCSogaW5mY21kLmMgKGNvbnRpbnVl XzEpOiBJZiBjb250aW51aW5nIGFsbCB0aHJlYWRzIGluIHRoZQotCWZvcmVncm91bmQsIG1ha2Ug c3VyZSB0aGUgaW5mZXJpb3IncyB0ZXJtaW5hbCBzZXR0aW5ncyBhcmUgcHV0IGluCi0JZWZmZWN0 LgotCi1nZGIvdGVzdHN1aXRlLwotMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVk aGF0LmNvbT4KLQotCVBSIGdkYi8xNzMwMAotCSogZ2RiLmJhc2UvY29udGludWUtYWxsLWFscmVh ZHktcnVubmluZy5jOiBOZXcgZmlsZS4KLQkqIGdkYi5iYXNlL2NvbnRpbnVlLWFsbC1hbHJlYWR5 LXJ1bm5pbmcuZXhwOiBOZXcgZmlsZS4KLS0tLQotIGdkYi9DaGFuZ2VMb2cgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysKLSBnZGIvaW5mY21kLmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrCi0gZ2RiL3Rlc3RzdWl0ZS9D aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwotIC4uLi9nZGIuYmFz ZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmMgICAgICAgIHwgMjUgKysrKysrKwotIC4u Li9nZGIuYmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmV4cCAgICAgIHwgNzkgKysr KysrKysrKysrKysrKysrKysrKwotIDUgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKykK LSBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb250aW51ZS1hbGwt YWxyZWFkeS1ydW5uaW5nLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmV4cAotCi0jIyMgYS9nZGIvQ2hhbmdl TG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSw1ICsxLDEyIEBACi0gMjAxNC0xMC0xNyAg UGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSsJUFIgZ2RiLzE3MzAwCi0rCSog aW5mY21kLmMgKGNvbnRpbnVlXzEpOiBJZiBjb250aW51aW5nIGFsbCB0aHJlYWRzIGluIHRoZQot Kwlmb3JlZ3JvdW5kLCBtYWtlIHN1cmUgdGhlIGluZmVyaW9yJ3MgdGVybWluYWwgc2V0dGluZ3Mg YXJlIHB1dCBpbgotKwllZmZlY3QuCi0rCi0rMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2 ZXNAcmVkaGF0LmNvbT4KLSsKLSAJUFIgZ2RiLzE3NDcyCi0gCSogYW5ub3RhdGUuYyAoYW5ub3Rh dGVfYnJlYWtwb2ludHNfaW52YWxpZCk6IFVzZQotIAl0YXJnZXRfdGVybWluYWxfb3VyX2Zvcl9v dXRwdXQgaW5zdGVhZCBvZiB0YXJnZXRfdGVybWluYWxfb3Vycy4KLS0tLSBhL2dkYi9pbmZjbWQu YwotKysrIGIvZ2RiL2luZmNtZC5jCi1AQCAtNzM4LDYgKzczOCwyNCBAQCBjb250aW51ZV8xIChp bnQgYWxsX3RocmVhZHMpCi0gCi0gICAgICAgaXRlcmF0ZV9vdmVyX3RocmVhZHMgKHByb2NlZWRf dGhyZWFkX2NhbGxiYWNrLCBOVUxMKTsKLSAKLSsgICAgICBpZiAoc3luY19leGVjdXRpb24pCi0r CXsKLSsJICAvKiBJZiBhbGwgdGhyZWFkcyBpbiB0aGUgdGFyZ2V0IHdlcmUgYWxyZWFkeSBydW5u aW5nLAotKwkgICAgIHByb2NlZWRfdGhyZWFkX2NhbGxiYWNrIGVuZHMgdXAgbmV2ZXIgY2FsbGlu ZyBwcm9jZWVkLAotKwkgICAgIGFuZCBzbyBub3RoaW5nIGNhbGxzIHRoaXMgdG8gcHV0IHRoZSBp bmZlcmlvcidzIHRlcm1pbmFsCi0rCSAgICAgc2V0dGluZ3MgaW4gZWZmZWN0IGFuZCByZW1vdmUg c3RkaW4gZnJvbSB0aGUgZXZlbnQgbG9vcCwKLSsJICAgICB3aGljaCB3ZSBtdXN0IHdoZW4gcnVu bmluZyBhIGZvcmVncm91bmQgY29tbWFuZC4gIEUuZy46Ci0rCi0rCSAgICAgIChnZGIpIGMgLWEm Ci0rCSAgICAgIENvbnRpbnVpbmcuCi0rCSAgICAgIDxhbGwgdGhyZWFkcyBhcmUgcnVubmluZyBu b3c+Ci0rCSAgICAgIChnZGIpIGMgLWEKLSsJICAgICAgQ29udGludWluZy4KLSsJICAgICAgPG5v IHRocmVhZCB3YXMgcmVzdW1lZCwgYnV0IHRoZSBpbmZlcmlvciBub3cgb3ducyB0aGUgdGVybWlu YWw+Ci0rCSAgKi8KLSsJICB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKCk7Ci0rCX0KLSsKLSAg ICAgICAvKiBSZXN0b3JlIHNlbGVjdGVkIHB0aWQuICAqLwotICAgICAgIGRvX2NsZWFudXBzIChv bGRfY2hhaW4pOwotICAgICB9Ci0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIv Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDUgKzEsMTEgQEAKLSAyMDE0LTEwLTE3ICBQ ZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotIAotKwlQUiBnZGIvMTczMDAKLSsJKiBn ZGIuYmFzZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmM6IE5ldyBmaWxlLgotKwkqIGdk Yi5iYXNlL2NvbnRpbnVlLWFsbC1hbHJlYWR5LXJ1bm5pbmcuZXhwOiBOZXcgZmlsZS4KLSsKLSsy MDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotKwotIAlQUiBnZGIv MTc0NzIKLSAJKiBnZGIuYmFzZS9hbm5vdGEtaW5wdXQtd2hpbGUtcnVubmluZy5jOiBOZXcgZmls ZS4KLSAJKiBnZGIuYmFzZS9hbm5vdGEtaW5wdXQtd2hpbGUtcnVubmluZy5leHA6IE5ldyBmaWxl LgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb250aW51ZS1h bGwtYWxyZWFkeS1ydW5uaW5nLmMKLUBAIC0wLDAgKzEsMjUgQEAKLSsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgotKwotKyAgIENvcHlyaWdodCAyMDE0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot KyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsKLSsjaW5jbHVkZSA8dW5pc3RkLmg+Ci0rCi0raW50Ci0r bWFpbiAodm9pZCkKLSt7Ci0rICBzbGVlcCAoMTApOwotKyAgcmV0dXJuIDA7IC8qIHNldCBicmVh ayBoZXJlICovCi0rfQotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9jb250aW51ZS1hbGwtYWxyZWFkeS1ydW5uaW5nLmV4cAotQEAgLTAsMCArMSw3OSBAQAotKyMg Q29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Ci0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsj IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsjIFRlc3QgdGhhdCAiYyAtYSIgZG9lc24n dCBsZWF2ZSBHREIgcHJvY2Vzc2luZyBpbnB1dCwgZXZlbiBpZiBhbGwKLSsjIHRocmVhZHMgd2Vy ZSBhbHJlYWR5IHJ1bm5pbmcuICBQUiBnZGIvMTczMDAuCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUK LSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxl fSAkc3JjZmlsZV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStnZGJfdGVzdF9ub19vdXRw dXQgInNldCBub24tc3RvcCBvbiIKLSsKLStpZiAhW3J1bnRvX21haW5dIHsKLSsgICAgcmV0dXJu Ci0rfQotKwotK3NldCBsaW5lbnVtIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQgYnJlYWsgaGVy ZSJdCi0rZ2RiX2JyZWFrcG9pbnQgIiRsaW5lbnVtIgotKwotK2dkYl90ZXN0ICJjIC1hJiIgIkNv bnRpbnVpbmdcXC4iCi0rCi0rc2V0IHRlc3QgIm5vIHN0b3AiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUg IiIgJHRlc3QgewotKyAgICAtdGltZW91dCAxCi0rICAgIHRpbWVvdXQgewotKwlwYXNzICR0ZXN0 Ci0rICAgIH0KLSt9Ci0rCi0rIyBQYXJhbm9pYS4gIENoZWNrIHRoYXQgaW5wdXQgd29ya3MgYWZ0 ZXIgYmcgY29tbWFuZC4KLStnZGJfdGVzdCAicHJpbnQgMSIgIiA9IDEiCi0rCi0rIyBDb250aW51 ZSBpbiB0aGUgZm9yZWdyb3VuZCwgYW5kIHdhaXQgb25lIHNlY29uZCB0byBtYWtlIHN1cmUgdGhl Ci0rIyBpbmZlcmlvciByZWFsbHkgc3RhcnRzIHJ1bm5pbmcuICBJZiB3ZSBnZXQgYSBwcm9tcHQg dG8gc29vbiAoZS5nLiwKLSsjIHRoZSBwcm9ncmFtIHN0b3BzKSwgdGhpcyBpc3N1ZXMgYSBmYWls LgotK3NldCBzYXdfY29udGludWluZyAwCi0rc2V0IHRlc3QgImMgLWEiCi0rZ2RiX3Rlc3RfbXVs dGlwbGUgImMgLWEiICR0ZXN0IHsKLSsgICAgLXRpbWVvdXQgMQotKyAgICAtcmUgIkNvbnRpbnVp bmdcXC4iIHsKLSsJc2V0IHNhd19jb250aW51aW5nIDEKLSsJZXhwX2NvbnRpbnVlCi0rICAgIH0K LSsgICAgdGltZW91dCB7Ci0rCWdkYl9hc3NlcnQgJHNhd19jb250aW51aW5nICR0ZXN0Ci0rICAg IH0KLSt9Ci0rCi0rIyBUeXBlIHNvbWV0aGluZyB3aGlsZSB0aGUgaW5mZXJpb3IgaXMgcnVubmlu ZyBpbiB0aGUgZm9yZWdyb3VuZC4KLStzZW5kX2dkYiAicHJpbnQgMlxuIgotKwotKyMgUG9vciBi dWdneSBHREIgd291bGQgY3Jhc2ggYmVmb3JlIHRoZSBicmVha3BvaW50IHdhcyBoaXQuCi0rc2V0 IHRlc3QgImJyZWFrcG9pbnQgaGl0IgotK2dkYl90ZXN0X211bHRpcGxlICIiICR0ZXN0IHsKLSsg ICAgLXJlICJzZXQgYnJlYWsgaGVyZSAuLlxyXG4kZ2RiX3Byb21wdCAiIHsKLSsJcGFzcyAkdGVz dAotKyAgICB9Ci0rfQotKwotK3NldCB0ZXN0ICJwcmludCBjb21tYW5kIHJlc3VsdCIKLStnZGJf dGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0rICAgIC1yZSAiID0gMlxyXG4kZ2RiX3Byb21wdCAk IiB7Ci0rCXBhc3MgJHRlc3QKLSsgICAgfQotK30KLS0tIAotMS45LjMKLQotRnJvbSAzNmM1N2Ez Y2VlYjIyNjA5MTNmN2QyZDM0OWU5OTRkZDg0NGNiY2FlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogUGVkcm8gQWx2ZXMgPHBhbHZlc0ByZWRoYXQuY29tPgotRGF0ZTogRnJpLCAxNyBP Y3QgMjAxNCAxMzozMToyNiArMDEwMAotU3ViamVjdDogW1BBVENIIDM1LzM3XSBQUiBnZGIvMTc0 NzE6IFJlcGVhdGluZyBhIGJhY2tncm91bmQgY29tbWFuZCBtYWtlcyBpdAotIGZvcmVncm91bmQK LQotV2hlbiB3ZSByZXBlYXQgYSBjb21tYW5kLCBieSBqdXN0IHByZXNzaW5nIDxyZXQ+LCB0aGUg aW5wdXQgZnJvbSB0aGUKLXByZXZpb3VzIGNvbW1hbmQgaXMgcmV1c2VkIGZvciB0aGUgbmV3IGNv bW1hbmQgaW52b2NhdGlvbi4KLQotV2hlbiBhbiBleGVjdXRpb24gY29tbWFuZCBzdHJpcHMgdGhl ICImIiBvdXQgb2YgaXRzIGluY29taW5nIGFyZ3VtZW50Ci1zdHJpbmcsIHRvIGRldGVjdCBiYWNr Z3JvdW5kIGV4ZWN1dGlvbiwgd2UgcG9rZSBhICdcMCcgZGlyZWN0bHkgdG8gdGhlCi1pbmNvbWlu ZyBhcmd1bWVudCBzdHJpbmcuCi0KLUNvbWJpbmUgYm90aCwgYW5kIGEgcmVwZWF0IG9mIGEgYmFj a2dyb3VuZCBjb21tYW5kIGxvc2VzIHRoZSAiJiIuCi0KLVRoaXMgaXMgYWN0dWFsbHkgb25seSB2 aXNpYmxlIGlmIGFyZ3Mgb3RoZXIgdGhhbiAiJiIgYXJlIHNwZWNpZmllZAotKGUuZy4sICJjIDEm IiBvciAibmV4dCAyJiIgb3IgImMgLWEmIiksIGFzIGluIHRoZSBzcGVjaWFsIGNhc2Ugb2YgIiYi Ci1hbG9uZSAoZS5nLiAiYyYiKSBkb2Vzbid0IGFjdHVhbGx5IGNsb2JiZXIgdGhlIGluY29taW5n IHN0cmluZy4KLQotRml4IHRoaXMgYnkgbWFraW5nIHN0cmlwX2JnX2NoYXIgcmV0dXJuIGEgbmV3 IHN0cmluZyBpbnN0ZWFkIG9mIHBva2luZwotYSBob2xlIGluIHRoZSBpbnB1dCBzdHJpbmcuCi0K LU5ldyB0ZXN0IGluY2x1ZGVkLgotCi1UZXN0ZWQgb24geDg2XzY0IEZlZG9yYSAyMCwgbmF0aXZl IGFuZCBnZGJzZXJ2ZXIuCi0KLWdkYi8KLTIwMTQtMTAtMTcgIFBlZHJvIEFsdmVzICA8cGFsdmVz QHJlZGhhdC5jb20+Ci0KLQlQUiBnZGIvMTc0NzEKLQkqIGluZmNtZC5jIChzdHJpcF9iZ19jaGFy KTogQ2hhbmdlIHByb3RvdHlwZSBhbmQgcmV3cml0ZS4gIE5vdwotCXJldHVybnMgYSBjb3B5IG9m IHRoZSBpbnB1dC4KLQkocnVuX2NvbW1hbmRfMSwgY29udGludWVfY29tbWFuZCwgc3RlcF8xLCBq dW1wX2NvbW1hbmQpCi0JKHNpZ25hbF9jb21tYW5kLCB1bnRpbF9jb21tYW5kLCBhZHZhbmNlX2Nv bW1hbmQsIGZpbmlzaF9jb21tYW5kKQotCShhdHRhY2hfY29tbWFuZCk6IEFkanVzdCBhbmQgaW5z dGFsbCBhIGNsZWFudXAgdG8gZnJlZSB0aGUKLQlzdHJpcHBlZCBhcmdzLgotCi1nZGIvdGVzdHN1 aXRlLwotMjAxNC0xMC0xNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLQotCVBS IGdkYi8xNzQ3MQotCSogZ2RiLmJhc2UvYmctZXhlY3V0aW9uLXJlcGVhdC5jOiBOZXcgZmlsZS4K LQkqIGdkYi5iYXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQuZXhwOiBOZXcgZmlsZS4KLS0tLQotIGdk Yi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKysKLSBn ZGIvaW5mY21kLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQyICsrKysr KysrKysrKysrKystLS0tLS0tLS0KLSBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA2ICsrCi0gZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9iZy1leGVjdXRp b24tcmVwZWF0LmMgICB8ICAzMyArKysrKysKLSBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JnLWV4 ZWN1dGlvbi1yZXBlYXQuZXhwIHwgIDg2ICsrKysrKysrKysrKysrKwotIDUgZmlsZXMgY2hhbmdl ZCwgMjI0IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQuYwotIGNyZWF0ZSBt b2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JnLWV4ZWN1dGlvbi1yZXBlYXQuZXhw Ci0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDUgKzEs MTUgQEAKLSAyMDE0LTEwLTE3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotIAot KwlQUiBnZGIvMTc0NzEKLSsJKiBpbmZjbWQuYyAoc3RyaXBfYmdfY2hhcik6IENoYW5nZSBwcm90 b3R5cGUgYW5kIHJld3JpdGUuICBOb3cKLSsJcmV0dXJucyBhIGNvcHkgb2YgdGhlIGlucHV0Lgot KwkocnVuX2NvbW1hbmRfMSwgY29udGludWVfY29tbWFuZCwgc3RlcF8xLCBqdW1wX2NvbW1hbmQp Ci0rCShzaWduYWxfY29tbWFuZCwgdW50aWxfY29tbWFuZCwgYWR2YW5jZV9jb21tYW5kLCBmaW5p c2hfY29tbWFuZCkKLSsJKGF0dGFjaF9jb21tYW5kKTogQWRqdXN0IGFuZCBpbnN0YWxsIGEgY2xl YW51cCB0byBmcmVlIHRoZQotKwlzdHJpcHBlZCBhcmdzLgotKwotKzIwMTQtMTAtMTcgIFBlZHJv IEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0rCi0gCVBSIGdkYi8xNzMwMAotIAkqIGluZmNt ZC5jIChjb250aW51ZV8xKTogSWYgY29udGludWluZyBhbGwgdGhyZWFkcyBpbiB0aGUKLSAJZm9y ZWdyb3VuZCwgbWFrZSBzdXJlIHRoZSBpbmZlcmlvcidzIHRlcm1pbmFsIHNldHRpbmdzIGFyZSBw dXQgaW4KLS0tLSBhL2dkYi9pbmZjbWQuYwotKysrIGIvZ2RiL2luZmNtZC5jCi1AQCAtMTA3LDgg KzEwNyw2IEBAIHN0YXRpYyB2b2lkIHJ1bl9ub19hcmdzX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGlu dCBmcm9tX3R0eSk7Ci0gCi0gc3RhdGljIHZvaWQgZ29fY29tbWFuZCAoY2hhciAqbGluZV9ubywg aW50IGZyb21fdHR5KTsKLSAKLS1zdGF0aWMgaW50IHN0cmlwX2JnX2NoYXIgKGNoYXIgKiopOwot LQotIHZvaWQgX2luaXRpYWxpemVfaW5mY21kICh2b2lkKTsKLSAKLSAjZGVmaW5lIEVSUk9SX05P X0lORkVSSU9SIFwKLUBAIC0zNzMsMzUgKzM3MSw0MCBAQCBjb25zdHJ1Y3RfaW5mZXJpb3JfYXJn dW1lbnRzIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gfQotIAwKLSAKLS0vKiBUaGlzIGZ1bmN0 aW9uIGRldGVjdHMgd2hldGhlciBvciBub3QgYSAnJicgY2hhcmFjdGVyIChpbmRpY2F0aW5nCi0t ICAgYmFja2dyb3VuZCBleGVjdXRpb24pIGhhcyBiZWVuIGFkZGVkIGFzICp0aGUgbGFzdCogb2Yg dGhlIGFyZ3VtZW50cyBBUkdTCi0tICAgb2YgYSBjb21tYW5kLiAgSWYgaXQgaGFzLCBpdCByZW1v dmVzIGl0IGFuZCByZXR1cm5zIDEuICBPdGhlcndpc2UgaXQKLS0gICBkb2VzIG5vdGhpbmcgYW5k IHJldHVybnMgMC4gICovCi0rLyogVGhpcyBmdW5jdGlvbiBzdHJpcHMgdGhlICcmJyBjaGFyYWN0 ZXIgKGluZGljYXRpbmcgYmFja2dyb3VuZAotKyAgIGV4ZWN1dGlvbikgdGhhdCBpcyBhZGRlZCBh cyAqdGhlIGxhc3QqIG9mIHRoZSBhcmd1bWVudHMgQVJHUyBvZiBhCi0rICAgY29tbWFuZC4gIEEg Y29weSBvZiB0aGUgaW5jb21pbmcgQVJHUyB3aXRob3V0IHRoZSAnJicgaXMgcmV0dXJuZWQsCi0r ICAgdW5sZXNzIHRoZSByZXN1bHRpbmcgc3RyaW5nIGFmdGVyIHN0cmlwcGluZyBpcyBlbXB0eSwg aW4gd2hpY2ggY2FzZQotKyAgIE5VTEwgaXMgcmV0dXJuZWQuICAqQkdfQ0hBUl9QIGlzIGFuIG91 dHB1dCBib29sZWFuIHRoYXQgaW5kaWNhdGVzCi0rICAgd2hldGhlciB0aGUgJyYnIGNoYXJhY3Rl ciB3YXMgZm91bmQuICAqLwotIAotLXN0YXRpYyBpbnQKLS1zdHJpcF9iZ19jaGFyIChjaGFyICoq YXJncykKLStzdGF0aWMgY2hhciAqCi0rc3RyaXBfYmdfY2hhciAoY29uc3QgY2hhciAqYXJncywg aW50ICpiZ19jaGFyX3ApCi0gewotLSAgY2hhciAqcCA9IE5VTEw7Ci0rICBjb25zdCBjaGFyICpw OwotIAotLSAgcCA9IHN0cmNociAoKmFyZ3MsICcmJyk7Ci0rICBpZiAoYXJncyA9PSBOVUxMIHx8 ICphcmdzID09ICdcMCcpCi0rICAgIHsKLSsgICAgICAqYmdfY2hhcl9wID0gMDsKLSsgICAgICBy ZXR1cm4gTlVMTDsKLSsgICAgfQotIAotLSAgaWYgKHApCi0rICBwID0gYXJncyArIHN0cmxlbiAo YXJncyk7Ci0rICBpZiAocFstMV0gPT0gJyYnKQotICAgICB7Ci0tICAgICAgaWYgKHAgPT0gKCph cmdzICsgc3RybGVuICgqYXJncykgLSAxKSkKLS0JewotLQkgIGlmIChzdHJsZW4gKCphcmdzKSA+ IDEpCi0tCSAgICB7Ci0tCSAgICAgIGRvCi0tCQlwLS07Ci0tCSAgICAgIHdoaWxlICgqcCA9PSAn ICcgfHwgKnAgPT0gJ1x0Jyk7Ci0tCSAgICAgICoocCArIDEpID0gJ1wwJzsKLS0JICAgIH0KLS0J ICBlbHNlCi0tCSAgICAqYXJncyA9IDA7Ci0tCSAgcmV0dXJuIDE7Ci0tCX0KLSsgICAgICBwLS07 Ci0rICAgICAgd2hpbGUgKHAgPiBhcmdzICYmIGlzc3BhY2UgKHBbLTFdKSkKLSsJcC0tOwotKwot KyAgICAgICpiZ19jaGFyX3AgPSAxOwotKyAgICAgIGlmIChwICE9IGFyZ3MpCi0rCXJldHVybiBz YXZlc3RyaW5nIChhcmdzLCBwIC0gYXJncyk7Ci0rICAgICAgZWxzZQotKwlyZXR1cm4gTlVMTDsK LSAgICAgfQotLSAgcmV0dXJuIDA7Ci0rCi0rICAqYmdfY2hhcl9wID0gMDsKLSsgIHJldHVybiB4 c3RyZHVwIChhcmdzKTsKLSB9Ci0gCi0gLyogQ29tbW9uIGFjdGlvbnMgdG8gdGFrZSBhZnRlciBj cmVhdGluZyBhbnkgc29ydCBvZiBpbmZlcmlvciwgYnkgYW55Ci1AQCAtNTMwLDcgKzUzMyw4IEBA IHJ1bl9jb21tYW5kXzEgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSwgaW50IHRicmVha19hdF9t YWluKQotICAgcHRpZF90IHB0aWQ7Ci0gICBzdHJ1Y3QgdWlfb3V0ICp1aW91dCA9IGN1cnJlbnRf dWlvdXQ7Ci0gICBzdHJ1Y3QgdGFyZ2V0X29wcyAqcnVuX3RhcmdldDsKLS0gIGludCBhc3luY19l eGVjID0gMDsKLSsgIGludCBhc3luY19leGVjOwotKyAgc3RydWN0IGNsZWFudXAgKmFyZ3NfY2hh aW47Ci0gCi0gICBkb250X3JlcGVhdCAoKTsKLSAKLUBAIC01NTMsOCArNTU3LDggQEAgcnVuX2Nv bW1hbmRfMSAoY2hhciAqYXJncywgaW50IGZyb21fdHR5LCBpbnQgdGJyZWFrX2F0X21haW4pCi0g ICByZW9wZW5fZXhlY19maWxlICgpOwotICAgcmVyZWFkX3N5bWJvbHMgKCk7Ci0gCi0tICBpZiAo YXJncyAhPSBOVUxMKQotLSAgICBhc3luY19leGVjID0gc3RyaXBfYmdfY2hhciAoJmFyZ3MpOwot KyAgYXJncyA9IHN0cmlwX2JnX2NoYXIgKGFyZ3MsICZhc3luY19leGVjKTsKLSsgIGFyZ3NfY2hh aW4gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBhcmdzKTsKLSAKLSAgIC8qIERvIHZhbGlkYXRpb24g YW5kIHByZXBhcmF0aW9uIGJlZm9yZSBwb3NzaWJseSBjaGFuZ2luZyBhbnl0aGluZwotICAgICAg aW4gdGhlIGluZmVyaW9yLiAgKi8KLUBAIC02MDAsNiArNjA0LDkgQEAgcnVuX2NvbW1hbmRfMSAo Y2hhciAqYXJncywgaW50IGZyb21fdHR5LCBpbnQgdGJyZWFrX2F0X21haW4pCi0gICAgICAgdWlf b3V0X2ZsdXNoICh1aW91dCk7Ci0gICAgIH0KLSAKLSsgIC8qIERvbmUgd2l0aCBBUkdTLiAgKi8K LSsgIGRvX2NsZWFudXBzIChhcmdzX2NoYWluKTsKLSsKLSAgIC8qIFdlIGNhbGwgZ2V0X2luZmVy aW9yX2FyZ3MoKSBiZWNhdXNlIHdlIG1pZ2h0IG5lZWQgdG8gY29tcHV0ZQotICAgICAgdGhlIHZh bHVlIG5vdy4gICovCi0gICBydW5fdGFyZ2V0LT50b19jcmVhdGVfaW5mZXJpb3IgKHJ1bl90YXJn ZXQsIGV4ZWNfZmlsZSwgZ2V0X2luZmVyaW9yX2FyZ3MgKCksCi1AQCAtNzczLDEzICs3ODAsMTUg QEAgY29udGludWVfMSAoaW50IGFsbF90aHJlYWRzKQotIHN0YXRpYyB2b2lkCi0gY29udGludWVf Y29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQotIHsKLS0gIGludCBhc3luY19leGVj ID0gMDsKLSsgIGludCBhc3luY19leGVjOwotICAgaW50IGFsbF90aHJlYWRzID0gMDsKLSsgIHN0 cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOwotKwotICAgRVJST1JfTk9fSU5GRVJJT1I7Ci0gCi0g ICAvKiBGaW5kIG91dCB3aGV0aGVyIHdlIG11c3QgcnVuIGluIHRoZSBiYWNrZ3JvdW5kLiAgKi8K LS0gIGlmIChhcmdzICE9IE5VTEwpCi0tICAgIGFzeW5jX2V4ZWMgPSBzdHJpcF9iZ19jaGFyICgm YXJncyk7Ci0rICBhcmdzID0gc3RyaXBfYmdfY2hhciAoYXJncywgJmFzeW5jX2V4ZWMpOwotKyAg YXJnc19jaGFpbiA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGFyZ3MpOwotIAotICAgcHJlcGFyZV9l eGVjdXRpb25fY29tbWFuZCAoJmN1cnJlbnRfdGFyZ2V0LCBhc3luY19leGVjKTsKLSAKLUBAIC04 NDMsNiArODUyLDkgQEAgY29udGludWVfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5 KQotIAl9Ci0gICAgIH0KLSAKLSsgIC8qIERvbmUgd2l0aCBBUkdTLiAgKi8KLSsgIGRvX2NsZWFu dXBzIChhcmdzX2NoYWluKTsKLSsKLSAgIGlmIChmcm9tX3R0eSkKLSAgICAgcHJpbnRmX2ZpbHRl cmVkIChfKCJDb250aW51aW5nLlxuIikpOwotIAotQEAgLTkwMiwyMSArOTE0LDI1IEBAIHN0ZXBf MSAoaW50IHNraXBfc3Vicm91dGluZXMsIGludCBzaW5nbGVfaW5zdCwgY2hhciAqY291bnRfc3Ry aW5nKQotIHsKLSAgIGludCBjb3VudCA9IDE7Ci0gICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cHMg PSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7Ci0tICBpbnQgYXN5bmNfZXhlYyA9 IDA7Ci0rICBpbnQgYXN5bmNfZXhlYzsKLSAgIGludCB0aHJlYWQgPSAtMTsKLSsgIHN0cnVjdCBj bGVhbnVwICphcmdzX2NoYWluOwotIAotICAgRVJST1JfTk9fSU5GRVJJT1I7Ci0gICBlbnN1cmVf bm90X3RmaW5kX21vZGUgKCk7Ci0gICBlbnN1cmVfdmFsaWRfdGhyZWFkICgpOwotICAgZW5zdXJl X25vdF9ydW5uaW5nICgpOwotIAotLSAgaWYgKGNvdW50X3N0cmluZykKLS0gICAgYXN5bmNfZXhl YyA9IHN0cmlwX2JnX2NoYXIgKCZjb3VudF9zdHJpbmcpOwotKyAgY291bnRfc3RyaW5nID0gc3Ry aXBfYmdfY2hhciAoY291bnRfc3RyaW5nLCAmYXN5bmNfZXhlYyk7Ci0rICBhcmdzX2NoYWluID0g bWFrZV9jbGVhbnVwICh4ZnJlZSwgY291bnRfc3RyaW5nKTsKLSAKLSAgIHByZXBhcmVfZXhlY3V0 aW9uX2NvbW1hbmQgKCZjdXJyZW50X3RhcmdldCwgYXN5bmNfZXhlYyk7Ci0gCi0gICBjb3VudCA9 IGNvdW50X3N0cmluZyA/IHBhcnNlX2FuZF9ldmFsX2xvbmcgKGNvdW50X3N0cmluZykgOiAxOwot IAotKyAgLyogRG9uZSB3aXRoIEFSR1MuICAqLwotKyAgZG9fY2xlYW51cHMgKGFyZ3NfY2hhaW4p OwotKwotICAgaWYgKCFzaW5nbGVfaW5zdCB8fCBza2lwX3N1YnJvdXRpbmVzKQkJLyogTGVhdmUg c2kgY29tbWFuZCBhbG9uZS4gICovCi0gICAgIHsKLSAgICAgICBzdHJ1Y3QgdGhyZWFkX2luZm8g KnRwID0gaW5mZXJpb3JfdGhyZWFkICgpOwotQEAgLTExMzcsNyArMTE1Myw4IEBAIGp1bXBfY29t bWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCi0gICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5l IHNhbDsKLSAgIHN0cnVjdCBzeW1ib2wgKmZuOwotICAgc3RydWN0IHN5bWJvbCAqc2ZuOwotLSAg aW50IGFzeW5jX2V4ZWMgPSAwOwotKyAgaW50IGFzeW5jX2V4ZWM7Ci0rICBzdHJ1Y3QgY2xlYW51 cCAqYXJnc19jaGFpbjsKLSAKLSAgIEVSUk9SX05PX0lORkVSSU9SOwotICAgZW5zdXJlX25vdF90 ZmluZF9tb2RlICgpOwotQEAgLTExNDUsOCArMTE2Miw4IEBAIGp1bXBfY29tbWFuZCAoY2hhciAq YXJnLCBpbnQgZnJvbV90dHkpCi0gICBlbnN1cmVfbm90X3J1bm5pbmcgKCk7Ci0gCi0gICAvKiBG aW5kIG91dCB3aGV0aGVyIHdlIG11c3QgcnVuIGluIHRoZSBiYWNrZ3JvdW5kLiAgKi8KLS0gIGlm IChhcmcgIT0gTlVMTCkKLS0gICAgYXN5bmNfZXhlYyA9IHN0cmlwX2JnX2NoYXIgKCZhcmcpOwot KyAgYXJnID0gc3RyaXBfYmdfY2hhciAoYXJnLCAmYXN5bmNfZXhlYyk7Ci0rICBhcmdzX2NoYWlu ID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJnKTsKLSAKLSAgIHByZXBhcmVfZXhlY3V0aW9uX2Nv bW1hbmQgKCZjdXJyZW50X3RhcmdldCwgYXN5bmNfZXhlYyk7Ci0gCi1AQCAtMTE2Miw2ICsxMTc5 LDkgQEAganVtcF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAgIHNhbCA9IHNh bHMuc2Fsc1swXTsKLSAgIHhmcmVlIChzYWxzLnNhbHMpOwotIAotKyAgLyogRG9uZSB3aXRoIEFS R1MuICAqLwotKyAgZG9fY2xlYW51cHMgKGFyZ3NfY2hhaW4pOwotKwotICAgaWYgKHNhbC5zeW10 YWIgPT0gMCAmJiBzYWwucGMgPT0gMCkKLSAgICAgZXJyb3IgKF8oIk5vIHNvdXJjZSBmaWxlIGhh cyBiZWVuIHNwZWNpZmllZC4iKSk7Ci0gCi1AQCAtMTIzMCw3ICsxMjUwLDggQEAgc3RhdGljIHZv aWQKLSBzaWduYWxfY29tbWFuZCAoY2hhciAqc2lnbnVtX2V4cCwgaW50IGZyb21fdHR5KQotIHsK LSAgIGVudW0gZ2RiX3NpZ25hbCBvdXJzaWc7Ci0tICBpbnQgYXN5bmNfZXhlYyA9IDA7Ci0rICBp bnQgYXN5bmNfZXhlYzsKLSsgIHN0cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOwotIAotICAgZG9u dF9yZXBlYXQgKCk7CQkvKiBUb28gZGFuZ2Vyb3VzLiAgKi8KLSAgIEVSUk9SX05PX0lORkVSSU9S OwotQEAgLTEyMzksOCArMTI2MCw4IEBAIHNpZ25hbF9jb21tYW5kIChjaGFyICpzaWdudW1fZXhw LCBpbnQgZnJvbV90dHkpCi0gICBlbnN1cmVfbm90X3J1bm5pbmcgKCk7Ci0gCi0gICAvKiBGaW5k IG91dCB3aGV0aGVyIHdlIG11c3QgcnVuIGluIHRoZSBiYWNrZ3JvdW5kLiAgKi8KLS0gIGlmIChz aWdudW1fZXhwICE9IE5VTEwpCi0tICAgIGFzeW5jX2V4ZWMgPSBzdHJpcF9iZ19jaGFyICgmc2ln bnVtX2V4cCk7Ci0rICBzaWdudW1fZXhwID0gc3RyaXBfYmdfY2hhciAoc2lnbnVtX2V4cCwgJmFz eW5jX2V4ZWMpOwotKyAgYXJnc19jaGFpbiA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIHNpZ251bV9l eHApOwotIAotICAgcHJlcGFyZV9leGVjdXRpb25fY29tbWFuZCAoJmN1cnJlbnRfdGFyZ2V0LCBh c3luY19leGVjKTsKLSAKLUBAIC0xMzcyLDcgKzEzOTMsOCBAQCB1bnRpbF9uZXh0X2NvbW1hbmQg KGludCBmcm9tX3R0eSkKLSBzdGF0aWMgdm9pZAotIHVudGlsX2NvbW1hbmQgKGNoYXIgKmFyZywg aW50IGZyb21fdHR5KQotIHsKLS0gIGludCBhc3luY19leGVjID0gMDsKLSsgIGludCBhc3luY19l eGVjOwotKyAgc3RydWN0IGNsZWFudXAgKmFyZ3NfY2hhaW47Ci0gCi0gICBFUlJPUl9OT19JTkZF UklPUjsKLSAgIGVuc3VyZV9ub3RfdGZpbmRfbW9kZSAoKTsKLUBAIC0xMzgwLDggKzE0MDIsOCBA QCB1bnRpbF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAgIGVuc3VyZV9ub3Rf cnVubmluZyAoKTsKLSAKLSAgIC8qIEZpbmQgb3V0IHdoZXRoZXIgd2UgbXVzdCBydW4gaW4gdGhl IGJhY2tncm91bmQuICAqLwotLSAgaWYgKGFyZyAhPSBOVUxMKQotLSAgICBhc3luY19leGVjID0g c3RyaXBfYmdfY2hhciAoJmFyZyk7Ci0rICBhcmcgPSBzdHJpcF9iZ19jaGFyIChhcmcsICZhc3lu Y19leGVjKTsKLSsgIGFyZ3NfY2hhaW4gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBhcmcpOwotIAot ICAgcHJlcGFyZV9leGVjdXRpb25fY29tbWFuZCAoJmN1cnJlbnRfdGFyZ2V0LCBhc3luY19leGVj KTsKLSAKLUBAIC0xMzg5LDEyICsxNDExLDE2IEBAIHVudGlsX2NvbW1hbmQgKGNoYXIgKmFyZywg aW50IGZyb21fdHR5KQotICAgICB1bnRpbF9icmVha19jb21tYW5kIChhcmcsIGZyb21fdHR5LCAw KTsKLSAgIGVsc2UKLSAgICAgdW50aWxfbmV4dF9jb21tYW5kIChmcm9tX3R0eSk7Ci0rCi0rICAv KiBEb25lIHdpdGggQVJHUy4gICovCi0rICBkb19jbGVhbnVwcyAoYXJnc19jaGFpbik7Ci0gfQot IAotIHN0YXRpYyB2b2lkCi0gYWR2YW5jZV9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0 eSkKLSB7Ci0tICBpbnQgYXN5bmNfZXhlYyA9IDA7Ci0rICBpbnQgYXN5bmNfZXhlYzsKLSsgIHN0 cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOwotIAotICAgRVJST1JfTk9fSU5GRVJJT1I7Ci0gICBl bnN1cmVfbm90X3RmaW5kX21vZGUgKCk7Ci1AQCAtMTQwNSwxMiArMTQzMSwxNSBAQCBhZHZhbmNl X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQotICAgICBlcnJvcl9ub19hcmcgKF8o ImEgbG9jYXRpb24iKSk7Ci0gCi0gICAvKiBGaW5kIG91dCB3aGV0aGVyIHdlIG11c3QgcnVuIGlu IHRoZSBiYWNrZ3JvdW5kLiAgKi8KLS0gIGlmIChhcmcgIT0gTlVMTCkKLS0gICAgYXN5bmNfZXhl YyA9IHN0cmlwX2JnX2NoYXIgKCZhcmcpOwotKyAgYXJnID0gc3RyaXBfYmdfY2hhciAoYXJnLCAm YXN5bmNfZXhlYyk7Ci0rICBhcmdzX2NoYWluID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJnKTsK LSAKLSAgIHByZXBhcmVfZXhlY3V0aW9uX2NvbW1hbmQgKCZjdXJyZW50X3RhcmdldCwgYXN5bmNf ZXhlYyk7Ci0gCi0gICB1bnRpbF9icmVha19jb21tYW5kIChhcmcsIGZyb21fdHR5LCAxKTsKLSsK LSsgIC8qIERvbmUgd2l0aCBBUkdTLiAgKi8KLSsgIGRvX2NsZWFudXBzIChhcmdzX2NoYWluKTsK LSB9Ci0gDAotIC8qIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHJlc3VsdCBvZiBhIGZ1bmN0aW9u IGF0IHRoZSBlbmQgb2YgYSAnZmluaXNoJwotQEAgLTE2ODYsOCArMTcxNSw4IEBAIGZpbmlzaF9j b21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSB7Ci0gICBzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWU7Ci0gICBzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbjsKLS0KLS0gIGludCBhc3luY19l eGVjID0gMDsKLSsgIGludCBhc3luY19leGVjOwotKyAgc3RydWN0IGNsZWFudXAgKmFyZ3NfY2hh aW47Ci0gCi0gICBFUlJPUl9OT19JTkZFUklPUjsKLSAgIGVuc3VyZV9ub3RfdGZpbmRfbW9kZSAo KTsKLUBAIC0xNjk1LDE0ICsxNzI0LDE3IEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGlu dCBmcm9tX3R0eSkKLSAgIGVuc3VyZV9ub3RfcnVubmluZyAoKTsKLSAKLSAgIC8qIEZpbmQgb3V0 IHdoZXRoZXIgd2UgbXVzdCBydW4gaW4gdGhlIGJhY2tncm91bmQuICAqLwotLSAgaWYgKGFyZyAh PSBOVUxMKQotLSAgICBhc3luY19leGVjID0gc3RyaXBfYmdfY2hhciAoJmFyZyk7Ci0rICBhcmcg PSBzdHJpcF9iZ19jaGFyIChhcmcsICZhc3luY19leGVjKTsKLSsgIGFyZ3NfY2hhaW4gPSBtYWtl X2NsZWFudXAgKHhmcmVlLCBhcmcpOwotIAotICAgcHJlcGFyZV9leGVjdXRpb25fY29tbWFuZCAo JmN1cnJlbnRfdGFyZ2V0LCBhc3luY19leGVjKTsKLSAKLSAgIGlmIChhcmcpCi0gICAgIGVycm9y IChfKCJUaGUgXCJmaW5pc2hcIiBjb21tYW5kIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cy4i KSk7Ci0gCi0rICAvKiBEb25lIHdpdGggQVJHUy4gICovCi0rICBkb19jbGVhbnVwcyAoYXJnc19j aGFpbik7Ci0rCi0gICBmcmFtZSA9IGdldF9wcmV2X2ZyYW1lIChnZXRfc2VsZWN0ZWRfZnJhbWUg KF8oIk5vIHNlbGVjdGVkIGZyYW1lLiIpKSk7Ci0gICBpZiAoZnJhbWUgPT0gMCkKLSAgICAgZXJy b3IgKF8oIlwiZmluaXNoXCIgbm90IG1lYW5pbmdmdWwgaW4gdGhlIG91dGVybW9zdCBmcmFtZS4i KSk7Ci1AQCAtMjQ3Niw3ICsyNTA4LDggQEAgYXR0YWNoX2NvbW1hbmRfY29udGludWF0aW9uX2Zy ZWVfYXJncyAodm9pZCAqYXJncykKLSB2b2lkCi0gYXR0YWNoX2NvbW1hbmQgKGNoYXIgKmFyZ3Ms IGludCBmcm9tX3R0eSkKLSB7Ci0tICBpbnQgYXN5bmNfZXhlYyA9IDA7Ci0rICBpbnQgYXN5bmNf ZXhlYzsKLSsgIHN0cnVjdCBjbGVhbnVwICphcmdzX2NoYWluOwotICAgc3RydWN0IHRhcmdldF9v cHMgKmF0dGFjaF90YXJnZXQ7Ci0gCi0gICBkb250X3JlcGVhdCAoKTsJCS8qIE5vdCBmb3IgdGhl IGZhaW50IG9mIGhlYXJ0ICovCi1AQCAtMjQ5Nyw4ICsyNTMwLDggQEAgYXR0YWNoX2NvbW1hbmQg KGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKLSAgICAgIHRoaXMgZnVuY3Rpb24gc2hvdWxkIHBy b2JhYmx5IGJlIG1vdmVkIGludG8gdGFyZ2V0X3ByZV9pbmZlcmlvci4gICovCi0gICB0YXJnZXRf cHJlX2luZmVyaW9yIChmcm9tX3R0eSk7Ci0gCi0tICBpZiAoYXJncyAhPSBOVUxMKQotLSAgICBh c3luY19leGVjID0gc3RyaXBfYmdfY2hhciAoJmFyZ3MpOwotKyAgYXJncyA9IHN0cmlwX2JnX2No YXIgKGFyZ3MsICZhc3luY19leGVjKTsKLSsgIGFyZ3NfY2hhaW4gPSBtYWtlX2NsZWFudXAgKHhm cmVlLCBhcmdzKTsKLSAKLSAgIGF0dGFjaF90YXJnZXQgPSBmaW5kX2F0dGFjaF90YXJnZXQgKCk7 Ci0gCi1AQCAtMjUxMiw2ICsyNTQ1LDkgQEAgYXR0YWNoX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGlu dCBmcm9tX3R0eSkKLSAgICAgIHNob3VsZG4ndCByZWZlciB0byBhdHRhY2hfdGFyZ2V0IGFnYWlu LiAgKi8KLSAgIGF0dGFjaF90YXJnZXQgPSBOVUxMOwotIAotKyAgLyogRG9uZSB3aXRoIEFSR1Mu ICAqLwotKyAgZG9fY2xlYW51cHMgKGFyZ3NfY2hhaW4pOwotKwotICAgLyogU2V0IHVwIHRoZSAi c2F2ZWQgdGVybWluYWwgbW9kZXMiIG9mIHRoZSBpbmZlcmlvcgotICAgICAgYmFzZWQgb24gd2hh dCBtb2RlcyB3ZSBhcmUgc3RhcnRpbmcgaXQgd2l0aC4gICovCi0gICB0YXJnZXRfdGVybWluYWxf aW5pdCAoKTsKLSMjIyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvdGVzdHN1 aXRlL0NoYW5nZUxvZwotIyMgLTEsNSArMSwxMSBAQAotIDIwMTQtMTAtMTcgIFBlZHJvIEFsdmVz ICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0gCi0rCVBSIGdkYi8xNzQ3MQotKwkqIGdkYi5iYXNlL2Jn LWV4ZWN1dGlvbi1yZXBlYXQuYzogTmV3IGZpbGUuCi0rCSogZ2RiLmJhc2UvYmctZXhlY3V0aW9u LXJlcGVhdC5leHA6IE5ldyBmaWxlLgotKwotKzIwMTQtMTAtMTcgIFBlZHJvIEFsdmVzICA8cGFs dmVzQHJlZGhhdC5jb20+Ci0rCi0gCVBSIGdkYi8xNzMwMAotIAkqIGdkYi5iYXNlL2NvbnRpbnVl LWFsbC1hbHJlYWR5LXJ1bm5pbmcuYzogTmV3IGZpbGUuCi0gCSogZ2RiLmJhc2UvY29udGludWUt YWxsLWFscmVhZHktcnVubmluZy5leHA6IE5ldyBmaWxlLgotLS0tIC9kZXYvbnVsbAotKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9iZy1leGVjdXRpb24tcmVwZWF0LmMKLUBAIC0wLDAgKzEs MzMgQEAKLSsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgotKwotKyAgIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgot KwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsKLSsjaW5jbHVk ZSA8dW5pc3RkLmg+Ci0rCi0raW50Ci0rZm9vICh2b2lkKQotK3sKLSsgIHJldHVybiAwOyAvKiBz ZXQgYnJlYWsgaGVyZSAqLwotK30KLSsKLStpbnQKLSttYWluICh2b2lkKQotK3sKLSsgIGZvbyAo KTsKLSsgIHNsZWVwICg1KTsKLSsgIGZvbyAoKTsKLSsgIHJldHVybiAwOwotK30KLS0tLSAvZGV2 L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYmctZXhlY3V0aW9uLXJlcGVhdC5l eHAKLUBAIC0wLDAgKzEsODYgQEAKLSsjIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0r IyBUZXN0IHRoYXQgcmVwZWF0aW5nIGEgYmFja2dyb3VuZCBjb21tYW5kIGRvZXNuJ3QgbG9zZSB0 aGUgIiYiIGluIHRoZQotKyMgcmVwZWF0LCB0dXJuaW5nIGEgYmFja2dyb3VuZCBjb21tYW5kIGlu dG8gYSBmb3JlZ3JvdW5kIGNvbW1hbmQuICBTZWUKLSsjIFBSIGdkYi8xNzQ3MS4KLSsKLStzdGFu ZGFyZF90ZXN0ZmlsZQotKwotK2lmIHsgW2J1aWxkX2V4ZWN1dGFibGUgImZhaWxlZCB0byBwcmVw YXJlIiAke3Rlc3RmaWxlfSAkc3JjZmlsZV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStz ZXQgbGluZW51bSBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrIGhlcmUiXQotKwotKyMg UnVuIHRoZSB0ZXN0IHByb3Blci4gIENPTlRJTlVFX0NNRCBpcyB0aGUgYmFja2dyb3VuZCBjb250 aW51ZQotKyMgY29tbWFuZCB0byBpc3N1ZS4KLSsKLStwcm9jIHRlc3Qge2NvbnRpbnVlX2NtZH0g ewotKyAgICBnbG9iYWwgZ2RiX3Byb21wdAotKyAgICBnbG9iYWwgYmluZmlsZQotKyAgICBnbG9i YWwgbGluZW51bQotKwotKyAgICBjbGVhbl9yZXN0YXJ0ICRiaW5maWxlCi0rCi0rICAgIGlmICFb cnVudG9fbWFpbl0gewotKwlyZXR1cm4KLSsgICAgfQotKwotKyAgICBnZGJfYnJlYWtwb2ludCAi JGxpbmVudW0iCi0rCi0rICAgIHNldCB0ZXN0ICRjb250aW51ZV9jbWQKLSsgICAgZ2RiX3Rlc3Rf bXVsdGlwbGUgJHRlc3QgJHRlc3QgewotKwktcmUgIkNvbnRpbnVpbmdcXC5cclxuJGdkYl9wcm9t cHQgIiB7Ci0rCSAgICAjIE5vdGUgbm8gZW5kIGFuY2hvci4gIElmIHRoZSBicmVha3BvaW50IHRy aWdnZXJzIHNvb24gZW5vdWdoCi0rCSAgICAjIGVub3VnaCB3ZSBzZWUgZnVydGhlciBvdXRwdXQg YWZ0ZXIgdGhlIHByb21wdC4KLSsJICAgIHBhc3MgJHRlc3QKLSsJfQotKyAgICB9Ci0rCi0rICAg ICMgV2FpdCBmb3IgdGhlIHN0b3AuICBEb24ndCBleHBlY3QgYSBwcm9tcHQsIGFzIHdlIGhhZCBy ZXN1bWVkIHRoZQotKyAgICAjIGluZmVyaW9yIGluIHRoZSBiYWNrZ3JvdW5kLgotKyAgICBzZXQg dGVzdCAiYnJlYWtwb2ludCBoaXQgMSIKLSsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3Qg ewotKwktcmUgInNldCBicmVhayBoZXJlIiB7Ci0rCSAgICBwYXNzICR0ZXN0Ci0rCX0KLSsgICAg fQotKwotKyAgICAjIFRyaWdnZXIgYSByZXBlYXQuICBCdWdneSBHREIgdXNlZCB0byBsb3NlIHRo ZSAiJiIsIG1ha2luZyB0aGlzIGEKLSsgICAgIyBmb3JlZ3JvdW5kIGNvbW1hbmQuLi4KLSsgICAg c2VuZF9nZGIgIlxuIgotKyAgICBnZGJfdGVzdCAiIiAiQ29udGludWluZ1xcLiIgInJlcGVhdCBi ZyBjb21tYW5kIgotKwotKyAgICAjIC4uLiBhbmQgdGh1cyBmdXJ0aGVyIGlucHV0IHdvdWxkbid0 IGJlIHByb2Nlc3NlZCB1bnRpbCB0aGUgdGFyZ2V0Ci0rICAgICMgc3RvcHBlZC4KLSsgICAgZ2Ri X3Rlc3QgInByaW50IDEiICIgPSAxIiAiaW5wdXQgc3RpbGwgYWNjZXB0ZWQiCi0rCi0rICAgICMg TWFrZSBzdXJlIHdlIHNlZSBhIHN0b3AgYWZ0ZXIgdGhlIHByaW50LCBhbmQgbm90IGJlZm9yZS4g IERvbid0Ci0rICAgICMgZXhwZWN0IGEgcHJvbXB0LCBhcyB3ZSBoYWQgcmVzdW1lZCB0aGUgaW5m ZXJpb3IgaW4gdGhlIGJhY2tncm91bmQuCi0rICAgIHNldCB0ZXN0ICJicmVha3BvaW50IGhpdCAy IgotKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7Ci0rCS1yZSAic2V0IGJyZWFrIGhl cmUgLi5cclxuIiB7Ci0rCSAgICBwYXNzICR0ZXN0Ci0rCX0KLSsgICAgfQotK30KLSsKLSsjIFRl c3Qgd2l0aCBhbmQgd2l0aG91dCBleHRyYSBhcmd1bWVudHMuCi0rZm9yZWFjaCBjbWQgeyJjJiIg ImMgMSYifSB7Ci0rICAgIHdpdGhfdGVzdF9wcmVmaXggJGNtZCB7Ci0rCXRlc3QgJGNtZAotKyAg ICB9Ci0rfQotLS0gCi0xLjkuMwotCi0KLQotY29tbWl0IDU0ZmJjNzUwYjU0MjcxZWZiNzVhZTEx Y2U0OWYxNGM0MjM0YTk0NzYKLUF1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+Ci1EYXRlOiAgIFRodSBTZXAgMTggMDg6MjE6NDAgMjAxNCArMDIwMAotCi0g ICAgRml4IHJlZ3Jlc3Npb24gZm9yIExpbnV4IHZEU08gaW4gR0RCIChQUiBnZGIvMTc0MDcpLgot ICAgIAotICAgIHNpbmNlCi0gICAgCTU5NzlkNmI2OWIyMGE4MzU1ZWE5NGI3NWZhZDk3NDE1ZmNl NDc4OGMKLSAgICAJaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9YmludXRpbHMtZ2RiLmdp dDthPWNvbW1pdGRpZmY7aD01OTc5ZDZiNjliMjBhODM1NWVhOTRiNzVmYWQ5NzQxNWZjZTQ3ODhj Ci0gICAgCXZkc28gaGFuZGxpbmcKLSAgICAJaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9iaW51 dGlscy8yMDE0LTAzL21zZzAwMDgyLmh0bWwKLSAgICAJaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9t bC9iaW51dGlscy8yMDE0LTA0L21zZzAwMDAzLmh0bWwKLSAgICAJTWVzc2FnZS1JRDogPEE3OEM5 ODlGNkQ5NjI4NDY5MTg5NzE1NTc1RTU1QjIzMEFBODg0RUJASVJTTVNYMTA0Lmdlci5jb3JwLmlu dGVsLmNvbT4KLSAgICBJIGdldCBvbgotICAgIAlrZXJuZWwtMy4xNi4yLTIwMC5mYzIwLng4Nl82 NAotICAgIAlodHRwczovL2tvamkuZmVkb3JhcHJvamVjdC5vcmcva29qaS9idWlsZGluZm8/YnVp bGRJRD01NzU4NjAKLSAgICAJYXR0YWNoaW5nIGl0cyB2ZHNvLmJpbi5negotICAgIEdEQiAoRlNG IEhFQUQgNWU0M2Q0Njc5MWM0YzY2ZmQ4Mzk0N2ExMmQ0ZjcxNmI1NjFhOTEwMykgcmVncmVzc2lv bjoKLSAgICByZXByb2R1Y2VyOgotICAgIAkuL2dkYiAtZXggc3RhcnQgLi9nZGIKLSAgICBhY3R1 YWwgcmVzdWx0IC8gRkFJTDoKLSAgICAJR290IG9iamVjdCBmaWxlIGZyb20gbWVtb3J5IGJ1dCBj YW4ndCByZWFkIHN5bWJvbHM6IEZpbGUgdHJ1bmNhdGVkLgotICAgIGV4cGVjdGVkIHJlc3VsdCAv IFBBU1M6Ci0gICAgCTxub3RoaW5nPgotICAgIG9yIC8gUEFTUzoKLSAgICAJd2FybmluZzogQ291 bGQgbm90IGxvYWQgc2hhcmVkIGxpYnJhcnkgc3ltYm9scyBmb3IgbGludXgtdmRzby5zby4xLgot ICAgIAlEbyB5b3UgbmVlZCAic2V0IHNvbGliLXNlYXJjaC1wYXRoIiBvciAic2V0IHN5c3Jvb3Qi PwotICAgIAotICAgIFRoYXQgIndhcm5pbmc6IENvdWxkIG5vdCBsb2FkIHNoYXJlZCBsaWJyYXJ5 Li4uIiBpcyBtb3N0bHkgaGFybWxlc3MgKGl0IGlzCi0gICAgYSBidWcgaW4gR0RCKSwgaW4gdGhl IEZBSUwgY2FzZSBpdCBpcyBub3QgcHJpbnRlZCBqdXN0IGJlY2F1c2UKLSAgICBiZmRfY2hlY2tf Zm9ybWF0KCkgZmFpbHMgdGhlcmUuCi0gICAgCi0gICAgSXQgc2VlbXMgbG9naWNhbCB0byBtZSB0 aGlzIHdheSB3aGVuIHRoZSAnc2l6ZScgcGFyYW1ldGVyIGhhcyBiZWVuIGFscmVhZHkKLSAgICBh ZGRlZC4KLSAgICBBbGFuIE1vZHJhOgotICAgIEkgd2FzIHdyb25nbHkgdGhpbmtpbmcgdGhhdCB0 aGUgc2VjdGlvbiBoZWFkZXJzIHdlcmUKLSAgICBhbHdheXMgbGFzdCB3aGVuIEkgd3JvdGUgdGhh dCBjb2RlLiAgKFRoZXkgYXJlIG5vdyEgIElmIHlvdSByZWxpbmsKLSAgICB0aGF0IHZkc28gd2l0 aCBjdXJyZW50IGJpbnV0aWxzIG1hc3RlciB5b3Ugd29uJ3QgaGl0IHRoaXMgcHJvYmxlbSwgYnV0 Ci0gICAgdGhhdCBvZiBjb3Vyc2UgZG9lc24ndCBoZWxwIGV4aXN0aW5nIGtlcm5lbHMuKQotICAg IAotICAgIEkgZG8gbm90IHNlZSBhIHJlZ3Jlc3Npb24gZm9yIGFkZC1zeW1ib2wtZmlsZS1mcm9t LW1lbW9yeSBmb3IgbGlibmN1cnNlcy5zby41Ci0gICAgZnJvbSB0aGUgb3JpZ2luYWwgdGhyZWFk IGFib3ZlLgotICAgIAotICAgICAgU3RhcnQgb2Ygc2VjdGlvbiBoZWFkZXJzOiAgICAgICAgICAx MDgwIChieXRlcyBpbnRvIGZpbGUpCi0gICAgICBTaXplIG9mIHNlY3Rpb24gaGVhZGVyczogICAg ICAgICAgIDY0IChieXRlcykKLSAgICAgIE51bWJlciBvZiBzZWN0aW9uIGhlYWRlcnM6ICAgICAg ICAgMTMKLSAgICAgIFNlY3Rpb24gaGVhZGVyIHN0cmluZyB0YWJsZSBpbmRleDogOAotICAgIFNl Y3Rpb24gSGVhZGVyczoKLSAgICAgIFtOcl0gTmFtZSAgICAgICAgICAgICAgVHlwZSAgICAgICAg ICAgIEFkZHJlc3MgICAgICAgICAgT2ZmICAgIFNpemUgICBFUyBGbGcgTGsgSW5mIEFsCi0gICAg ICBbIDhdIC5mYWtlX3Noc3RydGFiICAgIFNUUlRBQiAgICAgICAgICAwMDAwMDAwMDAwMDAwNzgw IDAwMDc4MCAwMDAwNzYgMDAgICBBICAwICAgMCAzMgotICAgIFByb2dyYW0gSGVhZGVyczoKLSAg ICAgIFR5cGUgICAgICAgICAgIE9mZnNldCAgIFZpcnRBZGRyICAgICAgICAgICBQaHlzQWRkciAg ICAgICAgICAgRmlsZVNpeiAgTWVtU2l6ICAgRmxnIEFsaWduCi0gICAgICBMT0FEICAgICAgICAg ICAweDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAxMmZl IDB4MDAxMmZlIFIgRSAweDEwMDAKLSAgICAKLSAgICBzaXplID09IDB4MjAwMAotICAgIHNoZHJf ZW5kID09IDB4Nzc4ID09IDEwODAgKyAxMyAqIDY0Ci0gICAgaGlnaF9vZmZzZXQgPT0gMHgxMmZl Ci0gICAgCi0gICAgICAgICAgIGVsc2UgaWYgKHNpemUgPj0gc2hkcl9lbmQpCi0gICAgLQloaWdo X29mZnNldCA9IHNoZHJfZW5kOwotICAgICsJaGlnaF9vZmZzZXQgPSBzaXplOwotICAgIAotICAg IEJ1dCB0aGVuIDB4Nzc4IDwgMHg3ODAgZm9yICJTZWN0aW9uIGhlYWRlciBzdHJpbmcgdGFibGUg aW5kZXgiIHNvIHdob2xlCi0gICAgYmZkX2NoZWNrX2Zvcm1hdCgpIGZhaWxzIGJlY2F1c2Ugc2Vj dGlvbiBoZWFkZXJzIHdlcmUgbm90IGNsZWFyZWQgaGVyZToKLSAgICAgIC8qIElmIHRoZSBzZWdt ZW50cyB2aXNpYmxlIGluIG1lbW9yeSBkaWRuJ3QgaW5jbHVkZSB0aGUgc2VjdGlvbiBoZWFkZXJz LAotICAgICAgICAgdGhlbiBjbGVhciB0aGVtIGZyb20gdGhlIGZpbGUgaGVhZGVyLiAgKi8KLSAg ICAgIGlmIChoaWdoX29mZnNldCA8IHNoZHJfZW5kKQotICAgIAotICAgIGJmZC9DaGFuZ2VMb2cK LSAgICAyMDE0LTA5LTE4ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci0gICAgCi0gICAgCVBSIGdkYi8xNzQwNwotICAgIAkqIGVsZmNvZGUuaCAoYmZkX2Zyb21f cmVtb3RlX21lbW9yeSk6IFVzZSBTSVpFIGZvciBISUdIX09GRlNFVC4KLQotIyMjIGEvYmZkL0No YW5nZUxvZwotIyMjIGIvYmZkL0NoYW5nZUxvZwotIyMgLTEsMyArMSw4IEBACi0rMjAxNC0wOS0x OCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwotKwlQUiBn ZGIvMTc0MDcKLSsJKiBlbGZjb2RlLmggKGJmZF9mcm9tX3JlbW90ZV9tZW1vcnkpOiBVc2UgU0la RSBmb3IgSElHSF9PRkZTRVQuCi0rCi0gMjAxNC0wNy0xNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgotIAotIAkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcGx0X3N5bV92YWwpOiBN YXRjaCBQTFQgZW50cnkgb25seSBmb3IKLS0tLSBhL2JmZC9lbGZjb2RlLmgKLSsrKyBiL2JmZC9l bGZjb2RlLmgKLUBAIC0xNzQ5LDcgKzE3NDksNyBAQCBOQU1FKF9iZmRfZWxmLGJmZF9mcm9tX3Jl bW90ZV9tZW1vcnkpCi0gCSAgICAgaGVhZGVycy4gICovCi0gCX0KLSAgICAgICBlbHNlIGlmIChz aXplID49IHNoZHJfZW5kKQotLQloaWdoX29mZnNldCA9IHNoZHJfZW5kOwotKwloaWdoX29mZnNl dCA9IHNpemU7Ci0gICAgICAgZWxzZQotIAl7Ci0gCSAgYmZkX3ZtYSBwYWdlX3NpemUgPSBnZXRf ZWxmX2JhY2tlbmRfZGF0YSAodGVtcGwpLT5taW5wYWdlc2l6ZTsKCmRpZmYgLS1naXQgYS9nZGIu c3BlYyBiL2dkYi5zcGVjCmluZGV4IDY5MWJiZWYuLjNmYjE0YzQgMTAwNjQ0Ci0tLSBhL2dkYi5z cGVjCisrKyBiL2dkYi5zcGVjCkBAIC0yMiwxNyArMjIsMTcgQEAgTmFtZTogJXs/c2NsX3ByZWZp eH1nZGIKICMgU2VlIHRpbWVzdGFtcCBvZiBzb3VyY2UgZ251bGliIGluc3RhbGxlZCBpbnRvIGdk Yi9nbnVsaWIvIC4KICVnbG9iYWwgc25hcGdudWxpYiAyMDEyMTIxMwogJWdsb2JhbCB0YXJuYW1l IGdkYi0le3ZlcnNpb259Ci1WZXJzaW9uOiA3LjgKK1ZlcnNpb246IDcuOC4xCiAKICMgVGhlIHJl bGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0 IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxs eSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTog Mjklez9kaXN0fQorUmVsZWFzZTogMzAlez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQ THYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9u cyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRM CiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCiAjIERvIG5vdCBwcm92aWRlIFVSTCBmb3Ig c25hcHNob3RzIGFzIHRoZSBmaWxlIGxhc3RzIHRoZXJlIG9ubHkgZm9yIDIgZGF5cy4KLSMgZnRw Oi8vc291cmNld2FyZS5vcmcvcHViL2dkYi9yZWxlYXNlcy9nZGItJXt2ZXJzaW9ufS50YXIuZ3oK LVNvdXJjZTogJXt0YXJuYW1lfS50YXIuZ3oKKyMgZnRwOi8vc291cmNld2FyZS5vcmcvcHViL2dk Yi9yZWxlYXNlcy9nZGItJXt2ZXJzaW9ufS50YXIueHoKK1NvdXJjZTogZnRwOi8vc291cmNld2Fy ZS5vcmcvcHViL2dkYi9yZWxlYXNlcy8le3Rhcm5hbWV9LnRhci54egogQnVpbGRyb290OiAlKG1r dGVtcCAtdWQgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tWFhYWFhY KQogVVJMOiBodHRwOi8vZ251Lm9yZy9zb2Z0d2FyZS9nZGIvCiAKQEAgLTUyNCwyMCArNTI0LDEw IEBAIFBhdGNoOTIxOiBnZGItcHl0aG9uLWNvbXBsZXRlci0yb2YyLnBhdGNoCiAjIERpc3BsYXkg Rm9ydHJhbiBzdHJpbmdzIGluIGJhY2t0cmFjZXMuCiBQYXRjaDkyNTogZ2RiLWZvcnRyYW4tZnJh bWUtc3RyaW5nLnBhdGNoCiAKLSMgRml4IC1XZXJyb3I9dW51c2VkLXZhcmlhYmxlIGVycm9yIGNv bmZpZ3VyaW5nIGJhYmVsdHJhY2UuCi0jIEZpeCBiYWJlbHRyYWNlIGVycm9ycyAoWWFvIFFpKS4K LVBhdGNoOTI2OiBnZGItYmFiZWx0cmFjZS1jb25maWd1cmUucGF0Y2gKLVBhdGNoOTI4OiBnZGIt YmFiZWx0cmFjZS1taW5zaXplLnBhdGNoCi0KICMgRml4IFB5dGhvbiBHSUwgd2l0aCBnZGIuZXhl Y3V0ZSgiY29udGludWUiKSAoUGhpbCBNdWxkb29uLCBCWiAxMTE2OTU3KS4KIFBhdGNoOTI3OiBn ZGItcHl0aG9uLWdpbC5wYXRjaAogCi0jIEZpeCBjcmFzaCBvbiBQeXRob24gZnJhbWUgZmlsdGVy cyB3aXRoIHVucmVhZGFibGUgYXJnIChCWiAxMTI2MTc3KS4KLVBhdGNoOTI5OiBweXRob24tZnJh bWVmaWx0ZXItaW52YWxpZGFyZy5wYXRjaAotCiAjIEZpeCBHREIgU0lHVFQqIFN0b3BwZWQgd2hl biB1c2luZyB0aGUgUElEIGFyZ3VtZW50IChCWiAxMTM2NzA0LCBQZWRybyBBbHZlcykuCi1QYXRj aDkzMDogZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy0xb2YyLnBhdGNoCi1QYXRjaDkzMTog Z2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy0yb2YyLnBhdGNoCiBQYXRjaDk3MDogZ2RiLWFz eW5jLXN0b3BwZWQtb24tcGlkLWFyZy10ZXN0c3VpdGUucGF0Y2gKIAogIyBGaXggInNhdmUgYnJl YWtwb2ludHMiIGZvciBzaWduYWwgY2F0Y2hwb2ludHMgYW5kIGRpc2FibGVkIGJyZWFrcG9pbnRz CkBAIC04MzMsMTIgKzgyMyw3IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAl cGF0Y2g5MjAgLXAxCiAlcGF0Y2g5MjEgLXAxCiAlcGF0Y2g5MjUgLXAxCi0lcGF0Y2g5MjYgLXAx Ci0lcGF0Y2g5MjggLXAxCiAlcGF0Y2g5MjcgLXAxCi0lcGF0Y2g5MjkgLXAxCi0lcGF0Y2g5MzAg LXAxCi0lcGF0Y2g5MzEgLXAxCiAlcGF0Y2g5NzAgLXAxCiAlcGF0Y2g5NzEgLXAxCiAlcGF0Y2g5 NzMgLXAxCkBAIC0xMzQzLDYgKzEzMjgsOSBAQCB0aGVuCiBmaQogCiAlY2hhbmdlbG9nCisqIFRo dSBPY3QgMzAgMjAxNCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4g LSA3LjguMS0zMC5mYzIxCistIFJlYmFzZSB0byBGU0YgR0RCIDcuOC4xLgorCiAqIE1vbiBPY3Qg MjcgMjAxNCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3Ljgt MjkuZmMyMQogLSBCYWNrcG9ydCB2RFNPIHJlZ3Jlc3Npb24uCiAtIFJldmVydCB0aGUgbWFrZWlu Zm8gd29ya2Fyb3VuZCBmcm9tIDcuOC0yNy5mYzIxLgoKZGlmZiAtLWdpdCBhL3B5dGhvbi1mcmFt ZWZpbHRlci1pbnZhbGlkYXJnLnBhdGNoIGIvcHl0aG9uLWZyYW1lZmlsdGVyLWludmFsaWRhcmcu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjMWYxNmIuLjAwMDAwMDAKLS0t IGEvcHl0aG9uLWZyYW1lZmlsdGVyLWludmFsaWRhcmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw1OTYgKzAsMCBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQt MDgvbXNnMDAzNjQuaHRtbAotU3ViamVjdDogW3BhdGNoKzcuOD9dIEZpeCBjcmFzaCBvbiBQeXRo b24gZnJhbWUgZmlsdGVycyB3aXRoIHVucmVhZGFibGUgYXJnCi0KLQotLS1kNkdtNEVkY2FkekJq ZE5ECi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQt RGlzcG9zaXRpb246IGlubGluZQotCi1IaSwKLQotaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29t L3Nob3dfYnVnLmNnaT9pZD0xMTI2MTc3Ci0KLUVSUk9SOiBBZGRyZXNzU2FuaXRpemVyOiBTRUdW IG9uIHVua25vd24gYWRkcmVzcyAweDAwMDAwMDAwMDA1MCAocGMgMHgwMDAwMDA5OTJiZWYgc3Ag MHg3ZmZmZjkwMzk1MzAgYnAgMHg3ZmZmZjkwMzk1NDAgVDApCi0gICAgIzAgMHg5OTJiZWUgaW4g dmFsdWVfdHlwZSAuLi4vZ2RiL3ZhbHVlLmM6OTI1Ci0gICAgIzEgMHg4N2M5NTEgaW4gcHlfcHJp bnRfc2luZ2xlX2FyZyBweXRob24vcHktZnJhbWVmaWx0ZXIuYzo0NDUKLSAgICAjMiAweDg3Y2Zh ZSBpbiBlbnVtZXJhdGVfYXJncyBweXRob24vcHktZnJhbWVmaWx0ZXIuYzo1OTYKLSAgICAjMyAw eDg3ZTBiMCBpbiBweV9wcmludF9hcmdzIHB5dGhvbi9weS1mcmFtZWZpbHRlci5jOjk2OAotCi1J dCBjcmFzaGVzIGJlY2F1c2UgZnJhbWVfYXJnOjp2YWwgaXMgZG9jdW1lbnRlZCBpdCBtYXkgY29u dGFpbiBOVUxMCi0oZnJhbWVfYXJnOjplcnJvciBpcyB0aGVuIG5vbi1OVUxMKSBidXQgdGhlIGNv ZGUgZG9lcyBub3QgaGFuZGxlIGl0LgotCi1Bbm90aGVyIGJ1ZyBpcyB0aGF0IHB5X3ByaW50X3Np bmdsZV9hcmcoKSBjYWxscyBnb3RvIG91dCBvZiBpdHMgVFJZX0NBVENICi13aGljaCBtZXNzZXMg dXAgR0RCIGNsZWFudXAgY2hhaW4gY3Jhc2hpbmcgR0RCIGxhdGVyLgotCi1JIHRyaWVkIHRvIHNv bWVob3cgc2VwYXJhdGUgaXQgdG8gdHdvIHBhdGNoZXMgZmlyc3QgYnV0IGl0IGluIHRoZSBlbmQg a2VwdAotdGhlbSBtZXJnZWQuCi0KLU5vIHJlZ3Jlc3Npb25zIG9uIHt4ODZfNjQseDg2XzY0LW0z MixpNjg2fS1mZWRvcmFyYXdoaWRlLWxpbnV4LWdudS4KLQotSXQgaXMgcHJvYmFibHkgNy43IHJl Z3Jlc3Npb24gKEkgaGF2ZSBub3QgdmVyaWZpZWQgaXQpIGR1ZSB0byB0aGUgaW50cm9kdWN0aW9u Ci1vZiBQeXRob24gZnJhbWUgZmlsdGVycy4KLQotSSBhbSBub3Qgc3VyZSBpZiBpdCBpcyBtb3Jl IHN1aXRhYmxlIGZvciBnZGIuYXJjaC8gb3IgZ2RiLnB5dGhvbi8gLCB1c2VkIHRoZQotbGF0dGVy LgotCi0KLVRoYW5rcywKLUphbgotCi0tLWQ2R200RWRjYWR6QmpkTkQKLUNvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5l OyBmaWxlbmFtZT0icHlpbnZhbGlkYXJnLnBhdGNoIgotCi1nZGIvCi0yMDE0LTA4LTE5ICBKYW4g S3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIHB5dGhvbi9weS1m cmFtZWZpbHRlci5jIChweV9wcmludF9zaW5nbGVfYXJnKTogSGFuZGxlIE5VTEwgRkEtPlZBTC4K LQlGaXggZ290byBvdXQgb2YgVFJZX0NBVENILgotCi1nZGIvdGVzdHN1aXRlLwotMjAxNC0wOC0x OSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIu cHl0aG9uL2FtZDY0LXB5LWZyYW1lZmlsdGVyLWludmFsaWRhcmcuUzogTmV3IGZpbGUuCi0JKiBn ZGIucHl0aG9uL3B5LWZyYW1lZmlsdGVyLWludmFsaWRhcmctZ2RiLnB5LmluOiBOZXcgZmlsZS4K LQkqIGdkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5leHA6IE5ldyBmaWxlLgot CSogZ2RiLnB5dGhvbi9weS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLnB5OiBOZXcgZmlsZS4KLQot ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYyBiL2dkYi9weXRob24vcHkt ZnJhbWVmaWx0ZXIuYwotaW5kZXggOWRiODNjNy4uZDUzMjgyZiAxMDA2NDQKLS0tLSBhL2dkYi9w eXRob24vcHktZnJhbWVmaWx0ZXIuYwotKysrIGIvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5j Ci1AQCAtMzY1LDkgKzM2NSwxMiBAQCBweV9wcmludF9zaW5nbGVfYXJnIChzdHJ1Y3QgdWlfb3V0 ICpvdXQsCi0gewotICAgc3RydWN0IHZhbHVlICp2YWw7Ci0gICB2b2xhdGlsZSBzdHJ1Y3QgZ2Ri X2V4Y2VwdGlvbiBleGNlcHQ7Ci0rICBlbnVtIGV4dF9sYW5nX2J0X3N0YXR1cyByZXR2YWwgPSBF WFRfTEFOR19CVF9PSzsKLSAKLSAgIGlmIChmYSAhPSBOVUxMKQotICAgICB7Ci0rICAgICAgaWYg KGZhLT52YWwgPT0gTlVMTCAmJiBmYS0+ZXJyb3IgPT0gTlVMTCkKLSsJcmV0dXJuIEVYVF9MQU5H X0JUX09LOwotICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2VfZGVmIChTWU1CT0xfTEFOR1VBR0Ug KGZhLT5zeW0pKTsKLSAgICAgICB2YWwgPSBmYS0+dmFsOwotICAgICB9Ci1AQCAtNDMzLDE2ICs0 MzYsMTggQEAgcHlfcHJpbnRfc2luZ2xlX2FyZyAoc3RydWN0IHVpX291dCAqb3V0LAotICAgICAg IC8qIEZvciBNSSBwcmludCB0aGUgdHlwZSwgYnV0IG9ubHkgZm9yIHNpbXBsZSB2YWx1ZXMuICBU aGlzIHNlZW1zCi0gCSB3ZWlyZCwgYnV0IHRoaXMgaXMgaG93IE1JIGNob29zZSB0byBmb3JtYXQg dGhlIHZhcmlvdXMgb3V0cHV0Ci0gCSB0eXBlcy4gICovCi0tICAgICAgaWYgKGFyZ3NfdHlwZSA9 PSBNSV9QUklOVF9TSU1QTEVfVkFMVUVTKQotKyAgICAgIGlmIChhcmdzX3R5cGUgPT0gTUlfUFJJ TlRfU0lNUExFX1ZBTFVFUyAmJiB2YWwgIT0gTlVMTCkKLSAJewotIAkgIGlmIChweV9wcmludF90 eXBlIChvdXQsIHZhbCkgPT0gRVhUX0xBTkdfQlRfRVJST1IpCi0gCSAgICB7Ci0rCSAgICAgIHJl dHZhbCA9IEVYVF9MQU5HX0JUX0VSUk9SOwotIAkgICAgICBkb19jbGVhbnVwcyAoY2xlYW51cHMp OwotLQkgICAgICBnb3RvIGVycm9yOwotKwkgICAgICBjb250aW51ZTsKLSAJICAgIH0KLSAJfQot IAotLSAgICAgIGFubm90YXRlX2FyZ192YWx1ZSAodmFsdWVfdHlwZSAodmFsKSk7Ci0rICAgICAg aWYgKHZhbCAhPSBOVUxMKQotKwlhbm5vdGF0ZV9hcmdfdmFsdWUgKHZhbHVlX3R5cGUgKHZhbCkp OwotIAotICAgICAgIC8qIElmIHRoZSBvdXRwdXQgaXMgdG8gdGhlIENMSSwgYW5kIHRoZSB1c2Vy IG9wdGlvbiAic2V0IHByaW50Ci0gCSBmcmFtZS1hcmd1bWVudHMiIGlzIHNldCB0byBub25lLCBq dXN0IG91dHB1dCAiLi4uIi4gICovCi1AQCAtNDU0LDI3ICs0NTksMjUgQEAgcHlfcHJpbnRfc2lu Z2xlX2FyZyAoc3RydWN0IHVpX291dCAqb3V0LAotIAkgICAgIGZvciB0aGUgY2FzZSBvZiBNSV9Q UklOVF9OT19WQUxVRVMuICAqLwotIAkgIGlmIChhcmdzX3R5cGUgIT0gTk9fVkFMVUVTKQotIAkg ICAgewotLQkgICAgICBpZiAocHlfcHJpbnRfdmFsdWUgKG91dCwgdmFsLCBvcHRzLCAwLCBhcmdz X3R5cGUsIGxhbmd1YWdlKQotLQkJICA9PSBFWFRfTEFOR19CVF9FUlJPUikKLSsJICAgICAgaWYg KHZhbCA9PSBOVUxMKQotIAkJewotLQkJICBkb19jbGVhbnVwcyAoY2xlYW51cHMpOwotLQkJICBn b3RvIGVycm9yOwotKwkJICBnZGJfYXNzZXJ0IChmYSAhPSBOVUxMICYmIGZhLT5lcnJvciAhPSBO VUxMKTsKLSsJCSAgdWlfb3V0X2ZpZWxkX2ZtdCAob3V0LCAidmFsdWUiLAotKwkJCQkgICAgXygi PGVycm9yIHJlYWRpbmcgdmFyaWFibGU6ICVzPiIpLAotKwkJCQkgICAgZmEtPmVycm9yKTsKLSAJ CX0KLSsJICAgICAgZWxzZSBpZiAocHlfcHJpbnRfdmFsdWUgKG91dCwgdmFsLCBvcHRzLCAwLCBh cmdzX3R5cGUsIGxhbmd1YWdlKQotKwkJICAgICAgID09IEVYVF9MQU5HX0JUX0VSUk9SKQotKwkJ cmV0dmFsID0gRVhUX0xBTkdfQlRfRVJST1I7Ci0gCSAgICB9Ci0gCX0KLSAKLSAgICAgICBkb19j bGVhbnVwcyAoY2xlYW51cHMpOwotICAgICB9Ci0gICBpZiAoZXhjZXB0LnJlYXNvbiA8IDApCi0t ICAgIHsKLS0gICAgICBnZGJweV9jb252ZXJ0X2V4Y2VwdGlvbiAoZXhjZXB0KTsKLS0gICAgICBn b3RvIGVycm9yOwotLSAgICB9Ci0tCi0tICByZXR1cm4gRVhUX0xBTkdfQlRfT0s7Ci0rICAgIGdk YnB5X2NvbnZlcnRfZXhjZXB0aW9uIChleGNlcHQpOwotIAotLSBlcnJvcjoKLS0gIHJldHVybiBF WFRfTEFOR19CVF9FUlJPUjsKLSsgIHJldHVybiByZXR2YWw7Ci0gfQotIAotIC8qIEhlbHBlciBm dW5jdGlvbiB0byBsb29wIG92ZXIgZnJhbWUgYXJndW1lbnRzIHByb3ZpZGVkIGJ5IHRoZQotZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9hbWQ2NC1weS1mcmFtZWZpbHRlci1p bnZhbGlkYXJnLlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vYW1kNjQtcHktZnJhbWVmaWx0 ZXItaW52YWxpZGFyZy5TCi1uZXcgZmlsZSBtb2RlIDEwMDc1NQotaW5kZXggMDAwMDAwMC4uM2Fj MWIyMwotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL2FtZDY0 LXB5LWZyYW1lZmlsdGVyLWludmFsaWRhcmcuUwotQEAgLTAsMCArMSwyNjEgQEAKLSsvKiBUaGlz IHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgotKwotKyAgIENvcHly aWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0r ICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsKLSsvKiBUaGlzIGZpbGUgaXMgY29tcGls ZWQgZnJvbSBhIHNpbmdsZSBsaW5lCi0rICAgaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJn dikgeyByZXR1cm4gMDsgfQotKyAgIHVzaW5nIC1nIC1kQSAtUyAtTzIgYW5kIHBhdGNoZWQgYXMg I2lmLWVkIGJlbG93LiAgKi8KLSsKLSsJLmZpbGUJInB5LWZyYW1lZmlsdGVyLWludmFsaWRhcmcu YyIKLSsJLnRleHQKLSsuTHRleHQwOgotKwkuZ2xvYmwJbWFpbgotKwkudHlwZQltYWluLCBAZnVu Y3Rpb24KLSttYWluOgotKy5MRkIwOgotKwkuZmlsZSAxICJweS1mcmFtZWZpbHRlci1pbnZhbGlk YXJnLmMiCi0rCSMgcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5jOjEKLSsJLmxvYyAxIDEgMAot KwkuY2ZpX3N0YXJ0cHJvYwotKyMgQkxPQ0sgMiBzZXE6MAotKyMgUFJFRDogRU5UUlkgKEZBTExU SFJVKQotKwlwdXNocQklcmJwCi0rCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSsJLmNmaV9vZmZz ZXQgNiwgLTE2Ci0rCW1vdnEJJXJzcCwgJXJicAotKwkuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgNgot Kwltb3ZsCSVlZGksIC00KCVyYnApCi0rCW1vdnEJJXJzaSwgLTE2KCVyYnApCi0rCSMgcHktZnJh bWVmaWx0ZXItaW52YWxpZGFyZy5jOjIKLSsJLmxvYyAxIDIgMAotKwltb3ZsCSQwLCAlZWF4Ci0r CSMgcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5jOjMKLSsJLmxvYyAxIDMgMAotKwlwb3BxCSVy YnAKLSsJLmNmaV9kZWZfY2ZhIDcsIDgKLSsjIFNVQ0M6IEVYSVQgWzEwMC4wJV0gCi0rCXJldAot KwkuY2ZpX2VuZHByb2MKLSsuTEZFMDoKLSsJLnNpemUJbWFpbiwgLi1tYWluCi0rLkxldGV4dDA6 Ci0rCS5zZWN0aW9uCS5kZWJ1Z19pbmZvLCIiLEBwcm9nYml0cwotKy5MZGVidWdfaW5mbzA6Ci0r CS5sb25nCS5MZSAtIC5McwkjIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8KLSsuTHM6 Ci0rCS52YWx1ZQkweDQJIyBEV0FSRiB2ZXJzaW9uIG51bWJlcgotKwkubG9uZwkuTGRlYnVnX2Fi YnJldjAJIyBPZmZzZXQgSW50byBBYmJyZXYuIFNlY3Rpb24KLSsJLmJ5dGUJMHg4CSMgUG9pbnRl ciBTaXplIChpbiBieXRlcykKLSsJLnVsZWIxMjggMHgxCSMgKERJRSAoMHhiKSBEV19UQUdfY29t cGlsZV91bml0KQotKwkubG9uZwkuTEFTRjMJIyBEV19BVF9wcm9kdWNlcjogIkdOVSBDIDQuOS4x IDIwMTQwODEzIChSZWQgSGF0IDQuOS4xLTcpIC1tdHVuZT1nZW5lcmljIC1tYXJjaD14ODYtNjQg LWciCi0rCS5ieXRlCTB4MQkjIERXX0FUX2xhbmd1YWdlCi0rCS5sb25nCS5MQVNGNAkjIERXX0FU X25hbWU6ICJweS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLmMiCi0rCS5sb25nCS5MQVNGNQkjIERX X0FUX2NvbXBfZGlyOiAiIgotKwkucXVhZAkuTHRleHQwCSMgRFdfQVRfbG93X3BjCi0rCS5xdWFk CS5MZXRleHQwLS5MdGV4dDAJIyBEV19BVF9oaWdoX3BjCi0rCS5sb25nCS5MZGVidWdfbGluZTAJ IyBEV19BVF9zdG10X2xpc3QKLStkaWUyZDoKLSsJLnVsZWIxMjggMHgyCSMgKERJRSAoMHgyZCkg RFdfVEFHX3N1YnByb2dyYW0pCi0rCQkJIyBEV19BVF9leHRlcm5hbAotKwkubG9uZwkuTEFTRjYJ IyBEV19BVF9uYW1lOiAibWFpbiIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChweS1m cmFtZWZpbHRlci1pbnZhbGlkYXJnLmMpCi0rCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfbGluZQot KwkJCSMgRFdfQVRfcHJvdG90eXBlZAotKwkubG9uZwlkaWU2Yi0uTGRlYnVnX2luZm8wCSMgRFdf QVRfdHlwZQotKwkucXVhZAkuTEZCMAkjIERXX0FUX2xvd19wYwotKwkucXVhZAkuTEZFMC0uTEZC MAkjIERXX0FUX2hpZ2hfcGMKLSsJLnVsZWIxMjggMHgxCSMgRFdfQVRfZnJhbWVfYmFzZQotKwku Ynl0ZQkweDljCSMgRFdfT1BfY2FsbF9mcmFtZV9jZmEKLSsJCQkjIERXX0FUX0dOVV9hbGxfY2Fs bF9zaXRlcwotK2RpZTRlOgotKwkudWxlYjEyOCAweDMJIyAoRElFICgweDRlKSBEV19UQUdfZm9y bWFsX3BhcmFtZXRlcikKLSsJLmxvbmcJLkxBU0YwCSMgRFdfQVRfbmFtZTogImFyZ2MiCi0rCS5i eXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5jKQot KwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2xpbmUKLSsJLmxvbmcJZGllNmItLkxkZWJ1Z19pbmZv MAkjIERXX0FUX3R5cGUKLSsjaWYgMAotKwkudWxlYjEyOCAweDIJIyBEV19BVF9sb2NhdGlvbgot KwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKLSsJLnNsZWIxMjggLTIwCi0rI2VuZGlmCi0rI2lm IDAKLSsJLnVsZWIxMjggMWYgLSAyZgkjIERXX0FUX2xvY2F0aW9uCi0rMjoKLSsJLmJ5dGUJMHgw MwkjIERXX09QX2FkZHIKLSsJLnF1YWQgMAotKzE6Ci0rI2VuZGlmCi0rI2lmIDEKLSsJLnVsZWIx MjggMWYgLSAyZgkjIERXX0FUX2xvY2F0aW9uCi0rMjoKLSsJLmJ5dGUJMHgxMwkjIERXX09QX2Ry b3AKLSsJLnF1YWQgMAotKzE6Ci0rI2VuZGlmCi0rZGllNWM6Ci0rCS51bGViMTI4IDB4MwkjIChE SUUgKDB4NWMpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQotKwkubG9uZwkuTEFTRjEJIyBEV19B VF9uYW1lOiAiYXJndiIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChweS1mcmFtZWZp bHRlci1pbnZhbGlkYXJnLmMpCi0rCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfbGluZQotKwkubG9u ZwlkaWU3Mi0uTGRlYnVnX2luZm8wCSMgRFdfQVRfdHlwZQotKwkudWxlYjEyOCAweDIJIyBEV19B VF9sb2NhdGlvbgotKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKLSsJLnNsZWIxMjggLTMyCi0r CS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4MmQKLStkaWU2YjoKLSsJLnVsZWIx MjggMHg0CSMgKERJRSAoMHg2YikgRFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5dGUJMHg0CSMgRFdf QVRfYnl0ZV9zaXplCi0rCS5ieXRlCTB4NQkjIERXX0FUX2VuY29kaW5nCi0rCS5hc2NpaSAiaW50 XDAiCSMgRFdfQVRfbmFtZQotK2RpZTcyOgotKwkudWxlYjEyOCAweDUJIyAoRElFICgweDcyKSBE V19UQUdfcG9pbnRlcl90eXBlKQotKwkuYnl0ZQkweDgJIyBEV19BVF9ieXRlX3NpemUKLSsJLmxv bmcJZGllNzgtLkxkZWJ1Z19pbmZvMAkjIERXX0FUX3R5cGUKLStkaWU3ODoKLSsJLnVsZWIxMjgg MHg1CSMgKERJRSAoMHg3OCkgRFdfVEFHX3BvaW50ZXJfdHlwZSkKLSsJLmJ5dGUJMHg4CSMgRFdf QVRfYnl0ZV9zaXplCi0rCS5sb25nCWRpZTdlLS5MZGVidWdfaW5mbzAJIyBEV19BVF90eXBlCi0r ZGllN2U6Ci0rCS51bGViMTI4IDB4NgkjIChESUUgKDB4N2UpIERXX1RBR19iYXNlX3R5cGUpCi0r CS5ieXRlCTB4MQkjIERXX0FUX2J5dGVfc2l6ZQotKwkuYnl0ZQkweDYJIyBEV19BVF9lbmNvZGlu ZwotKwkubG9uZwkuTEFTRjIJIyBEV19BVF9uYW1lOiAiY2hhciIKLSsJLmJ5dGUJMAkjIGVuZCBv ZiBjaGlsZHJlbiBvZiBESUUgMHhiCi0rLkxlOgotKwkuc2VjdGlvbgkuZGVidWdfYWJicmV2LCIi LEBwcm9nYml0cwotKy5MZGVidWdfYWJicmV2MDoKLSsJLnVsZWIxMjggMHgxCSMgKGFiYnJldiBj b2RlKQotKwkudWxlYjEyOCAweDExCSMgKFRBRzogRFdfVEFHX2NvbXBpbGVfdW5pdCkKLSsJLmJ5 dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCi0rCS51bGViMTI4IDB4MjUJIyAoRFdfQVRfcHJvZHVj ZXIpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4MTMJIyAo RFdfQVRfbGFuZ3VhZ2UpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxl YjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkK LSsJLnVsZWIxMjggMHgxYgkjIChEV19BVF9jb21wX2RpcikKLSsJLnVsZWIxMjggMHhlCSMgKERX X0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCi0rCS51bGViMTI4 IDB4MQkjIChEV19GT1JNX2FkZHIpCi0rCS51bGViMTI4IDB4MTIJIyAoRFdfQVRfaGlnaF9wYykK LSsJLnVsZWIxMjggMHg3CSMgKERXX0ZPUk1fZGF0YTgpCi0rCS51bGViMTI4IDB4MTAJIyAoRFdf QVRfc3RtdF9saXN0KQotKwkudWxlYjEyOCAweDE3CSMgKERXX0ZPUk1fc2VjX29mZnNldCkKLSsJ LmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4MgkjIChhYmJyZXYgY29kZSkKLSsJLnVs ZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQotKwkuYnl0ZQkweDEJIyBEV19j aGlsZHJlbl95ZXMKLSsJLnVsZWIxMjggMHgzZgkjIChEV19BVF9leHRlcm5hbCkKLSsJLnVsZWIx MjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHgzCSMgKERXX0FU X25hbWUpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4M2EJ IyAoRFdfQVRfZGVjbF9maWxlKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJ LnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCi0rCS51bGViMTI4IDB4YgkjIChEV19G T1JNX2RhdGExKQotKwkudWxlYjEyOCAweDI3CSMgKERXX0FUX3Byb3RvdHlwZWQpCi0rCS51bGVi MTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4NDkJIyAoRFdf QVRfdHlwZSkKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0rCS51bGViMTI4IDB4 MTEJIyAoRFdfQVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQotKwku dWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCi0rCS51bGViMTI4IDB4NwkjIChEV19GT1JN X2RhdGE4KQotKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCi0rCS51bGViMTI4 IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQotKwkudWxlYjEyOCAweDIxMTcJIyAoRFdfQVRfR05V X2FsbF9jYWxsX3NpdGVzKQotKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50 KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHgzCSMgKGFiYnJldiBjb2RlKQot KwkudWxlYjEyOCAweDUJIyAoVEFHOiBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKLSsJLmJ5dGUJ MAkjIERXX2NoaWxkcmVuX25vCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQotKwkudWxl YjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xf ZmlsZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2IJ IyAoRFdfQVRfZGVjbF9saW5lKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJ LnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1f cmVmNCkKLSsJLnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9uKQotKwkudWxlYjEyOCAweDE4 CSMgKERXX0ZPUk1fZXhwcmxvYykKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4 NAkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgyNAkjIChUQUc6IERXX1RBR19iYXNlX3R5 cGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweGIJIyAoRFdfQVRf Ynl0ZV9zaXplKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjgg MHgzZQkjIChEV19BVF9lbmNvZGluZykKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEp Ci0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQotKwkudWxlYjEyOCAweDgJIyAoRFdfRk9S TV9zdHJpbmcpCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkudWxlYjEyOCAweDUJIyAoYWJicmV2 IGNvZGUpCi0rCS51bGViMTI4IDB4ZgkjIChUQUc6IERXX1RBR19wb2ludGVyX3R5cGUpCi0rCS5i eXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9zaXpl KQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHg0OQkjIChE V19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLmJ5dGUJMAot KwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4NgkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgy NAkjIChUQUc6IERXX1RBR19iYXNlX3R5cGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwot KwkudWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9zaXplKQotKwkudWxlYjEyOCAweGIJIyAoRFdf Rk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzZQkjIChEV19BVF9lbmNvZGluZykKLSsJLnVsZWIx MjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQot KwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJ LmJ5dGUJMAotKwkuc2VjdGlvbgkuZGVidWdfYXJhbmdlcywiIixAcHJvZ2JpdHMKLSsJLmxvbmcJ MHgyYwkjIExlbmd0aCBvZiBBZGRyZXNzIFJhbmdlcyBJbmZvCi0rCS52YWx1ZQkweDIJIyBEV0FS RiBWZXJzaW9uCi0rCS5sb25nCS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2YgQ29tcGlsYXRpb24g VW5pdCBJbmZvCi0rCS5ieXRlCTB4OAkjIFNpemUgb2YgQWRkcmVzcwotKwkuYnl0ZQkwCSMgU2l6 ZSBvZiBTZWdtZW50IERlc2NyaXB0b3IKLSsJLnZhbHVlCTAJIyBQYWQgdG8gMTYgYnl0ZSBib3Vu ZGFyeQotKwkudmFsdWUJMAotKwkucXVhZAkuTHRleHQwCSMgQWRkcmVzcwotKwkucXVhZAkuTGV0 ZXh0MC0uTHRleHQwCSMgTGVuZ3RoCi0rCS5xdWFkCTAKLSsJLnF1YWQJMAotKwkuc2VjdGlvbgku ZGVidWdfbGluZSwiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2xpbmUwOgotKwkuc2VjdGlvbgkuZGVi dWdfc3RyLCJNUyIsQHByb2diaXRzLDEKLSsuTEFTRjE6Ci0rCS5zdHJpbmcJImFyZ3YiCi0rLkxB U0Y0OgotKwkuc3RyaW5nCSJweS1mcmFtZWZpbHRlci1pbnZhbGlkYXJnLmMiCi0rLkxBU0Y1Ogot Kwkuc3RyaW5nCSIiCi0rLkxBU0YwOgotKwkuc3RyaW5nCSJhcmdjIgotKy5MQVNGMzoKLSsJLnN0 cmluZwkiR05VIEMgNC45LjEgMjAxNDA4MTMgKFJlZCBIYXQgNC45LjEtNykgLW10dW5lPWdlbmVy aWMgLW1hcmNoPXg4Ni02NCAtZyIKLSsuTEFTRjY6Ci0rCS5zdHJpbmcJIm1haW4iCi0rLkxBU0Yy OgotKwkuc3RyaW5nCSJjaGFyIgotKwkuaWRlbnQJIkdDQzogKEdOVSkgNC45LjEgMjAxNDA4MTMg KFJlZCBIYXQgNC45LjEtNykiCi0rCS5zZWN0aW9uCS5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2Jp dHMKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWVmaWx0ZXIt aW52YWxpZGFyZy1nZGIucHkuaW4gYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWVm aWx0ZXItaW52YWxpZGFyZy1nZGIucHkuaW4KLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAw MDAwMDAwLi4xZmE2ZmZjCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy1nZGIucHkuaW4KLUBAIC0wLDAgKzEsNDgg QEAKLSsjIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K LSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBUaGlzIGZpbGUgaXMgcGFy dCBvZiB0aGUgR0RCIHRlc3RzdWl0ZS4gIEl0IHRlc3RzIFB5dGhvbi1iYXNlZAotKyMgZnJhbWUt ZmlsdGVycy4KLStpbXBvcnQgZ2RiCi0raW1wb3J0IGl0ZXJ0b29scwotK2Zyb20gZ2RiLkZyYW1l RGVjb3JhdG9yIGltcG9ydCBGcmFtZURlY29yYXRvcgotKwotKwotK2NsYXNzIEZyYW1lT2JqRmls ZSAoKToKLSsKLSsgICAgZGVmIF9faW5pdF9fIChzZWxmKToKLSsgICAgICAgIHNlbGYubmFtZSA9 ICJGaWx0ZXIxIgotKyAgICAgICAgc2VsZi5wcmlvcml0eSA9IDEKLSsgICAgICAgIHNlbGYuZW5h YmxlZCA9IEZhbHNlCi0rICAgICAgICBnZGIuY3VycmVudF9wcm9nc3BhY2UoKS5mcmFtZV9maWx0 ZXJzIFsiUHJvZ3NwYWNlIiArIHNlbGYubmFtZV0gPSBzZWxmCi0rICAgICAgICBnZGIuY3VycmVu dF9vYmpmaWxlKCkuZnJhbWVfZmlsdGVycyBbIk9iamVjdEZpbGUiICsgc2VsZi5uYW1lXSA9IHNl bGYKLSsKLSsgICAgZGVmIGZpbHRlciAoc2VsZiwgZnJhbWVfaXRlcik6Ci0rICAgICAgICByZXR1 cm4gZnJhbWVfaXRlcgotKwotK2NsYXNzIEZyYW1lT2JqRmlsZTIgKCk6Ci0rCi0rICAgIGRlZiBf X2luaXRfXyAoc2VsZik6Ci0rICAgICAgICBzZWxmLm5hbWUgPSAiRmlsdGVyMiIKLSsgICAgICAg IHNlbGYucHJpb3JpdHkgPSAxMDAKLSsgICAgICAgIHNlbGYuZW5hYmxlZCA9IFRydWUKLSsgICAg ICAgIGdkYi5jdXJyZW50X3Byb2dzcGFjZSgpLmZyYW1lX2ZpbHRlcnMgWyJQcm9nc3BhY2UiICsg c2VsZi5uYW1lXSA9IHNlbGYKLSsgICAgICAgIGdkYi5jdXJyZW50X29iamZpbGUoKS5mcmFtZV9m aWx0ZXJzIFsiT2JqZWN0RmlsZSIgKyBzZWxmLm5hbWVdID0gc2VsZgotKwotKyAgICBkZWYgZmls dGVyIChzZWxmLCBmcmFtZV9pdGVyKToKLSsgICAgICAgIHJldHVybiBmcmFtZV9pdGVyCi0rCi0r RnJhbWVPYmpGaWxlKCkKLStGcmFtZU9iakZpbGUyKCkKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5leHAKLW5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5mNzBkMTZlCi0tLS0gL2Rldi9udWxsCi0rKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5leHAKLUBA IC0wLDAgKzEsNjcgQEAKLSsjIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rbG9hZF9s aWIgZ2RiLXB5dGhvbi5leHAKLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSBhbWQ2NC1weS1mcmFtZWZp bHRlci1pbnZhbGlkYXJnLlMKLSsKLStpZiB7ICFbaXN0YXJnZXQgeDg2XzY0LSotKiBdIHx8ICFb aXNfbHA2NF90YXJnZXRdIH0gewotKyAgICB2ZXJib3NlICJTa2lwcGluZyBweS1mcmFtZWZpbHRl ci1pbnZhbGlkYXJnLiIKLSsgICAgcmV0dXJuCi0rfQotKwotKyMgV2UgY2Fubm90IHVzZSBwcmVw YXJlX2Zvcl90ZXN0aW5nIGFzIHdlIGhhdmUgdG8gc2V0IHRoZSBzYWZlLXBhdGNoCi0rIyB0byBj aGVjayBvYmpmaWxlIGFuZCBwcm9nc3BhY2UgcHJpbnRlcnMuCi0raWYge1tidWlsZF9leGVjdXRh YmxlICR0ZXN0ZmlsZS5leHAgJHRlc3RmaWxlICRzcmNmaWxlIHt9XSA9PSAtMX0gewotKyAgICBy ZXR1cm4gLTEKLSt9Ci0rCi0rIyBTdGFydCB3aXRoIGEgZnJlc2ggZ2RiLgotK2dkYl9leGl0Ci0r Z2RiX3N0YXJ0Ci0rCi0rIyBTa2lwIGFsbCB0ZXN0cyBpZiBQeXRob24gc2NyaXB0aW5nIGlzIG5v dCBlbmFibGVkLgotK2lmIHsgW3NraXBfcHl0aG9uX3Rlc3RzXSB9IHsgY29udGludWUgfQotKwot KyMgTWFrZSB0aGUgLWdkYi5weSBzY3JpcHQgYXZhaWxhYmxlIHRvIGdkYiwgaXQgaXMgYXV0b21h Z2ljYWxseSBsb2FkZWQgYnkgZ2RiLgotKyMgQ2FyZSBpcyB0YWtlbiB0byBwdXQgaXQgaW4gdGhl IHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBiaW5hcnkgc28gdGhhdAotKyMgZ2RiIHdpbGwgZmluZCBp dC4KLStzZXQgcmVtb3RlX29ial9weXRob25fZmlsZSBcCi0rICAgIFtyZW1vdGVfZG93bmxvYWQg XAotKwkgaG9zdCAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LWdkYi5weS5pbiBcCi0r CSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHt0ZXN0ZmlsZX0tZ2RiLnB5XV0KLSsKLStnZGJfcmVp bml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKLStnZGJfdGVzdF9ub19vdXRwdXQgInNldCBh dXRvLWxvYWQgc2FmZS1wYXRoICR7cmVtb3RlX29ial9weXRob25fZmlsZX0iIFwKLSsgICAgInNl dCBhdXRvLWxvYWQgc2FmZS1wYXRoIgotK2dkYl9sb2FkICR7YmluZmlsZX0KLSsjIFZlcmlmeSBn ZGIgbG9hZGVkIHRoZSBzY3JpcHQuCi0rZ2RiX3Rlc3QgImluZm8gYXV0by1sb2FkIHB5dGhvbi1z Y3JpcHRzIiAiWWVzLiovJHt0ZXN0ZmlsZX0tZ2RiLnB5LioiIFwKLSsgICAgIlRlc3QgYXV0by1s b2FkIGhhZCBsb2FkZWQgcHl0aG9uIHNjcmlwdHMiCi0rCi0raWYgIVtydW50b19tYWluXSB0aGVu IHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCIKLSsgICAgcmV0dXJu Ci0rfQotK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHB5dGhvbiBwcmludC1zdGFjayBmdWxsIiBc Ci0rICAgICJTZXQgcHl0aG9uIHByaW50LXN0YWNrIHRvIGZ1bGwiCi0rCi0rIyBMb2FkIGdsb2Jh bCBmcmFtZS1maWx0ZXJzCi0rc2V0IHJlbW90ZV9weXRob25fZmlsZSBbZ2RiX3JlbW90ZV9kb3du bG9hZCBob3N0IFwKLSsJCQkgICAgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS5weV0K LStnZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiBleGVjIChvcGVuICgnJHtyZW1vdGVfcHl0aG9u X2ZpbGV9JykucmVhZCAoKSkiIFwKLSsgICAgIkxvYWQgcHl0aG9uIGZpbGUiCi0rCi0rZ2RiX3Rl c3QgImJ0IiAiIGluIG5pYW0gXFwoYXJnYz08ZXJyb3IgcmVhZGluZyB2YXJpYWJsZTogZHdhcmYg ZXhwcmVzc2lvbiBzdGFjayB1bmRlcmZsb3c+LCBhcmd2PTB4XFswLTlhLWZcXStcXCkgYXQgcHkt ZnJhbWVmaWx0ZXItaW52YWxpZGFyZy5jOlxbMC05XF0rIiAiYnQgZnVsbCB3aXRoIGZpbHRlcnMi Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lZmlsdGVyLWlu dmFsaWRhcmcucHkgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWVmaWx0ZXItaW52 YWxpZGFyZy5weQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmQ1ZjkyY2IK LS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZWZp bHRlci1pbnZhbGlkYXJnLnB5Ci1AQCAtMCwwICsxLDU5IEBACi0rIyBDb3B5cmlnaHQgKEMpIDIw MTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgotKwotKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdEQiB0ZXN0c3VpdGUu ICBJdCB0ZXN0cyBQeXRob24tYmFzZWQKLSsjIGZyYW1lLWZpbHRlcnMuCi0raW1wb3J0IGdkYgot K2ltcG9ydCBpdGVydG9vbHMKLStmcm9tIGdkYi5GcmFtZURlY29yYXRvciBpbXBvcnQgRnJhbWVE ZWNvcmF0b3IKLStpbXBvcnQgY29weQotKwotK2NsYXNzIFJldmVyc2VfRnVuY3Rpb24gKEZyYW1l RGVjb3JhdG9yKToKLSsKLSsgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZvYmopOgotKyAgICAgICAg c3VwZXIoUmV2ZXJzZV9GdW5jdGlvbiwgc2VsZikuX19pbml0X18oZm9iaikKLSsgICAgICAgIHNl bGYuZm9iaiA9IGZvYmoKLSsKLSsgICAgZGVmIGZ1bmN0aW9uIChzZWxmKToKLSsgICAgICAgIGZu YW1lID0gc3RyIChzZWxmLmZvYmouZnVuY3Rpb24oKSkKLSsgICAgICAgIGlmIChmbmFtZSA9PSBO b25lIG9yIGZuYW1lID09ICIiKToKLSsgICAgICAgICAgICByZXR1cm4gTm9uZQotKyAgICAgICAg aWYgZm5hbWUgPT0gJ2VuZF9mdW5jJzoKLSsgICAgICAgICAgICBleHRyYSA9IHNlbGYuZm9iai5p bmZlcmlvcl9mcmFtZSgpLnJlYWRfdmFyKCdzdHInKS5zdHJpbmcoKQotKyAgICAgICAgZWxzZToK LSsgICAgICAgICAgICBleHRyYSA9ICcnCi0rICAgICAgICBmbmFtZSA9IGZuYW1lWzo6LTFdICsg ZXh0cmEKLSsgICAgICAgIHJldHVybiBmbmFtZQotKwotK2NsYXNzIEZyYW1lRmlsdGVyICgpOgot KwotKyAgICBkZWYgX19pbml0X18gKHNlbGYpOgotKyAgICAgICAgc2VsZi5uYW1lID0gIlJldmVy c2UiCi0rICAgICAgICBzZWxmLnByaW9yaXR5ID0gMTAwCi0rICAgICAgICBzZWxmLmVuYWJsZWQg PSBUcnVlCi0rICAgICAgICBnZGIuZnJhbWVfZmlsdGVycyBbc2VsZi5uYW1lXSA9IHNlbGYKLSsK LSsgICAgZGVmIGZpbHRlciAoc2VsZiwgZnJhbWVfaXRlcik6Ci0rICAgICAgICAjIFB5dGhvbiAz LnggbW92ZWQgdGhlIGl0ZXJ0b29scy5pbWFwIGZ1bmN0aW9uYWxpdHkgdG8gbWFwKCksCi0rICAg ICAgICAjIHNvIGNoZWNrIGlmIGl0IGlzIGF2YWlsYWJsZS4KLSsgICAgICAgIGlmIGhhc2F0dHIo aXRlcnRvb2xzLCAiaW1hcCIpOgotKyAgICAgICAgICAgIGZyYW1lX2l0ZXIgPSBpdGVydG9vbHMu aW1hcCAoUmV2ZXJzZV9GdW5jdGlvbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZyYW1lX2l0ZXIpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIGZyYW1l X2l0ZXIgPSBtYXAoUmV2ZXJzZV9GdW5jdGlvbiwgZnJhbWVfaXRlcikKLSsKLSsgICAgICAgIHJl dHVybiBmcmFtZV9pdGVyCi0rCi0rRnJhbWVGaWx0ZXIoKQotCi0tLWQ2R200RWRjYWR6QmpkTkQt LQotCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggYjc4MzZiZS4uZTQ4ODA1 ZCAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDIgKzEsMiBAQAogNDk4 MTMwN2FhOTYxOWJiZWM1YjczMjYxZTRlNDFjOGQgIGdkYi1saWJzdGRjKystdjMtcHl0aG9uLXIx NTU5NzgudGFyLmJ6MgotMzhkODE2ZDY0MTA5M2RiMmUxM2JhMjg0ZTI2MDkwYjQgIGdkYi03Ljgu dGFyLmd6Cis4MDcyYmU4N2E5NGJlMDkzNmJjM2I0YjY5NDFiMDg2MiAgZ2RiLTcuOC4xLnRhci54 ego=