From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7C13C10F06 for ; Thu, 28 Mar 2019 19:24:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 594472173C for ; Thu, 28 Mar 2019 19:24:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726759AbfC1TYL (ORCPT ); Thu, 28 Mar 2019 15:24:11 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:52910 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726045AbfC1TYK (ORCPT ); Thu, 28 Mar 2019 15:24:10 -0400 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::d71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id C9AC914CF154E for ; Thu, 28 Mar 2019 12:24:07 -0700 (PDT) Date: Thu, 28 Mar 2019 12:24:07 -0700 (PDT) Message-Id: <20190328.122407.1125989210145347163.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Mar_28_12_24_07_2019_526)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Thu, 28 Mar 2019 12:24:08 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Thu_Mar_28_12_24_07_2019_526)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v5.0 -stable, respectively. Thanks! ----Next_Part(Thu_Mar_28_12_24_07_2019_526)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSA1MTliNzE2MTlmMzU1Y2E5OWEwYzM1MjFhOWNlZDdhMGMyOWFkNzUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFR1ZSwgMTkgTWFyIDIwMTkgMDU6NDY6MTggLTA3MDAKU3ViamVjdDogW1BBVENIIDAxLzI5 XSBkY2NwOiBkbyBub3QgdXNlIGlwdjYgaGVhZGVyIGZvciBpcHY0IGZsb3cKClsgVXBzdHJlYW0g Y29tbWl0IGUwYWE2NzcwOWY4OWQwOGM4ZDhlNWJkZDllMGI2NDlkZjYxZDAwOTAgXQoKV2hlbiBh IGR1YWwgc3RhY2sgZGNjcCBsaXN0ZW5lciBhY2NlcHRzIGFuIGlwdjQgZmxvdywKaXQgc2hvdWxk IG5vdCBhdHRlbXB0IHRvIHVzZSBhbiBpcHY2IGhlYWRlciBvcgppbmV0Nl9paWYoKSBoZWxwZXIu CgpGaXhlczogM2RmODBkOTMyMGJjICgiW0RDQ1BdOiBJbnRyb2R1Y2UgRENDUHY2IikKU2lnbmVk LW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3AvaXB2 Ni5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2lwdjYuYyBiL25ldC9kY2NwL2lwdjYuYwppbmRl eCA2MzQ0ZjFiMThhNmEuLjU4YTQwMWU5Y2YwOSAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvaXB2Ni5j CisrKyBiL25ldC9kY2NwL2lwdjYuYwpAQCAtNDMzLDggKzQzMyw4IEBAIHN0YXRpYyBzdHJ1Y3Qg c29jayAqZGNjcF92Nl9yZXF1ZXN0X3JlY3Zfc29jayhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiAJ CW5ld25wLT5pcHY2X21jX2xpc3QgPSBOVUxMOwogCQluZXducC0+aXB2Nl9hY19saXN0ID0gTlVM TDsKIAkJbmV3bnAtPmlwdjZfZmxfbGlzdCA9IE5VTEw7Ci0JCW5ld25wLT5tY2FzdF9vaWYgICA9 IGluZXQ2X2lpZihza2IpOwotCQluZXducC0+bWNhc3RfaG9wcyAgPSBpcHY2X2hkcihza2IpLT5o b3BfbGltaXQ7CisJCW5ld25wLT5tY2FzdF9vaWYgICA9IGluZXRfaWlmKHNrYik7CisJCW5ld25w LT5tY2FzdF9ob3BzICA9IGlwX2hkcihza2IpLT50dGw7CiAKIAkJLyoKIAkJICogTm8gbmVlZCB0 byBjaGFyZ2UgdGhpcyBzb2NrIHRvIHRoZSByZWxldmFudCBJUHY2IHJlZmNudCBkZWJ1ZyBzb2Nr cyBjb3VudAotLSAKMi4yMC4xCgoKRnJvbSBiOTk0NzhjNzFkOWJhY2IzZTNmNGZjNjJhY2NlOWZl Mzc1NTNkNGJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWVIYWliaW5nIDx5dWVo YWliaW5nQGh1YXdlaS5jb20+CkRhdGU6IFRodSwgMjEgTWFyIDIwMTkgMTU6MDI6NTAgKzA4MDAK U3ViamVjdDogW1BBVENIIDAyLzI5XSBnZW5ldGxpbms6IEZpeCBhIG1lbW9yeSBsZWFrIG9uIGVy cm9yIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IGNlYWJlZTZjNTk5NDNiZGQ1ZTFkYTFhNmEyMGRj N2VlNWY4MTEzYTIgXQoKSW4gZ2VubF9yZWdpc3Rlcl9mYW1pbHkoKSwgd2hlbiBpZHJfYWxsb2Mo KSBmYWlscywKd2UgZm9yZ2V0IHRvIGZyZWUgdGhlIG1lbW9yeSB3ZSBwb3NzaWJseSBhbGxvY2F0 ZSBmb3IKZmFtaWx5LT5hdHRyYnVmLgoKUmVwb3J0ZWQtYnk6IEh1bGsgUm9ib3QgPGh1bGtjaUBo dWF3ZWkuY29tPgpGaXhlczogMmFlMGYxN2RmMWNkICgiZ2VuZXRsaW5rOiB1c2UgaWRyIHRvIHRy YWNrIGZhbWlsaWVzIikKU2lnbmVkLW9mZi1ieTogWXVlSGFpYmluZyA8eXVlaGFpYmluZ0BodWF3 ZWkuY29tPgpSZXZpZXdlZC1ieTogS2lyaWxsIFRraGFpIDxrdGtoYWlAdmlydHVvenpvLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9uZXRsaW5rL2dlbmV0bGluay5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9nZW5ldGxp bmsuYyBiL25ldC9uZXRsaW5rL2dlbmV0bGluay5jCmluZGV4IDI1ZWViNmQyYTc1YS4uZjBlYzA2 OGUxZDAyIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9nZW5ldGxpbmsuYworKysgYi9uZXQvbmV0 bGluay9nZW5ldGxpbmsuYwpAQCAtMzY2LDcgKzM2Niw3IEBAIGludCBnZW5sX3JlZ2lzdGVyX2Zh bWlseShzdHJ1Y3QgZ2VubF9mYW1pbHkgKmZhbWlseSkKIAkJCSAgICAgICBzdGFydCwgZW5kICsg MSwgR0ZQX0tFUk5FTCk7CiAJaWYgKGZhbWlseS0+aWQgPCAwKSB7CiAJCWVyciA9IGZhbWlseS0+ aWQ7Ci0JCWdvdG8gZXJyb3V0X2xvY2tlZDsKKwkJZ290byBlcnJvdXRfZnJlZTsKIAl9CiAKIAll cnIgPSBnZW5sX3ZhbGlkYXRlX2Fzc2lnbl9tY19ncm91cHMoZmFtaWx5KTsKQEAgLTM4NSw2ICsz ODUsNyBAQCBpbnQgZ2VubF9yZWdpc3Rlcl9mYW1pbHkoc3RydWN0IGdlbmxfZmFtaWx5ICpmYW1p bHkpCiAKIGVycm91dF9yZW1vdmU6CiAJaWRyX3JlbW92ZSgmZ2VubF9mYW1faWRyLCBmYW1pbHkt PmlkKTsKK2Vycm91dF9mcmVlOgogCWtmcmVlKGZhbWlseS0+YXR0cmJ1Zik7CiBlcnJvdXRfbG9j a2VkOgogCWdlbmxfdW5sb2NrX2FsbCgpOwotLSAKMi4yMC4xCgoKRnJvbSA5ZWE0ZTk1ZmZkOWEw YWY1ZGIyM2JiZDU3NDhkNTBhYTk5MmRjM2E1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBNYXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpEYXRlOiBTYXQsIDE2IE1hciAyMDE5 IDAxOjAwOjUwICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8yOV0gZ3RwOiBjaGFuZ2UgTkVUX1VE UF9UVU5ORUwgZGVwZW5kZW5jeSB0byBzZWxlY3QKClsgVXBzdHJlYW0gY29tbWl0IGMyMmRhMzY2 ODhkNjI5OGYyZTU0NmRjYzQzZmRjMWFkMzUwMzY0NjcgXQoKU2ltaWxhcmx5IHRvIGNvbW1pdCBh NzYwM2FjMWZjOGMgKCJnZW5ldmU6IGNoYW5nZSBORVRfVURQX1RVTk5FTApkZXBlbmRlbmN5IHRv IHNlbGVjdCIpLCBHVFAgaGFzIGEgZGVwZW5kZW5jeSBvbiBORVRfVURQX1RVTk5FTCB3aGljaApt YWtlcyBpbXBvc3NpYmxlIHRvIGNvbXBpbGUgaXQgaWYgbm8gb3RoZXIgcHJvdG9jb2wgZGVwZW5k aW5nIG9uCk5FVF9VRFBfVFVOTkVMIGlzIHNlbGVjdGVkLgoKRml4IHRoaXMgYnkgY2hhbmdpbmcg dGhlIGRlcGVuZHMgdG8gYSBzZWxlY3QsIGFuZCBkcm9wIE5FVF9JUF9UVU5ORUwgZnJvbQp0aGUg c2VsZWN0IGxpc3QsIGFzIGl0IGFscmVhZHkgZGVwZW5kcyBvbiBORVRfVURQX1RVTk5FTC4KClNp Z25lZC1vZmYtYnk6IE1hdHRlbyBDcm9jZSA8bWNyb2NlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9LY29uZmlnIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L0tjb25maWcgYi9kcml2ZXJzL25l dC9LY29uZmlnCmluZGV4IGQwMzc3NTEwMGY3ZC4uNjE5YmYxNDk4YTY2IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9LY29uZmlnCisrKyBiL2RyaXZlcnMvbmV0L0tjb25maWcKQEAgLTIxMyw4ICsy MTMsOCBAQCBjb25maWcgR0VORVZFCiAKIGNvbmZpZyBHVFAKIAl0cmlzdGF0ZSAiR1BSUyBUdW5u ZWxpbmcgUHJvdG9jb2wgZGF0YXBhdGggKEdUUC1VKSIKLQlkZXBlbmRzIG9uIElORVQgJiYgTkVU X1VEUF9UVU5ORUwKLQlzZWxlY3QgTkVUX0lQX1RVTk5FTAorCWRlcGVuZHMgb24gSU5FVAorCXNl bGVjdCBORVRfVURQX1RVTk5FTAogCS0tLWhlbHAtLS0KIAkgIFRoaXMgYWxsb3dzIG9uZSB0byBj cmVhdGUgZ3RwIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IHByb3ZpZGUKIAkgIHRoZSBHUFJTIFR1 bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpLiBUaGlzIHR1bm5lbGluZyBwcm90b2Nv bAotLSAKMi4yMC4xCgoKRnJvbSBhOWVmYzk4ZTEzZDY0NzdmZjIwZmQ2NjMxZWM0MjI2MTE5ZTQz OThjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBn bWFpbC5jb20+CkRhdGU6IFdlZCwgMjAgTWFyIDIwMTkgMTQ6NDU6NDggKzA4MDAKU3ViamVjdDog W1BBVENIIDA0LzI5XSBpcHY2OiBtYWtlIGlwNl9jcmVhdGVfcnRfcmN1IHJldHVybiBpcDZfbnVs bF9lbnRyeQogaW5zdGVhZCBvZiBOVUxMCgpbIFVwc3RyZWFtIGNvbW1pdCAxYzg3ZTc5YTAwMmY2 YTE1OTM5NjEzOGNkM2YzYWI1NTRhMmE4ODg3IF0KCkppYW5saW4gcmVwb3J0ZWQgYSBjcmFzaDoK CiAgWyAgMzgxLjQ4NDMzMl0gQlVHOiB1bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50 ZXIgZGVyZWZlcmVuY2UgYXQgMDAwMDAwMDAwMDAwMDA2OAogIFsgIDM4MS42MTk4MDJdIFJJUDog MDAxMDpmaWI2X3J1bGVfbG9va3VwKzB4YTMvMHgxNjAKICBbICAzODIuMDA5NjE1XSBDYWxsIFRy YWNlOgogIFsgIDM4Mi4wMjA3NjJdICA8SVJRPgogIFsgIDM4Mi4wMzAxNzRdICBpcDZfcm91dGVf cmVkaXJlY3QuaXNyYS41MisweGM5LzB4ZjAKICBbICAzODIuMDUwOTg0XSAgaXA2X3JlZGlyZWN0 KzB4YjYvMHhmMAogIFsgIDM4Mi4wNjY3MzFdICBpY21wdjZfbm90aWZ5KzB4Y2EvMHgxOTAKICBb ICAzODIuMDgzMTg1XSAgbmRpc2NfcmVkaXJlY3RfcmN2KzB4MTBmLzB4MTYwCiAgWyAgMzgyLjEw MjU2OV0gIG5kaXNjX3JjdisweGZiLzB4MTAwCiAgWyAgMzgyLjExNzcyNV0gIGljbXB2Nl9yY3Yr MHgzZjIvMHg1MjAKICBbICAzODIuMTMzNjM3XSAgaXA2X2lucHV0X2ZpbmlzaCsweGJmLzB4NDYw CiAgWyAgMzgyLjE1MTYzNF0gIGlwNl9pbnB1dCsweDNiLzB4YjAKICBbICAzODIuMTY2MDk3XSAg aXB2Nl9yY3YrMHgzNzgvMHg0ZTAKCkl0IHdhcyBjYXVzZWQgYnkgdGhlIGxvb2t1cCBmdW5jdGlv biBfX2lwNl9yb3V0ZV9yZWRpcmVjdCgpIHJldHVybnMgTlVMTCBpbgpmaWI2X3J1bGVfbG9va3Vw KCkgd2hlbiBpcDZfY3JlYXRlX3J0X3JjdSgpIHJldHVybnMgTlVMTC4KClNvIHdlIGZpeCBpdCBi eSBzaW1wbHkgbWFraW5nIGlwNl9jcmVhdGVfcnRfcmN1KCkgcmV0dXJuIGlwNl9udWxsX2VudHJ5 Cmluc3RlYWQgb2YgTlVMTC4KCnYxLT52MjoKICAtIG1vdmUgZG93biAnZmFsbGJhY2s6JyB0byBt YWtlIGl0IG1vcmUgcmVhZGFibGUuCgpGaXhlczogZTg3M2U0YjljYzdlICgiaXB2NjogdXNlIGZp YjZfaW5mb19ob2xkX3NhZmUoKSB3aGVuIG5lY2Vzc2FyeSIpClJlcG9ydGVkLWJ5OiBKaWFubGlu IFNoaSA8amlzaGlAcmVkaGF0LmNvbT4KU3VnZ2VzdGVkLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5p QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KQWNrZWQtYnk6 IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3JvdXRlLmMgfCAxOCArKysr KysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA4IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5j CmluZGV4IDY2Y2M5NDQyNzQzNy4uOTAwNmJiM2M5ZTcyIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9y b3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAgLTEwNDgsMTQgKzEwNDgsMjAgQEAgc3Rh dGljIHN0cnVjdCBydDZfaW5mbyAqaXA2X2NyZWF0ZV9ydF9yY3Uoc3RydWN0IGZpYjZfaW5mbyAq cnQpCiAJc3RydWN0IHJ0Nl9pbmZvICpucnQ7CiAKIAlpZiAoIWZpYjZfaW5mb19ob2xkX3NhZmUo cnQpKQotCQlyZXR1cm4gTlVMTDsKKwkJZ290byBmYWxsYmFjazsKIAogCW5ydCA9IGlwNl9kc3Rf YWxsb2MoZGV2X25ldChkZXYpLCBkZXYsIGZsYWdzKTsKLQlpZiAobnJ0KQotCQlpcDZfcnRfY29w eV9pbml0KG5ydCwgcnQpOwotCWVsc2UKKwlpZiAoIW5ydCkgewogCQlmaWI2X2luZm9fcmVsZWFz ZShydCk7CisJCWdvdG8gZmFsbGJhY2s7CisJfQogCisJaXA2X3J0X2NvcHlfaW5pdChucnQsIHJ0 KTsKKwlyZXR1cm4gbnJ0OworCitmYWxsYmFjazoKKwlucnQgPSBkZXZfbmV0KGRldiktPmlwdjYu aXA2X251bGxfZW50cnk7CisJZHN0X2hvbGQoJm5ydC0+ZHN0KTsKIAlyZXR1cm4gbnJ0OwogfQog CkBAIC0xMTA0LDEwICsxMTEwLDYgQEAgc3RhdGljIHN0cnVjdCBydDZfaW5mbyAqaXA2X3BvbF9y b3V0ZV9sb29rdXAoc3RydWN0IG5ldCAqbmV0LAogCQlkc3RfaG9sZCgmcnQtPmRzdCk7CiAJfSBl bHNlIHsKIAkJcnQgPSBpcDZfY3JlYXRlX3J0X3JjdShmNmkpOwotCQlpZiAoIXJ0KSB7Ci0JCQly dCA9IG5ldC0+aXB2Ni5pcDZfbnVsbF9lbnRyeTsKLQkJCWRzdF9ob2xkKCZydC0+ZHN0KTsKLQkJ fQogCX0KIAogCXJjdV9yZWFkX3VubG9jaygpOwotLSAKMi4yMC4xCgoKRnJvbSAwYzFjMDYxNmQ5 ZjczZjJiY2Q1NDZhOWFlNTIxZWUwZmM5ODcwMDljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBGaW5uIFRoYWluIDxmdGhhaW5AdGVsZWdyYXBoaWNzLmNvbS5hdT4KRGF0ZTogU2F0LCAx NiBNYXIgMjAxOSAxNDoyMToxOSArMTEwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjldIG1hYzgzOTA6 IEZpeCBtbWlvIGFjY2VzcyBzaXplIHByb2JlCgpbIFVwc3RyZWFtIGNvbW1pdCBiYjllNWM1YmNk NzZmNDQ3NGVhYzNiYWY2NDNkN2EzOWY3YmFjN2JiIF0KClRoZSBidWcgdGhhdCBTdGFuIHJlcG9y dGVkIGlzIGFzIGZvbGxvd3MuIEFmdGVyIGEgcmVzdGFydCwgYSAxNi1iaXQgTklDCm1heSBiZSBp bmNvcnJlY3RseSBpZGVudGlmaWVkIGFzIGEgMzItYml0IE5JQyBhbmQgc3RvcCB3b3JraW5nLgoK bWFjODM5MCBzbG90LkU6IE1lbW9yeSBsZW5ndGggcmVzb3VyY2Ugbm90IGZvdW5kLCBwcm9iaW5n Cm1hYzgzOTAgc2xvdC5FOiBGYXJhbGxvbiBFdGhlck1hYyBJSS1DICh0eXBlIGZhcmFsbG9uKQpt YWM4MzkwIHNsb3QuRTogTUFDIDAwOjAwOmM1OjMwOmMyOjk5LCBJUlEgNjEsIDMyIEtCIHNoYXJl ZCBtZW1vcnkgYXQgMHhmZWVkMDAwMCwgMzItYml0IGFjY2Vzcy4KClRoZSBidWcgbmV2ZXIgYXJp c2VzIGFmdGVyIGEgY29sZCBzdGFydCBhbmQgb25seSBpbnRlcm1pdHRlbnRseSBhZnRlciBhCndh cm0gc3RhcnQuIChJIGRpZG4ndCBpbnZlc3RpZ2F0ZSB3aHkgdGhlIGJ1ZyBpcyBpbnRlcm1pdHRl bnQuKQoKSXQgdHVybnMgb3V0IHRoYXQgbWVtY3B5X3RvaW8oKSBpcyBkZXByZWNhdGVkIGFuZCBt ZW1jbXBfd2l0aGlvKCkgYWxzbwpoYXMgaXNzdWVzLiBSZXBsYWNpbmcgdGhlc2UgY2FsbHMgd2l0 aCBtbWlvIGFjY2Vzc29ycyBmaXhlcyB0aGUgcHJvYmxlbS4KClJlcG9ydGVkLWFuZC10ZXN0ZWQt Ynk6IFN0YW4gSm9obnNvbiA8dXNlcm01N0B5YWhvby5jb20+CkZpeGVzOiAyOTY0ZGIwZjU5MDQg KCJtNjhrOiBNYWMgRFA4MzkwIHVwZGF0ZSIpClNpZ25lZC1vZmYtYnk6IEZpbm4gVGhhaW4gPGZ0 aGFpbkB0ZWxlZ3JhcGhpY3MuY29tLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9tYWM4 MzkwLmMgfCAxOSArKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0 aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC84MzkwL21hYzgzOTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvbWFjODM5MC5jCmlu ZGV4IDM0MmFlMDhlYzNjMi4uZDYwYTg2YWE4YWE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC84MzkwL21hYzgzOTAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL21h YzgzOTAuYwpAQCAtMTUzLDggKzE1Myw2IEBAIHN0YXRpYyB2b2lkIGRheW5hX2Jsb2NrX2lucHV0 KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBjb3VudCwKIHN0YXRpYyB2b2lkIGRheW5hX2Js b2NrX291dHB1dChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgY291bnQsCiAJCQkgICAgICAg Y29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgc3RhcnRfcGFnZSk7CiAKLSNkZWZpbmUgbWVt Y21wX3dpdGhpbyhhLCBiLCBjKQltZW1jbXAoKGEpLCAodm9pZCAqKShiKSwgKGMpKQotCiAvKiBT bG93IFNhbmUgKDE2LWJpdCBjaHVuayBtZW1vcnkgcmVhZC93cml0ZSkgQ2FibGV0cm9uIHVzZXMg dGhpcyAqLwogc3RhdGljIHZvaWQgc2xvd19zYW5lX2dldF84MzkwX2hkcihzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAogCQkJCSAgIHN0cnVjdCBlODM5MF9wa3RfaGRyICpoZHIsIGludCByaW5nX3Bh Z2UpOwpAQCAtMjMzLDE5ICsyMzEsMjYgQEAgc3RhdGljIGVudW0gbWFjODM5MF90eXBlIG1hYzgz OTBfaWRlbnQoc3RydWN0IG51YnVzX3JzcmMgKmZyZXMpCiAKIHN0YXRpYyBlbnVtIG1hYzgzOTBf YWNjZXNzIG1hYzgzOTBfdGVzdGlvKHVuc2lnbmVkIGxvbmcgbWVtYmFzZSkKIHsKLQl1bnNpZ25l ZCBsb25nIG91dGRhdGEgPSAweEE1QTBCNUIwOwotCXVuc2lnbmVkIGxvbmcgaW5kYXRhID0gIDB4 MDAwMDAwMDA7CisJdTMyIG91dGRhdGEgPSAweEE1QTBCNUIwOworCXUzMiBpbmRhdGEgPSAwOwor CiAJLyogVHJ5IHdyaXRpbmcgMzIgYml0cyAqLwotCW1lbWNweV90b2lvKCh2b2lkIF9faW9tZW0g KiltZW1iYXNlLCAmb3V0ZGF0YSwgNCk7Ci0JLyogTm93IGNvbXBhcmUgdGhlbSAqLwotCWlmICht ZW1jbXBfd2l0aGlvKCZvdXRkYXRhLCBtZW1iYXNlLCA0KSA9PSAwKQorCW51YnVzX3dyaXRlbChv dXRkYXRhLCBtZW1iYXNlKTsKKwkvKiBOb3cgcmVhZCBpdCBiYWNrICovCisJaW5kYXRhID0gbnVi dXNfcmVhZGwobWVtYmFzZSk7CisJaWYgKG91dGRhdGEgPT0gaW5kYXRhKQogCQlyZXR1cm4gQUND RVNTXzMyOworCisJb3V0ZGF0YSA9IDB4QzVDMEQ1RDA7CisJaW5kYXRhID0gMDsKKwogCS8qIFdy aXRlIDE2IGJpdCBvdXRwdXQgKi8KIAl3b3JkX21lbWNweV90b2NhcmQobWVtYmFzZSwgJm91dGRh dGEsIDQpOwogCS8qIE5vdyByZWFkIGl0IGJhY2sgKi8KIAl3b3JkX21lbWNweV9mcm9tY2FyZCgm aW5kYXRhLCBtZW1iYXNlLCA0KTsKIAlpZiAob3V0ZGF0YSA9PSBpbmRhdGEpCiAJCXJldHVybiBB Q0NFU1NfMTY7CisKIAlyZXR1cm4gQUNDRVNTX1VOS05PV047CiB9CiAKLS0gCjIuMjAuMQoKCkZy b20gYTMzZmU3MDBjMTZhNjM2OGUxMGExZmExNGNmMGJlODY3ODY5NWQyMCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KRGF0 ZTogTW9uLCAxOCBNYXIgMjAxOSAwODo1MTowNiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMjld IG1JU0ROOiBoZmNwY2k6IFRlc3QgYm90aCB2ZW5kb3IgJiBkZXZpY2UgSUQgZm9yIERpZ2l1bQog SEZDNFMKClsgVXBzdHJlYW0gY29tbWl0IGZhZTg0NmUyYjcxMjRkNGIwNzZlZjE3NzkxYzczYWRk ZjNiMjYzNTAgXQoKVGhlIGRldmljZSBJRCBhbG9uZSBkb2VzIG5vdCB1bmlxdWVseSBpZGVudGlm eSBhIGRldmljZS4gIFRlc3QgYm90aCB0aGUKdmVuZG9yIGFuZCBkZXZpY2UgSUQgdG8gbWFrZSBz dXJlIHdlIGRvbid0IG1pc3Rha2VubHkgdGhpbmsgc29tZSBvdGhlcgp2ZW5kb3IncyAweEI0MTAg ZGV2aWNlIGlzIGEgRGlnaXVtIEhGQzRTLiAgQWxzbywgaW5zdGVhZCBvZiB0aGUgYmFyZSBoZXgK SUQsIHVzZSB0aGUgc2FtZSBjb25zdGFudCAoUENJX0RFVklDRV9JRF9ESUdJVU1fSEZDNFMpIHVz ZWQgaW4gdGhlIGRldmljZQpJRCB0YWJsZS4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVk LgoKU2lnbmVkLW9mZi1ieTogQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvaXNkbi9oYXJkd2FyZS9tSVNETi9oZmNtdWx0aS5jIHwgMyArKy0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2lzZG4vaGFyZHdhcmUvbUlTRE4vaGZjbXVsdGkuYyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9t SVNETi9oZmNtdWx0aS5jCmluZGV4IDRkODU2NDVjODdmNy4uMDkyOGZkMWYwZTBjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvbUlTRE4vaGZjbXVsdGkuYworKysgYi9kcml2ZXJz L2lzZG4vaGFyZHdhcmUvbUlTRE4vaGZjbXVsdGkuYwpAQCAtNDM2NSw3ICs0MzY1LDggQEAgc2V0 dXBfcGNpKHN0cnVjdCBoZmNfbXVsdGkgKmhjLCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAlpZiAo bS0+Y2xvY2syKQogCQl0ZXN0X2FuZF9zZXRfYml0KEhGQ19DSElQX0NMT0NLMiwgJmhjLT5jaGlw KTsKIAotCWlmIChlbnQtPmRldmljZSA9PSAweEI0MTApIHsKKwlpZiAoZW50LT52ZW5kb3IgPT0g UENJX1ZFTkRPUl9JRF9ESUdJVU0gJiYKKwkgICAgZW50LT5kZXZpY2UgPT0gUENJX0RFVklDRV9J RF9ESUdJVU1fSEZDNFMpIHsKIAkJdGVzdF9hbmRfc2V0X2JpdChIRkNfQ0hJUF9CNDEwUCwgJmhj LT5jaGlwKTsKIAkJdGVzdF9hbmRfc2V0X2JpdChIRkNfQ0hJUF9QQ01fTUFTVEVSLCAmaGMtPmNo aXApOwogCQl0ZXN0X2FuZF9jbGVhcl9iaXQoSEZDX0NISVBfUENNX1NMQVZFLCAmaGMtPmNoaXAp OwotLSAKMi4yMC4xCgoKRnJvbSA2MGExMTUwZGVkNDAxMjM5MjUxMmQ5ZjYwYWRhMGM4MTljNjZk MDZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEbWl0cnkgQm9nZGFub3YgPGRtaXRy eS5ib2dkYW5vdkBhcXVhbnRpYS5jb20+CkRhdGU6IFNhdCwgMTYgTWFyIDIwMTkgMDg6Mjg6MTgg KzAwMDAKU3ViamVjdDogW1BBVENIIDA3LzI5XSBuZXQ6IGFxdWFudGlhOiBmaXggcnggY2hlY2tz dW0gb2ZmbG9hZCBmb3IgVURQL1RDUCBvdmVyCiBJUHY2CgpbIFVwc3RyZWFtIGNvbW1pdCBhN2Zh YWEwYzVkYzdkMDkxY2M5ZjcyYjg3MGQ3ZWRjZGQ2ZjQzZjEyIF0KClRDUC9VRFAgY2hlY2tzdW0g dmFsaWRpdHkgd2FzIHByb3BhZ2F0ZWQgdG8gc2tiCm9ubHkgaWYgSVAgY2hlY2tzdW0gaXMgdmFs aWQuCkJ1dCBmb3IgSVB2NiB0aGVyZSBpcyBubyB2YWxpZGl0eSBhcyB0aGVyZSBpcyBubyBjaGVj a3N1bSBpbiBJUHY2LgpUaGlzIHBhdGNoIHByb3BhZ2F0ZXMgVENQL1VEUCBjaGVja3N1bSB2YWxp ZGl0eSByZWdhcmRsZXNzIG9mIElQIGNoZWNrc3VtLgoKRml4ZXM6IDAxODQyM2U5MGJlZSAoIm5l dDogZXRoZXJuZXQ6IGFxdWFudGlhOiBBZGQgcmluZyBzdXBwb3J0IGNvZGUiKQpTaWduZWQtb2Zm LWJ5OiBJZ29yIFJ1c3NraWtoIDxpZ29yLnJ1c3NraWtoQGFxdWFudGlhLmNvbT4KU2lnbmVkLW9m Zi1ieTogTmlraXRhIERhbmlsb3YgPG5pa2l0YS5kYW5pbG92QGFxdWFudGlhLmNvbT4KU2lnbmVk LW9mZi1ieTogRG1pdHJ5IEJvZ2Rhbm92IDxkbWl0cnkuYm9nZGFub3ZAYXF1YW50aWEuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvYXFfcmluZy5jIHwgNSArKyst LQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9hcV9yaW5nLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9hcV9yaW5nLmMKaW5kZXgg NzEzNGQwZDRjZGY3Li42ZjMzMTIzNTBjYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2FxdWFudGlhL2F0bGFudGljL2FxX3JpbmcuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9hcXVhbnRpYS9hdGxhbnRpYy9hcV9yaW5nLmMKQEAgLTE4NiwxMSArMTg2LDEyIEBAIHN0YXRp YyB2b2lkIGFxX3J4X2NoZWNrc3VtKHN0cnVjdCBhcV9yaW5nX3MgKnNlbGYsCiAJfQogCWlmIChi dWZmLT5pc19pcF9jc28pIHsKIAkJX19za2JfaW5jcl9jaGVja3N1bV91bm5lY2Vzc2FyeShza2Ip OwotCQlpZiAoYnVmZi0+aXNfdWRwX2NzbyB8fCBidWZmLT5pc190Y3BfY3NvKQotCQkJX19za2Jf aW5jcl9jaGVja3N1bV91bm5lY2Vzc2FyeShza2IpOwogCX0gZWxzZSB7CiAJCXNrYi0+aXBfc3Vt bWVkID0gQ0hFQ0tTVU1fTk9ORTsKIAl9CisKKwlpZiAoYnVmZi0+aXNfdWRwX2NzbyB8fCBidWZm LT5pc190Y3BfY3NvKQorCQlfX3NrYl9pbmNyX2NoZWNrc3VtX3VubmVjZXNzYXJ5KHNrYik7CiB9 CiAKICNkZWZpbmUgQVFfU0tCX0FMSUdOIFNLQl9EQVRBX0FMSUdOKHNpemVvZihzdHJ1Y3Qgc2ti X3NoYXJlZF9pbmZvKSkKLS0gCjIuMjAuMQoKCkZyb20gZjAzOGY2NzEwMzAxZTUxYzE5Nzg5ZWVh YWY3MDU1ZWNlY2E1ZWRmNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJl bmkgPHBhYmVuaUByZWRoYXQuY29tPgpEYXRlOiBNb24sIDI1IE1hciAyMDE5IDE0OjE4OjA2ICsw MTAwClN1YmplY3Q6IFtQQVRDSCAwOC8yOV0gbmV0OiBkYXRhZ3JhbTogZml4IHVuYm91bmRlZCBs b29wIGluCiBfX3NrYl90cnlfcmVjdl9kYXRhZ3JhbSgpCgpbIFVwc3RyZWFtIGNvbW1pdCAwYjkx YmNlMWViZmM3OTdmZjNkZTYwYzhmNGExZTYyMTlhOGEzMTg3IF0KCkNocmlzdG9waCByZXBvcnRl ZCBhIHN0YWxsIHdoaWxlIHBlZWtpbmcgZGF0YWdyYW0gd2l0aCBhbiBvZmZzZXQgd2hlbgpidXN5 IHBvbGxpbmcgaXMgZW5hYmxlZC4gX19za2JfdHJ5X3JlY3ZfZGF0YWdyYW0oKSB1c2VzIGFzIHRo ZSBsb29wCnRlcm1pbmF0aW9uIGNvbmRpdGlvbiAncXVldWUgZW1wdHknLiBXaGVuIHBlZWtpbmcs IHRoZSBzb2NrZXQKcXVldWUgY2FuIGJlIG5vdCBlbXB0eSwgZXZlbiB3aGVuIG5vIGFkZGl0aW9u YWwgcGFja2V0cyBhcmUgcmVjZWl2ZWQuCgpBZGRyZXNzIHRoZSBpc3N1ZSBleHBsaWNpdGx5IGNo ZWNraW5nIGZvciByZWNlaXZlIHF1ZXVlIGNoYW5nZXMsCmFzIGN1cnJlbnRseSBkb25lIGJ5IF9f c2tiX3dhaXRfZm9yX21vcmVfcGFja2V0cygpLgoKRml4ZXM6IDJiNWNkMGRmYTM4NCAoIm5ldDog Q2hhbmdlIHJldHVybiB0eXBlIG9mIHNrX2J1c3lfbG9vcCBmcm9tIGJvb2wgdG8gdm9pZCIpClJl cG9ydGVkLWFuZC10ZXN0ZWQtYnk6IENocmlzdG9waCBQYWFzY2ggPGNwYWFzY2hAYXBwbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29y ZS9kYXRhZ3JhbS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdyYW0uYyBiL25ldC9jb3JlL2Rh dGFncmFtLmMKaW5kZXggNTdmM2E2ZmNmYzFlLi5hNDg3ZGY1M2E0NTMgMTAwNjQ0Ci0tLSBhL25l dC9jb3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwpAQCAtMjc5LDcgKzI3 OSw3IEBAIHN0cnVjdCBza19idWZmICpfX3NrYl90cnlfcmVjdl9kYXRhZ3JhbShzdHJ1Y3Qgc29j ayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJCWJyZWFrOwogCiAJCXNrX2J1c3lfbG9vcChz aywgZmxhZ3MgJiBNU0dfRE9OVFdBSVQpOwotCX0gd2hpbGUgKCFza2JfcXVldWVfZW1wdHkoJnNr LT5za19yZWNlaXZlX3F1ZXVlKSk7CisJfSB3aGlsZSAoc2stPnNrX3JlY2VpdmVfcXVldWUucHJl diAhPSAqbGFzdCk7CiAKIAllcnJvciA9IC1FQUdBSU47CiAKLS0gCjIuMjAuMQoKCkZyb20gODBh MTIxODA0MjRhYmE2YjhjYTJiMTY3MjYzODcxYzVlOWE2NzYyNiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQ2hyaXN0b3BoIFBhYXNjaCA8Y3BhYXNjaEBhcHBsZS5jb20+CkRhdGU6IE1v biwgMTggTWFyIDIwMTkgMjM6MTQ6NTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzI5XSBuZXQv cGFja2V0OiBTZXQgX19HRlBfTk9XQVJOIHVwb24gYWxsb2NhdGlvbiBpbgogYWxsb2NfcGdfdmVj CgpbIFVwc3RyZWFtIGNvbW1pdCAzOThmMDEzMmMxNDc1NGZjZDAzYzFjNGY4ZTcxNzZkMDAxY2U4 ZWExIF0KClNpbmNlIGNvbW1pdCBmYzYyODE0ZDY5MGMgKCJuZXQvcGFja2V0OiBmaXggNGdiIGJ1 ZmZlciBsaW1pdCBkdWUgdG8gb3ZlcmZsb3cgY2hlY2siKQpvbmUgY2FuIG5vdyBhbGxvY2F0ZSBw YWNrZXQgcmluZyBidWZmZXJzID49IFVJTlRfTUFYLiBIb3dldmVyLCBzeXprYWxsZXIKZm91bmQg dGhhdCB0aGF0IHRyaWdnZXJzIGEgd2FybmluZzoKClsgICAyMS4xMDAwMDBdIFdBUk5JTkc6IENQ VTogMiBQSUQ6IDIwNzUgYXQgbW0vcGFnZV9hbGxvYy5jOjQ1ODQgX19hbGxvY19wYWdlc19ub2Qw ClsgICAyMS4xMDE0OTBdIE1vZHVsZXMgbGlua2VkIGluOgpbICAgMjEuMTAxOTIxXSBDUFU6IDIg UElEOiAyMDc1IENvbW06IHN5ei1leGVjdXRvci4wIE5vdCB0YWludGVkIDUuMC4wICMxNDYKWyAg IDIxLjEwMjc4NF0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJ WCwgMTk5NiksIEJJT1MgMC41LjEgMDEvMDEvMjAxMQpbICAgMjEuMTAzODg3XSBSSVA6IDAwMTA6 X19hbGxvY19wYWdlc19ub2RlbWFzaysweDJhMC8weDYzMApbICAgMjEuMTA0NjQwXSBDb2RlOiBm ZSBmZiBmZiA2NSA0OCA4YiAwNCAyNSBjMCBkZSAwMSAwMCA0OCAwNSA5MCAwZiAwMCAwMCA0MSBi ZCAwMSAwMCAwMCAwMCA0OCA4OSA0NCAyNCA0OCBlOSA5YyBmZSAzClsgICAyMS4xMDcxMjFdIFJT UDogMDAxODpmZmZmODg4MDVlMWNmOTIwIEVGTEFHUzogMDAwMTAyNDYKWyAgIDIxLjEwNzgxOV0g UkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmZmZmZmZmY4NWE0ODhhMCBSQ1g6IDAwMDAwMDAw MDAwMDAwMDAKWyAgIDIxLjEwODc1M10gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZGZmZmZj MDAwMDAwMDAwMCBSREk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDIxLjEwOTY5OV0gUkJQOiAxZmZm ZjExMDBiYzM5ZjI4IFIwODogZmZmZmVkMTAwYmNlZmI2NyBSMDk6IGZmZmZlZDEwMGJjZWZiNjcK WyAgIDIxLjExMDY0Nl0gUjEwOiAwMDAwMDAwMDAwMDAwMDAxIFIxMTogZmZmZmVkMTAwYmNlZmI2 NiBSMTI6IDAwMDAwMDAwMDAwMDAwMGQKWyAgIDIxLjExMTYyM10gUjEzOiAwMDAwMDAwMDAwMDAw MDAwIFIxNDogZmZmZjg4ODA1ZTc3ZDg4OCBSMTU6IDAwMDAwMDAwMDAwMDAwMGQKWyAgIDIxLjEx MjU1Ml0gRlM6ICAwMDAwN2Y3YzdkZTA1NzAwKDAwMDApIEdTOmZmZmY4ODgwNmQxMDAwMDAoMDAw MCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICAgMjEuMTEzNjEyXSBDUzogIDAwMTAgRFM6IDAw MDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgICAyMS4xMTQ0MDVdIENSMjogMDAw MDAwMDAwMDY1YzAwMCBDUjM6IDAwMDAwMDAwNWU1OGUwMDYgQ1I0OiAwMDAwMDAwMDAwMTYwNmUw ClsgICAyMS4xMTUzNjddIENhbGwgVHJhY2U6ClsgICAyMS4xMTU3MDVdICA/IF9fYWxsb2NfcGFn ZXNfc2xvd3BhdGgrMHgyMWMwLzB4MjFjMApbICAgMjEuMTE2MzYyXSAgYWxsb2NfcGFnZXNfY3Vy cmVudCsweGFjLzB4MWUwClsgICAyMS4xMTY5MjNdICBrbWFsbG9jX29yZGVyKzB4MTgvMHg3MApb ICAgMjEuMTE3MzkzXSAga21hbGxvY19vcmRlcl90cmFjZSsweDE4LzB4MTEwClsgICAyMS4xMTc5 NDldICBwYWNrZXRfc2V0X3JpbmcrMHg5ZDUvMHgxNzcwClsgICAyMS4xMTg1MjRdICA/IHBhY2tl dF9yY3Zfc3BrdCsweDQ0MC8weDQ0MApbICAgMjEuMTE5MDk0XSAgPyBsb2NrX2Rvd25ncmFkZSsw eDYyMC8weDYyMApbICAgMjEuMTE5NjQ2XSAgPyBfX21pZ2h0X2ZhdWx0KzB4MTc3LzB4MWIwClsg ICAyMS4xMjAxNzddICBwYWNrZXRfc2V0c29ja29wdCsweDk4MS8weDI5NDAKWyAgIDIxLjEyMDc1 M10gID8gX19mZ2V0KzB4MmZiLzB4NGIwClsgICAyMS4xMjEyMDldICA/IHBhY2tldF9yZWxlYXNl KzB4YWIwLzB4YWIwClsgICAyMS4xMjE3NDBdICA/IHNvY2tfaGFzX3Blcm0rMHgxY2QvMHgyNjAK WyAgIDIxLjEyMjI5N10gID8gc2VsaW51eF9zZWNtYXJrX3JlbGFiZWxfcGFja2V0KzB4ZDAvMHhk MApbICAgMjEuMTIzMDEzXSAgPyBfX2ZnZXQrMHgzMjQvMHg0YjAKWyAgIDIxLjEyMzQ1MV0gID8g c2VsaW51eF9uZXRsYmxfc29ja2V0X3NldHNvY2tvcHQrMHgxMDEvMHgzMjAKWyAgIDIxLjEyNDE4 Nl0gID8gc2VsaW51eF9uZXRsYmxfc29ja19yY3Zfc2tiKzB4M2EwLzB4M2EwClsgICAyMS4xMjQ5 MDhdICA/IF9fbG9ja19hY3F1aXJlKzB4NTI5LzB4MzIwMApbICAgMjEuMTI1NDUzXSAgPyBzZWxp bnV4X3NvY2tldF9zZXRzb2Nrb3B0KzB4NWQvMHg3MApbICAgMjEuMTI2MDc1XSAgPyBfX3N5c19z ZXRzb2Nrb3B0KzB4MTMxLzB4MjEwClsgICAyMS4xMjY1MzNdICA/IHBhY2tldF9yZWxlYXNlKzB4 YWIwLzB4YWIwClsgICAyMS4xMjcwMDRdICBfX3N5c19zZXRzb2Nrb3B0KzB4MTMxLzB4MjEwClsg ICAyMS4xMjc0NDldICA/IGtlcm5lbF9hY2NlcHQrMHgyZjAvMHgyZjAKWyAgIDIxLjEyNzkxMV0g ID8gcmV0X2Zyb21fZm9yaysweDgvMHg1MApbICAgMjEuMTI4MzEzXSAgPyBkb19yYXdfc3Bpbl9s b2NrKzB4MTFiLzB4MjgwClsgICAyMS4xMjg4MDBdICBfX3g2NF9zeXNfc2V0c29ja29wdCsweGJh LzB4MTUwClsgICAyMS4xMjkyNzFdICA/IGxvY2tkZXBfaGFyZGlycXNfb24rMHgzN2YvMHg1NjAK WyAgIDIxLjEyOTc2OV0gIGRvX3N5c2NhbGxfNjQrMHg5Zi8weDQ1MApbICAgMjEuMTMwMTgyXSAg ZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQoKV2Ugc2hvdWxkIGFsbG9j YXRlIHdpdGggX19HRlBfTk9XQVJOIHRvIGhhbmRsZSB0aGlzLgoKQ2M6IEthbCBDb25sZXkgPGth bC5jb25sZXlAZGVjdHJpcy5jb20+CkNjOiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdv b2dsZS5jb20+CkZpeGVzOiBmYzYyODE0ZDY5MGMgKCJuZXQvcGFja2V0OiBmaXggNGdiIGJ1ZmZl ciBsaW1pdCBkdWUgdG8gb3ZlcmZsb3cgY2hlY2siKQpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGgg UGFhc2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRl eCBmZDE2ZmI4MzZkZjIuLjAzZjdlMTYxNDE3MyAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9w YWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC00MTk0LDcgKzQxOTQsNyBA QCBzdGF0aWMgc3RydWN0IHBndiAqYWxsb2NfcGdfdmVjKHN0cnVjdCB0cGFja2V0X3JlcSAqcmVx LCBpbnQgb3JkZXIpCiAJc3RydWN0IHBndiAqcGdfdmVjOwogCWludCBpOwogCi0JcGdfdmVjID0g a2NhbGxvYyhibG9ja19uciwgc2l6ZW9mKHN0cnVjdCBwZ3YpLCBHRlBfS0VSTkVMKTsKKwlwZ192 ZWMgPSBrY2FsbG9jKGJsb2NrX25yLCBzaXplb2Yoc3RydWN0IHBndiksIEdGUF9LRVJORUwgfCBf X0dGUF9OT1dBUk4pOwogCWlmICh1bmxpa2VseSghcGdfdmVjKSkKIAkJZ290byBvdXQ7CiAKLS0g CjIuMjAuMQoKCkZyb20gMjU0YmE0YzNjNWE0YzM3NWI4NTc5ODJiODU5MDQ2NDE4NmUyOGFjMSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmVyb21lIEJydW5ldCA8amJydW5ldEBiYXls aWJyZS5jb20+CkRhdGU6IFRodSwgMTQgTWFyIDIwMTkgMTQ6NDk6NDUgKzAxMDAKU3ViamVjdDog W1BBVENIIDEwLzI5XSBuZXQ6IHBoeTogbWVzb24tZ3hsOiBmaXggaW50ZXJydXB0IHN1cHBvcnQK ClsgVXBzdHJlYW0gY29tbWl0IGRhYTVjNGQwMTY3YTMwODMwNjUyNWZkNWFiOWE1ZTE4ZTIxZjRm NzQgXQoKSWYgYW4gaW50ZXJydXB0IGlzIGFscmVhZHkgcGVuZGluZyB3aGVuIHRoZSBpbnRlcnJ1 cHQgaXMgZW5hYmxlZCBvbiB0aGUKR1hMIHBoeSwgbm8gSVJRIHdpbGwgZXZlciBiZSB0cmlnZ2Vy ZWQuCgpUaGUgZml4IGlzIHNpbXBseSB0byBtYWtlIHN1cmUgcGVuZGluZyBJUlFzIGFyZSBjbGVh cmVkIGJlZm9yZSBzZXR0aW5nCnVwIHRoZSBpcnEgbWFzay4KCkZpeGVzOiBjZjEyN2ZmMjBhZjEg KCJuZXQ6IHBoeTogbWVzb24tZ3hsOiBhZGQgaW50ZXJydXB0IHN1cHBvcnQiKQpTaWduZWQtb2Zm LWJ5OiBKZXJvbWUgQnJ1bmV0IDxqYnJ1bmV0QGJheWxpYnJlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3Bo eS9tZXNvbi1neGwuYyB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21lc29uLWd4bC5jIGIvZHJpdmVycy9uZXQv cGh5L21lc29uLWd4bC5jCmluZGV4IGRkYzJjNWVhMzc4Ny4uN2NlZWJiYzRiY2MyIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9waHkvbWVzb24tZ3hsLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21l c29uLWd4bC5jCkBAIC0yMTEsNiArMjExLDcgQEAgc3RhdGljIGludCBtZXNvbl9neGxfYWNrX2lu dGVycnVwdChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogc3RhdGljIGludCBtZXNvbl9neGxf Y29uZmlnX2ludHIoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIHsKIAl1MTYgdmFsOworCWlu dCByZXQ7CiAKIAlpZiAocGh5ZGV2LT5pbnRlcnJ1cHRzID09IFBIWV9JTlRFUlJVUFRfRU5BQkxF RCkgewogCQl2YWwgPSBJTlRTUkNfQU5FR19QUgpAQCAtMjIzLDYgKzIyNCwxMSBAQCBzdGF0aWMg aW50IG1lc29uX2d4bF9jb25maWdfaW50cihzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCQl2 YWwgPSAwOwogCX0KIAorCS8qIEFjayBhbnkgcGVuZGluZyBJUlEgKi8KKwlyZXQgPSBtZXNvbl9n eGxfYWNrX2ludGVycnVwdChwaHlkZXYpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAly ZXR1cm4gcGh5X3dyaXRlKHBoeWRldiwgSU5UU1JDX01BU0ssIHZhbCk7CiB9CiAKLS0gCjIuMjAu MQoKCkZyb20gNGIwYWFlNTkzZGM1MDQxZmRmNjA0MzBkZDVlZmQyNzk2YmUzMDJjYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpEYXRlOiBGcmksIDE1IE1hciAyMDE5IDEwOjQxOjE0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAx MS8yOV0gbmV0OiByb3NlOiBmaXggYSBwb3NzaWJsZSBzdGFjayBvdmVyZmxvdwoKWyBVcHN0cmVh bSBjb21taXQgZTVkY2MwYzMyMjNjNDVjOTQxMDBmMDVmMjhkOGVmODE0ZGIzZDgyYyBdCgpyb3Nl X3dyaXRlX2ludGVybmFsKCkgdXNlcyBhIHRlbXAgYnVmZmVyIG9mIDEwMCBieXRlcywgYnV0IGEg bWFudWFsCmluc3BlY3Rpb24gc2hvd2VkIHRoYXQgZ2l2ZW4gYXJiaXRyYXJ5IGlucHV0LCByb3Nl X2NyZWF0ZV9mYWNpbGl0aWVzKCkKY2FuIGZpbGwgdXAgdG8gMTEwIGJ5dGVzLgoKTGV0cyB1c2Ug YSB0YWlscm9vbSBvZiAyNTYgYnl0ZXMgZm9yIHBlYWNlIG9mIG1pbmQsIGFuZCByZW1vdmUKdGhl IGJvdW5jZSBidWZmZXIgOiB3ZSBjYW4gc2ltcGx5IGFsbG9jYXRlIGEgYmlnIGVub3VnaCBza2IK YW5kIGFkanVzdCBpdHMgbGVuZ3RoIGFzIG5lZWRlZC4KCnN5emJvdCByZXBvcnQgOgoKQlVHOiBL QVNBTjogc3RhY2stb3V0LW9mLWJvdW5kcyBpbiBtZW1jcHkgaW5jbHVkZS9saW51eC9zdHJpbmcu aDozNTIgW2lubGluZV0KQlVHOiBLQVNBTjogc3RhY2stb3V0LW9mLWJvdW5kcyBpbiByb3NlX2Ny ZWF0ZV9mYWNpbGl0aWVzIG5ldC9yb3NlL3Jvc2Vfc3Vici5jOjUyMSBbaW5saW5lXQpCVUc6IEtB U0FOOiBzdGFjay1vdXQtb2YtYm91bmRzIGluIHJvc2Vfd3JpdGVfaW50ZXJuYWwrMHg1OTcvMHgx NWQwIG5ldC9yb3NlL3Jvc2Vfc3Vici5jOjExNgpXcml0ZSBvZiBzaXplIDcgYXQgYWRkciBmZmZm ODg4MDhiMWZmYmVmIGJ5IHRhc2sgc3l6LWV4ZWN1dG9yLjAvMjQ4NTQKCkNQVTogMCBQSUQ6IDI0 ODU0IENvbW06IHN5ei1leGVjdXRvci4wIE5vdCB0YWludGVkIDUuMC4wKyAjOTcKSGFyZHdhcmUg bmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUs IEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVt cF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTcyLzB4MWYwIGxpYi9kdW1wX3N0 YWNrLmM6MTEzCiBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uLmNvbGQrMHg3Yy8weDIwZCBtbS9r YXNhbi9yZXBvcnQuYzoxODcKIGthc2FuX3JlcG9ydC5jb2xkKzB4MWIvMHg0MCBtbS9rYXNhbi9y ZXBvcnQuYzozMTcKIGNoZWNrX21lbW9yeV9yZWdpb25faW5saW5lIG1tL2thc2FuL2dlbmVyaWMu YzoxODUgW2lubGluZV0KIGNoZWNrX21lbW9yeV9yZWdpb24rMHgxMjMvMHgxOTAgbW0va2FzYW4v Z2VuZXJpYy5jOjE5MQogbWVtY3B5KzB4MzgvMHg1MCBtbS9rYXNhbi9jb21tb24uYzoxMzEKIG1l bWNweSBpbmNsdWRlL2xpbnV4L3N0cmluZy5oOjM1MiBbaW5saW5lXQogcm9zZV9jcmVhdGVfZmFj aWxpdGllcyBuZXQvcm9zZS9yb3NlX3N1YnIuYzo1MjEgW2lubGluZV0KIHJvc2Vfd3JpdGVfaW50 ZXJuYWwrMHg1OTcvMHgxNWQwIG5ldC9yb3NlL3Jvc2Vfc3Vici5jOjExNgogcm9zZV9jb25uZWN0 KzB4N2NiLzB4MTUxMCBuZXQvcm9zZS9hZl9yb3NlLmM6ODI2CiBfX3N5c19jb25uZWN0KzB4MjY2 LzB4MzMwIG5ldC9zb2NrZXQuYzoxNjg1CiBfX2RvX3N5c19jb25uZWN0IG5ldC9zb2NrZXQuYzox Njk2IFtpbmxpbmVdCiBfX3NlX3N5c19jb25uZWN0IG5ldC9zb2NrZXQuYzoxNjkzIFtpbmxpbmVd CiBfX3g2NF9zeXNfY29ubmVjdCsweDczLzB4YjAgbmV0L3NvY2tldC5jOjE2OTMKIGRvX3N5c2Nh bGxfNjQrMHgxMDMvMHg2MTAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MjkwCiBlbnRyeV9TWVND QUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlClJJUDogMDAzMzoweDQ1ODA3OQpDb2RlOiBh ZCBiOCBmYiBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCA2NiA5MCA0OCA4OSBm OCA0OCA4OSBmNyA0OCA4OSBkNiA0OCA4OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0YyAy NCAwOCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDBmIDgzIDdiIGI4IGZiIGZmIGMzIDY2IDJl IDBmIDFmIDg0IDAwIDAwIDAwIDAwClJTUDogMDAyYjowMDAwN2Y0N2I4ZDlkYzc4IEVGTEFHUzog MDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmEKUkFYOiBmZmZmZmZmZmZmZmZmZmRh IFJCWDogMDAwMDAwMDAwMDAwMDAwMyBSQ1g6IDAwMDAwMDAwMDA0NTgwNzkKUkRYOiAwMDAwMDAw MDAwMDAwMDFjIFJTSTogMDAwMDAwMDAyMDAwMDA0MCBSREk6IDAwMDAwMDAwMDAwMDAwMDQKUkJQ OiAwMDAwMDAwMDAwNzNiZjAwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAw MDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAw MDA3ZjQ3YjhkOWU2ZDQKUjEzOiAwMDAwMDAwMDAwNGJlNGE0IFIxNDogMDAwMDAwMDAwMDRjZWNh OCBSMTU6IDAwMDAwMDAwZmZmZmZmZmYKClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhl IHBhZ2U6CnBhZ2U6ZmZmZmVhMDAwMjJjN2ZjMCBjb3VudDowIG1hcGNvdW50OjAgbWFwcGluZzow MDAwMDAwMDAwMDAwMDAwIGluZGV4OjB4MApmbGFnczogMHgxZmZmYzAwMDAwMDAwMDAoKQpyYXc6 IDAxZmZmYzAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmZmZmZjAyMmMwMTAxIDAwMDAw MDAwMDAwMDAwMDAKcmF3OiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAw MDBmZmZmZmZmZiAwMDAwMDAwMDAwMDAwMDAwCnBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBi YWQgYWNjZXNzIGRldGVjdGVkCgpNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNz OgogZmZmZjg4ODA4YjFmZmE4MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAKIGZmZmY4ODgwOGIxZmZiMDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGYx IGYxIGYxIGYxIDAwIDAwIDAwIDAzCj5mZmZmODg4MDhiMWZmYjgwOiBmMiBmMiAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwNCBmMwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZmZmZjg4ODA4YjFmZmMwMDog ZjMgZjMgZjMgZjMgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKIGZmZmY4ODgw OGIxZmZjODA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIGYxIGYxIGYxIGYxIGYxIGYxIDAxIGYyIDAx CgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9y dGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Jvc2Uvcm9z ZV9zdWJyLmMgfCAyMSArKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMiBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9yb3NlL3Jvc2Vf c3Vici5jIGIvbmV0L3Jvc2Uvcm9zZV9zdWJyLmMKaW5kZXggN2NhNTc3NDFiMmZiLi43ODQ5ZjI4 NmJiOTMgMTAwNjQ0Ci0tLSBhL25ldC9yb3NlL3Jvc2Vfc3Vici5jCisrKyBiL25ldC9yb3NlL3Jv c2Vfc3Vici5jCkBAIC0xMDUsMTYgKzEwNSwxNyBAQCB2b2lkIHJvc2Vfd3JpdGVfaW50ZXJuYWwo c3RydWN0IHNvY2sgKnNrLCBpbnQgZnJhbWV0eXBlKQogCXN0cnVjdCBza19idWZmICpza2I7CiAJ dW5zaWduZWQgY2hhciAgKmRwdHI7CiAJdW5zaWduZWQgY2hhciAgbGNpMSwgbGNpMjsKLQljaGFy IGJ1ZmZlclsxMDBdOwotCWludCBsZW4sIGZhY2xlbiA9IDA7CisJaW50IG1heGZhY2xlbiA9IDA7 CisJaW50IGxlbiwgZmFjbGVuOworCWludCByZXNlcnZlOwogCi0JbGVuID0gQVgyNV9CUFFfSEVB REVSX0xFTiArIEFYMjVfTUFYX0hFQURFUl9MRU4gKyBST1NFX01JTl9MRU4gKyAxOworCXJlc2Vy dmUgPSBBWDI1X0JQUV9IRUFERVJfTEVOICsgQVgyNV9NQVhfSEVBREVSX0xFTiArIDE7CisJbGVu ID0gUk9TRV9NSU5fTEVOOwogCiAJc3dpdGNoIChmcmFtZXR5cGUpIHsKIAljYXNlIFJPU0VfQ0FM TF9SRVFVRVNUOgogCQlsZW4gICArPSAxICsgUk9TRV9BRERSX0xFTiArIFJPU0VfQUREUl9MRU47 Ci0JCWZhY2xlbiA9IHJvc2VfY3JlYXRlX2ZhY2lsaXRpZXMoYnVmZmVyLCByb3NlKTsKLQkJbGVu ICAgKz0gZmFjbGVuOworCQltYXhmYWNsZW4gPSAyNTY7CiAJCWJyZWFrOwogCWNhc2UgUk9TRV9D QUxMX0FDQ0VQVEVEOgogCWNhc2UgUk9TRV9DTEVBUl9SRVFVRVNUOgpAQCAtMTIzLDE1ICsxMjQs MTYgQEAgdm9pZCByb3NlX3dyaXRlX2ludGVybmFsKHN0cnVjdCBzb2NrICpzaywgaW50IGZyYW1l dHlwZSkKIAkJYnJlYWs7CiAJfQogCi0JaWYgKChza2IgPSBhbGxvY19za2IobGVuLCBHRlBfQVRP TUlDKSkgPT0gTlVMTCkKKwlza2IgPSBhbGxvY19za2IocmVzZXJ2ZSArIGxlbiArIG1heGZhY2xl biwgR0ZQX0FUT01JQyk7CisJaWYgKCFza2IpCiAJCXJldHVybjsKIAogCS8qCiAJICoJU3BhY2Ug Zm9yIEFYLjI1IGhlYWRlciBhbmQgUElELgogCSAqLwotCXNrYl9yZXNlcnZlKHNrYiwgQVgyNV9C UFFfSEVBREVSX0xFTiArIEFYMjVfTUFYX0hFQURFUl9MRU4gKyAxKTsKKwlza2JfcmVzZXJ2ZShz a2IsIHJlc2VydmUpOwogCi0JZHB0ciA9IHNrYl9wdXQoc2tiLCBza2JfdGFpbHJvb20oc2tiKSk7 CisJZHB0ciA9IHNrYl9wdXQoc2tiLCBsZW4pOwogCiAJbGNpMSA9IChyb3NlLT5sY2kgPj4gOCkg JiAweDBGOwogCWxjaTIgPSAocm9zZS0+bGNpID4+IDApICYgMHhGRjsKQEAgLTE0Niw3ICsxNDgs OCBAQCB2b2lkIHJvc2Vfd3JpdGVfaW50ZXJuYWwoc3RydWN0IHNvY2sgKnNrLCBpbnQgZnJhbWV0 eXBlKQogCQlkcHRyICAgKz0gUk9TRV9BRERSX0xFTjsKIAkJbWVtY3B5KGRwdHIsICZyb3NlLT5z b3VyY2VfYWRkciwgUk9TRV9BRERSX0xFTik7CiAJCWRwdHIgICArPSBST1NFX0FERFJfTEVOOwot CQltZW1jcHkoZHB0ciwgYnVmZmVyLCBmYWNsZW4pOworCQlmYWNsZW4gPSByb3NlX2NyZWF0ZV9m YWNpbGl0aWVzKGRwdHIsIHJvc2UpOworCQlza2JfcHV0KHNrYiwgZmFjbGVuKTsKIAkJZHB0ciAg ICs9IGZhY2xlbjsKIAkJYnJlYWs7CiAKLS0gCjIuMjAuMQoKCkZyb20gNDk0YjhlNmYxNTY3NTZi YTVkNDQwMTk3MDk3NjI0MjY1NzAzYzAwYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QWFybyBLb3NraW5lbiA8YWFyby5rb3NraW5lbkBub2tpYS5jb20+CkRhdGU6IE1vbiwgMTggTWFy IDIwMTkgMjM6MzY6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzI5XSBuZXQ6IHN0bW1hYzog Zml4IG1lbW9yeSBjb3JydXB0aW9uIHdpdGggbGFyZ2UgTVRVcwoKWyBVcHN0cmVhbSBjb21taXQg MjIzYTk2MGMwMTIyN2U0ZGJjYjZmOWZhMDZiNDdkNzNiZGEyMTI3NCBdCgpXaGVuIHVzaW5nIDE2 SyBETUEgYnVmZmVycyBhbmQgcmluZyBtb2RlLCB0aGUgREVTMyByZWZpbGwgaXMgbm90IHdvcmtp bmcKY29ycmVjdGx5IGFzIHRoZSBmdW5jdGlvbiBpcyB1c2luZyBhIGJvZ3VzIHBvaW50ZXIgZm9y IGNoZWNraW5nIHRoZQpwcml2YXRlIGRhdGEuIEFzIGEgcmVzdWx0IHN0YWxlIHBvaW50ZXJzIHdp bGwgcmVtYWluIGluIHRoZSBSWCBkZXNjcmlwdG9yCnJpbmcsIHNvIERNQSB3aWxsIG5vdyBsaWtl bHkgb3ZlcndyaXRlL2NvcnJ1cHQgc29tZSBhbHJlYWR5IGZyZWVkIG1lbW9yeS4KCkFzIHNpbXBs ZSByZXByb2R1Y2VyLCBqdXN0IHJlY2VpdmUgc29tZSBVRFAgdHJhZmZpYzoKCgkjIGlmY29uZmln IGV0aDAgZG93bjsgaWZjb25maWcgZXRoMCBtdHUgOTAwMDsgaWZjb25maWcgZXRoMCB1cAoJIyBp cGVyZjMgLWMgMTkyLjE2OC4yNTMuNDAgLXUgLWIgMCAtUgoKSWYgeW91IGRpZG4ndCBjcmFzaCBi eSBub3cgY2hlY2sgdGhlIFJYIGRlc2NyaXB0b3JzIHRvIGZpbmQgbm9uLWNvbnRpZ3VvdXMKUlgg YnVmZmVyczoKCgljYXQgL3N5cy9rZXJuZWwvZGVidWcvc3RtbWFjZXRoL2V0aDAvZGVzY3JpcHRv cnNfc3RhdHVzCglbLi4uXQoJMSBbMHgyYmU1MDIwXTogMHhhMzIyMDMyMSAweDlmZmMxZmZjIDB4 NzJkNzAwODIgMHgxMzBlMjA3ZQoJCQkJCSAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eCgkyIFsw eDJiZTUwNDBdOiAweGEzMjIwMzIxIDB4OWZmYzFmZmMgMHg3Mjk5ODA4MiAweDEzMTFhMDdlCgkJ CQkJICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl4KCkEgc2ltcGxlIHBpbmcgdGVzdCB3aWxsIG5v dyByZXBvcnQgYmFkIGRhdGE6CgoJIyBwaW5nIC1zIDgyMDAgMTkyLjE2OC4yNTMuNDAKCVBJTkcg MTkyLjE2OC4yNTMuNDAgKDE5Mi4xNjguMjUzLjQwKSA4MjAwKDgyMjgpIGJ5dGVzIG9mIGRhdGEu Cgk4MjA4IGJ5dGVzIGZyb20gMTkyLjE2OC4yNTMuNDA6IGljbXBfc2VxPTEgdHRsPTY0IHRpbWU9 MS4wMCBtcwoJd3JvbmcgZGF0YSBieXRlICM4MTQ0IHNob3VsZCBiZSAweGQwIGJ1dCB3YXMgMHg4 OAoKRml4IHRoZSB3cm9uZyBwb2ludGVyLiBBbHNvIHdlIG11c3QgcmVmaWxsIERFUzMgb25seSBp ZiB0aGUgRE1BIGJ1ZmZlcgpzaXplIGlzIDE2Sy4KCkZpeGVzOiA1NDEzOWNmM2JiMzMgKCJuZXQ6 IHN0bW1hYzogYWRkaW5nIG11bHRpcGxlIGJ1ZmZlcnMgZm9yIHJ4IikKU2lnbmVkLW9mZi1ieTog QWFybyBLb3NraW5lbiA8YWFyby5rb3NraW5lbkBub2tpYS5jb20+CkFja2VkLWJ5OiBKb3NlIEFi cmV1IDxqb2FicmV1QHN5bm9wc3lzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL3JpbmdfbW9kZS5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9z dG1pY3JvL3N0bW1hYy9yaW5nX21vZGUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL3JpbmdfbW9kZS5jCmluZGV4IGJjODNjZWQ5NGUxYi4uYWZlZDBmMGY0MDI3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9yaW5nX21vZGUuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9yaW5nX21vZGUuYwpAQCAt MTExLDEwICsxMTEsMTEgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpc19qdW1ib19mcm0oaW50IGxl biwgaW50IGVuaF9kZXNjKQogCiBzdGF0aWMgdm9pZCByZWZpbGxfZGVzYzModm9pZCAqcHJpdl9w dHIsIHN0cnVjdCBkbWFfZGVzYyAqcCkKIHsKLQlzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSAo c3RydWN0IHN0bW1hY19wcml2ICopcHJpdl9wdHI7CisJc3RydWN0IHN0bW1hY19yeF9xdWV1ZSAq cnhfcSA9IHByaXZfcHRyOworCXN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtPnByaXZf ZGF0YTsKIAogCS8qIEZpbGwgREVTMyBpbiBjYXNlIG9mIFJJTkcgbW9kZSAqLwotCWlmIChwcml2 LT5kbWFfYnVmX3N6ID49IEJVRl9TSVpFXzhLaUIpCisJaWYgKHByaXYtPmRtYV9idWZfc3ogPT0g QlVGX1NJWkVfMTZLaUIpCiAJCXAtPmRlczMgPSBjcHVfdG9fbGUzMihsZTMyX3RvX2NwdShwLT5k ZXMyKSArIEJVRl9TSVpFXzhLaUIpOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIGIyNzAyY2UzYjFk ZWMzOTQ1YWI4YTkzN2YzNDcwODE5NWRjZjYzMjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFl1ZUhhaWJpbmcgPHl1ZWhhaWJpbmdAaHVhd2VpLmNvbT4KRGF0ZTogVHVlLCAxOSBNYXIg MjAxOSAxMDoxNjo1MyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjldIG5ldC1zeXNmczogY2Fs bCBkZXZfaG9sZCBpZiBrb2JqZWN0X2luaXRfYW5kX2FkZAogc3VjY2VzcwoKWyBVcHN0cmVhbSBj b21taXQgYTNlMjNmNzE5ZjVjNGEzOGZmYjNkMzBjOGQ3NjMyYTRlZDhjY2Q5ZSBdCgpJbiBuZXRk ZXZfcXVldWVfYWRkX2tvYmplY3QgYW5kIHJ4X3F1ZXVlX2FkZF9rb2JqZWN0LAppZiBzeXNmc19j cmVhdGVfZ3JvdXAgZmFpbGVkLCBrb2JqZWN0X3B1dCB3aWxsIGNhbGwKbmV0ZGV2X3F1ZXVlX3Jl bGVhc2UgdG8gZGVjcmVhc2UgZGV2IHJlZmNvbnQsIGhvd2V2ZXIKZGV2X2hvbGQgaGFzIG5vdCBi ZSBjYWxsZWQuIFNvIHdlIHdpbGwgc2VlIHRoaXMgd2hpbGUKdW5yZWdpc3RlcmluZyBkZXY6Cgp1 bnJlZ2lzdGVyX25ldGRldmljZTogd2FpdGluZyBmb3IgYmNzaDAgdG8gYmVjb21lIGZyZWUuIFVz YWdlIGNvdW50ID0gLTEKClJlcG9ydGVkLWJ5OiBIdWxrIFJvYm90IDxodWxrY2lAaHVhd2VpLmNv bT4KRml4ZXM6IGQwZDY2ODM3MTY3OSAoIm5ldDogZG9uJ3QgZGVjcmVtZW50IGtvYmogcmVmZXJl bmNlIGNvdW50IG9uIGluaXQgZmFpbHVyZSIpClNpZ25lZC1vZmYtYnk6IFl1ZUhhaWJpbmcgPHl1 ZWhhaWJpbmdAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL25ldC1zeXNmcy5jIHwgNiArKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvbmV0LXN5c2ZzLmMgYi9uZXQvY29yZS9uZXQtc3lzZnMuYwppbmRleCAyYWFi YjdlYjA4NTQuLmJmOWEzYjZhYzg4NSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvbmV0LXN5c2ZzLmMK KysrIGIvbmV0L2NvcmUvbmV0LXN5c2ZzLmMKQEAgLTkzNCw2ICs5MzQsOCBAQCBzdGF0aWMgaW50 IHJ4X3F1ZXVlX2FkZF9rb2JqZWN0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBpbmRleCkK IAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAorCWRldl9ob2xkKHF1ZXVlLT5kZXYpOwor CiAJaWYgKGRldi0+c3lzZnNfcnhfcXVldWVfZ3JvdXApIHsKIAkJZXJyb3IgPSBzeXNmc19jcmVh dGVfZ3JvdXAoa29iaiwgZGV2LT5zeXNmc19yeF9xdWV1ZV9ncm91cCk7CiAJCWlmIChlcnJvcikg ewpAQCAtOTQzLDcgKzk0NSw2IEBAIHN0YXRpYyBpbnQgcnhfcXVldWVfYWRkX2tvYmplY3Qoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGluZGV4KQogCX0KIAogCWtvYmplY3RfdWV2ZW50KGtv YmosIEtPQkpfQUREKTsKLQlkZXZfaG9sZChxdWV1ZS0+ZGV2KTsKIAogCXJldHVybiBlcnJvcjsK IH0KQEAgLTE0NzIsNiArMTQ3Myw4IEBAIHN0YXRpYyBpbnQgbmV0ZGV2X3F1ZXVlX2FkZF9rb2Jq ZWN0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBpbmRleCkKIAlpZiAoZXJyb3IpCiAJCXJl dHVybiBlcnJvcjsKIAorCWRldl9ob2xkKHF1ZXVlLT5kZXYpOworCiAjaWZkZWYgQ09ORklHX0JR TAogCWVycm9yID0gc3lzZnNfY3JlYXRlX2dyb3VwKGtvYmosICZkcWxfZ3JvdXApOwogCWlmIChl cnJvcikgewpAQCAtMTQ4MSw3ICsxNDg0LDYgQEAgc3RhdGljIGludCBuZXRkZXZfcXVldWVfYWRk X2tvYmplY3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGluZGV4KQogI2VuZGlmCiAKIAlr b2JqZWN0X3VldmVudChrb2JqLCBLT0JKX0FERCk7Ci0JZGV2X2hvbGQocXVldWUtPmRldik7CiAK IAlyZXR1cm4gMDsKIH0KLS0gCjIuMjAuMQoKCkZyb20gMTUwYWMzMGU3ZDcwMzI0NGJiNzQxODg0 OWY5NDIxNTBkYjk1OWJmMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2FuZyBIYWkg PHdhbmdoYWkyNkBodWF3ZWkuY29tPgpEYXRlOiBXZWQsIDIwIE1hciAyMDE5IDE0OjI1OjA1IC0w NDAwClN1YmplY3Q6IFtQQVRDSCAxNC8yOV0gbmV0LXN5c2ZzOiBGaXggbWVtb3J5IGxlYWsgaW4g bmV0ZGV2X3JlZ2lzdGVyX2tvYmplY3QKClsgVXBzdHJlYW0gY29tbWl0IDZiNzBmYzk0YWZkMTY1 MzQyODc2ZTUzZmM0YjJmN2QwODUwMDk5NDUgXQoKV2hlbiByZWdpc3RlcmluZyBzdHJ1Y3QgbmV0 X2RldmljZSwgaXQgd2lsbCBjYWxsCglyZWdpc3Rlcl9uZXRkZXZpY2UgLT4KCQluZXRkZXZfcmVn aXN0ZXJfa29iamVjdCAtPgoJCQlkZXZpY2VfaW5pdGlhbGl6ZShkZXYpOwoJCQlkZXZfc2V0X25h bWUoZGV2LCAiJXMiLCBuZGV2LT5uYW1lKQoJCQlkZXZpY2VfYWRkKGRldikKCQkJcmVnaXN0ZXJf cXVldWVfa29iamVjdHMobmRldikKCkluIG5ldGRldl9yZWdpc3Rlcl9rb2JqZWN0KCksIGlmIGRl dmljZV9hZGQoZGV2KSBvcgpyZWdpc3Rlcl9xdWV1ZV9rb2JqZWN0cyhuZGV2KSBmYWlsZWQuIFJl Z2lzdGVyX25ldGRldmljZSgpCndpbGwgcmV0dXJuIGVycm9yLCBjYXVzaW5nIG5ldGRldl9mcmVl bWVtKG5kZXYpIHRvIGJlCmNhbGxlZCB0byBmcmVlIG5ldF9kZXZpY2UsIGhvd2V2ZXIgcHV0X2Rl dmljZSgmZGV2LT5kZXYpLT4uLi0+CmtvYmplY3RfY2xlYW51cCgpIHdvbid0IGJlIGNhbGxlZCwg cmVzdWx0aW5nIGluIGEgbWVtb3J5IGxlYWsuCgpzeXprYWxsZXIgcmVwb3J0IHRoaXM6CkJVRzog bWVtb3J5IGxlYWsKdW5yZWZlcmVuY2VkIG9iamVjdCAweGZmZmY4ODgxZjRmYWQxNjggKHNpemUg OCk6CmNvbW0gInN5ei1leGVjdXRvci4wIiwgcGlkIDM1NzUsIGppZmZpZXMgNDI5NDc3ODAwMiAo YWdlIDIwLjEzNHMpCmhleCBkdW1wIChmaXJzdCA4IGJ5dGVzKToKICA3NyA3MCA2MSA2ZSAzMCAw MCBmZiBmZiAgICAgICAgICAgICAgICAgICAgICAgICAgd3BhbjAuLi4KYmFja3RyYWNlOgogIFs8 MDAwMDAwMDA2ZDJkOTFkNz5dIGtzdHJkdXBfY29uc3QrMHgzZC8weDUwIG1tL3V0aWwuYzo3Mwog IFs8MDAwMDAwMDBiYTlmZjk1Mz5dIGt2YXNwcmludGZfY29uc3QrMHgxMTIvMHgxNzAgbGliL2th c3ByaW50Zi5jOjQ4CiAgWzwwMDAwMDAwMDU1NTVlYzA5Pl0ga29iamVjdF9zZXRfbmFtZV92YXJn cysweDU1LzB4MTMwIGxpYi9rb2JqZWN0LmM6MjgxCiAgWzwwMDAwMDAwMDk4ZDI4ZWMzPl0gZGV2 X3NldF9uYW1lKzB4YmIvMHhmMCBkcml2ZXJzL2Jhc2UvY29yZS5jOjE5MTUKICBbPDAwMDAwMDAw Yjc1NTMwMTc+XSBuZXRkZXZfcmVnaXN0ZXJfa29iamVjdCsweGMwLzB4NDEwIG5ldC9jb3JlL25l dC1zeXNmcy5jOjE3MjcKICBbPDAwMDAwMDAwYzgyNmE3OTc+XSByZWdpc3Rlcl9uZXRkZXZpY2Ur MHhhNTEvMHhlYjAgbmV0L2NvcmUvZGV2LmM6ODcxMQogIFs8MDAwMDAwMDA4NTdiZmNmZD5dIGNm ZzgwMjE1NF91cGRhdGVfaWZhY2VfbnVtLmlzcmEuMisweDEzLzB4OTAgW2llZWU4MDIxNTRdCiAg WzwwMDAwMDAwMDMxMjZlNDUzPl0gaWVlZTgwMjE1NF9sbHNlY19maWxsX2tleV9pZCsweDFkNS8w eDU3MCBbaWVlZTgwMjE1NF0KICBbPDAwMDAwMDAwZTRiM2RmNTE+XSAweGZmZmZmZmZmYzE1MDBl MGUKICBbPDAwMDAwMDAwYjQzMTk3NzY+XSBwbGF0Zm9ybV9kcnZfcHJvYmUrMHhjNi8weDE4MCBk cml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo2MTQKICBbPDAwMDAwMDAwMzc2NjkzNDc+XSByZWFsbHlf cHJvYmUrMHg0OTEvMHg3YzAgZHJpdmVycy9iYXNlL2RkLmM6NTA5CiAgWzwwMDAwMDAwMDhmZWQ4 ODYyPl0gZHJpdmVyX3Byb2JlX2RldmljZSsweGRjLzB4MjQwIGRyaXZlcnMvYmFzZS9kZC5jOjY3 MQogIFs8MDAwMDAwMDBiYWY1MjA0MT5dIGRldmljZV9kcml2ZXJfYXR0YWNoKzB4ZjIvMHgxMzAg ZHJpdmVycy9iYXNlL2RkLmM6OTQ1CiAgWzwwMDAwMDAwMGM3Y2M4ZGVjPl0gX19kcml2ZXJfYXR0 YWNoKzB4MTBlLzB4MjEwIGRyaXZlcnMvYmFzZS9kZC5jOjEwMjIKICBbPDAwMDAwMDAwNTdhNzU3 YzI+XSBidXNfZm9yX2VhY2hfZGV2KzB4MTU0LzB4MWUwIGRyaXZlcnMvYmFzZS9idXMuYzozMDQK ICBbPDAwMDAwMDAwNWY1YWUwNGI+XSBidXNfYWRkX2RyaXZlcisweDQyNy8weDVlMCBkcml2ZXJz L2Jhc2UvYnVzLmM6NjQ1CgpSZXBvcnRlZC1ieTogSHVsayBSb2JvdCA8aHVsa2NpQGh1YXdlaS5j b20+CkZpeGVzOiAxZmE1YWU4NTdiYjEgKCJkcml2ZXIgY29yZTogZ2V0IHJpZCBvZiBzdHJ1Y3Qg ZGV2aWNlJ3MgYnVzX2lkIHN0cmluZyBhcnJheSIpClNpZ25lZC1vZmYtYnk6IFdhbmcgSGFpIDx3 YW5naGFpMjZAaHVhd2VpLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHkgU2hldmNoZW5rbyA8YW5kcml5 LnNoZXZjaGVua29AbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogU3RlcGhlbiBIZW1taW5n ZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvbmV0LXN5c2ZzLmMgfCAx NCArKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXQtc3lzZnMuYyBiL25ldC9jb3JlL25l dC1zeXNmcy5jCmluZGV4IGJmOWEzYjZhYzg4NS4uZGQyYTJjYjdmOGYxIDEwMDY0NAotLS0gYS9u ZXQvY29yZS9uZXQtc3lzZnMuYworKysgYi9uZXQvY29yZS9uZXQtc3lzZnMuYwpAQCAtMTc1NSwx NiArMTc1NSwyMCBAQCBpbnQgbmV0ZGV2X3JlZ2lzdGVyX2tvYmplY3Qoc3RydWN0IG5ldF9kZXZp Y2UgKm5kZXYpCiAKIAllcnJvciA9IGRldmljZV9hZGQoZGV2KTsKIAlpZiAoZXJyb3IpCi0JCXJl dHVybiBlcnJvcjsKKwkJZ290byBlcnJvcl9wdXRfZGV2aWNlOwogCiAJZXJyb3IgPSByZWdpc3Rl cl9xdWV1ZV9rb2JqZWN0cyhuZGV2KTsKLQlpZiAoZXJyb3IpIHsKLQkJZGV2aWNlX2RlbChkZXYp OwotCQlyZXR1cm4gZXJyb3I7Ci0JfQorCWlmIChlcnJvcikKKwkJZ290byBlcnJvcl9kZXZpY2Vf ZGVsOwogCiAJcG1fcnVudGltZV9zZXRfbWVtYWxsb2Nfbm9pbyhkZXYsIHRydWUpOwogCisJcmV0 dXJuIDA7CisKK2Vycm9yX2RldmljZV9kZWw6CisJZGV2aWNlX2RlbChkZXYpOworZXJyb3JfcHV0 X2RldmljZToKKwlwdXRfZGV2aWNlKGRldik7CiAJcmV0dXJuIGVycm9yOwogfQogCi0tIAoyLjIw LjEKCgpGcm9tIGQ4NTUxMjFiNzEyZDNiNWMzMjgwOGM1MmMwMjk3ZmI0NjVmMGE4YWIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1heGltZSBDaGV2YWxsaWVyIDxtYXhpbWUuY2hldmFs bGllckBib290bGluLmNvbT4KRGF0ZTogU2F0LCAxNiBNYXIgMjAxOSAxNDo0MTozMCArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTUvMjldIHBhY2tldHM6IEFsd2F5cyByZWdpc3RlciBwYWNrZXQgc2sg aW4gdGhlIHNhbWUgb3JkZXIKClsgVXBzdHJlYW0gY29tbWl0IGE0ZGM2YTQ5MTU2YjFmOGQ2ZTE3 MjUxZmZkYTE3YzllNmE1ZGI3OGEgXQoKV2hlbiB1c2luZyBmYW5vdXRzIHdpdGggQUZfUEFDS0VU LCB0aGUgZGVtdXggZnVuY3Rpb25zIHN1Y2ggYXMKZmFub3V0X2RlbXV4X2NwdSB3aWxsIHJldHVy biBhbiBpbmRleCBpbiB0aGUgZmFub3V0IHNvY2tldCBhcnJheSwgd2hpY2gKY29ycmVzcG9uZHMg dG8gdGhlIHNlbGVjdGVkIHNvY2tldC4KClRoZSBvcmRlcmluZyBvZiB0aGlzIGFycmF5IGRlcGVu ZHMgb24gdGhlIG9yZGVyIHRoZSBzb2NrZXRzIHdlcmUgYWRkZWQKdG8gYSBnaXZlbiBmYW5vdXQg Z3JvdXAsIHNvIGZvciBGQU5PVVRfQ1BVIHRoaXMgbWVhbnMgc29ja2V0cyBhcmUgYm91bmQKdG8g Y3B1cyBpbiB0aGUgb3JkZXIgdGhleSBhcmUgY29uZmlndXJlZCwgd2hpY2ggaXMgT0suCgpIb3dl dmVyLCB3aGVuIHN0b3BwaW5nIHRoZW4gcmVzdGFydGluZyB0aGUgaW50ZXJmYWNlIHRoZXNlIHNv Y2tldHMgYXJlCmJvdW5kIHRvLCB0aGUgc29ja2V0cyBhcmUgcmVhc3NpZ25lZCB0byB0aGUgZmFu b3V0IGdyb3VwIGluIHRoZSByZXZlcnNlCm9yZGVyLCBkdWUgdG8gdGhlIGZhY3QgdGhhdCB0aGV5 IHdlcmUgaW5zZXJ0ZWQgYXQgdGhlIGhlYWQgb2YgdGhlCmludGVyZmFjZSdzIEFGX1BBQ0tFVCBz b2NrZXQgbGlzdC4KClRoaXMgbWVhbnMgdGhhdCB0cmFmZmljIHRoYXQgd2FzIGRpcmVjdGVkIHRv IHRoZSBmaXJzdCBzb2NrZXQgaW4gdGhlCmZhbm91dCBncm91cCBpcyBub3cgZGlyZWN0ZWQgdG8g dGhlIGxhc3Qgb25lIGFmdGVyIGFuIGludGVyZmFjZSByZXN0YXJ0LgoKSW4gdGhlIGNhc2Ugb2Yg RkFOT1VUX0NQVSwgdHJhZmZpYyBmcm9tIENQVTAgd2lsbCBiZSBkaXJlY3RlZCB0byB0aGUKc29j a2V0IHRoYXQgdXNlZCB0byByZWNlaXZlIHRyYWZmaWMgZnJvbSB0aGUgbGFzdCBDUFUgYWZ0ZXIg YW4gaW50ZXJmYWNlCnJlc3RhcnQuCgpUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIGEgaGVscGVyIHRv IGFkZCBhIHNvY2tldCBhdCB0aGUgdGFpbCBvZiBhIGxpc3QsCnRoZW4gdXNlcyBpdCB0byByZWdp c3RlciBBRl9QQUNLRVQgc29ja2V0cy4KCk5vdGUgdGhhdCB0aGlzIGNoYW5nZXMgdGhlIG9yZGVy IGluIHdoaWNoIHNvY2tldHMgYXJlIGxpc3RlZCBpbiAvcHJvYyBhbmQKd2l0aCBzb2NrX2RpYWcu CgpGaXhlczogZGM5OWY2MDA2OThkICgicGFja2V0OiBBZGQgZmFub3V0IHN1cHBvcnQiKQpTaWdu ZWQtb2ZmLWJ5OiBNYXhpbWUgQ2hldmFsbGllciA8bWF4aW1lLmNoZXZhbGxpZXJAYm9vdGxpbi5j b20+CkFja2VkLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL25ldC9zb2NrLmggICAgIHwgNiArKysrKysKIG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCAy ICstCiAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NvY2suaCBiL2luY2x1ZGUvbmV0L3NvY2suaAppbmRleCA2 Y2I1YTU0NWRmN2QuLjFlY2U3NzM2YzQ5YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc29jay5o CisrKyBiL2luY2x1ZGUvbmV0L3NvY2suaApAQCAtNzEwLDYgKzcxMCwxMiBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgc2tfYWRkX25vZGVfcmN1KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGhsaXN0X2hl YWQgKmxpc3QpCiAJCWhsaXN0X2FkZF9oZWFkX3JjdSgmc2stPnNrX25vZGUsIGxpc3QpOwogfQog CitzdGF0aWMgaW5saW5lIHZvaWQgc2tfYWRkX25vZGVfdGFpbF9yY3Uoc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3QgaGxpc3RfaGVhZCAqbGlzdCkKK3sKKwlzb2NrX2hvbGQoc2spOworCWhsaXN0X2Fk ZF90YWlsX3JjdSgmc2stPnNrX25vZGUsIGxpc3QpOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQg X19za19udWxsc19hZGRfbm9kZV9yY3Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaGxpc3RfbnVs bHNfaGVhZCAqbGlzdCkKIHsKIAlobGlzdF9udWxsc19hZGRfaGVhZF9yY3UoJnNrLT5za19udWxs c19ub2RlLCBsaXN0KTsKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQv cGFja2V0L2FmX3BhY2tldC5jCmluZGV4IDAzZjdlMTYxNDE3My4uYTBkMjk1NDc4ZTY5IDEwMDY0 NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0 LmMKQEAgLTMyNDUsNyArMzI0NSw3IEBAIHN0YXRpYyBpbnQgcGFja2V0X2NyZWF0ZShzdHJ1Y3Qg bmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBwcm90b2NvbCwKIAl9CiAKIAltdXRl eF9sb2NrKCZuZXQtPnBhY2tldC5za2xpc3RfbG9jayk7Ci0Jc2tfYWRkX25vZGVfcmN1KHNrLCAm bmV0LT5wYWNrZXQuc2tsaXN0KTsKKwlza19hZGRfbm9kZV90YWlsX3JjdShzaywgJm5ldC0+cGFj a2V0LnNrbGlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZuZXQtPnBhY2tldC5za2xpc3RfbG9jayk7CiAK IAlwcmVlbXB0X2Rpc2FibGUoKTsKLS0gCjIuMjAuMQoKCkZyb20gNmQ0ZmM2ZjM1OGY5ZTk1N2M1 MDMzNzlmMGVjYWM1M2E2ZDM4OTMzMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVy YmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpEYXRlOiBUaHUsIDIxIE1hciAy MDE5IDA5OjM5OjUyICswODAwClN1YmplY3Q6IFtQQVRDSCAxNi8yOV0gcmhhc2h0YWJsZTogU3Rp bGwgZG8gcmVoYXNoIHdoZW4gd2UgZ2V0IEVFWElTVAoKWyBVcHN0cmVhbSBjb21taXQgNDA4ZjEz ZWYzNThhYTVhZDU2ZGM2MjMwYzJjN2RlYjkyY2Y0NjJiMSBdCgpBcyBpdCBzdGFuZHMgaWYgYSBz aHJpbmsgaXMgZGVsYXllZCBiZWNhdXNlIG9mIGFuIG91dHN0YW5kaW5nCnJlaGFzaCwgd2Ugd2ls bCBnbyBpbnRvIGEgcmVzY2hlZHVsaW5nIGxvb3Agd2l0aG91dCBldmVyIGRvaW5nCnRoZSByZWhh c2guCgpUaGlzIHBhdGNoIGZpeGVzIHRoaXMgYnkgc3RpbGwgY2Fycnlpbmcgb3V0IHRoZSByZWhh c2ggYW5kIHRoZW4KcmVzY2hlZHVsaW5nIHNvIHRoYXQgd2UgY2FuIHNocmluayBhZnRlciB0aGUg Y29tcGxldGlvbiBvZiB0aGUKcmVoYXNoIHNob3VsZCBpdCBzdGlsbCBiZSBuZWNlc3NhcnkuCgpU aGUgcmV0dXJuIHZhbHVlIG9mIEVFWElTVCBjYXB0dXJlcyB0aGlzIGNhc2UgYW5kIG90aGVyIGNh c2VzCihlLmcuLCBhbm90aGVyIHRocmVhZCBleHBhbmRlZC9yZWhhc2hlZCB0aGUgdGFibGUgYXQg dGhlIHNhbWUKdGltZSkgd2hlcmUgd2Ugc2hvdWxkIHN0aWxsIHByb2NlZWQgd2l0aCB0aGUgcmVo YXNoLgoKRml4ZXM6IGRhMjA0MjBmODNlYSAoInJoYXNodGFibGU6IEFkZCBuZXN0ZWQgdGFibGVz IikKUmVwb3J0ZWQtYnk6IEpvc2ggRWxzYXNzZXIgPGplbHNhc3NlckBhcHBuZXRhLmNvbT4KU2ln bmVkLW9mZi1ieTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpUZXN0 ZWQtYnk6IEpvc2ggRWxzYXNzZXIgPGplbHNhc3NlckBhcHBuZXRhLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGxpYi9yaGFzaHRh YmxlLmMgfCA4ICsrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9yaGFzaHRhYmxlLmMgYi9saWIvcmhhc2h0YWJs ZS5jCmluZGV4IDMwNTI2YWZhODM0My4uNjQxMGM4NTdiMDQ4IDEwMDY0NAotLS0gYS9saWIvcmhh c2h0YWJsZS5jCisrKyBiL2xpYi9yaGFzaHRhYmxlLmMKQEAgLTQxNiw4ICs0MTYsMTIgQEAgc3Rh dGljIHZvaWQgcmh0X2RlZmVycmVkX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJ ZWxzZSBpZiAodGJsLT5uZXN0KQogCQllcnIgPSByaGFzaHRhYmxlX3JlaGFzaF9hbGxvYyhodCwg dGJsLCB0YmwtPnNpemUpOwogCi0JaWYgKCFlcnIpCi0JCWVyciA9IHJoYXNodGFibGVfcmVoYXNo X3RhYmxlKGh0KTsKKwlpZiAoIWVyciB8fCBlcnIgPT0gLUVFWElTVCkgeworCQlpbnQgbmVycjsK KworCQluZXJyID0gcmhhc2h0YWJsZV9yZWhhc2hfdGFibGUoaHQpOworCQllcnIgPSBlcnIgPzog bmVycjsKKwl9CiAKIAltdXRleF91bmxvY2soJmh0LT5tdXRleCk7CiAKLS0gCjIuMjAuMQoKCkZy b20gZGQ3MzU5MTcwYjJlODg1ODEzZTNlODZkOTlhYTZlY2MyM2ZhYzZhZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBN b24sIDE4IE1hciAyMDE5IDE5OjQ3OjAwICswODAwClN1YmplY3Q6IFtQQVRDSCAxNy8yOV0gc2N0 cDogZ2V0IHNjdHBoZHIgYnkgb2Zmc2V0IGluIHNjdHBfY29tcHV0ZV9ja3N1bQoKWyBVcHN0cmVh bSBjb21taXQgMjczMTYwZmZjNmI5OTNjN2M5MTYyN2Y1YTg0Nzk5YzY2ZGZlNGRlZSBdCgpzY3Rw X2hkcihza2IpIG9ubHkgd29ya3Mgd2hlbiBza2ItPnRyYW5zcG9ydF9oZWFkZXIgaXMgc2V0IHBy b3Blcmx5LgoKQnV0IGluIE5ldGZpbHRlciwgc2tiLT50cmFuc3BvcnRfaGVhZGVyIGZvciBpcHY2 IGlzIG5vdCBndWFyYW50ZWVkCnRvIGJlIHJpZ2h0IHZhbHVlIGZvciBzY3RwaGRyLiBJdCB3b3Vs ZCBjYXVzZSB0byBmYWlsIHRvIGNoZWNrIHRoZQpjaGVja3N1bSBmb3Igc2N0cCBwYWNrZXRzLgoK U28gZml4IGl0IGJ5IHVzaW5nIG9mZnNldCwgd2hpY2ggaXMgYWx3YXlzIHJpZ2h0IGluIGFsbCBw bGFjZXMuCgp2MS0+djI6CiAgLSBGaXggdGhlIGNoYW5nZWxvZy4KCkZpeGVzOiBlNmQ4YjY0YjM0 YWEgKCJuZXQ6IHNjdHA6IGZpeCBhbmQgY29uc29saWRhdGUgU0NUUCBjaGVja3N1bW1pbmcgY29k ZSIpClJlcG9ydGVkLWJ5OiBMaSBTaHVhbmcgPHNodWFsaUByZWRoYXQuY29tPgpTaWduZWQtb2Zm LWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9zY3RwL2No ZWNrc3VtLmggfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY3RwL2NoZWNrc3VtLmggYi9pbmNsdWRl L25ldC9zY3RwL2NoZWNrc3VtLmgKaW5kZXggMzJlZTY1YTMwYWZmLi4xYzZlNmMwNzY2Y2EgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NjdHAvY2hlY2tzdW0uaAorKysgYi9pbmNsdWRlL25ldC9z Y3RwL2NoZWNrc3VtLmgKQEAgLTYxLDcgKzYxLDcgQEAgc3RhdGljIGlubGluZSBfX3dzdW0gc2N0 cF9jc3VtX2NvbWJpbmUoX193c3VtIGNzdW0sIF9fd3N1bSBjc3VtMiwKIHN0YXRpYyBpbmxpbmUg X19sZTMyIHNjdHBfY29tcHV0ZV9ja3N1bShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJ CQl1bnNpZ25lZCBpbnQgb2Zmc2V0KQogewotCXN0cnVjdCBzY3RwaGRyICpzaCA9IHNjdHBfaGRy KHNrYik7CisJc3RydWN0IHNjdHBoZHIgKnNoID0gKHN0cnVjdCBzY3RwaGRyICopKHNrYi0+ZGF0 YSArIG9mZnNldCk7CiAJY29uc3Qgc3RydWN0IHNrYl9jaGVja3N1bV9vcHMgb3BzID0gewogCQku dXBkYXRlICA9IHNjdHBfY3N1bV91cGRhdGUsCiAJCS5jb21iaW5lID0gc2N0cF9jc3VtX2NvbWJp bmUsCi0tIAoyLjIwLjEKCgpGcm9tIDZhMjBmZTlkNjE5N2Y3NzY3OTU3MGNiMDRjMTRlMTE3MWQ3 OGRmOGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGlu QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMCBNYXIgMjAxOSAxNDo0OTozOCArMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMTgvMjldIHNjdHA6IHVzZSBtZW1kdXBfdXNlciBpbnN0ZWFkIG9mIHZtZW1kdXBf dXNlcgoKWyBVcHN0cmVhbSBjb21taXQgZWY4MmJjZmE2NzFiOWE2MzViYWI1ZmE2NjkwMDU2NjNk OGIxNzdjNSBdCgpJbiBzY3RwX3NldHNvY2tvcHRfYmluZHgoKS9fX3NjdHBfc2V0c29ja29wdF9j b25uZWN0eCgpLCBpdCBhbGxvY2F0ZXMKbWVtb3J5IHdpdGggYWRkcnNfc2l6ZSB3aGljaCBpcyBw YXNzZWQgZnJvbSB1c2Vyc3BhY2UuIFdlIHVzZWQgZmxhZwpHRlBfVVNFUiB0byBwdXQgc29tZSBt b3JlIHJlc3RyaWN0aW9ucyBvbiBpdCBpbiBDb21taXQgY2FjYzA2MjE1MjcxCigic2N0cDogdXNl IEdGUF9VU0VSIGZvciB1c2VyLWNvbnRyb2xsZWQga21hbGxvYyIpLgoKSG93ZXZlciwgc2luY2Ug Q29tbWl0IGM5ODFmMjU0Y2M4MiAoInNjdHA6IHVzZSB2bWVtZHVwX3VzZXIoKSByYXRoZXIKdGhh biBiYWRseSBvcGVuLWNvZGluZyBtZW1kdXBfdXNlcigpIiksIHZtZW1kdXBfdXNlcigpIGhhcyBi ZWVuIHVzZWQsCndoaWNoIGRvZXNuJ3QgY2hlY2sgR0ZQX1VTRVIgZmxhZyB3aGVuIGdvZXMgdG8g dm1hbGxvY18qKCkuIFNvIHdoZW4KYWRkcnNfc2l6ZSBpcyBhIGh1Z2UgdmFsdWUsIGl0IGNvdWxk IGV4aGF1c3QgbWVtb3J5IGFuZCBldmVuIHRyaWdnZXIKb29tIGtpbGxlci4KClRoaXMgcGF0Y2gg aXMgdG8gdXNlIG1lbWR1cF91c2VyKCkgaW5zdGVhZCwgaW4gd2hpY2ggR0ZQX1VTRVIgd291bGQK d29yayB0byBsaW1pdCB0aGUgbWVtb3J5IGFsbG9jYXRpb24gd2l0aCBhIGh1Z2UgYWRkcnNfc2l6 ZS4KCk5vdGUgd2UgY2FuJ3QgZml4IGl0IGJ5IGxpbWl0aW5nICdhZGRyc19zaXplJywgYXMgdGhl cmUncyBubyBkZW1hbmQKZm9yIGl0IGZyb20gUkZDLgoKUmVwb3J0ZWQtYnk6IHN5emJvdCtlYzFi NzU3NWFmZWY4NWEwZTVjYUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkZpeGVzOiBjOTgxZjI1 NGNjODIgKCJzY3RwOiB1c2Ugdm1lbWR1cF91c2VyKCkgcmF0aGVyIHRoYW4gYmFkbHkgb3Blbi1j b2RpbmcgbWVtZHVwX3VzZXIoKSIpClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGlu QGdtYWlsLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvc2N0cC9zb2NrZXQuYyB8IDEyICsrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2Nr ZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IDFiMTYyNTBjNTcxOC4uOGMwMGE3ZWYxYmNk IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zb2NrZXQuYworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpA QCAtMTAxNyw3ICsxMDE3LDcgQEAgc3RhdGljIGludCBzY3RwX3NldHNvY2tvcHRfYmluZHgoc3Ry dWN0IHNvY2sgKnNrLAogCWlmICh1bmxpa2VseShhZGRyc19zaXplIDw9IDApKQogCQlyZXR1cm4g LUVJTlZBTDsKIAotCWthZGRycyA9IHZtZW1kdXBfdXNlcihhZGRycywgYWRkcnNfc2l6ZSk7CisJ a2FkZHJzID0gbWVtZHVwX3VzZXIoYWRkcnMsIGFkZHJzX3NpemUpOwogCWlmICh1bmxpa2VseShJ U19FUlIoa2FkZHJzKSkpCiAJCXJldHVybiBQVFJfRVJSKGthZGRycyk7CiAKQEAgLTEwMjUsNyAr MTAyNSw3IEBAIHN0YXRpYyBpbnQgc2N0cF9zZXRzb2Nrb3B0X2JpbmR4KHN0cnVjdCBzb2NrICpz aywKIAlhZGRyX2J1ZiA9IGthZGRyczsKIAl3aGlsZSAod2Fsa19zaXplIDwgYWRkcnNfc2l6ZSkg ewogCQlpZiAod2Fsa19zaXplICsgc2l6ZW9mKHNhX2ZhbWlseV90KSA+IGFkZHJzX3NpemUpIHsK LQkJCWt2ZnJlZShrYWRkcnMpOworCQkJa2ZyZWUoa2FkZHJzKTsKIAkJCXJldHVybiAtRUlOVkFM OwogCQl9CiAKQEAgLTEwMzYsNyArMTAzNiw3IEBAIHN0YXRpYyBpbnQgc2N0cF9zZXRzb2Nrb3B0 X2JpbmR4KHN0cnVjdCBzb2NrICpzaywKIAkJICogY2F1c2VzIHRoZSBhZGRyZXNzIGJ1ZmZlciB0 byBvdmVyZmxvdyByZXR1cm4gRUlOVkFMLgogCQkgKi8KIAkJaWYgKCFhZiB8fCAod2Fsa19zaXpl ICsgYWYtPnNvY2thZGRyX2xlbikgPiBhZGRyc19zaXplKSB7Ci0JCQlrdmZyZWUoa2FkZHJzKTsK KwkJCWtmcmVlKGthZGRycyk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCQlhZGRyY250Kys7 CkBAIC0xMDcyLDcgKzEwNzIsNyBAQCBzdGF0aWMgaW50IHNjdHBfc2V0c29ja29wdF9iaW5keChz dHJ1Y3Qgc29jayAqc2ssCiAJfQogCiBvdXQ6Ci0Ja3ZmcmVlKGthZGRycyk7CisJa2ZyZWUoa2Fk ZHJzKTsKIAogCXJldHVybiBlcnI7CiB9CkBAIC0xMzQ3LDcgKzEzNDcsNyBAQCBzdGF0aWMgaW50 IF9fc2N0cF9zZXRzb2Nrb3B0X2Nvbm5lY3R4KHN0cnVjdCBzb2NrICpzaywKIAlpZiAodW5saWtl bHkoYWRkcnNfc2l6ZSA8PSAwKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlrYWRkcnMgPSB2bWVt ZHVwX3VzZXIoYWRkcnMsIGFkZHJzX3NpemUpOworCWthZGRycyA9IG1lbWR1cF91c2VyKGFkZHJz LCBhZGRyc19zaXplKTsKIAlpZiAodW5saWtlbHkoSVNfRVJSKGthZGRycykpKQogCQlyZXR1cm4g UFRSX0VSUihrYWRkcnMpOwogCkBAIC0xMzY3LDcgKzEzNjcsNyBAQCBzdGF0aWMgaW50IF9fc2N0 cF9zZXRzb2Nrb3B0X2Nvbm5lY3R4KHN0cnVjdCBzb2NrICpzaywKIAllcnIgPSBfX3NjdHBfY29u bmVjdChzaywga2FkZHJzLCBhZGRyc19zaXplLCBmbGFncywgYXNzb2NfaWQpOwogCiBvdXRfZnJl ZToKLQlrdmZyZWUoa2FkZHJzKTsKKwlrZnJlZShrYWRkcnMpOwogCiAJcmV0dXJuIGVycjsKIH0K LS0gCjIuMjAuMQoKCkZyb20gMGUyZGVhN2E4ZWFmMzQ3Yzk4MmFlZjhkNGY5ODdhMDMyMmE1NjJm ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpEYXRlOiBUdWUsIDE5IE1hciAyMDE5IDA1OjQ1OjM1IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAxOS8yOV0gdGNwOiBkbyBub3QgdXNlIGlwdjYgaGVhZGVyIGZvciBpcHY0IGZsb3cK ClsgVXBzdHJlYW0gY29tbWl0IDg5ZTQxMzA5MzlhMjAzMDRmNDA1OWFiNzIxNzlkYTgxZjUzNDc1 MjggXQoKV2hlbiBhIGR1YWwgc3RhY2sgdGNwIGxpc3RlbmVyIGFjY2VwdHMgYW4gaXB2NCBmbG93 LAppdCBzaG91bGQgbm90IGF0dGVtcHQgdG8gdXNlIGFuIGlwdjYgaGVhZGVyIG9yIHRjcF92Nl9p aWYoKSBoZWxwZXIuCgpGaXhlczogMTM5N2VkMzVmMjJkICgiaXB2NjogYWRkIGZsb3dpbmZvIGZv ciB0Y3A2IHBrdF9vcHRpb25zIGZvciBhbGwgY2FzZXMiKQpGaXhlczogZGYzNjg3ZmZjNjY1ICgi aXB2NjogYWRkIHRoZSBJUFY2X0ZMX0ZfUkVGTEVDVCBmbGFnIHRvIElQVjZfRkxfQV9HRVQiKQpG aXhlczogMWRhMTc3ZTRjM2Y0ICgiTGludXgtMi42LjEyLXJjMiIpClNpZ25lZC1vZmYtYnk6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3RjcF9pcHY2LmMgfCA4 ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5j CmluZGV4IDAzZTZiN2EyYmM1My4uZTdjZGZhOTJjMzgyIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni90 Y3BfaXB2Ni5jCisrKyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKQEAgLTExMDgsMTEgKzExMDgsMTEg QEAgc3RhdGljIHN0cnVjdCBzb2NrICp0Y3BfdjZfc3luX3JlY3Zfc29jayhjb25zdCBzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICoKIAkJbmV3bnAtPmlwdjZfZmxfbGlzdCA9IE5VTEw7 CiAJCW5ld25wLT5wa3RvcHRpb25zICA9IE5VTEw7CiAJCW5ld25wLT5vcHQJICAgPSBOVUxMOwot CQluZXducC0+bWNhc3Rfb2lmICAgPSB0Y3BfdjZfaWlmKHNrYik7Ci0JCW5ld25wLT5tY2FzdF9o b3BzICA9IGlwdjZfaGRyKHNrYiktPmhvcF9saW1pdDsKLQkJbmV3bnAtPnJjdl9mbG93aW5mbyA9 IGlwNl9mbG93aW5mbyhpcHY2X2hkcihza2IpKTsKKwkJbmV3bnAtPm1jYXN0X29pZiAgID0gaW5l dF9paWYoc2tiKTsKKwkJbmV3bnAtPm1jYXN0X2hvcHMgID0gaXBfaGRyKHNrYiktPnR0bDsKKwkJ bmV3bnAtPnJjdl9mbG93aW5mbyA9IDA7CiAJCWlmIChucC0+cmVwZmxvdykKLQkJCW5ld25wLT5m bG93X2xhYmVsID0gaXA2X2Zsb3dsYWJlbChpcHY2X2hkcihza2IpKTsKKwkJCW5ld25wLT5mbG93 X2xhYmVsID0gMDsKIAogCQkvKgogCQkgKiBObyBuZWVkIHRvIGNoYXJnZSB0aGlzIHNvY2sgdG8g dGhlIHJlbGV2YW50IElQdjYgcmVmY250IGRlYnVnIHNvY2tzIGNvdW50Ci0tIAoyLjIwLjEKCgpG cm9tIGQxYjE0OWZiMTM2ZDk5NWRhMGFkYTdjZWEwNzNjMjhhMjNhMDU4OTYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEVyaWsgSHVnbmUgPGVyaWsuaHVnbmVAZ21haWwuY29tPgpEYXRl OiBTdW4sIDE3IE1hciAyMDE5IDE4OjQ2OjQyICswMTAwClN1YmplY3Q6IFtQQVRDSCAyMC8yOV0g dGlwYzogYWxsb3cgc2VydmljZSByYW5nZXMgdG8gYmUgY29ubmVjdCgpJ2VkIG9uCiBSRE0vREdS QU0KClsgVXBzdHJlYW0gY29tbWl0IGVhMjM5MzE0ZmU0MmFjZTg4MGJkZDgzNDI1NjgzNDY3OTM0 NmM4MGUgXQoKV2UgbW92ZSB0aGUgY2hlY2sgdGhhdCBwcmV2ZW50cyBjb25uZWN0aW5nIHNlcnZp Y2UgcmFuZ2VzIHRvIGFmdGVyCnRoZSBSRE0vREdSQU0gY2hlY2ssIGFuZCBtb3ZlIGFkZHJlc3Mg c2FuaXR5IGNvbnRyb2wgdG8gYSBzZXBhcmF0ZQpmdW5jdGlvbiB0aGF0IGFsc28gdmFsaWRhdGVz IHRoZSBzZXJ2aWNlIHJhbmdlLgoKRml4ZXM6IDIzOTk4ODM1YmU5OCAoInRpcGM6IGltcHJvdmUg YWRkcmVzcyBzYW5pdHkgY2hlY2sgaW4gdGlwY19jb25uZWN0KCkiKQpTaWduZWQtb2ZmLWJ5OiBF cmlrIEh1Z25lIDxlcmlrLmh1Z25lQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9uIE1hbG95 IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvc29ja2V0LmMgfCAyMCArKysrKysr KysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQu YwppbmRleCA4OGMzMDdlZjEzMTguLjY3YTdiMzEyYTQ5OSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMv c29ja2V0LmMKKysrIGIvbmV0L3RpcGMvc29ja2V0LmMKQEAgLTIzMTAsNiArMjMxMCwxNiBAQCBz dGF0aWMgaW50IHRpcGNfd2FpdF9mb3JfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBsb25n ICp0aW1lb19wKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgYm9vbCB0aXBjX3NvY2thZGRyX2lz X3NhbmUoc3RydWN0IHNvY2thZGRyX3RpcGMgKmFkZHIpCit7CisJaWYgKGFkZHItPmZhbWlseSAh PSBBRl9USVBDKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKGFkZHItPmFkZHJ0eXBlID09IFRJUENf U0VSVklDRV9SQU5HRSkKKwkJcmV0dXJuIChhZGRyLT5hZGRyLm5hbWVzZXEubG93ZXIgPD0gYWRk ci0+YWRkci5uYW1lc2VxLnVwcGVyKTsKKwlyZXR1cm4gKGFkZHItPmFkZHJ0eXBlID09IFRJUENf U0VSVklDRV9BRERSIHx8CisJCWFkZHItPmFkZHJ0eXBlID09IFRJUENfU09DS0VUX0FERFIpOwor fQorCiAvKioKICAqIHRpcGNfY29ubmVjdCAtIGVzdGFibGlzaCBhIGNvbm5lY3Rpb24gdG8gYW5v dGhlciBUSVBDIHBvcnQKICAqIEBzb2NrOiBzb2NrZXQgc3RydWN0dXJlCkBAIC0yMzQ1LDE4ICsy MzU1LDE4IEBAIHN0YXRpYyBpbnQgdGlwY19jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0 cnVjdCBzb2NrYWRkciAqZGVzdCwKIAkJaWYgKCF0aXBjX3NrX3R5cGVfY29ubmVjdGlvbmxlc3Mo c2spKQogCQkJcmVzID0gLUVJTlZBTDsKIAkJZ290byBleGl0OwotCX0gZWxzZSBpZiAoZHN0LT5m YW1pbHkgIT0gQUZfVElQQykgewotCQlyZXMgPSAtRUlOVkFMOwogCX0KLQlpZiAoZHN0LT5hZGRy dHlwZSAhPSBUSVBDX0FERFJfSUQgJiYgZHN0LT5hZGRydHlwZSAhPSBUSVBDX0FERFJfTkFNRSkK KwlpZiAoIXRpcGNfc29ja2FkZHJfaXNfc2FuZShkc3QpKSB7CiAJCXJlcyA9IC1FSU5WQUw7Ci0J aWYgKHJlcykKIAkJZ290byBleGl0OwotCisJfQogCS8qIERHUkFNL1JETSBjb25uZWN0KCksIGp1 c3Qgc2F2ZSB0aGUgZGVzdGFkZHIgKi8KIAlpZiAodGlwY19za190eXBlX2Nvbm5lY3Rpb25sZXNz KHNrKSkgewogCQltZW1jcHkoJnRzay0+cGVlciwgZGVzdCwgZGVzdGxlbik7CiAJCWdvdG8gZXhp dDsKKwl9IGVsc2UgaWYgKGRzdC0+YWRkcnR5cGUgPT0gVElQQ19TRVJWSUNFX1JBTkdFKSB7CisJ CXJlcyA9IC1FSU5WQUw7CisJCWdvdG8gZXhpdDsKIAl9CiAKIAlwcmV2aW91cyA9IHNrLT5za19z dGF0ZTsKLS0gCjIuMjAuMQoKCkZyb20gYTc3OWYxMTA5MzEzMmI0NTVjYTFjNmViOGEyNmVjZDY1 OGVkNzYwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54 aW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDI0IE1hciAyMDE5IDAwOjQ4OjIyICswODAwClN1Ympl Y3Q6IFtQQVRDSCAyMS8yOV0gdGlwYzogY2hhbmdlIHRvIGNoZWNrIHRpcGNfb3duX2lkIHRvIHJl dHVybiBpbgogdGlwY19uZXRfc3RvcAoKWyBVcHN0cmVhbSBjb21taXQgOTkyNmNiNWY4YjBmMGFl YTUzNTczNTE4NTYwMGQ3NGRiNzYwODU1MCBdCgpXaGVuIHJ1bm5pbmcgYSBzeXogc2NyaXB0LCBh IHBhbmljIG9jY3VycmVkOgoKWyAgMTU2LjA4ODIyOF0gQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZy ZWUgaW4gdGlwY19kaXNjX3RpbWVvdXQrMHg5YzkvMHhiMjAgW3RpcGNdClsgIDE1Ni4wOTQzMTVd IENhbGwgVHJhY2U6ClsgIDE1Ni4wOTQ4NDRdICA8SVJRPgpbICAxNTYuMDk1MzA2XSAgZHVtcF9z dGFjaysweDdjLzB4YzAKWyAgMTU2LjA5NzM0Nl0gIHByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24r MHg2NS8weDIyZQpbICAxNTYuMTAwNDQ1XSAga2FzYW5fcmVwb3J0LmNvbGQuMysweDM3LzB4N2EK WyAgMTU2LjEwMjQwMl0gIHRpcGNfZGlzY190aW1lb3V0KzB4OWM5LzB4YjIwIFt0aXBjXQpbICAx NTYuMTA2NTE3XSAgY2FsbF90aW1lcl9mbisweDE5YS8weDYxMApbICAxNTYuMTEyNzQ5XSAgcnVu X3RpbWVyX3NvZnRpcnErMHhiNTEvMHgxMDkwCgpJdCB3YXMgY2F1c2VkIGJ5IHRoZSBuZXRucyBm cmVlZCB3aXRob3V0IGRlbGV0aW5nIHRoZSBkaXNjb3ZlcmVyIHRpbWVyLAp3aGlsZSBsYXRlciBv biB0aGUgbmV0bnMgd291bGQgYmUgYWNjZXNzZWQgaW4gdGhlIHRpbWVyIGhhbmRsZXIuCgpUaGUg dGltZXIgc2hvdWxkIGhhdmUgYmVlbiBkZWxldGVkIGJ5IHRpcGNfbmV0X3N0b3AoKSB3aGVuIGNs ZWFuaW5nIHVwIGEKbmV0bnMuIEhvd2V2ZXIsIHRpcGMgaGFzIGJlZW4gYWJsZSB0byBlbmFibGUg YSBiZWFyZXIgYW5kIHN0YXJ0IGQtPnRpbWVyCndpdGhvdXQgdGhlIGxvY2FsIG5vZGVfYWRkciBz ZXQgc2luY2UgQ29tbWl0IDUyZGZhZTVjODVhNCAoInRpcGM6IG9idGFpbgpub2RlIGlkZW50aXR5 IGZyb20gaW50ZXJmYWNlIGJ5IGRlZmF1bHQiKSwgd2hpY2ggY2F1c2VkIHRoZSB0aW1lciBub3Qg dG8KYmUgZGVsZXRlZCBpbiB0aXBjX25ldF9zdG9wKCkgdGhlbi4KClNvIGZpeCBpdCBpbiB0aXBj X25ldF9zdG9wKCkgYnkgY2hhbmdpbmcgdG8gY2hlY2sgbG9jYWwgbm9kZV9pZCBpbnN0ZWFkCm9m IGxvY2FsIG5vZGVfYWRkciwgYXMgSm9uIHN1Z2dlc3RlZC4KCldoaWxlIGF0IGl0LCByZW1vdmUg dGhlIGNhbGxpbmcgb2YgdGlwY19uYW1ldGJsX3dpdGhkcmF3KCkgdGhlcmUsIHNpbmNlCnRpcGNf bmFtZXRibF9zdG9wKCkgd2lsbCB0YWtlIG9mIHRoZSBuYW1ldGJsJ3MgZnJlZWluZyBhZnRlci4K CkZpeGVzOiA1MmRmYWU1Yzg1YTQgKCJ0aXBjOiBvYnRhaW4gbm9kZSBpZGVudGl0eSBmcm9tIGlu dGVyZmFjZSBieSBkZWZhdWx0IikKUmVwb3J0ZWQtYnk6IHN5emJvdCthMjUzMDdhZDA5OTMwOWYx YzJiOUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxs dWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2 ZXIuY29tPgpBY2tlZC1ieTogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3RpcGMvbmV0LmMgfCA1ICstLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmV0LmMgYi9uZXQvdGlwYy9uZXQu YwppbmRleCBmMDc2ZWRiNzQzMzguLjdjZTFlODZiMDI0ZiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMv bmV0LmMKKysrIGIvbmV0L3RpcGMvbmV0LmMKQEAgLTE2MywxMiArMTYzLDkgQEAgdm9pZCB0aXBj X3NjaGVkX25ldF9maW5hbGl6ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyKQogCiB2b2lkIHRp cGNfbmV0X3N0b3Aoc3RydWN0IG5ldCAqbmV0KQogewotCXUzMiBzZWxmID0gdGlwY19vd25fYWRk cihuZXQpOwotCi0JaWYgKCFzZWxmKQorCWlmICghdGlwY19vd25faWQobmV0KSkKIAkJcmV0dXJu OwogCi0JdGlwY19uYW1ldGJsX3dpdGhkcmF3KG5ldCwgVElQQ19DRkdfU1JWLCBzZWxmLCBzZWxm LCBzZWxmKTsKIAlydG5sX2xvY2soKTsKIAl0aXBjX2JlYXJlcl9zdG9wKG5ldCk7CiAJdGlwY19u b2RlX3N0b3AobmV0KTsKLS0gCjIuMjAuMQoKCkZyb20gOGQ4Yzk3ZDUzZjJhMDI1MWVmN2EwNDU2 NmJlYTY4OGQ3M2I3ZGRkMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpayBIdWdu ZSA8ZXJpay5odWduZUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjEgTWFyIDIwMTkgMDk6MTE6NTkg KzAxMDAKU3ViamVjdDogW1BBVENIIDIyLzI5XSB0aXBjOiBmaXggY2FuY2VsbGF0aW9uIG9mIHRv cG9sb2d5IHN1YnNjcmlwdGlvbnMKClsgVXBzdHJlYW0gY29tbWl0IDMzODcyZDc5ZjVkMWNiZWRh YWFiNzk2NjljYzM4ZjE2MDk3YTk0NTAgXQoKV2hlbiBjYW5jZWxsaW5nIGEgc3Vic2NyaXB0aW9u LCB3ZSBoYXZlIHRvIGNsZWFyIHRoZSBjYW5jZWwgYml0IGluIHRoZQpyZXF1ZXN0IGJlZm9yZSBp dGVyYXRpbmcgb3ZlciBhbnkgZXN0YWJsaXNoZWQgc3Vic2NyaXB0aW9ucyB3aXRoIG1lbWNtcC4K T3RoZXJ3aXNlIG5vIHN1YnNjcmlwdGlvbiB3aWxsIGV2ZXIgYmUgZm91bmQsIGFuZCBpdCB3aWxs IG5vdCBiZQpwb3NzaWJsZSB0byBleHBsaWNpdGx5IHVuc3Vic2NyaWJlIGluZGl2aWR1YWwgc3Vi c2NyaXB0aW9ucy4KCkZpeGVzOiA4OTg1ZWNjN2MxZTAgKCJ0aXBjOiBzaW1wbGlmeSBlbmRpYW5u ZXNzIGhhbmRsaW5nIGluIHRvcG9sb2d5IHN1YnNjcmliZXIiKQpTaWduZWQtb2ZmLWJ5OiBFcmlr IEh1Z25lIDxlcmlrLmh1Z25lQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9uIE1hbG95IDxq b24ubWFsb3lAZXJpY3Nzb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvdG9wc3J2LmMgfCAxICsKIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL3RvcHNydi5jIGIv bmV0L3RpcGMvdG9wc3J2LmMKaW5kZXggZDY1ZWVkODhjNDk1Li4yMzAxYjA5ZGYyMzQgMTAwNjQ0 Ci0tLSBhL25ldC90aXBjL3RvcHNydi5jCisrKyBiL25ldC90aXBjL3RvcHNydi5jCkBAIC0zNzEs NiArMzcxLDcgQEAgc3RhdGljIGludCB0aXBjX2Nvbm5fcmN2X3N1YihzdHJ1Y3QgdGlwY190b3Bz cnYgKnNydiwKIAlzdHJ1Y3QgdGlwY19zdWJzY3JpcHRpb24gKnN1YjsKIAogCWlmICh0aXBjX3N1 Yl9yZWFkKHMsIGZpbHRlcikgJiBUSVBDX1NVQl9DQU5DRUwpIHsKKwkJcy0+ZmlsdGVyICY9IF9f Y29uc3RhbnRfbnRvaGwoflRJUENfU1VCX0NBTkNFTCk7CiAJCXRpcGNfY29ubl9kZWxldGVfc3Vi KGNvbiwgcyk7CiAJCXJldHVybiAwOwogCX0KLS0gCjIuMjAuMQoKCkZyb20gMGM0M2Y4NTlkMDI4 NzNjOTQ1OGE0M2JkM2MzYzk5MzRkNmZjN2ZhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDE0IE1hciAy MDE5IDIwOjE5OjQ3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMy8yOV0gdHVuOiBwcm9wZXJseSB0 ZXN0IGZvciBJRkZfVVAKClsgVXBzdHJlYW0gY29tbWl0IDQ0NzcxMzhmYTBhZTRlMWI2OTk3ODZl ZjA2MDA4NjNlYTZlNmM2MWMgXQoKU2FtZSByZWFzb25zIHRoYW4gdGhlIG9uZXMgZXhwbGFpbmVk IGluIGNvbW1pdCA0MTc5Y2I1YTRjOTIKKCJ2eGxhbjogdGVzdCBkZXYtPmZsYWdzICYgSUZGX1VQ IGJlZm9yZSBjYWxsaW5nIG5ldGlmX3J4KCkiKQoKbmV0aWZfcnhfbmkoKSBvciBuYXBpX2dyb19m cmFncygpIG11c3QgYmUgY2FsbGVkIHVuZGVyIGEgc3RyaWN0IGNvbnRyYWN0LgoKQXQgZGV2aWNl IGRpc21hbnRsZSBwaGFzZSwgY29yZSBuZXR3b3JraW5nIGNsZWFycyBJRkZfVVAKYW5kIGZsdXNo X2FsbF9iYWNrbG9ncygpIGlzIGNhbGxlZCBhZnRlciByY3UgZ3JhY2UgcGVyaW9kCnRvIG1ha2Ug c3VyZSBubyBpbmNvbWluZyBwYWNrZXQgbWlnaHQgYmUgaW4gYSBjcHUgYmFja2xvZwphbmQgc3Rp bGwgcmVmZXJlbmNpbmcgdGhlIGRldmljZS4KCkEgc2ltaWxhciBwcm90b2NvbCBpcyB1c2VkIGZv ciBncm8gbGF5ZXIuCgpNb3N0IGRyaXZlcnMgY2FsbCBuZXRpZl9yeCgpIGZyb20gdGhlaXIgaW50 ZXJydXB0IGhhbmRsZXIsCmFuZCBzaW5jZSB0aGUgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgYXQg ZGV2aWNlIGRpc21hbnRsZSwKbmV0aWZfcngoKSBkb2VzIG5vdCBoYXZlIHRvIGNoZWNrIGRldi0+ ZmxhZ3MgJiBJRkZfVVAKClZpcnR1YWwgZHJpdmVycyBkbyBub3QgaGF2ZSB0aGlzIGd1YXJhbnRl ZSwgYW5kIG11c3QKdGhlcmVmb3JlIG1ha2UgdGhlIGNoZWNrIHRoZW1zZWx2ZXMuCgpGaXhlczog MWJkNDk3OGE4OGFjICgidHVuOiBob25vciBJRkZfVVAgaW4gdHVuX2dldF91c2VyKCkiKQpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5 OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdHVuLmMg fCAxNSArKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1bi5jIGIvZHJpdmVycy9u ZXQvdHVuLmMKaW5kZXggZjMyOTMzNTVjNzg0Li43NmRkODU4MGUyODcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L3R1bi5jCisrKyBiL2RyaXZlcnMvbmV0L3R1bi5jCkBAIC0xNzE4LDkgKzE3MTgs NiBAQCBzdGF0aWMgc3NpemVfdCB0dW5fZ2V0X3VzZXIoc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwg c3RydWN0IHR1bl9maWxlICp0ZmlsZSwKIAlpbnQgc2tiX3hkcCA9IDE7CiAJYm9vbCBmcmFncyA9 IHR1bl9uYXBpX2ZyYWdzX2VuYWJsZWQodGZpbGUpOwogCi0JaWYgKCEodHVuLT5kZXYtPmZsYWdz ICYgSUZGX1VQKSkKLQkJcmV0dXJuIC1FSU87Ci0KIAlpZiAoISh0dW4tPmZsYWdzICYgSUZGX05P X1BJKSkgewogCQlpZiAobGVuIDwgc2l6ZW9mKHBpKSkKIAkJCXJldHVybiAtRUlOVkFMOwpAQCAt MTgyMiw2ICsxODE5LDggQEAgc3RhdGljIHNzaXplX3QgdHVuX2dldF91c2VyKHN0cnVjdCB0dW5f c3RydWN0ICp0dW4sIHN0cnVjdCB0dW5fZmlsZSAqdGZpbGUsCiAJCQllcnIgPSBza2JfY29weV9k YXRhZ3JhbV9mcm9tX2l0ZXIoc2tiLCAwLCBmcm9tLCBsZW4pOwogCiAJCWlmIChlcnIpIHsKKwkJ CWVyciA9IC1FRkFVTFQ7Citkcm9wOgogCQkJdGhpc19jcHVfaW5jKHR1bi0+cGNwdV9zdGF0cy0+ cnhfZHJvcHBlZCk7CiAJCQlrZnJlZV9za2Ioc2tiKTsKIAkJCWlmIChmcmFncykgewpAQCAtMTgy OSw3ICsxODI4LDcgQEAgc3RhdGljIHNzaXplX3QgdHVuX2dldF91c2VyKHN0cnVjdCB0dW5fc3Ry dWN0ICp0dW4sIHN0cnVjdCB0dW5fZmlsZSAqdGZpbGUsCiAJCQkJbXV0ZXhfdW5sb2NrKCZ0Zmls ZS0+bmFwaV9tdXRleCk7CiAJCQl9CiAKLQkJCXJldHVybiAtRUZBVUxUOworCQkJcmV0dXJuIGVy cjsKIAkJfQogCX0KIApAQCAtMTkxMyw2ICsxOTEyLDEyIEBAIHN0YXRpYyBzc2l6ZV90IHR1bl9n ZXRfdXNlcihzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLCBzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxlLAog CSAgICAhdGZpbGUtPmRldGFjaGVkKQogCQlyeGhhc2ggPSBfX3NrYl9nZXRfaGFzaF9zeW1tZXRy aWMoc2tiKTsKIAorCXJjdV9yZWFkX2xvY2soKTsKKwlpZiAodW5saWtlbHkoISh0dW4tPmRldi0+ ZmxhZ3MgJiBJRkZfVVApKSkgeworCQllcnIgPSAtRUlPOworCQlnb3RvIGRyb3A7CisJfQorCiAJ aWYgKGZyYWdzKSB7CiAJCS8qIEV4ZXJjaXNlIGZsb3cgZGlzc2VjdG9yIGNvZGUgcGF0aC4gKi8K IAkJdTMyIGhlYWRsZW4gPSBldGhfZ2V0X2hlYWRsZW4oc2tiLT5kYXRhLCBza2JfaGVhZGxlbihz a2IpKTsKQEAgLTE5MjAsNiArMTkyNSw3IEBAIHN0YXRpYyBzc2l6ZV90IHR1bl9nZXRfdXNlcihz dHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLCBzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxlLAogCQlpZiAodW5s aWtlbHkoaGVhZGxlbiA+IHNrYl9oZWFkbGVuKHNrYikpKSB7CiAJCQl0aGlzX2NwdV9pbmModHVu LT5wY3B1X3N0YXRzLT5yeF9kcm9wcGVkKTsKIAkJCW5hcGlfZnJlZV9mcmFncygmdGZpbGUtPm5h cGkpOworCQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCQltdXRleF91bmxvY2soJnRmaWxlLT5uYXBp X211dGV4KTsKIAkJCVdBUk5fT04oMSk7CiAJCQlyZXR1cm4gLUVOT01FTTsKQEAgLTE5NDcsNiAr MTk1Myw3IEBAIHN0YXRpYyBzc2l6ZV90IHR1bl9nZXRfdXNlcihzdHJ1Y3QgdHVuX3N0cnVjdCAq dHVuLCBzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxlLAogCX0gZWxzZSB7CiAJCW5ldGlmX3J4X25pKHNr Yik7CiAJfQorCXJjdV9yZWFkX3VubG9jaygpOwogCiAJc3RhdHMgPSBnZXRfY3B1X3B0cih0dW4t PnBjcHVfc3RhdHMpOwogCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnN0YXRzLT5zeW5jcCk7Ci0t IAoyLjIwLjEKCgpGcm9tIDc3NmZlMTIxYzMwMDg0YmExMDgwOWY1NjA5YThlOGQ4YjEzZWE2OTAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5 c25haWwubmV0PgpEYXRlOiBUdWUsIDI2IE1hciAyMDE5IDE4OjIyOjE2ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAyNC8yOV0gdnJmOiBwcmV2ZW50IGFkZGluZyB1cHBlciBkZXZpY2VzCgpbIFVwc3Ry ZWFtIGNvbW1pdCAxMDE3ZTA5ODcxMTdjMzI3ODNiYTdjMTBmZTJlN2ZmMTQ1NmJhMWRjIF0KClZS RiBkZXZpY2VzIGRvbid0IHdvcmsgd2l0aCB1cHBlciBkZXZpY2VzLiBDdXJyZW50bHksIGl0J3Mg cG9zc2libGUgdG8KYWRkIGEgVlJGIGRldmljZSB0byBhIGJyaWRnZSBvciB0ZWFtLCBhbmQgdG8g Y3JlYXRlIG1hY3ZsYW4sIG1hY3NlYywgb3IKaXB2bGFuIGRldmljZXMgb24gdG9wIG9mIGEgVlJG IChib25kIGFuZCB2bGFuIGFyZSBwcmV2ZW50ZWQgcmVzcGVjdGl2ZWx5CmJ5IHRoZSBsYWNrIG9m IGFuIG5kb19zZXRfbWFjX2FkZHJlc3Mgb3AgYW5kIHRoZSBORVRJRl9GX1ZMQU5fQ0hBTExFTkdF RApmZWF0dXJlIGZsYWcpLgoKRml4IHRoaXMgYnkgc2V0dGluZyB0aGUgSUZGX05PX1JYX0hBTkRM RVIgZmxhZyAoaW50cm9kdWNlZCBpbiBjb21taXQKZjU0MjYyNTBhNmVjICgibmV0OiBpbnRyb2R1 Y2UgSUZGX05PX1JYX0hBTkRMRVIiKSkuCgpDYzogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwu Y29tPgpGaXhlczogMTkzMTI1ZGJkOGViICgibmV0OiBJbnRyb2R1Y2UgVlJGIGRldmljZSBkcml2 ZXIiKQpTaWduZWQtb2ZmLWJ5OiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4K QWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3Zy Zi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC92cmYuYyBiL2RyaXZlcnMvbmV0L3ZyZi5jCmluZGV4IGY5MzU0N2YyNTdmYi4u NDQ5ZmM1MmY5YTg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92cmYuYworKysgYi9kcml2ZXJz L25ldC92cmYuYwpAQCAtMTI2Miw2ICsxMjYyLDcgQEAgc3RhdGljIHZvaWQgdnJmX3NldHVwKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKIAkvKiBkZWZhdWx0IHRvIG5vIHFkaXNjOyB1c2VyIGNh biBhZGQgaWYgZGVzaXJlZCAqLwogCWRldi0+cHJpdl9mbGFncyB8PSBJRkZfTk9fUVVFVUU7CisJ ZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9OT19SWF9IQU5ETEVSOwogfQogCiBzdGF0aWMgaW50IHZy Zl92YWxpZGF0ZShzdHJ1Y3QgbmxhdHRyICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10sCi0t IAoyLjIwLjEKCgpGcm9tIDY2MDkyYTY5YjIwYjc1MDQxOGU4YTliMzA5ZmRhNzZiMjgzN2I2NjUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFpoaXFpYW5nIExpdSA8bGl1emhpcWlhbmcy NkBodWF3ZWkuY29tPgpEYXRlOiBTYXQsIDE2IE1hciAyMDE5IDE3OjAyOjU0ICswODAwClN1Ympl Y3Q6IFtQQVRDSCAyNS8yOV0gdnhsYW46IERvbid0IGNhbGwgZ3JvX2NlbGxzX2Rlc3Ryb3koKSBi ZWZvcmUgZGV2aWNlIGlzCiB1bnJlZ2lzdGVyZWQKClsgVXBzdHJlYW0gY29tbWl0IGNjNDgwN2Ji NjA5MjMwZDg5NTlmZDczMmIwYmYzYmQ0YzJkZThlYWMgXQoKQ29tbWl0IGFkNmM5OTg2YmNiNjIg KCJ2eGxhbjogRml4IEdSTyBjZWxscyByYWNlIGNvbmRpdGlvbiBiZXR3ZWVuCnJlY2VpdmUgYW5k IGxpbmsgZGVsZXRlIikgZml4ZWQgYSByYWNlIGNvbmRpdGlvbiBmb3IgdGhlIHR5cGljYWwgY2Fz ZSBhIHZ4bGFuCmRldmljZSBpcyBkaXNtYW50bGVkIGZyb20gdGhlIGN1cnJlbnQgbmV0bnMuIEJ1 dCBpZiBhIG5ldG5zIGlzIGRpc21hbnRsZWQsCnZ4bGFuX2Rlc3Ryb3lfdHVubmVscygpIGlzIGNh bGxlZCB0byBzY2hlZHVsZSBhIHVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKCkKb2YgYWxsIHRo ZSB2eGxhbiB0dW5uZWxzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBuZXRucy4KCkluIHZ4bGFu X2Rlc3Ryb3lfdHVubmVscygpLCBncm9fY2VsbHNfZGVzdHJveSgpIGlzIGNhbGxlZCBhbmQgZmlu aXNoZWQgYmVmb3JlCnVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKCkuIFRoaXMgbWVhbnMgdGhh dCB0aGUgZ3JvX2NlbGxzX2Rlc3Ryb3koKSBjYWxsIGlzCmRvbmUgdG9vIHNvb24sIGZvciB0aGUg c2FtZSByZWFzb25zIGV4cGxhaW5lZCBpbiBhYm92ZSBjb21taXQuCgpTbyB3ZSBuZWVkIHRvIGZ1 bGx5IHJlc3BlY3QgdGhlIFJDVSBydWxlcywgYW5kIHRodXMgbXVzdCByZW1vdmUgdGhlCmdyb19j ZWxsc19kZXN0cm95KCkgY2FsbCBvciByaXNrIHVzZSBhZnRlci1mcmVlLgoKRml4ZXM6IDU4Y2Uz MWNjYTFmZiAoInZ4bGFuOiBHUk8gc3VwcG9ydCBhdCB0dW5uZWwgbGF5ZXIiKQpTaWduZWQtb2Zm LWJ5OiBTdWFubWluZy5Nb3UgPG1vdXN1YW5taW5nQGh1YXdlaS5jb20+ClN1Z2dlc3RlZC1ieTog RXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogU3RlZmFu byBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IFpoaXFpYW5nIExpdSA8 bGl1emhpcWlhbmcyNkBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyB8IDQgKy0tLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMgYi9kcml2ZXJzL25ldC92eGxhbi5jCmluZGV4IDUyMzg3 ZjdmMTJlZC4uMGIxZWM0NGFjYmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxhbi5jCisr KyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTM3OTgsMTAgKzM3OTgsOCBAQCBzdGF0aWMgdm9p ZCB2eGxhbl9kZXN0cm95X3R1bm5lbHMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbGlzdF9oZWFk ICpoZWFkKQogCQkvKiBJZiB2eGxhbi0+ZGV2IGlzIGluIHRoZSBzYW1lIG5ldG5zLCBpdCBoYXMg YWxyZWFkeSBiZWVuIGFkZGVkCiAJCSAqIHRvIHRoZSBsaXN0IGJ5IHRoZSBwcmV2aW91cyBsb29w LgogCQkgKi8KLQkJaWYgKCFuZXRfZXEoZGV2X25ldCh2eGxhbi0+ZGV2KSwgbmV0KSkgewotCQkJ Z3JvX2NlbGxzX2Rlc3Ryb3koJnZ4bGFuLT5ncm9fY2VsbHMpOworCQlpZiAoIW5ldF9lcShkZXZf bmV0KHZ4bGFuLT5kZXYpLCBuZXQpKQogCQkJdW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUodnhs YW4tPmRldiwgaGVhZCk7Ci0JCX0KIAl9CiAKIAlmb3IgKGggPSAwOyBoIDwgUE9SVF9IQVNIX1NJ WkU7ICsraCkKLS0gCjIuMjAuMQoKCkZyb20gMzhiMzQ3OTAwMzNiMTgwMGY3NmRiYzhlOGMxMGI2 ZTE1MmE2ZGI1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVyYmVydCBYdSA8aGVy YmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpEYXRlOiBUdWUsIDI2IE1hciAyMDE5IDEzOjUwOjE0 ICswODAwClN1YmplY3Q6IFtQQVRDSCAyNi8yOV0gaWxhOiBGaXggcmhhc2h0YWJsZSB3YWxrZXIg bGlzdCBjb3JydXB0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBiNWY5YmQxNWI4ODU2M2I1NWE5OWVk NTg4NDE2ODgxMzY3YTBjZTVmIF0KCmlsYV94bGF0X25sX2NtZF9mbHVzaCB1c2VzIHJoYXNodGFi bGUgd2Fsa2VycyBhbGxvY2F0ZWQgZnJvbSB0aGUKc3RhY2sgYnV0IGl0IG5ldmVyIGZyZWVzIHRo ZW0uICBUaGlzIGNvcnJ1cHRzIHRoZSB3YWxrZXIgbGlzdCBvZgp0aGUgaGFzaCB0YWJsZS4KClRo aXMgcGF0Y2ggZml4ZXMgaXQuCgpSZXBvcnRlZC1ieTogc3l6Ym90K2RhZTcyYTExMjMzNGFhNjVh MTU5QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KRml4ZXM6IGI2ZTcxYmRlYmIxMiAoImlsYTog Rmx1c2ggbmV0bGluayBjb21tYW5kIHRvIGNsZWFyIHhsYXQuLi4iKQpTaWduZWQtb2ZmLWJ5OiBI ZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pbGEvaWxh X3hsYXQuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjYvaWxhL2lsYV94bGF0LmMgYi9uZXQvaXB2Ni9pbGEvaWxhX3hsYXQuYwppbmRl eCAxN2M0NTVmZjY5ZmYuLjc4NThmYTllYTEwMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaWxhL2ls YV94bGF0LmMKKysrIGIvbmV0L2lwdjYvaWxhL2lsYV94bGF0LmMKQEAgLTQyMCw2ICs0MjAsNyBA QCBpbnQgaWxhX3hsYXRfbmxfY21kX2ZsdXNoKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBn ZW5sX2luZm8gKmluZm8pCiAKIGRvbmU6CiAJcmhhc2h0YWJsZV93YWxrX3N0b3AoJml0ZXIpOwor CXJoYXNodGFibGVfd2Fsa19leGl0KCZpdGVyKTsKIAlyZXR1cm4gcmV0OwogfQogCi0tIAoyLjIw LjEKCgpGcm9tIDc4ZjA3NjkxMzI1NzVhMTRmYjBkMWY2Zjc4ZmQ4NDM4MzBjOTZmYjMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gSHVybGV5IDxqb2huLmh1cmxleUBuZXRyb25v bWUuY29tPgpEYXRlOiBGcmksIDIyIE1hciAyMDE5IDEyOjM3OjM1ICswMDAwClN1YmplY3Q6IFtQ QVRDSCAyNy8yOV0gbmV0OiBzY2hlZDogZml4IGNsZWFudXAgTlVMTCBwb2ludGVyIGV4Y2VwdGlv biBpbgogYWN0X21pcnIKClsgVXBzdHJlYW0gY29tbWl0IDA2NGM1ZDY4ODFlODk3MDc3NjM5ZTA0 OTczZGUyNjQ0MGVlMjA1ZTYgXQoKQSBuZXcgbWlycmVkIGFjdGlvbiBpcyBjcmVhdGVkIGJ5IHRo ZSB0Y2ZfbWlycmVkX2luaXQgZnVuY3Rpb24uIFRoaXMKY29udGFpbnMgYSBsaXN0IGhlYWQgc3Ry dWN0IHdoaWNoIGlzIGluc2VydGVkIGludG8gYSBnbG9iYWwgbGlzdCBvbgpzdWNjZXNzZnVsIGNy ZWF0aW9uIG9mIGEgbmV3IGFjdGlvbi4gSG93ZXZlciwgYWZ0ZXIgYSBjcmVhdGlvbiwgaXQgaXMK c3RpbGwgcG9zc2libGUgdG8gZXJyb3Igb3V0IGFuZCBjYWxsIHRoZSB0Y2ZfaWRyX3JlbGVhc2Ug ZnVuY3Rpb24uIFRoaXMsCmluIHR1cm4sIGNhbGxzIHRoZSBhY3RfbWlyciBjbGVhbnVwIGZ1bmN0 aW9uIHZpYSBfX3RjZl9pZHJfcmVsZWFzZSBhbmQKX190Y2ZfYWN0aW9uX3B1dC4gVGhpcyBjbGVh bnVwIGZ1bmN0aW9uIHRyaWVzIHRvIGRlbGV0ZSB0aGUgbGlzdCBlbnRyeQp3aGljaCBpcyBhcyB5 ZXQgdW5pbml0aWFsaXNlZCwgbGVhZGluZyB0byBhIE5VTEwgcG9pbnRlciBleGNlcHRpb24uCgpG aXggdGhpcyBieSBpbml0aWFsaXNpbmcgdGhlIGxpc3QgZW50cnkgb24gY3JlYXRpb24gb2YgYSBu ZXcgYWN0aW9uLgoKQnVnIHJlcG9ydDoKCkJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVM TCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IDAwMDAwMDAwMDAwMDAwMDgKUEdEIDgwMDAwMDA4NDBj NzMwNjcgUDREIDgwMDAwMDA4NDBjNzMwNjcgUFVEIDg1OGRjYzA2NyBQTUQgMApPb3BzOiAwMDAy IFsjMV0gU01QIFBUSQpDUFU6IDMyIFBJRDogNTYzNiBDb21tOiBoYW5kbGVyMTk0IFRhaW50ZWQ6 IEcgICAgICAgICAgIE9FICAgICA1LjAuMCsgIzE4NgpIYXJkd2FyZSBuYW1lOiBEZWxsIEluYy4g UG93ZXJFZGdlIFI3MzAvMDU5OVY1LCBCSU9TIDEuMy42IDA2LzAzLzIwMTUKUklQOiAwMDEwOnRj Zl9taXJyZWRfcmVsZWFzZSsweDQyLzB4YTcgW2FjdF9taXJyZWRdCkNvZGU6IGYwIDkwIDM5IGMw IGU4IDUyIDA0IDU3IGM4IDQ4IGM3IGM3IGI4IDgwIDM5IGMwIGU4IDk0IGZhIGQ0IGM3IDQ4IDhi IDkzIGQwIDAwIDAwIDAwIDQ4IDhiIDgzIGQ4IDAwIDAwIDAwIDQ4IGM3IGM3IGYwIDkwIDM5IGMw IDw0OD4gODkgNDIgMDggNDggODkgMTAgNDggYjggMDAgMDEgMDAgMDAgMDAgMDAgYWQgZGUgNDgg ODkgODMgZDAgMDAKUlNQOiAwMDE4OmZmZmZhYzRhYTA1OWY2ODggRUZMQUdTOiAwMDAxMDI4MgpS QVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmOWRjZDFiMjE0ZDAwIFJDWDogMDAwMDAwMDAw MDAwMDAwMApSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBmZmZmOWRjZDFmYTE2NWY4IFJESTog ZmZmZmZmZmZjMDM5OTBmMApSQlA6IGZmZmY5ZGNjZjljN2FmODAgUjA4OiAwMDAwMDAwMDAwMDAw YTNiIFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IGZmZmY5ZGNjZmExMWY0MjAgUjExOiAwMDAw MDAwMDAwMDAwMDAwIFIxMjogMDAwMDAwMDAwMDAwMDAwMQpSMTM6IGZmZmY5ZGNkMTZiNDMzYzAg UjE0OiBmZmZmOWRjZDFiMjE0ZDgwIFIxNTogMDAwMDAwMDAwMDAwMDAwMApGUzogIDAwMDA3ZjQ0 MWJmZmY3MDAoMDAwMCkgR1M6ZmZmZjlkY2QxZmEwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAw MDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMK Q1IyOiAwMDAwMDAwMDAwMDAwMDA4IENSMzogMDAwMDAwMDgzOWU2NDAwNCBDUjQ6IDAwMDAwMDAw MDAxNjA2ZTAKQ2FsbCBUcmFjZToKdGNmX2FjdGlvbl9jbGVhbnVwKzB4NTkvMHhjYQpfX3RjZl9h Y3Rpb25fcHV0KzB4NTQvMHg2YgpfX3RjZl9pZHJfcmVsZWFzZS5jb2xkLjMzKzB4OS8weDEyCnRj Zl9taXJyZWRfaW5pdC5jb2xkLjIwKzB4MjJlLzB4M2IwIFthY3RfbWlycmVkXQp0Y2ZfYWN0aW9u X2luaXRfMSsweDNkMC8weDRjMAp0Y2ZfYWN0aW9uX2luaXQrMHg5Yy8weDEzMAp0Y2ZfZXh0c192 YWxpZGF0ZSsweGFiLzB4YzAKZmxfY2hhbmdlKzB4MWNhLzB4OTgyIFtjbHNfZmxvd2VyXQp0Y19u ZXdfdGZpbHRlcisweDY0Ny8weDhkMAo/IGxvYWRfYmFsYW5jZSsweDE0Yi8weDllMApydG5ldGxp bmtfcmN2X21zZysweGUzLzB4MzcwCj8gX19zd2l0Y2hfdG9fYXNtKzB4NDAvMHg3MAo/IF9fc3dp dGNoX3RvX2FzbSsweDM0LzB4NzAKPyBfY29uZF9yZXNjaGVkKzB4MTUvMHgzMAo/IF9fa21hbGxv Y19ub2RlX3RyYWNrX2NhbGxlcisweDFkNC8weDJiMAo/IHJ0bmxfY2FsY2l0LmlzcmEuMzErMHhm MC8weGYwCm5ldGxpbmtfcmN2X3NrYisweDQ5LzB4MTEwCm5ldGxpbmtfdW5pY2FzdCsweDE2Zi8w eDIxMApuZXRsaW5rX3NlbmRtc2crMHgxZGYvMHgzOTAKc29ja19zZW5kbXNnKzB4MzYvMHg0MApf X19zeXNfc2VuZG1zZysweDI3Yi8weDJjMAo/IGZ1dGV4X3dha2UrMHg4MC8weDE0MAo/IGRvX2Z1 dGV4KzB4MmI5LzB4YWMwCj8gZXBfc2Nhbl9yZWFkeV9saXN0LmNvbnN0cHJvcC4yMisweDFmMi8w eDIxMAo/IGVwX3BvbGwrMHg3YS8weDQzMApfX3N5c19zZW5kbXNnKzB4NDcvMHg4MApkb19zeXNj YWxsXzY0KzB4NTUvMHgxMDAKZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhh OQoKRml4ZXM6IDRlMjMyODE4YmQzMiAoIm5ldDogc2NoZWQ6IGFjdF9taXJyZWQ6IHJlbW92ZSBk ZXBlbmRlbmN5IG9uIHJ0bmwgbG9jayIpClNpZ25lZC1vZmYtYnk6IEpvaG4gSHVybGV5IDxqb2hu Lmh1cmxleUBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogSmFrdWIgS2ljaW5za2kgPGpha3Vi LmtpY2luc2tpQG5ldHJvbm9tZS5jb20+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdj b25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfbWlycmVkLmMgfCAzICsrKwogMSBmaWxlIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9hY3RfbWlycmVk LmMgYi9uZXQvc2NoZWQvYWN0X21pcnJlZC5jCmluZGV4IDhiZjY2ZDBhNjgwMC4uZjc2N2U3OGUz OGM5IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0X21pcnJlZC5jCisrKyBiL25ldC9zY2hlZC9h Y3RfbWlycmVkLmMKQEAgLTE1OSw2ICsxNTksOSBAQCBzdGF0aWMgaW50IHRjZl9taXJyZWRfaW5p dChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAl9CiAJbSA9IHRvX21pcnJl ZCgqYSk7CiAKKwlpZiAocmV0ID09IEFDVF9QX0NSRUFURUQpCisJCUlOSVRfTElTVF9IRUFEKCZt LT50Y2ZtX2xpc3QpOworCiAJc3Bpbl9sb2NrX2JoKCZtLT50Y2ZfbG9jayk7CiAJbS0+dGNmX2Fj dGlvbiA9IHBhcm0tPmFjdGlvbjsKIAltLT50Y2ZtX2VhY3Rpb24gPSBwYXJtLT5lYWN0aW9uOwot LSAKMi4yMC4xCgoKRnJvbSBmNGE5NTQ5MWVhMzEyNmYwMGM1Njc0NDBhMzU4MzIxN2MyMGZkNjRk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEZWFuIE5lbHNvbiA8ZG5lbHNvbkByZWRo YXQuY29tPgpEYXRlOiBUdWUsIDI2IE1hciAyMDE5IDExOjUzOjE5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCAyOC8yOV0gdGh1bmRlcng6IGVuYWJsZSBwYWdlIHJlY3ljbGluZyBmb3Igbm9uLVhEUCBj YXNlCgpbIFVwc3RyZWFtIGNvbW1pdCBiM2UyMDgwNjk0Nzc1ODhjMDZmNGQ1ZDk4NjE2NGI0MzVi YjA2ZTZkIF0KCkNvbW1pdCA3NzMyMjUzODhkYWUxNWU3Mjc5MCAoIm5ldDogdGh1bmRlcng6IE9w dGltaXplIHBhZ2UgcmVjeWNsaW5nIGZvciBYRFAiKQphZGRlZCBjb2RlIHRvIG5pY3ZmX2FsbG9j X3BhZ2UoKSB0aGF0IGluYWR2ZXJ0ZW50bHkgZGlzYWJsZXMgcmVjZWl2ZSBidWZmZXIKcGFnZSBy ZWN5Y2xpbmcgZm9yIHRoZSBub24tWERQIGNhc2UgYnkgYWx3YXlzIE5VTEwnbmcgdGhlIHBhZ2Ug cG9pbnRlci4KClRoaXMgcGF0Y2ggY29ycmVjdHMgdHdvIGlmLWNvbmRpdGlvbmFscyB0byBhbGxv dyBmb3IgdGhlIHJlY3ljbGluZyBvZiBub24tWERQCm1vZGUgcGFnZXMgYnkgb25seSBzZXR0aW5n IHRoZSBwYWdlIHBvaW50ZXIgdG8gTlVMTCB3aGVuIHRoZSBwYWdlIGlzIG5vdCByZWFkeQpmb3Ig cmVjeWNsaW5nLgoKRml4ZXM6IDc3MzIyNTM4OGRhZSAoIm5ldDogdGh1bmRlcng6IE9wdGltaXpl IHBhZ2UgcmVjeWNsaW5nIGZvciBYRFAiKQpTaWduZWQtb2ZmLWJ5OiBEZWFuIE5lbHNvbiA8ZG5l bHNvbkByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogLi4uL2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX3F1ZXVl cy5jICAgIHwgMjMgKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2Vy dGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX3F1ZXVlcy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv Y2F2aXVtL3RodW5kZXIvbmljdmZfcXVldWVzLmMKaW5kZXggZmNhZjE4ZmEzOTA0Li5hZGUxZmYz NTU4MzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25p Y3ZmX3F1ZXVlcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25p Y3ZmX3F1ZXVlcy5jCkBAIC0xMDUsMjAgKzEwNSwxOSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBw Z2NhY2hlICpuaWN2Zl9hbGxvY19wYWdlKHN0cnVjdCBuaWN2ZiAqbmljLAogCS8qIENoZWNrIGlm IHBhZ2UgY2FuIGJlIHJlY3ljbGVkICovCiAJaWYgKHBhZ2UpIHsKIAkJcmVmX2NvdW50ID0gcGFn ZV9yZWZfY291bnQocGFnZSk7Ci0JCS8qIENoZWNrIGlmIHRoaXMgcGFnZSBoYXMgYmVlbiB1c2Vk IG9uY2UgaS5lICdwdXRfcGFnZScKLQkJICogY2FsbGVkIGFmdGVyIHBhY2tldCB0cmFuc21pc3Np b24gaS5lIGludGVybmFsIHJlZl9jb3VudAotCQkgKiBhbmQgcGFnZSdzIHJlZl9jb3VudCBhcmUg ZXF1YWwgaS5lIHBhZ2UgY2FuIGJlIHJlY3ljbGVkLgorCQkvKiBUaGlzIHBhZ2UgY2FuIGJlIHJl Y3ljbGVkIGlmIGludGVybmFsIHJlZl9jb3VudCBhbmQgcGFnZSdzCisJCSAqIHJlZl9jb3VudCBh cmUgZXF1YWwsIGluZGljYXRpbmcgdGhhdCB0aGUgcGFnZSBoYXMgYmVlbiB1c2VkCisJCSAqIG9u Y2UgZm9yIHBhY2tldCB0cmFuc21pc3Npb24uIEZvciBub24tWERQIG1vZGUsIGludGVybmFsCisJ CSAqIHJlZl9jb3VudCBpcyBhbHdheXMgJzEnLgogCQkgKi8KLQkJaWYgKHJiZHItPmlzX3hkcCAm JiAocmVmX2NvdW50ID09IHBnY2FjaGUtPnJlZl9jb3VudCkpCi0JCQlwZ2NhY2hlLT5yZWZfY291 bnQtLTsKLQkJZWxzZQotCQkJcGFnZSA9IE5VTEw7Ci0KLQkJLyogSW4gbm9uLVhEUCBtb2RlLCBw YWdlJ3MgcmVmX2NvdW50IG5lZWRzIHRvIGJlICcxJyBmb3IgaXQKLQkJICogdG8gYmUgcmVjeWNs ZWQuCi0JCSAqLwotCQlpZiAoIXJiZHItPmlzX3hkcCAmJiAocmVmX2NvdW50ICE9IDEpKQorCQlp ZiAocmJkci0+aXNfeGRwKSB7CisJCQlpZiAocmVmX2NvdW50ID09IHBnY2FjaGUtPnJlZl9jb3Vu dCkKKwkJCQlwZ2NhY2hlLT5yZWZfY291bnQtLTsKKwkJCWVsc2UKKwkJCQlwYWdlID0gTlVMTDsK KwkJfSBlbHNlIGlmIChyZWZfY291bnQgIT0gMSkgewogCQkJcGFnZSA9IE5VTEw7CisJCX0KIAl9 CiAKIAlpZiAoIXBhZ2UpIHsKLS0gCjIuMjAuMQoKCkZyb20gNjdkNzY5N2ZlZTkwOWE4YjFiNWQz ZDY4Nzg3ZGMyYmY2ZGM4ODNhZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGVhbiBO ZWxzb24gPGRuZWxzb25AcmVkaGF0LmNvbT4KRGF0ZTogVHVlLCAyNiBNYXIgMjAxOSAxMTo1Mzoy NiAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjkvMjldIHRodW5kZXJ4OiBlbGltaW5hdGUgZXh0cmEg Y2FsbHMgdG8gcHV0X3BhZ2UoKSBmb3IgcGFnZXMKIGhlbGQgZm9yIHJlY3ljbGluZwoKWyBVcHN0 cmVhbSBjb21taXQgY2QzNWVmOTE0OTBhZDgwNDlkZDE4MGJiMDYwYWZmN2VlMTkyZWRhOSBdCgpG b3IgdGhlIG5vbi1YRFAgY2FzZSwgY29tbWl0IDc3MzIyNTM4OGRhZTE1ZTcyNzkwICgibmV0OiB0 aHVuZGVyeDogT3B0aW1pemUKcGFnZSByZWN5Y2xpbmcgZm9yIFhEUCIpIGFkZGVkIGNvZGUgdG8g bmljdmZfZnJlZV9yYmRyKCkgdGhhdCwgd2hlbiByZWxlYXNpbmcKdGhlIGFkZGl0aW9uYWwgcmVj ZWl2ZSBidWZmZXIgcGFnZSByZWZlcmVuY2UgaGVsZCBmb3IgcmVjeWNsaW5nLCByZXBlYXRlZGx5 CmNhbGxzIHB1dF9wYWdlKCkgdW50aWwgdGhlIHBhZ2UncyBfcmVmY291bnQgZ29lcyB0byB6ZXJv LiBXaGljaCByZXN1bHRzIGluCnRoZSBwYWdlIGJlaW5nIGZyZWVkLgoKVGhpcyBpcyBub3Qgb2th eSBpZiB0aGUgcGFnZSdzIF9yZWZjb3VudCB3YXMgZ3JlYXRlciB0aGFuIDEgKGluIHRoZSBub24t WERQCmNhc2UpLCBiZWNhdXNlIG5pY3ZmX2ZyZWVfcmJkcigpIHNob3VsZCBub3QgYmUgc3VidHJh Y3RpbmcgbW9yZSB0aGFuIHdoYXQKbmljdmZfYWxsb2NfcGFnZSgpIGhhZCBwcmV2aW91c2x5IGFk ZGVkIHRvIHRoZSBwYWdlJ3MgX3JlZmNvdW50LCB3aGljaCB3YXMKb25seSAxIChpbiB0aGUgbm9u LVhEUCBjYXNlKS4KClRoaXMgY2FuIGFyaXNlIGlmIGEgcmVjZWl2ZWQgcGFja2V0IGlzIHN0aWxs IGJlaW5nIHByb2Nlc3NlZCBhbmQgdGhlIHJlY2VpdmUKYnVmZmVyIChpLmUuLCBza2ItPmhlYWQp IGhhcyBub3QgeWV0IGJlZW4gZnJlZWQgdmlhIHNrYl9mcmVlX2hlYWQoKSB3aGVuCm5pY3ZmX2Zy ZWVfcmJkcigpIGlzIHNwaW5uaW5nIHRocm91Z2ggdGhlIGFmb3JlbWVudGlvbmVkIHB1dF9wYWdl KCkgbG9vcC4KCklmIHRoaXMgc2hvdWxkIG9jY3VyLCB3aGVuIHRoZSByZWNlaXZlZCBwYWNrZXQg ZmluaXNoZXMgcHJvY2Vzc2luZyBhbmQKc2tiX2ZyZWVfaGVhZCgpIGlzIGNhbGxlZCwgdmFyaW91 cyBwcm9ibGVtcyBjYW4gZW5zdWUuIEV4YWN0bHkgd2hhdCwgZGVwZW5kcyBvbgp3aGV0aGVyIHRo ZSBwYWdlIGhhcyBhbHJlYWR5IGJlZW4gcmVhbGxvY2F0ZWQgb3Igbm90LCBhbnl0aGluZyBmcm9t ICJCVUc6IEJhZApwYWdlIHN0YXRlIC4uLiAiLCB0byAiVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwg TlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIC4uLiIgb3IKIlVuYWJsZSB0byBoYW5kbGUga2VybmVs IHBhZ2luZyByZXF1ZXN0Li4uIi4KClNvIHRoaXMgcGF0Y2ggY2hhbmdlcyBuaWN2Zl9mcmVlX3Ji ZHIoKSB0byBvbmx5IGNhbGwgcHV0X3BhZ2UoKSBvbmNlIGZvciBwYWdlcwpoZWxkIGZvciByZWN5 Y2xpbmcgKGluIHRoZSBub24tWERQIGNhc2UpLgoKRml4ZXM6IDc3MzIyNTM4OGRhZSAoIm5ldDog dGh1bmRlcng6IE9wdGltaXplIHBhZ2UgcmVjeWNsaW5nIGZvciBYRFAiKQpTaWduZWQtb2ZmLWJ5 OiBEZWFuIE5lbHNvbiA8ZG5lbHNvbkByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv Y2F2aXVtL3RodW5kZXIvbmljdmZfcXVldWVzLmMgfCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvbmljdmZfcXVldWVzLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9xdWV1ZXMuYwppbmRleCBhZGUxZmYzNTU4MzYu LjlhNGNmYTYxZWQ5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3Ro dW5kZXIvbmljdmZfcXVldWVzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3Ro dW5kZXIvbmljdmZfcXVldWVzLmMKQEAgLTM2NCwxMSArMzY0LDEwIEBAIHN0YXRpYyB2b2lkIG5p Y3ZmX2ZyZWVfcmJkcihzdHJ1Y3QgbmljdmYgKm5pYywgc3RydWN0IHJiZHIgKnJiZHIpCiAJd2hp bGUgKGhlYWQgPCByYmRyLT5wZ2NudCkgewogCQlwZ2NhY2hlID0gJnJiZHItPnBnY2FjaGVbaGVh ZF07CiAJCWlmIChwZ2NhY2hlLT5wYWdlICYmIHBhZ2VfcmVmX2NvdW50KHBnY2FjaGUtPnBhZ2Up ICE9IDApIHsKLQkJCWlmICghcmJkci0+aXNfeGRwKSB7Ci0JCQkJcHV0X3BhZ2UocGdjYWNoZS0+ cGFnZSk7Ci0JCQkJY29udGludWU7CisJCQlpZiAocmJkci0+aXNfeGRwKSB7CisJCQkJcGFnZV9y ZWZfc3ViKHBnY2FjaGUtPnBhZ2UsCisJCQkJCSAgICAgcGdjYWNoZS0+cmVmX2NvdW50IC0gMSk7 CiAJCQl9Ci0JCQlwYWdlX3JlZl9zdWIocGdjYWNoZS0+cGFnZSwgcGdjYWNoZS0+cmVmX2NvdW50 IC0gMSk7CiAJCQlwdXRfcGFnZShwZ2NhY2hlLT5wYWdlKTsKIAkJfQogCQloZWFkKys7Ci0tIAoy LjIwLjEKCg== ----Next_Part(Thu_Mar_28_12_24_07_2019_526)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_50.mbox" RnJvbSBjYjAyNDU4YmVjYjcyODQ5ZDE2MDU1N2JlOTYxYjY2NWFiMGExNTEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFR1ZSwgMTkgTWFyIDIwMTkgMDU6NDY6MTggLTA3MDAKU3ViamVjdDogW1BBVENIIDAxLzMz XSBkY2NwOiBkbyBub3QgdXNlIGlwdjYgaGVhZGVyIGZvciBpcHY0IGZsb3cKClsgVXBzdHJlYW0g Y29tbWl0IGUwYWE2NzcwOWY4OWQwOGM4ZDhlNWJkZDllMGI2NDlkZjYxZDAwOTAgXQoKV2hlbiBh IGR1YWwgc3RhY2sgZGNjcCBsaXN0ZW5lciBhY2NlcHRzIGFuIGlwdjQgZmxvdywKaXQgc2hvdWxk IG5vdCBhdHRlbXB0IHRvIHVzZSBhbiBpcHY2IGhlYWRlciBvcgppbmV0Nl9paWYoKSBoZWxwZXIu CgpGaXhlczogM2RmODBkOTMyMGJjICgiW0RDQ1BdOiBJbnRyb2R1Y2UgRENDUHY2IikKU2lnbmVk LW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3AvaXB2 Ni5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2lwdjYuYyBiL25ldC9kY2NwL2lwdjYuYwppbmRl eCBkNTc0MGJhZDViMTguLjU3ZDg0ZTliN2I2ZiAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvaXB2Ni5j CisrKyBiL25ldC9kY2NwL2lwdjYuYwpAQCAtNDM2LDggKzQzNiw4IEBAIHN0YXRpYyBzdHJ1Y3Qg c29jayAqZGNjcF92Nl9yZXF1ZXN0X3JlY3Zfc29jayhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiAJ CW5ld25wLT5pcHY2X21jX2xpc3QgPSBOVUxMOwogCQluZXducC0+aXB2Nl9hY19saXN0ID0gTlVM TDsKIAkJbmV3bnAtPmlwdjZfZmxfbGlzdCA9IE5VTEw7Ci0JCW5ld25wLT5tY2FzdF9vaWYgICA9 IGluZXQ2X2lpZihza2IpOwotCQluZXducC0+bWNhc3RfaG9wcyAgPSBpcHY2X2hkcihza2IpLT5o b3BfbGltaXQ7CisJCW5ld25wLT5tY2FzdF9vaWYgICA9IGluZXRfaWlmKHNrYik7CisJCW5ld25w LT5tY2FzdF9ob3BzICA9IGlwX2hkcihza2IpLT50dGw7CiAKIAkJLyoKIAkJICogTm8gbmVlZCB0 byBjaGFyZ2UgdGhpcyBzb2NrIHRvIHRoZSByZWxldmFudCBJUHY2IHJlZmNudCBkZWJ1ZyBzb2Nr cyBjb3VudAotLSAKMi4yMC4xCgoKRnJvbSA4Yzk2ZGQxMzZiMDFkMWYyNzYyODUzZjZjZjdlZWQw Yjk3OWE4NGNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWVIYWliaW5nIDx5dWVo YWliaW5nQGh1YXdlaS5jb20+CkRhdGU6IFRodSwgMjEgTWFyIDIwMTkgMTU6MDI6NTAgKzA4MDAK U3ViamVjdDogW1BBVENIIDAyLzMzXSBnZW5ldGxpbms6IEZpeCBhIG1lbW9yeSBsZWFrIG9uIGVy cm9yIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IGNlYWJlZTZjNTk5NDNiZGQ1ZTFkYTFhNmEyMGRj N2VlNWY4MTEzYTIgXQoKSW4gZ2VubF9yZWdpc3Rlcl9mYW1pbHkoKSwgd2hlbiBpZHJfYWxsb2Mo KSBmYWlscywKd2UgZm9yZ2V0IHRvIGZyZWUgdGhlIG1lbW9yeSB3ZSBwb3NzaWJseSBhbGxvY2F0 ZSBmb3IKZmFtaWx5LT5hdHRyYnVmLgoKUmVwb3J0ZWQtYnk6IEh1bGsgUm9ib3QgPGh1bGtjaUBo dWF3ZWkuY29tPgpGaXhlczogMmFlMGYxN2RmMWNkICgiZ2VuZXRsaW5rOiB1c2UgaWRyIHRvIHRy YWNrIGZhbWlsaWVzIikKU2lnbmVkLW9mZi1ieTogWXVlSGFpYmluZyA8eXVlaGFpYmluZ0BodWF3 ZWkuY29tPgpSZXZpZXdlZC1ieTogS2lyaWxsIFRraGFpIDxrdGtoYWlAdmlydHVvenpvLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9uZXRsaW5rL2dlbmV0bGluay5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9nZW5ldGxp bmsuYyBiL25ldC9uZXRsaW5rL2dlbmV0bGluay5jCmluZGV4IDI1ZWViNmQyYTc1YS4uZjBlYzA2 OGUxZDAyIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9nZW5ldGxpbmsuYworKysgYi9uZXQvbmV0 bGluay9nZW5ldGxpbmsuYwpAQCAtMzY2LDcgKzM2Niw3IEBAIGludCBnZW5sX3JlZ2lzdGVyX2Zh bWlseShzdHJ1Y3QgZ2VubF9mYW1pbHkgKmZhbWlseSkKIAkJCSAgICAgICBzdGFydCwgZW5kICsg MSwgR0ZQX0tFUk5FTCk7CiAJaWYgKGZhbWlseS0+aWQgPCAwKSB7CiAJCWVyciA9IGZhbWlseS0+ aWQ7Ci0JCWdvdG8gZXJyb3V0X2xvY2tlZDsKKwkJZ290byBlcnJvdXRfZnJlZTsKIAl9CiAKIAll cnIgPSBnZW5sX3ZhbGlkYXRlX2Fzc2lnbl9tY19ncm91cHMoZmFtaWx5KTsKQEAgLTM4NSw2ICsz ODUsNyBAQCBpbnQgZ2VubF9yZWdpc3Rlcl9mYW1pbHkoc3RydWN0IGdlbmxfZmFtaWx5ICpmYW1p bHkpCiAKIGVycm91dF9yZW1vdmU6CiAJaWRyX3JlbW92ZSgmZ2VubF9mYW1faWRyLCBmYW1pbHkt PmlkKTsKK2Vycm91dF9mcmVlOgogCWtmcmVlKGZhbWlseS0+YXR0cmJ1Zik7CiBlcnJvdXRfbG9j a2VkOgogCWdlbmxfdW5sb2NrX2FsbCgpOwotLSAKMi4yMC4xCgoKRnJvbSA4YjY2NGE2MTQ3NGYx OGVhMWI5MjdiMDRmMTA3ZDdkZmEzM2JmYTM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBNYXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpEYXRlOiBTYXQsIDE2IE1hciAyMDE5 IDAxOjAwOjUwICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8zM10gZ3RwOiBjaGFuZ2UgTkVUX1VE UF9UVU5ORUwgZGVwZW5kZW5jeSB0byBzZWxlY3QKClsgVXBzdHJlYW0gY29tbWl0IGMyMmRhMzY2 ODhkNjI5OGYyZTU0NmRjYzQzZmRjMWFkMzUwMzY0NjcgXQoKU2ltaWxhcmx5IHRvIGNvbW1pdCBh NzYwM2FjMWZjOGMgKCJnZW5ldmU6IGNoYW5nZSBORVRfVURQX1RVTk5FTApkZXBlbmRlbmN5IHRv IHNlbGVjdCIpLCBHVFAgaGFzIGEgZGVwZW5kZW5jeSBvbiBORVRfVURQX1RVTk5FTCB3aGljaApt YWtlcyBpbXBvc3NpYmxlIHRvIGNvbXBpbGUgaXQgaWYgbm8gb3RoZXIgcHJvdG9jb2wgZGVwZW5k aW5nIG9uCk5FVF9VRFBfVFVOTkVMIGlzIHNlbGVjdGVkLgoKRml4IHRoaXMgYnkgY2hhbmdpbmcg dGhlIGRlcGVuZHMgdG8gYSBzZWxlY3QsIGFuZCBkcm9wIE5FVF9JUF9UVU5ORUwgZnJvbQp0aGUg c2VsZWN0IGxpc3QsIGFzIGl0IGFscmVhZHkgZGVwZW5kcyBvbiBORVRfVURQX1RVTk5FTC4KClNp Z25lZC1vZmYtYnk6IE1hdHRlbyBDcm9jZSA8bWNyb2NlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9LY29uZmlnIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L0tjb25maWcgYi9kcml2ZXJzL25l dC9LY29uZmlnCmluZGV4IDIxYmY4YWM3ODM4MC4uMzkwZTg5NmRhZGM3IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9LY29uZmlnCisrKyBiL2RyaXZlcnMvbmV0L0tjb25maWcKQEAgLTIxMyw4ICsy MTMsOCBAQCBjb25maWcgR0VORVZFCiAKIGNvbmZpZyBHVFAKIAl0cmlzdGF0ZSAiR1BSUyBUdW5u ZWxpbmcgUHJvdG9jb2wgZGF0YXBhdGggKEdUUC1VKSIKLQlkZXBlbmRzIG9uIElORVQgJiYgTkVU X1VEUF9UVU5ORUwKLQlzZWxlY3QgTkVUX0lQX1RVTk5FTAorCWRlcGVuZHMgb24gSU5FVAorCXNl bGVjdCBORVRfVURQX1RVTk5FTAogCS0tLWhlbHAtLS0KIAkgIFRoaXMgYWxsb3dzIG9uZSB0byBj cmVhdGUgZ3RwIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IHByb3ZpZGUKIAkgIHRoZSBHUFJTIFR1 bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpLiBUaGlzIHR1bm5lbGluZyBwcm90b2Nv bAotLSAKMi4yMC4xCgoKRnJvbSA3YTJmMTE2MTYwYTNjNmRmNTFhMzE0ODVhZmQwZGY4ODZmMjI3 YzBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBn bWFpbC5jb20+CkRhdGU6IFdlZCwgMjAgTWFyIDIwMTkgMTQ6NDU6NDggKzA4MDAKU3ViamVjdDog W1BBVENIIDA0LzMzXSBpcHY2OiBtYWtlIGlwNl9jcmVhdGVfcnRfcmN1IHJldHVybiBpcDZfbnVs bF9lbnRyeQogaW5zdGVhZCBvZiBOVUxMCgpbIFVwc3RyZWFtIGNvbW1pdCAxYzg3ZTc5YTAwMmY2 YTE1OTM5NjEzOGNkM2YzYWI1NTRhMmE4ODg3IF0KCkppYW5saW4gcmVwb3J0ZWQgYSBjcmFzaDoK CiAgWyAgMzgxLjQ4NDMzMl0gQlVHOiB1bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50 ZXIgZGVyZWZlcmVuY2UgYXQgMDAwMDAwMDAwMDAwMDA2OAogIFsgIDM4MS42MTk4MDJdIFJJUDog MDAxMDpmaWI2X3J1bGVfbG9va3VwKzB4YTMvMHgxNjAKICBbICAzODIuMDA5NjE1XSBDYWxsIFRy YWNlOgogIFsgIDM4Mi4wMjA3NjJdICA8SVJRPgogIFsgIDM4Mi4wMzAxNzRdICBpcDZfcm91dGVf cmVkaXJlY3QuaXNyYS41MisweGM5LzB4ZjAKICBbICAzODIuMDUwOTg0XSAgaXA2X3JlZGlyZWN0 KzB4YjYvMHhmMAogIFsgIDM4Mi4wNjY3MzFdICBpY21wdjZfbm90aWZ5KzB4Y2EvMHgxOTAKICBb ICAzODIuMDgzMTg1XSAgbmRpc2NfcmVkaXJlY3RfcmN2KzB4MTBmLzB4MTYwCiAgWyAgMzgyLjEw MjU2OV0gIG5kaXNjX3JjdisweGZiLzB4MTAwCiAgWyAgMzgyLjExNzcyNV0gIGljbXB2Nl9yY3Yr MHgzZjIvMHg1MjAKICBbICAzODIuMTMzNjM3XSAgaXA2X2lucHV0X2ZpbmlzaCsweGJmLzB4NDYw CiAgWyAgMzgyLjE1MTYzNF0gIGlwNl9pbnB1dCsweDNiLzB4YjAKICBbICAzODIuMTY2MDk3XSAg aXB2Nl9yY3YrMHgzNzgvMHg0ZTAKCkl0IHdhcyBjYXVzZWQgYnkgdGhlIGxvb2t1cCBmdW5jdGlv biBfX2lwNl9yb3V0ZV9yZWRpcmVjdCgpIHJldHVybnMgTlVMTCBpbgpmaWI2X3J1bGVfbG9va3Vw KCkgd2hlbiBpcDZfY3JlYXRlX3J0X3JjdSgpIHJldHVybnMgTlVMTC4KClNvIHdlIGZpeCBpdCBi eSBzaW1wbHkgbWFraW5nIGlwNl9jcmVhdGVfcnRfcmN1KCkgcmV0dXJuIGlwNl9udWxsX2VudHJ5 Cmluc3RlYWQgb2YgTlVMTC4KCnYxLT52MjoKICAtIG1vdmUgZG93biAnZmFsbGJhY2s6JyB0byBt YWtlIGl0IG1vcmUgcmVhZGFibGUuCgpGaXhlczogZTg3M2U0YjljYzdlICgiaXB2NjogdXNlIGZp YjZfaW5mb19ob2xkX3NhZmUoKSB3aGVuIG5lY2Vzc2FyeSIpClJlcG9ydGVkLWJ5OiBKaWFubGlu IFNoaSA8amlzaGlAcmVkaGF0LmNvbT4KU3VnZ2VzdGVkLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5p QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KQWNrZWQtYnk6 IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3JvdXRlLmMgfCAxOCArKysr KysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA4IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5j CmluZGV4IDhkYWQxZDY5MGI3OC4uMDA4NmFjYzE2ZjNjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9y b3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAgLTEwNDAsMTQgKzEwNDAsMjAgQEAgc3Rh dGljIHN0cnVjdCBydDZfaW5mbyAqaXA2X2NyZWF0ZV9ydF9yY3Uoc3RydWN0IGZpYjZfaW5mbyAq cnQpCiAJc3RydWN0IHJ0Nl9pbmZvICpucnQ7CiAKIAlpZiAoIWZpYjZfaW5mb19ob2xkX3NhZmUo cnQpKQotCQlyZXR1cm4gTlVMTDsKKwkJZ290byBmYWxsYmFjazsKIAogCW5ydCA9IGlwNl9kc3Rf YWxsb2MoZGV2X25ldChkZXYpLCBkZXYsIGZsYWdzKTsKLQlpZiAobnJ0KQotCQlpcDZfcnRfY29w eV9pbml0KG5ydCwgcnQpOwotCWVsc2UKKwlpZiAoIW5ydCkgewogCQlmaWI2X2luZm9fcmVsZWFz ZShydCk7CisJCWdvdG8gZmFsbGJhY2s7CisJfQogCisJaXA2X3J0X2NvcHlfaW5pdChucnQsIHJ0 KTsKKwlyZXR1cm4gbnJ0OworCitmYWxsYmFjazoKKwlucnQgPSBkZXZfbmV0KGRldiktPmlwdjYu aXA2X251bGxfZW50cnk7CisJZHN0X2hvbGQoJm5ydC0+ZHN0KTsKIAlyZXR1cm4gbnJ0OwogfQog CkBAIC0xMDk2LDEwICsxMTAyLDYgQEAgc3RhdGljIHN0cnVjdCBydDZfaW5mbyAqaXA2X3BvbF9y b3V0ZV9sb29rdXAoc3RydWN0IG5ldCAqbmV0LAogCQlkc3RfaG9sZCgmcnQtPmRzdCk7CiAJfSBl bHNlIHsKIAkJcnQgPSBpcDZfY3JlYXRlX3J0X3JjdShmNmkpOwotCQlpZiAoIXJ0KSB7Ci0JCQly dCA9IG5ldC0+aXB2Ni5pcDZfbnVsbF9lbnRyeTsKLQkJCWRzdF9ob2xkKCZydC0+ZHN0KTsKLQkJ fQogCX0KIAogCXJjdV9yZWFkX3VubG9jaygpOwotLSAKMi4yMC4xCgoKRnJvbSBmY2JiZWE4ZGQ3 NzY4Zjk0ODE3MWEzNzA3ZDYwYTVjMzVkNWYyOGE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBGaW5uIFRoYWluIDxmdGhhaW5AdGVsZWdyYXBoaWNzLmNvbS5hdT4KRGF0ZTogU2F0LCAx NiBNYXIgMjAxOSAxNDoyMToxOSArMTEwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMzNdIG1hYzgzOTA6 IEZpeCBtbWlvIGFjY2VzcyBzaXplIHByb2JlCgpbIFVwc3RyZWFtIGNvbW1pdCBiYjllNWM1YmNk NzZmNDQ3NGVhYzNiYWY2NDNkN2EzOWY3YmFjN2JiIF0KClRoZSBidWcgdGhhdCBTdGFuIHJlcG9y dGVkIGlzIGFzIGZvbGxvd3MuIEFmdGVyIGEgcmVzdGFydCwgYSAxNi1iaXQgTklDCm1heSBiZSBp bmNvcnJlY3RseSBpZGVudGlmaWVkIGFzIGEgMzItYml0IE5JQyBhbmQgc3RvcCB3b3JraW5nLgoK bWFjODM5MCBzbG90LkU6IE1lbW9yeSBsZW5ndGggcmVzb3VyY2Ugbm90IGZvdW5kLCBwcm9iaW5n Cm1hYzgzOTAgc2xvdC5FOiBGYXJhbGxvbiBFdGhlck1hYyBJSS1DICh0eXBlIGZhcmFsbG9uKQpt YWM4MzkwIHNsb3QuRTogTUFDIDAwOjAwOmM1OjMwOmMyOjk5LCBJUlEgNjEsIDMyIEtCIHNoYXJl ZCBtZW1vcnkgYXQgMHhmZWVkMDAwMCwgMzItYml0IGFjY2Vzcy4KClRoZSBidWcgbmV2ZXIgYXJp c2VzIGFmdGVyIGEgY29sZCBzdGFydCBhbmQgb25seSBpbnRlcm1pdHRlbnRseSBhZnRlciBhCndh cm0gc3RhcnQuIChJIGRpZG4ndCBpbnZlc3RpZ2F0ZSB3aHkgdGhlIGJ1ZyBpcyBpbnRlcm1pdHRl bnQuKQoKSXQgdHVybnMgb3V0IHRoYXQgbWVtY3B5X3RvaW8oKSBpcyBkZXByZWNhdGVkIGFuZCBt ZW1jbXBfd2l0aGlvKCkgYWxzbwpoYXMgaXNzdWVzLiBSZXBsYWNpbmcgdGhlc2UgY2FsbHMgd2l0 aCBtbWlvIGFjY2Vzc29ycyBmaXhlcyB0aGUgcHJvYmxlbS4KClJlcG9ydGVkLWFuZC10ZXN0ZWQt Ynk6IFN0YW4gSm9obnNvbiA8dXNlcm01N0B5YWhvby5jb20+CkZpeGVzOiAyOTY0ZGIwZjU5MDQg KCJtNjhrOiBNYWMgRFA4MzkwIHVwZGF0ZSIpClNpZ25lZC1vZmYtYnk6IEZpbm4gVGhhaW4gPGZ0 aGFpbkB0ZWxlZ3JhcGhpY3MuY29tLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvODM5MC9tYWM4 MzkwLmMgfCAxOSArKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0 aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC84MzkwL21hYzgzOTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvbWFjODM5MC5jCmlu ZGV4IDM0MmFlMDhlYzNjMi4uZDYwYTg2YWE4YWE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC84MzkwL21hYzgzOTAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL21h YzgzOTAuYwpAQCAtMTUzLDggKzE1Myw2IEBAIHN0YXRpYyB2b2lkIGRheW5hX2Jsb2NrX2lucHV0 KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBjb3VudCwKIHN0YXRpYyB2b2lkIGRheW5hX2Js b2NrX291dHB1dChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgY291bnQsCiAJCQkgICAgICAg Y29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgc3RhcnRfcGFnZSk7CiAKLSNkZWZpbmUgbWVt Y21wX3dpdGhpbyhhLCBiLCBjKQltZW1jbXAoKGEpLCAodm9pZCAqKShiKSwgKGMpKQotCiAvKiBT bG93IFNhbmUgKDE2LWJpdCBjaHVuayBtZW1vcnkgcmVhZC93cml0ZSkgQ2FibGV0cm9uIHVzZXMg dGhpcyAqLwogc3RhdGljIHZvaWQgc2xvd19zYW5lX2dldF84MzkwX2hkcihzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAogCQkJCSAgIHN0cnVjdCBlODM5MF9wa3RfaGRyICpoZHIsIGludCByaW5nX3Bh Z2UpOwpAQCAtMjMzLDE5ICsyMzEsMjYgQEAgc3RhdGljIGVudW0gbWFjODM5MF90eXBlIG1hYzgz OTBfaWRlbnQoc3RydWN0IG51YnVzX3JzcmMgKmZyZXMpCiAKIHN0YXRpYyBlbnVtIG1hYzgzOTBf YWNjZXNzIG1hYzgzOTBfdGVzdGlvKHVuc2lnbmVkIGxvbmcgbWVtYmFzZSkKIHsKLQl1bnNpZ25l ZCBsb25nIG91dGRhdGEgPSAweEE1QTBCNUIwOwotCXVuc2lnbmVkIGxvbmcgaW5kYXRhID0gIDB4 MDAwMDAwMDA7CisJdTMyIG91dGRhdGEgPSAweEE1QTBCNUIwOworCXUzMiBpbmRhdGEgPSAwOwor CiAJLyogVHJ5IHdyaXRpbmcgMzIgYml0cyAqLwotCW1lbWNweV90b2lvKCh2b2lkIF9faW9tZW0g KiltZW1iYXNlLCAmb3V0ZGF0YSwgNCk7Ci0JLyogTm93IGNvbXBhcmUgdGhlbSAqLwotCWlmICht ZW1jbXBfd2l0aGlvKCZvdXRkYXRhLCBtZW1iYXNlLCA0KSA9PSAwKQorCW51YnVzX3dyaXRlbChv dXRkYXRhLCBtZW1iYXNlKTsKKwkvKiBOb3cgcmVhZCBpdCBiYWNrICovCisJaW5kYXRhID0gbnVi dXNfcmVhZGwobWVtYmFzZSk7CisJaWYgKG91dGRhdGEgPT0gaW5kYXRhKQogCQlyZXR1cm4gQUND RVNTXzMyOworCisJb3V0ZGF0YSA9IDB4QzVDMEQ1RDA7CisJaW5kYXRhID0gMDsKKwogCS8qIFdy aXRlIDE2IGJpdCBvdXRwdXQgKi8KIAl3b3JkX21lbWNweV90b2NhcmQobWVtYmFzZSwgJm91dGRh dGEsIDQpOwogCS8qIE5vdyByZWFkIGl0IGJhY2sgKi8KIAl3b3JkX21lbWNweV9mcm9tY2FyZCgm aW5kYXRhLCBtZW1iYXNlLCA0KTsKIAlpZiAob3V0ZGF0YSA9PSBpbmRhdGEpCiAJCXJldHVybiBB Q0NFU1NfMTY7CisKIAlyZXR1cm4gQUNDRVNTX1VOS05PV047CiB9CiAKLS0gCjIuMjAuMQoKCkZy b20gZjA4ZTdlNTRlYTg4OTk3YzE3Y2Q5NTVlNTYzYmNkY2ZlNzQ5NWI0MCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KRGF0 ZTogTW9uLCAxOCBNYXIgMjAxOSAwODo1MTowNiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzNd IG1JU0ROOiBoZmNwY2k6IFRlc3QgYm90aCB2ZW5kb3IgJiBkZXZpY2UgSUQgZm9yIERpZ2l1bQog SEZDNFMKClsgVXBzdHJlYW0gY29tbWl0IGZhZTg0NmUyYjcxMjRkNGIwNzZlZjE3NzkxYzczYWRk ZjNiMjYzNTAgXQoKVGhlIGRldmljZSBJRCBhbG9uZSBkb2VzIG5vdCB1bmlxdWVseSBpZGVudGlm eSBhIGRldmljZS4gIFRlc3QgYm90aCB0aGUKdmVuZG9yIGFuZCBkZXZpY2UgSUQgdG8gbWFrZSBz dXJlIHdlIGRvbid0IG1pc3Rha2VubHkgdGhpbmsgc29tZSBvdGhlcgp2ZW5kb3IncyAweEI0MTAg ZGV2aWNlIGlzIGEgRGlnaXVtIEhGQzRTLiAgQWxzbywgaW5zdGVhZCBvZiB0aGUgYmFyZSBoZXgK SUQsIHVzZSB0aGUgc2FtZSBjb25zdGFudCAoUENJX0RFVklDRV9JRF9ESUdJVU1fSEZDNFMpIHVz ZWQgaW4gdGhlIGRldmljZQpJRCB0YWJsZS4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVk LgoKU2lnbmVkLW9mZi1ieTogQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvaXNkbi9oYXJkd2FyZS9tSVNETi9oZmNtdWx0aS5jIHwgMyArKy0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2lzZG4vaGFyZHdhcmUvbUlTRE4vaGZjbXVsdGkuYyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9t SVNETi9oZmNtdWx0aS5jCmluZGV4IDRkODU2NDVjODdmNy4uMDkyOGZkMWYwZTBjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvbUlTRE4vaGZjbXVsdGkuYworKysgYi9kcml2ZXJz L2lzZG4vaGFyZHdhcmUvbUlTRE4vaGZjbXVsdGkuYwpAQCAtNDM2NSw3ICs0MzY1LDggQEAgc2V0 dXBfcGNpKHN0cnVjdCBoZmNfbXVsdGkgKmhjLCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAlpZiAo bS0+Y2xvY2syKQogCQl0ZXN0X2FuZF9zZXRfYml0KEhGQ19DSElQX0NMT0NLMiwgJmhjLT5jaGlw KTsKIAotCWlmIChlbnQtPmRldmljZSA9PSAweEI0MTApIHsKKwlpZiAoZW50LT52ZW5kb3IgPT0g UENJX1ZFTkRPUl9JRF9ESUdJVU0gJiYKKwkgICAgZW50LT5kZXZpY2UgPT0gUENJX0RFVklDRV9J RF9ESUdJVU1fSEZDNFMpIHsKIAkJdGVzdF9hbmRfc2V0X2JpdChIRkNfQ0hJUF9CNDEwUCwgJmhj LT5jaGlwKTsKIAkJdGVzdF9hbmRfc2V0X2JpdChIRkNfQ0hJUF9QQ01fTUFTVEVSLCAmaGMtPmNo aXApOwogCQl0ZXN0X2FuZF9jbGVhcl9iaXQoSEZDX0NISVBfUENNX1NMQVZFLCAmaGMtPmNoaXAp OwotLSAKMi4yMC4xCgoKRnJvbSA3YjQ2ODNhYzA4NzQzZDhmMDc2NzFkYjZmM2RkYzRlZTk5NjFl ZGVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEbWl0cnkgQm9nZGFub3YgPGRtaXRy eS5ib2dkYW5vdkBhcXVhbnRpYS5jb20+CkRhdGU6IFNhdCwgMTYgTWFyIDIwMTkgMDg6Mjg6MTgg KzAwMDAKU3ViamVjdDogW1BBVENIIDA3LzMzXSBuZXQ6IGFxdWFudGlhOiBmaXggcnggY2hlY2tz dW0gb2ZmbG9hZCBmb3IgVURQL1RDUCBvdmVyCiBJUHY2CgpbIFVwc3RyZWFtIGNvbW1pdCBhN2Zh YWEwYzVkYzdkMDkxY2M5ZjcyYjg3MGQ3ZWRjZGQ2ZjQzZjEyIF0KClRDUC9VRFAgY2hlY2tzdW0g dmFsaWRpdHkgd2FzIHByb3BhZ2F0ZWQgdG8gc2tiCm9ubHkgaWYgSVAgY2hlY2tzdW0gaXMgdmFs aWQuCkJ1dCBmb3IgSVB2NiB0aGVyZSBpcyBubyB2YWxpZGl0eSBhcyB0aGVyZSBpcyBubyBjaGVj a3N1bSBpbiBJUHY2LgpUaGlzIHBhdGNoIHByb3BhZ2F0ZXMgVENQL1VEUCBjaGVja3N1bSB2YWxp ZGl0eSByZWdhcmRsZXNzIG9mIElQIGNoZWNrc3VtLgoKRml4ZXM6IDAxODQyM2U5MGJlZSAoIm5l dDogZXRoZXJuZXQ6IGFxdWFudGlhOiBBZGQgcmluZyBzdXBwb3J0IGNvZGUiKQpTaWduZWQtb2Zm LWJ5OiBJZ29yIFJ1c3NraWtoIDxpZ29yLnJ1c3NraWtoQGFxdWFudGlhLmNvbT4KU2lnbmVkLW9m Zi1ieTogTmlraXRhIERhbmlsb3YgPG5pa2l0YS5kYW5pbG92QGFxdWFudGlhLmNvbT4KU2lnbmVk LW9mZi1ieTogRG1pdHJ5IEJvZ2Rhbm92IDxkbWl0cnkuYm9nZGFub3ZAYXF1YW50aWEuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvYXFfcmluZy5jIHwgNSArKyst LQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9hcV9yaW5nLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9hcV9yaW5nLmMKaW5kZXgg NzQ1NTBjY2M3YTIwLi5lMmZmYjE1OWNiZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2FxdWFudGlhL2F0bGFudGljL2FxX3JpbmcuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9hcXVhbnRpYS9hdGxhbnRpYy9hcV9yaW5nLmMKQEAgLTE4NiwxMSArMTg2LDEyIEBAIHN0YXRp YyB2b2lkIGFxX3J4X2NoZWNrc3VtKHN0cnVjdCBhcV9yaW5nX3MgKnNlbGYsCiAJfQogCWlmIChi dWZmLT5pc19pcF9jc28pIHsKIAkJX19za2JfaW5jcl9jaGVja3N1bV91bm5lY2Vzc2FyeShza2Ip OwotCQlpZiAoYnVmZi0+aXNfdWRwX2NzbyB8fCBidWZmLT5pc190Y3BfY3NvKQotCQkJX19za2Jf aW5jcl9jaGVja3N1bV91bm5lY2Vzc2FyeShza2IpOwogCX0gZWxzZSB7CiAJCXNrYi0+aXBfc3Vt bWVkID0gQ0hFQ0tTVU1fTk9ORTsKIAl9CisKKwlpZiAoYnVmZi0+aXNfdWRwX2NzbyB8fCBidWZm LT5pc190Y3BfY3NvKQorCQlfX3NrYl9pbmNyX2NoZWNrc3VtX3VubmVjZXNzYXJ5KHNrYik7CiB9 CiAKICNkZWZpbmUgQVFfU0tCX0FMSUdOIFNLQl9EQVRBX0FMSUdOKHNpemVvZihzdHJ1Y3Qgc2ti X3NoYXJlZF9pbmZvKSkKLS0gCjIuMjAuMQoKCkZyb20gNDVmYmFlMGI3ODdjM2ZhY2U0NmQ5ZjY2 ZDQwMjNjZjY5MDBkZmVjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJl bmkgPHBhYmVuaUByZWRoYXQuY29tPgpEYXRlOiBNb24sIDI1IE1hciAyMDE5IDE0OjE4OjA2ICsw MTAwClN1YmplY3Q6IFtQQVRDSCAwOC8zM10gbmV0OiBkYXRhZ3JhbTogZml4IHVuYm91bmRlZCBs b29wIGluCiBfX3NrYl90cnlfcmVjdl9kYXRhZ3JhbSgpCgpbIFVwc3RyZWFtIGNvbW1pdCAwYjkx YmNlMWViZmM3OTdmZjNkZTYwYzhmNGExZTYyMTlhOGEzMTg3IF0KCkNocmlzdG9waCByZXBvcnRl ZCBhIHN0YWxsIHdoaWxlIHBlZWtpbmcgZGF0YWdyYW0gd2l0aCBhbiBvZmZzZXQgd2hlbgpidXN5 IHBvbGxpbmcgaXMgZW5hYmxlZC4gX19za2JfdHJ5X3JlY3ZfZGF0YWdyYW0oKSB1c2VzIGFzIHRo ZSBsb29wCnRlcm1pbmF0aW9uIGNvbmRpdGlvbiAncXVldWUgZW1wdHknLiBXaGVuIHBlZWtpbmcs IHRoZSBzb2NrZXQKcXVldWUgY2FuIGJlIG5vdCBlbXB0eSwgZXZlbiB3aGVuIG5vIGFkZGl0aW9u YWwgcGFja2V0cyBhcmUgcmVjZWl2ZWQuCgpBZGRyZXNzIHRoZSBpc3N1ZSBleHBsaWNpdGx5IGNo ZWNraW5nIGZvciByZWNlaXZlIHF1ZXVlIGNoYW5nZXMsCmFzIGN1cnJlbnRseSBkb25lIGJ5IF9f c2tiX3dhaXRfZm9yX21vcmVfcGFja2V0cygpLgoKRml4ZXM6IDJiNWNkMGRmYTM4NCAoIm5ldDog Q2hhbmdlIHJldHVybiB0eXBlIG9mIHNrX2J1c3lfbG9vcCBmcm9tIGJvb2wgdG8gdm9pZCIpClJl cG9ydGVkLWFuZC10ZXN0ZWQtYnk6IENocmlzdG9waCBQYWFzY2ggPGNwYWFzY2hAYXBwbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29y ZS9kYXRhZ3JhbS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdyYW0uYyBiL25ldC9jb3JlL2Rh dGFncmFtLmMKaW5kZXggYjI2NTFiYjZkMmEzLi5lNjU3Mjg5ZGI0YWMgMTAwNjQ0Ci0tLSBhL25l dC9jb3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwpAQCAtMjc5LDcgKzI3 OSw3IEBAIHN0cnVjdCBza19idWZmICpfX3NrYl90cnlfcmVjdl9kYXRhZ3JhbShzdHJ1Y3Qgc29j ayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJCWJyZWFrOwogCiAJCXNrX2J1c3lfbG9vcChz aywgZmxhZ3MgJiBNU0dfRE9OVFdBSVQpOwotCX0gd2hpbGUgKCFza2JfcXVldWVfZW1wdHkoJnNr LT5za19yZWNlaXZlX3F1ZXVlKSk7CisJfSB3aGlsZSAoc2stPnNrX3JlY2VpdmVfcXVldWUucHJl diAhPSAqbGFzdCk7CiAKIAllcnJvciA9IC1FQUdBSU47CiAKLS0gCjIuMjAuMQoKCkZyb20gOTU2 YmNhNzc0YWM3OWNlMjM2NzNmNTIxNjc1OWI5NjM0MDJiZDM3ZCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQ2hyaXN0b3BoIFBhYXNjaCA8Y3BhYXNjaEBhcHBsZS5jb20+CkRhdGU6IE1v biwgMTggTWFyIDIwMTkgMjM6MTQ6NTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzMzXSBuZXQv cGFja2V0OiBTZXQgX19HRlBfTk9XQVJOIHVwb24gYWxsb2NhdGlvbiBpbgogYWxsb2NfcGdfdmVj CgpbIFVwc3RyZWFtIGNvbW1pdCAzOThmMDEzMmMxNDc1NGZjZDAzYzFjNGY4ZTcxNzZkMDAxY2U4 ZWExIF0KClNpbmNlIGNvbW1pdCBmYzYyODE0ZDY5MGMgKCJuZXQvcGFja2V0OiBmaXggNGdiIGJ1 ZmZlciBsaW1pdCBkdWUgdG8gb3ZlcmZsb3cgY2hlY2siKQpvbmUgY2FuIG5vdyBhbGxvY2F0ZSBw YWNrZXQgcmluZyBidWZmZXJzID49IFVJTlRfTUFYLiBIb3dldmVyLCBzeXprYWxsZXIKZm91bmQg dGhhdCB0aGF0IHRyaWdnZXJzIGEgd2FybmluZzoKClsgICAyMS4xMDAwMDBdIFdBUk5JTkc6IENQ VTogMiBQSUQ6IDIwNzUgYXQgbW0vcGFnZV9hbGxvYy5jOjQ1ODQgX19hbGxvY19wYWdlc19ub2Qw ClsgICAyMS4xMDE0OTBdIE1vZHVsZXMgbGlua2VkIGluOgpbICAgMjEuMTAxOTIxXSBDUFU6IDIg UElEOiAyMDc1IENvbW06IHN5ei1leGVjdXRvci4wIE5vdCB0YWludGVkIDUuMC4wICMxNDYKWyAg IDIxLjEwMjc4NF0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJ WCwgMTk5NiksIEJJT1MgMC41LjEgMDEvMDEvMjAxMQpbICAgMjEuMTAzODg3XSBSSVA6IDAwMTA6 X19hbGxvY19wYWdlc19ub2RlbWFzaysweDJhMC8weDYzMApbICAgMjEuMTA0NjQwXSBDb2RlOiBm ZSBmZiBmZiA2NSA0OCA4YiAwNCAyNSBjMCBkZSAwMSAwMCA0OCAwNSA5MCAwZiAwMCAwMCA0MSBi ZCAwMSAwMCAwMCAwMCA0OCA4OSA0NCAyNCA0OCBlOSA5YyBmZSAzClsgICAyMS4xMDcxMjFdIFJT UDogMDAxODpmZmZmODg4MDVlMWNmOTIwIEVGTEFHUzogMDAwMTAyNDYKWyAgIDIxLjEwNzgxOV0g UkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmZmZmZmZmY4NWE0ODhhMCBSQ1g6IDAwMDAwMDAw MDAwMDAwMDAKWyAgIDIxLjEwODc1M10gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZGZmZmZj MDAwMDAwMDAwMCBSREk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDIxLjEwOTY5OV0gUkJQOiAxZmZm ZjExMDBiYzM5ZjI4IFIwODogZmZmZmVkMTAwYmNlZmI2NyBSMDk6IGZmZmZlZDEwMGJjZWZiNjcK WyAgIDIxLjExMDY0Nl0gUjEwOiAwMDAwMDAwMDAwMDAwMDAxIFIxMTogZmZmZmVkMTAwYmNlZmI2 NiBSMTI6IDAwMDAwMDAwMDAwMDAwMGQKWyAgIDIxLjExMTYyM10gUjEzOiAwMDAwMDAwMDAwMDAw MDAwIFIxNDogZmZmZjg4ODA1ZTc3ZDg4OCBSMTU6IDAwMDAwMDAwMDAwMDAwMGQKWyAgIDIxLjEx MjU1Ml0gRlM6ICAwMDAwN2Y3YzdkZTA1NzAwKDAwMDApIEdTOmZmZmY4ODgwNmQxMDAwMDAoMDAw MCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICAgMjEuMTEzNjEyXSBDUzogIDAwMTAgRFM6IDAw MDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgICAyMS4xMTQ0MDVdIENSMjogMDAw MDAwMDAwMDY1YzAwMCBDUjM6IDAwMDAwMDAwNWU1OGUwMDYgQ1I0OiAwMDAwMDAwMDAwMTYwNmUw ClsgICAyMS4xMTUzNjddIENhbGwgVHJhY2U6ClsgICAyMS4xMTU3MDVdICA/IF9fYWxsb2NfcGFn ZXNfc2xvd3BhdGgrMHgyMWMwLzB4MjFjMApbICAgMjEuMTE2MzYyXSAgYWxsb2NfcGFnZXNfY3Vy cmVudCsweGFjLzB4MWUwClsgICAyMS4xMTY5MjNdICBrbWFsbG9jX29yZGVyKzB4MTgvMHg3MApb ICAgMjEuMTE3MzkzXSAga21hbGxvY19vcmRlcl90cmFjZSsweDE4LzB4MTEwClsgICAyMS4xMTc5 NDldICBwYWNrZXRfc2V0X3JpbmcrMHg5ZDUvMHgxNzcwClsgICAyMS4xMTg1MjRdICA/IHBhY2tl dF9yY3Zfc3BrdCsweDQ0MC8weDQ0MApbICAgMjEuMTE5MDk0XSAgPyBsb2NrX2Rvd25ncmFkZSsw eDYyMC8weDYyMApbICAgMjEuMTE5NjQ2XSAgPyBfX21pZ2h0X2ZhdWx0KzB4MTc3LzB4MWIwClsg ICAyMS4xMjAxNzddICBwYWNrZXRfc2V0c29ja29wdCsweDk4MS8weDI5NDAKWyAgIDIxLjEyMDc1 M10gID8gX19mZ2V0KzB4MmZiLzB4NGIwClsgICAyMS4xMjEyMDldICA/IHBhY2tldF9yZWxlYXNl KzB4YWIwLzB4YWIwClsgICAyMS4xMjE3NDBdICA/IHNvY2tfaGFzX3Blcm0rMHgxY2QvMHgyNjAK WyAgIDIxLjEyMjI5N10gID8gc2VsaW51eF9zZWNtYXJrX3JlbGFiZWxfcGFja2V0KzB4ZDAvMHhk MApbICAgMjEuMTIzMDEzXSAgPyBfX2ZnZXQrMHgzMjQvMHg0YjAKWyAgIDIxLjEyMzQ1MV0gID8g c2VsaW51eF9uZXRsYmxfc29ja2V0X3NldHNvY2tvcHQrMHgxMDEvMHgzMjAKWyAgIDIxLjEyNDE4 Nl0gID8gc2VsaW51eF9uZXRsYmxfc29ja19yY3Zfc2tiKzB4M2EwLzB4M2EwClsgICAyMS4xMjQ5 MDhdICA/IF9fbG9ja19hY3F1aXJlKzB4NTI5LzB4MzIwMApbICAgMjEuMTI1NDUzXSAgPyBzZWxp bnV4X3NvY2tldF9zZXRzb2Nrb3B0KzB4NWQvMHg3MApbICAgMjEuMTI2MDc1XSAgPyBfX3N5c19z ZXRzb2Nrb3B0KzB4MTMxLzB4MjEwClsgICAyMS4xMjY1MzNdICA/IHBhY2tldF9yZWxlYXNlKzB4 YWIwLzB4YWIwClsgICAyMS4xMjcwMDRdICBfX3N5c19zZXRzb2Nrb3B0KzB4MTMxLzB4MjEwClsg ICAyMS4xMjc0NDldICA/IGtlcm5lbF9hY2NlcHQrMHgyZjAvMHgyZjAKWyAgIDIxLjEyNzkxMV0g ID8gcmV0X2Zyb21fZm9yaysweDgvMHg1MApbICAgMjEuMTI4MzEzXSAgPyBkb19yYXdfc3Bpbl9s b2NrKzB4MTFiLzB4MjgwClsgICAyMS4xMjg4MDBdICBfX3g2NF9zeXNfc2V0c29ja29wdCsweGJh LzB4MTUwClsgICAyMS4xMjkyNzFdICA/IGxvY2tkZXBfaGFyZGlycXNfb24rMHgzN2YvMHg1NjAK WyAgIDIxLjEyOTc2OV0gIGRvX3N5c2NhbGxfNjQrMHg5Zi8weDQ1MApbICAgMjEuMTMwMTgyXSAg ZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQoKV2Ugc2hvdWxkIGFsbG9j YXRlIHdpdGggX19HRlBfTk9XQVJOIHRvIGhhbmRsZSB0aGlzLgoKQ2M6IEthbCBDb25sZXkgPGth bC5jb25sZXlAZGVjdHJpcy5jb20+CkNjOiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdv b2dsZS5jb20+CkZpeGVzOiBmYzYyODE0ZDY5MGMgKCJuZXQvcGFja2V0OiBmaXggNGdiIGJ1ZmZl ciBsaW1pdCBkdWUgdG8gb3ZlcmZsb3cgY2hlY2siKQpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGgg UGFhc2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRl eCAxY2QxZDgzYTRiZTAuLjI3ODRiZmExYmM5YiAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9w YWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC00MjExLDcgKzQyMTEsNyBA QCBzdGF0aWMgc3RydWN0IHBndiAqYWxsb2NfcGdfdmVjKHN0cnVjdCB0cGFja2V0X3JlcSAqcmVx LCBpbnQgb3JkZXIpCiAJc3RydWN0IHBndiAqcGdfdmVjOwogCWludCBpOwogCi0JcGdfdmVjID0g a2NhbGxvYyhibG9ja19uciwgc2l6ZW9mKHN0cnVjdCBwZ3YpLCBHRlBfS0VSTkVMKTsKKwlwZ192 ZWMgPSBrY2FsbG9jKGJsb2NrX25yLCBzaXplb2Yoc3RydWN0IHBndiksIEdGUF9LRVJORUwgfCBf X0dGUF9OT1dBUk4pOwogCWlmICh1bmxpa2VseSghcGdfdmVjKSkKIAkJZ290byBvdXQ7CiAKLS0g CjIuMjAuMQoKCkZyb20gNjgwMjQwYTFhMGI3NWJjOTExYTcyOTIwYmIxZTQ3Y2Q0ODNiMDc1NSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmVyb21lIEJydW5ldCA8amJydW5ldEBiYXls aWJyZS5jb20+CkRhdGU6IFRodSwgMTQgTWFyIDIwMTkgMTQ6NDk6NDUgKzAxMDAKU3ViamVjdDog W1BBVENIIDEwLzMzXSBuZXQ6IHBoeTogbWVzb24tZ3hsOiBmaXggaW50ZXJydXB0IHN1cHBvcnQK ClsgVXBzdHJlYW0gY29tbWl0IGRhYTVjNGQwMTY3YTMwODMwNjUyNWZkNWFiOWE1ZTE4ZTIxZjRm NzQgXQoKSWYgYW4gaW50ZXJydXB0IGlzIGFscmVhZHkgcGVuZGluZyB3aGVuIHRoZSBpbnRlcnJ1 cHQgaXMgZW5hYmxlZCBvbiB0aGUKR1hMIHBoeSwgbm8gSVJRIHdpbGwgZXZlciBiZSB0cmlnZ2Vy ZWQuCgpUaGUgZml4IGlzIHNpbXBseSB0byBtYWtlIHN1cmUgcGVuZGluZyBJUlFzIGFyZSBjbGVh cmVkIGJlZm9yZSBzZXR0aW5nCnVwIHRoZSBpcnEgbWFzay4KCkZpeGVzOiBjZjEyN2ZmMjBhZjEg KCJuZXQ6IHBoeTogbWVzb24tZ3hsOiBhZGQgaW50ZXJydXB0IHN1cHBvcnQiKQpTaWduZWQtb2Zm LWJ5OiBKZXJvbWUgQnJ1bmV0IDxqYnJ1bmV0QGJheWxpYnJlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3Bo eS9tZXNvbi1neGwuYyB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21lc29uLWd4bC5jIGIvZHJpdmVycy9uZXQv cGh5L21lc29uLWd4bC5jCmluZGV4IDNkZGFmOTU5NTY5Ny4uNjhhZjRjNzVmZmIzIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9waHkvbWVzb24tZ3hsLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21l c29uLWd4bC5jCkBAIC0yMTEsNiArMjExLDcgQEAgc3RhdGljIGludCBtZXNvbl9neGxfYWNrX2lu dGVycnVwdChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogc3RhdGljIGludCBtZXNvbl9neGxf Y29uZmlnX2ludHIoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIHsKIAl1MTYgdmFsOworCWlu dCByZXQ7CiAKIAlpZiAocGh5ZGV2LT5pbnRlcnJ1cHRzID09IFBIWV9JTlRFUlJVUFRfRU5BQkxF RCkgewogCQl2YWwgPSBJTlRTUkNfQU5FR19QUgpAQCAtMjIzLDYgKzIyNCwxMSBAQCBzdGF0aWMg aW50IG1lc29uX2d4bF9jb25maWdfaW50cihzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCQl2 YWwgPSAwOwogCX0KIAorCS8qIEFjayBhbnkgcGVuZGluZyBJUlEgKi8KKwlyZXQgPSBtZXNvbl9n eGxfYWNrX2ludGVycnVwdChwaHlkZXYpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKIAly ZXR1cm4gcGh5X3dyaXRlKHBoeWRldiwgSU5UU1JDX01BU0ssIHZhbCk7CiB9CiAKLS0gCjIuMjAu MQoKCkZyb20gZjY2ZmVhYWRhNWYwODg5ODAyYTU2YWY5NzcyN2Q1NDFiYzE3MWNhOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpEYXRlOiBGcmksIDE1IE1hciAyMDE5IDEwOjQxOjE0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAx MS8zM10gbmV0OiByb3NlOiBmaXggYSBwb3NzaWJsZSBzdGFjayBvdmVyZmxvdwoKWyBVcHN0cmVh bSBjb21taXQgZTVkY2MwYzMyMjNjNDVjOTQxMDBmMDVmMjhkOGVmODE0ZGIzZDgyYyBdCgpyb3Nl X3dyaXRlX2ludGVybmFsKCkgdXNlcyBhIHRlbXAgYnVmZmVyIG9mIDEwMCBieXRlcywgYnV0IGEg bWFudWFsCmluc3BlY3Rpb24gc2hvd2VkIHRoYXQgZ2l2ZW4gYXJiaXRyYXJ5IGlucHV0LCByb3Nl X2NyZWF0ZV9mYWNpbGl0aWVzKCkKY2FuIGZpbGwgdXAgdG8gMTEwIGJ5dGVzLgoKTGV0cyB1c2Ug YSB0YWlscm9vbSBvZiAyNTYgYnl0ZXMgZm9yIHBlYWNlIG9mIG1pbmQsIGFuZCByZW1vdmUKdGhl IGJvdW5jZSBidWZmZXIgOiB3ZSBjYW4gc2ltcGx5IGFsbG9jYXRlIGEgYmlnIGVub3VnaCBza2IK YW5kIGFkanVzdCBpdHMgbGVuZ3RoIGFzIG5lZWRlZC4KCnN5emJvdCByZXBvcnQgOgoKQlVHOiBL QVNBTjogc3RhY2stb3V0LW9mLWJvdW5kcyBpbiBtZW1jcHkgaW5jbHVkZS9saW51eC9zdHJpbmcu aDozNTIgW2lubGluZV0KQlVHOiBLQVNBTjogc3RhY2stb3V0LW9mLWJvdW5kcyBpbiByb3NlX2Ny ZWF0ZV9mYWNpbGl0aWVzIG5ldC9yb3NlL3Jvc2Vfc3Vici5jOjUyMSBbaW5saW5lXQpCVUc6IEtB U0FOOiBzdGFjay1vdXQtb2YtYm91bmRzIGluIHJvc2Vfd3JpdGVfaW50ZXJuYWwrMHg1OTcvMHgx NWQwIG5ldC9yb3NlL3Jvc2Vfc3Vici5jOjExNgpXcml0ZSBvZiBzaXplIDcgYXQgYWRkciBmZmZm ODg4MDhiMWZmYmVmIGJ5IHRhc2sgc3l6LWV4ZWN1dG9yLjAvMjQ4NTQKCkNQVTogMCBQSUQ6IDI0 ODU0IENvbW06IHN5ei1leGVjdXRvci4wIE5vdCB0YWludGVkIDUuMC4wKyAjOTcKSGFyZHdhcmUg bmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUs IEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVt cF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTcyLzB4MWYwIGxpYi9kdW1wX3N0 YWNrLmM6MTEzCiBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uLmNvbGQrMHg3Yy8weDIwZCBtbS9r YXNhbi9yZXBvcnQuYzoxODcKIGthc2FuX3JlcG9ydC5jb2xkKzB4MWIvMHg0MCBtbS9rYXNhbi9y ZXBvcnQuYzozMTcKIGNoZWNrX21lbW9yeV9yZWdpb25faW5saW5lIG1tL2thc2FuL2dlbmVyaWMu YzoxODUgW2lubGluZV0KIGNoZWNrX21lbW9yeV9yZWdpb24rMHgxMjMvMHgxOTAgbW0va2FzYW4v Z2VuZXJpYy5jOjE5MQogbWVtY3B5KzB4MzgvMHg1MCBtbS9rYXNhbi9jb21tb24uYzoxMzEKIG1l bWNweSBpbmNsdWRlL2xpbnV4L3N0cmluZy5oOjM1MiBbaW5saW5lXQogcm9zZV9jcmVhdGVfZmFj aWxpdGllcyBuZXQvcm9zZS9yb3NlX3N1YnIuYzo1MjEgW2lubGluZV0KIHJvc2Vfd3JpdGVfaW50 ZXJuYWwrMHg1OTcvMHgxNWQwIG5ldC9yb3NlL3Jvc2Vfc3Vici5jOjExNgogcm9zZV9jb25uZWN0 KzB4N2NiLzB4MTUxMCBuZXQvcm9zZS9hZl9yb3NlLmM6ODI2CiBfX3N5c19jb25uZWN0KzB4MjY2 LzB4MzMwIG5ldC9zb2NrZXQuYzoxNjg1CiBfX2RvX3N5c19jb25uZWN0IG5ldC9zb2NrZXQuYzox Njk2IFtpbmxpbmVdCiBfX3NlX3N5c19jb25uZWN0IG5ldC9zb2NrZXQuYzoxNjkzIFtpbmxpbmVd CiBfX3g2NF9zeXNfY29ubmVjdCsweDczLzB4YjAgbmV0L3NvY2tldC5jOjE2OTMKIGRvX3N5c2Nh bGxfNjQrMHgxMDMvMHg2MTAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MjkwCiBlbnRyeV9TWVND QUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlClJJUDogMDAzMzoweDQ1ODA3OQpDb2RlOiBh ZCBiOCBmYiBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCA2NiA5MCA0OCA4OSBm OCA0OCA4OSBmNyA0OCA4OSBkNiA0OCA4OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0YyAy NCAwOCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDBmIDgzIDdiIGI4IGZiIGZmIGMzIDY2IDJl IDBmIDFmIDg0IDAwIDAwIDAwIDAwClJTUDogMDAyYjowMDAwN2Y0N2I4ZDlkYzc4IEVGTEFHUzog MDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmEKUkFYOiBmZmZmZmZmZmZmZmZmZmRh IFJCWDogMDAwMDAwMDAwMDAwMDAwMyBSQ1g6IDAwMDAwMDAwMDA0NTgwNzkKUkRYOiAwMDAwMDAw MDAwMDAwMDFjIFJTSTogMDAwMDAwMDAyMDAwMDA0MCBSREk6IDAwMDAwMDAwMDAwMDAwMDQKUkJQ OiAwMDAwMDAwMDAwNzNiZjAwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAw MDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAw MDA3ZjQ3YjhkOWU2ZDQKUjEzOiAwMDAwMDAwMDAwNGJlNGE0IFIxNDogMDAwMDAwMDAwMDRjZWNh OCBSMTU6IDAwMDAwMDAwZmZmZmZmZmYKClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhl IHBhZ2U6CnBhZ2U6ZmZmZmVhMDAwMjJjN2ZjMCBjb3VudDowIG1hcGNvdW50OjAgbWFwcGluZzow MDAwMDAwMDAwMDAwMDAwIGluZGV4OjB4MApmbGFnczogMHgxZmZmYzAwMDAwMDAwMDAoKQpyYXc6 IDAxZmZmYzAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmZmZmZjAyMmMwMTAxIDAwMDAw MDAwMDAwMDAwMDAKcmF3OiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAw MDBmZmZmZmZmZiAwMDAwMDAwMDAwMDAwMDAwCnBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBi YWQgYWNjZXNzIGRldGVjdGVkCgpNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNz OgogZmZmZjg4ODA4YjFmZmE4MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAKIGZmZmY4ODgwOGIxZmZiMDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGYx IGYxIGYxIGYxIDAwIDAwIDAwIDAzCj5mZmZmODg4MDhiMWZmYjgwOiBmMiBmMiAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwNCBmMwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZmZmZjg4ODA4YjFmZmMwMDog ZjMgZjMgZjMgZjMgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKIGZmZmY4ODgw OGIxZmZjODA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIGYxIGYxIGYxIGYxIGYxIGYxIDAxIGYyIDAx CgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9y dGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Jvc2Uvcm9z ZV9zdWJyLmMgfCAyMSArKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMiBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9yb3NlL3Jvc2Vf c3Vici5jIGIvbmV0L3Jvc2Uvcm9zZV9zdWJyLmMKaW5kZXggN2NhNTc3NDFiMmZiLi43ODQ5ZjI4 NmJiOTMgMTAwNjQ0Ci0tLSBhL25ldC9yb3NlL3Jvc2Vfc3Vici5jCisrKyBiL25ldC9yb3NlL3Jv c2Vfc3Vici5jCkBAIC0xMDUsMTYgKzEwNSwxNyBAQCB2b2lkIHJvc2Vfd3JpdGVfaW50ZXJuYWwo c3RydWN0IHNvY2sgKnNrLCBpbnQgZnJhbWV0eXBlKQogCXN0cnVjdCBza19idWZmICpza2I7CiAJ dW5zaWduZWQgY2hhciAgKmRwdHI7CiAJdW5zaWduZWQgY2hhciAgbGNpMSwgbGNpMjsKLQljaGFy IGJ1ZmZlclsxMDBdOwotCWludCBsZW4sIGZhY2xlbiA9IDA7CisJaW50IG1heGZhY2xlbiA9IDA7 CisJaW50IGxlbiwgZmFjbGVuOworCWludCByZXNlcnZlOwogCi0JbGVuID0gQVgyNV9CUFFfSEVB REVSX0xFTiArIEFYMjVfTUFYX0hFQURFUl9MRU4gKyBST1NFX01JTl9MRU4gKyAxOworCXJlc2Vy dmUgPSBBWDI1X0JQUV9IRUFERVJfTEVOICsgQVgyNV9NQVhfSEVBREVSX0xFTiArIDE7CisJbGVu ID0gUk9TRV9NSU5fTEVOOwogCiAJc3dpdGNoIChmcmFtZXR5cGUpIHsKIAljYXNlIFJPU0VfQ0FM TF9SRVFVRVNUOgogCQlsZW4gICArPSAxICsgUk9TRV9BRERSX0xFTiArIFJPU0VfQUREUl9MRU47 Ci0JCWZhY2xlbiA9IHJvc2VfY3JlYXRlX2ZhY2lsaXRpZXMoYnVmZmVyLCByb3NlKTsKLQkJbGVu ICAgKz0gZmFjbGVuOworCQltYXhmYWNsZW4gPSAyNTY7CiAJCWJyZWFrOwogCWNhc2UgUk9TRV9D QUxMX0FDQ0VQVEVEOgogCWNhc2UgUk9TRV9DTEVBUl9SRVFVRVNUOgpAQCAtMTIzLDE1ICsxMjQs MTYgQEAgdm9pZCByb3NlX3dyaXRlX2ludGVybmFsKHN0cnVjdCBzb2NrICpzaywgaW50IGZyYW1l dHlwZSkKIAkJYnJlYWs7CiAJfQogCi0JaWYgKChza2IgPSBhbGxvY19za2IobGVuLCBHRlBfQVRP TUlDKSkgPT0gTlVMTCkKKwlza2IgPSBhbGxvY19za2IocmVzZXJ2ZSArIGxlbiArIG1heGZhY2xl biwgR0ZQX0FUT01JQyk7CisJaWYgKCFza2IpCiAJCXJldHVybjsKIAogCS8qCiAJICoJU3BhY2Ug Zm9yIEFYLjI1IGhlYWRlciBhbmQgUElELgogCSAqLwotCXNrYl9yZXNlcnZlKHNrYiwgQVgyNV9C UFFfSEVBREVSX0xFTiArIEFYMjVfTUFYX0hFQURFUl9MRU4gKyAxKTsKKwlza2JfcmVzZXJ2ZShz a2IsIHJlc2VydmUpOwogCi0JZHB0ciA9IHNrYl9wdXQoc2tiLCBza2JfdGFpbHJvb20oc2tiKSk7 CisJZHB0ciA9IHNrYl9wdXQoc2tiLCBsZW4pOwogCiAJbGNpMSA9IChyb3NlLT5sY2kgPj4gOCkg JiAweDBGOwogCWxjaTIgPSAocm9zZS0+bGNpID4+IDApICYgMHhGRjsKQEAgLTE0Niw3ICsxNDgs OCBAQCB2b2lkIHJvc2Vfd3JpdGVfaW50ZXJuYWwoc3RydWN0IHNvY2sgKnNrLCBpbnQgZnJhbWV0 eXBlKQogCQlkcHRyICAgKz0gUk9TRV9BRERSX0xFTjsKIAkJbWVtY3B5KGRwdHIsICZyb3NlLT5z b3VyY2VfYWRkciwgUk9TRV9BRERSX0xFTik7CiAJCWRwdHIgICArPSBST1NFX0FERFJfTEVOOwot CQltZW1jcHkoZHB0ciwgYnVmZmVyLCBmYWNsZW4pOworCQlmYWNsZW4gPSByb3NlX2NyZWF0ZV9m YWNpbGl0aWVzKGRwdHIsIHJvc2UpOworCQlza2JfcHV0KHNrYiwgZmFjbGVuKTsKIAkJZHB0ciAg ICs9IGZhY2xlbjsKIAkJYnJlYWs7CiAKLS0gCjIuMjAuMQoKCkZyb20gNTQ5NmE1MThhNjQ2ZGM5 M2FlYjMwNTVhODlmMDk5ZmFkZjdiZTdjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QWFybyBLb3NraW5lbiA8YWFyby5rb3NraW5lbkBub2tpYS5jb20+CkRhdGU6IE1vbiwgMTggTWFy IDIwMTkgMjM6MzY6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzMzXSBuZXQ6IHN0bW1hYzog Zml4IG1lbW9yeSBjb3JydXB0aW9uIHdpdGggbGFyZ2UgTVRVcwoKWyBVcHN0cmVhbSBjb21taXQg MjIzYTk2MGMwMTIyN2U0ZGJjYjZmOWZhMDZiNDdkNzNiZGEyMTI3NCBdCgpXaGVuIHVzaW5nIDE2 SyBETUEgYnVmZmVycyBhbmQgcmluZyBtb2RlLCB0aGUgREVTMyByZWZpbGwgaXMgbm90IHdvcmtp bmcKY29ycmVjdGx5IGFzIHRoZSBmdW5jdGlvbiBpcyB1c2luZyBhIGJvZ3VzIHBvaW50ZXIgZm9y IGNoZWNraW5nIHRoZQpwcml2YXRlIGRhdGEuIEFzIGEgcmVzdWx0IHN0YWxlIHBvaW50ZXJzIHdp bGwgcmVtYWluIGluIHRoZSBSWCBkZXNjcmlwdG9yCnJpbmcsIHNvIERNQSB3aWxsIG5vdyBsaWtl bHkgb3ZlcndyaXRlL2NvcnJ1cHQgc29tZSBhbHJlYWR5IGZyZWVkIG1lbW9yeS4KCkFzIHNpbXBs ZSByZXByb2R1Y2VyLCBqdXN0IHJlY2VpdmUgc29tZSBVRFAgdHJhZmZpYzoKCgkjIGlmY29uZmln IGV0aDAgZG93bjsgaWZjb25maWcgZXRoMCBtdHUgOTAwMDsgaWZjb25maWcgZXRoMCB1cAoJIyBp cGVyZjMgLWMgMTkyLjE2OC4yNTMuNDAgLXUgLWIgMCAtUgoKSWYgeW91IGRpZG4ndCBjcmFzaCBi eSBub3cgY2hlY2sgdGhlIFJYIGRlc2NyaXB0b3JzIHRvIGZpbmQgbm9uLWNvbnRpZ3VvdXMKUlgg YnVmZmVyczoKCgljYXQgL3N5cy9rZXJuZWwvZGVidWcvc3RtbWFjZXRoL2V0aDAvZGVzY3JpcHRv cnNfc3RhdHVzCglbLi4uXQoJMSBbMHgyYmU1MDIwXTogMHhhMzIyMDMyMSAweDlmZmMxZmZjIDB4 NzJkNzAwODIgMHgxMzBlMjA3ZQoJCQkJCSAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eCgkyIFsw eDJiZTUwNDBdOiAweGEzMjIwMzIxIDB4OWZmYzFmZmMgMHg3Mjk5ODA4MiAweDEzMTFhMDdlCgkJ CQkJICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl4KCkEgc2ltcGxlIHBpbmcgdGVzdCB3aWxsIG5v dyByZXBvcnQgYmFkIGRhdGE6CgoJIyBwaW5nIC1zIDgyMDAgMTkyLjE2OC4yNTMuNDAKCVBJTkcg MTkyLjE2OC4yNTMuNDAgKDE5Mi4xNjguMjUzLjQwKSA4MjAwKDgyMjgpIGJ5dGVzIG9mIGRhdGEu Cgk4MjA4IGJ5dGVzIGZyb20gMTkyLjE2OC4yNTMuNDA6IGljbXBfc2VxPTEgdHRsPTY0IHRpbWU9 MS4wMCBtcwoJd3JvbmcgZGF0YSBieXRlICM4MTQ0IHNob3VsZCBiZSAweGQwIGJ1dCB3YXMgMHg4 OAoKRml4IHRoZSB3cm9uZyBwb2ludGVyLiBBbHNvIHdlIG11c3QgcmVmaWxsIERFUzMgb25seSBp ZiB0aGUgRE1BIGJ1ZmZlcgpzaXplIGlzIDE2Sy4KCkZpeGVzOiA1NDEzOWNmM2JiMzMgKCJuZXQ6 IHN0bW1hYzogYWRkaW5nIG11bHRpcGxlIGJ1ZmZlcnMgZm9yIHJ4IikKU2lnbmVkLW9mZi1ieTog QWFybyBLb3NraW5lbiA8YWFyby5rb3NraW5lbkBub2tpYS5jb20+CkFja2VkLWJ5OiBKb3NlIEFi cmV1IDxqb2FicmV1QHN5bm9wc3lzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL3JpbmdfbW9kZS5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9z dG1pY3JvL3N0bW1hYy9yaW5nX21vZGUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL3JpbmdfbW9kZS5jCmluZGV4IGQ4YzViYzQxMjIxOS4uYzBjNzVjMTExYWJiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9yaW5nX21vZGUuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9yaW5nX21vZGUuYwpAQCAt MTExLDEwICsxMTEsMTEgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpc19qdW1ib19mcm0oaW50IGxl biwgaW50IGVuaF9kZXNjKQogCiBzdGF0aWMgdm9pZCByZWZpbGxfZGVzYzModm9pZCAqcHJpdl9w dHIsIHN0cnVjdCBkbWFfZGVzYyAqcCkKIHsKLQlzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSAo c3RydWN0IHN0bW1hY19wcml2ICopcHJpdl9wdHI7CisJc3RydWN0IHN0bW1hY19yeF9xdWV1ZSAq cnhfcSA9IHByaXZfcHRyOworCXN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtPnByaXZf ZGF0YTsKIAogCS8qIEZpbGwgREVTMyBpbiBjYXNlIG9mIFJJTkcgbW9kZSAqLwotCWlmIChwcml2 LT5kbWFfYnVmX3N6ID49IEJVRl9TSVpFXzhLaUIpCisJaWYgKHByaXYtPmRtYV9idWZfc3ogPT0g QlVGX1NJWkVfMTZLaUIpCiAJCXAtPmRlczMgPSBjcHVfdG9fbGUzMihsZTMyX3RvX2NwdShwLT5k ZXMyKSArIEJVRl9TSVpFXzhLaUIpOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIDNjMjFhMjZlZmYz MDJhZWExY2IzNjE0M2E0NTlmOGI2YzEzMjA2M2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFl1ZUhhaWJpbmcgPHl1ZWhhaWJpbmdAaHVhd2VpLmNvbT4KRGF0ZTogVHVlLCAxOSBNYXIg MjAxOSAxMDoxNjo1MyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMzNdIG5ldC1zeXNmczogY2Fs bCBkZXZfaG9sZCBpZiBrb2JqZWN0X2luaXRfYW5kX2FkZAogc3VjY2VzcwoKWyBVcHN0cmVhbSBj b21taXQgYTNlMjNmNzE5ZjVjNGEzOGZmYjNkMzBjOGQ3NjMyYTRlZDhjY2Q5ZSBdCgpJbiBuZXRk ZXZfcXVldWVfYWRkX2tvYmplY3QgYW5kIHJ4X3F1ZXVlX2FkZF9rb2JqZWN0LAppZiBzeXNmc19j cmVhdGVfZ3JvdXAgZmFpbGVkLCBrb2JqZWN0X3B1dCB3aWxsIGNhbGwKbmV0ZGV2X3F1ZXVlX3Jl bGVhc2UgdG8gZGVjcmVhc2UgZGV2IHJlZmNvbnQsIGhvd2V2ZXIKZGV2X2hvbGQgaGFzIG5vdCBi ZSBjYWxsZWQuIFNvIHdlIHdpbGwgc2VlIHRoaXMgd2hpbGUKdW5yZWdpc3RlcmluZyBkZXY6Cgp1 bnJlZ2lzdGVyX25ldGRldmljZTogd2FpdGluZyBmb3IgYmNzaDAgdG8gYmVjb21lIGZyZWUuIFVz YWdlIGNvdW50ID0gLTEKClJlcG9ydGVkLWJ5OiBIdWxrIFJvYm90IDxodWxrY2lAaHVhd2VpLmNv bT4KRml4ZXM6IGQwZDY2ODM3MTY3OSAoIm5ldDogZG9uJ3QgZGVjcmVtZW50IGtvYmogcmVmZXJl bmNlIGNvdW50IG9uIGluaXQgZmFpbHVyZSIpClNpZ25lZC1vZmYtYnk6IFl1ZUhhaWJpbmcgPHl1 ZWhhaWJpbmdAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL25ldC1zeXNmcy5jIHwgNiArKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvbmV0LXN5c2ZzLmMgYi9uZXQvY29yZS9uZXQtc3lzZnMuYwppbmRleCA3M2Fk NzYwN2RjZDEuLmFlYzI2NTg0ZjBjYSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvbmV0LXN5c2ZzLmMK KysrIGIvbmV0L2NvcmUvbmV0LXN5c2ZzLmMKQEAgLTkzNCw2ICs5MzQsOCBAQCBzdGF0aWMgaW50 IHJ4X3F1ZXVlX2FkZF9rb2JqZWN0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBpbmRleCkK IAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAorCWRldl9ob2xkKHF1ZXVlLT5kZXYpOwor CiAJaWYgKGRldi0+c3lzZnNfcnhfcXVldWVfZ3JvdXApIHsKIAkJZXJyb3IgPSBzeXNmc19jcmVh dGVfZ3JvdXAoa29iaiwgZGV2LT5zeXNmc19yeF9xdWV1ZV9ncm91cCk7CiAJCWlmIChlcnJvcikg ewpAQCAtOTQzLDcgKzk0NSw2IEBAIHN0YXRpYyBpbnQgcnhfcXVldWVfYWRkX2tvYmplY3Qoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGluZGV4KQogCX0KIAogCWtvYmplY3RfdWV2ZW50KGtv YmosIEtPQkpfQUREKTsKLQlkZXZfaG9sZChxdWV1ZS0+ZGV2KTsKIAogCXJldHVybiBlcnJvcjsK IH0KQEAgLTE0NzIsNiArMTQ3Myw4IEBAIHN0YXRpYyBpbnQgbmV0ZGV2X3F1ZXVlX2FkZF9rb2Jq ZWN0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBpbmRleCkKIAlpZiAoZXJyb3IpCiAJCXJl dHVybiBlcnJvcjsKIAorCWRldl9ob2xkKHF1ZXVlLT5kZXYpOworCiAjaWZkZWYgQ09ORklHX0JR TAogCWVycm9yID0gc3lzZnNfY3JlYXRlX2dyb3VwKGtvYmosICZkcWxfZ3JvdXApOwogCWlmIChl cnJvcikgewpAQCAtMTQ4MSw3ICsxNDg0LDYgQEAgc3RhdGljIGludCBuZXRkZXZfcXVldWVfYWRk X2tvYmplY3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGluZGV4KQogI2VuZGlmCiAKIAlr b2JqZWN0X3VldmVudChrb2JqLCBLT0JKX0FERCk7Ci0JZGV2X2hvbGQocXVldWUtPmRldik7CiAK IAlyZXR1cm4gMDsKIH0KLS0gCjIuMjAuMQoKCkZyb20gMzE0NDY2YzZkZjMxYmFlODg2NTE4MmY5 YzEzZjgwMzUyZmFmMGNjNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2FuZyBIYWkg PHdhbmdoYWkyNkBodWF3ZWkuY29tPgpEYXRlOiBXZWQsIDIwIE1hciAyMDE5IDE0OjI1OjA1IC0w NDAwClN1YmplY3Q6IFtQQVRDSCAxNC8zM10gbmV0LXN5c2ZzOiBGaXggbWVtb3J5IGxlYWsgaW4g bmV0ZGV2X3JlZ2lzdGVyX2tvYmplY3QKClsgVXBzdHJlYW0gY29tbWl0IDZiNzBmYzk0YWZkMTY1 MzQyODc2ZTUzZmM0YjJmN2QwODUwMDk5NDUgXQoKV2hlbiByZWdpc3RlcmluZyBzdHJ1Y3QgbmV0 X2RldmljZSwgaXQgd2lsbCBjYWxsCglyZWdpc3Rlcl9uZXRkZXZpY2UgLT4KCQluZXRkZXZfcmVn aXN0ZXJfa29iamVjdCAtPgoJCQlkZXZpY2VfaW5pdGlhbGl6ZShkZXYpOwoJCQlkZXZfc2V0X25h bWUoZGV2LCAiJXMiLCBuZGV2LT5uYW1lKQoJCQlkZXZpY2VfYWRkKGRldikKCQkJcmVnaXN0ZXJf cXVldWVfa29iamVjdHMobmRldikKCkluIG5ldGRldl9yZWdpc3Rlcl9rb2JqZWN0KCksIGlmIGRl dmljZV9hZGQoZGV2KSBvcgpyZWdpc3Rlcl9xdWV1ZV9rb2JqZWN0cyhuZGV2KSBmYWlsZWQuIFJl Z2lzdGVyX25ldGRldmljZSgpCndpbGwgcmV0dXJuIGVycm9yLCBjYXVzaW5nIG5ldGRldl9mcmVl bWVtKG5kZXYpIHRvIGJlCmNhbGxlZCB0byBmcmVlIG5ldF9kZXZpY2UsIGhvd2V2ZXIgcHV0X2Rl dmljZSgmZGV2LT5kZXYpLT4uLi0+CmtvYmplY3RfY2xlYW51cCgpIHdvbid0IGJlIGNhbGxlZCwg cmVzdWx0aW5nIGluIGEgbWVtb3J5IGxlYWsuCgpzeXprYWxsZXIgcmVwb3J0IHRoaXM6CkJVRzog bWVtb3J5IGxlYWsKdW5yZWZlcmVuY2VkIG9iamVjdCAweGZmZmY4ODgxZjRmYWQxNjggKHNpemUg OCk6CmNvbW0gInN5ei1leGVjdXRvci4wIiwgcGlkIDM1NzUsIGppZmZpZXMgNDI5NDc3ODAwMiAo YWdlIDIwLjEzNHMpCmhleCBkdW1wIChmaXJzdCA4IGJ5dGVzKToKICA3NyA3MCA2MSA2ZSAzMCAw MCBmZiBmZiAgICAgICAgICAgICAgICAgICAgICAgICAgd3BhbjAuLi4KYmFja3RyYWNlOgogIFs8 MDAwMDAwMDA2ZDJkOTFkNz5dIGtzdHJkdXBfY29uc3QrMHgzZC8weDUwIG1tL3V0aWwuYzo3Mwog IFs8MDAwMDAwMDBiYTlmZjk1Mz5dIGt2YXNwcmludGZfY29uc3QrMHgxMTIvMHgxNzAgbGliL2th c3ByaW50Zi5jOjQ4CiAgWzwwMDAwMDAwMDU1NTVlYzA5Pl0ga29iamVjdF9zZXRfbmFtZV92YXJn cysweDU1LzB4MTMwIGxpYi9rb2JqZWN0LmM6MjgxCiAgWzwwMDAwMDAwMDk4ZDI4ZWMzPl0gZGV2 X3NldF9uYW1lKzB4YmIvMHhmMCBkcml2ZXJzL2Jhc2UvY29yZS5jOjE5MTUKICBbPDAwMDAwMDAw Yjc1NTMwMTc+XSBuZXRkZXZfcmVnaXN0ZXJfa29iamVjdCsweGMwLzB4NDEwIG5ldC9jb3JlL25l dC1zeXNmcy5jOjE3MjcKICBbPDAwMDAwMDAwYzgyNmE3OTc+XSByZWdpc3Rlcl9uZXRkZXZpY2Ur MHhhNTEvMHhlYjAgbmV0L2NvcmUvZGV2LmM6ODcxMQogIFs8MDAwMDAwMDA4NTdiZmNmZD5dIGNm ZzgwMjE1NF91cGRhdGVfaWZhY2VfbnVtLmlzcmEuMisweDEzLzB4OTAgW2llZWU4MDIxNTRdCiAg WzwwMDAwMDAwMDMxMjZlNDUzPl0gaWVlZTgwMjE1NF9sbHNlY19maWxsX2tleV9pZCsweDFkNS8w eDU3MCBbaWVlZTgwMjE1NF0KICBbPDAwMDAwMDAwZTRiM2RmNTE+XSAweGZmZmZmZmZmYzE1MDBl MGUKICBbPDAwMDAwMDAwYjQzMTk3NzY+XSBwbGF0Zm9ybV9kcnZfcHJvYmUrMHhjNi8weDE4MCBk cml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo2MTQKICBbPDAwMDAwMDAwMzc2NjkzNDc+XSByZWFsbHlf cHJvYmUrMHg0OTEvMHg3YzAgZHJpdmVycy9iYXNlL2RkLmM6NTA5CiAgWzwwMDAwMDAwMDhmZWQ4 ODYyPl0gZHJpdmVyX3Byb2JlX2RldmljZSsweGRjLzB4MjQwIGRyaXZlcnMvYmFzZS9kZC5jOjY3 MQogIFs8MDAwMDAwMDBiYWY1MjA0MT5dIGRldmljZV9kcml2ZXJfYXR0YWNoKzB4ZjIvMHgxMzAg ZHJpdmVycy9iYXNlL2RkLmM6OTQ1CiAgWzwwMDAwMDAwMGM3Y2M4ZGVjPl0gX19kcml2ZXJfYXR0 YWNoKzB4MTBlLzB4MjEwIGRyaXZlcnMvYmFzZS9kZC5jOjEwMjIKICBbPDAwMDAwMDAwNTdhNzU3 YzI+XSBidXNfZm9yX2VhY2hfZGV2KzB4MTU0LzB4MWUwIGRyaXZlcnMvYmFzZS9idXMuYzozMDQK ICBbPDAwMDAwMDAwNWY1YWUwNGI+XSBidXNfYWRkX2RyaXZlcisweDQyNy8weDVlMCBkcml2ZXJz L2Jhc2UvYnVzLmM6NjQ1CgpSZXBvcnRlZC1ieTogSHVsayBSb2JvdCA8aHVsa2NpQGh1YXdlaS5j b20+CkZpeGVzOiAxZmE1YWU4NTdiYjEgKCJkcml2ZXIgY29yZTogZ2V0IHJpZCBvZiBzdHJ1Y3Qg ZGV2aWNlJ3MgYnVzX2lkIHN0cmluZyBhcnJheSIpClNpZ25lZC1vZmYtYnk6IFdhbmcgSGFpIDx3 YW5naGFpMjZAaHVhd2VpLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHkgU2hldmNoZW5rbyA8YW5kcml5 LnNoZXZjaGVua29AbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogU3RlcGhlbiBIZW1taW5n ZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvbmV0LXN5c2ZzLmMgfCAx NCArKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXQtc3lzZnMuYyBiL25ldC9jb3JlL25l dC1zeXNmcy5jCmluZGV4IGFlYzI2NTg0ZjBjYS4uZDYyYTdlNTEyOWM5IDEwMDY0NAotLS0gYS9u ZXQvY29yZS9uZXQtc3lzZnMuYworKysgYi9uZXQvY29yZS9uZXQtc3lzZnMuYwpAQCAtMTc1NSwx NiArMTc1NSwyMCBAQCBpbnQgbmV0ZGV2X3JlZ2lzdGVyX2tvYmplY3Qoc3RydWN0IG5ldF9kZXZp Y2UgKm5kZXYpCiAKIAllcnJvciA9IGRldmljZV9hZGQoZGV2KTsKIAlpZiAoZXJyb3IpCi0JCXJl dHVybiBlcnJvcjsKKwkJZ290byBlcnJvcl9wdXRfZGV2aWNlOwogCiAJZXJyb3IgPSByZWdpc3Rl cl9xdWV1ZV9rb2JqZWN0cyhuZGV2KTsKLQlpZiAoZXJyb3IpIHsKLQkJZGV2aWNlX2RlbChkZXYp OwotCQlyZXR1cm4gZXJyb3I7Ci0JfQorCWlmIChlcnJvcikKKwkJZ290byBlcnJvcl9kZXZpY2Vf ZGVsOwogCiAJcG1fcnVudGltZV9zZXRfbWVtYWxsb2Nfbm9pbyhkZXYsIHRydWUpOwogCisJcmV0 dXJuIDA7CisKK2Vycm9yX2RldmljZV9kZWw6CisJZGV2aWNlX2RlbChkZXYpOworZXJyb3JfcHV0 X2RldmljZToKKwlwdXRfZGV2aWNlKGRldik7CiAJcmV0dXJuIGVycm9yOwogfQogCi0tIAoyLjIw LjEKCgpGcm9tIDFhYzRkYThiNTViNDFhMjkxY2I0ZGE1Njc5NDNkMWZlN2JiNzM2ZDkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERtaXRyeSBCZXpydWtvdiA8ZG1pdHJ5LmJlenJ1a292 QGFxdWFudGlhLmNvbT4KRGF0ZTogU2F0LCAyMyBNYXIgMjAxOSAxMzo1OTo1MyArMDAwMApTdWJq ZWN0OiBbUEFUQ0ggMTUvMzNdIG5ldDogdXNiOiBhcWMxMTE6IEV4dGVuZCBIV0lEIHRhYmxlIGJ5 IFFOQVAgZGV2aWNlCgpbIFVwc3RyZWFtIGNvbW1pdCBiN2ViZWUyZjk1ZmIwZmEyODYyZDVlZDJk ZTcwN2Y4NzJjMzExMzkzIF0KCk5ldyBkZXZpY2Ugb2YgUU5BUCBiYXNlZCBvbiBhcWMxMTF1CkFk ZCB0aGlzIElEIHRvIGJsYWNrbGlzdCBvZiBjZGNfZXRoZXIgZHJpdmVyIGFzIHdlbGwKClNpZ25l ZC1vZmYtYnk6IERtaXRyeSBCZXpydWtvdiA8ZG1pdHJ5LmJlenJ1a292QGFxdWFudGlhLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L3VzYi9hcWMxMTEuYyAgICB8IDE1ICsrKysrKysrKysrKysrKwogZHJpdmVy cy9uZXQvdXNiL2NkY19ldGhlci5jIHwgIDggKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjMg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9hcWMxMTEuYyBiL2Ry aXZlcnMvbmV0L3VzYi9hcWMxMTEuYwppbmRleCA4MjBhMmZlN2QwMjcuLmFmZjk5NWJlMmEzMSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL2FxYzExMS5jCisrKyBiL2RyaXZlcnMvbmV0L3Vz Yi9hcWMxMTEuYwpAQCAtMTMwMSw2ICsxMzAxLDIwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJp dmVyX2luZm8gdHJlbmRuZXRfaW5mbyA9IHsKIAkudHhfZml4dXAJPSBhcWMxMTFfdHhfZml4dXAs CiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGRyaXZlcl9pbmZvIHFuYXBfaW5mbyA9IHsKKwku ZGVzY3JpcHRpb24JPSAiUU5BUCBRTkEtVUM1RzFUIFVTQiB0byA1R2JFIEFkYXB0ZXIiLAorCS5i aW5kCQk9IGFxYzExMV9iaW5kLAorCS51bmJpbmQJCT0gYXFjMTExX3VuYmluZCwKKwkuc3RhdHVz CQk9IGFxYzExMV9zdGF0dXMsCisJLmxpbmtfcmVzZXQJPSBhcWMxMTFfbGlua19yZXNldCwKKwku cmVzZXQJCT0gYXFjMTExX3Jlc2V0LAorCS5zdG9wCQk9IGFxYzExMV9zdG9wLAorCS5mbGFncwkJ PSBGTEFHX0VUSEVSIHwgRkxBR19GUkFNSU5HX0FYIHwKKwkJCSAgRkxBR19BVk9JRF9VTkxJTktf VVJCUyB8IEZMQUdfTVVMVElfUEFDS0VULAorCS5yeF9maXh1cAk9IGFxYzExMV9yeF9maXh1cCwK KwkudHhfZml4dXAJPSBhcWMxMTFfdHhfZml4dXAsCit9OworCiBzdGF0aWMgaW50IGFxYzExMV9z dXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBwbV9tZXNzYWdlX3QgbWVzc2FnZSkK IHsKIAlzdHJ1Y3QgdXNibmV0ICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpOwpAQCAtMTQ1 NSw2ICsxNDY5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3Rz W10gPSB7CiAJe0FRQzExMV9VU0JfRVRIX0RFVigweDBiOTUsIDB4Mjc5MCwgYXNpeDExMV9pbmZv KX0sCiAJe0FRQzExMV9VU0JfRVRIX0RFVigweDBiOTUsIDB4Mjc5MSwgYXNpeDExMl9pbmZvKX0s CiAJe0FRQzExMV9VU0JfRVRIX0RFVigweDIwZjQsIDB4ZTA1YSwgdHJlbmRuZXRfaW5mbyl9LAor CXtBUUMxMTFfVVNCX0VUSF9ERVYoMHgxYzA0LCAweDAwMTUsIHFuYXBfaW5mbyl9LAogCXsgfSwv KiBFTkQgKi8KIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcHJvZHVjdHMpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdXNiL2NkY19ldGhlci5jIGIvZHJpdmVycy9uZXQvdXNiL2NkY19l dGhlci5jCmluZGV4IDU1MTJhMTAzODcyMS4uM2U5YjJjMzE5ZTQ1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC91c2IvY2RjX2V0aGVyLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL2NkY19ldGhlci5j CkBAIC04NTEsNiArODUxLDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZAlw cm9kdWN0c1tdID0gewogCS5kcml2ZXJfaW5mbyA9IDAsCiB9LAogCisvKiBRTkFQIFFOQS1VQzVH MVQgVVNCIHRvIDVHYkUgQWRhcHRlciAoYmFzZWQgb24gQVFDMTExVSkgKi8KK3sKKwlVU0JfREVW SUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDFjMDQsIDB4MDAxNSwgVVNCX0NMQVNTX0NPTU0sCisJ CQkJICAgICAgVVNCX0NEQ19TVUJDTEFTU19FVEhFUk5FVCwKKwkJCQkgICAgICBVU0JfQ0RDX1BS T1RPX05PTkUpLAorCS5kcml2ZXJfaW5mbyA9IDAsCit9LAorCiAvKiBXSElURUxJU1QhISEKICAq CiAgKiBDREMgRXRoZXIgdXNlcyB0d28gaW50ZXJmYWNlcywgbm90IG5lY2Vzc2FyaWx5IGNvbnNl Y3V0aXZlLgotLSAKMi4yMC4xCgoKRnJvbSA3M2QxZDQ4MGEwZjk5YjI0ODlhOGNkZDAwY2VjNjQz MmI3YjlkMGJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgQ2hldmFsbGll ciA8bWF4aW1lLmNoZXZhbGxpZXJAYm9vdGxpbi5jb20+CkRhdGU6IFNhdCwgMTYgTWFyIDIwMTkg MTQ6NDE6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2LzMzXSBwYWNrZXRzOiBBbHdheXMgcmVn aXN0ZXIgcGFja2V0IHNrIGluIHRoZSBzYW1lIG9yZGVyCgpbIFVwc3RyZWFtIGNvbW1pdCBhNGRj NmE0OTE1NmIxZjhkNmUxNzI1MWZmZGExN2M5ZTZhNWRiNzhhIF0KCldoZW4gdXNpbmcgZmFub3V0 cyB3aXRoIEFGX1BBQ0tFVCwgdGhlIGRlbXV4IGZ1bmN0aW9ucyBzdWNoIGFzCmZhbm91dF9kZW11 eF9jcHUgd2lsbCByZXR1cm4gYW4gaW5kZXggaW4gdGhlIGZhbm91dCBzb2NrZXQgYXJyYXksIHdo aWNoCmNvcnJlc3BvbmRzIHRvIHRoZSBzZWxlY3RlZCBzb2NrZXQuCgpUaGUgb3JkZXJpbmcgb2Yg dGhpcyBhcnJheSBkZXBlbmRzIG9uIHRoZSBvcmRlciB0aGUgc29ja2V0cyB3ZXJlIGFkZGVkCnRv IGEgZ2l2ZW4gZmFub3V0IGdyb3VwLCBzbyBmb3IgRkFOT1VUX0NQVSB0aGlzIG1lYW5zIHNvY2tl dHMgYXJlIGJvdW5kCnRvIGNwdXMgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIGNvbmZpZ3VyZWQsIHdo aWNoIGlzIE9LLgoKSG93ZXZlciwgd2hlbiBzdG9wcGluZyB0aGVuIHJlc3RhcnRpbmcgdGhlIGlu dGVyZmFjZSB0aGVzZSBzb2NrZXRzIGFyZQpib3VuZCB0bywgdGhlIHNvY2tldHMgYXJlIHJlYXNz aWduZWQgdG8gdGhlIGZhbm91dCBncm91cCBpbiB0aGUgcmV2ZXJzZQpvcmRlciwgZHVlIHRvIHRo ZSBmYWN0IHRoYXQgdGhleSB3ZXJlIGluc2VydGVkIGF0IHRoZSBoZWFkIG9mIHRoZQppbnRlcmZh Y2UncyBBRl9QQUNLRVQgc29ja2V0IGxpc3QuCgpUaGlzIG1lYW5zIHRoYXQgdHJhZmZpYyB0aGF0 IHdhcyBkaXJlY3RlZCB0byB0aGUgZmlyc3Qgc29ja2V0IGluIHRoZQpmYW5vdXQgZ3JvdXAgaXMg bm93IGRpcmVjdGVkIHRvIHRoZSBsYXN0IG9uZSBhZnRlciBhbiBpbnRlcmZhY2UgcmVzdGFydC4K CkluIHRoZSBjYXNlIG9mIEZBTk9VVF9DUFUsIHRyYWZmaWMgZnJvbSBDUFUwIHdpbGwgYmUgZGly ZWN0ZWQgdG8gdGhlCnNvY2tldCB0aGF0IHVzZWQgdG8gcmVjZWl2ZSB0cmFmZmljIGZyb20gdGhl IGxhc3QgQ1BVIGFmdGVyIGFuIGludGVyZmFjZQpyZXN0YXJ0LgoKVGhpcyBjb21taXQgaW50cm9k dWNlcyBhIGhlbHBlciB0byBhZGQgYSBzb2NrZXQgYXQgdGhlIHRhaWwgb2YgYSBsaXN0LAp0aGVu IHVzZXMgaXQgdG8gcmVnaXN0ZXIgQUZfUEFDS0VUIHNvY2tldHMuCgpOb3RlIHRoYXQgdGhpcyBj aGFuZ2VzIHRoZSBvcmRlciBpbiB3aGljaCBzb2NrZXRzIGFyZSBsaXN0ZWQgaW4gL3Byb2MgYW5k CndpdGggc29ja19kaWFnLgoKRml4ZXM6IGRjOTlmNjAwNjk4ZCAoInBhY2tldDogQWRkIGZhbm91 dCBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogTWF4aW1lIENoZXZhbGxpZXIgPG1heGltZS5jaGV2 YWxsaWVyQGJvb3RsaW4uY29tPgpBY2tlZC1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBn b29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvc29jay5oICAgICB8IDYgKysrKysrCiBuZXQvcGFja2V0 L2FmX3BhY2tldC5jIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zb2NrLmggYi9pbmNsdWRlL25l dC9zb2NrLmgKaW5kZXggZjQzZjkzNWNiMTEzLi44OWQwZDk0ZDVkYjIgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbmV0L3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9zb2NrLmgKQEAgLTcxMCw2ICs3MTAs MTIgQEAgc3RhdGljIGlubGluZSB2b2lkIHNrX2FkZF9ub2RlX3JjdShzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBobGlzdF9oZWFkICpsaXN0KQogCQlobGlzdF9hZGRfaGVhZF9yY3UoJnNrLT5za19u b2RlLCBsaXN0KTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIHNrX2FkZF9ub2RlX3RhaWxfcmN1 KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGhsaXN0X2hlYWQgKmxpc3QpCit7CisJc29ja19ob2xk KHNrKTsKKwlobGlzdF9hZGRfdGFpbF9yY3UoJnNrLT5za19ub2RlLCBsaXN0KTsKK30KKwogc3Rh dGljIGlubGluZSB2b2lkIF9fc2tfbnVsbHNfYWRkX25vZGVfcmN1KHN0cnVjdCBzb2NrICpzaywg c3RydWN0IGhsaXN0X251bGxzX2hlYWQgKmxpc3QpCiB7CiAJaGxpc3RfbnVsbHNfYWRkX2hlYWRf cmN1KCZzay0+c2tfbnVsbHNfbm9kZSwgbGlzdCk7CmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2Fm X3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCAyNzg0YmZhMWJjOWIuLjg0 MDZiZjExZWVmNCAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQv cGFja2V0L2FmX3BhY2tldC5jCkBAIC0zMjQ1LDcgKzMyNDUsNyBAQCBzdGF0aWMgaW50IHBhY2tl dF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgcHJvdG9j b2wsCiAJfQogCiAJbXV0ZXhfbG9jaygmbmV0LT5wYWNrZXQuc2tsaXN0X2xvY2spOwotCXNrX2Fk ZF9ub2RlX3JjdShzaywgJm5ldC0+cGFja2V0LnNrbGlzdCk7CisJc2tfYWRkX25vZGVfdGFpbF9y Y3Uoc2ssICZuZXQtPnBhY2tldC5za2xpc3QpOwogCW11dGV4X3VubG9jaygmbmV0LT5wYWNrZXQu c2tsaXN0X2xvY2spOwogCiAJcHJlZW1wdF9kaXNhYmxlKCk7Ci0tIAoyLjIwLjEKCgpGcm9tIDAy Mjc0ZDY5MWEyZGQ3MGJiNGVmM2ViZmZjZTJhZTEwMjhmMDZjMDggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KRGF0 ZTogVGh1LCAyMSBNYXIgMjAxOSAwOTozOTo1MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMzNd IHJoYXNodGFibGU6IFN0aWxsIGRvIHJlaGFzaCB3aGVuIHdlIGdldCBFRVhJU1QKClsgVXBzdHJl YW0gY29tbWl0IDQwOGYxM2VmMzU4YWE1YWQ1NmRjNjIzMGMyYzdkZWI5MmNmNDYyYjEgXQoKQXMg aXQgc3RhbmRzIGlmIGEgc2hyaW5rIGlzIGRlbGF5ZWQgYmVjYXVzZSBvZiBhbiBvdXRzdGFuZGlu ZwpyZWhhc2gsIHdlIHdpbGwgZ28gaW50byBhIHJlc2NoZWR1bGluZyBsb29wIHdpdGhvdXQgZXZl ciBkb2luZwp0aGUgcmVoYXNoLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IHN0aWxsIGNhcnJ5 aW5nIG91dCB0aGUgcmVoYXNoIGFuZCB0aGVuCnJlc2NoZWR1bGluZyBzbyB0aGF0IHdlIGNhbiBz aHJpbmsgYWZ0ZXIgdGhlIGNvbXBsZXRpb24gb2YgdGhlCnJlaGFzaCBzaG91bGQgaXQgc3RpbGwg YmUgbmVjZXNzYXJ5LgoKVGhlIHJldHVybiB2YWx1ZSBvZiBFRVhJU1QgY2FwdHVyZXMgdGhpcyBj YXNlIGFuZCBvdGhlciBjYXNlcwooZS5nLiwgYW5vdGhlciB0aHJlYWQgZXhwYW5kZWQvcmVoYXNo ZWQgdGhlIHRhYmxlIGF0IHRoZSBzYW1lCnRpbWUpIHdoZXJlIHdlIHNob3VsZCBzdGlsbCBwcm9j ZWVkIHdpdGggdGhlIHJlaGFzaC4KCkZpeGVzOiBkYTIwNDIwZjgzZWEgKCJyaGFzaHRhYmxlOiBB ZGQgbmVzdGVkIHRhYmxlcyIpClJlcG9ydGVkLWJ5OiBKb3NoIEVsc2Fzc2VyIDxqZWxzYXNzZXJA YXBwbmV0YS5jb20+ClNpZ25lZC1vZmYtYnk6IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFw YW5hLm9yZy5hdT4KVGVzdGVkLWJ5OiBKb3NoIEVsc2Fzc2VyIDxqZWxzYXNzZXJAYXBwbmV0YS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBsaWIvcmhhc2h0YWJsZS5jIHwgOCArKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvcmhhc2h0YWJsZS5j IGIvbGliL3JoYXNodGFibGUuYwppbmRleCA4NTJmZmE1MTYwZjEuLjRlZGNmMzMxMDUxMyAxMDA2 NDQKLS0tIGEvbGliL3JoYXNodGFibGUuYworKysgYi9saWIvcmhhc2h0YWJsZS5jCkBAIC00MTYs OCArNDE2LDEyIEBAIHN0YXRpYyB2b2lkIHJodF9kZWZlcnJlZF93b3JrZXIoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQogCWVsc2UgaWYgKHRibC0+bmVzdCkKIAkJZXJyID0gcmhhc2h0YWJsZV9y ZWhhc2hfYWxsb2MoaHQsIHRibCwgdGJsLT5zaXplKTsKIAotCWlmICghZXJyKQotCQllcnIgPSBy aGFzaHRhYmxlX3JlaGFzaF90YWJsZShodCk7CisJaWYgKCFlcnIgfHwgZXJyID09IC1FRVhJU1Qp IHsKKwkJaW50IG5lcnI7CisKKwkJbmVyciA9IHJoYXNodGFibGVfcmVoYXNoX3RhYmxlKGh0KTsK KwkJZXJyID0gZXJyID86IG5lcnI7CisJfQogCiAJbXV0ZXhfdW5sb2NrKCZodC0+bXV0ZXgpOwog Ci0tIAoyLjIwLjEKCgpGcm9tIDQ3Nzk1MTA1OWM3ODBlM2Q4YTI0MzVmNTZkMzY0NGRkMDdmMTY5 NTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAxOCBNYXIgMjAxOSAxOTo0NzowMCArMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTgvMzNdIHNjdHA6IGdldCBzY3RwaGRyIGJ5IG9mZnNldCBpbiBzY3RwX2NvbXB1dGVf Y2tzdW0KClsgVXBzdHJlYW0gY29tbWl0IDI3MzE2MGZmYzZiOTkzYzdjOTE2MjdmNWE4NDc5OWM2 NmRmZTRkZWUgXQoKc2N0cF9oZHIoc2tiKSBvbmx5IHdvcmtzIHdoZW4gc2tiLT50cmFuc3BvcnRf aGVhZGVyIGlzIHNldCBwcm9wZXJseS4KCkJ1dCBpbiBOZXRmaWx0ZXIsIHNrYi0+dHJhbnNwb3J0 X2hlYWRlciBmb3IgaXB2NiBpcyBub3QgZ3VhcmFudGVlZAp0byBiZSByaWdodCB2YWx1ZSBmb3Ig c2N0cGhkci4gSXQgd291bGQgY2F1c2UgdG8gZmFpbCB0byBjaGVjayB0aGUKY2hlY2tzdW0gZm9y IHNjdHAgcGFja2V0cy4KClNvIGZpeCBpdCBieSB1c2luZyBvZmZzZXQsIHdoaWNoIGlzIGFsd2F5 cyByaWdodCBpbiBhbGwgcGxhY2VzLgoKdjEtPnYyOgogIC0gRml4IHRoZSBjaGFuZ2Vsb2cuCgpG aXhlczogZTZkOGI2NGIzNGFhICgibmV0OiBzY3RwOiBmaXggYW5kIGNvbnNvbGlkYXRlIFNDVFAg Y2hlY2tzdW1taW5nIGNvZGUiKQpSZXBvcnRlZC1ieTogTGkgU2h1YW5nIDxzaHVhbGlAcmVkaGF0 LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5j bHVkZS9uZXQvc2N0cC9jaGVja3N1bS5oIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvc2N0cC9jaGVj a3N1bS5oIGIvaW5jbHVkZS9uZXQvc2N0cC9jaGVja3N1bS5oCmluZGV4IDMyZWU2NWEzMGFmZi4u MWM2ZTZjMDc2NmNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL2NoZWNrc3VtLmgKKysr IGIvaW5jbHVkZS9uZXQvc2N0cC9jaGVja3N1bS5oCkBAIC02MSw3ICs2MSw3IEBAIHN0YXRpYyBp bmxpbmUgX193c3VtIHNjdHBfY3N1bV9jb21iaW5lKF9fd3N1bSBjc3VtLCBfX3dzdW0gY3N1bTIs CiBzdGF0aWMgaW5saW5lIF9fbGUzMiBzY3RwX2NvbXB1dGVfY2tzdW0oY29uc3Qgc3RydWN0IHNr X2J1ZmYgKnNrYiwKIAkJCQkJdW5zaWduZWQgaW50IG9mZnNldCkKIHsKLQlzdHJ1Y3Qgc2N0cGhk ciAqc2ggPSBzY3RwX2hkcihza2IpOworCXN0cnVjdCBzY3RwaGRyICpzaCA9IChzdHJ1Y3Qgc2N0 cGhkciAqKShza2ItPmRhdGEgKyBvZmZzZXQpOwogCWNvbnN0IHN0cnVjdCBza2JfY2hlY2tzdW1f b3BzIG9wcyA9IHsKIAkJLnVwZGF0ZSAgPSBzY3RwX2NzdW1fdXBkYXRlLAogCQkuY29tYmluZSA9 IHNjdHBfY3N1bV9jb21iaW5lLAotLSAKMi4yMC4xCgoKRnJvbSBhODRjZDc3NmZkYTIzZDhmNGY2 MTAyMjM0NjZlZDk3MjIyYmNkNTIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjAgTWFyIDIwMTkgMTQ6NDk6 MzggKzA4MDAKU3ViamVjdDogW1BBVENIIDE5LzMzXSBzY3RwOiB1c2UgbWVtZHVwX3VzZXIgaW5z dGVhZCBvZiB2bWVtZHVwX3VzZXIKClsgVXBzdHJlYW0gY29tbWl0IGVmODJiY2ZhNjcxYjlhNjM1 YmFiNWZhNjY5MDA1NjYzZDhiMTc3YzUgXQoKSW4gc2N0cF9zZXRzb2Nrb3B0X2JpbmR4KCkvX19z Y3RwX3NldHNvY2tvcHRfY29ubmVjdHgoKSwgaXQgYWxsb2NhdGVzCm1lbW9yeSB3aXRoIGFkZHJz X3NpemUgd2hpY2ggaXMgcGFzc2VkIGZyb20gdXNlcnNwYWNlLiBXZSB1c2VkIGZsYWcKR0ZQX1VT RVIgdG8gcHV0IHNvbWUgbW9yZSByZXN0cmljdGlvbnMgb24gaXQgaW4gQ29tbWl0IGNhY2MwNjIx NTI3MQooInNjdHA6IHVzZSBHRlBfVVNFUiBmb3IgdXNlci1jb250cm9sbGVkIGttYWxsb2MiKS4K Ckhvd2V2ZXIsIHNpbmNlIENvbW1pdCBjOTgxZjI1NGNjODIgKCJzY3RwOiB1c2Ugdm1lbWR1cF91 c2VyKCkgcmF0aGVyCnRoYW4gYmFkbHkgb3Blbi1jb2RpbmcgbWVtZHVwX3VzZXIoKSIpLCB2bWVt ZHVwX3VzZXIoKSBoYXMgYmVlbiB1c2VkLAp3aGljaCBkb2Vzbid0IGNoZWNrIEdGUF9VU0VSIGZs YWcgd2hlbiBnb2VzIHRvIHZtYWxsb2NfKigpLiBTbyB3aGVuCmFkZHJzX3NpemUgaXMgYSBodWdl IHZhbHVlLCBpdCBjb3VsZCBleGhhdXN0IG1lbW9yeSBhbmQgZXZlbiB0cmlnZ2VyCm9vbSBraWxs ZXIuCgpUaGlzIHBhdGNoIGlzIHRvIHVzZSBtZW1kdXBfdXNlcigpIGluc3RlYWQsIGluIHdoaWNo IEdGUF9VU0VSIHdvdWxkCndvcmsgdG8gbGltaXQgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIHdpdGgg YSBodWdlIGFkZHJzX3NpemUuCgpOb3RlIHdlIGNhbid0IGZpeCBpdCBieSBsaW1pdGluZyAnYWRk cnNfc2l6ZScsIGFzIHRoZXJlJ3Mgbm8gZGVtYW5kCmZvciBpdCBmcm9tIFJGQy4KClJlcG9ydGVk LWJ5OiBzeXpib3QrZWMxYjc1NzVhZmVmODVhMGU1Y2FAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNv bQpGaXhlczogYzk4MWYyNTRjYzgyICgic2N0cDogdXNlIHZtZW1kdXBfdXNlcigpIHJhdGhlciB0 aGFuIGJhZGx5IG9wZW4tY29kaW5nIG1lbWR1cF91c2VyKCkiKQpTaWduZWQtb2ZmLWJ5OiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1h bkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc29ja2V0LmMgfCAxMiArKysrKystLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuYwppbmRleCBhMjc3MWIzYjNj MTQuLjVmNjg0MjBiNGIwZCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0 L3NjdHAvc29ja2V0LmMKQEAgLTk5OSw3ICs5OTksNyBAQCBzdGF0aWMgaW50IHNjdHBfc2V0c29j a29wdF9iaW5keChzdHJ1Y3Qgc29jayAqc2ssCiAJaWYgKHVubGlrZWx5KGFkZHJzX3NpemUgPD0g MCkpCiAJCXJldHVybiAtRUlOVkFMOwogCi0Ja2FkZHJzID0gdm1lbWR1cF91c2VyKGFkZHJzLCBh ZGRyc19zaXplKTsKKwlrYWRkcnMgPSBtZW1kdXBfdXNlcihhZGRycywgYWRkcnNfc2l6ZSk7CiAJ aWYgKHVubGlrZWx5KElTX0VSUihrYWRkcnMpKSkKIAkJcmV0dXJuIFBUUl9FUlIoa2FkZHJzKTsK IApAQCAtMTAwNyw3ICsxMDA3LDcgQEAgc3RhdGljIGludCBzY3RwX3NldHNvY2tvcHRfYmluZHgo c3RydWN0IHNvY2sgKnNrLAogCWFkZHJfYnVmID0ga2FkZHJzOwogCXdoaWxlICh3YWxrX3NpemUg PCBhZGRyc19zaXplKSB7CiAJCWlmICh3YWxrX3NpemUgKyBzaXplb2Yoc2FfZmFtaWx5X3QpID4g YWRkcnNfc2l6ZSkgewotCQkJa3ZmcmVlKGthZGRycyk7CisJCQlrZnJlZShrYWRkcnMpOwogCQkJ cmV0dXJuIC1FSU5WQUw7CiAJCX0KIApAQCAtMTAxOCw3ICsxMDE4LDcgQEAgc3RhdGljIGludCBz Y3RwX3NldHNvY2tvcHRfYmluZHgoc3RydWN0IHNvY2sgKnNrLAogCQkgKiBjYXVzZXMgdGhlIGFk ZHJlc3MgYnVmZmVyIHRvIG92ZXJmbG93IHJldHVybiBFSU5WQUwuCiAJCSAqLwogCQlpZiAoIWFm IHx8ICh3YWxrX3NpemUgKyBhZi0+c29ja2FkZHJfbGVuKSA+IGFkZHJzX3NpemUpIHsKLQkJCWt2 ZnJlZShrYWRkcnMpOworCQkJa2ZyZWUoa2FkZHJzKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9 CiAJCWFkZHJjbnQrKzsKQEAgLTEwNTQsNyArMTA1NCw3IEBAIHN0YXRpYyBpbnQgc2N0cF9zZXRz b2Nrb3B0X2JpbmR4KHN0cnVjdCBzb2NrICpzaywKIAl9CiAKIG91dDoKLQlrdmZyZWUoa2FkZHJz KTsKKwlrZnJlZShrYWRkcnMpOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTEzMjksNyArMTMyOSw3 IEBAIHN0YXRpYyBpbnQgX19zY3RwX3NldHNvY2tvcHRfY29ubmVjdHgoc3RydWN0IHNvY2sgKnNr LAogCWlmICh1bmxpa2VseShhZGRyc19zaXplIDw9IDApKQogCQlyZXR1cm4gLUVJTlZBTDsKIAot CWthZGRycyA9IHZtZW1kdXBfdXNlcihhZGRycywgYWRkcnNfc2l6ZSk7CisJa2FkZHJzID0gbWVt ZHVwX3VzZXIoYWRkcnMsIGFkZHJzX3NpemUpOwogCWlmICh1bmxpa2VseShJU19FUlIoa2FkZHJz KSkpCiAJCXJldHVybiBQVFJfRVJSKGthZGRycyk7CiAKQEAgLTEzNDksNyArMTM0OSw3IEBAIHN0 YXRpYyBpbnQgX19zY3RwX3NldHNvY2tvcHRfY29ubmVjdHgoc3RydWN0IHNvY2sgKnNrLAogCWVy ciA9IF9fc2N0cF9jb25uZWN0KHNrLCBrYWRkcnMsIGFkZHJzX3NpemUsIGZsYWdzLCBhc3NvY19p ZCk7CiAKIG91dF9mcmVlOgotCWt2ZnJlZShrYWRkcnMpOworCWtmcmVlKGthZGRycyk7CiAKIAly ZXR1cm4gZXJyOwogfQotLSAKMi4yMC4xCgoKRnJvbSBkZGMyYTZjMmM5NWI5ZGZhZmQ2MjEwYmU4 YmIwMzUyZWM3YTgyZDcwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMTkgTWFyIDIwMTkgMDU6NDU6MzUg LTA3MDAKU3ViamVjdDogW1BBVENIIDIwLzMzXSB0Y3A6IGRvIG5vdCB1c2UgaXB2NiBoZWFkZXIg Zm9yIGlwdjQgZmxvdwoKWyBVcHN0cmVhbSBjb21taXQgODllNDEzMDkzOWEyMDMwNGY0MDU5YWI3 MjE3OWRhODFmNTM0NzUyOCBdCgpXaGVuIGEgZHVhbCBzdGFjayB0Y3AgbGlzdGVuZXIgYWNjZXB0 cyBhbiBpcHY0IGZsb3csCml0IHNob3VsZCBub3QgYXR0ZW1wdCB0byB1c2UgYW4gaXB2NiBoZWFk ZXIgb3IgdGNwX3Y2X2lpZigpIGhlbHBlci4KCkZpeGVzOiAxMzk3ZWQzNWYyMmQgKCJpcHY2OiBh ZGQgZmxvd2luZm8gZm9yIHRjcDYgcGt0X29wdGlvbnMgZm9yIGFsbCBjYXNlcyIpCkZpeGVzOiBk ZjM2ODdmZmM2NjUgKCJpcHY2OiBhZGQgdGhlIElQVjZfRkxfRl9SRUZMRUNUIGZsYWcgdG8gSVBW Nl9GTF9BX0dFVCIpCkZpeGVzOiAxZGExNzdlNGMzZjQgKCJMaW51eC0yLjYuMTItcmMyIikKU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYv dGNwX2lwdjYuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9p cHY2L3RjcF9pcHY2LmMKaW5kZXggYjgxZWI3Y2I4MTVlLi44NTA1ZDk2NDgzZDUgMTAwNjQ0Ci0t LSBhL25ldC9pcHY2L3RjcF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtMTEx MiwxMSArMTExMiwxMSBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKnRjcF92Nl9zeW5fcmVjdl9zb2Nr KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKgogCQluZXducC0+aXB2Nl9m bF9saXN0ID0gTlVMTDsKIAkJbmV3bnAtPnBrdG9wdGlvbnMgID0gTlVMTDsKIAkJbmV3bnAtPm9w dAkgICA9IE5VTEw7Ci0JCW5ld25wLT5tY2FzdF9vaWYgICA9IHRjcF92Nl9paWYoc2tiKTsKLQkJ bmV3bnAtPm1jYXN0X2hvcHMgID0gaXB2Nl9oZHIoc2tiKS0+aG9wX2xpbWl0OwotCQluZXducC0+ cmN2X2Zsb3dpbmZvID0gaXA2X2Zsb3dpbmZvKGlwdjZfaGRyKHNrYikpOworCQluZXducC0+bWNh c3Rfb2lmICAgPSBpbmV0X2lpZihza2IpOworCQluZXducC0+bWNhc3RfaG9wcyAgPSBpcF9oZHIo c2tiKS0+dHRsOworCQluZXducC0+cmN2X2Zsb3dpbmZvID0gMDsKIAkJaWYgKG5wLT5yZXBmbG93 KQotCQkJbmV3bnAtPmZsb3dfbGFiZWwgPSBpcDZfZmxvd2xhYmVsKGlwdjZfaGRyKHNrYikpOwor CQkJbmV3bnAtPmZsb3dfbGFiZWwgPSAwOwogCiAJCS8qCiAJCSAqIE5vIG5lZWQgdG8gY2hhcmdl IHRoaXMgc29jayB0byB0aGUgcmVsZXZhbnQgSVB2NiByZWZjbnQgZGVidWcgc29ja3MgY291bnQK LS0gCjIuMjAuMQoKCkZyb20gOTI1MGMwNTVjNzAxMmJjMTk5NTUyMmYxZjk4MzgxMGU2NTFiNDRi ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpayBIdWduZSA8ZXJpay5odWduZUBn bWFpbC5jb20+CkRhdGU6IFN1biwgMTcgTWFyIDIwMTkgMTg6NDY6NDIgKzAxMDAKU3ViamVjdDog W1BBVENIIDIxLzMzXSB0aXBjOiBhbGxvdyBzZXJ2aWNlIHJhbmdlcyB0byBiZSBjb25uZWN0KCkn ZWQgb24KIFJETS9ER1JBTQoKWyBVcHN0cmVhbSBjb21taXQgZWEyMzkzMTRmZTQyYWNlODgwYmRk ODM0MjU2ODM0Njc5MzQ2YzgwZSBdCgpXZSBtb3ZlIHRoZSBjaGVjayB0aGF0IHByZXZlbnRzIGNv bm5lY3Rpbmcgc2VydmljZSByYW5nZXMgdG8gYWZ0ZXIKdGhlIFJETS9ER1JBTSBjaGVjaywgYW5k IG1vdmUgYWRkcmVzcyBzYW5pdHkgY29udHJvbCB0byBhIHNlcGFyYXRlCmZ1bmN0aW9uIHRoYXQg YWxzbyB2YWxpZGF0ZXMgdGhlIHNlcnZpY2UgcmFuZ2UuCgpGaXhlczogMjM5OTg4MzViZTk4ICgi dGlwYzogaW1wcm92ZSBhZGRyZXNzIHNhbml0eSBjaGVjayBpbiB0aXBjX2Nvbm5lY3QoKSIpClNp Z25lZC1vZmYtYnk6IEVyaWsgSHVnbmUgPGVyaWsuaHVnbmVAZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBKb24gTWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9zb2NrZXQu YyB8IDIwICsrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9u cygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9zb2NrZXQuYyBiL25l dC90aXBjL3NvY2tldC5jCmluZGV4IDEzOTY5NGYyYzU3Ni4uNGRjYTkxNjFmOTliIDEwMDY0NAot LS0gYS9uZXQvdGlwYy9zb2NrZXQuYworKysgYi9uZXQvdGlwYy9zb2NrZXQuYwpAQCAtMjM0OSw2 ICsyMzQ5LDE2IEBAIHN0YXRpYyBpbnQgdGlwY193YWl0X2Zvcl9jb25uZWN0KHN0cnVjdCBzb2Nr ZXQgKnNvY2ssIGxvbmcgKnRpbWVvX3ApCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBib29sIHRp cGNfc29ja2FkZHJfaXNfc2FuZShzdHJ1Y3Qgc29ja2FkZHJfdGlwYyAqYWRkcikKK3sKKwlpZiAo YWRkci0+ZmFtaWx5ICE9IEFGX1RJUEMpCisJCXJldHVybiBmYWxzZTsKKwlpZiAoYWRkci0+YWRk cnR5cGUgPT0gVElQQ19TRVJWSUNFX1JBTkdFKQorCQlyZXR1cm4gKGFkZHItPmFkZHIubmFtZXNl cS5sb3dlciA8PSBhZGRyLT5hZGRyLm5hbWVzZXEudXBwZXIpOworCXJldHVybiAoYWRkci0+YWRk cnR5cGUgPT0gVElQQ19TRVJWSUNFX0FERFIgfHwKKwkJYWRkci0+YWRkcnR5cGUgPT0gVElQQ19T T0NLRVRfQUREUik7Cit9CisKIC8qKgogICogdGlwY19jb25uZWN0IC0gZXN0YWJsaXNoIGEgY29u bmVjdGlvbiB0byBhbm90aGVyIFRJUEMgcG9ydAogICogQHNvY2s6IHNvY2tldCBzdHJ1Y3R1cmUK QEAgLTIzODQsMTggKzIzOTQsMTggQEAgc3RhdGljIGludCB0aXBjX2Nvbm5lY3Qoc3RydWN0IHNv Y2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICpkZXN0LAogCQlpZiAoIXRpcGNfc2tfdHlwZV9j b25uZWN0aW9ubGVzcyhzaykpCiAJCQlyZXMgPSAtRUlOVkFMOwogCQlnb3RvIGV4aXQ7Ci0JfSBl bHNlIGlmIChkc3QtPmZhbWlseSAhPSBBRl9USVBDKSB7Ci0JCXJlcyA9IC1FSU5WQUw7CiAJfQot CWlmIChkc3QtPmFkZHJ0eXBlICE9IFRJUENfQUREUl9JRCAmJiBkc3QtPmFkZHJ0eXBlICE9IFRJ UENfQUREUl9OQU1FKQorCWlmICghdGlwY19zb2NrYWRkcl9pc19zYW5lKGRzdCkpIHsKIAkJcmVz ID0gLUVJTlZBTDsKLQlpZiAocmVzKQogCQlnb3RvIGV4aXQ7Ci0KKwl9CiAJLyogREdSQU0vUkRN IGNvbm5lY3QoKSwganVzdCBzYXZlIHRoZSBkZXN0YWRkciAqLwogCWlmICh0aXBjX3NrX3R5cGVf Y29ubmVjdGlvbmxlc3Moc2spKSB7CiAJCW1lbWNweSgmdHNrLT5wZWVyLCBkZXN0LCBkZXN0bGVu KTsKIAkJZ290byBleGl0OworCX0gZWxzZSBpZiAoZHN0LT5hZGRydHlwZSA9PSBUSVBDX1NFUlZJ Q0VfUkFOR0UpIHsKKwkJcmVzID0gLUVJTlZBTDsKKwkJZ290byBleGl0OwogCX0KIAogCXByZXZp b3VzID0gc2stPnNrX3N0YXRlOwotLSAKMi4yMC4xCgoKRnJvbSA2YzQ5YTg3ODk4OWNkNzk2ZGYy YjZhOGZhNDkxZWM0ODMwZWQ4ODU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjQgTWFyIDIwMTkgMDA6NDg6 MjIgKzA4MDAKU3ViamVjdDogW1BBVENIIDIyLzMzXSB0aXBjOiBjaGFuZ2UgdG8gY2hlY2sgdGlw Y19vd25faWQgdG8gcmV0dXJuIGluCiB0aXBjX25ldF9zdG9wCgpbIFVwc3RyZWFtIGNvbW1pdCA5 OTI2Y2I1ZjhiMGYwYWVhNTM1NzM1MTg1NjAwZDc0ZGI3NjA4NTUwIF0KCldoZW4gcnVubmluZyBh IHN5eiBzY3JpcHQsIGEgcGFuaWMgb2NjdXJyZWQ6CgpbICAxNTYuMDg4MjI4XSBCVUc6IEtBU0FO OiB1c2UtYWZ0ZXItZnJlZSBpbiB0aXBjX2Rpc2NfdGltZW91dCsweDljOS8weGIyMCBbdGlwY10K WyAgMTU2LjA5NDMxNV0gQ2FsbCBUcmFjZToKWyAgMTU2LjA5NDg0NF0gIDxJUlE+ClsgIDE1Ni4w OTUzMDZdICBkdW1wX3N0YWNrKzB4N2MvMHhjMApbICAxNTYuMDk3MzQ2XSAgcHJpbnRfYWRkcmVz c19kZXNjcmlwdGlvbisweDY1LzB4MjJlClsgIDE1Ni4xMDA0NDVdICBrYXNhbl9yZXBvcnQuY29s ZC4zKzB4MzcvMHg3YQpbICAxNTYuMTAyNDAyXSAgdGlwY19kaXNjX3RpbWVvdXQrMHg5YzkvMHhi MjAgW3RpcGNdClsgIDE1Ni4xMDY1MTddICBjYWxsX3RpbWVyX2ZuKzB4MTlhLzB4NjEwClsgIDE1 Ni4xMTI3NDldICBydW5fdGltZXJfc29mdGlycSsweGI1MS8weDEwOTAKCkl0IHdhcyBjYXVzZWQg YnkgdGhlIG5ldG5zIGZyZWVkIHdpdGhvdXQgZGVsZXRpbmcgdGhlIGRpc2NvdmVyZXIgdGltZXIs CndoaWxlIGxhdGVyIG9uIHRoZSBuZXRucyB3b3VsZCBiZSBhY2Nlc3NlZCBpbiB0aGUgdGltZXIg aGFuZGxlci4KClRoZSB0aW1lciBzaG91bGQgaGF2ZSBiZWVuIGRlbGV0ZWQgYnkgdGlwY19uZXRf c3RvcCgpIHdoZW4gY2xlYW5pbmcgdXAgYQpuZXRucy4gSG93ZXZlciwgdGlwYyBoYXMgYmVlbiBh YmxlIHRvIGVuYWJsZSBhIGJlYXJlciBhbmQgc3RhcnQgZC0+dGltZXIKd2l0aG91dCB0aGUgbG9j YWwgbm9kZV9hZGRyIHNldCBzaW5jZSBDb21taXQgNTJkZmFlNWM4NWE0ICgidGlwYzogb2J0YWlu Cm5vZGUgaWRlbnRpdHkgZnJvbSBpbnRlcmZhY2UgYnkgZGVmYXVsdCIpLCB3aGljaCBjYXVzZWQg dGhlIHRpbWVyIG5vdCB0bwpiZSBkZWxldGVkIGluIHRpcGNfbmV0X3N0b3AoKSB0aGVuLgoKU28g Zml4IGl0IGluIHRpcGNfbmV0X3N0b3AoKSBieSBjaGFuZ2luZyB0byBjaGVjayBsb2NhbCBub2Rl X2lkIGluc3RlYWQKb2YgbG9jYWwgbm9kZV9hZGRyLCBhcyBKb24gc3VnZ2VzdGVkLgoKV2hpbGUg YXQgaXQsIHJlbW92ZSB0aGUgY2FsbGluZyBvZiB0aXBjX25hbWV0Ymxfd2l0aGRyYXcoKSB0aGVy ZSwgc2luY2UKdGlwY19uYW1ldGJsX3N0b3AoKSB3aWxsIHRha2Ugb2YgdGhlIG5hbWV0YmwncyBm cmVlaW5nIGFmdGVyLgoKRml4ZXM6IDUyZGZhZTVjODVhNCAoInRpcGM6IG9idGFpbiBub2RlIGlk ZW50aXR5IGZyb20gaW50ZXJmYWNlIGJ5IGRlZmF1bHQiKQpSZXBvcnRlZC1ieTogc3l6Ym90K2Ey NTMwN2FkMDk5MzA5ZjFjMmI5QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1i eTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogWWluZyBYdWUgPHlp bmcueHVlQHdpbmRyaXZlci5jb20+CkFja2VkLWJ5OiBKb24gTWFsb3kgPGpvbi5tYWxveUBlcmlj c3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvdGlwYy9uZXQuYyB8IDUgKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uZXQuYyBi L25ldC90aXBjL25ldC5jCmluZGV4IGYwNzZlZGI3NDMzOC4uN2NlMWU4NmIwMjRmIDEwMDY0NAot LS0gYS9uZXQvdGlwYy9uZXQuYworKysgYi9uZXQvdGlwYy9uZXQuYwpAQCAtMTYzLDEyICsxNjMs OSBAQCB2b2lkIHRpcGNfc2NoZWRfbmV0X2ZpbmFsaXplKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFk ZHIpCiAKIHZvaWQgdGlwY19uZXRfc3RvcChzdHJ1Y3QgbmV0ICpuZXQpCiB7Ci0JdTMyIHNlbGYg PSB0aXBjX293bl9hZGRyKG5ldCk7Ci0KLQlpZiAoIXNlbGYpCisJaWYgKCF0aXBjX293bl9pZChu ZXQpKQogCQlyZXR1cm47CiAKLQl0aXBjX25hbWV0Ymxfd2l0aGRyYXcobmV0LCBUSVBDX0NGR19T UlYsIHNlbGYsIHNlbGYsIHNlbGYpOwogCXJ0bmxfbG9jaygpOwogCXRpcGNfYmVhcmVyX3N0b3Ao bmV0KTsKIAl0aXBjX25vZGVfc3RvcChuZXQpOwotLSAKMi4yMC4xCgoKRnJvbSA0ZjUxNGM0MGMx NGQxMGFiZjM0NTUwN2QwYmQ1M2Q5YTIzZGQ2YWFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBFcmlrIEh1Z25lIDxlcmlrLmh1Z25lQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyMSBNYXIg MjAxOSAwOToxMTo1OSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMzNdIHRpcGM6IGZpeCBjYW5j ZWxsYXRpb24gb2YgdG9wb2xvZ3kgc3Vic2NyaXB0aW9ucwoKWyBVcHN0cmVhbSBjb21taXQgMzM4 NzJkNzlmNWQxY2JlZGFhYWI3OTY2OWNjMzhmMTYwOTdhOTQ1MCBdCgpXaGVuIGNhbmNlbGxpbmcg YSBzdWJzY3JpcHRpb24sIHdlIGhhdmUgdG8gY2xlYXIgdGhlIGNhbmNlbCBiaXQgaW4gdGhlCnJl cXVlc3QgYmVmb3JlIGl0ZXJhdGluZyBvdmVyIGFueSBlc3RhYmxpc2hlZCBzdWJzY3JpcHRpb25z IHdpdGggbWVtY21wLgpPdGhlcndpc2Ugbm8gc3Vic2NyaXB0aW9uIHdpbGwgZXZlciBiZSBmb3Vu ZCwgYW5kIGl0IHdpbGwgbm90IGJlCnBvc3NpYmxlIHRvIGV4cGxpY2l0bHkgdW5zdWJzY3JpYmUg aW5kaXZpZHVhbCBzdWJzY3JpcHRpb25zLgoKRml4ZXM6IDg5ODVlY2M3YzFlMCAoInRpcGM6IHNp bXBsaWZ5IGVuZGlhbm5lc3MgaGFuZGxpbmcgaW4gdG9wb2xvZ3kgc3Vic2NyaWJlciIpClNpZ25l ZC1vZmYtYnk6IEVyaWsgSHVnbmUgPGVyaWsuaHVnbmVAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBKb24gTWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy90b3BzcnYuYyB8 IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3Rp cGMvdG9wc3J2LmMgYi9uZXQvdGlwYy90b3BzcnYuYwppbmRleCBhNDU3YzBmYmJlZjEuLmY1ZWRi MjEzZDc2MCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvdG9wc3J2LmMKKysrIGIvbmV0L3RpcGMvdG9w c3J2LmMKQEAgLTM2NSw2ICszNjUsNyBAQCBzdGF0aWMgaW50IHRpcGNfY29ubl9yY3Zfc3ViKHN0 cnVjdCB0aXBjX3RvcHNydiAqc3J2LAogCXN0cnVjdCB0aXBjX3N1YnNjcmlwdGlvbiAqc3ViOwog CiAJaWYgKHRpcGNfc3ViX3JlYWQocywgZmlsdGVyKSAmIFRJUENfU1VCX0NBTkNFTCkgeworCQlz LT5maWx0ZXIgJj0gX19jb25zdGFudF9udG9obCh+VElQQ19TVUJfQ0FOQ0VMKTsKIAkJdGlwY19j b25uX2RlbGV0ZV9zdWIoY29uLCBzKTsKIAkJcmV0dXJuIDA7CiAJfQotLSAKMi4yMC4xCgoKRnJv bSAwYTM0ZmNiYmEyYzg1NWZlNzE1ZGZiYzc0MTQwZWJiZTFkNmI2N2E3IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6 IFRodSwgMTQgTWFyIDIwMTkgMjA6MTk6NDcgLTA3MDAKU3ViamVjdDogW1BBVENIIDI0LzMzXSB0 dW46IHByb3Blcmx5IHRlc3QgZm9yIElGRl9VUAoKWyBVcHN0cmVhbSBjb21taXQgNDQ3NzEzOGZh MGFlNGUxYjY5OTc4NmVmMDYwMDg2M2VhNmU2YzYxYyBdCgpTYW1lIHJlYXNvbnMgdGhhbiB0aGUg b25lcyBleHBsYWluZWQgaW4gY29tbWl0IDQxNzljYjVhNGM5MgooInZ4bGFuOiB0ZXN0IGRldi0+ ZmxhZ3MgJiBJRkZfVVAgYmVmb3JlIGNhbGxpbmcgbmV0aWZfcngoKSIpCgpuZXRpZl9yeF9uaSgp IG9yIG5hcGlfZ3JvX2ZyYWdzKCkgbXVzdCBiZSBjYWxsZWQgdW5kZXIgYSBzdHJpY3QgY29udHJh Y3QuCgpBdCBkZXZpY2UgZGlzbWFudGxlIHBoYXNlLCBjb3JlIG5ldHdvcmtpbmcgY2xlYXJzIElG Rl9VUAphbmQgZmx1c2hfYWxsX2JhY2tsb2dzKCkgaXMgY2FsbGVkIGFmdGVyIHJjdSBncmFjZSBw ZXJpb2QKdG8gbWFrZSBzdXJlIG5vIGluY29taW5nIHBhY2tldCBtaWdodCBiZSBpbiBhIGNwdSBi YWNrbG9nCmFuZCBzdGlsbCByZWZlcmVuY2luZyB0aGUgZGV2aWNlLgoKQSBzaW1pbGFyIHByb3Rv Y29sIGlzIHVzZWQgZm9yIGdybyBsYXllci4KCk1vc3QgZHJpdmVycyBjYWxsIG5ldGlmX3J4KCkg ZnJvbSB0aGVpciBpbnRlcnJ1cHQgaGFuZGxlciwKYW5kIHNpbmNlIHRoZSBpbnRlcnJ1cHRzIGFy ZSBkaXNhYmxlZCBhdCBkZXZpY2UgZGlzbWFudGxlLApuZXRpZl9yeCgpIGRvZXMgbm90IGhhdmUg dG8gY2hlY2sgZGV2LT5mbGFncyAmIElGRl9VUAoKVmlydHVhbCBkcml2ZXJzIGRvIG5vdCBoYXZl IHRoaXMgZ3VhcmFudGVlLCBhbmQgbXVzdAp0aGVyZWZvcmUgbWFrZSB0aGUgY2hlY2sgdGhlbXNl bHZlcy4KCkZpeGVzOiAxYmQ0OTc4YTg4YWMgKCJ0dW46IGhvbm9yIElGRl9VUCBpbiB0dW5fZ2V0 X3VzZXIoKSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC90dW4uYyB8IDE1ICsrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdHVu LmMgYi9kcml2ZXJzL25ldC90dW4uYwppbmRleCA1M2Y0ZjM3YjBmZmQuLmY0MTI2Y2U1ODg3OCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVuLmMKKysrIGIvZHJpdmVycy9uZXQvdHVuLmMKQEAg LTE3NjMsOSArMTc2Myw2IEBAIHN0YXRpYyBzc2l6ZV90IHR1bl9nZXRfdXNlcihzdHJ1Y3QgdHVu X3N0cnVjdCAqdHVuLCBzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxlLAogCWludCBza2JfeGRwID0gMTsK IAlib29sIGZyYWdzID0gdHVuX25hcGlfZnJhZ3NfZW5hYmxlZCh0ZmlsZSk7CiAKLQlpZiAoISh0 dW4tPmRldi0+ZmxhZ3MgJiBJRkZfVVApKQotCQlyZXR1cm4gLUVJTzsKLQogCWlmICghKHR1bi0+ ZmxhZ3MgJiBJRkZfTk9fUEkpKSB7CiAJCWlmIChsZW4gPCBzaXplb2YocGkpKQogCQkJcmV0dXJu IC1FSU5WQUw7CkBAIC0xODY3LDYgKzE4NjQsOCBAQCBzdGF0aWMgc3NpemVfdCB0dW5fZ2V0X3Vz ZXIoc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwgc3RydWN0IHR1bl9maWxlICp0ZmlsZSwKIAkJCWVy ciA9IHNrYl9jb3B5X2RhdGFncmFtX2Zyb21faXRlcihza2IsIDAsIGZyb20sIGxlbik7CiAKIAkJ aWYgKGVycikgeworCQkJZXJyID0gLUVGQVVMVDsKK2Ryb3A6CiAJCQl0aGlzX2NwdV9pbmModHVu LT5wY3B1X3N0YXRzLT5yeF9kcm9wcGVkKTsKIAkJCWtmcmVlX3NrYihza2IpOwogCQkJaWYgKGZy YWdzKSB7CkBAIC0xODc0LDcgKzE4NzMsNyBAQCBzdGF0aWMgc3NpemVfdCB0dW5fZ2V0X3VzZXIo c3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwgc3RydWN0IHR1bl9maWxlICp0ZmlsZSwKIAkJCQltdXRl eF91bmxvY2soJnRmaWxlLT5uYXBpX211dGV4KTsKIAkJCX0KIAotCQkJcmV0dXJuIC1FRkFVTFQ7 CisJCQlyZXR1cm4gZXJyOwogCQl9CiAJfQogCkBAIC0xOTU4LDYgKzE5NTcsMTIgQEAgc3RhdGlj IHNzaXplX3QgdHVuX2dldF91c2VyKHN0cnVjdCB0dW5fc3RydWN0ICp0dW4sIHN0cnVjdCB0dW5f ZmlsZSAqdGZpbGUsCiAJICAgICF0ZmlsZS0+ZGV0YWNoZWQpCiAJCXJ4aGFzaCA9IF9fc2tiX2dl dF9oYXNoX3N5bW1ldHJpYyhza2IpOwogCisJcmN1X3JlYWRfbG9jaygpOworCWlmICh1bmxpa2Vs eSghKHR1bi0+ZGV2LT5mbGFncyAmIElGRl9VUCkpKSB7CisJCWVyciA9IC1FSU87CisJCWdvdG8g ZHJvcDsKKwl9CisKIAlpZiAoZnJhZ3MpIHsKIAkJLyogRXhlcmNpc2UgZmxvdyBkaXNzZWN0b3Ig Y29kZSBwYXRoLiAqLwogCQl1MzIgaGVhZGxlbiA9IGV0aF9nZXRfaGVhZGxlbihza2ItPmRhdGEs IHNrYl9oZWFkbGVuKHNrYikpOwpAQCAtMTk2NSw2ICsxOTcwLDcgQEAgc3RhdGljIHNzaXplX3Qg dHVuX2dldF91c2VyKHN0cnVjdCB0dW5fc3RydWN0ICp0dW4sIHN0cnVjdCB0dW5fZmlsZSAqdGZp bGUsCiAJCWlmICh1bmxpa2VseShoZWFkbGVuID4gc2tiX2hlYWRsZW4oc2tiKSkpIHsKIAkJCXRo aXNfY3B1X2luYyh0dW4tPnBjcHVfc3RhdHMtPnJ4X2Ryb3BwZWQpOwogCQkJbmFwaV9mcmVlX2Zy YWdzKCZ0ZmlsZS0+bmFwaSk7CisJCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJCW11dGV4X3VubG9j aygmdGZpbGUtPm5hcGlfbXV0ZXgpOwogCQkJV0FSTl9PTigxKTsKIAkJCXJldHVybiAtRU5PTUVN OwpAQCAtMTk5Miw2ICsxOTk4LDcgQEAgc3RhdGljIHNzaXplX3QgdHVuX2dldF91c2VyKHN0cnVj dCB0dW5fc3RydWN0ICp0dW4sIHN0cnVjdCB0dW5fZmlsZSAqdGZpbGUsCiAJfSBlbHNlIHsKIAkJ bmV0aWZfcnhfbmkoc2tiKTsKIAl9CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlzdGF0cyA9IGdl dF9jcHVfcHRyKHR1bi0+cGNwdV9zdGF0cyk7CiAJdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbigmc3Rh dHMtPnN5bmNwKTsKLS0gCjIuMjAuMQoKCkZyb20gNWMzODlhOTI4YTMxZmUxODg0MjdiOTY1ZTUy MTFhOGY3ODEwNjA2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FicmluYSBEdWJy b2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+CkRhdGU6IFR1ZSwgMjYgTWFyIDIwMTkgMTg6MjI6MTYg KzAxMDAKU3ViamVjdDogW1BBVENIIDI1LzMzXSB2cmY6IHByZXZlbnQgYWRkaW5nIHVwcGVyIGRl dmljZXMKClsgVXBzdHJlYW0gY29tbWl0IDEwMTdlMDk4NzExN2MzMjc4M2JhN2MxMGZlMmU3ZmYx NDU2YmExZGMgXQoKVlJGIGRldmljZXMgZG9uJ3Qgd29yayB3aXRoIHVwcGVyIGRldmljZXMuIEN1 cnJlbnRseSwgaXQncyBwb3NzaWJsZSB0bwphZGQgYSBWUkYgZGV2aWNlIHRvIGEgYnJpZGdlIG9y IHRlYW0sIGFuZCB0byBjcmVhdGUgbWFjdmxhbiwgbWFjc2VjLCBvcgppcHZsYW4gZGV2aWNlcyBv biB0b3Agb2YgYSBWUkYgKGJvbmQgYW5kIHZsYW4gYXJlIHByZXZlbnRlZCByZXNwZWN0aXZlbHkK YnkgdGhlIGxhY2sgb2YgYW4gbmRvX3NldF9tYWNfYWRkcmVzcyBvcCBhbmQgdGhlIE5FVElGX0Zf VkxBTl9DSEFMTEVOR0VECmZlYXR1cmUgZmxhZykuCgpGaXggdGhpcyBieSBzZXR0aW5nIHRoZSBJ RkZfTk9fUlhfSEFORExFUiBmbGFnIChpbnRyb2R1Y2VkIGluIGNvbW1pdApmNTQyNjI1MGE2ZWMg KCJuZXQ6IGludHJvZHVjZSBJRkZfTk9fUlhfSEFORExFUiIpKS4KCkNjOiBEYXZpZCBBaGVybiA8 ZHNhaGVybkBnbWFpbC5jb20+CkZpeGVzOiAxOTMxMjVkYmQ4ZWIgKCJuZXQ6IEludHJvZHVjZSBW UkYgZGV2aWNlIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVl YXN5c25haWwubmV0PgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvdnJmLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZyZi5jIGIvZHJpdmVycy9uZXQvdnJmLmMKaW5kZXgg N2MxNDMwZWQwMjQ0Li42ZDFhMWFiYmVkMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZyZi5j CisrKyBiL2RyaXZlcnMvbmV0L3ZyZi5jCkBAIC0xMjczLDYgKzEyNzMsNyBAQCBzdGF0aWMgdm9p ZCB2cmZfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAogCS8qIGRlZmF1bHQgdG8gbm8g cWRpc2M7IHVzZXIgY2FuIGFkZCBpZiBkZXNpcmVkICovCiAJZGV2LT5wcml2X2ZsYWdzIHw9IElG Rl9OT19RVUVVRTsKKwlkZXYtPnByaXZfZmxhZ3MgfD0gSUZGX05PX1JYX0hBTkRMRVI7CiAKIAlk ZXYtPm1pbl9tdHUgPSAwOwogCWRldi0+bWF4X210dSA9IDA7Ci0tIAoyLjIwLjEKCgpGcm9tIDU0 NTVmMTVmMWFkNDFmYWYyZGU0Y2Y5NzU3ZGI1NjhjODk3OTVjMmUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFpoaXFpYW5nIExpdSA8bGl1emhpcWlhbmcyNkBodWF3ZWkuY29tPgpEYXRl OiBTYXQsIDE2IE1hciAyMDE5IDE3OjAyOjU0ICswODAwClN1YmplY3Q6IFtQQVRDSCAyNi8zM10g dnhsYW46IERvbid0IGNhbGwgZ3JvX2NlbGxzX2Rlc3Ryb3koKSBiZWZvcmUgZGV2aWNlIGlzCiB1 bnJlZ2lzdGVyZWQKClsgVXBzdHJlYW0gY29tbWl0IGNjNDgwN2JiNjA5MjMwZDg5NTlmZDczMmIw YmYzYmQ0YzJkZThlYWMgXQoKQ29tbWl0IGFkNmM5OTg2YmNiNjIgKCJ2eGxhbjogRml4IEdSTyBj ZWxscyByYWNlIGNvbmRpdGlvbiBiZXR3ZWVuCnJlY2VpdmUgYW5kIGxpbmsgZGVsZXRlIikgZml4 ZWQgYSByYWNlIGNvbmRpdGlvbiBmb3IgdGhlIHR5cGljYWwgY2FzZSBhIHZ4bGFuCmRldmljZSBp cyBkaXNtYW50bGVkIGZyb20gdGhlIGN1cnJlbnQgbmV0bnMuIEJ1dCBpZiBhIG5ldG5zIGlzIGRp c21hbnRsZWQsCnZ4bGFuX2Rlc3Ryb3lfdHVubmVscygpIGlzIGNhbGxlZCB0byBzY2hlZHVsZSBh IHVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKCkKb2YgYWxsIHRoZSB2eGxhbiB0dW5uZWxzIHRo YXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBuZXRucy4KCkluIHZ4bGFuX2Rlc3Ryb3lfdHVubmVscygp LCBncm9fY2VsbHNfZGVzdHJveSgpIGlzIGNhbGxlZCBhbmQgZmluaXNoZWQgYmVmb3JlCnVucmVn aXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKCkuIFRoaXMgbWVhbnMgdGhhdCB0aGUgZ3JvX2NlbGxzX2Rl c3Ryb3koKSBjYWxsIGlzCmRvbmUgdG9vIHNvb24sIGZvciB0aGUgc2FtZSByZWFzb25zIGV4cGxh aW5lZCBpbiBhYm92ZSBjb21taXQuCgpTbyB3ZSBuZWVkIHRvIGZ1bGx5IHJlc3BlY3QgdGhlIFJD VSBydWxlcywgYW5kIHRodXMgbXVzdCByZW1vdmUgdGhlCmdyb19jZWxsc19kZXN0cm95KCkgY2Fs bCBvciByaXNrIHVzZSBhZnRlci1mcmVlLgoKRml4ZXM6IDU4Y2UzMWNjYTFmZiAoInZ4bGFuOiBH Uk8gc3VwcG9ydCBhdCB0dW5uZWwgbGF5ZXIiKQpTaWduZWQtb2ZmLWJ5OiBTdWFubWluZy5Nb3Ug PG1vdXN1YW5taW5nQGh1YXdlaS5jb20+ClN1Z2dlc3RlZC1ieTogRXJpYyBEdW1hemV0IDxlcmlj LmR1bWF6ZXRAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogU3RlZmFubyBCcml2aW8gPHNicml2aW9A cmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IFpoaXFpYW5nIExpdSA8bGl1emhpcWlhbmcyNkBodWF3 ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyB8IDQgKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4 bGFuLmMgYi9kcml2ZXJzL25ldC92eGxhbi5jCmluZGV4IGQ2ZmI2YTg5ZjliMy4uNTAwNmRhZWQy ZTk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4 bGFuLmMKQEAgLTQxODQsMTAgKzQxODQsOCBAQCBzdGF0aWMgdm9pZCB2eGxhbl9kZXN0cm95X3R1 bm5lbHMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogCQkvKiBJZiB2 eGxhbi0+ZGV2IGlzIGluIHRoZSBzYW1lIG5ldG5zLCBpdCBoYXMgYWxyZWFkeSBiZWVuIGFkZGVk CiAJCSAqIHRvIHRoZSBsaXN0IGJ5IHRoZSBwcmV2aW91cyBsb29wLgogCQkgKi8KLQkJaWYgKCFu ZXRfZXEoZGV2X25ldCh2eGxhbi0+ZGV2KSwgbmV0KSkgewotCQkJZ3JvX2NlbGxzX2Rlc3Ryb3ko JnZ4bGFuLT5ncm9fY2VsbHMpOworCQlpZiAoIW5ldF9lcShkZXZfbmV0KHZ4bGFuLT5kZXYpLCBu ZXQpKQogCQkJdW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUodnhsYW4tPmRldiwgaGVhZCk7Ci0J CX0KIAl9CiAKIAlmb3IgKGggPSAwOyBoIDwgUE9SVF9IQVNIX1NJWkU7ICsraCkKLS0gCjIuMjAu MQoKCkZyb20gNDNlMmMzN2MzZWYxMDkzOTRiYjNlYzM2NzJhOGY2YjcxMzBmZDdiYSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGVhbiBOZWxzb24gPGRuZWxzb25AcmVkaGF0LmNvbT4K RGF0ZTogVHVlLCAyNiBNYXIgMjAxOSAxMTo1MzoxOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjcv MzNdIHRodW5kZXJ4OiBlbmFibGUgcGFnZSByZWN5Y2xpbmcgZm9yIG5vbi1YRFAgY2FzZQoKWyBV cHN0cmVhbSBjb21taXQgYjNlMjA4MDY5NDc3NTg4YzA2ZjRkNWQ5ODYxNjRiNDM1YmIwNmU2ZCBd CgpDb21taXQgNzczMjI1Mzg4ZGFlMTVlNzI3OTAgKCJuZXQ6IHRodW5kZXJ4OiBPcHRpbWl6ZSBw YWdlIHJlY3ljbGluZyBmb3IgWERQIikKYWRkZWQgY29kZSB0byBuaWN2Zl9hbGxvY19wYWdlKCkg dGhhdCBpbmFkdmVydGVudGx5IGRpc2FibGVzIHJlY2VpdmUgYnVmZmVyCnBhZ2UgcmVjeWNsaW5n IGZvciB0aGUgbm9uLVhEUCBjYXNlIGJ5IGFsd2F5cyBOVUxMJ25nIHRoZSBwYWdlIHBvaW50ZXIu CgpUaGlzIHBhdGNoIGNvcnJlY3RzIHR3byBpZi1jb25kaXRpb25hbHMgdG8gYWxsb3cgZm9yIHRo ZSByZWN5Y2xpbmcgb2Ygbm9uLVhEUAptb2RlIHBhZ2VzIGJ5IG9ubHkgc2V0dGluZyB0aGUgcGFn ZSBwb2ludGVyIHRvIE5VTEwgd2hlbiB0aGUgcGFnZSBpcyBub3QgcmVhZHkKZm9yIHJlY3ljbGlu Zy4KCkZpeGVzOiA3NzMyMjUzODhkYWUgKCJuZXQ6IHRodW5kZXJ4OiBPcHRpbWl6ZSBwYWdlIHJl Y3ljbGluZyBmb3IgWERQIikKU2lnbmVkLW9mZi1ieTogRGVhbiBOZWxzb24gPGRuZWxzb25AcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIC4uLi9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9xdWV1ZXMuYyAgICB8 IDIzICsrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCsp LCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZp dW0vdGh1bmRlci9uaWN2Zl9xdWV1ZXMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90 aHVuZGVyL25pY3ZmX3F1ZXVlcy5jCmluZGV4IDViNGQzYmFkY2I3My4uNTVkYmYwMmM0MmFmIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9xdWV1 ZXMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci9uaWN2Zl9xdWV1 ZXMuYwpAQCAtMTA1LDIwICsxMDUsMTkgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGdjYWNoZSAq bmljdmZfYWxsb2NfcGFnZShzdHJ1Y3QgbmljdmYgKm5pYywKIAkvKiBDaGVjayBpZiBwYWdlIGNh biBiZSByZWN5Y2xlZCAqLwogCWlmIChwYWdlKSB7CiAJCXJlZl9jb3VudCA9IHBhZ2VfcmVmX2Nv dW50KHBhZ2UpOwotCQkvKiBDaGVjayBpZiB0aGlzIHBhZ2UgaGFzIGJlZW4gdXNlZCBvbmNlIGku ZSAncHV0X3BhZ2UnCi0JCSAqIGNhbGxlZCBhZnRlciBwYWNrZXQgdHJhbnNtaXNzaW9uIGkuZSBp bnRlcm5hbCByZWZfY291bnQKLQkJICogYW5kIHBhZ2UncyByZWZfY291bnQgYXJlIGVxdWFsIGku ZSBwYWdlIGNhbiBiZSByZWN5Y2xlZC4KKwkJLyogVGhpcyBwYWdlIGNhbiBiZSByZWN5Y2xlZCBp ZiBpbnRlcm5hbCByZWZfY291bnQgYW5kIHBhZ2UncworCQkgKiByZWZfY291bnQgYXJlIGVxdWFs LCBpbmRpY2F0aW5nIHRoYXQgdGhlIHBhZ2UgaGFzIGJlZW4gdXNlZAorCQkgKiBvbmNlIGZvciBw YWNrZXQgdHJhbnNtaXNzaW9uLiBGb3Igbm9uLVhEUCBtb2RlLCBpbnRlcm5hbAorCQkgKiByZWZf Y291bnQgaXMgYWx3YXlzICcxJy4KIAkJICovCi0JCWlmIChyYmRyLT5pc194ZHAgJiYgKHJlZl9j b3VudCA9PSBwZ2NhY2hlLT5yZWZfY291bnQpKQotCQkJcGdjYWNoZS0+cmVmX2NvdW50LS07Ci0J CWVsc2UKLQkJCXBhZ2UgPSBOVUxMOwotCi0JCS8qIEluIG5vbi1YRFAgbW9kZSwgcGFnZSdzIHJl Zl9jb3VudCBuZWVkcyB0byBiZSAnMScgZm9yIGl0Ci0JCSAqIHRvIGJlIHJlY3ljbGVkLgotCQkg Ki8KLQkJaWYgKCFyYmRyLT5pc194ZHAgJiYgKHJlZl9jb3VudCAhPSAxKSkKKwkJaWYgKHJiZHIt PmlzX3hkcCkgeworCQkJaWYgKHJlZl9jb3VudCA9PSBwZ2NhY2hlLT5yZWZfY291bnQpCisJCQkJ cGdjYWNoZS0+cmVmX2NvdW50LS07CisJCQllbHNlCisJCQkJcGFnZSA9IE5VTEw7CisJCX0gZWxz ZSBpZiAocmVmX2NvdW50ICE9IDEpIHsKIAkJCXBhZ2UgPSBOVUxMOworCQl9CiAJfQogCiAJaWYg KCFwYWdlKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIDBmNDUyMGNjMGY4ZDI4N2MyYTNmMDhlODUxMjUz OTUyOTBjZmJiY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERlYW4gTmVsc29uIDxk bmVsc29uQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgMjYgTWFyIDIwMTkgMTE6NTM6MjYgLTA0MDAK U3ViamVjdDogW1BBVENIIDI4LzMzXSB0aHVuZGVyeDogZWxpbWluYXRlIGV4dHJhIGNhbGxzIHRv IHB1dF9wYWdlKCkgZm9yIHBhZ2VzCiBoZWxkIGZvciByZWN5Y2xpbmcKClsgVXBzdHJlYW0gY29t bWl0IGNkMzVlZjkxNDkwYWQ4MDQ5ZGQxODBiYjA2MGFmZjdlZTE5MmVkYTkgXQoKRm9yIHRoZSBu b24tWERQIGNhc2UsIGNvbW1pdCA3NzMyMjUzODhkYWUxNWU3Mjc5MCAoIm5ldDogdGh1bmRlcng6 IE9wdGltaXplCnBhZ2UgcmVjeWNsaW5nIGZvciBYRFAiKSBhZGRlZCBjb2RlIHRvIG5pY3ZmX2Zy ZWVfcmJkcigpIHRoYXQsIHdoZW4gcmVsZWFzaW5nCnRoZSBhZGRpdGlvbmFsIHJlY2VpdmUgYnVm ZmVyIHBhZ2UgcmVmZXJlbmNlIGhlbGQgZm9yIHJlY3ljbGluZywgcmVwZWF0ZWRseQpjYWxscyBw dXRfcGFnZSgpIHVudGlsIHRoZSBwYWdlJ3MgX3JlZmNvdW50IGdvZXMgdG8gemVyby4gV2hpY2gg cmVzdWx0cyBpbgp0aGUgcGFnZSBiZWluZyBmcmVlZC4KClRoaXMgaXMgbm90IG9rYXkgaWYgdGhl IHBhZ2UncyBfcmVmY291bnQgd2FzIGdyZWF0ZXIgdGhhbiAxIChpbiB0aGUgbm9uLVhEUApjYXNl KSwgYmVjYXVzZSBuaWN2Zl9mcmVlX3JiZHIoKSBzaG91bGQgbm90IGJlIHN1YnRyYWN0aW5nIG1v cmUgdGhhbiB3aGF0Cm5pY3ZmX2FsbG9jX3BhZ2UoKSBoYWQgcHJldmlvdXNseSBhZGRlZCB0byB0 aGUgcGFnZSdzIF9yZWZjb3VudCwgd2hpY2ggd2FzCm9ubHkgMSAoaW4gdGhlIG5vbi1YRFAgY2Fz ZSkuCgpUaGlzIGNhbiBhcmlzZSBpZiBhIHJlY2VpdmVkIHBhY2tldCBpcyBzdGlsbCBiZWluZyBw cm9jZXNzZWQgYW5kIHRoZSByZWNlaXZlCmJ1ZmZlciAoaS5lLiwgc2tiLT5oZWFkKSBoYXMgbm90 IHlldCBiZWVuIGZyZWVkIHZpYSBza2JfZnJlZV9oZWFkKCkgd2hlbgpuaWN2Zl9mcmVlX3JiZHIo KSBpcyBzcGlubmluZyB0aHJvdWdoIHRoZSBhZm9yZW1lbnRpb25lZCBwdXRfcGFnZSgpIGxvb3Au CgpJZiB0aGlzIHNob3VsZCBvY2N1ciwgd2hlbiB0aGUgcmVjZWl2ZWQgcGFja2V0IGZpbmlzaGVz IHByb2Nlc3NpbmcgYW5kCnNrYl9mcmVlX2hlYWQoKSBpcyBjYWxsZWQsIHZhcmlvdXMgcHJvYmxl bXMgY2FuIGVuc3VlLiBFeGFjdGx5IHdoYXQsIGRlcGVuZHMgb24Kd2hldGhlciB0aGUgcGFnZSBo YXMgYWxyZWFkeSBiZWVuIHJlYWxsb2NhdGVkIG9yIG5vdCwgYW55dGhpbmcgZnJvbSAiQlVHOiBC YWQKcGFnZSBzdGF0ZSAuLi4gIiwgdG8gIlVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9p bnRlciBkZXJlZmVyZW5jZSAuLi4iIG9yCiJVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcg cmVxdWVzdC4uLiIuCgpTbyB0aGlzIHBhdGNoIGNoYW5nZXMgbmljdmZfZnJlZV9yYmRyKCkgdG8g b25seSBjYWxsIHB1dF9wYWdlKCkgb25jZSBmb3IgcGFnZXMKaGVsZCBmb3IgcmVjeWNsaW5nIChp biB0aGUgbm9uLVhEUCBjYXNlKS4KCkZpeGVzOiA3NzMyMjUzODhkYWUgKCJuZXQ6IHRodW5kZXJ4 OiBPcHRpbWl6ZSBwYWdlIHJlY3ljbGluZyBmb3IgWERQIikKU2lnbmVkLW9mZi1ieTogRGVhbiBO ZWxzb24gPGRuZWxzb25AcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90 aHVuZGVyL25pY3ZmX3F1ZXVlcy5jIHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Nhdml1bS90aHVuZGVyL25pY3ZmX3F1ZXVlcy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv Y2F2aXVtL3RodW5kZXIvbmljdmZfcXVldWVzLmMKaW5kZXggNTVkYmYwMmM0MmFmLi5lMjQ2Zjk3 MzNiYjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25p Y3ZmX3F1ZXVlcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS90aHVuZGVyL25p Y3ZmX3F1ZXVlcy5jCkBAIC0zNjQsMTEgKzM2NCwxMCBAQCBzdGF0aWMgdm9pZCBuaWN2Zl9mcmVl X3JiZHIoc3RydWN0IG5pY3ZmICpuaWMsIHN0cnVjdCByYmRyICpyYmRyKQogCXdoaWxlIChoZWFk IDwgcmJkci0+cGdjbnQpIHsKIAkJcGdjYWNoZSA9ICZyYmRyLT5wZ2NhY2hlW2hlYWRdOwogCQlp ZiAocGdjYWNoZS0+cGFnZSAmJiBwYWdlX3JlZl9jb3VudChwZ2NhY2hlLT5wYWdlKSAhPSAwKSB7 Ci0JCQlpZiAoIXJiZHItPmlzX3hkcCkgewotCQkJCXB1dF9wYWdlKHBnY2FjaGUtPnBhZ2UpOwot CQkJCWNvbnRpbnVlOworCQkJaWYgKHJiZHItPmlzX3hkcCkgeworCQkJCXBhZ2VfcmVmX3N1Yihw Z2NhY2hlLT5wYWdlLAorCQkJCQkgICAgIHBnY2FjaGUtPnJlZl9jb3VudCAtIDEpOwogCQkJfQot CQkJcGFnZV9yZWZfc3ViKHBnY2FjaGUtPnBhZ2UsIHBnY2FjaGUtPnJlZl9jb3VudCAtIDEpOwog CQkJcHV0X3BhZ2UocGdjYWNoZS0+cGFnZSk7CiAJCX0KIAkJaGVhZCsrOwotLSAKMi4yMC4xCgoK RnJvbSBmZDU3Yzc1YmE2MTFjZWM2ODgwMzM3MzE0MWFkNzA1ODdlOWFkNTU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29t PgpEYXRlOiBTYXQsIDIzIE1hciAyMDE5IDE5OjQxOjMyICswMTAwClN1YmplY3Q6IFtQQVRDSCAy OS8zM10gbmV0OiBkc2E6IG12ODhlNnh4eDogZml4IGZldyBpc3N1ZXMgaW4KIG12ODhlNjM5MHhf cG9ydF9zZXRfY21vZGUKClsgVXBzdHJlYW0gY29tbWl0IDVjZWFlYjk5ZmZiNGRjMDAyZDIwZjZh YzI0M2MxOWE4NWUyYzdhNzYgXQoKVGhpcyBwYXRjaGVzIGZpeGVzIGZldyBpc3N1ZXMgaW4gbXY4 OGU2MzkweF9wb3J0X3NldF9jbW9kZSgpLgoKMS4gV2hlbiBlbnRlcmluZyB0aGUgZnVuY3Rpb24g dGhlIG9sZCBjbW9kZSBtYXkgYmUgMCwgaW4gdGhpcyBjYXNlCiAgIG12ODhlNjM5MHhfc2VyZGVz X2dldF9sYW5lKCkgcmV0dXJucyAtRU5PREVWLiBBcyByZXN1bHQgd2UgYmFpbAogICBvdXQgYW5k IGhhdmUgbm8gY2hhbmNlIHRvIHNldCBhIG5ldyBtb2RlLiBUaGVyZWZvcmUgZGVhbCBwcm9wZXJs eQogICB3aXRoIC1FTk9ERVYuCgoyLiBPbmNlIHdlIGhhdmUgZGlzYWJsZWQgcG93ZXIgYW5kIGly cSwgbGV0J3Mgc2V0IHRoZSBjYWNoZWQgY21vZGUgdG8gMC4KICAgVGhpcyByZWZsZWN0cyB0aGUg YWN0dWFsIHN0YXR1cyBhbmQgaXMgY2xlYW5lciBpZiB3ZSBiYWlsIG91dCB3aXRoIGFuCiAgIGVy cm9yIGluIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gY2FsbHMuCgozLiBUaGUgY2FjaGVkIGNtb2Rl IGlzIHVzZWQgYnkgbXY4OGU2MzkweF9zZXJkZXNfZ2V0X2xhbmUoKSwKICAgbXY4OGU2MzkwX3Nl cmRlc19wb3dlcl9sYW5lKCkgYW5kIG12ODhlNjM5MF9zZXJkZXNfaXJxX2VuYWJsZSgpLgogICBD dXJyZW50bHkgd2Ugc2V0IHRoZSBjYWNoZWQgbW9kZSB0byB0aGUgbmV3IG9uZSBhdCB0aGUgdmVy eSBlbmQgb2YKICAgdGhlIGZ1bmN0aW9uIG9ubHksIG1lYW5zIHVudGlsIHRoZW4gd2UgdXNlIHRo ZSBvbGQgb25lIHdoYXQgbWF5IGJlCiAgIHdyb25nLgoKNC4gV2hlbiBjYWxsaW5nIG12ODhlNjM5 MF9zZXJkZXNfaXJxX2VuYWJsZSgpIHdlIHVzZSB0aGUgbGFuZSB2YWx1ZQogICBiZWxvbmdpbmcg dG8gdGhlIG9sZCBjbW9kZS4gR2V0IHRoZSBsYW5lIGJlbG9uZ2luZyB0byB0aGUgbmV3IGNtb2Rl CiAgIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCgpJdCdzIGhhcmQgdG8gcHJvdmlkZSBh IGdvb2QgIkZpeGVzIiB0YWcgYmVjYXVzZSBxdWl0ZSBhIGZldyBzbWFsbGVyCmNoYW5nZXMgaGF2 ZSBiZWVuIGRvbmUgdG8gdGhlIGNvZGUgaW4gcXVlc3Rpb24gcmVjZW50bHkuCgpGaXhlczogZDIz NWM0OGI0MGQzICgibmV0OiBkc2E6IG12ODhlNnh4eDogcG93ZXIgc2VyZGVzIG9uL29mZiBmb3Ig MTBHIGludGVyZmFjZXMgb24gNjM5MFgiKQpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdlaXQg PGhrYWxsd2VpdDFAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5m YWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYyB8IDI0 ICsrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMo KyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4 eC9wb3J0LmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYwppbmRleCA1ZTkyMWJi NmMyMTQuLjQxZWVlNjJmZWQyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4 eC9wb3J0LmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMKQEAgLTQyNywx OCArNDI3LDIyIEBAIGludCBtdjg4ZTYzOTB4X3BvcnRfc2V0X2Ntb2RlKHN0cnVjdCBtdjg4ZTZ4 eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiAJCXJldHVybiAwOwogCiAJbGFuZSA9IG12ODhlNjM5 MHhfc2VyZGVzX2dldF9sYW5lKGNoaXAsIHBvcnQpOwotCWlmIChsYW5lIDwgMCkKKwlpZiAobGFu ZSA8IDAgJiYgbGFuZSAhPSAtRU5PREVWKQogCQlyZXR1cm4gbGFuZTsKIAotCWlmIChjaGlwLT5w b3J0c1twb3J0XS5zZXJkZXNfaXJxKSB7Ci0JCWVyciA9IG12ODhlNjM5MF9zZXJkZXNfaXJxX2Rp c2FibGUoY2hpcCwgcG9ydCwgbGFuZSk7CisJaWYgKGxhbmUgPj0gMCkgeworCQlpZiAoY2hpcC0+ cG9ydHNbcG9ydF0uc2VyZGVzX2lycSkgeworCQkJZXJyID0gbXY4OGU2MzkwX3NlcmRlc19pcnFf ZGlzYWJsZShjaGlwLCBwb3J0LCBsYW5lKTsKKwkJCWlmIChlcnIpCisJCQkJcmV0dXJuIGVycjsK KwkJfQorCisJCWVyciA9IG12ODhlNjM5MHhfc2VyZGVzX3Bvd2VyKGNoaXAsIHBvcnQsIGZhbHNl KTsKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAJfQogCi0JZXJyID0gbXY4OGU2MzkweF9z ZXJkZXNfcG93ZXIoY2hpcCwgcG9ydCwgZmFsc2UpOwotCWlmIChlcnIpCi0JCXJldHVybiBlcnI7 CisJY2hpcC0+cG9ydHNbcG9ydF0uY21vZGUgPSAwOwogCiAJaWYgKGNtb2RlKSB7CiAJCWVyciA9 IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCAmcmVn KTsKQEAgLTQ1Miw2ICs0NTYsMTIgQEAgaW50IG12ODhlNjM5MHhfcG9ydF9zZXRfY21vZGUoc3Ry dWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKIAkJaWYgKGVycikKIAkJCXJldHVy biBlcnI7CiAKKwkJY2hpcC0+cG9ydHNbcG9ydF0uY21vZGUgPSBjbW9kZTsKKworCQlsYW5lID0g bXY4OGU2MzkweF9zZXJkZXNfZ2V0X2xhbmUoY2hpcCwgcG9ydCk7CisJCWlmIChsYW5lIDwgMCkK KwkJCXJldHVybiBsYW5lOworCiAJCWVyciA9IG12ODhlNjM5MHhfc2VyZGVzX3Bvd2VyKGNoaXAs IHBvcnQsIHRydWUpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKQEAgLTQ2Myw4ICs0NzMs NiBAQCBpbnQgbXY4OGU2MzkweF9wb3J0X3NldF9jbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAg KmNoaXAsIGludCBwb3J0LAogCQl9CiAJfQogCi0JY2hpcC0+cG9ydHNbcG9ydF0uY21vZGUgPSBj bW9kZTsKLQogCXJldHVybiAwOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIDQzNmRjOGM3Mjg2ZDhh NWQ1Mzc3YzVhYjY3ZTA1ZjA1NTRhNWQ1ZDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IENsYXVkaXUgTWFub2lsIDxjbGF1ZGl1Lm1hbm9pbEBueHAuY29tPgpEYXRlOiBUdWUsIDI2IE1h ciAyMDE5IDExOjQ4OjU3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMC8zM10gbmV0OiBtaWk6IEZp eCBQQVVTRSBjYXAgYWR2ZXJ0aXNlbWVudCBmcm9tCiBsaW5rbW9kZV9hZHZfdG9fbGNsX2Fkdl90 KCkgaGVscGVyCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZjA3ZTVmMWY3Nzg2MDVlOThjZjIxNTZkNGRi MWZmM2EzYTFhNzRhIF0KCldpdGggYSByZWNlbnQgbGluayBtb2RlIGFkdmVydGlzZW1lbnQgY29k ZSB1cGRhdGUgdGhpcyBoZWxwZXIKcHJvdmlkaW5nIGxvY2FsIHBhdXNlIGNhcGFiaWxpdHkgdHJh bnNsYXRpb24gdXNlZCBmb3IgZmxvdwpjb250cm9sIGxpbmsgbW9kZSBuZWdvdGlhdGlvbiBnb3Qg YnJva2VuLgpGb3IgZXRoIGRyaXZlcnMgdXNpbmcgdGhpcyBoZWxwZXIsIHRoZSBpc3N1ZSBpcyBh cHBhcmVudCBvbmx5CmlmIGVpdGhlciBQQVVTRSBvciBBU1lNX1BBVVNFIGlzIGJlaW5nIGFkdmVy dGlzZWQuCgpGaXhlczogM2MxYmNjODYxNGRiICgibmV0OiBldGhlcm5ldDogQ29udmVydCBwaHlk ZXYgYWR2ZXJ0aXplIGFuZCBzdXBwb3J0ZWQgZnJvbSB1MzIgdG8gbGluayBtb2RlIikKU2lnbmVk LW9mZi1ieTogQ2xhdWRpdSBNYW5vaWwgPGNsYXVkaXUubWFub2lsQG54cC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRl L2xpbnV4L21paS5oIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9taWkuaCBiL2luY2x1ZGUvbGlu dXgvbWlpLmgKaW5kZXggNmZlZThiMWE0NDAwLi41Y2Q4MjRjMWMwY2EgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvbWlpLmgKKysrIGIvaW5jbHVkZS9saW51eC9taWkuaApAQCAtNDY5LDcgKzQ2 OSw3IEBAIHN0YXRpYyBpbmxpbmUgdTMyIGxpbmttb2RlX2Fkdl90b19sY2xfYWR2X3QodW5zaWdu ZWQgbG9uZyAqYWR2ZXJ0aXNpbmcpCiAJaWYgKGxpbmttb2RlX3Rlc3RfYml0KEVUSFRPT0xfTElO S19NT0RFX1BhdXNlX0JJVCwKIAkJCSAgICAgIGFkdmVydGlzaW5nKSkKIAkJbGNsX2FkdiB8PSBB RFZFUlRJU0VfUEFVU0VfQ0FQOwotCWlmIChsaW5rbW9kZV90ZXN0X2JpdChFVEhUT09MX0xJTktf TU9ERV9QYXVzZV9CSVQsCisJaWYgKGxpbmttb2RlX3Rlc3RfYml0KEVUSFRPT0xfTElOS19NT0RF X0FzeW1fUGF1c2VfQklULAogCQkJICAgICAgYWR2ZXJ0aXNpbmcpKQogCQlsY2xfYWR2IHw9IEFE VkVSVElTRV9QQVVTRV9BU1lNOwogCi0tIAoyLjIwLjEKCgpGcm9tIGY2NTNjODc3YTg0M2RjNTU0 MmRjMjE4N2NlZDExM2ExOTQ5OGUzOTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhl aW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjIgTWFyIDIw MTkgMjA6MDA6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDMxLzMzXSBuZXQ6IHBoeTogZG9uJ3Qg Y2xlYXIgQk1DUiBpbiBnZW5waHlfc29mdF9yZXNldAoKWyBVcHN0cmVhbSBjb21taXQgZDI5ZjVh YTBiYzBjMzIxZTFiOWU0NjU4YTJhN2UwOGU4ODVkYTUyYSBdCgpTbyBmYXIgd2UgZWZmZWN0aXZl bHkgY2xlYXIgdGhlIEJNQ1IgcmVnaXN0ZXIuIFNvbWUgUEhZJ3MgY2FuIGRlYWwKd2l0aCB0aGlz IChlLmcuIGJlY2F1c2UgdGhleSByZXNldCBCTUNSIHRvIGEgZGVmYXVsdCBhcyBwYXJ0IG9mIGEK c29mdC1yZXNldCkgd2hpbHN0IG9uIG90aGVycyB0aGlzIGNhdXNlcyBpc3N1ZXMgYmVjYXVzZSBl LmcuIHRoZQphdXRvbmVnIGJpdCBpcyBjbGVhcmVkLiBNYXJ2ZWxsIGlzIGFuIGV4YW1wbGUsIHNl ZSBhbHNvIHRocmVhZCBbMF0uClNvIGxldCdzIGJlIGEgbGl0dGxlIGJpdCBtb3JlIGdlbnRsZSBh bmQgbGVhdmUgYWxsIGJpdHMgd2UncmUgbm90CmludGVyZXN0ZWQgaW4gYXMtaXMuIFRoaXMgY2hh bmdlIGlzIG5lZWRlZCBmb3IgUEhZIGRyaXZlcnMgdG8KcHJvcGVybHkgZGVhbCB3aXRoIHRoZSBv cmlnaW5hbCBwYXRjaC4KClswXSBodHRwczovL21hcmMuaW5mby8/dD0xNTUyNjQwNTA3MDAwMDEm cj0xJnc9MgoKRml4ZXM6IDZlMmQ4NWVjMDU1OSAoIm5ldDogcGh5OiBTdG9wIHdpdGggZXhjZXNz aXZlIHNvZnQgcmVzZXQiKQpUZXN0ZWQtYnk6IFBoaWwgUmVpZCA8cHJlaWRAZWxlY3Ryb21hZy5j b20uYXU+ClRlc3RlZC1ieTogbGl3ZWloYW5nIDxsaXdlaWhhbmdAaGlzaWxpY29uLmNvbT4KU2ln bmVkLW9mZi1ieTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4KUmV2aWV3 ZWQtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvcGh5L3BoeV9kZXZpY2UuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNl LmMgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCmluZGV4IDQ2Yzg2NzI1YTY5My4uNzM5 NDM0ZmUwNGZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCisrKyBi L2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMKQEAgLTE4MjcsNyArMTgyNyw3IEBAIGludCBn ZW5waHlfc29mdF9yZXNldChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogewogCWludCByZXQ7 CiAKLQlyZXQgPSBwaHlfd3JpdGUocGh5ZGV2LCBNSUlfQk1DUiwgQk1DUl9SRVNFVCk7CisJcmV0 ID0gcGh5X3NldF9iaXRzKHBoeWRldiwgTUlJX0JNQ1IsIEJNQ1JfUkVTRVQpOwogCWlmIChyZXQg PCAwKQogCQlyZXR1cm4gcmV0OwogCi0tIAoyLjIwLjEKCgpGcm9tIDk3MmM5NjE1MmQyYTA0YWVj ZDk3MDRmMGMyNDk2MzJmOGFjODEyYzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhl aW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjIgTWFyIDIw MTkgMDc6Mzk6MzUgKzAxMDAKU3ViamVjdDogW1BBVENIIDMyLzMzXSByODE2OTogZml4IGNhYmxl IHJlLXBsdWdnaW5nIGlzc3VlCgpbIFVwc3RyZWFtIGNvbW1pdCAyM2M3ODM0M2VjMzY5OTA3MDli NjM2YTllMDJiYWQ4MTRmNDM4NGFkIF0KCkJhcnRlayByZXBvcnRlZCB0aGF0IGFmdGVyIGZldyBj YWJsZSB1bnBsdWcvcmVwbHVnIGN5Y2xlcyBzdWRkZW5seQpyZXBsdWcgaXNuJ3QgZGV0ZWN0ZWQg YW55IGxvbmdlci4gSGlzIHN5c3RlbSB1c2VzIGEgUlRMODEwNiwgSSB3YXNuJ3QKYWJsZSB0byBy ZXByb2R1Y2UgdGhlIGlzc3VlIHdpdGggUlRMODE2OGcuIEFjY29yZGluZyB0byBoaXMgYmlzZWN0 CnRoZSByZWZlcmVuY2VkIGNvbW1pdCBjYXVzZWQgdGhlIHJlZ3Jlc3Npb24uIEFzIFJlYWx0ZWsg ZG9lc24ndApyZWxlYXNlIGRhdGFzaGVldHMgb3IgZXJyYXRhIGl0J3MgaGFyZCB0byBzYXkgd2hh dCdzIHRoZSBhY3R1YWwgcm9vdApjYXVzZSwgYnV0IHRoaXMgY2hhbmdlIHdhcyByZXBvcnRlZCB0 byBmaXggdGhlIGlzc3VlLgoKRml4ZXM6IDM4Y2FmZjVhNDQ1YiAoInI4MTY5OiBoYW5kbGUgYWxs IGludGVycnVwdCBldmVudHMgaW4gdGhlIGhhcmQgaXJxIGhhbmRsZXIiKQpSZXBvcnRlZC1ieTog QmFydG9zeiBTa3J6eXBjemFrIDxiYXJ0ZWtzMnhAZ21haWwuY29tPgpTdWdnZXN0ZWQtYnk6IEJh cnRvc3ogU2tyenlwY3phayA8YmFydGVrczJ4QGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBCYXJ0b3N6 IFNrcnp5cGN6YWsgPGJhcnRla3MyeEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEhlaW5lciBL YWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFs dGVrL3I4MTY5LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5 LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5LmMKaW5kZXggNmUzNmI4OGNh N2M5Li5mNTVkMTc3YWU4OTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0 ZWsvcjgxNjkuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5LmMKQEAg LTY0MzUsNyArNjQzNSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBydGw4MTY5X2ludGVycnVwdChp bnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpCiAJCXNldF9iaXQoUlRMX0ZMQUdfVEFTS19SRVNF VF9QRU5ESU5HLCB0cC0+d2suZmxhZ3MpOwogCX0KIAotCWlmIChzdGF0dXMgJiBSVExfRVZFTlRf TkFQSSkgeworCWlmIChzdGF0dXMgJiAoUlRMX0VWRU5UX05BUEkgfCBMaW5rQ2hnKSkgewogCQly dGxfaXJxX2Rpc2FibGUodHApOwogCQluYXBpX3NjaGVkdWxlX2lycW9mZigmdHAtPm5hcGkpOwog CX0KLS0gCjIuMjAuMQoKCkZyb20gYzE4M2Q2Y2YxN2E4MmRiYmQwNDkwMDRhMjUzNmYzODg1MDQx ODg5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVyYmVydCBYdSA8aGVyYmVydEBn b25kb3IuYXBhbmEub3JnLmF1PgpEYXRlOiBUdWUsIDI2IE1hciAyMDE5IDEzOjUwOjE0ICswODAw ClN1YmplY3Q6IFtQQVRDSCAzMy8zM10gaWxhOiBGaXggcmhhc2h0YWJsZSB3YWxrZXIgbGlzdCBj b3JydXB0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBiNWY5YmQxNWI4ODU2M2I1NWE5OWVkNTg4NDE2 ODgxMzY3YTBjZTVmIF0KCmlsYV94bGF0X25sX2NtZF9mbHVzaCB1c2VzIHJoYXNodGFibGUgd2Fs a2VycyBhbGxvY2F0ZWQgZnJvbSB0aGUKc3RhY2sgYnV0IGl0IG5ldmVyIGZyZWVzIHRoZW0uICBU aGlzIGNvcnJ1cHRzIHRoZSB3YWxrZXIgbGlzdCBvZgp0aGUgaGFzaCB0YWJsZS4KClRoaXMgcGF0 Y2ggZml4ZXMgaXQuCgpSZXBvcnRlZC1ieTogc3l6Ym90K2RhZTcyYTExMjMzNGFhNjVhMTU5QHN5 emthbGxlci5hcHBzcG90bWFpbC5jb20KRml4ZXM6IGI2ZTcxYmRlYmIxMiAoImlsYTogRmx1c2gg bmV0bGluayBjb21tYW5kIHRvIGNsZWFyIHhsYXQuLi4iKQpTaWduZWQtb2ZmLWJ5OiBIZXJiZXJ0 IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pbGEvaWxhX3hsYXQu YyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvaWxhL2lsYV94bGF0LmMgYi9uZXQvaXB2Ni9pbGEvaWxhX3hsYXQuYwppbmRleCAxN2M0 NTVmZjY5ZmYuLjc4NThmYTllYTEwMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaWxhL2lsYV94bGF0 LmMKKysrIGIvbmV0L2lwdjYvaWxhL2lsYV94bGF0LmMKQEAgLTQyMCw2ICs0MjAsNyBAQCBpbnQg aWxhX3hsYXRfbmxfY21kX2ZsdXNoKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2lu Zm8gKmluZm8pCiAKIGRvbmU6CiAJcmhhc2h0YWJsZV93YWxrX3N0b3AoJml0ZXIpOworCXJoYXNo dGFibGVfd2Fsa19leGl0KCZpdGVyKTsKIAlyZXR1cm4gcmV0OwogfQogCi0tIAoyLjIwLjEKCg== ----Next_Part(Thu_Mar_28_12_24_07_2019_526)----