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: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.4.1-14 Date: Mon, 29 Jun 2026 12:24:36 GMT Message-ID: <178273587627.1.8559574210358534027.rpms-gcc-d5843666e979@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: d5843666e97920c3c2271e41716c1b79272de390 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogZDU4NDM2NjZlOTc5MjBjM2MyMjcxZTQxNzE2YzFiNzky NzJkZTM5MApBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOS0wOS0xNlQxMzoyNzowNSswMDowMApTdGF0cyAgOiArMTA5OC8tMTIzIGlu IDIgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dj Yy9jL2Q1ODQzNjY2ZTk3OTIwYzNjMjI3MWU0MTcxNmMxYjc5MjcyZGUzOTA/YnJhbmNoPXJoZWwt ZjQxLWJhc2UKCkxvZzoKNC40LjEtMTQKCi0tLQpkaWZmIC0tZ2l0IGEvZ2NjLnNwZWMgYi9nY2Mu c3BlYwppbmRleCAwYjUwNTJhLi4zODY5YmE0IDEwMDY0NAotLS0gYS9nY2Muc3BlYworKysgYi9n Y2Muc3BlYwpAQCAtMSw5ICsxLDkgQEAKLSVnbG9iYWwgREFURSAyMDA5MDkxMQotJWdsb2JhbCBT Vk5SRVYgMTUxNjMwCislZ2xvYmFsIERBVEUgMjAwOTA5MTYKKyVnbG9iYWwgU1ZOUkVWIDE1MTc0 NgogJWdsb2JhbCBnY2NfdmVyc2lvbiA0LjQuMQogIyBOb3RlLCBnY2NfcmVsZWFzZSBtdXN0IGJl IGludGVnZXIsIGlmIHlvdSB3YW50IHRvIGFkZCBzdWZmaXhlcyB0bwogIyAle3JlbGVhc2V9LCBh cHBlbmQgdGhlbSBhZnRlciAle2djY19yZWxlYXNlfSBvbiBSZWxlYXNlOiBsaW5lLgotJWdsb2Jh bCBnY2NfcmVsZWFzZSAxMworJWdsb2JhbCBnY2NfcmVsZWFzZSAxNAogJWdsb2JhbCBfdW5wYWNr YWdlZF9maWxlc190ZXJtaW5hdGVfYnVpbGQgMAogJWdsb2JhbCBtdWx0aWxpYl82NF9hcmNocyBz cGFyYzY0IHBwYzY0IHMzOTB4IHg4Nl82NAogJWdsb2JhbCBpbmNsdWRlX2dhcHBsZXR2aWV3ZXIg MQpAQCAtMTYyLDkgKzE2Miw4IEBAIFBhdGNoMTg6IGdjYzQ0LWxpYnN0ZGMrKy1kb2NzLnBhdGNo CiBQYXRjaDE5OiBnY2M0NC12dGEtY2ZnZXhwYW5kLXB0ci1tb2RlLXByNDEyNDgucGF0Y2gKIFBh dGNoMjA6IGdjYzQ0LXBvd2VycGMtbGliZ2NjX3Nfc28ucGF0Y2gKIFBhdGNoMjE6IGdjYzQ0LXBy NDExNzUucGF0Y2gKLVBhdGNoMjI6IGdjYzQ0LXByNDExNzUtMi5wYXRjaAotUGF0Y2gyMzogZ2Nj NDQtcmg1MTgzMDMucGF0Y2gKLVBhdGNoMjQ6IGdjYzQ0LXJoNTIyNTc3LnBhdGNoCitQYXRjaDIy OiBnY2M0NC1yaDUxODMwMy5wYXRjaAorUGF0Y2gyMzogZ2NjNDQtcmg1MjI1NzcucGF0Y2gKIAog UGF0Y2gxMDAwOiBmYXN0amFyLTAuOTctc2VnZmF1bHQucGF0Y2gKIApAQCAtNDczLDkgKzQ3Miw4 IEBAIHdoaWNoIGFyZSByZXF1aXJlZCB0byBjb21waWxlIHdpdGggdGhlIEdOQVQuCiAlcGF0Y2gx OSAtcDAgLWIgLnZ0YS1jZmdleHBhbmQtcHRyLW1vZGUtcHI0MTI0OH4KICVwYXRjaDIwIC1wMCAt YiAucG93ZXJwYy1saWJnY2Nfc19zb34KICVwYXRjaDIxIC1wMCAtYiAucHI0MTE3NX4KLSVwYXRj aDIyIC1wMCAtYiAucHI0MTE3NS0yfgotJXBhdGNoMjMgLXAwIC1iIC5yaDUxODMwM34KLSVwYXRj aDI0IC1wMCAtYiAucmg1MjI1Nzd+CislcGF0Y2gyMiAtcDAgLWIgLnJoNTE4MzAzfgorJXBhdGNo MjMgLXAwIC1iIC5yaDUyMjU3N34KIAogIyBUaGlzIHRlc3RjYXNlIGRvZXNuJ3QgY29tcGlsZS4K IHJtIGxpYmphdmEvdGVzdHN1aXRlL2xpYmphdmEubGFuZy9QUjM1MDIwKgpAQCAtMTgzMSw2ICsx ODI5LDE0IEBAIGZpCiAlZG9jIHJwbS5kb2MvY2hhbmdlbG9ncy9saWJtdWRmbGFwL0NoYW5nZUxv ZyoKIAogJWNoYW5nZWxvZworKiBXZWQgU2VwIDE2IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJA cmVkaGF0LmNvbT4gNC40LjEtMTQKKy0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKKyAgLSBQ UnMgZm9ydHJhbi8zOTg3NiwgdHJlZS1vcHRpbWl6YXRpb24vNDExMDEKKy0gYXNtIGdvdG8gc3Vw cG9ydAorLSBWVEEgZGVsYXllZCBicmFuY2ggc2NoZWR1bGluZyBmaXggKFBSIGJvb3RzdHJhcC80 MTM0OSkKKy0gcG93ZXI3IFZTWCBmaXggKFBSIHRhcmdldC80MTIxMCkKKy0gcHBjIGJzd2FwIGZp eGVzIChQUiB0YXJnZXQvNDEzMzEpCisKICogRnJpIFNlcCAxMSAyMDA5IEpha3ViIEplbGluZWsg PGpha3ViQHJlZGhhdC5jb20+IDQuNC4xLTEzCiAtIGZpeCBJQ0UgaW4gZGVidWdpbmZvIG91dHB1 dCB3aXRoIEJMT0NLX05PTkxPQ0FMSVpFRF9WQVJTICgjNTE4MzAzKQogLSB3cmFwX2NvbnN0YW50 IHdoZW4gcHJvcGFnYXRpbmcgZm9yIHN1YnN0IGluIGRlYnVnIGluIHRoZSBjb21iaW5lciAoIzUy MjU3NykKCmRpZmYgLS1naXQgYS9nY2M0NC1wcjQxMTc1LnBhdGNoIGIvZ2NjNDQtcHI0MTE3NS5w YXRjaAppbmRleCBhY2ZmZjU4Li44NTUzOTk5IDEwMDY0NAotLS0gYS9nY2M0NC1wcjQxMTc1LnBh dGNoCisrKyBiL2djYzQ0LXByNDExNzUucGF0Y2gKQEAgLTEsMjkgKzEsNTIwIEBACi0yMDA5LTA5 LTEwICBOYXRoYW4gRnJveWQgIDxmcm95ZG5qQGNvZGVzb3VyY2VyeS5jb20+CisyMDA5LTA5LTE1 ICBOYXRoYW4gRnJveWQgIDxmcm95ZG5qQGNvZGVzb3VyY2VyeS5jb20+CisJICAgIEpha3ViIEpl bGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgogCi0JUFIgdGFyZ2V0LzQwNjc3CiAJUFIgdGFyZ2V0 LzQxMTc1CisJUFIgdGFyZ2V0LzQwNjc3CiAJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChub19n bG9iYWxfcmVnc19hYm92ZSk6IEZpeCBwcmVjZWRlbmNlCiAJcHJvYmxlbS4KKwkoU0FWUkVTX05P SU5MSU5FX0dQUlNfU0FWRVNfTFIsIFNBVlJFU19OT0lOTElORV9GUFJTX1NBVkVTX0xSLAorCVNB VlJFU19OT0lOTElORV9GUFJTX0RPRVNOVF9SRVNUT1JFX0xSKTogTmV3IHN0cmF0ZWd5IGJpdHMu CisJKHJzNjAwMF9zYXZyZXNfc3RyYXRlZ3kpOiBBbHdheXMgc2F2ZSBGUCByZWdpc3RlcnMgaW5s aW5lIGlmIHRoZQorCXRhcmdldCBkb2Vzbid0IHN1cHBvcnQgaGFyZHdhcmUgZG91YmxlLXByZWNp c2lvbi4gIFNldCB0aGUgYWJvdmUKKwliaXRzIGluIHJldHVybiB2YWx1ZSB3aGVuIG5lZWRlZC4K IAkocnM2MDAwX3NhdnJlc19yb3V0aW5lX3N5bSk6IEZpeCBjb21wdXRhdGlvbiBmb3IgY2FjaGUg c2VsZWN0b3IuCi0JTWFyayB0aGUgZ2VuZXJhdGVkIHN5bWJvbCBhcyBhIGZ1bmN0aW9uLgotCShy czYwMDBfZW1pdF9wcm9sb2d1ZSk6IENvcnJlY3QgdXNlIG9mIGNhbGxfdXNlZF9yZWdzLgorCU1h cmsgdGhlIGdlbmVyYXRlZCBzeW1ib2wgYXMgYSBmdW5jdGlvbi4gIFJlbmFtZSBleGl0cCBhcmd1 bWVudCB0bworCWxyLiAgTW92ZSBjb2RlIGZvciBkZXRlcm1pbmluZyB0aGUgbmFtZSBvZiB0aGUg c3ltYm9sLi4uCisJKHJzNjAwMF9zYXZyZXNfcm91dGluZV9uYW1lKTogLi4uaGVyZS4gIE5ldyBm dW5jdGlvbi4gIEFkZCBjYXNlcyBmb3IKKwlnZXR0aW5nIHRoZSBuYW1lcyByaWdodCBvbiBBSVgg YW5kIDY0LWJpdCBMaW51eC4KKwkoc2F2cmVzX3JvdXRpbmVfbmFtZSk6IE5ldyB2YXJpYWJsZS4K KwkocnM2MDAwX21ha2Vfc2F2cmVzX3J0eCk6IFJlbmFtZSBleGl0cCBhcmd1bWVudCB0byBsci4g IERvbid0IGFzc2VydAorCWxyIGlzbid0IHNldCB3aGVuIHNhdmVwLiAgVXNlIHIxMiByZXNwLiBy MSBpbnN0ZWFkIG9mIHIxMSBkZXBlbmRpbmcKKwlvbiB3aGF0IHRoZSB0YXJnZXQgcm91dGluZSB1 c2VzIGFzIGEgYmFzZSByZWdpc3Rlci4gIElmIHNhdmVwICYmIGxyCisJZGVzY3JpYmUgc2F2aW5n IG9mIHIwIGludG8gbWVtb3J5IHNsb3QuCisJKHJzNjAwMF9lbWl0X3Byb2xvZ3VlKTogQ29ycmVj dCB1c2Ugb2YgY2FsbF91c2VkX3JlZ3MuICBGaXggb3V0IG9mCisJbGluZSBjYWxscyBmb3IgQUlY IEFCSS4KKwkocnM2MDAwX291dHB1dF9mdW5jdGlvbl9wcm9sb2d1ZSk6IFVzZSByczYwMDBfc2F2 cmVzX3JvdXRpbmVfbmFtZSB0bworCWRldGVybWluZSBGUCBzYXZlL3Jlc3RvcmUgZnVuY3Rpb25z LgorCShyczYwMDBfZW1pdF9zdGFja19yZXNldCk6IEhhbmRsZSBzYXZyZXMgaWYgc3Bfb2Zmc2V0 ICE9IDAgYW5kCisJZnJhbWVfcmVnX3J0eCAhPSBzcF9yZWdfcnR4LiAgVXNlIGdlbl9hZGQzX2lu c24gaW5zdGVhZCBvZgorCWdlbl9hZGRzaTMuCiAJKHJzNjAwMF9lbWl0X2VwaWxvZ3VlKTogQWRq dXN0IGNvbXB1dGF0aW9uIG9mIHJlc3RvcmVfbHIuCiAJRHVwbGljYXRlIHJlc3RvcmF0aW9uIG9m IExSIGFuZCBleGVjdXRlIHRoZSBhcHByb3ByaWF0ZSBvbmUKLQlkZXBlbmRpbmcgb24gd2hldGhl ciBHUFJzIGFyZSBiZWluZyByZXN0b3JlZCBpbmxpbmUuCi0JKiBjb25maWcvcnM2MDAwL3JzNjAw MC5tZCAoKnNhdmVfZ3ByZWdzXzxtb2RlPik6IFVzZSBleHBsaWNpdAotCW1hdGNoIGZvciByZWdp c3RlciAxMS4KLQkoKnNhdmVfZnByZWdzXzxtb2RlPik6IExpa2V3aXNlLgotCSgqcmVzdG9yZV9n cHJlZ3NfPG1vZGU+KTogTGlrZXdpc2UuCi0JKCpyZXR1cm5fYW5kX3Jlc3RvcmVfZ3ByZWdzXzxt b2RlPik6IExpa2V3aXNlLgotCSgqcmV0dXJuX2FuZF9yZXN0b3JlX2ZwcmVnc188bW9kZT4pOiBM aWtld2lzZS4KKwlkZXBlbmRpbmcgb24gd2hldGhlciBHUFJzIGFyZSBiZWluZyByZXN0b3JlZCBp bmxpbmUuICBTZXQgcjExIGZyb20KKwlvZmZzZXR0ZWQgZnJhbWVfcmVnX3J0eCBpbnN0ZWFkIG9m IHNwX3JlZ19ydHg7IGlmIGZyYW1lX3JlZ19ydHggaXMKKwlyMTEsIGFkanVzdCBzcF9vZmZzZXQu ICBVc2UgZ2VuX2FkZDNfaW5zbiBpbnN0ZWFkIG9mIGdlbl9hZGRzaTMuCisJRml4IG91dCBvZiBs aW5lIGNhbGxzIGZvciBBSVggQUJJLgorCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKCpyZXR1 cm5fYW5kX3Jlc3RvcmVfZnByZWdzX2FpeF88bW9kZT4pOgorCU5ldyBpbnNuLgogCSogY29uZmln L3JzNjAwMC9zcGUubWQgKCpzYXZlX2dwcmVnc19zcGUpOiBVc2UgZXhwbGljaXQgbWF0Y2ggZm9y CiAJcmVnaXN0ZXIgMTEuCiAJKCpyZXN0b3JlX2dwcmVnc19zcGUpOiBMaWtld2lzZS4KIAkoKnJl dHVybl9hbmRfcmVzdG9yZV9ncHJlZ3Nfc3BlKTogTGlrZXdpc2UuCisJKiBjb25maWcvcnM2MDAw L2xpbnV4NjQuaCAoU0FWRV9GUF9TVUZGSVgsIFJFU1RPUkVfRlBfU1VGRklYKToKKwlEZWZpbmUg dG8gZW1wdHkgc3RyaW5nIHVuY29uZGl0aW9uYWxseS4KKwkqIGNvbmZpZy9yczYwMDAvc3lzdjQu aCAoU0FWRV9GUF9TVUZGSVgsIFJFU1RPUkVfRlBfU1VGRklYKToKKwlEZWZpbmUgdG8gZW1wdHkg c3RyaW5nIHVuY29uZGl0aW9uYWxseS4KKwkoR1BfU0FWRV9JTkxJTkUsIEZQX1NBVkVfSU5MSU5F KTogSGFuZGxlIFRBUkdFVF82NEJJVCB0aGUgc2FtZSBhcworCSFUQVJHRVRfNjRCSVQuCisKKwkq IGdjYy50YXJnZXQvcG93ZXJwYy9wcjQxMTc1LmM6IE5ldyB0ZXN0LgogCi0tLS0gZ2NjL2NvbmZp Zy9yczYwMDAvc3BlLm1kLmpqCTIwMDktMDgtMzEgMjM6MzA6MTQuMzUyNTI2OTUyICswMjAwCi0r KysgZ2NjL2NvbmZpZy9yczYwMDAvc3BlLm1kCTIwMDktMDktMDkgMjA6NDY6MDguMzkxNDA0ODUx ICswMjAwCi1AQCAtMzE1Niw5ICszMTU2LDkgQEAKKy0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcG93ZXJwYy9wcjQxMTc1LmMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Bvd2VycGMvcHI0MTE3NS5jCShyZXZpc2lvbiAxNTE3MjkpCitAQCAtMCwwICsxLDQ2 MSBAQAorKy8qIFBSIHRhcmdldC80MTE3NSAqLworKy8qIHsgZGctZG8gcnVuIH0gKi8KKysvKiB7 IGRnLW9wdGlvbnMgIi1PcyIgfSAqLworKworKyNkZWZpbmUgWDIobikgWDEobiMjMCkgWDEobiMj MSkKKysjZGVmaW5lIFg0KG4pIFgyKG4jIzApIFgyKG4jIzEpCisrI2RlZmluZSBYOChuKSBYNChu IyMwKSBYNChuIyMxKQorKworKyNpZm5kZWYgX19TUEVfXworKyNkZWZpbmUgRkxPQVRfUkVHX0NP TlNUUkFJTlQgImYiCisrI2Vsc2UKKysjZGVmaW5lIEZMT0FUX1JFR19DT05TVFJBSU5UICJyIgor KyNlbmRpZgorKworK3ZvbGF0aWxlIGludCBsbDsKKysKKytfX2F0dHJpYnV0ZV9fKChub2lubGlu ZSkpIHZvaWQKKytmb28gKHZvaWQpCisreworKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogOiAibWVt b3J5Iik7CisrfQorKworK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgdm9pZAorK2JhciAoY2hh ciAqcCkKKyt7CisrICBhc20gdm9sYXRpbGUgKCIiIDogOiAiciIgKHApIDogIm1lbW9yeSIpOwor K30KKysKKytfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIHZvaWQKKytmMSAodm9pZCkKKyt7Cisr ICBpbnQgbWVtOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgaW50IGdwciMjbiA9IDA7Cisr ICBYOChhKSBYOChiKSBYOChjKQorKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgIityIiAoZ3By IyNuKSwKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYOChhKSAiPW0iIChtZW0pIDogOiAibWVtb3J5 Iik7CisrICBhc20gdm9sYXRpbGUgKCIiIDogWDgoYikgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIp OworKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4KGMpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsK KysgIGZvbyAoKTsKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pICJyIiAoZ3ByIyNuKSwKKysg IGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGEpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFz bSB2b2xhdGlsZSAoIiIgOiA6IFg4KGIpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFzbSB2 b2xhdGlsZSAoIiIgOiA6IFg4KGMpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKyt9CisrCisrX19h dHRyaWJ1dGVfXygobm9pbmxpbmUpKSB2b2lkCisrZjIgKHZvaWQpCisreworKyAgaW50IG1lbTsK KysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pIGludCBncHIjI24gPSAwOworKyAgWDgoYSkgWDgo YikgWDgoYykKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pICIrciIgKGdwciMjbiksCisrICBh c20gdm9sYXRpbGUgKCIiIDogWDgoYSkgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIpOworKyAgYXNt IHZvbGF0aWxlICgiIiA6IFg4KGIpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGFzbSB2 b2xhdGlsZSAoIiIgOiBYOChjKSAiPW0iIChtZW0pIDogOiAibWVtb3J5Iik7CisrICBjaGFyICpw cCA9IF9fYnVpbHRpbl9hbGxvY2EgKGxsKTsKKysgIGJhciAocHApOworKyN1bmRlZiBYMQorKyNk ZWZpbmUgWDEobikgInIiIChncHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgoYSkg Im0iIChtZW0pIDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgoYikgIm0i IChtZW0pIDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgoYykgIm0iICht ZW0pIDogIm1lbW9yeSIpOworK30KKysKKytfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIHZvaWQK KytmMyAodm9pZCkKKyt7CisrICBpbnQgbWVtOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikg aW50IGdwciMjbiA9IDA7CisrICBYOChhKSBYOChiKSBYOChjKQorKyN1bmRlZiBYMQorKyNkZWZp bmUgWDEobikgIityIiAoZ3ByIyNuKSwKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYOChhKSAiPW0i IChtZW0pIDogOiAibWVtb3J5Iik7CisrICBhc20gdm9sYXRpbGUgKCIiIDogWDgoYikgIj1tIiAo bWVtKSA6IDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4KGMpICI9bSIgKG1l bSkgOiA6ICJtZW1vcnkiKTsKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pICJyIiAoZ3ByIyNu KSwKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGEpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsK KysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGIpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysg IGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGMpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKyt9Cisr CisrI2lmbmRlZiBfX05PX0ZQUlNfXworK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgdm9pZAor K2Y0ICh2b2lkKQorK3sKKysgIGludCBtZW07CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSBp bnQgZ3ByIyNuID0gMDsKKysgIFg4KGEpIFg4KGIpIFg4KGMpCisrI3VuZGVmIFgxCisrI2RlZmlu ZSBYMShuKSBkb3VibGUgZnByIyNuID0gMC4wOworKyAgWDQoZCkKKysjdW5kZWYgWDEKKysjZGVm aW5lIFgxKG4pICIrciIgKGdwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogWDgoYSkgIj1t IiAobWVtKSA6IDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4KGIpICI9bSIg KG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYOChjKSAiPW0iICht ZW0pIDogOiAibWVtb3J5Iik7CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSAiKyIgRkxPQVRf UkVHX0NPTlNUUkFJTlQgKGZwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogWDQoZCkgIj1t IiAobWVtKSA6IDogIm1lbW9yeSIpOworKyAgZm9vICgpOworKyN1bmRlZiBYMQorKyNkZWZpbmUg WDEobikgInIiIChncHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgoYSkgIm0iICht ZW0pIDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgoYikgIm0iIChtZW0p IDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgoYykgIm0iIChtZW0pIDog Im1lbW9yeSIpOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgRkxPQVRfUkVHX0NPTlNUUkFJ TlQgKGZwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogOiBYNChkKSAibSIgKG1lbSkgOiAi bWVtb3J5Iik7CisrfQorKworK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgdm9pZAorK2Y1ICh2 b2lkKQorK3sKKysgIGludCBtZW07CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSBpbnQgZ3By IyNuID0gMDsKKysgIFg4KGEpIFg4KGIpIFg4KGMpCisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShu KSBkb3VibGUgZnByIyNuID0gMC4wOworKyAgWDQoZCkKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgx KG4pICIrciIgKGdwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogWDgoYSkgIj1tIiAobWVt KSA6IDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4KGIpICI9bSIgKG1lbSkg OiA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYOChjKSAiPW0iIChtZW0pIDog OiAibWVtb3J5Iik7CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSAiKyIgRkxPQVRfUkVHX0NP TlNUUkFJTlQgKGZwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogWDQoZCkgIj1tIiAobWVt KSA6IDogIm1lbW9yeSIpOworKyAgY2hhciAqcHAgPSBfX2J1aWx0aW5fYWxsb2NhIChsbCk7Cisr ICBiYXIgKHBwKTsKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pICJyIiAoZ3ByIyNuKSwKKysg IGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGEpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFz bSB2b2xhdGlsZSAoIiIgOiA6IFg4KGIpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFzbSB2 b2xhdGlsZSAoIiIgOiA6IFg4KGMpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysjdW5kZWYgWDEK KysjZGVmaW5lIFgxKG4pIEZMT0FUX1JFR19DT05TVFJBSU5UIChmcHIjI24pLAorKyAgYXNtIHZv bGF0aWxlICgiIiA6IDogWDQoZCkgIm0iIChtZW0pIDogIm1lbW9yeSIpOworK30KKysKKytfX2F0 dHJpYnV0ZV9fKChub2lubGluZSkpIHZvaWQKKytmNiAodm9pZCkKKyt7CisrICBpbnQgbWVtOwor KyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgaW50IGdwciMjbiA9IDA7CisrICBYOChhKSBYOChi KSBYOChjKQorKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgZG91YmxlIGZwciMjbiA9IDAuMDsK KysgIFg0KGQpCisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSAiK3IiIChncHIjI24pLAorKyAg YXNtIHZvbGF0aWxlICgiIiA6IFg4KGEpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGFz bSB2b2xhdGlsZSAoIiIgOiBYOChiKSAiPW0iIChtZW0pIDogOiAibWVtb3J5Iik7CisrICBhc20g dm9sYXRpbGUgKCIiIDogWDgoYykgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIpOworKyN1bmRlZiBY MQorKyNkZWZpbmUgWDEobikgIisiIEZMT0FUX1JFR19DT05TVFJBSU5UIChmcHIjI24pLAorKyAg YXNtIHZvbGF0aWxlICgiIiA6IFg0KGQpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysjdW5k ZWYgWDEKKysjZGVmaW5lIFgxKG4pICJyIiAoZ3ByIyNuKSwKKysgIGFzbSB2b2xhdGlsZSAoIiIg OiA6IFg4KGEpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6 IFg4KGIpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4 KGMpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pIEZM T0FUX1JFR19DT05TVFJBSU5UIChmcHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDQo ZCkgIm0iIChtZW0pIDogIm1lbW9yeSIpOworK30KKysKKytfX2F0dHJpYnV0ZV9fKChub2lubGlu ZSkpIHZvaWQKKytmNyAodm9pZCkKKyt7CisrICBpbnQgbWVtOworKyN1bmRlZiBYMQorKyNkZWZp bmUgWDEobikgaW50IGdwciMjbiA9IDA7CisrICBYOChhKSBYOChiKSBYOChjKQorKyN1bmRlZiBY MQorKyNkZWZpbmUgWDEobikgZG91YmxlIGZwciMjbiA9IDAuMDsKKysgIFgyKGQpCisrI3VuZGVm IFgxCisrI2RlZmluZSBYMShuKSAiK3IiIChncHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6 IFg4KGEpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBY OChiKSAiPW0iIChtZW0pIDogOiAibWVtb3J5Iik7CisrICBhc20gdm9sYXRpbGUgKCIiIDogWDgo YykgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIpOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikg IisiIEZMT0FUX1JFR19DT05TVFJBSU5UIChmcHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6 IFgyKGQpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGZvbyAoKTsKKysjdW5kZWYgWDEK KysjZGVmaW5lIFgxKG4pICJyIiAoZ3ByIyNuKSwKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4 KGEpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGIp ICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGMpICJt IiAobWVtKSA6ICJtZW1vcnkiKTsKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pIEZMT0FUX1JF R19DT05TVFJBSU5UIChmcHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDIoZCkgIm0i IChtZW0pIDogIm1lbW9yeSIpOworK30KKysKKytfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIHZv aWQKKytmOCAodm9pZCkKKyt7CisrICBpbnQgbWVtOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEo bikgaW50IGdwciMjbiA9IDA7CisrICBYOChhKSBYOChiKSBYOChjKQorKyN1bmRlZiBYMQorKyNk ZWZpbmUgWDEobikgZG91YmxlIGZwciMjbiA9IDAuMDsKKysgIFgyKGQpCisrI3VuZGVmIFgxCisr I2RlZmluZSBYMShuKSAiK3IiIChncHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4KGEp ICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYOChiKSAi PW0iIChtZW0pIDogOiAibWVtb3J5Iik7CisrICBhc20gdm9sYXRpbGUgKCIiIDogWDgoYykgIj1t IiAobWVtKSA6IDogIm1lbW9yeSIpOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgIisiIEZM T0FUX1JFR19DT05TVFJBSU5UIChmcHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IFgyKGQp ICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGNoYXIgKnBwID0gX19idWlsdGluX2FsbG9j YSAobGwpOworKyAgYmFyIChwcCk7CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSAiciIgKGdw ciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogOiBYOChhKSAibSIgKG1lbSkgOiAibWVtb3J5 Iik7CisrICBhc20gdm9sYXRpbGUgKCIiIDogOiBYOChiKSAibSIgKG1lbSkgOiAibWVtb3J5Iik7 CisrICBhc20gdm9sYXRpbGUgKCIiIDogOiBYOChjKSAibSIgKG1lbSkgOiAibWVtb3J5Iik7Cisr I3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSBGTE9BVF9SRUdfQ09OU1RSQUlOVCAoZnByIyNuKSwK KysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFgyKGQpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKyt9 CisrCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSB2b2lkCisrZjkgKHZvaWQpCisreworKyAg aW50IG1lbTsKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pIGludCBncHIjI24gPSAwOworKyAg WDgoYSkgWDgoYikgWDgoYykKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pIGRvdWJsZSBmcHIj I24gPSAwLjA7CisrICBYMihkKQorKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgIityIiAoZ3By IyNuKSwKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYOChhKSAiPW0iIChtZW0pIDogOiAibWVtb3J5 Iik7CisrICBhc20gdm9sYXRpbGUgKCIiIDogWDgoYikgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIp OworKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4KGMpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsK KysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pICIrIiBGTE9BVF9SRUdfQ09OU1RSQUlOVCAoZnBy IyNuKSwKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYMihkKSAiPW0iIChtZW0pIDogOiAibWVtb3J5 Iik7CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSAiciIgKGdwciMjbiksCisrICBhc20gdm9s YXRpbGUgKCIiIDogOiBYOChhKSAibSIgKG1lbSkgOiAibWVtb3J5Iik7CisrICBhc20gdm9sYXRp bGUgKCIiIDogOiBYOChiKSAibSIgKG1lbSkgOiAibWVtb3J5Iik7CisrICBhc20gdm9sYXRpbGUg KCIiIDogOiBYOChjKSAibSIgKG1lbSkgOiAibWVtb3J5Iik7CisrI3VuZGVmIFgxCisrI2RlZmlu ZSBYMShuKSBGTE9BVF9SRUdfQ09OU1RSQUlOVCAoZnByIyNuKSwKKysgIGFzbSB2b2xhdGlsZSAo IiIgOiA6IFgyKGQpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKyt9CisrCisrX19hdHRyaWJ1dGVf Xygobm9pbmxpbmUpKSB2b2lkCisrZjEwICh2b2lkKQorK3sKKysgIGludCBtZW07CisrI3VuZGVm IFgxCisrI2RlZmluZSBYMShuKSBpbnQgZ3ByIyNuID0gMDsKKysgIFg4KGEpIFg4KGIpIFg0KGMp CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSBkb3VibGUgZnByIyNuID0gMC4wOworKyAgWDEo ZCkKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pICIrciIgKGdwciMjbiksCisrICBhc20gdm9s YXRpbGUgKCIiIDogWDgoYSkgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0 aWxlICgiIiA6IFg4KGIpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGls ZSAoIiIgOiBYNChjKSAiPW0iIChtZW0pIDogOiAibWVtb3J5Iik7CisrI3VuZGVmIFgxCisrI2Rl ZmluZSBYMShuKSAiKyIgRkxPQVRfUkVHX0NPTlNUUkFJTlQgKGZwciMjbiksCisrICBhc20gdm9s YXRpbGUgKCIiIDogWDEoZCkgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIpOworKyAgZm9vICgpOwor KyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgInIiIChncHIjI24pLAorKyAgYXNtIHZvbGF0aWxl ICgiIiA6IDogWDgoYSkgIm0iIChtZW0pIDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgi IiA6IDogWDgoYikgIm0iIChtZW0pIDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6 IDogWDQoYykgIm0iIChtZW0pIDogIm1lbW9yeSIpOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEo bikgRkxPQVRfUkVHX0NPTlNUUkFJTlQgKGZwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDog OiBYMShkKSAibSIgKG1lbSkgOiAibWVtb3J5Iik7CisrfQorKworK19fYXR0cmlidXRlX18oKG5v aW5saW5lKSkgdm9pZAorK2YxMSAodm9pZCkKKyt7CisrICBpbnQgbWVtOworKyN1bmRlZiBYMQor KyNkZWZpbmUgWDEobikgaW50IGdwciMjbiA9IDA7CisrICBYOChhKSBYOChiKSBYNChjKQorKyN1 bmRlZiBYMQorKyNkZWZpbmUgWDEobikgZG91YmxlIGZwciMjbiA9IDAuMDsKKysgIFgxKGQpCisr I3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSAiK3IiIChncHIjI24pLAorKyAgYXNtIHZvbGF0aWxl ICgiIiA6IFg4KGEpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAo IiIgOiBYOChiKSAiPW0iIChtZW0pIDogOiAibWVtb3J5Iik7CisrICBhc20gdm9sYXRpbGUgKCIi IDogWDQoYykgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIpOworKyN1bmRlZiBYMQorKyNkZWZpbmUg WDEobikgIisiIEZMT0FUX1JFR19DT05TVFJBSU5UIChmcHIjI24pLAorKyAgYXNtIHZvbGF0aWxl ICgiIiA6IFgxKGQpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGNoYXIgKnBwID0gX19i dWlsdGluX2FsbG9jYSAobGwpOworKyAgYmFyIChwcCk7CisrI3VuZGVmIFgxCisrI2RlZmluZSBY MShuKSAiciIgKGdwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogOiBYOChhKSAibSIgKG1l bSkgOiAibWVtb3J5Iik7CisrICBhc20gdm9sYXRpbGUgKCIiIDogOiBYOChiKSAibSIgKG1lbSkg OiAibWVtb3J5Iik7CisrICBhc20gdm9sYXRpbGUgKCIiIDogOiBYNChjKSAibSIgKG1lbSkgOiAi bWVtb3J5Iik7CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSBGTE9BVF9SRUdfQ09OU1RSQUlO VCAoZnByIyNuKSwKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFgxKGQpICJtIiAobWVtKSA6ICJt ZW1vcnkiKTsKKyt9CisrCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSB2b2lkCisrZjEyICh2 b2lkKQorK3sKKysgIGludCBtZW07CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSBpbnQgZ3By IyNuID0gMDsKKysgIFg4KGEpIFg4KGIpIFg0KGMpCisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShu KSBkb3VibGUgZnByIyNuID0gMC4wOworKyAgWDEoZCkKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgx KG4pICIrciIgKGdwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogWDgoYSkgIj1tIiAobWVt KSA6IDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4KGIpICI9bSIgKG1lbSkg OiA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYNChjKSAiPW0iIChtZW0pIDog OiAibWVtb3J5Iik7CisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSAiKyIgRkxPQVRfUkVHX0NP TlNUUkFJTlQgKGZwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogWDEoZCkgIj1tIiAobWVt KSA6IDogIm1lbW9yeSIpOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgInIiIChncHIjI24p LAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgoYSkgIm0iIChtZW0pIDogIm1lbW9yeSIpOwor KyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgoYikgIm0iIChtZW0pIDogIm1lbW9yeSIpOworKyAg YXNtIHZvbGF0aWxlICgiIiA6IDogWDQoYykgIm0iIChtZW0pIDogIm1lbW9yeSIpOworKyN1bmRl ZiBYMQorKyNkZWZpbmUgWDEobikgRkxPQVRfUkVHX0NPTlNUUkFJTlQgKGZwciMjbiksCisrICBh c20gdm9sYXRpbGUgKCIiIDogOiBYMShkKSAibSIgKG1lbSkgOiAibWVtb3J5Iik7CisrfQorKwor K19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgdm9pZAorK2YxMyAodm9pZCkKKyt7CisrICBpbnQg bWVtOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgaW50IGdwciMjbiA9IDA7CisrICBYOChh KSBYOChiKSBYMihjKQorKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgZG91YmxlIGZwciMjbiA9 IDAuMDsKKysgIFg4KGQpCisrI3VuZGVmIFgxCisrI2RlZmluZSBYMShuKSAiK3IiIChncHIjI24p LAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4KGEpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsK KysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYOChiKSAiPW0iIChtZW0pIDogOiAibWVtb3J5Iik7Cisr ICBhc20gdm9sYXRpbGUgKCIiIDogWDIoYykgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIpOworKyN1 bmRlZiBYMQorKyNkZWZpbmUgWDEobikgIisiIEZMT0FUX1JFR19DT05TVFJBSU5UIChmcHIjI24p LAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4KGQpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsK KysgIGZvbyAoKTsKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pICJyIiAoZ3ByIyNuKSwKKysg IGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGEpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFz bSB2b2xhdGlsZSAoIiIgOiA6IFg4KGIpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysgIGFzbSB2 b2xhdGlsZSAoIiIgOiA6IFgyKGMpICJtIiAobWVtKSA6ICJtZW1vcnkiKTsKKysjdW5kZWYgWDEK KysjZGVmaW5lIFgxKG4pIEZMT0FUX1JFR19DT05TVFJBSU5UIChmcHIjI24pLAorKyAgYXNtIHZv bGF0aWxlICgiIiA6IDogWDgoZCkgIm0iIChtZW0pIDogIm1lbW9yeSIpOworK30KKysKKytfX2F0 dHJpYnV0ZV9fKChub2lubGluZSkpIHZvaWQKKytmMTQgKHZvaWQpCisreworKyAgaW50IG1lbTsK KysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pIGludCBncHIjI24gPSAwOworKyAgWDgoYSkgWDgo YikgWDIoYykKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pIGRvdWJsZSBmcHIjI24gPSAwLjA7 CisrICBYOChkKQorKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgIityIiAoZ3ByIyNuKSwKKysg IGFzbSB2b2xhdGlsZSAoIiIgOiBYOChhKSAiPW0iIChtZW0pIDogOiAibWVtb3J5Iik7CisrICBh c20gdm9sYXRpbGUgKCIiIDogWDgoYikgIj1tIiAobWVtKSA6IDogIm1lbW9yeSIpOworKyAgYXNt IHZvbGF0aWxlICgiIiA6IFgyKGMpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysjdW5kZWYg WDEKKysjZGVmaW5lIFgxKG4pICIrIiBGTE9BVF9SRUdfQ09OU1RSQUlOVCAoZnByIyNuKSwKKysg IGFzbSB2b2xhdGlsZSAoIiIgOiBYOChkKSAiPW0iIChtZW0pIDogOiAibWVtb3J5Iik7CisrICBj aGFyICpwcCA9IF9fYnVpbHRpbl9hbGxvY2EgKGxsKTsKKysgIGJhciAocHApOworKyN1bmRlZiBY MQorKyNkZWZpbmUgWDEobikgInIiIChncHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IDog WDgoYSkgIm0iIChtZW0pIDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgo YikgIm0iIChtZW0pIDogIm1lbW9yeSIpOworKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDIoYykg Im0iIChtZW0pIDogIm1lbW9yeSIpOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgRkxPQVRf UkVHX0NPTlNUUkFJTlQgKGZwciMjbiksCisrICBhc20gdm9sYXRpbGUgKCIiIDogOiBYOChkKSAi bSIgKG1lbSkgOiAibWVtb3J5Iik7CisrfQorKworK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkg dm9pZAorK2YxNSAodm9pZCkKKyt7CisrICBpbnQgbWVtOworKyN1bmRlZiBYMQorKyNkZWZpbmUg WDEobikgaW50IGdwciMjbiA9IDA7CisrICBYOChhKSBYOChiKSBYMihjKQorKyN1bmRlZiBYMQor KyNkZWZpbmUgWDEobikgZG91YmxlIGZwciMjbiA9IDAuMDsKKysgIFg4KGQpCisrI3VuZGVmIFgx CisrI2RlZmluZSBYMShuKSAiK3IiIChncHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4 KGEpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiBYOChi KSAiPW0iIChtZW0pIDogOiAibWVtb3J5Iik7CisrICBhc20gdm9sYXRpbGUgKCIiIDogWDIoYykg Ij1tIiAobWVtKSA6IDogIm1lbW9yeSIpOworKyN1bmRlZiBYMQorKyNkZWZpbmUgWDEobikgIisi IEZMT0FUX1JFR19DT05TVFJBSU5UIChmcHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IFg4 KGQpICI9bSIgKG1lbSkgOiA6ICJtZW1vcnkiKTsKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4p ICJyIiAoZ3ByIyNuKSwKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGEpICJtIiAobWVtKSA6 ICJtZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFg4KGIpICJtIiAobWVtKSA6ICJt ZW1vcnkiKTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IFgyKGMpICJtIiAobWVtKSA6ICJtZW1v cnkiKTsKKysjdW5kZWYgWDEKKysjZGVmaW5lIFgxKG4pIEZMT0FUX1JFR19DT05TVFJBSU5UIChm cHIjI24pLAorKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogWDgoZCkgIm0iIChtZW0pIDogIm1lbW9y eSIpOworK30KKysjZW5kaWYKKysKKytpbnQKKyttYWluICgpCisreworKyAgbGwgPSA2MDsKKysg IGYxICgpOworKyAgZjIgKCk7CisrICBmMyAoKTsKKysjaWZuZGVmIF9fTk9fRlBSU19fCisrICBm NCAoKTsKKysgIGY1ICgpOworKyAgZjYgKCk7CisrICBmNyAoKTsKKysgIGY4ICgpOworKyAgZjkg KCk7CisrICBmMTAgKCk7CisrICBmMTEgKCk7CisrICBmMTIgKCk7CisrICBmMTMgKCk7CisrICBm MTQgKCk7CisrICBmMTUgKCk7CisrI2VuZGlmCisrICByZXR1cm4gMDsKKyt9CistLS0gZ2NjL2Nv bmZpZy9yczYwMDAvc3BlLm1kCShyZXZpc2lvbiAxNTE3MjgpCisrKysgZ2NjL2NvbmZpZy9yczYw MDAvc3BlLm1kCShyZXZpc2lvbiAxNTE3MjkpCitAQCAtMzE1Niw5ICszMTU2LDkgQEAgKGRlZmlu ZV9pbnNuICIqc2F2ZV9ncHJlZ3Nfc3BlIgogICAgWyhtYXRjaF9wYXJhbGxlbCAwICJhbnlfcGFy YWxsZWxfb3BlcmFuZCIKICAJCSAgIFsoY2xvYmJlciAocmVnOlAgNjUpKQogIAkJICAgICh1c2Ug KG1hdGNoX29wZXJhbmQ6UCAxICJzeW1ib2xfcmVmX29wZXJhbmQiICJzIikpCkBAIC0zNiw3ICs1 MjcsNyBAQAogICAgIlRBUkdFVF9TUEVfQUJJIgogICAgImJsICV6MSIKICAgIFsoc2V0X2F0dHIg InR5cGUiICJicmFuY2giKQotQEAgLTMxNjgsOSArMzE2OCw5IEBACitAQCAtMzE2OCw5ICszMTY4 LDkgQEAgKGRlZmluZV9pbnNuICIqcmVzdG9yZV9ncHJlZ3Nfc3BlIgogICBbKG1hdGNoX3BhcmFs bGVsIDAgImFueV9wYXJhbGxlbF9vcGVyYW5kIgogIAkJICBbKGNsb2JiZXIgKHJlZzpQIDY1KSkK ICAJCSAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAxICJzeW1ib2xfcmVmX29wZXJhbmQiICJzIikp CkBAIC00OSw3ICs1NDAsNyBAQAogICAiVEFSR0VUX1NQRV9BQkkiCiAgICJibCAlejEiCiAgIFso c2V0X2F0dHIgInR5cGUiICJicmFuY2giKQotQEAgLTMxODEsOSArMzE4MSw5IEBACitAQCAtMzE4 MSw5ICszMTgxLDkgQEAgKGRlZmluZV9pbnNuICIqcmV0dXJuX2FuZF9yZXN0b3JlX2dwcmVncwog IAkJICBbKHJldHVybikKICAJCSAgIChjbG9iYmVyIChyZWc6UCA2NSkpCiAgCQkgICAodXNlICht YXRjaF9vcGVyYW5kOlAgMSAic3ltYm9sX3JlZl9vcGVyYW5kIiAicyIpKQpAQCAtNjIsOSArNTUz LDI1IEBACiAgICJUQVJHRVRfU1BFX0FCSSIKICAgImIgJXoxIgogICBbKHNldF9hdHRyICJ0eXBl IiAiYnJhbmNoIikKLS0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYy5qagkyMDA5LTA5LTA5 IDIwOjQ1OjEwLjc5NDUzNTc5NCArMDIwMAotKysrIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5j CTIwMDktMDktMDkgMjA6NDY6NTcuMTk1NDAxODMwICswMjAwCi1AQCAtMTgwMTEsNyArMTgwMTEs OCBAQCBzdGF0aWMgYm9vbAorLS0tIGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaAkocmV2aXNp b24gMTUxNzI4KQorKysrIGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQuaAkocmV2aXNpb24gMTUx NzI5KQorQEAgLTQzNywxMSArNDM3LDExIEBAIGV4dGVybiBpbnQgZG90X3N5bWJvbHM7CisgI3Vu ZGVmICBTQVZFX0ZQX1BSRUZJWAorICNkZWZpbmUgU0FWRV9GUF9QUkVGSVggKFRBUkdFVF82NEJJ VCA/ICIuX3NhdmVmIiA6ICJfc2F2ZWZwcl8iKQorICN1bmRlZiAgU0FWRV9GUF9TVUZGSVgKKy0j ZGVmaW5lIFNBVkVfRlBfU1VGRklYIChUQVJHRVRfNjRCSVQgPyAiIiA6ICJfbCIpCisrI2RlZmlu ZSBTQVZFX0ZQX1NVRkZJWCAiIgorICN1bmRlZiAgUkVTVE9SRV9GUF9QUkVGSVgKKyAjZGVmaW5l IFJFU1RPUkVfRlBfUFJFRklYIChUQVJHRVRfNjRCSVQgPyAiLl9yZXN0ZiIgOiAiX3Jlc3RmcHJf IikKKyAjdW5kZWYgIFJFU1RPUkVfRlBfU1VGRklYCistI2RlZmluZSBSRVNUT1JFX0ZQX1NVRkZJ WCAoVEFSR0VUXzY0QklUID8gIiIgOiAiX2wiKQorKyNkZWZpbmUgUkVTVE9SRV9GUF9TVUZGSVgg IiIKKyAKKyAvKiBEd2FyZjIgZGVidWdnaW5nLiAgKi8KKyAjdW5kZWYgIFBSRUZFUlJFRF9ERUJV R0dJTkdfVFlQRQorLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jCShyZXZpc2lvbiAxNTE3 MjgpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMJKHJldmlzaW9uIDE1MTcyOSkKK0BA IC0xODAzMyw3ICsxODAzMyw4IEBAIHN0YXRpYyBib29sCiAgbm9fZ2xvYmFsX3JlZ3NfYWJvdmUg KGludCBmaXJzdCwgYm9vbCBncHIpCiAgewogICAgaW50IGk7CkBAIC03NCwyMiArNTgxLDE2NiBA QAogICAgICBpZiAoZ2xvYmFsX3JlZ3NbaV0pCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgcmV0 dXJuIHRydWU7Ci1AQCAtMTgwMzcsMTEgKzE4MDM4LDExIEBAIHJzNjAwMF9zYXZyZXNfcm91dGlu ZV9zeW0gKHJzNjAwMF9zdGFja18KK0BAIC0xODA1MCw1NCArMTgwNTEsMTM2IEBAIG5vX2dsb2Jh bF9yZWdzX2Fib3ZlIChpbnQgZmlyc3QsIGJvb2wgZ3AKKyAKKyBzdGF0aWMgR1RZKCgpKSBydHgg c2F2cmVzX3JvdXRpbmVfc3ltc1tOX1NBVlJFU19SRUdJU1RFUlNdWzhdOworIAorLS8qIFJldHVy biB0aGUgc3ltYm9sIGZvciBhbiBvdXQtb2YtbGluZSByZWdpc3RlciBzYXZlL3Jlc3RvcmUgcm91 dGluZS4KKysvKiBUZW1wb3JhcnkgaG9sZGluZyBzcGFjZSBmb3IgYW4gb3V0LW9mLWxpbmUgcmVn aXN0ZXIgc2F2ZS9yZXN0b3JlCisrICAgcm91dGluZSBuYW1lLiAgKi8KKytzdGF0aWMgY2hhciBz YXZyZXNfcm91dGluZV9uYW1lWzMwXTsKKysKKysvKiBSZXR1cm4gdGhlIG5hbWUgZm9yIGFuIG91 dC1vZi1saW5lIHJlZ2lzdGVyIHNhdmUvcmVzdG9yZSByb3V0aW5lLgorKyAgIFdlIGFyZSBzYXZp bmcvcmVzdG9yaW5nIEdQUnMgaWYgR1BSIGlzIHRydWUuICAqLworKworK3N0YXRpYyBjaGFyICoK KytyczYwMDBfc2F2cmVzX3JvdXRpbmVfbmFtZSAocnM2MDAwX3N0YWNrX3QgKmluZm8sIGludCBy ZWdubywKKysJCQkgICAgYm9vbCBzYXZlcCwgYm9vbCBncHIsIGJvb2wgbHIpCisreworKyAgY29u c3QgY2hhciAqcHJlZml4ID0gIiI7CisrICBjb25zdCBjaGFyICpzdWZmaXggPSAiIjsKKysKKysg IC8qIERpZmZlcmVudCB0YXJnZXRzIGFyZSBzdXBwb3NlZCB0byBkZWZpbmUKKysgICAgIHtTQVZF LFJFU1RPUkV9X0ZQX3tQUkVGSVgsU1VGRklYfSB3aXRoIHRoZSBpZGVhIHRoYXQgdGhlIG5lZWRl ZAorKyAgICAgcm91dGluZSBuYW1lIGNvdWxkIGJlIGRlZmluZWQgd2l0aDoKKysKKysgICAgIHNw cmludGYgKG5hbWUsICIlcyVkJXMiLCBTQVZFX0ZQX1BSRUZJWCwgcmVnbm8sIFNBVkVfRlBfU1VG RklYKQorKworKyAgICAgVGhpcyBpcyBhIG5pY2UgaWRlYSBpbiBwcmFjdGljZSwgYnV0IGluIHJl YWxpdHksIHRoaW5ncyBhcmUKKysgICAgIGNvbXBsaWNhdGVkIGluIHNldmVyYWwgd2F5czoKKysK KysgICAgIC0gRUxGIHRhcmdldHMgaGF2ZSBzYXZlL3Jlc3RvcmUgcm91dGluZXMgZm9yIEdQUnMu CisrCisrICAgICAtIFNQRSB0YXJnZXRzIHVzZSBkaWZmZXJlbnQgcHJlZml4ZXMgZm9yIDMyLzY0 LWJpdCByZWdpc3RlcnMsIGFuZAorKyAgICAgICBuZWl0aGVyIG9mIHRoZW0gZml0IG5lYXRseSBp biB0aGUgRk9PX3tQUkVGSVgsU1VGRklYfSByZWdpbWVuLgorKworKyAgICAgLSBQUEM2NCBFTEYg dGFyZ2V0cyBoYXZlIHJvdXRpbmVzIGZvciBzYXZlL3Jlc3RvcmUgb2YgR1BScyB0aGF0CisrICAg ICAgIGRpZmZlciBpbiB3aGF0IHRoZXkgZG8gd2l0aCB0aGUgbGluayByZWdpc3Rlciwgc28gaGF2 aW5nIGEgc2V0CisrICAgICAgIHByZWZpeCBkb2Vzbid0IHdvcmsuICAoV2Ugb25seSB1c2Ugb25l IG9mIHRoZSBzYXZlIHJvdXRpbmVzIGF0CisrICAgICAgIHRoZSBtb21lbnQsIHRob3VnaC4pCisr CisrICAgICAtIFBQQzMyIGVsZiB0YXJnZXRzIGhhdmUgImV4aXQiIHZlcnNpb25zIG9mIHRoZSBy ZXN0b3JlIHJvdXRpbmVzCisrICAgICAgIHRoYXQgcmVzdG9yZSB0aGUgbGluayByZWdpc3RlciBh bmQgY2FuIHNhdmUgc29tZSBleHRyYSBzcGFjZS4KKysgICAgICAgVGhlc2UgcmVxdWlyZSBhbiBl eHRyYSBzdWZmaXguICAoVGhlcmUgYXJlIGFsc28gInRhaWwiIHZlcnNpb25zCisrICAgICAgIG9m IHRoZSByZXN0b3JlIHJvdXRpbmVzIGFuZCAiR09UIiB2ZXJzaW9ucyBvZiB0aGUgc2F2ZSByb3V0 aW5lcywKKysgICAgICAgYnV0IHdlIGRvbid0IGdlbmVyYXRlIHRob3NlIGF0IHByZXNlbnQuICBT YW1lIHByb2JsZW1zIGFwcGx5LAorKyAgICAgICB0aG91Z2guKQorKworKyAgICAgV2UgZGVhbCB3 aXRoIGFsbCB0aGlzIGJ5IHN5bnRoZXNpemluZyBvdXIgb3duIHByZWZpeC9zdWZmaXggYW5kCisr ICAgICB1c2luZyB0aGF0IGZvciB0aGUgc2ltcGxlIHNwcmludGYgY2FsbCBzaG93biBhYm92ZS4g ICovCisrICBpZiAoVEFSR0VUX1NQRSkKKysgICAgeworKyAgICAgIC8qIE5vIGZsb2F0aW5nIHBv aW50IHNhdmVzIG9uIHRoZSBTUEUuICAqLworKyAgICAgIGdjY19hc3NlcnQgKGdwcik7CisrCisr ICAgICAgaWYgKHNhdmVwKQorKwlwcmVmaXggPSBpbmZvLT5zcGVfNjRiaXRfcmVnc191c2VkID8g Il9zYXZlNjRncHJfIiA6ICJfc2F2ZTMyZ3ByXyI7CisrICAgICAgZWxzZQorKwlwcmVmaXggPSBp bmZvLT5zcGVfNjRiaXRfcmVnc191c2VkID8gIl9yZXN0NjRncHJfIiA6ICJfcmVzdDMyZ3ByXyI7 CisrCisrICAgICAgaWYgKGxyKQorKwlzdWZmaXggPSAiX3giOworKyAgICB9CisrICBlbHNlIGlm IChERUZBVUxUX0FCSSA9PSBBQklfVjQpCisrICAgIHsKKysgICAgICBpZiAoVEFSR0VUXzY0QklU KQorKwlnb3RvIGFpeF9uYW1lczsKKysKKysgICAgICBpZiAoZ3ByKQorKwlwcmVmaXggPSBzYXZl cCA/ICJfc2F2ZWdwcl8iIDogIl9yZXN0Z3ByXyI7CisrICAgICAgZWxzZQorKwlwcmVmaXggPSBz YXZlcCA/ICJfc2F2ZWZwcl8iIDogIl9yZXN0ZnByXyI7CisrCisrICAgICAgaWYgKGxyKQorKwlz dWZmaXggPSAiX3giOworKyAgICB9CisrICBlbHNlIGlmIChERUZBVUxUX0FCSSA9PSBBQklfQUlY KQorKyAgICB7CisrI2lmbmRlZiBQT1dFUlBDX0xJTlVYCisrICAgICAgLyogTm8gb3V0LW9mLWxp bmUgc2F2ZS9yZXN0b3JlIHJvdXRpbmVzIGZvciBHUFJzIG9uIEFJWC4gICovCisrICAgICAgZ2Nj X2Fzc2VydCAoIVRBUkdFVF9BSVggfHwgIWdwcik7CisrI2VuZGlmCisrCisrICAgIGFpeF9uYW1l czoKKysgICAgICBpZiAoZ3ByKQorKwlwcmVmaXggPSAoc2F2ZXAKKysJCSAgPyAobHIgPyAiX3Nh dmVncHIwXyIgOiAiX3NhdmVncHIxXyIpCisrCQkgIDogKGxyID8gIl9yZXN0Z3ByMF8iIDogIl9y ZXN0Z3ByMV8iKSk7CisrI2lmZGVmIFBPV0VSUENfTElOVVgKKysgICAgICBlbHNlIGlmIChscikK KysJcHJlZml4ID0gKHNhdmVwID8gIl9zYXZlZnByXyIgOiAiX3Jlc3RmcHJfIik7CisrI2VuZGlm CisrICAgICAgZWxzZQorKwl7CisrCSAgcHJlZml4ID0gc2F2ZXAgPyBTQVZFX0ZQX1BSRUZJWCA6 IFJFU1RPUkVfRlBfUFJFRklYOworKwkgIHN1ZmZpeCA9IHNhdmVwID8gU0FWRV9GUF9TVUZGSVgg OiBSRVNUT1JFX0ZQX1NVRkZJWDsKKysJfQorKyAgICB9CisrICBlbHNlIGlmIChERUZBVUxUX0FC SSA9PSBBQklfREFSV0lOKQorKyAgICBzb3JyeSAoIk91dC1vZi1saW5lIHNhdmUvcmVzdG9yZSBy b3V0aW5lcyBub3Qgc3VwcG9ydGVkIG9uIERhcndpbiIpOworKworKyAgc3ByaW50ZiAoc2F2cmVz X3JvdXRpbmVfbmFtZSwgIiVzJWQlcyIsIHByZWZpeCwgcmVnbm8sIHN1ZmZpeCk7CisrCisrICBy ZXR1cm4gc2F2cmVzX3JvdXRpbmVfbmFtZTsKKyt9CisrCisrLyogUmV0dXJuIGFuIFJUTCBTWU1C T0xfUkVGIGZvciBhbiBvdXQtb2YtbGluZSByZWdpc3RlciBzYXZlL3Jlc3RvcmUgcm91dGluZS4K KyAgICBXZSBhcmUgc2F2aW5nL3Jlc3RvcmluZyBHUFJzIGlmIEdQUiBpcyB0cnVlLiAgKi8KKyAK KyBzdGF0aWMgcnR4CistcnM2MDAwX3NhdnJlc19yb3V0aW5lX3N5bSAocnM2MDAwX3N0YWNrX3Qg KmluZm8sIGJvb2wgc2F2ZXAsIGJvb2wgZ3ByLCBib29sIGV4aXRwKQorK3JzNjAwMF9zYXZyZXNf cm91dGluZV9zeW0gKHJzNjAwMF9zdGFja190ICppbmZvLCBib29sIHNhdmVwLAorKwkJCSAgIGJv b2wgZ3ByLCBib29sIGxyKQorIHsKICAgIGludCByZWdubyA9IGdwciA/IGluZm8tPmZpcnN0X2dw X3JlZ19zYXZlIDogKGluZm8tPmZpcnN0X2ZwX3JlZ19zYXZlIC0gMzIpOwogICAgcnR4IHN5bTsK ICAgIGludCBzZWxlY3QgPSAoKHNhdmVwID8gMSA6IDApIDw8IDIKIC0JCXwgKGdwcgotKwkJfCAo VEFSR0VUX1NQRV9BQkkKLSAJCSAgIC8qIE9uIHRoZSBTUEUsIHdlIG5ldmVyIGhhdmUgYW55IEZQ UnMsIGJ1dCB3ZSBkbyBoYXZlCi0gCQkgICAgICAzMi82NC1iaXQgdmVyc2lvbnMgb2YgdGhlIHJv dXRpbmVzLiAgKi8KKy0JCSAgIC8qIE9uIHRoZSBTUEUsIHdlIG5ldmVyIGhhdmUgYW55IEZQUnMs IGJ1dCB3ZSBkbyBoYXZlCistCQkgICAgICAzMi82NC1iaXQgdmVyc2lvbnMgb2YgdGhlIHJvdXRp bmVzLiAgKi8KIC0JCSAgID8gKFRBUkdFVF9TUEVfQUJJICYmIGluZm8tPnNwZV82NGJpdF9yZWdz X3VzZWQgPyAxIDogMCkKIC0JCSAgIDogMCkgPDwgMQotKwkJICAgPyAoaW5mby0+c3BlXzY0Yml0 X3JlZ3NfdXNlZCA/IDEgOiAwKQotKwkJICAgOiAoZ3ByID8gMSA6IDApKSA8PCAxCi0gCQl8IChl eGl0cCA/IDE6IDApKTsKKy0JCXwgKGV4aXRwID8gMTogMCkpOworKwkJfCAoKFRBUkdFVF9TUEVf QUJJCisrCQkgICAgLyogT24gdGhlIFNQRSwgd2UgbmV2ZXIgaGF2ZSBhbnkgRlBScywgYnV0IHdl IGRvIGhhdmUKKysJCSAgICAgICAzMi82NC1iaXQgdmVyc2lvbnMgb2YgdGhlIHJvdXRpbmVzLiAg Ki8KKysJCSAgICA/IChpbmZvLT5zcGVfNjRiaXRfcmVnc191c2VkID8gMSA6IDApCisrCQkgICAg OiAoZ3ByID8gMSA6IDApKSA8PCAxKQorKwkJfCAobHIgPyAxOiAwKSk7CiAgCiAgICAvKiBEb24n dCBnZW5lcmF0ZSBib2d1cyByb3V0aW5lIG5hbWVzLiAgKi8KLUBAIC0xODA3Niw2ICsxODA3Nyw3 IEBAIHJzNjAwMF9zYXZyZXNfcm91dGluZV9zeW0gKHJzNjAwMF9zdGFja18KKy0gIGdjY19hc3Nl cnQgKEZJUlNUX1NBVlJFU19SRUdJU1RFUiA8PSByZWdubyAmJiByZWdubyA8PSBMQVNUX1NBVlJF U19SRUdJU1RFUik7CisrICBnY2NfYXNzZXJ0IChGSVJTVF9TQVZSRVNfUkVHSVNURVIgPD0gcmVn bm8KKysJICAgICAgJiYgcmVnbm8gPD0gTEFTVF9TQVZSRVNfUkVHSVNURVIpOworIAorICAgc3lt ID0gc2F2cmVzX3JvdXRpbmVfc3ltc1tyZWduby1GSVJTVF9TQVZSRVNfUkVHSVNURVJdW3NlbGVj dF07CisgCisgICBpZiAoc3ltID09IE5VTEwpCisgICAgIHsKKy0gICAgICBjaGFyIG5hbWVbMzBd OworLSAgICAgIGNvbnN0IGNoYXIgKmFjdGlvbjsKKy0gICAgICBjb25zdCBjaGFyICpyZWdraW5k OworLSAgICAgIGNvbnN0IGNoYXIgKmV4aXRfc3VmZml4OworLQorLSAgICAgIGFjdGlvbiA9IHNh dmVwID8gInNhdmUiIDogInJlc3QiOworLQorLSAgICAgIC8qIFNQRSBoYXMgc2xpZ2h0bHkgZGlm ZmVyZW50IG5hbWVzIGZvciBpdHMgcm91dGluZXMgZGVwZW5kaW5nIG9uCistCSB3aGV0aGVyIHdl IGFyZSBzYXZpbmcgMzItYml0IG9yIDY0LWJpdCByZWdpc3RlcnMuICAqLworLSAgICAgIGlmIChU QVJHRVRfU1BFX0FCSSkKKy0JeworLQkgIC8qIE5vIGZsb2F0aW5nIHBvaW50IHNhdmVzIG9uIHRo ZSBTUEUuICAqLworLQkgIGdjY19hc3NlcnQgKGdwcik7CistCistCSAgcmVna2luZCA9IGluZm8t PnNwZV82NGJpdF9yZWdzX3VzZWQgPyAiNjRncHIiIDogIjMyZ3ByIjsKKy0JfQorLSAgICAgIGVs c2UKKy0JcmVna2luZCA9IGdwciA/ICJncHIiIDogImZwciI7CistCistICAgICAgZXhpdF9zdWZm aXggPSBleGl0cCA/ICJfeCIgOiAiIjsKKysgICAgICBjaGFyICpuYW1lOworIAorLSAgICAgIHNw cmludGYgKG5hbWUsICJfJXMlc18lZCVzIiwgYWN0aW9uLCByZWdraW5kLCByZWdubywgZXhpdF9z dWZmaXgpOworKyAgICAgIG5hbWUgPSByczYwMDBfc2F2cmVzX3JvdXRpbmVfbmFtZSAoaW5mbywg cmVnbm8sIHNhdmVwLCBncHIsIGxyKTsKICAKICAgICAgICBzeW0gPSBzYXZyZXNfcm91dGluZV9z eW1zW3JlZ25vLUZJUlNUX1NBVlJFU19SRUdJU1RFUl1bc2VsZWN0XQogIAk9IGdlbl9ydHhfU1lN Qk9MX1JFRiAoUG1vZGUsIGdnY19zdHJkdXAgKG5hbWUpKTsKQEAgLTk3LDI4ICs3NDgsMjc4IEBA CiAgICAgIH0KICAKICAgIHJldHVybiBzeW07Ci1AQCAtMTgyODksNyArMTgyOTEsNyBAQCByczYw MDBfZW1pdF9wcm9sb2d1ZSAodm9pZCkKK0BAIC0xODEyNCw4ICsxODIwNywxMSBAQCByczYwMDBf ZW1pdF9zdGFja19yZXNldCAocnM2MDAwX3N0YWNrX3QgCisgICBpZiAoZnJhbWVfcmVnX3J0eCAh PSBzcF9yZWdfcnR4KQorICAgICB7CisgICAgICAgaWYgKHNwX29mZnNldCAhPSAwKQorLQlyZXR1 cm4gZW1pdF9pbnNuIChnZW5fYWRkc2kzIChzcF9yZWdfcnR4LCBmcmFtZV9yZWdfcnR4LAorLQkJ CQkgICAgICBHRU5fSU5UIChzcF9vZmZzZXQpKSk7CisrCXsKKysJICBydHggZGVzdF9yZWcgPSBz YXZyZXMgPyBnZW5fcnR4X1JFRyAoUG1vZGUsIDExKSA6IHNwX3JlZ19ydHg7CisrCSAgcmV0dXJu IGVtaXRfaW5zbiAoZ2VuX2FkZDNfaW5zbiAoZGVzdF9yZWcsIGZyYW1lX3JlZ19ydHgsCisrCQkJ CQkgICBHRU5fSU5UIChzcF9vZmZzZXQpKSk7CisrCX0KKyAgICAgICBlbHNlIGlmICghc2F2cmVz KQorIAlyZXR1cm4gZW1pdF9tb3ZlX2luc24gKHNwX3JlZ19ydHgsIGZyYW1lX3JlZ19ydHgpOwor ICAgICB9CitAQCAtMTgxNTQsNyArMTgyNDAsNyBAQCBzdGF0aWMgcnR4CisgcnM2MDAwX21ha2Vf c2F2cmVzX3J0eCAocnM2MDAwX3N0YWNrX3QgKmluZm8sCisgCQkJcnR4IGZyYW1lX3JlZ19ydHgs IGludCBzYXZlX2FyZWFfb2Zmc2V0LAorIAkJCWVudW0gbWFjaGluZV9tb2RlIHJlZ19tb2RlLAor LQkJCWJvb2wgc2F2ZXAsIGJvb2wgZ3ByLCBib29sIGV4aXRwKQorKwkJCWJvb2wgc2F2ZXAsIGJv b2wgZ3ByLCBib29sIGxyKQorIHsKKyAgIGludCBpOworICAgaW50IG9mZnNldCwgc3RhcnRfcmVn LCBlbmRfcmVnLCBuX3JlZ3M7CitAQCAtMTgxNjgsMjAgKzE4MjU0LDIxIEBAIHJzNjAwMF9tYWtl X3NhdnJlc19ydHggKHJzNjAwMF9zdGFja190ICoKKyAJICAgICAgIDogaW5mby0+Zmlyc3RfZnBf cmVnX3NhdmUpOworICAgZW5kX3JlZyA9IGdwciA/IDMyIDogNjQ7CisgICBuX3JlZ3MgPSBlbmRf cmVnIC0gc3RhcnRfcmVnOworLSAgcCA9IHJ0dmVjX2FsbG9jICgoZXhpdHAgPyA0IDogMykgKyBu X3JlZ3MpOworKyAgcCA9IHJ0dmVjX2FsbG9jICgobHIgPyA0IDogMykgKyBuX3JlZ3MpOworIAor LSAgLyogSWYgd2UncmUgc2F2aW5nIHJlZ2lzdGVycywgdGhlbiB3ZSBzaG91bGQgbmV2ZXIgc2F5 IHdlJ3JlIGV4aXRpbmcuCSAqLworLSAgZ2NjX2Fzc2VydCAoKHNhdmVwICYmICFleGl0cCkgfHwg IXNhdmVwKTsKKy0KKy0gIGlmIChleGl0cCkKKysgIGlmICghc2F2ZXAgJiYgbHIpCisgICAgIFJU VkVDX0VMVCAocCwgb2Zmc2V0KyspID0gZ2VuX3J0eF9SRVRVUk4gKFZPSURtb2RlKTsKKyAKKyAg IFJUVkVDX0VMVCAocCwgb2Zmc2V0KyspCisgICAgID0gZ2VuX3J0eF9DTE9CQkVSIChWT0lEbW9k ZSwgZ2VuX3J0eF9SRUcgKFBtb2RlLCA2NSkpOworIAorLSAgc3ltID0gcnM2MDAwX3NhdnJlc19y b3V0aW5lX3N5bSAoaW5mbywgc2F2ZXAsIGdwciwgZXhpdHApOworKyAgc3ltID0gcnM2MDAwX3Nh dnJlc19yb3V0aW5lX3N5bSAoaW5mbywgc2F2ZXAsIGdwciwgbHIpOworICAgUlRWRUNfRUxUIChw LCBvZmZzZXQrKykgPSBnZW5fcnR4X1VTRSAoVk9JRG1vZGUsIHN5bSk7CistICBSVFZFQ19FTFQg KHAsIG9mZnNldCsrKSA9IGdlbl9ydHhfVVNFIChWT0lEbW9kZSwgZ2VuX3J0eF9SRUcgKFBtb2Rl LCAxMSkpOworKyAgUlRWRUNfRUxUIChwLCBvZmZzZXQrKykKKysgICAgPSBnZW5fcnR4X1VTRSAo Vk9JRG1vZGUsCisrCQkgICBnZW5fcnR4X1JFRyAoUG1vZGUsIERFRkFVTFRfQUJJICE9IEFCSV9B SVggPyAxMQorKwkJCQkgICAgICAgOiBncHIgJiYgIWxyID8gMTIKKysJCQkJICAgICAgIDogMSkp OworIAorICAgZm9yIChpID0gMDsgaSA8IGVuZF9yZWcgLSBzdGFydF9yZWc7IGkrKykKKyAgICAg eworQEAgLTE4MTk2LDYgKzE4MjgzLDE2IEBAIHJzNjAwMF9tYWtlX3NhdnJlc19ydHggKHJzNjAw MF9zdGFja190ICoKKyAJCQkJCSAgICAgICBzYXZlcCA/IHJlZyA6IG1lbSk7CisgICAgIH0KKyAK KysgIGlmIChzYXZlcCAmJiBscikKKysgICAgeworKyAgICAgIHJ0eCBhZGRyLCByZWcsIG1lbTsK KysgICAgICByZWcgPSBnZW5fcnR4X1JFRyAoUG1vZGUsIDApOworKyAgICAgIGFkZHIgPSBnZW5f cnR4X1BMVVMgKFBtb2RlLCBmcmFtZV9yZWdfcnR4LAorKwkJCSAgIEdFTl9JTlQgKGluZm8tPmxy X3NhdmVfb2Zmc2V0KSk7CisrICAgICAgbWVtID0gZ2VuX2ZyYW1lX21lbSAoUG1vZGUsIGFkZHIp OworKyAgICAgIFJUVkVDX0VMVCAocCwgaSArIG9mZnNldCkgPSBnZW5fcnR4X1NFVCAoVk9JRG1v ZGUsIG1lbSwgcmVnKTsKKysgICAgfQorKworICAgcmV0dXJuIGdlbl9ydHhfUEFSQUxMRUwgKFZP SURtb2RlLCBwKTsKKyB9CisgCitAQCAtMTgyMTYsNyArMTgzMTMsMTAgQEAgcnM2MDAwX3JlZ19s aXZlX29yX3BpY19vZmZzZXRfcCAoaW50IHJlZworIGVudW0geworICAgU0FWUkVTX01VTFRJUExF ID0gMHgxLAorICAgU0FWUkVTX0lOTElORV9GUFJTID0gMHgyLAorLSAgU0FWUkVTX0lOTElORV9H UFJTID0gMHg0CisrICBTQVZSRVNfSU5MSU5FX0dQUlMgPSAweDQsCisrICBTQVZSRVNfTk9JTkxJ TkVfR1BSU19TQVZFU19MUiA9IDB4OCwKKysgIFNBVlJFU19OT0lOTElORV9GUFJTX1NBVkVTX0xS ID0gMHgxMCwKKysgIFNBVlJFU19OT0lOTElORV9GUFJTX0RPRVNOVF9SRVNUT1JFX0xSID0gMHgy MAorIH07CisgCisgLyogRGV0ZXJtaW5lIHRoZSBzdHJhdGVneSBmb3Igc2F2aW5ncy9yZXN0b3Jp bmcgcmVnaXN0ZXJzLiAgKi8KK0BAIC0xODIzMSw2ICsxODMzMSw3IEBAIHJzNjAwMF9zYXZyZXNf c3RyYXRlZ3kgKHJzNjAwMF9zdGFja190ICoKKyAgIGJvb2wgc2F2cmVzX2dwcnNfaW5saW5lOwor ICAgYm9vbCBub2Nsb2JiZXJfZ2xvYmFsX2dwcnMKKyAgICAgPSBub19nbG9iYWxfcmVnc19hYm92 ZSAoaW5mby0+Zmlyc3RfZ3BfcmVnX3NhdmUsIC8qZ3ByPSovdHJ1ZSk7CisrICBpbnQgc3RyYXRl Z3k7CisgCisgICB1c2luZ19tdWx0aXBsZV9wID0gKFRBUkdFVF9NVUxUSVBMRSAmJiAhIFRBUkdF VF9QT1dFUlBDNjQKKyAJCSAgICAgICYmICghVEFSR0VUX1NQRV9BQkkKK0BAIC0xODI1MCw2ICsx ODM1MSwxMCBAQCByczYwMDBfc2F2cmVzX3N0cmF0ZWd5IChyczYwMDBfc3RhY2tfdCAqCisgCQkJ fHwgaW5mby0+Zmlyc3RfZnBfcmVnX3NhdmUgPT0gNjQKKyAJCQl8fCAhbm9fZ2xvYmFsX3JlZ3Nf YWJvdmUgKGluZm8tPmZpcnN0X2ZwX3JlZ19zYXZlLAorIAkJCQkJCSAgLypncHI9Ki9mYWxzZSkK KysJCQkvKiBUaGUgb3V0LW9mLWxpbmUgRlAgcm91dGluZXMgdXNlCisrCQkJICAgZG91YmxlLXBy ZWNpc2lvbiBzdG9yZXM7IHdlIGNhbid0IHVzZSB0aG9zZQorKwkJCSAgIHJvdXRpbmVzIGlmIHdl IGRvbid0IGhhdmUgc3VjaCBzdG9yZXMuICAqLworKwkJCXx8IChUQVJHRVRfSEFSRF9GTE9BVCAm JiAhVEFSR0VUX0RPVUJMRV9GTE9BVCkKKyAJCQl8fCBGUF9TQVZFX0lOTElORSAoaW5mby0+Zmly c3RfZnBfcmVnX3NhdmUpKTsKKyAgIHNhdnJlc19ncHJzX2lubGluZSA9IChjb21tb24KKyAJCQkv KiBTYXZpbmcgQ1IgaW50ZXJmZXJlcyB3aXRoIHRoZSBleGl0IHJvdXRpbmVzCitAQCAtMTgyODcs OSArMTgzOTIsMjIgQEAgcnM2MDAwX3NhdnJlc19zdHJhdGVneSAocnM2MDAwX3N0YWNrX3QgKgor IAlzYXZyZXNfZ3Byc19pbmxpbmUgPSBzYXZyZXNfZ3Byc19pbmxpbmUgfHwgdXNpbmdfbXVsdGlw bGVfcDsKKyAgICAgfQorIAorLSAgcmV0dXJuICh1c2luZ19tdWx0aXBsZV9wCistCSAgfCAoc2F2 cmVzX2ZwcnNfaW5saW5lIDw8IDEpCistCSAgfCAoc2F2cmVzX2dwcnNfaW5saW5lIDw8IDIpKTsK KysgIHN0cmF0ZWd5ID0gKHVzaW5nX211bHRpcGxlX3AKKysJICAgICAgfCAoc2F2cmVzX2ZwcnNf aW5saW5lIDw8IDEpCisrCSAgICAgIHwgKHNhdnJlc19ncHJzX2lubGluZSA8PCAyKSk7CisrI2lm ZGVmIFBPV0VSUENfTElOVVgKKysgIGlmIChUQVJHRVRfNjRCSVQpCisrICAgIHsKKysgICAgICBp ZiAoIXNhdnJlc19mcHJzX2lubGluZSkKKysJc3RyYXRlZ3kgfD0gU0FWUkVTX05PSU5MSU5FX0ZQ UlNfU0FWRVNfTFI7CisrICAgICAgZWxzZSBpZiAoIXNhdnJlc19ncHJzX2lubGluZSAmJiBpbmZv LT5maXJzdF9mcF9yZWdfc2F2ZSA9PSA2NCkKKysJc3RyYXRlZ3kgfD0gU0FWUkVTX05PSU5MSU5F X0dQUlNfU0FWRVNfTFI7CisrICAgIH0KKysjZWxzZQorKyAgaWYgKFRBUkdFVF9BSVggJiYgIXNh dnJlc19mcHJzX2lubGluZSkKKysgICAgc3RyYXRlZ3kgfD0gU0FWUkVTX05PSU5MSU5FX0ZQUlNf RE9FU05UX1JFU1RPUkVfTFI7CisrI2VuZGlmCisrICByZXR1cm4gc3RyYXRlZ3k7CisgfQorIAor IC8qIEVtaXQgZnVuY3Rpb24gcHJvbG9ndWUgYXMgaW5zbnMuICAqLworQEAgLTE4MzExLDcgKzE4 NDI5LDcgQEAgcnM2MDAwX2VtaXRfcHJvbG9ndWUgKHZvaWQpCiAgICBpbnQgdXNpbmdfc3RvcmVf bXVsdGlwbGU7CiAgICBpbnQgdXNpbmdfc3RhdGljX2NoYWluX3AgPSAoY2Z1bi0+c3RhdGljX2No YWluX2RlY2wgIT0gTlVMTF9UUkVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYg ZGZfcmVnc19ldmVyX2xpdmVfcCAoU1RBVElDX0NIQUlOX1JFR05VTSkKIC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmJiAhY2FsbF91c2VkX3JlZ3NbU1RBVElDX0NIQUlOX1JFR05VTV0p OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGNhbGxfdXNlZF9yZWdzW1NUQVRJ Q19DSEFJTl9SRUdOVU1dKTsKKysJCQkgICAgICAmJiBjYWxsX3VzZWRfcmVnc1tTVEFUSUNfQ0hB SU5fUkVHTlVNXSk7CiAgICBIT1NUX1dJREVfSU5UIHNwX29mZnNldCA9IDA7CiAgCiAgICBpZiAo VEFSR0VUX0ZJWF9BTkRfQ09OVElOVUUpCi1AQCAtMTkwOTUsOCArMTkwOTcsOSBAQCByczYwMDBf ZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCitAQCAtMTg0OTYsMjQgKzE4NjE0LDMwIEBAIHJz NjAwMF9lbWl0X3Byb2xvZ3VlICh2b2lkKQorIAkJCSAgICAgZ2VuX3J0eF9SRUcgKFBtb2RlLCBM Ul9SRUdOTykpOworICAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKKyAKKy0g ICAgICBhZGRyID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgZnJhbWVfcmVnX3J0eCwKKysgICAgICBp ZiAoIShzdHJhdGVneSAmIChTQVZSRVNfTk9JTkxJTkVfR1BSU19TQVZFU19MUgorKwkJCXwgU0FW UkVTX05PSU5MSU5FX0ZQUlNfU0FWRVNfTFIpKSkKKysJeworKwkgIGFkZHIgPSBnZW5fcnR4X1BM VVMgKFBtb2RlLCBmcmFtZV9yZWdfcnR4LAorIAkJCSAgICAgICBHRU5fSU5UIChpbmZvLT5scl9z YXZlX29mZnNldCArIHNwX29mZnNldCkpOworLSAgICAgIHJlZyA9IGdlbl9ydHhfUkVHIChQbW9k ZSwgMCk7CistICAgICAgbWVtID0gZ2VuX3J0eF9NRU0gKFBtb2RlLCBhZGRyKTsKKy0gICAgICAv KiBUaGlzIHNob3VsZCBub3QgYmUgb2YgcnM2MDAwX3NyX2FsaWFzX3NldCwgYmVjYXVzZSBvZgor LQkgX19idWlsdGluX3JldHVybl9hZGRyZXNzLiAgKi8KKysJICByZWcgPSBnZW5fcnR4X1JFRyAo UG1vZGUsIDApOworKwkgIG1lbSA9IGdlbl9ydHhfTUVNIChQbW9kZSwgYWRkcik7CisrCSAgLyog VGhpcyBzaG91bGQgbm90IGJlIG9mIHJzNjAwMF9zcl9hbGlhc19zZXQsIGJlY2F1c2Ugb2YKKysJ ICAgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MuICAqLworIAorLSAgICAgIGluc24gPSBlbWl0 X21vdmVfaW5zbiAobWVtLCByZWcpOworLSAgICAgIHJzNjAwMF9mcmFtZV9yZWxhdGVkIChpbnNu LCBmcmFtZV9wdHJfcnR4LCBpbmZvLT50b3RhbF9zaXplLAorLQkJCSAgICBOVUxMX1JUWCwgTlVM TF9SVFgpOworKwkgIGluc24gPSBlbWl0X21vdmVfaW5zbiAobWVtLCByZWcpOworKwkgIHJzNjAw MF9mcmFtZV9yZWxhdGVkIChpbnNuLCBmcmFtZV9wdHJfcnR4LCBpbmZvLT50b3RhbF9zaXplLAor KwkJCQlOVUxMX1JUWCwgTlVMTF9SVFgpOworKwl9CisgICAgIH0KKyAKKy0gIC8qIElmIHdlIG5l ZWQgdG8gc2F2ZSBDUiwgcHV0IGl0IGludG8gcjEyLiAgKi8KKysgIC8qIElmIHdlIG5lZWQgdG8g c2F2ZSBDUiwgcHV0IGl0IGludG8gcjEyIG9yIHIxMS4gICovCisgICBpZiAoIVdPUkxEX1NBVkVf UCAoaW5mbykgJiYgaW5mby0+Y3Jfc2F2ZV9wICYmIGZyYW1lX3JlZ19ydHggIT0gZnJhbWVfcHRy X3J0eCkKKyAgICAgeworICAgICAgIHJ0eCBzZXQ7CisgCistICAgICAgY3Jfc2F2ZV9ydHggPSBn ZW5fcnR4X1JFRyAoU0ltb2RlLCAxMik7CisrICAgICAgY3Jfc2F2ZV9ydHgKKysJPSBnZW5fcnR4 X1JFRyAoU0ltb2RlLCBERUZBVUxUX0FCSSA9PSBBQklfQUlYICYmICFzYXZpbmdfR1BSc19pbmxp bmUKKysJCSAgICAgICA/IDExIDogMTIpOworICAgICAgIGluc24gPSBlbWl0X2luc24gKGdlbl9t b3Zlc2lfZnJvbV9jciAoY3Jfc2F2ZV9ydHgpKTsKKyAgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9Q IChpbnNuKSA9IDE7CisgICAgICAgLyogTm93LCB0aGVyZSdzIG5vIHdheSB0aGF0IGR3YXJmMm91 dF9mcmFtZV9kZWJ1Z19leHByIGlzIGdvaW5nCitAQCAtMTg1NTAsNyArMTg2NzQsOSBAQCByczYw MDBfZW1pdF9wcm9sb2d1ZSAodm9pZCkKKyAJCQkJICAgIGluZm8tPmZwX3NhdmVfb2Zmc2V0ICsg c3Bfb2Zmc2V0LAorIAkJCQkgICAgREZtb2RlLAorIAkJCQkgICAgLypzYXZlcD0qL3RydWUsIC8q Z3ByPSovZmFsc2UsCistCQkJCSAgICAvKmV4aXRwPSovZmFsc2UpOworKwkJCQkgICAgLypscj0q LyhzdHJhdGVneQorKwkJCQkJICAgICYgU0FWUkVTX05PSU5MSU5FX0ZQUlNfU0FWRVNfTFIpCisr CQkJCQkgICAhPSAwKTsKKyAgICAgICBpbnNuID0gZW1pdF9pbnNuIChwYXIpOworICAgICAgIHJz NjAwMF9mcmFtZV9yZWxhdGVkIChpbnNuLCBmcmFtZV9wdHJfcnR4LCBpbmZvLT50b3RhbF9zaXpl LAorIAkJCSAgICBOVUxMX1JUWCwgTlVMTF9SVFgpOworQEAgLTE4NjQ2LDcgKzE4NzcyLDcgQEAg cnM2MDAwX2VtaXRfcHJvbG9ndWUgKHZvaWQpCisgCSAgcGFyID0gcnM2MDAwX21ha2Vfc2F2cmVz X3J0eCAoaW5mbywgZ2VuX3J0eF9SRUcgKFBtb2RlLCAxMSksCisgCQkJCQkwLCByZWdfbW9kZSwK KyAJCQkJCS8qc2F2ZXA9Ki90cnVlLCAvKmdwcj0qL3RydWUsCistCQkJCQkvKmV4aXRwPSovZmFs c2UpOworKwkJCQkJLypscj0qL2ZhbHNlKTsKKyAJICBpbnNuID0gZW1pdF9pbnNuIChwYXIpOwor IAkgIHJzNjAwMF9mcmFtZV9yZWxhdGVkIChpbnNuLCBmcmFtZV9wdHJfcnR4LCBpbmZvLT50b3Rh bF9zaXplLAorIAkJCQlOVUxMX1JUWCwgTlVMTF9SVFgpOworQEAgLTE4NjYxLDIzICsxODc4Nywy MyBAQCByczYwMDBfZW1pdF9wcm9sb2d1ZSAodm9pZCkKKyAgICAgeworICAgICAgIHJ0eCBwYXI7 CisgCistICAgICAgLyogTmVlZCB0byBhZGp1c3QgcjExIGlmIHdlIHNhdmVkIGFueSBGUFJzLiAg Ki8KKysgICAgICAvKiBOZWVkIHRvIGFkanVzdCByMTEgKHIxMikgaWYgd2Ugc2F2ZWQgYW55IEZQ UnMuICAqLworICAgICAgIGlmIChpbmZvLT5maXJzdF9mcF9yZWdfc2F2ZSAhPSA2NCkKKyAgICAg ICAgIHsKKy0gICAgICAgICAgcnR4IHIxMSA9IGdlbl9ydHhfUkVHIChyZWdfbW9kZSwgMTEpOwor LSAgICAgICAgICBydHggb2Zmc2V0ID0gR0VOX0lOVCAoaW5mby0+dG90YWxfc2l6ZQorKwkgIHJ0 eCBkZXN0X3JlZyA9IGdlbl9ydHhfUkVHIChyZWdfbW9kZSwgREVGQVVMVF9BQkkgPT0gQUJJX0FJ WAorKwkJCQkgICAgICA/IDEyIDogMTEpOworKwkgIHJ0eCBvZmZzZXQgPSBHRU5fSU5UIChzcF9v ZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKC04ICogKDY0LWluZm8t PmZpcnN0X2ZwX3JlZ19zYXZlKSkpOworLSAgICAgICAgICBydHggcHRyX3JlZyA9IChzcF9yZWdf cnR4ID09IGZyYW1lX3JlZ19ydHgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgPyBzcF9yZWdf cnR4IDogcjExKTsKKy0KKy0JICBlbWl0X2luc24gKGdlbl9hZGQzX2luc24gKHIxMSwgcHRyX3Jl Zywgb2Zmc2V0KSk7CisrCSAgZW1pdF9pbnNuIChnZW5fYWRkM19pbnNuIChkZXN0X3JlZywgZnJh bWVfcmVnX3J0eCwgb2Zmc2V0KSk7CisgICAgICAgICB9CisgCisgICAgICAgcGFyID0gcnM2MDAw X21ha2Vfc2F2cmVzX3J0eCAoaW5mbywgZnJhbWVfcmVnX3J0eCwKKyAJCQkJICAgIGluZm8tPmdw X3NhdmVfb2Zmc2V0ICsgc3Bfb2Zmc2V0LAorIAkJCQkgICAgcmVnX21vZGUsCisgCQkJCSAgICAv KnNhdmVwPSovdHJ1ZSwgLypncHI9Ki90cnVlLAorLQkJCQkgICAgLypleGl0cD0qL2ZhbHNlKTsK KysJCQkJICAgIC8qbHI9Ki8oc3RyYXRlZ3kKKysJCQkJCSAgICAmIFNBVlJFU19OT0lOTElORV9H UFJTX1NBVkVTX0xSKQorKwkJCQkJICAgIT0gMCk7CisgICAgICAgaW5zbiA9IGVtaXRfaW5zbiAo cGFyKTsKKyAgICAgICByczYwMDBfZnJhbWVfcmVsYXRlZCAoaW5zbiwgZnJhbWVfcHRyX3J0eCwg aW5mby0+dG90YWxfc2l6ZSwKKyAJCQkgICAgTlVMTF9SVFgsIE5VTExfUlRYKTsKK0BAIC0xODk1 NCw5ICsxOTA4MCwxOCBAQCByczYwMDBfb3V0cHV0X2Z1bmN0aW9uX3Byb2xvZ3VlIChGSUxFICpm CisgICAgICBmcCB2YWx1ZXMuICAqLworICAgaWYgKGluZm8tPmZpcnN0X2ZwX3JlZ19zYXZlIDwg NjQKKyAgICAgICAmJiAhRlBfU0FWRV9JTkxJTkUgKGluZm8tPmZpcnN0X2ZwX3JlZ19zYXZlKSkK Ky0gICAgZnByaW50ZiAoZmlsZSwgIlx0LmV4dGVybiAlcyVkJXNcblx0LmV4dGVybiAlcyVkJXNc biIsCistCSAgICAgU0FWRV9GUF9QUkVGSVgsIGluZm8tPmZpcnN0X2ZwX3JlZ19zYXZlIC0gMzIs IFNBVkVfRlBfU1VGRklYLAorLQkgICAgIFJFU1RPUkVfRlBfUFJFRklYLCBpbmZvLT5maXJzdF9m cF9yZWdfc2F2ZSAtIDMyLCBSRVNUT1JFX0ZQX1NVRkZJWCk7CisrICAgIHsKKysgICAgICBjaGFy ICpuYW1lOworKyAgICAgIGludCByZWdubyA9IGluZm8tPmZpcnN0X2ZwX3JlZ19zYXZlIC0gMzI7 CisrCisrICAgICAgbmFtZSA9IHJzNjAwMF9zYXZyZXNfcm91dGluZV9uYW1lIChpbmZvLCByZWdu bywgLypzYXZlcD0qL3RydWUsCisrCQkJCQkgLypncHI9Ki9mYWxzZSwgLypscj0qL2ZhbHNlKTsK KysgICAgICBmcHJpbnRmIChmaWxlLCAiXHQuZXh0ZXJuICVzXG4iLCBuYW1lKTsKKysKKysgICAg ICBuYW1lID0gcnM2MDAwX3NhdnJlc19yb3V0aW5lX25hbWUgKGluZm8sIHJlZ25vLCAvKnNhdmVw PSovZmFsc2UsCisrCQkJCQkgLypncHI9Ki9mYWxzZSwgLypscj0qL3RydWUpOworKyAgICAgIGZw cmludGYgKGZpbGUsICJcdC5leHRlcm4gJXNcbiIsIG5hbWUpOworKyAgICB9CisgCisgICAvKiBX cml0ZSAuZXh0ZXJuIGZvciBBSVggY29tbW9uIG1vZGUgcm91dGluZXMsIGlmIG5lZWRlZC4gICov CisgICBpZiAoISBUQVJHRVRfUE9XRVIgJiYgISBUQVJHRVRfUE9XRVJQQyAmJiAhIGNvbW1vbl9t b2RlX2RlZmluZWQpCitAQCAtMTkwODIsNiArMTkyMTcsNyBAQCByczYwMDBfZW1pdF9lcGlsb2d1 ZSAoaW50IHNpYmNhbGwpCisgICBydHggZnJhbWVfcmVnX3J0eCA9IHNwX3JlZ19ydHg7CisgICBy dHggY2ZhX3Jlc3RvcmVzID0gTlVMTF9SVFg7CisgICBydHggaW5zbjsKKysgIHJ0eCBjcl9zYXZl X3JlZyA9IE5VTExfUlRYOworICAgZW51bSBtYWNoaW5lX21vZGUgcmVnX21vZGUgPSBQbW9kZTsK KyAgIGludCByZWdfc2l6ZSA9IFRBUkdFVF8zMkJJVCA/IDQgOiA4OworICAgaW50IGk7CitAQCAt MTkxMTUsOCArMTkyNTEsMTAgQEAgcnM2MDAwX2VtaXRfZXBpbG9ndWUgKGludCBzaWJjYWxsKQog IAkJCQkgfHwgKGNmdW4tPmNhbGxzX2FsbG9jYQogIAkJCQkgICAgICYmICFmcmFtZV9wb2ludGVy X25lZWRlZCkpOwogICAgcmVzdG9yZV9sciA9IChpbmZvLT5scl9zYXZlX3AKIC0JCSYmIHJlc3Rv cmluZ19HUFJzX2lubGluZQogLQkJJiYgcmVzdG9yaW5nX0ZQUnNfaW5saW5lKTsKKysJCSYmIChy ZXN0b3JpbmdfRlBSc19pbmxpbmUKKysJCSAgICB8fCAoc3RyYXRlZ3kgJiBTQVZSRVNfTk9JTkxJ TkVfRlBSU19ET0VTTlRfUkVTVE9SRV9MUikpCiArCQkmJiAocmVzdG9yaW5nX0dQUnNfaW5saW5l Ci0rCQkgICAgfHwgKHJlc3RvcmluZ19GUFJzX2lubGluZQotKwkJCSYmIGluZm8tPmZpcnN0X2Zw X3JlZ19zYXZlIDwgNjQpKSk7CisrCQkgICAgfHwgaW5mby0+Zmlyc3RfZnBfcmVnX3NhdmUgPCA2 NCkpOwogIAogICAgaWYgKFdPUkxEX1NBVkVfUCAoaW5mbykpCiAgICAgIHsKLUBAIC0xOTM4Myw3 ICsxOTM4Niw3IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKK0BAIC0xOTQw Myw3ICsxOTU0MSw3IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKICAKICAg IC8qIEdldCB0aGUgb2xkIGxyIGlmIHdlIHNhdmVkIGl0LiAgSWYgd2UgYXJlIHJlc3RvcmluZyBy ZWdpc3RlcnMKICAgICAgIG91dC1vZi1saW5lLCB0aGVuIHRoZSBvdXQtb2YtbGluZSByb3V0aW5l cyBjYW4gZG8gdGhpcyBmb3IgdXMuICAqLwpAQCAtMTI3LDcgKzEwMjgsMTggQEAKICAgICAgewog ICAgICAgIHJ0eCBtZW0gPSBnZW5fZnJhbWVfbWVtX29mZnNldCAoUG1vZGUsIGZyYW1lX3JlZ19y dHgsCiAgCQkJCSAgICAgIGluZm8tPmxyX3NhdmVfb2Zmc2V0ICsgc3Bfb2Zmc2V0KTsKLUBAIC0x OTQwMyw3ICsxOTQwNiw3IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKK0BA IC0xOTQxOCwxMiArMTk1NTYsMTcgQEAgcnM2MDAwX2VtaXRfZXBpbG9ndWUgKGludCBzaWJjYWxs KQorIAkJCSAgICAgICBHRU5fSU5UIChpbmZvLT5jcl9zYXZlX29mZnNldCArIHNwX29mZnNldCkp OworICAgICAgIHJ0eCBtZW0gPSBnZW5fZnJhbWVfbWVtIChTSW1vZGUsIGFkZHIpOworIAorLSAg ICAgIGVtaXRfbW92ZV9pbnNuIChnZW5fcnR4X1JFRyAoU0ltb2RlLCAxMiksIG1lbSk7CisrICAg ICAgY3Jfc2F2ZV9yZWcgPSBnZW5fcnR4X1JFRyAoU0ltb2RlLAorKwkJCQkgREVGQVVMVF9BQkkg PT0gQUJJX0FJWAorKwkJCQkgJiYgIXJlc3RvcmluZ19HUFJzX2lubGluZQorKwkJCQkgJiYgaW5m by0+Zmlyc3RfZnBfcmVnX3NhdmUgPCA2NAorKwkJCQkgPyAxMSA6IDEyKTsKKysgICAgICBlbWl0 X21vdmVfaW5zbiAoY3Jfc2F2ZV9yZWcsIG1lbSk7CisgICAgIH0KICAKICAgIC8qIFNldCBMUiBo ZXJlIHRvIHRyeSB0byBvdmVybGFwIHJlc3RvcmVzIGJlbG93LiAgTFIgaXMgYWx3YXlzIHNhdmVk CiAgICAgICBhYm92ZSBpbmNvbWluZyBzdGFjaywgc28gaXQgbmV2ZXIgbmVlZHMgUkVHX0NGQV9S RVNUT1JFLiAgKi8KQEAgLTEzNiwxMDEgKzEwNDgsMTU4IEBACiAgICAgIGVtaXRfbW92ZV9pbnNu IChnZW5fcnR4X1JFRyAoUG1vZGUsIExSX1JFR05PKSwKICAJCSAgICBnZW5fcnR4X1JFRyAoUG1v ZGUsIDApKTsKICAKLUBAIC0xOTYzOSw2ICsxOTY0MiwxOCBAQCByczYwMDBfZW1pdF9lcGlsb2d1 ZSAoaW50IHNpYmNhbGwpCitAQCAtMTk1NDAsNyArMTk2ODMsNyBAQCByczYwMDBfZW1pdF9lcGls b2d1ZSAoaW50IHNpYmNhbGwpCisgCSAgcGFyID0gcnM2MDAwX21ha2Vfc2F2cmVzX3J0eCAoaW5m bywgZ2VuX3J0eF9SRUcgKFBtb2RlLCAxMSksCisgCQkJCQkwLCByZWdfbW9kZSwKKyAJCQkJCS8q c2F2ZXA9Ki9mYWxzZSwgLypncHI9Ki90cnVlLAorLQkJCQkJLypleGl0cD0qL3RydWUpOworKwkJ CQkJLypscj0qL3RydWUpOworIAkgIGVtaXRfanVtcF9pbnNuIChwYXIpOworIAkgIC8qIFdlIGRv bid0IHdhbnQgYW55Ym9keSBlbHNlIGVtaXR0aW5nIHRoaW5ncyBhZnRlciB3ZSBqdW1wZWQKKyAJ ICAgICBiYWNrLiAgKi8KK0BAIC0xOTU1OCwyMSArMTk3MDEsMjUgQEAgcnM2MDAwX2VtaXRfZXBp bG9ndWUgKGludCBzaWJjYWxsKQorIAlyczYwMDBfZW1pdF9zdGFja19yZXNldCAoaW5mbywgc3Bf cmVnX3J0eCwgZnJhbWVfcmVnX3J0eCwKKyAJCQkJIHNwX29mZnNldCwgY2FuX3VzZV9leGl0KTsK KyAgICAgICBlbHNlCistCWVtaXRfaW5zbiAoZ2VuX2FkZHNpMyAoZ2VuX3J0eF9SRUcgKFBtb2Rl LCAxMSksCistCQkJICAgICAgIHNwX3JlZ19ydHgsCistCQkJICAgICAgIEdFTl9JTlQgKHNwX29m ZnNldCAtIGluZm8tPmZwX3NpemUpKSk7CisrCXsKKysJICBlbWl0X2luc24gKGdlbl9hZGQzX2lu c24gKGdlbl9ydHhfUkVHIChQbW9kZSwgREVGQVVMVF9BQkkgPT0gQUJJX0FJWAorKwkJCQkJCQk/ IDEyIDogMTEpLAorKwkJCQkgICAgZnJhbWVfcmVnX3J0eCwKKysJCQkJICAgIEdFTl9JTlQgKHNw X29mZnNldCAtIGluZm8tPmZwX3NpemUpKSk7CisrCSAgaWYgKFJFR05PIChmcmFtZV9yZWdfcnR4 KSA9PSAxMSkKKysJICAgIHNwX29mZnNldCArPSBpbmZvLT5mcF9zaXplOworKwl9CisgCisgICAg ICAgcGFyID0gcnM2MDAwX21ha2Vfc2F2cmVzX3J0eCAoaW5mbywgZnJhbWVfcmVnX3J0eCwKKyAJ CQkJICAgIGluZm8tPmdwX3NhdmVfb2Zmc2V0LCByZWdfbW9kZSwKKyAJCQkJICAgIC8qc2F2ZXA9 Ki9mYWxzZSwgLypncHI9Ki90cnVlLAorLQkJCQkgICAgLypleGl0cD0qL2Nhbl91c2VfZXhpdCk7 CisrCQkJCSAgICAvKmxyPSovY2FuX3VzZV9leGl0KTsKKyAKKyAgICAgICBpZiAoY2FuX3VzZV9l eGl0KQorIAl7CisgCSAgaWYgKGluZm8tPmNyX3NhdmVfcCkKKyAJICAgIHsKKy0JICAgICAgcnM2 MDAwX3Jlc3RvcmVfc2F2ZWRfY3IgKGdlbl9ydHhfUkVHIChTSW1vZGUsIDEyKSwKKy0JCQkJICAg ICAgIHVzaW5nX210Y3JfbXVsdGlwbGUpOworKwkgICAgICByczYwMDBfcmVzdG9yZV9zYXZlZF9j ciAoY3Jfc2F2ZV9yZWcsIHVzaW5nX210Y3JfbXVsdGlwbGUpOworIAkgICAgICBpZiAoREVGQVVM VF9BQkkgPT0gQUJJX1Y0KQorIAkJY2ZhX3Jlc3RvcmVzCisgCQkgID0gYWxsb2NfcmVnX25vdGUg KFJFR19DRkFfUkVTVE9SRSwKK0BAIC0xOTY1OSw2ICsxOTgwNiwxNiBAQCByczYwMDBfZW1pdF9l cGlsb2d1ZSAoaW50IHNpYmNhbGwpCiAgICAgICAgICAgIH0KICAgICAgfQogIAogKyAgaWYgKHJl c3RvcmVfbHIgJiYgIXJlc3RvcmluZ19HUFJzX2lubGluZSkKICsgICAgewogKyAgICAgIHJ0eCBt ZW0gPSBnZW5fZnJhbWVfbWVtX29mZnNldCAoUG1vZGUsIGZyYW1lX3JlZ19ydHgsCi0rCQkJCSAg ICAgIGluZm8tPmxyX3NhdmVfb2Zmc2V0ICsgc3Bfb2Zmc2V0KTsKKysJCQkJICAgICBpbmZvLT5s cl9zYXZlX29mZnNldCArIHNwX29mZnNldCk7CiArCiArICAgICAgZW1pdF9tb3ZlX2luc24gKGdl bl9ydHhfUkVHIChQbW9kZSwgMCksIG1lbSk7CisrICAgICAgZW1pdF9tb3ZlX2luc24gKGdlbl9y dHhfUkVHIChQbW9kZSwgTFJfUkVHTk8pLAorKwkJICAgICAgZ2VuX3J0eF9SRUcgKFBtb2RlLCAw KSk7CiArICAgIH0KICsKLSsgIGlmIChyZXN0b3JlX2xyICYmICFyZXN0b3JpbmdfR1BSc19pbmxp bmUpCi0rICAgIGVtaXRfbW92ZV9pbnNuIChnZW5fcnR4X1JFRyAoUG1vZGUsIExSX1JFR05PKSwK LSsJCSAgICBnZW5fcnR4X1JFRyAoUG1vZGUsIDApKTsKLSsKICAgIC8qIFJlc3RvcmUgZnByJ3Mg aWYgd2UgbmVlZCB0byBkbyBpdCB3aXRob3V0IGNhbGxpbmcgYSBmdW5jdGlvbi4gICovCiAgICBp ZiAocmVzdG9yaW5nX0ZQUnNfaW5saW5lKQogICAgICBmb3IgKGkgPSAwOyBpIDwgNjQgLSBpbmZv LT5maXJzdF9mcF9yZWdfc2F2ZTsgaSsrKQotLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5t ZC5qagkyMDA5LTA4LTMxIDIzOjMwOjE0LjM4MzUyNjg2MiArMDIwMAotKysrIGdjYy9jb25maWcv cnM2MDAwL3JzNjAwMC5tZAkyMDA5LTA5LTA5IDIxOjAzOjE5LjY2Nzc3OTY4OSArMDIwMAotQEAg LTE1Mjg5LDkgKzE1Mjg5LDkgQEAKLSAgIFsobWF0Y2hfcGFyYWxsZWwgMCAiYW55X3BhcmFsbGVs X29wZXJhbmQiCi0gCQkgICBbKGNsb2JiZXIgKHJlZzpQIDY1KSkKLSAJCSAgICAodXNlIChtYXRj aF9vcGVyYW5kOlAgMSAic3ltYm9sX3JlZl9vcGVyYW5kIiAicyIpKQotLSAgICAgICAgICAgICAg ICAgICAgKHVzZSAobWF0Y2hfb3BlcmFuZDpQIDIgImdwY19yZWdfb3BlcmFuZCIgInIiKSkKLS0J CSAgICAoc2V0IChtYXRjaF9vcGVyYW5kOlAgMyAibWVtb3J5X29wZXJhbmQiICI9bSIpCi0tCQkJ IChtYXRjaF9vcGVyYW5kOlAgNCAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpKV0pXQotKwkJICAgICh1 c2UgKHJlZzpQIDExKSkKLSsJCSAgICAoc2V0IChtYXRjaF9vcGVyYW5kOlAgMiAibWVtb3J5X29w ZXJhbmQiICI9bSIpCi0rCQkJIChtYXRjaF9vcGVyYW5kOlAgMyAiZ3BjX3JlZ19vcGVyYW5kIiAi ciIpKV0pXQotICAgIiIKLSAgICJibCAlejEiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiYnJhbmNo IikKLUBAIC0xNTMwMSw5ICsxNTMwMSw5IEBACi0gICBbKG1hdGNoX3BhcmFsbGVsIDAgImFueV9w YXJhbGxlbF9vcGVyYW5kIgotIAkJICAgWyhjbG9iYmVyIChyZWc6UCA2NSkpCi0gCQkgICAgKHVz ZSAobWF0Y2hfb3BlcmFuZDpQIDEgInN5bWJvbF9yZWZfb3BlcmFuZCIgInMiKSkKLS0gICAgICAg ICAgICAgICAgICAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAyICJncGNfcmVnX29wZXJhbmQiICJy IikpCi0tCQkgICAgKHNldCAobWF0Y2hfb3BlcmFuZDpERiAzICJtZW1vcnlfb3BlcmFuZCIgIj1t IikKLS0JCQkgKG1hdGNoX29wZXJhbmQ6REYgNCAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKV0pXQot KwkJICAgICh1c2UgKHJlZzpQIDExKSkKLSsJCSAgICAoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDIg Im1lbW9yeV9vcGVyYW5kIiAiPW0iKQotKwkJCSAobWF0Y2hfb3BlcmFuZDpERiAzICJncGNfcmVn X29wZXJhbmQiICJmIikpXSldCi0gICAiIgotICAgImJsICV6MSIKLSAgIFsoc2V0X2F0dHIgInR5 cGUiICJicmFuY2giKQotQEAgLTE1Mzk0LDExICsxNTM5NCwxMSBAQAorQEAgLTE5Njg1LDcgKzE5 ODQyLDcgQEAgcnM2MDAwX2VtaXRfZXBpbG9ndWUgKGludCBzaWJjYWxsKQorICAgLyogSWYgd2Ug c2F2ZWQgY3IsIHJlc3RvcmUgaXQgaGVyZS4gIEp1c3QgdGhvc2UgdGhhdCB3ZXJlIHVzZWQuICAq LworICAgaWYgKGluZm8tPmNyX3NhdmVfcCkKKyAgICAgeworLSAgICAgIHJzNjAwMF9yZXN0b3Jl X3NhdmVkX2NyIChnZW5fcnR4X1JFRyAoU0ltb2RlLCAxMiksIHVzaW5nX210Y3JfbXVsdGlwbGUp OworKyAgICAgIHJzNjAwMF9yZXN0b3JlX3NhdmVkX2NyIChjcl9zYXZlX3JlZywgdXNpbmdfbXRj cl9tdWx0aXBsZSk7CisgICAgICAgaWYgKERFRkFVTFRfQUJJID09IEFCSV9WNCkKKyAJY2ZhX3Jl c3RvcmVzCisgCSAgPSBhbGxvY19yZWdfbm90ZSAoUkVHX0NGQV9SRVNUT1JFLCBnZW5fcnR4X1JF RyAoU0ltb2RlLCBDUjJfUkVHTk8pLAorQEAgLTE5NzE2LDEzICsxOTg3MywxNCBAQCByczYwMDBf ZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCisgICBpZiAoIXNpYmNhbGwpCisgICAgIHsKKyAg ICAgICBydHZlYyBwOworKyAgICAgIGJvb2wgbHIgPSAoc3RyYXRlZ3kgJiBTQVZSRVNfTk9JTkxJ TkVfRlBSU19ET0VTTlRfUkVTVE9SRV9MUikgPT0gMDsKKyAgICAgICBpZiAoISByZXN0b3Jpbmdf RlBSc19pbmxpbmUpCisgCXAgPSBydHZlY19hbGxvYyAoNCArIDY0IC0gaW5mby0+Zmlyc3RfZnBf cmVnX3NhdmUpOworICAgICAgIGVsc2UKKyAJcCA9IHJ0dmVjX2FsbG9jICgyKTsKICAKLSAoZGVm aW5lX2luc24gIipyZXN0b3JlX2dwcmVnc188bW9kZT4iCi0gIFsobWF0Y2hfcGFyYWxsZWwgMCAi YW55X3BhcmFsbGVsX29wZXJhbmQiCi0tICAgICAgICAgICAgICAgICAgWyhjbG9iYmVyIChtYXRj aF9vcGVyYW5kOlAgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIj1sIikpCi0tICAgICAgICAgICAgICAg ICAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAyICJzeW1ib2xfcmVmX29wZXJhbmQiICJzIikpCi0t ICAgICAgICAgICAgICAgICAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAzICJncGNfcmVnX29wZXJh bmQiICJyIikpCi0tCQkgICAoc2V0IChtYXRjaF9vcGVyYW5kOlAgNCAiZ3BjX3JlZ19vcGVyYW5k IiAiPXIiKQotLQkJCShtYXRjaF9vcGVyYW5kOlAgNSAibWVtb3J5X29wZXJhbmQiICJtIikpXSld Ci0rCQkgIFsoY2xvYmJlciAobWF0Y2hfb3BlcmFuZDpQIDEgInJlZ2lzdGVyX29wZXJhbmQiICI9 bCIpKQotKwkJICAgKHVzZSAobWF0Y2hfb3BlcmFuZDpQIDIgInN5bWJvbF9yZWZfb3BlcmFuZCIg InMiKSkKLSsJCSAgICh1c2UgKHJlZzpQIDExKSkKLSsJCSAgIChzZXQgKG1hdGNoX29wZXJhbmQ6 UCAzICJncGNfcmVnX29wZXJhbmQiICI9ciIpCi0rCQkJKG1hdGNoX29wZXJhbmQ6UCA0ICJtZW1v cnlfb3BlcmFuZCIgIm0iKSldKV0KLSAgIiIKLSAgImJsICV6MiIKKyAgICAgICBSVFZFQ19FTFQg KHAsIDApID0gZ2VuX3J0eF9SRVRVUk4gKFZPSURtb2RlKTsKKy0gICAgICBSVFZFQ19FTFQgKHAs IDEpID0gKHJlc3RvcmluZ19GUFJzX2lubGluZQorKyAgICAgIFJUVkVDX0VMVCAocCwgMSkgPSAo KHJlc3RvcmluZ19GUFJzX2lubGluZSB8fCAhbHIpCisgCQkJICA/IGdlbl9ydHhfVVNFIChWT0lE bW9kZSwgZ2VuX3J0eF9SRUcgKFBtb2RlLCA2NSkpCisgCQkJICA6IGdlbl9ydHhfQ0xPQkJFUiAo Vk9JRG1vZGUsCisgCQkJCQkgICAgIGdlbl9ydHhfUkVHIChQbW9kZSwgNjUpKSk7CitAQCAtMTk3 MzcsMTAgKzE5ODk1LDEyIEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKKyAJ ICBzeW0gPSByczYwMDBfc2F2cmVzX3JvdXRpbmVfc3ltIChpbmZvLAorIAkJCQkJICAgLypzYXZl cD0qL2ZhbHNlLAorIAkJCQkJICAgLypncHI9Ki9mYWxzZSwKKy0JCQkJCSAgIC8qZXhpdHA9Ki90 cnVlKTsKKysJCQkJCSAgIC8qbHI9Ki9scik7CisgCSAgUlRWRUNfRUxUIChwLCAyKSA9IGdlbl9y dHhfVVNFIChWT0lEbW9kZSwgc3ltKTsKKyAJICBSVFZFQ19FTFQgKHAsIDMpID0gZ2VuX3J0eF9V U0UgKFZPSURtb2RlLAorLQkJCQkJICBnZW5fcnR4X1JFRyAoUG1vZGUsIDExKSk7CisrCQkJCQkg IGdlbl9ydHhfUkVHIChQbW9kZSwKKysJCQkJCQkgICAgICAgREVGQVVMVF9BQkkgPT0gQUJJX0FJ WAorKwkJCQkJCSAgICAgICA/IDEgOiAxMSkpOworIAkgIGZvciAoaSA9IDA7IGkgPCA2NCAtIGlu Zm8tPmZpcnN0X2ZwX3JlZ19zYXZlOyBpKyspCisgCSAgICB7CisgCSAgICAgIHJ0eCBhZGRyLCBt ZW07CistLS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm1kCShyZXZpc2lvbiAxNTE3MjgpCisr KysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm1kCShyZXZpc2lvbiAxNTE3MjkpCitAQCAtMTU0 MzYsNiArMTU0MzYsMTkgQEAgKGRlZmluZV9pbnNuICIqcmV0dXJuX2FuZF9yZXN0b3JlX2ZwcmVn cwogICBbKHNldF9hdHRyICJ0eXBlIiAiYnJhbmNoIikKLUBAIC0xNTQwNiwxMiArMTU0MDYsMTIg QEAKKyAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKICAKLSAoZGVmaW5lX2luc24gIipyZXR1 cm5fYW5kX3Jlc3RvcmVfZ3ByZWdzXzxtb2RlPiIKLSAgWyhtYXRjaF9wYXJhbGxlbCAwICJhbnlf cGFyYWxsZWxfb3BlcmFuZCIKLS0gICAgICAgICAgICAgICAgICBbKHJldHVybikKKysoZGVmaW5l X2luc24gIipyZXR1cm5fYW5kX3Jlc3RvcmVfZnByZWdzX2FpeF88bW9kZT4iCisrIFsobWF0Y2hf cGFyYWxsZWwgMCAiYW55X3BhcmFsbGVsX29wZXJhbmQiCiArCQkgIFsocmV0dXJuKQotIAkJICAg KGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6UCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWwiKSkKLSAJ CSAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAyICJzeW1ib2xfcmVmX29wZXJhbmQiICJzIikpCi0t ICAgICAgICAgICAgICAgICAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAzICJncGNfcmVnX29wZXJh bmQiICJyIikpCi0tCQkgICAoc2V0IChtYXRjaF9vcGVyYW5kOlAgNCAiZ3BjX3JlZ19vcGVyYW5k IiAiPXIiKQotLQkJCShtYXRjaF9vcGVyYW5kOlAgNSAibWVtb3J5X29wZXJhbmQiICJtIikpXSld Ci0rCQkgICAodXNlIChyZWc6UCAxMSkpCi0rCQkgICAoc2V0IChtYXRjaF9vcGVyYW5kOlAgMyAi Z3BjX3JlZ19vcGVyYW5kIiAiPXIiKQotKwkJCShtYXRjaF9vcGVyYW5kOlAgNCAibWVtb3J5X29w ZXJhbmQiICJtIikpXSldCi0gICIiCi0gICJiICV6MiIKLSAgWyhzZXRfYXR0ciAidHlwZSIgImJy YW5jaCIpCi1AQCAtMTU0MTksMTIgKzE1NDE5LDEyIEBACisrCQkgICAodXNlIChtYXRjaF9vcGVy YW5kOlAgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImwiKSkKKysJCSAgICh1c2UgKG1hdGNoX29wZXJh bmQ6UCAyICJzeW1ib2xfcmVmX29wZXJhbmQiICJzIikpCisrCQkgICAodXNlIChtYXRjaF9vcGVy YW5kOlAgMyAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpKQorKwkJICAgKHNldCAobWF0Y2hfb3BlcmFu ZDpERiA0ICJncGNfcmVnX29wZXJhbmQiICI9ZCIpCisrCQkJKG1hdGNoX29wZXJhbmQ6REYgNSAi bWVtb3J5X29wZXJhbmQiICJtIikpXSldCisrICIiCisrICJiICV6MiIKKysgWyhzZXRfYXR0ciAi dHlwZSIgImJyYW5jaCIpCisrICAoc2V0X2F0dHIgImxlbmd0aCIgIjQiKV0pCisrCisgOyBUaGlz IGlzIHVzZWQgaW4gY29tcGlsaW5nIHRoZSB1bndpbmQgcm91dGluZXMuCisgKGRlZmluZV9leHBh bmQgImVoX3JldHVybiIKKyAgIFsodXNlIChtYXRjaF9vcGVyYW5kIDAgImdlbmVyYWxfb3BlcmFu ZCIgIiIpKV0KKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9zeXN2NC5oCShyZXZpc2lvbiAxNTE3Mjgp CisrKysgZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQuaAkocmV2aXNpb24gMTUxNzI5KQorQEAgLTI3 MiwyNyArMjcyLDI1IEBAIGRvIHsJCQkJCQkJCQlcCisgI2VuZGlmCiAgCi0gKGRlZmluZV9pbnNu ICIqcmV0dXJuX2FuZF9yZXN0b3JlX2ZwcmVnc188bW9kZT4iCi0gIFsobWF0Y2hfcGFyYWxsZWwg MCAiYW55X3BhcmFsbGVsX29wZXJhbmQiCi0tICAgICAgICAgICAgICAgICAgWyhyZXR1cm4pCi0r CQkgIFsocmV0dXJuKQotIAkJICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6UCAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiPWwiKSkKLSAJCSAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UCAyICJzeW1ib2xf cmVmX29wZXJhbmQiICJzIikpCi0tICAgICAgICAgICAgICAgICAgICh1c2UgKG1hdGNoX29wZXJh bmQ6UCAzICJncGNfcmVnX29wZXJhbmQiICJyIikpCi0tCQkgICAoc2V0IChtYXRjaF9vcGVyYW5k OkRGIDQgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKLS0JCQkobWF0Y2hfb3BlcmFuZDpERiA1ICJt ZW1vcnlfb3BlcmFuZCIgIm0iKSldKV0KLSsJCSAgICh1c2UgKHJlZzpQIDExKSkKLSsJCSAgIChz ZXQgKG1hdGNoX29wZXJhbmQ6REYgMyAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQotKwkJCShtYXRj aF9vcGVyYW5kOkRGIDQgIm1lbW9yeV9vcGVyYW5kIiAibSIpKV0pXQotICAiIgotICAiYiAlejIi Ci0gIFsoc2V0X2F0dHIgInR5cGUiICJicmFuY2giKQorIC8qIERlZmluZSBjdXRvZmYgZm9yIHVz aW5nIGV4dGVybmFsIGZ1bmN0aW9ucyB0byBzYXZlIGZsb2F0aW5nIHBvaW50LgorLSAgIEN1cnJl bnRseSBvbiA2NC1iaXQgVi40LCBhbHdheXMgdXNlIGlubGluZSBzdG9yZXMuICBXaGVuIG9wdGlt aXppbmcKKy0gICBmb3Igc2l6ZSBvbiAzMi1iaXQgdGFyZ2V0cywgdXNlIGV4dGVybmFsIGZ1bmN0 aW9ucyB3aGVuCistICAgcHJvZml0YWJsZS4gICovCistI2RlZmluZSBGUF9TQVZFX0lOTElORShG SVJTVF9SRUcpIChvcHRpbWl6ZV9zaXplICYmICFUQVJHRVRfNjRCSVQJXAorKyAgIFdoZW4gb3B0 aW1pemluZyBmb3Igc2l6ZSwgdXNlIGV4dGVybmFsIGZ1bmN0aW9ucyB3aGVuIHByb2ZpdGFibGUu ICAqLworKyNkZWZpbmUgRlBfU0FWRV9JTkxJTkUoRklSU1RfUkVHKSAob3B0aW1pemVfc2l6ZQkJ CVwKKyAJCQkJICAgPyAoKEZJUlNUX1JFRykgPT0gNjIJCQlcCisgCQkJCSAgICAgIHx8IChGSVJT VF9SRUcpID09IDYzKQkJXAorIAkJCQkgICA6IChGSVJTVF9SRUcpIDwgNjQpCisgLyogQW5kIHNp bWlsYXJseSBmb3IgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4gICovCisgI2RlZmluZSBHUF9T QVZFX0lOTElORShGSVJTVF9SRUcpICgoRklSU1RfUkVHKSA8IDMyCVwKKy0JCQkJICAgJiYgKFRB UkdFVF82NEJJVCB8fCAhb3B0aW1pemVfc2l6ZSkpCisrCQkJCSAgICYmICFvcHRpbWl6ZV9zaXpl KQorIAorIC8qIFB1dCBqdW1wIHRhYmxlcyBpbiByZWFkLW9ubHkgbWVtb3J5LCByYXRoZXIgdGhh biBpbiAudGV4dC4gICovCisgI2RlZmluZSBKVU1QX1RBQkxFU19JTl9URVhUX1NFQ1RJT04gMAor IAorIC8qIFByZWZpeCBhbmQgc3VmZml4IHRvIHVzZSB0byBzYXZpbmcgZmxvYXRpbmcgcG9pbnQu ICAqLworICNkZWZpbmUJU0FWRV9GUF9QUkVGSVggIl9zYXZlZnByXyIKKy0jZGVmaW5lIFNBVkVf RlBfU1VGRklYIChUQVJHRVRfNjRCSVQgPyAiX2wiIDogIiIpCisrI2RlZmluZSBTQVZFX0ZQX1NV RkZJWCAiIgorIAorIC8qIFByZWZpeCBhbmQgc3VmZml4IHRvIHVzZSB0byByZXN0b3JpbmcgZmxv YXRpbmcgcG9pbnQuICAqLworICNkZWZpbmUJUkVTVE9SRV9GUF9QUkVGSVggIl9yZXN0ZnByXyIK Ky0jZGVmaW5lIFJFU1RPUkVfRlBfU1VGRklYIChUQVJHRVRfNjRCSVQgPyAiX2wiIDogIiIpCisr I2RlZmluZSBSRVNUT1JFX0ZQX1NVRkZJWCAiIgorIAorIC8qIFR5cGUgdXNlZCBmb3IgcHRyZGlm Zl90LCBhcyBhIHN0cmluZyB1c2VkIGluIGEgZGVjbGFyYXRpb24uICAqLworICNkZWZpbmUgUFRS RElGRl9UWVBFICJpbnQiCg==