ZGlmZiAtLWdpdCBhL2FwL2xpYi9saWJscGEvbHBhX2lubmVyLmggYi9hcC9saWIvbGlibHBhL2xwYV9pbm5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ3N2JkNjgKLS0tIC9kZXYvbnVsbAorKysgYi9hcC9saWIvbGlibHBhL2xwYV9pbm5lci5oCkBAIC0wLDAgKzEsMTA3IEBACisjaWZuZGVmIF9fTFBBX0lOTkVSX0hfXw0KKyNkZWZpbmUgX19MUEFfSU5ORVJfSF9fDQorDQorI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+DQorI2luY2x1ZGUgPG9wZW5zc2wvYmlvLmg+DQorDQorI2luY2x1ZGUgImxwYV9hcGkuaCINCisNCisjaW5jbHVkZSAiY2pzb24uaCINCisjaW5jbHVkZSAibWQ1LmgiDQorI2luY2x1ZGUgImVycm5vLmgiDQorDQorI2RlZmluZSBNQVhfSU1FSV9MRU4gMTcNCisjZGVmaW5lIE1BWF9UUkFOU0lEX0xFTiA0MQ0KKw0KKyNkZWZpbmUgQ1NJTV9SRVFfTEVOIDYwMCANCisjZGVmaW5lIENTSU1fUkVTUF9MRU4gNjAwIA0KKyNkZWZpbmUgQVBEVV9SRVFfTEVOIDUyMCAvL3RhZzEwKzI1NSoyKzAwDQorI2RlZmluZSBBUERVX1JFU1BfTEVOIDUyMCAvLzB4RkYqMitzdzErc3cyPTUxNA0KKyNkZWZpbmUgQVBEVV9CWVRFX0xFTiAyNjEgLy9jc2lt0K3S6dW7t7W72NfutPOzpLbIMjU1IEFQRFVfUkVTUF9MRU4vMisxDQorI2RlZmluZSBNSU5fQVBEVV9MRU4gMTYgLy84MEUyOTEwMDA0VEcwMVhYDQorDQorI2RlZmluZSBTTURQX0hUVFBfTUFYX0xFTiAweDIwMDAwIC8vMTI4Sw0KKyNkZWZpbmUgVFJJR19IVFRQX01BWF9MRU4gMHgyMDAwIC8vOEsNCisjZGVmaW5lIEhUVFBfQ0hVTktFRF9GTEFHIDB4N0ZGRkZGRkYNCisNCisNCisNCisNCisjZGVmaW5lIElDQ0lEX0xFTiAyMA0KKw0KKy8vI2RlZmluZSBDU0lNX0FQRFVfTEVOIDUxMSAgLy9jc2lt0K3S6dW7t7W72NfutPOzpLbIMjU1DQorDQorI2lmbmRlZiBCT09MDQorI2RlZmluZSBCT09MIAkgIAl1bnNpZ25lZCBjaGFyDQorI2VuZGlmDQorI2lmbmRlZiBUUlVFDQorI2RlZmluZQlUUlVFCTENCisjZW5kaWYNCisjaWZuZGVmIEZBTFNFDQorI2RlZmluZQlGQUxTRQkwDQorI2VuZGlmDQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIGludCBzb2NrX2ZkOw0KKyAgICBTU0xfQ1RYICpzc2xfY3Q7DQorICAgIFNTTCAqc3NsOw0KKyANCisgICAgLy91cmwgveLO9rP2wLS1xNDFz6INCisgICAgY2hhciAqaG9zdDsNCisgICAgY2hhciAqcGF0aDsNCisgICAgaW50IHBvcnQ7DQorfSBodHRwc19jb250ZXh0X3Q7DQorDQorLy9odHRwcw0KK2ludCBodHRwc19pbml0KGh0dHBzX2NvbnRleHRfdCAqY29udGV4dCk7DQoraW50IGh0dHBzX3VuaW5pdChodHRwc19jb250ZXh0X3QgKmNvbnRleHQpOw0KK2ludCBodHRwc19yZWFkKGh0dHBzX2NvbnRleHRfdCAqY29udGV4dCx2b2lkKiBidWZmLGludCBsZW4pOw0KK2ludCBodHRwc193cml0ZShodHRwc19jb250ZXh0X3QgKmNvbnRleHQsY29uc3Qgdm9pZCogYnVmZixpbnQgbGVuKTsNCitpbnQgaHR0cHNfZ2V0X3N0YXR1c19jb2RlKGh0dHBzX2NvbnRleHRfdCAqY29udGV4dCwgaW50ICpjb250ZW50X2xlbik7DQoraW50IGh0dHBzX3JlYWRfY29udGVudChodHRwc19jb250ZXh0X3QgKmNvbnRleHQsY2hhciAqcmVzcF9jb250ZXQsaW50IG1heF9sZW4pOw0KKw0KKy8vZXMxMGINCitjaGFyICpHZXRFVUlDQ0NoYWxsZW5nZSh2b2lkKTsNCitjaGFyICpHZXRFVUlDQ0luZm8oQk9PTCBmbGFnKTsNCitjaGFyICpBdXRoZW50aWNhdGVTZXJ2ZXIoY2hhciAqc2lnbmQxSGV4LCBjaGFyICpzaWduYXR1cmUxSGV4LCBjaGFyICpjaVBLSWRIZXgsIGNoYXIgKmNlcnRpZmljYXRlSGV4LCBjaGFyICptYXRjaGluZ0lkLCBjaGFyICppbWVpSGV4KTsNCitjaGFyICpQcmVwYXJlRG93bmxvYWQoY2hhciAqdHJhbnNJZCAsY2hhciAqc2lnbmVkMkhleCxjaGFyICpzaWduYXR1cmUySGV4LGNoYXIgKmNlcnRpSGV4LGNoYXIgKmNvbmZpcm1Db2RlKTsNCitjaGFyICpMb2FkQm91bmRQcm9maWxlUGFja2FnZShjaGFyICogYnBwSGV4KTsNCisNCisNCisvL2VzMTBjDQorY2hhciAqRW5hYmxlUHJvZmlsZShjaGFyICppY2NpZEhleCk7DQorY2hhciAqRVVJQ0NNZW1vcnlSZXNldCh2b2lkKTsNCitjaGFyICpHZXRQcm9maWxlc0luZm8oY2hhciAqaWNjaWRIZXgpOw0KK2NoYXIgKkRpc2FibGVQcm9maWxlKGNoYXIgKmljY2lkSGV4KTsNCitjaGFyICpEZWxldGVQcm9maWxlICAoY2hhciAqaWNjaWRIZXgpOw0KK2NoYXIgKkdldEVJRCh2b2lkKTsNCisNCisvL2VzOSsNCitjaGFyICpJbml0aWF0ZUF1dGhlbnRpY2F0aW9uKGNoYXIgKmV1aWNjQ2hhbGxlbmdlLCBjaGFyICpldWljY0luZm8xLCBjaGFyICpzbWRwQWRkcmVzcyk7DQorY2hhciAqQXV0aGVudGljYXRlQ2xpZW50KGNoYXIgKnRyYW5zYWN0aW9uSWQsY2hhciAqYXV0aFNlclJlc3BIZXgpOw0KK2NoYXIgKkdldEJvdW5kUHJvZmlsZVBhY2thZ2UgKGNoYXIgKnRyYW5zYWN0aW9uSWQsIGNoYXIgKnByZWRsUmVzcEhleCk7DQorY2hhciAqSGFuZGxlTm90aWZpY2F0aW9uKGNoYXIgKnBuZkhleCk7DQorDQorLy9jaGFubmVsDQorY2hhciAqT3BlbkxvZ2ljYWxDaGFubmVsKHZvaWQpOw0KK2ludCBDbG9zZUxvZ2ljYWxDaGFubmVsKGludCBjaGFuX2lkKTsNCisNCisNCisvL2VkY29kZQ0KK2NoYXIgKmxwYV90bHZfZ2V0X3ZhbF9ieV90YWcodW5zaWduZWQgY2hhciAqYXBkdV9ieXRlLCBpbnQgYXBkdV9sZW4sIHVuc2lnbmVkIGludCB0YWcpOw0KK2NoYXIgKmxwYV90YWdfYXBkdV9mcm9tX2F0cmVzcChjaGFyICphdHJlc19hcGR1LCB1bnNpZ25lZCBpbnQgdGFnKTsNCitjaGFyICpscGFfZ2V0X2FwZHVfZnJvbV9hdHJlc3AoY2hhciAqYXRyZXNfYXBkdSk7DQoraW50IGxwYV9jc2ltX3Jlc3BfY29kZShjaGFyICphdHJlc19hcGR1LCBpbnQgKnNlY29uZF9sZW4pOw0KK2ludCBscGFfY3NpbV9yZXNwX25vcm1hbChjaGFyICphdHJlc19hcGR1KTsNCisNCitpbnQgc3RyaW5nMmJ5dGVzKGNvbnN0IGNoYXIqIHBTcmMsIHVuc2lnbmVkIGNoYXIqIHBEc3QsIGludCBuU3JjTGVuZ3RoKTsNCitpbnQgYnl0ZXMyc3RyaW5nKGNvbnN0IHVuc2lnbmVkIGNoYXIqIHBTcmMsIGNoYXIqIHBEc3QsIGludCBuU3JjTGVuZ3RoKTsNCisNCitjaGFyICpscGFfYmFzZTY0X2VuY29kZShjb25zdCBjaGFyKmRhdGEsIGludCBkYXRhX2xlbik7DQordW5zaWduZWQgY2hhciAqbHBhX2Jhc2U2NF9kZWNvZGUoY29uc3QgdW5zaWduZWQgY2hhciAqc3JjLCBpbnQgbGVuLCBpbnQgKm91dF9sZW4pOw0KKw0KK3ZvaWQgbHBhX3RyYW5zX2ljY2lkKGNoYXIgKmljY2lkLCBpbnQgbGVuKTsNCisNCisjZW5kaWYNCg==