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/globus-gsi-credential] rawhide: Compile with OpenSSL 4 Date: Sun, 14 Jun 2026 08:48:39 GMT Message-ID: <178142691900.1.15955051551463147434.rpms-globus-gsi-credential-62a68d2b8f64@fedoraproject.org> List-ID: X-Git-Repo: rpms/globus-gsi-credential X-Git-Branch: rawhide X-Git-Rev: 62a68d2b8f64a20cb68a447821f5bbd015e61ac2 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2xvYnVzLWdzaS1j cmVkZW50aWFsCkJyYW5jaCA6IHJhd2hpZGUKQ29tbWl0IDogNjJhNjhkMmI4ZjY0YTIwY2I2OGE0 NDc4MjFmNWJiZDAxNWU2MWFjMgpBdXRob3IgOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxl cnRAcGh5c2ljcy51dS5zZT4KRGF0ZSAgIDogMjAyNi0wNi0xNFQxMDozOToxMyswMjowMApTdGF0 cyAgOiArMjAwMS8tMSBpbiAzIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJv amVjdC5vcmcvcnBtcy9nbG9idXMtZ3NpLWNyZWRlbnRpYWwvYy82MmE2OGQyYjhmNjRhMjBjYjY4 YTQ0NzgyMWY1YmJkMDE1ZTYxYWMyP2JyYW5jaD1yYXdoaWRlCgpMb2c6CkNvbXBpbGUgd2l0aCBP cGVuU1NMIDQKCi0tLQpkaWZmIC0tZ2l0IGEvMDAwMS1VbnRhYmlmeS1hbmQtcmVtb3ZlLXRyYWls aW5nLXdoaXRlLXNwYWNlLnBhdGNoIGIvMDAwMS1VbnRhYmlmeS1hbmQtcmVtb3ZlLXRyYWlsaW5n LXdoaXRlLXNwYWNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcz OWVjYzYKLS0tIC9kZXYvbnVsbAorKysgYi8wMDAxLVVudGFiaWZ5LWFuZC1yZW1vdmUtdHJhaWxp bmctd2hpdGUtc3BhY2UucGF0Y2gKQEAgLTAsMCArMSwxOTIxIEBACitGcm9tIDNjY2RhYTAyMzYy MzBiYmNiY2JmMzM5ZTdkZmRmYWYyM2MxMGJkNmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51dS5zZT4KK0RhdGU6 IFdlZCwgMjAgTWF5IDIwMjYgMDA6MTU6MzcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzJdIFVu dGFiaWZ5IGFuZCByZW1vdmUgdHJhaWxpbmcgd2hpdGUtc3BhY2UKKworLS0tCisgLi4uL3NvdXJj ZS9saWJyYXJ5L2dsb2J1c19nc2lfY3JlZF9oYW5kbGUuYyAgIHwgMTc4ICsrKystLS0tLQorIC4u Li9zb3VyY2UvbGlicmFyeS9nbG9idXNfZ3NpX2NyZWRlbnRpYWwuYyAgICB8IDM0MCArKysrKysr KystLS0tLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDI1OSBpbnNlcnRpb25zKCspLCAyNTkgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nc2kvY3JlZGVudGlhbC9zb3VyY2UvbGlicmFyeS9n bG9idXNfZ3NpX2NyZWRfaGFuZGxlLmMgYi9nc2kvY3JlZGVudGlhbC9zb3VyY2UvbGlicmFyeS9n bG9idXNfZ3NpX2NyZWRfaGFuZGxlLmMKK2luZGV4IDgxYWNkNWI0My4uY2YzZGMyYTE4IDEwMDY0 NAorLS0tIGEvZ3NpL2NyZWRlbnRpYWwvc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9jcmVkX2hh bmRsZS5jCisrKysgYi9nc2kvY3JlZGVudGlhbC9zb3VyY2UvbGlicmFyeS9nbG9idXNfZ3NpX2Ny ZWRfaGFuZGxlLmMKK0BAIC00Nyw3ICs0Nyw3IEBACisgICoKKyAgKiBAcGFyYW0gaGFuZGxlCisg ICogICAgICAgIFRoZSBoYW5kbGUgdG8gYmUgaW5pdGlhbGl6ZWQKKy0gKiBAcGFyYW0gaGFuZGxl X2F0dHJzIAorKyAqIEBwYXJhbSBoYW5kbGVfYXR0cnMKKyAgKiAgICAgICAgVGhlIGltbXV0YWJs ZSBhdHRyaWJ1dGVzIG9mIHRoZSBoYW5kbGUKKyAgKgorICAqIEByZXR1cm4KK0BAIC05MywxMyAr OTMsMTMgQEAgZ2xvYnVzX2dzaV9jcmVkX2hhbmRsZV9pbml0KAorIAorICAgICBpZihoYW5kbGVf YXR0cnMgPT0gTlVMTCkKKyAgICAgeworLSAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2dzaV9jcmVk X2hhbmRsZV9hdHRyc19pbml0KCYoKmhhbmRsZSktPmF0dHJzKTsgICAgICAgIAorKyAgICAgICAg cmVzdWx0ID0gZ2xvYnVzX2dzaV9jcmVkX2hhbmRsZV9hdHRyc19pbml0KCYoKmhhbmRsZSktPmF0 dHJzKTsKKyAgICAgfQorICAgICBlbHNlCisgICAgIHsKKyAgICAgICAgIHJlc3VsdCA9IGdsb2J1 c19nc2lfY3JlZF9oYW5kbGVfYXR0cnNfY29weSgKKy0gICAgICAgICAgICBoYW5kbGVfYXR0cnMs IAorLSAgICAgICAgICAgICYgKCpoYW5kbGUpLT5hdHRycyk7ICAgIAorKyAgICAgICAgICAgIGhh bmRsZV9hdHRycywKKysgICAgICAgICAgICAmICgqaGFuZGxlKS0+YXR0cnMpOworICAgICB9Cisg CisgICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKK0BAIC0xMzAsNyArMTMwLDcgQEAg Z2xvYnVzX2dzaV9jcmVkX2hhbmRsZV9pbml0KAorICAqCisgICogQHBhcmFtIGhhbmRsZQorICAq ICAgICAgICBUaGUgY3JlZGVudGlhbCBoYW5kbGUgdG8gYmUgZGVzdHJveWVkCistICogQHJldHVy biAKKysgKiBAcmV0dXJuCisgICogICAgICAgIEdMT0JVU19TVUNDRVNTCisgICovCisgZ2xvYnVz X3Jlc3VsdF90CitAQCAtMTYwLDcgKzE2MCw3IEBAIGdsb2J1c19nc2lfY3JlZF9oYW5kbGVfZGVz dHJveSgKKyAKKyAgICAgICAgIGdsb2J1c19saWJjX2ZyZWUoaGFuZGxlKTsKKyAgICAgfQorLSAg ICAKKysKKyAgICAgR0xPQlVTX0lfR1NJX0NSRURfREVCVUdfRVhJVDsKKyAKKyAgICAgcmV0dXJu IEdMT0JVU19TVUNDRVNTOworQEAgLTE5OCw3ICsxOTgsNyBAQCBnbG9idXNfZ3NpX2NyZWRfaGFu ZGxlX2NvcHkoCisgICAgICAgICAgICAgKF9HQ1JTTCgiTnVsbCBwYXJhbWV0ZXIgcGFzc2VkIHRv IGZ1bmN0aW9uIikpKTsKKyAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgfQorLSAgICAKKysKKyAg ICAgaWYoc291cmNlLT5hdHRycykKKyAgICAgeworICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2dz aV9jcmVkX2hhbmRsZV9pbml0KGRlc3QsIHNvdXJjZS0+YXR0cnMpOworQEAgLTI1NCwxMyArMjU0 LDEzIEBAIGdsb2J1c19nc2lfY3JlZF9oYW5kbGVfY29weSgKKyAgICAgeworICAgICAgICAgaW50 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFpbl9pbmRleCA9IDA7CisgICAgICAgICAo KmRlc3QpLT5jZXJ0X2NoYWluID0gc2tfWDUwOV9uZXdfbnVsbCgpOworLSAgICAgICAgZm9yKGNo YWluX2luZGV4ID0gMDsgCistICAgICAgICAgICAgY2hhaW5faW5kZXggPCBza19YNTA5X251bShz b3VyY2UtPmNlcnRfY2hhaW4pOyAKKysgICAgICAgIGZvcihjaGFpbl9pbmRleCA9IDA7CisrICAg ICAgICAgICAgY2hhaW5faW5kZXggPCBza19YNTA5X251bShzb3VyY2UtPmNlcnRfY2hhaW4pOwor ICAgICAgICAgICAgICsrY2hhaW5faW5kZXgpCisgICAgICAgICB7CistICAgICAgICAgICAgc2tf WDUwOV9pbnNlcnQoKCpkZXN0KS0+Y2VydF9jaGFpbiwgCisrICAgICAgICAgICAgc2tfWDUwOV9p bnNlcnQoKCpkZXN0KS0+Y2VydF9jaGFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBY NTA5X2R1cChza19YNTA5X3ZhbHVlKHNvdXJjZS0+Y2VydF9jaGFpbiwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluX2luZGV4KSksIAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhaW5faW5k ZXgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFpbl9pbmRleCk7CisgICAgICAg ICB9CisgICAgIH0KK0BAIC0yNzIsNyArMjcyLDcgQEAgZ2xvYnVzX2dzaV9jcmVkX2hhbmRsZV9j b3B5KAorICAgICBHTE9CVVNfSV9HU0lfQ1JFRF9ERUJVR19FWElUOworICAgICByZXR1cm4gcmVz dWx0OworIH0KKy0gICAgICAgIAorKworIC8qKgorICAqIEBicmllZiBHZXQgdGhlIGhhbmRsZSBh dHRyaWJ1dGVzCisgICogQGluZ3JvdXAgZ2xvYnVzX2dzaV9jcmVkX2hhbmRsZQorQEAgLTM2MSw3 ICszNjEsNyBAQCBnbG9idXNfZ3NpX2NyZWRfZ2V0X2dvb2R0aWxsKAorICAgICAgICAgR0xPQlVT X0dTSV9DUkVEX0VSUk9SX1JFU1VMVCgKKyAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAg ICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1dJVEhfQ1JFRCwKKy0gICAgICAgICAgICAoX0dDUlNM KCJOVUxMIGNyZWQgaGFuZGxlIHBhcmFtZXRlciBwYXNzZWQgdG8gZnVuY3Rpb246ICVzIiksIAor KyAgICAgICAgICAgIChfR0NSU0woIk5VTEwgY3JlZCBoYW5kbGUgcGFyYW1ldGVyIHBhc3NlZCB0 byBmdW5jdGlvbjogJXMiKSwKKyAgICAgICAgICAgICAgX19mdW5jX18pKTsKKyAgICAgICAgIGdv dG8gZXJyb3JfZXhpdDsKKyAgICAgfQorQEAgLTQwNiw3ICs0MDYsNyBAQCBnbG9idXNfZ3NpX2Ny ZWRfZ2V0X2xpZmV0aW1lKAorICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1JFU1VMVCgK KyAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9S X1dJVEhfQ1JFRCwKKy0gICAgICAgICAgICAoX0dDUlNMKCJOVUxMIGNyZWRlbnRpYWwgaGFuZGxl IHBhc3NlZCB0byBmdW5jdGlvbjogJXMiKSwgCisrICAgICAgICAgICAgKF9HQ1JTTCgiTlVMTCBj cmVkZW50aWFsIGhhbmRsZSBwYXNzZWQgdG8gZnVuY3Rpb246ICVzIiksCisgICAgICAgICAgICAg IF9fZnVuY19fKSk7CisgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAgIH0KK0BAIC00Mzcs NyArNDM3LDcgQEAgZ2xvYnVzX2dzaV9jcmVkX2dldF9saWZldGltZSgKKyAgKiBAcmV0dXJuCisg ICogICAgICAgIEdMT0JVU19TVUNDRVNTIG9yIGFuIGVycm9yIGNhcHR1cmVkIGluIGEgZ2xvYnVz X3Jlc3VsdF90CisgICovCistZ2xvYnVzX3Jlc3VsdF90IAorK2dsb2J1c19yZXN1bHRfdAorIGds b2J1c19nc2lfY3JlZF9nZXRfa2V5X2JpdHMoCisgICAgIGdsb2J1c19nc2lfY3JlZF9oYW5kbGVf dCAgICAgICAgICAgIGNyZWRfaGFuZGxlLAorICAgICBpbnQgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBrZXlfYml0cykKK0BAIC00NTIsMjEgKzQ1MiwyMSBAQCBnbG9idXNfZ3NpX2Ny ZWRfZ2V0X2tleV9iaXRzKAorICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1JFU1VMVCgK KyAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9S X1dJVEhfQ1JFRCwKKy0gICAgICAgICAgICAoX0dDUlNMKCJOVUxMIGNyZWQgaGFuZGxlIHBhcmFt ZXRlciBwYXNzZWQgdG8gZnVuY3Rpb246ICVzIiksIAorKyAgICAgICAgICAgIChfR0NSU0woIk5V TEwgY3JlZCBoYW5kbGUgcGFyYW1ldGVyIHBhc3NlZCB0byBmdW5jdGlvbjogJXMiKSwKKyAgICAg ICAgICAgICAgX19mdW5jX18pKTsKKyAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQor LSAgICAKKysKKyAgICAgaWYoa2V5X2JpdHMgPT0gTlVMTCkKKyAgICAgeworICAgICAgICAgR0xP QlVTX0dTSV9DUkVEX0VSUk9SX1JFU1VMVCgKKyAgICAgICAgICAgICByZXN1bHQsCisgICAgICAg ICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1dJVEhfQ1JFRCwKKy0gICAgICAgICAgICAoX0dD UlNMKCJOVUxMIGtleV9iaXRzIHBhcmFtZXRlciBwYXNzZWQgdG8gZnVuY3Rpb246ICVzIiksIAor KyAgICAgICAgICAgIChfR0NSU0woIk5VTEwga2V5X2JpdHMgcGFyYW1ldGVyIHBhc3NlZCB0byBm dW5jdGlvbjogJXMiKSwKKyAgICAgICAgICAgICAgX19mdW5jX18pKTsKKyAgICAgICAgIGdvdG8g ZXJyb3JfZXhpdDsKKyAgICAgfQorLSAgICAKKysKKyAgICAgaWYoY3JlZF9oYW5kbGUtPmNlcnQg PT0gTlVMTCkKKyAgICAgeworICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX09QRU5TU0xfRVJST1Jf UkVTVUxUKAorQEAgLTQ3NSw3ICs0NzUsNyBAQCBnbG9idXNfZ3NpX2NyZWRfZ2V0X2tleV9iaXRz KAorICAgICAgICAgICAgIChfR0NSU0woIlRoZSBjcmVkZW50aWFsJ3MgY2VydCBpcyBOVUxMIikp KTsKKyAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQorLSAgICAKKysKKyAgICAgcGtl eSA9IFg1MDlfZ2V0X3B1YmtleShjcmVkX2hhbmRsZS0+Y2VydCk7CisgICAgIGlmKHBrZXkgPT0g TlVMTCkKKyAgICAgeworQEAgLTUyMCw3ICs1MjAsNyBAQCBnbG9idXNfZ3NpX2NyZWRfZ2V0X2tl eV9iaXRzKAorICAqICAgICAgICBwYXNzZWQgaW4gY2FuIGJlIE5VTEwgd2hpY2ggd2lsbCBzZXQg dGhlIGNlcnQgaW4KKyAgKiAgICAgICAgdGhlIGhhbmRsZSB0byBOVUxMLCBmcmVlaW5nIHRoZSBj dXJyZW50IGNlcnQgaW4gdGhlCisgICogICAgICAgIGhhbmRsZS4KKy0gKiBAcmV0dXJuIAorKyAq IEByZXR1cm4KKyAgKiAgICAgICAgR0xPQlVTX1NVQ0NFU1Mgb3IgYW4gZXJyb3Igb2JqZWN0IGlk IGlmIGFuIGVycm9yCisgICovCisgZ2xvYnVzX3Jlc3VsdF90CitAQCAtNTM3LDcgKzUzNyw3IEBA IGdsb2J1c19nc2lfY3JlZF9zZXRfY2VydCgKKyAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJP Ul9SRVNVTFQoCisgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgIEdMT0JVU19HU0lf Q1JFRF9FUlJPUl9XSVRIX0NSRUQsCistICAgICAgICAgICAgKF9HQ1JTTCgiTlVMTCBjcmVkZW50 aWFsIGhhbmRsZSBwYXNzZWQgdG8gZnVuY3Rpb246ICVzIiksIAorKyAgICAgICAgICAgIChfR0NS U0woIk5VTEwgY3JlZGVudGlhbCBoYW5kbGUgcGFzc2VkIHRvIGZ1bmN0aW9uOiAlcyIpLAorICAg ICAgICAgICAgICBfX2Z1bmNfXykpOworICAgICAgICAgZ290byBlcnJvcl9leGl0OworICAgICB9 CitAQCAtNTgwLDcgKzU4MCw3IEBAIGdsb2J1c19nc2lfY3JlZF9zZXRfY2VydCgKKyAgKiBAYnJp ZWYgR2V0IHRoZSBjcmVkZW50aWFsJ3MgY2VydGlmaWNhdGUKKyAgKiBAaW5ncm91cCBnbG9idXNf Z3NpX2NyZWRfaGFuZGxlCisgICogQGRldGFpbHMKKy0gKiBHZXQgdGhlIGNlcnRpZmljYXRlIG9m IGEgY3JlZGVudGlhbCAKKysgKiBHZXQgdGhlIGNlcnRpZmljYXRlIG9mIGEgY3JlZGVudGlhbAor ICAqCisgICogQHBhcmFtIGhhbmRsZQorICAqICAgICAgICBUaGUgY3JlZGVudGlhbCBoYW5kbGUg dG8gZ2V0IHRoZSBjZXJ0aWZpY2F0ZSBmcm9tCitAQCAtNjQ3LDEwICs2NDcsMTAgQEAgZ2xvYnVz X2dzaV9jcmVkX2dldF9jZXJ0KAorICAqCisgICogQHBhcmFtIGhhbmRsZQorICAqICAgICAgICBU aGUgaGFuZGxlIG9uIHdoaWNoIHRvIHNldCB0aGUga2V5LgorLSAqIEBwYXJhbSBrZXkgCisrICog QHBhcmFtIGtleQorICAqICAgICAgICBUaGUgcHJpdmF0ZSBrZXkgdG8gc2V0IHRoZSBoYW5kbGUn cyBrZXkgdG8uICBUaGlzCisgICogICAgICAgIHZhbHVlIGNhbiBiZSBOVUxMLCBpbiB3aGljaCBj YXNlIHRoZSBjdXJyZW50IGhhbmRsZSdzCistICogICAgICAgIGtleSBpcyBmcmVlZC4gICAgICAg CisrICogICAgICAgIGtleSBpcyBmcmVlZC4KKyAgKi8KKyBnbG9idXNfcmVzdWx0X3QKKyBnbG9i dXNfZ3NpX2NyZWRfc2V0X2tleSgKK0BAIC03MjAsNyArNzIwLDcgQEAgZ2xvYnVzX2dzaV9jcmVk X3NldF9rZXkoCisgICAgIEdMT0JVU19JX0dTSV9DUkVEX0RFQlVHX0VYSVQ7CisgCisgICAgIHJl dHVybiByZXN1bHQ7CistfSAgICAKKyt9CisgLyogZ2xvYnVzX2dzaV9jcmVkX3NldF9rZXkoKSAq LworIAorIC8qKgorQEAgLTczMyw5ICs3MzMsOSBAQCBnbG9idXNfZ3NpX2NyZWRfc2V0X2tleSgK KyAgKiAgICAgICAgVGhlIGNyZWRlbnRpYWwgaGFuZGxlIGNvbnRhaW5pbmcgdGhlIHByaXZhdGUg a2V5IHRvIGdldAorICAqIEBwYXJhbSBrZXkKKyAgKiAgICAgICAgVGhlIHByaXZhdGUga2V5IHdo aWNoIGFmdGVyIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBpcyBzZXQKKy0gKiAgICAgICAgdG8gYSBk dXBsaWNhdGUgb2YgdGhlIHByaXZhdGUga2V5IG9mIHRoZSBjcmVkZW50aWFsIAorKyAqICAgICAg ICB0byBhIGR1cGxpY2F0ZSBvZiB0aGUgcHJpdmF0ZSBrZXkgb2YgdGhlIGNyZWRlbnRpYWwKKyAg KiAgICAgICAgaGFuZGxlLiAgVGhpcyB2YXJpYWJsZSBuZWVkcyB0byBiZSBmcmVlZCBieSB0aGUg dXNlciB3aGVuCistICogICAgICAgIGl0IGlzIG5vIGxvbmdlciB1c2VkIHZpYSB0aGUgZnVuY3Rp b24gRVZQX1BLRVlfZnJlZS4gCisrICogICAgICAgIGl0IGlzIG5vIGxvbmdlciB1c2VkIHZpYSB0 aGUgZnVuY3Rpb24gRVZQX1BLRVlfZnJlZS4KKyAgKgorICAqIEByZXR1cm4KKyAgKiAgICAgICAg R0xPQlVTX1NVQ0NFU1Mgb3IgYW4gZXJyb3Igb2JqZWN0IGlkZW50aWZpZXIKK0BAIC04MDEsNyAr ODAxLDcgQEAgZ2xvYnVzX2dzaV9jcmVkX2dldF9rZXkoCisgICAgIHJldHVybiByZXN1bHQ7Cisg fQorIC8qIGdsb2J1c19nc2lfY3JlZF9nZXRfa2V5KCkgKi8KKy0gICAgCisrCisgLyoqCisgICog QGJyaWVmIFNldCB0aGUgY2VydGlmaWNhdGUgY2hhaW4KKyAgKiBAaW5ncm91cCBnbG9idXNfZ3Np X2NyZWRfaGFuZGxlCitAQCAtODY1LDcgKzg2NSw3IEBAIGdsb2J1c19nc2lfY3JlZF9zZXRfY2Vy dF9jaGFpbigKKyAgICAgICAgICAgICAoX0dDUlNMKCJDb3VsZG4ndCBpbml0aWFsaXplIGNyZWRl bnRpYWwncyBjZXJ0IGNoYWluIikpKTsKKyAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAg fQorLSAgICAKKysKKyAgICAgZm9yKGkgPSAwOyBpIDwgbnVtY2VydHM7ICsraSkKKyAgICAgewor ICAgICAgICAgaWYoKHRtcF9jZXJ0ID0gWDUwOV9kdXAoc2tfWDUwOV92YWx1ZShjZXJ0X2NoYWlu LCBpKSkpID09IE5VTEwpCitAQCAtOTQwLDcgKzk0MCw3IEBAIGdsb2J1c19nc2lfY3JlZF9nZXRf Y2VydF9jaGFpbigKKyAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9SRVNVTFQoCisgICAg ICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9XSVRI X0NSRUQsCistICAgICAgICAgICAgKF9HQ1JTTCgiTlVMTCBjZXJ0IGNoYWluIHBhcmFtZXRlciBw YXNzZWQgdG8gZnVuY3Rpb246ICVzIiksIAorKyAgICAgICAgICAgIChfR0NSU0woIk5VTEwgY2Vy dCBjaGFpbiBwYXJhbWV0ZXIgcGFzc2VkIHRvIGZ1bmN0aW9uOiAlcyIpLAorICAgICAgICAgICAg ICBfX2Z1bmNfXykpOworICAgICAgICAgZ290byBlcnJvcl9leGl0OworICAgICB9CitAQCAtOTg4 LDcgKzk4OCw3IEBAIGdsb2J1c19nc2lfY3JlZF9nZXRfY2VydF9jaGFpbigKKyAgKiBAcGFyYW0g c3ViamVjdF9uYW1lCisgICogICAgICAgIFRoZSBzdWJqZWN0IG5hbWUgYXMgYW4gWDUwOV9OQU1F IG9iamVjdC4gIFRoaXMgc2hvdWxkIGJlIGZyZWVkCisgICogICAgICAgIHVzaW5nIFg1MDlfTkFN RV9mcmVlIHdoZW4gdGhlIHVzZXIgaXMgZmluaXNoZWQgd2l0aCBpdAorLSAqIEByZXR1cm4gCisr ICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBpZiBubyBlcnJvciwgYSBlcnJv ciBvYmplY3QgaWQgb3RoZXJ3aXNlCisgICovCisgZ2xvYnVzX3Jlc3VsdF90CitAQCAtMTAxNCwx MiArMTAxNCwxMiBAQCBnbG9idXNfZ3NpX2NyZWRfZ2V0X1g1MDlfc3ViamVjdF9uYW1lKAorICAg ICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1JFU1VMVCgKKyAgICAgICAgICAgICByZXN1bHQs CisgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1dJVEhfQ1JFRCwKKy0gICAgICAg ICAgICAoX0dDUlNMKCJOVUxMIHN1YmplY3QgbmFtZSBwYXJhbWV0ZXIgcGFzc2VkIHRvIGZ1bmN0 aW9uOiAlcyIpLCAKKysgICAgICAgICAgICAoX0dDUlNMKCJOVUxMIHN1YmplY3QgbmFtZSBwYXJh bWV0ZXIgcGFzc2VkIHRvIGZ1bmN0aW9uOiAlcyIpLAorICAgICAgICAgICAgICBfX2Z1bmNfXykp OworICAgICAgICAgZ290byBlcnJvcl9leGl0OworICAgICB9CisgCistICAgIGlmKCgqc3ViamVj dF9uYW1lID0gCisrICAgIGlmKCgqc3ViamVjdF9uYW1lID0KKyAgICAgICAgIFg1MDlfTkFNRV9k dXAoWDUwOV9nZXRfc3ViamVjdF9uYW1lKGhhbmRsZS0+Y2VydCkpKSA9PSBOVUxMKQorICAgICB7 CisgICAgICAgICBHTE9CVVNfR1NJX0NSRURfT1BFTlNTTF9FUlJPUl9SRVNVTFQoCitAQCAtMTA2 NCw3ICsxMDY0LDcgQEAgZ2xvYnVzX2dzaV9jcmVkX2dldF9YNTA5X2lkZW50aXR5X25hbWUoCisg ICAgIFNUQUNLX09GKFg1MDkpICogICAgICAgICAgICAgICAgICAgIGNlcnRfY2hhaW4gPSBOVUxM OworIAorICAgICBHTE9CVVNfSV9HU0lfQ1JFRF9ERUJVR19FTlRFUjsKKy0gICAgCisrCisgICAg IGlmKGhhbmRsZSA9PSBOVUxMKQorICAgICB7CisgICAgICAgICBHTE9CVVNfR1NJX0NSRURfRVJS T1JfUkVTVUxUKAorQEAgLTEwODIsNyArMTA4Miw3IEBAIGdsb2J1c19nc2lfY3JlZF9nZXRfWDUw OV9pZGVudGl0eV9uYW1lKAorICAgICAgICAgICAgIChfR0NSU0woIk5VTEwgaWRlbnRpdHkgbmFt ZSBwYXNzZWQgdG8gZnVuY3Rpb246ICVzIiksIF9fZnVuY19fKSk7CisgICAgICAgICBnb3RvIGVy cm9yX2V4aXQ7CisgICAgIH0KKy0gICAgCisrCisgICAgIGlkZW50aXR5ID0gWDUwOV9OQU1FX2R1 cChYNTA5X2dldF9zdWJqZWN0X25hbWUoaGFuZGxlLT5jZXJ0KSk7CisgCisgICAgIGlmKGhhbmRs ZS0+Y2VydF9jaGFpbiA9PSBOVUxMKQorQEAgLTExMjAsNyArMTEyMCw3IEBAIGdsb2J1c19nc2lf Y3JlZF9nZXRfWDUwOV9pZGVudGl0eV9uYW1lKAorICAgICB7CisgICAgICAgICBza19YNTA5X2Zy ZWUoY2VydF9jaGFpbik7CisgICAgIH0KKy0gICAgCisrCisgICAgIEdMT0JVU19JX0dTSV9DUkVE X0RFQlVHX0VYSVQ7CisgICAgIHJldHVybiByZXN1bHQ7CisgfQorQEAgLTExMzgsNyArMTEzOCw3 IEBAIGdsb2J1c19nc2lfY3JlZF9nZXRfWDUwOV9pZGVudGl0eV9uYW1lKAorICAqIEBwYXJhbSBz dWJqZWN0X25hbWUKKyAgKiAgICAgICAgVGhlIHN1YmplY3QgbmFtZSBhcyBhIHN0cmluZy4gIFRo aXMgc2hvdWxkIGJlIGZyZWVkCisgICogICAgICAgIHVzaW5nIE9QRU5TU0xfZnJlZSgpIHdoZW4g dGhlIHVzZXIgaXMgZmluaXNoZWQgd2l0aCBpdAorLSAqIEByZXR1cm4gCisrICogQHJldHVybgor ICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBpZiBubyBlcnJvciwgYSBlcnJvciBvYmplY3QgaWQg b3RoZXJ3aXNlCisgICovCisgZ2xvYnVzX3Jlc3VsdF90CitAQCAtMTE2MSw3ICsxMTYxLDcgQEAg Z2xvYnVzX2dzaV9jcmVkX2dldF9zdWJqZWN0X25hbWUoCisgICAgIH0KKyAKKyAgICAgLyogVG9E bzogVGhpcyBsb2dpYyBuZWVkcyBmaXhpbmcuIFRoZSBzdWJqZWN0X25hbWUgaXMgcGFzc2VkIHVw IGFuZCBpcworLSAgICAgICAgICAgICBmcmVlZCBieSB0aGUgY2FsbGVyIC0gYnV0IGl0IG11c3Qg YmUgZnJlZWQgd2l0aCBPUEVOU1NMX2ZyZWUoKSwgCisrICAgICAgICAgICAgIGZyZWVkIGJ5IHRo ZSBjYWxsZXIgLSBidXQgaXQgbXVzdCBiZSBmcmVlZCB3aXRoIE9QRU5TU0xfZnJlZSgpLAorICAg ICAgICAgICAgICBub3QgZnJlZSgpIGFuZCB0aGUgY2FsbGVyIGNhbnQgYmUgZXhwZWN0ZWQgdG8g a25vdyB0aGF0ICovCisgICAgIGlmKCgqc3ViamVjdF9uYW1lID0gWDUwOV9OQU1FX29uZWxpbmUo eDUwOV9zdWJqZWN0LCBOVUxMLCAwKSkgPT0gTlVMTCkKKyAgICAgeworQEAgLTEyMDIsNyArMTIw Miw3IEBAIGdsb2J1c19nc2lfY3JlZF9nZXRfc3ViamVjdF9uYW1lKAorICAqICAgICAgICB0aGUg c3RhY2sgb2YgcG9saWNpZXMgcmV0cmlldmVkIGZyb20gdGhlIGhhbmRsZSdzIGNlcnQgY2hhaW4K KyAgKiBAcmV0dXJuCisgICogICAgICAgIEdMT0JVU19TVUNDRVNTIG9yIGFuIGVycm9yIG9iamVj dCBpZiBhbiBlcnJvciBvY2N1cnJlZAorLSAqLyAKKysgKi8KKyBnbG9idXNfcmVzdWx0X3QKKyBn bG9idXNfZ3NpX2NyZWRfZ2V0X3BvbGljaWVzKAorICAgICBnbG9idXNfZ3NpX2NyZWRfaGFuZGxl X3QgICAgICAgICAgICBoYW5kbGUsCitAQCAtMTI2Myw3ICsxMjYzLDcgQEAgZ2xvYnVzX2dzaV9j cmVkX2dldF9wb2xpY2llcygKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAvKiBubyBwcm94eWNl cnRpbmZvIGV4dGVuc2lvbiA9IHNvIG5vIHBvbGljeSBmb3IgdGhpcyBjZXJ0ICovCisgICAgICAg ICAgICAgcG9saWN5X3N0cmluZyA9ICh1bnNpZ25lZCBjaGFyICopIEdMT0JVU19OVUxMX1BPTElD WTsKKy0gICAgICAgICAgICBwb2xpY3lfc3RyaW5nX2xlbmd0aCA9IHN0cmxlbihHTE9CVVNfTlVM TF9QT0xJQ1kpOyAgICAgICAgICAgIAorKyAgICAgICAgICAgIHBvbGljeV9zdHJpbmdfbGVuZ3Ro ID0gc3RybGVuKEdMT0JVU19OVUxMX1BPTElDWSk7CisgICAgICAgICB9CisgICAgICAgICBlbHNl CisgICAgICAgICB7CitAQCAtMTMxMSw3ICsxMzExLDcgQEAgZ2xvYnVzX2dzaV9jcmVkX2dldF9w b2xpY2llcygKKyAgICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAgICAgICB9CisgCist ICAgICAgICBmaW5hbF9wb2xpY3lfc3RyaW5nID0gTlVMTDsgICAgCisrICAgICAgICBmaW5hbF9w b2xpY3lfc3RyaW5nID0gTlVMTDsKKyAKKyAgICAgICAgIFBST1hZX0NFUlRfSU5GT19FWFRFTlNJ T05fZnJlZShwY2kpOworICAgICAgICAgcGNpID0gTlVMTDsKK0BAIC0xMzM2LDkgKzEzMzYsOSBA QCBnbG9idXNfZ3NpX2NyZWRfZ2V0X3BvbGljaWVzKAorICAgICAgICAgc2tfT1BFTlNTTF9TVFJJ TkdfcG9wX2ZyZWUoKnBvbGljaWVzLCAodm9pZCAoKikgKGNoYXIgKikpIGZyZWUpOworICAgICB9 CisgICAgICpwb2xpY2llcyA9IE5VTEw7CistICAgIAorKworICBleGl0OgorLSAgICAKKysKKyAg ICAgaWYocGNpICE9IE5VTEwpCisgICAgIHsKKyAgICAgICAgIFBST1hZX0NFUlRfSU5GT19FWFRF TlNJT05fZnJlZShwY2kpOworQEAgLTEzNjIsNyArMTM2Miw3IEBAIGdsb2J1c19nc2lfY3JlZF9n ZXRfcG9saWNpZXMoCisgICogICAgICAgIHRoZSBzdGFjayBvZiBwb2xpY2llcyByZXRyaWV2ZWQg ZnJvbSB0aGUgaGFuZGxlJ3MgY2VydCBjaGFpbgorICAqIEByZXR1cm4KKyAgKiAgICAgICAgR0xP QlVTX1NVQ0NFU1Mgb3IgYW4gZXJyb3Igb2JqZWN0IGlmIGFuIGVycm9yIG9jY3VycmVkCistICov IAorKyAqLworIGdsb2J1c19yZXN1bHRfdAorIGdsb2J1c19nc2lfY3JlZF9nZXRfcG9saWN5X2xh bmd1YWdlcygKKyAgICAgZ2xvYnVzX2dzaV9jcmVkX2hhbmRsZV90ICAgICAgICAgICAgaGFuZGxl LAorQEAgLTE0MTksNyArMTQxOSw3IEBAIGdsb2J1c19nc2lfY3JlZF9nZXRfcG9saWN5X2xhbmd1 YWdlcygKKyAKKyAgICAgICAgIGlmKHBjaSA9PSBOVUxMIHx8IChwb2xpY3kgPSBwY2ktPnByb3h5 UG9saWN5KSA9PSBOVUxMKQorICAgICAgICAgeworLSAgICAgICAgICAgIC8qIG5vIHByb3h5Y2Vy dGluZm8gZXh0ZW5zaW9uLCBzbyBubyBwb2xpY3kgCisrICAgICAgICAgICAgLyogbm8gcHJveHlj ZXJ0aW5mbyBleHRlbnNpb24sIHNvIG5vIHBvbGljeQorICAgICAgICAgICAgICAqIGxhbmd1YWdl IGZvciB0aGlzIGNlcnQgKi8KKyAgICAgICAgICAgICBwb2xpY3lfbGFuZ3VhZ2UgPSBHTE9CVVNf TlVMTDsKKyAgICAgICAgIH0KK0BAIC0xNDI4LDcgKzE0MjgsNyBAQCBnbG9idXNfZ3NpX2NyZWRf Z2V0X3BvbGljeV9sYW5ndWFnZXMoCisgICAgICAgICAgICAgcG9saWN5X2xhbmd1YWdlID0gcG9s aWN5LT5wb2xpY3lMYW5ndWFnZTsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIGlmKHNrX0FTTjFf T0JKRUNUX3B1c2goKnBvbGljeV9sYW5ndWFnZXMsIAorKyAgICAgICAgaWYoc2tfQVNOMV9PQkpF Q1RfcHVzaCgqcG9saWN5X2xhbmd1YWdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT0JKX2R1cChwb2xpY3lfbGFuZ3VhZ2UpKSA9PSAwKQorICAgICAgICAgeworICAgICAgICAg ICAgIEdMT0JVU19HU0lfQ1JFRF9PUEVOU1NMX0VSUk9SX1JFU1VMVCgKK0BAIC0xNDU0LDkgKzE0 NTQsOSBAQCBnbG9idXNfZ3NpX2NyZWRfZ2V0X3BvbGljeV9sYW5ndWFnZXMoCisgICAgIH0KKyAK KyAgICAgKnBvbGljeV9sYW5ndWFnZXMgPSBOVUxMOworLSAgICAKKysKKyAgZXhpdDoKKy0gICAg CisrCisgCisgICAgIEdMT0JVU19JX0dTSV9DUkVEX0RFQlVHX0VYSVQ7CisgICAgIHJldHVybiBy ZXN1bHQ7CitAQCAtMTQ3NSw3ICsxNDc1LDcgQEAgZ2xvYnVzX2dzaV9jcmVkX2dldF9wb2xpY3lf bGFuZ3VhZ2VzKAorICAqIEBwYXJhbSBpc3N1ZXJfbmFtZQorICAqICAgICAgICBUaGUgaXNzdWVy IG5hbWUgYXMgYW4gWDUwOV9OQU1FIG9iamVjdC4gIFRoaXMgc2hvdWxkIGJlIGZyZWVkCisgICog ICAgICAgIHVzaW5nIFg1MDlfTkFNRV9mcmVlIHdoZW4gdGhlIHVzZXIgaXMgZmluaXNoZWQgd2l0 aCBpdAorLSAqIEByZXR1cm4gCisrICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VT UyBpZiBubyBlcnJvciwgYSBlcnJvciBvYmplY3QgaWQgb3RoZXJ3aXNlCisgICovCisgZ2xvYnVz X3Jlc3VsdF90CitAQCAtMTUwMSwxMiArMTUwMSwxMiBAQCBnbG9idXNfZ3NpX2NyZWRfZ2V0X1g1 MDlfaXNzdWVyX25hbWUoCisgICAgICAgICBHTE9CVVNfR1NJX0NSRURfRVJST1JfUkVTVUxUKAor ICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICBHTE9CVVNfR1NJX0NSRURfRVJST1Jf V0lUSF9DUkVELAorLSAgICAgICAgICAgIChfR0NSU0woIk5VTEwgaXNzdWVyIG5hbWUgcGFyYW1l dGVyIHBhc3NlZCB0byBmdW5jdGlvbjogJXMiKSwgCisrICAgICAgICAgICAgKF9HQ1JTTCgiTlVM TCBpc3N1ZXIgbmFtZSBwYXJhbWV0ZXIgcGFzc2VkIHRvIGZ1bmN0aW9uOiAlcyIpLAorICAgICAg ICAgICAgICBfX2Z1bmNfXykpOworICAgICAgICAgZ290byBlcnJvcl9leGl0OworICAgICB9Cisg CistICAgIGlmKCgqaXNzdWVyX25hbWUgPSAKKysgICAgaWYoKCppc3N1ZXJfbmFtZSA9CisgICAg ICAgICBYNTA5X05BTUVfZHVwKFg1MDlfZ2V0X2lzc3Vlcl9uYW1lKGhhbmRsZS0+Y2VydCkpKSA9 PSBOVUxMKQorICAgICB7CisgICAgICAgICBHTE9CVVNfR1NJX0NSRURfT1BFTlNTTF9FUlJPUl9S RVNVTFQoCitAQCAtMTU2Nyw5ICsxNTY3LDkgQEAgZ2xvYnVzX2dzaV9jcmVkX2dldF9pc3N1ZXJf bmFtZSgKKyAgICAgICAgICAgICAoX0dDUlNMKCJOVUxMIGlzc3VlciBuYW1lIHBhc3NlZCB0byBm dW5jdGlvbjogJXMiKSwgX19mdW5jX18pKTsKKyAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAg ICAgfQorLSAgICAKKysKKyAgICAgLyogVE9ETzogVGhpcyBsb2dpYyBuZWVkcyBmaXhpbmcuIFRo ZSBpc3N1ZXJfbmFtZSBpcyBwYXNzZWQgdXAgYW5kIGlzCistICAgICAgICAgICAgIGZyZWVkIGJ5 IHRoZSBjYWxsZXIgLSBidXQgaXQgbXVzdCBiZSBmcmVlZCB3aXRoIE9QRU5TU0xfZnJlZSgpLCAK KysgICAgICAgICAgICAgZnJlZWQgYnkgdGhlIGNhbGxlciAtIGJ1dCBpdCBtdXN0IGJlIGZyZWVk IHdpdGggT1BFTlNTTF9mcmVlKCksCisgICAgICAgICAgICAgIG5vdCBmcmVlKCkgYW5kIHRoZSBj YWxsZXIgY2FudCBiZSBleHBlY3RlZCB0byBrbm93IHRoYXQgKi8KKyAgICAgaWYoKCppc3N1ZXJf bmFtZSA9IFg1MDlfTkFNRV9vbmVsaW5lKAorICAgICAgICAgWDUwOV9nZXRfaXNzdWVyX25hbWUo aGFuZGxlLT5jZXJ0KSwgTlVMTCwgMCkpID09IE5VTEwpCitAQCAtMTU4MCw5ICsxNTgwLDkgQEAg Z2xvYnVzX2dzaV9jcmVkX2dldF9pc3N1ZXJfbmFtZSgKKyAgICAgICAgICAgICAoX0dDUlNMKCJD b3VsZG4ndCBnZXQgc3ViamVjdCBuYW1lIG9mIGNyZWRlbnRpYWwncyBjZXJ0IikpKTsKKyAgICAg ICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQorLSAgICAKKysKKyAgICAgcmVzdWx0ID0gR0xP QlVTX1NVQ0NFU1M7CistICAgIAorKworICBlcnJvcl9leGl0OgorIAorICAgICBHTE9CVVNfSV9H U0lfQ1JFRF9ERUJVR19FWElUOworQEAgLTE2MzUsNyArMTYzNSw3IEBAIGdsb2J1c19nc2lfY3Jl ZF9nZXRfaWRlbnRpdHlfbmFtZSgKKyAgICAgfQorIAorICAgICByZXN1bHQgPSBnbG9idXNfZ3Np X2NyZWRfZ2V0X1g1MDlfaWRlbnRpdHlfbmFtZShoYW5kbGUsICZpZGVudGl0eSk7CistICAgIAor KworICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgIHsKKyAgICAgICAgIEdM T0JVU19HU0lfQ1JFRF9FUlJPUl9DSEFJTl9SRVNVTFQoCitAQCAtMTY0NSw3ICsxNjQ1LDcgQEAg Z2xvYnVzX2dzaV9jcmVkX2dldF9pZGVudGl0eV9uYW1lKAorICAgICB9CisgCisgICAgIC8qIFRv RG86IFRoaXMgbG9naWMgbmVlZHMgZml4aW5nLiBUaGUgaWRlbnRpdHlfbmFtZSBpcyBwYXNzZWQg dXAgYW5kIGlzCistICAgICAgICAgICAgIGZyZWVkIGJ5IHRoZSBjYWxsZXIgLSBidXQgaXQgbXVz dCBiZSBmcmVlZCB3aXRoIE9QRU5TU0xfZnJlZSgpLCAKKysgICAgICAgICAgICAgZnJlZWQgYnkg dGhlIGNhbGxlciAtIGJ1dCBpdCBtdXN0IGJlIGZyZWVkIHdpdGggT1BFTlNTTF9mcmVlKCksCisg ICAgICAgICAgICAgIG5vdCBmcmVlKCkgYW5kIHRoZSBjYWxsZXIgY2FudCBiZSBleHBlY3RlZCB0 byBrbm93IHRoYXQgKi8KKyAgICAgKmlkZW50aXR5X25hbWUgPSBYNTA5X05BTUVfb25lbGluZShp ZGVudGl0eSwgTlVMTCwgMCk7CisgCitAQCAtMTY1Niw3ICsxNjU2LDcgQEAgZ2xvYnVzX2dzaV9j cmVkX2dldF9pZGVudGl0eV9uYW1lKAorICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJP Ul9XSVRIX0NSRURfQ0VSVF9OQU1FLAorICAgICAgICAgICAgIChfR0NSU0woIlVuYWJsZSB0byBj b252ZXJ0IFg1MDlfTkFNRSB0byBzdHJpbmciKSkpOworICAgICB9CistICAgIAorKworICBlcnJv cl9leGl0OgorIAorICAgICBpZihpZGVudGl0eSkKK0BAIC0xNzAwLDcgKzE3MDAsNyBAQCBnbG9i dXNfZ3NpX2NyZWRfdmVyaWZ5X2NlcnRfY2hhaW4oCisgICAgIGdsb2J1c19yZXN1bHRfdCAgICAg ICAgICAgICAgICAgICAgIHJlc3VsdCA9IEdMT0JVU19TVUNDRVNTOworIAorICAgICBHTE9CVVNf SV9HU0lfQ1JFRF9ERUJVR19FTlRFUjsKKy0gICAgCisrCisgICAgIGNlcnRfc3RvcmUgPSBYNTA5 X1NUT1JFX25ldygpOworICAgICBpZiAoY2VydF9zdG9yZSA9PSBOVUxMKQorICAgICB7CitAQCAt MTcxMCw3ICsxNzEwLDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3ZlcmlmeV9jZXJ0X2NoYWluKAorICAg ICAgICAgZ290byBleGl0OworICAgICB9CisgCistICAgIFg1MDlfU1RPUkVfc2V0X3ZlcmlmeV9j Yl9mdW5jKGNlcnRfc3RvcmUsIAorKyAgICBYNTA5X1NUT1JFX3NldF92ZXJpZnlfY2JfZnVuYyhj ZXJ0X3N0b3JlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9idXNfZ3Np X2NhbGxiYWNrX2NyZWF0ZV9wcm94eV9jYWxsYmFjayk7CisgICAgIFg1MDlfU1RPUkVfc2V0X2Rl cHRoKGNlcnRfc3RvcmUsIEdMT0JVU19HU0lfQ0FMTEJBQ0tfVkVSSUZZX0RFUFRIKTsKKyAKK0BA IC0xNzI1LDcgKzE3MjUsNyBAQCBnbG9idXNfZ3NpX2NyZWRfdmVyaWZ5X2NlcnRfY2hhaW4oCisg CisgICAgIHRtcF9jZXJ0ID0gY3JlZF9oYW5kbGUtPmNlcnQ7CisgICAgIGNlcnQgPSB0bXBfY2Vy dDsKKy0gICAgCisrCisgICAgIGlmIChYNTA5X1NUT1JFX2xvYWRfbG9jYXRpb25zKGNlcnRfc3Rv cmUsIE5VTEwsIGNlcnRfZGlyKSkKKyAgICAgeworICNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVS IDwgMHgxMDEwMDAwMEwKK0BAIC0xNzQ2LDE3ICsxNzQ2LDE3IEBAIGdsb2J1c19nc2lfY3JlZF92 ZXJpZnlfY2VydF9jaGFpbigKKyAKKyAgICAgICAgIFg1MDlfU1RPUkVfQ1RYX3NldF9leF9kYXRh KAorICAgICAgICAgICAgIHN0b3JlX2NvbnRleHQsCistICAgICAgICAgICAgY2FsbGJhY2tfZGF0 YV9pbmRleCwgCisrICAgICAgICAgICAgY2FsbGJhY2tfZGF0YV9pbmRleCwKKyAgICAgICAgICAg ICAodm9pZCAqKWNhbGxiYWNrX2RhdGEpOworLSAgICAgICAgICAgICAgICAgCisrCisgICAgICAg ICAvKgorICAgICAgICAgICogSWYgdGhpcyBpcyBub3Qgc2V0LCBPcGVuU1NMLTAuOS44IChjaGVj a19jaGFpbl9leHRlbnNpb25zKCkKKyAgICAgICAgICAqIGNhbGxlZCBieSB4NTA5X3ZlcmlmeV9j ZXJ0KCkpIHRyZWF0cyB0aGUgY2VydCBuZXh0IHRvIHByb3h5CisgICAgICAgICAgKiBpbiB0aGUg Y2hhaW4gdG8gYmUgQ0EgY2VydCBhbmQgdGhyb3dzIGludmFsaWQgQ0EgZXJyb3IKKy0gICAgICAg ICAqLyAKKysgICAgICAgICAqLworIAorICAgICAgICAgI2lmIGRlZmluZWQoWDUwOV9WX0ZMQUdf QUxMT1dfUFJPWFlfQ0VSVFMpCistCVg1MDlfU1RPUkVfQ1RYX3NldF9mbGFncygKKysgICAgICAg IFg1MDlfU1RPUkVfQ1RYX3NldF9mbGFncygKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdG9y ZV9jb250ZXh0LCBYNTA5X1ZfRkxBR19BTExPV19QUk9YWV9DRVJUUyk7CisgICAgICAgICAjZW5k aWYKKyAKK0BAIC0xNzgzLDcgKzE3ODMsNyBAQCBnbG9idXNfZ3NpX2NyZWRfdmVyaWZ5X2NlcnRf Y2hhaW4oCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBsb2NhbF9yZXN1bHQgPSBj YWxsYmFja19lcnJvcjsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgCisrCisgICAgICAg ICAgICAgcmVzdWx0ID0gZ2xvYnVzX2lfZ3NpX2NyZWRfZXJyb3Jfam9pbl9jaGFpbnNfcmVzdWx0 KAorICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgIGxvY2FsX3Jlc3Vs dCk7CitAQCAtMTc5MSw3ICsxNzkxLDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3ZlcmlmeV9jZXJ0X2No YWluKAorICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgIH0KKyAgICAgfQorLSAgICAK KysKKyAgZXhpdDoKKyAKKyAgICAgaWYoY2VydF9zdG9yZSkKK0BAIC0xODUyLDggKzE4NTIsOCBA QCBnbG9idXNfZ3NpX2NyZWRfdmVyaWZ5X2NlcnRfY2hhaW5fd2hlbigKKyAgICAgZ2xvYnVzX3Jl c3VsdF90ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gR0xPQlVTX1NVQ0NFU1M7CisgCisg ICAgIEdMT0JVU19JX0dTSV9DUkVEX0RFQlVHX0VOVEVSOworLSAgICAKKy0gICAgCisrCisrCisg ICAgIGlmKGNhbGxiYWNrX2RhdGFfaW4gIT0gTlVMTCkKKyAgICAgeworICAgICAgICAgY2FsbGJh Y2tfZGF0YSA9IGNhbGxiYWNrX2RhdGFfaW47CitAQCAtMTg2MSw3ICsxODYxLDcgQEAgZ2xvYnVz X2dzaV9jcmVkX3ZlcmlmeV9jZXJ0X2NoYWluX3doZW4oCisgICAgIGVsc2UKKyAgICAgeworICAg ICAgICAgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0ZGlyID0gTlVMTDsKKy0g ICAgICAgIAorKworICAgICAgICAgLyogaW5pdGlhbGl6ZSB0aGUgY2FsbGJhY2sgZGF0YSAqLwor ICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2dzaV9jYWxsYmFja19kYXRhX2luaXQoJmNhbGxiYWNr X2RhdGEpOworICAgICAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorQEAgLTE4Njks OCArMTg2OSw4IEBAIGdsb2J1c19nc2lfY3JlZF92ZXJpZnlfY2VydF9jaGFpbl93aGVuKAorICAg ICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9DSEFJTl9SRVNVTFQoCisgICAgICAgICAg ICAgICAgIHJlc3VsdCwgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1dJVEhfQ0FMTEJBQ0tfREFUQSk7 CisgICAgICAgICAgICAgZ290byBleGl0OworLSAgICAgICAgfSAgICAKKy0gICAgICAgIAorKyAg ICAgICAgfQorKworICAgICAgICAgLyogc2V0IHRoZSBjZXJ0X2RpciBpbiB0aGUgY2FsbGJhY2sg ZGF0YSAqLworICAgICAgICAgcmVzdWx0ID0gR0xPQlVTX0dTSV9TWVNDT05GSUdfR0VUX0NFUlRf RElSKCZjZXJ0ZGlyKTsKKyAgICAgICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKK0BA IC0xODgyLDcgKzE4ODIsNyBAQCBnbG9idXNfZ3NpX2NyZWRfdmVyaWZ5X2NlcnRfY2hhaW5fd2hl bigKKyAgICAgICAgIGlmKGNlcnRkaXIpCisgICAgICAgICB7CisgICAgICAgICAgICAgcmVzdWx0 ID0gZ2xvYnVzX2dzaV9jYWxsYmFja19zZXRfY2VydF9kaXIoCistICAgICAgICAgICAgICAgIGNh bGxiYWNrX2RhdGEsIAorKyAgICAgICAgICAgICAgICBjYWxsYmFja19kYXRhLAorICAgICAgICAg ICAgICAgICBjZXJ0ZGlyKTsKKyAgICAgICAgICAgICBmcmVlKGNlcnRkaXIpOworICAgICAgICAg ICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKK0BAIC0xODkzLDcgKzE4OTMsNyBAQCBn bG9idXNfZ3NpX2NyZWRfdmVyaWZ5X2NlcnRfY2hhaW5fd2hlbigKKyAgICAgICAgICAgICB9Cisg ICAgICAgICB9CisgICAgIH0KKy0gICAgCisrCisgICAgIGNlcnRfc3RvcmUgPSBYNTA5X1NUT1JF X25ldygpOworICAgICBpZihjZXJ0X3N0b3JlID09IE5VTEwpCisgICAgIHsKK0BAIC0xOTAyLDcg KzE5MDIsNyBAQCBnbG9idXNfZ3NpX2NyZWRfdmVyaWZ5X2NlcnRfY2hhaW5fd2hlbigKKyAgICAg ICAgIGdvdG8gZXhpdDsKKyAgICAgfQorIAorLSAgICBYNTA5X1NUT1JFX3NldF92ZXJpZnlfY2Jf ZnVuYyhjZXJ0X3N0b3JlLCAKKysgICAgWDUwOV9TVE9SRV9zZXRfdmVyaWZ5X2NiX2Z1bmMoY2Vy dF9zdG9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2dzaV9j YWxsYmFja19jcmVhdGVfcHJveHlfY2FsbGJhY2spOworICAgICBYNTA5X1NUT1JFX3NldF9kZXB0 aChjZXJ0X3N0b3JlLCBHTE9CVVNfR1NJX0NBTExCQUNLX1ZFUklGWV9ERVBUSCk7CisgCitAQCAt MTkxNyw3ICsxOTE3LDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3ZlcmlmeV9jZXJ0X2NoYWluX3doZW4o CisgCisgICAgIHRtcF9jZXJ0ID0gY3JlZF9oYW5kbGUtPmNlcnQ7CisgICAgIGNlcnQgPSB0bXBf Y2VydDsKKy0gICAgCisrCisgICAgIGlmIChYNTA5X1NUT1JFX2xvYWRfbG9jYXRpb25zKGNlcnRf c3RvcmUsIE5VTEwsIGNlcnRfZGlyKSkKKyAgICAgeworICAgICAgICAgLyogb3ZlcnJpZGUgdGhl IGNoZWNrX2lzc3VlZCB3aXRoIG91ciB2ZXJzaW9uICovCitAQCAtMTkzOCwxNyArMTkzOCwxNyBA QCBnbG9idXNfZ3NpX2NyZWRfdmVyaWZ5X2NlcnRfY2hhaW5fd2hlbigKKyAKKyAgICAgICAgIFg1 MDlfU1RPUkVfQ1RYX3NldF9leF9kYXRhKAorICAgICAgICAgICAgIHN0b3JlX2NvbnRleHQsCist ICAgICAgICAgICAgY2FsbGJhY2tfZGF0YV9pbmRleCwgCisrICAgICAgICAgICAgY2FsbGJhY2tf ZGF0YV9pbmRleCwKKyAgICAgICAgICAgICAodm9pZCAqKWNhbGxiYWNrX2RhdGEpOworLSAgICAg ICAgICAgICAgICAgCisrCisgICAgICAgICAvKgorICAgICAgICAgICogSWYgdGhpcyBpcyBub3Qg c2V0LCBPcGVuU1NMLTAuOS44IChjaGVja19jaGFpbl9leHRlbnNpb25zKCkKKyAgICAgICAgICAq IGNhbGxlZCBieSB4NTA5X3ZlcmlmeV9jZXJ0KCkpIHRyZWF0cyB0aGUgY2VydCBuZXh0IHRvIHBy b3h5CisgICAgICAgICAgKiBpbiB0aGUgY2hhaW4gdG8gYmUgQ0EgY2VydCBhbmQgdGhyb3dzIGlu dmFsaWQgQ0EgZXJyb3IKKy0gICAgICAgICAqLyAKKysgICAgICAgICAqLworIAorICAgICAgICAg I2lmIGRlZmluZWQoWDUwOV9WX0ZMQUdfQUxMT1dfUFJPWFlfQ0VSVFMpCistCVg1MDlfU1RPUkVf Q1RYX3NldF9mbGFncygKKysgICAgICAgIFg1MDlfU1RPUkVfQ1RYX3NldF9mbGFncygKKyAgICAg ICAgICAgICAgICAgICAgICAgICBzdG9yZV9jb250ZXh0LCBYNTA5X1ZfRkxBR19BTExPV19QUk9Y WV9DRVJUUyk7CisgICAgICAgICAjZW5kaWYKKyAKK0BAIC0xOTg1LDcgKzE5ODUsNyBAQCBnbG9i dXNfZ3NpX2NyZWRfdmVyaWZ5X2NlcnRfY2hhaW5fd2hlbigKKyAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgIGxvY2FsX3Jlc3VsdCA9IGNhbGxiYWNrX2Vycm9yOworICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAKKysKKyAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfaV9nc2lf Y3JlZF9lcnJvcl9qb2luX2NoYWluc19yZXN1bHQoCisgICAgICAgICAgICAgICAgIHJlc3VsdCwK KyAgICAgICAgICAgICAgICAgbG9jYWxfcmVzdWx0KTsKK0BAIC0xOTkzLDE0ICsxOTkzLDE0IEBA IGdsb2J1c19nc2lfY3JlZF92ZXJpZnlfY2VydF9jaGFpbl93aGVuKAorICAgICAgICAgICAgIGdv dG8gZXhpdDsKKyAgICAgICAgIH0KKyAgICAgfQorLSAgICAKKysKKyAgZXhpdDoKKyAKKyAgICAg aWYoY2FsbGJhY2tfZGF0YSAmJiAhY2FsbGJhY2tfZGF0YV9pbikKKyAgICAgeworICAgICAgICAg Z2xvYnVzX2dzaV9jYWxsYmFja19kYXRhX2Rlc3Ryb3koY2FsbGJhY2tfZGF0YSk7CisgICAgIH0K Ky0gICAgCisrCisgICAgIGlmKGNlcnRfc3RvcmUpCisgICAgIHsKKyAgICAgICAgIFg1MDlfU1RP UkVfZnJlZShjZXJ0X3N0b3JlKTsKK0BAIC0yMDY5LDcgKzIwNjksNyBAQCBnbG9idXNfZ3NpX2Ny ZWRfdmVyaWZ5KAorICAgICAgICAgICAgIChfR0NSU0woIkVycm9yIGdldHRpbmcgcHVibGljIGtl eSBmcm9tIGlzc3VlciBjZXJ0aWZpY2F0ZSIpKSk7CisgICAgICAgICBnb3RvIGVycm9yOworICAg ICB9CistICAgIAorKworICAgICBpZighWDUwOV92ZXJpZnkoaGFuZGxlLT5jZXJ0LGlzc3Vlcl9w a2V5KSkKKyAgICAgeworICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX09QRU5TU0xfRVJST1JfUkVT VUxUKAorQEAgLTIwODEsNyArMjA4MSw3IEBAIGdsb2J1c19nc2lfY3JlZF92ZXJpZnkoCisgICAg IEVWUF9QS0VZX2ZyZWUoaXNzdWVyX3BrZXkpOworIAorICBlcnJvcjoKKy0gICAgCisrCisgICAg IEdMT0JVU19JX0dTSV9DUkVEX0RFQlVHX0VYSVQ7CisgICAgIHJldHVybiByZXN1bHQ7CisgfQor QEAgLTIxMjQsMTEgKzIxMjQsMTEgQEAgZ2xvYnVzX2lfZ3NpX2NyZWRfZ29vZHRpbGwoCisgICAg IHsKKyAgICAgICAgIGNlcnRfY291bnQgPSBza19YNTA5X251bShjcmVkX2hhbmRsZS0+Y2VydF9j aGFpbik7CisgICAgIH0KKy0gICAgICAgIAorKworICAgICB3aGlsZShjdXJyZW50X2NlcnQpCisg ICAgIHsKKyAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19nc2lfY2VydF91dGlsc19tYWtlX3RpbWUo CistICAgICAgICAgICAgWDUwOV9nZXRfbm90QWZ0ZXIoY3VycmVudF9jZXJ0KSwgCisrICAgICAg ICAgICAgWDUwOV9nZXRfbm90QWZ0ZXIoY3VycmVudF9jZXJ0KSwKKyAgICAgICAgICAgICAmdG1w X2dvb2R0aWxsKTsKKyAgICAgICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAg ICAgIHsKK0BAIC0yMTQyLDcgKzIxNDIsNyBAQCBnbG9idXNfaV9nc2lfY3JlZF9nb29kdGlsbCgK KyAgICAgICAgIHsKKyAgICAgICAgICAgICAqZ29vZHRpbGwgPSB0bXBfZ29vZHRpbGw7CisgICAg ICAgICB9CistICAgICAgICAKKysKKyAgICAgICAgIGlmKGNyZWRfaGFuZGxlLT5jZXJ0X2NoYWlu ICYmIGNlcnRfY291bnQpCisgICAgICAgICB7CisgICAgICAgICAgICAgY2VydF9jb3VudC0tOwor ZGlmZiAtLWdpdCBhL2dzaS9jcmVkZW50aWFsL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfY3Jl ZGVudGlhbC5jIGIvZ3NpL2NyZWRlbnRpYWwvc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9jcmVk ZW50aWFsLmMKK2luZGV4IGVlODNkNTVlYy4uMDczNWM5OTMyIDEwMDY0NAorLS0tIGEvZ3NpL2Ny ZWRlbnRpYWwvc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9jcmVkZW50aWFsLmMKKysrKyBiL2dz aS9jcmVkZW50aWFsL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfY3JlZGVudGlhbC5jCitAQCAt NzAsNyArNzAsNyBAQCBnbG9idXNfbF9nc2lfY3JlZGVudGlhbF9hY3RpdmF0ZSh2b2lkKQorICAg ICBpZih0bXBfc3RyaW5nICE9IEdMT0JVU19OVUxMKQorICAgICB7CisgICAgICAgICBnbG9idXNf aV9nc2lfY3JlZF9kZWJ1Z19sZXZlbCA9IGF0b2kodG1wX3N0cmluZyk7CistICAgICAgICAKKysK KyAgICAgICAgIGlmKGdsb2J1c19pX2dzaV9jcmVkX2RlYnVnX2xldmVsIDwgMCkKKyAgICAgICAg IHsKKyAgICAgICAgICAgICBnbG9idXNfaV9nc2lfY3JlZF9kZWJ1Z19sZXZlbCA9IDA7CitAQCAt MTAxLDcgKzEwMSw3IEBAIGdsb2J1c19sX2dzaV9jcmVkZW50aWFsX2FjdGl2YXRlKHZvaWQpCisg ICAgIHsKKyAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgfQorLSAgICAKKysKKyAgICAgcmVzdWx0 ID0gZ2xvYnVzX21vZHVsZV9hY3RpdmF0ZShHTE9CVVNfR1NJX1NZU0NPTkZJR19NT0RVTEUpOwor IAorICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCitAQCAtMTE1LDExICsxMTUsMTEg QEAgZ2xvYnVzX2xfZ3NpX2NyZWRlbnRpYWxfYWN0aXZhdGUodm9pZCkKKyAgICAgeworICAgICAg ICAgZ290byBleGl0OworICAgICB9CistICAgIAorKworICAgICBPcGVuU1NMX2FkZF9hbGxfYWxn b3JpdGhtcygpOworIAorICAgICBHTE9CVVNfSV9HU0lfQ1JFRF9ERUJVR19FWElUOworLSAgICAK KysKKyAgZXhpdDoKKyAKKyAgICAgcmV0dXJuIHJlc3VsdDsKK0BAIC0xNzMsNyArMTczLDcgQEAg Z2xvYnVzX2xfZ3NpX2NyZWRfc3ViamVjdF9jbXAoCisgICogQGRldGFpbHMKKyAgKiBSZWFkIGEg Y3JlZGVudGlhbCBmcm9tIGEgZmlsZXN5c3RlbSBsb2NhdGlvbi4gVGhlIGNyZWRlbnRpYWwKKyAg KiB0byByZWFkIHdpbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgc2VhcmNoIG9yZGVyIHNwZWNpZmll ZCBpbiB0aGUgaGFuZGxlCistICogYXR0cmlidXRlcy4gIAorKyAqIGF0dHJpYnV0ZXMuCisgICog QHBhcmFtIGhhbmRsZQorICAqICAgICAgICBUaGUgY3JlZGVudGlhbCBoYW5kbGUgdG8gc2V0LiAg VGhpcyBjcmVkZW50aWFsIGhhbmRsZQorICAqICAgICAgICBzaG91bGQgYWxyZWFkeSBiZSBpbml0 aWFsaXplZCB1c2luZyBnbG9idXNfZ3NpX2NyZWRfaGFuZGxlX2luaXQuCitAQCAtMjExLDcgKzIx MSw3IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkKAorICAgICBjaGFyICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBrZXkgPSBOVUxMOworICAgICBjaGFyICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwcm94eSA9IE5VTEw7CisgICAgIGNoYXIgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZpY2VfbmFtZSA9IE5VTEw7CistICAgIAorKworICAgICBHTE9CVVNfSV9H U0lfQ1JFRF9ERUJVR19FTlRFUjsKKyAKKyAgICAgZm9yKHJlc3VsdF9pbmRleCA9IDA7IHJlc3Vs dF9pbmRleCA8IDQ7ICsrcmVzdWx0X2luZGV4KQorQEAgLTIzOCw3ICsyMzgsNyBAQCBnbG9idXNf Z3NpX2NyZWRfcmVhZCgKKyAgICAgICAgIGNhc2UgR0xPQlVTX1BST1hZOgorIAorICAgICAgICAg ICAgIHJlc3VsdHNbcmVzdWx0X2luZGV4XSA9IEdMT0JVU19HU0lfU1lTQ09ORklHX0dFVF9QUk9Y WV9GSUxFTkFNRSgKKy0gICAgICAgICAgICAgICAgJnByb3h5LCAKKysgICAgICAgICAgICAgICAg JnByb3h5LAorICAgICAgICAgICAgICAgICBHTE9CVVNfUFJPWFlfRklMRV9JTlBVVCk7CisgICAg ICAgICAgICAgaWYocmVzdWx0c1tyZXN1bHRfaW5kZXhdICE9IEdMT0JVU19TVUNDRVNTKQorICAg ICAgICAgICAgIHsKK0BAIC0yNDgsNyArMjQ4LDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3JlYWQoCisg ICAgICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX0NSRURfRVJST1JfUkVBRElOR19QUk9YWV9D UkVEKTsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAKKysKKyAgICAgICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPSBnbG9idXNf Z3NpX2NyZWRfcmVhZF9wcm94eShoYW5kbGUsIHByb3h5KTsKKyAgICAgICAgICAgICBpZihyZXN1 bHRzW3Jlc3VsdF9pbmRleF0gIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgICAgICAgICAgeworQEAg LTI1NywxMSArMjU3LDExIEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkKAorICAgICAgICAgICAgICAg ICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1JFQURJTkdfUFJPWFlfQ1JFRCk7CisgICAgICAg ICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgCisrCisg ICAgICAgICAgICAgaWYoZGVzaXJlZF9zdWJqZWN0ICE9IE5VTEwpCisgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPSBnbG9idXNfZ3NpX2NyZWRf Z2V0X1g1MDlfc3ViamVjdF9uYW1lKAorLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlLCAKKysg ICAgICAgICAgICAgICAgICAgIGhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICZmb3VuZF9z dWJqZWN0KTsKKyAgICAgICAgICAgICAgICAgaWYocmVzdWx0c1tyZXN1bHRfaW5kZXhdICE9IEdM T0JVU19TVUNDRVNTKQorICAgICAgICAgICAgICAgICB7CitAQCAtMjc1LDggKzI3NSw4IEBAIGds b2J1c19nc2lfY3JlZF9yZWFkKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpcmVkX3N1YmplY3QpOworIAor ICAgICAgICAgICAgICAgICBYNTA5X05BTUVfZnJlZShmb3VuZF9zdWJqZWN0KTsKKy0gICAgICAg ICAgICAgICAgZm91bmRfc3ViamVjdCA9IE5VTEw7ICAgICAgICAgICAgICAgIAorLSAgICAgICAg ICAgICAgICAKKysgICAgICAgICAgICAgICAgZm91bmRfc3ViamVjdCA9IE5VTEw7CisrCisgICAg ICAgICAgICAgICAgIGlmKHJlc3VsdHNbcmVzdWx0X2luZGV4XSAhPSBHTE9CVVNfU1VDQ0VTUykK KyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVE X0VSUk9SX0NIQUlOX1JFU1VMVCgKK0BAIC0yOTYsMTUgKzI5NiwxNSBAQCBnbG9idXNfZ3NpX2Ny ZWRfcmVhZCgKKyAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9XSVRI X0NSRUQpOworICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIAorKworICAgICAgICAgICAgIGlmKGxpZmV0aW1lIDw9IDApCisgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgIHN1 YmplY3QgPSBOVUxMOworLSAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgc3Vi amVjdCA9IFg1MDlfTkFNRV9vbmVsaW5lKAorICAgICAgICAgICAgICAgICAgICAgWDUwOV9nZXRf c3ViamVjdF9uYW1lKGhhbmRsZS0+Y2VydCksCisgICAgICAgICAgICAgICAgICAgICBOVUxMLCAw KTsKKy0gICAgICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JF RF9FUlJPUl9SRVNVTFQoCisgICAgICAgICAgICAgICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRl eF0sCisgICAgICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX0NSRURfRVJST1JfV0lUSF9DUkVE LAorQEAgLTMxMywxOCArMzEzLDE4IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkKAorICAgICAgICAg ICAgICAgICAgICAgIHByb3h5LAorICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QsCisgICAg ICAgICAgICAgICAgICAgICAgKC1saWZldGltZSkvNjApKTsKKy0gICAgICAgICAgICAgICAgCisr CisgICAgICAgICAgICAgICAgIE9QRU5TU0xfZnJlZShzdWJqZWN0KTsKKyAgICAgICAgICAgICAg ICAgZ290byBleGl0OworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBHTE9CVVNfSV9HU0lf Q1JFRF9ERUJVR19GUFJJTlRGKDEsIChnbG9idXNfaV9nc2lfY3JlZF9kZWJ1Z19mc3RyZWFtLAor LQkJCQkiVXNpbmcgUHJveHkgZmlsZSAoJXMpXG4iLCBwcm94eSkpOworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlVzaW5nIFByb3h5IGZpbGUgKCVzKVxuIiwgcHJveHkpKTsKKyAK KyAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgCisgICAgICAgICBjYXNlIEdMT0JVU19VU0VSOgor LSAgICAgICAgICAgIAorLSAgICAgICAgICAgIHJlc3VsdHNbcmVzdWx0X2luZGV4XSA9IAorKwor KyAgICAgICAgICAgIHJlc3VsdHNbcmVzdWx0X2luZGV4XSA9CisgICAgICAgICAgICAgICAgIEdM T0JVU19HU0lfU1lTQ09ORklHX0dFVF9VU0VSX0NFUlRfRklMRU5BTUUoJmNlcnQsICZrZXkpOwor ICAgICAgICAgICAgIGlmKHJlc3VsdHNbcmVzdWx0X2luZGV4XSAhPSBHTE9CVVNfU1VDQ0VTUykK KyAgICAgICAgICAgICB7CitAQCAtMzM0LDcgKzMzNCw3IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFk KAorICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1tyZXN1bHRfaW5kZXhdLAorICAgICAgICAg ICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1JFQURJTkdfQ1JFRCk7CisgICAgICAg ICAgICAgICAgIGJyZWFrOworLSAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgIAorKyAg ICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPSBnbG9i dXNfZ3NpX2NyZWRfcmVhZF9jZXJ0KGhhbmRsZSwgY2VydCk7CisgICAgICAgICAgICAgaWYocmVz dWx0c1tyZXN1bHRfaW5kZXhdICE9IEdMT0JVU19TVUNDRVNTKQorQEAgLTM0NiwxNCArMzQ2LDE0 IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkKAorICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAg ICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPSBnbG9idXNfZ3NpX2NyZWRfcmVhZF9rZXkoCistICAg ICAgICAgICAgICAgIGhhbmRsZSwgCistICAgICAgICAgICAgICAgIGtleSwgCisrICAgICAgICAg ICAgICAgIGhhbmRsZSwKKysgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICBn bG9idXNfaV9nc2lfY3JlZF9wYXNzd29yZF9jYWxsYmFja19ub19wcm9tcHQpOworICAgICAgICAg ICAgIGlmKHJlc3VsdHNbcmVzdWx0X2luZGV4XSAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgIGdsb2J1c19vYmplY3RfdCAqICAgICAgIGVycm9yX29i ajsKKyAgICAgICAgICAgICAgICAgZXJyb3Jfb2JqID0gZ2xvYnVzX2Vycm9yX3BlZWsocmVzdWx0 c1tyZXN1bHRfaW5kZXhdKTsKKy0gICAgICAgICAgICAgICAgaWYoZ2xvYnVzX2Vycm9yX2dldF90 eXBlKGVycm9yX29iaikgPT0gCisrICAgICAgICAgICAgICAgIGlmKGdsb2J1c19lcnJvcl9nZXRf dHlwZShlcnJvcl9vYmopID09CisgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9F UlJPUl9LRVlfSVNfUEFTU19QUk9URUNURUQpCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9DSEFJTl9SRVNVTFQoCitAQCAtMzgy LDcgKzM4Miw3IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkKAorICAgICAgICAgICAgIGlmKGRlc2ly ZWRfc3ViamVjdCAhPSBOVUxMKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcmVz dWx0c1tyZXN1bHRfaW5kZXhdID0gZ2xvYnVzX2dzaV9jcmVkX2dldF9YNTA5X3N1YmplY3RfbmFt ZSgKKy0gICAgICAgICAgICAgICAgICAgIGhhbmRsZSwgCisrICAgICAgICAgICAgICAgICAgICBo YW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAmZm91bmRfc3ViamVjdCk7CisgICAgICAgICAg ICAgICAgIGlmKHJlc3VsdHNbcmVzdWx0X2luZGV4XSAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAg ICAgICAgICAgICAgeworQEAgLTM5MSwxNCArMzkxLDE0IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFk KAorICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9SRUFESU5H X0NSRUQpOworICAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIAorKworICAgICAgICAgICAgICAgICByZXN1bHRzW3Jlc3Vs dF9pbmRleF0gPSBnbG9idXNfbF9nc2lfY3JlZF9zdWJqZWN0X2NtcCgKKyAgICAgICAgICAgICAg ICAgICAgIGZvdW5kX3N1YmplY3QsCisgICAgICAgICAgICAgICAgICAgICBkZXNpcmVkX3N1Ympl Y3QpOworIAorICAgICAgICAgICAgICAgICBYNTA5X05BTUVfZnJlZShmb3VuZF9zdWJqZWN0KTsK KyAgICAgICAgICAgICAgICAgZm91bmRfc3ViamVjdCA9IE5VTEw7CistICAgICAgICAgICAgICAg IAorKworICAgICAgICAgICAgICAgICBpZihyZXN1bHRzW3Jlc3VsdF9pbmRleF0gIT0gR0xPQlVT X1NVQ0NFU1MpCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIEdMT0JV U19HU0lfQ1JFRF9FUlJPUl9DSEFJTl9SRVNVTFQoCitAQCAtNDE4LDE1ICs0MTgsMTUgQEAgZ2xv YnVzX2dzaV9jcmVkX3JlYWQoCisgICAgICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX0NSRURf RVJST1JfV0lUSF9DUkVEKTsKKyAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAKKysKKyAgICAgICAgICAgICBpZihsaWZldGltZSA8PSAwKQor ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgY2hhciAqICAgICAgICAgICAgICAgICAg ICAgICAgICBzdWJqZWN0ID0gTlVMTDsKKy0gICAgICAgICAgICAgICAgCisrCisgICAgICAgICAg ICAgICAgIHN1YmplY3QgPSBYNTA5X05BTUVfb25lbGluZSgKKyAgICAgICAgICAgICAgICAgICAg IFg1MDlfZ2V0X3N1YmplY3RfbmFtZShoYW5kbGUtPmNlcnQpLAorICAgICAgICAgICAgICAgICAg ICAgTlVMTCwgMCk7CistICAgICAgICAgICAgICAgIAorKworICAgICAgICAgICAgICAgICBHTE9C VVNfR1NJX0NSRURfRVJST1JfUkVTVUxUKAorICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1ty ZXN1bHRfaW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9S X1dJVEhfQ1JFRCwKK0BAIC00MzUsMTggKzQzNSwxOCBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZCgK KyAgICAgICAgICAgICAgICAgICAgICBjZXJ0LAorICAgICAgICAgICAgICAgICAgICAgIHN1Ympl Y3QsCisgICAgICAgICAgICAgICAgICAgICAgKC1saWZldGltZSkvNjApKTsKKy0gICAgICAgICAg ICAgICAgCisrCisgICAgICAgICAgICAgICAgIE9QRU5TU0xfZnJlZShzdWJqZWN0KTsKKyAgICAg ICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICBH TE9CVVNfSV9HU0lfQ1JFRF9ERUJVR19GUFJJTlRGKDEsIChnbG9idXNfaV9nc2lfY3JlZF9kZWJ1 Z19mc3RyZWFtLAorLQkJCSJVc2luZyBVc2VyIGNlcnQgZmlsZSAoJXMpLCBrZXkgZmlsZSAoJXMp XG4iLCBjZXJ0LCBrZXkpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAiVXNpbmcgVXNlciBj ZXJ0IGZpbGUgKCVzKSwga2V5IGZpbGUgKCVzKVxuIiwgY2VydCwga2V5KSk7CisgICAgICAgICAg ICAgZ290byBleGl0OworIAorICAgICAgICAgY2FzZSBHTE9CVVNfSE9TVDoKKy0gICAgICAgICAg ICAKKy0gICAgICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPSAKKysKKysgICAgICAgICAg ICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPQorICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZ U0NPTkZJR19HRVRfSE9TVF9DRVJUX0ZJTEVOQU1FKCZjZXJ0LCAma2V5KTsKKyAgICAgICAgICAg ICBpZihyZXN1bHRzW3Jlc3VsdF9pbmRleF0gIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgICAgICAg ICAgeworQEAgLTQ1Niw3ICs0NTYsNyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZCgKKyAgICAgICAg ICAgICAgICAgICAgIHJlc3VsdHNbcmVzdWx0X2luZGV4XSwKKyAgICAgICAgICAgICAgICAgICAg IEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9SRUFESU5HX0hPU1RfQ1JFRCk7CisgICAgICAgICAgICAg ICAgIGJyZWFrOworLSAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgIAorKyAgICAgICAg ICAgIH0KKyAKKyAgICAgICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPSBnbG9idXNfZ3Np X2NyZWRfcmVhZF9jZXJ0KGhhbmRsZSwgY2VydCk7CisgICAgICAgICAgICAgaWYocmVzdWx0c1ty ZXN1bHRfaW5kZXhdICE9IEdMT0JVU19TVUNDRVNTKQorQEAgLTQ2OCwxNCArNDY4LDE0IEBAIGds b2J1c19nc2lfY3JlZF9yZWFkKAorICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICByZXN1 bHRzW3Jlc3VsdF9pbmRleF0gPSBnbG9idXNfZ3NpX2NyZWRfcmVhZF9rZXkoCistICAgICAgICAg ICAgICAgIGhhbmRsZSwgCistICAgICAgICAgICAgICAgIGtleSwgCisrICAgICAgICAgICAgICAg IGhhbmRsZSwKKysgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICBnbG9idXNf aV9nc2lfY3JlZF9wYXNzd29yZF9jYWxsYmFja19ub19wcm9tcHQpOworICAgICAgICAgICAgIGlm KHJlc3VsdHNbcmVzdWx0X2luZGV4XSAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgIGdsb2J1c19vYmplY3RfdCAqICAgICAgIGVycm9yX29iajsKKyAg ICAgICAgICAgICAgICAgZXJyb3Jfb2JqID0gZ2xvYnVzX2Vycm9yX3BlZWsocmVzdWx0c1tyZXN1 bHRfaW5kZXhdKTsKKy0gICAgICAgICAgICAgICAgaWYoZ2xvYnVzX2Vycm9yX2dldF90eXBlKGVy cm9yX29iaikgPT0gCisrICAgICAgICAgICAgICAgIGlmKGdsb2J1c19lcnJvcl9nZXRfdHlwZShl cnJvcl9vYmopID09CisgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9L RVlfSVNfUEFTU19QUk9URUNURUQpCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9DSEFJTl9SRVNVTFQoCitAQCAtNTA0LDkgKzUw NCw5IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkKAorICAgICAgICAgICAgIGlmKGRlc2lyZWRfc3Vi amVjdCAhPSBOVUxMKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcmVzdWx0c1ty ZXN1bHRfaW5kZXhdID0gZ2xvYnVzX2dzaV9jcmVkX2dldF9YNTA5X3N1YmplY3RfbmFtZSgKKy0g ICAgICAgICAgICAgICAgICAgIGhhbmRsZSwgCisrICAgICAgICAgICAgICAgICAgICBoYW5kbGUs CisgICAgICAgICAgICAgICAgICAgICAmZm91bmRfc3ViamVjdCk7CistICAgICAgICAgICAgICAg IAorKworICAgICAgICAgICAgICAgICBpZihyZXN1bHRzW3Jlc3VsdF9pbmRleF0gIT0gR0xPQlVT X1NVQ0NFU1MpCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIEdMT0JV U19HU0lfQ1JFRF9FUlJPUl9DSEFJTl9SRVNVTFQoCitAQCAtNTE0LDEzICs1MTQsMTMgQEAgZ2xv YnVzX2dzaV9jcmVkX3JlYWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9D UkVEX0VSUk9SX1JFQURJTkdfSE9TVF9DUkVEKTsKKyAgICAgICAgICAgICAgICAgICAgIGdvdG8g ZXhpdDsKKyAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAKKysKKyAgICAgICAg ICAgICAgICAgcmVzdWx0c1tyZXN1bHRfaW5kZXhdID0gZ2xvYnVzX2xfZ3NpX2NyZWRfc3ViamVj dF9jbXAoZm91bmRfc3ViamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaXJlZF9zdWJqZWN0KTsKKyAK KyAgICAgICAgICAgICAgICAgWDUwOV9OQU1FX2ZyZWUoZm91bmRfc3ViamVjdCk7CistICAgICAg ICAgICAgICAgIGZvdW5kX3N1YmplY3QgPSBOVUxMOyAgICAgICAgICAgICAgICAKKy0gICAgICAg ICAgICAgICAgCisrICAgICAgICAgICAgICAgIGZvdW5kX3N1YmplY3QgPSBOVUxMOworKworICAg ICAgICAgICAgICAgICBpZihyZXN1bHRzW3Jlc3VsdF9pbmRleF0gIT0gR0xPQlVTX1NVQ0NFU1Mp CisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JF RF9FUlJPUl9DSEFJTl9SRVNVTFQoCitAQCAtNTI5LDcgKzUyOSw3IEBAIGdsb2J1c19nc2lfY3Jl ZF9yZWFkKAorICAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIHJlc3Vs dHNbcmVzdWx0X2luZGV4XSA9IGdsb2J1c19nc2lfY3JlZF9nZXRfbGlmZXRpbWUoCisgICAgICAg ICAgICAgICAgIGhhbmRsZSwKKyAgICAgICAgICAgICAgICAgJmxpZmV0aW1lKTsKK0BAIC01NDAs MTUgKzU0MCwxNSBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZCgKKyAgICAgICAgICAgICAgICAgICAg IEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9XSVRIX0NSRUQpOworICAgICAgICAgICAgICAgICBnb3Rv IGV4aXQ7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIGlm KGxpZmV0aW1lIDw9IDApCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBjaGFyICog ICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QgPSBOVUxMOworLSAgICAgICAgICAgICAg ICAKKysKKyAgICAgICAgICAgICAgICAgc3ViamVjdCA9IFg1MDlfTkFNRV9vbmVsaW5lKAorICAg ICAgICAgICAgICAgICAgICAgWDUwOV9nZXRfc3ViamVjdF9uYW1lKGhhbmRsZS0+Y2VydCksCisg ICAgICAgICAgICAgICAgICAgICBOVUxMLCAwKTsKKy0gICAgICAgICAgICAgICAgCisrCisgICAg ICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9SRVNVTFQoCisgICAgICAgICAgICAg ICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0sCisgICAgICAgICAgICAgICAgICAgICBHTE9C VVNfR1NJX0NSRURfRVJST1JfV0lUSF9DUkVELAorQEAgLTU1NywyMyArNTU3LDIzIEBAIGdsb2J1 c19nc2lfY3JlZF9yZWFkKAorICAgICAgICAgICAgICAgICAgICAgIGNlcnQsCisgICAgICAgICAg ICAgICAgICAgICAgc3ViamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAoLWxpZmV0aW1lKS82 MCkpOworLSAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgT1BFTlNTTF9mcmVl KHN1YmplY3QpOworICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgfQor IAorICAgICAgICAgICAgIEdMT0JVU19JX0dTSV9DUkVEX0RFQlVHX0ZQUklOVEYoMSwgKGdsb2J1 c19pX2dzaV9jcmVkX2RlYnVnX2ZzdHJlYW0sCistCQkJIlVzaW5nIEhvc3QgY2VydCBmaWxlICgl cyksIGtleSBmaWxlICglcylcbiIsIGNlcnQsIGtleSkpOworKyAgICAgICAgICAgICAgICAgICAg ICAgICJVc2luZyBIb3N0IGNlcnQgZmlsZSAoJXMpLCBrZXkgZmlsZSAoJXMpXG4iLCBjZXJ0LCBr ZXkpKTsKKyAgICAgICAgICAgICBnb3RvIGV4aXQ7CistICAgICAgICAgICAgCisrCisgICAgICAg ICBjYXNlIEdMT0JVU19TRVJWSUNFOgorIAorICAgICAgICAgICAgIGlmKGRlc2lyZWRfc3ViamVj dCAhPSBOVUxMKQorLSAgICAgICAgICAgIHsgCisrICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPQorICAgICAgICAgICAgICAgICAgICAgZ2xvYnVz X2xfZ3NpX2NyZWRfZ2V0X3NlcnZpY2UoZGVzaXJlZF9zdWJqZWN0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNlcnZpY2VfbmFtZSk7CistICAg ICAgICAgIAorKworICAgICAgICAgICAgICAgICBpZihyZXN1bHRzW3Jlc3VsdF9pbmRleF0gIT0g R0xPQlVTX1NVQ0NFU1MpCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg IHNlcnZpY2VfbmFtZSA9IE5VTEw7CitAQCAtNTgxLDkgKzU4MSw5IEBAIGdsb2J1c19nc2lfY3Jl ZF9yZWFkKAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNbcmVzdWx0X2luZGV4XSwK KyAgICAgICAgICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX0NSRURfRVJST1JfUkVBRElOR19T RVJWSUNFX0NSRUQpOworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CistICAgICAgICAgICAg ICAgIH0gICAgICAgICAgICAgICAgICAgIAorLSAgICAgICAgICAgICAgICAKKy0gICAgICAgICAg ICAgICAgcmVzdWx0c1tyZXN1bHRfaW5kZXhdID0gCisrICAgICAgICAgICAgICAgIH0KKysKKysg ICAgICAgICAgICAgICAgcmVzdWx0c1tyZXN1bHRfaW5kZXhdID0KKyAgICAgICAgICAgICAgICAg ICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0dFVF9TRVJWSUNFX0NFUlRfRklMRU5BTUUoCisgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmljZV9uYW1lLCAmY2VydCwgJmtleSk7CisgICAgICAg ICAgICAgICAgIGlmKHJlc3VsdHNbcmVzdWx0X2luZGV4XSAhPSBHTE9CVVNfU1VDQ0VTUykKK0BA IC01OTQsOSArNTk0LDkgQEAgZ2xvYnVzX2dzaV9jcmVkX3JlYWQoCisgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzdWx0c1tyZXN1bHRfaW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgICAg IEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9SRUFESU5HX1NFUlZJQ0VfQ1JFRCk7CisgICAgICAgICAg ICAgICAgICAgICBicmVhazsKKy0gICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg CisrICAgICAgICAgICAgICAgIH0KKyAKKy0gICAgICAgICAgICAgICAgcmVzdWx0c1tyZXN1bHRf aW5kZXhdID0gCisrICAgICAgICAgICAgICAgIHJlc3VsdHNbcmVzdWx0X2luZGV4XSA9CisgICAg ICAgICAgICAgICAgICAgICBnbG9idXNfZ3NpX2NyZWRfcmVhZF9jZXJ0KGhhbmRsZSwgY2VydCk7 CisgICAgICAgICAgICAgICAgIGlmKHJlc3VsdHNbcmVzdWx0X2luZGV4XSAhPSBHTE9CVVNfU1VD Q0VTUykKKyAgICAgICAgICAgICAgICAgeworQEAgLTYwNSwxNiArNjA1LDE2IEBAIGdsb2J1c19n c2lfY3JlZF9yZWFkKAorICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9F UlJPUl9SRUFESU5HX1NFUlZJQ0VfQ1JFRCk7CisgICAgICAgICAgICAgICAgICAgICBnb3RvIGV4 aXQ7CisgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIAorKworICAgICAg ICAgICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPSBnbG9idXNfZ3NpX2NyZWRfcmVhZF9r ZXkoCistICAgICAgICAgICAgICAgICAgICBoYW5kbGUsIAorLSAgICAgICAgICAgICAgICAgICAg a2V5LCAKKysgICAgICAgICAgICAgICAgICAgIGhhbmRsZSwKKysgICAgICAgICAgICAgICAgICAg IGtleSwKKyAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19pX2dzaV9jcmVkX3Bhc3N3b3JkX2Nh bGxiYWNrX25vX3Byb21wdCk7CisgICAgICAgICAgICAgICAgIGlmKHJlc3VsdHNbcmVzdWx0X2lu ZGV4XSAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICAgZ2xvYnVzX29iamVjdF90ICogICBlcnJvcl9vYmo7CisgICAgICAgICAgICAgICAg ICAgICBlcnJvcl9vYmogPSBnbG9idXNfZXJyb3JfcGVlayhyZXN1bHRzW3Jlc3VsdF9pbmRleF0p OworLSAgICAgICAgICAgICAgICAgICAgaWYoZ2xvYnVzX2Vycm9yX2dldF90eXBlKGVycm9yX29i aikgPT0gCisrICAgICAgICAgICAgICAgICAgICBpZihnbG9idXNfZXJyb3JfZ2V0X3R5cGUoZXJy b3Jfb2JqKSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9S X0tFWV9JU19QQVNTX1BST1RFQ1RFRCkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX0NSRURfRVJST1JfQ0hBSU5fUkVTVUxUKAorQEAg LTYyOCw3ICs2MjgsNyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZCgKKyAgICAgICAgICAgICAgICAg ICAgICAgICBHTE9CVVNfR1NJX0NSRURfRVJST1JfUkVBRElOR19TRVJWSUNFX0NSRUQpOworICAg ICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgcmVzdWx0c1tyZXN1bHRfaW5kZXhd ID0gZ2xvYnVzX2lfZ3NpX2NyZWRfZ29vZHRpbGwoCisgICAgICAgICAgICAgICAgICAgICBoYW5k bGUsCisgICAgICAgICAgICAgICAgICAgICAmKGhhbmRsZS0+Z29vZHRpbGwpKTsKK0BAIC02NDMs NyArNjQzLDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3JlYWQoCisgICAgICAgICAgICAgICAgIGlmKGRl c2lyZWRfc3ViamVjdCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0gPSBnbG9idXNfZ3NpX2NyZWRfZ2V0X1g1MDlf c3ViamVjdF9uYW1lKAorLSAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZSwgCisrICAgICAg ICAgICAgICAgICAgICAgICAgaGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICZmb3Vu ZF9zdWJqZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgIGlmKHJlc3VsdHNbcmVzdWx0X2luZGV4 XSAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgICAgICAgICAgICAgICAgIHsKK0BAIC02NTIsMTMg KzY1MiwxMyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZCgKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1JFQURJTkdfU0VSVklDRV9DUkVEKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNbcmVz dWx0X2luZGV4XSA9IGdsb2J1c19sX2dzaV9jcmVkX3N1YmplY3RfY21wKGZvdW5kX3N1YmplY3Qs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkZXNpcmVkX3N1YmplY3QpOworIAorICAgICAgICAgICAgICAg ICAgICAgWDUwOV9OQU1FX2ZyZWUoZm91bmRfc3ViamVjdCk7CistICAgICAgICAgICAgICAgICAg ICBmb3VuZF9zdWJqZWN0ID0gTlVMTDsgICAgICAgICAgICAgICAgCistICAgICAgICAgICAgICAg IAorKyAgICAgICAgICAgICAgICAgICAgZm91bmRfc3ViamVjdCA9IE5VTEw7CisrCisgICAgICAg ICAgICAgICAgICAgICBpZihyZXN1bHRzW3Jlc3VsdF9pbmRleF0gIT0gR0xPQlVTX1NVQ0NFU1Mp CisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQlVT X0dTSV9DUkVEX0VSUk9SX0NIQUlOX1JFU1VMVCgKK0BAIC02NjcsNyArNjY3LDcgQEAgZ2xvYnVz X2dzaV9jcmVkX3JlYWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAKKysKKyAg ICAgICAgICAgICAgICAgcmVzdWx0c1tyZXN1bHRfaW5kZXhdID0gZ2xvYnVzX2dzaV9jcmVkX2dl dF9saWZldGltZSgKKyAgICAgICAgICAgICAgICAgICAgIGhhbmRsZSwKKyAgICAgICAgICAgICAg ICAgICAgICZsaWZldGltZSk7CitAQCAtNjc4LDE1ICs2NzgsMTUgQEAgZ2xvYnVzX2dzaV9jcmVk X3JlYWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1dJ VEhfQ1JFRCk7CisgICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgICAgIGlmKGxpZmV0aW1l IDw9IDApCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVjdCA9IE5VTEw7CistICAgICAgICAgICAgICAg ICAgICAKKysKKyAgICAgICAgICAgICAgICAgICAgIHN1YmplY3QgPSBYNTA5X05BTUVfb25lbGlu ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICBYNTA5X2dldF9zdWJqZWN0X25hbWUoaGFuZGxl LT5jZXJ0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwKTsKKy0gICAgICAgICAg ICAgICAgICAgIAorKworICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9S X1JFU1VMVCgKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRleF0s CisgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1dJVEhfQ1JF RCwKK0BAIC02OTUsMTMgKzY5NSwxMyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZCgKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgY2VydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViamVj dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKC1saWZldGltZSkvNjApKTsKKy0gICAgICAg ICAgICAgICAgICAgIAorKworICAgICAgICAgICAgICAgICAgICAgT1BFTlNTTF9mcmVlKHN1Ympl Y3QpOworICAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgICB9 CisgCisgICAgICAgICAgICAgICAgIEdMT0JVU19JX0dTSV9DUkVEX0RFQlVHX0ZQUklOVEYoMSwg KGdsb2J1c19pX2dzaV9jcmVkX2RlYnVnX2ZzdHJlYW0sCistCQkJIlVzaW5nIFNlcnZpY2UgY2Vy dCBmaWxlICglcyksIGtleSBmaWxlICglcylcbiIsIGNlcnQsIGtleSkpOworKyAgICAgICAgICAg ICAgICAgICAgICAgICJVc2luZyBTZXJ2aWNlIGNlcnQgZmlsZSAoJXMpLCBrZXkgZmlsZSAoJXMp XG4iLCBjZXJ0LCBrZXkpKTsKKyAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICBlbHNlCitAQCAtNzA5LDE3ICs3MDksMTcgQEAgZ2xvYnVzX2dz aV9jcmVkX3JlYWQoCisgICAgICAgICAgICAgICAgIHJlc3VsdF9pbmRleC0tOworICAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgCisrCisgICAgICAg ICBjYXNlIEdMT0JVU19TT19FTkQ6CisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBn bG9idXNfb2JqZWN0X3QgKiAgICAgICBtdWx0aXBsZV9vYmo7CistICAgICAgICAgICAgICAgIAor KworICAgICAgICAgICAgICAgICBtdWx0aXBsZV9vYmogPSBnbG9idXNfZXJyb3JfY29uc3RydWN0 X211bHRpcGxlKAorICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVERU5USUFMX01P RFVMRSwKKyAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9OT19DUkVE X0ZPVU5ELAorICAgICAgICAgICAgICAgICAgICAgX0dDUlNMKGdsb2J1c19sX2dzaV9jcmVkX2Vy cm9yX3N0cmluZ3NbCisgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VS Uk9SX05PX0NSRURfRk9VTkRdKSk7CistICAgICAgICAgICAgICAgIAorKworICAgICAgICAgICAg ICAgICB3aGlsZShyZXN1bHRfaW5kZXgtLSkKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICAgICAgZ2xvYnVzX2Vycm9yX211dGxpcGxlX2FkZF9jaGFpbigKK0BAIC03MjgsMTEg KzcyOCwxMSBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZCgKKyAgICAgICAgICAgICAgICAgICAgICAg ICBfR0NSU0woIkF0dGVtcHQgJWQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRf aW5kZXggKyAxKTsKKyAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAKKysKKyAg ICAgICAgICAgICAgICAgcmVzdWx0X2luZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgcmVzdWx0 c1tyZXN1bHRfaW5kZXhdID0gZ2xvYnVzX2Vycm9yX3B1dChtdWx0aXBsZV9vYmopOworICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAKKysKKyAgICAgICAgICAgICBHTE9CVVNfR1NJX0NSRURf RVJST1JfQ0hBSU5fUkVTVUxUKAorICAgICAgICAgICAgICAgICByZXN1bHRzW3Jlc3VsdF9pbmRl eF0sCisgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9OT19DUkVEX0ZPVU5E KTsKK0BAIC03NDQsMjggKzc0NCwyOCBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZCgKKyAgICAgICAg ICAgICBmcmVlKHByb3h5KTsKKyAgICAgICAgICAgICBwcm94eSA9IE5VTEw7CisgICAgICAgICB9 CistICAgICAgICAKKysKKyAgICAgICAgIGlmKGNlcnQpCisgICAgICAgICB7CisgICAgICAgICAg ICAgZnJlZShjZXJ0KTsKKyAgICAgICAgICAgICBjZXJ0ID0gTlVMTDsKKyAgICAgICAgIH0KKy0g ICAgICAgIAorKworICAgICAgICAgaWYoa2V5KQorICAgICAgICAgeworICAgICAgICAgICAgIGZy ZWUoa2V5KTsKKyAgICAgICAgICAgICBrZXkgPSBOVUxMOworICAgICAgICAgfQorLSAgICAgICAg ICAgIAorKworICAgICAgICAgaWYoc2VydmljZV9uYW1lKQorICAgICAgICAgeworICAgICAgICAg ICAgIGZyZWUoc2VydmljZV9uYW1lKTsKKyAgICAgICAgICAgICBzZXJ2aWNlX25hbWUgPSBOVUxM OworICAgICAgICAgfQorLSAgICAgICAgICAgIAorKworICAgICAgICAgcmVzdWx0X2luZGV4Kys7 CisgICAgIH0gd2hpbGUoKytpbmRleCk7CistICAgIAorKworICBleGl0OgorIAorICAgICByZXN1 bHQgPSByZXN1bHRzW3Jlc3VsdF9pbmRleF07CitAQCAtNzgzLDcgKzc4Myw3IEBAIGdsb2J1c19n c2lfY3JlZF9yZWFkKAorICAgICB7CisgICAgICAgICBmcmVlKHByb3h5KTsKKyAgICAgfQorLSAg ICAKKysKKyAgICAgaWYoY2VydCkKKyAgICAgeworICAgICAgICAgZnJlZShjZXJ0KTsKK0BAIC03 OTMsNyArNzkzLDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3JlYWQoCisgICAgIHsKKyAgICAgICAgIGZy ZWUoa2V5KTsKKyAgICAgfQorLSAgICAKKysKKyAgICAgaWYoc2VydmljZV9uYW1lKQorICAgICB7 CisgICAgICAgICBmcmVlKHNlcnZpY2VfbmFtZSk7CitAQCAtODI2LDcgKzgyNiw3IEBAIGdsb2J1 c19nc2lfY3JlZF9yZWFkX3Byb3h5KAorIHsKKyAgICAgQklPICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJveHlfYmlvID0gTlVMTDsKKyAgICAgZ2xvYnVzX3Jlc3VsdF90ICAgICAg ICAgICAgICAgICAgICAgcmVzdWx0OworLSAgICAKKysKKyAgICAgR0xPQlVTX0lfR1NJX0NSRURf REVCVUdfRU5URVI7CisgCisgICAgIGlmKGhhbmRsZSA9PSBOVUxMKQorQEAgLTg3NCwxMCArODc0 LDEwIEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkX3Byb3h5KAorICAqIEBicmllZiBSZWFkIHByb3h5 IGNyZWRlbnRpYWwgZnJvbSBhIEJJTworICAqIEBpbmdyb3VwIGdsb2J1c19nc2lfY3JlZF9vcGVy YXRpb25zCisgICogQGRldGFpbHMKKy0gKiBSZWFkIGEgUHJveHkgQ3JlZGVudGlhbCBmcm9tIGEg QklPIHN0cmVhbSBhbmQgc2V0IHRoZSAKKysgKiBSZWFkIGEgUHJveHkgQ3JlZGVudGlhbCBmcm9t IGEgQklPIHN0cmVhbSBhbmQgc2V0IHRoZQorICAqIGNyZWRlbnRpYWwgaGFuZGxlIHRvIHJlcHJl c2VudCB0aGUgcmVhZCBjcmVkZW50aWFsLgorICAqIFRoZSB2YWx1ZXMgcmVhZCBmcm9tIHRoZSBz dHJlYW0sIGluIG9yZGVyLCB3aWxsIGJlCistICogdGhlIHNpZ25lZCBjZXJ0aWZpY2F0ZSwgdGhl IHByaXZhdGUga2V5LCAKKysgKiB0aGUgc2lnbmVkIGNlcnRpZmljYXRlLCB0aGUgcHJpdmF0ZSBr ZXksCisgICogYW5kIHRoZSBjZXJ0aWZpY2F0ZSBjaGFpbi4KKyAgKgorICAqIEBwYXJhbSBoYW5k bGUKK0BAIC0xMTE4LDcgKzExMTgsNyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZF9wcm94eV9iaW8o CisgICogQHBhcmFtIGtleV9maWxlbmFtZQorICAqICAgICAgICB0aGUgZmlsZW5hbWUgb2YgdGhl IGtleSB0byByZWFkCisgICogQHBhcmFtIHB3X2NiCistICogICAgICAgIHRoZSBjYWxsYmFjayBm b3Igb2J0YWluaW5nIGEgcGFzc3dvcmQgZm9yIGRlY3J5cHRpbmcgdGhlIGtleS4gCisrICogICAg ICAgIHRoZSBjYWxsYmFjayBmb3Igb2J0YWluaW5nIGEgcGFzc3dvcmQgZm9yIGRlY3J5cHRpbmcg dGhlIGtleS4KKyAgKgorICAqIEByZXR1cm4KKyAgKiAgICAgICAgR0xPQlVTX1NVQ0NFU1Mgb3Ig YW4gZXJyb3Igb2JqZWN0IGlkZW50aWZpZXIKK0BAIC0xMTUyLDcgKzExNTIsNyBAQCBnbG9idXNf Z3NpX2NyZWRfcmVhZF9rZXkoCisgICAgICAgICAgICAgICJrZXkgZmlsZTogJXMgZm9yIHJlYWRp bmciKSwga2V5X2ZpbGVuYW1lKSk7CisgICAgICAgICBnb3RvIGV4aXQ7CisgICAgIH0KKy0gICAg CisrCisgICAgIC8qIHJlYWQgaW4gdGhlIGtleSAqLworIAorICAgICBpZihoYW5kbGUtPmtleSAh PSBOVUxMKQorQEAgLTEyOTQsNyArMTI5NCw3IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkX2NlcnRf YmlvKAorICAgICB9CisgCisgICAgIC8qIHJlYWQgaW4gdGhlIGNlcnQgKi8KKy0gICAgCisrCisg ICAgIGlmKGhhbmRsZS0+Y2VydCAhPSBOVUxMKQorICAgICB7CisgICAgICAgICBYNTA5X2ZyZWUo aGFuZGxlLT5jZXJ0KTsKK0BAIC0xMzE0LDcgKzEzMTQsNyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVh ZF9jZXJ0X2JpbygKKyAgICAgeworICAgICAgICAgc2tfWDUwOV9wb3BfZnJlZShoYW5kbGUtPmNl cnRfY2hhaW4sIFg1MDlfZnJlZSk7CisgICAgIH0KKy0gICAgCisrCisgICAgIGlmKChoYW5kbGUt PmNlcnRfY2hhaW4gPSBza19YNTA5X25ld19udWxsKCkpID09IE5VTEwpCisgICAgIHsKKyAgICAg ICAgIEdMT0JVU19HU0lfQ1JFRF9PUEVOU1NMX0VSUk9SX1JFU1VMVCgKK0BAIC0xMzIzLDcgKzEz MjMsNyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZF9jZXJ0X2JpbygKKyAgICAgICAgICAgICAoX0dD UlNMKCJDYW4ndCBpbml0aWFsaXplIGNlcnQgY2hhaW5cbiIpKSk7CisgICAgICAgICBnb3RvIGV4 aXQ7CisgICAgIH0KKy0gICAgCisrCisgICAgIHdoaWxlKCFCSU9fZW9mKGJpbykpCisgICAgIHsK KyAgICAgICAgIFg1MDkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wX2NlcnQgPSBOVUxM OworQEAgLTEzNDYsNyArMTM0Niw3IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkX2NlcnRfYmlvKAor ICAgICAgICAgfQorICAgICAgICAgKytpOworICAgICB9CistICAgIAorKworICAgICByZXN1bHQg PSBnbG9idXNfaV9nc2lfY3JlZF9nb29kdGlsbChoYW5kbGUsICYoaGFuZGxlLT5nb29kdGlsbCkp OworIAorICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCitAQCAtMTM1Niw3ICsxMzU2 LDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3JlYWRfY2VydF9iaW8oCisgICAgICAgICAgICAgR0xPQlVT X0dTSV9DUkVEX0VSUk9SX1dJVEhfQ1JFRCk7CisgICAgICAgICBnb3RvIGV4aXQ7CisgICAgIH0K Ky0gICAgCisrCisgICAgIHJlc3VsdCA9IEdMT0JVU19TVUNDRVNTOworIAorICBleGl0OgorQEAg LTE0MTUsMTkgKzE0MTUsMTkgQEAgZ2xvYnVzX2dzaV9jcmVkX3JlYWRfY2VydF9idWZmZXIoCisg ICAgIGJwID0gQklPX25ldyhCSU9fc19tZW0oKSk7CisgCisgICAgIEJJT193cml0ZShicCwgcGVt X2J1Ziwgc3RybGVuKHBlbV9idWYpKTsKKy0gICAgCisrCisgICAgIHJlc3VsdCA9IGdsb2J1c19n c2lfY3JlZF9oYW5kbGVfaW5pdCgmaGFuZGxlLCBOVUxMKTsKKyAgICAgaWYocmVzdWx0ICE9IEdM T0JVU19TVUNDRVNTKQorICAgICB7CisgICAgICAgICBnb3RvIGVycm9yOworICAgICB9CistICAg IAorKworICAgICByZXN1bHQgPSBnbG9idXNfZ3NpX2NyZWRfcmVhZF9jZXJ0X2JpbyhoYW5kbGUs IGJwKTsKKyAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CisgICAgICAg ICBnb3RvIGVycm9yOworICAgICB9CistICAgIAorKworICAgICBpZihvdXRfY2VydCkKKyAgICAg eworICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2dzaV9jcmVkX2dldF9jZXJ0KGhhbmRsZSwgJmNl cnQpOworQEAgLTE0MzcsNyArMTQzNyw3IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkX2NlcnRfYnVm ZmVyKAorICAgICAgICAgfQorICAgICAgICAgKm91dF9jZXJ0ID0gY2VydDsKKyAgICAgfQorLSAg ICAKKysKKyAgICAgaWYob3V0X2NlcnRfY2hhaW4pCisgICAgIHsKKyAgICAgICAgIHJlc3VsdCA9 IGdsb2J1c19nc2lfY3JlZF9nZXRfY2VydF9jaGFpbihoYW5kbGUsICZjZXJ0X2NoYWluKTsKK0BA IC0xNDQ3LDcgKzE0NDcsNyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZF9jZXJ0X2J1ZmZlcigKKyAg ICAgICAgIH0KKyAgICAgICAgICpvdXRfY2VydF9jaGFpbiA9IGNlcnRfY2hhaW47CisgICAgIH0K Ky0gICAgCisrCisgICAgIGlmKG91dF9zdWJqZWN0KQorICAgICB7CisgICAgICAgICByZXN1bHQg PSBnbG9idXNfZ3NpX2NyZWRfZ2V0X2lkZW50aXR5X25hbWUoaGFuZGxlLCAmc3ViamVjdCk7CitA QCAtMTQ1NSw5ICsxNDU1LDkgQEAgZ2xvYnVzX2dzaV9jcmVkX3JlYWRfY2VydF9idWZmZXIoCisg ICAgICAgICB7CisgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgIH0KKy0gICAgICAg ICpvdXRfc3ViamVjdCA9IHN1YmplY3Q7ICAgIAorKyAgICAgICAgKm91dF9zdWJqZWN0ID0gc3Vi amVjdDsKKyAgICAgfQorLSAgICAKKysKKyAgICAgaWYob3V0X2hhbmRsZSkKKyAgICAgeworICAg ICAgICAgKm91dF9oYW5kbGUgPSBoYW5kbGU7CitAQCAtMTQ2NiwxMSArMTQ2NiwxMSBAQCBnbG9i dXNfZ3NpX2NyZWRfcmVhZF9jZXJ0X2J1ZmZlcigKKyAgICAgeworICAgICAgICAgZ2xvYnVzX2dz aV9jcmVkX2hhbmRsZV9kZXN0cm95KGhhbmRsZSk7CisgICAgIH0KKy0gICAgICAgIAorKworICAg ICBCSU9fZnJlZShicCk7CisgCisgICAgIHJldHVybiBHTE9CVVNfU1VDQ0VTUzsKKy0gICAgCisr CisgZXJyb3I6CisgICAgIGlmKGJwKQorICAgICB7CitAQCAtMTQ5NSw3ICsxNDk1LDcgQEAgZXJy b3I6CisgICAgIHsKKyAgICAgICAgIGdsb2J1c19nc2lfY3JlZF9oYW5kbGVfZGVzdHJveShoYW5k bGUpOworICAgICB9CistICAgIAorKworICAgICByZXR1cm4gcmVzdWx0OworIH0KKyAvKiBnbG9i dXNfZ3NpX2NyZWRfcmVhZF9jZXJ0X2J1ZmZlcigpICovCitAQCAtMTU0Miw3ICsxNTQyLDcgQEAg Z2xvYnVzX2dzaV9jcmVkX3JlYWRfcGtjczEyKAorICAgICAgICAgICAgIChfR0NSU0woIk5VTEwg aGFuZGxlIHBhc3NlZCB0byBmdW5jdGlvbjogJXMiKSwgX19mdW5jX18pKTsKKyAgICAgICAgZ290 byBleGl0OworICAgICB9CistICAgIAorKworICAgICBwa2NzMTJfYmlvID0gQklPX25ld19maWxl KHBrY3MxMl9maWxlbmFtZSwgInIiKTsKKyAgICAgaWYoIXBrY3MxMl9iaW8pCisgICAgIHsKK0BA IC0xNTc1LDcgKzE1NzUsNyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZF9wa2NzMTIoCisgICAgIH0K KyAKKyAgICAgYXV0aF9zYWZlcyA9IFBLQ1MxMl91bnBhY2tfYXV0aHNhZmVzKHBrY3MxMik7Cist ICAgIAorKworICAgICBpZighYXV0aF9zYWZlcykKKyAgICAgeworICAgICAgICAgR0xPQlVTX0dT SV9DUkVEX09QRU5TU0xfRVJST1JfUkVTVUxUKAorQEAgLTE1ODYsMTMgKzE1ODYsMTMgQEAgZ2xv YnVzX2dzaV9jcmVkX3JlYWRfcGtjczEyKAorICAgICB9CisgCisgICAgIHBrY3MxMl9jZXJ0cyA9 IHNrX1g1MDlfbmV3X251bGwoKTsKKy0gICAgCisrCisgICAgIGZvciAoaSA9IDA7IGkgPCBza19Q S0NTN19udW0oYXV0aF9zYWZlcyk7IGkrKykKKyAgICAgeworICAgICAgICAgcGtjczcgPSBza19Q S0NTN192YWx1ZShhdXRoX3NhZmVzLCBpKTsKKy0gICAgICAgIAorKworICAgICAgICAgYmFnX05J RCA9IE9CSl9vYmoybmlkKHBrY3M3LT50eXBlKTsKKy0gICAgICAgIAorKworICAgICAgICAgaWYo YmFnX05JRCA9PSBOSURfcGtjczdfZGF0YSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBwa2Nz MTJfc2FmZWJhZ3MgPSBQS0NTMTJfdW5wYWNrX3A3ZGF0YShwa2NzNyk7CitAQCAtMTYyNCwxMSAr MTYyNCwxMSBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZF9wa2NzMTIoCisgICAgICAgICBmb3IgKGog PSAwOyBqIDwgc2tfUEtDUzEyX1NBRkVCQUdfbnVtKHBrY3MxMl9zYWZlYmFncyk7IGorKykKKyAg ICAgICAgIHsKKyAgICAgICAgICAgICBiYWcgPSBza19QS0NTMTJfU0FGRUJBR192YWx1ZShwa2Nz MTJfc2FmZWJhZ3MsIGopOworLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIGlmKFBLQ1Mx Ml9iYWdfdHlwZShiYWcpID09IE5JRF9jZXJ0QmFnICYmCisgICAgICAgICAgICAgICAgUEtDUzEy X2NlcnRfYmFnX3R5cGUoYmFnKSA9PSBOSURfeDUwOUNlcnRpZmljYXRlKQorICAgICAgICAgICAg IHsKKy0gICAgICAgICAgICAgICAgc2tfWDUwOV9wdXNoKHBrY3MxMl9jZXJ0cywgCisrICAgICAg ICAgICAgICAgIHNrX1g1MDlfcHVzaChwa2NzMTJfY2VydHMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQS0NTMTJfY2VydGJhZzJ4NTA5KGJhZykpOworICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICBlbHNlIGlmKFBLQ1MxMl9iYWdfdHlwZShiYWcpID09IE5JRF9rZXlCYWcgJiYK K0BAIC0xNjQ2LDcgKzE2NDYsNyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZF9wa2NzMTIoCisgICAg ICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICB9CistICAgICAgICAgICAgZWxzZSBpZihQS0NTMTJfYmFnX3R5cGUoYmFnKSA9PSAKKysg ICAgICAgICAgICBlbHNlIGlmKFBLQ1MxMl9iYWdfdHlwZShiYWcpID09CisgICAgICAgICAgICAg ICAgICAgICBOSURfcGtjczhTaHJvdWRlZEtleUJhZyAmJgorICAgICAgICAgICAgICAgICAgICAg aGFuZGxlLT5rZXkgPT0gTlVMTCkKKyAgICAgICAgICAgICB7CitAQCAtMTY2MSw3ICsxNjYxLDcg QEAgZ2xvYnVzX2dzaV9jcmVkX3JlYWRfcGtjczEyKAorICAgICAgICAgICAgICAgICAgICAgICAg IChfR0NSU0woIkNvdWxkbid0IGdldCBQS0NTOCBrZXkgZnJvbSBQS0NTMTIgY3JlZGVudGlhbCIp KSk7CisgICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgaGFuZGxlLT5rZXkgPSBFVlBfUEtD UzgyUEtFWShwa2NzOCk7CisgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlLT5rZXkpCisgICAg ICAgICAgICAgICAgIHsKK0BAIC0xNjcxLDcgKzE2NzEsNyBAQCBnbG9idXNfZ3NpX2NyZWRfcmVh ZF9wa2NzMTIoCisgICAgICAgICAgICAgICAgICAgICAgICAgKF9HQ1JTTCgiQ291bGRuJ3QgZ2V0 IHByaXZhdGUga2V5IGZyb20gUEtDUzEyIGNyZWRlbnRpYWwiKSkpOworICAgICAgICAgICAgICAg ICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIAor KworICAgICAgICAgICAgICAgICBQS0NTOF9QUklWX0tFWV9JTkZPX2ZyZWUocGtjczgpOworICAg ICAgICAgICAgIH0KKyAgICAgICAgIH0KK0BAIC0xNjg3LDEyICsxNjg3LDEyIEBAIGdsb2J1c19n c2lfY3JlZF9yZWFkX3BrY3MxMigKKyAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgfQorIAorLSAg ICBqID0gc2tfWDUwOV9udW0ocGtjczEyX2NlcnRzKTsgCisrICAgIGogPSBza19YNTA5X251bShw a2NzMTJfY2VydHMpOworICAgICBmb3IoaSA9IDAgOyBpIDwgajsgaSsrKQorICAgICB7CisgICAg ICAgICBoYW5kbGUtPmNlcnQgPSBza19YNTA5X3BvcChwa2NzMTJfY2VydHMpOworIAorLSAgICAg ICAgaWYoWDUwOV9jaGVja19wcml2YXRlX2tleShoYW5kbGUtPmNlcnQsIGhhbmRsZS0+a2V5KSkg CisrICAgICAgICBpZihYNTA5X2NoZWNrX3ByaXZhdGVfa2V5KGhhbmRsZS0+Y2VydCwgaGFuZGxl LT5rZXkpKQorICAgICAgICAgeworICAgICAgICAgICAgIHNrX1g1MDlfcG9wX2ZyZWUocGtjczEy X2NlcnRzLCBYNTA5X2ZyZWUpOworICAgICAgICAgICAgIHBrY3MxMl9jZXJ0cyA9IE5VTEw7CitA QCAtMTc1Miw3ICsxNzUyLDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3JlYWRfcGtjczEyKAorICAqIFdy aXRlIG91dCBhIGNyZWRlbnRpYWwgdG8gYSBCSU8uICBUaGUgY3JlZGVudGlhbCBwYXJhbWV0ZXJz IHdyaXR0ZW4sCisgICogaW4gb3JkZXIsIGFyZSB0aGUgc2lnbmVkIGNlcnRpZmljYXRlLCB0aGUg UlNBIHByaXZhdGUga2V5LAorICAqIGFuZCB0aGUgY2VydGlmaWNhdGUgY2hhaW4gKGEgc2V0IG9m IFg1MDkgY2VydGlmaWNhdGVzKS4KKy0gKiB0aGUgY3JlZGVudGlhbCBpcyB3cml0dGVuIG91dCBp biBQRU0gZm9ybWF0LiAKKysgKiB0aGUgY3JlZGVudGlhbCBpcyB3cml0dGVuIG91dCBpbiBQRU0g Zm9ybWF0LgorICAqCisgICogQHBhcmFtIGhhbmRsZQorICAqICAgICAgICBUaGUgY3JlZGVudGlh bCB0byB3cml0ZSBvdXQKK0BAIC0xNzgwLDcgKzE3ODAsNyBAQCBnbG9idXNfZ3NpX2NyZWRfd3Jp dGUoCisgICAgICAgICAgICAgKF9HQ1JTTCgiTlVMTCBoYW5kbGUgcGFzc2VkIHRvIGZ1bmN0aW9u OiAlcyIpLCBfX2Z1bmNfXykpOworICAgICAgICAgZ290byBlcnJvcl9leGl0OworICAgICB9Cist ICAgIAorKworICAgICBpZihiaW8gPT0gTlVMTCkKKyAgICAgeworICAgICAgICAgR0xPQlVTX0dT SV9DUkVEX0VSUk9SX1JFU1VMVCgKK0BAIC0xNzg5LDcgKzE3ODksNyBAQCBnbG9idXNfZ3NpX2Ny ZWRfd3JpdGUoCisgICAgICAgICAgICAgKF9HQ1JTTCgiTlVMTCBiaW8gdmFyaWFibGUgcGFzc2Vk IHRvIGZ1bmN0aW9uOiAlcyIpLCBfX2Z1bmNfXykpOworICAgICAgICAgZ290byBlcnJvcl9leGl0 OworICAgICB9CistICAgIAorKworICAgICBpZighUEVNX3dyaXRlX2Jpb19YNTA5KGJpbywgaGFu ZGxlLT5jZXJ0KSkKKyAgICAgeworICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX09QRU5TU0xfRVJS T1JfUkVTVUxUKAorQEAgLTE3OTgsNyArMTc5OCw3IEBAIGdsb2J1c19nc2lfY3JlZF93cml0ZSgK KyAgICAgICAgICAgICAoX0dDUlNMKCJDYW4ndCB3cml0ZSBQRU0gZm9ybWF0dGVkIFg1MDkgY2Vy dCB0byBCSU8gc3RyZWFtIikpKTsKKyAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQor LSAgICAKKysKKyAgICAgaWYoIVBFTV93cml0ZV9iaW9fUHJpdmF0ZUtleShiaW8sIGhhbmRsZS0+ a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIDAsIE5VTEwsIE5V TEwpKQorICAgICB7CitAQCAtMTgwOCw3ICsxODA4LDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3dyaXRl KAorICAgICAgICAgICAgIChfR0NSU0woIkNhbid0IHdyaXRlIFBFTSBmb3JtYXR0ZWQgcHJpdmF0 ZSBrZXkgdG8gQklPIHN0cmVhbSIpKSk7CisgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAg IH0KKy0gICAgCisrCisgICAgIGZvcihpID0gMDsgaSA8IHNrX1g1MDlfbnVtKGhhbmRsZS0+Y2Vy dF9jaGFpbik7ICsraSkKKyAgICAgeworICAgICAgICAgaWYoIVBFTV93cml0ZV9iaW9fWDUwOShi aW8sIHNrX1g1MDlfdmFsdWUoaGFuZGxlLT5jZXJ0X2NoYWluLCBpKSkpCitAQCAtMTgyMSwxNCAr MTgyMSwxNCBAQCBnbG9idXNfZ3NpX2NyZWRfd3JpdGUoCisgICAgICAgICAgICAgZ290byBlcnJv cl9leGl0OworICAgICAgICAgfQorICAgICB9CistICAgIAorKworICBlcnJvcl9leGl0OgorIAor ICAgICBHTE9CVVNfSV9HU0lfQ1JFRF9ERUJVR19FWElUOworICAgICByZXR1cm4gcmVzdWx0Owor LX0gICAgCisrfQorIC8qIGdsb2J1c19nc2lfY3JlZF93cml0ZSgpICovCistICAgIAorKworIC8q KgorICAqIEBicmllZiBXcml0ZSBhIHByb3h5IGNyZWRlbnRpYWwKKyAgKiBAaW5ncm91cCBnbG9i dXNfZ3NpX2NyZWRfb3BlcmF0aW9ucworQEAgLTE4MzYsNyArMTgzNiw3IEBAIGdsb2J1c19nc2lf Y3JlZF93cml0ZSgKKyAgKiBXcml0ZSBvdXQgYSBjcmVkZW50aWFsIHRvIGEgZmlsZS4gIFRoZSBj cmVkZW50aWFsIHBhcmFtZXRlcnMgd3JpdHRlbiwKKyAgKiBpbiBvcmRlciwgYXJlIHRoZSBzaWdu ZWQgY2VydGlmaWNhdGUsIHRoZSBSU0EgcHJpdmF0ZSBrZXksCisgICogYW5kIHRoZSBjZXJ0aWZp Y2F0ZSBjaGFpbiAoYSBzZXQgb2YgWDUwOSBjZXJ0aWZpY2F0ZXMpLgorLSAqIHRoZSBjcmVkZW50 aWFsIGlzIHdyaXR0ZW4gb3V0IGluIFBFTSBmb3JtYXQuIAorKyAqIHRoZSBjcmVkZW50aWFsIGlz IHdyaXR0ZW4gb3V0IGluIFBFTSBmb3JtYXQuCisgICoKKyAgKiBAcGFyYW0gaGFuZGxlCisgICog ICAgICAgIFRoZSBjcmVkZW50aWFsIHRvIHdyaXRlIG91dAorQEAgLTE4NTYsNyArMTg1Niw3IEBA IGdsb2J1c19nc2lfY3JlZF93cml0ZV9wcm94eSgKKyAgICAgbW9kZV90ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2xkbWFzazsKKyAgICAgRklMRSAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGVtcF9wcm94eV9mcCA9IE5VTEw7CisgICAgIGludCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRlbXBfcHJveHlfZmQgPSAtMTsKKy0gICAgCisrCisgICAgIEdMT0JV U19JX0dTSV9DUkVEX0RFQlVHX0VOVEVSOworIAorICAgICAvKgorQEAgLTE4NzMsMTAgKzE4NzMs MTAgQEAgZ2xvYnVzX2dzaV9jcmVkX3dyaXRlX3Byb3h5KAorICAgICAgICAgZ290byBleGl0Owor ICAgICB9CisgCistICAgIC8qIAorKyAgICAvKgorICAgICAgKiBXZSBhbHdheXMgdW5saW5rIHRo ZSBmaWxlIGZpcnN0OyBpdCBpcyB0aGUgb25seSB3YXkgdG8gYmUKKyAgICAgICogY2VydGFpbiB0 aGF0IHRoZSBmaWxlIHdlIG9wZW4gaGFzIG5ldmVyIGluIGl0cyBlbnRpcmUgbGlmZXRpbWUKKy0g ICAgICogaGFkIHRoZSB3b3JsZC1yZWFkYWJsZSBiaXQgc2V0LiAgCisrICAgICAqIGhhZCB0aGUg d29ybGQtcmVhZGFibGUgYml0IHNldC4KKyAgICAgICovCisgI2lmIF9XSU4zMgorICAgICAvKiBX aW4zMiBBUEkgd29uJ3QgYWxsb3cgcmVtb3ZpbmcgYSByZWFkLW9ubHkgZmlsZSAqLworQEAgLTE4 ODQsOCArMTg4NCw4IEBAIGdsb2J1c19nc2lfY3JlZF93cml0ZV9wcm94eSgKKyAjZW5kaWYKKyAg ICAgdGVtcF9wcm94eV9mZCA9IHJlbW92ZShwcm94eV9maWxlbmFtZSk7CisgCistICAgIC8qIAor LSAgICAgKiBOb3csIHdlIG11c3Qgb3BlbiB3LyBPX0VYQ0wgdG8gbWFrZSBjZXJ0YWluIHRoYXQg V0UgYXJlIAorKyAgICAvKgorKyAgICAgKiBOb3csIHdlIG11c3Qgb3BlbiB3LyBPX0VYQ0wgdG8g bWFrZSBjZXJ0YWluIHRoYXQgV0UgYXJlCisgICAgICAqIGNyZWF0aW5nIHRoZSBmaWxlLCBzbyB3 ZSBrbm93IHRoYXQgdGhlIGZpbGUgd2FzIEJPUk4gdy8gbW9kZSAwNjAwLgorICAgICAgKiBBcyBh IGJvbnVzLCBPX0VYQ0wgZmxhZyB3aWxsIGNhdXNlIGEgZmFpbHVyZSBpbiB0aGUgcHJlc2VuY2UK KyAgICAgICogb2YgYSBzeW1saW5rLCBzbyB3ZSBhcmUgc2FmZSBmcm9tIHphcGluZyBhIGZpbGUg ZHVlIHRvIHRoZQorQEAgLTE5MDQsMTggKzE5MDQsMTggQEAgZ2xvYnVzX2dzaV9jcmVkX3dyaXRl X3Byb3h5KAorICAgICB0ZW1wX3Byb3h5X2ZwID0gZmRvcGVuKHRlbXBfcHJveHlfZmQsInciKTsK KyAKKyAgICAgLyogSGFuZCB0aGUgc3RyZWFtIG92ZXIgdG8gc3NsICovCistICAgIGlmKCAhKHRl bXBfcHJveHlfZnApIHx8IAorKyAgICBpZiggISh0ZW1wX3Byb3h5X2ZwKSB8fAorICAgICAgICAg IShwcm94eV9iaW8gPSBCSU9fbmV3X2ZwKHRlbXBfcHJveHlfZnAsIEJJT19DTE9TRSkpKQorICAg ICB7CisgICAgICAgICBHTE9CVVNfR1NJX0NSRURfT1BFTlNTTF9FUlJPUl9SRVNVTFQoCisgICAg ICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9XUklU SU5HX1BST1hZX0NSRUQsCisgICAgICAgICAgICAgKF9HQ1JTTCgiQ2FuJ3Qgb3BlbiBiaW8gc3Ry ZWFtIGZvciB3cml0aW5nIHRvIGZpbGU6ICVzIiksIHByb3h5X2ZpbGVuYW1lKSk7CistICAgICAg ICBpZiAoIHRlbXBfcHJveHlfZnAgKSAKKysgICAgICAgIGlmICggdGVtcF9wcm94eV9mcCApCisg ICAgICAgICB7CisgICAgICAgICAgICAgZmNsb3NlKHRlbXBfcHJveHlfZnApOworLSAgICAgICAg fSAKKy0gICAgICAgIGVsc2UgaWYgKHRlbXBfcHJveHlfZmQgPj0gMCApIAorKyAgICAgICAgfQor KyAgICAgICAgZWxzZSBpZiAodGVtcF9wcm94eV9mZCA+PSAwICkKKyAgICAgICAgIHsKKyAgICAg ICAgICAgICAvKiBjbG9zZSB1bmRlcmx5aW5nIGZkIGlmIHdlIGRvIG5vdCBoYXZlIGEgc3RyZWFt ICovCisgICAgICAgICAgICAgY2xvc2UodGVtcF9wcm94eV9mZCk7CitAQCAtMTkyNCw3ICsxOTI0 LDcgQEAgZ2xvYnVzX2dzaV9jcmVkX3dyaXRlX3Byb3h5KAorICAgICAgICAgZ290byBleGl0Owor ICAgICB9CisgCistICAgIC8qIAorKyAgICAvKgorICAgICAgKiBOb3RlOiBhdCB0aGlzIHBvaW50 LCBjYWxsaW5nIEJJT19mcmVlKHByb3h5X2Jpbykgd2lsbAorICAgICAgKiBmY2xvc2UgdGhlIHRl bXBfcHJveHlfZnAsIHdoaWNoIGluIHR1cm4gc2hvdWxkIGNsb3NlIHRlbXBfcHJveHlfZmQuCisg ICAgICAqLworQEAgLTE5NTcsNyArMTk1Nyw3IEBAIGdsb2J1c19nc2lfY3JlZF93cml0ZV9wcm94 eSgKKyAgICAgZ2xvYnVzX2xpYmNfdW1hc2sob2xkbWFzayk7CisgICAgIEdMT0JVU19JX0dTSV9D UkVEX0RFQlVHX0VYSVQ7CisgICAgIHJldHVybiByZXN1bHQ7CistfSAgICAKKyt9CisgLyogZ2xv YnVzX2dzaV9jcmVkX3dyaXRlX3Byb3h5KCkgKi8KKyAKKyAvKioKK0BAIC0xOTgzLDcgKzE5ODMs NyBAQCBnbG9idXNfZ3NpX2NyZWRfZ2V0X2NlcnRfdHlwZSgKKyAgICAgZ2xvYnVzX3Jlc3VsdF90 ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OworIAorICAgICBHTE9CVVNfSV9HU0lfQ1JFRF9E RUJVR19FTlRFUjsKKy0gICAgCisrCisgICAgIHJlc3VsdCA9IGdsb2J1c19nc2lfY2VydF91dGls c19nZXRfY2VydF90eXBlKGhhbmRsZS0+Y2VydCwgdHlwZSk7CisgICAgIGlmKHJlc3VsdCAhPSBH TE9CVVNfU1VDQ0VTUykKKyAgICAgeworQEAgLTIwNDgsNyArMjA0OCw3IEBAIGdsb2J1c19pX2dz aV9jcmVkX2dldF9wcm94eWNlcnRpbmZvKAorICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9S X1JFU1VMVCgKKyAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgR0xPQlVTX0dTSV9D UkVEX0VSUk9SX1dJVEhfQ1JFRCwKKy0gICAgICAgICAgICAoX0dDUlNMKCJOVUxMIFg1MDkgY2Vy dCBwYXJhbWV0ZXIgcGFzc2VkIHRvIGZ1bmN0aW9uOiAlcyIpLCAKKysgICAgICAgICAgICAoX0dD UlNMKCJOVUxMIFg1MDkgY2VydCBwYXJhbWV0ZXIgcGFzc2VkIHRvIGZ1bmN0aW9uOiAlcyIpLAor ICAgICAgICAgICAgICBfX2Z1bmNfXykpOworICAgICAgICAgZ290byBleGl0OworICAgICB9CitA QCAtMjA2MSw3ICsyMDYxLDcgQEAgZ2xvYnVzX2lfZ3NpX2NyZWRfZ2V0X3Byb3h5Y2VydGluZm8o CisgICAgICAgICBnb3RvIGV4aXQ7CisgICAgIH0KKyAKKy0gICAgaWYoKHBjaV9leHRlbnNpb24g PSBYNTA5X2dldF9leHQoY2VydCwgCisrICAgIGlmKChwY2lfZXh0ZW5zaW9uID0gWDUwOV9nZXRf ZXh0KGNlcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lv bl9sb2MpKSA9PSBOVUxMKQorICAgICB7CisgICAgICAgICBHTE9CVVNfR1NJX0NSRURfT1BFTlNT TF9FUlJPUl9SRVNVTFQoCitAQCAtMjA4MSw5ICsyMDgxLDkgQEAgZ2xvYnVzX2lfZ3NpX2NyZWRf Z2V0X3Byb3h5Y2VydGluZm8oCisgICAgICAgICAgICAgICJleHRlbnNpb24gdG8gaW50ZXJuYWwg Zm9ybSIpKSk7CisgICAgICAgICBnb3RvIGV4aXQ7CisgICAgIH0KKy0gICAgCisrCisgIGV4aXQ6 CistICAgIAorKworICAgICBHTE9CVVNfSV9HU0lfQ1JFRF9ERUJVR19FWElUOworICAgICByZXR1 cm4gcmVzdWx0OworIH0KK0BAIC0yMTI1LDE2ICsyMTI1LDE2IEBAIGdsb2J1c19sX2dzaV9jcmVk X3N1YmplY3RfY21wKAorIAorICAgICBHTE9CVVNfSV9HU0lfQ1JFRF9ERUJVR19FTlRFUjsKKyAK Ky0gICAgCisrCisgICAgIC8qIGlmIGRlc2lyZWQgc3ViamVjdCBpcyBOVUxMIHJldHVybiBzdWNj ZXNzICovCistICAgIAorKworICAgICBpZighZGVzaXJlZF9zdWJqZWN0KQorICAgICB7CisgICAg ICAgICBnb3RvIGV4aXQ7CisgICAgIH0KKyAKKyAgICAgLyogY2hlY2sgZm9yIHNpbmdsZSAvQ04g ZW50cnkgKi8KKy0gICAgCisrCisgICAgIGlmKFg1MDlfTkFNRV9lbnRyeV9jb3VudChkZXNpcmVk X3N1YmplY3QpID09IDEpCisgICAgIHsKKyAgICAgICAgIC8qIG1ha2Ugc3VyZSB3ZSBhY3R1YWxs eSBnb3QgYSBjb21tb24gbmFtZSAqLworQEAgLTIxNTYsNyArMjE1Niw3IEBAIGdsb2J1c19sX2dz aV9jcmVkX3N1YmplY3RfY21wKAorICAgICAgICAgY25faW5kZXggPSBYNTA5X05BTUVfZ2V0X2lu ZGV4X2J5X05JRChhY3R1YWxfc3ViamVjdCwgTklEX2NvbW1vbk5hbWUsIC0xKTsKKyAKKyAgICAg ICAgIC8qIGVycm9yIGlmIG5vIGNvbW1vbiBuYW1lIHdhcyBmb3VuZCAqLworLSAgICAgICAgCisr CisgICAgICAgICBpZihjbl9pbmRleCA8IDApCisgICAgICAgICB7CisgICAgICAgICAgICAgYWN0 dWFsX3N0ciA9IFg1MDlfTkFNRV9vbmVsaW5lKGFjdHVhbF9zdWJqZWN0LCBOVUxMLCAwKTsKK0BA IC0yMTY4LDcgKzIxNjgsNyBAQCBnbG9idXNfbF9nc2lfY3JlZF9zdWJqZWN0X2NtcCgKKyAgICAg ICAgIH0KKyAKKyAgICAgICAgIC8qIGNoZWNrIHRoYXQgYWN0dWFsIHN1YmplY3Qgb25seSBoYXMg b25lIENOIGVudHJ5ICovCistICAgICAgICAKKysKKyAgICAgICAgIGlmKFg1MDlfTkFNRV9nZXRf aW5kZXhfYnlfTklEKGFjdHVhbF9zdWJqZWN0LCBOSURfY29tbW9uTmFtZSwgY25faW5kZXgpICE9 IC0xKQorICAgICAgICAgeworICAgICAgICAgICAgIGFjdHVhbF9zdHIgPSBYNTA5X05BTUVfb25l bGluZShhY3R1YWxfc3ViamVjdCwgTlVMTCwgMCk7CitAQCAtMjE4Myw3ICsyMTgzLDcgQEAgZ2xv YnVzX2xfZ3NpX2NyZWRfc3ViamVjdF9jbXAoCisgCisgICAgICAgICBsZW5ndGggPSBYNTA5X05B TUVfZ2V0X3RleHRfYnlfTklEKGRlc2lyZWRfc3ViamVjdCwgTklEX2NvbW1vbk5hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDEwMjQpICsgMTsK Ky0gICAgICAgIAorKworICAgICAgICAgZGVzaXJlZF9jbiA9IG1hbGxvYyhsZW5ndGgpOworIAor ICAgICAgICAgWDUwOV9OQU1FX2dldF90ZXh0X2J5X05JRChkZXNpcmVkX3N1YmplY3QsIE5JRF9j b21tb25OYW1lLAorQEAgLTIxOTMsNyArMjE5Myw3IEBAIGdsb2J1c19sX2dzaV9jcmVkX3N1Ympl Y3RfY21wKAorIAorICAgICAgICAgbGVuZ3RoID0gWDUwOV9OQU1FX2dldF90ZXh0X2J5X05JRChh Y3R1YWxfc3ViamVjdCwgTklEX2NvbW1vbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsIDEwMjQpICsgMTsKKy0gICAgICAgIAorKworICAgICAg ICAgYWN0dWFsX2NuID0gbWFsbG9jKGxlbmd0aCk7CisgCisgICAgICAgICBYNTA5X05BTUVfZ2V0 X3RleHRfYnlfTklEKGFjdHVhbF9zdWJqZWN0LCBOSURfY29tbW9uTmFtZSwKK0BAIC0yMjE5LDcg KzIyMTksNyBAQCBnbG9idXNfbF9nc2lfY3JlZF9zdWJqZWN0X2NtcCgKKyAgICAgICAgICAgICBh Y3R1YWxfc2VydmljZSA9IGFjdHVhbF9jbjsKKyAgICAgICAgICAgICBhY3R1YWxfaG9zdCsrOwor ICAgICAgICAgfQorLSAgICAgICAgCisrCisgICAgICAgICBkZXNpcmVkX2hvc3QgPSBzdHJjaHIo ZGVzaXJlZF9jbiwnLycpOworIAorICAgICAgICAgaWYoZGVzaXJlZF9ob3N0ID09IE5VTEwpCitA QCAtMjIzMyw3ICsyMjMzLDcgQEAgZ2xvYnVzX2xfZ3NpX2NyZWRfc3ViamVjdF9jbXAoCisgICAg ICAgICAgICAgZGVzaXJlZF9zZXJ2aWNlID0gZGVzaXJlZF9jbjsKKyAgICAgICAgICAgICBkZXNp cmVkX2hvc3QrKzsKKyAgICAgICAgIH0KKy0gICAgICAgIAorKworICAgICAgICAgaWYoZGVzaXJl ZF9zZXJ2aWNlID09IE5VTEwgJiYKKyAgICAgICAgICAgIGFjdHVhbF9zZXJ2aWNlID09IE5VTEwp CisgICAgICAgICB7CitAQCAtMjI1OCw3ICsyMjU4LDcgQEAgZ2xvYnVzX2xfZ3NpX2NyZWRfc3Vi amVjdF9jbXAoCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBhY3R1YWxfc3RyID0g WDUwOV9OQU1FX29uZWxpbmUoYWN0dWFsX3N1YmplY3QsIE5VTEwsIDApOworICAgICAgICAgICAg ICAgICBkZXNpcmVkX3N0ciA9IFg1MDlfTkFNRV9vbmVsaW5lKGRlc2lyZWRfc3ViamVjdCwgTlVM TCwgMCk7CistICAgICAgICAgICAgICAgIAorKworICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJ X0NSRURfRVJST1JfUkVTVUxUKAorICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAg ICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1NVQkpFQ1RfQ01QLAorQEAgLTIy NjksNyArMjI2OSw3IEBAIGdsb2J1c19sX2dzaV9jcmVkX3N1YmplY3RfY21wKAorICAgICAgICAg ICAgICAgICAgICAgIGRlc2lyZWRfc3RyLAorICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9z dHIpKTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgZ290 byBleGl0OworICAgICAgICAgfQorICAgICAgICAgZWxzZSBpZihhY3R1YWxfc2VydmljZSA9PSBO VUxMKQorQEAgLTIyNzgsNyArMjI3OCw3IEBAIGdsb2J1c19sX2dzaV9jcmVkX3N1YmplY3RfY21w KAorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgYWN0dWFsX3N0ciA9IFg1MDlfTkFN RV9vbmVsaW5lKGFjdHVhbF9zdWJqZWN0LCBOVUxMLCAwKTsKKyAgICAgICAgICAgICAgICAgZGVz aXJlZF9zdHIgPSBYNTA5X05BTUVfb25lbGluZShkZXNpcmVkX3N1YmplY3QsIE5VTEwsIDApOwor LSAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VS Uk9SX1JFU1VMVCgKKyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAg ICAgICAgIEdMT0JVU19HU0lfQ1JFRF9FUlJPUl9TVUJKRUNUX0NNUCwKK0BAIC0yMjg5LDggKzIy ODksOCBAQCBnbG9idXNfbF9nc2lfY3JlZF9zdWJqZWN0X2NtcCgKKyAgICAgICAgICAgICAgICAg ICAgICBkZXNpcmVkX3N0ciwKKyAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxfc3RyKSk7Cisg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIAorLSAgICAgICAgICAgIGdvdG8gZXhpdDsgICAg ICAgICAgICAKKysKKysgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICB9CisgICAgICAg ICBlbHNlCisgICAgICAgICB7CitAQCAtMjI5OCw3ICsyMjk4LDcgQEAgZ2xvYnVzX2xfZ3NpX2Ny ZWRfc3ViamVjdF9jbXAoCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBhY3R1YWxf c3RyID0gWDUwOV9OQU1FX29uZWxpbmUoYWN0dWFsX3N1YmplY3QsIE5VTEwsIDApOworICAgICAg ICAgICAgICAgICBkZXNpcmVkX3N0ciA9IFg1MDlfTkFNRV9vbmVsaW5lKGRlc2lyZWRfc3ViamVj dCwgTlVMTCwgMCk7CistICAgICAgICAgICAgICAgIAorKworICAgICAgICAgICAgICAgICBHTE9C VVNfR1NJX0NSRURfRVJST1JfUkVTVUxUKAorICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LAor ICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1NVQkpFQ1RfQ01QLAor QEAgLTIzMDksNyArMjMwOSw3IEBAIGdsb2J1c19sX2dzaV9jcmVkX3N1YmplY3RfY21wKAorICAg ICAgICAgICAgICAgICAgICAgIGRlc2lyZWRfc3RyLAorICAgICAgICAgICAgICAgICAgICAgIGFj dHVhbF9zdHIpKTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgCisrCisgICAgICAgICAg ICAgZ290byBleGl0OworIAorICAgICAgICAgfQorQEAgLTIzMjIsNyArMjMyMiw3IEBAIGdsb2J1 c19sX2dzaV9jcmVkX3N1YmplY3RfY21wKAorICAgICAgICAgeworICAgICAgICAgICAgIGFjdHVh bF9zdHIgPSBYNTA5X05BTUVfb25lbGluZShhY3R1YWxfc3ViamVjdCwgTlVMTCwgMCk7CisgICAg ICAgICAgICAgZGVzaXJlZF9zdHIgPSBYNTA5X05BTUVfb25lbGluZShkZXNpcmVkX3N1YmplY3Qs IE5VTEwsIDApOworLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIEdMT0JVU19HU0lfQ1JF RF9FUlJPUl9SRVNVTFQoCisgICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAg ICAgR0xPQlVTX0dTSV9DUkVEX0VSUk9SX1NVQkpFQ1RfQ01QLAorQEAgLTIzMzUsNyArMjMzNSw3 IEBAIGdsb2J1c19sX2dzaV9jcmVkX3N1YmplY3RfY21wKAorICAgICAgICAgfQorICAgICAgICAg Z290byBleGl0OworICAgICB9CistICAgIAorKworICBleGl0OgorIAorICAgICBpZihhY3R1YWxf Y24pCitAQCAtMjM0Nyw3ICsyMzQ3LDcgQEAgZ2xvYnVzX2xfZ3NpX2NyZWRfc3ViamVjdF9jbXAo CisgICAgIHsKKyAgICAgICAgIGZyZWUoZGVzaXJlZF9jbik7CisgICAgIH0KKy0gICAgCisrCisg ICAgIGlmKGFjdHVhbF9zdHIpCisgICAgIHsKKyAgICAgICAgIE9QRU5TU0xfZnJlZShhY3R1YWxf c3RyKTsKK0BAIC0yMzU5LDcgKzIzNTksNyBAQCBnbG9idXNfbF9nc2lfY3JlZF9zdWJqZWN0X2Nt cCgKKyAgICAgfQorIAorICAgICBHTE9CVVNfSV9HU0lfQ1JFRF9ERUJVR19FWElUOworLSAgICAK KysKKyAgICAgcmV0dXJuIHJlc3VsdDsKKyB9CisgCitAQCAtMjM3OCw5ICsyMzc4LDkgQEAgZ2xv YnVzX2xfZ3NpX2NyZWRfZ2V0X3NlcnZpY2UoCisgICAgIEdMT0JVU19JX0dTSV9DUkVEX0RFQlVH X0VOVEVSOworIAorICAgICAqc2VydmljZSA9IE5VTEw7CistICAgIAorKworICAgICAvKiBpZiBk ZXNpcmVkIHN1YmplY3QgaXMgTlVMTCByZXR1cm4gc3VjY2VzcyAqLworLSAgICAKKysKKyAgICAg aWYoIXN1YmplY3QpCisgICAgIHsKKyAgICAgICAgIGdvdG8gZXhpdDsKK0BAIC0yMzkxLDcgKzIz OTEsNyBAQCBnbG9idXNfbF9nc2lfY3JlZF9nZXRfc2VydmljZSgKKyAgICAgY25faW5kZXggPSBY NTA5X05BTUVfZ2V0X2luZGV4X2J5X05JRChzdWJqZWN0LCBOSURfY29tbW9uTmFtZSwgLTEpOwor IAorICAgICAvKiBlcnJvciBpZiBubyBjb21tb24gbmFtZSB3YXMgZm91bmQgKi8KKy0gICAgICAg IAorKworICAgICBpZihjbl9pbmRleCA8IDApCisgICAgIHsKKyAgICAgICAgIHN1YmplY3Rfc3Ry ID0gWDUwOV9OQU1FX29uZWxpbmUoc3ViamVjdCwgTlVMTCwgMCk7CitAQCAtMjQwMyw3ICsyNDAz LDcgQEAgZ2xvYnVzX2xfZ3NpX2NyZWRfZ2V0X3NlcnZpY2UoCisgICAgIH0KKyAKKyAgICAgLyog Y2hlY2sgdGhhdCBzdWJqZWN0IG9ubHkgaGFzIG9uZSBDTiBlbnRyeSAqLworLSAgICAgICAgCisr CisgICAgIGlmKFg1MDlfTkFNRV9nZXRfaW5kZXhfYnlfTklEKHN1YmplY3QsIE5JRF9jb21tb25O YW1lLCBjbl9pbmRleCkgIT0gLTEpCisgICAgIHsKKyAgICAgICAgIHN1YmplY3Rfc3RyID0gWDUw OV9OQU1FX29uZWxpbmUoc3ViamVjdCwgTlVMTCwgMCk7CitAQCAtMjQxOCwxMiArMjQxOCwxMiBA QCBnbG9idXNfbF9nc2lfY3JlZF9nZXRfc2VydmljZSgKKyAKKyAgICAgbGVuZ3RoID0gWDUwOV9O QU1FX2dldF90ZXh0X2J5X05JRChzdWJqZWN0LCBOSURfY29tbW9uTmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAxMDI0KSArIDE7CistICAgIAorKwor ICAgICBjbiA9IG1hbGxvYyhsZW5ndGgpOworLSAgICAKKysKKyAgICAgWDUwOV9OQU1FX2dldF90 ZXh0X2J5X05JRChzdWJqZWN0LCBOSURfY29tbW9uTmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbiwgbGVuZ3RoKTsKKy0gICAgCisrCisgICAgIGhvc3QgPSBzdHJjaHIoY24s Jy8nKTsKKyAKKyAgICAgaWYoaG9zdCA9PSBOVUxMKQorQEAgLTI0NTUsOSArMjQ1NSw5IEBAIGds b2J1c19sX2dzaV9jcmVkX2dldF9zZXJ2aWNlKAorICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX0VS Uk9SX1JFU1VMVCgKKyAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgR0xPQlVTX0dT SV9DUkVEX0VSUk9SX0dFVFRJTkdfU0VSVklDRV9OQU1FLAorLSAgICAgICAgICAgIChfR0NSU0wo Ik5vIHNlcnZpY2UgbmFtZSBmb3VuZCBpbiBzdWJqZWN0ICVzLlxuIiksIHN1YmplY3Rfc3RyKSk7 ICAgICAgICAKKysgICAgICAgICAgICAoX0dDUlNMKCJObyBzZXJ2aWNlIG5hbWUgZm91bmQgaW4g c3ViamVjdCAlcy5cbiIpLCBzdWJqZWN0X3N0cikpOworICAgICB9CistICAgIAorKworICAgICBn b3RvIGV4aXQ7CisgCisgIGV4aXQ6CitAQCAtMjQ3Myw3ICsyNDczLDcgQEAgZ2xvYnVzX2xfZ3Np X2NyZWRfZ2V0X3NlcnZpY2UoCisgICAgIH0KKyAKKyAgICAgR0xPQlVTX0lfR1NJX0NSRURfREVC VUdfRVhJVDsKKy0gICAgCisrCisgICAgIHJldHVybiByZXN1bHQ7CisgfQorIAorLS0gCisyLjU0 LjAKKwoKZGlmZiAtLWdpdCBhLzAwMDItQnVpbGQtd2l0aC1PcGVuU1NMLTQucGF0Y2ggYi8wMDAy LUJ1aWxkLXdpdGgtT3BlblNTTC00LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmZjMDgxZDcKLS0tIC9kZXYvbnVsbAorKysgYi8wMDAyLUJ1aWxkLXdpdGgtT3BlblNT TC00LnBhdGNoCkBAIC0wLDAgKzEsNzIgQEAKK0Zyb20gMjQzNzViODUwM2QyYTQzNzM2MDBiMTRk MDM3MDBiNjk3NDE1NzM3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hdHRpYXMg RWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNlPgorRGF0ZTogV2VkLCAyMCBNYXkg MjAyNiAwMDoxNTozNyArMDIwMAorU3ViamVjdDogW1BBVENIIDIvMl0gQnVpbGQgd2l0aCBPcGVu U1NMIDQKKworLS0tCisgLi4uL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfY3JlZF9oYW5kbGUu YyAgICAgICAgIHwgIDIgKy0KKyAuLi4vc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9jcmVkZW50 aWFsLmMgICAgICAgICAgfCAxMyArKysrKysrKystLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxMCBp bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3NpL2NyZWRlbnRp YWwvc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9jcmVkX2hhbmRsZS5jIGIvZ3NpL2NyZWRlbnRp YWwvc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9jcmVkX2hhbmRsZS5jCitpbmRleCBjZjNkYzJh MTguLjhjOTZmNDBiMiAxMDA2NDQKKy0tLSBhL2dzaS9jcmVkZW50aWFsL3NvdXJjZS9saWJyYXJ5 L2dsb2J1c19nc2lfY3JlZF9oYW5kbGUuYworKysrIGIvZ3NpL2NyZWRlbnRpYWwvc291cmNlL2xp YnJhcnkvZ2xvYnVzX2dzaV9jcmVkX2hhbmRsZS5jCitAQCAtMTI3OCw3ICsxMjc4LDcgQEAgZ2xv YnVzX2dzaV9jcmVkX2dldF9wb2xpY2llcygKKyAgICAgICAgICAgICAgICAgZ290byBleGl0Owor ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBtZW1jcHkocG9saWN5X3N0cmluZywKKy0gICAg ICAgICAgICAgICAgICAgIEFTTjFfU1RSSU5HX2RhdGEocG9saWN5LT5wb2xpY3kpLAorKyAgICAg ICAgICAgICAgICAgICAgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHBvbGljeS0+cG9saWN5KSwKKyAg ICAgICAgICAgICAgICAgICAgIHBvbGljeV9zdHJpbmdfbGVuZ3RoKTsKKyAKKyAgICAgICAgIH0K K2RpZmYgLS1naXQgYS9nc2kvY3JlZGVudGlhbC9zb3VyY2UvbGlicmFyeS9nbG9idXNfZ3NpX2Ny ZWRlbnRpYWwuYyBiL2dzaS9jcmVkZW50aWFsL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfY3Jl ZGVudGlhbC5jCitpbmRleCAwNzM1Yzk5MzIuLjMxOWM3YTdhOSAxMDA2NDQKKy0tLSBhL2dzaS9j cmVkZW50aWFsL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfY3JlZGVudGlhbC5jCisrKysgYi9n c2kvY3JlZGVudGlhbC9zb3VyY2UvbGlicmFyeS9nbG9idXNfZ3NpX2NyZWRlbnRpYWwuYworQEAg LTE1MjksNiArMTUyOSw3IEBAIGdsb2J1c19nc2lfY3JlZF9yZWFkX3BrY3MxMigKKyAgICAgUEtD UzcgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGtjczcgPSBOVUxMOworICAgICBTVEFD S19PRihQS0NTNykgKiAgICAgICAgICAgICAgICAgICBhdXRoX3NhZmVzID0gTlVMTDsKKyAgICAg UEtDUzhfUFJJVl9LRVlfSU5GTyAqICAgICAgICAgICAgICAgcGtjczggPSBOVUxMOworKyAgICBj b25zdCBQS0NTOF9QUklWX0tFWV9JTkZPICogICAgICAgICBwa2NzOGMgPSBOVUxMOworICAgICBC SU8gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa2NzMTJfYmlvID0gTlVMTDsKKyAg ICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgaiwgYmFnX05JRDsKKyAK K0BAIC0xNjM0LDggKzE2MzUsOCBAQCBnbG9idXNfZ3NpX2NyZWRfcmVhZF9wa2NzMTIoCisgICAg ICAgICAgICAgZWxzZSBpZihQS0NTMTJfYmFnX3R5cGUoYmFnKSA9PSBOSURfa2V5QmFnICYmCisg ICAgICAgICAgICAgICAgICAgICBoYW5kbGUtPmtleSA9PSBOVUxMKQorICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgcGtjczggPSBQS0NTMTJfU0FGRUJBR19nZXQwX3A4aW5mKGJhZyk7 CistICAgICAgICAgICAgICAgIGhhbmRsZS0+a2V5ID0gRVZQX1BLQ1M4MlBLRVkocGtjczgpOwor KyAgICAgICAgICAgICAgICBwa2NzOGMgPSBQS0NTMTJfU0FGRUJBR19nZXQwX3A4aW5mKGJhZyk7 CisrICAgICAgICAgICAgICAgIGhhbmRsZS0+a2V5ID0gRVZQX1BLQ1M4MlBLRVkocGtjczhjKTsK KyAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGUtPmtleSkKKyAgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9DUkVEX09QRU5TU0xfRVJST1JfUkVTVUxU KAorQEAgLTIwMjYsNyArMjAyNywxMSBAQCBnbG9idXNfaV9nc2lfY3JlZF9nZXRfcHJveHljZXJ0 aW5mbygKKyB7CisgICAgIGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAgICAgICAgIHJlc3Vs dCA9IEdMT0JVU19TVUNDRVNTOworICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwY2lfb2xkX05JRDsKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAw MDBMCisgICAgIFg1MDlfRVhURU5TSU9OICogICAgICAgICAgICAgICAgICAgIHBjaV9leHRlbnNp b24gPSBOVUxMOworKyNlbHNlCisrICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICogICAgICAgICAg ICAgIHBjaV9leHRlbnNpb24gPSBOVUxMOworKyNlbmRpZgorICAgICBpbnQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25fbG9jOworIAorICAgICBHTE9CVVNfSV9HU0lf Q1JFRF9ERUJVR19FTlRFUjsKK0BAIC0yNDg0LDggKzI0ODksOCBAQCBnbG9idXNfbF9jcmVkZW50 aWFsX3NvcnRfY2VydF9saXN0KAorIHsKKyAgICAgWDUwOSAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdG1wX2NlcnQgPSBOVUxMOworICAgICBYNTA5ICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0bXBfc2lnbmVyID0gTlVMTDsKKy0gICAgWDUwOV9OQU1FICogICAgICAgICAg ICAgICAgICAgICAgICAgY2FuZGlkYXRlX2lzc3VlcjsKKy0gICAgWDUwOV9OQU1FICogICAgICAg ICAgICAgICAgICAgICAgICAgc2lnbmVyX3N1YmplY3Q7CisrICAgIGNvbnN0IFg1MDlfTkFNRSAq ICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZV9pc3N1ZXI7CisrICAgIGNvbnN0IFg1MDlfTkFN RSAqICAgICAgICAgICAgICAgICAgIHNpZ25lcl9zdWJqZWN0OworICAgICBTVEFDS19PRihYNTA5 KSAqICAgICAgICAgICAgICAgICAgICBvcmRlcmVkX2NlcnRzOworICAgICBpbnQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpLCBqLCBpc3N1ZXJfaWR4OworIAorLS0gCisyLjU0LjAK KwoKZGlmZiAtLWdpdCBhL2dsb2J1cy1nc2ktY3JlZGVudGlhbC5zcGVjIGIvZ2xvYnVzLWdzaS1j cmVkZW50aWFsLnNwZWMKaW5kZXggYWYzMjRhOS4uMjM5OTk1YyAxMDA2NDQKLS0tIGEvZ2xvYnVz LWdzaS1jcmVkZW50aWFsLnNwZWMKKysrIGIvZ2xvYnVzLWdzaS1jcmVkZW50aWFsLnNwZWMKQEAg LTEsMTMgKzEsMTUgQEAKIE5hbWU6CQlnbG9idXMtZ3NpLWNyZWRlbnRpYWwKICVnbG9iYWwgX25h bWUgJSh0ciAtIF8gPDw8ICV7bmFtZX0pCiBWZXJzaW9uOgk4LjUKLVJlbGVhc2U6CTIlez9kaXN0 fQorUmVsZWFzZToJMyV7P2Rpc3R9CiBTdW1tYXJ5OglHcmlkIENvbW11bml0eSBUb29sa2l0IC0g R2xvYnVzIEdTSSBDcmVkZW50aWFsIExpYnJhcnkKIAogTGljZW5zZToJQXBhY2hlLTIuMAogVVJM OgkJaHR0cHM6Ly9naXRodWIuY29tL2dyaWRjZi9nY3QvCiBTb3VyY2U6CQlodHRwczovL3JlcG8u Z3JpZGNmLm9yZy9nY3Q2L3NvdXJjZXMvJXtfbmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKIFNvdXJj ZTg6CVJFQURNRQorUGF0Y2gwOgkJMDAwMS1VbnRhYmlmeS1hbmQtcmVtb3ZlLXRyYWlsaW5nLXdo aXRlLXNwYWNlLnBhdGNoCitQYXRjaDE6CQkwMDAyLUJ1aWxkLXdpdGgtT3BlblNTTC00LnBhdGNo CiAKIEJ1aWxkUmVxdWlyZXM6CW1ha2UKIEJ1aWxkUmVxdWlyZXM6CWdjYwpAQCAtNTksNiArNjEs OCBAQCBHbG9idXMgR1NJIENyZWRlbnRpYWwgTGlicmFyeSBEb2N1bWVudGF0aW9uIEZpbGVzCiAK ICVwcmVwCiAlc2V0dXAgLXEgLW4gJXtfbmFtZX0tJXt2ZXJzaW9ufQorJXBhdGNoIC1QMCAtcDQK KyVwYXRjaCAtUDEgLXA0CiAKICVidWlsZAogIyBSZWR1Y2Ugb3ZlcmxpbmtpbmcKQEAgLTEwNyw2 ICsxMTEsOSBAQCBybSAle2J1aWxkcm9vdH0le19wa2dkb2NkaXJ9L0dMT0JVU19MSUNFTlNFCiAl bGljZW5zZSBHTE9CVVNfTElDRU5TRQogCiAlY2hhbmdlbG9nCisqIFN1biBKdW4gMTQgMjAyNiBN YXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51dS5zZT4gLSA4LjUtMworLSBD b21waWxlIHdpdGggT3BlblNTTCA0CisKICogRnJpIEphbiAxNiAyMDI2IEZlZG9yYSBSZWxlYXNl IEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gOC41LTIKIC0gUmVidWls dCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80NF9NYXNzX1JlYnVp bGQKIAo=