From: Bjorn Munch Date: January 19 2011 10:21am Subject: bzr commit into mysql-5.5-mtr branch (bjorn.munch:3153) List-Archive: http://lists.mysql.com/commits/129154 Message-Id: <201101191021.p0JALTe8024974@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 I0F0IGZpbGU6Ly8vaG9tZS9ibTEzNjgwMS9teS9tdHItNTUvIGJhc2VkIG9uIHJldmlkOmJqb3Ju Lm11bmNoQG9yYWNsZS5jb20tMjAxMTAxMTgxMTM5MjMtcXl1cXV3Mm42dnJxcGt5MQoKIDMxNTMg Qmpvcm4gTXVuY2gJMjAxMS0wMS0xOSBbbWVyZ2VdCiAgICAgIG1lcmdlIGZyb20gNS41IG1haW4K CiAgICBhZGRlZDoKICAgICAgbXlzcWwtdGVzdC9pbmNsdWRlL3Jlc3RhcnRfc2xhdmVfc3FsLmlu YwogICAgICBteXNxbC10ZXN0L2luY2x1ZGUvcnBsX2Nvbm5lY3Rpb25fbWFzdGVyLmluYwogICAg ICBteXNxbC10ZXN0L2luY2x1ZGUvcnBsX2Nvbm5lY3Rpb25fc2xhdmUuaW5jCiAgICAgIG15c3Fs LXRlc3QvaW5jbHVkZS9ycGxfY29ubmVjdGlvbl9zbGF2ZTEuaW5jCiAgICBtb2RpZmllZDoKICAg ICAgY21ha2UvY2hhcmFjdGVyX3NldHMuY21ha2UKICAgICAgY29uZmlnLmguY21ha2UKICAgICAg ZXh0cmEvbXlfcHJpbnRfZGVmYXVsdHMuYwogICAgICBpbmNsdWRlL215X3N5cy5oCiAgICAgIG15 c3FsLXRlc3QvY29sbGVjdGlvbnMvZGVmYXVsdC5leHBlcmltZW50YWwKICAgICAgbXlzcWwtdGVz dC9yL2N0eXBlX21hbnkucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9mdW5jX2xpa2UucmVzdWx0 CiAgICAgIG15c3FsLXRlc3Qvci9zaG93X2NoZWNrLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3Iv eG1sLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9zdG9wX3NsYXZlLnJl c3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9jcm9zc192ZXJzaW9uLnRlc3QK ICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfcGFja2V0LnRlc3QKICAgICAgbXlzcWwt dGVzdC9zdWl0ZS9ycGwvdC9ycGxfc3RvcF9zbGF2ZS50ZXN0CiAgICAgIG15c3FsLXRlc3Qvc3Vp dGUvc3lzX3ZhcnMvci9pbm5vZGJfbWF4X2RpcnR5X3BhZ2VzX3BjdF9mdW5jLnJlc3VsdAogICAg ICBteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3QvaW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3Rf ZnVuYy50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9jdHlwZV9tYW55LnRlc3QKICAgICAgbXlzcWwt dGVzdC90L2Z1bmNfbGlrZS50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9zaG93X2NoZWNrLnRlc3QK ICAgICAgbXlzcWwtdGVzdC90L3htbC50ZXN0CiAgICAgIG15c3lzL2RlZmF1bHQuYwogICAgICBt eXN5cy9teV9nZXRvcHQuYwogICAgICBzcWwtY29tbW9uL2NsaWVudC5jCiAgICAgIHNxbC9pdGVt X3N0cmZ1bmMuY2MKICAgICAgc3FsL2l0ZW1fc3RyZnVuYy5oCiAgICAgIHNxbC9pdGVtX3N1bS5o CiAgICAgIHNxbC9teXNxbGQuY2MKICAgICAgc3FsL3NsYXZlLmNjCiAgICAgIHNxbC9zcWxfcmVw bC5jYwogICAgICBzdG9yYWdlL25kYi90ZXN0L3J1bi10ZXN0L3NldHVwLmNwcAogICAgICBzdHJp bmdzL3htbC5jCj09PSBtb2RpZmllZCBmaWxlICdjbWFrZS9jaGFyYWN0ZXJfc2V0cy5jbWFrZScK LS0tIGEvY21ha2UvY2hhcmFjdGVyX3NldHMuY21ha2UJMjAxMC0wMi0yNSAwODoxNTo0NiArMDAw MAorKysgYi9jbWFrZS9jaGFyYWN0ZXJfc2V0cy5jbWFrZQkyMDExLTAxLTA0IDEwOjIzOjQ1ICsw MDAwCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMDkgU3VuIE1pY3Jvc3lzdGVt cywgSW5jCisjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMgYWZm aWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgCiAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAjIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CkBAIC0xMywxNyArMTMsMTkgQEAKICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICMgRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EgCiAK LSNDaGFyc2V0cyBhbmQgY29sbGF0aW9ucworIyBDaGFyc2V0cyBhbmQgY29sbGF0aW9ucwogSUYo Tk9UIERFRkFVTFRfQ0hBUlNFVCkKLVNFVChERUZBVUxUX0NIQVJTRVQgImxhdGluMSIpCisgIFNF VChERUZBVUxUX0NIQVJTRVQgImxhdGluMSIpCiBFTkRJRigpCiAKLUlGKE5PVCBERUZBVUxUX0NP TExBVElPTlMpCi1TRVQoREVGQVVMVF9DT0xMQVRJT04gImxhdGluMV9zd2VkaXNoX2NpIikKK0lG KE5PVCBERUZBVUxUX0NPTExBVElPTikKKyAgU0VUKERFRkFVTFRfQ09MTEFUSU9OICJsYXRpbjFf c3dlZGlzaF9jaSIpCiBFTkRJRigpCiAKIFNFVChDSEFSU0VUUyAke0RFRkFVTFRfQ0hBUlNFVH0g bGF0aW4xIHV0ZjggdXRmOG1iNCkKLVNFVChDSEFSU0VUU19DT01QTEVYIGJpZzUgY3AxMjUwIGNw OTMyIGV1Y2pwbXMgZXVja3IgZ2IyMzEyIGdiayBsYXRpbjEgbGF0aW4yIHNqaXMgdGlzNjIwIHVj czIgdWppcyB1dGY4IHV0ZjhtYjQgdXRmMTYgdXRmMzIpCitTRVQoQ0hBUlNFVFNfQ09NUExFWAor ICBiaWc1IGNwMTI1MCBjcDkzMiBldWNqcG1zIGV1Y2tyIGdiMjMxMiBnYmsgbGF0aW4xIGxhdGlu MgorICBzamlzIHRpczYyMCB1Y3MyIHVqaXMgdXRmOCB1dGY4bWI0IHV0ZjE2IHV0ZjMyKQogCiBT RVQoQ0hBUlNFVFNfQVZBSUxBQkxFIAogYmluYXJ5IGFybXNjaWk4IGFzY2lpIGJpZzUgY3AxMjUw IGNwMTI1MSBjcDEyNTYgY3AxMjU3Cgo9PT0gbW9kaWZpZWQgZmlsZSAnY29uZmlnLmguY21ha2Un Ci0tLSBhL2NvbmZpZy5oLmNtYWtlCTIwMTEtMDEtMTEgMDk6MDc6MzcgKzAwMDAKKysrIGIvY29u ZmlnLmguY21ha2UJMjAxMS0wMS0wNCAxMDoyMzo0NSArMDAwMApAQCAtMSw2ICsxLDUgQEAKLS8q IENvcHlyaWdodCAoQykgMjAwOSwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4g QWxsIHJpZ2h0cwotICAgcmVzZXJ2ZWQKLQorLyogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDExLCBP cmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIAogIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2 ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCkBAIC01MTYsOCArNTE1LDggQEAKICNjbWFrZWRlZmlu ZSBDWUJPWlUgMQogCiAvKiBDaGFyYWN0ZXIgc2V0cyBhbmQgY29sbGF0aW9ucyAqLwotI2NtYWtl ZGVmaW5lIE1ZU1FMX0RFRkFVTFRfQ0hBUlNFVF9OQU1FICJsYXRpbjEiCi0jY21ha2VkZWZpbmUg TVlTUUxfREVGQVVMVF9DT0xMQVRJT05fTkFNRSAibGF0aW4xX3N3ZWRpc2hfY2kiCisjY21ha2Vk ZWZpbmUgTVlTUUxfREVGQVVMVF9DSEFSU0VUX05BTUUgIkBNWVNRTF9ERUZBVUxUX0NIQVJTRVRf TkFNRUAiCisjY21ha2VkZWZpbmUgTVlTUUxfREVGQVVMVF9DT0xMQVRJT05fTkFNRSAiQE1ZU1FM X0RFRkFVTFRfQ09MTEFUSU9OX05BTUVAIgogCiAjY21ha2VkZWZpbmUgVVNFX01CIDEKICNjbWFr ZWRlZmluZSBVU0VfTUJfSURFTlQgMQoKPT09IG1vZGlmaWVkIGZpbGUgJ2V4dHJhL215X3ByaW50 X2RlZmF1bHRzLmMnCi0tLSBhL2V4dHJhL215X3ByaW50X2RlZmF1bHRzLmMJMjAxMC0wNy0xNSAx MToxMzozMCArMDAwMAorKysgYi9leHRyYS9teV9wcmludF9kZWZhdWx0cy5jCTIwMTEtMDEtMTcg MDc6NDQ6MzcgKzAwMDAKQEAgLTE5Myw3ICsxOTMsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAgIH0KIAogICBmb3IgKGFyZ3VtZW50PSBhcmd1bWVudHMrMSA7ICphcmd1bWVu dCA7IGFyZ3VtZW50KyspCi0gICAgaWYgKCphcmd1bWVudCAhPSBhcmdzX3NlcGFyYXRvcikgICAg ICAgICAgIC8qIHNraXAgYXJndW1lbnRzIHNlcGFyYXRvciAqLworICAgIGlmICghbXlfZ2V0b3B0 X2lzX2FyZ3Nfc2VwYXJhdG9yKCphcmd1bWVudCkpICAgICAgICAgICAvKiBza2lwIGFyZ3VtZW50 cyBzZXBhcmF0b3IgKi8KICAgICAgIHB1dHMoKmFyZ3VtZW50KTsKICAgbXlfZnJlZShsb2FkX2Rl ZmF1bHRfZ3JvdXBzKTsKICAgZnJlZV9kZWZhdWx0cyhhcmd1bWVudHMpOwoKPT09IG1vZGlmaWVk IGZpbGUgJ2luY2x1ZGUvbXlfc3lzLmgnCi0tLSBhL2luY2x1ZGUvbXlfc3lzLmgJMjAxMS0wMS0x MSAwOTowNzozNyArMDAwMAorKysgYi9pbmNsdWRlL215X3N5cy5oCTIwMTEtMDEtMTcgMDc6NDQ6 MzcgKzAwMDAKQEAgLTgxNyw3ICs4MTcsOCBAQCBleHRlcm4gdm9pZCAqbWVtZHVwX3Jvb3QoTUVN X1JPT1QgKnJvb3QsCiBleHRlcm4gaW50IGdldF9kZWZhdWx0c19vcHRpb25zKGludCBhcmdjLCBj aGFyICoqYXJndiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKmRlZmF1 bHRzLCBjaGFyICoqZXh0cmFfZGVmYXVsdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNoYXIgKipncm91cF9zdWZmaXgpOwotZXh0ZXJuIGNvbnN0IGNoYXIgKmFyZ3Nfc2VwYXJh dG9yOworZXh0ZXJuIG15X2Jvb2wgbXlfZ2V0b3B0X3VzZV9hcmdzX3NlcGFyYXRvcjsKK2V4dGVy biBteV9ib29sIG15X2dldG9wdF9pc19hcmdzX3NlcGFyYXRvcihjb25zdCBjaGFyKiBhcmcpOwog ZXh0ZXJuIGludCBteV9sb2FkX2RlZmF1bHRzKGNvbnN0IGNoYXIgKmNvbmZfZmlsZSwgY29uc3Qg Y2hhciAqKmdyb3VwcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmFyZ2MsIGNo YXIgKioqYXJndiwgY29uc3QgY2hhciAqKiopOwogZXh0ZXJuIGludCBsb2FkX2RlZmF1bHRzKGNv bnN0IGNoYXIgKmNvbmZfZmlsZSwgY29uc3QgY2hhciAqKmdyb3VwcywKCj09PSBtb2RpZmllZCBm aWxlICdteXNxbC10ZXN0L2NvbGxlY3Rpb25zL2RlZmF1bHQuZXhwZXJpbWVudGFsJwotLS0gYS9t eXNxbC10ZXN0L2NvbGxlY3Rpb25zL2RlZmF1bHQuZXhwZXJpbWVudGFsCTIwMTEtMDEtMTQgMTI6 NTk6MjMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9jb2xsZWN0aW9ucy9kZWZhdWx0LmV4cGVyaW1l bnRhbAkyMDExLTAxLTE4IDE3OjUxOjM5ICswMDAwCkBAIC0xMCw3ICsxMCw2IEBAIGlubm9kYi5p bm5vZGJfaW5mb3JtYXRpb25fc2NoZW1hCiBtYWluLmZ1bmNfbWF0aCBAZnJlZWJzZCAgICAgICAg ICAgICAgICAgICMgQnVnIzQzMDIwIDIwMTAtMDUtMDQgYWxpayBtYWluLmZ1bmNfbWF0aCBmYWls cyBvbiBGcmVlQlNEIGluIFBCMgogbWFpbi5naXMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIEJ1ZyM1MjIwOCAyMDEwLTExLTI0IGFsaWsgZ2lzIGZhaWxzIG9uIHNvbWUgcGxhdGZv cm1zIChTb2xhcmlzLCBIUC1VWCwgTGludXgpCiBtYWluLmdpcy1ydHJlZSBAZnJlZWJzZCAgICAg ICAgICAgICAgICAgICMgQnVnIzM4OTY1IDIwMTAtMDUtMDQgYWxpayB0ZXN0IGNhc2VzIGdpcy1y dHJlZSwgdHlwZV9mbG9hdCwgdHlwZV9uZXdkZWNpbWFsIGZhaWwgaW4gZW1iZWRkZWQgc2VydmVy Ci1tYWluLmluZm9ybWF0aW9uX3NjaGVtYSAgICAgICAgICAgICAgICAgICMgQnVnIzQ3NDQ5IDIw MDktMDktMTkgYWxpayBtYWluLmluZm9ybWF0aW9uX3NjaGVtYSBhbmQgaW5ub2RiLmlubm9kYl9p bmZvcm1hdGlvbl9zY2hlbWEgZmFpbCBzcG9yYWRpY2FsbHkKIG1haW4ubG9ja19tdWx0aV9idWcz ODQ5OSAgICAgICAgICAgICAgICAgIyBCdWcjNDc0NDggMjAwOS0wOS0xOSBhbGlrIG1haW4ubG9j a19tdWx0aV9idWczODQ5OSB0aW1lcyBvdXQgc3BvcmFkaWNhbGx5CiBtYWluLm91dGZpbGVfbG9h ZGRhdGEgQHNvbGFyaXMgICAgICAgICAgICMgQnVnIzQ2ODk1IDIwMTAtMDEtMjAgYWxpayBUZXN0 ICJvdXRmaWxlX2xvYWRkYXRhIiBmYWlscyAocmVwcm9kdWNpYmxlKQogbWFpbi5zaWduYWxfZGVt bzMgQHNvbGFyaXMgICAgICAgICAgICAgICAjIEJ1ZyM0Nzc5MSAyMDEwLTAxLTIwIGFsaWsgU2V2 ZXJhbCB0ZXN0IGNhc2VzIGZhaWwgb24gU29sYXJpcyB3aXRoIGVycm9yIFRocmVhZCBzdGFjayBv dmVycnVuCgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9pbmNsdWRlL3Jlc3RhcnRfc2xhdmVf c3FsLmluYycKLS0tIGEvbXlzcWwtdGVzdC9pbmNsdWRlL3Jlc3RhcnRfc2xhdmVfc3FsLmluYwkx OTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3QvaW5jbHVkZS9yZXN0YXJ0 X3NsYXZlX3NxbC5pbmMJMjAxMS0wMS0xOCAxNzoyMzo0OSArMDAwMApAQCAtMCwwICsxLDQzIEBA CisjID09PT0gUHVycG9zZSA9PT09CisjCisjIFByb3ZpZGUgYSBlYXJpZXIgd2F5IHRvIHJlc3Rh cnQgU1FMIHRocmVhZCB3aGVuIHlvdSB3YW50IHRvIHN0b3Agc3FsIHRocmVhZAorIyBhbmQgdGhl biBzdGFydCBpdCBpbW1lZGlhdGVseS4KKyMKKyMgU291cmNlcyBzdG9wX3NsYXZlX3NxbC5pbmMg dG8gc3RvcCBTUUwgdGhyZWFkIG9uIHRoZSBjdXJyZW50IGNvbm5lY3Rpb24uCisjIFRoZW4gaXNz dWVzIFNUQVJUIFNMQVZFIFNRTF9USFJFQUQgYW5kIHRoZW4gd2FpdHMgdW50aWwKKyMgdGhlIFNR TCB0aHJlYWRzIGhhdmUgc3RhcnRlZCwgb3IgdW50aWwgYSB0aW1lb3V0IGlzIHJlYWNoZWQuCisj CisjIFBsZWFzZSB1c2UgdGhpcyBpbnN0ZWFkIG9mICdTVE9QfFNUQVJUIFNMQVZFIFNRTF9USFJF QUQnLCB0byByZWR1Y2UgdGhlIHJpc2sgb2YKKyMgdGVzdCBjYXNlIGJ1Z3MuCisjCisjCisjID09 PT0gVXNhZ2UgPT09PQorIworIyBbLS1sZXQgJHNsYXZlX3RpbWVvdXQ9IE5VTUJFUl0KKyMgWy0t bGV0ICRycGxfZGVidWc9IDFdCisjIC0tc291cmNlIGluY2x1ZGUvcmVzdGFydF9zbGF2ZV9zcWwu aW5jCisjCisjIFBhcmFtZXRlcnM6CisjICAgJHNsYXZlX3RpbWVvdXQKKyMgICAgIFNlZSBpbmNs dWRlL3dhaXRfZm9yX3NsYXZlX3BhcmFtLmluYworIworIyAgICRycGxfZGVidWcKKyMgICAgIFNl ZSBpbmNsdWRlL3JwbF9pbml0LmluYworCisKKy0tbGV0ICRpbmNsdWRlX2ZpbGVuYW1lPSByZXN0 YXJ0X3NsYXZlLmluYworLS1zb3VyY2UgaW5jbHVkZS9iZWdpbl9pbmNsdWRlX2ZpbGUuaW5jCisK KworaWYgKCEkcnBsX2RlYnVnKQoreworICAtLWRpc2FibGVfcXVlcnlfbG9nCit9CisKK3NvdXJj ZSBpbmNsdWRlL3N0b3Bfc2xhdmVfc3FsLmluYzsKK1NUQVJUIFNMQVZFIFNRTF9USFJFQUQ7Citz b3VyY2UgaW5jbHVkZS93YWl0X2Zvcl9zbGF2ZV9zcWxfdG9fc3RhcnQuaW5jOworCisKKy0tbGV0 ICRpbmNsdWRlX2ZpbGVuYW1lPSByZXN0YXJ0X3NsYXZlLmluYworLS1zb3VyY2UgaW5jbHVkZS9l bmRfaW5jbHVkZV9maWxlLmluYwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCj09PSBhZGRl ZCBmaWxlICdteXNxbC10ZXN0L2luY2x1ZGUvcnBsX2Nvbm5lY3Rpb25fbWFzdGVyLmluYycKLS0t IGEvbXlzcWwtdGVzdC9pbmNsdWRlL3JwbF9jb25uZWN0aW9uX21hc3Rlci5pbmMJMTk3MC0wMS0w MSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L2luY2x1ZGUvcnBsX2Nvbm5lY3Rpb25f bWFzdGVyLmluYwkyMDExLTAxLTE4IDE3OjIzOjQ5ICswMDAwCkBAIC0wLDAgKzEsMiBAQAorbGV0 ICRycGxfY29ubmVjdGlvbl9uYW1lPSBtYXN0ZXI7Citzb3VyY2UgaW5jbHVkZS9ycGxfY29ubmVj dGlvbi5pbmM7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKPT09IGFkZGVkIGZpbGUgJ215 c3FsLXRlc3QvaW5jbHVkZS9ycGxfY29ubmVjdGlvbl9zbGF2ZS5pbmMnCi0tLSBhL215c3FsLXRl c3QvaW5jbHVkZS9ycGxfY29ubmVjdGlvbl9zbGF2ZS5pbmMJMTk3MC0wMS0wMSAwMDowMDowMCAr MDAwMAorKysgYi9teXNxbC10ZXN0L2luY2x1ZGUvcnBsX2Nvbm5lY3Rpb25fc2xhdmUuaW5jCTIw MTEtMDEtMTggMTc6MjM6NDkgKzAwMDAKQEAgLTAsMCArMSwyIEBACitsZXQgJHJwbF9jb25uZWN0 aW9uX25hbWU9IHNsYXZlOworc291cmNlIGluY2x1ZGUvcnBsX2Nvbm5lY3Rpb24uaW5jOwpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L2luY2x1 ZGUvcnBsX2Nvbm5lY3Rpb25fc2xhdmUxLmluYycKLS0tIGEvbXlzcWwtdGVzdC9pbmNsdWRlL3Jw bF9jb25uZWN0aW9uX3NsYXZlMS5pbmMJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9t eXNxbC10ZXN0L2luY2x1ZGUvcnBsX2Nvbm5lY3Rpb25fc2xhdmUxLmluYwkyMDExLTAxLTE4IDE3 OjIzOjQ5ICswMDAwCkBAIC0wLDAgKzEsMiBAQAorbGV0ICRycGxfY29ubmVjdGlvbl9uYW1lPSBz bGF2ZTE7Citzb3VyY2UgaW5jbHVkZS9ycGxfY29ubmVjdGlvbi5pbmM7ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9jdHlwZV9tYW55 LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL2N0eXBlX21hbnkucmVzdWx0CTIwMTAtMTItMTUg MDk6NTg6MzcgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL2N0eXBlX21hbnkucmVzdWx0CTIwMTEt MDEtMTcgMTI6MjY6MTMgKzAwMDAKQEAgLTE2ODQsNiArMTY4NCwyMSBAQCBBUk1FTklBTiBDQVBJ VCBFQ0gJMgogQVJNRU5JQU4gQ0FQSVQgWkEJMgogRFJPUCBUQUJMRSB0MTsKICMKKyMgU3RhcnQg b2YgNS4xIHRlc3RzCisjCisjCisjIEJ1ZyM1ODM3MSBBc3NlcnRpb24gZmFpbGVkOiAhcy51c2Vz X2J1ZmZlcl9vd25lZF9ieSh0aGlzKSB3aXRoIGZvcm1hdCBzdHJpbmcgZnVuY3Rpb24KKyMKK1NF VCBOQU1FUyBsYXRpbjE7CitETyBDT05WRVJUKENBU1QoU1VCU1RSSU5HX0lOREVYKEZPUk1BVCgx LCcxMTExJyksIEZPUk1BVCgnJywnWnBxJyksMSkgCitBUyBCSU5BUlkoMCkpIFVTSU5HIHV0Zjgp OworV2FybmluZ3M6CitXYXJuaW5nCTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCBJTlRFR0VSIHZh bHVlOiAnWnBxJworV2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgQklOQVJZKDApIHZh bHVlOiAnMS4nCisjCisjIEVuZCBvZiA1LjEgdGVzdHMKKyMKKyMKICMgU3RhcnQgb2YgNS41IHRl c3RzCiAjCiAjCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL2Z1bmNfbGlrZS5yZXN1 bHQnCi0tLSBhL215c3FsLXRlc3Qvci9mdW5jX2xpa2UucmVzdWx0CTIwMTAtMTEtMTEgMTA6MzE6 MTcgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL2Z1bmNfbGlrZS5yZXN1bHQJMjAxMS0wMS0xNyAw OTozOTo1OSArMDAwMApAQCAtMTgyLDQgKzE4Miw5IEBAIElOU0VSVCBJTlRPIHQyIFZBTFVFUyAo MSksICgyKSwgKDMpOwogU0VMRUNUIDEgRlJPTSB0MiBKT0lOIHQxIE9OIDEgTElLRSBhIEdST1VQ IEJZIGE7CiAxCiBEUk9QIFRBQkxFIHQxLCB0MjsKKyMKKyMgQnVnIzU5MTQ5IHZhbGdyaW5kIHdh cm5pbmdzIHdpdGggImxpa2UgLi4gZXNjYXBlIC4uIiBmdW5jdGlvbgorIworU0VMRUNUICcnIExJ S0UgJzEnIEVTQ0FQRSBDT1VOVCgxKTsKK0VSUk9SIEhZMDAwOiBJbmNvcnJlY3QgYXJndW1lbnRz IHRvIEVTQ0FQRQogRW5kIG9mIDUuMSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRl c3Qvci9zaG93X2NoZWNrLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3Nob3dfY2hlY2sucmVz dWx0CTIwMTEtMDEtMTcgMDc6MTI6MzggKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL3Nob3dfY2hl Y2sucmVzdWx0CTIwMTEtMDEtMTggMTI6MDQ6MTcgKzAwMDAKQEAgLTEzMzQsNyArMTMzNCw3IEBA IENSRUFURSBEQVRBQkFTRSBg77+9YDsKIENSRUFURSBUQUJMRSBg77+9YC5g77+9YCAoYSBpbnQp IEVOR0lORT1NZW1vcnk7CiBTSE9XIFRBQkxFIFNUQVRVUyBGUk9NIGDvv71gIExJS0UgJ++/vSc7 CiBOYW1lCUVuZ2luZQlWZXJzaW9uCVJvd19mb3JtYXQJUm93cwlBdmdfcm93X2xlbmd0aAlEYXRh X2xlbmd0aAlNYXhfZGF0YV9sZW5ndGgJSW5kZXhfbGVuZ3RoCURhdGFfZnJlZQlBdXRvX2luY3Jl bWVudAlDcmVhdGVfdGltZQlVcGRhdGVfdGltZQlDaGVja190aW1lCUNvbGxhdGlvbglDaGVja3N1 bQlDcmVhdGVfb3B0aW9ucwlDb21tZW50Ci3vv70JTUVNT1JZCTEwCUZpeGVkCTAJOAkjCSMJIwkw CU5VTEwJTlVMTAlOVUxMCU5VTEwJbGF0aW4xX3N3ZWRpc2hfY2kJTlVMTAkJCivvv70JTUVNT1JZ CTEwCUZpeGVkCTAJIwkjCSMJIwkwCU5VTEwJTlVMTAlOVUxMCU5VTEwJbGF0aW4xX3N3ZWRpc2hf Y2kJTlVMTAkJCiBEUk9QIERBVEFCQVNFIGDvv71gOwogc2hvdyBjb2x1bW5zIGZyb20gYCNteXNx bDUwIz8/Pz8/Pz8/YDsKIEdvdCBvbmUgb2YgdGhlIGxpc3RlZCBlcnJvcnMKCj09PSBtb2RpZmll ZCBmaWxlICdteXNxbC10ZXN0L3IveG1sLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3htbC5y ZXN1bHQJMjAxMC0xMS0yNCAxNDowODowNiArMDAwMAorKysgYi9teXNxbC10ZXN0L3IveG1sLnJl c3VsdAkyMDExLTAxLTE4IDA2OjUwOjAzICswMDAwCkBAIC0xMTEzLDYgKzExMTMsMTcgQEAgU0VM RUNUIFVQREFURVhNTChOVUxMLCAoTFBBRCgwLjExMTFFLTE1LAogRVJST1IgMjIwMDc6IElsbGVn YWwgZG91YmxlICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnIHZhbHVlIGZvdW5kIGR1cmluZyBwYXJz aW5nCiBTRUxFQ1QgRVhUUkFDVFZBTFVFKCcnLCBMUEFEKDAuMTExMUUtMTUsICcyMDExJywgMSkp OwogRVJST1IgMjIwMDc6IElsbGVnYWwgZG91YmxlICcxMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnIHZh bHVlIGZvdW5kIGR1cmluZyBwYXJzaW5nCisjCisjIEJ1ZyAjNDQzMzIgCW15X3htbF9zY2FuIHJl YWRzIGJlaGluZCB0aGUgZW5kIG9mIGJ1ZmZlcgorIworU0VMRUNUIFVQREFURVhNTChDT05WRVJU KF9sYXRpbjEnPCcgVVNJTkcgdXRmOCksJzEnLCcxJyk7CitVUERBVEVYTUwoQ09OVkVSVChfbGF0 aW4xJzwnIFVTSU5HIHV0ZjgpLCcxJywnMScpCitOVUxMCitXYXJuaW5nczoKK1dhcm5pbmcJMTUy NQlJbmNvcnJlY3QgWE1MIHZhbHVlOiAncGFyc2UgZXJyb3IgYXQgbGluZSAxIHBvcyAyOiBFTkQt T0YtSU5QVVQgdW5leHBlY3RlZCAoaWRlbnQgb3IgJy8nIHdhbnRlZCknCitTRUxFQ1QgVVBEQVRF WE1MKENPTlZFUlQoX2xhdGluMSc8IS0tJyBVU0lORyB1dGY4KSwnMScsJzEnKTsKK1VQREFURVhN TChDT05WRVJUKF9sYXRpbjEnPCEtLScgVVNJTkcgdXRmOCksJzEnLCcxJykKK05VTEwKIEVuZCBv ZiA1LjEgdGVzdHMKICMKICMgU3RhcnQgb2YgNS41IHRlc3RzCgo9PT0gbW9kaWZpZWQgZmlsZSAn bXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfc3RvcF9zbGF2ZS5yZXN1bHQnCi0tLSBhL215c3Fs LXRlc3Qvc3VpdGUvcnBsL3IvcnBsX3N0b3Bfc2xhdmUucmVzdWx0CTIwMTAtMTItMTkgMTc6MTU6 MTIgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfc3RvcF9zbGF2ZS5yZXN1 bHQJMjAxMS0wMS0xOCAxNzozODoxMCArMDAwMApAQCAtNzQsNSArNzQsNDcgQEAgaW5jbHVkZS93 YWl0X2Zvcl9zbGF2ZV9zcWxfdG9fc3RhcnQuaW5jCiAKICMgVGVzdCBlbmQKIFNFVCBHTE9CQUwg ZGVidWc9ICckZGVidWdfc2F2ZSc7CitpbmNsdWRlL3Jlc3RhcnRfc2xhdmUuaW5jCitbY29ubmVj dGlvbiBtYXN0ZXJdCiBEUk9QIFRBQkxFIHQxLCB0MjsKKworIyBCdWcjNTg1NDYgdGVzdCBycGxf cGFja2V0IHRpbWVvdXQgZmFpbHVyZSBzcG9yYWRpY2FsbHkgb24gUEIKKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIyBTVE9QIFNMQVZFIHN0b3BwZWQgSU8gdGhyZWFkIGZpcnN0IGFuZCB0aGVuIHN0b3BwZWQg U1FMIHRocmVhZC4gSXQgd2FzCisjIHBvc3NpYmxlIHRoYXQgSU8gdGhyZWFkIHN0b3BwZWQgYWZ0 ZXIgcmVwbGljYXRpbmcgcGFydCBvZiBhIHRyYW5zYWN0aW9uCisjIHdoaWNoIFNRTCB0aHJlYWQg d2FzIGV4ZWN1dGluZy4gU1FMIHRocmVhZCB3b3VsZCBiZSBodW5nIGlmIHRoZQorIyB0cmFuc2Fj dGlvbiBjb3VsZCBub3QgYmUgcm9sbGVkIGJhY2sgc2FmZWx5LgorIyBJdCBjYXVzZWQgc29tZSBz cG9yYWRpYyBmYWlsdXJlcyBvbiBQQjIuCisjCisjIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHdo ZW4gJ1NUT1AgU0xBVkUnIGlzIGlzc3VlZCBieSBhIHVzZXIsIElPCisjIHRocmVhZCB3aWxsIGNv bnRpbnVlIHRvIGZldGNoIHRoZSByZXN0IGV2ZW50cyBvZiB0aGUgdHJhbnNhY3Rpb24gd2hpY2gK KyMgaXMgYmVpbmcgZXhlY3V0ZWQgYnkgU1FMIHRocmVhZCBhbmQgaXMgbm90IGFibGUgdG8gYmUg cm9sbGVkIGJhY2sgc2FmZWx5LgorQ1JFQVRFIFRBQkxFIHQxIChjMSBJTlQgS0VZLCBjMiBJTlQp IEVOR0lORT1Jbm5vREI7CitDUkVBVEUgVEFCTEUgdDIgKGMxIElOVCkgRU5HSU5FPU15SVNBTTsK K0lOU0VSVCBJTlRPIHQxIFZBTFVFUygxLCAxKTsKK1NFVCBHTE9CQUwgZGVidWc9ICdkLGR1bXBf dGhyZWFkX3dhaXRfYmVmb3JlX3NlbmRfeGlkJzsKK1tjb25uZWN0aW9uIHNsYXZlXQoraW5jbHVk ZS9yZXN0YXJ0X3NsYXZlLmluYworQkVHSU47CitVUERBVEUgdDEgU0VUIGMyID0gMiBXSEVSRSBj MSA9IDE7CitbY29ubmVjdGlvbiBtYXN0ZXJdCitCRUdJTjsKK0lOU0VSVCBJTlRPIHQxIFZBTFVF UygyLCAyKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUygxKTsKK1VQREFURSB0MSBTRVQgYzIgPSAz IFdIRVJFIGMxID0gMTsKK0NPTU1JVDsKK1tjb25uZWN0aW9uIHNsYXZlMV0KK1NUT1AgU0xBVkU7 CitbY29ubmVjdGlvbiBzbGF2ZV0KK1JPTExCQUNLOworW2Nvbm5lY3Rpb24gbWFzdGVyXQorU0VU IERFQlVHX1NZTkM9ICdub3cgU0lHTkFMIHNpZ25hbC5jb250aW51ZSc7CitTRVQgREVCVUdfU1lO Qz0gJ1JFU0VUJzsKK1tjb25uZWN0aW9uIHNsYXZlXQoraW5jbHVkZS93YWl0X2Zvcl9zbGF2ZV90 b19zdG9wLmluYworW2Nvbm5lY3Rpb24gc2xhdmUxXQoraW5jbHVkZS9zdGFydF9zbGF2ZS5pbmMK K1tjb25uZWN0aW9uIG1hc3Rlcl0KK0RST1AgVEFCTEUgdDEsIHQyOworU0VUIEdMT0JBTCBkZWJ1 Zz0gJGRlYnVnX3NhdmU7CiBpbmNsdWRlL3JwbF9lbmQuaW5jCgo9PT0gbW9kaWZpZWQgZmlsZSAn bXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfY3Jvc3NfdmVyc2lvbi50ZXN0JwotLS0gYS9teXNx bC10ZXN0L3N1aXRlL3JwbC90L3JwbF9jcm9zc192ZXJzaW9uLnRlc3QJMjAxMC0xMi0xOSAxNzox NToxMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9jcm9zc192ZXJzaW9u LnRlc3QJMjAxMS0wMS0xNyAxODo1MTowMSArMDAwMApAQCAtMTIsMTEgKzEyLDYgQEAKIAogLS1z b3VyY2UgaW5jbHVkZS9tYXN0ZXItc2xhdmUuaW5jCiAKLSMgVGhlIHRlc3QgaXMgZGlzYWJsZWQg Zm9yIHdpbmRvd3MgZHVlIHRvIAotIyBCdWcgIzQyODc5IENIQU5HRSBNQVNURVIgUkVMQVlfTE9H X0ZJTEU9cGF0aCBmYWlscyBvbiB3aW5kb3dzCi0jIFRvZG86IHJlbGVhc2UgaXQgZnJvbSBub3Rf d2luZG93cwotLS1zb3VyY2UgaW5jbHVkZS9ub3Rfd2luZG93cy5pbmMKLQogIwogIyBCdWcjMzEy NDAgbG9hZCBkYXRhIGluZmlsZSByZXBsaWNhdGlvbiBiZXR3ZWVuICg0LjAgb3IgNC4xKSBhbmQg NS4xIGZhaWxzCiAjCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9y cGxfcGFja2V0LnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3BhY2tldC50 ZXN0CTIwMTAtMTItMTkgMTc6MTU6MTIgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9ycGwv dC9ycGxfcGFja2V0LnRlc3QJMjAxMS0wMS0xOCAxNzozODoxMCArMDAwMApAQCAtMjYsOCArMjYs OCBAQCBsZXQgJG9sZF9uZXRfYnVmZmVyX2xlbmd0aD0gYFNFTEVDVCBAQGdsCiBTRVQgQEBnbG9i YWwubWF4X2FsbG93ZWRfcGFja2V0PTEwMjQ7CiBTRVQgQEBnbG9iYWwubmV0X2J1ZmZlcl9sZW5n dGg9MTAyNDsKIAorc3luY19zbGF2ZV93aXRoX21hc3RlcjsKICMgUmVzdGFydCBzbGF2ZSBmb3Ig c2V0dGluZyB0byB0YWtlIGVmZmVjdAotY29ubmVjdGlvbiBzbGF2ZTsKIHNvdXJjZSBpbmNsdWRl L3N0b3Bfc2xhdmUuaW5jOwogc291cmNlIGluY2x1ZGUvc3RhcnRfc2xhdmUuaW5jOwogCgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfc3RvcF9zbGF2ZS50ZXN0 JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9zdG9wX3NsYXZlLnRlc3QJMjAxMC0x Mi0xOSAxNzoxNToxMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9zdG9w X3NsYXZlLnRlc3QJMjAxMS0wMS0xOCAxNzozODoxMCArMDAwMApAQCAtNDUsNyArNDUsNjkgQEAg c291cmNlIGV4dHJhL3JwbF90ZXN0cy9ycGxfc3RvcF9zbGF2ZS50ZQogLS1lY2hvCiAtLWVjaG8g IyBUZXN0IGVuZAogU0VUIEdMT0JBTCBkZWJ1Zz0gJyRkZWJ1Z19zYXZlJzsKK3NvdXJjZSBpbmNs dWRlL3Jlc3RhcnRfc2xhdmVfc3FsLmluYzsKIAotY29ubmVjdGlvbiBtYXN0ZXI7CistLXNvdXJj ZSBpbmNsdWRlL3JwbF9jb25uZWN0aW9uX21hc3Rlci5pbmMKIERST1AgVEFCTEUgdDEsIHQyOwor CistLWVjaG8KKy0tZWNobyAjIEJ1ZyM1ODU0NiB0ZXN0IHJwbF9wYWNrZXQgdGltZW91dCBmYWls dXJlIHNwb3JhZGljYWxseSBvbiBQQgorLS1lY2hvICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS1lY2hvICMg U1RPUCBTTEFWRSBzdG9wcGVkIElPIHRocmVhZCBmaXJzdCBhbmQgdGhlbiBzdG9wcGVkIFNRTCB0 aHJlYWQuIEl0IHdhcworLS1lY2hvICMgcG9zc2libGUgdGhhdCBJTyB0aHJlYWQgc3RvcHBlZCBh ZnRlciByZXBsaWNhdGluZyBwYXJ0IG9mIGEgdHJhbnNhY3Rpb24KKy0tZWNobyAjIHdoaWNoIFNR TCB0aHJlYWQgd2FzIGV4ZWN1dGluZy4gU1FMIHRocmVhZCB3b3VsZCBiZSBodW5nIGlmIHRoZQor LS1lY2hvICMgdHJhbnNhY3Rpb24gY291bGQgbm90IGJlIHJvbGxlZCBiYWNrIHNhZmVseS4KKy0t ZWNobyAjIEl0IGNhdXNlZCBzb21lIHNwb3JhZGljIGZhaWx1cmVzIG9uIFBCMi4KKy0tZWNobyAj CistLWVjaG8gIyBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB3aGVuICdTVE9QIFNMQVZFJyBpcyBp c3N1ZWQgYnkgYSB1c2VyLCBJTworLS1lY2hvICMgdGhyZWFkIHdpbGwgY29udGludWUgdG8gZmV0 Y2ggdGhlIHJlc3QgZXZlbnRzIG9mIHRoZSB0cmFuc2FjdGlvbiB3aGljaAorLS1lY2hvICMgaXMg YmVpbmcgZXhlY3V0ZWQgYnkgU1FMIHRocmVhZCBhbmQgaXMgbm90IGFibGUgdG8gYmUgcm9sbGVk IGJhY2sgc2FmZWx5LgorCitDUkVBVEUgVEFCTEUgdDEgKGMxIElOVCBLRVksIGMyIElOVCkgRU5H SU5FPUlubm9EQjsKK0NSRUFURSBUQUJMRSB0MiAoYzEgSU5UKSBFTkdJTkU9TXlJU0FNOworSU5T RVJUIElOVE8gdDEgVkFMVUVTKDEsIDEpOworCitsZXQgJGRlYnVnX3NhdmU9IGBTRUxFQ1QgQEBH TE9CQUwuZGVidWdgOworU0VUIEdMT0JBTCBkZWJ1Zz0gJ2QsZHVtcF90aHJlYWRfd2FpdF9iZWZv cmVfc2VuZF94aWQnOworCitzeW5jX3NsYXZlX3dpdGhfbWFzdGVyOworCistLXNvdXJjZSBpbmNs dWRlL3JwbF9jb25uZWN0aW9uX3NsYXZlLmluYworc291cmNlIGluY2x1ZGUvcmVzdGFydF9zbGF2 ZV9zcWwuaW5jOworCitCRUdJTjsKK1VQREFURSB0MSBTRVQgYzIgPSAyIFdIRVJFIGMxID0gMTsK KworLS1zb3VyY2UgaW5jbHVkZS9ycGxfY29ubmVjdGlvbl9tYXN0ZXIuaW5jCitCRUdJTjsKK0lO U0VSVCBJTlRPIHQxIFZBTFVFUygyLCAyKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUygxKTsKK1VQ REFURSB0MSBTRVQgYzIgPSAzIFdIRVJFIGMxID0gMTsKK0NPTU1JVDsKKworLS1zb3VyY2UgaW5j bHVkZS9ycGxfY29ubmVjdGlvbl9zbGF2ZTEuaW5jCitsZXQgJHNob3dfc3RhdGVtZW50PSBTSE9X IFBST0NFU1NMSVNUOworbGV0ICRmaWVsZD0gSW5mbzsKK2xldCAkY29uZGl0aW9uPSA9ICdVUERB VEUgdDEgU0VUIGMyID0gMyBXSEVSRSBjMSA9IDEnOworc291cmNlIGluY2x1ZGUvd2FpdF9zaG93 X2NvbmRpdGlvbi5pbmM7CisKK3NlbmQgU1RPUCBTTEFWRTsKKworLS1zb3VyY2UgaW5jbHVkZS9y cGxfY29ubmVjdGlvbl9zbGF2ZS5pbmMKK1JPTExCQUNLOworCistLXNvdXJjZSBpbmNsdWRlL3Jw bF9jb25uZWN0aW9uX21hc3Rlci5pbmMKK1NFVCBERUJVR19TWU5DPSAnbm93IFNJR05BTCBzaWdu YWwuY29udGludWUnOworU0VUIERFQlVHX1NZTkM9ICdSRVNFVCc7CisKKy0tc291cmNlIGluY2x1 ZGUvcnBsX2Nvbm5lY3Rpb25fc2xhdmUuaW5jCitzb3VyY2UgaW5jbHVkZS93YWl0X2Zvcl9zbGF2 ZV90b19zdG9wLmluYzsKKworLS1zb3VyY2UgaW5jbHVkZS9ycGxfY29ubmVjdGlvbl9zbGF2ZTEu aW5jCityZWFwOworc291cmNlIGluY2x1ZGUvc3RhcnRfc2xhdmUuaW5jOworCistLXNvdXJjZSBp bmNsdWRlL3JwbF9jb25uZWN0aW9uX21hc3Rlci5pbmMKK0RST1AgVEFCTEUgdDEsIHQyOworU0VU IEdMT0JBTCBkZWJ1Zz0gJGRlYnVnX3NhdmU7CiAtLXNvdXJjZSBpbmNsdWRlL3JwbF9lbmQuaW5j Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL2lubm9kYl9t YXhfZGlydHlfcGFnZXNfcGN0X2Z1bmMucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL3N5 c192YXJzL3IvaW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3RfZnVuYy5yZXN1bHQJMjAwOS0wMS0z MCAxNjo1OToxMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3IvaW5ub2Ri X21heF9kaXJ0eV9wYWdlc19wY3RfZnVuYy5yZXN1bHQJMjAxMS0wMS0xOCAwMzo1NDo1MiArMDAw MApAQCAtNjQsMTIgKzY0LDEyIEBAIFNFVCBsYXN0ID0gcGN0OwogRU5EIElGOwogRU5EIFdISUxF OwogRU5ELy8KLUNSRUFURSBQUk9DRURVUkUgY2hlY2tfcGN0KElOIG51bSBERUNJTUFMKQorQ1JF QVRFIFBST0NFRFVSRSBjaGVja19wY3QoSU4gc3VjY2Vzc19vbl93YWl0IEJPT0xFQU4pCiBCRUdJ TgotSUYgKGRpcnR5X3BjdCgpIDwgbnVtKSBUSEVOCitJRiAoc3VjY2Vzc19vbl93YWl0ID4gMCkg VEhFTgogU0VMRUNUICdCRUxPV19NQVgnIEFTIFBDVF9WQUxVRTsKIEVMU0UKLVNFTEVDVCAnQUJP VkVfTUFYJyBBUyBQQ1RfVkFMVUU7CitTRUxFQ1QgJ0FCT1ZFX01BWCBvciBUaW1lT3V0IE9mIFRo ZSBUZXN0JyBBUyBQQ1RfVkFMVUU7CiBFTkQgSUY7CiBFTkQvLwogQ1JFQVRFIFRBQkxFIHQxKApA QCAtODMsNyArODMsNyBAQCBDQUxMIGFkZF91bnRpbCgxMCk7CiBGTFVTSCBUQUJMRVM7CiBDQUxM IGFkZF9yZWNvcmRzKDUwMCk7CiAnV2UgZXhwZWN0IGRpcnR5IHBhZ2VzIHBjdCB0byBiZSBCRUxP V19NQVggYWZ0ZXIgc29tZSB0aW1lIGRlcGVuZGluZyBvbiBwZXJmb3JtYW5jZScKLUNBTEwgY2hl Y2tfcGN0KDEwKTsKK0NBTEwgY2hlY2tfcGN0KDEpOwogUENUX1ZBTFVFCiBCRUxPV19NQVgKIERS T1AgUFJPQ0VEVVJFIGFkZF9yZWNvcmRzOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv c3VpdGUvc3lzX3ZhcnMvdC9pbm5vZGJfbWF4X2RpcnR5X3BhZ2VzX3BjdF9mdW5jLnRlc3QnCi0t LSBhL215c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvdC9pbm5vZGJfbWF4X2RpcnR5X3BhZ2VzX3Bj dF9mdW5jLnRlc3QJMjAwOS0wMy0yMCAxNzoxMToyMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1 aXRlL3N5c192YXJzL3QvaW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3RfZnVuYy50ZXN0CTIwMTEt MDEtMTggMDM6NTQ6NTIgKzAwMDAKQEAgLTExNywxMiArMTE3LDEyIEBAIEJFR0lOCiAgICBFTkQg V0hJTEU7CiBFTkQvLwogCi1DUkVBVEUgUFJPQ0VEVVJFIGNoZWNrX3BjdChJTiBudW0gREVDSU1B TCkKK0NSRUFURSBQUk9DRURVUkUgY2hlY2tfcGN0KElOIHN1Y2Nlc3Nfb25fd2FpdCBCT09MRUFO KQogQkVHSU4KLSAgIElGIChkaXJ0eV9wY3QoKSA8IG51bSkgVEhFTgorICAgSUYgKHN1Y2Nlc3Nf b25fd2FpdCA+IDApIFRIRU4KICAgICAgIFNFTEVDVCAnQkVMT1dfTUFYJyBBUyBQQ1RfVkFMVUU7 CiAgICBFTFNFCi0gICAgICBTRUxFQ1QgJ0FCT1ZFX01BWCcgQVMgUENUX1ZBTFVFOworICAgICAg U0VMRUNUICdBQk9WRV9NQVggb3IgVGltZU91dCBPZiBUaGUgVGVzdCcgQVMgUENUX1ZBTFVFOwog ICAgRU5EIElGOwogRU5ELy8KIApAQCAtMTU1LDcgKzE1NSw4IEBAIGxldCAkd2FpdF9jb25kaXRp b249IFNFTEVDVCAoZGlydHlfcGN0KCkKIC0tc291cmNlIGluY2x1ZGUvd2FpdF9jb25kaXRpb24u aW5jCiAKIC0tZWNobyAnV2UgZXhwZWN0IGRpcnR5IHBhZ2VzIHBjdCB0byBiZSBCRUxPV19NQVgg YWZ0ZXIgc29tZSB0aW1lIGRlcGVuZGluZyBvbiBwZXJmb3JtYW5jZScKLUNBTEwgY2hlY2tfcGN0 KDEwKTsKKyMgVmFsdWUgRm9yICRzdWNlc3Mgd2lsbCBiZSBzZXQgZnJvbSBpbmNsdWRlL3dhaXRf Y29uZGl0aW9uLmluYyBmaWxlLiBJdCBjYW4gaGF2ZSB2YWx1ZXMgMSBvciAwLiBJdCB3aWxsIGJl IDEgaWYgZGlydHlfcGN0KCkgPD0gQEBnbG9iYWwuaW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3Qg ZWxzZSBpdCB3aWxsIGJlIDAuCitldmFsIENBTEwgY2hlY2tfcGN0KCRzdWNjZXNzKTsKIERST1Ag UFJPQ0VEVVJFIGFkZF9yZWNvcmRzOwogRFJPUCBQUk9DRURVUkUgYWRkX3VudGlsOwogRFJPUCBQ Uk9DRURVUkUgY2hlY2tfcGN0OwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9jdHlw ZV9tYW55LnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9jdHlwZV9tYW55LnRlc3QJMjAxMC0xMi0x NSAwOTo1ODozNyArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvY3R5cGVfbWFueS50ZXN0CTIwMTEt MDEtMTcgMTI6MjY6MTMgKzAwMDAKQEAgLTIxNyw2ICsyMTcsMjEgQEAgRFJPUCBUQUJMRSB0MTsK IAogCiAtLWVjaG8gIworLS1lY2hvICMgU3RhcnQgb2YgNS4xIHRlc3RzCistLWVjaG8gIworCist LWVjaG8gIworLS1lY2hvICMgQnVnIzU4MzcxIEFzc2VydGlvbiBmYWlsZWQ6ICFzLnVzZXNfYnVm ZmVyX293bmVkX2J5KHRoaXMpIHdpdGggZm9ybWF0IHN0cmluZyBmdW5jdGlvbgorLS1lY2hvICMK KworU0VUIE5BTUVTIGxhdGluMTsKK0RPIENPTlZFUlQoQ0FTVChTVUJTVFJJTkdfSU5ERVgoRk9S TUFUKDEsJzExMTEnKSwgRk9STUFUKCcnLCdacHEnKSwxKSAKKyAgICAgICAgICAgICAgICBBUyBC SU5BUlkoMCkpIFVTSU5HIHV0ZjgpOworLS1lY2hvICMKKy0tZWNobyAjIEVuZCBvZiA1LjEgdGVz dHMKKy0tZWNobyAjCisKKy0tZWNobyAjCiAtLWVjaG8gIyBTdGFydCBvZiA1LjUgdGVzdHMKIC0t ZWNobyAjCiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvZnVuY19saWtlLnRlc3Qn Ci0tLSBhL215c3FsLXRlc3QvdC9mdW5jX2xpa2UudGVzdAkyMDEwLTExLTA4IDEwOjU1OjQzICsw MDAwCisrKyBiL215c3FsLXRlc3QvdC9mdW5jX2xpa2UudGVzdAkyMDExLTAxLTE3IDA5OjMwOjIy ICswMDAwCkBAIC0xMjYsNSArMTI2LDEwIEBAIElOU0VSVCBJTlRPIHQyIFZBTFVFUyAoMSksICgy KSwgKDMpOwogU0VMRUNUIDEgRlJPTSB0MiBKT0lOIHQxIE9OIDEgTElLRSBhIEdST1VQIEJZIGE7 CiBEUk9QIFRBQkxFIHQxLCB0MjsKIAorLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyM1OTE0OSB2YWxn cmluZCB3YXJuaW5ncyB3aXRoICJsaWtlIC4uIGVzY2FwZSAuLiIgZnVuY3Rpb24KKy0tZWNobyAj CistLWVycm9yIEVSX1dST05HX0FSR1VNRU5UUworU0VMRUNUICcnIExJS0UgJzEnIEVTQ0FQRSBD T1VOVCgxKTsKIAogLS1lY2hvIEVuZCBvZiA1LjEgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdt eXNxbC10ZXN0L3Qvc2hvd19jaGVjay50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3Qvc2hvd19jaGVj ay50ZXN0CTIwMTEtMDEtMTcgMDc6MTI6MzggKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3Nob3df Y2hlY2sudGVzdAkyMDExLTAxLTE4IDEyOjA0OjE3ICswMDAwCkBAIC0xMDczLDcgKzEwNzMsNyBA QCBzZXQgbmFtZXMgbGF0aW4xOwogU0VUIE5BTUVTIGxhdGluMTsKIENSRUFURSBEQVRBQkFTRSBg 77+9YDsKIENSRUFURSBUQUJMRSBg77+9YC5g77+9YCAoYSBpbnQpIEVOR0lORT1NZW1vcnk7Ci0t LXJlcGxhY2VfY29sdW1uIDcgIyA4ICMgOSAjCistLXJlcGxhY2VfY29sdW1uIDYgIyA3ICMgOCAj IDkgIwogU0hPVyBUQUJMRSBTVEFUVVMgRlJPTSBg77+9YCBMSUtFICfvv70nOwogRFJPUCBEQVRB QkFTRSBg77+9YDsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC94bWwudGVzdCcK LS0tIGEvbXlzcWwtdGVzdC90L3htbC50ZXN0CTIwMTAtMTEtMjQgMTQ6MDg6MDYgKzAwMDAKKysr IGIvbXlzcWwtdGVzdC90L3htbC50ZXN0CTIwMTEtMDEtMTggMDY6NTA6MDMgKzAwMDAKQEAgLTY0 MCw2ICs2NDAsMTEgQEAgU0VMRUNUIFVQREFURVhNTChOVUxMLCAoTFBBRCgwLjExMTFFLTE1LAog LS1lcnJvciBFUl9JTExFR0FMX1ZBTFVFX0ZPUl9UWVBFCiBTRUxFQ1QgRVhUUkFDVFZBTFVFKCcn LCBMUEFEKDAuMTExMUUtMTUsICcyMDExJywgMSkpOwogCistLWVjaG8gIworLS1lY2hvICMgQnVn ICM0NDMzMiAJbXlfeG1sX3NjYW4gcmVhZHMgYmVoaW5kIHRoZSBlbmQgb2YgYnVmZmVyCistLWVj aG8gIworU0VMRUNUIFVQREFURVhNTChDT05WRVJUKF9sYXRpbjEnPCcgVVNJTkcgdXRmOCksJzEn LCcxJyk7CitTRUxFQ1QgVVBEQVRFWE1MKENPTlZFUlQoX2xhdGluMSc8IS0tJyBVU0lORyB1dGY4 KSwnMScsJzEnKTsKIAogLS1lY2hvIEVuZCBvZiA1LjEgdGVzdHMKIAoKPT09IG1vZGlmaWVkIGZp bGUgJ215c3lzL2RlZmF1bHQuYycKLS0tIGEvbXlzeXMvZGVmYXVsdC5jCTIwMTAtMTEtMTYgMTA6 NTg6MzkgKzAwMDAKKysrIGIvbXlzeXMvZGVmYXVsdC5jCTIwMTEtMDEtMTcgMDc6NDQ6MzcgKzAw MDAKQEAgLTYxLDkgKzYxLDIzIEBACiAgICBjaGVjayB0aGUgcG9pbnRlciwgdXNlICItLS0tYXJn cy1zZXBhcmF0b3ItLS0tIiBoZXJlIHRvIGVhc2UgZGVidWcKICAgIGlmIHNvbWVvbmUgbWlzdXNl ZCBpdC4KIAorICAgVGhlIGFyZ3Mgc2VwcmF0b3Igd2lsbCBvbmx5IGJlIGFkZGVkIHdoZW4KKyAg IG15X2dldG9wdF91c2VfYXJnc19zZXByYXRvciBpcyBzZXQgdG8gVFJVRSBiZWZvcmUgY2FsbGlu ZworICAgbG9hZF9kZWZhdWx0cygpOworCiAgICBTZWUgQlVHIzI1MTkyCiAqLwotY29uc3QgY2hh ciAqYXJnc19zZXBhcmF0b3I9ICItLS0tYXJncy1zZXBhcmF0b3ItLS0tIjsKK3N0YXRpYyBjb25z dCBjaGFyICphcmdzX3NlcGFyYXRvcj0gIi0tLS1hcmdzLXNlcGFyYXRvci0tLS0iOworaW5saW5l IHN0YXRpYyB2b2lkIHNldF9hcmdzX3NlcGFyYXRvcihjaGFyKiogYXJnKQoreworICBEQlVHX0FT U0VSVChteV9nZXRvcHRfdXNlX2FyZ3Nfc2VwYXJhdG9yKTsKKyAgKmFyZz0gKGNoYXIqKWFyZ3Nf c2VwYXJhdG9yOworfQorbXlfYm9vbCBteV9nZXRvcHRfdXNlX2FyZ3Nfc2VwYXJhdG9yPSBGQUxT RTsKK215X2Jvb2wgbXlfZ2V0b3B0X2lzX2FyZ3Nfc2VwYXJhdG9yKGNvbnN0IGNoYXIqIGFyZykK K3sKKyAgcmV0dXJuIChhcmcgPT0gYXJnc19zZXBhcmF0b3IpOworfQogY29uc3QgY2hhciAqbXlf ZGVmYXVsdHNfZmlsZT0wOwogY29uc3QgY2hhciAqbXlfZGVmYXVsdHNfZ3JvdXBfc3VmZml4PTA7 CiBjb25zdCBjaGFyICpteV9kZWZhdWx0c19leHRyYV9maWxlPTA7CkBAIC01MDMsNiArNTE3LDcg QEAgaW50IG15X2xvYWRfZGVmYXVsdHMoY29uc3QgY2hhciAqY29uZl9maQogICBjaGFyICpwdHIs KipyZXM7CiAgIHN0cnVjdCBoYW5kbGVfb3B0aW9uX2N0eCBjdHg7CiAgIGNvbnN0IGNoYXIgKipk aXJzOworICB1aW50IGFyZ3Nfc2VwPSBteV9nZXRvcHRfdXNlX2FyZ3Nfc2VwYXJhdG9yID8gMSA6 IDA7CiAgIERCVUdfRU5URVIoImxvYWRfZGVmYXVsdHMiKTsKIAogICBpbml0X2FsbG9jX3Jvb3Qo JmFsbG9jLDUxMiwwKTsKQEAgLTUxNSwxNyArNTMwLDI4IEBAIGludCBteV9sb2FkX2RlZmF1bHRz KGNvbnN0IGNoYXIgKmNvbmZfZmkKICAgaWYgKCphcmdjID49IDIgJiYgIXN0cmNtcChhcmd2WzBd WzFdLCItLW5vLWRlZmF1bHRzIikpCiAgIHsKICAgICAvKiByZW1vdmUgdGhlIC0tbm8tZGVmYXVs dHMgYXJndW1lbnQgYW5kIHJldHVybiBvbmx5IHRoZSBvdGhlciBhcmd1bWVudHMgKi8KLSAgICB1 aW50IGk7CisgICAgdWludCBpLCBqOwogICAgIGlmICghKHB0cj0oY2hhciopIGFsbG9jX3Jvb3Qo JmFsbG9jLHNpemVvZihhbGxvYykrCiAJCQkJICgqYXJnYyArIDEpKnNpemVvZihjaGFyKikpKSkK ICAgICAgIGdvdG8gZXJyOwogICAgIHJlcz0gKGNoYXIqKikgKHB0citzaXplb2YoYWxsb2MpKTsK ICAgICByZXNbMF09ICoqYXJndjsJCQkJLyogQ29weSBwcm9ncmFtIG5hbWUgKi8KLSAgICAvKiBz ZXQgYXJndW1lbnRzIHNlcGFyYXRvciAqLwotICAgIHJlc1sxXT0gKGNoYXIgKilhcmdzX3NlcGFy YXRvcjsKLSAgICBmb3IgKGk9MiA7IGkgPCAodWludCkgKmFyZ2MgOyBpKyspCi0gICAgICByZXNb aV09YXJndlswXVtpXTsKLSAgICByZXNbaV09MDsJCQkJCS8qIEVuZCBwb2ludGVyICovCisgICAg aj0gMTsgICAgICAgICAgICAgICAgIC8qIFN0YXJ0IGZyb20gMSBmb3IgdGhlIHJlc2V0IHJlc3Vs dCBhcmdzICovCisgICAgaWYgKG15X2dldG9wdF91c2VfYXJnc19zZXBhcmF0b3IpCisgICAgewor ICAgICAgLyogc2V0IGFyZ3VtZW50cyBzZXBhcmF0b3IgKi8KKyAgICAgIHNldF9hcmdzX3NlcGFy YXRvcigmcmVzWzFdKTsKKyAgICAgIGorKzsKKyAgICB9CisgICAgZm9yIChpPTIgOyBpIDwgKHVp bnQpICphcmdjIDsgaSsrLCBqKyspCisgICAgICByZXNbal09YXJndlswXVtpXTsKKyAgICByZXNb al09MDsJCQkJCS8qIEVuZCBwb2ludGVyICovCisgICAgLyoKKyAgICAgIFVwZGF0ZSB0aGUgYXJn YywgaWYgaGF2ZSBub3QgYWRkZWQgYXJncyBzZXBhcmF0b3IsIHRoZW4gd2UgaGF2ZQorICAgICAg dG8gZGVjcmVhc2UgYXJnYyBiZWNhdXNlIHdlIGhhdmUgcmVtb3ZlZCB0aGUgIi0tbm8tZGVmYXVs dHMiLgorICAgICovCisgICAgaWYgKCFteV9nZXRvcHRfdXNlX2FyZ3Nfc2VwYXJhdG9yKQorICAg ICAgKCphcmdjKS0tOwogICAgICphcmd2PXJlczsKICAgICAqKE1FTV9ST09UKikgcHRyPSBhbGxv YzsJCQkvKiBTYXZlIGFsbG9jIHJvb3QgZm9yIGZyZWUgKi8KICAgICBpZiAoZGVmYXVsdF9kaXJl Y3RvcmllcykKQEAgLTU1OSw3ICs1ODUsNyBAQCBpbnQgbXlfbG9hZF9kZWZhdWx0cyhjb25zdCBj aGFyICpjb25mX2ZpCiAgICAgb3IgYSBmb3JjZWQgZGVmYXVsdCBmaWxlCiAgICovCiAgIGlmICgh KHB0cj0oY2hhciopIGFsbG9jX3Jvb3QoJmFsbG9jLHNpemVvZihhbGxvYykrCi0JCQkgICAgICAg KGFyZ3MuZWxlbWVudHMgKyAqYXJnYyArIDEgKyAxKSAqc2l6ZW9mKGNoYXIqKSkpKQorCQkJICAg ICAgIChhcmdzLmVsZW1lbnRzICsgKmFyZ2MgKyAxICsgYXJnc19zZXApICpzaXplb2YoY2hhciop KSkpCiAgICAgZ290byBlcnI7CiAgIHJlcz0gKGNoYXIqKikgKHB0citzaXplb2YoYWxsb2MpKTsK IApAQCAtNTgwLDE2ICs2MDYsMTkgQEAgaW50IG15X2xvYWRfZGVmYXVsdHMoY29uc3QgY2hhciAq Y29uZl9maQogICAgIC0tKmFyZ2M7ICsrKmFyZ3Y7CQkJCS8qIHNraXAgYXJndW1lbnQgKi8KICAg fQogCi0gIC8qIHNldCBhcmd1bWVudHMgc2VwYXJhdG9yIGZvciBhcmd1bWVudHMgZnJvbSBjb25m aWcgZmlsZSBhbmQKLSAgICAgY29tbWFuZCBsaW5lICovCi0gIHJlc1thcmdzLmVsZW1lbnRzKzFd PSAoY2hhciAqKWFyZ3Nfc2VwYXJhdG9yOworICBpZiAobXlfZ2V0b3B0X3VzZV9hcmdzX3NlcGFy YXRvcikKKyAgeworICAgIC8qIHNldCBhcmd1bWVudHMgc2VwYXJhdG9yIGZvciBhcmd1bWVudHMg ZnJvbSBjb25maWcgZmlsZSBhbmQKKyAgICAgICBjb21tYW5kIGxpbmUgKi8KKyAgICBzZXRfYXJn c19zZXBhcmF0b3IoJnJlc1thcmdzLmVsZW1lbnRzKzFdKTsKKyAgfQogCiAgIGlmICgqYXJnYykK LSAgICBtZW1jcHkoKHVjaGFyKikgKHJlcysxK2FyZ3MuZWxlbWVudHMrMSksIChjaGFyKikgKCgq YXJndikrMSksCisgICAgbWVtY3B5KCh1Y2hhciopIChyZXMrMSthcmdzLmVsZW1lbnRzK2FyZ3Nf c2VwKSwgKGNoYXIqKSAoKCphcmd2KSsxKSwKIAkgICAoKmFyZ2MtMSkqc2l6ZW9mKGNoYXIqKSk7 Ci0gIHJlc1thcmdzLmVsZW1lbnRzKyAqYXJnYysxXT0wOyAgICAgICAgICAgICAgICAvKiBsYXN0 IG51bGwgKi8KKyAgcmVzW2FyZ3MuZWxlbWVudHMrICphcmdjK2FyZ3Nfc2VwXT0wOyAgICAgICAg ICAgICAgICAvKiBsYXN0IG51bGwgKi8KIAotICAoKmFyZ2MpKz1hcmdzLmVsZW1lbnRzKzE7Cisg ICgqYXJnYykrPWFyZ3MuZWxlbWVudHMrYXJnc19zZXA7CiAgICphcmd2PSAoY2hhcioqKSByZXM7 CiAgICooTUVNX1JPT1QqKSBwdHI9IGFsbG9jOwkJCS8qIFNhdmUgYWxsb2Mgcm9vdCBmb3IgZnJl ZSAqLwogICBkZWxldGVfZHluYW1pYygmYXJncyk7CkBAIC01OTksNyArNjI4LDcgQEAgaW50IG15 X2xvYWRfZGVmYXVsdHMoY29uc3QgY2hhciAqY29uZl9maQogICAgIHByaW50ZigiJXMgd291bGQg aGF2ZSBiZWVuIHN0YXJ0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czpcbiIsCiAJICAg Kiphcmd2KTsKICAgICBmb3IgKGk9MSA7IGkgPCAqYXJnYyA7IGkrKykKLSAgICAgIGlmICgoKmFy Z3YpW2ldICE9IGFyZ3Nfc2VwYXJhdG9yKSAvKiBza2lwIGFyZ3VtZW50cyBzZXBhcmF0b3IgKi8K KyAgICAgIGlmICghbXlfZ2V0b3B0X2lzX2FyZ3Nfc2VwYXJhdG9yKCgqYXJndilbaV0pKSAvKiBz a2lwIGFyZ3VtZW50cyBzZXBhcmF0b3IgKi8KICAgICAgICAgcHJpbnRmKCIlcyAiLCAoKmFyZ3Yp W2ldKTsKICAgICBwdXRzKCIiKTsKICAgICBleGl0KDApOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215 c3lzL215X2dldG9wdC5jJwotLS0gYS9teXN5cy9teV9nZXRvcHQuYwkyMDExLTAxLTE0IDIyOjE4 OjIyICswMDAwCisrKyBiL215c3lzL215X2dldG9wdC5jCTIwMTEtMDEtMTcgMDc6NDQ6MzcgKzAw MDAKQEAgLTE3Niw3ICsxNzYsNyBAQCBpbnQgaGFuZGxlX29wdGlvbnMoaW50ICphcmdjLCBjaGFy ICoqKmFyCiAgICovCiAgIGZvciAocG9zPSAqYXJndiwgcG9zX2VuZD1wb3MrICphcmdjOyBwb3Mg IT0gcG9zX2VuZCA7IHBvcysrKQogICB7Ci0gICAgaWYgKCpwb3MgPT0gYXJnc19zZXBhcmF0b3Ip CisgICAgaWYgKG15X2dldG9wdF9pc19hcmdzX3NlcGFyYXRvcigqcG9zKSkKICAgICB7CiAgICAg ICBpc19jbWRsaW5lX2FyZz0gMDsKICAgICAgIGJyZWFrOwpAQCAtMTg4LDcgKzE4OCw3IEBAIGlu dCBoYW5kbGVfb3B0aW9ucyhpbnQgKmFyZ2MsIGNoYXIgKioqYXIKICAgICBjaGFyICoqZmlyc3Q9 IHBvczsKICAgICBjaGFyICpjdXJfYXJnPSAqcG9zOwogICAgIG9wdF9mb3VuZD0gMDsKLSAgICBp ZiAoIWlzX2NtZGxpbmVfYXJnICYmIChjdXJfYXJnID09IGFyZ3Nfc2VwYXJhdG9yKSkKKyAgICBp ZiAoIWlzX2NtZGxpbmVfYXJnICYmIChteV9nZXRvcHRfaXNfYXJnc19zZXBhcmF0b3IoY3VyX2Fy ZykpKQogICAgIHsKICAgICAgIGlzX2NtZGxpbmVfYXJnPSAxOwogCgo9PT0gbW9kaWZpZWQgZmls ZSAnc3FsLWNvbW1vbi9jbGllbnQuYycKLS0tIGEvc3FsLWNvbW1vbi9jbGllbnQuYwkyMDExLTAx LTExIDA5OjA3OjM3ICswMDAwCisrKyBiL3NxbC1jb21tb24vY2xpZW50LmMJMjAxMS0wMS0xNyAw Nzo0NDozNyArMDAwMApAQCAtMTIwNyw3ICsxMjA3LDcgQEAgdm9pZCBteXNxbF9yZWFkX2RlZmF1 bHRfb3B0aW9ucyhzdHJ1Y3QgcwogICAgIGNoYXIgKipvcHRpb249YXJndjsKICAgICB3aGlsZSAo Kisrb3B0aW9uKQogICAgIHsKLSAgICAgIGlmIChvcHRpb25bMF0gPT0gYXJnc19zZXBhcmF0b3Ip ICAgICAgICAgIC8qIHNraXAgYXJndW1lbnRzIHNlcGFyYXRvciAqLworICAgICAgaWYgKG15X2dl dG9wdF9pc19hcmdzX3NlcGFyYXRvcihvcHRpb25bMF0pKSAgICAgICAgICAvKiBza2lwIGFyZ3Vt ZW50cyBzZXBhcmF0b3IgKi8KICAgICAgICAgY29udGludWU7CiAgICAgICAvKiBEQlVHX1BSSU5U KCJpbmZvIiwoIm9wdGlvbjogJXMiLG9wdGlvblswXSkpOyAqLwogICAgICAgaWYgKG9wdGlvblsw XVswXSA9PSAnLScgJiYgb3B0aW9uWzBdWzFdID09ICctJykKCj09PSBtb2RpZmllZCBmaWxlICdz cWwvaXRlbV9zdHJmdW5jLmNjJwotLS0gYS9zcWwvaXRlbV9zdHJmdW5jLmNjCTIwMTEtMDEtMTMg MDg6MDc6MjEgKzAwMDAKKysrIGIvc3FsL2l0ZW1fc3RyZnVuYy5jYwkyMDExLTAxLTE3IDEyOjI2 OjEzICswMDAwCkBAIC0yOTU5LDIyICsyOTU5LDE2IEBAIFN0cmluZyAqSXRlbV9mdW5jX2NvbnZf Y2hhcnNldDo6dmFsX3N0cigKICAgREJVR19BU1NFUlQoZml4ZWQgPT0gMSk7CiAgIGlmICh1c2Vf Y2FjaGVkX3ZhbHVlKQogICAgIHJldHVybiBudWxsX3ZhbHVlID8gMCA6ICZzdHJfdmFsdWU7Ci0g IC8qIAotICAgIEhlcmUgd2UgZG9uJ3QgcGFzcyAnc3RyJyBhcyBhIHBhcmFtZXRlciB0byBhcmdz WzBdLT52YWxfc3RyKCkKLSAgICBhcyAnc3RyJyBtYXkgcG9pbnQgdG8gJ3N0cl92YWx1ZScgKGUu Zy4gc2VlIEl0ZW06OnNhdmVfaW5fZmllbGQoKSksCi0gICAgd2hpY2ggd2UgdXNlIGJlbG93IHRv IGNvbnZlcnQgc3RyaW5nLiAKLSAgICBVc2UgYXJndW1lbnQncyAnc3RyX3ZhbHVlJyBpbnN0ZWFk LgotICAqLwotICBTdHJpbmcgKmFyZz0gYXJnc1swXS0+dmFsX3N0cigmYXJnc1swXS0+c3RyX3Zh bHVlKTsKKyAgU3RyaW5nICphcmc9IGFyZ3NbMF0tPnZhbF9zdHIoc3RyKTsKICAgdWludCBkdW1t eV9lcnJvcnM7CiAgIGlmICghYXJnKQogICB7CiAgICAgbnVsbF92YWx1ZT0xOwogICAgIHJldHVy biAwOwogICB9Ci0gIG51bGxfdmFsdWU9IHN0cl92YWx1ZS5jb3B5KGFyZy0+cHRyKCksYXJnLT5s ZW5ndGgoKSxhcmctPmNoYXJzZXQoKSwKKyAgbnVsbF92YWx1ZT0gdG1wX3ZhbHVlLmNvcHkoYXJn LT5wdHIoKSwgYXJnLT5sZW5ndGgoKSwgYXJnLT5jaGFyc2V0KCksCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnZfY2hhcnNldCwgJmR1bW15X2Vycm9ycyk7Ci0gIHJldHVybiBudWxs X3ZhbHVlID8gMCA6IGNoZWNrX3dlbGxfZm9ybWVkX3Jlc3VsdCgmc3RyX3ZhbHVlKTsKKyAgcmV0 dXJuIG51bGxfdmFsdWUgPyAwIDogY2hlY2tfd2VsbF9mb3JtZWRfcmVzdWx0KCZ0bXBfdmFsdWUp OwogfQogCiB2b2lkIEl0ZW1fZnVuY19jb252X2NoYXJzZXQ6OmZpeF9sZW5ndGhfYW5kX2RlYygp Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1fc3RyZnVuYy5oJwotLS0gYS9zcWwvaXRlbV9z dHJmdW5jLmgJMjAxMS0wMS0xMyAwODowNzoyMSArMDAwMAorKysgYi9zcWwvaXRlbV9zdHJmdW5j LmgJMjAxMS0wMS0xNyAxMjoyNjoxMyArMDAwMApAQCAtNzkxLDYgKzc5MSw3IEBAIHB1YmxpYzoK IGNsYXNzIEl0ZW1fZnVuY19jb252X2NoYXJzZXQgOnB1YmxpYyBJdGVtX3N0cl9mdW5jCiB7CiAg IGJvb2wgdXNlX2NhY2hlZF92YWx1ZTsKKyAgU3RyaW5nIHRtcF92YWx1ZTsKIHB1YmxpYzoKICAg Ym9vbCBzYWZlOwogICBDSEFSU0VUX0lORk8gKmNvbnZfY2hhcnNldDsgLy8ga2VlcCBpdCBwdWJs aWMKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaXRlbV9zdW0uaCcKLS0tIGEvc3FsL2l0ZW1fc3Vt LmgJMjAxMC0xMi0yMSAxMTo1MDowMyArMDAwMAorKysgYi9zcWwvaXRlbV9zdW0uaAkyMDExLTAx LTE3IDA5OjM5OjU5ICswMDAwCkBAIC00NDUsNiArNDQ1LDcgQEAgcHVibGljOgogICAgIGZvcmNl ZF9jb25zdD0gVFJVRTsgCiAgIH0KICAgdmlydHVhbCBib29sIGNvbnN0X2l0ZW0oKSBjb25zdCB7 IHJldHVybiBmb3JjZWRfY29uc3Q7IH0KKyAgdmlydHVhbCBib29sIGNvbnN0X2R1cmluZ19leGVj dXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICB2aXJ0dWFsIHZvaWQgcHJpbnQoU3Ry aW5nICpzdHIsIGVudW1fcXVlcnlfdHlwZSBxdWVyeV90eXBlKTsKICAgdm9pZCBmaXhfbnVtX2xl bmd0aF9hbmRfZGVjKCk7CiAKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvbXlzcWxkLmNjJwotLS0g YS9zcWwvbXlzcWxkLmNjCTIwMTEtMDEtMTQgMTM6MjE6NDYgKzAwMDAKKysrIGIvc3FsL215c3Fs ZC5jYwkyMDExLTAxLTE3IDA3OjQ0OjM3ICswMDAwCkBAIC00MjA3LDggKzQyMDcsMTAgQEAgaW50 IG15c3FsZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogICBvcmlnX2FyZ2M9IGFyZ2M7 CiAgIG9yaWdfYXJndj0gYXJndjsKKyAgbXlfZ2V0b3B0X3VzZV9hcmdzX3NlcGFyYXRvcj0gVFJV RTsKICAgaWYgKGxvYWRfZGVmYXVsdHMoTVlTUUxfQ09ORklHX05BTUUsIGxvYWRfZGVmYXVsdF9n cm91cHMsICZhcmdjLCAmYXJndikpCiAgICAgcmV0dXJuIDE7CisgIG15X2dldG9wdF91c2VfYXJn c19zZXBhcmF0b3I9IEZBTFNFOwogICBkZWZhdWx0c19hcmdjPSBhcmdjOwogICBkZWZhdWx0c19h cmd2PSBhcmd2OwogICByZW1haW5pbmdfYXJnYz0gYXJnYzsKCj09PSBtb2RpZmllZCBmaWxlICdz cWwvc2xhdmUuY2MnCi0tLSBhL3NxbC9zbGF2ZS5jYwkyMDEwLTEyLTA3IDE2OjU1OjI1ICswMDAw CisrKyBiL3NxbC9zbGF2ZS5jYwkyMDExLTAxLTE4IDE3OjM4OjEwICswMDAwCkBAIC01MDQsNiAr NTA0LDMwIEBAIGludCB0ZXJtaW5hdGVfc2xhdmVfdGhyZWFkcyhNYXN0ZXJfaW5mbyoKICAgbXlz cWxfbXV0ZXhfdCAqc3FsX2xvY2sgPSAmbWktPnJsaS5ydW5fbG9jaywgKmlvX2xvY2sgPSAmbWkt PnJ1bl9sb2NrOwogICBteXNxbF9tdXRleF90ICpsb2dfbG9jaz0gbWktPnJsaS5yZWxheV9sb2cu Z2V0X2xvZ19sb2NrKCk7CiAKKyAgaWYgKHRocmVhZF9tYXNrICYgKFNMQVZFX1NRTHxTTEFWRV9G T1JDRV9BTEwpKQorICB7CisgICAgREJVR19QUklOVCgiaW5mbyIsKCJUZXJtaW5hdGluZyBTUUwg dGhyZWFkIikpOworICAgIG1pLT5ybGkuYWJvcnRfc2xhdmU9MTsKKyAgICBpZiAoKGVycm9yPXRl cm1pbmF0ZV9zbGF2ZV90aHJlYWQobWktPnJsaS5zcWxfdGhkLCBzcWxfbG9jaywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1pLT5ybGkuc3RvcF9jb25kLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWktPnJsaS5zbGF2ZV9ydW5uaW5nLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwX2xvY2spKSAmJgorICAg ICAgICAhZm9yY2VfYWxsKQorICAgICAgREJVR19SRVRVUk4oZXJyb3IpOworCisgICAgbXlzcWxf bXV0ZXhfbG9jayhsb2dfbG9jayk7CisKKyAgICBEQlVHX1BSSU5UKCJpbmZvIiwoIkZsdXNoaW5n IHJlbGF5LWxvZyBpbmZvIGZpbGUuIikpOworICAgIGlmIChjdXJyZW50X3RoZCkKKyAgICAgIHRo ZF9wcm9jX2luZm8oY3VycmVudF90aGQsICJGbHVzaGluZyByZWxheS1sb2cgaW5mbyBmaWxlLiIp OworICAgIGlmIChmbHVzaF9yZWxheV9sb2dfaW5mbygmbWktPnJsaSkpCisgICAgICBEQlVHX1JF VFVSTihFUl9FUlJPUl9EVVJJTkdfRkxVU0hfTE9HUyk7CisgICAgCisgICAgaWYgKG15X3N5bmMo bWktPnJsaS5pbmZvX2ZkLCBNWUYoTVlfV01FKSkpCisgICAgICBEQlVHX1JFVFVSTihFUl9FUlJP Ul9EVVJJTkdfRkxVU0hfTE9HUyk7CisKKyAgICBteXNxbF9tdXRleF91bmxvY2sobG9nX2xvY2sp OworICB9CiAgIGlmICh0aHJlYWRfbWFzayAmIChTTEFWRV9JT3xTTEFWRV9GT1JDRV9BTEwpKQog ICB7CiAgICAgREJVR19QUklOVCgiaW5mbyIsKCJUZXJtaW5hdGluZyBJTyB0aHJlYWQiKSk7CkBA IC01MzEsMzAgKzU1NSw2IEBAIGludCB0ZXJtaW5hdGVfc2xhdmVfdGhyZWFkcyhNYXN0ZXJfaW5m byoKICAgICAgIERCVUdfUkVUVVJOKEVSX0VSUk9SX0RVUklOR19GTFVTSF9MT0dTKTsKIAogICAg IG15c3FsX211dGV4X3VubG9jayhsb2dfbG9jayk7Ci0gIH0KLSAgaWYgKHRocmVhZF9tYXNrICYg KFNMQVZFX1NRTHxTTEFWRV9GT1JDRV9BTEwpKQotICB7Ci0gICAgREJVR19QUklOVCgiaW5mbyIs KCJUZXJtaW5hdGluZyBTUUwgdGhyZWFkIikpOwotICAgIG1pLT5ybGkuYWJvcnRfc2xhdmU9MTsK LSAgICBpZiAoKGVycm9yPXRlcm1pbmF0ZV9zbGF2ZV90aHJlYWQobWktPnJsaS5zcWxfdGhkLCBz cWxfbG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1pLT5ybGku c3RvcF9jb25kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWktPnJs aS5zbGF2ZV9ydW5uaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz a2lwX2xvY2spKSAmJgotICAgICAgICAhZm9yY2VfYWxsKQotICAgICAgREJVR19SRVRVUk4oZXJy b3IpOwotCi0gICAgbXlzcWxfbXV0ZXhfbG9jayhsb2dfbG9jayk7Ci0KLSAgICBEQlVHX1BSSU5U KCJpbmZvIiwoIkZsdXNoaW5nIHJlbGF5LWxvZyBpbmZvIGZpbGUuIikpOwotICAgIGlmIChjdXJy ZW50X3RoZCkKLSAgICAgIHRoZF9wcm9jX2luZm8oY3VycmVudF90aGQsICJGbHVzaGluZyByZWxh eS1sb2cgaW5mbyBmaWxlLiIpOwotICAgIGlmIChmbHVzaF9yZWxheV9sb2dfaW5mbygmbWktPnJs aSkpCi0gICAgICBEQlVHX1JFVFVSTihFUl9FUlJPUl9EVVJJTkdfRkxVU0hfTE9HUyk7Ci0gICAg Ci0gICAgaWYgKG15X3N5bmMobWktPnJsaS5pbmZvX2ZkLCBNWUYoTVlfV01FKSkpCi0gICAgICBE QlVHX1JFVFVSTihFUl9FUlJPUl9EVVJJTkdfRkxVU0hfTE9HUyk7Ci0KLSAgICBteXNxbF9tdXRl eF91bmxvY2sobG9nX2xvY2spOwogICB9CiAgIERCVUdfUkVUVVJOKDApOyAKIH0KCj09PSBtb2Rp ZmllZCBmaWxlICdzcWwvc3FsX3JlcGwuY2MnCi0tLSBhL3NxbC9zcWxfcmVwbC5jYwkyMDEwLTEy LTA3IDE2OjU1OjI1ICswMDAwCisrKyBiL3NxbC9zcWxfcmVwbC5jYwkyMDExLTAxLTE4IDE3OjM4 OjEwICswMDAwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAicnBsX2ZpbHRlci5oIgogI2lu Y2x1ZGUgPG15X2Rpci5oPgogI2luY2x1ZGUgInJwbF9oYW5kbGVyLmgiCisjaW5jbHVkZSAiZGVi dWdfc3luYy5oIgogCiBpbnQgbWF4X2JpbmxvZ19kdW1wX2V2ZW50cyA9IDA7IC8vIHVubGltaXRl ZAogbXlfYm9vbCBvcHRfc3BvcmFkaWNfYmlubG9nX2R1bXBfZmFpbCA9IDA7CkBAIC02OTMsNiAr Njk0LDE5IEBAIGltcG9zc2libGUgcG9zaXRpb24iOwogICAgICAgICBjb29yZC0+cG9zPSB1aW50 NGtvcnIocGFja2V0LT5wdHIoKSArIGV2X29mZnNldCArIExPR19QT1NfT0ZGU0VUKTsKIAogICAg ICAgZXZlbnRfdHlwZT0gKExvZ19ldmVudF90eXBlKSgoKnBhY2tldClbTE9HX0VWRU5UX09GRlNF VCtldl9vZmZzZXRdKTsKKyAgICAgIERCVUdfRVhFQ1VURV9JRigiZHVtcF90aHJlYWRfd2FpdF9i ZWZvcmVfc2VuZF94aWQiLAorICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChldmVudF90eXBlID09IFhJRF9FVkVOVCkKKyAgICAgICAgICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0X2ZsdXNoKG5ldCk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgYWN0W109CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIm5vdyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndhaXRfZm9y IHNpZ25hbC5jb250aW51ZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgIERCVUdfQVNTRVJU KG9wdF9kZWJ1Z19zeW5jX3RpbWVvdXQgPiAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg REJVR19BU1NFUlQoIWRlYnVnX3N5bmNfc2V0X2FjdGlvbihjdXJyZW50X3RoZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVFJJ TkdfV0lUSF9MRU4oYWN0KSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICAgICAgIH0pOwogICAgICAgaWYgKGV2ZW50X3R5cGUgPT0gRk9STUFUX0RFU0NSSVBU SU9OX0VWRU5UKQogICAgICAgewogICAgICAgICBiaW5sb2dfY2FuX2JlX2NvcnJ1cHRlZD0gdGVz dCgoKnBhY2tldClbRkxBR1NfT0ZGU0VUK2V2X29mZnNldF0gJgpAQCAtNzE4LDYgKzczMiwxNCBA QCBpbXBvc3NpYmxlIHBvc2l0aW9uIjsKIAlnb3RvIGVycjsKICAgICAgIH0KIAorICAgICAgREJV R19FWEVDVVRFX0lGKCJkdW1wX3RocmVhZF93YWl0X2JlZm9yZV9zZW5kX3hpZCIsCisgICAgICAg ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50X3R5cGUg PT0gWElEX0VWRU5UKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICAgICAgICAgICBuZXRfZmx1c2gobmV0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgICAgICB9KTsKKwogICAgICAgREJVR19QUklOVCgiaW5mbyIsICgibG9n IGV2ZW50IGNvZGUgJWQiLCBldmVudF90eXBlKSk7CiAgICAgICBpZiAoZXZlbnRfdHlwZSA9PSBM T0FEX0VWRU5UKQogICAgICAgewoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvbmRiL3Rlc3Qv cnVuLXRlc3Qvc2V0dXAuY3BwJwotLS0gYS9zdG9yYWdlL25kYi90ZXN0L3J1bi10ZXN0L3NldHVw LmNwcAkyMDA5LTEwLTAyIDA4OjI1OjUzICswMDAwCisrKyBiL3N0b3JhZ2UvbmRiL3Rlc3QvcnVu LXRlc3Qvc2V0dXAuY3BwCTIwMTEtMDEtMTcgMDc6NDQ6MzcgKzAwMDAKQEAgLTEwNSw3ICsxMDUs NyBAQCBzZXR1cF9jb25maWcoYXRydF9jb25maWcmIGNvbmZpZykKICAgICAgKi8KICAgICBmb3Ig KGogPSAwOyBqPChzaXplX3QpYXJnYzsgaisrKQogICAgIHsKLSAgICAgIGlmICh0bXBbal0gPT0g YXJnc19zZXBhcmF0b3IpICAgICAgICAgICAgIC8qIHNraXAgYXJndW1lbnRzIHNlcGFyYXRvciAq LworICAgICAgaWYgKG15X2dldG9wdF9pc19hcmdzX3NlcGFyYXRvcih0bXBbal0pKSAvKiBza2lw IGFyZ3VtZW50cyBzZXBhcmF0b3IgKi8KICAgICAgICAgY29udGludWU7CiAgICAgICBmb3IgKGsg PSAwOyBwcm9jX2FyZ3Nba10ubmFtZTsgaysrKQogICAgICAgewpAQCAtMzc1LDcgKzM3NSw3IEBA IGxvYWRfb3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YsIGludAogICAgICAqICBTa2lwIHRo ZSBzZXBhcmF0b3IgZm9yIGFyZ3VtZW50cyBmcm9tIGNvbmZpZyBmaWxlIGFuZCBjb21tYW5kCiAg ICAgICogIGxpbmUKICAgICAgKi8KLSAgICBpZiAoYXJndltpXSA9PSBhcmdzX3NlcGFyYXRvcikK KyAgICBpZiAobXlfZ2V0b3B0X2lzX2FyZ3Nfc2VwYXJhdG9yKGFyZ3ZbaV0pKQogICAgICAgY29u dGludWU7CiAgICAgZm9yIChzaXplX3QgaiA9IDA7IGZfb3B0aW9uc1tqXS5uYW1lOyBqKyspCiAg ICAgewoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0cmluZ3MveG1sLmMnCi0tLSBhL3N0cmluZ3MveG1s LmMJMjAxMC0wNy0wMiAxODozMDo0NyArMDAwMAorKysgYi9zdHJpbmdzL3htbC5jCTIwMTEtMDEt MTggMDY6Mzg6NDEgKzAwMDAKQEAgLTEwNiw2ICsxMDYsMTMgQEAgc3RhdGljIHZvaWQgbXlfeG1s X25vcm1fdGV4dChNWV9YTUxfQVRUUgogfQogCiAKK3N0YXRpYyBpbmxpbmUgbXlfYm9vbAorbXlf eG1sX3BhcnNlcl9wcmVmaXhfY21wKE1ZX1hNTF9QQVJTRVIgKnAsIGNvbnN0IGNoYXIgKnMsIHNp emVfdCBzbGVuKQoreworICByZXR1cm4gKHAtPmN1ciArIHNsZW4gPiBwLT5lbmQpIHx8IG1lbWNt cChwLT5jdXIsIHMsIHNsZW4pOworfQorCisKIHN0YXRpYyBpbnQgbXlfeG1sX3NjYW4oTVlfWE1M X1BBUlNFUiAqcCxNWV9YTUxfQVRUUiAqYSkKIHsKICAgaW50IGxleDsKQEAgLTEyMywxNiArMTMw LDIwIEBAIHN0YXRpYyBpbnQgbXlfeG1sX3NjYW4oTVlfWE1MX1BBUlNFUiAqcCwKICAgYS0+YmVn PXAtPmN1cjsKICAgYS0+ZW5kPXAtPmN1cjsKICAgCi0gIGlmICgocC0+ZW5kIC0gcC0+Y3VyID4g MykgJiYgIW1lbWNtcChwLT5jdXIsIjwhLS0iLDQpKQorICBpZiAoIW15X3htbF9wYXJzZXJfcHJl Zml4X2NtcChwLCBDX1NUUklOR19XSVRIX0xFTigiPCEtLSIpKSkKICAgewotICAgIGZvciAoOyAo cC0+Y3VyIDwgcC0+ZW5kKSAmJiBtZW1jbXAocC0+Y3VyLCAiLS0+IiwgMyk7IHAtPmN1cisrKQot ICAgIHt9Ci0gICAgaWYgKCFtZW1jbXAocC0+Y3VyLCAiLS0+IiwgMykpCi0gICAgICBwLT5jdXIr PTM7CisgICAgZm9yICg7IHAtPmN1ciA8IHAtPmVuZDsgcC0+Y3VyKyspCisgICAgeworICAgICAg aWYgKCFteV94bWxfcGFyc2VyX3ByZWZpeF9jbXAocCwgQ19TVFJJTkdfV0lUSF9MRU4oIi0tPiIp KSkKKyAgICAgIHsKKyAgICAgICAgcC0+Y3VyKz0gMzsKKyAgICAgICAgYnJlYWs7CisgICAgICB9 CisgICAgfQogICAgIGEtPmVuZD1wLT5jdXI7CiAgICAgbGV4PU1ZX1hNTF9DT01NRU5UOwogICB9 Ci0gIGVsc2UgaWYgKCFtZW1jbXAocC0+Y3VyLCAiPCFbQ0RBVEFbIiw5KSkKKyAgZWxzZSBpZiAo IW15X3htbF9wYXJzZXJfcHJlZml4X2NtcChwLCBDX1NUUklOR19XSVRIX0xFTigiPCFbQ0RBVEFb IikpKQogICB7CiAgICAgcC0+Y3VyKz0gOTsKICAgICBmb3IgKDsgcC0+Y3VyIDwgcC0+ZW5kIC0g MiA7IHAtPmN1cisrKQoKTm8gYnVuZGxlIChyZWFzb246IHJldmlzaW9uIGlzIGEgbWVyZ2UpLg==