From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from imap1.codethink.co.uk ([176.9.8.82]:33786 "EHLO imap1.codethink.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726374AbeK3Jfq (ORCPT ); Fri, 30 Nov 2018 04:35:46 -0500 Message-ID: <1543530471.2867.12.camel@codethink.co.uk> Subject: Security fixes for 4.14 From: Ben Hutchings To: Greg Kroah-Hartman , Sasha Levin Cc: stable Date: Thu, 29 Nov 2018 22:27:51 +0000 Content-Type: multipart/mixed; boundary="=-9BexSJOgEOmndj+tEdj3" Mime-Version: 1.0 Sender: stable-owner@vger.kernel.org List-ID: --=-9BexSJOgEOmndj+tEdj3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit I've backported a number of fixes for security issues affecting 4.14- stable. All of these are already fixed in 4.19-stable. Most of the issues involve filesystem validation, and I tested with the reproducers where available. For the BPF fix, I verified that the self-tests didn't regress and temporarily added logging to check that the mitigation is applied when needed. Ben. -- Ben Hutchings, Software Developer   Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom --=-9BexSJOgEOmndj+tEdj3 Content-Type: application/mbox; name="security-4.14.mbox" Content-Disposition: attachment; filename="security-4.14.mbox" Content-Transfer-Encoding: base64 RnJvbSBjOTZkNWQyZDhiMjE0OWI5YTIwMjEzMjg1ZDIwMTU1MTA3NTI4ODcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJbHlhIERyeW9tb3YgPGlkcnlvbW92QGdtYWlsLmNvbT4KRGF0 ZTogVGh1LCAyNiBKdWwgMjAxOCAxNToxNzo0NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEvNDZd IGxpYmNlcGg6IHN0b3JlIGNlcGhfYXV0aF9oYW5kc2hha2UgcG9pbnRlciBpbgogY2VwaF9jb25u ZWN0aW9uCgpjb21taXQgMjYyNjE0YzQyOTRkMzNiMWYxOWUwZDE4YzAwOTFkOWMzMjliNTQ0YSB1 cHN0cmVhbS4KCldlIGFscmVhZHkgY29weSBhdXRob3JpemVyX3JlcGx5X2J1ZiBhbmQgYXV0aG9y aXplcl9yZXBseV9idWZfbGVuIGludG8KY2VwaF9jb25uZWN0aW9uLiAgRmFjdG9yaW5nIG91dCBf X3ByZXBhcmVfd3JpdGVfY29ubmVjdCgpIHJlcXVpcmVzIHR3bwptb3JlOiBhdXRob3JpemVyX2J1 ZiBhbmQgYXV0aG9yaXplcl9idWZfbGVuLiAgU3RvcmUgdGhlIHBvaW50ZXIgdG8gdGhlCmhhbmRz aGFrZSBpbiBjb24tPmF1dGggcmF0aGVyIHRoYW4gcGlsaW5nIG9uLgoKU2lnbmVkLW9mZi1ieTog SWx5YSBEcnlvbW92IDxpZHJ5b21vdkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBTYWdlIFdlaWwg PHNhZ2VAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNo aW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogaW5jbHVkZS9saW51eC9jZXBoL21lc3Nlbmdlci5o IHwgIDMgKy0tCiBuZXQvY2VwaC9tZXNzZW5nZXIuYyAgICAgICAgICAgfCA1NCArKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjcgaW5z ZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9j ZXBoL21lc3Nlbmdlci5oIGIvaW5jbHVkZS9saW51eC9jZXBoL21lc3Nlbmdlci5oCmluZGV4IGVh ZDlkODVmMWMxMS4uOTA1NjA3N2MwMjNmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NlcGgv bWVzc2VuZ2VyLmgKKysrIGIvaW5jbHVkZS9saW51eC9jZXBoL21lc3Nlbmdlci5oCkBAIC0yMDMs OSArMjAzLDggQEAgc3RydWN0IGNlcGhfY29ubmVjdGlvbiB7CiAJCQkJIGF0dGVtcHQgZm9yIHRo aXMgY29ubmVjdGlvbiwgY2xpZW50ICovCiAJdTMyIHBlZXJfZ2xvYmFsX3NlcTsgIC8qIHBlZXIn cyBnbG9iYWwgc2VxIGZvciB0aGlzIGNvbm5lY3Rpb24gKi8KIAorCXN0cnVjdCBjZXBoX2F1dGhf aGFuZHNoYWtlICphdXRoOwogCWludCBhdXRoX3JldHJ5OyAgICAgICAvKiB0cnVlIGlmIHdlIG5l ZWQgYSBuZXdlciBhdXRob3JpemVyICovCi0Jdm9pZCAqYXV0aF9yZXBseV9idWY7ICAgLyogd2hl cmUgdG8gcHV0IHRoZSBhdXRob3JpemVyIHJlcGx5ICovCi0JaW50IGF1dGhfcmVwbHlfYnVmX2xl bjsKIAogCXN0cnVjdCBtdXRleCBtdXRleDsKIApkaWZmIC0tZ2l0IGEvbmV0L2NlcGgvbWVzc2Vu Z2VyLmMgYi9uZXQvY2VwaC9tZXNzZW5nZXIuYwppbmRleCA1YzRlODUyOTZjZjYuLmRjOTQ3YWY1 MGQzNSAxMDA2NDQKLS0tIGEvbmV0L2NlcGgvbWVzc2VuZ2VyLmMKKysrIGIvbmV0L2NlcGgvbWVz c2VuZ2VyLmMKQEAgLTE0MDUsMjQgKzE0MDUsMjYgQEAgc3RhdGljIHZvaWQgcHJlcGFyZV93cml0 ZV9rZWVwYWxpdmUoc3RydWN0IGNlcGhfY29ubmVjdGlvbiAqY29uKQogICogQ29ubmVjdGlvbiBu ZWdvdGlhdGlvbi4KICAqLwogCi1zdGF0aWMgc3RydWN0IGNlcGhfYXV0aF9oYW5kc2hha2UgKmdl dF9jb25uZWN0X2F1dGhvcml6ZXIoc3RydWN0IGNlcGhfY29ubmVjdGlvbiAqY29uLAotCQkJCQkJ aW50ICphdXRoX3Byb3RvKQorc3RhdGljIGludCBnZXRfY29ubmVjdF9hdXRob3JpemVyKHN0cnVj dCBjZXBoX2Nvbm5lY3Rpb24gKmNvbikKIHsKIAlzdHJ1Y3QgY2VwaF9hdXRoX2hhbmRzaGFrZSAq YXV0aDsKKwlpbnQgYXV0aF9wcm90bzsKIAogCWlmICghY29uLT5vcHMtPmdldF9hdXRob3JpemVy KSB7CisJCWNvbi0+YXV0aCA9IE5VTEw7CiAJCWNvbi0+b3V0X2Nvbm5lY3QuYXV0aG9yaXplcl9w cm90b2NvbCA9IENFUEhfQVVUSF9VTktOT1dOOwogCQljb24tPm91dF9jb25uZWN0LmF1dGhvcml6 ZXJfbGVuID0gMDsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiAwOwogCX0KIAotCWF1dGggPSBj b24tPm9wcy0+Z2V0X2F1dGhvcml6ZXIoY29uLCBhdXRoX3Byb3RvLCBjb24tPmF1dGhfcmV0cnkp OworCWF1dGggPSBjb24tPm9wcy0+Z2V0X2F1dGhvcml6ZXIoY29uLCAmYXV0aF9wcm90bywgY29u LT5hdXRoX3JldHJ5KTsKIAlpZiAoSVNfRVJSKGF1dGgpKQotCQlyZXR1cm4gYXV0aDsKKwkJcmV0 dXJuIFBUUl9FUlIoYXV0aCk7CiAKLQljb24tPmF1dGhfcmVwbHlfYnVmID0gYXV0aC0+YXV0aG9y aXplcl9yZXBseV9idWY7Ci0JY29uLT5hdXRoX3JlcGx5X2J1Zl9sZW4gPSBhdXRoLT5hdXRob3Jp emVyX3JlcGx5X2J1Zl9sZW47Ci0JcmV0dXJuIGF1dGg7CisJY29uLT5hdXRoID0gYXV0aDsKKwlj b24tPm91dF9jb25uZWN0LmF1dGhvcml6ZXJfcHJvdG9jb2wgPSBjcHVfdG9fbGUzMihhdXRoX3By b3RvKTsKKwljb24tPm91dF9jb25uZWN0LmF1dGhvcml6ZXJfbGVuID0gY3B1X3RvX2xlMzIoYXV0 aC0+YXV0aG9yaXplcl9idWZfbGVuKTsKKwlyZXR1cm4gMDsKIH0KIAogLyoKQEAgLTE0NDIsOCAr MTQ0NCw3IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV93cml0ZV9jb25uZWN0KHN0cnVjdCBjZXBoX2Nv bm5lY3Rpb24gKmNvbikKIHsKIAl1bnNpZ25lZCBpbnQgZ2xvYmFsX3NlcSA9IGdldF9nbG9iYWxf c2VxKGNvbi0+bXNnciwgMCk7CiAJaW50IHByb3RvOwotCWludCBhdXRoX3Byb3RvOwotCXN0cnVj dCBjZXBoX2F1dGhfaGFuZHNoYWtlICphdXRoOworCWludCByZXQ7CiAKIAlzd2l0Y2ggKGNvbi0+ cGVlcl9uYW1lLnR5cGUpIHsKIAljYXNlIENFUEhfRU5USVRZX1RZUEVfTU9OOgpAQCAtMTQ3MCwy MCArMTQ3MSwxNSBAQCBzdGF0aWMgaW50IHByZXBhcmVfd3JpdGVfY29ubmVjdChzdHJ1Y3QgY2Vw aF9jb25uZWN0aW9uICpjb24pCiAJY29uLT5vdXRfY29ubmVjdC5wcm90b2NvbF92ZXJzaW9uID0g Y3B1X3RvX2xlMzIocHJvdG8pOwogCWNvbi0+b3V0X2Nvbm5lY3QuZmxhZ3MgPSAwOwogCi0JYXV0 aF9wcm90byA9IENFUEhfQVVUSF9VTktOT1dOOwotCWF1dGggPSBnZXRfY29ubmVjdF9hdXRob3Jp emVyKGNvbiwgJmF1dGhfcHJvdG8pOwotCWlmIChJU19FUlIoYXV0aCkpCi0JCXJldHVybiBQVFJf RVJSKGF1dGgpOwotCi0JY29uLT5vdXRfY29ubmVjdC5hdXRob3JpemVyX3Byb3RvY29sID0gY3B1 X3RvX2xlMzIoYXV0aF9wcm90byk7Ci0JY29uLT5vdXRfY29ubmVjdC5hdXRob3JpemVyX2xlbiA9 IGF1dGggPwotCQljcHVfdG9fbGUzMihhdXRoLT5hdXRob3JpemVyX2J1Zl9sZW4pIDogMDsKKwly ZXQgPSBnZXRfY29ubmVjdF9hdXRob3JpemVyKGNvbik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJl dDsKIAogCWNvbl9vdXRfa3ZlY19hZGQoY29uLCBzaXplb2YgKGNvbi0+b3V0X2Nvbm5lY3QpLAog CQkJCQkmY29uLT5vdXRfY29ubmVjdCk7Ci0JaWYgKGF1dGggJiYgYXV0aC0+YXV0aG9yaXplcl9i dWZfbGVuKQotCQljb25fb3V0X2t2ZWNfYWRkKGNvbiwgYXV0aC0+YXV0aG9yaXplcl9idWZfbGVu LAotCQkJCQlhdXRoLT5hdXRob3JpemVyX2J1Zik7CisJaWYgKGNvbi0+YXV0aCkKKwkJY29uX291 dF9rdmVjX2FkZChjb24sIGNvbi0+YXV0aC0+YXV0aG9yaXplcl9idWZfbGVuLAorCQkJCSBjb24t PmF1dGgtPmF1dGhvcml6ZXJfYnVmKTsKIAogCWNvbi0+b3V0X21vcmUgPSAwOwogCWNvbl9mbGFn X3NldChjb24sIENPTl9GTEFHX1dSSVRFX1BFTkRJTkcpOwpAQCAtMTc0NywxMSArMTc0MywxNCBA QCBzdGF0aWMgaW50IHJlYWRfcGFydGlhbF9jb25uZWN0KHN0cnVjdCBjZXBoX2Nvbm5lY3Rpb24g KmNvbikKIAlpZiAocmV0IDw9IDApCiAJCWdvdG8gb3V0OwogCi0Jc2l6ZSA9IGxlMzJfdG9fY3B1 KGNvbi0+aW5fcmVwbHkuYXV0aG9yaXplcl9sZW4pOwotCWVuZCArPSBzaXplOwotCXJldCA9IHJl YWRfcGFydGlhbChjb24sIGVuZCwgc2l6ZSwgY29uLT5hdXRoX3JlcGx5X2J1Zik7Ci0JaWYgKHJl dCA8PSAwKQotCQlnb3RvIG91dDsKKwlpZiAoY29uLT5hdXRoKSB7CisJCXNpemUgPSBsZTMyX3Rv X2NwdShjb24tPmluX3JlcGx5LmF1dGhvcml6ZXJfbGVuKTsKKwkJZW5kICs9IHNpemU7CisJCXJl dCA9IHJlYWRfcGFydGlhbChjb24sIGVuZCwgc2l6ZSwKKwkJCQkgICBjb24tPmF1dGgtPmF1dGhv cml6ZXJfcmVwbHlfYnVmKTsKKwkJaWYgKHJldCA8PSAwKQorCQkJZ290byBvdXQ7CisJfQogCiAJ ZG91dCgicmVhZF9wYXJ0aWFsX2Nvbm5lY3QgJXAgdGFnICVkLCBjb25fc2VxID0gJXUsIGdfc2Vx ID0gJXVcbiIsCiAJICAgICBjb24sIChpbnQpY29uLT5pbl9yZXBseS50YWcsCkBAIC0xNzU5LDcg KzE3NTgsNiBAQCBzdGF0aWMgaW50IHJlYWRfcGFydGlhbF9jb25uZWN0KHN0cnVjdCBjZXBoX2Nv bm5lY3Rpb24gKmNvbikKIAkgICAgIGxlMzJfdG9fY3B1KGNvbi0+aW5fcmVwbHkuZ2xvYmFsX3Nl cSkpOwogb3V0OgogCXJldHVybiByZXQ7Ci0KIH0KIAogLyoKQEAgLTIwNDIsNyArMjA0MCw3IEBA IHN0YXRpYyBpbnQgcHJvY2Vzc19jb25uZWN0KHN0cnVjdCBjZXBoX2Nvbm5lY3Rpb24gKmNvbikK IAogCWRvdXQoInByb2Nlc3NfY29ubmVjdCBvbiAlcCB0YWcgJWRcbiIsIGNvbiwgKGludCljb24t PmluX3RhZyk7CiAKLQlpZiAoY29uLT5hdXRoX3JlcGx5X2J1ZikgeworCWlmIChjb24tPmF1dGgp IHsKIAkJLyoKIAkJICogQW55IGNvbm5lY3Rpb24gdGhhdCBkZWZpbmVzIC0+Z2V0X2F1dGhvcml6 ZXIoKQogCQkgKiBzaG91bGQgYWxzbyBkZWZpbmUgLT52ZXJpZnlfYXV0aG9yaXplcl9yZXBseSgp LgotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAg ICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAg ICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9t IDI3ZTUyYmNkMGVmNWE3MjVlNDk0MmI4Y2VhNjY1MzJkNTMyMjI2ZGMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IElseWEgRHJ5b21vdiA8aWRyeW9tb3ZAZ21haWwuY29tPgpEYXRlOiBU aHUsIDI2IEp1bCAyMDE4IDE3OjQzOjQ3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMi80Nl0gbGli Y2VwaDogZmFjdG9yIG91dCBfX3ByZXBhcmVfd3JpdGVfY29ubmVjdCgpCgpjb21taXQgYzBmNTZi NDgzYWEwOWM5OWJmZTk3NDA5YTQzYWQ3ODZmMzNiOGE1YSB1cHN0cmVhbS4KCldpbGwgYmUgdXNl ZCBmb3Igc2VuZGluZyBjZXBoX21zZ19jb25uZWN0IHdpdGggYW4gdXBkYXRlZCBhdXRob3JpemVy LAphZnRlciB0aGUgc2VydmVyIGNoYWxsZW5nZXMgdGhlIGluaXRpYWwgYXV0aG9yaXplci4KClNp Z25lZC1vZmYtYnk6IElseWEgRHJ5b21vdiA8aWRyeW9tb3ZAZ21haWwuY29tPgpSZXZpZXdlZC1i eTogU2FnZSBXZWlsIDxzYWdlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGlu Z3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIG5ldC9jZXBoL21lc3Nlbmdl ci5jIHwgMjEgKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0 aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY2VwaC9tZXNzZW5nZXIu YyBiL25ldC9jZXBoL21lc3Nlbmdlci5jCmluZGV4IGRjOTQ3YWY1MGQzNS4uMWIzMWQyMDM4MTc4 IDEwMDY0NAotLS0gYS9uZXQvY2VwaC9tZXNzZW5nZXIuYworKysgYi9uZXQvY2VwaC9tZXNzZW5n ZXIuYwpAQCAtMTQ0MCw2ICsxNDQwLDE3IEBAIHN0YXRpYyB2b2lkIHByZXBhcmVfd3JpdGVfYmFu bmVyKHN0cnVjdCBjZXBoX2Nvbm5lY3Rpb24gKmNvbikKIAljb25fZmxhZ19zZXQoY29uLCBDT05f RkxBR19XUklURV9QRU5ESU5HKTsKIH0KIAorc3RhdGljIHZvaWQgX19wcmVwYXJlX3dyaXRlX2Nv bm5lY3Qoc3RydWN0IGNlcGhfY29ubmVjdGlvbiAqY29uKQoreworCWNvbl9vdXRfa3ZlY19hZGQo Y29uLCBzaXplb2YoY29uLT5vdXRfY29ubmVjdCksICZjb24tPm91dF9jb25uZWN0KTsKKwlpZiAo Y29uLT5hdXRoKQorCQljb25fb3V0X2t2ZWNfYWRkKGNvbiwgY29uLT5hdXRoLT5hdXRob3JpemVy X2J1Zl9sZW4sCisJCQkJIGNvbi0+YXV0aC0+YXV0aG9yaXplcl9idWYpOworCisJY29uLT5vdXRf bW9yZSA9IDA7CisJY29uX2ZsYWdfc2V0KGNvbiwgQ09OX0ZMQUdfV1JJVEVfUEVORElORyk7Cit9 CisKIHN0YXRpYyBpbnQgcHJlcGFyZV93cml0ZV9jb25uZWN0KHN0cnVjdCBjZXBoX2Nvbm5lY3Rp b24gKmNvbikKIHsKIAl1bnNpZ25lZCBpbnQgZ2xvYmFsX3NlcSA9IGdldF9nbG9iYWxfc2VxKGNv bi0+bXNnciwgMCk7CkBAIC0xNDc1LDE1ICsxNDg2LDcgQEAgc3RhdGljIGludCBwcmVwYXJlX3dy aXRlX2Nvbm5lY3Qoc3RydWN0IGNlcGhfY29ubmVjdGlvbiAqY29uKQogCWlmIChyZXQpCiAJCXJl dHVybiByZXQ7CiAKLQljb25fb3V0X2t2ZWNfYWRkKGNvbiwgc2l6ZW9mIChjb24tPm91dF9jb25u ZWN0KSwKLQkJCQkJJmNvbi0+b3V0X2Nvbm5lY3QpOwotCWlmIChjb24tPmF1dGgpCi0JCWNvbl9v dXRfa3ZlY19hZGQoY29uLCBjb24tPmF1dGgtPmF1dGhvcml6ZXJfYnVmX2xlbiwKLQkJCQkgY29u LT5hdXRoLT5hdXRob3JpemVyX2J1Zik7Ci0KLQljb24tPm91dF9tb3JlID0gMDsKLQljb25fZmxh Z19zZXQoY29uLCBDT05fRkxBR19XUklURV9QRU5ESU5HKTsKLQorCV9fcHJlcGFyZV93cml0ZV9j b25uZWN0KGNvbik7CiAJcmV0dXJuIDA7CiB9CiAKLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJl IERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8v d3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUg U3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBN MSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSA3MWMwOGY2ZmM2YThlYTM0OTUwZjRmY2RlZjg5 MmM4NWU0MzYxZTY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJbHlhIERyeW9tb3Yg PGlkcnlvbW92QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyNiBKdWwgMjAxOCAxODowNTo0MyArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDMvNDZdIGxpYmNlcGg6IGZhY3RvciBvdXQgX19jZXBoX3hfZGVj cnlwdCgpCgpjb21taXQgYzU3MWZlMjRkMjQzYmZlNzAxN2YwZTY3ZmU4MDBiM2NjMmExZDFmNyB1 cHN0cmVhbS4KCldpbGwgYmUgdXNlZCBmb3IgZGVjcnlwdGluZyB0aGUgc2VydmVyIGNoYWxsZW5n ZSB3aGljaCBpcyBvbmx5IHByZWNlZGVkCmJ5IGNlcGhfeF9lbmNyeXB0X2hlYWRlci4KCkRyb3Ag c3RydWN0X3YgY2hlY2sgdG8gYWxsb3cgZm9yIGV4dGVuZGluZyBjZXBoX3hfZW5jcnlwdF9oZWFk ZXIgaW4gdGhlCmZ1dHVyZS4KClNpZ25lZC1vZmYtYnk6IElseWEgRHJ5b21vdiA8aWRyeW9tb3ZA Z21haWwuY29tPgpSZXZpZXdlZC1ieTogU2FnZSBXZWlsIDxzYWdlQHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgot LS0KIG5ldC9jZXBoL2F1dGhfeC5jIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvY2VwaC9hdXRoX3guYyBiL25ldC9jZXBoL2F1dGhfeC5jCmluZGV4IDJm NGExYmFmNWY1Mi4uOWNhYzA1MjM5MzQ2IDEwMDY0NAotLS0gYS9uZXQvY2VwaC9hdXRoX3guYwor KysgYi9uZXQvY2VwaC9hdXRoX3guYwpAQCAtNzAsMjUgKzcwLDQwIEBAIHN0YXRpYyBpbnQgY2Vw aF94X2VuY3J5cHQoc3RydWN0IGNlcGhfY3J5cHRvX2tleSAqc2VjcmV0LCB2b2lkICpidWYsCiAJ cmV0dXJuIHNpemVvZih1MzIpICsgY2lwaGVydGV4dF9sZW47CiB9CiAKK3N0YXRpYyBpbnQgX19j ZXBoX3hfZGVjcnlwdChzdHJ1Y3QgY2VwaF9jcnlwdG9fa2V5ICpzZWNyZXQsIHZvaWQgKnAsCisJ CQkgICAgaW50IGNpcGhlcnRleHRfbGVuKQoreworCXN0cnVjdCBjZXBoX3hfZW5jcnlwdF9oZWFk ZXIgKmhkciA9IHA7CisJaW50IHBsYWludGV4dF9sZW47CisJaW50IHJldDsKKworCXJldCA9IGNl cGhfY3J5cHQoc2VjcmV0LCBmYWxzZSwgcCwgY2lwaGVydGV4dF9sZW4sIGNpcGhlcnRleHRfbGVu LAorCQkJICZwbGFpbnRleHRfbGVuKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJaWYg KGxlNjRfdG9fY3B1KGhkci0+bWFnaWMpICE9IENFUEhYX0VOQ19NQUdJQykgeworCQlwcl9lcnIo IiVzIGJhZCBtYWdpY1xuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwly ZXR1cm4gcGxhaW50ZXh0X2xlbiAtIHNpemVvZigqaGRyKTsKK30KKwogc3RhdGljIGludCBjZXBo X3hfZGVjcnlwdChzdHJ1Y3QgY2VwaF9jcnlwdG9fa2V5ICpzZWNyZXQsIHZvaWQgKipwLCB2b2lk ICplbmQpCiB7Ci0Jc3RydWN0IGNlcGhfeF9lbmNyeXB0X2hlYWRlciAqaGRyID0gKnAgKyBzaXpl b2YodTMyKTsKLQlpbnQgY2lwaGVydGV4dF9sZW4sIHBsYWludGV4dF9sZW47CisJaW50IGNpcGhl cnRleHRfbGVuOwogCWludCByZXQ7CiAKIAljZXBoX2RlY29kZV8zMl9zYWZlKHAsIGVuZCwgY2lw aGVydGV4dF9sZW4sIGVfaW52YWwpOwogCWNlcGhfZGVjb2RlX25lZWQocCwgZW5kLCBjaXBoZXJ0 ZXh0X2xlbiwgZV9pbnZhbCk7CiAKLQlyZXQgPSBjZXBoX2NyeXB0KHNlY3JldCwgZmFsc2UsICpw LCBlbmQgLSAqcCwgY2lwaGVydGV4dF9sZW4sCi0JCQkgJnBsYWludGV4dF9sZW4pOwotCWlmIChy ZXQpCisJcmV0ID0gX19jZXBoX3hfZGVjcnlwdChzZWNyZXQsICpwLCBjaXBoZXJ0ZXh0X2xlbik7 CisJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKLQlpZiAoaGRyLT5zdHJ1Y3RfdiAhPSAx IHx8IGxlNjRfdG9fY3B1KGhkci0+bWFnaWMpICE9IENFUEhYX0VOQ19NQUdJQykKLQkJcmV0dXJu IC1FUEVSTTsKLQogCSpwICs9IGNpcGhlcnRleHRfbGVuOwotCXJldHVybiBwbGFpbnRleHRfbGVu IC0gc2l6ZW9mKHN0cnVjdCBjZXBoX3hfZW5jcnlwdF9oZWFkZXIpOworCXJldHVybiByZXQ7CiAK IGVfaW52YWw6CiAJcmV0dXJuIC1FSU5WQUw7Ci0tIApCZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBE ZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApodHRwczovL3d3 dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0 cmVldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hlc3RlciwgTTEg MkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gODViZTNmMmVkN2RkZGY0NmNiMjA5N2RkZTk4ZTVh OWEwNDQ1NTgyYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWx5YSBEcnlvbW92IDxp ZHJ5b21vdkBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjcgSnVsIDIwMTggMTY6Mzc6NTQgKzAyMDAK U3ViamVjdDogW1BBVENIIDA0LzQ2XSBsaWJjZXBoOiBmYWN0b3Igb3V0IGVuY3J5cHRfYXV0aG9y aXplcigpCgpjb21taXQgMTQ5Y2FjNGE1MGIwYjQwODFiMzhiMmYzOGRlNmVmNzFjMjdlYWE4NSB1 cHN0cmVhbS4KCldpbGwgYmUgdXNlZCBmb3IgZW5jcnlwdGluZyBib3RoIHRoZSBpbml0aWFsIGFu ZCB1cGRhdGVkIGF1dGhvcml6ZXJzLgoKU2lnbmVkLW9mZi1ieTogSWx5YSBEcnlvbW92IDxpZHJ5 b21vdkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBTYWdlIFdlaWwgPHNhZ2VAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28u dWs+Ci0tLQogbmV0L2NlcGgvYXV0aF94LmMgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygr KSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NlcGgvYXV0aF94LmMgYi9uZXQv Y2VwaC9hdXRoX3guYwppbmRleCA5Y2FjMDUyMzkzNDYuLjcyMjc5MWY0NWIyYSAxMDA2NDQKLS0t IGEvbmV0L2NlcGgvYXV0aF94LmMKKysrIGIvbmV0L2NlcGgvYXV0aF94LmMKQEAgLTI5MCw2ICsy OTAsMzggQEAgc3RhdGljIGludCBjZXBoX3hfcHJvY190aWNrZXRfcmVwbHkoc3RydWN0IGNlcGhf YXV0aF9jbGllbnQgKmFjLAogCXJldHVybiAtRUlOVkFMOwogfQogCisvKgorICogRW5jb2RlIGFu ZCBlbmNyeXB0IHRoZSBzZWNvbmQgcGFydCAoY2VwaF94X2F1dGhvcml6ZV9iKSBvZiB0aGUKKyAq IGF1dGhvcml6ZXIuICBUaGUgZmlyc3QgcGFydCAoY2VwaF94X2F1dGhvcml6ZV9hKSBzaG91bGQg YWxyZWFkeSBiZQorICogZW5jb2RlZC4KKyAqLworc3RhdGljIGludCBlbmNyeXB0X2F1dGhvcml6 ZXIoc3RydWN0IGNlcGhfeF9hdXRob3JpemVyICphdSkKK3sKKwlzdHJ1Y3QgY2VwaF94X2F1dGhv cml6ZV9hICptc2dfYTsKKwlzdHJ1Y3QgY2VwaF94X2F1dGhvcml6ZV9iICptc2dfYjsKKwl2b2lk ICpwLCAqZW5kOworCWludCByZXQ7CisKKwltc2dfYSA9IGF1LT5idWYtPnZlYy5pb3ZfYmFzZTsK KwlXQVJOX09OKG1zZ19hLT50aWNrZXRfYmxvYi5zZWNyZXRfaWQgIT0gY3B1X3RvX2xlNjQoYXUt PnNlY3JldF9pZCkpOworCXAgPSAodm9pZCAqKShtc2dfYSArIDEpICsgbGUzMl90b19jcHUobXNn X2EtPnRpY2tldF9ibG9iLmJsb2JfbGVuKTsKKwllbmQgPSBhdS0+YnVmLT52ZWMuaW92X2Jhc2Ug KyBhdS0+YnVmLT52ZWMuaW92X2xlbjsKKworCW1zZ19iID0gcCArIGNlcGhfeF9lbmNyeXB0X29m ZnNldCgpOworCW1zZ19iLT5zdHJ1Y3RfdiA9IDE7CisJbXNnX2ItPm5vbmNlID0gY3B1X3RvX2xl NjQoYXUtPm5vbmNlKTsKKworCXJldCA9IGNlcGhfeF9lbmNyeXB0KCZhdS0+c2Vzc2lvbl9rZXks IHAsIGVuZCAtIHAsIHNpemVvZigqbXNnX2IpKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJl dDsKKworCXAgKz0gcmV0OworCVdBUk5fT04ocCA+IGVuZCk7CisJYXUtPmJ1Zi0+dmVjLmlvdl9s ZW4gPSBwIC0gYXUtPmJ1Zi0+dmVjLmlvdl9iYXNlOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRp YyB2b2lkIGNlcGhfeF9hdXRob3JpemVyX2NsZWFudXAoc3RydWN0IGNlcGhfeF9hdXRob3JpemVy ICphdSkKIHsKIAljZXBoX2NyeXB0b19rZXlfZGVzdHJveSgmYXUtPnNlc3Npb25fa2V5KTsKQEAg LTMwNiw3ICszMzgsNiBAQCBzdGF0aWMgaW50IGNlcGhfeF9idWlsZF9hdXRob3JpemVyKHN0cnVj dCBjZXBoX2F1dGhfY2xpZW50ICphYywKIAlpbnQgbWF4bGVuOwogCXN0cnVjdCBjZXBoX3hfYXV0 aG9yaXplX2EgKm1zZ19hOwogCXN0cnVjdCBjZXBoX3hfYXV0aG9yaXplX2IgKm1zZ19iOwotCXZv aWQgKnAsICplbmQ7CiAJaW50IHJldDsKIAlpbnQgdGlja2V0X2Jsb2JfbGVuID0KIAkJKHRoLT50 aWNrZXRfYmxvYiA/IHRoLT50aWNrZXRfYmxvYi0+dmVjLmlvdl9sZW4gOiAwKTsKQEAgLTM1MCwy MSArMzgxLDEzIEBAIHN0YXRpYyBpbnQgY2VwaF94X2J1aWxkX2F1dGhvcml6ZXIoc3RydWN0IGNl cGhfYXV0aF9jbGllbnQgKmFjLAogCWRvdXQoIiB0aCAlcCBzZWNyZXRfaWQgJWxsZCAlbGxkXG4i LCB0aCwgdGgtPnNlY3JldF9pZCwKIAkgICAgIGxlNjRfdG9fY3B1KG1zZ19hLT50aWNrZXRfYmxv Yi5zZWNyZXRfaWQpKTsKIAotCXAgPSBtc2dfYSArIDE7Ci0JcCArPSB0aWNrZXRfYmxvYl9sZW47 Ci0JZW5kID0gYXUtPmJ1Zi0+dmVjLmlvdl9iYXNlICsgYXUtPmJ1Zi0+dmVjLmlvdl9sZW47Ci0K LQltc2dfYiA9IHAgKyBjZXBoX3hfZW5jcnlwdF9vZmZzZXQoKTsKLQltc2dfYi0+c3RydWN0X3Yg PSAxOwogCWdldF9yYW5kb21fYnl0ZXMoJmF1LT5ub25jZSwgc2l6ZW9mKGF1LT5ub25jZSkpOwot CW1zZ19iLT5ub25jZSA9IGNwdV90b19sZTY0KGF1LT5ub25jZSk7Ci0JcmV0ID0gY2VwaF94X2Vu Y3J5cHQoJmF1LT5zZXNzaW9uX2tleSwgcCwgZW5kIC0gcCwgc2l6ZW9mKCptc2dfYikpOwotCWlm IChyZXQgPCAwKQorCXJldCA9IGVuY3J5cHRfYXV0aG9yaXplcihhdSk7CisJaWYgKHJldCkgewor CQlwcl9lcnIoImZhaWxlZCB0byBlbmNyeXB0IGF1dGhvcml6ZXI6ICVkIiwgcmV0KTsKIAkJZ290 byBvdXRfYXU7CisJfQogCi0JcCArPSByZXQ7Ci0JV0FSTl9PTihwID4gZW5kKTsKLQlhdS0+YnVm LT52ZWMuaW92X2xlbiA9IHAgLSBhdS0+YnVmLT52ZWMuaW92X2Jhc2U7CiAJZG91dCgiIGJ1aWx0 IGF1dGhvcml6ZXIgbm9uY2UgJWxseCBsZW4gJWRcbiIsIGF1LT5ub25jZSwKIAkgICAgIChpbnQp YXUtPmJ1Zi0+dmVjLmlvdl9sZW4pOwogCXJldHVybiAwOwotLSAKQmVuIEh1dGNoaW5ncywgU29m dHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0 cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUg RGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0 ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIGE4Njg3YmUwYjY5ZTQ3MDQ4ZmNmMWVk MDM1MTI4OWYzNDQ0Yjg3OTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElseWEgRHJ5 b21vdiA8aWRyeW9tb3ZAZ21haWwuY29tPgpEYXRlOiBGcmksIDI3IEp1bCAyMDE4IDE5OjE4OjM0 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNS80Nl0gbGliY2VwaDogYWRkIGF1dGhvcml6ZXIgY2hh bGxlbmdlCgpjb21taXQgNmRhY2ExM2QyZTcyYmVkYWFhY2ZjMDhmODczMTE0YzkzMDdkNWFlYSB1 cHN0cmVhbS4KCldoZW4gYSBjbGllbnQgYXV0aGVudGljYXRlcyB3aXRoIGEgc2VydmljZSwgYW4g YXV0aG9yaXplciBpcyBzZW50IHdpdGgKYSBub25jZSB0byB0aGUgc2VydmljZSAoY2VwaF94X2F1 dGhvcml6ZV9bYWJdKSBhbmQgdGhlIHNlcnZpY2UgcmVzcG9uZHMKd2l0aCBhIG11dGF0aW9uIG9m IHRoYXQgbm9uY2UgKGNlcGhfeF9hdXRob3JpemVfcmVwbHkpLiAgVGhpcyBsZXRzIHRoZQpjbGll bnQgdmVyaWZ5IHRoZSBzZXJ2aWNlIGlzIHdobyBpdCBzYXlzIGl0IGlzIGJ1dCBpdCBkb2Vzbid0 IHByb3RlY3QKYWdhaW5zdCBhIHJlcGxheTogc29tZW9uZSBjYW4gdHJpdmlhbGx5IGNhcHR1cmUg dGhlIGV4Y2hhbmdlIGFuZCByZXVzZQp0aGUgc2FtZSBhdXRob3JpemVyIHRvIGF1dGhlbnRpY2F0 ZSB0aGVtc2VsdmVzLgoKQWxsb3cgdGhlIHNlcnZpY2UgdG8gcmVqZWN0IGFuIGluaXRpYWwgYXV0 aG9yaXplciB3aXRoIGEgcmFuZG9tCmNoYWxsZW5nZSAoY2VwaF94X2F1dGhvcml6ZV9jaGFsbGVu Z2UpLiAgVGhlIGNsaWVudCB0aGVuIGhhcyB0byByZXNwb25kCndpdGggYW4gdXBkYXRlZCBhdXRo b3JpemVyIHByb3ZpbmcgdGhleSBhcmUgYWJsZSB0byBkZWNyeXB0IHRoZQpzZXJ2aWNlJ3MgY2hh bGxlbmdlIGFuZCB0aGF0IHRoZSBuZXcgYXV0aG9yaXplciB3YXMgcHJvZHVjZWQgZm9yIHRoaXMK c3BlY2lmaWMgY29ubmVjdGlvbiBpbnN0YW5jZS4KClRoZSBhY2NlcHRpbmcgc2lkZSByZXF1aXJl cyB0aGlzIGNoYWxsZW5nZSBhbmQgcmVzcG9uc2UgdW5jb25kaXRpb25hbGx5CmlmIHRoZSBjbGll bnQgc2lkZSBhZHZlcnRpc2VzIHRoZXkgaGF2ZSBDRVBIWF9WMiBmZWF0dXJlIGJpdC4KClRoaXMg YWRkcmVzc2VzIENWRS0yMDE4LTExMjguCgpMaW5rOiBodHRwOi8vdHJhY2tlci5jZXBoLmNvbS9p c3N1ZXMvMjQ4MzYKU2lnbmVkLW9mZi1ieTogSWx5YSBEcnlvbW92IDxpZHJ5b21vdkBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBTYWdlIFdlaWwgPHNhZ2VAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1i eTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMv Y2VwaC9tZHNfY2xpZW50LmMgICAgICAgICAgIHwgMTEgKysrKysrKwogaW5jbHVkZS9saW51eC9j ZXBoL2F1dGguaCAgICAgIHwgIDggKysrKysKIGluY2x1ZGUvbGludXgvY2VwaC9tZXNzZW5nZXIu aCB8ICAzICsrCiBpbmNsdWRlL2xpbnV4L2NlcGgvbXNnci5oICAgICAgfCAgMiArLQogbmV0L2Nl cGgvYXV0aC5jICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKysrKwogbmV0L2NlcGgvYXV0aF94 LmMgICAgICAgICAgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tCiBuZXQvY2VwaC9hdXRoX3hfcHJvdG9jb2wuaCAgICAgfCAgNyArKysrCiBuZXQvY2Vw aC9tZXNzZW5nZXIuYyAgICAgICAgICAgfCAxNyArKysrKysrKystCiBuZXQvY2VwaC9vc2RfY2xp ZW50LmMgICAgICAgICAgfCAxMSArKysrKysrCiA5IGZpbGVzIGNoYW5nZWQsIDE0MCBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvbWRzX2NsaWVudC5j IGIvZnMvY2VwaC9tZHNfY2xpZW50LmMKaW5kZXggYmYzNzhkZGNhNGRiLi5hNDg5ODRkZDY0MjYg MTAwNjQ0Ci0tLSBhL2ZzL2NlcGgvbWRzX2NsaWVudC5jCisrKyBiL2ZzL2NlcGgvbWRzX2NsaWVu dC5jCkBAIC00MDc5LDYgKzQwNzksMTYgQEAgc3RhdGljIHN0cnVjdCBjZXBoX2F1dGhfaGFuZHNo YWtlICpnZXRfYXV0aG9yaXplcihzdHJ1Y3QgY2VwaF9jb25uZWN0aW9uICpjb24sCiAJcmV0dXJu IGF1dGg7CiB9CiAKK3N0YXRpYyBpbnQgYWRkX2F1dGhvcml6ZXJfY2hhbGxlbmdlKHN0cnVjdCBj ZXBoX2Nvbm5lY3Rpb24gKmNvbiwKKwkJCQkgICAgdm9pZCAqY2hhbGxlbmdlX2J1ZiwgaW50IGNo YWxsZW5nZV9idWZfbGVuKQoreworCXN0cnVjdCBjZXBoX21kc19zZXNzaW9uICpzID0gY29uLT5w cml2YXRlOworCXN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kc2MgPSBzLT5zX21kc2M7CisJc3Ry dWN0IGNlcGhfYXV0aF9jbGllbnQgKmFjID0gbWRzYy0+ZnNjLT5jbGllbnQtPm1vbmMuYXV0aDsK KworCXJldHVybiBjZXBoX2F1dGhfYWRkX2F1dGhvcml6ZXJfY2hhbGxlbmdlKGFjLCBzLT5zX2F1 dGguYXV0aG9yaXplciwKKwkJCQkJICAgIGNoYWxsZW5nZV9idWYsIGNoYWxsZW5nZV9idWZfbGVu KTsKK30KIAogc3RhdGljIGludCB2ZXJpZnlfYXV0aG9yaXplcl9yZXBseShzdHJ1Y3QgY2VwaF9j b25uZWN0aW9uICpjb24pCiB7CkBAIC00MTQyLDYgKzQxNTIsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGNlcGhfY29ubmVjdGlvbl9vcGVyYXRpb25zIG1kc19jb25fb3BzID0gewogCS5wdXQgPSBj b25fcHV0LAogCS5kaXNwYXRjaCA9IGRpc3BhdGNoLAogCS5nZXRfYXV0aG9yaXplciA9IGdldF9h dXRob3JpemVyLAorCS5hZGRfYXV0aG9yaXplcl9jaGFsbGVuZ2UgPSBhZGRfYXV0aG9yaXplcl9j aGFsbGVuZ2UsCiAJLnZlcmlmeV9hdXRob3JpemVyX3JlcGx5ID0gdmVyaWZ5X2F1dGhvcml6ZXJf cmVwbHksCiAJLmludmFsaWRhdGVfYXV0aG9yaXplciA9IGludmFsaWRhdGVfYXV0aG9yaXplciwK IAkucGVlcl9yZXNldCA9IHBlZXJfcmVzZXQsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Nl cGgvYXV0aC5oIGIvaW5jbHVkZS9saW51eC9jZXBoL2F1dGguaAppbmRleCBlOTMxZGE4NDI0YTQu LjY3MjhjMmVlMDIwNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jZXBoL2F1dGguaAorKysg Yi9pbmNsdWRlL2xpbnV4L2NlcGgvYXV0aC5oCkBAIC02NCw2ICs2NCwxMCBAQCBzdHJ1Y3QgY2Vw aF9hdXRoX2NsaWVudF9vcHMgewogCS8qIGVuc3VyZSB0aGF0IGFuIGV4aXN0aW5nIGF1dGhvcml6 ZXIgaXMgdXAgdG8gZGF0ZSAqLwogCWludCAoKnVwZGF0ZV9hdXRob3JpemVyKShzdHJ1Y3QgY2Vw aF9hdXRoX2NsaWVudCAqYWMsIGludCBwZWVyX3R5cGUsCiAJCQkJIHN0cnVjdCBjZXBoX2F1dGhf aGFuZHNoYWtlICphdXRoKTsKKwlpbnQgKCphZGRfYXV0aG9yaXplcl9jaGFsbGVuZ2UpKHN0cnVj dCBjZXBoX2F1dGhfY2xpZW50ICphYywKKwkJCQkJc3RydWN0IGNlcGhfYXV0aG9yaXplciAqYSwK KwkJCQkJdm9pZCAqY2hhbGxlbmdlX2J1ZiwKKwkJCQkJaW50IGNoYWxsZW5nZV9idWZfbGVuKTsK IAlpbnQgKCp2ZXJpZnlfYXV0aG9yaXplcl9yZXBseSkoc3RydWN0IGNlcGhfYXV0aF9jbGllbnQg KmFjLAogCQkJCSAgICAgICBzdHJ1Y3QgY2VwaF9hdXRob3JpemVyICphKTsKIAl2b2lkICgqaW52 YWxpZGF0ZV9hdXRob3JpemVyKShzdHJ1Y3QgY2VwaF9hdXRoX2NsaWVudCAqYWMsCkBAIC0xMTgs NiArMTIyLDEwIEBAIHZvaWQgY2VwaF9hdXRoX2Rlc3Ryb3lfYXV0aG9yaXplcihzdHJ1Y3QgY2Vw aF9hdXRob3JpemVyICphKTsKIGV4dGVybiBpbnQgY2VwaF9hdXRoX3VwZGF0ZV9hdXRob3JpemVy KHN0cnVjdCBjZXBoX2F1dGhfY2xpZW50ICphYywKIAkJCQkgICAgICAgaW50IHBlZXJfdHlwZSwK IAkJCQkgICAgICAgc3RydWN0IGNlcGhfYXV0aF9oYW5kc2hha2UgKmEpOworaW50IGNlcGhfYXV0 aF9hZGRfYXV0aG9yaXplcl9jaGFsbGVuZ2Uoc3RydWN0IGNlcGhfYXV0aF9jbGllbnQgKmFjLAor CQkJCSAgICAgICBzdHJ1Y3QgY2VwaF9hdXRob3JpemVyICphLAorCQkJCSAgICAgICB2b2lkICpj aGFsbGVuZ2VfYnVmLAorCQkJCSAgICAgICBpbnQgY2hhbGxlbmdlX2J1Zl9sZW4pOwogZXh0ZXJu IGludCBjZXBoX2F1dGhfdmVyaWZ5X2F1dGhvcml6ZXJfcmVwbHkoc3RydWN0IGNlcGhfYXV0aF9j bGllbnQgKmFjLAogCQkJCQkgICAgIHN0cnVjdCBjZXBoX2F1dGhvcml6ZXIgKmEpOwogZXh0ZXJu IHZvaWQgY2VwaF9hdXRoX2ludmFsaWRhdGVfYXV0aG9yaXplcihzdHJ1Y3QgY2VwaF9hdXRoX2Ns aWVudCAqYWMsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NlcGgvbWVzc2VuZ2VyLmggYi9p bmNsdWRlL2xpbnV4L2NlcGgvbWVzc2VuZ2VyLmgKaW5kZXggOTA1NjA3N2MwMjNmLi4xOGZiZTkx MGVkNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2VwaC9tZXNzZW5nZXIuaAorKysgYi9p bmNsdWRlL2xpbnV4L2NlcGgvbWVzc2VuZ2VyLmgKQEAgLTMxLDYgKzMxLDkgQEAgc3RydWN0IGNl cGhfY29ubmVjdGlvbl9vcGVyYXRpb25zIHsKIAlzdHJ1Y3QgY2VwaF9hdXRoX2hhbmRzaGFrZSAq KCpnZXRfYXV0aG9yaXplcikgKAogCQkJCXN0cnVjdCBjZXBoX2Nvbm5lY3Rpb24gKmNvbiwKIAkJ CSAgICAgICBpbnQgKnByb3RvLCBpbnQgZm9yY2VfbmV3KTsKKwlpbnQgKCphZGRfYXV0aG9yaXpl cl9jaGFsbGVuZ2UpKHN0cnVjdCBjZXBoX2Nvbm5lY3Rpb24gKmNvbiwKKwkJCQkJdm9pZCAqY2hh bGxlbmdlX2J1ZiwKKwkJCQkJaW50IGNoYWxsZW5nZV9idWZfbGVuKTsKIAlpbnQgKCp2ZXJpZnlf YXV0aG9yaXplcl9yZXBseSkgKHN0cnVjdCBjZXBoX2Nvbm5lY3Rpb24gKmNvbik7CiAJaW50ICgq aW52YWxpZGF0ZV9hdXRob3JpemVyKShzdHJ1Y3QgY2VwaF9jb25uZWN0aW9uICpjb24pOwogCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NlcGgvbXNnci5oIGIvaW5jbHVkZS9saW51eC9jZXBo L21zZ3IuaAppbmRleCA3M2FlMmE5MjY1NDguLjllNTBhZWRlNDZjOCAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9jZXBoL21zZ3IuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NlcGgvbXNnci5oCkBA IC05MSw3ICs5MSw3IEBAIHN0cnVjdCBjZXBoX2VudGl0eV9pbnN0IHsKICNkZWZpbmUgQ0VQSF9N U0dSX1RBR19TRVEgICAgICAgICAgIDEzIC8qIDY0LWJpdCBpbnQgZm9sbG93cyB3aXRoIHNlZW4g c2VxIG51bWJlciAqLwogI2RlZmluZSBDRVBIX01TR1JfVEFHX0tFRVBBTElWRTIgICAgMTQgLyog a2VlcGFsaXZlMiBieXRlICsgY2VwaF90aW1lc3BlYyAqLwogI2RlZmluZSBDRVBIX01TR1JfVEFH X0tFRVBBTElWRTJfQUNLIDE1IC8qIGtlZXBhbGl2ZTIgcmVwbHkgKi8KLQorI2RlZmluZSBDRVBI X01TR1JfVEFHX0NIQUxMRU5HRV9BVVRIT1JJWkVSIDE2ICAvKiBjZXBoeCB2MiBkb2luZyBzZXJ2 ZXIgY2hhbGxlbmdlICovCiAKIC8qCiAgKiBjb25uZWN0aW9uIG5lZ290aWF0aW9uCmRpZmYgLS1n aXQgYS9uZXQvY2VwaC9hdXRoLmMgYi9uZXQvY2VwaC9hdXRoLmMKaW5kZXggZGJkZTJiM2MzYzE1 Li5mYmVlZTA2OGVhMTQgMTAwNjQ0Ci0tLSBhL25ldC9jZXBoL2F1dGguYworKysgYi9uZXQvY2Vw aC9hdXRoLmMKQEAgLTMxNSw2ICszMTUsMjIgQEAgaW50IGNlcGhfYXV0aF91cGRhdGVfYXV0aG9y aXplcihzdHJ1Y3QgY2VwaF9hdXRoX2NsaWVudCAqYWMsCiB9CiBFWFBPUlRfU1lNQk9MKGNlcGhf YXV0aF91cGRhdGVfYXV0aG9yaXplcik7CiAKK2ludCBjZXBoX2F1dGhfYWRkX2F1dGhvcml6ZXJf Y2hhbGxlbmdlKHN0cnVjdCBjZXBoX2F1dGhfY2xpZW50ICphYywKKwkJCQkgICAgICAgc3RydWN0 IGNlcGhfYXV0aG9yaXplciAqYSwKKwkJCQkgICAgICAgdm9pZCAqY2hhbGxlbmdlX2J1ZiwKKwkJ CQkgICAgICAgaW50IGNoYWxsZW5nZV9idWZfbGVuKQoreworCWludCByZXQgPSAwOworCisJbXV0 ZXhfbG9jaygmYWMtPm11dGV4KTsKKwlpZiAoYWMtPm9wcyAmJiBhYy0+b3BzLT5hZGRfYXV0aG9y aXplcl9jaGFsbGVuZ2UpCisJCXJldCA9IGFjLT5vcHMtPmFkZF9hdXRob3JpemVyX2NoYWxsZW5n ZShhYywgYSwgY2hhbGxlbmdlX2J1ZiwKKwkJCQkJCQljaGFsbGVuZ2VfYnVmX2xlbik7CisJbXV0 ZXhfdW5sb2NrKCZhYy0+bXV0ZXgpOworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MKGNl cGhfYXV0aF9hZGRfYXV0aG9yaXplcl9jaGFsbGVuZ2UpOworCiBpbnQgY2VwaF9hdXRoX3Zlcmlm eV9hdXRob3JpemVyX3JlcGx5KHN0cnVjdCBjZXBoX2F1dGhfY2xpZW50ICphYywKIAkJCQkgICAg ICBzdHJ1Y3QgY2VwaF9hdXRob3JpemVyICphKQogewpkaWZmIC0tZ2l0IGEvbmV0L2NlcGgvYXV0 aF94LmMgYi9uZXQvY2VwaC9hdXRoX3guYwppbmRleCA3MjI3OTFmNDViMmEuLmNlMjhiYjA3ZDhm ZCAxMDA2NDQKLS0tIGEvbmV0L2NlcGgvYXV0aF94LmMKKysrIGIvbmV0L2NlcGgvYXV0aF94LmMK QEAgLTI5NSw3ICsyOTUsOCBAQCBzdGF0aWMgaW50IGNlcGhfeF9wcm9jX3RpY2tldF9yZXBseShz dHJ1Y3QgY2VwaF9hdXRoX2NsaWVudCAqYWMsCiAgKiBhdXRob3JpemVyLiAgVGhlIGZpcnN0IHBh cnQgKGNlcGhfeF9hdXRob3JpemVfYSkgc2hvdWxkIGFscmVhZHkgYmUKICAqIGVuY29kZWQuCiAg Ki8KLXN0YXRpYyBpbnQgZW5jcnlwdF9hdXRob3JpemVyKHN0cnVjdCBjZXBoX3hfYXV0aG9yaXpl ciAqYXUpCitzdGF0aWMgaW50IGVuY3J5cHRfYXV0aG9yaXplcihzdHJ1Y3QgY2VwaF94X2F1dGhv cml6ZXIgKmF1LAorCQkJICAgICAgdTY0ICpzZXJ2ZXJfY2hhbGxlbmdlKQogewogCXN0cnVjdCBj ZXBoX3hfYXV0aG9yaXplX2EgKm1zZ19hOwogCXN0cnVjdCBjZXBoX3hfYXV0aG9yaXplX2IgKm1z Z19iOwpAQCAtMzA4LDE2ICszMDksMjggQEAgc3RhdGljIGludCBlbmNyeXB0X2F1dGhvcml6ZXIo c3RydWN0IGNlcGhfeF9hdXRob3JpemVyICphdSkKIAllbmQgPSBhdS0+YnVmLT52ZWMuaW92X2Jh c2UgKyBhdS0+YnVmLT52ZWMuaW92X2xlbjsKIAogCW1zZ19iID0gcCArIGNlcGhfeF9lbmNyeXB0 X29mZnNldCgpOwotCW1zZ19iLT5zdHJ1Y3RfdiA9IDE7CisJbXNnX2ItPnN0cnVjdF92ID0gMjsK IAltc2dfYi0+bm9uY2UgPSBjcHVfdG9fbGU2NChhdS0+bm9uY2UpOworCWlmIChzZXJ2ZXJfY2hh bGxlbmdlKSB7CisJCW1zZ19iLT5oYXZlX2NoYWxsZW5nZSA9IDE7CisJCW1zZ19iLT5zZXJ2ZXJf Y2hhbGxlbmdlX3BsdXNfb25lID0KKwkJICAgIGNwdV90b19sZTY0KCpzZXJ2ZXJfY2hhbGxlbmdl ICsgMSk7CisJfSBlbHNlIHsKKwkJbXNnX2ItPmhhdmVfY2hhbGxlbmdlID0gMDsKKwkJbXNnX2It PnNlcnZlcl9jaGFsbGVuZ2VfcGx1c19vbmUgPSAwOworCX0KIAogCXJldCA9IGNlcGhfeF9lbmNy eXB0KCZhdS0+c2Vzc2lvbl9rZXksIHAsIGVuZCAtIHAsIHNpemVvZigqbXNnX2IpKTsKIAlpZiAo cmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCXAgKz0gcmV0OwotCVdBUk5fT04ocCA+IGVuZCk7 Ci0JYXUtPmJ1Zi0+dmVjLmlvdl9sZW4gPSBwIC0gYXUtPmJ1Zi0+dmVjLmlvdl9iYXNlOworCWlm IChzZXJ2ZXJfY2hhbGxlbmdlKSB7CisJCVdBUk5fT04ocCAhPSBlbmQpOworCX0gZWxzZSB7CisJ CVdBUk5fT04ocCA+IGVuZCk7CisJCWF1LT5idWYtPnZlYy5pb3ZfbGVuID0gcCAtIGF1LT5idWYt PnZlYy5pb3ZfYmFzZTsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTM4Miw3ICszOTUsNyBAQCBz dGF0aWMgaW50IGNlcGhfeF9idWlsZF9hdXRob3JpemVyKHN0cnVjdCBjZXBoX2F1dGhfY2xpZW50 ICphYywKIAkgICAgIGxlNjRfdG9fY3B1KG1zZ19hLT50aWNrZXRfYmxvYi5zZWNyZXRfaWQpKTsK IAogCWdldF9yYW5kb21fYnl0ZXMoJmF1LT5ub25jZSwgc2l6ZW9mKGF1LT5ub25jZSkpOwotCXJl dCA9IGVuY3J5cHRfYXV0aG9yaXplcihhdSk7CisJcmV0ID0gZW5jcnlwdF9hdXRob3JpemVyKGF1 LCBOVUxMKTsKIAlpZiAocmV0KSB7CiAJCXByX2VycigiZmFpbGVkIHRvIGVuY3J5cHQgYXV0aG9y aXplcjogJWQiLCByZXQpOwogCQlnb3RvIG91dF9hdTsKQEAgLTY2NCw2ICs2NzcsNTQgQEAgc3Rh dGljIGludCBjZXBoX3hfdXBkYXRlX2F1dGhvcml6ZXIoCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRp YyBpbnQgZGVjcnlwdF9hdXRob3JpemVfY2hhbGxlbmdlKHN0cnVjdCBjZXBoX3hfYXV0aG9yaXpl ciAqYXUsCisJCQkJICAgICAgIHZvaWQgKmNoYWxsZW5nZV9idWYsCisJCQkJICAgICAgIGludCBj aGFsbGVuZ2VfYnVmX2xlbiwKKwkJCQkgICAgICAgdTY0ICpzZXJ2ZXJfY2hhbGxlbmdlKQorewor CXN0cnVjdCBjZXBoX3hfYXV0aG9yaXplX2NoYWxsZW5nZSAqY2ggPQorCSAgICBjaGFsbGVuZ2Vf YnVmICsgc2l6ZW9mKHN0cnVjdCBjZXBoX3hfZW5jcnlwdF9oZWFkZXIpOworCWludCByZXQ7CisK KwkvKiBubyBsZWFkaW5nIGxlbiAqLworCXJldCA9IF9fY2VwaF94X2RlY3J5cHQoJmF1LT5zZXNz aW9uX2tleSwgY2hhbGxlbmdlX2J1ZiwKKwkJCSAgICAgICBjaGFsbGVuZ2VfYnVmX2xlbik7CisJ aWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisJaWYgKHJldCA8IHNpemVvZigqY2gpKSB7CisJ CXByX2VycigiYmFkIHNpemUgJWQgZm9yIGNlcGhfeF9hdXRob3JpemVfY2hhbGxlbmdlXG4iLCBy ZXQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkqc2VydmVyX2NoYWxsZW5nZSA9IGxlNjRf dG9fY3B1KGNoLT5zZXJ2ZXJfY2hhbGxlbmdlKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBjZXBoX3hfYWRkX2F1dGhvcml6ZXJfY2hhbGxlbmdlKHN0cnVjdCBjZXBoX2F1dGhfY2xpZW50 ICphYywKKwkJCQkJICAgc3RydWN0IGNlcGhfYXV0aG9yaXplciAqYSwKKwkJCQkJICAgdm9pZCAq Y2hhbGxlbmdlX2J1ZiwKKwkJCQkJICAgaW50IGNoYWxsZW5nZV9idWZfbGVuKQoreworCXN0cnVj dCBjZXBoX3hfYXV0aG9yaXplciAqYXUgPSAodm9pZCAqKWE7CisJdTY0IHNlcnZlcl9jaGFsbGVu Z2U7CisJaW50IHJldDsKKworCXJldCA9IGRlY3J5cHRfYXV0aG9yaXplX2NoYWxsZW5nZShhdSwg Y2hhbGxlbmdlX2J1ZiwgY2hhbGxlbmdlX2J1Zl9sZW4sCisJCQkJCSAgJnNlcnZlcl9jaGFsbGVu Z2UpOworCWlmIChyZXQpIHsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gZGVjcnlwdCBhdXRob3JpemUg Y2hhbGxlbmdlOiAlZCIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gZW5jcnlw dF9hdXRob3JpemVyKGF1LCAmc2VydmVyX2NoYWxsZW5nZSk7CisJaWYgKHJldCkgeworCQlwcl9l cnIoImZhaWxlZCB0byBlbmNyeXB0IGF1dGhvcml6ZXIgdy8gY2hhbGxlbmdlOiAlZCIsIHJldCk7 CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgY2VwaF94 X3ZlcmlmeV9hdXRob3JpemVyX3JlcGx5KHN0cnVjdCBjZXBoX2F1dGhfY2xpZW50ICphYywKIAkJ CQkJICBzdHJ1Y3QgY2VwaF9hdXRob3JpemVyICphKQogewpAQCAtODE2LDYgKzg3Nyw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgY2VwaF9hdXRoX2NsaWVudF9vcHMgY2VwaF94X29wcyA9IHsKIAku aGFuZGxlX3JlcGx5ID0gY2VwaF94X2hhbmRsZV9yZXBseSwKIAkuY3JlYXRlX2F1dGhvcml6ZXIg PSBjZXBoX3hfY3JlYXRlX2F1dGhvcml6ZXIsCiAJLnVwZGF0ZV9hdXRob3JpemVyID0gY2VwaF94 X3VwZGF0ZV9hdXRob3JpemVyLAorCS5hZGRfYXV0aG9yaXplcl9jaGFsbGVuZ2UgPSBjZXBoX3hf YWRkX2F1dGhvcml6ZXJfY2hhbGxlbmdlLAogCS52ZXJpZnlfYXV0aG9yaXplcl9yZXBseSA9IGNl cGhfeF92ZXJpZnlfYXV0aG9yaXplcl9yZXBseSwKIAkuaW52YWxpZGF0ZV9hdXRob3JpemVyID0g Y2VwaF94X2ludmFsaWRhdGVfYXV0aG9yaXplciwKIAkucmVzZXQgPSAgY2VwaF94X3Jlc2V0LApk aWZmIC0tZ2l0IGEvbmV0L2NlcGgvYXV0aF94X3Byb3RvY29sLmggYi9uZXQvY2VwaC9hdXRoX3hf cHJvdG9jb2wuaAppbmRleCAzMmMxM2Q3NjNiOWEuLjI0YjBiNzQ1NjRkMCAxMDA2NDQKLS0tIGEv bmV0L2NlcGgvYXV0aF94X3Byb3RvY29sLmgKKysrIGIvbmV0L2NlcGgvYXV0aF94X3Byb3RvY29s LmgKQEAgLTcwLDYgKzcwLDEzIEBAIHN0cnVjdCBjZXBoX3hfYXV0aG9yaXplX2Egewogc3RydWN0 IGNlcGhfeF9hdXRob3JpemVfYiB7CiAJX191OCBzdHJ1Y3RfdjsKIAlfX2xlNjQgbm9uY2U7CisJ X191OCBoYXZlX2NoYWxsZW5nZTsKKwlfX2xlNjQgc2VydmVyX2NoYWxsZW5nZV9wbHVzX29uZTsK K30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCitzdHJ1Y3QgY2VwaF94X2F1dGhvcml6ZV9j aGFsbGVuZ2UgeworCV9fdTggc3RydWN0X3Y7CisJX19sZTY0IHNlcnZlcl9jaGFsbGVuZ2U7CiB9 IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIAogc3RydWN0IGNlcGhfeF9hdXRob3JpemVfcmVw bHkgewpkaWZmIC0tZ2l0IGEvbmV0L2NlcGgvbWVzc2VuZ2VyLmMgYi9uZXQvY2VwaC9tZXNzZW5n ZXIuYwppbmRleCAxYjMxZDIwMzgxNzguLjZmNTUyMjJhZTNlNCAxMDA2NDQKLS0tIGEvbmV0L2Nl cGgvbWVzc2VuZ2VyLmMKKysrIGIvbmV0L2NlcGgvbWVzc2VuZ2VyLmMKQEAgLTIwNDYsOSArMjA0 NiwyNCBAQCBzdGF0aWMgaW50IHByb2Nlc3NfY29ubmVjdChzdHJ1Y3QgY2VwaF9jb25uZWN0aW9u ICpjb24pCiAJaWYgKGNvbi0+YXV0aCkgewogCQkvKgogCQkgKiBBbnkgY29ubmVjdGlvbiB0aGF0 IGRlZmluZXMgLT5nZXRfYXV0aG9yaXplcigpCi0JCSAqIHNob3VsZCBhbHNvIGRlZmluZSAtPnZl cmlmeV9hdXRob3JpemVyX3JlcGx5KCkuCisJCSAqIHNob3VsZCBhbHNvIGRlZmluZSAtPmFkZF9h dXRob3JpemVyX2NoYWxsZW5nZSgpIGFuZAorCQkgKiAtPnZlcmlmeV9hdXRob3JpemVyX3JlcGx5 KCkuCisJCSAqCiAJCSAqIFNlZSBnZXRfY29ubmVjdF9hdXRob3JpemVyKCkuCiAJCSAqLworCQlp ZiAoY29uLT5pbl9yZXBseS50YWcgPT0gQ0VQSF9NU0dSX1RBR19DSEFMTEVOR0VfQVVUSE9SSVpF UikgeworCQkJcmV0ID0gY29uLT5vcHMtPmFkZF9hdXRob3JpemVyX2NoYWxsZW5nZSgKKwkJCQkg ICAgY29uLCBjb24tPmF1dGgtPmF1dGhvcml6ZXJfcmVwbHlfYnVmLAorCQkJCSAgICBsZTMyX3Rv X2NwdShjb24tPmluX3JlcGx5LmF1dGhvcml6ZXJfbGVuKSk7CisJCQlpZiAocmV0IDwgMCkKKwkJ CQlyZXR1cm4gcmV0OworCisJCQljb25fb3V0X2t2ZWNfcmVzZXQoY29uKTsKKwkJCV9fcHJlcGFy ZV93cml0ZV9jb25uZWN0KGNvbik7CisJCQlwcmVwYXJlX3JlYWRfY29ubmVjdChjb24pOworCQkJ cmV0dXJuIDA7CisJCX0KKwogCQlyZXQgPSBjb24tPm9wcy0+dmVyaWZ5X2F1dGhvcml6ZXJfcmVw bHkoY29uKTsKIAkJaWYgKHJldCA8IDApIHsKIAkJCWNvbi0+ZXJyb3JfbXNnID0gImJhZCBhdXRo b3JpemUgcmVwbHkiOwpkaWZmIC0tZ2l0IGEvbmV0L2NlcGgvb3NkX2NsaWVudC5jIGIvbmV0L2Nl cGgvb3NkX2NsaWVudC5jCmluZGV4IDI4MTRkYmE1OTAyZC4uNTNlYTJkNDg4OTZjIDEwMDY0NAot LS0gYS9uZXQvY2VwaC9vc2RfY2xpZW50LmMKKysrIGIvbmV0L2NlcGgvb3NkX2NsaWVudC5jCkBA IC01MjkyLDYgKzUyOTIsMTYgQEAgc3RhdGljIHN0cnVjdCBjZXBoX2F1dGhfaGFuZHNoYWtlICpn ZXRfYXV0aG9yaXplcihzdHJ1Y3QgY2VwaF9jb25uZWN0aW9uICpjb24sCiAJcmV0dXJuIGF1dGg7 CiB9CiAKK3N0YXRpYyBpbnQgYWRkX2F1dGhvcml6ZXJfY2hhbGxlbmdlKHN0cnVjdCBjZXBoX2Nv bm5lY3Rpb24gKmNvbiwKKwkJCQkgICAgdm9pZCAqY2hhbGxlbmdlX2J1ZiwgaW50IGNoYWxsZW5n ZV9idWZfbGVuKQoreworCXN0cnVjdCBjZXBoX29zZCAqbyA9IGNvbi0+cHJpdmF0ZTsKKwlzdHJ1 Y3QgY2VwaF9vc2RfY2xpZW50ICpvc2RjID0gby0+b19vc2RjOworCXN0cnVjdCBjZXBoX2F1dGhf Y2xpZW50ICphYyA9IG9zZGMtPmNsaWVudC0+bW9uYy5hdXRoOworCisJcmV0dXJuIGNlcGhfYXV0 aF9hZGRfYXV0aG9yaXplcl9jaGFsbGVuZ2UoYWMsIG8tPm9fYXV0aC5hdXRob3JpemVyLAorCQkJ CQkgICAgY2hhbGxlbmdlX2J1ZiwgY2hhbGxlbmdlX2J1Zl9sZW4pOworfQogCiBzdGF0aWMgaW50 IHZlcmlmeV9hdXRob3JpemVyX3JlcGx5KHN0cnVjdCBjZXBoX2Nvbm5lY3Rpb24gKmNvbikKIHsK QEAgLTUzNDEsNiArNTM1MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2VwaF9jb25uZWN0aW9u X29wZXJhdGlvbnMgb3NkX2Nvbl9vcHMgPSB7CiAJLnB1dCA9IHB1dF9vc2RfY29uLAogCS5kaXNw YXRjaCA9IGRpc3BhdGNoLAogCS5nZXRfYXV0aG9yaXplciA9IGdldF9hdXRob3JpemVyLAorCS5h ZGRfYXV0aG9yaXplcl9jaGFsbGVuZ2UgPSBhZGRfYXV0aG9yaXplcl9jaGFsbGVuZ2UsCiAJLnZl cmlmeV9hdXRob3JpemVyX3JlcGx5ID0gdmVyaWZ5X2F1dGhvcml6ZXJfcmVwbHksCiAJLmludmFs aWRhdGVfYXV0aG9yaXplciA9IGludmFsaWRhdGVfYXV0aG9yaXplciwKIAkuYWxsb2NfbXNnID0g YWxsb2NfbXNnLAotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAg ICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVr LyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdk b20KCgpGcm9tIDJmMGNiNmIwMDBhZTBmMDI4YTFiZjRiYTcxNmZkYzU3Y2ExMzNmNzYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IElseWEgRHJ5b21vdiA8aWRyeW9tb3ZAZ21haWwuY29t PgpEYXRlOiBGcmksIDI3IEp1bCAyMDE4IDE5OjI1OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAw Ni80Nl0gbGliY2VwaDogaW1wbGVtZW50IENFUEhYX1YyIGNhbGN1bGF0aW9uIG1vZGUKCmNvbW1p dCBjYzI1NWM3NmM3MGY3YTg3ZDk3OTM5NjIxZWFlMDRiNjAwZDlmNGExIHVwc3RyZWFtLgoKRGVy aXZlIHRoZSBzaWduYXR1cmUgZnJvbSB0aGUgZW50aXJlIGJ1ZmZlciAoYm90aCBBRVMgY2lwaGVy IGJsb2NrcykKaW5zdGVhZCBvZiB1c2luZyBqdXN0IHRoZSBmaXJzdCBoYWxmIG9mIHRoZSBmaXJz dCBibG9jaywgbGVhdmluZyBvdXQKZGF0YV9jcmMgZW50aXJlbHkuCgpUaGlzIGFkZHJlc3NlcyBD VkUtMjAxOC0xMTI5LgoKTGluazogaHR0cDovL3RyYWNrZXIuY2VwaC5jb20vaXNzdWVzLzI0ODM3 ClNpZ25lZC1vZmYtYnk6IElseWEgRHJ5b21vdiA8aWRyeW9tb3ZAZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogU2FnZSBXZWlsIDxzYWdlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRj aGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGluY2x1ZGUvbGludXgv Y2VwaC9jZXBoX2ZlYXR1cmVzLmggfCAgNyArKy0tCiBuZXQvY2VwaC9hdXRoX3guYyAgICAgICAg ICAgICAgICAgIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDIg ZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9jZXBoL2NlcGhfZmVhdHVyZXMuaCBiL2luY2x1ZGUvbGludXgv Y2VwaC9jZXBoX2ZlYXR1cmVzLmgKaW5kZXggNTkwNDJkNWFjNTIwLi43MGY0MmVlZjgxM2IgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2VwaC9jZXBoX2ZlYXR1cmVzLmgKKysrIGIvaW5jbHVk ZS9saW51eC9jZXBoL2NlcGhfZmVhdHVyZXMuaApAQCAtMTY1LDkgKzE2NSw5IEBAIERFRklORV9D RVBIX0ZFQVRVUkUoNTgsIDEsIEZTX0ZJTEVfTEFZT1VUX1YyKSAvLyBvdmVybGFwCiBERUZJTkVf Q0VQSF9GRUFUVVJFKDU5LCAxLCBGU19CVElNRSkKIERFRklORV9DRVBIX0ZFQVRVUkUoNTksIDEs IEZTX0NIQU5HRV9BVFRSKSAvLyBvdmVybGFwCiBERUZJTkVfQ0VQSF9GRUFUVVJFKDU5LCAxLCBN U0dfQUREUjIpIC8vIG92ZXJsYXAKLURFRklORV9DRVBIX0ZFQVRVUkUoNjAsIDEsIEJMS0lOX1RS QUNJTkcpICAvLyAqZG8gbm90IHNoYXJlIHRoaXMgYml0KgorREVGSU5FX0NFUEhfRkVBVFVSRSg2 MCwgMSwgT1NEX1JFQ09WRVJZX0RFTEVURVMpIC8vICpkbyBub3Qgc2hhcmUgdGhpcyBiaXQqCitE RUZJTkVfQ0VQSF9GRUFUVVJFKDYxLCAxLCBDRVBIWF9WMikgICAgICAgICAgICAgLy8gKmRvIG5v dCBzaGFyZSB0aGlzIGJpdCoKIAotREVGSU5FX0NFUEhfRkVBVFVSRSg2MSwgMSwgUkVTRVJWRUQy KSAgICAgICAgICAvLyB1bnVzZWQsIGJ1dCBzbG93IGRvd24hCiBERUZJTkVfQ0VQSF9GRUFUVVJF KDYyLCAxLCBSRVNFUlZFRCkgICAgICAgICAgIC8vIGRvIG5vdCB1c2U7IHVzZWQgYXMgYSBzZW50 aW5hbAogREVGSU5FX0NFUEhfRkVBVFVSRV9ERVBSRUNBVEVEKDYzLCAxLCBSRVNFUlZFRF9CUk9L RU4sIExVTUlOT1VTKSAvLyBjbGllbnQtZmFjaW5nCiAKQEAgLTIwOSw3ICsyMDksOCBAQCBERUZJ TkVfQ0VQSF9GRUFUVVJFX0RFUFJFQ0FURUQoNjMsIDEsIFJFU0VSVkVEX0JST0tFTiwgTFVNSU5P VVMpIC8vIGNsaWVudC1mYWNpbgogCSBDRVBIX0ZFQVRVUkVfU0VSVkVSX0pFV0VMIHwJCVwKIAkg Q0VQSF9GRUFUVVJFX01PTl9TVEFURUZVTF9TVUIgfAlcCiAJIENFUEhfRkVBVFVSRV9DUlVTSF9U VU5BQkxFUzUgfAkJXAotCSBDRVBIX0ZFQVRVUkVfTkVXX09TRE9QUkVQTFlfRU5DT0RJTkcpCisJ IENFUEhfRkVBVFVSRV9ORVdfT1NET1BSRVBMWV9FTkNPRElORyB8CVwKKwkgQ0VQSF9GRUFUVVJF X0NFUEhYX1YyKQogCiAjZGVmaW5lIENFUEhfRkVBVFVSRVNfUkVRVUlSRURfREVGQVVMVCAgIFwK IAkoQ0VQSF9GRUFUVVJFX05PU1JDQUREUiB8CSBcCmRpZmYgLS1naXQgYS9uZXQvY2VwaC9hdXRo X3guYyBiL25ldC9jZXBoL2F1dGhfeC5jCmluZGV4IGNlMjhiYjA3ZDhmZC4uMTBlYjc1OWJiY2I0 IDEwMDY0NAotLS0gYS9uZXQvY2VwaC9hdXRoX3guYworKysgYi9uZXQvY2VwaC9hdXRoX3guYwpA QCAtOSw2ICs5LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2NlcGgvZGVjb2RlLmg+CiAjaW5jbHVk ZSA8bGludXgvY2VwaC9hdXRoLmg+CisjaW5jbHVkZSA8bGludXgvY2VwaC9jZXBoX2ZlYXR1cmVz Lmg+CiAjaW5jbHVkZSA8bGludXgvY2VwaC9saWJjZXBoLmg+CiAjaW5jbHVkZSA8bGludXgvY2Vw aC9tZXNzZW5nZXIuaD4KIApAQCAtODAzLDI2ICs4MDQsNjQgQEAgc3RhdGljIGludCBjYWxjX3Np Z25hdHVyZShzdHJ1Y3QgY2VwaF94X2F1dGhvcml6ZXIgKmF1LCBzdHJ1Y3QgY2VwaF9tc2cgKm1z ZywKIAkJCSAgX19sZTY0ICpwc2lnKQogewogCXZvaWQgKmVuY19idWYgPSBhdS0+ZW5jX2J1ZjsK LQlzdHJ1Y3QgewotCQlfX2xlMzIgbGVuOwotCQlfX2xlMzIgaGVhZGVyX2NyYzsKLQkJX19sZTMy IGZyb250X2NyYzsKLQkJX19sZTMyIG1pZGRsZV9jcmM7Ci0JCV9fbGUzMiBkYXRhX2NyYzsKLQl9 IF9fcGFja2VkICpzaWdibG9jayA9IGVuY19idWYgKyBjZXBoX3hfZW5jcnlwdF9vZmZzZXQoKTsK IAlpbnQgcmV0OwogCi0Jc2lnYmxvY2stPmxlbiA9IGNwdV90b19sZTMyKDQqc2l6ZW9mKHUzMikp OwotCXNpZ2Jsb2NrLT5oZWFkZXJfY3JjID0gbXNnLT5oZHIuY3JjOwotCXNpZ2Jsb2NrLT5mcm9u dF9jcmMgPSBtc2ctPmZvb3Rlci5mcm9udF9jcmM7Ci0Jc2lnYmxvY2stPm1pZGRsZV9jcmMgPSBt c2ctPmZvb3Rlci5taWRkbGVfY3JjOwotCXNpZ2Jsb2NrLT5kYXRhX2NyYyA9ICBtc2ctPmZvb3Rl ci5kYXRhX2NyYzsKLQlyZXQgPSBjZXBoX3hfZW5jcnlwdCgmYXUtPnNlc3Npb25fa2V5LCBlbmNf YnVmLCBDRVBIWF9BVV9FTkNfQlVGX0xFTiwKLQkJCSAgICAgc2l6ZW9mKCpzaWdibG9jaykpOwot CWlmIChyZXQgPCAwKQotCQlyZXR1cm4gcmV0OworCWlmICghQ0VQSF9IQVZFX0ZFQVRVUkUobXNn LT5jb24tPnBlZXJfZmVhdHVyZXMsIENFUEhYX1YyKSkgeworCQlzdHJ1Y3QgeworCQkJX19sZTMy IGxlbjsKKwkJCV9fbGUzMiBoZWFkZXJfY3JjOworCQkJX19sZTMyIGZyb250X2NyYzsKKwkJCV9f bGUzMiBtaWRkbGVfY3JjOworCQkJX19sZTMyIGRhdGFfY3JjOworCQl9IF9fcGFja2VkICpzaWdi bG9jayA9IGVuY19idWYgKyBjZXBoX3hfZW5jcnlwdF9vZmZzZXQoKTsKKworCQlzaWdibG9jay0+ bGVuID0gY3B1X3RvX2xlMzIoNCpzaXplb2YodTMyKSk7CisJCXNpZ2Jsb2NrLT5oZWFkZXJfY3Jj ID0gbXNnLT5oZHIuY3JjOworCQlzaWdibG9jay0+ZnJvbnRfY3JjID0gbXNnLT5mb290ZXIuZnJv bnRfY3JjOworCQlzaWdibG9jay0+bWlkZGxlX2NyYyA9IG1zZy0+Zm9vdGVyLm1pZGRsZV9jcmM7 CisJCXNpZ2Jsb2NrLT5kYXRhX2NyYyA9ICBtc2ctPmZvb3Rlci5kYXRhX2NyYzsKKworCQlyZXQg PSBjZXBoX3hfZW5jcnlwdCgmYXUtPnNlc3Npb25fa2V5LCBlbmNfYnVmLAorCQkJCSAgICAgQ0VQ SFhfQVVfRU5DX0JVRl9MRU4sIHNpemVvZigqc2lnYmxvY2spKTsKKwkJaWYgKHJldCA8IDApCisJ CQlyZXR1cm4gcmV0OworCisJCSpwc2lnID0gKihfX2xlNjQgKikoZW5jX2J1ZiArIHNpemVvZih1 MzIpKTsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgeworCQkJX19sZTMyIGhlYWRlcl9jcmM7CisJCQlf X2xlMzIgZnJvbnRfY3JjOworCQkJX19sZTMyIGZyb250X2xlbjsKKwkJCV9fbGUzMiBtaWRkbGVf Y3JjOworCQkJX19sZTMyIG1pZGRsZV9sZW47CisJCQlfX2xlMzIgZGF0YV9jcmM7CisJCQlfX2xl MzIgZGF0YV9sZW47CisJCQlfX2xlMzIgc2VxX2xvd2VyX3dvcmQ7CisJCX0gX19wYWNrZWQgKnNp Z2Jsb2NrID0gZW5jX2J1ZjsKKwkJc3RydWN0IHsKKwkJCV9fbGU2NCBhLCBiLCBjLCBkOworCQl9 IF9fcGFja2VkICpwZW5jID0gZW5jX2J1ZjsKKwkJaW50IGNpcGhlcnRleHRfbGVuOworCisJCXNp Z2Jsb2NrLT5oZWFkZXJfY3JjID0gbXNnLT5oZHIuY3JjOworCQlzaWdibG9jay0+ZnJvbnRfY3Jj ID0gbXNnLT5mb290ZXIuZnJvbnRfY3JjOworCQlzaWdibG9jay0+ZnJvbnRfbGVuID0gbXNnLT5o ZHIuZnJvbnRfbGVuOworCQlzaWdibG9jay0+bWlkZGxlX2NyYyA9IG1zZy0+Zm9vdGVyLm1pZGRs ZV9jcmM7CisJCXNpZ2Jsb2NrLT5taWRkbGVfbGVuID0gbXNnLT5oZHIubWlkZGxlX2xlbjsKKwkJ c2lnYmxvY2stPmRhdGFfY3JjID0gIG1zZy0+Zm9vdGVyLmRhdGFfY3JjOworCQlzaWdibG9jay0+ ZGF0YV9sZW4gPSBtc2ctPmhkci5kYXRhX2xlbjsKKwkJc2lnYmxvY2stPnNlcV9sb3dlcl93b3Jk ID0gKihfX2xlMzIgKikmbXNnLT5oZHIuc2VxOworCisJCS8qIG5vIGxlYWRpbmcgbGVuLCBubyBj ZXBoX3hfZW5jcnlwdF9oZWFkZXIgKi8KKwkJcmV0ID0gY2VwaF9jcnlwdCgmYXUtPnNlc3Npb25f a2V5LCB0cnVlLCBlbmNfYnVmLAorCQkJCSBDRVBIWF9BVV9FTkNfQlVGX0xFTiwgc2l6ZW9mKCpz aWdibG9jayksCisJCQkJICZjaXBoZXJ0ZXh0X2xlbik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4g cmV0OworCisJCSpwc2lnID0gcGVuYy0+YSBeIHBlbmMtPmIgXiBwZW5jLT5jIF4gcGVuYy0+ZDsK Kwl9CiAKLQkqcHNpZyA9ICooX19sZTY0ICopKGVuY19idWYgKyBzaXplb2YodTMyKSk7CiAJcmV0 dXJuIDA7CiB9CiAKLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAg ICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51 ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5n ZG9tCgoKRnJvbSBkMDFlNWI3ZmFiZTAzNmM2MzZkZWNlMGE5MzRkZDIxMGY2YmJjNWU4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBrZXJuZWwu b3JnPgpEYXRlOiBUdWUsIDE1IE1heSAyMDE4IDA5OjI3OjA1IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwNy80Nl0gYnBmOiBQcmV2ZW50IG1lbW9yeSBkaXNhbWJpZ3VhdGlvbiBhdHRhY2sKCmNvbW1p dCBhZjg2Y2E0ZTMwODhmZTVlYWNmMmY3ZTU4YzAxZmE2OGNhMDY3NjcyIHVwc3RyZWFtLgoKRGV0 ZWN0IGNvZGUgcGF0dGVybnMgd2hlcmUgbWFsaWNpb3VzICdzcGVjdWxhdGl2ZSBzdG9yZSBieXBh c3MnIGNhbiBiZSB1c2VkCmFuZCBzYW5pdGl6ZSBzdWNoIHBhdHRlcm5zLgoKIDM5OiAoYmYpIHIz ID0gcjEwCiA0MDogKDA3KSByMyArPSAtMjE2CiA0MTogKDc5KSByOCA9ICoodTY0ICopKHI3ICsw KSAgIC8vIHNsb3cgcmVhZAogNDI6ICg3YSkgKih1NjQgKikocjEwIC03MikgPSAwICAvLyB2ZXJp ZmllciBpbnNlcnRzIHRoaXMgaW5zdHJ1Y3Rpb24KIDQzOiAoN2IpICoodTY0ICopKHI4ICswKSA9 IHIzICAgLy8gdGhpcyBzdG9yZSBiZWNvbWVzIHNsb3cgZHVlIHRvIHI4CiA0NDogKDc5KSByMSA9 ICoodTY0ICopKHI2ICswKSAgIC8vIGNwdSBzcGVjdWxhdGl2ZWx5IGV4ZWN1dGVzIHRoaXMgbG9h ZAogNDU6ICg3MSkgcjIgPSAqKHU4ICopKHIxICswKSAgICAvLyBzcGVjdWxhdGl2ZWx5IGFyYml0 cmFyeSAnbG9hZCBieXRlJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyBu b3cgc2FuaXRpemVkCgpBYm92ZSBjb2RlIGFmdGVyIHg4NiBKSVQgYmVjb21lczoKIGU1OiBtb3Yg ICAgJXJicCwlcmR4CiBlODogYWRkICAgICQweGZmZmZmZmZmZmZmZmZmMjgsJXJkeAogZWY6IG1v diAgICAweDAoJXIxMyksJXIxNAogZjM6IG1vdnEgICAkMHgwLC0weDQ4KCVyYnApCiBmYjogbW92 ICAgICVyZHgsMHgwKCVyMTQpCiBmZjogbW92ICAgIDB4MCglcmJ4KSwlcmRpCjEwMzogbW92emJx IDB4MCglcmRpKSwlcnNpCgpTaWduZWQtb2ZmLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBr ZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgR2xlaXhuZXIgPHRnbHhAbGludXRyb25p eC5kZT4KW2J3aDogQmFja3BvcnRlZCB0byA0LjE0OgogLSBBZGQgYnBmX3ZlcmlmaWVyX2VudiBw YXJhbWV0ZXIgdG8gY2hlY2tfc3RhY2tfd3JpdGUoKQogLSBMb29rIHVwIHN0YWNrIHNsb3RfdHlw ZXMgd2l0aCBzdGF0ZS0+c3RhY2tfc2xvdF90eXBlW10gcmF0aGVyIHRoYW4KICAgc3RhdGUtPnN0 YWNrW10uc2xvdF90eXBlW10KIC0gRHJvcCBicGZfdmVyaWZpZXJfZW52IGFyZ3VtZW50IHRvIHZl cmJvc2UoKQogLSBBZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8 YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogaW5jbHVkZS9saW51eC9icGZfdmVy aWZpZXIuaCB8ICAxICsKIGtlcm5lbC9icGYvdmVyaWZpZXIuYyAgICAgICAgfCA2MiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1 OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvYnBmX3ZlcmlmaWVyLmggYi9pbmNsdWRlL2xpbnV4L2JwZl92ZXJpZmllci5oCmluZGV4IGEz MzMzMDA0ZmQyYi4uODQ1OGNjNWZiY2U1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2JwZl92 ZXJpZmllci5oCisrKyBiL2luY2x1ZGUvbGludXgvYnBmX3ZlcmlmaWVyLmgKQEAgLTExMyw2ICsx MTMsNyBAQCBzdHJ1Y3QgYnBmX2luc25fYXV4X2RhdGEgewogCQlzdHJ1Y3QgYnBmX21hcCAqbWFw X3B0cjsJLyogcG9pbnRlciBmb3IgY2FsbCBpbnNuIGludG8gbG9va3VwX2VsZW0gKi8KIAl9Owog CWludCBjdHhfZmllbGRfc2l6ZTsgLyogdGhlIGN0eCBmaWVsZCBzaXplIGZvciBsb2FkIGluc24s IG1heWJlIDAgKi8KKwlpbnQgc2FuaXRpemVfc3RhY2tfb2ZmOyAvKiBzdGFjayBzbG90IHRvIGJl IGNsZWFyZWQgKi8KIAlib29sIHNlZW47IC8qIHRoaXMgaW5zbiB3YXMgcHJvY2Vzc2VkIGJ5IHRo ZSB2ZXJpZmllciAqLwogfTsKIApkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIv a2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4IDAxM2IwY2QxOTU4ZS4uZjY3NTVmZDViYWUyIDEw MDY0NAotLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKKysrIGIva2VybmVsL2JwZi92ZXJpZmll ci5jCkBAIC03MTcsOCArNzE3LDkgQEAgc3RhdGljIGJvb2wgaXNfc3BpbGxhYmxlX3JlZ3R5cGUo ZW51bSBicGZfcmVnX3R5cGUgdHlwZSkKIC8qIGNoZWNrX3N0YWNrX3JlYWQvd3JpdGUgZnVuY3Rp b25zIHRyYWNrIHNwaWxsL2ZpbGwgb2YgcmVnaXN0ZXJzLAogICogc3RhY2sgYm91bmRhcnkgYW5k IGFsaWdubWVudCBhcmUgY2hlY2tlZCBpbiBjaGVja19tZW1fYWNjZXNzKCkKICAqLwotc3RhdGlj IGludCBjaGVja19zdGFja193cml0ZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX3N0YXRlICpzdGF0ZSwg aW50IG9mZiwKLQkJCSAgICAgaW50IHNpemUsIGludCB2YWx1ZV9yZWdubykKK3N0YXRpYyBpbnQg Y2hlY2tfc3RhY2tfd3JpdGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwKKwkJCSAgICAg c3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqc3RhdGUsIGludCBvZmYsCisJCQkgICAgIGludCBz aXplLCBpbnQgdmFsdWVfcmVnbm8sIGludCBpbnNuX2lkeCkKIHsKIAlpbnQgaSwgc3BpID0gKE1B WF9CUEZfU1RBQ0sgKyBvZmYpIC8gQlBGX1JFR19TSVpFOwogCS8qIGNhbGxlciBjaGVja2VkIHRo YXQgb2ZmICUgc2l6ZSA9PSAwIGFuZCAtTUFYX0JQRl9TVEFDSyA8PSBvZmYgPCAwLApAQCAtNzM4 LDggKzczOSwzMiBAQCBzdGF0aWMgaW50IGNoZWNrX3N0YWNrX3dyaXRlKHN0cnVjdCBicGZfdmVy aWZpZXJfc3RhdGUgKnN0YXRlLCBpbnQgb2ZmLAogCQlzdGF0ZS0+c3BpbGxlZF9yZWdzW3NwaV0g PSBzdGF0ZS0+cmVnc1t2YWx1ZV9yZWdub107CiAJCXN0YXRlLT5zcGlsbGVkX3JlZ3Nbc3BpXS5s aXZlIHw9IFJFR19MSVZFX1dSSVRURU47CiAKLQkJZm9yIChpID0gMDsgaSA8IEJQRl9SRUdfU0la RTsgaSsrKQorCQlmb3IgKGkgPSAwOyBpIDwgQlBGX1JFR19TSVpFOyBpKyspIHsKKwkJCWlmIChz dGF0ZS0+c3RhY2tfc2xvdF90eXBlW01BWF9CUEZfU1RBQ0sgKyBvZmYgKyBpXSA9PSBTVEFDS19N SVNDICYmCisJCQkgICAgIWVudi0+YWxsb3dfcHRyX2xlYWtzKSB7CisJCQkJaW50ICpwb2ZmID0g JmVudi0+aW5zbl9hdXhfZGF0YVtpbnNuX2lkeF0uc2FuaXRpemVfc3RhY2tfb2ZmOworCQkJCWlu dCBzb2ZmID0gKC1zcGkgLSAxKSAqIEJQRl9SRUdfU0laRTsKKworCQkJCS8qIGRldGVjdGVkIHJl dXNlIG9mIGludGVnZXIgc3RhY2sgc2xvdCB3aXRoIGEgcG9pbnRlcgorCQkJCSAqIHdoaWNoIG1l YW5zIGVpdGhlciBsbHZtIGlzIHJldXNpbmcgc3RhY2sgc2xvdCBvcgorCQkJCSAqIGFuIGF0dGFj a2VyIGlzIHRyeWluZyB0byBleHBsb2l0IENWRS0yMDE4LTM2MzkKKwkJCQkgKiAoc3BlY3VsYXRp dmUgc3RvcmUgYnlwYXNzKQorCQkJCSAqIEhhdmUgdG8gc2FuaXRpemUgdGhhdCBzbG90IHdpdGgg cHJlZW1wdGl2ZQorCQkJCSAqIHN0b3JlIG9mIHplcm8uCisJCQkJICovCisJCQkJaWYgKCpwb2Zm ICYmICpwb2ZmICE9IHNvZmYpIHsKKwkJCQkJLyogZGlzYWxsb3cgcHJvZ3JhbXMgd2hlcmUgc2lu Z2xlIGluc24gc3RvcmVzCisJCQkJCSAqIGludG8gdHdvIGRpZmZlcmVudCBzdGFjayBzbG90cywg c2luY2UgdmVyaWZpZXIKKwkJCQkJICogY2Fubm90IHNhbml0aXplIHRoZW0KKwkJCQkJICovCisJ CQkJCXZlcmJvc2UoImluc24gJWQgY2Fubm90IGFjY2VzcyB0d28gc3RhY2sgc2xvdHMgZnAlZCBh bmQgZnAlZCIsCisJCQkJCQlpbnNuX2lkeCwgKnBvZmYsIHNvZmYpOworCQkJCQlyZXR1cm4gLUVJ TlZBTDsKKwkJCQl9CisJCQkJKnBvZmYgPSBzb2ZmOworCQkJfQogCQkJc3RhdGUtPnN0YWNrX3Ns b3RfdHlwZVtNQVhfQlBGX1NUQUNLICsgb2ZmICsgaV0gPSBTVEFDS19TUElMTDsKKwkJfQogCX0g ZWxzZSB7CiAJCS8qIHJlZ3VsYXIgd3JpdGUgb2YgZGF0YSBpbnRvIHN0YWNrICovCiAJCXN0YXRl LT5zcGlsbGVkX3JlZ3Nbc3BpXSA9IChzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSkge307CkBAIC0xMjE2 LDcgKzEyNDEsOCBAQCBzdGF0aWMgaW50IGNoZWNrX21lbV9hY2Nlc3Moc3RydWN0IGJwZl92ZXJp Zmllcl9lbnYgKmVudiwgaW50IGluc25faWR4LCB1MzIgcmVnbgogCQkJCXZlcmJvc2UoImF0dGVt cHQgdG8gY29ycnVwdCBzcGlsbGVkIHBvaW50ZXIgb24gc3RhY2tcbiIpOwogCQkJCXJldHVybiAt RUFDQ0VTOwogCQkJfQotCQkJZXJyID0gY2hlY2tfc3RhY2tfd3JpdGUoc3RhdGUsIG9mZiwgc2l6 ZSwgdmFsdWVfcmVnbm8pOworCQkJZXJyID0gY2hlY2tfc3RhY2tfd3JpdGUoZW52LCBzdGF0ZSwg b2ZmLCBzaXplLAorCQkJCQkJdmFsdWVfcmVnbm8sIGluc25faWR4KTsKIAkJfSBlbHNlIHsKIAkJ CWVyciA9IGNoZWNrX3N0YWNrX3JlYWQoc3RhdGUsIG9mZiwgc2l6ZSwgdmFsdWVfcmVnbm8pOwog CQl9CkBAIC00MjcwLDYgKzQyOTYsMzQgQEAgc3RhdGljIGludCBjb252ZXJ0X2N0eF9hY2Nlc3Nl cyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KQogCQllbHNlCiAJCQljb250aW51ZTsKIAor CQlpZiAodHlwZSA9PSBCUEZfV1JJVEUgJiYKKwkJICAgIGVudi0+aW5zbl9hdXhfZGF0YVtpICsg ZGVsdGFdLnNhbml0aXplX3N0YWNrX29mZikgeworCQkJc3RydWN0IGJwZl9pbnNuIHBhdGNoW10g PSB7CisJCQkJLyogU2FuaXRpemUgc3VzcGljaW91cyBzdGFjayBzbG90IHdpdGggemVyby4KKwkJ CQkgKiBUaGVyZSBhcmUgbm8gbWVtb3J5IGRlcGVuZGVuY2llcyBmb3IgdGhpcyBzdG9yZSwKKwkJ CQkgKiBzaW5jZSBpdCdzIG9ubHkgdXNpbmcgZnJhbWUgcG9pbnRlciBhbmQgaW1tZWRpYXRlCisJ CQkJICogY29uc3RhbnQgb2YgemVybworCQkJCSAqLworCQkJCUJQRl9TVF9NRU0oQlBGX0RXLCBC UEZfUkVHX0ZQLAorCQkJCQkgICBlbnYtPmluc25fYXV4X2RhdGFbaSArIGRlbHRhXS5zYW5pdGl6 ZV9zdGFja19vZmYsCisJCQkJCSAgIDApLAorCQkJCS8qIHRoZSBvcmlnaW5hbCBTVFggaW5zdHJ1 Y3Rpb24gd2lsbCBpbW1lZGlhdGVseQorCQkJCSAqIG92ZXJ3cml0ZSB0aGUgc2FtZSBzdGFjayBz bG90IHdpdGggYXBwcm9wcmlhdGUgdmFsdWUKKwkJCQkgKi8KKwkJCQkqaW5zbiwKKwkJCX07CisK KwkJCWNudCA9IEFSUkFZX1NJWkUocGF0Y2gpOworCQkJbmV3X3Byb2cgPSBicGZfcGF0Y2hfaW5z bl9kYXRhKGVudiwgaSArIGRlbHRhLCBwYXRjaCwgY250KTsKKwkJCWlmICghbmV3X3Byb2cpCisJ CQkJcmV0dXJuIC1FTk9NRU07CisKKwkJCWRlbHRhICAgICs9IGNudCAtIDE7CisJCQllbnYtPnBy b2cgPSBuZXdfcHJvZzsKKwkJCWluc24gICAgICA9IG5ld19wcm9nLT5pbnNuc2kgKyBpICsgZGVs dGE7CisJCQljb250aW51ZTsKKwkJfQorCiAJCWlmIChlbnYtPmluc25fYXV4X2RhdGFbaSArIGRl bHRhXS5wdHJfdHlwZSAhPSBQVFJfVE9fQ1RYKQogCQkJY29udGludWU7CiAKLS0gCkJlbiBIdXRj aGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhp bmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUg SG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSA2M2YxMTllNDc1YmRm NzVkMmYyMjk1N2U5ZGY0MGE1Y2I1OThlNmY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBJbHlhIExlc29raGluIDxpbHlhbEBtZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgMTMgTm92IDIw MTcgMTA6MjI6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzQ2XSB0bHM6IEFkZCBmdW5jdGlv biB0byB1cGRhdGUgdGhlIFRMUyBzb2NrZXQKIGNvbmZpZ3VyYXRpb24KCmNvbW1pdCA2ZDg4MjA3 ZmNmZGRjMDAyYWZlM2UyZTRhNDU1ZTUyMDEwODlkNWQ5IHVwc3RyZWFtLgoKVGhlIHR4IGNvbmZp Z3VyYXRpb24gaXMgbm93IHN0b3JlZCBpbiBjdHgtPnR4X2NvbmYuCkFuZCBzay0+c2tfcHJvdCBp cyB1cGRhdGVkIHRyb3VnaCBhIGZ1bmN0aW9uClRoaXMgd2lsbCBzaW1wbGlmeSB0aGluZ3Mgd2hl biB3ZSBhZGQgcngKYW5kIHN1cHBvcnQgZm9yIGRpZmZlcmVudCBwb3NzaWJsZQp0eCBhbmQgcngg Y3Jvc3MgY29uZmlndXJhdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBJbHlhIExlc29raGluIDxpbHlh bEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bj b2RldGhpbmsuY28udWs+Ci0tLQogaW5jbHVkZS9uZXQvdGxzLmggIHwgIDIgKysKIG5ldC90bHMv dGxzX21haW4uYyB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGxzLmggYi9pbmNsdWRlL25ldC90bHMuaAppbmRl eCA4NmVkM2RkODBmZTcuLjBjM2FiMmFmNzRkMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdGxz LmgKKysrIGIvaW5jbHVkZS9uZXQvdGxzLmgKQEAgLTg5LDYgKzg5LDggQEAgc3RydWN0IHRsc19j b250ZXh0IHsKIAogCXZvaWQgKnByaXZfY3R4OwogCisJdTggdHhfY29uZjoyOworCiAJdTE2IHBy ZXBlbmRfc2l6ZTsKIAl1MTYgdGFnX3NpemU7CiAJdTE2IG92ZXJoZWFkX3NpemU7CmRpZmYgLS1n aXQgYS9uZXQvdGxzL3Rsc19tYWluLmMgYi9uZXQvdGxzL3Rsc19tYWluLmMKaW5kZXggNGYyOTcx ZjUyOGRiLi4xOTFhOGFkZWUzZWEgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX21haW4uYworKysg Yi9uZXQvdGxzL3Rsc19tYWluLmMKQEAgLTQ2LDggKzQ2LDE4IEBAIE1PRFVMRV9ERVNDUklQVElP TigiVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IFN1cHBvcnQiKTsKIE1PRFVMRV9MSUNFTlNFKCJE dWFsIEJTRC9HUEwiKTsKIE1PRFVMRV9BTElBU19UQ1BfVUxQKCJ0bHMiKTsKIAotc3RhdGljIHN0 cnVjdCBwcm90byB0bHNfYmFzZV9wcm90Owotc3RhdGljIHN0cnVjdCBwcm90byB0bHNfc3dfcHJv dDsKK2VudW0geworCVRMU19CQVNFX1RYLAorCVRMU19TV19UWCwKKwlUTFNfTlVNX0NPTkZJRywK K307CisKK3N0YXRpYyBzdHJ1Y3QgcHJvdG8gdGxzX3Byb3RzW1RMU19OVU1fQ09ORklHXTsKKwor c3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9za19wcm90KHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IHRsc19jb250ZXh0ICpjdHgpCit7CisJc2stPnNrX3Byb3QgPSAmdGxzX3Byb3RzW2N0eC0+dHhf Y29uZl07Cit9CiAKIGludCB3YWl0X29uX3BlbmRpbmdfd3JpdGVyKHN0cnVjdCBzb2NrICpzaywg bG9uZyAqdGltZW8pCiB7CkBAIC0zNjQsOCArMzc0LDggQEAgc3RhdGljIGludCBkb190bHNfc2V0 c29ja29wdF90eChzdHJ1Y3Qgc29jayAqc2ssIGNoYXIgX191c2VyICpvcHR2YWwsCiB7CiAJc3Ry dWN0IHRsc19jcnlwdG9faW5mbyAqY3J5cHRvX2luZm8sIHRtcF9jcnlwdG9faW5mbzsKIAlzdHJ1 Y3QgdGxzX2NvbnRleHQgKmN0eCA9IHRsc19nZXRfY3R4KHNrKTsKLQlzdHJ1Y3QgcHJvdG8gKnBy b3QgPSBOVUxMOwogCWludCByYyA9IDA7CisJaW50IHR4X2NvbmY7CiAKIAlpZiAoIW9wdHZhbCB8 fCAob3B0bGVuIDwgc2l6ZW9mKCpjcnlwdG9faW5mbykpKSB7CiAJCXJjID0gLUVJTlZBTDsKQEAg LTQyMiwxMSArNDMyLDEyIEBAIHN0YXRpYyBpbnQgZG9fdGxzX3NldHNvY2tvcHRfdHgoc3RydWN0 IHNvY2sgKnNrLCBjaGFyIF9fdXNlciAqb3B0dmFsLAogCiAJLyogY3VycmVudGx5IFNXIGlzIGRl ZmF1bHQsIHdlIHdpbGwgaGF2ZSBldGh0b29sIGluIGZ1dHVyZSAqLwogCXJjID0gdGxzX3NldF9z d19vZmZsb2FkKHNrLCBjdHgpOwotCXByb3QgPSAmdGxzX3N3X3Byb3Q7CisJdHhfY29uZiA9IFRM U19TV19UWDsKIAlpZiAocmMpCiAJCWdvdG8gZXJyX2NyeXB0b19pbmZvOwogCi0Jc2stPnNrX3By b3QgPSBwcm90OworCWN0eC0+dHhfY29uZiA9IHR4X2NvbmY7CisJdXBkYXRlX3NrX3Byb3Qoc2ss IGN0eCk7CiAJZ290byBvdXQ7CiAKIGVycl9jcnlwdG9faW5mbzoKQEAgLTQ4OCw3ICs0OTksOSBA QCBzdGF0aWMgaW50IHRsc19pbml0KHN0cnVjdCBzb2NrICpzaykKIAlpY3NrLT5pY3NrX3VscF9k YXRhID0gY3R4OwogCWN0eC0+c2V0c29ja29wdCA9IHNrLT5za19wcm90LT5zZXRzb2Nrb3B0Owog CWN0eC0+Z2V0c29ja29wdCA9IHNrLT5za19wcm90LT5nZXRzb2Nrb3B0OwotCXNrLT5za19wcm90 ID0gJnRsc19iYXNlX3Byb3Q7CisKKwljdHgtPnR4X2NvbmYgPSBUTFNfQkFTRV9UWDsKKwl1cGRh dGVfc2tfcHJvdChzaywgY3R4KTsKIG91dDoKIAlyZXR1cm4gcmM7CiB9CkBAIC00OTksMTYgKzUx MiwyMSBAQCBzdGF0aWMgc3RydWN0IHRjcF91bHBfb3BzIHRjcF90bHNfdWxwX29wcyBfX3JlYWRf bW9zdGx5ID0gewogCS5pbml0CQkJPSB0bHNfaW5pdCwKIH07CiAKK3N0YXRpYyB2b2lkIGJ1aWxk X3Byb3RvcyhzdHJ1Y3QgcHJvdG8gKnByb3QsIHN0cnVjdCBwcm90byAqYmFzZSkKK3sKKwlwcm90 W1RMU19CQVNFX1RYXSA9ICpiYXNlOworCXByb3RbVExTX0JBU0VfVFhdLnNldHNvY2tvcHQgPSB0 bHNfc2V0c29ja29wdDsKKwlwcm90W1RMU19CQVNFX1RYXS5nZXRzb2Nrb3B0ID0gdGxzX2dldHNv Y2tvcHQ7CisKKwlwcm90W1RMU19TV19UWF0gPSBwcm90W1RMU19CQVNFX1RYXTsKKwlwcm90W1RM U19TV19UWF0uY2xvc2UJCT0gdGxzX3NrX3Byb3RvX2Nsb3NlOworCXByb3RbVExTX1NXX1RYXS5z ZW5kbXNnCQk9IHRsc19zd19zZW5kbXNnOworCXByb3RbVExTX1NXX1RYXS5zZW5kcGFnZQk9IHRs c19zd19zZW5kcGFnZTsKK30KKwogc3RhdGljIGludCBfX2luaXQgdGxzX3JlZ2lzdGVyKHZvaWQp CiB7Ci0JdGxzX2Jhc2VfcHJvdAkJCT0gdGNwX3Byb3Q7Ci0JdGxzX2Jhc2VfcHJvdC5zZXRzb2Nr b3B0CT0gdGxzX3NldHNvY2tvcHQ7Ci0JdGxzX2Jhc2VfcHJvdC5nZXRzb2Nrb3B0CT0gdGxzX2dl dHNvY2tvcHQ7Ci0KLQl0bHNfc3dfcHJvdAkJCT0gdGxzX2Jhc2VfcHJvdDsKLQl0bHNfc3dfcHJv dC5zZW5kbXNnCQk9IHRsc19zd19zZW5kbXNnOwotCXRsc19zd19wcm90LnNlbmRwYWdlICAgICAg ICAgICAgPSB0bHNfc3dfc2VuZHBhZ2U7Ci0JdGxzX3N3X3Byb3QuY2xvc2UgICAgICAgICAgICAg ICA9IHRsc19za19wcm90b19jbG9zZTsKKwlidWlsZF9wcm90b3ModGxzX3Byb3RzLCAmdGNwX3By b3QpOwogCiAJdGNwX3JlZ2lzdGVyX3VscCgmdGNwX3Rsc191bHBfb3BzKTsKIAotLSAKQmVuIEh1 dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0 aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFs ZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIGExNWU0Mzk1MWFl YjljY2VhOGMyZTU3ZmI1ZTI1NDk1NWFmNWZmN2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IElseWEgTGVzb2toaW4gPGlseWFsQG1lbGxhbm94LmNvbT4KRGF0ZTogTW9uLCAxMyBOb3Yg MjAxNyAxMDoyMjo0NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvNDZdIHRsczogRml4IFRMUyB1 bHAgY29udGV4dCBsZWFrLCB3aGVuIFRMU19UWCBzZXRzb2Nrb3B0CiBpcyBub3QgdXNlZC4KCmNv bW1pdCBmZjQ1ZDgyMGEyZGYxNjM5NTdhZDhhYjQ1OWI2ZWI2OTc2MTQ0YzE4IHVwc3RyZWFtLgoK UHJldmlvdXNseSB0aGUgVExTIHVscCBjb250ZXh0IHdvdWxkIGxlYWsgaWYgd2UgYXR0YWNoZWQg YSBUTFMgdWxwCnRvIGEgc29ja2V0IGJ1dCBkaWQgbm90IHVzZSB0aGUgVExTX1RYIHNldHNvY2tv cHQsCm9yIGRpZCB1c2UgaXQgYnV0IGl0IGZhaWxlZC4KVGhpcyBwYXRjaCBzb2x2ZXMgdGhlIGlz c3VlIGJ5IG92ZXJyaWRpbmcgcHJvdFtUTFNfQkFTRV9UWF0uY2xvc2UKYW5kIGZpeGluZyB0bHNf c2tfcHJvdG9fY2xvc2UgdG8gd29yayBwcm9wZXJseQp3aGVuIGl0cyBjYWxsZWQgd2l0aCBjdHgt PnR4X2NvbmYgPT0gVExTX0JBU0VfVFguClRoaXMgcGF0Y2ggYWxzbyByZW1vdmVzIGN0eC0+ZnJl ZV9yZXNvdXJjZXMgYXMgd2UgY2FuIHVzZSBjdHgtPnR4X2NvbmYKdG8gb2J0YWluIHRoZSByZWxl dmFudCBpbmZvcm1hdGlvbi4KCkZpeGVzOiAzYzRkNzU1OTE1OWIgKCd0bHM6IGtlcm5lbCBUTFMg c3VwcG9ydCcpClNpZ25lZC1vZmYtYnk6IElseWEgTGVzb2toaW4gPGlseWFsQG1lbGxhbm94LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgpb YndoOiBCYWNrcG9ydGVkIHRvIDQuMTQ6IEtlZXAgdXNpbmcgdGxzX2N0eF9mcmVlKCkgYXMgaW50 cm9kdWNlZCBieQogdGhlIGVhcmxpZXIgYmFja3BvcnQgb2YgInRsczogemVybyB0aGUgY3J5cHRv IGluZm9ybWF0aW9uIGZyb20KIHRsc19jb250ZXh0IGJlZm9yZSBmcmVlaW5nIl0KU2lnbmVkLW9m Zi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQog aW5jbHVkZS9uZXQvdGxzLmggIHwgIDIgKy0KIG5ldC90bHMvdGxzX21haW4uYyB8IDI0ICsrKysr KysrKysrKysrKystLS0tLS0tLQogbmV0L3Rscy90bHNfc3cuYyAgIHwgIDMgKy0tCiAzIGZpbGVz IGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbmV0L3Rscy5oIGIvaW5jbHVkZS9uZXQvdGxzLmgKaW5kZXggMGMzYWIyYWY3NGQz Li42MDRmZDk4MmRhMTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3Rscy5oCisrKyBiL2luY2x1 ZGUvbmV0L3Rscy5oCkBAIC0xMDYsNyArMTA2LDYgQEAgc3RydWN0IHRsc19jb250ZXh0IHsKIAog CXUxNiBwZW5kaW5nX29wZW5fcmVjb3JkX2ZyYWdzOwogCWludCAoKnB1c2hfcGVuZGluZ19yZWNv cmQpKHN0cnVjdCBzb2NrICpzaywgaW50IGZsYWdzKTsKLQl2b2lkICgqZnJlZV9yZXNvdXJjZXMp KHN0cnVjdCBzb2NrICpzayk7CiAKIAl2b2lkICgqc2tfd3JpdGVfc3BhY2UpKHN0cnVjdCBzb2Nr ICpzayk7CiAJdm9pZCAoKnNrX3Byb3RvX2Nsb3NlKShzdHJ1Y3Qgc29jayAqc2ssIGxvbmcgdGlt ZW91dCk7CkBAIC0xMzEsNiArMTMwLDcgQEAgaW50IHRsc19zd19zZW5kbXNnKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qgc2l6ZSk7CiBpbnQgdGxzX3N3X3NlbmRw YWdlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJCSAgICBpbnQgb2Zmc2V0 LCBzaXplX3Qgc2l6ZSwgaW50IGZsYWdzKTsKIHZvaWQgdGxzX3N3X2Nsb3NlKHN0cnVjdCBzb2Nr ICpzaywgbG9uZyB0aW1lb3V0KTsKK3ZvaWQgdGxzX3N3X2ZyZWVfdHhfcmVzb3VyY2VzKHN0cnVj dCBzb2NrICpzayk7CiAKIHZvaWQgdGxzX3NrX2Rlc3RydWN0KHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IHRsc19jb250ZXh0ICpjdHgpOwogdm9pZCB0bHNfaWNza19jbGVhbl9hY2tlZChzdHJ1Y3Qg c29jayAqc2spOwpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfbWFpbi5jIGIvbmV0L3Rscy90bHNf bWFpbi5jCmluZGV4IDE5MWE4YWRlZTNlYS4uYjVmOWM1NzhiY2YwIDEwMDY0NAotLS0gYS9uZXQv dGxzL3Rsc19tYWluLmMKKysrIGIvbmV0L3Rscy90bHNfbWFpbi5jCkBAIC0yNDksNiArMjQ5LDEy IEBAIHN0YXRpYyB2b2lkIHRsc19za19wcm90b19jbG9zZShzdHJ1Y3Qgc29jayAqc2ssIGxvbmcg dGltZW91dCkKIAl2b2lkICgqc2tfcHJvdG9fY2xvc2UpKHN0cnVjdCBzb2NrICpzaywgbG9uZyB0 aW1lb3V0KTsKIAogCWxvY2tfc29jayhzayk7CisJc2tfcHJvdG9fY2xvc2UgPSBjdHgtPnNrX3By b3RvX2Nsb3NlOworCisJaWYgKGN0eC0+dHhfY29uZiA9PSBUTFNfQkFTRV9UWCkgeworCQl0bHNf Y3R4X2ZyZWUoY3R4KTsKKwkJZ290byBza2lwX3R4X2NsZWFudXA7CisJfQogCiAJaWYgKCF0bHNf Y29tcGxldGVfcGVuZGluZ193b3JrKHNrLCBjdHgsIDAsICZ0aW1lbykpCiAJCXRsc19oYW5kbGVf b3Blbl9yZWNvcmQoc2ssIDApOwpAQCAtMjY1LDEzICsyNzEsMTYgQEAgc3RhdGljIHZvaWQgdGxz X3NrX3Byb3RvX2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgbG9uZyB0aW1lb3V0KQogCQkJc2crKzsK IAkJfQogCX0KLQljdHgtPmZyZWVfcmVzb3VyY2VzKHNrKTsKKwogCWtmcmVlKGN0eC0+cmVjX3Nl cSk7CiAJa2ZyZWUoY3R4LT5pdik7CiAKLQlza19wcm90b19jbG9zZSA9IGN0eC0+c2tfcHJvdG9f Y2xvc2U7Ci0JdGxzX2N0eF9mcmVlKGN0eCk7CisJaWYgKGN0eC0+dHhfY29uZiA9PSBUTFNfU1df VFgpIHsKKwkJdGxzX3N3X2ZyZWVfdHhfcmVzb3VyY2VzKHNrKTsKKwkJdGxzX2N0eF9mcmVlKGN0 eCk7CisJfQogCitza2lwX3R4X2NsZWFudXA6CiAJcmVsZWFzZV9zb2NrKHNrKTsKIAlza19wcm90 b19jbG9zZShzaywgdGltZW91dCk7CiB9CkBAIC00MjgsOCArNDM3LDYgQEAgc3RhdGljIGludCBk b190bHNfc2V0c29ja29wdF90eChzdHJ1Y3Qgc29jayAqc2ssIGNoYXIgX191c2VyICpvcHR2YWws CiAJY3R4LT5za193cml0ZV9zcGFjZSA9IHNrLT5za193cml0ZV9zcGFjZTsKIAlzay0+c2tfd3Jp dGVfc3BhY2UgPSB0bHNfd3JpdGVfc3BhY2U7CiAKLQljdHgtPnNrX3Byb3RvX2Nsb3NlID0gc2st PnNrX3Byb3QtPmNsb3NlOwotCiAJLyogY3VycmVudGx5IFNXIGlzIGRlZmF1bHQsIHdlIHdpbGwg aGF2ZSBldGh0b29sIGluIGZ1dHVyZSAqLwogCXJjID0gdGxzX3NldF9zd19vZmZsb2FkKHNrLCBj dHgpOwogCXR4X2NvbmYgPSBUTFNfU1dfVFg7CkBAIC00OTksNiArNTA2LDcgQEAgc3RhdGljIGlu dCB0bHNfaW5pdChzdHJ1Y3Qgc29jayAqc2spCiAJaWNzay0+aWNza191bHBfZGF0YSA9IGN0eDsK IAljdHgtPnNldHNvY2tvcHQgPSBzay0+c2tfcHJvdC0+c2V0c29ja29wdDsKIAljdHgtPmdldHNv Y2tvcHQgPSBzay0+c2tfcHJvdC0+Z2V0c29ja29wdDsKKwljdHgtPnNrX3Byb3RvX2Nsb3NlID0g c2stPnNrX3Byb3QtPmNsb3NlOwogCiAJY3R4LT50eF9jb25mID0gVExTX0JBU0VfVFg7CiAJdXBk YXRlX3NrX3Byb3Qoc2ssIGN0eCk7CkBAIC01MTUsMTEgKzUyMywxMSBAQCBzdGF0aWMgc3RydWN0 IHRjcF91bHBfb3BzIHRjcF90bHNfdWxwX29wcyBfX3JlYWRfbW9zdGx5ID0gewogc3RhdGljIHZv aWQgYnVpbGRfcHJvdG9zKHN0cnVjdCBwcm90byAqcHJvdCwgc3RydWN0IHByb3RvICpiYXNlKQog ewogCXByb3RbVExTX0JBU0VfVFhdID0gKmJhc2U7Ci0JcHJvdFtUTFNfQkFTRV9UWF0uc2V0c29j a29wdCA9IHRsc19zZXRzb2Nrb3B0OwotCXByb3RbVExTX0JBU0VfVFhdLmdldHNvY2tvcHQgPSB0 bHNfZ2V0c29ja29wdDsKKwlwcm90W1RMU19CQVNFX1RYXS5zZXRzb2Nrb3B0CT0gdGxzX3NldHNv Y2tvcHQ7CisJcHJvdFtUTFNfQkFTRV9UWF0uZ2V0c29ja29wdAk9IHRsc19nZXRzb2Nrb3B0Owor CXByb3RbVExTX0JBU0VfVFhdLmNsb3NlCQk9IHRsc19za19wcm90b19jbG9zZTsKIAogCXByb3Rb VExTX1NXX1RYXSA9IHByb3RbVExTX0JBU0VfVFhdOwotCXByb3RbVExTX1NXX1RYXS5jbG9zZQkJ PSB0bHNfc2tfcHJvdG9fY2xvc2U7CiAJcHJvdFtUTFNfU1dfVFhdLnNlbmRtc2cJCT0gdGxzX3N3 X3NlbmRtc2c7CiAJcHJvdFtUTFNfU1dfVFhdLnNlbmRwYWdlCT0gdGxzX3N3X3NlbmRwYWdlOwog fQpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXgg NmFlOWNhNTY3ZDZjLi41OTk2ZmI1NzU2ZTEgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3LmMK KysrIGIvbmV0L3Rscy90bHNfc3cuYwpAQCAtNjQ2LDcgKzY0Niw3IEBAIGludCB0bHNfc3dfc2Vu ZHBhZ2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAlyZXR1cm4gcmV0Owog fQogCi1zdGF0aWMgdm9pZCB0bHNfc3dfZnJlZV9yZXNvdXJjZXMoc3RydWN0IHNvY2sgKnNrKQor dm9pZCB0bHNfc3dfZnJlZV90eF9yZXNvdXJjZXMoc3RydWN0IHNvY2sgKnNrKQogewogCXN0cnVj dCB0bHNfY29udGV4dCAqdGxzX2N0eCA9IHRsc19nZXRfY3R4KHNrKTsKIAlzdHJ1Y3QgdGxzX3N3 X2NvbnRleHQgKmN0eCA9IHRsc19zd19jdHgodGxzX2N0eCk7CkBAIC02ODUsNyArNjg1LDYgQEAg aW50IHRsc19zZXRfc3dfb2ZmbG9hZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0bHNfY29udGV4 dCAqY3R4KQogCX0KIAogCWN0eC0+cHJpdl9jdHggPSAoc3RydWN0IHRsc19vZmZsb2FkX2NvbnRl eHQgKilzd19jdHg7Ci0JY3R4LT5mcmVlX3Jlc291cmNlcyA9IHRsc19zd19mcmVlX3Jlc291cmNl czsKIAogCWNyeXB0b19pbmZvID0gJmN0eC0+Y3J5cHRvX3NlbmQuaW5mbzsKIAlzd2l0Y2ggKGNy eXB0b19pbmZvLT5jaXBoZXJfdHlwZSkgewotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2 ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cu Y29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJl ZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJI RiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIGYwYWY0ZTViZWIxYWZiZDA4YTZlNmQ2YThlOTc1ZmM0 ZGEyY2UzNTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElseWEgTGVzb2toaW4gPGls eWFsQG1lbGxhbm94LmNvbT4KRGF0ZTogTW9uLCAxMyBOb3YgMjAxNyAxMDoyMjo0OCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMTAvNDZdIHRsczogQXZvaWQgY29weWluZyBjcnlwdG9faW5mbyBhZ2Fp biBhZnRlciBjaXBoZXJfdHlwZQogY2hlY2suCgpjb21taXQgMTk2YzMxYjRiNTQ0NzRiMzFkZWUz YzMwMzUyYzQ1YzJhOTNlOTIyNiB1cHN0cmVhbS4KCkF2b2lkIGNvcHlpbmcgY3J5cHRvX2luZm8g YWdhaW4gYWZ0ZXIgY2lwaGVyX3R5cGUgY2hlY2sKdG8gYXZvaWQgYSBUT0NUT1UgZXhwbG9pdHMu ClRoZSB0ZW1wb3JhcnkgYXJyYXkgb24gdGhlIHN0YWNrIGlzIHJlbW92ZWQgYXMgd2UgZG9uJ3Qg cmVhbGx5IG5lZWQgaXQKCkZpeGVzOiAzYzRkNzU1OTE1OWIgKCd0bHM6IGtlcm5lbCBUTFMgc3Vw cG9ydCcpClNpZ25lZC1vZmYtYnk6IElseWEgTGVzb2toaW4gPGlseWFsQG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpbYndo OiBCYWNrcG9ydGVkIHRvIDQuMTQ6IFByZXNlcnZlIGNoYW5nZXMgbWFkZSBieSBlYXJsaWVyIGJh Y2twb3J0cyBvZgogInRsczogcmV0dXJuIC1FQlVTWSBpZiBjcnlwdG9faW5mbyBpcyBhbHJlYWR5 IHNldCIgYW5kICJ0bHM6IHplcm8gdGhlCiBjcnlwdG8gaW5mb3JtYXRpb24gZnJvbSB0bHNfY29u dGV4dCBiZWZvcmUgZnJlZWluZyJdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5o dXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIG5ldC90bHMvdGxzX21haW4uYyB8IDMzICsr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2Vy dGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX21haW4u YyBiL25ldC90bHMvdGxzX21haW4uYwppbmRleCBiNWY5YzU3OGJjZjAuLmY4OGRmNTE0YWQ1ZiAx MDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfbWFpbi5jCisrKyBiL25ldC90bHMvdGxzX21haW4uYwpA QCAtMzgxLDcgKzM4MSw3IEBAIHN0YXRpYyBpbnQgdGxzX2dldHNvY2tvcHQoc3RydWN0IHNvY2sg KnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogc3RhdGljIGludCBkb190bHNfc2V0c29ja29w dF90eChzdHJ1Y3Qgc29jayAqc2ssIGNoYXIgX191c2VyICpvcHR2YWwsCiAJCQkJdW5zaWduZWQg aW50IG9wdGxlbikKIHsKLQlzdHJ1Y3QgdGxzX2NyeXB0b19pbmZvICpjcnlwdG9faW5mbywgdG1w X2NyeXB0b19pbmZvOworCXN0cnVjdCB0bHNfY3J5cHRvX2luZm8gKmNyeXB0b19pbmZvOwogCXN0 cnVjdCB0bHNfY29udGV4dCAqY3R4ID0gdGxzX2dldF9jdHgoc2spOwogCWludCByYyA9IDA7CiAJ aW50IHR4X2NvbmY7CkBAIC0zOTEsMzggKzM5MSwzMyBAQCBzdGF0aWMgaW50IGRvX3Rsc19zZXRz b2Nrb3B0X3R4KHN0cnVjdCBzb2NrICpzaywgY2hhciBfX3VzZXIgKm9wdHZhbCwKIAkJZ290byBv dXQ7CiAJfQogCi0JcmMgPSBjb3B5X2Zyb21fdXNlcigmdG1wX2NyeXB0b19pbmZvLCBvcHR2YWws IHNpemVvZigqY3J5cHRvX2luZm8pKTsKKwljcnlwdG9faW5mbyA9ICZjdHgtPmNyeXB0b19zZW5k LmluZm87CisJLyogQ3VycmVudGx5IHdlIGRvbid0IHN1cHBvcnQgc2V0IGNyeXB0byBpbmZvIG1v cmUgdGhhbiBvbmUgdGltZSAqLworCWlmIChUTFNfQ1JZUFRPX0lORk9fUkVBRFkoY3J5cHRvX2lu Zm8pKSB7CisJCXJjID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CisKKwlyYyA9IGNvcHlfZnJv bV91c2VyKGNyeXB0b19pbmZvLCBvcHR2YWwsIHNpemVvZigqY3J5cHRvX2luZm8pKTsKIAlpZiAo cmMpIHsKIAkJcmMgPSAtRUZBVUxUOwogCQlnb3RvIG91dDsKIAl9CiAKIAkvKiBjaGVjayB2ZXJz aW9uICovCi0JaWYgKHRtcF9jcnlwdG9faW5mby52ZXJzaW9uICE9IFRMU18xXzJfVkVSU0lPTikg eworCWlmIChjcnlwdG9faW5mby0+dmVyc2lvbiAhPSBUTFNfMV8yX1ZFUlNJT04pIHsKIAkJcmMg PSAtRU5PVFNVUFA7Ci0JCWdvdG8gb3V0OwotCX0KLQotCS8qIGdldCB1c2VyIGNyeXB0byBpbmZv ICovCi0JY3J5cHRvX2luZm8gPSAmY3R4LT5jcnlwdG9fc2VuZC5pbmZvOwotCi0JLyogQ3VycmVu dGx5IHdlIGRvbid0IHN1cHBvcnQgc2V0IGNyeXB0byBpbmZvIG1vcmUgdGhhbiBvbmUgdGltZSAq LwotCWlmIChUTFNfQ1JZUFRPX0lORk9fUkVBRFkoY3J5cHRvX2luZm8pKSB7Ci0JCXJjID0gLUVC VVNZOwotCQlnb3RvIG91dDsKKwkJZ290byBlcnJfY3J5cHRvX2luZm87CiAJfQogCi0Jc3dpdGNo ICh0bXBfY3J5cHRvX2luZm8uY2lwaGVyX3R5cGUpIHsKKwlzd2l0Y2ggKGNyeXB0b19pbmZvLT5j aXBoZXJfdHlwZSkgewogCWNhc2UgVExTX0NJUEhFUl9BRVNfR0NNXzEyODogewogCQlpZiAob3B0 bGVuICE9IHNpemVvZihzdHJ1Y3QgdGxzMTJfY3J5cHRvX2luZm9fYWVzX2djbV8xMjgpKSB7CiAJ CQlyYyA9IC1FSU5WQUw7CiAJCQlnb3RvIGVycl9jcnlwdG9faW5mbzsKIAkJfQotCQlyYyA9IGNv cHlfZnJvbV91c2VyKAotCQkgIGNyeXB0b19pbmZvLAotCQkgIG9wdHZhbCwKLQkJICBzaXplb2Yo c3RydWN0IHRsczEyX2NyeXB0b19pbmZvX2Flc19nY21fMTI4KSk7Ci0KKwkJcmMgPSBjb3B5X2Zy b21fdXNlcihjcnlwdG9faW5mbyArIDEsIG9wdHZhbCArIHNpemVvZigqY3J5cHRvX2luZm8pLAor CQkJCSAgICBvcHRsZW4gLSBzaXplb2YoKmNyeXB0b19pbmZvKSk7CiAJCWlmIChyYykgewogCQkJ cmMgPSAtRUZBVUxUOwogCQkJZ290byBlcnJfY3J5cHRvX2luZm87Ci0tIApCZW4gSHV0Y2hpbmdz LCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0 ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNl LCAzNSBEYWxlIFN0cmVldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFu Y2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gNWJkNzY0YjMzZDEzM2RkNTZj NWNkNjk0OGRhOWNlNGFjY2Y1OWFjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWx5 YSBMZXNva2hpbiA8aWx5YWxAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDEzIE5vdiAyMDE3IDEw OjIyOjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS80Nl0gdGxzOiBkb24ndCBvdmVycmlkZSBz a193cml0ZV9zcGFjZSBpZgogdGxzX3NldF9zd19vZmZsb2FkIGZhaWxzLgoKY29tbWl0IGVlMTgx ZTUyMDFlNjQwYTRiOTJiMjE3ZTllYWIyNTMxZGFiNTdkMmMgdXBzdHJlYW0uCgpJZiB3ZSBmYWls IHRvIGVuYWJsZSB0bHMgaW4gdGhlIGtlcm5lbCB3ZSBzaG91bGRuJ3Qgb3ZlcnJpZGUKdGhlIHNr X3dyaXRlX3NwYWNlIGNhbGxiYWNrCgpGaXhlczogM2M0ZDc1NTkxNTliICgndGxzOiBrZXJuZWwg VExTIHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBJbHlhIExlc29raGluIDxpbHlhbEBtZWxsYW5v eC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsu Y28udWs+Ci0tLQogbmV0L3Rscy90bHNfbWFpbi5jIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rs c19tYWluLmMgYi9uZXQvdGxzL3Rsc19tYWluLmMKaW5kZXggZjg4ZGY1MTRhZDVmLi4zMzE4N2Uz NDU5OWIgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX21haW4uYworKysgYi9uZXQvdGxzL3Rsc19t YWluLmMKQEAgLTQyOSw5ICs0MjksNiBAQCBzdGF0aWMgaW50IGRvX3Rsc19zZXRzb2Nrb3B0X3R4 KHN0cnVjdCBzb2NrICpzaywgY2hhciBfX3VzZXIgKm9wdHZhbCwKIAkJZ290byBlcnJfY3J5cHRv X2luZm87CiAJfQogCi0JY3R4LT5za193cml0ZV9zcGFjZSA9IHNrLT5za193cml0ZV9zcGFjZTsK LQlzay0+c2tfd3JpdGVfc3BhY2UgPSB0bHNfd3JpdGVfc3BhY2U7Ci0KIAkvKiBjdXJyZW50bHkg U1cgaXMgZGVmYXVsdCwgd2Ugd2lsbCBoYXZlIGV0aHRvb2wgaW4gZnV0dXJlICovCiAJcmMgPSB0 bHNfc2V0X3N3X29mZmxvYWQoc2ssIGN0eCk7CiAJdHhfY29uZiA9IFRMU19TV19UWDsKQEAgLTQ0 MCw2ICs0MzcsOCBAQCBzdGF0aWMgaW50IGRvX3Rsc19zZXRzb2Nrb3B0X3R4KHN0cnVjdCBzb2Nr ICpzaywgY2hhciBfX3VzZXIgKm9wdHZhbCwKIAogCWN0eC0+dHhfY29uZiA9IHR4X2NvbmY7CiAJ dXBkYXRlX3NrX3Byb3Qoc2ssIGN0eCk7CisJY3R4LT5za193cml0ZV9zcGFjZSA9IHNrLT5za193 cml0ZV9zcGFjZTsKKwlzay0+c2tfd3JpdGVfc3BhY2UgPSB0bHNfd3JpdGVfc3BhY2U7CiAJZ290 byBvdXQ7CiAKIGVycl9jcnlwdG9faW5mbzoKLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJlIERl dmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3 LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUgU3Ry ZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBNMSAy SEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSA5NzJmNTg5NWI0OWE2MWRlNWMxYzVlZmEzNGRmZjE2 MjdiNzM1M2MwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCb3JpcyBQaXNtZW5ueSA8 Ym9yaXNwQG1lbGxhbm94LmNvbT4KRGF0ZTogVHVlLCAyNyBGZWIgMjAxOCAxNDoxODozOSArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMTIvNDZdIHRsczogVXNlIGNvcnJlY3Qgc2stPnNrX3Byb3QgZm9y IElQVjYKCmNvbW1pdCBjMTEzMTg3ZDM4ZmY4NWRjMzAyYTFiYjU1ODY0YjIwM2ViYjJiYTEwIHVw c3RyZWFtLgoKVGhlIHRscyB1bHAgb3ZlcnJpZGVzIHNrLT5wcm90IHdpdGggYSBuZXcgdGxzIHNw ZWNpZmljIHByb3RvIHN0cnVjdHMuClRoZSB0bHMgc3BlY2lmaWMgc3RydWN0cyB3ZXJlIHByZXZp b3VzbHkgYmFzZWQgb24gdGhlIGlwdjQgc3BlY2lmaWMKdGNwX3Byb3Qgc3R1cmN0LgpBcyBhIHJl c3VsdCwgYXR0YWNoaW5nIHRoZSB0bHMgdWxwIHRvIGFuIGlwdjYgdGNwIHNvY2tldCByZXBsYWNl ZApzb21lIGlwdjYgY2FsbGJhY2sgd2l0aCB0aGUgaXB2NCBlcXVpdmFsZW50cy4KClRoaXMgcGF0 Y2ggYWRkcyBpcHY2IHRscyBwcm90byBzdHJ1Y3RzIGFuZCB1c2VzIHRoZW0gd2hlbgphdHRhY2hl ZCB0byBpcHY2IHNvY2tldHMuCgpGaXhlczogM2M0ZDc1NTkxNTliICgndGxzOiBrZXJuZWwgVExT IHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBCb3JpcyBQaXNtZW5ueSA8Ym9yaXNwQG1lbGxhbm94 LmNvbT4KU2lnbmVkLW9mZi1ieTogSWx5YSBMZXNva2hpbiA8aWx5YWxAbWVsbGFub3guY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ClNpZ25l ZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgot LS0KIG5ldC90bHMvdGxzX21haW4uYyB8IDUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCsp LCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19tYWluLmMgYi9uZXQv dGxzL3Rsc19tYWluLmMKaW5kZXggMzMxODdlMzQ1OTliLi5lOTAzYmRkMzliOWYgMTAwNjQ0Ci0t LSBhL25ldC90bHMvdGxzX21haW4uYworKysgYi9uZXQvdGxzL3Rsc19tYWluLmMKQEAgLTQ3LDE2 ICs0NywyNiBAQCBNT0RVTEVfTElDRU5TRSgiRHVhbCBCU0QvR1BMIik7CiBNT0RVTEVfQUxJQVNf VENQX1VMUCgidGxzIik7CiAKIGVudW0geworCVRMU1Y0LAorCVRMU1Y2LAorCVRMU19OVU1fUFJP VFMsCit9OworCitlbnVtIHsKIAlUTFNfQkFTRV9UWCwKIAlUTFNfU1dfVFgsCiAJVExTX05VTV9D T05GSUcsCiB9OwogCi1zdGF0aWMgc3RydWN0IHByb3RvIHRsc19wcm90c1tUTFNfTlVNX0NPTkZJ R107CitzdGF0aWMgc3RydWN0IHByb3RvICpzYXZlZF90Y3B2Nl9wcm90Oworc3RhdGljIERFRklO RV9NVVRFWCh0Y3B2Nl9wcm90X211dGV4KTsKK3N0YXRpYyBzdHJ1Y3QgcHJvdG8gdGxzX3Byb3Rz W1RMU19OVU1fUFJPVFNdW1RMU19OVU1fQ09ORklHXTsKIAogc3RhdGljIGlubGluZSB2b2lkIHVw ZGF0ZV9za19wcm90KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHRsc19jb250ZXh0ICpjdHgpCiB7 Ci0Jc2stPnNrX3Byb3QgPSAmdGxzX3Byb3RzW2N0eC0+dHhfY29uZl07CisJaW50IGlwX3ZlciA9 IHNrLT5za19mYW1pbHkgPT0gQUZfSU5FVDYgPyBUTFNWNiA6IFRMU1Y0OworCisJc2stPnNrX3By b3QgPSAmdGxzX3Byb3RzW2lwX3Zlcl1bY3R4LT50eF9jb25mXTsKIH0KIAogaW50IHdhaXRfb25f cGVuZGluZ193cml0ZXIoc3RydWN0IHNvY2sgKnNrLCBsb25nICp0aW1lbykKQEAgLTQ3Niw4ICs0 ODYsMjEgQEAgc3RhdGljIGludCB0bHNfc2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBs ZXZlbCwgaW50IG9wdG5hbWUsCiAJcmV0dXJuIGRvX3Rsc19zZXRzb2Nrb3B0KHNrLCBvcHRuYW1l LCBvcHR2YWwsIG9wdGxlbik7CiB9CiAKK3N0YXRpYyB2b2lkIGJ1aWxkX3Byb3RvcyhzdHJ1Y3Qg cHJvdG8gKnByb3QsIHN0cnVjdCBwcm90byAqYmFzZSkKK3sKKwlwcm90W1RMU19CQVNFX1RYXSA9 ICpiYXNlOworCXByb3RbVExTX0JBU0VfVFhdLnNldHNvY2tvcHQJPSB0bHNfc2V0c29ja29wdDsK Kwlwcm90W1RMU19CQVNFX1RYXS5nZXRzb2Nrb3B0CT0gdGxzX2dldHNvY2tvcHQ7CisJcHJvdFtU TFNfQkFTRV9UWF0uY2xvc2UJCT0gdGxzX3NrX3Byb3RvX2Nsb3NlOworCisJcHJvdFtUTFNfU1df VFhdID0gcHJvdFtUTFNfQkFTRV9UWF07CisJcHJvdFtUTFNfU1dfVFhdLnNlbmRtc2cJCT0gdGxz X3N3X3NlbmRtc2c7CisJcHJvdFtUTFNfU1dfVFhdLnNlbmRwYWdlCT0gdGxzX3N3X3NlbmRwYWdl OworfQorCiBzdGF0aWMgaW50IHRsc19pbml0KHN0cnVjdCBzb2NrICpzaykKIHsKKwlpbnQgaXBf dmVyID0gc2stPnNrX2ZhbWlseSA9PSBBRl9JTkVUNiA/IFRMU1Y2IDogVExTVjQ7CiAJc3RydWN0 IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrID0gaW5ldF9jc2soc2spOwogCXN0cnVjdCB0bHNf Y29udGV4dCAqY3R4OwogCWludCByYyA9IDA7CkBAIC01MDIsNiArNTI1LDE3IEBAIHN0YXRpYyBp bnQgdGxzX2luaXQoc3RydWN0IHNvY2sgKnNrKQogCWN0eC0+Z2V0c29ja29wdCA9IHNrLT5za19w cm90LT5nZXRzb2Nrb3B0OwogCWN0eC0+c2tfcHJvdG9fY2xvc2UgPSBzay0+c2tfcHJvdC0+Y2xv c2U7CiAKKwkvKiBCdWlsZCBJUHY2IFRMUyB3aGVuZXZlciB0aGUgYWRkcmVzcyBvZiB0Y3B2Nl9w cm90IGNoYW5nZXMgKi8KKwlpZiAoaXBfdmVyID09IFRMU1Y2ICYmCisJICAgIHVubGlrZWx5KHNr LT5za19wcm90ICE9IHNtcF9sb2FkX2FjcXVpcmUoJnNhdmVkX3RjcHY2X3Byb3QpKSkgeworCQlt dXRleF9sb2NrKCZ0Y3B2Nl9wcm90X211dGV4KTsKKwkJaWYgKGxpa2VseShzay0+c2tfcHJvdCAh PSBzYXZlZF90Y3B2Nl9wcm90KSkgeworCQkJYnVpbGRfcHJvdG9zKHRsc19wcm90c1tUTFNWNl0s IHNrLT5za19wcm90KTsKKwkJCXNtcF9zdG9yZV9yZWxlYXNlKCZzYXZlZF90Y3B2Nl9wcm90LCBz ay0+c2tfcHJvdCk7CisJCX0KKwkJbXV0ZXhfdW5sb2NrKCZ0Y3B2Nl9wcm90X211dGV4KTsKKwl9 CisKIAljdHgtPnR4X2NvbmYgPSBUTFNfQkFTRV9UWDsKIAl1cGRhdGVfc2tfcHJvdChzaywgY3R4 KTsKIG91dDoKQEAgLTUxNCwyMSArNTQ4LDkgQEAgc3RhdGljIHN0cnVjdCB0Y3BfdWxwX29wcyB0 Y3BfdGxzX3VscF9vcHMgX19yZWFkX21vc3RseSA9IHsKIAkuaW5pdAkJCT0gdGxzX2luaXQsCiB9 OwogCi1zdGF0aWMgdm9pZCBidWlsZF9wcm90b3Moc3RydWN0IHByb3RvICpwcm90LCBzdHJ1Y3Qg cHJvdG8gKmJhc2UpCi17Ci0JcHJvdFtUTFNfQkFTRV9UWF0gPSAqYmFzZTsKLQlwcm90W1RMU19C QVNFX1RYXS5zZXRzb2Nrb3B0CT0gdGxzX3NldHNvY2tvcHQ7Ci0JcHJvdFtUTFNfQkFTRV9UWF0u Z2V0c29ja29wdAk9IHRsc19nZXRzb2Nrb3B0OwotCXByb3RbVExTX0JBU0VfVFhdLmNsb3NlCQk9 IHRsc19za19wcm90b19jbG9zZTsKLQotCXByb3RbVExTX1NXX1RYXSA9IHByb3RbVExTX0JBU0Vf VFhdOwotCXByb3RbVExTX1NXX1RYXS5zZW5kbXNnCQk9IHRsc19zd19zZW5kbXNnOwotCXByb3Rb VExTX1NXX1RYXS5zZW5kcGFnZQk9IHRsc19zd19zZW5kcGFnZTsKLX0KLQogc3RhdGljIGludCBf X2luaXQgdGxzX3JlZ2lzdGVyKHZvaWQpCiB7Ci0JYnVpbGRfcHJvdG9zKHRsc19wcm90cywgJnRj cF9wcm90KTsKKwlidWlsZF9wcm90b3ModGxzX3Byb3RzW1RMU1Y0XSwgJnRjcF9wcm90KTsKIAog CXRjcF9yZWdpc3Rlcl91bHAoJnRjcF90bHNfdWxwX29wcyk7CiAKLS0gCkJlbiBIdXRjaGluZ3Ms IFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRk Cmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2Us IDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5j aGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSBmNzZmYTJmYmQxNjZlYzRiMmQ0 NDYzYjhiNjk2ZTUyMzc3YTY2NDA4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWYWt1 bCBHYXJnIDx2YWt1bC5nYXJnQG54cC5jb20+CkRhdGU6IE1vbiwgMTAgU2VwIDIwMTggMjI6NTM6 NDYgKzA1MzAKU3ViamVjdDogW1BBVENIIDEzLzQ2XSBuZXQvdGxzOiBGaXhlZCByZXR1cm4gdmFs dWUgd2hlbgogdGxzX2NvbXBsZXRlX3BlbmRpbmdfd29yaygpIGZhaWxzCgpjb21taXQgMTUwMDg1 NzkxYWZiODA1NGUxMWQyZTA4MGQ0YjljZDc1NWRkN2Y2OSB1cHN0cmVhbS4KCkluIHRsc19zd19z ZW5kbXNnKCkgYW5kIHRsc19zd19zZW5kcGFnZSgpLCB0aGUgdmFyaWFibGUgJ3JldCcgaGFzCmJl ZW4gc2V0IHRvIHJldHVybiB2YWx1ZSBvZiB0bHNfY29tcGxldGVfcGVuZGluZ193b3JrKCkuIFRo aXMgYWxsb3dzCnJldHVybiBvZiBwcm9wZXIgZXJyb3IgY29kZSBpZiB0bHNfY29tcGxldGVfcGVu ZGluZ193b3JrKCkgZmFpbHMuCgpGaXhlczogM2M0ZDc1NTkxNTliICgidGxzOiBrZXJuZWwgVExT IHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBWYWt1bCBHYXJnIDx2YWt1bC5nYXJnQG54cC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KW2J3 aDogQmFja3BvcnRlZCB0byA0LjE0OiBhZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVu IEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogbmV0L3Rscy90 bHNfc3cuYyB8IDEwICsrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMv dGxzX3N3LmMKaW5kZXggNTk5NmZiNTc1NmUxLi5kMThkNGE0NzhlNGYgMTAwNjQ0Ci0tLSBhL25l dC90bHMvdGxzX3N3LmMKKysrIGIvbmV0L3Rscy90bHNfc3cuYwpAQCAtMzg4LDcgKzM4OCw3IEBA IGludCB0bHNfc3dfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywg c2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IHRsc19jb250ZXh0ICp0bHNfY3R4ID0gdGxzX2dldF9j dHgoc2spOwogCXN0cnVjdCB0bHNfc3dfY29udGV4dCAqY3R4ID0gdGxzX3N3X2N0eCh0bHNfY3R4 KTsKLQlpbnQgcmV0ID0gMDsKKwlpbnQgcmV0OwogCWludCByZXF1aXJlZF9zaXplOwogCWxvbmcg dGltZW8gPSBzb2NrX3NuZHRpbWVvKHNrLCBtc2ctPm1zZ19mbGFncyAmIE1TR19ET05UV0FJVCk7 CiAJYm9vbCBlb3IgPSAhKG1zZy0+bXNnX2ZsYWdzICYgTVNHX01PUkUpOwpAQCAtNDAzLDcgKzQw Myw4IEBAIGludCB0bHNfc3dfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIg Km1zZywgc2l6ZV90IHNpemUpCiAKIAlsb2NrX3NvY2soc2spOwogCi0JaWYgKHRsc19jb21wbGV0 ZV9wZW5kaW5nX3dvcmsoc2ssIHRsc19jdHgsIG1zZy0+bXNnX2ZsYWdzLCAmdGltZW8pKQorCXJl dCA9IHRsc19jb21wbGV0ZV9wZW5kaW5nX3dvcmsoc2ssIHRsc19jdHgsIG1zZy0+bXNnX2ZsYWdz LCAmdGltZW8pOworCWlmIChyZXQpCiAJCWdvdG8gc2VuZF9lbmQ7CiAKIAlpZiAodW5saWtlbHko bXNnLT5tc2dfY29udHJvbGxlbikpIHsKQEAgLTUzOSw3ICs1NDAsNyBAQCBpbnQgdGxzX3N3X3Nl bmRwYWdlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHBhZ2UgKnBhZ2UsCiB7CiAJc3RydWN0IHRs c19jb250ZXh0ICp0bHNfY3R4ID0gdGxzX2dldF9jdHgoc2spOwogCXN0cnVjdCB0bHNfc3dfY29u dGV4dCAqY3R4ID0gdGxzX3N3X2N0eCh0bHNfY3R4KTsKLQlpbnQgcmV0ID0gMDsKKwlpbnQgcmV0 OwogCWxvbmcgdGltZW8gPSBzb2NrX3NuZHRpbWVvKHNrLCBmbGFncyAmIE1TR19ET05UV0FJVCk7 CiAJYm9vbCBlb3I7CiAJc2l6ZV90IG9yaWdfc2l6ZSA9IHNpemU7CkBAIC01NTksNyArNTYwLDgg QEAgaW50IHRsc19zd19zZW5kcGFnZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBwYWdlICpwYWdl LAogCiAJc2tfY2xlYXJfYml0KFNPQ0tXUV9BU1lOQ19OT1NQQUNFLCBzayk7CiAKLQlpZiAodGxz X2NvbXBsZXRlX3BlbmRpbmdfd29yayhzaywgdGxzX2N0eCwgZmxhZ3MsICZ0aW1lbykpCisJcmV0 ID0gdGxzX2NvbXBsZXRlX3BlbmRpbmdfd29yayhzaywgdGxzX2N0eCwgZmxhZ3MsICZ0aW1lbyk7 CisJaWYgKHJldCkKIAkJZ290byBzZW5kcGFnZV9lbmQ7CiAKIAkvKiBDYWxsIHRoZSBza19zdHJl YW0gZnVuY3Rpb25zIHRvIG1hbmFnZSB0aGUgc25kYnVmIG1lbS4gKi8KLS0gCkJlbiBIdXRjaGlu Z3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsg THRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91 c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN YW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSA2ZmNhMDJmZDNiM2M1NGYy YWM5ZWZiNzgxZTk1Yzg3ZjVmZDc0ZjJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBM aW9yIERhdmlkIDxxY2FfbGlvcmRAcWNhLnF1YWxjb21tLmNvbT4KRGF0ZTogVHVlLCAxNCBOb3Yg MjAxNyAxNToyNTozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQvNDZdIHdpbDYyMTA6IG1pc3Np bmcgbGVuZ3RoIGNoZWNrIGluIHdtaV9zZXRfaWUKCmNvbW1pdCBiNWE4ZmZjYWU0MTAzYTlkODIz ZWEzYWEzYTc2MWY2NTc3OWZiZTJhIHVwc3RyZWFtLgoKQWRkIGEgbGVuZ3RoIGNoZWNrIGluIHdt aV9zZXRfaWUgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIKb3ZlcmZsb3cuCgpTaWduZWQtb2Zm LWJ5OiBMaW9yIERhdmlkIDxxY2FfbGlvcmRAcWNhLnF1YWxjb21tLmNvbT4KU2lnbmVkLW9mZi1i eTogTWF5YSBFcmV6IDxxY2FfbWVyZXpAcWNhLnF1YWxjb21tLmNvbT4KU2lnbmVkLW9mZi1ieTog S2FsbGUgVmFsbyA8a3ZhbG9AcWNhLnF1YWxjb21tLmNvbT4KU2lnbmVkLW9mZi1ieTogQmVuIEh1 dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL3dpbDYyMTAvd21pLmMgfCA4ICsrKysrKystCiAxIGZpbGUgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL3dpbDYyMTAvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvd2ls NjIxMC93bWkuYwppbmRleCBmZmRkMmZhNDAxYjEuLmQ2M2Q3YzMyNjgwMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL3dpbDYyMTAvd21pLmMKKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL3dpbDYyMTAvd21pLmMKQEAgLTEzODAsOCArMTM4MCwxNCBAQCBpbnQgd21p X3NldF9pZShzdHJ1Y3Qgd2lsNjIxMF9wcml2ICp3aWwsIHU4IHR5cGUsIHUxNiBpZV9sZW4sIGNv bnN0IHZvaWQgKmllKQogCX07CiAJaW50IHJjOwogCXUxNiBsZW4gPSBzaXplb2Yoc3RydWN0IHdt aV9zZXRfYXBwaWVfY21kKSArIGllX2xlbjsKLQlzdHJ1Y3Qgd21pX3NldF9hcHBpZV9jbWQgKmNt ZCA9IGt6YWxsb2MobGVuLCBHRlBfS0VSTkVMKTsKKwlzdHJ1Y3Qgd21pX3NldF9hcHBpZV9jbWQg KmNtZDsKIAorCWlmIChsZW4gPCBpZV9sZW4pIHsKKwkJcmMgPSAtRUlOVkFMOworCQlnb3RvIG91 dDsKKwl9CisKKwljbWQgPSBremFsbG9jKGxlbiwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbWQpIHsK IAkJcmMgPSAtRU5PTUVNOwogCQlnb3RvIG91dDsKLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJl IERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8v d3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUg U3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBN MSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSAwZDIwY2I0ZWM2NzMxOTA2MDY1MGM3MWIxMjhi MDUyYmE3NGFiNzUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdSBKaW54aWFuZyA8 Z3VqeEBjbi5mdWppdHN1LmNvbT4KRGF0ZTogV2VkLCA0IEp1bCAyMDE4IDE4OjE2OjM5ICswODAw ClN1YmplY3Q6IFtQQVRDSCAxNS80Nl0gYnRyZnM6IHZhbGlkYXRlIHR5cGUgd2hlbiByZWFkaW5n IGEgY2h1bmsKCmNvbW1pdCAzMTU0MDliMDA5OGZiMjY1MWQ4NjU1M2YwNDM2YjcwNTAyYjI5YmIy IHVwc3RyZWFtLgoKUmVwb3J0ZWQgaW4gaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3df YnVnLmNnaT9pZD0xOTk4MzksIHdpdGggYW4KaW1hZ2UgdGhhdCBoYXMgYW4gaW52YWxpZCBjaHVu ayB0eXBlIGJ1dCBkb2VzIG5vdCByZXR1cm4gYW4gZXJyb3IuCgpBZGQgY2h1bmsgdHlwZSBjaGVj ayBpbiBidHJmc19jaGVja19jaHVua192YWxpZCwgdG8gZGV0ZWN0IHRoZSB3cm9uZwp0eXBlIGNv bWJpbmF0aW9ucy4KCkxpbms6IGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9MTk5ODM5ClJlcG9ydGVkLWJ5OiBYdSBXZW4gPHdlbi54dUBnYXRlY2guZWR1PgpSZXZp ZXdlZC1ieTogUXUgV2VucnVvIDx3cXVAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEd1IEppbnhp YW5nIDxndWp4QGNuLmZ1aml0c3UuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTdGVyYmEgPGRz dGVyYmFAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGlu Z3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2J0cmZzL3ZvbHVtZXMuYyB8IDI4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvZnMvYnRyZnMvdm9sdW1lcy5jIGIvZnMvYnRyZnMvdm9sdW1lcy5jCmluZGV4 IGEwOTQ3ZjRhM2U4Ny4uY2ZkNTcyOGU3NTE5IDEwMDY0NAotLS0gYS9mcy9idHJmcy92b2x1bWVz LmMKKysrIGIvZnMvYnRyZnMvdm9sdW1lcy5jCkBAIC02MzUzLDYgKzYzNTMsOCBAQCBzdGF0aWMg aW50IGJ0cmZzX2NoZWNrX2NodW5rX3ZhbGlkKHN0cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZv LAogCXUxNiBudW1fc3RyaXBlczsKIAl1MTYgc3ViX3N0cmlwZXM7CiAJdTY0IHR5cGU7CisJdTY0 IGZlYXR1cmVzOworCWJvb2wgbWl4ZWQgPSBmYWxzZTsKIAogCWxlbmd0aCA9IGJ0cmZzX2NodW5r X2xlbmd0aChsZWFmLCBjaHVuayk7CiAJc3RyaXBlX2xlbiA9IGJ0cmZzX2NodW5rX3N0cmlwZV9s ZW4obGVhZiwgY2h1bmspOwpAQCAtNjM5MSw2ICs2MzkzLDMyIEBAIHN0YXRpYyBpbnQgYnRyZnNf Y2hlY2tfY2h1bmtfdmFsaWQoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8sCiAJCQkgIGJ0 cmZzX2NodW5rX3R5cGUobGVhZiwgY2h1bmspKTsKIAkJcmV0dXJuIC1FSU87CiAJfQorCisJaWYg KCh0eXBlICYgQlRSRlNfQkxPQ0tfR1JPVVBfVFlQRV9NQVNLKSA9PSAwKSB7CisJCWJ0cmZzX2Vy cihmc19pbmZvLCAibWlzc2luZyBjaHVuayB0eXBlIGZsYWc6IDB4JWxseCIsIHR5cGUpOworCQly ZXR1cm4gLUVJTzsKKwl9CisKKwlpZiAoKHR5cGUgJiBCVFJGU19CTE9DS19HUk9VUF9TWVNURU0p ICYmCisJICAgICh0eXBlICYgKEJUUkZTX0JMT0NLX0dST1VQX01FVEFEQVRBIHwgQlRSRlNfQkxP Q0tfR1JPVVBfREFUQSkpKSB7CisJCWJ0cmZzX2Vycihmc19pbmZvLAorCQkJInN5c3RlbSBjaHVu ayB3aXRoIGRhdGEgb3IgbWV0YWRhdGEgdHlwZTogMHglbGx4IiwgdHlwZSk7CisJCXJldHVybiAt RUlPOworCX0KKworCWZlYXR1cmVzID0gYnRyZnNfc3VwZXJfaW5jb21wYXRfZmxhZ3MoZnNfaW5m by0+c3VwZXJfY29weSk7CisJaWYgKGZlYXR1cmVzICYgQlRSRlNfRkVBVFVSRV9JTkNPTVBBVF9N SVhFRF9HUk9VUFMpCisJCW1peGVkID0gdHJ1ZTsKKworCWlmICghbWl4ZWQpIHsKKwkJaWYgKCh0 eXBlICYgQlRSRlNfQkxPQ0tfR1JPVVBfTUVUQURBVEEpICYmCisJCSAgICAodHlwZSAmIEJUUkZT X0JMT0NLX0dST1VQX0RBVEEpKSB7CisJCQlidHJmc19lcnIoZnNfaW5mbywKKwkJCSJtaXhlZCBj aHVuayB0eXBlIGluIG5vbi1taXhlZCBtb2RlOiAweCVsbHgiLCB0eXBlKTsKKwkJCXJldHVybiAt RUlPOworCQl9CisJfQorCiAJaWYgKCh0eXBlICYgQlRSRlNfQkxPQ0tfR1JPVVBfUkFJRDEwICYm IHN1Yl9zdHJpcGVzICE9IDIpIHx8CiAJICAgICh0eXBlICYgQlRSRlNfQkxPQ0tfR1JPVVBfUkFJ RDEgJiYgbnVtX3N0cmlwZXMgPCAxKSB8fAogCSAgICAodHlwZSAmIEJUUkZTX0JMT0NLX0dST1VQ X1JBSUQ1ICYmIG51bV9zdHJpcGVzIDwgMikgfHwKLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJl IERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8v d3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUg U3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBN MSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSA1YWY2YTQ0YzRhOGY4MDQyYjkxNzkyMzU2NWI4 YzkyMzY1MmU0NDQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBRdSBXZW5ydW8gPHdx dUBzdXNlLmNvbT4KRGF0ZTogV2VkLCAxIEF1ZyAyMDE4IDEwOjM3OjE3ICswODAwClN1YmplY3Q6 IFtQQVRDSCAxNi80Nl0gYnRyZnM6IFZlcmlmeSB0aGF0IGV2ZXJ5IGNodW5rIGhhcyBjb3JyZXNw b25kaW5nIGJsb2NrCiBncm91cCBhdCBtb3VudCB0aW1lCgpjb21taXQgN2VmNDk1MTVmYTY3Mjdj YjRiNmYyZjViMGZmYmM1ZmMyMGE5ZjhjNiB1cHN0cmVhbS4KCklmIGEgY3JhZnRlZCBpbWFnZSBo YXMgbWlzc2luZyBibG9jayBncm91cCBpdGVtcywgaXQgY291bGQgY2F1c2UKdW5leHBlY3RlZCBi ZWhhdmlvciBhbmQgYnJlYWtzIHRoZSBhc3N1bXB0aW9uIG9mIDE6MSBjaHVuazwtPmJsb2NrIGdy b3VwCm1hcHBpbmcuCgpBbHRob3VnaCB3ZSBoYXZlIHRoZSBibG9jayBncm91cCAtPiBjaHVuayBt YXBwaW5nIGNoZWNrLCB3ZSBzdGlsbCBuZWVkCmNodW5rIC0+IGJsb2NrIGdyb3VwIG1hcHBpbmcg Y2hlY2suCgpUaGlzIHBhdGNoIHdpbGwgZG8gZXh0cmEgY2hlY2sgdG8gZW5zdXJlIGVhY2ggY2h1 bmsgaGFzIGl0cwpjb3JyZXNwb25kaW5nIGJsb2NrIGdyb3VwLgoKTGluazogaHR0cHM6Ly9idWd6 aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDcKUmVwb3J0ZWQtYnk6IFh1IFdl biA8d2VuLnh1QGdhdGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IFF1IFdlbnJ1byA8d3F1QHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogR3UgSmlueGlhbmcgPGd1anhAY24uZnVqaXRzdS5jb20+ClJldmll d2VkLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFN0ZXJiYSA8ZHN0ZXJiYUBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5n cyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvYnRyZnMvZXh0ZW50LXRy ZWUuYyB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystCiAxIGZpbGUgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMgYi9mcy9idHJmcy9leHRlbnQtdHJlZS5j CmluZGV4IDJjYjM1NjlhYzU0OC4uZmRjNDJlZGRjY2MyIDEwMDY0NAotLS0gYS9mcy9idHJmcy9l eHRlbnQtdHJlZS5jCisrKyBiL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMKQEAgLTEwMDkyLDYgKzEw MDkyLDYyIEBAIGJ0cmZzX2NyZWF0ZV9ibG9ja19ncm91cF9jYWNoZShzdHJ1Y3QgYnRyZnNfZnNf aW5mbyAqZnNfaW5mbywKIAlyZXR1cm4gY2FjaGU7CiB9CiAKKworLyoKKyAqIEl0ZXJhdGUgYWxs IGNodW5rcyBhbmQgdmVyaWZ5IHRoYXQgZWFjaCBvZiB0aGVtIGhhcyB0aGUgY29ycmVzcG9uZGlu ZyBibG9jaworICogZ3JvdXAKKyAqLworc3RhdGljIGludCBjaGVja19jaHVua19ibG9ja19ncm91 cF9tYXBwaW5ncyhzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbykKK3sKKwlzdHJ1Y3QgYnRy ZnNfbWFwcGluZ190cmVlICptYXBfdHJlZSA9ICZmc19pbmZvLT5tYXBwaW5nX3RyZWU7CisJc3Ry dWN0IGV4dGVudF9tYXAgKmVtOworCXN0cnVjdCBidHJmc19ibG9ja19ncm91cF9jYWNoZSAqYmc7 CisJdTY0IHN0YXJ0ID0gMDsKKwlpbnQgcmV0ID0gMDsKKworCXdoaWxlICgxKSB7CisJCXJlYWRf bG9jaygmbWFwX3RyZWUtPm1hcF90cmVlLmxvY2spOworCQkvKgorCQkgKiBsb29rdXBfZXh0ZW50 X21hcHBpbmcgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGV4dGVudCBtYXAKKwkJICogaW50ZXJzZWN0 aW5nIHRoZSByYW5nZSwgc28gc2V0dGluZyBAbGVuIHRvIDEgaXMgZW5vdWdoIHRvCisJCSAqIGdl dCB0aGUgZmlyc3QgY2h1bmsuCisJCSAqLworCQllbSA9IGxvb2t1cF9leHRlbnRfbWFwcGluZygm bWFwX3RyZWUtPm1hcF90cmVlLCBzdGFydCwgMSk7CisJCXJlYWRfdW5sb2NrKCZtYXBfdHJlZS0+ bWFwX3RyZWUubG9jayk7CisJCWlmICghZW0pCisJCQlicmVhazsKKworCQliZyA9IGJ0cmZzX2xv b2t1cF9ibG9ja19ncm91cChmc19pbmZvLCBlbS0+c3RhcnQpOworCQlpZiAoIWJnKSB7CisJCQli dHJmc19lcnIoZnNfaW5mbywKKwkiY2h1bmsgc3RhcnQ9JWxsdSBsZW49JWxsdSBkb2Vzbid0IGhh dmUgY29ycmVzcG9uZGluZyBibG9jayBncm91cCIsCisJCQkJICAgICBlbS0+c3RhcnQsIGVtLT5s ZW4pOworCQkJcmV0ID0gLUVVQ0xFQU47CisJCQlmcmVlX2V4dGVudF9tYXAoZW0pOworCQkJYnJl YWs7CisJCX0KKwkJaWYgKGJnLT5rZXkub2JqZWN0aWQgIT0gZW0tPnN0YXJ0IHx8CisJCSAgICBi Zy0+a2V5Lm9mZnNldCAhPSBlbS0+bGVuIHx8CisJCSAgICAoYmctPmZsYWdzICYgQlRSRlNfQkxP Q0tfR1JPVVBfVFlQRV9NQVNLKSAhPQorCQkgICAgKGVtLT5tYXBfbG9va3VwLT50eXBlICYgQlRS RlNfQkxPQ0tfR1JPVVBfVFlQRV9NQVNLKSkgeworCQkJYnRyZnNfZXJyKGZzX2luZm8sCisiY2h1 bmsgc3RhcnQ9JWxsdSBsZW49JWxsdSBmbGFncz0weCVsbHggZG9lc24ndCBtYXRjaCBibG9jayBn cm91cCBzdGFydD0lbGx1IGxlbj0lbGx1IGZsYWdzPTB4JWxseCIsCisJCQkJZW0tPnN0YXJ0LCBl bS0+bGVuLAorCQkJCWVtLT5tYXBfbG9va3VwLT50eXBlICYgQlRSRlNfQkxPQ0tfR1JPVVBfVFlQ RV9NQVNLLAorCQkJCWJnLT5rZXkub2JqZWN0aWQsIGJnLT5rZXkub2Zmc2V0LAorCQkJCWJnLT5m bGFncyAmIEJUUkZTX0JMT0NLX0dST1VQX1RZUEVfTUFTSyk7CisJCQlyZXQgPSAtRVVDTEVBTjsK KwkJCWZyZWVfZXh0ZW50X21hcChlbSk7CisJCQlidHJmc19wdXRfYmxvY2tfZ3JvdXAoYmcpOwor CQkJYnJlYWs7CisJCX0KKwkJc3RhcnQgPSBlbS0+c3RhcnQgKyBlbS0+bGVuOworCQlmcmVlX2V4 dGVudF9tYXAoZW0pOworCQlidHJmc19wdXRfYmxvY2tfZ3JvdXAoYmcpOworCX0KKwlyZXR1cm4g cmV0OworfQorCiBpbnQgYnRyZnNfcmVhZF9ibG9ja19ncm91cHMoc3RydWN0IGJ0cmZzX2ZzX2lu Zm8gKmluZm8pCiB7CiAJc3RydWN0IGJ0cmZzX3BhdGggKnBhdGg7CkBAIC0xMDI2NCw3ICsxMDMy MCw3IEBAIGludCBidHJmc19yZWFkX2Jsb2NrX2dyb3VwcyhzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAq aW5mbykKIAl9CiAKIAlpbml0X2dsb2JhbF9ibG9ja19yc3YoaW5mbyk7Ci0JcmV0ID0gMDsKKwly ZXQgPSBjaGVja19jaHVua19ibG9ja19ncm91cF9tYXBwaW5ncyhpbmZvKTsKIGVycm9yOgogCWJ0 cmZzX2ZyZWVfcGF0aChwYXRoKTsKIAlyZXR1cm4gcmV0OwotLSAKQmVuIEh1dGNoaW5ncywgU29m dHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0 cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUg RGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0 ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIGJhOWVhZGI0ZmIyYmZiNGM4N2NkNmJm ZDRkNGEwZGYyZTFiODExM2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFF1IFdlbnJ1 byA8cXV3ZW5ydW8uYnRyZnNAZ214LmNvbT4KRGF0ZTogV2VkLCAyMyBBdWcgMjAxNyAxNjo1Nzo1 NiArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMTcvNDZdIGJ0cmZzOiBSZWZhY3RvciBjaGVja19sZWFm IGZ1bmN0aW9uIGZvciBsYXRlciBleHBhbnNpb24KCmNvbW1pdCBjMzI2N2JiYWE5Y2FlMDliNjI5 NjBlYWZlMzNhZDE5MTk2ODAzMjg1IHVwc3RyZWFtLgoKQ3VycmVudCBjaGVja19sZWFmKCkgZnVu Y3Rpb24gZG9lcyBhIGdvb2Qgam9iIGNoZWNraW5nIGtleSBvcmRlciBhbmQKaXRlbSBvZmZzZXQv c2l6ZS4KCkhvd2V2ZXIgaXQgb25seSBjaGVja3MgZnJvbSBzbG90IDAgdG8gdGhlIGxhc3QgYnV0 IG9uZSBzbG90LCB0aGlzIGlzCmdvb2QgYnV0IG1ha2VzIGxhdGVyIGV4cGFuc2lvbiBoYXJkLgoK U28gdGhpcyByZWZhY3RvcmluZyBpdGVyYXRlcyBmcm9tIHNsb3QgMCB0byB0aGUgbGFzdCBzbG90 LgpGb3Iga2V5IGNvbXBhcmlzb24sIGl0IHVzZXMgYSBrZXkgd2l0aCBhbGwgMCBhcyBpbml0aWFs IGtleSwgc28gYWxsCnZhbGlkIGtleXMgc2hvdWxkIGJlIGxhcmdlciB0aGFuIHRoYXQuCgpBbmQg Zm9yIGl0ZW0gc2l6ZS9vZmZzZXQgY2hlY2tzLCBpdCBjb21wYXJlcyBjdXJyZW50IGl0ZW0gZW5k IHdpdGgKcHJldmlvdXMgaXRlbSBvZmZzZXQuCkZvciBzbG90IDAsIHVzZSBsZWFmIGVuZCBhcyBh IHNwZWNpYWwgY2FzZS4KClRoaXMgbWFrZXMgbGF0ZXIgaXRlbS9rZXkgb2Zmc2V0IGNoZWNrcyBh bmQgaXRlbSBzaXplIGNoZWNrcyBlYXNpZXIgdG8KYmUgaW1wbGVtZW50ZWQuCgpBbHNvLCBtYWtl cyBjaGVja19sZWFmKCkgdG8gcmV0dXJuIC1FVUNMRUFOIG90aGVyIHRoYW4gLUVJTyB0byBpbmRp Y2F0ZQplcnJvci4KClNpZ25lZC1vZmYtYnk6IFF1IFdlbnJ1byA8cXV3ZW5ydW8uYnRyZnNAZ214 LmNvbT4KUmV2aWV3ZWQtYnk6IE5pa29sYXkgQm9yaXNvdiA8bmJvcmlzb3ZAc3VzZS5jb20+ClJl dmlld2VkLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFN0ZXJiYSA8ZHN0ZXJiYUBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNo aW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvYnRyZnMvZGlzay1p by5jIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9mcy9idHJmcy9kaXNrLWlvLmMgYi9mcy9idHJmcy9kaXNrLWlvLmMKaW5kZXgg NWNmMWJiZTk3NTRjLi45NTcyZjU1NjFkOTggMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2Rpc2staW8u YworKysgYi9mcy9idHJmcy9kaXNrLWlvLmMKQEAgLTU1NCw4ICs1NTQsOSBAQCBzdGF0aWMgbm9p bmxpbmUgaW50IGNoZWNrX2xlYWYoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJCQkgICAgICAg c3RydWN0IGV4dGVudF9idWZmZXIgKmxlYWYpCiB7CiAJc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZz X2luZm8gPSByb290LT5mc19pbmZvOworCS8qIE5vIHZhbGlkIGtleSB0eXBlIGlzIDAsIHNvIGFs bCBrZXkgc2hvdWxkIGJlIGxhcmdlciB0aGFuIHRoaXMga2V5ICovCisJc3RydWN0IGJ0cmZzX2tl eSBwcmV2X2tleSA9IHswLCAwLCAwfTsKIAlzdHJ1Y3QgYnRyZnNfa2V5IGtleTsKLQlzdHJ1Y3Qg YnRyZnNfa2V5IGxlYWZfa2V5OwogCXUzMiBucml0ZW1zID0gYnRyZnNfaGVhZGVyX25yaXRlbXMo bGVhZik7CiAJaW50IHNsb3Q7CiAKQEAgLTU4OCw3ICs1ODksNyBAQCBzdGF0aWMgbm9pbmxpbmUg aW50IGNoZWNrX2xlYWYoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJCQkJQ09SUlVQVCgibm9u LXJvb3QgbGVhZidzIG5yaXRlbXMgaXMgMCIsCiAJCQkJCWxlYWYsIGNoZWNrX3Jvb3QsIDApOwog CQkJCWZyZWVfZXh0ZW50X2J1ZmZlcihlYik7Ci0JCQkJcmV0dXJuIC1FSU87CisJCQkJcmV0dXJu IC1FVUNMRUFOOwogCQkJfQogCQkJZnJlZV9leHRlbnRfYnVmZmVyKGViKTsKIAkJfQpAQCAtNTk4 LDI4ICs1OTksMjMgQEAgc3RhdGljIG5vaW5saW5lIGludCBjaGVja19sZWFmKHN0cnVjdCBidHJm c19yb290ICpyb290LAogCWlmIChucml0ZW1zID09IDApCiAJCXJldHVybiAwOwogCi0JLyogQ2hl Y2sgdGhlIDAgaXRlbSAqLwotCWlmIChidHJmc19pdGVtX29mZnNldF9ucihsZWFmLCAwKSArIGJ0 cmZzX2l0ZW1fc2l6ZV9ucihsZWFmLCAwKSAhPQotCSAgICBCVFJGU19MRUFGX0RBVEFfU0laRShm c19pbmZvKSkgewotCQlDT1JSVVBUKCJpbnZhbGlkIGl0ZW0gb2Zmc2V0IHNpemUgcGFpciIsIGxl YWYsIHJvb3QsIDApOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KIAkvKgotCSAqIENoZWNrIHRvIG1h a2Ugc3VyZSBlYWNoIGl0ZW1zIGtleXMgYXJlIGluIHRoZSBjb3JyZWN0IG9yZGVyIGFuZCB0aGVp cgotCSAqIG9mZnNldHMgbWFrZSBzZW5zZS4gIFdlIG9ubHkgaGF2ZSB0byBsb29wIHRocm91Z2gg bnJpdGVtcy0xIGJlY2F1c2UKLQkgKiB3ZSBjaGVjayB0aGUgY3VycmVudCBzbG90IGFnYWluc3Qg dGhlIG5leHQgc2xvdCwgd2hpY2ggdmVyaWZpZXMgdGhlCi0JICogbmV4dCBzbG90J3Mgb2Zmc2V0 K3NpemUgbWFrZXMgc2Vuc2UgYW5kIHRoYXQgdGhlIGN1cnJlbnQncyBzbG90Ci0JICogb2Zmc2V0 IGlzIGNvcnJlY3QuCisJICogQ2hlY2sgdGhlIGZvbGxvd2luZyB0aGluZ3MgdG8gbWFrZSBzdXJl IHRoaXMgaXMgYSBnb29kIGxlYWYsIGFuZAorCSAqIGxlYWYgdXNlcnMgd29uJ3QgbmVlZCB0byBi b3RoZXIgd2l0aCBzaW1pbGFyIHNhbml0eSBjaGVja3M6CisJICoKKwkgKiAxKSBrZXkgb3JkZXIK KwkgKiAyKSBpdGVtIG9mZnNldCBhbmQgc2l6ZQorCSAqICAgIE5vIG92ZXJsYXAsIG5vIGhvbGUs IGFsbCBpbnNpZGUgdGhlIGxlYWYuCiAJICovCi0JZm9yIChzbG90ID0gMDsgc2xvdCA8IG5yaXRl bXMgLSAxOyBzbG90KyspIHsKLQkJYnRyZnNfaXRlbV9rZXlfdG9fY3B1KGxlYWYsICZsZWFmX2tl eSwgc2xvdCk7Ci0JCWJ0cmZzX2l0ZW1fa2V5X3RvX2NwdShsZWFmLCAma2V5LCBzbG90ICsgMSk7 CisJZm9yIChzbG90ID0gMDsgc2xvdCA8IG5yaXRlbXM7IHNsb3QrKykgeworCQl1MzIgaXRlbV9l bmRfZXhwZWN0ZWQ7CisKKwkJYnRyZnNfaXRlbV9rZXlfdG9fY3B1KGxlYWYsICZrZXksIHNsb3Qp OwogCiAJCS8qIE1ha2Ugc3VyZSB0aGUga2V5cyBhcmUgaW4gdGhlIHJpZ2h0IG9yZGVyICovCi0J CWlmIChidHJmc19jb21wX2NwdV9rZXlzKCZsZWFmX2tleSwgJmtleSkgPj0gMCkgeworCQlpZiAo YnRyZnNfY29tcF9jcHVfa2V5cygmcHJldl9rZXksICZrZXkpID49IDApIHsKIAkJCUNPUlJVUFQo ImJhZCBrZXkgb3JkZXIiLCBsZWFmLCByb290LCBzbG90KTsKLQkJCXJldHVybiAtRUlPOworCQkJ cmV0dXJuIC1FVUNMRUFOOwogCQl9CiAKIAkJLyoKQEAgLTYyNywxMCArNjIzLDE0IEBAIHN0YXRp YyBub2lubGluZSBpbnQgY2hlY2tfbGVhZihzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKIAkJICog aXRlbSBkYXRhIHN0YXJ0cyBhdCB0aGUgZW5kIG9mIHRoZSBsZWFmIGFuZCBncm93cyB0b3dhcmRz IHRoZQogCQkgKiBmcm9udC4KIAkJICovCi0JCWlmIChidHJmc19pdGVtX29mZnNldF9ucihsZWFm LCBzbG90KSAhPQotCQkJYnRyZnNfaXRlbV9lbmRfbnIobGVhZiwgc2xvdCArIDEpKSB7CisJCWlm IChzbG90ID09IDApCisJCQlpdGVtX2VuZF9leHBlY3RlZCA9IEJUUkZTX0xFQUZfREFUQV9TSVpF KGZzX2luZm8pOworCQllbHNlCisJCQlpdGVtX2VuZF9leHBlY3RlZCA9IGJ0cmZzX2l0ZW1fb2Zm c2V0X25yKGxlYWYsCisJCQkJCQkJCSBzbG90IC0gMSk7CisJCWlmIChidHJmc19pdGVtX2VuZF9u cihsZWFmLCBzbG90KSAhPSBpdGVtX2VuZF9leHBlY3RlZCkgewogCQkJQ09SUlVQVCgic2xvdCBv ZmZzZXQgYmFkIiwgbGVhZiwgcm9vdCwgc2xvdCk7Ci0JCQlyZXR1cm4gLUVJTzsKKwkJCXJldHVy biAtRVVDTEVBTjsKIAkJfQogCiAJCS8qCkBAIC02NDEsOCArNjQxLDEyIEBAIHN0YXRpYyBub2lu bGluZSBpbnQgY2hlY2tfbGVhZihzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKIAkJaWYgKGJ0cmZz X2l0ZW1fZW5kX25yKGxlYWYsIHNsb3QpID4KIAkJICAgIEJUUkZTX0xFQUZfREFUQV9TSVpFKGZz X2luZm8pKSB7CiAJCQlDT1JSVVBUKCJzbG90IGVuZCBvdXRzaWRlIG9mIGxlYWYiLCBsZWFmLCBy b290LCBzbG90KTsKLQkJCXJldHVybiAtRUlPOworCQkJcmV0dXJuIC1FVUNMRUFOOwogCQl9CisK KwkJcHJldl9rZXkub2JqZWN0aWQgPSBrZXkub2JqZWN0aWQ7CisJCXByZXZfa2V5LnR5cGUgPSBr ZXkudHlwZTsKKwkJcHJldl9rZXkub2Zmc2V0ID0ga2V5Lm9mZnNldDsKIAl9CiAKIAlyZXR1cm4g MDsKLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAg ICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAg ICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJv bSA5ZjZjOWJiMDI0ODZjZmQ3NDg2OGU4NWM2OWU2NzJiMGMyZjkyOTJmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBRdSBXZW5ydW8gPHF1d2VucnVvLmJ0cmZzQGdteC5jb20+CkRhdGU6 IFdlZCwgMjMgQXVnIDIwMTcgMTY6NTc6NTcgKzA5MDAKU3ViamVjdDogW1BBVENIIDE4LzQ2XSBi dHJmczogQ2hlY2sgaWYgaXRlbSBwb2ludGVyIG92ZXJsYXBzIHdpdGggdGhlIGl0ZW0KIGl0c2Vs ZgoKY29tbWl0IDdmNDNkNGFmZmIyYTI1NGQ0MjFhYjIwYjBjZjY1YWMyNTY5OTA5ZmIgdXBzdHJl YW0uCgpGdW5jdGlvbiBjaGVja19sZWFmKCkgY2hlY2tzIGlmIGFueSBpdGVtIHBvaW50ZXIgcG9p bnRzIG91dHNpZGUgb2YgdGhlCmxlYWYsIGJ1dCBpdCBkb2Vzbid0IGNoZWNrIGlmIHRoZSBwb2lu dGVyIG92ZXJsYXBzIHdpdGggdGhlIGl0ZW0gaXRzZWxmLgoKTm9ybWFsbHkgb25seSB0aGUgbGFz dCBpdGVtIG1heSBiZSB0aGUgdmljdGltLCBidXQgYWRkaW5nIHN1Y2ggY2hlY2sgaXMKbmV2ZXIg YSBiYWQgaWRlYSBhbnl3YXkuCgpTaWduZWQtb2ZmLWJ5OiBRdSBXZW5ydW8gPHF1d2VucnVvLmJ0 cmZzQGdteC5jb20+ClJldmlld2VkLWJ5OiBOaWtvbGF5IEJvcmlzb3YgPG5ib3Jpc292QHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogRGF2aWQgU3RlcmJhIDxkc3RlcmJhQHN1c2UuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJl biBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2J0cmZz L2Rpc2staW8uYyB8IDcgKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2Rpc2staW8uYyBiL2ZzL2J0cmZzL2Rpc2staW8uYwppbmRl eCA5NTcyZjU1NjFkOTguLmU1ZjcyYzhjNzFlMSAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvZGlzay1p by5jCisrKyBiL2ZzL2J0cmZzL2Rpc2staW8uYwpAQCAtNjQ0LDYgKzY0NCwxMyBAQCBzdGF0aWMg bm9pbmxpbmUgaW50IGNoZWNrX2xlYWYoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJCQlyZXR1 cm4gLUVVQ0xFQU47CiAJCX0KIAorCQkvKiBBbHNvIGNoZWNrIGlmIHRoZSBpdGVtIHBvaW50ZXIg b3ZlcmxhcHMgd2l0aCBidHJmcyBpdGVtLiAqLworCQlpZiAoYnRyZnNfaXRlbV9ucl9vZmZzZXQo c2xvdCkgKyBzaXplb2Yoc3RydWN0IGJ0cmZzX2l0ZW0pID4KKwkJICAgIGJ0cmZzX2l0ZW1fcHRy X29mZnNldChsZWFmLCBzbG90KSkgeworCQkJQ09SUlVQVCgic2xvdCBvdmVybGFwIHdpdGggaXRz IGRhdGEiLCBsZWFmLCByb290LCBzbG90KTsKKwkJCXJldHVybiAtRVVDTEVBTjsKKwkJfQorCiAJ CXByZXZfa2V5Lm9iamVjdGlkID0ga2V5Lm9iamVjdGlkOwogCQlwcmV2X2tleS50eXBlID0ga2V5 LnR5cGU7CiAJCXByZXZfa2V5Lm9mZnNldCA9IGtleS5vZmZzZXQ7Ci0tIApCZW4gSHV0Y2hpbmdz LCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0 ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNl LCAzNSBEYWxlIFN0cmVldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFu Y2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gNjQ3YjM0M2RmNDUyZmM0ZGUw ODhjNmQwMTRmMTNiYjhmNmQ3Mjk1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUXUg V2VucnVvIDxxdXdlbnJ1by5idHJmc0BnbXguY29tPgpEYXRlOiBXZWQsIDIzIEF1ZyAyMDE3IDE2 OjU3OjU4ICswOTAwClN1YmplY3Q6IFtQQVRDSCAxOS80Nl0gYnRyZnM6IEFkZCBzYW5pdHkgY2hl Y2sgZm9yIEVYVEVOVF9EQVRBIHdoZW4gcmVhZGluZwogb3V0IGxlYWYKCmNvbW1pdCA0MGMzYzQw OTQ3MzI0ZDlmNDBiZjQ3ODMwYzkyYzU5YTliYmFkZjRhIHVwc3RyZWFtLgoKQWRkIGV4dHJhIGNo ZWNrcyBmb3IgaXRlbSB3aXRoIEVYVEVOVF9EQVRBIHR5cGUuICBUaGlzIGNoZWNrcyB0aGUKZm9s bG93aW5nIHRoaW5nOgoKMCkgS2V5IG9mZnNldAogICBBbGwga2V5IG9mZnNldHMgbXVzdCBiZSBh bGlnbmVkIHRvIHNlY3RvcnNpemUuCiAgIElubGluZSBleHRlbnQgbXVzdCBoYXZlIDAgZm9yIGtl eSBvZmZzZXQuCgoxKSBJdGVtIHNpemUKICAgVW5jb21wcmVzc2VkIGlubGluZSBmaWxlIGV4dGVu dCBzaXplIG11c3QgbWF0Y2ggaXRlbSBzaXplLgogICAoQ29tcHJlc3NlZCBpbmxpbmUgZmlsZSBl eHRlbnQgaGFzIG5vIGluZm9ybWF0aW9uIGFib3V0IGl0cyBvbi1kaXNrIHNpemUuKQogICBSZWd1 bGFyL3ByZWFsbG9jYXRlZCBmaWxlIGV4dGVudCBzaXplIG11c3QgYmUgYSBmaXhlZCB2YWx1ZS4K CjIpIEV2ZXJ5IG1lbWJlciBvZiByZWd1bGFyIGZpbGUgZXh0ZW50IGl0ZW0KICAgSW5jbHVkaW5n IGFsaWdubWVudCBmb3IgYnl0ZW5yIGFuZCBvZmZzZXQsIHBvc3NpYmxlIHZhbHVlIGZvcgogICBj b21wcmVzc2lvbi9lbmNyeXB0aW9uL3R5cGUuCgozKSBUeXBlL2NvbXByZXNzaW9uL2VuY29kZSBt dXN0IGJlIG9uZSBvZiB0aGUgdmFsaWQgdmFsdWVzLgoKVGhpcyBzaG91bGQgYmUgdGhlIG1vc3Qg Y29tcHJlaGVuc2l2ZSBhbmQgc3RyaWN0IGNoZWNrIGluIHRoZSBjb250ZXh0Cm9mIGJ0cmZzX2l0 ZW0gZm9yIEVYVEVOVF9EQVRBLgoKU2lnbmVkLW9mZi1ieTogUXUgV2VucnVvIDxxdXdlbnJ1by5i dHJmc0BnbXguY29tPgpSZXZpZXdlZC1ieTogTmlrb2xheSBCb3Jpc292IDxuYm9yaXNvdkBzdXNl LmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIFN0ZXJiYSA8ZHN0ZXJiYUBzdXNlLmNvbT4KWyBzd2l0 Y2ggdG8gQlRSRlNfRklMRV9FWFRFTlRfVFlQRVMsIHNpbWlsYXIgdG8gd2hhdAogIEJUUkZTX0NP TVBSRVNTX1RZUEVTIGRvZXMgXQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFA c3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29k ZXRoaW5rLmNvLnVrPgotLS0KIGZzL2J0cmZzL2Rpc2staW8uYyAgICAgICAgICAgICAgfCAxMDMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS91YXBpL2xp bnV4L2J0cmZzX3RyZWUuaCB8ICAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvZGlzay1pby5jIGIvZnMvYnRyZnMvZGlzay1pby5j CmluZGV4IGU1ZjcyYzhjNzFlMS4uMTkzMTQxN2Y0Y2I3IDEwMDY0NAotLS0gYS9mcy9idHJmcy9k aXNrLWlvLmMKKysrIGIvZnMvYnRyZnMvZGlzay1pby5jCkBAIC01NTAsNiArNTUwLDEwMCBAQCBz dGF0aWMgaW50IGNoZWNrX3RyZWVfYmxvY2tfZnNpZChzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNf aW5mbywKIAkJICAgYnRyZnNfaGVhZGVyX2xldmVsKGViKSA9PSAwID8gImxlYWYiIDogIm5vZGUi LAlcCiAJCSAgIHJlYXNvbiwgYnRyZnNfaGVhZGVyX2J5dGVucihlYiksIHJvb3QtPm9iamVjdGlk LCBzbG90KQogCitzdGF0aWMgaW50IGNoZWNrX2V4dGVudF9kYXRhX2l0ZW0oc3RydWN0IGJ0cmZz X3Jvb3QgKnJvb3QsCisJCQkJICBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbGVhZiwKKwkJCQkgIHN0 cnVjdCBidHJmc19rZXkgKmtleSwgaW50IHNsb3QpCit7CisJc3RydWN0IGJ0cmZzX2ZpbGVfZXh0 ZW50X2l0ZW0gKmZpOworCXUzMiBzZWN0b3JzaXplID0gcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6 ZTsKKwl1MzIgaXRlbV9zaXplID0gYnRyZnNfaXRlbV9zaXplX25yKGxlYWYsIHNsb3QpOworCisJ aWYgKCFJU19BTElHTkVEKGtleS0+b2Zmc2V0LCBzZWN0b3JzaXplKSkgeworCQlDT1JSVVBUKCJ1 bmFsaWduZWQga2V5IG9mZnNldCBmb3IgZmlsZSBleHRlbnQiLAorCQkJbGVhZiwgcm9vdCwgc2xv dCk7CisJCXJldHVybiAtRVVDTEVBTjsKKwl9CisKKwlmaSA9IGJ0cmZzX2l0ZW1fcHRyKGxlYWYs IHNsb3QsIHN0cnVjdCBidHJmc19maWxlX2V4dGVudF9pdGVtKTsKKworCWlmIChidHJmc19maWxl X2V4dGVudF90eXBlKGxlYWYsIGZpKSA+IEJUUkZTX0ZJTEVfRVhURU5UX1RZUEVTKSB7CisJCUNP UlJVUFQoImludmFsaWQgZmlsZSBleHRlbnQgdHlwZSIsIGxlYWYsIHJvb3QsIHNsb3QpOworCQly ZXR1cm4gLUVVQ0xFQU47CisJfQorCisJLyoKKwkgKiBTdXBwb3J0IGZvciBuZXcgY29tcHJlc3Np b24vZW5jcnB0aW9uIG11c3QgaW50cm9kdWNlIGluY29tcGF0IGZsYWcsCisJICogYW5kIG11c3Qg YmUgY2F1Z2h0IGluIG9wZW5fY3RyZWUoKS4KKwkgKi8KKwlpZiAoYnRyZnNfZmlsZV9leHRlbnRf Y29tcHJlc3Npb24obGVhZiwgZmkpID4gQlRSRlNfQ09NUFJFU1NfVFlQRVMpIHsKKwkJQ09SUlVQ VCgiaW52YWxpZCBmaWxlIGV4dGVudCBjb21wcmVzc2lvbiIsIGxlYWYsIHJvb3QsIHNsb3QpOwor CQlyZXR1cm4gLUVVQ0xFQU47CisJfQorCWlmIChidHJmc19maWxlX2V4dGVudF9lbmNyeXB0aW9u KGxlYWYsIGZpKSkgeworCQlDT1JSVVBUKCJpbnZhbGlkIGZpbGUgZXh0ZW50IGVuY3J5cHRpb24i LCBsZWFmLCByb290LCBzbG90KTsKKwkJcmV0dXJuIC1FVUNMRUFOOworCX0KKwlpZiAoYnRyZnNf ZmlsZV9leHRlbnRfdHlwZShsZWFmLCBmaSkgPT0gQlRSRlNfRklMRV9FWFRFTlRfSU5MSU5FKSB7 CisJCS8qIElubGluZSBleHRlbnQgbXVzdCBoYXZlIDAgYXMga2V5IG9mZnNldCAqLworCQlpZiAo a2V5LT5vZmZzZXQpIHsKKwkJCUNPUlJVUFQoImlubGluZSBleHRlbnQgaGFzIG5vbi16ZXJvIGtl eSBvZmZzZXQiLAorCQkJCWxlYWYsIHJvb3QsIHNsb3QpOworCQkJcmV0dXJuIC1FVUNMRUFOOwor CQl9CisKKwkJLyogQ29tcHJlc3NlZCBpbmxpbmUgZXh0ZW50IGhhcyBubyBvbi1kaXNrIHNpemUs IHNraXAgaXQgKi8KKwkJaWYgKGJ0cmZzX2ZpbGVfZXh0ZW50X2NvbXByZXNzaW9uKGxlYWYsIGZp KSAhPQorCQkgICAgQlRSRlNfQ09NUFJFU1NfTk9ORSkKKwkJCXJldHVybiAwOworCisJCS8qIFVu Y29tcHJlc3NlZCBpbmxpbmUgZXh0ZW50IHNpemUgbXVzdCBtYXRjaCBpdGVtIHNpemUgKi8KKwkJ aWYgKGl0ZW1fc2l6ZSAhPSBCVFJGU19GSUxFX0VYVEVOVF9JTkxJTkVfREFUQV9TVEFSVCArCisJ CSAgICBidHJmc19maWxlX2V4dGVudF9yYW1fYnl0ZXMobGVhZiwgZmkpKSB7CisJCQlDT1JSVVBU KCJwbGFpbnRleHQgaW5saW5lIGV4dGVudCBoYXMgaW52YWxpZCBzaXplIiwKKwkJCQlsZWFmLCBy b290LCBzbG90KTsKKwkJCXJldHVybiAtRVVDTEVBTjsKKwkJfQorCQlyZXR1cm4gMDsKKwl9CisK KwkvKiBSZWd1bGFyIG9yIHByZWFsbG9jYXRlZCBleHRlbnQgaGFzIGZpeGVkIGl0ZW0gc2l6ZSAq LworCWlmIChpdGVtX3NpemUgIT0gc2l6ZW9mKCpmaSkpIHsKKwkJQ09SUlVQVCgKKwkJInJlZ2x1 YXIgb3IgcHJlYWxsb2NhdGVkIGV4dGVudCBkYXRhIGl0ZW0gc2l6ZSBpcyBpbnZhbGlkIiwKKwkJ CWxlYWYsIHJvb3QsIHNsb3QpOworCQlyZXR1cm4gLUVVQ0xFQU47CisJfQorCWlmICghSVNfQUxJ R05FRChidHJmc19maWxlX2V4dGVudF9yYW1fYnl0ZXMobGVhZiwgZmkpLCBzZWN0b3JzaXplKSB8 fAorCSAgICAhSVNfQUxJR05FRChidHJmc19maWxlX2V4dGVudF9kaXNrX2J5dGVucihsZWFmLCBm aSksIHNlY3RvcnNpemUpIHx8CisJICAgICFJU19BTElHTkVEKGJ0cmZzX2ZpbGVfZXh0ZW50X2Rp c2tfbnVtX2J5dGVzKGxlYWYsIGZpKSwgc2VjdG9yc2l6ZSkgfHwKKwkgICAgIUlTX0FMSUdORUQo YnRyZnNfZmlsZV9leHRlbnRfb2Zmc2V0KGxlYWYsIGZpKSwgc2VjdG9yc2l6ZSkgfHwKKwkgICAg IUlTX0FMSUdORUQoYnRyZnNfZmlsZV9leHRlbnRfbnVtX2J5dGVzKGxlYWYsIGZpKSwgc2VjdG9y c2l6ZSkpIHsKKwkJQ09SUlVQVCgKKwkJInJlZ3VsYXIgb3IgcHJlYWxsb2NhdGVkIGV4dGVudCBk YXRhIGl0ZW0gaGFzIHVuYWxpZ25lZCB2YWx1ZSIsCisJCQlsZWFmLCByb290LCBzbG90KTsKKwkJ cmV0dXJuIC1FVUNMRUFOOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogQ29tbW9uIHBv aW50IHRvIHN3aXRjaCB0aGUgaXRlbS1zcGVjaWZpYyB2YWxpZGF0aW9uLgorICovCitzdGF0aWMg aW50IGNoZWNrX2xlYWZfaXRlbShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKKwkJCSAgIHN0cnVj dCBleHRlbnRfYnVmZmVyICpsZWFmLAorCQkJICAgc3RydWN0IGJ0cmZzX2tleSAqa2V5LCBpbnQg c2xvdCkKK3sKKwlpbnQgcmV0ID0gMDsKKworCXN3aXRjaCAoa2V5LT50eXBlKSB7CisJY2FzZSBC VFJGU19FWFRFTlRfREFUQV9LRVk6CisJCXJldCA9IGNoZWNrX2V4dGVudF9kYXRhX2l0ZW0ocm9v dCwgbGVhZiwga2V5LCBzbG90KTsKKwkJYnJlYWs7CisJfQorCXJldHVybiByZXQ7Cit9CisKIHN0 YXRpYyBub2lubGluZSBpbnQgY2hlY2tfbGVhZihzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKIAkJ CSAgICAgICBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbGVhZikKIHsKQEAgLTYwNiw5ICs3MDAsMTMg QEAgc3RhdGljIG5vaW5saW5lIGludCBjaGVja19sZWFmKHN0cnVjdCBidHJmc19yb290ICpyb290 LAogCSAqIDEpIGtleSBvcmRlcgogCSAqIDIpIGl0ZW0gb2Zmc2V0IGFuZCBzaXplCiAJICogICAg Tm8gb3ZlcmxhcCwgbm8gaG9sZSwgYWxsIGluc2lkZSB0aGUgbGVhZi4KKwkgKiAzKSBpdGVtIGNv bnRlbnQKKwkgKiAgICBJZiBwb3NzaWJsZSwgZG8gY29tcHJlaGVuc2l2ZSBzYW5pdHkgY2hlY2su CisJICogICAgTk9URTogQWxsIGNoZWNrcyBtdXN0IG9ubHkgcmVseSBvbiB0aGUgaXRlbSBkYXRh IGl0c2VsZi4KIAkgKi8KIAlmb3IgKHNsb3QgPSAwOyBzbG90IDwgbnJpdGVtczsgc2xvdCsrKSB7 CiAJCXUzMiBpdGVtX2VuZF9leHBlY3RlZDsKKwkJaW50IHJldDsKIAogCQlidHJmc19pdGVtX2tl eV90b19jcHUobGVhZiwgJmtleSwgc2xvdCk7CiAKQEAgLTY1MSw2ICs3NDksMTEgQEAgc3RhdGlj IG5vaW5saW5lIGludCBjaGVja19sZWFmKHN0cnVjdCBidHJmc19yb290ICpyb290LAogCQkJcmV0 dXJuIC1FVUNMRUFOOwogCQl9CiAKKwkJLyogQ2hlY2sgaWYgdGhlIGl0ZW0gc2l6ZSBhbmQgY29u dGVudCBtZWV0IG90aGVyIGNyaXRlcmlhICovCisJCXJldCA9IGNoZWNrX2xlYWZfaXRlbShyb290 LCBsZWFmLCAma2V5LCBzbG90KTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCiAJ CXByZXZfa2V5Lm9iamVjdGlkID0ga2V5Lm9iamVjdGlkOwogCQlwcmV2X2tleS50eXBlID0ga2V5 LnR5cGU7CiAJCXByZXZfa2V5Lm9mZnNldCA9IGtleS5vZmZzZXQ7CmRpZmYgLS1naXQgYS9pbmNs dWRlL3VhcGkvbGludXgvYnRyZnNfdHJlZS5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2J0cmZzX3Ry ZWUuaAppbmRleCA3MTE1ODM4ZmJmMmEuLjM4YWIwZTA2MjU5YSAxMDA2NDQKLS0tIGEvaW5jbHVk ZS91YXBpL2xpbnV4L2J0cmZzX3RyZWUuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvYnRyZnNf dHJlZS5oCkBAIC03MzQsNiArNzM0LDcgQEAgc3RydWN0IGJ0cmZzX2JhbGFuY2VfaXRlbSB7CiAj ZGVmaW5lIEJUUkZTX0ZJTEVfRVhURU5UX0lOTElORSAwCiAjZGVmaW5lIEJUUkZTX0ZJTEVfRVhU RU5UX1JFRyAxCiAjZGVmaW5lIEJUUkZTX0ZJTEVfRVhURU5UX1BSRUFMTE9DIDIKKyNkZWZpbmUg QlRSRlNfRklMRV9FWFRFTlRfVFlQRVMJMgogCiBzdHJ1Y3QgYnRyZnNfZmlsZV9leHRlbnRfaXRl bSB7CiAJLyoKLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAg ICAgICAgICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8g ICAgICAgICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9t CgoKRnJvbSA0ODlmZGYxZjI1N2M5MjMwN2M2MmVlMTA5YzRkMThkNjk1YTg0Y2Y5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBRdSBXZW5ydW8gPHF1d2VucnVvLmJ0cmZzQGdteC5jb20+ CkRhdGU6IFdlZCwgMjMgQXVnIDIwMTcgMTY6NTc6NTkgKzA5MDAKU3ViamVjdDogW1BBVENIIDIw LzQ2XSBidHJmczogQWRkIGNoZWNrZXIgZm9yIEVYVEVOVF9DU1VNCgpjb21taXQgNGI4NjVjYWI5 NmZlMmEzMGVkNTEyY2Y2NjdiMzU0YmQyOTFiM2IwYSB1cHN0cmVhbS4KCkVYVEVOVF9DU1VNIGNo ZWNrZXIgaXMgYSByZWxhdGl2ZWx5IGVhc3kgb25lLCBvbmx5IG5lZWRzIHRvIGNoZWNrOgoKMSkg T2JqZWN0aWQKICAgRml4ZWQgdG8gQlRSRlNfRVhURU5UX0NTVU1fT0JKRUNUSUQKCjIpIEtleSBv ZmZzZXQgYWxpZ25tZW50CiAgIE11c3QgYmUgYWxpZ25lZCB0byBzZWN0b3JzaXplCgozKSBJdGVt IHNpemUgYWxpZ25lZG1lbnQKICAgTXVzdCBiZSBhbGlnbmVkIHRvIGNzdW0gc2l6ZQoKU2lnbmVk LW9mZi1ieTogUXUgV2VucnVvIDxxdXdlbnJ1by5idHJmc0BnbXguY29tPgpSZXZpZXdlZC1ieTog Tmlrb2xheSBCb3Jpc292IDxuYm9yaXNvdkBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIFN0 ZXJiYSA8ZHN0ZXJiYUBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgU3RlcmJhIDxkc3Rl cmJhQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdz QGNvZGV0aGluay5jby51az4KLS0tCiBmcy9idHJmcy9kaXNrLWlvLmMgfCAyNCArKysrKysrKysr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZnMvYnRyZnMvZGlzay1pby5jIGIvZnMvYnRyZnMvZGlzay1pby5jCmluZGV4IDE5MzE0 MTdmNGNiNy4uZWM1NzRmNzhhMWUyIDEwMDY0NAotLS0gYS9mcy9idHJmcy9kaXNrLWlvLmMKKysr IGIvZnMvYnRyZnMvZGlzay1pby5jCkBAIC02MjcsNiArNjI3LDI3IEBAIHN0YXRpYyBpbnQgY2hl Y2tfZXh0ZW50X2RhdGFfaXRlbShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKIAlyZXR1cm4gMDsK IH0KIAorc3RhdGljIGludCBjaGVja19jc3VtX2l0ZW0oc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3Qs IHN0cnVjdCBleHRlbnRfYnVmZmVyICpsZWFmLAorCQkJICAgc3RydWN0IGJ0cmZzX2tleSAqa2V5 LCBpbnQgc2xvdCkKK3sKKwl1MzIgc2VjdG9yc2l6ZSA9IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNp emU7CisJdTMyIGNzdW1zaXplID0gYnRyZnNfc3VwZXJfY3N1bV9zaXplKHJvb3QtPmZzX2luZm8t PnN1cGVyX2NvcHkpOworCisJaWYgKGtleS0+b2JqZWN0aWQgIT0gQlRSRlNfRVhURU5UX0NTVU1f T0JKRUNUSUQpIHsKKwkJQ09SUlVQVCgiaW52YWxpZCBvYmplY3RpZCBmb3IgY3N1bSBpdGVtIiwg bGVhZiwgcm9vdCwgc2xvdCk7CisJCXJldHVybiAtRVVDTEVBTjsKKwl9CisJaWYgKCFJU19BTElH TkVEKGtleS0+b2Zmc2V0LCBzZWN0b3JzaXplKSkgeworCQlDT1JSVVBUKCJ1bmFsaWduZWQga2V5 IG9mZnNldCBmb3IgY3N1bSBpdGVtIiwgbGVhZiwgcm9vdCwgc2xvdCk7CisJCXJldHVybiAtRVVD TEVBTjsKKwl9CisJaWYgKCFJU19BTElHTkVEKGJ0cmZzX2l0ZW1fc2l6ZV9ucihsZWFmLCBzbG90 KSwgY3N1bXNpemUpKSB7CisJCUNPUlJVUFQoInVuYWxpZ25lZCBjc3VtIGl0ZW0gc2l6ZSIsIGxl YWYsIHJvb3QsIHNsb3QpOworCQlyZXR1cm4gLUVVQ0xFQU47CisJfQorCXJldHVybiAwOworfQor CiAvKgogICogQ29tbW9uIHBvaW50IHRvIHN3aXRjaCB0aGUgaXRlbS1zcGVjaWZpYyB2YWxpZGF0 aW9uLgogICovCkBAIC02NDAsNiArNjYxLDkgQEAgc3RhdGljIGludCBjaGVja19sZWFmX2l0ZW0o c3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJY2FzZSBCVFJGU19FWFRFTlRfREFUQV9LRVk6CiAJ CXJldCA9IGNoZWNrX2V4dGVudF9kYXRhX2l0ZW0ocm9vdCwgbGVhZiwga2V5LCBzbG90KTsKIAkJ YnJlYWs7CisJY2FzZSBCVFJGU19FWFRFTlRfQ1NVTV9LRVk6CisJCXJldCA9IGNoZWNrX2NzdW1f aXRlbShyb290LCBsZWFmLCBrZXksIHNsb3QpOworCQlicmVhazsKIAl9CiAJcmV0dXJuIHJldDsK IH0KLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAg ICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAg ICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJv bSA2NWU1M2VmZTY3NjdmMWZiMmU1MmRlZWE1MmNmNTk2NTM3NGU0MmM0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBRdSBXZW5ydW8gPHF1d2VucnVvLmJ0cmZzQGdteC5jb20+CkRhdGU6 IE1vbiwgOSBPY3QgMjAxNyAwMTo1MTowMiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjEvNDZdIGJ0 cmZzOiBNb3ZlIGxlYWYgYW5kIG5vZGUgdmFsaWRhdGlvbiBjaGVja2VyIHRvCiB0cmVlLWNoZWNr ZXIuYwoKY29tbWl0IDU1N2VhNWRkMDAzZDM3MTUzNmY2YjRlOGY3YzgyMDlhMmI2ZmQ0ZTMgdXBz dHJlYW0uCgpJdCdzIG5vIGRvdWJ0IHRoZSBjb21wcmVoZW5zaXZlIHRyZWUgYmxvY2sgY2hlY2tl ciB3aWxsIGJlY29tZSBsYXJnZXIsCnNvIG1vdmluZyB0aGVtIGludG8gdGhlaXIgb3duIGZpbGVz IGlzIHF1aXRlIHJlYXNvbmFibGUuCgpTaWduZWQtb2ZmLWJ5OiBRdSBXZW5ydW8gPHF1d2VucnVv LmJ0cmZzQGdteC5jb20+Clsgd29yZGluZyBhZGp1c3RtZW50cyBdClNpZ25lZC1vZmYtYnk6IERh dmlkIFN0ZXJiYSA8ZHN0ZXJiYUBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5n cyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvYnRyZnMvTWFrZWZpbGUg ICAgICAgfCAgIDIgKy0KIGZzL2J0cmZzL2Rpc2staW8uYyAgICAgIHwgMjg1ICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBmcy9idHJmcy90cmVlLWNoZWNrZXIu YyB8IDMwOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGZzL2J0cmZzL3RyZWUtY2hlY2tlci5oIHwgIDI2ICsrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzQw IGluc2VydGlvbnMoKyksIDI4MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBmcy9i dHJmcy90cmVlLWNoZWNrZXIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGZzL2J0cmZzL3RyZWUtY2hl Y2tlci5oCgpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvTWFrZWZpbGUgYi9mcy9idHJmcy9NYWtlZmls ZQppbmRleCBmMmNkOWRlZGIwMzcuLjE5NTIyOWRmNWJhMCAxMDA2NDQKLS0tIGEvZnMvYnRyZnMv TWFrZWZpbGUKKysrIGIvZnMvYnRyZnMvTWFrZWZpbGUKQEAgLTEwLDcgKzEwLDcgQEAgYnRyZnMt eSArPSBzdXBlci5vIGN0cmVlLm8gZXh0ZW50LXRyZWUubyBwcmludC10cmVlLm8gcm9vdC10cmVl Lm8gZGlyLWl0ZW0ubyBcCiAJICAgZXhwb3J0Lm8gdHJlZS1sb2cubyBmcmVlLXNwYWNlLWNhY2hl Lm8gemxpYi5vIGx6by5vIHpzdGQubyBcCiAJICAgY29tcHJlc3Npb24ubyBkZWxheWVkLXJlZi5v IHJlbG9jYXRpb24ubyBkZWxheWVkLWlub2RlLm8gc2NydWIubyBcCiAJICAgcmVhZGEubyBiYWNr cmVmLm8gdWxpc3QubyBxZ3JvdXAubyBzZW5kLm8gZGV2LXJlcGxhY2UubyByYWlkNTYubyBcCi0J ICAgdXVpZC10cmVlLm8gcHJvcHMubyBoYXNoLm8gZnJlZS1zcGFjZS10cmVlLm8KKwkgICB1dWlk LXRyZWUubyBwcm9wcy5vIGhhc2gubyBmcmVlLXNwYWNlLXRyZWUubyB0cmVlLWNoZWNrZXIubwog CiBidHJmcy0kKENPTkZJR19CVFJGU19GU19QT1NJWF9BQ0wpICs9IGFjbC5vCiBidHJmcy0kKENP TkZJR19CVFJGU19GU19DSEVDS19JTlRFR1JJVFkpICs9IGNoZWNrLWludGVncml0eS5vCmRpZmYg LS1naXQgYS9mcy9idHJmcy9kaXNrLWlvLmMgYi9mcy9idHJmcy9kaXNrLWlvLmMKaW5kZXggZWM1 NzRmNzhhMWUyLi44YmNlNDlkYWEyMTkgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2Rpc2staW8uYwor KysgYi9mcy9idHJmcy9kaXNrLWlvLmMKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJzeXNm cy5oIgogI2luY2x1ZGUgInFncm91cC5oIgogI2luY2x1ZGUgImNvbXByZXNzaW9uLmgiCisjaW5j bHVkZSAidHJlZS1jaGVja2VyLmgiCiAKICNpZmRlZiBDT05GSUdfWDg2CiAjaW5jbHVkZSA8YXNt L2NwdWZlYXR1cmUuaD4KQEAgLTU0NCwyODQgKzU0NSw2IEBAIHN0YXRpYyBpbnQgY2hlY2tfdHJl ZV9ibG9ja19mc2lkKHN0cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZvLAogCXJldHVybiByZXQ7 CiB9CiAKLSNkZWZpbmUgQ09SUlVQVChyZWFzb24sIGViLCByb290LCBzbG90KQkJCQkJXAotCWJ0 cmZzX2NyaXQocm9vdC0+ZnNfaW5mbywJCQkJCVwKLQkJICAgImNvcnJ1cHQgJXMsICVzOiBibG9j az0lbGx1LCByb290PSVsbHUsIHNsb3Q9JWQiLAlcCi0JCSAgIGJ0cmZzX2hlYWRlcl9sZXZlbChl YikgPT0gMCA/ICJsZWFmIiA6ICJub2RlIiwJXAotCQkgICByZWFzb24sIGJ0cmZzX2hlYWRlcl9i eXRlbnIoZWIpLCByb290LT5vYmplY3RpZCwgc2xvdCkKLQotc3RhdGljIGludCBjaGVja19leHRl bnRfZGF0YV9pdGVtKHN0cnVjdCBidHJmc19yb290ICpyb290LAotCQkJCSAgc3RydWN0IGV4dGVu dF9idWZmZXIgKmxlYWYsCi0JCQkJICBzdHJ1Y3QgYnRyZnNfa2V5ICprZXksIGludCBzbG90KQot ewotCXN0cnVjdCBidHJmc19maWxlX2V4dGVudF9pdGVtICpmaTsKLQl1MzIgc2VjdG9yc2l6ZSA9 IHJvb3QtPmZzX2luZm8tPnNlY3RvcnNpemU7Ci0JdTMyIGl0ZW1fc2l6ZSA9IGJ0cmZzX2l0ZW1f c2l6ZV9ucihsZWFmLCBzbG90KTsKLQotCWlmICghSVNfQUxJR05FRChrZXktPm9mZnNldCwgc2Vj dG9yc2l6ZSkpIHsKLQkJQ09SUlVQVCgidW5hbGlnbmVkIGtleSBvZmZzZXQgZm9yIGZpbGUgZXh0 ZW50IiwKLQkJCWxlYWYsIHJvb3QsIHNsb3QpOwotCQlyZXR1cm4gLUVVQ0xFQU47Ci0JfQotCi0J ZmkgPSBidHJmc19pdGVtX3B0cihsZWFmLCBzbG90LCBzdHJ1Y3QgYnRyZnNfZmlsZV9leHRlbnRf aXRlbSk7Ci0KLQlpZiAoYnRyZnNfZmlsZV9leHRlbnRfdHlwZShsZWFmLCBmaSkgPiBCVFJGU19G SUxFX0VYVEVOVF9UWVBFUykgewotCQlDT1JSVVBUKCJpbnZhbGlkIGZpbGUgZXh0ZW50IHR5cGUi LCBsZWFmLCByb290LCBzbG90KTsKLQkJcmV0dXJuIC1FVUNMRUFOOwotCX0KLQotCS8qCi0JICog U3VwcG9ydCBmb3IgbmV3IGNvbXByZXNzaW9uL2VuY3JwdGlvbiBtdXN0IGludHJvZHVjZSBpbmNv bXBhdCBmbGFnLAotCSAqIGFuZCBtdXN0IGJlIGNhdWdodCBpbiBvcGVuX2N0cmVlKCkuCi0JICov Ci0JaWYgKGJ0cmZzX2ZpbGVfZXh0ZW50X2NvbXByZXNzaW9uKGxlYWYsIGZpKSA+IEJUUkZTX0NP TVBSRVNTX1RZUEVTKSB7Ci0JCUNPUlJVUFQoImludmFsaWQgZmlsZSBleHRlbnQgY29tcHJlc3Np b24iLCBsZWFmLCByb290LCBzbG90KTsKLQkJcmV0dXJuIC1FVUNMRUFOOwotCX0KLQlpZiAoYnRy ZnNfZmlsZV9leHRlbnRfZW5jcnlwdGlvbihsZWFmLCBmaSkpIHsKLQkJQ09SUlVQVCgiaW52YWxp ZCBmaWxlIGV4dGVudCBlbmNyeXB0aW9uIiwgbGVhZiwgcm9vdCwgc2xvdCk7Ci0JCXJldHVybiAt RVVDTEVBTjsKLQl9Ci0JaWYgKGJ0cmZzX2ZpbGVfZXh0ZW50X3R5cGUobGVhZiwgZmkpID09IEJU UkZTX0ZJTEVfRVhURU5UX0lOTElORSkgewotCQkvKiBJbmxpbmUgZXh0ZW50IG11c3QgaGF2ZSAw IGFzIGtleSBvZmZzZXQgKi8KLQkJaWYgKGtleS0+b2Zmc2V0KSB7Ci0JCQlDT1JSVVBUKCJpbmxp bmUgZXh0ZW50IGhhcyBub24temVybyBrZXkgb2Zmc2V0IiwKLQkJCQlsZWFmLCByb290LCBzbG90 KTsKLQkJCXJldHVybiAtRVVDTEVBTjsKLQkJfQotCi0JCS8qIENvbXByZXNzZWQgaW5saW5lIGV4 dGVudCBoYXMgbm8gb24tZGlzayBzaXplLCBza2lwIGl0ICovCi0JCWlmIChidHJmc19maWxlX2V4 dGVudF9jb21wcmVzc2lvbihsZWFmLCBmaSkgIT0KLQkJICAgIEJUUkZTX0NPTVBSRVNTX05PTkUp Ci0JCQlyZXR1cm4gMDsKLQotCQkvKiBVbmNvbXByZXNzZWQgaW5saW5lIGV4dGVudCBzaXplIG11 c3QgbWF0Y2ggaXRlbSBzaXplICovCi0JCWlmIChpdGVtX3NpemUgIT0gQlRSRlNfRklMRV9FWFRF TlRfSU5MSU5FX0RBVEFfU1RBUlQgKwotCQkgICAgYnRyZnNfZmlsZV9leHRlbnRfcmFtX2J5dGVz KGxlYWYsIGZpKSkgewotCQkJQ09SUlVQVCgicGxhaW50ZXh0IGlubGluZSBleHRlbnQgaGFzIGlu dmFsaWQgc2l6ZSIsCi0JCQkJbGVhZiwgcm9vdCwgc2xvdCk7Ci0JCQlyZXR1cm4gLUVVQ0xFQU47 Ci0JCX0KLQkJcmV0dXJuIDA7Ci0JfQotCi0JLyogUmVndWxhciBvciBwcmVhbGxvY2F0ZWQgZXh0 ZW50IGhhcyBmaXhlZCBpdGVtIHNpemUgKi8KLQlpZiAoaXRlbV9zaXplICE9IHNpemVvZigqZmkp KSB7Ci0JCUNPUlJVUFQoCi0JCSJyZWdsdWFyIG9yIHByZWFsbG9jYXRlZCBleHRlbnQgZGF0YSBp dGVtIHNpemUgaXMgaW52YWxpZCIsCi0JCQlsZWFmLCByb290LCBzbG90KTsKLQkJcmV0dXJuIC1F VUNMRUFOOwotCX0KLQlpZiAoIUlTX0FMSUdORUQoYnRyZnNfZmlsZV9leHRlbnRfcmFtX2J5dGVz KGxlYWYsIGZpKSwgc2VjdG9yc2l6ZSkgfHwKLQkgICAgIUlTX0FMSUdORUQoYnRyZnNfZmlsZV9l eHRlbnRfZGlza19ieXRlbnIobGVhZiwgZmkpLCBzZWN0b3JzaXplKSB8fAotCSAgICAhSVNfQUxJ R05FRChidHJmc19maWxlX2V4dGVudF9kaXNrX251bV9ieXRlcyhsZWFmLCBmaSksIHNlY3RvcnNp emUpIHx8Ci0JICAgICFJU19BTElHTkVEKGJ0cmZzX2ZpbGVfZXh0ZW50X29mZnNldChsZWFmLCBm aSksIHNlY3RvcnNpemUpIHx8Ci0JICAgICFJU19BTElHTkVEKGJ0cmZzX2ZpbGVfZXh0ZW50X251 bV9ieXRlcyhsZWFmLCBmaSksIHNlY3RvcnNpemUpKSB7Ci0JCUNPUlJVUFQoCi0JCSJyZWd1bGFy IG9yIHByZWFsbG9jYXRlZCBleHRlbnQgZGF0YSBpdGVtIGhhcyB1bmFsaWduZWQgdmFsdWUiLAot CQkJbGVhZiwgcm9vdCwgc2xvdCk7Ci0JCXJldHVybiAtRVVDTEVBTjsKLQl9Ci0KLQlyZXR1cm4g MDsKLX0KLQotc3RhdGljIGludCBjaGVja19jc3VtX2l0ZW0oc3RydWN0IGJ0cmZzX3Jvb3QgKnJv b3QsIHN0cnVjdCBleHRlbnRfYnVmZmVyICpsZWFmLAotCQkJICAgc3RydWN0IGJ0cmZzX2tleSAq a2V5LCBpbnQgc2xvdCkKLXsKLQl1MzIgc2VjdG9yc2l6ZSA9IHJvb3QtPmZzX2luZm8tPnNlY3Rv cnNpemU7Ci0JdTMyIGNzdW1zaXplID0gYnRyZnNfc3VwZXJfY3N1bV9zaXplKHJvb3QtPmZzX2lu Zm8tPnN1cGVyX2NvcHkpOwotCi0JaWYgKGtleS0+b2JqZWN0aWQgIT0gQlRSRlNfRVhURU5UX0NT VU1fT0JKRUNUSUQpIHsKLQkJQ09SUlVQVCgiaW52YWxpZCBvYmplY3RpZCBmb3IgY3N1bSBpdGVt IiwgbGVhZiwgcm9vdCwgc2xvdCk7Ci0JCXJldHVybiAtRVVDTEVBTjsKLQl9Ci0JaWYgKCFJU19B TElHTkVEKGtleS0+b2Zmc2V0LCBzZWN0b3JzaXplKSkgewotCQlDT1JSVVBUKCJ1bmFsaWduZWQg a2V5IG9mZnNldCBmb3IgY3N1bSBpdGVtIiwgbGVhZiwgcm9vdCwgc2xvdCk7Ci0JCXJldHVybiAt RVVDTEVBTjsKLQl9Ci0JaWYgKCFJU19BTElHTkVEKGJ0cmZzX2l0ZW1fc2l6ZV9ucihsZWFmLCBz bG90KSwgY3N1bXNpemUpKSB7Ci0JCUNPUlJVUFQoInVuYWxpZ25lZCBjc3VtIGl0ZW0gc2l6ZSIs IGxlYWYsIHJvb3QsIHNsb3QpOwotCQlyZXR1cm4gLUVVQ0xFQU47Ci0JfQotCXJldHVybiAwOwot fQotCi0vKgotICogQ29tbW9uIHBvaW50IHRvIHN3aXRjaCB0aGUgaXRlbS1zcGVjaWZpYyB2YWxp ZGF0aW9uLgotICovCi1zdGF0aWMgaW50IGNoZWNrX2xlYWZfaXRlbShzdHJ1Y3QgYnRyZnNfcm9v dCAqcm9vdCwKLQkJCSAgIHN0cnVjdCBleHRlbnRfYnVmZmVyICpsZWFmLAotCQkJICAgc3RydWN0 IGJ0cmZzX2tleSAqa2V5LCBpbnQgc2xvdCkKLXsKLQlpbnQgcmV0ID0gMDsKLQotCXN3aXRjaCAo a2V5LT50eXBlKSB7Ci0JY2FzZSBCVFJGU19FWFRFTlRfREFUQV9LRVk6Ci0JCXJldCA9IGNoZWNr X2V4dGVudF9kYXRhX2l0ZW0ocm9vdCwgbGVhZiwga2V5LCBzbG90KTsKLQkJYnJlYWs7Ci0JY2Fz ZSBCVFJGU19FWFRFTlRfQ1NVTV9LRVk6Ci0JCXJldCA9IGNoZWNrX2NzdW1faXRlbShyb290LCBs ZWFmLCBrZXksIHNsb3QpOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGlj IG5vaW5saW5lIGludCBjaGVja19sZWFmKHN0cnVjdCBidHJmc19yb290ICpyb290LAotCQkJICAg ICAgIHN0cnVjdCBleHRlbnRfYnVmZmVyICpsZWFmKQotewotCXN0cnVjdCBidHJmc19mc19pbmZv ICpmc19pbmZvID0gcm9vdC0+ZnNfaW5mbzsKLQkvKiBObyB2YWxpZCBrZXkgdHlwZSBpcyAwLCBz byBhbGwga2V5IHNob3VsZCBiZSBsYXJnZXIgdGhhbiB0aGlzIGtleSAqLwotCXN0cnVjdCBidHJm c19rZXkgcHJldl9rZXkgPSB7MCwgMCwgMH07Ci0Jc3RydWN0IGJ0cmZzX2tleSBrZXk7Ci0JdTMy IG5yaXRlbXMgPSBidHJmc19oZWFkZXJfbnJpdGVtcyhsZWFmKTsKLQlpbnQgc2xvdDsKLQotCS8q Ci0JICogRXh0ZW50IGJ1ZmZlcnMgZnJvbSBhIHJlbG9jYXRpb24gdHJlZSBoYXZlIGEgb3duZXIg ZmllbGQgdGhhdAotCSAqIGNvcnJlc3BvbmRzIHRvIHRoZSBzdWJ2b2x1bWUgdHJlZSB0aGV5IGFy ZSBiYXNlZCBvbi4gU28ganVzdCBmcm9tIGFuCi0JICogZXh0ZW50IGJ1ZmZlciBhbG9uZSB3ZSBj YW4gbm90IGZpbmQgb3V0IHdoYXQgaXMgdGhlIGlkIG9mIHRoZQotCSAqIGNvcnJlc3BvbmRpbmcg c3Vidm9sdW1lIHRyZWUsIHNvIHdlIGNhbiBub3QgZmlndXJlIG91dCBpZiB0aGUgZXh0ZW50Ci0J ICogYnVmZmVyIGNvcnJlc3BvbmRzIHRvIHRoZSByb290IG9mIHRoZSByZWxvY2F0aW9uIHRyZWUg b3Igbm90LiBTbyBza2lwCi0JICogdGhpcyBjaGVjayBmb3IgcmVsb2NhdGlvbiB0cmVlcy4KLQkg Ki8KLQlpZiAobnJpdGVtcyA9PSAwICYmICFidHJmc19oZWFkZXJfZmxhZyhsZWFmLCBCVFJGU19I RUFERVJfRkxBR19SRUxPQykpIHsKLQkJc3RydWN0IGJ0cmZzX3Jvb3QgKmNoZWNrX3Jvb3Q7Ci0K LQkJa2V5Lm9iamVjdGlkID0gYnRyZnNfaGVhZGVyX293bmVyKGxlYWYpOwotCQlrZXkudHlwZSA9 IEJUUkZTX1JPT1RfSVRFTV9LRVk7Ci0JCWtleS5vZmZzZXQgPSAodTY0KS0xOwotCi0JCWNoZWNr X3Jvb3QgPSBidHJmc19nZXRfZnNfcm9vdChmc19pbmZvLCAma2V5LCBmYWxzZSk7Ci0JCS8qCi0J CSAqIFRoZSBvbmx5IHJlYXNvbiB3ZSBhbHNvIGNoZWNrIE5VTEwgaGVyZSBpcyB0aGF0IGR1cmlu ZwotCQkgKiBvcGVuX2N0cmVlKCkgc29tZSByb290cyBoYXMgbm90IHlldCBiZWVuIHNldCB1cC4K LQkJICovCi0JCWlmICghSVNfRVJSX09SX05VTEwoY2hlY2tfcm9vdCkpIHsKLQkJCXN0cnVjdCBl eHRlbnRfYnVmZmVyICplYjsKLQotCQkJZWIgPSBidHJmc19yb290X25vZGUoY2hlY2tfcm9vdCk7 Ci0JCQkvKiBpZiBsZWFmIGlzIHRoZSByb290LCB0aGVuIGl0J3MgZmluZSAqLwotCQkJaWYgKGxl YWYgIT0gZWIpIHsKLQkJCQlDT1JSVVBUKCJub24tcm9vdCBsZWFmJ3MgbnJpdGVtcyBpcyAwIiwK LQkJCQkJbGVhZiwgY2hlY2tfcm9vdCwgMCk7Ci0JCQkJZnJlZV9leHRlbnRfYnVmZmVyKGViKTsK LQkJCQlyZXR1cm4gLUVVQ0xFQU47Ci0JCQl9Ci0JCQlmcmVlX2V4dGVudF9idWZmZXIoZWIpOwot CQl9Ci0JCXJldHVybiAwOwotCX0KLQotCWlmIChucml0ZW1zID09IDApCi0JCXJldHVybiAwOwot Ci0JLyoKLQkgKiBDaGVjayB0aGUgZm9sbG93aW5nIHRoaW5ncyB0byBtYWtlIHN1cmUgdGhpcyBp cyBhIGdvb2QgbGVhZiwgYW5kCi0JICogbGVhZiB1c2VycyB3b24ndCBuZWVkIHRvIGJvdGhlciB3 aXRoIHNpbWlsYXIgc2FuaXR5IGNoZWNrczoKLQkgKgotCSAqIDEpIGtleSBvcmRlcgotCSAqIDIp IGl0ZW0gb2Zmc2V0IGFuZCBzaXplCi0JICogICAgTm8gb3ZlcmxhcCwgbm8gaG9sZSwgYWxsIGlu c2lkZSB0aGUgbGVhZi4KLQkgKiAzKSBpdGVtIGNvbnRlbnQKLQkgKiAgICBJZiBwb3NzaWJsZSwg ZG8gY29tcHJlaGVuc2l2ZSBzYW5pdHkgY2hlY2suCi0JICogICAgTk9URTogQWxsIGNoZWNrcyBt dXN0IG9ubHkgcmVseSBvbiB0aGUgaXRlbSBkYXRhIGl0c2VsZi4KLQkgKi8KLQlmb3IgKHNsb3Qg PSAwOyBzbG90IDwgbnJpdGVtczsgc2xvdCsrKSB7Ci0JCXUzMiBpdGVtX2VuZF9leHBlY3RlZDsK LQkJaW50IHJldDsKLQotCQlidHJmc19pdGVtX2tleV90b19jcHUobGVhZiwgJmtleSwgc2xvdCk7 Ci0KLQkJLyogTWFrZSBzdXJlIHRoZSBrZXlzIGFyZSBpbiB0aGUgcmlnaHQgb3JkZXIgKi8KLQkJ aWYgKGJ0cmZzX2NvbXBfY3B1X2tleXMoJnByZXZfa2V5LCAma2V5KSA+PSAwKSB7Ci0JCQlDT1JS VVBUKCJiYWQga2V5IG9yZGVyIiwgbGVhZiwgcm9vdCwgc2xvdCk7Ci0JCQlyZXR1cm4gLUVVQ0xF QU47Ci0JCX0KLQotCQkvKgotCQkgKiBNYWtlIHN1cmUgdGhlIG9mZnNldCBhbmQgZW5kcyBhcmUg cmlnaHQsIHJlbWVtYmVyIHRoYXQgdGhlCi0JCSAqIGl0ZW0gZGF0YSBzdGFydHMgYXQgdGhlIGVu ZCBvZiB0aGUgbGVhZiBhbmQgZ3Jvd3MgdG93YXJkcyB0aGUKLQkJICogZnJvbnQuCi0JCSAqLwot CQlpZiAoc2xvdCA9PSAwKQotCQkJaXRlbV9lbmRfZXhwZWN0ZWQgPSBCVFJGU19MRUFGX0RBVEFf U0laRShmc19pbmZvKTsKLQkJZWxzZQotCQkJaXRlbV9lbmRfZXhwZWN0ZWQgPSBidHJmc19pdGVt X29mZnNldF9ucihsZWFmLAotCQkJCQkJCQkgc2xvdCAtIDEpOwotCQlpZiAoYnRyZnNfaXRlbV9l bmRfbnIobGVhZiwgc2xvdCkgIT0gaXRlbV9lbmRfZXhwZWN0ZWQpIHsKLQkJCUNPUlJVUFQoInNs b3Qgb2Zmc2V0IGJhZCIsIGxlYWYsIHJvb3QsIHNsb3QpOwotCQkJcmV0dXJuIC1FVUNMRUFOOwot CQl9Ci0KLQkJLyoKLQkJICogQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgcG9pbnQg b3V0c2lkZSBvZiB0aGUgbGVhZiwKLQkJICoganVzdCBpbiBjYXNlIGFsbCB0aGUgaXRlbXMgYXJl IGNvbnNpc3RlbnQgdG8gZWFjaCBvdGhlciwgYnV0Ci0JCSAqIGFsbCBwb2ludCBvdXRzaWRlIG9m IHRoZSBsZWFmLgotCQkgKi8KLQkJaWYgKGJ0cmZzX2l0ZW1fZW5kX25yKGxlYWYsIHNsb3QpID4K LQkJICAgIEJUUkZTX0xFQUZfREFUQV9TSVpFKGZzX2luZm8pKSB7Ci0JCQlDT1JSVVBUKCJzbG90 IGVuZCBvdXRzaWRlIG9mIGxlYWYiLCBsZWFmLCByb290LCBzbG90KTsKLQkJCXJldHVybiAtRVVD TEVBTjsKLQkJfQotCi0JCS8qIEFsc28gY2hlY2sgaWYgdGhlIGl0ZW0gcG9pbnRlciBvdmVybGFw cyB3aXRoIGJ0cmZzIGl0ZW0uICovCi0JCWlmIChidHJmc19pdGVtX25yX29mZnNldChzbG90KSAr IHNpemVvZihzdHJ1Y3QgYnRyZnNfaXRlbSkgPgotCQkgICAgYnRyZnNfaXRlbV9wdHJfb2Zmc2V0 KGxlYWYsIHNsb3QpKSB7Ci0JCQlDT1JSVVBUKCJzbG90IG92ZXJsYXAgd2l0aCBpdHMgZGF0YSIs IGxlYWYsIHJvb3QsIHNsb3QpOwotCQkJcmV0dXJuIC1FVUNMRUFOOwotCQl9Ci0KLQkJLyogQ2hl Y2sgaWYgdGhlIGl0ZW0gc2l6ZSBhbmQgY29udGVudCBtZWV0IG90aGVyIGNyaXRlcmlhICovCi0J CXJldCA9IGNoZWNrX2xlYWZfaXRlbShyb290LCBsZWFmLCAma2V5LCBzbG90KTsKLQkJaWYgKHJl dCA8IDApCi0JCQlyZXR1cm4gcmV0OwotCi0JCXByZXZfa2V5Lm9iamVjdGlkID0ga2V5Lm9iamVj dGlkOwotCQlwcmV2X2tleS50eXBlID0ga2V5LnR5cGU7Ci0JCXByZXZfa2V5Lm9mZnNldCA9IGtl eS5vZmZzZXQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgY2hlY2tfbm9kZShz dHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwgc3RydWN0IGV4dGVudF9idWZmZXIgKm5vZGUpCi17Ci0J dW5zaWduZWQgbG9uZyBuciA9IGJ0cmZzX2hlYWRlcl9ucml0ZW1zKG5vZGUpOwotCXN0cnVjdCBi dHJmc19rZXkga2V5LCBuZXh0X2tleTsKLQlpbnQgc2xvdDsKLQl1NjQgYnl0ZW5yOwotCWludCBy ZXQgPSAwOwotCi0JaWYgKG5yID09IDAgfHwgbnIgPiBCVFJGU19OT0RFUFRSU19QRVJfQkxPQ0so cm9vdC0+ZnNfaW5mbykpIHsKLQkJYnRyZnNfY3JpdChyb290LT5mc19pbmZvLAotCQkJICAgImNv cnJ1cHQgbm9kZTogYmxvY2sgJWxsdSByb290ICVsbHUgbnJpdGVtcyAlbHUiLAotCQkJICAgbm9k ZS0+c3RhcnQsIHJvb3QtPm9iamVjdGlkLCBucik7Ci0JCXJldHVybiAtRUlPOwotCX0KLQotCWZv ciAoc2xvdCA9IDA7IHNsb3QgPCBuciAtIDE7IHNsb3QrKykgewotCQlieXRlbnIgPSBidHJmc19u b2RlX2Jsb2NrcHRyKG5vZGUsIHNsb3QpOwotCQlidHJmc19ub2RlX2tleV90b19jcHUobm9kZSwg JmtleSwgc2xvdCk7Ci0JCWJ0cmZzX25vZGVfa2V5X3RvX2NwdShub2RlLCAmbmV4dF9rZXksIHNs b3QgKyAxKTsKLQotCQlpZiAoIWJ5dGVucikgewotCQkJQ09SUlVQVCgiaW52YWxpZCBpdGVtIHNs b3QiLCBub2RlLCByb290LCBzbG90KTsKLQkJCXJldCA9IC1FSU87Ci0JCQlnb3RvIG91dDsKLQkJ fQotCi0JCWlmIChidHJmc19jb21wX2NwdV9rZXlzKCZrZXksICZuZXh0X2tleSkgPj0gMCkgewot CQkJQ09SUlVQVCgiYmFkIGtleSBvcmRlciIsIG5vZGUsIHJvb3QsIHNsb3QpOwotCQkJcmV0ID0g LUVJTzsKLQkJCWdvdG8gb3V0OwotCQl9Ci0JfQotb3V0OgotCXJldHVybiByZXQ7Ci19Ci0KIHN0 YXRpYyBpbnQgYnRyZWVfcmVhZHBhZ2VfZW5kX2lvX2hvb2soc3RydWN0IGJ0cmZzX2lvX2JpbyAq aW9fYmlvLAogCQkJCSAgICAgIHU2NCBwaHlfb2Zmc2V0LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJ CQkgICAgICB1NjQgc3RhcnQsIHU2NCBlbmQsIGludCBtaXJyb3IpCkBAIC04ODcsMTIgKzYxMCwx MiBAQCBzdGF0aWMgaW50IGJ0cmVlX3JlYWRwYWdlX2VuZF9pb19ob29rKHN0cnVjdCBidHJmc19p b19iaW8gKmlvX2JpbywKIAkgKiB0aGF0IHdlIGRvbid0IHRyeSBhbmQgcmVhZCB0aGUgb3RoZXIg Y29waWVzIG9mIHRoaXMgYmxvY2ssIGp1c3QKIAkgKiByZXR1cm4gLUVJTy4KIAkgKi8KLQlpZiAo Zm91bmRfbGV2ZWwgPT0gMCAmJiBjaGVja19sZWFmKHJvb3QsIGViKSkgeworCWlmIChmb3VuZF9s ZXZlbCA9PSAwICYmIGJ0cmZzX2NoZWNrX2xlYWYocm9vdCwgZWIpKSB7CiAJCXNldF9iaXQoRVhU RU5UX0JVRkZFUl9DT1JSVVBULCAmZWItPmJmbGFncyk7CiAJCXJldCA9IC1FSU87CiAJfQogCi0J aWYgKGZvdW5kX2xldmVsID4gMCAmJiBjaGVja19ub2RlKHJvb3QsIGViKSkKKwlpZiAoZm91bmRf bGV2ZWwgPiAwICYmIGJ0cmZzX2NoZWNrX25vZGUocm9vdCwgZWIpKQogCQlyZXQgPSAtRUlPOwog CiAJaWYgKCFyZXQpCkBAIC00MTQ3LDcgKzM4NzAsNyBAQCB2b2lkIGJ0cmZzX21hcmtfYnVmZmVy X2RpcnR5KHN0cnVjdCBleHRlbnRfYnVmZmVyICpidWYpCiAJCQkJCSBidWYtPmxlbiwKIAkJCQkJ IGZzX2luZm8tPmRpcnR5X21ldGFkYXRhX2JhdGNoKTsKICNpZmRlZiBDT05GSUdfQlRSRlNfRlNf Q0hFQ0tfSU5URUdSSVRZCi0JaWYgKGJ0cmZzX2hlYWRlcl9sZXZlbChidWYpID09IDAgJiYgY2hl Y2tfbGVhZihyb290LCBidWYpKSB7CisJaWYgKGJ0cmZzX2hlYWRlcl9sZXZlbChidWYpID09IDAg JiYgYnRyZnNfY2hlY2tfbGVhZihyb290LCBidWYpKSB7CiAJCWJ0cmZzX3ByaW50X2xlYWYoYnVm KTsKIAkJQVNTRVJUKDApOwogCX0KZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL3RyZWUtY2hlY2tlci5j IGIvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi41NmUyNWE2MzAxMDMKLS0tIC9kZXYvbnVsbAorKysgYi9mcy9idHJmcy90cmVl LWNoZWNrZXIuYwpAQCAtMCwwICsxLDMwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgUXUgV2Vu cnVvIDIwMTcuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2 MiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4KKyAqLworCisvKgorICogVGhlIG1vZHVsZSBpcyB1c2VkIHRvIGNhdGNoIHVuZXhwZWN0 ZWQvY29ycnVwdGVkIHRyZWUgYmxvY2sgZGF0YS4KKyAqIFN1Y2ggYmVoYXZpb3IgY2FuIGJlIGNh dXNlZCBlaXRoZXIgYnkgYSBmdXp6ZWQgaW1hZ2Ugb3IgYnVncy4KKyAqCisgKiBUaGUgb2JqZWN0 aXZlIGlzIHRvIGRvIGxlYWYvbm9kZSB2YWxpZGF0aW9uIGNoZWNrcyB3aGVuIHRyZWUgYmxvY2sg aXMgcmVhZAorICogZnJvbSBkaXNrLCBhbmQgY2hlY2sgKmV2ZXJ5KiBwb3NzaWJsZSBtZW1iZXIs IHNvIG90aGVyIGNvZGUgd29uJ3QKKyAqIG5lZWQgdG8gY2hlY2tpbmcgdGhlbSBhZ2Fpbi4KKyAq CisgKiBEdWUgdG8gdGhlIHBvdGVudGlhbCBhbmQgdW53YW50ZWQgZGFtYWdlLCBldmVyeSBjaGVj a2VyIG5lZWRzIHRvIGJlCisgKiBjYXJlZnVsbHkgcmV2aWV3ZWQgb3RoZXJ3aXNlIHNvIGl0IGRv ZXMgbm90IHByZXZlbnQgbW91bnQgb2YgdmFsaWQgaW1hZ2VzLgorICovCisKKyNpbmNsdWRlICJj dHJlZS5oIgorI2luY2x1ZGUgInRyZWUtY2hlY2tlci5oIgorI2luY2x1ZGUgImRpc2staW8uaCIK KyNpbmNsdWRlICJjb21wcmVzc2lvbi5oIgorCisjZGVmaW5lIENPUlJVUFQocmVhc29uLCBlYiwg cm9vdCwgc2xvdCkJCQkJCVwKKwlidHJmc19jcml0KHJvb3QtPmZzX2luZm8sCQkJCQlcCisJCSAg ICJjb3JydXB0ICVzLCAlczogYmxvY2s9JWxsdSwgcm9vdD0lbGx1LCBzbG90PSVkIiwJXAorCQkg ICBidHJmc19oZWFkZXJfbGV2ZWwoZWIpID09IDAgPyAibGVhZiIgOiAibm9kZSIsCVwKKwkJICAg cmVhc29uLCBidHJmc19oZWFkZXJfYnl0ZW5yKGViKSwgcm9vdC0+b2JqZWN0aWQsIHNsb3QpCisK K3N0YXRpYyBpbnQgY2hlY2tfZXh0ZW50X2RhdGFfaXRlbShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9v dCwKKwkJCQkgIHN0cnVjdCBleHRlbnRfYnVmZmVyICpsZWFmLAorCQkJCSAgc3RydWN0IGJ0cmZz X2tleSAqa2V5LCBpbnQgc2xvdCkKK3sKKwlzdHJ1Y3QgYnRyZnNfZmlsZV9leHRlbnRfaXRlbSAq Zmk7CisJdTMyIHNlY3RvcnNpemUgPSByb290LT5mc19pbmZvLT5zZWN0b3JzaXplOworCXUzMiBp dGVtX3NpemUgPSBidHJmc19pdGVtX3NpemVfbnIobGVhZiwgc2xvdCk7CisKKwlpZiAoIUlTX0FM SUdORUQoa2V5LT5vZmZzZXQsIHNlY3RvcnNpemUpKSB7CisJCUNPUlJVUFQoInVuYWxpZ25lZCBr ZXkgb2Zmc2V0IGZvciBmaWxlIGV4dGVudCIsCisJCQlsZWFmLCByb290LCBzbG90KTsKKwkJcmV0 dXJuIC1FVUNMRUFOOworCX0KKworCWZpID0gYnRyZnNfaXRlbV9wdHIobGVhZiwgc2xvdCwgc3Ry dWN0IGJ0cmZzX2ZpbGVfZXh0ZW50X2l0ZW0pOworCisJaWYgKGJ0cmZzX2ZpbGVfZXh0ZW50X3R5 cGUobGVhZiwgZmkpID4gQlRSRlNfRklMRV9FWFRFTlRfVFlQRVMpIHsKKwkJQ09SUlVQVCgiaW52 YWxpZCBmaWxlIGV4dGVudCB0eXBlIiwgbGVhZiwgcm9vdCwgc2xvdCk7CisJCXJldHVybiAtRVVD TEVBTjsKKwl9CisKKwkvKgorCSAqIFN1cHBvcnQgZm9yIG5ldyBjb21wcmVzc2lvbi9lbmNycHRp b24gbXVzdCBpbnRyb2R1Y2UgaW5jb21wYXQgZmxhZywKKwkgKiBhbmQgbXVzdCBiZSBjYXVnaHQg aW4gb3Blbl9jdHJlZSgpLgorCSAqLworCWlmIChidHJmc19maWxlX2V4dGVudF9jb21wcmVzc2lv bihsZWFmLCBmaSkgPiBCVFJGU19DT01QUkVTU19UWVBFUykgeworCQlDT1JSVVBUKCJpbnZhbGlk IGZpbGUgZXh0ZW50IGNvbXByZXNzaW9uIiwgbGVhZiwgcm9vdCwgc2xvdCk7CisJCXJldHVybiAt RVVDTEVBTjsKKwl9CisJaWYgKGJ0cmZzX2ZpbGVfZXh0ZW50X2VuY3J5cHRpb24obGVhZiwgZmkp KSB7CisJCUNPUlJVUFQoImludmFsaWQgZmlsZSBleHRlbnQgZW5jcnlwdGlvbiIsIGxlYWYsIHJv b3QsIHNsb3QpOworCQlyZXR1cm4gLUVVQ0xFQU47CisJfQorCWlmIChidHJmc19maWxlX2V4dGVu dF90eXBlKGxlYWYsIGZpKSA9PSBCVFJGU19GSUxFX0VYVEVOVF9JTkxJTkUpIHsKKwkJLyogSW5s aW5lIGV4dGVudCBtdXN0IGhhdmUgMCBhcyBrZXkgb2Zmc2V0ICovCisJCWlmIChrZXktPm9mZnNl dCkgeworCQkJQ09SUlVQVCgiaW5saW5lIGV4dGVudCBoYXMgbm9uLXplcm8ga2V5IG9mZnNldCIs CisJCQkJbGVhZiwgcm9vdCwgc2xvdCk7CisJCQlyZXR1cm4gLUVVQ0xFQU47CisJCX0KKworCQkv KiBDb21wcmVzc2VkIGlubGluZSBleHRlbnQgaGFzIG5vIG9uLWRpc2sgc2l6ZSwgc2tpcCBpdCAq LworCQlpZiAoYnRyZnNfZmlsZV9leHRlbnRfY29tcHJlc3Npb24obGVhZiwgZmkpICE9CisJCSAg ICBCVFJGU19DT01QUkVTU19OT05FKQorCQkJcmV0dXJuIDA7CisKKwkJLyogVW5jb21wcmVzc2Vk IGlubGluZSBleHRlbnQgc2l6ZSBtdXN0IG1hdGNoIGl0ZW0gc2l6ZSAqLworCQlpZiAoaXRlbV9z aXplICE9IEJUUkZTX0ZJTEVfRVhURU5UX0lOTElORV9EQVRBX1NUQVJUICsKKwkJICAgIGJ0cmZz X2ZpbGVfZXh0ZW50X3JhbV9ieXRlcyhsZWFmLCBmaSkpIHsKKwkJCUNPUlJVUFQoInBsYWludGV4 dCBpbmxpbmUgZXh0ZW50IGhhcyBpbnZhbGlkIHNpemUiLAorCQkJCWxlYWYsIHJvb3QsIHNsb3Qp OworCQkJcmV0dXJuIC1FVUNMRUFOOworCQl9CisJCXJldHVybiAwOworCX0KKworCS8qIFJlZ3Vs YXIgb3IgcHJlYWxsb2NhdGVkIGV4dGVudCBoYXMgZml4ZWQgaXRlbSBzaXplICovCisJaWYgKGl0 ZW1fc2l6ZSAhPSBzaXplb2YoKmZpKSkgeworCQlDT1JSVVBUKAorCQkicmVnbHVhciBvciBwcmVh bGxvY2F0ZWQgZXh0ZW50IGRhdGEgaXRlbSBzaXplIGlzIGludmFsaWQiLAorCQkJbGVhZiwgcm9v dCwgc2xvdCk7CisJCXJldHVybiAtRVVDTEVBTjsKKwl9CisJaWYgKCFJU19BTElHTkVEKGJ0cmZz X2ZpbGVfZXh0ZW50X3JhbV9ieXRlcyhsZWFmLCBmaSksIHNlY3RvcnNpemUpIHx8CisJICAgICFJ U19BTElHTkVEKGJ0cmZzX2ZpbGVfZXh0ZW50X2Rpc2tfYnl0ZW5yKGxlYWYsIGZpKSwgc2VjdG9y c2l6ZSkgfHwKKwkgICAgIUlTX0FMSUdORUQoYnRyZnNfZmlsZV9leHRlbnRfZGlza19udW1fYnl0 ZXMobGVhZiwgZmkpLCBzZWN0b3JzaXplKSB8fAorCSAgICAhSVNfQUxJR05FRChidHJmc19maWxl X2V4dGVudF9vZmZzZXQobGVhZiwgZmkpLCBzZWN0b3JzaXplKSB8fAorCSAgICAhSVNfQUxJR05F RChidHJmc19maWxlX2V4dGVudF9udW1fYnl0ZXMobGVhZiwgZmkpLCBzZWN0b3JzaXplKSkgewor CQlDT1JSVVBUKAorCQkicmVndWxhciBvciBwcmVhbGxvY2F0ZWQgZXh0ZW50IGRhdGEgaXRlbSBo YXMgdW5hbGlnbmVkIHZhbHVlIiwKKwkJCWxlYWYsIHJvb3QsIHNsb3QpOworCQlyZXR1cm4gLUVV Q0xFQU47CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2hlY2tfY3N1bV9pdGVt KHN0cnVjdCBidHJmc19yb290ICpyb290LCBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbGVhZiwKKwkJ CSAgIHN0cnVjdCBidHJmc19rZXkgKmtleSwgaW50IHNsb3QpCit7CisJdTMyIHNlY3RvcnNpemUg PSByb290LT5mc19pbmZvLT5zZWN0b3JzaXplOworCXUzMiBjc3Vtc2l6ZSA9IGJ0cmZzX3N1cGVy X2NzdW1fc2l6ZShyb290LT5mc19pbmZvLT5zdXBlcl9jb3B5KTsKKworCWlmIChrZXktPm9iamVj dGlkICE9IEJUUkZTX0VYVEVOVF9DU1VNX09CSkVDVElEKSB7CisJCUNPUlJVUFQoImludmFsaWQg b2JqZWN0aWQgZm9yIGNzdW0gaXRlbSIsIGxlYWYsIHJvb3QsIHNsb3QpOworCQlyZXR1cm4gLUVV Q0xFQU47CisJfQorCWlmICghSVNfQUxJR05FRChrZXktPm9mZnNldCwgc2VjdG9yc2l6ZSkpIHsK KwkJQ09SUlVQVCgidW5hbGlnbmVkIGtleSBvZmZzZXQgZm9yIGNzdW0gaXRlbSIsIGxlYWYsIHJv b3QsIHNsb3QpOworCQlyZXR1cm4gLUVVQ0xFQU47CisJfQorCWlmICghSVNfQUxJR05FRChidHJm c19pdGVtX3NpemVfbnIobGVhZiwgc2xvdCksIGNzdW1zaXplKSkgeworCQlDT1JSVVBUKCJ1bmFs aWduZWQgY3N1bSBpdGVtIHNpemUiLCBsZWFmLCByb290LCBzbG90KTsKKwkJcmV0dXJuIC1FVUNM RUFOOworCX0KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIENvbW1vbiBwb2ludCB0byBzd2l0Y2gg dGhlIGl0ZW0tc3BlY2lmaWMgdmFsaWRhdGlvbi4KKyAqLworc3RhdGljIGludCBjaGVja19sZWFm X2l0ZW0oc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCisJCQkgICBzdHJ1Y3QgZXh0ZW50X2J1ZmZl ciAqbGVhZiwKKwkJCSAgIHN0cnVjdCBidHJmc19rZXkgKmtleSwgaW50IHNsb3QpCit7CisJaW50 IHJldCA9IDA7CisKKwlzd2l0Y2ggKGtleS0+dHlwZSkgeworCWNhc2UgQlRSRlNfRVhURU5UX0RB VEFfS0VZOgorCQlyZXQgPSBjaGVja19leHRlbnRfZGF0YV9pdGVtKHJvb3QsIGxlYWYsIGtleSwg c2xvdCk7CisJCWJyZWFrOworCWNhc2UgQlRSRlNfRVhURU5UX0NTVU1fS0VZOgorCQlyZXQgPSBj aGVja19jc3VtX2l0ZW0ocm9vdCwgbGVhZiwga2V5LCBzbG90KTsKKwkJYnJlYWs7CisJfQorCXJl dHVybiByZXQ7Cit9CisKK2ludCBidHJmc19jaGVja19sZWFmKHN0cnVjdCBidHJmc19yb290ICpy b290LCBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbGVhZikKK3sKKwlzdHJ1Y3QgYnRyZnNfZnNfaW5m byAqZnNfaW5mbyA9IHJvb3QtPmZzX2luZm87CisJLyogTm8gdmFsaWQga2V5IHR5cGUgaXMgMCwg c28gYWxsIGtleSBzaG91bGQgYmUgbGFyZ2VyIHRoYW4gdGhpcyBrZXkgKi8KKwlzdHJ1Y3QgYnRy ZnNfa2V5IHByZXZfa2V5ID0gezAsIDAsIDB9OworCXN0cnVjdCBidHJmc19rZXkga2V5OworCXUz MiBucml0ZW1zID0gYnRyZnNfaGVhZGVyX25yaXRlbXMobGVhZik7CisJaW50IHNsb3Q7CisKKwkv KgorCSAqIEV4dGVudCBidWZmZXJzIGZyb20gYSByZWxvY2F0aW9uIHRyZWUgaGF2ZSBhIG93bmVy IGZpZWxkIHRoYXQKKwkgKiBjb3JyZXNwb25kcyB0byB0aGUgc3Vidm9sdW1lIHRyZWUgdGhleSBh cmUgYmFzZWQgb24uIFNvIGp1c3QgZnJvbSBhbgorCSAqIGV4dGVudCBidWZmZXIgYWxvbmUgd2Ug Y2FuIG5vdCBmaW5kIG91dCB3aGF0IGlzIHRoZSBpZCBvZiB0aGUKKwkgKiBjb3JyZXNwb25kaW5n IHN1YnZvbHVtZSB0cmVlLCBzbyB3ZSBjYW4gbm90IGZpZ3VyZSBvdXQgaWYgdGhlIGV4dGVudAor CSAqIGJ1ZmZlciBjb3JyZXNwb25kcyB0byB0aGUgcm9vdCBvZiB0aGUgcmVsb2NhdGlvbiB0cmVl IG9yIG5vdC4gU28KKwkgKiBza2lwIHRoaXMgY2hlY2sgZm9yIHJlbG9jYXRpb24gdHJlZXMuCisJ ICovCisJaWYgKG5yaXRlbXMgPT0gMCAmJiAhYnRyZnNfaGVhZGVyX2ZsYWcobGVhZiwgQlRSRlNf SEVBREVSX0ZMQUdfUkVMT0MpKSB7CisJCXN0cnVjdCBidHJmc19yb290ICpjaGVja19yb290Owor CisJCWtleS5vYmplY3RpZCA9IGJ0cmZzX2hlYWRlcl9vd25lcihsZWFmKTsKKwkJa2V5LnR5cGUg PSBCVFJGU19ST09UX0lURU1fS0VZOworCQlrZXkub2Zmc2V0ID0gKHU2NCktMTsKKworCQljaGVj a19yb290ID0gYnRyZnNfZ2V0X2ZzX3Jvb3QoZnNfaW5mbywgJmtleSwgZmFsc2UpOworCQkvKgor CQkgKiBUaGUgb25seSByZWFzb24gd2UgYWxzbyBjaGVjayBOVUxMIGhlcmUgaXMgdGhhdCBkdXJp bmcKKwkJICogb3Blbl9jdHJlZSgpIHNvbWUgcm9vdHMgaGFzIG5vdCB5ZXQgYmVlbiBzZXQgdXAu CisJCSAqLworCQlpZiAoIUlTX0VSUl9PUl9OVUxMKGNoZWNrX3Jvb3QpKSB7CisJCQlzdHJ1Y3Qg ZXh0ZW50X2J1ZmZlciAqZWI7CisKKwkJCWViID0gYnRyZnNfcm9vdF9ub2RlKGNoZWNrX3Jvb3Qp OworCQkJLyogaWYgbGVhZiBpcyB0aGUgcm9vdCwgdGhlbiBpdCdzIGZpbmUgKi8KKwkJCWlmIChs ZWFmICE9IGViKSB7CisJCQkJQ09SUlVQVCgibm9uLXJvb3QgbGVhZidzIG5yaXRlbXMgaXMgMCIs CisJCQkJCWxlYWYsIGNoZWNrX3Jvb3QsIDApOworCQkJCWZyZWVfZXh0ZW50X2J1ZmZlcihlYik7 CisJCQkJcmV0dXJuIC1FVUNMRUFOOworCQkJfQorCQkJZnJlZV9leHRlbnRfYnVmZmVyKGViKTsK KwkJfQorCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAobnJpdGVtcyA9PSAwKQorCQlyZXR1cm4gMDsK KworCS8qCisJICogQ2hlY2sgdGhlIGZvbGxvd2luZyB0aGluZ3MgdG8gbWFrZSBzdXJlIHRoaXMg aXMgYSBnb29kIGxlYWYsIGFuZAorCSAqIGxlYWYgdXNlcnMgd29uJ3QgbmVlZCB0byBib3RoZXIg d2l0aCBzaW1pbGFyIHNhbml0eSBjaGVja3M6CisJICoKKwkgKiAxKSBrZXkgb3JkZXJpbmcKKwkg KiAyKSBpdGVtIG9mZnNldCBhbmQgc2l6ZQorCSAqICAgIE5vIG92ZXJsYXAsIG5vIGhvbGUsIGFs bCBpbnNpZGUgdGhlIGxlYWYuCisJICogMykgaXRlbSBjb250ZW50CisJICogICAgSWYgcG9zc2li bGUsIGRvIGNvbXByZWhlbnNpdmUgc2FuaXR5IGNoZWNrLgorCSAqICAgIE5PVEU6IEFsbCBjaGVj a3MgbXVzdCBvbmx5IHJlbHkgb24gdGhlIGl0ZW0gZGF0YSBpdHNlbGYuCisJICovCisJZm9yIChz bG90ID0gMDsgc2xvdCA8IG5yaXRlbXM7IHNsb3QrKykgeworCQl1MzIgaXRlbV9lbmRfZXhwZWN0 ZWQ7CisJCWludCByZXQ7CisKKwkJYnRyZnNfaXRlbV9rZXlfdG9fY3B1KGxlYWYsICZrZXksIHNs b3QpOworCisJCS8qIE1ha2Ugc3VyZSB0aGUga2V5cyBhcmUgaW4gdGhlIHJpZ2h0IG9yZGVyICov CisJCWlmIChidHJmc19jb21wX2NwdV9rZXlzKCZwcmV2X2tleSwgJmtleSkgPj0gMCkgeworCQkJ Q09SUlVQVCgiYmFkIGtleSBvcmRlciIsIGxlYWYsIHJvb3QsIHNsb3QpOworCQkJcmV0dXJuIC1F VUNMRUFOOworCQl9CisKKwkJLyoKKwkJICogTWFrZSBzdXJlIHRoZSBvZmZzZXQgYW5kIGVuZHMg YXJlIHJpZ2h0LCByZW1lbWJlciB0aGF0IHRoZQorCQkgKiBpdGVtIGRhdGEgc3RhcnRzIGF0IHRo ZSBlbmQgb2YgdGhlIGxlYWYgYW5kIGdyb3dzIHRvd2FyZHMgdGhlCisJCSAqIGZyb250LgorCQkg Ki8KKwkJaWYgKHNsb3QgPT0gMCkKKwkJCWl0ZW1fZW5kX2V4cGVjdGVkID0gQlRSRlNfTEVBRl9E QVRBX1NJWkUoZnNfaW5mbyk7CisJCWVsc2UKKwkJCWl0ZW1fZW5kX2V4cGVjdGVkID0gYnRyZnNf aXRlbV9vZmZzZXRfbnIobGVhZiwKKwkJCQkJCQkJIHNsb3QgLSAxKTsKKwkJaWYgKGJ0cmZzX2l0 ZW1fZW5kX25yKGxlYWYsIHNsb3QpICE9IGl0ZW1fZW5kX2V4cGVjdGVkKSB7CisJCQlDT1JSVVBU KCJzbG90IG9mZnNldCBiYWQiLCBsZWFmLCByb290LCBzbG90KTsKKwkJCXJldHVybiAtRVVDTEVB TjsKKwkJfQorCisJCS8qCisJCSAqIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IHBv aW50IG91dHNpZGUgb2YgdGhlIGxlYWYsCisJCSAqIGp1c3QgaW4gY2FzZSBhbGwgdGhlIGl0ZW1z IGFyZSBjb25zaXN0ZW50IHRvIGVhY2ggb3RoZXIsIGJ1dAorCQkgKiBhbGwgcG9pbnQgb3V0c2lk ZSBvZiB0aGUgbGVhZi4KKwkJICovCisJCWlmIChidHJmc19pdGVtX2VuZF9ucihsZWFmLCBzbG90 KSA+CisJCSAgICBCVFJGU19MRUFGX0RBVEFfU0laRShmc19pbmZvKSkgeworCQkJQ09SUlVQVCgi c2xvdCBlbmQgb3V0c2lkZSBvZiBsZWFmIiwgbGVhZiwgcm9vdCwgc2xvdCk7CisJCQlyZXR1cm4g LUVVQ0xFQU47CisJCX0KKworCQkvKiBBbHNvIGNoZWNrIGlmIHRoZSBpdGVtIHBvaW50ZXIgb3Zl cmxhcHMgd2l0aCBidHJmcyBpdGVtLiAqLworCQlpZiAoYnRyZnNfaXRlbV9ucl9vZmZzZXQoc2xv dCkgKyBzaXplb2Yoc3RydWN0IGJ0cmZzX2l0ZW0pID4KKwkJICAgIGJ0cmZzX2l0ZW1fcHRyX29m ZnNldChsZWFmLCBzbG90KSkgeworCQkJQ09SUlVQVCgic2xvdCBvdmVybGFwIHdpdGggaXRzIGRh dGEiLCBsZWFmLCByb290LCBzbG90KTsKKwkJCXJldHVybiAtRVVDTEVBTjsKKwkJfQorCisJCS8q IENoZWNrIGlmIHRoZSBpdGVtIHNpemUgYW5kIGNvbnRlbnQgbWVldCBvdGhlciBjcml0ZXJpYSAq LworCQlyZXQgPSBjaGVja19sZWFmX2l0ZW0ocm9vdCwgbGVhZiwgJmtleSwgc2xvdCk7CisJCWlm IChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlwcmV2X2tleS5vYmplY3RpZCA9IGtleS5v YmplY3RpZDsKKwkJcHJldl9rZXkudHlwZSA9IGtleS50eXBlOworCQlwcmV2X2tleS5vZmZzZXQg PSBrZXkub2Zmc2V0OworCX0KKworCXJldHVybiAwOworfQorCitpbnQgYnRyZnNfY2hlY2tfbm9k ZShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwgc3RydWN0IGV4dGVudF9idWZmZXIgKm5vZGUpCit7 CisJdW5zaWduZWQgbG9uZyBuciA9IGJ0cmZzX2hlYWRlcl9ucml0ZW1zKG5vZGUpOworCXN0cnVj dCBidHJmc19rZXkga2V5LCBuZXh0X2tleTsKKwlpbnQgc2xvdDsKKwl1NjQgYnl0ZW5yOworCWlu dCByZXQgPSAwOworCisJaWYgKG5yID09IDAgfHwgbnIgPiBCVFJGU19OT0RFUFRSU19QRVJfQkxP Q0socm9vdC0+ZnNfaW5mbykpIHsKKwkJYnRyZnNfY3JpdChyb290LT5mc19pbmZvLAorCQkJICAg ImNvcnJ1cHQgbm9kZTogYmxvY2sgJWxsdSByb290ICVsbHUgbnJpdGVtcyAlbHUiLAorCQkJICAg bm9kZS0+c3RhcnQsIHJvb3QtPm9iamVjdGlkLCBucik7CisJCXJldHVybiAtRUlPOworCX0KKwor CWZvciAoc2xvdCA9IDA7IHNsb3QgPCBuciAtIDE7IHNsb3QrKykgeworCQlieXRlbnIgPSBidHJm c19ub2RlX2Jsb2NrcHRyKG5vZGUsIHNsb3QpOworCQlidHJmc19ub2RlX2tleV90b19jcHUobm9k ZSwgJmtleSwgc2xvdCk7CisJCWJ0cmZzX25vZGVfa2V5X3RvX2NwdShub2RlLCAmbmV4dF9rZXks IHNsb3QgKyAxKTsKKworCQlpZiAoIWJ5dGVucikgeworCQkJQ09SUlVQVCgiaW52YWxpZCBpdGVt IHNsb3QiLCBub2RlLCByb290LCBzbG90KTsKKwkJCXJldCA9IC1FSU87CisJCQlnb3RvIG91dDsK KwkJfQorCisJCWlmIChidHJmc19jb21wX2NwdV9rZXlzKCZrZXksICZuZXh0X2tleSkgPj0gMCkg eworCQkJQ09SUlVQVCgiYmFkIGtleSBvcmRlciIsIG5vZGUsIHJvb3QsIHNsb3QpOworCQkJcmV0 ID0gLUVJTzsKKwkJCWdvdG8gb3V0OworCQl9CisJfQorb3V0OgorCXJldHVybiByZXQ7Cit9CmRp ZmYgLS1naXQgYS9mcy9idHJmcy90cmVlLWNoZWNrZXIuaCBiL2ZzL2J0cmZzL3RyZWUtY2hlY2tl ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTZjNDg2ZTk1ZDcw Ci0tLSAvZGV2L251bGwKKysrIGIvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmgKQEAgLTAsMCArMSwy NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgUXUgV2VucnVvIDIwMTcuICBBbGwgcmlnaHRzIHJl c2VydmVkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2MiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4KKyAqLworCisjaWZuZGVmIF9f QlRSRlNfVFJFRV9DSEVDS0VSX18KKyNkZWZpbmUgX19CVFJGU19UUkVFX0NIRUNLRVJfXworCisj aW5jbHVkZSAiY3RyZWUuaCIKKyNpbmNsdWRlICJleHRlbnRfaW8uaCIKKworaW50IGJ0cmZzX2No ZWNrX2xlYWYoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsIHN0cnVjdCBleHRlbnRfYnVmZmVyICps ZWFmKTsKK2ludCBidHJmc19jaGVja19ub2RlKHN0cnVjdCBidHJmc19yb290ICpyb290LCBzdHJ1 Y3QgZXh0ZW50X2J1ZmZlciAqbm9kZSk7CisKKyNlbmRpZgotLSAKQmVuIEh1dGNoaW5ncywgU29m dHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0 cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUg RGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0 ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIDczODY5ZDhlN2RiN2RlZjNlNzQyOTcx NWMwMGQ1MTA1ODJiYTdlZGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFF1IFdlbnJ1 byA8cXV3ZW5ydW8uYnRyZnNAZ214LmNvbT4KRGF0ZTogTW9uLCA5IE9jdCAyMDE3IDAxOjUxOjAz ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyMi80Nl0gYnRyZnM6IHRyZWUtY2hlY2tlcjogRW5oYW5j ZSBidHJmc19jaGVja19ub2RlIG91dHB1dAoKY29tbWl0IGJiYTRmMjk4OTZjOTg2YzRjZWMxN2Jj MGYxOWYyY2U2NDRmY2VhZTEgdXBzdHJlYW0uCgpVc2UgaW5saW5lIGZ1bmN0aW9uIHRvIHJlcGxh Y2UgbWFjcm8gc2luY2Ugd2UgZG9uJ3QgbmVlZApzdHJpbmdpZmljYXRpb24uCihNYWNybyBzdGls bCBleGlzdHMgdW50aWwgYWxsIGNhbGxlcnMgZ2V0IHVwZGF0ZWQpCgpBbmQgYWRkIG1vcmUgaW5m byBhYm91dCB0aGUgZXJyb3IsIGFuZCByZXBsYWNlIEVJTyB3aXRoIEVVQ0xFQU4uCgpGb3IgbnJf aXRlbXMgZXJyb3IsIHJlcG9ydCBpZiBpdCdzIHRvbyBsYXJnZSBvciB0b28gc21hbGwsIGFuZCBv dXRwdXQKdGhlIHZhbGlkIHZhbHVlIHJhbmdlLgoKRm9yIG5vZGUgYmxvY2sgcG9pbnRlciwgYWRk ZWQgYSBuZXcgYWxpZ25tZW50IGNoZWNrZXIuCgpGb3Iga2V5IG9yZGVyLCBhbHNvIG91dHB1dCB0 aGUgbmV4dCBrZXkgdG8gbWFrZSB0aGUgcHJvYmxlbSBtb3JlCm9idmlvdXMuCgpTaWduZWQtb2Zm LWJ5OiBRdSBXZW5ydW8gPHF1d2VucnVvLmJ0cmZzQGdteC5jb20+Clsgd29yZGluZyBhZGp1c3Rt ZW50cywgdW5pbmRlbnRlZCBsb25nIHN0cmluZ3MgXQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTdGVy YmEgPGRzdGVyYmFAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5o dXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2J0cmZzL3RyZWUtY2hlY2tlci5jIHwg NjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogMSBm aWxlIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMgYi9mcy9idHJmcy90cmVlLWNoZWNrZXIuYwppbmRl eCA1NmUyNWE2MzAxMDMuLjVhY2RmMzM1NWEzZiAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvdHJlZS1j aGVja2VyLmMKKysrIGIvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMKQEAgLTM3LDYgKzM3LDQ2IEBA CiAJCSAgIGJ0cmZzX2hlYWRlcl9sZXZlbChlYikgPT0gMCA/ICJsZWFmIiA6ICJub2RlIiwJXAog CQkgICByZWFzb24sIGJ0cmZzX2hlYWRlcl9ieXRlbnIoZWIpLCByb290LT5vYmplY3RpZCwgc2xv dCkKIAorLyoKKyAqIEVycm9yIG1lc3NhZ2Ugc2hvdWxkIGZvbGxvdyB0aGUgZm9sbG93aW5nIGZv cm1hdDoKKyAqIGNvcnJ1cHQgPHR5cGU+OiA8aWRlbnRpZmllcj4sIDxyZWFzb24+WywgPGJhZF92 YWx1ZT5dCisgKgorICogQHR5cGU6CWxlYWYgb3Igbm9kZQorICogQGlkZW50aWZpZXI6CXRoZSBu ZWNlc3NhcnkgaW5mbyB0byBsb2NhdGUgdGhlIGxlYWYvbm9kZS4KKyAqIAkJSXQncyByZWNvbW1l bmVkIHRvIGRlY29kZSBrZXkub2JqZWNpdGQvb2Zmc2V0IGlmIGl0J3MKKyAqIAkJbWVhbmluZ2Z1 bC4KKyAqIEByZWFzb246CWRlc2NyaWJlIHRoZSBlcnJvcgorICogQGJhZF92YWx1ZToJb3B0aW9u YWwsIGl0J3MgcmVjb21tZW5lZCB0byBvdXRwdXQgYmFkIHZhbHVlIGFuZCBpdHMKKyAqCQlleHBl Y3RlZCB2YWx1ZSAocmFuZ2UpLgorICoKKyAqIFNpbmNlIGNvbW1hIGlzIHVzZWQgdG8gc2VwYXJh dGUgdGhlIGNvbXBvbmVudHMsIG9ubHkgc3BhY2UgaXMgYWxsb3dlZAorICogaW5zaWRlIGVhY2gg Y29tcG9uZW50LgorICovCisKKy8qCisgKiBBcHBlbmQgZ2VuZXJpYyAiY29ycnVwdCBsZWFmL25v ZGUgcm9vdD0lbGx1IGJsb2NrPSVsbHUgc2xvdD0lZDogIiB0byBAZm10LgorICogQWxsb3dzIGNh bGxlcnMgdG8gY3VzdG9taXplIHRoZSBvdXRwdXQuCisgKi8KK19fcHJpbnRmKDQsIDUpCitzdGF0 aWMgdm9pZCBnZW5lcmljX2Vycihjb25zdCBzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKKwkJCWNv bnN0IHN0cnVjdCBleHRlbnRfYnVmZmVyICplYiwgaW50IHNsb3QsCisJCQljb25zdCBjaGFyICpm bXQsIC4uLikKK3sKKwlzdHJ1Y3QgdmFfZm9ybWF0IHZhZjsKKwl2YV9saXN0IGFyZ3M7CisKKwl2 YV9zdGFydChhcmdzLCBmbXQpOworCisJdmFmLmZtdCA9IGZtdDsKKwl2YWYudmEgPSAmYXJnczsK KworCWJ0cmZzX2NyaXQocm9vdC0+ZnNfaW5mbywKKwkJImNvcnJ1cHQgJXM6IHJvb3Q9JWxsdSBi bG9jaz0lbGx1IHNsb3Q9JWQsICVwViIsCisJCWJ0cmZzX2hlYWRlcl9sZXZlbChlYikgPT0gMCA/ ICJsZWFmIiA6ICJub2RlIiwKKwkJcm9vdC0+b2JqZWN0aWQsIGJ0cmZzX2hlYWRlcl9ieXRlbnIo ZWIpLCBzbG90LCAmdmFmKTsKKwl2YV9lbmQoYXJncyk7Cit9CisKIHN0YXRpYyBpbnQgY2hlY2tf ZXh0ZW50X2RhdGFfaXRlbShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKIAkJCQkgIHN0cnVjdCBl eHRlbnRfYnVmZmVyICpsZWFmLAogCQkJCSAgc3RydWN0IGJ0cmZzX2tleSAqa2V5LCBpbnQgc2xv dCkKQEAgLTI4Miw5ICszMjIsMTEgQEAgaW50IGJ0cmZzX2NoZWNrX25vZGUoc3RydWN0IGJ0cmZz X3Jvb3QgKnJvb3QsIHN0cnVjdCBleHRlbnRfYnVmZmVyICpub2RlKQogCiAJaWYgKG5yID09IDAg fHwgbnIgPiBCVFJGU19OT0RFUFRSU19QRVJfQkxPQ0socm9vdC0+ZnNfaW5mbykpIHsKIAkJYnRy ZnNfY3JpdChyb290LT5mc19pbmZvLAotCQkJICAgImNvcnJ1cHQgbm9kZTogYmxvY2sgJWxsdSBy b290ICVsbHUgbnJpdGVtcyAlbHUiLAotCQkJICAgbm9kZS0+c3RhcnQsIHJvb3QtPm9iamVjdGlk LCBucik7Ci0JCXJldHVybiAtRUlPOworImNvcnJ1cHQgbm9kZTogcm9vdD0lbGx1IGJsb2NrPSVs bHUsIG5yaXRlbXMgdG9vICVzLCBoYXZlICVsdSBleHBlY3QgcmFuZ2UgWzEsJXVdIiwKKwkJCSAg IHJvb3QtPm9iamVjdGlkLCBub2RlLT5zdGFydCwKKwkJCSAgIG5yID09IDAgPyAic21hbGwiIDog ImxhcmdlIiwgbnIsCisJCQkgICBCVFJGU19OT0RFUFRSU19QRVJfQkxPQ0socm9vdC0+ZnNfaW5m bykpOworCQlyZXR1cm4gLUVVQ0xFQU47CiAJfQogCiAJZm9yIChzbG90ID0gMDsgc2xvdCA8IG5y IC0gMTsgc2xvdCsrKSB7CkBAIC0yOTMsMTQgKzMzNSwyNiBAQCBpbnQgYnRyZnNfY2hlY2tfbm9k ZShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwgc3RydWN0IGV4dGVudF9idWZmZXIgKm5vZGUpCiAJ CWJ0cmZzX25vZGVfa2V5X3RvX2NwdShub2RlLCAmbmV4dF9rZXksIHNsb3QgKyAxKTsKIAogCQlp ZiAoIWJ5dGVucikgewotCQkJQ09SUlVQVCgiaW52YWxpZCBpdGVtIHNsb3QiLCBub2RlLCByb290 LCBzbG90KTsKLQkJCXJldCA9IC1FSU87CisJCQlnZW5lcmljX2Vycihyb290LCBub2RlLCBzbG90 LAorCQkJCSJpbnZhbGlkIE5VTEwgbm9kZSBwb2ludGVyIik7CisJCQlyZXQgPSAtRVVDTEVBTjsK KwkJCWdvdG8gb3V0OworCQl9CisJCWlmICghSVNfQUxJR05FRChieXRlbnIsIHJvb3QtPmZzX2lu Zm8tPnNlY3RvcnNpemUpKSB7CisJCQlnZW5lcmljX2Vycihyb290LCBub2RlLCBzbG90LAorCQkJ InVuYWxpZ25lZCBwb2ludGVyLCBoYXZlICVsbHUgc2hvdWxkIGJlIGFsaWduZWQgdG8gJXUiLAor CQkJCWJ5dGVuciwgcm9vdC0+ZnNfaW5mby0+c2VjdG9yc2l6ZSk7CisJCQlyZXQgPSAtRVVDTEVB TjsKIAkJCWdvdG8gb3V0OwogCQl9CiAKIAkJaWYgKGJ0cmZzX2NvbXBfY3B1X2tleXMoJmtleSwg Jm5leHRfa2V5KSA+PSAwKSB7Ci0JCQlDT1JSVVBUKCJiYWQga2V5IG9yZGVyIiwgbm9kZSwgcm9v dCwgc2xvdCk7Ci0JCQlyZXQgPSAtRUlPOworCQkJZ2VuZXJpY19lcnIocm9vdCwgbm9kZSwgc2xv dCwKKwkiYmFkIGtleSBvcmRlciwgY3VycmVudCAoJWxsdSAldSAlbGx1KSBuZXh0ICglbGx1ICV1 ICVsbHUpIiwKKwkJCQlrZXkub2JqZWN0aWQsIGtleS50eXBlLCBrZXkub2Zmc2V0LAorCQkJCW5l eHRfa2V5Lm9iamVjdGlkLCBuZXh0X2tleS50eXBlLAorCQkJCW5leHRfa2V5Lm9mZnNldCk7CisJ CQlyZXQgPSAtRVVDTEVBTjsKIAkJCWdvdG8gb3V0OwogCQl9CiAJfQotLSAKQmVuIEh1dGNoaW5n cywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBM dGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3Vz ZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1h bmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIDM3Nzk0YjY1Y2Y4MjhiN2Y0 MDM4OTg1NjkyZTdjODA1NzA3ZmRkODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFF1 IFdlbnJ1byA8d3F1QHN1c2UuY29tPgpEYXRlOiBXZWQsIDggTm92IDIwMTcgMDg6NTQ6MjQgKzA4 MDAKU3ViamVjdDogW1BBVENIIDIzLzQ2XSBidHJmczogdHJlZS1jaGVja2VyOiBGaXggZmFsc2Ug cGFuaWMgZm9yIHNhbml0eSB0ZXN0Cgpjb21taXQgNjlmYzZjYmJhYzU0MmMzNDliM2QzNTBkMTBm NmUzOTRjMjUzYzgxZCB1cHN0cmVhbS4KCltCVUddCklmIHdlIHJ1biBidHJmcyB3aXRoIENPTkZJ R19CVFJGU19GU19SVU5fU0FOSVRZX1RFU1RTPXksIGl0IHdpbGwKaW5zdGFudGx5IGNhdXNlIGtl cm5lbCBwYW5pYyBsaWtlOgoKLS0tLS0tCi4uLgphc3NlcnRpb24gZmFpbGVkOiAwLCBmaWxlOiBm cy9idHJmcy9kaXNrLWlvLmMsIGxpbmU6IDM4NTMKLi4uCkNhbGwgVHJhY2U6CiBidHJmc19tYXJr X2J1ZmZlcl9kaXJ0eSsweDE4Ny8weDFmMCBbYnRyZnNdCiBzZXR1cF9pdGVtc19mb3JfaW5zZXJ0 KzB4Mzg1LzB4NjUwIFtidHJmc10KIF9fYnRyZnNfZHJvcF9leHRlbnRzKzB4MTI5YS8weDE4NzAg W2J0cmZzXQouLi4KLS0tLS0KCltDYXVzZV0KQnRyZnMgd2lsbCBjYWxsIGJ0cmZzX2NoZWNrX2xl YWYoKSBpbiBidHJmc19tYXJrX2J1ZmZlcl9kaXJ0eSgpIHRvIGNoZWNrCmlmIHRoZSBsZWFmIGlz IHZhbGlkIHdpdGggQ09ORklHX0JUUkZTX0ZTX1JVTl9TQU5JVFlfVEVTVFM9eS4KCkhvd2V2ZXIg cXVpdGUgc29tZSBidHJmc19tYXJrX2J1ZmZlcl9kaXJ0eSgpIGNhbGxlcnMoKikgZG9uJ3QgcmVh bGx5CmluaXRpYWxpemUgaXRzIGl0ZW0gZGF0YSBidXQgb25seSBpbml0aWFsaXplIGl0cyBpdGVt IHBvaW50ZXJzLCBsZWF2aW5nCml0ZW0gZGF0YSB1bmluaXRpYWxpemVkLgoKVGhpcyBtYWtlcyB0 cmVlLWNoZWNrZXIgY2F0Y2ggdW5pbml0aWFsaXplZCBkYXRhIGFzIGVycm9yLCBjYXVzaW5nCnN1 Y2ggcGFuaWMuCgoqOiBUaGVzZSBjYWxsZXJzIGluY2x1ZGUgYnV0IG5vdCBsaW1pdGVkIHRvCnNl dHVwX2l0ZW1zX2Zvcl9pbnNlcnQoKQpidHJmc19zcGxpdF9pdGVtKCkKYnRyZnNfZXhwYW5kX2l0 ZW0oKQoKW0ZpeF0KQWRkIGEgbmV3IHBhcmFtZXRlciBAY2hlY2tfaXRlbV9kYXRhIHRvIGJ0cmZz X2NoZWNrX2xlYWYoKS4KV2l0aCBAY2hlY2tfaXRlbV9kYXRhIHNldCB0byBmYWxzZSwgaXRlbSBk YXRhIGNoZWNrIHdpbGwgYmUgc2tpcHBlZCBhbmQKZmFsbGJhY2sgdG8gb2xkIGJ0cmZzX2NoZWNr X2xlYWYoKSBiZWhhdmlvci4KClNvIHdlIGNhbiBzdGlsbCBnZXQgZWFybHkgd2FybmluZyBpZiB3 ZSBzY3JldyB1cCBpdGVtIHBvaW50ZXJzLCBhbmQKYXZvaWQgZmFsc2UgcGFuaWMuCgpDYzogRmls aXBlIE1hbmFuYSA8ZmRtYW5hbmFAZ21haWwuY29tPgpSZXBvcnRlZC1ieTogTGFrc2htaXBhdGhp LkcgPGxha3NobWlwYXRoaS5nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogUXUgV2VucnVvIDx3 cXVAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBMaXUgQm8gPGJvLmxpLmxpdUBvcmFjbGUuY29tPgpS ZXZpZXdlZC1ieTogRGF2aWQgU3RlcmJhIDxkc3RlcmJhQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRj aGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2J0cmZzL2Rpc2st aW8uYyAgICAgIHwgMTAgKysrKysrKystLQogZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMgfCAyNyAr KysrKysrKysrKysrKysrKysrKysrLS0tLS0KIGZzL2J0cmZzL3RyZWUtY2hlY2tlci5oIHwgMTQg KysrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9idHJmcy9kaXNrLWlvLmMgYi9mcy9idHJmcy9kaXNr LWlvLmMKaW5kZXggOGJjZTQ5ZGFhMjE5Li43NmJmNmFhZjU4ZjggMTAwNjQ0Ci0tLSBhL2ZzL2J0 cmZzL2Rpc2staW8uYworKysgYi9mcy9idHJmcy9kaXNrLWlvLmMKQEAgLTYxMCw3ICs2MTAsNyBA QCBzdGF0aWMgaW50IGJ0cmVlX3JlYWRwYWdlX2VuZF9pb19ob29rKHN0cnVjdCBidHJmc19pb19i aW8gKmlvX2JpbywKIAkgKiB0aGF0IHdlIGRvbid0IHRyeSBhbmQgcmVhZCB0aGUgb3RoZXIgY29w aWVzIG9mIHRoaXMgYmxvY2ssIGp1c3QKIAkgKiByZXR1cm4gLUVJTy4KIAkgKi8KLQlpZiAoZm91 bmRfbGV2ZWwgPT0gMCAmJiBidHJmc19jaGVja19sZWFmKHJvb3QsIGViKSkgeworCWlmIChmb3Vu ZF9sZXZlbCA9PSAwICYmIGJ0cmZzX2NoZWNrX2xlYWZfZnVsbChyb290LCBlYikpIHsKIAkJc2V0 X2JpdChFWFRFTlRfQlVGRkVSX0NPUlJVUFQsICZlYi0+YmZsYWdzKTsKIAkJcmV0ID0gLUVJTzsK IAl9CkBAIC0zODcwLDcgKzM4NzAsMTMgQEAgdm9pZCBidHJmc19tYXJrX2J1ZmZlcl9kaXJ0eShz dHJ1Y3QgZXh0ZW50X2J1ZmZlciAqYnVmKQogCQkJCQkgYnVmLT5sZW4sCiAJCQkJCSBmc19pbmZv LT5kaXJ0eV9tZXRhZGF0YV9iYXRjaCk7CiAjaWZkZWYgQ09ORklHX0JUUkZTX0ZTX0NIRUNLX0lO VEVHUklUWQotCWlmIChidHJmc19oZWFkZXJfbGV2ZWwoYnVmKSA9PSAwICYmIGJ0cmZzX2NoZWNr X2xlYWYocm9vdCwgYnVmKSkgeworCS8qCisJICogU2luY2UgYnRyZnNfbWFya19idWZmZXJfZGly dHkoKSBjYW4gYmUgY2FsbGVkIHdpdGggaXRlbSBwb2ludGVyIHNldAorCSAqIGJ1dCBpdGVtIGRh dGEgbm90IHVwZGF0ZWQuCisJICogU28gaGVyZSB3ZSBzaG91bGQgb25seSBjaGVjayBpdGVtIHBv aW50ZXJzLCBub3QgaXRlbSBkYXRhLgorCSAqLworCWlmIChidHJmc19oZWFkZXJfbGV2ZWwoYnVm KSA9PSAwICYmCisJICAgIGJ0cmZzX2NoZWNrX2xlYWZfcmVsYXhlZChyb290LCBidWYpKSB7CiAJ CWJ0cmZzX3ByaW50X2xlYWYoYnVmKTsKIAkJQVNTRVJUKDApOwogCX0KZGlmZiAtLWdpdCBhL2Zz L2J0cmZzL3RyZWUtY2hlY2tlci5jIGIvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMKaW5kZXggNWFj ZGYzMzU1YTNmLi5mZjRmYThmOTA1ZDMgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL3RyZWUtY2hlY2tl ci5jCisrKyBiL2ZzL2J0cmZzL3RyZWUtY2hlY2tlci5jCkBAIC0xOTUsNyArMTk1LDggQEAgc3Rh dGljIGludCBjaGVja19sZWFmX2l0ZW0oc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJcmV0dXJu IHJldDsKIH0KIAotaW50IGJ0cmZzX2NoZWNrX2xlYWYoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3Qs IHN0cnVjdCBleHRlbnRfYnVmZmVyICpsZWFmKQorc3RhdGljIGludCBjaGVja19sZWFmKHN0cnVj dCBidHJmc19yb290ICpyb290LCBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbGVhZiwKKwkJICAgICAg Ym9vbCBjaGVja19pdGVtX2RhdGEpCiB7CiAJc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8g PSByb290LT5mc19pbmZvOwogCS8qIE5vIHZhbGlkIGtleSB0eXBlIGlzIDAsIHNvIGFsbCBrZXkg c2hvdWxkIGJlIGxhcmdlciB0aGFuIHRoaXMga2V5ICovCkBAIC0yOTksMTAgKzMwMCwxNSBAQCBp bnQgYnRyZnNfY2hlY2tfbGVhZihzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwgc3RydWN0IGV4dGVu dF9idWZmZXIgKmxlYWYpCiAJCQlyZXR1cm4gLUVVQ0xFQU47CiAJCX0KIAotCQkvKiBDaGVjayBp ZiB0aGUgaXRlbSBzaXplIGFuZCBjb250ZW50IG1lZXQgb3RoZXIgY3JpdGVyaWEgKi8KLQkJcmV0 ID0gY2hlY2tfbGVhZl9pdGVtKHJvb3QsIGxlYWYsICZrZXksIHNsb3QpOwotCQlpZiAocmV0IDwg MCkKLQkJCXJldHVybiByZXQ7CisJCWlmIChjaGVja19pdGVtX2RhdGEpIHsKKwkJCS8qCisJCQkg KiBDaGVjayBpZiB0aGUgaXRlbSBzaXplIGFuZCBjb250ZW50IG1lZXQgb3RoZXIKKwkJCSAqIGNy aXRlcmlhCisJCQkgKi8KKwkJCXJldCA9IGNoZWNrX2xlYWZfaXRlbShyb290LCBsZWFmLCAma2V5 LCBzbG90KTsKKwkJCWlmIChyZXQgPCAwKQorCQkJCXJldHVybiByZXQ7CisJCX0KIAogCQlwcmV2 X2tleS5vYmplY3RpZCA9IGtleS5vYmplY3RpZDsKIAkJcHJldl9rZXkudHlwZSA9IGtleS50eXBl OwpAQCAtMzEyLDYgKzMxOCwxNyBAQCBpbnQgYnRyZnNfY2hlY2tfbGVhZihzdHJ1Y3QgYnRyZnNf cm9vdCAqcm9vdCwgc3RydWN0IGV4dGVudF9idWZmZXIgKmxlYWYpCiAJcmV0dXJuIDA7CiB9CiAK K2ludCBidHJmc19jaGVja19sZWFmX2Z1bGwoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsIHN0cnVj dCBleHRlbnRfYnVmZmVyICpsZWFmKQoreworCXJldHVybiBjaGVja19sZWFmKHJvb3QsIGxlYWYs IHRydWUpOworfQorCitpbnQgYnRyZnNfY2hlY2tfbGVhZl9yZWxheGVkKHN0cnVjdCBidHJmc19y b290ICpyb290LAorCQkJICAgICBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbGVhZikKK3sKKwlyZXR1 cm4gY2hlY2tfbGVhZihyb290LCBsZWFmLCBmYWxzZSk7Cit9CisKIGludCBidHJmc19jaGVja19u b2RlKHN0cnVjdCBidHJmc19yb290ICpyb290LCBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbm9kZSkK IHsKIAl1bnNpZ25lZCBsb25nIG5yID0gYnRyZnNfaGVhZGVyX25yaXRlbXMobm9kZSk7CmRpZmYg LS1naXQgYS9mcy9idHJmcy90cmVlLWNoZWNrZXIuaCBiL2ZzL2J0cmZzL3RyZWUtY2hlY2tlci5o CmluZGV4IDk2YzQ4NmU5NWQ3MC4uM2Q1M2U4ZDZmZGEwIDEwMDY0NAotLS0gYS9mcy9idHJmcy90 cmVlLWNoZWNrZXIuaAorKysgYi9mcy9idHJmcy90cmVlLWNoZWNrZXIuaApAQCAtMjAsNyArMjAs MTkgQEAKICNpbmNsdWRlICJjdHJlZS5oIgogI2luY2x1ZGUgImV4dGVudF9pby5oIgogCi1pbnQg YnRyZnNfY2hlY2tfbGVhZihzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwgc3RydWN0IGV4dGVudF9i dWZmZXIgKmxlYWYpOworLyoKKyAqIENvbXByZWhlbnNpdmUgbGVhZiBjaGVja2VyLgorICogV2ls bCBjaGVjayBub3Qgb25seSB0aGUgaXRlbSBwb2ludGVycywgYnV0IGFsc28gZXZlcnkgcG9zc2li bGUgbWVtYmVyCisgKiBpbiBpdGVtIGRhdGEuCisgKi8KK2ludCBidHJmc19jaGVja19sZWFmX2Z1 bGwoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsIHN0cnVjdCBleHRlbnRfYnVmZmVyICpsZWFmKTsK KworLyoKKyAqIExlc3Mgc3RyaWN0IGxlYWYgY2hlY2tlci4KKyAqIFdpbGwgb25seSBjaGVjayBp dGVtIHBvaW50ZXJzLCBub3QgcmVhZGluZyBpdGVtIGRhdGEuCisgKi8KK2ludCBidHJmc19jaGVj a19sZWFmX3JlbGF4ZWQoc3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCisJCQkgICAgIHN0cnVjdCBl eHRlbnRfYnVmZmVyICpsZWFmKTsKIGludCBidHJmc19jaGVja19ub2RlKHN0cnVjdCBidHJmc19y b290ICpyb290LCBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbm9kZSk7CiAKICNlbmRpZgotLSAKQmVu IEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENv ZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAg RGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIDg4Mzk3NWNm OGMwMGM3Mzg0NmIxZmRmNjI5ZTdhYzFjNmZmN2ExMDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFF1IFdlbnJ1byA8d3F1QHN1c2UuY29tPgpEYXRlOiBXZWQsIDggTm92IDIwMTcgMDg6 NTQ6MjUgKzA4MDAKU3ViamVjdDogW1BBVENIIDI0LzQ2XSBidHJmczogdHJlZS1jaGVja2VyOiBB ZGQgY2hlY2tlciBmb3IgZGlyIGl0ZW0KCmNvbW1pdCBhZDdiMDM2OGYzM2NmZmU2N2ZlY2QzMDIw Mjg5MTU5MjZlNTBlZjdlIHVwc3RyZWFtLgoKQWRkIGNoZWNrZXIgZm9yIGRpciBpdGVtLCBmb3Ig a2V5IHR5cGVzIERJUl9JVEVNLCBESVJfSU5ERVggYW5kClhBVFRSX0lURU0uCgpUaGlzIGNoZWNr ZXIgZG9lcyBjb21wcmVoZW5zaXZlIGNoZWNrcyBmb3I6CgoxKSBkaXJfaXRlbSBoZWFkZXIgYW5k IGl0cyBkYXRhIHNpemUKICAgQWdhaW5zdCBpdGVtIGJvdW5kYXJ5IGFuZCBtYXhpbXVtIG5hbWUv eGF0dHIgbGVuZ3RoLgogICBUaGlzIHBhcnQgaXMgbW9zdGx5IHRoZSBzYW1lIGFzIG9sZCB2ZXJp ZnlfZGlyX2l0ZW0oKS4KCjIpIGRpcl90eXBlCiAgIEFnYWluc3QgbWF4aW11bSBmaWxlIHR5cGVz LCBhbmQgYWdhaW5zdCBrZXkgdHlwZS4KICAgU2luY2UgWEFUVFIga2V5IHNob3VsZCBvbmx5IGhh dmUgRlRfWEFUVFIgZGlyIGl0ZW0sIGFuZCBub3JtYWwgZGlyCiAgIGl0ZW0gdHlwZSBzaG91bGQg bm90IGhhdmUgWEFUVFIga2V5LgoKICAgVGhlIGNoZWNrIGJldHdlZW4ga2V5LT50eXBlIGFuZCBk aXJfdHlwZSBpcyBuZXdseSBpbnRyb2R1Y2VkIGJ5IHRoaXMKICAgcGF0Y2guCgozKSBuYW1lIGhh c2gKICAgRm9yIFhBVFRSIGFuZCBESVJfSVRFTSBrZXksIGtleS0+b2Zmc2V0IGlzIG5hbWUgaGFz aCAoY3JjMzJjKS4KICAgQ2hlY2sgdGhlIGhhc2ggb2YgdGhlIG5hbWUgYWdhaW5zdCB0aGUga2V5 IHRvIGVuc3VyZSBpdCdzIGNvcnJlY3QuCgogICBUaGUgbmFtZSBoYXNoIGNoZWNrIGlzIG9ubHkg Zm91bmQgaW4gYnRyZnMtcHJvZ3MgYmVmb3JlIHRoaXMgcGF0Y2guCgpTaWduZWQtb2ZmLWJ5OiBR dSBXZW5ydW8gPHdxdUBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IE5pa29sYXkgQm9yaXNvdiA8bmJv cmlzb3ZAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBTdSBZdWUgPHN1eS5mbnN0QGNuLmZ1aml0c3Uu Y29tPgpSZXZpZXdlZC1ieTogRGF2aWQgU3RlcmJhIDxkc3RlcmJhQHN1c2UuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJl biBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2J0cmZz L3RyZWUtY2hlY2tlci5jIHwgMTQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMgYi9mcy9idHJmcy90cmVlLWNoZWNrZXIuYwpp bmRleCBmZjRmYThmOTA1ZDMuLmIzMmRmODZkZTliZiAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvdHJl ZS1jaGVja2VyLmMKKysrIGIvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMKQEAgLTMwLDYgKzMwLDcg QEAKICNpbmNsdWRlICJ0cmVlLWNoZWNrZXIuaCIKICNpbmNsdWRlICJkaXNrLWlvLmgiCiAjaW5j bHVkZSAiY29tcHJlc3Npb24uaCIKKyNpbmNsdWRlICJoYXNoLmgiCiAKICNkZWZpbmUgQ09SUlVQ VChyZWFzb24sIGViLCByb290LCBzbG90KQkJCQkJXAogCWJ0cmZzX2NyaXQocm9vdC0+ZnNfaW5m bywJCQkJCVwKQEAgLTE3Niw2ICsxNzcsMTQxIEBAIHN0YXRpYyBpbnQgY2hlY2tfY3N1bV9pdGVt KHN0cnVjdCBidHJmc19yb290ICpyb290LCBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbGVhZiwKIH0K IAogLyoKKyAqIEN1c3RvbWl6ZWQgcmVwb3J0ZWQgZm9yIGRpcl9pdGVtLCBvbmx5IGltcG9ydGFu dCBuZXcgaW5mbyBpcyBrZXktPm9iamVjdGlkLAorICogd2hpY2ggcmVwcmVzZW50cyBpbm9kZSBu dW1iZXIKKyAqLworX19wcmludGYoNCwgNSkKK3N0YXRpYyB2b2lkIGRpcl9pdGVtX2Vycihjb25z dCBzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKKwkJCSBjb25zdCBzdHJ1Y3QgZXh0ZW50X2J1ZmZl ciAqZWIsIGludCBzbG90LAorCQkJIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCXN0cnVjdCBi dHJmc19rZXkga2V5OworCXN0cnVjdCB2YV9mb3JtYXQgdmFmOworCXZhX2xpc3QgYXJnczsKKwor CWJ0cmZzX2l0ZW1fa2V5X3RvX2NwdShlYiwgJmtleSwgc2xvdCk7CisJdmFfc3RhcnQoYXJncywg Zm10KTsKKworCXZhZi5mbXQgPSBmbXQ7CisJdmFmLnZhID0gJmFyZ3M7CisKKwlidHJmc19jcml0 KHJvb3QtPmZzX2luZm8sCisJImNvcnJ1cHQgJXM6IHJvb3Q9JWxsdSBibG9jaz0lbGx1IHNsb3Q9 JWQgaW5vPSVsbHUsICVwViIsCisJCWJ0cmZzX2hlYWRlcl9sZXZlbChlYikgPT0gMCA/ICJsZWFm IiA6ICJub2RlIiwgcm9vdC0+b2JqZWN0aWQsCisJCWJ0cmZzX2hlYWRlcl9ieXRlbnIoZWIpLCBz bG90LCBrZXkub2JqZWN0aWQsICZ2YWYpOworCXZhX2VuZChhcmdzKTsKK30KKworc3RhdGljIGlu dCBjaGVja19kaXJfaXRlbShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKKwkJCSAgc3RydWN0IGV4 dGVudF9idWZmZXIgKmxlYWYsCisJCQkgIHN0cnVjdCBidHJmc19rZXkgKmtleSwgaW50IHNsb3Qp Cit7CisJc3RydWN0IGJ0cmZzX2Rpcl9pdGVtICpkaTsKKwl1MzIgaXRlbV9zaXplID0gYnRyZnNf aXRlbV9zaXplX25yKGxlYWYsIHNsb3QpOworCXUzMiBjdXIgPSAwOworCisJZGkgPSBidHJmc19p dGVtX3B0cihsZWFmLCBzbG90LCBzdHJ1Y3QgYnRyZnNfZGlyX2l0ZW0pOworCXdoaWxlIChjdXIg PCBpdGVtX3NpemUpIHsKKwkJY2hhciBuYW1lYnVmW21heChCVFJGU19OQU1FX0xFTiwgWEFUVFJf TkFNRV9NQVgpXTsKKwkJdTMyIG5hbWVfbGVuOworCQl1MzIgZGF0YV9sZW47CisJCXUzMiBtYXhf bmFtZV9sZW47CisJCXUzMiB0b3RhbF9zaXplOworCQl1MzIgbmFtZV9oYXNoOworCQl1OCBkaXJf dHlwZTsKKworCQkvKiBoZWFkZXIgaXRzZWxmIHNob3VsZCBub3QgY3Jvc3MgaXRlbSBib3VuZGFy eSAqLworCQlpZiAoY3VyICsgc2l6ZW9mKCpkaSkgPiBpdGVtX3NpemUpIHsKKwkJCWRpcl9pdGVt X2Vycihyb290LCBsZWFmLCBzbG90LAorCQkiZGlyIGl0ZW0gaGVhZGVyIGNyb3NzZXMgaXRlbSBi b3VuZGFyeSwgaGF2ZSAlbHUgYm91bmRhcnkgJXUiLAorCQkJCWN1ciArIHNpemVvZigqZGkpLCBp dGVtX3NpemUpOworCQkJcmV0dXJuIC1FVUNMRUFOOworCQl9CisKKwkJLyogZGlyIHR5cGUgY2hl Y2sgKi8KKwkJZGlyX3R5cGUgPSBidHJmc19kaXJfdHlwZShsZWFmLCBkaSk7CisJCWlmIChkaXJf dHlwZSA+PSBCVFJGU19GVF9NQVgpIHsKKwkJCWRpcl9pdGVtX2Vycihyb290LCBsZWFmLCBzbG90 LAorCQkJImludmFsaWQgZGlyIGl0ZW0gdHlwZSwgaGF2ZSAldSBleHBlY3QgWzAsICV1KSIsCisJ CQkJZGlyX3R5cGUsIEJUUkZTX0ZUX01BWCk7CisJCQlyZXR1cm4gLUVVQ0xFQU47CisJCX0KKwor CQlpZiAoa2V5LT50eXBlID09IEJUUkZTX1hBVFRSX0lURU1fS0VZICYmCisJCSAgICBkaXJfdHlw ZSAhPSBCVFJGU19GVF9YQVRUUikgeworCQkJZGlyX2l0ZW1fZXJyKHJvb3QsIGxlYWYsIHNsb3Qs CisJCSJpbnZhbGlkIGRpciBpdGVtIHR5cGUgZm9yIFhBVFRSIGtleSwgaGF2ZSAldSBleHBlY3Qg JXUiLAorCQkJCWRpcl90eXBlLCBCVFJGU19GVF9YQVRUUik7CisJCQlyZXR1cm4gLUVVQ0xFQU47 CisJCX0KKwkJaWYgKGRpcl90eXBlID09IEJUUkZTX0ZUX1hBVFRSICYmCisJCSAgICBrZXktPnR5 cGUgIT0gQlRSRlNfWEFUVFJfSVRFTV9LRVkpIHsKKwkJCWRpcl9pdGVtX2Vycihyb290LCBsZWFm LCBzbG90LAorCQkJInhhdHRyIGRpciB0eXBlIGZvdW5kIGZvciBub24tWEFUVFIga2V5Iik7CisJ CQlyZXR1cm4gLUVVQ0xFQU47CisJCX0KKwkJaWYgKGRpcl90eXBlID09IEJUUkZTX0ZUX1hBVFRS KQorCQkJbWF4X25hbWVfbGVuID0gWEFUVFJfTkFNRV9NQVg7CisJCWVsc2UKKwkJCW1heF9uYW1l X2xlbiA9IEJUUkZTX05BTUVfTEVOOworCisJCS8qIE5hbWUvZGF0YSBsZW5ndGggY2hlY2sgKi8K KwkJbmFtZV9sZW4gPSBidHJmc19kaXJfbmFtZV9sZW4obGVhZiwgZGkpOworCQlkYXRhX2xlbiA9 IGJ0cmZzX2Rpcl9kYXRhX2xlbihsZWFmLCBkaSk7CisJCWlmIChuYW1lX2xlbiA+IG1heF9uYW1l X2xlbikgeworCQkJZGlyX2l0ZW1fZXJyKHJvb3QsIGxlYWYsIHNsb3QsCisJCQkiZGlyIGl0ZW0g bmFtZSBsZW4gdG9vIGxvbmcsIGhhdmUgJXUgbWF4ICV1IiwKKwkJCQluYW1lX2xlbiwgbWF4X25h bWVfbGVuKTsKKwkJCXJldHVybiAtRVVDTEVBTjsKKwkJfQorCQlpZiAobmFtZV9sZW4gKyBkYXRh X2xlbiA+IEJUUkZTX01BWF9YQVRUUl9TSVpFKHJvb3QtPmZzX2luZm8pKSB7CisJCQlkaXJfaXRl bV9lcnIocm9vdCwgbGVhZiwgc2xvdCwKKwkJCSJkaXIgaXRlbSBuYW1lIGFuZCBkYXRhIGxlbiB0 b28gbG9uZywgaGF2ZSAldSBtYXggJXUiLAorCQkJCW5hbWVfbGVuICsgZGF0YV9sZW4sCisJCQkJ QlRSRlNfTUFYX1hBVFRSX1NJWkUocm9vdC0+ZnNfaW5mbykpOworCQkJcmV0dXJuIC1FVUNMRUFO OworCQl9CisKKwkJaWYgKGRhdGFfbGVuICYmIGRpcl90eXBlICE9IEJUUkZTX0ZUX1hBVFRSKSB7 CisJCQlkaXJfaXRlbV9lcnIocm9vdCwgbGVhZiwgc2xvdCwKKwkJCSJkaXIgaXRlbSB3aXRoIGlu dmFsaWQgZGF0YSBsZW4sIGhhdmUgJXUgZXhwZWN0IDAiLAorCQkJCWRhdGFfbGVuKTsKKwkJCXJl dHVybiAtRVVDTEVBTjsKKwkJfQorCisJCXRvdGFsX3NpemUgPSBzaXplb2YoKmRpKSArIG5hbWVf bGVuICsgZGF0YV9sZW47CisKKwkJLyogaGVhZGVyIGFuZCBuYW1lL2RhdGEgc2hvdWxkIG5vdCBj cm9zcyBpdGVtIGJvdW5kYXJ5ICovCisJCWlmIChjdXIgKyB0b3RhbF9zaXplID4gaXRlbV9zaXpl KSB7CisJCQlkaXJfaXRlbV9lcnIocm9vdCwgbGVhZiwgc2xvdCwKKwkJImRpciBpdGVtIGRhdGEg Y3Jvc3NlcyBpdGVtIGJvdW5kYXJ5LCBoYXZlICV1IGJvdW5kYXJ5ICV1IiwKKwkJCQljdXIgKyB0 b3RhbF9zaXplLCBpdGVtX3NpemUpOworCQkJcmV0dXJuIC1FVUNMRUFOOworCQl9CisKKwkJLyoK KwkJICogU3BlY2lhbCBjaGVjayBmb3IgWEFUVFIvRElSX0lURU0sIGFzIGtleS0+b2Zmc2V0IGlz IG5hbWUKKwkJICogaGFzaCwgc2hvdWxkIG1hdGNoIGl0cyBuYW1lCisJCSAqLworCQlpZiAoa2V5 LT50eXBlID09IEJUUkZTX0RJUl9JVEVNX0tFWSB8fAorCQkgICAga2V5LT50eXBlID09IEJUUkZT X1hBVFRSX0lURU1fS0VZKSB7CisJCQlyZWFkX2V4dGVudF9idWZmZXIobGVhZiwgbmFtZWJ1ZiwK KwkJCQkJKHVuc2lnbmVkIGxvbmcpKGRpICsgMSksIG5hbWVfbGVuKTsKKwkJCW5hbWVfaGFzaCA9 IGJ0cmZzX25hbWVfaGFzaChuYW1lYnVmLCBuYW1lX2xlbik7CisJCQlpZiAoa2V5LT5vZmZzZXQg IT0gbmFtZV9oYXNoKSB7CisJCQkJZGlyX2l0ZW1fZXJyKHJvb3QsIGxlYWYsIHNsb3QsCisJCSJu YW1lIGhhc2ggbWlzbWF0Y2ggd2l0aCBrZXksIGhhdmUgMHglMDE2eCBleHBlY3QgMHglMDE2bGx4 IiwKKwkJCQkJbmFtZV9oYXNoLCBrZXktPm9mZnNldCk7CisJCQkJcmV0dXJuIC1FVUNMRUFOOwor CQkJfQorCQl9CisJCWN1ciArPSB0b3RhbF9zaXplOworCQlkaSA9IChzdHJ1Y3QgYnRyZnNfZGly X2l0ZW0gKikoKHZvaWQgKilkaSArIHRvdGFsX3NpemUpOworCX0KKwlyZXR1cm4gMDsKK30KKwor LyoKICAqIENvbW1vbiBwb2ludCB0byBzd2l0Y2ggdGhlIGl0ZW0tc3BlY2lmaWMgdmFsaWRhdGlv bi4KICAqLwogc3RhdGljIGludCBjaGVja19sZWFmX2l0ZW0oc3RydWN0IGJ0cmZzX3Jvb3QgKnJv b3QsCkBAIC0xOTEsNiArMzI3LDExIEBAIHN0YXRpYyBpbnQgY2hlY2tfbGVhZl9pdGVtKHN0cnVj dCBidHJmc19yb290ICpyb290LAogCWNhc2UgQlRSRlNfRVhURU5UX0NTVU1fS0VZOgogCQlyZXQg PSBjaGVja19jc3VtX2l0ZW0ocm9vdCwgbGVhZiwga2V5LCBzbG90KTsKIAkJYnJlYWs7CisJY2Fz ZSBCVFJGU19ESVJfSVRFTV9LRVk6CisJY2FzZSBCVFJGU19ESVJfSU5ERVhfS0VZOgorCWNhc2Ug QlRSRlNfWEFUVFJfSVRFTV9LRVk6CisJCXJldCA9IGNoZWNrX2Rpcl9pdGVtKHJvb3QsIGxlYWYs IGtleSwgc2xvdCk7CisJCWJyZWFrOwogCX0KIAlyZXR1cm4gcmV0OwogfQotLSAKQmVuIEh1dGNo aW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGlu ayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBI b3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdkb20KCgpGcm9tIDJmZmM4ZjE0MDU0NzEz ZWM4NzhiYjQ3MDg1ZGQ3MDNkZGM0OTQyOWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+CkRhdGU6IFdlZCwgNiBEZWMgMjAxNyAxNTox ODoxNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjUvNDZdIGJ0cmZzOiB0cmVlLWNoZWNrZXI6IHVz ZSAlenUgZm9ybWF0IHN0cmluZyBmb3Igc2l6ZV90Cgpjb21taXQgN2NmYWQ2NTI5N2JmZTBhYTI5 OTZjZDcyZDIxYzg5OGFhODQ0MzZkOSB1cHN0cmVhbS4KClRoZSByZXR1cm4gdmFsdWUgb2Ygc2l6 ZW9mKCkgaXMgb2YgdHlwZSBzaXplX3QsIHNvIHdlIG11c3QgcHJpbnQgaXQKdXNpbmcgdGhlICV6 IGZvcm1hdCBtb2RpZmllciByYXRoZXIgdGhhbiAlbCB0byBhdm9pZCB0aGlzIHdhcm5pbmcKb24g c29tZSBhcmNoaXRlY3R1cmVzOgoKZnMvYnRyZnMvdHJlZS1jaGVja2VyLmM6IEluIGZ1bmN0aW9u ICdjaGVja19kaXJfaXRlbSc6CmZzL2J0cmZzL3RyZWUtY2hlY2tlci5jOjI3Mzo1MDogZXJyb3I6 IGZvcm1hdCAnJWx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgdW5zaWduZWQgaW50 JywgYnV0IGFyZ3VtZW50IDUgaGFzIHR5cGUgJ3UzMicge2FrYSAndW5zaWduZWQgaW50J30gWy1X ZXJyb3I9Zm9ybWF0PV0KCkZpeGVzOiAwMDU4ODdmMmUzZTAgKCJidHJmczogdHJlZS1jaGVja2Vy OiBBZGQgY2hlY2tlciBmb3IgZGlyIGl0ZW0iKQpTaWduZWQtb2ZmLWJ5OiBBcm5kIEJlcmdtYW5u IDxhcm5kQGFybmRiLmRlPgpSZXZpZXdlZC1ieTogRGF2aWQgU3RlcmJhIDxkc3RlcmJhQHN1c2Uu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ClNpZ25l ZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgot LS0KIGZzL2J0cmZzL3RyZWUtY2hlY2tlci5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvdHJlZS1jaGVj a2VyLmMgYi9mcy9idHJmcy90cmVlLWNoZWNrZXIuYwppbmRleCBiMzJkZjg2ZGU5YmYuLjkzNzY3 MzlhNGNjOCAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMKKysrIGIvZnMvYnRy ZnMvdHJlZS1jaGVja2VyLmMKQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgaW50IGNoZWNrX2Rp cl9pdGVtKHN0cnVjdCBidHJmc19yb290ICpyb290LAogCQkvKiBoZWFkZXIgaXRzZWxmIHNob3Vs ZCBub3QgY3Jvc3MgaXRlbSBib3VuZGFyeSAqLwogCQlpZiAoY3VyICsgc2l6ZW9mKCpkaSkgPiBp dGVtX3NpemUpIHsKIAkJCWRpcl9pdGVtX2Vycihyb290LCBsZWFmLCBzbG90LAotCQkiZGlyIGl0 ZW0gaGVhZGVyIGNyb3NzZXMgaXRlbSBib3VuZGFyeSwgaGF2ZSAlbHUgYm91bmRhcnkgJXUiLAor CQkiZGlyIGl0ZW0gaGVhZGVyIGNyb3NzZXMgaXRlbSBib3VuZGFyeSwgaGF2ZSAlenUgYm91bmRh cnkgJXUiLAogCQkJCWN1ciArIHNpemVvZigqZGkpLCBpdGVtX3NpemUpOwogCQkJcmV0dXJuIC1F VUNMRUFOOwogCQl9Ci0tIApCZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAg ICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28u dWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0cmVldAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2lu Z2RvbQoKCkZyb20gMGUwMzhlZmE5MGUwZWY4NTBkOWRhMTdkZjFiNjUxZTBiMmVlZDQxOCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgU3RlcmJhIDxkc3RlcmJhQHN1c2UuY29t PgpEYXRlOiBXZWQsIDEwIEphbiAyMDE4IDE1OjEzOjA3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAy Ni80Nl0gYnRyZnM6IHRyZWUtY2hlY2s6IHJlZHVjZSBzdGFjayBjb25zdW1wdGlvbiBpbgogY2hl Y2tfZGlyX2l0ZW0KCmNvbW1pdCBlMjY4M2ZjOWQyMTk0MzBmNWI3ODg4OWI1MGNkZTdmNDBlZmVi YTdiIHVwc3RyZWFtLgoKSSd2ZSBub3RpY2VkIHRoYXQgdGhlIHVwZGF0ZWQgaXRlbSBjaGVja2Vy IHN0YWNrIGNvbnN1bXB0aW9uIGluY3JlYXNlZApkcmFtYXRpY2FsbHkgaW4gNTQyZjUzODVlMjBj Zjk3NDQ3ICgiYnRyZnM6IHRyZWUtY2hlY2tlcjogQWRkIGNoZWNrZXIKZm9yIGRpciBpdGVtIikK CnRyZWUtY2hlY2tlci5jOmNoZWNrX2xlYWYgICAgICAgICAgICAgICAgICAgICs1NTIgKDE3NiAt PiA3MjgpCgpUaGUgYXJyYXkgaXMgMjU1IGJ5dGVzIGxvbmcsIGR5bmFtaWMgYWxsb2NhdGlvbiB3 b3VsZCBzbG93IGRvd24gdGhlCnNhbml0eSBjaGVja3Mgc28gaXQncyBtb3JlIHJlYXNvbmFibGUg dG8ga2VlcCBpdCBvbi1zdGFjay4gTW92aW5nIHRoZQp2YXJpYWJsZSB0byB0aGUgc2NvcGUgb2Yg dXNlIHJlZHVjZXMgdGhlIHN0YWNrIHVzYWdlIGFnYWluCgp0cmVlLWNoZWNrZXIuYzpjaGVja19s ZWFmICAgICAgICAgICAgICAgICAgICAtMjY0ICg3MjggLT4gNDY0KQoKUmV2aWV3ZWQtYnk6IEpv c2VmIEJhY2lrIDxqYmFjaWtAZmIuY29tPgpSZXZpZXdlZC1ieTogUXUgV2VucnVvIDx3cXVAc3Vz ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFN0ZXJiYSA8ZHN0ZXJiYUBzdXNlLmNvbT4KU2ln bmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+ Ci0tLQogZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL3RyZWUt Y2hlY2tlci5jIGIvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMKaW5kZXggOTM3NjczOWE0Y2M4Li5m N2U3YTQ1NWI3MTAgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL3RyZWUtY2hlY2tlci5jCisrKyBiL2Zz L2J0cmZzL3RyZWUtY2hlY2tlci5jCkBAIC0yMTIsNyArMjEyLDYgQEAgc3RhdGljIGludCBjaGVj a19kaXJfaXRlbShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwKIAogCWRpID0gYnRyZnNfaXRlbV9w dHIobGVhZiwgc2xvdCwgc3RydWN0IGJ0cmZzX2Rpcl9pdGVtKTsKIAl3aGlsZSAoY3VyIDwgaXRl bV9zaXplKSB7Ci0JCWNoYXIgbmFtZWJ1ZlttYXgoQlRSRlNfTkFNRV9MRU4sIFhBVFRSX05BTUVf TUFYKV07CiAJCXUzMiBuYW1lX2xlbjsKIAkJdTMyIGRhdGFfbGVuOwogCQl1MzIgbWF4X25hbWVf bGVuOwpAQCAtMjk1LDYgKzI5NCw4IEBAIHN0YXRpYyBpbnQgY2hlY2tfZGlyX2l0ZW0oc3RydWN0 IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJCSAqLwogCQlpZiAoa2V5LT50eXBlID09IEJUUkZTX0RJUl9J VEVNX0tFWSB8fAogCQkgICAga2V5LT50eXBlID09IEJUUkZTX1hBVFRSX0lURU1fS0VZKSB7CisJ CQljaGFyIG5hbWVidWZbbWF4KEJUUkZTX05BTUVfTEVOLCBYQVRUUl9OQU1FX01BWCldOworCiAJ CQlyZWFkX2V4dGVudF9idWZmZXIobGVhZiwgbmFtZWJ1ZiwKIAkJCQkJKHVuc2lnbmVkIGxvbmcp KGRpICsgMSksIG5hbWVfbGVuKTsKIAkJCW5hbWVfaGFzaCA9IGJ0cmZzX25hbWVfaGFzaChuYW1l YnVmLCBuYW1lX2xlbik7Ci0tIApCZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAg ICAgICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApodHRwczovL3d3dy5jb2RldGhpbmsu Y28udWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0cmVldAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hlc3RlciwgTTEgMkhGLCBVbml0ZWQg S2luZ2RvbQoKCkZyb20gNGEyMDQ3MTJkNDcwZjE2YTBmMWU5NTc0MDlhOTg1ZDI2ZjNkOWNkMSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUXUgV2VucnVvIDx3cXVAc3VzZS5jb20+CkRh dGU6IFR1ZSwgMyBKdWwgMjAxOCAxNzoxMDowNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjcvNDZd IGJ0cmZzOiB0cmVlLWNoZWNrZXI6IFZlcmlmeSBibG9ja19ncm91cF9pdGVtCgpjb21taXQgZmNl NDY2ZWFiN2FjNmJhYTlkMmRjZDg4YWJjZjk0NWJlM2Q0YTA4OSB1cHN0cmVhbS4KCkEgY3JhZnRl ZCBpbWFnZSB3aXRoIGludmFsaWQgYmxvY2sgZ3JvdXAgaXRlbXMgY291bGQgbWFrZSBmcmVlIHNw YWNlIGNhY2hlCmNvZGUgdG8gY2F1c2UgcGFuaWMuCgpXZSBjb3VsZCBkZXRlY3Qgc3VjaCBpbnZh bGlkIGJsb2NrIGdyb3VwIGl0ZW0gYnkgY2hlY2tpbmc6CjEpIEl0ZW0gc2l6ZQogICBLbm93biBm aXhlZCB2YWx1ZS4KMikgQmxvY2sgZ3JvdXAgc2l6ZSAoa2V5Lm9mZnNldCkKICAgV2UgaGF2ZSBh biB1cHBlciBsaW1pdCBvbiBibG9jayBncm91cCBpdGVtICgxMEcpCjMpIENodW5rIG9iamVjdGlk CiAgIEtub3duIGZpeGVkIHZhbHVlLgo0KSBUeXBlCiAgIE9ubHkgNCB2YWxpZCB0eXBlIHZhbHVl cywgREFUQSwgTUVUQURBVEEsIFNZU1RFTSBhbmQgREFUQXxNRVRBREFUQS4KICAgTm8gbW9yZSB0 aGFuIDEgYml0IHNldCBmb3IgcHJvZmlsZSB0eXBlLgo1KSBVc2VkIHNwYWNlCiAgIE5vIG1vcmUg dGhhbiB0aGUgYmxvY2sgZ3JvdXAgc2l6ZS4KClRoaXMgc2hvdWxkIGFsbG93IGJ0cmZzIHRvIGRl dGVjdCBhbmQgcmVmdXNlIHRvIG1vdW50IHRoZSBjcmFmdGVkIGltYWdlLgoKTGluazogaHR0cHM6 Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4NDkKUmVwb3J0ZWQtYnk6 IFh1IFdlbiA8d2VuLnh1QGdhdGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IFF1IFdlbnJ1byA8d3F1 QHN1c2UuY29tPgpSZXZpZXdlZC1ieTogR3UgSmlueGlhbmcgPGd1anhAY24uZnVqaXRzdS5jb20+ ClJldmlld2VkLWJ5OiBOaWtvbGF5IEJvcmlzb3YgPG5ib3Jpc292QHN1c2UuY29tPgpUZXN0ZWQt Ynk6IEd1IEppbnhpYW5nIDxndWp4QGNuLmZ1aml0c3UuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQg U3RlcmJhIDxkc3RlcmJhQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTdGVyYmEgPGRz dGVyYmFAc3VzZS5jb20+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC4xNDoKIC0gSW4gY2hlY2tfbGVh Zl9pdGVtKCksIHBhc3Mgcm9vdC0+ZnNfaW5mbyB0byBjaGVja19ibG9ja19ncm91cF9pdGVtKCkK IC0gQWRqdXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRj aGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2J0cmZzL3RyZWUtY2hlY2tlci5jIHwgMTAw ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZnMvYnRy ZnMvdm9sdW1lcy5jICAgICAgfCAgIDIgKy0KIGZzL2J0cmZzL3ZvbHVtZXMuaCAgICAgIHwgICAy ICsKIDMgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9mcy9idHJmcy90cmVlLWNoZWNrZXIuYyBiL2ZzL2J0cmZzL3RyZWUtY2hlY2tl ci5jCmluZGV4IGY3ZTdhNDU1YjcxMC4uY2Y5YjEwYTA3MTM0IDEwMDY0NAotLS0gYS9mcy9idHJm cy90cmVlLWNoZWNrZXIuYworKysgYi9mcy9idHJmcy90cmVlLWNoZWNrZXIuYwpAQCAtMzEsNiAr MzEsNyBAQAogI2luY2x1ZGUgImRpc2staW8uaCIKICNpbmNsdWRlICJjb21wcmVzc2lvbi5oIgog I2luY2x1ZGUgImhhc2guaCIKKyNpbmNsdWRlICJ2b2x1bWVzLmgiCiAKICNkZWZpbmUgQ09SUlVQ VChyZWFzb24sIGViLCByb290LCBzbG90KQkJCQkJXAogCWJ0cmZzX2NyaXQocm9vdC0+ZnNfaW5m bywJCQkJCVwKQEAgLTMxMiw2ICszMTMsMTAyIEBAIHN0YXRpYyBpbnQgY2hlY2tfZGlyX2l0ZW0o c3RydWN0IGJ0cmZzX3Jvb3QgKnJvb3QsCiAJcmV0dXJuIDA7CiB9CiAKK19fcHJpbnRmKDQsIDUp CitfX2NvbGQKK3N0YXRpYyB2b2lkIGJsb2NrX2dyb3VwX2Vycihjb25zdCBzdHJ1Y3QgYnRyZnNf ZnNfaW5mbyAqZnNfaW5mbywKKwkJCSAgICBjb25zdCBzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqZWIs IGludCBzbG90LAorCQkJICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCXN0cnVjdCBidHJm c19rZXkga2V5OworCXN0cnVjdCB2YV9mb3JtYXQgdmFmOworCXZhX2xpc3QgYXJnczsKKworCWJ0 cmZzX2l0ZW1fa2V5X3RvX2NwdShlYiwgJmtleSwgc2xvdCk7CisJdmFfc3RhcnQoYXJncywgZm10 KTsKKworCXZhZi5mbXQgPSBmbXQ7CisJdmFmLnZhID0gJmFyZ3M7CisKKwlidHJmc19jcml0KGZz X2luZm8sCisJImNvcnJ1cHQgJXM6IHJvb3Q9JWxsdSBibG9jaz0lbGx1IHNsb3Q9JWQgYmdfc3Rh cnQ9JWxsdSBiZ19sZW49JWxsdSwgJXBWIiwKKwkJYnRyZnNfaGVhZGVyX2xldmVsKGViKSA9PSAw ID8gImxlYWYiIDogIm5vZGUiLAorCQlidHJmc19oZWFkZXJfb3duZXIoZWIpLCBidHJmc19oZWFk ZXJfYnl0ZW5yKGViKSwgc2xvdCwKKwkJa2V5Lm9iamVjdGlkLCBrZXkub2Zmc2V0LCAmdmFmKTsK Kwl2YV9lbmQoYXJncyk7Cit9CisKK3N0YXRpYyBpbnQgY2hlY2tfYmxvY2tfZ3JvdXBfaXRlbShz dHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbywKKwkJCQkgIHN0cnVjdCBleHRlbnRfYnVmZmVy ICpsZWFmLAorCQkJCSAgc3RydWN0IGJ0cmZzX2tleSAqa2V5LCBpbnQgc2xvdCkKK3sKKwlzdHJ1 Y3QgYnRyZnNfYmxvY2tfZ3JvdXBfaXRlbSBiZ2k7CisJdTMyIGl0ZW1fc2l6ZSA9IGJ0cmZzX2l0 ZW1fc2l6ZV9ucihsZWFmLCBzbG90KTsKKwl1NjQgZmxhZ3M7CisJdTY0IHR5cGU7CisKKwkvKgor CSAqIEhlcmUgd2UgZG9uJ3QgcmVhbGx5IGNhcmUgYWJvdXQgYWxpZ25tZW50IHNpbmNlIGV4dGVu dCBhbGxvY2F0b3IgY2FuCisJICogaGFuZGxlIGl0LiAgV2UgY2FyZSBtb3JlIGFib3V0IHRoZSBz aXplLCBhcyBpZiBvbmUgYmxvY2sgZ3JvdXAgaXMKKwkgKiBsYXJnZXIgdGhhbiBtYXhpbXVtIHNp emUsIGl0J3MgbXVzdCBiZSBzb21lIG9idmlvdXMgY29ycnVwdGlvbi4KKwkgKi8KKwlpZiAoa2V5 LT5vZmZzZXQgPiBCVFJGU19NQVhfREFUQV9DSFVOS19TSVpFIHx8IGtleS0+b2Zmc2V0ID09IDAp IHsKKwkJYmxvY2tfZ3JvdXBfZXJyKGZzX2luZm8sIGxlYWYsIHNsb3QsCisJCQkiaW52YWxpZCBi bG9jayBncm91cCBzaXplLCBoYXZlICVsbHUgZXhwZWN0ICgwLCAlbGx1XSIsCisJCQkJa2V5LT5v ZmZzZXQsIEJUUkZTX01BWF9EQVRBX0NIVU5LX1NJWkUpOworCQlyZXR1cm4gLUVVQ0xFQU47CisJ fQorCisJaWYgKGl0ZW1fc2l6ZSAhPSBzaXplb2YoYmdpKSkgeworCQlibG9ja19ncm91cF9lcnIo ZnNfaW5mbywgbGVhZiwgc2xvdCwKKwkJCSJpbnZhbGlkIGl0ZW0gc2l6ZSwgaGF2ZSAldSBleHBl Y3QgJXp1IiwKKwkJCQlpdGVtX3NpemUsIHNpemVvZihiZ2kpKTsKKwkJcmV0dXJuIC1FVUNMRUFO OworCX0KKworCXJlYWRfZXh0ZW50X2J1ZmZlcihsZWFmLCAmYmdpLCBidHJmc19pdGVtX3B0cl9v ZmZzZXQobGVhZiwgc2xvdCksCisJCQkgICBzaXplb2YoYmdpKSk7CisJaWYgKGJ0cmZzX2Jsb2Nr X2dyb3VwX2NodW5rX29iamVjdGlkKCZiZ2kpICE9CisJICAgIEJUUkZTX0ZJUlNUX0NIVU5LX1RS RUVfT0JKRUNUSUQpIHsKKwkJYmxvY2tfZ3JvdXBfZXJyKGZzX2luZm8sIGxlYWYsIHNsb3QsCisJ CSJpbnZhbGlkIGJsb2NrIGdyb3VwIGNodW5rIG9iamVjdGlkLCBoYXZlICVsbHUgZXhwZWN0ICVs bHUiLAorCQkJCWJ0cmZzX2Jsb2NrX2dyb3VwX2NodW5rX29iamVjdGlkKCZiZ2kpLAorCQkJCUJU UkZTX0ZJUlNUX0NIVU5LX1RSRUVfT0JKRUNUSUQpOworCQlyZXR1cm4gLUVVQ0xFQU47CisJfQor CisJaWYgKGJ0cmZzX2Jsb2NrX2dyb3VwX3VzZWQoJmJnaSkgPiBrZXktPm9mZnNldCkgeworCQli bG9ja19ncm91cF9lcnIoZnNfaW5mbywgbGVhZiwgc2xvdCwKKwkJCSJpbnZhbGlkIGJsb2NrIGdy b3VwIHVzZWQsIGhhdmUgJWxsdSBleHBlY3QgWzAsICVsbHUpIiwKKwkJCQlidHJmc19ibG9ja19n cm91cF91c2VkKCZiZ2kpLCBrZXktPm9mZnNldCk7CisJCXJldHVybiAtRVVDTEVBTjsKKwl9CisK KwlmbGFncyA9IGJ0cmZzX2Jsb2NrX2dyb3VwX2ZsYWdzKCZiZ2kpOworCWlmIChod2VpZ2h0NjQo ZmxhZ3MgJiBCVFJGU19CTE9DS19HUk9VUF9QUk9GSUxFX01BU0spID4gMSkgeworCQlibG9ja19n cm91cF9lcnIoZnNfaW5mbywgbGVhZiwgc2xvdCwKKyJpbnZhbGlkIHByb2ZpbGUgZmxhZ3MsIGhh dmUgMHglbGx4ICglbHUgYml0cyBzZXQpIGV4cGVjdCBubyBtb3JlIHRoYW4gMSBiaXQgc2V0IiwK KwkJCWZsYWdzICYgQlRSRlNfQkxPQ0tfR1JPVVBfUFJPRklMRV9NQVNLLAorCQkJaHdlaWdodDY0 KGZsYWdzICYgQlRSRlNfQkxPQ0tfR1JPVVBfUFJPRklMRV9NQVNLKSk7CisJCXJldHVybiAtRVVD TEVBTjsKKwl9CisKKwl0eXBlID0gZmxhZ3MgJiBCVFJGU19CTE9DS19HUk9VUF9UWVBFX01BU0s7 CisJaWYgKHR5cGUgIT0gQlRSRlNfQkxPQ0tfR1JPVVBfREFUQSAmJgorCSAgICB0eXBlICE9IEJU UkZTX0JMT0NLX0dST1VQX01FVEFEQVRBICYmCisJICAgIHR5cGUgIT0gQlRSRlNfQkxPQ0tfR1JP VVBfU1lTVEVNICYmCisJICAgIHR5cGUgIT0gKEJUUkZTX0JMT0NLX0dST1VQX01FVEFEQVRBIHwK KwkJCSAgIEJUUkZTX0JMT0NLX0dST1VQX0RBVEEpKSB7CisJCWJsb2NrX2dyb3VwX2Vycihmc19p bmZvLCBsZWFmLCBzbG90LAorImludmFsaWQgdHlwZSwgaGF2ZSAweCVsbHggKCVsdSBiaXRzIHNl dCkgZXhwZWN0IGVpdGhlciAweCVsbHgsIDB4JWxseCwgMHglbGx1IG9yIDB4JWxseCIsCisJCQl0 eXBlLCBod2VpZ2h0NjQodHlwZSksCisJCQlCVFJGU19CTE9DS19HUk9VUF9EQVRBLCBCVFJGU19C TE9DS19HUk9VUF9NRVRBREFUQSwKKwkJCUJUUkZTX0JMT0NLX0dST1VQX1NZU1RFTSwKKwkJCUJU UkZTX0JMT0NLX0dST1VQX01FVEFEQVRBIHwgQlRSRlNfQkxPQ0tfR1JPVVBfREFUQSk7CisJCXJl dHVybiAtRVVDTEVBTjsKKwl9CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBDb21tb24gcG9pbnQg dG8gc3dpdGNoIHRoZSBpdGVtLXNwZWNpZmljIHZhbGlkYXRpb24uCiAgKi8KQEAgLTMzMyw2ICs0 MzAsOSBAQCBzdGF0aWMgaW50IGNoZWNrX2xlYWZfaXRlbShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9v dCwKIAljYXNlIEJUUkZTX1hBVFRSX0lURU1fS0VZOgogCQlyZXQgPSBjaGVja19kaXJfaXRlbShy b290LCBsZWFmLCBrZXksIHNsb3QpOwogCQlicmVhazsKKwljYXNlIEJUUkZTX0JMT0NLX0dST1VQ X0lURU1fS0VZOgorCQlyZXQgPSBjaGVja19ibG9ja19ncm91cF9pdGVtKHJvb3QtPmZzX2luZm8s IGxlYWYsIGtleSwgc2xvdCk7CisJCWJyZWFrOwogCX0KIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0t Z2l0IGEvZnMvYnRyZnMvdm9sdW1lcy5jIGIvZnMvYnRyZnMvdm9sdW1lcy5jCmluZGV4IGNmZDU3 MjhlNzUxOS4uOTY2M2I2YWEyYTU2IDEwMDY0NAotLS0gYS9mcy9idHJmcy92b2x1bWVzLmMKKysr IGIvZnMvYnRyZnMvdm9sdW1lcy5jCkBAIC00NjQ3LDcgKzQ2NDcsNyBAQCBzdGF0aWMgaW50IF9f YnRyZnNfYWxsb2NfY2h1bmsoc3RydWN0IGJ0cmZzX3RyYW5zX2hhbmRsZSAqdHJhbnMsCiAKIAlp ZiAodHlwZSAmIEJUUkZTX0JMT0NLX0dST1VQX0RBVEEpIHsKIAkJbWF4X3N0cmlwZV9zaXplID0g U1pfMUc7Ci0JCW1heF9jaHVua19zaXplID0gMTAgKiBtYXhfc3RyaXBlX3NpemU7CisJCW1heF9j aHVua19zaXplID0gQlRSRlNfTUFYX0RBVEFfQ0hVTktfU0laRTsKIAkJaWYgKCFkZXZzX21heCkK IAkJCWRldnNfbWF4ID0gQlRSRlNfTUFYX0RFVlMoaW5mby0+Y2h1bmtfcm9vdCk7CiAJfSBlbHNl IGlmICh0eXBlICYgQlRSRlNfQkxPQ0tfR1JPVVBfTUVUQURBVEEpIHsKZGlmZiAtLWdpdCBhL2Zz L2J0cmZzL3ZvbHVtZXMuaCBiL2ZzL2J0cmZzL3ZvbHVtZXMuaAppbmRleCBjNWRkNDhlYjdiM2Qu Ljc2ZmI2ZTg0ZjIwMSAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvdm9sdW1lcy5oCisrKyBiL2ZzL2J0 cmZzL3ZvbHVtZXMuaApAQCAtMjQsNiArMjQsOCBAQAogI2luY2x1ZGUgPGxpbnV4L2J0cmZzLmg+ CiAjaW5jbHVkZSAiYXN5bmMtdGhyZWFkLmgiCiAKKyNkZWZpbmUgQlRSRlNfTUFYX0RBVEFfQ0hV TktfU0laRQkoMTBVTEwgKiBTWl8xRykKKwogZXh0ZXJuIHN0cnVjdCBtdXRleCB1dWlkX211dGV4 OwogCiAjZGVmaW5lIEJUUkZTX1NUUklQRV9MRU4JU1pfNjRLCi0tIApCZW4gSHV0Y2hpbmdzLCBT b2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApo dHRwczovL3d3dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAz NSBEYWxlIFN0cmVldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hl c3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gZmQwODU5MzFhY2RjYWEwMjA4ZTI4 ODJiNzY5MmY0ZThjNDY3NmNhOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUXUgV2Vu cnVvIDx3cXVAc3VzZS5jb20+CkRhdGU6IFR1ZSwgMyBKdWwgMjAxOCAxNzoxMDowNiArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMjgvNDZdIGJ0cmZzOiB0cmVlLWNoZWNrZXI6IERldGVjdCBpbnZhbGlk IGFuZCBlbXB0eSBlc3NlbnRpYWwKIHRyZWVzCgpjb21taXQgYmE0ODBkZDRkYjlmMTc5ODU0MWVi MmQxYzQyM2ZjOTVmZWVlOGQzNiB1cHN0cmVhbS4KCkEgY3JhZnRlZCBpbWFnZSBoYXMgZW1wdHkg cm9vdCB0cmVlIGJsb2NrLCB3aGljaCB3aWxsIGxhdGVyIGNhdXNlIE5VTEwKcG9pbnRlciBkZXJl ZmVyZW5jZS4KClRoZSBmb2xsb3dpbmcgdHJlZXMgc2hvdWxkIG5ldmVyIGJlIGVtcHR5OgoxKSBU cmVlIHJvb3QKICAgTXVzdCBjb250YWluIGF0IGxlYXN0IHJvb3QgaXRlbXMgZm9yIGV4dGVudCB0 cmVlLCBkZXZpY2UgdHJlZSBhbmQgZnMKICAgdHJlZQoKMikgQ2h1bmsgdHJlZQogICBPciB3ZSBj YW4ndCBldmVuIGJvb3RzdHJhcCBhcyBpdCBjb250YWlucyB0aGUgbWFwcGluZy4KCjMpIEZzIHRy ZWUKICAgQXQgbGVhc3QgaW5vZGUgaXRlbSBmb3IgdG9wIGxldmVsIGlub2RlICguKS4KCjQpIERl dmljZSB0cmVlCiAgIERldiBleHRlbnRzIGZvciBjaHVua3MKCjUpIEV4dGVudCB0cmVlCiAgIE11 c3QgaGF2ZSBjb3JyZXNwb25kaW5nIGV4dGVudCBmb3IgZWFjaCBjaHVuay4KCklmIGFueSBvZiB0 aGVtIGlzIGVtcHR5LCB3ZSBhcmUgc3VyZSB0aGUgZnMgaXMgY29ycnVwdGVkIGFuZCBubyBuZWVk IHRvCm1vdW50IGl0LgoKTGluazogaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVn LmNnaT9pZD0xOTk4NDcKUmVwb3J0ZWQtYnk6IFh1IFdlbiA8d2VuLnh1QGdhdGVjaC5lZHU+ClNp Z25lZC1vZmYtYnk6IFF1IFdlbnJ1byA8d3F1QHN1c2UuY29tPgpUZXN0ZWQtYnk6IEd1IEppbnhp YW5nIDxndWp4QGNuLmZ1aml0c3UuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQgU3RlcmJhIDxkc3Rl cmJhQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5j b20+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC4xNDogUGFzcyByb290IGluc3RlYWQgb2YgZnNfaW5m byB0byBnZW5lcmljX2VycigpXQpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0 Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBmcy9idHJmcy90cmVlLWNoZWNrZXIuYyB8IDE1 ICsrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9mcy9idHJmcy90cmVlLWNoZWNrZXIuYyBiL2ZzL2J0cmZz L3RyZWUtY2hlY2tlci5jCmluZGV4IGNmOWIxMGEwNzEzNC4uMzE3NTZiYWM3NWI0IDEwMDY0NAot LS0gYS9mcy9idHJmcy90cmVlLWNoZWNrZXIuYworKysgYi9mcy9idHJmcy90cmVlLWNoZWNrZXIu YwpAQCAtNDU2LDkgKzQ1NiwyMiBAQCBzdGF0aWMgaW50IGNoZWNrX2xlYWYoc3RydWN0IGJ0cmZz X3Jvb3QgKnJvb3QsIHN0cnVjdCBleHRlbnRfYnVmZmVyICpsZWFmLAogCSAqIHNraXAgdGhpcyBj aGVjayBmb3IgcmVsb2NhdGlvbiB0cmVlcy4KIAkgKi8KIAlpZiAobnJpdGVtcyA9PSAwICYmICFi dHJmc19oZWFkZXJfZmxhZyhsZWFmLCBCVFJGU19IRUFERVJfRkxBR19SRUxPQykpIHsKKwkJdTY0 IG93bmVyID0gYnRyZnNfaGVhZGVyX293bmVyKGxlYWYpOwogCQlzdHJ1Y3QgYnRyZnNfcm9vdCAq Y2hlY2tfcm9vdDsKIAotCQlrZXkub2JqZWN0aWQgPSBidHJmc19oZWFkZXJfb3duZXIobGVhZik7 CisJCS8qIFRoZXNlIHRyZWVzIG11c3QgbmV2ZXIgYmUgZW1wdHkgKi8KKwkJaWYgKG93bmVyID09 IEJUUkZTX1JPT1RfVFJFRV9PQkpFQ1RJRCB8fAorCQkgICAgb3duZXIgPT0gQlRSRlNfQ0hVTktf VFJFRV9PQkpFQ1RJRCB8fAorCQkgICAgb3duZXIgPT0gQlRSRlNfRVhURU5UX1RSRUVfT0JKRUNU SUQgfHwKKwkJICAgIG93bmVyID09IEJUUkZTX0RFVl9UUkVFX09CSkVDVElEIHx8CisJCSAgICBv d25lciA9PSBCVFJGU19GU19UUkVFX09CSkVDVElEIHx8CisJCSAgICBvd25lciA9PSBCVFJGU19E QVRBX1JFTE9DX1RSRUVfT0JKRUNUSUQpIHsKKwkJCWdlbmVyaWNfZXJyKHJvb3QsIGxlYWYsIDAs CisJCQkiaW52YWxpZCByb290LCByb290ICVsbHUgbXVzdCBuZXZlciBiZSBlbXB0eSIsCisJCQkJ ICAgIG93bmVyKTsKKwkJCXJldHVybiAtRVVDTEVBTjsKKwkJfQorCQlrZXkub2JqZWN0aWQgPSBv d25lcjsKIAkJa2V5LnR5cGUgPSBCVFJGU19ST09UX0lURU1fS0VZOwogCQlrZXkub2Zmc2V0ID0g KHU2NCktMTsKIAotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAgICAgICAg ICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5rLmNvLnVr LyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVkIEtpbmdk b20KCgpGcm9tIDY2ODhkMDZiNGM5YjgwNDE0OWIzZTlhZTNlYmMwYzcyZTMzYzdjYWIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFF1IFdlbnJ1byA8d3F1QHN1c2UuY29tPgpEYXRlOiBX ZWQsIDEgQXVnIDIwMTggMTA6Mzc6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIDI5LzQ2XSBidHJm czogQ2hlY2sgdGhhdCBlYWNoIGJsb2NrIGdyb3VwIGhhcyBjb3JyZXNwb25kaW5nCiBjaHVuayBh dCBtb3VudCB0aW1lCgpjb21taXQgNTE0YzdkY2E4NWEwYmY0MGJlOTg0ZGFiMGI0Nzc0MDNhNmRi OTAxZiB1cHN0cmVhbS4KCkEgY3JhZnRlZCBidHJmcyBpbWFnZSB3aXRoIGluY29ycmVjdCBjaHVu azwtPmJsb2NrIGdyb3VwIG1hcHBpbmcgd2lsbAp0cmlnZ2VyIGEgbG90IG9mIHVuZXhwZWN0ZWQg dGhpbmdzIGFzIHRoZSBtYXBwaW5nIGlzIGVzc2VudGlhbC4KCkFsdGhvdWdoIHRoZSBwcm9ibGVt IGNhbiBiZSBjYXVnaHQgYnkgYmxvY2sgZ3JvdXAgaXRlbSBjaGVja2VyCmFkZGVkIGluICJidHJm czogdHJlZS1jaGVja2VyOiBWZXJpZnkgYmxvY2tfZ3JvdXBfaXRlbSIsIGl0J3Mgc3RpbGwgbm90 CnN1ZmZpY2llbnQuICBBIHN1ZmZpY2llbnRseSB2YWxpZCBibG9jayBncm91cCBpdGVtIGNhbiBw YXNzIHRoZSBjaGVjawphZGRlZCBieSB0aGUgbWVudGlvbmVkIHBhdGNoIGJ1dCBjb3VsZCBmYWls IHRvIG1hdGNoIHRoZSBleGlzdGluZyBjaHVuay4KClRoaXMgcGF0Y2ggd2lsbCBhZGQgZXh0cmEg YmxvY2sgZ3JvdXAgLT4gY2h1bmsgbWFwcGluZyBjaGVjaywgdG8gZW5zdXJlCndlIGhhdmUgYSBj b21wbGV0ZWx5IG1hdGNoaW5nIChzdGFydCwgbGVuLCBmbGFncykgY2h1bmsgZm9yIGVhY2ggYmxv Y2sKZ3JvdXAgYXQgbW91bnQgdGltZS4KCkhlcmUgd2UgcmV1c2UgdGhlIG9yaWdpbmFsIGhlbHBl ciBmaW5kX2ZpcnN0X2Jsb2NrX2dyb3VwKCksIHdoaWNoIGlzCmFscmVhZHkgZG9pbmcgdGhlIGJh c2ljIGJnIC0+IGNodW5rIGNoZWNrcywgYWRkaW5nIGZ1cnRoZXIgY2hlY2tzIG9mIHRoZQpzdGFy dC9sZW4gYW5kIHR5cGUgZmxhZ3MuCgpMaW5rOiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcv c2hvd19idWcuY2dpP2lkPTE5OTgzNwpSZXBvcnRlZC1ieTogWHUgV2VuIDx3ZW4ueHVAZ2F0ZWNo LmVkdT4KU2lnbmVkLW9mZi1ieTogUXUgV2VucnVvIDx3cXVAc3VzZS5jb20+ClJldmlld2VkLWJ5 OiBTdSBZdWUgPHN1eS5mbnN0QGNuLmZ1aml0c3UuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQgU3Rl cmJhIDxkc3RlcmJhQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVy YmFAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NA Y29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2J0cmZzL2V4dGVudC10cmVlLmMgfCAyOCArKysrKysr KysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMgYi9mcy9i dHJmcy9leHRlbnQtdHJlZS5jCmluZGV4IGZkYzQyZWRkY2NjMi4uODM3OTFkMTNjMjA0IDEwMDY0 NAotLS0gYS9mcy9idHJmcy9leHRlbnQtdHJlZS5jCisrKyBiL2ZzL2J0cmZzL2V4dGVudC10cmVl LmMKQEAgLTk4MjgsNiArOTgyOCw4IEBAIHN0YXRpYyBpbnQgZmluZF9maXJzdF9ibG9ja19ncm91 cChzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbywKIAlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3Qg YnRyZnNfa2V5IGZvdW5kX2tleTsKIAlzdHJ1Y3QgZXh0ZW50X2J1ZmZlciAqbGVhZjsKKwlzdHJ1 Y3QgYnRyZnNfYmxvY2tfZ3JvdXBfaXRlbSBiZzsKKwl1NjQgZmxhZ3M7CiAJaW50IHNsb3Q7CiAK IAlyZXQgPSBidHJmc19zZWFyY2hfc2xvdChOVUxMLCByb290LCBrZXksIHBhdGgsIDAsIDApOwpA QCAtOTg2Miw4ICs5ODY0LDMyIEBAIHN0YXRpYyBpbnQgZmluZF9maXJzdF9ibG9ja19ncm91cChz dHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbywKIAkJCSJsb2dpY2FsICVsbHUgbGVuICVsbHUg Zm91bmQgYmcgYnV0IG5vIHJlbGF0ZWQgY2h1bmsiLAogCQkJCQkgIGZvdW5kX2tleS5vYmplY3Rp ZCwgZm91bmRfa2V5Lm9mZnNldCk7CiAJCQkJcmV0ID0gLUVOT0VOVDsKKwkJCX0gZWxzZSBpZiAo ZW0tPnN0YXJ0ICE9IGZvdW5kX2tleS5vYmplY3RpZCB8fAorCQkJCSAgIGVtLT5sZW4gIT0gZm91 bmRfa2V5Lm9mZnNldCkgeworCQkJCWJ0cmZzX2Vycihmc19pbmZvLAorCQkiYmxvY2sgZ3JvdXAg JWxsdSBsZW4gJWxsdSBtaXNtYXRjaCB3aXRoIGNodW5rICVsbHUgbGVuICVsbHUiLAorCQkJCQkg IGZvdW5kX2tleS5vYmplY3RpZCwgZm91bmRfa2V5Lm9mZnNldCwKKwkJCQkJICBlbS0+c3RhcnQs IGVtLT5sZW4pOworCQkJCXJldCA9IC1FVUNMRUFOOwogCQkJfSBlbHNlIHsKLQkJCQlyZXQgPSAw OworCQkJCXJlYWRfZXh0ZW50X2J1ZmZlcihsZWFmLCAmYmcsCisJCQkJCWJ0cmZzX2l0ZW1fcHRy X29mZnNldChsZWFmLCBzbG90KSwKKwkJCQkJc2l6ZW9mKGJnKSk7CisJCQkJZmxhZ3MgPSBidHJm c19ibG9ja19ncm91cF9mbGFncygmYmcpICYKKwkJCQkJQlRSRlNfQkxPQ0tfR1JPVVBfVFlQRV9N QVNLOworCisJCQkJaWYgKGZsYWdzICE9IChlbS0+bWFwX2xvb2t1cC0+dHlwZSAmCisJCQkJCSAg ICAgIEJUUkZTX0JMT0NLX0dST1VQX1RZUEVfTUFTSykpIHsKKwkJCQkJYnRyZnNfZXJyKGZzX2lu Zm8sCisiYmxvY2sgZ3JvdXAgJWxsdSBsZW4gJWxsdSB0eXBlIGZsYWdzIDB4JWxseCBtaXNtYXRj aCB3aXRoIGNodW5rIHR5cGUgZmxhZ3MgMHglbGx4IiwKKwkJCQkJCWZvdW5kX2tleS5vYmplY3Rp ZCwKKwkJCQkJCWZvdW5kX2tleS5vZmZzZXQsIGZsYWdzLAorCQkJCQkJKEJUUkZTX0JMT0NLX0dS T1VQX1RZUEVfTUFTSyAmCisJCQkJCQkgZW0tPm1hcF9sb29rdXAtPnR5cGUpKTsKKwkJCQkJcmV0 ID0gLUVVQ0xFQU47CisJCQkJfSBlbHNlIHsKKwkJCQkJcmV0ID0gMDsKKwkJCQl9CiAJCQl9CiAJ CQlmcmVlX2V4dGVudF9tYXAoZW0pOwogCQkJZ290byBvdXQ7Ci0tIApCZW4gSHV0Y2hpbmdzLCBT b2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApo dHRwczovL3d3dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAz NSBEYWxlIFN0cmVldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hl c3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gOGM4NDA3MjczYjU1MmI4ZGU5YjZj M2U1NDYwNTczZDdkOTVlNjk2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUXUgV2Vu cnVvIDx3cXVAc3VzZS5jb20+CkRhdGU6IEZyaSwgMjggU2VwIDIwMTggMDc6NTk6MzQgKzA4MDAK U3ViamVjdDogW1BBVENIIDMwLzQ2XSBidHJmczogdHJlZS1jaGVja2VyOiBDaGVjayBsZXZlbCBm b3IgbGVhdmVzIGFuZCBub2RlcwoKY29tbWl0IGY1NTZmYWE0NmViNGU5NmQwZDA3NzJlNzRlY2Y2 Njc4MWUxMzJmNzIgdXBzdHJlYW0uCgpBbHRob3VnaCB3ZSBoYXZlIHRyZWUgbGV2ZWwgY2hlY2sg YXQgdHJlZSByZWFkIHJ1bnRpbWUsIGl0J3MgY29tcGxldGVseQpiYXNlZCBvbiBpdHMgcGFyZW50 IGxldmVsLgpXZSBzdGlsbCBuZWVkIHRvIGRvIGFjY3VyYXRlIGxldmVsIGNoZWNrIHRvIGF2b2lk IGludmFsaWQgdHJlZSBibG9ja3MKc25lYWsgaW50byBrZXJuZWwgc3BhY2UuCgpUaGUgY2hlY2sg aXRzZWxmIGlzIHNpbXBsZSwgZm9yIGxlYWYgaXRzIGxldmVsIHNob3VsZCBhbHdheXMgYmUgMC4K Rm9yIG5vZGVzIGl0cyBsZXZlbCBzaG91bGQgYmUgaW4gcmFuZ2UgWzEsIEJUUkZTX01BWF9MRVZF TCAtIDFdLgoKU2lnbmVkLW9mZi1ieTogUXUgV2VucnVvIDx3cXVAc3VzZS5jb20+ClJldmlld2Vk LWJ5OiBTdSBZdWUgPHN1eS5mbnN0QGNuLmZ1aml0c3UuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQg U3RlcmJhIDxkc3RlcmJhQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTdGVyYmEgPGRz dGVyYmFAc3VzZS5jb20+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC4xNDoKIC0gUGFzcyByb290IGlu c3RlYWQgb2YgZnNfaW5mbyB0byBnZW5lcmljX2VycigpCiAtIEFkanVzdCBjb250ZXh0XQpTaWdu ZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4K LS0tCiBmcy9idHJmcy90cmVlLWNoZWNrZXIuYyB8IDE0ICsrKysrKysrKysrKysrCiAxIGZpbGUg Y2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL3RyZWUtY2hl Y2tlci5jIGIvZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMKaW5kZXggMzE3NTZiYWM3NWI0Li5mYThm NjQxMTllNmYgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL3RyZWUtY2hlY2tlci5jCisrKyBiL2ZzL2J0 cmZzL3RyZWUtY2hlY2tlci5jCkBAIC00NDcsNiArNDQ3LDEzIEBAIHN0YXRpYyBpbnQgY2hlY2tf bGVhZihzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwgc3RydWN0IGV4dGVudF9idWZmZXIgKmxlYWYs CiAJdTMyIG5yaXRlbXMgPSBidHJmc19oZWFkZXJfbnJpdGVtcyhsZWFmKTsKIAlpbnQgc2xvdDsK IAorCWlmIChidHJmc19oZWFkZXJfbGV2ZWwobGVhZikgIT0gMCkgeworCQlnZW5lcmljX2Vycihy b290LCBsZWFmLCAwLAorCQkJImludmFsaWQgbGV2ZWwgZm9yIGxlYWYsIGhhdmUgJWQgZXhwZWN0 IDAiLAorCQkJYnRyZnNfaGVhZGVyX2xldmVsKGxlYWYpKTsKKwkJcmV0dXJuIC1FVUNMRUFOOwor CX0KKwogCS8qCiAJICogRXh0ZW50IGJ1ZmZlcnMgZnJvbSBhIHJlbG9jYXRpb24gdHJlZSBoYXZl IGEgb3duZXIgZmllbGQgdGhhdAogCSAqIGNvcnJlc3BvbmRzIHRvIHRoZSBzdWJ2b2x1bWUgdHJl ZSB0aGV5IGFyZSBiYXNlZCBvbi4gU28ganVzdCBmcm9tIGFuCkBAIC01ODksOSArNTk2LDE2IEBA IGludCBidHJmc19jaGVja19ub2RlKHN0cnVjdCBidHJmc19yb290ICpyb290LCBzdHJ1Y3QgZXh0 ZW50X2J1ZmZlciAqbm9kZSkKIAl1bnNpZ25lZCBsb25nIG5yID0gYnRyZnNfaGVhZGVyX25yaXRl bXMobm9kZSk7CiAJc3RydWN0IGJ0cmZzX2tleSBrZXksIG5leHRfa2V5OwogCWludCBzbG90Owor CWludCBsZXZlbCA9IGJ0cmZzX2hlYWRlcl9sZXZlbChub2RlKTsKIAl1NjQgYnl0ZW5yOwogCWlu dCByZXQgPSAwOwogCisJaWYgKGxldmVsIDw9IDAgfHwgbGV2ZWwgPj0gQlRSRlNfTUFYX0xFVkVM KSB7CisJCWdlbmVyaWNfZXJyKHJvb3QsIG5vZGUsIDAsCisJCQkiaW52YWxpZCBsZXZlbCBmb3Ig bm9kZSwgaGF2ZSAlZCBleHBlY3QgWzEsICVkXSIsCisJCQlsZXZlbCwgQlRSRlNfTUFYX0xFVkVM IC0gMSk7CisJCXJldHVybiAtRVVDTEVBTjsKKwl9CiAJaWYgKG5yID09IDAgfHwgbnIgPiBCVFJG U19OT0RFUFRSU19QRVJfQkxPQ0socm9vdC0+ZnNfaW5mbykpIHsKIAkJYnRyZnNfY3JpdChyb290 LT5mc19pbmZvLAogImNvcnJ1cHQgbm9kZTogcm9vdD0lbGx1IGJsb2NrPSVsbHUsIG5yaXRlbXMg dG9vICVzLCBoYXZlICVsdSBleHBlY3QgcmFuZ2UgWzEsJXVdIiwKLS0gCkJlbiBIdXRjaGluZ3Ms IFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRk Cmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2Us IDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5j aGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSA4ZWVhZWExMDFlMjY1ODgzNTVi NGRlMzlmZTg3MjQxOTFlYTFlNjI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFv a3VuIFpoYW5nIDx6aGFuZ3NoYW9rdW5AaGlzaWxpY29uLmNvbT4KRGF0ZTogTW9uLCA1IE5vdiAy MDE4IDE4OjQ5OjA5ICswODAwClN1YmplY3Q6IFtQQVRDSCAzMS80Nl0gYnRyZnM6IHRyZWUtY2hl Y2tlcjogRml4IG1pc2xlYWRpbmcgZ3JvdXAgc3lzdGVtCiBpbmZvcm1hdGlvbgoKY29tbWl0IDc2 MTMzM2YyZjUwY2NjODg3YWE5OTU3YWU4MjkzMDAyNjJjMGQxNWIgdXBzdHJlYW0uCgpibG9ja19n cm91cF9lcnIgc2hvd3MgdGhlIGdyb3VwIHN5c3RlbSBhcyBhIGRlY2ltYWwgdmFsdWUgd2l0aCBh ICcweCcKcHJlZml4LCB3aGljaCBpcyBzb21ld2hhdCBtaXNsZWFkaW5nLgoKRml4IGl0IHRvIHBy aW50IGhleGFkZWNpbWFsLCBhcyB3YXMgaW50ZW5kZWQuCgpGaXhlczogZmNlNDY2ZWFiN2FjNiAo ImJ0cmZzOiB0cmVlLWNoZWNrZXI6IFZlcmlmeSBibG9ja19ncm91cF9pdGVtIikKUmV2aWV3ZWQt Ynk6IE5pa29sYXkgQm9yaXNvdiA8bmJvcmlzb3ZAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBRdSBX ZW5ydW8gPHdxdUBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogU2hhb2t1biBaaGFuZyA8emhhbmdz aGFva3VuQGhpc2lsaWNvbi5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFA c3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFN0ZXJiYSA8ZHN0ZXJiYUBzdXNlLmNvbT4K U2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28u dWs+Ci0tLQogZnMvYnRyZnMvdHJlZS1jaGVja2VyLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9mcy9idHJmcy90cmVl LWNoZWNrZXIuYyBiL2ZzL2J0cmZzL3RyZWUtY2hlY2tlci5jCmluZGV4IGZhOGY2NDExOWU2Zi4u ZjIwNmFlYzE1MjVkIDEwMDY0NAotLS0gYS9mcy9idHJmcy90cmVlLWNoZWNrZXIuYworKysgYi9m cy9idHJmcy90cmVlLWNoZWNrZXIuYwpAQCAtMzk5LDcgKzM5OSw3IEBAIHN0YXRpYyBpbnQgY2hl Y2tfYmxvY2tfZ3JvdXBfaXRlbShzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbywKIAkgICAg dHlwZSAhPSAoQlRSRlNfQkxPQ0tfR1JPVVBfTUVUQURBVEEgfAogCQkJICAgQlRSRlNfQkxPQ0tf R1JPVVBfREFUQSkpIHsKIAkJYmxvY2tfZ3JvdXBfZXJyKGZzX2luZm8sIGxlYWYsIHNsb3QsCi0i aW52YWxpZCB0eXBlLCBoYXZlIDB4JWxseCAoJWx1IGJpdHMgc2V0KSBleHBlY3QgZWl0aGVyIDB4 JWxseCwgMHglbGx4LCAweCVsbHUgb3IgMHglbGx4IiwKKyJpbnZhbGlkIHR5cGUsIGhhdmUgMHgl bGx4ICglbHUgYml0cyBzZXQpIGV4cGVjdCBlaXRoZXIgMHglbGx4LCAweCVsbHgsIDB4JWxseCBv ciAweCVsbHgiLAogCQkJdHlwZSwgaHdlaWdodDY0KHR5cGUpLAogCQkJQlRSRlNfQkxPQ0tfR1JP VVBfREFUQSwgQlRSRlNfQkxPQ0tfR1JPVVBfTUVUQURBVEEsCiAJCQlCVFJGU19CTE9DS19HUk9V UF9TWVNURU0sCi0tIApCZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAg ICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28udWsv ICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0cmVldAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2Rv bQoKCkZyb20gYWRjNzQ0NTJiNTZlYTZmNjVkZDI2YjBlMWJmODkxY2I3ZmJjZTFjYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVubGVpIEhlIDxoZXl1bmxlaUBodWF3ZWkuY29tPgpE YXRlOiBUaHUsIDggTWFyIDIwMTggMTY6Mjk6MTMgKzA4MDAKU3ViamVjdDogW1BBVENIIDMyLzQ2 XSBmMmZzOiBjaGVjayBibGthZGRyIG1vcmUgYWNjdXJhdGx5IGJlZm9yZSBpc3N1ZSBhIGJpbwoK Y29tbWl0IDA4MzM3MjFlYzM2NThhNGU5ZDVlNThiNmZhODJjZjllZGM0MzFlNTkgdXBzdHJlYW0u CgpUaGlzIHBhdGNoIGNoZWNrIGJsa2FkZHIgbW9yZSBhY2N1cmF0bHkgYmVmb3JlIGlzc3VlIGEK d3JpdGUgb3IgcmVhZCBiaW8uCgpTaWduZWQtb2ZmLWJ5OiBZdW5sZWkgSGUgPGhleXVubGVpQGh1 YXdlaS5jb20+ClJldmlld2VkLWJ5OiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25l ZC1vZmYtYnk6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6 IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2Yy ZnMvY2hlY2twb2ludC5jIHwgIDIgKysKIGZzL2YyZnMvZGF0YS5jICAgICAgIHwgIDUgKysrLS0K IGZzL2YyZnMvZjJmcy5oICAgICAgIHwgIDEgKwogZnMvZjJmcy9zZWdtZW50LmggICAgfCAyNSAr KysrKysrKysrKysrKysrKysrLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMo KyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9jaGVja3BvaW50LmMgYi9m cy9mMmZzL2NoZWNrcG9pbnQuYwppbmRleCA0MWZjZTkzMGY0NGMuLjFiZDRjZDhjNzljNiAxMDA2 NDQKLS0tIGEvZnMvZjJmcy9jaGVja3BvaW50LmMKKysrIGIvZnMvZjJmcy9jaGVja3BvaW50LmMK QEAgLTY5LDYgKzY5LDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlICpfX2dldF9tZXRhX3BhZ2Uoc3Ry dWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBwZ29mZl90IGluZGV4LAogCQkub2xkX2Jsa2FkZHIgPSBp bmRleCwKIAkJLm5ld19ibGthZGRyID0gaW5kZXgsCiAJCS5lbmNyeXB0ZWRfcGFnZSA9IE5VTEws CisJCS5pc19tZXRhID0gaXNfbWV0YSwKIAl9OwogCiAJaWYgKHVubGlrZWx5KCFpc19tZXRhKSkK QEAgLTE2Myw2ICsxNjQsNyBAQCBpbnQgcmFfbWV0YV9wYWdlcyhzdHJ1Y3QgZjJmc19zYl9pbmZv ICpzYmksIGJsb2NrX3Qgc3RhcnQsIGludCBucnBhZ2VzLAogCQkub3BfZmxhZ3MgPSBzeW5jID8g KFJFUV9NRVRBIHwgUkVRX1BSSU8pIDogUkVRX1JBSEVBRCwKIAkJLmVuY3J5cHRlZF9wYWdlID0g TlVMTCwKIAkJLmluX2xpc3QgPSBmYWxzZSwKKwkJLmlzX21ldGEgPSAodHlwZSAhPSBNRVRBX1BP UiksCiAJfTsKIAlzdHJ1Y3QgYmxrX3BsdWcgcGx1ZzsKIApkaWZmIC0tZ2l0IGEvZnMvZjJmcy9k YXRhLmMgYi9mcy9mMmZzL2RhdGEuYwppbmRleCA2ZmJiNmQ3NTMxOGEuLjU5MTNkZTNmNjYxZCAx MDA2NDQKLS0tIGEvZnMvZjJmcy9kYXRhLmMKKysrIGIvZnMvZjJmcy9kYXRhLmMKQEAgLTM2OSw2 ICszNjksNyBAQCBpbnQgZjJmc19zdWJtaXRfcGFnZV9iaW8oc3RydWN0IGYyZnNfaW9faW5mbyAq ZmlvKQogCXN0cnVjdCBwYWdlICpwYWdlID0gZmlvLT5lbmNyeXB0ZWRfcGFnZSA/CiAJCQlmaW8t PmVuY3J5cHRlZF9wYWdlIDogZmlvLT5wYWdlOwogCisJdmVyaWZ5X2Jsb2NrX2FkZHIoZmlvLCBm aW8tPm5ld19ibGthZGRyKTsKIAl0cmFjZV9mMmZzX3N1Ym1pdF9wYWdlX2JpbyhwYWdlLCBmaW8p OwogCWYyZnNfdHJhY2VfaW9zKGZpbywgMCk7CiAKQEAgLTQxMyw4ICs0MTQsOCBAQCBpbnQgZjJm c19zdWJtaXRfcGFnZV93cml0ZShzdHJ1Y3QgZjJmc19pb19pbmZvICpmaW8pCiAJfQogCiAJaWYg KGZpby0+b2xkX2Jsa2FkZHIgIT0gTkVXX0FERFIpCi0JCXZlcmlmeV9ibG9ja19hZGRyKHNiaSwg ZmlvLT5vbGRfYmxrYWRkcik7Ci0JdmVyaWZ5X2Jsb2NrX2FkZHIoc2JpLCBmaW8tPm5ld19ibGth ZGRyKTsKKwkJdmVyaWZ5X2Jsb2NrX2FkZHIoZmlvLCBmaW8tPm9sZF9ibGthZGRyKTsKKwl2ZXJp ZnlfYmxvY2tfYWRkcihmaW8sIGZpby0+bmV3X2Jsa2FkZHIpOwogCiAJYmlvX3BhZ2UgPSBmaW8t PmVuY3J5cHRlZF9wYWdlID8gZmlvLT5lbmNyeXB0ZWRfcGFnZSA6IGZpby0+cGFnZTsKIApkaWZm IC0tZ2l0IGEvZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2YyZnMuaAppbmRleCA1NGY4NTIwYWQ3 YTIuLmFhN2IwMzNhZjFiMCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9mMmZzLmgKKysrIGIvZnMvZjJm cy9mMmZzLmgKQEAgLTkxMCw2ICs5MTAsNyBAQCBzdHJ1Y3QgZjJmc19pb19pbmZvIHsKIAlib29s IHN1Ym1pdHRlZDsJCS8qIGluZGljYXRlIElPIHN1Ym1pc3Npb24gKi8KIAlpbnQgbmVlZF9sb2Nr OwkJLyogaW5kaWNhdGUgd2UgbmVlZCB0byBsb2NrIGNwX3J3c2VtICovCiAJYm9vbCBpbl9saXN0 OwkJLyogaW5kaWNhdGUgZmlvIGlzIGluIGlvX2xpc3QgKi8KKwlib29sIGlzX21ldGE7CQkvKiBp bmRpY2F0ZSBib3Jyb3cgbWV0YSBpbm9kZSBtYXBwaW5nIG9yIG5vdCAqLwogCWVudW0gaW9zdGF0 X3R5cGUgaW9fdHlwZTsJLyogaW8gdHlwZSAqLwogfTsKIApkaWZmIC0tZ2l0IGEvZnMvZjJmcy9z ZWdtZW50LmggYi9mcy9mMmZzL3NlZ21lbnQuaAppbmRleCA0ZGZiNTA4MDA5OGYuLjRiNjM1ZThj OTFiMCAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zZWdtZW50LmgKKysrIGIvZnMvZjJmcy9zZWdtZW50 LmgKQEAgLTUzLDEzICs1MywxOSBAQAogCSAoKHNlY25vKSA9PSBDVVJTRUdfSShzYmksIENVUlNF R19DT0xEX05PREUpLT5zZWdubyAvCQlcCiAJICAoc2JpKS0+c2Vnc19wZXJfc2VjKSkJXAogCi0j ZGVmaW5lIE1BSU5fQkxLQUREUihzYmkpCShTTV9JKHNiaSktPm1haW5fYmxrYWRkcikKLSNkZWZp bmUgU0VHMF9CTEtBRERSKHNiaSkJKFNNX0koc2JpKS0+c2VnMF9ibGthZGRyKQorI2RlZmluZSBN QUlOX0JMS0FERFIoc2JpKQkJCQkJCVwKKwkoU01fSShzYmkpID8gU01fSShzYmkpLT5tYWluX2Js a2FkZHIgOiAJCQkJXAorCQlsZTMyX3RvX2NwdShGMkZTX1JBV19TVVBFUihzYmkpLT5tYWluX2Js a2FkZHIpKQorI2RlZmluZSBTRUcwX0JMS0FERFIoc2JpKQkJCQkJCVwKKwkoU01fSShzYmkpID8g U01fSShzYmkpLT5zZWcwX2Jsa2FkZHIgOiAJCQkJXAorCQlsZTMyX3RvX2NwdShGMkZTX1JBV19T VVBFUihzYmkpLT5zZWdtZW50MF9ibGthZGRyKSkKIAogI2RlZmluZSBNQUlOX1NFR1Moc2JpKQko U01fSShzYmkpLT5tYWluX3NlZ21lbnRzKQogI2RlZmluZSBNQUlOX1NFQ1Moc2JpKQkoKHNiaSkt PnRvdGFsX3NlY3Rpb25zKQogCi0jZGVmaW5lIFRPVEFMX1NFR1Moc2JpKQkoU01fSShzYmkpLT5z ZWdtZW50X2NvdW50KQorI2RlZmluZSBUT1RBTF9TRUdTKHNiaSkJCQkJCQkJXAorCShTTV9JKHNi aSkgPyBTTV9JKHNiaSktPnNlZ21lbnRfY291bnQgOiAJCQkJXAorCQlsZTMyX3RvX2NwdShGMkZT X1JBV19TVVBFUihzYmkpLT5zZWdtZW50X2NvdW50KSkKICNkZWZpbmUgVE9UQUxfQkxLUyhzYmkp CShUT1RBTF9TRUdTKHNiaSkgPDwgKHNiaSktPmxvZ19ibG9ja3NfcGVyX3NlZykKIAogI2RlZmlu ZSBNQVhfQkxLQUREUihzYmkpCShTRUcwX0JMS0FERFIoc2JpKSArIFRPVEFMX0JMS1Moc2JpKSkK QEAgLTYxOSwxMCArNjI1LDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19zZWdfcmFuZ2Uo c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCB1bnNpZ25lZCBpbnQgc2Vnbm8pCiAJZjJmc19idWdf b24oc2JpLCBzZWdubyA+IFRPVEFMX1NFR1Moc2JpKSAtIDEpOwogfQogCi1zdGF0aWMgaW5saW5l IHZvaWQgdmVyaWZ5X2Jsb2NrX2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBibG9ja190 IGJsa19hZGRyKQorc3RhdGljIGlubGluZSB2b2lkIHZlcmlmeV9ibG9ja19hZGRyKHN0cnVjdCBm MmZzX2lvX2luZm8gKmZpbywgYmxvY2tfdCBibGtfYWRkcikKIHsKLQlCVUdfT04oYmxrX2FkZHIg PCBTRUcwX0JMS0FERFIoc2JpKQotCQkJfHwgYmxrX2FkZHIgPj0gTUFYX0JMS0FERFIoc2JpKSk7 CisJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gZmlvLT5zYmk7CisKKwlpZiAoUEFHRV9UWVBF X09GX0JJTyhmaW8tPnR5cGUpID09IE1FVEEgJiYKKwkJCQkoIWlzX3JlYWRfaW8oZmlvLT5vcCkg fHwgZmlvLT5pc19tZXRhKSkKKwkJQlVHX09OKGJsa19hZGRyIDwgU0VHMF9CTEtBRERSKHNiaSkg fHwKKwkJCQlibGtfYWRkciA+PSBNQUlOX0JMS0FERFIoc2JpKSk7CisJZWxzZQorCQlCVUdfT04o YmxrX2FkZHIgPCBNQUlOX0JMS0FERFIoc2JpKSB8fAorCQkJCWJsa19hZGRyID49IE1BWF9CTEtB RERSKHNiaSkpOwogfQogCiAvKgotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVy ICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRo aW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5p dGVkIEtpbmdkb20KCgpGcm9tIDAwNzQ1YWFhZmYwODFiYjBmMTEzZmYyZjE0NTYzYmE5MjRmNTlh MWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphZWdldWsgS2ltIDxqYWVnZXVrQGtl cm5lbC5vcmc+CkRhdGU6IFR1ZSwgMjQgQXByIDIwMTggMTU6NDQ6MTYgLTA2MDAKU3ViamVjdDog W1BBVENIIDMzLzQ2XSBmMmZzOiBzYW5pdHkgY2hlY2sgb24gc2l0IGVudHJ5Cgpjb21taXQgYjJj YTM3NGYzM2JkMzNmZDgyMmViODcxODc2ZTQ4ODhjZjc5ZGM5NyB1cHN0cmVhbS4KCnN5emJvdCBo aXQgdGhlIGZvbGxvd2luZyBjcmFzaCBvbiB1cHN0cmVhbSBjb21taXQKODdlZjEyMDI3YjliMWRk MGUwYjEyY2YzMTFmYmNiMTlmOWQ5MjUzOSAoV2VkIEFwciAxOCAxOTo0ODoxNyAyMDE4ICswMDAw KQpNZXJnZSB0YWcgJ2NlcGgtZm9yLTQuMTctcmMyJyBvZiBnaXQ6Ly9naXRodWIuY29tL2NlcGgv Y2VwaC1jbGllbnQKc3l6Ym90IGRhc2hib2FyZCBsaW5rOiBodHRwczovL3N5emthbGxlci5hcHBz cG90LmNvbS9idWc/ZXh0aWQ9ODM2OTlhZGViMmQxMzU3OWMzMWUKCkMgcmVwcm9kdWNlcjogaHR0 cHM6Ly9zeXprYWxsZXIuYXBwc3BvdC5jb20veC9yZXByby5jP2lkPTU4MDUyMDgxODE0MDc3NDQK c3l6a2FsbGVyIHJlcHJvZHVjZXI6IGh0dHBzOi8vc3l6a2FsbGVyLmFwcHNwb3QuY29tL3gvcmVw cm8uc3l6P2lkPTYwMDUwNzMzNDM2NzY0MTYKUmF3IGNvbnNvbGUgb3V0cHV0OiBodHRwczovL3N5 emthbGxlci5hcHBzcG90LmNvbS94L2xvZy50eHQ/aWQ9NjU1NTA0NzczMTEzNDQ2NApLZXJuZWwg Y29uZmlnOiBodHRwczovL3N5emthbGxlci5hcHBzcG90LmNvbS94Ly5jb25maWc/aWQ9MTgwODgw MDIxMzEyMDEzMDExOApjb21waWxlcjogZ2NjIChHQ0MpIDguMC4xIDIwMTgwNDEzIChleHBlcmlt ZW50YWwpCgpJTVBPUlRBTlQ6IGlmIHlvdSBmaXggdGhlIGJ1ZywgcGxlYXNlIGFkZCB0aGUgZm9s bG93aW5nIHRhZyB0byB0aGUgY29tbWl0OgpSZXBvcnRlZC1ieTogc3l6Ym90KzgzNjk5YWRlYjJk MTM1NzljMzFlQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KSXQgd2lsbCBoZWxwIHN5emJvdCB1 bmRlcnN0YW5kIHdoZW4gdGhlIGJ1ZyBpcyBmaXhlZC4gU2VlIGZvb3RlciBmb3IgZGV0YWlscy4K SWYgeW91IGZvcndhcmQgdGhlIHJlcG9ydCwgcGxlYXNlIGtlZXAgdGhpcyBwYXJ0IGFuZCB0aGUg Zm9vdGVyLgoKRjJGUy1mcyAobG9vcDApOiBNYWdpYyBNaXNtYXRjaCwgdmFsaWQoMHhmMmY1MjAx MCkgLSByZWFkKDB4MCkKRjJGUy1mcyAobG9vcDApOiBDYW4ndCBmaW5kIHZhbGlkIEYyRlMgZmls ZXN5c3RlbSBpbiAxdGggc3VwZXJibG9jawpGMkZTLWZzIChsb29wMCk6IGludmFsaWQgY3JjIHZh bHVlCkJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgcGFnaW5nIHJlcXVlc3QgYXQgZmZmZmVk MDA2YjJhNTBjMApQR0QgMjFmZmVlMDY3IFA0RCAyMWZmZWUwNjcgUFVEIDIxZmJlYjA2NyBQTUQg MApPb3BzOiAwMDAwIFsjMV0gU01QIEtBU0FOCkR1bXBpbmcgZnRyYWNlIGJ1ZmZlcjoKICAgKGZ0 cmFjZSBidWZmZXIgZW1wdHkpCk1vZHVsZXMgbGlua2VkIGluOgpDUFU6IDAgUElEOiA0NTE0IENv bW06IHN5emthbGxlcjk4OTQ4MCBOb3QgdGFpbnRlZCA0LjE3LjAtcmMxKyAjOApIYXJkd2FyZSBu YW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwg QklPUyBHb29nbGUgMDEvMDEvMjAxMQpSSVA6IDAwMTA6YnVpbGRfc2l0X2VudHJpZXMgZnMvZjJm cy9zZWdtZW50LmM6MzY1MyBbaW5saW5lXQpSSVA6IDAwMTA6YnVpbGRfc2VnbWVudF9tYW5hZ2Vy KzB4N2VmNy8weGJmNzAgZnMvZjJmcy9zZWdtZW50LmM6Mzg1MgpSU1A6IDAwMTg6ZmZmZjg4MDFi MTAyZTViMCBFRkxBR1M6IDAwMDEwYTA2ClJBWDogMWZmZmYxMDA2YjJhNTBjMCBSQlg6IDAwMDAw MDAwMDAwMDAwMDQgUkNYOiAwMDAwMDAwMDAwMDAwMDAxClJEWDogMDAwMDAwMDAwMDAwMDAwMCBS U0k6IDAwMDAwMDAwMDAwMDAwMDEgUkRJOiBmZmZmODgwMWFjNzQyNDNlClJCUDogZmZmZjg4MDFi MTAyZjQxMCBSMDg6IGZmZmY4ODAxYWNiZDQ2YzAgUjA5OiBmZmZmZmJmZmYxNGQ5YWY4ClIxMDog ZmZmZmZiZmZmMTRkOWFmOCBSMTE6IGZmZmY4ODAxYWNiZDQ2YzAgUjEyOiBmZmZmODgwMWFjNzQy YTgwClIxMzogZmZmZjg4MDFkOTUxOTEwMCBSMTQ6IGRmZmZmYzAwMDAwMDAwMDAgUjE1OiBmZmZm ODgwMzU5NTI4NjAwCkZTOiAgMDAwMDAwMDAwMWUwNDg4MCgwMDAwKSBHUzpmZmZmODgwMWRhZTAw MDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAw MDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpDUjI6IGZmZmZlZDAwNmIyYTUwYzAgQ1IzOiAwMDAw MDAwMWFjNmFjMDAwIENSNDogMDAwMDAwMDAwMDE0MDZmMApEUjA6IDAwMDAwMDAwMDAwMDAwMDAg RFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAw MDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApDYWxs IFRyYWNlOgogZjJmc19maWxsX3N1cGVyKzB4NDA5NS8weDdiZjAgZnMvZjJmcy9zdXBlci5jOjI4 MDMKIG1vdW50X2JkZXYrMHgzMGMvMHgzZTAgZnMvc3VwZXIuYzoxMTY1CiBmMmZzX21vdW50KzB4 MzQvMHg0MCBmcy9mMmZzL3N1cGVyLmM6MzAyMAogbW91bnRfZnMrMHhhZS8weDMyOCBmcy9zdXBl ci5jOjEyNjgKIHZmc19rZXJuX21vdW50LnBhcnQuMzQrMHhkNC8weDRkMCBmcy9uYW1lc3BhY2Uu YzoxMDM3CiB2ZnNfa2Vybl9tb3VudCBmcy9uYW1lc3BhY2UuYzoxMDI3IFtpbmxpbmVdCiBkb19u ZXdfbW91bnQgZnMvbmFtZXNwYWNlLmM6MjUxNyBbaW5saW5lXQogZG9fbW91bnQrMHg1NjQvMHgz MDcwIGZzL25hbWVzcGFjZS5jOjI4NDcKIGtzeXNfbW91bnQrMHgxMmQvMHgxNDAgZnMvbmFtZXNw YWNlLmM6MzA2MwogX19kb19zeXNfbW91bnQgZnMvbmFtZXNwYWNlLmM6MzA3NyBbaW5saW5lXQog X19zZV9zeXNfbW91bnQgZnMvbmFtZXNwYWNlLmM6MzA3NCBbaW5saW5lXQogX194NjRfc3lzX21v dW50KzB4YmUvMHgxNTAgZnMvbmFtZXNwYWNlLmM6MzA3NAogZG9fc3lzY2FsbF82NCsweDFiMS8w eDgwMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyODcKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJf aHdmcmFtZSsweDQ5LzB4YmUKUklQOiAwMDMzOjB4NDQzZDZhClJTUDogMDAyYjowMDAwN2ZmZDMx MjgxM2M4IEVGTEFHUzogMDAwMDAyOTcgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwYTUKUkFYOiBm ZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAyMDAwMGMwMCBSQ1g6IDAwMDAwMDAwMDA0NDNk NmEKUkRYOiAwMDAwMDAwMDIwMDAwMDAwIFJTSTogMDAwMDAwMDAyMDAwMDEwMCBSREk6IDAwMDA3 ZmZkMzEyODEzZDAKUkJQOiAwMDAwMDAwMDAwMDAwMDAzIFIwODogMDAwMDAwMDAyMDAxNmEwMCBS MDk6IDAwMDAwMDAwMDAwMDAwMGEKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAw MDAwMDI5NyBSMTI6IDAwMDAwMDAwMDAwMDAwMDQKUjEzOiAwMDAwMDAwMDAwNDAyYzYwIFIxNDog MDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKUklQOiBidWlsZF9zaXRfZW50 cmllcyBmcy9mMmZzL3NlZ21lbnQuYzozNjUzIFtpbmxpbmVdIFJTUDogZmZmZjg4MDFiMTAyZTVi MApSSVA6IGJ1aWxkX3NlZ21lbnRfbWFuYWdlcisweDdlZjcvMHhiZjcwIGZzL2YyZnMvc2VnbWVu dC5jOjM4NTIgUlNQOiBmZmZmODgwMWIxMDJlNWIwCkNSMjogZmZmZmVkMDA2YjJhNTBjMAotLS1b IGVuZCB0cmFjZSBhMjAzNDk4OWUxOTZmZjE3IF0tLS0KClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6 IHN5emJvdCs4MzY5OWFkZWIyZDEzNTc5YzMxZUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClJl dmlld2VkLWJ5OiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IEph ZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGlu Z3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvc2VnbWVudC5j IHwgOSArKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9mcy9mMmZzL3NlZ21lbnQuYyBiL2ZzL2YyZnMvc2VnbWVudC5jCmluZGV4IDNjN2JiYmFl MGFmYS4uMTEwNGE2YzgwMjUxIDEwMDY0NAotLS0gYS9mcy9mMmZzL3NlZ21lbnQuYworKysgYi9m cy9mMmZzL3NlZ21lbnQuYwpAQCAtMzMwNCw2ICszMzA0LDE1IEBAIHN0YXRpYyBpbnQgYnVpbGRf c2l0X2VudHJpZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCQl1bnNpZ25lZCBpbnQgb2xk X3ZhbGlkX2Jsb2NrczsKIAogCQlzdGFydCA9IGxlMzJfdG9fY3B1KHNlZ25vX2luX2pvdXJuYWwo am91cm5hbCwgaSkpOworCQlpZiAoc3RhcnQgPj0gTUFJTl9TRUdTKHNiaSkpIHsKKwkJCWYyZnNf bXNnKHNiaS0+c2IsIEtFUk5fRVJSLAorCQkJCQkiV3Jvbmcgam91cm5hbCBlbnRyeSBvbiBzZWdu byAldSIsCisJCQkJCXN0YXJ0KTsKKwkJCXNldF9zYmlfZmxhZyhzYmksIFNCSV9ORUVEX0ZTQ0sp OworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWJyZWFrOworCQl9CisKIAkJc2UgPSAmc2l0X2ktPnNl bnRyaWVzW3N0YXJ0XTsKIAkJc2l0ID0gc2l0X2luX2pvdXJuYWwoam91cm5hbCwgaSk7CiAKLS0g CkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAg ICBDb2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAg ICAgIERhbGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSBlYjE3 NzlkOWE1NzQ4MzE1ODdkMjQ1ZjMyZDI0NjQ2ZDJiOWFjYWI0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpEYXRlOiBGcmksIDI3 IEFwciAyMDE4IDE5OjAzOjIyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzNC80Nl0gZjJmczogZW5o YW5jZSBzYW5pdHlfY2hlY2tfcmF3X3N1cGVyKCkgdG8gYXZvaWQKIHBvdGVudGlhbCBvdmVyZmxv dwoKY29tbWl0IDBjZmU3NWM1YjAxMTk5NDY1MWE0Y2E2ZDc0ZjIwYWE5OTdiZmM2OWEgdXBzdHJl YW0uCgpJbiBvcmRlciB0byBhdm9pZCB0aGUgYmVsb3cgb3ZlcmZsb3cgaXNzdWUsIHdlIHNob3Vs ZCBoYXZlIGNoZWNrZWQgdGhlCmJvdW5kYXJpZXMgaW4gc3VwZXJibG9jayBiZWZvcmUgcmVhY2hp bmcgb3V0IHRvIGFsbG9jYXRpb24uIEFzIExpbnVzIHN1Z2dlc3RlZCwKdGhlIHJpZ2h0IHBsYWNl IHNob3VsZCBiZSBzYW5pdHlfY2hlY2tfcmF3X3N1cGVyKCkuCgpEciBTaWx2aW8gQ2VzYXJlIG9m IEluZm9TZWN0IHJlcG9ydGVkOgoKVGhlcmUgYXJlIGludGVnZXIgb3ZlcmZsb3dzIHdpdGggdXNp bmcgdGhlIGNwX3BheWxvYWQgc3VwZXJibG9jayBmaWVsZCBpbiB0aGUKZjJmcyBmaWxlc3lzdGVt IHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gbWVtb3J5IGNvcnJ1cHRpb24uCgppbmNsdWRlL2xpbnV4 L2YyZnNfZnMuaAoKc3RydWN0IGYyZnNfc3VwZXJfYmxvY2sgewouLi4KICAgICAgICBfX2xlMzIg Y3BfcGF5bG9hZDsKCmZzL2YyZnMvZjJmcy5oCgp0eXBlZGVmIHUzMiBibG9ja190OyAgICAvKgog ICAgICAgICAgICAgICAgICAgICAgICAgKiBzaG91bGQgbm90IGNoYW5nZSB1MzIsIHNpbmNlIGl0 IGlzIHRoZSBvbi1kaXNrIGJsb2NrCiAgICAgICAgICAgICAgICAgICAgICAgICAqIGFkZHJlc3Mg Zm9ybWF0LCBfX2xlMzIuCiAgICAgICAgICAgICAgICAgICAgICAgICAqLwouLi4KCnN0YXRpYyBp bmxpbmUgYmxvY2tfdCBfX2NwX3BheWxvYWQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQp7CiAg ICAgICAgcmV0dXJuIGxlMzJfdG9fY3B1KEYyRlNfUkFXX1NVUEVSKHNiaSktPmNwX3BheWxvYWQp Owp9Cgpmcy9mMmZzL2NoZWNrcG9pbnQuYwoKICAgICAgICBibG9ja190IHN0YXJ0X2Jsaywgb3Jw aGFuX2Jsb2NrcywgaSwgajsKLi4uCiAgICAgICAgc3RhcnRfYmxrID0gX19zdGFydF9jcF9hZGRy KHNiaSkgKyAxICsgX19jcF9wYXlsb2FkKHNiaSk7CiAgICAgICAgb3JwaGFuX2Jsb2NrcyA9IF9f c3RhcnRfc3VtX2FkZHIoc2JpKSAtIDEgLSBfX2NwX3BheWxvYWQoc2JpKTsKCisrKyBpbnRlZ2Vy IG92ZXJmbG93cwoKLi4uCiAgICAgICAgdW5zaWduZWQgaW50IGNwX2Jsa3MgPSAxICsgX19jcF9w YXlsb2FkKHNiaSk7Ci4uLgogICAgICAgIHNiaS0+Y2twdCA9IGt6YWxsb2MoY3BfYmxrcyAqIGJs a19zaXplLCBHRlBfS0VSTkVMKTsKCisrKyBpbnRlZ2VyIG92ZXJmbG93IGxlYWRpbmcgdG8gaW5j b3JyZWN0IGhlYXAgYWxsb2NhdGlvbi4KCiAgICAgICAgaW50IGNwX3BheWxvYWRfYmxrcyA9IF9f Y3BfcGF5bG9hZChzYmkpOwouLi4KICAgICAgICBja3B0LT5jcF9wYWNrX3N0YXJ0X3N1bSA9IGNw dV90b19sZTMyKDEgKyBjcF9wYXlsb2FkX2Jsa3MgKwogICAgICAgICAgICAgICAgICAgICAgICBv cnBoYW5fYmxvY2tzKTsKCisrKyBzaWduIGJ1ZyBhbmQgaW50ZWdlciBvdmVyZmxvdwoKLi4uCiAg ICAgICAgZm9yIChpID0gMTsgaSA8IDEgKyBjcF9wYXlsb2FkX2Jsa3M7IGkrKykKCisrKyBpbnRl Z2VyIG92ZXJmbG93CgouLi4KCiAgICAgIHNiaS0+bWF4X29ycGhhbnMgPSAoc2JpLT5ibG9ja3Nf cGVyX3NlZyAtIEYyRlNfQ1BfUEFDS1MgLQogICAgICAgICAgICAgICAgICAgICAgICBOUl9DVVJT RUdfVFlQRSAtIF9fY3BfcGF5bG9hZChzYmkpKSAqCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRjJGU19PUlBIQU5TX1BFUl9CTE9DSzsKCisrKyBpbnRlZ2VyIG92ZXJmbG93CgpSZXBv cnRlZC1ieTogR3JlZyBLSCA8Z3JlZ0Brcm9haC5jb20+ClJlcG9ydGVkLWJ5OiBTaWx2aW8gQ2Vz YXJlIDxzaWx2aW8uY2VzYXJlQGdtYWlsLmNvbT4KU3VnZ2VzdGVkLWJ5OiBMaW51cyBUb3J2YWxk cyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+ClJldmlld2VkLWJ5OiBDaGFvIFl1IDx5 dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtl cm5lbC5vcmc+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC4xNDogTm8gaG90IGZpbGUgZXh0ZW5zaW9u IHN1cHBvcnRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29k ZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvc3VwZXIuYyB8IDcxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDY0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9z dXBlci5jIGIvZnMvZjJmcy9zdXBlci5jCmluZGV4IDdjZGE2ODUyOTZiMi4uYzNlMTA5MGU3YzBh IDEwMDY0NAotLS0gYS9mcy9mMmZzL3N1cGVyLmMKKysrIGIvZnMvZjJmcy9zdXBlci5jCkBAIC0x ODA3LDYgKzE4MDcsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2FuaXR5X2NoZWNrX2FyZWFfYm91 bmRhcnkoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogc3RhdGljIGludCBzYW5pdHlfY2hlY2tf cmF3X3N1cGVyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKIAkJCQlzdHJ1Y3QgYnVmZmVyX2hl YWQgKmJoKQogeworCWJsb2NrX3Qgc2VnbWVudF9jb3VudCwgc2Vnc19wZXJfc2VjLCBzZWNzX3Bl cl96b25lOworCWJsb2NrX3QgdG90YWxfc2VjdGlvbnMsIGJsb2Nrc19wZXJfc2VnOwogCXN0cnVj dCBmMmZzX3N1cGVyX2Jsb2NrICpyYXdfc3VwZXIgPSAoc3RydWN0IGYyZnNfc3VwZXJfYmxvY2sg KikKIAkJCQkJKGJoLT5iX2RhdGEgKyBGMkZTX1NVUEVSX09GRlNFVCk7CiAJc3RydWN0IHN1cGVy X2Jsb2NrICpzYiA9IHNiaS0+c2I7CkBAIC0xODYzLDYgKzE4NjUsNjggQEAgc3RhdGljIGludCBz YW5pdHlfY2hlY2tfcmF3X3N1cGVyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKIAkJcmV0dXJu IDE7CiAJfQogCisJc2VnbWVudF9jb3VudCA9IGxlMzJfdG9fY3B1KHJhd19zdXBlci0+c2VnbWVu dF9jb3VudCk7CisJc2Vnc19wZXJfc2VjID0gbGUzMl90b19jcHUocmF3X3N1cGVyLT5zZWdzX3Bl cl9zZWMpOworCXNlY3NfcGVyX3pvbmUgPSBsZTMyX3RvX2NwdShyYXdfc3VwZXItPnNlY3NfcGVy X3pvbmUpOworCXRvdGFsX3NlY3Rpb25zID0gbGUzMl90b19jcHUocmF3X3N1cGVyLT5zZWN0aW9u X2NvdW50KTsKKworCS8qIGJsb2Nrc19wZXJfc2VnIHNob3VsZCBiZSA1MTIsIGdpdmVuIHRoZSBh Ym92ZSBjaGVjayAqLworCWJsb2Nrc19wZXJfc2VnID0gMSA8PCBsZTMyX3RvX2NwdShyYXdfc3Vw ZXItPmxvZ19ibG9ja3NfcGVyX3NlZyk7CisKKwlpZiAoc2VnbWVudF9jb3VudCA+IEYyRlNfTUFY X1NFR01FTlQgfHwKKwkJCQlzZWdtZW50X2NvdW50IDwgRjJGU19NSU5fU0VHTUVOVFMpIHsKKwkJ ZjJmc19tc2coc2IsIEtFUk5fSU5GTywKKwkJCSJJbnZhbGlkIHNlZ21lbnQgY291bnQgKCV1KSIs CisJCQlzZWdtZW50X2NvdW50KTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKHRvdGFsX3NlY3Rp b25zID4gc2VnbWVudF9jb3VudCB8fAorCQkJdG90YWxfc2VjdGlvbnMgPCBGMkZTX01JTl9TRUdN RU5UUyB8fAorCQkJc2Vnc19wZXJfc2VjID4gc2VnbWVudF9jb3VudCB8fCAhc2Vnc19wZXJfc2Vj KSB7CisJCWYyZnNfbXNnKHNiLCBLRVJOX0lORk8sCisJCQkiSW52YWxpZCBzZWdtZW50L3NlY3Rp b24gY291bnQgKCV1LCAldSB4ICV1KSIsCisJCQlzZWdtZW50X2NvdW50LCB0b3RhbF9zZWN0aW9u cywgc2Vnc19wZXJfc2VjKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKChzZWdtZW50X2NvdW50 IC8gc2Vnc19wZXJfc2VjKSA8IHRvdGFsX3NlY3Rpb25zKSB7CisJCWYyZnNfbXNnKHNiLCBLRVJO X0lORk8sCisJCQkiU21hbGwgc2VnbWVudF9jb3VudCAoJXUgPCAldSAqICV1KSIsCisJCQlzZWdt ZW50X2NvdW50LCBzZWdzX3Blcl9zZWMsIHRvdGFsX3NlY3Rpb25zKTsKKwkJcmV0dXJuIDE7CisJ fQorCisJaWYgKHNlZ21lbnRfY291bnQgPiAobGUzMl90b19jcHUocmF3X3N1cGVyLT5ibG9ja19j b3VudCkgPj4gOSkpIHsKKwkJZjJmc19tc2coc2IsIEtFUk5fSU5GTywKKwkJCSJXcm9uZyBzZWdt ZW50X2NvdW50IC8gYmxvY2tfY291bnQgKCV1ID4gJXUpIiwKKwkJCXNlZ21lbnRfY291bnQsIGxl MzJfdG9fY3B1KHJhd19zdXBlci0+YmxvY2tfY291bnQpKTsKKwkJcmV0dXJuIDE7CisJfQorCisJ aWYgKHNlY3NfcGVyX3pvbmUgPiB0b3RhbF9zZWN0aW9ucykgeworCQlmMmZzX21zZyhzYiwgS0VS Tl9JTkZPLAorCQkJIldyb25nIHNlY3NfcGVyX3pvbmUgKCV1ID4gJXUpIiwKKwkJCXNlY3NfcGVy X3pvbmUsIHRvdGFsX3NlY3Rpb25zKTsKKwkJcmV0dXJuIDE7CisJfQorCWlmIChsZTMyX3RvX2Nw dShyYXdfc3VwZXItPmV4dGVuc2lvbl9jb3VudCkgPiBGMkZTX01BWF9FWFRFTlNJT04pIHsKKwkJ ZjJmc19tc2coc2IsIEtFUk5fSU5GTywKKwkJCSJDb3JydXB0ZWQgZXh0ZW5zaW9uIGNvdW50ICgl dSA+ICV1KSIsCisJCQlsZTMyX3RvX2NwdShyYXdfc3VwZXItPmV4dGVuc2lvbl9jb3VudCksCisJ CQlGMkZTX01BWF9FWFRFTlNJT04pOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAobGUzMl90b19j cHUocmF3X3N1cGVyLT5jcF9wYXlsb2FkKSA+CisJCQkJKGJsb2Nrc19wZXJfc2VnIC0gRjJGU19D UF9QQUNLUykpIHsKKwkJZjJmc19tc2coc2IsIEtFUk5fSU5GTywKKwkJCSJJbnNhbmUgY3BfcGF5 bG9hZCAoJXUgPiAldSkiLAorCQkJbGUzMl90b19jcHUocmF3X3N1cGVyLT5jcF9wYXlsb2FkKSwK KwkJCWJsb2Nrc19wZXJfc2VnIC0gRjJGU19DUF9QQUNLUyk7CisJCXJldHVybiAxOworCX0KKwog CS8qIGNoZWNrIHJlc2VydmVkIGlubyBpbmZvICovCiAJaWYgKGxlMzJfdG9fY3B1KHJhd19zdXBl ci0+bm9kZV9pbm8pICE9IDEgfHwKIAkJbGUzMl90b19jcHUocmF3X3N1cGVyLT5tZXRhX2lubykg IT0gMiB8fApAQCAtMTg3NSwxMyArMTkzOSw2IEBAIHN0YXRpYyBpbnQgc2FuaXR5X2NoZWNrX3Jh d19zdXBlcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCiAJCXJldHVybiAxOwogCX0KIAotCWlm IChsZTMyX3RvX2NwdShyYXdfc3VwZXItPnNlZ21lbnRfY291bnQpID4gRjJGU19NQVhfU0VHTUVO VCkgewotCQlmMmZzX21zZyhzYiwgS0VSTl9JTkZPLAotCQkJIkludmFsaWQgc2VnbWVudCBjb3Vu dCAoJXUpIiwKLQkJCWxlMzJfdG9fY3B1KHJhd19zdXBlci0+c2VnbWVudF9jb3VudCkpOwotCQly ZXR1cm4gMTsKLQl9Ci0KIAkvKiBjaGVjayBDUC9TSVQvTkFUL1NTQS9NQUlOX0FSRUEgYXJlYSBi b3VuZGFyeSAqLwogCWlmIChzYW5pdHlfY2hlY2tfYXJlYV9ib3VuZGFyeShzYmksIGJoKSkKIAkJ cmV0dXJuIDE7Ci0tIApCZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAg ICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28udWsv ICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0cmVldAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2Rv bQoKCkZyb20gMTE3M2UzZDVhNDQ3NmYzMGMwZjNlOWU2NjUwNDQwZDY1YWExZmM1MCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpEYXRl OiBXZWQsIDIzIE1heSAyMDE4IDIyOjI1OjA4ICswODAwClN1YmplY3Q6IFtQQVRDSCAzNS80Nl0g ZjJmczogY2xlYW4gdXAgd2l0aCBpc192YWxpZF9ibGthZGRyKCkKCmNvbW1pdCA3YjUyNWRkMDEz NjVjNjc2NDAxOGUzNzRkMzkxYzkyNDY2YmUxYjdhIHVwc3RyZWFtLgoKLSByZW5hbWUgaXNfdmFs aWRfYmxrYWRkcigpIHRvIGlzX3ZhbGlkX21ldGFfYmxrYWRkcigpIGZvciByZWFkYWJpbGl0eS4K LSBpbnRyb2R1Y2UgaXNfdmFsaWRfYmxrYWRkcigpIGZvciBjbGVhbnVwLgoKTm8gbG9naWMgY2hh bmdlIGluIHRoaXMgcGF0Y2guCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdl aS5jb20+ClNpZ25lZC1vZmYtYnk6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+ClNp Z25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVr PgotLS0KIGZzL2YyZnMvY2hlY2twb2ludC5jIHwgIDQgKystLQogZnMvZjJmcy9kYXRhLmMgICAg ICAgfCAxOCArKysrKy0tLS0tLS0tLS0tLS0KIGZzL2YyZnMvZjJmcy5oICAgICAgIHwgIDkgKysr KysrKystCiBmcy9mMmZzL2ZpbGUuYyAgICAgICB8ICAyICstCiBmcy9mMmZzL2lub2RlLmMgICAg ICB8ICAyICstCiBmcy9mMmZzL25vZGUuYyAgICAgICB8ICA1ICsrLS0tCiBmcy9mMmZzL3JlY292 ZXJ5LmMgICB8ICA2ICsrKy0tLQogZnMvZjJmcy9zZWdtZW50LmMgICAgfCAgNCArKy0tCiBmcy9m MmZzL3NlZ21lbnQuaCAgICB8ICAyICstCiA5IGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMo KyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvY2hlY2twb2ludC5jIGIv ZnMvZjJmcy9jaGVja3BvaW50LmMKaW5kZXggMWJkNGNkOGM3OWM2Li4yYjk1MTA0NjY1N2UgMTAw NjQ0Ci0tLSBhL2ZzL2YyZnMvY2hlY2twb2ludC5jCisrKyBiL2ZzL2YyZnMvY2hlY2twb2ludC5j CkBAIC0xMTgsNyArMTE4LDcgQEAgc3RydWN0IHBhZ2UgKmdldF90bXBfcGFnZShzdHJ1Y3QgZjJm c19zYl9pbmZvICpzYmksIHBnb2ZmX3QgaW5kZXgpCiAJcmV0dXJuIF9fZ2V0X21ldGFfcGFnZShz YmksIGluZGV4LCBmYWxzZSk7CiB9CiAKLWJvb2wgaXNfdmFsaWRfYmxrYWRkcihzdHJ1Y3QgZjJm c19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRkciwgaW50IHR5cGUpCitib29sIGlzX3ZhbGlk X21ldGFfYmxrYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRkciwg aW50IHR5cGUpCiB7CiAJc3dpdGNoICh0eXBlKSB7CiAJY2FzZSBNRVRBX05BVDoKQEAgLTE3NCw3 ICsxNzQsNyBAQCBpbnQgcmFfbWV0YV9wYWdlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJs b2NrX3Qgc3RhcnQsIGludCBucnBhZ2VzLAogCWJsa19zdGFydF9wbHVnKCZwbHVnKTsKIAlmb3Ig KDsgbnJwYWdlcy0tID4gMDsgYmxrbm8rKykgewogCi0JCWlmICghaXNfdmFsaWRfYmxrYWRkcihz YmksIGJsa25vLCB0eXBlKSkKKwkJaWYgKCFpc192YWxpZF9tZXRhX2Jsa2FkZHIoc2JpLCBibGtu bywgdHlwZSkpCiAJCQlnb3RvIG91dDsKIAogCQlzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBh L2ZzL2YyZnMvZGF0YS5jIGIvZnMvZjJmcy9kYXRhLmMKaW5kZXggNTkxM2RlM2Y2NjFkLi5mN2Iy OTA5ZTljNWYgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvZGF0YS5jCisrKyBiL2ZzL2YyZnMvZGF0YS5j CkBAIC00MTMsNyArNDEzLDcgQEAgaW50IGYyZnNfc3VibWl0X3BhZ2Vfd3JpdGUoc3RydWN0IGYy ZnNfaW9faW5mbyAqZmlvKQogCQlzcGluX3VubG9jaygmaW8tPmlvX2xvY2spOwogCX0KIAotCWlm IChmaW8tPm9sZF9ibGthZGRyICE9IE5FV19BRERSKQorCWlmIChpc192YWxpZF9ibGthZGRyKGZp by0+b2xkX2Jsa2FkZHIpKQogCQl2ZXJpZnlfYmxvY2tfYWRkcihmaW8sIGZpby0+b2xkX2Jsa2Fk ZHIpOwogCXZlcmlmeV9ibG9ja19hZGRyKGZpbywgZmlvLT5uZXdfYmxrYWRkcik7CiAKQEAgLTk0 Niw3ICs5NDYsNyBAQCBpbnQgZjJmc19tYXBfYmxvY2tzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0 cnVjdCBmMmZzX21hcF9ibG9ja3MgKm1hcCwKIG5leHRfYmxvY2s6CiAJYmxrYWRkciA9IGRhdGFi bG9ja19hZGRyKGRuLmlub2RlLCBkbi5ub2RlX3BhZ2UsIGRuLm9mc19pbl9ub2RlKTsKIAotCWlm IChibGthZGRyID09IE5FV19BRERSIHx8IGJsa2FkZHIgPT0gTlVMTF9BRERSKSB7CisJaWYgKCFp c192YWxpZF9ibGthZGRyKGJsa2FkZHIpKSB7CiAJCWlmIChjcmVhdGUpIHsKIAkJCWlmICh1bmxp a2VseShmMmZzX2NwX2Vycm9yKHNiaSkpKSB7CiAJCQkJZXJyID0gLUVJTzsKQEAgLTEzODgsMTUg KzEzODgsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbmVlZF9pbnBsYWNlX3VwZGF0ZShzdHJ1Y3Qg ZjJmc19pb19pbmZvICpmaW8pCiAJcmV0dXJuIG5lZWRfaW5wbGFjZV91cGRhdGVfcG9saWN5KGlu b2RlLCBmaW8pOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgdmFsaWRfaXB1X2Jsa2FkZHIoc3Ry dWN0IGYyZnNfaW9faW5mbyAqZmlvKQotewotCWlmIChmaW8tPm9sZF9ibGthZGRyID09IE5FV19B RERSKQotCQlyZXR1cm4gZmFsc2U7Ci0JaWYgKGZpby0+b2xkX2Jsa2FkZHIgPT0gTlVMTF9BRERS KQotCQlyZXR1cm4gZmFsc2U7Ci0JcmV0dXJuIHRydWU7Ci19Ci0KIGludCBkb193cml0ZV9kYXRh X3BhZ2Uoc3RydWN0IGYyZnNfaW9faW5mbyAqZmlvKQogewogCXN0cnVjdCBwYWdlICpwYWdlID0g ZmlvLT5wYWdlOwpAQCAtMTQxMSw3ICsxNDAyLDcgQEAgaW50IGRvX3dyaXRlX2RhdGFfcGFnZShz dHJ1Y3QgZjJmc19pb19pbmZvICpmaW8pCiAJCQlmMmZzX2xvb2t1cF9leHRlbnRfY2FjaGUoaW5v ZGUsIHBhZ2UtPmluZGV4LCAmZWkpKSB7CiAJCWZpby0+b2xkX2Jsa2FkZHIgPSBlaS5ibGsgKyBw YWdlLT5pbmRleCAtIGVpLmZvZnM7CiAKLQkJaWYgKHZhbGlkX2lwdV9ibGthZGRyKGZpbykpIHsK KwkJaWYgKGlzX3ZhbGlkX2Jsa2FkZHIoZmlvLT5vbGRfYmxrYWRkcikpIHsKIAkJCWlwdV9mb3Jj ZSA9IHRydWU7CiAJCQlmaW8tPm5lZWRfbG9jayA9IExPQ0tfRE9ORTsKIAkJCWdvdG8gZ290X2l0 OwpAQCAtMTQzOCw3ICsxNDI5LDggQEAgaW50IGRvX3dyaXRlX2RhdGFfcGFnZShzdHJ1Y3QgZjJm c19pb19pbmZvICpmaW8pCiAJICogSWYgY3VycmVudCBhbGxvY2F0aW9uIG5lZWRzIFNTUiwKIAkg KiBpdCBoYWQgYmV0dGVyIGluLXBsYWNlIHdyaXRlcyBmb3IgdXBkYXRlZCBkYXRhLgogCSAqLwot CWlmIChpcHVfZm9yY2UgfHwgKHZhbGlkX2lwdV9ibGthZGRyKGZpbykgJiYgbmVlZF9pbnBsYWNl X3VwZGF0ZShmaW8pKSkgeworCWlmIChpcHVfZm9yY2UgfHwgKGlzX3ZhbGlkX2Jsa2FkZHIoZmlv LT5vbGRfYmxrYWRkcikgJiYKKwkJCQkJbmVlZF9pbnBsYWNlX3VwZGF0ZShmaW8pKSkgewogCQll cnIgPSBlbmNyeXB0X29uZV9wYWdlKGZpbyk7CiAJCWlmIChlcnIpCiAJCQlnb3RvIG91dF93cml0 ZXBhZ2U7CmRpZmYgLS1naXQgYS9mcy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCmluZGV4 IGFhN2IwMzNhZjFiMC4uZDc0Yzc3YjUxYjcxIDEwMDY0NAotLS0gYS9mcy9mMmZzL2YyZnMuaAor KysgYi9mcy9mMmZzL2YyZnMuaApAQCAtMjM1NSw2ICsyMzU1LDEzIEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBmMmZzX3VwZGF0ZV9pb3N0YXQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCXNwaW5f dW5sb2NrKCZzYmktPmlvc3RhdF9sb2NrKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGlzX3Zh bGlkX2Jsa2FkZHIoYmxvY2tfdCBibGthZGRyKQoreworCWlmIChibGthZGRyID09IE5FV19BRERS IHx8IGJsa2FkZHIgPT0gTlVMTF9BRERSKQorCQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIHRydWU7 Cit9CisKIC8qCiAgKiBmaWxlLmMKICAqLwpAQCAtMjU2NSw3ICsyNTcyLDcgQEAgdm9pZCBmMmZz X3N0b3BfY2hlY2twb2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJvb2wgZW5kX2lvKTsK IHN0cnVjdCBwYWdlICpncmFiX21ldGFfcGFnZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHBn b2ZmX3QgaW5kZXgpOwogc3RydWN0IHBhZ2UgKmdldF9tZXRhX3BhZ2Uoc3RydWN0IGYyZnNfc2Jf aW5mbyAqc2JpLCBwZ29mZl90IGluZGV4KTsKIHN0cnVjdCBwYWdlICpnZXRfdG1wX3BhZ2Uoc3Ry dWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBwZ29mZl90IGluZGV4KTsKLWJvb2wgaXNfdmFsaWRfYmxr YWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRkciwgaW50IHR5cGUp OworYm9vbCBpc192YWxpZF9tZXRhX2Jsa2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBi bG9ja190IGJsa2FkZHIsIGludCB0eXBlKTsKIGludCByYV9tZXRhX3BhZ2VzKHN0cnVjdCBmMmZz X3NiX2luZm8gKnNiaSwgYmxvY2tfdCBzdGFydCwgaW50IG5ycGFnZXMsCiAJCQlpbnQgdHlwZSwg Ym9vbCBzeW5jKTsKIHZvaWQgcmFfbWV0YV9wYWdlc19jb25kKHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSwgcGdvZmZfdCBpbmRleCk7CmRpZmYgLS1naXQgYS9mcy9mMmZzL2ZpbGUuYyBiL2ZzL2Yy ZnMvZmlsZS5jCmluZGV4IDZmNTg5NzMwNzgyZC4uZDM2OGVkYTQ2MmJiIDEwMDY0NAotLS0gYS9m cy9mMmZzL2ZpbGUuYworKysgYi9mcy9mMmZzL2ZpbGUuYwpAQCAtMzM0LDcgKzMzNCw3IEBAIHN0 YXRpYyBib29sIF9fZm91bmRfb2Zmc2V0KGJsb2NrX3QgYmxrYWRkciwgcGdvZmZfdCBkaXJ0eSwg cGdvZmZfdCBwZ29mcywKIAlzd2l0Y2ggKHdoZW5jZSkgewogCWNhc2UgU0VFS19EQVRBOgogCQlp ZiAoKGJsa2FkZHIgPT0gTkVXX0FERFIgJiYgZGlydHkgPT0gcGdvZnMpIHx8Ci0JCQkoYmxrYWRk ciAhPSBORVdfQUREUiAmJiBibGthZGRyICE9IE5VTExfQUREUikpCisJCQlpc192YWxpZF9ibGth ZGRyKGJsa2FkZHIpKQogCQkJcmV0dXJuIHRydWU7CiAJCWJyZWFrOwogCWNhc2UgU0VFS19IT0xF OgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9pbm9kZS5jIGIvZnMvZjJmcy9pbm9kZS5jCmluZGV4IDI1 OWIwYWEyODNmMC4uMmJjYmJmNTY2ZjBjIDEwMDY0NAotLS0gYS9mcy9mMmZzL2lub2RlLmMKKysr IGIvZnMvZjJmcy9pbm9kZS5jCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBib29sIF9fd3JpdHRl bl9maXJzdF9ibG9jayhzdHJ1Y3QgZjJmc19pbm9kZSAqcmkpCiB7CiAJYmxvY2tfdCBhZGRyID0g bGUzMl90b19jcHUocmktPmlfYWRkcltvZmZzZXRfaW5fYWRkcihyaSldKTsKIAotCWlmIChhZGRy ICE9IE5FV19BRERSICYmIGFkZHIgIT0gTlVMTF9BRERSKQorCWlmIChpc192YWxpZF9ibGthZGRy KGFkZHIpKQogCQlyZXR1cm4gdHJ1ZTsKIAlyZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9m cy9mMmZzL25vZGUuYyBiL2ZzL2YyZnMvbm9kZS5jCmluZGV4IDcxMjUwNWVjNWRlNC4uNWYyMTJm YjJkNjJiIDEwMDY0NAotLS0gYS9mcy9mMmZzL25vZGUuYworKysgYi9mcy9mMmZzL25vZGUuYwpA QCAtMzM0LDggKzMzNCw3IEBAIHN0YXRpYyB2b2lkIHNldF9ub2RlX2FkZHIoc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpLCBzdHJ1Y3Qgbm9kZV9pbmZvICpuaSwKIAkJCW5ld19ibGthZGRyID09IE5V TExfQUREUik7CiAJZjJmc19idWdfb24oc2JpLCBuYXRfZ2V0X2Jsa2FkZHIoZSkgPT0gTkVXX0FE RFIgJiYKIAkJCW5ld19ibGthZGRyID09IE5FV19BRERSKTsKLQlmMmZzX2J1Z19vbihzYmksIG5h dF9nZXRfYmxrYWRkcihlKSAhPSBORVdfQUREUiAmJgotCQkJbmF0X2dldF9ibGthZGRyKGUpICE9 IE5VTExfQUREUiAmJgorCWYyZnNfYnVnX29uKHNiaSwgaXNfdmFsaWRfYmxrYWRkcihuYXRfZ2V0 X2Jsa2FkZHIoZSkpICYmCiAJCQluZXdfYmxrYWRkciA9PSBORVdfQUREUik7CiAKIAkvKiBpbmNy ZW1lbnQgdmVyc2lvbiBubyBhcyBub2RlIGlzIHJlbW92ZWQgKi8KQEAgLTM1MCw3ICszNDksNyBA QCBzdGF0aWMgdm9pZCBzZXRfbm9kZV9hZGRyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3Ry dWN0IG5vZGVfaW5mbyAqbmksCiAKIAkvKiBjaGFuZ2UgYWRkcmVzcyAqLwogCW5hdF9zZXRfYmxr YWRkcihlLCBuZXdfYmxrYWRkcik7Ci0JaWYgKG5ld19ibGthZGRyID09IE5FV19BRERSIHx8IG5l d19ibGthZGRyID09IE5VTExfQUREUikKKwlpZiAoIWlzX3ZhbGlkX2Jsa2FkZHIobmV3X2Jsa2Fk ZHIpKQogCQlzZXRfbmF0X2ZsYWcoZSwgSVNfQ0hFQ0tQT0lOVEVELCBmYWxzZSk7CiAJX19zZXRf bmF0X2NhY2hlX2RpcnR5KG5tX2ksIGUpOwogCmRpZmYgLS1naXQgYS9mcy9mMmZzL3JlY292ZXJ5 LmMgYi9mcy9mMmZzL3JlY292ZXJ5LmMKaW5kZXggNzY1ZmFkZjk1NGFmLi41M2Y0MWFkNGNiZTEg MTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvcmVjb3ZlcnkuYworKysgYi9mcy9mMmZzL3JlY292ZXJ5LmMK QEAgLTIzNiw3ICsyMzYsNyBAQCBzdGF0aWMgaW50IGZpbmRfZnN5bmNfZG5vZGVzKHN0cnVjdCBm MmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwKIAl3aGlsZSAoMSkgewog CQlzdHJ1Y3QgZnN5bmNfaW5vZGVfZW50cnkgKmVudHJ5OwogCi0JCWlmICghaXNfdmFsaWRfYmxr YWRkcihzYmksIGJsa2FkZHIsIE1FVEFfUE9SKSkKKwkJaWYgKCFpc192YWxpZF9tZXRhX2Jsa2Fk ZHIoc2JpLCBibGthZGRyLCBNRVRBX1BPUikpCiAJCQlyZXR1cm4gMDsKIAogCQlwYWdlID0gZ2V0 X3RtcF9wYWdlKHNiaSwgYmxrYWRkcik7CkBAIC00NzksNyArNDc5LDcgQEAgc3RhdGljIGludCBk b19yZWNvdmVyX2RhdGEoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgaW5vZGUgKmlu b2RlLAogCQl9CiAKIAkJLyogZGVzdCBpcyB2YWxpZCBibG9jaywgdHJ5IHRvIHJlY292ZXIgZnJv bSBzcmMgdG8gZGVzdCAqLwotCQlpZiAoaXNfdmFsaWRfYmxrYWRkcihzYmksIGRlc3QsIE1FVEFf UE9SKSkgeworCQlpZiAoaXNfdmFsaWRfbWV0YV9ibGthZGRyKHNiaSwgZGVzdCwgTUVUQV9QT1Ip KSB7CiAKIAkJCWlmIChzcmMgPT0gTlVMTF9BRERSKSB7CiAJCQkJZXJyID0gcmVzZXJ2ZV9uZXdf YmxvY2soJmRuKTsKQEAgLTU0MCw3ICs1NDAsNyBAQCBzdGF0aWMgaW50IHJlY292ZXJfZGF0YShz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBsaXN0X2hlYWQgKmlub2RlX2xpc3QsCiAJ d2hpbGUgKDEpIHsKIAkJc3RydWN0IGZzeW5jX2lub2RlX2VudHJ5ICplbnRyeTsKIAotCQlpZiAo IWlzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBibGthZGRyLCBNRVRBX1BPUikpCisJCWlmICghaXNfdmFs aWRfbWV0YV9ibGthZGRyKHNiaSwgYmxrYWRkciwgTUVUQV9QT1IpKQogCQkJYnJlYWs7CiAKIAkJ cmFfbWV0YV9wYWdlc19jb25kKHNiaSwgYmxrYWRkcik7CmRpZmYgLS1naXQgYS9mcy9mMmZzL3Nl Z21lbnQuYyBiL2ZzL2YyZnMvc2VnbWVudC5jCmluZGV4IDExMDRhNmM4MDI1MS4uNDgzZDdhODY5 Njc5IDEwMDY0NAotLS0gYS9mcy9mMmZzL3NlZ21lbnQuYworKysgYi9mcy9mMmZzL3NlZ21lbnQu YwpAQCAtMTc1OCw3ICsxNzU4LDcgQEAgYm9vbCBpc19jaGVja3BvaW50ZWRfZGF0YShzdHJ1Y3Qg ZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRkcikKIAlzdHJ1Y3Qgc2VnX2VudHJ5ICpz ZTsKIAlib29sIGlzX2NwID0gZmFsc2U7CiAKLQlpZiAoYmxrYWRkciA9PSBORVdfQUREUiB8fCBi bGthZGRyID09IE5VTExfQUREUikKKwlpZiAoIWlzX3ZhbGlkX2Jsa2FkZHIoYmxrYWRkcikpCiAJ CXJldHVybiB0cnVlOwogCiAJbXV0ZXhfbG9jaygmc2l0X2ktPnNlbnRyeV9sb2NrKTsKQEAgLTI1 NzEsNyArMjU3MSw3IEBAIHZvaWQgZjJmc193YWl0X29uX2Jsb2NrX3dyaXRlYmFjayhzdHJ1Y3Qg ZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRkcikKIHsKIAlzdHJ1Y3QgcGFnZSAqY3Bh Z2U7CiAKLQlpZiAoYmxrYWRkciA9PSBORVdfQUREUiB8fCBibGthZGRyID09IE5VTExfQUREUikK KwlpZiAoIWlzX3ZhbGlkX2Jsa2FkZHIoYmxrYWRkcikpCiAJCXJldHVybjsKIAogCWNwYWdlID0g ZmluZF9sb2NrX3BhZ2UoTUVUQV9NQVBQSU5HKHNiaSksIGJsa2FkZHIpOwpkaWZmIC0tZ2l0IGEv ZnMvZjJmcy9zZWdtZW50LmggYi9mcy9mMmZzL3NlZ21lbnQuaAppbmRleCA0YjYzNWU4YzkxYjAu LmY5Nzc3NzQzMzhjMyAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zZWdtZW50LmgKKysrIGIvZnMvZjJm cy9zZWdtZW50LmgKQEAgLTg1LDcgKzg1LDcgQEAKIAkoR0VUX1NFR09GRl9GUk9NX1NFRzAoc2Jp LCBibGtfYWRkcikgJiAoKHNiaSktPmJsb2Nrc19wZXJfc2VnIC0gMSkpCiAKICNkZWZpbmUgR0VU X1NFR05PKHNiaSwgYmxrX2FkZHIpCQkJCQlcCi0JKCgoKGJsa19hZGRyKSA9PSBOVUxMX0FERFIp IHx8ICgoYmxrX2FkZHIpID09IE5FV19BRERSKSkgPwlcCisJKCghaXNfdmFsaWRfYmxrYWRkcihi bGtfYWRkcikpID8JCQlcCiAJTlVMTF9TRUdOTyA6IEdFVF9MMlJfU0VHTk8oRlJFRV9JKHNiaSks CQkJXAogCQlHRVRfU0VHTk9fRlJPTV9TRUcwKHNiaSwgYmxrX2FkZHIpKSkKICNkZWZpbmUgQkxL U19QRVJfU0VDKHNiaSkJCQkJCVwKLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3Bl ciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0 aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVu aXRlZCBLaW5nZG9tCgoKRnJvbSBiODBhYzgyMzY0NGI3MmFiODNkNWE5YjYyOTU4ZDkzNWZiMmU4 ODZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdl aS5jb20+CkRhdGU6IFR1ZSwgNSBKdW4gMjAxOCAxNzo0NDoxMSArMDgwMApTdWJqZWN0OiBbUEFU Q0ggMzYvNDZdIGYyZnM6IGludHJvZHVjZSBhbmQgc3ByZWFkIHZlcmlmeV9ibGthZGRyCgpjb21t aXQgZTFkYTc4NzJmNmVkYTk3N2JkODEyMzQ2YmY1ODhjMzVlNDQ5NWExZSB1cHN0cmVhbS4KClRo aXMgcGF0Y2ggaW50cm9kdWNlcyB2ZXJpZnlfYmxrYWRkciB0byBjaGVjayBtZXRhL2RhdGEgYmxv Y2sgYWRkcmVzcwp3aXRoIHZhbGlkIHJhbmdlIHRvIGRldGVjdCBidWcgZWFybGllci4KCkluIGFk ZGl0aW9uLCBvbmNlIHdlIGVuY291bnRlciBhbiBpbnZhbGlkIGJsa2FkZHIsIG5vdGljZSB1c2Vy IHRvIHJ1bgpmc2NrIHRvIGZpeCwgYW5kIGxldCB0aGUga2VybmVsIHBhbmljLgoKU2lnbmVkLW9m Zi1ieTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWVnZXVr IEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpbYndoOiBCYWNrcG9ydGVkIHRvIDQuMTQ6IEkgc2tp cHBlZCBhbiBlYXJsaWVyIHJlbmFtaW5nIG9mCiBpc192YWxpZF9tZXRhX2Jsa2FkZHIoKSB0byBm MmZzX2lzX3ZhbGlkX21ldGFfYmxrYWRkcigpXQpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdz IDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBmcy9mMmZzL2NoZWNrcG9pbnQu YyB8IDExICsrKysrKysrKy0tCiBmcy9mMmZzL2RhdGEuYyAgICAgICB8ICA4ICsrKystLS0tCiBm cy9mMmZzL2YyZnMuaCAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t CiBmcy9mMmZzL2ZpbGUuYyAgICAgICB8ICA5ICsrKysrLS0tLQogZnMvZjJmcy9pbm9kZS5jICAg ICAgfCAgNyArKysrLS0tCiBmcy9mMmZzL25vZGUuYyAgICAgICB8ICA0ICsrLS0KIGZzL2YyZnMv cmVjb3ZlcnkuYyAgIHwgIDYgKysrLS0tCiBmcy9mMmZzL3NlZ21lbnQuYyAgICB8ICA0ICsrLS0K IGZzL2YyZnMvc2VnbWVudC5oICAgIHwgIDggKysrLS0tLS0KIDkgZmlsZXMgY2hhbmdlZCwgNjEg aW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9jaGVj a3BvaW50LmMgYi9mcy9mMmZzL2NoZWNrcG9pbnQuYwppbmRleCAyYjk1MTA0NjY1N2UuLmQ3YmQ5 NzQ1ZTg4MyAxMDA2NDQKLS0tIGEvZnMvZjJmcy9jaGVja3BvaW50LmMKKysrIGIvZnMvZjJmcy9j aGVja3BvaW50LmMKQEAgLTExOCw3ICsxMTgsOCBAQCBzdHJ1Y3QgcGFnZSAqZ2V0X3RtcF9wYWdl KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgcGdvZmZfdCBpbmRleCkKIAlyZXR1cm4gX19nZXRf bWV0YV9wYWdlKHNiaSwgaW5kZXgsIGZhbHNlKTsKIH0KIAotYm9vbCBpc192YWxpZF9tZXRhX2Js a2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBibG9ja190IGJsa2FkZHIsIGludCB0eXBl KQorYm9vbCBmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAor CQkJCQlibG9ja190IGJsa2FkZHIsIGludCB0eXBlKQogewogCXN3aXRjaCAodHlwZSkgewogCWNh c2UgTUVUQV9OQVQ6CkBAIC0xMzgsMTAgKzEzOSwxNiBAQCBib29sIGlzX3ZhbGlkX21ldGFfYmxr YWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRkciwgaW50IHR5cGUp CiAJCQlyZXR1cm4gZmFsc2U7CiAJCWJyZWFrOwogCWNhc2UgTUVUQV9QT1I6CisJY2FzZSBEQVRB X0dFTkVSSUM6CiAJCWlmICh1bmxpa2VseShibGthZGRyID49IE1BWF9CTEtBRERSKHNiaSkgfHwK IAkJCWJsa2FkZHIgPCBNQUlOX0JMS0FERFIoc2JpKSkpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCWJy ZWFrOworCWNhc2UgTUVUQV9HRU5FUklDOgorCQlpZiAodW5saWtlbHkoYmxrYWRkciA8IFNFRzBf QkxLQUREUihzYmkpIHx8CisJCQlibGthZGRyID49IE1BSU5fQkxLQUREUihzYmkpKSkKKwkJCXJl dHVybiBmYWxzZTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJQlVHKCk7CiAJfQpAQCAtMTc0LDcg KzE4MSw3IEBAIGludCByYV9tZXRhX3BhZ2VzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgYmxv Y2tfdCBzdGFydCwgaW50IG5ycGFnZXMsCiAJYmxrX3N0YXJ0X3BsdWcoJnBsdWcpOwogCWZvciAo OyBucnBhZ2VzLS0gPiAwOyBibGtubysrKSB7CiAKLQkJaWYgKCFpc192YWxpZF9tZXRhX2Jsa2Fk ZHIoc2JpLCBibGtubywgdHlwZSkpCisJCWlmICghZjJmc19pc192YWxpZF9ibGthZGRyKHNiaSwg Ymxrbm8sIHR5cGUpKQogCQkJZ290byBvdXQ7CiAKIAkJc3dpdGNoICh0eXBlKSB7CmRpZmYgLS1n aXQgYS9mcy9mMmZzL2RhdGEuYyBiL2ZzL2YyZnMvZGF0YS5jCmluZGV4IGY3YjI5MDllOWM1Zi4u NjE1ODc4ODA2NjExIDEwMDY0NAotLS0gYS9mcy9mMmZzL2RhdGEuYworKysgYi9mcy9mMmZzL2Rh dGEuYwpAQCAtNDEzLDcgKzQxMyw3IEBAIGludCBmMmZzX3N1Ym1pdF9wYWdlX3dyaXRlKHN0cnVj dCBmMmZzX2lvX2luZm8gKmZpbykKIAkJc3Bpbl91bmxvY2soJmlvLT5pb19sb2NrKTsKIAl9CiAK LQlpZiAoaXNfdmFsaWRfYmxrYWRkcihmaW8tPm9sZF9ibGthZGRyKSkKKwlpZiAoX19pc192YWxp ZF9kYXRhX2Jsa2FkZHIoZmlvLT5vbGRfYmxrYWRkcikpCiAJCXZlcmlmeV9ibG9ja19hZGRyKGZp bywgZmlvLT5vbGRfYmxrYWRkcik7CiAJdmVyaWZ5X2Jsb2NrX2FkZHIoZmlvLCBmaW8tPm5ld19i bGthZGRyKTsKIApAQCAtOTQ2LDcgKzk0Niw3IEBAIGludCBmMmZzX21hcF9ibG9ja3Moc3RydWN0 IGlub2RlICppbm9kZSwgc3RydWN0IGYyZnNfbWFwX2Jsb2NrcyAqbWFwLAogbmV4dF9ibG9jazoK IAlibGthZGRyID0gZGF0YWJsb2NrX2FkZHIoZG4uaW5vZGUsIGRuLm5vZGVfcGFnZSwgZG4ub2Zz X2luX25vZGUpOwogCi0JaWYgKCFpc192YWxpZF9ibGthZGRyKGJsa2FkZHIpKSB7CisJaWYgKCFp c192YWxpZF9kYXRhX2Jsa2FkZHIoc2JpLCBibGthZGRyKSkgewogCQlpZiAoY3JlYXRlKSB7CiAJ CQlpZiAodW5saWtlbHkoZjJmc19jcF9lcnJvcihzYmkpKSkgewogCQkJCWVyciA9IC1FSU87CkBA IC0xNDAyLDcgKzE0MDIsNyBAQCBpbnQgZG9fd3JpdGVfZGF0YV9wYWdlKHN0cnVjdCBmMmZzX2lv X2luZm8gKmZpbykKIAkJCWYyZnNfbG9va3VwX2V4dGVudF9jYWNoZShpbm9kZSwgcGFnZS0+aW5k ZXgsICZlaSkpIHsKIAkJZmlvLT5vbGRfYmxrYWRkciA9IGVpLmJsayArIHBhZ2UtPmluZGV4IC0g ZWkuZm9mczsKIAotCQlpZiAoaXNfdmFsaWRfYmxrYWRkcihmaW8tPm9sZF9ibGthZGRyKSkgewor CQlpZiAoaXNfdmFsaWRfZGF0YV9ibGthZGRyKGZpby0+c2JpLCBmaW8tPm9sZF9ibGthZGRyKSkg ewogCQkJaXB1X2ZvcmNlID0gdHJ1ZTsKIAkJCWZpby0+bmVlZF9sb2NrID0gTE9DS19ET05FOwog CQkJZ290byBnb3RfaXQ7CkBAIC0xNDI5LDcgKzE0MjksNyBAQCBpbnQgZG9fd3JpdGVfZGF0YV9w YWdlKHN0cnVjdCBmMmZzX2lvX2luZm8gKmZpbykKIAkgKiBJZiBjdXJyZW50IGFsbG9jYXRpb24g bmVlZHMgU1NSLAogCSAqIGl0IGhhZCBiZXR0ZXIgaW4tcGxhY2Ugd3JpdGVzIGZvciB1cGRhdGVk IGRhdGEuCiAJICovCi0JaWYgKGlwdV9mb3JjZSB8fCAoaXNfdmFsaWRfYmxrYWRkcihmaW8tPm9s ZF9ibGthZGRyKSAmJgorCWlmIChpcHVfZm9yY2UgfHwgKGlzX3ZhbGlkX2RhdGFfYmxrYWRkcihm aW8tPnNiaSwgZmlvLT5vbGRfYmxrYWRkcikgJiYKIAkJCQkJbmVlZF9pbnBsYWNlX3VwZGF0ZShm aW8pKSkgewogCQllcnIgPSBlbmNyeXB0X29uZV9wYWdlKGZpbyk7CiAJCWlmIChlcnIpCmRpZmYg LS1naXQgYS9mcy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCmluZGV4IGQ3NGM3N2I1MWI3 MS4uZDE1ZDc5NDU3ZjVjIDEwMDY0NAotLS0gYS9mcy9mMmZzL2YyZnMuaAorKysgYi9mcy9mMmZz L2YyZnMuaApAQCAtMTYyLDcgKzE2Miw3IEBAIHN0cnVjdCBjcF9jb250cm9sIHsKIH07CiAKIC8q Ci0gKiBGb3IgQ1AvTkFUL1NJVC9TU0EgcmVhZGFoZWFkCisgKiBpbmRpY2F0ZSBtZXRhL2RhdGEg dHlwZQogICovCiBlbnVtIHsKIAlNRVRBX0NQLApAQCAtMTcwLDYgKzE3MCw4IEBAIGVudW0gewog CU1FVEFfU0lULAogCU1FVEFfU1NBLAogCU1FVEFfUE9SLAorCURBVEFfR0VORVJJQywKKwlNRVRB X0dFTkVSSUMsCiB9OwogCiAvKiBmb3IgdGhlIGxpc3Qgb2YgaW5vICovCkBAIC0yMzU1LDEzICsy MzU3LDM2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmMmZzX3VwZGF0ZV9pb3N0YXQoc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpLAogCXNwaW5fdW5sb2NrKCZzYmktPmlvc3RhdF9sb2NrKTsKIH0KIAot c3RhdGljIGlubGluZSBib29sIGlzX3ZhbGlkX2Jsa2FkZHIoYmxvY2tfdCBibGthZGRyKQorYm9v bCBmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAorCQkJCQli bG9ja190IGJsa2FkZHIsIGludCB0eXBlKTsKK3ZvaWQgZjJmc19tc2coc3RydWN0IHN1cGVyX2Js b2NrICpzYiwgY29uc3QgY2hhciAqbGV2ZWwsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKK3N0YXRp YyBpbmxpbmUgdm9pZCB2ZXJpZnlfYmxrYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCisJ CQkJCWJsb2NrX3QgYmxrYWRkciwgaW50IHR5cGUpCit7CisJaWYgKCFmMmZzX2lzX3ZhbGlkX2Js a2FkZHIoc2JpLCBibGthZGRyLCB0eXBlKSkgeworCQlmMmZzX21zZyhzYmktPnNiLCBLRVJOX0VS UiwKKwkJCSJpbnZhbGlkIGJsa2FkZHI6ICV1LCB0eXBlOiAlZCwgcnVuIGZzY2sgdG8gZml4LiIs CisJCQlibGthZGRyLCB0eXBlKTsKKwkJZjJmc19idWdfb24oc2JpLCAxKTsKKwl9Cit9CisKK3N0 YXRpYyBpbmxpbmUgYm9vbCBfX2lzX3ZhbGlkX2RhdGFfYmxrYWRkcihibG9ja190IGJsa2FkZHIp CiB7CiAJaWYgKGJsa2FkZHIgPT0gTkVXX0FERFIgfHwgYmxrYWRkciA9PSBOVUxMX0FERFIpCiAJ CXJldHVybiBmYWxzZTsKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGlz X3ZhbGlkX2RhdGFfYmxrYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCisJCQkJCQlibG9j a190IGJsa2FkZHIpCit7CisJaWYgKCFfX2lzX3ZhbGlkX2RhdGFfYmxrYWRkcihibGthZGRyKSkK KwkJcmV0dXJuIGZhbHNlOworCXZlcmlmeV9ibGthZGRyKHNiaSwgYmxrYWRkciwgREFUQV9HRU5F UklDKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKwogLyoKICAqIGZpbGUuYwogICovCkBAIC0yNTcyLDcg KzI1OTcsOCBAQCB2b2lkIGYyZnNfc3RvcF9jaGVja3BvaW50KHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSwgYm9vbCBlbmRfaW8pOwogc3RydWN0IHBhZ2UgKmdyYWJfbWV0YV9wYWdlKHN0cnVjdCBm MmZzX3NiX2luZm8gKnNiaSwgcGdvZmZfdCBpbmRleCk7CiBzdHJ1Y3QgcGFnZSAqZ2V0X21ldGFf cGFnZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHBnb2ZmX3QgaW5kZXgpOwogc3RydWN0IHBh Z2UgKmdldF90bXBfcGFnZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHBnb2ZmX3QgaW5kZXgp OwotYm9vbCBpc192YWxpZF9tZXRhX2Jsa2FkZHIoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBi bG9ja190IGJsa2FkZHIsIGludCB0eXBlKTsKK2Jvb2wgZjJmc19pc192YWxpZF9ibGthZGRyKHN0 cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwKKwkJCQkJYmxvY2tfdCBibGthZGRyLCBpbnQgdHlwZSk7 CiBpbnQgcmFfbWV0YV9wYWdlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3Qgc3Rh cnQsIGludCBucnBhZ2VzLAogCQkJaW50IHR5cGUsIGJvb2wgc3luYyk7CiB2b2lkIHJhX21ldGFf cGFnZXNfY29uZChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHBnb2ZmX3QgaW5kZXgpOwpkaWZm IC0tZ2l0IGEvZnMvZjJmcy9maWxlLmMgYi9mcy9mMmZzL2ZpbGUuYwppbmRleCBkMzY4ZWRhNDYy YmIuLmU5YzU3NWVmNzBiNSAxMDA2NDQKLS0tIGEvZnMvZjJmcy9maWxlLmMKKysrIGIvZnMvZjJm cy9maWxlLmMKQEAgLTMyOCwxMyArMzI4LDEzIEBAIHN0YXRpYyBwZ29mZl90IF9fZ2V0X2ZpcnN0 X2RpcnR5X2luZGV4KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCXJldHVybiBwZ29m czsKIH0KIAotc3RhdGljIGJvb2wgX19mb3VuZF9vZmZzZXQoYmxvY2tfdCBibGthZGRyLCBwZ29m Zl90IGRpcnR5LCBwZ29mZl90IHBnb2ZzLAotCQkJCQkJCWludCB3aGVuY2UpCitzdGF0aWMgYm9v bCBfX2ZvdW5kX29mZnNldChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGJsb2NrX3QgYmxrYWRk ciwKKwkJCQlwZ29mZl90IGRpcnR5LCBwZ29mZl90IHBnb2ZzLCBpbnQgd2hlbmNlKQogewogCXN3 aXRjaCAod2hlbmNlKSB7CiAJY2FzZSBTRUVLX0RBVEE6CiAJCWlmICgoYmxrYWRkciA9PSBORVdf QUREUiAmJiBkaXJ0eSA9PSBwZ29mcykgfHwKLQkJCWlzX3ZhbGlkX2Jsa2FkZHIoYmxrYWRkcikp CisJCQlpc192YWxpZF9kYXRhX2Jsa2FkZHIoc2JpLCBibGthZGRyKSkKIAkJCXJldHVybiB0cnVl OwogCQlicmVhazsKIAljYXNlIFNFRUtfSE9MRToKQEAgLTM5Nyw3ICszOTcsOCBAQCBzdGF0aWMg bG9mZl90IGYyZnNfc2Vla19ibG9jayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwg aW50IHdoZW5jZSkKIAkJCWJsa2FkZHIgPSBkYXRhYmxvY2tfYWRkcihkbi5pbm9kZSwKIAkJCQkJ ZG4ubm9kZV9wYWdlLCBkbi5vZnNfaW5fbm9kZSk7CiAKLQkJCWlmIChfX2ZvdW5kX29mZnNldChi bGthZGRyLCBkaXJ0eSwgcGdvZnMsIHdoZW5jZSkpIHsKKwkJCWlmIChfX2ZvdW5kX29mZnNldChG MkZTX0lfU0IoaW5vZGUpLCBibGthZGRyLCBkaXJ0eSwKKwkJCQkJCQlwZ29mcywgd2hlbmNlKSkg ewogCQkJCWYyZnNfcHV0X2Rub2RlKCZkbik7CiAJCQkJZ290byBmb3VuZDsKIAkJCX0KZGlmZiAt LWdpdCBhL2ZzL2YyZnMvaW5vZGUuYyBiL2ZzL2YyZnMvaW5vZGUuYwppbmRleCAyYmNiYmY1NjZm MGMuLmIxYzBlYjQzMzg0MSAxMDA2NDQKLS0tIGEvZnMvZjJmcy9pbm9kZS5jCisrKyBiL2ZzL2Yy ZnMvaW5vZGUuYwpAQCAtNjIsMTEgKzYyLDEyIEBAIHN0YXRpYyB2b2lkIF9fZ2V0X2lub2RlX3Jk ZXYoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGYyZnNfaW5vZGUgKnJpKQogCX0KIH0KIAot c3RhdGljIGJvb2wgX193cml0dGVuX2ZpcnN0X2Jsb2NrKHN0cnVjdCBmMmZzX2lub2RlICpyaSkK K3N0YXRpYyBib29sIF9fd3JpdHRlbl9maXJzdF9ibG9jayhzdHJ1Y3QgZjJmc19zYl9pbmZvICpz YmksCisJCQkJCXN0cnVjdCBmMmZzX2lub2RlICpyaSkKIHsKIAlibG9ja190IGFkZHIgPSBsZTMy X3RvX2NwdShyaS0+aV9hZGRyW29mZnNldF9pbl9hZGRyKHJpKV0pOwogCi0JaWYgKGlzX3ZhbGlk X2Jsa2FkZHIoYWRkcikpCisJaWYgKGlzX3ZhbGlkX2RhdGFfYmxrYWRkcihzYmksIGFkZHIpKQog CQlyZXR1cm4gdHJ1ZTsKIAlyZXR1cm4gZmFsc2U7CiB9CkBAIC0yMzUsNyArMjM2LDcgQEAgc3Rh dGljIGludCBkb19yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJLyogZ2V0IHJkZXYg YnkgdXNpbmcgaW5saW5lX2luZm8gKi8KIAlfX2dldF9pbm9kZV9yZGV2KGlub2RlLCByaSk7CiAK LQlpZiAoX193cml0dGVuX2ZpcnN0X2Jsb2NrKHJpKSkKKwlpZiAoX193cml0dGVuX2ZpcnN0X2Js b2NrKHNiaSwgcmkpKQogCQlzZXRfaW5vZGVfZmxhZyhpbm9kZSwgRklfRklSU1RfQkxPQ0tfV1JJ VFRFTik7CiAKIAlpZiAoIW5lZWRfaW5vZGVfYmxvY2tfdXBkYXRlKHNiaSwgaW5vZGUtPmlfaW5v KSkKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvbm9kZS5jIGIvZnMvZjJmcy9ub2RlLmMKaW5kZXggNWYy MTJmYjJkNjJiLi45OTk4MTRjOGNiZWEgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvbm9kZS5jCisrKyBi L2ZzL2YyZnMvbm9kZS5jCkBAIC0zMzQsNyArMzM0LDcgQEAgc3RhdGljIHZvaWQgc2V0X25vZGVf YWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHN0cnVjdCBub2RlX2luZm8gKm5pLAogCQkJ bmV3X2Jsa2FkZHIgPT0gTlVMTF9BRERSKTsKIAlmMmZzX2J1Z19vbihzYmksIG5hdF9nZXRfYmxr YWRkcihlKSA9PSBORVdfQUREUiAmJgogCQkJbmV3X2Jsa2FkZHIgPT0gTkVXX0FERFIpOwotCWYy ZnNfYnVnX29uKHNiaSwgaXNfdmFsaWRfYmxrYWRkcihuYXRfZ2V0X2Jsa2FkZHIoZSkpICYmCisJ ZjJmc19idWdfb24oc2JpLCBpc192YWxpZF9kYXRhX2Jsa2FkZHIoc2JpLCBuYXRfZ2V0X2Jsa2Fk ZHIoZSkpICYmCiAJCQluZXdfYmxrYWRkciA9PSBORVdfQUREUik7CiAKIAkvKiBpbmNyZW1lbnQg dmVyc2lvbiBubyBhcyBub2RlIGlzIHJlbW92ZWQgKi8KQEAgLTM0OSw3ICszNDksNyBAQCBzdGF0 aWMgdm9pZCBzZXRfbm9kZV9hZGRyKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IG5v ZGVfaW5mbyAqbmksCiAKIAkvKiBjaGFuZ2UgYWRkcmVzcyAqLwogCW5hdF9zZXRfYmxrYWRkcihl LCBuZXdfYmxrYWRkcik7Ci0JaWYgKCFpc192YWxpZF9ibGthZGRyKG5ld19ibGthZGRyKSkKKwlp ZiAoIWlzX3ZhbGlkX2RhdGFfYmxrYWRkcihzYmksIG5ld19ibGthZGRyKSkKIAkJc2V0X25hdF9m bGFnKGUsIElTX0NIRUNLUE9JTlRFRCwgZmFsc2UpOwogCV9fc2V0X25hdF9jYWNoZV9kaXJ0eShu bV9pLCBlKTsKIApkaWZmIC0tZ2l0IGEvZnMvZjJmcy9yZWNvdmVyeS5jIGIvZnMvZjJmcy9yZWNv dmVyeS5jCmluZGV4IDUzZjQxYWQ0Y2JlMS4uNmVhNDQ1Mzc3NzY3IDEwMDY0NAotLS0gYS9mcy9m MmZzL3JlY292ZXJ5LmMKKysrIGIvZnMvZjJmcy9yZWNvdmVyeS5jCkBAIC0yMzYsNyArMjM2LDcg QEAgc3RhdGljIGludCBmaW5kX2ZzeW5jX2Rub2RlcyhzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmks IHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCiAJd2hpbGUgKDEpIHsKIAkJc3RydWN0IGZzeW5jX2lu b2RlX2VudHJ5ICplbnRyeTsKIAotCQlpZiAoIWlzX3ZhbGlkX21ldGFfYmxrYWRkcihzYmksIGJs a2FkZHIsIE1FVEFfUE9SKSkKKwkJaWYgKCFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBibGth ZGRyLCBNRVRBX1BPUikpCiAJCQlyZXR1cm4gMDsKIAogCQlwYWdlID0gZ2V0X3RtcF9wYWdlKHNi aSwgYmxrYWRkcik7CkBAIC00NzksNyArNDc5LDcgQEAgc3RhdGljIGludCBkb19yZWNvdmVyX2Rh dGEoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQl9CiAK IAkJLyogZGVzdCBpcyB2YWxpZCBibG9jaywgdHJ5IHRvIHJlY292ZXIgZnJvbSBzcmMgdG8gZGVz dCAqLwotCQlpZiAoaXNfdmFsaWRfbWV0YV9ibGthZGRyKHNiaSwgZGVzdCwgTUVUQV9QT1IpKSB7 CisJCWlmIChmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBkZXN0LCBNRVRBX1BPUikpIHsKIAog CQkJaWYgKHNyYyA9PSBOVUxMX0FERFIpIHsKIAkJCQllcnIgPSByZXNlcnZlX25ld19ibG9jaygm ZG4pOwpAQCAtNTQwLDcgKzU0MCw3IEBAIHN0YXRpYyBpbnQgcmVjb3Zlcl9kYXRhKHN0cnVjdCBm MmZzX3NiX2luZm8gKnNiaSwgc3RydWN0IGxpc3RfaGVhZCAqaW5vZGVfbGlzdCwKIAl3aGlsZSAo MSkgewogCQlzdHJ1Y3QgZnN5bmNfaW5vZGVfZW50cnkgKmVudHJ5OwogCi0JCWlmICghaXNfdmFs aWRfbWV0YV9ibGthZGRyKHNiaSwgYmxrYWRkciwgTUVUQV9QT1IpKQorCQlpZiAoIWYyZnNfaXNf dmFsaWRfYmxrYWRkcihzYmksIGJsa2FkZHIsIE1FVEFfUE9SKSkKIAkJCWJyZWFrOwogCiAJCXJh X21ldGFfcGFnZXNfY29uZChzYmksIGJsa2FkZHIpOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdt ZW50LmMgYi9mcy9mMmZzL3NlZ21lbnQuYwppbmRleCA0ODNkN2E4Njk2NzkuLjVjNjk4NzU3ZTEx NiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9zZWdtZW50LmMKKysrIGIvZnMvZjJmcy9zZWdtZW50LmMK QEAgLTE3NTgsNyArMTc1OCw3IEBAIGJvb2wgaXNfY2hlY2twb2ludGVkX2RhdGEoc3RydWN0IGYy ZnNfc2JfaW5mbyAqc2JpLCBibG9ja190IGJsa2FkZHIpCiAJc3RydWN0IHNlZ19lbnRyeSAqc2U7 CiAJYm9vbCBpc19jcCA9IGZhbHNlOwogCi0JaWYgKCFpc192YWxpZF9ibGthZGRyKGJsa2FkZHIp KQorCWlmICghaXNfdmFsaWRfZGF0YV9ibGthZGRyKHNiaSwgYmxrYWRkcikpCiAJCXJldHVybiB0 cnVlOwogCiAJbXV0ZXhfbG9jaygmc2l0X2ktPnNlbnRyeV9sb2NrKTsKQEAgLTI1NzEsNyArMjU3 MSw3IEBAIHZvaWQgZjJmc193YWl0X29uX2Jsb2NrX3dyaXRlYmFjayhzdHJ1Y3QgZjJmc19zYl9p bmZvICpzYmksIGJsb2NrX3QgYmxrYWRkcikKIHsKIAlzdHJ1Y3QgcGFnZSAqY3BhZ2U7CiAKLQlp ZiAoIWlzX3ZhbGlkX2Jsa2FkZHIoYmxrYWRkcikpCisJaWYgKCFpc192YWxpZF9kYXRhX2Jsa2Fk ZHIoc2JpLCBibGthZGRyKSkKIAkJcmV0dXJuOwogCiAJY3BhZ2UgPSBmaW5kX2xvY2tfcGFnZShN RVRBX01BUFBJTkcoc2JpKSwgYmxrYWRkcik7CmRpZmYgLS1naXQgYS9mcy9mMmZzL3NlZ21lbnQu aCBiL2ZzL2YyZnMvc2VnbWVudC5oCmluZGV4IGY5Nzc3NzQzMzhjMy4uZGQ4Zjk3N2ZjMjczIDEw MDY0NAotLS0gYS9mcy9mMmZzL3NlZ21lbnQuaAorKysgYi9mcy9mMmZzL3NlZ21lbnQuaApAQCAt ODUsNyArODUsNyBAQAogCShHRVRfU0VHT0ZGX0ZST01fU0VHMChzYmksIGJsa19hZGRyKSAmICgo c2JpKS0+YmxvY2tzX3Blcl9zZWcgLSAxKSkKIAogI2RlZmluZSBHRVRfU0VHTk8oc2JpLCBibGtf YWRkcikJCQkJCVwKLQkoKCFpc192YWxpZF9ibGthZGRyKGJsa19hZGRyKSkgPwkJCVwKKwkoKCFp c192YWxpZF9kYXRhX2Jsa2FkZHIoc2JpLCBibGtfYWRkcikpID8JCQlcCiAJTlVMTF9TRUdOTyA6 IEdFVF9MMlJfU0VHTk8oRlJFRV9JKHNiaSksCQkJXAogCQlHRVRfU0VHTk9fRlJPTV9TRUcwKHNi aSwgYmxrX2FkZHIpKSkKICNkZWZpbmUgQkxLU19QRVJfU0VDKHNiaSkJCQkJCVwKQEAgLTYzMSwx MSArNjMxLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHZlcmlmeV9ibG9ja19hZGRyKHN0cnVjdCBm MmZzX2lvX2luZm8gKmZpbywgYmxvY2tfdCBibGtfYWRkcikKIAogCWlmIChQQUdFX1RZUEVfT0Zf QklPKGZpby0+dHlwZSkgPT0gTUVUQSAmJgogCQkJCSghaXNfcmVhZF9pbyhmaW8tPm9wKSB8fCBm aW8tPmlzX21ldGEpKQotCQlCVUdfT04oYmxrX2FkZHIgPCBTRUcwX0JMS0FERFIoc2JpKSB8fAot CQkJCWJsa19hZGRyID49IE1BSU5fQkxLQUREUihzYmkpKTsKKwkJdmVyaWZ5X2Jsa2FkZHIoc2Jp LCBibGtfYWRkciwgTUVUQV9HRU5FUklDKTsKIAllbHNlCi0JCUJVR19PTihibGtfYWRkciA8IE1B SU5fQkxLQUREUihzYmkpIHx8Ci0JCQkJYmxrX2FkZHIgPj0gTUFYX0JMS0FERFIoc2JpKSk7CisJ CXZlcmlmeV9ibGthZGRyKHNiaSwgYmxrX2FkZHIsIERBVEFfR0VORVJJQyk7CiB9CiAKIC8qCi0t IApCZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAg ICAgQ29kZXRoaW5rIEx0ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAg ICAgICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0cmVldAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTWFuY2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gNGEy MzA0YmFmY2FiMDg3Y2M2NGM3MmYxOTdkM2RlODNmYzczZjIzMyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpEYXRlOiBTYXQsIDIzIEp1 biAyMDE4IDAwOjEyOjM2ICswODAwClN1YmplY3Q6IFtQQVRDSCAzNy80Nl0gZjJmczogZml4IHRv IGRvIHNhbml0eSBjaGVjayB3aXRoIHNlY3NfcGVyX3pvbmUKCmNvbW1pdCA0MmJmNTQ2YzFmZTNm MzY1NGJkZjkxNGU5NzdhY2JjMmI4MGE1YmU1IHVwc3RyZWFtLgoKQXMgV2VuIFh1IHJlcG9ydGVk IGluIGJlbG93IGxpbms6CgpodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dp P2lkPTIwMDE4MwoKLSBPdmVydmlldwpEaXZpZGUgemVybyBpbiByZXNldF9jdXJzZWcoKSB3aGVu IG1vdW50aW5nIGEgY3JhZnRlZCBmMmZzIGltYWdlCgotIFJlcHJvZHVjZQoKLSBLZXJuZWwgbWVz c2FnZQpbICA1ODguMjgxNTEwXSBkaXZpZGUgZXJyb3I6IDAwMDAgWyMxXSBTTVAgS0FTQU4gUFRJ ClsgIDU4OC4yODI3MDFdIENQVTogMCBQSUQ6IDEyOTMgQ29tbTogbW91bnQgTm90IHRhaW50ZWQg NC4xOC4wLXJjMSsgIzQKWyAgNTg4LjI4NDAwMF0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFy ZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVudHUxIDA0 LzAxLzIwMTQKWyAgNTg4LjI4NjE3OF0gUklQOiAwMDEwOnJlc2V0X2N1cnNlZysweDk0LzB4MWEw ClsgIDU4OC4yOTgxNjZdIFJTUDogMDAxODpmZmZmODgwMWU4OGQ3OTQwIEVGTEFHUzogMDAwMTAy NDYKWyAgNTg4LjI5OTM2MF0gUkFYOiAwMDAwMDAwMDAwMDAwMDE0IFJCWDogZmZmZjg4MDFlMWQ0 NmQwMCBSQ1g6IGZmZmZmZmZmYjg4YmY2MGIKWyAgNTg4LjMwMDgwOV0gUkRYOiAwMDAwMDAwMDAw MDAwMDAwIFJTSTogZGZmZmZjMDAwMDAwMDAwMCBSREk6IGZmZmY4ODAxZTFkNDZkNjQKWyAgNTg4 LjMwNTI3Ml0gUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogMDAwMDAwMDAwMDAwMDAxNCBSMTU6 IDAwMDAwMDAwMDAwMDAwMDAKWyAgNTg4LjMwNjgyMl0gRlM6ICAwMDAwN2ZhZDg1MDA4ODQwKDAw MDApIEdTOmZmZmY4ODAxZjZlMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA1 ODguMzA4NDU2XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUw MDMzClsgIDU4OC4zMDk2MjNdIENSMjogMDAwMDAwMDAwMTcwNTA3OCBDUjM6IDAwMDAwMDAxZjMw ZjgwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmYwClsgIDU4OC4zMTEwODVdIENhbGwgVHJhY2U6Clsg IDU4OC4zMTE2MzddICBmMmZzX2J1aWxkX3NlZ21lbnRfbWFuYWdlcisweDEwM2YvMHgzNDEwClsg IDU4OC4zMTYxMzZdICA/IGYyZnNfY29tbWl0X3N1cGVyKzB4MWIwLzB4MWIwClsgIDU4OC4zMTcw MzFdICA/IHNldF9ibG9ja3NpemUrMHg5MC8weDE0MApbICA1ODguMzE5NDczXSAgZjJmc19tb3Vu dCsweDE1LzB4MjAKWyAgNTg4LjMyMDE2Nl0gIG1vdW50X2ZzKzB4NjAvMHgxYTAKWyAgNTg4LjMy MDg0N10gID8gYWxsb2NfdmZzbW50KzB4MzA5LzB4MzYwClsgIDU4OC4zMjE2NDddICB2ZnNfa2Vy bl9tb3VudCsweDZiLzB4MWEwClsgIDU4OC4zMjI0MzJdICBkb19tb3VudCsweDM0YS8weDE4YzAK WyAgNTg4LjMyMzE3NV0gID8gc3RybmR1cF91c2VyKzB4NDYvMHg3MApbICA1ODguMzIzOTM3XSAg PyBjb3B5X21vdW50X3N0cmluZysweDIwLzB4MjAKWyAgNTg4LjMyNDc5M10gID8gbWVtY2dfa21l bV9wdXRfY2FjaGUrMHgxYi8weGEwClsgIDU4OC4zMjU3MDJdICA/IGthc2FuX2NoZWNrX3dyaXRl KzB4MTQvMHgyMApbICA1ODguMzI2NTYyXSAgPyBfY29weV9mcm9tX3VzZXIrMHg2YS8weDkwClsg IDU4OC4zMjczNzVdICA/IG1lbWR1cF91c2VyKzB4NDIvMHg2MApbICA1ODguMzI4MTE4XSAga3N5 c19tb3VudCsweDgzLzB4ZDAKWyAgNTg4LjMyODgwOF0gIF9feDY0X3N5c19tb3VudCsweDY3LzB4 ODAKWyAgNTg4LjMyOTYwN10gIGRvX3N5c2NhbGxfNjQrMHg3OC8weDE3MApbICA1ODguMzMwNDAw XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQpbICA1ODguMzMxNDYx XSBSSVA6IDAwMzM6MHg3ZmFkODQ4ZThiOWEKWyAgNTg4LjMzNjAyMl0gUlNQOiAwMDJiOjAwMDA3 ZmZkN2M1YjZiZTggRUZMQUdTOiAwMDAwMDIwNiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDBhNQpb ICA1ODguMzM3NTQ3XSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAxNmY4MDMw IFJDWDogMDAwMDdmYWQ4NDhlOGI5YQpbICA1ODguMzM4OTk5XSBSRFg6IDAwMDAwMDAwMDE2Zjgy MTAgUlNJOiAwMDAwMDAwMDAxNmY5ZjMwIFJESTogMDAwMDAwMDAwMTcwMGVjMApbICA1ODguMzQw NDQyXSBSQlA6IDAwMDAwMDAwMDAwMDAwMDAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAw MDAwMDAwMDAwMDAxMwpbICA1ODguMzQxODg3XSBSMTA6IDAwMDAwMDAwYzBlZDAwMDAgUjExOiAw MDAwMDAwMDAwMDAwMjA2IFIxMjogMDAwMDAwMDAwMTcwMGVjMApbICA1ODguMzQzMzQxXSBSMTM6 IDAwMDAwMDAwMDE2ZjgyMTAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAw MDAwMwpbICA1ODguMzU0ODkxXSAtLS1bIGVuZCB0cmFjZSA0Y2UwMmYyNWZmN2QzZGY1IF0tLS0K WyAgNTg4LjM1NTg2Ml0gUklQOiAwMDEwOnJlc2V0X2N1cnNlZysweDk0LzB4MWEwClsgIDU4OC4z NjA3NDJdIFJTUDogMDAxODpmZmZmODgwMWU4OGQ3OTQwIEVGTEFHUzogMDAwMTAyNDYKWyAgNTg4 LjM2MTgxMl0gUkFYOiAwMDAwMDAwMDAwMDAwMDE0IFJCWDogZmZmZjg4MDFlMWQ0NmQwMCBSQ1g6 IGZmZmZmZmZmYjg4YmY2MGIKWyAgNTg4LjM2MzQ4NV0gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJT STogZGZmZmZjMDAwMDAwMDAwMCBSREk6IGZmZmY4ODAxZTFkNDZkNjQKWyAgNTg4LjM2NTIxM10g UkJQOiBmZmZmODgwMWU4OGQ3OTY4IFIwODogZmZmZmVkMDAzYzMyMjY2ZiBSMDk6IGZmZmZlZDAw M2MzMjI2NmYKWyAgNTg4LjM2NjY2MV0gUjEwOiAwMDAwMDAwMDAwMDAwMDAxIFIxMTogZmZmZmVk MDAzYzMyMjY2ZSBSMTI6IGZmZmY4ODAxZjAzMzc3MDAKWyAgNTg4LjM2ODExMF0gUjEzOiAwMDAw MDAwMDAwMDAwMDAwIFIxNDogMDAwMDAwMDAwMDAwMDAxNCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAK WyAgNTg4LjM3MDA1N10gRlM6ICAwMDAwN2ZhZDg1MDA4ODQwKDAwMDApIEdTOmZmZmY4ODAxZjZl MDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA1ODguMzcyMDk5XSBDUzogIDAw MTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDU4OC4zNzMyOTFd IENSMjogMDAwMDAwMDAwMTcwNTA3OCBDUjM6IDAwMDAwMDAxZjMwZjgwMDAgQ1I0OiAwMDAwMDAw MDAwMDAwNmYwCgotIExvY2F0aW9uCmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L2xh dGVzdC9zb3VyY2UvZnMvZjJmcy9zZWdtZW50LmMjTDIxNDcKICAgICAgICBjdXJzZWctPnpvbmUg PSBHRVRfWk9ORV9GUk9NX1NFRyhzYmksIGN1cnNlZy0+c2Vnbm8pOwoKSWYgc2Vjc19wZXJfem9u ZSBpcyBjb3JydXB0ZWQgZHVlIHRvIGZ1enppbmcgdGVzdCwgaXQgd2lsbCBjYXVzZSBkaXZpZGUK emVybyBvcGVyYXRpb24gd2hlbiB1c2luZyBHRVRfWk9ORV9GUk9NX1NFRyBtYWNybywgc28gd2Ug c2hvdWxkIGRvIG1vcmUKc2FuaXR5IGNoZWNrIHdpdGggc2Vjc19wZXJfem9uZSBkdXJpbmcgbW91 bnQgdG8gYXZvaWQgdGhpcyBpc3N1ZS4KClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPHl1Y2hhbzBA aHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9y Zz4KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsu Y28udWs+Ci0tLQogZnMvZjJmcy9zdXBlci5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvc3VwZXIu YyBiL2ZzL2YyZnMvc3VwZXIuYwppbmRleCBjM2UxMDkwZTdjMGEuLjA4NGZmOWM4MmEzNyAxMDA2 NDQKLS0tIGEvZnMvZjJmcy9zdXBlci5jCisrKyBiL2ZzL2YyZnMvc3VwZXIuYwpAQCAtMTkwNCw5 ICsxOTA0LDkgQEAgc3RhdGljIGludCBzYW5pdHlfY2hlY2tfcmF3X3N1cGVyKHN0cnVjdCBmMmZz X3NiX2luZm8gKnNiaSwKIAkJcmV0dXJuIDE7CiAJfQogCi0JaWYgKHNlY3NfcGVyX3pvbmUgPiB0 b3RhbF9zZWN0aW9ucykgeworCWlmIChzZWNzX3Blcl96b25lID4gdG90YWxfc2VjdGlvbnMgfHwg IXNlY3NfcGVyX3pvbmUpIHsKIAkJZjJmc19tc2coc2IsIEtFUk5fSU5GTywKLQkJCSJXcm9uZyBz ZWNzX3Blcl96b25lICgldSA+ICV1KSIsCisJCQkiV3Jvbmcgc2Vjc19wZXJfem9uZSAvIHRvdGFs X3NlY3Rpb25zICgldSwgJXUpIiwKIAkJCXNlY3NfcGVyX3pvbmUsIHRvdGFsX3NlY3Rpb25zKTsK IAkJcmV0dXJuIDE7CiAJfQotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAg ICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5r LmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVk IEtpbmdkb20KCgpGcm9tIGJiNTBmMDJiZGRhZDgxZWI4MzI3MDE1YzQzNGQ3YzdmOWE0NTA2OTcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGlu Z3NAY29kZXRoaW5rLmNvLnVrPgpEYXRlOiBUaHUsIDI5IE5vdiAyMDE4IDE5OjE3OjM0ICswMDAw ClN1YmplY3Q6IFtQQVRDSCAzOC80Nl0gZjJmczogQWRkIHNhbml0eV9jaGVja19pbm9kZSgpIGZ1 bmN0aW9uCgpUaGlzIHdhcyBkb25lIGFzIHBhcnQgb2YgY29tbWl0IDVkNjQ2MDBkNGYzMyAiZjJm czogYXZvaWQgYnVnX29uIG9uCmNvcnJ1cHRlZCBpbm9kZSIgdXBzdHJlYW0sIGJ1dCB0aGUgc3Bl Y2lmaWMgY2hlY2sgdGhhdCBjb21taXQgYWRkZWQgaXMKbm90IGFwcGxpY2FibGUgdG8gNC4xNC4K CkNjOiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpDYzogQ2hhbyBZdSA8eXVjaGFv MEBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdz QGNvZGV0aGluay5jby51az4KLS0tCiBmcy9mMmZzL2lub2RlLmMgfCAxMSArKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9mcy9mMmZzL2lu b2RlLmMgYi9mcy9mMmZzL2lub2RlLmMKaW5kZXggYjFjMGViNDMzODQxLi45MTdhNmMzZDU2NDkg MTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvaW5vZGUuYworKysgYi9mcy9mMmZzL2lub2RlLmMKQEAgLTE4 MCw2ICsxODAsMTMgQEAgdm9pZCBmMmZzX2lub2RlX2Noa3N1bV9zZXQoc3RydWN0IGYyZnNfc2Jf aW5mbyAqc2JpLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAlyaS0+aV9pbm9kZV9jaGVja3N1bSA9IGNw dV90b19sZTMyKGYyZnNfaW5vZGVfY2hrc3VtKHNiaSwgcGFnZSkpOwogfQogCitzdGF0aWMgYm9v bCBzYW5pdHlfY2hlY2tfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlzdHJ1Y3QgZjJm c19zYl9pbmZvICpzYmkgPSBGMkZTX0lfU0IoaW5vZGUpOworCisJcmV0dXJuIHRydWU7Cit9CisK IHN0YXRpYyBpbnQgZG9fcmVhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewogCXN0cnVj dCBmMmZzX3NiX2luZm8gKnNiaSA9IEYyRlNfSV9TQihpbm9kZSk7CkBAIC0yODEsNiArMjg4LDEw IEBAIHN0cnVjdCBpbm9kZSAqZjJmc19pZ2V0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHVuc2ln bmVkIGxvbmcgaW5vKQogCXJldCA9IGRvX3JlYWRfaW5vZGUoaW5vZGUpOwogCWlmIChyZXQpCiAJ CWdvdG8gYmFkX2lub2RlOworCWlmICghc2FuaXR5X2NoZWNrX2lub2RlKGlub2RlKSkgeworCQly ZXQgPSAtRUlOVkFMOworCQlnb3RvIGJhZF9pbm9kZTsKKwl9CiBtYWtlX25vdzoKIAlpZiAoaW5v ID09IEYyRlNfTk9ERV9JTk8oc2JpKSkgewogCQlpbm9kZS0+aV9tYXBwaW5nLT5hX29wcyA9ICZm MmZzX25vZGVfYW9wczsKLS0gCkJlbiBIdXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAg ICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5j by51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBL aW5nZG9tCgoKRnJvbSA1MTkwZWRjYjE4OGE5YjhmYzlmNmMxYjAzMmY3N2VlZTAxMGM4YTM0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ CkRhdGU6IE1vbiwgMjUgSnVuIDIwMTggMjM6Mjk6NDkgKzA4MDAKU3ViamVjdDogW1BBVENIIDM5 LzQ2XSBmMmZzOiBmaXggdG8gZG8gc2FuaXR5IGNoZWNrIHdpdGggZXh0cmFfYXR0ciBmZWF0dXJl Cgpjb21taXQgNzZkNTZkNGFiNGYyYTllNGYwODVjN2Q3NzE3MjE5NGRkYWNjZjdkMiB1cHN0cmVh bS4KCklmIEZJX0VYVFJBX0FUVFIgaXMgc2V0IGluIGlub2RlIGJ5IGZ1enppbmcsIGlub2RlLmlf YWRkclswXSB3aWxsIGJlCnBhcnNlZCBhcyBpbm9kZS5pX2V4dHJhX2lzaXplLCB0aGVuIGluIF9f cmVjb3Zlcl9pbmxpbmVfc3RhdHVzLCBpbmxpbmUKZGF0YSBhZGRyZXNzIHdpbGwgYmV5b25kIGJv dW5kYXJ5IG9mIHBhZ2UsIHJlc3VsdCBpbiBhY2Nlc3NpbmcgaW52YWxpZAptZW1vcnkuCgpTbyBp biB0aGlzIGNvbmRpdGlvbiwgZHVyaW5nIHJlYWRpbmcgaW5vZGUgcGFnZSwgbGV0J3MgZG8gc2Fu aXR5IGNoZWNrCndpdGggRVhUUkFfQVRUUiBmZWF0dXJlIG9mIGZzIGFuZCBleHRyYV9hdHRyIGJp dCBvZiBpbm9kZSwgaWYgdGhleSdyZQppbmNvbnNpc3RlbnQsIGRlbnkgdG8gbG9hZCB0aGlzIGlu b2RlLgoKLSBPdmVydmlldwpPdXQtb2YtYm91bmQgYWNjZXNzIGluIGYyZnNfaWdldCgpIHdoZW4g bW91bnRpbmcgYSBjb3JydXB0ZWQgZjJmcyBpbWFnZQoKLSBSZXByb2R1Y2UKClRoZSBmb2xsb3dp bmcgbWVzc2FnZSB3aWxsIGJlIGdvdCBpbiBLQVNBTiBidWlsZCBvZiA0LjE4IHVwc3RyZWFtIGtl cm5lbC4KWyAgODE5LjM5MjIyN10gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgIDgxOS4zOTM5MDFdIEJVRzogS0FTQU46 IHNsYWItb3V0LW9mLWJvdW5kcyBpbiBmMmZzX2lnZXQrMHg3MzYvMHgxNTMwClsgIDgxOS4zOTUz MjldIFJlYWQgb2Ygc2l6ZSA0IGF0IGFkZHIgZmZmZjg4MDFmMDk5Yzk2OCBieSB0YXNrIG1vdW50 LzEyOTIKClsgIDgxOS4zOTcwNzldIENQVTogMSBQSUQ6IDEyOTIgQ29tbTogbW91bnQgTm90IHRh aW50ZWQgNC4xOC4wLXJjMSsgIzQKWyAgODE5LjM5NzA4Ml0gSGFyZHdhcmUgbmFtZTogUUVNVSBT dGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVu dHUxIDA0LzAxLzIwMTQKWyAgODE5LjM5NzA4OF0gQ2FsbCBUcmFjZToKWyAgODE5LjM5NzEyNF0g IGR1bXBfc3RhY2srMHg3Yi8weGI1ClsgIDgxOS4zOTcxNTRdICBwcmludF9hZGRyZXNzX2Rlc2Ny aXB0aW9uKzB4NzAvMHgyOTAKWyAgODE5LjM5NzE1OV0gIGthc2FuX3JlcG9ydCsweDI5MS8weDM5 MApbICA4MTkuMzk3MTYzXSAgPyBmMmZzX2lnZXQrMHg3MzYvMHgxNTMwClsgIDgxOS4zOTcxNzZd ICBjaGVja19tZW1vcnlfcmVnaW9uKzB4MTM5LzB4MTkwClsgIDgxOS4zOTcxODJdICBfX2FzYW5f bG9hZE4rMHhmLzB4MjAKWyAgODE5LjM5NzE4NV0gIGYyZnNfaWdldCsweDczNi8weDE1MzAKWyAg ODE5LjM5NzE5N10gIGYyZnNfZmlsbF9zdXBlcisweDFiNGYvMHgyYjQwClsgIDgxOS4zOTcyMDJd ICA/IGYyZnNfZmlsbF9zdXBlcisweDFiNGYvMHgyYjQwClsgIDgxOS4zOTcyMDhdICA/IGYyZnNf Y29tbWl0X3N1cGVyKzB4MWIwLzB4MWIwClsgIDgxOS4zOTcyMjddICA/IHNldF9ibG9ja3NpemUr MHg5MC8weDE0MApbICA4MTkuMzk3MjQxXSAgbW91bnRfYmRldisweDFjNS8weDIxMApbICA4MTku Mzk3MjQ1XSAgPyBmMmZzX2NvbW1pdF9zdXBlcisweDFiMC8weDFiMApbICA4MTkuMzk3MjUyXSAg ZjJmc19tb3VudCsweDE1LzB4MjAKWyAgODE5LjM5NzI1Nl0gIG1vdW50X2ZzKzB4NjAvMHgxYTAK WyAgODE5LjM5NzI2N10gID8gYWxsb2NfdmZzbW50KzB4MzA5LzB4MzYwClsgIDgxOS4zOTcyNzJd ICB2ZnNfa2Vybl9tb3VudCsweDZiLzB4MWEwClsgIDgxOS4zOTcyODJdICBkb19tb3VudCsweDM0 YS8weDE4YzAKWyAgODE5LjM5NzMwMF0gID8gbG9ja3JlZl9wdXRfb3JfbG9jaysweGNmLzB4MTYw ClsgIDgxOS4zOTczMDZdICA/IGNvcHlfbW91bnRfc3RyaW5nKzB4MjAvMHgyMApbICA4MTkuMzk3 MzE4XSAgPyBtZW1jZ19rbWVtX3B1dF9jYWNoZSsweDFiLzB4YTAKWyAgODE5LjM5NzMyNF0gID8g a2FzYW5fY2hlY2tfd3JpdGUrMHgxNC8weDIwClsgIDgxOS4zOTczMzRdICA/IF9jb3B5X2Zyb21f dXNlcisweDZhLzB4OTAKWyAgODE5LjM5NzM1M10gID8gbWVtZHVwX3VzZXIrMHg0Mi8weDYwClsg IDgxOS4zOTczNTldICBrc3lzX21vdW50KzB4ODMvMHhkMApbICA4MTkuMzk3MzY1XSAgX194NjRf c3lzX21vdW50KzB4NjcvMHg4MApbICA4MTkuMzk3Mzg4XSAgZG9fc3lzY2FsbF82NCsweDc4LzB4 MTcwClsgIDgxOS4zOTc0MDNdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8w eGE5ClsgIDgxOS4zOTc0MjJdIFJJUDogMDAzMzoweDdmNTRjNjY3Y2I5YQpbICA4MTkuMzk3NDI0 XSBDb2RlOiA0OCA4YiAwZCAwMSBjMyAyYiAwMCBmNyBkOCA2NCA4OSAwMSA0OCA4MyBjOCBmZiBj MyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCAwZiAxZiA0NCAwMCAwMCA0OSA4OSBjYSBi OCBhNSAwMCAwMCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDAxIGMzIDQ4IDhiIDBk IGNlIGMyIDJiIDAwIGY3IGQ4IDY0IDg5IDAxIDQ4ClsgIDgxOS4zOTc0ODNdIFJTUDogMDAyYjow MDAwN2ZmZDhmNDZjZDA4IEVGTEFHUzogMDAwMDAyMDIgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAw YTUKWyAgODE5LjM5NzQ5Nl0gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMGRm YTAzMCBSQ1g6IDAwMDA3ZjU0YzY2N2NiOWEKWyAgODE5LjM5NzQ5OF0gUkRYOiAwMDAwMDAwMDAw ZGZhMjEwIFJTSTogMDAwMDAwMDAwMGRmYmYzMCBSREk6IDAwMDAwMDAwMDBlMDJlYzAKWyAgODE5 LjM5NzUwMV0gUkJQOiAwMDAwMDAwMDAwMDAwMDAwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6 IDAwMDAwMDAwMDAwMDAwMTMKWyAgODE5LjM5NzUwM10gUjEwOiAwMDAwMDAwMGMwZWQwMDAwIFIx MTogMDAwMDAwMDAwMDAwMDIwMiBSMTI6IDAwMDAwMDAwMDBlMDJlYzAKWyAgODE5LjM5NzUwNV0g UjEzOiAwMDAwMDAwMDAwZGZhMjEwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAw MDAwMDAwMDMKClsgIDgxOS4zOTc4NjZdIEFsbG9jYXRlZCBieSB0YXNrIDEzOToKWyAgODE5LjM5 ODcwMl0gIHNhdmVfc3RhY2srMHg0Ni8weGQwClsgIDgxOS4zOTg3MDVdICBrYXNhbl9rbWFsbG9j KzB4YWQvMHhlMApbICA4MTkuMzk4NzA5XSAga2FzYW5fc2xhYl9hbGxvYysweDExLzB4MjAKWyAg ODE5LjM5ODcxM10gIGttZW1fY2FjaGVfYWxsb2MrMHhkMS8weDFlMApbICA4MTkuMzk4NzE3XSAg ZHVwX2ZkKzB4NTAvMHg0YzAKWyAgODE5LjM5ODc0MF0gIGNvcHlfcHJvY2Vzcy5wYXJ0LjM3KzB4 YmVkLzB4MzJlMApbICA4MTkuMzk4NzQ0XSAgX2RvX2ZvcmsrMHgxNmUvMHg1OTAKWyAgODE5LjM5 ODc0OF0gIF9feDY0X3N5c19jbG9uZSsweDY5LzB4ODAKWyAgODE5LjM5ODc1Ml0gIGRvX3N5c2Nh bGxfNjQrMHg3OC8weDE3MApbICA4MTkuMzk4NzU2XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9o d2ZyYW1lKzB4NDQvMHhhOQoKWyAgODE5LjM5OTA5N10gRnJlZWQgYnkgdGFzayAxNTk6ClsgIDgx OS4zOTk3NDNdICBzYXZlX3N0YWNrKzB4NDYvMHhkMApbICA4MTkuMzk5NzQ3XSAgX19rYXNhbl9z bGFiX2ZyZWUrMHgxM2MvMHgxYTAKWyAgODE5LjM5OTc1MF0gIGthc2FuX3NsYWJfZnJlZSsweGUv MHgxMApbICA4MTkuMzk5NzU0XSAga21lbV9jYWNoZV9mcmVlKzB4ODkvMHgxZTAKWyAgODE5LjM5 OTc1N10gIHB1dF9maWxlc19zdHJ1Y3QrMHgxMzIvMHgxNTAKWyAgODE5LjM5OTc2MV0gIGV4aXRf ZmlsZXMrMHg2Mi8weDcwClsgIDgxOS4zOTk3NjZdICBkb19leGl0KzB4NDdiLzB4MTM5MApbICA4 MTkuMzk5NzcwXSAgZG9fZ3JvdXBfZXhpdCsweDg2LzB4MTMwClsgIDgxOS4zOTk3NzRdICBfX3g2 NF9zeXNfZXhpdF9ncm91cCsweDJjLzB4MzAKWyAgODE5LjM5OTc3OF0gIGRvX3N5c2NhbGxfNjQr MHg3OC8weDE3MApbICA4MTkuMzk5NzgyXSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1l KzB4NDQvMHhhOQoKWyAgODE5LjQwMDExNV0gVGhlIGJ1Z2d5IGFkZHJlc3MgYmVsb25ncyB0byB0 aGUgb2JqZWN0IGF0IGZmZmY4ODAxZjA5OWM2ODAKICAgICAgICAgICAgICAgIHdoaWNoIGJlbG9u Z3MgdG8gdGhlIGNhY2hlIGZpbGVzX2NhY2hlIG9mIHNpemUgNzA0ClsgIDgxOS40MDMyMzRdIFRo ZSBidWdneSBhZGRyZXNzIGlzIGxvY2F0ZWQgNDAgYnl0ZXMgdG8gdGhlIHJpZ2h0IG9mCiAgICAg ICAgICAgICAgICA3MDQtYnl0ZSByZWdpb24gW2ZmZmY4ODAxZjA5OWM2ODAsIGZmZmY4ODAxZjA5 OWM5NDApClsgIDgxOS40MDU2ODldIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBh Z2U6ClsgIDgxOS40MDY3MDldIHBhZ2U6ZmZmZmVhMDAwN2MyNjcwMCBjb3VudDoxIG1hcGNvdW50 OjAgbWFwcGluZzpmZmZmODgwMWY2OWEzMzQwIGluZGV4OjB4ZmZmZjg4MDFmMDk5ZDM4MCBjb21w b3VuZF9tYXBjb3VudDogMApbICA4MTkuNDA4OTg0XSBmbGFnczogMHgyZmZmZjAwMDAwMDgxMDAo c2xhYnxoZWFkKQpbICA4MTkuNDA5OTMyXSByYXc6IDAyZmZmZjAwMDAwMDgxMDAgZmZmZmVhMDAw NzdmYjYwMCAwMDAwMDAwMjAwMDAwMDAyIGZmZmY4ODAxZjY5YTMzNDAKWyAgODE5LjQxMTUxNF0g cmF3OiBmZmZmODgwMWYwOTlkMzgwIDAwMDAwMDAwODAxMzAwMDAgMDAwMDAwMDFmZmZmZmZmZiAw MDAwMDAwMDAwMDAwMDAwClsgIDgxOS40MTMwNzNdIHBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2Fu OiBiYWQgYWNjZXNzIGRldGVjdGVkCgpbICA4MTkuNDE0NTM5XSBNZW1vcnkgc3RhdGUgYXJvdW5k IHRoZSBidWdneSBhZGRyZXNzOgpbICA4MTkuNDE1NTIxXSAgZmZmZjg4MDFmMDk5YzgwMDogZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAgODE5LjQxNjk4 MV0gIGZmZmY4ODAxZjA5OWM4ODA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiClsgIDgxOS40MTg0NTRdID5mZmZmODgwMWYwOTljOTAwOiBmYiBmYiBmYiBm YiBmYiBmYiBmYiBmYiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwpbICA4MTkuNDE5OTIxXSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpb ICA4MTkuNDIxMjY1XSAgZmZmZjg4MDFmMDk5Yzk4MDogZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAgODE5LjQyMjc0NV0gIGZmZmY4ODAxZjA5OWNhMDA6 IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiClsgIDgxOS40 MjQyMDZdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpbICA4MTkuNDI1NjY4XSBEaXNhYmxpbmcgbG9jayBkZWJ1Z2dpbmcg ZHVlIHRvIGtlcm5lbCB0YWludApbICA4MTkuNDU3NDYzXSBGMkZTLWZzIChsb29wMCk6IE1vdW50 ZWQgd2l0aCBjaGVja3BvaW50IHZlcnNpb24gPSAzCgpUaGUga2VybmVsIHN0aWxsIG1vdW50cyB0 aGUgaW1hZ2UuIElmIHlvdSBydW4gdGhlIGZvbGxvd2luZyBwcm9ncmFtIG9uIHRoZSBtb3VudGVk IGZvbGRlciBtbnQsCgoocG9jLmMpCgpzdGF0aWMgdm9pZCBhY3Rpdml0eShjaGFyICptcG9pbnQp IHsKCiAgY2hhciAqZm9vX2Jhcl9iYXo7CiAgaW50IGVycjsKCiAgc3RhdGljIGludCBidWZbODE5 Ml07CiAgbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKGJ1ZikpOwoKICBlcnIgPSBhc3ByaW50ZigmZm9v X2Jhcl9iYXosICIlcy9mb28vYmFyL2JheiIsIG1wb2ludCk7CiAgICBpbnQgZmQgPSBvcGVuKGZv b19iYXJfYmF6LCBPX1JET05MWSwgMCk7CiAgaWYgKGZkID49IDApIHsKICAgICAgcmVhZChmZCwg KGNoYXIgKilidWYsIDExKTsKICAgICAgY2xvc2UoZmQpOwogIH0KfQoKaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkgewogIGFjdGl2aXR5KGFyZ3ZbMV0pOwogIHJldHVybiAwOwp9CgpZ b3UgY2FuIGdldCBrZXJuZWwgY3Jhc2g6ClsgIDgxOS40NTc0NjNdIEYyRlMtZnMgKGxvb3AwKTog TW91bnRlZCB3aXRoIGNoZWNrcG9pbnQgdmVyc2lvbiA9IDMKWyAgOTE4LjAyODUwMV0gQlVHOiB1 bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcgcmVxdWVzdCBhdCBmZmZmZWQwMDQ4MDAwZDgy ClsgIDkxOC4wNDQwMjBdIFBHRCAyM2ZmZWUwNjcgUDREIDIzZmZlZTA2NyBQVUQgMjNmYmVmMDY3 IFBNRCAwClsgIDkxOC4wNDUyMDddIE9vcHM6IDAwMDAgWyMxXSBTTVAgS0FTQU4gUFRJClsgIDkx OC4wNDYwNDhdIENQVTogMCBQSUQ6IDEzMDkgQ29tbTogcG9jIFRhaW50ZWQ6IEcgICAgQiAgICAg ICAgICAgICA0LjE4LjAtcmMxKyAjNApbICA5MTguMDQ3NTczXSBIYXJkd2FyZSBuYW1lOiBRRU1V IFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBVYnVudHUtMS44LjItMXVi dW50dTEgMDQvMDEvMjAxNApbICA5MTguMDQ5NTUyXSBSSVA6IDAwMTA6Y2hlY2tfbWVtb3J5X3Jl Z2lvbisweDVlLzB4MTkwClsgIDkxOC4wNTA1NjVdIENvZGU6IGY4IDQ5IGMxIGU4IDAzIDQ5IDg5 IGRiIDQ5IGMxIGViIDAzIDRkIDAxIGNiIDRkIDAxIGMxIDRkIDhkIDYzIDAxIDRjIDg5IGM4IDRk IDg5IGUyIDRkIDI5IGNhIDQ5IDgzIGZhIDEwIDdmIDNkIDRkIDg1IGQyIDc0IDMyIDw0MT4gODAg MzkgMDAgNzUgMjMgNDggYjggMDEgMDAgMDAgMDAgMDAgZmMgZmYgZGYgNGQgMDEgZDEgNDkgMDEg YzAKWyAgOTE4LjA1NDMyMl0gUlNQOiAwMDE4OmZmZmY4ODAxZTNhMWYyNTggRUZMQUdTOiAwMDAx MDIwMgpbICA5MTguMDU1NDAwXSBSQVg6IGZmZmZlZDAwNDgwMDBkODIgUkJYOiBmZmZmODgwMjQw MDA2YzExIFJDWDogZmZmZmZmZmZiODg2N2QxNApbICA5MTguMDU2ODMyXSBSRFg6IDAwMDAwMDAw MDAwMDAwMDAgUlNJOiAwMDAwMDAwMDAwMDAwMDAyIFJESTogZmZmZjg4MDI0MDAwNmMxMApbICA5 MTguMDU4MjUzXSBSQlA6IGZmZmY4ODAxZTNhMWYyNjggUjA4OiAxZmZmZjEwMDQ4MDAwZDgyIFIw OTogZmZmZmVkMDA0ODAwMGQ4MgpbICA5MTguMDU5NzE3XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDEg UjExOiBmZmZmZWQwMDQ4MDAwZDgyIFIxMjogZmZmZmVkMDA0ODAwMGQ4MwpbICA5MTguMDYxMTU5 XSBSMTM6IGZmZmY4ODAxZTNhMWYzOTAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogZmZmZjg4 MDI0MDAwNmMwOApbICA5MTguMDYyNjE0XSBGUzogIDAwMDA3ZmFjOTczMmM3MDAoMDAwMCkgR1M6 ZmZmZjg4MDFmNmUwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgIDkxOC4wNjQy NDZdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAg OTE4LjA2NTQxMl0gQ1IyOiBmZmZmZWQwMDQ4MDAwZDgyIENSMzogMDAwMDAwMDFkZjc3YTAwMCBD UjQ6IDAwMDAwMDAwMDAwMDA2ZjAKWyAgOTE4LjA2Njg4Ml0gQ2FsbCBUcmFjZToKWyAgOTE4LjA2 NzQxMF0gIF9fYXNhbl9sb2FkTisweGYvMHgyMApbICA5MTguMDY4MTQ5XSAgZjJmc19maW5kX3Rh cmdldF9kZW50cnkrMHhmNC8weDI3MApbICA5MTguMDY5MDgzXSAgPyBfX2dldF9ub2RlX3BhZ2Ur MHgzMzEvMHg1YjAKWyAgOTE4LjA2OTkyNV0gIGYyZnNfZmluZF9pbl9pbmxpbmVfZGlyKzB4MjRi LzB4MzEwClsgIDkxOC4wNzA4ODFdICA/IGYyZnNfcmVjb3Zlcl9pbmxpbmVfZGF0YSsweDRjMC8w eDRjMApbICA5MTguMDcxOTA1XSAgPyB1bndpbmRfbmV4dF9mcmFtZS5wYXJ0LjUrMHgzNGYvMHg0 OTAKWyAgOTE4LjA3MjkwMV0gID8gdW53aW5kX2R1bXArMHgyOTAvMHgyOTAKWyAgOTE4LjA3MzY5 NV0gID8gaXNfYnBmX3RleHRfYWRkcmVzcysweGUvMHgyMApbICA5MTguMDc0NTY2XSAgX19mMmZz X2ZpbmRfZW50cnkrMHg1OTkvMHg2NzAKWyAgOTE4LjA3NTQwOF0gID8ga2FzYW5fdW5wb2lzb25f c2hhZG93KzB4MzYvMHg1MApbICA5MTguMDc2MzE1XSAgPyBrYXNhbl9rbWFsbG9jKzB4YWQvMHhl MApbICA5MTguMDc3MTAwXSAgPyBtZW1jZ19rbWVtX3B1dF9jYWNoZSsweDU1LzB4YTAKWyAgOTE4 LjA3Nzk5OF0gID8gZjJmc19maW5kX3RhcmdldF9kZW50cnkrMHgyNzAvMHgyNzAKWyAgOTE4LjA3 OTAwNl0gID8gZF9zZXRfZF9vcCsweDMwLzB4MTAwClsgIDkxOC4wNzk3NDldICA/IF9fZF9sb29r dXBfcmN1KzB4NjkvMHgyZTAKWyAgOTE4LjA4MDU1Nl0gID8gX19kX2FsbG9jKzB4Mjc1LzB4NDUw ClsgIDkxOC4wODEyOTddICA/IGthc2FuX2NoZWNrX3dyaXRlKzB4MTQvMHgyMApbICA5MTguMDgy MTM1XSAgPyBtZW1zZXQrMHgzMS8weDQwClsgIDkxOC4wODI4MjBdICA/IGZzY3J5cHRfc2V0dXBf ZmlsZW5hbWUrMHgxZWMvMHg0YzAKWyAgOTE4LjA4Mzc4Ml0gID8gZF9hbGxvY19wYXJhbGxlbCsw eDViYi8weDhjMApbICA5MTguMDg0NjQwXSAgZjJmc19maW5kX2VudHJ5KzB4ZTkvMHgxMTAKWyAg OTE4LjA4NTQzMl0gID8gX19mMmZzX2ZpbmRfZW50cnkrMHg2NzAvMHg2NzAKWyAgOTE4LjA4NjMw OF0gID8ga2FzYW5fY2hlY2tfd3JpdGUrMHgxNC8weDIwClsgIDkxOC4wODcxNjNdICBmMmZzX2xv b2t1cCsweDI5Ny8weDU5MApbICA5MTguMDg3OTAyXSAgPyBmMmZzX2xpbmsrMHgyYjAvMHgyYjAK WyAgOTE4LjA4ODY0Nl0gID8gbGVnaXRpbWl6ZV9wYXRoLmlzcmEuMjkrMHg2MS8weGEwClsgIDkx OC4wODk1ODldICBfX2xvb2t1cF9zbG93KzB4MTJlLzB4MjQwClsgIDkxOC4wOTAzNzFdICA/IG1h eV9kZWxldGUrMHgyYjAvMHgyYjAKWyAgOTE4LjA5MTEyM10gID8gX19uZF9hbGxvY19zdGFjaysw eGEwLzB4YTAKWyAgOTE4LjA5MTk0NF0gIGxvb2t1cF9zbG93KzB4NDQvMHg2MApbICA5MTguMDky NjQyXSAgd2Fsa19jb21wb25lbnQrMHgzZWUvMHhhNDAKWyAgOTE4LjA5MzQyOF0gID8gaXNfYnBm X3RleHRfYWRkcmVzcysweGUvMHgyMApbICA5MTguMDk0MjgzXSAgPyBwaWNrX2xpbmsrMHgzZTAv MHgzZTAKWyAgOTE4LjA5NTA0N10gID8gaW5fZ3JvdXBfcCsweGE1LzB4ZTAKWyAgOTE4LjA5NTc3 MV0gID8gZ2VuZXJpY19wZXJtaXNzaW9uKzB4NTMvMHgxZTAKWyAgOTE4LjA5NjY2Nl0gID8gc2Vj dXJpdHlfaW5vZGVfcGVybWlzc2lvbisweDFkLzB4NzAKWyAgOTE4LjA5NzY0Nl0gID8gaW5vZGVf cGVybWlzc2lvbisweDdhLzB4MWYwClsgIDkxOC4wOTg0OTddICBsaW5rX3BhdGhfd2FsaysweDJh Mi8weDdiMApbICA5MTguMDk5Mjk4XSAgPyBhcHBhcm1vcl9jYXBnZXQrMHgzZDAvMHgzZDAKWyAg OTE4LjEwMDE0MF0gID8gd2Fsa19jb21wb25lbnQrMHhhNDAvMHhhNDAKWyAgOTE4LjEwMDk1OF0g ID8gcGF0aF9pbml0KzB4MmU2LzB4NTgwClsgIDkxOC4xMDE2OTVdICBwYXRoX29wZW5hdCsweDFi Yi8weDIxNjAKWyAgOTE4LjEwMjQ3MV0gID8gX19zYXZlX3N0YWNrX3RyYWNlKzB4OTIvMHgxMDAK WyAgOTE4LjEwMzM1Ml0gID8gc2F2ZV9zdGFjaysweGI1LzB4ZDAKWyAgOTE4LjEwNDA3MF0gID8g dmZzX3VubGluaysweDI1MC8weDI1MApbICA5MTguMTA0ODIyXSAgPyBzYXZlX3N0YWNrKzB4NDYv MHhkMApbICA5MTguMTA1NTM4XSAgPyBrYXNhbl9zbGFiX2FsbG9jKzB4MTEvMHgyMApbICA5MTgu MTA2MzcwXSAgPyBrbWVtX2NhY2hlX2FsbG9jKzB4ZDEvMHgxZTAKWyAgOTE4LjEwNzIxM10gID8g Z2V0bmFtZV9mbGFncysweDc2LzB4MmMwClsgIDkxOC4xMDc5OTddICA/IGdldG5hbWUrMHgxMi8w eDIwClsgIDkxOC4xMDg2NzddICA/IGRvX3N5c19vcGVuKzB4MTRiLzB4MmMwClsgIDkxOC4xMDk0 NTBdICA/IF9feDY0X3N5c19vcGVuKzB4NGMvMHg2MApbICA5MTguMTEwMjU1XSAgPyBkb19zeXNj YWxsXzY0KzB4NzgvMHgxNzAKWyAgOTE4LjExMTA4M10gID8gZW50cnlfU1lTQ0FMTF82NF9hZnRl cl9od2ZyYW1lKzB4NDQvMHhhOQpbICA5MTguMTEyMTQ4XSAgPyBlbnRyeV9TWVNDQUxMXzY0X2Fm dGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDkxOC4xMTMyMDRdICA/IGYyZnNfZW1wdHlfaW5saW5l X2RpcisweDFlMC8weDFlMApbICA5MTguMTE0MTUwXSAgPyB0aW1lc3BlYzY0X3RydW5jKzB4NWMv MHg5MApbICA5MTguMTE0OTkzXSAgPyB3Yl9pb19saXN0c19kZXBvcHVsYXRlZCsweDFhLzB4YzAK WyAgOTE4LjExNTkzN10gID8gaW5vZGVfaW9fbGlzdF9tb3ZlX2xvY2tlZCsweDEwMi8weDExMApb ICA5MTguMTE2OTQ5XSAgZG9fZmlscF9vcGVuKzB4MTJiLzB4MWQwClsgIDkxOC4xMTc3MDldICA/ IG1heV9vcGVuX2RldisweDUwLzB4NTAKWyAgOTE4LjExODQ3NV0gID8ga2FzYW5fa21hbGxvYysw eGFkLzB4ZTAKWyAgOTE4LjExOTI0Nl0gIGRvX3N5c19vcGVuKzB4MTdjLzB4MmMwClsgIDkxOC4x MTk5ODNdICA/IGRvX3N5c19vcGVuKzB4MTdjLzB4MmMwClsgIDkxOC4xMjA3NTFdICA/IGZpbHBf b3BlbisweDYwLzB4NjAKWyAgOTE4LjEyMTQ2M10gID8gdGFza193b3JrX3J1bisweDRkLzB4ZjAK WyAgOTE4LjEyMjIzN10gIF9feDY0X3N5c19vcGVuKzB4NGMvMHg2MApbICA5MTguMTIzMDAxXSAg ZG9fc3lzY2FsbF82NCsweDc4LzB4MTcwClsgIDkxOC4xMjM3NTldICBlbnRyeV9TWVNDQUxMXzY0 X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDkxOC4xMjQ4MDJdIFJJUDogMDAzMzoweDdmYWM5 NmUzZTA0MApbICA5MTguMTI1NTM3XSBDb2RlOiAwMCBmNyBkOCA2NCA4OSAwMSA0OCA4MyBjOCBm ZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCAwZiAxZiA0NCAwMCAwMCA4MyAzZCAw OSAyNyAyZCAwMCAwMCA3NSAxMCBiOCAwMiAwMCAwMCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZm IGZmIDczIDMxIGMzIDQ4IDgzIGVjIDA4IGU4IDdlIGUwIDAxIDAwIDQ4IDg5IDA0IDI0ClsgIDkx OC4xMjkzNDFdIFJTUDogMDAyYjowMDAwN2ZmZjFiMzdmODQ4IEVGTEFHUzogMDAwMDAyNDYgT1JJ R19SQVg6IDAwMDAwMDAwMDAwMDAwMDIKWyAgOTE4LjEzMDg3MF0gUkFYOiBmZmZmZmZmZmZmZmZm ZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IDAwMDA3ZmFjOTZlM2UwNDAKWyAgOTE4LjEz MjI5NV0gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwMCBSREk6IDAw MDAwMDAwMDEyMmQwODAKWyAgOTE4LjEzMzc0OF0gUkJQOiAwMDAwN2ZmZjFiMzdmOWIwIFIwODog MDAwMDdmYWM5NzEwYmJkOCBSMDk6IDAwMDAwMDAwMDAwMDAwMDEKWyAgOTE4LjEzNTIwOV0gUjEw OiAwMDAwMDAwMDAwMDAwNjlkIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDA0 MDBjMjAKWyAgOTE4LjEzNjY1MF0gUjEzOiAwMDAwN2ZmZjFiMzdmYWIwIFIxNDogMDAwMDAwMDAw MDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKWyAgOTE4LjEzODA5M10gTW9kdWxlcyBsaW5r ZWQgaW46IHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMg c25kX2h3ZGVwIHNuZF9oZGFfY29yZSBzbmRfcGNtIHNuZF90aW1lciBzbmQgbWFjX2hpZCBpMmNf cGlpeDQgc291bmRjb3JlIGliX2lzZXIgcmRtYV9jbSBpd19jbSBpYl9jbSBpYl9jb3JlIGlzY3Np X3RjcCBsaWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90cmFuc3BvcnRfaXNjc2kgcmFpZDEwIHJh aWQ0NTYgYXN5bmNfcmFpZDZfcmVjb3YgYXN5bmNfbWVtY3B5IGFzeW5jX3BxIGFzeW5jX3hvciBh c3luY190eCByYWlkMSByYWlkMCBtdWx0aXBhdGggbGluZWFyIDgxMzl0b28gY3JjdDEwZGlmX3Bj bG11bCBjcmMzMl9wY2xtdWwgcXhsIGRybV9rbXNfaGVscGVyIHN5c2NvcHlhcmVhIGFlc25pX2lu dGVsIHN5c2ZpbGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNfZm9wcyB0dG0gZHJtIGFlc194ODZfNjQg Y3J5cHRvX3NpbWQgY3J5cHRkIDgxMzljcCBnbHVlX2hlbHBlciBtaWkgcGF0YV9hY3BpIGZsb3Bw eQpbICA5MTguMTQ3OTI0XSBDUjI6IGZmZmZlZDAwNDgwMDBkODIKWyAgOTE4LjE0ODYxOV0gLS0t WyBlbmQgdHJhY2UgNGNlMDJmMjVmZjdkM2RmNSBdLS0tClsgIDkxOC4xNDk1NjNdIFJJUDogMDAx MDpjaGVja19tZW1vcnlfcmVnaW9uKzB4NWUvMHgxOTAKWyAgOTE4LjE1MDU3Nl0gQ29kZTogZjgg NDkgYzEgZTggMDMgNDkgODkgZGIgNDkgYzEgZWIgMDMgNGQgMDEgY2IgNGQgMDEgYzEgNGQgOGQg NjMgMDEgNGMgODkgYzggNGQgODkgZTIgNGQgMjkgY2EgNDkgODMgZmEgMTAgN2YgM2QgNGQgODUg ZDIgNzQgMzIgPDQxPiA4MCAzOSAwMCA3NSAyMyA0OCBiOCAwMSAwMCAwMCAwMCAwMCBmYyBmZiBk ZiA0ZCAwMSBkMSA0OSAwMSBjMApbICA5MTguMTU0MzYwXSBSU1A6IDAwMTg6ZmZmZjg4MDFlM2Ex ZjI1OCBFRkxBR1M6IDAwMDEwMjAyClsgIDkxOC4xNTU0MTFdIFJBWDogZmZmZmVkMDA0ODAwMGQ4 MiBSQlg6IGZmZmY4ODAyNDAwMDZjMTEgUkNYOiBmZmZmZmZmZmI4ODY3ZDE0ClsgIDkxOC4xNTY4 MzNdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwMDIgUkRJOiBmZmZm ODgwMjQwMDA2YzEwClsgIDkxOC4xNTgyNTddIFJCUDogZmZmZjg4MDFlM2ExZjI2OCBSMDg6IDFm ZmZmMTAwNDgwMDBkODIgUjA5OiBmZmZmZWQwMDQ4MDAwZDgyClsgIDkxOC4xNTk3MjJdIFIxMDog MDAwMDAwMDAwMDAwMDAwMSBSMTE6IGZmZmZlZDAwNDgwMDBkODIgUjEyOiBmZmZmZWQwMDQ4MDAw ZDgzClsgIDkxOC4xNjExNDldIFIxMzogZmZmZjg4MDFlM2ExZjM5MCBSMTQ6IDAwMDAwMDAwMDAw MDAwMDAgUjE1OiBmZmZmODgwMjQwMDA2YzA4ClsgIDkxOC4xNjI1ODddIEZTOiAgMDAwMDdmYWM5 NzMyYzcwMCgwMDAwKSBHUzpmZmZmODgwMWY2ZTAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAw MDAwMDAKWyAgOTE4LjE2NDIwM10gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAw MDAwMDA4MDA1MDAzMwpbICA5MTguMTY1MzU2XSBDUjI6IGZmZmZlZDAwNDgwMDBkODIgQ1IzOiAw MDAwMDAwMWRmNzdhMDAwIENSNDogMDAwMDAwMDAwMDAwMDZmMAoKUmVwb3J0ZWQtYnk6IFdlbiBY dSA8d2VuLnh1QGdhdGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPHl1Y2hhbzBAaHVh d2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4K W2J3aDogQmFja3BvcnRlZCB0byA0LjE0OiBhZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTog QmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvZjJm cy9pbm9kZS5jIHwgMTggKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9mMmZzL2lub2RlLmMg Yi9mcy9mMmZzL2lub2RlLmMKaW5kZXggOTE3YTZjM2Q1NjQ5Li40MjhkNTAyZjIzZTggMTAwNjQ0 Ci0tLSBhL2ZzL2YyZnMvaW5vZGUuYworKysgYi9mcy9mMmZzL2lub2RlLmMKQEAgLTE4NCw2ICsx ODQsMTUgQEAgc3RhdGljIGJvb2wgc2FuaXR5X2NoZWNrX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5v ZGUpCiB7CiAJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19JX1NCKGlub2RlKTsKIAor CWlmIChmMmZzX2hhc19leHRyYV9hdHRyKGlub2RlKSAmJgorCQkJIWYyZnNfc2JfaGFzX2V4dHJh X2F0dHIoc2JpLT5zYikpIHsKKwkJc2V0X3NiaV9mbGFnKHNiaSwgU0JJX05FRURfRlNDSyk7CisJ CWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fV0FSTklORywKKwkJCSIlczogaW5vZGUgKGlubz0lbHgp IGlzIHdpdGggZXh0cmFfYXR0ciwgIgorCQkJImJ1dCBleHRyYV9hdHRyIGZlYXR1cmUgaXMgb2Zm IiwKKwkJCV9fZnVuY19fLCBpbm9kZS0+aV9pbm8pOworCQlyZXR1cm4gZmFsc2U7CisJfQogCXJl dHVybiB0cnVlOwogfQogCkBAIC0yMzMsNiArMjQyLDExIEBAIHN0YXRpYyBpbnQgZG9fcmVhZF9p bm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCiAJZ2V0X2lubGluZV9pbmZvKGlub2RlLCByaSk7 CiAKKwlpZiAoIXNhbml0eV9jaGVja19pbm9kZShpbm9kZSkpIHsKKwkJZjJmc19wdXRfcGFnZShu b2RlX3BhZ2UsIDEpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlmaS0+aV9leHRyYV9pc2l6 ZSA9IGYyZnNfaGFzX2V4dHJhX2F0dHIoaW5vZGUpID8KIAkJCQkJbGUxNl90b19jcHUocmktPmlf ZXh0cmFfaXNpemUpIDogMDsKIApAQCAtMjg4LDEwICszMDIsNiBAQCBzdHJ1Y3QgaW5vZGUgKmYy ZnNfaWdldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1bnNpZ25lZCBsb25nIGlubykKIAlyZXQg PSBkb19yZWFkX2lub2RlKGlub2RlKTsKIAlpZiAocmV0KQogCQlnb3RvIGJhZF9pbm9kZTsKLQlp ZiAoIXNhbml0eV9jaGVja19pbm9kZShpbm9kZSkpIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290 byBiYWRfaW5vZGU7Ci0JfQogbWFrZV9ub3c6CiAJaWYgKGlubyA9PSBGMkZTX05PREVfSU5PKHNi aSkpIHsKIAkJaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZjJmc19ub2RlX2FvcHM7Ci0tIApC ZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAgICAg Q29kZXRoaW5rIEx0ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAgICAg ICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0cmVldAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTWFuY2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gZjg1NzJj YjdmZmQzMTgyYmNmZmExZTdiMTYwOTQ2YTBjZThjMzk1YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpEYXRlOiBXZWQsIDI3IEp1biAy MDE4IDE4OjA1OjU0ICswODAwClN1YmplY3Q6IFtQQVRDSCA0MC80Nl0gZjJmczogZml4IHRvIGRv IHNhbml0eSBjaGVjayB3aXRoIHVzZXJfYmxvY2tfY291bnQKCmNvbW1pdCA5ZGM5NTZiMmM4NTIz YWVkMzlkMWU2NTA4NDM4YmU5ZmVhMjhjOGZjIHVwc3RyZWFtLgoKVGhpcyBwYXRjaCBmaXhzIHRv IGRvIHNhbml0eSBjaGVjayB3aXRoIHVzZXJfYmxvY2tfY291bnQuCgotIE92ZXJ2aWV3CkRpdmlk ZSB6ZXJvIGluIHV0aWxpemF0aW9uIHdoZW4gbW91bnQoKSBhIGNvcnJ1cHRlZCBmMmZzIGltYWdl CgotIFJlcHJvZHVjZSAoNC4xOCB1cHN0cmVhbSBrZXJuZWwpCgotIEtlcm5lbCBtZXNzYWdlClsg IDU2NC4wOTk1MDNdIEYyRlMtZnMgKGxvb3AwKTogaW52YWxpZCBjcmMgdmFsdWUKWyAgNTY0LjEw MTk5MV0gZGl2aWRlIGVycm9yOiAwMDAwIFsjMV0gU01QIEtBU0FOIFBUSQpbICA1NjQuMTAzMTAz XSBDUFU6IDEgUElEOiAxMjk4IENvbW06IGYyZnNfZGlzY2FyZC03OiBOb3QgdGFpbnRlZCA0LjE4 LjAtcmMxKyAjNApbICA1NjQuMTA0NTg0XSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBD IChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEv MjAxNApbICA1NjQuMTA2NjI0XSBSSVA6IDAwMTA6aXNzdWVfZGlzY2FyZF90aHJlYWQrMHgyNDgv MHg1YzAKWyAgNTY0LjEwNzY5Ml0gQ29kZTogZmYgZmYgNDggOGIgYmQgZTggZmUgZmYgZmYgNDEg OGIgOWQgNGMgMDQgMDAgMDAgZTggY2QgYjggYWQgZmYgNDEgOGIgODUgNTAgMDQgMDAgMDAgMzEg ZDIgNDggOGQgMDQgODAgNDggOGQgMDQgODAgNDggYzEgZTAgMDIgPDQ4PiBmNyBmMyA4MyBmOCA1 MCA3ZSAxNiA0MSBjNyA4NiA3YyBmZiBmZiBmZiAwMSAwMCAwMCAwMCA0MSBjNyA4NgpbICA1NjQu MTExNjg2XSBSU1A6IDAwMTg6ZmZmZjg4MDFmMzExN2RjMCBFRkxBR1M6IDAwMDEwMjA2ClsgIDU2 NC4xMTI3NzVdIFJBWDogMDAwMDAwMDAwMDAwMDM4NCBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNY OiBmZmZmZmZmZmI4OGMxZTAzClsgIDU2NC4xMTQyNTBdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBS U0k6IGRmZmZmYzAwMDAwMDAwMDAgUkRJOiBmZmZmODgwMWUzYWE0ODUwClsgIDU2NC4xMTU3MDZd IFJCUDogZmZmZjg4MDFmMzExN2YwMCBSMDg6IDFmZmZmZmZmZjc1MWExZDAgUjA5OiBmZmZmZmJm ZmY3NTFhMWQwClsgIDU2NC4xMTcxNzddIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBSMTE6IGZmZmZm YmZmZjc1MWExZDAgUjEyOiAwMDAwMDAwMGZmZmZmZmZjClsgIDU2NC4xMTg2MzRdIFIxMzogZmZm Zjg4MDFlM2FhNDQwMCBSMTQ6IGZmZmY4ODAxZjMxMTdlZDggUjE1OiBmZmZmODgwMWUyMDUwMDAw ClsgIDU2NC4xMjAwOTRdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgwMWY2 ZjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgNTY0LjEyMTc0OF0gQ1M6ICAw MDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICA1NjQuMTIyOTIz XSBDUjI6IDAwMDAwMDAwMDIwMmIwNzggQ1IzOiAwMDAwMDAwMWYxMWFjMDAwIENSNDogMDAwMDAw MDAwMDAwMDZlMApbICA1NjQuMTI0MzgzXSBDYWxsIFRyYWNlOgpbICA1NjQuMTI0OTI0XSAgPyBf X2lzc3VlX2Rpc2NhcmRfY21kKzB4NDgwLzB4NDgwClsgIDU2NC4xMjU4ODJdICA/IF9fc2NoZWRf dGV4dF9zdGFydCsweDgvMHg4ClsgIDU2NC4xMjY3NTZdICA/IF9fa3RocmVhZF9wYXJrbWUrMHhj Yi8weDEwMApbICA1NjQuMTI3NjIwXSAgPyBrdGhyZWFkX2Jsa2NnKzB4NzAvMHg3MApbICA1NjQu MTI4NDEyXSAga3RocmVhZCsweDE4MC8weDFkMApbICA1NjQuMTI5MTA1XSAgPyBfX2lzc3VlX2Rp c2NhcmRfY21kKzB4NDgwLzB4NDgwClsgIDU2NC4xMzAwMjldICA/IGt0aHJlYWRfYXNzb2NpYXRl X2Jsa2NnKzB4MTUwLzB4MTUwClsgIDU2NC4xMzEwMzNdICByZXRfZnJvbV9mb3JrKzB4MzUvMHg0 MApbICA1NjQuMTMxNzk0XSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2RlY19nZW5lcmlj IHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb2RlYyBzbmRfaHdkZXAgc25kX2hkYV9jb3JlIHNuZF9w Y20gc25kX3RpbWVyIHNuZCBtYWNfaGlkIGkyY19waWl4NCBzb3VuZGNvcmUgaWJfaXNlciByZG1h X2NtIGl3X2NtIGliX2NtIGliX2NvcmUgaXNjc2lfdGNwIGxpYmlzY3NpX3RjcCBsaWJpc2NzaSBz Y3NpX3RyYW5zcG9ydF9pc2NzaSByYWlkMTAgcmFpZDQ1NiBhc3luY19yYWlkNl9yZWNvdiBhc3lu Y19tZW1jcHkgYXN5bmNfcHEgYXN5bmNfeG9yIGFzeW5jX3R4IHJhaWQxIHJhaWQwIG11bHRpcGF0 aCBsaW5lYXIgODEzOXRvbyBjcmN0MTBkaWZfcGNsbXVsIGNyYzMyX3BjbG11bCBxeGwgZHJtX2tt c19oZWxwZXIgc3lzY29weWFyZWEgYWVzbmlfaW50ZWwgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZi X3N5c19mb3BzIHR0bSBkcm0gYWVzX3g4Nl82NCBjcnlwdG9fc2ltZCBjcnlwdGQgODEzOWNwIGds dWVfaGVscGVyIG1paSBwYXRhX2FjcGkgZmxvcHB5ClsgIDU2NC4xNDE3OThdIC0tLVsgZW5kIHRy YWNlIDRjZTAyZjI1ZmY3ZDNkZjUgXS0tLQpbICA1NjQuMTQyNzczXSBSSVA6IDAwMTA6aXNzdWVf ZGlzY2FyZF90aHJlYWQrMHgyNDgvMHg1YzAKWyAgNTY0LjE0Mzg4NV0gQ29kZTogZmYgZmYgNDgg OGIgYmQgZTggZmUgZmYgZmYgNDEgOGIgOWQgNGMgMDQgMDAgMDAgZTggY2QgYjggYWQgZmYgNDEg OGIgODUgNTAgMDQgMDAgMDAgMzEgZDIgNDggOGQgMDQgODAgNDggOGQgMDQgODAgNDggYzEgZTAg MDIgPDQ4PiBmNyBmMyA4MyBmOCA1MCA3ZSAxNiA0MSBjNyA4NiA3YyBmZiBmZiBmZiAwMSAwMCAw MCAwMCA0MSBjNyA4NgpbICA1NjQuMTQ3Nzc2XSBSU1A6IDAwMTg6ZmZmZjg4MDFmMzExN2RjMCBF RkxBR1M6IDAwMDEwMjA2ClsgIDU2NC4xNDg4NTZdIFJBWDogMDAwMDAwMDAwMDAwMDM4NCBSQlg6 IDAwMDAwMDAwMDAwMDAwMDAgUkNYOiBmZmZmZmZmZmI4OGMxZTAzClsgIDU2NC4xNTA0MjRdIFJE WDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IGRmZmZmYzAwMDAwMDAwMDAgUkRJOiBmZmZmODgwMWUz YWE0ODUwClsgIDU2NC4xNTE5MDZdIFJCUDogZmZmZjg4MDFmMzExN2YwMCBSMDg6IDFmZmZmZmZm Zjc1MWExZDAgUjA5OiBmZmZmZmJmZmY3NTFhMWQwClsgIDU2NC4xNTM0NjNdIFIxMDogMDAwMDAw MDAwMDAwMDAwMSBSMTE6IGZmZmZmYmZmZjc1MWExZDAgUjEyOiAwMDAwMDAwMGZmZmZmZmZjClsg IDU2NC4xNTQ5MTVdIFIxMzogZmZmZjg4MDFlM2FhNDQwMCBSMTQ6IGZmZmY4ODAxZjMxMTdlZDgg UjE1OiBmZmZmODgwMWUyMDUwMDAwClsgIDU2NC4xNTY0MDVdIEZTOiAgMDAwMDAwMDAwMDAwMDAw MCgwMDAwKSBHUzpmZmZmODgwMWY2ZjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAK WyAgNTY0LjE1ODA3MF0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4 MDA1MDAzMwpbICA1NjQuMTU5Mjc5XSBDUjI6IDAwMDAwMDAwMDIwMmIwNzggQ1IzOiAwMDAwMDAw MWYxMWFjMDAwIENSNDogMDAwMDAwMDAwMDAwMDZlMApbICA1NjQuMTYxMDQzXSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K WyAgNTY0LjE2MjU4N10gQlVHOiBLQVNBTjogc3RhY2stb3V0LW9mLWJvdW5kcyBpbiBmcm9tX2t1 aWRfbXVuZ2VkKzB4MWQvMHg1MApbICA1NjQuMTYzOTk0XSBSZWFkIG9mIHNpemUgNCBhdCBhZGRy IGZmZmY4ODAxZjMxMTdjODQgYnkgdGFzayBmMmZzX2Rpc2NhcmQtNzovMTI5OAoKWyAgNTY0LjE2 NTg1Ml0gQ1BVOiAxIFBJRDogMTI5OCBDb21tOiBmMmZzX2Rpc2NhcmQtNzogVGFpbnRlZDogRyAg ICAgIEQgICAgICAgICAgIDQuMTguMC1yYzErICM0ClsgIDU2NC4xNjc1OTNdIEhhcmR3YXJlIG5h bWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0x LjguMi0xdWJ1bnR1MSAwNC8wMS8yMDE0ClsgIDU2NC4xNjk1MjJdIENhbGwgVHJhY2U6ClsgIDU2 NC4xNzAwNTddICBkdW1wX3N0YWNrKzB4N2IvMHhiNQpbICA1NjQuMTcwNzc4XSAgcHJpbnRfYWRk cmVzc19kZXNjcmlwdGlvbisweDcwLzB4MjkwClsgIDU2NC4xNzE3NjVdICBrYXNhbl9yZXBvcnQr MHgyOTEvMHgzOTAKWyAgNTY0LjE3MjU0MF0gID8gZnJvbV9rdWlkX211bmdlZCsweDFkLzB4NTAK WyAgNTY0LjE3MzQwOF0gIF9fYXNhbl9sb2FkNCsweDc4LzB4ODAKWyAgNTY0LjE3NDE0OF0gIGZy b21fa3VpZF9tdW5nZWQrMHgxZC8weDUwClsgIDU2NC4xNzQ5NjJdICBkb19ub3RpZnlfcGFyZW50 KzB4MWY1LzB4NGYwClsgIDU2NC4xNzU4MDhdICA/IHNlbmRfc2lncXVldWUrMHgzOTAvMHgzOTAK WyAgNTY0LjE3NjYzOV0gID8gY3NzX3NldF9tb3ZlX3Rhc2srMHgxNTIvMHgzNDAKWyAgNTY0LjE4 NDE5N10gIGRvX2V4aXQrMHgxMjkwLzB4MTM5MApbICA1NjQuMTg0OTUwXSAgPyBfX2lzc3VlX2Rp c2NhcmRfY21kKzB4NDgwLzB4NDgwClsgIDU2NC4xODU4ODRdICA/IG1tX3VwZGF0ZV9uZXh0X293 bmVyKzB4MzgwLzB4MzgwClsgIDU2NC4xODY4MjldICA/IF9fc2NoZWRfdGV4dF9zdGFydCsweDgv MHg4ClsgIDU2NC4xODc2NzJdICA/IF9fa3RocmVhZF9wYXJrbWUrMHhjYi8weDEwMApbICA1NjQu MTg4NTI4XSAgPyBrdGhyZWFkX2Jsa2NnKzB4NzAvMHg3MApbICA1NjQuMTg5MzMzXSAgPyBrdGhy ZWFkKzB4MTgwLzB4MWQwClsgIDU2NC4xOTAwNTJdICA/IF9faXNzdWVfZGlzY2FyZF9jbWQrMHg0 ODAvMHg0ODAKWyAgNTY0LjE5MDk4M10gIHJld2luZF9zdGFja19kb19leGl0KzB4MTcvMHgyMAoK WyAgNTY0LjE5MjE5MF0gVGhlIGJ1Z2d5IGFkZHJlc3MgYmVsb25ncyB0byB0aGUgcGFnZToKWyAg NTY0LjE5MzIxM10gcGFnZTpmZmZmZWEwMDA3Y2M0NWMwIGNvdW50OjAgbWFwY291bnQ6MCBtYXBw aW5nOjAwMDAwMDAwMDAwMDAwMDAgaW5kZXg6MHgwClsgIDU2NC4xOTQ4NTZdIGZsYWdzOiAweDJm ZmZmMDAwMDAwMDAwMCgpClsgIDU2NC4xOTU2NDRdIHJhdzogMDJmZmZmMDAwMDAwMDAwMCAwMDAw MDAwMDAwMDAwMDAwIGRlYWQwMDAwMDAwMDAyMDAgMDAwMDAwMDAwMDAwMDAwMApbICA1NjQuMTk3 MjQ3XSByYXc6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMGZmZmZm ZmZmIDAwMDAwMDAwMDAwMDAwMDAKWyAgNTY0LjE5ODgyNl0gcGFnZSBkdW1wZWQgYmVjYXVzZTog a2FzYW46IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQKClsgIDU2NC4yMDAyOTldIE1lbW9yeSBzdGF0ZSBh cm91bmQgdGhlIGJ1Z2d5IGFkZHJlc3M6ClsgIDU2NC4yMDEzMDZdICBmZmZmODgwMWYzMTE3Yjgw OiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMApbICA1NjQu MjAyNzc5XSAgZmZmZjg4MDFmMzExN2MwMDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgZjMgZjMgZjMgZjMgZjMKWyAgNTY0LjIwNDI1Ml0gPmZmZmY4ODAxZjMxMTdjODA6IGYzIGYz IGYzIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGYxIGYxIGYxIGYxClsgIDU2NC4yMDU3NDJd ICAgICAgICAgICAgICAgICAgICBeClsgIDU2NC4yMDY0MjRdICBmZmZmODgwMWYzMTE3ZDAwOiAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMApbICA1NjQuMjA3 OTA4XSAgZmZmZjg4MDFmMzExN2Q4MDogZjMgZjMgZjMgZjMgZjMgZjMgZjMgZjMgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAKWyAgNTY0LjIwOTM4OV0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgIDU2NC4yMzE3OTVdIEYy RlMtZnMgKGxvb3AwKTogTW91bnRlZCB3aXRoIGNoZWNrcG9pbnQgdmVyc2lvbiA9IDIKCi0gTG9j YXRpb24KaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgvdjQuMTgtcmMxL3NvdXJjZS9m cy9mMmZzL3NlZ21lbnQuaCNMNTg2CglyZXR1cm4gZGl2X3U2NCgodTY0KXZhbGlkX3VzZXJfYmxv Y2tzKHNiaSkgKiAxMDAsCgkJCQkJc2JpLT51c2VyX2Jsb2NrX2NvdW50KTsKTWlzc2luZyBjaGVj a3Mgb24gc2JpLT51c2VyX2Jsb2NrX2NvdW50LgoKUmVwb3J0ZWQtYnk6IFdlbiBYdSA8d2VuLnh1 QGdhdGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNvbT4K U2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9yZz4KU2lnbmVkLW9m Zi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQog ZnMvZjJmcy9zdXBlci5jIHwgMTMgKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDEyIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9mcy9mMmZzL3N1cGVyLmMg Yi9mcy9mMmZzL3N1cGVyLmMKaW5kZXggMDg0ZmY5YzgyYTM3Li45ZmFmYjE0MDRmMzkgMTAwNjQ0 Ci0tLSBhL2ZzL2YyZnMvc3VwZXIuYworKysgYi9mcy9mMmZzL3N1cGVyLmMKQEAgLTE5NTYsNiAr MTk1Niw4IEBAIGludCBzYW5pdHlfY2hlY2tfY2twdChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkp CiAJdW5zaWduZWQgaW50IHNpdF9zZWdzLCBuYXRfc2VnczsKIAl1bnNpZ25lZCBpbnQgc2l0X2Jp dG1hcF9zaXplLCBuYXRfYml0bWFwX3NpemU7CiAJdW5zaWduZWQgaW50IGxvZ19ibG9ja3NfcGVy X3NlZzsKKwl1bnNpZ25lZCBpbnQgc2VnbWVudF9jb3VudF9tYWluOworCWJsb2NrX3QgdXNlcl9i bG9ja19jb3VudDsKIAlpbnQgaTsKIAogCXRvdGFsID0gbGUzMl90b19jcHUocmF3X3N1cGVyLT5z ZWdtZW50X2NvdW50KTsKQEAgLTE5ODAsNiArMTk4MiwxNiBAQCBpbnQgc2FuaXR5X2NoZWNrX2Nr cHQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCQlyZXR1cm4gMTsKIAl9CiAKKwl1c2VyX2Js b2NrX2NvdW50ID0gbGU2NF90b19jcHUoY2twdC0+dXNlcl9ibG9ja19jb3VudCk7CisJc2VnbWVu dF9jb3VudF9tYWluID0gbGUzMl90b19jcHUocmF3X3N1cGVyLT5zZWdtZW50X2NvdW50X21haW4p OworCWxvZ19ibG9ja3NfcGVyX3NlZyA9IGxlMzJfdG9fY3B1KHJhd19zdXBlci0+bG9nX2Jsb2Nr c19wZXJfc2VnKTsKKwlpZiAoIXVzZXJfYmxvY2tfY291bnQgfHwgdXNlcl9ibG9ja19jb3VudCA+ PQorCQkJc2VnbWVudF9jb3VudF9tYWluIDw8IGxvZ19ibG9ja3NfcGVyX3NlZykgeworCQlmMmZz X21zZyhzYmktPnNiLCBLRVJOX0VSUiwKKwkJCSJXcm9uZyB1c2VyX2Jsb2NrX2NvdW50OiAldSIs IHVzZXJfYmxvY2tfY291bnQpOworCQlyZXR1cm4gMTsKKwl9CisKIAltYWluX3NlZ3MgPSBsZTMy X3RvX2NwdShyYXdfc3VwZXItPnNlZ21lbnRfY291bnRfbWFpbik7CiAJYmxvY2tzX3Blcl9zZWcg PSBzYmktPmJsb2Nrc19wZXJfc2VnOwogCkBAIC0xOTk2LDcgKzIwMDgsNiBAQCBpbnQgc2FuaXR5 X2NoZWNrX2NrcHQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQogCiAJc2l0X2JpdG1hcF9zaXpl ID0gbGUzMl90b19jcHUoY2twdC0+c2l0X3Zlcl9iaXRtYXBfYnl0ZXNpemUpOwogCW5hdF9iaXRt YXBfc2l6ZSA9IGxlMzJfdG9fY3B1KGNrcHQtPm5hdF92ZXJfYml0bWFwX2J5dGVzaXplKTsKLQls b2dfYmxvY2tzX3Blcl9zZWcgPSBsZTMyX3RvX2NwdShyYXdfc3VwZXItPmxvZ19ibG9ja3NfcGVy X3NlZyk7CiAKIAlpZiAoc2l0X2JpdG1hcF9zaXplICE9ICgoc2l0X3NlZ3MgLyAyKSA8PCBsb2df YmxvY2tzX3Blcl9zZWcpIC8gOCB8fAogCQluYXRfYml0bWFwX3NpemUgIT0gKChuYXRfc2VncyAv IDIpIDw8IGxvZ19ibG9ja3NfcGVyX3NlZykgLyA4KSB7Ci0tIApCZW4gSHV0Y2hpbmdzLCBTb2Z0 d2FyZSBEZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApodHRw czovL3d3dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAzNSBE YWxlIFN0cmVldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hlc3Rl ciwgTTEgMkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gMmUxNmEyZWZiNTAzZDc2NWZkNjVhNTdh NDU1YWQ0ZTFhNWU1OWMwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hhbyBZdSA8 eXVjaGFvMEBodWF3ZWkuY29tPgpEYXRlOiBGcmksIDI5IEp1biAyMDE4IDEzOjU1OjIyICswODAw ClN1YmplY3Q6IFtQQVRDSCA0MS80Nl0gZjJmczogZml4IHRvIGRvIHNhbml0eSBjaGVjayB3aXRo IG5vZGUgZm9vdGVyIGFuZAogaWJsb2NrcwoKY29tbWl0IGUzNDQzOGM5MDNiNjUzZGFjYTJiMmE3 ZGU5NWFlZDQ2MjI2ZjhlZDMgdXBzdHJlYW0uCgpUaGlzIHBhdGNoIGFkZHMgdG8gZG8gc2FuaXR5 IGNoZWNrIHdpdGggYmVsb3cgZmllbGRzIG9mIGlub2RlIHRvCmF2b2lkIHJlcG9ydGVkIHBhbmlj LgotIG5vZGUgZm9vdGVyCi0gaWJsb2NrcwoKaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3No b3dfYnVnLmNnaT9pZD0yMDAyMjMKCi0gT3ZlcnZpZXcKQlVHKCkgdHJpZ2dlcmVkIGluIGYyZnNf dHJ1bmNhdGVfaW5vZGVfYmxvY2tzKCkgd2hlbiB1bi1tb3VudGluZyBhIG1vdW50ZWQgZjJmcyBp bWFnZSBhZnRlciB3cml0aW5nIHRvIGl0CgotIFJlcHJvZHVjZQoKLSBQT0MgKHBvYy5jKQoKc3Rh dGljIHZvaWQgYWN0aXZpdHkoY2hhciAqbXBvaW50KSB7CgogIGNoYXIgKmZvb19iYXJfYmF6Owog IGludCBlcnI7CgogIHN0YXRpYyBpbnQgYnVmWzgxOTJdOwogIG1lbXNldChidWYsIDAsIHNpemVv ZihidWYpKTsKCiAgZXJyID0gYXNwcmludGYoJmZvb19iYXJfYmF6LCAiJXMvZm9vL2Jhci9iYXoi LCBtcG9pbnQpOwoKICAvLyBvcGVuIC8gd3JpdGUgLyByZWFkCiAgaW50IGZkID0gb3Blbihmb29f YmFyX2JheiwgT19SRFdSIHwgT19UUlVOQywgMDc3Nyk7CiAgaWYgKGZkID49IDApIHsKICAgIHdy aXRlKGZkLCAoY2hhciAqKWJ1ZiwgNTE3KTsKICAgIHdyaXRlKGZkLCAoY2hhciAqKWJ1Ziwgc2l6 ZW9mKGJ1ZikpOwogICAgY2xvc2UoZmQpOwogIH0KCn0KCmludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pIHsKICBhY3Rpdml0eShhcmd2WzFdKTsKICByZXR1cm4gMDsKfQoKLSBLZXJuZWwg bWVlc2FnZQpbICA1NTIuNDc5NzIzXSBGMkZTLWZzIChsb29wMCk6IE1vdW50ZWQgd2l0aCBjaGVj a3BvaW50IHZlcnNpb24gPSAyClsgIDU1Ni40NTE4OTFdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUg XS0tLS0tLS0tLS0tLQpbICA1NTYuNDUxODk5XSBrZXJuZWwgQlVHIGF0IGZzL2YyZnMvbm9kZS5j Ojk4NyEKWyAgNTU2LjQ1MjkyMF0gaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBTTVAgS0FTQU4g UFRJClsgIDU1Ni40NTM5MzZdIENQVTogMSBQSUQ6IDEzMTAgQ29tbTogdW1vdW50IE5vdCB0YWlu dGVkIDQuMTguMC1yYzErICM0ClsgIDU1Ni40NTUyMTNdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3Rh bmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0xLjguMi0xdWJ1bnR1 MSAwNC8wMS8yMDE0ClsgIDU1Ni40NTcxNDBdIFJJUDogMDAxMDpmMmZzX3RydW5jYXRlX2lub2Rl X2Jsb2NrcysweDRhNy8weDZmMApbICA1NTYuNDU4MjgwXSBDb2RlOiBlOCBhZSBlYSBmZiBmZiA0 MSA4OSBjNyBjMSBlOCAxZiA4NCBjMCA3NCAwYSA0MSA4MyBmZiBmZSAwZiA4NSAzNSBmZiBmZiBm ZiA4MSA4NSBiMCBmZSBmZiBmZiBmYiAwMyAwMCAwMCBlOSBmNyBmZCBmZiBmZiAwZiAwYiA8MGY+ IDBiIGU4IDYyIGI3IDlhIDAwIDQ4IDhiIGJkIGEwIGZlIGZmIGZmIGU4IDU2IDU0IGFlIGZmIDQ4 IDhiIGI1ClsgIDU1Ni40NjIwMTVdIFJTUDogMDAxODpmZmZmODgwMWYyOTJmODA4IEVGTEFHUzog MDAwMTAyODYKWyAgNTU2LjQ2MzA2OF0gUkFYOiBmZmZmZWQwMDNlNzMyNDJkIFJCWDogZmZmZjg4 MDFmMjkyZjk1OCBSQ1g6IGZmZmZmZmZmYjg4YjgxYmMKWyAgNTU2LjQ2NDQ3OV0gUkRYOiAwMDAw MDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwNCBSREk6IGZmZmY4ODAxZjM5OTIxNjQK WyAgNTU2LjQ2NTkwMV0gUkJQOiBmZmZmODgwMWYyOTJmOTgwIFIwODogZmZmZmVkMDAzZTczMjQy ZCBSMDk6IGZmZmZlZDAwM2U3MzI0MmQKWyAgNTU2LjQ2NzMxMV0gUjEwOiAwMDAwMDAwMDAwMDAw MDAxIFIxMTogZmZmZmVkMDAzZTczMjQyYyBSMTI6IDAwMDAwMDAwZmZmZmZjNjQKWyAgNTU2LjQ2 ODcwNl0gUjEzOiBmZmZmODgwMWYzOTkyMDAwIFIxNDogMDAwMDAwMDAwMDAwMDA1OCBSMTU6IDAw MDAwMDAwZmZmZjg4MDEKWyAgNTU2LjQ3MDExN10gRlM6ICAwMDAwN2Y4MDI5Mjk3ODQwKDAwMDAp IEdTOmZmZmY4ODAxZjZmMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA1NTYu NDcxNzAyXSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMz ClsgIDU1Ni40NzI4MzhdIENSMjogMDAwMDU1ZjVmNTczMDVkOCBDUjM6IDAwMDAwMDAxZjE4YjAw MDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmUwClsgIDU1Ni40NzQyNjVdIENhbGwgVHJhY2U6ClsgIDU1 Ni40NzQ3ODJdICA/IGYyZnNfYWxsb2NfbmlkX2ZhaWxlZCsweGYwLzB4ZjAKWyAgNTU2LjQ3NTY4 Nl0gID8gdHJ1bmNhdGVfbm9kZXMrMHg5ODAvMHg5ODAKWyAgNTU2LjQ3NjUxNl0gID8gcGFnZWNh Y2hlX2dldF9wYWdlKzB4MjFmLzB4MmYwClsgIDU1Ni40Nzc0MTJdICA/IF9fYXNhbl9sb2FkTisw eGYvMHgyMApbICA1NTYuNDc4MTUzXSAgPyBfX2dldF9ub2RlX3BhZ2UrMHgzMzEvMHg1YjAKWyAg NTU2LjQ3ODk5Ml0gID8gcmV3ZWlnaHRfZW50aXR5KzB4MWU2LzB4M2IwClsgIDU1Ni40Nzk4MjZd ICBmMmZzX3RydW5jYXRlX2Jsb2NrcysweDU1ZS8weDc0MApbICA1NTYuNDgwNzA5XSAgPyBmMmZz X3RydW5jYXRlX2RhdGFfYmxvY2tzKzB4MjAvMHgyMApbICA1NTYuNDgxNjg5XSAgPyBfX3JhZGl4 X3RyZWVfbG9va3VwKzB4MzQvMHgxNjAKWyAgNTU2LjQ4MjYzMF0gID8gcmFkaXhfdHJlZV9sb29r dXArMHhkLzB4MTAKWyAgNTU2LjQ4MzQ0NV0gIGYyZnNfdHJ1bmNhdGUrMHhkNC8weDFhMApbICA1 NTYuNDg0MjA2XSAgZjJmc19ldmljdF9pbm9kZSsweDVjZS8weDYzMApbICA1NTYuNDg1MDMyXSAg ZXZpY3QrMHgxNmYvMHgyOTAKWyAgNTU2LjQ4NTY2NF0gIGlwdXQrMHgyODAvMHgzMDAKWyAgNTU2 LjQ4NjMwMF0gIGRlbnRyeV91bmxpbmtfaW5vZGUrMHgxNjUvMHgxZTAKWyAgNTU2LjQ4NzE2OV0g IF9fZGVudHJ5X2tpbGwrMHgxNmEvMHgyNjAKWyAgNTU2LjQ4NzkzNl0gIGRlbnRyeV9raWxsKzB4 NzAvMHgyNTAKWyAgNTU2LjQ4ODY1MV0gIHNocmlua19kZW50cnlfbGlzdCsweDEyNS8weDI2MApb ICA1NTYuNDg5NTA0XSAgc2hyaW5rX2RjYWNoZV9wYXJlbnQrMHhjMS8weDExMApbICA1NTYuNDkw Mzc5XSAgPyBzaHJpbmtfZGNhY2hlX3NiKzB4MjAwLzB4MjAwClsgIDU1Ni40OTEyMzFdICA/IGJp dF93YWl0X3RpbWVvdXQrMHhjMC8weGMwClsgIDU1Ni40OTIwNDddICBkb19vbmVfdHJlZSsweDEy LzB4NDAKWyAgNTU2LjQ5Mjc0M10gIHNocmlua19kY2FjaGVfZm9yX3Vtb3VudCsweDNmLzB4YTAK WyAgNTU2LjQ5MzY1Nl0gIGdlbmVyaWNfc2h1dGRvd25fc3VwZXIrMHg0My8weDFjMApbICA1NTYu NDk0NTYxXSAga2lsbF9ibG9ja19zdXBlcisweDUyLzB4ODAKWyAgNTU2LjQ5NTM0MV0gIGtpbGxf ZjJmc19zdXBlcisweDYyLzB4NzAKWyAgNTU2LjQ5NjEwNV0gIGRlYWN0aXZhdGVfbG9ja2VkX3N1 cGVyKzB4NmYvMHhhMApbICA1NTYuNDk3MDA0XSAgZGVhY3RpdmF0ZV9zdXBlcisweDVlLzB4ODAK WyAgNTU2LjQ5Nzc4NV0gIGNsZWFudXBfbW50KzB4NjEvMHhhMApbICA1NTYuNDk4NDkyXSAgX19j bGVhbnVwX21udCsweDEyLzB4MjAKWyAgNTU2LjQ5OTIxOF0gIHRhc2tfd29ya19ydW4rMHhjOC8w eGYwClsgIDU1Ni40OTk5NDldICBleGl0X3RvX3VzZXJtb2RlX2xvb3ArMHgxMjUvMHgxMzAKWyAg NTU2LjUwMDg0Nl0gIGRvX3N5c2NhbGxfNjQrMHgxMzgvMHgxNzAKWyAgNTU2LjUwMTYwOV0gIGVu dHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKWyAgNTU2LjUwMjY1OV0gUklQ OiAwMDMzOjB4N2Y4MDI4Yjc3NDg3ClsgIDU1Ni41MDMzODRdIENvZGU6IDgzIGM4IGZmIGMzIDY2 IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDBmIDFmIDQ0IDAwIDAwIDMxIGY2IGU5IDA5IDAw IDAwIDAwIDY2IDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIGI4IGE2IDAwIDAwIDAwIDBmIDA1IDw0 OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDggOGIgMGQgZTEgYzkgMmIgMDAgZjcgZDggNjQg ODkgMDEgNDgKWyAgNTU2LjUwNzEzN10gUlNQOiAwMDJiOjAwMDA3ZmZmOWYyZTM1OTggRUZMQUdT OiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDBhNgpbICA1NTYuNTA4NjM3XSBSQVg6 IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiAwMDAwMDAwMDAwZWJkMDMwIFJDWDogMDAwMDdmODAyOGI3 NzQ4NwpbICA1NTYuNTEwMDY5XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDEgUlNJOiAwMDAwMDAwMDAw MDAwMDAwIFJESTogMDAwMDAwMDAwMGVjNDFlMApbICA1NTYuNTExNDgxXSBSQlA6IDAwMDAwMDAw MDBlYzQxZTAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAxNApbICA1 NTYuNTEyODkyXSBSMTA6IDAwMDAwMDAwMDAwMDA2YjIgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIx MjogMDAwMDdmODAyOTA4MDgzYwpbICA1NTYuNTE0MzIwXSBSMTM6IDAwMDAwMDAwMDAwMDAwMDAg UjE0OiAwMDAwMDAwMDAwZWJkMjEwIFIxNTogMDAwMDdmZmY5ZjJlMzgyMApbICA1NTYuNTE1NzQ1 XSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFfaW50ZWwg c25kX2hkYV9jb2RlYyBzbmRfaHdkZXAgc25kX2hkYV9jb3JlIHNuZF9wY20gc25kX3RpbWVyIHNu ZCBtYWNfaGlkIGkyY19waWl4NCBzb3VuZGNvcmUgaWJfaXNlciByZG1hX2NtIGl3X2NtIGliX2Nt IGliX2NvcmUgaXNjc2lfdGNwIGxpYmlzY3NpX3RjcCBsaWJpc2NzaSBzY3NpX3RyYW5zcG9ydF9p c2NzaSByYWlkMTAgcmFpZDQ1NiBhc3luY19yYWlkNl9yZWNvdiBhc3luY19tZW1jcHkgYXN5bmNf cHEgYXN5bmNfeG9yIGFzeW5jX3R4IHJhaWQxIHJhaWQwIG11bHRpcGF0aCBsaW5lYXIgODEzOXRv byBjcmN0MTBkaWZfcGNsbXVsIGNyYzMyX3BjbG11bCBxeGwgZHJtX2ttc19oZWxwZXIgc3lzY29w eWFyZWEgYWVzbmlfaW50ZWwgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZiX3N5c19mb3BzIHR0bSBk cm0gYWVzX3g4Nl82NCBjcnlwdG9fc2ltZCBjcnlwdGQgODEzOWNwIGdsdWVfaGVscGVyIG1paSBw YXRhX2FjcGkgZmxvcHB5ClsgIDU1Ni41MjkyNzZdIC0tLVsgZW5kIHRyYWNlIDRjZTAyZjI1ZmY3 ZDNkZjUgXS0tLQpbICA1NTYuNTMwMzQwXSBSSVA6IDAwMTA6ZjJmc190cnVuY2F0ZV9pbm9kZV9i bG9ja3MrMHg0YTcvMHg2ZjAKWyAgNTU2LjUzMTUxM10gQ29kZTogZTggYWUgZWEgZmYgZmYgNDEg ODkgYzcgYzEgZTggMWYgODQgYzAgNzQgMGEgNDEgODMgZmYgZmUgMGYgODUgMzUgZmYgZmYgZmYg ODEgODUgYjAgZmUgZmYgZmYgZmIgMDMgMDAgMDAgZTkgZjcgZmQgZmYgZmYgMGYgMGIgPDBmPiAw YiBlOCA2MiBiNyA5YSAwMCA0OCA4YiBiZCBhMCBmZSBmZiBmZiBlOCA1NiA1NCBhZSBmZiA0OCA4 YiBiNQpbICA1NTYuNTM1MzMwXSBSU1A6IDAwMTg6ZmZmZjg4MDFmMjkyZjgwOCBFRkxBR1M6IDAw MDEwMjg2ClsgIDU1Ni41MzYzOTVdIFJBWDogZmZmZmVkMDAzZTczMjQyZCBSQlg6IGZmZmY4ODAx ZjI5MmY5NTggUkNYOiBmZmZmZmZmZmI4OGI4MWJjClsgIDU1Ni41Mzc4MjRdIFJEWDogMDAwMDAw MDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwMDQgUkRJOiBmZmZmODgwMWYzOTkyMTY0Clsg IDU1Ni41MzkyOTBdIFJCUDogZmZmZjg4MDFmMjkyZjk4MCBSMDg6IGZmZmZlZDAwM2U3MzI0MmQg UjA5OiBmZmZmZWQwMDNlNzMyNDJkClsgIDU1Ni41NDA3MDldIFIxMDogMDAwMDAwMDAwMDAwMDAw MSBSMTE6IGZmZmZlZDAwM2U3MzI0MmMgUjEyOiAwMDAwMDAwMGZmZmZmYzY0ClsgIDU1Ni41NDIx MzFdIFIxMzogZmZmZjg4MDFmMzk5MjAwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwNTggUjE1OiAwMDAw MDAwMGZmZmY4ODAxClsgIDU1Ni41NDM1NzldIEZTOiAgMDAwMDdmODAyOTI5Nzg0MCgwMDAwKSBH UzpmZmZmODgwMWY2ZjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgNTU2LjU0 NTE4MF0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpb ICA1NTYuNTQ2MzM4XSBDUjI6IDAwMDA1NWY1ZjU3MzA1ZDggQ1IzOiAwMDAwMDAwMWYxOGIwMDAw IENSNDogMDAwMDAwMDAwMDAwMDZlMApbICA1NTYuNTQ3ODA5XSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KWyAgNTU2LjU0 OTI0OF0gQlVHOiBLQVNBTjogc3RhY2stb3V0LW9mLWJvdW5kcyBpbiBhcmNoX3RsYl9nYXRoZXJf bW11KzB4NTIvMHgxNzAKWyAgNTU2LjU1MDY3Ml0gV3JpdGUgb2Ygc2l6ZSA4IGF0IGFkZHIgZmZm Zjg4MDFmMjkyZmQxMCBieSB0YXNrIHVtb3VudC8xMzEwCgpbICA1NTYuNTUyMzM4XSBDUFU6IDEg UElEOiAxMzEwIENvbW06IHVtb3VudCBUYWludGVkOiBHICAgICAgRCAgICAgICAgICAgNC4xOC4w LXJjMSsgIzQKWyAgNTU2LjU1Mzg4Nl0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAo aTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVudHUxIDA0LzAxLzIw MTQKWyAgNTU2LjU1NTc1Nl0gQ2FsbCBUcmFjZToKWyAgNTU2LjU1NjI2NF0gIGR1bXBfc3RhY2sr MHg3Yi8weGI1ClsgIDU1Ni41NTY5NDRdICBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uKzB4NzAv MHgyOTAKWyAgNTU2LjU1NzkwM10gIGthc2FuX3JlcG9ydCsweDI5MS8weDM5MApbICA1NTYuNTU4 NjQ5XSAgPyBhcmNoX3RsYl9nYXRoZXJfbW11KzB4NTIvMHgxNzAKWyAgNTU2LjU1OTUzN10gIF9f YXNhbl9zdG9yZTgrMHg1Ny8weDkwClsgIDU1Ni41NjAyNjhdICBhcmNoX3RsYl9nYXRoZXJfbW11 KzB4NTIvMHgxNzAKWyAgNTU2LjU2MTExMF0gIHRsYl9nYXRoZXJfbW11KzB4MTIvMHg0MApbICA1 NTYuNTYxODYyXSAgZXhpdF9tbWFwKzB4MTIzLzB4MmEwClsgIDU1Ni41NjI1NTVdICA/IF9faWEz Ml9zeXNfbXVubWFwKzB4NTAvMHg1MApbICA1NTYuNTYzMzg0XSAgPyBleGl0X2FpbysweDk4LzB4 MjMwClsgIDU1Ni41NjQwNzldICA/IF9feDMyX2NvbXBhdF9zeXNfaW9fc3VibWl0KzB4MjYwLzB4 MjYwClsgIDU1Ni41NjUwOTldICA/IHRhc2tzdGF0c19leGl0KzB4MWY0LzB4NjQwClsgIDU1Ni41 NjU5MjVdICA/IGthc2FuX2NoZWNrX3JlYWQrMHgxMS8weDIwClsgIDU1Ni41NjY3MzldICA/IG1t X3VwZGF0ZV9uZXh0X293bmVyKzB4MzIyLzB4MzgwClsgIDU1Ni41Njc2NTJdICBtbXB1dCsweDhi LzB4MWQwClsgIDU1Ni41NjgyNjBdICBkb19leGl0KzB4NDNhLzB4MTM5MApbICA1NTYuNTY4OTM3 XSAgPyBtbV91cGRhdGVfbmV4dF9vd25lcisweDM4MC8weDM4MApbICA1NTYuNTY5ODU1XSAgPyBk ZWFjdGl2YXRlX3N1cGVyKzB4NWUvMHg4MApbICA1NTYuNTcwNjY4XSAgPyBjbGVhbnVwX21udCsw eDYxLzB4YTAKWyAgNTU2LjU3MTM5NV0gID8gX19jbGVhbnVwX21udCsweDEyLzB4MjAKWyAgNTU2 LjU3MjE1Nl0gID8gdGFza193b3JrX3J1bisweGM4LzB4ZjAKWyAgNTU2LjU3MjkxN10gID8gZXhp dF90b191c2VybW9kZV9sb29wKzB4MTI1LzB4MTMwClsgIDU1Ni41NzM4NjFdICByZXdpbmRfc3Rh Y2tfZG9fZXhpdCsweDE3LzB4MjAKWyAgNTU2LjU3NDcwN10gUklQOiAwMDMzOjB4N2Y4MDI4Yjc3 NDg3ClsgIDU1Ni41NzU0MjhdIENvZGU6IEJhZCBSSVAgdmFsdWUuClsgIDU1Ni41NzYxMDZdIFJT UDogMDAyYjowMDAwN2ZmZjlmMmUzNTk4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAw MDAwMDAwMDAwYTYKWyAgNTU2LjU3NzU5OV0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAw MDAwMDAwMGViZDAzMCBSQ1g6IDAwMDA3ZjgwMjhiNzc0ODcKWyAgNTU2LjU3OTAyMF0gUkRYOiAw MDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAwMDAwMDAwMCBSREk6IDAwMDAwMDAwMDBlYzQx ZTAKWyAgNTU2LjU4MDQyMl0gUkJQOiAwMDAwMDAwMDAwZWM0MWUwIFIwODogMDAwMDAwMDAwMDAw MDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMTQKWyAgNTU2LjU4MTgzM10gUjEwOiAwMDAwMDAwMDAw MDAwNmIyIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDA3ZjgwMjkwODA4M2MKWyAgNTU2 LjU4MzI1Ml0gUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogMDAwMDAwMDAwMGViZDIxMCBSMTU6 IDAwMDA3ZmZmOWYyZTM4MjAKClsgIDU1Ni41ODQ5ODNdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9u Z3MgdG8gdGhlIHBhZ2U6ClsgIDU1Ni41ODU5NjFdIHBhZ2U6ZmZmZmVhMDAwN2NhNGJjMCBjb3Vu dDowIG1hcGNvdW50OjAgbWFwcGluZzowMDAwMDAwMDAwMDAwMDAwIGluZGV4OjB4MApbICA1NTYu NTg3NTQwXSBmbGFnczogMHgyZmZmZjAwMDAwMDAwMDAoKQpbICA1NTYuNTg4Mjk2XSByYXc6IDAy ZmZmZjAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCBkZWFkMDAwMDAwMDAwMjAwIDAwMDAwMDAw MDAwMDAwMDAKWyAgNTU2LjU4OTgyMl0gcmF3OiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAw MDAwMDAgMDAwMDAwMDBmZmZmZmZmZiAwMDAwMDAwMDAwMDAwMDAwClsgIDU1Ni41OTEzNTldIHBh Z2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVkCgpbICA1NTYuNTky Nzg2XSBNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgpbICA1NTYuNTkzNzUz XSAgZmZmZjg4MDFmMjkyZmMwMDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAKWyAgNTU2LjU5NTE5MV0gIGZmZmY4ODAxZjI5MmZjODA6IDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIGYxIGYxIGYxIGYxIDAwIDAwIDAwIDAwClsgIDU1Ni41OTY2MTNdID5mZmZm ODgwMWYyOTJmZDAwOiAwMCAwMCBmMyAwMCAwMCAwMCAwMCBmMyBmMyAwMCAwMCAwMCAwMCBmNCBm NCBmNApbICA1NTYuNTk4MDQ0XSAgICAgICAgICAgICAgICAgICAgICAgICAgXgpbICA1NTYuNTk4 Nzk3XSAgZmZmZjg4MDFmMjkyZmQ4MDogZjMgZjMgZjMgZjMgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAKWyAgNTU2LjYwMDIyNV0gIGZmZmY4ODAxZjI5MmZlMDA6IDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIGYxIGYxIGYxIGYxIDAwIGY0IGY0IGY0ClsgIDU1Ni42MDE2NDddID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQoKLSBMb2NhdGlvbgpodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92NC4x OC1yYzEvc291cmNlL2ZzL2YyZnMvbm9kZS5jI0w5ODcKCQljYXNlIE5PREVfRElORF9CTE9DSzoK CQkJZXJyID0gdHJ1bmNhdGVfbm9kZXMoJmRuLCBub2ZzLCBvZmZzZXRbMV0sIDMpOwoJCQljb250 ID0gMDsKCQkJYnJlYWs7CgoJCWRlZmF1bHQ6CgkJCUJVRygpOyA8LS0tCgkJfQoKUmVwb3J0ZWQt YnkgV2VuIFh1IDx3ZW4ueHVAZ2F0ZWNoLmVkdT4KU2lnbmVkLW9mZi1ieTogQ2hhbyBZdSA8eXVj aGFvMEBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJu ZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0 aGluay5jby51az4KLS0tCiBmcy9mMmZzL2lub2RlLmMgfCAyNSArKysrKysrKysrKysrKysrKysr KysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9mcy9mMmZzL2lub2RlLmMgYi9mcy9mMmZzL2lub2RlLmMKaW5kZXggNDI4 ZDUwMmYyM2U4Li5iZTdkOTc3M2QyOTEgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvaW5vZGUuYworKysg Yi9mcy9mMmZzL2lub2RlLmMKQEAgLTE4MCw5ICsxODAsMzAgQEAgdm9pZCBmMmZzX2lub2RlX2No a3N1bV9zZXQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKIAly aS0+aV9pbm9kZV9jaGVja3N1bSA9IGNwdV90b19sZTMyKGYyZnNfaW5vZGVfY2hrc3VtKHNiaSwg cGFnZSkpOwogfQogCi1zdGF0aWMgYm9vbCBzYW5pdHlfY2hlY2tfaW5vZGUoc3RydWN0IGlub2Rl ICppbm9kZSkKK3N0YXRpYyBib29sIHNhbml0eV9jaGVja19pbm9kZShzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBzdHJ1Y3QgcGFnZSAqbm9kZV9wYWdlKQogewogCXN0cnVjdCBmMmZzX3NiX2luZm8gKnNi aSA9IEYyRlNfSV9TQihpbm9kZSk7CisJdW5zaWduZWQgbG9uZyBsb25nIGlibG9ja3M7CisKKwlp YmxvY2tzID0gbGU2NF90b19jcHUoRjJGU19JTk9ERShub2RlX3BhZ2UpLT5pX2Jsb2Nrcyk7CisJ aWYgKCFpYmxvY2tzKSB7CisJCXNldF9zYmlfZmxhZyhzYmksIFNCSV9ORUVEX0ZTQ0spOworCQlm MmZzX21zZyhzYmktPnNiLCBLRVJOX1dBUk5JTkcsCisJCQkiJXM6IGNvcnJ1cHRlZCBpbm9kZSBp X2Jsb2NrcyBpX2lubz0lbHggaWJsb2Nrcz0lbGx1LCAiCisJCQkicnVuIGZzY2sgdG8gZml4LiIs CisJCQlfX2Z1bmNfXywgaW5vZGUtPmlfaW5vLCBpYmxvY2tzKTsKKwkJcmV0dXJuIGZhbHNlOwor CX0KKworCWlmIChpbm9fb2Zfbm9kZShub2RlX3BhZ2UpICE9IG5pZF9vZl9ub2RlKG5vZGVfcGFn ZSkpIHsKKwkJc2V0X3NiaV9mbGFnKHNiaSwgU0JJX05FRURfRlNDSyk7CisJCWYyZnNfbXNnKHNi aS0+c2IsIEtFUk5fV0FSTklORywKKwkJCSIlczogY29ycnVwdGVkIGlub2RlIGZvb3RlciBpX2lu bz0lbHgsIGlubyxuaWQ6ICIKKwkJCSJbJXUsICV1XSBydW4gZnNjayB0byBmaXguIiwKKwkJCV9f ZnVuY19fLCBpbm9kZS0+aV9pbm8sCisJCQlpbm9fb2Zfbm9kZShub2RlX3BhZ2UpLCBuaWRfb2Zf bm9kZShub2RlX3BhZ2UpKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KIAogCWlmIChmMmZzX2hhc19l eHRyYV9hdHRyKGlub2RlKSAmJgogCQkJIWYyZnNfc2JfaGFzX2V4dHJhX2F0dHIoc2JpLT5zYikp IHsKQEAgLTI0Miw3ICsyNjMsNyBAQCBzdGF0aWMgaW50IGRvX3JlYWRfaW5vZGUoc3RydWN0IGlu b2RlICppbm9kZSkKIAogCWdldF9pbmxpbmVfaW5mbyhpbm9kZSwgcmkpOwogCi0JaWYgKCFzYW5p dHlfY2hlY2tfaW5vZGUoaW5vZGUpKSB7CisJaWYgKCFzYW5pdHlfY2hlY2tfaW5vZGUoaW5vZGUs IG5vZGVfcGFnZSkpIHsKIAkJZjJmc19wdXRfcGFnZShub2RlX3BhZ2UsIDEpOwogCQlyZXR1cm4g LUVJTlZBTDsKIAl9Ci0tIApCZW4gSHV0Y2hpbmdzLCBTb2Z0d2FyZSBEZXZlbG9wZXIgICAgICAg ICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApodHRwczovL3d3dy5jb2RldGhpbmsuY28u dWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAzNSBEYWxlIFN0cmVldAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hlc3RlciwgTTEgMkhGLCBVbml0ZWQgS2lu Z2RvbQoKCkZyb20gZjYwMTcyMjcxYWYxM2JmY2I3ZGIwZDA2ODc2ZDAyN2JjMTk5Y2FhYyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpE YXRlOiBXZWQsIDEgQXVnIDIwMTggMTk6MTM6NDQgKzA4MDAKU3ViamVjdDogW1BBVENIIDQyLzQ2 XSBmMmZzOiBmaXggdG8gZG8gc2FuaXR5IGNoZWNrIHdpdGggYmxvY2sgYWRkcmVzcyBpbiBtYWlu CiBhcmVhCgpjb21taXQgYzliNjA3ODhmYzc2MGQxMzYyMTE4NTNmMTBjZTczZGMxNTJkMWY0YSB1 cHN0cmVhbS4KClRoaXMgcGF0Y2ggYWRkIHRvIGRvIHNhbml0eSBjaGVjayB3aXRoIGJlbG93IGZp ZWxkOgotIGNwX3BhY2tfdG90YWxfYmxvY2tfY291bnQKLSBibGthZGRyIG9mIGRhdGEvbm9kZQot IGV4dGVudCBpbmZvCgotIE92ZXJ2aWV3CkJVRygpIGluIHZlcmlmeV9ibG9ja19hZGRyKCkgd2hl biB3cml0aW5nIHRvIGEgY29ycnVwdGVkIGYyZnMgaW1hZ2UKCi0gUmVwcm9kdWNlICg0LjE4IHVw c3RyZWFtIGtlcm5lbCkKCi0gUE9DIChwb2MuYykKCnN0YXRpYyB2b2lkIGFjdGl2aXR5KGNoYXIg Km1wb2ludCkgewoKICBjaGFyICpmb29fYmFyX2JhejsKICBpbnQgZXJyOwoKICBzdGF0aWMgaW50 IGJ1Zls4MTkyXTsKICBtZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7CgogIGVyciA9IGFzcHJp bnRmKCZmb29fYmFyX2JheiwgIiVzL2Zvby9iYXIvYmF6IiwgbXBvaW50KTsKCiAgaW50IGZkID0g b3Blbihmb29fYmFyX2JheiwgT19SRFdSIHwgT19UUlVOQywgMDc3Nyk7CiAgaWYgKGZkID49IDAp IHsKICAgIHdyaXRlKGZkLCAoY2hhciAqKWJ1Ziwgc2l6ZW9mKGJ1ZikpOwogICAgZmRhdGFzeW5j KGZkKTsKICAgIGNsb3NlKGZkKTsKICB9Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pIHsKICBhY3Rpdml0eShhcmd2WzFdKTsKICByZXR1cm4gMDsKfQoKLSBLZXJuZWwgbWVzc2Fn ZQpbICA2ODkuMzQ5NDczXSBGMkZTLWZzIChsb29wMCk6IE1vdW50ZWQgd2l0aCBjaGVja3BvaW50 IHZlcnNpb24gPSAzClsgIDY5OS43Mjg2NjJdIFdBUk5JTkc6IENQVTogMCBQSUQ6IDEzMDkgYXQg ZnMvZjJmcy9zZWdtZW50LmM6Mjg2MCBmMmZzX2lucGxhY2Vfd3JpdGVfZGF0YSsweDIzMi8weDI0 MApbICA2OTkuNzI4NjcwXSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2RlY19nZW5lcmlj IHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb2RlYyBzbmRfaHdkZXAgc25kX2hkYV9jb3JlIHNuZF9w Y20gc25kX3RpbWVyIHNuZCBtYWNfaGlkIGkyY19waWl4NCBzb3VuZGNvcmUgaWJfaXNlciByZG1h X2NtIGl3X2NtIGliX2NtIGliX2NvcmUgaXNjc2lfdGNwIGxpYmlzY3NpX3RjcCBsaWJpc2NzaSBz Y3NpX3RyYW5zcG9ydF9pc2NzaSByYWlkMTAgcmFpZDQ1NiBhc3luY19yYWlkNl9yZWNvdiBhc3lu Y19tZW1jcHkgYXN5bmNfcHEgYXN5bmNfeG9yIGFzeW5jX3R4IHJhaWQxIHJhaWQwIG11bHRpcGF0 aCBsaW5lYXIgODEzOXRvbyBjcmN0MTBkaWZfcGNsbXVsIGNyYzMyX3BjbG11bCBxeGwgZHJtX2tt c19oZWxwZXIgc3lzY29weWFyZWEgYWVzbmlfaW50ZWwgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZi X3N5c19mb3BzIHR0bSBkcm0gYWVzX3g4Nl82NCBjcnlwdG9fc2ltZCBjcnlwdGQgODEzOWNwIGds dWVfaGVscGVyIG1paSBwYXRhX2FjcGkgZmxvcHB5ClsgIDY5OS43MjkwNTZdIENQVTogMCBQSUQ6 IDEzMDkgQ29tbTogYS5vdXQgTm90IHRhaW50ZWQgNC4xOC4wLXJjMSsgIzQKWyAgNjk5LjcyOTA2 NF0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5Niks IEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVudHUxIDA0LzAxLzIwMTQKWyAgNjk5LjcyOTA3NF0gUklQ OiAwMDEwOmYyZnNfaW5wbGFjZV93cml0ZV9kYXRhKzB4MjMyLzB4MjQwClsgIDY5OS43MjkwNzZd IENvZGU6IGZmIGU5IGNmIGZlIGZmIGZmIDQ5IDhkIDdkIDEwIGU4IDM5IDQ1IGFkIGZmIDRkIDhi IDdkIDEwIGJlIDA0IDAwIDAwIDAwIDQ5IDhkIDdmIDQ4IGU4IDA3IDQ5IGFkIGZmIDQ1IDhiIDdm IDQ4IGU5IGZiIGZlIGZmIGZmIDwwZj4gMGIgZjAgNDEgODAgNGQgNDggMDQgZTkgNjUgZmUgZmYg ZmYgOTAgNjYgNjYgNjYgNjYgOTAgNTUgNDggOGQKWyAgNjk5LjcyOTEzMF0gUlNQOiAwMDE4OmZm ZmY4ODAxZjQzYWY1NjggRUZMQUdTOiAwMDAxMDIwMgpbICA2OTkuNzI5MTM5XSBSQVg6IDAwMDAw MDAwMDAwMDAwM2YgUkJYOiBmZmZmODgwMWY0M2FmN2I4IFJDWDogZmZmZmZmZmZiODhjOTExMwpb ICA2OTkuNzI5MTQyXSBSRFg6IDAwMDAwMDAwMDAwMDAwMDMgUlNJOiBkZmZmZmMwMDAwMDAwMDAw IFJESTogZmZmZjg4MDIwMjRlNTU0MApbICA2OTkuNzI5MTQ0XSBSQlA6IGZmZmY4ODAxZjQzYWY1 OTAgUjA4OiAwMDAwMDAwMDAwMDAwMDA5IFIwOTogZmZmZmZmZmZmZmZmZmZlOApbICA2OTkuNzI5 MTQ3XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiBmZmZmZWQwMDM5YjA1OTZhIFIxMjogZmZm Zjg4MDIwMjRlNTU0MApbICA2OTkuNzI5MTQ5XSBSMTM6IGZmZmY4ODAxZjAzMzU1MDAgUjE0OiBm ZmZmODgwMWUzZTdhNzAwIFIxNTogZmZmZjg4MDFlMWVlNDQ1MApbICA2OTkuNzI5MTU0XSBGUzog IDAwMDA3ZjliZjk3ZjU3MDAoMDAwMCkgR1M6ZmZmZjg4MDFmNmUwMDAwMCgwMDAwKSBrbmxHUzow MDAwMDAwMDAwMDAwMDAwClsgIDY5OS43MjkxNTZdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAw MCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgNjk5LjcyOTE1OV0gQ1IyOiAwMDAwN2Y5YmY5MjVk MTcwIENSMzogMDAwMDAwMDFmMGMzNDAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2ZjAKWyAgNjk5Ljcy OTE3MV0gQ2FsbCBUcmFjZToKWyAgNjk5LjcyOTE5Ml0gIGYyZnNfZG9fd3JpdGVfZGF0YV9wYWdl KzB4MmUyLzB4ZTAwClsgIDY5OS43MjkyMDNdICA/IGYyZnNfc2hvdWxkX3VwZGF0ZV9vdXRwbGFj ZSsweGQwLzB4ZDAKWyAgNjk5LjcyOTIzOF0gID8gbWVtY2dfZHJhaW5fYWxsX2xpc3RfbHJ1cysw eDI4MC8weDI4MApbICA2OTkuNzI5MjY5XSAgPyBfX3JhZGl4X3RyZWVfcmVwbGFjZSsweGEzLzB4 MTIwClsgIDY5OS43MjkyNzZdICBfX3dyaXRlX2RhdGFfcGFnZSsweDVjNy8weGUzMApbICA2OTku NzI5MjkxXSAgPyBrYXNhbl9jaGVja19yZWFkKzB4MTEvMHgyMApbICA2OTkuNzI5MzEwXSAgPyBw YWdlX21hcHBlZCsweDhhLzB4MTEwClsgIDY5OS43MjkzMjFdICA/IHBhZ2VfbWtjbGVhbisweGU5 LzB4MTYwClsgIDY5OS43MjkzMjddICA/IGYyZnNfZG9fd3JpdGVfZGF0YV9wYWdlKzB4ZTAwLzB4 ZTAwClsgIDY5OS43MjkzMzFdICA/IGludmFsaWRfcGFnZV9yZWZlcmVuY2VkX3ZtYSsweDEzMC8w eDEzMApbICA2OTkuNzI5MzQ1XSAgPyBjbGVhcl9wYWdlX2RpcnR5X2Zvcl9pbysweDMzMi8weDQ1 MApbICA2OTkuNzI5MzUxXSAgZjJmc193cml0ZV9jYWNoZV9wYWdlcysweDRjYS8weDg2MApbICA2 OTkuNzI5MzU4XSAgPyBfX3dyaXRlX2RhdGFfcGFnZSsweGUzMC8weGUzMApbICA2OTkuNzI5Mzc0 XSAgPyBwZXJjcHVfY291bnRlcl9hZGRfYmF0Y2grMHgyMi8weGEwClsgIDY5OS43MjkzODBdICA/ IGthc2FuX2NoZWNrX3dyaXRlKzB4MTQvMHgyMApbICA2OTkuNzI5MzkxXSAgPyBfcmF3X3NwaW5f bG9jaysweDE3LzB4NDAKWyAgNjk5LjcyOTQwM10gID8gZjJmc19tYXJrX2lub2RlX2RpcnR5X3N5 bmMucGFydC4xOCsweDE2LzB4MzAKWyAgNjk5LjcyOTQxM10gID8gaW92X2l0ZXJfYWR2YW5jZSsw eDExMy8weDY0MApbICA2OTkuNzI5NDE4XSAgPyBmMmZzX3dyaXRlX2VuZCsweDEzMy8weDJlMApb ICA2OTkuNzI5NDIzXSAgPyBiYWxhbmNlX2RpcnR5X3BhZ2VzX3JhdGVsaW1pdGVkKzB4MjM5LzB4 NjQwClsgIDY5OS43Mjk0MjhdICBmMmZzX3dyaXRlX2RhdGFfcGFnZXMrMHgzMjkvMHg1MjAKWyAg Njk5LjcyOTQzM10gID8gZ2VuZXJpY19wZXJmb3JtX3dyaXRlKzB4MjUwLzB4MzIwClsgIDY5OS43 Mjk0MzhdICA/IGYyZnNfd3JpdGVfY2FjaGVfcGFnZXMrMHg4NjAvMHg4NjAKWyAgNjk5LjcyOTQ1 NF0gID8gY3VycmVudF90aW1lKzB4MTEwLzB4MTEwClsgIDY5OS43Mjk0NTldICA/IGYyZnNfcHJl YWxsb2NhdGVfYmxvY2tzKzB4MWVmLzB4MzcwClsgIDY5OS43Mjk0NjRdICBkb193cml0ZXBhZ2Vz KzB4MzcvMHhiMApbICA2OTkuNzI5NDY4XSAgPyBmMmZzX3dyaXRlX2NhY2hlX3BhZ2VzKzB4ODYw LzB4ODYwClsgIDY5OS43Mjk0NzJdICA/IGRvX3dyaXRlcGFnZXMrMHgzNy8weGIwClsgIDY5OS43 Mjk0NzhdICBfX2ZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZSsweDE5YS8weDFmMApbICA2OTkuNzI5 NDgzXSAgPyBkZWxldGVfZnJvbV9wYWdlX2NhY2hlX2JhdGNoKzB4NGUwLzB4NGUwClsgIDY5OS43 Mjk0OTZdICA/IF9fdmZzX3dyaXRlKzB4MmIyLzB4NDEwClsgIDY5OS43Mjk1MDFdICBmaWxlX3dy aXRlX2FuZF93YWl0X3JhbmdlKzB4NjYvMHhiMApbICA2OTkuNzI5NTA2XSAgZjJmc19kb19zeW5j X2ZpbGUrMHgxZjkvMHhkOTAKWyAgNjk5LjcyOTUxMV0gID8gdHJ1bmNhdGVfcGFydGlhbF9kYXRh X3BhZ2UrMHgyOTAvMHgyOTAKWyAgNjk5LjcyOTUyMV0gID8gX19zYl9lbmRfd3JpdGUrMHgzMC8w eDUwClsgIDY5OS43Mjk1MjZdICA/IHZmc193cml0ZSsweDIwZi8weDI2MApbICA2OTkuNzI5NTMw XSAgZjJmc19zeW5jX2ZpbGUrMHg5YS8weGIwClsgIDY5OS43Mjk1MzRdICA/IGYyZnNfZG9fc3lu Y19maWxlKzB4ZDkwLzB4ZDkwClsgIDY5OS43Mjk1NDhdICB2ZnNfZnN5bmNfcmFuZ2UrMHg2OC8w eDEwMApbICA2OTkuNzI5NTU0XSAgPyBfX2ZnZXRfbGlnaHQrMHhjOS8weGUwClsgIDY5OS43Mjk1 NThdICBkb19mc3luYysweDNkLzB4NzAKWyAgNjk5LjcyOTU2Ml0gIF9feDY0X3N5c19mZGF0YXN5 bmMrMHgyNC8weDMwClsgIDY5OS43Mjk1ODVdICBkb19zeXNjYWxsXzY0KzB4NzgvMHgxNzAKWyAg Njk5LjcyOTU5NV0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKWyAg Njk5LjcyOTYxM10gUklQOiAwMDMzOjB4N2Y5YmY5MzBkODAwClsgIDY5OS43Mjk2MTVdIENvZGU6 IDAwIGY3IGQ4IDY0IDg5IDAxIDQ4IDgzIGM4IGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAw IDAwIDAwIDBmIDFmIDQ0IDAwIDAwIDgzIDNkIDQ5IGJmIDJjIDAwIDAwIDc1IDEwIGI4IDRiIDAw IDAwIDAwIDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMzEgYzMgNDggODMgZWMgMDggZTgg YmUgNzggMDEgMDAgNDggODkgMDQgMjQKWyAgNjk5LjcyOTY2OF0gUlNQOiAwMDJiOjAwMDA3ZmZl ZTM2MDZjNjggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDA0YgpbICA2 OTkuNzI5NjczXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJD WDogMDAwMDdmOWJmOTMwZDgwMApbICA2OTkuNzI5Njc1XSBSRFg6IDAwMDAwMDAwMDAwMDgwMDAg UlNJOiAwMDAwMDAwMDAwNjAxMGEwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpbICA2OTkuNzI5Njc4 XSBSQlA6IDAwMDA3ZmZlZTM2MDZjYTAgUjA4OiAwMDAwMDAwMDAxNTAzMDEwIFIwOTogMDAwMDAw MDAwMDAwMDAwMApbICA2OTkuNzI5NjgwXSBSMTA6IDAwMDAwMDAwMDAwMDAyZTggUjExOiAwMDAw MDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDQwMDYxMApbICA2OTkuNzI5NjgzXSBSMTM6IDAw MDA3ZmZlZTM2MDZkYTAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAw MApbICA2OTkuNzI5Njg3XSAtLS1bIGVuZCB0cmFjZSA0Y2UwMmYyNWZmN2QzZGY1IF0tLS0KWyAg Njk5LjcyOTc4Ml0gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tClsgIDY5OS43 Mjk3ODVdIGtlcm5lbCBCVUcgYXQgZnMvZjJmcy9zZWdtZW50Lmg6NjU0IQpbICA2OTkuNzMxMDU1 XSBpbnZhbGlkIG9wY29kZTogMDAwMCBbIzFdIFNNUCBLQVNBTiBQVEkKWyAgNjk5LjczMjEwNF0g Q1BVOiAwIFBJRDogMTMwOSBDb21tOiBhLm91dCBUYWludGVkOiBHICAgICAgICBXICAgICAgICAg NC4xOC4wLXJjMSsgIzQKWyAgNjk5LjczMzY4NF0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFy ZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVudHUxIDA0 LzAxLzIwMTQKWyAgNjk5LjczNTYxMV0gUklQOiAwMDEwOmYyZnNfc3VibWl0X3BhZ2VfYmlvKzB4 MjliLzB4NzMwClsgIDY5OS43MzY2NDldIENvZGU6IDU0IDQ5IDhkIGJkIDE4IDA0IDAwIDAwIGU4 IGIyIDU5IGFmIGZmIDQxIDhiIDhkIDE4IDA0IDAwIDAwIDhiIDQ1IGI4IDQxIGQzIGU2IDQ0IDAx IGYwIDRjIDhkIDczIDE0IDQxIDM5IGM3IDBmIDgyIDM3IGZlIGZmIGZmIDwwZj4gMGIgNjUgOGIg MDUgMmMgMDQgNzcgNDcgODkgYzAgNDggMGYgYTMgMDUgNTIgYzEgZDUgMDEgMGYgOTIgYzAKWyAg Njk5Ljc0MDUyNF0gUlNQOiAwMDE4OmZmZmY4ODAxZjQzYWY1MDggRUZMQUdTOiAwMDAxMDI4Mwpb ICA2OTkuNzQxNTczXSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmODgwMWY0M2FmN2I4 IFJDWDogZmZmZmZmZmZiODhhN2NlZgpbICA2OTkuNzQzMDA2XSBSRFg6IDAwMDAwMDAwMDAwMDAw MDcgUlNJOiBkZmZmZmMwMDAwMDAwMDAwIFJESTogZmZmZjg4MDFlM2U3YTY0YwpbICA2OTkuNzQ0 NDI2XSBSQlA6IGZmZmY4ODAxZjQzYWY1NTggUjA4OiBmZmZmZWQwMDNlMDY2YjU1IFIwOTogZmZm ZmVkMDAzZTA2NmI1NQpbICA2OTkuNzQ1ODMzXSBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiBm ZmZmZWQwMDNlMDY2YjU0IFIxMjogZmZmZmVhMDAwNzg3Njk0MApbICA2OTkuNzQ3MjU2XSBSMTM6 IGZmZmY4ODAxZjAzMzU1MDAgUjE0OiBmZmZmODgwMWUzZTdhNjAwIFIxNTogMDAwMDAwMDAwMDAw MDAwMQpbICA2OTkuNzQ4NjgzXSBGUzogIDAwMDA3ZjliZjk3ZjU3MDAoMDAwMCkgR1M6ZmZmZjg4 MDFmNmUwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgIDY5OS43NTAyOTNdIENT OiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgNjk5Ljc1 MTQ2Ml0gQ1IyOiAwMDAwN2Y5YmY5MjVkMTcwIENSMzogMDAwMDAwMDFmMGMzNDAwMCBDUjQ6IDAw MDAwMDAwMDAwMDA2ZjAKWyAgNjk5Ljc1Mjg3NF0gQ2FsbCBUcmFjZToKWyAgNjk5Ljc1MzM4Nl0g ID8gZjJmc19pbnBsYWNlX3dyaXRlX2RhdGErMHg5My8weDI0MApbICA2OTkuNzU0MzQxXSAgZjJm c19pbnBsYWNlX3dyaXRlX2RhdGErMHhkMi8weDI0MApbICA2OTkuNzU1MjcxXSAgZjJmc19kb193 cml0ZV9kYXRhX3BhZ2UrMHgyZTIvMHhlMDAKWyAgNjk5Ljc1NjIxNF0gID8gZjJmc19zaG91bGRf dXBkYXRlX291dHBsYWNlKzB4ZDAvMHhkMApbICA2OTkuNzU3MjE1XSAgPyBtZW1jZ19kcmFpbl9h bGxfbGlzdF9scnVzKzB4MjgwLzB4MjgwClsgIDY5OS43NTgyMDldICA/IF9fcmFkaXhfdHJlZV9y ZXBsYWNlKzB4YTMvMHgxMjAKWyAgNjk5Ljc1OTE2NF0gIF9fd3JpdGVfZGF0YV9wYWdlKzB4NWM3 LzB4ZTMwClsgIDY5OS43NjAwMDJdICA/IGthc2FuX2NoZWNrX3JlYWQrMHgxMS8weDIwClsgIDY5 OS43NjA4MjNdICA/IHBhZ2VfbWFwcGVkKzB4OGEvMHgxMTAKWyAgNjk5Ljc2MTU3M10gID8gcGFn ZV9ta2NsZWFuKzB4ZTkvMHgxNjAKWyAgNjk5Ljc2MjM0NV0gID8gZjJmc19kb193cml0ZV9kYXRh X3BhZ2UrMHhlMDAvMHhlMDAKWyAgNjk5Ljc2MzMzMl0gID8gaW52YWxpZF9wYWdlX3JlZmVyZW5j ZWRfdm1hKzB4MTMwLzB4MTMwClsgIDY5OS43NjQzNzRdICA/IGNsZWFyX3BhZ2VfZGlydHlfZm9y X2lvKzB4MzMyLzB4NDUwClsgIDY5OS43NjUzNDddICBmMmZzX3dyaXRlX2NhY2hlX3BhZ2VzKzB4 NGNhLzB4ODYwClsgIDY5OS43NjYyNzZdICA/IF9fd3JpdGVfZGF0YV9wYWdlKzB4ZTMwLzB4ZTMw ClsgIDY5OS43NjcxNjFdICA/IHBlcmNwdV9jb3VudGVyX2FkZF9iYXRjaCsweDIyLzB4YTAKWyAg Njk5Ljc2ODExMl0gID8ga2FzYW5fY2hlY2tfd3JpdGUrMHgxNC8weDIwClsgIDY5OS43Njg5NTFd ICA/IF9yYXdfc3Bpbl9sb2NrKzB4MTcvMHg0MApbICA2OTkuNzY5NzM5XSAgPyBmMmZzX21hcmtf aW5vZGVfZGlydHlfc3luYy5wYXJ0LjE4KzB4MTYvMHgzMApbICA2OTkuNzcwODg1XSAgPyBpb3Zf aXRlcl9hZHZhbmNlKzB4MTEzLzB4NjQwClsgIDY5OS43NzE3NDNdICA/IGYyZnNfd3JpdGVfZW5k KzB4MTMzLzB4MmUwClsgIDY5OS43NzI1NjldICA/IGJhbGFuY2VfZGlydHlfcGFnZXNfcmF0ZWxp bWl0ZWQrMHgyMzkvMHg2NDAKWyAgNjk5Ljc3MzY4MF0gIGYyZnNfd3JpdGVfZGF0YV9wYWdlcysw eDMyOS8weDUyMApbICA2OTkuNzc0NjAzXSAgPyBnZW5lcmljX3BlcmZvcm1fd3JpdGUrMHgyNTAv MHgzMjAKWyAgNjk5Ljc3NTU0NF0gID8gZjJmc193cml0ZV9jYWNoZV9wYWdlcysweDg2MC8weDg2 MApbICA2OTkuNzc2NTEwXSAgPyBjdXJyZW50X3RpbWUrMHgxMTAvMHgxMTAKWyAgNjk5Ljc3NzI5 OV0gID8gZjJmc19wcmVhbGxvY2F0ZV9ibG9ja3MrMHgxZWYvMHgzNzAKWyAgNjk5Ljc3ODI3OV0g IGRvX3dyaXRlcGFnZXMrMHgzNy8weGIwClsgIDY5OS43NzkwMjZdICA/IGYyZnNfd3JpdGVfY2Fj aGVfcGFnZXMrMHg4NjAvMHg4NjAKWyAgNjk5Ljc3OTk3OF0gID8gZG9fd3JpdGVwYWdlcysweDM3 LzB4YjAKWyAgNjk5Ljc4MDc1NV0gIF9fZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKzB4MTlhLzB4 MWYwClsgIDY5OS43ODE3NDZdICA/IGRlbGV0ZV9mcm9tX3BhZ2VfY2FjaGVfYmF0Y2grMHg0ZTAv MHg0ZTAKWyAgNjk5Ljc4MjgyMF0gID8gX192ZnNfd3JpdGUrMHgyYjIvMHg0MTAKWyAgNjk5Ljc4 MzU5N10gIGZpbGVfd3JpdGVfYW5kX3dhaXRfcmFuZ2UrMHg2Ni8weGIwClsgIDY5OS43ODQ1NDBd ICBmMmZzX2RvX3N5bmNfZmlsZSsweDFmOS8weGQ5MApbICA2OTkuNzg1MzgxXSAgPyB0cnVuY2F0 ZV9wYXJ0aWFsX2RhdGFfcGFnZSsweDI5MC8weDI5MApbICA2OTkuNzg2NDE1XSAgPyBfX3NiX2Vu ZF93cml0ZSsweDMwLzB4NTAKWyAgNjk5Ljc4NzIwNF0gID8gdmZzX3dyaXRlKzB4MjBmLzB4MjYw ClsgIDY5OS43ODc5NDFdICBmMmZzX3N5bmNfZmlsZSsweDlhLzB4YjAKWyAgNjk5Ljc4ODY5NF0g ID8gZjJmc19kb19zeW5jX2ZpbGUrMHhkOTAvMHhkOTAKWyAgNjk5Ljc4OTU3Ml0gIHZmc19mc3lu Y19yYW5nZSsweDY4LzB4MTAwClsgIDY5OS43OTAzNjBdICA/IF9fZmdldF9saWdodCsweGM5LzB4 ZTAKWyAgNjk5Ljc5MTEyOF0gIGRvX2ZzeW5jKzB4M2QvMHg3MApbICA2OTkuNzkxNzc5XSAgX194 NjRfc3lzX2ZkYXRhc3luYysweDI0LzB4MzAKWyAgNjk5Ljc5MjYxNF0gIGRvX3N5c2NhbGxfNjQr MHg3OC8weDE3MApbICA2OTkuNzkzMzcxXSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1l KzB4NDQvMHhhOQpbICA2OTkuNzk0NDA2XSBSSVA6IDAwMzM6MHg3ZjliZjkzMGQ4MDAKWyAgNjk5 Ljc5NTEzNF0gQ29kZTogMDAgZjcgZDggNjQgODkgMDEgNDggODMgYzggZmYgYzMgNjYgMmUgMGYg MWYgODQgMDAgMDAgMDAgMDAgMDAgMGYgMWYgNDQgMDAgMDAgODMgM2QgNDkgYmYgMmMgMDAgMDAg NzUgMTAgYjggNGIgMDAgMDAgMDAgMGYgMDUgPDQ4PiAzZCAwMSBmMCBmZiBmZiA3MyAzMSBjMyA0 OCA4MyBlYyAwOCBlOCBiZSA3OCAwMSAwMCA0OCA4OSAwNCAyNApbICA2OTkuNzk4OTYwXSBSU1A6 IDAwMmI6MDAwMDdmZmVlMzYwNmM2OCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAw MDAwMDAwMDRiClsgIDY5OS44MDA0ODNdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAw MDAwMDAwMDAwMDAgUkNYOiAwMDAwN2Y5YmY5MzBkODAwClsgIDY5OS44MDE5MjNdIFJEWDogMDAw MDAwMDAwMDAwODAwMCBSU0k6IDAwMDAwMDAwMDA2MDEwYTAgUkRJOiAwMDAwMDAwMDAwMDAwMDAz ClsgIDY5OS44MDMzNzNdIFJCUDogMDAwMDdmZmVlMzYwNmNhMCBSMDg6IDAwMDAwMDAwMDE1MDMw MTAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClsgIDY5OS44MDQ3OThdIFIxMDogMDAwMDAwMDAwMDAw MDJlOCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwNDAwNjEwClsgIDY5OS44 MDYyMzNdIFIxMzogMDAwMDdmZmVlMzYwNmRhMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAw MDAwMDAwMDAwMDAwMDAwClsgIDY5OS44MDc2NjddIE1vZHVsZXMgbGlua2VkIGluOiBzbmRfaGRh X2NvZGVjX2dlbmVyaWMgc25kX2hkYV9pbnRlbCBzbmRfaGRhX2NvZGVjIHNuZF9od2RlcCBzbmRf aGRhX2NvcmUgc25kX3BjbSBzbmRfdGltZXIgc25kIG1hY19oaWQgaTJjX3BpaXg0IHNvdW5kY29y ZSBpYl9pc2VyIHJkbWFfY20gaXdfY20gaWJfY20gaWJfY29yZSBpc2NzaV90Y3AgbGliaXNjc2lf dGNwIGxpYmlzY3NpIHNjc2lfdHJhbnNwb3J0X2lzY3NpIHJhaWQxMCByYWlkNDU2IGFzeW5jX3Jh aWQ2X3JlY292IGFzeW5jX21lbWNweSBhc3luY19wcSBhc3luY194b3IgYXN5bmNfdHggcmFpZDEg cmFpZDAgbXVsdGlwYXRoIGxpbmVhciA4MTM5dG9vIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNs bXVsIHF4bCBkcm1fa21zX2hlbHBlciBzeXNjb3B5YXJlYSBhZXNuaV9pbnRlbCBzeXNmaWxscmVj dCBzeXNpbWdibHQgZmJfc3lzX2ZvcHMgdHRtIGRybSBhZXNfeDg2XzY0IGNyeXB0b19zaW1kIGNy eXB0ZCA4MTM5Y3AgZ2x1ZV9oZWxwZXIgbWlpIHBhdGFfYWNwaSBmbG9wcHkKWyAgNjk5LjgxNzA3 OV0gLS0tWyBlbmQgdHJhY2UgNGNlMDJmMjVmZjdkM2RmNiBdLS0tClsgIDY5OS44MTgwNjhdIFJJ UDogMDAxMDpmMmZzX3N1Ym1pdF9wYWdlX2JpbysweDI5Yi8weDczMApbICA2OTkuODE5MTE0XSBD b2RlOiA1NCA0OSA4ZCBiZCAxOCAwNCAwMCAwMCBlOCBiMiA1OSBhZiBmZiA0MSA4YiA4ZCAxOCAw NCAwMCAwMCA4YiA0NSBiOCA0MSBkMyBlNiA0NCAwMSBmMCA0YyA4ZCA3MyAxNCA0MSAzOSBjNyAw ZiA4MiAzNyBmZSBmZiBmZiA8MGY+IDBiIDY1IDhiIDA1IDJjIDA0IDc3IDQ3IDg5IGMwIDQ4IDBm IGEzIDA1IDUyIGMxIGQ1IDAxIDBmIDkyIGMwClsgIDY5OS44MjI5MTldIFJTUDogMDAxODpmZmZm ODgwMWY0M2FmNTA4IEVGTEFHUzogMDAwMTAyODMKWyAgNjk5LjgyMzk3N10gUkFYOiAwMDAwMDAw MDAwMDAwMDAwIFJCWDogZmZmZjg4MDFmNDNhZjdiOCBSQ1g6IGZmZmZmZmZmYjg4YTdjZWYKWyAg Njk5LjgyNTQzNl0gUkRYOiAwMDAwMDAwMDAwMDAwMDA3IFJTSTogZGZmZmZjMDAwMDAwMDAwMCBS REk6IGZmZmY4ODAxZTNlN2E2NGMKWyAgNjk5LjgyNjg4MV0gUkJQOiBmZmZmODgwMWY0M2FmNTU4 IFIwODogZmZmZmVkMDAzZTA2NmI1NSBSMDk6IGZmZmZlZDAwM2UwNjZiNTUKWyAgNjk5LjgyODI5 Ml0gUjEwOiAwMDAwMDAwMDAwMDAwMDAxIFIxMTogZmZmZmVkMDAzZTA2NmI1NCBSMTI6IGZmZmZl YTAwMDc4NzY5NDAKWyAgNjk5LjgyOTc1MF0gUjEzOiBmZmZmODgwMWYwMzM1NTAwIFIxNDogZmZm Zjg4MDFlM2U3YTYwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDEKWyAgNjk5LjgzMTE5Ml0gRlM6ICAw MDAwN2Y5YmY5N2Y1NzAwKDAwMDApIEdTOmZmZmY4ODAxZjZlMDAwMDAoMDAwMCkga25sR1M6MDAw MDAwMDAwMDAwMDAwMApbICA2OTkuODMyNzkzXSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAg Q1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDY5OS44MzM5ODFdIENSMjogMDAwMDdmOWJmOTI1ZDE3 MCBDUjM6IDAwMDAwMDAxZjBjMzQwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmYwClsgIDY5OS44MzU1 NTZdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpbICA2OTkuODM3MDI5XSBCVUc6IEtBU0FOOiBzdGFjay1vdXQtb2YtYm91 bmRzIGluIHVwZGF0ZV9zdGFja19zdGF0ZSsweDM4Yy8weDNlMApbICA2OTkuODM4NDYyXSBSZWFk IG9mIHNpemUgOCBhdCBhZGRyIGZmZmY4ODAxZjQzYWY5NzAgYnkgdGFzayBhLm91dC8xMzA5Cgpb ICA2OTkuODQwMDg2XSBDUFU6IDAgUElEOiAxMzA5IENvbW06IGEub3V0IFRhaW50ZWQ6IEcgICAg ICBEIFcgICAgICAgICA0LjE4LjAtcmMxKyAjNApbICA2OTkuODQxNjAzXSBIYXJkd2FyZSBuYW1l OiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBVYnVudHUtMS44 LjItMXVidW50dTEgMDQvMDEvMjAxNApbICA2OTkuODQzNDc1XSBDYWxsIFRyYWNlOgpbICA2OTku ODQzOTgyXSAgZHVtcF9zdGFjaysweDdiLzB4YjUKWyAgNjk5Ljg0NDY2MV0gIHByaW50X2FkZHJl c3NfZGVzY3JpcHRpb24rMHg3MC8weDI5MApbICA2OTkuODQ1NjA3XSAga2FzYW5fcmVwb3J0KzB4 MjkxLzB4MzkwClsgIDY5OS44NDYzNTFdICA/IHVwZGF0ZV9zdGFja19zdGF0ZSsweDM4Yy8weDNl MApbICA2OTkuODUzODMxXSAgX19hc2FuX2xvYWQ4KzB4NTQvMHg5MApbICA2OTkuODU0NTY5XSAg dXBkYXRlX3N0YWNrX3N0YXRlKzB4MzhjLzB4M2UwClsgIDY5OS44NTU0MjhdICA/IF9fcmVhZF9v bmNlX3NpemVfbm9jaGVjay5jb25zdHByb3AuNysweDIwLzB4MjAKWyAgNjk5Ljg1NjYwMV0gID8g X19zYXZlX3N0YWNrX3RyYWNlKzB4NWUvMHgxMDAKWyAgNjk5Ljg1NzQ3Nl0gIHVud2luZF9uZXh0 X2ZyYW1lLnBhcnQuNSsweDE4ZS8weDQ5MApbICA2OTkuODU4NDQ4XSAgPyB1bndpbmRfZHVtcCsw eDI5MC8weDI5MApbICA2OTkuODU5MjE3XSAgPyBjbGVhcl9wYWdlX2RpcnR5X2Zvcl9pbysweDMz Mi8weDQ1MApbICA2OTkuODYwMTg1XSAgX191bndpbmRfc3RhcnQrMHgxMDYvMHgxOTAKWyAgNjk5 Ljg2MDk3NF0gIF9fc2F2ZV9zdGFja190cmFjZSsweDVlLzB4MTAwClsgIDY5OS44NjE4MDhdICA/ IF9fc2F2ZV9zdGFja190cmFjZSsweDVlLzB4MTAwClsgIDY5OS44NjI2OTFdICA/IHVubGlua19h bm9uX3ZtYXMrMHhiYS8weDJjMApbICA2OTkuODYzNTI1XSAgc2F2ZV9zdGFja190cmFjZSsweDFm LzB4MzAKWyAgNjk5Ljg2NDMxMl0gIHNhdmVfc3RhY2srMHg0Ni8weGQwClsgIDY5OS44NjQ5OTNd ICA/IF9fYWxsb2NfcGFnZXNfc2xvd3BhdGgrMHgxNDIwLzB4MTQyMApbICA2OTkuODY1OTkwXSAg PyBmbHVzaF90bGJfbW1fcmFuZ2UrMHgxNWUvMHgyMjAKWyAgNjk5Ljg2Njg4OV0gID8ga2FzYW5f Y2hlY2tfd3JpdGUrMHgxNC8weDIwClsgIDY5OS44Njc3MjRdICA/IF9fZGVjX25vZGVfc3RhdGUr MHg5Mi8weGIwClsgIDY5OS44Njg1NDNdICA/IGxvY2tfcGFnZV9tZW1jZysweDg1LzB4ZjAKWyAg Njk5Ljg2OTM1MF0gID8gdW5sb2NrX3BhZ2VfbWVtY2crMHgxNi8weDgwClsgIDY5OS44NzAxODVd ICA/IHBhZ2VfcmVtb3ZlX3JtYXArMHgxOTgvMHg1MjAKWyAgNjk5Ljg3MTA0OF0gID8gbWFya19w YWdlX2FjY2Vzc2VkKzB4MTMzLzB4MjAwClsgIDY5OS44NzE5MzBdICA/IF9jb25kX3Jlc2NoZWQr MHgxYS8weDUwClsgIDY5OS44NzI3MDBdICA/IHVubWFwX3BhZ2VfcmFuZ2UrMHhjZDQvMHhlNTAK WyAgNjk5Ljg3MzU1MV0gID8gcmJfbmV4dCsweDU4LzB4ODAKWyAgNjk5Ljg3NDIxN10gID8gcmJf bmV4dCsweDU4LzB4ODAKWyAgNjk5Ljg3NDg5NV0gIF9fa2FzYW5fc2xhYl9mcmVlKzB4MTNjLzB4 MWEwClsgIDY5OS44NzU3MzRdICA/IHVubGlua19hbm9uX3ZtYXMrMHhiYS8weDJjMApbICA2OTku ODc2NTYzXSAga2FzYW5fc2xhYl9mcmVlKzB4ZS8weDEwClsgIDY5OS44NzczMTVdICBrbWVtX2Nh Y2hlX2ZyZWUrMHg4OS8weDFlMApbICA2OTkuODc4MDk1XSAgdW5saW5rX2Fub25fdm1hcysweGJh LzB4MmMwClsgIDY5OS44Nzg5MTNdICBmcmVlX3BndGFibGVzKzB4MTAxLzB4MWIwClsgIDY5OS44 Nzk2NzddICBleGl0X21tYXArMHgxNDYvMHgyYTAKWyAgNjk5Ljg4MDM3OF0gID8gX19pYTMyX3N5 c19tdW5tYXArMHg1MC8weDUwClsgIDY5OS44ODEyMTRdICA/IGthc2FuX2NoZWNrX3JlYWQrMHgx MS8weDIwClsgIDY5OS44ODIwNTJdICA/IG1tX3VwZGF0ZV9uZXh0X293bmVyKzB4MzIyLzB4Mzgw ClsgIDY5OS44ODI5ODVdICBtbXB1dCsweDhiLzB4MWQwClsgIDY5OS44ODM2MDJdICBkb19leGl0 KzB4NDNhLzB4MTM5MApbICA2OTkuODg0Mjg4XSAgPyBtbV91cGRhdGVfbmV4dF9vd25lcisweDM4 MC8weDM4MApbICA2OTkuODg1MjEyXSAgPyBmMmZzX3N5bmNfZmlsZSsweDlhLzB4YjAKWyAgNjk5 Ljg4NTk5NV0gID8gZjJmc19kb19zeW5jX2ZpbGUrMHhkOTAvMHhkOTAKWyAgNjk5Ljg4Njg3N10g ID8gdmZzX2ZzeW5jX3JhbmdlKzB4NjgvMHgxMDAKWyAgNjk5Ljg4NzY5NF0gID8gX19mZ2V0X2xp Z2h0KzB4YzkvMHhlMApbICA2OTkuODg4NDQyXSAgPyBkb19mc3luYysweDNkLzB4NzAKWyAgNjk5 Ljg4OTExOF0gID8gX194NjRfc3lzX2ZkYXRhc3luYysweDI0LzB4MzAKWyAgNjk5Ljg4OTk5Nl0g IHJld2luZF9zdGFja19kb19leGl0KzB4MTcvMHgyMApbICA2OTkuODkwODYwXSBSSVA6IDAwMzM6 MHg3ZjliZjkzMGQ4MDAKWyAgNjk5Ljg5MTU4NV0gQ29kZTogQmFkIFJJUCB2YWx1ZS4KWyAgNjk5 Ljg5MjI2OF0gUlNQOiAwMDJiOjAwMDA3ZmZlZTM2MDZjNjggRUZMQUdTOiAwMDAwMDI0NiBPUklH X1JBWDogMDAwMDAwMDAwMDAwMDA0YgpbICA2OTkuODkzNzgxXSBSQVg6IGZmZmZmZmZmZmZmZmZm ZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDdmOWJmOTMwZDgwMApbICA2OTkuODk1 MjIwXSBSRFg6IDAwMDAwMDAwMDAwMDgwMDAgUlNJOiAwMDAwMDAwMDAwNjAxMGEwIFJESTogMDAw MDAwMDAwMDAwMDAwMwpbICA2OTkuODk2NjQzXSBSQlA6IDAwMDA3ZmZlZTM2MDZjYTAgUjA4OiAw MDAwMDAwMDAxNTAzMDEwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApbICA2OTkuODk4MDY5XSBSMTA6 IDAwMDAwMDAwMDAwMDAyZTggUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDQw MDYxMApbICA2OTkuODk5NTA1XSBSMTM6IDAwMDA3ZmZlZTM2MDZkYTAgUjE0OiAwMDAwMDAwMDAw MDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAoKWyAgNjk5LjkwMTI0MV0gVGhlIGJ1Z2d5IGFk ZHJlc3MgYmVsb25ncyB0byB0aGUgcGFnZToKWyAgNjk5LjkwMjIxNV0gcGFnZTpmZmZmZWEwMDA3 ZDBlYmMwIGNvdW50OjAgbWFwY291bnQ6MCBtYXBwaW5nOjAwMDAwMDAwMDAwMDAwMDAgaW5kZXg6 MHgwClsgIDY5OS45MDM4MTFdIGZsYWdzOiAweDJmZmZmMDAwMDAwMDAwMCgpClsgIDY5OS45MDQ1 ODVdIHJhdzogMDJmZmZmMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIGZmZmZmZmZmMDdkMDAx MDEgMDAwMDAwMDAwMDAwMDAwMApbICA2OTkuOTA2MTI1XSByYXc6IDAwMDAwMDAwMDAwMDAwMDAg MDAwMDAwMDAwMDI0MDAwMCAwMDAwMDAwMGZmZmZmZmZmIDAwMDAwMDAwMDAwMDAwMDAKWyAgNjk5 LjkwNzY3M10gcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQK ClsgIDY5OS45MDkxMDhdIE1lbW9yeSBzdGF0ZSBhcm91bmQgdGhlIGJ1Z2d5IGFkZHJlc3M6Clsg IDY5OS45MTAwNzddICBmZmZmODgwMWY0M2FmODAwOiAwMCBmMSBmMSBmMSBmMSAwMCBmNCBmNCBm NCBmMyBmMyBmMyBmMyAwMCAwMCAwMApbICA2OTkuOTExNTI4XSAgZmZmZjg4MDFmNDNhZjg4MDog MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKWyAgNjk5Ljkx Mjk1M10gPmZmZmY4ODAxZjQzYWY5MDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGYxIDAxIGY0 IGY0IGY0IGYyIGYyIGYyClsgIDY5OS45MTQzOTJdICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeClsgIDY5OS45MTU3NThdICBmZmZm ODgwMWY0M2FmOTgwOiBmMiAwMCBmNCBmNCAwMCAwMCAwMCAwMCBmMiAwMCAwMCAwMCAwMCAwMCAw MCAwMApbICA2OTkuOTE3MTkzXSAgZmZmZjg4MDFmNDNhZmEwMDogMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgZjMgZjMgZjMgMDAgMDAgMDAgMDAKWyAgNjk5LjkxODYzNF0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgot IExvY2F0aW9uCmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y0LjE4LXJjMS9zb3Vy Y2UvZnMvZjJmcy9zZWdtZW50LmgjTDY0NAoKUmVwb3J0ZWQtYnkgV2VuIFh1IDx3ZW4ueHVAZ2F0 ZWNoLmVkdT4KU2lnbmVkLW9mZi1ieTogQ2hhbyBZdSA8eXVjaGFvMEBodWF3ZWkuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgpbYndoOiBCYWNrcG9y dGVkIHRvIDQuMTQ6CiAtIEVycm9yIGxhYmVsIGlzIGRpZmZlcmVudCBpbiB2YWxpZGF0ZV9jaGVj a3BvaW50KCkgZHVlIHRvIHRoZSBlYXJsaWVyCiAgIGJhY2twb3J0IG9mICJmMmZzOiBmaXggaW52 YWxpZCBtZW1vcnkgYWNjZXNzIgogLSBBZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVu IEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvZjJmcy9j aGVja3BvaW50LmMgfCAyMiArKysrKysrKysrKysrKysrKysrLS0tCiBmcy9mMmZzL2RhdGEuYyAg ICAgICB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZnMvZjJmcy9mMmZz LmggICAgICAgfCAgMyArKysKIGZzL2YyZnMvZmlsZS5jICAgICAgIHwgMTIgKysrKysrKysrKysr CiBmcy9mMmZzL2lub2RlLmMgICAgICB8IDE3ICsrKysrKysrKysrKysrKysrCiBmcy9mMmZzL25v ZGUuYyAgICAgICB8ICA0ICsrKysKIGZzL2YyZnMvc2VnbWVudC5oICAgIHwgIDMgKy0tCiA3IGZp bGVzIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2ZzL2YyZnMvY2hlY2twb2ludC5jIGIvZnMvZjJmcy9jaGVja3BvaW50LmMKaW5kZXggZDdi ZDk3NDVlODgzLi5jODFjZDUwNTdiOGUgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvY2hlY2twb2ludC5j CisrKyBiL2ZzL2YyZnMvY2hlY2twb2ludC5jCkBAIC04Niw4ICs4NiwxMCBAQCBzdGF0aWMgc3Ry dWN0IHBhZ2UgKl9fZ2V0X21ldGFfcGFnZShzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIHBnb2Zm X3QgaW5kZXgsCiAJZmlvLnBhZ2UgPSBwYWdlOwogCiAJaWYgKGYyZnNfc3VibWl0X3BhZ2VfYmlv KCZmaW8pKSB7Ci0JCWYyZnNfcHV0X3BhZ2UocGFnZSwgMSk7Ci0JCWdvdG8gcmVwZWF0OworCQlt ZW1zZXQocGFnZV9hZGRyZXNzKHBhZ2UpLCAwLCBQQUdFX1NJWkUpOworCQlmMmZzX3N0b3BfY2hl Y2twb2ludChzYmksIGZhbHNlKTsKKwkJZjJmc19idWdfb24oc2JpLCAxKTsKKwkJcmV0dXJuIHBh Z2U7CiAJfQogCiAJbG9ja19wYWdlKHBhZ2UpOwpAQCAtMTQxLDggKzE0MywxNCBAQCBib29sIGYy ZnNfaXNfdmFsaWRfYmxrYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCiAJY2FzZSBNRVRB X1BPUjoKIAljYXNlIERBVEFfR0VORVJJQzoKIAkJaWYgKHVubGlrZWx5KGJsa2FkZHIgPj0gTUFY X0JMS0FERFIoc2JpKSB8fAotCQkJYmxrYWRkciA8IE1BSU5fQkxLQUREUihzYmkpKSkKKwkJCWJs a2FkZHIgPCBNQUlOX0JMS0FERFIoc2JpKSkpIHsKKwkJCWlmICh0eXBlID09IERBVEFfR0VORVJJ QykgeworCQkJCWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fV0FSTklORywKKwkJCQkJImFjY2VzcyBp bnZhbGlkIGJsa2FkZHI6JXUiLCBibGthZGRyKTsKKwkJCQlXQVJOX09OKDEpOworCQkJfQogCQkJ cmV0dXJuIGZhbHNlOworCQl9CiAJCWJyZWFrOwogCWNhc2UgTUVUQV9HRU5FUklDOgogCQlpZiAo dW5saWtlbHkoYmxrYWRkciA8IFNFRzBfQkxLQUREUihzYmkpIHx8CkBAIC03NDYsNiArNzU0LDE0 IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqdmFsaWRhdGVfY2hlY2twb2ludChzdHJ1Y3QgZjJmc19z Yl9pbmZvICpzYmksCiAJCQkJCSZjcF9wYWdlXzEsIHZlcnNpb24pOwogCWlmIChlcnIpCiAJCXJl dHVybiBOVUxMOworCisJaWYgKGxlMzJfdG9fY3B1KGNwX2Jsb2NrLT5jcF9wYWNrX3RvdGFsX2Js b2NrX2NvdW50KSA+CisJCQkJCXNiaS0+YmxvY2tzX3Blcl9zZWcpIHsKKwkJZjJmc19tc2coc2Jp LT5zYiwgS0VSTl9XQVJOSU5HLAorCQkJImludmFsaWQgY3BfcGFja190b3RhbF9ibG9ja19jb3Vu dDoldSIsCisJCQlsZTMyX3RvX2NwdShjcF9ibG9jay0+Y3BfcGFja190b3RhbF9ibG9ja19jb3Vu dCkpOworCQlnb3RvIGludmFsaWRfY3A7CisJfQogCXByZV92ZXJzaW9uID0gKnZlcnNpb247CiAK IAljcF9hZGRyICs9IGxlMzJfdG9fY3B1KGNwX2Jsb2NrLT5jcF9wYWNrX3RvdGFsX2Jsb2NrX2Nv dW50KSAtIDE7CmRpZmYgLS1naXQgYS9mcy9mMmZzL2RhdGEuYyBiL2ZzL2YyZnMvZGF0YS5jCmlu ZGV4IDYxNTg3ODgwNjYxMS4uOGY2ZTdjM2ExMGY4IDEwMDY0NAotLS0gYS9mcy9mMmZzL2RhdGEu YworKysgYi9mcy9mMmZzL2RhdGEuYwpAQCAtMzY5LDcgKzM2OSwxMCBAQCBpbnQgZjJmc19zdWJt aXRfcGFnZV9iaW8oc3RydWN0IGYyZnNfaW9faW5mbyAqZmlvKQogCXN0cnVjdCBwYWdlICpwYWdl ID0gZmlvLT5lbmNyeXB0ZWRfcGFnZSA/CiAJCQlmaW8tPmVuY3J5cHRlZF9wYWdlIDogZmlvLT5w YWdlOwogCi0JdmVyaWZ5X2Jsb2NrX2FkZHIoZmlvLCBmaW8tPm5ld19ibGthZGRyKTsKKwlpZiAo IWYyZnNfaXNfdmFsaWRfYmxrYWRkcihmaW8tPnNiaSwgZmlvLT5uZXdfYmxrYWRkciwKKwkJCV9f aXNfbWV0YV9pbyhmaW8pID8gTUVUQV9HRU5FUklDIDogREFUQV9HRU5FUklDKSkKKwkJcmV0dXJu IC1FRkFVTFQ7CisKIAl0cmFjZV9mMmZzX3N1Ym1pdF9wYWdlX2JpbyhwYWdlLCBmaW8pOwogCWYy ZnNfdHJhY2VfaW9zKGZpbywgMCk7CiAKQEAgLTk0Niw2ICs5NDksMTIgQEAgaW50IGYyZnNfbWFw X2Jsb2NrcyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZjJmc19tYXBfYmxvY2tzICptYXAs CiBuZXh0X2Jsb2NrOgogCWJsa2FkZHIgPSBkYXRhYmxvY2tfYWRkcihkbi5pbm9kZSwgZG4ubm9k ZV9wYWdlLCBkbi5vZnNfaW5fbm9kZSk7CiAKKwlpZiAoX19pc192YWxpZF9kYXRhX2Jsa2FkZHIo YmxrYWRkcikgJiYKKwkJIWYyZnNfaXNfdmFsaWRfYmxrYWRkcihzYmksIGJsa2FkZHIsIERBVEFf R0VORVJJQykpIHsKKwkJZXJyID0gLUVGQVVMVDsKKwkJZ290byBzeW5jX291dDsKKwl9CisKIAlp ZiAoIWlzX3ZhbGlkX2RhdGFfYmxrYWRkcihzYmksIGJsa2FkZHIpKSB7CiAJCWlmIChjcmVhdGUp IHsKIAkJCWlmICh1bmxpa2VseShmMmZzX2NwX2Vycm9yKHNiaSkpKSB7CkBAIC0xMjY0LDYgKzEy NzMsMTAgQEAgc3RhdGljIGludCBmMmZzX21wYWdlX3JlYWRwYWdlcyhzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywKIAkJCQlTZXRQYWdlVXB0b2RhdGUocGFnZSk7CiAJCQkJZ290byBjb25m dXNlZDsKIAkJCX0KKworCQkJaWYgKCFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoRjJGU19JX1NCKGlu b2RlKSwgYmxvY2tfbnIsCisJCQkJCQkJCURBVEFfR0VORVJJQykpCisJCQkJZ290byBzZXRfZXJy b3JfcGFnZTsKIAkJfSBlbHNlIHsKIAkJCXplcm9fdXNlcl9zZWdtZW50KHBhZ2UsIDAsIFBBR0Vf U0laRSk7CiAJCQlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSkKQEAgLTE0MDIsMTEgKzE0MTUsMTMg QEAgaW50IGRvX3dyaXRlX2RhdGFfcGFnZShzdHJ1Y3QgZjJmc19pb19pbmZvICpmaW8pCiAJCQlm MmZzX2xvb2t1cF9leHRlbnRfY2FjaGUoaW5vZGUsIHBhZ2UtPmluZGV4LCAmZWkpKSB7CiAJCWZp by0+b2xkX2Jsa2FkZHIgPSBlaS5ibGsgKyBwYWdlLT5pbmRleCAtIGVpLmZvZnM7CiAKLQkJaWYg KGlzX3ZhbGlkX2RhdGFfYmxrYWRkcihmaW8tPnNiaSwgZmlvLT5vbGRfYmxrYWRkcikpIHsKLQkJ CWlwdV9mb3JjZSA9IHRydWU7Ci0JCQlmaW8tPm5lZWRfbG9jayA9IExPQ0tfRE9ORTsKLQkJCWdv dG8gZ290X2l0OwotCQl9CisJCWlmICghZjJmc19pc192YWxpZF9ibGthZGRyKGZpby0+c2JpLCBm aW8tPm9sZF9ibGthZGRyLAorCQkJCQkJCURBVEFfR0VORVJJQykpCisJCQlyZXR1cm4gLUVGQVVM VDsKKworCQlpcHVfZm9yY2UgPSB0cnVlOworCQlmaW8tPm5lZWRfbG9jayA9IExPQ0tfRE9ORTsK KwkJZ290byBnb3RfaXQ7CiAJfQogCiAJLyogRGVhZGxvY2sgZHVlIHRvIGJldHdlZW4gcGFnZS0+ bG9jayBhbmQgZjJmc19sb2NrX29wICovCkBAIC0xNDI1LDYgKzE0NDAsMTIgQEAgaW50IGRvX3dy aXRlX2RhdGFfcGFnZShzdHJ1Y3QgZjJmc19pb19pbmZvICpmaW8pCiAJCWdvdG8gb3V0X3dyaXRl cGFnZTsKIAl9CiBnb3RfaXQ6CisJaWYgKF9faXNfdmFsaWRfZGF0YV9ibGthZGRyKGZpby0+b2xk X2Jsa2FkZHIpICYmCisJCSFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoZmlvLT5zYmksIGZpby0+b2xk X2Jsa2FkZHIsCisJCQkJCQkJREFUQV9HRU5FUklDKSkgeworCQllcnIgPSAtRUZBVUxUOworCQln b3RvIG91dF93cml0ZXBhZ2U7CisJfQogCS8qCiAJICogSWYgY3VycmVudCBhbGxvY2F0aW9uIG5l ZWRzIFNTUiwKIAkgKiBpdCBoYWQgYmV0dGVyIGluLXBsYWNlIHdyaXRlcyBmb3IgdXBkYXRlZCBk YXRhLgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9mMmZzLmggYi9mcy9mMmZzL2YyZnMuaAppbmRleCBk MTVkNzk0NTdmNWMuLjNmMWE0NDY5NjAzNiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9mMmZzLmgKKysr IGIvZnMvZjJmcy9mMmZzLmgKQEAgLTIzNTcsNiArMjM1Nyw5IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBmMmZzX3VwZGF0ZV9pb3N0YXQoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCXNwaW5fdW5s b2NrKCZzYmktPmlvc3RhdF9sb2NrKTsKIH0KIAorI2RlZmluZSBfX2lzX21ldGFfaW8oZmlvKSAo UEFHRV9UWVBFX09GX0JJTyhmaW8tPnR5cGUpID09IE1FVEEgJiYJXAorCQkJCSghaXNfcmVhZF9p byhmaW8tPm9wKSB8fCBmaW8tPmlzX21ldGEpKQorCiBib29sIGYyZnNfaXNfdmFsaWRfYmxrYWRk cihzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksCiAJCQkJCWJsb2NrX3QgYmxrYWRkciwgaW50IHR5 cGUpOwogdm9pZCBmMmZzX21zZyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBjb25zdCBjaGFyICps ZXZlbCwgY29uc3QgY2hhciAqZm10LCAuLi4pOwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9maWxlLmMg Yi9mcy9mMmZzL2ZpbGUuYwppbmRleCBlOWM1NzVlZjcwYjUuLjdkMzE4OWYxOTQxYyAxMDA2NDQK LS0tIGEvZnMvZjJmcy9maWxlLmMKKysrIGIvZnMvZjJmcy9maWxlLmMKQEAgLTM5Nyw2ICszOTcs MTMgQEAgc3RhdGljIGxvZmZfdCBmMmZzX3NlZWtfYmxvY2soc3RydWN0IGZpbGUgKmZpbGUsIGxv ZmZfdCBvZmZzZXQsIGludCB3aGVuY2UpCiAJCQlibGthZGRyID0gZGF0YWJsb2NrX2FkZHIoZG4u aW5vZGUsCiAJCQkJCWRuLm5vZGVfcGFnZSwgZG4ub2ZzX2luX25vZGUpOwogCisJCQlpZiAoX19p c192YWxpZF9kYXRhX2Jsa2FkZHIoYmxrYWRkcikgJiYKKwkJCQkhZjJmc19pc192YWxpZF9ibGth ZGRyKEYyRlNfSV9TQihpbm9kZSksCisJCQkJCQlibGthZGRyLCBEQVRBX0dFTkVSSUMpKSB7CisJ CQkJZjJmc19wdXRfZG5vZGUoJmRuKTsKKwkJCQlnb3RvIGZhaWw7CisJCQl9CisKIAkJCWlmIChf X2ZvdW5kX29mZnNldChGMkZTX0lfU0IoaW5vZGUpLCBibGthZGRyLCBkaXJ0eSwKIAkJCQkJCQlw Z29mcywgd2hlbmNlKSkgewogCQkJCWYyZnNfcHV0X2Rub2RlKCZkbik7CkBAIC00OTYsNiArNTAz LDExIEBAIGludCB0cnVuY2F0ZV9kYXRhX2Jsb2Nrc19yYW5nZShzdHJ1Y3QgZG5vZGVfb2ZfZGF0 YSAqZG4sIGludCBjb3VudCkKIAogCQlkbi0+ZGF0YV9ibGthZGRyID0gTlVMTF9BRERSOwogCQlz ZXRfZGF0YV9ibGthZGRyKGRuKTsKKworCQlpZiAoX19pc192YWxpZF9kYXRhX2Jsa2FkZHIoYmxr YWRkcikgJiYKKwkJCSFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBibGthZGRyLCBEQVRBX0dF TkVSSUMpKQorCQkJY29udGludWU7CisKIAkJaW52YWxpZGF0ZV9ibG9ja3Moc2JpLCBibGthZGRy KTsKIAkJaWYgKGRuLT5vZnNfaW5fbm9kZSA9PSAwICYmIElTX0lOT0RFKGRuLT5ub2RlX3BhZ2Up KQogCQkJY2xlYXJfaW5vZGVfZmxhZyhkbi0+aW5vZGUsIEZJX0ZJUlNUX0JMT0NLX1dSSVRURU4p OwpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9pbm9kZS5jIGIvZnMvZjJmcy9pbm9kZS5jCmluZGV4IGJl N2Q5NzczZDI5MS4uYWVlZDk5NDM4MzZhIDEwMDY0NAotLS0gYS9mcy9mMmZzL2lub2RlLmMKKysr IGIvZnMvZjJmcy9pbm9kZS5jCkBAIC0yMTQsNiArMjE0LDIzIEBAIHN0YXRpYyBib29sIHNhbml0 eV9jaGVja19pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcGFnZSAqbm9kZV9wYWdl KQogCQkJX19mdW5jX18sIGlub2RlLT5pX2lubyk7CiAJCXJldHVybiBmYWxzZTsKIAl9CisKKwlp ZiAoRjJGU19JKGlub2RlKS0+ZXh0ZW50X3RyZWUpIHsKKwkJc3RydWN0IGV4dGVudF9pbmZvICpl aSA9ICZGMkZTX0koaW5vZGUpLT5leHRlbnRfdHJlZS0+bGFyZ2VzdDsKKworCQlpZiAoZWktPmxl biAmJgorCQkJKCFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBlaS0+YmxrLCBEQVRBX0dFTkVS SUMpIHx8CisJCQkhZjJmc19pc192YWxpZF9ibGthZGRyKHNiaSwgZWktPmJsayArIGVpLT5sZW4g LSAxLAorCQkJCQkJCURBVEFfR0VORVJJQykpKSB7CisJCQlzZXRfc2JpX2ZsYWcoc2JpLCBTQklf TkVFRF9GU0NLKTsKKwkJCWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fV0FSTklORywKKwkJCQkiJXM6 IGlub2RlIChpbm89JWx4KSBleHRlbnQgaW5mbyBbJXUsICV1LCAldV0gIgorCQkJCSJpcyBpbmNv cnJlY3QsIHJ1biBmc2NrIHRvIGZpeCIsCisJCQkJX19mdW5jX18sIGlub2RlLT5pX2lubywKKwkJ CQllaS0+YmxrLCBlaS0+Zm9mcywgZWktPmxlbik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9 CiAJcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL2YyZnMvbm9kZS5jIGIvZnMvZjJm cy9ub2RlLmMKaW5kZXggOTk5ODE0YzhjYmVhLi42YWRiNmM2MGYwMTcgMTAwNjQ0Ci0tLSBhL2Zz L2YyZnMvbm9kZS5jCisrKyBiL2ZzL2YyZnMvbm9kZS5jCkBAIC0xMzk4LDYgKzEzOTgsMTAgQEAg c3RhdGljIGludCBfX3dyaXRlX25vZGVfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgYm9vbCBhdG9t aWMsIGJvb2wgKnN1Ym1pdHRlZCwKIAkJcmV0dXJuIDA7CiAJfQogCisJaWYgKF9faXNfdmFsaWRf ZGF0YV9ibGthZGRyKG5pLmJsa19hZGRyKSAmJgorCQkhZjJmc19pc192YWxpZF9ibGthZGRyKHNi aSwgbmkuYmxrX2FkZHIsIERBVEFfR0VORVJJQykpCisJCWdvdG8gcmVkaXJ0eV9vdXQ7CisKIAlp ZiAoYXRvbWljICYmICF0ZXN0X29wdChzYmksIE5PQkFSUklFUikpCiAJCWZpby5vcF9mbGFncyB8 PSBSRVFfUFJFRkxVU0ggfCBSRVFfRlVBOwogCmRpZmYgLS1naXQgYS9mcy9mMmZzL3NlZ21lbnQu aCBiL2ZzL2YyZnMvc2VnbWVudC5oCmluZGV4IGRkOGY5NzdmYzI3My4uNDczNDhkOTgxNjViIDEw MDY0NAotLS0gYS9mcy9mMmZzL3NlZ21lbnQuaAorKysgYi9mcy9mMmZzL3NlZ21lbnQuaApAQCAt NjI5LDggKzYyOSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2ZXJpZnlfYmxvY2tfYWRkcihzdHJ1 Y3QgZjJmc19pb19pbmZvICpmaW8sIGJsb2NrX3QgYmxrX2FkZHIpCiB7CiAJc3RydWN0IGYyZnNf c2JfaW5mbyAqc2JpID0gZmlvLT5zYmk7CiAKLQlpZiAoUEFHRV9UWVBFX09GX0JJTyhmaW8tPnR5 cGUpID09IE1FVEEgJiYKLQkJCQkoIWlzX3JlYWRfaW8oZmlvLT5vcCkgfHwgZmlvLT5pc19tZXRh KSkKKwlpZiAoX19pc19tZXRhX2lvKGZpbykpCiAJCXZlcmlmeV9ibGthZGRyKHNiaSwgYmxrX2Fk ZHIsIE1FVEFfR0VORVJJQyk7CiAJZWxzZQogCQl2ZXJpZnlfYmxrYWRkcihzYmksIGJsa19hZGRy LCBEQVRBX0dFTkVSSUMpOwotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxvcGVyICAg ICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29kZXRoaW5r LmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwgVW5pdGVk IEtpbmdkb20KCgpGcm9tIGQ1MmU2NmIyNDkyYzhiNGU4ODU0MTA1NzkyMDgxODA3NzA4ZGZjOGQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoYW8gWXUgPHl1Y2hhbzBAaHVhd2VpLmNv bT4KRGF0ZTogU3VuLCA4IEp1bCAyMDE4IDIyOjE2OjU1ICswODAwClN1YmplY3Q6IFtQQVRDSCA0 My80Nl0gZjJmczogZml4IHRvIGRvIHNhbml0eSBjaGVjayB3aXRoIGlfZXh0cmFfaXNpemUKCmNv bW1pdCAxOGRkNjQ3MGMyZDE0ZDEwZjVhMmRkOTI2OTI1ZGM4MGRiZDNhYmZkIHVwc3RyZWFtLgoK SWYgaW5vZGUuaV9leHRyYV9pc2l6ZSB3YXMgZnV6emVkIHRvIGFuIGFibm9ybWFsIHZhbHVlLCB3 aGVuCmNhbGN1bGF0aW5nIGlubGluZSBkYXRhIHNpemUsIHRoZSByZXN1bHQgd2lsbCBvdmVyZmxv dywgcmVzdWx0CmluIGFjY2Vzc2luZyBpbnZhbGlkIG1lbW9yeSBhcmVhIHdoZW4gb3BlcmF0aW5n IGlubGluZSBkYXRhLgoKTGV0J3MgZG8gc2FuaXR5IGNoZWNrIHdpdGggaV9leHRyYV9pc2l6ZSBk dXJpbmcgaW5vZGUgbG9hZGluZwpmb3IgZml4aW5nLgoKaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwu b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA0MjEKCi0gUmVwcm9kdWNlCgotIFBPQyAocG9jLmMpCiAg ICAjZGVmaW5lIF9HTlVfU09VUkNFCiAgICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgICAjaW5j bHVkZSA8c3lzL21vdW50Lmg+CiAgICAjaW5jbHVkZSA8c3lzL21tYW4uaD4KICAgICNpbmNsdWRl IDxzeXMvc3RhdC5oPgogICAgI2luY2x1ZGUgPHN5cy94YXR0ci5oPgoKICAgICNpbmNsdWRlIDxk aXJlbnQuaD4KICAgICNpbmNsdWRlIDxlcnJuby5oPgogICAgI2luY2x1ZGUgPGVycm9yLmg+CiAg ICAjaW5jbHVkZSA8ZmNudGwuaD4KICAgICNpbmNsdWRlIDxzdGRpby5oPgogICAgI2luY2x1ZGUg PHN0ZGxpYi5oPgogICAgI2luY2x1ZGUgPHN0cmluZy5oPgogICAgI2luY2x1ZGUgPHVuaXN0ZC5o PgoKICAgICNpbmNsdWRlIDxsaW51eC9mYWxsb2MuaD4KICAgICNpbmNsdWRlIDxsaW51eC9sb29w Lmg+CgogICAgc3RhdGljIHZvaWQgYWN0aXZpdHkoY2hhciAqbXBvaW50KSB7CgogICAgICBjaGFy ICpmb29fYmFyX2JhejsKICAgICAgY2hhciAqZm9vX2JhejsKICAgICAgY2hhciAqeGF0dHI7CiAg ICAgIGludCBlcnI7CgogICAgICBlcnIgPSBhc3ByaW50ZigmZm9vX2Jhcl9iYXosICIlcy9mb28v YmFyL2JheiIsIG1wb2ludCk7CiAgICAgIGVyciA9IGFzcHJpbnRmKCZmb29fYmF6LCAiJXMvZm9v L2JheiIsIG1wb2ludCk7CiAgICAgIGVyciA9IGFzcHJpbnRmKCZ4YXR0ciwgIiVzL2Zvby9iYXIv eGF0dHIiLCBtcG9pbnQpOwoKICAgICAgcmVuYW1lKGZvb19iYXJfYmF6LCBmb29fYmF6KTsKCiAg ICAgIGNoYXIgYnVmMlsxMTNdOwogICAgICBtZW1zZXQoYnVmMiwgMCwgc2l6ZW9mKGJ1ZjIpKTsK ICAgICAgbGlzdHhhdHRyKHhhdHRyLCBidWYyLCBzaXplb2YoYnVmMikpOwogICAgICByZW1vdmV4 YXR0cih4YXR0ciwgInVzZXIubWltZV90eXBlIik7CgogICAgfQoKICAgIGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pIHsKICAgICAgYWN0aXZpdHkoYXJndlsxXSk7CiAgICAgIHJldHVy biAwOwogICAgfQoKLSBLZXJuZWwgbWVzc2FnZQpVbW91bnQgdGhlIGltYWdlIHdpbGwgbGVhdmUg dGhlIGZvbGxvd2luZyBtZXNzYWdlClsgMjkxMC45OTU0ODldIEYyRlMtZnMgKGxvb3AwKTogTW91 bnRlZCB3aXRoIGNoZWNrcG9pbnQgdmVyc2lvbiA9IDIKWyAyOTE4LjQxNjQ2NV0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClsgMjkxOC40MTY4MDddIEJVRzogS0FTQU46IHNsYWItb3V0LW9mLWJvdW5kcyBpbiBmMmZzX2ln ZXQrMHhjYjkvMHgxYTgwClsgMjkxOC40MTcwMDldIFJlYWQgb2Ygc2l6ZSA0IGF0IGFkZHIgZmZm Zjg4MDE4ZWZjMjA2OCBieSB0YXNrIGEub3V0LzEyMjkKClsgMjkxOC40MTczMTFdIENQVTogMSBQ SUQ6IDEyMjkgQ29tbTogYS5vdXQgTm90IHRhaW50ZWQgNC4xNy4wKyAjMQpbIDI5MTguNDE3MzE0 XSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwg QklPUyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEvMjAxNApbIDI5MTguNDE3MzIzXSBDYWxs IFRyYWNlOgpbIDI5MTguNDE3MzY2XSAgZHVtcF9zdGFjaysweDcxLzB4YWIKWyAyOTE4LjQxNzQw MV0gIHByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24rMHg2Yi8weDI5MApbIDI5MTguNDE3NDA3XSAg a2FzYW5fcmVwb3J0KzB4MjhlLzB4MzkwClsgMjkxOC40MTc0MTFdICA/IGYyZnNfaWdldCsweGNi OS8weDFhODAKWyAyOTE4LjQxNzQxNV0gIGYyZnNfaWdldCsweGNiOS8weDFhODAKWyAyOTE4LjQx NzQyMl0gID8gZjJmc19sb29rdXArMHgyZTcvMHg1ODAKWyAyOTE4LjQxNzQyNV0gIGYyZnNfbG9v a3VwKzB4MmU3LzB4NTgwClsgMjkxOC40MTc0MzNdICA/IF9fcmVjb3Zlcl9kb3RfZGVudHJpZXMr MHg0MDAvMHg0MDAKWyAyOTE4LjQxNzQ0N10gID8gbGVnaXRpbWl6ZV9wYXRoLmlzcmEuMjkrMHg1 YS8weGEwClsgMjkxOC40MTc0NTNdICBfX2xvb2t1cF9zbG93KzB4MTFjLzB4MjIwClsgMjkxOC40 MTc0NTddICA/IG1heV9kZWxldGUrMHgyYTAvMHgyYTAKWyAyOTE4LjQxNzQ3NV0gID8gZGVyZWZf c3RhY2tfcmVnKzB4ZTAvMHhlMApbIDI5MTguNDE3NDc5XSAgPyBfX2xvb2t1cF9oYXNoKzB4YjAv MHhiMApbIDI5MTguNDE3NDgzXSAgbG9va3VwX3Nsb3crMHgzZS8weDYwClsgMjkxOC40MTc0ODhd ICB3YWxrX2NvbXBvbmVudCsweDNhYy8weDk5MApbIDI5MTguNDE3NDkyXSAgPyBnZW5lcmljX3Bl cm1pc3Npb24rMHg1MS8weDFlMApbIDI5MTguNDE3NDk1XSAgPyBpbm9kZV9wZXJtaXNzaW9uKzB4 NTEvMHgxZDAKWyAyOTE4LjQxNzQ5OV0gID8gcGlja19saW5rKzB4M2UwLzB4M2UwClsgMjkxOC40 MTc1MDJdICA/IGxpbmtfcGF0aF93YWxrKzB4NGIxLzB4NzcwClsgMjkxOC40MTc1MTNdICA/IF9y YXdfc3Bpbl9sb2NrX2lycXNhdmUrMHgyNS8weDUwClsgMjkxOC40MTc1MThdICA/IHdhbGtfY29t cG9uZW50KzB4OTkwLzB4OTkwClsgMjkxOC40MTc1MjJdICA/IHBhdGhfaW5pdCsweDJlNi8weDU4 MApbIDI5MTguNDE3NTI2XSAgcGF0aF9sb29rdXBhdCsweDEzZi8weDQzMApbIDI5MTguNDE3NTMx XSAgPyB0cmFpbGluZ19zeW1saW5rKzB4M2EwLzB4M2EwClsgMjkxOC40MTc1MzRdICA/IGRvX3Jl bmFtZWF0MisweDI3MC8weDdiMApbIDI5MTguNDE3NTM4XSAgPyBfX2thc2FuX3NsYWJfZnJlZSsw eDE0Yy8weDE5MApbIDI5MTguNDE3NTQxXSAgPyBkb19yZW5hbWVhdDIrMHgyNzAvMHg3YjAKWyAy OTE4LjQxNzU1M10gID8ga21lbV9jYWNoZV9mcmVlKzB4ODUvMHgxZTAKWyAyOTE4LjQxNzU1OF0g ID8gZG9fcmVuYW1lYXQyKzB4MjcwLzB4N2IwClsgMjkxOC40MTc1NjNdICBmaWxlbmFtZV9sb29r dXArMHgxM2MvMHgyODAKWyAyOTE4LjQxNzU2N10gID8gZmlsZW5hbWVfcGFyZW50YXQrMHgyYjAv MHgyYjAKWyAyOTE4LjQxNzU3Ml0gID8ga2FzYW5fdW5wb2lzb25fc2hhZG93KzB4MzEvMHg0MApb IDI5MTguNDE3NTc1XSAgPyBrYXNhbl9rbWFsbG9jKzB4YTYvMHhkMApbIDI5MTguNDE3NTkzXSAg PyBzdHJuY3B5X2Zyb21fdXNlcisweGFhLzB4MWMwClsgMjkxOC40MTc1OThdICA/IGdldG5hbWVf ZmxhZ3MrMHgxMDEvMHgyYjAKWyAyOTE4LjQxNzYxNF0gID8gcGF0aF9saXN0eGF0dHIrMHg4Ny8w eDExMApbIDI5MTguNDE3NjE5XSAgcGF0aF9saXN0eGF0dHIrMHg4Ny8weDExMApbIDI5MTguNDE3 NjIzXSAgPyBsaXN0eGF0dHIrMHhjMC8weGMwClsgMjkxOC40MTc2MzddICA/IG1tX2ZhdWx0X2Vy cm9yKzB4MWIwLzB4MWIwClsgMjkxOC40MTc2NTRdICBkb19zeXNjYWxsXzY0KzB4NzMvMHgxNjAK WyAyOTE4LjQxNzY2MF0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkK WyAyOTE4LjQxNzY3Nl0gUklQOiAwMDMzOjB4N2YyZjNhMzQ4MGQ3ClsgMjkxOC40MTc2NzddIENv ZGU6IGYwIGZmIGZmIDczIDAxIGMzIDQ4IDhiIDBkIGJlIGRkIDJiIDAwIGY3IGQ4IDY0IDg5IDAx IDQ4IDgzIGM4IGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDY2IDkwIGI4IGMy IDAwIDAwIDAwIDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDggOGIgMGQgOTEg ZGQgMmIgMDAgZjcgZDggNjQgODkgMDEgNDgKWyAyOTE4LjQxNzczMl0gUlNQOiAwMDJiOjAwMDA3 ZmZmNDA5NWI3ZDggRUZMQUdTOiAwMDAwMDIwNiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDBjMgpb IDI5MTguNDE3NzQ0XSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAw IFJDWDogMDAwMDdmMmYzYTM0ODBkNwpbIDI5MTguNDE3NzQ2XSBSRFg6IDAwMDAwMDAwMDAwMDAw NzEgUlNJOiAwMDAwN2ZmZjQwOTViODEwIFJESTogMDAwMDAwMDAwMTI2YTBjMApbIDI5MTguNDE3 NzQ5XSBSQlA6IDAwMDA3ZmZmNDA5NWI4OTAgUjA4OiAwMDAwMDAwMDAxMjZhMDEwIFIwOTogMDAw MDAwMDAwMDAwMDAwMApbIDI5MTguNDE3NzUxXSBSMTA6IDAwMDAwMDAwMDAwMDAxYWIgUjExOiAw MDAwMDAwMDAwMDAwMjA2IFIxMjogMDAwMDAwMDAwMDQwMDVlMApbIDI5MTguNDE3NzUzXSBSMTM6 IDAwMDA3ZmZmNDA5NWI5OTAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAw MDAwMAoKWyAyOTE4LjQxNzg1M10gQWxsb2NhdGVkIGJ5IHRhc2sgMzI5OgpbIDI5MTguNDE4MDAy XSAga2FzYW5fa21hbGxvYysweGE2LzB4ZDAKWyAyOTE4LjQxODAwN10gIGttZW1fY2FjaGVfYWxs b2MrMHhjOC8weDFlMApbIDI5MTguNDE4MDIzXSAgbWVtcG9vbF9pbml0X25vZGUrMHgxOTQvMHgy MzAKWyAyOTE4LjQxODAyN10gIG1lbXBvb2xfaW5pdCsweDEyLzB4MjAKWyAyOTE4LjQxODA0Ml0g IGJpb3NldF9pbml0KzB4MmJkLzB4MzgwClsgMjkxOC40MTgwNTJdICBibGtfYWxsb2NfcXVldWVf bm9kZSsweGU5LzB4NTQwClsgMjkxOC40MTgwNzVdICBkbV9jcmVhdGUrMHgyYzAvMHg4MDAKWyAy OTE4LjQxODA4MF0gIGRldl9jcmVhdGUrMHhkMi8weDUzMApbIDI5MTguNDE4MDgzXSAgY3RsX2lv Y3RsKzB4MmEzLzB4NWIwClsgMjkxOC40MTgwODddICBkbV9jdGxfaW9jdGwrMHhhLzB4MTAKWyAy OTE4LjQxODA5Ml0gIGRvX3Zmc19pb2N0bCsweDEzZS8weDhjMApbIDI5MTguNDE4MDk1XSAga3N5 c19pb2N0bCsweDY2LzB4NzAKWyAyOTE4LjQxODA5OF0gIF9feDY0X3N5c19pb2N0bCsweDNkLzB4 NTAKWyAyOTE4LjQxODEwMl0gIGRvX3N5c2NhbGxfNjQrMHg3My8weDE2MApbIDI5MTguNDE4MTA2 XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKWyAyOTE4LjQxODIw NF0gRnJlZWQgYnkgdGFzayAwOgpbIDI5MTguNDE4MzAxXSAoc3RhY2sgaXMgbm90IGF2YWlsYWJs ZSkKClsgMjkxOC40MTg1MjFdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVj dCBhdCBmZmZmODgwMThlZmMwMDAwCiAgICAgICAgICAgICAgICB3aGljaCBiZWxvbmdzIHRvIHRo ZSBjYWNoZSBiaW92ZWMtbWF4IG9mIHNpemUgODE5MgpbIDI5MTguNDE4ODk0XSBUaGUgYnVnZ3kg YWRkcmVzcyBpcyBsb2NhdGVkIDEwNCBieXRlcyB0byB0aGUgcmlnaHQgb2YKICAgICAgICAgICAg ICAgIDgxOTItYnl0ZSByZWdpb24gW2ZmZmY4ODAxOGVmYzAwMDAsIGZmZmY4ODAxOGVmYzIwMDAp ClsgMjkxOC40MTkyNTddIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBhZ2U6Clsg MjkxOC40MTk0MzFdIHBhZ2U6ZmZmZmVhMDAwNjNiZjAwMCBjb3VudDoxIG1hcGNvdW50OjAgbWFw cGluZzpmZmZmODgwMWYyMjQyNTQwIGluZGV4OjB4MCBjb21wb3VuZF9tYXBjb3VudDogMApbIDI5 MTguNDE5NzAyXSBmbGFnczogMHgxN2ZmZjgwMDAwMDgxMDAoc2xhYnxoZWFkKQpbIDI5MTguNDE5 ODc5XSByYXc6IDAxN2ZmZjgwMDAwMDgxMDAgZGVhZDAwMDAwMDAwMDEwMCBkZWFkMDAwMDAwMDAw MjAwIGZmZmY4ODAxZjIyNDI1NDAKWyAyOTE4LjQyMDEwMV0gcmF3OiAwMDAwMDAwMDAwMDAwMDAw IDAwMDAwMDAwMDAwMzAwMDMgMDAwMDAwMDFmZmZmZmZmZiAwMDAwMDAwMDAwMDAwMDAwClsgMjkx OC40MjAzMjJdIHBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVk CgpbIDI5MTguNDIwNTk5XSBNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgpb IDI5MTguNDIwNzY0XSAgZmZmZjg4MDE4ZWZjMWYwMDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAyOTE4LjQyMDk3NV0gIGZmZmY4ODAxOGVmYzFmODA6 IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiClsgMjkxOC40 MjExOTRdID5mZmZmODgwMThlZmMyMDAwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYwpbIDI5MTguNDIxNDA2XSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpbIDI5MTguNDIxNjI3XSAgZmZmZjg4 MDE4ZWZjMjA4MDogZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMg ZmMKWyAyOTE4LjQyMTgzOF0gIGZmZmY4ODAxOGVmYzIxMDA6IGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiClsgMjkxOC40MjIwNDZdID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpbIDI5 MTguNDIyMjY0XSBEaXNhYmxpbmcgbG9jayBkZWJ1Z2dpbmcgZHVlIHRvIGtlcm5lbCB0YWludApb IDI5MjMuOTAxNjQxXSBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIHBhZ2luZyByZXF1ZXN0 IGF0IGZmZmY4ODAxOGYwZGIwMDAKWyAyOTIzLjkwMTg4NF0gUEdEIDIyMjI2YTA2NyBQNEQgMjIy MjZhMDY3IFBVRCAyMjIyNzMwNjcgUE1EIDE4ZTY0MjA2MyBQVEUgODAwMDAwMDE4ZjBkYjA2MQpb IDI5MjMuOTAyMTIwXSBPb3BzOiAwMDAzIFsjMV0gU01QIEtBU0FOIFBUSQpbIDI5MjMuOTAyMjc0 XSBDUFU6IDEgUElEOiAxMjMxIENvbW06IHVtb3VudCBUYWludGVkOiBHICAgIEIgICAgICAgICAg ICAgNC4xNy4wKyAjMQpbIDI5MjMuOTAyNDkwXSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJk IFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBVYnVudHUtMS44LjItMXVidW50dTEgMDQv MDEvMjAxNApbIDI5MjMuOTAyNzYxXSBSSVA6IDAwMTA6X19tZW1zZXQrMHgyNC8weDMwClsgMjky My45MDI5MDZdIENvZGU6IDkwIDkwIDkwIDkwIDkwIDkwIDY2IDY2IDkwIDY2IDkwIDQ5IDg5IGY5 IDQ4IDg5IGQxIDgzIGUyIDA3IDQ4IGMxIGU5IDAzIDQwIDBmIGI2IGY2IDQ4IGI4IDAxIDAxIDAx IDAxIDAxIDAxIDAxIDAxIDQ4IDBmIGFmIGM2IDxmMz4gNDggYWIgODkgZDEgZjMgYWEgNGMgODkg YzggYzMgOTAgNDkgODkgZjkgNDAgODggZjAgNDggODkgZDEgZjMKWyAyOTIzLjkwMzQ0Nl0gUlNQ OiAwMDE4OmZmZmY4ODAxOGRkZjdhZTAgRUZMQUdTOiAwMDAxMDIwNgpbIDI5MjMuOTAzNjIyXSBS QVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmODgwMWQ1NDlkODg4IFJDWDogMWZmZmZmZmZm ZmZkYWZmYgpbIDI5MjMuOTAzODMzXSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAw MDAwMDAwMDAwIFJESTogZmZmZjg4MDE4ZjBkYWZmYwpbIDI5MjMuOTA0MDYyXSBSQlA6IGZmZmY4 ODAxOGVmYzIwNmMgUjA4OiAxZmZmZjEwMDMxZGY4NDBkIFIwOTogZmZmZjg4MDE4ZWZjMjA2Ywpb IDI5MjMuOTA0MjczXSBSMTA6IGZmZmZmZmZmZmZmZmUxZWUgUjExOiBmZmZmZWQwMDMxZGY2NWZh IFIxMjogMDAwMDAwMDAwMDAwMDAwMApbIDI5MjMuOTA0NDg1XSBSMTM6IGZmZmY4ODAxZDU0OWRj OTggUjE0OiAwMDAwMDAwMGZmZmZjM2RiIFIxNTogZmZmZmVhMDAwNjNiZWM4MApbIDI5MjMuOTA0 NjkzXSBGUzogIDAwMDA3ZmE4YjJmOGE4NDAoMDAwMCkgR1M6ZmZmZjg4MDFmM2IwMDAwMCgwMDAw KSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgMjkyMy45MDQ5MzddIENTOiAgMDAxMCBEUzogMDAw MCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAyOTIzLjkxMDA4MF0gQ1IyOiBmZmZm ODgwMThmMGRiMDAwIENSMzogMDAwMDAwMDE4Zjg5MjAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2ZTAK WyAyOTIzLjkxNDkzMF0gQ2FsbCBUcmFjZToKWyAyOTIzLjkxOTcyNF0gIGYyZnNfdHJ1bmNhdGVf aW5saW5lX2lub2RlKzB4MTE0LzB4MTcwClsgMjkyMy45MjQ0ODddICBmMmZzX3RydW5jYXRlX2Js b2NrcysweDExYi8weDdjMApbIDI5MjMuOTI5MTc4XSAgPyBmMmZzX3RydW5jYXRlX2RhdGFfYmxv Y2tzKzB4MTAvMHgxMApbIDI5MjMuOTMzODM0XSAgPyBkcWdldCsweDY3MC8weDY3MApbIDI5MjMu OTM4NDM3XSAgPyBmMmZzX2Rlc3Ryb3lfZXh0ZW50X3RyZWUrMHhkNi8weDI3MApbIDI5MjMuOTQz MTA3XSAgPyBfX3JhZGl4X3RyZWVfbG9va3VwKzB4MmYvMHgxNTAKWyAyOTIzLjk0Nzc3Ml0gIGYy ZnNfdHJ1bmNhdGUrMHhkNC8weDFhMApbIDI5MjMuOTUyNDkxXSAgZjJmc19ldmljdF9pbm9kZSsw eDVhYi8weDYxMApbIDI5MjMuOTU3MjA0XSAgZXZpY3QrMHgxNWYvMHgyODAKWyAyOTIzLjk2MTg5 OF0gIF9fZGVudHJ5X2tpbGwrMHgxNjEvMHgyNTAKWyAyOTIzLjk2NjYzNF0gIHNocmlua19kZW50 cnlfbGlzdCsweGYzLzB4MjUwClsgMjkyMy45NzE4OTddICBzaHJpbmtfZGNhY2hlX3BhcmVudCsw eGE5LzB4MTAwClsgMjkyMy45NzY1NjFdICA/IHNocmlua19kY2FjaGVfc2IrMHgxZjAvMHgxZjAK WyAyOTIzLjk4MTE3N10gID8gd2FpdF9mb3JfY29tcGxldGlvbisweDhhLzB4MjEwClsgMjkyMy45 ODU3ODFdICA/IG1pZ3JhdGVfc3dhcF9zdG9wKzB4MmQwLzB4MmQwClsgMjkyMy45OTAzMzJdICBk b19vbmVfdHJlZSsweGUvMHg0MApbIDI5MjMuOTk0NzM1XSAgc2hyaW5rX2RjYWNoZV9mb3JfdW1v dW50KzB4M2EvMHhhMApbIDI5MjMuOTk5MDc3XSAgZ2VuZXJpY19zaHV0ZG93bl9zdXBlcisweDNl LzB4MWMwClsgMjkyNC4wMDMzNTBdICBraWxsX2Jsb2NrX3N1cGVyKzB4NGIvMHg3MApbIDI5MjQu MDA3NjE5XSAgZGVhY3RpdmF0ZV9sb2NrZWRfc3VwZXIrMHg2NS8weDkwClsgMjkyNC4wMTE4MTJd ICBjbGVhbnVwX21udCsweDVjLzB4YTAKWyAyOTI0LjAxNTk5NV0gIHRhc2tfd29ya19ydW4rMHhj ZS8weGYwClsgMjkyNC4wMjAxNzRdICBleGl0X3RvX3VzZXJtb2RlX2xvb3ArMHgxMTUvMHgxMjAK WyAyOTI0LjAyNDI5M10gIGRvX3N5c2NhbGxfNjQrMHgxMmYvMHgxNjAKWyAyOTI0LjAyODQ3OV0g IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKWyAyOTI0LjAzMjcwOV0g UklQOiAwMDMzOjB4N2ZhOGIyODY4NDg3ClsgMjkyNC4wMzY4ODhdIENvZGU6IDgzIGM4IGZmIGMz IDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDBmIDFmIDQ0IDAwIDAwIDMxIGY2IGU5IDA5 IDAwIDAwIDAwIDY2IDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIGI4IGE2IDAwIDAwIDAwIDBmIDA1 IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDggOGIgMGQgZTEgYzkgMmIgMDAgZjcgZDgg NjQgODkgMDEgNDgKWyAyOTI0LjA0NTc1MF0gUlNQOiAwMDJiOjAwMDA3ZmZjMzk4MjRkNTggRUZM QUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDBhNgpbIDI5MjQuMDUwMTkwXSBS QVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiAwMDAwMDAwMDAwOGVhMDMwIFJDWDogMDAwMDdmYThi Mjg2ODQ4NwpbIDI5MjQuMDU0NjA0XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDEgUlNJOiAwMDAwMDAw MDAwMDAwMDAwIFJESTogMDAwMDAwMDAwMDhmNDM2MApbIDI5MjQuMDU4OTQwXSBSQlA6IDAwMDAw MDAwMDA4ZjQzNjAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAxNApb IDI5MjQuMDYzMTg2XSBSMTA6IDAwMDAwMDAwMDAwMDA2YjIgUjExOiAwMDAwMDAwMDAwMDAwMjQ2 IFIxMjogMDAwMDdmYThiMmQ3MTgzYwpbIDI5MjQuMDY3NDE4XSBSMTM6IDAwMDAwMDAwMDAwMDAw MDAgUjE0OiAwMDAwMDAwMDAwOGVhMjEwIFIxNTogMDAwMDdmZmMzOTgyNGZlMApbIDI5MjQuMDcx NTM0XSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFfaW50 ZWwgc25kX2hkYV9jb2RlYyBzbmRfaGRhX2NvcmUgc25kX2h3ZGVwIHNuZF9wY20gc25kX3RpbWVy IGpveWRldiBpbnB1dF9sZWRzIHNlcmlvX3JhdyBzbmQgc291bmRjb3JlIG1hY19oaWQgaTJjX3Bp aXg0IGliX2lzZXIgcmRtYV9jbSBpd19jbSBpYl9jbSBpYl9jb3JlIGNvbmZpZ2ZzIGlzY3NpX3Rj cCBsaWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90cmFuc3BvcnRfaXNjc2kgYnRyZnMgenN0ZF9k ZWNvbXByZXNzIHpzdGRfY29tcHJlc3MgeHhoYXNoIHJhaWQxMCByYWlkNDU2IGFzeW5jX3JhaWQ2 X3JlY292IGFzeW5jX21lbWNweSBhc3luY19wcSBhc3luY194b3IgYXN5bmNfdHggeG9yIHJhaWQ2 X3BxIGxpYmNyYzMyYyByYWlkMSByYWlkMCBtdWx0aXBhdGggbGluZWFyIDgxMzl0b28gcXhsIHR0 bSBkcm1fa21zX2hlbHBlciBzeXNjb3B5YXJlYSBzeXNmaWxscmVjdCBzeXNpbWdibHQgZmJfc3lz X2ZvcHMgZHJtIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVsIGdoYXNoX2NsbXVsbmlfaW50 ZWwgcGNiYyBhZXNuaV9pbnRlbCBwc21vdXNlIGFlc194ODZfNjQgODEzOWNwIGNyeXB0b19zaW1k IGNyeXB0ZCBtaWkgZ2x1ZV9oZWxwZXIgcGF0YV9hY3BpIGZsb3BweQpbIDI5MjQuMDk4MDQ0XSBD UjI6IGZmZmY4ODAxOGYwZGIwMDAKWyAyOTI0LjEwMjUyMF0gLS0tWyBlbmQgdHJhY2UgYThlMGQ4 OTk5ODVmYWYzMSBdLS0tClsgMjkyNC4xMDcwMTJdIFJJUDogMDAxMDpfX21lbXNldCsweDI0LzB4 MzAKWyAyOTI0LjExMTQ0OF0gQ29kZTogOTAgOTAgOTAgOTAgOTAgOTAgNjYgNjYgOTAgNjYgOTAg NDkgODkgZjkgNDggODkgZDEgODMgZTIgMDcgNDggYzEgZTkgMDMgNDAgMGYgYjYgZjYgNDggYjgg MDEgMDEgMDEgMDEgMDEgMDEgMDEgMDEgNDggMGYgYWYgYzYgPGYzPiA0OCBhYiA4OSBkMSBmMyBh YSA0YyA4OSBjOCBjMyA5MCA0OSA4OSBmOSA0MCA4OCBmMCA0OCA4OSBkMSBmMwpbIDI5MjQuMTIw NzI0XSBSU1A6IDAwMTg6ZmZmZjg4MDE4ZGRmN2FlMCBFRkxBR1M6IDAwMDEwMjA2ClsgMjkyNC4x MjUzMTJdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY4ODAxZDU0OWQ4ODggUkNYOiAx ZmZmZmZmZmZmZmRhZmZiClsgMjkyNC4xMjk5MzFdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6 IDAwMDAwMDAwMDAwMDAwMDAgUkRJOiBmZmZmODgwMThmMGRhZmZjClsgMjkyNC4xMzQ1MzddIFJC UDogZmZmZjg4MDE4ZWZjMjA2YyBSMDg6IDFmZmZmMTAwMzFkZjg0MGQgUjA5OiBmZmZmODgwMThl ZmMyMDZjClsgMjkyNC4xMzkxNzVdIFIxMDogZmZmZmZmZmZmZmZmZTFlZSBSMTE6IGZmZmZlZDAw MzFkZjY1ZmEgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClsgMjkyNC4xNDM4MjVdIFIxMzogZmZmZjg4 MDFkNTQ5ZGM5OCBSMTQ6IDAwMDAwMDAwZmZmZmMzZGIgUjE1OiBmZmZmZWEwMDA2M2JlYzgwClsg MjkyNC4xNDg1MDBdIEZTOiAgMDAwMDdmYThiMmY4YTg0MCgwMDAwKSBHUzpmZmZmODgwMWYzYjAw MDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAyOTI0LjE1MzI0N10gQ1M6ICAwMDEw IERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbIDI5MjQuMTU4MDAzXSBD UjI6IGZmZmY4ODAxOGYwZGIwMDAgQ1IzOiAwMDAwMDAwMThmODkyMDAwIENSNDogMDAwMDAwMDAw MDAwMDZlMApbIDI5MjQuMTY0NjQxXSBCVUc6IEJhZCByc3MtY291bnRlciBzdGF0ZSBtbTowMDAw MDAwMGZhMDQ2MjFlIGlkeDowIHZhbDo0ClsgMjkyNC4xNzAwMDddIEJVRzogQmFkIHJzcy1jb3Vu dGVyCnRhdGUgbW06MDAwMDAwMDBmYTA0NjIxZSBpZHg6MSB2YWw6MgoKLSBMb2NhdGlvbgpodHRw czovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92NC4xOC1yYzMvc291cmNlL2ZzL2YyZnMvaW5s aW5lLmMjTDc4CgltZW1zZXQoYWRkciArIGZyb20sIDAsIE1BWF9JTkxJTkVfREFUQShpbm9kZSkg LSBmcm9tKTsKSGVyZSB0aGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZS4KClJlcG9ydGVkLWJ5IFdl biBYdSA8d2VuLnh1QGdhdGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPHl1Y2hhbzBA aHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVsLm9y Zz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjE0OiBhZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1i eTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMv ZjJmcy9pbm9kZS5jIHwgMTggKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9mMmZzL2lub2Rl LmMgYi9mcy9mMmZzL2lub2RlLmMKaW5kZXggYWVlZDk5NDM4MzZhLi45YTQwNzI0ZGJhYTYgMTAw NjQ0Ci0tLSBhL2ZzL2YyZnMvaW5vZGUuYworKysgYi9mcy9mMmZzL2lub2RlLmMKQEAgLTE4Myw2 ICsxODMsNyBAQCB2b2lkIGYyZnNfaW5vZGVfY2hrc3VtX3NldChzdHJ1Y3QgZjJmc19zYl9pbmZv ICpzYmksIHN0cnVjdCBwYWdlICpwYWdlKQogc3RhdGljIGJvb2wgc2FuaXR5X2NoZWNrX2lub2Rl KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBwYWdlICpub2RlX3BhZ2UpCiB7CiAJc3RydWN0 IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19JX1NCKGlub2RlKTsKKwlzdHJ1Y3QgZjJmc19pbm9k ZV9pbmZvICpmaSA9IEYyRlNfSShpbm9kZSk7CiAJdW5zaWduZWQgbG9uZyBsb25nIGlibG9ja3M7 CiAKIAlpYmxvY2tzID0gbGU2NF90b19jcHUoRjJGU19JTk9ERShub2RlX3BhZ2UpLT5pX2Jsb2Nr cyk7CkBAIC0yMTUsNiArMjE2LDE3IEBAIHN0YXRpYyBib29sIHNhbml0eV9jaGVja19pbm9kZShz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgcGFnZSAqbm9kZV9wYWdlKQogCQlyZXR1cm4gZmFs c2U7CiAJfQogCisJaWYgKGZpLT5pX2V4dHJhX2lzaXplID4gRjJGU19UT1RBTF9FWFRSQV9BVFRS X1NJWkUgfHwKKwkJCWZpLT5pX2V4dHJhX2lzaXplICUgc2l6ZW9mKF9fbGUzMikpIHsKKwkJc2V0 X3NiaV9mbGFnKHNiaSwgU0JJX05FRURfRlNDSyk7CisJCWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5f V0FSTklORywKKwkJCSIlczogaW5vZGUgKGlubz0lbHgpIGhhcyBjb3JydXB0ZWQgaV9leHRyYV9p c2l6ZTogJWQsICIKKwkJCSJtYXg6ICV6dSIsCisJCQlfX2Z1bmNfXywgaW5vZGUtPmlfaW5vLCBm aS0+aV9leHRyYV9pc2l6ZSwKKwkJCUYyRlNfVE9UQUxfRVhUUkFfQVRUUl9TSVpFKTsKKwkJcmV0 dXJuIGZhbHNlOworCX0KKwogCWlmIChGMkZTX0koaW5vZGUpLT5leHRlbnRfdHJlZSkgewogCQlz dHJ1Y3QgZXh0ZW50X2luZm8gKmVpID0gJkYyRlNfSShpbm9kZSktPmV4dGVudF90cmVlLT5sYXJn ZXN0OwogCkBAIC0yODAsMTQgKzI5MiwxNCBAQCBzdGF0aWMgaW50IGRvX3JlYWRfaW5vZGUoc3Ry dWN0IGlub2RlICppbm9kZSkKIAogCWdldF9pbmxpbmVfaW5mbyhpbm9kZSwgcmkpOwogCisJZmkt PmlfZXh0cmFfaXNpemUgPSBmMmZzX2hhc19leHRyYV9hdHRyKGlub2RlKSA/CisJCQkJCWxlMTZf dG9fY3B1KHJpLT5pX2V4dHJhX2lzaXplKSA6IDA7CisKIAlpZiAoIXNhbml0eV9jaGVja19pbm9k ZShpbm9kZSwgbm9kZV9wYWdlKSkgewogCQlmMmZzX3B1dF9wYWdlKG5vZGVfcGFnZSwgMSk7CiAJ CXJldHVybiAtRUlOVkFMOwogCX0KIAotCWZpLT5pX2V4dHJhX2lzaXplID0gZjJmc19oYXNfZXh0 cmFfYXR0cihpbm9kZSkgPwotCQkJCQlsZTE2X3RvX2NwdShyaS0+aV9leHRyYV9pc2l6ZSkgOiAw OwotCiAJLyogY2hlY2sgZGF0YSBleGlzdCAqLwogCWlmIChmMmZzX2hhc19pbmxpbmVfZGF0YShp bm9kZSkgJiYgIWYyZnNfZXhpc3RfZGF0YShpbm9kZSkpCiAJCV9fcmVjb3Zlcl9pbmxpbmVfc3Rh dHVzKGlub2RlLCBub2RlX3BhZ2UpOwotLSAKQmVuIEh1dGNoaW5ncywgU29mdHdhcmUgRGV2ZWxv cGVyICAgICAgICAgICAgICAgICAgICAgICAgIENvZGV0aGluayBMdGQKaHR0cHM6Ly93d3cuY29k ZXRoaW5rLmNvLnVrLyAgICAgICAgICAgICAgICAgRGFsZSBIb3VzZSwgMzUgRGFsZSBTdHJlZXQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmNoZXN0ZXIsIE0xIDJIRiwg VW5pdGVkIEtpbmdkb20KCgpGcm9tIGU4NmU0NmU3NWEzNWU0MTliOTE4OGJjNjFlZWU2YmVjYzFh MzJmYTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENoYW8gWXUgPHl1Y2hhbzBAaHVh d2VpLmNvbT4KRGF0ZTogVHVlLCAxMCBKdWwgMjAxOCAyMzowMTo0NSArMDgwMApTdWJqZWN0OiBb UEFUQ0ggNDQvNDZdIGYyZnM6IGZpeCB0byBkbyBzYW5pdHkgY2hlY2sgd2l0aCBibG9jayBhZGRy ZXNzIGluIG1haW4KIGFyZWEgdjIKCmNvbW1pdCA5MTI5MWU5OTk4ZDIwODM3MGViODE1NmM3NjA2 OTFiODczYmQ3NTIyIHVwc3RyZWFtLgoKVGhpcyBwYXRjaCBhZGRzIGYyZnNfaXNfdmFsaWRfYmxr YWRkcigpIGluIGJlbG93IGZ1bmN0aW9ucyB0byBkbyBzYW5pdHkKY2hlY2sgd2l0aCBibG9jayBh ZGRyZXNzIHRvIGF2b2lkIHBlbnRlbnRpYWwgcGFuaWM6Ci0gZjJmc19ncmFiX3JlYWRfYmlvKCkK LSBfX3dyaXR0ZW5fZmlyc3RfYmxvY2soKQoKaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3No b3dfYnVnLmNnaT9pZD0yMDA0NjUKCi0gUmVwcm9kdWNlCgotIFBPQyAocG9jLmMpCiAgICAjZGVm aW5lIF9HTlVfU09VUkNFCiAgICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgICAjaW5jbHVkZSA8 c3lzL21vdW50Lmg+CiAgICAjaW5jbHVkZSA8c3lzL21tYW4uaD4KICAgICNpbmNsdWRlIDxzeXMv c3RhdC5oPgogICAgI2luY2x1ZGUgPHN5cy94YXR0ci5oPgoKICAgICNpbmNsdWRlIDxkaXJlbnQu aD4KICAgICNpbmNsdWRlIDxlcnJuby5oPgogICAgI2luY2x1ZGUgPGVycm9yLmg+CiAgICAjaW5j bHVkZSA8ZmNudGwuaD4KICAgICNpbmNsdWRlIDxzdGRpby5oPgogICAgI2luY2x1ZGUgPHN0ZGxp Yi5oPgogICAgI2luY2x1ZGUgPHN0cmluZy5oPgogICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgoKICAg ICNpbmNsdWRlIDxsaW51eC9mYWxsb2MuaD4KICAgICNpbmNsdWRlIDxsaW51eC9sb29wLmg+Cgog ICAgc3RhdGljIHZvaWQgYWN0aXZpdHkoY2hhciAqbXBvaW50KSB7CgogICAgICBjaGFyICp4YXR0 cjsKICAgICAgaW50IGVycjsKCiAgICAgIGVyciA9IGFzcHJpbnRmKCZ4YXR0ciwgIiVzL2Zvby9i YXIveGF0dHIiLCBtcG9pbnQpOwoKICAgICAgY2hhciBidWYyWzExM107CiAgICAgIG1lbXNldChi dWYyLCAwLCBzaXplb2YoYnVmMikpOwogICAgICBsaXN0eGF0dHIoeGF0dHIsIGJ1ZjIsIHNpemVv ZihidWYyKSk7CgogICAgfQoKICAgIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsK ICAgICAgYWN0aXZpdHkoYXJndlsxXSk7CiAgICAgIHJldHVybiAwOwogICAgfQoKLSBrZXJuZWwg bWVzc2FnZQpbICA4NDQuNzE4NzM4XSBGMkZTLWZzIChsb29wMCk6IE1vdW50ZWQgd2l0aCBjaGVj a3BvaW50IHZlcnNpb24gPSAyClsgIDg0Ni40MzA5MjldIEYyRlMtZnMgKGxvb3AwKTogYWNjZXNz IGludmFsaWQgYmxrYWRkcjoxMDI0ClsgIDg0Ni40MzEwNThdIFdBUk5JTkc6IENQVTogMSBQSUQ6 IDEyNDkgYXQgZnMvZjJmcy9jaGVja3BvaW50LmM6MTU0IGYyZnNfaXNfdmFsaWRfYmxrYWRkcisw eDEwZi8weDE2MApbICA4NDYuNDMxMDU5XSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2Rl Y19nZW5lcmljIHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb2RlYyBzbmRfaGRhX2NvcmUgc25kX2h3 ZGVwIHNuZF9wY20gc25kX3RpbWVyIHNuZCBpbnB1dF9sZWRzIGpveWRldiBzb3VuZGNvcmUgc2Vy aW9fcmF3IGkyY19waWl4NCBtYWNfaGlkIGliX2lzZXIgcmRtYV9jbSBpd19jbSBpYl9jbSBpYl9j b3JlIGNvbmZpZ2ZzIGlzY3NpX3RjcCBsaWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90cmFuc3Bv cnRfaXNjc2kgYXV0b2ZzNCByYWlkMTAgcmFpZDQ1NiBsaWJjcmMzMmMgYXN5bmNfcmFpZDZfcmVj b3YgYXN5bmNfbWVtY3B5IGFzeW5jX3BxIGFzeW5jX3hvciB4b3IgYXN5bmNfdHggcmFpZDZfcHEg cmFpZDEgcmFpZDAgbXVsdGlwYXRoIGxpbmVhciBxeGwgdHRtIGNyY3QxMGRpZl9wY2xtdWwgY3Jj MzJfcGNsbXVsIGRybV9rbXNfaGVscGVyIGdoYXNoX2NsbXVsbmlfaW50ZWwgc3lzY29weWFyZWEg c3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZiX3N5c19mb3BzIHBjYmMgZHJtIDgxMzl0b28gYWVzbmlf aW50ZWwgODEzOWNwIGZsb3BweSBwc21vdXNlIG1paSBhZXNfeDg2XzY0IGNyeXB0b19zaW1kIHBh dGFfYWNwaSBjcnlwdGQgZ2x1ZV9oZWxwZXIKWyAgODQ2LjQzMTMxMF0gQ1BVOiAxIFBJRDogMTI0 OSBDb21tOiBhLm91dCBOb3QgdGFpbnRlZCA0LjE4LjAtcmMzKyAjMQpbICA4NDYuNDMxMzEyXSBI YXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklP UyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEvMjAxNApbICA4NDYuNDMxMzE1XSBSSVA6IDAw MTA6ZjJmc19pc192YWxpZF9ibGthZGRyKzB4MTBmLzB4MTYwClsgIDg0Ni40MzEzMTZdIENvZGU6 IDAwIGViIGVkIDMxIGMwIDgzIGZhIDA1IDc1IGFlIDQ4IDgzIGVjIDA4IDQ4IDhiIDNmIDg5IGYx IDQ4IGM3IGMyIGZjIDBiIDBmIDhiIDQ4IGM3IGM2IDhiIGQ3IDA5IDhiIDg4IDQ0IDI0IDA3IGU4 IDYxIDhiIGZmIGZmIDwwZj4gMGIgMGYgYjYgNDQgMjQgMDcgNDggODMgYzQgMDggZWIgODEgNGMg OGIgNDcgMTAgOGIgOGYgMzggMDQgMDAKWyAgODQ2LjQzMTM0N10gUlNQOiAwMDE4OmZmZmY5NjFj NDE0YTdiYzAgRUZMQUdTOiAwMDAxMDI4MgpbICA4NDYuNDMxMzQ5XSBSQVg6IDAwMDAwMDAwMDAw MDAwMDAgUkJYOiBmZmZmYzVmNzg3YjhlYTgwIFJDWDogMDAwMDAwMDAwMDAwMDAwMApbICA4NDYu NDMxMzUwXSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBmZmZmODlkZmZmZDE2NWQ4IFJESTog ZmZmZjg5ZGZmZmQxNjVkOApbICA4NDYuNDMxMzUxXSBSQlA6IGZmZmY5NjFjNDE0YTdjMjAgUjA4 OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogMDAwMDAwMDAwMDAwMDI0OApbICA4NDYuNDMxMzUzXSBS MTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ4IFIxMjogMDAwMDAwMDAw MDAwMDAwNwpbICA4NDYuNDMxMzY5XSBSMTM6IGZmZmY4OWRmZjU0OTI4MDAgUjE0OiBmZmZmODlk ZmFlM2FhMDAwIFIxNTogZmZmZjg5ZGZmNGZmODhkMApbICA4NDYuNDMxMzcyXSBGUzogIDAwMDA3 Zjg4MmUyZmI3MDAoMDAwMCkgR1M6ZmZmZjg5ZGZmZmQwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAw MDAwMDAwMDAwClsgIDg0Ni40MzEzNzNdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6 IDAwMDAwMDAwODAwNTAwMzMKWyAgODQ2LjQzMTM3NF0gQ1IyOiAwMDAwMDAwMDAxYTg4MDA4IENS MzogMDAwMDAwMDFlYjU3MjAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2ZTAKWyAgODQ2LjQzMTM4NF0g Q2FsbCBUcmFjZToKWyAgODQ2LjQzMTQyNl0gIGYyZnNfaWdldCsweDZmNC8weGU3MApbICA4NDYu NDMxNDMwXSAgPyBmMmZzX2ZpbmRfZW50cnkrMHg3MS8weDkwClsgIDg0Ni40MzE0MzJdICBmMmZz X2xvb2t1cCsweDFhYS8weDM5MApbICA4NDYuNDMxNDUyXSAgX19sb29rdXBfc2xvdysweDk3LzB4 MTUwClsgIDg0Ni40MzE0NTldICBsb29rdXBfc2xvdysweDM1LzB4NTAKWyAgODQ2LjQzMTQ2Ml0g IHdhbGtfY29tcG9uZW50KzB4MWM2LzB4NDcwClsgIDg0Ni40MzE0NzldICA/IG1lbWNnX2ttZW1f Y2hhcmdlX21lbWNnKzB4NzAvMHg5MApbICA4NDYuNDMxNDg4XSAgPyBwYWdlX2FkZF9maWxlX3Jt YXArMHgxMy8weDIwMApbICA4NDYuNDMxNDkxXSAgcGF0aF9sb29rdXBhdCsweDc2LzB4MjMwClsg IDg0Ni40MzE1MDFdICA/IF9fYWxsb2NfcGFnZXNfbm9kZW1hc2srMHhmYy8weDI4MApbICA4NDYu NDMxNTA0XSAgZmlsZW5hbWVfbG9va3VwKzB4YjgvMHgxYTAKWyAgODQ2LjQzMTUzNF0gID8gX2Nv bmRfcmVzY2hlZCsweDE2LzB4NDAKWyAgODQ2LjQzMTU0MV0gID8ga21lbV9jYWNoZV9hbGxvYysw eDE2MC8weDFkMApbICA4NDYuNDMxNTQ5XSAgPyBwYXRoX2xpc3R4YXR0cisweDQxLzB4YTAKWyAg ODQ2LjQzMTU1MV0gIHBhdGhfbGlzdHhhdHRyKzB4NDEvMHhhMApbICA4NDYuNDMxNTcwXSAgZG9f c3lzY2FsbF82NCsweDU1LzB4MTAwClsgIDg0Ni40MzE1ODNdICBlbnRyeV9TWVNDQUxMXzY0X2Fm dGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDg0Ni40MzE2MDddIFJJUDogMDAzMzoweDdmODgyZGUx YzBkNwpbICA4NDYuNDMxNjA3XSBDb2RlOiBmMCBmZiBmZiA3MyAwMSBjMyA0OCA4YiAwZCBiZSBk ZCAyYiAwMCBmNyBkOCA2NCA4OSAwMSA0OCA4MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAw MCAwMCAwMCAwMCA2NiA5MCBiOCBjMiAwMCAwMCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZm IDczIDAxIGMzIDQ4IDhiIDBkIDkxIGRkIDJiIDAwIGY3IGQ4IDY0IDg5IDAxIDQ4ClsgIDg0Ni40 MzE2MzldIFJTUDogMDAyYjowMDAwN2ZmZThlNjZjMjM4IEVGTEFHUzogMDAwMDAyMDIgT1JJR19S QVg6IDAwMDAwMDAwMDAwMDAwYzIKWyAgODQ2LjQzMTY0MV0gUkFYOiBmZmZmZmZmZmZmZmZmZmRh IFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IDAwMDA3Zjg4MmRlMWMwZDcKWyAgODQ2LjQzMTY0 Ml0gUkRYOiAwMDAwMDAwMDAwMDAwMDcxIFJTSTogMDAwMDdmZmU4ZTY2YzI4MCBSREk6IDAwMDAw MDAwMDFhODgwYzAKWyAgODQ2LjQzMTY0M10gUkJQOiAwMDAwN2ZmZThlNjZjMzAwIFIwODogMDAw MDAwMDAwMWE4ODAxMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgODQ2LjQzMTY0NV0gUjEwOiAw MDAwMDAwMDAwMDAwMWFiIFIxMTogMDAwMDAwMDAwMDAwMDIwMiBSMTI6IDAwMDAwMDAwMDA0MDA1 NTAKWyAgODQ2LjQzMTY0Nl0gUjEzOiAwMDAwN2ZmZThlNjZjNDAwIFIxNDogMDAwMDAwMDAwMDAw MDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKWyAgODQ2LjQzMTY0OF0gLS0tWyBlbmQgdHJhY2Ug YWJjYTU0ZGYzOWQxNGY1YyBdLS0tClsgIDg0Ni40MzE2NTFdIEYyRlMtZnMgKGxvb3AwKTogaW52 YWxpZCBibGthZGRyOiAxMDI0LCB0eXBlOiA1LCBydW4gZnNjayB0byBmaXguClsgIDg0Ni40MzE3 NjJdIFdBUk5JTkc6IENQVTogMSBQSUQ6IDEyNDkgYXQgZnMvZjJmcy9mMmZzLmg6MjY5NyBmMmZz X2lnZXQrMHhkMTcvMHhlNzAKWyAgODQ2LjQzMTc2M10gTW9kdWxlcyBsaW5rZWQgaW46IHNuZF9o ZGFfY29kZWNfZ2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMgc25kX2hkYV9jb3Jl IHNuZF9od2RlcCBzbmRfcGNtIHNuZF90aW1lciBzbmQgaW5wdXRfbGVkcyBqb3lkZXYgc291bmRj b3JlIHNlcmlvX3JhdyBpMmNfcGlpeDQgbWFjX2hpZCBpYl9pc2VyIHJkbWFfY20gaXdfY20gaWJf Y20gaWJfY29yZSBjb25maWdmcyBpc2NzaV90Y3AgbGliaXNjc2lfdGNwIGxpYmlzY3NpIHNjc2lf dHJhbnNwb3J0X2lzY3NpIGF1dG9mczQgcmFpZDEwIHJhaWQ0NTYgbGliY3JjMzJjIGFzeW5jX3Jh aWQ2X3JlY292IGFzeW5jX21lbWNweSBhc3luY19wcSBhc3luY194b3IgeG9yIGFzeW5jX3R4IHJh aWQ2X3BxIHJhaWQxIHJhaWQwIG11bHRpcGF0aCBsaW5lYXIgcXhsIHR0bSBjcmN0MTBkaWZfcGNs bXVsIGNyYzMyX3BjbG11bCBkcm1fa21zX2hlbHBlciBnaGFzaF9jbG11bG5pX2ludGVsIHN5c2Nv cHlhcmVhIHN5c2ZpbGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNfZm9wcyBwY2JjIGRybSA4MTM5dG9v IGFlc25pX2ludGVsIDgxMzljcCBmbG9wcHkgcHNtb3VzZSBtaWkgYWVzX3g4Nl82NCBjcnlwdG9f c2ltZCBwYXRhX2FjcGkgY3J5cHRkIGdsdWVfaGVscGVyClsgIDg0Ni40MzE3OTddIENQVTogMSBQ SUQ6IDEyNDkgQ29tbTogYS5vdXQgVGFpbnRlZDogRyAgICAgICAgVyAgICAgICAgIDQuMTguMC1y YzMrICMxClsgIDg0Ni40MzE3OThdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0 NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0xLjguMi0xdWJ1bnR1MSAwNC8wMS8yMDE0 ClsgIDg0Ni40MzE4MDBdIFJJUDogMDAxMDpmMmZzX2lnZXQrMHhkMTcvMHhlNzAKWyAgODQ2LjQz MTgwMV0gQ29kZTogZmYgZmYgNDggNjMgZDggZTkgZTEgZjYgZmYgZmYgNDggOGIgNDUgYzggNDEg YjggMDUgMDAgMDAgMDAgNDggYzcgYzIgZDggZTggMGUgOGIgNDggYzcgYzYgMWQgYjAgMGEgOGIg NDggOGIgMzggZTggZjkgYjQgMDAgMDAgPDBmPiAwYiA0OCA4YiA0NSBjOCBmMCA4MCA0OCA0OCAw NCBlOSBkOCBmOSBmZiBmZiAwZiAwYiA0OCA4YiA0MyAxOApbICA4NDYuNDMxODMyXSBSU1A6IDAw MTg6ZmZmZjk2MWM0MTRhN2JkMCBFRkxBR1M6IDAwMDEwMjgyClsgIDg0Ni40MzE4MzRdIFJBWDog MDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmZjNWY3ODdiOGVhODAgUkNYOiAwMDAwMDAwMDAwMDAw MDA2ClsgIDg0Ni40MzE4MzVdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAw MDAwOTYgUkRJOiBmZmZmODlkZmZmZDE2NWQwClsgIDg0Ni40MzE4MzZdIFJCUDogZmZmZjk2MWM0 MTRhN2MyMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMjczClsgIDg0 Ni40MzE4MzddIFIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IGZmZmY4OWRmYWQ1MGNhNjAgUjEy OiAwMDAwMDAwMDAwMDAwMDA3ClsgIDg0Ni40MzE4MzhdIFIxMzogZmZmZjg5ZGZmNTQ5MjgwMCBS MTQ6IGZmZmY4OWRmYWUzYWEwMDAgUjE1OiBmZmZmODlkZmY0ZmY4OGQwClsgIDg0Ni40MzE4NDBd IEZTOiAgMDAwMDdmODgyZTJmYjcwMCgwMDAwKSBHUzpmZmZmODlkZmZmZDAwMDAwKDAwMDApIGtu bEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgODQ2LjQzMTg0MV0gQ1M6ICAwMDEwIERTOiAwMDAwIEVT OiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICA4NDYuNDMxODQyXSBDUjI6IDAwMDAwMDAw MDFhODgwMDggQ1IzOiAwMDAwMDAwMWViNTcyMDAwIENSNDogMDAwMDAwMDAwMDAwMDZlMApbICA4 NDYuNDMxODQ2XSBDYWxsIFRyYWNlOgpbICA4NDYuNDMxODUwXSAgPyBmMmZzX2ZpbmRfZW50cnkr MHg3MS8weDkwClsgIDg0Ni40MzE4NTNdICBmMmZzX2xvb2t1cCsweDFhYS8weDM5MApbICA4NDYu NDMxODU2XSAgX19sb29rdXBfc2xvdysweDk3LzB4MTUwClsgIDg0Ni40MzE4NThdICBsb29rdXBf c2xvdysweDM1LzB4NTAKWyAgODQ2LjQzMTg3NF0gIHdhbGtfY29tcG9uZW50KzB4MWM2LzB4NDcw ClsgIDg0Ni40MzE4NzhdICA/IG1lbWNnX2ttZW1fY2hhcmdlX21lbWNnKzB4NzAvMHg5MApbICA4 NDYuNDMxODgwXSAgPyBwYWdlX2FkZF9maWxlX3JtYXArMHgxMy8weDIwMApbICA4NDYuNDMxODgy XSAgcGF0aF9sb29rdXBhdCsweDc2LzB4MjMwClsgIDg0Ni40MzE4ODRdICA/IF9fYWxsb2NfcGFn ZXNfbm9kZW1hc2srMHhmYy8weDI4MApbICA4NDYuNDMxODg2XSAgZmlsZW5hbWVfbG9va3VwKzB4 YjgvMHgxYTAKWyAgODQ2LjQzMTg5MF0gID8gX2NvbmRfcmVzY2hlZCsweDE2LzB4NDAKWyAgODQ2 LjQzMTg5MV0gID8ga21lbV9jYWNoZV9hbGxvYysweDE2MC8weDFkMApbICA4NDYuNDMxODk0XSAg PyBwYXRoX2xpc3R4YXR0cisweDQxLzB4YTAKWyAgODQ2LjQzMTg5Nl0gIHBhdGhfbGlzdHhhdHRy KzB4NDEvMHhhMApbICA4NDYuNDMxODk4XSAgZG9fc3lzY2FsbF82NCsweDU1LzB4MTAwClsgIDg0 Ni40MzE5MDFdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDg0 Ni40MzE5MDJdIFJJUDogMDAzMzoweDdmODgyZGUxYzBkNwpbICA4NDYuNDMxOTAzXSBDb2RlOiBm MCBmZiBmZiA3MyAwMSBjMyA0OCA4YiAwZCBiZSBkZCAyYiAwMCBmNyBkOCA2NCA4OSAwMSA0OCA4 MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCA2NiA5MCBiOCBjMiAwMCAw MCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDAxIGMzIDQ4IDhiIDBkIDkxIGRkIDJi IDAwIGY3IGQ4IDY0IDg5IDAxIDQ4ClsgIDg0Ni40MzE5MzRdIFJTUDogMDAyYjowMDAwN2ZmZThl NjZjMjM4IEVGTEFHUzogMDAwMDAyMDIgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwYzIKWyAgODQ2 LjQzMTkzNl0gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6 IDAwMDA3Zjg4MmRlMWMwZDcKWyAgODQ2LjQzMTkzN10gUkRYOiAwMDAwMDAwMDAwMDAwMDcxIFJT STogMDAwMDdmZmU4ZTY2YzI4MCBSREk6IDAwMDAwMDAwMDFhODgwYzAKWyAgODQ2LjQzMTkzOV0g UkJQOiAwMDAwN2ZmZThlNjZjMzAwIFIwODogMDAwMDAwMDAwMWE4ODAxMCBSMDk6IDAwMDAwMDAw MDAwMDAwMDAKWyAgODQ2LjQzMTk0MF0gUjEwOiAwMDAwMDAwMDAwMDAwMWFiIFIxMTogMDAwMDAw MDAwMDAwMDIwMiBSMTI6IDAwMDAwMDAwMDA0MDA1NTAKWyAgODQ2LjQzMTk0MV0gUjEzOiAwMDAw N2ZmZThlNjZjNDAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAK WyAgODQ2LjQzMTk0M10gLS0tWyBlbmQgdHJhY2UgYWJjYTU0ZGYzOWQxNGY1ZCBdLS0tClsgIDg0 Ni40MzIwMzNdIEYyRlMtZnMgKGxvb3AwKTogYWNjZXNzIGludmFsaWQgYmxrYWRkcjoxMDI0Clsg IDg0Ni40MzIwNTFdIFdBUk5JTkc6IENQVTogMSBQSUQ6IDEyNDkgYXQgZnMvZjJmcy9jaGVja3Bv aW50LmM6MTU0IGYyZnNfaXNfdmFsaWRfYmxrYWRkcisweDEwZi8weDE2MApbICA4NDYuNDMyMDUx XSBNb2R1bGVzIGxpbmtlZCBpbjogc25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFfaW50ZWwg c25kX2hkYV9jb2RlYyBzbmRfaGRhX2NvcmUgc25kX2h3ZGVwIHNuZF9wY20gc25kX3RpbWVyIHNu ZCBpbnB1dF9sZWRzIGpveWRldiBzb3VuZGNvcmUgc2VyaW9fcmF3IGkyY19waWl4NCBtYWNfaGlk IGliX2lzZXIgcmRtYV9jbSBpd19jbSBpYl9jbSBpYl9jb3JlIGNvbmZpZ2ZzIGlzY3NpX3RjcCBs aWJpc2NzaV90Y3AgbGliaXNjc2kgc2NzaV90cmFuc3BvcnRfaXNjc2kgYXV0b2ZzNCByYWlkMTAg cmFpZDQ1NiBsaWJjcmMzMmMgYXN5bmNfcmFpZDZfcmVjb3YgYXN5bmNfbWVtY3B5IGFzeW5jX3Bx IGFzeW5jX3hvciB4b3IgYXN5bmNfdHggcmFpZDZfcHEgcmFpZDEgcmFpZDAgbXVsdGlwYXRoIGxp bmVhciBxeGwgdHRtIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVsIGRybV9rbXNfaGVscGVy IGdoYXNoX2NsbXVsbmlfaW50ZWwgc3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZi X3N5c19mb3BzIHBjYmMgZHJtIDgxMzl0b28gYWVzbmlfaW50ZWwgODEzOWNwIGZsb3BweSBwc21v dXNlIG1paSBhZXNfeDg2XzY0IGNyeXB0b19zaW1kIHBhdGFfYWNwaSBjcnlwdGQgZ2x1ZV9oZWxw ZXIKWyAgODQ2LjQzMjA4NV0gQ1BVOiAxIFBJRDogMTI0OSBDb21tOiBhLm91dCBUYWludGVkOiBH ICAgICAgICBXICAgICAgICAgNC4xOC4wLXJjMysgIzEKWyAgODQ2LjQzMjA4Nl0gSGFyZHdhcmUg bmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1bnR1 LTEuOC4yLTF1YnVudHUxIDA0LzAxLzIwMTQKWyAgODQ2LjQzMjA4OV0gUklQOiAwMDEwOmYyZnNf aXNfdmFsaWRfYmxrYWRkcisweDEwZi8weDE2MApbICA4NDYuNDMyMDg5XSBDb2RlOiAwMCBlYiBl ZCAzMSBjMCA4MyBmYSAwNSA3NSBhZSA0OCA4MyBlYyAwOCA0OCA4YiAzZiA4OSBmMSA0OCBjNyBj MiBmYyAwYiAwZiA4YiA0OCBjNyBjNiA4YiBkNyAwOSA4YiA4OCA0NCAyNCAwNyBlOCA2MSA4YiBm ZiBmZiA8MGY+IDBiIDBmIGI2IDQ0IDI0IDA3IDQ4IDgzIGM0IDA4IGViIDgxIDRjIDhiIDQ3IDEw IDhiIDhmIDM4IDA0IDAwClsgIDg0Ni40MzIxMjBdIFJTUDogMDAxODpmZmZmOTYxYzQxNGE3OTAw IEVGTEFHUzogMDAwMTAyODYKWyAgODQ2LjQzMjEyMl0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJC WDogMDAwMDAwMDAwMDAwMDQwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDYKWyAgODQ2LjQzMjEyM10g UkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDA5NiBSREk6IGZmZmY4OWRm ZmZkMTY1ZDAKWyAgODQ2LjQzMjEyNF0gUkJQOiBmZmZmODlkZmY1NDkyODAwIFIwODogMDAwMDAw MDAwMDAwMDAwMSBSMDk6IDAwMDAwMDAwMDAwMDAyOWQKWyAgODQ2LjQzMjEyNV0gUjEwOiBmZmZm OTYxYzQxNGE3ODIwIFIxMTogMDAwMDAwMDAwMDAwMDI5ZCBSMTI6IDAwMDAwMDAwMDAwMDA0MDAK WyAgODQ2LjQzMjEyNl0gUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogZmZmZjg5ZGZmNGZmODhk MCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKWyAgODQ2LjQzMjEyOF0gRlM6ICAwMDAwN2Y4ODJlMmZi NzAwKDAwMDApIEdTOmZmZmY4OWRmZmZkMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAw MApbICA4NDYuNDMyMTMwXSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAw MDgwMDUwMDMzClsgIDg0Ni40MzIxMzFdIENSMjogMDAwMDAwMDAwMWE4ODAwOCBDUjM6IDAwMDAw MDAxZWI1NzIwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmUwClsgIDg0Ni40MzIxMzVdIENhbGwgVHJh Y2U6ClsgIDg0Ni40MzIxNTFdICBmMmZzX3dhaXRfb25fYmxvY2tfd3JpdGViYWNrKzB4MjAvMHgx MTAKWyAgODQ2LjQzMjE1OF0gIGYyZnNfZ3JhYl9yZWFkX2JpbysweGJjLzB4ZTAKWyAgODQ2LjQz MjE2MV0gIGYyZnNfc3VibWl0X3BhZ2VfcmVhZCsweDIxLzB4MjgwClsgIDg0Ni40MzIxNjNdICBm MmZzX2dldF9yZWFkX2RhdGFfcGFnZSsweGI3LzB4M2MwClsgIDg0Ni40MzIxNjVdICBmMmZzX2dl dF9sb2NrX2RhdGFfcGFnZSsweDI5LzB4MWUwClsgIDg0Ni40MzIxNjddICBmMmZzX2dldF9uZXdf ZGF0YV9wYWdlKzB4MTQ4LzB4NTUwClsgIDg0Ni40MzIxNzBdICBmMmZzX2FkZF9yZWd1bGFyX2Vu dHJ5KzB4MWQyLzB4NTUwClsgIDg0Ni40MzIxNzhdICA/IF9fc3dpdGNoX3RvKzB4MTJmLzB4NDYw ClsgIDg0Ni40MzIxODFdICBmMmZzX2FkZF9kZW50cnkrMHg2YS8weGQwClsgIDg0Ni40MzIxODRd ICBmMmZzX2RvX2FkZF9saW5rKzB4ZTkvMHgxNDAKWyAgODQ2LjQzMjE4Nl0gIF9fcmVjb3Zlcl9k b3RfZGVudHJpZXMrMHgyNjAvMHgyODAKWyAgODQ2LjQzMjE4OV0gIGYyZnNfbG9va3VwKzB4MzQz LzB4MzkwClsgIDg0Ni40MzIxOTNdICBfX2xvb2t1cF9zbG93KzB4OTcvMHgxNTAKWyAgODQ2LjQz MjE5NV0gIGxvb2t1cF9zbG93KzB4MzUvMHg1MApbICA4NDYuNDMyMjA4XSAgd2Fsa19jb21wb25l bnQrMHgxYzYvMHg0NzAKWyAgODQ2LjQzMjIxMl0gID8gbWVtY2dfa21lbV9jaGFyZ2VfbWVtY2cr MHg3MC8weDkwClsgIDg0Ni40MzIyMTVdICA/IHBhZ2VfYWRkX2ZpbGVfcm1hcCsweDEzLzB4MjAw ClsgIDg0Ni40MzIyMTddICBwYXRoX2xvb2t1cGF0KzB4NzYvMHgyMzAKWyAgODQ2LjQzMjIxOV0g ID8gX19hbGxvY19wYWdlc19ub2RlbWFzaysweGZjLzB4MjgwClsgIDg0Ni40MzIyMjFdICBmaWxl bmFtZV9sb29rdXArMHhiOC8weDFhMApbICA4NDYuNDMyMjI0XSAgPyBfY29uZF9yZXNjaGVkKzB4 MTYvMHg0MApbICA4NDYuNDMyMjI2XSAgPyBrbWVtX2NhY2hlX2FsbG9jKzB4MTYwLzB4MWQwClsg IDg0Ni40MzIyMjhdICA/IHBhdGhfbGlzdHhhdHRyKzB4NDEvMHhhMApbICA4NDYuNDMyMjMwXSAg cGF0aF9saXN0eGF0dHIrMHg0MS8weGEwClsgIDg0Ni40MzIyMzNdICBkb19zeXNjYWxsXzY0KzB4 NTUvMHgxMDAKWyAgODQ2LjQzMjIzNV0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ0LzB4YTkKWyAgODQ2LjQzMjIzN10gUklQOiAwMDMzOjB4N2Y4ODJkZTFjMGQ3ClsgIDg0Ni40 MzIyMzddIENvZGU6IGYwIGZmIGZmIDczIDAxIGMzIDQ4IDhiIDBkIGJlIGRkIDJiIDAwIGY3IGQ4 IDY0IDg5IDAxIDQ4IDgzIGM4IGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDY2 IDkwIGI4IGMyIDAwIDAwIDAwIDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDgg OGIgMGQgOTEgZGQgMmIgMDAgZjcgZDggNjQgODkgMDEgNDgKWyAgODQ2LjQzMjI2OV0gUlNQOiAw MDJiOjAwMDA3ZmZlOGU2NmMyMzggRUZMQUdTOiAwMDAwMDIwMiBPUklHX1JBWDogMDAwMDAwMDAw MDAwMDBjMgpbICA4NDYuNDMyMjcxXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAw MDAwMDAwMDAwIFJDWDogMDAwMDdmODgyZGUxYzBkNwpbICA4NDYuNDMyMjcyXSBSRFg6IDAwMDAw MDAwMDAwMDAwNzEgUlNJOiAwMDAwN2ZmZThlNjZjMjgwIFJESTogMDAwMDAwMDAwMWE4ODBjMApb ICA4NDYuNDMyMjczXSBSQlA6IDAwMDA3ZmZlOGU2NmMzMDAgUjA4OiAwMDAwMDAwMDAxYTg4MDEw IFIwOTogMDAwMDAwMDAwMDAwMDAwMApbICA4NDYuNDMyMjc0XSBSMTA6IDAwMDAwMDAwMDAwMDAx YWIgUjExOiAwMDAwMDAwMDAwMDAwMjAyIFIxMjogMDAwMDAwMDAwMDQwMDU1MApbICA4NDYuNDMy Mjc1XSBSMTM6IDAwMDA3ZmZlOGU2NmM0MDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAw MDAwMDAwMDAwMDAwMApbICA4NDYuNDMyMjc3XSAtLS1bIGVuZCB0cmFjZSBhYmNhNTRkZjM5ZDE0 ZjVlIF0tLS0KWyAgODQ2LjQzMjI3OV0gRjJGUy1mcyAobG9vcDApOiBpbnZhbGlkIGJsa2FkZHI6 IDEwMjQsIHR5cGU6IDUsIHJ1biBmc2NrIHRvIGZpeC4KWyAgODQ2LjQzMjM3Nl0gV0FSTklORzog Q1BVOiAxIFBJRDogMTI0OSBhdCBmcy9mMmZzL2YyZnMuaDoyNjk3IGYyZnNfd2FpdF9vbl9ibG9j a193cml0ZWJhY2srMHhiMS8weDExMApbICA4NDYuNDMyMzc2XSBNb2R1bGVzIGxpbmtlZCBpbjog c25kX2hkYV9jb2RlY19nZW5lcmljIHNuZF9oZGFfaW50ZWwgc25kX2hkYV9jb2RlYyBzbmRfaGRh X2NvcmUgc25kX2h3ZGVwIHNuZF9wY20gc25kX3RpbWVyIHNuZCBpbnB1dF9sZWRzIGpveWRldiBz b3VuZGNvcmUgc2VyaW9fcmF3IGkyY19waWl4NCBtYWNfaGlkIGliX2lzZXIgcmRtYV9jbSBpd19j bSBpYl9jbSBpYl9jb3JlIGNvbmZpZ2ZzIGlzY3NpX3RjcCBsaWJpc2NzaV90Y3AgbGliaXNjc2kg c2NzaV90cmFuc3BvcnRfaXNjc2kgYXV0b2ZzNCByYWlkMTAgcmFpZDQ1NiBsaWJjcmMzMmMgYXN5 bmNfcmFpZDZfcmVjb3YgYXN5bmNfbWVtY3B5IGFzeW5jX3BxIGFzeW5jX3hvciB4b3IgYXN5bmNf dHggcmFpZDZfcHEgcmFpZDEgcmFpZDAgbXVsdGlwYXRoIGxpbmVhciBxeGwgdHRtIGNyY3QxMGRp Zl9wY2xtdWwgY3JjMzJfcGNsbXVsIGRybV9rbXNfaGVscGVyIGdoYXNoX2NsbXVsbmlfaW50ZWwg c3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZiX3N5c19mb3BzIHBjYmMgZHJtIDgx Mzl0b28gYWVzbmlfaW50ZWwgODEzOWNwIGZsb3BweSBwc21vdXNlIG1paSBhZXNfeDg2XzY0IGNy eXB0b19zaW1kIHBhdGFfYWNwaSBjcnlwdGQgZ2x1ZV9oZWxwZXIKWyAgODQ2LjQzMjQxMF0gQ1BV OiAxIFBJRDogMTI0OSBDb21tOiBhLm91dCBUYWludGVkOiBHICAgICAgICBXICAgICAgICAgNC4x OC4wLXJjMysgIzEKWyAgODQ2LjQzMjQxMV0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQ QyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVudHUxIDA0LzAx LzIwMTQKWyAgODQ2LjQzMjQxM10gUklQOiAwMDEwOmYyZnNfd2FpdF9vbl9ibG9ja193cml0ZWJh Y2srMHhiMS8weDExMApbICA4NDYuNDMyNDE0XSBDb2RlOiA2NiA5MCBmMCBmZiA0YiAzNCA3NCA1 OSA1YiA1ZCBjMyA0OCA4YiA3ZCAwMCA0MSBiOCAwNSAwMCAwMCAwMCA4OSBkOSA0OCBjNyBjMiBk OCBlOCAwZSA4YiA0OCBjNyBjNiAxZCBiMCAwYSA4YiBlOCBkZiBiYyBmZCBmZiA8MGY+IDBiIGYw IDgwIDRkIDQ4IDA0IGU5IDY3IGZmIGZmIGZmIDQ4IDhiIDAzIDQ4IGMxIGU4IDM3IDgzIGUwIDA3 ClsgIDg0Ni40MzI0NDVdIFJTUDogMDAxODpmZmZmOTYxYzQxNGE3OTEwIEVGTEFHUzogMDAwMTAy ODYKWyAgODQ2LjQzMjQ0N10gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAwMDAw MDQwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDYKWyAgODQ2LjQzMjQ0OF0gUkRYOiAwMDAwMDAwMDAw MDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDA5MiBSREk6IGZmZmY4OWRmZmZkMTY1ZDAKWyAgODQ2 LjQzMjQ0OV0gUkJQOiBmZmZmODlkZmY1NDkyODAwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6 IDAwMDAwMDAwMDAwMDAyZDEKWyAgODQ2LjQzMjQ1MF0gUjEwOiBmZmZmOTYxYzQxNGE3ODIwIFIx MTogZmZmZjg5ZGZhZDUwY2Y4MCBSMTI6IDAwMDAwMDAwMDAwMDA0MDAKWyAgODQ2LjQzMjQ1MV0g UjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogZmZmZjg5ZGZmNGZmODhkMCBSMTU6IDAwMDAwMDAw MDAwMDAwMDAKWyAgODQ2LjQzMjQ1M10gRlM6ICAwMDAwN2Y4ODJlMmZiNzAwKDAwMDApIEdTOmZm ZmY4OWRmZmZkMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA4NDYuNDMyNDU0 XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDg0 Ni40MzI0NTVdIENSMjogMDAwMDAwMDAwMWE4ODAwOCBDUjM6IDAwMDAwMDAxZWI1NzIwMDAgQ1I0 OiAwMDAwMDAwMDAwMDAwNmUwClsgIDg0Ni40MzI0NTldIENhbGwgVHJhY2U6ClsgIDg0Ni40MzI0 NjNdICBmMmZzX2dyYWJfcmVhZF9iaW8rMHhiYy8weGUwClsgIDg0Ni40MzI0NjRdICBmMmZzX3N1 Ym1pdF9wYWdlX3JlYWQrMHgyMS8weDI4MApbICA4NDYuNDMyNDY2XSAgZjJmc19nZXRfcmVhZF9k YXRhX3BhZ2UrMHhiNy8weDNjMApbICA4NDYuNDMyNDY4XSAgZjJmc19nZXRfbG9ja19kYXRhX3Bh Z2UrMHgyOS8weDFlMApbICA4NDYuNDMyNDcwXSAgZjJmc19nZXRfbmV3X2RhdGFfcGFnZSsweDE0 OC8weDU1MApbICA4NDYuNDMyNDczXSAgZjJmc19hZGRfcmVndWxhcl9lbnRyeSsweDFkMi8weDU1 MApbICA4NDYuNDMyNDc1XSAgPyBfX3N3aXRjaF90bysweDEyZi8weDQ2MApbICA4NDYuNDMyNDc3 XSAgZjJmc19hZGRfZGVudHJ5KzB4NmEvMHhkMApbICA4NDYuNDMyNDgwXSAgZjJmc19kb19hZGRf bGluaysweGU5LzB4MTQwClsgIDg0Ni40MzI0ODNdICBfX3JlY292ZXJfZG90X2RlbnRyaWVzKzB4 MjYwLzB4MjgwClsgIDg0Ni40MzI0ODVdICBmMmZzX2xvb2t1cCsweDM0My8weDM5MApbICA4NDYu NDMyNDg4XSAgX19sb29rdXBfc2xvdysweDk3LzB4MTUwClsgIDg0Ni40MzI0OTBdICBsb29rdXBf c2xvdysweDM1LzB4NTAKWyAgODQ2LjQzMjUwNV0gIHdhbGtfY29tcG9uZW50KzB4MWM2LzB4NDcw ClsgIDg0Ni40MzI1MDldICA/IG1lbWNnX2ttZW1fY2hhcmdlX21lbWNnKzB4NzAvMHg5MApbICA4 NDYuNDMyNTExXSAgPyBwYWdlX2FkZF9maWxlX3JtYXArMHgxMy8weDIwMApbICA4NDYuNDMyNTEz XSAgcGF0aF9sb29rdXBhdCsweDc2LzB4MjMwClsgIDg0Ni40MzI1MTVdICA/IF9fYWxsb2NfcGFn ZXNfbm9kZW1hc2srMHhmYy8weDI4MApbICA4NDYuNDMyNTE3XSAgZmlsZW5hbWVfbG9va3VwKzB4 YjgvMHgxYTAKWyAgODQ2LjQzMjUyMF0gID8gX2NvbmRfcmVzY2hlZCsweDE2LzB4NDAKWyAgODQ2 LjQzMjUyMl0gID8ga21lbV9jYWNoZV9hbGxvYysweDE2MC8weDFkMApbICA4NDYuNDMyNTI1XSAg PyBwYXRoX2xpc3R4YXR0cisweDQxLzB4YTAKWyAgODQ2LjQzMjUyNl0gIHBhdGhfbGlzdHhhdHRy KzB4NDEvMHhhMApbICA4NDYuNDMyNTI5XSAgZG9fc3lzY2FsbF82NCsweDU1LzB4MTAwClsgIDg0 Ni40MzI1MzFdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDg0 Ni40MzI1MzNdIFJJUDogMDAzMzoweDdmODgyZGUxYzBkNwpbICA4NDYuNDMyNTMzXSBDb2RlOiBm MCBmZiBmZiA3MyAwMSBjMyA0OCA4YiAwZCBiZSBkZCAyYiAwMCBmNyBkOCA2NCA4OSAwMSA0OCA4 MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCA2NiA5MCBiOCBjMiAwMCAw MCAwMCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDAxIGMzIDQ4IDhiIDBkIDkxIGRkIDJi IDAwIGY3IGQ4IDY0IDg5IDAxIDQ4ClsgIDg0Ni40MzI1NjVdIFJTUDogMDAyYjowMDAwN2ZmZThl NjZjMjM4IEVGTEFHUzogMDAwMDAyMDIgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwYzIKWyAgODQ2 LjQzMjU2N10gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6 IDAwMDA3Zjg4MmRlMWMwZDcKWyAgODQ2LjQzMjU2OF0gUkRYOiAwMDAwMDAwMDAwMDAwMDcxIFJT STogMDAwMDdmZmU4ZTY2YzI4MCBSREk6IDAwMDAwMDAwMDFhODgwYzAKWyAgODQ2LjQzMjU2OV0g UkJQOiAwMDAwN2ZmZThlNjZjMzAwIFIwODogMDAwMDAwMDAwMWE4ODAxMCBSMDk6IDAwMDAwMDAw MDAwMDAwMDAKWyAgODQ2LjQzMjU3MF0gUjEwOiAwMDAwMDAwMDAwMDAwMWFiIFIxMTogMDAwMDAw MDAwMDAwMDIwMiBSMTI6IDAwMDAwMDAwMDA0MDA1NTAKWyAgODQ2LjQzMjU3MV0gUjEzOiAwMDAw N2ZmZThlNjZjNDAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAK WyAgODQ2LjQzMjU3M10gLS0tWyBlbmQgdHJhY2UgYWJjYTU0ZGYzOWQxNGY1ZiBdLS0tClsgIDg0 Ni40MzQyODBdIEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVm ZXJlbmNlIGF0IDAwMDAwMDAwMDAwMDAwMDgKWyAgODQ2LjQzNDQyNF0gUEdEIDgwMDAwMDAxZWJk M2EwNjcgUDREIDgwMDAwMDAxZWJkM2EwNjcgUFVEIDFlYjFhZTA2NyBQTUQgMApbICA4NDYuNDM0 NTUxXSBPb3BzOiAwMDAwIFsjMV0gU01QIFBUSQpbICA4NDYuNDM0Njk3XSBDUFU6IDAgUElEOiA0 NCBDb21tOiBrd29ya2VyL3U1OjAgVGFpbnRlZDogRyAgICAgICAgVyAgICAgICAgIDQuMTguMC1y YzMrICMxClsgIDg0Ni40MzQ4MDVdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0 NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0xLjguMi0xdWJ1bnR1MSAwNC8wMS8yMDE0 ClsgIDg0Ni40MzUwMDBdIFdvcmtxdWV1ZTogZnNjcnlwdF9yZWFkX3F1ZXVlIGRlY3J5cHRfd29y awpbICA4NDYuNDM1MTc0XSBSSVA6IDAwMTA6ZnNjcnlwdF9kb19wYWdlX2NyeXB0bysweDZlLzB4 MmQwClsgIDg0Ni40MzUzNTFdIENvZGU6IDAwIDY1IDQ4IDhiIDA0IDI1IDI4IDAwIDAwIDAwIDQ4 IDg5IDg0IDI0IDg4IDAwIDAwIDAwIDMxIGMwIGU4IDQzIGMyIGUwIGZmIDQ5IDhiIDg2IDQ4IDAy IDAwIDAwIDg1IGVkIGM3IDQ0IDI0IDcwIDAwIDAwIDAwIDAwIDw0OD4gOGIgNTggMDggMGYgODQg MTQgMDIgMDAgMDAgNDggOGIgNzggMTAgNDggOGIgMGMgMjQgNDggYzcgODQgMjQKWyAgODQ2LjQz NTY5Nl0gUlNQOiAwMDE4OmZmZmY5NjFjNDBmOWJkNjAgRUZMQUdTOiAwMDAxMDIwNgpbICA4NDYu NDM1ODcwXSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmYzVmNzg3NzE5YjgwIFJDWDog ZmZmZmM1Zjc4NzcxOWI4MApbICA4NDYuNDM2MDUxXSBSRFg6IGZmZmZmZmZmOGI5ZjRiODggUlNJ OiBmZmZmZmZmZjhiMGFlNjIyIFJESTogZmZmZjk2MWM0MGY5YmRiOApbICA4NDYuNDM2MjYxXSBS QlA6IDAwMDAwMDAwMDAwMDEwMDAgUjA4OiBmZmZmYzVmNzg3NzE5YjgwIFIwOTogMDAwMDAwMDAw MDAwMTAwMApbICA4NDYuNDM2NDMzXSBSMTA6IDAwMDAwMDAwMDAwMDAwMTggUjExOiBmZWZlZmVm ZWZlZmVmZWZmIFIxMjogZmZmZmM1Zjc4NzcxOWI4MApbICA4NDYuNDM2NTYyXSBSMTM6IGZmZmZj NWY3ODc3MTliODAgUjE0OiBmZmZmODlkZmY0ZmY4OGQwIFIxNTogMGZmZmY4OWRmYWRkZWU2MApb ICA4NDYuNDM2NjU4XSBGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjg5ZGZmZmMw MDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgIDg0Ni40MzY3NThdIENTOiAgMDAx MCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgODQ2LjQzNjg5OF0g Q1IyOiAwMDAwMDAwMDAwMDAwMDA4IENSMzogMDAwMDAwMDFlZGRkMDAwMCBDUjQ6IDAwMDAwMDAw MDAwMDA2ZjAKWyAgODQ2LjQzNzAwMV0gQ2FsbCBUcmFjZToKWyAgODQ2LjQzNzE4MV0gID8gY2hl Y2tfcHJlZW1wdF93YWtldXArMHhmMi8weDIzMApbICA4NDYuNDM3Mjc2XSAgPyBjaGVja19wcmVl bXB0X2N1cnIrMHg3Yy8weDkwClsgIDg0Ni40MzczNzBdICBmc2NyeXB0X2RlY3J5cHRfcGFnZSsw eDQ4LzB4NGQKWyAgODQ2LjQzNzQ2Nl0gIF9fZnNjcnlwdF9kZWNyeXB0X2JpbysweDViLzB4OTAK WyAgODQ2LjQzNzU0Ml0gIGRlY3J5cHRfd29yaysweDEyLzB4MjAKWyAgODQ2LjQzNzY1MV0gIHBy b2Nlc3Nfb25lX3dvcmsrMHgxNWUvMHgzZDAKWyAgODQ2LjQzNzc0MF0gIHdvcmtlcl90aHJlYWQr MHg0Yy8weDQ0MApbICA4NDYuNDM3ODQ4XSAga3RocmVhZCsweGY4LzB4MTMwClsgIDg0Ni40Mzc5 MzhdICA/IHJlc2N1ZXJfdGhyZWFkKzB4MzUwLzB4MzUwClsgIDg0Ni40MzgwMjJdICA/IGt0aHJl YWRfYXNzb2NpYXRlX2Jsa2NnKzB4OTAvMHg5MApbICA4NDYuNDM4MTE3XSAgcmV0X2Zyb21fZm9y aysweDM1LzB4NDAKWyAgODQ2LjQzODIwMV0gTW9kdWxlcyBsaW5rZWQgaW46IHNuZF9oZGFfY29k ZWNfZ2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMgc25kX2hkYV9jb3JlIHNuZF9o d2RlcCBzbmRfcGNtIHNuZF90aW1lciBzbmQgaW5wdXRfbGVkcyBqb3lkZXYgc291bmRjb3JlIHNl cmlvX3JhdyBpMmNfcGlpeDQgbWFjX2hpZCBpYl9pc2VyIHJkbWFfY20gaXdfY20gaWJfY20gaWJf Y29yZSBjb25maWdmcyBpc2NzaV90Y3AgbGliaXNjc2lfdGNwIGxpYmlzY3NpIHNjc2lfdHJhbnNw b3J0X2lzY3NpIGF1dG9mczQgcmFpZDEwIHJhaWQ0NTYgbGliY3JjMzJjIGFzeW5jX3JhaWQ2X3Jl Y292IGFzeW5jX21lbWNweSBhc3luY19wcSBhc3luY194b3IgeG9yIGFzeW5jX3R4IHJhaWQ2X3Bx IHJhaWQxIHJhaWQwIG11bHRpcGF0aCBsaW5lYXIgcXhsIHR0bSBjcmN0MTBkaWZfcGNsbXVsIGNy YzMyX3BjbG11bCBkcm1fa21zX2hlbHBlciBnaGFzaF9jbG11bG5pX2ludGVsIHN5c2NvcHlhcmVh IHN5c2ZpbGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNfZm9wcyBwY2JjIGRybSA4MTM5dG9vIGFlc25p X2ludGVsIDgxMzljcCBmbG9wcHkgcHNtb3VzZSBtaWkgYWVzX3g4Nl82NCBjcnlwdG9fc2ltZCBw YXRhX2FjcGkgY3J5cHRkIGdsdWVfaGVscGVyClsgIDg0Ni40Mzg2NTNdIENSMjogMDAwMDAwMDAw MDAwMDAwOApbICA4NDYuNDM4NzEzXSAtLS1bIGVuZCB0cmFjZSBhYmNhNTRkZjM5ZDE0ZjYwIF0t LS0KWyAgODQ2LjQzODc5Nl0gUklQOiAwMDEwOmZzY3J5cHRfZG9fcGFnZV9jcnlwdG8rMHg2ZS8w eDJkMApbICA4NDYuNDM4ODQ0XSBDb2RlOiAwMCA2NSA0OCA4YiAwNCAyNSAyOCAwMCAwMCAwMCA0 OCA4OSA4NCAyNCA4OCAwMCAwMCAwMCAzMSBjMCBlOCA0MyBjMiBlMCBmZiA0OSA4YiA4NiA0OCAw MiAwMCAwMCA4NSBlZCBjNyA0NCAyNCA3MCAwMCAwMCAwMCAwMCA8NDg+IDhiIDU4IDA4IDBmIDg0 IDE0IDAyIDAwIDAwIDQ4IDhiIDc4IDEwIDQ4IDhiIDBjIDI0IDQ4IGM3IDg0IDI0ClsgIDg0Ni40 MzkwODRdIFJTUDogMDAxODpmZmZmOTYxYzQwZjliZDYwIEVGTEFHUzogMDAwMTAyMDYKWyAgODQ2 LjQzOTE3Nl0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmZmZmM1Zjc4NzcxOWI4MCBSQ1g6 IGZmZmZjNWY3ODc3MTliODAKWyAgODQ2LjQ0MDkyN10gUkRYOiBmZmZmZmZmZjhiOWY0Yjg4IFJT STogZmZmZmZmZmY4YjBhZTYyMiBSREk6IGZmZmY5NjFjNDBmOWJkYjgKWyAgODQ2LjQ0MjA4M10g UkJQOiAwMDAwMDAwMDAwMDAxMDAwIFIwODogZmZmZmM1Zjc4NzcxOWI4MCBSMDk6IDAwMDAwMDAw MDAwMDEwMDAKWyAgODQ2LjQ0MzI4NF0gUjEwOiAwMDAwMDAwMDAwMDAwMDE4IFIxMTogZmVmZWZl ZmVmZWZlZmVmZiBSMTI6IGZmZmZjNWY3ODc3MTliODAKWyAgODQ2LjQ0NDQ0OF0gUjEzOiBmZmZm YzVmNzg3NzE5YjgwIFIxNDogZmZmZjg5ZGZmNGZmODhkMCBSMTU6IDBmZmZmODlkZmFkZGVlNjAK WyAgODQ2LjQ0NTU1OF0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4OWRmZmZj MDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA4NDYuNDQ2Njg3XSBDUzogIDAw MTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDg0Ni40NDc3OTZd IENSMjogMDAwMDAwMDAwMDAwMDAwOCBDUjM6IDAwMDAwMDAxZWRkZDAwMDAgQ1I0OiAwMDAwMDAw MDAwMDAwNmYwCgotIExvY2F0aW9uCmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y0 LjE4LXJjNC9zb3VyY2UvZnMvY3J5cHRvL2NyeXB0by5jI0wxNDkKCXN0cnVjdCBjcnlwdG9fc2tj aXBoZXIgKnRmbSA9IGNpLT5jaV9jdGZtOwpIZXJlIGNpIGNhbiBiZSBOVUxMCgpOb3RlIHRoYXQg dGhpcyBpc3N1ZSBtYXliZSByZXF1aXJlIENPTkZJR19GMkZTX0ZTX0VOQ1JZUFRJT049eSB0byBy ZXByb2R1Y2UuCgpSZXBvcnRlZC1ieSBXZW4gWHUgPHdlbi54dUBnYXRlY2guZWR1PgpTaWduZWQt b2ZmLWJ5OiBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IEphZWdl dWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC4xNDogYWRq dXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NA Y29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvZGF0YS5jICB8ICAzICsrKwogZnMvZjJmcy9p bm9kZS5jIHwgMTggKysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE2IGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9kYXRhLmMgYi9m cy9mMmZzL2RhdGEuYwppbmRleCA4ZjZlN2MzYTEwZjguLmM2OGIzMTliMDdhYSAxMDA2NDQKLS0t IGEvZnMvZjJmcy9kYXRhLmMKKysrIGIvZnMvZjJmcy9kYXRhLmMKQEAgLTQ2OCw2ICs0NjgsOSBA QCBzdGF0aWMgc3RydWN0IGJpbyAqZjJmc19ncmFiX3JlYWRfYmlvKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIGJsb2NrX3QgYmxrYWRkciwKIAlzdHJ1Y3QgZnNjcnlwdF9jdHggKmN0eCA9IE5VTEw7CiAJ c3RydWN0IGJpbyAqYmlvOwogCisJaWYgKCFmMmZzX2lzX3ZhbGlkX2Jsa2FkZHIoc2JpLCBibGth ZGRyLCBEQVRBX0dFTkVSSUMpKQorCQlyZXR1cm4gRVJSX1BUUigtRUZBVUxUKTsKKwogCWlmIChm MmZzX2VuY3J5cHRlZF9maWxlKGlub2RlKSkgewogCQljdHggPSBmc2NyeXB0X2dldF9jdHgoaW5v ZGUsIEdGUF9OT0ZTKTsKIAkJaWYgKElTX0VSUihjdHgpKQpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9p bm9kZS5jIGIvZnMvZjJmcy9pbm9kZS5jCmluZGV4IDlhNDA3MjRkYmFhNi4uNTA4MThiNTE5ZGY4 IDEwMDY0NAotLS0gYS9mcy9mMmZzL2lub2RlLmMKKysrIGIvZnMvZjJmcy9pbm9kZS5jCkBAIC02 MiwxNCArNjIsMTYgQEAgc3RhdGljIHZvaWQgX19nZXRfaW5vZGVfcmRldihzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBzdHJ1Y3QgZjJmc19pbm9kZSAqcmkpCiAJfQogfQogCi1zdGF0aWMgYm9vbCBfX3dy aXR0ZW5fZmlyc3RfYmxvY2soc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAorc3RhdGljIGludCBf X3dyaXR0ZW5fZmlyc3RfYmxvY2soc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpLAogCQkJCQlzdHJ1 Y3QgZjJmc19pbm9kZSAqcmkpCiB7CiAJYmxvY2tfdCBhZGRyID0gbGUzMl90b19jcHUocmktPmlf YWRkcltvZmZzZXRfaW5fYWRkcihyaSldKTsKIAotCWlmIChpc192YWxpZF9kYXRhX2Jsa2FkZHIo c2JpLCBhZGRyKSkKLQkJcmV0dXJuIHRydWU7Ci0JcmV0dXJuIGZhbHNlOworCWlmICghX19pc192 YWxpZF9kYXRhX2Jsa2FkZHIoYWRkcikpCisJCXJldHVybiAxOworCWlmICghZjJmc19pc192YWxp ZF9ibGthZGRyKHNiaSwgYWRkciwgREFUQV9HRU5FUklDKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJ cmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIF9fc2V0X2lub2RlX3JkZXYoc3RydWN0IGlub2Rl ICppbm9kZSwgc3RydWN0IGYyZnNfaW5vZGUgKnJpKQpAQCAtMjUzLDYgKzI1NSw3IEBAIHN0YXRp YyBpbnQgZG9fcmVhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCXN0cnVjdCBwYWdlICpu b2RlX3BhZ2U7CiAJc3RydWN0IGYyZnNfaW5vZGUgKnJpOwogCXByb2ppZF90IGlfcHJvamlkOwor CWludCBlcnI7CiAKIAkvKiBDaGVjayBpZiBpbm8gaXMgd2l0aGluIHNjb3BlICovCiAJaWYgKGNo ZWNrX25pZF9yYW5nZShzYmksIGlub2RlLT5pX2lubykpCkBAIC0zMDcsNyArMzEwLDEyIEBAIHN0 YXRpYyBpbnQgZG9fcmVhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCS8qIGdldCByZGV2 IGJ5IHVzaW5nIGlubGluZV9pbmZvICovCiAJX19nZXRfaW5vZGVfcmRldihpbm9kZSwgcmkpOwog Ci0JaWYgKF9fd3JpdHRlbl9maXJzdF9ibG9jayhzYmksIHJpKSkKKwllcnIgPSBfX3dyaXR0ZW5f Zmlyc3RfYmxvY2soc2JpLCByaSk7CisJaWYgKGVyciA8IDApIHsKKwkJZjJmc19wdXRfcGFnZShu b2RlX3BhZ2UsIDEpOworCQlyZXR1cm4gZXJyOworCX0KKwlpZiAoIWVycikKIAkJc2V0X2lub2Rl X2ZsYWcoaW5vZGUsIEZJX0ZJUlNUX0JMT0NLX1dSSVRURU4pOwogCiAJaWYgKCFuZWVkX2lub2Rl X2Jsb2NrX3VwZGF0ZShzYmksIGlub2RlLT5pX2lubykpCi0tIApCZW4gSHV0Y2hpbmdzLCBTb2Z0 d2FyZSBEZXZlbG9wZXIgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZXRoaW5rIEx0ZApodHRw czovL3d3dy5jb2RldGhpbmsuY28udWsvICAgICAgICAgICAgICAgICBEYWxlIEhvdXNlLCAzNSBE YWxlIFN0cmVldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuY2hlc3Rl ciwgTTEgMkhGLCBVbml0ZWQgS2luZ2RvbQoKCkZyb20gYTQwOGY0Zjk2YzFiNzgwZTc0MDllNWNi MzBjYThiMTVmMGQyNTEwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hhbyBZdSA8 eXVjaGFvMEBodWF3ZWkuY29tPgpEYXRlOiBXZWQsIDEgQXVnIDIwMTggMTk6MTY6MTEgKzA4MDAK U3ViamVjdDogW1BBVENIIDQ1LzQ2XSBmMmZzOiBmaXggdG8gZG8gc2FuaXR5IGNoZWNrIHdpdGgg Y3BfcGFja19zdGFydF9zdW0KCmNvbW1pdCBlNDk0YzJmOTk1ZDYxODFkNmUyOWM0OTI3ZDY4ZTBm Mjk1ZWNmNzViIHVwc3RyZWFtLgoKQWZ0ZXIgZnV6emluZywgY3BfcGFja19zdGFydF9zdW0gY291 bGQgYmUgY29ycnVwdGVkLCBzbyBjdXJyZW50IGxvZydzCnN1bW1hcnkgaW5mbyBzaG91bGQgYmUg d3JvbmcgZHVlIHRvIGxvYWRpbmcgaW5jb3JyZWN0IHN1bW1hcnkgYmxvY2suClRoZW4sIGlmIHNl Z21lbnQncyB0eXBlIGluIGN1cnJlbnQgbG9nIGlzIGV4Y2VlZGVkIE5SX0NVUlNFR19UWVBFLCBp dApjYW4gbGVhZCBhY2Nlc3NpbmcgaW52YWxpZCBkaXJ0eV9pLT5kaXJ0eV9zZWdtYXAgYml0bWFw IGZpbmFsbHkuCgpBZGQgc2FuaXR5IGNoZWNrIGZvciBjcF9wYWNrX3N0YXJ0X3N1bSB0byBmaXgg dGhpcyBpc3N1ZS4KCmh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 MjAwNDE5CgotIFJlcHJvZHVjZQoKLSBLZXJuZWwgbWVzc2FnZSAoZjJmcy1kZXYgdy8gS0FTQU4p ClsgMzExNy41Nzg0MzJdIEYyRlMtZnMgKGxvb3AwKTogSW52YWxpZCBsb2cgYmxvY2tzIHBlciBz ZWdtZW50ICg4KQoKWyAzMTE3LjU3ODQ0NV0gRjJGUy1mcyAobG9vcDApOiBDYW4ndCBmaW5kIHZh bGlkIEYyRlMgZmlsZXN5c3RlbSBpbiAydGggc3VwZXJibG9jawpbIDMxMTcuNTgxMzY0XSBGMkZT LWZzIChsb29wMCk6IGludmFsaWQgY3JjX29mZnNldDogMzA3MTYKWyAzMTE3LjU4MzU2NF0gV0FS TklORzogQ1BVOiAxIFBJRDogMTIyNSBhdCBmcy9mMmZzL2NoZWNrcG9pbnQuYzo5MCBfX2dldF9t ZXRhX3BhZ2UrMHg0NDgvMHg0YjAKWyAzMTE3LjU4MzU3MF0gTW9kdWxlcyBsaW5rZWQgaW46IHNu ZF9oZGFfY29kZWNfZ2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMgc25kX2hkYV9j b3JlIHNuZF9od2RlcCBzbmRfcGNtIHNuZF90aW1lciBqb3lkZXYgaW5wdXRfbGVkcyBzZXJpb19y YXcgc25kIHNvdW5kY29yZSBtYWNfaGlkIGkyY19waWl4NCBpYl9pc2VyIHJkbWFfY20gaXdfY20g aWJfY20gaWJfY29yZSBjb25maWdmcyBpc2NzaV90Y3AgbGliaXNjc2lfdGNwIGxpYmlzY3NpIHNj c2lfdHJhbnNwb3J0X2lzY3NpIGJ0cmZzIHpzdGRfZGVjb21wcmVzcyB6c3RkX2NvbXByZXNzIHh4 aGFzaCByYWlkMTAgcmFpZDQ1NiBhc3luY19yYWlkNl9yZWNvdiBhc3luY19tZW1jcHkgYXN5bmNf cHEgYXN5bmNfeG9yIGFzeW5jX3R4IHhvciByYWlkNl9wcSBsaWJjcmMzMmMgcmFpZDEgcmFpZDAg bXVsdGlwYXRoIGxpbmVhciA4MTM5dG9vIHF4bCB0dG0gZHJtX2ttc19oZWxwZXIgc3lzY29weWFy ZWEgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZiX3N5c19mb3BzIGRybSBjcmN0MTBkaWZfcGNsbXVs IGNyYzMyX3BjbG11bCBnaGFzaF9jbG11bG5pX2ludGVsIHBjYmMgYWVzbmlfaW50ZWwgcHNtb3Vz ZSBhZXNfeDg2XzY0IDgxMzljcCBjcnlwdG9fc2ltZCBjcnlwdGQgbWlpIGdsdWVfaGVscGVyIHBh dGFfYWNwaSBmbG9wcHkKWyAzMTE3LjU4NDAxNF0gQ1BVOiAxIFBJRDogMTIyNSBDb21tOiBtb3Vu dCBOb3QgdGFpbnRlZCA0LjE3LjArICMxClsgMzExNy41ODQwMTddIEhhcmR3YXJlIG5hbWU6IFFF TVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIFVidW50dS0xLjguMi0x dWJ1bnR1MSAwNC8wMS8yMDE0ClsgMzExNy41ODQwMjJdIFJJUDogMDAxMDpfX2dldF9tZXRhX3Bh Z2UrMHg0NDgvMHg0YjAKWyAzMTE3LjU4NDAyM10gQ29kZTogMDAgNDkgOGQgYmMgMjQgODQgMDAg MDAgMDAgZTggNzQgNTQgZGEgZmYgNDEgODMgOGMgMjQgODQgMDAgMDAgMDAgMDggNGMgODkgZjYg NGMgODkgZWYgZTggYzAgZDkgOTUgMDAgNDggODkgZWYgZTggMTggZTMgMDAgMDAgPDBmPiAwYiBm MCA4MCA0ZCA0OCAwNCBlOSAwZiBmZSBmZiBmZiAwZiAwYiA0OCA4OSBjNyA0OCA4OSAwNCAyNCBl OApbIDMxMTcuNTg0MDcyXSBSU1A6IDAwMTg6ZmZmZjg4MDE4ZWI2NzhjMCBFRkxBR1M6IDAwMDEw Mjg2ClsgMzExNy41ODQwODJdIFJBWDogZmZmZjg4MDE4ZjBhNmE3OCBSQlg6IGZmZmZlYTAwMDdh NDY2MDAgUkNYOiBmZmZmZmZmZjkzMTRkMWIyClsgMzExNy41ODQwODVdIFJEWDogZmZmZmZmZmYw MDAwMDAwMSBSU0k6IDAwMDAwMDAwMDAwMDAwMDAgUkRJOiBmZmZmODgwMThmMGE2YTk4ClsgMzEx Ny41ODQwODddIFJCUDogZmZmZjg4MDE4ZWJlOTk4MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDIgUjA5 OiAwMDAwMDAwMDAwMDAwMDAxClsgMzExNy41ODQwOTBdIFIxMDogMDAwMDAwMDAwMDAwMDAwMSBS MTE6IGZmZmZlZDAwMzI2ZTQ0NTAgUjEyOiBmZmZmODgwMTkzNzIyMjAwClsgMzExNy41ODQwOTJd IFIxMzogZmZmZjg4MDE4ZWJlOWFmYyBSMTQ6IDAwMDAwMDAwMDAwMDAyMDYgUjE1OiBmZmZmODgw MThlYjY3OTAwClsgMzExNy41ODQwOTZdIEZTOiAgMDAwMDdmNTY5NDYzNjg0MCgwMDAwKSBHUzpm ZmZmODgwMWYzYjAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAzMTE3LjU4NDA5 OF0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbIDMx MTcuNTg0MTAxXSBDUjI6IDAwMDAwMDAwMDE2ZjIxYjggQ1IzOiAwMDAwMDAwMTkxYzIyMDAwIENS NDogMDAwMDAwMDAwMDAwMDZlMApbIDMxMTcuNTg0MTEyXSBDYWxsIFRyYWNlOgpbIDMxMTcuNTg0 MTIxXSAgPyBmMmZzX3NldF9tZXRhX3BhZ2VfZGlydHkrMHgxNTAvMHgxNTAKWyAzMTE3LjU4NDEy N10gID8gZjJmc19idWlsZF9zZWdtZW50X21hbmFnZXIrMHhiZjkvMHgzMTkwClsgMzExNy41ODQx MzNdICA/IGYyZnNfbnBhZ2VzX2Zvcl9zdW1tYXJ5X2ZsdXNoKzB4NzUvMHgxMjAKWyAzMTE3LjU4 NDE0NV0gIGYyZnNfYnVpbGRfc2VnbWVudF9tYW5hZ2VyKzB4ZGE4LzB4MzE5MApbIDMxMTcuNTg0 MTUxXSAgPyBmMmZzX2dldF92YWxpZF9jaGVja3BvaW50KzB4Mjk4LzB4YTAwClsgMzExNy41ODQx NTZdICA/IGYyZnNfZmx1c2hfc2l0X2VudHJpZXMrMHgxMGUwLzB4MTBlMApbIDMxMTcuNTg0MTg0 XSAgPyBtYXBfaWRfcmFuZ2VfZG93bisweDE3Yy8weDFiMApbIDMxMTcuNTg0MTg4XSAgPyBfX3B1 dF91c2VyX25zKzB4MzAvMHgzMApbIDMxMTcuNTg0MjA2XSAgPyBmaW5kX25leHRfYml0KzB4NTMv MHg5MApbIDMxMTcuNTg0MjM3XSAgPyBjcHVtYXNrX25leHQrMHgxNi8weDIwClsgMzExNy41ODQy NDldICBmMmZzX2ZpbGxfc3VwZXIrMHgxOTQ4LzB4MmI0MApbIDMxMTcuNTg0MjU4XSAgPyBmMmZz X2NvbW1pdF9zdXBlcisweDFhMC8weDFhMApbIDMxMTcuNTg0Mjc5XSAgPyBzZ2V0X3VzZXJucysw eDY1ZS8weDY5MApbIDMxMTcuNTg0Mjk2XSAgPyBzZXRfYmxvY2tzaXplKzB4ODgvMHgxMzAKWyAz MTE3LjU4NDMwMl0gID8gZjJmc19jb21taXRfc3VwZXIrMHgxYTAvMHgxYTAKWyAzMTE3LjU4NDMw NV0gIG1vdW50X2JkZXYrMHgxYzAvMHgyMDAKWyAzMTE3LjU4NDMxMF0gIG1vdW50X2ZzKzB4NWMv MHgxOTAKWyAzMTE3LjU4NDMyMF0gIHZmc19rZXJuX21vdW50KzB4NjQvMHgxOTAKWyAzMTE3LjU4 NDMzMF0gIGRvX21vdW50KzB4MmU0LzB4MTQ1MApbIDMxMTcuNTg0MzQzXSAgPyBsb2NrcmVmX3B1 dF9yZXR1cm4rMHgxMzAvMHgxMzAKWyAzMTE3LjU4NDM0N10gID8gY29weV9tb3VudF9zdHJpbmcr MHgyMC8weDIwClsgMzExNy41ODQzNTddICA/IGthc2FuX3VucG9pc29uX3NoYWRvdysweDMxLzB4 NDAKWyAzMTE3LjU4NDM2Ml0gID8ga2FzYW5fa21hbGxvYysweGE2LzB4ZDAKWyAzMTE3LjU4NDM3 M10gID8gbWVtY2dfa21lbV9wdXRfY2FjaGUrMHgxNi8weDkwClsgMzExNy41ODQzNzddICA/IF9f a21hbGxvY190cmFja19jYWxsZXIrMHgxOTYvMHgyMTAKWyAzMTE3LjU4NDM4M10gID8gX2NvcHlf ZnJvbV91c2VyKzB4NjEvMHg5MApbIDMxMTcuNTg0Mzk2XSAgPyBtZW1kdXBfdXNlcisweDNlLzB4 NjAKWyAzMTE3LjU4NDQwMV0gIGtzeXNfbW91bnQrMHg3ZS8weGQwClsgMzExNy41ODQ0MDVdICBf X3g2NF9zeXNfbW91bnQrMHg2Mi8weDcwClsgMzExNy41ODQ0MjddICBkb19zeXNjYWxsXzY0KzB4 NzMvMHgxNjAKWyAzMTE3LjU4NDQ0MF0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ0LzB4YTkKWyAzMTE3LjU4NDQ1NV0gUklQOiAwMDMzOjB4N2Y1NjkzZjE0YjlhClsgMzExNy41 ODQ0NTZdIENvZGU6IDQ4IDhiIDBkIDAxIGMzIDJiIDAwIGY3IGQ4IDY0IDg5IDAxIDQ4IDgzIGM4 IGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDBmIDFmIDQ0IDAwIDAwIDQ5IDg5 IGNhIGI4IGE1IDAwIDAwIDAwIDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDgg OGIgMGQgY2UgYzIgMmIgMDAgZjcgZDggNjQgODkgMDEgNDgKWyAzMTE3LjU4NDUwNV0gUlNQOiAw MDJiOjAwMDA3ZmZmMjczNDY0ODggRUZMQUdTOiAwMDAwMDIwNiBPUklHX1JBWDogMDAwMDAwMDAw MDAwMDBhNQpbIDMxMTcuNTg0NTEwXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAw MDAxNmUyMDMwIFJDWDogMDAwMDdmNTY5M2YxNGI5YQpbIDMxMTcuNTg0NTEyXSBSRFg6IDAwMDAw MDAwMDE2ZTIyMTAgUlNJOiAwMDAwMDAwMDAxNmUzZjMwIFJESTogMDAwMDAwMDAwMTZlZTA0MApb IDMxMTcuNTg0NTE0XSBSQlA6IDAwMDAwMDAwMDAwMDAwMDAgUjA4OiAwMDAwMDAwMDAwMDAwMDAw IFIwOTogMDAwMDAwMDAwMDAwMDAxMwpbIDMxMTcuNTg0NTE2XSBSMTA6IDAwMDAwMDAwYzBlZDAw MDAgUjExOiAwMDAwMDAwMDAwMDAwMjA2IFIxMjogMDAwMDAwMDAwMTZlZTA0MApbIDMxMTcuNTg0 NTE5XSBSMTM6IDAwMDAwMDAwMDE2ZTIyMTAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAw MDAwMDAwMDAwMDAwMwpbIDMxMTcuNTg0NTIzXSAtLS1bIGVuZCB0cmFjZSBhOGUwZDg5OTk4NWZh ZjMxIF0tLS0KWyAzMTE3LjY4NTY2M10gRjJGUy1mcyAobG9vcDApOiBmMmZzX2NoZWNrX25pZF9y YW5nZTogb3V0LW9mLXJhbmdlIG5pZD0yLCBydW4gZnNjayB0byBmaXguClsgMzExNy42ODU2NzNd IEYyRlMtZnMgKGxvb3AwKTogcmVjb3Zlcl9kYXRhOiBpbm8gPSAyIChpX3NpemU6IHJlY292ZXIp IHJlY292ZXJlZCA9IDEsIGVyciA9IDAKWyAzMTE3LjY4NTcwN10gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgMzExNy42 ODU5NTVdIEJVRzogS0FTQU46IHNsYWItb3V0LW9mLWJvdW5kcyBpbiBfX3JlbW92ZV9kaXJ0eV9z ZWdtZW50KzB4ZGQvMHgxZTAKWyAzMTE3LjY4NjE3NV0gUmVhZCBvZiBzaXplIDggYXQgYWRkciBm ZmZmODgwMThmMGE2M2QwIGJ5IHRhc2sgbW91bnQvMTIyNQoKWyAzMTE3LjY4NjQ3N10gQ1BVOiAw IFBJRDogMTIyNSBDb21tOiBtb3VudCBUYWludGVkOiBHICAgICAgICBXICAgICAgICAgNC4xNy4w KyAjMQpbIDMxMTcuNjg2NDgxXSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQw RlggKyBQSUlYLCAxOTk2KSwgQklPUyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEvMjAxNApb IDMxMTcuNjg2NDgzXSBDYWxsIFRyYWNlOgpbIDMxMTcuNjg2NDk0XSAgZHVtcF9zdGFjaysweDcx LzB4YWIKWyAzMTE3LjY4NjUxMl0gIHByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24rMHg2Yi8weDI5 MApbIDMxMTcuNjg2NTE3XSAga2FzYW5fcmVwb3J0KzB4MjhlLzB4MzkwClsgMzExNy42ODY1MjJd ICA/IF9fcmVtb3ZlX2RpcnR5X3NlZ21lbnQrMHhkZC8weDFlMApbIDMxMTcuNjg2NTI3XSAgX19y ZW1vdmVfZGlydHlfc2VnbWVudCsweGRkLzB4MWUwClsgMzExNy42ODY1MzJdICBsb2NhdGVfZGly dHlfc2VnbWVudCsweDE4OS8weDE5MApbIDMxMTcuNjg2NTM4XSAgZjJmc19hbGxvY2F0ZV9uZXdf c2VnbWVudHMrMHhhOS8weGUwClsgMzExNy42ODY1NDNdICByZWNvdmVyX2RhdGErMHg3MDMvMHgy YzIwClsgMzExNy42ODY1NDddICA/IGYyZnNfcmVjb3Zlcl9mc3luY19kYXRhKzB4NDhmLzB4ZDUw ClsgMzExNy42ODY1NTNdICA/IGtzeXNfbW91bnQrMHg3ZS8weGQwClsgMzExNy42ODY1NjRdICA/ IHBvbGljeV9ub2RlbWFzaysweDFhLzB4OTAKWyAzMTE3LjY4NjU2N10gID8gcG9saWN5X25vZGUr MHg1Ni8weDcwClsgMzExNy42ODY1NzFdICA/IGFkZF9mc3luY19pbm9kZSsweGYwLzB4ZjAKWyAz MTE3LjY4NjU5Ml0gID8gYmxrX2ZpbmlzaF9wbHVnKzB4NDQvMHg2MApbIDMxMTcuNjg2NTk3XSAg PyBmMmZzX3JhX21ldGFfcGFnZXMrMHgzOGIvMHg1ZTAKWyAzMTE3LjY4NjYwMl0gID8gZmluZF9p bm9kZV9mYXN0KzB4YWMvMHhjMApbIDMxMTcuNjg2NjA2XSAgPyBmMmZzX2lzX3ZhbGlkX2Jsa2Fk ZHIrMHgzMjAvMHgzMjAKWyAzMTE3LjY4NjYxOF0gID8gX19yYWRpeF90cmVlX2xvb2t1cCsweDE1 MC8weDE1MApbIDMxMTcuNjg2NjMzXSAgPyBkcWdldCsweDY3MC8weDY3MApbIDMxMTcuNjg2NjQ4 XSAgPyBwYWdlY2FjaGVfZ2V0X3BhZ2UrMHgyOS8weDQxMApbIDMxMTcuNjg2NjU2XSAgPyBrbWVt X2NhY2hlX2FsbG9jKzB4MTc2LzB4MWUwClsgMzExNy42ODY2NjBdICA/IGYyZnNfaXNfdmFsaWRf YmxrYWRkcisweDExZC8weDMyMApbIDMxMTcuNjg2NjY0XSAgZjJmc19yZWNvdmVyX2ZzeW5jX2Rh dGErMHhjMjMvMHhkNTAKWyAzMTE3LjY4NjY3MF0gID8gZjJmc19zcGFjZV9mb3Jfcm9sbF9mb3J3 YXJkKzB4NjAvMHg2MApbIDMxMTcuNjg2Njc0XSAgPyByYl9pbnNlcnRfY29sb3IrMHgzMjMvMHgz ZDAKWyAzMTE3LjY4NjY3OF0gID8gZjJmc19yZWNvdmVyX29ycGhhbl9pbm9kZXMrMHhhNS8weDcw MApbIDMxMTcuNjg2NjgzXSAgPyBwcm9jX3JlZ2lzdGVyKzB4MTUzLzB4MWQwClsgMzExNy42ODY2 ODZdICA/IGYyZnNfcmVtb3ZlX29ycGhhbl9pbm9kZSsweDEwLzB4MTAKWyAzMTE3LjY4NjY5NV0g ID8gZjJmc19hdHRyX3N0b3JlKzB4NTAvMHg1MApbIDMxMTcuNjg2NzAwXSAgPyBwcm9jX2NyZWF0 ZV9zaW5nbGVfZGF0YSsweDUyLzB4NjAKWyAzMTE3LjY4NjcwN10gIGYyZnNfZmlsbF9zdXBlcisw eDFkMDYvMHgyYjQwClsgMzExNy42ODY3MjhdICA/IGYyZnNfY29tbWl0X3N1cGVyKzB4MWEwLzB4 MWEwClsgMzExNy42ODY3MzVdICA/IHNnZXRfdXNlcm5zKzB4NjVlLzB4NjkwClsgMzExNy42ODY3 NDBdICA/IHNldF9ibG9ja3NpemUrMHg4OC8weDEzMApbIDMxMTcuNjg2NzQ1XSAgPyBmMmZzX2Nv bW1pdF9zdXBlcisweDFhMC8weDFhMApbIDMxMTcuNjg2NzQ4XSAgbW91bnRfYmRldisweDFjMC8w eDIwMApbIDMxMTcuNjg2NzUzXSAgbW91bnRfZnMrMHg1Yy8weDE5MApbIDMxMTcuNjg2NzU4XSAg dmZzX2tlcm5fbW91bnQrMHg2NC8weDE5MApbIDMxMTcuNjg2NzYyXSAgZG9fbW91bnQrMHgyZTQv MHgxNDUwClsgMzExNy42ODY3NjldICA/IGxvY2tyZWZfcHV0X3JldHVybisweDEzMC8weDEzMApb IDMxMTcuNjg2NzczXSAgPyBjb3B5X21vdW50X3N0cmluZysweDIwLzB4MjAKWyAzMTE3LjY4Njc3 N10gID8ga2FzYW5fdW5wb2lzb25fc2hhZG93KzB4MzEvMHg0MApbIDMxMTcuNjg2NzgwXSAgPyBr YXNhbl9rbWFsbG9jKzB4YTYvMHhkMApbIDMxMTcuNjg2Nzg2XSAgPyBtZW1jZ19rbWVtX3B1dF9j YWNoZSsweDE2LzB4OTAKWyAzMTE3LjY4Njc5MF0gID8gX19rbWFsbG9jX3RyYWNrX2NhbGxlcisw eDE5Ni8weDIxMApbIDMxMTcuNjg2Nzk1XSAgPyBfY29weV9mcm9tX3VzZXIrMHg2MS8weDkwClsg MzExNy42ODY4MDFdICA/IG1lbWR1cF91c2VyKzB4M2UvMHg2MApbIDMxMTcuNjg2ODA0XSAga3N5 c19tb3VudCsweDdlLzB4ZDAKWyAzMTE3LjY4NjgwOV0gIF9feDY0X3N5c19tb3VudCsweDYyLzB4 NzAKWyAzMTE3LjY4NjgxNl0gIGRvX3N5c2NhbGxfNjQrMHg3My8weDE2MApbIDMxMTcuNjg2ODI0 XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQpbIDMxMTcuNjg2ODI5 XSBSSVA6IDAwMzM6MHg3ZjU2OTNmMTRiOWEKWyAzMTE3LjY4NjgzMF0gQ29kZTogNDggOGIgMGQg MDEgYzMgMmIgMDAgZjcgZDggNjQgODkgMDEgNDggODMgYzggZmYgYzMgNjYgMmUgMGYgMWYgODQg MDAgMDAgMDAgMDAgMDAgMGYgMWYgNDQgMDAgMDAgNDkgODkgY2EgYjggYTUgMDAgMDAgMDAgMGYg MDUgPDQ4PiAzZCAwMSBmMCBmZiBmZiA3MyAwMSBjMyA0OCA4YiAwZCBjZSBjMiAyYiAwMCBmNyBk OCA2NCA4OSAwMSA0OApbIDMxMTcuNjg2ODg3XSBSU1A6IDAwMmI6MDAwMDdmZmYyNzM0NjQ4OCBF RkxBR1M6IDAwMDAwMjA2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMGE1ClsgMzExNy42ODY4OTJd IFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDE2ZTIwMzAgUkNYOiAwMDAwN2Y1 NjkzZjE0YjlhClsgMzExNy42ODY4OTRdIFJEWDogMDAwMDAwMDAwMTZlMjIxMCBSU0k6IDAwMDAw MDAwMDE2ZTNmMzAgUkRJOiAwMDAwMDAwMDAxNmVlMDQwClsgMzExNy42ODY4OTZdIFJCUDogMDAw MDAwMDAwMDAwMDAwMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDEz ClsgMzExNy42ODY4OTldIFIxMDogMDAwMDAwMDBjMGVkMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAy MDYgUjEyOiAwMDAwMDAwMDAxNmVlMDQwClsgMzExNy42ODY5MDFdIFIxMzogMDAwMDAwMDAwMTZl MjIxMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAzCgpbIDMxMTcu Njg3MDA1XSBBbGxvY2F0ZWQgYnkgdGFzayAxMjI1OgpbIDMxMTcuNjg3MTUyXSAga2FzYW5fa21h bGxvYysweGE2LzB4ZDAKWyAzMTE3LjY4NzE1N10gIGttZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHhm ZC8weDIwMApbIDMxMTcuNjg3MTYxXSAgZjJmc19idWlsZF9zZWdtZW50X21hbmFnZXIrMHgyZDA5 LzB4MzE5MApbIDMxMTcuNjg3MTY1XSAgZjJmc19maWxsX3N1cGVyKzB4MTk0OC8weDJiNDAKWyAz MTE3LjY4NzE2OF0gIG1vdW50X2JkZXYrMHgxYzAvMHgyMDAKWyAzMTE3LjY4NzE3MV0gIG1vdW50 X2ZzKzB4NWMvMHgxOTAKWyAzMTE3LjY4NzE3NF0gIHZmc19rZXJuX21vdW50KzB4NjQvMHgxOTAK WyAzMTE3LjY4NzE3N10gIGRvX21vdW50KzB4MmU0LzB4MTQ1MApbIDMxMTcuNjg3MTgwXSAga3N5 c19tb3VudCsweDdlLzB4ZDAKWyAzMTE3LjY4NzE4Ml0gIF9feDY0X3N5c19tb3VudCsweDYyLzB4 NzAKWyAzMTE3LjY4NzE4Nl0gIGRvX3N5c2NhbGxfNjQrMHg3My8weDE2MApbIDMxMTcuNjg3MTkw XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKWyAzMTE3LjY4NzI4 NV0gRnJlZWQgYnkgdGFzayAxOToKWyAzMTE3LjY4NzQxMl0gIF9fa2FzYW5fc2xhYl9mcmVlKzB4 MTM3LzB4MTkwClsgMzExNy42ODc0MTZdICBrZnJlZSsweDhiLzB4MWIwClsgMzExNy42ODc0NjBd ICB0dG1fYm9fbWFuX3B1dF9ub2RlKzB4NjEvMHg4MCBbdHRtXQpbIDMxMTcuNjg3NDc2XSAgdHRt X2JvX2NsZWFudXBfcmVmcysweDE1Zi8weDI1MCBbdHRtXQpbIDMxMTcuNjg3NDkyXSAgdHRtX2Jv X2RlbGF5ZWRfZGVsZXRlKzB4MmYwLzB4MzAwIFt0dG1dClsgMzExNy42ODc1MDddICB0dG1fYm9f ZGVsYXllZF93b3JrcXVldWUrMHgxNy8weDUwIFt0dG1dClsgMzExNy42ODc1MjhdICBwcm9jZXNz X29uZV93b3JrKzB4MmY5LzB4NzQwClsgMzExNy42ODc1MzFdICB3b3JrZXJfdGhyZWFkKzB4Nzgv MHg2YjAKWyAzMTE3LjY4NzU0MV0gIGt0aHJlYWQrMHgxNzcvMHgxYzAKWyAzMTE3LjY4NzU0NV0g IHJldF9mcm9tX2ZvcmsrMHgzNS8weDQwCgpbIDMxMTcuNjg3NjM4XSBUaGUgYnVnZ3kgYWRkcmVz cyBiZWxvbmdzIHRvIHRoZSBvYmplY3QgYXQgZmZmZjg4MDE4ZjBhNjMwMAogICAgICAgICAgICAg ICAgd2hpY2ggYmVsb25ncyB0byB0aGUgY2FjaGUga21hbGxvYy0xOTIgb2Ygc2l6ZSAxOTIKWyAz MTE3LjY4ODAxNF0gVGhlIGJ1Z2d5IGFkZHJlc3MgaXMgbG9jYXRlZCAxNiBieXRlcyB0byB0aGUg cmlnaHQgb2YKICAgICAgICAgICAgICAgIDE5Mi1ieXRlIHJlZ2lvbiBbZmZmZjg4MDE4ZjBhNjMw MCwgZmZmZjg4MDE4ZjBhNjNjMCkKWyAzMTE3LjY4ODM4Ml0gVGhlIGJ1Z2d5IGFkZHJlc3MgYmVs b25ncyB0byB0aGUgcGFnZToKWyAzMTE3LjY4ODU1NF0gcGFnZTpmZmZmZWEwMDA2M2MyOTgwIGNv dW50OjEgbWFwY291bnQ6MCBtYXBwaW5nOmZmZmY4ODAxZjM0MDMxODAgaW5kZXg6MHgwClsgMzEx Ny42ODg3ODhdIGZsYWdzOiAweDE3ZmZmODAwMDAwMDEwMChzbGFiKQpbIDMxMTcuNjg4OTQ0XSBy YXc6IDAxN2ZmZjgwMDAwMDAxMDAgZmZmZmVhMDAwNjNjMjg0MCAwMDAwMDAwZTAwMDAwMDBlIGZm ZmY4ODAxZjM0MDMxODAKWyAzMTE3LjY4OTE2Nl0gcmF3OiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAw MDAwODAxMDAwMTAgMDAwMDAwMDFmZmZmZmZmZiAwMDAwMDAwMDAwMDAwMDAwClsgMzExNy42ODkz ODZdIHBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVkCgpbIDMx MTcuNjg5NjUzXSBNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgpbIDMxMTcu Njg5ODE2XSAgZmZmZjg4MDE4ZjBhNjI4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmMgZmMg ZmMgZmMgZmMgZmMgZmMgZmMKWyAzMTE3LjY5MDAyN10gIGZmZmY4ODAxOGYwYTYzMDA6IDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgMzExNy42OTAyMzld ID5mZmZmODgwMThmMGE2MzgwOiAwMCAwMCBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYwpbIDMxMTcuNjkwNDQ4XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgpbIDMxMTcuNjkwNjQ0XSAgZmZmZjg4MDE4ZjBhNjQwMDogMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKWyAzMTE3LjY5MDg2 OF0gIGZmZmY4ODAxOGYwYTY0ODA6IDAwIDAwIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZj IGZjIGZjIGZjIGZjClsgMzExNy42OTEwNzddID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpbIDMxMTcuNjkxMjkwXSBEaXNh YmxpbmcgbG9jayBkZWJ1Z2dpbmcgZHVlIHRvIGtlcm5lbCB0YWludApbIDMxMTcuNjkzODkzXSBC VUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCAw MDAwMDAwMDAwMDAwMDAwClsgMzExNy42OTQxMjBdIFBHRCA4MDAwMDAwMWYwMWJjMDY3IFA0RCA4 MDAwMDAwMWYwMWJjMDY3IFBVRCAxZDk2MzgwNjcgUE1EIDAKWyAzMTE3LjY5NDMzOF0gT29wczog MDAwMiBbIzFdIFNNUCBLQVNBTiBQVEkKWyAzMTE3LjY5NDQ5MF0gQ1BVOiAxIFBJRDogMTIyNSBD b21tOiBtb3VudCBUYWludGVkOiBHICAgIEIgICBXICAgICAgICAgNC4xNy4wKyAjMQpbIDMxMTcu Njk0NzAzXSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAx OTk2KSwgQklPUyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEvMjAxNApbIDMxMTcuNjk1MDcz XSBSSVA6IDAwMTA6X19yZW1vdmVfZGlydHlfc2VnbWVudCsweGUyLzB4MWUwClsgMzExNy42OTUy NDZdIENvZGU6IGM0IDQ4IDg5IGM3IGU4IGNmIGJiIGQ3IGZmIDQ1IDBmIGI2IDI0IDI0IDQxIDgz IGU0IDNmIDQ0IDg4IDY0IDI0IDA3IDQxIDgzIGU0IDNmIDRhIDhkIDdjIGUzIDA4IGU4IGIzIGJj IGQ3IGZmIDRhIDhiIDRjIGUzIDA4IDxmMD4gNGMgMGYgYjMgMjkgMGYgODIgOTQgMDAgMDAgMDAg NDggOGQgYmQgMjAgMDQgMDAgMDAgZTggOTcgYmIgZDcKWyAzMTE3LjY5NTc5M10gUlNQOiAwMDE4 OmZmZmY4ODAxOGViNjc2MzggRUZMQUdTOiAwMDAxMDI5MgpbIDMxMTcuNjk1OTY5XSBSQVg6IDAw MDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmODgwMThmMGE2MzAwIFJDWDogMDAwMDAwMDAwMDAwMDAw MApbIDMxMTcuNjk2MTgyXSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAwMDAwMDAw Mjk3IFJESTogMDAwMDAwMDAwMDAwMDI5NwpbIDMxMTcuNjk2MzkxXSBSQlA6IGZmZmY4ODAxOGVi ZTk5ODAgUjA4OiBmZmZmZWQwMDNlNzQzZWJiIFIwOTogZmZmZmVkMDAzZTc0M2ViYgpbIDMxMTcu Njk2NjA0XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiBmZmZmZWQwMDNlNzQzZWJhIFIxMjog MDAwMDAwMDAwMDAwMDAxOQpbIDMxMTcuNjk2ODEzXSBSMTM6IDAwMDAwMDAwMDAwMDAwMTQgUjE0 OiAwMDAwMDAwMDAwMDAwMzIwIFIxNTogZmZmZjg4MDE4ZWJlOTllMApbIDMxMTcuNjk3MDMyXSBG UzogIDAwMDA3ZjU2OTQ2MzY4NDAoMDAwMCkgR1M6ZmZmZjg4MDFmM2IwMDAwMCgwMDAwKSBrbmxH UzowMDAwMDAwMDAwMDAwMDAwClsgMzExNy42OTcyODBdIENTOiAgMDAxMCBEUzogMDAwMCBFUzog MDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAzMTE3LjcwMjM1N10gQ1IyOiAwMDAwN2ZlODli YjFhMDAwIENSMzogMDAwMDAwMDE5MWMyMjAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2ZTAKWyAzMTE3 LjcwNzIzNV0gQ2FsbCBUcmFjZToKWyAzMTE3LjcxMjA3N10gIGxvY2F0ZV9kaXJ0eV9zZWdtZW50 KzB4MTg5LzB4MTkwClsgMzExNy43MTY4OTFdICBmMmZzX2FsbG9jYXRlX25ld19zZWdtZW50cysw eGE5LzB4ZTAKWyAzMTE3LjcyMTYxN10gIHJlY292ZXJfZGF0YSsweDcwMy8weDJjMjAKWyAzMTE3 LjcyNjMxNl0gID8gZjJmc19yZWNvdmVyX2ZzeW5jX2RhdGErMHg0OGYvMHhkNTAKWyAzMTE3Ljcz MDk1N10gID8ga3N5c19tb3VudCsweDdlLzB4ZDAKWyAzMTE3LjczNTU3M10gID8gcG9saWN5X25v ZGVtYXNrKzB4MWEvMHg5MApbIDMxMTcuNzQwMTk4XSAgPyBwb2xpY3lfbm9kZSsweDU2LzB4NzAK WyAzMTE3Ljc0NDgyOV0gID8gYWRkX2ZzeW5jX2lub2RlKzB4ZjAvMHhmMApbIDMxMTcuNzQ5NDg3 XSAgPyBibGtfZmluaXNoX3BsdWcrMHg0NC8weDYwClsgMzExNy43NTQxNTJdICA/IGYyZnNfcmFf bWV0YV9wYWdlcysweDM4Yi8weDVlMApbIDMxMTcuNzU4ODMxXSAgPyBmaW5kX2lub2RlX2Zhc3Qr MHhhYy8weGMwClsgMzExNy43NjM0NDhdICA/IGYyZnNfaXNfdmFsaWRfYmxrYWRkcisweDMyMC8w eDMyMApbIDMxMTcuNzY4MDQ2XSAgPyBfX3JhZGl4X3RyZWVfbG9va3VwKzB4MTUwLzB4MTUwClsg MzExNy43NzI2MDNdICA/IGRxZ2V0KzB4NjcwLzB4NjcwClsgMzExNy43NzcxNTldICA/IHBhZ2Vj YWNoZV9nZXRfcGFnZSsweDI5LzB4NDEwClsgMzExNy43ODE2NDhdICA/IGttZW1fY2FjaGVfYWxs b2MrMHgxNzYvMHgxZTAKWyAzMTE3Ljc4NjA2N10gID8gZjJmc19pc192YWxpZF9ibGthZGRyKzB4 MTFkLzB4MzIwClsgMzExNy43OTA0NzZdICBmMmZzX3JlY292ZXJfZnN5bmNfZGF0YSsweGMyMy8w eGQ1MApbIDMxMTcuNzk0NzkwXSAgPyBmMmZzX3NwYWNlX2Zvcl9yb2xsX2ZvcndhcmQrMHg2MC8w eDYwClsgMzExNy43OTkwODZdICA/IHJiX2luc2VydF9jb2xvcisweDMyMy8weDNkMApbIDMxMTcu ODAzMzA0XSAgPyBmMmZzX3JlY292ZXJfb3JwaGFuX2lub2RlcysweGE1LzB4NzAwClsgMzExNy44 MDc1NjNdICA/IHByb2NfcmVnaXN0ZXIrMHgxNTMvMHgxZDAKWyAzMTE3LjgxMTc2Nl0gID8gZjJm c19yZW1vdmVfb3JwaGFuX2lub2RlKzB4MTAvMHgxMApbIDMxMTcuODE1OTQ3XSAgPyBmMmZzX2F0 dHJfc3RvcmUrMHg1MC8weDUwClsgMzExNy44MjAwODddICA/IHByb2NfY3JlYXRlX3NpbmdsZV9k YXRhKzB4NTIvMHg2MApbIDMxMTcuODI0MjYyXSAgZjJmc19maWxsX3N1cGVyKzB4MWQwNi8weDJi NDAKWyAzMTE3LjgyODM2N10gID8gZjJmc19jb21taXRfc3VwZXIrMHgxYTAvMHgxYTAKWyAzMTE3 LjgzMjQzMl0gID8gc2dldF91c2VybnMrMHg2NWUvMHg2OTAKWyAzMTE3LjgzNjUwMF0gID8gc2V0 X2Jsb2Nrc2l6ZSsweDg4LzB4MTMwClsgMzExNy44NDA1MDFdICA/IGYyZnNfY29tbWl0X3N1cGVy KzB4MWEwLzB4MWEwClsgMzExNy44NDQ0MjBdICBtb3VudF9iZGV2KzB4MWMwLzB4MjAwClsgMzEx Ny44NDgyNzVdICBtb3VudF9mcysweDVjLzB4MTkwClsgMzExNy44NTIwNTNdICB2ZnNfa2Vybl9t b3VudCsweDY0LzB4MTkwClsgMzExNy44NTU4MTBdICBkb19tb3VudCsweDJlNC8weDE0NTAKWyAz MTE3Ljg1OTQ0MV0gID8gbG9ja3JlZl9wdXRfcmV0dXJuKzB4MTMwLzB4MTMwClsgMzExNy44NjI5 OTZdICA/IGNvcHlfbW91bnRfc3RyaW5nKzB4MjAvMHgyMApbIDMxMTcuODY2NDE3XSAgPyBrYXNh bl91bnBvaXNvbl9zaGFkb3crMHgzMS8weDQwClsgMzExNy44Njk3MTldICA/IGthc2FuX2ttYWxs b2MrMHhhNi8weGQwClsgMzExNy44NzI5NDhdICA/IG1lbWNnX2ttZW1fcHV0X2NhY2hlKzB4MTYv MHg5MApbIDMxMTcuODc2MTIxXSAgPyBfX2ttYWxsb2NfdHJhY2tfY2FsbGVyKzB4MTk2LzB4MjEw ClsgMzExNy44NzkzMzNdICA/IF9jb3B5X2Zyb21fdXNlcisweDYxLzB4OTAKWyAzMTE3Ljg4MjQ2 N10gID8gbWVtZHVwX3VzZXIrMHgzZS8weDYwClsgMzExNy44ODU2MDRdICBrc3lzX21vdW50KzB4 N2UvMHhkMApbIDMxMTcuODg4NzAwXSAgX194NjRfc3lzX21vdW50KzB4NjIvMHg3MApbIDMxMTcu ODkxNzQyXSAgZG9fc3lzY2FsbF82NCsweDczLzB4MTYwClsgMzExNy44OTQ2OTJdICBlbnRyeV9T WVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgMzExNy44OTc2NjldIFJJUDogMDAz MzoweDdmNTY5M2YxNGI5YQpbIDMxMTcuOTAwNTYzXSBDb2RlOiA0OCA4YiAwZCAwMSBjMyAyYiAw MCBmNyBkOCA2NCA4OSAwMSA0OCA4MyBjOCBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAw MCAwMCAwZiAxZiA0NCAwMCAwMCA0OSA4OSBjYSBiOCBhNSAwMCAwMCAwMCAwZiAwNSA8NDg+IDNk IDAxIGYwIGZmIGZmIDczIDAxIGMzIDQ4IDhiIDBkIGNlIGMyIDJiIDAwIGY3IGQ4IDY0IDg5IDAx IDQ4ClsgMzExNy45MDY5MjJdIFJTUDogMDAyYjowMDAwN2ZmZjI3MzQ2NDg4IEVGTEFHUzogMDAw MDAyMDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwYTUKWyAzMTE3LjkxMDE1OV0gUkFYOiBmZmZm ZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMTZlMjAzMCBSQ1g6IDAwMDA3ZjU2OTNmMTRiOWEK WyAzMTE3LjkxMzQ2OV0gUkRYOiAwMDAwMDAwMDAxNmUyMjEwIFJTSTogMDAwMDAwMDAwMTZlM2Yz MCBSREk6IDAwMDAwMDAwMDE2ZWUwNDAKWyAzMTE3LjkxNjc2NF0gUkJQOiAwMDAwMDAwMDAwMDAw MDAwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMTMKWyAzMTE3Ljky MDA3MV0gUjEwOiAwMDAwMDAwMGMwZWQwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDIwNiBSMTI6IDAw MDAwMDAwMDE2ZWUwNDAKWyAzMTE3LjkyMzM5M10gUjEzOiAwMDAwMDAwMDAxNmUyMjEwIFIxNDog MDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDMKWyAzMTE3LjkyNjY4MF0gTW9k dWxlcyBsaW5rZWQgaW46IHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9o ZGFfY29kZWMgc25kX2hkYV9jb3JlIHNuZF9od2RlcCBzbmRfcGNtIHNuZF90aW1lciBqb3lkZXYg aW5wdXRfbGVkcyBzZXJpb19yYXcgc25kIHNvdW5kY29yZSBtYWNfaGlkIGkyY19waWl4NCBpYl9p c2VyIHJkbWFfY20gaXdfY20gaWJfY20gaWJfY29yZSBjb25maWdmcyBpc2NzaV90Y3AgbGliaXNj c2lfdGNwIGxpYmlzY3NpIHNjc2lfdHJhbnNwb3J0X2lzY3NpIGJ0cmZzIHpzdGRfZGVjb21wcmVz cyB6c3RkX2NvbXByZXNzIHh4aGFzaCByYWlkMTAgcmFpZDQ1NiBhc3luY19yYWlkNl9yZWNvdiBh c3luY19tZW1jcHkgYXN5bmNfcHEgYXN5bmNfeG9yIGFzeW5jX3R4IHhvciByYWlkNl9wcSBsaWJj cmMzMmMgcmFpZDEgcmFpZDAgbXVsdGlwYXRoIGxpbmVhciA4MTM5dG9vIHF4bCB0dG0gZHJtX2tt c19oZWxwZXIgc3lzY29weWFyZWEgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZiX3N5c19mb3BzIGRy bSBjcmN0MTBkaWZfcGNsbXVsIGNyYzMyX3BjbG11bCBnaGFzaF9jbG11bG5pX2ludGVsIHBjYmMg YWVzbmlfaW50ZWwgcHNtb3VzZSBhZXNfeDg2XzY0IDgxMzljcCBjcnlwdG9fc2ltZCBjcnlwdGQg bWlpIGdsdWVfaGVscGVyIHBhdGFfYWNwaSBmbG9wcHkKWyAzMTE3Ljk0OTk3OV0gQ1IyOiAwMDAw MDAwMDAwMDAwMDAwClsgMzExNy45NTQyODNdIC0tLVsgZW5kIHRyYWNlIGE4ZTBkODk5OTg1ZmFm MzIgXS0tLQpbIDMxMTcuOTU4NTc1XSBSSVA6IDAwMTA6X19yZW1vdmVfZGlydHlfc2VnbWVudCsw eGUyLzB4MWUwClsgMzExNy45NjI4MTBdIENvZGU6IGM0IDQ4IDg5IGM3IGU4IGNmIGJiIGQ3IGZm IDQ1IDBmIGI2IDI0IDI0IDQxIDgzIGU0IDNmIDQ0IDg4IDY0IDI0IDA3IDQxIDgzIGU0IDNmIDRh IDhkIDdjIGUzIDA4IGU4IGIzIGJjIGQ3IGZmIDRhIDhiIDRjIGUzIDA4IDxmMD4gNGMgMGYgYjMg MjkgMGYgODIgOTQgMDAgMDAgMDAgNDggOGQgYmQgMjAgMDQgMDAgMDAgZTggOTcgYmIgZDcKWyAz MTE3Ljk3MTc4OV0gUlNQOiAwMDE4OmZmZmY4ODAxOGViNjc2MzggRUZMQUdTOiAwMDAxMDI5Mgpb IDMxMTcuOTc2MzMzXSBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmODgwMThmMGE2MzAw IFJDWDogMDAwMDAwMDAwMDAwMDAwMApbIDMxMTcuOTgwOTI2XSBSRFg6IDAwMDAwMDAwMDAwMDAw MDAgUlNJOiAwMDAwMDAwMDAwMDAwMjk3IFJESTogMDAwMDAwMDAwMDAwMDI5NwpbIDMxMTcuOTg1 NDk3XSBSQlA6IGZmZmY4ODAxOGViZTk5ODAgUjA4OiBmZmZmZWQwMDNlNzQzZWJiIFIwOTogZmZm ZmVkMDAzZTc0M2ViYgpbIDMxMTcuOTkwMDk4XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiBm ZmZmZWQwMDNlNzQzZWJhIFIxMjogMDAwMDAwMDAwMDAwMDAxOQpbIDMxMTcuOTk0NzYxXSBSMTM6 IDAwMDAwMDAwMDAwMDAwMTQgUjE0OiAwMDAwMDAwMDAwMDAwMzIwIFIxNTogZmZmZjg4MDE4ZWJl OTllMApbIDMxMTcuOTk5MzkyXSBGUzogIDAwMDA3ZjU2OTQ2MzY4NDAoMDAwMCkgR1M6ZmZmZjg4 MDFmM2IwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgMzExOC4wMDQwOTZdIENT OiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAzMTE4LjAw ODgxNl0gQ1IyOiAwMDAwN2ZlODliYjFhMDAwIENSMzogMDAwMDAwMDE5MWMyMjAwMCBDUjQ6IDAw MDAwMDAwMDAwMDA2ZTAKCi0gTG9jYXRpb24KaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGlu dXgvdjQuMTgtcmMzL3NvdXJjZS9mcy9mMmZzL3NlZ21lbnQuYyNMNzc1CgkJaWYgKHRlc3RfYW5k X2NsZWFyX2JpdChzZWdubywgZGlydHlfaS0+ZGlydHlfc2VnbWFwW3RdKSkKCQkJZGlydHlfaS0+ bnJfZGlydHlbdF0tLTsKSGVyZSBkaXJ0eV9pLT5kaXJ0eV9zZWdtYXBbdF0gY2FuIGJlIE5VTEwg d2hpY2ggbGVhZHMgdG8gY3Jhc2ggaW4gdGVzdF9hbmRfY2xlYXJfYml0KCkKClJlcG9ydGVkLWJ5 IFdlbiBYdSA8d2VuLnh1QGdhdGVjaC5lZHU+ClNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPHl1Y2hh bzBAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFlZ2V1ayBLaW0gPGphZWdldWtAa2VybmVs Lm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjE0OiBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIHNh bml0eV9jaGVja19ja3B0KCldClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRj aGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL2YyZnMvY2hlY2twb2ludC5jIHwgIDggKysr Ky0tLS0KIGZzL2YyZnMvc3VwZXIuYyAgICAgIHwgMTIgKysrKysrKysrKysrCiAyIGZpbGVzIGNo YW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMv ZjJmcy9jaGVja3BvaW50LmMgYi9mcy9mMmZzL2NoZWNrcG9pbnQuYwppbmRleCBjODFjZDUwNTdi OGUuLjYyNDgxN2VlYjI1ZSAxMDA2NDQKLS0tIGEvZnMvZjJmcy9jaGVja3BvaW50LmMKKysrIGIv ZnMvZjJmcy9jaGVja3BvaW50LmMKQEAgLTgyNSwxNSArODI1LDE1IEBAIGludCBnZXRfdmFsaWRf Y2hlY2twb2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJY3BfYmxvY2sgPSAoc3RydWN0 IGYyZnNfY2hlY2twb2ludCAqKXBhZ2VfYWRkcmVzcyhjdXJfcGFnZSk7CiAJbWVtY3B5KHNiaS0+ Y2twdCwgY3BfYmxvY2ssIGJsa19zaXplKTsKIAotCS8qIFNhbml0eSBjaGVja2luZyBvZiBjaGVj a3BvaW50ICovCi0JaWYgKHNhbml0eV9jaGVja19ja3B0KHNiaSkpCi0JCWdvdG8gZnJlZV9mYWls X25vX2NwOwotCiAJaWYgKGN1cl9wYWdlID09IGNwMSkKIAkJc2JpLT5jdXJfY3BfcGFjayA9IDE7 CiAJZWxzZQogCQlzYmktPmN1cl9jcF9wYWNrID0gMjsKIAorCS8qIFNhbml0eSBjaGVja2luZyBv ZiBjaGVja3BvaW50ICovCisJaWYgKHNhbml0eV9jaGVja19ja3B0KHNiaSkpCisJCWdvdG8gZnJl ZV9mYWlsX25vX2NwOworCiAJaWYgKGNwX2Jsa3MgPD0gMSkKIAkJZ290byBkb25lOwogCmRpZmYg LS1naXQgYS9mcy9mMmZzL3N1cGVyLmMgYi9mcy9mMmZzL3N1cGVyLmMKaW5kZXggOWZhZmIxNDA0 ZjM5Li5kZTRkZTRlYmU2NGMgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvc3VwZXIuYworKysgYi9mcy9m MmZzL3N1cGVyLmMKQEAgLTE5NTcsNiArMTk1Nyw3IEBAIGludCBzYW5pdHlfY2hlY2tfY2twdChz dHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAJdW5zaWduZWQgaW50IHNpdF9iaXRtYXBfc2l6ZSwg bmF0X2JpdG1hcF9zaXplOwogCXVuc2lnbmVkIGludCBsb2dfYmxvY2tzX3Blcl9zZWc7CiAJdW5z aWduZWQgaW50IHNlZ21lbnRfY291bnRfbWFpbjsKKwl1bnNpZ25lZCBpbnQgY3BfcGFja19zdGFy dF9zdW0sIGNwX3BheWxvYWQ7CiAJYmxvY2tfdCB1c2VyX2Jsb2NrX2NvdW50OwogCWludCBpOwog CkBAIC0yMDE3LDYgKzIwMTgsMTcgQEAgaW50IHNhbml0eV9jaGVja19ja3B0KHN0cnVjdCBmMmZz X3NiX2luZm8gKnNiaSkKIAkJcmV0dXJuIDE7CiAJfQogCisJY3BfcGFja19zdGFydF9zdW0gPSBf X3N0YXJ0X3N1bV9hZGRyKHNiaSk7CisJY3BfcGF5bG9hZCA9IF9fY3BfcGF5bG9hZChzYmkpOwor CWlmIChjcF9wYWNrX3N0YXJ0X3N1bSA8IGNwX3BheWxvYWQgKyAxIHx8CisJCWNwX3BhY2tfc3Rh cnRfc3VtID4gYmxvY2tzX3Blcl9zZWcgLSAxIC0KKwkJCU5SX0NVUlNFR19UWVBFKSB7CisJCWYy ZnNfbXNnKHNiaS0+c2IsIEtFUk5fRVJSLAorCQkJIldyb25nIGNwX3BhY2tfc3RhcnRfc3VtOiAl dSIsCisJCQljcF9wYWNrX3N0YXJ0X3N1bSk7CisJCXJldHVybiAxOworCX0KKwogCWlmICh1bmxp a2VseShmMmZzX2NwX2Vycm9yKHNiaSkpKSB7CiAJCWYyZnNfbXNnKHNiaS0+c2IsIEtFUk5fRVJS LCAiQSBidWcgY2FzZTogbmVlZCB0byBydW4gZnNjayIpOwogCQlyZXR1cm4gMTsKLS0gCkJlbiBI dXRjaGluZ3MsIFNvZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2Rl dGhpbmsgTHRkCmh0dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERh bGUgSG91c2UsIDM1IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNYW5jaGVzdGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgoKRnJvbSA1NzVmNTI2M2Fl NTI3MzM3ZGY4OWJhZTcxY2I5MWFkMzFlYjIwMzI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiAiRGFycmljayBKLiBXb25nIiA8ZGFycmljay53b25nQG9yYWNsZS5jb20+CkRhdGU6IFR1 ZSwgMTcgQXByIDIwMTggMTk6MTA6MTUgLTA3MDAKU3ViamVjdDogW1BBVENIIDQ2LzQ2XSB4ZnM6 IGRvbid0IGZhaWwgd2hlbiBjb252ZXJ0aW5nIHNob3J0Zm9ybSBhdHRyIHRvIGxvbmcKIGZvcm0g ZHVyaW5nIEFUVFJfUkVQTEFDRQoKY29tbWl0IDdiMzg0NjBkYzhlNGVhZmJhMDZjNzhmOGUzNzA5 OWQzYjM0ZDQ3M2MgdXBzdHJlYW0uCgpLYW5kYSBNb3RvaGlybyByZXBvcnRlZCB0aGF0IGV4cGFu ZGluZyBhIHRpbnkgeGF0dHIgaW50byBhIGxhcmdlIHhhdHRyCmZhaWxzIG9uIFhGUyBiZWNhdXNl IHdlIHJlbW92ZSB0aGUgdGlueSB4YXR0ciBmcm9tIGEgc2hvcnRmb3JtIGZvcmsgYW5kCnRoZW4g dHJ5IHRvIHJlLWFkZCBpdCBhZnRlciBjb252ZXJ0aW5nIHRoZSBmb3JrIHRvIGV4dGVudHMgZm9y bWF0IGhhdmluZwpub3QgcmVtb3ZlZCB0aGUgQVRUUl9SRVBMQUNFIGZsYWcuICBUaGlzIGZhaWxz IGJlY2F1c2UgdGhlIGF0dHIgaXMgbm8KbG9uZ2VyIHByZXNlbnQsIGNhdXNpbmcgYSBmcyBzaHV0 ZG93bi4KClRoaXMgaXMgZGVyaXZlZCBmcm9tIHRoZSBwYXRjaCBpbiBoaXMgYnVnIHJlcG9ydCwg YnV0IHdlIHJlYWxseQpzaG91bGRuJ3QgaWdub3JlIGEgbm9uemVybyByZXR2YWwgZnJvbSB0aGUg cmVtb3ZlIGNhbGwuCgpCdWd6aWxsYTogaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3df YnVnLmNnaT9pZD0xOTkxMTkKUmVwb3J0ZWQtYnk6IGthbmRhLm1vdG9oaXJvQGdtYWlsLmNvbQpS ZXZpZXdlZC1ieTogRGF2ZSBDaGlubmVyIDxkY2hpbm5lckByZWRoYXQuY29tPgpSZXZpZXdlZC1i eTogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+ClNpZ25lZC1vZmYtYnk6IERhcnJpY2sg Si4gV29uZyA8ZGFycmljay53b25nQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRj aGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGZzL3hmcy9saWJ4ZnMv eGZzX2F0dHIuYyB8IDkgKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZnMveGZzL2xpYnhmcy94ZnNfYXR0ci5jIGIv ZnMveGZzL2xpYnhmcy94ZnNfYXR0ci5jCmluZGV4IDYyNDljOTI2NzFkZS4uZWE2NmYwNGY0NmY3 IDEwMDY0NAotLS0gYS9mcy94ZnMvbGlieGZzL3hmc19hdHRyLmMKKysrIGIvZnMveGZzL2xpYnhm cy94ZnNfYXR0ci5jCkBAIC01MDEsNyArNTAxLDE0IEBAIHhmc19hdHRyX3Nob3J0Zm9ybV9hZGRu YW1lKHhmc19kYV9hcmdzX3QgKmFyZ3MpCiAJCWlmIChhcmdzLT5mbGFncyAmIEFUVFJfQ1JFQVRF KQogCQkJcmV0dXJuIHJldHZhbDsKIAkJcmV0dmFsID0geGZzX2F0dHJfc2hvcnRmb3JtX3JlbW92 ZShhcmdzKTsKLQkJQVNTRVJUKHJldHZhbCA9PSAwKTsKKwkJaWYgKHJldHZhbCkKKwkJCXJldHVy biByZXR2YWw7CisJCS8qCisJCSAqIFNpbmNlIHdlIGhhdmUgcmVtb3ZlZCB0aGUgb2xkIGF0dHIs IGNsZWFyIEFUVFJfUkVQTEFDRSBzbworCQkgKiB0aGF0IHRoZSBsZWFmIGZvcm1hdCBhZGQgcm91 dGluZSB3b24ndCB0cmlwIG92ZXIgdGhlIGF0dHIKKwkJICogbm90IGJlaW5nIGFyb3VuZC4KKwkJ ICovCisJCWFyZ3MtPmZsYWdzICY9IH5BVFRSX1JFUExBQ0U7CiAJfQogCiAJaWYgKGFyZ3MtPm5h bWVsZW4gPj0gWEZTX0FUVFJfU0ZfRU5UU0laRV9NQVggfHwKLS0gCkJlbiBIdXRjaGluZ3MsIFNv ZnR3YXJlIERldmVsb3BlciAgICAgICAgICAgICAgICAgICAgICAgICBDb2RldGhpbmsgTHRkCmh0 dHBzOi8vd3d3LmNvZGV0aGluay5jby51ay8gICAgICAgICAgICAgICAgIERhbGUgSG91c2UsIDM1 IERhbGUgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5jaGVz dGVyLCBNMSAySEYsIFVuaXRlZCBLaW5nZG9tCgo= --=-9BexSJOgEOmndj+tEdj3--