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: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/gsi-openssh] epel10.3: Based on openssh-9.9p1-32.el10 Date: Tue, 22 Sep 2026 20:00:06 GMT Message-ID: <179010720667.1.11987952346749293201.rpms-gsi-openssh-c69d9b538f65@fedoraproject.org> List-ID: X-Git-Repo: rpms/gsi-openssh X-Git-Branch: epel10.3 X-Git-Rev: c69d9b538f65110ba2f26df5e186fa7e933f922e QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ3NpLW9wZW5zc2gK QnJhbmNoIDogZXBlbDEwLjMKQ29tbWl0IDogYzY5ZDliNTM4ZjY1MTEwYmEyZjI2ZGY1ZTE4NmZh N2U5MzNmOTIyZQpBdXRob3IgOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2lj cy51dS5zZT4KRGF0ZSAgIDogMjAyNi0wOS0yMlQyMDoyNTozOSswMjowMApTdGF0cyAgOiArNzcw Ly0xNzkgaW4gMTQgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9y Zy9ycG1zL2dzaS1vcGVuc3NoL2MvYzY5ZDliNTM4ZjY1MTEwYmEyZjI2ZGY1ZTE4NmZhN2U5MzNm OTIyZT9icmFuY2g9ZXBlbDEwLjMKCkxvZzoKQmFzZWQgb24gb3BlbnNzaC05LjlwMS0zMi5lbDEw CgotLS0KZGlmZiAtLWdpdCBhL2dzaS1vcGVuc3NoLnNwZWMgYi9nc2ktb3BlbnNzaC5zcGVjCmlu ZGV4IGI4MGNmNDAuLjUyNTMzZDQgMTAwNjQ0Ci0tLSBhL2dzaS1vcGVuc3NoLnNwZWMKKysrIGIv Z3NpLW9wZW5zc2guc3BlYwpAQCAtMjgsNyArMjgsNyBAQAogU3VtbWFyeTogQW4gaW1wbGVtZW50 YXRpb24gb2YgdGhlIFNTSCBwcm90b2NvbCB3aXRoIEdTSSBhdXRoZW50aWNhdGlvbgogTmFtZTog Z3NpLW9wZW5zc2gKIFZlcnNpb246ICV7b3BlbnNzaF92ZXJ9Ci1SZWxlYXNlOiA2JXs/ZGlzdH0K K1JlbGVhc2U6IDclez9kaXN0fQogUHJvdmlkZXM6IGdzaXNzaCA9ICV7dmVyc2lvbn0tJXtyZWxl YXNlfQogT2Jzb2xldGVzOiBnc2lzc2ggPCA1LjhwMi0yCiBVUkw6IGh0dHA6Ly93d3cub3BlbnNz aC5jb20vcG9ydGFibGUuaHRtbApAQCAtMjMxLDYgKzIzMSwyNiBAQCBQYXRjaDEwNDM6IG9wZW5z c2gtOS45cDEtYXV0aG9yaXplZC1rZXlzLXByaW5jaXBsZXMtb3B0aW9uLnBhdGNoCiAjIHVwc3Ry ZWFtIDYwN2JkODcxZWMwMjllOWFhMjJlNjMyYTIyNTQ3MjUwZjNjYWUyMjMKICMgdXBzdHJlYW0g MTM0MGQzZmE4ZTRiYjEyMjkwNmE4MjE1OWM0YzliOTE1ODRkNjVjZQogUGF0Y2gxMDQ0OiBvcGVu c3NoLTkuOXAxLXByb3h5anVtcC11c2VybmFtZS12YWxpZGl0eS1jaGVja3MucGF0Y2gKKyMgdXBz dHJlYW0gMzY0ODAxODFmYTIyZjk4ZTE4MGI0ZjllMTAyMDM0ODBjMDM0NmM3OAorUGF0Y2gxMDQ1 OiBvcGVuc3NoLTkuOXAxLXNjcC1yZW1vdGUtZ2xvYi5wYXRjaAorIyB1cHN0cmVhbSBlOGJkZmIx NTFhMzU2ZDAxNzFmZWE0MTk0ZGQyMDVmYmIyNTJiZTIzCitQYXRjaDEwNDY6IG9wZW5zc2gtOS45 cDEtY3ZlLTIwMjYtNjAwMDIucGF0Y2gKKyMgdXBzdHJlYW0gOGIwNWJiZWIyOTNjNWY3Nzc5MTVl MzdlOWVkNDNhMDZmYjhlNzYxNAorIyB1cHN0cmVhbSA1YTVlNDc3NDBiNjQ2NmQ1ODI0MmFjYTI4 YjllNTg0YmFiNGNjZjFkCitQYXRjaDEwNDc6IG9wZW5zc2gtOS45cDEtY29weS1kYXRhLWV4dC1z ZWxmLWNvcHkucGF0Y2gKKyMgdXBzdHJlYW0gNmE1NzA4MWRjMzVhY2YzZWUyOTgxMDhkNGJjMzU4 MDQ4OTYwOGQ1ZgorUGF0Y2gxMDQ4OiBvcGVuc3NoLTEwLjRwMS1DVkUtMjAyNi01OTk5NS5wYXRj aAorIyB1cHN0cmVhbSA4ZGZlN2VkNmUyZmQ5ODhkZTA4ZGY1MDgzNTVhMTk2Yjk1NmIyNzUzCisj IHVwc3RyZWFtIGQzMjJmMmNjZjdkYTA5NWNlOTRkMWQ5OWNiNTYzMjQ2ZjYxNDg3YjAKKyMgY29t YmluZXMgQ1ZFLTIwMjYtNTk5OTkgYW5kIENWRS0yMDI2LTczMjgzCisjIGRvd25zdHJlYW0gc3Bl Y2lmaWMgZml4LCBkcm9wIG9uIHJlYmFzZQorUGF0Y2gxMDQ5OiBvcGVuc3NoLTEwLjRwMS1DVkUt MjAyNi01OTk5OS5wYXRjaAorIyB1cHN0cmVhbSA2YTU3MDgxZGMzNWFjZjNlZTI5ODEwOGQ0YmMz NTgwNDg5NjA4ZDVmCitQYXRjaDEwNTA6IG9wZW5zc2gtMTAuNXAxLUNWRS0yMDI2LTczMjgxLnBh dGNoCisjIHVwc3RyZWFtIDk5MTBkNWVmNTMxMjRjZTExNTdkNTdiYzExZTIyMjY1OGFhNDEyOTkK K1BhdGNoMTA1MTogb3BlbnNzaC0xMC41cDEtQ1ZFLTIwMjYtNzMyODIucGF0Y2gKKyMgdXBzdHJl YW0gZDQzYmE2MGM5MWNiMzIzY2E5MjEwNDliN2Q0M2IxOTA4YzMxODQ1NAorUGF0Y2gxMDUyOiBv cGVuc3NoLTkuOXAxLUNWRS0yMDI2LTYwMDAxLnBhdGNoCiAKICMgVGhpcyBpcyB0aGUgcGF0Y2gg dGhhdCBhZGRzIEdTSSBzdXBwb3J0CiAjIEJhc2VkIG9uIGhwbl9pc3NoZC1nc2kuNy41cDFiLnBh dGNoIGZyb20gR2xvYnVzIHVwc3RyZWFtCkBAIC00MjUsNiArNDQ1LDE0IEBAIGdwZ3YyIC0tcXVp ZXQgLS1rZXlyaW5nICV7U09VUkNFM30gJXtTT1VSQ0UxfSAle1NPVVJDRTB9CiAlcGF0Y2ggLVAg MTA0MiAtcDEgLWIgLmVjZHNhLWluY29tcGxldGUtYXBwbGljYXRpb24KICVwYXRjaCAtUCAxMDQz IC1wMSAtYiAuYXV0aG9yaXplZC1rZXlzLXByaW5jaXBsZXMtb3B0aW9uCiAlcGF0Y2ggLVAgMTA0 NCAtcDEgLWIgLnByb3h5anVtcC11c2VybmFtZS12YWxpZGl0eS1jaGVja3MKKyVwYXRjaCAtUCAx MDQ1IC1wMSAtYiAuc2NwLXJlbW90ZS1nbG9iCislcGF0Y2ggLVAgMTA0NiAtcDEgLWIgLmN2ZS0y MDI2LTYwMDAyCislcGF0Y2ggLVAgMTA0NyAtcDEgLWIgLmNvcHktZGF0YS1leHQtc2VsZi1jb3B5 CislcGF0Y2ggLVAgMTA0OCAtcDEgLWIgLkNWRS0yMDI2LTU5OTk1CislcGF0Y2ggLVAgMTA0OSAt cDEgLWIgLkNWRS0yMDI2LTU5OTk5CislcGF0Y2ggLVAgMTA1MCAtcDEgLWIgLkNWRS0yMDI2LTcz MjgxCislcGF0Y2ggLVAgMTA1MSAtcDEgLWIgLkNWRS0yMDI2LTczMjgyCislcGF0Y2ggLVAgMTA1 MiAtcDEgLWIgLkNWRS0yMDI2LTYwMDAxCiAKICVwYXRjaCAtUCAxMDAgLXAxIC1iIC5jb3Zlcml0 eQogCkBAIC02NTAsNiArNjc4LDkgQEAgZmkKICVnaG9zdCAlYXR0cigwNjQ0LHJvb3Qscm9vdCkg JXtfbG9jYWxzdGF0ZWRpcn0vbGliLy5nc2lzc2gtaG9zdC1rZXlzLW1pZ3JhdGlvbgogCiAlY2hh bmdlbG9nCisqIFR1ZSBTZXAgMjIgMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRA cGh5c2ljcy51dS5zZT4gLSA5LjlwMS03CistIEJhc2VkIG9uIG9wZW5zc2gtOS45cDEtMzIuZWwx MAorCiAqIEZyaSBNYXkgMjkgMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5 c2ljcy51dS5zZT4gLSA5LjlwMS02CiAtIEJhc2VkIG9uIG9wZW5zc2gtOS45cDEtMjYuZWwxMAog CgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC0xMC40cDEtQ1ZFLTIwMjYtNTk5OTUucGF0Y2ggYi9vcGVu c3NoLTEwLjRwMS1DVkUtMjAyNi01OTk5NS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4wYmE4Mzg4Ci0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzaC0xMC40cDEtQ1ZF LTIwMjYtNTk5OTUucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorZGlmZiAtLWdpdCBhL3NmdHAuYyBi L3NmdHAuYworaW5kZXggMGFiOTIwNmMyLi4wYjU3ZTA4MzMgMTAwNjQ0CistLS0gYS9zZnRwLmMK KysrKyBiL3NmdHAuYworQEAgLTIyODksMTMgKzIyODksOCBAQCBpbnRlcmFjdGl2ZV9sb29wKHN0 cnVjdCBzZnRwX2Nvbm4gKmNvbm4sIGNoYXIgKmZpbGUxLCBjaGFyICpmaWxlMikKKyAJCQkJcmV0 dXJuICgtMSk7CisgCQkJfQorIAkJfSBlbHNlIHsKKy0JCQkvKiBYWFggdGhpcyBpcyB3cm9uZyB3 cnQgcXVvdGluZyAqLworLQkJCXNucHJpbnRmKGNtZCwgc2l6ZW9mIGNtZCwgImdldCVzICVzJXMl cyIsCistCQkJICAgIGdsb2JhbF9hZmxhZyA/ICIgLWEiIDogIiIsIGRpciwKKy0JCQkgICAgZmls ZTIgPT0gTlVMTCA/ICIiIDogIiAiLAorLQkJCSAgICBmaWxlMiA9PSBOVUxMID8gIiIgOiBmaWxl Mik7CistCQkJZXJyID0gcGFyc2VfZGlzcGF0Y2hfY29tbWFuZChjb25uLCBjbWQsCistCQkJICAg ICZyZW1vdGVfcGF0aCwgc3RhcnRkaXIsIDEsIDApOworKwkJCWVyciA9IHByb2Nlc3NfZ2V0KGNv bm4sIGRpciwgZmlsZTIsIHJlbW90ZV9wYXRoLCAwLCAwLAorKwkJCSAgICBnbG9iYWxfYWZsYWcs IDApOworIAkJCWZyZWUoZGlyKTsKKyAJCQlmcmVlKHN0YXJ0ZGlyKTsKKyAJCQlmcmVlKHJlbW90 ZV9wYXRoKTsKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTEwLjRwMS1DVkUtMjAyNi01OTk5OS5wYXRj aCBiL29wZW5zc2gtMTAuNHAxLUNWRS0yMDI2LTU5OTk5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmIxYmY1OGMKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NoLTEw LjRwMS1DVkUtMjAyNi01OTk5OS5wYXRjaApAQCAtMCwwICsxLDc4IEBACitkaWZmIC0tZ2l0IGEv YXV0aC1vcHRpb25zLmMgYi9hdXRoLW9wdGlvbnMuYworaW5kZXggZTE1ZjYwMGFiLi5jNWZjNGU1 OWMgMTAwNjQ0CistLS0gYS9hdXRoLW9wdGlvbnMuYworKysrIGIvYXV0aC1vcHRpb25zLmMKK0BA IC0yNDIsNiArMjQyLDcgQEAgc3NoYXV0aG9wdF9uZXdfd2l0aF9rZXlzX2RlZmF1bHRzKHZvaWQp CisgCXJldC0+cGVybWl0X3gxMV9mb3J3YXJkaW5nX2ZsYWcgPSAxOworIAlyZXQtPnBlcm1pdF9w dHlfZmxhZyA9IDE7CisgCXJldC0+cGVybWl0X3VzZXJfcmMgPSAxOworKwlyZXQtPnBlcm1pdF90 dW5fZmxhZyA9IDE7CisgCXJldHVybiByZXQ7CisgfQorCitAQCAtMzQ1LDYgKzM0Niw3IEBAIHNz aGF1dGhvcHRfcGFyc2UoY29uc3QgY2hhciAqb3B0cywgY29uc3QgY2hhciAqKmVycnN0cnApCisg CQkJcmV0LT5wZXJtaXRfeDExX2ZvcndhcmRpbmdfZmxhZyA9IDA7CisgCQkJcmV0LT5wZXJtaXRf cHR5X2ZsYWcgPSAwOworIAkJCXJldC0+cGVybWl0X3VzZXJfcmMgPSAwOworKwkJCXJldC0+cGVy bWl0X3R1bl9mbGFnID0gMDsKKyAJCX0gZWxzZSBpZiAoKHIgPSBvcHRfZmxhZygiY2VydC1hdXRo b3JpdHkiLCAwLCAmb3B0cykpICE9IC0xKSB7CisgCQkJcmV0LT5jZXJ0X2F1dGhvcml0eSA9IHI7 CisgCQl9IGVsc2UgaWYgKChyID0gb3B0X2ZsYWcoInBvcnQtZm9yd2FyZGluZyIsIDEsICZvcHRz KSkgIT0gLTEpIHsKK0BAIC02MDEsNiArNjAzLDcgQEAgc3NoYXV0aG9wdF9tZXJnZShjb25zdCBz dHJ1Y3Qgc3NoYXV0aG9wdCAqcHJpbWFyeSwKKyAJT1BURkxBR19BTkQocGVybWl0X3gxMV9mb3J3 YXJkaW5nX2ZsYWcpOworIAlPUFRGTEFHX0FORChwZXJtaXRfcHR5X2ZsYWcpOworIAlPUFRGTEFH X0FORChwZXJtaXRfdXNlcl9yYyk7CisrCU9QVEZMQUdfQU5EKHBlcm1pdF90dW5fZmxhZyk7Cisg CU9QVEZMQUdfQU5EKG5vX3JlcXVpcmVfdXNlcl9wcmVzZW5jZSk7CisgCS8qIFJlc3RyaWN0aXZl IGZsYWdzIGFyZSBsb2dpY2FsLU9SIChpLmUuIG11c3QgYmUgc2V0IGluIGVpdGhlcikgKi8KKyAJ T1BURkxBR19PUihyZXF1aXJlX3ZlcmlmeSk7CitAQCAtNjY5LDYgKzY3Miw3IEBAIHNzaGF1dGhv cHRfY29weShjb25zdCBzdHJ1Y3Qgc3NoYXV0aG9wdCAqb3JpZykKKyAJT1BUU0NBTEFSKHBlcm1p dF94MTFfZm9yd2FyZGluZ19mbGFnKTsKKyAJT1BUU0NBTEFSKHBlcm1pdF9wdHlfZmxhZyk7Cisg CU9QVFNDQUxBUihwZXJtaXRfdXNlcl9yYyk7CisrCU9QVFNDQUxBUihwZXJtaXRfdHVuX2ZsYWcp OworIAlPUFRTQ0FMQVIocmVzdHJpY3RlZCk7CisgCU9QVFNDQUxBUihjZXJ0X2F1dGhvcml0eSk7 CisgCU9QVFNDQUxBUihmb3JjZV90dW5fZGV2aWNlKTsKK0BAIC04MDQsNiArODA4LDcgQEAgc3No YXV0aG9wdF9zZXJpYWxpc2UoY29uc3Qgc3RydWN0IHNzaGF1dGhvcHQgKm9wdHMsIHN0cnVjdCBz c2hidWYgKm0sCisgCSAgICAociA9IHNzaGJ1Zl9wdXRfdTgobSwgb3B0cy0+cGVybWl0X3gxMV9m b3J3YXJkaW5nX2ZsYWcpKSAhPSAwIHx8CisgCSAgICAociA9IHNzaGJ1Zl9wdXRfdTgobSwgb3B0 cy0+cGVybWl0X3B0eV9mbGFnKSkgIT0gMCB8fAorIAkgICAgKHIgPSBzc2hidWZfcHV0X3U4KG0s IG9wdHMtPnBlcm1pdF91c2VyX3JjKSkgIT0gMCB8fAorKwkgICAgKHIgPSBzc2hidWZfcHV0X3U4 KG0sIG9wdHMtPnBlcm1pdF90dW5fZmxhZykpICE9IDAgfHwKKyAJICAgIChyID0gc3NoYnVmX3B1 dF91OChtLCBvcHRzLT5yZXN0cmljdGVkKSkgIT0gMCB8fAorIAkgICAgKHIgPSBzc2hidWZfcHV0 X3U4KG0sIG9wdHMtPmNlcnRfYXV0aG9yaXR5KSkgIT0gMCB8fAorIAkgICAgKHIgPSBzc2hidWZf cHV0X3U4KG0sIG9wdHMtPm5vX3JlcXVpcmVfdXNlcl9wcmVzZW5jZSkpICE9IDAgfHwKK0BAIC04 NjcsNiArODcyLDcgQEAgc3NoYXV0aG9wdF9kZXNlcmlhbGlzZShzdHJ1Y3Qgc3NoYnVmICptLCBz dHJ1Y3Qgc3NoYXV0aG9wdCAqKm9wdHNwKQorIAlPUFRfRkxBRyhwZXJtaXRfeDExX2ZvcndhcmRp bmdfZmxhZyk7CisgCU9QVF9GTEFHKHBlcm1pdF9wdHlfZmxhZyk7CisgCU9QVF9GTEFHKHBlcm1p dF91c2VyX3JjKTsKKysJT1BUX0ZMQUcocGVybWl0X3R1bl9mbGFnKTsKKyAJT1BUX0ZMQUcocmVz dHJpY3RlZCk7CisgCU9QVF9GTEFHKGNlcnRfYXV0aG9yaXR5KTsKKyAJT1BUX0ZMQUcobm9fcmVx dWlyZV91c2VyX3ByZXNlbmNlKTsKK2RpZmYgLS1naXQgYS9hdXRoLW9wdGlvbnMuaCBiL2F1dGgt b3B0aW9ucy5oCitpbmRleCA2ZTI5YjcyN2MuLjE5MWI5YjI0OSAxMDA2NDQKKy0tLSBhL2F1dGgt b3B0aW9ucy5oCisrKysgYi9hdXRoLW9wdGlvbnMuaAorQEAgLTM5LDYgKzM5LDcgQEAgc3RydWN0 IHNzaGF1dGhvcHQgeworIAlpbnQgcGVybWl0X3gxMV9mb3J3YXJkaW5nX2ZsYWc7CisgCWludCBw ZXJtaXRfcHR5X2ZsYWc7CisgCWludCBwZXJtaXRfdXNlcl9yYzsKKysJaW50IHBlcm1pdF90dW5f ZmxhZzsKKworIAkvKiAicmVzdHJpY3QiIGtleXdvcmQgd2FzIGludm9rZWQgKi8KKyAJaW50IHJl c3RyaWN0ZWQ7CitkaWZmIC0tZ2l0IGEvc2VydmVybG9vcC5jIGIvc2VydmVybG9vcC5jCitpbmRl eCA4YTZlM2RiODAuLmNmNTI0M2Y4MCAxMDA2NDQKKy0tLSBhL3NlcnZlcmxvb3AuYworKysrIGIv c2VydmVybG9vcC5jCitAQCAtNTIzLDcgKzUyMyw4IEBAIHNlcnZlcl9yZXF1ZXN0X3R1bihzdHJ1 Y3Qgc3NoICpzc2gpCisgCQlzc2hfcGFja2V0X3NlbmRfZGVidWcoc3NoLCAiVW5zdXBwb3J0ZWQg dHVubmVsIGRldmljZSBtb2RlLiIpOworIAkJcmV0dXJuIE5VTEw7CisgCX0KKy0JaWYgKChvcHRp b25zLnBlcm1pdF90dW4gJiBtb2RlKSA9PSAwKSB7CisrCWlmICgob3B0aW9ucy5wZXJtaXRfdHVu ICYgbW9kZSkgPT0gMCB8fCBvcHRpb25zLmRpc2FibGVfZm9yd2FyZGluZyB8fAorKwkgICAgIWF1 dGhfb3B0cy0+cGVybWl0X3R1bl9mbGFnKSB7CisgCQlzc2hfcGFja2V0X3NlbmRfZGVidWcoc3No LCAiU2VydmVyIGhhcyByZWplY3RlZCB0dW5uZWwgZGV2aWNlICIKKyAJCSAgICAiZm9yd2FyZGlu ZyIpOworIAkJcmV0dXJuIE5VTEw7CgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC0xMC41cDEtQ1ZFLTIw MjYtNzMyODEucGF0Y2ggYi9vcGVuc3NoLTEwLjVwMS1DVkUtMjAyNi03MzI4MS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTllYzM1Ci0tLSAvZGV2L251bGwKKysr IGIvb3BlbnNzaC0xMC41cDEtQ1ZFLTIwMjYtNzMyODEucGF0Y2gKQEAgLTAsMCArMSw0MiBAQAor ZGlmZiAtLWdpdCBhL3NzaC1hZ2VudC5jIGIvc3NoLWFnZW50LmMKKy0tLSBhL3NzaC1hZ2VudC5j CisrKysgYi9zc2gtYWdlbnQuYworQEAgLTE4MzksOCArMTgzOSwxNyBAQCBwcm9jZXNzX2V4dGVu c2lvbihTb2NrZXRFbnRyeSAqZSkKKyAJCWVycm9yX2ZyKHIsICJwYXJzZSIpOworIAkJZ290byBz ZW5kOworIAl9CisrCisrCS8qCisrCSAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCB3aGls ZSB0aGUgYWdlbnQgaXMgbG9ja2VkIHRvIGFsbG93CisrCSAqIHNlc3Npb24gYmluZHMgdG8gYmUg cHJvY2Vzc2VkIGZvciBuZXcgY2hhbm5lbHMuCisrCSAqIE90aGVyIG9wZXJhdGlvbnMgc2hvdWxk IGJlIHJlZnVzZWQgd2hlbiBsb2NrZWQuCisrCSAqLworKworIAlpZiAoc3RyY21wKG5hbWUsICJz ZXNzaW9uLWJpbmRAb3BlbnNzaC5jb20iKSA9PSAwKQorIAkJc3VjY2VzcyA9IHByb2Nlc3NfZXh0 X3Nlc3Npb25fYmluZChlKTsKKysJZWxzZSBpZiAobG9ja2VkKQorKwkJZGVidWdfZigiYXR0ZW1w dCB0byB1c2UgZXh0ZW5zaW9uIFwiJXNcIiB3aGlsZSBsb2NrZWQiLCBuYW1lKTsKKyAJZWxzZQor IAkJZGVidWdfZigidW5zdXBwb3J0ZWQgZXh0ZW5zaW9uIFwiJXNcIiIsIG5hbWUpOworIAlmcmVl KG5hbWUpOworQEAgLTE4OTIsMTYgKzE5MDEsMTkgQEAgcHJvY2Vzc19tZXNzYWdlKHVfaW50IHNv Y2tudW0pCisKKyAJLyogY2hlY2sgd2hldGhlciBhZ2VudCBpcyBsb2NrZWQgKi8KKyAJaWYgKGxv Y2tlZCAmJiB0eXBlICE9IFNTSF9BR0VOVENfVU5MT0NLKSB7CistCQlzc2hidWZfcmVzZXQoZS0+ cmVxdWVzdCk7CisgCQlzd2l0Y2ggKHR5cGUpIHsKKyAJCWNhc2UgU1NIMl9BR0VOVENfUkVRVUVT VF9JREVOVElUSUVTOgorIAkJCS8qIHNlbmQgZW1wdHkgbGlzdHMgKi8KKyAJCQlub19pZGVudGl0 aWVzKGUpOworIAkJCWJyZWFrOworKwkJY2FzZSBTU0hfQUdFTlRDX0VYVEVOU0lPTjoKKysJCQlw cm9jZXNzX2V4dGVuc2lvbihlKTsKKysJCQlicmVhazsKKyAJCWRlZmF1bHQ6CisgCQkJLyogc2Vu ZCBhIGZhaWwgbWVzc2FnZSBmb3IgYWxsIG90aGVyIHJlcXVlc3QgdHlwZXMgKi8KKyAJCQlzZW5k X3N0YXR1cyhlLCAwKTsKKyAJCX0KKysJCXNzaGJ1Zl9yZXNldChlLT5yZXF1ZXN0KTsKKyAJCXJl dHVybiAxOworIAl9CisKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTEwLjVwMS1DVkUtMjAyNi03MzI4 Mi5wYXRjaCBiL29wZW5zc2gtMTAuNXAxLUNWRS0yMDI2LTczMjgyLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0YzQ5NzMKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVu c3NoLTEwLjVwMS1DVkUtMjAyNi03MzI4Mi5wYXRjaApAQCAtMCwwICsxLDUxIEBACitkaWZmIC0t Z2l0IGEvc3NoLmMgYi9zc2guYworLS0tIGEvc3NoLmMKKysrKyBiL3NzaC5jCitAQCAtMTg2Miwx NCArMTg2MiwyNCBAQAorIAl9CisgfQorIAorK3N0cnVjdCByZndkX2NvbmZpcm1fY3R4IHsKKysJ aW50IGZpZDsKKyt9OworKworIC8qIENhbGxiYWNrIGZvciByZW1vdGUgZm9yd2FyZCBnbG9iYWwg cmVxdWVzdHMgKi8KKyBzdGF0aWMgdm9pZAorIHNzaF9jb25maXJtX3JlbW90ZV9mb3J3YXJkKHN0 cnVjdCBzc2ggKnNzaCwgaW50IHR5cGUsIHVfaW50MzJfdCBzZXEsIHZvaWQgKmN0eHQpCisgewor LQlzdHJ1Y3QgRm9yd2FyZCAqcmZ3ZCA9IChzdHJ1Y3QgRm9yd2FyZCAqKWN0eHQ7CisrCXN0cnVj dCByZndkX2NvbmZpcm1fY3R4ICpyY3R4ID0gKHN0cnVjdCByZndkX2NvbmZpcm1fY3R4ICopY3R4 dDsKKysJc3RydWN0IEZvcndhcmQgKnJmd2Q7CisgCXVfaW50IHBvcnQ7CisgCWludCByOworIAor KwlpZiAocmN0eC0+ZmlkIDwgMCB8fCByY3R4LT5maWQgPj0gb3B0aW9ucy5udW1fcmVtb3RlX2Zv cndhcmRzKQorKwkJZmF0YWxfZigiaW52YWxpZCBmb3J3YXJkaW5nIElEICVkIiwgcmN0eC0+Zmlk KTsKKysJcmZ3ZCA9ICZvcHRpb25zLnJlbW90ZV9mb3J3YXJkc1tyY3R4LT5maWRdOworKwlmcmVl emVybyhyY3R4LCBzaXplb2YoKnJjdHgpKTsKKysKKyAJLyogWFhYIHZlcmJvc2UoKSBvbiBmYWls dXJlPyAqLworIAlkZWJ1ZygicmVtb3RlIGZvcndhcmQgJXMgZm9yOiBsaXN0ZW4gJXMlcyVkLCBj b25uZWN0ICVzOiVkIiwKKyAJICAgIHR5cGUgPT0gU1NIMl9NU0dfUkVRVUVTVF9TVUNDRVNTID8g InN1Y2Nlc3MiIDogImZhaWx1cmUiLAorQEAgLTIwNDcsNiArMjA1Nyw4IEBACisgCisgCS8qIElu aXRpYXRlIHJlbW90ZSBUQ1AvSVAgcG9ydCBmb3J3YXJkaW5ncy4gKi8KKyAJZm9yIChpID0gMDsg aSA8IG9wdGlvbnMubnVtX3JlbW90ZV9mb3J3YXJkczsgaSsrKSB7CisrCQlzdHJ1Y3QgcmZ3ZF9j b25maXJtX2N0eCAqcmN0eDsKKysKKyAJCWRlYnVnKCJSZW1vdGUgY29ubmVjdGlvbnMgZnJvbSAl LjIwMHM6JWQgZm9yd2FyZGVkIHRvICIKKyAJCSAgICAibG9jYWwgYWRkcmVzcyAlLjIwMHM6JWQi LAorIAkJICAgIChvcHRpb25zLnJlbW90ZV9mb3J3YXJkc1tpXS5saXN0ZW5fcGF0aCAhPSBOVUxM KSA/CitAQCAtMjA2MSw5ICsyMDczLDEwIEBACisgCQlpZiAoKG9wdGlvbnMucmVtb3RlX2Zvcndh cmRzW2ldLmhhbmRsZSA9CisgCQkgICAgY2hhbm5lbF9yZXF1ZXN0X3JlbW90ZV9mb3J3YXJkaW5n KHNzaCwKKyAJCSAgICAmb3B0aW9ucy5yZW1vdGVfZm9yd2FyZHNbaV0pKSA+PSAwKSB7CisrCQkJ cmN0eCA9IHhjYWxsb2MoMSwgc2l6ZW9mKCpyY3R4KSk7CisrCQkJcmN0eC0+ZmlkID0gaTsKKyAJ CQljbGllbnRfcmVnaXN0ZXJfZ2xvYmFsX2NvbmZpcm0oCistCQkJICAgIHNzaF9jb25maXJtX3Jl bW90ZV9mb3J3YXJkLAorLQkJCSAgICAmb3B0aW9ucy5yZW1vdGVfZm9yd2FyZHNbaV0pOworKwkJ CSAgICBzc2hfY29uZmlybV9yZW1vdGVfZm9yd2FyZCwgcmN0eCk7CisgCQkJZm9yd2FyZF9jb25m aXJtc19wZW5kaW5nKys7CisgCQl9IGVsc2UgaWYgKG9wdGlvbnMuZXhpdF9vbl9mb3J3YXJkX2Zh aWx1cmUpCisgCQkJZmF0YWwoIkNvdWxkIG5vdCByZXF1ZXN0IHJlbW90ZSBmb3J3YXJkaW5nLiIp OwoKZGlmZiAtLWdpdCBhL29wZW5zc2gtNy4ycDIteDExLnBhdGNoIGIvb3BlbnNzaC03LjJwMi14 MTEucGF0Y2gKaW5kZXggNmRiMTZiZS4uYTYwNWE0MSAxMDA2NDQKLS0tIGEvb3BlbnNzaC03LjJw Mi14MTEucGF0Y2gKKysrIGIvb3BlbnNzaC03LjJwMi14MTEucGF0Y2gKQEAgLTMyLDcgKzMyLDcg QEAgZGlmZiAtLWdpdCBhL2NoYW5uZWxzLmMgYi9jaGFubmVscy5jCiAgCXJldHVybiAtMTsKICB9 CiAKLUBAIC01MDk5LDggKzUxMDIsMTggQEAKK0BAIC01MDk5LDggKzUxMDIsMTkgQEAKICBjb25u ZWN0X2xvY2FsX3hzb2NrZXQodV9pbnQgZG5yKQogIHsKICAJY2hhciBidWZbMTAyNF07CkBAIC00 MSwxMCArNDEsMTEgQEAgZGlmZiAtLWdpdCBhL2NoYW5uZWxzLmMgYi9jaGFubmVscy5jCiArCWlu dCBsZW4sIHJldDsKICsJbGVuID0gc25wcmludGYoYnVmICsgMSwgc2l6ZW9mIChidWYpIC0gMSwg X1BBVEhfVU5JWF9YLCBkbnIpOwogKyNpZmRlZiBsaW51eAotKwkvKiB0cnkgYWJzdHJhY3Qgc29j a2V0IGZpcnN0ICovCi0rCWJ1ZlswXSA9ICdcMCc7Ci0rCWlmICgocmV0ID0gY29ubmVjdF9sb2Nh bF94c29ja2V0X3BhdGgoYnVmLCBsZW4gKyAxKSkgPj0gMCkKLSsJCXJldHVybiByZXQ7CisrCWlm IChnZXRlbnYoIlNTSF9JTlNFQ1VSRV9BQlNUUkFDVF9TT0NLRVRfRU5BQkxFRCIpICE9IE5VTEwp IHsKKysJCWJ1ZlswXSA9ICdcMCc7CisrCQlpZiAoKHJldCA9IGNvbm5lY3RfbG9jYWxfeHNvY2tl dF9wYXRoKGJ1ZiwgbGVuICsgMSkpID49IDApCisrCQkJcmV0dXJuIHJldDsKKysJfQogKyNlbmRp ZgogKwlpZiAoKHJldCA9IGNvbm5lY3RfbG9jYWxfeHNvY2tldF9wYXRoKGJ1ZiArIDEsIGxlbikp ID49IDApCiArCQlyZXR1cm4gcmV0OwoKZGlmZiAtLWdpdCBhL29wZW5zc2gtNy43cDEtZmlwcy5w YXRjaCBiL29wZW5zc2gtNy43cDEtZmlwcy5wYXRjaAppbmRleCA4ZDQ0MmE0Li5iYzQ0ZWYzIDEw MDY0NAotLS0gYS9vcGVuc3NoLTcuN3AxLWZpcHMucGF0Y2gKKysrIGIvb3BlbnNzaC03LjdwMS1m aXBzLnBhdGNoCkBAIC0xMDYsMTcgKzEwNiwxOCBAQCBkaWZmIC11cCBvcGVuc3NoLTguNnAxL2tl eGdleGMuYy5maXBzIG9wZW5zc2gtOC42cDEva2V4Z2V4Yy5jCiAgI2luY2x1ZGUgPHN5cy90eXBl cy5oPgogIAogICNpbmNsdWRlIDxvcGVuc3NsL2RoLmg+Ci1AQCAtMTE1LDYgKzExNiwxMCBAQCBp bnB1dF9rZXhfZGhfZ2V4X2dyb3VwKGludCB0eXBlLCB1X2ludDMyCi0gCQlyID0gU1NIX0VSUl9B TExPQ19GQUlMOwotIAkJZ290byBvdXQ7CitAQCAtMTE3LDYgKzExOCwxMSBAQCBpbnB1dF9rZXhf ZGhfZ2V4X2dyb3VwKGludCB0eXBlLCB1X2ludDMyCiAgCX0KKyAJcCA9IGcgPSBOVUxMOyAvKiBi ZWxvbmcgdG8ga2V4LT5kaCBub3cgKi8KKyAKICsJaWYgKEZJUFNfbW9kZSgpICYmIGRoX2lzX2tu b3duX2dyb3VwKGtleC0+ZGgpID09IDApIHsKICsJCXIgPSBTU0hfRVJSX0lOVkFMSURfQVJHVU1F TlQ7CiArCQlnb3RvIG91dDsKICsJfQotIAlwID0gZyA9IE5VTEw7IC8qIGJlbG9uZyB0byBrZXgt PmRoIG5vdyAqLwotIAorKwogIAkvKiBnZW5lcmF0ZSBhbmQgc2VuZCAnZScsIGNsaWVudCBESCBw dWJsaWMga2V5ICovCisgCWlmICgociA9IGRoX2dlbl9rZXkoa2V4LT5kaCwga2V4LT53ZV9uZWVk ICogOCkpICE9IDApCisgCQlnb3RvIG91dDsKIGRpZmYgLXVwIG9wZW5zc2gtOC42cDEvbXlwcm9w b3NhbC5oLmZpcHMgb3BlbnNzaC04LjZwMS9teXByb3Bvc2FsLmgKIC0tLSBvcGVuc3NoLTguNnAx L215cHJvcG9zYWwuaC5maXBzCTIwMjEtMDQtMTYgMDU6NTU6MjUuMDAwMDAwMDAwICswMjAwCiAr Kysgb3BlbnNzaC04LjZwMS9teXByb3Bvc2FsLmgJMjAyMS0wNS0wNiAxMjowODozNi40OTg5MjY4 NzcgKzAyMDAKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLUNWRS0yMDI2LTYwMDAxLnBhdGNo IGIvb3BlbnNzaC05LjlwMS1DVkUtMjAyNi02MDAwMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4yN2VlY2M4Ci0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzaC05Ljlw MS1DVkUtMjAyNi02MDAwMS5wYXRjaApAQCAtMCwwICsxLDk3IEBACitkaWZmIC0tY29sb3IgLXJ1 TnAgYS9hdXRoMi5jIGIvYXV0aDIuYworLS0tIGEvYXV0aDIuYwkyMDI2LTA5LTE3IDE1OjIxOjU5 LjMxNzQ5MjEzNCArMDIwMAorKysrIGIvYXV0aDIuYwkyMDI2LTA5LTE3IDE1OjI5OjU4LjY5ODg3 NzY0OSArMDIwMAorQEAgLTI2Nyw2ICsyNjcsMTIgQEAgZW5zdXJlX21pbmltdW1fdGltZV9zaW5j ZShkb3VibGUgc3RhcnQsCisgCW5hbm9zbGVlcCgmdHMsIE5VTEwpOworIH0KKyAKKyt2b2lkCisr YXV0aF9mYWlsdXJlX2RlbGF5KEF1dGhjdHh0ICphdXRoY3R4dCwgZG91YmxlIHRzdGFydCkKKyt7 CisrCWVuc3VyZV9taW5pbXVtX3RpbWVfc2luY2UodHN0YXJ0LCB1c2VyX3NwZWNpZmljX2RlbGF5 KGF1dGhjdHh0LT51c2VyKSk7CisrfQorKworIHN0YXRpYyBpbnQKKyBpbnB1dF91c2VyYXV0aF9y ZXF1ZXN0KGludCB0eXBlLCB1X2ludDMyX3Qgc2VxLCBzdHJ1Y3Qgc3NoICpzc2gpCisgeworQEAg LTM1OSw4ICszNjUsOCBAQCBpbnB1dF91c2VyYXV0aF9yZXF1ZXN0KGludCB0eXBlLCB1X2ludDMy CisgCQlhdXRoZW50aWNhdGVkID0JbS0+dXNlcmF1dGgoc3NoLCBtZXRob2QpOworIAl9CisgCWlm ICghYXV0aGN0eHQtPmF1dGhlbnRpY2F0ZWQgJiYgc3RyY21wKG1ldGhvZCwgIm5vbmUiKSAhPSAw KQorLQkJZW5zdXJlX21pbmltdW1fdGltZV9zaW5jZSh0c3RhcnQsCistCQkgICAgdXNlcl9zcGVj aWZpY19kZWxheShhdXRoY3R4dC0+dXNlcikpOworKwkJYXV0aF9mYWlsdXJlX2RlbGF5KGF1dGhj dHh0LCB0c3RhcnQpOworKworIAl1c2VyYXV0aF9maW5pc2goc3NoLCBhdXRoZW50aWNhdGVkLCBt ZXRob2QsIE5VTEwpOworIAlyID0gMDsKKyAgb3V0OgorZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0 aDItY2hhbGwuYyBiL2F1dGgyLWNoYWxsLmMKKy0tLSBhL2F1dGgyLWNoYWxsLmMJMjAyNC0wOS0y MCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL2F1dGgyLWNoYWxsLmMJMjAyNi0wOS0x NyAxNToyNDozNC4zMjEwNzU0MzYgKzAyMDAKK0BAIC0yOTYsNiArMjk2LDcgQEAgaW5wdXRfdXNl cmF1dGhfaW5mb19yZXNwb25zZShpbnQgdHlwZSwgdQorIAl1X2ludCBpLCBucmVzcDsKKyAJY29u c3QgY2hhciAqZGV2aWNlbmFtZSA9IE5VTEw7CisgCWNoYXIgKipyZXNwb25zZSA9IE5VTEw7Cisr CWRvdWJsZSB0c3RhcnQgPSBtb25vdGltZV9kb3VibGUoKTsKKyAKKyAJaWYgKGF1dGhjdHh0ID09 IE5VTEwpCisgCQlmYXRhbF9mKCJubyBhdXRoY3R4dCIpOworQEAgLTM1NCw2ICszNTUsOSBAQCBp bnB1dF91c2VyYXV0aF9pbmZvX3Jlc3BvbnNlKGludCB0eXBlLCB1CisgCQkJYXV0aDJfY2hhbGxl bmdlX3N0YXJ0KHNzaCk7CisgCQl9CisgCX0KKysKKysJaWYgKCFhdXRoZW50aWNhdGVkKQorKwkJ YXV0aF9mYWlsdXJlX2RlbGF5KGF1dGhjdHh0LCB0c3RhcnQpOworIAl1c2VyYXV0aF9maW5pc2go c3NoLCBhdXRoZW50aWNhdGVkLCAia2V5Ym9hcmQtaW50ZXJhY3RpdmUiLAorIAkgICAgZGV2aWNl bmFtZSk7CisgCXJldHVybiAwOworZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0aDItZ3NzLmMgYi9h dXRoMi1nc3MuYworLS0tIGEvYXV0aDItZ3NzLmMJMjAyNi0wOS0xNyAxNToyMTo1OS4yMzYyODEw NjIgKzAyMDAKKysrKyBiL2F1dGgyLWdzcy5jCTIwMjYtMDktMTcgMTU6Mjc6MzMuOTAyNjQ0MjI3 ICswMjAwCitAQCAtMjk4LDYgKzI5OCw3IEBAIGlucHV0X2dzc2FwaV9leGNoYW5nZV9jb21wbGV0 ZShpbnQgdHlwZSwKKyB7CisgCUF1dGhjdHh0ICphdXRoY3R4dCA9IHNzaC0+YXV0aGN0eHQ7Cisg CWludCByLCBhdXRoZW50aWNhdGVkOworKwlkb3VibGUgdHN0YXJ0ID0gbW9ub3RpbWVfZG91Ymxl KCk7CisgCisgCWlmIChhdXRoY3R4dCA9PSBOVUxMKQorIAkJZmF0YWwoIk5vIGF1dGhlbnRpY2F0 aW9uIG9yIEdTU0FQSSBjb250ZXh0Iik7CitAQCAtMzExLDYgKzMxMiw4IEBAIGlucHV0X2dzc2Fw aV9leGNoYW5nZV9jb21wbGV0ZShpbnQgdHlwZSwKKyAJCWZhdGFsX2ZyKHIsICJwYXJzZSBwYWNr ZXQiKTsKKyAKKyAgCWF1dGhlbnRpY2F0ZWQgPSBtbV9zc2hfZ3NzYXBpX3VzZXJvayhhdXRoY3R4 dC0+dXNlciwgYXV0aGN0eHQtPnB3LCAxKTsKKysJaWYgKCFhdXRoZW50aWNhdGVkKQorKwkJYXV0 aF9mYWlsdXJlX2RlbGF5KGF1dGhjdHh0LCB0c3RhcnQpOworIAorIAlhdXRoY3R4dC0+cG9zdHBv bmVkID0gMDsKKyAJc3NoX2Rpc3BhdGNoX3NldChzc2gsIFNTSDJfTVNHX1VTRVJBVVRIX0dTU0FQ SV9UT0tFTiwgTlVMTCk7CitAQCAtMzMyLDYgKzMzNSw3IEBAIGlucHV0X2dzc2FwaV9taWMoaW50 IHR5cGUsIHVfaW50MzJfdCBwbGUKKyAJZ3NzX2J1ZmZlcl9kZXNjIG1pYywgZ3NzYnVmOworIAl1 X2NoYXIgKnA7CisgCXNpemVfdCBsZW47CisrCWRvdWJsZSB0c3RhcnQgPSBtb25vdGltZV9kb3Vi bGUoKTsKKyAKKyAJaWYgKGF1dGhjdHh0ID09IE5VTEwpCisgCQlmYXRhbCgiTm8gYXV0aGVudGlj YXRpb24gb3IgR1NTQVBJIGNvbnRleHQiKTsKK0BAIC0zNjcsNiArMzcxLDkgQEAgaW5wdXRfZ3Nz YXBpX21pYyhpbnQgdHlwZSwgdV9pbnQzMl90IHBsZQorIAkJZnJlZShtaWN1c2VyKTsKKyAJZnJl ZShtaWMudmFsdWUpOworIAorKwlpZiAoIWF1dGhlbnRpY2F0ZWQpCisrCQlhdXRoX2ZhaWx1cmVf ZGVsYXkoYXV0aGN0eHQsIHRzdGFydCk7CisrCisgCWF1dGhjdHh0LT5wb3N0cG9uZWQgPSAwOwor IAlzc2hfZGlzcGF0Y2hfc2V0KHNzaCwgU1NIMl9NU0dfVVNFUkFVVEhfR1NTQVBJX1RPS0VOLCBO VUxMKTsKKyAJc3NoX2Rpc3BhdGNoX3NldChzc2gsIFNTSDJfTVNHX1VTRVJBVVRIX0dTU0FQSV9F UlJUT0ssIE5VTEwpOworZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0aC5oIGIvYXV0aC5oCistLS0g YS9hdXRoLmgJMjAyNi0wOS0xNyAxNToyMTo1OS4zMTgzNjUwMzIgKzAyMDAKKysrKyBiL2F1dGgu aAkyMDI2LTA5LTE3IDE1OjIzOjAzLjM4ODgxMjg0OCArMDIwMAorQEAgLTE3OSw2ICsxNzksNyBA QCB2b2lkCWF1dGhfbG9nKHN0cnVjdCBzc2ggKiwgaW50LCBpbnQsIGNvCisgdm9pZAlhdXRoX21h eHRyaWVzX2V4Y2VlZGVkKHN0cnVjdCBzc2ggKikgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKTsK KyB2b2lkCXVzZXJhdXRoX2ZpbmlzaChzdHJ1Y3Qgc3NoICosIGludCwgY29uc3QgY2hhciAqLCBj b25zdCBjaGFyICopOworIGludAlhdXRoX3Jvb3RfYWxsb3dlZChzdHJ1Y3Qgc3NoICosIGNvbnN0 IGNoYXIgKik7Cisrdm9pZCAgIGF1dGhfZmFpbHVyZV9kZWxheShBdXRoY3R4dCAqLCBkb3VibGUp OworIAorIGNoYXIJKmF1dGgyX3JlYWRfYmFubmVyKHZvaWQpOworIGludAkgYXV0aDJfbWV0aG9k c192YWxpZChjb25zdCBjaGFyICosIGludCk7CgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjlwMS1j b3B5LWRhdGEtZXh0LXNlbGYtY29weS5wYXRjaCBiL29wZW5zc2gtOS45cDEtY29weS1kYXRhLWV4 dC1zZWxmLWNvcHkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZh NDNmYwotLS0gL2Rldi9udWxsCisrKyBiL29wZW5zc2gtOS45cDEtY29weS1kYXRhLWV4dC1zZWxm LWNvcHkucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2Z0cC1z ZXJ2ZXIuYyBiL3NmdHAtc2VydmVyLmMKKy0tLSBhL3NmdHAtc2VydmVyLmMJMjAyNi0wNy0xNyAx NjoyMzoxMi4yOTM0MjcwNjIgKzAyMDAKKysrKyBiL3NmdHAtc2VydmVyLmMJMjAyNi0wNy0xNyAx NjoyOTowMS40ODA1MzU1MDAgKzAyMDAKK0BAIC0xNjI1LDYgKzE2MjUsNyBAQCBwcm9jZXNzX2V4 dGVuZGVkX2NvcHlfZGF0YSh1X2ludDMyX3QgaWQpCisgCXVfaW50NjRfdCBsZW4sIHJlYWRfb2Zm LCByZWFkX2xlbiwgd3JpdGVfb2ZmOworIAlpbnQgciwgY29weV91bnRpbF9lb2YsIHN0YXR1cyA9 IFNTSDJfRlhfT1BfVU5TVVBQT1JURUQ7CisgCXNpemVfdCByZXQ7CisrCXN0cnVjdCBzdGF0IHN0 X3JlYWQsIHN0X3dyaXRlOworIAorIAlpZiAoKHIgPSBnZXRfaGFuZGxlKGlxdWV1ZSwgJnJlYWRf aGFuZGxlKSkgIT0gMCB8fAorIAkgICAgKHIgPSBzc2hidWZfZ2V0X3U2NChpcXVldWUsICZyZWFk X29mZikpICE9IDAgfHwKK0BAIC0xNjQ3LDEyICsxNjQ4LDM1IEBAIHByb2Nlc3NfZXh0ZW5kZWRf Y29weV9kYXRhKHVfaW50MzJfdCBpZCkKKyAJfSBlbHNlCisgCQljb3B5X3VudGlsX2VvZiA9IDA7 CisgCisrCS8qIERpc2FsbG93IHJlYWRpbmcgJiB3cml0aW5nIHRvIHRoZSBzYW1lIGhhbmRsZSwg cGF0aCBvciBpbm9kZSAqLworIAlyZWFkX2ZkID0gaGFuZGxlX3RvX2ZkKHJlYWRfaGFuZGxlKTsK KyAJd3JpdGVfZmQgPSBoYW5kbGVfdG9fZmQod3JpdGVfaGFuZGxlKTsKKy0KKy0JLyogRGlzYWxs b3cgcmVhZGluZyAmIHdyaXRpbmcgdG8gdGhlIHNhbWUgaGFuZGxlIG9yIHNhbWUgcGF0aCBvciBk aXJzICovCistCWlmIChyZWFkX2hhbmRsZSA9PSB3cml0ZV9oYW5kbGUgfHwgcmVhZF9mZCA8IDAg fHwgd3JpdGVfZmQgPCAwIHx8CistCSAgICAhc3RyY21wKGhhbmRsZV90b19uYW1lKHJlYWRfaGFu ZGxlKSwgaGFuZGxlX3RvX25hbWUod3JpdGVfaGFuZGxlKSkpIHsKKysJaWYgKHJlYWRfZmQgPCAw IHx8IHdyaXRlX2ZkIDwgMCkgeworKwkJZXJyb3JfZigiYmFkIHJlYWQgb3Igd3JpdGUgZmQiKTsK KysJCXN0YXR1cyA9IGVycm5vX3RvX3BvcnRhYmxlKEVCQURGKTsKKysJCWdvdG8gb3V0OworKwl9 CisrCWlmIChmc3RhdChyZWFkX2ZkLCAmc3RfcmVhZCkgIT0gMCkgeworKwkJc3RhdHVzID0gZXJy bm9fdG9fcG9ydGFibGUoZXJybm8pOworKwkJZXJyb3JfZigiZnN0YXQgcmVhZF9mZCBmYWlsZWQ6 ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKKysJCWdvdG8gb3V0OworKwl9CisrCWlmIChmc3RhdCh3 cml0ZV9mZCwgJnN0X3dyaXRlKSAhPSAwKSB7CisrCQlzdGF0dXMgPSBlcnJub190b19wb3J0YWJs ZShlcnJubyk7CisrCQllcnJvcl9mKCJmc3RhdCB3cml0ZV9mZCBmYWlsZWQ6ICVzIiwgc3RyZXJy b3IoZXJybm8pKTsKKysJCWdvdG8gb3V0OworKwl9CisrCWlmIChyZWFkX2hhbmRsZSA9PSB3cml0 ZV9oYW5kbGUgfHwKKysJICAgICFzdHJjbXAoaGFuZGxlX3RvX25hbWUocmVhZF9oYW5kbGUpLCBo YW5kbGVfdG9fbmFtZSh3cml0ZV9oYW5kbGUpKSB8fAorKwkgICAgKHN0X3JlYWQuc3RfZGV2ICE9 IDAgJiYgc3RfcmVhZC5zdF9pbm8gIT0gMCAmJgorKwkgICAgc3RfcmVhZC5zdF9kZXYgPT0gc3Rf d3JpdGUuc3RfZGV2ICYmCisrCSAgICBzdF9yZWFkLnN0X2lubyA9PSBzdF93cml0ZS5zdF9pbm8p KSB7CisrCQllcnJvcl9mKCJyZWZ1c2luZyB0byByZWFkL3dyaXRlIHNhbWUgZmlsZTogIgorKwkJ ICAgICJyZWFkIFwiJXNcIiBkZXYgJWx1IGlubyAlbHUsIHdyaXRlIFwiJXNcIiBkZXYgJWx1IGlu byAlbHUiLAorKwkJICAgIGhhbmRsZV90b19uYW1lKHJlYWRfaGFuZGxlKSwKKysJCSAgICAodV9s b25nKXN0X3JlYWQuc3RfZGV2LCAodV9sb25nKXN0X3JlYWQuc3RfaW5vLAorKwkJICAgIGhhbmRs ZV90b19uYW1lKHdyaXRlX2hhbmRsZSksCisrCQkgICAgKHVfbG9uZylzdF93cml0ZS5zdF9kZXYs ICh1X2xvbmcpc3Rfd3JpdGUuc3RfaW5vKTsKKyAJCXN0YXR1cyA9IFNTSDJfRlhfRkFJTFVSRTsK KyAJCWdvdG8gb3V0OworIAl9CgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjlwMS1jdmUtMjAyNi02 MDAwMi5wYXRjaCBiL29wZW5zc2gtOS45cDEtY3ZlLTIwMjYtNjAwMDIucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWIxNjQ3OQotLS0gL2Rldi9udWxsCisrKyBiL29w ZW5zc2gtOS45cDEtY3ZlLTIwMjYtNjAwMDIucGF0Y2gKQEAgLTAsMCArMSwxOTEgQEAKK2RpZmYg LS1jb2xvciAtcnVOcCBhL3NzaC5jIGIvc3NoLmMKKy0tLSBhL3NzaC5jCTIwMjYtMDctMTQgMTE6 NTg6MDkuMDM2NDk2OTE1ICswMjAwCisrKysgYi9zc2guYwkyMDI2LTA3LTE0IDEyOjAwOjU1LjA0 NDU0Mjc0MSArMDIwMAorQEAgLTYxOSwyNiArNjE5LDYgQEAgc2V0X2FkZHJpbmZvX3BvcnQoc3Ry dWN0IGFkZHJpbmZvICphZGRycworIAl9CisgfQorIAorLXN0YXRpYyB2b2lkCistc3NoX2Nvbm5f aW5mb19mcmVlKHN0cnVjdCBzc2hfY29ubl9pbmZvICpjaW5mbykKKy17CistCWlmIChjaW5mbyA9 PSBOVUxMKQorLQkJcmV0dXJuOworLQlmcmVlKGNpbmZvLT5jb25uX2hhc2hfaGV4KTsKKy0JZnJl ZShjaW5mby0+c2hvcnRob3N0KTsKKy0JZnJlZShjaW5mby0+dWlkc3RyKTsKKy0JZnJlZShjaW5m by0+a2V5YWxpYXMpOworLQlmcmVlKGNpbmZvLT50aGlzaG9zdCk7CistCWZyZWUoY2luZm8tPmhv c3RfYXJnKTsKKy0JZnJlZShjaW5mby0+cG9ydHN0cik7CistCWZyZWUoY2luZm8tPnJlbWhvc3Qp OworLQlmcmVlKGNpbmZvLT5yZW11c2VyKTsKKy0JZnJlZShjaW5mby0+aG9tZWRpcik7CistCWZy ZWUoY2luZm8tPmxvY3VzZXIpOworLQlmcmVlKGNpbmZvLT5qbXBob3N0KTsKKy0JZnJlZShjaW5m byk7CistfQorLQorIC8qCisgICogTWFpbiBwcm9ncmFtIGZvciB0aGUgc3NoIGNsaWVudC4KKyAg Ki8KK0BAIC0xNzY1LDggKzE3NDUsOCBAQCBtYWluKGludCBhYywgY2hhciAqKmF2KQorIAlzc2hf c2lnbmFsKFNJR0NITEQsIG1haW5fc2lnY2hsZF9oYW5kbGVyKTsKKyAKKyAJLyogTG9nIGludG8g dGhlIHJlbW90ZSBzeXN0ZW0uICBOZXZlciByZXR1cm5zIGlmIHRoZSBsb2dpbiBmYWlscy4gKi8K Ky0Jc3NoX2xvZ2luKHNzaCwgJnNlbnNpdGl2ZV9kYXRhLCBob3N0LCAoc3RydWN0IHNvY2thZGRy ICopJmhvc3RhZGRyLAorLQkgICAgb3B0aW9ucy5wb3J0LCBwdywgdGltZW91dF9tcywgY2luZm8p OworKwlzc2hfbG9naW4oc3NoLCAmc2Vuc2l0aXZlX2RhdGEsIGhvc3QsICZob3N0YWRkciwgb3B0 aW9ucy5wb3J0LAorKwkgICAgcHcsIHRpbWVvdXRfbXMsIGNpbmZvKTsKKyAKKyAJLyogV2Ugbm8g bG9uZ2VyIG5lZWQgdGhlIHByaXZhdGUgaG9zdCBrZXlzLiAgQ2xlYXIgdGhlbSBub3cuICovCisg CWlmIChzZW5zaXRpdmVfZGF0YS5ua2V5cyAhPSAwKSB7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9z c2hjb25uZWN0Mi5jIGIvc3NoY29ubmVjdDIuYworLS0tIGEvc3NoY29ubmVjdDIuYwkyMDI2LTA3 LTE0IDExOjU4OjA5LjAzMTQ3NzAyOCArMDIwMAorKysrIGIvc3NoY29ubmVjdDIuYwkyMDI2LTA3 LTE0IDEyOjAxOjU2LjM3NDgwMzEyMyArMDIwMAorQEAgLTg5LDcgKzg5LDcgQEAgZXh0ZXJuIE9w dGlvbnMgb3B0aW9uczsKKyAgKi8KKyAKKyBzdGF0aWMgY2hhciAqeHh4X2hvc3Q7Cistc3RhdGlj IHN0cnVjdCBzb2NrYWRkciAqeHh4X2hvc3RhZGRyOworK3N0YXRpYyBzdHJ1Y3Qgc29ja2FkZHJf c3RvcmFnZSB4eHhfaG9zdGFkZHI7Cisgc3RhdGljIGNvbnN0IHN0cnVjdCBzc2hfY29ubl9pbmZv ICp4eHhfY29ubl9pbmZvOworIHN0YXRpYyBpbnQga2V5X3R5cGVfYWxsb3dlZChzdHJ1Y3Qgc3No a2V5ICosIGNvbnN0IGNoYXIgKik7CisgCitAQCAtMTA1LDcgKzEwNSw3IEBAIHZlcmlmeV9ob3N0 X2tleV9jYWxsYmFjayhzdHJ1Y3Qgc3Noa2V5ICoKKyAJCWZhdGFsKCJTZXJ2ZXIgaG9zdCBrZXkg JXMgbm90IGluIEhvc3RLZXlBbGdvcml0aG1zIiwKKyAJCSAgICBzc2hrZXlfc3NoX25hbWUoaG9z dGtleSkpOworIAl9CistCWlmICh2ZXJpZnlfaG9zdF9rZXkoeHh4X2hvc3QsIHh4eF9ob3N0YWRk ciwgaG9zdGtleSwKKysJaWYgKHZlcmlmeV9ob3N0X2tleSh4eHhfaG9zdCwgKHN0cnVjdCBzb2Nr YWRkciAqKSZ4eHhfaG9zdGFkZHIsIGhvc3RrZXksCisgCSAgICB4eHhfY29ubl9pbmZvKSAhPSAw KQorIAkJZmF0YWwoIkhvc3Qga2V5IHZlcmlmaWNhdGlvbiBmYWlsZWQuIik7CisgCXJldHVybiAw OworQEAgLTIyMiw4ICsyMjIsOCBAQCBvcmRlcl9ob3N0a2V5YWxncyhjaGFyICpob3N0LCBzdHJ1 Y3Qgc29jCisgfQorIAorIHZvaWQKKy1zc2hfa2V4MihzdHJ1Y3Qgc3NoICpzc2gsIGNoYXIgKmhv c3QsIHN0cnVjdCBzb2NrYWRkciAqaG9zdGFkZHIsIHVfc2hvcnQgcG9ydCwKKy0gICAgY29uc3Qg c3RydWN0IHNzaF9jb25uX2luZm8gKmNpbmZvKQorK3NzaF9rZXgyKHN0cnVjdCBzc2ggKnNzaCwg Y2hhciAqaG9zdCwgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgKmhvc3RhZGRyLAorKyAgICB1X3No b3J0IHBvcnQsIGNvbnN0IHN0cnVjdCBzc2hfY29ubl9pbmZvICpjaW5mbykKKyB7CisgCWNoYXIg Km15cHJvcG9zYWxbUFJPUE9TQUxfTUFYXTsKKyAJY2hhciAqYWxsX2tleSwgKmhrYWxncyA9IE5V TEwsICpmaWx0ZXJlZF9hbGdzID0gTlVMTDsKK0BAIC0yMzQsOSArMjM0LDkgQEAgc3NoX2tleDIo c3RydWN0IHNzaCAqc3NoLCBjaGFyICpob3N0LCBzdAorIAljaGFyICpnc3NfaG9zdCA9IE5VTEw7 CisgI2VuZGlmCisgCistCXh4eF9ob3N0ID0gaG9zdDsKKy0JeHh4X2hvc3RhZGRyID0gaG9zdGFk ZHI7CistCXh4eF9jb25uX2luZm8gPSBjaW5mbzsKKysJeHh4X2hvc3QgPSB4c3RyZHVwKGhvc3Qp OworKwl4eHhfaG9zdGFkZHIgPSAqaG9zdGFkZHI7CisrCXh4eF9jb25uX2luZm8gPSBzc2hfY29u bl9pbmZvX2R1cChjaW5mbyk7CisgCisgCWlmIChvcHRpb25zLnJla2V5X2xpbWl0IHx8IG9wdGlv bnMucmVrZXlfaW50ZXJ2YWwpCisgCQlzc2hfcGFja2V0X3NldF9yZWtleV9saW1pdHMoc3NoLCBv cHRpb25zLnJla2V5X2xpbWl0LAorQEAgLTI1OSw4ICsyNTksMTAgQEAgc3NoX2tleDIoc3RydWN0 IHNzaCAqc3NoLCBjaGFyICpob3N0LCBzdAorIAkJZmF0YWxfZnIociwgImtleF9hc3NlbWJsZV9u YW1lbGlzdCIpOworIAlmcmVlKGFsbF9rZXkpOworIAorLQlpZiAodXNlX2tub3duX2hvc3RzX29y ZGVyKQorLQkJaGthbGdzID0gb3JkZXJfaG9zdGtleWFsZ3MoaG9zdCwgaG9zdGFkZHIsIHBvcnQs IGNpbmZvKTsKKysJaWYgKHVzZV9rbm93bl9ob3N0c19vcmRlcikgeworKwkJaGthbGdzID0gb3Jk ZXJfaG9zdGtleWFsZ3MoaG9zdCwgKHN0cnVjdCBzb2NrYWRkciAqKWhvc3RhZGRyLAorKwkJICAg IHBvcnQsIGNpbmZvKTsKKysJfQorIAorIAlmaWx0ZXJlZF9hbGdzID0gaGthbGdzID8gbWF0Y2hf ZmlsdGVyX2FsbG93bGlzdChoa2FsZ3MsIG9wdGlvbnMucHVia2V5X2FjY2VwdGVkX2FsZ29zKQor IAkJICAgICAgICAgICAgICAgOiBtYXRjaF9maWx0ZXJfYWxsb3dsaXN0KG9wdGlvbnMuaG9zdGtl eWFsZ29yaXRobXMsCitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hjb25uZWN0LmMgYi9zc2hjb25u ZWN0LmMKKy0tLSBhL3NzaGNvbm5lY3QuYwkyMDI2LTA3LTE0IDExOjU4OjA4Ljg5MjY1OTAxMSAr MDIwMAorKysrIGIvc3NoY29ubmVjdC5jCTIwMjYtMDctMTQgMTI6MDA6NTUuMDQ1NzY3NDYyICsw MjAwCitAQCAtODQsNiArODQsNDkgQEAgZXh0ZXJuIGNoYXIgKl9fcHJvZ25hbWU7Cisgc3RhdGlj IGludCBzaG93X290aGVyX2tleXMoc3RydWN0IGhvc3RrZXlzICosIHN0cnVjdCBzc2hrZXkgKik7 Cisgc3RhdGljIHZvaWQgd2Fybl9jaGFuZ2VkX2tleShzdHJ1Y3Qgc3Noa2V5ICopOworIAorK3Zv aWQKKytzc2hfY29ubl9pbmZvX2ZyZWUoc3RydWN0IHNzaF9jb25uX2luZm8gKmNpbmZvKQorK3sK KysJaWYgKGNpbmZvID09IE5VTEwpCisrCQlyZXR1cm47CisrCWZyZWUoY2luZm8tPmNvbm5faGFz aF9oZXgpOworKwlmcmVlKGNpbmZvLT5zaG9ydGhvc3QpOworKwlmcmVlKGNpbmZvLT51aWRzdHIp OworKwlmcmVlKGNpbmZvLT5rZXlhbGlhcyk7CisrCWZyZWUoY2luZm8tPnRoaXNob3N0KTsKKysJ ZnJlZShjaW5mby0+aG9zdF9hcmcpOworKwlmcmVlKGNpbmZvLT5wb3J0c3RyKTsKKysJZnJlZShj aW5mby0+cmVtaG9zdCk7CisrCWZyZWUoY2luZm8tPnJlbXVzZXIpOworKwlmcmVlKGNpbmZvLT5o b21lZGlyKTsKKysJZnJlZShjaW5mby0+bG9jdXNlcik7CisrCWZyZWUoY2luZm8tPmptcGhvc3Qp OworKwlmcmVlemVybyhjaW5mbywgc2l6ZW9mKCpjaW5mbykpOworK30KKysKKytzdHJ1Y3Qgc3No X2Nvbm5faW5mbyAqCisrc3NoX2Nvbm5faW5mb19kdXAoY29uc3Qgc3RydWN0IHNzaF9jb25uX2lu Zm8gKmNpbmZvKQorK3sKKysJc3RydWN0IHNzaF9jb25uX2luZm8gKnJldDsKKysKKysJaWYgKGNp bmZvID09IE5VTEwpCisrCQlyZXR1cm4gTlVMTDsKKysJcmV0ID0geGNhbGxvYygxLCBzaXplb2Yo KnJldCkpOworKwlyZXQtPmNvbm5faGFzaF9oZXggPSB4c3RyZHVwKGNpbmZvLT5jb25uX2hhc2hf aGV4KTsKKysJcmV0LT5zaG9ydGhvc3QgPSB4c3RyZHVwKGNpbmZvLT5zaG9ydGhvc3QpOworKwly ZXQtPnVpZHN0ciA9IHhzdHJkdXAoY2luZm8tPnVpZHN0cik7CisrCXJldC0+a2V5YWxpYXMgPSB4 c3RyZHVwKGNpbmZvLT5rZXlhbGlhcyk7CisrCXJldC0+dGhpc2hvc3QgPSB4c3RyZHVwKGNpbmZv LT50aGlzaG9zdCk7CisrCXJldC0+aG9zdF9hcmcgPSB4c3RyZHVwKGNpbmZvLT5ob3N0X2FyZyk7 CisrCXJldC0+cG9ydHN0ciA9IHhzdHJkdXAoY2luZm8tPnBvcnRzdHIpOworKwlyZXQtPnJlbWhv c3QgPSB4c3RyZHVwKGNpbmZvLT5yZW1ob3N0KTsKKysJcmV0LT5yZW11c2VyID0geHN0cmR1cChj aW5mby0+cmVtdXNlcik7CisrCXJldC0+aG9tZWRpciA9IHhzdHJkdXAoY2luZm8tPmhvbWVkaXIp OworKwlyZXQtPmxvY3VzZXIgPSB4c3RyZHVwKGNpbmZvLT5sb2N1c2VyKTsKKysJcmV0LT5qbXBo b3N0ID0geHN0cmR1cChjaW5mby0+am1waG9zdCk7CisrCXJldHVybiByZXQ7CisrfQorKworIC8q IEV4cGFuZCBhIHByb3h5IGNvbW1hbmQgKi8KKyBzdGF0aWMgY2hhciAqCisgZXhwYW5kX3Byb3h5 X2NvbW1hbmQoY29uc3QgY2hhciAqcHJveHlfY29tbWFuZCwgY29uc3QgY2hhciAqdXNlciwKK0BA IC0xNTg5LDggKzE2MzIsOCBAQCBvdXQ6CisgICovCisgdm9pZAorIHNzaF9sb2dpbihzdHJ1Y3Qg c3NoICpzc2gsIFNlbnNpdGl2ZSAqc2Vuc2l0aXZlLCBjb25zdCBjaGFyICpvcmlnaG9zdCwKKy0g ICAgc3RydWN0IHNvY2thZGRyICpob3N0YWRkciwgdV9zaG9ydCBwb3J0LCBzdHJ1Y3QgcGFzc3dk ICpwdywgaW50IHRpbWVvdXRfbXMsCistICAgIGNvbnN0IHN0cnVjdCBzc2hfY29ubl9pbmZvICpj aW5mbykKKysgICAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgKmhvc3RhZGRyLCB1X3Nob3J0IHBv cnQsIHN0cnVjdCBwYXNzd2QgKnB3LAorKyAgICBpbnQgdGltZW91dF9tcywgY29uc3Qgc3RydWN0 IHNzaF9jb25uX2luZm8gKmNpbmZvKQorIHsKKyAJY2hhciAqaG9zdDsKKyAJY2hhciAqc2VydmVy X3VzZXIsICpsb2NhbF91c2VyOworZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoY29ubmVjdC5oIGIv c3NoY29ubmVjdC5oCistLS0gYS9zc2hjb25uZWN0LmgJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAw MDAwMDAgKzAyMDAKKysrKyBiL3NzaGNvbm5lY3QuaAkyMDI2LTA3LTE0IDEyOjAwOjU1LjA0NTk0 ODk1MyArMDIwMAorQEAgLTczLDcgKzczLDcgQEAgaW50CSBzc2hfY29ubmVjdChzdHJ1Y3Qgc3No ICosIGNvbnN0IGNoYQorIHZvaWQJIHNzaF9raWxsX3Byb3h5X2NvbW1hbmQodm9pZCk7CisgCisg dm9pZAkgc3NoX2xvZ2luKHN0cnVjdCBzc2ggKiwgU2Vuc2l0aXZlICosIGNvbnN0IGNoYXIgKiwK Ky0gICAgc3RydWN0IHNvY2thZGRyICosIHVfc2hvcnQsIHN0cnVjdCBwYXNzd2QgKiwgaW50LAor KyAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSAqLCB1X3Nob3J0LCBzdHJ1Y3QgcGFzc3dkICos IGludCwKKyAgICAgY29uc3Qgc3RydWN0IHNzaF9jb25uX2luZm8gKik7CisgCisgaW50CSB2ZXJp ZnlfaG9zdF9rZXkoY2hhciAqLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc3RydWN0IHNzaGtleSAqLAor QEAgLTgyLDcgKzgyLDcgQEAgaW50CSB2ZXJpZnlfaG9zdF9rZXkoY2hhciAqLCBzdHJ1Y3Qgc29j aworIHZvaWQJIGdldF9ob3N0ZmlsZV9ob3N0bmFtZV9pcGFkZHIoY2hhciAqLCBzdHJ1Y3Qgc29j a2FkZHIgKiwgdV9zaG9ydCwKKyAgICAgY2hhciAqKiwgY2hhciAqKik7CisgCistdm9pZAkgc3No X2tleDIoc3RydWN0IHNzaCAqc3NoLCBjaGFyICosIHN0cnVjdCBzb2NrYWRkciAqLCB1X3Nob3J0 LAorK3ZvaWQJIHNzaF9rZXgyKHN0cnVjdCBzc2ggKnNzaCwgY2hhciAqLCBzdHJ1Y3Qgc29ja2Fk ZHJfc3RvcmFnZSAqLCB1X3Nob3J0LAorICAgICBjb25zdCBzdHJ1Y3Qgc3NoX2Nvbm5faW5mbyAq KTsKKyAKKyB2b2lkCSBzc2hfdXNlcmF1dGgyKHN0cnVjdCBzc2ggKnNzaCwgY29uc3QgY2hhciAq LCBjb25zdCBjaGFyICosCitAQCAtOTgsMyArOTgsNiBAQCB2b2lkCSBsb2FkX2hvc3RrZXlzX2Nv bW1hbmQoc3RydWN0IGhvc3RrCisgICAgIGNvbnN0IHN0cnVjdCBzc2hrZXkgKiwgY29uc3QgY2hh ciAqKTsKKyAKKyBpbnQgaG9zdGtleV9hY2NlcHRlZF9ieV9ob3N0a2V5YWxncyhjb25zdCBzdHJ1 Y3Qgc3Noa2V5ICopOworKworK3ZvaWQgc3NoX2Nvbm5faW5mb19mcmVlKHN0cnVjdCBzc2hfY29u bl9pbmZvICopOworK3N0cnVjdCBzc2hfY29ubl9pbmZvICpzc2hfY29ubl9pbmZvX2R1cChjb25z dCBzdHJ1Y3Qgc3NoX2Nvbm5faW5mbyAqKTsKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLWdz aXNzaC5wYXRjaCBiL29wZW5zc2gtOS45cDEtZ3Npc3NoLnBhdGNoCmluZGV4IDhhYmI5ZTguLjI0 ZjVjMDIgMTAwNjQ0Ci0tLSBhL29wZW5zc2gtOS45cDEtZ3Npc3NoLnBhdGNoCisrKyBiL29wZW5z c2gtOS45cDEtZ3Npc3NoLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAogZGlmZiAtTnVyIG9wZW5zc2gt OS45cDEub3JpZy9hdXRoMi5jIG9wZW5zc2gtOS45cDEvYXV0aDIuYwotLS0tIG9wZW5zc2gtOS45 cDEub3JpZy9hdXRoMi5jCTIwMjYtMDMtMjUgMDk6MzM6NTAuMzYxNjk0MTQ3ICswMTAwCi0rKysg b3BlbnNzaC05LjlwMS9hdXRoMi5jCTIwMjYtMDMtMjUgMDk6MzQ6MzguMDgxNDQ0ODc5ICswMTAw Ci1AQCAtMjg2LDcgKzI4NiwyOCBAQAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoMi5jCTIw MjYtMDktMjIgMTE6MTE6NTkuOTgwMjU3NjMxICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9hdXRo Mi5jCTIwMjYtMDktMjIgMTE6MTI6MzIuNDkyOTIxMTI3ICswMjAwCitAQCAtMjkyLDcgKzI5Miwy OCBAQAogIAkgICAgKHIgPSBzc2hwa3RfZ2V0X2NzdHJpbmcoc3NoLCAmc2VydmljZSwgTlVMTCkp ICE9IDAgfHwKICAJICAgIChyID0gc3NocGt0X2dldF9jc3RyaW5nKHNzaCwgJm1ldGhvZCwgTlVM TCkpICE9IDApCiAgCQlnb3RvIG91dDsKQEAgLTMxLDcgKzMxLDcgQEAgZGlmZiAtTnVyIG9wZW5z c2gtOS45cDEub3JpZy9hdXRoMi5jIG9wZW5zc2gtOS45cDEvYXV0aDIuYwogIAlkZWJ1ZygiYXR0 ZW1wdCAlZCBmYWlsdXJlcyAlZCIsIGF1dGhjdHh0LT5hdHRlbXB0LCBhdXRoY3R4dC0+ZmFpbHVy ZXMpOwogIAogICNpZmRlZiBXSVRIX1NFTElOVVgKLUBAIC0yOTksMTEgKzMyMCwzMyBAQAorQEAg LTMwNSwxMSArMzI2LDMzIEBACiAgCiAgCWlmIChhdXRoY3R4dC0+YXR0ZW1wdCA+PSAxMDI0KQog IAkJYXV0aF9tYXh0cmllc19leGNlZWRlZChzc2gpOwpAQCAtNjksNyArNjksNyBAQCBkaWZmIC1O dXIgb3BlbnNzaC05LjlwMS5vcmlnL2F1dGgyLmMgb3BlbnNzaC05LjlwMS9hdXRoMi5jCiAgCQkJ YXV0aGN0eHQtPnZhbGlkID0gMTsKICAJCQlkZWJ1ZzJfZigic2V0dGluZyB1cCBhdXRoY3R4dCBm b3IgJXMiLCB1c2VyKTsKICAJCX0gZWxzZSB7Ci1AQCAtMzExLDYgKzM1NCw5IEBACitAQCAtMzE3 LDYgKzM2MCw5IEBACiAgCQkJLyogSW52YWxpZCB1c2VyLCBmYWtlIHBhc3N3b3JkIGluZm9ybWF0 aW9uICovCiAgCQkJYXV0aGN0eHQtPnB3ID0gZmFrZXB3KCk7CiAgCQl9CkBAIC03OSw3ICs3OSw3 IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aDIuYyBvcGVuc3NoLTkuOXAxL2F1 dGgyLmMKICAjaWZkZWYgVVNFX1BBTQogIAkJaWYgKG9wdGlvbnMudXNlX3BhbSkKICAJCQltbV9z dGFydF9wYW0oc3NoKTsKLUBAIC0zMTgsNiArMzY0LDcgQEAKK0BAIC0zMjQsNiArMzcwLDcgQEAK ICAJCXNzaF9wYWNrZXRfc2V0X2xvZ19wcmVhbWJsZShzc2gsICIlc3VzZXIgJXMiLAogIAkJICAg IGF1dGhjdHh0LT52YWxpZCA/ICJhdXRoZW50aWNhdGluZyAiIDogImludmFsaWQgIiwgdXNlcik7 CiAgCQlzZXRwcm9jdGl0bGUoIiVzIFtuZXRdIiwgYXV0aGN0eHQtPnZhbGlkID8gdXNlciA6ICJ1 bmtub3duIik7CkBAIC04Nyw3ICs4Nyw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcv YXV0aDIuYyBvcGVuc3NoLTkuOXAxL2F1dGgyLmMKICAJCWF1dGhjdHh0LT5zZXJ2aWNlID0geHN0 cmR1cChzZXJ2aWNlKTsKICAJCWF1dGhjdHh0LT5zdHlsZSA9IHN0eWxlID8geHN0cmR1cChzdHls ZSkgOiBOVUxMOwogICNpZmRlZiBXSVRIX1NFTElOVVgKLUBAIC0zMzMsOSArMzgwLDEwIEBACitA QCAtMzM5LDkgKzM4NiwxMCBAQAogIAkJaWYgKGF1dGgyX3NldHVwX21ldGhvZHNfbGlzdHMoYXV0 aGN0eHQpICE9IDApCiAgCQkJc3NoX3BhY2tldF9kaXNjb25uZWN0KHNzaCwKICAJCQkgICAgIm5v IGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgZW5hYmxlZCIpOwpAQCAtMTAyLDggKzEwMiw4IEBAIGRp ZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aDIuYyBvcGVuc3NoLTkuOXAxL2F1dGgyLmMK ICAJCSAgICBhdXRoY3R4dC0+dXNlciwgYXV0aGN0eHQtPnNlcnZpY2UsIHVzZXIsIHNlcnZpY2Up OwogIAl9CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2F1dGgyLWdzcy5jIG9wZW5zc2gt OS45cDEvYXV0aDItZ3NzLmMKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aDItZ3NzLmMJMjAy Ni0wMy0yNSAwOTozMzo1MC4yNDc3MjEwMzIgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL2F1dGgy LWdzcy5jCTIwMjYtMDMtMjUgMDk6MzQ6MzguMDgyMjcxMTc0ICswMTAwCistLS0gb3BlbnNzaC05 LjlwMS5vcmlnL2F1dGgyLWdzcy5jCTIwMjYtMDktMjIgMTE6MTE6NTkuOTgxMzAyNjk4ICswMjAw CisrKysgb3BlbnNzaC05LjlwMS9hdXRoMi1nc3MuYwkyMDI2LTA5LTIyIDExOjIyOjAwLjYxNTk2 MjUwMCArMDIwMAogQEAgLTU0LDYgKzU0LDcgQEAKICBleHRlcm4gc3RydWN0IGF1dGhtZXRob2Rf Y2ZnIG1ldGhvZGNmZ19nc3NrZXlleDsKICBleHRlcm4gc3RydWN0IGF1dGhtZXRob2RfY2ZnIG1l dGhvZGNmZ19nc3NhcGk7CkBAIC0yMjgsMTIgKzIyOCwxMyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL2F1dGgyLWdzcy5jIG9wZW5zc2gtOS45cDEvYXV0aDItZ3NzLmMKICAvKgogICAq IFRoaXMgaXMgY2FsbGVkIHdoZW4gdGhlIGNsaWVudCB0aGlua3Mgd2UndmUgY29tcGxldGVkIGF1 dGhlbnRpY2F0aW9uLgogICAqIEl0IHNob3VsZCBvbmx5IGJlIGVuYWJsZWQgaW4gdGhlIGRpc3Bh dGNoIGhhbmRsZXIgYnkgdGhlIGZ1bmN0aW9uIGFib3ZlLAotQEAgLTI5NywxMSArMzQ3LDEzIEBA CitAQCAtMjk3LDEyICszNDcsMTQgQEAKICBpbnB1dF9nc3NhcGlfZXhjaGFuZ2VfY29tcGxldGUo aW50IHR5cGUsIHVfaW50MzJfdCBwbGVuLCBzdHJ1Y3Qgc3NoICpzc2gpCiAgewogIAlBdXRoY3R4 dCAqYXV0aGN0eHQgPSBzc2gtPmF1dGhjdHh0OwogLQlpbnQgciwgYXV0aGVudGljYXRlZDsKICsJ aW50IHIsIGF1dGhlbnRpY2F0ZWQgPSAwOworIAlkb3VibGUgdHN0YXJ0ID0gbW9ub3RpbWVfZG91 YmxlKCk7CiAgCiAgCWlmIChhdXRoY3R4dCA9PSBOVUxMKQogIAkJZmF0YWwoIk5vIGF1dGhlbnRp Y2F0aW9uIG9yIEdTU0FQSSBjb250ZXh0Iik7CkBAIC0yNDMsNyArMjQ0LDcgQEAgZGlmZiAtTnVy IG9wZW5zc2gtOS45cDEub3JpZy9hdXRoMi1nc3MuYyBvcGVuc3NoLTkuOXAxL2F1dGgyLWdzcy5j CiAgCS8qCiAgCSAqIFdlIGRvbid0IG5lZWQgdG8gY2hlY2sgdGhlIHN0YXR1cywgYmVjYXVzZSB3 ZSdyZSBvbmx5IGVuYWJsZWQgaW4KICAJICogdGhlIGRpc3BhdGNoZXIgb25jZSB0aGUgZXhjaGFu Z2UgaXMgY29tcGxldGUKLUBAIC0zMTAsNyArMzYyLDExIEBACitAQCAtMzExLDcgKzM2MywxMSBA QAogIAlpZiAoKHIgPSBzc2hwa3RfZ2V0X2VuZChzc2gpKSAhPSAwKQogIAkJZmF0YWxfZnIociwg InBhcnNlIHBhY2tldCIpOwogIApAQCAtMjUzLDEwICsyNTQsMTAgQEAgZGlmZiAtTnVyIG9wZW5z c2gtOS45cDEub3JpZy9hdXRoMi1nc3MuYyBvcGVuc3NoLTkuOXAxL2F1dGgyLWdzcy5jCiArCQlh dXRoZW50aWNhdGVkID0gbW1fc3NoX2dzc2FwaV91c2Vyb2soYXV0aGN0eHQtPnVzZXIsCiArCQkg ICAgYXV0aGN0eHQtPnB3LCAxKTsKICsJfQorIAlpZiAoIWF1dGhlbnRpY2F0ZWQpCisgCQlhdXRo X2ZhaWx1cmVfZGVsYXkoYXV0aGN0eHQsIHRzdGFydCk7CiAgCi0gCWF1dGhjdHh0LT5wb3N0cG9u ZWQgPSAwOwotIAlzc2hfZGlzcGF0Y2hfc2V0KHNzaCwgU1NIMl9NU0dfVVNFUkFVVEhfR1NTQVBJ X1RPS0VOLCBOVUxMKTsKLUBAIC0zNTcsMTAgKzQxMywxNiBAQAorQEAgLTM2MSwxMCArNDE3LDE2 IEBACiAgCQlmYXRhbF9mKCJzc2hidWZfbXV0YWJsZV9wdHIgZmFpbGVkIik7CiAgCWdzc2J1Zi5s ZW5ndGggPSBzc2hidWZfbGVuKGIpOwogIApAQCAtMjc2LDcgKzI3Nyw3IEBAIGRpZmYgLU51ciBv cGVuc3NoLTkuOXAxLm9yaWcvYXV0aDItZ3NzLmMgb3BlbnNzaC05LjlwMS9hdXRoMi1nc3MuYwog IAogIAlzc2hidWZfZnJlZShiKTsKICAJaWYgKG1pY3VzZXIgIT0gYXV0aGN0eHQtPnVzZXIpCi1A QCAtMzc2LDYgKzQzOCwyNiBAQAorQEAgLTM4Myw2ICs0NDUsMjYgQEAKICAJcmV0dXJuIDA7CiAg fQogIApAQCAtMzA0LDggKzMwNSw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0 aDItZ3NzLmMgb3BlbnNzaC05LjlwMS9hdXRoMi1nc3MuYwogIAkmbWV0aG9kY2ZnX2dzc2tleWV4 LAogIAl1c2VyYXV0aF9nc3NrZXlleCwKIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0 aC5jIG9wZW5zc2gtOS45cDEvYXV0aC5jCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL2F1dGguYwky MDI2LTAzLTI1IDA5OjMzOjUwLjQ0ODgyOTYxMSArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvYXV0 aC5jCTIwMjYtMDMtMjUgMDk6MzQ6MzguMDgyODY3MjAxICswMTAwCistLS0gb3BlbnNzaC05Ljlw MS5vcmlnL2F1dGguYwkyMDI2LTA5LTIyIDExOjExOjU5LjkyMDUzNDMzMiArMDIwMAorKysrIG9w ZW5zc2gtOS45cDEvYXV0aC5jCTIwMjYtMDktMjIgMTE6MTI6MzIuNDk1MzQ3MDE0ICswMjAwCiBA QCAtMjk4LDcgKzI5OCw4IEBACiAgCSAgICBtZXRob2QsCiAgCSAgICBzdWJtZXRob2QgIT0gTlVM TCA/ICIvIiA6ICIiLCBzdWJtZXRob2QgPT0gTlVMTCA/ICIiIDogc3VibWV0aG9kLApAQCAtMzM3 LDggKzMzOCw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aC5jIG9wZW5zc2gt OS45cDEvYXV0aC5jCiAgCQlyZWNvcmRfZmFpbGVkX2xvZ2luKHNzaCwgdXNlciwKICAJCSAgICBh dXRoX2dldF9jYW5vbmljYWxfaG9zdG5hbWUoc3NoLCBvcHRpb25zLnVzZV9kbnMpLCAic3NoIik7 CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2F1dGguaCBvcGVuc3NoLTkuOXAxL2F1dGgu aAotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLmgJMjAyNi0wMy0yNSAwOTozMzo1MC4zNjMx MDc2NjkgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL2F1dGguaAkyMDI2LTAzLTI1IDA5OjM0OjM4 LjA4MzgzNjg4MSArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLmgJMjAyNi0wOS0y MiAxMToxMTo1OS45ODE1OTA2MTkgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL2F1dGguaAkyMDI2 LTA5LTIyIDExOjEyOjMyLjQ5NjQ0NzEzNiArMDIwMAogQEAgLTg1LDYgKzg1LDggQEAKICAJa3Ji NV9wcmluY2lwYWwJIGtyYjVfdXNlcjsKICAJY2hhcgkJKmtyYjVfdGlja2V0X2ZpbGU7CkBAIC0z NDksOCArMzUwLDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLmggb3BlbnNz aC05LjlwMS9hdXRoLmgKICAjZW5kaWYKICAJc3RydWN0IHNzaGJ1ZgkqbG9naW5tc2c7CiBkaWZm IC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2F1dGgtcGFtLmMgb3BlbnNzaC05LjlwMS9hdXRoLXBh bS5jCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL2F1dGgtcGFtLmMJMjAyNi0wMy0yNSAwOTozMzo1 MC40MDM4ODg0ODAgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL2F1dGgtcGFtLmMJMjAyNi0wMy0y NSAwOTozNDozOC4wODQ1Njc3MDIgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aC1w YW0uYwkyMDI2LTA5LTIyIDExOjExOjU5Ljg3MTkyNTU5MCArMDIwMAorKysrIG9wZW5zc2gtOS45 cDEvYXV0aC1wYW0uYwkyMDI2LTA5LTIyIDExOjEyOjMyLjQ5NzI3NjQ3OSArMDIwMAogQEAgLTI0 OCw2ICsyNDgsNyBAQAogIHN0YXRpYyBjb25zdCBjaGFyICpzc2hwYW1fcGFzc3dvcmQgPSBOVUxM OwogIHN0YXRpYyBjaGFyICpzc2hwYW1fcmhvc3QgPSBOVUxMOwpAQCAtNTEyLDggKzUxMyw4IEBA IGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aC1wYW0uYyBvcGVuc3NoLTkuOXAxL2F1 dGgtcGFtLmMKICAJZnJlZShmYWtlKTsKICAJaWYgKHNzaHBhbV9lcnIgPT0gUEFNX01BWFRSSUVT KQogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLXBhbS5oIG9wZW5zc2gtOS45cDEv YXV0aC1wYW0uaAotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLXBhbS5oCTIwMjYtMDMtMjUg MDk6MzM6NTAuMjE0NTUyODA3ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9hdXRoLXBhbS5oCTIw MjYtMDMtMjUgMDk6MzQ6MzguMDg1NDQ3Mjg2ICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5vcmln L2F1dGgtcGFtLmgJMjAyNi0wOS0yMiAxMToxMTo1OS42ODI5MTM0MTIgKzAyMDAKKysrKyBvcGVu c3NoLTkuOXAxL2F1dGgtcGFtLmgJMjAyNi0wOS0yMiAxMToxMjozMi40OTg2NjU2NjcgKzAyMDAK IEBAIC00Myw1ICs0Myw2IEBACiAgaW50IHNzaHBhbV9nZXRfbWF4dHJpZXNfcmVhY2hlZCh2b2lk KTsKICB2b2lkIHNzaHBhbV9zZXRfbWF4dHJpZXNfcmVhY2hlZChpbnQpOwpAQCAtNTIyLDggKzUy Myw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aC1wYW0uaCBvcGVuc3NoLTku OXAxL2F1dGgtcGFtLmgKICAKICAjZW5kaWYgLyogVVNFX1BBTSAqLwogZGlmZiAtTnVyIG9wZW5z c2gtOS45cDEub3JpZy9jYW5vaG9zdC5jIG9wZW5zc2gtOS45cDEvY2Fub2hvc3QuYwotLS0tIG9w ZW5zc2gtOS45cDEub3JpZy9jYW5vaG9zdC5jCTIwMjYtMDMtMjUgMDk6MzM6NTAuMjQ5MDAwNTk5 ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9jYW5vaG9zdC5jCTIwMjYtMDMtMjUgMDk6MzQ6Mzgu MDg1NjgwNjk3ICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5vcmlnL2Nhbm9ob3N0LmMJMjAyNi0w OS0yMiAxMToxMTo1OS43MTk0ODQ0NDcgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL2Nhbm9ob3N0 LmMJMjAyNi0wOS0yMiAxMToxMjozMi40OTkwMTAyNTEgKzAyMDAKIEBAIC0xNyw2ICsxNyw3IEBA CiAgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CkBAIC01 NjcsOCArNTY4LDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9jYW5vaG9zdC5jIG9w ZW5zc2gtOS45cDEvY2Fub2hvc3QuYwogKwl9CiArfQogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEu b3JpZy9jYW5vaG9zdC5oIG9wZW5zc2gtOS45cDEvY2Fub2hvc3QuaAotLS0tIG9wZW5zc2gtOS45 cDEub3JpZy9jYW5vaG9zdC5oCTIwMjYtMDMtMjUgMDk6MzM6NTAuMjQ5MjQ2MjMxICswMTAwCi0r Kysgb3BlbnNzaC05LjlwMS9jYW5vaG9zdC5oCTIwMjYtMDMtMjUgMDk6MzQ6MzguMDg2NzQyOTE2 ICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5vcmlnL2Nhbm9ob3N0LmgJMjAyNi0wOS0yMiAxMTox MTo1OS43MTk2Njg4MjIgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL2Nhbm9ob3N0LmgJMjAyNi0w OS0yMiAxMToxMjozMi40OTk0ODIxOTIgKzAyMDAKIEBAIC0yNiw0ICsyNiw2IEBACiAgCiAgI2Vu ZGlmIC8qIF9DQU5PSE9TVF9IICovCkBAIC01NzcsOCArNTc4LDggQEAgZGlmZiAtTnVyIG9wZW5z c2gtOS45cDEub3JpZy9jYW5vaG9zdC5oIG9wZW5zc2gtOS45cDEvY2Fub2hvc3QuaAogKwogIHZv aWQJCSBpcHY2NF9ub3JtYWxpc2VfbWFwcGVkKHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlICosIHNv Y2tsZW5fdCAqKTsKIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvY29uZmlndXJlLmFjIG9w ZW5zc2gtOS45cDEvY29uZmlndXJlLmFjCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL2NvbmZpZ3Vy ZS5hYwkyMDI2LTAzLTI1IDA5OjMzOjUwLjQzNzExNzExOSArMDEwMAotKysrIG9wZW5zc2gtOS45 cDEvY29uZmlndXJlLmFjCTIwMjYtMDMtMjUgMDk6MzQ6MzguMDg3ODUzMTg3ICswMTAwCistLS0g b3BlbnNzaC05LjlwMS5vcmlnL2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDExOjExOjU5LjkwODky NTU4NSArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMTE6 MTI6MzIuNTAwMTYxMTM4ICswMjAwCiBAQCAtNDkyMCw2ICs0OTIwLDE0IEBACiAgCQkJCUFDX0NI RUNLX0hFQURFUihbZ3NzYXBpX2tyYjUuaF0sICwKICAJCQkJCQlbIENQUEZMQUdTPSIkb2xkQ1BQ IiBdKQpAQCAtNjM2LDggKzYzNyw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvY29u ZmlndXJlLmFjIG9wZW5zc2gtOS45cDEvY29uZmlndXJlLmFjCiAgCiAgUFJJVlNFUF9QQVRIPS92 YXIvZW1wdHkKIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLWdlbnIuYyBvcGVuc3No LTkuOXAxL2dzcy1nZW5yLmMKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLWdlbnIuYwkyMDI2 LTAzLTI1IDA5OjMzOjUwLjQ3MDQ2MzUxMCArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvZ3NzLWdl bnIuYwkyMDI2LTAzLTI1IDA5OjM0OjM4LjA4OTI3MTExMCArMDEwMAorLS0tIG9wZW5zc2gtOS45 cDEub3JpZy9nc3MtZ2Vuci5jCTIwMjYtMDktMjIgMTE6MTE6NTkuOTgzOTkwNTE2ICswMjAwCisr Kysgb3BlbnNzaC05LjlwMS9nc3MtZ2Vuci5jCTIwMjYtMDktMjIgMTE6MTI6MzIuNTAyOTE2ODk5 ICswMjAwCiBAQCAtNDEsNiArNDEsNyBAQAogICNpbmNsdWRlICJzc2hlcnIuaCIKICAjaW5jbHVk ZSAic3NoYnVmLmgiCkBAIC02NzUsOCArNjc2LDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEu b3JpZy9nc3MtZ2Vuci5jIG9wZW5zc2gtOS45cDEvZ3NzLWdlbnIuYwogIAlyZXR1cm4gKGN0eC0+ bWFqb3IpOwogIH0KIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYuYyBvcGVu c3NoLTkuOXAxL2dzcy1zZXJ2LmMKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYuYwky MDI2LTAzLTI1IDA5OjMzOjUwLjQ2Mzg1MDA3NyArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvZ3Nz LXNlcnYuYwkyMDI2LTAzLTI1IDA5OjM0OjM4LjA5MDY4MDY1MSArMDEwMAorLS0tIG9wZW5zc2gt OS45cDEub3JpZy9nc3Mtc2Vydi5jCTIwMjYtMDktMjIgMTE6MTE6NTkuOTM1MDQzNTIzICswMjAw CisrKysgb3BlbnNzaC05LjlwMS9nc3Mtc2Vydi5jCTIwMjYtMDktMjIgMTE6MTI6MzIuNTAzODAy MTM5ICswMjAwCiBAQCAtNTAsMTAgKzUwLDEyIEBACiAgI2luY2x1ZGUgIm1vbml0b3Jfd3JhcC5o IgogIApAQCAtNzU5LDE1ICs3NjAsMTUgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9n c3Mtc2Vydi5jIG9wZW5zc2gtOS45cDEvZ3NzLXNlcnYuYwogIC8qIEV4dHJhY3QgYXV0aGVudGlj YXRpb24gaW5kaWNhdG9ycyBmcm9tIHRoZSBLZXJiZXJvcyB0aWNrZXQuIEF1dGhlbnRpY2F0aW9u CiAgICogaW5kaWNhdG9ycyBhcmUgR1NTQVBJIG5hbWUgYXR0cmlidXRlcyBmb3IgdGhlIG5hbWUg ImF1dGgtaW5kaWNhdG9ycyIuCiAgICogTXVsdGlwbGUgaW5kaWNhdG9ycyBtaWdodCBiZSBwcmVz ZW50IGluIHRoZSB0aWNrZXQuCi1AQCAtMzc5LDYgKzQxMiw3IEBACi0gCSh2b2lkKSBnc3NfcmVs ZWFzZV9idWZmZXJfc2V0KCZjdHgtPm1pbm9yLCAmYXR0cnMpOwotIAlyZXR1cm4gKGN0eC0+bWFq b3IpOworQEAgLTM4Nyw2ICs0MjAsNyBAQAorIAlnc3NfcmVsZWFzZV9idWZmZXJfc2V0KCZjdHgt Pm1pbm9yLCAmYXR0cnMpOworIAlyZXR1cm4gY3R4LT5tYWpvcjsKICB9CiArI2VuZGlmCiAgCiAg LyogRXh0cmFjdCB0aGUgY2xpZW50IGRldGFpbHMgZnJvbSBhIGdpdmVuIGNvbnRleHQuIFRoaXMg Y2FuIG9ubHkgcmVsaWFibHkKICAgKiBiZSBjYWxsZWQgb25jZSBmb3IgYSBjb250ZXh0ICovCi1A QCAtMzk0LDIxICs0MjgsMjQgQEAKK0BAIC00MDEsMjEgKzQzNSwyNCBAQAogIAlnc3NfYnVmZmVy X2Rlc2MgZW5hbWUgPSBHU1NfQ19FTVBUWV9CVUZGRVI7CiAgCiAgCWlmIChvcHRpb25zLmdzc19z dG9yZV9yZWtleSAmJiBjbGllbnQtPnVzZWQgJiYgY3R4LT5jbGllbnRfY3JlZHMpIHsKQEAgLTc5 Nyw3ICs3OTgsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1zZXJ2LmMgb3Bl bnNzaC05LjlwMS9nc3Mtc2Vydi5jCiAgCQkgICAgbmV3X25hbWUsICZlcXVhbCk7CiAgCiAgCQlp ZiAoR1NTX0VSUk9SKGN0eC0+bWFqb3IpKSB7Ci1AQCAtNDIzLDkgKzQ2MCw5IEBACitAQCAtNDMw LDkgKzQ2Nyw5IEBACiAgCiAgCQlkZWJ1ZygiTWFya2luZyByZWtleWVkIGNyZWRlbnRpYWxzIGZv ciBleHBvcnQiKTsKICAKQEAgLTgwOSw3ICs4MTAsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05Ljlw MS5vcmlnL2dzcy1zZXJ2LmMgb3BlbnNzaC05LjlwMS9nc3Mtc2Vydi5jCiAgCQljbGllbnQtPmNy ZWRzID0gY3R4LT5jbGllbnRfY3JlZHM7CiAgCQljdHgtPmNsaWVudF9jcmVkcyA9IEdTU19DX05P X0NSRURFTlRJQUw7CiAgCQljbGllbnQtPnVwZGF0ZWQgPSAxOwotQEAgLTQ0MiwxMiArNDc5LDE3 IEBACitAQCAtNDQ5LDEyICs0ODYsMTcgQEAKICAJCWkrKzsKICAJfQogIApAQCAtODI5LDcgKzgz MCw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYuYyBvcGVuc3NoLTku OXAxL2dzcy1zZXJ2LmMKICAJCXNzaF9nc3NhcGlfZXJyb3IoY3R4KTsKICAJCXJldHVybiAoY3R4 LT5tYWpvcik7CiAgCX0KLUBAIC00NjQsMjIgKzUwNiwzMyBAQAorQEAgLTQ3MSwyMiArNTEzLDMz IEBACiAgCQlyZXR1cm4gKGN0eC0+bWFqb3IpOwogIAl9CiAgCkBAIC04NjQsNyArODY1LDcgQEAg ZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi5jIG9wZW5zc2gtOS45cDEvZ3Nz LXNlcnYuYwogIAlyZXR1cm4gKGN0eC0+bWFqb3IpOwogIH0KICAKLUBAIC00ODcsNiArNTQwLDcg QEAKK0BAIC00OTQsNiArNTQ3LDcgQEAKICB2b2lkCiAgc3NoX2dzc2FwaV9jbGVhbnVwX2NyZWRz KHZvaWQpCiAgewpAQCAtODcyLDcgKzg3Myw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9y aWcvZ3NzLXNlcnYuYyBvcGVuc3NoLTkuOXAxL2dzcy1zZXJ2LmMKICAJa3JiNV9jY2FjaGUgY2Nh Y2hlID0gTlVMTDsKICAJa3JiNV9lcnJvcl9jb2RlIHByb2JsZW07CiAgCi1AQCAtNTAyLDYgKzU1 NiwxNCBAQAorQEAgLTUwOSw2ICs1NjMsMTQgQEAKICAJCQlnc3NhcGlfY2xpZW50LnN0b3JlLmRh dGEgPSBOVUxMOwogIAkJfQogIAl9CkBAIC04ODcsNyArODg4LDcgQEAgZGlmZiAtTnVyIG9wZW5z c2gtOS45cDEub3JpZy9nc3Mtc2Vydi5jIG9wZW5zc2gtOS45cDEvZ3NzLXNlcnYuYwogIH0KICAK ICAvKiBBcyB1c2VyICovCi1AQCAtNTE0LDYgKzU3NiwxMSBAQAorQEAgLTUyMSw2ICs1ODMsMTEg QEAKICAJfQogIAogIAlpZiAoZ3NzYXBpX2NsaWVudC5tZWNoICYmIGdzc2FwaV9jbGllbnQubWVj aC0+c3RvcmVjcmVkcykgewpAQCAtODk5LDcgKzkwMCw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTku OXAxLm9yaWcvZ3NzLXNlcnYuYyBvcGVuc3NoLTkuOXAxL2dzcy1zZXJ2LmMKICAJCXJldHVybiAo Kmdzc2FwaV9jbGllbnQubWVjaC0+c3RvcmVjcmVkcykoJmdzc2FwaV9jbGllbnQpOwogIAl9IGVs c2UKICAJCWRlYnVnKCJzc2hfZ3NzYXBpX3N0b3JlY3JlZHM6IE5vdCBhIEdTU0FQSSBtZWNoYW5p c20iKTsKLUBAIC01NDcsMTEgKzYxNCwxMyBAQAorQEAgLTU1NCwxMSArNjIxLDEzIEBACiAgCiAg CSh2b2lkKSBrZXg7IC8qIHVzZWQgaW4gcHJpdmlsZWdlIHNlcGFyYXRpb24gKi8KICAKQEAgLTkx Niw3ICs5MTcsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1zZXJ2LmMgb3Bl bnNzaC05LjlwMS9nc3Mtc2Vydi5jCiAgCWlmIChnc3NhcGlfY2xpZW50Lm1lY2ggJiYgZ3NzYXBp X2NsaWVudC5tZWNoLT51c2Vyb2spCiAgCQlpZiAoKCpnc3NhcGlfY2xpZW50Lm1lY2gtPnVzZXJv aykoJmdzc2FwaV9jbGllbnQsIHVzZXIpKSB7CiAgCQkJZ3NzYXBpX2NsaWVudC51c2VkID0gMTsK LUBAIC01NjIsNiArNjMxLDcgQEAKK0BAIC01NjksNiArNjM4LDcgQEAKICAJCQlnc3NfcmVsZWFz ZV9idWZmZXIoJmxtaW4sICZnc3NhcGlfY2xpZW50LmRpc3BsYXluYW1lKTsKICAJCQlnc3NfcmVs ZWFzZV9idWZmZXIoJmxtaW4sICZnc3NhcGlfY2xpZW50LmV4cG9ydGVkbmFtZSk7CiAgCQkJZ3Nz X3JlbGVhc2VfY3JlZCgmbG1pbiwgJmdzc2FwaV9jbGllbnQuY3JlZHMpOwpAQCAtOTI0LDcgKzky NSw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYuYyBvcGVuc3NoLTku OXAxL2dzcy1zZXJ2LmMKICAKICAJCQlpZiAoZ3NzYXBpX2NsaWVudC5pbmRpY2F0b3JzICE9IE5V TEwpIHsKICAJCQkJZm9yIChpID0gMDsgZ3NzYXBpX2NsaWVudC5pbmRpY2F0b3JzW2ldICE9IE5V TEw7IGkrKykKLUBAIC01NzksNiArNjQ5LDI0IEBACitAQCAtNTg0LDYgKzY1NCwyNCBAQAogIAly ZXR1cm4gKDApOwogIH0KICAKQEAgLTk0OSw3ICs5NTAsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL2dzcy1zZXJ2LmMgb3BlbnNzaC05LjlwMS9nc3Mtc2Vydi5jCiAgLyogVGhlc2Ug Yml0cyBhcmUgb25seSB1c2VkIGZvciByZWtleWluZy4gVGhlIHVucHJpdmlsZWRnZWQgY2hpbGQg aXMgcnVubmluZwogICAqIGFzIHRoZSB1c2VyLCB0aGUgbW9uaXRvciBpcyByb290LgogICAqCi1A QCAtNjA1LDkgKzY5MywxMSBAQAorQEAgLTYxMCw5ICs2OTgsMTEgQEAKICAJcGFtX2hhbmRsZV90 ICpwYW1oID0gTlVMTDsKICAJc3RydWN0IHBhbV9jb252IHBhbWNvbnYgPSB7c3NoX2dzc2FwaV9z aW1wbGVfY29udiwgTlVMTH07CiAgCWNoYXIgKmVudnN0cjsKQEAgLTk2Miw3ICs5NjMsNyBAQCBk aWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1zZXJ2LmMgb3BlbnNzaC05LjlwMS9nc3Mt c2Vydi5jCiAgCQlyZXR1cm47CiAgCiAgCW9rID0gbW1fc3NoX2dzc2FwaV91cGRhdGVfY3JlZHMo Jmdzc2FwaV9jbGllbnQuc3RvcmUpOwotQEAgLTYyNyw2ICs3MTcsMTggQEAKK0BAIC02MzIsNiAr NzIyLDE4IEBACiAgCWlmIChyZXQpCiAgCQlyZXR1cm47CiAgCkBAIC05ODMsNyArOTg0LDcgQEAg ZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi5jIG9wZW5zc2gtOS45cDEvZ3Nz LXNlcnYuYwogIAogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi1nc2kuYyBv cGVuc3NoLTkuOXAxL2dzcy1zZXJ2LWdzaS5jCiAtLS0gb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1z ZXJ2LWdzaS5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNz aC05LjlwMS9nc3Mtc2Vydi1nc2kuYwkyMDI2LTAzLTI1IDA5OjM0OjM4LjA5MTY5NTQ0OCArMDEw MAorKysrIG9wZW5zc2gtOS45cDEvZ3NzLXNlcnYtZ3NpLmMJMjAyNi0wOS0yMiAxMToxMjozMi41 MDUwMTgwNDUgKzAyMDAKIEBAIC0wLDAgKzEsMzI4IEBACiArLyoKICsgKiBDb3B5cmlnaHQgKGMp IDIwMDEtMjAwMyBTaW1vbiBXaWxraW5zb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xMzE0 LDkgKzEzMTUsOSBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1zZXJ2LWdzaS5j IG9wZW5zc2gtOS45cDEvZ3NzLXNlcnYtZ3NpLmMKICsjZW5kaWYgLyogR1NJICovCiArI2VuZGlm IC8qIEdTU0FQSSAqLwogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi1rcmI1 LmMgb3BlbnNzaC05LjlwMS9nc3Mtc2Vydi1rcmI1LmMKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcv Z3NzLXNlcnYta3JiNS5jCTIwMjYtMDMtMjUgMDk6MzM6NTAuNDM4NjQzOTI0ICswMTAwCi0rKysg b3BlbnNzaC05LjlwMS9nc3Mtc2Vydi1rcmI1LmMJMjAyNi0wMy0yNSAwOTozNDozOC4xMTEzNTA4 NzcgKzAxMDAKLUBAIC00MzEsNiArNDMxLDM0IEBACistLS0gb3BlbnNzaC05LjlwMS5vcmlnL2dz cy1zZXJ2LWtyYjUuYwkyMDI2LTA5LTIyIDExOjExOjU5LjkxMDg0MDgzNyArMDIwMAorKysrIG9w ZW5zc2gtOS45cDEvZ3NzLXNlcnYta3JiNS5jCTIwMjYtMDktMjIgMTE6MTI6MzIuNTA1MjA5OTUx ICswMjAwCitAQCAtNDU5LDYgKzQ1OSwzNCBAQAogIAlyZXR1cm4gZm91bmRfcHJpbmNpcGFsOwog IH0KICAgCkBAIC0xMzUxLDcgKzEzNTIsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmln L2dzcy1zZXJ2LWtyYjUuYyBvcGVuc3NoLTkuOXAxL2dzcy1zZXJ2LWtyYjUuYwogIAogIC8qIFRo aXMgd3JpdGVzIG91dCBhbnkgZm9yd2FyZGVkIGNyZWRlbnRpYWxzIGZyb20gdGhlIHN0cnVjdHVy ZSBwb3B1bGF0ZWQKICAgKiBkdXJpbmcgdXNlcmF1dGguIENhbGxlZCBhZnRlciB3ZSBoYXZlIHNl dHVpZCB0byB0aGUgdXNlciAqLwotQEAgLTUyNSw3ICs1NTMsNyBAQAorQEAgLTU1Myw3ICs1ODEs NyBAQAogIAlyZXR1cm4gc2V0X2VudjsKICB9CiAgCkBAIC0xMzYwLDcgKzEzNjEsNyBAQCBkaWZm IC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1zZXJ2LWtyYjUuYyBvcGVuc3NoLTkuOXAxL2dz cy1zZXJ2LWtyYjUuYwogIHNzaF9nc3NhcGlfa3JiNV91cGRhdGVjcmVkcyhzc2hfZ3NzYXBpX2Nj YWNoZSAqc3RvcmUsCiAgICAgIHNzaF9nc3NhcGlfY2xpZW50ICpjbGllbnQpCiAgewotQEAgLTU5 Niw3ICs2MjQsNyBAQAorQEAgLTYyNCw3ICs2NTIsNyBAQAogIAl7OSwgIlx4MkFceDg2XHg0OFx4 ODZceEY3XHgxMlx4MDFceDAyXHgwMiJ9LAogIAlOVUxMLAogIAkmc3NoX2dzc2FwaV9rcmI1X3Vz ZXJvaywKQEAgLTEzNzAsOCArMTM3MSw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcv Z3NzLXNlcnYta3JiNS5jIG9wZW5zc2gtOS45cDEvZ3NzLXNlcnYta3JiNS5jCiAgCSZzc2hfZ3Nz YXBpX2tyYjVfdXBkYXRlY3JlZHMKICB9OwogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9r ZXhnc3NzLmMgb3BlbnNzaC05LjlwMS9rZXhnc3NzLmMKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcv a2V4Z3Nzcy5jCTIwMjYtMDMtMjUgMDk6MzM6NTAuMjU1MTMxNDI3ICswMTAwCi0rKysgb3BlbnNz aC05LjlwMS9rZXhnc3NzLmMJMjAyNi0wMy0yNSAwOTozNDozOC4xMTE4NjIxODYgKzAxMDAKKy0t LSBvcGVuc3NoLTkuOXAxLm9yaWcva2V4Z3Nzcy5jCTIwMjYtMDktMjIgMTE6MTE6NTkuNzI0MDY4 NTgzICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9rZXhnc3NzLmMJMjAyNi0wOS0yMiAxMToxMjoz Mi41MDU3MDgxOTggKzAyMDAKIEBAIC00OCw2ICs0OCw3IEBACiAgI2luY2x1ZGUgImRpZ2VzdC5o IgogICNpbmNsdWRlICJzc2hlcnIuaCIKQEAgLTE0MDgsNyArMTQwOSw3IEBAIGRpZmYgLU51ciBv cGVuc3NoLTkuOXAxLm9yaWcva2V4Z3Nzcy5jIG9wZW5zc2gtOS45cDEva2V4Z3Nzcy5jCiAgCX0K ICAKICAJaWYgKCEoKnJldF9mbGFncyAmIEdTU19DX01VVFVBTF9GTEFHKSkKLUBAIC01OTgsNCAr NjAyLDI2IEBACitAQCAtNjAwLDQgKzYwNCwyNiBAQAogIAlyZXR1cm4ga2V4Z3NzZ2V4X2ZpbmFs KHNzaCwgJnNlbmRfdG9rLCAmcmV0X2ZsYWdzKTsKICB9CiAgCkBAIC0xNDM2LDggKzE0MzcsOCBA QCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2tleGdzc3MuYyBvcGVuc3NoLTkuOXAxL2tl eGdzc3MuYwogKwogICNlbmRpZiAvKiBkZWZpbmVkKEdTU0FQSSkgJiYgZGVmaW5lZChXSVRIX09Q RU5TU0wpICovCiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL01ha2VmaWxlLmluIG9wZW5z c2gtOS45cDEvTWFrZWZpbGUuaW4KLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvTWFrZWZpbGUuaW4J MjAyNi0wMy0yNSAwOTozMzo1MC40MTEyMjkyNDMgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL01h a2VmaWxlLmluCTIwMjYtMDMtMjUgMDk6MzQ6MzguMTEyNTA0OTM4ICswMTAwCistLS0gb3BlbnNz aC05LjlwMS5vcmlnL01ha2VmaWxlLmluCTIwMjYtMDktMjIgMTE6MTE6NTkuODgwMTg4MTc4ICsw MjAwCisrKysgb3BlbnNzaC05LjlwMS9NYWtlZmlsZS5pbgkyMDI2LTA5LTIyIDExOjEyOjMyLjUw NjEzMzI2NCArMDIwMAogQEAgLTEzOCw2ICsxMzgsNyBAQAogIAlhdXRoMi1ub25lLm8gYXV0aDIt cGFzc3dkLm8gYXV0aDItcHVia2V5Lm8gYXV0aDItcHVia2V5ZmlsZS5vIFwKICAJbW9uaXRvci5v IG1vbml0b3Jfd3JhcC5vIGF1dGgta3JiNS5vIGtleGdzc3MubyBcCkBAIC0xNDQ3LDggKzE0NDgs OCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL01ha2VmaWxlLmluIG9wZW5zc2gtOS45 cDEvTWFrZWZpbGUuaW4KICAJc2Z0cC1zZXJ2ZXIubyBzZnRwLWNvbW1vbi5vIFwKICAJc2FuZGJv eC1udWxsLm8gc2FuZGJveC1ybGltaXQubyBzYW5kYm94LXN5c3RyYWNlLm8gc2FuZGJveC1kYXJ3 aW4ubyBcCiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL21pc2MuYyBvcGVuc3NoLTkuOXAx L21pc2MuYwotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9taXNjLmMJMjAyNi0wMy0yNSAwOTozMzo1 MC40NzE4Mjc3OTQgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL21pc2MuYwkyMDI2LTAzLTI1IDA5 OjM0OjM4LjExMjY4MDQ1MCArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9taXNjLmMJMjAy Ni0wOS0yMiAxMToxMTo1OS45ODUzNDI0ODMgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL21pc2Mu YwkyMDI2LTA5LTIyIDExOjEyOjMyLjUwNzE0NTY1MiArMDIwMAogQEAgLTQ0MCwxMSArNDQwLDE0 IEBACiAgI2RlZmluZSBXSElURVNQQUNFICIgXHRcclxuIgogICNkZWZpbmUgUVVPVEUJIlwiIgpA QCAtMTUwOSw4ICsxNTEwLDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9taXNjLmMg b3BlbnNzaC05LjlwMS9taXNjLmMKICAgKiBDb252ZXJ0IEFTQ0lJIHN0cmluZyB0byBUQ1AvSVAg cG9ydCBudW1iZXIuCiAgICogUG9ydCBtdXN0IGJlID49MCBhbmQgPD02NTUzNS4KIGRpZmYgLU51 ciBvcGVuc3NoLTkuOXAxLm9yaWcvbWlzYy5oIG9wZW5zc2gtOS45cDEvbWlzYy5oCi0tLS0gb3Bl bnNzaC05LjlwMS5vcmlnL21pc2MuaAkyMDI2LTAzLTI1IDA5OjMzOjUwLjQxNzQxNjU3MyArMDEw MAotKysrIG9wZW5zc2gtOS45cDEvbWlzYy5oCTIwMjYtMDMtMjUgMDk6MzQ6MzguMTEzNTc0MDAy ICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5vcmlnL21pc2MuaAkyMDI2LTA5LTIyIDExOjExOjU5 Ljg4NzI5NDI0NSArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvbWlzYy5oCTIwMjYtMDktMjIgMTE6 MTI6MzIuNTA4NjY0NzI4ICswMjAwCiBAQCAtMTEyLDYgKzExMiw3IEBACiAgdm9pZAkgc29ja19z ZXRfdjZvbmx5KGludCk7CiAgCkBAIC0xNTIwLDggKzE1MjEsOCBAQCBkaWZmIC1OdXIgb3BlbnNz aC05LjlwMS5vcmlnL21pc2MuaCBvcGVuc3NoLTkuOXAxL21pc2MuaAogIAogIHR5cGVkZWYgdm9p ZCBwcml2ZHJvcF9mbihzdHJ1Y3QgcGFzc3dkICopOwogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEu b3JpZy9tb25pdG9yLmMgb3BlbnNzaC05LjlwMS9tb25pdG9yLmMKLS0tLSBvcGVuc3NoLTkuOXAx Lm9yaWcvbW9uaXRvci5jCTIwMjYtMDMtMjUgMDk6MzM6NTAuNDcyNDA0NDA1ICswMTAwCi0rKysg b3BlbnNzaC05LjlwMS9tb25pdG9yLmMJMjAyNi0wMy0yNSAwOTozNDozOC4xMTQzMDAwMDQgKzAx MDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvbW9uaXRvci5jCTIwMjYtMDktMjIgMTE6MTE6NTku OTg1ODk0MzYxICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9tb25pdG9yLmMJMjAyNi0wOS0yMiAx MToxMjozMi41MDg5MjExMjUgKzAyMDAKIEBAIC0xNDgsNiArMTQ4LDkgQEAKICBpbnQgbW1fYW5z d2VyX2dzc191c2Vyb2soc3RydWN0IHNzaCAqLCBpbnQsIHN0cnVjdCBzc2hidWYgKik7CiAgaW50 IG1tX2Fuc3dlcl9nc3NfY2hlY2ttaWMoc3RydWN0IHNzaCAqLCBpbnQsIHN0cnVjdCBzc2hidWYg Kik7CkBAIC0xNjkyLDggKzE2OTMsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL21v bml0b3IuYyBvcGVuc3NoLTkuOXAxL21vbml0b3IuYwogIHsKICAJZ3NzX2J1ZmZlcl9kZXNjIGRh dGE7CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL21vbml0b3IuaCBvcGVuc3NoLTkuOXAx L21vbml0b3IuaAotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9tb25pdG9yLmgJMjAyNi0wMy0yNSAw OTozMzo1MC4zNjY1MzY1MzkgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL21vbml0b3IuaAkyMDI2 LTAzLTI1IDA5OjM0OjM4LjExNTEwMTkyNSArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9t b25pdG9yLmgJMjAyNi0wOS0yMiAxMToxMTo1OS44MzU5NjAxNzUgKzAyMDAKKysrKyBvcGVuc3No LTkuOXAxL21vbml0b3IuaAkyMDI2LTA5LTIyIDExOjEyOjMyLjUxMDcyMDQzNSArMDIwMAogQEAg LTc1LDYgKzc1LDEwIEBACiAgCiAgCU1PTklUT1JfUkVRX0dTU1NJR04gPSAxNTAsIE1PTklUT1Jf QU5TX0dTU1NJR04gPSAxNTEsCkBAIC0xNzA2LDggKzE3MDcsOCBAQCBkaWZmIC1OdXIgb3BlbnNz aC05LjlwMS5vcmlnL21vbml0b3IuaCBvcGVuc3NoLTkuOXAxL21vbml0b3IuaAogIAogIHN0cnVj dCBzc2g7CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL21vbml0b3Jfd3JhcC5jIG9wZW5z c2gtOS45cDEvbW9uaXRvcl93cmFwLmMKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvbW9uaXRvcl93 cmFwLmMJMjAyNi0wMy0yNSAwOTozMzo1MC4zNzIzMjIwMDAgKzAxMDAKLSsrKyBvcGVuc3NoLTku OXAxL21vbml0b3Jfd3JhcC5jCTIwMjYtMDMtMjUgMDk6MzQ6MzguMTE1NDQ4ODI4ICswMTAwCist LS0gb3BlbnNzaC05LjlwMS5vcmlnL21vbml0b3Jfd3JhcC5jCTIwMjYtMDktMjIgMTE6MTE6NTku ODQyMjYwMjcxICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9tb25pdG9yX3dyYXAuYwkyMDI2LTA5 LTIyIDExOjEyOjMyLjUxMDkyMTEyNCArMDIwMAogQEAgLTExMzksNiArMTEzOSw5NCBAQAogIAly ZXR1cm4gKGF1dGhlbnRpY2F0ZWQpOwogIH0KQEAgLTE4MDQsOCArMTgwNSw4IEBAIGRpZmYgLU51 ciBvcGVuc3NoLTkuOXAxLm9yaWcvbW9uaXRvcl93cmFwLmMgb3BlbnNzaC05LjlwMS9tb25pdG9y X3dyYXAuYwogIG1tX3NzaF9nc3NhcGlfc2lnbihHc3NjdHh0ICpjdHgsIGdzc19idWZmZXJfZGVz YyAqZGF0YSwgZ3NzX2J1ZmZlcl9kZXNjICpoYXNoKQogIHsKIGRpZmYgLU51ciBvcGVuc3NoLTku OXAxLm9yaWcvbW9uaXRvcl93cmFwLmggb3BlbnNzaC05LjlwMS9tb25pdG9yX3dyYXAuaAotLS0t IG9wZW5zc2gtOS45cDEub3JpZy9tb25pdG9yX3dyYXAuaAkyMDI2LTAzLTI1IDA5OjMzOjUwLjM3 NDg1NDAzNSArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvbW9uaXRvcl93cmFwLmgJMjAyNi0wMy0y NSAwOTozNDozOC4xMTU4MzI0NjcgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvbW9uaXRv cl93cmFwLmgJMjAyNi0wOS0yMiAxMToxMTo1OS44NDI2MzkyNjAgKzAyMDAKKysrKyBvcGVuc3No LTkuOXAxL21vbml0b3Jfd3JhcC5oCTIwMjYtMDktMjIgMTE6MTI6MzIuNTExOTIxMTI0ICswMjAw CiBAQCAtNzIsNiArNzIsMTAgQEAKICBpbnQgbW1fc3NoX2dzc2FwaV91c2Vyb2soY2hhciAqdXNl ciwgc3RydWN0IHBhc3N3ZCAqLCBpbnQga2V4KTsKICBPTV91aW50MzIgbW1fc3NoX2dzc2FwaV9j aGVja21pYyhHc3NjdHh0ICosIGdzc19idWZmZXJfdCwgZ3NzX2J1ZmZlcl90KTsKQEAgLTE4MTgs OSArMTgxOSw5IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvbW9uaXRvcl93cmFwLmgg b3BlbnNzaC05LjlwMS9tb25pdG9yX3dyYXAuaAogICNlbmRpZgogIAogZGlmZiAtTnVyIG9wZW5z c2gtOS45cDEub3JpZy9yZWFkY29uZi5jIG9wZW5zc2gtOS45cDEvcmVhZGNvbmYuYwotLS0tIG9w ZW5zc2gtOS45cDEub3JpZy9yZWFkY29uZi5jCTIwMjYtMDMtMjUgMDk6MzM6NTAuNDczNzk4NTEy ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9yZWFkY29uZi5jCTIwMjYtMDMtMjUgMDk6MzQ6Mzgu MTE2NjgwNDEzICswMTAwCi1AQCAtMjgxMiwxMSArMjgxMiwxMSBAQAorLS0tIG9wZW5zc2gtOS45 cDEub3JpZy9yZWFkY29uZi5jCTIwMjYtMDktMjIgMTE6MTE6NTkuOTg3MTY0NDI3ICswMjAwCisr Kysgb3BlbnNzaC05LjlwMS9yZWFkY29uZi5jCTIwMjYtMDktMjIgMTE6MTI6MzIuNTEzMDUwMjQ4 ICswMjAwCitAQCAtMjgxMCwxMSArMjgxMCwxMSBAQAogIAlpZiAob3B0aW9ucy0+cHVia2V5X2F1 dGhlbnRpY2F0aW9uID09IC0xKQogIAkJb3B0aW9ucy0+cHVia2V5X2F1dGhlbnRpY2F0aW9uID0g U1NIX1BVQktFWV9BVVRIX0FMTDsKICAJaWYgKG9wdGlvbnMtPmdzc19hdXRoZW50aWNhdGlvbiA9 PSAtMSkKQEAgLTE4MzYsOCArMTgzNyw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcv cmVhZGNvbmYuYyBvcGVuc3NoLTkuOXAxL3JlYWRjb25mLmMKICAJCW9wdGlvbnMtPmdzc190cnVz dF9kbnMgPSAwOwogIAlpZiAob3B0aW9ucy0+Z3NzX3JlbmV3YWxfcmVrZXkgPT0gLTEpCiBkaWZm IC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3JlYWRjb25mLmggb3BlbnNzaC05LjlwMS9yZWFkY29u Zi5oCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL3JlYWRjb25mLmgJMjAyNi0wMy0yNSAwOTozMzo1 MC4yNTk3NDM2OTEgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL3JlYWRjb25mLmgJMjAyNi0wMy0y NSAwOTozNDozOC4xMTcyOTI2NDQgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvcmVhZGNv bmYuaAkyMDI2LTA5LTIyIDExOjExOjU5Ljk2MDA5NDk3MiArMDIwMAorKysrIG9wZW5zc2gtOS45 cDEvcmVhZGNvbmYuaAkyMDI2LTA5LTIyIDExOjEyOjMyLjUxMzk4NTUwOSArMDIwMAogQEAgLTgw LDYgKzgwLDggQEAKICAJY2hhciAgICpob3N0X2tleV9hbGlhczsJLyogaG9zdG5hbWUgYWxpYXMg Zm9yIC5zc2gva25vd25faG9zdHMgKi8KICAJY2hhciAgICpwcm94eV9jb21tYW5kOwkvKiBQcm94 eSBjb21tYW5kIGZvciBjb25uZWN0aW5nIHRoZSBob3N0LiAqLwpAQCAtMTg0OCw4ICsxODQ5LDgg QEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9yZWFkY29uZi5oIG9wZW5zc2gtOS45cDEv cmVhZGNvbmYuaAogIAogIAl1X2ludAludW1fc3lzdGVtX2hvc3RmaWxlczsJLyogUGF0aHMgZm9y IC9ldGMvc3NoL3NzaF9rbm93bl9ob3N0cyAqLwogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3Jp Zy9zZXJ2Y29uZi5jIG9wZW5zc2gtOS45cDEvc2VydmNvbmYuYwotLS0tIG9wZW5zc2gtOS45cDEu b3JpZy9zZXJ2Y29uZi5jCTIwMjYtMDMtMjUgMDk6MzM6NTAuNDc0NzU3NTA2ICswMTAwCi0rKysg b3BlbnNzaC05LjlwMS9zZXJ2Y29uZi5jCTIwMjYtMDMtMjUgMTA6MjU6NTEuNDQyMTcwMzQ3ICsw MTAwCistLS0gb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZjb25mLmMJMjAyNi0wOS0yMiAxMToxMTo1 OS45ODc5MjU1NzQgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL3NlcnZjb25mLmMJMjAyNi0wOS0y MiAxMToxMjozMi41MTQ4NDMzOTQgKzAyMDAKIEBAIC05NSw2ICs5NSw3IEBACiAgCS8qIFBvcnRh YmxlLXNwZWNpZmljIG9wdGlvbnMgKi8KICAJb3B0aW9ucy0+dXNlX3BhbSA9IC0xOwpAQCAtMTg5 NSw3ICsxODk2LDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zZXJ2Y29uZi5jIG9w ZW5zc2gtOS45cDEvc2VydmNvbmYuYwogIAlpZiAob3B0aW9ucy0+Z3NzX3N0b3JlX3Jla2V5ID09 IC0xKQogIAkJb3B0aW9ucy0+Z3NzX3N0b3JlX3Jla2V5ID0gMDsKICAjaWZkZWYgR1NTQVBJCi1A QCAtNTgwLDcgKzU4Niw3IEBACitAQCAtNTgxLDcgKzU4Nyw3IEBACiAgdHlwZWRlZiBlbnVtIHsK ICAJc0JhZE9wdGlvbiwJCS8qID09IHVua25vd24gb3B0aW9uICovCiAgCS8qIFBvcnRhYmxlLXNw ZWNpZmljIG9wdGlvbnMgKi8KQEAgLTE5MDQsNyArMTkwNSw3IEBAIGRpZmYgLU51ciBvcGVuc3No LTkuOXAxLm9yaWcvc2VydmNvbmYuYyBvcGVuc3NoLTkuOXAxL3NlcnZjb25mLmMKICAJLyogU3Rh bmRhcmQgT3B0aW9ucyAqLwogIAlzUG9ydCwgc0hvc3RLZXlGaWxlLCBzTG9naW5HcmFjZVRpbWUs CiAgCXNQZXJtaXRSb290TG9naW4sIHNMb2dGYWNpbGl0eSwgc0xvZ0xldmVsLCBzTG9nVmVyYm9z ZSwKLUBAIC02MDIsNiArNjA4LDggQEAKK0BAIC02MDMsNiArNjA5LDggQEAKICAJc0NsaWVudEFs aXZlSW50ZXJ2YWwsIHNDbGllbnRBbGl2ZUNvdW50TWF4LCBzQXV0aG9yaXplZEtleXNGaWxlLAog IAlzR3NzQXV0aGVudGljYXRpb24sIHNHc3NDbGVhbnVwQ3JlZHMsIHNHc3NEZWxlZ2F0ZUNyZWRz LAogIAlzR3NzRW5hYmxlazV1c2Vycywgc0dzc1N0cmljdEFjY2VwdG9yLApAQCAtMTkxMyw3ICsx OTE0LDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zZXJ2Y29uZi5jIG9wZW5zc2gt OS45cDEvc2VydmNvbmYuYwogIAlzR3NzS2V5RXgsIHNHc3NJbmRpY2F0b3JzLCBzR3NzS2V4QWxn b3JpdGhtcywgc0dzc1N0b3JlUmVrZXksCiAgCXNBY2NlcHRFbnYsIHNTZXRFbnYsIHNQZXJtaXRU dW5uZWwsCiAgCXNNYXRjaCwgc1Blcm1pdE9wZW4sIHNQZXJtaXRMaXN0ZW4sIHNGb3JjZUNvbW1h bmQsIHNDaHJvb3REaXJlY3RvcnksCi1AQCAtNjM2LDkgKzY0NCwxMSBAQAorQEAgLTYzNyw5ICs2 NDUsMTEgQEAKICAjaWZkZWYgVVNFX1BBTQogIAl7ICJ1c2VwYW0iLCBzVXNlUEFNLCBTU0hDRkdf R0xPQkFMIH0sCiAgCXsgInBhbXNlcnZpY2VuYW1lIiwgc1BBTVNlcnZpY2VOYW1lLCBTU0hDRkdf QUxMIH0sCkBAIC0xOTI1LDcgKzE5MjYsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmln L3NlcnZjb25mLmMgb3BlbnNzaC05LjlwMS9zZXJ2Y29uZi5jCiAgI2VuZGlmCiAgCXsgInBhbWF1 dGhlbnRpY2F0aW9udmlha2JkaW50Iiwgc0RlcHJlY2F0ZWQsIFNTSENGR19HTE9CQUwgfSwKICAJ LyogU3RhbmRhcmQgT3B0aW9ucyAqLwotQEAgLTY5NCw2ICs3MDQsMTIgQEAKK0BAIC02OTUsNiAr NzA1LDEyIEBACiAgCXsgImdzc2FwaWNsZWFudXBjcmVkZW50aWFscyIsIHNHc3NDbGVhbnVwQ3Jl ZHMsIFNTSENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpY2xlYW51cGNyZWRzIiwgc0dzc0NsZWFu dXBDcmVkcywgU1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGlkZWxlZ2F0ZWNyZWRlbnRpYWxz Iiwgc0dzc0RlbGVnYXRlQ3JlZHMsIFNTSENGR19HTE9CQUwgfSwKQEAgLTE5MzgsNyArMTkzOSw3 IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc2VydmNvbmYuYyBvcGVuc3NoLTkuOXAx L3NlcnZjb25mLmMKICAJeyAiZ3NzYXBpc3RyaWN0YWNjZXB0b3JjaGVjayIsIHNHc3NTdHJpY3RB Y2NlcHRvciwgU1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGlrZXlleGNoYW5nZSIsIHNHc3NL ZXlFeCwgU1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGlzdG9yZWNyZWRlbnRpYWxzb25yZWtl eSIsIHNHc3NTdG9yZVJla2V5LCBTU0hDRkdfR0xPQkFMIH0sCi1AQCAtNzA1LDYgKzcyMSw4IEBA CitAQCAtNzA2LDYgKzcyMiw4IEBACiAgCXsgImdzc2FwaWNsZWFudXBjcmVkZW50aWFscyIsIHNV bnN1cHBvcnRlZCwgU1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGljbGVhbnVwY3JlZHMiLCBz VW5zdXBwb3J0ZWQsIFNTSENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpZGVsZWdhdGVjcmVkZW50 aWFscyIsIHNVbnN1cHBvcnRlZCwgU1NIQ0ZHX0dMT0JBTCB9LApAQCAtMTk0Nyw3ICsxOTQ4LDcg QEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zZXJ2Y29uZi5jIG9wZW5zc2gtOS45cDEv c2VydmNvbmYuYwogIAl7ICJnc3NhcGlzdHJpY3RhY2NlcHRvcmNoZWNrIiwgc1Vuc3VwcG9ydGVk LCBTU0hDRkdfR0xPQkFMIH0sCiAgCXsgImdzc2FwaWtleWV4Y2hhbmdlIiwgc1Vuc3VwcG9ydGVk LCBTU0hDRkdfR0xPQkFMIH0sCiAgCXsgImdzc2FwaXN0b3JlY3JlZGVudGlhbHNvbnJla2V5Iiwg c1Vuc3VwcG9ydGVkLCBTU0hDRkdfR0xPQkFMIH0sCi1AQCAtNzc5LDYgKzc5Nyw4IEBACitAQCAt NzgwLDYgKzc5OCw4IEBACiAgCXsgInBlcm1pdGxpc3RlbiIsIHNQZXJtaXRMaXN0ZW4sIFNTSENG R19BTEwgfSwKICAJeyAiZm9yY2Vjb21tYW5kIiwgc0ZvcmNlQ29tbWFuZCwgU1NIQ0ZHX0FMTCB9 LAogIAl7ICJjaHJvb3RkaXJlY3RvcnkiLCBzQ2hyb290RGlyZWN0b3J5LCBTU0hDRkdfQUxMIH0s CkBAIC0xOTU2LDcgKzE5NTcsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZj b25mLmMgb3BlbnNzaC05LjlwMS9zZXJ2Y29uZi5jCiAgCXsgImhvc3RjZXJ0aWZpY2F0ZSIsIHNI b3N0Q2VydGlmaWNhdGUsIFNTSENGR19HTE9CQUwgfSwKICAJeyAicmV2b2tlZGtleXMiLCBzUmV2 b2tlZEtleXMsIFNTSENGR19BTEwgfSwKICAJeyAidHJ1c3RlZHVzZXJjYWtleXMiLCBzVHJ1c3Rl ZFVzZXJDQUtleXMsIFNTSENGR19BTEwgfSwKLUBAIC0xNDQ5LDYgKzE0NjksMTAgQEAKK0BAIC0x NDUxLDYgKzE0NzEsMTAgQEAKICAJCQkqY2hhcnB0ciA9IHhzdHJkdXAoYXJnKTsKICAJCWJyZWFr OwogIApAQCAtMTk2Nyw3ICsxOTY4LDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9z ZXJ2Y29uZi5jIG9wZW5zc2gtOS45cDEvc2VydmNvbmYuYwogIAkvKiBTdGFuZGFyZCBPcHRpb25z ICovCiAgCWNhc2Ugc0JhZE9wdGlvbjoKICAJCWdvdG8gb3V0OwotQEAgLTE3MTIsNiArMTczNiwx MCBAQAorQEAgLTE3MTQsNiArMTczOCwxMCBAQAogIAkJaW50cHRyID0gJm9wdGlvbnMtPmdzc19k ZWxlZ19jcmVkczsKICAJCWdvdG8gcGFyc2VfZmxhZzsKICAKQEAgLTE5NzgsNyArMTk3OSw3IEBA IGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc2VydmNvbmYuYyBvcGVuc3NoLTkuOXAxL3Nl cnZjb25mLmMKICAJY2FzZSBzR3NzU3RyaWN0QWNjZXB0b3I6CiAgCQlpbnRwdHIgPSAmb3B0aW9u cy0+Z3NzX3N0cmljdF9hY2NlcHRvcjsKICAJCWdvdG8gcGFyc2VfZmxhZzsKLUBAIC0xNzQxLDYg KzE3NjksMTIgQEAKK0BAIC0xNzQzLDYgKzE3NzEsMTIgQEAKICAJCQlvcHRpb25zLT5nc3NfaW5k aWNhdG9ycyA9IHhzdHJkdXAoYXJnKTsKICAJCWJyZWFrOwogIApAQCAtMTk5MSw3ICsxOTkyLDcg QEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zZXJ2Y29uZi5jIG9wZW5zc2gtOS45cDEv c2VydmNvbmYuYwogIAljYXNlIHNQYXNzd29yZEF1dGhlbnRpY2F0aW9uOgogIAkJaW50cHRyID0g Jm9wdGlvbnMtPnBhc3N3b3JkX2F1dGhlbnRpY2F0aW9uOwogIAkJZ290byBwYXJzZV9mbGFnOwot QEAgLTMwMTAsNiArMzA0NCw3IEBACitAQCAtMzAxNCw2ICszMDQ4LDcgQEAKICAKICAJTV9DUF9J TlRPUFQocGFzc3dvcmRfYXV0aGVudGljYXRpb24pOwogIAlNX0NQX0lOVE9QVChnc3NfYXV0aGVu dGljYXRpb24pOwpAQCAtMjAwMCw4ICsyMDAxLDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEu b3JpZy9zZXJ2Y29uZi5jIG9wZW5zc2gtOS45cDEvc2VydmNvbmYuYwogIAlNX0NQX0lOVE9QVChw dWJrZXlfYXV0aF9vcHRpb25zKTsKICAJTV9DUF9JTlRPUFQoa2VyYmVyb3NfYXV0aGVudGljYXRp b24pOwogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zZXJ2Y29uZi5oIG9wZW5zc2gtOS45 cDEvc2VydmNvbmYuaAotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9zZXJ2Y29uZi5oCTIwMjYtMDMt MjUgMDk6MzM6NTAuNDY0OTgwODgxICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9zZXJ2Y29uZi5o CTIwMjYtMDMtMjUgMDk6NDY6NDcuOTg3OTMwODY2ICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5v cmlnL3NlcnZjb25mLmgJMjAyNi0wOS0yMiAxMToxMTo1OS45MzY0MDQ2ODQgKzAyMDAKKysrKyBv cGVuc3NoLTkuOXAxL3NlcnZjb25mLmgJMjAyNi0wOS0yMiAxMToxMjozMi41MTU2MjY1ODIgKzAy MDAKIEBAIC0xNTUsMTAgKzE1NSwxMiBAQAogIAkJCQkJCSAqIGJlIHN0b3JlZCBpbiBwZXItc2Vz c2lvbiBjY2FjaGUgKi8KICAJaW50CXVzZV9rdXNlcm9rOwpAQCAtMjAyNCw4ICsyMDI1LDggQEAg ZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zZXJ2Y29uZi5oIG9wZW5zc2gtOS45cDEvc2Vy dmNvbmYuaAogIAlpbnQJcGVybWl0X3R1bjsKICAKIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9y aWcvc3NoLjEgb3BlbnNzaC05LjlwMS9zc2guMQotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9zc2gu MQkyMDI2LTAzLTI1IDA5OjMzOjUwLjM4OTYzNzU5OCArMDEwMAotKysrIG9wZW5zc2gtOS45cDEv c3NoLjEJMjAyNi0wMy0yNSAwOTozNDozOC4xMjA1MDI5NzkgKzAxMDAKKy0tLSBvcGVuc3NoLTku OXAxLm9yaWcvc3NoLjEJMjAyNi0wOS0yMiAxMToxMTo1OS44NTc3MzQ4ODYgKzAyMDAKKysrKyBv cGVuc3NoLTkuOXAxL3NzaC4xCTIwMjYtMDktMjIgMTE6MTI6MzIuNTE2MTczMTI2ICswMjAwCiBA QCAtMTUyMyw2ICsxNTIzLDE4IEBACiAgb24gdG8gbmV3IGNvbm5lY3Rpb25zKS4KICAuSXQgRXYg VVNFUgpAQCAtMjA0Niw4ICsyMDQ3LDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9z c2guMSBvcGVuc3NoLTkuOXAxL3NzaC4xCiAgLlBwCiAgQWRkaXRpb25hbGx5LAogZGlmZiAtTnVy IG9wZW5zc2gtOS45cDEub3JpZy9zc2guYyBvcGVuc3NoLTkuOXAxL3NzaC5jCi0tLS0gb3BlbnNz aC05LjlwMS5vcmlnL3NzaC5jCTIwMjYtMDMtMjUgMDk6MzM6NTAuNDYwMzE2ODY0ICswMTAwCi0r Kysgb3BlbnNzaC05LjlwMS9zc2guYwkyMDI2LTAzLTI1IDA5OjM0OjM4LjEyMDY4MDM3NiArMDEw MAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9zc2guYwkyMDI2LTA5LTIyIDExOjExOjU5Ljk3ODAx MDk4MCArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvc3NoLmMJMjAyNi0wOS0yMiAxMToxMjozMi41 MTcyODQ3NTEgKzAyMDAKIEBAIC01ODUsNiArNTg1LDM4IEBACiAgCQkJZmF0YWwoIkNhbid0IG9w ZW4gdXNlciBjb25maWcgZmlsZSAlLjEwMHM6ICIKICAJCQkgICAgIiUuMTAwcyIsIGNvbmZpZywg c3RyZXJyb3IoZXJybm8pKTsKQEAgLTIwODcsNyArMjA4OCw3IEBAIGRpZmYgLU51ciBvcGVuc3No LTkuOXAxLm9yaWcvc3NoLmMgb3BlbnNzaC05LjlwMS9zc2guYwogIAkJciA9IHNucHJpbnRmKGJ1 Ziwgc2l6ZW9mIGJ1ZiwgIiVzLyVzIiwgcHctPnB3X2RpciwKICAJCSAgICBfUEFUSF9TU0hfVVNF Ul9DT05GRklMRSk7CiAgCQlpZiAociA+IDAgJiYgKHNpemVfdClyIDwgc2l6ZW9mKGJ1ZikpCi1A QCAtMTMxOCw4ICsxMzUwLDEyIEBACitAQCAtMTI2Niw4ICsxMjk4LDEyIEBACiAgCWlmIChmaWxs X2RlZmF1bHRfb3B0aW9ucygmb3B0aW9ucykgIT0gMCkKICAJCWNsZWFudXBfZXhpdCgyNTUpOwog IApAQCAtMjEwMiw4ICsyMTAzLDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2gu YyBvcGVuc3NoLTkuOXAxL3NzaC5jCiAgCS8qCiAgCSAqIElmIFByb3h5SnVtcCBvcHRpb24gc3Bl Y2lmaWVkLCB0aGVuIGNvbnN0cnVjdCBhIFByb3h5Q29tbWFuZCBub3cuCiBkaWZmIC1OdXIgb3Bl bnNzaC05LjlwMS5vcmlnL3NzaF9jb25maWcgb3BlbnNzaC05LjlwMS9zc2hfY29uZmlnCi0tLS0g b3BlbnNzaC05LjlwMS5vcmlnL3NzaF9jb25maWcJMjAyNi0wMy0yNSAwOTozMzo1MC4yNjI1MzI4 MTIgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL3NzaF9jb25maWcJMjAyNi0wMy0yNSAwOTozNDoz OC4xMjE1Mjg4MTEgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoX2NvbmZpZwkyMDI2 LTA5LTIyIDExOjExOjU5LjczMDIwODQ5NCArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvc3NoX2Nv bmZpZwkyMDI2LTA5LTIyIDExOjEyOjMyLjUxNzgyODUxMiArMDIwMAogQEAgLTIyLDkgKzIyLDkg QEAKICAjICAgRm9yd2FyZFgxMSBubwogICMgICBQYXNzd29yZEF1dGhlbnRpY2F0aW9uIHllcwpA QCAtMjExOCw4ICsyMTE5LDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2hfY29u ZmlnIG9wZW5zc2gtOS45cDEvc3NoX2NvbmZpZwogICMgICBCYXRjaE1vZGUgbm8KICAjICAgQ2hl Y2tIb3N0SVAgbm8KIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoX2NvbmZpZy41IG9w ZW5zc2gtOS45cDEvc3NoX2NvbmZpZy41Ci0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL3NzaF9jb25m aWcuNQkyMDI2LTAzLTI1IDA5OjMzOjUwLjQwNTU1NzU1MyArMDEwMAotKysrIG9wZW5zc2gtOS45 cDEvc3NoX2NvbmZpZy41CTIwMjYtMDMtMjUgMDk6MzQ6MzguMTIyMTUyMDA3ICswMTAwCistLS0g b3BlbnNzaC05LjlwMS5vcmlnL3NzaF9jb25maWcuNQkyMDI2LTA5LTIyIDExOjExOjU5Ljg3Mzky NTU5MCArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvc3NoX2NvbmZpZy41CTIwMjYtMDktMjIgMTE6 MTI6MzIuNTE4MjQ2MzkxICswMjAwCiBAQCAtNTIsNiArNTIsMTIgQEAKICB1c2VyJ3MgY29uZmln dXJhdGlvbiBmaWxlCiAgLlBxIFBhIH4vLnNzaC9jb25maWcKQEAgLTIxNjcsOSArMjE2OCw5IEBA IGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoX2NvbmZpZy41IG9wZW5zc2gtOS45cDEv c3NoX2NvbmZpZy41CiAgLkVkCiAgLkl0IENtIFByb3h5Q29tbWFuZAogZGlmZiAtTnVyIG9wZW5z c2gtOS45cDEub3JpZy9zc2hjb25uZWN0Mi5jIG9wZW5zc2gtOS45cDEvc3NoY29ubmVjdDIuYwot LS0tIG9wZW5zc2gtOS45cDEub3JpZy9zc2hjb25uZWN0Mi5jCTIwMjYtMDMtMjUgMDk6MzM6NTAu NDU2MDc3Mjc1ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9zc2hjb25uZWN0Mi5jCTIwMjYtMDMt MjUgMDk6MzQ6MzguMTIyNzQ2MDA5ICswMTAwCi1AQCAtODYwLDYgKzg2MCwxMSBAQAorLS0tIG9w ZW5zc2gtOS45cDEub3JpZy9zc2hjb25uZWN0Mi5jCTIwMjYtMDktMjIgMTE6MTE6NTkuOTY1NzQ1 NjY5ICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9zc2hjb25uZWN0Mi5jCTIwMjYtMDktMjIgMTE6 MTI6MzIuNTE5NTk3MjI3ICswMjAwCitAQCAtODY3LDYgKzg2NywxMSBAQAogIAlnc3NfT0lEIG1l Y2ggPSBOVUxMOwogIAljaGFyICpnc3NfaG9zdCA9IE5VTEw7CiAgCkBAIC0yMTgxLDcgKzIxODIs NyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGNvbm5lY3QyLmMgb3BlbnNzaC05 LjlwMS9zc2hjb25uZWN0Mi5jCiAgCWlmIChvcHRpb25zLmdzc19zZXJ2ZXJfaWRlbnRpdHkpIHsK ICAJCWdzc19ob3N0ID0geHN0cmR1cChvcHRpb25zLmdzc19zZXJ2ZXJfaWRlbnRpdHkpOwogIAl9 IGVsc2UgaWYgKG9wdGlvbnMuZ3NzX3RydXN0X2RucykgewotQEAgLTk2OCw3ICs5NzMsOCBAQAor QEAgLTk3NSw3ICs5ODAsOCBAQAogIAogIAlpZiAoc3RhdHVzID09IEdTU19TX0NPTVBMRVRFKSB7 CiAgCQkvKiBzZW5kIGVpdGhlciBjb21wbGV0ZSBvciBNSUMsIGRlcGVuZGluZyBvbiBtZWNoYW5p c20gKi8KQEAgLTIxOTEsNyArMjE5Miw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcv c3NoY29ubmVjdDIuYyBvcGVuc3NoLTkuOXAxL3NzaGNvbm5lY3QyLmMKICAJCQlpZiAoKHIgPSBz c2hwa3Rfc3RhcnQoc3NoLAogIAkJCSAgICBTU0gyX01TR19VU0VSQVVUSF9HU1NBUElfRVhDSEFO R0VfQ09NUExFVEUpKSAhPSAwIHx8CiAgCQkJICAgIChyID0gc3NocGt0X3NlbmQoc3NoKSkgIT0g MCkKLUBAIC0xMTM1LDYgKzExNDEsMjAgQEAKK0BAIC0xMTQyLDYgKzExNDgsMjAgQEAKICAJcmV0 dXJuIHI7CiAgfQogIApAQCAtMjIxMiw3ICsyMjEzLDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45 cDEub3JpZy9zc2hjb25uZWN0Mi5jIG9wZW5zc2gtOS45cDEvc3NoY29ubmVjdDIuYwogIGludAog IHVzZXJhdXRoX2dzc2tleWV4KHN0cnVjdCBzc2ggKnNzaCkKICB7Ci1AQCAtMTE1Nyw2ICsxMTc3 LDEyIEBACitAQCAtMTE2NCw2ICsxMTg0LDEyIEBACiAgCWlmICgoYiA9IHNzaGJ1Zl9uZXcoKSkg PT0gTlVMTCkKICAJCWZhdGFsX2YoInNzaGJ1Zl9uZXcgZmFpbGVkIik7CiAgCkBAIC0yMjI1LDcg KzIyMjYsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGNvbm5lY3QyLmMgb3Bl bnNzaC05LjlwMS9zc2hjb25uZWN0Mi5jCiAgCXNzaF9nc3NhcGlfYnVpbGRtaWMoYiwgYXV0aGN0 eHQtPnNlcnZlcl91c2VyLCBhdXRoY3R4dC0+c2VydmljZSwKICAJICAgICJnc3NhcGkta2V5ZXgi LCBzc2gtPmtleC0+c2Vzc2lvbl9pZCk7CiAgCi1AQCAtMTE3MCw3ICsxMTk2LDkgQEAKK0BAIC0x MTc3LDcgKzEyMDMsOSBAQAogIAl9CiAgCiAgCWlmICgociA9IHNzaHBrdF9zdGFydChzc2gsIFNT SDJfTVNHX1VTRVJBVVRIX1JFUVVFU1QpKSAhPSAwIHx8CkBAIC0yMjM3LDggKzIyMzgsOCBAQCBk aWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGNvbm5lY3QyLmMgb3BlbnNzaC05LjlwMS9z c2hjb25uZWN0Mi5jCiAgCSAgICAociA9IHNzaHBrdF9wdXRfY3N0cmluZyhzc2gsIGF1dGhjdHh0 LT5tZXRob2QtPm5hbWUpKSAhPSAwIHx8CiAgCSAgICAociA9IHNzaHBrdF9wdXRfc3RyaW5nKHNz aCwgbWljLnZhbHVlLCBtaWMubGVuZ3RoKSkgIT0gMCB8fAogZGlmZiAtTnVyIG9wZW5zc2gtOS45 cDEub3JpZy9zc2hkLjggb3BlbnNzaC05LjlwMS9zc2hkLjgKLS0tLSBvcGVuc3NoLTkuOXAxLm9y aWcvc3NoZC44CTIwMjYtMDMtMjUgMDk6MzM6NTAuMjc4ODE2MTUyICswMTAwCi0rKysgb3BlbnNz aC05LjlwMS9zc2hkLjgJMjAyNi0wMy0yNSAwOTozNDozOC4xMjM1OTQ1ODMgKzAxMDAKKy0tLSBv cGVuc3NoLTkuOXAxLm9yaWcvc3NoZC44CTIwMjYtMDktMjIgMTE6MTE6NTkuNzQ1MDU4ODU1ICsw MjAwCisrKysgb3BlbnNzaC05LjlwMS9zc2hkLjgJMjAyNi0wOS0yMiAxMToxMjozMi41MjAyMjgw NzAgKzAyMDAKIEBAIC04NDAsNiArODQwLDI5IEBACiAgIyBBIENBIGtleSwgYWNjZXB0ZWQgZm9y IGFueSBob3N0IGluICoubXlkb21haW4uY29tIG9yICoubXlkb21haW4ub3JnCiAgQGNlcnQtYXV0 aG9yaXR5ICoubXlkb21haW4ub3JnLCoubXlkb21haW4uY29tIHNzaC1yc2EgQUFBQUI1Vy4uLgpA QCAtMjI3MCw4ICsyMjcxLDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2hkLjgg b3BlbnNzaC05LjlwMS9zc2hkLjgKICAuQmwgLXRhZyAtd2lkdGggRHMgLWNvbXBhY3QKICAuSXQg UGEgfi8uaHVzaGxvZ2luCiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGRfY29uZmln IG9wZW5zc2gtOS45cDEvc3NoZF9jb25maWcKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoZF9j b25maWcJMjAyNi0wMy0yNSAwOTozMzo1MC4zMDMwMTYwMjggKzAxMDAKLSsrKyBvcGVuc3NoLTku OXAxL3NzaGRfY29uZmlnCTIwMjYtMDMtMjUgMDk6MzQ6MzguMTI0MDIzNDgwICswMTAwCistLS0g b3BlbnNzaC05LjlwMS5vcmlnL3NzaGRfY29uZmlnCTIwMjYtMDktMjIgMTE6MTE6NTkuNzY3MjMy MjcxICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9zc2hkX2NvbmZpZwkyMDI2LTA5LTIyIDExOjEy OjMyLjUyMDk2NjE1MCArMDIwMAogQEAgLTc2LDEwICs3NiwxMSBAQAogICNLZXJiZXJvc1VzZUt1 c2Vyb2sgeWVzCiAgCkBAIC0yMjk4LDggKzIyOTksOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05Ljlw MS5vcmlnL3NzaGRfY29uZmlnIG9wZW5zc2gtOS45cDEvc3NoZF9jb25maWcKICAjQWxsb3dUY3BG b3J3YXJkaW5nIHllcwogICNHYXRld2F5UG9ydHMgbm8KIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAx Lm9yaWcvc3NoZF9jb25maWcuNSBvcGVuc3NoLTkuOXAxL3NzaGRfY29uZmlnLjUKLS0tLSBvcGVu c3NoLTkuOXAxLm9yaWcvc3NoZF9jb25maWcuNQkyMDI2LTAzLTI1IDA5OjMzOjUwLjQ2NTU3NDA0 NSArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvc3NoZF9jb25maWcuNQkyMDI2LTAzLTI1IDA5OjU2 OjMwLjI3ODU1NTgxNSArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9zc2hkX2NvbmZpZy41 CTIwMjYtMDktMjIgMTE6MTE6NTkuOTM3MjMwOTIxICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9z c2hkX2NvbmZpZy41CTIwMjYtMDktMjIgMTE6MTI6MzIuNTIxNDM5NjQwICswMjAwCiBAQCAtNzI0 LDE1ICs3MjQsMzAgQEAKICB0byBhbGxvdyB0aGUgY2xpZW50IHRvIHNlbGVjdCB0aGUgYWRkcmVz cyB0byB3aGljaCB0aGUgZm9yd2FyZGluZyBpcyBib3VuZC4KICBUaGUgZGVmYXVsdCBpcwpAQCAt MjMzMSw3ICsyMzMyLDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2hkX2NvbmZp Zy41IG9wZW5zc2gtOS45cDEvc3NoZF9jb25maWcuNQogK0N1cnJlbnRseSBvbmx5IGltcGxlbWVu dGVkIGZvciB0aGUgR1NJIG1lY2hhbmlzbS4KICAuSXQgQ20gR1NTQVBJRGVsZWdhdGVDcmVkZW50 aWFscwogIEFjY2VwdCBkZWxlZ2F0ZWQgY3JlZGVudGlhbHMgb24gdGhlIHNlcnZlciBzaWRlLiAg VGhlIGRlZmF1bHQgaXMKLSAuQ00geWVzIC4KKyAuQ20geWVzIC4KIEBAIC03NDYsNyArNzYxLDcg QEAKICBTcGVjaWZpZXMgd2hldGhlciBrZXkgZXhjaGFuZ2UgYmFzZWQgb24gR1NTQVBJIGlzIGFs bG93ZWQuIEdTU0FQSSBrZXkgZXhjaGFuZ2UKICBkb2Vzbid0IHJlbHkgb24gc3NoIGtleXMgdG8g dmVyaWZ5IGhvc3QgaWRlbnRpdHkuCkBAIC0yMzQxLDcgKzIzNDIsNyBAQCBkaWZmIC1OdXIgb3Bl bnNzaC05LjlwMS5vcmlnL3NzaGRfY29uZmlnLjUgb3BlbnNzaC05LjlwMS9zc2hkX2NvbmZpZy41 CiAgLkl0IENtIEdTU0FQSVN0cmljdEFjY2VwdG9yQ2hlY2sKICBEZXRlcm1pbmVzIHdoZXRoZXIg dG8gYmUgc3RyaWN0IGFib3V0IHRoZSBpZGVudGl0eSBvZiB0aGUgR1NTQVBJIGFjY2VwdG9yCiAg YSBjbGllbnQgYXV0aGVudGljYXRlcyBhZ2FpbnN0LgotQEAgLTIwOTYsNiArMjExMSwxMiBAQAor QEAgLTIwOTgsNiArMjExMywxMiBAQAogIGFzIGEgbm9uLXJvb3QgdXNlci4KICBUaGUgZGVmYXVs dCBpcwogIC5DbSBubyAuCkBAIC0yMzU1LDggKzIzNTYsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL3NzaGRfY29uZmlnLjUgb3BlbnNzaC05LjlwMS9zc2hkX2NvbmZpZy41CiAgT3B0 aW9uYWxseSBzcGVjaWZpZXMgYWRkaXRpb25hbCB0ZXh0IHRvIGFwcGVuZCB0byB0aGUgU1NIIHBy b3RvY29sIGJhbm5lcgogIHNlbnQgYnkgdGhlIHNlcnZlciB1cG9uIGNvbm5lY3Rpb24uCiBkaWZm IC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGRfY29uZmlnX3JlZGhhdCBvcGVuc3NoLTkuOXAx L3NzaGRfY29uZmlnX3JlZGhhdAotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9zc2hkX2NvbmZpZ19y ZWRoYXQJMjAyNi0wMy0yNSAwOTozMzo1MC4yNDI5Mzc4NjYgKzAxMDAKLSsrKyBvcGVuc3NoLTku OXAxL3NzaGRfY29uZmlnX3JlZGhhdAkyMDI2LTAzLTI1IDA5OjM0OjM4LjEyNTQzNTExNyArMDEw MAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9zc2hkX2NvbmZpZ19yZWRoYXQJMjAyNi0wOS0yMiAx MToxMTo1OS43MTM5OTY4NjggKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL3NzaGRfY29uZmlnX3Jl ZGhhdAkyMDI2LTA5LTIyIDExOjEyOjMyLjUyMTk1OTQ3MiArMDIwMAogQEAgLTIsOSArMiw2IEBA CiAgCiAgQ2hhbGxlbmdlUmVzcG9uc2VBdXRoZW50aWNhdGlvbiBubwpAQCAtMjM2OCw4ICsyMzY5 LDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2hkX2NvbmZpZ19yZWRoYXQgb3Bl bnNzaC05LjlwMS9zc2hkX2NvbmZpZ19yZWRoYXQKICAKICBYMTFGb3J3YXJkaW5nIHllcwogZGlm ZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2hkLXNlc3Npb24uYyBvcGVuc3NoLTkuOXAxL3Nz aGQtc2Vzc2lvbi5jCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL3NzaGQtc2Vzc2lvbi5jCTIwMjYt MDMtMjUgMDk6MzM6NTAuNDc2MzU2NDU3ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9zc2hkLXNl c3Npb24uYwkyMDI2LTAzLTI1IDA5OjM0OjM4LjEyNjE2OTE1MSArMDEwMAorLS0tIG9wZW5zc2gt OS45cDEub3JpZy9zc2hkLXNlc3Npb24uYwkyMDI2LTA5LTIyIDExOjExOjU5Ljk4OTQ4NTI4MCAr MDIwMAorKysrIG9wZW5zc2gtOS45cDEvc3NoZC1zZXNzaW9uLmMJMjAyNi0wOS0yMiAxMToxMjoz Mi41MjIyNzQ2NDcgKzAyMDAKIEBAIC0xNDg2LDcgKzE0ODYsNyBAQAogICNlbmRpZgogIApAQCAt MjM4MCw4ICsyMzgxLDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2hkLXNlc3Np b24uYyBvcGVuc3NoLTkuOXAxL3NzaGQtc2Vzc2lvbi5jCiAgCQlhdXRoY3R4dC0+a3JiNV9zZXRf ZW52ID0gc3NoX2dzc2FwaV9zdG9yZWNyZWRzKCk7CiAgCQlyZXN0b3JlX3VpZCgpOwogZGlmZiAt TnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2gtZ3NzLmggb3BlbnNzaC05LjlwMS9zc2gtZ3NzLmgK LS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoLWdzcy5oCTIwMjYtMDMtMjUgMDk6MzM6NTAuNDQw NzYxNzk4ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9zc2gtZ3NzLmgJMjAyNi0wMy0yNSAwOToz NDozOC4xMjY4NTE1NzMgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoLWdzcy5oCTIw MjYtMDktMjIgMTE6MTE6NTkuOTEyNTA4Nzc2ICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9zc2gt Z3NzLmgJMjAyNi0wOS0yMiAxMToxMjozMi41MjMxNzE2MzEgKzAyMDAKIEBAIC0xMTAsMTIgKzEx MCwxNCBAQAogIH0gc3NoX2dzc2FwaV9jY2FjaGU7CiAgCkBAIC0yNDE5LDcgKzI0MjAsNyBAQCBk aWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaC1nc3MuaCBvcGVuc3NoLTkuOXAxL3NzaC1n c3MuaAogICAgICBjb25zdCBjaGFyICopOwogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy92 ZXJzaW9uLmggb3BlbnNzaC05LjlwMS92ZXJzaW9uLmgKIC0tLSBvcGVuc3NoLTkuOXAxLm9yaWcv dmVyc2lvbi5oCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCi0rKysgb3BlbnNz aC05LjlwMS92ZXJzaW9uLmgJMjAyNi0wMy0yNSAwOTozNDozOC4xMjcxOTYzODAgKzAxMDAKKysr KyBvcGVuc3NoLTkuOXAxL3ZlcnNpb24uaAkyMDI2LTA5LTIyIDExOjEyOjMyLjUyMzY2OTg2NSAr MDIwMAogQEAgLTIsNSArMiwxOSBAQAogIAogICNkZWZpbmUgU1NIX1ZFUlNJT04JIk9wZW5TU0hf OS45IgoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEtc2NwLXJlbW90ZS1nbG9iLnBhdGNoIGIv b3BlbnNzaC05LjlwMS1zY3AtcmVtb3RlLWdsb2IucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uYzA4MTAxZQotLS0gL2Rldi9udWxsCisrKyBiL29wZW5zc2gtOS45cDEt c2NwLXJlbW90ZS1nbG9iLnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKK2RpZmYgLS1jb2xvciAtcnVO cCBhL3NjcC5jIGIvc2NwLmMKKy0tLSBhL3NjcC5jCTIwMjYtMDctMTQgMTE6NDA6NDcuNzU0NjAw ODQ3ICswMjAwCisrKysgYi9zY3AuYwkyMDI2LTA3LTE0IDExOjQzOjA0LjA3NzUyNDUxNyArMDIw MAorQEAgLTIwNzAsNiArMjA3MCwxMCBAQCB0aHJvdWdobG9jYWxfc2Z0cChzdHJ1Y3Qgc2Z0cF9j b25uICpmcm9tCisgCQkJZ290byBvdXQ7CisgCQl9CisgCisrCQkvKiBTcGVjaWFsIGhhbmRsaW5n IGZvciBzb3VyY2Ugb2YgJy4uJyAqLworKwkJaWYgKHN0cmNtcChmaWxlbmFtZSwgIi4uIikgPT0g MCkKKysJCQlmaWxlbmFtZSA9ICIuIjsgLyogRG93bmxvYWQgdG8gZGVzdCwgbm90IGRlc3QvLi4g Ki8KKysKKyAJCWlmICh0YXJnZXRpc2RpcikKKyAJCQlhYnNfZHN0ID0gc2Z0cF9wYXRoX2FwcGVu ZCh0YXJnZXQsIGZpbGVuYW1lKTsKKyAJCWVsc2UKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAx LXNzaGQtbm8tZGVsZWdhdGUtY3JlZGVudGlhbHMucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLXNzaGQt bm8tZGVsZWdhdGUtY3JlZGVudGlhbHMucGF0Y2gKaW5kZXggNTlkMDEyMC4uNzEzMmM5YiAxMDA2 NDQKLS0tIGEvb3BlbnNzaC05LjlwMS1zc2hkLW5vLWRlbGVnYXRlLWNyZWRlbnRpYWxzLnBhdGNo CisrKyBiL29wZW5zc2gtOS45cDEtc3NoZC1uby1kZWxlZ2F0ZS1jcmVkZW50aWFscy5wYXRjaApA QCAtMTExLDcgKzExMSw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGRfY29uZmlnLjUgYi9z c2hkX2NvbmZpZy41CiAgLkNtIHllcyAuCiArLkl0IENtIEdTU0FQSURlbGVnYXRlQ3JlZGVudGlh bHMKICtBY2NlcHQgZGVsZWdhdGVkIGNyZWRlbnRpYWxzIG9uIHRoZSBzZXJ2ZXIgc2lkZS4gIFRo ZSBkZWZhdWx0IGlzCi0rLkNNIHllcyAuCisrLkNtIHllcyAuCiAgLkl0IENtIEdTU0FQSUVuYWJs ZWs1dXNlcnMKICBTcGVjaWZpZXMgd2hldGhlciB0byBsb29rIGF0IC5rNXVzZXJzIGZpbGUgZm9y IEdTU0FQSSBhdXRoZW50aWNhdGlvbgogIGFjY2VzcyBjb250cm9sLiBGdXJ0aGVyIGRldGFpbHMg YXJlIGRlc2NyaWJlZCBpbgoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEtc3VwcG9ydC1hdXRo ZW50aWNhdGlvbi1pbmRpY2F0b3JzLWluLUdTU0FQSS5wYXRjaCBiL29wZW5zc2gtOS45cDEtc3Vw cG9ydC1hdXRoZW50aWNhdGlvbi1pbmRpY2F0b3JzLWluLUdTU0FQSS5wYXRjaAppbmRleCA2YzU1 YTY2Li5lZjcwMzc5IDEwMDY0NAotLS0gYS9vcGVuc3NoLTkuOXAxLXN1cHBvcnQtYXV0aGVudGlj YXRpb24taW5kaWNhdG9ycy1pbi1HU1NBUEkucGF0Y2gKKysrIGIvb3BlbnNzaC05LjlwMS1zdXBw b3J0LWF1dGhlbnRpY2F0aW9uLWluZGljYXRvcnMtaW4tR1NTQVBJLnBhdGNoCkBAIC0xMCw4ICsx MCw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwog IAkJQUNfU0VBUkNIX0xJQlMoW2tfaGFzYWZzXSwgW2thZnNdLCBbQUNfREVGSU5FKFtVU0VfQUZT XSwgWzFdLAogIAkJCVtEZWZpbmUgdGhpcyBpZiB5b3Ugd2FudCB0byB1c2UgbGlia2FmcycgQUZT IHN1cHBvcnRdKV0pCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9nc3Mtc2Vydi5jIGIvZ3NzLXNlcnYu YwotLS0tIGEvZ3NzLXNlcnYuYwkyMDI2LTAzLTEwIDEyOjQzOjM2LjgwMjQ0MzAzNCArMDEwMAot KysrIGIvZ3NzLXNlcnYuYwkyMDI2LTAzLTEyIDEwOjA0OjM3LjUyMDk5MzMzMCArMDEwMAorLS0t IGEvZ3NzLXNlcnYuYwkyMDI2LTA2LTE2IDE1OjM4OjI2LjU5MDcyODIzNSArMDIwMAorKysrIGIv Z3NzLXNlcnYuYwkyMDI2LTA2LTE2IDE1OjQxOjEzLjcxNzY5NjEwMyArMDIwMAogQEAgLTUzLDcg KzUzLDcgQEAgZXh0ZXJuIFNlcnZlck9wdGlvbnMgb3B0aW9uczsKICAKICBzdGF0aWMgc3NoX2dz c2FwaV9jbGllbnQgZ3NzYXBpX2NsaWVudCA9CkBAIC0yMSw3ICsyMSw3IEBAIGRpZmYgLS1jb2xv ciAtcnVOcCBhL2dzcy1zZXJ2LmMgYi9nc3Mtc2Vydi5jCiAgCiAgc3NoX2dzc2FwaV9tZWNoIGdz c2FwaV9udWxsX21lY2ggPQogICAgICB7IE5VTEwsIE5VTEwsIHswLCBOVUxMfSwgTlVMTCwgTlVM TCwgTlVMTCwgTlVMTCwgTlVMTH07Ci1AQCAtMjk1LDYgKzI5NSw5NSBAQCBzc2hfZ3NzYXBpX3Bh cnNlX2VuYW1lKEdzc2N0eHQgKmN0eCwgZ3NzCitAQCAtMjk1LDYgKzI5NSw5OSBAQCBzc2hfZ3Nz YXBpX3BhcnNlX2VuYW1lKEdzc2N0eHQgKmN0eCwgZ3NzCiAgCXJldHVybiBHU1NfU19DT01QTEVU RTsKICB9CiAgCkBAIC00NCw2MyArNDQsNjcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNl cnYuYyBiL2dzcy1zZXJ2LmMKICsJaW50IGlzX21lY2huYW1lLCBhdXRoZW50aWNhdGVkLCBjb21w bGV0ZSwgbW9yZTsKICsJc2l6ZV90IGNvdW50LCBpOwogKworKwkvKiBhbHdheXMgaW5pdGlhbGl6 ZSBjbGllbnQtPmluZGljYXRvcnMgKi8KKysJY2xpZW50LT5pbmRpY2F0b3JzID0gTlVMTDsKKysK ICsJY3R4LT5tYWpvciA9IGdzc19pbnF1aXJlX25hbWUoJmN0eC0+bWlub3IsIGdzc19uYW1lLAog KwkJCQkgICAgICAmaXNfbWVjaG5hbWUsIE5VTEwsICZhdHRycyk7Ci0rCWlmIChjdHgtPm1ham9y ICE9IEdTU19TX0NPTVBMRVRFKSB7Ci0rCQlyZXR1cm4gKGN0eC0+bWFqb3IpOwotKwl9CisrCWlm IChjdHgtPm1ham9yICE9IEdTU19TX0NPTVBMRVRFKQorKwkJcmV0dXJuIGN0eC0+bWFqb3I7CiAr CiArCWlmIChhdHRycyA9PSBHU1NfQ19OT19CVUZGRVJfU0VUKSB7Ci0rCQkvKiBObyBpbmRpY2F0 b3JzIGluIHRoZSB0aWNrZXQgKi8KLSsJCXJldHVybiAoMCk7CisrCQkvKiBubyBpbmRpY2F0b3Jz IGluIHRoZSB0aWNrZXQgKi8KKysJCXJldHVybiBHU1NfU19DT01QTEVURTsKICsJfQogKwotKwlj bGllbnQtPmluZGljYXRvcnMgPSBOVUxMOworKwkvKiBjbGllbnQtPmluZGljYXRvcnMgaXMgTlVM TCB0ZXJtaW5hdGVkICovCiArCWNvdW50ID0gMDsKKysJY2xpZW50LT5pbmRpY2F0b3JzID0geGNh bGxvYyhjb3VudCArIDEsIHNpemVvZihjaGFyICopKTsKKysKICsJZm9yIChpID0gMDsgaSA8IGF0 dHJzLT5jb3VudDsgaSsrKSB7CiArCQlhdXRoZW50aWNhdGVkID0gMDsKICsJCWNvbXBsZXRlID0g MDsKICsJCW1vcmUgPSAtMTsKKysKICsJCS8qIHNraXAgYW55dGhpbmcgYnV0IGF1dGgtaW5kaWNh dG9ycyAqLwogKwkJaWYgKCgoc2l6ZW9mKEFVVEhfSU5ESUNBVE9SU19UQUcpIC0gMSkgIT0gYXR0 cnMtPmVsZW1lbnRzW2ldLmxlbmd0aCkgfHwKLSsJCSAgICBtZW1jbXAoQVVUSF9JTkRJQ0FUT1JT X1RBRywKLSsJCQkgICBhdHRycy0+ZWxlbWVudHNbaV0udmFsdWUsCisrCQkgICAgbWVtY21wKEFV VEhfSU5ESUNBVE9SU19UQUcsIGF0dHJzLT5lbGVtZW50c1tpXS52YWx1ZSwKICsJCQkgICBzaXpl b2YoQVVUSF9JTkRJQ0FUT1JTX1RBRykgLSAxKSAhPSAwKQogKwkJCWNvbnRpbnVlOworKwogKwkJ LyogcmV0cmlldmUgYWxsIGluZGljYXRvcnMgKi8KICsJCXdoaWxlIChtb3JlICE9IDApIHsKICsJ CQl2YWx1ZS52YWx1ZSA9IE5VTEw7CiArCQkJZGlzcGxheV92YWx1ZS52YWx1ZSA9IE5VTEw7Cisr CiArCQkJY3R4LT5tYWpvciA9IGdzc19nZXRfbmFtZV9hdHRyaWJ1dGUoJmN0eC0+bWlub3IsIGdz c19uYW1lLAotKwkJCQkJCQkgICAgJmF0dHJzLT5lbGVtZW50c1tpXSwgJmF1dGhlbnRpY2F0ZWQs Ci0rCQkJCQkJCSAgICAmY29tcGxldGUsICZ2YWx1ZSwgJmRpc3BsYXlfdmFsdWUsICZtb3JlKTsK KysJCQkJCQkJICAgICZhdHRycy0+ZWxlbWVudHNbaV0sCisrCQkJCQkJCSAgICAmYXV0aGVudGlj YXRlZCwgJmNvbXBsZXRlLAorKwkJCQkJCQkgICAgJnZhbHVlLCAmZGlzcGxheV92YWx1ZSwgJm1v cmUpOwogKwkJCWlmIChjdHgtPm1ham9yICE9IEdTU19TX0NPTVBMRVRFKQogKwkJCQlnb3RvIG91 dDsKICsKLSsJCQlpZiAoKHZhbHVlLnZhbHVlICE9IE5VTEwpICYmIGF1dGhlbnRpY2F0ZWQpIHsK LSsJCQkJaWYgKGNvdW50ID49IFNTSF9HU1NBUElfTUFYX0lORElDQVRPUlMpIHsKLSsJCQkJCWxv Z2l0KCJzc2hfZ3NzYXBpX2dldGluZGljYXRvcnM6IHRvbyBtYW55ICIKLSsJCQkJCSAgICAiaW5k aWNhdG9ycywgdHJ1bmNhdGluZyBhdCAlZCIsCi0rCQkJCQkgICAgU1NIX0dTU0FQSV9NQVhfSU5E SUNBVE9SUyk7Ci0rCQkJCQkvKiB2YWx1ZS9kaXNwbGF5X3ZhbHVlIHJlbGVhc2VkIGF0IG91dDog Ki8KLSsJCQkJCWdvdG8gZG9uZTsKLSsJCQkJfQorKwkJCWlmICh2YWx1ZS52YWx1ZSA9PSBOVUxM IHx8ICFhdXRoZW50aWNhdGVkKQorKwkJCQljb250aW51ZTsKICsKLSsJCQkJY2xpZW50LT5pbmRp Y2F0b3JzID0geHJlY2FsbG9jYXJyYXkoY2xpZW50LT5pbmRpY2F0b3JzLCBjb3VudCwgY291bnQg KyAxLCBzaXplb2YoY2hhciopKTsKLSsJCQkJaWYgKGNsaWVudC0+aW5kaWNhdG9ycyA9PSBOVUxM KSB7Ci0rCQkJCQlmYXRhbCgic3NoX2dzc2FwaV9nZXRpbmRpY2F0b3JzIGZhaWxlZCB0byBhbGxv Y2F0ZSBtZW1vcnkiKTsKLSsJCQkJfQotKwkJCQljbGllbnQtPmluZGljYXRvcnNbY291bnRdID0g eG1hbGxvYyh2YWx1ZS5sZW5ndGggKyAxKTsKLSsJCQkJbWVtY3B5KGNsaWVudC0+aW5kaWNhdG9y c1tjb3VudF0sIHZhbHVlLnZhbHVlLCB2YWx1ZS5sZW5ndGgpOwotKwkJCQljbGllbnQtPmluZGlj YXRvcnNbY291bnRdW3ZhbHVlLmxlbmd0aF0gPSAnXDAnOwotKwkJCQljb3VudCsrOworKwkJCWlm IChjb3VudCA+PSBTU0hfR1NTQVBJX01BWF9JTkRJQ0FUT1JTKSB7CisrCQkJCWxvZ2l0KCJzc2hf Z3NzYXBpX2dldGluZGljYXRvcnM6IgorKwkJCQkgICAgICAiIHRvbyBtYW55IGluZGljYXRvcnMs IHRydW5jYXRpbmcgYXQgJWQiLAorKwkJCQkgICAgICBTU0hfR1NTQVBJX01BWF9JTkRJQ0FUT1JT KTsKKysJCQkJZ290byBvdXQ7CiArCQkJfQorKworKwkJCWNsaWVudC0+aW5kaWNhdG9yc1tjb3Vu dF0gPSB4bWFsbG9jKHZhbHVlLmxlbmd0aCArIDEpOworKwkJCW1lbWNweShjbGllbnQtPmluZGlj YXRvcnNbY291bnRdLCB2YWx1ZS52YWx1ZSwgdmFsdWUubGVuZ3RoKTsKKysJCQljbGllbnQtPmlu ZGljYXRvcnNbY291bnRdW3ZhbHVlLmxlbmd0aF0gPSAnXDAnOworKwkJCWNvdW50Kys7CisrCisr CQkJLyogYWRkIE5VTEwgdGVybWluYXRvciAqLworKwkJCWNsaWVudC0+aW5kaWNhdG9ycyA9IHhy ZWNhbGxvY2FycmF5KGNsaWVudC0+aW5kaWNhdG9ycywgY291bnQsCisrCQkJCQkJCSAgICBjb3Vu dCArIDEsIHNpemVvZihjaGFyICopKTsKICsJCX0KICsJfQogKwotK2RvbmU6Ci0rCS8qIHNsb3Qg W2NvdW50XSBpcyB6ZXJvZWQgYnkgcmVjYWxsb2NhcnJheSwgc2VydmVzIGFzIE5VTEwgc2VudGlu ZWwgKi8KLSsKICtvdXQ6CiArCWlmIChjdHgtPm1ham9yICE9IEdTU19TX0NPTVBMRVRFICYmIGNs aWVudC0+aW5kaWNhdG9ycyAhPSBOVUxMKSB7CiArCQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkr KykKQEAgLTEwOCwxNiArMTEyLDE2IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2dzcy1zZXJ2LmMg Yi9nc3Mtc2Vydi5jCiArCQlmcmVlKGNsaWVudC0+aW5kaWNhdG9ycyk7CiArCQljbGllbnQtPmlu ZGljYXRvcnMgPSBOVUxMOwogKwl9Ci0rCSh2b2lkKSBnc3NfcmVsZWFzZV9idWZmZXIoJmN0eC0+ bWlub3IsICZ2YWx1ZSk7Ci0rCSh2b2lkKSBnc3NfcmVsZWFzZV9idWZmZXIoJmN0eC0+bWlub3Is ICZkaXNwbGF5X3ZhbHVlKTsKLSsJKHZvaWQpIGdzc19yZWxlYXNlX2J1ZmZlcl9zZXQoJmN0eC0+ bWlub3IsICZhdHRycyk7Ci0rCXJldHVybiAoY3R4LT5tYWpvcik7CisrCWdzc19yZWxlYXNlX2J1 ZmZlcigmY3R4LT5taW5vciwgJnZhbHVlKTsKKysJZ3NzX3JlbGVhc2VfYnVmZmVyKCZjdHgtPm1p bm9yLCAmZGlzcGxheV92YWx1ZSk7CisrCWdzc19yZWxlYXNlX2J1ZmZlcl9zZXQoJmN0eC0+bWlu b3IsICZhdHRycyk7CisrCXJldHVybiBjdHgtPm1ham9yOwogK30KICsKICAvKiBFeHRyYWN0IHRo ZSBjbGllbnQgZGV0YWlscyBmcm9tIGEgZ2l2ZW4gY29udGV4dC4gVGhpcyBjYW4gb25seSByZWxp YWJseQogICAqIGJlIGNhbGxlZCBvbmNlIGZvciBhIGNvbnRleHQgKi8KICAKLUBAIC0zODQsNiAr NDczLDEyIEBAIHNzaF9nc3NhcGlfZ2V0Y2xpZW50KEdzc2N0eHQgKmN0eCwgc3NoX2cKK0BAIC0z ODQsNiArNDc3LDEyIEBAIHNzaF9nc3NhcGlfZ2V0Y2xpZW50KEdzc2N0eHQgKmN0eCwgc3NoX2cK ICAJfQogIAogIAlnc3NfcmVsZWFzZV9idWZmZXIoJmN0eC0+bWlub3IsICZlbmFtZSk7CkBAIC0x MzAsNyArMTM0LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNlcnYuYyBiL2dzcy1zZXJ2 LmMKICAKICAJLyogV2UgY2FuJ3QgY29weSB0aGlzIHN0cnVjdHVyZSwgc28gd2UganVzdCBtb3Zl IHRoZSBwb2ludGVyIHRvIGl0ICovCiAgCWNsaWVudC0+Y3JlZHMgPSBjdHgtPmNsaWVudF9jcmVk czsKLUBAIC00NDYsNiArNTQxLDcgQEAgaW50CitAQCAtNDQ2LDYgKzU0NSw3IEBAIGludAogIHNz aF9nc3NhcGlfdXNlcm9rKGNoYXIgKnVzZXIsIHN0cnVjdCBwYXNzd2QgKnB3LCBpbnQga2V4KQog IHsKICAJT01fdWludDMyIGxtaW47CkBAIC0xMzgsNyArMTQyLDcgQEAgZGlmZiAtLWNvbG9yIC1y dU5wIGEvZ3NzLXNlcnYuYyBiL2dzcy1zZXJ2LmMKICAKICAJKHZvaWQpIGtleDsgLyogdXNlZCBp biBwcml2aWxlZ2Ugc2VwYXJhdGlvbiAqLwogIAotQEAgLTQ2NCw4ICs1NjAsMTQgQEAgc3NoX2dz c2FwaV91c2Vyb2soY2hhciAqdXNlciwgc3RydWN0IHBhcworQEAgLTQ2NCw4ICs1NjQsMTQgQEAg c3NoX2dzc2FwaV91c2Vyb2soY2hhciAqdXNlciwgc3RydWN0IHBhcwogIAkJCWdzc19yZWxlYXNl X2J1ZmZlcigmbG1pbiwgJmdzc2FwaV9jbGllbnQuZGlzcGxheW5hbWUpOwogIAkJCWdzc19yZWxl YXNlX2J1ZmZlcigmbG1pbiwgJmdzc2FwaV9jbGllbnQuZXhwb3J0ZWRuYW1lKTsKICAJCQlnc3Nf cmVsZWFzZV9jcmVkKCZsbWluLCAmZ3NzYXBpX2NsaWVudC5jcmVkcyk7CkBAIC0xNjYsNyArMTcw LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNlcnYta3JiNS5jIGIvZ3NzLXNlcnYta3Ji NS5jCiAgCiAgI2luY2x1ZGUgInNzaC1nc3MuaCIKICAKLUBAIC04Nyw2ICs4OCwzMyBAQCBzc2hf Z3NzYXBpX2tyYjVfaW5pdCh2b2lkKQorQEAgLTg3LDYgKzg4LDQyIEBAIHNzaF9nc3NhcGlfa3Ji NV9pbml0KHZvaWQpCiAgCXJldHVybiAxOwogIH0KICAKQEAgLTE3NCw2ICsxNzgsMTAgQEAgZGlm ZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNlcnYta3JiNS5jIGIvZ3NzLXNlcnYta3JiNS5jCiArICog b25lIG9mIGluZGljYXRvcnMgaW4gdGhlIGxpc3Qgb2YgYWxsb3dlZC9kZW5pZWQgcnVsZXMuCiAr ICogSW4gY2FzZSBvZiB0aGUgbWF0Y2gsIGFwcGx5IHRoZSBkZWNpc2lvbiBmcm9tIHRoZSBydWxl LgogKyAqIEluIGNhc2Ugb2Ygbm8gaW5kaWNhdG9yIGZyb20gdGhlIHRpY2tldCBtYXRjaGluZyB0 aGUgcnVsZSwgZGVueQorKyAqCisrICogUmV0dXJucyAtMSBvbiBhbnkgbmVnYXRpdmUgbWF0Y2gK KysgKiBSZXR1cm5zIDEgb24gcG9zaXRpdmUgbWF0Y2ggYW5kIG5vIG5lZ2F0aXZlIG1hdGNoZXMK KysgKiBSZXR1cm5zIDAgd2hlbiBubyBtYXRjaGVzIG9jY3VycmVkCiArICovCiArCiArc3RhdGlj IGludApAQCAtMTgzLDE4ICsxOTEsMjMgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNlcnYt a3JiNS5jIGIvZ3NzLXNlcnYta3JiNS5jCiArCXVfaW50IGk7CiArCSptYXRjaGVkID0gLTE7CiAr Ci0rCS8qIENoZWNrIGluZGljYXRvcnMgKi8KICsJZm9yIChpID0gMDsgY2xpZW50LT5pbmRpY2F0 b3JzW2ldICE9IE5VTEw7IGkrKykgewogKwkJcmV0ID0gbWF0Y2hfcGF0dGVybl9saXN0KGNsaWVu dC0+aW5kaWNhdG9yc1tpXSwKICsJCQkJCSBvcHRpb25zLmdzc19pbmRpY2F0b3JzLCAxKTsKLSsJ CS8qIG5lZ2F0aXZlIG9yIHBvc2l0aXZlIG1hdGNoICovCi0rCQlpZiAocmV0ICE9IDApIHsKKysK KysJCS8qIHJlY29yZCBmaXJzdCBwb3NpdGl2ZSBtYXRjaCAqLworKwkJaWYgKHJldCA9PSAxICYm ICptYXRjaGVkID09IC0xKQorKwkJCSptYXRjaGVkID0gaTsKKysKKysJCS8qIGRlbnkgcnVsZSBt YXRjaGVkLCByZXR1cm4gbmVnYXRpdmUgKi8KKysJCWlmIChyZXQgPT0gLTEpIHsKICsJCQkqbWF0 Y2hlZCA9IGk7Ci0rCQkJcmV0dXJuIHJldDsKKysJCQlyZXR1cm4gLTE7CiArCQl9CiArCX0KLSsJ LyogTm8gcnVsZSBtYXRjaGVkICovCi0rCXJldHVybiAwOworKwkvKiBpZiB0aGVyZSB3YXMgYSBt YXRjaCwgaXQgd2FzIHBvc2l0aXZlLAorKwkgKiBvdGhlcndpc2Ugbm8gbWF0Y2ggKi8KKysJcmV0 dXJuICptYXRjaGVkICE9IC0xOwogK30KICsKICAvKiBDaGVjayBpZiB0aGlzIHVzZXIgaXMgT0sg dG8gbG9naW4uIFRoaXMgb25seSB3b3JrcyB3aXRoIGtyYjUgLSBvdGhlcgo=