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.0-0.15 Date: Mon, 29 Jun 2026 12:24:06 GMT Message-ID: <178273584658.1.3503687953713475940.rpms-gcc-d02d0c24e141@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: d02d0c24e1419080258ac5814a5c5cbd7280103b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogZDAyZDBjMjRlMTQxOTA4MDI1OGFjNTgxNGE1YzVjYmQ3 MjgwMTAzYgpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOS0wMi0wNFQyMjozODoyOSswMDowMApTdGF0cyAgOiArMTUwNS8tNSBpbiA0 IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nY2Mv Yy9kMDJkMGMyNGUxNDE5MDgwMjU4YWM1ODE0YTVjNWNiZDcyODAxMDNiP2JyYW5jaD1yaGVsLWY0 MS1iYXNlCgpMb2c6CjQuNC4wLTAuMTUKCi0tLQpkaWZmIC0tZ2l0IGEvLmN2c2lnbm9yZSBiLy5j dnNpZ25vcmUKaW5kZXggYTdkM2U3OS4uNTc4ZDQwMCAxMDA2NDQKLS0tIGEvLmN2c2lnbm9yZQor KysgYi8uY3ZzaWdub3JlCkBAIC0xLDMgKzEsMyBAQAogZmFzdGphci0wLjk3LnRhci5negotZ2Nj LTQuNC4wLTIwMDkwMjAzLnRhci5iejIKK2djYy00LjQuMC0yMDA5MDIwNC50YXIuYnoyCiBjbG9v Zy1wcGwtMC4xNS50YXIuZ3oKCmRpZmYgLS1naXQgYS9nY2Muc3BlYyBiL2djYy5zcGVjCmluZGV4 IDE3MWE2MzkuLjk5MzNiZTAgMTAwNjQ0Ci0tLSBhL2djYy5zcGVjCisrKyBiL2djYy5zcGVjCkBA IC0xLDkgKzEsOSBAQAotJWRlZmluZSBEQVRFIDIwMDkwMjAzCi0lZGVmaW5lIFNWTlJFViAxNDM5 MDQKKyVkZWZpbmUgREFURSAyMDA5MDIwNAorJWRlZmluZSBTVk5SRVYgMTQzOTQxCiAlZGVmaW5l IGdjY192ZXJzaW9uIDQuNC4wCiAjIE5vdGUsIGdjY19yZWxlYXNlIG11c3QgYmUgaW50ZWdlciwg aWYgeW91IHdhbnQgdG8gYWRkIHN1ZmZpeGVzIHRvCiAjICV7cmVsZWFzZX0sIGFwcGVuZCB0aGVt IGFmdGVyICV7Z2NjX3JlbGVhc2V9IG9uIFJlbGVhc2U6IGxpbmUuCi0lZGVmaW5lIGdjY19yZWxl YXNlIDAuMTQKKyVkZWZpbmUgZ2NjX3JlbGVhc2UgMC4xNQogJWRlZmluZSBfdW5wYWNrYWdlZF9m aWxlc190ZXJtaW5hdGVfYnVpbGQgMAogJWRlZmluZSBtdWx0aWxpYl82NF9hcmNocyBzcGFyYzY0 IHBwYzY0IHMzOTB4IHg4Nl82NAogJWRlZmluZSBpbmNsdWRlX2dhcHBsZXR2aWV3ZXIgMQpAQCAt MTM5LDYgKzEzOSw3IEBAIFBhdGNoMTU6IGdjYzQ0LXNwYXJjLWNvbmZpZy1kZXRlY3Rpb24ucGF0 Y2gKIFBhdGNoMTY6IGdjYzQ0LWxpYmdvbXAtb21wX2gtbXVsdGlsaWIucGF0Y2gKIFBhdGNoMjA6 IGdjYzQ0LWxpYnRvb2wtbm8tcnBhdGgucGF0Y2gKIFBhdGNoMjE6IGdjYzQ0LWNsb29nLWRsLnBh dGNoCitQYXRjaDIyOiBnY2M0NC1yYXctc3RyaW5nLnBhdGNoCiAKIFBhdGNoMTAwMDogZmFzdGph ci0wLjk3LXNlZ2ZhdWx0LnBhdGNoCiAKQEAgLTQyNCw2ICs0MjUsNyBAQCB3aGljaCBhcmUgcmVx dWlyZWQgdG8gY29tcGlsZSB3aXRoIHRoZSBHTkFULgogJWlmICV7YnVpbGRfY2xvb2d9CiAlcGF0 Y2gyMSAtcDAgLWIgLmNsb29nLWRsfgogJWVuZGlmCislcGF0Y2gyMiAtcDAgLWIgLnJhdy1zdHJp bmd+CiAKICMgVGhpcyB0ZXN0Y2FzZSBkb2Vzbid0IGNvbXBpbGUuCiBybSBsaWJqYXZhL3Rlc3Rz dWl0ZS9saWJqYXZhLmxhbmcvUFIzNTAyMCoKQEAgLTE3NTksNiArMTc2MSwxMiBAQCBmaQogJWRv YyBycG0uZG9jL2NoYW5nZWxvZ3MvbGlibXVkZmxhcC9DaGFuZ2VMb2cqCiAKICVjaGFuZ2Vsb2cK KyogV2VkIEZlYiAgNCAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4w LTAuMTUKKy0gdXBkYXRlIGZyb20gdHJ1bmsKKyAgLSBDKysgbWFuZ2xpbmcgZml4IChQUiBjKysv MzkwOTUpCisgIC0gb25seSBjb21wbGFpbiBhYm91dCBjYWxsaW5nIG1haW4gaW4gQysrIGlmIC1w ZWRhbnRpYworLSBhZGQgcmF3IHN0cmluZyBzdXBwb3J0CisKICogVHVlIEZlYiAgMyAyMDA5IEph a3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMTQKIC0gdXBkYXRlIGZyb20g dHJ1bmsKIC0gd2hlbiBjb21waWxpbmcgd2l0aCAtbWFyY2g9aTM4NiwgZG9uJ3QgdXNlIF9fc3lu Y18qIGJ1aWx0aW5zIGluCgpkaWZmIC0tZ2l0IGEvZ2NjNDQtcmF3LXN0cmluZy5wYXRjaCBiL2dj YzQ0LXJhdy1zdHJpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YjFlZGFkMQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0LXJhdy1zdHJpbmcucGF0Y2gKQEAgLTAs MCArMSwxNDkyIEBACisyMDA4LTA5LTEyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNv bT4KKworCSogY2hhcnNldC5jIChjcHBfaW5pdF9pY29udik6IEluaXRpYWxpemUgdXRmOF9jc2V0 X2Rlc2MuCisJKF9jcHBfZGVzdHJveV9pY29udik6IERlc3Ryb3kgdXRmOF9jc2V0X2Rlc2MsIGNo YXIxNl9jc2V0X2Rlc2MKKwlhbmQgY2hhcjMyX2NzZXRfZGVzYy4KKwkoY29udmVydGVyX2Zvcl90 eXBlKTogSGFuZGxlIENQUF9VVEY4U1RSSU5HLgorCShjcHBfaW50ZXJwcmV0X3N0cmluZyk6IEhh bmRsZSBDUFBfVVRGOFNUUklORyBhbmQgcmF3LXN0cmluZ3MuCisJKiBkaXJlY3RpdmVzLmMgKGdl dF9fUHJhZ21hX3N0cmluZyk6IEhhbmRsZSBDUFBfVVRGOFNUUklORy4KKwkqIGluY2x1ZGUvY3Bw bGliLmggKENQUF9VVEY4U1RSSU5HKTogTmV3IHRva2VuIHR5cGUuCisJKiBpbnRlcm5hbC5oIChz dHJ1Y3QgY3BwX3JlYWRlcik6IEFkZCB1dGY4X2NzZXRfZGVzYyBmaWVsZC4KKwkqIGxleC5jIChs ZXhfcmF3X3N0cmluZyk6IE5ldyBmdW5jdGlvbi4KKwkobGV4X3N0cmluZyk6IEhhbmRsZSB1OCBz dHJpbmcgbGl0ZXJhbHMsIGNhbGwgbGV4X3Jhd19zdHJpbmcKKwlmb3IgcmF3IHN0cmluZyBsaXRl cmFscy4KKwkoX2NwcF9sZXhfZGlyZWN0KTogQ2FsbCBsZXhfc3RyaW5nIGV2ZW4gZm9yIHU4IiBh bmQgeyx1LFUsTCx1OH1SIgorCXNlcXVlbmNlcy4KKwkqIG1hY3JvLmMgKHN0cmluZ2lmeV9hcmcp OiBIYW5kbGUgQ1BQX1VURjhTVFJJTkcuCisKKwkqIGMtY29tbW9uLmMgKGNfcGFyc2VfZXJyb3Ip OiBIYW5kbGUgQ1BQX1VURjhTVFJJTkcuCisJKiBjLWxleC5jIChjX2xleF93aXRoX2ZsYWdzLCBs ZXhfc3RyaW5nKTogTGlrZXdpc2UuCisJKiBjLXBhcnNlci5jIChjX3BhcnNlcl9wb3N0Zml4X2V4 cHJlc3Npb24pOiBMaWtld2lzZS4KKworCSogcGFyc2VyLmMgKGNwX2xleGVyX3ByaW50X3Rva2Vu LCBjcF9wYXJzZXJfaXNfc3RyaW5nX2xpdGVyYWwsCisJY3BfcGFyc2VyX3N0cmluZ19saXRlcmFs LCBjcF9wYXJzZXJfcHJpbWFyeV9leHByZXNzaW9uKTogTGlrZXdpc2UuCisKKwkqIGdjYy5kZy9y YXctc3RyaW5nLTEuYzogTmV3IHRlc3QuCisJKiBnY2MuZGcvcmF3LXN0cmluZy0yLmM6IE5ldyB0 ZXN0LgorCSogZ2NjLmRnL3Jhdy1zdHJpbmctMy5jOiBOZXcgdGVzdC4KKwkqIGdjYy5kZy9yYXct c3RyaW5nLTQuYzogTmV3IHRlc3QuCisJKiBnY2MuZGcvcmF3LXN0cmluZy01LmM6IE5ldyB0ZXN0 LgorCSogZ2NjLmRnL3Jhdy1zdHJpbmctNi5jOiBOZXcgdGVzdC4KKwkqIGdjYy5kZy9yYXctc3Ry aW5nLTcuYzogTmV3IHRlc3QuCisJKiBnY2MuZGcvdXRmOC0xLmM6IE5ldyB0ZXN0LgorCSogZ2Nj LmRnL3V0ZjgtMi5jOiBOZXcgdGVzdC4KKwkqIGdjYy5kZy91dGYtYmFkY29uY2F0Mi5jOiBOZXcg dGVzdC4KKwkqIGdjYy5kZy91dGYtZGZsdDIuYzogTmV3IHRlc3QuCisJKiBnKysuZGcvZXh0L3Jh dy1zdHJpbmctMS5DOiBOZXcgdGVzdC4KKwkqIGcrKy5kZy9leHQvcmF3LXN0cmluZy0yLkM6IE5l dyB0ZXN0LgorCSogZysrLmRnL2V4dC9yYXctc3RyaW5nLTMuQzogTmV3IHRlc3QuCisJKiBnKysu ZGcvZXh0L3Jhdy1zdHJpbmctNC5DOiBOZXcgdGVzdC4KKwkqIGcrKy5kZy9leHQvcmF3LXN0cmlu Zy01LkM6IE5ldyB0ZXN0LgorCSogZysrLmRnL2V4dC9yYXctc3RyaW5nLTYuQzogTmV3IHRlc3Qu CisJKiBnKysuZGcvZXh0L3Jhdy1zdHJpbmctNy5DOiBOZXcgdGVzdC4KKwkqIGcrKy5kZy9leHQv dXRmOC0xLkM6IE5ldyB0ZXN0LgorCSogZysrLmRnL2V4dC91dGY4LTIuQzogTmV3IHRlc3QuCisJ KiBnKysuZGcvZXh0L3V0Zi1iYWRjb25jYXQyLkM6IE5ldyB0ZXN0LgorCSogZysrLmRnL2V4dC91 dGYtZGZsdDIuQzogTmV3IHRlc3QuCisKKy0tLSBsaWJjcHAvY2hhcnNldC5jLmpqCTIwMDgtMDkt MDUgMTI6NTk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliY3BwL2NoYXJzZXQuYwkyMDA4LTA5 LTExIDIyOjExOjAyLjAwMDAwMDAwMCArMDIwMAorQEAgLTcyMSw2ICs3MjEsOCBAQCBjcHBfaW5p dF9pY29udiAoY3BwX3JlYWRlciAqcGZpbGUpCisgCisgICBwZmlsZS0+bmFycm93X2NzZXRfZGVz YyA9IGluaXRfaWNvbnZfZGVzYyAocGZpbGUsIG5jc2V0LCBTT1VSQ0VfQ0hBUlNFVCk7CisgICBw ZmlsZS0+bmFycm93X2NzZXRfZGVzYy53aWR0aCA9IENQUF9PUFRJT04gKHBmaWxlLCBjaGFyX3By ZWNpc2lvbik7CisrICBwZmlsZS0+dXRmOF9jc2V0X2Rlc2MgPSBpbml0X2ljb252X2Rlc2MgKHBm aWxlLCAiVVRGLTgiLCBTT1VSQ0VfQ0hBUlNFVCk7CisrICBwZmlsZS0+dXRmOF9jc2V0X2Rlc2Mu d2lkdGggPSBDUFBfT1BUSU9OIChwZmlsZSwgY2hhcl9wcmVjaXNpb24pOworICAgcGZpbGUtPmNo YXIxNl9jc2V0X2Rlc2MgPSBpbml0X2ljb252X2Rlc2MgKHBmaWxlLAorIAkJCQkJICAgICBiZSA/ ICJVVEYtMTZCRSIgOiAiVVRGLTE2TEUiLAorIAkJCQkJICAgICBTT1VSQ0VfQ0hBUlNFVCk7CitA QCAtNzQxLDYgKzc0MywxMiBAQCBfY3BwX2Rlc3Ryb3lfaWNvbnYgKGNwcF9yZWFkZXIgKnBmaWxl KQorICAgICB7CisgICAgICAgaWYgKHBmaWxlLT5uYXJyb3dfY3NldF9kZXNjLmZ1bmMgPT0gY29u dmVydF91c2luZ19pY29udikKKyAJaWNvbnZfY2xvc2UgKHBmaWxlLT5uYXJyb3dfY3NldF9kZXNj LmNkKTsKKysgICAgICBpZiAocGZpbGUtPnV0ZjhfY3NldF9kZXNjLmZ1bmMgPT0gY29udmVydF91 c2luZ19pY29udikKKysJaWNvbnZfY2xvc2UgKHBmaWxlLT51dGY4X2NzZXRfZGVzYy5jZCk7Cisr ICAgICAgaWYgKHBmaWxlLT5jaGFyMTZfY3NldF9kZXNjLmZ1bmMgPT0gY29udmVydF91c2luZ19p Y29udikKKysJaWNvbnZfY2xvc2UgKHBmaWxlLT5jaGFyMTZfY3NldF9kZXNjLmNkKTsKKysgICAg ICBpZiAocGZpbGUtPmNoYXIzMl9jc2V0X2Rlc2MuZnVuYyA9PSBjb252ZXJ0X3VzaW5nX2ljb252 KQorKwlpY29udl9jbG9zZSAocGZpbGUtPmNoYXIzMl9jc2V0X2Rlc2MuY2QpOworICAgICAgIGlm IChwZmlsZS0+d2lkZV9jc2V0X2Rlc2MuZnVuYyA9PSBjb252ZXJ0X3VzaW5nX2ljb252KQorIAlp Y29udl9jbG9zZSAocGZpbGUtPndpZGVfY3NldF9kZXNjLmNkKTsKKyAgICAgfQorQEAgLTEzMzAs NiArMTMzOCw4IEBAIGNvbnZlcnRlcl9mb3JfdHlwZSAoY3BwX3JlYWRlciAqcGZpbGUsIGUKKyAg ICAgeworICAgICBkZWZhdWx0OgorIAlyZXR1cm4gcGZpbGUtPm5hcnJvd19jc2V0X2Rlc2M7Cisr ICAgIGNhc2UgQ1BQX1VURjhTVFJJTkc6CisrCXJldHVybiBwZmlsZS0+dXRmOF9jc2V0X2Rlc2M7 CisgICAgIGNhc2UgQ1BQX0NIQVIxNjoKKyAgICAgY2FzZSBDUFBfU1RSSU5HMTY6CisgCXJldHVy biBwZmlsZS0+Y2hhcjE2X2NzZXRfZGVzYzsKK0BAIC0xMzY0LDcgKzEzNzQsNDcgQEAgY3BwX2lu dGVycHJldF9zdHJpbmcgKGNwcF9yZWFkZXIgKnBmaWxlLAorICAgZm9yIChpID0gMDsgaSA8IGNv dW50OyBpKyspCisgICAgIHsKKyAgICAgICBwID0gZnJvbVtpXS50ZXh0OworLSAgICAgIGlmICgq cCA9PSAnTCcgfHwgKnAgPT0gJ3UnIHx8ICpwID09ICdVJykgcCsrOworKyAgICAgIGlmICgqcCA9 PSAndScpCisrCXsKKysJICBpZiAoKisrcCA9PSAnOCcpCisrCSAgICBwKys7CisrCX0KKysgICAg ICBlbHNlIGlmICgqcCA9PSAnTCcgfHwgKnAgPT0gJ1UnKSBwKys7CisrICAgICAgaWYgKCpwID09 ICdSJykKKysJeworKwkgIGNvbnN0IHVjaGFyICpwcmVmaXg7CisrCisrCSAgLyogU2tpcCBvdmVy ICdSIicuICAqLworKwkgIHAgKz0gMjsKKysJICBwcmVmaXggPSBwOworKwkgIHdoaWxlICgqcCAh PSAnWycpCisrCSAgICBwKys7CisrCSAgcCsrOworKwkgIGxpbWl0ID0gZnJvbVtpXS50ZXh0ICsg ZnJvbVtpXS5sZW47CisrCSAgaWYgKGxpbWl0ID49IHAgKyAocCAtIHByZWZpeCkgKyAxKQorKwkg ICAgbGltaXQgLT0gKHAgLSBwcmVmaXgpICsgMTsKKysKKysJICBmb3IgKDs7KQorKwkgICAgewor KwkgICAgICBiYXNlID0gcDsKKysJICAgICAgd2hpbGUgKHAgPCBsaW1pdCAmJiAoKnAgIT0gJ1xc JyB8fCAocFsxXSAhPSAndScgJiYgcFsxXSAhPSAnVScpKSkKKysJCXArKzsKKysJICAgICAgaWYg KHAgPiBiYXNlKQorKwkJeworKwkJICAvKiBXZSBoYXZlIGEgcnVuIG9mIG5vcm1hbCBjaGFyYWN0 ZXJzOyB0aGVzZSBjYW4gYmUgZmVkCisrCQkgICAgIGRpcmVjdGx5IHRvIGNvbnZlcnRfY3NldC4g ICovCisrCQkgIGlmICghQVBQTFlfQ09OVkVSU0lPTiAoY3Z0LCBiYXNlLCBwIC0gYmFzZSwgJnRi dWYpKQorKwkJICAgIGdvdG8gZmFpbDsKKysJCX0KKysJICAgICAgaWYgKHAgPT0gbGltaXQpCisr CQlicmVhazsKKysKKysJICAgICAgcCA9IGNvbnZlcnRfdWNuIChwZmlsZSwgcCArIDEsIGxpbWl0 LCAmdGJ1ZiwgY3Z0KTsKKysJICAgIH0KKysKKysJICBjb250aW51ZTsKKysJfQorKworICAgICAg IHArKzsgLyogU2tpcCBsZWFkaW5nIHF1b3RlLiAgKi8KKyAgICAgICBsaW1pdCA9IGZyb21baV0u dGV4dCArIGZyb21baV0ubGVuIC0gMTsgLyogU2tpcCB0cmFpbGluZyBxdW90ZS4gICovCisgCist LS0gbGliY3BwL2RpcmVjdGl2ZXMuYy5qagkyMDA4LTA5LTA1IDEyOjU5OjQ5LjAwMDAwMDAwMCAr MDIwMAorKysrIGxpYmNwcC9kaXJlY3RpdmVzLmMJMjAwOC0wOS0xMSAyMDoyNzozMi4wMDAwMDAw MDAgKzAyMDAKK0BAIC0xNTE5LDcgKzE1MTksOCBAQCBnZXRfX1ByYWdtYV9zdHJpbmcgKGNwcF9y ZWFkZXIgKnBmaWxlKQorICAgaWYgKHN0cmluZy0+dHlwZSA9PSBDUFBfRU9GKQorICAgICBfY3Bw X2JhY2t1cF90b2tlbnMgKHBmaWxlLCAxKTsKKyAgIGlmIChzdHJpbmctPnR5cGUgIT0gQ1BQX1NU UklORyAmJiBzdHJpbmctPnR5cGUgIT0gQ1BQX1dTVFJJTkcKKy0gICAgICAmJiBzdHJpbmctPnR5 cGUgIT0gQ1BQX1NUUklORzMyICYmIHN0cmluZy0+dHlwZSAhPSBDUFBfU1RSSU5HMTYpCisrICAg ICAgJiYgc3RyaW5nLT50eXBlICE9IENQUF9TVFJJTkczMiAmJiBzdHJpbmctPnR5cGUgIT0gQ1BQ X1NUUklORzE2CisrICAgICAgJiYgc3RyaW5nLT50eXBlICE9IENQUF9VVEY4U1RSSU5HKQorICAg ICByZXR1cm4gTlVMTDsKKyAKKyAgIHBhcmVuID0gZ2V0X3Rva2VuX25vX3BhZGRpbmcgKHBmaWxl KTsKKy0tLSBsaWJjcHAvaW5jbHVkZS9jcHBsaWIuaC5qagkyMDA4LTA5LTA1IDEyOjU5OjQ3LjAw MDAwMDAwMCArMDIwMAorKysrIGxpYmNwcC9pbmNsdWRlL2NwcGxpYi5oCTIwMDgtMDktMTEgMjA6 MjM6NTMuMDAwMDAwMDAwICswMjAwCitAQCAtMTMxLDYgKzEzMSw3IEBAIHN0cnVjdCBfY3BwX2Zp bGU7CisgICBUSyhXU1RSSU5HLAkJTElURVJBTCkgLyogTCJzdHJpbmciICovCQkJXAorICAgVEso U1RSSU5HMTYsCQlMSVRFUkFMKSAvKiB1InN0cmluZyIgKi8JCQlcCisgICBUSyhTVFJJTkczMiwJ CUxJVEVSQUwpIC8qIFUic3RyaW5nIiAqLwkJCVwKKysgIFRLKFVURjhTVFJJTkcsCUxJVEVSQUwp IC8qIHU4InN0cmluZyIgKi8JCQlcCisgICBUSyhPQkpDX1NUUklORywJTElURVJBTCkgLyogQCJz dHJpbmciIC0gT2JqZWN0aXZlLUMgKi8JCVwKKyAgIFRLKEhFQURFUl9OQU1FLAlMSVRFUkFMKSAv KiA8c3RkaW8uaD4gaW4gI2luY2x1ZGUgKi8JCVwKKyAJCQkJCQkJCQlcCitAQCAtNzI0LDEwICs3 MjUsMTAgQEAgZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNwcF9tYWNyb19kZQorIGV4dGVy biB2b2lkIF9jcHBfYmFja3VwX3Rva2VucyAoY3BwX3JlYWRlciAqLCB1bnNpZ25lZCBpbnQpOwor IGV4dGVybiBjb25zdCBjcHBfdG9rZW4gKmNwcF9wZWVrX3Rva2VuIChjcHBfcmVhZGVyICosIGlu dCk7CisgCistLyogRXZhbHVhdGUgYSBDUFBfQ0hBUiBvciBDUFBfV0NIQVIgdG9rZW4uICAqLwor Ky8qIEV2YWx1YXRlIGEgQ1BQXypDSEFSKiB0b2tlbi4gICovCisgZXh0ZXJuIGNwcGNoYXJfdCBj cHBfaW50ZXJwcmV0X2NoYXJjb25zdCAoY3BwX3JlYWRlciAqLCBjb25zdCBjcHBfdG9rZW4gKiwK KyAJCQkJCSAgdW5zaWduZWQgaW50ICosIGludCAqKTsKKy0vKiBFdmFsdWF0ZSBhIHZlY3RvciBv ZiBDUFBfU1RSSU5HIG9yIENQUF9XU1RSSU5HIHRva2Vucy4gICovCisrLyogRXZhbHVhdGUgYSB2 ZWN0b3Igb2YgQ1BQXypTVFJJTkcqIHRva2Vucy4gICovCisgZXh0ZXJuIGJvb2wgY3BwX2ludGVy cHJldF9zdHJpbmcgKGNwcF9yZWFkZXIgKiwKKyAJCQkJICBjb25zdCBjcHBfc3RyaW5nICosIHNp emVfdCwKKyAJCQkJICBjcHBfc3RyaW5nICosIGVudW0gY3BwX3R0eXBlKTsKKy0tLSBsaWJjcHAv aW50ZXJuYWwuaC5qagkyMDA4LTA5LTA1IDEyOjU5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIGxp YmNwcC9pbnRlcm5hbC5oCTIwMDgtMDktMTEgMTg6MjM6MDIuMDAwMDAwMDAwICswMjAwCitAQCAt NDAwLDYgKzQwMCwxMCBAQCBzdHJ1Y3QgY3BwX3JlYWRlcgorICAgc3RydWN0IGNzZXRfY29udmVy dGVyIG5hcnJvd19jc2V0X2Rlc2M7CisgCisgICAvKiBEZXNjcmlwdG9yIGZvciBjb252ZXJ0aW5n IGZyb20gdGhlIHNvdXJjZSBjaGFyYWN0ZXIgc2V0IHRvIHRoZQorKyAgICAgVVRGLTggZXhlY3V0 aW9uIGNoYXJhY3RlciBzZXQuICAqLworKyAgc3RydWN0IGNzZXRfY29udmVydGVyIHV0ZjhfY3Nl dF9kZXNjOworKworKyAgLyogRGVzY3JpcHRvciBmb3IgY29udmVydGluZyBmcm9tIHRoZSBzb3Vy Y2UgY2hhcmFjdGVyIHNldCB0byB0aGUKKyAgICAgIFVURi0xNiBleGVjdXRpb24gY2hhcmFjdGVy IHNldC4gICovCisgICBzdHJ1Y3QgY3NldF9jb252ZXJ0ZXIgY2hhcjE2X2NzZXRfZGVzYzsKKyAK Ky0tLSBsaWJjcHAvbGV4LmMuamoJMjAwOC0wOS0wNSAxMjo1OTo0OS4wMDAwMDAwMDAgKzAyMDAK KysrKyBsaWJjcHAvbGV4LmMJMjAwOC0wOS0xMiAxMzo1NDowMS4wMDAwMDAwMDAgKzAyMDAKK0BA IC02MDksMTAgKzYwOSwxODUgQEAgY3JlYXRlX2xpdGVyYWwgKGNwcF9yZWFkZXIgKnBmaWxlLCBj cHBfdAorICAgdG9rZW4tPnZhbC5zdHIudGV4dCA9IGRlc3Q7CisgfQorIAorKy8qIExleGVzIHJh dyBhIHN0cmluZy4gIFRoZSBzdG9yZWQgc3RyaW5nIGNvbnRhaW5zIHRoZSBzcGVsbGluZywgaW5j bHVkaW5nCisrICAgZG91YmxlIHF1b3RlcywgZGVsaW1pdGVyIHN0cmluZywgJ1snIGFuZCAnXScs IGFueSBsZWFkaW5nCisrICAgJ0wnLCAndScsICdVJyBvciAndTgnIGFuZCAnUicgbW9kaWZpZXIu ICBJdCByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZQorKyAgIGxpdGVyYWwsIG9yIENQUF9PVEhFUiBp ZiBpdCB3YXMgbm90IHByb3Blcmx5IHRlcm1pbmF0ZWQuCisrCisrICAgVGhlIHNwZWxsaW5nIGlz IE5VTC10ZXJtaW5hdGVkLCBidXQgaXQgaXMgbm90IGd1YXJhbnRlZWQgdGhhdCB0aGlzCisrICAg aXMgdGhlIGZpcnN0IE5VTCBzaW5jZSBlbWJlZGRlZCBOVUxzIGFyZSBwcmVzZXJ2ZWQuICAqLwor KworK3N0YXRpYyB2b2lkCisrbGV4X3Jhd19zdHJpbmcgKGNwcF9yZWFkZXIgKnBmaWxlLCBjcHBf dG9rZW4gKnRva2VuLCBjb25zdCB1Y2hhciAqYmFzZSwKKysJCWNvbnN0IHVjaGFyICpjdXIpCisr eworKyAgYm9vbCBzYXdfTlVMID0gZmFsc2U7CisrICBjb25zdCB1Y2hhciAqcmF3X3ByZWZpeDsK KysgIHVuc2lnbmVkIGludCByYXdfcHJlZml4X2xlbiA9IDA7CisrICBlbnVtIGNwcF90dHlwZSB0 eXBlOworKyAgc2l6ZV90IHRvdGFsX2xlbiA9IDA7CisrICBfY3BwX2J1ZmYgKmZpcnN0X2J1ZmYg PSBOVUxMLCAqbGFzdF9idWZmID0gTlVMTDsKKysKKysgIHR5cGUgPSAoKmJhc2UgPT0gJ0wnID8g Q1BQX1dTVFJJTkcgOgorKwkgICpiYXNlID09ICdVJyA/IENQUF9TVFJJTkczMiA6CisrCSAgKmJh c2UgPT0gJ3UnID8gKGJhc2VbMV0gPT0gJzgnID8gQ1BQX1VURjhTVFJJTkcgOiBDUFBfU1RSSU5H MTYpCisrCSAgOiBDUFBfU1RSSU5HKTsKKysKKysgIHJhd19wcmVmaXggPSBjdXIgKyAxOworKyAg d2hpbGUgKHJhd19wcmVmaXhfbGVuIDwgMTYpCisrICAgIHsKKysgICAgICBzd2l0Y2ggKHJhd19w cmVmaXhbcmF3X3ByZWZpeF9sZW5dKQorKwl7CisrCWNhc2UgJyAnOiBjYXNlICdbJzogY2FzZSAn XSc6IGNhc2UgJ1x0JzoKKysJY2FzZSAnXHYnOiBjYXNlICdcZic6IGNhc2UgJ1xuJzogZGVmYXVs dDoKKysJICBicmVhazsKKysJLyogQmFzaWMgc291cmNlIGNoYXJzZXQgZXhjZXB0IHRoZSBhYm92 ZSBjaGFycy4gICovCisrCWNhc2UgJ2EnOiBjYXNlICdiJzogY2FzZSAnYyc6IGNhc2UgJ2QnOiBj YXNlICdlJzogY2FzZSAnZic6CisrCWNhc2UgJ2cnOiBjYXNlICdoJzogY2FzZSAnaSc6IGNhc2Ug J2onOiBjYXNlICdrJzogY2FzZSAnbCc6CisrCWNhc2UgJ20nOiBjYXNlICduJzogY2FzZSAnbyc6 IGNhc2UgJ3AnOiBjYXNlICdxJzogY2FzZSAncic6CisrCWNhc2UgJ3MnOiBjYXNlICd0JzogY2Fz ZSAndSc6IGNhc2UgJ3YnOiBjYXNlICd3JzogY2FzZSAneCc6CisrCWNhc2UgJ3knOiBjYXNlICd6 JzoKKysJY2FzZSAnQSc6IGNhc2UgJ0InOiBjYXNlICdDJzogY2FzZSAnRCc6IGNhc2UgJ0UnOiBj YXNlICdGJzoKKysJY2FzZSAnRyc6IGNhc2UgJ0gnOiBjYXNlICdJJzogY2FzZSAnSic6IGNhc2Ug J0snOiBjYXNlICdMJzoKKysJY2FzZSAnTSc6IGNhc2UgJ04nOiBjYXNlICdPJzogY2FzZSAnUCc6 IGNhc2UgJ1EnOiBjYXNlICdSJzoKKysJY2FzZSAnUyc6IGNhc2UgJ1QnOiBjYXNlICdVJzogY2Fz ZSAnVic6IGNhc2UgJ1cnOiBjYXNlICdYJzoKKysJY2FzZSAnWSc6IGNhc2UgJ1onOgorKwljYXNl ICcwJzogY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6IGNhc2UgJzUnOgor KwljYXNlICc2JzogY2FzZSAnNyc6IGNhc2UgJzgnOiBjYXNlICc5JzoKKysJY2FzZSAnXyc6IGNh c2UgJ3snOiBjYXNlICd9JzogY2FzZSAnIyc6IGNhc2UgJygnOiBjYXNlICcpJzoKKysJY2FzZSAn PCc6IGNhc2UgJz4nOiBjYXNlICclJzogY2FzZSAnOic6IGNhc2UgJzsnOiBjYXNlICcuJzoKKysJ Y2FzZSAnPyc6IGNhc2UgJyonOiBjYXNlICcrJzogY2FzZSAnLSc6IGNhc2UgJy8nOiBjYXNlICde JzoKKysJY2FzZSAnJic6IGNhc2UgJ3wnOiBjYXNlICd+JzogY2FzZSAnISc6IGNhc2UgJz0nOiBj YXNlICcsJzoKKysJY2FzZSAnXFwnOiBjYXNlICciJzogY2FzZSAnXCcnOgorKwkgIHJhd19wcmVm aXhfbGVuKys7CisrCSAgY29udGludWU7CisrCX0KKysgICAgICBicmVhazsKKysgICAgfQorKwor KyAgaWYgKHJhd19wcmVmaXhbcmF3X3ByZWZpeF9sZW5dICE9ICdbJykKKysgICAgeworKyAgICAg IGlmIChyYXdfcHJlZml4X2xlbiA9PSAxNikKKysJY3BwX2Vycm9yIChwZmlsZSwgQ1BQX0RMX0VS Uk9SLAorKwkJICAgInJhdyBzdHJpbmcgZGVsaW1pdGVyIGxvbmdlciB0aGFuIDE2IGNoYXJhY3Rl cnMiKTsKKysgICAgICBlbHNlCisrCWNwcF9lcnJvciAocGZpbGUsIENQUF9ETF9FUlJPUiwKKysJ CSAgICJpbnZhbGlkIGNoYXJhY3RlciAnJWMnIGluIHJhdyBzdHJpbmcgZGVsaW1pdGVyIiwKKysJ CSAgIChpbnQpIHJhd19wcmVmaXhbcmF3X3ByZWZpeF9sZW5dKTsKKysgICAgICBwZmlsZS0+YnVm ZmVyLT5jdXIgPSByYXdfcHJlZml4IC0gMTsKKysgICAgICBjcmVhdGVfbGl0ZXJhbCAocGZpbGUs IHRva2VuLCBiYXNlLCByYXdfcHJlZml4IC0gMSAtIGJhc2UsIENQUF9PVEhFUik7CisrICAgICAg cmV0dXJuOworKyAgICB9CisrCisrICBjdXIgPSByYXdfcHJlZml4ICsgcmF3X3ByZWZpeF9sZW4g KyAxOworKyAgZm9yICg7OykKKysgICAgeworKyAgICAgIGNwcGNoYXJfdCBjID0gKmN1cisrOwor KworKyAgICAgIGlmIChjID09ICddJworKwkgICYmIHN0cm5jbXAgKChjb25zdCBjaGFyICopIGN1 ciwgKGNvbnN0IGNoYXIgKikgcmF3X3ByZWZpeCwKKysJCSAgICAgIHJhd19wcmVmaXhfbGVuKSA9 PSAwCisrCSAgJiYgY3VyW3Jhd19wcmVmaXhfbGVuXSA9PSAnIicpCisrCXsKKysJICBjdXIgKz0g cmF3X3ByZWZpeF9sZW4gKyAxOworKwkgIGJyZWFrOworKwl9CisrICAgICAgZWxzZSBpZiAoYyA9 PSAnXG4nKQorKwl7CisrCSAgaWYgKHBmaWxlLT5zdGF0ZS5pbl9kaXJlY3RpdmUKKysJICAgICAg fHwgcGZpbGUtPnN0YXRlLnBhcnNpbmdfYXJncworKwkgICAgICB8fCBwZmlsZS0+c3RhdGUuaW5f ZGVmZXJyZWRfcHJhZ21hKQorKwkgICAgeworKwkgICAgICBjdXItLTsKKysJICAgICAgdHlwZSA9 IENQUF9PVEhFUjsKKysJICAgICAgY3BwX2Vycm9yIChwZmlsZSwgQ1BQX0RMX0VSUk9SLCAidW50 ZXJtaW5hdGVkIHJhdyBzdHJpbmciKTsKKysJICAgICAgYnJlYWs7CisrCSAgICB9CisrCisrCSAg LyogcmF3IHN0cmluZ3MgYWxsb3cgZW1iZWRkZWQgbm9uLWVzY2FwZWQgbmV3bGluZXMsIHdoaWNo CisrCSAgICAgY29tcGxpY2F0ZXMgdGhpcyByb3V0aW5lIGEgbG90LiAgKi8KKysJICBpZiAoZmly c3RfYnVmZiA9PSBOVUxMKQorKwkgICAgeworKwkgICAgICB0b3RhbF9sZW4gPSBjdXIgLSBiYXNl OworKwkgICAgICBmaXJzdF9idWZmID0gbGFzdF9idWZmID0gX2NwcF9nZXRfYnVmZiAocGZpbGUs IHRvdGFsX2xlbik7CisrCSAgICAgIG1lbWNweSAoQlVGRl9GUk9OVCAobGFzdF9idWZmKSwgYmFz ZSwgdG90YWxfbGVuKTsKKysJICAgICAgcmF3X3ByZWZpeCA9IEJVRkZfRlJPTlQgKGxhc3RfYnVm ZikgKyAocmF3X3ByZWZpeCAtIGJhc2UpOworKwkgICAgICBCVUZGX0ZST05UIChsYXN0X2J1ZmYp ICs9IHRvdGFsX2xlbjsKKysJICAgIH0KKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIHNpemVf dCBsZW4gPSBjdXIgLSBiYXNlOworKwkgICAgICBzaXplX3QgY3VyX2xlbiA9IGxlbiA+IEJVRkZf Uk9PTSAobGFzdF9idWZmKQorKwkJCSAgICAgICA/IEJVRkZfUk9PTSAobGFzdF9idWZmKSA6IGxl bjsKKysKKysJICAgICAgdG90YWxfbGVuICs9IGxlbjsKKysJICAgICAgbWVtY3B5IChCVUZGX0ZS T05UIChsYXN0X2J1ZmYpLCBiYXNlLCBjdXJfbGVuKTsKKysJICAgICAgQlVGRl9GUk9OVCAobGFz dF9idWZmKSArPSBjdXJfbGVuOworKwkgICAgICBpZiAobGVuID4gY3VyX2xlbikKKysJCXsKKysJ CSAgbGFzdF9idWZmID0gX2NwcF9hcHBlbmRfZXh0ZW5kX2J1ZmYgKHBmaWxlLCBsYXN0X2J1ZmYs CisrCQkJCQkJICAgICAgIGxlbiAtIGN1cl9sZW4pOworKwkJICBtZW1jcHkgKEJVRkZfRlJPTlQg KGxhc3RfYnVmZiksIGJhc2UgKyBjdXJfbGVuLAorKwkJCSAgbGVuIC0gY3VyX2xlbik7CisrCQkg IEJVRkZfRlJPTlQgKGxhc3RfYnVmZikgKz0gbGVuIC0gY3VyX2xlbjsKKysJCX0KKysJICAgIH0K KysKKysJICBpZiAocGZpbGUtPmJ1ZmZlci0+Y3VyIDwgcGZpbGUtPmJ1ZmZlci0+cmxpbWl0KQor KwkgICAgQ1BQX0lOQ1JFTUVOVF9MSU5FIChwZmlsZSwgMCk7CisrCSAgcGZpbGUtPmJ1ZmZlci0+ bmVlZF9saW5lID0gdHJ1ZTsKKysKKysJICBpZiAoIV9jcHBfZ2V0X2ZyZXNoX2xpbmUgKHBmaWxl KSkKKysJICAgIHsKKysJICAgICAgdG9rZW4tPnR5cGUgPSBDUFBfRU9GOworKwkgICAgICAvKiBU ZWxsIHRoZSBjb21waWxlciB0aGUgbGluZSBudW1iZXIgb2YgdGhlIEVPRiB0b2tlbi4gICovCisr CSAgICAgIHRva2VuLT5zcmNfbG9jID0gcGZpbGUtPmxpbmVfdGFibGUtPmhpZ2hlc3RfbGluZTsK KysJICAgICAgdG9rZW4tPmZsYWdzID0gQk9MOworKwkgICAgICBpZiAoZmlyc3RfYnVmZiAhPSBO VUxMKQorKwkJX2NwcF9yZWxlYXNlX2J1ZmYgKHBmaWxlLCBmaXJzdF9idWZmKTsKKysJICAgICAg Y3BwX2Vycm9yIChwZmlsZSwgQ1BQX0RMX0VSUk9SLCAidW50ZXJtaW5hdGVkIHJhdyBzdHJpbmci KTsKKysJICAgICAgcmV0dXJuOworKwkgICAgfQorKworKwkgIGN1ciA9IGJhc2UgPSBwZmlsZS0+ YnVmZmVyLT5jdXI7CisrCX0KKysgICAgICBlbHNlIGlmIChjID09ICdcMCcpCisrCXNhd19OVUwg PSB0cnVlOworKyAgICB9CisrCisrICBpZiAoc2F3X05VTCAmJiAhcGZpbGUtPnN0YXRlLnNraXBw aW5nKQorKyAgICBjcHBfZXJyb3IgKHBmaWxlLCBDUFBfRExfV0FSTklORywKKysJICAgICAgICJu dWxsIGNoYXJhY3RlcihzKSBwcmVzZXJ2ZWQgaW4gbGl0ZXJhbCIpOworKworKyAgcGZpbGUtPmJ1 ZmZlci0+Y3VyID0gY3VyOworKyAgaWYgKGZpcnN0X2J1ZmYgPT0gTlVMTCkKKysgICAgY3JlYXRl X2xpdGVyYWwgKHBmaWxlLCB0b2tlbiwgYmFzZSwgY3VyIC0gYmFzZSwgdHlwZSk7CisrICBlbHNl CisrICAgIHsKKysgICAgICB1Y2hhciAqZGVzdCA9IF9jcHBfdW5hbGlnbmVkX2FsbG9jIChwZmls ZSwgdG90YWxfbGVuICsgKGN1ciAtIGJhc2UpICsgMSk7CisrCisrICAgICAgdG9rZW4tPnR5cGUg PSB0eXBlOworKyAgICAgIHRva2VuLT52YWwuc3RyLmxlbiA9IHRvdGFsX2xlbiArIChjdXIgLSBi YXNlKTsKKysgICAgICB0b2tlbi0+dmFsLnN0ci50ZXh0ID0gZGVzdDsKKysgICAgICBsYXN0X2J1 ZmYgPSBmaXJzdF9idWZmOworKyAgICAgIHdoaWxlIChsYXN0X2J1ZmYgIT0gTlVMTCkKKysJewor KwkgIG1lbWNweSAoZGVzdCwgbGFzdF9idWZmLT5iYXNlLAorKwkJICBCVUZGX0ZST05UIChsYXN0 X2J1ZmYpIC0gbGFzdF9idWZmLT5iYXNlKTsKKysJICBkZXN0ICs9IEJVRkZfRlJPTlQgKGxhc3Rf YnVmZikgLSBsYXN0X2J1ZmYtPmJhc2U7CisrCSAgbGFzdF9idWZmID0gbGFzdF9idWZmLT5uZXh0 OworKwl9CisrICAgICAgX2NwcF9yZWxlYXNlX2J1ZmYgKHBmaWxlLCBmaXJzdF9idWZmKTsKKysg ICAgICBtZW1jcHkgKGRlc3QsIGJhc2UsIGN1ciAtIGJhc2UpOworKyAgICAgIGRlc3RbY3VyIC0g YmFzZV0gPSAnXDAnOworKyAgICB9CisrfQorKworIC8qIExleGVzIGEgc3RyaW5nLCBjaGFyYWN0 ZXIgY29uc3RhbnQsIG9yIGFuZ2xlLWJyYWNrZXRlZCBoZWFkZXIgZmlsZQorICAgIG5hbWUuICBU aGUgc3RvcmVkIHN0cmluZyBjb250YWlucyB0aGUgc3BlbGxpbmcsIGluY2x1ZGluZyBvcGVuaW5n CistICAgcXVvdGUgYW5kIGxlYWRpbmcgYW55IGxlYWRpbmcgJ0wnLCAndScgb3IgJ1UnLiAgSXQg cmV0dXJucyB0aGUgdHlwZQorLSAgIG9mIHRoZSBsaXRlcmFsLCBvciBDUFBfT1RIRVIgaWYgaXQg d2FzIG5vdCBwcm9wZXJseSB0ZXJtaW5hdGVkLgorKyAgIHF1b3RlIGFuZCBhbnkgbGVhZGluZyAn TCcsICd1JywgJ1UnIG9yICd1OCcgYW5kIG9wdGlvbmFsCisrICAgJ1InIG1vZGlmaWVyLiAgSXQg cmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgbGl0ZXJhbCwgb3IgQ1BQX09USEVSCisrICAgaWYgaXQg d2FzIG5vdCBwcm9wZXJseSB0ZXJtaW5hdGVkLgorIAorICAgIFRoZSBzcGVsbGluZyBpcyBOVUwt dGVybWluYXRlZCwgYnV0IGl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXQgdGhpcworICAgIGlzIHRo ZSBmaXJzdCBOVUwgc2luY2UgZW1iZWRkZWQgTlVMcyBhcmUgcHJlc2VydmVkLiAgKi8KK0BAIC02 MjYsMTIgKzgwMSwyNCBAQCBsZXhfc3RyaW5nIChjcHBfcmVhZGVyICpwZmlsZSwgY3BwX3Rva2Vu CisgCisgICBjdXIgPSBiYXNlOworICAgdGVybWluYXRvciA9ICpjdXIrKzsKKy0gIGlmICh0ZXJt aW5hdG9yID09ICdMJyB8fCB0ZXJtaW5hdG9yID09ICd1JyB8fCB0ZXJtaW5hdG9yID09ICdVJykK KysgIGlmICh0ZXJtaW5hdG9yID09ICdMJyB8fCB0ZXJtaW5hdG9yID09ICdVJykKKyAgICAgdGVy bWluYXRvciA9ICpjdXIrKzsKKy0gIGlmICh0ZXJtaW5hdG9yID09ICdcIicpCisrICBlbHNlIGlm ICh0ZXJtaW5hdG9yID09ICd1JykKKysgICAgeworKyAgICAgIHRlcm1pbmF0b3IgPSAqY3VyKys7 CisrICAgICAgaWYgKHRlcm1pbmF0b3IgPT0gJzgnKQorKwl0ZXJtaW5hdG9yID0gKmN1cisrOwor KyAgICB9CisrICBpZiAodGVybWluYXRvciA9PSAnUicpCisrICAgIHsKKysgICAgICBsZXhfcmF3 X3N0cmluZyAocGZpbGUsIHRva2VuLCBiYXNlLCBjdXIpOworKyAgICAgIHJldHVybjsKKysgICAg fQorKyAgaWYgKHRlcm1pbmF0b3IgPT0gJyInKQorICAgICB0eXBlID0gKCpiYXNlID09ICdMJyA/ IENQUF9XU1RSSU5HIDoKKyAJICAgICpiYXNlID09ICdVJyA/IENQUF9TVFJJTkczMiA6CistCSAg ICAqYmFzZSA9PSAndScgPyBDUFBfU1RSSU5HMTYgOiBDUFBfU1RSSU5HKTsKKysJICAgICpiYXNl ID09ICd1JyA/IChiYXNlWzFdID09ICc4JyA/IENQUF9VVEY4U1RSSU5HIDogQ1BQX1NUUklORzE2 KQorKwkJCSA6IENQUF9TVFJJTkcpOworICAgZWxzZSBpZiAodGVybWluYXRvciA9PSAnXCcnKQor ICAgICB0eXBlID0gKCpiYXNlID09ICdMJyA/IENQUF9XQ0hBUiA6CisgCSAgICAqYmFzZSA9PSAn VScgPyBDUFBfQ0hBUjMyIDoKK0BAIC0xMDM1LDEwICsxMjIyLDIwIEBAIF9jcHBfbGV4X2RpcmVj dCAoY3BwX3JlYWRlciAqcGZpbGUpCisgICAgIGNhc2UgJ0wnOgorICAgICBjYXNlICd1JzoKKyAg ICAgY2FzZSAnVSc6CisrICAgIGNhc2UgJ1InOgorICAgICAgIC8qICdMJywgJ3UnIG9yICdVJyBt YXkgaW50cm9kdWNlIHdpZGUgY2hhcmFjdGVycyBvciBzdHJpbmdzLiAgKi8KKyAgICAgICBpZiAo YyA9PSAnTCcgfHwgQ1BQX09QVElPTiAocGZpbGUsIHVsaXRlcmFscykpCisgCXsKKy0JICBpZiAo KmJ1ZmZlci0+Y3VyID09ICdcJycgfHwgKmJ1ZmZlci0+Y3VyID09ICciJykKKysJICBpZiAoKCpi dWZmZXItPmN1ciA9PSAnXCcnICYmIGMgIT0gJ1InKQorKwkgICAgICB8fCAqYnVmZmVyLT5jdXIg PT0gJyInCisrCSAgICAgIHx8ICgqYnVmZmVyLT5jdXIgPT0gJ1InCisrCQkgICYmIGMgIT0gJ1In CisrCQkgICYmIGJ1ZmZlci0+Y3VyWzFdID09ICciJworKwkJICAmJiBDUFBfT1BUSU9OIChwZmls ZSwgdWxpdGVyYWxzKSkKKysJICAgICAgfHwgKCpidWZmZXItPmN1ciA9PSAnOCcKKysJCSAgJiYg YyA9PSAndScKKysJCSAgJiYgKGJ1ZmZlci0+Y3VyWzFdID09ICciJworKwkJICAgICAgfHwgKGJ1 ZmZlci0+Y3VyWzFdID09ICdSJyAmJiBidWZmZXItPmN1clsyXSA9PSAnIicpKSkpCisgCSAgICB7 CisgCSAgICAgIGxleF9zdHJpbmcgKHBmaWxlLCByZXN1bHQsIGJ1ZmZlci0+Y3VyIC0gMSk7Cisg CSAgICAgIGJyZWFrOworQEAgLTEwNTQsNyArMTI1MSw3IEBAIF9jcHBfbGV4X2RpcmVjdCAoY3Bw X3JlYWRlciAqcGZpbGUpCisgICAgIGNhc2UgJ3knOiBjYXNlICd6JzoKKyAgICAgY2FzZSAnQSc6 IGNhc2UgJ0InOiBjYXNlICdDJzogY2FzZSAnRCc6IGNhc2UgJ0UnOiBjYXNlICdGJzoKKyAgICAg Y2FzZSAnRyc6IGNhc2UgJ0gnOiBjYXNlICdJJzogY2FzZSAnSic6IGNhc2UgJ0snOgorLSAgICBj YXNlICdNJzogY2FzZSAnTic6IGNhc2UgJ08nOiBjYXNlICdQJzogY2FzZSAnUSc6IGNhc2UgJ1In OgorKyAgICBjYXNlICdNJzogY2FzZSAnTic6IGNhc2UgJ08nOiBjYXNlICdQJzogY2FzZSAnUSc6 CisgICAgIGNhc2UgJ1MnOiBjYXNlICdUJzogICAgICAgICAgIGNhc2UgJ1YnOiBjYXNlICdXJzog Y2FzZSAnWCc6CisgICAgIGNhc2UgJ1knOiBjYXNlICdaJzoKKyAgICAgICByZXN1bHQtPnR5cGUg PSBDUFBfTkFNRTsKKy0tLSBsaWJjcHAvbWFjcm8uYy5qagkyMDA4LTA5LTA1IDEyOjU5OjQ5LjAw MDAwMDAwMCArMDIwMAorKysrIGxpYmNwcC9tYWNyby5jCTIwMDgtMDktMTEgMjA6MjU6MjAuMDAw MDAwMDAwICswMjAwCitAQCAtMzc3LDcgKzM3Nyw4IEBAIHN0cmluZ2lmeV9hcmcgKGNwcF9yZWFk ZXIgKnBmaWxlLCBtYWNyb18KKyAgICAgICBlc2NhcGVfaXQgPSAodG9rZW4tPnR5cGUgPT0gQ1BQ X1NUUklORyB8fCB0b2tlbi0+dHlwZSA9PSBDUFBfQ0hBUgorIAkJICAgfHwgdG9rZW4tPnR5cGUg PT0gQ1BQX1dTVFJJTkcgfHwgdG9rZW4tPnR5cGUgPT0gQ1BQX1NUUklORworIAkJICAgfHwgdG9r ZW4tPnR5cGUgPT0gQ1BQX1NUUklORzMyIHx8IHRva2VuLT50eXBlID09IENQUF9DSEFSMzIKKy0J CSAgIHx8IHRva2VuLT50eXBlID09IENQUF9TVFJJTkcxNiB8fCB0b2tlbi0+dHlwZSA9PSBDUFBf Q0hBUjE2KTsKKysJCSAgIHx8IHRva2VuLT50eXBlID09IENQUF9TVFJJTkcxNiB8fCB0b2tlbi0+ dHlwZSA9PSBDUFBfQ0hBUjE2CisrCQkgICB8fCB0b2tlbi0+dHlwZSA9PSBDUFBfVVRGOFNUUklO Ryk7CisgCisgICAgICAgLyogUm9vbSBmb3IgZWFjaCBjaGFyIGJlaW5nIHdyaXR0ZW4gaW4gb2N0 YWwsIGluaXRpYWwgc3BhY2UgYW5kCisgCSBmaW5hbCBxdW90ZSBhbmQgTlVMLiAgKi8KKy0tLSBn Y2MvYy1jb21tb24uYy5qagkyMDA4LTA5LTA5IDE2OjA4OjA0LjAwMDAwMDAwMCArMDIwMAorKysr IGdjYy9jLWNvbW1vbi5jCTIwMDgtMDktMTEgMjA6MzA6NTcuMDAwMDAwMDAwICswMjAwCitAQCAt NzQ3Miw3ICs3NDcyLDcgQEAgY19wYXJzZV9lcnJvciAoY29uc3QgY2hhciAqZ21zZ2lkLCBlbnVt IAorICAgICAgIG1lc3NhZ2UgPSBOVUxMOworICAgICB9CisgICBlbHNlIGlmICh0b2tlbiA9PSBD UFBfU1RSSU5HIHx8IHRva2VuID09IENQUF9XU1RSSU5HIHx8IHRva2VuID09IENQUF9TVFJJTkcx NgorLQkgICB8fCB0b2tlbiA9PSBDUFBfU1RSSU5HMzIpCisrCSAgIHx8IHRva2VuID09IENQUF9T VFJJTkczMiB8fCB0b2tlbiA9PSBDUFBfVVRGOFNUUklORykKKyAgICAgbWVzc2FnZSA9IGNhdGVu YXRlX21lc3NhZ2VzIChnbXNnaWQsICIgYmVmb3JlIHN0cmluZyBjb25zdGFudCIpOworICAgZWxz ZSBpZiAodG9rZW4gPT0gQ1BQX05VTUJFUikKKyAgICAgbWVzc2FnZSA9IGNhdGVuYXRlX21lc3Nh Z2VzIChnbXNnaWQsICIgYmVmb3JlIG51bWVyaWMgY29uc3RhbnQiKTsKKy0tLSBnY2MvYy1sZXgu Yy5qagkyMDA4LTA5LTA1IDEyOjU2OjMxLjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9jLWxleC5j CTIwMDgtMDktMTEgMjA6MzQ6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMzY1LDYgKzM2NSw3IEBA IGNfbGV4X3dpdGhfZmxhZ3MgKHRyZWUgKnZhbHVlLCBsb2NhdGlvbl8KKyAJICAgIGNhc2UgQ1BQ X1dTVFJJTkc6CisgCSAgICBjYXNlIENQUF9TVFJJTkcxNjoKKyAJICAgIGNhc2UgQ1BQX1NUUklO RzMyOgorKwkgICAgY2FzZSBDUFBfVVRGOFNUUklORzoKKyAJICAgICAgdHlwZSA9IGxleF9zdHJp bmcgKHRvaywgdmFsdWUsIHRydWUsIHRydWUpOworIAkgICAgICBicmVhazsKKyAKK0BAIC00MjMs NiArNDI0LDcgQEAgY19sZXhfd2l0aF9mbGFncyAodHJlZSAqdmFsdWUsIGxvY2F0aW9uXworICAg ICBjYXNlIENQUF9XU1RSSU5HOgorICAgICBjYXNlIENQUF9TVFJJTkcxNjoKKyAgICAgY2FzZSBD UFBfU1RSSU5HMzI6CisrICAgIGNhc2UgQ1BQX1VURjhTVFJJTkc6CisgICAgICAgaWYgKChsZXhf ZmxhZ3MgJiBDX0xFWF9SQVdfU1RSSU5HUykgPT0gMCkKKyAJeworIAkgIHR5cGUgPSBsZXhfc3Ry aW5nICh0b2ssIHZhbHVlLCBmYWxzZSwKK0BAIC04MzAsMTIgKzgzMiwxMyBAQCBpbnRlcnByZXRf Zml4ZWQgKGNvbnN0IGNwcF90b2tlbiAqdG9rZW4sCisgICByZXR1cm4gdmFsdWU7CisgfQorIAor LS8qIENvbnZlcnQgYSBzZXJpZXMgb2YgU1RSSU5HLCBXU1RSSU5HLCBTVFJJTkcxNiBhbmQvb3Ig U1RSSU5HMzIgdG9rZW5zCistICAgaW50byBhIHRyZWUsIHBlcmZvcm1pbmcgc3RyaW5nIGNvbnN0 YW50IGNvbmNhdGVuYXRpb24uICBUT0sgaXMgdGhlCistICAgZmlyc3Qgb2YgdGhlc2UuICBWQUxQ IGlzIHRoZSBsb2NhdGlvbiB0byB3cml0ZSB0aGUgc3RyaW5nIGludG8uCistICAgT0JKQ19TVFJJ TkcgaW5kaWNhdGVzIHdoZXRoZXIgYW4gJ0AnIHRva2VuIHByZWNlZGVkIHRoZSBpbmNvbWluZyB0 b2tlbi4KKysvKiBDb252ZXJ0IGEgc2VyaWVzIG9mIFNUUklORywgV1NUUklORywgU1RSSU5HMTYs IFNUUklORzMyIGFuZC9vcgorKyAgIFVURjhTVFJJTkcgdG9rZW5zIGludG8gYSB0cmVlLCBwZXJm b3JtaW5nIHN0cmluZyBjb25zdGFudAorKyAgIGNvbmNhdGVuYXRpb24uICBUT0sgaXMgdGhlIGZp cnN0IG9mIHRoZXNlLiAgVkFMUCBpcyB0aGUgbG9jYXRpb24KKysgICB0byB3cml0ZSB0aGUgc3Ry aW5nIGludG8uIE9CSkNfU1RSSU5HIGluZGljYXRlcyB3aGV0aGVyIGFuICdAJyB0b2tlbgorKyAg IHByZWNlZGVkIHRoZSBpbmNvbWluZyB0b2tlbi4KKyAgICBSZXR1cm5zIHRoZSBDUFAgdG9rZW4g dHlwZSBvZiB0aGUgcmVzdWx0IChDUFBfU1RSSU5HLCBDUFBfV1NUUklORywKKy0gICBDUFBfU1RS SU5HMzIsIENQUF9TVFJJTkcxNiwgb3IgQ1BQX09CSkNfU1RSSU5HKS4KKysgICBDUFBfU1RSSU5H MzIsIENQUF9TVFJJTkcxNiwgQ1BQX1VURjhTVFJJTkcsIG9yIENQUF9PQkpDX1NUUklORykuCisg CisgICAgVGhpcyBpcyB1bmZvcnR1bmF0ZWx5IG1vcmUgd29yayB0aGFuIGl0IHNob3VsZCBiZS4g IElmIGFueSBvZiB0aGUKKyAgICBzdHJpbmdzIGluIHRoZSBzZXJpZXMgaGFzIGFuIEwgcHJlZml4 LCB0aGUgcmVzdWx0IGlzIGEgd2lkZSBzdHJpbmcKK0BAIC04ODAsNiArODgzLDcgQEAgbGV4X3N0 cmluZyAoY29uc3QgY3BwX3Rva2VuICp0b2ssIHRyZWUgKgorICAgICBjYXNlIENQUF9XU1RSSU5H OgorICAgICBjYXNlIENQUF9TVFJJTkcxNjoKKyAgICAgY2FzZSBDUFBfU1RSSU5HMzI6CisrICAg IGNhc2UgQ1BQX1VURjhTVFJJTkc6CisgICAgICAgaWYgKHR5cGUgIT0gdG9rLT50eXBlKQorIAl7 CisgCSAgaWYgKHR5cGUgPT0gQ1BQX1NUUklORykKK0BAIC05MjUsNiArOTI5LDcgQEAgbGV4X3N0 cmluZyAoY29uc3QgY3BwX3Rva2VuICp0b2ssIHRyZWUgKgorIAl7CisgCWRlZmF1bHQ6CisgCWNh c2UgQ1BQX1NUUklORzoKKysJY2FzZSBDUFBfVVRGOFNUUklORzoKKyAJICB2YWx1ZSA9IGJ1aWxk X3N0cmluZyAoMSwgIiIpOworIAkgIGJyZWFrOworIAljYXNlIENQUF9TVFJJTkcxNjoKK0BAIC05 NTAsNiArOTU1LDcgQEAgbGV4X3N0cmluZyAoY29uc3QgY3BwX3Rva2VuICp0b2ssIHRyZWUgKgor ICAgICB7CisgICAgIGRlZmF1bHQ6CisgICAgIGNhc2UgQ1BQX1NUUklORzoKKysgICAgY2FzZSBD UFBfVVRGOFNUUklORzoKKyAgICAgICBUUkVFX1RZUEUgKHZhbHVlKSA9IGNoYXJfYXJyYXlfdHlw ZV9ub2RlOworICAgICAgIGJyZWFrOworICAgICBjYXNlIENQUF9TVFJJTkcxNjoKKy0tLSBnY2Mv Yy1wYXJzZXIuYy5qagkyMDA4LTA5LTA5IDE2OjA4OjA0LjAwMDAwMDAwMCArMDIwMAorKysrIGdj Yy9jLXBhcnNlci5jCTIwMDgtMDktMTEgMjA6MzQ6MzQuMDAwMDAwMDAwICswMjAwCitAQCAtNTA4 NSw2ICs1MDg1LDcgQEAgY19wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uIChjX3BhcnNlciAqcAor ICAgICBjYXNlIENQUF9TVFJJTkcxNjoKKyAgICAgY2FzZSBDUFBfU1RSSU5HMzI6CisgICAgIGNh c2UgQ1BQX1dTVFJJTkc6CisrICAgIGNhc2UgQ1BQX1VURjhTVFJJTkc6CisgICAgICAgZXhwci52 YWx1ZSA9IGNfcGFyc2VyX3BlZWtfdG9rZW4gKHBhcnNlciktPnZhbHVlOworICAgICAgIGV4cHIu b3JpZ2luYWxfY29kZSA9IFNUUklOR19DU1Q7CisgICAgICAgY19wYXJzZXJfY29uc3VtZV90b2tl biAocGFyc2VyKTsKKy0tLSBnY2MvY3AvcGFyc2VyLmMuamoJMjAwOC0wOS0wOSAxNjowODowMy4w MDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvY3AvcGFyc2VyLmMJMjAwOC0wOS0xMSAyMDozNjoxMC4w MDAwMDAwMDAgKzAyMDAKK0BAIC03OTcsNiArNzk3LDcgQEAgY3BfbGV4ZXJfcHJpbnRfdG9rZW4g KEZJTEUgKiBzdHJlYW0sIGNwXworICAgICBjYXNlIENQUF9TVFJJTkcxNjoKKyAgICAgY2FzZSBD UFBfU1RSSU5HMzI6CisgICAgIGNhc2UgQ1BQX1dTVFJJTkc6CisrICAgIGNhc2UgQ1BQX1VURjhT VFJJTkc6CisgICAgICAgZnByaW50ZiAoc3RyZWFtLCAiIFwiJXNcIiIsIFRSRUVfU1RSSU5HX1BP SU5URVIgKHRva2VuLT51LnZhbHVlKSk7CisgICAgICAgYnJlYWs7CisgCitAQCAtMjA0OSw3ICsy MDUwLDggQEAgY3BfcGFyc2VyX2lzX3N0cmluZ19saXRlcmFsIChjcF90b2tlbiogdAorICAgcmV0 dXJuICh0b2tlbi0+dHlwZSA9PSBDUFBfU1RSSU5HIHx8CisgCSAgdG9rZW4tPnR5cGUgPT0gQ1BQ X1NUUklORzE2IHx8CisgCSAgdG9rZW4tPnR5cGUgPT0gQ1BQX1NUUklORzMyIHx8CistCSAgdG9r ZW4tPnR5cGUgPT0gQ1BQX1dTVFJJTkcpOworKwkgIHRva2VuLT50eXBlID09IENQUF9XU1RSSU5H IHx8CisrCSAgdG9rZW4tPnR5cGUgPT0gQ1BQX1VURjhTVFJJTkcpOworIH0KKyAKKyAvKiBSZXR1 cm5zIG5vbnplcm8gaWYgVE9LRU4gaXMgdGhlIGluZGljYXRlZCBLRVlXT1JELiAgKi8KK0BAIC0y OTcyLDYgKzI5NzQsNyBAQCBjcF9wYXJzZXJfc3RyaW5nX2xpdGVyYWwgKGNwX3BhcnNlciAqcGFy CisgCXsKKyAJZGVmYXVsdDoKKyAJY2FzZSBDUFBfU1RSSU5HOgorKwljYXNlIENQUF9VVEY4U1RS SU5HOgorIAkgIFRSRUVfVFlQRSAodmFsdWUpID0gY2hhcl9hcnJheV90eXBlX25vZGU7CisgCSAg YnJlYWs7CisgCWNhc2UgQ1BQX1NUUklORzE2OgorQEAgLTMxOTUsNiArMzE5OCw3IEBAIGNwX3Bh cnNlcl9wcmltYXJ5X2V4cHJlc3Npb24gKGNwX3BhcnNlciAKKyAgICAgY2FzZSBDUFBfU1RSSU5H MTY6CisgICAgIGNhc2UgQ1BQX1NUUklORzMyOgorICAgICBjYXNlIENQUF9XU1RSSU5HOgorKyAg ICBjYXNlIENQUF9VVEY4U1RSSU5HOgorICAgICAgIC8qID8/PyBTaG91bGQgd2lkZSBzdHJpbmdz IGJlIGFsbG93ZWQgd2hlbiBwYXJzZXItPnRyYW5zbGF0ZV9zdHJpbmdzX3AKKyAJIGlzIGZhbHNl IChpLmUuIGluIGF0dHJpYnV0ZXMpPyAgSWYgbm90LCB3ZSBjYW4ga2lsbCB0aGUgdGhpcmQKKyAJ IGFyZ3VtZW50IHRvIGNwX3BhcnNlcl9zdHJpbmdfbGl0ZXJhbC4gICovCistLS0gZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvcmF3LXN0cmluZy0xLmMuamoJMjAwOC0wOS0xMiAxMTo0ODozNi4wMDAwMDAw MDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9yYXctc3RyaW5nLTEuYwkyMDA4LTA5 LTEyIDE0OjAxOjI3LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxMDEgQEAKKysvKiB7IGRn LWRvIHJ1biB9ICovCisrLyogeyBkZy1vcHRpb25zICItc3RkPWdudTk5IiB9ICovCisrCisrI2lu Y2x1ZGUgPHdjaGFyLmg+CisrCisrdHlwZWRlZiBfX0NIQVIxNl9UWVBFX18JY2hhcjE2X3Q7Cisr dHlwZWRlZiBfX0NIQVIzMl9UWVBFX18gY2hhcjMyX3Q7CisrCisrY29uc3QgY2hhciBzMFtdID0g UiJbYVwKKytcdTAxMGRcVTAwMDAwMTBEXFxcJ1wiXD9cYVxiXGZcblxyXHRcdlwwXDAwXDAwMFx4 YVx4YWJiCisrY10iOworK2NvbnN0IGNoYXIgczFbXSA9ICJhXFUwMDAwMDEwZFx1MDEwZFxcXFxc XCdcXFwiXFw/XFxhXFxiXFxmXFxuXFxyXFx0XFx2XFwwXFwwMFxcMDAwXFx4YVxceGFiYlxuYyI7 CisrY29uc3QgY2hhciBzMltdID0gUiIqfCpbYVwKKytiCisrY10iCisrY10qfCIKKytjXSp8KiI7 CisrY29uc3QgY2hhciBzM1tdID0gImFiXG5jXVwiXG5jXSp8XCJcbmMiOworKworK2NvbnN0IGNo YXIgdDBbXSA9IHU4UiJbYVwKKytcdTAxMGRcVTAwMDAwMTBEXFxcJ1wiXD9cYVxiXGZcblxyXHRc dlwwXDAwXDAwMFx4YVx4YWJiCisrY10iOworK2NvbnN0IGNoYXIgdDFbXSA9IHU4ImFcVTAwMDAw MTBkXHUwMTBkXFxcXFxcJ1xcXCJcXD9cXGFcXGJcXGZcXG5cXHJcXHRcXHZcXDBcXDAwXFwwMDBc XHhhXFx4YWJiXG5jIjsKKytjb25zdCBjaGFyIHQyW10gPSB1OFIiKnwqW2FcCisrYgorK2NdIgor K2NdKnwiCisrY10qfCoiOworK2NvbnN0IGNoYXIgdDNbXSA9IHU4ImFiXG5jXVwiXG5jXSp8XCJc bmMiOworKworK2NvbnN0IGNoYXIxNl90IHUwW10gPSB1UiJbYVwKKytcdTAxMGRcVTAwMDAwMTBE XFxcJ1wiXD9cYVxiXGZcblxyXHRcdlwwXDAwXDAwMFx4YVx4YWJiCisrY10iOworK2NvbnN0IGNo YXIxNl90IHUxW10gPSB1ImFcVTAwMDAwMTBkXHUwMTBkXFxcXFxcJ1xcXCJcXD9cXGFcXGJcXGZc XG5cXHJcXHRcXHZcXDBcXDAwXFwwMDBcXHhhXFx4YWJiXG5jIjsKKytjb25zdCBjaGFyMTZfdCB1 MltdID0gdVIiKnwqW2FcCisrYgorK2NdIgorK2NdKnwiCisrY10qfCoiOworK2NvbnN0IGNoYXIx Nl90IHUzW10gPSB1ImFiXG5jXVwiXG5jXSp8XCJcbmMiOworKworK2NvbnN0IGNoYXIzMl90IFUw W10gPSBVUiJbYVwKKytcdTAxMGRcVTAwMDAwMTBEXFxcJ1wiXD9cYVxiXGZcblxyXHRcdlwwXDAw XDAwMFx4YVx4YWJiCisrY10iOworK2NvbnN0IGNoYXIzMl90IFUxW10gPSBVImFcVTAwMDAwMTBk XHUwMTBkXFxcXFxcJ1xcXCJcXD9cXGFcXGJcXGZcXG5cXHJcXHRcXHZcXDBcXDAwXFwwMDBcXHhh XFx4YWJiXG5jIjsKKytjb25zdCBjaGFyMzJfdCBVMltdID0gVVIiKnwqW2FcCisrYgorK2NdIgor K2NdKnwiCisrY10qfCoiOworK2NvbnN0IGNoYXIzMl90IFUzW10gPSBVImFiXG5jXVwiXG5jXSp8 XCJcbmMiOworKworK2NvbnN0IHdjaGFyX3QgTDBbXSA9IExSIlthXAorK1x1MDEwZFxVMDAwMDAx MERcXFwnXCJcP1xhXGJcZlxuXHJcdFx2XDBcMDBcMDAwXHhhXHhhYmIKKytjXSI7CisrY29uc3Qg d2NoYXJfdCBMMVtdID0gTCJhXFUwMDAwMDEwZFx1MDEwZFxcXFxcXCdcXFwiXFw/XFxhXFxiXFxm XFxuXFxyXFx0XFx2XFwwXFwwMFxcMDAwXFx4YVxceGFiYlxuYyI7CisrY29uc3Qgd2NoYXJfdCBM MltdID0gTFIiKnwqW2FcCisrYgorK2NdIgorK2NdKnwiCisrY10qfCoiOworK2NvbnN0IHdjaGFy X3QgTDNbXSA9IEwiYWJcbmNdXCJcbmNdKnxcIlxuYyI7CisrCisraW50CisrbWFpbiAodm9pZCkK Kyt7CisrICBpZiAoc2l6ZW9mIChzMCkgIT0gc2l6ZW9mIChzMSkKKysgICAgICB8fCBfX2J1aWx0 aW5fbWVtY21wIChzMCwgczEsIHNpemVvZiAoczApKSAhPSAwKQorKyAgICBfX2J1aWx0aW5fYWJv cnQgKCk7CisrICBpZiAoc2l6ZW9mIChzMikgIT0gc2l6ZW9mIChzMykKKysgICAgICB8fCBfX2J1 aWx0aW5fbWVtY21wIChzMiwgczMsIHNpemVvZiAoczIpKSAhPSAwKQorKyAgICBfX2J1aWx0aW5f YWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mICh0MCkgIT0gc2l6ZW9mICh0MSkKKysgICAgICB8fCBf X2J1aWx0aW5fbWVtY21wICh0MCwgdDEsIHNpemVvZiAodDApKSAhPSAwKQorKyAgICBfX2J1aWx0 aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mICh0MikgIT0gc2l6ZW9mICh0MykKKysgICAgICB8 fCBfX2J1aWx0aW5fbWVtY21wICh0MiwgdDMsIHNpemVvZiAodDIpKSAhPSAwKQorKyAgICBfX2J1 aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mICh1MCkgIT0gc2l6ZW9mICh1MSkKKysgICAg ICB8fCBfX2J1aWx0aW5fbWVtY21wICh1MCwgdTEsIHNpemVvZiAodTApKSAhPSAwKQorKyAgICBf X2J1aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mICh1MikgIT0gc2l6ZW9mICh1MykKKysg ICAgICB8fCBfX2J1aWx0aW5fbWVtY21wICh1MiwgdTMsIHNpemVvZiAodTIpKSAhPSAwKQorKyAg ICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mIChVMCkgIT0gc2l6ZW9mIChVMSkK KysgICAgICB8fCBfX2J1aWx0aW5fbWVtY21wIChVMCwgVTEsIHNpemVvZiAoVTApKSAhPSAwKQor KyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mIChVMikgIT0gc2l6ZW9mIChV MykKKysgICAgICB8fCBfX2J1aWx0aW5fbWVtY21wIChVMiwgVTMsIHNpemVvZiAoVTIpKSAhPSAw KQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mIChMMCkgIT0gc2l6ZW9m IChMMSkKKysgICAgICB8fCBfX2J1aWx0aW5fbWVtY21wIChMMCwgTDEsIHNpemVvZiAoTDApKSAh PSAwKQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mIChMMikgIT0gc2l6 ZW9mIChMMykKKysgICAgICB8fCBfX2J1aWx0aW5fbWVtY21wIChMMiwgTDMsIHNpemVvZiAoTDIp KSAhPSAwKQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mIChSIipbXSoi KSAhPSAxCisrICAgICAgfHwgX19idWlsdGluX21lbWNtcCAoUiIqW10qIiwgIiIsIDEpICE9IDAp CisrICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKysgIHJldHVybiAwOworK30KKy0tLSBnY2MvdGVz dHN1aXRlL2djYy5kZy9yYXctc3RyaW5nLTIuYy5qagkyMDA4LTA5LTEyIDEyOjE0OjQyLjAwMDAw MDAwMCArMDIwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3Jhdy1zdHJpbmctMi5jCTIwMDgt MDktMTIgMTM6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDEwOSBAQAorKy8qIHsg ZGctZG8gcnVuIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1zdGQ9Z251OTkiIH0gKi8KKysKKysj aW5jbHVkZSA8d2NoYXIuaD4KKysKKyt0eXBlZGVmIF9fQ0hBUjE2X1RZUEVfXwljaGFyMTZfdDsK Kyt0eXBlZGVmIF9fQ0hBUjMyX1RZUEVfXyBjaGFyMzJfdDsKKysKKysjZGVmaW5lIFIKKysjZGVm aW5lIHUKKysjZGVmaW5lIHVSCisrI2RlZmluZSBVCisrI2RlZmluZSBVUgorKyNkZWZpbmUgdTgK KysjZGVmaW5lIHU4UgorKyNkZWZpbmUgTAorKyNkZWZpbmUgTFIKKysKKytjb25zdCBjaGFyIHMw MFtdID0gUiJbYV0iICJbYl0iOworK2NvbnN0IGNoYXIgczAxW10gPSAiW2FdIiBSIipbYl0qIjsK Kytjb25zdCBjaGFyIHMwMltdID0gUiJbYV0iIFIiW2JdIjsKKytjb25zdCBjaGFyIHMwM1tdID0g UiItW2FdLSIgdTgiW2JdIjsKKytjb25zdCBjaGFyIHMwNFtdID0gIlthXSIgdThSIk1OT1BRUlNU VVZXWFlaW2JdTU5PUFFSU1RVVldYWVoiOworK2NvbnN0IGNoYXIgczA1W10gPSBSIlthXSIgdThS Ind4eXpBQkNERUZHSElKS0xbYl13eHl6QUJDREVGR0hJSktMIjsKKytjb25zdCBjaGFyIHMwNltd ID0gdThSIjsoW2FdOygiICJbYl0iOworK2NvbnN0IGNoYXIgczA3W10gPSB1OCJbYV0iIFIiW2Jd IjsKKytjb25zdCBjaGFyIHMwOFtdID0gdThSIlthXSIgUiJfe30jKCk8PiU6Oy4/KistW2JdX3t9 IygpPD4lOjsuPyorLSI7CisrY29uc3QgY2hhciBzMDlbXSA9IHU4UiIvXiZ8fiE9LCInXFthXS9e Jnx+IT0sIidcIiB1OCJbYl0iOworK2NvbnN0IGNoYXIgczEwW10gPSB1OCJbYV0iIHU4UiIwMTIz NDU2Nzg5YWJjZGVmW2JdMDEyMzQ1Njc4OWFiY2RlZiI7CisrY29uc3QgY2hhciBzMTFbXSA9IHU4 UiJnaGlqa2xtbm9wcXJzdHV2W2FdZ2hpamtsbW5vcHFyc3R1diIgdThSIndbYl13IjsKKysKKytj b25zdCBjaGFyMTZfdCB1MDNbXSA9IFIiLVthXS0iIHUiW2JdIjsKKytjb25zdCBjaGFyMTZfdCB1 MDRbXSA9ICJbYV0iIHVSIk1OT1BRUlNUVVZXWFlaW2JdTU5PUFFSU1RVVldYWVoiOworK2NvbnN0 IGNoYXIxNl90IHUwNVtdID0gUiJbYV0iIHVSInd4eXpBQkNERUZHSElKS0xbYl13eHl6QUJDREVG R0hJSktMIjsKKytjb25zdCBjaGFyMTZfdCB1MDZbXSA9IHVSIjsoW2FdOygiICJbYl0iOworK2Nv bnN0IGNoYXIxNl90IHUwN1tdID0gdSJbYV0iIFIiW2JdIjsKKytjb25zdCBjaGFyMTZfdCB1MDhb XSA9IHVSIlthXSIgUiJfe30jKCk8PiU6Oy4/KistW2JdX3t9IygpPD4lOjsuPyorLSI7CisrY29u c3QgY2hhcjE2X3QgdTA5W10gPSB1UiIvXiZ8fiE9LCInXFthXS9eJnx+IT0sIidcIiB1IltiXSI7 CisrY29uc3QgY2hhcjE2X3QgdTEwW10gPSB1IlthXSIgdVIiMDEyMzQ1Njc4OWFiY2RlZltiXTAx MjM0NTY3ODlhYmNkZWYiOworK2NvbnN0IGNoYXIxNl90IHUxMVtdID0gdVIiZ2hpamtsbW5vcHFy c3R1dlthXWdoaWprbG1ub3BxcnN0dXYiIHVSIndbYl13IjsKKysKKytjb25zdCBjaGFyMzJfdCBV MDNbXSA9IFIiLVthXS0iIFUiW2JdIjsKKytjb25zdCBjaGFyMzJfdCBVMDRbXSA9ICJbYV0iIFVS Ik1OT1BRUlNUVVZXWFlaW2JdTU5PUFFSU1RVVldYWVoiOworK2NvbnN0IGNoYXIzMl90IFUwNVtd ID0gUiJbYV0iIFVSInd4eXpBQkNERUZHSElKS0xbYl13eHl6QUJDREVGR0hJSktMIjsKKytjb25z dCBjaGFyMzJfdCBVMDZbXSA9IFVSIjsoW2FdOygiICJbYl0iOworK2NvbnN0IGNoYXIzMl90IFUw N1tdID0gVSJbYV0iIFIiW2JdIjsKKytjb25zdCBjaGFyMzJfdCBVMDhbXSA9IFVSIlthXSIgUiJf e30jKCk8PiU6Oy4/KistW2JdX3t9IygpPD4lOjsuPyorLSI7CisrY29uc3QgY2hhcjMyX3QgVTA5 W10gPSBVUiIvXiZ8fiE9LCInXFthXS9eJnx+IT0sIidcIiBVIltiXSI7CisrY29uc3QgY2hhcjMy X3QgVTEwW10gPSBVIlthXSIgVVIiMDEyMzQ1Njc4OWFiY2RlZltiXTAxMjM0NTY3ODlhYmNkZWYi OworK2NvbnN0IGNoYXIzMl90IFUxMVtdID0gVVIiZ2hpamtsbW5vcHFyc3R1dlthXWdoaWprbG1u b3BxcnN0dXYiIFVSIndbYl13IjsKKysKKytjb25zdCB3Y2hhcl90IEwwM1tdID0gUiItW2FdLSIg TCJbYl0iOworK2NvbnN0IHdjaGFyX3QgTDA0W10gPSAiW2FdIiBMUiJNTk9QUVJTVFVWV1hZWlti XU1OT1BRUlNUVVZXWFlaIjsKKytjb25zdCB3Y2hhcl90IEwwNVtdID0gUiJbYV0iIExSInd4eXpB QkNERUZHSElKS0xbYl13eHl6QUJDREVGR0hJSktMIjsKKytjb25zdCB3Y2hhcl90IEwwNltdID0g TFIiOyhbYV07KCIgIltiXSI7CisrY29uc3Qgd2NoYXJfdCBMMDdbXSA9IEwiW2FdIiBSIltiXSI7 CisrY29uc3Qgd2NoYXJfdCBMMDhbXSA9IExSIlthXSIgUiJfe30jKCk8PiU6Oy4/KistW2JdX3t9 IygpPD4lOjsuPyorLSI7CisrY29uc3Qgd2NoYXJfdCBMMDlbXSA9IExSIi9eJnx+IT0sIidcW2Fd L14mfH4hPSwiJ1wiIEwiW2JdIjsKKytjb25zdCB3Y2hhcl90IEwxMFtdID0gTCJbYV0iIExSIjAx MjM0NTY3ODlhYmNkZWZbYl0wMTIzNDU2Nzg5YWJjZGVmIjsKKytjb25zdCB3Y2hhcl90IEwxMVtd ID0gTFIiZ2hpamtsbW5vcHFyc3R1dlthXWdoaWprbG1ub3BxcnN0dXYiIExSIndbYl13IjsKKysK KytpbnQKKyttYWluICh2b2lkKQorK3sKKysjZGVmaW5lIFRFU1Qoc3RyLCB2YWwpIFwKKysgIGlm IChzaXplb2YgKHN0cikgIT0gc2l6ZW9mICh2YWwpIFwKKysgICAgICB8fCBfX2J1aWx0aW5fbWVt Y21wIChzdHIsIHZhbCwgc2l6ZW9mIChzdHIpKSAhPSAwKSBcCisrICAgIF9fYnVpbHRpbl9hYm9y dCAoKQorKyAgVEVTVCAoczAwLCAiYVtiXSIpOworKyAgVEVTVCAoczAxLCAiW2FdYiIpOworKyAg VEVTVCAoczAyLCAiYWIiKTsKKysgIFRFU1QgKHMwMywgImFbYl0iKTsKKysgIFRFU1QgKHMwNCwg IlthXWIiKTsKKysgIFRFU1QgKHMwNSwgImFiIik7CisrICBURVNUIChzMDYsICJhW2JdIik7Cisr ICBURVNUIChzMDcsICJbYV1iIik7CisrICBURVNUIChzMDgsICJhYiIpOworKyAgVEVTVCAoczA5 LCAiYVtiXSIpOworKyAgVEVTVCAoczEwLCAiW2FdYiIpOworKyAgVEVTVCAoczExLCAiYWIiKTsK KysgIFRFU1QgKHUwMywgdSJhW2JdIik7CisrICBURVNUICh1MDQsIHUiW2FdYiIpOworKyAgVEVT VCAodTA1LCB1ImFiIik7CisrICBURVNUICh1MDYsIHUiYVtiXSIpOworKyAgVEVTVCAodTA3LCB1 IlthXWIiKTsKKysgIFRFU1QgKHUwOCwgdSJhYiIpOworKyAgVEVTVCAodTA5LCB1ImFbYl0iKTsK KysgIFRFU1QgKHUxMCwgdSJbYV1iIik7CisrICBURVNUICh1MTEsIHUiYWIiKTsKKysgIFRFU1Qg KFUwMywgVSJhW2JdIik7CisrICBURVNUIChVMDQsIFUiW2FdYiIpOworKyAgVEVTVCAoVTA1LCBV ImFiIik7CisrICBURVNUIChVMDYsIFUiYVtiXSIpOworKyAgVEVTVCAoVTA3LCBVIlthXWIiKTsK KysgIFRFU1QgKFUwOCwgVSJhYiIpOworKyAgVEVTVCAoVTA5LCBVImFbYl0iKTsKKysgIFRFU1Qg KFUxMCwgVSJbYV1iIik7CisrICBURVNUIChVMTEsIFUiYWIiKTsKKysgIFRFU1QgKEwwMywgTCJh W2JdIik7CisrICBURVNUIChMMDQsIEwiW2FdYiIpOworKyAgVEVTVCAoTDA1LCBMImFiIik7Cisr ICBURVNUIChMMDYsIEwiYVtiXSIpOworKyAgVEVTVCAoTDA3LCBMIlthXWIiKTsKKysgIFRFU1Qg KEwwOCwgTCJhYiIpOworKyAgVEVTVCAoTDA5LCBMImFbYl0iKTsKKysgIFRFU1QgKEwxMCwgTCJb YV1iIik7CisrICBURVNUIChMMTEsIEwiYWIiKTsKKysgIHJldHVybiAwOworK30KKy0tLSBnY2Mv dGVzdHN1aXRlL2djYy5kZy9yYXctc3RyaW5nLTMuYy5qagkyMDA4LTA5LTEyIDEzOjI3OjA5LjAw MDAwMDAwMCArMDIwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3Jhdy1zdHJpbmctMy5jCTIw MDgtMDktMTIgMTM6NDI6NTUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUzIEBACisrLyog SWYgbm90IGdudTk5LCB0aGUgeyx1LHU4LFUsTH1SIHByZWZpeCBzaG91bGQgYmUgcGFyc2VkIGFz IHNlcGFyYXRlCisrICAgdG9rZW4uICovCisrLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKysvKiB7 IGRnLW9wdGlvbnMgIiIgfSAqLworKworK2NvbnN0IHZvaWQJKnMwCT0gUiJbYV0iOwkvKiB7IGRn LWVycm9yICJ1bmRlY2xhcmVkIiB9ICovCisrCQkvKiB7IGRnLWVycm9yICJleHBlY3RlZCAnLCcg b3IgJzsnIiAiIiB7IHRhcmdldCAqLSotKiB9IDYgfSAqLworK2NvbnN0IHZvaWQJKnMxCT0gdVIi W2FdIjsJLyogeyBkZy1lcnJvciAidW5kZWNsYXJlZCIgfSAqLworKwkJLyogeyBkZy1lcnJvciAi ZXhwZWN0ZWQgJywnIG9yICc7JyIgIiIgeyB0YXJnZXQgKi0qLSogfSA4IH0gKi8KKytjb25zdCB2 b2lkCSpzMgk9IFVSIlthXSI7CS8qIHsgZGctZXJyb3IgInVuZGVjbGFyZWQiIH0gKi8KKysJCS8q IHsgZGctZXJyb3IgImV4cGVjdGVkICcsJyBvciAnOyciICIiIHsgdGFyZ2V0ICotKi0qIH0gMTAg fSAqLworK2NvbnN0IHZvaWQJKnMzCT0gdThSIlthXSI7CS8qIHsgZGctZXJyb3IgInVuZGVjbGFy ZWQiIH0gKi8KKysJCS8qIHsgZGctZXJyb3IgImV4cGVjdGVkICcsJyBvciAnOyciICIiIHsgdGFy Z2V0ICotKi0qIH0gMTIgfSAqLworK2NvbnN0IHZvaWQJKnM0CT0gTFIiW2FdIjsJLyogeyBkZy1l cnJvciAidW5kZWNsYXJlZCIgfSAqLworKwkJLyogeyBkZy1lcnJvciAiZXhwZWN0ZWQgJywnIG9y ICc7JyIgIiIgeyB0YXJnZXQgKi0qLSogfSAxNCB9ICovCisrCisrY29uc3QgaW50CWkwCT0gUidh JzsJCS8qIHsgZGctZXJyb3IgImV4cGVjdGVkICcsJyBvciAnOyciIH0gKi8KKytjb25zdCBpbnQJ aTEJPSB1UidhJzsJLyogeyBkZy1lcnJvciAiZXhwZWN0ZWQgJywnIG9yICc7JyIgfSAqLworK2Nv bnN0IGludAlpMgk9IFVSJ2EnOwkvKiB7IGRnLWVycm9yICJleHBlY3RlZCAnLCcgb3IgJzsnIiB9 ICovCisrY29uc3QgaW50CWkzCT0gdThSJ2EnOwkvKiB7IGRnLWVycm9yICJleHBlY3RlZCAnLCcg b3IgJzsnIiB9ICovCisrY29uc3QgaW50CWk0CT0gTFInYSc7CS8qIHsgZGctZXJyb3IgImV4cGVj dGVkICcsJyBvciAnOyciIH0gKi8KKysKKysjZGVmaW5lIFIJImEiCisrI2RlZmluZSB1UgkiYiIK KysjZGVmaW5lIFVSCSJjIgorKyNkZWZpbmUgdThSCSJkIgorKyNkZWZpbmUgTFIJImUiCisrCisr Y29uc3Qgdm9pZAkqczUJPSBSIlthXSI7CisrY29uc3Qgdm9pZAkqczYJPSB1UiJbYV0iOworK2Nv bnN0IHZvaWQJKnM3CT0gVVIiW2FdIjsKKytjb25zdCB2b2lkCSpzOAk9IHU4UiJbYV0iOworK2Nv bnN0IHZvaWQJKnM5CT0gTFIiW2FdIjsKKysKKysjdW5kZWYgUgorKyN1bmRlZiB1UgorKyN1bmRl ZiBVUgorKyN1bmRlZiB1OFIKKysjdW5kZWYgTFIKKysKKysjZGVmaW5lIFIJMSArCisrI2RlZmlu ZSB1UgkyICsKKysjZGVmaW5lIFVSCTMgKworKyNkZWZpbmUgdThSCTQgKworKyNkZWZpbmUgTFIJ NSArCisrCisrY29uc3QgaW50CWk1CT0gUidhJzsKKytjb25zdCBpbnQJaTYJPSB1UidhJzsKKytj b25zdCBpbnQJaTcJPSBVUidhJzsKKytjb25zdCBpbnQJaTgJPSB1OFInYSc7CisrY29uc3QgaW50 CWk5CT0gTFInYSc7CisrCisraW50IG1haW4gKCkge30KKy0tLSBnY2MvdGVzdHN1aXRlL2djYy5k Zy9yYXctc3RyaW5nLTQuYy5qagkyMDA4LTA5LTEyIDEzOjI3OjA5LjAwMDAwMDAwMCArMDIwMAor KysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3Jhdy1zdHJpbmctNC5jCTIwMDgtMDktMTIgMTM6MzM6 NDMuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDI4IEBACisrLyogUiBpcyBub3QgYXBwbGlj YWJsZSBmb3IgY2hhcmFjdGVyIGxpdGVyYWxzLiAgKi8KKysvKiB7IGRnLWRvIGNvbXBpbGUgfSAq LworKy8qIHsgZGctb3B0aW9ucyAiLXN0ZD1nbnU5OSIgfSAqLworKworK2NvbnN0IGludAlpMAk9 IFInYSc7CS8qIHsgZGctZXJyb3IgInVuZGVjbGFyZWQiIH0gKi8KKysJCS8qIHsgZGctZXJyb3Ig ImV4cGVjdGVkICcsJyBvciAnOyciICIiIHsgdGFyZ2V0ICotKi0qIH0gNSB9ICovCisrY29uc3Qg aW50CWkxCT0gdVInYSc7CS8qIHsgZGctZXJyb3IgInVuZGVjbGFyZWQiIH0gKi8KKysJCS8qIHsg ZGctZXJyb3IgImV4cGVjdGVkICcsJyBvciAnOyciICIiIHsgdGFyZ2V0ICotKi0qIH0gNyB9ICov CisrY29uc3QgaW50CWkyCT0gVVInYSc7CS8qIHsgZGctZXJyb3IgInVuZGVjbGFyZWQiIH0gKi8K KysJCS8qIHsgZGctZXJyb3IgImV4cGVjdGVkICcsJyBvciAnOyciICIiIHsgdGFyZ2V0ICotKi0q IH0gOSB9ICovCisrY29uc3QgaW50CWkzCT0gdThSJ2EnOwkvKiB7IGRnLWVycm9yICJ1bmRlY2xh cmVkIiB9ICovCisrCQkvKiB7IGRnLWVycm9yICJleHBlY3RlZCAnLCcgb3IgJzsnIiAiIiB7IHRh cmdldCAqLSotKiB9IDExIH0gKi8KKytjb25zdCBpbnQJaTQJPSBMUidhJzsJLyogeyBkZy1lcnJv ciAidW5kZWNsYXJlZCIgfSAqLworKwkJLyogeyBkZy1lcnJvciAiZXhwZWN0ZWQgJywnIG9yICc7 JyIgIiIgeyB0YXJnZXQgKi0qLSogfSAxMyB9ICovCisrCisrI2RlZmluZSBSCTEgKworKyNkZWZp bmUgdVIJMiArCisrI2RlZmluZSBVUgkzICsKKysjZGVmaW5lIHU4Ugk0ICsKKysjZGVmaW5lIExS CTUgKworKworK2NvbnN0IGludAlpNQk9IFInYSc7CisrY29uc3QgaW50CWk2CT0gdVInYSc7Cisr Y29uc3QgaW50CWk3CT0gVVInYSc7CisrY29uc3QgaW50CWk4CT0gdThSJ2EnOworK2NvbnN0IGlu dAlpOQk9IExSJ2EnOworKworK2ludCBtYWluICgpIHt9CistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvcmF3LXN0cmluZy01LmMuamoJMjAwOC0wOS0xMiAxMzo0OTo1OC4wMDAwMDAwMDAgKzAyMDAK KysrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9yYXctc3RyaW5nLTUuYwkyMDA4LTA5LTEyIDEzOjU5 OjE0LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyMyBAQAorKy8qIHsgZGctZG8gY29tcGls ZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItc3RkPWdudTk5IiB9ICovCisrCisrY29uc3Qgdm9p ZCAqczAgPSBSIjAxMjM0NTY3ODlhYmNkZWZnW10wMTIzNDU2Nzg5YWJjZGVmZyI7CisrCS8qIHsg ZGctZXJyb3IgInJhdyBzdHJpbmcgZGVsaW1pdGVyIGxvbmdlciIgIiIgeyB0YXJnZXQgKi0qLSog fSA0IH0gKi8KKysJLyogeyBkZy1lcnJvciAic3RyYXkiICIiIHsgdGFyZ2V0ICotKi0qIH0gNCB9 ICovCisrY29uc3Qgdm9pZCAqczEgPSBSIiBbXSAiOworKwkvKiB7IGRnLWVycm9yICJpbnZhbGlk IGNoYXJhY3RlciIgIiIgeyB0YXJnZXQgKi0qLSogfSA3IH0gKi8KKysJLyogeyBkZy1lcnJvciAi c3RyYXkiICIiIHsgdGFyZ2V0ICotKi0qIH0gNyB9ICovCisrY29uc3Qgdm9pZCAqczIgPSBSIglb XQkiOworKwkvKiB7IGRnLWVycm9yICJpbnZhbGlkIGNoYXJhY3RlciIgIiIgeyB0YXJnZXQgKi0q LSogfSAxMCB9ICovCisrCS8qIHsgZGctZXJyb3IgInN0cmF5IiAiIiB7IHRhcmdldCAqLSotKiB9 IDEwIH0gKi8KKytjb25zdCB2b2lkICpzMyA9IFIiXVtdXSI7CisrCS8qIHsgZGctZXJyb3IgImlu dmFsaWQgY2hhcmFjdGVyIiAiIiB7IHRhcmdldCAqLSotKiB9IDEzIH0gKi8KKysJLyogeyBkZy1l cnJvciAic3RyYXkiICIiIHsgdGFyZ2V0ICotKi0qIH0gMTMgfSAqLworK2NvbnN0IHZvaWQgKnM0 ID0gUiJAW11AIjsKKysJLyogeyBkZy1lcnJvciAiaW52YWxpZCBjaGFyYWN0ZXIiICIiIHsgdGFy Z2V0ICotKi0qIH0gMTYgfSAqLworKwkvKiB7IGRnLWVycm9yICJzdHJheSIgIiIgeyB0YXJnZXQg Ki0qLSogfSAxNiB9ICovCisrY29uc3Qgdm9pZCAqczUgPSBSIiRbXSQiOworKwkvKiB7IGRnLWVy cm9yICJpbnZhbGlkIGNoYXJhY3RlciIgIiIgeyB0YXJnZXQgKi0qLSogfSAxOSB9ICovCisrCS8q IHsgZGctZXJyb3IgInN0cmF5IiAiIiB7IHRhcmdldCAqLSotKiB9IDE5IH0gKi8KKysKKytpbnQg bWFpbiAoKSB7fQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3Jhdy1zdHJpbmctNi5jLmpqCTIw MDgtMDktMTIgMTM6NTk6MzMuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvcmF3LXN0cmluZy02LmMJMjAwOC0wOS0xMiAxNDowMzo0Ni4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsNSBAQAorKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25z ICItc3RkPWdudTk5IiB9ICovCisrCisrY29uc3Qgdm9pZCAqczAgPSBSIm91Y2hbXW91Q2giOwkv KiB7IGRnLWVycm9yICJleHBlY3RlZCBleHByZXNzaW9uIGF0IGVuZCBvZiBpbnB1dCIgfSAqLwor KwkvKiB7IGRnLWVycm9yICJ1bnRlcm1pbmF0ZWQgcmF3IHN0cmluZyIgIiIgeyB0YXJnZXQgKi0q LSogfSA2IH0gKi8KKy0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9yYXctc3RyaW5nLTcuYy5qagky MDA4LTA5LTEyIDE0OjI3OjM5LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2Nj LmRnL3Jhdy1zdHJpbmctNy5jCTIwMDgtMDktMTIgMTQ6MzQ6MTcuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDIzIEBACisrLyogVGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgXCBhbmQg YmVmb3JlIG5ld2xpbmUgZXh0ZW5zaW9uCisrICAgYnJlYWtzIGZ1bGwgY29tcGxpYW5jZSBmb3Ig cmF3IHN0cmluZ3MuICAqLworKy8qIHsgZGctZG8gcnVuIHsgeGZhaWwgKi0qLSogfSB9ICovCisr LyogeyBkZy1vcHRpb25zICItc3RkPWdudTk5IiB9ICovCisrCisrLyogTm90ZSwgdGhlcmUgaXMg YSBzaW5nbGUgc3BhY2UgYWZ0ZXIgXCBvbiB0aGUgZm9sbG93aW5nIGxpbmUuICAqLworK2NvbnN0 IHZvaWQgKnMwID0gUiJbXCAKKytdIjsKKysvKiB7IGRnLWJvZ3VzICJiYWNrc2xhc2ggYW5kIG5l d2xpbmUgc2VwYXJhdGVkIGJ5IHNwYWNlIiAiIiB7IHhmYWlsICotKi0qIH0gNyB9ICovCisrCisr LyogTm90ZSwgdGhlcmUgaXMgYSBzaW5nbGUgdGFiIGFmdGVyIFwgb24gdGhlIGZvbGxvd2luZyBs aW5lLiAgKi8KKytjb25zdCB2b2lkICpzMSA9IFIiW1wJCisrXSI7CisrLyogeyBkZy1ib2d1cyAi YmFja3NsYXNoIGFuZCBuZXdsaW5lIHNlcGFyYXRlZCBieSBzcGFjZSIgIiIgeyB4ZmFpbCAqLSot KiB9IDEyIH0gKi8KKysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysgIGlmIChfX2J1aWx0aW5f c3RyY21wIChzMCwgIlxcIFxuIikgIT0gMAorKyAgICAgIHx8IF9fYnVpbHRpbl9zdHJjbXAgKHMx LCAiXFxcdFxuIikgIT0gMCkKKysgICAgX19idWlsdGluX2Fib3J0ICgpOworKyAgcmV0dXJuIDA7 CisrfQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3V0ZjgtMS5jLmpqCTIwMDgtMDktMTIgMTA6 MDE6NDcuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdXRmOC0xLmMJ MjAwOC0wOS0xMiAxMTo0NTo0OC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNDUgQEAKKysv KiB7IGRnLWRvIHJ1biB9ICovCisrLyogeyBkZy1yZXF1aXJlLWljb252ICJJU08tODg1OS0yIiB9 ICovCisrLyogeyBkZy1vcHRpb25zICItc3RkPWdudTk5IC1mZXhlYy1jaGFyc2V0PUlTTy04ODU5 LTIiIH0gKi8KKysKKytjb25zdCBjaGFyICpzdHIxID0gImhcdTAwZTFcVTAwMDAwMTBEa3kgIjsK Kytjb25zdCBjaGFyICpzdHIyID0gIlx1MDEwZFx1MDBFMXJreVxuIjsKKytjb25zdCBjaGFyICpz dHIzID0gdTgiaFx1MDBlMVxVMDAwMDAxMERreSAiOworK2NvbnN0IGNoYXIgKnN0cjQgPSB1OCJc dTAxMGRcdTAwRTFya3lcbiI7CisrY29uc3QgY2hhciAqc3RyNSA9ICJoXHUwMGUxXFUwMDAwMDEw RGt5ICIgIlx1MDEwZFx1MDBFMXJreVxuIjsKKytjb25zdCBjaGFyICpzdHI2ID0gdTgiaFx1MDBl MVxVMDAwMDAxMERreSAiICJcdTAxMGRcdTAwRTFya3lcbiI7CisrY29uc3QgY2hhciAqc3RyNyA9 ICJoXHUwMGUxXFUwMDAwMDEwRGt5ICIgdTgiXHUwMTBkXHUwMEUxcmt5XG4iOworKyNkZWZpbmUg dTgKKytjb25zdCBjaGFyICpzdHI4ID0gdTgiaFx1MDBlMVxVMDAwMDAxMERreSAiIHU4Ilx1MDEw ZFx1MDBFMXJreVxuIjsKKysKKytjb25zdCBjaGFyIGxhdGluMl8xW10gPSAiXHg2OFx4ZTFceGU4 XHg2Ylx4NzlceDIwIjsKKytjb25zdCBjaGFyIGxhdGluMl8yW10gPSAiXHhlOFx4ZTFceDcyXHg2 Ylx4NzlcbiI7CisrY29uc3QgY2hhciB1dGY4XzFbXSA9ICJceDY4XHhjM1x4YTFceGM0XHg4ZFx4 NmJceDc5XHgyMCI7CisrY29uc3QgY2hhciB1dGY4XzJbXSA9ICJceGM0XHg4ZFx4YzNceGExXHg3 Mlx4NmJceDc5XG4iOworKworK2ludAorK21haW4gKHZvaWQpCisreworKyAgaWYgKF9fYnVpbHRp bl9zdHJjbXAgKHN0cjEsIGxhdGluMl8xKSAhPSAwCisrICAgICAgfHwgX19idWlsdGluX3N0cmNt cCAoc3RyMiwgbGF0aW4yXzIpICE9IDAKKysgICAgICB8fCBfX2J1aWx0aW5fc3RyY21wIChzdHIz LCB1dGY4XzEpICE9IDAKKysgICAgICB8fCBfX2J1aWx0aW5fc3RyY21wIChzdHI0LCB1dGY4XzIp ICE9IDAKKysgICAgICB8fCBfX2J1aWx0aW5fc3RybmNtcCAoc3RyNSwgbGF0aW4yXzEsIHNpemVv ZiAobGF0aW4yXzEpIC0gMSkgIT0gMAorKyAgICAgIHx8IF9fYnVpbHRpbl9zdHJjbXAgKHN0cjUg KyBzaXplb2YgKGxhdGluMl8xKSAtIDEsIGxhdGluMl8yKSAhPSAwCisrICAgICAgfHwgX19idWls dGluX3N0cm5jbXAgKHN0cjYsIHV0ZjhfMSwgc2l6ZW9mICh1dGY4XzEpIC0gMSkgIT0gMAorKyAg ICAgIHx8IF9fYnVpbHRpbl9zdHJjbXAgKHN0cjYgKyBzaXplb2YgKHV0ZjhfMSkgLSAxLCB1dGY4 XzIpICE9IDAKKysgICAgICB8fCBfX2J1aWx0aW5fc3RybmNtcCAoc3RyNywgdXRmOF8xLCBzaXpl b2YgKHV0ZjhfMSkgLSAxKSAhPSAwCisrICAgICAgfHwgX19idWlsdGluX3N0cmNtcCAoc3RyNyAr IHNpemVvZiAodXRmOF8xKSAtIDEsIHV0ZjhfMikgIT0gMAorKyAgICAgIHx8IF9fYnVpbHRpbl9z dHJuY21wIChzdHI4LCB1dGY4XzEsIHNpemVvZiAodXRmOF8xKSAtIDEpICE9IDAKKysgICAgICB8 fCBfX2J1aWx0aW5fc3RyY21wIChzdHI4ICsgc2l6ZW9mICh1dGY4XzEpIC0gMSwgdXRmOF8yKSAh PSAwKQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mICgiYSIgdTgiYiJb MF0pICE9IDEKKysgICAgICB8fCBzaXplb2YgKHU4ImEiICJiIlswXSkgIT0gMQorKyAgICAgIHx8 IHNpemVvZiAodTgiYSIgdTgiYiJbMF0pICE9IDEKKysgICAgICB8fCBzaXplb2YgKCJhIiAiXHUw MTBkIikgIT0gMworKyAgICAgIHx8IHNpemVvZiAoImEiIHU4Ilx1MDEwZCIpICE9IDQKKysgICAg ICB8fCBzaXplb2YgKHU4ImEiICJcdTAxMGQiKSAhPSA0CisrICAgICAgfHwgc2l6ZW9mICh1OCJh IiAiXHUwMTBkIikgIT0gNCkKKysgICAgX19idWlsdGluX2Fib3J0ICgpOworKyAgcmV0dXJuIDA7 CisrfQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3V0ZjgtMi5jLmpqCTIwMDgtMDktMTIgMTE6 Mjc6NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdXRmOC0yLmMJ MjAwOC0wOS0xMiAxMTozNjo0OC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjYgQEAKKysv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLXN0ZD1nbnU5OSIgfSAq LworKworKyNpbmNsdWRlIDx3Y2hhci5oPgorKworK3R5cGVkZWYgX19DSEFSMTZfVFlQRV9fCWNo YXIxNl90OworK3R5cGVkZWYgX19DSEFSMzJfVFlQRV9fIGNoYXIzMl90OworKworK2NvbnN0IGNo YXIJczBbXQk9IHU4ImFiIjsKKytjb25zdCBjaGFyMTZfdAlzMVtdCT0gdTgiYWIiOwkvKiB7IGRn LWVycm9yICJmcm9tIG5vbi13aWRlIiB9ICovCisrY29uc3QgY2hhcjMyX3QgIHMyW10gICAgPSB1 OCJhYiI7CS8qIHsgZGctZXJyb3IgImZyb20gbm9uLXdpZGUiIH0gKi8KKytjb25zdCB3Y2hhcl90 ICAgczNbXSAgICA9IHU4ImFiIjsJLyogeyBkZy1lcnJvciAiZnJvbSBub24td2lkZSIgfSAqLwor KworK2NvbnN0IGNoYXIgICAgICB0MFswXSAgID0gdTgiYWIiOwkvKiB7IGRnLXdhcm5pbmcgImNo YXJzIGlzIHRvbyBsb25nIiB9ICovCisrY29uc3QgY2hhciAgICAgIHQxWzFdICAgPSB1OCJhYiI7 CS8qIHsgZGctd2FybmluZyAiY2hhcnMgaXMgdG9vIGxvbmciIH0gKi8KKytjb25zdCBjaGFyICAg ICAgdDJbMl0gICA9IHU4ImFiIjsKKytjb25zdCBjaGFyICAgICAgdDNbM10gICA9IHU4ImFiIjsK Kytjb25zdCBjaGFyICAgICAgdDRbNF0gICA9IHU4ImFiIjsKKysKKytjb25zdCBjaGFyICAgICAg dTBbMF0gICA9IHU4Ilx1MjE2MC4iOwkvKiB7IGRnLXdhcm5pbmcgImNoYXJzIGlzIHRvbyBsb25n IiB9ICovCisrY29uc3QgY2hhciAgICAgIHUxWzFdICAgPSB1OCJcdTIxNjAuIjsJLyogeyBkZy13 YXJuaW5nICJjaGFycyBpcyB0b28gbG9uZyIgfSAqLworK2NvbnN0IGNoYXIgICAgICB1MlsyXSAg ID0gdTgiXHUyMTYwLiI7CS8qIHsgZGctd2FybmluZyAiY2hhcnMgaXMgdG9vIGxvbmciIH0gKi8K Kytjb25zdCBjaGFyICAgICAgdTNbM10gICA9IHU4Ilx1MjE2MC4iOwkvKiB7IGRnLXdhcm5pbmcg ImNoYXJzIGlzIHRvbyBsb25nIiB9ICovCisrY29uc3QgY2hhciAgICAgIHU0WzRdICAgPSB1OCJc dTIxNjAuIjsKKytjb25zdCBjaGFyICAgICAgdTVbNV0gICA9IHU4Ilx1MjE2MC4iOworK2NvbnN0 IGNoYXIgICAgICB1Nls2XSAgID0gdTgiXHUyMTYwLiI7CistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvdXRmLWJhZGNvbmNhdDIuYy5qagkyMDA4LTA5LTEyIDExOjI4OjI2LjAwMDAwMDAwMCArMDIw MAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3V0Zi1iYWRjb25jYXQyLmMJMjAwOC0wOS0xMiAx MTozMDo1My4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTUgQEAKKysvKiBUZXN0IHVuc3Vw cG9ydGVkIGNvbmNhdGVuYXRpb24gb2YgVVRGLTggc3RyaW5nIGxpdGVyYWxzLiAqLworKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItc3RkPWdudTk5IiB9ICovCisr Cisrdm9pZAkqczAJPSB1OCJhIiAgICJiIjsKKyt2b2lkCSpzMQk9ICAgImEiIHU4ImIiOworK3Zv aWQJKnMyCT0gdTgiYSIgdTgiYiI7Cisrdm9pZAkqczMJPSB1OCJhIiAgdSJiIjsJLyogeyBkZy1l cnJvciAibm9uLXN0YW5kYXJkIGNvbmNhdGVuYXRpb24iIH0gKi8KKyt2b2lkCSpzNAk9ICB1ImEi IHU4ImIiOwkvKiB7IGRnLWVycm9yICJub24tc3RhbmRhcmQgY29uY2F0ZW5hdGlvbiIgfSAqLwor K3ZvaWQJKnM1CT0gdTgiYSIgIFUiYiI7CS8qIHsgZGctZXJyb3IgIm5vbi1zdGFuZGFyZCBjb25j YXRlbmF0aW9uIiB9ICovCisrdm9pZAkqczYJPSAgVSJhIiB1OCJiIjsJLyogeyBkZy1lcnJvciAi bm9uLXN0YW5kYXJkIGNvbmNhdGVuYXRpb24iIH0gKi8KKyt2b2lkCSpzNwk9IHU4ImEiICBMImIi OwkvKiB7IGRnLWVycm9yICJub24tc3RhbmRhcmQgY29uY2F0ZW5hdGlvbiIgfSAqLworK3ZvaWQJ KnM4CT0gIEwiYSIgdTgiYiI7CS8qIHsgZGctZXJyb3IgIm5vbi1zdGFuZGFyZCBjb25jYXRlbmF0 aW9uIiB9ICovCisrCisraW50IG1haW4gKCkge30KKy0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy91 dGYtZGZsdDIuYy5qagkyMDA4LTA5LTEyIDExOjMyOjAzLjAwMDAwMDAwMCArMDIwMAorKysrIGdj Yy90ZXN0c3VpdGUvZ2NjLmRnL3V0Zi1kZmx0Mi5jCTIwMDgtMDktMTIgMTM6MjQ6MzkuMDAwMDAw MDAwICswMjAwCitAQCAtMCwwICsxLDEyIEBACisrLyogSWYgbm90IGdudTk5LCB0aGUgdTggcHJl Zml4IHNob3VsZCBiZSBwYXJzZWQgYXMgc2VwYXJhdGUgdG9rZW5zLiAqLworKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICIiIH0gKi8KKysKKytjb25zdCB2b2lkCSpz MCA9IHU4ImEiOwkJLyogeyBkZy1lcnJvciAidW5kZWNsYXJlZCIgfSAqLworKwkJLyogeyBkZy1l cnJvciAiZXhwZWN0ZWQgJywnIG9yICc7JyIgIiIgeyB0YXJnZXQgKi0qLSogfSA1IH0gKi8KKysK KysjZGVmaW5lIHU4CSJhIgorKworK2NvbnN0IHZvaWQJKnMxID0gdTgiYSI7CisrCisraW50IG1h aW4gKCkge30KKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvcmF3LXN0cmluZy0xLkMuamoJ MjAwOC0wOS0xMiAxMTo0ODozNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2cr Ky5kZy9leHQvcmF3LXN0cmluZy0xLkMJMjAwOC0wOS0xMiAxNDoxODowNy4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsOTYgQEAKKysvLyB7IGRnLWRvIHJ1biB9CisrLy8geyBkZy1vcHRpb25z ICItc3RkPWMrKzB4IiB9CisrCisrY29uc3QgY2hhciBzMFtdID0gUiJbYVwKKytcdTAxMGRcVTAw MDAwMTBEXFxcJ1wiXD9cYVxiXGZcblxyXHRcdlwwXDAwXDAwMFx4YVx4YWJiCisrY10iOworK2Nv bnN0IGNoYXIgczFbXSA9ICJhXFUwMDAwMDEwZFx1MDEwZFxcXFxcXCdcXFwiXFw/XFxhXFxiXFxm XFxuXFxyXFx0XFx2XFwwXFwwMFxcMDAwXFx4YVxceGFiYlxuYyI7CisrY29uc3QgY2hhciBzMltd ID0gUiIqfCpbYVwKKytiCisrY10iCisrY10qfCIKKytjXSp8KiI7CisrY29uc3QgY2hhciBzM1td ID0gImFiXG5jXVwiXG5jXSp8XCJcbmMiOworKworK2NvbnN0IGNoYXIgdDBbXSA9IHU4UiJbYVwK KytcdTAxMGRcVTAwMDAwMTBEXFxcJ1wiXD9cYVxiXGZcblxyXHRcdlwwXDAwXDAwMFx4YVx4YWJi CisrY10iOworK2NvbnN0IGNoYXIgdDFbXSA9IHU4ImFcVTAwMDAwMTBkXHUwMTBkXFxcXFxcJ1xc XCJcXD9cXGFcXGJcXGZcXG5cXHJcXHRcXHZcXDBcXDAwXFwwMDBcXHhhXFx4YWJiXG5jIjsKKytj b25zdCBjaGFyIHQyW10gPSB1OFIiKnwqW2FcCisrYgorK2NdIgorK2NdKnwiCisrY10qfCoiOwor K2NvbnN0IGNoYXIgdDNbXSA9IHU4ImFiXG5jXVwiXG5jXSp8XCJcbmMiOworKworK2NvbnN0IGNo YXIxNl90IHUwW10gPSB1UiJbYVwKKytcdTAxMGRcVTAwMDAwMTBEXFxcJ1wiXD9cYVxiXGZcblxy XHRcdlwwXDAwXDAwMFx4YVx4YWJiCisrY10iOworK2NvbnN0IGNoYXIxNl90IHUxW10gPSB1ImFc VTAwMDAwMTBkXHUwMTBkXFxcXFxcJ1xcXCJcXD9cXGFcXGJcXGZcXG5cXHJcXHRcXHZcXDBcXDAw XFwwMDBcXHhhXFx4YWJiXG5jIjsKKytjb25zdCBjaGFyMTZfdCB1MltdID0gdVIiKnwqW2FcCisr YgorK2NdIgorK2NdKnwiCisrY10qfCoiOworK2NvbnN0IGNoYXIxNl90IHUzW10gPSB1ImFiXG5j XVwiXG5jXSp8XCJcbmMiOworKworK2NvbnN0IGNoYXIzMl90IFUwW10gPSBVUiJbYVwKKytcdTAx MGRcVTAwMDAwMTBEXFxcJ1wiXD9cYVxiXGZcblxyXHRcdlwwXDAwXDAwMFx4YVx4YWJiCisrY10i OworK2NvbnN0IGNoYXIzMl90IFUxW10gPSBVImFcVTAwMDAwMTBkXHUwMTBkXFxcXFxcJ1xcXCJc XD9cXGFcXGJcXGZcXG5cXHJcXHRcXHZcXDBcXDAwXFwwMDBcXHhhXFx4YWJiXG5jIjsKKytjb25z dCBjaGFyMzJfdCBVMltdID0gVVIiKnwqW2FcCisrYgorK2NdIgorK2NdKnwiCisrY10qfCoiOwor K2NvbnN0IGNoYXIzMl90IFUzW10gPSBVImFiXG5jXVwiXG5jXSp8XCJcbmMiOworKworK2NvbnN0 IHdjaGFyX3QgTDBbXSA9IExSIlthXAorK1x1MDEwZFxVMDAwMDAxMERcXFwnXCJcP1xhXGJcZlxu XHJcdFx2XDBcMDBcMDAwXHhhXHhhYmIKKytjXSI7CisrY29uc3Qgd2NoYXJfdCBMMVtdID0gTCJh XFUwMDAwMDEwZFx1MDEwZFxcXFxcXCdcXFwiXFw/XFxhXFxiXFxmXFxuXFxyXFx0XFx2XFwwXFww MFxcMDAwXFx4YVxceGFiYlxuYyI7CisrY29uc3Qgd2NoYXJfdCBMMltdID0gTFIiKnwqW2FcCisr YgorK2NdIgorK2NdKnwiCisrY10qfCoiOworK2NvbnN0IHdjaGFyX3QgTDNbXSA9IEwiYWJcbmNd XCJcbmNdKnxcIlxuYyI7CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBpZiAoc2l6ZW9m IChzMCkgIT0gc2l6ZW9mIChzMSkKKysgICAgICB8fCBfX2J1aWx0aW5fbWVtY21wIChzMCwgczEs IHNpemVvZiAoczApKSAhPSAwKQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6 ZW9mIChzMikgIT0gc2l6ZW9mIChzMykKKysgICAgICB8fCBfX2J1aWx0aW5fbWVtY21wIChzMiwg czMsIHNpemVvZiAoczIpKSAhPSAwKQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICBpZiAo c2l6ZW9mICh0MCkgIT0gc2l6ZW9mICh0MSkKKysgICAgICB8fCBfX2J1aWx0aW5fbWVtY21wICh0 MCwgdDEsIHNpemVvZiAodDApKSAhPSAwKQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICBp ZiAoc2l6ZW9mICh0MikgIT0gc2l6ZW9mICh0MykKKysgICAgICB8fCBfX2J1aWx0aW5fbWVtY21w ICh0MiwgdDMsIHNpemVvZiAodDIpKSAhPSAwKQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7Cisr ICBpZiAoc2l6ZW9mICh1MCkgIT0gc2l6ZW9mICh1MSkKKysgICAgICB8fCBfX2J1aWx0aW5fbWVt Y21wICh1MCwgdTEsIHNpemVvZiAodTApKSAhPSAwKQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7 CisrICBpZiAoc2l6ZW9mICh1MikgIT0gc2l6ZW9mICh1MykKKysgICAgICB8fCBfX2J1aWx0aW5f bWVtY21wICh1MiwgdTMsIHNpemVvZiAodTIpKSAhPSAwKQorKyAgICBfX2J1aWx0aW5fYWJvcnQg KCk7CisrICBpZiAoc2l6ZW9mIChVMCkgIT0gc2l6ZW9mIChVMSkKKysgICAgICB8fCBfX2J1aWx0 aW5fbWVtY21wIChVMCwgVTEsIHNpemVvZiAoVTApKSAhPSAwKQorKyAgICBfX2J1aWx0aW5fYWJv cnQgKCk7CisrICBpZiAoc2l6ZW9mIChVMikgIT0gc2l6ZW9mIChVMykKKysgICAgICB8fCBfX2J1 aWx0aW5fbWVtY21wIChVMiwgVTMsIHNpemVvZiAoVTIpKSAhPSAwKQorKyAgICBfX2J1aWx0aW5f YWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mIChMMCkgIT0gc2l6ZW9mIChMMSkKKysgICAgICB8fCBf X2J1aWx0aW5fbWVtY21wIChMMCwgTDEsIHNpemVvZiAoTDApKSAhPSAwKQorKyAgICBfX2J1aWx0 aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mIChMMikgIT0gc2l6ZW9mIChMMykKKysgICAgICB8 fCBfX2J1aWx0aW5fbWVtY21wIChMMiwgTDMsIHNpemVvZiAoTDIpKSAhPSAwKQorKyAgICBfX2J1 aWx0aW5fYWJvcnQgKCk7CisrICBpZiAoc2l6ZW9mIChSIipbXSoiKSAhPSAxCisrICAgICAgfHwg X19idWlsdGluX21lbWNtcCAoUiIqW10qIiwgIiIsIDEpICE9IDApCisrICAgIF9fYnVpbHRpbl9h Ym9ydCAoKTsKKysgIHJldHVybiAwOworK30KKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQv cmF3LXN0cmluZy0yLkMuamoJMjAwOC0wOS0xMiAxMjoxNDo0Mi4wMDAwMDAwMDAgKzAyMDAKKysr KyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvcmF3LXN0cmluZy0yLkMJMjAwOC0wOS0xMiAxNDox ODoxNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTA0IEBACisrLy8geyBkZy1kbyBydW4g fQorKy8vIHsgZGctb3B0aW9ucyAiLXN0ZD1jKysweCIgfQorKworKyNkZWZpbmUgUgorKyNkZWZp bmUgdQorKyNkZWZpbmUgdVIKKysjZGVmaW5lIFUKKysjZGVmaW5lIFVSCisrI2RlZmluZSB1OAor KyNkZWZpbmUgdThSCisrI2RlZmluZSBMCisrI2RlZmluZSBMUgorKworK2NvbnN0IGNoYXIgczAw W10gPSBSIlthXSIgIltiXSI7CisrY29uc3QgY2hhciBzMDFbXSA9ICJbYV0iIFIiKltiXSoiOwor K2NvbnN0IGNoYXIgczAyW10gPSBSIlthXSIgUiJbYl0iOworK2NvbnN0IGNoYXIgczAzW10gPSBS Ii1bYV0tIiB1OCJbYl0iOworK2NvbnN0IGNoYXIgczA0W10gPSAiW2FdIiB1OFIiTU5PUFFSU1RV VldYWVpbYl1NTk9QUVJTVFVWV1hZWiI7CisrY29uc3QgY2hhciBzMDVbXSA9IFIiW2FdIiB1OFIi d3h5ekFCQ0RFRkdISUpLTFtiXXd4eXpBQkNERUZHSElKS0wiOworK2NvbnN0IGNoYXIgczA2W10g PSB1OFIiOyhbYV07KCIgIltiXSI7CisrY29uc3QgY2hhciBzMDdbXSA9IHU4IlthXSIgUiJbYl0i OworK2NvbnN0IGNoYXIgczA4W10gPSB1OFIiW2FdIiBSIl97fSMoKTw+JTo7Lj8qKy1bYl1fe30j KCk8PiU6Oy4/KistIjsKKytjb25zdCBjaGFyIHMwOVtdID0gdThSIi9eJnx+IT0sIidcW2FdL14m fH4hPSwiJ1wiIHU4IltiXSI7CisrY29uc3QgY2hhciBzMTBbXSA9IHU4IlthXSIgdThSIjAxMjM0 NTY3ODlhYmNkZWZbYl0wMTIzNDU2Nzg5YWJjZGVmIjsKKytjb25zdCBjaGFyIHMxMVtdID0gdThS ImdoaWprbG1ub3BxcnN0dXZbYV1naGlqa2xtbm9wcXJzdHV2IiB1OFIid1tiXXciOworKworK2Nv bnN0IGNoYXIxNl90IHUwM1tdID0gUiItW2FdLSIgdSJbYl0iOworK2NvbnN0IGNoYXIxNl90IHUw NFtdID0gIlthXSIgdVIiTU5PUFFSU1RVVldYWVpbYl1NTk9QUVJTVFVWV1hZWiI7CisrY29uc3Qg Y2hhcjE2X3QgdTA1W10gPSBSIlthXSIgdVIid3h5ekFCQ0RFRkdISUpLTFtiXXd4eXpBQkNERUZH SElKS0wiOworK2NvbnN0IGNoYXIxNl90IHUwNltdID0gdVIiOyhbYV07KCIgIltiXSI7CisrY29u c3QgY2hhcjE2X3QgdTA3W10gPSB1IlthXSIgUiJbYl0iOworK2NvbnN0IGNoYXIxNl90IHUwOFtd ID0gdVIiW2FdIiBSIl97fSMoKTw+JTo7Lj8qKy1bYl1fe30jKCk8PiU6Oy4/KistIjsKKytjb25z dCBjaGFyMTZfdCB1MDlbXSA9IHVSIi9eJnx+IT0sIidcW2FdL14mfH4hPSwiJ1wiIHUiW2JdIjsK Kytjb25zdCBjaGFyMTZfdCB1MTBbXSA9IHUiW2FdIiB1UiIwMTIzNDU2Nzg5YWJjZGVmW2JdMDEy MzQ1Njc4OWFiY2RlZiI7CisrY29uc3QgY2hhcjE2X3QgdTExW10gPSB1UiJnaGlqa2xtbm9wcXJz dHV2W2FdZ2hpamtsbW5vcHFyc3R1diIgdVIid1tiXXciOworKworK2NvbnN0IGNoYXIzMl90IFUw M1tdID0gUiItW2FdLSIgVSJbYl0iOworK2NvbnN0IGNoYXIzMl90IFUwNFtdID0gIlthXSIgVVIi TU5PUFFSU1RVVldYWVpbYl1NTk9QUVJTVFVWV1hZWiI7CisrY29uc3QgY2hhcjMyX3QgVTA1W10g PSBSIlthXSIgVVIid3h5ekFCQ0RFRkdISUpLTFtiXXd4eXpBQkNERUZHSElKS0wiOworK2NvbnN0 IGNoYXIzMl90IFUwNltdID0gVVIiOyhbYV07KCIgIltiXSI7CisrY29uc3QgY2hhcjMyX3QgVTA3 W10gPSBVIlthXSIgUiJbYl0iOworK2NvbnN0IGNoYXIzMl90IFUwOFtdID0gVVIiW2FdIiBSIl97 fSMoKTw+JTo7Lj8qKy1bYl1fe30jKCk8PiU6Oy4/KistIjsKKytjb25zdCBjaGFyMzJfdCBVMDlb XSA9IFVSIi9eJnx+IT0sIidcW2FdL14mfH4hPSwiJ1wiIFUiW2JdIjsKKytjb25zdCBjaGFyMzJf dCBVMTBbXSA9IFUiW2FdIiBVUiIwMTIzNDU2Nzg5YWJjZGVmW2JdMDEyMzQ1Njc4OWFiY2RlZiI7 CisrY29uc3QgY2hhcjMyX3QgVTExW10gPSBVUiJnaGlqa2xtbm9wcXJzdHV2W2FdZ2hpamtsbW5v cHFyc3R1diIgVVIid1tiXXciOworKworK2NvbnN0IHdjaGFyX3QgTDAzW10gPSBSIi1bYV0tIiBM IltiXSI7CisrY29uc3Qgd2NoYXJfdCBMMDRbXSA9ICJbYV0iIExSIk1OT1BRUlNUVVZXWFlaW2Jd TU5PUFFSU1RVVldYWVoiOworK2NvbnN0IHdjaGFyX3QgTDA1W10gPSBSIlthXSIgTFIid3h5ekFC Q0RFRkdISUpLTFtiXXd4eXpBQkNERUZHSElKS0wiOworK2NvbnN0IHdjaGFyX3QgTDA2W10gPSBM UiI7KFthXTsoIiAiW2JdIjsKKytjb25zdCB3Y2hhcl90IEwwN1tdID0gTCJbYV0iIFIiW2JdIjsK Kytjb25zdCB3Y2hhcl90IEwwOFtdID0gTFIiW2FdIiBSIl97fSMoKTw+JTo7Lj8qKy1bYl1fe30j KCk8PiU6Oy4/KistIjsKKytjb25zdCB3Y2hhcl90IEwwOVtdID0gTFIiL14mfH4hPSwiJ1xbYV0v XiZ8fiE9LCInXCIgTCJbYl0iOworK2NvbnN0IHdjaGFyX3QgTDEwW10gPSBMIlthXSIgTFIiMDEy MzQ1Njc4OWFiY2RlZltiXTAxMjM0NTY3ODlhYmNkZWYiOworK2NvbnN0IHdjaGFyX3QgTDExW10g PSBMUiJnaGlqa2xtbm9wcXJzdHV2W2FdZ2hpamtsbW5vcHFyc3R1diIgTFIid1tiXXciOworKwor K2ludAorK21haW4gKHZvaWQpCisreworKyNkZWZpbmUgVEVTVChzdHIsIHZhbCkgXAorKyAgaWYg KHNpemVvZiAoc3RyKSAhPSBzaXplb2YgKHZhbCkgXAorKyAgICAgIHx8IF9fYnVpbHRpbl9tZW1j bXAgKHN0ciwgdmFsLCBzaXplb2YgKHN0cikpICE9IDApIFwKKysgICAgX19idWlsdGluX2Fib3J0 ICgpCisrICBURVNUIChzMDAsICJhW2JdIik7CisrICBURVNUIChzMDEsICJbYV1iIik7CisrICBU RVNUIChzMDIsICJhYiIpOworKyAgVEVTVCAoczAzLCAiYVtiXSIpOworKyAgVEVTVCAoczA0LCAi W2FdYiIpOworKyAgVEVTVCAoczA1LCAiYWIiKTsKKysgIFRFU1QgKHMwNiwgImFbYl0iKTsKKysg IFRFU1QgKHMwNywgIlthXWIiKTsKKysgIFRFU1QgKHMwOCwgImFiIik7CisrICBURVNUIChzMDks ICJhW2JdIik7CisrICBURVNUIChzMTAsICJbYV1iIik7CisrICBURVNUIChzMTEsICJhYiIpOwor KyAgVEVTVCAodTAzLCB1ImFbYl0iKTsKKysgIFRFU1QgKHUwNCwgdSJbYV1iIik7CisrICBURVNU ICh1MDUsIHUiYWIiKTsKKysgIFRFU1QgKHUwNiwgdSJhW2JdIik7CisrICBURVNUICh1MDcsIHUi W2FdYiIpOworKyAgVEVTVCAodTA4LCB1ImFiIik7CisrICBURVNUICh1MDksIHUiYVtiXSIpOwor KyAgVEVTVCAodTEwLCB1IlthXWIiKTsKKysgIFRFU1QgKHUxMSwgdSJhYiIpOworKyAgVEVTVCAo VTAzLCBVImFbYl0iKTsKKysgIFRFU1QgKFUwNCwgVSJbYV1iIik7CisrICBURVNUIChVMDUsIFUi YWIiKTsKKysgIFRFU1QgKFUwNiwgVSJhW2JdIik7CisrICBURVNUIChVMDcsIFUiW2FdYiIpOwor KyAgVEVTVCAoVTA4LCBVImFiIik7CisrICBURVNUIChVMDksIFUiYVtiXSIpOworKyAgVEVTVCAo VTEwLCBVIlthXWIiKTsKKysgIFRFU1QgKFUxMSwgVSJhYiIpOworKyAgVEVTVCAoTDAzLCBMImFb Yl0iKTsKKysgIFRFU1QgKEwwNCwgTCJbYV1iIik7CisrICBURVNUIChMMDUsIEwiYWIiKTsKKysg IFRFU1QgKEwwNiwgTCJhW2JdIik7CisrICBURVNUIChMMDcsIEwiW2FdYiIpOworKyAgVEVTVCAo TDA4LCBMImFiIik7CisrICBURVNUIChMMDksIEwiYVtiXSIpOworKyAgVEVTVCAoTDEwLCBMIlth XWIiKTsKKysgIFRFU1QgKEwxMSwgTCJhYiIpOworKyAgcmV0dXJuIDA7CisrfQorLS0tIGdjYy90 ZXN0c3VpdGUvZysrLmRnL2V4dC9yYXctc3RyaW5nLTMuQy5qagkyMDA4LTA5LTEyIDEzOjI3OjA5 LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9yYXctc3RyaW5n LTMuQwkyMDA4LTA5LTEyIDE0OjE3OjU3LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1OCBA QAorKy8vIElmIGMrKzk4LCB0aGUgeyx1LHU4LFUsTH1SIHByZWZpeCBzaG91bGQgYmUgcGFyc2Vk IGFzIHNlcGFyYXRlCisrLy8gdG9rZW4uCisrLy8geyBkZy1kbyBjb21waWxlIH0KKysvLyB7IGRn LW9wdGlvbnMgIi1zdGQ9YysrOTgiIH0KKysKKytjb25zdCB2b2lkCSpzMAk9IFIiW2FdIjsJLy8g eyBkZy1lcnJvciAid2FzIG5vdCBkZWNsYXJlZCIgfQorKwkJLy8geyBkZy1lcnJvciAiZXhwZWN0 ZWQgJywnIG9yICc7JyIgIiIgeyB0YXJnZXQgKi0qLSogfSA2IH0KKytjb25zdCB2b2lkCSpzMQk9 IHVSIlthXSI7CS8vIHsgZGctZXJyb3IgIndhcyBub3QgZGVjbGFyZWQiIH0KKysJCS8vIHsgZGct ZXJyb3IgImV4cGVjdGVkICcsJyBvciAnOyciICIiIHsgdGFyZ2V0ICotKi0qIH0gOCB9CisrY29u c3Qgdm9pZAkqczIJPSBVUiJbYV0iOwkvLyB7IGRnLWVycm9yICJ3YXMgbm90IGRlY2xhcmVkIiB9 CisrCQkvLyB7IGRnLWVycm9yICJleHBlY3RlZCAnLCcgb3IgJzsnIiAiIiB7IHRhcmdldCAqLSot KiB9IDEwIH0KKytjb25zdCB2b2lkCSpzMwk9IHU4UiJbYV0iOwkvLyB7IGRnLWVycm9yICJ3YXMg bm90IGRlY2xhcmVkIiB9CisrCQkvLyB7IGRnLWVycm9yICJleHBlY3RlZCAnLCcgb3IgJzsnIiAi IiB7IHRhcmdldCAqLSotKiB9IDEyIH0KKytjb25zdCB2b2lkCSpzNAk9IExSIlthXSI7CS8vIHsg ZGctZXJyb3IgIndhcyBub3QgZGVjbGFyZWQiIH0KKysJCS8vIHsgZGctZXJyb3IgImV4cGVjdGVk ICcsJyBvciAnOyciICIiIHsgdGFyZ2V0ICotKi0qIH0gMTQgfQorKworK2NvbnN0IGludAlpMAk9 IFInYSc7CS8vIHsgZGctZXJyb3IgIndhcyBub3QgZGVjbGFyZWQiIH0KKysJCS8vIHsgZGctZXJy b3IgImV4cGVjdGVkICcsJyBvciAnOyciICIiIHsgdGFyZ2V0ICotKi0qIH0gMTcgfQorK2NvbnN0 IGludAlpMQk9IHVSJ2EnOwkvLyB7IGRnLWVycm9yICJ3YXMgbm90IGRlY2xhcmVkIiB9CisrCQkv LyB7IGRnLWVycm9yICJleHBlY3RlZCAnLCcgb3IgJzsnIiAiIiB7IHRhcmdldCAqLSotKiB9IDE5 IH0KKytjb25zdCBpbnQJaTIJPSBVUidhJzsJLy8geyBkZy1lcnJvciAid2FzIG5vdCBkZWNsYXJl ZCIgfQorKwkJLy8geyBkZy1lcnJvciAiZXhwZWN0ZWQgJywnIG9yICc7JyIgIiIgeyB0YXJnZXQg Ki0qLSogfSAyMSB9CisrY29uc3QgaW50CWkzCT0gdThSJ2EnOwkvLyB7IGRnLWVycm9yICJ3YXMg bm90IGRlY2xhcmVkIiB9CisrCQkvLyB7IGRnLWVycm9yICJleHBlY3RlZCAnLCcgb3IgJzsnIiAi IiB7IHRhcmdldCAqLSotKiB9IDIzIH0KKytjb25zdCBpbnQJaTQJPSBMUidhJzsJLy8geyBkZy1l cnJvciAid2FzIG5vdCBkZWNsYXJlZCIgfQorKwkJLy8geyBkZy1lcnJvciAiZXhwZWN0ZWQgJywn IG9yICc7JyIgIiIgeyB0YXJnZXQgKi0qLSogfSAyNSB9CisrCisrI2RlZmluZSBSCSJhIgorKyNk ZWZpbmUgdVIJImIiCisrI2RlZmluZSBVUgkiYyIKKysjZGVmaW5lIHU4UgkiZCIKKysjZGVmaW5l IExSCSJlIgorKworK2NvbnN0IHZvaWQJKnM1CT0gUiJbYV0iOworK2NvbnN0IHZvaWQJKnM2CT0g dVIiW2FdIjsKKytjb25zdCB2b2lkCSpzNwk9IFVSIlthXSI7CisrY29uc3Qgdm9pZAkqczgJPSB1 OFIiW2FdIjsKKytjb25zdCB2b2lkCSpzOQk9IExSIlthXSI7CisrCisrI3VuZGVmIFIKKysjdW5k ZWYgdVIKKysjdW5kZWYgVVIKKysjdW5kZWYgdThSCisrI3VuZGVmIExSCisrCisrI2RlZmluZSBS CTEgKworKyNkZWZpbmUgdVIJMiArCisrI2RlZmluZSBVUgkzICsKKysjZGVmaW5lIHU4Ugk0ICsK KysjZGVmaW5lIExSCTUgKworKworK2NvbnN0IGludAlpNQk9IFInYSc7CisrY29uc3QgaW50CWk2 CT0gdVInYSc7CisrY29uc3QgaW50CWk3CT0gVVInYSc7CisrY29uc3QgaW50CWk4CT0gdThSJ2En OworK2NvbnN0IGludAlpOQk9IExSJ2EnOworKworK2ludCBtYWluICgpIHt9CistLS0gZ2NjL3Rl c3RzdWl0ZS9nKysuZGcvZXh0L3Jhdy1zdHJpbmctNC5DLmpqCTIwMDgtMDktMTIgMTM6Mjc6MDku MDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3Jhdy1zdHJpbmct NC5DCTIwMDgtMDktMTIgMTQ6MTg6MjMuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDI4IEBA CisrLy8gUiBpcyBub3QgYXBwbGljYWJsZSBmb3IgY2hhcmFjdGVyIGxpdGVyYWxzLgorKy8vIHsg ZGctZG8gY29tcGlsZSB9CisrLy8geyBkZy1vcHRpb25zICItc3RkPWMrKzB4IiB9CisrCisrY29u c3QgaW50CWkwCT0gUidhJzsJLy8geyBkZy1lcnJvciAid2FzIG5vdCBkZWNsYXJlZCIgfQorKwkJ Ly8geyBkZy1lcnJvciAiZXhwZWN0ZWQgJywnIG9yICc7JyIgIiIgeyB0YXJnZXQgKi0qLSogfSA1 IH0KKytjb25zdCBpbnQJaTEJPSB1UidhJzsJLy8geyBkZy1lcnJvciAid2FzIG5vdCBkZWNsYXJl ZCIgfQorKwkJLy8geyBkZy1lcnJvciAiZXhwZWN0ZWQgJywnIG9yICc7JyIgIiIgeyB0YXJnZXQg Ki0qLSogfSA3IH0KKytjb25zdCBpbnQJaTIJPSBVUidhJzsJLy8geyBkZy1lcnJvciAid2FzIG5v dCBkZWNsYXJlZCIgfQorKwkJLy8geyBkZy1lcnJvciAiZXhwZWN0ZWQgJywnIG9yICc7JyIgIiIg eyB0YXJnZXQgKi0qLSogfSA5IH0KKytjb25zdCBpbnQJaTMJPSB1OFInYSc7CS8vIHsgZGctZXJy b3IgIndhcyBub3QgZGVjbGFyZWQiIH0KKysJCS8vIHsgZGctZXJyb3IgImV4cGVjdGVkICcsJyBv ciAnOyciICIiIHsgdGFyZ2V0ICotKi0qIH0gMTEgfQorK2NvbnN0IGludAlpNAk9IExSJ2EnOwkv LyB7IGRnLWVycm9yICJ3YXMgbm90IGRlY2xhcmVkIiB9CisrCQkvLyB7IGRnLWVycm9yICJleHBl Y3RlZCAnLCcgb3IgJzsnIiAiIiB7IHRhcmdldCAqLSotKiB9IDEzIH0KKysKKysjZGVmaW5lIFIJ MSArCisrI2RlZmluZSB1UgkyICsKKysjZGVmaW5lIFVSCTMgKworKyNkZWZpbmUgdThSCTQgKwor KyNkZWZpbmUgTFIJNSArCisrCisrY29uc3QgaW50CWk1CT0gUidhJzsKKytjb25zdCBpbnQJaTYJ PSB1UidhJzsKKytjb25zdCBpbnQJaTcJPSBVUidhJzsKKytjb25zdCBpbnQJaTgJPSB1OFInYSc7 CisrY29uc3QgaW50CWk5CT0gTFInYSc7CisrCisraW50IG1haW4gKCkge30KKy0tLSBnY2MvdGVz dHN1aXRlL2crKy5kZy9leHQvcmF3LXN0cmluZy01LkMuamoJMjAwOC0wOS0xMiAxMzo0OTo1OC4w MDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvcmF3LXN0cmluZy01 LkMJMjAwOC0wOS0xMiAxNDoxODozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjMgQEAK KysvLyB7IGRnLWRvIGNvbXBpbGUgfQorKy8vIHsgZGctb3B0aW9ucyAiLXN0ZD1jKysweCIgfQor KworK2NvbnN0IHZvaWQgKnMwID0gUiIwMTIzNDU2Nzg5YWJjZGVmZ1tdMDEyMzQ1Njc4OWFiY2Rl ZmciOworKwkvLyB7IGRnLWVycm9yICJyYXcgc3RyaW5nIGRlbGltaXRlciBsb25nZXIiICIiIHsg dGFyZ2V0ICotKi0qIH0gNCB9CisrCS8vIHsgZGctZXJyb3IgInN0cmF5IiAiIiB7IHRhcmdldCAq LSotKiB9IDQgfQorK2NvbnN0IHZvaWQgKnMxID0gUiIgW10gIjsKKysJLy8geyBkZy1lcnJvciAi aW52YWxpZCBjaGFyYWN0ZXIiICIiIHsgdGFyZ2V0ICotKi0qIH0gNyB9CisrCS8vIHsgZGctZXJy b3IgInN0cmF5IiAiIiB7IHRhcmdldCAqLSotKiB9IDcgfQorK2NvbnN0IHZvaWQgKnMyID0gUiIJ W10JIjsKKysJLy8geyBkZy1lcnJvciAiaW52YWxpZCBjaGFyYWN0ZXIiICIiIHsgdGFyZ2V0ICot Ki0qIH0gMTAgfQorKwkvLyB7IGRnLWVycm9yICJzdHJheSIgIiIgeyB0YXJnZXQgKi0qLSogfSAx MCB9CisrY29uc3Qgdm9pZCAqczMgPSBSIl1bXV0iOworKwkvLyB7IGRnLWVycm9yICJpbnZhbGlk IGNoYXJhY3RlciIgIiIgeyB0YXJnZXQgKi0qLSogfSAxMyB9CisrCS8vIHsgZGctZXJyb3IgInN0 cmF5IiAiIiB7IHRhcmdldCAqLSotKiB9IDEzIH0KKytjb25zdCB2b2lkICpzNCA9IFIiQFtdQCI7 CisrCS8vIHsgZGctZXJyb3IgImludmFsaWQgY2hhcmFjdGVyIiAiIiB7IHRhcmdldCAqLSotKiB9 IDE2IH0KKysJLy8geyBkZy1lcnJvciAic3RyYXkiICIiIHsgdGFyZ2V0ICotKi0qIH0gMTYgfQor K2NvbnN0IHZvaWQgKnM1ID0gUiIkW10kIjsKKysJLy8geyBkZy1lcnJvciAiaW52YWxpZCBjaGFy YWN0ZXIiICIiIHsgdGFyZ2V0ICotKi0qIH0gMTkgfQorKwkvLyB7IGRnLWVycm9yICJzdHJheSIg IiIgeyB0YXJnZXQgKi0qLSogfSAxOSB9CisrCisraW50IG1haW4gKCkge30KKy0tLSBnY2MvdGVz dHN1aXRlL2crKy5kZy9leHQvcmF3LXN0cmluZy02LkMuamoJMjAwOC0wOS0xMiAxMzo1OTozMy4w MDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvcmF3LXN0cmluZy02 LkMJMjAwOC0wOS0xMiAxNDoyMDoyMS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNSBAQAor Ky8vIHsgZGctZG8gY29tcGlsZSB9CisrLy8geyBkZy1vcHRpb25zICItc3RkPWMrKzB4IiB9Cisr CisrY29uc3Qgdm9pZCAqczAgPSBSIm91Y2hbXW91Q2giOwkvLyB7IGRnLWVycm9yICJhdCBlbmQg b2YgaW5wdXQiIH0KKysJLy8geyBkZy1lcnJvciAidW50ZXJtaW5hdGVkIHJhdyBzdHJpbmciICIi IHsgdGFyZ2V0ICotKi0qIH0gNiB9CistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3Jhdy1z dHJpbmctNy5DLmpqCTIwMDgtMDktMTIgMTQ6MzQ6NTQuMDAwMDAwMDAwICswMjAwCisrKysgZ2Nj L3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3Jhdy1zdHJpbmctNy5DCTIwMDgtMDktMTIgMTQ6MzY6NDAu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIzIEBACisrLy8gVGhlIHRyYWlsaW5nIHdoaXRl c3BhY2UgYWZ0ZXIgXCBhbmQgYmVmb3JlIG5ld2xpbmUgZXh0ZW5zaW9uCisrLy8gYnJlYWtzIGZ1 bGwgY29tcGxpYW5jZSBmb3IgcmF3IHN0cmluZ3MuCisrLy8geyBkZy1kbyBydW4geyB4ZmFpbCAq LSotKiB9IH0KKysvLyB7IGRnLW9wdGlvbnMgIi1zdGQ9YysrMHgiIH0KKysKKysvLyBOb3RlLCB0 aGVyZSBpcyBhIHNpbmdsZSBzcGFjZSBhZnRlciBcIG9uIHRoZSBmb2xsb3dpbmcgbGluZS4KKytj b25zdCBjaGFyICpzMCA9IFIiW1wgCisrXSI7CisrLy8geyBkZy1ib2d1cyAiYmFja3NsYXNoIGFu ZCBuZXdsaW5lIHNlcGFyYXRlZCBieSBzcGFjZSIgIiIgeyB4ZmFpbCAqLSotKiB9IDcgfQorKwor Ky8vIE5vdGUsIHRoZXJlIGlzIGEgc2luZ2xlIHRhYiBhZnRlciBcIG9uIHRoZSBmb2xsb3dpbmcg bGluZS4KKytjb25zdCBjaGFyICpzMSA9IFIiW1wJCisrXSI7CisrLy8geyBkZy1ib2d1cyAiYmFj a3NsYXNoIGFuZCBuZXdsaW5lIHNlcGFyYXRlZCBieSBzcGFjZSIgIiIgeyB4ZmFpbCAqLSotKiB9 IDEyIH0KKysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysgIGlmIChfX2J1aWx0aW5fc3RyY21w IChzMCwgIlxcIFxuIikgIT0gMAorKyAgICAgIHx8IF9fYnVpbHRpbl9zdHJjbXAgKHMxLCAiXFxc dFxuIikgIT0gMCkKKysgICAgX19idWlsdGluX2Fib3J0ICgpOworKyAgcmV0dXJuIDA7CisrfQor LS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC91dGY4LTEuQy5qagkyMDA4LTA5LTEyIDEwOjAx OjQ3LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC91dGY4LTEu QwkyMDA4LTA5LTEyIDE0OjE4OjUzLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw0NSBAQAor Ky8vIHsgZGctZG8gcnVuIH0KKysvLyB7IGRnLXJlcXVpcmUtaWNvbnYgIklTTy04ODU5LTIiIH0K KysvLyB7IGRnLW9wdGlvbnMgIi1zdGQ9YysrMHggLWZleGVjLWNoYXJzZXQ9SVNPLTg4NTktMiIg fQorKworK2NvbnN0IGNoYXIgKnN0cjEgPSAiaFx1MDBlMVxVMDAwMDAxMERreSAiOworK2NvbnN0 IGNoYXIgKnN0cjIgPSAiXHUwMTBkXHUwMEUxcmt5XG4iOworK2NvbnN0IGNoYXIgKnN0cjMgPSB1 OCJoXHUwMGUxXFUwMDAwMDEwRGt5ICI7CisrY29uc3QgY2hhciAqc3RyNCA9IHU4Ilx1MDEwZFx1 MDBFMXJreVxuIjsKKytjb25zdCBjaGFyICpzdHI1ID0gImhcdTAwZTFcVTAwMDAwMTBEa3kgIiAi XHUwMTBkXHUwMEUxcmt5XG4iOworK2NvbnN0IGNoYXIgKnN0cjYgPSB1OCJoXHUwMGUxXFUwMDAw MDEwRGt5ICIgIlx1MDEwZFx1MDBFMXJreVxuIjsKKytjb25zdCBjaGFyICpzdHI3ID0gImhcdTAw ZTFcVTAwMDAwMTBEa3kgIiB1OCJcdTAxMGRcdTAwRTFya3lcbiI7CisrI2RlZmluZSB1OAorK2Nv bnN0IGNoYXIgKnN0cjggPSB1OCJoXHUwMGUxXFUwMDAwMDEwRGt5ICIgdTgiXHUwMTBkXHUwMEUx cmt5XG4iOworKworK2NvbnN0IGNoYXIgbGF0aW4yXzFbXSA9ICJceDY4XHhlMVx4ZThceDZiXHg3 OVx4MjAiOworK2NvbnN0IGNoYXIgbGF0aW4yXzJbXSA9ICJceGU4XHhlMVx4NzJceDZiXHg3OVxu IjsKKytjb25zdCBjaGFyIHV0ZjhfMVtdID0gIlx4NjhceGMzXHhhMVx4YzRceDhkXHg2Ylx4Nzlc eDIwIjsKKytjb25zdCBjaGFyIHV0ZjhfMltdID0gIlx4YzRceDhkXHhjM1x4YTFceDcyXHg2Ylx4 NzlcbiI7CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBpZiAoX19idWlsdGluX3N0cmNt cCAoc3RyMSwgbGF0aW4yXzEpICE9IDAKKysgICAgICB8fCBfX2J1aWx0aW5fc3RyY21wIChzdHIy LCBsYXRpbjJfMikgIT0gMAorKyAgICAgIHx8IF9fYnVpbHRpbl9zdHJjbXAgKHN0cjMsIHV0Zjhf MSkgIT0gMAorKyAgICAgIHx8IF9fYnVpbHRpbl9zdHJjbXAgKHN0cjQsIHV0ZjhfMikgIT0gMAor KyAgICAgIHx8IF9fYnVpbHRpbl9zdHJuY21wIChzdHI1LCBsYXRpbjJfMSwgc2l6ZW9mIChsYXRp bjJfMSkgLSAxKSAhPSAwCisrICAgICAgfHwgX19idWlsdGluX3N0cmNtcCAoc3RyNSArIHNpemVv ZiAobGF0aW4yXzEpIC0gMSwgbGF0aW4yXzIpICE9IDAKKysgICAgICB8fCBfX2J1aWx0aW5fc3Ry bmNtcCAoc3RyNiwgdXRmOF8xLCBzaXplb2YgKHV0ZjhfMSkgLSAxKSAhPSAwCisrICAgICAgfHwg X19idWlsdGluX3N0cmNtcCAoc3RyNiArIHNpemVvZiAodXRmOF8xKSAtIDEsIHV0ZjhfMikgIT0g MAorKyAgICAgIHx8IF9fYnVpbHRpbl9zdHJuY21wIChzdHI3LCB1dGY4XzEsIHNpemVvZiAodXRm OF8xKSAtIDEpICE9IDAKKysgICAgICB8fCBfX2J1aWx0aW5fc3RyY21wIChzdHI3ICsgc2l6ZW9m ICh1dGY4XzEpIC0gMSwgdXRmOF8yKSAhPSAwCisrICAgICAgfHwgX19idWlsdGluX3N0cm5jbXAg KHN0cjgsIHV0ZjhfMSwgc2l6ZW9mICh1dGY4XzEpIC0gMSkgIT0gMAorKyAgICAgIHx8IF9fYnVp bHRpbl9zdHJjbXAgKHN0cjggKyBzaXplb2YgKHV0ZjhfMSkgLSAxLCB1dGY4XzIpICE9IDApCisr ICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKysgIGlmIChzaXplb2YgKCJhIiB1OCJiIlswXSkgIT0g MQorKyAgICAgIHx8IHNpemVvZiAodTgiYSIgImIiWzBdKSAhPSAxCisrICAgICAgfHwgc2l6ZW9m ICh1OCJhIiB1OCJiIlswXSkgIT0gMQorKyAgICAgIHx8IHNpemVvZiAoImEiICJcdTAxMGQiKSAh PSAzCisrICAgICAgfHwgc2l6ZW9mICgiYSIgdTgiXHUwMTBkIikgIT0gNAorKyAgICAgIHx8IHNp emVvZiAodTgiYSIgIlx1MDEwZCIpICE9IDQKKysgICAgICB8fCBzaXplb2YgKHU4ImEiICJcdTAx MGQiKSAhPSA0KQorKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisrICByZXR1cm4gMDsKKyt9Cist LS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3V0ZjgtMi5DLmpqCTIwMDgtMDktMTIgMTE6Mjc6 NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3V0ZjgtMi5D CTIwMDgtMDktMTIgMTQ6MTk6MDEuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIxIEBACisr Ly8geyBkZy1kbyBjb21waWxlIH0KKysvLyB7IGRnLW9wdGlvbnMgIi1zdGQ9YysrMHgiIH0KKysK Kytjb25zdCBjaGFyCXMwW10JPSB1OCJhYiI7CisrY29uc3QgY2hhcjE2X3QJczFbXQk9IHU4ImFi IjsJLy8geyBkZy1lcnJvciAiZnJvbSBub24td2lkZSIgfQorK2NvbnN0IGNoYXIzMl90ICBzMltd ICAgID0gdTgiYWIiOwkvLyB7IGRnLWVycm9yICJmcm9tIG5vbi13aWRlIiB9CisrY29uc3Qgd2No YXJfdCAgIHMzW10gICAgPSB1OCJhYiI7CS8vIHsgZGctZXJyb3IgImZyb20gbm9uLXdpZGUiIH0K KysKKytjb25zdCBjaGFyICAgICAgdDBbMF0gICA9IHU4ImFiIjsJLy8geyBkZy1lcnJvciAiY2hh cnMgaXMgdG9vIGxvbmciIH0KKytjb25zdCBjaGFyICAgICAgdDFbMV0gICA9IHU4ImFiIjsJLy8g eyBkZy1lcnJvciAiY2hhcnMgaXMgdG9vIGxvbmciIH0KKytjb25zdCBjaGFyICAgICAgdDJbMl0g ICA9IHU4ImFiIjsJLy8geyBkZy1lcnJvciAiY2hhcnMgaXMgdG9vIGxvbmciIH0KKytjb25zdCBj aGFyICAgICAgdDNbM10gICA9IHU4ImFiIjsKKytjb25zdCBjaGFyICAgICAgdDRbNF0gICA9IHU4 ImFiIjsKKysKKytjb25zdCBjaGFyICAgICAgdTBbMF0gICA9IHU4Ilx1MjE2MC4iOwkvLyB7IGRn LWVycm9yICJjaGFycyBpcyB0b28gbG9uZyIgfQorK2NvbnN0IGNoYXIgICAgICB1MVsxXSAgID0g dTgiXHUyMTYwLiI7CS8vIHsgZGctZXJyb3IgImNoYXJzIGlzIHRvbyBsb25nIiB9CisrY29uc3Qg Y2hhciAgICAgIHUyWzJdICAgPSB1OCJcdTIxNjAuIjsJLy8geyBkZy1lcnJvciAiY2hhcnMgaXMg dG9vIGxvbmciIH0KKytjb25zdCBjaGFyICAgICAgdTNbM10gICA9IHU4Ilx1MjE2MC4iOwkvLyB7 IGRnLWVycm9yICJjaGFycyBpcyB0b28gbG9uZyIgfQorK2NvbnN0IGNoYXIgICAgICB1NFs0XSAg ID0gdTgiXHUyMTYwLiI7CS8vIHsgZGctZXJyb3IgImNoYXJzIGlzIHRvbyBsb25nIiB9CisrY29u c3QgY2hhciAgICAgIHU1WzVdICAgPSB1OCJcdTIxNjAuIjsKKytjb25zdCBjaGFyICAgICAgdTZb Nl0gICA9IHU4Ilx1MjE2MC4iOworLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC91dGYtYmFk Y29uY2F0Mi5DLmpqCTIwMDgtMDktMTIgMTE6Mjg6MjYuMDAwMDAwMDAwICswMjAwCisrKysgZ2Nj L3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3V0Zi1iYWRjb25jYXQyLkMJMjAwOC0wOS0xMiAxNDoxOTox Ny4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTUgQEAKKysvLyBUZXN0IHVuc3VwcG9ydGVk IGNvbmNhdGVuYXRpb24gb2YgVVRGLTggc3RyaW5nIGxpdGVyYWxzLgorKy8vIHsgZGctZG8gY29t cGlsZSB9CisrLy8geyBkZy1vcHRpb25zICItc3RkPWMrKzB4IiB9CisrCisrY29uc3Qgdm9pZCAq czAJPSB1OCJhIiAgICJiIjsKKytjb25zdCB2b2lkICpzMQk9ICAgImEiIHU4ImIiOworK2NvbnN0 IHZvaWQgKnMyCT0gdTgiYSIgdTgiYiI7CisrY29uc3Qgdm9pZCAqczMJPSB1OCJhIiAgdSJiIjsJ Ly8geyBkZy1lcnJvciAibm9uLXN0YW5kYXJkIGNvbmNhdGVuYXRpb24iIH0KKytjb25zdCB2b2lk ICpzNAk9ICB1ImEiIHU4ImIiOwkvLyB7IGRnLWVycm9yICJub24tc3RhbmRhcmQgY29uY2F0ZW5h dGlvbiIgfQorK2NvbnN0IHZvaWQgKnM1CT0gdTgiYSIgIFUiYiI7CS8vIHsgZGctZXJyb3IgIm5v bi1zdGFuZGFyZCBjb25jYXRlbmF0aW9uIiB9CisrY29uc3Qgdm9pZCAqczYJPSAgVSJhIiB1OCJi IjsJLy8geyBkZy1lcnJvciAibm9uLXN0YW5kYXJkIGNvbmNhdGVuYXRpb24iIH0KKytjb25zdCB2 b2lkICpzNwk9IHU4ImEiICBMImIiOwkvLyB7IGRnLWVycm9yICJub24tc3RhbmRhcmQgY29uY2F0 ZW5hdGlvbiIgfQorK2NvbnN0IHZvaWQgKnM4CT0gIEwiYSIgdTgiYiI7CS8vIHsgZGctZXJyb3Ig Im5vbi1zdGFuZGFyZCBjb25jYXRlbmF0aW9uIiB9CisrCisraW50IG1haW4gKCkge30KKy0tLSBn Y2MvdGVzdHN1aXRlL2crKy5kZy9leHQvdXRmLWRmbHQyLkMuamoJMjAwOC0wOS0xMiAxMTozMjow My4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvdXRmLWRmbHQy LkMJMjAwOC0wOS0xMiAxNDoxOToyOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTIgQEAK KysvLyBJbiBDKysweCwgdGhlIHU4IHByZWZpeCBzaG91bGQgYmUgcGFyc2VkIGFzIHNlcGFyYXRl IHRva2Vucy4KKysvLyB7IGRnLWRvIGNvbXBpbGUgfQorKy8vIHsgZGctb3B0aW9ucyAiLXN0ZD1j Kys5OCIgfQorKworK2NvbnN0IHZvaWQJKnMwID0gdTgiYSI7CQkvLyB7IGRnLWVycm9yICJ3YXMg bm90IGRlY2xhcmVkIiB9CisrCQkvLyB7IGRnLWVycm9yICJleHBlY3RlZCAnLCcgb3IgJzsnIiAi IiB7IHRhcmdldCAqLSotKiB9IDUgfQorKworKyNkZWZpbmUgdTgJImEiCisrCisrY29uc3Qgdm9p ZAkqczEgPSB1OCJhIjsKKysKKytpbnQgbWFpbiAoKSB7fQoKZGlmZiAtLWdpdCBhL3NvdXJjZXMg Yi9zb3VyY2VzCmluZGV4IDBmMDIzODQuLjliMTU0ZjQgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysr IGIvc291cmNlcwpAQCAtMSwzICsxLDMgQEAKIDI2NTlmMDljMmU0M2VmOGI3ZDQ0MDYzMjE3NTNm MWIyICBmYXN0amFyLTAuOTcudGFyLmd6Ci04OTYyZmJkM2M4MDA3Y2Q4MGY1ZDUwZGU2YTgwMDFi YSAgZ2NjLTQuNC4wLTIwMDkwMjAzLnRhci5iejIKK2I0MTFkOTZmNmI4MGQ4MTE0NWRiMjdlZTYz OWI4ZTFkICBnY2MtNC40LjAtMjAwOTAyMDQudGFyLmJ6MgogNzE2YjdhMDgyM2Y5NmM5ZDAyYzE3 MDNhOWM0N2QzODcgIGNsb29nLXBwbC0wLjE1LnRhci5nego=